plyr/0000755000175100001440000000000012725754757011303 5ustar hornikusersplyr/inst/0000755000175100001440000000000012725623554012246 5ustar hornikusersplyr/inst/CITATION0000644000175100001440000000117012034020705013360 0ustar hornikuserscitHeader("To cite plyr in publications use:") citEntry(entry = "Article", title = "The Split-Apply-Combine Strategy for Data Analysis", author = personList(as.person("Hadley Wickham")), journal = "Journal of Statistical Software", year = "2011", volume = "40", number = "1", pages = "1--29", url = "http://www.jstatsoft.org/v40/i01/", textVersion = paste("Hadley Wickham (2011).", "The Split-Apply-Combine Strategy for Data Analysis.", "Journal of Statistical Software, 40(1), 1-29.", "URL http://www.jstatsoft.org/v40/i01/.") ) plyr/tests/0000755000175100001440000000000012506322602012416 5ustar hornikusersplyr/tests/testthat.R0000644000175100001440000000006412506322574014411 0ustar hornikuserslibrary(testthat) library(plyr) test_check("plyr") plyr/tests/testthat/0000755000175100001440000000000012725754757014305 5ustar hornikusersplyr/tests/testthat/test-rename.r0000644000175100001440000001075312513035176016700 0ustar hornikusers# Main-stream cases ----------------------------------- context("Rename - Expected Usage") test_that("No match leaves names unchanged", { x <- c(a = 1, b = 2, c = 3, 4) y <- rename(x, c(d = "e"), warn_missing = FALSE) expect_equal(names(x), names(y)) }) test_that("Missing old values result in message", { # This is the same rename operation as above, but should give a message x <- c(a = 1, b = 2, c = 3, 4) expect_message(rename(x, c(d = "e"))) }) test_that("Single name match makes change", { x <- c(a = 1, b = 2) y <- rename(x, c(b = "c")) expect_equal(names(y), c("a", "c")) }) test_that("Multiple names correctly changed", { x <- c(a = 1, b = 2, c = 3) y <- rename(x, c("c" = "f", "b" = "e", "a" = "d")) expect_equal(names(y), c("d", "e", "f")) }) test_that("Empty vectors and lists", { expect_identical(rename(character(), c("c" = "f"), warn_missing = FALSE), character()) expect_identical(rename(list(), c("c" = "f"), warn_missing = FALSE), list()) }) test_that("Renaming lists", { x <- list(a = 1, b = 2, c = 3) y <- rename(x, c("c" = "f", "b" = "e", "a" = "d")) expect_identical(y, list(d = 1, e = 2, f = 3)) }) # Duplicate Names ----------------------------------- context("Rename - Duplicates") # This batch tests the typical renaming scenarios test_that("Renaming list with one conflicting variable name - default", { x <- list(a = 1, b = 2, c = 3) replace_list <- c("c" = "f", "b" = "e", "a" = "f") expected_response <- "created duplicates" #The exact match would be: "The plyr::rename operation has created duplicates for the following name\\(s\\): \\(`f`\\)" expect_warning(rename(x = x, replace = replace_list), expected_response) }) test_that("Renaming list with two conflicting variable names - default", { x <- list(a = 1, b = 2, c = 3, d = 4, e = 5) replace_list <- c("c" = "f", "b" = "e", "a" = "f", "d" = "g", "e" = "g") expected_response <- "created duplicates" #The exact match would be: "The plyr::rename operation has created duplicates for the following name\\(s\\): \\(`f`, `g`\\)" expect_warning(rename(x = x, replace = replace_list), expected_response) }) test_that("Renaming list with two conflicting variable names - default", { x <- list(a = 1, b = 2, c = 3, d = 4, e = 5) replace_list <- c("c" = "f", "b" = "e", "a" = "f", "d" = "g", "e" = "g") expected_response <- "created duplicates" #The exact match would be: "The plyr::rename operation has created duplicates for the following name\\(s\\): \\(`f`, `g`\\)" expect_warning(rename(x = x, replace = replace_list), expected_response) }) test_that("Renaming list with an conflicting variable name - without warning", { x <- list(a = 1, b = 2, c = 3) replace_list <- c("c" = "f", "b" = "e", "a" = "f") result <- rename(x = x, replace = replace_list, warn_duplicated = FALSE) expect_identical(result, list(f = 1, e = 2, f = 3)) }) # This batch tests the boundary cases test_that("Renaming to the same value", { #One element is renamed to itself x <- list(a = 1, b = 2, c = 3) replace_list <- c("a" = "a") expected_value <- x expect_identical(rename(x = x, replace = replace_list), expected_value) }) test_that("Renaming list with an empty renaming vector", { #No renames are requested (which could happen if the calling code was under a lot of automated code.) x <- list(a = 1, b = 2, c = 3) replace_list <- c() expected_value <- x expect_identical(rename(x = x, replace = replace_list), expected_value) }) test_that("Single Swapping (shouldn't cause problems)", { #Notice how a becomes c, while c becomes f. x <- list(a = 1, b = 2, c = 3) replace_list <- c("c" = "f", "b" = "e", "a" = "c") expected_value <- list(c = 1, e = 2, f = 3) actual_value <- rename(x = x, replace = replace_list) expect_identical(actual_value, expected_value) }) test_that("Double Swapping (shouldn't cause problems)", { #Notice how a becomes c, while c becomes a. x <- list(a = 1, b = 2, c = 3) replace_list <- c("c" = "a", "b" = "z", "a" = "c") expected_value <- list(c = 1, z = 2, a = 3) actual_value <- rename(x = x, replace = replace_list) expect_identical(actual_value, expected_value) }) test_that("Multiple assignments for the same element", { #Notice how it requests to change a to d, e, and f. x <- list(a = 1, b = 2, c = 3) replace_list <- c("a" = "d", "a" = "e", "a" = "f") expected_response <- "The following `from` values were not present in `x`: a, a" expected_value <- list(a = 1, a = 2, a = 3) expect_message(rename(x = x, replace = replace_list), expected_response) }) plyr/tests/testthat/test-rply.r0000644000175100001440000000733612512025470016415 0ustar hornikuserscontext("r?ply") test_that("Side effects for r_ply", { counts <- c(0, 1, 5) # Simple function with side effect of incrementing i in an outer environment # by one inc <- function() { i <<- i + 1; invisible(NULL) } # For each of the possible counts, check that exactly n side effects are seen # for various types of invocations of inc: As a statement, as a function call # or as a function calling the function. Calling r_ply with a function that # returns the inc function should not produce any side effects, this is # intentional. for (n in counts) { i <- 0 r_ply(n, inc) expect_equal(i, n, info="inc") i <- 0 r_ply(n, inc()) expect_equal(i, n, info="inc()") i <- 0 r_ply(n, inc() + inc()) expect_equal(i, 2 * n, info="inc() + inc()") i <- 0 r_ply(n, function() inc()) expect_equal(i, n, info="function() inc()") i <- 0 r_ply(n, function() inc() + inc()) expect_equal(i, 2 * n, info="function() inc() + inc()") i <- 0 r_ply(n, function() inc) expect_equal(i, 0, info="function() inc") } }) test_that("Side effects for rlply", { counts <- c(0, 1, 5) # Similar to the test for r_ply, now there is also a return value in incition # to the side effect inc <- function() { i <<- i + 1 } # The test now checks, in incition to side effect count, that the returned # list is correct for (n in counts) { i <- 0 res <- rlply(n, inc) expect_equal(res, as.list(seq_len(n)), info="inc") expect_equal(i, n, info="inc") i <- 0 res <- rlply(n, inc()) expect_equal(res, as.list(seq_len(n)), info="inc()") expect_equal(i, n, info="inc()") i <- 0 res <- rlply(n, function() inc()) expect_equal(res, as.list(seq_len(n)), info="function() inc()") expect_equal(i, n, info="function() inc()") # Funny case: A function that returns a function, this is not # handled at all i <- 0 rlply(n, function() inc) expect_equal(i, 0, info="function() inc") } }) test_that("Side effects for raply", { counts <- c(0, 1, 5) inc <- function() { i <<- i + 1 } for (n in counts) { # This is funny. Why does raply(.n, inc) return a named vector only for # .n == 1? if (n == 0) { exp_res <- logical() } else if (n == 1) { exp_res <- setNames(nm = 1) } else exp_res <- seq_len(n) i <- 0 res <- raply(n, inc) expect_equal(res, exp_res, info="inc") expect_equal(i, n, info="inc") i <- 0 res <- raply(n, inc()) expect_equal(res, exp_res, info="inc()") expect_equal(i, n, info="inc()") i <- 0 res <- raply(n, function() inc()) expect_equal(res, exp_res, info="function() inc()") expect_equal(i, n, info="function() inc()") } }) test_that("Side effects for rdply", { counts <- c(0, 1, 5) inc <- function() { i <<- i + 1; data.frame(i = i) } for (n in counts) { if (n == 0) { exp_res <- data.frame() } else { exp_res <- data.frame(.n = 1L:n, i = 1L:n, stringsAsFactors = FALSE) } i <- 0 res <- rdply(n, inc) expect_equal(res, exp_res, info="inc") expect_equal(i, n, info="inc") i <- 0 res <- rdply(n, inc()) expect_equal(res, exp_res, info="inc()") expect_equal(i, n, info="inc()") i <- 0 res <- rdply(n, function() inc()) expect_equal(res, exp_res, info="function() inc()") expect_equal(i, n, info="function() inc()") } }) test_that("Invalid arguments for r_ply", { expect_error(r_ply(-3, identity)) expect_error(r_ply("abc", identity)) expect_error(r_ply(c(1,2), identity)) expect_error(r_ply(list(5), identity)) }) test_that(".id column for rdply", { expect_equal(rdply(5, 10)$.n, 1:5) expect_equal(rdply(5, 10, .id=".x")$.x, 1:5) }) plyr/tests/testthat/test-arrange.r0000644000175100001440000000034512512025470017037 0ustar hornikuserscontext("Arrange") test_that("bogus sort order", { expect_error(arrange(mtcars, diff(mpg)), "Length of ordering vectors") }) test_that("descending sort", { expect_equal(arrange(mtcars, desc(mpg)), arrange(mtcars, -mpg)) }) plyr/tests/testthat/test-array.r0000644000175100001440000001531012725620604016542 0ustar hornikuserscontext("Arrays") test_that("incorrect result dimensions raise errors", { fs <- list( function(x) rep(x, sample(10, 1)), function(x) if (x < 5) x else matrix(x, 2, 2), function(x) as.list(rep(x, sample(10, 1))), function(x) if (x < 5) list(x) else matrix(list(x), 2, 2) ) expect_that(laply(1:10, fs[[1]]), throws_error("same dim")) expect_that(laply(1:10, fs[[2]]), throws_error("same number")) expect_that(laply(1:10, fs[[3]]), throws_error("same dim")) expect_that(laply(1:10, fs[[4]]), throws_error("same number")) }) test_that("incompatible result types raise errors", { f <- function(x) if (x < 5) c(x, x) else as.list(x) expect_that(laply(1:10, f), throws_error("compatible type")) }) test_that("zero length margin operates on whole object", { a <- array(1:24, 2:4) expect_that(alply(a, NULL, sum)[[1]], equals(sum(1:24))) }) test_that("results must have positive dimensions", { expect_that( aaply(matrix(0,2,2), 2, function(x) NULL), throws_error("one or more dimensions")) }) test_that("simple operations equivalent to vectorised form", { expect_that(laply(1:10, mean), is_equivalent_to(1:10)) expect_that(laply(1:10, sqrt), is_equivalent_to(sqrt(1:10))) }) test_that("array binding is correct", { library(abind) f <- function(x) matrix(x, 2, 2) m2d <- lapply(1:10, f) m3d <- abind(m2d, along = 0) expect_that(laply(1:10, f), is_equivalent_to(m3d)) f <- function(x) array(x, c(2, 2, 2)) m3d <- lapply(1:10, f) m4d <- abind(m3d, along = 0) expect_that(laply(1:10, f), is_equivalent_to(m4d)) }) test_that("array binding of lists is correct", { #this is identical to the previous test but in list mode f <- function(x) matrix(as.list(x), 2, 2) m2d <- lapply(1:10, f) #as abind itself doesn't do lists... m3d <- aperm(array(do.call(c, m2d), c(2, 2, 10)), c(3,1,2)) expect_that(laply(1:10, f), is_equivalent_to(m3d)) f <- function(x) array(as.list(x), c(2, 2, 2)) m3d <- lapply(1:10, f) m4d <- aperm(array(do.call(c, m3d), c(2, 2, 2, 10)), c(4, 1, 2, 3)) expect_that(laply(1:10, f), is_equivalent_to(m4d)) }) # Basis of test contributed by anonymous reviewer. test_that("idempotent function equivalent to permutation", { x <- array(1:24, 4:2, dimnames = list(LETTERS[1:4], letters[24:26], letters[1:2])) perms <- unique(alply(as.matrix(subset(expand.grid(x=0:3,y=0:3,z=0:3), (x + y + z) > 0 & !any(duplicated(setdiff(c(x,y,z), 0))))), 1, function(x) setdiff(x, 0))) aperms <- llply(perms, function(perm) aperm(x, unique(c(perm, 1:3)))) aaplys <- llply(perms, function(perm) aaply(x, perm, identity)) for (i in seq_along(aperms)) { perm <- paste(perms[[i]], collapse = ", ") expect_that(dim(aaplys[[i]]), equals(dim(aperms[[i]])), perm) expect_that(unname(dimnames(aaplys[[i]])), equals(dimnames(aperms[[i]])), perm) expect_that(aaplys[[i]], is_equivalent_to(aperms[[i]]), perm) } }) test_that("alply sets dims and dimnames, equivalence to permutation", { x <- array(1:24, 4:2, dimnames = list(dim1=LETTERS[1:4], dim2=letters[c(24,26,25)], dim3=NULL)) #unlisting an alply should leave elements the the same order as #an aperm with the unused dimensions shifted to the front. #check against all ways to split this array p_alply <- unique(alply(as.matrix(subset(expand.grid(x=0:3,y=0:3,z=0:3), (x + y + z) > 0 & !any(duplicated(setdiff(c(x,y,z), 0))))), 1, function(x) setdiff(x, 0))) p_aperm <- llply(p_alply, function(x) union(setdiff(1:3, x), x)) alplys <- lapply(p_alply, alply, .data=x, identity, .dims = TRUE) #alply will fill in dimnames on a dim that has none, so match that here dimnames(x)[[3]] <- c("1", "2") aperms <- llply(p_aperm, .fun=aperm, a=x) m_ply(cbind(x_perm=p_alply, x_ply=alplys, x_aperm=aperms), function(x_perm, x_ply, x_aperm) { expect_equivalent(dim(x_ply), dim(x)[x_perm]) expect_equivalent(dimnames(x_ply), dimnames(x)[x_perm]) expect_equivalent(dim(x_ply), dim(x_aperm)[(length(dim(x)) - length(x_perm) + 1):(length(dim(x)))]) expect_equivalent(as.vector(unlist(x_ply)), as.vector(x_aperm)) }) }) # Test contributed by Baptiste Auguie test_that("single column data frames work when treated as an array", { foo <- function(a="a", b="b", c="c", ...){ paste(a, b, c, sep="") } df <- data.frame(b=1:2) res <- adply(df, 1, splat(foo)) expect_that(res$b, equals(1:2)) expect_that(as.character(res$V1), equals(c("a1c", "a2c"))) }) test_that("aaply equivalent to apply with correct permutation", { a <- matrix(seq_len(400), ncol = 20) expect_equivalent(rowMeans(a), aaply(a, 1, mean)) expect_equivalent(colMeans(a), aaply(a, 2, mean)) b <- structure(a, dimnames = amv_dimnames(a)) expect_equivalent(rowMeans(b), aaply(b, 1, mean)) expect_equivalent(colMeans(b), aaply(b, 2, mean)) }) test_that("array reconstruction correct with missing cells", { df <- data.frame(i = rep(1:3, each = 12), j = rep(1:3, each = 4), v = 1:36) df <- subset(df, i != j) da <- daply(df, .(i, j), function(q) sum(q$v)) dd <- ddply(df, .(i, j), summarise, v1 = sum(v)) m <- matrix(NA, 3, 3) m[cbind(dd$i, dd$j)] <- dd$v1 expect_that(da, equals(m, check.attributes = FALSE)) }) set_dimnames <- function(x, nm) { dimnames(x) <- nm x } test_that("array names do not affect output", { base <- array(1:48, dim = c(12, 4)) arrays <- list( none = base, numeric = set_dimnames(base, list(R = 1:12, C = 1:4)), numeric_rev = set_dimnames(base, list(R = 12:1, C = 4:1)), alpha = set_dimnames(base, list(R = letters[1:12], C = LETTERS[1:4])), alpha_rev = set_dimnames(base, list(R = letters[12:1], C = LETTERS[4:1])) ) for (name in names(arrays)) { array <- arrays[[name]] expect_that(aaply(array, 1, sum), equals(rowSums(array), check.attributes = FALSE), info = name) expect_that(aaply(array, 2, sum), equals(colSums(array), check.attributes = FALSE), info = name) } }) test_that("no support for duplicate names (#211)", { n <- function(x) { setNames(x, letters[c(1:9,2)]) } B <- list(X=n(1:10), Y=n(11:20), Z=n(21:30)) expect_warning(laply(B, identity), "Duplicate names") AB <- c('a', 'b', 'a', 'b') ABCD <- c('a', 'b', 'c', 'd') ar <- array(rep(rep(rep(1:4, 4), 4), 2), dim=c(4, 4, 2), dimnames=list(ABCD, ABCD, c('i', 'ii'))) ar[,,2] <- ar[,,2]+4 dimnames(ar)[1:2] <- list(AB, AB) if (getRversion() >= "3.4.0") { expect_error(aaply(ar, 3, identity), "duplicated") } else { expect_warning(aaply(ar, 3, identity), "Duplicate names") } }) plyr/tests/testthat/test-data-frame.r0000644000175100001440000000544412511213671017427 0ustar hornikuserscontext("Data frames") test_that("results ordered in order of split variables", { d <- data.frame(x = c("a","b"), y = c("d","c"), stringsAsFactors = FALSE) plyed <- ddply(d, c("x" ,"y")) expect_that(plyed$x, equals(c("a", "b"))) expect_that(plyed$y, equals(c("d", "c"))) plyed <- ddply(d, c("y" ,"x")) expect_that(plyed$y, equals(c("c", "d"))) expect_that(plyed$x, equals(c("b", "a"))) }) test_that("character vectors not change to factors", { d <- data.frame(x = c("a","b"), y = c("d","c"), stringsAsFactors = FALSE) plyed <- ddply(d, c("x" ,"y"), nrow) expect_that(plyed$x, is_a("character")) expect_that(plyed$y, is_a("character")) plyed <- ddply(d, c("x"), identity) expect_that(plyed$x, is_a("character")) expect_that(plyed$y, is_a("character")) plyed <- ddply(d, c("x" ,"y"), nrow, .drop = FALSE) expect_that(plyed$x, is_a("character")) expect_that(plyed$y, is_a("character")) plyed <- ddply(d, c("x"), identity, .drop = FALSE) expect_that(plyed$x, is_a("character")) expect_that(plyed$y, is_a("character")) }) # Bug report contributed by Thomas P Harte test_that("column names not changed", { d1 <- data.frame(`--WEIRD`=1:5, a = letters[1:5], `-b` = 1:5, check.names = FALSE) d2 <- ddply(d1, .(`--WEIRD`), force) expect_that(names(d2), equals(names(d1))) }) # Bug reported by Karl Ove Hufthammer test_that("label variables always preserved", { d <- data.frame(x = 101:104, y = 1:4) f <- function(df) sum(df$y) g <- function(df) if(df$x <= 102) sum(df$y) out1 <- ddply(d, "x", f) # This one works correctly out2 <- ddply(d, "x", g) # This one doesn’t expect_that(names(out1), equals(names(out2))) expect_that(out1$x[1:2], equals(out2$x)) }) # Test for #140 test_that(".id column can be renamed or dropped", { l <- llply(1:4, function(i) rep(i, i)) names(l) <- 1:4 f <- function(l) data.frame(sum=sum(unlist(l))) out1 <- ldply(l, f) out2 <- ldply(l, f, .id='x') out3 <- ldply(l, f, .id=NULL) expect_equal(names(out1), c('.id', 'sum')) expect_equal(names(out2), c('x', 'sum')) expect_equal(names(out3), c('sum')) expect_identical(out1$.id, names(l)) expect_identical(out2$x, factor(names(l))) out4 <- ldply(l, f, .id='sum') # names conflict expect_equal(names(out4), c('sum')) out5 <- ldply(l, f, .id=NA) # defaults expect_equal(names(out5), c('.id', 'sum')) expect_identical(out5$.id, names(l)) out6 <- ldply(l, f, .id='.id') # defaults expect_equal(names(out6), c('.id', 'sum')) expect_identical(out6$.id, factor(names(l))) # no names = no .id column expect_equal(ldply(unname(l), f, .id=NA), out3) expect_equal(ldply(unname(l), f, .id="Name"), out3) expect_equal(ldply(unname(l), f, .id=NULL), out3) # todo: test for list with attr(,'split-labels'), needed? }) plyr/tests/testthat/test-revalue.r0000644000175100001440000001211012725616513017066 0ustar hornikuserscontext("Replace values") # Character vector chr <- c("A2", "A1", "A3", "A1") # Factor: To complicate things, set levels in a different order fac <- factor(c("A1", "A2", "A3"), levels=c("A2", "A1", "A3")) # Numeric vector num <- c(4, 1, 5, 8) # test warn if any missing test_that("Empty mapping results in no change", { expect_identical(mapvalues(chr, from = NULL, to = NULL), chr) expect_identical(revalue(chr, NULL), chr) expect_identical(mapvalues(fac, from = NULL, to = NULL), fac) expect_identical(revalue(fac, NULL), fac) }) test_that("Basic mapping works", { newchr <- c("B2", "A1", "B3", "A1") expect_identical(mapvalues(chr, c("A3", "A2"), c("B3", "B2")), newchr) expect_identical(revalue(chr, c(A3="B3", A2="B2")), newchr) newfac <- factor(c("A1", "B2", "B3"), levels=c("B2", "A1", "B3")) expect_identical(mapvalues(fac, c("A3", "A2"), c("B3", "B2")), newfac) expect_identical(revalue(fac, c(A3="B3", A2="B2")), newfac) newnum <- c(40, 1, 5, 80) expect_identical(mapvalues(num, c(4, 8), c(40, 80)), newnum) # revalue doesn't work for numeric vectors }) test_that("Mapping with repeated original values - uses first instance, and gives message", { newchr <- c("A2", "B1", "A3", "B1") expect_message( expect_identical(mapvalues(chr, c("A1", "A1"), c("B1", "C1")), newchr)) expect_message( expect_identical(revalue(chr, c(A1="B1", A1="C1")), newchr)) newfac <- factor(c("B1", "A2", "A3"), levels=c("A2", "B1", "A3")) expect_message( expect_identical(mapvalues(fac, c("A1", "A1"), c("B1", "C1")), newfac)) expect_message( expect_identical(revalue(fac, c(A1="B1", A1="C1")), newfac)) newnum <- c(4, 1, 5, 80) expect_message( expect_identical(mapvalues(num, c(8, 8), c(80, 800)), newnum)) }) test_that("Mapping with repeated new value (for factors, levels are in earliest position)", { newchr <- c("BX", "A1", "BX", "A1") expect_identical(mapvalues(chr, c("A3", "A2"), c("BX", "BX")), newchr) expect_identical(revalue(chr, c(A3="BX", A2="BX")), newchr) newfac <- factor(c("A1", "BX", "BX"), levels=c("BX", "A1")) expect_identical(revalue(fac, c(A3="BX", A2="BX")), newfac) # Factors can have levels in different orders newfac2 <- factor(c("BX", "A2", "BX"), levels=c("A2", "BX")) expect_identical(revalue(fac, c(A3="BX", A1="BX")), newfac2) }) test_that("Mapping with multiple matches works", { newchr <- c("B2", "B1", "A3", "B1") expect_identical(mapvalues(chr, c("A1", "A2"), c("B1", "B2")), newchr) expect_identical(revalue(chr, c(A1="B1", A2="B2")), newchr) # Not relevant for factors because they can't have two levels be the same }) test_that("Mapping with non-matching original levels results in no change, and message", { expect_message( expect_identical(revalue(chr, c(A4="B4")), chr)) expect_message( expect_identical(revalue(chr, c(A3="B3", A4="B4")), c("A2", "A1", "B3", "A1"))) expect_message( expect_identical(revalue(fac, c(A4="B4")), fac)) expect_message( expect_identical(revalue(fac, c(A3="B3", A4="B4")), factor(c("A1", "A2", "B3"), levels=c("A2", "A1", "B3")))) }) test_that("Swapping values works", { newchr <- c("A3", "A1", "A2", "A1") expect_identical(mapvalues(chr, c("A2", "A3"), c("A3", "A2")), newchr) expect_identical(revalue(chr, c(A2="A3", A3="A2")), newchr) newfac <- factor(c("A1", "A3", "A2"), levels=c("A3", "A1", "A2")) expect_identical(mapvalues(fac, c("A2", "A3"), c("A3", "A2")), newfac) expect_identical(revalue(fac, c(A2="A3", A3="A2")), newfac) }) test_that("Mapping with ' ' and '$' in original and replacement works", { chr2 <- c("A2", "A $1", "A3", "A $1") expect_identical(revalue(chr2, c("A $1"="B $1")), c("A2", "B $1", "A3", "B $1")) fac2 <- factor(c("A $1", "A2", "A3"), levels=c("A2", "A $1", "A3")) expect_identical(revalue(fac2, c("A $1"="B $1")), factor(c("B $1", "A2", "A3"), levels=c("A2", "B $1", "A3"))) }) test_that("revalue and mapvalues only accept atomic vectors", { expect_error(revalue(list(A=3), c("3"=30))) expect_error(mapvalues(list(A=3), 3, 30)) }) test_that("revalue and mapvalues accept empty vectors and NULL", { expect_identical(revalue(character(0), c("3"=30), warn_missing=FALSE), character(0)) expect_identical(mapvalues(character(0), 3, 30, warn_missing=FALSE), character(0)) expect_identical(revalue(NULL, c("3"=30), warn_missing=FALSE), NULL) expect_identical(mapvalues(NULL, 3, 30, warn_missing=FALSE), NULL) }) test_that("revalue and mapvalues respect warn_missing", { # revalue expect_message(revalue("a", c("a"="A")), NA) expect_message(revalue("a", c("b"="B"), warn_missing=TRUE)) expect_message(revalue("a", c("b"="B"), warn_missing=FALSE), NA) # mapvalues expect_message(mapvalues("a", "a", "A"), NA) expect_message(mapvalues("a", "b", "B", warn_missing=TRUE)) expect_message(mapvalues("a", "b", "B", warn_missing=FALSE), NA) # mapvalues with factors expect_message(mapvalues(factor("a"), "a", "A"), NA) expect_message(mapvalues(factor("a"), "b", "B", warn_missing=TRUE)) expect_message(mapvalues(factor("a"), "b", "B", warn_missing=FALSE), NA) }) plyr/tests/testthat/test-split-indices.r0000644000175100001440000000075212506324547020203 0ustar hornikuserscontext("Split indices") test_that("Error if n too small", { expect_error(split_indices(1:10, -5), "n must be") }) test_that("index expands if n too small", { expect_equal(split_indices(1:10, 5), as.list(1:10)) }) test_that("n is optional in split indices", { x <- sample(100) a <- split_indices(x) b <- split_indices(x, 100) expect_equal(a, b) }) test_that("succeeds for large number of groups", { i <- 2097142 expect_equal(length(split_indices(seq_len(i), i)), i) }) plyr/tests/testthat/test-progress.r0000644000175100001440000000027712506322163017272 0ustar hornikuserscontext("Progress bars") test_that("unknown progress bar raised warning, not error", { expect_warning( llply(1:10, identity, .progress = "blah"), "Cannot find progress bar" ) }) plyr/tests/testthat/test-simplify-df.r0000644000175100001440000001132212512025470017640 0ustar hornikuserscontext("List to data frame") a <- as.POSIXct(1, origin="2011-01-01") test_that("classes preserved for atomic scalars", { li <- list(a, a + 1) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(class(df[,1]), equals(class(a))) expect_that(nrow(df), equals(2)) expect_that(ncol(df), equals(1)) }) test_that("classes preserved for atomic scalars in list of length 1", { li <- list(a) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(1)) expect_that(ncol(df), equals(1)) expect_that(class(df[,1]), equals(class(a))) }) test_that("classes preserved for atomic vectors", { li <- list(c(a, a + 1), c(a + 2, a + 3)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(2)) expect_that(ncol(df), equals(2)) expect_that(class(df[,1]), equals(class(a))) }) test_that("classes preserved for atomic vectors in list of length 1", { li <- list(c(a, a + 1)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(1)) expect_that(ncol(df), equals(2)) expect_that(class(df[,1]), equals(class(a))) }) test_that("classes preserved for data.frames", { li <- list(data.frame(V1=a, V2=a + 1), data.frame(V1=a + 2, V2=a + 3)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(2)) expect_that(ncol(df), equals(2)) expect_that(class(df[,1]), equals(class(a))) }) test_that("names preserved for atomic scalars", { li <- list(c(foo=1), c(foo=2)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(2)) expect_that(ncol(df), equals(1)) expect_that(names(df), equals(c("foo"))) }) test_that("names preserved for atomic scalars in list of length 1", { li <- list(c(foo=1)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(1)) expect_that(ncol(df), equals(1)) expect_that(names(df), equals(c("foo"))) }) test_that("names preserved for atomic vectors", { li <- list(c(foo=1, bar=2), c(foo=3, bar=4)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(2)) expect_that(ncol(df), equals(2)) expect_that(class(df), equals("data.frame")) expect_that(names(df), equals(c("foo","bar"))) }) test_that("names preserved for atomic vectors n list of length 1", { li <- list(c(foo=1, bar=2)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(1)) expect_that(ncol(df), equals(2)) expect_that(names(df), equals(c("foo","bar"))) }) test_that("names preserved for data.frames", { li <- list(data.frame(foo=1, bar=2), data.frame(foo=3, bar=4)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(2)) expect_that(ncol(df), equals(2)) expect_that(names(df), equals(c("foo","bar"))) }) test_that("names preserved and filled for atomic vectors", { li <- list(c(foo=1, 2), c(foo=3, 4)) df <- list_to_dataframe(li) expect_that(df, is_a("data.frame")) expect_that(nrow(df), equals(2)) expect_that(ncol(df), equals(2)) expect_that(names(df), equals(c("foo","V1"))) }) test_that("names captured from list", { li <- list(c = 5:15, b = 5:10, a = 1:5) df <- ldply(li, function(x) mean(x)) expect_that(df$.id, equals(names(li))) df <- ldply(li, function(x) { if (any(x >= 10)) mean(x) }) expect_that(df$.id, equals(names(li)[-3])) }) test_that("correct number of rows outputted", { testdata <- data.frame(a = rep(letters[1:3], each = 5), b = rnorm(15)) res <- ddply(testdata, .(a), function(x) c(mean(x$b), sd(x$b))) expect_that(nrow(res), equals(3)) }) test_that("matrices converted to data frames, without id column", { mat <- matrix(1:20, ncol = 4) colnames(mat) <- letters[1:4] li <- list(a = mat, b = mat) df <- list_to_dataframe(li) expect_equal(nrow(df), 2 * nrow(mat)) expect_equal(names(df), c("a", "b", "c", "d")) }) test_that("matrices converted to data frames, with id column", { mat <- matrix(1:20, ncol = 4) colnames(mat) <- letters[1:4] li <- list(a = mat, b = mat) df <- plyr:::list_to_dataframe(li, id_name = "my_id") expect_equal(nrow(df), 2 * nrow(mat)) expect_equal(names(df), c("my_id", "a", "b", "c", "d")) expect_equal(df$my_id, rep(c("a", "b"), c(5, 5))) }) test_that("matrices converted to data frames, with id column as factor", { mat <- matrix(1:20, ncol = 4) colnames(mat) <- letters[1:4] li <- list(a = mat, b = mat) df <- list_to_dataframe(li, id_name = "my_id", id_as_factor = TRUE) expect_equal(nrow(df), 2 * nrow(mat)) expect_equal(names(df), c("my_id", "a", "b", "c", "d")) expect_equal(levels(df$my_id), c("a", "b")) }) plyr/tests/testthat/quickdf.r0000644000175100001440000000022612034574152016074 0ustar hornikuserscontext("quickdf") test_that("make_names handles NAs", { x <- 1:3 names(x) <- c("", "a", NA) expect_equal(make_names(x), c("X1", "a", NA)) }) plyr/tests/testthat/test-empty.r0000644000175100001440000000245512043514644016567 0ustar hornikuserscontext("Empty inputs") test_that("empty arrays returns object of same shape", { x <- structure(integer(0), .Dim = c(0L, 0L, 0L)) expect_that(aaply(x, 1, identity), equals(logical())) expect_that(aaply(x, 2, identity), equals(logical())) expect_that(aaply(x, 3, identity), equals(logical())) expect_that(adply(x, 1, identity), equals(data.frame())) expect_that(alply(x, 1, identity), is_equivalent_to(list())) }) test_that("empty lists return an empty object", { expect_that(llply(list(), identity), equals(list())) expect_that(laply(list(), identity), equals(logical())) expect_that(ldply(list(), identity), equals(data.frame())) }) test_that("empty data frames returns empty object", { df <- data.frame(x = numeric(0), a = numeric(0)) expect_that(ddply(df, "a", identity), equals(df)) expect_that(dlply(df, "a", identity), equals(list())) expect_that(daply(df, "a", identity), equals(logical())) }) test_that("empty data frame results returns empty object", { df <- data.frame(a = 1:10) expect_that( ddply(df, "a", function(x) NULL), equals(data.frame())) expect_that( dlply(df, "a", function(x) NULL), equals(rep(list(NULL), 10), check.attributes = FALSE)) expect_that( daply(df, "a", function(x) NULL), throws_error("must have one or more dimensions")) }) plyr/tests/testthat/test-inform.r0000644000175100001440000000345012512025772016717 0ustar hornikuserscontext("Informative messages") test_that(".inform parameter works for all l?ply functions", { funcnames <- ls(name = asNamespace("plyr"), pattern = "^l[^i]ply$") old_options <- options(show.error.messages = FALSE) on.exit(options(old_options), add = TRUE) input <- 1:10 for (funcname in funcnames) { func <- get(funcname, asNamespace("plyr")) expect_error(func(input, function(...) stop("qq"), .inform = TRUE), "piece 1", info = funcname) } }) test_that(".inform parameter works for all d?ply functions", { funcnames <- ls(name = asNamespace("plyr"), pattern = "^d[^i]ply$") old_options <- options(show.error.messages = FALSE) on.exit(options(old_options), add = TRUE) input <- data.frame(a = 1:10) for (funcname in funcnames) { func <- get(funcname, asNamespace("plyr")) expect_error(func(input, .(), function(...) stop("qq"), .inform = TRUE), "piece 1", info = funcname) } }) test_that(".inform parameter works for all a?ply functions", { funcnames <- ls(name = asNamespace("plyr"), pattern = "^a[^i]ply$") old_options <- options(show.error.messages = FALSE) on.exit(options(old_options), add = TRUE) input <- data.frame(a = 1:10) for (funcname in funcnames) { func <- get(funcname, asNamespace("plyr")) expect_error(func(input, 1, function(...) stop("qq"), .inform = TRUE), "piece 1", info = funcname) } }) test_that(".inform parameter works for all m?ply functions", { funcnames <- ls(name = asNamespace("plyr"), pattern = "^m[^i]ply$") old_options <- options(show.error.messages = FALSE) on.exit(options(old_options), add = TRUE) input <- data.frame(a = 1:10) for (funcname in funcnames) { func <- get(funcname, asNamespace("plyr")) expect_error(func(input, function(...) stop("qq"), .inform = TRUE), "piece 1", info = funcname) } }) plyr/tests/testthat/test-mapply.r0000644000175100001440000000160312034020705016713 0ustar hornikuserscontext("Mapply") test_that("Lack of names is preserved", { list <- mlply(cbind(1:5, 1:5), list) expect_that(names(list[[1]]), equals(NULL)) vector <- mlply(cbind(1:5, 1:5), c) expect_that(names(vector[[1]]), equals(NULL)) }) test_that("No expansion creates single output dimension", { a <- maply(cbind(1:20, 1:20), "+", .expand = FALSE) expect_that(a, is_equivalent_to(1:20 * 2)) d <- mdply(cbind(1:20, 1:20), "+", .expand = FALSE) expect_that(d$X1, equals(1:20)) expect_that(d$V1, equals(1:20 * 2)) }) test_that("Expand = TRUE creates multiple output dimensions", { a <- maply(cbind(1:20, 1:20), "+", .expand = TRUE) expect_that(dim(a), equals(c(20, 20))) expect_that(diag(a), is_equivalent_to(1:20 * 2)) d <- mdply(cbind(1:20, 1:20), "+", .expand = TRUE) expect_that(d$X1, equals(1:20)) expect_that(d$X2, equals(1:20)) expect_that(d$V1, equals(1:20 * 2)) }) plyr/tests/testthat/test-parallel.r0000644000175100001440000000213712725616571017233 0ustar hornikuserscontext("Parallel") with_parallel <- function(code) { skip_on_cran() skip_if_not_installed("doParallel") doParallel::registerDoParallel(cores = 2) on.exit(doParallel::stopImplicitCluster()) code } # test_that("l_ply respects .parallel", { # with_parallel( # expect_that( # l_ply(c(0.1, 0.1), Sys.sleep, .parallel = TRUE), # takes_less_than(0.18)) # ) # }) test_that("l_ply + .parallel complains about invalid arguments", { with_parallel({ expect_message( l_ply(1:10, force, .parallel = TRUE, .print = TRUE), "Printing disabled") expect_message( l_ply(1:10, force, .parallel = TRUE, .progress = "text"), "Progress disabled") }) }) test_that("llply + .parallel complains about invalid arguments", { with_parallel({ expect_message( llply(1:10, force, .parallel = TRUE, .progress = "text"), "Progress disabled") }) }) test_that(".paropts passes options to foreach", { combine <- function(a, b) NULL with_parallel(x <- llply(1:10, identity, .parallel = TRUE, .paropts = list(.combine = combine))) expect_equal(x, NULL) }) plyr/tests/testthat/test-split-labels.r0000644000175100001440000000034112034020705020002 0ustar hornikuserscontext("Split labels") test_that("Empty levels preserved", { df <- data.frame(fac1 = letters[1:4], fac2 = LETTERS[1:4]) a <- split_labels(df, FALSE) b <- split_labels(df[1, ], FALSE) expect_that(a, equals(b)) }) plyr/tests/testthat/test-quote.r0000644000175100001440000000352712512025470016562 0ustar hornikuserscontext("Quoting") test_that("quoting captures current environment", { x <- .(a, b, c) expect_that(attr(x, "env"), is_identical_to(environment())) x <- as.quoted(c("a", "b", "c")) expect_that(attr(x, "env"), is_identical_to(environment())) }) test_that("can't pass bogus environment for evaluation", { expect_that(eval.quoted(.(x), envir = -1), throws_error("must be")) }) test_that("evaluation takes place in correct environment", { a <- 2 x <- local({ a <- 1 .(a) }) expect_that(eval.quoted(x)$a, equals(1)) df <- data.frame(x = 1:10) x <- local({ a <- 1 .(x * a) }) expect_that(eval.quoted(x, df)[[1]], equals(1:10)) }) test_that("failsafe evaluation", { b <- 2 x <- local({ a <- 1 .(a) }) expect_that(eval.quoted(x, try = TRUE)$b, equals(NULL)) }) test_that("names work for long expressions", { # nolint start q <- .(foo = barjasdfgjadhfgjsdhfgusdhfgusheguisdhguioahsrofasdgsdfgsdfg + dfgafgasdfgsdfgsdfgsdfgsdfgsdfgsdfg) # nolint end expect_that(names(q), equals("foo")) }) test_that("printing works", { expect_that(print(as.quoted(NULL)), testthat::prints_text("list()")) expect_that(print(as.quoted("id")), testthat::prints_text("id")) expect_that(print(as.quoted("3")), testthat::prints_text("3")) expect_that(print(as.quoted(c("a", "b"))), testthat::prints_text("List of 2")) expect_that(print(as.quoted(~a+b)), testthat::prints_text("List of 2")) expect_that(print(as.quoted(~a)), testthat::prints_text("List of 1")) expect_that(print(as.quoted(as.name("a"))), testthat::prints_text("List of 1")) }) test_that("concatenation", { expect_equal(c(.(a), .(b)), .(a, b)) expect_equal(c(.(a), .(b, c)), .(a, b, c)) expect_equal(c(.(a), .(b), .(c)), .(a, b, c)) }) test_that("extraction", { expect_equal(.(a, b)[1], .(a)) expect_equal(.(a, b, c)[-1], .(b, c)) }) plyr/tests/testthat/test-mutate.r0000644000175100001440000000137312512025470016721 0ustar hornikuserscontext("Mutate") test_that("mutate behaves the same as transform", { m1 <- mutate(airquality, Ozone = -Ozone) t1 <- transform(airquality, Ozone = -Ozone) expect_that(m1, equals(t1)) m2 <- mutate(airquality, new = -Ozone, Temp = (Temp - 32) / 1.8) t2 <- transform(airquality, new = -Ozone, Temp = (Temp - 32) / 1.8) expect_that(m2, equals(t2)) }) test_that("columns can depend on previously created", { m1 <- mutate(airquality, dm = Month + Day / 31, dm2 = 2 * dm) dm2 <- with(airquality, 2 * (Month + Day / 31)) expect_that(m1$dm2, equals(dm2)) }) test_that("mutating a column twice does not work", { # For compatibility, see #218 m1 <- mutate(airquality, dm = 0, dm = Month + Day / 31) expect_equal(m1$dm, rep(0, length(m1$dm))) }) plyr/tests/testthat/test-ninteraction.r0000644000175100001440000000345612512025470020123 0ustar hornikuserscontext("id") simple_vectors <- list( letters, sample(letters), 1:26 ) test_that("for vector, equivalent to rank", { for (case in simple_vectors) { rank <- rank(case, ties = "min") rank_df <- id(as.data.frame(case)) expect_that(rank, is_equivalent_to(rank_df)) } }) test_that("duplicates numbered sequentially", { for (case in simple_vectors) { rank <- rep(rank(case, ties = "min"), each = 2) rank_df <- id(as.data.frame(rep(case, each = 2))) expect_that(rank, is_equivalent_to(rank_df)) } }) test_that("n calculated correctly", { n <- function(x) attr(id(x), "n") for (case in simple_vectors) { expect_that(n(as.data.frame(case)), equals(26)) } }) test_that("for vector + constant, equivalent to rank", { for (case in simple_vectors) { rank <- rank(case, ties = "min") after <- id(data.frame(case, x = 1)) before <- id(data.frame(x = 1, case)) expect_that(rank, is_equivalent_to(before)) expect_that(rank, is_equivalent_to(after)) } }) test_that("grids are correctly ranked", { df <- rev(expand.grid(1:10, 1:2)) expect_that(id(df), is_equivalent_to(1:20)) expect_that(id(df, drop = T), is_equivalent_to(1:20)) }) test_that("NAs are placed last", { expect_that(id_var(c(NA, 1)), is_equivalent_to(c(2, 1))) }) test_that("factor with missing levels has correct count", { id <- id_var(factor(1, NA)) expect_equal(attr(id, "n"), 1) }) test_that("zero length input gives single number", { expect_that(id(character()), is_equivalent_to(integer())) }) test_that("zero column data frame gives seq_len(nrow)", { df <- as.data.frame(matrix(nrow = 10, ncol = 0)) expect_equivalent(id(df), 1:10) }) test_that("empty list doesn't affect n", { out <- id(list(integer(), 1:5)) expect_equivalent(out, 1:5) expect_equal(attr(out, "n"), 5) }) plyr/tests/testthat/test-split-data-frame.r0000644000175100001440000000114512034617313020553 0ustar hornikuserscontext("Split data frame") test_that("correct order is used", { df <- data.frame(x = factor(1:10), y = letters[1:10]) expect_that(ddply(df, .(x), .drop = FALSE), equals(df)) expect_that(ddply(df, .(x), .drop = TRUE), equals(df)) }) test_that("factor levels are preserved", { df <- data.frame(a = factor(1:4, levels = 1:5), x = runif(4)) out1 <- ddply(df, "a", strip_splits, .drop = TRUE) out2 <- ddply(df, "a", strip_splits, .drop = FALSE) expect_is(out1$a, "factor") expect_is(out2$a, "factor") expect_equal(levels(out1$a), levels(df$a)) expect_equal(levels(out2$a), levels(df$a)) }) plyr/tests/testthat/test-list.r0000644000175100001440000000234012512025470016370 0ustar hornikuserscontext("Lists") test_that("data frame variables converted to list names", { x <- dlply(esoph, .(alcgp), function(df) mean(df$ncases)) expect_that(names(x), equals(levels(esoph$alcgp))) x <- dlply(esoph, .(alcgp, agegp), function(df) mean(df$ncases)) y <- ddply(esoph, .(alcgp, agegp), function(df) mean(df$ncases)) labs <- paste(y$alcgp, y$agegp, sep = ".") expect_that(names(x), equals(labs)) }) test_that("list names are preserved", { a <- 1:10 expect_that(names(llply(a)), equals(NULL)) names(a) <- letters[1:10] expect_that(names(llply(a)), equals(letters[1:10])) }) # Test for #142 test_that(".n column can be renamed or dropped", { f <- function() data.frame(r=runif(1)) out1 <- rdply(4, f) out2 <- rdply(4, f, .id='x') expect_equal(names(out1), c('.n', 'r')) expect_equal(names(out2), c('x', 'r')) # more testing expect_identical(out1$.n, seq_len(4)) expect_identical(out2$x, seq_len(4)) out <- rdply(4, f, .id=NULL) expect_equal(names(out), c('r')) expect_false(out$r[4] == 4) out <- rdply(4, f, .id='r') # names conflict expect_equal(names(out), c('r')) out <- rdply(4, f, .id='.n') # defaults expect_equal(names(out), c('.n', 'r')) expect_identical(out$.n, seq_len(4)) }) plyr/tests/testthat/test-summarise.r0000644000175100001440000000067412512025470017432 0ustar hornikuserscontext("Summarise") test_that("summarise creates correct names", { df <- summarise(mtcars, cyl, vs) expect_that(names(df), equals(c("cyl", "vs"))) df <- summarise(mtcars, x = cyl, vs) expect_that(names(df), equals(c("x", "vs"))) df <- summarise(mtcars, x = cyl, y = vs) expect_that(names(df), equals(c("x", "y"))) df <- summarise(mtcars, mean(cyl), mvs = mean(vs)) expect_that(names(df), equals(c("mean(cyl)", "mvs"))) }) plyr/tests/testthat/test-debug.r0000644000175100001440000000076312512025470016512 0ustar hornikuserscontext("Debugging") test_that("failwith() function", { expect_equal(failwith(1:10, stop, quiet = TRUE)("error"), 1:10) }) test_that("tryNULL() function", { old_options <- options(show.error.messages = FALSE) on.exit(options(old_options), add = TRUE) expect_equal(tryNULL(stop("error")), NULL) }) test_that("tryapply() function", { safe_divide <- function(y, x) { stopifnot(y != 0) x / y } expect_equal(tryapply(-3:3, safe_divide, x = 1), as.list(1 / (-3:3)[-4])) }) plyr/tests/testthat/test-utils.r0000644000175100001440000000106212512025470016555 0ustar hornikuserscontext("Utilities") test_that("is.discrete", { expect_true(is.discrete(factor(3))) expect_true(is.discrete("3")) expect_true(is.discrete(TRUE)) expect_false(is.discrete(3L)) expect_false(is.discrete(3.0)) expect_false(is.discrete(identity)) }) test_that("nunique", { expect_equal(nunique(LETTERS), 26) expect_equal(nunique(factor(LETTERS)), 26) # Odd behavior, for compatibility reasons: expect_equal(nunique(factor(LETTERS)[1:3]), 26) }) test_that("check for formula", { expect_true(is.formula(~a)) expect_false(is.formula("a")) }) plyr/tests/testthat/test-replicate.r0000644000175100001440000000046312512025470017371 0ustar hornikuserscontext("Replicate") test_that("length of results are correct", { a <- rlply(4, NULL) b <- rlply(4, 1) expect_equal(length(a), 4) expect_equal(length(b), 4) }) test_that("name of id column is set", { df <- rdply(4, function() c(a=1), .id='index') expect_equal(names(df), c('index', 'a')) }) plyr/tests/testthat/test-manip.r0000644000175100001440000000705112512025470016525 0ustar hornikuserscontext("Manipulation") test_that("each() function", { expect_equal(each(min, max)(1:10), c(min=1, max=10)) expect_equal(each(c(min, max))(1:10), c(min=1, max=10)) expect_equal(each(top=max, bottom=min)(1:10), c(top=10, bottom=1)) expect_equal(each(top=max, min)(1:10), c(top=10, min=1)) expect_equal(each(top="max", "min")(1:10), c(top=10, min=1)) expect_equal(each(c("min", max))(1:10), c(min=1, max=10)) # Odd behavior, kept for compatibility: expect_equal(each(pmin)(1:10, 10:1), c(1:5, 5:1)) expect_equal(each(max, pmin)(1:10, 10:1), c(max=10, pmin=c(1:5, 5:1))) expect_error(each()(1:10)) }) test_that("here() function", { df <- data.frame(a = rep(c("a","b"), each = 10), b = 1:20) f1 <- function(label) { ddply(df, "a", mutate, label = paste(label, b)) } expect_error(f1("name:")) f2 <- function(label) { ddply(df, "a", here(mutate), label = paste(label, b)) } expect_true(all(grepl("^name: ", f2("name:")$label))) f3 <- function() { label <- "name:" ddply(df, "a", here(mutate), label = paste(label, b)) } expect_true(all(grepl("^name: ", f3()$label))) }) test_that("defaults() function", { expect_equal(defaults(c(a=1, b=2), c(c=3)), c(a=1, b=2, c=3)) expect_equal(defaults(c(a=1, b=2), c(a=3, b=4)), c(a=1, b=2)) expect_equal(defaults(c(a=1, b=2), c(a=3, d=4)), c(a=1, b=2, d=4)) expect_equal(defaults(c(a=1, b=2), c()), c(a=1, b=2)) expect_equal(defaults(c(), c(a=3, d=4)), c(a=3, d=4)) }) test_that("as.data.frame.function() function", { expect_equal(as.data.frame(identity)(1:10), data.frame(value = 1:10)) expect_equal(as.data.frame(rev)(1:10), data.frame(value = 10:1)) # Always create value column, even if empty expect_equal(as.data.frame(identity)(numeric()), data.frame(value = numeric())) }) test_that("name_rows() function", { expect_equal(name_rows(baseball)$.rownames, rownames(baseball)) expect_equal(rownames(name_rows(name_rows(baseball))), rownames(baseball)) }) test_that("round_any() function", { expect_equal(round_any(135, 10), 140) expect_equal(round_any(135, 100), 100) expect_equal(round_any(135, 25), 125) expect_equal(round_any(135, 10, floor), 130) expect_equal(round_any(135, 100, floor), 100) expect_equal(round_any(135, 25, floor), 125) expect_equal(round_any(135, 10, ceiling), 140) expect_equal(round_any(135, 100, ceiling), 200) expect_equal(round_any(135, 25, ceiling), 150) expect_equal(round_any(as.POSIXct("2000-01-01 11:00:00", tz="UTC"), 86400), as.POSIXct("2000-01-01", tz="UTC")) expect_equal(round_any(as.POSIXct("2000-01-01 11:11:11", tz="UTC"), 3600), as.POSIXct("2000-01-01 11:00", tz="UTC")) expect_equal(round_any(as.POSIXct("2000-01-01 11:11:11", tz="UTC"), 10, ceiling), as.POSIXct("2000-01-01 11:11:20", tz="UTC")) }) test_that("take() function", { x <- array(seq_len(3 * 4 * 5), c(3, 4, 5)) expect_equal(take(x, 3, 1), x[,,1, drop = FALSE]) expect_equal(take(x, 2, 1), x[,1,, drop = FALSE]) expect_equal(take(x, 1, 1), x[1,,, drop = FALSE]) expect_equal(take(x, 3, 1, drop = TRUE), x[,,1]) expect_equal(take(x, 2, 1, drop = TRUE), x[,1,]) expect_equal(take(x, 1, 1, drop = TRUE), x[1,,]) expect_equal(take(x, 1:3, 3:5), x[3,4,5, drop = FALSE]) expect_equal(take(x, 1:2, 2:3), x[2,3,, drop = FALSE]) expect_equal(take(x, 2:3, 1:2), x[,1,2, drop = FALSE]) # Odd behavior, tested for compatibility: expect_equal(take(x, 1:3, 1), x[1,1,1, drop = FALSE]) expect_equal(take(x, 1:2, 1), x[1,1,, drop = FALSE]) expect_equal(take(x, 2:3, 1), x[,1,1, drop = FALSE]) }) plyr/tests/testthat/test-count.r0000644000175100001440000000336012512025470016550 0ustar hornikuserslibrary(testthat) context("Count") count_f <- function(...) count(...)$freq table_f <- function(...) { x <- unname(as.numeric(table(rev(...)))) x[x != 0] } test_that("count matches table", { data <- list( mtcars["cyl"], mtcars["mpg"], mtcars[c("cyl", "vs")]) for (datum in data) { expect_that(count_f(datum), equals(table_f(datum))) } }) test_that("random order doesn't affect count", { usual <- count(mtcars, "cyl") for (i in 1:5) { mtcars_r <- mtcars[sample(1:nrow(mtcars)), ] expect_that(count(mtcars_r, "cyl"), equals(usual)) } }) test_that("weighted count matches xtab", { xt1 <- as.data.frame(xtabs(g ~ id, data = baseball), responseName = "freq") xt1$id <- as.character(xt1$id) ct1 <- count(baseball, "id", "g") expect_that(ct1, equals(xt1)) xt2 <- as.data.frame(xtabs(g ~ year + team, data = baseball), responseName = "freq") xt2 <- subset(xt2, freq > 0) xt2$year <- as.numeric(as.character(xt2$year)) xt2$team <- as.character(xt2$team) xt2 <- arrange(xt2, year, team) ct2 <- count(baseball, c("year", "team"), "g") expect_that(ct2, equals(xt2)) }) test_that("count works with factors and dates", { genders <- c("Female", "Male") n <- c(5, 10) gender_data <- factor(rep.int(genders, n)) expect_equal(count(gender_data), data.frame(x = genders, freq = n)) this_week <- seq(Sys.Date(), Sys.Date() + 6, "1 day") n2 <- 1:7 day_data <- rep(this_week, n2) expect_equal(count(day_data), data.frame(x = this_week, freq = n2)) }) test_that("vaggregate corner cases", { res <- vaggregate(1:99, rep(1:11, 9), sum) expect_equal(res, vaggregate(1:99, expand.grid(1:11, 1:9)[,1,drop=FALSE], sum)) expect_equal(res, vaggregate(1:99, rep(0.5 + (1:11), 9), sum, .default = 1)) }) plyr/tests/testthat/test-join.r0000644000175100001440000001515012512025470016357 0ustar hornikuserscontext("Join") # Create smaller subset of baseball data (for speed) bsmall <- subset(baseball, id %in% sample(unique(baseball$id), 20))[, 1:5] bsmall$id <- factor(bsmall$id) bsmall <- bsmall[sample(rownames(bsmall)), ] rownames(bsmall) <- NULL first <- ddply(bsmall, "id", summarise, first = min(year)) test_that("results consistent with merge", { b2 <- merge(bsmall, first, by = "id", all.x = TRUE) b3 <- join(bsmall, first, by = "id") b4 <- join(first, bsmall, by = "id")[names(b3)] b2 <- arrange(b2, id, year, stint) b3 <- arrange(b3, id, year, stint) b4 <- arrange(b4, id, year, stint) expect_that(b2, equals(b3)) expect_that(b2, equals(b4)) }) test_that("order is preserved", { b3 <- join(bsmall, first, by = "id") expect_that(bsmall$id, equals(b3$id)) expect_that(bsmall$year, equals(b3$year)) expect_that(bsmall$stint, equals(b3$stint)) }) test_that("rownames are preserved", { b3 <- join(bsmall, first, by = "id") expect_that(rownames(b3), equals(rownames(bsmall))) }) test_that("duplicated keys are duplicated", { x <- data.frame(a = c("a", "b"), b = c("a", "b")) y <- data.frame(a = c("a", "a"), z = c(1, 2)) left <- join(x, y, by = "a") expect_that(nrow(left), equals(3)) expect_that(left$z, equals(c(1, 2, NA))) inner <- join(x, y, by = "a", type = "inner") expect_that(nrow(inner), equals(2)) expect_that(inner$z, equals(c(1, 2))) }) test_that("full merge preserves x and y", { a <- data.frame(x = 1:10, a = 1:10) b <- data.frame(x = 11:15, b = 1:5) ab <- join(a, b, by = "x", type = "full") expect_that(names(ab), equals(c("x", "a", "b"))) expect_that(ab$x, equals(1:15)) expect_that(ab$a, equals(c(1:10, rep(NA, 5)))) expect_that(ab$b, equals(c(rep(NA, 10), 1:5))) }) test_that("left and right are equivalent", { d1 <- data.frame(a = 1:3, b = 1:3) d2 <- data.frame(a = 1:4, c = 1:4) right <- join(d1, d2, type="right", by = "a") left <- join(d2, d1, type="left", by = "a") expect_that(left[c("a", "b" ,"c")], equals(right[c("a", "b" ,"c")])) right <- join(d1, d2, type="right", by = "a", match = "first") left <- join(d2, d1, type="left", by = "a", match = "first") expect_that(left[c("a", "b" ,"c")], equals(right[c("a", "b" ,"c")])) }) test_that("large number of columns work", { df1 <- data.frame(matrix(1:100, ncol = 50), y = 1:2) df2 <- data.frame(matrix(1:100, ncol = 50), z = 3:4) df <- join(df1, df2) expect_that(df$y, equals(1:2)) expect_that(df$z, equals(3:4)) }) test_that("many potential combinations works", { factor_n <- function(m, n) { factor(sample(n, m, rep = T), levels = seq_len(n)) } df1 <- as.data.frame(replicate(20, factor_n(100, 100))) df2 <- as.data.frame(replicate(20, factor_n(100, 100))) j <- join(df1, df2) j <- merge(df1, df2, all.x = TRUE) }) test_that("joins with no common rows work", { a <- data.frame(a = 1:10) b <- data.frame(b = 1:10) full1 <- join(a, b, type = "full") full2 <- join(a, b, type = "full", match = "first") inner1 <- join(a, b, type = "inner") inner2 <- join(a, b, type = "inner", match = "first") left1 <- join(a, b, type = "left") left2 <- join(a, b, type = "left", match = "first") right1 <- join(a, b, type = "right") right2 <- join(a, b, type = "right", match = "first") expect_equal(nrow(full1), 20) expect_equal(nrow(full2), 20) expect_equal(nrow(inner1), 0) expect_equal(nrow(inner2), 0) expect_equal(nrow(left1), 10) expect_equal(nrow(left2), 10) expect_equal(nrow(right1), 10) expect_equal(nrow(right2), 10) }) test_that("joins with zero row dataframe work", { a <- data.frame(a = integer()) b <- data.frame(a = 1:10, b = letters[1:10]) full1 <- join(a, b, type = "full") full2 <- join(a, b, type = "full", match = "first") inner1 <- join(a, b, type = "inner") inner2 <- join(a, b, type = "inner", match = "first") left1 <- join(a, b, type = "left") left2 <- join(a, b, type = "left", match = "first") right1 <- join(a, b, type = "right") right2 <- join(a, b, type = "right", match = "first") expect_equal(nrow(full1), 10) expect_equal(nrow(full2), 10) expect_equal(nrow(inner1), 0) expect_equal(nrow(inner2), 0) expect_equal(nrow(left1), 0) expect_equal(nrow(left2), 0) expect_equal(nrow(right1), 10) expect_equal(nrow(right2), 10) }) test_that("column orders are common, x only, y only", { a <- data.frame(a = 1:3, b = 1:3) b <- data.frame(a = 1:4, c = 1:4) full1 <- join(a, b, type = "full") full2 <- join(a, b, type = "full", match = "first") inner1 <- join(a, b, type = "inner") inner2 <- join(a, b, type = "inner", match = "first") left1 <- join(a, b, type = "left") left2 <- join(a, b, type = "left", match = "first") right1 <- join(a, b, type = "right") right2 <- join(a, b, type = "right", match = "first") expect_equal(names(full1), c("a", "b", "c")) expect_equal(names(full2), c("a", "b", "c")) expect_equal(names(inner1), c("a", "b", "c")) expect_equal(names(inner2), c("a", "b", "c")) expect_equal(names(left1), c("a", "b", "c")) expect_equal(names(left2), c("a", "b", "c")) expect_equal(names(right1), c("a", "b", "c")) expect_equal(names(right2), c("a", "b", "c")) }) test_that("strings match to factors", { dfF <- data.frame(character = c("Aeryn", "Jothee", "Jothee", "Chiana", "Scorpius", "Scorpius"), species = c("Sebacian", "Luxan", "Sebacian", "Nibari", "Sebacian", "Scarran"), stringsAsFactors = TRUE) dfS <- colwise(as.character)(dfF) matchF <- data.frame(species = "Sebacian", stringsAsFactors = TRUE) matchS <- colwise(as.character)(matchF) #nor does `join`, (so inner joins are not commutative) expect_equal(3, nrow(join(dfF, matchF, type = "inner", by="species"))) expect_equal(3, nrow(join(dfS, matchS, type = "inner", by="species"))) expect_equal(3, nrow(join(dfS, matchF, type = "inner", by="species"))) expect_equal(3, nrow(join(dfF, matchS, type = "inner", by="species"))) }) test_that("join_all", { df <- expand.grid(.id = 1, a = 1:2, b = 4:5, c = letters[1:2], d = letters[4:5], KEEP.OUT.ATTRS = FALSE, stringsAsFactors = FALSE) df$.id <- as.integer(rownames(df)) expect_equal(join_all(list(df)), df) expect_equal(join_all(list(df[, c(1,2)], df[, c(1,3,4,5)])), df) expect_equal(join_all(list(df[, c(1,2)], df[, c(1,3,4)], df[, c(1,4,5)])), df) }) test_that("match_df", { df <- expand.grid(.id = 1, a = 1:2, b = 4:5, c = letters[1:2], d = letters[4:5], KEEP.OUT.ATTRS = FALSE, stringsAsFactors = FALSE) expect_equal(match_df(df, df), df) expect_equal(match_df(df, df), df) expect_equal(nrow(match_df(df, data.frame(a=1, b=4))), 4) }) plyr/tests/testthat/test-rbind.r0000644000175100001440000002157112725616421016532 0ustar hornikuserscontext("rbind.fill") test_that("variable classes are preserved", { a <- data.frame(a = factor(letters[1:3]), b = 1:3, c = date()) b <- data.frame( a = factor(letters[3:5]), d = as.Date(c("2008-01-01", "2009-01-01", "2010-01-01"))) b$e <- as.POSIXlt(as.Date(c("2008-01-01", "2009-01-01", "2010-01-01"))) b$f <- matrix (1:6, nrow = 3) ab1 <- rbind.fill(a, b)[, letters[1:6]] ab2 <- rbind.fill(b, a)[c(4:6, 1:3), letters[1:6]] ab2$a <- factor(ab2$a, levels(ab1$a)) rownames(ab2) <- NULL expect_that(ab1, equals(ab2)) expect_that(unname(lapply(ab1, class)), equals(list("factor", "integer", "factor", "Date", c("POSIXct", "POSIXt"), "matrix"))) }) test_that("same as rbind for simple cases", { bsmall <- baseball[1:1000, ] bplayer <- split(bsmall, bsmall$id) b1 <- do.call("rbind", bplayer) rownames(b1) <- NULL b2 <- rbind.fill(bplayer) expect_that(b1, equals(b2)) }) test_that("columns are in expected order", { a <- data.frame(a = 1, b = 2, c = 3) b <- data.frame(b = 2, d = 4, e = 4) c <- data.frame(c = 1, b = 2, a = 1) expect_that(names(rbind.fill(a, b)), equals(c("a", "b", "c", "d", "e"))) expect_that(names(rbind.fill(a, c)), equals(c("a", "b", "c"))) expect_that(names(rbind.fill(c, a)), equals(c("c", "b", "a"))) }) test_that("matrices are preserved", { a <- data.frame(a = factor(letters[3:5])) a$b <- matrix(1:6, nrow = 3) expect_that(rbind.fill(a, a)$b, is_equivalent_to(rbind(a, a)$b)) b <- data.frame(c = 1:3) ab1 <- rbind.fill(a, b) [ , letters[1:3]] ab2 <- rbind.fill(b, a) [c(4:6, 1:3), letters[1:3]] ab2$a <- factor(ab2$a, levels(ab1$a)) rownames(ab2) <- NULL expect_that(ab1, equals(ab2)) }) test_that("character or factor or list-matrices are preserved", { d1 <- data.frame(a=1:2, x=I(matrix(c('a', 'b', 'c', 'd'), nrow=2))) d2 <- data.frame(b=1:2, x=I(`dim<-`(factor(c('a', 'b', 'c', 'd')), c(2,2)))) d3 <- data.frame(b=1:2, x=I(array(as.list(1:4), c(2,2)))) b1 <- rbind.fill(d1, d1) b2 <- rbind.fill(d2, d2) b3 <- rbind.fill(d3, d3) expect_equal(dim(b1$x), c(4,2)) expect_equal(typeof(b1$x), "character") expect_equal(dim(b2$x), c(4,2)) expect_is(b2$x, "factor") expect_equal(dim(b3$x), c(4,2)) expect_equal(typeof(b3$x), "list") }) test_that("missing levels in factors preserved", { f <- addNA(factor(c("a", "b", NA))) df1 <- data.frame(a = f) df2 <- data.frame(b = f) rbind.fill(df1, df2) }) test_that("time zones are preserved", { dstart <- "2011-01-01 00:01" dstop <- "2011-01-02 04:15" get_tz <- function(x) attr(as.POSIXlt(x), "tz") tzs <- c("CET", "UTC") for (tz in tzs) { start <- data.frame(x = as.POSIXct(dstart, tz = tz)) end <- data.frame(x = as.POSIXct(dstop, tz = tz)) both <- rbind.fill(start, end) expect_that(get_tz(both$x)[1], equals(tz), label = tz) } }) test_that("1d arrays treated as vectors", { df <- data.frame(x = 1) df$x <- array(1, 1) #1d arrays converted into vectors df2 <- rbind.fill(df, df) expect_that(df2$x, is_equivalent_to(rbind(df, df)$x)) expect_that(dim(df2$x), equals(dim(rbind(df, df)$x))) #if dims are stripped, dimnames should be also df <- data.frame(x = 1) df$x <- array(2, 1, list(x="one")) df2 <- rbind.fill(df, df) expect_that(is.null(dimnames(df2$x)), is_true()) #can bind 1d array to vector dfV <- data.frame(x=3) dfO1 <- rbind.fill(df, dfV) dfO2 <- rbind.fill(dfV, df) expect_equal(dfO1, data.frame(x=c(2, 3))) expect_equal(dfO2, data.frame(x=c(3, 2))) }) test_that("multidim arrays ok", { library(abind) df <- data.frame(x = 1:3) df$x <- array(1:27, c(3,3,3)) df2 <- rbind.fill(df, df) expect_equal(dim(df2$x), dim(abind(along=1, df$x, df$x))) expect_that(df2$x, is_equivalent_to(abind(along=1, df$x, df$x))) }) test_that("Array column names preserved", { x <- data.frame(hair.color = dimnames(HairEyeColor)[[1]]) x$obs <- unclass(HairEyeColor[,,1]) xx1 <- rbind(x, x) xx2 <- rbind.fill(x, x) #plyr is against row names, but should respect col names like rbind rownames(xx1) <- NULL rownames(xx1$obs) <- NULL #but unlike rbind it should also preserve names-of-dimnames. names(dimnames(xx1$obs)) <- c("", "Eye") expect_equal(xx1, xx2) }) test_that("attributes are preserved", { d1 <- data.frame(a = runif(10), b = runif(10)) d2 <- data.frame(a = runif(10), b = runif(10)) attr(d1$b, "foo") <- "one" attr(d1$b, "bar") <- "bar" attr(d2$b, "foo") <- "two" attr(d2$b, "baz") <- "baz" d12 <- rbind.fill(d1, d2) d21 <- rbind.fill(d2, d1) expect_that(attr(d12$b, "foo"), equals("one")) expect_that(attr(d21$b, "foo"), equals("two")) }) test_that("characters override and convert factors", { d1a <- data.frame(x=c('a','b'), y=1:2) d2a <- data.frame(x=c('c','d'), z=1:2, stringsAsFactors=F) d1b <- data.frame(x=c('a','b'), y=1:2, stringsAsFactors=F) d2b <- data.frame(x=c('c','d'), z=1:2) d3a <- rbind.fill(d1a,d2a) d3b <- rbind.fill(d1b,d2b) expect_equal(d3a$x, c("a", "b", "c", "d")) expect_equal(d3b$x, c("a", "b", "c", "d")) }) test_that("factor to character conversion preserves attributes", { d1 <- data.frame(a = letters[1:10], b = factor(letters[11:20]), stringsAsFactors=FALSE) d2 <- data.frame(a = factor(letters[11:20]), b = letters[11:20], stringsAsFactors=FALSE) attr(d1$a, "foo") <- "one" attr(d1$b, "foo") <- "two" attr(d2$a, "foo") <- "bar" attr(d2$b, "foo") <- "baz" d12 <- rbind.fill(d1, d2) expect_equal(attr(d12$a, "foo"), "one") expect_equal(attr(d12$b, "foo"), "two") }) test_that("zero row data frames ok", { d1 <- data.frame(x = 1:2, y = 2:3) d2 <- data.frame(y = 3:4, z = 5:6) za <- rbind.fill(subset(d1, FALSE)) zb <- rbind.fill(d1, subset(d2, FALSE)) zc <- rbind.fill(subset(d1, FALSE), subset(d2, FALSE)) expect_equal(class(za), "data.frame") expect_equal(nrow(za), 0) expect_true(all(names(za) %in% c("x", "y"))) expect_equal(class(zb), "data.frame") expect_equal(nrow(zb), 2) expect_true(all(names(zb) %in% c("x", "y", "z"))) expect_equal(zb$y, d1$y) expect_equal(zb$z, rep(as.numeric(NA), nrow(d1))) expect_equal(class(zc), "data.frame") expect_equal(nrow(zc), 0) expect_true(all(names(zc) %in% c("x", "y", "z"))) }) test_that("zero col data frames ok", { d1 <- data.frame(x = "a", y = 1L) d2 <- data.frame(y = 2L, z = 3L) za <- rbind.fill(d1[0, ], d2[0, ]) zb <- rbind.fill(d1[0, ], d2) zc <- rbind.fill(d1, d2[0, ]) expect_equal(names(za), c("x", "y", "z")) expect_equal(names(zb), c("x", "y", "z")) expect_equal(names(zc), c("x", "y", "z")) expect_equal(nrow(za), 0) expect_equal(nrow(zb), 1) expect_equal(nrow(zc), 1) }) test_that("rbind.fill rejects non-vector columns", { a <- list(a=list(1), b=c(3), c="d", f=function() NULL) attr(a, "row.names") <- c(NA_integer_, -1) class(a) <- "data.frame" expect_error(rbind.fill(a,a), "cannot make") }) test_that("rbind.fill rejects data frame columns", { a <- data.frame(a=1:3, b=2:4, c=3:5) a$c <- data.frame(x=10:12, y=11:13) rownames(a) <- NULL rownames(a$c) <- NULL expect_error(rbind.fill(a,a), "not supported") }) rbind_time <- function(size, classes = c("numeric", "character", "array", "factor", "time")) { unit <- quickdf(list(numeric = 1:3, character = c("a", "b", "c"), array = array(1:6, c(3,2)), factor = factor(c("a", "b", "c")), time = as.POSIXct(Sys.time()) + 1:3)) args <- rep(list(unit[classes]), size) system.time(do.call(rbind.fill, args)) } get_rbind_times <- function(...) { # nolint start rbind_time(10) #warm up/JIT mdply(.fun = rbind_time, ...) # nolint end } if (identical(Sys.getenv("NOT_CRAN"), "true") && !identical(Sys.getenv("TRAVIS"), "true")) { expect_linear_enough <- function(timings, threshold=0.1) { #expect that no more than `threshold` of a `size` input's runtime is #accounted for by quadratic behavior model <- lm(I(user.self / size) ~ size, timings) expect_lt(threshold, summary(model)$coefficients[2,4]) } test_that("rbind.fill performance linear", { timings <- get_rbind_times(data.frame(size = 2 ^ (1:10)), classes=c("numeric", "character", "array")) expect_linear_enough(timings) }) test_that("rbind.fill performance linear with factors", { timings <- get_rbind_times(data.frame(size = 2 ^ (1:10)), classes=c("factor")) expect_linear_enough(timings) }) test_that("rbind.fill performance linear with times", { timings <- get_rbind_times(data.frame(size = 2 ^ (1:10)), classes=c("time")) expect_linear_enough(timings) }) test_that("NULLs silently dropped", { expect_equal(rbind.fill(mtcars, NULL), mtcars) expect_equal(rbind.fill(NULL, mtcars), mtcars) expect_equal(rbind.fill(NULL, NULL), NULL) }) } plyr/tests/testthat/test-id.r0000644000175100001440000000751512512025470016022 0ustar hornikuserscontext("ID column name") test_that(".id parameter for ldply", { data <- setNames(nm = 1:10) expect_equal(names(ldply(data, identity)), c(".id", "V1")) expect_equal(names(ldply(data, identity, .id = NULL)), c("V1")) expect_equal(names(ldply(data, identity, .id = NA)), c(".id", "V1")) expect_equal(names(ldply(data, identity, .id = "ID")), c("ID", "V1")) }) test_that("ID column is a factor if .id argument is set", { data <- setNames(nm = 1:10) expect_false(is.factor(ldply(data, identity)$.id)) expect_true(is.factor(ldply(data, identity, .id = "ID")$ID)) }) test_that(".id parameter for rdply", { expect_equal(names(rdply(10, 0)), c(".n", "V1")) expect_false(is.factor(rdply(10, 0)$.n)) expect_equal(names(rdply(10, 0, .id = NULL)), c("V1")) expect_equal(names(rdply(10, 0, .id = NA)), c(".n", "V1")) expect_equal(names(rdply(10, 0, .id = "ID")), c("ID", "V1")) expect_false(is.factor(rdply(10, 0, .id = "ID")$ID)) }) test_that(".id parameter for adply", { data <- array(1:27, dim = c(3, 3, 3)) expect_equal(names(adply(data, 1, identity)), c("X1", "1", "2", "3")) expect_equal(names(adply(data, 2, identity)), c("X1", "1", "2", "3")) expect_equal(names(adply(data, 3, identity)), c("X1", "1", "2", "3")) expect_equal(names(adply(data, c(1, 2), identity)), c("X1", "X2", "V1", "V2", "V3")) expect_equal(names(adply(data, c(1, 3), identity)), c("X1", "X2", "V1", "V2", "V3")) expect_equal(names(adply(data, c(1, 2, 3), identity)), c("X1", "X2", "X3", "V1")) expect_equal(names(adply(data, c(), identity)), paste0("V", data)) expect_equal(names(adply(data, 1, identity, .id = NA)), c("X1", "1", "2", "3")) expect_equal(names(adply(data, 2, identity, .id = NA)), c("X1", "1", "2", "3")) expect_equal(names(adply(data, 3, identity, .id = NA)), c("X1", "1", "2", "3")) expect_equal(names(adply(data, c(1, 2), identity, .id = NA)), c("X1", "X2", "V1", "V2", "V3")) expect_equal(names(adply(data, c(1, 3), identity, .id = NA)), c("X1", "X2", "V1", "V2", "V3")) expect_equal(names(adply(data, c(1, 2, 3), identity, .id = NA)), c("X1", "X2", "X3", "V1")) expect_equal(names(adply(data, c(), identity, .id = NA)), paste0("V", data)) expect_equal(names(adply(data, 1, identity, .id = NULL)), c("1", "2", "3")) expect_equal(names(adply(data, 2, identity, .id = NULL)), c("1", "2", "3")) expect_equal(names(adply(data, 3, identity, .id = NULL)), c("1", "2", "3")) expect_equal(names(adply(data, c(1, 2), identity, .id = NULL)), c("V1", "V2", "V3")) expect_equal(names(adply(data, c(1, 3), identity, .id = NULL)), c("V1", "V2", "V3")) expect_equal(names(adply(data, c(1, 2, 3), identity, .id = NULL)), c("V1")) expect_equal(names(adply(data, c(), identity, .id = NULL)), paste0("V", data)) expect_equal(names(adply(data, 1, identity, .id = LETTERS[1])), c("A", "1", "2", "3")) expect_equal(names(adply(data, 2, identity, .id = LETTERS[1])), c("A", "1", "2", "3")) expect_equal(names(adply(data, 3, identity, .id = LETTERS[1])), c("A", "1", "2", "3")) expect_equal(names(adply(data, c(1, 2), identity, .id = LETTERS[1:2])), c("A", "B", "V1", "V2", "V3")) expect_equal(names(adply(data, c(1, 3), identity, .id = LETTERS[1:2])), c("A", "B", "V1", "V2", "V3")) expect_equal(names(adply(data, c(1, 2, 3), identity, .id = LETTERS[1:3])), c("A", "B", "C", "V1")) error_rx <- "[.]id argument.*number of margins" expect_error(adply(data, 1, identity, .id = LETTERS[1:2]), error_rx) expect_error(adply(data, 2, identity, .id = LETTERS[1:2]), error_rx) expect_error(adply(data, 3, identity, .id = LETTERS[1:2]), error_rx) expect_error(adply(data, c(1, 2), identity, .id = LETTERS[1:3]), error_rx) expect_error(adply(data, c(1, 3), identity, .id = LETTERS[1:3]), error_rx) expect_error(adply(data, c(1, 2, 3), identity, .id = LETTERS[1:4]), error_rx) expect_error(adply(data, c(), identity, .id = LETTERS[1]), error_rx) }) plyr/tests/testthat/test-idf.r0000644000175100001440000000421712034020705016157 0ustar hornikuserscontext("Immutable") # Create smaller subset of baseball data (for speed) bsmall <- subset(baseball, id %in% sample(unique(baseball$id), 20))[, 1:5] bsmall$id <- factor(bsmall$id) bsmall <- bsmall[sample(rownames(bsmall)), ] rownames(bsmall) <- NULL test_that("idf is immutable", { #Since idf are constructed by scratch in both idata.frame and `[.idf]` #I will test idf objects created both ways. #create both before testing any, to make sure that subsetting #doesn't change the subsetted idf idf <- idata.frame(bsmall) x <- idf[1:10, ] y <- bsmall[1:10, ] expect_error(x[1,"year"] <- 1994) expect_error(x[["stint"]] <- rev(y[["stint"]])) expect_error(x$team <- sort(y$team)) expect_error(names(idf) <- c("ID", "YR", "ST", "TM", "LG")) expect_error(idf[1,"year"] <- 1994) expect_error(idf[["stint"]] <- rev(bsmall[["stint"]])) expect_error(idf$team <- sort(bsmall$team)) expect_error(names(idf) <- c("ID", "YR", "ST", "TM", "LG")) }) test_that("idf subset by [i]", { idf <- idata.frame(bsmall) x <- idf[3] y <- bsmall[3] expect_equal(idf[[2]], bsmall[[2]]) expect_equal(x[[1]], y[[1]]) }) test_that("idf subset data by [i,j]", { idf <- idata.frame(bsmall) x <- idf[1:10, ] y <- bsmall[1:10, ] xx <- x[3:5, c('id', 'team')] yy <- y[3:5, c('id', 'team')] xxx <- idf[ , names(idf)] yyy <- idf[ , names(y)] expect_equal(idf[3, "year"], bsmall[[3, "year"]]) expect_equal(x[, "year"], y[, "year"]) expect_equal(xx[, "id"], yy[, "id"]) expect_equal(xxx[, "team"], yyy[, "team"]) }) test_that("idf extract by [[i]]", { idf <- idata.frame(bsmall) x <- idf[6:20,] y <- bsmall[6:20,] expect_equal(x[[4]], y[[4]]) expect_equal(idf[[3]], bsmall[[3]]) expect_equal(idf[["year"]], bsmall[["year"]]) }) test_that("idf extract $name", { idf <- idata.frame(bsmall) x <- idf[500:510,] y <- bsmall[500:510,] expect_equal(x$team, y$team) expect_equal(idf$team, bsmall$team) }) test_that("idf as environment", { idf <- idata.frame(bsmall) x <- idf[5:10,] y <- bsmall[5:10,] expect_equal(with(x, mean(year)), with(y, mean(year))) expect_equal(with(idf, table(team)), with(bsmall, table(team))) }) plyr/tests/testthat/test-rbind.matrix.r0000755000175100001440000000736712512025470020037 0ustar hornikuserscontext("rbind.fill.matrix") test_that ("merge 3 matrices: should behave like rbind.fill for data.frame",{ a <- matrix (1:9, 3) b <- matrix (1:12, 3) c <- matrix (1:12, 2) new <- rbind.fill.matrix(a, b, c) ref <- as.matrix (rbind.fill (as.data.frame (a), as.data.frame (b), as.data.frame (c))) colnames (ref) <- seq_len(ncol(ref)) # rbind.fill.matrix always sets # colnames. I don't think it's worth # wile trying to suppress that if no # matrix had column names before rownames (ref) <- NULL expect_that(new, equals(ref)) }) test_that ("additional columns are NA: should behave like rbind.fill for data.frame",{ a <- matrix (1:9, 3) b <- matrix (1:12, 3) new <- rbind.fill.matrix (a, b) ref <- as.matrix (rbind.fill (as.data.frame (a), as.data.frame (b))) colnames (ref) <- seq_len(ncol(ref)) rownames (ref) <- NULL expect_that(new, equals(ref)) }) test_that ("merge with column names: should behave like rbind.fill for data.frame",{ a <- matrix (1:9, 3) colnames (a) <- letters [1 : 3] b <- matrix (1:9, 3) colnames (b) <- letters [3 : 1] new <- rbind.fill.matrix (a, b) ref <- as.matrix (rbind.fill (as.data.frame (a), as.data.frame (b))) rownames (ref) <- NULL expect_that(new, equals(ref)) }) test_that ("merge with column names: should behave like rbind.fill for data.frame",{ a <- matrix (1:9, 3) colnames (a) <- letters [1 : 3] b <- matrix (1:9, 3) colnames (b) <- letters [c (1, 2, 4)] new <- rbind.fill.matrix (a, b) ref <- as.matrix (rbind.fill (as.data.frame (a), as.data.frame (b))) rownames (ref) <- NULL expect_that(new, equals(ref)) }) test_that ("only 1 element: should behave like rbind.fill for data.frame",{ a <- matrix (1, 1) colnames (a) <- letters [2] b <- matrix (1:9, 3) colnames (b) <- letters [c (1, 2, 4)] new <- rbind.fill.matrix (a, b) ref <- as.matrix (rbind.fill (as.data.frame (a), as.data.frame (b))) rownames (ref) <- NULL expect_that(new, equals(ref)) }) test_that ("character + numeric: should behave like rbind.fill for data.frame",{ a <- matrix (letters [1:9], 3) colnames (a) <- letters [1:3] b <- matrix (1:9, 3) colnames (b) <- letters [c (1, 2, 4)] new <- rbind.fill.matrix (a, b) ref <- rbind.fill (as.data.frame (a, stringsAsFactors = FALSE), as.data.frame (b, stringsAsFactors = FALSE)) ref <- as.matrix (sapply (ref, as.character)) # the last column is integer and would gain a second # character with direct as.matrix expect_that(new, equals(ref)) }) test_that ("factor: stops with error",{ a <- factor (rep (LETTERS [1 : 3], 3)) dim (a) <- c (3, 3) expect_that(rbind.fill.matrix (a), throws_error ("factor")) }) test_that ("vector: uses as.matrix",{ a <- 1 new <- rbind.fill.matrix (a) ref <- data.frame (a = I (as.matrix (a))) colnames (ref) <- paste ("X", seq_len (ncol (ref)), sep = "") expect_that(new, equals (new)) }) test_that("zero-row matrices", { m1 <- matrix(nrow=0, ncol=2, dimnames=list(NULL, c("x", "y"))) m2 <- matrix(nrow=0, ncol=2, dimnames=list(NULL, c("y", "z"))) m3 <- matrix(c(1,2), nrow=2, ncol=1, dimnames=list(NULL, "y")) ba <- rbind.fill.matrix(m1) bb <- rbind.fill.matrix(m2, m3) bc <- rbind.fill.matrix(m1, m2) expect_equal(class(ba), "matrix") expect_equal(nrow(ba), 0) expect_true(all(colnames(ba) %in% c("x", "y"))) expect_equal(class(bb), "matrix") expect_equal(nrow(bb), 2) expect_true(all(names(bb) %in% c("x", "y", "z"))) expect_equal(bb[,"y"], m3[,"y"]) expect_equal(bb[,"z"], rep(as.numeric(NA), nrow(m3))) expect_equal(class(bc), "matrix") expect_equal(nrow(bc), 0) expect_true(all(colnames(bc) %in% c("x", "y", "z"))) }) plyr/src/0000755000175100001440000000000012725623554012060 5ustar hornikusersplyr/src/RcppExports.cpp0000644000175100001440000000112412725623554015053 0ustar hornikusers// This file was generated by Rcpp::compileAttributes // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include using namespace Rcpp; // split_indices std::vector > split_indices(IntegerVector group, int n); RcppExport SEXP plyr_split_indices(SEXP groupSEXP, SEXP nSEXP) { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; Rcpp::traits::input_parameter< IntegerVector >::type group(groupSEXP); Rcpp::traits::input_parameter< int >::type n(nSEXP); __result = Rcpp::wrap(split_indices(group, n)); return __result; END_RCPP } plyr/src/split-numeric.cpp0000644000175100001440000000174512725623554015366 0ustar hornikusers#include using namespace Rcpp; //' Split indices. //' //' An optimised version of split for the special case of splitting row //' indices into groups, as used by \code{\link{splitter_d}}. //' //' @param index integer indices //' @param n largest integer (may not appear in index). This is hint: if //' the largest value of \code{group} is bigger than \code{n}, the output //' will silently expand. //' @useDynLib plyr //' @keywords internal manip //' @export //' @examples //' split_indices(sample(10, 100, rep = TRUE)) //' split_indices(sample(10, 100, rep = TRUE), 10) // [[Rcpp::export]] std::vector > split_indices(IntegerVector group, int n = 0) { if (n < 0) stop("n must be a positive integer"); std::vector > ids(n); int nx = group.size(); for (int i = 0; i < nx; ++i) { // group is 1-indexed if (group[i] > (int) ids.size()) { ids.resize(group[i]); } ids[group[i] - 1].push_back(i + 1); } return ids; } plyr/src/loop_apply.c0000644000175100001440000000107012725623554014400 0ustar hornikusers#include #include SEXP loop_apply_(SEXP n, SEXP f, SEXP rho) { if(!isFunction(f)) error("'f' must be a function"); if(!isEnvironment(rho)) error("'rho' should be an environment"); int n1 = INTEGER(n)[0]; SEXP results, R_fcall; PROTECT(results = allocVector(VECSXP, n1)); PROTECT(R_fcall = lang2(f, R_NilValue)); SEXP ii; for(int i = 0; i < n1; i++) { PROTECT(ii = ScalarInteger(i + 1)); SETCADR(R_fcall, ii); SET_VECTOR_ELT(results, i, eval(R_fcall, rho)); UNPROTECT(1); } UNPROTECT(2); return results; } plyr/NAMESPACE0000644000175100001440000000421512725615561012511 0ustar hornikusers# Generated by roxygen2: do not edit by hand S3method("[",idf) S3method("[",indexed) S3method("[",quoted) S3method("[",split) S3method("[[",idf) S3method("[[",indexed_array) S3method("[[",indexed_df) S3method(as.data.frame,"function") S3method(as.data.frame,idf) S3method(as.list,indexed) S3method(as.list,split) S3method(as.quoted,"NULL") S3method(as.quoted,call) S3method(as.quoted,character) S3method(as.quoted,factor) S3method(as.quoted,formula) S3method(as.quoted,name) S3method(as.quoted,numeric) S3method(as.quoted,quoted) S3method(c,quoted) S3method(dim,idf) S3method(length,indexed) S3method(length,indexed_array) S3method(names,idf) S3method(names,indexed) S3method(names,indexed_array) S3method(names,quoted) S3method(print,indexed) S3method(print,quoted) S3method(print,split) S3method(round_any,POSIXct) S3method(round_any,numeric) export(.) export(a_ply) export(aaply) export(adply) export(alply) export(amv_dimnames) export(arrange) export(as.quoted) export(catcolwise) export(colwise) export(compact) export(count) export(create_progress_bar) export(d_ply) export(daply) export(ddply) export(defaults) export(desc) export(dlply) export(each) export(empty) export(eval.quoted) export(failwith) export(here) export(id) export(idata.frame) export(is.discrete) export(is.formula) export(is.quoted) export(isplit2) export(join) export(join.keys) export(join_all) export(l_ply) export(laply) export(ldply) export(liply) export(llply) export(m_ply) export(maply) export(mapvalues) export(match_df) export(mdply) export(mlply) export(mutate) export(name_rows) export(numcolwise) export(progress_none) export(progress_text) export(progress_time) export(progress_tk) export(progress_win) export(quickdf) export(r_ply) export(raply) export(rbind.fill) export(rbind.fill.matrix) export(rdply) export(rename) export(revalue) export(rlply) export(round_any) export(splat) export(split_indices) export(split_labels) export(strip_splits) export(summarise) export(summarize) export(take) export(true) export(tryNULL) export(try_default) export(tryapply) export(unrowname) export(vaggregate) importFrom(Rcpp,sourceCpp) importFrom(stats,setNames) useDynLib(plyr) useDynLib(plyr,loop_apply_) plyr/data/0000755000175100001440000000000012725623554012202 5ustar hornikusersplyr/data/ozone.rda0000644000175100001440000004466012034020705014014 0ustar hornikusersý7zXZi"Ţ6!ĎXĚĺIq])TW"änRĘźăXVŽHĆqĹjnçj-&écî çŤ \÷بu`¤XĆE×1ݦŰLË•É.*΂ź2ŃÎÍł™ď NĶŚI­źö_úg—\Uo x5µŠg-ŰA<ü&[…4Č4őľ?FîV2ŢĆĄ4¤MAęnD’‘Ü… XˇeÎŤPLŔÚorĎFe>Q«Űśt›ŃÍ2¦`q›HÚ,Ĺ|P¶đ@bdŞôř"7§Ű"Z–¶€U•ńĄ*že#.‘Ä\\·aż7ľłÇ7 ÄR^蹑ڮŃ@ .t“Ş"çmßQ4©÷BŰ„ýćÖÄ'¶uČŚ¨ö—†Š‚ą!QŽÖ'ěĄŇ®*ţ‘p+TRÔµóů“xD”„fZ˙ľ°Č‚ČKŘ+č<Ó¸6™CXĚCX…e ŕ çGÍňĆź‰çyD'Ť°˙ÓăkL¦W*–~Ô1«‘3ŹĎ+¦-[ÝŤĹ·vUņ́‰©GÎĆŢÎ3ĘůŻÝ‚µ˙·—o׳©…sŁßNž‘€ ůÂ*bÚJ3ąőýc]_UÓŮČ[B3÷aşA*Ě!_T7%¬Čů!\pżţ˘jů<\‚0ó’¶Y,˛"rŽŘ Ü2Ô$‘z4épY‡†UÁ;]ÜUşĘ”©;˙ť'S";…X3#ĹŞd?t.|VXµ2ö`ąĹ`)…uÁ´=ď»ĎŠĽËmu×»§$ç—Ç·ÖŠČDć{yá—WqHiO«=M;f"§{ÂcÚK®—dG0·˝ôŽśŰ…“”“D ­Ą®ü·äň$”Oźé•m î…˝0<˙đjčçîÓez7áé”óKH»@D=‰ĚŠâó/WX2H2—E𨧩l^pA1ŽĹľ{׫zO§›Ľű•¬‰żŇ§~ŠAEÉł^'ö Ϭ‰©?]&itńďŮ2Cň+¨úą,üŤíÉ`^łž!”DË‹PĽ§EúŘ Šöµš¸üţÔŽdGpţ‰-[ťqĘ,z$çěMŘ'~ąš–1„Ś)™é~µËsę"öwřHTJLůŚÚśRŤ« É bîË›|vI”ÎůÎ4Ú@ÔËw]ľÉTâ±˝ý/?6˙v6«®źÔ‚ÜčÝÎIX·p=ř¤lO ŢaĘńB[×h/đą-Ó7ŚŽk®SŮľ»f·nZwď#§ `ľ‹/Dâ×MžPÝwO(é¶S6Dr?ŤrŞp¸6‹©±µ>ÉËĘuzłQI–D¬.m˙ŁzaOGFôŃIs‘ŽŢÚ©âaÄĘNđG˝ët§żáҵt?e-ŤiÓ4™7䊲Ą'BE+L}tľ “ŮŰ:YâÂ$'ĄÔ ćżůXŐ÷¬¶Ž ˙<‚‘Đx•5´´}7+_Ą\GšuŻĄ°áĘÚ6­ÜéwY;ů— BélŽž‹¶>HůĚŐ[¦2ç’Ľ•F„ëFD҆/©›V¶ě,#n<Ö’wŢßÄz(Ë ˙b‚öÖ€żłTľát˝¶Ż·ÇÇâb•H%W°ßľT)ăXb ˝Ĺep:š˘f¤ŮeîB`¶˛Ć§(#\w­ôýJŰš«®UĄŃ+G 1Ęó3©ăŮe˙Ů2ŐĆ}6fpSĹ•Zź‚}úTLţĂüiD ü5Tf'Á×´4h’LdµafEűń@Âň!ď… GÇŔa›]ĺÁÁŕa‡ ®°ł.ĂÄ”hXęfÍËĆP()[“ŔnQýKo&-쬍‹h€Űc]®¦Bc 9]ˇTýŤ]-ď2Z1R*̙邧ď5Ľ.•^ß‘ĄZg!«ęVXűĐ˝yĹ6šŹ)GK%Ł{ň˙Ĺ“˘ŐBuÝy”+ĺŰĘüÜŇNď˙ţ­S“yťV\:žsőyű;jk×2›A2]ˇĂ6®ÎĄg›jÝ~÷Ţâ%ôéŇdĽÉ¤ş Sµ9Ä&%0 P‘ć0·…Q™Şć»OžÇ‡1Öă,isjPF.č®Y…¤ „č]Ą_H1j~•ęnĘNĂŇ}‹Ť÷fw.`ž‘<«ŚNĎŕÔÍ’(l9ç ď#ËÚ$ÇßjLnŃžľ$‹/ŕ9ß;¦ľ#Ű®9śSŻh I_ÁU4Q pÎŃ AlĄ»%|óĄţ‹uÂÉ7űčxBs w·öÂFĆfô+ÝDÓb›Ý1áMp d`^ÖU:+Y ©D—-‰Y~‘d€Ťŕ“*ů(QŕŮÇśéł*! ć;Ë$A„·¬qúč|nýÄß Î ží/"1Všö°Gę™ÇâQć°(‡ŚľřŽFH§‹b…‘ąˇ>˘ËwAZ ZŢb^g©QďšH[´%«ç>é€WQżÖ÷g1ˇRń]ô3ŇXpfk"hڦÉIT¶µď·ä:÷“i(…J$tÄŻ}Ůl¨§0S´ É.V¶hŇ—ěJ`͝Ѥ÷żŔC`䏪ÂěorLíé˛Ń]ü†Ř!‹ËÔ-ĎÂĺŕ 2@‰¤Bo ×ÉŇC*“§‘;=2GôزlĄčo‰ŤőăúŠůú#c˝DĺEXćh¶ź’őÔKg0süâü„Ý9Š´‚͸ż©¬„ş«ľŹ¨Ď¸! ą…ü^?*íŕ0*efBŹÁ¸/R~_Xß9p%ZÂŤt~©Ľ3´“­ö&Ěós_ ÂS ·~žĘşö˦céŚÎЧš]2Ą±ŽŤßş2¸k6Ľtc6‡ČiŁ‘ťĚ?±’=Ůď‘˝ŕ«Ü˝®ÜÄťľÂ?ýĐ}¬Ăâ¬ËŇ‘čix.§F§BÂęekňŘc߸3ě"« Ý-HÍ÷#׹˙{ŻŚ#DpČbĺp&†¨ié9#aiެ Ýśrřă·xÉĐ›őŰ5źS¶}”csôÍ3öt`žĘéäČ[ASj<1ôCbP!7/¶_+®7ŹÔ|X,Ę"ٶYZ:ŘOJ…;SD†ż™H”źIk’×Ö†ßU×4˝JZ8⯠~˝G&Ů^JO¨f¨Wn/x¨ÍI´ąőÓ[#Łiô”÷śÖM3@u樬ŞËÖë^#4_Ä”€çgF`%©AjĘśăRŤf–L1¶›U9Î=_÷&U]z{r);m Ő"™‰D6yG)ś?ô~ˇĽ©ŃÔ‡ŽhÔŻ]‚PÚ-7IŚăýDBݰ|NUnË‘…®\»ŘÚ+¶Ł Hˇ¤* ÓI( - ˘č@UÔx “ĺµď°­†ö [ů¸Yż×ŰÖ*%nM+že(×-×ÄĺC„€që !îK!Úâô"`‚xlŤb¦ŚL­9ŇB5lÄnÂIbw€*–°áE ¸/Ů‘>Ď9Šqˇę1’‚N‡XD™ŠŐŃ,”ĺš KൕĚYĄô™FDaäč·»„ós¸mgŹŻ! ÜQĽu+(ÝZíăč˝Ű‰‘ʎëć3ŞQqřLVąż$_Á”ĄŇß ­ň™ËÝÄ;`f·%¤šíŤńí=č¤oV«Ďxr¤Ďó&ěŮ:´ČÚ‘Ćün"Źá˝°9ěljl<­źç FŃym÷,^Üőţ˨PäěT¶ż”ß +,Ĺľ6’ľ°ńónFG óeăŮ3•ëN8.A˙…€uş»óń{ׯ‚Ięč†ţh.tŢś“…ĹrźFˇ…§ Ŕőť»QM5Ý?ďl{Ńą{˛ŕőBˇÝ]ÍGYĐEW5,řY‚)ťwě˙“ĆvŘ5‚Í S$˙­TcőÓ Ő#$)BGńÎčmČ޲×K!psT"Zo3Ý{¨WÚd\K ß ˛˙‹`,Ľx݆ű«/WěäG˘_çü)ţ†ţ*V!AÉI5µ3Žč·”±ż\KVŞËVlź3L%µŰ[>T› š_[˘RnŰÎĺNdîX<áň¦Ó ąP}Q‹ŹÔ›Lô¬UuNöěđ»¶Č-2Á]Ô>úŘVQXĘ!•GÍ@m”Z‡Ťq–1óűr/L„l!P„6ĐaŻm@čˇ-šÜÎh?Mî"XĎBź™&oh°(z¤Îă;ntNiöúmË:›>0»M 'Ɖ ¬?ořË=™?Xo˛ęcÔ 6˙›ýŞ‚ŐÖî5†'Řü×ČüËr4•-¬Ę,­@z4éGĂ8,čU‡ ¤^—}Ěu׫ÎŮÖIGmrÖÓ$3]h…ďŹ Úî­Ë×őĄ#ŁL€7•N’ćÔdŹ*ŃTâĚlť{}Ôż»¤3€~˘ P bNHľ Ńą¸ú¬>–‘üĄîę[ž(ܱe%7?Éó5{uúĆ ăîȸÝěEĘ‹ ž[şd”ĺĄďbvJ"k‚á]…o8Kç±q%¶Ť6RóM3!•.'Ižž č^m/j"ˇR;„:ŁKĄ2jŤEúÚö ŞŐ“P‰m§ ţž„ú° 9†ĺVf~˘ă›ˇË ´˛VŹ%ÖČ(wJj —bĆžTÎQ/ŰĽ+őHpŘóë¤řĺ{vj‰+Pż‹·¸Ü$&˙żÂŁ W=†QçřńŁŚ›ĎÁU9}˛­ąră_ľŞö Ň@ˇ6¬f!rj#­Ô¸i·˙ B,E\ýŢŢL“X5 ™™ťť­»őR´MĺěâÁM$´î)ÂYö{yßx?gaĚßchÍ@Ł” R×aÔ‡‘Ë,ůŞd°FĄčśk ę«ojťé+ŢS‰g˝á±ÎˇáÝW-«w•EĚ&]/A ­1.›|đJ ¶ÄńHořˇł#ŠX ˝O«ýf÷Bó¦; Ľč ^vGđěć{<íצ1Ĺ<ŢuŃL;“Ąˇ&€Z,wó¸Ry_ńĘŐóżyQÄŽ×>(Nŕ8S5„˙ĚÂűrˉPUłĎĆdÉ@Šhj! ‘0ăń*•ŞE§±›n8g‹á<ßÉóňHI†EWpqő]ťÝy Łż~k.”GĽCËM¬0B®Mű´J5Âýđ,ĹÄňçèşYěÓţž˛’Lç9Źë"eŕ˙)RdK(ą Yn}žëéß© ĆRÁ:N–"žLQöąEĽ|O`Ţ—‘tŘ(JÉéď…ÍßŮËB*q On.čęˇQďŽPzÁWLNŐ…â÷ŕ\sQMH ~=€ Y§Ó.öľśť Đc¤ÜM :ĚU_ěÉÝąŤź»g6ĐÚ·KZĚz˝›§0¬‰Y˝ Ő¬—!\{]9§Ă ł»¶”‘hýpÄîµÁbś5©7_ůń!–%é˝%űTza\łp9ćáQ Ş~„)ç÷ĂÚ1Ŭ"Eq‚Íß(/{»wą´,Óʦ˛óĂfvľŹg~ÉÉŽ6E‚˛–·×Ěwt73°*Źáď+{Ž4ď-ŽJłÍG©m ĽD úĐu‘&iĆťě x°u+řÄmą&'v"\ůţVu—&tÖŚq„9ĎŘ Ë Ť§Ânе¬\â·ďńßÝ`®đ‡3čzŚ„VÂľ? őčů;j ÔµŕŇřýŃĂÖ¤˝Ç9c{_5„ Ĺ›G-Ęߥ›< ł«ődű|ŢNŢÍÓ Öž)Pţúë(ż¶«4e.ČĆŕ'ę˝›=R˙ëâµ<¸FYál®§cŠ>„nŁÜp˙?ŹÄ„ű€ącłćô˙eűÍ­ôˇěĹöyĎ#†‚Ńá™*W»y=ß}XTzIÚ6ú ٶ[Vć[dţ•“Ďď“NkŰs=śĐRb P[ÉU·źsçWŇ•ÉĘDX#AšnŃ„öŻ]cB1Č!„úfuZĽQ-/As?Ěźe ”Kcğÿab4O#‡XË f—’0×÷ů,öt/@jíc ćÔ_h4ýc¶©o.€ě‚<Śő±ÁqâĘW›NĐŚâÜcě~ĉöńE4 Îîâ÷ ö8[…Nž{ë/i•¬w‡–ą˙ÔĂ¶ĘżŹŠ¤Ĺ›=kńch¨;ş*—`…ŮP:ôĬBwő)}Ť.™ Ěî‘MBŞ=:g0qţ] K<.RX˛ç×÷váçíj÷Ó•3y/˛ń…f#‰?__á§ocÎţů0Fţó™|—ť^ĆÖĆ)i{—-¤¶Î‡ńă(_đ‹G”䵑Am­¶.˘…Ë*{ă•růr¤*â‡MNDs˝[Ű%|FE­«Ć0$UąjLmĽßvdđÎĎÔS6ćĘą«ů đ#%ÝLĽ‡úyŃ<ËôѸ8<†˛Ţ¤xČÔI·Öů_R†‘Eż€=T>Ö]äýrtnhß;ęé×›¤R &5Ń̦0uČ$ť˙ŕUë†ć¬8“&Żm•qâ÷Ýţü4„»Qą’§bú{„8Yľq×Üąj"ϫͦŤ~®ý‘Ŕ4ľ(<Ŕ©çΕˇ™sÔ@dc¦â%ˇtŠQo˛ůî;…şvŇÔ"ń¬#/¨˝‚}ˇŠ{JS×ŮÖHÝ~ËĂY‰vřµWHŐ›?±ßSYÜË…Ü‹@9€îPáGšV”´ť×¸ŠqMŮq3ŇŐ9Űňě<˙("Łłpź É·/Şkü®ůÁ¶|:§'[BpîCus[¨iűÁÓ‡ŮÔ4Á) ¦¶ZŠRĂS®qţ÷ JŃ€ĘT.°q{'ąLU8ę}[µs‰ůţ6Ć/F»Â9;äo¬:ń Ú¦Cµm׹ŠcN٤żŘ?­$r¨8ů´čű_ţâV+ç? 4M;'Ő{{ÎĹ”yâŃĄ¤ź© 8Vt u”ÇE÷SR2ďÁ’řÇĎCĐŘ”a đ˙ 1ŔWç,}ÎŘ“Sčň®žsâŰPđ{iF™w•?‹çs 8őą–™sÍÔÉ•lšS>ĽŮŘ>»¨şŐ0{ů3^Ą-ݶ~ôHĎ[ˇśPüß6†÷´}¬Oeř*ťO“”VÚśŞ.‘ć'č ł“$‹EĄi4Áy·ú⤪{†d8ÝŻ×GŢřŻJ—RË‹ŠŮÚ˘rsĂK5íö3[ÍŮ’hŕ‡o ďÄ»Ô2%€{5y}ëÁ}K|—Ńľő{Hâ@ońté~tó¦TÓÜWâŽŘS ŰÂtU˙űómeXíßť„@ý1&h®{ ¸Ń 9ŠŽŮÚ‡.L|®vóÂyrODóöŚ«Í8Úő,? #j®jśp'Ü` 4ßSńď'fťŰůtť›ě ÁĘc!ËŁ±Efŕ oú5ľś¤Káד@!#Ń÷{Q‰Ô ë/Ţ~žíŽ?ŻOŘ‚„x±4\¦SŤ\ĽÉ˘R=«]]…Ymő{†ŕ€9p ,1iQľ,üđ})ô!"wfz·W<|ľ™VILŻő\D,KŽ·J’Ř›>MđÜÚĘ{·ÚďÜ“¶ł˙đVµrů%ů…D¶§$b(}d˝ĂáGţë"*mť«N–H ŹÍŢÓ‹ ~ÓknšV'Űq­«ëçd •ŢĄOŻęüOíEXśżqĆ‘y‡W‚vz'ÔÜTěAş€q55[ä˛YVwgłµÓÓ’š»Đ§(íPđvD—ˇQ 3e’|Ú©Ż./pĄőţó%lţ]|śđ3´MŕHňwŠľEHŻĺÝťQŻ{ŢatÎVˇ9ü a 2Cżq3­C«¦áET€¸ Đ4ŠôĆ{şá&%Ů\ďmň;łn'Ä06¬z¬q­ž1gdŃwµ)mĄĺ00ÚżD d>"Ô,,މhJîŘćýdšťĽóu±zŚm6×ŘľÔÉ©C#Ł#Ř— •*•{)&p©Źň0ϵĘ`b-o»<ŔĆbpď*Q9«~H˛úŁ@$ ďúĹž˝7貸k»b?Lë#WJ+RµÎ‡Zűš9§ă뎞zâîH™1€ü!2:Ü]P苼L»OÝ\ąłEşFŹęŘ…ÖôRĂ1ÇŕăHŠqŢłßŔÉĎx<Č{'žţńß‘&J8­«ß^Ć\‡§Á=m·äX Ł@UN@y!č8«Ä wŤ’ßú†ŃWŮA‘÷6\¨:‰z–ÉĎ'Q¬cŕ+M;ť›jť5ו»o¦{€÷ń>ŔlnÜo•Ož´c5‘EíŐő Ď=iWáŃľ<ŤkşÍA›[šĂ±]ĚmU?#Ó•őźLĘ€ěşIyćŐńmóď6óµĎá/iăóç‰sźk”CÂL_ jÁÍ!#—ŮŚ1Ć)“\ńď.ÉŞ™Rbű_CśRá˝NMĎ0ŐuĂłý*U+ \y—.…¨kN[Ήľ­-•5d…Ďă`řRăr0XÔś˘Ý‚U«ď€Ůvů‡D(;íg/ŕşťDŮ^)ŰĹfuČ‹±kč,ĹMW°~Gr â)'¨Ńv—·Ö||§ŕ`Ečrnh Z`ÍyT¶^–»Ť9/ľI*GˇŹH2OşŻLś+^äĎŢŹ$1^ksŤśQŢźÚU7IůŃąĎ9łcŕâŞőŕ%â,ŐĽ°“x^vĆ):WDrďöŃ·ÇQ%K=±ý܉UľÝ.MąâTď¶2›iĹ”ĺаľ`4€PS„4î„Cbúެ’^Ţ@Âď#lW [®W¶š­Łß{†˛6Ś’ţ·ęáí¬ U6î[őD˝ŔX­Č–ÔŤ˙w~ Śŕže18\š.ˇ5süŐbéŔ2ňt«cpů6ÂTëTüÖô뺍 w«÷žÇ:őŃLó) öA:`ÜÂ\t:»§CN˛'ľ[ˇéF)§1vZ›—jČ[růü±ĎŰnTr˝c^H¦—-| öíŽrw<- s…士ËUö ަ¦5B<šÂł˘'Ź´*z¬8 jŔ‰ ůôöúű#mJ\áCäŃ੣İă pGđL7wo%´VšĂŹoöW¤z4îmĽHő4·lśÍEÎú#÷ż”K©¸ć÷ň„ÂőˇçŞCĐş;3ěźFG9¬SņWŔ—öň#p>çQtÓ÷RĹwĆ'U\:&Ç,ÁÓ#=ú¶hJ#Ú¨jŃ?™źÇ{„c®¶źÍpË÷–鯲lĹQ(]Bég’´ËöĆďp#ŕ*ňeŽ9ŕôŰuŻW[”ŽW™Ł†(ľ Ĺ,ż19껤µ@N/Üűj˝TďvGĆBP…łŢB#x»ť}ő‡”˝đ0Tv” ˝ěü“ŠĽŐď"I ÚëQÉ”tŔÍŔ Cľ.2%(….ŰpŘ`_Ţ·bLt -ćËúMcÜzţáB´Ô6LŠ}‚rYĺL|Gň–*ĎĽö_‘ÓhÔŕťVŃ THŕ U—’fUÖß–,{há˛]I;„ő¸ˇ‡Ç ™ă3— _„QÔ¬ł.đ´'Ágú×͇V YŁýŤ„Hvá…Q-‡™Xdć‹ôŞ'Džtb ˇ” ÎÖZ: ÍşĘΦVńIÖ‡°GĘeý©´p7“X"kŃeŢĺ‰q;=śki>)–ÝŚ°hÁ0Ť îg°â Ť‡řҬ%?ž™čôwŐţ*÷ŠAÁŻćľcs Ů–ZdxŤ84h·-0_2řPšÔ0 «'ŻsXšVáh!úZlÔj8|>ˇżÍ7RÔSčę!ž˘gĚjř[-ďj›Z¦¦Z9®¤~§ÜßşĄZ'/Ö>äŰH8-× ,űÔň,Đ–Źx¸Ď@ŞŇśžAěŤxx9Öa0Óo”fĘ»qŘ |“(§)ěńçÔ¬‹SŚ€ĂĹňăń§Ž:škń‚•ghśńLD C |"c>Qľ@‘ţ˝ťmËýĘHđi|}*°‚B3¤äIčzÓA^” ŰŠhNçĘŁ #úúyY# šjúŁ™x߇ʀ- ÍźE3ÔÁ…·$ú«˙˙•uá´iťűFŠćy´f»'IUý€G¸:n(ťÁŞ'Žç¤$ČŞOcV9OřÜ“5B ŻĹĘŽxëŹĆÔ%FŽ_?żśśřĆM5`í÷ĎGĘ*·„ ‡©A.j:„Ţ_˝Íâ¶ÜÄ'mNŰhę¦Ţđ;˛7ݱ şĆC–üqa¸HÂYf˘]ľO/p{2{$»vC˙čmNZgÔÎgńΕ0qV‹ŃĐôXy—ťvWg†Hµ»sąľH›7‰P Á6Ĺf¶Á´„őđꇓ§źřĄYðŕłkgäBĂÄ™Şß[ŇźíPŁ‚ňŁnđ©>m‹ Č8Ź„°ą#®ňÖJŠÇf¤MBrŁb˙ĘóńjéSębbŚFéëwýwĺYˇ81K)«e[)sđ¨.üŘĘşämšJÎŕŽQžšŁI?gĄ‹Wáj3ý+3ăFvŚLTčWIĂ CŹ÷Őç$gd52Ń®‘Çq1_o6şű—Ó`ő–srŚV‰®ă˛¤•X7Ş‹˛TĂíÚ˘C ŽąĄ|Öí^ĎB{ÍŃž˝Uů;[^CÚ¸}Ě‚(GË1t JpmČ“rBÇ*_EŘhůXWV+ŘaÓVüßS ›˝Ł’´‰•ťę—’łöü¬ĚCŻ5ńĄę\˙'ŤËľPÖş–­Ď1B·ÓEřnHúž˝ĄrkVvD\×ŮZĹG®É’6Ę](żmŞŰő©‚¤’Ę-­†Úš™,A4x!ĎĎ‹÷) <şWLďF'¦p±;ł— Y%hóTĂm´é“bq„ş~ůs')¶±÷ëý»Z˘úZöś\ĹăÄť·tµYý?|·/d~_D*^ßneĽ#Ta'% űčrE¨j#”/:%•»I±Tđő`@:”M$)ÚĎ m{ěXˇČs“Ťĺś°ĐňÍAŞ~°˝-Î(Ç_:±Ł'†IrŃ˙ł ťyC±é€}“ĺĹŇč9şfŃ©gžŁÉ-ô3ÂČ4<'˘şŽSŔ6wŤFô 'ĺ{żsAëÄ«Eö ł3&D­—U&šĚ†ř‡8m¸µÖ‘<ĺ@»{*ů?âvžlKĺΕi°Č“šçŃö´5îVBFî…\Oçí4˙ü©@ëŐ„LK7hŁr.2ą’•«ľł6”UpeŇ 3čŮëĐs#ăâ`=ú•J{”d"öpPn8>ëBĄŹB˙(ŹöđńůÂɨ´&HÍŹI}tš-rě¤ @´ú˘Á‚(𥷬H2Ľâ:Ŕ˘›8Íw"ÄQúTŽEŢ:‚}8@Ě"Tuά:>[Đż+e Íw.Jh'ň/ ‘F'ę.ëí¤—Ą=>X˛RĐčíĐ(A@Mq–őŁŹ·™ë0â Ĺ‚óC!9%F©Ż*¸§§ťAá,‹ÍŞ/ˇ,–„Šô1žFŮô_ǵsÉPáŻWVŠ`„(®˛ć+Xęyř†ÄĽ†(€j˝#Č%‰ĹvÝ1,ś$M°çß)µkL Qěłř§«î^łN¸…9Űń 1(!ď Ç_ĎäńGs«ÁÝ(¤ö•Ď“žŤp «Ťý>NâĹâ.®’âŢÔÎŃ45ě'ckÁ"Á€ _Rr–áň!śfłPÝK—3–şj+Vm"ĺ¦vĺhcbäíAÜĄi×;,2IĆ%ÚŕlmdĐďÂż…@/’›ľ«üćĘl±ÝĹś¦‰ďzčóÜşGľţš›¸[mź‚LJG™Ť[‚ÔöÇ~‚\•r`=ˇ/=m‚µé© ŕ É”ĽŤŚ !XXťm:eq€¤žb|ˇ™Ćţ_€ŁBčÁ7Ň*j®Ě§•zÎQg÷Ň<[Đ żş©‚M˛Í-R;iő{ÄÂv[xÍĂY*+mÜ+— Ď‹VŽV!Uŕj8­ó¨Oč_€jÁ˙É2ŇŻ''Ă„ńk4ˆWČMÚ`¤)ZߪfpQĎ YöĚÜbĄk«7b°­ţŽÔă¨EdÚoĐÓű˛i¤_ .řyú)MB éuŁů«ŤđďŚé(šaÍŤéţr ‘ëCLőÖ2ĐŰ.©ľr)Šâa=“.ÔëD>ɬ2ŠuF­âOSräîç);Ío8ë-÷¸şíݸ±ckÔO- —;wYpBÓQěoÇĂO¤›ş°2ó·Ěĺíę‡Ôö2‹ó4ąŹňw*®áŘl­üLÔ[ô!W»ĺľâ€¬ŕµ[uV­Ýđ¨¸ZAî,#.J©Ď•ę=.TwçůIEąçÁ í>~1”™ä§íwŢ*ŻŐŃćfŢw—’ L4?đÉbJYůwO•ŁÜęf¬‰Éa[›‘_3É<]î¸ZĎFśl¸€Eॕ»}›ŽČ˛žř>(”&.¨^Ď?j¬7żSďźçýNÓ5*˛Ácć™ÎxWýˇňQ‚ źž‹¤Ä„ç‰fŢ,Zµ¨CŘtJÂo€yÚ`îAĘ›śKŃ« ń&C)ďéBµŤ8žŹ›Â›“0ŠĆIniŠqhëÁÇa×|ϧ$˘nk¤PˇçČŽÄŽúY·­ç´Ě©ź ]yČ@QÁE>®Ż{x«d¦ĎFÉť%íXş“©·}3~§Ů”{Ť©Ăő·ÁŤßE.¤{ł5QsTT34>Ďęo†ŘşĄ¨`=  ^.­7”†7&DJ¦¶´ůCŤ™ŢŇÁ1ŁĹmŕÄÖVšóçŘŻ4©>Í)Béźymdn-^éÝÂ?Ý$#¬aszśžÜ]z–Á Ć!PĐZ×Zž(Ű?ëĎZŤ=¤d ż/˘qyęŠ&¸7-Äc3źh ¦|'× µ’‡ĐY’o aVľvó{HŃÇťşŠ@¨'o—#B¨»­ëđń’ăű¬ ^Nę•}ĹÁµâz ľ@=ŁĄço)Á>;Ç®ő‘wÝ…“šąŻÉŤtLŹěäÉîĆ2nÜTş˛mč-ĎŹ^ą|·D¦©;Ż’ÇΆĺ›+N^<Ą`ą],8%g&ř_/ÁPŐĐjč‡b…î;ĺíí:¦YďÔ"”şĺůéŽ%»ń-đ¨ Đ:@†ĽnÄď®Háćvů’QH b§č}a‚F ňfÔCky÷˘Ç&ZźĐ‡ŽFQ•G~ß9Ĺl=ăî`DnF[Đz§”@ýŕ@‰Ů@¬™Őŕţ?>`čúÚ(Ó±N ‡)ŞÜě‹8ytqXÉ˝uĎxąPp­ťĂüË{xʇĎÓç°Dc`Ί±˘íDpÉď3‘Ië·umĘń]]&mi"_B(Ý÷2ŞĽ{[ňsĐÚ·ĺ{輟&fP…¸‹pűiŮMÂ!Bčs4µŁ¸Ť€3gŢň+´9÷bµ;%EBŻsšş. Ň•I›vn?HéQ…@˛Ź(€¨!ۡâÚĐ·ś*·çFe ë줊Â5T=¬3¬“2'Ú5{˛đ7Őă‡gE$řç[ŮzľWM{±% ^l§iŔĐ8 ±ä©?â ÍĽ<‚‡Łóó˘iZŮŮ˙EŮąĄ¨ëÎż‚K\ćć!öČmßWi#Ň…µy‚ńQ[fÁD+cÔ¬9ĹmĂÎÉ uW¨Č¦!‡u!˙ćŃRËoý/šějËsÔXĄĚy˝ ŕĎý|—4zŰÎ~gô4Źcrw˘˝r5  Š˘‡ďĘ ®ÉŠů·%Otłcá-ć$»HŕË&I5L‘!¨#{«+!,ăśë˝Aw-´Łł¦*-ŹŃ.™l.öč§%2L8–ŮM†]ËŘçâ66’›Ň ęcŔć[‡˝ŰňŻféSz˝r¬ű`vzĂ©˛ĎBXQM`\ĘÇđü‹$ůţä?ô•­ľ_©xݬöđîĄÄHŰľŢUYHÁíîîŔż…yÍŰ,(ź„ Ő[0ý D‚H=x§bë-ŕÄ|÷"})ŮŔÔcµ`|ÝőUŐľýşíŠp5i…üzâöž€-v|ÜßJúUż‡ô‰âőb ‘L@Ác’ÄĐČXń_ďůąÚ!•}:ć‚G3źî@Ţxsac»@iĆĘ­ÓŃHž$Á˘żáGţ3Fč¤j˘bÁP\‹oFDôµ9˛@9n„kŘ H ó˛ěô2"ĘŚóC¶[ś€ÉC*ŹŔä.›7ż[|ůíH&8Ë!ý3‚÷±ŚMÂ`3&ó*JĎu|ˇ ¦'`ě„ŇWžfo•JNnŕržŚo#ž,žíĚáŮźep ó&´Úa-UBÁZWű‚iý’<‘;GŢ`%Ś4Ť –ŵ­b{ż&»ě,ŔŃIÜ<ôµ^™ň Â@ü\„!á»e}%·üłł87GľMşL:\–ŹZˇ©Ľ\9%ňťH$Ű-'ň…TBŐvŞ^D4l*D'{óŇW»Î‰—Z±N]­——ëaH›Ő/ůk‰}×Ő1yęŕH†jÍ—ž\śJ—[ÜZ6|Šó†ú¦*ěţI¬EĘ` ÝşÚëC«)+O˝«µ_^8Ó,¬&Ż˝’eĎ Grćş°“!wĚŞ±A8€ÉďD~¤q_oíţńďđEŢ3šH` YĐËY°OőZhFÇńcňećü«ôŕÜňúňLŠś5ŕ!ę]l Ů5? Íiµş¨ű ń꽓nŤbłNedV`3;( ýÔ]âôIŠÄ ÖśńđfYSQTMéѶćkx]zcń˝]ł¬˘)ęŔúyoćq»ŁfăČćęř‰ŐłˇÚy{'Gb¶—÷÷~şÁq€‡M$»ĚSúÚšg·¶JL ţ×đ;ŔňÇ'ú–ŽIż ‘ă¸ÂśľË-–‡$ Ŕj‚¬…Š”ŕ¬°íUj čÉůéň8ěŮÇÓGkĐőżlI 36ĆÍ}O8éďCĂđ lCcFö¤˝A>…Yţßś†Źý7‰­t¦Iu.dß°ŰAv-ęńE$bpě•›^Ů´ş,řç RďYmš„ţôxĘFôKĘ’<ľŕmţę`ŮY®/ľĚ|XĘ$9źE»téfˇ..ó€á2(q¨¦<±Sl[IˇśČ"ĂV9Tż3­#ÚxdŤŤŤä”ďkF·Äńët·0ĐĘä,ŕ­đ7ýtáąë»ďţSůĺ mŢN€™'Nž®ˇLâµ{!Ť´ř7G ä{°†ëC(ŻkC¤S)A°ťçÚŹ3Ű`±U&>Ž^Ń$Řë…TÍ×éŔˇm„hC^=ÜiĆ!Ů÷Yý¦@ńXĎ’ô‚˙“ET2Z$ÝŃЬ7U@1—¬–ĆO>Qš‘ÄEţwÄezć®IŤBý;Ż6ňTEŰßŘŻ×S–şc,ě‰â»ŠŮé•Úť^ëÚŇÔĎëŕ< Q·ÁĆč[î qj™dÁö¦”ŚF/7šáŃSĹZ¤ş—=ĹÖCN'?2z8-‰Š,-8˛:rÖAa¦tµG†ËjÚ%‰y|Ńa`[rX´+·[ŁĆĆt«I’–7-fEŞ­CFN'˨aÖ‹bJ±R€ H‡ĺăüŃ­’şçęt/.ӓŁj¦r€đ[Ő<Őň OšÍĘW!t|*f5Os/‚•hđlĆŢwÎÎzŢ÷,–ÔE˝Ý'g8HÉwdŚ]Ęó°wM§ICbD–Ř+şĘÝŕpć7ŔÇ}Ś …М̑ř™€]'°vĘß 0~ĆţÁâî°¬ IĚS4ŃZ öŁţľz-ĐÚx­úű6ǰM…Z˘ëC¶P.mđ ĺŇŤ‚v×/«ľ‚éMŰ˝fDř5sÝśŽá‚x#» &µŠ@ňőˬďrá»,šż¤'vîź:Őäy·˙Ń×t­ŤI |3s­qD*"¬Hş=÷©Ýńpr'Áüš'´úůH-¤W»}¸ĂŃ*oqLPŠÄ\ůđ>­ęčôšŻ;ŇŽYąâI*µ ?<ҝׇ.j§š‡"É«P“»9Ewâx5k‹6 ŮnQŕäş)ťE!8ŽşVh;«ś·Őůwxbżś˝ß)±˙˛˝Hrljtš!!¶–x´LoD=r‘ÂčĂů¬Ýé“řÄ:âg»ţŔA§;Ř]ëŤíĘ'1ŹfĆ» mŽšŐÜW3óÇA0´)•Q”ţšˇIíUÝ›QgT”°át>ý ÁŃT Rú­3ôO3Ŕęq{Řäďô˛éMĚ•>`' :>I׏& őͬalBrđćLôÉǸǿKÝ]ŠţB8č§–8Ou'Ld‚”-Ůr3“Ŕ'ÇUč‰PGŽ‘Ç8dĘe¨óG‡%‰÷Űr^…˝EÉT˘ËQŚcúlvkeR řČŐőäuÝâ)ôYçéYa N˘h:˛ˇmŞ„ÉS% -Ă·;ińŤieGęŞĂó#Çpć\±fV4_Č0Žop>X}Ö-^ě')+Ϧ<Â˙N"Éůĺ]»zĂ|†Ť¤é(´ŕxŔ•Ă-Ę â46 ső&Š„G¨(şî*ŘV8ÎÜńŮR"âk6¦[hŘ!Đŕ‚” öŘ|r€‡˘Ŕ)·Äç 1(¬MĄŽśpôżs×Ďšh3x±…w‹}–ą’\ł^ hÂ?ŤĠ,qq~Ťx]6ě ö*aç Ý&ÚÉ‘żé,. –€Ţ‡ *‡—(2f¶tîŐt˝ČŇË>L•qÚîgz.\2ڵ¦šŤĆ6JůŻHÂżÓË Ŕ°›zlú6_€5LŚX{K»—#¬şÚN@ ×p<t™ÚăRŹ2˝HÚE¶ů˙žŔiG{ÎI˙[d~ʇ’9ĆNÍľŐůý‰ˇĘhÝ\‚ѱ 3S` Ůζ}tß9QM>ĎěĘj¦ˇäěrJŰ^3ôFďáműŁÎ`pŻ´ä Ě÷Wńł$ń^´Ú]ź,ÜŚżč| ¨€:čÓ2źcĐkx_\@ýíYś†´_ě0[ç–c•€qgŚ`Ď×D –Ź•” Zč…KV3-|óRµ…zq+™ÖŇ—âęł3nOM0Ťq°ąEša>|Z­´ýS<đLËŁg¦_aŮ>=2Kv,—źÁBČĽHÍO‚DĎ«L5%%PЧʉÉ›~`yşSęÎą4Ü.©ţl#˛0s˛–ϋÖćĹ·uˇ›"-1ýŕ2 ®Ş aî5|rćp˙-áňŁHĎ­/9±8žGµ5y­Š5—ą <úîµPIq†ţ{íh‡ŃŞ“)+.#Ňa“Ѣ' BĽJÎŢŞ|´0Ô ¬pÚŁT–Xw‘NtBż†č×#šWČôM­o’+ŁPîŰ‘Ú$!Ŕ|hÉó湣CeŢŇ'^ŻWă"ěţ.믬Čăă˙QlŠËÂęÇ ;yYU/ČúŹÉ€¤ÎWäŚ V›Çż.Égoť: ˙đ\BQTŘ Ć~´ŹÁy ăY¬3´Dn*ŕ˘(2Ü*úäŇT4ĘM9–lBŢr©"©>Ą^’C°©g€qPÓ!¨Ë_éżßńRŤĘPoţP ë¬íÇň&Çw"Ź?O>•ńiŁ ŮSca“_ßÝ C—ˇrXtλžŕŰ)iO±mţZ^ ÖŰ ˘|ĘńáöĚeöBŠ1 äS'€®ÝkÚ<oÜ…¨ř›ű1’,ŽöaŞ®ˇážëuů5…i­=U©ÓČíŤP2˛šľËú±­gŕZńyűŰň`KN­ŔĚ'Í$űÔPńX@¤UŃńWŽ&ş×®A‘¤°Őfľź±:HSL>Ë+-NţłS Złő8·˙&zyŤ0/ŁŇŕ[wYsĺk} XÎŕśz3Ł”áwgóŔzuky…>rŇĺµßMEĽĘËcËîă‹@w,çwĆ:Ż+Ł„¤ČküÓÎ+,L7b§YTO.漋ϑ\ÍL­6>ĺl”y;g­ńU ź+˝i-j‹/S^m–cĹĽźVUÜDÍż©ž•ťQ‘Ą(΢ĘyĽ áME~13U}jOp7şľ­dťŹ}Łć„‰ď¤F$eóš…¶‹Ř>ę·ÖşDĂ;Ă˙ý×6Ĺ„VąĹđZ.ĹŰ‹ )ÁşK˘Ň}Č/{,ÔgůÜalVŁńÍÁ.sZh.20ŢNÂÖGÖp¨ €Gí±QYÇ&b=Ţl„;jýŠń\NŢ© ;6‰ŘyJŠgĘeű÷š¸Đ2SBKŻDßäŮÇâĆáł<<ٸ«­.K‚f÷ŢŰ@FěÁä{‘ĽhwÓ­I—ôKőÁµ}Ó™pź¶ť°›9Ý.9ł×&`ę}çϱđť3wžĆaž‰Áń  6± ćPGüÍ©@Ą“ÉŞm˘`-ÝĘyg1_,‹CţßpGL¸OB{µÂůëě©ÇĘn~u–ž@1MBSmĘĂš{k!©zâ(0dYŠd8\ ąmÚn5zˇu›×?oq ÇÉĽeÝŁřď ]çĺl­µnµÇß«]ĽľKI®Y®–^łŕąrůú>=éhS»î…`T?ö˙‰=Ü®q‹#‡9›BŐÁ*ăô"ĘI)ĽŁó|ź Ďěţbý<Ś€Í? OduşŁň LŠĚgđď ň‹>urÉ2HÜ˝B€ÜđÚzz§ć°g^ÚŤmăŠN!ÄĘmżôÔÖžŘ4swíîK%I¶ń ćkP’}ü 3żŚýŚ@ q‡ĺâ+«ŻwĹM´ _Ă)ĄîŤë«7¸ż!Ć-Ř’b7GýY›Žp~ŘyމŤ¤ÄYkĘÍ+€¦¨ťKÁš-¬úńŢ bĽ”DV]ę5f4;XĆAhžZ=°Xô® ˝ČöSĚ ÄKeVĹŔ WÜĽ?…¬tm·0ÄťžYř´ö.ő*ĽëJ¦3ł©Z›Edă,ˇ=S®9‘äb:킪NJĹĚĚ?ăĂ\ëĂÓ}ü›óM\=Ž2Ż MŃýČ*).|M%ÜK˘K5WÄŹ‰gĎ(—"ÎăT -©ŻvSڶ;‚I¬VŶ ĐćÓ D“Ńuë±AuöwßŔŐ¨BÚó’PĺQY…ËíĂ(ćçŕd#Č‹d‹(›,Ť1č·7q¸úÉCĘúŐ˙®őc‘NµgA«Z;±xů5‘˝YYuRoéÄN/€OĺdźĹúţ´â…9Ř.Ŕózp>zâÇţ~®Žµj×lÝhőŰyW˝XŻă“ĄLył<±—ŇÉćřCš0z< \+˘‹ÉöĐvŚo™×ť•IIjX#ó\[ĚqĂ ˘ß˛úŘľ?ťMP0ç!fuűżâů,Öţůε_|kŠuˇfhôN¬hLaţTú„ĂlW†˙žwsu˙ÓurL•Ô×ćZ[°ÄďŹFÄź’XŻá&^í?&„ŢĽŠ}¦ěúÔŠô 1M˘%Đš>"Ş=Ěß`­†ÔeC¤čuŤŮč®Ę}µAň†D±ćŐ­6†@ť¤/v"ÝP§ĹőKäg"­yĹÜo?— čF? SíŇX}ĂotȨO¸€ÉňH§µç=Mś.íü+­=вí`¨§g$łq¨#üý+1 ÇŹ@hŐ? wuřţEúže«%Ćä6˝Ď üŇ p! zôçCĹg6ŻE›”Řܡµ®0ęőÓ *ú÷=mPX»c7Ľśŕ/Tp~ţ)ú9 YR]ůŕ}qYT*ď–‡TĺŕOK úEĽŐŁ÷7]Ž  Ś^ść^v–¦´Šë>?OQÚ@ý}%ŇÇ_çĄ >˘ňń&SłőLŢĎ[^–vd7ź5SxD˙k‘JÇ!†=yž(]3§(ęAâ6VÎL|ÓF/< LÖű×t<§}Ç_2§zŚB¬&g 㼀? óŤt×?íb“X{ă¤ô/ý=ő&]ĽüĂźQŞĆŞeŕ1$Ěů3wrüu^żXDg^Lťu!záę™!ÚĚ•¤5ډˇČÂKgĹj6°›5CžR˙ŐŹ¸t†ý(˝µ ţGRĽOÂ3˝:iS÷M\tô("JśźŔrĄ ¸´»·y¤&Wóä$U߯Z/YŰT·ţŤKďKµĂą¨AúÁîN\p9¬*#(/vkl󚲛w™ďÁÁ´Ď×íĘząÚĎđvܤ Â>ĽÓ„ÂýsâkźF‰fu7 ­ŹĄo# –*@ŮJUŕ‡‚˘}hPčv_Î ˘3·ç8Dű2†č¨ł{ţřĂ^őZ&čzµÄŢe§Ä±*ďÚ`§ť–ę…UřŔ ¶%ŘVü#U5I_cyÓ(9ş>-ʇd’&&á*~|±×ńźE’Ź#Ɖu>ň$MČ]r|-¨ą&Ă ŕM `Ý @‰hÂ`¨ H¨Cüx†‹7Šw¬qmj`0hj¸m#óÎÎwÓvňŞÖ­KUŐűă˝EXČ( Č!é´wv_UńQî|㟼áĂLZöił‘1^ =Čp „Î( ü—oçPPÍ—ZaĆĚ~»“đ#3´lKOücŹŻéÄ6C8QęöćŞI ˙‹€É„ŽßÚÉw‘ř‚TđżŢOwľö©e­–‚lôU7-Â-ŕÖa˘cLÄF]VR-Ží ÝU{–Ŕ­‡0ż7žóŰ+`é˝ 2ĐdD°WTčlb.ÓďáAzXqŤŠN¤˘řŢČv¤łhvĽáĂ …ś©ÜHę0©Zű÷Ëýiá\vÔ¦NpFgF"‰ám–Ö~Ô9a4%\UZ˘ůłQť|˘Ż–=ŕD Ŕ™číw»Žă҆HD°ľsËűĽ4íW“qVw˝Ç;¦_´UÜ ł8.ç‰Yg–K ŃÇŢR|"%ß ˝­®ÄÓÍĚţ«MĐ0’O±Tď áź®`¦ç>ꦽ˛Ţ8+®ůe.!Ô†ŠI9Ôs©‡X„ŕ0.0ŚüĂŐn»¬ĺcółX:5‘µ@ŃšM FFMbsËź?ŇśjŞ~ç5¶Ű[ ›EX=»ňž™ ‰üśŻ‹ű3¶PŽ©B¶+]ŃÖP+ŹŮy§„ôt+Ş#V5~ţ4Ń·PŃ{!žW±”ŹŠ©€†0AńD~v=:Ôě‡?sö˝„šv€Ęs&źŃtyśžëRqv«*ł:ř!©ľiÓÁđ6M@€Y´Ăp»^7(·¤„8ë!e”W.Šăr ą ™\Š+Šж‘-۲¦?«$Sp8â˙‘ŘŃČÄ Űóă¶G€áą8X wFGÇ&žQăÓhT^Čbcáâ_ťÍ×B%2PŽwÔ&ß“!N㫆0ţ+×őĄIÄpVQ\»Ý—]TŘóť„söËeYćI &%Y 4öť»Ć ¸â$P–Ű#ÁsäŢCÂ3ćEÚâśEW 0 ‹YZplyr/data/baseball.rda0000644000175100001440000104362012034020705014423 0ustar hornikusersý7zXZi"Ţ6!ĎXĚđ„ĺďţ])TW"änRĘźăXVŽHĆqĹjnçj-&éÜňäbµ%i*Ŕ\CKşđA*Öš:‘ăß(T( W%ńpš÷8we ń˛—p`ФŇK›B˝C&ţŁ5îŃSçBó˛äĎIŃô¨îkn>N­Qář<(%8ć >3˝Z‰_ZÜü'đ5s–Ůń±oî’äöه@F~]ă]ćs¶“NëűŞ‚¸űL凖8Ň»ÖSË ¨ia ŘěÄW•ĂaXj´(č¶ŹËg‚v Š®ÎĂŔúÉ ŃŮJŐ%“[»Ó\- ŘîR`/4 ÔŁŚÓôŔ;Ý#›ŔĂ0•čOß-Kn¨$eÉ/ÓN{Q¦Eţ!ě/ü»Ś’I…Km!Ć}}Ő9P_<ź.ěJ¶¦«ł$óŠIVx,Ą‡ ŇŹ`Y•"ć{ucfâ^ľqüHaöó, /Î5!Ô†‹ ů;#X[Ôxđ9čQÂźz‹ÝcŕźöÝK@Eâ7z$¶żmÇ®qk0Yĺűšá˛DoWď‹Rť©Łťą^oĐÔ^‘ ľgGg/ĺ’#j¤ÁkćwßЭνĄń—©na€§}ŕBŞľD†wč;óé$݇ö>ە߷"îąonú×)1ĹíłÔ˝ĺI5)$őq_ í+ö¬ÜWË$˙˘°ňÔ±ĚńƦ’óą*ĆřúŠNvłiŹÔĽ Cmßđ׏Âࣂ–CőGm^źđŘÂF˙ŚsCĆ©»ž~,Ľ˝ßü…ŁičPÖEi™Zrg•âç6EEsÂî~)´¬ý¦íM´â-÷EĄ->›ă?›Á†Ě'yDéńĎč3ťŕÂá,v;+śăBŇ ožW÷}qí^=?HB·âF$Ę BŘoŰŮ>ĚcúáĚ työŕÉÖ˘ľ¬ߎk´˘Ţľ][r?ë*:ZsË–$čŤFeÉQ(ü? ŘĽžňÚO ě'îNL­ţ˝…aQ•!4sŇdáĽ1¸»/żŇG&ż*g( |ť• ł°Ń´@äočGR™iPj¨ŽčO[Ż[ö0ĺěfŁđşRµ~ćp*Ţ×ZąŮOxž˝Y9făX”Řäµqz!Ä«-’—ü™ąŁ󬱞őÚá˘[>ÜăŘ V+mꥱÜ6 ~äě)Ąç•ÎzÂ4¬vgtůňkËqšď,řŕ1+ŁĘ„CRôqŇQj1[0č<Jé­6ôRŞâ6â˙ç«‚ˡZ1‘aBnůŁ Ż1„Q}»^@kŞčŽÜ)ŹÓŃwWĘ«T]•¦BĽŕ0ŠßĄßi[:Îç í<űŐ«ůŚĐ©ŚŃĐäWĆĘ5Ł_RUĐö6_Úücő%׏čmëv«”ëÓű/mˇxd+A‡cE˙ęŃuÍŰ˝fíĚywřębË`ż J"±ä„Űü-žÔHT·TÜ,ˇ:^>nˇÁżÔ—śłÂŮm˘™EĄĹřu34gîl'mPĐ·‘Šäš\ĐT.Ą;0Ć|ŢÜéĚK4ížt·Â‚EÄ?QĹ8źă/'-].y|+’•3liX®P«ţ, ÖTi/8Á?<ŕ [j€a o[W Kęases¨ť›ârëĎŮ•Uk‰“Ęy^çĚ_˛űęŔ°|WČÖQ㼅ӊ>YýŰ$AÔt݉žÁi4˙$8^K äě§57u4Ç×窔›7ĄvuâRÂH?űčAXĹІÓt=ŻŹv ĹЧ¬VÁą=@KDĂîЉŔŘ<|–čň«l@ŞqÓRKŢyŁ©á?S•ę řäŠ ˇ‰Jďhdüč4[2šuÄ=¨ŻZFťŻň­†ň®ÎF¬Ü:뱾‰zoµóűőxX×ćżpáN[tŹ?‘ÎČ töw`óxëJ`ĚęáY! ¤’ľ„Í˝„§Čş[ż|xÚî:‚č9›ĂčĹŃĘ ĐŻX|ß>”đ nŻ»Š{«÷đź_ĺo} ýť~>‹Üjĺ#6áŃtR;[-,Eňî}Î&ě`¦˘h±lŤR®xͲ­´ňLJ+íw—ú{÷˝+MdáĄIĘpńyšlłîA;7™> ŞY\ŢEWąq ßý/`<žě„¨˛.žąvÇoLcqŹ®AřU>Ŕ-ég 3Pé†ÂŚc^q”˙rÂÝŕńŹý?“Ĺ“Â}ŮC10ôvÓ¸Í=uŔ…RUMŘ—Ž0‚xR±Ëž(ßSíćPçÄ17JAś…ă •‚´7„# óó|%DJśřóĨn˘ÜÄV;ä8ŹíB˙(7٤Ú¬śŐyŽ“4‹˛…űďÍ-ĽhnL€ö©%Űű­µČô}Ő‹cöI>¦đ¤ź•rܶjČ]e736H‚‰ö±ëÝ`ůk!Ů2öóo‡XhtŢÇĽ/_Šçő!ăq%G‚/·s!Ű:SŤCçäĂÜżăk¶M`ĚÚ8`Ϣ¨Ŕ{đ!n(iŚ^ëľśűŁä§‹`Ý(Ą+xÓ\őĚaâ Şö™ët%5śŰu…?Ů”Őh.MÂ˱… ja%h=-[ôFćó±j ‡5ó[(ŇićQW[ľŤ„D2¶,ĐpôkvB¤‡âz¦ ă2MÂĚ6¶€KäWMmě&€×řÉŰioű쎜ŰßĹÓ*}ż%VŮüóÔŁs´ĎB)őÍT…™§#VBo˙ Şú ť7d%ůĎ˝RnÖ ă~™ÎŞĄzř&jâźxŤ^Ĺ=ŔúŕCn1«{;jŃ pzF˛(é•ăŘv,DMޤ€ő#}Ö0ŔF˘¸¬}—¶šˇ 4¨ŽśsŤkřMĹdđîňő~ OoZ°7˘Ź˝ Ě: áyPb,µkŐ@ŹŹ0~ąâQ¨ÜŽŢ÷ÝĹ— ťˇf+.ş+ŞşÎ) t=c`Ľ‡ˇę°Ó)‡P.]Y.¸žöő˛ŘŚs·ćTĆl# ýŰ!QJî0=ăŻH câ­őOg#ŰY3ßkˇć ™®·ބá-ÍĐd^ăůwúô|Ç1ŰZXô.ä6T3”«÷…E&>űĎĘqýKĎî§Đ,ë‡Vv´®ý9F޶:XÔŤ„î°Í°O }i+d7AÜžŹ- ˇ…D|śčg3ň˝ę?ěµJZřZh»qűĂčđí˝ú®¬ĐlÔan¸ń>·úçŤ?UÂŞăüuhV-ĺMz*¨ť 0Ă(W*7ë W2‰ws!>ܛکô@źčR?犎Âo{ŽvăÎv.S%˘1«“8ÄŔSřnŔłkí¤Ľ,ÍńćÜbKYńr\±˝OěźQF• §çîá;A2\Ő±ĚËÁZi´Ěl,˝Â¤ßjŚĚ•p.Ă÷ţL´nnŔ€ýđ2š[Őcš+č`Ĺ^Ŕp…™˘N2*Ľ&•…ö`ŹăPËúGf]zśűäĚCĐĐä•ń~x_­L«F«‘ŐµîâŁ3É\ëW|ÉçFd łŢg^űľ"HnÂ.M’ńĹc׎¤Oă"·˝Mޡˇŕ®»ÄćÜNýFÉnsůü†qu­< a0•RRr]‰Ńеť§9™sÜ< öd«ĆădóR®Šcß?ž ëTé7ŰnžŁzfÍť˘ní”iďŁ2ÜŘČ XÝ©QĚ‹5j¤{Ŕę,;ąŠ˛Kbě?j'ŠOŻ( sLv;lj!’<Ńlîl.Sµű@M¦N:˝:g48­oq\Sź+’ĺ_É6‹€¤[”ăK+çpÔ+Yío µL‘«ťtY’˙čWńż}Lis& c ŃĂ!Xeü“^Ó.3§Ű* ö=ćżů’źFÎj’ި'RkŽŽ˛‚óőu„v§%î#mŮfŐLŞş?U´3_™ŕgm;Ä·Śş U>š»"Č‚›ŔËwôoę#° ™­_÷ÍÖ¬ĺ:‘; ±UT®ą˝Ď+˘„IRČŽŘMűNi¬h±rxÇ ÎŃPŠ92S.5—ł†r(>Ő•ý$1ż˝ Z¨ăă&úÁ‘Čßéĺú,fQ^O"rę|uđ?mŐ^c;=ľíşďëŻĆö]őđ5˛ŔZĺ.Îţc%ż­ýűÄ,˙b›!,™Ţď83t‰ô#±+üí6ýKťl–„ëmŹĺ‘”ű–”Kö`Ü… sčěüĘ5­ř`0•=ŮX8üÂ^ · Ă®ŢöńGôpXxBćHh8 n‘IxoĚ»Řđ÷zü‰âŁ˙EÂęČfż·A ăV,zOö =‚*÷˛í§şPÍ3ă­V63›Ą,Ľ Żícu¬;5>„T<®Ĺ˛`žgw“¬řčZýĐ`$ţŠFrŐŘŁ’mó$ş;äFň§ÜvĂÍćńxB#bRâż@IW÷«ű/‚"ŠFn§uŤáĆYŃa—[ËNŹÍ ’ É ›ă KľT±ąőĂ'פaŐ^o¸\ šáĺ˙“[žľ”«8Á\aiAČ÷OII†…iż’2=T™ĘşŽ×˛>7ÁjŇľ”ľ\&‹ëf)@˙u+i§Đ?™ÁÝĐJĄňl·ąń(î‚ňźńŘ5ë»ËŽ~ôîxŮ@@´'›łZć.ĺ.ˇI=ťŃł¨s›1ä¨ tOCrđGŻÇ1If¨zőJJ1ľđlSZ°đBňěG,<É2:„ŚÁËíđ˘·á·®Ř‚>ą"js»©µĺ%Áç˙K"&«Ľ\>:SĐ÷ě 7Qň ţŔił [±Źíľä*!˙¸|ęy‹Kp'Ťć_‹YWŤ¤ÎXßTâ’ű˛FŔ@ĆC2(ݧeö“¤Ł`=q٦$ĐşŃeUh·ĚBŇaµDČ‚R•W|ô YĄßPaŽ´Ábâ{ĂâCFăÔÓXâvÉţ‚_–Îv/˙^·Ěż|,1¸ľRéfxĆ;ëŤćšˇ ü«_˛¨-•ŇöjÍy&źÓq€±”}J˛ü°azä.űo«źiÓ~$y[¦4­_#ŤĽ±OpM~*đ˙ÖA\Q!ÁvĐüĽżrîH¨”|đ$ÖjY¬öO»čg¦Á´Ţ¬"j«j$#ä7mSzÚ±lŮM*ÇÇż•'愍M’:wAîź«„öfkmŇšŕŞcW›¸ErS9.}űÖtí&´B¤zXÖK\w(úÉ_ťź •˘ß‚ä=i×ro ľšM_̧ëű=—Bj«ÚlVçjźI!6éŁíÉţt•©|’Ŕł±łÝ·;­˛u Lbśčş]c¬’‹Ž±×T*Ϣǽ‡®{4&43áA™j±6Ęa=`yĘw­B·”8^Q·xťKĘöM –ßU,vŐ+_żfóßwŢ$ŇŤR_€ŚˇŚŔđJ7¬”Ç TF|Ţd*ćü+ŕ&AĄŻk4٨T`ĽÄ­ĄîTđßŘRĎŢ6Ńĺ9d’ˇ×đGT3vžíŢ‹uW‰Ŕ_¸ż¬]T쇞ԍÍĐ eAS ě’ÁĘDł±Őö± ĐąŚVî0ń]±ę#đ„óĐ[ ÖĂťĄ„€őôD…CćĐ6FjvVôS¤ÔˇaGzíPąO¸/ĎĺK×4Tś_· âÉŇ’§Äú.DB0Î+¬dĐ(˙tó˛.?~©—­‡Ťc%Ś ř‹§îžhuđ˝*¬ć¦ŕ«hłČďßvĽűˇÇ©ŮgGýf‹6ńk­ż'I©‚3ľ˝F¶–Ď‹®˛Üٰő7ö 7 ŤeČuŽŻ™ń¤dY îAŃů1<8 ¨q˝…Ůŕ×Ő§`‘Ćo^kĚë´€7ĘŰđs[á§ď–ěQÁůhŁűZLđw PľÁŁţŰĂťäŰ’ă&D’PĆ*|“N.W0X„±Óň2űÝlż`Ćŕ‚©j»‰ö[9ŇV7‰ÄCEŞń‹Čď®U·r-„¸6e·|ş\Ň««eúě„=$ÉËX[»Kü%4łwń?á»ć ŠôŻ~‡Ń}”Ĺ•ĚÚo9ç˛l¤oÁ#¬Ţ‚yˇOĺ@á3ępvĚgVéʬ#_R»ŹŮAb@„“WśŚřÁŚ;MK±íł˘¶ČÖ·÷„ŔmIáuŢ|RYw• 7Łz5ěÚÚ6ň{_Ćâbó—šMć ýă`nÇ|č1Ő¶č0ň„K}XËšä^·ĄO«Kv€š¦×^+X-‚.’[ż‡pŐ‡ %™…†‚i1 b´§p8»á+Č-¦ü&‰jŔ-±„ĂQX^MĆĺáÉýFF3ý˛ËoÖÍ—)"•nËVÇľ^äéŐ™ŽÇg‡C2ĄR–"‘ƸSGĘĺdťšDĎ]ę’Šr ~ĺ+ĺĎp3Ź˙óDotŔž( ^"Ľë˙ôş}Ť±cűł…ď©»íl!Ó_,2)HI\Žôěő›ý"č Én Ź,}f‰ŚcËC°39W±&ÓŢyÂ|S¸ëźăĆżůLŹÚÂ2r–ć 9po.~Dy)H!wđ[u1!©ĚIf9˘[#–M˛řR‰ż „·éV®;-Śě•ÄÜŐd_eÚçP Â&dBĆOýirç‚I swlaD»1şřŔăž[ědT›9ôŢĘŐŁ›ĺľÝ>ěîbݿ±o6Â;żLý?µÜMňĐčuUçCѸÓčx…§ŚĐŽIë§2O…KQhś‡Ř@) 5Ól#ę˛ Ô!y%$Oł+×>Nü›ÄeîS‰šŹMĎ@ńNŹĎ¦î€9o‡“t–"áž•$Yˇ$z”ˇůíFQ6-ˇń ĘÁOsŰO˝Ěńť©8îäçär_RE6¦­0™qöńö¤räp’˙R‚Ý ?ÓE˝vłwůs âg/ ED>2Ts4rX ¸ąě\Íć]¸«őŚÎ!ź‚BÍKgš)Ŕ{uQ!tł#ž™ ´óŔ)€é…Kúޤ)X‘ĺÖ XdłQ!•î¸ađŁę‹‘)Íäç­z%6[´rźD ›7R¤>ć !…ŔŰÇ×#™Ü}0ÖűG:íáµíĄŐ]č–Ĺ = `ÉíH`¨hJ˘Řujuť ä:*ks/~ɺަŁWÁ™Ů|ÉnQ ~˙ëtˇB ´s7y…p}$Ty&hĄúáCbôú†U]öE5MvĆUŕ—[˙‡ďS04 ¨o‘ČĆ<Č üg§^ęBÚëó©G ĘĄëßď 8©ä…Іl·›,˝WMćČËʶ }hŰ‘ŻíôqŁćŘCşrĂI—Ždţ·%¶HżÁ~4 ˙Ľc‡ć&đZ¶ÔÜßĹŠo–0i¬!w3±hŃŮ1G|n#ř¨‡_écŐń=!»âĄ=^cI©«éąFq!ç­*€(Đ)9ď@‚Y¨ůĆ}m%<ź­Ľ`¤kHÖ°ç[n2ŚÍó§Ř®Ę‹jÔőÄ|A›y€ŐüŰtV ßčÁ?3‘čr"ž:®ŰVM–«_¨ń…ŃĂJ¸0hAś›ă{gµŕő1gâä#ş‰¨,^ÚěÍÇđĽÍ€ü'>2˘ţç8n:˘=Q†w”ľ:QVyťk]Ázk™~çĆÄŇĎŰŠAs{?‹1°˘ˇ{˶ŚÍćIMPňĄCo ŁÁőۧHďşLë^™o[pÚ6/·ăÄŕ9ăNťîL€«‡ołćZ]̬śnÄ$0¦ăö ś×Á&VŽ"iĺwqÓu± ĺçÉčZʤ „˙÷3D8w¬hfôÍľ3§"o 7ĎqĄdYÄśÉ\Źv˝·°3îGŕw"?…wµ/@_˙€‡cŰŠS#=Ó/óÇ6˘đ3iuľúTަźŇʆYŻ]:áŐ@± aÄ$¨ě5Ŕ$y].Ő&ý·w$ýöŰ(Ň2KëF¬tV– †FĺőCÓ¦z›M7âůî34¨ňqĘP‰Ťčđ »ÍWđĘ ’q_ š˝BYé7ŽbéĄ/8ż8KŠäh4•ô` ${8.rŤŁ`•nťT]ńl`8QŢ ÇYĎuÎl$gŚŽ™oµą›KnęWČĂm:ĹŻ¦éË×Iű@ţqˇ:d #řá׿ôâŃ·ĺaOfłtîÁrD¨‘P ß´ęrŃHE ‡ šR˘ťŃ+}Ň/gŐą)LCGťţë ZĂěôÔĂ„ĐhGőúxđ{‘×Opµßp¶ńTYЧăhŃšS'‹±"} [c/RŤ¶ěş® \ÁŚ “:C™ý±7]źc¶~š‹Ü‘âĺza:ó7`ÁÜSĽlÍž»Şź)RŮz1ńŽćˇí<çâ):pü<řM tR˝O¶íBxÖ»ÍŃôÝoÜÁĐóË@ÄUkel(Sš˛( [„đ´¤ »`ĐgMme×Hů_¨ŞC™;zřÚ–gŹ‹ę!„3E×2Ŕ[űwT~{˛ŁŢČeµßřĆYńÁy š_dŰß‹”׉eô¦@źŽÚdŮŠhÖ‚@\»hNé<Ä“)Ň—ďżTNuúŠ-şµ»ĄŃľÎĚ(˝üޤ˛ź·©`óß«lú“Zžfó´¦ŢoHÓó5$ˇpżÖ±\-&Ľ‹Wţ‹–P(ń\ů¶ŕu€›‹ö”Şůf`sÍî*nş`ÚQ€QË|1äţÇÖ_<€Ą–oŽ(Î4,Xę hčkąúĐxěxo‰śüµö?µśK|÷ •)é18ÉpxŘđ ăg Ůť‘‹?áf‹Đ”ń[ç™ÂüüI1G×éšůä°oňôZqÉç2 Í"»4ń#D49,ÓĆ™AÁ· «úş9…Ő{ţ˙B¤Ü/kâśČ$ƸBC#xn˝©âŰ™lEgE’¨ě™¸#Ĺs]ŘcP»Yw‚˙xż••·-ĹÖŰ2D /˛‰+yôZyâŚňBŞX~lÁď¸ĺ’E8ůQ$ýaf3Ý=5”Eî.”g‚`n}jxő‘/·)~đ‹?ŕo„˛´s.˲lŚ6 ˙šĚďţ;-P§—ô…dćĽŐ¶Ó§‰ĺĺPb?¸Bl<]˛6ŮÍ_ąĹ>e]š‚ń $ ĺ'ن†“Jţc¬Ç±©µîçî@‡m©ö§‘±={Ť4'Ď…Ť|6÷ýEÉôzňö0ˉ»ű†ôኽŚÇü?ŞÚŠŔ•¶ Ó_WÁ±=ÓĺOMO©Ćă{ $-űíĄ ?˘dčŃprě5öŘÇY4‰Që,÷TNkJîb…t]Cíô0Ü‚6ˇ' S19˙ű×ç'@¶ÂĄŐr¶dŠQA,D{ Ë6žń™Ť·q}ćH7W Řm˝ŔźSEĎ›˝8Q(ĚNö÷1ć‡Ú$+@!Ě7·aMI14ĚĎ_ćG(-&%+>%rŢË‘•Ćŕ4 śŔ«Ů˝Ţ›H’˘”Ej>ŃBÔd8ś-x$Ç'*g¤aq;/<“p*J\Ó tšRQ<ČÂ*w}Ąäăű(*0Ä’«ěŢf;yH}žSŚVł×CűL€˘sÎ22Áů:ë đöU©M›1ů`úš&„%s哯Ń=éŹMk€^˛'Őyzłnt§…YŢ‹& ×ŮgҬoĚ;qŐ¨i`Ô™;-Ą°M4+6ř1~fłŠĄ'ÚSQuŐ9.š‘Š"wB^Úv­ęşÇóż´«–ĎH†đdŃ baY~gD‘)şBçůRÖ ŠyˇSPÉŁsz%@ĐŁ´—Ë2,M#[żđö»Źşm7ŹÉ†ő^vÇźJ´qÍŐ^-QĆ,ěňĄľci¢‰?yB(¶9Ůg;INÚ$ÍŕĚžŕ9Ö#ČĹz}łC×bbÜ‘ŔČÁ͡ŘEű~Q'<,ŁĎ“Ćçe{ýŮš`–"´_ťnđP…#|śř&B€fx7lćH»¦|°“}ŐmeAB!âÝLß"‰B×W)ůl Ú1Q·Á*Ő&ő`»Ř ŰvÝÇ@;Éjë3—őřńŢ·|d¤y­µhlőŻŘŃ\ö‹ý;ĹÜôońä]ÜŇ­&C‚GÚîWňŐ“†dKá3He Ě¨“ö“Ö»dg_#]×LĽîÝ˙őľÍ Ů :ĄďXIîo>kČ{&1ş|ÉňâLD$9„.P°ĺĹjU1ĚUÂl¤x|$®ÍDHä}ć÷»U@ ţ+;8ř ‹@ěůCęČF6Ý"‡°ţĆâ,ł/vKÜ˝ÝP¦ČłţO14!Ő˙S@lů µ!™t@ÜVż~ĚrôőČ·ŐĚofIľ©›ß¬ÎÇl_Ť¸ŤçFűäűF&!R.,tIépş-Ę$ËS5Ž‹Uڰ1ą›%Í×fw0}ť™÷D»Yą¸H'Ibď– ÄÍĐ(ő×㨞â' ű`lżáaŘŕ »ě¬d˝vÄ/& ĂäA “1^FcD-Í,#lë(¸o·Ş‘A Ü„^K>ÎEpˇQ7[)±¨ßQF8!ŔV(¶—Ż®ă'÷±n;ťć·łŹ=¸pýi~űřon˙uA 1ľpe”¤A!ëĘ?ÂŽk…Ô7#\|&šŁň7+ZiUp± ÚŐs7™ž÷şiŕňĐ ü™¸Ş“7IĹÂ;OHb›~4FŕČÜÖ^pj0˝Ö&ś™Üţ·ź˝,%Žće¸ńŃ{U…RqG»v»g/ŻD5K1CŹ'.é÷Á˝e‰Ô)pžÔNĆČ“4;ňzaŐ(Đ™śßݡR¦Â!ě?-ĺ""Z0–áÚş4OX­ńµę¶~Č9µÚŐ“kÔÇ…˝Z>Š©±lŘi9Ö´ł ءßŇÝ›×i}ú8$ąnřhއ˙ĎáÂ’|‹˙ÇűňöĽľĽďr¬Ć'yżęűŠoľźă)T9 Ö$;fűŔOą¸F?>XGž9Ŕ¬tşËG3: C^I6 _(RąuŮrđî0˘r­…Ě]qyhÇ_}DNSŮ ţE3Îüń›‘¦2ťÝt(iÄ2dăM ‰°DésPx9-®ĺî ŇXöŁ÷׸Ś®Ą˘Ů TĽ‡ćɧs üjH2`‚<—ݱ”ś0Í“Ět{ĺQĺh2Š<2o÷†®A:ďUVŞgë8ÍkBŻ~3ť1˘VËÂ'ś6bw^çVcę F8«ÁeĹUĚj)@*vó¨ĺOÎi¸ĐbŞ8¦„LťŽű$jö‹z/áw ő®ł˘ÂŮWýë”™|ĄOÉľŕ"źm_.íHĽř!ýf*€Š.fs<ýć9„¬tŘ—s‹Čn€üŮ®[î} —hí­„ Îş'š,akŔn\(ÖT®ÉÔěÍ?ßŕúé¸UíŘARťď`kc„í;ůZ˙úg†Z­đ<ÄF˛“®’ťs#şßµXó-DoâjOŽv.^cˇftń÷lźc+vIi–®F1v€Đć·Çl"ăŹSń\ĐÎ]UjĽuŮ‚ů;ÔÁ¬–Ô#őŽ Qj/u·Űzr|Ĺ-j’,ň /ÚßvMg×…ňä°ÝVPZ1ďČńŢîĚsęa­Bى\5ü›˙Ĺ’:¬l6©홾˝€ĺF°vüčżeWY™Ě‹txh7ňĹoĄ€ľ"Ţ¬Ö f,ŮhŕÓ¬ăGr"#1řĐăżHĘ &>«˙gD›đ%@Hxe°!›ŹţN#!RÁ{y¬Eý¸0ô @o Îv§łÁt°ąîŘú˙Č*íŔŞ\“‡WˇĚŕ‡^[Óp4ŕ˝kc‘(Mş0M}svÝŻ)MĘĄ¨ęgěáŕÂ÷]-$s,dVꆽÄ"˝Ę­ătÎÇ++=Öôʤq‡dr05ŞäÂ)ôÁ%ÜhďCĚ›aV@…”ř×VŐSâöč±í±03â őŢň›1ţ”éÝKv–±~ó-đ#+ő´'ąďę˘+I÷lź‚ý1‹/Ë8h‹¶űľou+Ú9šů$O<đd }á1Đ­™*ĺN8"üÁ!s–ýGeÂáÝ*¤”—žľˇ,}č´gJŐÇŻ˙źi ąa¬Ř‚¦ŰŚ I6šÄľ*“¦wlGg–é–Ú¸'+oĺ¶„ä‡BőOäâŕ×—OI_6y0A›ő‹*k˘Ş˙ŤŘ™!wzŘĹŐAmŹCqĂ[†·ë=gÇÔď!Rb"fJy±´ž¬/é"ÄâĘ®{ž’9Çm›Ó_şĄtŰŘ,;ü ľ)ÚŰC[6?µÁEŰ6Ç—N 6˛ßh¬Ó4$Źž™p›i©M÷& $¬ekCá-ĎąďËä]á2Ęf.e&ĆÉ€|;Ĺ’ÂÝž1.Đ!Ąµ GűÔZ›0şÚ3 ڬƒ%L#Oh8Ë›OCR@92*°Đf®ń›¤]ŐČ—Ű4¦Tä–-oWąrň2F?T“ű”ˇz–3©úő˙)W˙%Z¶–Ť±čÝR"ś*<}Îş‡ľµ-TP7„aYüO?Ä$Ľř'{QĆwň˘ŽGëJé')Bq€WĘé^ VxŚ>‹CU9ú[ áÓÝEK˙bvâs¬rĆ[:ć:—`‘Šç ô’î\›ç-ńnl÷fŤřDŽÝ2&ĄżÍŐ|¤§Üˇ.@BÔ•7$Ą,‡şű™)vm̨ő±ËĐńľ±Ýrbż1ś‘Ëł[tMŁ4ˇ]Šç¸•5•˛oAđZŮaŇv®„rĹŠC&AÂţÝ@˛=VGĹMäýté˛ #0®hJ‘@ZłĐh\M;ŘćňQôA´ ·ĆĄËuŔÉmăn¦ĎPĺ¨FaŤýĹżą˘•0zÔI›Kđj.ýÍŘß8ÁśZ Lď>-›®ĽŇYôj!@î o*Űő›öLŕ$űÝ+ý~÷‘‹rBŁţř ;ˇéäLç'ź{gIcŽ!v˘z ?›­ vY•–ŇŁuŰ‹m–Őľëżäٵé<ĆŹäjPďă„yŁ@c‰5ٱk,Ţ×4/Mo9”+ÚÉb§!grh´>"…Vv9Wü4EóĺÝśčN¨ą_Q»'őŇÔ­dŐ曍‡ŁŮ¦/&w< 5Ţ‚ý–÷čÜZěHŕµ]+®X»Z2U°t¬7ęÖoÓh‹§ůđÜŃ+é“>z•śÇjúŃűW.’´Ă>» ą4R¸ůĺ‰0.ŕ[a^Ř9ˇ Ż˝­ÜŤŮyŁÔŚ˘Sl“>#Á&ŞP%ů_vÍƧ†EËĹŞ%ŔŽŻßŹˇŽC>@ܨ•®hf÷qÂĎŮ–Ůxť¨ňżá@LJĐÂAĚDyŮ“úµ´}ż.‹ĺÖ^P h=HOY`Á”†űíjŔ#ę“×)®Gćű/ţ #ŐŃj˝Ä~‚lFIN)íD ű1áB§¨ý đ‡đn—x;ĺr?Ľ—±OśnÁýj€šĹÍ…ź"ĽÜ‰§ÜÖz„·ů}bÇ)bň"śy—×í”G.âÜiA2f3űö„<fć=Aäd~ײ«˙ď.3?PqG¨Hn錝M€T=ÜśjWˇ$8·Úţřˇ'ďže•*ĘqG"QÁ—f(ĘߪÄęÁŐ8Î9Í"×3> ĺÖ˝IZ´űÄsź_-Ům7Ç‚3ąÚzĚEŐńaç5’„ \ÝG•‘9jŠé#dqLWŻNüP· $ŻXňýäb'üˇS®h!('!ÂüIg·WÍcgžvĽ°Írk“g¤„CŢ_?žôäI«W­µóI”ÔźM$Ehˇţ*ô3ű¦aĚ?ű?Źă÷˙5B©Tś¸ÓΚmTű€tZÜŚůÎX\¨é>Ř”‡ěĺ„ä+Çn@iĆpZ ‡Ď©Űra; \oN‹éŻţ†ň±Ň&Š%'­káŘ–­őŽłmĐż”í‚é˘őXX ©3;Ýr('ľLS$wÜ…»öů÷D×âÜ Ô9átű‚ „cŐ4ĆŐ×a[ű€î†¶N™"xřÖ:äšľ"U‡Ĺâ-ŹŽ´'ţMre4ŤÝIŐŰÚŔx®ž\ĐĹ'Ś<ŃśŐďäBZ0¸Š\©’˛—ŐrnkS“ĽŽtxö>cuńł€”ş#Żţ{EĚ—Đ™@’ą€łµťŞU{ĹŕE‡»ÄŞŰ«!§ńDVe7†+Ěôŕ6”­3›¸a˙ đü@|đśC•^^ą^:Äȶ+B€·y©;ş˘ú ¨ ›ůŤK`UVeĘHpCÇi¤ÎT2Ü˙ç·‰ČNÎń Vs¤ˇŤđˇ)´`ÓMФÁĄęýđpąuéZŻs*d_IÍ!„8ř ‡Ő%U5yžPˇÉE"ÉĎÓ>ł O]7ôđWçôŁŚú¸·ű“Ś\§¤IđîxŮÝW@}Šeş ÓĂ6M–] 5Fç¸T˘:C‹ŕż‰ ë^děĚw¤[x¨wW6Íxě/‡ţýu­÷’Ó*ňEÍë{QQ—k‘Ł¨ćą´©ÎĐ˰°"Źpˇ źÉ.—őöżđř-ŞěŕÝ–«Ďw¦µ­ŹăjEÍĹÔÜĆgZ„řKŠD$Fey‡f°±â×­+ś˝M#®ü}wŮŘĐ‚ŇÄ4ĺ€|5W4’ó+αZٶQ»7áy:!@:ł-áČ‚‹TgĆađ:N„ĹśÄ!"5âŤjtÂ3ˇ«Ĺ:Ďů—ééëµ]ń3s™ň}qŔ2\YÍfÄóëZ×ëxUN®DŮĂE±ôhXQ×? 6âM€Ž2guě±^+>ó¸m}Ě>cŤ‹„\Uű˙›RrÜÔÔp3@6¨;6ŠŤ] UEZţÇĎ6Dç—6Ą†»rŇy<Ë+°[€a3“ú"ŐŇŽÔ ă?őHöë62ŕż E·ˇŁnĎĎMóĽ9Ň!%/¦@fqú,7ó"SŻ3?^ßg6ć@$ĚĚş• ±ČŻKBˇŚ-ÄËZj3íM–uŰ*q\ŞkĆőőB˘Řš-–&Děq}`˘ ٤öMµ— ¤XłĺKn%˘_d$˝Pöő3¤R0=2KĂ ĐŰGŻöÔ¡3He˝fĽŹb3^±GŐ»’‰dĘ‘öól)˙-ŃđLéČČQŘŽ±$›Í Ěl ťłGźŁĆcĎ„)ÉÉá˙>ÁzôC®P®Ž·±NĆ<x‚¶ ÚΨř(ĘšźýÚš0šďÚ÷®KîřłŹNś5‘9Rŕřâ±ú[Cý¨ÓW4_ăör”–ěkQ‹dô¦«ä˛AŠuŠ`ůŁ@őşŁsÜĄąń ¬Ĺç 2-voINxZt¤ńÄ[ß°ťđHĹ.ôśŁ±Ď3áá®8ŔUź_ÇŮčlťn1úýgöŔ9t@Ł»Îđ–­QŘ(ě!+甎˙V Öćl[9m ţ|ÓwŮÓ=·Ňç^äBz·ox*Â\|”uŽi<őŁ‹y‹ăf>q—ˇr‹ÜešŠvĂu”V?ű–Jg+¤íł)é€5ˇá%u ŽúeŇżSLřy U÷@(<¬@:ŔúĹRčą'ÝV`ĐpëĂđ´c\}nó#čÂŁáŮČü8AÎŁŽëŢ›1ä Ó#—µ@"?iv‘łĆě çň˘ťŢ«ď Ň!·92ž!‰Teç9ĹíJ¶˘†Bţ«äa\ŁL“:¦-Ť%ë,KN1zć|g§Ż*q[ĢV–‰ôşvé©·ţěŘ?{x‹žÔ/·Rx—ÉŤ˝ đĄóŹ÷üđ'ř†P¤ĹUP^ÉjĂdë<đ1Lôçf–<šo?‡Ö#ŞŻ,RS«‰çÁs>ŹeÁéN|uĚćj)Čś)r0nmšč|®˛ámIňB耖Y^%çVC–†ˇNĺ´+Cýµ«„ó*öĹj;ü7/tđ„¨‘˙Çęň=FÍílË+-ě®Üµ„ÍďPG8Hňr)íŞĹ04łýEcęgm×HX»Ř†´1–ü¦+UÜ…Kc.aÜPô{ΫËo©ÎĹ_â¬î 5:fÝKBŚg–ďů„dÄ·4§É0˰“Ć<ŔŹÇů{l’% ”b§ĹS}ŔŚ‘äŁ˝ĐX ŮĎ€ś?IFpÜ3ăkŕP4T-x§ÖB_ÁŐŹ§·<׿ݞ˘VۨNW_´Z©bRz‹¶*7VŠxúŮ—DÝ^—\Dáţ-'ÜŻÖ ‡;‚ňAjŤ~Vcxţ)ÎÜuHGď=˛Njp$Á—‚BĽv›t‹†{ˇ1“¶”Ô–Wa-±Ě=Ü)-ŞSĐěďRTÇŁź Ô‰ÜN}m!­ë·]/ę*9ir!řkʨzúľä^mů.„а‚ÓâăYéľÎ'cwtĹOÇśFbŞĺŚźú_ý|ď|&ßŔ•$=mI"š€BÍÖŔ®mB'! ĎľÔôţeđ*&ޤö.KqŇÂÍ!çůD˙‚Ž:Nłúž„ŘÖŽ¸ţÓ¬u«B°}…Yh|Y®gwX ĎĎ7AéůĂ uĄ8„o’z荂»ě!jľDiăbfe”D~ˇ˛šŘPűýű5ˇ!HYÂÂ62ŢüĂxËKŰf˘ĺTE[•(ŻS§ŕš…3÷ě>ßć4Sôřö´'¬*qú»ěáĹ0Än¨_xKs?’5૾;W×~ŹŻ˝_ŠÔ•& hŢsGzµ‚ÔmRcŐńlë+nQ»O“ft'íĎ_LáY§ŇśÜ,ŠQ ÄeäZ ëŕ˙pl¸żz>yz®ľ˛óKľşË%ŰXŔ–mGEcýFMiĄ[ Äh—ŹMEż#Ď- çť|†8rťC†đ-ÜŢ&¨7E¬ĄŽ_Fł‘-Ą7ţńŇHx˘pÄ|Ř»ivWÖ­]GŃĽŰá'¶˛qڍ* 3Ćý†آ†ĎO kĚĽ>dËÄ5¤ü꼽9}Śt,b’ţ™ř®±Ü++ëąMÚ¤†^í#×÷Z¸e3ú Oѧ0úJŕˇáđ»żÚ>ÇîrPRc'2Ęî¬ĂŘ}Ó F24F4pŽ`KCíŮŽ\îű¦¦ĆT‚<’‘đ@6D‘ň…TÔş3G‚ýÓ bĹjţZvTx–>ó´:°2‰5Y&ńşp°kżKJ5X?ý¸>]_ČÉ˝Tdk˝UŃaWhÓ’’db“Đ@ÚôäĹC;‹#~ZqˇvHSăĆťV‚•ĆE´j#^ ł· >äÓ•łňöůŔduŐďČ˙ęeHgrGŹüľ)‹BÔ ó;çől˘čçű°řÝĐYM‘¨f C!Áí¤Ľ>řżź€ â‰QÍý˘éňŻäě`Żí“h—řŹyZ:\ů8‚±:Kś]94p2Ëlfh­Ł“ –M÷Ů ˛ěg;őxě y<}ü†ňP‚űĂđÉŇ{«zŘUÔ%ëtćóţFÁą˘ýhYŰO@şŻ°ĆhÔ5äoţbX–0p ť™{Áł¤Ö”9™s®éý LŇ<ϡăš'ă÷‚„6Ń­’%0ɸý/”ywÝĄviăűŇĽŰ Ń‹ž„<‰Ě”‚;{6Wě‰Ö(Ă (öŠôůqe}RÖpÇĎşý/–@Še ń4ÉU€RcP ĐŔ:÷čÖ8qÉ7°ů®ńZµłx1Ć«‘ŹqRK"čô‹őëN#—9űí€Ôćť ŠÖ€vŮŃÁO8U‡3™čâž—bóSBxDm5!!ź¶±f‰'OžJ ďČÂZ­ůîíĆź‘Ü ĚEÖÚ¤‰×1„Đ óŲuţH†A@ł´źE ŞŠ"»ď7ł4¬EeąZ§sůŁT’*ŕ =:Ł[>oňĽ<56’&Đ—zŐehbí@^ş0hĄýŢIĹşÔWŮĄĄ]fűČĐÁB“˛SŽA×_óÖÍä[ 絜+öM˙ăŹSĂGzKĚ«¦~t»ĺqdK¨ ăN"nĽń>ńHć)‡ńŹßö˛Š ďJć–ÔůWăéĹá÷ů=÷yuE†MÁę¸E´ž­YŹ:˛OC«ľbű_‘FkKYpŁÇIśĚĄ\őpl7¨i͵[5ĺbµb38)”ĚşúJYŐ@ćźÔҶ@)Ľ‡`.â<)BDë‘/¨ZsžđŐíÚ /Q—)´DÝ]BŁá4…w_Ú3X_AËoţ˝'âÂ…ë±~«u ±ďe‚¸zöÇZón-¸Ü|ŕüĆT{áF齜·˙ęµúŐ†D–ÉŮ˝. ťŚŇî,Ůd¬%»ĺ&ôĄz“¦•Ĺćcź°űcLČ2'P.IuČGňŘqÇcW•'ézł{Ţ“”çÔf’WđŢ'ČYr5ź˝ozQŰ˙1Ň (ďU±udď –Ü(gL>R5ľ=î¶Ý]W|­ŤFĺ‘\ĐrE—W™ľ6ůčUKÂ…<‹đłţťÎąŻÓ¬—hI°RW9چ?në%ĹĆúöCEKdq‰)·ł… ÂĆŻ1(C8ŃU{+/—Ľ?x×áyÁŽ9‚÷®K i ëÂÍ)ř•&éÖŮhßŢOtéŢčMârl‹xî:>çĺđ}™%†K%N>ĄűݬA[*„UËNđv·ĐЬ%‰ÄĽĐG”üGćc>}K+ú Ef2tD‚ ¤4vÁx_FÖşý3a4(ŞĘJđń‹U]ęp÷VÉŢäPyq–™™ăÚ¶"ĄY@qLŹŐ;C±`ţĘÄD(çŔŻ+`<ňóŰ!x!ĄŮ&ü}Js›B´®#ĐžD6ď`řTÖšPka8k®+ÚCžÄZ–<*ŰçôË]Ĺ2X1Aęő]ÎKů K®…féĎOîµý] ü˘ÓČÇc$hň^ѧIT]M19X]Ń‚őâ Ś_xp‘LIčćâáţä?ë* $»şsîŞëƧżŃyK Ť[!UAs^ŻÇń"M.lÝé')Úqů𯻒řăGćLM®ŽÔ·˝÷ĺ˙Ä!x'˛¤THnÎęß'•âŢu§ťÄäc–F±XeVCëă¬ţ=·|ËŘD3hÓÚ`ľ‡ňčóüĎKl5o©$zÓ€±k<ě“-ň¸ˇXŔbúĂq73Ő×Ęöš+h †áŰU‰¶÷ÉŚ•6mťqîÚą8R}I˝ö/ĘőśÇŇď.…şJŽW1@Ě5î«-Ă|‘d<·ć”µ÷ZÎ4Ľzڍ+ß3v"<“< Ę7É/n•_ŕjžžbzí5/Ŕây2nŘ ÁHüŤťmĘźŽ±D^“¶÷Ü27°{z0 ‹×˝ńtŚVŞG°ěyEO¦ÖĆ@TëąŃ–µ;ŐĘKşF·č䣜%Ę`’_‰ăťĄif +!@ĄDř•ř«˘Äc‘‡€żď ŽŽ[ÔĚ„%¦ëÓńîĂü#8%2?&ý_ž®W¸$.ϲ5bµĘľ8ZĘga÷źçSŔ®efSŤâžaŇOé šŔ‚ÁYŞ!śaľ´?T­‡ę±´÷Au¶s—Q€I+Ű„, °H}č·î$Ń÷bsMřĺô=Ľvđ§Ę#ó/aďvíGoé}Đ,¨Ýü'ĽSßŘ kůbßÜ.ˇl.%Rôýô<ú™ Ž®|AVš0ŕ‰„ó¨PŐ9ä fxeÔ+5bş~śđŔ‘pÁu.6˙ě)Ŕ®uü «Ö†âGŃGü‚ë@ę1wߦCIžUË(9%†ř ©clR¶?ý],„·ˇőú€YËCź°ÝŐk}fQ9Í:ç•9„ŠIQFi*[r¦GĽ=ţ«—ŰI˛!ę_+2'˛ÜŹ]<źëJ°K. kBMűTşˇ„9‹®ęNů\šŘ¬oŤŮţEçiw%GU˘O.˙G–Fíôl|U˝ŃvÓ–s¬şőžÎ®äí*qć1XCŰĺĎ­SJ¤÷»7:&m6J« FÉQcîšů쨠'‘Mň«Żč/{$S_ďd;ĺ.7“ѤĺęX—hÇ{¶Z1š7šX˝Q*)‡3˛d-E“Š9˝{î9ršç›nUOhä° 6űE±™©˙ŘâéěŁ`Ů=ě ďŮźí´jŁąŘxó©”qńł¬‘Ś?»Ű·$ă6lżß߼®|RŤîÝb ź” yB ôůWőůr?˘YďüöÖ›Ť¤ł5°ú'n{W쨖uCÝEţ˛ŐD'şş~"R#0?;OÇ.Q‹ˇźöćÉÂH˝Íúý3č’JŢë2›Ĺ8ĂűˇĚę÷ü?D}.ˇ).QꍹQÝ˝IpŠ~;Ż)Lř)hG»0{M´Ę důZMG^ŻYqP7Y‚ T9!vB`%Ľ6w¤Ĺ‘nO'ŹeÔɡn3SÁm–5yŽ`ÜóŘ)„uó>űĎž\!=ůň*¤nŚXWv!ĺ2\N«ŮD·Ďž"ąą e-­„´Vbú·j,ÝôýâG€Ë@âáĘÍx|ĹΓeÄ—ę˙ĚÔ7¶p.k:µ•*(¶#‰t®‚­ ;Ú*‰–I‘Tö)« 5čeôŕs‹» ßz:.Đ'ÝÔ)ôâ\O7Y®&+–4ˡ$ěp†á§yýH84/;QĐU e'Y4Nňř0•-đNK(„tRVţö(¬öçÖý©®50?Y§cf.O"î1żăŕU—ćGĘ^ÖUń¸Űí îP)ŽÓčSű6ĹĚ[`‚¶S;ě­î(Ń}1]ď¨1vč}AUá^f<+šĂ—äő`´•Çť˝LüńL ܸHÉGÉ/» ©%Z¸ű„'ř•­1ŚádŽ žčäsŇ}±÷ňA-Ţ©ŁűfĚ ®qß<$|†UîuöÚÁ[ł˘BFŚ­Z^r*aŐ8ĄHţ ±©dĄVáČť—LM»íź…|űëfŚšŔ˛j÷ą!9­ŃXăqçşyúë´yD‘Trµ%ŻçďŮ»e×S…ťtÎčRbăÎDě›°ŞŚßČž|ÝĄřܱQü2'Ă Ę,ý3XPˇz–NĚ®úşsťAfÍk6nŤ¸)$ËóĚŰ`6Ňž±4sU.V^mzu®śýŰÍ#źĽôôshEüz¸ -U‹.ĘKî{™E2‘¶'3´"¨:Ë„6ąAˇVŘ~  ŐŔ¸>{3Ń.°vµdB3R§pg(HŽ—P—H{úë&"‚o°¤(»ÁŇbë÷ úÜݧťŞůb—,SrŁ;6Ę⌎z4ˇRĎŞJ#ŻÖÝY+OaăZőĹ·ňpeACŘľ9—(OSĺTŐ/7UĘ<Ötút), !?âhŢuH˙oź:$m•ŃRP˙ˇĽrrg—ĺ)®Í0Ž/çާďÎ OÁAšĆ‰aŽô&”z”NHóž,ß^yq©¤ÝU·çę>©^ľůon”đ‹1ú¬ŇĺžÓLpáëĎęŁí@‹Ĺ|ĄCZđÓg†EŮĎ`şôÇ$t;Ľ‰÷üň"ŰQâ!ä߸qPě 87ńâ~ECsó«~@}őo]—‚Ţg4dďdYŠEb˝‡(Űb jŃ9(ű©c[’&E%QýĂe‘żgIŃ“úUŘcµ€ˇ‘Ý1Ń2~¦ăCü’Ă:éK0®0ŤÉËnľÉgédJQőAáŹ}L×I•ěUb:=řĘ@a/ů`łd<˙ Äv÷"1ćž$~Ó¸I Űěľc=ëTÎ+¶LRęҸû帢FúµŁ2]Hđ¬ţ‡ÂéˇoFB!Ť‰s€`AŞ%ő•€r:g2ä€l&=ľ“ Ş‚M̵µcn‰ü…NůçűˇĹĽ6ě@ă ł<yëëöŤëŢĘH˝wéĺ’âçHˇ‡ ±ť°Y”ÉK˝3ĘŘvătá˙wś—żĂʵ ŐuÎă–±!q:I+ ﮑJĹFŁ­aÇŔgä!@¤ÓŁ–5IŤ«čŃÁŐ"ŔSx§^_(fNÔě,5;: ů•ŤŕąÖvę_»~Ő-ôNW!˘Ť!ązż€…F˘L†pe2qZ…\śŘę›Yě+Ë;·řWoB1`HÔ2,íďRČ&TéS§*TzĹKő˘<Ţ„S©§·dÄT:*D<Cđ˛™ęźb¶'đ3Ďúň™Ę«ÁgrJ8‹ éĺ1PŞ`=Ł@űţ˛ °®ć}%Ë ÉÜę=^çnĆWZ‘źŇlĺ5ˇí‹KěGЬă ý´‡É0MtźQK˛8×ĹXÜ”˙`ç™dE˛đŃĹŐÓq¬Vĺ‹I_AtwÂů–U‚™ľgĽGö‡QÖU|ím7ü„łrdăŘĹä¶Yenń©í¤÷ěP §Ĺ)ďzťŔ˛ž/Ë.®É`/¦÷ĄM–şYŔ6[5"ůG+ż¦„ÂL‘ í ŽCuűćŰ^Sě5Cć=VHÖđĎ˙ßęä‚Ůđ˘jBŐ_ŔPOYţ+wżĹŕD°ś»čÇşŃư¸făűĽł>`ÜŇsŕÓś„ľJ7sjžŹ äë3òŽ(C8b›ń»ň<(Üóidďˤ»íl1ě‚kë=°;źĺ€Ç)¦3ÓBÍě QZČ%‹Ľ=K hÓ9yVskşmwťäövŤM=ĚĄ¬†1l/ŔK< ěł<źÜ#ÍÖF°_¨°bŤ°ó|"5łöü`eÎ.úđ3’]“l`­€¦ö”›XŻůŘnÁš›O;š(T§jO‹6µ+diŰ[áÝŚl4đó¨,¸ůn¦ze¬r°’xÎŰt–W¶ÜuĺŹR÷uQĘŘüÓ%Ągáýu·éPw¤kŐ¶@ţ5řŕîĆĺĐ…Ęy[|ŠwO$‹Mpđ3řű¦z4VE0.÷‡~Ľ#°±ńµ5뚦ݼPćŁxĆ ż™;wŕ]† k˘ţ Ě ÉŠYq&đĘ­É ¸ăűÓ’UĂ۸’Ő­9‰áŻ‚u†­UŃČE¬üĄŮŽC[4F¸ó'řÎ^FtîĘnő=Iňu“.WtuA@â\Ĺ:D6ć?úś÷ßuSşś2Tśl(p¶ŔZqú°,Ä ľmßlއʍé{´k%;ąÔ?ó’ě2GąRn:pM,ńzŁ*Ż $^÷ůŻÂ´Š“n[laWl &™băě4g…*ż4xTź@Ú)¬¶Ő:×ôTH *bÓli–iĆŘbŘě^ĎÝqÚ„7)8é&3¶&^.«K÷đ´Ë#éLY«śˇáÚÁ8©t®BŤUtę]ŽşË‹Jo™tPZ2˝Î*Dëya4I(,ßkŰÜŔś®·zFßő‹4ĄyU^·"ł w»đÄ|·6= ŕ/…Ö“9Ă&@T·Ş†ÔR˛ĐXÂ4Ăöµ{4.uĺë—®Yß%›fŁ!ıďg6®řŔŢć?›P<|™˝@âPą^©­)”‡h~gŢLíjČżE˛6/ćŔ•>ް¨ăzö]Ń]ľ× `ç†$ĚkžMąľć¨Exy”ÂMçJá [ĂI›óÇť`}4šŁäŔłZ35źjţ ú)*gü±Ç!R¬Ľë«ďÓwSC#‚µ‹ »=ŻîűĚŤü.GG2|ňŤiX0–_^ĽÇ˘Ó2ęăw=kµ­Úŕ¨8ęhbą€3ö´ĎÎ’#só‡ ĽˇőŠ™˛ÉÚ<ôµýůËň:•ĚŤßeŤqôî:ů« fhTs×lco=źK‰©0T­Žíĺl ă–|OĺzŔcÇŞíĂĎąYńw `7UťPéîrRµü¦ş~[üÓá- ¤đ柀9'Z˙nç]aľěཨ˙Ó¶p`Ć´RľYü0:Dů …{Ő.'HŽ7«tOiÎ ŔWig.IOňh‘sSµ˝Ď›¶°»Őő;µęeÄ÷­X$Řě+¬ĺ”¦i®Î®~ó%WVx¤ű‘ĺM”}›˘D˘‡­Ťl˘âď®~oGÓýdoşŽľ;‚tÔľÇ ř¤š;i©đÝNÎűĽţqŢhŃîď˙;HŚ"tĹ_»Č˙T%á+šL̉^ün î Ę &jý˘Ţ=Űzťˇ!} ě¦j…w$׬Q5&•Ü-ISrWmÓů{Ą„ťÇˇuŰJ^Âĺůł\"WŘľ"ćńŠÔćDe±ÜşW UßŐźwL^Ď­ŞI{Oŕ"-D™Î/Ş|0;±y7ž÷&ĎmR]RßëgµäÝú[mC8Űdµěn‡K˘¸lŞ"ď>˝‰Âv›jа3ĹÎîybf/Ż•Ďe¨B;*iŐ"›ś—XІ§YĽđÓk7wŁ0zꙝó¬c´±rÎ7.MA&-ŽQ; ÷ŔĘBj,˝t'ßăŢź‹r®uÁô–ő;@˙ě­Aç>A&TŠ۲‘÷!˙ăâއ˝5„Ľu'ĹdAH;kîűG[0 ßš§Č JŞĹ0›¦ĐFr śăŘg}TőÝiXśĽEÎ5łSŽ-tX[Ä˝˙-µ‡PžîcżÁŐ%G57tZąa˘Č §ó… 'A–qŞűŽâRŕj(Y 6L‚ŚpĎČLź-|š ź1=!(ůFŁł Ćň>îäâÖŹóťŢhAÔ‹„=űňČś 6moő>H6GčnńmjőčĎć`d§­Ű 7Ćđ{‘`QL"Ë'îřI˵!›Ł>Ńö„ "1$.É\á˘nş<ä™L¤Ş=ĎŽXpE'JŘóX—őy>ăßÍPeN·ŇíD:‘Ľ&¸yUKQbfś]ĘúĽ®OľŃ‘Ô’lÓ ßř«%6AşŇěFxt!EÉŤ±„ZKúxÍ••ŻIŘĆ: ůö’šI$ätŁő¨ěľ7g0jsöś_tÇ’Ű %7aťšŞć@ĚOt“ČUsż‡ó˙-•źC§ŤĎ\íâsĹş\Ž‘&-CŻ09UÜ÷ T´í&ŤĄu†áčÎSĘ̱Ěî„}ĂűÇŃ Ě‘˙ÂUÚ2÷ć>Üőóć”ď٨‡T ĺ{Žq)–B|[}—~ňšWZ.·6ŚŢűSŘ?@ĄZWÖńQTRúď«ŇýĹ÷ĄXQxä{˙Cý“LqAîw·Ä¤ľ3&-ď„«M~bĘß霼 Ö‘†üłö-'üe÷>L‡¶ty`ĘxІ¶.ađ=ĘÉĘý€hcěĆéül¦XłŮČĽ&SX¬9L¨2U0‚s6ß˝5˘ćá*”©WĂ-?Đ(+âIIČ#˛–B·j7áł–Nfé«©Ţiů‡•¬ †xBß2!9Šd–”A?Qs(1oý.Ř”%ĂJý,2*BŞzűŚ ĚuT°íJě˘xphWIৡPs1\‰o!‰S^{ȶ6c€1=Wť›8Wię ăYY{»ĎĆ\˝9ý?Ţâgł7ąźhť§šßGŰ,ˇv9ş3v“fŔŻkŢíđ~\zóźá(âßWčA8AŮÜžŤEĘwˇ Ž„ABÍvÝjťÚH‡»ŹÁSĆ’ĽŞ°Ôą‘w|óâ$[sËc Klg#—!ĚGUůĐżî€Wł˛ähבb$ňÜŹ†š Of2Çť¬ů‚HđĹŻxĹ‘˙,v_\µSż’^7Rđ*ś˛É-¬§ÓVxqk6ây\żŻ Í$·Ď˘­=$ź4«ü©Ţ)úĽ%2Sŕ§ŞČ­paů”ěiqµ=ˇ¬ő„óU˙DQµÔSěˇ,e!Ĺ*µbĐĘň±7‚:ř–ÎL/őžăjU×§ź§łŇ¦mŰü%݆šqjN–V6ĂđÎ á>˝ĆˇÇCí†`]­Ţ .Ô]?Ŕšr: ČŁ°řK ˘_]öbn6˛‹ôżÖFśĚġ-(«“΄íńrďJú¬Wá1{öćÜYš™púűEĄ¬‚O÷Ůđ` óŐ Ą’S÷zŁ>Ą†žëÇö8Öy`Ő3üéŘež­{xĄ äéc ů=ÓMŔ2jęôŞëYGŹAFĺxń(”Ë6€ ?`Ňtjťµ`ă±FŕH‘ ˝KY_»[“: ufµ×3Ü÷¤P‘¸üJ˘Â‹rş®=ZöóÜ ă‹R:qČ;ŠŹ^okX™`™ęź t…“çž6B?!rŃcNt& šˇŁ«Ň+ÇěľEoĽĆ˝fŢl| %$ťV!bÜž^˛zqD{ĄřLc†˙SŞó e[©€ŁDš%ůĄ$?Ą§gS.©> •‹®¤R.oGĘ`^Rîß|K^wľ'ˇZŕŐGW Nó(ňŃŞuťöÜYŘN*ť*CfŘÝ;|y­ďç™?ű|PŃçĎÝWa%M†,/[ć Ć…¦­u‰(Ŕ˙‰ď´đßłEöv|ÍUă» Ó1–'uöňdm i, Š"ń—”g‘ť!ţȆ’śŁ§%bĆjťä ř=/É!<€Řů ďĚŇË7ÚCĽÎ[op”Ďhľ˘—n‚îŔť2ďpť˝ľĽĘłźJŃ8ŢśßpuRůűŮ‹ llaUMÓű–(Ţ‚Ć>‹‰ź?˝Ŕ%hYăîw ŁPăw–ÎŹó.%u*Ć{9cv; ărł .Sݵ F Q?˙˙20Ä?ěŘ'ޤ­ś$ÝHˇ=HŁ€ýv(‹íĘqŚŰN× żůÜ—ÜÄrĺoSć ěfźiŰ[,ÎĂŚvF ßjÇű›qď«¶Ž±Żő6˝o@‘MRm­Çq —1+ż°/ˇô'3íˇëşdËĹ]ťU`ţDv´Ż{~×Ó_óŇĆGU`'Ť?Ţś—¸°‘‰Ţ3HŠ.r°:ŕ4i!đ#pč×E)Y2ĆŞ»Z´ČýmžŤŠ„j D/¨žč|¤®P«ď h˘sÔČ·Íäy«,?´ü´’ÜRfh×\­ăw}h°ýĎR?É»wu4îÎEȸň>ěěŹÂ)Ëh„ŻîEXתfSé"rU6‘ŚĂ\xX,ćn\›â¸5p1ďp´Iî¬rç¨] =Şö3%ĹLß“ĺjžŮ›Ľ¸×mú"śß_1:°âěe”‚sh?ďâĐ´®Ď #śScűřżč>Ş.L/jO(hś9ň«ňťď ¨‘©%¬D @t%í‡`x˝žş÷|¦ ÂżuQ5'í–¨7ĺ¤ÍŃęęIŰ–Đ\ŠĚF?÷Řf­r??vŃWÇá+hdfřćŐŹ<Ţ&éŃč Í‹´ń[>Âŕšç‹eZo@Mp˝†n]=¤_|wëý›fEÖ`A%–Ę$îÍWS+ĚÔÜűX˙Ť†7ÍÂ÷gPYSkF,ŁČëÇĎ~˛‘ěůäjß(8ß0{} ß ěDËŃXË/j_NL?«o:ę0›Ń hő*’*´GiUÜpđ¨öŐüLĐ” SŇ”‚rÇÓXĎmK_ŠńWđ>ń’˙¤F„@ś>TQĚ!5j ÄoŠOb´"oN>©Ź?#ůĽ˛ş„DcSwy;ź9 ĉŻđ Y¤ěR"đ k•eAŔ@ΊÁpţf'¤żî±žŻÖ¨ű¤đ•ëÖx9?Ľt씢͡đ_‰Úz /Án1ő}¶ąšgŢŰ]Ěq î aňDz™öjÓLşOÂÚ—čľ^jă-‘Éä¸#ň^$Ě%j}zÇő˙,4ĆtĘőR¤·—UÍQY0…`*kĘ[M°bßG!%+›e¸„ßéĂ:¨śäT7»ÇǤ6‘ßfâFřĆč&ąiŠáďÝ™}¶3–Wá^Ám@ĄtQí*¶ 9W?%ďk5ĆćÓ;ą±ľ% [d+1á’ç|ĂR_e Óž„…ŚýĂŽi%łćH ňČsĺ«EĽ´#GyŁ7H)đô ľÖu©v×Řę~MŹaC'Aő!_ °Ä”NŹ|íČDТ›«˝Ŕ Y*±„í#Ś_1n÷Ű: íŻô7Î 6D:Ś´ú`¶Âs׉ď˙ľoxĂŇ0H}ëň=2jż Kőžäë®…Y~ŤÝZ%gl?‘‹´ŇnZ1‚xMáVćF5łî˘ŘăÂř}:ŚŔ …foi8µź´.ąšX>[ĽaX¦ç䦽.LąyuđéSnpÎLéěEŃ 9ʱˇ¨ýXş¬®K¦ćXŐ§5ĂŞF}a¸?BdĚ —˘ÄŐ3}zN*qU“¸!©éó‚>śű‚dRŻ/}g]]Á$üÓĹ6ž mĎr_& ě ´Ë %tYIÚü8Aş¬w(HíŮp‹cŢ›@Íeű=?a‰úz§wSmĺ·3S,×7ĺ(Ë”ä7cq7ÄĚĘÉK ÍĐn“Äę~AÜ“ůöI,b÷ÇĹŞrĺr‰ÂÄFŇHBŻU;\vî0­ě¶u",đN.‘řŞj4Şë 6â{™›ÎLľdŻăŁ­¨# ĚJ±¸ś‰Ç˙ .{™†b­ŐyĂłnÜ>˘‚*ŤŠ˝ă€Á8×Ö€u Fô_\±&] WpĂ:KĽI†¬i“Ę’ÍŁ—ű4"P=Í Ű~aµ$ϵ3wx¦µ)§ĐńňđĘ qmDđbŃÁ"^˙KAÉ;R˙q™ď¸ó¬ë= RĐÜ÷a–M®“Á[’[OŁYý1Ć|´ ëł%}«ą&ž 9b*L-,­2w•Ót…á$l-ÉđłâGCšäEô€4G÷ô'Ą;ľA2Í‘ŞŹ¤+Ś0®·ľů”‚ú2GŕžFáFj/Krűjiö[f»Ţă|xěĐü§¬–ű®"]·Đ­řÓŐÄK›çŽ<źůËS×ëć,X;ľËWťJŕ“÷jfCΡMM1Ś› H˝óĹ0Źóh-Űv©ŃzY”lĺ Ř!)^ vnQŽB"ČŹä¶©uZ­¨Ű\?aNÜN=ŽőËçNg†z‚(VŘ?w–ŠzĄŃr'Ľ˘Ę“+¬+[† ±6 ÉHŠ_gl;Á[šD…%[ĂůZYî÷ćK«Ó6Ž’ĘěT]śŽß”źBm¶ Đ\•jšnŢ´Ó˙ŐAIĽÄß{Á Wâřô®XNN‘.‹_ě»l8†Đ_<~1hęŮvÄIj š|¦ŢâU 9¬“¨‘hWÇ/ [.’4ÝŁ6Ç1ď´EAµÚěĹöé÷8SäĎ̇łŢmXˇ××\NŚ{—>["o—ĹájNO3 ¨uFKËL}Đv8\:Q6IÇ ©g°Ç¤»Ĺ÷™vźWt#w]φÄĹýžő`•¨‚ůč‹FxŢĄ˘ťňĘŞuyđS÷i=Ę…Ť}µŽ-vďťju@^3 ¸˘~âNĚ2Nř2ŁEÇ?`±nűm«kř«š…ÖTť˙ttqäM±_ÓĽĄ{®uݶ'‘\•ĺ1Ę †f>ŇI!pFŔqţt Ťi#_î/µŇÓ«™T©A…¦dŽ®:©%IÂ’hsätá\wšč(GvăB•ĺW]Ńbż»“O÷¤€Ţމ N˘#¦x…ŚűôŢB ,ü Őú3ł`&~‹ĆÓŹ CcU©×¬cy!‹­ »­ĚŔËN´*eçÄd=řî{RV„zmŤ Ĺ’¸“łPA­Ř•‡líÉĂüeŽ•:”ć°yEf^ů1xWa×By4!bý÷Ěf€ř]ÍŹg…*ő©şq ‘ŽĚŰ·ořÔŰŇů†l‰j¶1~+ú.ŃŃ'¨öĚ'_Ih­mŔ§żř‰ú‡«ÉĘ«¬’űąçÁĄEş Adé密ű=tOšŽľ8BĚďťŮ“űä'í׺oÚbÜ> ¨ÉŮ`>ă¨6špEOĆ-Ě6ľ‹€Í¨jľźÎŐ•ć•cÁv«‡—­c¬Ĺ9«Ę^_Dő<ÓDf¶ihä𬛠Q4]Vθeůu™|j´·ę*Ě#gjBx ×(ôNç>”t¨ó`YÚŠ€ŻöŽ42<هˇ˘‘˛ą7ľęČÔX†X>1‹B˘˛Ë'$IÇé%av Ăďk–2ľě˙H)@ţNó §ŔŠ–d¬ Ýs GaEĂqHĹŘż‚)E_ąňčßíĺ)áXűllhť(¬oč|s&˙¶Ýk´L˛]š|§ŇhGďłpŕČ»ö·BÍ٦đ,ĘÓć’řs˙C”&ÁžőR/ťGžJş™Ä»;Â&C˛uzř^•ÝDüżľŚ§?őş·Ę:Bέ˘ÓŔ›ç­·Şx 8Şţ±‚f#Ń]x„ěoĆ”Âó6ô3Jż„~G˦©’Q¬DQÍX–†ÖŤł 1 9Ô;ý…§ú2s4Ś]Ůîzć›:G¦©®PÎ9­,VhĐ;đě´Ůt¦ÂD*,jÍÎŘŢA4z{ďNF<ËîËä ÷¨ţ(ĹýÜ(­ůlK9=IwŰ kS3ô†©‰«ÉŁŰÚM-Ô~ůőFr~9ŐĽYČb×Ö ĎB3 ç çĎéóY{‡YňŚĘ`'`Ő“l[ÜÂő<…5-nÚ'~ľYu÷‡N÷±’Ŕő¬#„Qč˛Ň‘x"Pâiwĵ۴D)\„{1Ě~!WB* ÖIâľ":^„Ŕn1ó>U=2•,Ž·š kŇŘâľQ Ç§ňä#otčq Ś7ĽËÄ9=Đkă1©n΂čX>Šů‰źUŁŕ˝Śćť˙^Ď6“U‹Öŕ/vROj,úŻ"jvnß~꤬ŔVd˙rîMÇ‹ËVhé·¶'É*˝óGhä)đwˇů˘…BGüXÔS»ńh]®,·5+é3N—qř'j-@$Ρ8Břś‰{dËGĆyĘ“eüčÎ%Wa˘-cť'GJ˝ŻĹ€Üęč#Ĺę·`ŐŢJ1<ćRC™9ÓGv’ ď%ţsŻA5U+úőC}ů•I 4J° 8×ÔL FĐđé I±ěáťPĽŚÖ -IĂ ůz!UCćüŽŠCNmię_ŔJzv‘şÄn–t;¤Ň╚ȧľZůžłÁ¸ÔéQJyoř”¸?Ď_öÉ÷Ö“÷jýł\Qyˇf;>Ď#öH~FŹXPÍÚ@–™š.{Ľ„‘§9Ş~–XDś·‚íO ůĽűĹN †aŹMđ»\|]¶ł¤ Jp¨xX¤Wůµb(úǸ4~„šr/,…{v"0€h”ł´îäB…ŃĺĚIç4¸Cá\T*NxbáÇřÎW® ĺ•a*š†,z¸şT¸WF­ß4͸P襅vkVrD˝‰ ›X™BMb_AP›¸®ÁŻ7g‘ |ęˇĘŕ‰áíćJęM ŮN9NÓ^ť^B1›pŢÜi_ď<ׇůdl|ÖÄU·pý±čŃĆ)őwA.QíÜMnôŹ‚\FD±ŮRcX6ˤŁvW»±Vůü ćE‡eĚi© ›…).ś»ţÝrMŞîÇ6cy«ÎŞmőšv·5§š ýT3ý°;JŻřëżÓy¨ĄoŠHĎŠv€n;nîńvq·é]TĚ\`{{MXĚůT­ÁšłdëŔe>Řş6ÓëěŔvţ]\ľM Úď1rˇ& ĂN!$ă‰[5žѨĽ`Ü%É·űIS–w{&ßł•µľ Ő=Moőe×5 {ą'Í2[HO0§‚ű5˘`ůťy˘]đÎŮsxő…ČúŽ«•ŃLuT^Š[7ĹŇŢ`ypČÝ@ĉţŠ›ŠÄďë‹Ű<jÍ)LĽC_Sĺ.ć’@űOm*ÉňůŽ’Łśv]ďg7e Ë{ëŞMĹ6ă’ţÜ7´]jXňçŢ<áÁ̇OŢq:k=ű~ĽD +-$ś’L´ŁB¬B˙kćś)Q“łÉo¨/¦ą™Ż™ěäňv°ŹĐž‡«•Ů'#ŹŰVçNői­ScđÇnu`7YĆő|Ú¶/BóÔŁ"9YŔŘ*N4Tď>őQ!îä-ą<PgçxF—q=śĽď U ćAÎÍ(“wÍĹ˝Ş›‰Ö§>™¦ Edăä8>! pëŔ îZ°F Z¸+eÄťŁžČ k,#‘çĹ ńćČ塰‚ůW`KŚÁ`éŘg˘¸“ŕ°é`ä°Ĺ›nXďjś‹č‡D†2ş,sŁ#~ ű^[$ŕĺ2ót"ŘáÂŹ&¤ŃO˘dء`ľÔD}çrĆâkv€>•3«ë•ňúl§ş¸Ťµ23úés—–HĂgzLÇ •˝»5ŃEŰ căÁË»Ô9dE–XţłK9âďG¦JŰŃŰ}¤źËŇŹćQZ`íň!`.C›·ÇA4üŔ8 ň‡ĽÖĹ?ý&SZŚwc7­1ą#ŽËLĂgTÚĂYŘ K UqÎIXţW0݇L31=1ŰłKőN1yąőă_šËSÔ1{):ŰBÚ î×9°˘pűÝץ ¤ň÷¬żÝsąçô~ÄA1ąťnî¤LhŃkˇ°ĎŢŢí*}˙ z(Ż|)×ßEţáçöbűy©'ŔątĘPĂ[ü˙…Ś®V‚łÓˬFw®ľHKÁU6h¸*nîŲĐ>4|1Ś L 0Pg.hźö €PŢĹ„řh-G8L3Nřr7¨?µ˛ő¦«m\{<…€ŠVO`&쥕ĽĽ,¨šVđŠ]ćjÇ[AętPÍ‹`N9ß\Ć—CŤs–‡zµHW5-Ľ2Ůy#_ěJ% ď„ů*ĺ¦ ĆxĹh•§C˝<†x_wĄóžJŃWĚř‹QkzËhß`t × ŃDY,żŽÁ%Ĺ?_<u¸BRSVcq±şM4Ŕ?ü¤z†ţ ?d]k7gÇC)˙¸©!ÉÄ0Ń·ySGąéť»´I–cw‘ěvKö`xśů ŽçŐŽzăułW•Ľ’-HŕśšDĆ0š¤e)Ř,sÎz­ç‡M®3ÂŚoá3Ő”·9ëĹ –đôtż\Bk¸hNŹl /íVj1`Ě»VÜ …·J‹ń˲ء ¦RG2TJGźń‘báŇĽP„€ôÖ ’(ł˙9é×iň]JSxEŔýŮăýeýß~G!¦^|ů[{Ŕ+Áuí +'Ĺ1vai­YÁząť§ż eŢ Ú’spa«§Ë®[ÎC'G÷lŹZÄ˙Ź)ľŕoňO”ź‰T¤Q 2„…%«˛önô 9÷ňpÎě›0×É c‡Q@ű’¸:Î^¬ě‹Ě‡fŕȸ€¦Ő OĐÉÎ(B9*¸oĐQě’Dµ &˛?‹®ŔD§5śűűÇ®…؆˙„E řűi÷tqJ5îÚ/-ň<„ON¬x– mőj řBžsó—x0•ĂMăAżhq÷uů}쇞ŰŰ÷±§00ř=ß?˙`O˙čĐÍÓ­!éiŽ*5S_ţ•?űeFş ţËÜn`U$Ů&ŃŘK°¬@wÚ·ŘňU—fhô^ň0 ˙Ľ9ťń˙ÝźâťV>«íPŘ˝ŻŇt…{ŹxyyŽÔ§îr2ÁďË® ¤=š Ň-ôÍŇP#ŤĄîrmNzsV‘ĎďGbW’s:Źzĺ­z‚÷eKĘ !|©»U!DTâ #OËÜ*(Ł "~ći±Ă1@Ö|Q5(Ăćb$ŇŹť”ĆÁ˙‰ż ˝(4ËNúŘ3Ýâ2ĆFÜ—i%Jű`iÔ+\ey$×3vbe«űB aĹł‘tÉ"gĺ—©˘ć\ °u”Ç˝‹faá‹cčqřo–¸Š? ÍůOŃK˛ëRHšÎř8SÍ­ŁßP‘çč$ą-ŢfýĚ8µ˘Eř˙†k]o/eă/0S bő™˙ż¦XÓ’@ŕŐ×F)ôŁ•.QlI'WŞ{o>PěI`ĺ¤ ¸ćQ´L[Şv4¤…<ÎŻ÷ČL1©ąžw;ě4ĂóÓ¤‚{DOĚžŢE—ţÓ4Ťú{Š 0ČĂ (="> LČr*´{˙ÎŞÚ–ňsť öGÜ;á:°-ÜŻ‡7Ķ9óś—Ý=˙˙PĄ'÷ČŢr4Ř(ľ_Z3-”mé9…ňűL^çÉ-^ĹÇLSuáíKüţßĘ(€HVď©°ę ăݲ! ˇ„ö¬Ęţ7Č“BB%1/‚GşX™ÇQ˝‚ą‚·O‚<ö ]}÷ZXśŁ±ÁO±vŁ ł˙·J‚¶Čć űś J]/Ji˘Á;”ś~Ż–?-BĄĄăŐIŃvŘ×»{HâRmNCEX:P~„Ň6’ˇz§Dů2[ Zżż‘ĎřÂ^ĽÍ Q…g"“ŠÜ]‹Ô{Ób쾢¦BŇ,c,čR!òJüżŚëĚ*ŠöÔěHXNćVji–¨ÓD#gé‡>8cfěň•<ň0¦îdÁYbké}uç9Gpş–eěĎ1žé;;”"iŤ„2n˙bJĚvmŇńR&č{Ů@ňNJ”ŘÝŃ“zţĆh–ć>µŻ”ě›S’?ŹfRôÓÓüůŁ„, ™íYHF«ą¶4«IĘůy•"’!Ňćžq(ŁÜmv^ĘđÓŰ3ŽŻ5M5‹pˇŢZS›•ďtű3˘µěˇNc%N”bŮ,űMY@%Żăd|> ',3­K Fĺ4ťĹtrÉ<¶Z´@$I—Îń0H–“ă=—Â&…¸±ýű;€Ůp˘™żC%(Ý*Çx§z\0|-bčę÷ďúŔŔŠ9ˉř«©ťxđ)­ÖăĹ÷˙JõGč3~IŠ[áď C™+±—ť ź¶pÝÜîßÖřŔĘçŘJSob›:8z&uΙ’Ač% AĐX[[żý2Âě°ÜL ŻD& ćě™ęéiu ËůcyťÚąÖ˝|ßě á¸0-?©BŘä{kž´śuŚ•Ą[Ĺ}ŕc\\¶°”JâżKRwP ~ťUwŐ“"]ëľ<ç`Kl,şSƉ~¤t⟨%np…]ť‹píÇĚÉŁř%°ă’îWI Ą8ŕ8´­w¤ŁGu äßű­X,ľ§Wç[®/h$Ą‚ŞK_ě.¶™u„űŃ1ĺ“$gŽaU ö-K{?bFxFr˛–PÇJhAýZ7P5:aZďçQ?\ ă"ĺŐJQľ> 2<°t ! “ š Ćť¶âÇ +Ť7'Ćą‹Ó#‡ż[‹˙«đK¨ăĐ1k€˘.*TaÍč RI4"¬¦ą¨Č0KR©Túő™cÇw®sŹ!CÂŇíĹ€ßţ‡#׫zÖÍÔ?áY˙-UŰ ú˙’VÖu˙oĎ'7 «.Ox4=äP 뀻y°ŐŻäË&Č4ŃěK$ĄŹÓçŠŔe󚂿d"©&ťęĹ7x1üíľÉŽčJŕGŵVĚźĹh@¨‚Ůx€E µ€Tş°0™‡@jEµT"’f-–Dcěq\ Őň{­đî„]Tr—)Kߊ`ŠY á`kňÜ),N¶™Ăm ú Şą,8ëłćKö>9/óÁí®7\ČńL‹´Pĺ Z ?/8k]É-xű’ߡkTĐ ’ŇĂň3č©üdndŮXŻH¨hGgîn•V¨lq‘é Źé×*Ó]ÁţŚyČ’~WzXćĎł’˱eW·ĐÚ%ŞĹ„”¬iAă&Č0P»_űöłşî]Â?†Ôv`Yń#Ć1=ĺëÎ2ÓȦ0CYß Őq0NŻyÍÓč‘Âö®+çP«ł‹AńfżK!9łn‘ůDfşţěÝ…>Đ6ňâŁbýšŢ†kpQżĎÝíŻŚ8ťc6@B†°EÝ˝˝ŰŕoéL¶¸‡¨:Oz®Ş#IŔţBé‘Ů\Âąl{w«L˙Nţ›/wQ·]řÖřĹv]i‡>Ĺ´¤„X{”(XEŞÎâôU]I:ćUÇ“*ľř«sa¨M 膂gĂliJŮ´)¸`Ö ~@0ô\CYž˛‚qÚ~ătÜÎ&žYá»Ů’áţ*ę잊(Ż&g4ô,GtŔ¸půóÜtńFµa¶޸M˙Â^ş'úɱŚHď?Űf›t|Oš^ΧU°lĽ>ŐŽ¸†çE‰ ËíeKű†>V3Čĺ—öx¦×ФŠ˙úćŢ5:ş z3Ś?mn•™ň©E›GŰgŻEK‘ň»Ń°gÍžQbţXb°VVódQ‰ ?X ‚ĽŠ‚ ŕ…©ÍU*S5ačj `©•k[Ú󮢥éaěΗĄDÔNĎŘĽ€÷đbŠEO”öŕüż“=É"°»q††EB¶d0wzDÓaxBăśăxë @xńaćČSŔ7âŐt{ŠĘ~šRÚ}Ĺε…ŮĎŁÓUű5ó¤ţý›M˙q9ˇ¦Č&îâÔ(´RŞCHŔć8ű+c ˙Fv¨GE`LßŇr5HŃ5bťé‰řťQŻMx–°,#űËŽęŔíŻ™¬«ľ G­9é>˙VŁť7Ň·ĂGŕ+Răoň$‹„ĚŞJŠ4­ĆÁ÷ŕ˘~śkܶőâva5°×˙a·Ů}1Ô şŢ­žT¬‰ ç/ró Ś‰ĘŁôŘÍ[[Ôíý€çÚfšźC’ËR’á]¸Î´`Ěš)÷ČPĘšµ?˙ÇqýĘŁłęů# $dČZvfŮäéën4ßęźh.ľ-őă%:­F˙¬Ď±ÚŢÔ;°h˙mçwłÖ Ş–çďk JZ[¶– ďŹu íJ’ľ4,ÓY±$úxwhű24Žó™×RA6ĺúIÜŤ®D‰µťú:hćŃăî¨ăóŚxlsy‚\ěŽÇ[cďĹńřt“Vex}źŃ-™·{c—őU›2Őu‰˝ŕ °¦Áô µĄďiÜ'‹Ć#ĎÇ›•Ź®ŇŹľ "°Šgrm…pP,ࢮíČ&‡˛SĄuĄFlIAĆ-è Ş Ť7č×Ű] óKŮłÁ5†Ň sý_Yđ¤ýŇąČ|Üł ÷ë…<$xakB]8{’Ö´‰}™Î˛pZ’xć”?}0XĂü\Vá)Őłä§–öÉŔ#p¤ňń¦SŇPIWĚ'{`ÜO21wÇI)gu2j÷9ÍNϧť'ĺÖÂÜÔ^oŰJŰ·ŇľhNk >LĽ„ÓQÉč˝iąĆtĽăč«ěU2©…M­€ž#€ ŮR`Đ^Ďm•Ę&»¶l±'äE”op»­Ń=§nNăJ+v‚ŢxmAcЉî7T[éC Çĺ·?˝‘Uôµ GÍ'úäŠqn2[ÉĎp™ĺ˙:ű¶äŘÓVʨyé«Üó!ŕŇŕŢÚ>Ű‚U·ćš8ŔĄjńÄĎţSÉáÜŁVq˛)u'X‘˘@( ČŃňôĘ"##ÁŇ‘m=ę%ÇÚŘ`‰ Iďf‘c@5|÷´|ýη[˘"'Ź?—›~jT±YňwWX†mÇÆĄ[¤Š‡§Čđ‹ŻWČŐÂb4« ąwuęb‚Ň–©«ŔÝ[@ürţbkč8űŢÍ:ô«ł.ěěŔböŃr÷Xg}‰°ĆÓůl1ڤô(dě9´ő ,¸ĹÄŃ(Ë)t–č6ĘÎĚ}ś'żnŚĂ"ÎâMĎ—Ů™®ťłéaĺ2"ť$µ%3­őÍ28{C”‚ëç>¸=ě)6é{"9.âIĄe}'“ ŕ9ţ˛3uF@{`Ăla…4üJNť: C8 c.Lb1Ňuwąé>ä'#dŠFçUSŤI…ł&Ţy*OG*qŽq5l< ‹>ö& 0Ôłý_‘E·8G]±;ŔíŠé ş1«ň?”úÚó…?ŇŔ!#!Ů2GCÄľlÖĐŘÄ—÷k„Yß\żŃkg­ý¬čjÄůmůšßŔj]3µgB8VÇůŇéßC*(­Őo'ń8—®g“Y©™ăŐ\v{ö˛Ű)k ¶$>ŃRżţąÎ‡>]!YŁ5Xoö‹—4?nE˛+Í’VÖ•’“K–ąĂ»ˇ0NއÁéT3ż°ŽßtDL*;FŹt`Dl ˛$Ô"Q ö—MÁ"žnvÍ(ýžç ëEu–c®{kí±ˇ.”!]-‹#^y@˘ę­>«Ż¨ct«•#úŔŃ´Gťľ×¸{ÔÍ?¸k~FÄ ËŘv7H“Ź–ëË—‰ §ź"i[´xR·<ńÄź‰óɉ ~P+é|–.wÁÚ&ű·ąľ('Ô[áf9âŃÄ|` •ĆĐ|@ĺ[¦Őlë:=Çď ÖŞá—äXúËôśŢIÖ"Š’+‡_«<-rÓ|$jˇłHKĘ"-މ_ufáŰPM:59› ±nâżôÉU>fµ’ę•Bý{ŔŠN&€÷ă )whůĘé˝äÚLíO%Ťp ýŹ>ôd' ą\>0¦BXń+u#ˇ™ÝĐěd]č1çĘî[ÔfŹç)eęÍÜŽ}`ÍžjÁxAÖŻb¶î“Şhľę?X fř>¬âW–0-@- ­e‡˛ůîIw»jqE4…i÷q/‘w(IJ˝eÉA“Z]¸L•u @CKjv[ĹE«Ć9ŁŘzSET+$™%ŹĆŮEęŐúWđŤňŹjă]RoF€×vĄY-ââášęéeZe]¶%ÓdşÓ®Ů÷U7Ś|âČÇ4űŕ/ q’˘ ¤pxťáĚíĆ‹ŔlĹťśśšVkyçK9űćËĄđŤw&䇦šk[KMç«)ÓĐ®¦Żžâ[ď´Üâ)ý¶â|á¶Ó’ éÂ.ĺ …xÍ,kÖ0l5'ĹcžÁůHŻ\đĆö›ti'/â™.mŻFť©ż“¦´ˇuÍÓű€µ úŠÉ„QąŕóW<¸|•¸şĽąŚ›&'ß FžTçóĽúú4EŐz›çăĽđá%±ÎYŕŰąëîGŘʨÍb[$ťmS—KškµoäYL˙/óI»î±ŃĎXf IÓEŔߌÓaXHĆ^«¨ŕ˘JëŻÄw­YWgŻü^qé 4 Đc!>5î)ëb`žPeGBů{ZjfG5¬Qf\ĚňLŞéD2q2El|¦4–zsô!eŃnm ;«ÂŹ;'92ľp·_)Kď¸É/eĎ5×Ţ ÜéŠóHj@&dŇďĽCľâ<űhĺí=ďv˘LdwŻüâČjŢ6=žôNŘV‡ÇÉŽśáç;˙Áăą ńí.ž›Ôr°¬<Ő‰6¨K¬¶f.Đ”çn_p'·ł656Ň÷n*C‰â2‹Ď2Ç)ňüÖ)°GWňQř“T°ť^EÁÚ·ŕőqiőf13ÎŻVÂíXł oéyŕ)KsűQ&ańhŕvBS†•jFDŔŃ™Hä8É™ńlO›C®aŃ‚úˇHX‚hB.árŽD[9M­[-‘ĺ™áíľ¶„ĂÝ ¦ A«‡†nW ĹńÖlüKÇĎßďšy˘q`GŮ6BżŮýS`¸¬nďÁr×M‚t qR522~ب+Ű« ˘¬ŽŁ3óUqµ9Š5+ČĽ}«Kx¦# {Ě6é¸޸ŚwX]Úą˛2ş™ˇ@.Tb X× Ťp,i^Ęu{ńĎăŮÍŃßőµĺą·¦ŃŠY.‹[{h_d’(lëbšÎĚŹiY#kőŠaąşĚ»ą*ke+Ŕ.O¤¬ f,- {·ó+°ľĂčŰ„ŠÉ&é$Ü‹˝]u×ÍVkî†RÂAC0Mq†Ń.Hú€ˇuâČđb€ď–t ź…•Ęl(´äÓÝw×L¬žş Ť; }ő٬(ňľL 2QŤ¶ĐÔfNçVúâdč"˛yĘjz iěbž~×Kďc¦Đż[޵ĆZňĄRżhR•uŞe"B×ŰÓéв֪Č\°»oźQÔńąđöýKCPB¶¸ĐW$ ^řę<ĘĎ#îDĂV&Ą…fpľk˛.ŤiWDĂŔą°É Ašř‡ ę_˛˛ĘbˇúeíÄKRVž§"ÇTđČńÍ\ĎÉ0Á»ôü“śś^’}Qć\vn qO îŰšĺś!—2rݢ@·vşËXNšüyj[CNĘ *H_ŔCDęĺ'IâĽs9ŘSÔąZ*uF–IqThn 4\Š ŕNÔA±yöo‹:l=ĚĆĹ|˙ŞE8Ež-߼˘g/:.őţ7­{\I6 Ď\®ĆŤŘşéąo´’”@qţ ·âĚ1«D"đšŰKíO}*°[pn™QľĎÖaźŁRÚ\ěX~ôDíu±íŞńA¸Žç÷ ‹éůUé€Ń´µ°¨V <ëŐ¦żC˛ź±ťĺWŰörĹ”š+W°­˙tĄÔFîy5A›RJ­ßW7őÇh=ÍĚ×±đ»<:ž¦¸Ö›!Żąžˇn¶Ěą×WžĐťÍ›źę—Ń71ÇĽ“L$páw=ňÖÝŇ»ő›@g…*âëĹąŢs"§ú–ŮÚ o›žB8hR:~=± ďöy3×5N)۲¸^aÜ€Ą›^UĄćJŁ@›¶ç\JF«óajÜžˇyĺb‘s/a>ŐO+6ŮnBŔs:á…,} iÉۇ8ĐÍőű„‡/.ČO¨Tń+Ţć$ fgP%ýĂÜ%áBk˙V°{[$ovĄ˘®ż:)é=ž]ža’F?"-2yáŁű''¤NŽÝyű—ă©ÎĽKpĽMńYrZ«Ä Ď#ŤMĘÖÚ‘AďęoŰ®MŐ@M•ˇ‡ąľ`Ç“@ÁĄËˇiąEřAĐO0>Ĺ';ýďZ2éř‹űŰ+¦±oâĹ%ďhę2j+Vsž‹ MĽÚ‚O/O¦éÍtłĚlA`vrÎ…ĎSîÎI«˘5xPŹÁ<ň,]É(C©rË9ág’b‘.}”e˘Ä9“1ţ^óĆ–ĚD µ¶ÝŽłhţ0BA{~Xńln˛^B©ű1V?§k7ěżVËâ$śú%š_©P™´źkĆs0ŞîŘž*Ôť-[:"ááyŹ×3ĂŔÇ!)şÔ!ÝĄG»F0nn¤ě*1»Ź?C]#ýů3xyz”ŰQd[8¶¤éľ”ZŤ´cÝVÓ–  qHbV>ô3Ç+ ©`’4q§‹¸©‚*ĹoŽzuŕfôÁź×Ňßô““;g<ŞüňľúUS•«Řęq}%Łčř›Ů8Ą­-ö¬ş»Ť‘´Ű[}±ř~ĎśE!] JŇ7 pÉRp<|Â}ö•ÉČAÝ_˛§Ľ:¸JžD/rö‰F8#ß“KË»Š+%čzějLTél¤™´ĹëWvę)¤k7ź7raçZF’q ĐŮŕ: ‰—cćš%UüËú0h6‹M’°ůG5"ÄŇsß2=Ôĺ~h/® ŻäwD)ąÄČ8r“‰™U–ňß˙^¬×n»O˙Â-ŃępyŚ2BNĽŹQŘXÄŕm›DĆqh(˝¸FŁ<“h€IPˇ˘&ĎŐ0›µîNn›>őő›© U,Ţ Ëcé;Ť8Ń©T˛< 1¬˝ôFQúÂ'EńqľX}REWbđ4¨kJßäáĽÉu†T–ü®•7?Nž˛ĹK=ç°u7 ·ÂĚŰUŞć€QőˇC÷űZíP‹xpNm&¬óĽ5ş}°ě’ˇH1Ňaś”=Ó7Jm>‡YÍĐIçÖ!‹Ülué“€JDhKű«ŘŕđA^âűuJáó›*9KŐ *3¶Ż#<ő1–2t GÉa€0gV˛&ő‰y\GfęźĐâŞgťzâ´60đ Őęň}ÁťÔ Ü^¦±w¤bőŐ屜dŢ-€fSWČ(ć„űĚÄÓ“y$„wl6Íuˇě\”x2¦;Zp°ŇlîX”G›öO`ĘĹ*€~uz<Ę–®üâ–B% Á+ôÁöÓgăkž˘řcR_˙Ą8Ł+Ĺď°ŽÍ­óü´“ ť0ŰĂ‘ěfl‰uHi^ľs3ÉąGîV›Śó,5˛“>gŤ ĆÎCmĎesŰúŤîç †ľ-Rhz_ý7óĘÁ˛±=ď#ş–2sĄŐNŹč’ ¦37C=qŔQ5©®‚ JäČ/RÍX&ĎąL©o ­Rš26lÎ{6$ÜŞŇř·(´ţLA/ÉńËŢBżňÄĐ{Ć•Ŕj=¤|čţ—PivGGsKŹç–ąş"m+xCĐ(b ŕ+W˙/·Äe·âülÜd~ŘŰzúÖÄĺl©X2+Ul°Ó˘‡tčä=Ţ“Lâź8Ĺ/s(!ń˛ůâwď@p˝M˙»`ţăä:lo÷Âüí™S¨©Ű/‡ÔzÂyÚł˘o‘QăŽýج<§(Đ‹dˇŁŔNGˇ4¸:żě;QVď.wC©ż®ŘîLť#Xň¦ °¶4°*kö÷§Î,˛´¶v«ß¬QµŐűę«?ť@aĂi¤Ž@íyÉű¤N"äĂÁĽťĐOĹhŇWTtŔ”ß{Ć7ôhńPżťÜ‚¬Î?Á˝ůG^†áWF‡âÁ°vžŐ¦$zŢ–vzq5µ5 Éű\b i‘-Ť9Kć7¸~°@6púÉđ¤)ď)‘Řç*ëü/YoŤ(!ÍK##’űÉ™o+§—p¨VˇŽZtŚá#`ş7¤0ĆýĄ°RŤ´ęLµ{Ü5ख7s‘vž,¦ ëŹ*,čç§Ďi7¨xĹ_UyźúévC›ë;lzSŹR&ˇ®­.X—f«Áěś@öB¦PÓ…¬) 4˛Č›:RUuŞAŮ;.mĎ„Ž‹¦OJs2«Ő'-ß“aţťůßÖN®‚+|B%ÝT‚;ŘÁ=ËŁ(Ĺ)‘1ŔyÇ(ěÁF·> q‰|äţ¶ô˝Ň)Óő§ŐKżěŞ2ďJdŽÜ,3!]`K·Í¶W ´şéć)źc7ü /h–ů“ůw«v݆śJ`ő¤öW¬z“Xí’;'ÔP†š"…›†]ęü´ćŞ‚î3RŁ+#„m*“قЗ@Ć4÷Žđ^ˇśŃŰŐš ϧaÚÁ/ >Dö›ź žćď4©›ŕůÁNŇă.5eIŤKóm;ŁW…ˇ7m&ŤŠVŐ ĄéLˇĹék+đVč*Ňčóŕż>úüjŐŹłĘ Ě‘P$aűÄr*®µČć?śĺP/ÉJŠł~2Ď_,WÍláÄ#g<ŠÉ{{pL^Ĺě9‰@ŹJS*˝đâąîD–›ë‚±ůWe9O©ŃXá®’Iśv˛6ŕä2ňFľŠîH)B—ą-4·€€:ÝßśŃ(DŚj›ĺŹÁhŤPssËA ĘżŁŕoM¨NXžŹę±ZFfuT`$j˙ˇqfÜű li!6©ÍV@#gň$±Um˛€d=죡L“¤S:ˇ÷Žiîśtň¦×‘‡p‡T»>KŻiÇŕ‰ĚĂá0öđĽ‘lŰäÓhUm§·_ÎMI ­śô…5ęl\ÓL5’¨ÚŹÔ˝°çF´ă»Č\Ş‚{xů NË6{ľŚ×ţQĚXľ.xßOú˙w*%wnj Nď[Í/uÓ oq2ŽŰF§ŕĹ3ql}‰$ u.ťaäćh ©aˇ–â„.$,V–ő°€cřIV}6•KnžKé|^{b#Ĺ•#<Ţ(7†‰.[© ÷ňą·GB † V».ŐĄś,HËé8ĆŚ€ú ud<ź÷„ŐDyM©SKńĐźíT+ŇŁëR+d-¦5Q”eä$Ŕ˘ś"9ŻÇĘfBÚÍ™E¬sŮI˘ľ¸í€ëi3ĚćOÄÔâMŁ„Ô&Łĺă7ŚőěnŽA“iˇôçŕŔ~Ç]ZÇ‚U¶xäąŘľ.:ŔŢń‹ČµÜĎü§żČö@¤u@Çx^ďá)¶?ÝŢXHŘÄ/đfţ_É {VĆr3i0HlqqźŤŮľ&«§2FJO?(Uí™5ËĎŁąŰ:'čh7 żm!&şbŔę/;,H´żĹçghÍ;MĄn71ÔNß·íćdőH­ËĘS4gWÖC[˝Ĺ>‚OěŔެĄwۆÎEÍű8˝1ŻĆeOľ Í™ŔŞłýŐ.ôĆŮÄÝ­łOZZ{py{6Gďxaɸr˛H•o””%o»ĎĎuÄËE-şŤ>ąq-ĺŠu©đGrl!žä3a«d(aű#€Gy˘|@vQ;Ń»\`Ä5Ů ;J!âđúŕteÁť«µY„\çđĹBÄ’"ţxq·ĽyPjŢ_Ë5Ě0kms ţë>‹¸lzĹ@5÷Ű”Ť'lĆqÍŢ#Cb)†őÜŰŹk 7ţwľęGÉÖëÚá~}Ďa°ôşgţf‡Łďc |'˛#ßúůÍű•Ç×ažĄëe1çý ľVşŻ|v’ č|\*Wç^۸Rd1–cĘ™j˝¬]Đ#ßM‹N(š27’Ľ š {{ü{Ć7ÜSvę>8żÖP#”ő§g1őňćIł’q0ě s0)Ď&i‡VÇŚ»_ĎzU‹JěĺV:;çěôŠK‡±-ţÚ…íÁ®9đË©GĹ,‡~«›bŘf“!žyTí›H}´†ő¤9~żľyĆk›¸zyČç‡ĘŚD…bXYC¨y`“€‰“{Ă`ýŤŰLÚíů@đVâ®q1sα5ľiüBĂŮWRH G°|d°4Âc˙ŘLBş© ‚M©s k…‡ÖŘkŮR“&ŹüěÜźżz™k'U­gŚ™•‘>‘D¶yđZ5D_V5´ç^ űŤňĹr‡xkfĎn4HĄ(úÜGĽ6ޱ­'Ş@eÝuŐŰ9…”K»űŮSëŰ4VÂ܉ĞŻ\ő— Ôpů üuů!OžÝľś\0ܢ°O·}ГП&Ş–*¬ëż€ŹI‘[ąÄňů;“ź·0±'OŹoČ,L9¬E4d@´čá čx{%tɆ3𱄯7^ť-tĂ^ §˛{î-a Ţ~Ěßí“Ĺ<·žÜoÓeˢ–]aĎSFÎ6l @]Ł$ wŠë«9…ŚË>:Ë!§ú±řŻëQoB‹0e«íŹÄř‚ˇVJŻCsBĄS"ŃîĎ&—ć$taµDI)ŹŢ˝íóî$5üÖ«ÓŃüş±n¶­0oÓZw4. ĘÜ·ďĽ'[†đbÚćc»ŠÖřş¸lS ]%“wÇkÖĄŁŻŢłŠ.ňÜ$—bŤĄĎéÝ´3K̦ű0}Sr{ďL4 ů7€5‰2XĄÝy¶)+ť{š>VŁ-+u’´_G 'ŕÄ‚\B2†łĘ˘ ţ6/»ňś˙’ĚÇ⋪Úha7 Ź„î#› šnŹ T4ÔŻcľŹĄ'~y8"µj×ŮZYxWţÚ_ *28F¶gěÉ/™ĐíĽň–ś!OCö‘Őw¶t}-ľ™Ž‡ß¨Ž5QŻ3… *+Ş[˝fž4-{¬Śwľ«_kňł7üTâ ľ¦˝†e¨Ú6Ź<5¶Úü)˛¸,, ˇÎnv™ŃîçĆM6ÇĆ1Ix+|ô-Ţ]]¨+®ŻĽŁ{[—Xa¶S`W´é3ů1¦‡oßJ9'>.ÎÜĺ 5jâW‘‰¨ż~]^©ĚěńjS¬p~IXgô]YzM÷Ę: {{ŹŔ¶ĺnňÍú…ÉîV=úŚ]žíŢşţćkµşp¨ób™˛«ý\X1äß“f9˘˘8‘×F·Ś„JšËŽęĂkőÝsně ‚{Nx~+‡f)ů8퍒6ű{Ç>TŰe @,adâmDlĂ&Ľk¬ęľcÄwăˇD>É„sBĂwÂ| ¨LRG¬ş0dÖéüÖ«'J¤ĂtNQ?öź3|8 \čIôÂ[q"`}%OĐ«IČÍCW×F]\ú­ő1ľÉ._éśů!ĎęÁ3o_‘ žÁţé…p6Ţ/Ąö9"S*DĹXśX¦V'”×ăďäáM2Ä6Pqx‘űť&üGçgâçö+pµšr˝i˙ đ¤­azěíÖ”†`Bđŕ2‹{ńß|M™ŽĹżÎŤ ·úŃhęęDvDoMÜ6±cřL/H( ‹âŠSr8ďŮű”ć»߇[-P•­MańĄ¬%›OÉ ˙Űzę+ ňýHĺeb[Ä_«ŢŁŰB6Ťđ§çxhĘ⡢—ŔéTLęVżË䢀¦Łc߫ըsrąN­Ő˝;tkËë’X˝#âśa‚ävÜ*"ŠPb§8,3µe9ŢB‰r;€ŁÚܦ,ă[Ď&v=Ae*ěşĆ—äČí36˝/4ŕľř?ČK]ĐżŁôݵď„ĺďFÇkäŇđa4uő”ÚĄäÎą˙ĹÖt-ń˙&˘U“kRqDůĽk¨ÜÎĎ‹,>ľ¬Źe+eët;1#hÓvˇ&cŕ ňÖŠő6ëÎźů0ýłÁĘ/ 0Ź$ź]˘ÖĆéµ°“âVRŞ˙"ě¬ńďţ‚šH9EEӢĽؾkqlÖ –âîÂÔ:˝Ó·Dg{Ź_Ď$ń!‹űoúőëçż“š'bŞnČŹ"®ąáQSꥪ__?Ć4Ímäp6ţ=Ń "&ë»xU-®ŐtŚ˘UUţ»QJ‰*ÎĹ!źpÔçěőD†ĄUiËú:íĘ*cżhm”‡kK;;.;Ě“qák8™ź /#€l–ôîÚHjWa%ą…ÔĚę(źČ†đ2Ćüâî).>0°±t»îl® îŐ TdÍRŽp8|[>Ă>KÝŤÝR‡ąĎdŁ‚ÚI(8ĆV=,tß>żŔrs…*Kí#Đ||űă2~˘Zë)ßËđľ‡b9Đ·’ž/]tËvĐ!Łë"ŻŃ÷•*‚ĆNśxEcÎ 4x¬s~«ÂTăCűnŃgqŽÎ_i0i‹H٦ßŕvűČ˙ůě&"ÉQőö ĽVĆxşź˘ň§(›Ť‹č¨}Vxť{Nc§öÓ¤˙ŚPuÔ“÷t!@Aö[ë¦Eő¶ĂŔLąNŻTÄo€‹­PÖŻL×î˙.Ó8yqx‰eýFµć.ďą×Ľyš Ž‰¦n-ŹĘË„ ˛s–ňwSje¦Éçv¤W> bŤ¨ ž)»V™H†ňá†6~JÔ‰%äŐˇx6\†e›X‰K'\f#ë‚»\·…ˇ4˙8 Ţu{Ť—a‚N7q©f"%jC9Sa¨+–ď–őd’u®rčÔ h˛ă+Űô雝"ůě–Ŕâ ę;íĽŻDĘűÔ3Dý–¦çm&˘â¬R >A×˝*§ a,(×› ŤFłMQ/ç JßÍôI^K·cŐ$Lđ‡řĘ ÍŁńĆ*=›*Ąţ«đ2Fr‹ÝŰĆu+Ł‚˙%ĺJ) ćŻÎ°ź©o,+ÄQ‰Ťú##†ěE‹O¬Ňbńgc¬. Ł®RvŮŠůÍ'u¶$ózk{ŤÚ2(„Żő‡Úu]H¦ ~YęҬQëR@ŹĎ¬RgżMۉîŤQ I§3!=l5ć€˙#ú6Ââ±ŕ#/Ü^fű¸%><.ĂR*j„e7ŃŽ)Ňďť;đ,TźŐXXâş÷¶Bďk „žľsŕč'łŃtr‹ŚAVíw¤J‰ÔÉŚ‚€Ěű)ť¶i닢q5˛h&‘óCÇÝÓtÖőâ ËĎçńFăĺúŠŢkRXYŻ8)÷ś@"28TpX'ÉG¤4{Ů'Ĺabfíŕ î©Čń̰©eĚ?2bZ:ŃĘš5řŁř›Ţušž‡Žiˇa ©„Bó »±›lNĎJáő4QĄŇ`ť˦–JÚĚXěŰ&‰ýľ/ `#`Ó Ţ`\—ÖM~ó¨Ňúë;Ýq 7Ý&ŞóC_|’0^>˝˝]űdw6ĐZVŇ„H§Ź›}tÍđĂá–¶ÁÁń˙„ލżwpQű%xF­ě0v±fJ÷±_čËÝ ńá~řš=ŮíÂpÔ…µ }ä¤{Ägüß•„p["ŤU°°˛<4ś˘|” I kát¤ňśöÄL€¬~ ˙ČžäV<ůM¬ËiQČY„yÎĐîăÂXV Űě!™ŤĐş¬Ł6ŰćůlŐšß “ýÔ˘Ąę/Oő&W´S0B!†“ó•ßL4ł]-˝Ä ]ěŠ`żyĽĄ"/˙‡˘”tk-»V:ڱ굻„T0¬oxŤ±ľĆžóýdĄÔšq~Łf¶ůç7i!†¬#®’ćţGKśEz~lÉÖÖ¦ ~e:Oüż‚‚ N‡ś6żŰw×H™¬&ëHuĐőQ †źČ˝&U¸ÚTîeB©–·+ŕž•–ľ8Ęnszťť ™MFYČ„{ҕ勬~ášUŐ Čr›.í‘Ď\Ď6ąeP˙CHĄđ‹`€<ÇŐáĐÄ fđŻ&Č«;îönŹ·ž›ceţhCŁÜJ ýd÷L#ŃA•B IĂ«ňś%UŻĐsu¬¬R,Ş"űő鸚‘ť±˛ŔcđM˘NT?4XHÁIdq/KMcz‚5'uÚ’ÓQîŻř÷íČ]űR̲µ+‹ľĽF¶5 ĺY÷ŕřĽ‚Á=kR<¤pÁ‰jĐŢĂîϧŢTL“łżRH4ř<©Ý“ě?H׿:Dmýd5l)ß’u$m4u.NŠĺ´ÔQ§şGň…ë@^uČ2ßX|˕ܷ|X]4?ÚăÄçR1ŐˇC?/ň™{(0%ÍÖŤŚRÝĘ ţ—°é5mN˘%Ýí}ĚRŢęé¦RÉKÝLÚ»•11ľ¸Đ}+±źrŽń‹ś8Ě˝W:SŕźĚNB˘t(+jz[ ’-pöCŮżŘ&oonćË˙n±đţt‡Żęź‚Éů˝—ˇ^uĎWjRVł\ę‘P°ă č9si‹’®Ö(îÂVý˝„r8MĂ ­ră_č‚·— r( ¦ŮęŰÄ&9+çŐĄ±É(źy–W˙@¶°×BE.•~d)˛şs ˙‹®Fń9 ©K„*}SqqIš{šŞI·y"séč¦"™ż}Ż>,ϤśM{®AĹáżQW2ěâüŃVX8g?8%qëQ|Néž0L|, -c¤V :ö),Ăn78rçâóڶĄ¸ěü¨Ó¦;Úęµ9:AşÉĂ©ć|MĘÇ=GŁoȸŢxÂfÇÍ&ôŔ”߲ąXuŇŚOÚK…Í,ăUˇ©vi©^¦ŐţKńO(¦S)ŻĘäőÔÓ‡„–SkęátĽ(¦É PI™’ŠÜA2^D)‘»ąTgc^ŽHTČĂl§ iá°ăYdőđkάĄ¬ľłaF#Iäć$–"†VŁ“»bôĆ3„‘×aB$WăEQ źT÷Méi=ý” ÷Ę÷37ť.¦©KÜőâÖSž­ëWŽÜžl&ĺ.A»ĂLůräBI‰%ŕX˝×côĂeU>4N®tó€%]Đöě3NĆXʶ^ČLďŠńŠJ”ˇµąěĂŠ®ĂŢkéCšď®Qš$2MâĆć©< ‡H ]çÁôö0ą÷âžQ18âSarŮ-± đýť™É.¦[—W̨3îI2ČOI„˙AŻS@ŹpçŐfDÇ”tÂş4ěŕ>wT5˝ÉˇşĐ˛O8:ÇĐçJbż~Kćöş‹\ Ë´ß‹Ŕž­†±bśc‡I5!A™@n…c»)YżľÄPŻ”*˝€q’śSŔĄÓ4-ÜkýĽ"źŇőc7¦hW‡ŽËC#d˘HŇmşVdJĹ˙EMMźŁ˛Žü;ä¦Ęo™]Á˛tj}X4őqŤ°¨µżş‡ŚhÜáĐŔ°´Y:Mą»ÜWHzˇĎt?ű9Ë=ŮÇ+)÷č7±]"4}ăŔ4/u†‹€RŞÚ?şYVąĹ‡_…8€QŠS§ˇôÉ3-Íýĺěar/Ă$á¶€ö_”© ÔÝ{˛Ý]ůÔäK2™IôkËďĎ)đjĂ(ľ ůNj´„V Ö_Ö]VÚ_—źhi•í~/ţIn ‚č¸SŹEĎI*•ÓËŞđú‚Ę.š!„ą°ŕ(Č~Ý ˝]Ű•7dů2Ěźň<.Čěí&“żź˝Ć{řŇ1ţµ6l!DZiĄi*´–%Íqz/ÖŤíá7úa]ţ•ń JN¤ľuB ĎDŁZÇŹv„”hÚg+][7cÜ]Gň·2ú92ćŁŤŹ—Ń ă\†˛z;MR ą lt$hš¦Ę󋥰«Q˝(1ŰŕfmôĽ]U,RŢÂXɢ=걂zőF™\€Ú5Ë62Ŕ4¸čď=ĎŃ]©¨k[ůţůÉÚďY{ŘxmÂYĘ Ł>­–ţn™y2Ć^ĽA4̾ؑU`T4ôâÂ~,MÜw¸6†űZ˙1îč&OKn\%dřć´¸‹ËÜ(*¬\F'2řčŻxtŻsD±!ńb6€Ś}J$8í,'ą–&قӰU-ěw‡áę—Nx ¬µ—­Ź3¦:Cä"öűKV ÍŠ3›O‘4đ«=ęF©˘‹AÜŻŹŇ›*ÎnöîSŽŚ uJó˝ öÓwú!ÖĚôÔźnŹĚ˘liŕÎ\~K Áösä ęfYö–ˇCú‰ú˛äŽ,+{Q¦ľ’°lSMWüť+™XTÖ6~ ¦şÓmÉ€OČKvë„m+*ŤĐň|gŚ–}ô„Mßdg7?Źď¸}ˇů·ű 8jt@˛ÔšZĽO]†ŐR…öAMiŹz©OšmĺŢ©Ę8·čcŰ©;Fż˝)ď´"«ň"şâ—µfvšĎËbýö×ŢţÍé¨ Në‘ÁFą˝Č ©Ö/ŹĘ rXy‡Ctá]CÇé^żŇęŮéŐ—Ă]¨”Îç'&™pµĘYŚvm8JJ޵T(Śüp-|ť•:”`Ęă§SyJł5ăĄa­ů‚¨yzH|¦ż^6}ÇČ/8üČăe+V@HĄ| ŽYż$Q>Ѹ°§$>CRśś)›˙DSĽ_^F-9uŐáýňNŃČ2aŃűŢUb‚uř­çrp˙«ß7%IP-ŘöřKSWuÖ' ¤đ‡…4nJs…Ąý Cć̦)8ţyn:TÖôľŮ®Y1|Ř9 ňé•Bň´nÎÍ.pčĽ)`زʨq!E˘ÜĐť_#ď¤ob˝g/š8˙1ź+ţQK¦ČČ>(‡DňÝ1R~`ş M台 ćÍ D‹k5Ý`ćžîSŔčĺ#×N^ĚšîŘ’Ü•[“˘ĽgůýMf°ÜFş\ó€Żc…m˛šîĘłc†÷>÷9É@ęZśú#ĆŤďqŻö e3¬˛t± oúެsňWđ©WPű‹]ײbUž9…žy+ Đówďp_•qE^bňÜśĂVîîń9Ńr¬g=ÁX»%¨ń#©™tĹúł$5•@&{űŔÁýčęK@˙w„jmäÖ0•e­ĂŤ`ab•1nĎĎ»EG[ĘýUöívq¤:.¸Ż6ŤĹo¨ŹŠÎ˛"k“PÜbîĂŚ7L,ÜŇýѡtňoCˇđ:H>ĹŻQL±~†Jý§KvJÖw•fç‰éŇĐŮĐ踛šĄ*1…<}W8ťĎÝ^!ăžă§d?g~qL¦athĘúQ €î“%a,´HL0=¤\cąâ“ŢS íŁ×‚ŕfäŔKÚm'üFkŚéČ;–áÍŇ7źä¬m)o–pŇb ›ÎôZ·ĄţĆ™n¤ö^Ę´DÉĆýCĺ-ŻČXĺµPĄV ëânRr‡‘Ü®ňďŠi¬ÎÖůiß6ë­°fĐ˝ný‰Ţ^±+űĺełÁřµ˙ › ÚĚ˙őwU q tĹęůP¦m˛>śĐäz3vzňĺ6}Őçtů¸©!Ł14ËÚłP<üŚ>AQ©DűŐŇÚőÎŤ!+Ą}3‡Ô3 hÝWT:v®‡Ę˙Ç…gi9Ĺâ'ÇÖË« ŇE­Ĺň/X_{°¤›Ë–ĺ šĂ¸Ö·÷îÄEĘË»S3Ż±Î€ŕĄ€z@ť”gU+B‹cAěX·€|0Ö+qĎﮉS˙śjětݸű8Ôé5óî·»NŤ/WKź%ٶ©†Šđe˘_ă!.†e ŽG1š fDÇap°(ýCď!NřĄF®m\ůŢǸ®ą39PüŤ=żeOč*Ł juöt(¦uŢSWúxňřëMŻËçzÝhĎľĎâ*ÂŰěsÄ«×%¦·IßZýÉ ü±ÜU@§6¦ľ )Čm¬ďýËňĆşěě­…c{i™<íeZJ B/Š–0[R^@>ý^ÔÖ#]Ë«ť“’»mÓĄ°ĺŃ*x:ŞÄH4Ülë°[/M&A?1SřsúÚô(:őrh…¶±{Ç^şhɲW´(ÁS{z޵Üő‹Z<Xu*řÄ\Vˇ˛^űšî‡ó/Tľ†ÝP„íµłčüg…ĄÍU}8JSNöáđlo\s•{Úˇř’[ďvËĺ55_;uČ«ď—ĎY•ç¸ÍŤăĐ.ańűÍç5{­Çz˛sTZT@eTĹú˛Ď™+ˇ­yl_|òF>şüaPÇÚÄś ëpż¬ł©ü\y˛¬·(YëżĐĎY{…uŔX€˛HŻ"N‰ôWT7Ő€8*ĺ!®->fë•ÂÓ$Y#1öĂe…#ÔüÔľ›č.Ä p @_2ÝĆf &u+Ô(3BC¨ű§s Ů@Ç'éć—‘žţťo5QëÂÉý͇`{sŽÁHEFxô˝}ßIaůţáÔmŘľąˇÖ”RŐĚvnęﮨU{ۨKc­ßIń†}ůđ‹{~ŹľţÎŮÎÉdĺťNötą{zäÎmě,îqÓţ`:nfJüĄs8=kY<“©ű»˛U´ň”®´Ü’r¶Jęń rŘD#Fxt"úAĂ’Ł€”'óĹTe'$‹J&łJq|5ęçĆkńž>bŽ8'ďRHĚÍŘM?1Šś ďé5GF18§¤x„´˙“™”*űÓ$|_“´(”\ŃIŃÖ®@n†ď3L;~š„”SEXV˙cĘšjOhOtAČ“¶ÂE-ÔŰ·–űlj٤,čİĄ´Ż?ŠđŻDWůPö^l‹ÚÍ·zĎwv‚kâb ™ŕ2ű“¨%ňĄOŔ$ňwĺńą†ÄůŻ#–úČ-ć–%Z—.XhBŔ D6Ć7 x?—Ż•ËJ…¸?3ë–&–ô¦ ü`Ćš#?An—[±ůsꀇŚćľ” ˙Đ8úĘŃ.ŕŇ } }čM˙ý/E®—'­ó‹#A‡“ę=Đ$Ča<ôĆlÎyęÓě°3//<7a%€¸YdsąĹ5 kŞęéö't‚ż…˙&mę›~ˇ;­řIď+ă‘j^ ćšńř#|Ů”ż$5pÓŠŃŮŹĚè1ZQWx1m @U†Ź!đî„°O§Î Łťqřüň{=z·—Go_Á”•dč{_î`ËW ĽŁ?­ŮĐfĹNßÉZ†S˝_MóO‚&Y’”S˛č`Gź-0(L|q\Šfž­‹ś=PM+snîih«âޏµBIŹIőöGŮAt(Ún°Cx3lęF ËuGÎ)˙ňE9ÍťpŻW8?‡ô¨‘hd`zfXŞÇb3č‡Öř°ĘKe8üC-ĹůŔęúD4hÝKËĆąÉOc\鉆ľíšp÷ú31É®Ś.Ť~%®¸îŠ!.ďó3§Ž€„"Ől‘ž&íČ?Oǵ'eű±,bšzŞ,pxĚ䍧ťq×˝¨W7śĹÝ$yaˇcă•$čí¬ë¬Ě0Ubi¨đ¸E»ŮQĂnKk‰*°}/9ŕÍÂŰôĺ !9fŢżźŘ„×ËTőÄó/8» Ő[ö,I™Žq|˛ŕH‘I¨/¦\©íq•Q§~$łŇiĘ)Y/‹¦Żí‚đ»ëž“śá$›ŇeaΩ˙Q2üí,ną-P7mÚ6TČ}™Ţ|łŕk\ĄŽ!Y_®beŔvÇ˙ą·¬ĎŐË„B ÷p훆…¤ÎŢ$>Ý«2}84@a˛Ö¸Ň¬]úAhë ĐęBěK+Ç ą”!Řś#§ďŇ›sŻ{÷«¶$ÜátüU Ĺ[őő·říŔŕ Idß͵>g«ş»Ä©–.^˙#ż»wöŞÖ± ż§˛içü,š—Îë`_ßÖ9Ł䟲XäG˘ˇË“ĹçţDéRô…@^ËŃ4Ô˙çVEéIÁ–čÚ{§›ř ?¤Ĺ«¤¨5Ď/6Ű™“R ;9Ł*ňM[Îv$”íŽĐ—(­5Ű[=MŮĚĐyÁc[Ů´=]‘&A p7‡[ZÓňÜŹşWŘ](őiěŚńľô#– ¬eh*B7YĽżôjž1«kcŢúăN‰§ʬ kďŞN¶;Ľčš"Řľ ,=@/ŢÓ„ŞľĚł…ĹŔr ›^…ˇ Čd|źö{ýüFĆF`ĹůňĆEÓ•¤C*ÜC<]ÓŻb˘Cꦇ˛P•Á^ŔĐĚopv? 7¬d)ňř}í˛CóËözËŁß,Ľh±H>Ěűcě%Źpo´–¶˙”§F·‹BGť6˙Ě3Ř:ňň8‰őŹYÁ0\$0yGÎd*@"m/Î/ĎÍ9ÜÔÝ0qˇăJKYdÚŃvˇŹ†2m[hśf(ÎÍcŢ/ˇś°Ć˛–𬞡_Üłřű­±Ś­Ip‚oÄ('źS%»ľéž~ĂÉÔžhůűy/E)[‡@‘(ĽÂަď°?đ\ÔÝëÎycĘß×¶F2LÔńĽŇĚAë÷uÝżî#‰ F.lrsT§.Éř¬Y}9 śhxk=MÝşŕ…ä]—LĎę,ľÂ«lW°ľöĎŐŃqŻbGwć ¨Ź —÷~E]„őq˝ć}¸ęJ(ú9Ŕj˱; ďÍăk{!łbrć>XźúŠuĐ:cńý@Ś·Ôż‡˛*ő«˝ť:››Ş÷€‚Öľ«jËpŚ0¨¶řţŢŹ‚Úb 0ô®ĐËňńiÁ Čę®!AŇý ßĐă-Š6 'ßzť ]v©Mŕ–Ó¶}6y9ś´­ŮÓ¬=°0¤&R^Gć´~d±ľl&ëA‰ĽźňÂVČś‰…ŤłhűFĂîŻPŐcµzŠŮ?o!ÚŢ}ZsÇ î}l…ËĽ“ź1í-±uÚ]EąŇ8‹“Z&OK¶˝ QŁC±Ľrš˙č-;ÖKC;ĺŚh‘ĎSűď'ýžËđv(ęă`PÁÝ”_9'«‡Kä,Ɖ ÷šýş<úŠOcŕ['ÚNMsľĽ ›Ěĺ%mxĂ5"ÔL]źř$Đ•—{…83ô fżśY4qeÁţpąFř—afŕéów6íń.÷˦µz¤ú…‚ ¦€gµÔµČ ¨ó•d‡Ů”(ďßdß\EţôÜÝóGđ®!ôp¨Ĺµ׿H=’/wYôŕ žŃ˝6ýş<’đ˙Şń_ĹŽtő•†˘ýPl¦&öľ·Ä 'řfÖMC#čÝŇ‘łEŚSŮŁ4ţč ĺpŻÖ? ZřdˇŢ»sť” ŃL(ÂđŹd!˙Q8ă°ąŠ¦BŞ<÷i}1ŘźqGóëe1ÝJ]ßÄ7M‹í ßÄÔQÖ…WŻbA¦™š[i¤Y$W…-€ťŇŇ3ć9s›˘H@Ś zrô€e;C„˛:5pl<ÁZ=űŔÚ¤5×ס)Â|ć!ĘC©NyS/Ý‘ßŕłbDĐnĄą}ů±°ěpďćm+Ó˙$ę>§iâ Ľ¶ÔüŐ`?}ĆŢ”â°ó%7Řî]Mľ€,Y×' #O?ĘYmú‹đľ:ĹéŁđŮÎݲDĆřiҸž¦bVˇ,§˙«ËlCäÎBŢS:<ćqݡ«ŢŇgżw)„úŠö *îĹś :o,ŢóZčÝ€—ý33fVA@dV~ca˝Lě|IoPŻ9ě#_ű{]»ňEÓZ.ż§Ěfj&ź_“5ĂÇ%Š­Ă9-ćŹŇ ĹnžĹжWŇWĹ Eíršî@˛¬9;Řřäö5*÷˝˛a.ú7vjKC:.ň‹Ń1ľŐ•Ő`ĂzáMÖĘĐ*K2k"+ľúÖ·ĘÚZŕů*šŠh>áw•éN”—ž-ŮW7<ß$÷gĘÚÄžoçđiécv7–%|ŃĂź6%ťR]©˘,!Ş«śĺN Î5ĂH˛ÉŮ–ŔÜ‹ŠŘ8Ş+ë'…jrî!‰H%dIÓ|üÓ «ë5pxŢŮií1“+rt•—€¸hčpD[y’pűŔ›«§Ľ<äY©Ç ¬–©Ş:¦ţ٤>P¨-± y*ř xć4lÄP0f2Š!Zë,ç|Żŕé ¤Ô4p5Éą§.ĽźŚ‡±đIâłb?”RőTĹ3:đČ~”}@šĎeĂÂŐK˝L kÄĂí?áh®_YŻgŃPřlĎs&˘ŕ^ÉOꔢ8: ~µ'›#3őÍŘŤŞëYłhB@‡!FV&2ăé&nîĎÎÝíúý8¶ŞdŚvšÎ˘Ž·Ż~™PXţÜs Cţ;?ŁŹäGvĹĂ uüňHÉŘŃ›°Î^úěkOĐ,Ͱ.ż§AY]!ýfdŘşE>ř“´řŮđv1 \8{g¸ńM–y*•~ÍĚČŇ}Ś$˛fµW‘—úrçîśŔ4 ţdB"FŘ xňΦż<žźôŔ[áRoż˛==|"âI‡ëB ®ü7_:Ŕ0*V°ś®\ÔhpPű†Éç,’ކŠ.+:ďńÉÇşˇn”öőÇžŚ,%žÖôeÖ—©Z·‚Š^§€í„;ĎQę9 đ“t%`RžC XŁŞá#«ĂŢ9p1/ĚlÓ˙C˘y aňŔRkÖdXÓâ7AdÚ?Ó±|Ň_Ę–Ő˦Áő©Ú™ÓĚ»UŘö:ZUâ^ěĽ]·Ô¨Ä’QÇd&LB5B´ĘÉ~Ŕ§‡Đ]ŁVş'K§š.€ZwěVä[ĚęoűŁm đűě‰×ö"úkཱིŚOSŃ7ÓH3¦ůÓ±weéó-9ŁÉ§Žˇ˛ăP • ćôGÖ^"7¬÷µŐlYLLL";?‡—áÁ\k–Ůýň¦N\ö)†µĂřÉl«łM-=Ö‰YŚ7o+5‰Ň„]öSŠęi»#îTŔŞŕßU,Ű1ň@qMŐr~QňĚŢPŔĺżnű4/rW"hÄĆłÉjĹłrE˛ćXČ’nĘđz FĎŕľi˙Qh`0‘Wb˛yQźă˛ČÁiPÚrę<°ŚťŻţ\ç݇l‰­D˛jý†=űem0ť9 řeŹđČaŔ¦ëî6c}:ţűo5Ć强±µĚľ„ĹŚ‰ţ^#„¤zxŮ®y§ކĺźSuÚr±ť6ĘĆĆâţ~ §k ĄEĆo«8ýL+?ůÉ_f^L(e]´ ęy. >î×’űÁb9ĐC1śG¬żÚ®Eřőxéť·ĹxLeaŕwhŻcÔß®~“c˝%Ď@ ›üpVhuˇ…tČŘRUÉ—=0dcvĹĘ´¨FZ3„ ;Ä/&Ź;sµk÷ąžqěůč4řá#mĹň†{ëĂ%é¦˙çF%–ŃT˝†}ŢÔ{řŘ–N ű*¶J/µ5÷(K+!KŁ3±0NĎźPcĘ\Á9•Y?HÎqî)ľčDě}TţĐ댪Y˙ĺ“m”\ÇÁČÉ|żŞ”§°îءż^Ż-4±í{jÜę°‹Đ0w¶ř\¨ hóíćŐśYIj”d  ­,ě 3ć˘Äkr8č^{5ä*ÔqqvÖ,ŰÎ?–§wĹË­HüŃżű˘±X˘[Úȡ54ĐVW0iN}LslřöŢhĚh3“ĜʧXÂ~.¸ĐĐ6hpQćI(äž|xÄăUĎ[˙2ÉĆFÓÖinű˘˙SüNĽ-şÔytžĎh4ňđ0¨]ě@]ٰĚr5p’»)ćbŞrŽUňč0ÁŰBdr°ýĺęz¸cölC3‰ŞÚ:Ťňjěy3,~±“*Ń–Y¸§‚€Ĺ-b϶Ěpí0Ů) ţ„®ňä` &cż•J‡ßL¦ŢŮppňdęRm'*UUŕÎň†ą¤Ć»]ż˙w.d<üüH ăűľÖQ]śţą÷~ţĆ—:¨>šŞŔĂç®+‹¶ľ&…ąM™l_¤ŕ®K0Óľ§×˙Á¶ô\ň·š?±â cJ\‹.QŮH'+©7‡/Ž>®ČP`±˘ĄŽŃ˙ő‚Ę­Ą ;'făŽLµq^Y3ůj‡_ŻÁŞgíÓĆżÇHHĂĹW_ÜŽ>0ذzS§ë§–Ó˙§ÂdyšíaŔ­ n5Py€ŕ±RĘ7‘,ţţü;ť‡ýô<Űćd ĂÚ[e÷°¶Ö‚ź¬ŢúäPŠŮč§¶ţ°>ůŰ`BbŮ»xÚÍ ú2a,7g‡úďSg‚r˛ý…Ŷ·ľSîÔ?ů=–™ÓVŕ]u‹ä­(_»Ď•×Ć/w1pN/űÇPF‚šF±Ä ă +$(|\Ë+…š`‘mm—€XËÔK{).C5ZÉĽŹ ĚșĖĘBÜD]Żxý°ËĎŃżL$\XKd5dEońu7Qš/ű ¸ő"Lž6Ž\Ajç$yĘzĂßAíÎ}—«l•{Ëî\j°nňAP€ ŹqCUv {‹"ţíh»¦»S¨É˘;Žń6GÍÎ5°=ÍÉ a‡iôYJ=ŃĂF4«ĎśŠęxnŢUiűßyşł?íżŰ“’‰ŘĆ"ĽĆď÷ľďŤę×Csfy×íăÉ­tF¸~¸uU¸™*‰¨óN€j-ě°D Ő•2›}=RÉ ŤŹłµkëŕ2źX‚ĐNĺîť[¤Ťç}˙íOŻai@ą‚×Ń®'{ýCÝ=o=ŔO BV”×®)ľ|ń+eżB­¬ŚÍn#6D\ĽA€tAmU݇öŘžV¸fh@ěc¨{IŢ čCŔť8žW§iŕH$iW8ę;hT SkŹ™wşŽ–ÔBUĐi }’8>öégX 07 +ů01ŕ?¬ěJĘc[‚O'mĎF{"nú||ţr,݆Nô_v´ˇ˘OFÜđŤř%°ÂŻí¤ś „v!ĄóÖăˇô5%-<Řš•3,ŹË;ČĄČŔµ{—Koyđđ©›ĹLÄĽţ›ăٰ€.:;Q”Ŕň>CCťŃ‘;Ľçľ¨’ĆX«!ŔL tÍOr~6Ľ(ÄůĘJ!w­ńSęIgÖˇĽőšň»Ţ="-ś1ŐHúŽŚś~°ś»fÔŻÝÔžŐÇ*˙×J(—ͧ•ąXËĄ÷;řĎ™‡ cËŹç$ůoç‘ÁÄ5l´ŹŠ§˛Ă÷4ź¸ Ľm9ĺţł§YÁY«B8‹b߀ Úxé|'Iű]Ů*C)Íě—űŘtÄŘxLL*g_gî¨Ŕý(I+OÁŚźŇen‚]kSÔ‰Féš© dhŠĐ‰ˇůlzRv–đěhK€*Ő˘HV$Hwľ­VřtmH…{(ćĆ;Gó˘¨pJµ’VŁ˙ÂQ…B<Ě`Cď[8ÖîF¸nâé ©r(]”!ôő‹/N¶ÂłĎX—:d'®›18Ŕ’°ŰŃÜ‘®_Ú`Ťł÷ Ť€ě@>’Ô…~čîŻ;3<"!¬(Ĺ é=ě)•Ź«ă –_` îě6ŰżńlŽ”0)CjE°Đ3rt˘m4- u u)…úöňŠhČBvgłzJ‹í$<¸€ i\r×őéČšĄ®5›)¤é”ąí<.z*Ývt´G7ŇÂ%±9éäsŃÍ–b®ńLGwŢ!kďŹn…iŔČúŐXÂ! ö5˙ňŰdĹ^]kÖŢRrAóÍ{D|.¶.Ńu7ٰnhĹÝ^Ö\wâetĚŔ‰ę'Ř °B¢ÂX<¬–śřôCňÝĂ‚*[ŹCâ¤é>P¦LÚԇÜÇ*+!Lµ9ghjĂEćßdžB/L]ZRŞm ü ě+şôJ¤¸±âsáj˛&€ęUďT§ÄŤśźă¨n#iMPĚ®zn-¦6}ٱŠä ’7`‘ZkË2çA·f ž¤-'0@Â?—[®‹v¨‘Hht#ŞúIąMčżEWÎű±•ăox‰•mĎóv#V])WĽĺłő3OSÄӚ×ú»ý_ńđ&ŻŠ6Ĺ4đ#¬i…á|‰USZšŐP2UÖ®·wp¸q{.ţéěŢ„IN¸˛•ń-e,‹"˙‘úݸ˝÷>`B‰˘[˘pŢĂ•«tĐš¤®Šé“˛ŠóĄiuüá˙™ &Ź&W© »ŽĘ5ńBB0'M¨´˘ĹF:(—żvŐYŽuăČKá<†KgM2*cŕűÜ:ŘRyC­şü‹Ćgţ¬ Łź~š ŕK˙Wź;Ăq …ź÷çęŇX–>ĺŔî¤čH*'FĄ«’Z[ÝB™_”ďcÝźÜ"ëä¬Ěµ%cżŚżĘnYkőM×íő“Ď#¦±Äu.»Zv‰ÍGň&ÉUÖpß<ÖżęNXFh]=c]˝×1¦ ,C´ş´Óߢj§Đ_s4'9Ňu5đ^…±ŕ(ö¶\HJ.ä,ad3¨ü!łÂś¤Ěʧ‚(:ĘPč(5ŔÇ!Üăgű‹kvî ®Ż°C˝H}o9ńî!.1]çĂJŃŠ¬úttTe¤™Ŕ†Ń"5Zň†ž—]Ä|…0 çË©ňQf}ŕĚdą+ÍT'·ď[m‡vŔ'UfDÚČbĂ}Jý^w“·{Ě}ra~VDĘȆÂ:|ҬWâ}H"řÁ›ďăf8YXeťŕ:GĽ7´L5‰Ă˝Ú¸ ó"¦Ĺřň2H¶áş‹Ť4ěb+łđżéćÓćđ*ľVÍŢČË|“†9Ey‚ ŐŢ4_űmąc^Ą»Ę#šR¬0Ć»âŁ. Ŕ[PźŤăW—z ĆĹY‚‚×ÔKÚ ťŃŇČ[„ä™¶ő¨ňbµ˘[édŘ7jÔŞ™c5uĎ|¸ËŐ ú±@˙0JGăa-g’ΓWF¸OÎ+ÁaÓ„ż+g&0ě"!)ˇ#äל_q»®i+.řfITĽ ŕY\B.“RvĹ(Đč%‘= )}*IÍ7aXäô™ipń››j…ÂŢ‹·<š´l<ČÍYY?©…-ZHźčá&‰ľŚŹř؆Ô‚˛g†€TO 7ݶ-é&lĆą ť“4˝Ű¸¨ Ť‘™†Ksoö¶Q0ďŔz¶[ť‚˛t ărD _ĘąŘP\ÓA,šcć°ĚŇůâWDĚ™O˛¸!pńaw;cÜy¤ ŐKżü<ŁsQŹ úB“şzLf· jwp±ś— RěĎ•YÝ(Ŕ"§§řž^/îňj¨5 v…eO›BʚɄ¨w ._§rÖk;%lş%r0đˇNŹ(?4~}Řä˙ňŹĐXś"ć!j#/xč׬,k”ô°„§V?w‡?pBt˛fuťy:Hí“(vu”<<1ę%TDÁ9 pTŠ8?ßyŰ«·éúÜ–ü%ÉIůl!Sč˘Ôkm$騥X=ĺĚͧő6­ĎÄiŰŤrÜöţÍłýě(!Xńęőł7ü‚‡°ß‘\NÎÁón¨ŮÜg9Ys)Ɖ–ş ¶Eúá_yN}Ŕ®wc t«r™A×3Í÷ÇvČSů;Ó)*CÎź|Ls( Ă,é°;5gi*öáĺ8$Gnô ď“oh»“DrîđJX!Sʰ%źŤ=×F›:{÷*ňRL·tźöů)^tD.ŕIś­%ooÔ·z ˙Pĺú¦űÎPĄWÂŃÂo4°üIî—äQ—{żłĺx4çůËLćŁt9B¬µdŮđ9Ž÷±0ެ0–¨äµCi »%cÝńEî<yqMÍÓ”tm†ěöăť8°„4^ĎĘ]Mó‡(|&§ˇÂşť ôű&PźĄ…1ĹŻů4˘,3néŘLôVP[˛oFZ—3křÖ(BD#ů(ĐÖŻ꯷€–«Ĺ9Ů'X˙^§Ńĺ$ÝűĚÍbˇű!úěŞŃč&pĘ„wÖ‰`NM# 5ŃTäź0‰¨‘÷~ădÇP 3ŻĂůJAý«Žë/wR1™(PÚxéć$·#P´ nMĺoŇ‚+_xŽÚ÷ ČR5ŽSŠ…Ŕ?Ţr”‚‹ŚË©‘+ ÚWđ’~w}FăÉGóP‚Îpž¶ýź@°\Ż•/M[ČŞ&Š’ź^Ą~ő8 n˘ŹĘŰa#tÖËú4®ë0ËQ˝$%­4&ĹÎNÓX2Â߯ʌ¸€ŔH˛’á)%·>+ůÉnÁó•S4ňé’˛ÚČv0[Ł+şQVqan{?3łŮ3<;bbóČ.ż›µ ĺ´ÚĆ”Ľáúß첟"¸LA“gřĽŰ˛Ęëü!üđ‡v^ ôÔëfĐŽĄŚ%;‚BjbZën«f†˛_'é&öu‰ĆčJ i#ľ¶Ňöł\:¶ËGó©É9J ŮJűźw m?-y@öd§ćÎ]#Pć„TcßląW ş~|Ó9«Ů”ó˘}¸ sZ4ęď/ň›Ý*“‰Ť_2GĆ]tŤr0iÁ]@a-caYuuóQore2Y {µęPÉJń),©®‡jÖ 2ţ7âŐ”°2>ďöy™XżiËŇrfě k¬FŰŽ ´­ n“Z…\›ÎÜ‚ňČ[hńŞ7śr )bťŚť0[4Ľ™ ’ §´]çl9\{“wýÄ„Rq Ůí°‘l«€Âóé—ő9ÁĐ‘EŢ÷äX‡-Č‚ĽÎůäzxÜÄěç+±ÖÓ•¬ 0¬g jŔ mĄ #»*Ö:ŕN16Ą g“)%ÉOŽq°‘čű‚$ŹaY÷ ÁĽ3flÔ©7R“b›“™`a·ý4®°0ŽŻëĆIW°«‚Ző$g*&ɿدÁqśŠÂMŽ—Ż@"]?Ď˙öÔA;ś™ë€¸iş«d“Ć!š|’{RTÖyďµŮ§ąĎ$9ő§UÚ*ö<†0©€ˇU“öĘş«×fsȶiwWőuzHkőnQ¤Aův;ů_IŘsK«sI@ř}ů“.Ô4˝|Ç˙];Ž …OţnI&„'$—ŕĘ4 bD ×âCčJň©î&3¦lG¶ň·6€CÄ;>Ďq§®¸u~O‡ť ! ć_­öi˙rXŃ`á ™CU‰ŤăŕŃ­_şĆ ąk3ęŐňŠW¬ërŠą€´“ř“˛Ćń…4‘ţ~S<ÎŘŕüqq_‡ Ďq_YŠö´ýAUx8îpNHí¤?”úÂËl•Ĺ(ˇb&ă<Ţ=ĽŢT=Rw@VݸS F mś㴕?üËH“B !m»%¸†¨Ś¦¸š ˝…w଒ďežůt)ú¬g¬Q†%Éěz÷;ý5śłŢĎËłHŠJbožÓb˛é±¤;JŹ HŘ –_°ÂśtŹ ĽëZ: †+Č>5ÜŹ›÷0š-+îv?ëfr)H#!-3Oí"ß9­ˇ\÷W®%RlE [l„žĐÜdVɨHŢşˇgk^$pşK\7eą?ÓÓĽXŮéĹȤđË`ŕ±ĺŁ3ľş­xµÓvW”˙Ä3‚Mq×&u–ůFWűőuüąo'±@[-®`;ˇ¦*ŞŁĹ1ĘśĽQŘw¤ŢnpfŮdž3ąźU‹tŕpf|LşČ/ş-’ݨ·„Q­xÖÂŞńc¦;đžkb©D!9x^Vj!X‰ üţ•śąx -Ľq¶Çť§śŤ`ĄzŰćĂlß«e•DÍPg˛xŤdtúoGWQę#)rŽ?›Ë ÁMÜłg©°Tn'§n܆9ŐnIÎŰŐďÖ“µtČ]%dnS;ÔyęęçWŃpĽÂ3ô>"Ul„úĄ¸§çťÔIB‹B‚ězîL}¦IďłFd¤µr‰‚0Ç$ěŠPn|Ŕ”š?’\Îܦwß8ŐHŃŘL›_Ý#Čć>d“Á¤™cE.Şí×UÂj!Ś|áµ`‡FtKÖ±ŢJĎé/~ÍUzצl§éžŮDp¦E*|˝áЏí€híÄó`ŔŹFç0IîFI±ŕÁnĆwryP? n2ČqY™ b‰íóŃ©T9 ő˝Iă6˘6†ůŤD×đ˧+Ücî°v‰ľ m–íQPĂ;?î"#é2iTÄćł˙*hJá˛fż×)Ž… éĽ÷É^şJ™•Ň00J±Ĺ=é…tšÚĺ<ť–«ŕ}©‚&ˇŮVE«Đ6ŮÍš/ť¤ĐŰ~ ňWCU¬ryY1`»á#Ä#pĺŃř!Eć-5(F–™őţGýŇřďm!¦UŻ -`Ôľ˛/h( Ą«Šsî‹môBt”^BŻPĆ Eř]K8˛«/b‚QĚ€ě؆⣯ ©d HnübŇÝ]˛’­ŁŕÎx ŘW҇Ăm`Řő;…s–JĎBéÖűĆ-(j‹~éŽT¶ÜňÜď§™Ý5­Đ©ě•…!$†­¬JýTé‚ČäÚ„3oá:~"™•ę(ĂžˇŔלrX>O^.}”JŠËŻ3dqQ3 K7‰ě\}{ůŇż·ŇŠz¸ăçX9°A:đĂ/6[=]•ČqDqrŰ`ĺ°š±&±źđ: Á*íFd~“Eâ5?Ź™p•G‰X{~Y¦P5–& ©Ą"J;ö{Ń^Ü‘ń Q‘ ?ŔŮ*ŇeD%xB@†ŇB dž—6ĐŤ´ô:d% wŞ<źNŻfů7ÇcăetX¸c~K¶ĹöŤ©ŠŽ1ă˙PTÖ¸Í_íČS粚Ś@îżÎł^±ď˙ó>$ßąF?ĐŐďPÝ“ „M;âçűŽÔʧϵsc/h/x EŤ^:« Ě­×a­ÚIŕ†Ćk˘‡8Ă ]\K Őކ ‡x˙XtŹąNL=Ű«‹˙·űÜĺöA€Ę(*Ş;MÜ…c‚—„l¤~ą G ow± ÷řëôd¶ă=ת,xŚféďÂň\Č3Š»*ë}^cÔ—ĽöˇÖ­¬Úă>ęă! Ý\0š˛P!EŕĐ`3&ńýµxŽ˘µŔ'"3˘Î›03ňżŮŢ µOMrxŢz•dW—¨ę±ÖłĚÓKŢ*0qŹ÷g;vUF×-’»/É\Dř8¨Ż‘Y ±\Pé˝YÁ»C -K}E#śČ2^•gOźÂdtđsL·Ýsę¸ýđĐSuĹăëŁ7ťF żĐŰ˙fąö|Gř<ůX¬çŚĄWîőrůQ{< i [˘ÁĽĚÎÎ+RŤĎ%ĚŤ}áşÂŞÝ\ęöD–97{čň 2ÓĐl>©×wě{  fŻŇ™€”Rú¦â˛XäÂźK‚čő:/˝pÄŕk¬›äČń]íě5ôÎ-{ckJR÷”ć QÄÎźd‡]µvg“k]Şx$–ąöĽZě (µ{dĆÇ´: $h˛Y1ŽO*ßÔ ąnŤĽŐ•±5“IŤ31A‰+`Ú˨ćS3’^C¦=Ăá˙ql#ü%ÍĹćŚe}’ëĚęLfoŚ•MCr·éücŘ`”V*{±ŚqMGýBġč±~1JK5D66ąÝî/‘ÜŢ“h´ÓO3ĺČćö]ĄNŁq|—Z˝.Ţöî” WŚBľ›#ŕÜN Ö1ď·ÝI¸÷Ă˝Fé×”Ď[SVg°«(VŘÔ-ŐCž¦ćł}”qňP“ŁĄš‹[–1¶‚haŽAmb|ąú*ÖĆš–ňˇ“Ý‘ďű“eYyŃĄĐÉźO•­7 $ ‘ź¸ä{ů>Ц·qŤP‚p¤Čź1yiÝŰGÇięßÍŃŐŞVF®箤֑|8VrűÜaAĐXşË+±7KNq6{ÍoeÓĹzÍ]Čmci2Ľď;ëż Üç˙—cŢĂÉŤ¬L-R0ř?z7Ţ/btt·ťĄ >±ß0«őŤ`ŇQ8PÄ '˘ •¤j¬íŘË]aÍŤ= Áw°˘ZŚ5o {ŠÍ+ŞÍć ŕîř;1Ë|o `¶I@C>;l?ŰŞŔ"$89ţŮG—÷áô3«/ůgl‰ĐÓ2fÓ•{’K‚RJÝfE*·d/Ű5-B6©ůĘó8}đÚúj_o[ÎF$ő ­° PM’€˝ţ˘#‘zDćéă ”F=fşQł řć{¦lpęť0·ˇVó äÍOy@jCŕ۶rO_RýMv`)…Y¤â1^“"Ň·ŤP F¤wčŢç—®ůîU+Ę”ôÍg&uŮŠ˛ 1Îč?ĆÔNdĽ©4Đ(€+gţ¨ňKř—«îÚĽcóüqTU(w¤Éľ{RA´ćQšD‡ Ż‚VÓĘO±)[ĹEjŤ,Í#öe>4č4ňâ~|D®űŽ–â˝ Ü8 żaŤüF«xhĄR÷ hÍ9$ą.rxü…~ôńřöĂí«ü.%Ń€,ţ›ző\‰ ˝iDXźňţCúiKĹhÄdŽ€Őýuu řîěé8ńΗ}‚%í§Üj?˛Wiđ65/wKrňar"¬{¦›R` ṼNµĘNb°”Üʂ ]ŚÂh•-RŽgysbň»^ꍔsđ?fm5»E¬Ś†h%Ô‰ך¦Ňݰ)űrńŠ^oIżwŇ–‡Ű®v±Řšr _>3—¬o‚%éď™í`’­ZXهˇÇ‰äŮŮ aGɶťϬ˘Ź1Ź‚ 3Ȥ=Ь©‹Âż*9č„GşČ­Śz' éÝc<¦Ą˝e ţ‘rŐg“ŔŹÎšGŤ,"¦DF]/\Şů÷Mň­š¬!Df '¶¸GJ‚Nĺˇ^ŢŻ{ń"d%’ź|ěpÝnfC0ś»Ă>b{‘p˙î]»`ÉIwŃ j\jɲ®*ÇK»@±)ç €n®ăz4 ĐvŤ„0ÇőĐ–€‚U(>đ.f’(—bđĹăźěě.PŔ´źîS{U &„üZ˙ÜÖ5s€b ř…ึük„ř ň+ôŹÉ›„1\†a†ňC°®šňj‘°08Ŕ–ÝG”Ě\˝‹Í®Pśúef Ď´|çß6ôżĺ»5śŤÇOÄSwĽNČh_OČŹp×`­xőe@~áÚ9iqŐŁ4¨MHLŘߤťŘK%k‰< P9¶Jź€ ä•QŔ~®´^U‘÷…{um›k–ŠVý©„Ţ îäßJaŽ mĘR *v¨× 'żÔ FxmźElT˛Ó‹Á¸łśßÂN‘I?gR“"`µ'n#{Ľ2řÖůŹ@H=I;ä3ż<±ťRŤÎ ¬DŻHY-Ťc©g§–‡»N2÷Éúň*ŚäKżN¤iÂáU·Ěl†)Ë:P@P˛k 1áŕ}őÁĽ?1­ZŃŞdv“¦´W˙Š*˘‡}şL°7Bľď„\“ÄJdŃ(0:ę&‘ęťźĆ/ś–Ŕ…ŃZ'KŘÇ{¤éQÄrkeÉÉŞÎĘPëÔ©{k¶žÔwm=’Geú+ŰC?:IS[mŁĎL7ŤOřażň…ŹśGÍƆ&”őů^Á@ÍĐĺĹx°QďdŚqʦ˙Őś€ŠóbîeW÷Ř9  Ą«ó€Ľ?ŁŐŢľňśđQ?śź›•1©_ŽŐĆŐFĘK¬zę^8NL4 L¬Řž{㳪ˇřôđ+u=‰úÂjY3ţ¨ťäóG0öÍ™§‰ŤáĂŻV§T˙,¬žîÔËĆ ˇSVr"„ĹKFSYyCQÉɉ+©_y`źĘßNîČĆĺS~ž˘Üůť‹Ľw…{h}Ąú[sŹÎřŐă÷_ĺS˛î(µZ¶®0e"·bÍ ĽĹDH^MÖü¨R°#ąĄ? ĘČ)@ĂůTďylJŔĚ6JŘü/÷leXŔş,G_őÉk@řluŽÝăÄĺŢdQ\4wíŞŻ,ŰÓ!ţBĂě$]°ôĘŁŹŔ3Ťă÷Ó×ÖĐ—ý<5‘ŽËrôŇé´[’Č—îÉŤŕJ»˛-"jA΀ˇĺôÔzŕTô=ĎüŃNňZqµ_Ëa`±ţw·Vż6ěŰ2Őء ś`ű›qĂ ă‡ŇzŇˇŽ¨BoůsÍuŢńßřÝłßćkuäC3k©fĎ+ž”%ĺ}…'˙N@1(gnŻQ5cz]ߤ ‡JűěćţĹu§‘g/y6dáX>zôÍÍ«ăőDŚ›şDpé Đs_pEY˛m7·pÉ 4“Ć´ż¤ÔBVKŇ|XřżW„‰'aA‰‰ľa‰zŃ0îÚ Cn™X| 'ő˛ĺ¬DĽ0ßq ďphřLś5Ł8ţh˝íqR ł{đHĎ8fOźńç—ĐľŰfŰŚ!˝šŹ °) ëĚĚúäíáëĐ!¸ßŞŠiĐďCÄn~Ö^ßs”P`!â„‹ÚU_y~îŻÉcčçÉ·é¨T˛`Î"á/öę%€X÷íhqŕ¶Ü'벉9#L<>fĽźűű4ôŚçÔÉ©^:’Zä¤ëŕ9ůô2ţĽ%„©+©Ľ‘K«ýߦP¦]©+©_!GL[˛=^™PŁy«m:µ@^ĽWÔj{ß ^“q×=ŻáŃŰéۆ­ÝΚ,ŕó†buDŰđß;ć ×'Ş}1ű6úŘ W9>»§6µÚAŐ+í«f_×nA ™/ăé\Ď#»¤rť˝ĘN ÓţŠóŢŐăW.& ?čPěŐăÝôŃŚOĽé\·Śd­™­Ô»Ýá±÷šG~Č6ĐĂ7¬śő fáŮ*#DzXĎ^ß·Y'ą€xßôŐ Ţ¨Ŕ©KvbXĚI"n č¤3…ÉŐ4fLăĄÝÉHś|N±ă°“Ś*=_5Ážďâµf?ÉôÚ6Á&;JĄ8čŹfi úgs˝5Ç JFçż°» śÚE~)’Z ćĹRüŁő2BôTđ—`ľĚ·˝@[Č“§. Śä2ÂŚK?'~" vŽßDŻ”čz@aׯv˰ŘjČr·öű¦Ł•ůé^+ĆËÉ@ťÉĽ×Öóćš/(¨ ÁÂx±Ź[wh°_óÖ3#uĹó-ćńműuDµ×}Űš6ÓOńO:š€‚±Ň)łŇ~Ţ<‡ćtśuěFŞĹî6^í- Cžś=pSńŔé7şóĚôírę¦DH>ßP“6š˘*/mËrŇ>ůBŽ‚3¦p 76eî Ŕ'cCeF¸eó_Ń›/FíƉíýx… qÓŔTN–ÝúqlîPC˘5~i쎨ëpŢĽźäşXşÜýsž—"ä}» ‚źöÖܵ™lŔŞł V˙őr "‡p˝ÖĹ‹wws{,ŞQ+˵ż&—ĆEF3Fµ$sĆ‹vçÍ|¤/Ď•s¶ŁŇáL·ˇJ‰âón !RtfŁĘDI5Oq–\č,~űeN"BÔ|Ť¨Žhú-Ŕ Ť}¶ ßôĆwfbgFa ·ZšɸfçőŐŘ4şÂkߥžĚŃ÷ťř—ăfH ."ć´‚ݤ>˙¦ĐsgŚnZľ…‚ťŁˇŇ2ä‘' &Ä›}Ü7Ćčh’ţcGŘçł ˙(¶ăş/nROÁ Íh$sµEÂţ°Ž]ʵ)M'ĐŔ7!3Q§Ţ'lˇ1 ….‹-¨ŽV¦ŃÁj ZW€˝_u\Í—+-=,ÝeߌxôĆŚř^wIî‘ #cŔ0ĄÔşgô!ŮVDôĐş—‹’iÇ]ú|Ţ9Śr»şP} …4rä"z@ ˇŐžf]ĎKsŻ5ňřSHáĆł__¸A­Ň˘…ňőZ'›¬kß ŠdE' Ú–Ś;zDq`K÷Łú©Ďv0ç× °ÔK»BLFľĄgácĎFdúŻ^]¦‡üĐ+ˇUŮ ‘ WÎIŕÎQ¬nĆËwg”şŘÚM5Ž_ ˝ÇŠ ‘ú‹Ät05®Ńµˇ1óČJń`ŚM,Ř@‹`D0^­c•ŰóŕG|L>C””˘Ô<ȡ\’Ĺv)MŘ&˛¨Ô6ť’ĆÔw“뀟5Ű[Ö/1^žˇ>Ěç+í&k›†6#6żq©eztSU,l­2çX!ü¦y’Č…ĎĽüÖ+í3RĽřH€Ů´ąA—¸—ľş3ó_Ź ßo®Z*IŢXÚ}×öxkł*·qíŐ*ęË-1Ht\©Űx^QxźE˝@ĂâĐ+ôC˘ ssëţŐO…ë k3ŃŔMX%Ŕů;ÁßŻÜ ®žÔĄ÷(«]¤\ąJúęYź°lŻ/lˇÓ2şNMŘľBuÜArF‰óc™×>TÂŘb íhů»őÚ¤0ůµŻ®ęÍČ©šš¬GhËŢ|°¬Ş×ýą¬ĄH)ÇŘ- ®×I[ßŮĚÍ--ţAIf/«ÖvâĂ,*ŔÎu.đqb7Uă+]Ćü`ÝCĄÉűuÚ6„’ęô'\6ĚĎ ipdhbçf@Ťftô]ŁY5kČšjč_ÍW'ęďy#ŤDc] äŻ1m0ůW닊т˝Fą'Ś—‰3“Sۇ —ź€3Î8aÍ<«kńŤuň’ŠĘńSyÓ°cFöž?NĎ|7*-M˝>  R&ŁńńwÁ6‰}áiş$’] űl¦„é—Ű;Óß2Íßá6xŮë^]ĎZ°Úł3Őpô°s=‚Fr}M8đé;~ ţo1l:J$`B›jčÜsJ7„űwx_ăWá̆ě?ĐX/LvŇľµéŇŞ‰ä~$ ŤŁRÉ6Dmw%Ujš ČŃ[oj.á©v°Lü©Sݶhp*9¦ô»ś&ąŢ&ÍÂŔ_!˘TÄ>›cőĺBaőăzůjń*ŃH; Ú¦V.ÉâŃĆÚ»Ťë˛Ę’xUyf/ÖwÓŐšŤ‘¤P±Ý2É6F©ľ]G89'YcYCśMR8ťjÓüűçŤăˇ:@ęp’¤ŕÓÉwqńâÚ,pY)S |ćD¨WÉů}ău‡©>UŘ­űa˙&}‹:cT¨ăI‰÷ö )Śť°ÂĽ˙ďq„¬J˘K–n$'ě˝ňÁ˛¨ôGPą•.꬚4h&‡)¤ŠŔfCEútöüá˙¸‡Ž×Ý\ŞQA#LMAç$rTIŕ…LN0pÄŘ3»S “u›KrČ(ľ¶5kçHŹ•wËţžJ„isĎöŻöčÄ™ň9âĺ7ßLăé~&ĚĂ™k˛Oý m,¤ˇ wCőš»ą°Ńłú%§TÚł6˘ę®2óĐźHZźĘĐ‹ńg|’×ŇV5UBChwu[1ĹĘŘdřiâÚ?S É#Ţ â‘Vşł×“G—U?¨ ü-Ă÷[×6č졬[W°4üB/+q&ąíĂ›&/¦¬AŃÚcŽđ®T&e.őĄŽÇţtřópqUżÍĘ5ň'LńOYÂăE`Ť3‰«-ˇ1T(ŢĺŢüűIÂ^x@†,zĘÉdź’­Şo"!2Ô0•?é&‡”qV®×…p$‘B䌦°ĺągLŽ+3-=ÖÜ%Zd%Ő™Xě‚Đ]îIÜET-Âk6í°Tä“wÓ÷Ërzž»>7T)'nP„źÉdnĘâécĂĎ_˙˘¤ęµé^Ýos.˙ŻGa˘Éđ· Š†¦ŢĚ”SÚeŐËpą<€  Ú8Ŕ{ýÖňYű,(•T÷ C“MC#”©-Ę™ŚŘ˘‚uĂmčPO%Žq6}7Ćf =>«K<äŕ!»$i¦4 †´…˝ ˛3nÔiýmŐ9ă´¦Ŕ>š˝ć»żť+™>q&‡ţP'‚ĺ‘Kéo¨ä9uß_ ô[K¬®ľ ˙˛ř\Ô×ä!`R‰S9Ú0ež ěŃ2e×˝6¨ŘY@ĺĚmXÎL˛`ó(§đűŠG‰ą5›Vż'pa‡µ­•CŁx‘÷âÇž]=ň,…ÍŢxŠuSe¬&˙ö&Eź™^wW›u˙ŢżŰźŻ¸~őö[îi˝ÓĎâeEZY_aÉäŁń [gĂ®MîYä S¶AŘ '“”Ť‘·űşfYpŽ#ꍂr?âPđĘGńýçšwC©Ăh hmľ3¶_HP2iRn±}äu»™(ή#@mKąÚšďů9?“^K,MĘ“rb±¬o’ Ĺ4S:÷|«EĘzcíDvšd“ÖŔĆĂy ¸N•ČkZţ¨ă8^sşçhÝ’9V˛§Ő ŐčµK¤L’t&43M¶kŁŔććĐ tŽŚ(!üäiزŠŰŹětţ%«SX ck0IôšŢ•ŁłŻYxÇIÝ^¬DmâOµÎ÷ä´–Í(¸ËďŹáĺ"­Ůô \řLý7đMúrťłFő8?ŹýŞć•%xNކü #GXďn…~rĂRL0D`‘ćŻP;{k[x;h?¤ ¤Dęň m˛ďĽ<€ŢR<Žo9?–I U 0±6ÎT‰5o«úÖ%‡ž?jÂŘHľe:$Bß|M)E€î1­ř–üR9ă Ä 7Ď…—ĽbŔ2Řţć´_ç˛Tćß`´Űá %iÖ_;zĐ2ŰúmX;UÇ—?[t¤>–¤%Î8 ŞČ d@ ¨ă/N)ę4ŕôčň‡ ]›×¬¶Śő;v×dpŚź3ŚĹMľ/”¬R¦L|&cŔ5GUňéŇKňÍÖ÷˛ůëTű$K%IČ&â&EëG-ĎF5©ľăđ"¤ăSÇýŞu?b•éŢ˙f´~‡šŮňú1áx¶?ŔmaÁ,ÇNë뼝n>˘usP¨Ť)$ţ8P­ ŃIíf‰îPkv†]NAŇ»ĘiĹ,Łő¦9q|Ú¶^ĎĘśLÝ/l—lEôÂOf:đş‰ţÂOŃRfĘťkPAŐň•7z÷őjÚ&Ŕ'?Şâ欇žHMV]řÄ?5żZü˘Oń7 )Ó 4WǶ;‹Wb0íşšz łA˘Ú\‡›Bŕ§\¸­NÓe‘~¸á­:)Ôĺ­ÓŹgÍTĘ™ń"/c¶řŤ˝›kŠÚ©ŇiôźY5C¬9ţm…ď{Ţ©S ”%ąQâ8§“ÓƉg¸ę¦H­$1Çj}»P–FÚŻ")#ąětźâÇ  =¶Iµ‡Ď€1?“ĘłĄč'ĘŞ¬˝|TŁ1âhe×$yYŞč0ÜŚ¶—»č \ě"čă+×i¦Ź(»ŚFI0RŐ%đst'dă>Ţ:ěmşBńˇ¬&uz–Ż21őµň:ÁąřOŤvűľ-4ţő*íĂxcÜŚEa~:‹ÜR˘&É$Flž”íĽËżTŇ{üęů” ęf}ł^ˇ›ď’i„<¦*ňpÉŹ]ů>`+ä+~tĐ.«Eg7:šýě/ć‡@Ď3ŤP˙ťđ÷DtĹŇu9zSy™u,G‚~ŕŞo—í=hŔDôOBĽ¨–Łö2ÂŁ5"ĽŠµ&8BÄ»1&C}éˇ3-ó —Ď%ł ÇLŻŮ°ši1×ě»;ŘÍĚÚ؆ď辆8›ĽŃ5a!Hx'-HŮZő&jŃ —˙¶fÉăŮÎ…¨{­!?®ä ĹG÷/¨'WpCJ,Ýnɢ@łL/HčSĚAŐ-ŕľ8Š“Sn˝ŇX č9˝Fzh4­°®˝Ůt»Ěws¸Śđ……LŠAɇ3Oô8*@|_8ŔĽ2\BÄWíˇîwâ$sS-ĺŚĘŹ;AróŁÍťr™…ÓŰ WŔŃĘIoöř{Žš‡Ök+첇gj…Fg/•",âĚ>óšVIs4ű5ؤ˛ŕĞ笊ĺŇňŘfŤ÷PYěDŘVŽň=pR >ąŔUÉďŚpš\‚„›9WfŔěŚču<´}/)=];wóŇWťÝ”t…ňPlV˘,hqČpś7ҸóŰC©S×ĘÍýíöČčâ:;Ç(*›ŹÔJţŰgM”G{üĘâŕb ¦ń>m´ÎXÝŰWa<Ť°\Ĺč˘lśQ7|ĐÓwM@qEŁî†‚Sr^¤ń5HŠ\z…z$ů7çÖ1$˙G Ň‘}v[Ŕ,Č]ÇÁ‘M{ÔëŞń­\@YČ/{dF—±"†Q˙ź¬ť8Ŕ’8#ĆŢý ĺźü5 5u§hĐK3 Ż­ŤOęő~jĹmőáĺmIRQ~Z$6ç׍†Dé? ŕĺđ ť}ý¦’Źüůýtd*ŮT bŔëâ¸Ęú÷dx“ mvÓ¸—lrűɄĔśĎŘ*;J4wţÓť=gÜů›Úínę»­äWČ—<Ú ^=ušťfáu:Oíëi“(iOu¶ć?#ć1KŞIő ŚŢţ6y/öík˝ęËkęe¨Ę7c8va ŮĐ7ž:sđ Ą×˙ ¤F%ÝüŁă{ٶ¬/sKâ‰ĺŞwp…wS‘ćrŕôĐ´%Q«,äQ˙4é-ľżëdŤđŔ;ş°ţŰŮp5läGt˛-Ţę«#ýdUŇšŔJlUŚ ĎBX<şB^r1[«äę˝]¶żşÖŕEΠ΅6v{c@źTűďĄvĆAçuQ G.Ćë ©Âűá~ÔÇZäG÷Ôő>7x n§Çş#t÷łÖ[»Ežé»Ź3Ć:ÇŚëÓ5¤Uó˙Âňă ~2±ľ©ňdžś>ÎL[$@m!ĎVlUdbIśŚ(´Ű*2@ť~„íă~+T=ĚăăM‹Kq!4Úvs ŕLÄÁT&& ţŻĺô<"{aÎŤy» ÷k®BßA‰ÁzŻw`[öX?Ć7xÄż"ř¤˘kqDô0‡Şľ >Śs;Í"Ť-őeŻ[ŢzůŃ?´Šłůg¦íbč0`8Ő/}0ÂňVçâÇdŽÓE9wha°`ĐşO6ÓÓŞËż·#ĺÔ[ÔôźÇĺ‹tŁzh"ČÇ” ŽČ¬ ~©-éłéń\5bfí?őw˙ógcö󏋨=¸lFŢM˛oĹŽ Űţ3¤ű~†°‹4Ť.ţĘd ¦ĆŤA.lĎ dbi¬9ö ˘ś;ţ:9Cě>ŚNúJüôő«ýô9ěî#•˝Bü‡_ĐĘëOěUúOĄ’ßA —Čó7ŰJc¨óź…*á˙± «ĺË[_[Ž˘Ň03ýÁŤ’ŘÁ„uHU őu×2kJ+=śëS˛ĂşąăěgEzkU;&3Ů1ą·áăĆű€äj¶ézđiCĹ:Ç,úîBłľAyŠ~zyÁ¶“ Yé•Ń|é|ľĆ€O+z9ę“çĺěo:ŞJhO˛Ý"áŻ!7^č"ń†5ĺó<`CôĂF” ÄMgßScăűúŐ`e‰7ŻÉŞß˛9‰#źóÁGGÉ?Ť©>ΰqzé¶”>ůs®i´őh_´ž™öI[Ň8Ľń˛±»‘´Ýű˙Aw©V°Ąż~YđiúZ4°üúÚË0’ô•TéQÂ@„%A ů"RE˘µş/çŃÝĘ:˝u\̲D…~ŮÓ;Ě›#L”T3¦Î“ŤoŁöŃ ÄČž "m^!­ ·lřŹKŤp0¸ĚŢ÷ańWëú•3«‚ÔŻ¸‹â ăëäó}\’•üŰ!źn4Ççdu¤µ+‹E)ź/„D‚[ŤŻÚtô±Va˘® ĚS&ę$<”śHÍXµE6 Đ´îÜaŻ˘C±ô¨4őÍ\ž¶Ľ3É}fźŤ˘őר4a6VIě#`AÂ;4U˝[Š'C»Ş§M8úpe‰ü¦?™H–€îÁ«ăaÖXíŐQ&k&’ťÓoN×Ě7}Uy†®Aŕ`a= ŇtŢ˝#¶5Nű.ąŔŮd8?,Ě+2Ë-g:CłNV€ˇµBn×2ŮHp=*çVRŠç´kü Ü“ ¸žĽc›Ôo8«CVŘ%c,ä jK˛÷v&¬łfY­“u]˘‡†×ó4-ŮGq[7ŚÍ\Ď /VČĚí[ě¸Db‡ĺďmę»ÓSr 2Ć“ŤłôQ{Ő-ĹĂŰĹţä(šť° fT ăB˝6Ü/r¶jŐWDÔ gt¬ŮY‚÷qPĹŃăŃ>Cł¦=Ü7'+Ö.>ü|,\ĺÜc Â1<Ůř~„ş†L•qjdôĎÝôUě0˛ńC»1ŕ6¬Üö2Ôm‘O= ´¤ťŐŐi›áwAMłˇaăĘb™¨âęďű’8dĘx۰é4˝~ěştm`k±ĆiŢŔľ-–mךŹKERu‡†OL§žLĺlwřÍËkpýYEO>٦RÓV˝ńgďSë†µŹ’ ŠăşÝ4Č,ŠP,¨t<Ć÷ńžr6`5#ď´6/Źd4ţí‡R»Ú;úkłĂ<˝ ę}zF¦TĹň:r*ń·ËŇceź3ʲ⤕~ÍéwßňáDjš—úĆ@Iµ¬˙.k^žxĄ†7‰k)\yőlođĎ‚4´yĘĽÖs`MdäUőű°$ż{°I¤2V •Ş/éô®ő)W;­±úu2oaD8Q8ćôĆÇX†ű‹P/‰ń)á{›.¤¶ęeüÖSOŁřtĽ—xZRľş«ŢUŞ!Ř%}{…żË ϦGôdÜwÍ µTŘŞUÂçăđ×—‘MŽ"Ź(űĽ’lMĘłăŮ,9ŚhŰíUy(»¸ëu•_/¤ëw´«ŕ„Pz ]ŞízDa6kÇá”Č´m»fşXz,{Té}$$Ç7„f‚ż`•‘ĹPeumJNŁr)ŢVíťÓÖkáogůLŽ–Żf)»Ňż•´lŤaŔAt„Ö.Űc8˙CŃîM¶ ŮJÓ+î»7ôŐÝ2’–f`ÂdÄ[ąŻŹ•kě“ʧŔâhgKńÂĆ]EuO7îy{j”ű5O+'|z^Fâ`g—+íťô<#ú@ńRűRwŢi|¶‡pˇiĘć’$űnâ*¨M‹vVäŐH€ŃËŁJ|_ýýćWa»|ăĚń¤ –ąHjgż-˛3ČřyIľÎ“ő7/ÚŠ‘ĂťÝËů5T6š˝6b›ÍşVé‘cŠ­úĘŃĚ®˝, ‹ŤÝ¤l}GŰa®ič;‡tYęi´żú´L˛wýÝrj:3F¸şüä' r4÷ά˛‰+ł˙Ő~Ľa8Ąň Á¸S#b€ż™»|Í(&r©cźb9ŃĚíĂz!L1ňä±lŘ,Úu§Ď·ŇťEĺćÝěšÓeIđĘ­Y»E“¸çrj“]iY-ÄO·#3çřC^XŘëV\g)XŠçă·RBr´ä‚09aýS ěĂ|ńtŐ®ňě§W@ěüľÜ°ŁD›b˝>7$xÄҰ=4K΂Wo ÝÎ…ĹEQÁë™ÇR ABˇ¸Ž˛UO»ďŮŠťĹďá]ŇM†źMgÝp–l$÷!”е’m2Ő1čÓ*´é…¦‰ u”IśdUT˝W÷8hňűBQ™~ §«Y:ć-†RIŁ|0Kę3ŁĽ/ŽBłéÖ”qÚO­eKBT .xŚżnó¶Ň:ö°ńpŃ—g*ÜTâ˙dęć '˙Ęî÷ ¶Č×b§ăv\{aćΊ±Oĺá#ĆAăÉÝ*¬ßsóᵲ|X«Ě‘Gł~ČŕgxAeĺ:×#˙Ě\`›Q.­µw}Ş”ţż˘ęŰÝ9‰„üŚŻ:ý¨ľŢ¸Ývä@ †~rűjaÂ$„¨µŚÝß`Ó}ńGÉ„7ĎmČ“‡ią'ČúĆšdř¦%'­Ó†úÂ=tŰc2 V/˘Í8BkĂľ‰µ!îZĽ*ÓösvÇŽjň&?yĄY’đ»•E7?Ž®ŮýťĘďVÉćîÁ$[OöeÜ—; ń%iDMv§G·-‚3ŤUUÖ.Ëő Śđ ˝B }úBőʉ8uBi<Ĺ(ŘćµmŁgXĎÁvîPZ,éÍ _ RČ‚v•Orö/¸6ôƍדé }ačLi )ýp ăLéF5¤ÎčŤ K뵤“8móĺvżË¨/ĆLď-€ţ+ĎiNĽ/#Ďź©MgŽć®·hwÂDŢĎ+U!4ěď‘ę&É5§:ń ˝±¬•Ď;dDŇ ^•X9ä_¦µ°ţ )z+@äAÍx¤.ł»fGĹq&|īԞXOőŐąÔm)äP2 ŽÔ +˙Ď&o1!‡ń„´*yF¸_pv‚Ňşş t'sŤÎŮÔ,»ŘMóSH(SFjŠ’Ë”ĘďßÂÜ…ĂÚ5ę»Çí¬tČü‡gź|˙đ2ůÁ.UA¸\¸ĐÖ†ĘfdŠKÝâ‚N†2ĘB´r§2ż°Čm7şO a¶ĘÔZ¦őî“ŃcŃ™dof©¤‚lüNzą›¸/&¤ż !yŹPĆ…qúŞěŚźó qßďţ¨˛ÜóšK.6žRČ{¸Ą-Ćv©„B%p·[ú, KPe-‚îbhţ8C‡eâĽđ[€ÁU HFÄ1R/3 Őś™ćoń'śg±®W>Ý-0ď˛ oĎÇá8@eÁAb׾Н¨ŞwJ> żĆ´7Ul„ĆÜé…7ĺu÷&k6'ÖË;”Ńă[MpĹřRż q­ą<Ým×Ę÷w˘ÍłďŹĘđýpvä¤Á=°Ď¨YpÂp7ö™ß¶ťxş}ÓŇ?vÁ=OO˙§¨Ě´ËëâM/ŇąN€ZĽÝ 9üPBËǶsç§C[yë¦/ihŞx4Âů€^ÁňĐ_`řY(lTŻîńŮ0:¸ľqÍ3Ga!ß/đEä7d»CW'˘6T÷‡ăĆâÎUv)=^@ć21‰)屋x’¬¨ß!"ů«Čö‡TťŤş5>µx+ŇxĘÚmľ/ňßd·EÇ9|iĂPŰŹ¨†çşá­?ôÍ?ٰUbI“Óđwˇ´‚`Ú`;ÇáŠđµIžrRGÂÖÁOꌭS'ďýŇc^"Č2)ĆŤŻ¸}<ůiî˛(Ô!xřőR(ú1Í[‘—×”űÚ|SUö‹ĚíuzřčľűŠćň?şĎŇŔáń†!Á/ pÔC€łŁD°m°3‹(Ş\Dö4˙ݶ~'ˡ™ŕ¬oC§užyŐĎL1­Ŕ‹˝Đŕ‘µ‹§Ń5öírޤvŁc†-%x ĂnÖ4óexĐďqvT˘ćřj´ă¸[ÁâÚčr6ť®ź˛Ę3 žv™™ 7«Śŕ:Ě×±ú·ÜuŮu&âi˝ĐcšwäNţÖ¶ĹÝ%„Â=śvM€ă±F‰ÚzžŤ’·3R>Y°1Ö ÖÔ>µĘ1űp¶Ă÷ ÔËĆŻ|WĐ-’Ş‘ˇ-ź\Iĺ=µłávéLň1ř¨¤ŞŢýߦŔšâťŘyđDq K?ç“{d,P” K^úľ®më±×źvŞłsŢUÜŁë ®q©EH _ µ]Q0En 2˛§yČ[*s[ oxIŇjg_méŔ¬uéXv¦ósĘ6ó# ®jhçVlf‡˘áM˙áŃĂÂ!šˇł.LT\„zG|vöë {I}˘é7DÝaĚŇô’ńîëś’u.j^Pk´ýűîBüŕkŐĘFZ±Ě18T#k97Ç+UČ*®Ź[ ¦öáçu(SscA<ţzK†[YŻ…Ť±!™ś‰bnhĹń8-G&)飏š uyţó4ýąŹ!őĄuhčîŻ7hîĚĂ+ľ©>ÚĄ$˝§Ę¬†ÁÜJÜĎ›M¸v·!n.făk­ŤČ"}sLVËŐĹÎXĎź¶h3DG%›F.ÍĂ'v8–J–”™ŕë©čmOk¸9I VĄđ#kŢU–{dÝ'čîć/–DNŕí,pÚăĹ;Ň ^u ”"‘jĂV“™ş‹ ąýĐmißŮ#nL'’<đµŞOxł2¬ř:łU›Eú­•v ÔŘŕA6LřÔZ8#ú†2=]ěÜŔMV8gř®m§)eoĂ^+äa‹bKą§181eňs:·ďMx Šî⡤zµŤ[µ~…üš›Y·q˘ž÷ýXűdČé}ÚGü¬ąâ?“žŤ\4uWaĘąúŮ@9ů{~,0ă©ËC˙ nwÉ2žËŠ©Í¬ť—é”ŇĎ™cFʟƇcŰSúVbĎ #żňFŁzü7Éôi‚+iř€{ăpĚ…"_0^}s\pR)ÜhŁ+˙{ęĹ-őň —ĽH† ě•’M—{ď-Ź:8€Ł˛«ŹÂ'¶ ›¤áÜIΞżËxaí L°˝)ĽĂĆ©µ<Ľä–©i`ËKjówvuN—'áÚîý9"xŞĎδkL˙zzL8ŕŔĘŁţü0µ¶±Š€ë€„÷;2ő‹‘¨ĎÖŽ…5‹ jKłOIřęFv<€1ÍQŐ1p=„ř˙D&j ˙Űn•’?Ř’Ď~ůw–«áWîęäSĎGăt` ťŰÂTű›íg—%ťsŰżKü3+ŮÎ!EÍÖľ(D»¸ĆEH:7ŢWďżMÖ?bTŮ.f ňw%Dµ aś­=,·™[ gKń†ţu‘ŘŐK+ążżU°>IŻňωëSxňręăR¦UŚ*Ś(Ź[ rúh®ĺÚ#7dÓ Ń‚­"M#/cÓŕźŰâ„ÄąŻźW„ô˘x¦Xć'ĚÇŹĹťâ^˝ä˛ĐŤËž©×$uCÍeÚĽiś{ŘöAŚfť \7>ŐŚíĚ Âůŕ×ôőé~'´2žYŇýŞ7tňÄŇ荖‘Ä!OĎĚ;Ą×îRg榡˘żę×xRÄÜ!Üś|sqłčs b˛ű0÷h–bfr‰áĺ•+‘NÖŚ$´©A8˝MhŃĺ´Ôź]'ÂŽŢJžźó•U/{őŐb›P 5fŔ„a‰sĘŇS.ÉěU˘ńiëőÂ%4j]6öśŚ[¸¨ˇ˙^ÂěN„¶0ţÇ}˝Ĺ}ă&Oč^Ůué6:Ü?ř8§ŁŤ;ŃÝŮyüxĚÉ’ +Hžéü6q‚żÜś×ňĽđ棞G” IµĄ_ˇa¤«šµ˛lĐýx*“"Žţ:7ö»iý‡Í”í.<‹tŔmý\·fĂONÇU2†$–e9 ‘·] Š-řݧ>XÓJćÚx¤‘+©Ţű>°Ři»‘.Ŕ8›ŐO3uŰČĘ˝Ł[`^•LŮ×”ľËÔup˝Sa@îsZĐWë_|–ş˘ü†Fk!Q Qgł®˝žü>9Ěy˵E©Ę]˘ß†ćěĺąh‹šÜ'1‚lnŕDLÖ˛ (Ç˙·±§‚ť~éurv9iŘ%˘F@ ŕý)ߤg2vř2.DZuNT´,4;9@ íĽëźîÁ_oAţ¦cAlÄ]ĹHö‰źRĆΉÔ[íř|;Ir űů|kuĹň„J¦ŐŢ)ĆÉüĺB„üÉŰŤŻÍš™Ó9lq,]9ĘsĂÁ˛÷¤ÄGě0žř_Ť¸XŻä¸‡Ř í)¦Uo·»Š“îĺż–k˝wqćF ťłú@sĚ2™v;ÍgőkŔK_ś ^Řsîő%¸>ÍÝ×kJwÍĐi ]«VŕH.·¦üa‘Hfr,Ô…Ă9ÇŽŮ]˛˛ŽD6o&ż?ŚcźÁť·xíV˙f)Ó|T±ľÚĆNt¤’ _~5x ĺŃşĐÚG Oi!\.SOĐüćXp'őÚ2ňŔ°ě·!ćWýód|2ŢŻ9“¸»‰XÎ:ÓňĎ _#é …‚[\†}¸ĹxĹ8cĹß„Ĺ1şAň*E«}XĂ‹‹a^šĺ.׍ŘMWWü‘*ˇă/A'DUÔtPúQׇYmg+`Ä‘8T}gtěšČ/릩yÉ ‘°ń&éHu>3dÍž˝Ś;˙„¤ľ^HEľŹ¤!î—/&ôŚuö¨µĽĽ7c´ ˝čŃu¬ ·MűßUČpiů ßçÜ1„üűC%-„R'˝GPZAŐ"P*?Čw°Vż|¤DÄJC ‹Ěh}ý•bŹ<ä“4fşV6ťyÖ`ş0^žYžş\ú‰§‘?¬[gŐŐ-†c©ŐJű«ĽFPş×‰uixeu>Tćú«/!ďóiQ1©ˇßËůof»Ő%ŽHÇë÷=EJhYˇęîqÉ–)c• !qšDhť–Pä5g|‰§2ś“Ů2”K€nCŠú5s %HD¶PŰßwółĽ '?#čkŤ ň‘ÖŇuŰëđŞ”,”ĆPŃoCđd†őůł`'lĹ‘ôé)ÓvK¤8ě=@ Ű·ęBnw4{,A;Óç٬ýŇyY5‹ ˘,¤ Ŕ,čĐĘń"ůU+ř؆ٛ­¤Ş 'Ń,0ľi–ßÉ{(§çWţşcő3_#‚<@•éɊߚűÜz¤,Xsż“ń:X˝™Ą6¦łyť:Îâű842é)ë»5–,ńĆ&Ú®‡oŘ“čńÉRŮo×Ěx©-kŮ‚*†ÍN§ĹµćS6÷‹ń1š»Ňkďďâ»Ě©¶L›DX4ziÍłK‚ßËěsŞą˙#H‘5SśĐpü›|ę^†Uď1˙Öó#ŐjÍĚ2bfĐĎă@’¦KHhő`­)Q¬mfm$Élq?*X»Ă÷IO «ń8É€k)ĺJvD ŠWJY<ĄJGoÂN!O^X`©V“ý2ţÎk~O$:»AĂĚѵ0D* }3÷3FF]DŘ˝foí9 i̤3t o­ěńÔ6 ĚG›hU¶¶Q‹uú/č?ýÂŚ4äÜů¬žŘ5Ż‚Ą®§k““«sü:-Â%§˙kś·†µ:9c/tš=îf}ă­•ŚAh(ÁX´ńTŤrŁt§ÁăN2[â~Yż¬©ÁęÔw-Řvj˙˘˙Ε;Ë?u"pşŕ–lLą®8/…F-Ý(`dťJcĎÓIł‚'¸7©Ů`‚"Iĵżř8O“Ďž|OŐ6÷ź¬Ů|= Cć±ŰBa`öűĂÉ6QUłµw)ĄFýˇŘĄ(n«?ĂkQeŻ5«čŻT%@-ńÄŁ(˙H Ă9Mî“Ëi$ä3ěűś"~…ľf a§Ě=*ń- _Ö$‰Hnt:xPŇK8éÓc-ßťîQ?=úeŹÄäK/L$ZöŞv{ĂűnôFňß}«ň±_çVéob.Ëîě88éM9Ůď™kś°¶Kv˙SbmwzÚcĽ^˘Ű5_ôx=)łlÜĹClVůj.®˘ţ'Łfí0§ŕ· wë΄څÉ×V–¸˝ŇŠZN Đ&`\´Ú1 ęm|ŕ‹ŠBÝ)j‰ŘUŁókŢs"2n»ŕÖ(v D\üăě6Ajźľ0C e˝WĄ©¨#‘śňˇdFҸ±no¶( ú•ä·. 7’ţŘÇ5î–BOdš¶đl¤­OčăCź• ’Đ5)Ż©‘l¬Ý]Ŕ2]Ás’™ă‘»nB˝%ę;v´¤Vó Ś""_wšmBS“ă@CÓ_çŮbÜäđ=§,—Źçňď{Îťi`{5ô}ĚÔ»ăě LqĆßbĂŢť 43«{Î XoIąől]”Uö°¬+jV’nĘĺdG@©›ňĘUÜƸK܇řeoЉ»´BŘĐuü¬VľŠ”cáĚ­fźÖliÁ…Ě+ţ.OłŰeF]·v ŮŻĐó©KědžţďçżeŐ˛WKŮm)ú0Y!ICçó~á#üÖuí™5Ę‹`ě#˛ë’ĎGüß aćăS:‡Če˙Żę"äśÚ¨ďÇ\i©*šä$ś{J!›Ě6ČjËÖ›gˇľç%hJrÍíŇyËĆ–˙†|a{n[ÎO©źMÇ€®«$8k"Ŕ‰$ťnÉSŕ_ňS¦ĹůíůW”hÉÔ—«ęŃ U4ZIÇ××AD\ť+Vp ĚĚĺ#1[)’jáć7Űŕ+‚ErÉ=v^âý˘˝Ý#€¤Ëj˘]gŞý1éŢjěŃő9±ŃÇöŕ€T5±ť1™řć‡üS4đâK<Ňâ“NÜ9‰38f%ë@ ‡öwZâq±@QW‚íŢ!Îyklg đ…zĘ›ŽÎpýđ‘ó$± ±«óé·§?™“÷—řďâ8rXĎ l?îˇëŹ„ż2 ’\l=L vŻ=¤¸ÁÖ©1‚°ŢŰjĘHÔ+DíÓęŮŁËn9 4“«mL…Ę„žöÔYç"5 úuŰÁäňŔ±î˙%Ćĺ!>§ż:"(6}bŢt…D›b8j™ěp_ÂăBwĘ3aÖZ­ťĽ¬OóäľQŮŹ!‰°řžkĺŞ9N›ČÖŐ"ż†f2ćq7h“ô©Â/E™Ŕ;ëK0Ěg-X”Ńa7BąÁ775{—öŘ}őˇßRś~$¨[Xć }áFţ–us™żď·ß°+ÚŮ»’»Ä˛™M'˝§iL{'>őH Öýr+ ’re9ËŃźµ¸3ů»˛ĄŐ4%«U‘FűX|Ó6ś›L´T?W/i*EąśĎa«xRUL ˇŽÖ žbëýÓl4˙ŻÍ7\'ÇD6‘_„¸ŞMäNГǪSÁ]žÜĽkŔŮĎ!šf^Ť—îů§©§ ěz8çÎt±ŘąÎu ­`żŽip8K±˙Ëă™ĹíĽřŇŃĚ8yM@\~3Ź/ÄpUK±eY0÷f´×W|UŠÁ_Üş©ŕ˝mO ¬0%8±…Őb€=Ô׬ɡ|5jV‚7cŕNL]ăÂ^ĚTÉ•¦h_¶¤­1:Ř !}ě#mŰži’… PŰÓ„Đx‡uhWş6ŕˇK¦ßET[Ů”’}nă–GWJ«żô`âEKx˝g뼪PE¨ Ł/$ÄG›9Nčp)MOp›tźÁ…˙Žäó-*K¶ÂkdÝş6[ďR§{Ż6ŘĎCLlPoË\ężôăăßJ-ëë.¬Űµ#-Q jfďa7áÎA Š3B1®Âî’éUEŽÓ+>ÜŁ'1UŕŕK‚AOJ~Gu]Óq»^ŐŤ¶ůË]‹fąŞóÖWt…x ůu‘>Nş?Aj$™©]mśD>§˙;xBZčÄË1÷SYއm†F„.Ě.É "ۇ1ä9D5´L/Źú(ëbçđČíĹĹ­÷Őo˝» 7m,®`_çńO¦t-]™~Ý×MČą’~M‰ćdÖ m÷LďÜs®É"ŔĎ-göČI°ŢáˇÝu#¬NhsUŁ==v&Ű|?wqÄ [Çć; ­č)lJüŔĹňwţÝ÷.FŹnqf)N”c; hž‹IJ >»?kP[łzČź&W¦.„˙H×<ŢTěź¶[˝s/Ou.€”^hh Ĺ=ŁÜňĎ˝ Řę=˛vŔüS„ĚęĹoĎ)ąĆĄuÉ›ŇwđÆ3Ńn4!±ĚçţĐziyú\éţhLVvĽŕŐĽ\;î~V*éÚŕ&żDByVĎ]-Ň:\ćř˝×«hË"}Ýşź9&ëŔŃĄć ‡i˙?X‡tqş0úb¨™ćŘ»Ki¤í5đću ŮŠŽ0"“°! ­ßÍßéĽMzőĚ×’qQ4 ˝#”M3 •Ĺ-ŮZăíBHGxt¦·čOňçă')kžŇ"V3b„ŘĎÍĐaxÍa"X5şş˝[ŤëkNRÔ łYtŞ\läV>rúXĘĂ>ÜŃř=6Ş]N|ĄT!j›á ‰ç´ę'ąó]Ô;DpâK¬Ť©P꼱ŚäĘą±íuˇ!—Ű7v>Űë\mHÝă$í<Â5®*{Š8<äé]"űĆĎÚÜrZHYÉ‚S:ÝxÝ/DćwŤ)&CXk@NqćRCŹó Fę!śąJxö‘ŕMăRLÄŕN%K ”/É"˝YE™9D5OóZjB%ęsŘeâ[¨ID¤®§;§-5%UîňÂŐ˙”.*+’2v9Äşµ9ˇx¶.¤vîB3—U—c îÍÁŤ‰C\e^Ü ŃÖC6y 0u¨2u‚YŇěźL$kń}ܲ¨eҞIJykQűß{O7íŞíäpčßÔNŔŁŻ3J{şŞúéWP™…í˙ąř˝öý(leć5&7ť" ¤?.8s˘đkI Ó>vď{߸/Ős:E.Eţą]mb×kÜxŤÍŻ0sŞ?Ť<ŁÓĘ^ŰíPĎů{1|¨|vüQÂ3y\”­^î°îńUÂ\s| ĘésÎC Fđ0óŢ—»NäÜoéĹ% Ór×"7"%‚»m‹?XăŽ4°aDÝjőÝWHň;ŃŚŘőj[»Ě{`ŰđařbGLĹc™Ú ď”GńWŠ dYŰĐéŢIvŚk«—ą“&ۨÍX4ËjĆ /¨GqI-Ía…–%f×ĂU,{Ëů- ź&+'7Łëş‰K=q ǵ"GZŞŽHí;U§•©áćŕ™Ô>Ńofßtýźż¤›KŻ&·a¶I@®n«§AD« Ż·Ź˙šAů )™Ť™‰Ó2E«Sśő«»| ĺć@b9-*˝ÓŢ«‹bĄ\ďš/ ¦1$gP9–¬đ.}Ň쯎s:ÔV. bč ~J¸ľ«˘&꙾Jâ\c ă+9 4Qőßkě"ć|‹Ľ§Mśv%ň›ĺXÁ]ó®’yńf2xŽüę» QQ+‡` {Âě? -Äś’q0đ`Ĺ“”‹ča¤źŞ{ÂÓ«$kC4Ô:B,¦’ŢYČ…EćDaÍëĚE6@‹?潼ř7łµA˰7/Ež@0"#öŕɰX¸ľ˘G\ijٷ‰¶ž°˝{ĂŹP , ÷ ÷â9˝˝">#âóa“3’Đ2y^Kű zKµé HłOˇŚ.Síp}[kŐý±«wໜżűˇ!|Iö»Ŕ»VzŘsXÉÝËö ű0˝J$:c’k'p[´3đŻÔÉ?TšŢŞGśŽ> ĆánoâeŻŰ$ĘĺZţ˛Xo u¤5w_¤čĆ(ĹbÍAa@ /ô3'Ě̇°ż˝:`ofÜ Ţ;î» }˝âźÖ§XF>Ý(>Ľš˛hXSô#ߨFéÂvě†Bó/;Ő(XŤÓ:¦¦NĂ˙¨•‘Ňßq;i=,]űíT@nĎëô5¸t𱓂Ôw¦}¨EÍ+%4ŠB2DĽ…ăS›jŃB13ąę†2‹ĺÂ+ýE üO,}v×6ü}Ç“”3P––/Z階kk÷°Y&iŽZŠ([8"ŁÄŔsěv"3™fÓŰkéÉyíÚĚűĘŢXAΰۧ6ůŤúhÜžćÔß< K(JkîUlqsµ$čű™> Żô €±sʡEwţo5Ö§dc7GţM!Îmmz¸eżŞo!ަ ]ÂľŰë°•_”×ÇP@öµ٧Š+řrôÍq:b>3yÇX©*ĺ4f˝¦•XřZŢńóéo°‚ÖĚ~˘\v ś0ĺYČÄç+S=í>‘ Ô4>¦7áűźĺĎđŽKIíĹĹßüľ¦DDŢ$Ŕ ŐŘ y­zńq'îwŇ^Kč:ctŽŐi]Ž.MQđ.5˙Ë•?°ă0"’žpĽ=÷5Ck*Ţ;Ak/ęxaĂS!AŚ˙#Śń´HŃqS.űłb’@»´ă‚'{&U=xYmDŇŐ!źgRÚ‹F/Ą/gíq î=7ąˇi«ú^¨!?ţfŕ9ĽĐ<µ4Â<đ>.Tť©˛ţČW5M.@»Ś˝‹ň¶Űú’Î+Ô7ůÄ Ţlň‰Ő˘ęW…ŕ/ä\[seú–™GMűawC‹Ą{vc±ďÎ}}BŔšŐá­t2Cźí,”´€¨Ž¦×đĽŹôűŇy÷' q7­{ÂŔĆččx 4żKň@šöއ8W źE…ębD„ôt,KâŹôEWůboËśÇ0­ŚőÉĚN1»ÄsGTm^śŇÄĽîw©řüEäş­ţńBj Ŕýn„oď+ÓÎÄKnB,=Śä¦˝ü٦kP×č÷ăď»ô-Őú¨¦xĽ ̨ŘŔšůáÁgnqn±ˇ\ŞáW“Ąwv'ˇľ]Óy콦šN¦H™‰ËľX÷<ö¤Ç$ŤlM_Á’űĚóßݽըŹŘĆ’MôŢĄqÇń{ŹŹŽ˙Ź“†˛´ş…ś”~«ő(ͧC0îâ»˙¨źMťůôŔ‹ř4đżŚvQáw• G~M¶D“=‘e–sřç®ÚŠ$áńuNš!ś0đfÚAÄ-)w+ľ±Ěú‹ßîgëRí6&Źđ¬Ţ˘oű¸ýĄĹ=>%Ú"űAűÎÉeŮÍěbűđő2ĽúŔL Ň5)˘ľ9˝PtŞD q=ÔS0ńТ ŚźJ˛ §ş.!/ˇŃ˛‚6ÂÜx2)—źęmŚŤÄx„ţÜWBayŘ›lÖŇNůÜ-[¬Ţv€Ó”ŽřÁ®/äÎěĚď3°ęÁ±˝•Jó-(šŃBWču„Ľš®†ĺáÖTôĎeÖeím ţ÷“›TđŽOß µŞĂ>ńVŐwuˇújŃÇšdŚ[–Ô¦FőůlżN›ĘzéĎĺ—7ŐŇ!˙X,Şź?óWě7ďĘľTÖ2`  ´öŽ®Ů¦·ÄŚŽ9ËPĹąÁ†gWwâ“XĐŢđÁ~ĎqćZüw´™QbWńRaDcS~)­†ÄlŃ‘3ŽUć%Jěf+ę]RÎĹÍW ťT¸ú ŮU  NKsß?ŘÝęĎl¤eĹ.tŐ쇪ŐY]‹ř¬µŰŹ“™Iç«…MŃ~źá})Ę<1AçWHŕçEZ||hżŠałuş90Íi& 5S €Z[ŕ±Ý'âŮlvÍqďkľe”î©y \vvR°z°µm˘m1Ň@}އĹ<¨;ËŇ4/3?8˙¬‡_ťĎŇw'ÍH,€«Ľb9´’úżú]hHtź‡LĄ,Ąü4řĚ ‚ÚjrQ\Ç k¤éŠ™…ńŽ&3|ůů W;®ľëVr5Şî·ĎtĂŞtĂ­n_3řZŞÚC`°ę@‚× Ő׳$ą(qé§"‘…1÷ßÚÇuú,zŚČ`śC‘ŔńZ$&¦RŁĂ¦Sq×őż Ő>x~Z ă#Ŕ1ä–"ř7hç*Aú;{ĺx ŚňŹŃĂy°T§ąŹHyýzľŚżlQ7ŞC'r†Ę›oî v!.jTé+éÝZbź*¸ózTľGo\Ď­ #¤€ |ů8ó ÷Ĺ!Ů+1¦ČÍ,6'Q:ź1#IżAV(Ů™5(IťÎnaî}Ä+×ZŮ\ű˙:»aí ® ăĽ^ĂzuĽEg÷˙10:jYˇFž‰é¦s#nymű ĚD ˇÇĺî,hdśJ?}Őë-ř‹?˰I0ˇWĐľň±ˇ‘‘EwłúVӬݛ”éć\üă‚)?1Ć~6OĽuyÄm·lń+Ő~ÝAAŤORÔ0% ŮߎP†ü׫öÓBqžB\±•w@ Z]_$òŐÓĆ$§r*‡§ĺŮ öZJ=äy‡'Źö°IasY đ÷ÖçAßX·’ŹčŘÇy(Łí˙óŞŻE=vg¬ŕsÝ­×aÚ¨ť“ňo¨Ľ Í»¨ ¤<Đ ť–&Ť…äBm—¤X“¶>ůZNŔüÇ÷·Ë›—Ľ>Żáňť®Â§˛‡7\™kŔ»M‰ŹîĂá•ÔCf’á*…˛C]¸l¤zňŐ´Ú„ŁCPăŞWŮiVĺ"\ÉQÖ0ľ€Âł: Ŕpô'=¤p%\¶ö zĚ›Uęô1k4=]Kŕor„7DÂĘ©°,ś{üúDLG§0"1őXú?'~=ş$+Ě7!ł›T'n9ĹÁq|_ł>ŚCŠ \}†Í¤łž°_fÄŮ7«˛Ĺq¬Í˝źÁ!5Á•ęABő튣$X{»ČdĆ“­Â?…üsŇç‚LíH*M)ýŞVsŃ´ŤÔôC¶ëćxŽweäŁwňo'Pg; A°Ě®¸7Ę~…“UšęĐ'ˇ©:Ć,.}¦j˘)Ăt*`DÓÂłŔÎźKS˝1íôŠ®:QxBCź¶FkăÍ5q:Ęă扫JÎÝ!wdBŘăčk©őC°îŠ˝ĺ™iťCí ¸vâ<řZîŠÚío ľOF Äôu˝±O^ Âń¶ăó&!MîÄĄ>ިáéí…;†ŻqbQ±Ő–WÓ4Ż«…Wă‰&vŚńE_đ¬ĚSęČc25H`lôPÎý'çţ‘ZÔn3.ČNÓ ·®F¸T¨C™Qěc›qú<ş–ŞŤ-Ž>常áÄZ Ę2›˛ŹŐľôťĹâ¤ĂLűh¬É(5@WäoFĘÓ-9|g!Hbµ%ĘÉ™ÝěčᵬďlŐ…ź"@‚“Č«˙2|Ű,÷¦ú ôöëXŮLÔ$…7Ů éť(lýUj#kq@ĆĐwOZ.>ÂT‹| >"ŃM$dă„Sú/±Č {Ľ-8j{‹L˙ő·‰“Č1x˙‰ěqOşz.¨URX€8$aoă€P>ś(ű™Q›Sq'qßđ”S‰Çšł¸ đ ŮßÔćóT 0mꏩ7PvąYű±ňžn»”#)9jMű_ţŇ_ë÷M‚ŞmL^uš´ę :×˝S|:H6 vŻ&d$Ď€đ*TʍŔü„!‰‹´ N ٤s¦cĄžĐXu!Ę źű'Ăűţ`‘«uytńŹßäÉĽrX‰™żz> pq‡–Ś”Űoü1ĺʬKż5ŐjÍ}Ü{ćŠG@VÔ´unϸô]W]?7ąŔěä4aŐhM]<­{˛k.d¶‹úiî¨îç~Ďß=˙ ľŚ›‘^–C«‚@˘7´żÔ…j?Xôża‹TŚůUÍá‹8YAKqëę1uť‡t«¤˛ĎÎäˇEĄŮ·Ž–o¸cÝ´ë7·BN˛:F»¬Âĺ)쇉WĄôÂ/uĽu>l®źÖÂR“Ś ąóŤĐhŤé !ˇi«ŽGn÷ĎąýÍĐxZńŕs S‰S^"„ŠcĐ" (xźÍŽi᢬vÓČo3ťĄă†§čißâ–Ă2ž ŢUEąđJ›8ąŕK?0óäöžjš‚óĘš5˙¨;а´mh‚Jűמ-K|ůV$°RL%뉷%†ťo”˛ľµ¶]Ű”v,úş,;&§IÖě\ˇ•ŕQ]c×LJ˘|¸5•Tâţ~Ďxˇŕ±™–-ÜËÁ>eîJţË\ŞÉVd_ú‹hşu†˛˙ĘĐ<6Eăó0"'ó®zoä°óvűIM>Ôr06ąŻ×ök®•«—%?ŕF­ ™Ł(łş-KČai(ÁA›ęIȦu“‹ZădŚ}u=ok0Dô+F>µűÝB,ž¬–l sM®Y±ę¨`“)•aÉ+1Rxž|’á!Żë®µëoU¦żW3ÉT4*° yŠ8u8KvĎză:Ť3ŐdĽ´ŁÂĂŃűľŃF@î“ ÇlhÁćmŢŤM§b4ŕq‹ŰŢĘf†˛93¨ýÜ`Ž‘ş=šť=˘|=wXIÖ`«N«@äČAg<žpë3tßş<Ş ĂHô(™K^·FÄ:Ę!cŐ»1Ş'ťšMu^±Ö¸vš\«nä]Ľ"IŹ$jç¬í÷ą4˙\d鉧†Źoŕ/-śJşý~?wC¤¬ŕ()Ńh^[ÓeNŠ– žZ‹Oüţ-$IA/B˘ř‘vă ˘7ĆB˙IŘGŰ?­FD: [„7‹ŞüKÎŘ-ĺÁO|íC‰2ö,ŕÖ´1†·'ôţëÂŤŽĺů!IĐTĘ ŹÄy“V3\Îâܦk;OąkžZNFmަž8„Éf ţ*Ŕ±ž©¨Z>pSµę2p4´]ńTôŠIQâ—łřŁódý+po‰«”KňëÔyĄńěx ĆD™Ń9·XÉżÇő<`\‚ÚŮ;Ś.jţĎŇ`D_*5EZŰŃË»Iţ4ÇRôE™řsÔěÁŃ8i’$ŻpĄ'[ö¸Ű ÔE$°â`ľĆ>Ý·Ž8:~śT°}ţ}b¬Ü€ä,Ą  ÍGą%ćsIáäó7†şž¦C®^» ŮfÜŤŞű?kixž›Ż˛8FHú˛IşW‚ąÝf ýÁÖ´ćüÉ mh±˙E#0™"vw>ôçŞ%ďFAśá:쩣wĐ#¸+sĘ|µČ¨Ł“Iö9µrFŘź`č–ÉŽń±×îUŇ}ivfČJ¸¶/bó´†'Ú”ţgXˇŕ“eŠK›ë —ś¬îJ vx}n!mĺí–2ˇ™®Đ»{˘ˇĄGşšŰ*ťMb包@)¬hŁ}őĄé\ż '.âO_iĚ-c/6¬2 ކďˇAç_ţťĽ÷Vb©ĹFw±t¸ř >ˇW+†T ×‘!]ĘŠ&ě/6`«ŕçĐ ×F{©Ť†…lŘnŻ›Ĺź—~N=+DÖᢆýý'ČĽHâ]"ÔŰWF zQ,«ă˙Đß'iśé/ŮĆŚLę»«Ű R˝°UĽž Î2Ö[ ˝b­%K:xT’ýĐÖäíČx;”{…ń÷9˘eoËvń¨Q¤:éÖ:‰ţ‡¶Â?ě×IfQhb|{{óRz„„×˝.ÓßI1,6&މĽ2[ôOŤ@ŃŘĹÍł\ô ‡Hąćçe¸¤ĘÁkĺăK9¸rµŕőţ(ř.ÓCĐ37äSŠY?Zł"Űí±ëBX5˙HťŐ3ˇWŐv“@ˇbSżD¸żÚ Á_;“ 5˛+ŢóČě‡írgsůĎ~lJpü8[»WL˘Çn›˝‹ ›Dđ*5]d‘+ ňˇĚ‰4źD¸Ž˛)…íf 7i¶C/<%·ŢI»–ă C}O mĆiD“ĘTĐŹŤ!ÉKž‡7˝µ$’ ¤~¬·SFDřHD<ńľŮ©ű§í‘QóNĺ)ĽlÎlĂ.{bČŸ"ń*VŠW¸gC‡éLzńče]¤Î,çx§ýľ\ą9oĐÎ0Jőcţ:)™©śbL‘ĐćÜPú…占g›ŰúNѡ¸Ô…˙ÓPăt‹…–™dŠÇĽZ•ĆM"0vvíbzY+,\…$w—;ŠůΠźâ!#``:R‡ŕóAŢ5ď’“ýýh‚!ËČŐ7]`]#Ý’ś7źđÓtÉ}<5:…Ś˛ÄŽóůC$˝%řs÷lgĽŽU5ľĚĄóYäGŃ7‘"ĐlŕJţ;ŤŞ˙>s3Á‰–48C’őĽWö'' Dpg‚śß_ôŢz$ľĘ|ľÎčÖ}‘›Xč`eąk°Vä{ďźiůĎş»‡ÔŘ'§pŢYęń°´MĆČ™u*ŇÚ5Šk5dhIcľ żęNĂú›ż»Ż±"ťa^ ¤ĎřÇp\Ł «˛ÔkĆřФ@5jđipT’Ž2ňd“–—>2ź}…38®jÉe‡ˇ†Ö×˝¶r4­‡ß …ٍŽjú—.¦Ó Gć»…* e—Ú«:{öĺľÄȶrťřŮ9‡“ ľčÓÇśÖ ¬Ů-ýa5ôÍQě“ř’aôÉ>˙J›ŹE›9î-B nÁ4l˙dÇxí<=U0Ő6.žÍ'ŚaKbaeT«fM ¨˘•ő|Y™`XĹ@]ÔÓ»^ż—l'-Vk˘jÇšŁ *áó2–ë­ź禢Ő=đę…•;g r¶ČVŰĽĺĺ_•* pąëEwęŠv¬ž>ÔˇRč1˙đ´=¬$&˙ôŢżgTg˙ ÚO[išyŽl¬bhÜĐ!¬ 35ŤSŽ<őlڤ¨p•h˙] ­±79z߆§¬LGÄî˛üKĐ"›=íjÖ Ć˝\)·;lÚ“/ĽářŔlŘeS×±ińśřąľ´Jńż­EżOŠĺX3fT«K‘@ť?wĂüiËU†ŽĺP׺í3D©·ťaŠĘGT6¸ŕ[ ŞÓťë¸×¤Ts<˙ĎU5ż¤żZ•ü·Ţ~íjŚŇaQ. i KFĚůkË3r¸1‰¸ŢŻ&üčĐçnD›ąJ5ůßëDQ2ő쵿ZéŐÂŢ‚ Mt—"– h«çRcéżÔƸ Żáe#áW¨«Ň‡ĹeŽŔ×˝(×ŰŔţŃ śś©@=ô!Łů:ŇňóŞÓĎl€!űśĺô[őmegľÇ—…lo^•Ft@đćn$+ f[2"Şę|Ž7–ąŞĚo箑A·*{fR#0%uóHFű°@÷Ś“a{FCŃUĘ˙®ě‡t> ÷źş!Ó"ĂTčß:m÷út* \1săé9ÚĄ5łô6Wž—§~géĂVńBâÝ÷ ń2Jó7] pťEŔş@Oδ•ôĺŔěÉ•ýj‰Ď XśŚoMEΨâúë!nČÉŞÁ)ş«Mb•]Đüjb?Ç’›ą|ţwBä&Č‹ É?Ë‘MúĂő5ČÜpŤ˝!O Ĺ :Q…ŻôÂKTuGąLŤ§O?s`{tu+ëč8ÍJAJZBiĐzf‘°/F×ýq[‰Í§ýĚCă¸ĘÎoÚCî WÜ‹Öăźö.ÇĺfR‘Ö+öl ”±˘§8ćĎNŁýĄ„{_%HOÂŐű±4\ĄzĎĹlô˛A#Á4ż/†Ł»łÓ±>Ŕ±®I@čŠ=ť˘K_™)lpc1q]µŚFÄTHźĚ8úŚ0n·ZÄÎltóh¶!?P¶Őn3*®ľ'|şÜwú~˘paôÁd%O¤NRŮÉüJOMď-;äďZ‹†ú8-•:Ë›5v,Kđ(Ŕ˝{FE™t4XVń}µµÓćIŇţkUÖYĹźÁtŤńyŮCđj¨Î‚ʍůî2"e2ŰľhžďQ!hf˝F°ŕ\|".#îJVw'î“ňÂGÉ cüUdÍV&#yqů«˛Űvž>ŤkÁYüŕIÔ‡Lv#Zu–{ćkôçě%'Â8%É’/`m–­7¨×­ˇÝc¨Ŕö4>˘,"3@ ńťŢőcmuČ>±¶¸J•ä„Ôč;Ç(Çľ»Tů—ź:öÜFü&ľŃ Ż^ˇ\’Cćb*Â[S{ŃăĘAiŚ”¶é©śŃM‘BÜŇÖLßAźsÂLńŁWA<Í^ńTŞşúU ¨ tî꿆gjľe:’¤¬˛'ď,ž'Ë…2o·|zdoJ;Ëa?5šVV˝B§ŢNÚzżĘNVŚ}´A…Ąw†ĺŠś©9qţĺÔ:S÷ תžZWÂh©¸ď °i'tÎú×čßčBe¶Lî»Č¬â{.hF`79 `ŰxĚ ă}ÎŔ3‰h˝Ł§ô¶'l{€ŁO¸Ó¬ŹVNDÁďm îoyŠ-Áp[LN*.4d"FLBőüţŐe?ĂA3׺ČLá‘QUŚ˝Ů fd…ń\ŐčC§î»h& ‹‹ů;E›¦Gş¶{_Ć‚™Ěń\smŤÜ¶3i[f­ŐµŚŞĺµŞęîź ô:nŹ>Í=Ą1OšŁ%śŘKÝ-" NˇâIóđÂئʥŹt¤ŐĐv'4ë IÓ¦żVňŇGT—ŚŘ‰ŮM„9»xł|Ĺ‹A,ҋⱧ°âZÄo˘Ešěř)(O:ÁâŤ5B%ČslÂ0ô«gĘ]}żÓ§ŰůD´ČúTmp8ý’B*|V6¦aő­l´"Ł!ŕźŰ¶Dť4-íŠ6TűCč$›Fi€Ň°Z/•“’ÍŐ^ažĽ_yßC+#ĂXĹ’őąľžňĎ©Á°‘-‚±5ŔRtŘ+Cb6íĹ×€„©÷Ĺ7XÜsI¤Ĺ‹Ż)Íë¤+†á q˘hʷ¿ބf6°fÝÂŔ WÉ1¸Íŕql'9ź5+ ť8îľ`÷đĘ5áç•äí¤>c3é‚}2ÝřÇDŤ2L’ŕ+ř€‘€S  ÷öŠ„a@¸őďą›ßP8L”PahőQť"}nďÍ S’<ä9qtud0RşFďŕŔ·)ďZ¬M!Ł[$“ŻJóĎ+K"@­CjÔ˛&ůŇ%) ˇ•͡-”çZ“%Ň´ľ3/´~&2ľ1Ąuą0bPŮÝË~¤ WQJ©ýšŠŕ¬ÝĹ<;ş8l!]⪳[ŚHżą5úź#Z‚‚„ďÉŚsiŕ9î1Ą¶•4ʦ©fÝ"q™ĘqÎ݆s‰Ţ]–·¦Žň,ô¸č\ma†°Kóŕ…üßęŹo07‡!5ůPs2ÓGŕyĆ[ÄČ'˝n­ít~»Źj0W źJŚkN„ą0&±9FŚ8ŔŤŚ\â0FRüxk˘b Ww]V=ç·Ńa}ż¨5˘x5Z]ËŔY÷—úđëtLf\^™'}]atÁž„«qČe7ťö'Só­z‚ śÓrzQ`gňţ r°TmBT|’–±˘óóÜťk·Çކ„đťţá}• ‚Şł”¤[ń©mO_ á+Ľz˛ˇľg<Ŕ,&ˇß+!ť›ÔŚYݦDbë ŽwHáЕ޻ _ŕ8ć8U7.9cërŁúĆ߉2D\_“Á_0?±v9±ú Č ¦2*ŽcÓŽ9а0Á-qę®!Ůţ‘oŻUŮ §}ÖÇp_)/쩟Sź¤ ^?4Đ9ňĺ8fąŇsčh ‹ÇtWa?‚§€_†oŔMŠ g7;|2BX©˘ÔY{@K~ *Ö Ž¦óý÷ž|…܇1*¬aë„çä‰_±*íÇ3DJm3×Ć®aÂqďĽůCiÚűŻrE»Sý»Çűεgľ­Ý2—o1čž±;i!ĆUf+šlľ…W×’,°OŤšßŃÉ÷ŠŇŔYýHeOg]·yěęňđěXÉ{Şß˙ďvś¤\ĎźŰüP‘b}JÂPꎅv†Ň3G đ+¦±vGąőŚö•=¦CžNl˛®Żţs ʇ?…ßxAôŽ˝áöÂĽâkŠUH´~ÎűPîĺŽ| ""٢ú˘× ¤•ë‡Éć{ą˝zlM¦7@Áůö%luŞÔżŮ˙ÖĚ˝&Ń «€l`ŘŐś»|řŽR=8&Ť>tńMÜîËj]ř0k`Í` ü3ŁDzn«cŮ*ŠóÔźg€× ‚z©ŐőCű[Ž;@űy^o‡OüĆT‘f,lŻĺcâ­}ţéhŞ~‘ÍöjĘ4'KçĂüŰBkŐŰôjB;Ęp™ß?©‘]Čýwʰ6_–† Pęąd¶]đÚĽ‹5·‚Y{_1ŢňýÎÚµś˙śę1”KˇÝ.ŰCěWů^ÄŹdÎÇ˛Ź dłXŇËnóçŤú…m2LŹţ÷öÉo…yj=pX’ŇR /ˇýÚŔţOÁ=4MOQŐđ~Ń˝>ĽJ ©!{Őć=(¦¬y¬y‰+§C·ďjă*ཏńܬś„‰^3ě´‡cˇš‘izOi§Ŕ1çň «úř†Ů1Q)NńÝÝ•X\N© Cßc!>+FŠRżŚŰYyĘŇx«}{q”’ćś<÷ç걤›ôľĂýŕýđé\±hV[ôîi2÷g٦nF@d˘…‡ăđR~ĆŞďúO{ă{.€ő83NCx–0Źż¨7˙,bĂ•Sµ’‚± ˝P©˙Ýläü{ö#Z–,ľ=˛WOżÉ 'Ö x»ăň®şXÜ"Š{ážăÔÄ8®=Cţy SDzěV>ű ~"ťúMů^j×Mt-Ł'_ńř’ml_]3ź#tur…O6ć«&ŤvÚĶŻÝ’ńvZEľţyú`R]'h1ău4€n?°2!™KżHoű`ŔÉ1l`NšY´óŤôbúCq±ŽÉ hD—™µzYd Ůj‰_9Ď_ś#4úXCÇëŕO#Ôu5mżČY…í»B6ŠÜç žçĂÂâň9Q»Ň«tA5žz‘ký“dIúńŕJJ°ŢĺϢĘ9đŇČ{S ZÖţ?Ŕ’ (zÉLĚĄCÜőČŽ\ çđ˛H›—ÖĹvçıБٟű4kś¬"ÖăY˘ö…W‘VbžáIP.j«Ď^gb~JË1IÚ¸|Uż‹ÄĘ€RçŐĄŁ'ö÷Ű?$%Ť)놼DĆ‘Ňčl©wU a»ˇÔŔäM¨›Ć:ĆľÚÚßăyPMQŕ¬Ůô‘>*Ó Á‰©QF•B˘zRóÝťŕSĺŤ'^âÜľ¶p/čeý®ĺËB¦3-î© LTv™!W¸ľ3Î?Ó}SHb^%Zʛû^Đ}–~ňÖf„ůg%íóňŐ)y¦Ş3‰Ľô‡•ž‘ÖÇ' DąĄęźů»[ŞĐ­ý˛óʎ mgvćáóßËbqÓ1ú‰·şć ČţFiÂ0°ŁÄŐÓ}Ń,őŢőtŠĹ•=LÎţĄůhĺśr— Y0izFńaď8ďTą6Ž Ü”żWäŞ[$ɶŰ»°9žnŕ΄Đ,ňqt|ś Găt?đ§)S‡UĐ ‹®8Ü<h:9$ÂFłĄřKoä ŕAĽîp˝ÚRŃšÝA¤P㊠‡.ąfQúŰ8€Msť"oe¸Ă z±„Šżwľ[5®ŘŻBČ9ä„ŃBĺ8őß;aFţDz×gz -D”ÍÍŕšă{Şă­é¬ ß&ň¬‹´Cç´0ä?Ł#rÖ<$f{®T` ×°«ÖŔ! ŽąiPPĂŕ­7"zQ±ěµĺf˛Ą»ńťo6ŕj CRĂ?UVŚ\%‹hâň§&ÚÔ4×ĂyŚ»Ĺ4˙󇆓«*vî\äąmíÚN$™·–>ë ĂÓ{ôaąJ˝pËŁUéÇC‘DÉ.«bh:=áÁ\?—oJ)HJN´šÉäK†ĄžĎ.É"Ľî \-şŁÁ1BÎ !˛2‹ÂrÓŤ÷M»*ëŠ©Źśëqxc:˝]9~<‡K«ď#čk[H« ßĹąöä˛RjśLҧŮë­~Żţëď7ănF{"%„‹±<řQÄÓâ˛úOt†+T0NŹýh˝}ŇđX+ĄçŻ)ˇl3¬X^r'…„đ‡ÄŮó1»Š«‚DtcD#\vÇhe*‚¸_Eţ0®AŇcÔ©ŚµZ™FßWcVĄéFş¶xPIZ:~”†îöŘ۶UΊŤžf?yţłw›L`nĚ‹ §–‹¶Q-C‹s˘ ’pFl]ěžťŕb7/ÎÔŰ ßX Rŕ“…f§CýŹhA€€čY™(%t‚Ř]Ď{rHr†GőáÔ˘ł¨QAŁű—Ň=ŻĹŚ” †}ŽľĘć¶/ŹVŚ1BxdâÓŹéT[RŁTˡ8d"Ĺ;˘nzżiÝV÷۸8­•rúp5QyNťĆ(?ě|íb±>ßa +7ëĹŕ|‰5"©'´tóÜzóç1Ů­üDETŔě‡}F+T’=3JŹ•tÍŮ·ć$GXnĎć!_Ä2Qn…¦Ľ:÷-ääóU˝\j5;5Ĺ0ŘŚ°¶˘>LYĄčxl¶Ź:W.X†(ÄO?ôyäfpŇQ)F„Äp9 Đç••˛ÓŘřźśh4y’ˇâ/‹žńą‚;ýž„ů ŽŮr$¬űµÉ×đc83ťĺćűŕ‘ş7Fiaî:ŰsľşuâŢaa¤B˙ó‘=éo]žĽsź’_:ńµřóĐô·U»IüËůi‘^䱑teEVúZµŃ&„ĎWPxćzÎmgú3łŮ‰łŢCŘ(Ô¸Y5Őäş?@ «{X™4çü•ž)l fq5OşRÚLńw•ţj= o°%na.~fj¦Jňńu™ŐGĘ*Ě˙Ąě&·˛*ˇRÁ5ëQÇÉ„·1VXźÎđĐ @Z™mŕR÷gÖOíeDcKß!°Błˇ˝'Iqú%zx(‚Źbźă˝ ްźâżwsřĽŻt#)÷ 8,¤®ŤKĄSLüĆćňţvIĎRp&jĺÜÂ@ćž) Sý,oŐő{šŞËuâMäwĘĽrn9Y?Ř%Y+‘&6ikă…S¨OĄ°HłvćÄnÓµÚóđA“ł7<{q1Cm2qdR§¶¤~8:źÍ…™“"!? €ä‚ęL˙0 ¤Hr—t”3,/€%†úo>Ťˇ­}wT—‡žę%pĹb6ŚXĹRăHéÝ›čV#Ö‘¸KúĽn‘Ô>ôăjĂäLsŮJ—©-ö9_˛ôËĺU˙an đřôü{ČGW¨ľZ.ŰŘG}v-‘Ä"Deâ×”‰ćŔf]Îr{¸ÚZ S®#?P"1Çż~gŕqŹśëO«Ú1öüŤsěóŔÓ+ďŰM3s?;ťYťqă]‘ݶ0súşť;řöpú¬żŁLb-ZÖ~aqĆjcŽTUëÄîfé*X©Ţ§”TiĎMĘĚ–5Š|ˇÔoŠw-â6ĎYJ öŽÔ?˘şŮ +kT\eňŐŘ-á%dY'.đ1ÂČ_‚ă}ëâ獽=0„š Ťr˘X“+*µ;`Ťú+zvµ]zaĽŤp RG+, tŤ›çŇř­¤1Ô=:!múEÍŮJ`ć• †o–4h×.›D®DKţE‚”Âuk®¦Oč¶E˝€ÚŞ˛ˇ ·µw8_­Î%Đńo•ŠŤĎĹö­K—Ó”•pYOSĄ„?ÔśB€ÉůĐTˇŇĹb Rgwg{á9O6 zŚ8tv‰·–Š|şŠ »˝°‰ †ň9»ţG5Ů€‡b“Äi»&‡%‹:(Ńâ‘._¦¦‹ŠBŮUĺ›_(;ťËLΗˇ—¨/÷Łđ+—×2µ «:ӒСŞX϶›CzYF5{.÷Y$ \˘ŐɤP$QÍ#7¶ťĽŻřÎfJőٱ¬SHÔµ}" Ć‚=$G96&™µLă"/ć©4Y ^†ˇ8,üĺuž—VšÁ™ş¨»¨CśŔÚki†ÝÚPŔzȧç\¤ÂV5ů^ íuRüĚédód`Ť5™Ć<›´ ĹŮMŻź˛áŁđQüM5ě™E~isµ˝“đđ*ł?K’‘ŇÔčżĐül~&aX¦ä˛xżľ¸Uť8ń‚n#’qB¦…OPçŃľĘ5wóÓ˝ĚÔŠĹőżĎ0];ŽčxúÁO7`”˲¦Ń…ů­¤vćRö?ţĽĘąKhÚÉÓCµe§YLŐŮĹbrq~xesąŕ=ł‰Čm”»×ő±;ÔEíĽýHĽüs:…©ßeĆš]Ep^hi?Źäz  ¶ű*1›[ýŻ+Hěý?ěFk›D˛&˘g-ÁşŹÓ(D! »÷~$üźţů9ĄÖ7 áBŔľBäę•Fííwhű˙ŁW‹Üj‹QDr¶;ˇŕ2ĎĂSĄücŤ”eâëĆx÷Ů"-ěB›x=@¤é5Ďk#h%Ň`×ĹŘ!H“täż‚“Čo\-éz¤&ůÄČ­~CČ…oŮčnĽkÄSŚ‘ljÔŔřžĐ•ĺÉ´0HĹVÔ$xEá°ß_d›_Š­]dŐUű„[®*bŮe˝–HÍĄÚ˛jz Ĺ^GŘé¶^ŕ]&·Č›ťĐÓßNx6¤°äe€Vx`ȱSŢFG§Ś Ó_`łŰîŔźé·iNĽ“鱥%şŃ9yTNżtżĎNH^‡»"Ë—¬\~` ĂÉ‚Ŕ”µíŹşąŐËq˘ÔtQo# ś/j×ýÍôŞů‡šnżÜNűÜŘr®ěNÓ!lçO°Ľ0ĐdąlőčÓćŚÜ]<© 4heXëŚčéřł,qA‰ĚŃW{}z‚žk[K8ľ]fhĹŕ°÷D=ÜHRdľ2ظ펷5‡óČ›ö4_ŁoŁ|ÜuűL0ŞŘÚĆR%•>„µ1ź5&˝˛«0ˇ6†™˙¶pů5 ¬E5çŇńň1G®9â§ÝŰë¨S˙*‘eŽ—·!˘”ţ~=sׄ{wxŢ[-pć¶ž-Qo“ľ@izÓmžu¸ÜŤfŽň=#<Ő8af®…”!ś+d¶Ú”i挄ߎłZÁé™W„«˘˝n„W޶ł ގJ´!ŽŻîöź•KoŹ ‘ćâú@ˇG2)•:wľLrŰR|ŹĐű®źliǻ⋗č®1KMDÎE`Ňg2´>wâĎĐGi–ŇĹd}—BÓ )źÄ´ŕdç—,řť×=­‚’K¦žJĐĄ6•RÂ-Xá#“úu]}ĚýťÜ/Ľ( „}εjë(Ž~ xô}JÚ4„z–_ŢySaýřóńˇ¶bJp~Dewďiýě·hµ Vcöoj®č&ęěh6ť|úŞ‹´–ř83öäEüßjŘýă§G\ü¤Â»]#&l;IFF—LO•ăPQŞËü jÔKëw é$őoť)§é„Ć/C÷€ř˝Ż«ÎźBD7Ú’gČ­3˛Ý_h3˙Z¨’řtiTAhďk–9WČ»î?ňµîőWo"HäÁÔs ŘB±˘eů j `@|âeóÎÂ+˘ÁY1[|çüĽµ¶kúľ˝hshýĄ˝!z§y• ĺBŠEúřq)d!LVr¦ľÚ(¬Čž ÷`j*űžŁfnÎá([#aĆBv,E4¬ŹŠEô.·ÎíŹpCئ¬{Ů$ĂZşK”ŰĎőÎUyܰ5ştÉ@…Ź…Îv_#×m#Á#i*“X![9† zCzŮ„UcT~uô`6žű&bTť×śŠCnóoO^W¶ó!Bű͵;ݶ+/ę×Í}^¬ˇˇŞ~Ę‹ §ŇúOŽ_Mv0ׂďů)Z˝ł#ę$Bŕ}RHţĽŮţ!ć ^í›/®7X^\*˘äh«1üľP#‹ÖH&š˛fĽlW_··MjŐťŰ e˙ů?‚et*^0;ýőŹ8 ńĄB°H:EL2j-ť$­ľÓű×A.Řߤ´Óó˛çav bÚź\ád(>ČdŹuó,YŚ˙a첚q'Ěa‰K«¨šr[á×Y¸h,ö?źlŃ ÄśDbKŔĐ0¨?cŰ};çÂ,_yŰÚŠĆ(,aćGR­đé•Öł>ęś‹ńˤ˙7˝+ĺWOörM~[ńă$5%Qäw¬{ ĽŁ Šş) džŚŹ_žš]šQ®Ű;Κmç6Eĺubíŕ‹‚I,b“0yËŞ’ođ°*󛨉úŮôtąâ Cdc,QDrnÖŔs¦#[˝čňµ<ÝóĺUÝőú}ĽlÍ1Ď5=WCM>÷O óg$Ă˙°)úś…:†žťł˙ŽFEáҨÚĆŇűm„Ěj=4ő͵@j2XäÂÁşŚ›¸úĆöäcźüçg»Yţ4|ť´}˝0é|ä~ţ·„*Úµ1Y.ÚŔÂ~"˝HŃÓŇZľĘUlt[šË‘(T‚ 2~Ó˝§ĺ16žTóĹâ8sÁ ÖxńńbČ›ý-ĐhrŰJĹ8Ç=€D)«ĄWÝŞ'ŔŮŞ[C]®y.ÝE/¦đ6pCŘ›oˇś -ĐżŔ’DöĚßËt*šYm]K3 Wp¸± äEł„ ÍÔ‚5ű®Iř¦Ž•‰3-IcÁE@‡6B-&öQQąćr ߨÁ™ł€ýEÜ:\IC9‹^fr5/hżŘA=J|Đ­-ę~6j,G—˝¨a4Cşx,ă3Ž kQ9«č‚zývü·ÔP$x8yŘŠ®›6N— đ`ŽMŠ=‘Ř'Ş­µ,˝eÚä^_ˇüŤ% Ů ÍÖ^šhŹWgLLFS[X\żd7tůŇ*ĎnĆ8_ć©zôó9¬ÝB`ýMďm2—šxJÉwqń;…bܲ×qcş®ż°Ś™„_Ěm'5eJ>¦@QxŹ<‚2˘ëĄ2–4ß㓲·ZŤcŚsüxʱĽ ˙9‰ĺĎçkÖÔ›%Ő••5«F_mŘ ¦kî}.‘_ńVS_”« /®}v§F8{ĺ|^uŁć’0•÷ÖŚŻ KaFŃ1zWŠŕ˙ G«Iľ`˙wöP?šŃ´h÷ n€:=6¨tq§ÁOz8ĺě BźĆűčÎÉnčÇqĄw*Ţ´˘“l0Ą˛Ü¦’Đx-XDý]ӦץŢđ*LçĄčßJáQľ"âaxhô© °1vžMf ÁżÎŞ2ą%—ťvŞ™¸Ä¶=†- Y‰@kl!ĘĆb™Q‘°2p ®ç”‘ôă­W2Mm2c™.ćĘgzJČ0ÄŁ(GĆiD]©C /8GVó[Ą` ú>a”Ô‹Z/ˇą,‰Ę8 ú6 +ąµČčú…|¸k–”ň°{n¤/ Ä\(­Któĺ‡×htC‡‰Ţ§Ł“Ň<’Íś$ÄŔAY:\;iőÓŤBűĆó˝ű‘”z–Kř:9wFş=2ËM oźőoćŔűéßrµ-A3ϦdˇĆŚFc8k˙>0[­<îĎłë€É}Ö=زaąU}¸ëv,‘÷˛:˛Ýś6­§` 9gáfĄŽÉV9ĵˇR"¬V»˘‹ÔVŇFooZS•ĹnlV++ýúé®´Gaŕî&‰ÍÚ©ĘÇĽ†AFŇÁ#Ů_;Ľ‚ÇQµÂý¶\Z?n$A‹Ł]Ż˙¶ę4<—Ń<gćAťŔG **Jă"vŻPc ‚ő<ü0ëâÉ–T!0üőžĚ´Ś–p8ĽlŢřŠ_·}•ůW Ř8|ájţ1Lî-#űěţ^u˝6ŁŠXd9h˛ň‘–ů^ĺl4v‘ČÖ`-†c+>q­ŢéФ®K<ő‚1ęÖ PĂvĆ«hO\LĎOŃC¬H¸ëĐ ČeĘěţjެŤÖ;tŃ›µ…’N€+.óąWŰ#&SmPJ0ĺoS«‡p'ôV¨{X’•wŁP†ů˛¤^ófnŮ eż t¬'ŤEŻŢ4ą4bÓ3|ňćˇsÓA€ţţnÜC„†€C¶™Ť‡VL6bnŞÔJ(ţfk– ˇ"TâľH2–†HĄ,b’>w«Ż~[ć>O‘Ö/#BŚęáňšV¸€‚ $N©wĄV 2·Wrv?«)ë‰ óŘ©ĎW3|gŞĽ¦z¬í´ ťéNđ*|‚W×-rUÄj3ŠŚ«|ˇ'äŞĎĄz1oťŻ$ů@ŃÇŰ~ŕUqî[ż©k rŰîĂqYj?ďâϤ˘®’˝ăŇdO+ í¸YßÄ/C,ą§ţS ‘šJ[8®Ą-:Ď'4SŔČY”í5»ÎňŔzĄĽˇdĐz+o5şH˙CÍu°#=…2ľĆ• •ŞQ˝4 Ĺň0ÝI’ŚŹ.A V*c—Ë|ݧ§"ž˙W˛vËa“~±îÝ…Ť.ś!wŔE—Q 6÷óXc@J“śÔ@›pýLBŹú4ôm×Řž­Ý/ʤ{¬Ć e&96Ěö´äý> JIu†üz6ŹżFZťEşµ3Š]z™ĺ…ýçpI\áÔYÉ ~·ÔŁIśG} âňtâžĂ ŔT,4ř r(ŠÜęń)X‡mĐú[x˛öôę)©˙ xŽđz¤ß$ŠJ? ,–>ąC’ĺ˛z3ńÁ1‹`śÜęŮvtžk%ؤqÎtŃ´}lľőqąŤ lĽňăB(â„USâÇĹL ŰĄkŃ"čˇŃ”cćšńâŢ=ÝÂţdv•űżŻ6ęśš!kĐÓ' |ŐŽ¸šŚ/˝i×đhˇíů§ŤoÇcŢVö¤H[¸'Nő}suŐÁ™±ĹÁÖfH$Î@ÔYÉ>­%ń âlřgč7ËlÄ Ď¶.h{~;«„ţď…Ž+#¶Ç×îÍĺ 6oŇIďŽ,w „v‚"XăĂę˝eŹĹĂŤAe?ěŹa‚'‡Ďzý=\]‘ĚŐ:G,q/8"^«ř§¦˙ë ŹK…ĄV é=”M9†1ĺÝ”é±}ZÝ{ť2á2ŁöŹďź‰ĹŽŹÓJ?H!öPc·X€Rť>¤NGŠzÜzÄ]Ą ü`=Ěšš® üÖČkŔiž9´›ä4=âď/ş.ŘÍO]ž#ÄżżŮsΦötă ÚÔĆŐ`/5…Pëô§čJ‡+6šů4…»©?~k]/*ĺ|bđeN“ąío`ť=čsę”.GÇж±¶C,g l ›‚Z¦^{IŮŇýCë•™©ŠĽ×č Ż8Ł ©&ÎŻe‚Äĺfć­ëäÍU[ş©şó´Âű+-o3Ą spÖ1!Ą|ervQą¸2ö|s…+>\µ‡\ł~5€Ýv*8µë«í®~ŐöŚËţЎ63o/ňĄ×Đç•wE{Fp$›S WMŹsŘĂl«I[ŚU(á\‰Ü‚ެb€ňS¨áhlă]Óđ–ĚY 3‹e«GBPľSM.źř|`­5g”Ü-Ž˙Ł’ Ž Őâ~đČ”eEňg°Ę»-z|ă¸0I.¨d%Ř|©ďĚfŔ˙Ó#.DQí˝Ë‘Óâ“–Ü%:đܰ™š¦é,¬żP™ąŚUdňÇĄĹćŃď ?Bú荞ŕůÝëą°i ĺU uÓ— ^©‡+÷żeułŇ![d‡Â%˘ŕ?>›Ň6äm_ŁŁ@˙H8oťm‡1§şďëa”jIW‘&ë…°QH®(uű˙áţ†¦›/'@ý÷j<Ąn'13'.}ĺé™·<{L%ż‚đŠŚÖ)ň0e”üsX`…?–+ýéĆ60nř4ë°¨¬Ň4+oujŕÇż‹µČ”íYű‡_¤&™˛čË ČÓĘ#ľ>‘2]őyąý<Öő.ţ–2 °ĂřŰ–Ä~¤)ŬKű]Ą}ńA}— ďs e)vŚţ7Ş}·Ç†3A±Nt {Ł>°Ă«2ýŠ-łËŚoXăí¬€0°íµšĆČŢmçüŇ \3·›90Ú±h’ZB©ŐBޱÓGQ¦Ü±ED+°ę¶qyʇů®„˝K]k’Vskzz/93ýü-Ż?«<¨%łÄŐP|)wDWȸKţóť‰úŇJ„!q)ďQÉ jÍš9F|m~W˝‹řµ—Ěg1Ü;™-˛.éFÓ}ĺ4šKţ’pCaÄńhvÁpitIŻĐEˇä€ţMčń@›C?ł˛Ţ?ý0´:Ľş @đ||×®áeHS/7TĘ‹±<‹Ż)ô;WaÓ÷çÇ É„Gę=`Ü5i­ x¨ůf"č^Cwtú‰×ř‰ümpWő<{=>ŁWɰf‹)Ýh60)îéÝvµi yü´őłVR{ý ýű„Pćµëĺ€Č‰˝ ¸Ń.«Ňą>)IĂVhyĺǤÓÎpŕţÍnśČM:5XJćgXÇ©.ůlěI}fdqĹ1®Č×4z!RŠÄ§,Ě«'¶«Qˇ^ýéŢ®nŘ&T`Điv~ú_Ŕ"Řőô<Ńg¦Ę/óČ Ű2Ű#đÎ˙ö¶őí”ű vńwţ>/bXŔÜ7´»ôť ŤŚIŐęF˛ŢčXâ ËŐ;ÚµgńqZßŮň!Ď`qݏŻZ:NŮĹŕ‡1K'‘!|D‘ˇS”†×Ěč†nîÇô@ąA+kžS6­1bÎźą› »µú6Ű;kdözh[¨\,SŢ*µöĐ/Ľ úexxs°Ýä°›Ž5Bü$4ăY©ÝËůŔĘ ÇŰň“)H+ѳȆAs[Ř„žYŠhě2~X‘ܸłSń§iB/w_ń3°°«W9}}ż„ĆO\ËI|oąľ[äŰG™oD?K8ěĽä"‰ç40-ůôĎyŻQ¦ÄYş¦‘°ż“ĽSžD-Eĺ…3^ßËÝĎ?‡)ńŇfč¬=ŁßĽł%‹÷^¶?0¬˝µ?# †­ŽŹ9îŚőě”˝ ±$|3Ńd—G{cxň*˙~ÜÉ÷űń>ÔŢäi—eđ•=a®…šťďşű5Ýž[ćzđFP|Hxřłłxď’o¤ýUm<}Tw†*Ń ;?śňúę:@dĺC›Ó9Ů0 yĄj.PiY‚î~42FŹ’ťż ¦•ĘP=N]şÍf/­ĹÓťjT%_°D{žˇ}c D˝MWíFĘäţŻuV÷_‘âĺÁTúśťMOj_čŹg—K<缝-¸*2›ś÷ÎeµĘřp˘‘ü˝Ó˝9rQ P™W)źÇĄr›ŹĺĘçAŠĚřI2H)‰–ř)B$‘—é>`‘¶µ(QŚbP=›KČk–=füxś„©Ľ^ÂNă…‹BČ·}Š~Ť•eÇšg8„Gë+Os.%¬c3嫍ŰŔqĂĄ!y Ŕ<µ‹°îO Őn±4ys˛[®G6ŕ«ü¶8ÉDX1‡Ň-ŕš *ÚóŤhJ!0×—@Ý:ÖÓń†ťŰ˙«”ĚĄ9îăydĚY)*¶nŹĚ˝¸ŽňOińí°Ş[3eľççŔéB©”Âäy— 5É?mĽcFúV˝&b«o‹p†'T€ Ď–=3?ba¤Ó6ő·T̲ĐánK–îÍ…€Fb<`í j,M{şŃäK-»f˘9Ĺ÷yJýđžhą@ĺŃľ·Â|P găYŔ©ľ Â!±Źwa›¦Ĺ–yţ¸wég}4¨o®–PŕK‹ró9ř‹B˙`+nľőźĽ¨~ŽăŇZžë!>ü ‚^>IßBŰ"[°d˙ˇÝ)űâ•…‰G! _ôěw°ë˛F‘|–|˛“b+BbŕL–á[G:č5iT4ź¬pŞi©Ă»ĘZtw`Ö}Ĺf;g ‡–Ćü—ÜMq[ §Á;x9ϰPLű>-ô˝SÚÎdŮ=Ü„đKí¤Kł á*˘ńŠ]µ …PW=CË/­¶C©xçfRĹ­F?>‚ ă>6@ôTş~—.eL w/éOžŐrh~°ÉÁÚöO‰é9“x=ôÝ”|&KB<$„ę T<ěÂXůΞSźŚżű9DÓbß$P¶c~ž?I#CXu±ĽGëÔ;wǬę—-i4:óşyCšśUfëTî‚PŽčÝ¨Ź öî‹_y%a-@ÝľŐÎÍwřúö_ú/2žÁGT?}ˇďoô;áUťŮPqEý}ťC xăđi«/G>ĺ/Ű{r8°żBÂti7ŕH€%h°Ů9˛ Ţď Q¶P ¤×ŔáŐ4E1¦p]qiwsËůzžD ę_qŔSÍ& § ĽuĘ,˝–ő7g>X˛ň6w\třŃÜçNĄkŐó‡lŚ´ť»K‡ë´ŚÜ˛JŻw\ś™o ĆF§ ˛qµŢa[ę?{Cnk‚s!§nĽŐCIsżVŻ*aŚŢ%¸†‚ĹâŰۇ ‰“ô}÷jÉcnlĐ=ô˘h[Â!y ¦‰ÔĘ”\¸bşÁkZŰ©Vč‰Rx–#îÉyŠ!Ď$y”¬ÓTMi卵pWł÷ŕ;őB¶ ŕM ¨JçZŐŁâ»Ř}ţĆÚ~'Ž’ŽŮ*;%XÍőĆ%I«QĽ1óŘâłÇİ¸ęŽ”Văĺľ•Ć/,XÉI'ĺ’¬¬6-Ô{aHŽ'âLNŻ  ¶;u~ąLn uoEÍňH8Q1‰hźŽ´ÎŰŘ•/ăl8[uô¤čŃ<Ú—Č@–C(] D¨§SŻyş1ăR–+ÔÓCč>ŮžP„\Á›×ă2󠫢)GÓ´UŘ;Ľ %~óܱ·=ç›tTâ%a®¬Ú7=U$JĆăIB–\0ĹďŐš ¸"qčĚ"Çö‘ź!ŽÓýŞť€¶–˙ uÚ¦ÇůÉ#u‰Ôľ¸’š8ëÄ;7¸\€,'AxOÖ{ĚßřNéŢÚă‰üŹšş’W ę~ß!đH˘EŔwN.g÷ëi1rď&0]íÜPŘąë fęÇű=D…/‹<[Ţ'Ŕ ÝFź57łW^~Y:—©ťJz•y´ßgŤĘ}ë’ŕ}Íd«*§ŕŮp¨§Âş. 6‹7ç@Ţh*ůB}ŻŃsIŞčŘl–”>”‹tŔD3"/M3¤ńłŮY!zF˘ 4Ěř7Gů dçF÷ĘLĄĚ†Ź5ú˝«ŃhăńóíC€Üąá®Cđű{Ôuu)<<ŢR4łcRżä•őJşş^°—1Ŕ/íĺó€{íŰ“RĄ:MçľUÇaů?`‚ĂGШ.ZˇDěg—÷ůĄ#/`ěÂČË'WşŠËääÖÎ’đ‘kř,·Ú*ţHă8ęÝz“ľpË<úÍ!"í±÷˛ź«Çđk0S;u“&Vł,ÂMů„¦%Ňő÷Ô‡l|\ďĺžŕ)ćŤ?ĽŇ[j{f¸yżÓ_\°ń§ÔAőđă˝Ĺ%dL`»ć?Ć-j~šDô©7Ż‹đW°s É—­µžű·q$NWöžĄž}‹ŚÚËx}öˇŮ^Hlâ’HúA}Ď(ý ěN!ÁšEđŢáJ…žşUÓ2K 5ÔŤGGč‘MBÎőĎ*â—Ü]đüw¦TĆŮ+ çYL’źă?ż3(ˇ9ËóńĘÍÂŹŤ€6”Ci‘o‰ń™zđhɬČü¦°$pčtřŰňA˘öá„ö ťs¦Ŕ‹ůËw ' °+ŘDŤâé}Lt@ěşwkx‰›ŤköUëŘ8Î)†OéíNÁĆ—%莟¤-‚Ú}ďź8˝ťţ·÷O)f§‹ĄÜ÷“ÝŹeëäŤoi«©:ĐHűŻđôdfź`P„łĆ!ÝĆü]ľĎfoóó• g…Ńď5ŠŻX@=ŚĎ ÂtdtčűĂś¸WrH$ĺz¶Góş@ŕ…úÝŘYĄ;„ÜGťźDŮĚç.Ů:gŽzâÔmŢŃ —ŻüWau`dcA#eöľZÍpŠđŕÍ““›Ę·ž0ÇT˛á*óš }+c…ĺö9HL‚ÖhkB~ŸßCĘ6Đ}&v<ç'ŤŚaCś˘°¦Ą„qůó´1ň±îˇçŔ&0V%ZĂjhî»9%¬ÝaŠß“ć|Ôsµř\bŢC+÷ÂÄ äŽ÷q &-ůA¸j‹‹ćq„}“R@×\ ®[Gű! #Ř;pžJÁŮńLCiĎU6E7çg Äkĺ F;?i.i8ą8Q6BŐ!äÖĆ›3ŕq…K|-u]FńŽw?$4Ö8žŮN‘ĽB­ÇÍ›<"“Čě|*±S ±Q7N2ČŔ$ü*$ú3®[‡NRh“Űř‹P8S´zÜ˙—ćPÁ!3˛.§…ćpÂs-ÚwˇdŹ…ąrŹÜ'ImWt•óĐI>¸dJşp;€ Wđ wj>·g°ŽXćđťâî,inQµźb‹AnHĂť”TűŇ ŢduŮąśţ«Š7śŢTk÷ťÇcńČYe¨°ßőÝ3~7L뼶„{Ă‘›aC*±\tpĄŽţ7’›x[$éš“,n||đź+úźän`•¨>¶öć Đ-ĺ‚wM^Ź€uB{÷x[hť€ěT]$ôĺ˝–>wşť)#tů4®MK6ůę„ěä—Š] Ş<0‘éá ;»LĚpŔ's ŕýě[ţśsńŚ}7!w i顑¨Ů‹“ňA;s×VÔ*yj«źÁ×ätłđ«hgľp˙ó#Ďďŕ¦v`á?SGôšPa‘Ç叭)rvożĄČČŇ‚HŠ{yUäEdô§/°’ľëMŘŃ~µ°ČÔo0‘ ,ş±ľŽobÖŃg˘Ľ;†™Ň ×`T~€|®ŕóĹ[™%÷(yÔUďĘOř÷[2űLýfŮń¤‡Q ŃII4C Ť%~Äh5ţşď—bµd™¨»Ü‡dآvQĹś˛ŘvjžaŔű§Ř8> źEDe–B]UÂâ,¶Ťde¦‰ o[ěŰßćęS™ ”<{ŚĐ6śßĂţŞé{g/•܇1¶î•úąâÔ¸DJM‹ý˘{7a[‰˘Ö5 W©Tq ď»]”m«Ş¨`/ttqăU¨Áy’VĹä*XIŕu•Ń˙.ö‚•ŇQş|Z}ç`ëPzŤĹLčźÓPěd%ŐĹÁ=Sć9­q€$@W\^ŹÚ±[–Ř3&% ékß´MsDë jY;>§°¬34ťi'~zÜüŃsd¦P\°R-~Ųŕđđ3ÂŃ`®Ź~28˘AëgIAÄ3ÖR_î…ě-îç;yť`ާšČ ±·F=ľŮ:zF×[/ŮŹúibĆMD_H÷»aĺCC?ńâe ¤=44ĺ_öó9±˙€eZćlÁ$Ά6Ônf•śŽˇÔĽ/ę·`ąÂŐ)ÚĘŽX2ď`cU˛ŐL|ŕš“={ÎÍgnÄlyîĹ1 ÝŘťBG„ď{ząąŃDŃ+Ň% ˙zŤőŹşúôiěÔ\~îé… ?±cŽ8Ŕ©ÝśPh5frÁ64˙–!OĂRcA *NEő‰?‚DÎeˇů©>™çyžš°ëžpĐĄ),šĐŐá†DČ÷Ą{şµTéŮ©ÖY†top÷ Du%á° ŰůŻĘąÁľ­9Š“ Ŕľ¶ť»ďsřšx%ÍŁbhß8•ˇs=Öôeąőg Ąü»gţq,ó´6%:Ű4hY÷żvóhşvÍĚö?|ëđŤÝôŃ5(RĚŮěUŮó]Ěö y•" ŢĄ$n3/Yĺš~XkÖ™NüËÍŕN\DĄ:Š0a/vR<}őp^zަ­oíBŁÂq¨o¸ń= ™\I›«őáúU7Rd¸zRżřTÝ%n(!/n?$5IHüŁ©n­ý?:Á‘;ąĐ#Żu!źÂ#Jć´ö>Nü±Úş (cłŢ鶤l‚w@Ěşb¤ë-í“(•Z…:ň'Ë2ŔěR˘=ü •ťâšť·t~\TQ|HD˙YHÖv(śľ#$qőľjwc¤Űďí×eCupÄë óď­ŕ9âăÓđ*·ĽžÄ( Ó{żµTŽů—‰Ě kç[Z©d.ôĆSCŁs~v.Ôß <ôoHËćRmůOâĘn1‡î‰Ţʍă Hśź¬~*‘$›IÖXŞ*ĺ ˛›8 śű:ĆłYţ\[üdő9é!î şź?éZl•NéKĹŘĐĐ_XF.ŮŃktäSV×pü$|,şeCŔ>¸pŕq+Đw°4_S·‡‡3—•MY'pî~W{ŘÜÚ•Ż¤á„˙~o Ç ™đĘ đLłzcuwÜ‘ťż<,Ăíň,íqK¤¨ä¸ Č‘BÄ8Ćń˛jQŐÚ”0ł.úđ'_%đ%ú7\Ű›ŕ[-nłU»ëkŽ_djЉüęç/—hXůşż1u ö;_ĆpŁsšŔlJřuźôő¨Â*ΗEž—:UuÜŔ‘Lh.4˙Şéš-ŤÚ^~j'' ěĎ6Ářގ¬Ähčô¬*tś5pN+çŤw˝1Űśŕú‹†FŽ*“ę±GJŕ4‘až ékśťD:ţ"–ĺ×a,Ó<µ™( źśLŻ˙c[ę {¦j¨FÇĂj[“鍚CeKf·Ś˘ Üđ"ľjXîłRvÔ—DH… ‹| ü@—ĘÔ*v§Lę bDĽ­?ëźjT ş™’Á‹»TMZl|řGH>%»÷~·ŞF¶:ȧŮ™˙­ř©R†ĂíۆV'v-đ˙GŻýµ2ü‰ßMżi04‡3ťc<+bD® ýÁqé.€u?dŤĄÔń Eö Ę~©ź"ßýĹ»™ŞďÓ­ łąĘ+5®[_ ŁeŔ¬Y„ő=›qáÖ™8ÇO|řĽ5ápč=’c Żóç°¶ŽPeî”ŇDęEÁ¬ XbcÍ5!]šăŚ$r+úć?{]’aźľs÷[çho¨2n0¤şŇŞUç@hDZG±ÓÚńĄa'?IZÁx’:C˛›ŮŠśK#”ÁÖJS»Ľ5ědżß YwpÎ2MPř1<ßá7}RčőřL…áF6cÎśĺââ&ÂvŃň­ÁŻZ¸8ĄÇ==ŽŃQďČü–™ĹGuw7–ç뉤˛ÂľźłĹ ^í·0FęŕÔ*0¬Fk˘RúĹ@Ë Wĺ˛ČÂíEk ‚»U8# E­Ňń®Ť_#· O a<ŕtë=IüĐŤ|ň±ýV, |OqŁÜYt;ćíČBÍW9Ćś˛–+·ĐÔHSőr„?ŐŻwŠooYŤeGm<®śŞßŮLŹWžö‡űE·QëGaË0źYŕČĘŽ†řZ=mȇIŁ[6®•cW‚jń†Â~śrcĆ[$OҢ+7ÂU X0Ć´ŃŠňś±ĆçďTŃ˦—|B–ĐhôąÉg(˛©Mâ~oc˝ŹúË ťň•`˝  ŰJ“ ĺ8m–ś,++t×WÁEű®•7$–Ş{jt§_tĘ … ʵUľ¶ęď†3Ě÷lEy–ň^}~§St řúÍz­ĂČH8ßÁKűm| ˛v}Ď‹›Y ,á¤+ĘZò 9ŚÓÓ \]ŃńS…đgŠŚ!#Ň$VP€¤v˘×sČęmL˧sh’Ó:÷› óN«K)ŠCˇu0Ď‘{Ťŕ=VkąC,YôK+Ę ¤Lău'·lůo¬¦^ŐŮíÓÉş™Ţo!]Rţą?ÜžA™ą¶xßYňŮ.řh6Č_ŞěábňS§]YkďrŇë«tŢ÷ÇÁކĄ“Ě7\—bWż…<“;šhŹv\‡E>.mx'‰ĄÂŐ ¦  ľ‹öńt*Ű1B6,)ěúI€.ś)ńT`7™O9˝şgĂÖ&Ў xÝëŽĐL•šá1»3Ľ˙8ĹĹîľěçôÄ ›R»®Ś;!%Ň[ő5áü¤¤ĘŽi´KănŚFŹ~~˘¶oĽ lY2 A“©<§čĄÖ!´5ŰÉďÖÔxÜ QĚŔvzüřŽŢß:O5}ËL˙dą’uOÓ# u‹ő/ŃşúńuŤ"~RÝ:Óň…AfVÇg¤ĺĎĺöĄÂsFKAz~uŹ_ók°5tPŁU|ć} ĐŢŮý ¦5ĐĺBâBă!z{Đ‚ îšÇÍÉţ3ÄiŞqg{ä‘)‘ż›%ĂTu]Żvř‚:g¨Ą‘?UxZžűÚÁ,¨'¸ü|E¸Ů-¬GggtŤÝź€ŇhĽĚT®b `ú]'ř¸jIăÔ H_ÓqäE¦%őŞćVŇWÎ`ÎűyńéăfŞSgu^( ü™–źjýHš&w+ęüUçfâ^+@ľ ŽZ^±G˛'‰–,J*HÁč…gťAĺ•VńˇŮ°ŽÇUąçô{îšP˘1(üŹGŁk´Z0!Č@}+bVd˙Ä•H;Ý‹ÖŘÍĎNąo=«7@ŤuŤ—vÚéłËkťÎE'ß>[šEÝ=éŔ}瀛 čÓ2(ş™©Ţ©™§F«ĂčŹ!!k*Ě^sc3oÖ~ľ´á{Ç+Qߊd“DďZÉ3WvŰ LH@ŕé©PIßm÷ą R`ĐţF|ľ/µŚnJ{çR-H‚ Śŕ] PţKT{˙ŞIď`rřÝ@˙8äĘh ×u‡­_µ^Á ź“pq*“H@IŠŞvbhť˛öńEVń‚ąźQ˘,Ö‡7‡í ^e7&pEÖ›÷ &`JP‹Ť‘Ś:¬uŘ#wŔ&N˝& 4ÎčĽŃĚzřéF}t{Ńj€h)kţ, #@7ŔÇ{RV ľbV…UZ´ÄŇHdąĚ= 5ëßÄ®Űú1NFßîÄŚ P禤c$źČ!ť7¦jŞŻWę€*@Ü oDBß 3€lĹĹ)Ä©+(·XAŠ[ßźWÓďäśq›€ě¦×™Í múÂ1ŰC~ułËF„í›Ô)úŕFČčt– ?öž©zŠY9?|ôkzzÝřě Ąĺv:JUÖŰ·7ŃäćŔÍ<öî!Ňp>‚`W“íu,@Č—¦\öJQZYk<“őÝćřűaéK›:|6ŢÚ~^×xäËŰš‚ňädgdB¦Ůě=Ş?Š6îňöř‚D¬ š]îc©ž›ý·7/ěΠqż[/@ÂŮ3~Ľ×$üZľuČS‚‘9)Ő!łů¬NńLň~fÝíşž¦}Ńä'_)z}A@čqÝśĺ5”ę«~rŮA{Ž.%ŕVqDIíF‘őrŕçClÂF+Šf™Ždxö)`ß•âÁ‘K?Zc2­Ťe†ĂŻĚÓż+tFA?2¸Űd&—”Ř9ĘĐ9*¨Ş%Ł'ţ†]ŃÝĺ=‹şÝËŇG>ďµ őé¶š«.©?™\Ž:rź+®ŁĄ„ÁČ8¤ýťŔHmóŢ–—‹Ęs%éÍ3?-W?ŁtQ’‰v˛ŕ×;ŹäX®:ÎĚał`ŤŚËBcdŐ»›& Ĺ.ŃŁ(m¨Âég`«řE·ĄYŃ{–łź;ŁÜýĚ ¸YŕÍ‚@<ő>^ý‰>zx슮MŐCD†µ _]Uč„ŮęĽÍ}/x„ł˝•q"ńŇÉ@˝I;ýędŔZŤ·J'R’‚ö“Z±§ě´_©ĂÜFÄŘ-ú 6z8fLbF7mí…};%čěYÖbŢ[Šďż]1o…€˛ě_éř×›>îhŕ€)aoëIŤčv4=ë–)ć[ ńě7=Ý,>=…ϸř¶›¨…R•Ƕs9ŠPOô^n„Ŕ]ź®r-§›X[˘@…6?‚‰îOѸż_Ş×˘yEÎ(&¶…tT‰úźÁĂj XR˘ĆfpÝ®đýaZ9 fE qlöÝô~ąMDŘ?źxľ•Ę!HŇ&ôü–éCJć |á,©Ußáx˘óŮĹÚç2’Ę_o‰˛ÜlŐ ąiSDé´Ŕhl‹j/%‰˝Bč2BôÜ〻Ζ§Á×ČQm 63é­e´D·§GĽ´:Ă^|Ć78‡»H›nÔlJúÚđţđSTiŐŃ•p'ĂĘś1ÝŘą&8О˙ű÷UqúŐ“ ôćÎ+8²źŻź îm;,kČČM4M@Š‚´Ą©ÎĹ NľË˝·‚\j¶7W»ďĄDřýť·ŤTç?¤ÜÉ.ažÝDוŽľövę~¤č§Ů5Ľ…pµďć|ýäP«ÂĘ07nů©Żz‹űÄ‹&˝5“˝~Sa˘„"5Ň S蝤Ú/ô)5[DI¨Yë)™5"ŐĄ’Ö†î=o%tť±±ůü5XĎ™ `‘ĹžZůč étź÷ő˙503ŐÎLÖŞćäÔC›sKЎł(Tëě|¬'%éĎŻEŞ 6ěPŹe¨ß%5aí-9–„ögôĄRů5*˝.ůuAŚŢIüÂę‡ô‡Ű’!Čs! ĺPnÚeĂS­ŠSŠßCŐć"ŕćŢU»Ă~˙ŃeĽŮ>{÷wďČ<ú‹ěŮCPĽ\¸Ż÷÷źô4˛I­eď ŚÉCIšP\uoáĽĆšüţě¶@†źBĆŕ®ĂäJŰĎËžU…ŢMw´5Ü™VUQĘ6ĚŮü‹´ß_xěl,|tV…ŕňčßd÷ľó|9ŹÁFg ˛źí™ëŽß ŚŚ¤ĆyăŢG~‹=<ŠM_Ŕ Î>á5{qk‘ć Ăź°ŃfŇčĚvđ•˙WšîŹł¶wX&Nů"µ/ÇAzJ{ čh_0]Ľś”Eő%̤‚őźŠ†čJì$ +şÂui’ 9‡k–xrçZ#ÖX*j''”§‹řáYQ€^†é óĘ,|á¬+¨äĐŠJŽIŮ4˘ÇN:&?WnPîK+ŘŁčU…Ż5˘Żýj+gçEEČ…ůřUŹťřZ)ÁµNĺ4Io3OßiŠh’î‰?ś´ĘŮ—U@/ć膕ϊi2­ ĎE›ý×Î{Akˇí…Čuç]Vˇ˝rëžŇH?r/ůŇ­óDvďZ‡JµgLxŐŐMŃ4^ 6‚%I <ę×A2nĄéBěâľ‹t0Ż˝śř×—a{ţçgl2h3‰÷­żF¬ě+˘¶÷rȰ2„iݦbç‚Zˇ§>ôČL[ @w˛ÍËÉÂţ7jë>éĘ%(›©Fz†MńwmçűŻ'ݱP@…Q´ö…×2(ťÖ¸7á˙{ř󿸟Ktbˇë1tUrŹb,$KsŃĹ0í˝(¸]”Śn˛e4(¶!ĂýH÷ŁéüÇ$±ŐúMŇC¬ákűsiŹ5Çřű°(ýÄŮĽ%a”I,!ŮbŰ^Č#*ËfQŐVŠRA˘ŚČŽߣ7á­:^8×±âóäftˇYĂŮLÉÚ‡I˛ł#Ą?–8Ş Y*zÔ§üô ¤×ůE` nńź!ˇŚ·i7ľ4h¶Ů¦ĺ[ź—!cut»«·LNđ:Éş$Ű™+_f`Çëß[ŚôBs J€ćâWjó¤{Ĺ ®Er­¨ ¤ŞÂű(kâU `ů,bĎ_ď(’żŐĎoeţněľúö“ćŽĆŢ0ۨH¤ ágˇg_ ĄÂS=ńlVć)ôĂ>Ŕŕđ”C˙¶<€'äá±EW°řµ•T#ćĂĹ÷¨(ťů—T"Ą°7ż=2tÂ@:OÄ  eýEe‚e•°"†¨>ý,—–Z®¦&ăNŚúÚJWĐu& …ĺ„C­µŁ3sŇzű3<łňóbÇob+>ç‰r×HWk¨V¶×ŇH­>8ĎŠ7Ą)Iµhü_R—ţřŢů™9¨ŕ‹‹[î?Ö:»‚ &fşő.×][ŕc{ŽăŐ śi–#J#˘UE…ŕX󅀺ĄjńĎěůîd¶‰%§[łÜC–“2AĂ˦ Á'ď =Ét> 3—s DZľ;ś&ŽaŹéĽ1•CŃŰ®cµi“vtłwV°µFP8˘ËMtÝ;˘>‡ÜćÇÚc÷őt©}ŰP‰w:‚ß™€´ň<é Ť<@˝PśHîŹs7(á­źęF6*€üŕ­DĂMG&— k-Ű _f{łÜU×Cµ!ĎęäX–ůĚY9g)éBó}*,{C} ľĽ÷“ˇsŠ]q÷ŹngŮj#eô/çFŞä7|Ó?ŢfŐ!AŘą[ş 1¤ń–'› ¨˙xŕĺE—/Ü©ŻŰ®!óźžâ9†vÔ§ľO†…·Đ¦3Îę.úޡ4E¬¬[ ˘¦ţ7¸\€b”‚BµÔn·ťEĹLČř2Ç»KSšĄ_Ý÷`^`Ň»É'uWŚKú]°‚3¸v»—ľĄi§Wkłřô×÷J˛âqaŢN ţ|Ţ•™ŽŽCЉłéwBBŮufĄA·Óbż€¦g{żŢn÷+Šjd,[i¶H,ŢŠ(÷¶Hť)–“\ÉÄöqV͆¸z;ęă%żÂefßçw‰Ęˇ˛”ů…Eťť] KQňu>ćZk>‘(|€­´%í9˝|Ý™®1Ă’±äë!@ĹM˛kZĺ#© hŰÚ¦pÄ"U˛‚ á؆ĂĆ“ ýű]ĎÓ©O)ě¬D˘o%*D„ó9§.çesŤîĆ}a1+ťČQs©’›–ô˝Zl± Q[fhŤČ#ĺ@ť3ŻŃbŽ‘°BśA9×P«ˇŃÉT¦x®YŮÎú-ý`ďiXYr<[oëčɢóUy@Á„ Ô•˙s#ŇŚwIÇôIR—źťżŰ˝ţĐĄËçj[ýżÉ„ѤIđ-ž¸­,a‘÷Š/=83LŞŚžKr0BÁĎ„OÔŞ?N'Ż‹Ůő5 GĐŐ5łŚK{vhĹWWY˝ů×>¬Jž™ŢZ±keB[ř4ü6łUZNPxH›ĘVęĘÁo%áč(–ů© …řŐ/;Š8.4’ů ˛xr>wĆc€ H ŁĺI{›+É®ĂĂéĂc1MČŕ&U}:UOKeÜbÜq%>VŢÓĄ’8ĐIą8i¬f?íů]ôrUjZUűj<8Ľ/C‰ŐÜCČŽj(—#]‰ÄĆÖ-s×đĘů Öu´ż˘8ŮßĐë/ m\5ÝI·ąé4ĎuvÇŔ÷Cp|G›-TÍe#Ęľ?¤¸‘mD*ë‰}N’T“ř4Ä‚LłîW¬SđqşS ÍäůBżůr qb+¤ŻÚ4Ň]Ü“íćÓ?°räÓY„^Úč—ôîBzj ”[l„Ô$Ž!±Ő©Î4A°jB§™.žÚqł5ż—m´{ĘΦžĐCĚ S~Cf éhŕm6x'T'Xtb›B—»1¤¨¸ŻJ@Xe?1›· ÷É=ŰIÚc/i¨-‡n;iĆĚ­Iď[řîő­¬:€€«vŞr„B©dđwPĂ‹©–ą.řŃL÷ŞG?-Řw»óH(đ¨‰-VÜŚăěNäa†‡OŞÂ}ak¤š˙Hb¶~ä9MYpD—/˝čQH Ą…źO9Óš4VűĄ‹ozĂZĽâ:†?sřň™2ýn·îS(ť–b–ČýuÖBă"ľYŇ 1żx€—6łÄüć¤%´đĘ<µďŕQi±ö;˙ĆŐéSm0˙¦d¶5ýÔwŹłŽŘ§Ę  ­LO/Ý\0˝_䝲Ů(Mţű{ň†Í5î) J\Ş=Oas#N`P«vs:ś…0#‡>pĄ-*9(Ĺui9|g=ä maPŃ2Ő‹Ä-FXóa[ ”,x”Ĺő׬6D|ʆ†Ŕ˛=üźâćŕsâ-ą‰‰ëldj DšśŚ´…©S°"#¦—Ą™ú¸$Ő‘‡q(čbZ¦*–‰Ĺ 1»rĂ&ŕY’śÁˇËŘ-/Ý™h#ŰŠ÷©oé•8ývo5ňëĆÇL鑦8¬’ÔŇ% ¨Şq\ [h1(OßČŐ÷ÍĆŹĚ#21¦÷ř¦ăÝń@<‚¤w!Ňb;}ýׄ]¨ěĐ «ôŧˇO,hWĆË|`BÝ-˶%SÓn?¨ç×D ô©‰;É­6ąWRŚQIFĹáĂ»Z„ĘžŕIr´šŇ_[§¸¬łřZcažEµÇT®ĹŹO‘¶^Íä­Ţ۶Ěřd¬¤QB7Ťv¸WDe† $šÁnUÂť2µíł·¶™ţ·EĺĽç‡qZZJ×ýýa“îvFm1ÖEYM=­WZU1\¸»‰áa¤] _hßSŔL’C/BF­?'n¦Ś8ř÷Ű?ľ°Ťoí,č^đîöÔ´ÓßuBč…¸°ř„ąřţđ ă»™Ď[7‚uaţ.fJ©QÇ …ŹĚĚhsÖUmŞ'’p輻+ľľůMé‹>8äÇ[Ű[Fź„^†őcę=Žhë-Ý«˙˙ÖXđŁř0'Ąö·;{< č†í8óżÔń¦Öe{ú–a;Ü2őKQELóÜ[ާDJĂŇP$ŞA'Qh€ßan·ps‰b'Ž#˙íős Á_7őę˘Y†Cn-SüO÷Ś's™» Îđł*z»Q©ÚnsÜşňŞÉ˛âă'ĆěÇ5~´çL%µ .Jźň®Í7%9{IEĂ=«şZČČĄçĐW#Ł·š†âeť`:Ô.˛/ňë ¸í…‘¶­MSŹ_ŐŻůđľVŢË˙uťX¶šäŤŘ¦(]=ëŘÇd[äőËŤ8Ö9­ŃüĂŕŃHHŔ٢G͟‹L^.€×ĆéŰ€÷-}?:fý±/39Źný˘:°ű(„ë{ědăl? AS'˝°W›Ł:”‹ýH/ ůG€Ź‰ĺak? ąŠg8Ůäś¶˝`Ö¦‡.˙=®rhŹşÝP.ŽD,P†ĆWpé÷pW ‰i Ő"+$ŰőÚä:sd.=Rć‰YéͨîŘ„ u]űŢpz7ţ·<öHUmńÄĐzgľÉëÔ?äfd ŚMôBÜŚF›’o ąř~7•:K`' REłÝ¸¸µďşOë7;Ub ńN:Ľ$Ă#A홡s™ßőŢőt" ł™ěQ>ľ{ ¨˘nP;› 3Ƭ\H!łĽäđĄuß“Xt›iEp,+*w4Î3čPJ™Ě_!÷‹âA„ܦéŞls~Úh€Ŕ]Än{/5Ş—?ś˙gË«ÄÚÇ«ëpŘGHc…â–lĐ >¸Üů(!˘S:n|«ŢźÖŤ Ć™bÂĺ)*,lOŽjŚÖc1ŚôÉ ›K-84„@kç1Ľ¬ăh §2%ŠęrmO Ľhšq?çäřf®ořBŠ'*Ł;ĺłśđg¦Ť{%'Xhön°Ć‚tHł˘Ž-­€\ř{Ł‹YV'őűŹ˝¬©˘ŐÜ#‰Húf±Ń?ä·ä‹"ąý@q cy,ś63SŘFšČ«óËUGýőnŰ{ÂCEw˘BĚN'lĂî§Ćŕ Śç“¦ýÇŰd©"Ě€ČBKbŁd”ě+ŻâÁ2¤Y˙óŻyІ`C}‡î et‹_JŔ†ĹźąÝŁ}OćV(˛mĄaĎ‘ýžŮŘÎwż)!”$ŐqŕůÂ’aĆ@É[Ł…Q6šYµ…ŢtëÓłłgDój`[Ä{í°-Üb ťcŇđˇ<ŃG‡ÉŘ„šo0q~ ËŕÚ¤h  ©TĄä„I54ŁŚ1~Ď)Đ^ď& [Ëýˇ‹čf„K¬ Ţ’űż;˛7ł"bL ĘAsăŃŐŃ´^)67YMěNŢIlŻ..óo#:ňď’ îüěľ›=<Ń˝w†{ĂZě±*löł´áXär‹Fmŕbć×ĹÓął {Ŕ<”É„ť<žą0C’SOVBU¤7äž6h‘ËOŞŤ9űćء¦ťŃpÔŤťŁt–,Ôsu X'˙u# .QW ’HˇS']0;ĺXŮŘĐ.Ę|“Ö[űüCz:z:ŚBžŐą*/w§S•T=J!Ią– ľIĽQÄćţáXr0Y6¶™KQ<Ľ éÄpĆ!DáÚ°ĚŔŞĐs\\*RäĹ[Ľ­CťňĺĆ”«ˇÂżÜÚ[Ąn ]ř´Xѩ뷵ž‡ZźO%ë ň~~Đţ-Ă úî˝ţĘ֦…ť5ľÎÂĹ~‰’Č ¦öIŻO„Â4_j”p‰ř8”ˇ˙ŐJô€ł&;R]co'R o-)řtăť"ĺÓ\u,ϲAZjĆźăcŮD Ť ˇÍŠCtřčiýv"Ů,źŰš¦ő:5`üBÎ".雳tţ „ŁÍĚđ$ĺQ}>+  '˝Ę ŐâĹ/ vÝ\řäŞ<ĄŰaÔ0&vřđf”Čq ăeÉřIŘIbÝLVź.ĆQ‡zo4ô¦íBxŔç#–áĹé šĆvËýO•AŃŕŕĺRđ“kŢ„…çţŽÖB`ŽZ`x<äÚîFjˇŘ¦s‡w‘W«â X›Đ0lšnZ@ˇl—‘BTÓ5ZŤîsĚeQńjWGW ýČÓÁĽąŞ†˛ľ|ŕKŕ&ĽŻyh›Âş sPfŢÜcßYń¦…S…âĺ2®„‹ôʇQ–_Ý"w‚xŻ®źi‰Ńň¦7”{!h(G*žf7"ŁK/©w=í.ď6®áöú>*J |X˝c(k·O,¸ő,ŤóĹV0=<ĽÉ† Pq¤M|äHŻ~Ě%¸€F‰~Ků±kÁ9Ćßv(Ŕoą{ z— +ő9@í꽫 ›ř´ĺ­;ň˝×ۇ8ŤNĺvlťÄA`2.;ϱâ¶Ď¨x±Ö±ôC”ÝżN—•BČrź Ô´ż´ęÇє٨rOűu°R&É%m˝„‘ ġ8PVąsŽNŢÜÖMS‡Őr*ľ5x1ŕĘM #môzµfö˛ćĹÇ•2 Vm˙ÖŢScϤîËÜź aH$#hX%r_áܢ_Ćä&zsňó7y˝†˙%u!VNLQ7˘s ·ćFÎCO˛š¬vNÍ!†âň–řŠ9’ Q ´Ç"Ľęą¨3m˛ÉĎ;Ö•Ż("9@ˇeo“aŐş,ú™\»´ `–Pf7ŇJ‚`JˇiXu–˝l‚ý[ÓůL%ŞYtNÓ©©Ă)ś@Žćdăáu1 «[ór‡˛_őaĐH‹Ęw˘AAÁ+“éJýe‘×9şšw]čw÷™^ĚJYëY´a˝·ĹÚmÖ×r'TLÓŕípĄ§ŚhśLm˙'¨U ţ×b™ÂěÖĺή°Gnç°LâŘ0ň1śX%Đúv}Ă~0GÁ(ĺWĎČĽ+»D• ÷ ĹM70ň ‡cÁŘé<Ű6!_şŮ'×k„Ě[hčÄ|F„kŻŁ0v r:JB¨ŻĚßŮl‹Ą™Ç_fK,pT‹ÄˇO.ß ÷N„˝ľž¤óä‘”ÂT›ţ‚pÉŤÖ¸–IBóç𱝊łHĽJw.‘?ţ\5jčű¨ŢÁśEĎÝěgů„ąp˙±ť‰ŘJR$B KäÇŰ#Ż3µ,ĺT~ |ŽĐGŮŔ} ¤ŚCĚŻąÚ\Ľ€°˝µ…˘š\n2'{’ Ţji|Ąöl§ŻIćŁěP :˙„tPď.ą,«S(ŁŐ5ÓUăôJ@@&°Ő>)^Ď dq{ś`Šű E–ěń‘S:Ś;ÚעUŤqR¨#ü&%'‹ň‹¤÷¤W1=ş@$z­°*Ň/ᡗ+„{•ĺĺăšEÍc€ĎEŞKŽnžÔĽłÁşçB'XYtKTŠOÁ8_ß–"Lŕ° ŔČäFĄ ĐĄ¸QľëЧqR,…Űv Äž¦1Xßß_Q ŽŔ:»ü2ŠÓÖ;­+V×ëlŮÉBŕ+ŕŤs{ułôČîDÔäťľ[M6=J§™i˛`cЧgŰášÁ§˛€ă;ý„R`'12 ß'&ÔÂó*„p}5u¤Ľâ˘´Ô’żâ_ęĚ·Ĺ),2*YóŮŐĂłaÇő8€»¶ü77ÎźC °J@s<Ö§TGHrś¶L·ŕýržr¸}äÜ*—-çĐÉ*ł|@óĄé2Ú>oô™.÷¬{#ZÎÍJ6?ŔfNi /p€; ź~ö\륥Î,ňéăúAëüsFŐzŽ©˝>'íi–Č»ó[^Uʎíы׶<+ă)ö;† ¬ţ>íňs&gW,\‘5LŞ…K>ĘŔł[ú}Ä}i3*–~ńó)Ż •Ř?Ěi ˝ ŘŽŘA¦šígRR@T…î­Yy…ĆčVr8AŇ;-“Tź&™ę×…dĚ»I čí¨­Q|Ť€XşŕÄ’’a ‘cOŃO§Ős€…4É‘óM*DĆrď`†“ơX™f4˛ÓÎZă÷‘Đ„‹ąMďĹÍ–p1A(&č߬PÖµ™M‡4KM@4Ŕ§âĎ@óÓŔ^z]'~MĂr<ëoâ7e÷íQBžă@­|‘±DŢçFÖcžŹ)ŇG(u1”M3ÔBťÍŐ¶Ň\W®îpŁůe2{séú4*ÄÁd_˘M»ôyŔÁ`«ÁIjh´ć~ő ±ůţŐ¤’I‹Z˘_wgiF`ÚX0;féáë`P^IíŚţfcłS}¶íŰő·?ľ“,ĘF¬‹Ě(ÂóŔ€ČĘ?0ćI˛b’2öv;Ő·Ű—l¬˛Ue“uYv˛íÔQÔ7˛‚ă+Ťzö©Ö~{ËiMz¬]6lo^;Ŕ¬oĎBe’Ďx,ď¶OÜěčAŐ= kf¤ D$‹˝MŞÝX äOŻú賕ƟP¬1ąšŞJrrpp‡ńRe…ž"­$ŃkB›uoËŔ͕Ò¨üĐ^ĺĽ!Ł’˙Ţáź;? Zi›˘÷Ţ+Ů@Fq řĂR UäŮŘÖď"›‡ á^`đ´G[’&ľ/ňŢoěńpí&5xĺ8‹˙UŚÇ˙۵ľďŔ±c=ÝG±6Jůä˙pęŰŤ˛X[Q¦ Jůc¬ôW×hyZÄGýYwłŤÍ?w„©¤ďmdś9KĹnŁjňO‰TRŐ8[ó ć}ęÄ}̉żrşŤb$Ć)+ËÂçĎ×b/Ťµ×Çű˘ćű Â-öŚČ‘ť•śŔMšKáOŲĺŔ?ücµj6«zŇŔWTô‹Dő‘xłŔNQ3NYPzĚ©h¬±óĘî-dí’Ťě=Ó÷ )S3-؇ZzđÁ*^.°TůôIĆ·2–XeqJI ‹ÍÖ™rn3ËýAé"Âŕ;ŕÔĹŠ‹öžŮKcÂ>ů¦lFqąŠÍ;$Í4l3R.~JLŕ_ŁČXęëę+čů먂)V€řĹÎshFŹ®ÝM9šá ALĂßÜ•ľ\F“Á űh”_óŕ“Ô6ćH¨1µ‹Ö’ ZąMîŽÓCvEC6;ݸ/s+_O˝î~¬ŃA»1ô{5YŹ™Ą.ŤŇt„>x,­šŇaYęľS“{˝7weĹÚŠNě$Ë×ôo”\Ľ ô ˇ zĘ4Ľ€9­-FZošŽ‹`zpŽ#Ľ¤$ĎŇŘQŐúf˛pg0˘k3Wť…đöi>y^ pśůű,«ÎŐf',e>đVů´Z$/đ0 ‡’6¬/]ż¦ŚN>^˙`ş3ŮřHáŁ[ŐŮOMĄýl_Đ'Üíﹲ—E4ćő ¬ţV°8Ď7O§kÓ\{-W ˙*ŐJS{˙\"8ŃÄ4!Ç}Kfđćzßń¤ ë_äoőŇ{ĎÁ¦e:Î?ţe_ÍxµYŹĄfśÍrçąv•Ők­Ţ˘(ń€ÇĚÇÂŁ?&ďÄžAĆţ•@छKď>ôířŁĎr‹ü ěäP™t¤Ŕo– pvŔ„ÝUŤ­@»÷—FŐQ^¶?Š= }´#ŰíŤ1GDA{1kÉz܉$u}¦ŻwŤżĆŻ †`‰…Ţ /ţ ™LŰČ… ĂÂôŚŞ%ĚĽ|ß\m\Â[ŇήmΓ+,‰‚ H~)÷ĆD÷ţzyŚ’ç•˙Ř‘"7SĄ^~÷¤HŽ3-Ýňާ¨]°őşU‚• ?hęˇÄ죲Y Ś,°˛é¸D‰^:AŠJËşÄ;`UŃÔŇYýĆš0Č36¤p tŐFrt â¨2Ż‹>.ň]‘ŕ8#Ć?˛/ţeôk76’c{âű'RPÁ‰í,ßĆŤgWJ„^$–uE5É×ëFđdP~Čţşs„ćµËvÖ)3‡ĺ×Ôű¬qt`ë5Ję‚Č»–i©ŞPµ¬ó+E§ú‘X‹Ö©ňď9=Ü®TH1Ąsë źÝ/Y—úBž.îÎV€Ń„<Ą—čëßęC*#$˙dSPS­pÁˇÔÔ†u¸ďţŢUđö±AI đ™ hîŽéÝĘ,€8łđÔhŮŔě/l–[ÎćŇqM} ™:(,ľë¬7§Ř‡Ef˘Á€ ‹× ¬x¤ßĐÍ?„¬·ÎIăxÖďR-¤„§fľĹí•|Hwť…żĹ3ć;–i}#îăJJňŔ5€J’‹ŠYE°oLwľ—ŻŻöúböŤs‚ęďFS'_ăÂusšNç…ž'ó“ *@¤¬yvéŁçú•ÉßüĆ|DţTRŢ„Ľ®Ő*8`b&ňď:—Éí†áD¬ÉŽ’5§‹Ő¦ż»Ő¤uäÇ4̶ČÂŢř,¸Nq‡<ŞTľç­}…óŤĽÔđ÷Âń쏼ő< ÉŕC%TăÚîh§ĺ@ ˝żŇ;¤%ˇwĹS|Ž„Ž•Ű‚.a®ÜS[źôéħŢD‹śëů6ą'#®fŕřžżnŁ}Ěą —36'xXXç ¨ˇޝ͹±´řřĘI‹8żâ„Iöż©9‰>büŃn¨+L€EPöE÷d1#űr÷ďZgx"ŰaŞ›/Ź·žłŮ"ÓXč|­ž·Ë hóÁ{tŮţ.Ö?k®wŹGg$§­HŮşÇţ‹šTS—ŠNŽÜ±‘G‹$ÂZ;ŕÝP=Ŕ¤ß˝Ú°Kµ®óŹŢť]Xľ:2[ Nwě+DnNp)gýt2Ć/vÖq§XÍBúŹďËDI˝ĺYŹŻ†F¶If¤ľĆó‹zfĺŽâÇ9ę/ڶY•äü+öJ&}l_´â5’Ďu&Lk›ýŁbźuwL-‘ O’ÚCőžZł»\ĽfŘwú°›hg?$˙ŹßţçúHXѱ<4Ĺ eŇ—^§ŞÚźaś[R)śŽry0ž4\i1ľ>8J#ňËýú€NZŮ/†•tFpɉVĆ)š\’÷]KÂ12Â>@ËűĄ†!Ëď{–ď׳ÔŘUĎËxĎ+HřÂÎł€Ĺ*˛Č|Ôha,´b+‘ f`bri‘ôŇŹŃČż:nô dů09ŻMĹ›M^jׂ:ZH¦č H üźV˙·QŞÄÔśÄ#Ň•ąµ°˘(Řś `·+i. :qĺq·{˝ý×Î'OŤ?áčŘką‚Á]Ž‹ÇBaŢdös)”Ś98ZĆgŞ ;ý.»v‡ÓFeź¨ 4»ă<Ęí˘fžĆeśĺ„Ú±yĹł¦żÉ·ÇEľ4 ibÉţcĹŻv=Ó¬!ŇO—Ľ^ †ČňČqµ:UŹd[łAukd§Ž§@d ´0Ůaϸ‹uiŰZĽŐˇŽNś|Şę ĺ‹Ó–%˝Î¬ý( Rź_ńĘĘ1 ě©D”*]±Lrtŕ±t3ĺ•dřp*Čşa˙noĆÁi’Ó=˘]6kݤPü¶ăťŽëMÓ,aůPüŘbUřÖ­ů$¶=m•°“ď@?şdöl’1üS'Äi„yĚ÷-ó¬B¸oš.KVŇnĐ2…x6D$&»u°Ś ˇO?•T Ňú#í}o5H‚ßµÔ F%…$ČöÍH•żs űFwH —mMË1GÄv¬ön}fRć&őüwH.14b%MWĆ׎q˘°>Ť~ÄPGnaéEô3|k)&3řdß˝˛c€=h¦Z" +ŢĂ»ţ^kăgˇźRÇľH¶KJ5zŮĄF|“8h†3dďőM>ÄhwŐ] ß47u‡PGFG×bLăeXĐ©ďo&zW€Ł»lŐ0ď~mÇ0nćâ©°ĎĘśôąî“Ö+XîĂÉb4byy}n×ůű}†fK‚J–Ä]1–MHĄú’Ą$m®bňŃ’§ń• ›ĽNɣމ›ď[{r9öś ĺ9Ł0—{"xć™-—˙äMĄ¦ŽŠR,úLÚ\@~u¦xôÓŮ©¬ńE#ľ.Ą8Âśi«‹vĆ÷ťRâµpü•u€’Ë;z<­ŘÔH?q‘lşváąSOy9čBK"6XEĆ–$=ˇěM~±ËKTő[ööR G‚řŇjM(E‘9‚ţ*¬ŚĚ–lŚOĹžś/8Ĺo©-$A`3ťý&ŚĹsM;ŚE™@NőěʰąrK*Ž|hę‚Po(L˙ęu§N€°Š¤ĐO&™ßůMآúŞŚX@ö—[Ńy—Ăcc Yç8xĎňs¤Ü70ß´yÝqEi‹|ưŠĎ‰ŹŞ/ąŇ9ť Ă(r ZRŹg‰ýđřR–’é×ŢÁîĽaÁ§ÄIż‹á/ŐŘ’`ă]|é>sźü{Ä/Ą4U˝ř*ĂŃ"d=ÁśâФ˛ď«SAí>•:× á,U”,ô`Öăfj©‡”?äîźQ“¶Tů¶S‰'Ü
  • m±IÖ}Ň1Źop`s¸¨>Ü·˝Dą™Îs¨UůÍĘĺg×{ł:·ŘÇög…< ďWvU>Wc†ilŮ…<˛tW¦ <>Dl‡˙V(nϤŤu-9)Í>ÝPv84E(»xŇž÷čŃ7f‡©gç ’‘c OCs™\řn`ęéDâ÷Ub:Ó Röő"?Dú?×Näë!\ĎňdÓö6c [n$GűÖÝ)Š\¦čĺD¨U=ĆG4ąŮÇZ€÷Ö±`C;xż”qoÚ…ŮŽIżMM…-˛áŁeÁBáJĽs[ăĆť"^qAgăŻŐÄ‘ibAŞ“bŇÇ<ŮYöá!ÇÁÝľ-`Lľłěćß˝4ŁŘ‚mŢ~ë|އlm¸~-#­L™Â¸X×+ ňÁ;"«ţßőÎ>üťA€´:ń?ŔÖpKčĹF¦<Í€/3|†řĽjÓKŰ}2 -{] T šŰ1Ź‹Ł^2€ćĂż‘ę»6ť1‚˷ЎDZ™ZÚ˸źnRs*|ËŇq¤ä;TŮ2«wśňŽ´xC¶ôŠÄŻmáĚ ŕŤµÉ ˝ŚäÔ±řGIÇeD»iÂt|Ň|É©ü{Ô˙żˇ®˘ë{é›&Wc¤WŕGĐ1Č_iVXĂ–˙Z\®•^wŔJÝBöăáLFm_ăl•9÷Kyĺ|Ý*2—´Í»sV#u%|ëB>†˝´ĚfPă´–˛«Pę$~M˙úßw„w‰F‚N#ŘΔOŃČľ„ĐP&®Y"?\Ąn°±öżÎ`ަpŘUŔ­>YŔĆʬ/sUTťi‡ca$>,ă}Î6W_U.·¦ďąŕkť9â˘3-OěíÄoŔ}mŇ:gYFFç‹Ä~ʶí!†ç ĺÁÍËľ-QüČđD Ţ8źńŇ3\ßüsě'ń®ž™ÇvŔXĆĚŐhZ:˘"EYÓRÝŔC1xAśłčć:äĺőw·I§…˙FÉÁ®Ő­ÔZŃä±Lő­WýWCv2Ő}°Î3-ŁPŠ”@«m2ڶŰI„I=~6š7>&i_ČüMrWź¨z0Ač öHłĺuěďU·3óËăá3¬ÎŞ3&­AZ4ëf6#žYN§k/Ů}¶”[´‹•ě^ö¸€c¦'Bóş ×;誂»¬eAŞ›Ű§× unni§Ť—Î6ň•ťçť5ĽzŁS“ 9ęâŽă”×É„ÖÍ$?s騆N[@ůěáś¶¶5oĽµť ĐQß/EZV¶}‰Dp5Úkęć =rfˇY÷ppb­łĹ0˙ÖXć5\Fen&ÚFÚśŻ•ćé3v×—Đ;´XťËŤăâÄBdIŻŮ˛»ËÂrâÍÇĄPów…•6-3¦× qÔ€{›A űč5 gîďݵ“ŇxTDŞ7I0=gô;č:dRXť¶ÇĂđnđĚő0T× Ĺ§AdEé-iá¨Ă|ÓůŽ$˛Ĺ5ÓjtăśĎ?E‘nŻ<ŽZ‘ÚÍR CÁ9ŔÉŚŢŻŠąMĎׯ–Řo<\>Í“ş9 Ȩ’ž˛5Uj(ÎË08Z¤ ţLäZ•™šzr1I:°9˙Á<„ mĹ@•‡ĘmŹ÷KF‚)”cÚžŃâu@„¨@tŚlżĽó·ĎŮG}Ń8@Đf(•mÜçvG§˘ š•:K=÷ŁÓî,B§’ńŕ‘Ü”ú'V®®.ÜÜ%ÍťZSŚać=HřULžťůK(Żgźx´&bfކ0ťbeC0·ŘIGCÚ¶ľkž_+wg|Ý‹uĘ^b}RŕŠC_¤|Á„[‘ŠWĎ“,Ů8`‚jÇq|©qCo°„WşĎT× ęÍN’]'âA aěó ůkŐpLHyKÂx@Sâ™7Në×A8v¤}ů¸,šfşĂ®”ő®ÉŇ}¸}OŢüô7ž ÄÜŁ˝˛I„§~pY ›ŕŇ:<„MŁ”/Ťť!y"ž!h Ó2Fr¶Çń>¤»růŚ­Ž ăőŻ5ĚĆFŢ3^Ş˙‚iŔđ‘,KéfZ.ĂŁíSí~>Ű>Bá.æQ“~«3Xś"“h¦EĄJ6Ď×ú&˙éOž ]qýýPŔ@[ÄČdˇÎ‘…Ĺ艰YľkĘźŔŰ&0â5ž÷ËJ=µŚ?ŤŠČ/˛ů…?ßĚeť/¬˘ÓߡEu¬ž8>Ú 5%59y*ŹŘC Ř]Ř  ×丢ĹK9}Š6ux8ęy2đˇúaŠîYSMÓ0‰nGérÂ0Ůad‡‚[&ořJY“©óx¶ĺÁEž€ÂUäjśÄĚ€ú ±>s×ţW3ŔAm{Ě6[ ´ţĄ!^Fľź­©?A#v„b×ŰCę€Ç’½; FĽW¤˛ßńoŔ™°5sŮP(ą$;ýë`‡nkBűÎ;çą oâž?ÜŰęđĽQnéĽŔű'±TĹj¨1{Łâí\XťZţ¬á6/đ˘Ú;Hâ¦@–đ`CcČ×_ E”@sF|ď¤Č–“Îë›a6i]îJKőұúŚ Lľ ŕ&§@WŠô& J ˇµla51z—űV7{ÜşbÝŕHňżTÇĐ‚:'ň!{çĽ- tŞ Eš‰ľÄVĘť7cÚÄ?)­Úyáܶs‰d­AŁU$ćí@şýG-N<ĂcaĄŐ§Ř,őRIť×YŔď­č 5{éÁĚVwÔ¨ó›ô]Á mśĄyi4®N$]đŕ¦U•Łs»·ë\:ě·„Ľjţűí;s†W@öqÍgóˇuYÔob¦ü˝1ö(mVyôk1@o$'ß—®YĽ,ľ¤ŞÂµ"ŹĎÍ©ôť.ŚŁ÷’Ř&QĐ‹2 L—¸ľSµŇŕ~T;żj(ňĚvžĎüuC Ë…ňCŃi”dˇ¬–ćăí®·Ž¶nwH§¸u‰¤ěx3Ü&1yO™iîűýáÉk"Ň ëx9…[xĂ”WTvÄ}ĎCݜ꽺űý+örC'Ż-S&Č´ÂĆł·>ŁQ =G ü<śx9®ˇ_‚/>++NČ.›ję/x§`‰Ý…]g;ó?tFĚcaOúŚťëÓ3ícŰfK2Wr€ąJc fWŇŰçYܬ°|0eŢ™ťT«r#‘:4w2scNޱ0CE6‰WúNłbdßľJ”ŃYÎźĽđ’ÉäGąËzC4ç¬wżŠűs1Â2ä…$wu.ŕ‚©ľůu¨ Ćđ˛Ч7IâŰxkĸIĎ=Ő»vl45*Ĺógřöę5\l™/]w Čů'c2´D¶)Gu}ę—ćď-ËTň6ń ĄňćĂú„”}@'7˝µRë‘‘[nKşj ćAB^?űÎGt/dµč'ŘgŽ)-˛Ť ş71c XţOE+ZS˝|˙xë$]S(Wý®ú‰°:—đi¶Ú©jË÷+ş_ĚŐŰ“ůľňŮ×áC{ÚÇŽ}0@YÝŽŢďOß’Éz04sĺQ®% F©»ť”ç¦q‘nšćĐNśHš±"UؼĦ“۶óŰżŮn«}Ä@_ŔfP‡G/é 35@"ť(CµľÁëČ%ž•"ČVDą§?ý‹żtŇN®0Kńçn¨ŚXW.inÓi• Ű$H^ŘaO@˘ő˝ : í?wýZ ÄłŁ(‰ţĄţYĽúásUm„đşę÷^„ę“çŔŔ=×µ/b ßëĹ8ޤžňŇéo kA‚ QC,iIĹM$M5 TҢˇę~LĆ8Ó6W_ŚÚ^^f˘ĘĂô¸%±Žůa,vCŃ'řßµ·Bźń„>°ď”!–Šő^ÎŰ‡ŁŁL^W)3ĘúWĚE–Âj$ëÚŁG`÷ĺ­zűł­ÄżÇ:Ă23o©NWk_nů69Á*NÚřfź'™ˇÚ*Í (*B4śüüĽ^ŮqŠź5˝Üá0ŘdcÖţgZ …ĆąhX{á€|´Ő śJÜv@ŐGP;äňłź†f(ŘŔŤ(^łyë0§ŃáYşź¨ňÁ¬MŞŰ!Đ24gŮľ*yÜhŢzR@GËĂ[=ŰË?É‘÷ă˛čOo›;¶˝áe%ôśĺ—ßńŠ_”G˙j68+ë+ßŘ«&Wý›OۉˇŠ ëX3ěŢ—OĘţŔOS^5µN$x#ʲYzÝ™éFÇş„žĹćĹřłÉݡ†ľ´!¨ČňŮ•n)oˇQžńO`cĽy DĚkľś­Ţ\p.íľž÷ g§#©OÝË]}©wüŰ©¶A=©iů™QĎEř‘_aőĐÔPë™BIµĹ@Pöeeí}mŇí~‘âÓ]f”˝~úşRŮ:ćb‰ČMôŔZ˘R?TĎYžđÓj„')S±j/h(č—Ąxđx"ó¬˙*ŻŻ ż |çUY5ăC!7z’Ń/âXF7µcŮCÉF˙PőÓIă©c ąłH§Q`^!iŢńý2,`yţT á©8QćB†X"d>źŃL t¶\‚ž ÄË$Á>l3Ö-j–AU˛YQ‡RTi/ĐÄU˝‰d7ţj•&Ow9btăbB˝›¤«Šô^˝I›ęČ’öySÝÔzJ…҆"  ň/Îąä. ČSpü:i•ZĆtşĘż¨ÝJoő›ă|kJráóÖuu °”źwǨűˇ‰rb۰§Ć|Ő|;Úé?N`˝d*3‰ą>A®‰Ň§?ŃbÄĘŃűhmń‡ss ł•·1Ăëy“ Yg ln†Šżě-ł]‡[ěáůžŞc|Ł‘ÇÜWş¤.GQ‚+ú~Š»R0ؤĂX¶] ńžhÓH{—¶0ĂŹŕ [ah¸-°=¶“č$ŢÉÓF0neI¶čzŇ«ăWőJ§“9qâaĂNy·Xń ĚΛ^@gc-Ű@dßkk6·öÎ?Îiʬ4mfŘÝwĆ› ™|r» ?›Ň€ŕ-Bľçé=ÁÜĽŁâOđ¶>ŚÍ቟dŢ’ÇiýAń‹°‘Ľ/FT.3» ¤<ë4ĄŔÖ2ó C¶¨­{÷]Grž™¶§W 96&{®NԨۏß@źŕ!¶*żwŽpŮzŕrŞÖg‘gŮ›DAL•\%>řeşÍŇť‰Ő—*Ú1/˙< ňÂ"±OX2O*ń28AŚQ~HŔBŘj'čx‰Ľ(Ť÷ä> cč ˙CˇZ0 >zú‚oŃ|É)>mÉrޱ/Ę™Oüy Ć{‡€MăżvŁ~Öx…‡ŤRSŢÓ® ÷k"ĺóMD€tyĚźÜQ磳YÉ÷¨«_Ĺ„ľIęř}zC\ŠÚ&âČfź'Š>ÓŰŠ·“©4ô-ÜD•PS™ŽI%Š—®ÁR/ń¶•J{üÂ>ٱ´jĐn‡™oë#ýNą‘$`3Ukß@ś,_ľ\Ě­kpZTŢ8˝ž{v€ŔzžŽů9ĂŚWF”°…DŮ–™çU›P%5©ź±Ó#YŐ8vÓGD3Dж>匆‰C>B ©Or†'Đg‚”F®ËŽ Oťţ]žýŰ$cś~Ť‹ĆűY˘˛g+­CČ ÷> ‡é*ďął›…yO8f7ŞĚ‚tS•ÓGďäţóÓMDďů«FHA7hW«üw‘Ę$e]~xXĘžůX3Y˝ˇQngfááq·şş*Ľs3;Y`¤Ä›2ľ·­üđ=gtlĂ8m‡…ÔäüjjÚ,dŘűe‰ÝXXp¬E,ɨńQíY÷|ÖáłŘŻ:kŞťŚňŠNXç3+č\ÁMĽ@ˇŐź.&ď:źĂJyRň$ŕj r(ş$<®§"’xLF†păĐ$“.cő&w@Üâ«°tî?Ćą^ó«ąKáoąĂşJKŁqÖ3xÓ>IęÝWôśt{.8Éą ŘŔ‚x™Äµßvḡ*ż˝ěěźČě.’úp&íCsüôýąńO‹‘wC¬$źfN:]l–[áۇě;n|gŠŞĄEÂçűg˛Ź@ ş—´ŕP–ü]ŞKR‹x8ĺč$*yđbݢ ,sÝŕöňŰ’SŔIä^ż|Çú¶‹ WTë+eZŽ«“&•.^–nQ ěgYDüą|DL.™ă,°8˝z˙é[O­lyŇ 1§,Őbđkéîąq‚»ő4ŚĎÔÁáĐ;ž˘cҸíśl]Ťć](‰ žcDfc/ëčv*1±X„©zÚŔo(ą«Íl'K 'ćŁz’‡úŘ$Ż…,/Ń2!…ÇI?×SRÍ-͇¬4˘˝Ú–r]§P[P P8‰ęBó!jôŰĐľ_ë«ţcö¦Ď ˝Rl*§ro™ŰH'(ń] ‘|Ţ‹sÁRPăŮ´f}Čů3 ­….†+>öŤ™+CŔ©6îp–nš!Ř GSaó(đgZĆĐ0p•fś×t¦a–ŔçĄ/=(ě;‹/˝N{sčűý˝ďe~Ě2… ›Ĺěz‡čóĆč•óßl+ —ö苿Et8j‘łęŞúHc_˘ ˛Lő}­K~}ŇŐKÉÄK j4ăçEĽÁ ‰Gűp'¤fź?UôŔ_ă*Ę‹.·97ňč[|{/D‡îíiŰŠĽ…* ™ú{K4ßÚy««ŃŠ2řîŢ'»6"si6ĐfÇÝ«:!řtfé™ů}Ĺ &Óü_ą=>ĹU·Ĺz7O·łÚŻčr×bžěrGw2Ş[†,W¸˛rÜś›1@â„íX;‡Aoja÷ĺ´íĄRYD12Ă‘Ž1&Dač/č†Đ:8˙ë‰&€qăťRš ţ’,qôüM¬‘-µyĚËŤţ0đľ oЏq üqTÖ#¬QŤ¸šL8úłąp$0MĽÔ”%r–N—LÚĹěË}•±$¨ľ2ł.ŽbФ«?i@EC<{¶[ň˙4íčSĐĐby0;‘ĂY~E‚Ľ÷ă#/†Ďü~{µĐ%ĆcÝép¸M8\˛$<'šź;*fúXJaýç=ĺűŢę‚ý¤<ż‹›s•ÂYißűí‘ÚlO#żV C‡tXߓٹǀKu$‚¸-š=Í€Ě ę? xRšDĘŠăvȶR¤>ĘH?úşáöÝiÚúUjÓG hŢ+­äC ^ZÜzÖa?ĘĐ÷÷¤b‹`&Żžé¶A¤dF­Čťł/˝Ěu °+ž6uáźX} ;$şş´a F÷[ÄĎÁ¬D’EúI>1L[ôŐş. fM™…ęŤVŔÉ×ňĘĚLD^Ź´FO~c!L(A:(Đ9 á¨(Nőuy (LÝMç%ÖĂ;Š÷őŹ ˇ#Ö[ lŐŽdßdaŤlBöŕ8Ň­ f~‚żŔn1lQöpČ©Ş7ăĂĺçj7™ďNOh݉©<. ŞDÇk=¶“9Ćăő±TĚ+.口0]´á¤ŰžzVS`ěm^bU#ŻĽAWI!J¬idë üU­“;Č*ďp<Úňn˛,'ď'ťE·(ó0űM0?>˝ ý x ㎆yy›i1Fß#]cÇVwc->vIí^Ą<Ô†ů˘Ú‹ě:1ď˙žął‰$č5C‹¤ż_ Eľź0źMߊďĹMmÁ´% ¨:BĆMđ¨l¸ľ;0RÔ“XĘľá9],ôË"±ýüß|´2\ËöpElçĆQň›ÍŢuŠą5ÉzAŕ…y‘%˙Ŕ„m¨|*˝™÷€š×­7F´„J}Ť¨K1Öž@“­U zŚŤ÷ˇŚmĹ‹ř´…;Ék ĽsÇ@‘ mŕ•Cëľ8i!&°NÂc'ł,î¶l} S{A04\Çň4"Í%BRÜ),0f xͨ$,–üE;lŠnpĄę1çŇҤśil*Ző¦7ew  úŹsNäąłżÝöâ”± ŕ&iNĐźlwś™ś‡w žFdP]3nRpfh§®VFzěv˙)?€ăĆć6“^0ň©pö Ŕ¦h­ÜńÖ*)Ĺś•jôt¤3Şć‚ŔĂĽŁqwSč˛ü Y&yßż>n`//:90$5fćâÎtn"ěóx…©µ¦ ‰ŢçĘZĆČ"9K‘í¦a52ťëѧ5Ż\ďĘŚK$*÷ő|&>®‡”á˛î±›8–O°čď9lý˙qáxÉ]ďá.,Ą< ßjLÁs‰ČŽ—ýhÜŰŠ‚CN팱#0ߦ†e(ĘŘšť5Ä;Ŕý|sőĆîzědřÓ.Ľ”ĽŹßš¨jčycVYY–+H)c/ë<Ód쨗k!=·’łĐůc6#ŃŐú™j‘ â"¬Ăn"Áô™0_ŕ1Žnc7´.|+BvYc›[±yÔř+tKź¬â’B”JóŘvb&g&ë–ŘęÉ3¸‚[“ĚŁOÔ\°¤5– j·haáWv/îabeÓ4ŠŔß'JŻÍ‘•©ĎCł.Ł |á ß{q  cť}ę~%ţÂ/ł 7qy~¶ő®» .™›3Äë,“xi=7y4vC×Ű«ăđ‡¦q9×|í‰ŢN€ŹĐsęÇ€$Ż{¨żzrL 5OśÉUŹaˇ=ŐO’íÔ`qô ë-&§f_-wÍ@M,ŇĆżN3IJčkYă8d_áçŁĺ/‹ ° uăěBUĽGpPżÚÄ‘m| č±#2š·Ć+veĐ»äŁHäb“J‹µY^wT­Kz)č5•Ô·{â+óďÔŁaJbëŰ÷©dąRJ!©©üď˙Âö©Đ?B<ÂHôď_‡+CEb+‘´›•eÉ7«”sž…¦í Ă[V ý Đ´ ú7śM´D=,t.ť„%î­śSAŤ1VŁŃ¬6÷«÷ąé‘‡ËFŹĘě‚^Ľkę¤/ŠŻ\ ?Łđ¶˛ć/_vż÷“qF¸W‚Zf¦;5>„ńr‹ĽZ„‡ĘEÚMÉŇ>lŤUXą˝“éđ@E9hm«Ł±Î df\|â˘ĎĺĚ·őq*Búw¦QŹ»–śJD ůćG“Y«X‘Ć› éu}Ҩ‚ż·Ťý…lmŢhŔśá?I{Ćfˇr+™ü'L9řÔô\…ÄMÄnbůů A`ŠtÍ,KcŢp€/Ü6ş`ĐúŰ÷3 żHSŚľ@Š~sy6&ĺY‘Y@.pţŞ·Â0ýLE°ĐeS>ťcŃÎ;X±ČxňLŇX¸¤oâ~QŤĺ©‡ő$B@ě2 Ї¨GŞš©˘tY:tużÁ**R`9 ś) ™¶śX dCěů°âˇťVZů¸< "píĐŇĘIá”`DzŚÁ^ořÄÜÉĚo˙(~âp ö¦Ź4@‚©:ÜK­ëÁwË%‡—ůTK ˇ űD‘Ɖ=‰WAtEľ.Ľ`>Ť™-9ĺýř€Ö¨V®Ę3şîWWîMäÂř;îiAť_{eť§÷ěÂcťsż ä°„B,ÔÉ8Žb„le4#®9–p”R§“(ęRwäXűh!5ć-Ş»=™ˇŰrN“—řŐTăąşHAňď×+ěöśôtˇ¨éĽG×"A‘ ăŻT‡`ř»|Í<ĽKĐŇġŢCń§Ťvx'çĐńŽ×µZž#`źçŽ9}[p’µJóńĚsü˝Y C¸‚1$˝Ô\ZŻ1äű0ż˛}í]oďA»µ÷ž¦ČĐ$ł;W˝B'®ežü śF)\˛—[Ž@y>t%0f;‚x™{L&ĐPeʇ%0NRŇŁ«ÖšĐ Ž>FpŐŢĆĐC›ôÄy5\®L?˝Vý(Ti~öAbŢ)eţX·hZÝ!ËĺöWÁńŇXÓĆcCŁŔ™iŇ­Ŕ_'Ç8l^S’Cýl}AÓę†úśç9vÜÓ˝AO›Ťż‘ĐŤPw±Mip•ĐĄz|#đXq‚ĄvGyIź"5 ÂÉçÄOótúCĄ·CbVHŹÝ”Ă(_Đő9*Ń,|XO÷)>čĆ<á‹˙żDo0k˙8=VËŔ/ź(ŠŤÁË1Ż3×|ňŇá k§“|5câ{·CŐj'°ˇÍbÍłrnFgj¦śÁ>†^®1Ş3Ît¬@%°!R›4¦$ż|ł%2o=Ŕ\R¤ÎŘ„3ߏöĺđBů{ţÍ­;<2kz5ľ‰Mq@“ˇy?/ Ž^˝‰éăE9f(Wž)¶IŢÄü{ÓR,(™,ě¶Mć‰'|Iü»`Y„°5đpă=Źš ˙-=°L!6ydmŽ-jp$27ľ2pé·Wâäâ&Ú-ÝŕŐóÝ[K}…R}Ĺzg´Ł±ś‘%‰!úwä“_çhóbݶăqM†ěâ1kţ04Ź»¸®Ň RÓVZĽ¸zuEC˛śÖ)xč˝IaJMÖĚ ×†÷ň\MüN Š|>ýESĆ4焇 ༳9čw7©C!ÝdÁíA?t?—ń»h‘VÓ.[ňžË§A\~ČÍŮ®XŞűÁ@Ťč¬lg3ć’\ˬú™«7HĎFąN'±×wÍ­ť|ŐŁŇH`ź>ĹF°ëă—  š‘ꀱóë4.aĽôçĺ4AzĄ-ßNýĹk‡ä´Ţ|#P/äĚŰě¬>i”C7ömÄŘ"NFí)ć´÷ &óŻź éÇuíbŻv¦ąp DWÝ&.“ŇŔ¬e©Ą^ Ź/XßŃ$"Í-*‡XK{_8ţĽňń۱gĎę[Ĺ\µ_¸ÁŐ¤ŞőTĹČ,…ĐhieĐŘüÜ»ć*ăŚ9ęČ Ý=hĐSnüîžË•Ť4<`ą˘L~›–bÚÉÓóŽŘrr,sI§’­z{»â\ĂmÓBĹőá4Y…X Ě”NIlTčŚŔ1‚+ôŕKŮ_1qűîŰ–lĚŇć)EOńA3ĺ“ hł/×ńăóŘ]‚‹f.w 3ĺŮY—áč‰1ę{üřj‚`‰yÔ˛.5†ŚňĄjĘR ×ž!6~‰§V;2‚ĘTŇŁLĹÇbŞiÔWxr  š§úěPuU ¶ďţN€ť&łuŕŔÜcĄnlжÁ7/Ýä˝ěČZ1»ŁABH¬Żj£Ѭʿaá[¤lŁâ¶ó5ýϵ›nŮ‹FŃ•@Ľ¸Íř?_ ko ÉÂ29FŐČ.Ś"Ö®ül=ďţ&MbVož†ăÖđčË'˘‘‡2%W˙ĹVřW Zý‡Zśţ2ĹŔGP¨ö$ĺ<„'łz ňM·cűUgJŤcĽˇÄeVő ŘîBŇ"3©m—ý(~ď« Żűňo /ÇMŽ÷?0§&Ç} ý¦†3eN•hráWŕűMWű†¨čűó4˝2âĚëvMí™ “űůŚÝăŇ+€&!uč»ĺN|‚Î%_xeJěë%×2ŚnQň«ŕ’YL™)y„Ô Ž—Äkđ¸ő ¬ďrUŞ@uäOîAľëÖÓ%–ŞdOSů…]±8»g†î.°L)UŃż5Ľ;n˛€Š«.÷f“ R¦5޸ľ|˘pÂ[CÂEą˛ÜüËű™ÝĄź®˙AÜ ‘¨J›WŘ»ĐG٦ čâ„ްň9fÚîĹ;“3I›ÖńZöŽvv˙řinŔk…ÓG<Ő hZl˘ÔŐ-{i††ÚŞź ,Ç(3b®Ň(iÓąn”* ËJc‹\ťŃçí‚h¦Ë2*)ż›ţaÉąűW±m¨4Úęú3ĚŘŤzOşó(uçůT¶ÔčˇHÉőxš·ů°g_.Äă=Ćö Ű(Ú °Žź§5—쌓ś™?Áű8Ó¶ŔXyŹö(ÔŐ¤ň]őM]ę€(ʍ4CÜrµlSÁńýoâ1¦ĽŹ—q:7'v ʰâ~yöćĽŘ[é®Fó%^®$î?toę(ęĽňŘuwĹ·ËŠ¬IJŮvŤ ĂryĺµÄ’°Ť(ď2#Çt—ľšQSŰNőnBŤ°·1fŇ“{)ú4ˇ‹•ŰČÂ?ŚB&âo©źńřś^ÉŘŔ]2„m‰‡G“źs[ĄâIp»Ocľ0ĐÁy%^‹<ç-[Ą^žR>§6Ź=áOŃžýÍűĹ8E{_±aN9®ž3č!S3`=¤ŔŞÄŔ•ϵ͞ýĹ….Ť†B:čáüM˘3˛˘Ą™ŰŮuÚB™¨Cü[OĐHŕpwŰţ‰GFŕ0äQ}9˘Äçk@ľwŽ!D~L±3»˝źtRˇX­‹Łěiů€ĆJ ]ůŽí"LąÂ.Ťś·#ËÝ0 Ô:đľ9ň5ď·…7őşĺqĂ†ŠŁ5|Š[ОhlО+śN—›_i{ş0vşĽö×^ţ#Q!żŐTÎÁľĂGŻëŁOd&iOÁEkŐúŐşĂ41űŇÍĹG DYiĘ…'­U‚á$!Â÷Őh--ł× hůŮň˙ĺ†?ćq˛S4n›gO±?¨ęôA7\ŚŔ_šúJp!éŹĆŤMć!j‹‡…:~őv˘ŕòźB$h›«ôˇk$äŇ]ł™zűşÂâÚ¦K&ŐÇ®ŕ 7:éO 3bEĐV MDIeâúé y÷ęTk•@Ěp>PA[zYîűęG‰ÂöŚ u^qZ&ó6šĚjŔ@¨ű®}µĎ8ZÔriđ¸­H¸•eŽSőDţîśýmĺ­f·ZŐďQ“ßTҢ=<(ćć6ër%Ňîą„ź`Ă»/ç€#Ş&,ęJ„ÄşÔ‚z)ˇsî×Wdmwëp@Cˇ0&LăL0|nČb xXú~Ň™)ć4Ť&±Ô_jžť QBӇҨ›|Ăä›ÁXĆČđɲćŢž+€Ľ:ł^¶€L«îţ׉6jRÄ!ÔÝ č›¶őRČU­n›µż–Ý9#P|¨áňĹź>G#( ßŕ›ाh˝ÚG…AŤŔĹ `íN3TâíĄJ!Ł–z¤ë~´µ÷ÉL9ËĐé)Űs‡ŹZĆ*GŻNŃ ěŻâĚýĘŰ– ¬…pvyĐŚśŘř0đ;™‚bĚ‹l ŢnÎ@uއďt1v A)V™FażĐ`÷űe4»%:Ź(ɬ“Żkŕ€5Ë: Ő[Z.Éů›öÄ@Ś·eĽDHuŃľîW˛‡Ř­ Žś¦Oď”V8ÇŐřëa+ü ž&k8g ćůAé‰h‘ÂŤO`N bHđ€ç=óˇĎŘvˇOyâéPzětWe}LYżîśÜ…$ÔÇ“Ŕú)Ăb/Űe¨jĽÚ¸TÝm#·ť‡‹_5$°¤Â`Ô'X¸7z‰Î¸4%jIpńt™lŇôBÔ#Ą:1h\áěůiǶ%ň8qĚSżćĹóŁí/„Ýâ˘eô.–É^†™ťü´¸›“vŮŁlÇ^‰Î˛ ,Ć©˘’Ď?V˘5żřnw oţjůŕő%źNFEčš‹J¸W‚Źş|˝Ďsbž­©•ŕé+ŞQ1`·ś8µ±{•u¬« Ţ€µcÖűő?´±¤ÇňäL? 57«sš‰íŕB{Ҷz§UmÁ ÂSäľ“9]Pľ{ZNh¬Ëţ‡¤’ĽZIëdsĘW˛făˇ~)ŹśI$ôO őz5iÓ1 Čy×*)SݱZŐś!Sg¸ ×y¶€[´÷¶wő[ 'ď?¬Ü¬Ő°hgx•á8‚kľ1Ó¦@H věIżd4¤ź =ę«"ž€ým–.Ćä°P&s»etşžłx3Żě•»Eő٨€=Ł8+ń°2ŕ[ë”LW9îăđ˛5˝Ý™9nTť,–? Ęfň÷Ö¨íúâáF›Dňúsxç÷c5}ź”őëů Y6ú^» Żl¦@oąłMvůË*6éčŇ{śĚ"UĐŻVŘzWZ3™ăÁłç"|*B/r$÷‘]­d,5É#ŐĄńÎRž©ç&ŹłŠőůŢ8őaĄ:1ô 1ۡ”Ú)DXEä}xĘ;Ý)DŚůŞŕ誄ľ»ĚŠ÷#'ÖÝÝlî*SÖŤ€ú±ˇăŞÔUÖŕ×G—˝p&&ĘúeŠ”h?~Mt’Ř9luŘęŰ INä9yßvbŮVĆÔ4–ë‡č…îQöšžX©’×Q¶-!Ű~5´ź´Gęś”`¤@ ’•ĺí‰é0b;ęőHΤ¸64‡Um¤łňHL ţ\z_:)ŐŹ>Ř”Ş”Vě‘–e'Ôű–u‹ŹňĽĘdÚR÷ ßş¶zoÔ ›°g†i¬ …oű;á[ zgÝX†ő"đşˇ:IŹ;貗†Q(oXŘ4­ŁÉŠĆ;fÔ!,ćýKžM#8É+·¬wżŚřŠĚş‚˙‡ńé¬^ŠÚ3‡đwŘ„ľŹč}tP®;«I޸Ó®<1Q¦¤zŇ˙-Ë­nÂkOÍŽxäLą´†ÝB™K•«…ÖŐ«ű,ń™#”t°»,3Ż„IW® uťéZŠăâ˙Iwâę'ٰ",`č;ÍOć[¤ň«úŞ:V2žóşŇ`$D. ˝ĺwQ]Čě/Áţi1ýĘĆ0¨‚Đú¸Áüą ßkü8łDž€őĎ5r+…¦1ZädĽ;Č0Y¨ÝĽbg§3ă^Ů—ÓŢžJeäYeMOěQ‚Yö0gB›9 k–ŰĹł%~DşőŚÓŹćiŠh*R}ÜŮy }ú+%|g𖽚¸ĄĘJÍLŃy 3†“č\+Óa®V‘^/Ö˕/ĎG'\†kĆö™(Rą(©#Í$ŔSÄ×Ëú—Ć%ôr5Z1řŽ—ĺ —µ ś}áÓ?Ë[ÔP<ŤťŞ őł_!MŞtŔ1¦‘WWsă#˛Ţ–˛6| ‚ř]Úşzů?Ü·űĐoóY°ü:ŹÁČŠK7• ˛G jIěšqŰ_@× ăÎ%´;–1Lž0ź\h'Ť~–q#ťµć W‹ďyG3ő<Íš5 ńć»ţŹ\Ăe1Ö˝ßÜblŔ‚'SÄB‹?ÓŃwŞŚ¦j ŃçϲO Éîc€“gM[,°˛yDĘ‘+¤qt>.ĐŤ S´˛úůÁ!Ľ‚P¤°7‹1oRŚuűË™·Ă-™źůFŢ ­ĘÖŠ­‰ĂĎ/ݰQµMh\MaŚűúAMĄé=]+oÍČCuy;šŢeV]{XL­F'ŇÓĚá)[iWŔç]ôÄ ¨;«~şě$äŻę¬“÷'…ćműĢS•§·*ęĚR9áěČ剦, Ń?V}ĚN‘úsĽzd…ß;Ł ›ďݡF^ź† tĆ ”ZăĺĹ$*cŃÔš÷Ý©ŞÇeWâ7ţŁë«‡l+ü*“×xÄö,&ŃÔŕüXu#ZL4_űc9’ĚŘĘÄ@z¤Wďý/X˘Ś isc3úićŘ$ŢD9Ír¦”S»×ß۸éˇĘ:ą¸P†S6Ů=H•ń[Đfzţď÷su]NÓÖ,ű˙i(«ŕ¦¶X[ ěËŤź‡Qw‹“@3ť‘9„žô»ţöv–~DËâ^ţ3ácůĐqڇmÚ_Žµî®€XFl"­}ć7佄ŻÇkéŔ3LLĽ<’”x `ńk*śç‚úi6:[Ĺ;‹¶]עťYtuvŢ’óţÇ:_©đ< °a$µÁźh«ńŹń¨‰+ )Bb€Ňަeśůk’ IjČĄű>ŽÇ }smŐRY&™4ÖoQU ˘J}ú¬˝můvôç:7`¬·Í^—ő`Ý”Ů2-mű·+)ćóąÇ—|m|Ň"BUŃŰŰĂŢ9™ż°2ŔĺI'©Ę÷üáÓ«gş:?HşáÜ=`N§—€/™~€.…@Ěf>‹á±Ďái¤9iHŤvȨnÚ±ľ¤Ű~˝ÖeÚÚîŁĺĹs,ĘÜŇ˙jj”:^Ú”qŃ (Š`Đ=&SŮ*. Č@őV Öe Vůí#ăçmŢčI1üŹ4ŐőG‹2]˘&Č@’[Ťz‡Ý÷P‹v‰ť–u•)Pś…?3“˝SX“>ťý` D™Ď^%#`ŇÎ ŞÇbâ_žJĽq6xf_n§•z`Éd5lW7ŠŻ\=/g` `îňoÚ,ľő©+öp^fÝ7dIQÔ?/Lü˙«—ß_ks"›_iĘą©ĺˇ‡ŹÉËaÔ™G1?l€«™ˇÍMçäŚĺ3c1ŐÝ|9Éč»)JĆV< ţ|©Éú/Ń«Üuż•m°ż×DŽ»±˙Ž1€iľżßµňj-4PV»÷ď.–™B˘ÇXj ńÜ€şV¬pÔŢWő؉­ĹuëpŞ‹ô“ ¤"×Ô1ŁŠŚĺ®É»ěí\čÜ­úB÷ČÎ ’—㥧 ^Mĺ2˘´ř@©D1 b‹ăuńĺ__Öh0Ľ†ë«.ę菔1AŹ&đFrĂuÁŃď9!+rB¸Ęµ”‘ˇ W ŞŕNÎN€3@r ĹZˇŁXcŢűxMŤü%šŠÔ5LĐÍŠ&Ňqˇ 4˛iX\Řuď†řüţb?¸-56N‘]ĚࢰŃ~땱Ó+ČfŻýޤĹĂ0*W7vŰ­rŘZoű>ĵő{Q˛ňź€Ď]bÜtˇÔËő$9«c)†v.[]‘h‚ŚóEŻĐž]bA§r ÉŻřźęÝŽ3hűËËË&N=(J› ßLYÎÉ*¬;‹¸'¨•¤ —Žvâë$Ä 9=ét=xMÜ1Š_ŇŻĘrÔbOnţVöjOFV­yŇ:oL%&U¦=Ű8#‡Ł(‡?Áľ˝•Č«“4 …ÔÉ”K$ś!‘6ď@ŁĘŔÜD3uxŮ?Ě:‹ł/żv¶5đčP*ÜžMÄvoY۬~ĺ¶’KAs'şä¬h(iťŽ7!äÂ9zÄ $ U”»R÷N\„Ś+ ßĚá­.Ż˝ö1^"&›…ő8ŚOuŢ©ż×”µÓHţ¶J…EXfcFRç1äcÚm flžüŠ,"-ˇŚ^őÝ‹:»RřD´ĹgÚ´–֜㏰ČV93°¦-Ąůśkh‰Öae;ÚqŰň¤´‡ţ~Ë•~éźuĄ$Xm§±[c`^`ö…‚ĺ¸Ďýŕ)QăłČ°ŔÝĆ:¤Ţ‡Qsń™Ŕ…“XoCă\św©Â¨8­„“%Ţ\Yy˛çŮXçÚÎQt¨ďĽŐE cÉŐGL®wë µü4ř­ő¸B_‹D{EîřGr’6Ř÷őľ! KňÂţě¬ëĄ{,đfí3:ÔÁ&ŇšBѵum‹`hlJJŔǶ©°k˙\=!mç6:µ°‰~SŁ:ŠF]UÇv§MlkŻ5UíďVź~´śC‘ SHMśx¨l w&gIj˝üŘÉ ‹]âxcRWŇ —ĐÁaHöôěi|2śúŘłű¨Lx9˙Čűčl©q/4§Ĺf ŢOcÉPNÄpá=É´ÎËF,-NŃĚřŔńˇÖS”ś ľp&’uö%öż˝F&$GegŇŔŚITŮ;/µŠ{sѵŤµ´óbv*Ď‘¸„±^oP*Q^=ăO®™ŢŹL/{Đ÷cpšË^%aú٧˙(.ʞܱ©ťoÍW,ź Ď#ôzHtÝńŽ 0áJ%§Yć­s w^x/›C5·¨W[c´ÝŁl>Îk:“.Š´ A§®––§ /m`.ę=DFŇvž 2ËtžčtÇĐšJAAi™_„ăJn_ż|lĺÄÖíZ ‘U‹0ŔÔm®Ăli„;[­«ĂL[}˝bRšŔí Ďů«ŽsßşÂ'›éŤoµÂF˛¦¤íâ:p‹É†Fě‹^:DVšűľŚäďßéÔ@šf_ř%Ź{s­@´tŹ–Xeý»Ď_ËEer‘t0°ţ‹|ág/ŕÍËRO%Áů“Pě¦^¤™Ö‰Ń0ú(dŮĺď?g,¦·ZďźĚŁcÝű© ńÎZĺHf<ĽT6®÷5 )ż«> ŤěĐSŁř0–CGł <†đ<`Ě|¦źÓ?"¦ąü`T¦TŹ=ľ ^ "JŇ) ~Ş:Á€Z*h¸šuú ‰eÎdPDýČôˇţ݆ü>"ěýŘ#*n®™Ją‚Ă€ĐńçxôŇßđÍčä“řrŇş¸Ćë6üçz#E !6ki=űYĹ~ŢXřŕ»%śwä-÷“Ş_1ümş@ŕőűC´źĐ3H$?‹0ŹÉ8Âî­‹üW}ł×ĽČ~Ý; aÓs5Ükb]÷=…5´ě°ŹH†lń[x*!Ť6¬ˇrđ}ÂŤÁÚ- Ö¨™që+±»\Á–ŹKď¸b[BcĄqii渉ąŇĐ;ŮzEĂ »sçę¦Űc);Ń6a뙋-I.h4pŞ;ATPY”Wľ^;›óš°Ĺ_%đ†Ž‹ťW-Em Vw^ňŠŔ¶Üŕfßű 6¬îNJšçť\z^¸¬´­n:‚. E®d ~´!ŃďW‚cđÓZ=$ąx$Í/x–âG¸gˇď&:=Gl r€˝QUfa[Ž7Źű†Đŕ1CY`!›`Ů´,č{G*Ş‚Kśąűp5żÇS´pµôťĚĎäv—hJKř7 0»0*żvÓźS¬5ßY7éë_›@˝Ă©ól›˛+ÓËďă·šK„uäBş'¬%·ű‡ź˛Ýë÷’^xš9+Ă‚tÇJÎm>MźÄXáŮng˝“Qz0`}rýűŁ'^ŁrśÍ-v™ť§™ťÄ=w`ő±H|Ň9Ý?ŢRH¬x6.óq*Ä—^L„䉨ĆĘ7 t ÉJ’?UĐBµtžëKXÜźwi źB ż‘ ĎńáöŘ1ů‘]ŕý§eóCަňçą:‹ŮĹú÷’,’ĐgŰ‹· ĚŞ˝#Kç”IČÇ+$r$LśŻÝ¨˙6jé eí¤1úw˛şçHďsëŤNĺIúâ›ďTÉp˝jÉčŁ,K ¨”`±dĂ‘g‰˛AÎÔfH´ôĎÉÖ¨şP:ÄGćÇ;Śh×á)P OŇ´ęx‹;T‰…°|ýbdµg SçšRq ×ńĘi–Wż‹€TÝ€w,“Éi/±â¬~·”}ĺ–K>ó÷RXóˇĂ·,PŤě®ŇčçMJŐëöäáľ6›;ţ+Ô¬"’€jĎ·ŻmÜÄŐT[äˇgÇB360Ä­<¨’<>/‹Ł´ą ]gd1ˇ–ůYmč϶Ĺ)>{ÚO˘.T:@7Ěض„śĺ8!DüĺşEŐBO]ż}?x|äöŰÄ{Ě|úćýW…9ű ß§eĘą’ą¦ŤŘ{ĺÜß7LéÄci1áĹËQ=śëçżµôWfŁ‹“ŁćÚײ‡/đĄ6b¬Jd󝋹w%ó ůš `ěŘ‹ź@š˙¬T ÖM÷ąĂěęEú©‡ř¨„†hŘäŕ„ĐmŚľSŘ@ĘPŔoÚBú_ľ”wć«[úxŞX(cÝ@¨ču"ň8_[Ř0Ľ–C9Ő ;îK‰;‚řJ^.Síż“|OOgry¸t Ťe‡ÝL„Łggď^|&!‹ü.°;úyжp‡$Ř_ŹrîĂXGÖÝ®X¶‡ŕDƦ ˛ŚAńÔ›üĄĺ™óý ±:TUâB/‚ŠŚĺ|0łcxÝÓ˝ë# y‡íóDsztśď©ĂŚ•Ě& íĂfą1/ٸ:–:U–Ř_r>•Ř‚~ÍřŹóÉ®ô‚ úy¤ż\ ؇™D‹k,)^ě:.Ç-6ŤŠ±Óš łc\•i°űTÖűýo7ćUM.đ§Ѥ뺎RŚłCńíX+çSLZß°âx.h/€%…sMiÚ±ö˙ÍUqŃý˘ÎAzW2Éaü ”óŐ«űˇ`q­±˝Ą0ő+)× ë.rXńÜýĄĎ€® ęšŮč¬Mß M¬»ö„IIge¸ü‡p?h# Ççj.Řź:ĆđsHéÜđżážďŻ@¤‹ľ’jv=ćS–÷ägň '}ŻG€řé“řŻŢvF+‰4«iě>zŘözGŕV ¶b$•ź+Ô_¦‡±fAŕŕťMHFöAż] gűulZ턱ÚŹę¶Ó1óă&%ĽMąi˝Ě¤Đ@Ľ[VÍ.ł Ť‡ňŰLĐŚŰ浂ڞžaŠîĚbpŕS~AŻ6ćjÖC©NSQ~;RGZűeé32k {č%®íüňŮTHToű¸€ p»cîdb1XJ"ţđżôÇü8żާë¬Ô3i§ßČ(Ú^>łĺ±<É9Ţ„´śh+ď«,~ś< 2OúŻÎąlŰń«ôA™SŹ«NioÉG„Äźztńc9Ţ22{i€ť2đ0}—•6sÚ,€FlYNÓ§űdš‡2”lęęHgĆáÝUq*˘¶a-"dF_*KU‘İéŞKńźő x8R(üúŘ]‹¦ĘťźŽĎ°Ŕht°LŻűˇÉ%Üń…Gě03»Ă‰ŮC!TőĂÇi`‘pľ|ĐŽ”ś›ąH‹mP.Ëëµôż<ź2áěĄ sJŔĺL'˙âÂllmlS„c±•ó V׋W˙ôď‚ř%ú &„Ű5ź×uMďţˇ,3Ć\ĺv¸ęčí_°řŃí6%Ř`\(Y쥺«‰<‹ŐŰŁóHÄ”ˇ/V$=ćâ€ó?S/ WZ‘Ü´´‡ĂćgÝ'ôĹ ůĽĆb—ŧŽë˘ě÷Ö˙QĚú˙.öè´Í‹śPAÖds“KAŰ  HŃřpóőۧľË7gV#ĹZ˛@±Řmü1NúüYÄuűK6UŔĂjßÓ=–l\5%ćÎCi]˙1Ýć/ŁvňmťĽ şô×9V`Ł$“‡ľę>¬r*Ż$äĹJúëtĎąLvÚď´˘ŔŹg[­~ Ś›Ý5>ľ^îgëGÉűBÖĄeD]ĐľchqťŘď}Ć&Űy :7’ w&şĚüTéÝL8™ÓűiĽ¶úťĂc,Wˇ…mb*ZQšÇ¶[íÖ˙G‰ ëą0Żón°¤~p‘hµ h]p|,GG‰’JLp4?ŤĽÝ6Ťvňůh6}ýćÔXýߡÁ‰®«KĆzŁŞżŚž2üóËu˝Ĺ$l>qOčéeλ˝–ncĄľ°©¦ń…6µZ^)"_0¬®ő«|Ű^''4¸ä"«=ńý6-MÖyşJ1Ň «DúÖ®öŤÝöIh č \’k†qBˇLđ WzéqfŠŠ4ÉŘn< UbŔIŰ}ZzN9geéŻX´÷ąű™‘o1˛˛Öš>…(ńGk\ěŮĐR–ćęqšÖ…c›É[Šq#mŽ«»Áh—&Ń:ĹÖ‘ć`iǦKŔđ5S°+QÖ`JUű˛8•FV?ő˛sbkĹ\đ­í­1ĐťĹ?Ű36oFAFA6·ĽY”Ý~ÝÜkvąI~ć wĽuoč/ÚŰ»UKnm›´•˝[(PóWmŢ}?-ÚÇ?Š?•kÉÔĚŔ7tfťŢ¦v5 Ő3_~9ŹM?ôgD-mŔęf1÷ɤeý»|™łĎ[4cŠ$‡çYî}<[‡w9wŹÍüŰÚÉ=ńd©Ú—)Üř}ë[·0oúýk_€ŕłsńĂGź‡L›‘±Q““ř7Š$°íĎCCűVb úř9@m2F —0€0ŢĺC´×Ç]ýg_Ą0˛+hMę†H&Ýš5™őuÇyB ©”Uć™6:Ęô\äęí’cÜŚ 'BVEľŃö Eĺ[:˘—Ž€7 ńśŽŁPpEش쥯íÉş(á•űcsű§ěp;X˙ąŔć¦.í_âl !&‹(G ŹĘN‰ĆÄwö$Ď=z.ůu™űÇd“řń"<Đg3Ä$¦łÍŹ4}ßł~sI‘Ś#®©>üžmy& Lť´l@!č<é[źÖŘ:c— Ľľ!©˘ŇňaűÝPk-Ě7€¤éě¤FÎřŕ ś2 ©ÝQ„ÍcĽżG„ŰĽĺÍmcĐ=uJYäź«1±=ťHqi­QD1?c8çAońcĎěŻQ_ß?¸Ä¸ŢTČz'bôŘ’GO ÓâłÍţ`v™ýŚďoxÍq˙Ő͢îÖ€•SŞ·ű]Ć/łüL]í­üçdŘ×a±~Ŕ‘á˙ËłZţJ9™%’QŮĄq`îlě¸{ůµŹě/аFç<„Křô4€o—¦ŚĂÇý†WühMZ[ż MĆű­b;0y…Ű®(ĆŰ,›®cőźŐĺW„´ZĄ}VRJMťË ý=LI˛ ď|˘Ë+-%'’?Žá¸< uäffB$\i˵“uŤY¸Ş;\%¬DVŇĘz)DコzáSĄ*ę|ŽďĹnŠÎl{Ć´}W.âëhA4Ź*ľuˇ‘ŞŘcůŐ’ŞËAvi0}›Z +ţaHN«· <ÇóçŚV…2&ü¶Ć„oÍŮbŔă Gs˙¨‹®ăçes†_+úDZÚÖkaf}6ÓÓ‡®Z•<Ç™ÔóŰĚL ˘ĎxY¨´Â?çŃTQ”ÖŞđň‰°>đËŔʼnţ–Ł»sFĂE˙ěćĺ“9µ¶XM–ÚV•ó.<஑Ů:D±84©:Gľ×žEW…LaT2xGĺDC¶¨áXĹ."l5Őźgp˘í3BŁäĂ©q‡˘ˇ3gĺŞh!Ř»MŐA€˛Ocđź$ŠŘýşŃ,gŚwÓÓôŐĂÎěh_öĚĚĆ_Dđ/Ń|üuwZĎUF帾Ő/¶ E¬=®¤qĆĹuL‘Sľ…·Uýë¸ň–J!‰¸ú îőeáX1žĘ\µź‹sÔň¤éŔtnö_}†»Ĺ{BHŚLLgĽý·ďZ0ЍUGŮrCUv‚¸űQ±ŽáĄÄóRÉ@4n^äz”c·ZO}Čřms¦łâd‚ŐuuÉneâ«SM.)|ę'ĹYt-ŁäÂiÎŔ˛mÝ‹óʎbd–ľ¤çh޸3őR0 ÁĂçÓř§3úůć?,¦Ó×¶›ş“ňřĐ8°ţŮE„…ŕ¬MD»ü5ŐG×ýîv6–OÜn©s§ §ŁčFků 5Lx4E .ÖVaáďY—ś)†…„/Eŕ,Ť@ľ”qÜöĺ{'ŕţßĘ—§ ˇü3t/>± ĺ\•Ýă”wH1ŽôŕGŻÄ ±Í0É/ šćk^é*B”W5 ‡ k^p¤É¨Ĺł»;żËŘ/Ýë&ö•ÂÖpćĹ(*Aˇ+®2š ę‘ü –žnâżH€EĐ'홟]6Ý)š#5(Ý|çŽÂ%”i‚ŃxWÖ…>pł@Yţ27Ó˝Ľ]c±S ă41ńbŚ93Đ€ÓŔ~«Ąpn<ŤĘČu©NŢéyYú$î’áF!×»˛şEřźSĆć+Ń_zbť¬žŢ»·ťąó?$ěŹëČŘěXŻb2ÚâN=آޥ®7K@•¶ËŢq•Ą·)öů8~zý5(78-r$ęýSX|%î°ë|«N/˝üĐĐĄ˛ŮDé?ŇřçWWęť­çS !/sŐýY[ŕθĐ6÷ŠkIĘ«iÔ‘°0ĉćhRW9ůôr]|=ÝîšťĄ„xe ĆŇ©çUž¨ßĺĆŻĄł99°ĺLÝ€ůaýďĆFÍrÖéwźÁ, ‚5ZfÁ‘Gj  ¸đ`]I¬ţ1črE‡ÝSł1ČĄ§ýń>±‰G°6]o`Ţ–±UQ h_{=0—?ć|ąĎ,y&Ô.Žx3ťHd§ŻuŁ<2¶Ąď·jłĽ8÷čPŢzÉ (Đ)xy†0\Íľ¨ę «ž¦^‹ACÜ–ţÓ˘ˇU6Řş4«Ńfx6'Ɇ Ü/ků¶Wŕ5Ó… …cmĄm2AUďťçW üĎÚ"vRh%†şˇĘwYŠFwüUď•5ݰ]É †GX”B¬˘xT…oŔiźÂ#F:{ÖŢ—śŤ¤ľď@CG† QF˘­ź2÷YOő\ ŃäűťÍcíÍ%qpˇ‹ŘÔUuK—şş§Ďšx¬ŃůŠśEĬő^ÜÎ8l­d1rDN{Â&G5ďM=O-îĚś€´wu5ś7Áúd”/Ľžţô‡É%Ýgdî¦IťŠô˛hImŘĚÝâZÝ—G Śs|0Ś:3#9€üEüD2j3żéöşŃďĎ+ËőĽd+őČě3Ĺ•@=¦^KĚYA ńÓ˛t…I,É[ áˇ*:§eăű/1\/-?H2,ËĘ77áϧŽ.âěLCóMŐ<Ł‹˘Á‰t9QÖ wŮčr7éĚDŕ+ŚBĺăŢw)IWĆť,ŃĂ/¶f€*)eem€çĹÂUeÇ_ć§ rGčbvĚw(˝gG~fĐ‚UťF‰Sxă<–Č®â[ISźŢ­b ď{ şsÜ.żs¦ĄŠýČÝ/mľ ŹCŘüáş~7TgL’*o˝ëp ĺ}:ŕ·t“&á8!†„‹Ž·íŚt"Á‘†­ ö1ĄŞÁ÷lřú—>s’ó D#9p<äő‹§ß x7Ţw1L˛6˘w 'yÝý–ń CpLń(2Řşzř¨ÂŮžţµöčŔGh©ś!°ĺ6đ3žŰżő[˙ŞĂךţĘC´iGC<#ĽĺwČhČXŢ=Š3vő::¸Ž(á÷Ť'aŃDÇĹQ7x>ZßßöťĂ<±ďŐ­ĽŇŘyý^,,+™ÖQĆÔÉW’ŤŮf„{ľ(´aěŠl9°B)ş5Íł„¡®:˙AúxLHĄš®HÂ7Ób˝@B@Թ̣QץěvŤń˘#rqě»`ÔtUOďÚŞWˇ)–ÄBś w¦BRřůŽo+:úQ3ĹşÚ)K‹Đ5Ş˘ú‰Sŕ»Î†ÝÜG—i2*¬ŮŻQńb†f˘ű źÄËĎ+Dâţµş+ŔÎbîUJ/&źÂó¦ťFh;˘.Í˙ý»Zř­ůÓ› Üů‘çOf»jMĹ‘ĎIE>Ü.ÚçŠ2lôúe‚RÉ‚ă\»‘póʤKVŁÝÝąµ?ÍŘK9 Óžĺz'U•“©X6±ŢÚH6Éó‚âÓŃš,xLczż,ńĺ|ľâÖˇf(ó˙ëďv"o)¬—Bž1éä.#ÇÜrs5ľő)I·w¨ś;ËząPÔúHÉeI®Ś­z3j™€7’đíÝĹÓöÓé!°˙Ĺ»µ(Jâě˛H@I’F˛;%űőľ<É'€/s>áýęب Ĺ28ÂmŁ‘¶ś·zÔ,ĐÄč6j~jÍU˙Żí*Íłéj`á ÎiĄJb»…{łŰď{)‚>Ůţ)[ş¤[ÔĂ{ §Un°ć“Łd+‚0ÍÜxćüŔłÉčCçďLŐĹ\i!‚óŔý›17?“ ĎĆĆ|?ćQŞBřĽ•;ářĆÝř¨w‚$ź_ß*Ę)•Ç©Xťć2’Ä~ ń˙¤ĂĎ(ŚéB鎂Éża!lĘýZ¸DNé`"LÂ-ů®cĆI‡¦Rbâj•Őâ:EÎÇ\<í`Püž¶†Łę‚ÔG~Ż5):<«âÜ2ĺ!ň7ß0pĹ^JgĺÍ"»˝ńćÜÍęřÁ]D>pq3rzězÉÔ®F¬Éă”…çřŁ ;ˇ;#Ę“… ŽŘ8¨¸×¦ÎZj-‚ńŻŐ‘„ S8LyďÂ# ÍĐ4/‚ńkńt× †o 1$˝ŁÝ7FđPĎďQ¤‚/±öwfÇPű»·;Ř:dúŐüš—ĘË‹’©.Rl*č†BĄĂň¶>`çÔxÜMëĎŞ&ĐBZYĆAŽW7ˇ CúÂŤc÷¬ŮÝ“ş…d”‘.¤3xź UI·af˘C†‡UÍČŃłëŔ îM¬NQްłŢMuW·ËČWFŤQ3gĘ2“†](î=Őčz±iHÓłę…(ÂrBčbş‡óůdtÍq°qĆúĆD……•»¶NF Ř^'QC #Ä\ZMPXţÇŹŹll÷Č3żÝ•ogUg săSËÓ›żˇÎŐÍYŹz¶9H ŃŻ ©ű8đ‚ęשÎiÚ¬Ů6×ŮďXo@`ÓíC±¶°–ŇÇjČôđü0fF­KÇLŹ)2p Ďĺż÷.>nF~:‰/KĚRb™Z¦qŮ׼秤ë9!]®ú˘ŞĚvtóĘúÝtÉ ,ĎŔ҉˙*0X{7˛ŻŠö4m^¬¨ľ‰č!H·Şdõ©Ppl>Ćý÷x 7±¶ĘÜw¸÷:Ţ’íµeş·ąŽFnőđ@/ńőÇQĽq D¨cżGm„/„Aě–DÁŠ9…á`ôúĆ\÷‹Žşľ·śPM'Çł[)â†ĐŞ Ůżőť’Te労bŕâOnÜ‹íN–ŽrÍ>8¤ŕbLOˇç——mňěé2Ň®»˘$1{ńV$Ý3*¶źInđťeú¬¶*kJË>—zř\Ú'Lń“ ™’e=™÷^›Čő!ă}ÜŁßzŕ÷•ˇ“DűŮü¸!ŐÁ±']\Ô2€żÄcŔź;{őUŐÇ‘Á`€žxĐĎŇaüAnÓ‰ŐŔ Âľőä†h-řŇV Z˝ (6;Żdŕ‚¬3Ë+vˇe^#ŚéÖ`Üx:óżŔ—Ź[ßgEΚţŮî¦zżCJ˝ßË3-]ú‹ÖY˙[˘Éłú˘ í:ĎŹć8Ç2Ě'çaĐhĽ#   ć#É…¬Řs)4iLGÜ–‹fß'T»{©^+*f>qŹ- tp/!«ä܆źÄ…řfŐz»L@îŢ éÎIť‡|ę,Řn§X—1YÇ·Ćß§źŃŤĂŃŁň’2KöácżIżŮ;¸b5ŔýqáĹʦ}vKtlŠJöF¦Oôpf=Ä˙REž{K"ăÖřq¸bKŇ8˝~#Ú+Y]ĂŻl¦âu!j_–Q!¤ŤĂŞĚqŁ»“,îFŕ°Ć 75c/.ŕí-#OYeÓD}S´ÖPŞŔgţÄ҆fŇ“ŁŔé ׫—0lÖ ŕ«cüňNLѓþělžSźÍQ ˇ G;…_IąxÂń?¨Oť~ö­Ă”,ŕŇ7Hń¨ąSnuűýě¸125ŔŐ­ők—\łîC@Ä‹đ D\ÄČGŁ»mcjwĚ#"ůwŔÜ.öçl$q˛±JסĽK€„µ źĺ“qü0ŞĄÎÝ%2T-şC®BĎNVÂ5J €¨gŇî± čܧ" #K§µI‚dn¶ő— Ę™Nđř!V< 1»ŽlB˛™ĚůúäY˙_’Ň%鑵tk©l„˙|¬$Já'ˇë(âǬ1)řńË,ůŞ´ˇÍÄL·ŐvŹ`Ňk\Ç ¦•đôGŚ)ŽŢĺĆb˛®nůOÜ!o13­&’u)jlűpdę±č˛Â®¨^R¦?ńĺ±KË%.gŐßáöËę\}ˇ´xꬾŽůę ™iA«ô @‰ť—q»îuĺÝúybuŹ>*@m!\ó ~•ŤuL4ŢĽí¨™¸źÎ‹¶:Ö1DRm„…˙ş’iÚŤÓ`ř…WçĐ@;v±¦”‘&ľü6KłŐËĂż$"yN#C‡çÓŢmëL^‘d÷üśÜ)=úoż>A÷şĚŁşmÓ¬rÍšĆz÷â˛*żąRT€RťÓMlCcůzw»ŽĽss˛ĺ)ú^ŐÁsřk”Pďż)|ŢD–7É" aőăűŮ‘"Y7Ĺ+ťş=üî&ŕU.¸ć"űű™PҦĺ^~÷ Ę%‡čo8¸&ëFĚ!+…‘W×\K8ÍŤSË7xŹŞYʲĽžÔ2’Ţ’aĽ2k5ÖÁ?,ÓđPpkŃźş`1„á+.\}µ¨–kµŮ–ÔÖŢÝ.H×˝_|帒 @‰YgüSIÜşÚŽ Ô\;H˘!Y’.Ě3ĹŃwV˘%Ćt;śÚDOZ…ŰŮ©gŕŰŔ´lĂgŢŃyĽIMŞHŇĎä;•çÓŰŚuŐ é?˛űŚŃäv‡÷ŮăŢőR› O]Ú#h$‹e—RĽT˙ŃYĄÁ9 OW†FŠ%Ńťf5ëqUQš»ń‰Đ¤žŤBÓQţŢ…uUÝl ąś/ćá=HÚi”`*®ł‚`„ŠŚĹ§ Ó¤˛Îý:î-",ő¦V´\©{QŤŁĚßÎM*-&™í#x˙ŘvÓ<ň¦J6<5-×Zůč“E%ďŃĺE¬C;›•Y8¶—pżr;†úü>€$$¸EMXGâ<'ŔôÜÍaŕúʼn"–߲PÖ%÷›Ő¶xŤÂĎ\·‰ť¬čb«‚s­đPśŚ ,Z:ÉllĆ´^Âe›Ńká6ŰŃt#hľZÎ*l––ˇÚŹ&Ă“\Î[,×('#6Śö:ăl5Ü-¤ ,ż ‰†´{AľđYŔ7©ť^¸>ôZőa¤ŕ™‚Ô ^i¦­CÉ~ëĎą˛ ‹?@cnLˇG•"Qď·=i.g ­[Ý´Ńo¬Č*XL˙aůN!â#kU,Vé㾯O+ÍÚ×,ŁŁ‘+ĐĐ:Ry«‰XWwďCޏńöřŻűOŠE¸“‘ÝióBfÓß{ĺ[Çó 1“ů†1Ĺ©!úµżV>řĄ`2Aol(‚ęFSĹжF^K…´âÄ[ĎÍë‰ĎQÝ0Ë;{o·/ŃHËŁČRT č‘ôD|.sĽn7¤ŠÎĹÖVď´hËúÜx2Űs4Ďg·M7ĘXeűÚŽ!Îą ❨ŇĘýóRßśâ†<ńÍŘ”*ó†EÄďşĂQ›÷Ď;‘mp8ă'˘ĺ–Ewşç¨€° k±X´Đ"š\U}K`UĐlh™r´!|Ţ)öy5«śL&J:Ł úÖ~§6ŹJI§X:ęv[:uŽ™ďW<ăiňM`7ˇŁ[‰ŞsIÖÚ]Xçěś&č?ţŽ<Č÷‚k]™{Á•0qíř÷2â…ćäLDŽ+ąPđŇß…[OŚĽ''ş]›Ël K+š–ś0+xĐ*|fÄ'Îj€áŔ»”Gá#@ť>ň§ÂĄ‰żFw€Ôĺ6hn¨]aŘŘÔ­61ťĄŹPë ˇ#6Ämź‹0ąŐ\Ľkö!ęµQmÁ};›U†€Îr$C$áÖađ˝zÁd íH…D©EűÎÔ\Şć#şťĂčXá—Á˙†šMeĂť¬˝˛8yŕ aUheÁ?Ô)Šń%Qn”Yg%Üďî5/‡ĚŔWiő|ň]Q×q}>ŕćŹůŚKăP‹ŰŮhą7ů@ćŮZ‹QHęů„[\ˇń™ńlí°ńf ź&Ţ7yS§™4Důó$?cű¦‡Ëv6 Q ¬E6<>q˘–Ń[ICdĽ…·:EJ=h¨Ę!‘a«dťń™ź Iś Âdş$Şyťőę–gč&¬§Đ0M}šµś¬8ĺMOŐ‹Žá7eť–¤„3ł.á~¸Žë_ĎvŇő“č®%9$9trŇ=iÉPUŃsqnľĺŁŃŮÚ/ô ü4„y=SwţaƸ¬¨T>J\%Xfsk;jc¸xSc~XĂX­?zBŘ·f…őXóîú[kŰ”ČdňW›Eđvă 5o+tZ™¦‡ĄÓĂtÝŕ(ţéÚgvŹ&źşMąw°›j¬.ţltĄ =ŘcőfÝĹZŘŔŘ†Ż‰†ZłčlŽĄĐ`č›L°t|JT‹ ńÚŔYýĄ‚´JÓË q†Ó¨i3â©W°ęsܵ[«›ż]ęňBáÜxȰŻřâ4ÄŽž˝fÇ4ůˇđS×"®rˇ#š‚`~ĺřL(ľŔIm‹ÂÜ”ęY ĆpˇłąU‚† ą)żU´Ö}‚ŞXýÚÓĺĎ,ÉÇ˙OĆGűÓ0J„I?éČ+¦S!Ç Ë!Âߍ@Í^ĆZ˛Ä¸ úg2ĂW yÓ›đ‘[¶o‘ă|ě‡SÎĹ?ţą'ްűµW{Ď[÷y!í8Ţ˝Ą­ mtŇ!ł¤ÔŐśz8Ç÷›ÚHâÖÉŘŁ&&ŁŢHw«‹Ľ™˙Á B F–­ĹČĘXńłMŨ2ŢđVĎć ­݆‘@űsâąÂ÷ă~ÝoŁÄrÜĎĹ/Y±ö—;Á»Ż ‚& #A4¶Ą%Ş•ŕ™ßő?eŤ>ěŚz%łE`o%+I‚–5"Ęâ'äźS´§W˛śŰ –tcJąN÷w2.ćTG“˙uĂl!-@fZľ´tÍĄŽJ Á ŰŘ‹có Cěó§cÎ_âŽHťÚu®®Ű]×Ă>–;ÚMż"„Ć삵A—TŔrjcńîĚü !W2­ńýá˛ȬŐBz"y¤€Ŕ_Ç:Ä–tťŠJ éYíQă;˝†‰Irpü%_ĹöXîďŰí}¤Ú(Ű@óX17WçeŢj‘›/’ŻDŠ@‘®‡j6Už»äT©u_@äHĘ—wvâSt´Ľa̢­bśh°ŐwëHˇu\ă‰wµti¤cvĎ@ÇśÜ-ČŰP…őŘ«čĄ2Č DaÜ0@˘@sĘ/š”·—gĘ7T.Ö±XVM Řß@ŰŇ…ţ°X••ęU^Śů!ăâv«°›€‚°)ŠPp•†ôťĽŚŁŢz‰°É†lđٵÉá[09uăm¤áĚ÷ąĄyřTŰ[Bt ńóuŢiŞśĚNxĽ˛cvdTAa2 gP‘ĚsÎ3ŕF[¬V˘äňI#)ýo“›r<îCd}n g_›'Ľ¶™Ăp,L$1p—ń¬ńČrĽżWř X#†ŻÍóů­Ěy*-¤Ě8Í•ößRŹDě;ČëŁŇk…˛îĹ.Ôő’ś G«®ą¦om5_¨t~©C~‚=w´ ç^2ÔďcÔw<­7@đjU˝Ĺţ"­Ýń'·ć“ě¸a°_‹5 +ly D±!ŚAďŚ˙—W†—*˙ĄŃŮĄÎËĂ®˙ĘĚž;¶ęŹéxk2OM&zW˙żÚä?AÜůźÂě9ŻĐoťćŽÚ/‚Ć+%®c-¶Hź„+n*Ż&ŮúUÝ’fY;’l†b9z˙č*âüĄ< Żřâ`s# ÁÄ™EĆĽ¨žš!.Îň(Łă›(ĂPEţľŇËi;%ú`Q©–ÓęwŽ:x{Ô7©ĚîµNÚXH/ä‡ü\-@ž>‹~°8ľŢş^7$=Đi_,űx>¨/ń?ÉúĐŚ3ĺrČa]E{TiŤ˝Ťl=čŘ·~p”D˙ޞ c—EšY L ɰ\Ńr).U›ýÉ~{żSA2םř+ĆĎ2ťČz‚]É5§ß$LáaѢŚţž%Ř9žç Ô P a9~v5#†AËŘ/ -ď[±)ż(áT.E’„Ž’ «LfKŤ!a–=Ä•±Ţx*„0F×/bîKőéáaťpQ邦oďµ´,ń´&>ÉSD¸‚2,řý.5Ĺl?č"ýžŰ>˘OŁşŐŐb<|Č‘ëéµÉtú ÷ˇ¬Ľ1* ýňĹ’>qŻ,ţ ŢM#¨_“P´2q•KoŮőżĺŁŔ}CÁŐ'IłaüµŽË:ž Äö'ÄČ ¨-q}h-¨0ťăZ™:ÜĐA°4˛P@XöÉI.XϡĘ[[Ę»đłP&Ţ#‰3É Ł©©ÚUˇgZűh¬ Ăxv˝»aô‹ŘH?Ě>ňq“™ţ‰O€)z¨÷FVĘ(›qäÎ(§[ç śe›ŽdâňoM)§ťDŕł0YWL"ô<ő€˘ŰĘ}^­Ép>źźÚezrP*\j Ą÷şÜ´}2x?˘ńĚJg ܨ™owĽ[äe­%ŻZ®q4IßLÝXŚb¸ĺŚ^˝ ‹śxU­Ę)jčŠý<0Ě üS¤b’ăzáÄě=hIżKÚSfLé’4ËüşKřɧâw–ß÷Ô°q"ČĽąŕDĐ_ĺ»5jě ‘ `ú^řčb/`·`/b6ŤH‚yä !Äj­hs@QnŻĄS§u8řC*˘µŻŁp 'óAWůÇšNčÝžňJ°ÜĆw?ç4ˇăäÖúů˛J‡kłúS©(fŃX+v‘ą€jlN»ý»˘ ~×ó˙‰öCsŘúa˛§Bď'C[Öřă+oÁ 9,ÔC­qe.S #±W‚KpÔ…CĂŞÚ€E›#_±ĐýbÝ4ľ–s o¦')÷‚–\™ĽĄą-Ĺ|“ËěÇkÔ­Nă–='ú e|T~V‚ŠÉŤs†FmĺŹ)ŚŹ8+©%>W ¨ =' Óq7‘ůÓëwE0tK…T s`R…´Ń†Ň¦BrvJ>©ű)3Ři’ ĺş+rˇű”´¨îhň Kí>$Dzú—ô¸¤“Ą2]óâŻÝńp!ô`˝Ç<ňŔ]¤Fwęh †ÝJŞÖĺŞéY‚úQ•a,+ŰX5Ů^Ľ!¶ÇűĄ 9T»ř˛®×č±%{TÇvˇwř2c°­¦ŐÉß <@*yľĐKé•oŞ#}˛ĄrŻ.@©Ś×™.Ş×Ďl‰^rmňŻ$ 1Ä\45•vŇĆípţBĹ|BÁ”čUʡ݄p䵟Ël'"Ą…ÍB¨¨ŹM-<+Rj–A[d‰5ć É“0:çg›{ĽgŘ*shŘăĚÓJ^şőĎŚ¬~?ńöVľĂxo—î‘ uÜP ëCR8tůâÔ ˛$;^L*ŐżůůۙשĂ'ŰN‡»$×ŢŢÂwYî#Uú)&бŕP\F Ř«Ć$‹>‹“/śqNÓĘ]‰iÜÚč%,çă RBóҬ&)\ˇ ígŕĺ5-Ý‚ŔĄ˛;řkçŃë'[Đ–ę›üŞÚî44Ë.¬ oÖäĄeż4kXÄ'­Áč ›3Iĺ˘îyĆŹołBÁi„ăĂIs.Ź’5\F-Ý\SćyŞ]˛`2mkĐÔ•©i@†ČYN¤]¤ę“ÔaËuĂřq‘ ”ź}5)ÍHŹę%x ŻŘk˘wá—Ś…‰˘żk/UR‡r¶š‘Ň”ňŕżrŔuP,˛_€h€J˘Ô«ÜO"GŘß‚ś/ ÂCţväÁ(Ď9Ö|^×ÁyC" ę64łď%·Y:i‡ĹC E.ë<žUBŃký,®Ů„vźA,FĘň."Ł”Ä˘µü¬ĄňXĘú…ľĘĂX­<Ş«Dš\»Oe[ŞF_ŠD˘Çś˙ä$wňřŢś”ŚŮëÇ vFWL¶Đ+ aOĚ·łôř%ެ.U°Ĺě7U_…Öř\F‹¦¸ńŚ‘‘G«ůs>’i@ő?°ŃâźdĚQ Ĺ= Â0ňö§5"±ů‡Í–%ĆG°”' ˘ŃăFąÓ¸¤Ć•ű¦ÔľűWQ§óŘŘ%Ćç¤<$ä2^v¨+řŚä€Ţť7śśl˙ĚÖ{s®÷ăĂá_-?<Ů|dٰ(ůĄŢ^‡1Îł›a?›iďĆŤ;"“,őľâěĽÜ ç÷ŘŚ˛˝Ă¤Ty0ýŻ‹b„6"5={xĎńp:u0Ň'kÄP¬őÚcô3ÍÎ,ÜÁaaV‡j9–4Ů-ˇ1lüě4ş"p*w±gsĽűť}˝¸hŔ:•*eŞ’Ć€Ţr°*\cĽgu>UgaÜăD„Ěȸť1HzĺĹ­‡]唞oč )żĄ±G1N6Dűű3ZŔ}e7sf‰ć^ͱ}ŮgT)˘ťŹ®cŢÝÓÎd⬡yňBS:ä´ňŠ3E‰„ré[´ç_ÝŤ2á€˙ˇ–ó~Ľ…ľ +ł´ř¶Çľ­)®ä 4Y< ńsŠŻ*4˙“ź1Ó$eeABëm(ů^+Ľ+’ઌ%w™nŘ×— wäŤ ÎŹÓ >ůg,ěú© (äIŮO=×±EŠx×÷Ů({ß_ ¤74ÚÎLqĆúâă:GŃő‹}Ľ9ü7a?F'·ęlť‡L ţ¬ >¤ ˛WóŘ1_żNĺD ‹ú•#! "¬B‘ŇwîLžFÄq.ÂϸőÉć‚?čS3Ě·QńCëóŻ3f°lHzź`ËmVJäBŇ)ťŕJş’`“š‚ŕéC¨Çś4»ĎÍ´Îß~ÖukG=ż@ÍĎüúd6:A…Ń ¨m,Űš YZJzÓxŃCť€ÍŇ6§ĺä|¸kĹ=ßQŘĎÚ>ŕ…{»Ňóýó庍JŠWCýpxÎ…˝IźW­Ş]Ž<ÁĘő[ůhoLq’|ۡZQ›šÚXѵa5Äđ?Éą­;Okákkt?ë€Ô¦ĚÔ÷ë<ňJͧ=^^xŮÓ’×Óhę=ݱÖ÷ěi*îţ/©{Ł]^ŮZ`äů «Pŕuî~`Íj•’äDŕ6ž]-ŇZHÎGşńéź»4˝îrá>ýQC$`а1Ľ˝®4¨°Ź~ ööŞąyÁ'č‹äP•Bĺ`ü/CŠńN›¶{_±Ťz'dKÂyÄ:ŚPnÚ µ?đ\žłßlŰ’ P9`ŢáßÎ] č€5evż "”´ŞŰŠC„ËyčÖ ”ᩚ‰rş~Ńî×ó’¶Rué>+ÓÂĘX\ĹRU<ťśoĽĆ¤Xk!łeÖHG•žĎN8Aמ„Xp…FćĂŹżd<9ŹÇkgš­«ţ©‚7·f9 nʱŐőŁäâĂţS*ŐÝŃĐpD Äču—4ĄýĄ•M•ÚOŞmM–QV*@ńžˇ<^í«˛Ůʬý…Má8“ŢTŮôń¸ô"o˛éĘč°ŁK‘2Ó{^°&â‘íýůx=óU3rŔ Ć „żł Ęx ŠËLˇĽ¶âří4ÖÜß„˝Üô?egD’ ]s°|¬"ŽŔ·°]jŠŐ{łY®őU°n;ů9_ŤÎ€đRĆ@M,qłŔg“öuH+ŐÜfě`,M¸Š»Â8.++×ŰöZVÖ$âO -ź ><8o7’Íw‹Ć V>Ű!iůŐ ó5PŻCŰŚlś˘ăµlmmÂđĎ×ĘÉą\*)˝áűŢĄŠÓ۱>SţĄ}!"‹¨Ą9ŕŤc=1+ħ^¤w–PkÇٞdHál´U±!¦—±™üëÄ%‘cy(ęOţĺ‘.m Ý-\_î–Ͳ cä‡Wpbđ“^±"©:|wŁ×Ň•¸%‰“qđVŞ#?ćp¸Đ`»S¶“%S;t3wÇ ąW“a–°ţNx5zŁP’ÖoÎÚÓr$4«-ěX«PŢŃ@a6·µ@Čź ‚uExX­ślĆü~˛XÇlNđă}™<zęHżl}ÍAüě«q.{LJfPUđ˛µĐ|Zˇ†Ć CŻžcb{déR R<Ý2±çÇý×1Ë6$ĺ—:™lŢ WŹÄŠË™aČW},™°Đâ2“V&ŞÉ :Ö5ăľoói?Ď2u’&zLđ« ĘMĽ#jyGś|‰@P:xá{ő‚$TďĂ 'ü (żZµ7hŇODGúçą%j]LăMżx4<ý€Á‰†Ţ8Á˙f IĆ \Öš©ěrv‹;Žő‘Hč~!/Â5MW–٬ɦ˙ôí’=ĆŇëűV&™ z5LäH ŕYĄ \ţ­N>Ľ6ąw+s›üąe0‘ż1HŔ6ŘŞ>ŚbďLMroöÂJůś€(Ą7Ź7˛K2áâČän®—´® ‘ť2Qß2’üµ ĂRÜĚ‚ë(u‚ń˘öń!Ú"x¨´{«ČŃ—h©P»ńK,¸’őîĐćQIíTÂ+ e8Íç’üLV‘ŹĚ3 ¶z˘#uîŕ·P‚ ĘË‘|˝nJg¦onZŔ IN˙÷nËđ»Hˇˇu †ţdMŃ-ś=ÜíŚ3KSUęK@ ěD>8_UďŚ)`1™_ě˛!EőÔybÄđF]¤â’CˇEÍiÂűîď73@‚ÂNˇ9ÇŘŘ&Ľ `gí€1őńsşOYŹă`$Ľ…Ň+(Mo[Ĺ;(3<^”ţ—§(ýőĄáEB˛wŕL¶–š·(ÍÂ;ů aă.Zżź™­<˙zJé‚x*ôşÍëç $‘Ýí3ÖĂ7ť9pÚ”žśŰrń0"<ďűj-Ů›óťĘ켪éĆ€ ®$ň~K ň-ăEW[;#o:W"bÎOśŻëçΕ=sŠm{\ĐmȡTč>EâŤăünâYţÎwá6őęń“×:ěöá.ÍĽ ňľ _˙0!âúÎÎ~-ł&N= řđ;Ű&˛ŹJ6G|füPíŇ ŢÚ窔¨kËÁý8š˙U™@»épŁ”c†{TĐÖňOU¬Đ)ÜÖ8Ó5ľ¸T|8w6ć·dSĐý^ÓěۄɄ‰Đ°çY˙păŃł6mzŕzw[čą¶ş.\ÎÄ+Ń$ä†d‹ó´ŚA`Čuä†e ňQú\ÖÔçÁđä!ÇIĹ]­©8¶â™ě·tÚ¸€Föń xwđŔĆ"†UÄKčzÓ řů<·ĺ4Ÿß©đÝ6䕬ĆfëŔµŕ)W{űĘW>ŹŔ‰ç*Čjđ9oÖ€‹Ő™Ą­ürÁ"ĹŐˇż@u_Úµ{baWd¨ńöĂb)aß‘t]kń8őѱâaDęĺŞx8˙|†jĘo»°ţşő·báĹ­xĎTj›Ą>MUĎ‹ŕŕwĚĄÓfůčźĺ¤NoĘ?R˘ąÝt…¦Ş˝‹#Č)‘¤?«qčŽ(ó8Řću›çç¶Ó^W ˛üÜă űŃčŚGŠÎŽoB©´9;Ô¶Ú?äpLáĚ…É;/䊠ââţ*;Ë8ňŁą*PëYöśĐ]ŠĹáF”Ůř°¶Ąň™¨ŮŔPTŢó†0­ą<Łvµ ±€ąr¶yŤĂ—^ 74ô1˙ťľOű–¦‰ą(˝ěâĐűe n#ąČŮm/bţW[yâb`«˘Ó¸;$KśP+öpX€0f?‰ĐľĆ@Ń üÝ:n űŽgp~†Í†DňéÖĽČżÁ Vč×­FŢ{WŻŐŠĹ/wŕą°čá´Čů:.ţąŤL ě‰nËň•Ż%čśu„6z'ţůńŚÉ»JôČýg:űË€€?ÍlOT ĚਨV<îC Ű:Ç…égáđČôŁon©Ŕ\KµŚŃµ÷Şş!E˘dăpÖ”[gč“ý1gů÷mܢk™ŘąĆýíçĄ}ľ1¤[už#žşěĹĄŻ‹ďVEŻíŚŇŔÚ˘É*‡§őHUĂŮâšë­¤®hÎ~{Ő¬SŠp‚¨)žć¤ßGň‚„ô(Ó¸*:ĺ=ŠÇB ¸×Čďâ^“UóĆ‚Ęnź˘€YÖł2a\ć&•Ř*ůzAÉęŕ·ţŕ ?ŰKĽişĚ,•ÜŇú„›…†ŹIĘeöÖ÷ ),$[•~%M>bÔbüü:"ˇęaUÚTî"›&«ŕb~1ôî1ăĆtT?OŞů±±ţK?ňełŚˇŢuHwA7?ˉ}.âŐśíqwR€~Rkłęµól{źmA¤ďśŹÁ¸“)51éâjąŻ$_Ţ<ŮdÇÔp¨%§źŠÚÔăi±Ř;$JîC7CcÉĄ‰ů1™ž´5jˇÜ1U%‚t8Śba &Ě”lĺ©p5ţ[y 1‰™§_BćÉG%uAvď‹Ěí5%.hŔ‘@=vo1$„Ë/ÔA^Í®ťÜNż‰Öą:˛Ć]ý6aW†Y(˘ÍĹ?žŚDŕÉŻĂMąĎ›i·éD¶W\•]¤V¬Š®A·AĆęłE©Ďŕ[+ěfˇ6ńýŚsîˆůŠ>ßLĆQşĄü«Ť0<ŮꋥroAlŤWÁDÜ+c%Vˇal診Ä?h¨y¤ĺˇLf?Ö4ĎSŇţ€\DU¤˝±EÂű@§›–Rń1{?óé/Ł”†üFmĆK­2#‹ý%Ů—°L­X1Aîč§RňËÍ@í÷VŽn¸Đ@`Öŕ±j ÇOĐ\ÝX0'Ďg&Rbz…Š7oË8{†Mü(‰Đ=­tu%^rĺl¸,’·ŞnYΙo¶ô–Ţ+¤od P—đc¨,Ú*‹·šşk˘ ŰĄüüłžÎT*ŮŢ~ŕ‚|20¸kđŁ’ĂVa-°Ěe# ž—HŰ› Ó‹zrľ´bş’”ńFí âx ăpĺ D‚ŇĎ÷'ĐÍ´i!;чŘ'–)ó8ś–ÉF8ŁÎa›ď  ףČĺ[NÝómĺß[›;Śv´©źÁň‹¬bÓ\+ ČŘd¸ ËÖý?lŞ~Şm(ˇ4¸CÍ/mĹĎmÓR­0Š*6Ď«ę ëꙀzuŹLÉ3dy;XLrµ¤ë„LÚü'/7ßSg˛Ů¤0ÍŃ«ŤťkŔŽž#fkč2ć«ń…ćQß;všç\ĎWW#< ăURąßs?B0Ř™ůXß%KKĹőL ĘńĆľś%°ŢBd©Ő1ćő‡ÖÜSrˇą–Ňgp q\Á)ţBßĐ«„čv[Ä:D”Ť;ýĆşIŮ9~j[;Ń’dósç!—!ô÷ Hč•X&`5Ą±“bňę{Í4>ńŮŮ Żxs•Ó/çy­¶Ű+®É†ě uâEŐÇ`z|Ž'ŞPOÜ>FWŠ^=Ndńˇ;Ŕ¨đňÖ)>V˙Ött  Ř€µşŽŘ–ᛸőÇďń´_%•[ŰéuŰQWDłµ0ŽŰ6Xö‹e˛ś'#Ž/[ĐzMĄg¸9I6K¨ľ6fsÍ•Â*ČÍ{ÚşJĆŠ‘âďűF(|ÁIÝ7QśC ÉAâËÇyÓíÄ%{ßľ‚ÄŔ Ö=9†YÍŢ *Fٞy93m‘‰Xž±đdr9ôďyÎěj†5˙d–ŘŐ+ ‚ś›gť,Y¬ż•ň6K,Ô‹Ú¤QˇÍÔ–â`Sö—umI™ }t-m—;-gdŤĎ^= kIj»Jt|].'v†Í´FqÔfLż’ą×Í %pťËźó83“‡X``Ý—ţ÷Ś»Î¤S.€Źí.)ýjh#Ś9¬Öˡe"t ’Öçř2-Äďö"kŐ#ůťt±ÇŽŮű2îňJý+ôŽIךÔm¨)Ü“Y#”úäÉ`ŽŢgö<»SQ›Í'ţűzűz´-w ż]Q· BpÎČńCQtŔu˘ĆńöňMĽ[ís§ľÇaę(PĽ¤ć‘¬ŕ=HŃB˘…÷uźëě Ó™ŇńŢMút€ërY%«6$‘şźt_ü»J™ú—źČYBR5“Ł`´ąŔŞJ|Ë!Ž’‹Ŕ±H{¸OÂD7šłĺ%?r*"ó>×–wĘ0˙G¤×ţvÉ >űŤË §€Ü[Ĺç@6‰ĐCwžű$ôßŦ4§ăéŚs'eﲛ=ŢËO{ř ¤Ü]rw“±Gý>v2ńŔîÍ80ç®4đ!LĹą]ꢤ手IŹďĚh˘ZEŞ:0®×ú‡_`ÂÔ)^Ť9ßyçW@(sŢ6”ď"Ú¦”Ěhɢb…µEž(ąĐ{°3bZ—VđĘ Î c?6Ĺ÷ hIş';Ăvű¦hŰĚi¤ĽÚÁ!-H{¸>™l»/‚„ŔBÜŢďúĹ|&7PBLmŐ,hÔfh{-ö5©ŕÓvÝř)ĽxçsŚ@śsâ°ě˘38ě°u‹ý[+®ëżĚ†ÖöŞş{ńٰtŕ“¶ágiޛ֒¤Şs€“3(”+1é°žüłĹŻçĆóč F˛¦,Řk6o…Řž|+˘ăĘ„Á­««[^Ť­]űuü#Ž’{&sj”‹ü'Ž ¨C¶x˛W^x‰´]¤¤VşŮĺśKWůV×ń\lz’\IĽ”–µÔ``ZŻĹýŽd'Ěq0Ąyňă1ň¨Z:\íÂtµ ¬ź6nŚľ”Ž…ůbY­ «µH˘lHƨîT»óŐŽ ŮĎ˝á­6xYx±7É{¬~T«ć››/Ń–>ääo%ޱĽí4oĽRˇđ˝n-łŻ®N ‚"C'&žÚLú&Â9Ňĺײbú·ŢčmUÖć””ktő«iďě-čŢ{±öL›$Ť§‘4żéNŰL'[aÓAż… 4tĺV34% Č0Úőwqy2jĎ…Ś ťń/«ŔŽ[4/ĂËP"ŤŢPź…~7ŕvkšshKöýjĎ]‹)ŃÍTĂBşlšSSd°ľÓľ×NËEk°‰ćď„86ĹÍfŮKĎÝ;˛ŇZ]ß7Č»‘ Í®éŃ‘ËA*ł 6űć5–öJ…–ą÷ÚŻ żÁ:%Ö“Ř{Ń… 䍱ÄńĺQic}3űülĚQ˙Łaé'l0űTgĹ\nŮɉkéáµ Ę|>9Ź|$ÓĆĘż¤.Y2ŠVý)” Ą^Ä{9BŘĆé©ă7‹_Ó¸‰l¶ÖüCĄÎ‰ĘMnvĹ}®wÚż˙+Ö‰·K…YĐě5YqőLŚ–n˝OµÉřáž0uL2ăňeF$ĺ®ÍS˛ly!!0a¶Q¸¨C3Ńe`â÷Ô™X§\âÁXů¨aOHÉeäCXú0ZšSřcÝú`E”ů‘t€Z˛±š~Ös íŕ?ů BďÜ&ˇ‚Ů!ůCIÔxÄ.$Uü7° rf˘ßF´CŘÜ€š*—Wt¸š0Ë»Xśňo'ÇaĺŻČDb­Ă*QŤďÄ]Ę͵M¸Ođ” ™\áß ťĎĹî™ó^Fä°JU솋†,Ćý¬i9źj´űwP°˘M­š$KĹ61-Ť÷~Ŕň[Ő§nŚB%÷Ejq 0]cŘ,Uś»i(ŹK“iš\śĎ§6T2›t aŞą7çĂh }tÓ@˝vĆy?ípÔ*ÓJ¤ŽEPŤÎWŔÓ˝Îk…éŕX›F=9_¬ě˛ÉöäËĹő¬B‰>' Ľ(†R2Đsˇ—ŻÄQüoȆ‚ĚćýĄěMńj+ >A,ěAçŚçDZĘd·v¦WqüL€»3âϟʴVâí˛ŃśZî‚ß1~)Ńݲ:ÎĐ%Î`¤tµ»6 „ĐM?(rÝťb©TÓńj’†»Če˶ę¬d)m|wĆ ‘%‡Ą:;q·Ű† ôYŐ€šäĹr¸ő‹µ°nžźÖľ† dCžřu©j?C+Xú?pj˝ąź¸v´?Ś›VDł.6ŻWÚ«±š´Š˛BA`QëYŇŃjř÷ŘŤ÷ŐitbŃĺR¸,éŐX°$í>8MŻ0¨ńć’V`ŕ“)Ôęöwją,^ę°ž2vtËH.ż«»’ż§Hˇ˛8ˇ­‘âţRÉĚîkkŘŔăă§™Ëg /.3žD2“i üńb"Wu5Ľ{ůˇÔ'Ć&Ű<śFA¦+éFĎHQÔqµ*äąQ]V»ÂîOX\Ľ Z,p.¤&›HŔîrCBĄ Ľ ąUąăVxü-GÁˇ×—p<;Á}ÁGT«Jŵbqvo@ žŻĽQ‚FŠŔ™zB-9\*“ň ÓóPśË˘ Ŕä@ö~w¸ŤĘżdú\d·MĄóŢóŢ: ŞžpMú/A•?#}7ĐkG¨M ť1]ý'ňŁI·tça…Ví˛oté]^Żg~rľ?bÎżÜUŇ^ßp×ĹA>±c†•!¤·Äl„¦žĹSŇÉꢒě7a&ś;vĽ5Šćm4Šś'gdn\ÂÂéUU÷"ă›DŞżi,–řě©JˇÄř>'ß–„BSWĹ5I鍴k&ĚűžyžÂjN’€ŮuŰ’©Y!řčÂBB)‘†‚ŁŁ÷?¶ĹÎëąĹRCŰľ1ţqHRÄá®÷ZďN#Ĺ÷‚§z×ŕm´Ł‚őÁMÁý±˛gŚXޡJb dc¶¶`rWEĎîmş©ţMmĺ‡úÚűGV Ľć­‚V´ż¸}}ËŠXkŃîMŐ¤†*Ż7Ďë bmN12Ő"–ß‘C… ĘL—…Čę6mţÝĹh`‰Ď,LŃĆČŠ>I)¨-ˇP&y ř;ŰÝšąmńßÉĆ’¶ĹG‘LłŻka5ňßÎćźűxĚîy7wĄŞ¤E?třŐĂ“ągť9Ą†\M^u; ~\/2˛úxyâ×KÖúSq4)ůäçŘTŔ|)ţ®<ú@„QĚ đŤ — ćt^§é-®%Dý ´:#÷i|tEČEŽŇ#Y$Đ=5ę”}ů¸âó3JFF'ľćęg§awo:ÜŞd˝6t9#nł¤//Ä× g»ô@>Ďž˘â»3Ţtńńh E¤ÓM{.¸tZ;łý©Vbś<ún¶Ž´§ÜśwĆČ>ö§# ˛xÄP4‡Ý0ŰĂö÷Ôí4É>|Fó׏őL5ü±áÖţŰ“˘†RŐsˇµ¤†|É—8ÂÉJ Âą­á|[ˢöô˙š‚VŐ LW¶ Ę.M»‘g®ĎUŠÖŢ´Gěąúĺ@±gŁć U†¬Îëm¶\fL‰ě†¸yçŞNžŹZ9lľfÖhĎ»!*2KBUŔŕ%”bž:ÄüAÔëů‘?P×\Đ“őŚ”tśöanâŮ ď źşNűçü{ż3ľ`p­´~6„ňĐŢl8î>ó1ŞG?Ĺ"Yé“JlK÷®ÉĹ»ŃÎojr¨ÜEfőLťşoÓŐ`ŐV..^z]U9˝ě L©9źC­Gö×¶f[›2 żEă\˝ ťŹňŕŞá«ÇłKÖŇ×^ă !«]¤`ş~¦.giá_ «¬ÚŃŃ_¶ýŃň;‚”Ěşäe⽊ßë]Ő>“†ŕ±8ňx(_Yć®wôwŁË9ďK÷ßJ˛ÔnśDkĘ/čďǡn×›é'âÚÇ)´RÚd×ÓH¶BŹëŞ,twgp [)Id’Ă&6ýk„şg˧=Ĺ3FH‰űŘ8f ůkR ×Ô eŞŹ9*K_PŃ•§i6÷Ń#Q`íjĚdpn=u=ž‘3ż»« #önÍM%d|:Dž5+óA€x:~cŮD2W´H"â!@E¤9 (o¨×|Úö|(3»Pę«ŔĘ襣™đ€â•Śdäör, v©ó„«i/–)eKď(ţ4!>9ZlöłrLĹ$•-("-ĎA/^×lÝ~JQú$21)mmÜŮz q`°DťŢÄ˝EĹŽ$&‰Ź´Ôť(á_>Ű}”j|$ ‡u”Htrs`s>MóĹs‹ËÔ7îZ×ŃÇĆëŹë¨ đÓ+zängi˛`E齹›˝Ůňr”œ¦k˝>Ţ‰Č MĐ“ Q"Z˝XzÉËôDŽ'cŰFŹ@j(ŞéćŮ«!Í$iv5Ę+ ěAíŹdö’=#sxer”»-J_/đ۰šOÓŘ­¨şÜőŁŐ˛pţhůEb÷ŤEôËá—eöŤ/ w¬ &Cđ(Ź,.ÜôëěVD~»íĄú.cţ‚+ŔŞ<ý¬–¨±ç§Żc× ľČu/q¤Ëdš÷‡$ŃgňPµďÇ ó۬az˙*ĹŕľŔlÄŕ@éł PWťu‹–/DqĺÂÖŚů„±ţ|©Üqh¬…eJ>±×čµĬ,1ŁgŕšSD?ç÷ÂnáŃVÍ#Ş ó—߼˝F^ÎŚˇ$xBśRáa´řCBĆŃ82\ߌťť_é ]PŹi´¦‡zľR‚蓯Ů>ÇŤp˘u$ünňżTZm«™KPňv'­Ł{ťpV!í×>ڶ%ÎZ8ŘŘÇé+îüÓŘő~B2iż<úĂd-áŤđűSĎĚ©ŻééÓ0éŔ&đ™ŽÔ?7ÍtöeĘŘăâŕŃĂžíŢö=ꎾĄÎ{kăÄÔ7—*„·$g©A±ĄŐąe—Já­Ň1“qßBBĺiGfűJY÷ řy!FІÎ7!4‡ČT»x$F­©zD´yeIľ0ś#±[DŢcĐÎł’•i·&8»+šSű°…áńŢ|•óČŁ‡—U Ťĺ.o±L`Hî@‰ŘóqżĐ’crV+ 8üŤ$`:Î Ń9}>©žž™ěIu†€’V‚_LÁ®ĹB|OŕńS.ˇŠ1dAÝ'ëDŞţp¤|‘Č‹8W¬2ę)Ó ÉńÉq@MąÂ’/ÄąKł¬Đ )šÂN s^»t\đRË™f/đŚ©LĽ(…?Q•ŕ¦ŕj2Ĺ%¸Čs7k e÷CÂŕÖ,'­5pj0‘gL×ü#a9¤°çŚđ˘j"%ÖW+¦’¦Ý‚yx< Ůš?ŕ 8¬x(Ă•ŚÍýĺ}ńül‰áµ¦ÉMmę…PbiHĐŠŢ1ńV9y¬yę,jÇŞŻüů ”÷+ˇ·ÇÍĘŢi|h䡶uiHÔ •ö9T^µ6[+ü YóB˘_BÜť,´0ý›ťj¤Í· OÉĂÖőĂŻ Ľ ¤¸â*ŁÓ˝'±×Ř©đs%f¤Ä‚ľ^1#""gG:CđxéP‡Ö Ůń˙ř“(vÚábžUÜŽQTßTm ú^NÄtŠ>Ó)xhŁŐĚź{×ÇĹžeéŤa΢[ÚË›zbÝi)N°ÖO®bƌ﫝öˇá_l}Mî¨héµĐm!–© ÎТiJÖĎ-ŽÉ»ňŻ—kóŔ ęYs—V]Ř’.F=Îéęý‡MMbýÉZJ1©@sY¤Âp=¨T Câč=ň$,ó»'€\!ŰťH­ź‚vkőĺL|+…fĆ0Ö^oбNCŹĹNě–JŘÖ@5Ä/UßÝégľY-,ą„˛ÎěĎĆüöĽXEˇLĺ=¶±B}ŕĐQfÄ·@·îň…“ÉĎßÇ Żŕm+f[Fł(źô)ÁiC„/>ţ&¤=Ů@>u ܰŠOÇŢۇ%kxínrWA™i¸_ő|w[˘´· IÓMgnÚÍ骕ń‡÷>Cj·µ!*šĆEo±q2wÄ0pYí_·_2­ů}|—Ż”ć˘ÖĎŠOĺ¨^%ńLý€ÁŰékîÄM»Ą®á—ĂúŇ7˝őeJBé‘c˙{zv©ëKÚL’Žt°řşşÉŕî´ŠĐĄhÓÜ“z t_!…Ó@e oFřG‚b;L6_PŞĘYLŽAą4ŽĚ“X˘ăƵ†Ő­eĹýřb†ĂŔŐ ‰ ĺć‘`X)®˛Ş ѱCbŹPŃ­uoOżssŇÁúÇÖ@ďW¦©ćgąSx±ŢžÖ¸ÓjĐt`Yr/áł ®\!»3ÎŻěú8L‚sóŤ°Ę°ŮlnGZ†čÚ<‰÷&­Z¦Çřa˝wMtĄLQq Ą_(ĄAý!nyšxŘäöźZ7Q8ßDĽÉ# ÉîŻĆ"gbŽJC‘xÚ}ňúŻrk5Ă(((řńçű*Ů Č„E§tďŤlĺąZ0\›]Ń»|nľ*IĽ9n´G“ű˛ń),Ij‚![(v¸oi yŞ»2ýĆJĹ:$WčÇé ˝O#™bX,tý!'űú đz‘™R×řpIYT†Î|©âu¤čřťú(aĆĘ<)Wý†ř•ÔŢĘŢ~¤ĎŻ(¦°H®ď0;‡ă÷tľźŇě âRÝůh Ý}ĐhG=°aŘr|©Ôc®‰Á1ç®<Ę _3Ş%C[îqą:^QÖśčA@üí‘6j DË•U:4Ć ůóf•ăÔ§! ~ĺ(Cç@0˙4 ľ®ü¬cť'ÝĂ€ {†[Qh»ł}™d›6LzVëć‹/ ď„@˝3}¸j.E7O*ĺëÚm‰KĹÇ®dˇ! 4 f«˘Ľ]¶óňsĄË,†\ßśĐxPLpgŁšŘyôŁ"]Ć9G~cÎËő÷?©Bí7‰Ŕa%Čuśý“¸O…Ú žC´€}ŔڎŐ˙›ô*_¦Úý¦B5ÚŠÔňřÔ©…ńź%C7ҸƝW‘~  P Ub™é9Ý×/A)n;Z‚bĘ—M»$ŕxŃ´MJ: ŹĘĄKS3~yÄéĎů ý!$zä)± ď;ó‡Z ťBťA§6IđK9iüYJ€ź=ůVŇ_ĚâMă®'ć^j9zľo–ńšÇĽuÂÂż&P&¦(ĺ0OnĄć…—Jl{óüđł“—d Řč°’Úń&®,HĘôĚTĽbżHűkîĂŕÂpC,OEkwB†Óş“0ö$ȡÜůîR¸Dxk‹µN•~§+W†Ľă`Ęúł|+ĚĹÁIĺŤýT—Č3\s_ľů'RvhÎŻ(’Z\Qd—ě ódç2h‘–¸4>ÉÄZuiÓ¸©e`Ş#­ź‘u§¦íÝ”Í'¦j¸}+ŞŐŇ.Ăm܆÷vŁł" Ď×{-¬)¬ZĚNŐŽáT9 WÔŤđ±‚=Ýe?/牆¸?ć—őhoke_ٰÏh{¸)üôů/nx%ÍÓOöX>Ç\űăżĺLśýČÁT äߣ]`uÎA4'´$Đërî­jŁ~+9 ^ýčgď§‘Ég”4'çÜ'Ą™KčŽYž IŚŢ#=ňÜ:˛ĆCů ˙ ”KmŞ_t¨(3ŁáŤ6Ź1…¨Vq,íÓ­1|©§®dc&GÖE¬2Éňüc]–Ç–Q E4Ś:â˛ŰYÎŁßgA…÷x Ś®}Ľ Ĺ 6éW*¨Gľ8ĺóÎy«0 "ĎŰ.{‚o–,ĆDćęs_ő†).)SMĐb(ůćß+N†€OXf«+‰ůÇńqĹ×Ő‡ "ţ+m ¬V=–m`÷Ü"ů¶Aîź»#ˇöřl)ĽS.yťQˇ.’ëČ1~(;˘ ÄŔĎgoő~—¨Ź %¸Ă´eđę 5‰ ö§™ ĐÇ`·e%m7 ÉŞÂińÇN@ď˝ře(ivE‘şÓµÚŢťô–ěŢpz”ŕ©“hŠ…C†LăçŃĎ óSŰn×ÔĽYMH« Ş k+Öď`µ’—NÝVěč 41l<ńU˘ DéÚ.TŽäŇä—…V†…D{ ŤČÇ‘ é•ń=¬¸fQĘćäş›č÷Ę*@ş(± y)Ź|RíWÓ›Z‚U:ň´ľ&ŁŤ”Ş%´ćŚ”ť‘ć6§ĽúSs¶ÍH΄‡ĄĎ>ä†Z=rÄ6NŕŻjŞ˘¶íŠ%´6 q`sĂM]yą+Ń˙µőľßtˇł­;N)ď~v#'•v3X›ÇppDůŇž˝ Ľöĺ.şCeéLŚo,žŤĽ×oÚ–yˇBďóÉ{Ś"qČÇĄF,éYG;ixf‘ű˙źµ—÷ÓÎ-9ĂĐ=Hh™pŢ6Gş Ç#FZ-Á5µč6®)śGŞOÎxĽ¦bzłú厇Äŕd[ů7Ý'™˝q‘aŕ‰.č`]”É`ł?EďŻ;&/ÎćJE©W{ŤXä,“řŨś§^?ţ_xÇ»`ŤÜWˇ´*F7:Ky€˘/é úLfv§ňĺSRo”7[v±¦bôp4–2ëtI|őKły˝üĚ_™ýŕëÝ–ŇĄ3+‡7ŃjŔ±ü°Ë™ňč~Ä|RşHŠ)­÷GŔŔĂ ÁČ îđĺV-ډP©Ě/Ď8ş˘U„đňŠG§ňdŕ:ż&ť Ë2«ť ž5î^[ňˇ%zé‰dhĆZ7^ 7#–P©Š ·É±UB`j8[‹ń3X»—ĚĄiţś‚0VSé[Â#2ŕP µUQPĹü<±zđöOYÉžQ~î«ŇmîŇo´ÄČđEÉYŢ=ç‘>Ř Ź1ë÷óÓU˝ăëŮn•z%5`ëŢ©ÁĐ3Ôń łŹţ}KK׳8ŞžßiqÇíí‘7~eÍ X–& şöźbË+ĐéĘD˙ÜpŃ[ ŕg…táţ]ꩉ÷¤-?ęe´~3ą™î`]c,ÁlÔh”A •5D§;X;ŁW§‡uĘ~çš”K´eůĘG)6¸Ţ:`‡“ͦđçĆŔTŢĺ…TG̤Â:€Głż2ű‡;¨d)řrjǤ)ČhJ׫7ËÍ4!¦RĹ]ýů#ŕ 3Îá,őSŇŐ¶ˇË¶ ¬(n>ŰžĂD4•;ÁôđNBř˝^@šQJíů.Őzŕ¨^µŁ­×Ż7€ë»?ÓO{Géý»K—é[űˤ)Őčo|ÔĺIN`k%ÂÜvĹ=­ßÜ˙)3ű”ÚKŠBb­ž  űš]gTŐ¸ä*‡qň»MR‚mí|{÷ęĘJ'¦ Rˇ ·¨[çxŠsˇYąěŠą4ŇäN?ë}éU>‘6¦Ţ¤ žxÜť\¨ŞIiSÝ}ăjöe·)âĐŢą<îĺ Âr•ćĂtŰíuD@9ł ‹ľěşhďËtst/p’ť8B4 (żŠüoX}ď7^óÜYů‰A¶QĐQJ ń ŇóPö“g©Ü+0jDVP±ßez…rK®nź*S ńÍÇ,ж–ĺ MőŚ`|bŤš[*–}©÷ž¤ŕĄ|ż, قϳ÷L‡qŕ˙őő =6Č–Íp&6s’3”gęţZżË™Ť˘‚Ż+|â,‹j#›HEÂm KŁ’ ĄH!‚ç—dŕ§Ĺ÷&z§źGP˘H(G'ňůň@.óÔŹ]¸Ý8a˘FVa`Ů/Z ©křs^µŃtŢ•±Sú{>*e'ńŁ"ĐĽAŤąôyęHŕbšď8]˘ŹŕIk¶yuz_E‹}·}jĚ JYý›ľ,dąű™>NI_*¦a?^ľhśďVÉŃ”íyč,ć=×lĄ°HşĚwlبkcď«K›E$ą-m߸‘m á2ÄHKót˝ r=–paŁĽ0bEŕ@PĄ Ńx··ÇϲŁ)±#.\áŔ»-·ľĹ1Ě{dăÍŇ8kKÁ Ä#ÜrÄş,yB5Á júIÉ·Ů»¬‚hVKr:źr’r÷X4ü×i9Ŕ|ŹG°Ę°.(íA{Öů“ߏyUăQ—’űĺ^­¦ŕŰZ±¤#Ś­S-3éFR+nŠŰŞ“z§ç ëF4˙ß3ĹkľĆňjq` ]‰b-Xł›2îyxţŹĐÜţă3´Ě—Ir č6)ŕk\˘ĄâKkŘl!G6»#ÄG5nřČč×âŰظőëTĘđFµšşŞ4I.Ľ‚J‘n}šą5őF˙?3t\lŢu|­ŕk`–€ĂĚú|ńTŇJđ†8¸48r»zÄěí w4SĚh­ńŽ7˛á¬32ö€ž;·¶ÝP"hÎjˇgĆ$o7'Č08°˝LË$ůŇy=/ŽUc0’ř‡X2NâŇmŰѱĚ~°Ę<SŹ[ĆG1[ ×ĹĄ7(d.@e1űo ü°ŠG~ŕű€“Ň.nąŕü>Ä×ĚšSdŤgĺŤÚ”e÷ožöJűjéŰivâ€Ů-7ęČšĚh®ŘoQšŃëGkŁśmťťQéĂkçLŮ3ÉO“! ďŞS€ăv€0Ń!%y 4oĄ<üz} }ZŇßĘÂhK9ű}0ĘŚ6×fúŔĐ­ę1‚ćt7ĹJÂű‘ő,íMÁ&R …Yô;WoĂ,=Ýďg¸5 Ą7u¶?ɆKÇăĹ<6´µŽÎ4ď4çů#kkÁ±H/é?áŃ狎€íćŕ©ĘDN…ĆM6ě‰ĽŞŞ Ĺ8ĄşG5Í´ć•˙%‘ 9î‹>ĺl†¸éU<äA€)XňGž?&F q=(ňšRżX.€tݱ»Iŕ €RĆ1Špř±«}©żuTN$4›óąşaĄLQţ‹—:«śnyžŁSu©@26’Ě\äEŇal¸%§†Ĺᨴٺňń©†`·ZNr˙T¬Ú 9Xm-ĎëÔą0T.•ĄŰó;Ş źŹcf¶…>ę§ĺsD‘čEU1ç1:ôPSĺŕ雳/×) -D2]lZű®Ń čmH{đŹ’š;ǧ*ćF–ëŘń^d Š ËKŞru…d 1Á?ç×.ŐX9’ä—h™U={®XtđÓĘĽÜĽń-†Q÷Ëp6Öâ\1±ßG#?íÁÖ3DÄMß$¸OxÍă.÷SŚ/N–ł(ťTdôóöS/©Öť«®5­żßB ±č—TK»ëbĆř_1¶˘Ý@ÔÔBˇ˝„ř—¤[&üZň·zťiC}˝jśâÔ»ŔŽFě\Ă8tݬ)f•R« +Ţ› Ś[(ż“lě¸äA™­ćăZ^Ž_zX?´ż#8É–é0u$R°ł<°ŻŰ‡$yNO?vţn-•Mô•5Áň:ţC7ÝŰO`¨&€ĹuPbcvž[šŤk§ä>Í—÷•7;-ŠYÜ3‘nŘúĽˇ]‰®^§V_AÚ?tDńѶ1’Źđ–\K‡9 2śďI«eŢ–Őý‰.{I«+ěj*9cOgdđ°˙.ŁVQĐqr}jˇĎ (q¨Ć‰ ľp@§«ăpÚ!‰Ş‰–đŻwŔńšLvë)­]–вZzéO‘Úĺ@2o×^•ON–¬CMmł->`ʰžo{Hüé!ů[2N]n‚ hŤ ˝äĘ5äĎí 5“`Rܦm3ľÍ[€4‰ŕC@ü’.tW㸄Ňřʦ°‡Ź(‰ÇĎÚYăŐťü0Ďó™µ×2ę©xĂÍDÎP4‹-°Ë÷*ý^ëŠÉ1-KbW:Ű öî Ä´ř`tŁă·Äš×F6ëĐnP˙ʇ˛,‰˘¬Ř18›óóę,"˝ŞŮ}F;Č\Ź.‡ˇv…Č”ˇ=ů3Ć^Ĺtm čX%çPj¸Ęň_Ŕ9…ͬ¸`&\6{`‰Xz‘ľlßd>ňb­«y[ÁmPä—­Úˇ1ąśq(uą+‘wĘĂ€G†›Ů”ŽŚ¸r›=´ńGĺ6…¤cVčźŇłţ6B;á+UżŔ+ÎZěđëö¤‹O·óĘş+ôŞçŽ?ÖúöŠlĄ]}§3ěŻĺ S€ˇ–<úĚ Ń“n_˙łk[ŽšYÚޱĆĺěĂZvź…׾Cúß1‡¬ĘlL‹â^]§#ѶŇŽós!˘ Ů‘“€ľoQŁ(kŮI/ĄBůR†H8ŕçÉR›hˇşŐ˝‰ˇú*‰' Â]ń‚Ł » źg猂JĽyťlp6k¦ě í´ÎH f5¬âđTăŘţ¬ŮÇ7öD’{Ź¸Ú“ç/9ÖË6Őĺ˘ÔĘA0˙r…Ł=ř|ŠXLňŁý.¶1̨ré’”č>\«Ë˙qëů´Ł:|źSś[Ž‚Íiă_o1o Oe[ü(h<`8%ľĆĄâJW)HVyL§#H“g<ÜStÖP@}bťLO !AłË$\TěĐŐíD Ňßu=fűI:ä5ĎżĽNZJAŃËN$××UĐ9&ÁFłÖŞąŹ]> uęđ»ŘęHçŕ뢻ň2XăV†-W 7+á?w‘Azá¦ý^śń®~íŃÖ5ńoŹżd~0t5MÖ^®jKCR+ »HźŇ’*_PCa#ÜÄ‹3ČŤÖ­PČęĺR°‘…ĹÜä !ł‚ţ›(md‹ňWF źń„wŽ`|•Hŕ©ËÄbăyĹ­˙…W%,ć|^÷g_Šţ’Ç^ôĐ$Ë—­ Ôż“Úu¤{yˇ+´,­ŻV{1Óhěc<’ęĐ ĹpĺOó§7áx[ŹÔßę[ě;ý—Ň%]ůĆ㢬—ÂĂ”\“Ş­ČuťVŃě í ¬@Vňm— ë. ţ Á;C#ş §w‚î.zYěH,"‡}éOŐb:kRŚźő býk2‘ű™á„Řv,‘rg^ůÝĂ­ÜQNÉWFąV×îăľ˝&3Żâ5¶B9ŇN`Íď¨9_űŇć˝[úÓ“%~śł3§ĹÍ…Ů$,sdTqb.D7°JɆ®JĂúI+;h`±ŇLx ¨b Ńëí/Ĺi$Űą żŇ§‰ýž±7é™änÜŠ” ůöž4ň ­ËMA‡-˛ÍŔ‚Aó0+÷tEkÇşë• ŔÔv粱.4ádú„ÓÔůÎű-¨…ëřđc»›;Rć±Vĺ|j(Ůk t^Z˘)•żb¨¬ˇ>3<ďť­­Ľ˙ŕ±®QY_â¦h~ŽZü’”…˝ďNi4ÚW·÷¬Ć'űޱÂ]ÓżYşžoŚA@‘Ç+¤eTĚç=Ť iQ©vVËvě +ýbî×ě>ń`N”ć§›gâ*Dć•EÓ<ćgµ°çrP<˛h1XÖÄć,V†i¨Ag`ŇŐŘ ©Ú Z÷Í8{ýHŤ‡ÚúKlâx/Ő%gP+*ÖşDLŁSBě‘ňe"ŢŽ”ł§Y+âÎÓ¶©í7G&©FŞÉĆŃżŽc)ŕĚCT´öžç»Tţ&Ý…+ŘßW:yľ.-eš¨QŰůôßE\®C«äÝŃ© 茕X„ź°ťÍ% ÖNÚ“;#Â=˘śőç¤ĐĄŽy`4‰ćó?ť;ôíĄułD‹ŕI8ĂhÍ8´^–ěýNč·ą\=ąWŇ]|]çgíÄC›X$ŁPťqXĺ˛Pqf…ŃOĘ‘sĚě—¸´™0bô(Ćł¤Q;‘Ąrµ č8–1>Ž˝‹ś‡ěiěöuł«ą§¦"{_*ôhKJ6ŇZ÷i“—0ĄŢ4Ô|,ič˙’ô*YS€ ëć7–Úäx÷É2ścśâošťö´—HřBř9;¦ÖšRx6öŕĐVNr…â…iDĂŚ:GW,ţ÷…8^Ş:ÎË[9{{–O‹Sľ˝˝Ď“Ię$ăQÇijű„Ú|QNő[K#˙¨Đ Ą…NʍŮÎ §^O’‹ú­ďj:śď„i;±ÓĐhnÁfŁzËSW,ní!ŃĎţKL@#l÷ő9é hQ™Ť7ŮĆ_$傥äŚađîé̉Lč?©ąZăźe”ŁăťÝpE…F+řoŮ˙§P>yĽcě‚·U틌okĹŔĺŘ  †ÄwbúÇ ç}F.eő»zĽĚF[Ç yÄĄ„ÝŘČQËgG-†ljó1ôŇ’śďAz¤O6. ˘‹ł ` ľűLŽ\ć#ş‡AÇ{‡]Ő"Äy΂öň‡Ö0\ΦiJ'/ń`iRQ0Ťď޲ţiüŽbUŕvt1+áŁÓ°|jV˘Ž‘ ŕŮŕh:ôž|%{W§ßĆ’»Ü™†^ĆŠ` Z¸,–˝bXyLńΊÝű”ľA-őëÚĄÚ‹ţłŤň]™]ěÎčŃb­Ř‚.{!ÍŚť/iČ g3ŢńUÝß+$W»ÉóE)DŕÉÎ ů=¬ÂŐ16 «WŐ7=×í3—eďáÇk[X'*ţřG+𧸠ýěŞcŐrZ“·jąĄçÉtĽÁÁÉY,ŔĚ«ţ•X‡f^ŇĐ61Î3‘9ˇJ·<ŞUg%ŽĘCí®/ě«Ôb‚%RŽöRÓăźU[ýżÁd}mB]dąĂO™hö=@Qč/Üä2g¨[á¨ĺôl$…ÖüěŰ ]Í쇇縡ˇÖs@—30čŐcľśHü2„půl»*Áwy"źEk.ďŕMě@rKSUŨŹRj ę+%DV}Š‚%ęÉĹČşUđ§°™ł˛Ň@»*™óŃžTkkż"U-ŞřW•çźą†™ĄćTŘŔ#ë©ćFť»’˘©_áNR<Çar ťB&ĺ÷÷^ D313OĘ5c[[\$± ă¸ËP´ Čk–-8E©…†r“Śu÷çUŮdléééËžqž;Ý™y˝ÜŁPŘm0=Ł‚Kw°í'˘·G„iGďJĆXśü›Ť–Äő'ȸĎÖĎ u ťüűŘŃt_3„[#cjż]Hî2 ;?łÎu´wg?f]ž’\˘ “LaMi4§Öîev¬¤9Vç=TZ4´˘xôäż… ąż}!ŮÄ Kęź2ş ÷ůĺ˘_7Ţ~5-ÁúvLíáńß].őiŕ<Ŕ±řÔ”g94ÝW5Ś´ĚĘ^˘b“ˇpk°ąnJŤÍe-kÖQDÚ|w*đyŇţŐA°4ŰÍ8oňE„FŤ/*­Â٤TY¬Kµ‹Ď{kjew‚ŰěDIřh×·;Ľ#Ë&ů˘ď†™‘Do&Núé w<«+Q?¤P’âdS>D'Ç·Eú Ůi]2•«±Ŕ›‡—KlXÔ®:Bˇ9wî%7r„gř…GúßaÁ.”—#rŮ_ "˛^[Ą5pP.ŞĄŘOT#Žo˙“ĺĺÂË^o8/‹dżĎšÖ±ťŰwŐݨ®D_ă_ÓĘ_ÁČDíŞŁż,…"µő űűŘŃ–ŚQž5ÉAťÜĄKÂcŹă?®ů €)ľkZß:ű¨ NqĆăÚ‰~µ ÚçYâÇ2]TQ~*Ŕ‘ú¤µ±~:nĽRŁDrŚöÂ+š §…ż(JTĎ á&6Qď ˙¨ Z"xążM„j%ĺ h!`ŘuňvlgüÚS˝Wµ¨‹§Gbó >í©îGěśŔ.÷&qď =Ň4 gaČźLłÚ˝Ť’ýT‰ľ @3Ź› Ĺâř]@t ˘ď|ń™¤Ä#żĂęˇăčn‰¦+ě2 $1#ëĽÎŇŇ6f€\č9ŻŚ¨ŇaŁ˙V2Î!7ÂQ˙#ŇÚ Ü 6&§łjlM^†ć/‡EËK^˝HJ…‡Źž'9„m8o”jMŔëc`¨ v¬!€O*eÜ™úІgä–PeIč”zÓWK‘áłĐ‘žXk- ü #ÔíČŮ•ÇS~Ť„ëWg‹ěň,vSŰN7…”7D¨5VwüOĚľčwçĘ G74ŇŔăq%h?>î§˙#Ë ‹" ˙7öąXĽŽlC[Łí‰Äw,ě­ô„~Ë–E~F™j‡'©´ŕLę¤HĆCą‚k#p¨ŠR^‚{a°bě©I #ČŘö 8KĘ]ţéaźÖN÷¬;qú¦ď#íh¨2ΰ܋äAÇŢş“ń»0’8á_ëlőć“8ÄĆŘ{ľ Ă&„ş'Ëzh"QtďćF»ž6á>ţ)s|Eˇ)FëלţtZ~/‰sPPw~¨žâŠĽj2UP>Őýk‡&5\Ą^”#­NLjnSĘ”ÔJkÚdç± ­%ÚŁ´)VŃ!ŽXšyŇçÓIoč[ľç… ÔH‘¨;©mŚ$u«÷c·ĄĽOen0€mqJěO\ćá9ź•Ő3 |¶ŠBBśíkµľ˘vÉC8fąťČš"čNńG~'ÁölçO€Ĺßâ@oú^Än‘z č¦Q˘v‚ŮŃn»ťtŔ d,g:űňR-†®Ó`ŰşßěmüÎJé?L’Ű}«^ yô:ŽčçRőŔ†¦ăŕ—k…Y/Üu/ńáĎ©Ľŕ#[ÔććJO.ˇríąCĆq–µĂ±d+fMB^˛6NMbpú!ˇ†lŤJř÷Ą0†˝Ď”A‰6½›Ç›#ĹeZć€q|!cĺ6ÔÜ÷ĘÚicx9’ MśHĚęčíľ Ő†ýř‹•Ă_ç—áÖ¬uo§ÂŚşéŠ® µfŹ9Ý Ţ±`±ĄdŞikdď×cHK|ę@ÉŔ6đ…Á‹vĚQÇí˝ęy“TmŠš w%E#d2ŕµW ‡"ĽŤź°Ő蛬6@ÁôňŇš‘źî—•\ľť]Î÷F>%›ÝLѧ÷Ů>şeŽ3ô0ś”[«ęAť‹áză—“uĂ›q{”ăo9řŮÝE”r;ŠŇ™î†’OŁiŇ>^n×ää®?F`ä`_ 9ů‘ňá¸Ů¨M7Ó»Ş2.š˛nܦV"-ńuFâ´µ ‰ôfˇ·RŐµĄLp˙ŤSa–Ě0ˇ™ˇ}<§yëńJ›Îidç¬VĐ şłx˘‹ććŁl=ŤČ˛Ápy9˘Öů˙Ř×b« ě¬O‰D¶q©%“†jĎ1»•Îĺ;k´Co 8ăRřˇŠ‘籜^6‡đ˙ľI„i‘/˙µ=Wq&ŇMy f2„©ĂQEĂž€(Ř]Ďľ.? R¨ďEU.‹žfkŰâí4#nzK…Ĺçf¬qďűÖئ‰/fµźŚŻX1ýŕě:Ŕ¦úHď0Ď˝…ř*qöůŞDÁbÇáTpͦŹýב$<Ž{ĚĚ$µsŠşÉ–×éß}íţňóoä*rŚŐ7Ľ9 ·­!']v|šw DË1:YžX'¦hy[ŞsÇWŁF•Ě×±ŕ)yQcl?Ü˝~ťĺ°’É)0çĎpú7˛Ďlýřĺ´ŃeŻ €v8n%pLđ슠¶«9ŃF:‰V¬Ň‰#ťş[Âϧ®&Ĺ8Űuáp„ĂŘ €&‰9l\«;»[%wŰ{@¸h rv1™UµŃĺŽ9‰Đ+­ {ÂM„őŁť…ü*đ2Őy<ĺůç×űo€ľš™ĐB*X,é6{SÔ‘%˛"gצ&Śó#jě•ń‘" Ř)ěýŚE=łËgĺ§ ÎĂë! ČRő¬”ÚăéůľO1 ˇPŤg(?qßOŢ×Ečp¨vIBĆ #~U^źÜ›˙G¸"Ť«ó2{+`ŕÎ,‚o}u— *iNú‰ óDGSy>ĚćÝTuŘ(ŔXÔ :ťܤ´Şţ­OąÍčú 6L´Ď`Ł“.žěů‘UľŤłżýşGTr‹XOCşË ˝ćÜľĚ.RËź„™ÉŠY| ‹X±ŁOµ§ ä$&`îŔ~¦÷w îĹcÂm˙Z:{[zU±ČMῆňť€db?7ÖxIř-é<ë'A§üŐ/©§ŘhkŹěîO)‡7Ľ:ń-ŚhÜkPŤ$ž« [@^ŹŁaď캢Wë ˙ÓΞÜ<°Vm˘Ěŕ¶Ât¤­*Ă ŽSIÂŔ¬˝Đcź‘`Ŕ–‚ A ˙-f-ŰłĽŠ1ç—“©K̉yWŰŐŚí1»ů0˝¤ő FYA’Ş&si˙qKăh˛ĚB°ç_AŰ= ł˙ŔÇ_ż%¦©}Â?fľ…üTW†é‘I':?Őo^¸u­ÓS}ăDZ–Ű!1 «Éw :%Ö.ÓťuqÓYe‡ÓU(­ Úę,}µbůA€FžÎɢßČŘE|#č#¸…˙Îů± 6—egîćäY·ŇUöľ>•/â»íY@đRgŠçC=^K6˙ě}đ~Á‘M1†>!Ź|Ş^źtgőmPüżŹĺ@TJsÝöDŐś¸‘ř8 ą!sŤ×ŽécŃDřĽ[9çHB“6(‘x\ŠÎ ‡µAnÓţź1§×˘ď,.ęp˘Ôi;§U.Z7ói¦&ĐUź‹×(^(y#â"l8;ŇŐľĎĘ.")ýČq#'çł·í!’Q ŮŻ‡Tgşmw=¦ČůöA-jĹç*“Ł/÷˙QąX¶™Yč^„`D°Šĺ ľ§izş¬xPv˛—Oí;\ä&ŻWĂ ˝ĎM“ý4ÝždŔ]ĘŘş…˝Gäß±î1řÎŐEÁ(ą#,°ÎÁfół¨ç•+áňµřMȇ`âŢüŰ<аˇ—ÂÝ+sVc(„°ţ’l®EĂć•ä@C>ěLȆڛsĚĂ2MÔô‡O®đ×¶Ł“ä©K]łü rű›ľFŚĽö™Oăyűů1Q¦ˇ;Y$xí•Ä2µ|ň[*¬Éćű6ĎÓR~0g¸ÍYŐµ4™dmJśemLK!™Î;˙\re°×IŮó§č§áCÂ%OmT>˛ŃČJĹís˛pWK}dw{g0ĄĎKG¸Wą-ő°a´IPV/sůQ Oąş¸®fo~÷in!™ťĐ§ąNÎ45Âná©íďş«[ÜĺűnŇrÚ€ŐąÓ=I ,rĹąN°šÔŻŢŇ 'q|P{ЬÉhĺő~â@xąĐqš‡ŰÜöĹ?ëN˛·©_kśíÎ1ţ›Ôx^»Â~e…“ VůJ…řńŠY2¸”hŐhÂöĐďs@_˛QPWŢći®šędŞX ^–˙ëĚ^5póĺh|Ł©n+\Vf—I>vxŚZh$Ő‡ŰúĎжNŞ ‰f÷‹¶ć »”†|źĄ¶ś˙”¦Jđ»ďły_0Űä(;ĎČĺbĄ0=$ż;~\•Wé(ÚžČĚM[j Źh?ĽˇPř‡w·Ë×űGŃ»ĆÎkö3€e†ź|— ů7&ťČşDč¦"«*4]4ö°­č˙üp21PŠ˝elzśŘMůfhžn¤q1Ş`Ťľ5~ëN®af ř7?ĺ …’ÄY~Ů!éą1UĄdç¶Fm1đ†Iř«Ľ…ô*ďÝrŕŤč3«<ôźĂá©-x4žČ^X»ę1É…küś7Í7ÎD5€f_ é± Y˙§HSÜLV‚äΕę˛h9äŽ'á€c6ôऒÚ$ şÝđçxÉĆfŰTtç‚ —›h°*ýžk—MňeI‡›üs:0D!ő´1ń”ú;ş÷¸ĺF3-sg§ĘV\Á≞BęĚŠ\Jµ#×Ƹ/óôŢج™Ź¨©ˇ(C!äh˝źyţşP$ČžO+śNTâ^§ŻŻ:šî'ëQYÇ—˛ ż$íÜ+S»â®?°î,Rľ~Ň`>c"?ľâ3n.[P™*MĘŁ·R¨°üMﲒ@cx'äůŻôceky“Ş™ -phBp(7?$p®ąYő*ůém\"úŰđŠşwƵ7îz)r·Uň†f‚ŮŮţü ­¤F‚±Tĺď5–8•^h+“m<µí ť Í/ 3‡†ş_¨aa¨my ¨ę}ň÷€Ę˘6dÜZGřŔ€káŔŠá¶G4vtß§q q÷Ńzňp ™Ó¸7ZŞAÜ Touá{­/z)Ý͵EX´Ncçk˘Fwř×§-ĹÔ ”…ť/.[Šl2hjé¬ PŔź>GAĺ»ăąęĽçÓ>;ú"Z‹ŘaČ2`š;1ŹĚ\´ć˛1˘“‹dzv¨"×\ęŤD" „úŘśćg,}g;WHjG/R&0ÖpĂŃĆúř k8Owd!7‰U/‚› şHʉűŻä1î5ŽNą$tŽM.ŢšolŻfŐŮtľ-7„… ŹU0ső¦xµ[)|#ĎAÜ7‘Aă€Sέ&­őcĎ—z› ë˙6Ň‘S™×J´`JÍd’őoł˘‘âú¤E±†ß7żśÚ:N”ůţ7#häóOfi0ă,[bM˛fŔ%łEHlpÝ,ÍtŻn*Ä?«@é^8píˇQaęq‡µďë[˘!Ch”‘hÄ7“*‡kBÉTŞ5‰a…e€E8 ĐżŐGŠÓć…Ć4˙űuNڬţĄs±2ëw1[“`Ö;úěK8Ő‘jm‚d<:Ptů† ÚcE‹yî60ÄžłNAŚRŽőď Mę$e`V®Ô˝i,üóŚĚG3!˛íy[…«$BS]ő¨@ž‹#ńŢŬ)Ţ9ÇL j˝i©¬ eY5§Ç_ž.&¤­´ťšm€ŮúČ–ÖëçýÂr9×čΞ[¦AeĘâať˙…0ŐfeF÷qbîů‚be9vó%ČÄÓYň óĽhY ł'RÂGRŞđŹaQD6ľEţŕ,;ö˘ vâCiźÂĘtDP$xrŐÚ E‰»ć đ8Î,­’,däRČ$oQBČ~ă<#€ÁXrmŰ„f uäD*¬”ď@HYC›ö JpĂ\Fź,pFťY.‡kUľ‹ńeŕ5©ťeŃÎw†´IF:gµ "čć˛7ş®Ć.„ěSl%7ĘB•Ůĺ†=5ĽťéĚv#!M¸‹}'«<í„=3›ůPŐ3ią{Ą>ĺmŰďęÜd»ň lŹ÷ľw ±W2őÁ*ˇXţy$…`¸«ńc ľ#•ŮlHÄlý¬ë3­­łĘVÓżp@ąî{(¦uqŞÉ'?_FXlńľioµě °ě«Dč–ĽŚW6rĐ" ĎËd[‰$ą0Kš/aťýŕŕď]g=Î9÷ó[ ÄÄ ú® DXuP<źlěp‘27e&Łbý =ČŤ `šîŃ|?Ö°ád:6ĚQ}ÇRpĽY“R©őyĚĐĎ©ŐŔŇ‚ó*ľĹhTyFô‰1h^tÉo$10Rlş»Řlńű‡ŞĄďţĆ„9ä?Ą·‘Łv»ŘŢÂWB‹<&Ő˙ĺř‹B˘XŚ iăůj˙ŚČą)$7QQw1Ş’ß84×1ňtu=IŚe=,úŠ Ťńŕ¸€Ü 2®:šGúý#Üłt¦Í|ĆÎq ­}áXr(«/¶É@ĨXń÷Ů©jŐFw•X>î-?¸ý#ÜŢĺ‡BPĄş¨E[Íâü‰É14»čzu·*›mŁ/řD˘*{éµKĺ† Đő>Ŕq$Ô—‚„hGíť(Q÷_±şłőůÝCűă§ÔŹDµ±Ź#˘Cć;ʰ!*›“&ź´ą‹üśíąA@©ă˙5RČŢ â_ŕâ*Ũ¢:i·[h?[()ڶ:¨đ˘˙Ä^n»–Úú3§úˇmôF6ÁľUV<µÎJRčoaÚ|hŰFţoř@OѡE4dłâŽ `Ž‚Z0Ć©ö0ýIŹV =Aˇ‰ôŰěyv}ÓVŠAĹI#ő>§Ab:#R2/ fű&lÓ&s8†Äp§I‚ÉüäěQŚG6Y%ź‚ĂÇKÚš :čŹĘşĹŻ1ł{Á„éNíÁăiŹÜŻT mŮ eű·ŁbxRĚ;đZBňθţPaíDÁů§ĘĐ(óU¸É|Đ @0ď`á!v¤ţ¤PĎÚşóÂ.r¸™żĂĘńä¬?Ox@h4ůĄpŁě|lB-^ ]D˝>˛"Ö`Ů_*?–×±Ô§řßgC{ćF4-ŇęSž(KgŕgL…Ö…¶Őçµ_|Őăř9Ó˝ ˘j–ěEů€ îN€×3(äLď Ơ‹*0µÎÁ¸}şŇaşO„Š]4·Mp`«Ářnň }HŞ8ThCŢ&Şú÷?1›Fćs=Î ?W˝M7 kžAďk•+jń˛]¸Şš|iĽŚď+Č3k/ʤ)śË|ó#°¶ľ™E ˙.6ç1dW††çd 3†Z +ÁUĆ ž‹ńzŽX&#Şç”ßTˇZm1Ň“˛ ()6óyĄî ×?vɇé ­k6ŕ]ŇžÁŤůc#–Ý@lÔf–ÚwqY${Ą'ÁµŮˇVlŞˇžŘĂđ·•‘†ĐEŃzŹ,~®ÖČďŮ‹iĂCŇ?w…őV8hĂŃ1ÁZYÂ…í¶ěÉ›¤p‹Ű%Fé[ďŢĺÄÎĆ•X‰Ł‚ż[Ý8Đč9˙’nwJţ?°ŮłĽüű`3›l >ćěŽ˙ňhÚ†^G“Î/€ýŹT ú+âÄA ąµôMb¨3ěs6ŽţŚq6¬gýÍ€P\˛dN+ÜCUž™ ТEřďRś‰‚ŢRúÚń†!l5pxVxť”`˝ËaŰĎć‘»BÇű"ş}˘Âhm Irjš]đĂ =4M¶ `o†¶!¸üC‡‘ÍMćąĹ¸Mţľc Ő?)ͦôˇ ôk7ž•ŤÇ¬† Yë6Jäđou2ňA’`!ŮĐąŘwzÁľlPßI»ŘY˙KýU3ŐÍTxć”⣨ç˛ÄůĆ“§Ţbi›[ŕ]×”mŤ~bwl#÷١lëšd âĘÁ`odi¨ĘÚÇ$:éö\|4Gťź@^V¬ć{a5Ą®]ć†ÔŞÄôൾěršrąYU)řheŢě.ÜÍŞ_™3`Oź|äK“ÍĎČř,°_c˙1Y¸§ůf@ˇIĆ0ĆÎđž"ľBôOől$‰O!'ĽZk¨ŞN>)CŞBé±”¨—(EŤ.ĂĎZ'`B]CúÍ1 DnŢüË-KËH·řgëq6 óÓ$ödűVJ„©ĐúEç Nc/喇ťňwíŮÇKëŤUuŢĎńŤ…Äď…ŐŻÖµUQ,ÄOZ\N0sVŇ$1= Ă/O“ě5S­˙ľ©„zpJ7Ńý™ÔŢ’7;gq¦˛¸ŚA?Ą˙"Y#‡QYDx—-“ľ»Şé¤üZČ.i[4uíöĺ`ZeŞYčyćo\=" •PlĄ`oµ˛ćbĚ(\^ZX[/ŤO+´ŔWQú ă¤P©ŢČz&hŠ6Ą\÷ëYll‘µHÝĚř‰ä"{«Ë[>ŮxBóaĐU7Ë Ş‘Řë“€ěßŢŕ€ńí-'AbőĄë»úŰc<0¸wĹ‚­¦w$|®„ńę…›lv௟<“Ó}u¦ŮśźCe®~<ŐÂo ±u dďÍŤUߥ¦Î‚E‰˝– äýÇË ?0ÁŁ›~†m„ąˇ[‚‘ĚĎÂółBmh’+™ĺ<˘×/Ä©‰˘‹ĐČ> /O°FťJqÔg\¸FV}¬µ–ą™­j.B+Ůž©ŹaN;KĚ@ôÚ+06˛úěęŽčöŞÎ$YXV+üž-í«®i–ř\:?¤śÂp§č7ÝO¤türi˘*#n@ˇ·X§?¶‘»ĺü¬sŻĺč|´š˘©®óÚăo‘A¶˝ [ G]9ŇÔä\?idVT;©A:\hZńÂ^äˇM•ŰŮ0;Í2• ŘŹąŘŠţ/~Í»+k ,P,ŢăłÓÜĆ>Č Č»ž±sčŻđXOů˘ŮFzµ\›8‘ěóŔśýÉ×kÔFąpG-%h !?XrB'ëűR;} U¨ňÖ~ěJśj Ś3[íńÖĚÔLvŰę3Ú} ąŞFěwÂáaw¸FŤ:»÷—Ôy®Ť¶wµ|T)Ă“ž˛‘?ßŐ‘¤`ń—Vů”‚EUęéŰeÓĐŢfŤ9䌞;ş‘ÇĹ2ÇŐi™HµĄv¦…ŐÇÚklúŤÚ3…ČWč乸 Đö˙†áJőź“;™ý:*Ó!ËŚol~Ç›Ąąj‹śg l‡•MJ«žÔĘ!sŚQŠŻË‘˘~ńLż~‰ýx»Kť7Áź}™ŹXŃ“ĘknĚâ2^ ‚ ŃŮ:@38ś‚b›z˝úiŻtČvęÍmA_,•Da_“ťĎCý+ˇ Ő…ŹFscdćy KwĚ<×níě>ŕtÍŽú6.‘ń1QîÝŢL@{ę˝\ŹTő)ŇZlR§ö?KŘŻ.Ż_;‰xô…rĆ„¸Ř vî”vW.'µ"‹Đőę–­ăE˝'”Ç-wtŇŚKMo1-&ë~1Čü9OĆ\Ţgmp‘¸+e‰á%^Zuž_]Óö˘¬˘Mf*şăT›Nü{>ß6FÓ(ÔCüˇšd¶ŇŹ!óBáĺrFW9w;{ CKúęp3ńĆéŁß&5ú&‘pÍmÉ„óľ_kd± …Ď4ü[1cHę÷”: jŠ%¨éw.öŃŐ§¤0Éš‚úÓ˝@‹Ąó/Ô€Żš"}N’Ą)śö×ÖĐcňřdž+c~ą’(TUëč“ŘE#ů Ŕß.Zş)ş1žé ńŮ„’©~ í¤Ěţ˘[ýĹĆwâ+î ‹Ój©,t’X‡|Í3ˇ*4+őy‘ŃaťŔ]ž3n[·r‰ĺ:›6‡Č%‘qŘÉ îóĆ&âch!‘E;aĽKőů°UvúöJLÓú$Š®ţčőŰąsá.¨Tuôyˇăś [ţäŁ"wĚ=˝ăiŽŤ:ÖŹHɱ8×)LÂóÍcőȬ&5»ĄˇÚ¨+‚G”ó(Ë$łµÜŁĹ'¦ˇŰ-4ĺyxÄ4âu-:ÁťNE˝w…÷˙—]łL%ĽD"t„Ô‚ˇôvę=™ýËĐ{JI—ďÇďí\žRşűîžvQ¸¶r€đşëv)C6`xĹ ˇĂŢŻbYRrűÁ÷É­ď´HżHĆ‹ R«AżtĄSȶ>x o' ţ¶>‹văÍČ;Ÿ÷z¸‚G[—',‹«$¨Jĺ=ënĽ¨Ť;Ľ=ńQAň°l †'ĄľŚcpá´Oî{Ţ(Ĺjb†uźnw÷ŰĽ.©nꫦłÁh(Ę/4ą·ń°śÚo$˝…ˇâ€p„Ł„ g‹,ăi(ŠT{4Ę×{&±Yű4őlŰT•ü™áoBĘ'•ĄPb€Ł™t&2hĘ'_UăŕöD\r&uńň˙|%Ď8îhćz÷=Č`7ś®Ő©°ăf[ߤÔLď—HĘWهa «©o‰G:ýŹPQŹ"7l}3ŁMĐAy=08äkwvdl_˝ąÚŕ*ąTĺ‹rô>7 v“ô]ď˙›rĄjń mX‚ĚßÉDbîś9Čî%ęŤkřp7ů­ §-Ú3g(uŻÖă˝¶•Ć^’ EŰt/ÁźśŇč ČwKaŔű0ˇ¦Sg¤{śSýh tfSrÔ ÝB3ɰR„˛§GFÖv9FÜ› Ë.śĹ‹-&U»ťâ$Ó&•PĄr ĚeŞÂz„r8rŔáGĂ“52„ŮŃ:°rf/¶ @ĽşÜ丆x¤ßí~äR囨ĘŇú©Ĺlć«Cś‰˝!Z1ż10VDşô—Ë ęn ­Űç;<¨Ľc…ćlimV ¨>E~x¦,P«˛.áÝsöF¤ATb'č(ĂáŚ2·hdĂěΨĽŻ&¶MĹYÔ%‘+Űëjg±6:đ”bGq72śBę ‰ŘHăyüečű"Mٰr©Ň—7Ž=·ĄŻ)huÁňjúŘ ňpÁ O°¸É Y“‹á·ařn<~¤;l˙öëB(>0¨<Ĺl/źś" 9ÚčÖţqG…í’ë_0“oç(•aµ×µ nd˘ĹýĽőĂůZÚDŃOŻG¶‚öĺdoÉ Ş˝‚(DáĹaëŇódxŁšůaE˘µŕĄ˙n˛÷ŻsF*K›Ň;‚ŻłĐó»•ĺ(ţš2UÁ‹}Ë OŽ!|JŻ/ źą5z~;LÍűgNĘd˝?R#őŐÄWÓµ•`?x–ą|Ż#Ľ•T9y ęĚ ť0aHś\Iö›Jİ®ŕ|C2u2:Ć·vuŰ´cŽâżÇry©äÉ‹źC†1čó ,G“…± ^R‹čiÎÜKöÝqa÷ŘŘ”źS^kímŘhűúęĆWacŹt=,™Ľó“= `uÜŠÍ,ĎÝ]ţŤW$ÇWďRz}Ą [“g—7ĄŤÜÂ'ŘfŘ4÷śM ÂÔŽ»”TI÷EŐ% 9sŁü69Nüó¸TŮDťˇĐ€—b}rOŇĂĄžőčÚ˛„ťú1#Ą‡.ćéu5ŹTÄ´Iç‰{ŞÇ-&Ľ¨—táÚ+ŞaÚ_µš×$Ákĺ‡ĂC˘ÍKµ‚MÇDÉŤ§’§61şćËOWz7´úpÝA0SŇsú!¤f+Č’.QÎ{¶(‹~%xFë˛ßÍ¶Šź8˘:¦îi»KŤ€TÜ5Këew$€5‰PÉM Í‚—4_×iE(%EáG¸<÷¶ł!çŞÚÍ(.é(Ś˝˝ŕŻż@·{eŮç]Nq޶!^Txđ*\5®n`żaZ‡¨0°ÝK6Őč!xzޞ.Ťýř×HEŹz’FeX”QrÓx×ůóÄŤ?$µóěĐý˙8P -iÖ) č“ ĺxĹÜdÚ˛ž52¬Č·`§& 4÷đ É=*š•ŇĘgˇćofÖ¬ÁřW ÇĆ\jˇ®‰ď<ľ {€¦‹&OĎOó8ÜBĂx>ľÔîmi…ĹďTżö7Ô˝•Sb©ô$ćf§JŽňa˝Ąr=;FęŢĹŮĘtÍay"{ţMsKĆe‚N3Ü{Yż”é6ţLD°je¦‘1Fg@RÜh°g®W[Wş°sř”ő°U¬Ş±A±ůr'ív”ôk:hÄď·Ŕáťđßýô±jčŞgX;ͬE„x&4Ân‰Ś¦xw&ú"¤ň]OÁęű=0x¸îýŽÚŢEŻQoaNO°«†We<$9/gÉWÖ:ń V>†ŞŢr·!ᡜĹ;ÜŞ´ů:MqˇňâÉÍ{÷°m–łô\Č]ˇJ°ŃHńúUüjűIŞMĘ&^ď–Eü+¨L¤Ý?‹č´tţ +G_Zć.ÂiÔ%ťá¦‡ÜÚ‚n;ó+i6‡ĐŁËĺ­G^{ÇHŠůŞ{ÂľţR]ěbĹcSˇŢÉH•hcŹq*´FÖBk€ĹŮW#á ?ŐÄDb.xએ˝îĽ‰č |`řî'Ş«+›2úÉuo†9%ľś4qĆçLĂ_dmÓŔ;ŢŹÎF8KYŇÇŤŐ†$Ě8ĚŃÄ“ŠřRË””ޞk)ˇřHöÄüZđűĐŁŰŃţü®ú›K” ÍHä<(&!@V% ©dě›čjĺlcëÁóRrÇ>ąúÎ(ʱݤ;$˙ĺľär$[ř˝SB‘¦ă] ězPsĂŔęóc2lbA˛ <Łs¤Î’F/Ř˝šôęA‹ŕđ!„<Ľ?úĎH<Şđ±âżocv˝^4#°}âßk TPôqbźçŢÖŞ–˙ŹB$'+fiÎĚ*V%ýV.QoČzuXUőóÄÄ®Ţý¸Ú†cpčcL).<ÓĚL©—ÎXçS Ľµ›0%ó©ËKˇŻ­Ź©j¬ĎَzV ˝5%Ë–ĐöddöąňeŇ{Řú'ąŞ $ŘŢ!yÉaBä&‡24[ú&ĺŮ‘ŞâŽ),ęş Ź-OĚŚ·Y¶[1˝Kk­#sŕž[Ó ;˘ą&n$Y2ei– ůݎł-—X4śÝxUX8e-%©:ŚźM J[ëÜŤÚwńwĐyzCżUőŚ™ĹîNÉبB Śn}ůˇ‹č·K˘˛…Šä|t¦±[”ZkÍšçĎsŃlơőÁ÷ă»ěÜąJĆé€W ŕšYb­j°ŇÓśmş6kÇ#/Î6ˇČ`Í%”ťŇÇpq˝@•±M’Ţ Z ęĹ6ŚÖN´*?‘sQ=Ë‚LÝBM.?Ríigé řgM€ŔYŹz`Úý9mĄxٶŠ2WŢe©…Üë)mRüŇłš[ÜrŠ*w-N…=ĚŽ:Níµµbű^ö;R[f†(Hn°·„€Ă˘đ˛ëôL‘TIaOΨ9ísYĄŐBöÜR‹ä"a©?ZđxcĂĂ9d”>dföĺć_z8‡ŤŐçÁ† żUŕÍá†BĽŰU‚áßS2vóŔcÍ Őiˇ~§€‡ć˘˝d¶nDOA¤8Z#ÇńšŔm6Î$#ú6Ô`ő…ć™M…Z6Őß&Uy»·QSU±Ö‰eTa¶ ÜN”`Ćś2{ÖMYW±¶×’÷gëoĚŽQ´üđ rĹ€NŹ®żÉý™Ęř†ÎŐŽ´†Ă&Ž\)¸d ;qš´R_G9Óz«’§™Őĺç”3ňE›Ë.Rl6‹ʉě` Ő,~Xč|†Ěä+“RdTěcŕyŃTÁđ-¶›ýÍŢÂHßXa>âĘböCO?i÷ˇ8ţëôđ#‘ŕ‚0ĘÖxé3`/CTĚŔs ű|»Đ1ËC U\;Ś·eÉ;Öţk:‹š/…ńŢd6¤h¨˙×Ôúo,řÚÉ ś˛Ňą?d0ޢ’2ÁʆW „ćĆOSRPgíb-(Ś]°i·QŇ*Y6ŘŽÝ«$˝‹ŕ¶Düů.†Bš6ë[ h?Í<…˘ŰRĐ3C]ŃŠ`KI2‚YáI$etzXĐ!}¦şČ w?ďϡ3č5“ÁĽs…Fî•]×Ë˝˙ń§˛l¨2ţngp‚S28č¨)Ćł:µă(Ţ7T¬ĺeďŢtBęŚ|XvĆ%ě 4î= §DĚQ˛ÚÜz*ŚmnôW•Ľ`ś˘Ú>á ,–$G߬ĽŕÉtJźĺ3)éU˙•îaBÇ Ť‹ŰÖ[®»š%IÎQťý-a0gřrŹ™WýCĚ+‘@//!îFńłuO¸ďŇ›ŠŠý0šuňČŞ!¦©tI‡ôÝEÓ µśPśÎ#ĆéYŻÄťżc–Z $0ENěΕ^±lĘ./ůĹcî–©F€`éC˛ČúŽUă<> ŰÇöHFóXfÎR”ťŮęó6«…jˇwďŠÝءTşc8íN‚wtox%5ůXÄ#ŻJ[-Ť¨Üt/W¤D 7źE"ÔÄaKJĎZhIH¸Ň__'łŤĘˇęr]B W¤v1‚­őł#¬˛«îŘw1XČ?=j•űIuAp `ŃĂ0¤Ěެ͌XkĽu/šŮ»vŘ ­““;ţm,†¨ä#aP:śm>Wb “¸đé„g~6‡[Ř‹N"ŕúÁő°&żť öOĹw$T]dHÎć-śyxüż*”ŽO’”ě0żˇŽéŮŢ’2YÉâĂuČłě€b;2wZ_oČZfҸŮ÷ži:/WĂ&ç`•Ď…űMĹ$(XóŃŃmoľ‚®{.2LČ‹W«Ö*Ń]z\ÎÎhm—-“f_ŕ 0ô{¦ĎŃ#€z”Ź*ĄSÜG"8ělŰĄđ“6ŮCy± Ů(Iě­•öoŃ.U‹o˝ë‚­A&¦ĎmŐTÍ1¬ĂV9J‡›íÄ…04e2 Ă ve¬ÄL¸łĘ5‰'ÇÉý—2[<}Š ňŇ”SđţI<#ÇŻ8‰ĂĂëÇ…úÝŰSi+cţăQ$=ÉŹďĄM!wĄŮމ’UŞOřL~ůbfĺ1̤˙ř{˘‰řźó9ĺÝ–ÚPů-:+óž# 'o€|۵–V¬l'A"qčN;ŞşxLĺ(Ă«ř!|U>°Há&¬śŚµ" lĎ׻ޛ€WXĂN­< $ZĄ¨ć“®;WNmN’Łď󸆿HôĎoÔÜäŞ1ŹX:°ä>•!H,ęÝd-QTm?NŮNlćŁńćaÝƢ¸óĎă…-BK?F~-^C˝Y‚%&…б‰ă˙EÄć_‡ńĦśXĚ˙ŃQQČŐY‘'T¤8ă뢞')ţwAŢü[”gJ48q#}NÇ_äĆ…ş›îýŚÔ /ęôf?B ÷X5y.Dëk•7őÜŮőpŚÓŕëő•Ý{2rä*íË˙w/FńÍL®&^)/äń Ó@v˝°ůç»Í(N$™ d]¦Nü0᫉ůLoŃ,)_a4–´t8Âçf oHű1ç3,­eoęŔůäĚ#ŚăĂ"Ójs_)÷Q˙=+¸zGůZĐŇ÷óLoE‡¤ëÇ‚śz sűö>=k[Ü,DňŠíN=Ŕü€ěĽ°†´_´ŻÓoäę–+z¬€Äw ä¤tÄ˙—D@47Ý}pźt…čK±č—ă×XO_ôŽ@°ŞĘ‚€˘Â(+ôaQA7ŮIĹîyüR\m•ťµ!¶ÂˇLÎ4NböeY*‚Ó•jş±${Ăg |‘"îňB”¤CTŃŢ­‘MľŽ^7P€ár»×x·/SB0Á /vYý=ÍqćZÜŤ yH-Uu-ż¦5٨ ° ö]!ô{xą„ú˝ď?QGs‚@'b¨JNL÷DÚ“ńÄŹŘw"á% iX_9020Áě _µŹóÂű)nŘ«|)x(Ëa~ď)§Pţ8›l5˙ăĂ,ß=|Ż:Ý»ęB´^Ěěň%ĎHۆŢţ?®@đ ~6·a¨Ď™#ÁôÍu™™e†8ęÖMúÓÖCV‘Ôŕ˘wń%Teâ ÓńW~ść®¤SČaďëÁv±zIµČO6ŕE6ß馏Ĺdţ? Ŕ”c|ŰAJ‡ł†î„‘Ń™r?CŽ|–ޱ—<Çż‘ӷ׊8,΋ži)QĐ–BĄ\ŚŚsÇ lBücIr$‚Ł´MŐ‹ĺ©U ‰ă7ź1ňé„uš¸3tFF96č§)ÎwË]ţŐ^u+ ď,Ő_MšąWâ%–©úĎZKJĹz?{ ×+‚©YŢlž®W9 XŐź9Ň^’lzęx #˘bÜ/»¤ęcľF0ľ%!’ůZúö·=dµDµeÎçěśkWűßŔ3ÔVNzq~Ă …dFśJżf†y'X€žŮ•ł(ř~ŃF’sč†Q™8ĹíżXJFđQRˇĽ{óD»5˝›‚{öĂ_/JŤ…/6úÁÚ^g†&×á)”fhTΨWâ TfĎb#ŘŕC,:9Řm öyr˝F/üˇĘě¸XW±SF„_–üÖŠş­RŻb.µU†čÁmęŃ·â§DP\fĎIóä)7bţ -~śQîďauŰPŚ#Ĺë°¶ÉXó¤_aëö„Űáfţ`“K™w\Óv‘)¶z·RÝ.­ř§ÖD™ŕ"eńm”"ŮöÉ46ÔH˛ÝozśŔ…čX÷BýMˇgó'x5f,hţ$±ĘŮÝęłľ‚ŘÇĆç|ŻŃ˙آXáńVŇŔe—ěö™­®ŔzČ“ŕžé!ÂgéF¸î D(@=?Ä9Rx=*ô©, Î ’Ú°·ßyÔěn!ěr;ë*®sńű•6»năU*!Âc‚¦‰Ő:`čř‰4ɤ-0›Óc ĺhČÚé&˘u”ŃďHtX îq ăÝQ¨Üh?ů·čĂ8ĺć'‰ćŞü§[›łÝTT¸8Ţé@ŤžŐÚÁě8Mł0ż›,1 ©ÂŁjxó×úţ"ŘL«|í}s[ß0ϰůÚrŐ5BnnJ+©ˇ˛Ťkbś*i‰vŹeďh˙±ĂŢZÚťJ^ŚŘôi,¬bµŇ“weŇ_jĚśb^´˛¤jÔ¨?Q9{ľ»Tý@őHZš¨XݦűŽxĆůaVz•ă´§s+Äu\ű]!&š¨w‚Q ¶SëÁPgűÚĎęöó\T`‹ý§ ©M®A9`Đ%Ăły‡^“ăAăĘáXjý–M6Ä/Á  ů:(1ţ˙E…Vea …”A×;ŔĎ]މż¬-.ćÍËJP‘í6{ÖQ™E°řL r˛…<˝k5Ă<čŮ·z5}dÂ2io˘¸Ş–SUj@•ŤŇöGÝű¬ĆZ•Z»Š ©ŘH -¶Pě#˝ŽvĽ"ÄŞWßł/ŰŃČ!´iGË”×i$-¸ˇ Ś‘pVťžśä&ŕR /E SpKá¤ůç)ď+$”~n&ąáÜÝQĽ?ĆnúÖg‹Ń Âaţfr¦9&bâą¶”Ď"4Z–-Ţóä<´oKŹu˘ nßセVŤ, ŰőSíĐÎô“ Ä–®#» …ÁŻ×gżî3.ęéŞ üPĎŠ;J6ť ´ˇ@]±č¤˘§1ŤĆ*ä —ţ'‘ˇ#g4^ňggX $°)Kź~ĘČhoÍÁÍ»V|4OfŹŤě¨»˛@!'yVz@żBxľK6Za§H"2ŕ&*”ˬgI†ô·$tŚóľ]Ë,˝?KiÜĹyYţŔ»K®<ÔýĄELđŁ®4AĐ_Úľ‘Ą?[·•ŮńWő& /%|’ęř/»m¤j®Ý»<°BwfĄVÉ"uŁą?wm(J'a}§Ů*tÄň%4Y2ebM(»Ä Ä?°ĄĂţ,ČC߬ş@Ő'XĐ.Ó1ę˘&@Ićé>®1( Ńg»$á«=‰wjÓ©/l=¶řĽ<•›‡NO·Íiý{ËEZ1íiáýÝrĽă 9U=ľ˛˙W`Ë8B\ß˙µP·é®łăśőj Uľ- ‹­U„¸  ËÔŕßcÖ÷dXţš?Ykk¤8„F";G sď|;s$ÇÇsVîţ0Š;=Sý⻏'ňxC‰ÓĐ3«‡ţ”«OĺËcQ_›©:¤WCU‰(ą‰3Ŕ›°y’$(ś[‘┕Ĺý•­şű¸×n$z‰×Rg'yf’wO”FŇ"d˘tÉ—?ĐŢş­7âVWěoř_Ix#Ľm/X“ĄąV–€Źg¸ÍŹäAÁťX=ďţ-ëĚv®‹ÂŞďÖ™jyšö#˙-:‚ôU`’H>igąE02ľpÎ.}¬ÂgÖ€Áűä w¨ŇÚ;K×NŢZ­ř6ńyPĚZs˝<6ˇߤ‚‡nďđ¨|$/Ô:h hü_lîävÚCąóOFÂÓĄěĐOˇĂË=…]ŐŤĆĺF`Yţ»_IđąÍäű'Âa´Mý8ôĹÝn~±vł”ŐqeI%?ńÚB!z@b7ĹĎdFiÜ’ÍÚŽë'ČaШ\˛âtz‹Ył§;ŁY„ŕát±Pç=nF‰ĘĹ«˝É‚đ§`ÝŻ˛TˇÖŢSŁ._–ĺ €˙üŁ.Ô`«+HrC żĂ\5[A yÓQľÓęú,=¶ůŢů 6őÇdżY ^ć‡uY`Iv|rYňŞ®ŽKś[GÄó˘ô˛+ţsÚ2Á4^sEË`4żjě2gq„ČĎŤ—”¦b»óŘŕHäsĂqž°ĽBą"÷` řş‹–ŚŢř_¤ »€ěSŐźŚÓ  č7đm­>T=QQn\äĎ*żęáźëü…YŃ|} đZ®őSLĽncÉĎ|±Š›Ň2Č\.Ę`09W”Ęe[†a”«Ů”#ÔžŃw«ŠBűŢŰŤ¤–2ôs´Ŕ†ö¸sxű98v‚.eđmÓT^‰EąÄ&¸C¶ S}%ąÉ–…_-rZÍ7´)3”Łj-žd™*ŐŚÎxYˇ6˘¨Ě/ K)dôf•¨Ŕv¸%‡OŘxŹ”¶ń]sA6ł –ÍkľHL‹ÚńI(L}0—"éŮÚ,§ĺ~§ĐO bŞ˙˝ú¸EDŮćŮvˇyOíÄ^ҢÍ팻jE„ąO;Z™r˝äň}cťađů ň ç˛ËŲ‹B´xŰ maęl˙-ţ ©'ă'f«3Éą`ÖŇ•äV[ŰöCîűň{wM—!Ľ"Řţ+ jǫז@uS·© ŐŤPÝ{ß:ëk2Ă6Ń(>ż˝¤=L َĎňHęC_'H×ŇhČBÚ_¨Ll34zÎ~aăFTg)îOСŹÝ~ŻTd9_׏Ę$ăŇ Pc‘*~mIÄŹčn+‚ĹĚ‚­ďeĐR›+8•€wfĂz2UÎ1qěçÓLtô‘ÖŠ:0`Hó]›EôSý)Đň 0}"ś|ÂŃŮ)—É%)U¬Śjbc(aćŁ=ÝůöôŐň~ˇčx¤ôţaŔ"3 ŐÂÖµdĐĺÄ»n}JVŔ$ý”˘ˇ×mžtŰ< pkú:ÓĎ>ňĹ)ŤáŁÇŃŹňt¶l'ő'Z;űĄ‘®yŢŚvđ°‰…Ť?‹·©ĘfG´LęŐ®ĎR¸n˝Öô T ĂÁńđcF ř^cĆeH1‹‰ł“°C¸â¶AčrŁĹqžÎrÁÄzzólĽđŔnN¨Óą’áÎ[@/ó~)5U\±•şř' 50OT?BQ)ö¦ĺB ›Ł–äPk%{ݧU6YĐš¬0ęô’ĐD=ާ1”µ°aďwVř«áędN0VM•wM%ő?Cc6T{¶Đú8Ł„ŕ+Śđo >LfQâŤG€Ö}`šZäçtˇIďä(řôËg3u˙t2Cńqd“¤j!µł_-cÔW…ł˝4Ş`&P €Í»%̀ظZ=ä´Íă¤Ášł»ŢľŰ‹ĂÂdđ ţA˛‘GĂ9ßî@ ŚâÓه!\Ř’Çř'އ8çs}Nf”’=í‰Ůśgrą<ŹL˛”€|R {·Ř‡ţPóőńšŞ¬îÍű2»¸< ¸ü3zť’ż5´z¤0Čţ÷úhÄBC¸î`·°×ŮɢŠ‚=e|Ćk­8©–™`Ň÷žłŕěćZűö„˙Lý<%/ ktÚ^Jrä<;«0ťumŔĎáł­ŽĐ €%˝5Ç…ŃdôÉY9îLů¤ĺÜýWpfe9EşpĄcĺ€Lö›îVőśm˛EÇ]@¸:řQŻŹźťA}â´­W±1ŃýŰŤ´>r¬Ř.ŻyçěäŁâ´é®;‘gĽ z]•'J!‡şK ą[;p’4d;úÜeYńž{xÓŚôĺžZMĐý˙‰(v˘: 0»=| ×-¬ąÝ˙ZąÚ#ň”)ÜV@šO>¶…­" <&Đ*ł ŐNśNtΠ`[ Y&$ôŞ8äfbZQíͧ¦Źé`Ű3ĄÖţ˙PGZ/R˙Ňţm@¨úÂŤžěÝ%ôA ią|™Šą3ýŁÓŰeq7r…µeyCs­A„ ę..¬5boĎ˙|«dn‡Ă〕•˛ŕI8šC:ŘşQ+š±G•=y ÍúĂvĹ ßÇź2i8%˙[~”W ĹřúëMp€`™UÚFí®[-âaż%łď–1(ďŕ á]Ť\ßđ ¬sŽîëôO„«’iźr^k.Ć[\óa…¸ĺ"căó-‚‰ŚšĚ"yŤĚő¤kĆ‚ôŻ;ą¬"_†CşIhÂźY!1ÔÓâ Ýx{€˙…ňßóqíá‚°;Ź˝|*Bä•vBYýÔާ†.bÇ8·ż Č2L†Jš\Dş÷ĚŇÜŤIşj˝[Y#S”‹LűtwŐÖÓä„ŢĄ¸Âčł¶ řW÷›pBǎ‡´ľÜŮD{ČKŠBJ'v˙Çč±2\6v©G‹XqDLÂüđĎľźţ„=14ţϱ’ńuĽ0¤+BŚ˘%‡{"„%tvóő…“" =tú0•U8íYµZ^…o#§/‡˙ž°Çaëťě€…ĐR–}Q~ľŰźt_ËZăĚ ;kTKfŐĽ‹—Óöńü«09gźŢclťOĂX żx˘,Â4“Ľ­Ł µů}üC4¦ş,.§Ý˝ůŕĂĐőÜ\#†«/s¦rT˛r$şÔ “[LŇ |mĽNJKŇdiżvAC¦ó÷ Ë6ĚL瓳CÇgĆ:ŘB5oÚÁ»QNĄNÂŹô§Qygőŕq‹(şčTw12şA§Ţ‚ŰŽ<ÜOˇ-ĄőślâÉű‰ńiĘ-¬ÔĆĽS3EŐ1Äé ľfťŃżŁŻtÓ˙ÝŔNq-Çě¬ý3ćÁ“řűf l‚~»©čö‚†’َ,ů±ł.ĘOÄŘ +şGň~<´ÚęKR˝Ä+řTúvŘľŢVVU®®a2Đ©2~ŕy'á«­Ź‰€ŹČG$‚J¬ˇ1Łŕ.Íňk'ÓQěĽGŞ#ËľŻNä#|by^ f=Rg_ť®OšJBHRŞ»Pěč€^Ě‘ź)$Jaxb{NÔ>űŞ8W'‰ĚPč”`OđČÝjTá“~sŕ+ĽAvFJ0yÜä:Ŕ(WÓ€âoŢ]®‘CŐÁq~÷ä¤;šĄ+a“?[ÄHn-¦$KŁ˘őńł=`i)K(Ďó:Wz=Ś®ŻÍ»äp¸ĆŇJ-†Č_ö¸ Ô ,żÔŃ·TűKýľtž^ßýĺóÉo§Ę©6…Şůd=čn(·lzř°ĚćŃ‘ň‹]ŢnË/ tpŠ–‘$ae÷ ň©ůĐFĚąŽ ű6Őů,Ýř.eˇeÁüőÄuIŃ ¸` wSžŰM·mšËMĆ-¨Žý­;˘7ĂĎhP.ď˝veÜ{©IäčÔ[ÄöJÉ|żNĚ?¸¬w‘„GLzĚj¦‘ĂÚĹWÔh»PŹť0 I¸"ý—ö¶â»Š>‘‚WEćřÎgz˘ĺ…Q%·-ÔÔ]¦Ě.ĹDúŢą é®hÔ?ÂZ)(w˛ůVeľÍ QÔeţ|?‹M‡Ě©WH)áăÍ! W}3Ŕ$Mő%©E"˝MŽW`,䲵E><Íěĺr¨LbÝ€÷'(Rlf+Vý|ďůĹ[ě­E黥D©B#?¬Šôë´ ¤•0MÚŽřn¬ąš€MGŁ/zkT>˙:űôoRĹ`Ş‘ŮM‰ýîž%çă·Ó 9ĄŘ¶ú|ÇSmhF˙3…=ľˇT;ë_ä‚b!]oé3˛É‘ %¤î‰3ŕFĆ–Ęhęwî­¶XťˇV߯MY®Ą öĄľđÔ±#,ń¬°,Çlß8Ca$… Z€‘ýgm&\}" y|żW %í$a Ý]­ĐLd‡<”=,Ď–Iڇ %>,Ă ?ŢŠ,Ě˝™%|PZ ű˙4ÂCŇ÷[Ď, P GK,đ×±¦Śľ¤s“9ŻńśiŘ6Hď˘řŁú.§ 9ŞČb!ÜĽľ&ÁěŐN®ý~|4¶đúŔĘĐ ·¬±E5>€|­é‘xÔóă‡wXá™óüÇKĘŁ›N8%_xĐŠAÚha-Ąäě¬éĐ9řn<ěÍ‹ŇTŘG°®?^›˘Â„Ă: xöwÓ,ÁĐSR%"űéł·”Ýâşqć2DqŇš¸»l’átEÝ 9Q?ęđű˙˘ËŐiôČú®đžQô2ňÖĎ4|µ™5… ÄÝdhîx;ôĆúLé!éLÓ-{UqH.ÁZ›’] źćěżň'ĎÉË'oÚqV]ÇXŕÍë>sÂSQ$vsśŮ„Ű3VÇ~ś§űó—ăŢśß ^†¨—@ç]Y7=}e ZĎk 1S®íľa!|ş.ˇóé‹ţ}”ÁľhŹŕć×Ez%GSyďýČIştĺ1ŻÝ J{Y0 N5ľ”Z}żěčĂZ g_QBK'4˘Mż@ !UÁuŤĐŔńż`<{(}6Č%đéńYÜ{q@Řła8‡>űűRA –( ‚,.‡z¦– ¨±0…(A‰7iu5dĎóÚu[c…9®Âî¦Ň˙§żö·´‘y‹ţčv髦Ą`ę)ČLPĘs/ş0Gj çV»+'¬Ů3ćQöbĹpÖHV¨ íSŤů®hę’D"ٍđä¦'|Glr=ʰbĄě=˙ś"]¤á7ŹĽ×¨ŰQĘ~‡ŠÉTđ}±'*ő~=ą(żH®b†¤Â!LĺJµN„JĆŁQčR9Ľż}*Ś\ÔfrĐ»ßŔGÂcD8Ä+8wĄëAŕAíłEÍČĹ#ކýđç˙đRCęŁÉfµ1‚rĂvĽWŰÜ·­Y"ćBm1ˇ‚LĄ9GżŽ[‡} ä ©vă®eť<_”.;¤n3%sŔS.ňŤ›ë!jł^‹•P#´·Ć /Ó9âŤ%Čăa‰"”ó5cQü\ĘĘŐŐĺoN+‡ç‘(»ˇÄ$›ľÉű¨zk»:uVýQ^_‘Rؿة˘˛Łeńâµ3YŕM8…,@ĽľÝ›ÂPŐąQl™Ç=—SBöĽAŢ|n€Qedę—řtüŠŘ;LÁşZŘâ6şcIĚVk¸żzřS FŐ­)ß6Ś3ř˛#eôhč–ŹnUÖ––6« +N]ÁoÉR™S† ˛›ślh5=Ż×sĺĘ/ş?ť_XÝ}Ť‡üĤîxłŃâËÓˇśĆ§Vl-<Éʶ Ż€ßz§ÝpŻĺđxŹ8ŰÝŤúrG`XžcňöU9Ęr^¨Ý °^q»DÎb–^ş«wrîˇÔĂŇŁ E€´ÍĄÄ`Ť„ň»Č«Â,EUŘgĂw$$đ–%Vy\#gbňvIöŽ™§ jŐÚ×˝@Sä ąŰµĐ%š8óĹśÚđ[iŔ@ŹHĂNŁ{d`"·Ż?XfŮ·Ł2É/']ËĘ'÷Od™PŽwPËA0Ĺ‚ý~:ČŢ|Ův;ľS_s Č܉¸ŐÖ `Ü3Ä˙-®©—„2‰Ú2˙´ň™Ah‹›†Ć/˝uČŔĆŹ 0×ÁfŚ˙UŰ(łć_F¤‚8ŰÄě(µDl¶Ľóé¤.“Ž0ťT„3őÝĚ!śsѬ—*:”04"ż UÝQßęí«Ę› ­48»7X&ůkěź`Ó`ŕŐ·&imWŻcV‰š îWiešn67”‘FmzÉ~¤!ŢĂ/śŢVŔ´ĺIËźFľľ“IQú ç‹°EµŁZUkz¦:Ľ1t&)jŕłĐ–‹›ŰŔ°lŤ>Ks`¶)u~Ç]kÍîK`Ѱ)!Ś.9%î;xůýÜë’ĹAkş™'ëŘŢmgAëk„Şk­‚n˙ČćľiZ¶5vĄWÔR!A CěXÄy¨‚đ…±Zďם1“»›ôĎ?„şG´ŠŐ$°PGE‹Â]EĄÄ]Ů´µe0Ö0Uf!ř"T–t¶WÇĘ}–ץ‚v¸af2©2Ö} ‘u˝C5@w ë!xőş$ź÷Ĺ<”FĂ! «•ŇDá}±jóźÁÁV‹­°ýVe&2Ć4뇅ĽîCŢ™ţAŚ˘ťAÜŕŔ°íI_dÔ`l h]‚ŠĄçĆčŞ~wpűÎk&đ1¤‹»;Re5xO7„·Wü;vAЬůÉ"żî˛Ěßx9j}zćé‰ĎlsěO§‘%řîá(}6‡ ě-»„8=Ăá@şĐ€ BiA¶‚S±Â.˘Ě1UÓq±ĄŇľ$Ý÷J­Zţ‰^0VMńü5“O:Ą˘đ!Ź)ş‰5jÔr+ŚÓѢŃűŔݤ;—¬ČGäđľóÖ!t% Ő‹µvWotí:VÍŤ‰ŃFŕkGá‡Üŕ뵂űx@’úeÎëgŞÍK÷ˇnŰţŇ5QAŁ=BÇsŽLlŕM31tHôłT‘&ěŰ\FŐĄ™Ńmň:¨ ę÷v€‹ `I*=Śönn]OA5UÚ”ăóbúm–VÚ˝ÎAśx ×Đdý-Üx%ö[ż är«ůAcZűt;̆ Ń•¶ÇˇVĄ..)Ş\׬ăIŐT*Bă•W„éW#űoŠĽ…hXŻ”KI…6Ňĺé®ö‡Ş„šŘ§ aúp¸MÄŁĄĆcűśÓ24ôľëÁr”«fé{5Năż,ŘËĽŐńűIŃ9Ä-D˙")É–×(:h®’kéÄ~űd‰‡ŔpoŻ˘$ĹÍ"&.ýč›Ŕí1JČ,ę÷ŃøĎB‘–Ŕ9óÔ—‚h^m`¸›§éß;Q7‹˘ÚÖĂ#<Ľp›Fí©üŻŻW…Ć\ý˝‹f8s’´7žfëxfń dDůçř"<§Gi&âm*› J…1[…‰ČŠłm°–ňZ‰VnH$„F%ţ`‘Ý=Ü@V‹ĂI÷’á„{–ÁwbIn "mt÷ŠN¶­kÓźť5ÂWLzX<ŚÜňŰí jč`"ľo%5J4 ú‡a­)Oµ«hż`g鲸ÉlŤ·çŹ`Đ˝•ŁŘ€“‡pű3ŞŇÚŁąŁ ‡u%;hlvSľ•|”Fâ¨ÉlÇ—“Qł üSfw .«>ŮMT{€„„ÜůÇÖ«W§UW®•[‘|íÁĎĺţŇi>Ň* úsýÇ**» tĺ"ţô˝ŮUWon™„69˛lg†ňßE+F;@KşĘ$W .äŽ62•/„ýżýÖD»ŠDDPZ/ËŚ*\f°L‚3ŽóŞńŹĺ§V“_…wôŁ‚Řr˘śZ&ČŞ

    ĚTśm˝ß‰ťą˛Îź‡ČĄ@ŃĘť<ńcqt«V8^iÝ ôś­6‡j SčđmŰiPŁCUΡĽż3dA+1ُf¨[ĆŞŠ!óN}Ŕ•ŇjP]Pçž/ąúš˙Í* ŁŘO˝źĂLŁ;+˝źăëŘ÷*KµiĆuëÚ%‡O>’7—ĽŢVźS/ĹÖě*µ€hźĹ±Ż˝4´Ö˛ŃŤIWq:ôĬčR¦ŕ“uw`îQF4äN걢qţ6YţěIúaĐGŽQSGë±:ŐvbÖG˝çřÖűž‚my"Ń“vPCUÔçkT“TČÉ?ÄVź¤łi‡á‰urÜ+3ÓĄ- ŻK>3¤ü«ű%cäő€÷©ZőI~ ™=€GYýAŞÍ»;[ ŘÚCކţu+/éëĹĆŕť”ü¨÷î‹3[čÚb~=¤hÔ·qÁßůiiÎIä)6 ŻÚćŮÉŐ:5’Ŕ…Ľë“!Ĥh<‹­čź>OäńëgdTěěF“?Ń«iŃÄpNz+śQ‰ßf´ďEéS828\¦íóŽ!QĂžóç$ňLĚ8 ÷ëܸ(ݵ­ž ‰Ó=äŽí {ŢAŘS$€ D’ź»AE˘|đ0Çč5‰ůÂV}ú!W‰é–ž*™€±Vf9ć<ű)r<#MµýĄ=‰¶sůP(Tr)qŢ\ĎɲŔőxÉ.ŕ±vpH©?mĚQŁétPü+é{Üň-•ž5~i·ĽU‚§'±|4(]¦{+¨Ë¬‡ź\FŘ]I±tČč®Ę”AŃQďźmąĐÂđ{N«ťđ«ąoűíăľÍŔó§,Jí¤Ź5-‚߀é?"Iť88Ł8Üe‘…úŃŽÇ»”•ň”Č™â Ďsľ~FO0ÇÄĘŐ憹›>»Ç㢙Đzâéç3ĺ 'ŢÔ1KďzVZTé|şü‹Ňt·}ë|IĎţĎ/÷HĂ$B—¬#(Q@Ť;§şidäP~X }bצ§ŰąLůś6Ö¤¤KÁ›IEĚĽ9Ô°®Çś†Ůđłß_uÎŇÝäĆň§ b,4azşšé–ŔČT÷u#ązs3&Ööt›Śĺ˝â/±ć'źjL› ĐY@~9R‡ňî3.šęëNązU”EhŚŽJX=b©<óëŞ/­ćŁXúö…KŹž˘,jçŇ’?Â/u.^ŻQŹk‰SŕM25I°xÇď_Ý=„‘Húj­ŞÄ;4Z÷żÄů=mzrŲBÎ_Ý»ňPAîˇęL©îv_vf‘ŕϨ§Fńµe)šçH—&üW’ĺV ᦇËI{ł%p*K łe f˝ÔĎĐÜĽ}s±‹´xhümů€A#¬Ýżź$?¶s!*SßÉËOđ¨' Ŕ ă˝äŞ3ÂIĆĆjGËŽhäůęmá´áMŞÔň~M•A„靨O×Ń\i˝jyĂG^“J‡¶o˙żŮĚuÜ“‚`—aT·±ŁŘkwŕG`3 FŠjG^wŰ(?@×ţUoé T)s}ąŠÜ±c—˛Ýú©Ď†/tú n]çVÜ„¨ćËyšĹu“ˇůž!˘¤JOm%…yŤîUbm@ú;~8 o›l@ŮýčP‹‹Aęsbu q(zđŻ<0á3†ô_™@ëP{ô§ŇR} ëĂĘÚSVj¨ä¦’%»ĆŔŁb„˝mŤŘ}L0iÜqĽěXŚ(>Ra1ÖŢ6ŘHŤ§ —·µ$úť3ó˙¨Óe)ĺÖž~g8‚!MÍ/$ÖŞÎ|3›ýO5\˛‰<Ór#äí]g˛ŞąâCÉM›ô™‹¸©‘®Ü27硺ç$äG”¸ ěÎÂĆ·ţ<é.%’bۡ™€+.,Ž—maú©÷xXői·śŇlčr€moiŞđň8·Kť†»ŕ%ŤoęĚĺjr"Żâi›FX,§tڧc÷ëRSRĽÂĂĄ ds0ďfüKaâ_®tţŐđ‰őj€H › GRbýŕ ¬‰¬Ëí¸ đ–żnŇ]$xńŘö¦bÚRxť,Ě;˘ą‚;ĆŹŻr⤋E“GR=BĄí PĂ«˝µVâ8ë˛B+*Á˝ż~-Źâ Dt˛`΀”U§ÜEmóŔĚ6&Ú«.ľĺľ„‡0Ô(5pk@Ă+^K&źaE 'Žč‰*•™ţű¬ł'‡ąaÉRĄ~Ü@Bź VtdÍjUˇ5Ç<Ź—˛±C}»&Śd”}™§ő]t5ôň.)QźnÔ\`4'/–;Ż–?  ĆrŞŕäRÜ;0Ř]đŇ}*$¸;Iý×}+U9ěb“žâáĤŠąü1ÜÖć+GßĘH˘˝vĚŠ!KWĆĎŰ×ő:Ją9 ôU¨ă;+!ç%‡«ŻĄÜ€"†ŮŐV!Ąé{€;Ľ2 uóiiÄ8ĺĹÇÖÇ«ü‚U`ă Ź|ĂÔýůL”aU1FQű˙ Ń[–Üo[qW o±ŔŮô)čB‹%%ĘÁ!ýădzéIś2¦[·€§#/›Äk QqůÜ#§D`ŐŽä“eŕţęj-ÎĚM,Qu@Îyńä©|sRcŮ«TÂ{†^|ʸň˝¬ŃŔÁjzí§şRmTkÖcôq®]ţÝqÓn1^¬$?@‰·ŻŹăi"2Ĺo/łţWĹŕ«ßZw# K´Kş’Á.żlĎ´ŁĹ‰‚Κ‹dEŰpÂúFú€3ě8‹ĹOZ¦ÝáRđůt{EI3ÍѵĄŘ†ˇI}ţ¤¨S‰%|hî€$XăŔa=l2'ŠîoĄ?ÍŻ|sp9ĐmŽÉÜ•KÍŤ™řFť¸Ĺş. ëĄ®ÍĄĆIe—cL„‘—zq’&@V˙°xe—%`% ÝN†âą…Ě„˛f ŻĄ»…đ›J÷äŔÍĹűËËt*xlO &÷¬`g$Ś zďg¬ IŽÍxŔqKköÇ:đr[řmfpsú+mňv3ß9E&úÄQ[Ç–ÍMTŤâ)zÝyP›#Ć"B9­ÖĹ)“;ďëddŽŐÇ䛩AŇK,›Â}Ç~ćrNăŇĐ{PÎy‘çîŔá<ň;ţôča¸‡8ô wż2Ö*áęµmźę–ÎrG» ÁÂś…îët‡úp@p_yźÂŠ1…Z×ÉCßĆ;šp ĂéľÍÉo×ň%LX’y@¬÷ňä| JÎÉ^đ++­™ g0@¨ôZ“îkš193řPµł ÎCń=™%‡M|ţŇžżhfÖĺBşI&†p1˘"N9ýŮy#äöâ‡Đ <»ýcś¶Ě˝^^Úü|ţ“ŮÜCĄ4[nÄÚ§§‹şŕ"±áż”ŘžĽ8´¸ryR”iâ’o—¦˝{!B¦oYżéçК̞z  üâäęZĘhcqÇŐ›Ó|Ł7§ĄŚx^1QŤ‘ŐŞĘ2I”{öL®÷myą†T0‘«~ ţČýÖˇÇP%šaXčĘ$Ţ=$łřÓ_×T–jy,Űqnű† +†a‡ń˝x8AŐbřßm{c–µđâ.‹6Γ×.Ŕű÷ ‡ďž„Ś ŚÁÎŐ¬• ĐçDÇϡLQ"yMd31˝f+"šGĄýź  µÜ|C‚—I:ŽTŘüĄuę8†B¨C¨‹{ěţÚ G,Zč&ů ˘ ŹÉ„/Ć^v.Ułľ‡!d ń€źăyÂßI‚ ˇ?~•ÝîŠ$8J˝!'¨pĺHŘrÖgů3&•ó¸¸ńúK­}ú=TëHýäç…)˛ŚŰVŕ|ŠĚ{ nîą4ŕŘ6ÚůÔZNď]Ť"Yń7™·ţA3sKő-úçŃ—OŮ UÄ•*Oë9´#˛ĆfŔ†ç*¶VÔM©¦@žvsŽmĘŚ5§ÜŠ! ®_ üi¶‘N¨§ŕŽďíé˝ Xn:Đ13Ôä7I÷•¤×m›ÓË#ňÓ Ň.ÄZŢc Ä0VżuľłSe+ꮀV°ŻýĎ%T@±µyÝŢ=ĺďŠCkĆĄU•Ţ,‰9nW¬bŕ®Λ)W¨!=čk Fú~S3(±‰;Z°ĽţM¤KA·i¶p6ţM®ěÍ"›d»€·ąi.ÝýĚĄş„šXlč;|KTfĂ”«T74tm[dŮ /E*;ڦiAnż©ă7ČBM>ĹKPžÎÄő˙°‡ńQ Ôv ż»_d=bŔńľ™>€ŻÉÁ]ł>Ú·š_Dň× ĺ_JŞ«®^ńĎŤ>˝%Ů<gZN˛±ůUGČnąU5`Ł´čX˛Ş\GVíżÍ3 óɆ›ĚĐq‰Ýű1”Ý/ÍŚ–ҤԸŹ%žiť- \Áďb»9ĚŘk¤¬Ž*i-9ź‘߸ňőYRzŮŞpxg>O"éCĎż„µě‡ŤŚĺq“¬&đ5ęmí4uPŰ=ťo˘ż›®5ó´ű@VvŚheć "C¦¨đRÇĺBŽůCDxâ×é>ć ´=ó‹ÇaÜ.\şęĐK4ĐËi|Í=á1 ŔďęÎřNM‹Ü<3FGŔ:âGńÔ™8 Đ85Â3±ZčŢHQO_*fę:ë@° 0é!Kbťf FčQ±™“O^ŞűF`bZÜQYfK|ÝşcK¶í%ËIŹ­Ńcv-.m#[JMY7ĘŮăuî‚!)Ű©Ůăć‘ Ęş;fz&ŁyƆ-Bžł€„ű­/ '€ ŞaÚpmî‹*Ó{Ą·%Ô(Bü?,a˘Tś›k ńY&ĺŰzCK˘ô\ć’‚%~™ÝÔm‘×ďçěĺBíȇÍUz§¤SčĚżĚÎŃąMmä˘ćYŚžę%¶ţ‚|p‚¶–,Ôß^}ŻtµRÉŃeuđ?“ädtË] —€Ţm× ţ{g ±”š$séo9»~ů”Ö°áĐ”‡ó-ŕ‚–)÷L=Z¸ť \.›¦x*`.7(. >fr('‚»’x6 1%HgÜr}HZP%=ľDkłČ%‹+ŕěÎ7e˘j3"’7 ‰ çłŕ^!ćť@ŔŞësTUŹ_cćÝđM÷5|ţżH”ő<ŠčSĎŻÎČ­Éž{we%\ô$TY”ŽF[lŞ •µPŁ$ŰLz=ďµ»?˙¶ôą×fó^ćé/IĽÉ•‰Š/ySąI3ř¨żQ°{ED`ÂE–ЎŐ}˘ťł`Ö{%űŔiÁ§“Z̉ ĎQ¨Ë„Ýt‡Řd¤ťŢŢÄ\žČ_ĽicŇă9x&8C ň»Ú¨$/5¦ĹĂ;G^GDę˝ŃhV˘€/ľŮô!ĐŹâŠćěö2ę&ČśŽ ÜČ„Ň¸Ç PŰ?š é)Ú~§ă6z ^µaMŃUPÍqŻŹf†ŰŚŕĆî>ÔŇŕÄ8űs´D ±Ňä˝RO/Ž–íw>a`ŮýÍ–:ůż…Ý@¸s¶×®ÁKÚĂ|@¨‰íáXíš<ŕ"5'7rҵQŢNRަĂ4g|ĆP0ˇĽU¬ěUM‘×ń( ¶_X›oš’چu¸ř ,ţś‚˘(v“ú„ýÖĐý1’đ^čDŬo°VgŐˇ{©:-ĎYŘzŁ… bźĂ"BU1¸÷ăxÚ=·Ä˙W„ •‡.¬Î*3 ˛†Â›ĎrĐhúľł˝†.;›?ôT1zŔơÎz`sIéMžło)óóÚçdďÁ?Áęp0"L/S÷ă• Ďß !B.“¬Nú"üę L隊ʜŕŚëżAvNôRĎwćţ`ĘŠŞ\÷Ř8×jíSÓ4‹~ ć_—|źŰ¦1šŻŻµé ÖłtâSçÜ[ŘŠKvřţNLçÍÝf— RŞĚߡe握ńX´7\ÚFĹŹ! '"`éYt™ŚŇ©DŞó-Ę.$˙ÜìłYZ%Vží<ýC’:˛EOĎëiř»›ýé‹N·đ&’_•GşôřÎżw­ ^_µ”ĽÉă€SîŰ;…*ĺđHl]˙IŘĄMŁ@â·Ćůe©ĽAoâő/Ť«VÔjP rI&>‘‹S«ę©±ŰF_Ą€OĚiąl,ôž° qÝ_ŚS'W7&Bě)ÎňşSWô|+9˘ęäđçSUJ?JI`Ś(|(®°Ăq>[X¤ű®»ţgUEÍóA*cJ\w4Ç$ ! ÷Fx coiů‘]XގMŚÄڇB$Äm¤Ż‰Öůuë »—UđJ"9jćnM“Gš˝é·b_iq;‚ď„~ÁéÝMi‰1®ŻËß–ĘJÍA6ľĽâŢd7ä †ńQ#÷Á—‰ZŢ iVÜĎc'sAĆ+čBf˱ţ˙θşoşŤ^7LL@Ůváw“'A±Â¸Ńcj_’ĺĚÓö]đşĺn2d×&Ł$‘i`HŤvxĘ?ţwFďReţoŁú«Ż!ÇM¶~gř3–Ô+îóˇŻĎ}ĄTźĺ“Ykşł#Ď}«úm›#ߎŰPJ ăŢä ;3;*ND’D9ý{pÇöĐ{ż«$żjĽ@L’«ś©ą?q$ľUß{{vˇĺ›0Üe’gh ›ľQSz ĺĹ­ۢ1ŠźŚÓ1Ü÷˝¤źţjeĘV{Ô[ďÉoµŢo"_iěN«‚Ö/‡řOđ¨ulIŕż Át>y„®ęż·JÝ“rŇ×g0ŹxÄî7źš©îs_űΞć>T{VßlkńCűĐ~>ŽŇ3çą4Ő‰ě&ęąÂÖg˙ŤŢ†:î[ë(Nşvéˇw§¨Ő˙ŔŰ!Ű˝LVwK±I[jăvâÓŚĺ˘ „>,’4TWXďt獍L–u(Ý©Ä*ކşć¤dĂM ‘íb çšVOYĆ[›P¦dhFz€6ärV;ś¬ĆĹ€má)Yä¨?wňďý®Hpí_—ˇŃÎŔě¤ë(ŶébŔ«má—@VeťŇ~ş7łsцřtÉ÷·:näŐˇB˝›ˇavÓ·:î´ĹüC°ÍD2 ÉöDiJ:$mŕe(‚‡YÜş˙ ;€tÉÍ˝;¤,¸‹ŚÁŮŇ6PZMβaďqĄüv§îČFŐ; ôůÎ\E¶1¬Ý~xÉ;9d+*Űĺfůę/Ëä»` X WgÁH'qNµŘŕČź‡Ń…ĺ5 ÝHţĎů©Ą¶ `Ĺ3(xôĂ.YÇčÎ I¬Ľ·-‰ć9A Sqˇ†Ţ|mFŞX–2} ~2Sč?öšóŽa` ľýţÉH˙BJň7Dí–rŕŔ.¸ĹDŮ]@)啍L޵éZçťlá ¨É˛B’Ü»C˘…cÄ‘Wč’}Ávľ¤BťĐ°%Ż˘_—I×@ÂÔj$.â‹_ą9ČDFcTÂW,Ó˛ŹqđwČJÉ^úÂoÁJ\ĄKMćZ‡ĎIű(_Ź @ś űłJčkîNÚ›wXbVj˘[Ű€Şŕ=¨THµU9¤f6K0ÄŰ ś÷$žđŻ °l°"żGFWplÁÇ}Úý8„µÄđúíŘíBÎü3Ý‹pôóç¬QŁľ&ÎŰ—đ#bc—ÝĎU äcČź(7ÁU—‚^řL¸FŐ YĘB”bëčŐű¶óş,ąůă›IťKś§ľ}UŘpşˇMdöHBeA™ŚMírNĆYőŢOraĚZĽ¦ż·{*z—«I:Z”AĐŽÓG^ypň}%¸u:±ôŰÇkB±Hš°˛(čc\LŽŞé<’;BŮş’ae 6„\u0z\ܸXź!Ů ÎrZ'ł˛îq™1÷Ň‹1v®ä}öEťÎŤśŠ–€Ó@ůrro ŹKąů,÷O—…t=«ľ^Ű“ÖĘ ĺćp˛ I'óşüf¦XQFŔč ´2w¸éďĂƶKí#Îô¤]…JlĆVŤˇV`PKůTşŹp„Sݢ¦[éÇP#îřš‚fYP{N‰Á3u]ĆbĺžíÖp&ާ”ş4Ě•T‹˛Vx­·;@„ŕ¸jţß&kź L4xW˙mʱ¨Áu{ ŁżDăĘ”ä"Ć9†ŹDqÁc şí(O×ŐePŐë.—CIZf°lŹZÓ+ç3ęŇÍĽľe„ ż nlepp'BOEŰ!O6ÇľDŤD7Oú–Rl„óëR]á7Ä૸ĄĎăKÁ)Ž:°Ä˘?ŚtöTů?7Îů鉳M«÷­ÓH„`[F¸ mÎä†.¶I'5%Čž2çâŔ7 ŁAsááQ¬Ń–ú{/R˘=v·h• Ż6.)»ć3úoV©Ąá}Q ŢHëq·Ţ řĹţEë÷z®-™y6oÎrP}R)µÍÓ®č’ÂŁü•©Űě„ß#ôĂ'ľŔµ–ńZ˝wĎŔřJ˘% ńž{5öą ”6e0CNÜl€Ď-‘;ŕٲµö)§JÚ'hŇv—ąńŮ6ßQźJĆ'ďSŻĘµeĽ¬'RG >UĺŽŃ~wńżC8o´íű“„űV+‹WT—âÇ:A )Ť=˙xŁ|á^]MµŮ:ŕŽÔ+řs§ąS)5°ĆO“Îů!‹ş3%]–łaęśîĐôsÁÇńď…M{­´Ç‹l› §IŮě»ŇJWňn­vZ@€Í•o“YŁÍÜ$˘“RkeßÜjygp­H—Śĺ]źź…űr:“jq7Ű ŰŰ(€|Cá&é9䱦Z˘ŽĆÄťK|í"W>őytReâDZŐŁ˘äm¦…WÜ•ofű›jžFÍCM:=ÚóSXŻĆ×U©¦áŻĺ¶‡áMŠ@Čž°ÓóçŻ:Á9¨ýďŤ1ń ‹ [Řľüó Í4ř.Ż©µňm|~/é¦ç*/ﹲf~´8Ie)}gčP•.Ă®‘4ădń@~®ďŇfw/)“ÍY5ŤăŻ_¬yiő€¸Ţ_*才c ę° Uŕ9ggW‹†¤A‰ŹÝŞ+OŇ®}±·’"6ŤÇ˦ţ2)”ëÚCŚ…R29Oč˛ŕa„€ţŕšŘËŕ8Fż@ŔŕńŐH° Ägř)XńóžľÄčöeäŇ»9·“ŁąÔwA†>Ú¸n.9 Â;ňúZ«'ż?˛’úÜKbNŮH©”ăYâĄkÍÂŮPąŇą´l°:ßʶzŰ`Ěuž§4€AíeËÁ*=VçoAa×ŔĺɦZ;5đ:¬Ĺtň Ć쿸™ĂażmŁŃJ"±UĆbé–K=˙©éKvť»ţćś–Ü´HnęőŢÍö」6 ŰSü~‹a WćíAŚ'q ‘ŇpőDůu§şS!üPÝje2,YN &Ayľ$¬ruµ? 81mBÔ”)Ę_—ðo¦Ł®á=,„®ˇţÄČTő˘5JtŽNÝ”¶Č.ˇÁIz»8˛aĂ$Cm„ ŕ{ŚÇ+¨%ü%Ł0vţ[iů) ŐĆrâĎŔÚh7T5Ůé„2¬P!™ľŐ®Y3‹úču7SUY2¦e|ĽĘ!' ”]4±méÁIňůcŤ˛źŐŰ'ˇ­g¸u”qšę¶Xě®/µű˘wćĄ{šÁäűK¸b ĚňŢ ™ž:›Ś Ň,üˇâ’—”;Jű˙iMçO9ägyÁPAýsć/3Ŕ;b${aţ̤AA§´ ›ŰH_ &™śĽhHđň“—ŕSúůí‚Jć§«¨đk(Ňçs/C€˛¦eBümŢý|˛š©9Ée ­/ŰiÍW¤őJÔ¸©!ÄtH˙WéeŚ'<7őÍešÝ-cbYΔŤ}1—Íń4oÁÖµÓ÷e˙iÄ7Ť^:‹ŞĄgó™x$WC/yźí…ňP|Đ>Ĺť ”ĆÁÖopît­IÍÉé”´ €ňôßłňäÍSŁTÄ\5)‹B-!D”ő€}ŞzÄÉ ĺ:úŰá}ĹBŮ'ôÓƉľśë|ĆÍŕČŁ.Ą˛B.ŕT?â^W?h¸zŰ• …ÂZ8mc„ÝW‡Ţuj¸jQäM˝íQÜ‹›]4˙(11Ý‚eHň¶n¦GđŞš}“őŰYW‡?ż3ĐůŠ«îmĺf"ânKŚł÷çĹđÓ38• Đq`Pă 5<%©ĎµÚLÂ6Ę }ťůWđJiQSŞ]J'sˇÄ%#ÚíR6yŃňżé?‘«´ń“Śŕížj°8á/¦ýpôÔé¬ř c€$ah  Ě®«žB(§@úȾ۫|#ńöýÖz’e..ŕŮ’Ű—wbEĐů„jÇĚnkŐ– /·öc,}QYßnµLŤÁ$LożE|W¬IÖܰ®‰őOń%x¤ŕă_×609˛bŚ©źŁ+˙ĂĎ÷·ZîJCř˝Śüó{ ôT—ű“Ť?ĺ¶,ěť°¨śeŃ{¨ü-XpEť»m’Ô…!ÚT©´ěË‚BŮŘ÷ËÓ2˝Ęłp¦#ě7ě :%˘Ş!$ďţlč§ŻOˇÄ™×ňOS·GŇ!m~zň¸:·7%H5ÜqŘÁŘÚ¨Č{Ťk!)¨]GŚxQ™*NŠŞčáôŞ@Űź´,ž ćżžAµáä‘^_đVź®P1?:m3‰…+¦ĘřbKꝬŻR׌™Ďĺx6í¨c?şŁ_T?NÔu"SF»L@ kŔŁ•ń0@çšąsÎńĽFéuŰ®SbA@ČşćÓq6ä|±”ŤPŢ űl¨ë9Α ”Ďě­^6'Ť‡m\„k$]^o_ă$Ź*÷řu˛”ŕš˙ŰđÎĹ”TIĘ5ŘX*! L݇üĄ!ih‘“°îDŤ']żĄ®Ě 4 čk§M<÷۬)wޱ8ŞŚŹŚZőě—łÓ1k˙ÉhďLLe Ş3Ő•1Ĺť~**”„ßa ä!r˝‹«KD43íúx}2QśN]=é˙a^ł/h™¸ťnäy¦@ľż@ËŇ7ČQşa0uhöôô$î ‹_ĘUś(µ ­ą÷…™*Ř~° | rO<çc{ĺZ!ťů\Ő°ďŐ¨öiŇLóżPr)O˝·ĺŤÉYçĐ:`?nhEŰPß“% #éÂSřć§ţ©;ű˝—&h綤乸gx9qŰ»ćĆ÷–­fo¬agˇV{Żň˛ĺÖŻJ?ţp?§ ć(NÉËÔ±@!ą!-m™ńĐ0iÍů, oçÇ­3µŃr­hÍš°Zî;¦˝.ŮĐL–ËŞiő 2ŢŽĆ 5˘3‡i!Ď#P•Ć47Ů ?Tçéb^+Ľ´ bŰŤŽň&FVßi˙7" ]uM>š©g@fë •UslĹFgŽ<0Ö0ÜACp3( •DŢ\¸jô%pzäÍ M/*;GP E…d)nZ%Í€‘a6üJ3/~«ČĆu»±u"†źá¦áÜĹ>"i@ţÇśżĐÁ:xupčńßY oď>Ä­7/ÜŮ4ř:ŔpÍ,őew×[bt9/¶ry}«ĹĚνéÖ"âĐ´¸ůńĄŐ92‘‚†ż8“3„HqĐ•śM9ŐcHo©ÄAśą]mîíă;ÓJmą‡ż€PáĎÖ˙Sć|W2s,iľÍĚefËtěŽÖ÷hľ¦UUŘMłőĹ3O+ ů@{# zˇ~ýt2r)¤ąD7[ˇţ“)ÄÉÎ i—á‹ŢcTĺň ËŰCA©€Ęą^ }r"¤!on ŞÍď‚d?ěK†Mş©qfTĺ>Ü™+xŞć™$w Yů:řßQí`sŐżµ•¬K|¸©©ö]Vęä°š;Q.ÖÖ ÂĽŃřŹ÷†üŠ€‰’đÚ?ŮĘäŞvp8˘S5#NúŁä>7­"’ĄĘfVÜĆ©ţö‹× &!y żľ‰»jŽłdLMĹâĎ{±Â˛}wöąNXă+e´/7GĘĹr[ŚÍF¸hZ^Xľůßôe†»}— /ŮĄ8,…ŔŮ Šľâ/ĘDţ_8EíGÜoîwżÔ7ÁqďH2´ýzHˇ/î#…Ą(¶ »hmšŕĽZFćRvCŚ[‰ďçÖäÔ-ŕöËDć­ČŞćި‡m®®…(\¶ť»çOĚŢ+çĆÖoćŘŤ ±…zelŮi>žałčg9‰ľ‚ĹMő®!rşýŐřRťţ“ËOAë—ăÄŞ:áŐŠĄ'˛Ź©Ě¸ÚS%Dś[0´/2˝/C%ż©Ő|k™aڧsGyĄüX PăXDJGk”ç1SÂŹ_J,A8 Č ¬~%(âB…Óx[bżĐŃ=xE†˝vF2U-ëâ{¬t6cc“Ż”#*ę§ĚĄQPF{Řąçą `4ú~ć¤ýwŚÔC '÷Ą_űťlř˙—/UXlĽś’ ľ˝YĎd¸ÚŞ9I8Ëčp§py3HÔ-‡wвö &~óŁőĄ+kŮź˝+E¶ËŔ^xKý^Č˝ď˛=§ĎWęĐ÷Ţ‹®ěĚpAH©¬(dŮHډË>ß<:ćý~>–ŠÝ唿ŰߍųUÎ×Ü~)î=jf=QóÇĘ.«ŁRŽ0ătÉYŻ2]pý9kďgl n'=ôű^lËp_Ä6÷-ż@ň5K®t!™>áîMvÉĹ®BçAČ› ˝ř˙«¸ ü´NăË’ü”1‘ 'r!eäë'•'¬YÂű;új˘q«ÇеCĄc_ô§gÚE=ó+ ­žP%ň˿DZlX+nnĎťĄ€äęýľo¤Ď]’Aćűî5AˇĘîu 6,ÔNgŮ7Ţtđě%Ç]\| şăřŽccCöžşŽŐ_iüÍľ˘ä 9›]OV8®Đé®EVâ~kËt5.i.· úřur\)|‘NB0ŮĐai€P铯FN=¸ą=˙µőMO{ś/uhŞ4°:rBÎŘ„MyF”Ě•˛ű’Ă‚y‹^ĄnâČí!˘|52ůţř«{v6`˛WđŽşí›@śÍÁt)Jl+ßţ&˝bm4 +x–‘ţě™xaAxč¸&i‚/ٲ<,ëRŐJö˛SŐĆaś’vV‚뽀X'€ądOeřš×2XIdJ(}ńş:eç‹ëę˘Ń€á¨™…Uř:°)ˇů«¤ÝÄ»ľ†Ř\ţ±î·‚Üt„zľďÉŠŕ [•źĽOhĄUW¨˘2méĄăďÖ%%:Ě« UîŰ%vW·eąş+ÓűŻ0şK·Yé…c)j ýaľít…°eÝČt Ä@–šÖ />ŰÄŠ‰#Pŕ/PĐ,管f?,°Iĺd+¤Ş3GĽV[J‰±ż‡UgC“ŠH|‡ÉLka’UAc …•ĄdEx/Ă%ž_˝ÍÄV‹Gľ_żŮ«xŕU|ÁšüđŠ©‡l'Sčéű¦ĺiłĆN/n« ŚWa Xeý+Ć1$Ťş˙ěÔęYďDlfťŚ”»…ÔúŘ<>c{Cڇ´ßž{L©+i˙č/ ^¬úDÔ ˇAOY}fJ çUo?őA°&Yt[[Ń>@ŰeůĬӑyCé‹~^fň|’üę%řŐŞH€nPŤG‹íđ\B¬ůżCZ$`˙ż8ďEŕ¦6ß”a,ɉIJř]ĹUD»§.–†čý˙l”<ŕô¶ţŐ‡Ö ®’|fłĂ§ Śł2æN+üěqč䯜Ťă’•/jC‡/k긩ţÇ(5ÓCD#HwµČP °˛REGß~qw•f ;w+Ňl®kZěLÝH0‰.#vČá“KŢ}¦î1?cÜó÷ŇťÝZ_1šlÚáĺ8Ő3Ś ąőݨa*0˝˙2&I§]$<´cîšGˇ´ő¨Šbá°Ăĺ“FçTŽ7 ů¸ßćŮÎâ&ˇm%«vÔźuËöŁÜř“4,o9ą/˛śÍ”ă%ěWňzťÔŠĺPíe‘×s‡»ťH»1ü]USÎĽ•ĆŕyaŐvl{CJÓ†ĐNŽmRe¤äoÁ„B¬âĹy3ď˙ůĂ?M?ź®ĆjŃ~ßřĎ°Ň’Ş»ź6çvҰýҨ;đ26ŮĂę|Ĺ.ĉěmS§ą]Ń\ޢ gzôć’iŽžac źHaDĆŽăš É ¬˙ă XŁÇń( ÔDÄĚŇ=rwę&Ďä¬O¨{pÖő<íö§ĺłf,bfG6g™—xiYµv!yž§wښѓ÷‚]äT’ě%mŽ’˝’ĎÄŻĆČ.Ü}őSD}Ö…ŚÄ·AÝâQnŤŰP=n_¬'Š^®ßč—˙=B<ž#jâťéá#὏ɒĺ!±@‘8‰ęč±L{®"–Ă˙3¸1ś>ž.Oaˇů{ 'đ¬`µ~Ăą ˛ß`RÜ 2'pý‹ţFÂA”î%úětzw­Äŕĺř†Éł›Ä"‹‚Ůcäo}¶Úcp9ĘľË'G,ŔzXhşĆ?ćHNü&˘ćAÉĆpô,µşř›"g˙ňŘ!Qm]î|ŕ?…vŚąÉďQ2F¦× îđ%·ţST|YŔ®1ć†GŇŞt>+r˙ŢóöYŇ÷ŮEě&°–?ł&;(Ů[jŚZ)őŤ* Żčű~C«Ä&ăÖúˇ&B‡/è‘)O\µĹnǛIJ¤*d›~*ÓdłŕČóŠşVěG*í±CX[To:XFç˝ďKÚ‡S»ŮMrÄőŠ5íz´ŃP’iĹÎŮkm­±'‡„ĄžÖ¨ÜUUG[Ť-Ąq4?±oÍÄjŇ:Pú2#ž?Ň—€ŠkKi4˙-«-ă (I–§$TÖ»„PŠ~»@ß,Ö,Péňf jĘíË7zcď±pď'xng­Mşŕˇľ› ËĆWwfµ"u(#NŰB^ł#%¨iđ÷îäęľéĺ“DńEN° ϲQ;YŇ”Č$ŞÂdŰřHýjÜ-ׂľWGÎ7™ÁΉĂäŘ_1 WaßA×Ýä9‰Üŕ7ĎŇíëešÂ;çX2ÜŹ‡RĘ€fĹ5Éą§j©-˛-Í‘f›ŘÜ Hf}4÷o±×ę|=- wĹVCR®ÔΖ8b„Ŕ©ˇ^ĘfőôÎ711`‘ÁHgłřkŃĎU[1”¤%­I•±É%bŹEhŕtě<á#/ÍőŁ­C˙&{”˝GŃźÍŘţ8 ľĎ}M‘ŞJĐGc WÂTmŽA™ŠÝÓ8ąĂÉnŁB¤âô˘Ű¶"xę,‹őŻ7ÜŠNŽaňHh CfČLŚ?ýä·ËúuÜ^˙žé/g»©>äŔ+¨ýę…ű";Šh‹"ß˙čĆ,Ęą"ˇ+\e7Ϩ%ĂÔ›§xosŘ*žÉŽ Ě×MĂN·züÇQɉľĘ U-rÎ đ˛Y]ęćF&ďi Ôg.î®<ܬ<ůŤ˙˙źkŘÓ—i· Ăßď°Á]ď@{ßM‹cUáÁ~…öÓ™ fQˇÚQÄđĽŘR ÍócD¨ %.Ţ-ÜĹKťáŇĐŠĂšn©¬ŇĐ®U…˙9třchm‡©q·Áłg‰:.ě`ó,Ź–ŕ,<žĄfW˛”Č‹xö9&Ë»›Re¤gYđ•Ŕ|…ţĄĚwzߡIĚ úóňű–ťě¶ß"ĄĐ.-ś¶»1—ŮňwËĹĘ—ŘďŐu4›öÍö!mcT%@ţ2ýďLLNČU;ţšĚĄ¶Ů”j™ýîÍw čżf]5)*ΔHE6GxdlĘ'ŢČŔž)a5]¬iłŚPĚ­±ŘÔ/ŕˇŃÝ@1ăí’°żő¬—Íö-Y¸w1ˇë{=Şuăo&ĉgt„ý|± ±">ޮ㬏ů'cŇÍ.6†1}߉í6'`tÚÓŻ”•/vE1UŘŰ6żŁđëýÔcç[”ěá7ň$Đ‹±Ý ‚2ÎçÂ8{ *F×Ć §ĽYˇĽř`c4Řś™‘WŘ[\\ÎiuNkÇ×Őx×­±|eż‚y´< ăÍ=6ź2“ ¶®Űo]~©ć·xśâf?|›#$°@\î!B”¸YLuâ`Ĺ[4€»zwŞo¬á ÔYwĐCü L4žü´ÇŔzݞ ľnń:ßÂvkqäéĹżLV,¬ĚxpžtŤAA´I#™6™ĽĄÉóâh˙­ú­/MJo5é°X_›fX-Ó±eĺ¨ř~č˝¶[ĺ{Ç',¤ŤOVѬěÓ',Zăî˛Ţ™^ŇxŠť+ ĹDć§:ĆQüSŰĂđxTpá˘-Äi_ŽĽ”}Ň­¦?}Ţ8IOÄ[°d`ËřľUÉÜ ;Tµduő l}ŞçŻĹçVC»Ö 2ěś!š•©Dhćf‹SçLĚÂ~k4)‹ŢP0]!u˝ĐŤ±Őć.@BçAyĘ´łŤŠ$Şy$Öx÷Ąfe.IËG†ÉB…ř Nj}wڰ˛¶Puf&JŹÎoۡxaĎl&ó$f°ň«ÔB>Ă ś›tâ2MM—]LÚŕ†";˙Jx!ÍĂﶡx)c—ý‡3ńŐ8u«N1&mćŃžňÇ7á=÷ß/¦Ěmy‹‚hţS<ę‡W“0NŠ—” ĚÄŠ7ÜóŘiz›v‰*¶_’şŠŔÚZzmŐ"¶ŔşcKĚT/é` ‹íÔ&śşˇ~OnDçü'+7®8±zĐFQĚ©Ţtj[é8ť+CZő$ĎD?¦;!‡vEŰebXÝ©·Źăˇ=y†=[Đ!‹Ńפ†E%.—^U58‡8BüT…EZV'@ăRb*óĐV˝ŕ(ŤůMë§»(ö˘aulŇů&[G4躸ÚĘk«™‡çNęBsué˘ ß!üM:ϱ ]uó ĚĆŽ.XçC×SˇžsČ€„•FôAżęçI|W&hĆVz\ĆżŃđNo`9–˛SË^• ‡j›:Ľgšo3 üĂňw9»ďÎ#(ł>SM€ü2áA|`<ĹÚX‡ĹDD“O—ĹÍý+”D,=˙ßsĐ!Z¦ ™Á^łŘáE¬M(DB$©vĐŁöČۧɖpA~-ĚšYcŁí;T~ábç+:şĹŠ{k;u<™ÓÓľž†ů93±8sŇQTl±i4.‰X u—~~iĺKpę`4hˇÔz %Şz‹!s›Ü×Ŕq®S\E4ÎňęPŃLvF•Źť…,f„‹@ČŤ’RxęÓµB´ŰŮ×JĄŠk›L·2@»ĄŞSw =0xç€č3żĄ¦Ç9´Ź>¬ă%/Ř耻¨ňŕy›=§żŠj “°Ę‡ť­ifŢíI6g˝íkŹ]ŃžŤO ˛3 Ăw9ĽYÔ“8,ü,ë˛ĂÄšÖűÍ…÷‚®ŽU)qąÎfpą8+Äą Cá]†µSŹÇU]˝|’đţ«ľä)§™eËÖ|¤ęÚíib[  ĺýţěÇÂg:¦ătU6®vň}ĂW&ŢĽçúW—‘ŘŘ ô–W¤¤é†LZ{ëíí‹N[şz!+׸żÎÉŘŚtbęfäyŤňꀕ ˙wŇ…+es5vNî·zç¸hË~$“áßÖ,ę %P°\FoÝ*ŁŻOaA$śYד5Ńĺvy—ŠmĄ ái§ CžĽ´˘Ő[“úcLÂŚş„M$ž4˛ îqąlŁŻËcg™e¬ •cd=s¬ŕŘË]ă ¤ý4zŘ®ůYD­g‘9Fć Í0$Cż¸‚Âu˝NęĂ33«š–{tÓ.ÜÄ‘1É%ĄU×’ĘĘą)ˇŇBfbzŁ3Ö=âđŔOSŻjd˝d“MNhB4ű?‚3n%żO×óáżńĚ#= „ĺ• -źD±Ét-Ö¤‘@TË_Çws>‚?ËNÄYÂz_«ľő?żŞ†¶žXĎ_ˇ q§!h9^z½˛W!O{ľ2óŽ-„QÂdQ>3fn X.6B–DŞ®˝¶H8îžÁŚšđˇŮ”č2Ô(řÉś“ŇyÖAÓEű# 8>× f— ÚśÓŽˇboÚ4ĘîGěéßţ¦™ťĆóDş~D#·r±.PިřRoě7XhnxsČŽČeţŘŃ˙Đčo{˘7Rę™Ę™A‹/Ď*ÁEćđ5+€šűL®ĹDebHľ˛˝ă©Ä–O'1Âůć}jTť Ţ‘Ř}5aΓ«ŃśMëhŹ`ß»\•`Eë*»…=ťj‰"–„ÜgŚGçT*YŞ9¶ŰsěhF‡#[ -ë=F¸¸żjŤ°ÎŻ’ĺŐrôťĆ=íd{rXéćŐ˛‚/Îëe•‘ó’Í:UŤé‚¦Đ8(ŠfÜĚRë,xĆĹŐ='Gô~Ü’Ub‚Q˝ÔŽŁbw?ó!˘Űń“˙Ę–Ď6ÓXa’‹˝|Ľî—IĘ••Ä|‚»$gcŢşnÄöw>iHă ÖPĚÜ­yłpÎ8Bółz©oRquĽŽ%¤(!ş8iÔá÷ă Ds…ż I EŻśYiß÷ ^X¤JĄöfíc棓ýVľ?ÖĽňrsB¶*Ą«’ťc%ŽÚPže•g'†ßŻŇţTAcKĄ#ţĚ=ŐÄ6šÖNË#ąŘ"QFS×aBŘX@®{šDôˇÓĎÉklsrí0@Ý/µÄ_´@óĚ:×Ö0$Y íCâXKŇ]Ś&'™!^mľd9~%N€Ľ9G đőtćSuW5ŠŰ·¤Ŕ4ĺ0ndł& őUJĹbŔň(ˇ—)bŔ´RÎŰ{Nž¤VŞĺŻĚ"•}±Ę"a„v©šAÔ‰6oCMa(˘ßő;'O8ąˇlyş]?Řgöqˇ9ŻţŠ ´RiĄŁŠXMM©ŹŁôwD2Z`˘ N“hËŘ.X[˛ÎűiśFíf*©Ă };ęť5/››|ź]űśŁů@ç“ďZŤ úT†—šnv´îńb*…ŮMwęŕ-ň“o21Ěů#Á®€V ´6¸´w¬pÎ[äH!‘©ĘŹôhfĎŃ !Ű!/릑r†±»‚ř+ ޵W«: <…GĽő‹˘-Ρsśá3"ʏ{c¤ťÉ? \Ř)´˛5·ŔXĄ¦„ůÔţôD" Úyµí°y$áďd˝4X.ßĂ`4‘ś˝ ¬˛!;“o:3{Z˘˙,r~şÂđ@Äś™ŠŁŕ51ű+ńQZzp7ĹE/;Cb×GBŇĐuŇ5Ş Âtë;ů“/˘$ݱgŢđ˙ë‰ů@.áú¶Î”6˙¦W˙©±™s4JŮĺ¦wJ+ıîˇlŕ8ůěĂŘBqˇ…ôę’AIw­u,&m¨Î«Jňs4· VŢ8´‚áď€T>ŔĄďŚńcËÍëĂiIô7ç=Ý~žu¬něđ+#miŕ/ŘlŰĐć”Ý»"ąă—díbx.Ë”Ču·oxw:ôî’÷±ÔżŽ÷cË%ˇ× Ü‘lŃt/·Ěč1$Şf”đ 8T¦P5˘/ň»ţ+a&¨]ˇ˘|čIĺÁűĺ«îą4=ŞŇ§Ŕ˝ĺüîaš¨ň9%KYňZ¦®Ë¸ĹA3#|Ö>Y® 5äĎE…Ćý0ŠévŹńé‡ýĺWń Fˇm‡"7hDAĹč ™^?¶ĆšqÝaXŇ?Ş.9ý#fÁMĐ~ĐŤşŕ¦ŠîßE±Cí§hč°Řł.úöHűuđż’ôaěJˉ5fo˝*¶˙'äÜH/,kôËáÂÓVĐJ4|@m"ť]i`ríKhy\´ô*‚Iµś˘ő/Űv<Â{QŽ]-ńP<.îś*^Úg w'Öwi¸»R^[ϱÍáCĎ?[ş\±á­Š\÷g%¸m*c ôČŞ·Yq’TňĘć)g‡c%čA"ĎĐ·Đ@m-D \ „G:ćŔşŞ$Ť)‚a~pÁţŠ©€#ŇĽHK “B‰ŤqF~Ř‘ýÎ #,÷·zśÍ‰]×µrSsůÇ2§föŔŁ˙9śzf ÷˝V’‹yślé‚{ĺLN°ę1¤äş‡ öδIÍ×·ÜhZÎiS‘WE°čŕpJÜĺ›ňŔÇűĎ!‡† čĄĎaÜQ¬Ą©ť÷(ăńýѰfčĽa_Đ›PDz«…»Ť›Ú.-ýĄJ†‡Ž›.š•@oŠfAw7‡&Ń=W`Ébˇ#ŽMťĎŔNH*?ôľö×]ĂĚ ¨xń2 Z˙;ÄEâG+ JžµóI¤MźłL¨ż¬˘ę8‹rËĹŠÁCdsÎzŔąJ:)śÖäsxřĽ‚ĚłUÚ›W±ČtmáJfWmxę~|Tµ×N漮Ä6bż­HPż®*—ýdhRą»ćŕ; T¬Źdĺ+˘Q=‚jz¨ 'T«ĘKÖŞâ”gŚjŠýŰPNΡcW±ćÖ˘-ę ö@ Ąľ€CďjoÖ‰kŠy¸<¦±wq¨'iÂť™]ďHţ1cF—>tÓgwú´÷őHű ŕ]ńˇťęxőë~íÔřk YŠŕ™÷©Ě^}OyjO’ëiwowqŇEÍ źßčaP–©Âůť^^ů  î9Ű 0e&%Ä‚’'-:˘­4‡Q– ‰  Ň\榸mÚD_±g~{tD±=±´Óa*ńŤß«ôz8Ź=cjróĎĂB*Űm&đBĐŹŘšÍJ‡ËÎQ' Â8ďÜ+č—«IĎĄBn§b‚íjľĹř0E G,}©}rÜÄS㤅|ćšX^0‘+nq|O¨đ‹ËL™ţÁ‡…ťÇ2€>S=]ÔŇë¨Ů¬Ő˛ů{7žŽä[ á“]E »â =ATŤ#ď¤öYłúKm•ťj$DEB·‹SŇ”.˘~}EXĹÉ|ő§(ŘÓ&ŘlďĺřřŃW)_ş“ÜBŠ)řŇaO÷í R±tZâî2ô[ç‡ţB®„l„–Ĺl xÇ&”˛E~Cë‚0í»iޤ1Cµc›¤í „‚¸§ŻŠáe^őőȱü›čÍiâ/2 ,±§ĎEXR2Ľ[˙ü¤=¤ Ť‚‡źd®ĎO|'ܶQŇáË;N¬;¸T2ß—=—©Žq[»4ŚŤ|G´+WQ 6 ˙šC‚°ŢÁa‹‚Š1ëaY‹ZíF°%xJHöč=§ďýźĺ ˘Ű›Ř Ćé´xí®ťÖ,şŇčă#Ч|™ă®·+]#(ÔÖ“âyE$šşZ%±hř˝XEí~Tíŕ[ÝäÁd[›p…_Ŕ—~5@;Zöu·o:HM 2ýAý âCńĎú3r0{2ŢÚö:Ć85…ľg‰ă ,E˛XN?ä4mÇ`OÇ,-?´ŕšÇÚ¨ŘĚvľu™•‹sć,Ű•ĹţŤaÄţ‚Ró¬ďò¦g8µ"±,‰ąÄÂ%ň$q¦bHéüeŤż˙ďMzlç b/‰®°‚®‰w*H CEü ňL¦[P”x“˙+l§ŰňBs¬J°Ĺµe6ěZb˘=;’Éz"Ŕ ™ĐRË7ЇĚÖęŁÝňŘ0jfôNm)·†•ąĺw: )™óOŞ4!ZŚ´wöńĐ{WĂĐ‘ xVüDµ©ÖŁX!U9TeKéÝެfbXĂ*Ž^źÜhˇ ©ÍqĆ˝i'Ţť÷ŁĹÔîke‚ŕ@ĺNEá8"“ *äův`ŹĹAqJ”Q‚\ľąŻ?ťhXôdŔ+÷ą"ťeÉ>u¤nŽ8 ĽRÖ…űÍôb_çń?Ű ńŐ0É×U•w`ĆEnd!ٰ…îŹńŞňŽÁ´Gćż&?ÎĄO—ś +żĂ‘Śj Ó2KfKäˇ['GĘ`ęěv(˝źU źĆ•aL0¬t=×’‘’⬹¸\crÚŃC ĽľrB¨Ć˘Ňvú˙Úri¬Źüx÷Ź Ĺ›HV´y›0:Jµé ˛¶ăŻÍâCý V'ŰŤGĺĽ\!X9‰o+‡eCˤézK;›ŰW°G„N”NÄ®Pú]Ű*î X)[Ę‚=^?@f“Ö‘ń7~¶ Ű5™÷ŘÎ>Tß•,B…{`çI|óµyY&Ш„¦Âm¶Ó:ś°éÎ&NqĹł¸u{«łŹáQgËp,Âă c pW¶ű2´Z?ŐúgpçpÝŐˇ\:n{@No&M…˘Eřt–I‰âó‹iŐ™ Ĺ]O[^]˙Tę­‹k‡ĎŐQaT?Đ+/’ć(&‰±?,ú_‚—'Iť×]‚µĄ[ŞćĹú­§Č|­Ă検gn¶Ă…]=U5ý÷zůĶDý‚§şV˙»J…,ĺGmXÖĄł$ Ô t8Óě÷hŠî>Üóť€ÔŻű¸—ÓĘöýÂü…Zlć+n‰§üڵYç:púĂJŚoú¬9ë(9ÓŮ’ŰFěegëujż…ú÷h›`ž")X±“{Ý{„Ôą~(ń'ü糆”ÝUŇG»Cqv#ľŘ^sڵžŢű –ĺ9ŐůĆn©Ř±HTQŢYܡüQÔŔ”oł¤l¸Ć70k©ř–Ü×ŮoŤ}˛®8†-KőďŹ.2ŤĄÉg\Π§( I?säűnąţ >]CŔy*$d–“W%ťÂ6 ÷üWŻĎhk˙źě‰Š]Jčµd/2ńŽ–5ŤZË:„ĺÉ‚H–KăsE0Î;ŔfXčWŔ€ǶÎůöŕçĚţ8śĘ.]vͬ‰něň¬ÖąÄmLaľěŐ±’HĆă_$D)ĹçŔŻ7ŠXXކĂwîuÓ0XľĂó˙ż—"źÉuISó@ş<Ţ#Žr,ĺ¦ĂŹ&fkz—˝H48V»‰©ůNŠ<ě<|iMt,éÖzŮÚně ]Dúaů gŰMě—ĺ ʄ֙ËúŹĚoTŞ?i­ĂŔ)ě€äű”v #!ĚŚG¶=„ióŔd6ŃEE¸ÖUg/“^ĆUhĘĚô˝#cŰ®\• ęŻÖčŮFď'"¸j÷ngG‹ł‚U‚®ř[;RbI“á‡ańj¶÷nŕb€÷RÁ«cŰŹűV/€jĚ0‘č0BŚ:ÄW=°ęžŢ6¸-Ë#J/ńŽńŰbóOĄ9ZU•ń1c„÷1ͬƄžM41’˙˘ö&”ŘBçŐ‚}ĺžŮÍütăŻůs d«Íť/túţ{ŮúŰÚßMóíŢćVűçú5ˇ® “ MćMFĆiAŹĺwńŃíP] &BýÍŐÓ:ÜńQűÍŰvoé@dri‚šľ‰U·pX “m´Źb_ž,q6 qî*dúňŢŰŐJN¤ÇéCPžtέöł^c`[pާ›†}W*&hđÓŔѡ čxĂ‚ČÉÉĚ .Łö;©Ă,ŻQ&_») NQ­·î˛LŘ*5´\Ĺ@i2BvąZIR€1 ´¤e–4Í(śuxG‘-›Šj™%ůɉâô1ž»Ěýš+ •t˝Ş3śşţŠĆ‡QŰúв¸It^_ŔíĘ'˛T׎_MS’¦”¶‚âL†Qa¶Ż0HďY‚[Wđ÷ E!1ôř›ď(ŁŻ!óíz) ŽËB’<čđłôHnÂNß¶™ě°ÎŽY9–!ushÄIĹŘ?´ŃŘĆ©Đä!ą4‚?wE€–şł«Ôg´tž)jÔ»SplőžI ǧż°®îČmźĘ4UM}ę&_}%Áę|üB]lÝ$†MTz §y¤nĺ]˘~6“ŠřË_)Úť¦¦6­îĹ/7™uŐwiyáv{-+g ú=ŕČ1¬ĺlkX‚ Č{í#ô|ÇeHÚ›ýöů\NbŔ4YEŕÄŢjüÇË•(­ u,W.–8&"=2™l/ćŁ;Űe·pÚĹś#uŻĹDĹE$Żľ?«G-Ž áť> DTH”1zÖ¶]Ů.;G8¦÷ż%­'¤ţ ÎÄyťzôľú j¶Ş‡±•Q‘;TŁË‰m]ŤlÍR%~ł‘#Q8Ęnú>l(ýŤM˙řŞyÂë§­$¶u`čUň…˝ˇ˙7ĺ´s=w!N9öAMó żń¨ĚË4‰2|ńÜäDź>?.úŢ@÷ĺ%L“0~'ްE‰BĆśFB ˇYçÖ°_{'«#ÖŢĹř±IěV}â Č3sŃ){ q‰(;kŘ  @ÚŹ˛­»]W¬P}wą˙Ĭ ©Ö6Ţ {;ÍĹYÔ6ťU¶‘‹)Ě`%¨ěHďłÔbĘ:ý–mąĂ¶ÁŕS”^C&vz’J;ĽP1ľCř8ÔTµ¨Řm$‡OĄ´şĐx>!—3uő9ÂăĆ>ŢF°W>oói:]g. J=ŐŮ qčăp9çŢń jś˝Ô< Ńü@®ę˛YOŹ5&&'’cʨř\Ĺd`Ö;úČPxĽÚPýÂ<ÝejűÁÄ+Čĺł—x{éTCĄ yŮ …„cő•űÍntpo -ꏨ#«4őŘFÎŘh ô"\ţęfĂÍG ßSsĐIBí‘é®fiŇč@Ĺꬋš76ˇÂ/F˛rÂxgKŐAośĘµč"ŻĚüLýČ€núůcŘż¤­\¸Á™ÉU‚ZŘĽQtžŕ‡Ę%ůśăˇV Í™Đ.Ţj/öA6®oˇŹsl¤Ć«!á9‡ءB2…ÓŰ桀i)»1•Ź$-ŮTĘm—Q˘r0ĄHĺ]ŕ‹Ąó?ň‰¶QrCP“H–,ćýk;Ľ×»*+uŇ3JE…~\Dš©ö^ôşŹ@ŤŠf´l¬żČ7~®Ö úiśqíyQĹ8ťČJťĎ˝ËÝp~Wó›ďfńG¦ß÷ąTŻĺ°3Ë‘¸ě€Ň‚>ňinăçĺx¶˝u˛h˛ČŃ|Ůl鲂}Ű Ń~ٲ†jI ™Sß’©Sú>7Đp$ŰpÄ…ćęeůÖĎëńNX¦>ą©^j cŕ˛xqg¶• ;ÇÚÁÉL$k™Xs›4„5˘#©M “+5ĄĹlĹŢd’÷ÍĚÚăÄ´fsŇ„3ËÚz˛@† 2k…Ţ5+aşd ŢY«děĚ‚)’J!?˙?†ż)5ůCĽrIFß§öb—÷‚ľ®Ą[ěäFéůk‡s{ŢC:”Mc•ë$Mĺ|'­˝ź]Ż´7V»$yšŃ–ČŕĽ5#_bÜ.¦˙«Ú’']žščëłsí ę¸ÄE$Sü‡áě;sÉ*ŔHĘţۤJ'ŞPęÁŻŮ>u‰€›/©tÔÎŹĄµř:]žĎ?č¦)W`˙é ŽNe‹RĚŰZ€jmévâ°ŻÇčJĚĎç„eÔągĚKŚŽáWťqúzŰŔŠ%*9Ó''(±đNÓ˛ěRđë#ŹÜâ)Žţ‰łO¶@Y§GNé-®ĎWŔvĺşţÄŤ­Z\öd®Ü: 9˛ŤůŻ1šˇ˛Pń×VßgĄ%ú¤ŚMAÍ ŮÚ6„Jŕ.~ ¸YËî·¤äú.™Jžš’„[Ő@ŻŔŢ Iď«PLżâťÚ;'Ą\mÉTA‚~ßÄĂ ă(bP¨÷g5ą1]•Ýq‹Á¬Ô'x–$Çłŕč4ŮĽ#Ů5n&{ ď'¨ČI™mŔ(:»u ŹHW}>v‡«ś)KńMY°Ó‡×4HĄĄ<ĺ"«Ž[’rúą§Ś¶ŤÝ(Ëß88ÚKźó, ŞŐĐř8w`Ϥ´túlş‡Ňrţ×–ŠCI»%vŃŕ/GĎYĄ5=«4 é­޸"źÖPQ±  Ţę*,ŕXDäAčds—rlQěJ~f7_˝<ĺŚyoĎô­ńŮ3őŐ?†¤ĺy$vCĂ‹ Övˇt1Ű”ÔűIł I dÄâăĚ\WtpŐý ZŤä,pŃłŢcPSµ–Š^ę‘äbM‡śtĹŚ1™ôâ0ŘűNăÎ÷ł]Z‡»/÷ǦÔÝĺĚŹ÷Ĺ­'ąď#?'řLŽ› Ö(”3óTLĂl˛’čń.\Ľ>ĚG®ĆŢËä/§­ęĎÎCĹJö®ř"ĺşíMĄŁŐÔfăűŮ›iOڇčö-G y0]ĽA«ŠąGF5«Ëy¶¦Ú>S'…9ÇŹĄu¬˝ ?NşaęuĽŐ\Íl>HUşUNó šżw “%*vZ—¸óËŔÂ)ĘöłßÝLd_Ľô 7TZ„¨dús°Df~@’Ân" AcľSşÉąT{TĂš„Üá]ÝŇăŰ@ZMÄr  ŇN¨ÔŔćÎň/îč„ţ¶Zú•«{PEĎĚ™täę°_éH.¬×Z‰X¸ s¤şz$Ęěm^xi.˙<1Ăśż )ĄowČĆýZ Ľbu»ÓVW7xŇÔQI`ôč·üUęđl¦üźâ«ëj’A%m]vŁ‘Mžý®ŐVÜĹDśţ÷5ęâT]íÎ'1—H›ú"иWN—Ő×6[‚şd«&<&-ť°Ž4ÔŻš#Î+–ĽeÁÖŁŢw&o“ALŁă•Q;Ę)β2ĺ0·˛'Űoý‚ł@|Ů7¬ ě†]N.é‹]gŃś<˘ýž›Ś1dŚeXčÇ—Hé dĆńżJřRčM8FuF’Ő̲ň0÷µuŹđ(ÉÚ4ňÁĄáAAÚ(pi×rÉŐäb(‹Źĺ+©ÇŐΠňXJŔ§?:ążňąôůř˝>Ü®PŞ' ČŢ4¤GAşŘş͇˘€#”ÇńČ@QůËVÎÇJÝT…qäň ŤfgĆ^>Áß‘×Ýw×_ŤđŻ{’ń:âážA*$%NűďYęÓI͆E„‰żíßhŤY¶4¦9Lě] ÄŞ‘s„Ôf«–|dDTxb *‘ áVŤŮŔ÷0 (ýÜ,˙usĎC Ę0h‚ÁÂ}I9s±VÄ}–…ľfěţJ5eWz•ĆôŤŠ¶6>zÂzů¦Ęţڤ6¬Řś “VvuĂ;°ę1 ű©?KÝţ`yŮX67DkS1RNĚjč™5Ş®Ł~<&~nuŻwPđ˛Öß××Ő˙ÁP@_{Ňů3:Ţ-˙žŻwňSv‘Wł$ôŢËň^š1˝$SŽÁ±7.źh‹r%Sž&-cňɶq h@Ôú<ů®ˇx ›đ¤ÍeąN˙˝öń@5Łń 룰z”ĺwb§‚ň€˘ĆćąsŽ»ˇáĆÖz^}ÁŐd=íú¨? Ž€Úg»!`e·9‚s–®’°w"č´zć«á˘\:Üm1ă› @Q}čkQˇLGOúäpMńĄ’mý¦^©¬u¬5!Čó+ŕ$’Y˛a„Ü|~'ŻňçˇßńáMjä.ý ǶôÇŮür»c®¨ * SĚ]VZY‰P¶Ę"bć9±÷éC‘Ć •Ĺ\R»ĺfÓ†_\đŮă´e¸©µ,J"J ÔLs4’; ?7…&x[úŐËźŢ ţúĂ?#t‹ŔÎ`Đćj0´»ďG B¦ Ůw{ÜĎĆĽH¬mH°¶ąîß ÍÍ$m,5¦OC ­Í4Ă”^Uµú™<6X+ebÉĘ{ő ,šř$¨jh̲k#_$›­°hĂčĚ’ ěÚ×aˇWď·ÂZˇ< ŐvMeĆÎşŃ×ü#Ż9“â2©Á÷i_‘Q±äƱsV^Y/K¨x§'?9€©p.X‰`]Ć~Ę‹ŻĐwćTíæSś´÷,¶ş>ZTÉ ďřß8Č=·ÓŻ(;%ü{x~ݦGă]gY,ܲîDÜpĄdçeŢŞxGď§g˛+Ń/Ř„‚žxŤGc‰…¶ ÎĎÓ „$t.čŘ9®±č˘W"¶ ’Ř»óžxŹ"7mY®HN{—B®’1IčßyNŃi”˝,[HI ®ťěĘmJeC şP ti$¨2x™•®ł¨‹ěŞ›{µłüâ¬6™QľĚĐó—¨—8Řś´o1ZY3­K÷Ś=ĂĐu˝×ÓSÎu&vP@ËPňH¸FĆäfHGîZĚ(=>Š~Ö`ôW×Ëś­żů»±č“ζ<ŕw¨hůČáŃÔěFČ ¶§™SűäKąGiĂRŐŘTÔŘq Xţ í°×káűĐi|ň© ]ĽÁZa)ŔđŐy'ţ1HEŰâ¶ |âÇúí ·Jń`D±˙ť”öc “e úTíWÍŻF9MąöjÓO{O¸sťČ Iú°|÷ŘOş|h ˝RęŔ°¤ŁYŔy?JŢÂ0íK¬>ŚĄßAf{đřŁ@6Ƨ™NLŁÚÇĺ|¤‰ ®•ä¤Á„)R¦™ÓÇeb^Vů‹ęľÝy®Î˙Ž­±etÚ¶/ŞÜ’ţ2kŹňŇUJű©˛fňW3ĹŠúVŢEžÖő¨$żËlç2lýňS Ë­‚ fÖurí"~›*Ń2ÉĐ´őŇÇ[ nÜ™nÁŻČVpRú^)Ł"—đfĺđĐfÓik]ťU)9U´–€^ĺ[0žŮĄ˛xLé©őźH/é|?=Ë“ł;#| >ŽČłűNó&@¸Žł`}ĆLťĄ•Ŕ†ŰŻ­>ŇýY×)—φ˛F.šŃô—áBűŃ:‚,› źąÔxá*őF”ĆS‹SD¤KW¶˝ŽŮ‹>ęvćÖ°ĐčÚŰ9Ň÷Zî<;]qľ/ >˙Ťě`™>vńŁŔRáEÚ؄֮Ń~SŞhOF±·Ä-? Ô’¦xł™©QűĎ.đúËCĺwב»Ź(ä[flę š™[á¦Ŕ_ˇ˝ÖňüB98®jĺ.\ĹQË ,¦ř0—Čňý˙3V°óăPąĺ# F÷ >ND%şˇL7˘×u%§Úő_<‘TKf¦‘)5‰ňÓMô ˝Ź…Ę‚ öxLpžßŞ2Ľ5őh÷Ü×Éą{ĽĎ<Ţ|)ř¨„.Ćü•Ôół`»ĐdňĆÝô&>‚O$,źĘJ×;şźxŁ]đěů Ŕó@Ó‹âôĎî~ 9MxĽ‹ÄiöTśîüD÷]ËćËŔŽ8î4y$DR¨}şľ··[_,#±0žŃb7Eůů~dłłŁăšĽYň憹P“ç©WiÁ›ËS u˘?kTyŰ4CMš‹gSgŞćm^µýĘ·w„č]Pţ‡žľ3jLQy1ő˘o‘?͔نoĚ©„&›{ń‡ĺ…ľţ3¨ň¬ý‚„ś˙˝>fnxăsúłčźÄNěŰ‘ÖĂâÜ)T|’ę]÷îXmN{ňžŕ8nşŔăÖ5%š‡˘I©týpł<˛eĹÖęĺz zę)u‡WÓ,ŔEütÍ-ÉdTśŚC©áEÄ0ŻgŻm8{ó)ăRçřÓÖú2%kÇh)ČĎLŃĚd[& ^nĘłyUŕr_ŇqĘ„„áđíVŔĄŹ<°1‰Uµ1ÁrÄa2TVĽ­íŻż1X¸qěGë›Â{‚TükóNĘ Ýů.4[:«ň‡ňâćJŻç†Ŕdt‡­ľ„/öźyh»¬,}LBV]ŮmşČňĺ čcżăpŠß8ő¨, ÚV^J=\›J”CŮşŐ[M©ČoŽßfţM_d€®©¸ą}ŠuŃńŁţ€U7sx^ /§űF»ĄHT]ź,ŚĄ BŹî?¬E¤;ÔűS§×ň+KŮ5•š‚]_”@zž%Ľ€ zÖÚ`ŤĆBK]PßéT_ZÁÂĐĚÎ’K̲Ző$r}y¤@ű’äwÚŤě&tµ3Ěn …ÄŽŇݨGĽ!uŕ–Dzša2WNܢ٨«H÷ÉdđĆĹf8#YÔ Ă>.8ŹHŠä,+µš4ŞU˘ĹĺÜŚ÷SfĺoP…Îgľ_BëÄÔ,ó)ů|ś«-Oh˘˛ý1HéN”Ůó¦5T¤ă×Ý7莬Ýw¦őÄuˇMʍËl ±ŽčN}ÇnnE•Ţóć%Ѝ´ůúÇ⥮>›A±LheB´ÜŃ^ÇŰF1łă#ü`†ë= l´“ lŐ&ĎĎź†öÂó.Ľ‡Ž‚„«>Ş%răő_Ë®Ň=Ď·(’4ŤD‡ěĽCjÜ-3ÔťnŞĄfčŁËĆA‹UBcFĽöq†ĎčtÓŇ €;j1‹›p~X=ŠkĎŻŇÓ!Ĺh§Ę5Úv^ µ»XDË›ŞÚ|Ţ—ŚęŐ¦Üü1PűŢŻ,‚Ű€čď?c˘rd´»˘§I…'…ćµ×|ÎuŃ€ýh,,ńĚkc: Şë pvđşú1]}@Ëč—OĂóŇ1ʵ’ÓČ8öUeăĆlĚŮ6ú[™€ OšXÝ5V†Íş´Ř*ôý1í‰:$éXŰaĆě”â‡tH¦Ů·1űĐ‘·ţ•)¬Ë·oj±« ý [ <ľCĚšóRůŤíĘoô& cG­×\%–- :a]…üK Ď 7Ö‰ľÉ Đ9•Ď!/†˘ 7ůŐ-EŞušń“nŰ]››öËő:(džrźhĺCĂ“LG Ř^|§ [ň1Ž”Ë˝%IŁmëŽĺM›˝q6V*Ä;ó3śľŤ’úpíŘ÷N«c|]›Á쾢ŕ“HŁźE;'ňKi±Ć6-._˘ÔîVú¸é'g>j˝c«•âJ«ľ©1śÜÎág”ÝÜ„–¦•ÔÔhý>.…^wťgzĹŢc§ÎT5ß.;™© “˝.ęâĎ–ö ŘbŔdŐMş´/¦—{€Z[.˝«™BďÎéyžĎ…†[ 4 Ť„[˝·řü—ÝŰÜk Pʆ“ńg¨)«#ęěcŽ ŞĐeŽÔŤşÝA—ÓOĄRN0ĚH%Âćvů¬3ö’tU–ĄćđoşOˇâTÖÄic1‚Hř0Ôäţ; ÷Ř‚de!¶HĚUn2ĹNpéž ‚cé^Ę*q9·ýEjęoüş©XřŞ3>^¦©oÝë«6%šg0nfËCbM¤ç{_=ăýźMěÂ1.ˇ•¦÷5\˛ßq—¸+”übłeŹŃĆĆŢ®‰’m,xß(Ŕsٗ룗ąĂjŞ.Ăí$WµözĽqŹݒ‡ÂšeöŃĆíę"Z’TŐ8őĚ(ÚŁÇ80‡ŕRěpOâEć!ˇ­˛0üË­ľ ń ¨v]üWĂJßŰ Ç~ 8N`9 ĘĘeéžşíňÄ đňy,WŔ5÷ą)‰2§¦ťkËÍF„çŻő)iśł ĚŽ—™e‚µRhă9mŤbÍíĆ•=k3bâAđJÇ5肥°HąŔo1*lłÚi?€“Ú䨭x?ŰuóA‹ŃtÝBTvÝČNí|!Ěă3zŻĂŠÇ 3„ĐŃă#ę ăC˙`í°ěZoíxG"KńLţ›z±FPňQé Ú/‹Ë+@+6ć<°yÔrç>Z@’¤—Iosď„Q^×—‘,/Űňňľř®ˇc!- ËŇg­_bÂú7ެÁ!«ňKe‡IzP ?ľŻÄˇWęŽ+â»ĺB ĺŹY~A?ĺŻŮq)•Gú“€ÚĺcúÂłř)aŃé n•q`GüíSŐă/;ŻkIŕékÔĆ‚ţ+čÇŹ2EW:Ăcß °<ţ¶…ň0đôt`ď#Ą¸s ˛ĐP\*«1^݇´w¬<fdCÄ­Ţ‚±ÝH&fďÉks˘¸ř|Ŕ¨ 5¶˙×z"5Cżîođă&î1ŢBŔ'PoIö]{Qd7xtcîű#ł&’qI˛ÔŽ6áDŻuőŞE~í*ĹÂF “ďŔ˝ ˛ÉÎľéßčź`ÎŘí„·“€×Ô[Ůţ3*˘_ď^«nž‰Ŕ1ëĐČZ Ńv!_Sq€CĄ–ˉҚl„Q`&0‰-řE.«‡RI†uúK'śđźîß2’(^ÔşĆHe¦˘Š2(o85źS‘ś…ąéť·oć©„)}ŐčĄĚÁꦌEóçójaĄŔK:äl^t‚•ŮQË×}ňaä«}Ł5jíJLnăsu(;‡Ü öRűĎ cĹ1öf÷íŽs_ü±Đ‡Ę˛ö’5ý|é8˛¦ÂŢ}ą*‰Ž›éśüĆߪ° źHđ¶2ŃW”7 yw.  ¤»\&"qßAm]łdĎ]ZXáĄhŐ"ü–k„yj^¨&± ¨ŢLAP·2jÉ›ŕŻsŁmîëŐÁíĚŽĹĂĽ\޸á/ý_.»Ntwüę·•ÍŔdůűö6˝‰"VK»ý&LXĽ¦„ąńŮŇ–b #ĐĚňĹ⑺7đPG2ú€ß‡*ďÜXçćźĎoč`ĚŮwtŞ ý»Č }Ź7GöIşj¨Y„,ÓóĐÂßÁqUŻň’=10qšmn‡ÜVęZęI32źCU/ć%=c#ü‘Ň/čwôÖ h:dşUŁ ?”®NŇŹbŮYü†âÉ'pG^H‚YgŚđthńgvM‚’ź_ť-~j©÷zŚ‘Ş #^ëxŰM“°šőÓhyf^Ł*ňśdřf®Żö˙>ř°í-K¨…mß›téJŚ·Ť®6 4=S EL”ăÔ÷śuW/ł„µ—w˝÷g>ť)ĹBs|P1śjăí®u|2Óţ®ŐúH(ÄC›Đŕw]'ІňŞ»9U˘SYL@ )˙óÔ2ť¬ĚţXą*)€, xOŐ<‰†Ç…’ Y‘uq<‰Ö™”TtŚM`2®˛€ ÚÂŔľłaŚďEĂŚ0a·˛ž®L Š …Ő=TŽaŢʶĐ%ě9fŔŚj,P$÷AřZ4{žLµ ’.*J€‡ŞLFögÇg‘L‡X©?ł)AÝłuXŐtŞ ±Š©Ř?>€\ţŚwě´ýIńśőŰlf`¨˘"d­”·ę…ŠDĺńĆyý)<'yIŕ‚Ç~«oŢř“ÔÓn6.ćcwŹŠŚLdÖ‘ţ‡[tôřˇ7öW€łđHŇlqk€;$ýYđÚď?`9ëvţ¶…6Č7šš~ŞbUełâ‰ U€˝TŰPŁ·Ęúm“‡ç–—Żěu©f©7ČłŇb©š4«‘÷Đl‚a ’;x<^Čę>o/Yh Ú0oi*c\ä^÷¶˝°–9Ţđü[p[‘ËG»á®FPď3iť…e\qřŽ̤öř}X”¬ňTŰ/#)•ŹŐĘ˝í· ›Ţëś |D Đuęć0^ţ¸łŚ˙>-ÄĚó[‘*r/ýŠ–©{řłeó8Š­W¦Ďą,}‡‡ü ™çÝ„YÎţI=ÎFľ]ĎÉ"MÍwú‡šP4a™Ţ»:š,/ŤĹď„OÚ >®s7˙điĐĹępî‚z’×_šFĽÔ 7’IuoeđťóűmÎŕŘżŻüR˙$ű›łëan)čóµČ3>e?%Ă»łäµťÁ ĘŽ8MłŢAńĽŢW—žćnbéžgqY.‰úż#ëÆµ« ”Łf<Ă›pşfř·ł2®xÁâĺ¸qdeîŚ7-U‘»¦=Ä’Îă ™F V_U”Ţö•ý«ARDľżU˙ĺîĹx^ Ţů1Ő“OEý†¨3ŔóĺXő)Vî3㫲%żnM0Ł(\Î&,–ըǦ‘±,DÔËÄŽu˘iúókŃ"Šq\±´NgĄ;ű%‚°•…ż7- Ľů¦3˝PŤěůZđ^˛¤X…0˘ůg!«úţŐ’+TľfşěŐçRŤÜîl¤ŔŁhÂúăsŁ.ů<Ű'2`ŽÉňü_] yá_îŠC»Ű}żÂ‹LĄŇ^±Î^µj‘d˝ÓŻMrP˘fĺÝÖcîµÚw?ć)ú(¬Pŕd´ŮQ}ĐOöśśđZD_m‡´‡üHčâ#;§çöµ ś5 Ľă6N.ÉEUŮćŐ¬ś…0"¶R|_4ŢzE´2 ňuB"_ÚG„G&ŤŁü:ÄŘWoóб$Ú39÷ ĺ¦CÔCvDâU Ą‚–C-Ř˙­Ďĺ?]“Ug§Ýöýí|’ R¦ÚŽë ¸y\5•MŽU-Ě~ÔG]şv* ¦’¨*“‡„’ödc|‘˛Í9v¨„ăËdZčŘĂő‹ j edj—–Š YéőŞśiĹ€ż¬ŠhĹ=N-đń…B=„Öá¤ĚmˇăM•c0Óˇ{ăąţěQŞXý~¬«”Pę+ÖuĄAŰd«ň*‹-Ŕ¤¸ŹX.o2ł˝DółÚ« ¬ŽÔĘ 9‹,z,Ť×U^złĂ°Pő}DMśś[Ar :Çw(żŠ'°2;ź"Uqi8šeD F€ RĄ˝`‹P ¬¤Č‹¤‹{5Č4ĚĄSţ¸XŃsYyţF¶uşŻ}ٸL ö›®â˘\Âť·ě „Ż›A¦1µÍĺZ 1ijr^Ó*ďaŐdŃżüşLŢsEÍ1…Évt— Ń ýJďBĐwV`&·€žcźĺF Ż 'ŘJ ßŇoâ69#Ţе É–y=r5Źxd±Ś<_ĎAžýÔÇ#®ë‚ö§ç<€0^÷ÍT"×’ $ř稻ŮylŢL¸m»Űżwyđ´ă@'t‚:aŐĂ8ÉŕBBĎ‹ÖűÝ“"Ć<´ôp_ĽĽ—’^ý Dˇ9N¦öJvůJq¦Ępeőil’EvĽÔ‘Ŕ} őK¤/kX~xb,Öôďç{*'Ż­ÇO¬0%ë\ˇŮż§e}˘ţf$ Pöý! Çd‚ű)ÁYz$śż ĚrV†ôťă·xj#éä˝đ¸ }Ŕz÷ç¤lmoŠwpl4ÂÚËOOJbś¦:mZ­ąŻWq©ä\|ÄfzrVe[‚JWk))~c?ąeÄď]-âžá@šÓIel•?ČE’푱+sšú”a'`=9źÚżÜľ“čYš rµěyÍ+ ·ŹGÔ÷9—„×PVpęJęó7_'˙2ŐŤ01iÂ-ű'ĽÄţ[怕ˇ1ĘgŃ׆€˘Ťa:ŽËLŁq¶ć»¨N7㱡ĐrŞÝĆŕňţUŚćú Qa›c÷22ßXLźV7ž$Ď:Ń}š˙ůG @–A•Î÷˙řłA·óRUŢT>FŻgj••řňOůPÎ[ 4Ń>5Í>ĽcÜ”6ĽÖ^”-ŁŃŤ6ň§Â;j—“I1±Äo|ţtµăş¸»t]’Łś“ˇŚ’Ł $•ŘĄyórÚ¤G$'ł}ŹJn*s.0pqSuĄh¤µ o9đŚęłßs /z—·/Áj±Ť@Q/;H‡Ş®¦Ő Ž\ČŽĚű˝˘;ŞőÄ ÔŇJ3áŔC÷ę+3w“W·TŚä8Ĺ%üšQ&S(şRiÝ&¤zň†/Űíîú‚–“Ýňnş^Žuüćnß–‚!U„?´¨X6¬¬ă:üĺĎÎFĐÇdđŤ,HN†Ź‚YŃ@c i±{ě^ź±>BĂÉ‚ŚYŘ•_•jQ‚•ćżÄĆM»™¦–0˘!U͡ÇĆĚőĂňĆtŁŔZStŔ@w˛eŔ¦iË1ÖÉ’N©©ß+ő_Ážú?NÁى =ś"+D…ąrî<ĺqSşß±¸ťBT–M|­AÓľÚíL¦Ů¨µąěâĎB]{úRË1ű´â‘TŇX5JÖ3.a†u„áÖD~ĘţwP¨Yśôń 7ś xř%¨L«Űô#ࡣkň/ŰŚđ‘łýöß913S‚Jć~߉Ś{ dy|óŘZ~”jr*ŻŇäśźt% lô˛2ĺýIg21K ž‘]˝˙ ­[Ą3^©í†ĂĺĹ:´őŕY5UÎyŻż“bŐ¤ŃA{8áLžbiß1—„‹9ä˙…âVňG&u]Dťí‡űbV_Ěě_ÖVé~Ő\SM}ţ°˛_…ŞíÓŐ¬¤léŽăĂ 9g:ť›6ŰÁµ•I-–Î-=¤LŃą¬ŕ)`îŤüo®@¨˙®>Ćć> ÂďoĹk»®<¦±á·&E–đ*e+ôę^¦eŠťü…ńE©ŕ Ó–”v®;ŹlĚýÜ™Ü/ᡇ*]ÓyRČ8K—oóçĘČ˝ŰŮęµř#éÎô›ˇnÖÍqúWd~ţ,ó5vEŹÝhŃŽđ›Qް‚X*ýŠ6'źÚŞ…˛áé´»nđŃeekÓ‰P­)dę<Đ7ćŹÓ*.oyÇČŐ"§Ą˙ňÜvÓé#iy¶Îá:g{ń1Ţ— ]s‚ t—»‡0 l9AţDř±b—ä¸B8~áô/P$Ď &ŽL±¦ŇظŞ)Óßś0Víú…/­¸›ěŐb(Ť<ü-ţ7pG˙łMĘě­mv¬YL!]FŔťĂâNÝĹž`Ó·Ź$hQ¤ą˘=;ďÓŢkňľľ±RŇRt-^C`xňň[¤ŽŔţuĐŰŃ *M.Č˙ŢG=µ¦F{ĆWźDt¸?Í ÎôłćşU_Găď"öEi őÄĽ"RŽőËóö÷KşĎŘ´¸‚âËhSkšŹdsč%—«ăo@íâOY5É«Âă}&NłmĘÄŔŹ;mQ‰%ů›˘H]MőeηăUÜ‘­šyB‘¦=ŚŁ†*{6h‡)J×.'LJăŢy\SK}·O_Çaýť˛űé{uY¤ĄhKc:20SFÁ­‡¬®ŇÓßý|šÚ;S[üLMÔĘ,a eŠ5ÂřęŔW੡FŤď:L@dŢý9:ďcňĎ%Ľp’ĂB„Ş/çüž~ěBgSNDcÄ)4fL ĆŠ7Îú9妦j!Ad´\ŃXÂH<©Ň!~Ť@ľr!Ó6ăCb;—ú_ËôiĄŘ…ŹšNŞGů®ýMN&5o·Ojm$ß{µTW%źÔz<xC~›vŮAםß˰ôŰ)ćý­\Ô,ÔRwü™ OËô?ďk¸šP–2űűnŔw†Łňß?ÖIp N ˝´´ŹIAĺ™uËń‡–8+siXţKTÓÇŘޢ’ÔĄ¦żŁjvćÎŃęz”‘DßS‹ ďJÜęđO˙F“Ú8÷ĄÝ©3»łý8HÉňhDűeľWE ´“ÍÚřď“qˇéíÉH<‚ô~&QŃ,ŚBHTýmLV¨Gżaµü—y°P}Ćngš_Grm*ň ńZŘě×E*3ÍŹË+e‹K‹Ő ‰B“÷ËĹıß;}ëşx0 ݇~YÖó;[ňĎŻ˝ŐLXN·&á…ŐĺţX­¤¸äYĽ\_G} 2ÄU™gÁÓöXű•§±bťĆ‹8,Ąam<|‰Ś)µ)ŮQŇ1¸ě0¤˝Ąf!ÁčiÝ(f=r¸ÍVĺ&jŰü+$ę]Űś‹«rJ(_öňýÍF0üűµSY1•mVÝ $ëksücoásż,lÓc Q°kgŰ:řĺ»Ő}G™,.€`~ˇó–hYmőVlÓvÄVű†ĘĘčâ E.¤çäâ Ć3Q±^…]}€\ŔÝ9P%]Ŕ[EŚQ8Źjf?őĚĚőŻü®´"Óěg"+Š«˝ötÇ…Ő4…i3«}8\Öţ~ Y^©˙Ţw¬RJŤt)ˇÍ:Ľ¨ÝÇ!§ {Y=߀$% üPNY•<ĄfťĐhśŚçäýlZŤ&b%ĉ´bXł‰Uj—ÉlĐ.ďf)¬!ľ%ër­ŕöşěëo|Ă’ż2s YQě –µBŚś Ě3űv“qq‰¦ö©źâîű)¶Ä÷ŕŽÍIŮž”R5#ľyÇŠ,çѢˌÁĺĘxK'j_éĚçÚ»Ř0«L TI”zÁ<áÝ™-{^K´żë•ĺ]¸J UĽW„;E;üÄQčäĂ'kĚúpOv2 Q©€É‚]Ű_¦ĐHćW]Źeˇµ‹“±îë—Ǩa${÷¤^Ľ¤7§śë‰~_¨avţ©rôĂń@śĚ"î‚ĂÚÎşKvr¶~~Šóz˝ŕ»{’sжî[m¶ú&ůGČcť“˙ĺë ntCöú‰yb¤—źyú÷)Ë űTS„li1_!ß}nVn“ź“+­ţÂ@ ů۱Ł*Ż wkG®ăj®}" ­'÷Mxc[´Ći ©Ŕ}HW›^ ›žŐjY˝5w‚âlnĹo, ­MžX3ĂpwůÄדň®UüMcvŕ^ÔzMúÇдčc0U‡ ľ-I<®C Úô4­á´ 8żşĹc8‹YŐź;,/)T˘k& ’îu‰1  ÖíľhÜţKóqřţ\H.°H˛@”ÍA mâÖ? @~Ů·<Ř1(JyTšf›köqd ™WuÜ4 ‘›{hˇp›ÓŃ—Žtv=ĽEd×€l8>0ÝćŚ[´fŽ ;JÇóX. `«Óc”K{RŻ.éé.$Y™Ůh·ř lů@ëë×¶ćŠP´ď=“$ę˝ ˝ëžźC\éČ&^›M Ő¶r!Ç~XŻylílË)ŹśtqŠ4âIŢîĐĐ=6,śü6úë]Ô×O|+Ή kL}Ž:6˘xľÖ6ÓĹéÁs‰ F F%ÍŐ9ŐžU#Pö"řânř•˘(ÁŚsÖňpßâ«{](ď…Ě!ß˙šşVÉk’U«Řů!l:•_VTQÁčµŢüŚÄ^ú­ˇ‰ő•tBĂitŁ´/ëř§â <†°uŻcžíÁř\ň'†Îť%÷ Q­ćăÄš î¦Ă\ Ux—#óďřýb W¨ź—tŹ0L4ˢÇęSŚŁŇĹÚí{Y° ­ĺÖÁ4 †Ö7”Őâ ĎN1M˙JËÝ3~ŮWń¨NŠý÷hţ¸tčíĽŤž‰B/“Č*9©ËS,qĐ㜉ŽäČPŚ.M˛”Đ´ćIDMolI÷©o&i Ń™‘ §Îâ űDíŢűTYë9¤]A“$ř"¬Lĺ’€äřW|ëóSä–řbIă¦"´Đl±Rđ˛$â}ü2{ś™çňŤgćąvŐÜ–X*Ęů•ßCŻp“9\Ź :˛z}ٞa—‰PąŃQ.[{]+`źWc,NÍţ‰ęmIejdźrŰöJŰÚ!4DáC>p„.‰¶qÜü«[˛iÂ)˘ěžGź}‚ŔţN<2ů<Ô9LŹsµ ßʏ;“eě=ǸŕŹ¦üz˙ÂťP®"ŰîZ8…A¦,b›ňšń,;fŽËÔH¤ďUtOHůKAc¤ÜY9V‘zM8ČrŠs·.•°A:ĄŔ–fŹg~ëŘr-đS6ŇH›P†–ŠAŞ{Řiú®ü]¶WíśąŃv7Ör˙şÁç"”UC™ę0˝7쏢š,ć„¶ußcYśÂě!NU@´Ú‡;i1 p$üŘ_Ź={tGcí/ČŠ¤0úyún8=)§‰É –]Ęa—ĄńóţÝTÔ,%%‡˘ş6“űô8°ëVŢY›˛CB—ěI8ËÉŔškŐ$Qµ Q.ä¢ŃŐ…ËmG!M|t;ôoő h(‘wź›ęýĽh¤Ô-+oş¸·â˘ Ń ľ]Äá¨)Ć$ý5–\pě-hsĚ/Á‘Ź@Ç«b˝ťY^0KŁ?¶Ç×ĺ`čśuOMlŠ ĎÂÍ*ŻN©ę:«‰íÍsáA?¦Y4Řu]Ćţ#b…Č´Ě줖gŹH+$ l‹˙.Ť›ü7ť¨3Ą˘ZÁuG~<'ý>âQ©»yßr󎲖&†˙ŘŁ#Ŕ·`AÉÖ­í€.‘ŽńçŤäÝź€ĎQŹ ŢŇ-‰FĹ®]˙Ú˝]‘t»Ř^á–9ÍŚ$$ěăaXôV;|„óĎ×&cáÂôDîí,Ł,aUđ0Y$ö§ŤŚ”tÉ8`8ŚťÓ¸ç|2äA8% îńYAsGárR‚KżFÓXy9Ť:9A壡dŽkhzfEě‚4¶˝¤×CńŃE­r –R‡,«ř,ÚXą¬ńZIšň˙[4ĺŢ€Áŕ56˝t™€:›čćÎýőů˘q”:Vť°xéŽ+É)KşĘ ·‡ŮY»Ě)¬u6ĄęqŔ°XŹNŕ60’Ý ćX3·4äľ|c*ÄUË'áąĹ=âĚş †âňŠŮoś-zÔEňź,@ęl\c˝-óęí¦î˝J\˛ězwEŁË]KťöM6˘>FačÜÍŢ} ú‰:Ž}Ç‘ŃŃ˝™ IY»­sb• Ż!ś-ń@Š€ 'g©í‰áż•É Xa±śżŘö<ÔGŔ×C„iúÁ:/q)4ś4aĆŘy”­Ď6°g#ŤˇúżŔď©˙mŤ÷0'ÜLú»§|ŐTĄőö"°ţ‚ÄE•şM9bµą†Ü+|¬4í˙é+Vesŕ‘‹bŇGă»”‚ ʆňNŰgkö> *Ł­s#ö"Vţ-AĹr”ËÉ”sAîo l¬5(Ŕş‰'Klug A&ÜŰ"ޢˇý8®f+“÷8M0š¶’ZÝâË]¬K\ŠR€‘čĐ0nőq :z$ .0Ţ)-\=%}^ŃŇÔî3Տìďě"~Îq˘)WĚ Ü#é y—€€úpđ dŃĽdţ0_Ô ”WçO”48EY¸JĽ4żž†@şÎ#H*ŤÓptd6űç÷Ëłźŕ âXŻ­† ˇ’™( âQŹg„ß;^âc­Ďw@ăÔE1 É‹ó¸TÉś}"Ô’®ŹIęj’|ĘîÜ#Gľ˛qfx?˛ ě–PÍŻ<Š$„Đ®~‚®ú1üŮyšZxǿэ‡†(Ŕ' ЎČ}p˙*ýńČV~é_đ ±aŻĺ Űw"%:!\žQ TÜ; sTdŠ`Bô@ĎKŇ’ÇG…]í€S&Ă,‘€AČ\ ŠÜ„u·:ŚQa‡g{}@çÚ’·Ż_|ŇV0P0@ŹÇ5˘Z±MŘŘŐ¨ůăo7Łů?]Oąđ‰b¦žSĄx*˙=ŹIE™]\i8™Á ~$ëťQ˛Ě»ŹĎ)g%A %ÔvĐ@žuđ ů‹ ÷fo§.ŹJwâÖC-'ÂMjźpˇë.)NůĆ;š0ÖµG—×fN˝D‚ýÍ˘Ż˘wP=»`Nęôť˘w7O','źŠ»?¤+fuĐ%ű‡mM{-9 =lůŢM‘źOŠüe¦ťŰk 5!Ţd|«F@aŚ©€ę™– Y**l6ĐÂY÷§wFˇ’e ®7MŐ  úŇę[Uvś%{­á‡[żő‹_˘¦öËČ‘gZŕ7’ˇ]úú‚fű‚‘đťkÖ p9pm€<űt‡O¨j»7ŘEË ¨Ł´úĄPęmH]ć5›`}ĚdźQę˙¦R}‘O36˙Ĺ»×” É05“Żť›#—˙Đ×Ő™¨´¤Ę>bf‹Ś$v!N结“tqěC„X(śH ´G|;üöcSGRÚő^Ń~G\»H5•;ÚDW_ö\ÍiÖ\#¬nş¦VŻw±8бkUh` äÝÁű3=$Ď4Ž4ü”ŰD㸙.řaO\ś€†ćgsä–Ę>fÜňźĽĆňhA3â~™ĘVĎó‰–ř…ť!ÍqŢśý&ß»Ö24$nă»zĘhťŕ Cľ–g=S2‡:ŐuPk?Ľ‹®gú\SÉ#lč’ń˝?nj¦®SoCűĂ2WÔé0‡ĺŢÎlbbŮ›fÜtX°(Ć}ČßWÄUîż#”} gw%ťĚç®!'YÔ¤śŞ_¬˙ţŹx*wř›dY:y%=Ɲơ°]–äŤKŇ˙ŁěŤî!ݺϭ—oôźŁŻźČ‡”G‹ë–RN‹żÂť_ëčÂîaGK ±ŢĚ †#YĂ@ yź|‚Ş(·§ľăřÖŹŃŰr¨5˛¦)ŇňjÚ^×6$$Â.ü#<>–ŕ‡c}‚ţBR˙"‘Ż €*kş{7I8*Ľ |řr_ŕÚô#›0áÉZ°šISŔ'RFô9t§ŤĚĆ3™ć[Ml‚_Ź$—|hşňý F$ŢKçŚ÷ í„ĎNÝ× ŔAű%˘ţcgYĆĘ+[ĄŕuÇűŠăîŃ·yJu`V÷†0ńkëbRĐP ¨Cý@Ć ł”ç7d8 Ý5đ…ŕ[™X±ôŠ+ŕÝ{–Ü^î{Ü# /Ľ±Č±caq7§kČĚŤaˇWĎÄÜC;4@§č ]i‹WGLŰé0t>öţ4›Ť9ŠV¸rŁ4`­CÔ|v=,×T‡š`E Nö–-čjPö´óVps,[«J>uËTŃN•{ÍđÎŇëŽ5…–G—çđÜj4ŠŠn]}ŕ…˛ŻÉŘFNjČuLM—á·1ťŁy,dţĚ` ‹“‚˘IŔ°IbGDH;ѡ™lRč˘19 ¶{« Đ˙>LKßÄR]`S|1[¶A™fěŕ[ÁÉb«ę˙»slKüJ•›˝Ş‡vHJÔľý5p†ŞuÖnˇ”ŰŻĄE®ł;H$1U5~m"ĺˇ<š‘D©§/ 'ńAxúűŮV˘Ršor ź®ő“p>I{k|ő ëTZk´”Z‰5ç -“Ű÷2P?ŢĺóL ö´•r»›dŢŇáŐtQ Q»şâ»ÓP­ćUr¤„‰Ţxŕ˘ű9hCW t!TőĘôźí˘Ľ[îŃŹęŁč@HćČacgeŇZ2t=ďÓ†ˇËV6+h.y%Ýi(ŤćÄëňgá©°ôî'TÇ\°ťvőČŐ®nÉÇş¦Ąŕ”úsQ'°JYNn X–/g—Ă.Ú<‘ŐĚ*) ¨a°9@:ąUO«’ĽŃ™ °ňě¤7†Ü40㍟\˝˘UŻIř[i¦ĺr«T­Z)Žŕ{Đ©3Đ›ťb°:ďMUĎľżÖl 'Ň9#Ú±¤7ń'ůÜ«!Îd"tťNo«JcŰśp…OZŤ>#…/‰1˙eď†ćř%h‚ĹŻx¸s®ŽşšĽÉ Đń5Źv0Ă‚#^j*l°ŇRÝDĄ\˙6bź“! ÷: u˘Űü`´ătâ壢n~ŐŞxMP1hRóˇosÓXjaBD[ĆHj-ŁK]éčTňssî’ă]§IžŢ•—6Hr#nŃÍľµ ÔíhÝ5M‰˛­”hýŤeŮ ~}ěěh˙ćgö‹6/úĆ9×x’jĺTqß/účnŐŇĎd×ćô'ŹOÚÄŁ+÷j€7§Đ{îZ-Ě@ý#ź!ú­> ű Ţ0Ň€ˇ9î´ú 3Î}č*ŻśE ÝeN¬˙0ˇ«€ZiúĘŠ‘\IĂb`'±~ˇuŁuářĄ(Îź‘ř_iޱ7” ţ ÉBşWŮńǡ¸Ě\VÜGö‘×z3-e›CŐHŢI‹x’Ü4^l)ďÄCR¸Gô+źÉ·Ĺ§™łÝea*Mť–ĹՇɡc}±Ň'cřŔŤ‡ôeîúQ,°ŞfAb;«R–,+âůŁÎŘŽÇM$Yz>_F^OH®Oi¸KĘŹěwNNđößIwlfŽ Â©-`'Gw/oÚěZľ`‘ÜIff‘‚)'6Ĺ,ÝóĘ}Üx Ňčů: ŽŔ°—;&â^4 ¬¸bą&¸ś_UźPŢ키pş–hżşń}Â.ôúĘÔĚĐfPÉK®ŢRKŽ(á/.ŃUw#Ôž+^Ňý4Äş-ľ­öÇIŤ¨‡ ¦$´ˇl7ę‹×…qslŻČÖ‹,%L¶ł&ęh±"…8wPTvµŕ(Ěö<'źwü_g] 1›t†sÉIňXÝßcrÜ ąKŔ‰_Jë;°Ŕ{mćAź9ZoÂ{vd1'žsţ,@ŢÎ߀ŔĚÉłÇó6ź˝Ńň&h[šĆ­kp‰"ĆYbÉÓ"f Ë ŠŇfŢÇsZp=G+ťśĎ¸ă4çŐÉJ@®“9ôG4%ç„+´(ůüFď„ę ¶P@'BC[ŔJż°ńD4ŽbĘ×šŹ‚d±bšuX Z qĆi¤°ďKú02/4ŃXhçú3ĹpŃJSé<ě{nDŤÍ}¨–XČşďw‡w@ţ cČFď©őňóV$'\H&îŔϲěʍÚ]~űŠĘÉ8žçÇ[ÉkqÍÚŮçMÖ@öNĹŠ„ÔWŐĹ˙ź §^Ă”édm'3Î8tŰźs·ň—¨ł&šl O_nýb<Ęry—[IÂ(řńŠ68]=1™Ąő“8 ¨\ iÉ76Áňfˇx:żÄ6ŠBŕ´Ĺ«˝x¸ŽĘwÔCڦůjVa:9¨fjűů­íŘŘ·…Ňŕţ®”+Łşçͦ:kňŤ/2‚géęBńD\ĺ’ JfzÔ«ÔŰUwÍ( Íĺ\–Śäĺ/#ŮĂ‹¤ ¶]@oăĄ_js7e«ČWĂa·ą«Ŕ!f]ą4EY0j®@Ź~ÍxpHł•đéDU!sáXWŤ~«YĚžú'LĐw{SŔC¶O0+?ĺŐőÝÇSŐîěăľTĺŚ\’Ň™7Ąi‘˝ę§Ĺ†Üۦłb¤Â|+’„łĐ‰˙ďó÷,µé†ÚBůT„×KUZęçÝ]±ŠY”ŞĄnvnĄÔ·5¸µĽ9V ¤¶{H|qnB¸ňŞ—])Vy4µ˘ŕFÝO'ТŃo"Üm¸<¸H<Á‚–˘\7tbüeG˙ë_Łh_4ż: ¦R1÷ľ>zÂc§,ď9iLđXł­•ďłmµŠw´ *Ó’ţĽęĺ´žP_čn€”*,‘hJ«•Ôĺ¸ d`÷›ĺ'ć$ňˇ-ŠéŢĘă%ť{xd›~ŕM’+rxˇ“nż)vŮĹC­łŹ:­ëĆŠ%*xŃ[JăǤĚBA`nD3ŽM—ějÔ: 笺UsÝA7“qäq®f'wI8(27nŹV„­«Rž4áÁr,šÔB›rô•öůÔĂŽ?oşÝ`Li’,äěkĚTĹą¤ żßSHޞúX,`,Ş®Ś´µPaIą„t‹˘/ČÚOľ¦®¸˘rÝ”2{Ŕ¨y‰‹;wU,ú§ŢÔĽe+ŐÁ4ń:l;ŠÖ,~—Â­ĂŁŹ• č¦6én4č "*8ŻVc2Ąe]Âá|Ź×§©Tv“•íS~çâÁ‰Ťě5č϶w.©†H x·˝@DZ ±şŮ„ďŔŕ«;ů˝ĚźZ§Ć˙xvĽúŽÝű®QŽůZĐUN!TCبťş+Y0á"ó"ĆÎ…h}2Ť Uşâ‘¸ĄllĆÁ,UlŮËMQ¶öţ-6—†k _ş Çşż,P†bŃ'÷‚.şâV”üR˛đ;x0(W/ňc`sçĄŢŚëîńpčHőKP†źć˛“ú•̦•ŕ–E% ÇQÍ„şÍTéz´kˇl| “É_Ô}&~{ţ˙˘IvÂH‹ěŔ…áuQôŲŐU™ üĐ”jmâ98$ŹÁ(±ë%2fÁ*ÇŠ§ŮhWŐWR˝t]]`xE”‡ů&7eV¸)Ł‹Ň)H뼨˙¶+G8gµŐ„Ő˛Q˝Ť+Fk fZ ^‚#2îŢ3T÷dcÁwŇY’ÎŇ ĆvKŞ9[3łjĆ%@%…Ţ4C{°ŤŞîY/Ň•h)ůĂŠPŇŽst“ęR!÷KŤxp°Ů‚o~žÔdEë’ rň}űO)đóđďV˛¤ĺ˙éđ­őWßU*âb[uŻÔeýQjÜwzxBŐ°Q”rJąD÷Ұ±t'şCu°t¦^nM_PŇ Ě.ZŮg_/'bg] ż+P§,¶Ŕżs‡XČ[$ŘŞľ9äu’…řŔç37Ŕ)‰$;*‹ó›†3÷î”™q)D’ĆÖ­…ś4”µ|¤ŕě”[­Ř÷gOx0îdř‰„Ó~Đć÷*żoÁµuK ­ź3,ĎĆą{wB4Ëś+ŚHŻ g&EŻB_‹ bÜ_t×Ó×· TŮĆńˇň^ ¬ë•ĚO‡ü©ĎÎ5#¨oĂ@TKuůŢś:ˇXLÁhr÷MLî f ff1§çňĚqČGgóo'+›@ă•~ŃMáU-ń;†ÝbókMkÂÎá˛ŇSQV‡:»n¦“É1”\®5Äľ®Ţ™ŽĹŁ*†ôü˘«5çSJÁae噂LÚÓéCÚ6­|»X7€dP(Ž ÂŐÍ*ôr ŮĽFtăQvÉŁŔőŕ';P ÷ Ň5ç´`#/“ .oĄ‘ÎpÓó1:g%¬ł{c„"ł°¤&ď<°ŁOĽząýšp…G-ts¸9~„©3/Ȇ:J#kß%,˘GýŇ-fc‰Ű·ăʡ—Ó®‘-Č2ş±+`ű!‰Řń˝ţ ý¨¨-c±“‡°ĺ}× PëGţ̡{”'ßÍ«ç©jd$&˝ĽĐőÔ'· 2PÁ_ čęztÂZń[‘t+u¨=Ż ąđ‰%*ëÍĐöb8ĚcßAfd˘5Çú˘© µ?Ę˝ŃQÎ-]ëíiŢüxx 4B.ö‚;ÓŢŻS©WĄ)‘›oĐ6ýj/sjĘvW‰ÉÔ‡°wíäőô§řńĂĘoŮ\żŁ6úźVě@Æůá* &`ă»jíĂSsJÂĄM” ŔĎIŮ;=¤(˛ ÇÁÝŁřÎBÜRpřŘ묊Şů­śÚ,—Xzežb×Ău˙Ííxććśo§{ÔÉ“µŮöND.Ć˙şEj~5íÁÜúŃëz´šď\7IiC&O[ągďĎÍAĽ ůpˇ…ŕýožĆY’ţoźřëäykž!d uëI*‰bÚĐL7`®|·šÎ€FQž6¦ÜŤ•1š™ů_˛6´Âo˘Eî<Ŕ\Ěţ­3óâ]Ľ…Š«l8č7Ĺřň˝ zř|{r!ĐĚI„ç_i|fŃÍŐ Hč;r™łî3*çťg ŇDÇĽ ¸ő%™!ŻÎ¤RPůH:=[©Ó=<¤Ă8KXY˛fYŃűŔµ”~[…Óç{ş'Ź“qcP_ÁŃáëčŽüwÂä^ÇÓ-¶’đ77™MZŇŹ_2®Y.ô2U††AímźéJĺ UšN+6|Ż,.ßr3VÓŠtfüÓ¶áCމîxďé•ăáۢŰĎ$‹WF ŕ© €_)őîZ˘VlIQůuAĂ{©¸ĹŢąjUöÉ‘mµŤń˙ÂsźÖżhÁ#řÎ8M4á´*¶—ř9­’€łŞH W=u•‡Ů6ovĽҤ’@P mERÉžNuD‹űxpD)¨,ë^¶Iľ n|:#4&Öć0ij<˝‹¶NnŚëëçZűúTxgż­‡Ęŕiń°@ |ZT"]÷¸Ôó<Ď[u&†ai^€„MĂC;˝Ęłřo®Ŕ hä¬ŐP‘@ń\Żżo ŔőN•Djl{ĘËôÔë6EŚ}Wú騾ąÎ˝T˝pçak¨i‡ą°CŢ&'ş78™ľp~•Ő»ÖşŽf±u“*XĘEŇ€q…‚%őxǨ)ˇwC”›z” ~-GQŹŤOEśvDý%6?tdĄ#Ýu˝(I Á!—ňzŮ ôŮš€`d0’n ʢ†âîÝHNa±­}D­±"hü¤đ˝^+xlh îď™`±ˇÎ6Ô×ŮAĆ콡 čü =2Y̲gű"JîˇVWo‹(¸5ďmËѰ‚±Ůşäűx"ŕ¬đAz©xö¸D[<ÖŔ`‰ąz­˘Č猰lo]Ü ďĆłD$Rc‚1XZ ­śŔŚŻ:9ú™Éë\;ŇŻ[Í´j6DTuŰń”ŐŔ ĄwŐ,şpŹŢŇł]čîš>c ‡Ĺ§ŚbýˇˇŻ±w,i—®",Fź«•MN;/›’©ŘłŻ»Ĺ4P&jJ—:Ýĺ¦ň®.˙ÓjĆúŹ‘-uU@éícpCî%%;NÉ1żŚŐ;·µ¸č_t+ ň0z5hAďKź>°W¬VmS&Űqő}XÝjO“‰fCópߡŇgňżŔČń¨Xů/Ŕ)ÚĺĘ ´V]ńťVWâŔ Í×V|$©ÎŹ•Ů&d%,µ.öá‘Pű¦›ŃU-ćs¶ŔNSŁZóĹ,ćăŹ?ż@4 P¶íN®ÇÜB—$w-cÇtÁ•«ĺyŞ‘ž4 ӧc÷Ý ăďÉěÓ‡đ™z¦Ä|)ŕÄÇ4ő[şŻsá‰ňűRfιѱô!ymuÔ˘[[ő˛Ek!ÚŹ_XáŤâ€pĎCéÉěNŃ Ą: őĄđÜř}¤Ô.ŇŽ»Ă,ÓíˇĆ€˘ŞŮŻa÷J?ňČ˝Ř>VŽek’!MTh #†ýŕۤa6ňLäÎl:Îą'M9ĚJČ—ĆÂ~‰y•¦ľ”΢óŤ´ßośÄ“˘ŤJxcĆéîHAă\Îěĺ5Mň‘ĺd‘,ăł#%ä#‡Ç1Ë%~_¦Ś2M`IW Ž– ¸îjžOČß@ÜëĆ(—‰6Ľô᪆‚–¸–~áŇ|“ Ľµ˛|tL% –NĹŻŢíşŞ®Č} ʦ‚ ŚŮ€­%Ł>:·™¶EbLÜLđY{j‚†ţţ“c€›»Á„ł)‡<f´8ŮŰ€ż©ĺ€o_a3ňCµNëF­Kઋmň«5F÷ĘC b×"»p‡ßÁÇ FBu‰XËęu%ö‚Äľ×UµűđHé_OĐ‚•ó®Ü‚óźŹh;ŃzšÓBÚuć2Jáqˇť´Z’$ Zg»†ŔĽ]r8J*XüŔz7ΩŞ*Ľ(ÎĽ°˘ízPi&>ÄKG€&«É’ÎŞ@ŢŚ …B ĺ¤řS ćĺäËşÉ*úµ˝=ńXßĘq 2éb6ĐÇ8dÁ™řÚäŞ÷RK¤ŢŻź†.Ţ$`ü 1”Ů}g67Öt@Ôí¬Čđ°GęyĽ*í) VŽ×íľCÁ0e«ôŞOŘÝâĆ&ăqµ,/ ¶.€m¸z§Î†¬ŐúŢ*ś×ršĆ˝í=śvqŇčĘ\V ń.ZaČÉ•¦¦ŠŞ 0SEńú*Đ“đ”đóy\±Ź• žđůĎ\M­Ě>nß54(C0;E_OčbËÔ~˘°8YW®L+®«tťÎ*y`‘±÷¦¶“w(8:y—Ţů§yBŐ*ŹŻ}™h_ĎŮf¤§˘K;d÷“ŕUě~’»óď+¤=˙<ćIÄët•µBW|YŤoivA EfA +‰Ěy¶Úˇ\[y§‡?Bc©#Vü1_Hé?ŚĺyµŇş†K)<Á\x4ť$ŽňŠnF—Á‰ĐË'„e8Ęe …Á°źaëçhqúüZ¨$żvĹL§D&“Fč±"ŇčpzYń`™I ´Š•aUg1răj×Ŕ…—Ę6;Uw--uQ…&O’kžŢĹ@ďčíq9ÄžG%§<ŠQ>İ*Ć0;Ż×…ᡀ՞5§aŻIxS;h"ŚëÍz´^Ôžź&tö”ŞČŃáŚLí.B|”ňuPĽdu×7‘Ŕ—«tÂ"*ż]هřWĽ0†/ÜŘHľžÇŁ>×kšgýŕHŚ4etŢ%…Xm‘°°Ř:ř@ÓiugM1ŹQ=ďN"ôpŕlY[MoäďÝ©˘ŕU^"„ÍÓiiÍĐX6ĄWžV?a;–j%( a‡ =¦C4ŕQR”{˝®úŢŢYZšąŞ˛«ńbjő§7¦­É“[KĘ»Ú~-ĘWĺ­A‡)q9™»˝ŔGÝ*şČřě);ËŁL1•řLËőe˘Ô ÚSfďËMÇuĘGë˝M•;" Â\Ń?đehsuSdř‰5^„PбŹҶĹCÄpxdWŞ$±MnÎ)_Rő1ă¶=ŞsŃë§ÎĚŔX:–+¬DžÖÖÂ"¸"îĂćuîŚ·Ú ŻÔń4Păť}“¨5ß@W#^U§Dvń„;2sҢ¶Ô­ĽĂaëíI«é†ýA’>>,p¸SPĄ`:©ľí ˇjrAűˇÍ˝2Î}§>ŔČl9dÖ˝™nP\±÷¦ÄXđ‚ł˛×`łŃÖźýc.¤bŮ=d׫ü7‡*Xl˛F_ĽŤqĹĆ@ÝŞßý’Ď6z®d rÁܰ5¸űÜE¤ń0îWŇOşj6+é¤ÚZG9(Ö«)+&Hx<ޤ>3As‰.?É1’éăşm ™q:Ö‹Îu˙Ě*|NőAK.şŔąXŃ)Ť™ íÇ(Co$`ňp‹śünŽG Ű??Ú›r}L©ęIjrw[ˇ€¦k ­ĄČĚV­íďˇsí¨cŔÜęEQSÖšŔbÎ)Ľ\JĚ:Yźv3ÔBS5䓚_\sú?&::ĎŁó9“zęÖšđXűÚ*ÁŤ|»rm/:E’î6¬Wś~GŃIK*÷»đŢű+ËÖXŔÁ475'O%­Q­á~dŚs{Đł·Ň…Ľ>‚PĂnXß9uî˘+˙k/N3¬T‡–dŽůý0sVú.vŰŤÖójSŃB,ŢžˇÇŚJÍe{'tľi \µžYŮś¤]@ţ ő=ÇÁËßě98 DÓ@ŕ4˘N•¨†çęÉ_‰v‰Šî'-yën8#¶°B%˛Î÷ת”ĘĐ× A„öůĂx“†6^L#@ŻäH¤GÇ'I€Í«śô‘Ż_Ŕy™őBŠŻVňŁŻ3:Şřé%5 źęíŤ@‚Ń ÍbÔ©´DV™Ů¨ˇ,űŐQî‚lťT%dÎŁ{ş™ţşçIµę:üő™ąf“”nÄÝ4 ‡¤Âď{vUíóĂÓd…¦Qäţň­Éĺ9ś‡µ < O¨clM”a˛hţŐz[©wĄĐö‘ßú`f$§Ul0ca6źu˛!emŘt­űŐ$âv©Ťäç`Ňsk®…dÜňćÂr§‚îk.ŕ©é™’§ÔĎüPśŁ¦°ěńd㮳ͥĺÂ>P{ş•fVÚÔ…1§»0uÇCÖ2 ľA –şĐŻ€pnÄç6Ő+íŁgÔ= {VÇű©)jaźÎżÚ[6­S˦@ ÖmŁp°x{}÷ ÁŠ,ŔŽÂĄ5fŻ@}%˘+§oWiΛm¶QRVÂÉ$šąGŁŤQyůú)d w»”IąěoR&•ĘßKĽ­„×ó˙Ě.%ĎŚ)¦8Ľŕá°—zú‰Ţ —m†44kí䀻ú5CůyŻ–qřą•_}^„îeW~<5îƎРçčĹÍ,ť·;o°ą^żşĄ çÉŰ–đö5ţ%pő†Ú•ˇü¨xů5T̾ܜÇÝĹđI/%4ŻDFě®Íń#tv Ď·$Ř}éÚoše I4šď<ÂőŘF†ş¬:(Qá)á5N ü$É:pľÓďZׄEÍ…ÎâŠĂɦ0ş ŇBŻş§¶CýĚý„§ňmpşk?ö6 } $ŹI^•4ȵÓ)3.FN`ŘĚ”5€ŔĚč÷˙Ě•.diuŹäT\Ň4Ĺrq‚˛{ö‚ł¬upÁMšźF2Žo eĂŰór?ˇg•¸?AÔşľ„ @YvšRĆŽîüť3~Ű1Ű/rŚ©çĽKń }Ŕ˙őĂgZ™W/)I¦8ČńˇěúŤ=ˇRć›-%Űp…”Tç+ş—äúü¬Ý›Ü)đ«sÂPyŠ\(雏"ŽeÔc§Ű%ó×ÉF~h#¶ű.QąëO´E…ßźľ„GF†‰jŐ·}6łZ›Ę¶$f™"¦Uv©ď±ě¶­ÓL÷ÜÍÝ0ÜłĂGäąAŕy=%ękŢ‚|šň‡=D ‰-a1ŮsĂŃGQFëß锬$ŕV(˝>ŐB×.‡~ÎŹęŰâ~Ż/{-›Yˇp{\Oţ]zň¶óÇ–q2+÷ű“RőYR˘ł˛ŕ^·f<"Ĺ ®tyбĺŤÉŮ‘!îčĹ|=:°ůź;śę™ĘçóŘ®ŇĆě7 ŞA1ő»M7 xť_OÖđdVÚŤáĆšřPíôťÔ·Jś˘Ă^mív=űµTďMuإ‚nÓ€éÄ{&?JĚ1W«V?ĹŮ]ŇĂĺÍ|('ËúäfnĺĐiĐ%ńÖaw-8>‡¬‡[DÚ>Zdď]ą*Ĺa$Ö.H—őoožëIŃŇ1#PŇÓ¶h Gűý¬9XwąŹ§s@ĺ‚䀸ű+ş|Ł„Ç†Ž?{şéëŽĐYÄhGČsV~p÷>W ń52QhËÎř2N/Ąb•3˙ngSMóykNąÔ‡hý×Q­Ó˝§äÍî&ʧy욇}ŕM–ŐcöŃ®Lb-4ôŤ9żŔżÍ † ŢŁńóú„Éš ݬjł`>˵3:Ρ=4‹N˛ ŁU­Łňró6˛I{<`,*f·¸ŹI«ŁÉ™N& ©»3P«i¬Ç‘z>+ŰÓrÜďcŚä{215ťL1ge˙ĄQ-nâ†ę‡Đk}č sAŻ^ŐbX}I1ŁŘ%öaľN“ő ťŤj‘Ĺâ2(ÉO±8.Ď‘8âÎ5…żÎü¸ž·T˙fďŔżßiLDwËĄbh{TţÄ®ŠŔ™…dłkĘď?0ŞŠDĘ“{¶ĺXpµr‚ô3ÍͱƤëč)>Śĺ°b7>tö±ÜĎ÷ČÎѱ”íć ĺI,–+fč|m Eŕił»“ff±Ę•Q8yź!» !ňˇŇĐĐă°kńŤč·ńT™Î 83kŹšČĄRIëĚ ˛…÷f/ŤřÚ÷‡ä„Ô.ž@Ę˝ *~8őăÉL39e7Š#TŹ`9÷”ţ3čś+g„E•ŠaD.˘÷ĹRJá¶Â®÷¤FEßm÷őą2iŻŢŽń8ňĹŃXÖ‚A˝­”ř–…nÉvÓ\ž’ŻW* ’ëk?äĆşłhŞł#Ű{‰pRŐ•ŹŻŚ´?§©]¸Ąv,đĄîWI9ČďD®ă8%Ľ%ż\Ë˝˛*›ŮÉö‡Jö9ßíĹ3Ą¨¬Ěě݉~G•“H{f¦ţ@1mJ{żń×nbť-­—ÝnařfĹ‚o39üXQ×ýBm4—[˛Ľĺ‹Iö9•ńiţú™=Ćőă&kžGkj[Ę)—1Ř揰ŕýŐd)Ž{†âĽśLćpCň~ Ć,DŹxaÖeú%/Ę#€ĺܡk‡ě­ş"…Ě>P(ˇÁŻE›ŠSÔÉaLÎ}Ç ăý¶€­ţ´pČš(Y ´RăűmŬ…ŹńnŞýÔżŞhĚIJŁ6Ô(g=>$$Ş›řBQĽÔ–ň §>T\ýě*Ŕ¨éWSş¬î!…e-Ţ5Ä-Ç"qv›L1m¸6ë¤Ń•‚“(˛/´Co/ýă×O…řŤTµŔLËd^Ś ˛6EćŕbäëfáYftMŃŹ ˘[˙”šK)NzµÎąöŘ ŚaęˇkŹí—=k µ;Ö' +0¸ý˘ÇzŞP˘¦%fąű,Ł[gĎ˙TÎČÎß2]ĚąŹĺ*·đQĚ[Vů€G÷%ÁľÝÎqżŞ{ŕ€©m@ݧĆ28Ôľ`BóŕJ4©íeeľMwžcҲ€šĹŢ ›ĺCéKy.’ŮsńłËŇ…vŇC eçzYmţô$HK C«Ć8čĹÚ{ú5ň9~b»`˘\x–[ Ťô•}µżĹË©ŠśľĄş… $BŐ±§üyk'Űrýq˙ ’:đö¶®]ŔúCŻČŤ_uiżV}장ˎÄm”Źh®f–çćy~šŽçů„\ n8Ý\ŁŰgĆ{ÜW©ŃJżqF2äŚŃ·©ąç5DąŞsám‰2ć\V©´xŻqíąĚ?IGŐY ,¦ˇŕ_ L•߼QUஹ¶8·›}Ďzř;ŇC?9ßǸ°=©?D(ŇÓô0TťÉҸMp+T•l!c˘ŐÜVú–ö`Ë17ť,ÁK¬;1ńď× [ů߲0ý›řz&ńöĘ·OnÉUÍ^ü˝˘P¸“CĘíâĚ0Utč… ű8™Y\4LŤ4v"ą|Na`N×(Ă=Ż™zëŁ×G©€e` ń×&ÉÇźźĆËtĂ”®śęscĚ·íělkhjšÚ˛žÔ%•ť”âöŁ)WX,ч;{ ľŠíý]W5Zčůe*ś¶1UíXHÚ˙Bl66mXˇČd~76ÓGŔćzťĐ6éZĚ5=4Rĺ'§4ŰŁZ߯ÍçňUřôĆeÁ{‡íÁ†ŕ^_}8¬ď>Y?Ď’ţŁK]N)Ä$` sVŻ,xĽ?ÇĺZ­\ŚĽäĂś_“X.Yš=ůS`×ĎŮąj„J%µ]űRąňîÖ–<É»ę÷GőYâ,‰ýn`ÎSA1NăÝlŘĎí&Ţ Ť0ÓjföQ5°Ĺsbc0/qCĄľŁ…Ľ¬QęNůźĺ)×Đźč˛ăÇXŰp/9]ń¨cÖ0sË 3/­H⌷śľŚr“YXÝż§Čéô‚˝>EíáVÔ-«^NnťţŽÉĺ0-“¦`"zTíÎGtŔ:Męď§W É ĂŕZxŤŠ»V0wiµÜ §28ĺŰNAŻ€°zßË0Ú޵pDĽZÚ~¶­ňhÁÝ”ŕ(Ţćú¦%ŇĘŻŰč;ń†Űxă°·jĘ/.P—ŁF(w.©Gŕgß?E ˝ÍŔŇË~Č6…{ý;ÚU˛éI—~ŇŮ<ŁKOxî7n¬çm׎—ö"wîżćřsÜÝ«%w˙H ‹ ˇĄÜwä/ŻWŕl«ëNäaş*'I­ŻÎ±~¤$¨ş÷@©±›aHł“UîI­@–Ň]OM‚šYt Ë[§-r˘ýzŽ…Ü ď8!éŔ4>ŮČQÚĄŚV¸#dŁlŇőµő€çŹ÷€uC¤ ÷\rĂÚH…VĹěa_ruhÇ,ł]Jß´˘]ťđ×»r(j’¦/a Ś€řµ]‡łoΆŞCúo««ů|Vć3-–Ě{i¶Č®z:ν!†w·§1›z§ Ţëý`iěxošî¨\č+c­Č#hďçżšDĐh=qm:5ęI8}ETuŃěŢ\Úß6±ň’ b=zăł1Óc‰H׮зe4˙P€ÍůČü‘ˇ]GHŃb3a>ľz†J–B˛ň™Ř ¸ĐNÍfĺK·ŞůICťßĘ?–U şÍ‹ł ěř0ÍLs´öĂŐˇ‰«p·B‘$ę;Ozř©\R·†€ö޶?8”¬¦÷2îÜ"Şk"˙0j Xę‘q;޸ŞQr9WŃl´Ő(\Těn¨fLWďAŃ!ů.ŻŇ ›ńŇ.Bí4’şsâ&^Ă6 mÁ—âűu:îÔÂ=ähŹöëŮń&6ąTżĎ*Ń\§ż˙ţrndHŚćâ3Mžâ˘ŕ^8.phćŁü,~s«h˝PŃoĘ÷r٬Vu\®Öđ#¨Ď;Ő pĎ[DŮ·N÷«ŞĽŔĹ}źµ¶E¶˛$Žëlť2uGnÉNM3U[š|‡ęGš…­7S­}Ś›kĐĘ<óá52ăë;üä©iôyř1Á«›Ę} ]±ÂU•Żdť%Ů’Ň8’ʵ-,Ą(şă8ľř4•ţaÚü ř¶čţÚ=!cŁo cěsŻŽěűďÔ‹¦~ŤGľ0‚ ńgfŻç/ĆCŻQ«§ŐĽ„ާţÍbÉM­›L¶u1 §—¬6±ćPG/¨¬ADJ^&Űq‰GUXeX>fQaÓ!=MéřzÝL‚á†14ËmDójË"Ú›µrçĆ7Ĺ˙ęťîܧr[k%Ě˙2D©Z9¤żű™–×_y˝–&·ÚR•Í?o-ŠhÇq-k`$č§ ŞţdÇNB/ĐÂ-‘THľźr”'Â(e·ěmlă"ăˇÂ€”†u`Ô)áÔčcSŹpkł°TĐóĎuz]{ym?đrë5,ëÍdČÁpęđ $XČ!üŕŻâúĎ’])Óú‡™ş.Ş˘Fś‘vNÝE줲Y;«y`Őť¦Źh…Xŵ ˛Uşí †DÝůŢ)Ä+Ě2˘­~˘RB­nm/áüřÁź-…×ÍţËđ »–\;đˇă˛r°!#'u)»µbjÓŞă®ŃJ)››5&„Šśg±&¨AÝŁSĽ˙Ô˝řÖâYń†IüÎo Ćn Q"˛K!żU±+}ˇQtA$¸Äţ•jćÇ|ý>OÜĺ»$ |LT\±¦•Ťő¬’…a’Rz„ĹżÁzVX3L}”ťEµmkBO‡6ď8”% AJź+_P„›äŤd"gŁŃÉ Ďx˝ őŘ]›FzM— †«‹‹PŻëŰ ZĽÁUZůeꦗ_Ĺx1ňűĄ±…DĚĚ?˝µÖăŮzr©6÷*{Î|üiŢi}ˇŹj:â:­3Ëç Nü<Ü·lý—ʦÚZq#1·Eńµ¬Ö§ĺ$ŔߥUĆčŤSÜőŐg¶đ{W‚ŔďŁ÷ůŞŻţ‘9¦śŻtäĘv_÷h8!K”çi •[˝ż¨J\]ŕiß}ŠżšW_!×}Ôsô6Š`®´Ĺ€]¨ËcYɵ‘Qiűą­Gęl쨼żßýur.łC?źSűőʧŹćíô9Á˙UÉ3YʢŇęśW”ĂfőÝNő`7ű[UW6UÓr‡ç˝b—1(ą…ećŽďxv;30~§I ľ¸%Ô—Ć_j¶w¨2č´MýţQŹyq•oźFfgV´Č`0?ţ–ľĽ@ąĎąŻË¸tŕ{ĚĚ?!6nŮÝ@#.dĂ ľ2Ž„?‹ľY`ýńŇ]Ö]NÖŔjPÖnŢř•-ÁD8ţř•#SÜWŻ W/ ł÷Ś÷ń‘Ď\a\ÔŰĐ{ T>…˘b3żžżÉńV«!}ýSňJΡga€J.ORçM8őśţ5L» 4bNĎ`Č—­ű⏞\–QftČ"©2Bň·pl9‰V+ęzš+}ÝŹUą®OÝ­`%Żpn*ňŚÁź†ł•ĽW7”©Óü÷%źWš¨3ů' IÎҤň*üí=ó;ňŻń÷tŇú·v‘·Jŕ#rç8´ĘĹ1fŞú63±<Őďźjđăfc$DPá«ěbhŰđ9°Z®S; âčˇd6u†OÎQŻ”Ťü ]Ę›¬çڦűF$"‰zříZ”ŃL/Ýg8UXINoYx±,t?E‘Ă&FŮ)Iç4÷öJpX=ćBÁCĐkwVnĽţěťńśbóâ˙qň|ý5ř#9`h·Lň ‚9®j.ę+r2Ň]‘fÉÝĆaŢxŮG 4ńń!i×$çŁAöG$N¨ß€ÓCú®bs4+z(ÓgZË,iż!V¤ć„BO™ę“°¶¤ŹjëŘĂĆ*ŇGa5çˇ&V#¶,ŐfP x.Ë-W.Š„Łş77ň›…QŮżî×I2ö(4\ąωÚVŘmµĽ¬F…Zđ:pŰ8KvţڤµvŐŘ&cÓ},Fhé-Ţ9ČÓći.ÜAa„@Ý|źwă˛M0˝ú\ż•#CÓĚJwÔĚ1‡ąńŔ‰ő±°kµÍ{őÍ^XWS••$z®±>ŘE.9MDµŇ‘S†ň}Í_ćT¦%ÎÓG^‘¬VĽÚ?>˝4ăىű˙Xe˙•ŕŮË˙жSiťÜZ–˝]·OHŤÍ€ą„Ĺ€N‚MKň¨Ű _};öŠfÁ -Kźë‡Únŕ¶RÔP@xó7[Şh5ĺ‡)ßřź,Đ ®ľŮ…Ň|€ĆKć.„Řk kdw'Č•ój3 —Ţ4ŃöÉwŤëŇ`ľ‘·z˘B”6p ĹűţšŐG+‰äwŹü“śO Ý{Y·}ŕČ žĎ>’¤š‰Ę7¬\ë‘)>¤Ą¶é˙¸”ŻîÉi7ŁŘPN왨K2M -€­ř¤m÷]•#Ý>LłH”Űmš|X_ç;rů߇íÎ…Ó}z˙lÎÂąŞ­¬é¤ŘĐSś÷çDäá(Ú“¦î{RŚúÝvEŞç’ßp¶–‘°ŠÔ·'şÄäŃZX8»ž3ńľ2Yç`•29=Ąt ĹöËď›(¤úZ˘7ýʍ:0m.fŘÂßVűa›R—źçIśĚKű;ş)ŁöuŮřž˘ÁzॎňĹČ`"-Í9˙,% ¶Qj°…®aÎa†ďŁÜi Gä™7 öH¬ÍH:šáŘĘE_eKů˝Ę&m®b†íBŐŔổ:u`ß1çi;fx±Öż)9V)YđŢ€^©ăýa0pÇ_; hGJq©(;(R⌆ýžŐH†aĘء(1ŰŤŮ 3• í|švÔđź¨ĎŽôxQYŠ„^P]JÂża!Ö ˛â‘¬Ěńןé­µHÝă2ÂĐĄµ® 4FQ5ö¦TÉÔŕľ6źv'č·Ű*aۆťŘeECá°ÁÖ (÷Ć·ĺěcëÁćGí"®Ň–´^v–‘«łR´ĺ›ŢQ“ek/̰~Ż™6íý?Ĺ7ÂnâOdĐU·yt×ä“eqŐ‘NÇé’p›gťl±­Ů4†9Y:ĘYůzPďVC‘ł5őSĹ}DkJnŞ'ÍETZişÉö)Fş_ ezg‘žš#Ç=ô â·•@|‡ýŰ9™™Č¦ jh†ý˝ ”<ÍN~4×"ßŰÇĹ’s>ŘLé ĘüT’dŞé­4ŤçońŻpÜaĺMňj—˝+ŔՀ݋ú]ýˇĽę}§ŢěéĆÖ5ęNŁăcČgt~‡ĹŃ_g`Ů­„7Âŕ^LuđĘ ŽëÓnôőyi‘ŕšÓŐ~đµ»÷‰čE⢏pÄ‹HŢüŰö5´ó;kŽ,ssß#”éÓƵč˙÷µ‘ŽÔd‰ęů7±č,o™CĂňÁŇUň>¨vć…Ýo ·MÄŹ«űGő><‡ŐĎ+ł!*.°áiͤdpß·ó¬#¬ 6˙ÔÄ+›Łvš7ŘśłRYÔ˝ć6 Ă,ŮJg+,Č=Á§őĽX‚Eçś°ć“Ó €t©y‘eUX)ZZüĺ×,o^/âHĆw2Á)Ąýr©‹ú, CY@d”lĺżsâ;ÉaC}6–ÓD^č÷u—bé*üŹŇ/ćŤIÝj×7”âŐ¨[v˛!bś‹­ž¤‡§ź°‰’ŐčÚč‡DÉĆIoąČ$óD¨D ‡j`¦o Đj)_…ž–Äosř‹öÖ íłű\¶<¸4OŢTć1őWŇcŃMy3‰ ĺč]ÎűŢ;–ć}˝kčó¶lUÎÔÝŰ)řß7 7„Gś}¤űúDâ:8]k櫆’ŞXěçţĎvçk6ËIĆ? ]Hç»c(Ń5 ün2}Ň×µ0jś)ÜóBÚYФ%łéNĎ3ß&3{‘CŕŞi,ŢšćRʤ?üŞ€Vý¸Ň”đ¦çQm3‚ĐĄ!Y”ęŔ„šP;ľčÇY =A:ÝĆK@“×» n®BIż“LĎâăßµ«,‚wµ;±™žéŇżs°q[Eów÷f7jMśäéîÖ~QóŞD«S—2Ćn‚á\<ąI§Ľť8¬i1Xą­1/ľ÷i]I4cËŰníeÖĹŚţţĺAâ#Ő#Ďé.ĚÚäJ•…ë¶s”;ŕę-•tĺöVXTÎŘÜŰ«Väăá˘ŢĹćÍw^ö]C»2IQ QďäÚ¦úÇJąŠšđ* KG!ćî5[‹/†¦(‹á°űëŔ\¶dÎť‘Hu „J,_;Őń°HˇíÓßkÎ^¸˙őgÔJjÂD·Sžx@Üęzr ý|éQ#›ŕř8G”j´ˇÄ%÷ÎY€ĎŞĺ'ÍpfţşvH,ÄSÂ(µy SĆföNŞKu¤H0ĽnB}¸~sx“ n+“d ĘOqm˝mgĺÁĘxGjl•b`qxbEîçČłĆZ®ůü5ŕŔ[µĹU--Qr¸0›Ú'Ő­ 5k™ ç~˛A窬úÎŧZh˛%gJÉěfx»7ëZ Î0ą¶»‹–„as©^o°tĺ!Ş&ORbĚő89Vö­I<ÚřP÷¦E=ŢË f+˘Ý†P™ó…› A6ľČŤ&ľ4WPŘ~VĄÂ I,ă´…Jr*§d#?hÔ0“!GŚř°Ć}UĽ]bé+ ”ě#VúAfćo^;—”$ö_©Ý…m!ąńŰb€á×ői\őçW»_ŤM&ăüăúŹ-ŐNkĘęčj?Ň×?5ŃĆIř<ű ő;·W€ďşŔ–lL  ¶ÎŐ~ Â’ójç>Ź8y¸Y¬č*Ć$ËĹÖ•Pý•J*µz™Ţ2ű7Jô.Ä™{–^˝ČÓ?Ë:Dú¸9ľ3$"'ŠěŔ¸ňĚ»E)TαÉŰBťŃ‚ĆÔ?ŁA(óKn ęvë†61°­Çşńëtĺá&OKĂCŕŚěČ5Ś‚%‘+.3Đrš4Ŕä×â–µMüźή€4(Ą×ľé)ˇ9żřŤé¸±ßú›ĘfÂcć·Ę \0Ł7˛•ä>»ş:ţQtcČhjś.páłV§© šůČň ßuě{Şź©‡€IJvľ>˘•H2OśLÍië 8‹ó,%)üěs/Wѱ•‹'Úýó1˘ Ä$‚…Űv żę$ŰĹőoţ‡BɰŇčţôŽMľ»DśXÖňN2¨)"„ë#bxä Cű~ˇÓ¤ŽVwÜLčŻó÷Ô%™ŔŻÍłluâ©%ż˙ŐZĆó4)íĹ2bż°Ă×éuŃP~öZ€áz^%¸ŇŘ">·˘Ů!UĽĐ¸Ľ; Kki4Fý‘×Áýú‹‘-,˘ű–0ÝóČşą”łlĘ˝&9‹c)#Ł|ʦq#+;z¬#e+x_ l{i§Şŕ6ŠůŮ4myŤŢJ 4R”‰ŇŻi31ź—ljLĺ€ĺjQém嵬‰6†!ş^ľ–Â*Sé{ÔŞ"ŠG’%Ó`™«ŘCH^c‚`~őőáXZ± Ş˛Ţś­ß4“ř 1ᨓFlz­Ą†.’—u ŚËKă(0Ƭr.xŇ%N‡˘ÔŰčâÂYÇďZ¦ć<")ËβB¦K;.­őˇtĆhäsµ\ŽRÓî)? !Âű«yśNýĹ[”öŘ4Ń$ďaá.ŽłáW¦ßéćÜVśˇüś3IkłG=y"ËÓĆvWw¬Hé[µçýůE\Ů8Ňb›–aí ţ­”łn˘Ü×ÓŁO“+TLfÁ-`ňĄŇ<‚Šl´Ű:ęŻĺ ·śküĄčđß•+„›u}Öâ”ŕb“|&‘K°Ź^ąĆA!ĺŢbé»Í? Ř‹úÚ‘ř=ĺ •ÓDuţ§bŢ>äL·hű„Ű«óí^tŁßx%0‚UÂíJpÓęhJ€ţň­S.ż“ľPPđŕ[9éşS2węâ}ŞPýëÂ}jGg˘[ă]ç4Ĺ.óBz;Í7ZW›DoŐłÖěşµü¸®jbž1Ř€Ŕ­ăXW–c7š#6ŚwײĚ8ŔrĽ|=8@Ě/˛đ§Ň…—l.ďŽĺ˛Ý´(°ë@ĐÁ˝Ł!|»„C“8Q N ‘[ńůň–ň„VKü,#ţÄú&łä}+žŠ\3*ÇëĐZިf:ĄÉ¨µ?x( Xhô›ŰźKm™É>üţ±¤I»?ŕS&Ňl÷ÂąÓęÁS ¦%)Ő+1vđ ëvĐ=^Ş5Áš ˘Ą@= jĚ\íí»4ż±ué0!Á š\• Őž ’JčŰŢđÎřTž®Çlü$Źrď@„.ätf]ë(Ńň%ĐÍŔDÍŠźĄC2‘ndÔó9?hi_«:(V˘ľĽ¶qmÍSŇżăcA+±ÎđťłşÉ#UJÔ#†€y‹Ü¬aH?±ĺŕ‘Ľuäu¨¤š’ń˙•Ž4î2=RäxŽcŔ×Ă˙5T¶ wŮ“Z¸N»Ě¤Ŕźůz$ÜŘç>ďŹĐ#ťŹ6x¨yLIa¤Ęą·•§ĺ*Ţ–ă®¶L{7^1 Óă¬á8D%’wž<Šž@q&ŮÄł_‘„öôTä‘Ĺ˙Y;ˇä9gYéłCpĄŔíŇq4Ĺ#mô7„ĹÖŇ»Ç;Ä].ăó|q.cS>¨>–¸Â•^i;Úé뛉Pg¦-3…őUtĄE»»«ęŻ0nďuń-/ç<µŁ|U y'î5@^˘2ęíŁĄ#Ůb°’, x ŻKHÇ;D˘_Ť#W$çáR#;Ám7ÄŤż›lŚ4Ł˙÷Jtü|Mű‘ˇţ$›Ăq§@˛~.QŘĚÁLëvE*ő ÇŽ˛h+đÝŃIµîNr—ŽÜŚëŰvąH=Ú~ĂčU"H–O†7J}jŕOÄŘ íVQ‰ĂÉóÜ:ë!`ŇĆ{âz}í]§ěR‚DGaő¨ĽJ ç3ktH„ą`i+ő~âzYóĎ%#{f„çő4ĄEmZý…VĽôKä8e›t·÷%÷ÖŕI›yĺ˘í>ăÔpĆC ë&yć:ő™(a2O߀aölÖóËâ°/Č|"¬Ńf}F:ĄZPWÂŤů˝Ôţ5ôc.ßÓ-Ť}SN(BbÂ÷Ľź …/CJ˛Áő7©řýcŚ}bBެÚ/úÔs·¶NÓĂđL3鵝šđ_%·řeÝ:źÍp €l!F{·>GĚĺK6µl™`ťő\jöKÝěŽR”FŚřĘÍ9@L©ř^‰SâT©ň•hg—DĎÔâ<­qŐčˇÚDÔß$1+CAJ«Áě:ŇOĐ>ż…˝BîßęG–Ĺ7 "R«oCV•=")ď?ć`ŢÁ›SCk5CĎxBJ ăÜĆ“”?±-2ľrŐO„ádą­ńu{ob%Ş=b<¬Đőš° ązşc™?Ź•ń DĂÍ”d&TŔ3`oGÓô%ŹÂ8f>fůb§äPĎÁ•›é˘ˇmǢ’ă˛u/@x)Fź‘+ĂşŮU…N¬­Ő6GjaÉÖÉ9›M`,gcWsÂ))ŃÎXŻť¦UŠ9e1Óx ňĐr˛OôP!ĺ8PwŃž%±FŁł´ícşÚM‘Cävs WpbhôţĂĆ]C•†ű©iKEöÄ„#€óhĽIá‚ÄÚFÁ>„‚@Âú>6ç393e*Ň‚‘¬xÔ ÷˘ÁŐˇľôŢRYa†´4 `MźĆ<6 Äű™]C+(şŃ’:§Ě˙úŐWH…JdÉ´ć&gyŔŞ•˝Şsé#ú&„a}'ÂW˝®aNŁBłĘ?đ®»B%…aÓŃZ?”R¦©Fk&7<il @ŇEďniĺ ŚNÎŐÜúţ‘OޤhÍb™–qOŰe &ű@GňS]úëţNŔ=;-Ąń*f5˘Ăđäe˙ &Ĺ"á ëF$\ˇóçwÝś:yŚÖ±ŹhZ-ô"I¤Čú—DďjŐ*hńmöűI289BM^8űü—îjoéjˇ‚Ö¤ 8ęçf÷2ßŕ‚ö@ŐĺęJ·T`ëqógÎ#<ĎlX8śhąĘ±z˛°kĺŔĘ ł—ĺ ?ŮOŞí¶¤=Ů2ŠĐĂ#łűŮOY«Ő¤źeĄźţÓ BĘŮçtßőĹŕÄÁ$I×ý6ś{nh2cŕqÍÄ>ů JĂî#L˛ĐďžZÝ5Ź »‰=J±,[0ňŤlOPĺ1˛-ňD|©ű`č‹|łáO­¤aő9U˙PP–©5ęšh¤u5äÁ °ś¤mü|…˘˛ťĶaM]l0­mqĺ Hc‚d«EO#§ŽőžżňţŹ×|ÉGşÔŠIÓ„íń‡Ô.CVĽäÜu'‡(Łw™„ęj4Kć$ű} ÍŚrîr“ë»uRđź…6ÇW'řx„Bý›™ˇČqţfęt-HöŽsEěWf]ť:Üç»v¶Î~˝ÁTv+cĐă°E4Lqj'nłąŮ)ľ”îZcę(÷ËoýĎY`šđ–l ÔମłQ±RPgĎEt z– ÓÓ+Ux]ďĚ÷G…±i‚ĽžA絤ü¨POt×drěDű×.ˇÇ éZŤ¤ş-‡ř´'JW± ĺ[m{óÓˇ©Ď5ÜWÂt#¤µ'űŹę'.SK^úţP)ŃóďvŚ7ÂDµ{ĐçWš]}–»č1sÎtotÝšěňŹ.ť ĹDÉ]ĺŁiá–ăeôş¦DRŔҧ:ţhAí1٬Ňék7M{6®K^Kܡ)B„>ŕUKĄÍˇěXVI¬éżÍ‚ŕ‹;‡CÜ9îMđFă`őµgq¶Ňi¬í;WťŰ‰]!,Xy[‘‘ŻdŽ›I O()őjG5J“j­×Ż,Ę,°”y“qy»ŃN°ĹÜĚUyŞĆ‡"]ú<÷"‰Ë@9’Ä’*źĂ@ľp8nP–CĹdŞ X´¦Ć§ĘţąÇ/ÓGˇmľńŃÎÝWKµ)ôK€ŕÇžf?H9‘=mł¤2U#Ó[ąŃÓ»uŇY濪iRö'Â5°ćqtÝ›ťîűśk8,đč‰ĘÇaŕÁZN@®˘˛Ö2LÄ™ĂA¬^yŢS¤®Đ¤•ě7ë˛á‰\p¦ą6Ó”÷Qš CÁĂ|ťŃ…asaC¨"qŢ×é?[ő0µFő¬2 Áţň„ ”Ą˝®@jďÚ•'3 îżç4!ÄΫLśńý8@üĐTňŮVĐ%°|2¨9ÝČ_˝1™tîL/¬‘.µŽ ;öč=Ň]űýňá cO©™ńé…}ş1¤D‘Wű@’EĎÍĺćH͆ę¨-/óRYCś¦lUŇrkot0ź:×6F6}r PńË߄߯šĹßÚťqĐAĎdWGż`ĂL×ëĂbŔFâ3˝ź.7‚JÇĎü˝Ľ Ń6 ú¤năf+ßšĘ!5®ĚŮ\ťČ‚cÜ3ô*?‡áĆÜF§奂x¦“Î5˛aőč“IGrśuCŰčCÔËĄ™äőĽź+aö^0·Ťâ‰âRŇ?ˇ–ľŽ­ĂdeKý™ŢÂg.ŕCŠ„B¶·xxóÝéí/gĘ«Ë㡼p«Ć˝™UiL‘Çź‡ŕíüŕs–~Vó.~|›p™“` sÄ;É÷0»ši¤Y9·ö™˙‘ÜÜVIQÔčN”ăsî…„ŚÖÔą©żq1ÍnGM˛±ÉŁF á°€¶ĂŚ®)« MůľŹ{…¬sy­w˛KHi>K?áᆶ¶†Ců«‚} ł*8…D¬›lŞ[Χ*”éf ŕŚ|?齸}5ôiŇBs}•¬XШQaM10Ǩ˘˝Ťą“o&FڑւŘcÖ(ž3ĹZžČ‚ĺµőa }x$ŁÁź@Z„đî˙ACR<@ĘÖ;Jý^î„ë2ø~›QF,/HäEĚAeĄ#I3Ő%eđ>Zc×]‡ŇĘ+›Mô‹6ăíH űPVĽ,`zťcąĄż,ĹçkÝđ` Ă şňKËßÜőz÷ú¶§FnJżMeo2”ˇîľžé©Ó›€jířEa7"MČNęϲg^íĄÉءZN<ăŃŢ4ÉśˇBÁ‰+Ď DS6xşl܆Űt)Đ).YbGQĎč č'7ssôLYź˛[±4 ě!AVíÉc co#Y©ęS0Ń6 őmĆx•ëÔQş{ŐĽ÷‹iłř’ţŮŮE¶X‡6Yo†'U60SDÍ5AĐt‡ŽtwÂdčÖKŚk|TČŘĆÇC-żc¸Q‡’ŔHżĆšdůéĽ )V)Zý߬śAaÜ(Č„˛L—ßO`*˝¬ÍŚĽ(ž‰ßÇ(®Ď%P폽=ĂźťËîĺ"ÁŠ$۸ޯ1“§×yą+ú+¦^˙ÉŚ—R% 5'šÜĹŃdT˙\Őč×FNt"Žt„ż¶őÎźZçϧa’®ä'iAŢĄÖ =žăđ¦)ő‘˙¦P5Ď G;ĽZ2KđÂcŚŰý\¶~Úźb\ĺË1üĹá+˙p¸ę˙G±äŐăžü„•űp;¬Zt|ť/Úşťä ®ľ\#cuîújčŇŞÚ‹7‡ňbOÍߌîż(!¨.c¦X’\¨ă—Ëł2R`»¨Ď÷Ć™a řT‰–`˙–ľĂ5sRÉËO˝ˇ1ë.Tm#=?ĐÔőÂÎ Ă ś55đ ÝuůeŰ[m[ň~ŤÍąť™ě1hT]úÍg”Ň WÖŔZz˙ĂTáŠ$ĚÚ8Áȇl*aýĹ”ű–ÍTg~V€,˘j\·XtÍ$J1ţ(ëUQq˙‘‹°ŞB*yهΫL,łytްČüNFţlDÜ®®‹}z˛šF#{Fĺ⛡›¨ŞbáŔ%Ž1«źDŐ9ĄÇ„1işny®1ŽWĘ)AŻĚÓž¨ń{ĹsÁ%.T–˙@OlĘÚęî ó‡›ĎJ E„ĺ±qü1öÚgZĽu㋉Jo%]Nśo{§e3j/Ę&T'†Ó°źŻMž$[˛ąö7GQ5Č‚ť¸E¦4čďvÄřAc΄ějoF řú=^ ®$0đF“ĎpŚĺĚvÇó‘· 'Ăâ»ÄL'ô‘±ŞŘ1âŐIWA@8d˝şy‰śÚWăš/Ô6îzIŹî:ş€ "u˛éĂAł bJ^)Ä™‚Ĺ/`w3Â,¸ŃYE@$ëÝÝ>±z˘nú±kgÔn4›K®­ą‰äj, %¨iÜ,)§Á4‘5W•Ú–SÄÚŇ^¨¸$T`ăާcs“LŔĚh±OŁpŻ·­HŐÄŕgDéYŁßů_Ҥlq?»CÔţ´Ń5ľŁÍn_Ľş )=˘ËRü›}™MşťďagqÉrqŃVöwZuđ,ă6yäWFcO÷ďm.˙$sržX´š¶- cüü霢Ĺ[j‘žíŮRËv#Ŕ.&µ Ĺ/nńő&ľ˘2˙cĆÍUŠ_( Hb÷ßňţęśţ`H׋†ôÜŞf1ţţâĘdĂY<ÖĐyˇu±ńaĆrîŹsëvěĚ—ü¨Ű*‘ć`;×ëčl¸3-P [IŃK™ĺ ŮŤäâ' śĺŃţPĺ8Ç6baęóČŮŽű—ż­L= dF <Ď–ĹĚęŚŕ‡IËů?j ÇŢGľ.ł×ÔT‹ăN3ë0‚~ŔÝ(?91d/[ڶ”·S[ëCČšČQÁĄö C6ŃVü0xł¬á ýZ2¸ýw5ŠP…-§áťáÓ»ňďś–łço*2„‘ŤîµŹ†i™8ꊔ·ÂńŃa÷cř Ů·tşżŹm9€Ë §ęˇşg·Š‘xŞńjW\Çx3ÝŞE}ŕ6ÝXÄVY• Č<}m‘ ·Ţŕő,…ă¤- Dm[a‡Ő’ŽgÖ«•ut* 2öů=ĺV€‡\¶=‘b™=Ížö‚uiZS\ƶ},ĂÇ‹ ˛ŢN™mÖ«¶‚zŃÉ»÷NŔĹLFóWßŰ2M.>¬®Q̰t÷9gv^Ęęč7Ëř¸)_{«3I‹čĐő™†Áid{ÁŞTXŁűÖšµĆSCý'QEQ°ńßŞË ÜSšcß˝žh‹]ľ‚îa<ő|L+B±a^—”Ô®<NnávqW‘äU`®%yvąĄoŢ[+¶{\1ě–ľ…ržŔ­Îýü…µnßŰë+±jPć*—„ĚÖóvŠ"n3´,‡'ý™¤Î>Ô;”ś©\w{MÂÔšDÉ ¶2ӾΎśËxIiCŔņ‘˝KďĺŐĘúCB‡ń˝`–}I0`óć¦ČXć69ĆO9Q:nµ°š—đę8cěÔhÇGŹ]vZŔÔfaD6nF!Z˙ő —o,R4®NńîţQOŞv·%]“šYĎš‘-DÇixy¬Ű™‚ţńw ŁĐÔÔMŔĚă`ęBˇOŤkŠ"Ż/ŇfšP튶î©Ö±Š” čz3ČZDčŘ–÷Ô yA)úĺŐ!‹>ă_03łéXRĺąuODťPCb2Ď]šĽ‡şáŽ/ işÂ¤d˘Ôą¶ŰŰĎ»Ń ÂĆś[ńŽËó;uÁŐż6ŮÖ!ڰB Ď™ĂSĂsžÍŤ—UÂ,¶bČٱ„čŃ«¤v˝Ç'ł!Xw"š‚÷3Ă}4,Ô%%{eq^˛;fčá€ÁdĂî(Ę:÷î€ÎŠŤ†2Č»S¸h˛Ţ<ŇVČČNć»!JNWH zÓNĆůKç(Oě'Řę!•ŃzŢ*ÇńHćVDšśw¶ ¶JX—€Ă˛­v.·ůi€† "­mAx§¦čˇ¤--h‹śYú®ŚVěß©Ŕ‘®ZĆQdŮőŢi|Ż˝ěŚ&?‚V̡ ďJú/">äÜŇ`Đ“SĆ&‰ÉţĐ9XđŚ6ţß®©1' ůi(_!¶Ť s$|˛˝)C•Ąş¦“#¨ó Ďš>.wß:;ËGu‡[}ę&—Iú°7Âě ‰}]Mý•6Ŕ(î’Ók2©S5ťxŮUÖ´/ŁfUŃr§—†]G ‰A<™łŁwüö†"#y™ŻŤOaËškňLóA–’űďŢކM'+ë˙Ŕ|Lm5µą„˘ŕ‰ŞAÇ.'Ů4±őj’:˘ľŇqF¸3­ulÖčµĺcFg`†fŇ©oÄĺ|lĽŽrWLAšŻDDHŰô§Í>P,;–eY|¨Îí2[9&Ő‚§ˇ>]_’ŰÂŽc#ě"451Oö°ˇz¦Űz§ÜßôÚ;Żyn’$%Ň«'( »ˇ$©'M­N–ď—>jšVž–‡8p^÷Ům}1 2+ĽI×’kTJ¸t –ŞtŤ2ęKׄ$‡Mäő¶©Äg*=᨟éűݬrÝ&ŻRBa·[ĺÇ D9ĎOCJr€ÎmßkQ"źż©ňŔݵ'6[( ęČ­ťĽ÷°iWxGTž= Á&ě$G9[a>Ö 8mďSKp?iˇ7 ˛hĄףn-­¶™®<+‡¨OČkaÝ´§ě§bí ‰Şp ÜÓ„NȢtÍ„śÉxYščVËyrŢŻSJˇ5JŰ剉Ŕ3ßBQ6§µőÚ/ŘŐ™ę‹;;qBáůťŤ4Ż,>S>öDđ]îÍmź ‡®ŮbŃ9áoľč9_›Ć̰­ß6s±Ů,÷Ľ%`oFh] Ňfď`ăÄUx‹<¤»|‰NßÓ« Í@V=f@®ż ]gýÓţđťËĽ Ş×&_oŽş¨Ś%Ҷ€‡ŇA^ô<slVżt×moçâű­ü•|nGĚñ~©©B”¸LmĎÝäđ›cşŐ¶Ň{ó¦ÎĹëçśęŠ×‰şřŚĺ“'ü7¨•Ě;e$Äp®ž\ž›iÁ“vÂgňO,-Ä3ĂżĺSjnÓ%¦QčĐ˝xűť%ópűĺFý©Ő{^ĆşmvOL—Ď-ţ C>y0ěEó3K 7Ď?Čnľg[vđ‚XżŽ‘Ř2¤‰Âő> Ă÷z¶y´zq«pü‹FÇć,Á8K¶• ]µ­žčL]$r¸ĘŞáűe0+§ BŤfÄ›2w‹ČÂÂ&őÔÓo¬`Ţ_µA)01\+×/·Ď‹R*mß„ÇkűŇ}wc$ł­úîDŐ’+µőŰą?â9Ç™´îAň='4EËVŮßŘ2ĽJäy®˙=‚>°„oÜ™ÎÂťń`÷™zšI6 wQв̡đ8H0­âťâY±:†·>qżřŇx°7»§Č0g?Ş>itKÁ^@fĎťDÖŘÎQ»`”[ąq`WoëDŘÚÚđm*.Ł6Ť¬•łÁ»€©¨!ö5NĶŰČÚGtą:âĹ]\(őÍAJŻ#o?ţ›†1 Łç™Xľĺľ’ŤÂCä]ŹK%ús•ÜvŁÝ*™}|Ź‘ž Ô›ž­•ą+óŁĎHByVLŔ/ĐNÍP¸TöŠzs-13Lyn5ž–â6%–™–Ęěo·át†®/ŃýˇÎďă{‡’cţ.ź;2ŕŮ‹¤‹˛¤Žg#ÄóóÂÇň*pŠ SŘÚź/ś_ˇĽéú§4ŐLöt\+áć·Ţ˘’[Q±ľ°ćꯔëŤĂz!Ę’ !_Pë[ŹÁ˝*čµWşy“‘ZŃ řĽ¸ĚhăŔöV ™Ŕ]=Sß´Y8~…k‹ěp…_Ýa»6Ądjl9޸‚6˙úlăŁď}Ó-Źč«Ü†äç·Éč\©ILádß¶íř;˝ 4ÝČҦSö ŔĐ@Dęc†/qđ[›V#˝'`ř3=rG¤—)´+’Ś=8?sŔň[uđ–NdĆ\ČźëŚVĘŃëÚ×%FŇD1T…}ŕňÝ‹®n±°Ž˘°“ÓÁ߆Ë×ŃboA>C‰éĎôŠ5łëC +ą·ż‹žť¶HM˙–aNBE—•Î|%D Z#źŃüÜŹĺmc§6pGę¶řĄ;ůŰ;2ŰÇÇeôÁGărú“ZŮ”\„ _Ň»H´Ň/ćÄšs×!ťwEúi ¬>YĹUA0Łď÷ )Í †`BśÖŹ÷÷ßýĘ—UÚLß׬ÄŰĺM+M"Ę]»p?¤j“˛ ^řÎúţ'|Ě5é› NM­&:Ř—3öGú ¬“…gőć¤>-ÁĂŮÎOXşĎ»:¦N ŁÝâŘn’s<ü;ëŃ:] ľďÚŢ®şÜʆľU%&Őń5Äć°ŕEą"‡_úx[ĄÍ¦˛©…śŇ€Á–64†c¬ŘrĺŃí•â° Ů<˝mv˝|Z‚ű»{YXýęlßc$çúྫФ’ o)ĺcWPš1Ä–Էţ -°ŚĘoŞbŮľĐęFtü'kď‘/V‘ĺř¦Á%qAŽ•Ü}ËBöqľ¶BC¨ÚÔń‹(Ęi7ĦFĆܶ|(.‰şTĄßů3đŇŽr“źôźÍZg<(PS§Ü ÎmC*}ç…nßÓ<çă†+ůŕŻ<`SFýżÓFŔŮłśFw(a×­Ú@čífd«s™Ź^=ŕ®ÄÄ–Ü'ˡéEĆ‘yŽ ţ çŤńű’ݵšsbfčBgĄnţí±:äś(O"9’ő_ţ+†$ţ˘ĄČZN-öń#źćé06Ŕ-},gNî©|Ią«âČú$f0óaŮ=µäż»ń@Aµ›ăÇ!NÚ¨Uł\Z &ź°7‰nvŇąy˘Š*hŠ6U,90G řFĆ˝t˘†7=¨Ű¨BłŠiÝ;˝}M–D‘¦ ©"čĐtˇő5KŞŘ÷“°;oĺBhŐY‹ ă%Z·Ś­FÄ-ÖÁcs Nö·pŃôtGuĚrŘ…..üÔÝţTŘĎ)h)Uó+żČď‚ŕ±ÎťUţŮb€˙ž·bžfş°Ść,ßŇőoŁÄ"ář2jÉŔy(Âh·~CKlJĺŃJ¸7ĹPŞV‡®‡)űÓ3Ň‹É˙@¦€7Ś‚úÍ3EŢĄČ*BÎUX,~‚¬Rsx=ó›m:Łf?ÔÉVś;­pÁ=4‡¸u Üť2€žŠ«‹GpJĹ=U“řá§ě¬qýÔŰ7×[Ó;ˇ¬K¬ZÇh­6'ÂýľÉkŰ–Xt`ę%Q¸bĚŐz˘I˝†™WĺϨ-Dꢔ™’¶Z˙ě&Gyu†9źĺí´o÷8•ëpÝ™H”5łD3šŞšu('—·Vß)ź-|>®Ch˛Ě€4 ržhş#ţ#‘¬­l6ăÁ৏­ú‘|áęć„26a¸ úc{Ś– ŮhËye2ű¬YźŃś\ öŻ‹Nš(ŕ˝­śXű‹-¦Ĺšő} ±ĂŽ?yY8‡TőwN˙÷K;¶eG§đĽZcůJqU_űpĎ Ú´8ß"íógî}Ké7łs ŽFşkŕfÉY…䲳”zZ Ş% Zx׳釵˛QŽ˙ŮB™ůg—)ü˛tÚ·Ú¸!gQq’ŕĆYęaçZË”8ťĄBfě ę…Â]aîO.I;𲛆ň ÝŻ(ľ~‹PéůËxü¤Oçî©M§s&{lMŐş|čÁ C €;ŕGqG[ü.ÖhŰ/•AKńś[_ …łTAš¦!ÓqÁ,"–°îś ł~–Ür–I•ôá_>©ůK­ZÝ$Ç&±4şdÉ•_…Ľ=gń«RKâ ÇöFFÚÍáPŤTkţ4„ ڎYĆ•7ç_Źëłüµ9ĚţŹ6™đ)śűčK3'nŔóŁł í(c6/_xŮ9»†úôGkďÉźqĚÇ˙Ó¶W¬_ęŃČXóiřWW$2¶ŕěöoÚ ‚ëCt›á/©—ąî Ü?˝jí_Ĺb„ĽCó*3őĘ0í–ľKŘ3ÁĂŠ4zI¸źti–É$ŘTuT«AĽG™@vÝ8IC´ÝěÉDöbű–  mx†Ńó gX‘«%]Ąk¸…Ô5·P47ÄŁ <ś~Ţ©Dű'Ú†ĽÔš\ůŞ)ŃK7H_huÁÚU/Ťj Ž1_ôá+)łPű˘G|9“X™b§¤Ś/Çó ¤ą„ĺż+ö¸¸ŹÜ-řŐŽ¤—í WĽóhôĹĄiJěCV…~şËn"*®čA&ŁťD;b.ë¶Ç[T\\a"”2ÜŇżÇë`^¨ç˛ČŹibĎ ,°śň)4Đu ™Ül‡—Z™f!iúîËÂÎ%ńŞ“e%_śÜRîâţé Y ş>żtä©‹*JěÚ-ĹŢf_¦!ź±Ó[Á‰»ŽĹ ôrfy\.ßZ=)ëjUŠGˇaă=C>H<ŹvTe×⥫ąËÂ"^;M@…"Ź:ŇŻ1lÍJP(n¤µ/.¬ t] ukŁĎ»ĽOŕóXÖŕ’čmü}EŘ\¬uó‹zö©Ţh¤k·s7¦›ŹwMŕN˙µ5`V©N×Ge M–jä‘.…”Ů`üŹł×ŇĐú‡!*Á¶Mç1b±™$űţńp_•äîPôq {y6%ŔÚř *P]Słäëžd^B7}ײÉ, o^é€˙ü |‚ůÂv{>ˇŔ-5dĘ#ó?2HŇ›m˝6ôęŰÜYV-să=ŤÚv38ĆC&ńŃÉ:w”]žr>O’Ý0ŕ$uîţ9Í7A^I7'ŠşÁ Ţł\eÁÂUŻńimóĚ' p ÍÄd$›*!ýţĂÄ–¨÷ŕäٲ1IşźH–5Tę; ŹEl};YiaKHĘ4ŕäČásóË~böC%`[úŠžY!W:mťwŤ~/·LŘ>%q9‚̦ŮjŽ_<úĹYEĚťą¬¸T‘qř') 5ŢJ+§őâ$C©§?جŇYźC8mÍŞo~ŇďŠÄÍ1µ×ľAôăĆĄvÉž˘–LŇ;»ŠżůR…AV«űěŐ2Z#¸YţD”Ăř=u†lżXÎĂ@ݲ›"đ{ş—Ú÷ç<@JO–´› Ď{úš#¦—¬—H|Â/‚ éć9ĄO#ţˇčI’¸śÚçp|Ë |€[ľI"č’-/H±ŐťţQ?©QÇ#€‰*Đ| rŕ!©dXČŔ2ˇ´Ľî”»˘ÂŚTýbś=X†Ó®yř÷.ń§D®Äז廡Á$“‰a5FµLµŚŐĆLäÔB62¤ăĆĂźŁóM{ʧ0R’ÁˇÄ­ň5%vjY_±ł‹¦ÓUôűÎÝ`aĆoô„/BčĂuDsóŻî9ž´€ŐůČ`.G^¸¨ďĄŹ#soÍü7S6ÍÇ4˘˘_S~ˇ;b´R KÖŢrâ•÷î+8­ćzýőőŁ˙@` "¦·Ď'‘‡^ýëÜĘ…S5l™¶¶!ŐyGe5]’!éUěCxŃ;<9Ź+ßs§…1˙“`¶ŐÁ”…äCoĆŞGű¸’ám@´";Ă…ŘÉ:*`v"©»"ęń ĚF ť!Ó.«F}$r}y¬‹/¸4÷”p9KČČ'´’‹÷WÓń+¸`G+”Ş˙łÖ‘’Q rčdKÁĎ˝ÖăOXIŻĆ~JŢy Ŕß˙ÎÓŚlÜ}´ÖśŔŚ­~G ›VŇŤô4Ô9ă?Ađúâ†J“;”Óúk-‚ůrT¸®Wó4=uű–·tśÇ(4zk›a×nů‰ęęU&Đ‘ŞHËĽlŻˇĆŻÁ'č_$ "^Ë-´‰Čчśg"óCŇŐÚ„ ÝźG¨ekőąKŚ Ľď ś÷Ą˛÷őá°-ľDôM\.I¦˛ô _ţó@Ó dg‰oâĐ‹´–2Óůó¤ßČ®A®ŕěSÉđźý,ÜVśˇgdĐŠ)ş¨qlľ+ŕÔŞynt}ߡƕ7§)˛@ -ʨ4s1Ţ…«1Ć!sT7¨ (]Oz3*ZNgQŇ›‰)´5önGěd„‚¸Rţ‡HhŽgĺ{Ż<đ°9ĹíÖ׌ÜűŐa \‚:˙µCÔ†|čś{U˘bDxŠ9ŽD-rÄ ®čAťwtŤŻÎr•5ö´ś.›Łűß%]Đđ˙ôÖ.qľ¦ęJf‚WŠÖý˝'4=Řó°ŁĂ=7x{ŻV#çwń®ÇBęoĐçSĂ_1Bß-ö/#Źĺ&#b2áÇó9s×vř~4Z/Q¬ľM•÷\´ćýÄ©ÖYąˇ«ć®4ŇÔ/W ĘÁű’Ć`űužŽÎČ“ŁÂfaŘԅयR“­ßZĐ"ą¶ŽśGđ42ä‹m- üŻGĎÇÍÚ])Đţ @'1Ťŕ Ęrµö—Zěx‘_D\†fít7dHs/itŞ`(G­wb‘99‹sđ-×Úŕxsć3Ó†f"ą–â†Ř˝5ç"ž:î S¬• Ľ,YÁ—µđן a˝Fb[ء9 Ë®v‰ÜBĘËNć”ńUl¤GqÂß§Yyá ňçF(/%ĆüŽý[ňG YÖ…K’Ľ‹¨y˘JdŔÇöľQ®[Ă­«ŔĄÚăĄŕŕ!ť©}%Zů€rŤ%Ja:@[cD¬uŔ›ŃGáŘç>wühÓĆçp¤‘şŢS&‚5 oă3Ű=(GuťRnâ°"¸9·_M€vĄaG]qôü<ÜżÁŮŤwŃJůĚç?a˙RëŔÓ<Ö€bpĽˇĆ ďB"ë•Ă›wÔkî“F FŘ™í?÷ć1ă˙rhmQéź¶F#2Qb8»}ËkěĆ:$Ć«K`ĘZz4A)µJ±ÔÉţâ™UĘ˙Ŕ€«ĂÚčt¨Č/ă;"Jň÷ËjQ1đLqÍ›˙8ýâÇSUBď:ă ,yî}¨>WĹÍŠĐ˝µˇŠđm.^‚}icÔŁ_ŕAŚ}&ĄĽ§¬%B"?´ěťh .=¦źŁr˘Ţ'©†)qHžcđ¬üŤź°ż>g Ę;l@Ëß6Ôßő˝ü®ř1-đ*ů`}čG‡6K™„Öx—©ë qżµ ÔWëđGë¸éFČ8JÔ‹řüdĎ{8˘ëłKĆΛ{űhŐSňtßר†ö&ę®K™ű‹žn_ 6aŤ…ŃŐqe‡t.·V_hťÄÄ0o@ş‰nŢŘOÄD¸Jtnúž˝ŹďR©Ńö4_p˝]Ů8űÖ¬ë6ňćŐb5ľ’~v”šDX,„ćŕšť&¨GňÄ؄ٓ-K7,‰ţ&Â$óRŤ««Ęu“‹$ihtV•÷D„h“‘ła¤ApńiŠýšŚđsĄ–ţľ…ŘöO/ ÎÜäk˙§}ćLŮŇi8 V\¶˙¬s¸@F‘U8Şą:]âsxkÁ60Ä1$ż;{U?Ň~¸ż9€äą6şŤŤAó×0€ŞH‹îJá6c€K 0˙Ô®¸*´ę›"§Ăű3Wůđ Fł´úöŹĐÄ‚°KÉ=ŕýźg˝řć$âŰL{‘ÖurĚSä­ŁwńÔŃeĄža t&¬łă)şűŕ Ż"Zkă‘qžP&‘˙2V­dĚŇXÂĄÓ8‡ďÓo˙đ¦®- L_TŔµďäwĎĆí¤sŻG®”¸ š×TauZáôôăüżş ¤¨µŘj_˝Ęä)l™q×\Ěćč§>ř/ń(’;]ò\79„4áđ™™6?ť<Í ú®Ó~oż_Ą"çk'ř- śŔ˘Ăĺzę! í’Hô¨.­cEü|)ăŤ9ÂĺwPýđ¨đkâń•“±c9 ?©Âą ·ě¸]żm{ŠĂÝ(Ă<{ăÜrJľëkşČÖ7ę5-Ů.G¬N&ŻĽQĐţŽöÁIőĄˇ´Đix·˛fR˙–›łBóWy~íŮ÷&s˙^ď›ËmRţŮţÇ/@\ˇâkňç0Z"cťJÍŞ ‚WwÜËŢ đÍş!|1…IIŰŻŞ˝=oĎů†Hśu1f¬™˘9?Ő{ĄŢěh÷ĺdÚ›+®üů´[Ć9d¬-ÉR{™MkJ˛ßö-xJ.Ťů&˙©ő+*˛ÖőĐSc…n´î?7q·VX“sK)§Ń\uÜŁŠ˝4ř»ů˙D˝8_Y&RéÉ‚'ţƨ˙Y’ĘŚm—Ý+o푏G69łäł‰EŰ{MÝŚĚy®8¨üŮťŻYâzu(dŹŃűŔxŞ1—Ú „±ĎŘÓ hťU´S!•ęµŢŤ‡ ÖŔ—şî1™ż“l=ë|JPł¨´—رţĚĹäł ”żöä<[âg^đž]¸ľđůĘ=ú‹“±H«:6Í;]GčŘ€Ü,(ů“ʎů;ë@ďşćď~<Ň\äű…!źJŕĺÍFza4P Äé&¬“–'_ăn3ŕmYWÜ8.q|v ’|ÓŻ¦c7´ ?xÜ%€``"Íďâ,Ysý™uźV3HËĽUü6†Z˸]›P4fŃ—îżlnŤă8?á•0CŇq‚CUĂކŁ'ÍĘ;×ú{l絬ąź6ş-›`lxTĚöĐ»L•rT‰¦ ç)Ţc ˙}Ұ™âľÎm3ŐfFÖmíNç†č°‚ŇÝŃ"r~Ů 6A—B@eĆÓ‹o4H37;%9ZYýŤ7P{·UŰvJYü‡ďâÉ»ÚO\Sq˝>‚€S¤ĆIwŁî2 ă‰á÷ÉvÁžDwĆ×Q«Şş@pT’DPź#Ú%Ő}.ĆiPN—RČŤVŻr¬čĂŰ7Ęö¨=†ĺJ,7`ŐŰz^a6'Ą1[ĺiŢZýŢąâ[·uţć[ř$×˙cOcÔ°>+K˙B"fĽŇŻ“¨ŞÇnJí •%r-ŢŚmŁa„Ńóßv'§.٦2ČšCëđëŃŔ–tf},łRŞ ~tfŞL;ŃqÓ i:gi‚Ua5]Ć>ŽpÔ©Ů™ÄÁ<‘+užu´–ă”l_’ĽLűuű˙BůąV b5J0®ĘKd™tÓpÚ˝oű,…;pG,„ÉuÖëA¤ş[äÄxö\菌Ń%›X(â+? Ě >Äžď­ľ›‘·7«]řď›X=˙ŘĘúů5žő^{'˙,űn§ łBąáÁ@ŕçHŰmŐYE°;•öxW®Źw5žC‰|ćH\żękćۢ¬n§)Ĺ'.ú´1U¨ëő şď‚aË&´´µb•3ďĽkQd…‚Ű Ju›Óâ#H]!Zço¤[G¨2«[a&ü« D Půiś“V8a|GdÚĽ/š?J  2EŢ@âi«:%młĄ,0—č˛űŠQJI˙‰26·x‡8ób|ü ÔłYŕ >XďSÁXOSâ…˙žť—eÉvřśŃUâQöʨăý¨ĐťM?DG.Üś5łó¶…JÉßť~ą%'$Ű(.ĺŇşH˛cvXí‹î'"ô­źySýaąÝOŢJbüÔGĽ@>ü˛đ}Żc“_Ŕž3$ţŽłäpŹÄ¤$Žc^z[tT·ĘLHc‡l®áË );m)¤ďö©®x†4J1@7g†Ŕ äÝw®§T™Śç<÷‘qď^EŹ—č5ţgw¦ˇÜëo´w)˝&=ČÉ-|žÁî¬Í:ďÔŰdg"0JŚ>_RŻ lűg\Wą˙ďuׂá22ÍÖ\MeţëBŻbő„b{™]/Ű"€—8uŐëv«…›Ďq?$ä'ír—š ©ŇĐůZm*…䪭¬Š˘$!ýk9ÁPÓôCBĆČĹ=H÷&ʱIě3P‹‹EKĘá7ŕ®VÔXÚŚRU\©2RCĐ1ŤN5Eó‡Zűâ3Ň˙˛Qč‰*Ą“+ÔCt,}BuÍúŐ—˙.Vrew2µä ‘µ‘<]bŘT™Z''ô÷ší»oôÂ~I’çŞW—JéC×uv[đÎ ‘·Yâ*xJĄ«}Ö«~öLhøńÇj1“0?Ľ‰ \Eµ ‚`şz.˙·–ö§mťepŁ Ş`Ô*Ů@>öřç•ţ6ź([ˇ˛©¤YžmsůDŮ7čx¨ľ0ÖY˘ZŃ’ś>ÚĐ©m¸sźHČyţwiM˛Kd,ů‚p˘yZ#wůďÜ&+›Bě|#™_߸ľN·äLQĐlbŞŻýbÂy‹h8K~c>w1+điŃ ‰ý¦Ż˝ÁęđÍQő—m‹T‹ęAY¦ ĺĚ5šĂ=îyýŤ:eú©Ľ$]ÜŤß~ď™ć7pDubpËŃÓâiŚléJť’ë1Uţ•Öw± )~ˇmµÉ˙ß‘úZCżdh¦î†)ŃĄSЬ5«Çв喕můµ‡ÎŞp®l=Włk¸<=v@ű!iÍü7ĄVŤdśü>®éńÔfľ‡…0¬Űö )/ęűő’ۨÜy8ý‰xčń Żé-ůŻ)řâsǸ­§°‰Zy ±‹Ă¦xłX¤ű·îląśowô™m$w.0ÂŮÓ˝,l÷{E0č¤vPvĺZmąÂŮ•˙@68Ł­í÷Ő uş7O,·ß™[ßý¨™ęf.Ũą#©Ý‰đ˘Ş<  Ąˇ`Qľ{nᆞŹů>_5!¸č¸éR|,/đCiu‚kP©‹‘¦c(í%ť É„ú¶5S‰XĆł’·ě™9ü\7( ŻR4¨_˝B˙,]¸ĂßŘÁN©Ĺđ¬KĚ@´Ú¦¦Xz/éf°jŠĹ.…ól ţőĎ#±‰˝Ĺއʒ5CM‡Y‰ť'4ٰĽZÍäSW(ľÜćN/ß꧲űH Łž’,›Oa ; ůäç/îLč„ A%^1řĆ‘Ńň=˙˛¨ ¦§bĂ0Řt¤s…_Ű+ó@Ř€H8˛Q®Đľů,ÎU‰é– ăcř-ŤY]šý˝Ř0ţc-@ĺ7¬úm±űDCŘůŁv7:R¸xUĽ8ćźxÓJŇĹ5Ç]ĘSÍc2Ö …‰A.2oäOí=):N•_ťzWłĄ’y·ţćžÁ†q&ÂÇj (»^”Kęó –‡€÷`¶¤`ŢPeĐ(˘hů~‡y ËÁ\`KĽöâ|Śôąµk?Ţ×1eyŽöŽ ™×í~©u>Ý66±Sö‰F0 ăÔŢ ŕ%łq'ÜŞ˘Ô\,+ú¬ÚąŐőĎŮ€2,äąžźiĆb°NC0á ĺb$ňýâˇN™Kˇ©=ů8Hi׺Ţşź§ă[oUFÓ)Ś4V€yŇ;_˛“DO j(f©tER"O޵ňaŘščůŐĚc&(Ü_ 5RŚź‹Ýß°ż"çśřYµC;ÎŽWŘłĎ ÂŹ0ú›GÜüěrŘ0űĹ ĎĘ`—_ÍCüIŠE˛Ý¤D©é6ď[ËÓëC=ö ‹T$X§±[EÄŕ¸ŮŠÝߌřÝ»çŃş‡ĺ'˝v»µŮÝNię’ëÓ†ďBNyŽu|ź+$I¬",*č HG-‹ şć€‹–‰©Ż=A8ŃÚixÉť€o§ŇCĘÉ˝Ň1vŤ"IąĂ„ŰL' `ËĄ+±÷óŃuJa`vkć{~9śďڽبőň)<žĎH ÁĎ+éŢ’›gDĎřÂ9<_˙s1I‡šö®čÜ8ÁĄ†ë0đÔi6Ę'Ȇ§Z~6>obëë…Ȣkç`°ÇcB-KI(ßXý™|ˇ±RvŞşL¸Wp‰O'‹ąţ©¸özŐÍ)9I÷±Ő—„uʶżüX¤ŚCĆě# )^Ĺ#‹\^™ĂR™¸kđ:}óŠ]TŠđqŠqňŘůěcN.­J4Ěýg݇×ĹxÍpÝ,%‡y×Đ&˘7Ów2$.ŕĐX…€•ľřď %>ľśfŰó †™¶Aîr$âˇoţŮ.>R.VŚë~ŘŢnXëěů>áůS}éĘ–ţbǦ×rňłSQ, Ť •ĹÓaŰÜVYË—őžy涵٦čŔ÷ŃÜ0úę-vŁzkŇ^}Ś6;n© Ž.`:6oŕŽĂuNí´®É ŃŘC˝Ýŕ´ŐúżOÇĺÁüt 4úőíô˙*éчF^ކ˛ěOsęłtškßű ‡Ć~h瑬`Ů=ÜW¨Lź‡éfpő4Ú•şp{(űJÉ<§ĎqôŇ?‹°€ÝőęÚŠčľ q>|yoŠô9ë·v1úĆ:¨…Xô/ëׯi6Q˛Ň4DzFtTĹFĆ7&ŘÓaŇÜ‹‚ü–­I ‡ÁýĄ¬?śSĺtăfŕM)c˝ŁřŁtíîć¸>Цdjd˙/lPŽ4´:W1ş!›»|ťe|uYĽ-!Fú&˛Ą,T-s<Ö4‚=Ő|“WćjC– Ą#¨ś“Yüµ8Ăá®]ĘvŘcôo»Cd ­4Ë 5hoÚwgőWN 7“LvÎôFŕ˛d¶§íé‡ K!ĐBMôŐ«ÓpÇhţtyDŤsF#ŠŹŇšHËŻ.ڎMîň-¤!4Oć2ÍYY*=%«ŕr‚HJ‡ş€*‹â ,ę Q4ęŽŘľÝIü$ĺD€Ł4őx˝8fB;{†(ÚŚőďÉ‹śŢč7*u;‚Y5I[Íx:ş.‰ÜÖĺ°«kóá,Ň6ű°ż”wź$/<04›Ů ·ÓgwJł ‚ę=’ěKý¬Ťr¬|4ďÔ:W>ÖvĽ YŞçt6őBsóŰzb[ô:ĂęIw×µ´ŻĚďFŞ/Ćó$ę2Z¬3¨ż˝ÇŕDŇ“t٤%śÜ¨†ckő1ĆĄNž¦BÔ´c‘tO˛ ăľjěć’yË~ü‹eĆ`{—@YŁvb^UĽëç‡xˇŠ÷Ł »Ă/(by6ďŘx˝ŢîsňŽ,ÁýÄé[ u1@ĹôV°˘2Ňu ďˇ_UťÓWę-?ŘŚúĆ…™ ŃÂó ňŤ 2Ű@€ś»@¶YE+ňÝ’t7/#bż·‡ ©˙ßşˇ  ­Řľşb }VÇCÉSńAĹpÎMľ(‰ŞcşÜO,{ţUk­nťŢăÜŰ^ŞÄöž„E1¦)©Řî„BţÇhńŚňlú(îe†]:˙Ü ďn28\\pč[Qĺđ»9űweđËą 6Đ#Ij+Ń>Ççč^ά؀‰AEĂ”± –ÇťAžž4‘ŻýČR Dç-*&Vń·µŮ-„–SHŰ{ÝëVVyWćśHőMě«'ŽwÂ-Ę…iÎm6Ő3˘¤Ĺ¤RHş •Cç4­•'”/Őň˛!˘¸Tŕ¶ÓZ»ŔWDfc‡e^o”S+äyRŤ{yLĽ!őśf(ˇţJ|j˛MÁ&Čh*KaZp٦ŚÖχq÷]Ć‹JéUÝ‘­kíŐz5}qÜL#g·áĎÔŚLR÷P©&Ú7 ć˝Čĺę^®3ËŃÁIí'ďö© Yú2 V°ŐQg…±Óü“ő© Í[w«őLT40qńČ‚údˇÔ_†7Ż< Ů$4Ľ[äŢQśÔś4hQ¸nźžËć;DnŤkIÉ>ßDűlżÝh*ŰÚ¬mŻ}źír\,ä:őâ ÄŹtpĂěđą…”]Ý Ď€śłŰöw©óbę•Ţf»ôšĐĽ#řěY^¶‹ýQˇŽůČTcCXz{ÔÄ%řvZ¦>ËČmÉXHA'“EUÇßâăčÜ=&»â’‡ËůÜ©† saA^/®] Đ‘c¨~ktůůÓúŤ1Fě˛jÁ"ĺĘHÚGĚĺÔ1‘/}(FµTQ´ÁwÜnžě ĂŇŕ‡~q×Îď‘&\Ď ěž±¤Üw@ 5F(¦QuíyćxsYŮŕáĚ ”ˇŇ´”ëî¨YîEdĆŔú.!=žŚĐâ)}~xł7AązňžĆtęWěŁz[6ä·Ăé‚:®ŻÝúH5H®Ď ± )i:‘´W7´tĹ–ă‘1ÎĹťŔJ±ÍĎ"éÝgHŘÍ*Úđ_Ç8EłĎ<ÍÄ&> ëÍŦ)”?Ý·!jÜ}çRˇ´(‘hŐ GM­Z#e3O3ˇn›¬W%z–njl×…ű.ôń«˛‚®)MłÜ˝7ÜDÂńî¬ŕ508Ô‹óqgĺśVÔ„{€B±,«?SŘ»°`ÚßE‹{4ĆŇÂa^ťTÜĹe¬^xĹ06Pa’Ĺ©Oő‰}kî…`#} )ľBě¤2ah´ÝĬ* AËËŇ"Ć1&Sε6”€Rëë×gČ}žçąúMS„?áŢm*›÷žăwÝ0v'đĘ*ďťuŤ.Ă…űŔ ŹĘÔEá •PźP‹¬n1—oâąľŻpO3/kSyű!B/!ü(®ŚT0‹T79Wźâ+-z^ęU× ý› ˙Ś@×Öhä1ăáÇů+!U˛\:¦Ř× Â;łÝ¬1ĺđe1‹vŠĘjăĐ*ŘÉ| Öő‘چôřg ţ řľ 8=¦ßpÝ‹j1„ă»7FE*ç W7鸧߫ű\VŐâŃšÉÓ­ŃÓÄ™ąŤú‚[ŻćVÚT\<é—š ĐŻ‚¶w›TYjžd:dćLBsBŠÓŐˇşÁ¸ť“ľí«ë•ŞÉý[D•Đ˝CTRp6FĂÝp.şkňÇ@É”čdťřľ’Đ“§ůOlms%ľHĹ^lkݡ’2Xő =QäŔt‡ GUiB†7BŽ™ň˛˙^*a›Ř‡˘!áIbíáem7‰üW¤§řú˙i}Źz]·öř¤ÖÜZĄîíkż˙ZČ>˛°qÜkY5Z\ë\ç”ÜŚĽy>5Kd# Č)™]ű²dݤKŃfgWrSé¤NŻďb©&ś0éÍ(`›FÉg¨Šˇ-‰íŻÇín@i.ć—cÎĆÍZŤ¬÷ÇŐńٵůz ł×úĽđ|¤”żć–÷°"#Ůćż<±ŮĐťś¦+2ÓúÓ…ˇC=C÷÷ś.űţ+vĺž%éo“¨ˇsÜÚ[až ŰMŐNČi.,©‰ę Uę2ä·ożÂŰěvĽ”˝)¤¶†Ţ×đ Dz(ü©pŹ·}!Y‹ă”]ĆöČŠß1gaQ>íáŕŽ™HŔs|^â“Dz›ĐĆrćî)CľWMk˝SÔ€FÖ+Aµ(ř™ŐŇć4Śđż«ţżđnřI´C “3I˙UĆ–…O9ă›M‰ÖÝł}©¦ ¬úÍXr>ŘI[|ŽadQ„ Ů{sOĄ?ĺÎaË9Şź s‰X@‡Ý·öa–%oVµ‰˘&…ţ ˝Săy1îÍ}ßDţ˚ʜ’¬®A덙`‘ą…Rmţ?ËÍ÷ŕżĐĆŃn›«ĹŠ8ŕhlNőĐA<Ú)wçq­Hú´`íl2¤L0qŐí}–&e®jČŰ×X\č唿¶lXá°)T_So‚ŠůNZŻSáÂe[C\7űŮ9Ř"›Ťw`í±ĂdKĎ·§Z0cĄg¦ŇĺhĆ(Hg<„‰y˛Üw1ář›/Î…wX {‚‡Z€˛ 2DoŕÂţäş›íGłŃąmXyIQ„íéĹ4ę&ýÜZh7}ČłżQÎ~9a1f‹_—ŤĹI17’ăŞýÚmŠĺK”‰@ç!řĂ!e0¸iĚ ˛sĄXÁ3ČĹ–ŮrdçhË9‹ĺŮŹőűXCtBŻ;9'ýčg¶µĐ~W>ŕóZĘŔn… ĺ=aýăeş)Nܵół1Ť|ŕňń‡ĂŽÎ:¸ô×0Aeľ°\ĎhŁ4Űů€ň3‚MD.ĺ1>d\o€pZeÓ Őí=(^“ů‘A•©r6ˇ®/ŔÓF~ž$Ô@ľěÓ|*Ägżľ)żň…&±enŢL‰G&ňYg:­.'(aY¶uC'kúDŰPozą»ĘUŐw¤íűY»@ďPwwÎâIl·Vá*żH–ď(ń’Ëě îR­(đ»Ę…W0’lˇ#<éG7‹`ăŁꀳL­%í[–i-  bq0ăfĂîéŠóëP%7iŚ4öI¨¸fV­ÇxÇ_×ú_Č/ŮKQb×v59cTtäĽ3ŤQ!B•`ý˘'·ěá®oÁ•ŹRÁI0™žw¬'+jYäiĚŚ}­ Xn í%x¶Đ·řń=šą=dyđXíŢ{eţdő‘ŠČ쫟ŽËřOOÝ{]Őü!ôyäťóů$ #h¤ dµ ¬ÖŔëŹN4ömP—×ű¤Ü f:·~dŚŞî(çQ?ţ &‘ą7®¬źŤ‘É–z/r5Ţľ!ĚŐÇL›‰|ä›ČćŤÓí·ęnR 0áUn"<ÎK8x&¬ZÁe7)r›' uÉ&ŃŐ›!w-qÚĽ~·(÷ćuŰ»©k!ŃH¶‰ÚüšŤń?¦ţ~U߉ëŽ˙ČV»zâÄÚVM7ŁÂx›ľť¦•ożO§‰Ţů»Ä†;˙JZ˘ˇÉçĐ—G Ľl{č7ËfřłqÓ}çCË ’Ź/h˝•“Öh‰%EŤ çps<ß#8©đsr0úiži&BźşĎ aGŤqô5ş_Śoí^°ĂJŔ,,ŤĎĄç>Ć>`6&ě.ałÇDkIý -(!š%Vµ&ÇăĂ´„˙r>E確¸$ ®u}ÎËjŕÄ0ełŇĂđsŞ ‡mš€cVkŽLä=D¶J…«*R™Ą! +ćčó¶×‰ńSy›Ŕ`ý ”vĽ˝üµ,ůľ$7MUeŚŐ_‰‘O€âźb§9ź40-řżîĺ3ňűşÜ‹ĄUSš J€ô¤ÝËb6„á9©¸ĹyC–ja?h?v'q[°Í,׾"ÔXť¬”ŕTCO4ňéaÚ—lů_µs>E”8~OĚďËrö¨L=5‡–ڶ¦ ,~4(Aŕ™%Ö©[1‡›÷׺…A†Ý9Ň2Ť,DčW¤“m׳Ď %#îQä*ŐF6|ťß÷÷u{ *RĐG|# lŚ^<ĺ©q…çäĘŹ¤.óĂ)ă¨=üFÝß++ŽÜ/TJŢďš2WÍm¬_Çe(âŁí:}ČćźVOhŞOµ4<}­Ő€Q”].ą…h-uSF>©Y §Z á"]ÜÓ…ĽâÝ•´ }ŔPÔJŮh»ŤŠ@uF?ŕ+˛ëzîŘ(Bć+˝lő2ŞŰ ĺĘb:O¦vŁŚ‚h;Gи·Î|Ć«Qť~.^([qwzÔ›§I9[$Tq˘PBË×Năy'Ľ@. Ťí=Ť+`ßço-ÓŇ‘\{§=Ţô’“+20ý•l,Iú_‰öSÄÝčĽRAzgO7Hh•Zĺď,µčzRЬ—šW ŐóĐU’ý EŔŰ…'°i°ëY™×Ĺ÷3÷o ůNkd2Oí‡=~9”~¨0d°žX z<¬ Śžż™CMÎâqx±¦Ĺ ŇĚ:8NŻ0yvňŤ (Đeé—8±«¦µëU\72¶ mvÎßÚĹ% Ç˙¨\Jë ÜĚ’ćQ‹ÍÍtü…Śl~QůnÇ.­Bôl ťYšëŐ([şU˛ĽßĐ^ă—ŚŘxn3~ʰ0öłěN"°%ľů’ đHá$ ^«šëh jżť”e÷p‡‹™(wu/¶CÜoÁmeť]łľ˘ŢYpÔóŹď88¸•Ü®nXů<Âů"ö9ĆC¦.̧ k͇@|ű(Ný#~ÓŃRg`{ĺd›çÍeŽY±zj˘j8ůV!މgć+·#éŢü­‚éĘîĄ BfýmľłSICÚŁ¸ßIËŤëÚ}]…9śL˛ELLZ`pŘž•‰öđBĂ“ —Ĺ˝YĘĚ'˘ă YúH¸RŮ:;|łů4 ®±ac“WzÍč%…ŐTaU\E¬ ¬ňmÓýH•©ŕŻ˝„+díŠ8ş·ď ^űŢű¸Ť“&%¤ű«0ŠŔ°Ć7#'°ɉU¶m%ÔĹ3ꄱęyTĐĆś©F}ą*°§l®JóxŠ&˘LŚEKLY®€Ôâżrj_Ě`á~l_p!XġŞ[ęî iŞ,yŹuą|‹ě7l™ŞeĹâč3pýâOôxó…ălŘBC'`Ôrşw@)łýVĐX¶ó*ůđ:d† ë`Ł˙Nž*\MĹrę+0ljľÁ“ť U"R G˝Ľ%ę±ić÷áťą4ňW4űo…ĘhR ÷R…őRőĹ­Áćü/ĚźÁ”ä5)ę¬W°ĹşŃćöUú5AQP±ÎöĺÓUßÖ/ąŇź%Ä`ôńĂ÷UĐ2·gż˘ŕO ‘„ÚŹóX#@ÂŇŃ2x©< FË$žAđ˙Yt°e›Îäü•Î%‹xăŤň6˘ŽîáŮĄĆ•ť·ŕs\Ľ!ŚľGáŐaq„•¦¸‹Á•nÁU’Xb®—†ćmżLŰŹ0zŇöSĺŠDźĘć'IíÍH=UͶ‘~ÚŮŢEę±=bö˛ťŔ}ŕ·Ły8=‡¬§Ž@ŕĆąy×÷ĎěTůLuű6¬Kú$eË…ľ2E˙|e]=ÎfîkîéFŰm„5r´ Ë¦í°śeö×l{b­]—Á6ňžŁç‰»)Ŕ¨÷8śfş•žµłčGĎÄľýęiÔPęöŠö©źsÇV źý´aŔŕâvŰi3öŰ˝QěöQML­|Č$ú—µäĚUTެ 4d•$‰H%­ 9ÓÂeĽ*Ž„Ős.T@é¶<ĚćčýľŃŔúŮĽ%Śßfc5"!Ü~“Ýd™żÄžV– fş8×I‹G‘2ÔĹ™É|GoóɰÖú«ŕÓŽ±ř—ćyŁ”îoËÝ:˘#É*şZ«)÷^•®¶Ń±Q4Í,®ň*!ŃNîťh-<F,ś¨é!„>Ü\˛Y4;Řżď‚a$üŚŢ´mU™µ[ß"Ľ@JůpiĹĆłÚś¦©Aš÷H©´¦ą/äě–†.c&ŻÚë(ĺ;0ĘóďC`ŁúÓ®¦ý#nkHآą p ÚüŕĽđś&'Íăëőz&G STÄO–ÖŠŃ险+˙̬ú/LűüM’µéXżý†rp)󢎚ű] Cěůg•˙«ęč­MOéˇR0Ł1†~Žš¬§ţݰÂ7ěj‘‰ĺÄ Ý+eÁ~ÍY¨y·ă1Ô:d[üĘXęc.t}†×V­­ĚeCOŇż ®6šř2zřq.HŤ˙š ç'|T DÁÓŔ˘g¬×Ĺ>+醚í jűžu úˇg\çżź`€YŠd3ČÍ…¤+ĂWĽHŇŽŁľHu¸afŮjCݍkĂÁ2€K ,őčemé–Ç}Ţ_áÓó®a=ůBŰw[>›»«čßJ>3×lŢ\I¦Ą=Ď^ᄡzLw‚RŇş§řŻA3ąkě’l‡ńťW ̸®™ý¦-’.šU>5+óéµń\?Aâ٦Đínńę]Ř‘Q‡‰1ž?Q"GaËâ>ŹÔ 1÷2™‹Í Z©c©Ž"@ŁÁ)͉ÔĆ'ÍNŁ÷.ÔKcşíNç_R”>䥇I=5Ń€˙ÁĂ ża˝˛-ÉnŻ·"aĆ3(˘’ˇ™ÖŠ—Ę8.ž”Jt¤y ř ü„q€JţÂşěöőó„ZX”ŕ ĺgĂC<ĘzÍŚÇľ°ĆµłdčŠQO*6ž~ĺoY<Ŕ”ۡéúř^č:Ďv–Í=JĄĄ°f¸57_Á׾¨€+ŔŕS3_6ŠVćmßĚk #w´™x"5 2 ^ 31) { # Too big for integers, have to use strings, which will be much slower :( char_id <- do.call("paste", c(ids, sep = "\r")) res <- match(char_id, unique(char_id)) } else { combs <- c(1, cumprod(ndistinct[-p])) mat <- do.call("cbind", ids) res <- c((mat - 1L) %*% combs + 1L) # nolint } attr(res, "n") <- n if (drop) { id_var(res, drop = TRUE) } else { structure(as.integer(res), n = attr(res, "n")) } } ninteraction <- id #' Numeric id for a vector. #' @keywords internal id_var <- function(x, drop = FALSE) { if (length(x) == 0) return(structure(integer(), n = 0L)) if (!is.null(attr(x, "n")) && !drop) return(x) if (is.factor(x) && !drop) { x <- addNA(x, ifany = TRUE) id <- as.integer(x) n <- length(levels(x)) } else { levels <- sort(unique(x), na.last = TRUE) id <- match(x, levels) n <- max(id) } structure(id, n = n) } plyr/R/liply.r0000644000175100001440000000361612512025470012777 0ustar hornikusers#' Experimental iterator based version of llply. #' #' Because iterators do not have known length, \code{liply} starts by #' allocating an output list of length 50, and then doubles that length #' whenever it runs out of space. This gives O(n ln n) performance rather #' than the O(n ^ 2) performance from the naive strategy of growing the list #' each time. #' #' @section Warning:Deprecated, do not use in new code. #' @seealso \code{\link{plyr-deprecated}} #' @keywords manip #' @param .iterator iterator object #' @param .fun function to apply to each piece #' @param ... other arguments passed on to \code{.fun} #' @export # EXCLUDE COVERAGE START liply <- function(.iterator, .fun = NULL, ...) { .Deprecated("llply") stopifnot(inherits(.iterator, "iter")) if (is.null(.fun)) return(as.list(.iterator)) iterator <- itertools::ihasNext(.iterator) if (is.character(.fun)) .fun <- each(.fun) if (!is.function(.fun)) stop(".fun is not a function.") result <- vector("list", 50) i <- 0 while(itertools::hasNext(iterator)) { piece <- iterators::nextElem(iterator) res <- .fun(piece, ...) # Double length of vector when necessary. Gives O(n ln n) performance # instead of naive O(n^2) i <- i + 1 if (i > length(result)) { length(result) <- length(result) * 2 } if (!is.null(res)) result[[i]] <- res } length(result) <- i result } #' Split iterator that returns values, not indices. #' #' @section Warning:Deprecated, do not use in new code. #' @seealso \code{\link{plyr-deprecated}} #' @keywords internal #' @export isplit2 <- function (x, f, drop = FALSE, ...) { .Deprecated(c("splitter_d", "splitter_a")) it <- iterators::isplit(seq_len(nrow(x)), f, drop = drop, ...) nextEl <- function() { i <- iterators::nextElem(it) x[i$value, , drop = FALSE] } structure(list(nextElem = nextEl), class = c("abstractiter", "iter")) } # EXCLUDE COVERAGE END plyr/R/quote.r0000644000175100001440000001362112725616027013012 0ustar hornikusers#' Quote variables to create a list of unevaluated expressions for later #' evaluation. #' #' This function is similar to \code{\link{~}} in that it is used to #' capture the name of variables, not their current value. This is used #' throughout plyr to specify the names of variables (or more complicated #' expressions). #' #' Similar tricks can be performed with \code{\link{substitute}}, but when #' functions can be called in multiple ways it becomes increasingly tricky #' to ensure that the values are extracted from the correct frame. Substitute #' tricks also make it difficult to program against the functions that use #' them, while the \code{quoted} class provides #' \code{as.quoted.character} to convert strings to the appropriate #' data structure. #' #' @param ... unevaluated expressions to be recorded. Specify names if you #' want the set the names of the resultant variables #' @param .env environment in which unbound symbols in \code{...} should be #' evaluated. Defaults to the environment in which \code{.} was executed. #' @return list of symbol and language primitives #' @aliases . quoted is.quoted #' @export . is.quoted #' @rdname quoted #' @examples #' .(a, b, c) #' .(first = a, second = b, third = c) #' .(a ^ 2, b - d, log(c)) #' as.quoted(~ a + b + c) #' as.quoted(a ~ b + c) #' as.quoted(c("a", "b", "c")) #' #' # Some examples using ddply - look at the column names #' ddply(mtcars, "cyl", each(nrow, ncol)) #' ddply(mtcars, ~ cyl, each(nrow, ncol)) #' ddply(mtcars, .(cyl), each(nrow, ncol)) #' ddply(mtcars, .(log(cyl)), each(nrow, ncol)) #' ddply(mtcars, .(logcyl = log(cyl)), each(nrow, ncol)) #' ddply(mtcars, .(vs + am), each(nrow, ncol)) #' ddply(mtcars, .(vsam = vs + am), each(nrow, ncol)) . <- function(..., .env = parent.frame()) { structure(as.list(match.call()[-1]), env = .env, class="quoted") } is.quoted <- function(x) inherits(x, "quoted") #' Print quoted variables. #' #' Display the \code{\link{str}}ucture of quoted variables #' #' @keywords internal #' @export print.quoted <- function(x, ...) utils::str(x) #' Compute names of quoted variables. #' #' Figure out names of quoted variables, using specified names if they exist, #' otherwise converting the values to character strings. This may create #' variable names that can only be accessed using \code{``}. #' #' @keywords internal #' @export names.quoted <- function(x) { deparse2 <- function(x) paste(deparse(x), collapse = "") part_names <- unlist(lapply(x, deparse2)) user_names <- names(unclass(x)) if (!is.null(user_names)) { part_names[user_names != ""] <- user_names[user_names != ""] } unname(part_names) } #' Evaluate a quoted list of variables. #' #' Evaluates quoted variables in specified environment #' #' @return a list #' @keywords internal #' @param expr quoted object to evalution #' @param try if TRUE, return \code{NULL} if evaluation unsuccesful #' @export eval.quoted <- function(exprs, envir = NULL, enclos = NULL, try = FALSE) { if (is.numeric(exprs)) return(envir[exprs]) if (!is.null(envir) && !is.list(envir) && !is.environment(envir)) { stop("envir must be either NULL, a list, or an environment.") } qenv <- if (is.quoted(exprs)) attr(exprs, "env") else parent.frame() if (is.null(envir)) envir <- qenv if (is.data.frame(envir) && is.null(enclos)) enclos <- qenv if (try) { results <- lapply(exprs, failwith(NULL, eval, quiet = TRUE), envir = envir, enclos = enclos) } else { results <- lapply(exprs, eval, envir = envir, enclos = enclos) } names(results) <- names(exprs) results } #' Convert input to quoted variables. #' #' Convert characters, formulas and calls to quoted .variables #' #' This method is called by default on all plyr functions that take a #' \code{.variables} argument, so that equivalent forms can be used anywhere. #' #' Currently conversions exist for character vectors, formulas and #' call objects. #' #' @return a list of quoted variables #' @seealso \code{\link[=quoted]{.}} #' @param x input to quote #' @param env environment in which unbound symbols in expression should be #' evaluated. Defaults to the environment in which \code{as.quoted} was #' executed. #' @export #' @examples #' as.quoted(c("a", "b", "log(d)")) #' as.quoted(a ~ b + log(d)) as.quoted <- function(x, env = parent.frame()) UseMethod("as.quoted") #' @export as.quoted.call <- function(x, env = parent.frame()) { structure(as.list(x)[-1], env = env, class = "quoted") } #' @export as.quoted.character <- function(x, env = parent.frame()) { structure( lapply(x, function(x) parse(text = x)[[1]]), env = env, class = "quoted" ) } #' @export as.quoted.numeric <- function(x, env = parent.frame()) { structure(x, env = env, class = c("quoted", "numeric")) } #' @export as.quoted.formula <- function(x, env = parent.frame()) { simplify <- function(x) { if (length(x) == 2 && x[[1]] == as.name("~")) { return(simplify(x[[2]])) } if (length(x) < 3) return(list(x)) op <- x[[1]]; a <- x[[2]]; b <- x[[3]] if (op == as.name("+") || op == as.name("*") || op == as.name("~")) { c(simplify(a), simplify(b)) } else if (op == as.name("-")) { c(simplify(a), bquote(-.(x), list(x=simplify(b)))) } else { list(x) } } structure(simplify(x), env = env, class = "quoted") } #' @export as.quoted.quoted <- function(x, env = parent.frame()) x #' @export as.quoted.NULL <- function(x, env = parent.frame()) { structure(list(), env = env, class = "quoted") } #' @export as.quoted.name <- function(x, env = parent.frame()) { structure(list(x), env = env, class = "quoted") } #' @export as.quoted.factor <- function(x, env = parent.frame()) { as.quoted(as.character(x), env) } #' @export c.quoted <- function(..., recursive = FALSE) { structure(NextMethod("c"), class = "quoted", env = attr(list(...)[[1]], "env")) } #' @export "[.quoted" <- function(x, i, ...) { structure(NextMethod("["), env = attr(x, "env"), class = "quoted") } plyr/R/name-rows.r0000644000175100001440000000163412512025470013554 0ustar hornikusers#' Toggle row names between explicit and implicit. #' #' Plyr functions ignore row names, so this function provides a way to preserve #' them by converting them to an explicit column in the data frame. After the #' plyr operation, you can then apply \code{name_rows} again to convert back #' from the explicit column to the implicit \code{rownames}. #' #' @param df a data.frame, with either \code{rownames}, or a column called #' \code{.rownames}. #' @export #' @keywords manip #' @examples #' name_rows(mtcars) #' name_rows(name_rows(mtcars)) #' #' df <- data.frame(a = sample(10)) #' arrange(df, a) #' arrange(name_rows(df), a) #' name_rows(arrange(name_rows(df), a)) name_rows <- function(df) { stopifnot(is.data.frame(df)) rn_col <- !is.null(df$.rownames) if (rn_col) { rownames(df) <- df$.rownames df$.rownames <- NULL } else { df$.rownames <- rownames(df) rownames(df) <- NULL } df } plyr/R/strip-splits.r0000644000175100001440000000103512034020705014307 0ustar hornikusers#' Remove splitting variables from a data frame. #' #' This is useful when you want to perform some operation to every column #' in the data frame, except the variables that you have used to split it. #' These variables will be automatically added back on to the result when #' combining all results together. #' #' @param df data frame produced by \code{d*ply}. #' @export #' @examples #' dlply(mtcars, c("vs", "am")) #' dlply(mtcars, c("vs", "am"), strip_splits) strip_splits <- function(df) { df[setdiff(names(df), attr(df, "vars"))] } plyr/R/split.r0000644000175100001440000000203212034020705012763 0ustar hornikusers#' Subset splits. #' #' Subset splits, ensuring that labels keep matching #' #' @keywords internal #' @param x split object #' @param i index #' @param ... unused #' @method [ split #' @rdname get-split #' @export "[.split" <- function(x, i, ...) { structure( NextMethod(), class = c("split", "list"), split_type = attr(x, "split_type"), split_labels = attr(x, "split_labels")[i, , drop = FALSE] ) } #' Convert split list to regular list. #' #' Strip off label related attributed to make a strip list as regular list #' #' @keywords internal #' @param x object to convert to a list #' @param ... unused #' @method as.list split #' @export as.list.split <- function(x, ...) { attr(x, "split_type") <- NULL attr(x, "split_labels") <- NULL class(x) <- setdiff(class(x), "split") x } #' Print split. #' #' Don't print labels, so it appears like a regular list #' #' @keywords internal #' @param x object to print #' @param ... unused #' @method print split #' @export print.split <- function(x, ...) { print(as.list(x)) } plyr/R/splitter-a.r0000644000175100001440000000700712512025504013726 0ustar hornikusers#' Split an array by .margins. #' #' Split a 2d or higher data structure into lower-d pieces based #' #' This is the workhorse of the \code{a*ply} functions. Given a >1 d #' data structure (matrix, array, data.frame), it splits it into pieces #' based on the subscripts that you supply. Each piece is a lower dimensional #' slice. #' #' The margins are specified in the same way as \code{\link{apply}}, but #' \code{splitter_a} just splits up the data, while \code{apply} also #' applies a function and combines the pieces back together. This function #' also includes enough information to recreate the split from attributes on #' the list of pieces. #' #' @param data >1d data structure (matrix, data.frame or array) #' @param .margins a vector giving the subscripts to split up \code{data} by. # 1 splits up by rows, 2 by columns and c(1,2) by rows and columns #' @param .expand if splitting a dataframe by row, should output be 1d #' (expand = FALSE), with an element for each row; or nd (expand = TRUE), #' with a dimension for each variable. #' @param .id names of the split label. #' Pass \code{NULL} to avoid creation of split labels. #' Omit or pass \code{NA} to use the default names #' \code{"X1"}, \code{"X2"}, \ldots. #' Otherwise, this argument must have the same length as #' \code{.margins}. #' @return a list of lower-d slices, with attributes that record split details #' @family splitter functions #' @keywords internal #' @examples #' plyr:::splitter_a(mtcars, 1) #' plyr:::splitter_a(mtcars, 2) #' #' plyr:::splitter_a(ozone, 2) #' plyr:::splitter_a(ozone, 3) #' plyr:::splitter_a(ozone, 1:2) splitter_a <- function(data, .margins = 1L, .expand = TRUE, .id = NA) { .margins <- as.integer(.margins) if (!is.null(.id)) { if (any(is.na(.id))) { .id <- paste("X", seq_along(.margins), sep="") } else { if (length(.id) != length(.margins)) { stop(".id argument must be of length ", length(.margins), " (=number of margins)") } .id <- as.character(.id) } } if (length(.margins) == 0) { return(list(data)) } if (!all(.margins %in% seq_len(dims(data)))) stop("Invalid margin") dimensions <- lapply(amv_dim(data), seq_len) dimensions[-.margins] <- list("") indices <- expand.grid(dimensions, KEEP.OUT.ATTRS = FALSE, stringsAsFactors = FALSE) names(indices) <- paste("X", seq_len(ncol(indices)), sep="") # Ensure indices are ordered in the way in which they should appear in the # output - last margin varies fastest ord <- do.call(order, indices[rev(.margins)]) indices <- unrowname(indices[ord, , drop = FALSE]) il <- indexed_array(environment(), indices) if (is.data.frame(data) && .expand && identical(.margins, 1L)) { split_labels <- data } else { if (is.data.frame(data)) { dnames <- list(seq_len(nrow(data)), names(data)) } else { dnames <- amv_dimnames(data) if (any(vapply(dnames, anyDuplicated, integer(1)) != 0)) { warning("Duplicate names not supported.", call. = FALSE) } dnames <- lapply(dnames, function(x) factor(x, levels = x)) } raw <- mapply("[", dnames[.margins], indices[.margins], SIMPLIFY = FALSE) split_labels <- data.frame(raw, stringsAsFactors = FALSE) if (!is.null(names(dnames))) { names(split_labels) <- names(dnames)[.margins] } else { names(split_labels) <- .id } if (is.null(.id)) split_labels <- NULL } structure( il, class = c(class(il), "split", "list"), split_type = "array", split_labels = split_labels ) } plyr/R/loop_apply.R0000644000175100001440000000064612560701051013763 0ustar hornikusers#' Loop apply #' #' An optimised version of lapply for the special case of operating on #' \code{seq_len(n)} #' #' @param n length of sequence #' @param f function to apply to each integer #' @param env environment in which to evaluate function #' @useDynLib plyr #' @useDynLib plyr loop_apply_ #' @keywords internal manip loop_apply <- function(n, f, env = parent.frame()) { .Call(loop_apply_, as.integer(n), f, env) } plyr/R/indexed-array.r0000644000175100001440000000261312303221212014364 0ustar hornikusers#' An indexed array. #' #' Create a indexed array, a space efficient way of indexing into a large #' array. #' #' @param env environment containing data frame #' @param index list of indices #' @keywords internal #' @aliases indexed_array [[.indexed_array names.indexed_array #' length.indexed_array indexed_array <- function(env, index) { exact <- all(unlist(llply(index, is.numeric))) # Situations that should use [ # * data.frame # * normal array # * normal vector # * list-array with inexact indexing # # Situations that should use [[ # * list # * list-array with exact indexing if (is.list(env$data)) { if (is.data.frame(env$data) || (is.array(env$data) && !exact)) { subs <- "[" } else { subs <- "[[" } } else { subs <- "[" } # Don't drop if data is a data frame drop <- !is.data.frame(env$data) structure( list(env = env, index = index, drop = drop, subs = as.name(subs)), class = c("indexed_array", "indexed") ) } #' @export length.indexed_array <- function(x) nrow(x$index) #' @export "[[.indexed_array" <- function(x, i) { indices <- unname(x$index[i, , drop = TRUE]) indices <- lapply(indices, function(x) if (x == "") bquote() else x) call <- as.call(c( list(x$subs, quote(x$env$data)), indices, list(drop = x$drop))) eval(call) } #' @export names.indexed_array <- function(x) rownames(x$index) plyr/R/dlply.r0000644000175100001440000000221412506330463012767 0ustar hornikusers#' Split data frame, apply function, and return results in a list. #' #' For each subset of a data frame, apply function then combine results into a #' list. \code{dlply} is similar to \code{\link{by}} except that the results #' are returned in a different format. #' To apply a function for each row, use \code{\link{alply}} with #' \code{.margins} set to \code{1}. #' #' @template ply #' @template d- #' @template -l #' @export #' @examples #' linmod <- function(df) { #' lm(rbi ~ year, data = mutate(df, year = year - min(year))) #' } #' models <- dlply(baseball, .(id), linmod) #' models[[1]] #' #' coef <- ldply(models, coef) #' with(coef, plot(`(Intercept)`, year)) #' qual <- laply(models, function(mod) summary(mod)$r.squared) #' hist(qual) dlply <- function(.data, .variables, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) { .variables <- as.quoted(.variables) pieces <- splitter_d(.data, .variables, drop = .drop) llply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts) } plyr/R/laply.r0000644000175100001440000000230412043515037012762 0ustar hornikusers#' Split list, apply function, and return results in an array. #' #' For each element of a list, apply function then combine results into an #' array. #' #' \code{laply} is similar in spirit to \code{\link{sapply}} except #' that it will always return an array, and the output is transposed with #' respect \code{sapply} - each element of the list corresponds to a row, #' not a column. #' #' @template ply #' @template l- #' @template -a #' @export #' @examples #' laply(baseball, is.factor) #' # cf #' ldply(baseball, is.factor) #' colwise(is.factor)(baseball) #' #' laply(seq_len(10), identity) #' laply(seq_len(10), rep, times = 4) #' laply(seq_len(10), matrix, nrow = 2, ncol = 2) laply <- function(.data, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) { if (is.character(.fun)) .fun <- do.call("each", as.list(.fun)) if (!is.function(.fun)) stop(".fun is not a function.") if (!inherits(.data, "split")) .data <- as.list(.data) res <- llply(.data = .data, .fun = .fun, ..., .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts) list_to_array(res, attr(.data, "split_labels"), .drop) } plyr/R/vaggregate.r0000644000175100001440000000401312560701400013747 0ustar hornikusers#' Vector aggregate. #' #' This function is somewhat similar to \code{tapply}, but is designed for #' use in conjunction with \code{id}. It is simpler in that it only #' accepts a single grouping vector (use \code{\link{id}} if you have more) #' and uses \code{\link{vapply}} internally, using the \code{.default} value #' as the template. #' #' \code{vaggregate} should be faster than \code{tapply} in most situations #' because it avoids making a copy of the data. #' #' @param .value vector of values to aggregate #' @param .group grouping vector #' @param .fun aggregation function #' @param ... other arguments passed on to \code{.fun} #' @param .default default value used for missing groups. This argument is #' also used as the template for function output. #' @param .n total number of groups #' @export #' @examples #' # Some examples of use borrowed from ?tapply #' n <- 17; fac <- factor(rep(1:3, length.out = n), levels = 1:5) #' table(fac) #' vaggregate(1:n, fac, sum) #' vaggregate(1:n, fac, sum, .default = NA_integer_) #' vaggregate(1:n, fac, range) #' vaggregate(1:n, fac, range, .default = c(NA, NA) + 0) #' vaggregate(1:n, fac, quantile) #' # Unlike tapply, vaggregate does not support multi-d output: #' tapply(warpbreaks$breaks, warpbreaks[,-1], sum) #' vaggregate(warpbreaks$breaks, id(warpbreaks[,-1]), sum) #' #' # But it is about 10x faster #' x <- rnorm(1e6) #' y1 <- sample.int(10, 1e6, replace = TRUE) #' system.time(tapply(x, y1, mean)) #' system.time(vaggregate(x, y1, mean)) vaggregate <- function(.value, .group, .fun, ..., .default = NULL, .n = nlevels(.group)) { if (!is.integer(.group)) { if (is.list(.group)) { .group <- id(.group) } else { .group <- id(list(.group)) } } if (is.null(.default)) { .default <- .fun(.value[0], ...) } fun <- function(i) { if (length(i) == 0) return(.default) .fun(.value[i], ...) } indices <- split_indices(.group, .n) vapply(indices, fun, .default) } nlevels <- function(x) { n <- attr(x, "n") if (!is.null(n)) n else max(x) } plyr/R/aaply.r0000644000175100001440000000310212512025470012742 0ustar hornikusers#' Split array, apply function, and return results in an array. #' #' For each slice of an array, apply function, keeping results as an array. #' #' This function is very similar to \code{\link{apply}}, except that it will #' always return an array, and when the function returns >1 d data structures, #' those dimensions are added on to the highest dimensions, rather than the #' lowest dimensions. This makes \code{aaply} idempotent, so that #' \code{aaply(input, X, identity)} is equivalent to \code{aperm(input, X)}. #' #' @section Warning:Passing a data frame as first argument may lead to #' unexpected results, see \url{https://github.com/hadley/plyr/issues/212}. #' #' @template ply #' @template a- #' @template -a #' @export #' @examples #' dim(ozone) #' aaply(ozone, 1, mean) #' aaply(ozone, 1, mean, .drop = FALSE) #' aaply(ozone, 3, mean) #' aaply(ozone, c(1,2), mean) #' #' dim(aaply(ozone, c(1,2), mean)) #' dim(aaply(ozone, c(1,2), mean, .drop = FALSE)) #' #' aaply(ozone, 1, each(min, max)) #' aaply(ozone, 3, each(min, max)) #' #' standardise <- function(x) (x - min(x)) / (max(x) - min(x)) #' aaply(ozone, 3, standardise) #' aaply(ozone, 1:2, standardise) #' #' aaply(ozone, 1:2, diff) aaply <- function(.data, .margins, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) { pieces <- splitter_a(.data, .margins, .expand) laply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .drop = .drop, .parallel = .parallel, .paropts = .paropts) } plyr/R/splat.r0000644000175100001440000000131412034020705012755 0ustar hornikusers#' `Splat' arguments to a function. #' #' Wraps a function in do.call, so instead of taking multiple arguments, it #' takes a single named list which will be interpreted as its arguments. #' #' This is useful when you want to pass a function a row of data frame or #' array, and don't want to manually pull it apart in your function. #' #' @param flat function to splat #' @return a function #' @export #' @examples #' hp_per_cyl <- function(hp, cyl, ...) hp / cyl #' splat(hp_per_cyl)(mtcars[1,]) #' splat(hp_per_cyl)(mtcars) #' #' f <- function(mpg, wt, ...) data.frame(mw = mpg / wt) #' ddply(mtcars, .(cyl), splat(f)) splat <- function(flat) { function(args, ...) { do.call(flat, c(args, list(...))) } } plyr/R/indexed-data-frame.r0000644000175100001440000000225212303221212015246 0ustar hornikusers#' An indexed data frame. #' #' Create a indexed list, a space efficient way of indexing into a large data frame #' #' @param env environment containing data frame #' @param index list of indices #' @param vars a character vector giving the variables used for subsetting #' @keywords internal indexed_df <- function(data, index, vars) { structure( list(data = data, index = index, vars = vars), class = c("indexed", "indexed_df") ) } #' @export "[[.indexed_df" <- function(x, i) { out <- extract_rows(x$data, x$index[[i]]) attr(out, "vars") <- x$vars out } extract_rows <- function(x, i) { if (!is.data.frame(x)) return(x[i, , drop = FALSE]) n <- ncol(x) out <- lapply(seq_len(n), extract_col_rows, df = x, i = i) names(out) <- names(x) class(out) <- "data.frame" attr(out, "row.names") <- c(NA_integer_, -length(out[[1]])) out } extract_col_rows <- function(df, i, j) { col <- .subset2(df, j) if (isS4(col)) return(col[i]) if (is.null(attr(col, "class"))) { .subset(col, i) } else if (inherits(col, "factor") || inherits(col, "POSIXt")) { out <- .subset(col, i) attributes(out) <- attributes(col) out } else { col[i] } } plyr/R/rbind-fill-matrix.r0000644000175100001440000000466412560701400015173 0ustar hornikusers#' Bind matrices by row, and fill missing columns with NA. #' #' The matrices are bound together using their column names or the column #' indices (in that order of precedence.) Numeric columns may be converted to #' character beforehand, e.g. using format. If a matrix doesn't have #' colnames, the column number is used. Note that this means that a #' column with name \code{"1"} is merged with the first column of a matrix #' without name and so on. The returned matrix will always have column names. #' #' Vectors are converted to 1-column matrices. #' #' Matrices of factors are not supported. (They are anyways quite #' inconvenient.) You may convert them first to either numeric or character #' matrices. If a matrices of different types are merged, then normal #' covnersion precendence will apply. #' #' Row names are ignored. #' #' @param ... the matrices to rbind. The first argument can be a list of #' matrices, in which case all other arguments are ignored. #' @return a matrix with column names #' @author C. Beleites #' @seealso \code{\link[base]{rbind}}, \code{\link[base]{cbind}}, #' \code{\link[plyr]{rbind.fill}} #' @family binding functions #' @export #' @keywords manip #' @examples #' A <- matrix (1:4, 2) #' B <- matrix (6:11, 2) #' A #' B #' rbind.fill.matrix (A, B) #' #' colnames (A) <- c (3, 1) #' A #' rbind.fill.matrix (A, B) #' #' rbind.fill.matrix (A, 99) rbind.fill.matrix <- function(...) { matrices <- list(...) if (length(matrices) == 0) return() if (is.list(matrices[[1]]) && !is.matrix(matrices[[1]])) { matrices <- matrices[[1]] } ## check the arguments tmp <- unlist(lapply(matrices, is.factor)) if (any(tmp)) { stop("Input ", paste(which(tmp), collapse = ", "), " is a factor and ", "needs to be converted first to either numeric or character.") } matrices[] <- lapply(matrices, as.matrix) # Work out common column names lcols <- lapply(matrices, function(x) amv_dimnames(x)[[2]]) cols <- unique(unlist(lcols)) # Calculate rows in output rows <- unlist(lapply(matrices, nrow)) nrows <- sum(rows) # Generate output template output <- matrix(NA, nrow = nrows, ncol = length(cols)) colnames(output) <- cols # Compute start and length for each matrix pos <- matrix(c(cumsum(rows) - rows + 1, rows), ncol = 2) ## fill in the new matrix for (i in seq_along(rows)) { rng <- seq(pos[i, 1], length.out = pos[i, 2]) output[rng, lcols[[i]]] <- matrices[[i]] } output } plyr/R/join-all.r0000644000175100001440000000110212512025470013337 0ustar hornikusers#' Recursively join a list of data frames. #' #' @param dfs A list of data frames. #' @inheritParams join #' @export #' @examples #' dfs <- list( #' a = data.frame(x = 1:10, a = runif(10)), #' b = data.frame(x = 1:10, b = runif(10)), #' c = data.frame(x = 1:10, c = runif(10)) #' ) #' join_all(dfs) #' join_all(dfs, "x") join_all <- function(dfs, by = NULL, type = "left", match = "all") { if (length(dfs) == 1) return(dfs[[1]]) joined <- dfs[[1]] for (i in 2:length(dfs)) { joined <- join(joined, dfs[[i]], by = by, type = type, match = match) } joined } plyr/R/quickdf.r0000644000175100001440000000133012034574010013261 0ustar hornikusers#' Quick data frame. #' #' Experimental version of \code{\link{as.data.frame}} that converts a #' list to a data frame, but doesn't do any checks to make sure it's a #' valid format. Much faster. #' #' @param list list to convert to data frame #' @keywords internal #' @export quickdf <- function(list) { rows <- unique(unlist(lapply(list, NROW))) stopifnot(length(rows) == 1) names(list) <- make_names(list, "X") class(list) <- "data.frame" attr(list, "row.names") <- c(NA_integer_, -rows) list } make_names <- function(x, prefix = "X") { nm <- names(x) if (is.null(nm)) { nm <- rep.int("", length(x)) } n <- sum(nm == "", na.rm = TRUE) nm[nm == ""] <- paste(prefix, seq_len(n), sep = "") nm } plyr/R/raply.r0000644000175100001440000000313512303221212012757 0ustar hornikusers#' Replicate expression and return results in a array. #' #' Evalulate expression n times then combine results into an array #' #' This function runs an expression multiple times, and combines the #' result into a data frame. If there are no results, then this function #' returns a vector of length 0 (\code{vector(0)}). #' This function is equivalent to \code{\link{replicate}}, but will always #' return results as a vector, matrix or array. #' #' @keywords manip #' @param .n number of times to evaluate the expression #' @param .expr expression to evaluate #' @param .progress name of the progress bar to use, see \code{\link{create_progress_bar}} #' @return if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions) #' @param .drop should extra dimensions of length 1 be dropped, simplifying the output. Defaults to \code{TRUE} #' @export #' @references Hadley Wickham (2011). The Split-Apply-Combine Strategy for #' Data Analysis. Journal of Statistical Software, 40(1), 1-29. #' \url{http://www.jstatsoft.org/v40/i01/}. #' @examples #' raply(100, mean(runif(100))) #' raply(100, each(mean, var)(runif(100))) #' #' raply(10, runif(4)) #' raply(10, matrix(runif(4), nrow=2)) #' #' # See the central limit theorem in action #' hist(raply(1000, mean(rexp(10)))) #' hist(raply(1000, mean(rexp(100)))) #' hist(raply(1000, mean(rexp(1000)))) raply <- function(.n, .expr, .progress = "none", .drop = TRUE) { res <- .rlply_worker(.n, .progress, eval.parent(substitute(function() .expr))) list_to_array(res, NULL, .drop) } plyr/R/daply.r0000644000175100001440000000372712506330463012766 0ustar hornikusers#' Split data frame, apply function, and return results in an array. #' #' For each subset of data frame, apply function then combine results into #' an array. \code{daply} with a function that operates column-wise is #' similar to \code{\link{aggregate}}. #' To apply a function for each row, use \code{\link{aaply}} with #' \code{.margins} set to \code{1}. #' #' @template ply #' @section Input: This function splits data frames by variables. #' @section Output: #' If there are no results, then this function will return a vector of #' length 0 (\code{vector()}). #' @param .data data frame to be processed #' @param .variables variables to split data frame by, as quoted #' variables, a formula or character vector #' @param .drop_i should combinations of variables that do not appear in the #' input data be preserved (FALSE) or dropped (TRUE, default) #' @return if results are atomic with same type and dimensionality, a #' vector, matrix or array; otherwise, a list-array (a list with #' dimensions) #' @param .drop_o should extra dimensions of length 1 in the output be #' dropped, simplifying the output. Defaults to \code{TRUE} #' @family array output #' @family data frame input #' @export #' @examples #' daply(baseball, .(year), nrow) #' #' # Several different ways of summarising by variables that should not be #' # included in the summary #' #' daply(baseball[, c(2, 6:9)], .(year), colwise(mean)) #' daply(baseball[, 6:9], .(baseball$year), colwise(mean)) #' daply(baseball, .(year), function(df) colwise(mean)(df[, 6:9])) daply <- function(.data, .variables, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop_i = TRUE, .drop_o = TRUE, .parallel = FALSE, .paropts = NULL) { .variables <- as.quoted(.variables) pieces <- splitter_d(.data, .variables, drop = .drop_i) laply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .drop = .drop_o, .parallel = .parallel, .paropts = .paropts) } plyr/R/rbind-fill.r0000644000175100001440000001567512560701400013675 0ustar hornikusers#' Combine data.frames by row, filling in missing columns. #' #' \code{rbind}s a list of data frames filling missing columns with NA. #' #' This is an enhancement to \code{\link{rbind}} that adds in columns #' that are not present in all inputs, accepts a list of data frames, and #' operates substantially faster. #' #' Column names and types in the output will appear in the order in which #' they were encountered. #' #' Unordered factor columns will have their levels unified and #' character data bound with factors will be converted to #' character. POSIXct data will be converted to be in the same time #' zone. Array and matrix columns must have identical dimensions after #' the row count. Aside from these there are no general checks that #' each column is of consistent data type. #' #' @param ... input data frames to row bind together. The first argument can #' be a list of data frames, in which case all other arguments are ignored. #' Any NULL inputs are silently dropped. If all inputs are NULL, the output #' is NULL. #' @keywords manip #' @family binding functions #' @return a single data frame #' @export #' @examples #' rbind.fill(mtcars[c("mpg", "wt")], mtcars[c("wt", "cyl")]) rbind.fill <- function(...) { dfs <- list(...) if (length(dfs) == 0) return() if (is.list(dfs[[1]]) && !is.data.frame(dfs[[1]])) { dfs <- dfs[[1]] } dfs <- compact(dfs) if (length(dfs) == 0) return() if (length(dfs) == 1) return(dfs[[1]]) # Check that all inputs are data frames is_df <- vapply(dfs, is.data.frame, logical(1)) if (any(!is_df)) { stop("All inputs to rbind.fill must be data.frames", call. = FALSE) } # Calculate rows in output # Using .row_names_info directly is about 6 times faster than using nrow rows <- unlist(lapply(dfs, .row_names_info, 2L)) nrows <- sum(rows) # Generate output template ot <- output_template(dfs, nrows) setters <- ot$setters getters <- ot$getters # Case of zero column inputs if (length(setters) == 0) { return(as.data.frame(matrix(nrow = nrows, ncol = 0))) } # Compute start and length for each data frame pos <- matrix(c(cumsum(rows) - rows + 1, rows), ncol = 2) # Copy inputs into output for (i in seq_along(rows)) { rng <- seq(pos[i, 1], length.out = pos[i, 2]) df <- dfs[[i]] for (var in names(df)) { setters[[var]](rng, df[[var]]) # nolint } } quickdf(lapply(getters, function(x) x())) } # Construct named lists of setters and getters. output_template <- function(dfs, nrows) { vars <- unique(unlist(lapply(dfs, base::names))) # ~ 125,000/s output <- vector("list", length(vars)) names(output) <- vars seen <- rep(FALSE, length(output)) names(seen) <- vars for (df in dfs) { matching <- intersect(names(df), vars[!seen]) for (var in matching) { output[[var]] <- allocate_column(df[[var]], nrows, dfs, var) } seen[matching] <- TRUE if (all(seen)) break # Quit as soon as all done } list(setters=lapply(output, `[[`, "set"), getters=lapply(output, `[[`, "get")) } # Allocate space for a column to be filled out by rbind.fill. # # @param example An example vector taken from the first data frame # @param nrows The number of rows # @param dfs The list of data frames that will be combined. This may # need to be scanned (to unify factor levels or check array dimension # consistency) # @param var The name of the column. # # @return A list of two accessor functions `list(set=<>, get=<>)`. # `.$set(rows, value)` stores data in the given rows. # `.$get()` retreives the column data. allocate_column <- function(example, nrows, dfs, var) { #Compute the attributes of the column and allocate. Returns a #mutator function f(rows, values) rather than the actual allocated #column. a <- attributes(example) type <- typeof(example) class <- a$class isList <- is.recursive(example) a$names <- NULL a$class <- NULL if (is.data.frame(example)) { stop("Data frame column '", var, "' not supported by rbind.fill") } if (is.array(example)) { if (length(dim(example)) > 1) { if ("dimnames" %in% names(a)) { a$dimnames[1] <- list(NULL) if (!is.null(names(a$dimnames))) names(a$dimnames)[1] <- "" } # Check that all other args have consistent dims df_has <- vapply(dfs, function(df) var %in% names(df), FALSE) dims <- unique(lapply(dfs[df_has], function(df) dim(df[[var]])[-1])) if (length(dims) > 1) stop("Array variable ", var, " has inconsistent dims") a$dim <- c(nrows, dim(example)[-1]) length <- prod(a$dim) } else { #1d arrays devolve into vectors a$dim <- NULL a$dimnames <- NULL length <- nrows } } else { length <- nrows } if (is.factor(example)) { df_has <- vapply(dfs, function(df) var %in% names(df), FALSE) isfactor <- vapply(dfs[df_has], function(df) is.factor(df[[var]]), FALSE) if (all(isfactor)) { #will be referenced by the mutator levels <- unique(unlist(lapply(dfs[df_has], function(df) levels(df[[var]])))) a$levels <- levels handler <- "factor" } else { #fall back on character type <- "character" handler <- "character" class <- NULL a$levels <- NULL } } else if (inherits(example, "POSIXt")) { tzone <- attr(example, "tzone") class <- c("POSIXct", "POSIXt") type <- "double" handler <- "time" } else { handler <- type } column <- vector(type, length) if (!isList) { column[] <- NA } attributes(column) <- a #construct an assignment expression like `column[rows, ...] <- what` #appropriate for the number of dims assignment <- make_assignment_call(length(a$dim)) #It is especially important never to inspect the column when in the #main rbind.fill loop. To avoid that, we've done specialization #(figuring out the array assignment form and data type) ahead of #time, and instead of returning the column, we return accessor #functions that close over the column. setter <- switch( handler, character = function(rows, what) { what <- as.character(what) eval(assignment) }, factor = function(rows, what) { #duplicate what `[<-.factor` does what <- match(what, levels) #no need to check since we already computed levels eval(assignment) }, time = function(rows, what) { what <- as.POSIXct(what, tz = tzone) eval(assignment) }, function(rows, what) { eval(assignment) }) getter <- function() { class(column) <<- class column } list(set=setter, get=getter) } #construct an assignment expression like `column[rows, ...] <- what` #appropriate for the number of dims make_assignment_call <- function(ndims) { assignment <- quote(column[rows] <<- what) if (ndims >= 2) { assignment[[2]] <- as.call( c(as.list(assignment[[2]]), rep(list(quote(expr = )), ndims - 1))) } assignment } plyr/R/summarise.r0000644000175100001440000000337712512025470013657 0ustar hornikusers#' Summarise a data frame. #' #' Summarise works in an analogous way to \code{\link{mutate}}, except #' instead of adding columns to an existing data frame, it creates a new #' data frame. This is particularly useful in conjunction with #' \code{\link{ddply}} as it makes it easy to perform group-wise summaries. #' #' @param .data the data frame to be summarised #' @param ... further arguments of the form var = value #' @keywords manip #' @aliases summarise summarize #' @export summarise summarize #' @note Be careful when using existing variable names; the corresponding #' columns will be immediately updated with the new data and this can affect #' subsequent operations referring to those variables. #' @examples #' # Let's extract the number of teams and total period of time #' # covered by the baseball dataframe #' summarise(baseball, #' duration = max(year) - min(year), #' nteams = length(unique(team))) #' # Combine with ddply to do that for each separate id #' ddply(baseball, "id", summarise, #' duration = max(year) - min(year), #' nteams = length(unique(team))) summarise <- function(.data, ...) { stopifnot(is.data.frame(.data) || is.list(.data) || is.environment(.data)) cols <- as.list(substitute(list(...))[-1]) # ... not a named list, figure out names by deparsing call if(is.null(names(cols))) { missing_names <- rep(TRUE, length(cols)) } else { missing_names <- names(cols) == "" } if (any(missing_names)) { names <- unname(unlist(lapply(match.call(expand.dots = FALSE)$`...`, deparse))) # nolint names(cols)[missing_names] <- names[missing_names] } .data <- as.list(.data) for (col in names(cols)) { .data[[col]] <- eval(cols[[col]], .data, parent.frame()) } quickdf(.data[names(cols)]) } summarize <- summarise plyr/R/utils.r0000644000175100001440000000336712512025470013011 0ustar hornikusers#' Determine if a vector is discrete. #' #' A discrete vector is a factor or a character vector #' #' @param x vector to test #' @keywords internal #' @export #' @examples #' is.discrete(1:10) #' is.discrete(c("a", "b", "c")) #' is.discrete(factor(c("a", "b", "c"))) is.discrete <- function(x) is.factor(x) || is.character(x) || is.logical(x) #' Un-rowname. #' #' Strip rownames from an object #' #' @keywords internal #' @param x data frame #' @export unrowname <- function(x) { rownames(x) <- NULL x } #' Function that always returns true. #' #' @param ... all input ignored #' @return \code{TRUE} #' @keywords internal #' @seealso \code{\link{colwise}} which uses it #' @export true <- function(...) TRUE #' Compact list. #' #' Remove all NULL entries from a list #' #' @param l list #' @keywords manip internal #' @export compact <- function(l) Filter(Negate(is.null), l) #' Number of unique values. #' #' Calculate number of unique values of a variable as efficiently as possible. #' #' @param x vector #' @keywords internal nunique <- function(x) { if (is.factor(x)) { length(levels(x)) } else { length(unique(x)) } } #' Check if a data frame is empty. #' #' Empty if it's null or it has 0 rows or columns #' #' @param df data frame to check #' @keywords internal #' @export empty <- function(df) { (is.null(df) || nrow(df) == 0 || ncol(df) == 0) } #' Is a formula? #' Checks if argument is a formula #' #' @keywords internal #' @export is.formula <- function(x) inherits(x, "formula") "%||%" <- function(a, b) if (is.null(a)) b else a .matrix_to_df <- function(.data) { cnames <- colnames(.data) if (is.null(cnames)) cnames <- rep("", ncol(.data)) .data <- as.data.frame(.data, stringsAsFactors = FALSE) colnames(.data) <- cnames .data } plyr/R/join.r0000644000175100001440000001270012512025470012577 0ustar hornikusers#' Join two data frames together. #' #' Join, like merge, is designed for the types of problems #' where you would use a sql join. #' #' The four join types return: #' #' \itemize{ #' \item \code{inner}: only rows with matching keys in both x and y #' \item \code{left}: all rows in x, adding matching columns from y #' \item \code{right}: all rows in y, adding matching columns from x #' \item \code{full}: all rows in x with matching columns in y, then the #' rows of y that don't match x. #' } #' #' Note that from plyr 1.5, \code{join} will (by default) return all matches, #' not just the first match, as it did previously. #' #' Unlike merge, preserves the order of x no matter what join type is used. #' If needed, rows from y will be added to the bottom. Join is often faster #' than merge, although it is somewhat less featureful - it currently offers #' no way to rename output or merge on different variables in the x and y #' data frames. #' #' @param x data frame #' @param y data frame #' @param by character vector of variable names to join by. If omitted, will #' match on all common variables. #' @param type type of join: left (default), right, inner or full. See #' details for more information. #' @param match how should duplicate ids be matched? Either match just the #' \code{"first"} matching row, or match \code{"all"} matching rows. Defaults #' to \code{"all"} for compatibility with merge, but \code{"first"} is #' significantly faster. #' @keywords manip #' @export #' @examples #' first <- ddply(baseball, "id", summarise, first = min(year)) #' system.time(b2 <- merge(baseball, first, by = "id", all.x = TRUE)) #' system.time(b3 <- join(baseball, first, by = "id")) #' #' b2 <- arrange(b2, id, year, stint) #' b3 <- arrange(b3, id, year, stint) #' stopifnot(all.equal(b2, b3)) join <- function(x, y, by = NULL, type = "left", match = "all") { type <- match.arg(type, c("left", "right", "inner", "full")) match <- match.arg(match, c("first", "all")) if (is.null(by)) { by <- intersect(names(x), names(y)) message("Joining by: ", paste(by, collapse = ", ")) } switch(match, "first" = .join_first(x, y, by, type), "all" = .join_all(x, y, by, type)) } .join_first <- function(x, y, by, type) { keys <- join.keys(x, y, by = by) x.cols <- setdiff(names(x), by) y.cols <- setdiff(names(y), by) if (type == "inner") { x.match <- match(keys$y, keys$x, 0) y.match <- match(keys$x, keys$y, 0) cbind( x[x.match, by, drop = FALSE], x[x.match, x.cols, drop = FALSE], y[y.match, y.cols, drop = FALSE] ) } else if (type == "left") { y.match <- match(keys$x, keys$y) y.matched <- unrowname(y[y.match, y.cols, drop = FALSE]) cbind(x[by], x[x.cols], y.matched) } else if (type == "right") { if (any(duplicated(keys$y))) { stop("Duplicated key in y", call. = FALSE) } x.match <- match(keys$y, keys$x) x.matched <- unrowname(x[x.match, x.cols, drop = FALSE]) cbind(y[by], x.matched, y[y.cols]) } else if (type == "full") { # x with matching y's then any unmatched ys y.match <- match(keys$x, keys$y) y.matched <- unrowname(y[y.match, y.cols, drop = FALSE]) y.unmatch <- is.na(match(keys$y, keys$x)) rbind.fill(cbind(x[c(by, x.cols)], y.matched), y[y.unmatch, , drop = FALSE]) } } # Basic idea to perform a full cartesian product of the two data frames # and then evaluate which rows meet the merging criteria. But that is # horrendously inefficient, so we do various types of hashing, implemented # in R as split_indices .join_all <- function(x, y, by, type) { x.cols <- setdiff(names(x), by) y.cols <- setdiff(names(y), by) if (type == "inner") { ids <- join_ids(x, y, by) out <- cbind(x[ids$x, , drop = FALSE], y[ids$y, y.cols, drop = FALSE]) } else if (type == "left") { ids <- join_ids(x, y, by, all = TRUE) out <- cbind(x[ids$x, , drop = FALSE], y[ids$y, y.cols, drop = FALSE]) } else if (type == "right") { # Flip x and y, but make sure to put new columns in the right place ids <- join_ids(y, x, by, all = TRUE) out <- cbind( y[ids$x, by, drop = FALSE], x[ids$y, x.cols, drop = FALSE], y[ids$x, y.cols, drop = FALSE] ) } else if (type == "full") { # x's with all matching y's, then non-matching y's - just the same as # join.first ids <- join_ids(x, y, by, all = TRUE) matched <- cbind(x[ids$x, , drop = FALSE], y[ids$y, y.cols, drop = FALSE]) unmatched <- y[setdiff(seq_len(nrow(y)), ids$y), , drop = FALSE] out <- rbind.fill(matched, unmatched) } unrowname(out) } join_ids <- function(x, y, by, all = FALSE) { keys <- join.keys(x, y, by = by) ys <- split_indices(keys$y, keys$n) length(ys) <- keys$n if (all) { # replace NULL with NA to preserve those x's without matching y's nulls <- vapply(ys, function(x) length(x) == 0, logical(1)) ys[nulls] <- list(NA_real_) } ys <- ys[keys$x] xs <- rep(seq_along(keys$x), vapply(ys, length, numeric(1))) list(x = xs, y = unlist(ys)) } #' Join keys. #' Given two data frames, create a unique key for each row. #' #' @param x data frame #' @param y data frame #' @param by character vector of variable names to join by #' @keywords internal #' @export join.keys <- function(x, y, by) { joint <- rbind.fill(x[by], y[by]) keys <- id(joint, drop = TRUE) n_x <- nrow(x) n_y <- nrow(y) list( x = keys[seq_len(n_x)], y = keys[n_x + seq_len(n_y)], n = attr(keys, "n") ) } plyr/R/rdply.r0000644000175100001440000000311012511213671012766 0ustar hornikusers#' Replicate expression and return results in a data frame. #' #' Evaluate expression n times then combine results into a data frame #' #' This function runs an expression multiple times, and combines the result into #' a data frame. If there are no results, then this function returns a data #' frame with zero rows and columns (\code{data.frame()}). This function is #' equivalent to \code{\link{replicate}}, but will always return results as a #' data frame. #' #' #' @keywords manip #' @param .n number of times to evaluate the expression #' @param .expr expression to evaluate #' @param .progress name of the progress bar to use, see #' \code{\link{create_progress_bar}} #' @param .id name of the index column. Pass \code{NULL} to avoid creation of #' the index column. For compatibility, omit this argument or pass \code{NA} #' to use \code{".n"} as column name. #' @return a data frame #' @export #' @references Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data #' Analysis. Journal of Statistical Software, 40(1), 1-29. #' \url{http://www.jstatsoft.org/v40/i01/}. #' @examples #' rdply(20, mean(runif(100))) #' rdply(20, each(mean, var)(runif(100))) #' rdply(20, data.frame(x = runif(2))) rdply <- function(.n, .expr, .progress = "none", .id = NA) { res <- .rlply_worker(.n, .progress, eval.parent(substitute(function() .expr))) names(res) <- seq_len(.n) if (is.null(.id)) { labels <- NULL } else { labels <- data.frame(.n = seq_len(.n)) if (!is.na(.id)) { names(labels) <- .id } } list_to_dataframe(res, labels) } plyr/R/plyr-deprecated.r0000644000175100001440000000053712512025470014731 0ustar hornikusers#' Deprecated Functions in Package plyr #' #' These functions are provided for compatibility with older versions of #' \code{plyr} only, and may be defunct as soon as the next release. #' #' \itemize{ #' \item \code{\link{liply}} #' \item \code{\link{isplit2}} #' } #' #' @name plyr-deprecated # EXCLUDE COVERAGE START NULL # EXCLUDE COVERAGE END plyr/R/here.r0000644000175100001440000000166312512025470012571 0ustar hornikusers#' Capture current evaluation context. #' #' This function captures the current context, making it easier #' to use \code{**ply} with functions that do special evaluation and #' need access to the environment where ddply was called from. #' #' @author Peter Meilstrup, \url{https://github.com/crowding} #' @param f a function that does non-standard evaluation #' @export #' @examples #' df <- data.frame(a = rep(c("a","b"), each = 10), b = 1:20) #' f1 <- function(label) { #' ddply(df, "a", mutate, label = paste(label, b)) #' } #' \dontrun{f1("name:")} #' # Doesn't work because mutate can't find label in the current scope #' #' f2 <- function(label) { #' ddply(df, "a", here(mutate), label = paste(label, b)) #' } #' f2("name:") #' # Works :) here <- function(f) { call <- substitute(function(...) (f)(...), list(f = f)) # nolint fun <- eval(call, parent.frame()) attr(fun, "srcref") <- srcfilecopy("", deparse(call)) fun } plyr/R/dimensions.r0000644000175100001440000000247012512025470014013 0ustar hornikusers#' Number of dimensions. #' #' Number of dimensions of an array or vector #' #' @param x array #' @keywords internal dims <- function(x) length(amv_dim(x)) #' Dimensions. #' #' Consistent dimensions for vectors, matrices and arrays. #' #' @param x array, matrix or vector #' @keywords internal amv_dim <- function(x) if (is.vector(x)) length(x) else dim(x) #' Dimension names. #' #' Consistent dimnames for vectors, matrices and arrays. #' #' Unlike \code{\link{dimnames}} no part of the output will ever be #' null. If a component of dimnames is omitted, \code{amv_dimnames} #' will return an integer sequence of the appropriate length. #' #' @param x array, matrix or vector #' @keywords internal #' @export amv_dimnames <- function(x) { d <- if (is.vector(x)) list(names(x)) else dimnames(x) if (is.null(d)) d <- rep(list(NULL), dims(x)) null_names <- which(unlist(llply(d, is.null))) d[null_names] <- llply(null_names, function(i) seq_len(amv_dim(x)[i])) # if (is.null(names(d))) names(d) <- paste("X", 1:length(d), sep="") d } #' Reduce dimensions. #' #' Remove extraneous dimensions #' #' @param x array #' @keywords internal reduce_dim <- function(x) { subs <- lapply(dim(x), function(x) if (x == 1) 1 else bquote()) call <- as.call(c(list(as.name("["), quote(x)), subs, list(drop = TRUE))) eval(call) } plyr/R/alply.r0000644000175100001440000000304512167213765012777 0ustar hornikusers#' Split array, apply function, and return results in a list. #' #' For each slice of an array, apply function then combine results into a #' list. #' #' The list will have "dims" and "dimnames" corresponding to the #' margins given. For instance \code{alply(x, c(3,2), ...)} where #' \code{x} has dims \code{c(4,3,2)} will give a result with dims #' \code{c(2,3)}. #' #' \code{alply} is somewhat similar to \code{\link{apply}} for cases #' where the results are not atomic. #' #' @template ply #' @template a- #' @template -l #' @param .dims if \code{TRUE}, copy over dimensions and names from input. #' @export #' @examples #' alply(ozone, 3, quantile) #' alply(ozone, 3, function(x) table(round(x))) alply <- function(.data, .margins, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL, .dims = FALSE) { pieces <- splitter_a(.data, .margins, .expand) res <- llply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts) if (.dims) { labels <- attr(pieces, "split_labels") #splitting a dataframe along dimension 1 is a special case which #gets a different output from splitter_a, so guard against that if (length(labels) == length(.margins)) { res_labels <- lapply(labels, function(x) as.character(unique(x))) res_dim <- sapply(res_labels, length) if (length(res_dim) > 0) { dim(res) <- res_dim dimnames(res) <- res_labels } } } res } plyr/R/defaults.r0000644000175100001440000000037612034020705013450 0ustar hornikusers#' Set defaults. #' #' Convient method for combining a list of values with their defaults. #' #' @param x list of values #' @param y defaults #' @keywords manip #' @export defaults <- function(x, y) { c(x, y[setdiff(names(y), names(x))]) } plyr/R/match-df.r0000644000175100001440000000337012034576574013345 0ustar hornikusers#' Extract matching rows of a data frame. #' #' Match works in the same way as join, but instead of return the combined #' dataset, it only returns the matching rows from the first dataset. This is #' particularly useful when you've summarised the data in some way #' and want to subset the original data by a characteristic of the subset. #' #' \code{match_df} shares the same semantics as \code{\link{join}}, not #' \code{\link{match}}: #' #' \itemize{ #' \item the match criterion is \code{==}, not \code{\link{identical}}). #' \item it doesn't work for columns that are not atomic vectors #' \item if there are no matches, the row will be omitted' #' } #' #' @param x data frame to subset. #' @param y data frame defining matching rows. #' @param on variables to match on - by default will use all variables common #' to both data frames. #' @return a data frame #' @seealso \code{\link{join}} to combine the columns from both x and y #' and \code{\link{match}} for the base function selecting matching items #' @export #' @examples #' # count the occurrences of each id in the baseball dataframe, then get the subset with a freq >25 #' longterm <- subset(count(baseball, "id"), freq > 25) #' # longterm #' # id freq #' # 30 ansonca01 27 #' # 48 baineha01 27 #' # ... #' # Select only rows from these longterm players from the baseball dataframe #' # (match would default to match on shared column names, but here was explicitly set "id") #' bb_longterm <- match_df(baseball, longterm, on="id") #' bb_longterm[1:5,] match_df <- function(x, y, on = NULL) { if (is.null(on)) { on <- intersect(names(x), names(y)) message("Matching on: ", paste(on, collapse = ", ")) } keys <- join.keys(x, y, on) x[keys$x %in% keys$y, , drop = FALSE] } plyr/R/r_ply.r0000644000175100001440000000203312303221212012751 0ustar hornikusers#' Replicate expression and discard results. #' #' Evalulate expression n times then discard results #' #' This function runs an expression multiple times, discarding the results. #' This function is equivalent to \code{\link{replicate}}, but never returns #' anything #' #' @keywords manip #' @param .n number of times to evaluate the expression #' @param .expr expression to evaluate #' @param .progress name of the progress bar to use, see \code{\link{create_progress_bar}} #' @param .print automatically print each result? (default: \code{FALSE}) #' @export #' @references Hadley Wickham (2011). The Split-Apply-Combine Strategy for #' Data Analysis. Journal of Statistical Software, 40(1), 1-29. #' \url{http://www.jstatsoft.org/v40/i01/}. #' @examples #' r_ply(10, plot(runif(50))) #' r_ply(25, hist(runif(1000))) r_ply <- function(.n, .expr, .progress = "none", .print = FALSE) { .rlply_worker(.n, .progress, eval.parent(substitute(function() .expr)), .discard = TRUE, .print = .print) invisible(NULL) } plyr/R/progress-time.r0000644000175100001440000000407412725616016014455 0ustar hornikusers#' Text progress bar with time. #' #' A textual progress bar that estimates time remaining. It displays the #' estimated time remaining and, when finished, total duration. #' #' @family progress bars #' @export #' @examples #' l_ply(1:100, function(x) Sys.sleep(.01), .progress = "time") progress_time <- function() { n <- 0 txt <- NULL list( init = function(x) { txt <<- txtTimerBar(x) utils::setTxtProgressBar(txt, 0) }, step = function() { n <<- n + 1 utils::setTxtProgressBar(txt, n) }, term = function() close(txt) ) } txtTimerBar <- function(n = 1) { # nolint start start <- .last_update_time <- proc.time()[3] times <- numeric(n) # nolint end value <- NULL killed <- FALSE width <- getOption("width") - nchar('||100% ~ 999.9 h remaining.') update <- function(i) { if (i == 0) return() value <<- i times[i] <- proc.time()[3] - start avg <- times[i] / i time_left <- (n - i) * avg nbars <- trunc(i / n * width) cat_line("|", str_rep("=", nbars), str_rep(" ", width - nbars), "|", format(i / n * 100, width = 3), "% ~", show_time(time_left), " remaining") } getVal <- function() value kill <- function(){ if (killed) return() killed <<- TRUE if (value == n) { cat_line("|", str_rep("=", width), "|100%") cat("Completed after", show_time(proc.time()[3] - start), "\n") } else { cat("Killed after", show_time(proc.time()[3] - start), "\n") } } cat_line("|", str_rep(" ", width), "| 0%") structure( list(getVal = getVal, up = update, kill = kill), class = "txtProgressBar") } show_time <- function(x) { if (x < 60) { paste(round(x), "s") } else if (x < 60 * 60) { paste(round(x / 60), "m") } else { paste(round(x / (60 * 60)), "h") } } cat_line <- function(...) { msg <- paste(..., sep = "", collapse = "") gap <- max(c(0, getOption("width") - nchar(msg, "width"))) cat("\r", msg, rep.int(" ", gap), sep = "") utils::flush.console() } str_rep <- function(x, i) { paste(rep.int(x, i), collapse = "") } plyr/R/idataframe.r0000644000175100001440000000512012512025470013733 0ustar hornikusers#' Construct an immutable data frame. #' #' An immutable data frame works like an ordinary data frame, except that when #' you subset it, it returns a reference to the original data frame, not a #' a copy. This makes subsetting substantially faster and has a big impact #' when you are working with large datasets with many groups. #' #' This method is still a little experimental, so please let me know if you #' run into any problems. #' #' @param df a data frame #' @return an immutable data frame #' @keywords manip #' @export #' @examples #' system.time(dlply(baseball, "id", nrow)) #' system.time(dlply(idata.frame(baseball), "id", nrow)) idata.frame <- function(df) { self <- new.env() self$`_data` <- df self$`_rows` <- seq_len(nrow(df)) self$`_cols` <- names(df) self$`_getters` <- lapply(names(df), function(name) { eval(substitute(function(v) { if (missing(v)) { `_data`[[name]][`_rows`] } else { stop("Immutable") } }, list(name = name)), envir=self) }) names(self$`_getters`) <- names(df) for (name in names(df)) { f <- self$`_getters`[[name]] environment(f) <- self makeActiveBinding(name, f, self) } structure(self, class = c("idf", "environment")) } #' @export "[.idf" <- function(x, i, j, drop = TRUE) { # Single column special cases if (nargs() == 2) { j <- i i <- TRUE drop <- FALSE } if (!missing(j) && length(j) == 1 && drop) { if (missing(i)) i <- TRUE return(x[[j]][i]) } # New rows rows <- x$`_rows` if (!missing(i)) { if (is.character(i)) stop("Row names not supported") rows <- rows[i] } # New cols cols <- x$`_cols` if (!missing(j)) { if (is.character(j)) { cols <- intersect(cols, j) } else { cols <- cols[j] } } # Make active bindings for functions like lm and eval that will treat this # object as an environment or list self <- new.env(parent = parent.env(x)) self$`_rows` <- rows self$`_cols` <- cols self$`_data` <- x$`_data` self$`_getters` <- x$`_getters` for (col in cols) { f <- self$`_getters`[[col]] environment(f) <- self makeActiveBinding(col, f, self) } structure(self, class = c("idf", "environment")) } #' @export names.idf <- function(x) x$`_cols` #' @export dim.idf <- function(x) c(length(x$`_rows`), length(x$`_cols`)) #' @export as.data.frame.idf <- function(x, ...) { x$`_data`[x$`_rows`, x$`_cols`] } #' @export "[[.idf" <- function(x, i) { if (is.numeric(i)) { i <- names(x)[i] } x$`_data`[[i]][x$`_rows`] } # "[[<-.idf" <- "[<-.idf" <- function(...) stop("Immutable") plyr/R/l_ply.r0000644000175100001440000000335512725615763013005 0ustar hornikusers#' Split list, apply function, and discard results. #' #' For each element of a list, apply function and discard results #' #' @template ply #' @template l- #' @template -_ #' @export #' @examples #' l_ply(llply(mtcars, round), table, .print = TRUE) #' l_ply(baseball, function(x) print(summary(x))) l_ply <- function(.data, .fun = NULL, ..., .progress = "none", .inform = FALSE, .print = FALSE, .parallel = FALSE, .paropts = NULL) { if (is.character(.fun) || is.list(.fun)) .fun <- each(.fun) if (!is.function(.fun)) stop(".fun is not a function.") pieces <- as.list(.data) n <- length(pieces) if (n == 0) return(invisible()) if (.parallel && .progress != "none") { message("Progress disabled when using parallel plyr") .progress <- "none" } progress <- create_progress_bar(.progress) progress$init(n) on.exit(progress$term()) if (.parallel && .print) { message("Printing disabled for parallel processing") .print <- FALSE } do.ply <- function(i) { piece <- pieces[[i]] # Display informative error messages, if desired if (.inform) { res <- try(.fun(piece, ...)) if (inherits(res, "try-error")) { piece <- paste(utils::capture.output(print(piece)), collapse = "\n") stop("with piece ", i, ": \n", piece, call. = FALSE) } } else { res <- .fun(piece, ...) } if (.print) { print(res) } progress$step() } if (.parallel) { setup_parallel() .paropts$.combine <- function(...) NULL i <- seq_len(n) fe_call <- as.call(c(list(quote(foreach::foreach), i = i), .paropts)) fe <- eval(fe_call) foreach::`%dopar%`(fe, do.ply(i)) } else { for (i in seq_len(n)) { do.ply(i) } } invisible() } plyr/R/mutate.r0000644000175100001440000000265312512025470013145 0ustar hornikusers#' Mutate a data frame by adding new or replacing existing columns. #' #' This function is very similar to \code{\link{transform}} but it executes #' the transformations iteratively so that later transformations can use the #' columns created by earlier transformations. Like transform, unnamed #' components are silently dropped. #' #' Mutate seems to be considerably faster than transform for large data #' frames. #' #' @param .data the data frame to transform #' @param ... named parameters giving definitions of new columns. #' @seealso \code{\link{subset}}, \code{\link{summarise}}, #' \code{\link{arrange}}. For another somewhat different approach to #' solving the same problem, see \code{\link{within}}. #' @export #' @examples #' # Examples from transform #' mutate(airquality, Ozone = -Ozone) #' mutate(airquality, new = -Ozone, Temp = (Temp - 32) / 1.8) #' #' # Things transform can't do #' mutate(airquality, Temp = (Temp - 32) / 1.8, OzT = Ozone / Temp) #' #' # mutate is rather faster than transform #' system.time(transform(baseball, avg_ab = ab / g)) #' system.time(mutate(baseball, avg_ab = ab / g)) mutate <- function(.data, ...) { stopifnot(is.data.frame(.data) || is.list(.data) || is.environment(.data)) cols <- as.list(substitute(list(...))[-1]) cols <- cols[names(cols) != ""] # Silently drop unnamed columns for (col in names(cols)) { .data[[col]] <- eval(cols[[col]], .data, parent.frame()) } .data } plyr/R/adply.r0000644000175100001440000000172712512025470012760 0ustar hornikusers#' Split array, apply function, and return results in a data frame. #' #' For each slice of an array, apply function then combine results into a data #' frame. #' #' @template ply #' @template a- #' @template -d #' @param .id name(s) of the index column(s). #' Pass \code{NULL} to avoid creation of the index column(s). #' Omit or pass \code{NA} to use the default names #' \code{"X1"}, \code{"X2"}, \ldots. #' Otherwise, this argument must have the same length as #' \code{.margins}. #' @export adply <- function(.data, .margins, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL, .id = NA) { pieces <- splitter_a(.data, .margins, .expand, .id) .id <- NA if (is.null(attr(pieces, "split_labels"))) { .id <- NULL } ldply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts, .id = .id) } plyr/R/rlply.r0000644000175100001440000000743312512025470013011 0ustar hornikusers#' Replicate expression and return results in a list. #' #' Evalulate expression n times then combine results into a list #' #' This function runs an expression multiple times, and combines the #' result into a list. If there are no results, then this function will return #' a list of length 0 (\code{list()}). This function is equivalent to #' \code{\link{replicate}}, but will always return results as a list. #' #' #' @keywords manip #' @param .n number of times to evaluate the expression #' @param .expr expression to evaluate #' @param .progress name of the progress bar to use, see \code{\link{create_progress_bar}} #' @return list of results #' @export #' @references Hadley Wickham (2011). The Split-Apply-Combine Strategy for #' Data Analysis. Journal of Statistical Software, 40(1), 1-29. #' \url{http://www.jstatsoft.org/v40/i01/}. #' @examples #' mods <- rlply(100, lm(y ~ x, data=data.frame(x=rnorm(100), y=rnorm(100)))) #' hist(laply(mods, function(x) summary(x)$r.squared)) rlply <- function(.n, .expr, .progress = "none") { res <- .rlply_worker(.n, .progress, eval.parent(substitute(function() .expr))) res } .rlply_worker <- function(.n, .progress, .expr_wrap, .print = FALSE, .discard = FALSE) { if (!is.vector(.n, "numeric") || length(.n) > 1L) stop(".n must be an integer vector of length 1") if (.n == 0L) return (list()) progress <- create_progress_bar(.progress) progress$init(.n) on.exit(progress$term()) if (.print) { wrap <- function(f) function() { print(f()) } } else { wrap <- identity } # The logic below is responsible for ascertaining that .expr is evaluated # exactly .n times, whether it's a function or an expression. (See GitHub # issue #158.) When the function .rlply_worker is called, the .expr_wrap # argument is a function that returns the .expr argument passed to the calling # r*ply function. The .wrapped_expr_to_fun function will convert the # .expr_wrap argument to a list that contains a function and the result of the # first evaluation, which is necessary because there seems to be no other way # to find out if .expr is a function or an expression without evaluating it at # least once. After that, only .n - 1 further evaluations are necessary. # # In addition, results are printed and/or discareded depending on the `wrap` # function defined above. fun <- .wrapped_expr_to_fun(.expr_wrap) f <- wrap(fun$f) if (.discard) { wrap(function() fun$val)() progress$step() for (i in seq.int(from = 2L, length.out = .n - 1L)) { f() progress$step() } invisible(NULL) } else { result <- vector("list", length = .n) result[1L] <- list(wrap(function() fun$val)()) progress$step() for (i in seq.int(from = 2L, length.out = .n - 1L)) { result[i] <- list(f()) progress$step() } result } } #' r*ply helper function #' #' Call a function to check if the result is a function or an expression, to #' support expressions as arguments to the r*ply family. #' #' @param .expr_wrap function to call #' @return named list with two components. f -- function, val -- result of first #' evaluation #' @noRd .wrapped_expr_to_fun <- function(.expr_wrap) { # When .expr_wrap is evaluated, it will return either a function or an # expression. In the first case, this function is assigned to the f # component, and also called once explicitly to assign the val component. In # the second case, this has been already the first evaluation of .expr -- the # parameter wrapped by .expr_wrap; the results are reused for the val # component, and the wrapped function is assigned to f. res <- .expr_wrap() if (is.function(res)) { list(f = res, val = res()) } else { list(f = .expr_wrap, val = res) } } plyr/R/RcppExports.R0000644000175100001440000000135112534312710014071 0ustar hornikusers# This file was generated by Rcpp::compileAttributes # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #' Split indices. #' #' An optimised version of split for the special case of splitting row #' indices into groups, as used by \code{\link{splitter_d}}. #' #' @param index integer indices #' @param n largest integer (may not appear in index). This is hint: if #' the largest value of \code{group} is bigger than \code{n}, the output #' will silently expand. #' @useDynLib plyr #' @keywords internal manip #' @export #' @examples #' split_indices(sample(10, 100, rep = TRUE)) #' split_indices(sample(10, 100, rep = TRUE), 10) split_indices <- function(group, n = 0L) { .Call('plyr_split_indices', PACKAGE = 'plyr', group, n) } plyr/R/progress.r0000644000175100001440000001241112725617155013520 0ustar hornikusers#' Create progress bar. #' #' Create progress bar object from text string. #' #' Progress bars give feedback on how apply step is proceeding. This #' is mainly useful for long running functions, as for short functions, the #' time taken up by splitting and combining may be on the same order (or #' longer) as the apply step. Additionally, for short functions, the time #' needed to update the progress bar can significantly slow down the process. #' For the trivial examples below, using the tk progress bar slows things down #' by a factor of a thousand. #' #' Note the that progress bar is approximate, and if the time taken by #' individual function applications is highly non-uniform it may not be very #' informative of the time left. #' #' There are currently four types of progress bar: "none", "text", "tk", and #' "win". See the individual documentation for more details. In plyr #' functions, these can either be specified by name, or you can create the #' progress bar object yourself if you want more control over its apperance. #' See the examples. #' #' @param name type of progress bar to create #' @param ... other arguments passed onto progress bar function #' @seealso \code{\link{progress_none}}, \code{\link{progress_text}}, \code{\link{progress_tk}}, \code{\link{progress_win}} #' @keywords utilities #' @export #' @examples #' # No progress bar #' l_ply(1:100, identity, .progress = "none") #' \dontrun{ #' # Use the Tcl/Tk interface #' l_ply(1:100, identity, .progress = "tk") #' } #' # Text-based progress (|======|) #' l_ply(1:100, identity, .progress = "text") #' # Choose a progress character, run a length of time you can see #' l_ply(1:10000, identity, .progress = progress_text(char = ".")) create_progress_bar <- function(name = "none", ...) { if (!is.character(name)) return(name) name <- paste("progress", name, sep="_") if (!exists(name, mode = "function")) { warning("Cannot find progress bar ", name, call. = FALSE) progress_none() } else { match.fun(name)(...) } } #' Null progress bar #' #' A progress bar that does nothing #' #' This the default progress bar used by plyr functions. It's very simple to #' understand - it does nothing! #' #' @keywords internal #' @family progress bars #' @export #' @examples #' l_ply(1:100, identity, .progress = "none") progress_none <- function() { list( init = function(x) NULL, step = function() NULL, term = function() NULL ) } #' Text progress bar. #' #' A textual progress bar #' #' This progress bar displays a textual progress bar that works on all #' platforms. It is a thin wrapper around the built-in #' \code{\link{setTxtProgressBar}} and can be customised in the same way. #' #' @param style style of text bar, see Details section of \code{\link{txtProgressBar}} #' @param ... other arugments passed on to \code{\link{txtProgressBar}} #' @family progress bars #' @export #' @examples #' l_ply(1:100, identity, .progress = "text") #' l_ply(1:100, identity, .progress = progress_text(char = "-")) progress_text <- function(style = 3, ...) { n <- 0 txt <- NULL list( init = function(x) { txt <<- utils::txtProgressBar(max = x, style = style, ...) utils::setTxtProgressBar(txt, 0) }, step = function() { n <<- n + 1 utils::setTxtProgressBar(txt, n) }, term = function() close(txt) ) } #' Graphical progress bar, powered by Tk. #' #' A graphical progress bar displayed in a Tk window #' #' This graphical progress will appear in a separate window. #' #' @param title window title #' @param label progress bar label (inside window) #' @param ... other arguments passed on to \code{\link[tcltk]{tkProgressBar}} #' @seealso \code{\link[tcltk]{tkProgressBar}} for the function that powers this progress bar #' @family progress bars #' @export #' @examples #' \dontrun{ #' l_ply(1:100, identity, .progress = "tk") #' l_ply(1:100, identity, .progress = progress_tk(width=400)) #' l_ply(1:100, identity, .progress = progress_tk(label="")) #' } progress_tk <- function(title = "plyr progress", label = "Working...", ...) { stopifnot(requireNamespace("tcltk", quietly = TRUE)) n <- 0 tk <- NULL list( init = function(x) { tk <<- tcltk::tkProgressBar(max = x, title = title, label = label, ...) tcltk::setTkProgressBar(tk, 0) }, step = function() { n <<- n + 1 tcltk::setTkProgressBar(tk, n) }, term = function() close(tk) ) } #' Graphical progress bar, powered by Windows. #' #' A graphical progress bar displayed in a separate window #' #' This graphical progress only works on Windows. #' #' @param title window title #' @param ... other arguments passed on to \code{winProgressBar} #' @seealso \code{winProgressBar} for the function that powers this progress bar #' @export #' @family progress bars #' @examples #' if(exists("winProgressBar")) { #' l_ply(1:100, identity, .progress = "win") #' l_ply(1:100, identity, .progress = progress_win(title="Working...")) #' } progress_win <- function(title = "plyr progress", ...) { n <- 0 win <- NULL list( init = function(x) { win <<- utils::winProgressBar(max = x, title = title, ...) # nolint utils::setWinProgressBar(win, 0) # nolint }, step = function() { n <<- n + 1 utils::setWinProgressBar(win, n) # nolint }, term = function() close(win) ) } plyr/R/data-frame.r0000644000175100001440000000144312512025470013643 0ustar hornikusers#' Make a function return a data frame. #' #' Create a new function that returns the existing function wrapped in a #' data.frame with a single column, \code{value}. #' #' This is useful when calling \code{*dply} functions with a function that #' returns a vector, and you want the output in rows, rather than columns. #' The \code{value} column is always created, even for empty inputs. #' #' @keywords manip #' @param x function to make return a data frame #' @param row.names necessary to match the generic, but not used #' @param optional necessary to match the generic, but not used #' @param ... necessary to match the generic, but not used #' @method as.data.frame function #' @export as.data.frame.function <- function(x, row.names, optional, ...) { function(...) data.frame(value = x(...)) } plyr/R/llply.r0000644000175100001440000000466012725615761013020 0ustar hornikusers#' Split list, apply function, and return results in a list. #' #' For each element of a list, apply function, keeping results as a list. #' #' \code{llply} is equivalent to \code{\link{lapply}} except that it will #' preserve labels and can display a progress bar. #' #' @template ply #' @template l- #' @template -l #' @export #' @examples #' llply(llply(mtcars, round), table) #' llply(baseball, summary) #' # Examples from ?lapply #' x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE)) #' #' llply(x, mean) #' llply(x, quantile, probs = 1:3/4) llply <- function(.data, .fun = NULL, ..., .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL) { if (is.null(.fun)) return(as.list(.data)) if (is.character(.fun) || is.list(.fun)) .fun <- each(.fun) if (!is.function(.fun)) stop(".fun is not a function.") if (!inherits(.data, "split")) { pieces <- as.list(.data) # This special case can be done much faster with lapply, so do it. fast_path <- .progress == "none" && !.inform && !.parallel if (fast_path) { return(structure(lapply(pieces, .fun, ...), dim = dim(pieces))) } } else { pieces <- .data } n <- length(pieces) if (n == 0) return(list()) if (.parallel && .progress != "none") { message("Progress disabled when using parallel plyr") .progress <- "none" } progress <- create_progress_bar(.progress) progress$init(n) on.exit(progress$term()) result <- vector("list", n) do.ply <- function(i) { piece <- pieces[[i]] # Display informative error messages, if desired if (.inform) { res <- try(.fun(piece, ...)) if (inherits(res, "try-error")) { piece <- paste(utils::capture.output(print(piece)), collapse = "\n") stop("with piece ", i, ": \n", piece, call. = FALSE) } } else { res <- .fun(piece, ...) } progress$step() res } if (.parallel) { setup_parallel() i <- seq_len(n) fe_call <- as.call(c(list(quote(foreach::foreach), i = i), .paropts)) fe <- eval(fe_call) result <- foreach::`%dopar%`(fe, do.ply(i)) } else { result <- loop_apply(n, do.ply) } attributes(result)[c("split_type", "split_labels")] <- attributes(pieces)[c("split_type", "split_labels")] names(result) <- names(pieces) # Only set dimension if not null, otherwise names are removed if (!is.null(dim(pieces))) { dim(result) <- dim(pieces) } result } plyr/R/each.r0000644000175100001440000000430712512025470012544 0ustar hornikusers#' Aggregate multiple functions into a single function. #' #' Combine multiple functions into a single function returning a named vector #' of outputs. #' Note: you cannot supply additional parameters for the summary functions #' #' @param ... functions to combine. each function should produce a single #' number as output #' @keywords manip #' @seealso \code{\link{summarise}} for applying summary functions to data #' @export #' @examples #' # Call min() and max() on the vector 1:10 #' each(min, max)(1:10) #' # This syntax looks a little different. It is shorthand for the #' # the following: #' f<- each(min, max) #' f(1:10) #' # Three equivalent ways to call min() and max() on the vector 1:10 #' each("min", "max")(1:10) #' each(c("min", "max"))(1:10) #' each(c(min, max))(1:10) #' # Call length(), min() and max() on a random normal vector #' each(length, mean, var)(rnorm(100)) each <- function(...) { fnames <- laply(match.call()[-1], deparse) fs <- list(...) if (length(fs[[1]]) > 1) { fs <- fs[[1]] # Jump through hoops to work out names snames <- as.list(match.call()[2])[[1]] fnames <- unlist(lapply(as.list(snames)[-1], deparse)) } # Find function names and replace with function objects char <- laply(fs, is.character) fnames[char] <- fs[char] fs[char] <- llply(fs[char], match.fun) unames <- names(fs) if (is.null(unames)) unames <- fnames unames[unames == ""] <- fnames[unames == ""] n <- length(fs) if (n == 1) { # If there is only one function, things are simple. We just # need to name the output, if appropriate. function(x, ...) { res <- fs[[1]](x, ...) # nolint if (length(res) == 1) names(res) <- unames res } } else { # nolint start proto <- NULL result <- NULL # nolint end function(x, ...) { # For n > 1 things are a little tricky # Construct protoype for output on first call if (is.null(proto)) { result <<- vector("list", length = n) names(result) <- unames for (i in 1:n) result[[i]] <- fs[[i]](x, ...) # nolint proto <<- list_to_vector(result) } else { for (i in 1:n) proto[[i]] <- fs[[i]](x, ...) # nolint } proto } } } plyr/R/plyr.r0000644000175100001440000000543312512025470012633 0ustar hornikusers#' plyr: the split-apply-combine paradigm for R. #' #' The plyr package is a set of clean and consistent tools that implement the #' split-apply-combine pattern in R. This is an extremely common pattern in #' data analysis: you solve a complex problem by breaking it down into small #' pieces, doing something to each piece and then combining the results back #' together again. #' #' The plyr functions are named according to what sort of data structure they #' split up and what sort of data structure they return: #' #' \describe{ #' \item{a}{array} #' \item{l}{list} #' \item{d}{data.frame} #' \item{m}{multiple inputs} #' \item{r}{repeat multiple times} #' \item{_}{nothing} #' } #' #' So \code{\link{ddply}} takes a data frame as input and returns a data frame #' as output, and \code{\link{l_ply}} takes a list as input and returns nothing #' as output. #' #' @section Row names: #' #' By design, no plyr function will preserve row names - in general it is too #' hard to know what should be done with them for many of the operations #' supported by plyr. If you want to preserve row names, use #' \code{\link{name_rows}} to convert them into an explicit column in your #' data frame, perform the plyr operations, and then use \code{\link{name_rows}} #' again to convert the column back into row names. #' #' @section Helpers: #' #' Plyr also provides a set of helper functions for common data analysis #' problems: #' #' \itemize{ #' \item \code{\link{arrange}}: re-order the rows of a data frame by #' specifying the columns to order by #' \item \code{\link{mutate}}: add new columns or modifying existing columns, #' like \code{\link{transform}}, but new columns can refer to other columns #' that you just created. #' \item \code{\link{summarise}}: like \code{\link{mutate}} but create a #' new data frame, not preserving any columns in the old data frame. #' #' \item \code{\link{join}}: an adapation of \code{\link{merge}} which is #' more similar to SQL, and has a much faster implementation if you only #' want to find the first match. #' \item \code{\link{match_df}}: a version of \code{\link{join}} that instead #' of returning the two tables combined together, only returns the rows #' in the first table that match the second. #' #' \item \code{\link{colwise}}: make any function work colwise on a dataframe #' \item \code{\link{rename}}: easily rename columns in a data frame #' \item \code{\link{round_any}}: round a number to any degree of precision #' \item \code{\link{count}}: quickly count unique combinations and return #' return as a data frame. #' } #' #' @docType package #' @importFrom Rcpp sourceCpp #' @name plyr # EXCLUDE COVERAGE START NULL .onUnload <- function (libpath) { library.dynam.unload("plyr", libpath) } # EXCLUDE COVERAGE END plyr/R/a_ply.r0000644000175100001440000000111212512025772012744 0ustar hornikusers#' Split array, apply function, and discard results. #' #' For each slice of an array, apply function and discard results #' #' @template ply #' @template a- #' @template -_ #' @export a_ply <- function(.data, .margins, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .print = FALSE, .parallel = FALSE, .paropts = NULL) { pieces <- splitter_a(.data, .margins, .expand) l_ply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .print = .print, .parallel = .parallel, .paropts = .paropts) } plyr/R/count.r0000644000175100001440000000457212303221212012766 0ustar hornikusers#' Count the number of occurences. #' #' Equivalent to \code{as.data.frame(table(x))}, but does not include #' combinations with zero counts. #' #' Speed-wise count is competitive with \code{\link{table}} for single #' variables, but it really comes into its own when summarising multiple #' dimensions because it only counts combinations that actually occur in the #' data. #' #' Compared to \code{\link{table}} + \code{\link{as.data.frame}}, \code{count} #' also preserves the type of the identifier variables, instead of converting #' them to characters/factors. #' #' @param df data frame to be processed #' @param vars variables to count unique values of #' @param wt_var optional variable to weight by - if this is non-NULL, count #' will sum up the value of this variable for each combination of id #' variables. #' @return a data frame with label and freq columns #' @keywords manip #' @seealso \code{\link{table}} for related functionality in the base package #' @export #' @examples #' # Count of each value of "id" in the first 100 cases #' count(baseball[1:100,], vars = "id") #' # Count of ids, weighted by their "g" loading #' count(baseball[1:100,], vars = "id", wt_var = "g") #' count(baseball, "id", "ab") #' count(baseball, "lg") #' # How many stints do players do? #' count(baseball, "stint") #' # Count of times each player appeared in each of the years they played #' count(baseball[1:100,], c("id", "year")) #' # Count of counts #' count(count(baseball[1:100,], c("id", "year")), "id", "freq") #' count(count(baseball, c("id", "year")), "freq") count <- function(df, vars = NULL, wt_var = NULL) { if (is.atomic(df)) { df <- data.frame(x = df) } if (!is.null(vars)) { vars <- as.quoted(vars) df2 <- quickdf(eval.quoted(vars, df)) } else { df2 <- df } id <- ninteraction(df2, drop = TRUE) u_id <- !duplicated(id) labels <- df2[u_id, , drop = FALSE] labels <- labels[order(id[u_id]), , drop = FALSE] if (is.null(wt_var) && "freq" %in% names(df)) { message("Using freq as weighting variable") wt_var <- "freq" } if (!is.null(wt_var)) { wt_var <- as.quoted(wt_var) if (length(wt_var) > 1) { stop("wt_var must be a single variable", call. = FALSE) } wt <- eval.quoted(wt_var, df)[[1]] freq <- vaggregate(wt, id, sum, .default = 0) } else { freq <- tabulate(id, attr(id, "n")) } unrowname(data.frame(labels, freq)) } plyr/R/colwise.r0000644000175100001440000000506212303221212013276 0ustar hornikusers#' Column-wise function. #' #' Turn a function that operates on a vector into a function that operates #' column-wise on a data.frame. #' #' \code{catcolwise} and \code{numcolwise} provide version that only operate #' on discrete and numeric variables respectively. #' #' @param .fun function #' @param .cols either a function that tests columns for inclusion, or a #' quoted object giving which columns to process #' @param ... other arguments passed on to \code{.fun} #' @export #' @examples #' # Count number of missing values #' nmissing <- function(x) sum(is.na(x)) #' #' # Apply to every column in a data frame #' colwise(nmissing)(baseball) #' # This syntax looks a little different. It is shorthand for the #' # the following: #' f <- colwise(nmissing) #' f(baseball) #' #' # This is particularly useful in conjunction with d*ply #' ddply(baseball, .(year), colwise(nmissing)) #' #' # To operate only on specified columns, supply them as the second #' # argument. Many different forms are accepted. #' ddply(baseball, .(year), colwise(nmissing, .(sb, cs, so))) #' ddply(baseball, .(year), colwise(nmissing, c("sb", "cs", "so"))) #' ddply(baseball, .(year), colwise(nmissing, ~ sb + cs + so)) #' #' # Alternatively, you can specify a boolean function that determines #' # whether or not a column should be included #' ddply(baseball, .(year), colwise(nmissing, is.character)) #' ddply(baseball, .(year), colwise(nmissing, is.numeric)) #' ddply(baseball, .(year), colwise(nmissing, is.discrete)) #' #' # These last two cases are particularly common, so some shortcuts are #' # provided: #' ddply(baseball, .(year), numcolwise(nmissing)) #' ddply(baseball, .(year), catcolwise(nmissing)) #' #' # You can supply additional arguments to either colwise, or the function #' # it generates: #' numcolwise(mean)(baseball, na.rm = TRUE) #' numcolwise(mean, na.rm = TRUE)(baseball) colwise <- function(.fun, .cols = true, ...) { if (!is.function(.cols)) { .cols <- as.quoted(.cols) filter <- function(df) eval.quoted(.cols, df) } else { filter <- function(df) Filter(.cols, df) } dots <- list(...) function(df, ...) { stopifnot(is.data.frame(df)) df <- strip_splits(df) filtered <- filter(df) if (length(filtered) == 0) return(data.frame()) out <- do.call("lapply", c(list(filtered, .fun, ...), dots)) names(out) <- names(filtered) quickdf(out) } } #' @rdname colwise #' @export catcolwise <- function(.fun, ...) { colwise(.fun, is.discrete, ...) } #' @rdname colwise #' @export numcolwise <- function(.fun, ...) { colwise(.fun, is.numeric, ...) } plyr/R/parallel.r0000644000175100001440000000061212512025470013433 0ustar hornikuserssetup_parallel <- function() { if (!requireNamespace("foreach", quietly = TRUE)) { # EXCLUDE COVERAGE START stop("foreach package required for parallel plyr operation", call. = FALSE) # EXCLUDE COVERAGE END } if (foreach::getDoParWorkers() == 1) { # EXCLUDE COVERAGE START warning("No parallel backend registered", call. = TRUE) # EXCLUDE COVERAGE END } } plyr/R/mdply.r0000644000175100001440000000165112035653720012775 0ustar hornikusers#' Call function with arguments in array or data frame, returning a data frame. #' #' Call a multi-argument function with values taken from columns of an #' data frame or array, and combine results into a data frame #' #' @template ply #' @template m- #' @template -d #' @export #' @examples #' mdply(data.frame(mean = 1:5, sd = 1:5), rnorm, n = 2) #' mdply(expand.grid(mean = 1:5, sd = 1:5), rnorm, n = 2) #' mdply(cbind(mean = 1:5, sd = 1:5), rnorm, n = 5) #' mdply(cbind(mean = 1:5, sd = 1:5), as.data.frame(rnorm), n = 5) mdply <- function(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL) { if (is.matrix(.data) & !is.list(.data)) .data <- .matrix_to_df(.data) f <- splat(.fun) adply(.data = .data, .margins = 1, .fun = f, ..., .expand = .expand, .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts) } plyr/R/mlply.r0000644000175100001440000000156112035653743013012 0ustar hornikusers#' Call function with arguments in array or data frame, returning a list. #' #' Call a multi-argument function with values taken from columns of an #' data frame or array, and combine results into a list. #' #' @template ply #' @template m- #' @template -l #' @export #' @examples #' mlply(cbind(1:4, 4:1), rep) #' mlply(cbind(1:4, times = 4:1), rep) #' #' mlply(cbind(1:4, 4:1), seq) #' mlply(cbind(1:4, length = 4:1), seq) #' mlply(cbind(1:4, by = 4:1), seq, to = 20) mlply <- function(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL) { if (is.matrix(.data) & !is.list(.data)) .data <- .matrix_to_df(.data) f <- splat(.fun) alply(.data = .data, .margins = 1, .fun = f, ..., .expand = .expand, .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts) } plyr/R/round-any.r0000644000175100001440000000204112303221212013537 0ustar hornikusers#' Round to multiple of any number. #' #' @param x numeric or date-time (POSIXct) vector to round #' @param accuracy number to round to; for POSIXct objects, a number of seconds #' @param f rounding function: \code{\link{floor}}, \code{\link{ceiling}} or #' \code{\link{round}} #' @keywords manip #' @export #' @examples #' round_any(135, 10) #' round_any(135, 100) #' round_any(135, 25) #' round_any(135, 10, floor) #' round_any(135, 100, floor) #' round_any(135, 25, floor) #' round_any(135, 10, ceiling) #' round_any(135, 100, ceiling) #' round_any(135, 25, ceiling) #' #' round_any(Sys.time() + 1:10, 5) #' round_any(Sys.time() + 1:10, 5, floor) #' round_any(Sys.time(), 3600) round_any <- function(x, accuracy, f = round) { UseMethod("round_any") } #' @export round_any.numeric <- function(x, accuracy, f = round) { f(x / accuracy) * accuracy } #' @export round_any.POSIXct <- function(x, accuracy, f = round) { tz <- format(x[1], "%Z") xr <- round_any(as.numeric(x), accuracy, f) as.POSIXct(xr, origin="1970-01-01 00:00.00 UTC", tz=tz) } plyr/R/list-to-vector.r0000644000175100001440000000102612034020705014525 0ustar hornikusers#' List to vector. #' #' Reduce/simplify a list of homogenous objects to a vector #' #' @param res list of input data #' @keywords internal #' @family list simplification functions list_to_vector <- function(res) { n <- length(res) if (n == 0) return(vector()) if (n == 1) return(res[[1]]) atomic <- sapply(res, is.atomic) if (all(atomic)) { numeric <- all(unlist(lapply(res, is.numeric))) classes <- unique(lapply(res, class)) if (numeric || length(classes) == 1) { res <- unlist(res) } } res } plyr/R/m_ply.r0000644000175100001440000000133412035653700012764 0ustar hornikusers#' Call function with arguments in array or data frame, discarding results. #' #' Call a multi-argument function with values taken from columns of an #' data frame or array, and discard results into a list. #' #' @template ply #' @template m- #' @template -_ #' @export m_ply <- function(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .print = FALSE, .parallel = FALSE, .paropts = NULL) { if (is.matrix(.data) & !is.list(.data)) .data <- .matrix_to_df(.data) f <- splat(.fun) a_ply(.data = .data, .margins = 1, .fun = f, ..., .expand = .expand, .progress = .progress, .inform = .inform, .print = .print, .parallel = .parallel, .paropts = .paropts) } plyr/R/rename.r0000644000175100001440000000260212513035176013114 0ustar hornikusers#' Modify names by name, not position. #' #' @param x named object to modify #' @param replace named character vector, with new names as values, and #' old names as names. #' @param warn_missing print a message if any of the old names are #' not actually present in \code{x}. #' @param warn_duplicated print a message if any name appears more #' than once in \code{x} after the operation. #' Note: x is not altered: To save the result, you need to copy the returned #' data into a variable. #' @export #' @importFrom stats setNames #' @examples #' x <- c("a" = 1, "b" = 2, d = 3, 4) #' # Rename column d to "c", updating the variable "x" with the result #' x <- rename(x, replace = c("d" = "c")) #' x #' # Rename column "disp" to "displacement" #' rename(mtcars, c("disp" = "displacement")) rename <- function(x, replace, warn_missing = TRUE, warn_duplicated = TRUE ) { # This line does the real work of `rename()`. names(x) <- revalue(names(x), replace, warn_missing = warn_missing) # Check if any names are duplicated. duplicated_names <- names(x)[duplicated(names(x))] if (warn_duplicated && (length(duplicated_names) > 0L)) { duplicated_names_message <- paste0("`", duplicated_names, "`", collapse=", ") warning("The plyr::rename operation has created duplicates for the ", "following name(s): (", duplicated_names_message, ")", call. = FALSE) } x } plyr/R/arrange.r0000644000175100001440000000316212035565262013271 0ustar hornikusers#' Order a data frame by its colums. #' #' This function completes the subsetting, transforming and ordering triad #' with a function that works in a similar way to \code{\link{subset}} and #' \code{\link{transform}} but for reordering a data frame by its columns. #' This saves a lot of typing! #' #' @param df data frame to reorder #' @param ... expressions evaluated in the context of \code{df} and then fed #' to \code{\link{order}} #' @keywords manip #' @seealso \code{\link{order}} for sorting function in the base package #' @export #' @examples #' # sort mtcars data by cylinder and displacement #' mtcars[with(mtcars, order(cyl, disp)), ] #' # Same result using arrange: no need to use with(), as the context is implicit #' # NOTE: plyr functions do NOT preserve row.names #' arrange(mtcars, cyl, disp) #' # Let's keep the row.names in this example #' myCars = cbind(vehicle=row.names(mtcars), mtcars) #' arrange(myCars, cyl, disp) #' # Sort with displacement in descending order #' arrange(myCars, cyl, desc(disp)) arrange <- function(df, ...) { stopifnot(is.data.frame(df)) ord <- eval(substitute(order(...)), df, parent.frame()) if(length(ord) != nrow(df)) { stop("Length of ordering vectors don't match data frame size", call. = FALSE) } unrowname(df[ord, , drop = FALSE]) } #' Descending order. #' #' Transform a vector into a format that will be sorted in descending order. #' #' @param x vector to transform #' @keywords manip #' @export #' @examples #' desc(1:10) #' desc(factor(letters)) #' first_day <- seq(as.Date("1910/1/1"), as.Date("1920/1/1"), "years") #' desc(first_day) desc <- function(x) -xtfrm(x) plyr/R/take.r0000644000175100001440000000135312512025470012566 0ustar hornikusers#' Take a subset along an arbitrary dimension #' #' @param x matrix or array to subset #' @param along dimension to subset along #' @param indices the indices to select #' @param drop should the dimensions of the array be simplified? Defaults #' to \code{FALSE} which is the opposite of the useful R default. #' @export #' @keywords manip #' @examples #' x <- array(seq_len(3 * 4 * 5), c(3, 4, 5)) #' take(x, 3, 1) #' take(x, 2, 1) #' take(x, 1, 1) #' take(x, 3, 1, drop = TRUE) #' take(x, 2, 1, drop = TRUE) #' take(x, 1, 1, drop = TRUE) take <- function(x, along, indices, drop = FALSE) { nd <- length(dim(x)) index <- as.list(rep(TRUE, nd)) index[along] <- indices eval(as.call(c(as.name("["), as.name("x"), index, drop = drop))) } plyr/R/data.r0000644000175100001440000000607212034020705012551 0ustar hornikusers#' Monthly ozone measurements over Central America. #' #' #' This data set is a subset of the data from the 2006 ASA Data expo #' challenge, \url{http://stat-computing.org/dataexpo/2006/}. The data are #' monthly ozone averages on a very coarse 24 by 24 grid covering Central #' America, from Jan 1995 to Dec 2000. The data is stored in a 3d area with #' the first two dimensions representing latitude and longitude, and the third #' representing time. #' #' @docType data #' @name ozone #' @usage ozone #' @format A 24 x 24 x 72 numeric array #' @references \url{http://stat-computing.org/dataexpo/2006/} #' @keywords datasets #' @examples #' value <- ozone[1, 1, ] #' time <- 1:72 #' month.abbr <- c("Jan", "Feb", "Mar", "Apr", "May", #' "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") #' month <- factor(rep(month.abbr, length = 72), levels = month.abbr) #' year <- rep(1:6, each = 12) #' deseasf <- function(value) lm(value ~ month - 1) #' #' models <- alply(ozone, 1:2, deseasf) #' coefs <- laply(models, coef) #' dimnames(coefs)[[3]] <- month.abbr #' names(dimnames(coefs))[3] <- "month" #' #' deseas <- laply(models, resid) #' dimnames(deseas)[[3]] <- 1:72 #' names(dimnames(deseas))[3] <- "time" #' #' dim(coefs) #' dim(deseas) NULL #' Yearly batting records for all major league baseball players #' #' This data frame contains batting statistics for a subset of players #' collected from \url{http://www.baseball-databank.org/}. There are a total #' of 21,699 records, covering 1,228 players from 1871 to 2007. Only players #' with more 15 seasons of play are included. #' #' @section Variables: #' Variables: #' \itemize{ #' \item id, unique player id #' \item year, year of data #' \item stint #' \item team, team played for #' \item lg, league #' \item g, number of games #' \item ab, number of times at bat #' \item r, number of runs #' \item h, hits, times reached base because of a batted, fair ball without #' error by the defense #' \item X2b, hits on which the batter reached second base safely #' \item X3b, hits on which the batter reached third base safely #' \item hr, number of home runs #' \item rbi, runs batted in #' \item sb, stolen bases #' \item cs, caught stealing #' \item bb, base on balls (walk) #' \item so, strike outs #' \item ibb, intentional base on balls #' \item hbp, hits by pitch #' \item sh, sacrifice hits #' \item sf, sacrifice flies #' \item gidp, ground into double play #' } #' @docType data #' @name baseball #' @usage baseball #' @format A 21699 x 22 data frame #' @references \url{http://www.baseball-databank.org/} #' @keywords datasets #' @examples #' baberuth <- subset(baseball, id == "ruthba01") #' baberuth$cyear <- baberuth$year - min(baberuth$year) + 1 #' #' calculate_cyear <- function(df) { #' mutate(df, #' cyear = year - min(year), #' cpercent = cyear / (max(year) - min(year)) #' ) #' } #' #' baseball <- ddply(baseball, .(id), calculate_cyear) #' baseball <- subset(baseball, ab >= 25) #' #' model <- function(df) { #' lm(rbi / ab ~ cyear, data=df) #' } #' model(baberuth) #' models <- dlply(baseball, .(id), model) NULL plyr/R/list-to-dataframe.r0000644000175100001440000000416112303221212015145 0ustar hornikusers#' List to data frame. #' #' Reduce/simplify a list of homogenous objects to a data frame. All #' \code{NULL} entries are removed. Remaining entries must be all atomic #' or all data frames. #' #' @family list simplification functions #' @param res list of input data #' @param labels a data frame of labels, one row for each element of res #' @param idname the name of the index column, \code{NULL} for no index #' column #' @keywords internal list_to_dataframe <- function(res, labels = NULL, id_name = NULL, id_as_factor = FALSE) { null <- vapply(res, is.null, logical(1)) res <- res[!null] if (length(res) == 0) return(data.frame()) if (!is.null(labels)) { stopifnot(nrow(labels) == length(null)) labels <- labels[!null, , drop = FALSE] } names_res <- names(res) if (!is.null(id_name) && is.null(labels) && !is.null(names_res)) { stopifnot(length(id_name) == 1) if (id_as_factor) names_res <- factor(names_res, levels = unique(names_res)) labels <- data.frame(.id = names_res, stringsAsFactors = FALSE) names(labels) <- id_name } # Figure out how to turn elements into a data frame atomic <- unlist(lapply(res, is.atomic)) df <- unlist(lapply(res, is.data.frame)) mat <- unlist(lapply(res, is.matrix)) if (all(mat)) { resdf <- as.data.frame(rbind.fill.matrix(res)) rows <- unlist(lapply(res, NROW)) } else if (all(atomic)) { nrow <- length(res) ncol <- unique(unlist(lapply(res, length))) if (length(ncol) != 1) stop("Results do not have equal lengths") vec <- unname(do.call("c", res)) resdf <- quickdf(unname(split(vec, rep(seq_len(ncol), nrow)))) names(resdf) <- make_names(res[[1]], "V") rows <- rep(1, length(nrow)) } else if (all(df)) { resdf <- rbind.fill(res) rows <- unlist(lapply(res, NROW)) } else { stop("Results must be all atomic, or all data frames") } if(is.null(labels)) return(unrowname(resdf)) # Add labels to results names(labels) <- make_names(labels, "X") cols <- setdiff(names(labels), names(resdf)) labels <- labels[rep(1:nrow(labels), rows), cols, drop = FALSE] unrowname(cbind(labels, resdf)) } plyr/R/maply.r0000644000175100001440000000157412035653710012775 0ustar hornikusers#' Call function with arguments in array or data frame, returning an array. #' #' Call a multi-argument function with values taken from columns of an #' data frame or array, and combine results into an array #' #' @template ply #' @template m- #' @template -a #' @export #' @examples #' maply(cbind(mean = 1:5, sd = 1:5), rnorm, n = 5) #' maply(expand.grid(mean = 1:5, sd = 1:5), rnorm, n = 5) #' maply(cbind(1:5, 1:5), rnorm, n = 5) maply <- function(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) { if (is.matrix(.data) & !is.list(.data)) .data <- .matrix_to_df(.data) f <- splat(.fun) aaply(.data = .data, .margins = 1, .fun = f, ..., .expand = .expand, .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts, .drop = .drop) } plyr/R/d_ply.r0000644000175100001440000000135012506330463012752 0ustar hornikusers#' Split data frame, apply function, and discard results. #' #' For each subset of a data frame, apply function and discard results. #' To apply a function for each row, use \code{\link{a_ply}} with #' \code{.margins} set to \code{1}. #' #' @template ply #' @template d- #' @template -_ #' @export d_ply <- function(.data, .variables, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop = TRUE, .print = FALSE, .parallel = FALSE, .paropts = NULL) { .variables <- as.quoted(.variables) pieces <- splitter_d(.data, .variables, drop = .drop) l_ply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .print = .print, .parallel = .parallel, .paropts = .paropts) } plyr/R/revalue.r0000644000175100001440000000633012303221212013273 0ustar hornikusers#' Replace specified values with new values, in a factor or character vector. #' #' If \code{x} is a factor, the named levels of the factor will be #' replaced with the new values. #' #' This function works only on character vectors and factors, but the #' related \code{mapvalues} function works on vectors of any type and factors, #' and instead of a named vector specifying the original and replacement values, #' it takes two separate vectors #' #' @param x factor or character vector to modify #' @param replace named character vector, with new values as values, and #' old values as names. #' @param warn_missing print a message if any of the old values are #' not actually present in \code{x} #' #' @seealso \code{\link{mapvalues}} to replace values with vectors of any type #' @export #' @examples #' x <- c("a", "b", "c") #' revalue(x, c(a = "A", c = "C")) #' revalue(x, c("a" = "A", "c" = "C")) #' #' y <- factor(c("a", "b", "c", "a")) #' revalue(y, c(a = "A", c = "C")) revalue <- function(x, replace = NULL, warn_missing = TRUE) { if (!is.null(x) && !is.factor(x) && !is.character(x)) { stop("x is not a factor or a character vector.") } mapvalues(x, from = names(replace), to = replace, warn_missing = warn_missing) } #' Replace specified values with new values, in a vector or factor. #' #' Item in \code{x} that match items \code{from} will be replaced by #' items in \code{to}, matched by position. For example, items in \code{x} that #' match the first element in \code{from} will be replaced by the first #' element of \code{to}. #' #' If \code{x} is a factor, the matching levels of the factor will be #' replaced with the new values. #' #' The related \code{revalue} function works only on character vectors #' and factors, but this function works on vectors of any type and factors. #' #' @param x the factor or vector to modify #' @param from a vector of the items to replace #' @param to a vector of replacement values #' @param warn_missing print a message if any of the old values are #' not actually present in \code{x} #' #' @seealso \code{\link{revalue}} to do the same thing but with a single #' named vector instead of two separate vectors. #' @export #' @examples #' x <- c("a", "b", "c") #' mapvalues(x, c("a", "c"), c("A", "C")) #' #' # Works on factors #' y <- factor(c("a", "b", "c", "a")) #' mapvalues(y, c("a", "c"), c("A", "C")) #' #' # Works on numeric vectors #' z <- c(1, 4, 5, 9) #' mapvalues(z, from = c(1, 5, 9), to = c(10, 50, 90)) mapvalues <- function(x, from, to, warn_missing = TRUE) { if (length(from) != length(to)) { stop("`from` and `to` vectors are not the same length.") } if (!is.atomic(x)) { stop("`x` must be an atomic vector.") } if (is.factor(x)) { # If x is a factor, call self but operate on the levels levels(x) <- mapvalues(levels(x), from, to, warn_missing) return(x) } mapidx <- match(x, from) mapidxNA <- is.na(mapidx) # index of items in `from` that were found in `x` from_found <- sort(unique(mapidx)) if (warn_missing && length(from_found) != length(from)) { message("The following `from` values were not present in `x`: ", paste(from[!(1:length(from) %in% from_found) ], collapse = ", ")) } x[!mapidxNA] <- to[mapidx[!mapidxNA]] x } plyr/R/ddply.r0000644000175100001440000000352612506330463012766 0ustar hornikusers#' Split data frame, apply function, and return results in a data frame. #' #' For each subset of a data frame, apply function then combine results into a #' data frame. #' To apply a function for each row, use \code{\link{adply}} with #' \code{.margins} set to \code{1}. #' #' @template ply #' @template d- #' @template -d #' @seealso \code{\link{tapply}} for similar functionality in the base package #' @export #' @examples #' # Summarize a dataset by two variables #' dfx <- data.frame( #' group = c(rep('A', 8), rep('B', 15), rep('C', 6)), #' sex = sample(c("M", "F"), size = 29, replace = TRUE), #' age = runif(n = 29, min = 18, max = 54) #' ) #' #' # Note the use of the '.' function to allow #' # group and sex to be used without quoting #' ddply(dfx, .(group, sex), summarize, #' mean = round(mean(age), 2), #' sd = round(sd(age), 2)) #' #' # An example using a formula for .variables #' ddply(baseball[1:100,], ~ year, nrow) #' # Applying two functions; nrow and ncol #' ddply(baseball, .(lg), c("nrow", "ncol")) #' #' # Calculate mean runs batted in for each year #' rbi <- ddply(baseball, .(year), summarise, #' mean_rbi = mean(rbi, na.rm = TRUE)) #' # Plot a line chart of the result #' plot(mean_rbi ~ year, type = "l", data = rbi) #' #' # make new variable career_year based on the #' # start year for each player (id) #' base2 <- ddply(baseball, .(id), mutate, #' career_year = year - min(year) + 1 #' ) ddply <- function(.data, .variables, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) { if (empty(.data)) return(.data) .variables <- as.quoted(.variables) pieces <- splitter_d(.data, .variables, drop = .drop) ldply(.data = pieces, .fun = .fun, ..., .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts) } plyr/R/list-to-array.r0000644000175100001440000000416612512025504014354 0ustar hornikusers#' List to array. #' #' Reduce/simplify a list of homogenous objects to an array #' #' @param res list of input data #' @param labels a data frame of labels, one row for each element of res #' @param .drop should extra dimensions be dropped (TRUE) or preserved (FALSE) #' @family list simplification functions #' @keywords internal list_to_array <- function(res, labels = NULL, .drop = FALSE) { if (length(res) == 0) return(vector()) n <- length(res) atomic <- sapply(res, is.atomic) if (all(atomic) || all(!atomic)) { dlength <- unique.default(llply(res, dims)) if (length(dlength) != 1) stop("Results must have the same number of dimensions.") dims <- unique(do.call("rbind", llply(res, amv_dim))) if (is.null(dims)) stop("Results must have one or more dimensions.", call. = FALSE) if (nrow(dims) != 1) stop("Results must have the same dimensions.", call. = FALSE) res_dim <- amv_dim(res[[1]]) res_labels <- amv_dimnames(res[[1]]) if (any(vapply(res_labels, anyDuplicated, integer(1)) != 0)) { warning("Duplicate names not supported.", call. = FALSE) } res_index <- expand.grid(res_labels) res <- unlist(res, use.names = FALSE, recursive = FALSE) } else { stop("Results must have compatible types.") } if (is.null(labels)) { labels <- data.frame(X = seq_len(n)) in_labels <- list(NULL) in_dim <- n } else { in_labels <- lapply(labels, function(x) if(is.factor(x)) levels(x) else sort(unique(x), na.last = TRUE)) in_dim <- sapply(in_labels, length) } # Work out where each result should go in the new array index_old <- rep(id(rev(labels)), each = nrow(res_index)) index_new <- rep(id(rev(res_index)), nrow(labels)) index <- (index_new - 1) * prod(in_dim) + index_old out_dim <- unname(c(in_dim, res_dim)) out_labels <- c(in_labels, res_labels) n <- prod(out_dim) if (length(index) < n) { overall <- match(1:n, index, nomatch = NA) } else { overall <- order(index) } out_array <- res[overall] dim(out_array) <- out_dim dimnames(out_array) <- out_labels if (.drop) reduce_dim(out_array) else out_array } plyr/R/ldply.r0000644000175100001440000000204412511213671012765 0ustar hornikusers#' Split list, apply function, and return results in a data frame. #' #' For each element of a list, apply function then combine results into a data #' frame. #' #' @template ply #' @template l- #' @template -d #' @param .id name of the index column (used if \code{.data} is a named list). #' Pass \code{NULL} to avoid creation of the index column. For compatibility, #' omit this argument or pass \code{NA} to avoid converting the index column #' to a factor; in this case, \code{".id"} is used as colum name. #' @export ldply <- function(.data, .fun = NULL, ..., .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL, .id = NA) { if (!inherits(.data, "split")) .data <- as.list(.data) res <- llply(.data = .data, .fun = .fun, ..., .progress = .progress, .inform = .inform, .parallel = .parallel, .paropts = .paropts) if (identical(.id, NA)) { .id <- ".id" id_as_factor <- FALSE } else { id_as_factor <- TRUE } list_to_dataframe(res, attr(.data, "split_labels"), .id, id_as_factor) } plyr/R/try.r0000644000175100001440000000317312512025470012462 0ustar hornikusers#' Fail with specified value. #' #' Modify a function so that it returns a default value when there is an #' error. #' #' @param default default value #' @param f function #' @param quiet all error messages be suppressed? #' @return a function #' @seealso \code{\link{try_default}} #' @keywords debugging #' @export #' @examples #' f <- function(x) if (x == 1) stop("Error!") else 1 #' \dontrun{ #' f(1) #' f(2) #' } #' #' safef <- failwith(NULL, f) #' safef(1) #' safef(2) failwith <- function(default = NULL, f, quiet = FALSE) { f <- match.fun(f) function(...) try_default(f(...), default, quiet = quiet) } #' Try, with default in case of error. #' #' \code{try_default} wraps try so that it returns a default value in the case of error. #' \code{tryNULL} provides a useful special case when dealing with lists. #' #' @param expr expression to try #' @param default default value in case of error #' @param quiet should errors be printed (TRUE) or ignored (FALSE, default) #' @export #' @keywords internal #' @seealso \code{\link{tryapply}} try_default <- function(expr, default, quiet = FALSE) { result <- default if (quiet) { tryCatch(result <- expr, error = function(e) NULL) } else { try(result <- expr) } result } #' @rdname try_default #' @export tryNULL <- function(expr) try_default(expr, NULL, quiet = TRUE) #' Apply with built in try. #' Uses compact, lapply and tryNULL #' #' @param list list to apply function \code{f} on #' @param f function #' @param ... further arguments to \code{f} #' @keywords internal #' @export tryapply <- function(list, fun, ...) { compact(lapply(list, function(x) tryNULL(fun(x, ...)))) } plyr/README.md0000644000175100001440000000331012725615710012540 0ustar hornikusers# plyr [![Build Status](https://travis-ci.org/hadley/plyr.png?branch=master)](https://travis-ci.org/hadley/plyr) [![Coverage Status](https://img.shields.io/codecov/c/github/hadley/plyr/master.svg)](https://codecov.io/github/hadley/plyr?branch=master) plyr is a set of tools for a common set of problems: you need to __split__ up a big data structure into homogeneous pieces, __apply__ a function to each piece and then __combine__ all the results back together. For example, you might want to: * fit the same model each patient subsets of a data frame * quickly calculate summary statistics for each group * perform group-wise transformations like scaling or standardising It's already possible to do this with base R functions (like split and the apply family of functions), but plyr makes it all a bit easier with: * totally consistent names, arguments and outputs * convenient parallelisation through the foreach package * input from and output to data.frames, matrices and lists * progress bars to keep track of long running operations * built-in error recovery, and informative error messages * labels that are maintained across all transformations Considerable effort has been put into making plyr fast and memory efficient, and in many cases plyr is as fast as, or faster than, the built-in equivalents. A detailed introduction to plyr has been published in JSS: "The Split-Apply-Combine Strategy for Data Analysis", http://www.jstatsoft.org/v40/i01/. You can find out more at http://had.co.nz/plyr/, or track development at http://github.com/hadley/plyr. You can ask questions about plyr (and data manipulation in general) on the plyr mailing list. Sign up at http://groups.google.com/group/manipulatr. plyr/MD50000644000175100001440000002410412725754757011614 0ustar hornikusers0eabd769da21390813bfa84e25ff25d0 *DESCRIPTION 7bb6b2019939096672a443d7b6e80d5b *LICENSE 4b64244b65e48806ddb6e52b08e29701 *NAMESPACE b2c019f5dfd0df9d5bbbd15200be5f71 *R/RcppExports.R 2cacb3ab0a140e444938f826a09b7a0d *R/a_ply.r 4b2f1db5592db1334de9bd61ee98436b *R/aaply.r f2604fbe88644ec6f399539b4f5dbff0 *R/adply.r effba88914db9ef403f64b4b0d00a8d5 *R/alply.r 27850e8a34d803a77059aee92fe98a51 *R/arrange.r 6eddac05a5943b98bcd29462cddc5390 *R/colwise.r a3b498c0d8ed5f7e1a390f9efbbef4f4 *R/count.r 6b68e71c118e44176bc1208233cb7137 *R/d_ply.r 0ad7db00b35f5faee233ce24b748a8a1 *R/daply.r 50cff93340befcbf6deb04405ead23b2 *R/data-frame.r 526de3e3bf03679c79a9b4165d6cc128 *R/data.r 321bf16b07873b178be8484f5469af72 *R/ddply.r 201c9ac2be5dfa8fa52575e9b459bb64 *R/defaults.r abdf36c15fa6440db800895aa3695571 *R/dimensions.r a7343f7e3aad4a4a11879dd842576c29 *R/dlply.r 73c12c892419c28e8b78bf73dfccfc63 *R/each.r 0fd02775e3776a16238525b97b99881d *R/here.r 13cbaf54ee3454297e2b2712530e00f3 *R/id.r d11be448754a6f5b24301dfadefd3f05 *R/idataframe.r fc14994abc7f86af89a188295a2dc5f5 *R/indexed-array.r 229267201ee89bc089a3b3f7c6fba5cb *R/indexed-data-frame.r 4e3adb71aeb565d48c87cb1592b13714 *R/indexed.r cd70a68dd7556c7b463c64fbb0de98f2 *R/join-all.r bd3b37f2d0c588b577729987a7b390b2 *R/join.r fbad4b6c69bc03fe649a893c6ee41061 *R/l_ply.r 49db6bd50575429654a36aec5fca75dc *R/laply.r 5c0761febd091075fd2c3c375458b9de *R/ldply.r 996456dbd8d9748c3d7273a0b66b3cc0 *R/liply.r b082625367148bbede12cdeae2d9676d *R/list-to-array.r d2d461c086c0a59c3e8bcdc2f5760086 *R/list-to-dataframe.r 0235ddca614287ca137a2a5ec80b6ecc *R/list-to-vector.r 5b11e23dbf190ed0cdfae2c6377ad257 *R/llply.r 145b339ac4875b011469243ce1c072a5 *R/loop_apply.R 138f6c83d529bbf8c68f8830d7081570 *R/m_ply.r 233c43c50f214fb7b6cb4da744bda204 *R/maply.r 8c2d4fbdc639835b6a7d5fa2f01f0026 *R/match-df.r cdf123cbd9772e88f6a1238f60b77078 *R/mdply.r f8952eb7391ea62de7b94494f2734d23 *R/mlply.r 9340cf2fdf5f6be08886aac2037a7274 *R/mutate.r f883208d0ce69464dfbe690812161a44 *R/name-rows.r 45c5b329e5a1ab0aac2a6ccec2c2e60d *R/parallel.r f66e62cbef6484534c99dc3934eba248 *R/plyr-deprecated.r 988021b688b3a21394e3ac8796297a0c *R/plyr.r 22232615909daf78127cfde12d5e199d *R/progress-time.r 77e7c5e10eb6de675e000b27e006c805 *R/progress.r 87b4723fec09c203ea9c98373d87cb4b *R/quickdf.r 4505d22d30f983ade43482967a8873d3 *R/quote.r d2d78e4a2a595733f0f9b15b50a36ce0 *R/r_ply.r 9280ab29ec7162e29f330717de5ee90e *R/raply.r 4fb819a754a3c96194ce9c11ef181f52 *R/rbind-fill-matrix.r 51f151575d5a523b7a0f856d8e7a7672 *R/rbind-fill.r 514f68d869a789c77abde662808b7649 *R/rdply.r 415e517a3aa9f222679efad6c5729a3c *R/rename.r ddd658679cca81363137627bfe7edaa2 *R/revalue.r a174b1efb8b3bec8dbf7256d12dad2fa *R/rlply.r b0d8beec3c1c5cab302e9454c8b16d33 *R/round-any.r 7369a7d69027736f1e62f0f49fa8aed6 *R/splat.r 29e4abb6bc1f7561ff08c08554ccb58c *R/split.r 3a1bdc96de5cdbeb96ece99f27d2567f *R/splitter-a.r 75bdf5f45ad79a232c5da028f3206489 *R/splitter-d.r c3f4bc5baaa2be00a96fae50f235097a *R/strip-splits.r 9df07a1821d3b3c8698b387f037156d4 *R/summarise.r def748e3cbe191df41ddbf5804d48bd2 *R/take.r 74343cc970ed6691fa2d2a0b18c3a7c5 *R/try.r 40779d49b8ac7f779f3201fb22c5bb6b *R/utils.r 3114568678a3ce43b5347986cb14597b *R/vaggregate.r 72f816f344c8c8a37c320782f07229ae *README.md 9b2d63a08f6c4d1718642d2c904c230a *data/baseball.rda 12d6f72bbc8c97a10e7c4c235aab3ae3 *data/ozone.rda c064ec8464bce62b7862acec50e8475b *inst/CITATION 271239540d56a146f875e6dcf88a2713 *man/a_ply.Rd 755afa4be556a49d2820b61e1fda1b4e *man/aaply.Rd 9783dcae6cb3be2ba2dcf9590b889940 *man/adply.Rd 60770c7c7c807230bab1357ecf810462 *man/alply.Rd b0feb05e1da0a84f4b24caf71184fd52 *man/amv_dim.Rd acb48ccc3800cc8ff98d746039e5d183 *man/amv_dimnames.Rd 37b3129af6dd0613e70361287079fc3d *man/arrange.Rd 1055e20b3dc197decdd276d55e1f8d89 *man/as.data.frame.function.Rd c634ebdbd65a76e51a5a56ade6b1721a *man/as.list.split.Rd e1d9343d11ed8b5ab148a6fba9d64c16 *man/as.quoted.Rd 6e9bf7449092ba4c9a85585bd6e1e6f5 *man/baseball.Rd 8c890f57c81ff6854117bd34fc5f4463 *man/colwise.Rd ccbeccc8b80ed16e739e27a82fdce7dc *man/compact.Rd e407f46a34a570c16bf3ea30d4d4aabb *man/count.Rd f0e364e2351aa62cee3d954c50d68a4f *man/create_progress_bar.Rd 21648554620e20a68bc9bfeabc876682 *man/d_ply.Rd fbcb13b5e1b1d08c3ee722ec9befdee6 *man/daply.Rd b6668bce154d7fcff2e1eb359d28aa50 *man/ddply.Rd 7cc10633442945aea43b37afa0500e3b *man/defaults.Rd af6e25d69f244c508682f07219bfecf0 *man/desc.Rd 882306a62dfbb14a440d58487e88654c *man/dims.Rd fb5c0a49242ae81a56c9c18ad908c934 *man/dlply.Rd 17d8464f5eb97446be57980348b18878 *man/each.Rd bbf281517ac7db48c41f70c7e4401780 *man/empty.Rd c26f181838e491d80c20d069fbbbffe6 *man/eval.quoted.Rd daa926aa3cb6944e31797f584f619cd8 *man/failwith.Rd 6f7fa1eba432b4d2334a04300b704ce5 *man/get-split.Rd ffaabc964d729af39e89a121f72a6162 *man/here.Rd b4c33aded6736bbed7757a9e32de2911 *man/id.Rd a7cd557226de8bbce135ec44af51de63 *man/id_var.Rd 6ea43a03a13d1254b9479df4fd7a6598 *man/idata.frame.Rd 6a538cdce37b36ab061bbaca94384a15 *man/indexed_array.Rd f781be6bf51fd396bf1d3703345f2283 *man/indexed_df.Rd 344e8c59c12161362e195c716df5e6d9 *man/is.discrete.Rd 415c7c9354707df22eb2536926ff1013 *man/is.formula.Rd a6272ccbd9d7dc2086e075b404f343d3 *man/isplit2.Rd 65ebd0dde772eb06dd28e7a404e2fa4d *man/join.Rd e40351d58c09b4b0a165d7f848674d45 *man/join.keys.Rd bf4154efcef274743020fbae426544c3 *man/join_all.Rd 8070bfa8b4d1a9d45451d9ee7a41dc19 *man/l_ply.Rd 8ce55a8da390a5f16512f23882be592c *man/laply.Rd a5f50ecdf0c92c61b16602d398c814b8 *man/ldply.Rd d10088717473dbbe7b28c461fdc35cff *man/liply.Rd f12d275ae13a5cd62509bde7939dc055 *man/list_to_array.Rd 083ea754ecaf400cc61344ae07696d36 *man/list_to_dataframe.Rd d979c64d10d3de44ac6f8b3799c88949 *man/list_to_vector.Rd 15d631c43b98b4b159e99a70bbe1ff9e *man/llply.Rd a35c7bb83b737304f86867a429f3d91e *man/loop_apply.Rd 6aa28c05105280313c57948849da5068 *man/m_ply.Rd e443316094ee57fea1e6efbc21964afa *man/maply.Rd 88c8d59a11b2e3e5081929c6c561064c *man/mapvalues.Rd 98b60d2a6ea7a0cd1b130a8512010860 *man/match_df.Rd a8f7638104bfc99d0e5c9a4b430c2f6d *man/mdply.Rd 5abd240272a8b8390a869cc197344505 *man/mlply.Rd d599d7169bbf2963c8f433aad97ec827 *man/mutate.Rd 3c567c3ecd3971134bd81b8abdd08740 *man/name_rows.Rd ed676c9f2db1cfecc686872d0e1644ab *man/names.quoted.Rd 890fab96ab468943c9805f0fddc62820 *man/nunique.Rd c1020c6f1c8aedf4c9e9d350def9626b *man/ozone.Rd 50386b437e69a271f9fb5f51731a8d63 *man/plyr-deprecated.Rd 1e9f8399d00f22adc0207d4e3f82fb3a *man/plyr.Rd a6e1ac64d2075b7c9cdc6b0eef0cfd89 *man/print.quoted.Rd a90f5b053997fb7e5733ca4f824c13e3 *man/print.split.Rd 3c120376b017acda7fbab3a69de91d99 *man/progress_none.Rd ec7b77b5a3a2834ad6a5661fac706cb8 *man/progress_text.Rd eaf9a6bc4690fce57de65353b88b1236 *man/progress_time.Rd 2a9db33f861fbf959fd5edc0c6f23b1e *man/progress_tk.Rd a05f44c388fb9d2355ba9fc57a0ac4fa *man/progress_win.Rd 3ffb3b97f5439ed72cd6415d116c4430 *man/quickdf.Rd e4c4b286021c48a7b0809b548e20986b *man/quoted.Rd 29e8a6f89b6504e53f9bdd4a49e3d454 *man/r_ply.Rd 7120203b692e1b4825af6310deff0439 *man/raply.Rd 64a20340aba8e902a21633b67a510840 *man/rbind.fill.Rd efd035018fd2ff3fe32edb108b78d55f *man/rbind.fill.matrix.Rd 53092a8b2fdc028b9395c99efd6a0812 *man/rdply.Rd 3b7d15065382081bfe1148b9a32acf3f *man/reduce_dim.Rd 51543a5540e1fb33957a64af3fe28ba7 *man/rename.Rd ddff8ca6ad04dcfa9e50f4fc2a261109 *man/revalue.Rd acfbf7efc1073acd4fafd21ef0851f61 *man/rlply.Rd b425a17495bb8b09da722b5172953330 *man/round_any.Rd b5169560671c346c56502a8d7fb63a4b *man/splat.Rd 7a1d7d40a3b822af6513dd6fe6b48972 *man/split_indices.Rd d8507d4da74b3d053af150437f882c13 *man/split_labels.Rd d05abc431d724abfdadf254cd027bfb2 *man/splitter_a.Rd ec605226f5d837f7156869fe9af4c76d *man/splitter_d.Rd cdca92a3eed9a98e3932e475135834b9 *man/strip_splits.Rd 569dbf864b161062ed1940c5f07e0dac *man/summarise.Rd d0632c368f1a85129cf99ef396688555 *man/take.Rd 7adfcc5aa9a0d0a189c6ed8bb111c624 *man/true.Rd 864d2a3a5cd409f6d6666adda617bc4e *man/try_default.Rd d71b18bf0dea8745124dd6af2e286755 *man/tryapply.Rd 2f72b64634ade621ac77a71f83b7d1e9 *man/unrowname.Rd 8d33f326a3a74881c35c1380197e9ba9 *man/vaggregate.Rd 023038c8fd8345b5b892162bd7c6e5c9 *src/RcppExports.cpp 75d31e4f078aa79bd86e91ee5f85b322 *src/loop_apply.c 635efc489b194a6b73c08a2e2896b36f *src/split-numeric.cpp 3c5e14d243849a45ef414e14aa5a5184 *tests/testthat.R d564b7820ed6c9598ef0e9f39913a4dc *tests/testthat/quickdf.r 276325b0874ec8b9dae723d82a2be520 *tests/testthat/test-arrange.r 05359b6d7232906cab6f6ef7238d541a *tests/testthat/test-array.r 187e40ad2a81d6d05ff7d359b3abcdc0 *tests/testthat/test-count.r 8e4432b2f786df04c93acbc3df0e6dd8 *tests/testthat/test-data-frame.r e48e8b4ea198110449eee62660bb7f87 *tests/testthat/test-debug.r 570589b2d8f6a5e7a5a9292bde0255c3 *tests/testthat/test-empty.r ba14e87b8bb1b0bde96358cab3800140 *tests/testthat/test-id.r 22fb32944156a59fb79d4b9b9185f685 *tests/testthat/test-idf.r 8bc102a986a50c553fa40ad13edc7f39 *tests/testthat/test-inform.r ca184609d73e0d3d4a605e1da787716f *tests/testthat/test-join.r d09ac8d7646b3d6c434c50467580dc8c *tests/testthat/test-list.r 9f2f96ae51cb9f43ba79bbff45c9f767 *tests/testthat/test-manip.r e4a2dbcd3e829d98895ac697916dbfc5 *tests/testthat/test-mapply.r 0d1b884651b4e602c267673c4f86c130 *tests/testthat/test-mutate.r c66dedf6251001e69782f7c3f5a54349 *tests/testthat/test-ninteraction.r a862ac5d7ab225e96258d6d67d820239 *tests/testthat/test-parallel.r 146c98c42bcdd398d2805c35aaf83b6d *tests/testthat/test-progress.r 173260708c547a2ebd96c2cd797c8e07 *tests/testthat/test-quote.r 226e8fd21e0da1a8a7edfb46e81a0ebc *tests/testthat/test-rbind.matrix.r efaeb4f1816d9f4daa5011b1d192c9b0 *tests/testthat/test-rbind.r 567571b52e4ddee6873533f2f1ed3185 *tests/testthat/test-rename.r 30bab23a097dc350296100a63088b04e *tests/testthat/test-replicate.r a4727a9d37fcf4385aab5b72866d8332 *tests/testthat/test-revalue.r 949976e498103b10ace8b99e01d8c38a *tests/testthat/test-rply.r c2a2f2887e3926a850e1923ae62689a0 *tests/testthat/test-simplify-df.r 8333352212f7d58b1e53ce26a60afb5f *tests/testthat/test-split-data-frame.r d2dd8597307e5cd0b7bb7e1bae4ab331 *tests/testthat/test-split-indices.r 9dd79657465c4e2ab72d4209f047854b *tests/testthat/test-split-labels.r 2ccbc25d64e4f30451be4b5c019c7071 *tests/testthat/test-summarise.r b76073a4e32c45b1bc2cbd8911329cc7 *tests/testthat/test-utils.r plyr/DESCRIPTION0000644000175100001440000000223012725754757013006 0ustar hornikusersPackage: plyr Version: 1.8.4 Title: Tools for Splitting, Applying and Combining Data Description: A set of tools that solves a common set of problems: you need to break a big problem down into manageable pieces, operate on each piece and then put all the pieces back together. For example, you might want to fit a model to each spatial location or time point in your study, summarise data by panels or collapse high-dimensional arrays to simpler summary statistics. The development of 'plyr' has been generously supported by 'Becton Dickinson'. Authors@R: person("Hadley", "Wickham", , "hadley@rstudio.com", c("aut", "cre")) URL: http://had.co.nz/plyr, https://github.com/hadley/plyr BugReports: https://github.com/hadley/plyr/issues Depends: R (>= 3.1.0) Imports: Rcpp (>= 0.11.0) LinkingTo: Rcpp Suggests: abind, testthat, tcltk, foreach, doParallel, itertools, iterators, covr License: MIT + file LICENSE LazyData: true RoxygenNote: 5.0.1 NeedsCompilation: yes Packaged: 2016-06-07 19:58:36 UTC; hadley Author: Hadley Wickham [aut, cre] Maintainer: Hadley Wickham Repository: CRAN Date/Publication: 2016-06-08 10:40:15 plyr/man/0000755000175100001440000000000012560701400012024 5ustar hornikusersplyr/man/aaply.Rd0000644000175100001440000000664312725615561013451 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/aaply.r \name{aaply} \alias{aaply} \title{Split array, apply function, and return results in an array.} \usage{ aaply(.data, .margins, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{matrix, array or data frame to be processed} \item{.margins}{a vector giving the subscripts to split up \code{data} by. 1 splits up by rows, 2 by columns and c(1,2) by rows and columns, and so on for higher dimensions} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.expand}{if \code{.data} is a data frame, should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.drop}{should extra dimensions of length 1 in the output be dropped, simplifying the output. Defaults to \code{TRUE}} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions) } \description{ For each slice of an array, apply function, keeping results as an array. } \details{ This function is very similar to \code{\link{apply}}, except that it will always return an array, and when the function returns >1 d data structures, those dimensions are added on to the highest dimensions, rather than the lowest dimensions. This makes \code{aaply} idempotent, so that \code{aaply(input, X, identity)} is equivalent to \code{aperm(input, X)}. } \section{Warning}{ Passing a data frame as first argument may lead to unexpected results, see \url{https://github.com/hadley/plyr/issues/212}. } \section{Input}{ This function splits matrices, arrays and data frames by dimensions } \section{Output}{ If there are no results, then this function will return a vector of length 0 (\code{vector()}). } \examples{ dim(ozone) aaply(ozone, 1, mean) aaply(ozone, 1, mean, .drop = FALSE) aaply(ozone, 3, mean) aaply(ozone, c(1,2), mean) dim(aaply(ozone, c(1,2), mean)) dim(aaply(ozone, c(1,2), mean, .drop = FALSE)) aaply(ozone, 1, each(min, max)) aaply(ozone, 3, each(min, max)) standardise <- function(x) (x - min(x)) / (max(x) - min(x)) aaply(ozone, 3, standardise) aaply(ozone, 1:2, standardise) aaply(ozone, 1:2, diff) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other array input: \code{\link{a_ply}}, \code{\link{adply}}, \code{\link{alply}} Other array output: \code{\link{daply}}, \code{\link{laply}}, \code{\link{maply}} } \keyword{manip} plyr/man/unrowname.Rd0000644000175100001440000000041112725615561014341 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.r \name{unrowname} \alias{unrowname} \title{Un-rowname.} \usage{ unrowname(x) } \arguments{ \item{x}{data frame} } \description{ Strip rownames from an object } \keyword{internal} plyr/man/rbind.fill.Rd0000644000175100001440000000252612725615561014362 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/rbind-fill.r \name{rbind.fill} \alias{rbind.fill} \title{Combine data.frames by row, filling in missing columns.} \usage{ rbind.fill(...) } \arguments{ \item{...}{input data frames to row bind together. The first argument can be a list of data frames, in which case all other arguments are ignored. Any NULL inputs are silently dropped. If all inputs are NULL, the output is NULL.} } \value{ a single data frame } \description{ \code{rbind}s a list of data frames filling missing columns with NA. } \details{ This is an enhancement to \code{\link{rbind}} that adds in columns that are not present in all inputs, accepts a list of data frames, and operates substantially faster. Column names and types in the output will appear in the order in which they were encountered. Unordered factor columns will have their levels unified and character data bound with factors will be converted to character. POSIXct data will be converted to be in the same time zone. Array and matrix columns must have identical dimensions after the row count. Aside from these there are no general checks that each column is of consistent data type. } \examples{ rbind.fill(mtcars[c("mpg", "wt")], mtcars[c("wt", "cyl")]) } \seealso{ Other binding functions: \code{\link{rbind.fill.matrix}} } \keyword{manip} plyr/man/alply.Rd0000644000175100001440000000532412725615561013457 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/alply.r \name{alply} \alias{alply} \title{Split array, apply function, and return results in a list.} \usage{ alply(.data, .margins, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL, .dims = FALSE) } \arguments{ \item{.data}{matrix, array or data frame to be processed} \item{.margins}{a vector giving the subscripts to split up \code{data} by. 1 splits up by rows, 2 by columns and c(1,2) by rows and columns, and so on for higher dimensions} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.expand}{if \code{.data} is a data frame, should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} \item{.dims}{if \code{TRUE}, copy over dimensions and names from input.} } \value{ list of results } \description{ For each slice of an array, apply function then combine results into a list. } \details{ The list will have "dims" and "dimnames" corresponding to the margins given. For instance \code{alply(x, c(3,2), ...)} where \code{x} has dims \code{c(4,3,2)} will give a result with dims \code{c(2,3)}. \code{alply} is somewhat similar to \code{\link{apply}} for cases where the results are not atomic. } \section{Input}{ This function splits matrices, arrays and data frames by dimensions } \section{Output}{ If there are no results, then this function will return a list of length 0 (\code{list()}). } \examples{ alply(ozone, 3, quantile) alply(ozone, 3, function(x) table(round(x))) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other array input: \code{\link{a_ply}}, \code{\link{aaply}}, \code{\link{adply}} Other list output: \code{\link{dlply}}, \code{\link{llply}}, \code{\link{mlply}} } \keyword{manip} plyr/man/rlply.Rd0000644000175100001440000000217312725615561013477 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/rlply.r \name{rlply} \alias{rlply} \title{Replicate expression and return results in a list.} \usage{ rlply(.n, .expr, .progress = "none") } \arguments{ \item{.n}{number of times to evaluate the expression} \item{.expr}{expression to evaluate} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} } \value{ list of results } \description{ Evalulate expression n times then combine results into a list } \details{ This function runs an expression multiple times, and combines the result into a list. If there are no results, then this function will return a list of length 0 (\code{list()}). This function is equivalent to \code{\link{replicate}}, but will always return results as a list. } \examples{ mods <- rlply(100, lm(y ~ x, data=data.frame(x=rnorm(100), y=rnorm(100)))) hist(laply(mods, function(x) summary(x)$r.squared)) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \keyword{manip} plyr/man/reduce_dim.Rd0000644000175100001440000000042212725615561014430 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/dimensions.r \name{reduce_dim} \alias{reduce_dim} \title{Reduce dimensions.} \usage{ reduce_dim(x) } \arguments{ \item{x}{array} } \description{ Remove extraneous dimensions } \keyword{internal} plyr/man/as.quoted.Rd0000644000175100001440000000153112725615561014235 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/quote.r \name{as.quoted} \alias{as.quoted} \title{Convert input to quoted variables.} \usage{ as.quoted(x, env = parent.frame()) } \arguments{ \item{x}{input to quote} \item{env}{environment in which unbound symbols in expression should be evaluated. Defaults to the environment in which \code{as.quoted} was executed.} } \value{ a list of quoted variables } \description{ Convert characters, formulas and calls to quoted .variables } \details{ This method is called by default on all plyr functions that take a \code{.variables} argument, so that equivalent forms can be used anywhere. Currently conversions exist for character vectors, formulas and call objects. } \examples{ as.quoted(c("a", "b", "log(d)")) as.quoted(a ~ b + log(d)) } \seealso{ \code{\link[=quoted]{.}} } plyr/man/names.quoted.Rd0000644000175100001440000000067612725615561014746 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/quote.r \name{names.quoted} \alias{names.quoted} \title{Compute names of quoted variables.} \usage{ \method{names}{quoted}(x) } \description{ Figure out names of quoted variables, using specified names if they exist, otherwise converting the values to character strings. This may create variable names that can only be accessed using \code{``}. } \keyword{internal} plyr/man/r_ply.Rd0000644000175100001440000000174412725615561013465 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/r_ply.r \name{r_ply} \alias{r_ply} \title{Replicate expression and discard results.} \usage{ r_ply(.n, .expr, .progress = "none", .print = FALSE) } \arguments{ \item{.n}{number of times to evaluate the expression} \item{.expr}{expression to evaluate} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.print}{automatically print each result? (default: \code{FALSE})} } \description{ Evalulate expression n times then discard results } \details{ This function runs an expression multiple times, discarding the results. This function is equivalent to \code{\link{replicate}}, but never returns anything } \examples{ r_ply(10, plot(runif(50))) r_ply(25, hist(runif(1000))) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \keyword{manip} plyr/man/join_all.Rd0000644000175100001440000000172112725615561014122 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/join-all.r \name{join_all} \alias{join_all} \title{Recursively join a list of data frames.} \usage{ join_all(dfs, by = NULL, type = "left", match = "all") } \arguments{ \item{dfs}{A list of data frames.} \item{by}{character vector of variable names to join by. If omitted, will match on all common variables.} \item{type}{type of join: left (default), right, inner or full. See details for more information.} \item{match}{how should duplicate ids be matched? Either match just the \code{"first"} matching row, or match \code{"all"} matching rows. Defaults to \code{"all"} for compatibility with merge, but \code{"first"} is significantly faster.} } \description{ Recursively join a list of data frames. } \examples{ dfs <- list( a = data.frame(x = 1:10, a = runif(10)), b = data.frame(x = 1:10, b = runif(10)), c = data.frame(x = 1:10, c = runif(10)) ) join_all(dfs) join_all(dfs, "x") } plyr/man/is.discrete.Rd0000644000175100001440000000064312725615561014551 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.r \name{is.discrete} \alias{is.discrete} \title{Determine if a vector is discrete.} \usage{ is.discrete(x) } \arguments{ \item{x}{vector to test} } \description{ A discrete vector is a factor or a character vector } \examples{ is.discrete(1:10) is.discrete(c("a", "b", "c")) is.discrete(factor(c("a", "b", "c"))) } \keyword{internal} plyr/man/progress_time.Rd0000644000175100001440000000107312725615561015215 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/progress-time.r \name{progress_time} \alias{progress_time} \title{Text progress bar with time.} \usage{ progress_time() } \description{ A textual progress bar that estimates time remaining. It displays the estimated time remaining and, when finished, total duration. } \examples{ l_ply(1:100, function(x) Sys.sleep(.01), .progress = "time") } \seealso{ Other progress bars: \code{\link{progress_none}}, \code{\link{progress_text}}, \code{\link{progress_tk}}, \code{\link{progress_win}} } plyr/man/is.formula.Rd0000644000175100001440000000043312725615561014411 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.r \name{is.formula} \alias{is.formula} \title{Is a formula? Checks if argument is a formula} \usage{ is.formula(x) } \description{ Is a formula? Checks if argument is a formula } \keyword{internal} plyr/man/failwith.Rd0000644000175100001440000000115712725615561014145 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/try.r \name{failwith} \alias{failwith} \title{Fail with specified value.} \usage{ failwith(default = NULL, f, quiet = FALSE) } \arguments{ \item{default}{default value} \item{f}{function} \item{quiet}{all error messages be suppressed?} } \value{ a function } \description{ Modify a function so that it returns a default value when there is an error. } \examples{ f <- function(x) if (x == 1) stop("Error!") else 1 \dontrun{ f(1) f(2) } safef <- failwith(NULL, f) safef(1) safef(2) } \seealso{ \code{\link{try_default}} } \keyword{debugging} plyr/man/progress_tk.Rd0000644000175100001440000000171312725615561014676 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/progress.r \name{progress_tk} \alias{progress_tk} \title{Graphical progress bar, powered by Tk.} \usage{ progress_tk(title = "plyr progress", label = "Working...", ...) } \arguments{ \item{title}{window title} \item{label}{progress bar label (inside window)} \item{...}{other arguments passed on to \code{\link[tcltk]{tkProgressBar}}} } \description{ A graphical progress bar displayed in a Tk window } \details{ This graphical progress will appear in a separate window. } \examples{ \dontrun{ l_ply(1:100, identity, .progress = "tk") l_ply(1:100, identity, .progress = progress_tk(width=400)) l_ply(1:100, identity, .progress = progress_tk(label="")) } } \seealso{ \code{\link[tcltk]{tkProgressBar}} for the function that powers this progress bar Other progress bars: \code{\link{progress_none}}, \code{\link{progress_text}}, \code{\link{progress_time}}, \code{\link{progress_win}} } plyr/man/id_var.Rd0000644000175100001440000000036012725615561013575 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/id.r \name{id_var} \alias{id_var} \title{Numeric id for a vector.} \usage{ id_var(x, drop = FALSE) } \description{ Numeric id for a vector. } \keyword{internal} plyr/man/indexed_array.Rd0000644000175100001440000000074612725615561015157 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/indexed-array.r \name{indexed_array} \alias{[[.indexed_array} \alias{indexed_array} \alias{length.indexed_array} \alias{names.indexed_array} \title{An indexed array.} \usage{ indexed_array(env, index) } \arguments{ \item{env}{environment containing data frame} \item{index}{list of indices} } \description{ Create a indexed array, a space efficient way of indexing into a large array. } \keyword{internal} plyr/man/nunique.Rd0000644000175100001440000000047212725615561014021 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.r \name{nunique} \alias{nunique} \title{Number of unique values.} \usage{ nunique(x) } \arguments{ \item{x}{vector} } \description{ Calculate number of unique values of a variable as efficiently as possible. } \keyword{internal} plyr/man/mlply.Rd0000644000175100001440000000510212725615561013465 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mlply.r \name{mlply} \alias{mlply} \title{Call function with arguments in array or data frame, returning a list.} \usage{ mlply(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{matrix or data frame to use as source of arguments} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.expand}{should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ list of results } \description{ Call a multi-argument function with values taken from columns of an data frame or array, and combine results into a list. } \details{ The \code{m*ply} functions are the \code{plyr} version of \code{mapply}, specialised according to the type of output they produce. These functions are just a convenient wrapper around \code{a*ply} with \code{margins = 1} and \code{.fun} wrapped in \code{\link{splat}}. } \section{Input}{ Call a multi-argument function with values taken from columns of an data frame or array } \section{Output}{ If there are no results, then this function will return a list of length 0 (\code{list()}). } \examples{ mlply(cbind(1:4, 4:1), rep) mlply(cbind(1:4, times = 4:1), rep) mlply(cbind(1:4, 4:1), seq) mlply(cbind(1:4, length = 4:1), seq) mlply(cbind(1:4, by = 4:1), seq, to = 20) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other list output: \code{\link{alply}}, \code{\link{dlply}}, \code{\link{llply}} Other multiple arguments input: \code{\link{m_ply}}, \code{\link{maply}}, \code{\link{mdply}} } \keyword{manip} plyr/man/id.Rd0000644000175100001440000000126712725615561012734 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/id.r \name{id} \alias{id} \alias{ninteraction} \title{Compute a unique numeric id for each unique row in a data frame.} \usage{ id(.variables, drop = FALSE) } \arguments{ \item{.variables}{list of variables} \item{drop}{drop unusued factor levels?} } \value{ a numeric vector with attribute n, giving total number of possibilities } \description{ Properties: \itemize{ \item \code{order(id)} is equivalent to \code{do.call(order, df)} \item rows containing the same data have the same value \item if \code{drop = FALSE} then room for all possibilites } } \seealso{ \code{\link{id_var}} } \keyword{internal} plyr/man/mutate.Rd0000644000175100001440000000233212725615561013631 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mutate.r \name{mutate} \alias{mutate} \title{Mutate a data frame by adding new or replacing existing columns.} \usage{ mutate(.data, ...) } \arguments{ \item{.data}{the data frame to transform} \item{...}{named parameters giving definitions of new columns.} } \description{ This function is very similar to \code{\link{transform}} but it executes the transformations iteratively so that later transformations can use the columns created by earlier transformations. Like transform, unnamed components are silently dropped. } \details{ Mutate seems to be considerably faster than transform for large data frames. } \examples{ # Examples from transform mutate(airquality, Ozone = -Ozone) mutate(airquality, new = -Ozone, Temp = (Temp - 32) / 1.8) # Things transform can't do mutate(airquality, Temp = (Temp - 32) / 1.8, OzT = Ozone / Temp) # mutate is rather faster than transform system.time(transform(baseball, avg_ab = ab / g)) system.time(mutate(baseball, avg_ab = ab / g)) } \seealso{ \code{\link{subset}}, \code{\link{summarise}}, \code{\link{arrange}}. For another somewhat different approach to solving the same problem, see \code{\link{within}}. } plyr/man/progress_win.Rd0000644000175100001440000000152112725615561015052 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/progress.r \name{progress_win} \alias{progress_win} \title{Graphical progress bar, powered by Windows.} \usage{ progress_win(title = "plyr progress", ...) } \arguments{ \item{title}{window title} \item{...}{other arguments passed on to \code{winProgressBar}} } \description{ A graphical progress bar displayed in a separate window } \details{ This graphical progress only works on Windows. } \examples{ if(exists("winProgressBar")) { l_ply(1:100, identity, .progress = "win") l_ply(1:100, identity, .progress = progress_win(title="Working...")) } } \seealso{ \code{winProgressBar} for the function that powers this progress bar Other progress bars: \code{\link{progress_none}}, \code{\link{progress_text}}, \code{\link{progress_time}}, \code{\link{progress_tk}} } plyr/man/split_indices.Rd0000644000175100001440000000125512725615561015166 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/RcppExports.R \name{split_indices} \alias{split_indices} \title{Split indices.} \usage{ split_indices(group, n = 0L) } \arguments{ \item{n}{largest integer (may not appear in index). This is hint: if the largest value of \code{group} is bigger than \code{n}, the output will silently expand.} \item{index}{integer indices} } \description{ An optimised version of split for the special case of splitting row indices into groups, as used by \code{\link{splitter_d}}. } \examples{ split_indices(sample(10, 100, rep = TRUE)) split_indices(sample(10, 100, rep = TRUE), 10) } \keyword{internal} \keyword{manip} plyr/man/revalue.Rd0000644000175100001440000000216212725615561013776 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/revalue.r \name{revalue} \alias{revalue} \title{Replace specified values with new values, in a factor or character vector.} \usage{ revalue(x, replace = NULL, warn_missing = TRUE) } \arguments{ \item{x}{factor or character vector to modify} \item{replace}{named character vector, with new values as values, and old values as names.} \item{warn_missing}{print a message if any of the old values are not actually present in \code{x}} } \description{ If \code{x} is a factor, the named levels of the factor will be replaced with the new values. } \details{ This function works only on character vectors and factors, but the related \code{mapvalues} function works on vectors of any type and factors, and instead of a named vector specifying the original and replacement values, it takes two separate vectors } \examples{ x <- c("a", "b", "c") revalue(x, c(a = "A", c = "C")) revalue(x, c("a" = "A", "c" = "C")) y <- factor(c("a", "b", "c", "a")) revalue(y, c(a = "A", c = "C")) } \seealso{ \code{\link{mapvalues}} to replace values with vectors of any type } plyr/man/compact.Rd0000644000175100001440000000042512725615561013761 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.r \name{compact} \alias{compact} \title{Compact list.} \usage{ compact(l) } \arguments{ \item{l}{list} } \description{ Remove all NULL entries from a list } \keyword{internal} \keyword{manip} plyr/man/take.Rd0000644000175100001440000000133212725615561013255 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/take.r \name{take} \alias{take} \title{Take a subset along an arbitrary dimension} \usage{ take(x, along, indices, drop = FALSE) } \arguments{ \item{x}{matrix or array to subset} \item{along}{dimension to subset along} \item{indices}{the indices to select} \item{drop}{should the dimensions of the array be simplified? Defaults to \code{FALSE} which is the opposite of the useful R default.} } \description{ Take a subset along an arbitrary dimension } \examples{ x <- array(seq_len(3 * 4 * 5), c(3, 4, 5)) take(x, 3, 1) take(x, 2, 1) take(x, 1, 1) take(x, 3, 1, drop = TRUE) take(x, 2, 1, drop = TRUE) take(x, 1, 1, drop = TRUE) } \keyword{manip} plyr/man/colwise.Rd0000644000175100001440000000377012725615561014006 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/colwise.r \name{colwise} \alias{catcolwise} \alias{colwise} \alias{numcolwise} \title{Column-wise function.} \usage{ colwise(.fun, .cols = true, ...) catcolwise(.fun, ...) numcolwise(.fun, ...) } \arguments{ \item{.fun}{function} \item{.cols}{either a function that tests columns for inclusion, or a quoted object giving which columns to process} \item{...}{other arguments passed on to \code{.fun}} } \description{ Turn a function that operates on a vector into a function that operates column-wise on a data.frame. } \details{ \code{catcolwise} and \code{numcolwise} provide version that only operate on discrete and numeric variables respectively. } \examples{ # Count number of missing values nmissing <- function(x) sum(is.na(x)) # Apply to every column in a data frame colwise(nmissing)(baseball) # This syntax looks a little different. It is shorthand for the # the following: f <- colwise(nmissing) f(baseball) # This is particularly useful in conjunction with d*ply ddply(baseball, .(year), colwise(nmissing)) # To operate only on specified columns, supply them as the second # argument. Many different forms are accepted. ddply(baseball, .(year), colwise(nmissing, .(sb, cs, so))) ddply(baseball, .(year), colwise(nmissing, c("sb", "cs", "so"))) ddply(baseball, .(year), colwise(nmissing, ~ sb + cs + so)) # Alternatively, you can specify a boolean function that determines # whether or not a column should be included ddply(baseball, .(year), colwise(nmissing, is.character)) ddply(baseball, .(year), colwise(nmissing, is.numeric)) ddply(baseball, .(year), colwise(nmissing, is.discrete)) # These last two cases are particularly common, so some shortcuts are # provided: ddply(baseball, .(year), numcolwise(nmissing)) ddply(baseball, .(year), catcolwise(nmissing)) # You can supply additional arguments to either colwise, or the function # it generates: numcolwise(mean)(baseball, na.rm = TRUE) numcolwise(mean, na.rm = TRUE)(baseball) } plyr/man/get-split.Rd0000644000175100001440000000052312725615561014242 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/split.r \name{[.split} \alias{[.split} \title{Subset splits.} \usage{ \method{[}{split}(x, i, ...) } \arguments{ \item{x}{split object} \item{i}{index} \item{...}{unused} } \description{ Subset splits, ensuring that labels keep matching } \keyword{internal} plyr/man/progress_text.Rd0000644000175100001440000000156012725615561015244 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/progress.r \name{progress_text} \alias{progress_text} \title{Text progress bar.} \usage{ progress_text(style = 3, ...) } \arguments{ \item{style}{style of text bar, see Details section of \code{\link{txtProgressBar}}} \item{...}{other arugments passed on to \code{\link{txtProgressBar}}} } \description{ A textual progress bar } \details{ This progress bar displays a textual progress bar that works on all platforms. It is a thin wrapper around the built-in \code{\link{setTxtProgressBar}} and can be customised in the same way. } \examples{ l_ply(1:100, identity, .progress = "text") l_ply(1:100, identity, .progress = progress_text(char = "-")) } \seealso{ Other progress bars: \code{\link{progress_none}}, \code{\link{progress_time}}, \code{\link{progress_tk}}, \code{\link{progress_win}} } plyr/man/d_ply.Rd0000644000175100001440000000450212725615561013442 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/d_ply.r \name{d_ply} \alias{d_ply} \title{Split data frame, apply function, and discard results.} \usage{ d_ply(.data, .variables, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop = TRUE, .print = FALSE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{data frame to be processed} \item{.variables}{variables to split data frame by, as \code{\link{as.quoted}} variables, a formula or character vector} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.drop}{should combinations of variables that do not appear in the input data be preserved (FALSE) or dropped (TRUE, default)} \item{.print}{automatically print each result? (default: \code{FALSE})} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ Nothing } \description{ For each subset of a data frame, apply function and discard results. To apply a function for each row, use \code{\link{a_ply}} with \code{.margins} set to \code{1}. } \section{Input}{ This function splits data frames by variables. } \section{Output}{ All output is discarded. This is useful for functions that you are calling purely for their side effects like displaying plots or saving output. } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other data frame input: \code{\link{daply}}, \code{\link{ddply}}, \code{\link{dlply}} Other no output: \code{\link{a_ply}}, \code{\link{l_ply}}, \code{\link{m_ply}} } \keyword{manip} plyr/man/quickdf.Rd0000644000175100001440000000065212725615561013763 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/quickdf.r \name{quickdf} \alias{quickdf} \title{Quick data frame.} \usage{ quickdf(list) } \arguments{ \item{list}{list to convert to data frame} } \description{ Experimental version of \code{\link{as.data.frame}} that converts a list to a data frame, but doesn't do any checks to make sure it's a valid format. Much faster. } \keyword{internal} plyr/man/indexed_df.Rd0000644000175100001440000000075112725615561014426 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/indexed-data-frame.r \name{indexed_df} \alias{indexed_df} \title{An indexed data frame.} \usage{ indexed_df(data, index, vars) } \arguments{ \item{index}{list of indices} \item{vars}{a character vector giving the variables used for subsetting} \item{env}{environment containing data frame} } \description{ Create a indexed list, a space efficient way of indexing into a large data frame } \keyword{internal} plyr/man/as.data.frame.function.Rd0000644000175100001440000000156712725615561016573 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/data-frame.r \name{as.data.frame.function} \alias{as.data.frame.function} \title{Make a function return a data frame.} \usage{ \method{as.data.frame}{function}(x, row.names, optional, ...) } \arguments{ \item{x}{function to make return a data frame} \item{row.names}{necessary to match the generic, but not used} \item{optional}{necessary to match the generic, but not used} \item{...}{necessary to match the generic, but not used} } \description{ Create a new function that returns the existing function wrapped in a data.frame with a single column, \code{value}. } \details{ This is useful when calling \code{*dply} functions with a function that returns a vector, and you want the output in rows, rather than columns. The \code{value} column is always created, even for empty inputs. } \keyword{manip} plyr/man/desc.Rd0000644000175100001440000000066612725615561013260 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/arrange.r \name{desc} \alias{desc} \title{Descending order.} \usage{ desc(x) } \arguments{ \item{x}{vector to transform} } \description{ Transform a vector into a format that will be sorted in descending order. } \examples{ desc(1:10) desc(factor(letters)) first_day <- seq(as.Date("1910/1/1"), as.Date("1920/1/1"), "years") desc(first_day) } \keyword{manip} plyr/man/rbind.fill.matrix.Rd0000644000175100001440000000300512725615561015656 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/rbind-fill-matrix.r \name{rbind.fill.matrix} \alias{rbind.fill.matrix} \title{Bind matrices by row, and fill missing columns with NA.} \usage{ rbind.fill.matrix(...) } \arguments{ \item{...}{the matrices to rbind. The first argument can be a list of matrices, in which case all other arguments are ignored.} } \value{ a matrix with column names } \description{ The matrices are bound together using their column names or the column indices (in that order of precedence.) Numeric columns may be converted to character beforehand, e.g. using format. If a matrix doesn't have colnames, the column number is used. Note that this means that a column with name \code{"1"} is merged with the first column of a matrix without name and so on. The returned matrix will always have column names. } \details{ Vectors are converted to 1-column matrices. Matrices of factors are not supported. (They are anyways quite inconvenient.) You may convert them first to either numeric or character matrices. If a matrices of different types are merged, then normal covnersion precendence will apply. Row names are ignored. } \examples{ A <- matrix (1:4, 2) B <- matrix (6:11, 2) A B rbind.fill.matrix (A, B) colnames (A) <- c (3, 1) A rbind.fill.matrix (A, B) rbind.fill.matrix (A, 99) } \author{ C. Beleites } \seealso{ \code{\link[base]{rbind}}, \code{\link[base]{cbind}}, \code{\link[plyr]{rbind.fill}} Other binding functions: \code{\link{rbind.fill}} } \keyword{manip} plyr/man/amv_dim.Rd0000644000175100001440000000045712725615561013754 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/dimensions.r \name{amv_dim} \alias{amv_dim} \title{Dimensions.} \usage{ amv_dim(x) } \arguments{ \item{x}{array, matrix or vector} } \description{ Consistent dimensions for vectors, matrices and arrays. } \keyword{internal} plyr/man/splitter_d.Rd0000644000175100001440000000310212725615561014477 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/splitter-d.r \name{splitter_d} \alias{splitter_d} \title{Split a data frame by variables.} \usage{ splitter_d(data, .variables = NULL, drop = TRUE) } \arguments{ \item{data}{data frame} \item{.variables}{a \link{quoted} list of variables} \item{drop}{drop unnused factor levels?} } \value{ a list of data.frames, with attributes that record split details } \description{ Split a data frame into pieces based on variable contained in that data frame } \details{ This is the workhorse of the \code{d*ply} functions. Based on the variables you supply, it breaks up a single data frame into a list of data frames, each containing a single combination from the levels of the specified variables. This is basically a thin wrapper around \code{\link{split}} which evaluates the variables in the context of the data, and includes enough information to reconstruct the labelling of the data frame after other operations. } \examples{ plyr:::splitter_d(mtcars, .(cyl)) plyr:::splitter_d(mtcars, .(vs, am)) plyr:::splitter_d(mtcars, .(am, vs)) mtcars$cyl2 <- factor(mtcars$cyl, levels = c(2, 4, 6, 8, 10)) plyr:::splitter_d(mtcars, .(cyl2), drop = TRUE) plyr:::splitter_d(mtcars, .(cyl2), drop = FALSE) mtcars$cyl3 <- ifelse(mtcars$vs == 1, NA, mtcars$cyl) plyr:::splitter_d(mtcars, .(cyl3)) plyr:::splitter_d(mtcars, .(cyl3, vs)) plyr:::splitter_d(mtcars, .(cyl3, vs), drop = FALSE) } \seealso{ \code{\link{.}} for quoting variables, \code{\link{split}} Other splitter functions: \code{\link{splitter_a}} } \keyword{internal} plyr/man/ddply.Rd0000644000175100001440000000711712725615561013454 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/ddply.r \name{ddply} \alias{ddply} \title{Split data frame, apply function, and return results in a data frame.} \usage{ ddply(.data, .variables, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{data frame to be processed} \item{.variables}{variables to split data frame by, as \code{\link{as.quoted}} variables, a formula or character vector} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.drop}{should combinations of variables that do not appear in the input data be preserved (FALSE) or dropped (TRUE, default)} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ A data frame, as described in the output section. } \description{ For each subset of a data frame, apply function then combine results into a data frame. To apply a function for each row, use \code{\link{adply}} with \code{.margins} set to \code{1}. } \section{Input}{ This function splits data frames by variables. } \section{Output}{ The most unambiguous behaviour is achieved when \code{.fun} returns a data frame - in that case pieces will be combined with \code{\link{rbind.fill}}. If \code{.fun} returns an atomic vector of fixed length, it will be \code{rbind}ed together and converted to a data frame. Any other values will result in an error. If there are no results, then this function will return a data frame with zero rows and columns (\code{data.frame()}). } \examples{ # Summarize a dataset by two variables dfx <- data.frame( group = c(rep('A', 8), rep('B', 15), rep('C', 6)), sex = sample(c("M", "F"), size = 29, replace = TRUE), age = runif(n = 29, min = 18, max = 54) ) # Note the use of the '.' function to allow # group and sex to be used without quoting ddply(dfx, .(group, sex), summarize, mean = round(mean(age), 2), sd = round(sd(age), 2)) # An example using a formula for .variables ddply(baseball[1:100,], ~ year, nrow) # Applying two functions; nrow and ncol ddply(baseball, .(lg), c("nrow", "ncol")) # Calculate mean runs batted in for each year rbi <- ddply(baseball, .(year), summarise, mean_rbi = mean(rbi, na.rm = TRUE)) # Plot a line chart of the result plot(mean_rbi ~ year, type = "l", data = rbi) # make new variable career_year based on the # start year for each player (id) base2 <- ddply(baseball, .(id), mutate, career_year = year - min(year) + 1 ) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ \code{\link{tapply}} for similar functionality in the base package Other data frame input: \code{\link{d_ply}}, \code{\link{daply}}, \code{\link{dlply}} Other data frame output: \code{\link{adply}}, \code{\link{ldply}}, \code{\link{mdply}} } \keyword{manip} plyr/man/empty.Rd0000644000175100001440000000045512725615561013474 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.r \name{empty} \alias{empty} \title{Check if a data frame is empty.} \usage{ empty(df) } \arguments{ \item{df}{data frame to check} } \description{ Empty if it's null or it has 0 rows or columns } \keyword{internal} plyr/man/join.keys.Rd0000644000175100001440000000067512725615561014253 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/join.r \name{join.keys} \alias{join.keys} \title{Join keys. Given two data frames, create a unique key for each row.} \usage{ join.keys(x, y, by) } \arguments{ \item{x}{data frame} \item{y}{data frame} \item{by}{character vector of variable names to join by} } \description{ Join keys. Given two data frames, create a unique key for each row. } \keyword{internal} plyr/man/plyr-deprecated.Rd0000644000175100001440000000064712725615561015425 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plyr-deprecated.r \name{plyr-deprecated} \alias{plyr-deprecated} \title{Deprecated Functions in Package plyr} \description{ These functions are provided for compatibility with older versions of \code{plyr} only, and may be defunct as soon as the next release. } \details{ \itemize{ \item \code{\link{liply}} \item \code{\link{isplit2}} } } plyr/man/print.split.Rd0000644000175100001440000000052012725615561014615 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/split.r \name{print.split} \alias{print.split} \title{Print split.} \usage{ \method{print}{split}(x, ...) } \arguments{ \item{x}{object to print} \item{...}{unused} } \description{ Don't print labels, so it appears like a regular list } \keyword{internal} plyr/man/mapvalues.Rd0000644000175100001440000000255112725615561014332 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/revalue.r \name{mapvalues} \alias{mapvalues} \title{Replace specified values with new values, in a vector or factor.} \usage{ mapvalues(x, from, to, warn_missing = TRUE) } \arguments{ \item{x}{the factor or vector to modify} \item{from}{a vector of the items to replace} \item{to}{a vector of replacement values} \item{warn_missing}{print a message if any of the old values are not actually present in \code{x}} } \description{ Item in \code{x} that match items \code{from} will be replaced by items in \code{to}, matched by position. For example, items in \code{x} that match the first element in \code{from} will be replaced by the first element of \code{to}. } \details{ If \code{x} is a factor, the matching levels of the factor will be replaced with the new values. The related \code{revalue} function works only on character vectors and factors, but this function works on vectors of any type and factors. } \examples{ x <- c("a", "b", "c") mapvalues(x, c("a", "c"), c("A", "C")) # Works on factors y <- factor(c("a", "b", "c", "a")) mapvalues(y, c("a", "c"), c("A", "C")) # Works on numeric vectors z <- c(1, 4, 5, 9) mapvalues(z, from = c(1, 5, 9), to = c(10, 50, 90)) } \seealso{ \code{\link{revalue}} to do the same thing but with a single named vector instead of two separate vectors. } plyr/man/loop_apply.Rd0000644000175100001440000000073512725615561014515 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/loop_apply.R \name{loop_apply} \alias{loop_apply} \title{Loop apply} \usage{ loop_apply(n, f, env = parent.frame()) } \arguments{ \item{n}{length of sequence} \item{f}{function to apply to each integer} \item{env}{environment in which to evaluate function} } \description{ An optimised version of lapply for the special case of operating on \code{seq_len(n)} } \keyword{internal} \keyword{manip} plyr/man/split_labels.Rd0000644000175100001440000000075712725615561015020 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/splitter-d.r \name{split_labels} \alias{split_labels} \title{Generate labels for split data frame.} \usage{ split_labels(splits, drop, id = plyr::id(splits, drop = TRUE)) } \arguments{ \item{list}{of variables to split up by} \item{whether}{all possible combinations should be considered, or only those present in the data} } \description{ Create data frame giving labels for split data frame. } \keyword{internal} plyr/man/baseball.Rd0000644000175100001440000000347212725615561014105 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/data.r \docType{data} \name{baseball} \alias{baseball} \title{Yearly batting records for all major league baseball players} \format{A 21699 x 22 data frame} \usage{ baseball } \description{ This data frame contains batting statistics for a subset of players collected from \url{http://www.baseball-databank.org/}. There are a total of 21,699 records, covering 1,228 players from 1871 to 2007. Only players with more 15 seasons of play are included. } \section{Variables}{ Variables: \itemize{ \item id, unique player id \item year, year of data \item stint \item team, team played for \item lg, league \item g, number of games \item ab, number of times at bat \item r, number of runs \item h, hits, times reached base because of a batted, fair ball without error by the defense \item X2b, hits on which the batter reached second base safely \item X3b, hits on which the batter reached third base safely \item hr, number of home runs \item rbi, runs batted in \item sb, stolen bases \item cs, caught stealing \item bb, base on balls (walk) \item so, strike outs \item ibb, intentional base on balls \item hbp, hits by pitch \item sh, sacrifice hits \item sf, sacrifice flies \item gidp, ground into double play } } \examples{ baberuth <- subset(baseball, id == "ruthba01") baberuth$cyear <- baberuth$year - min(baberuth$year) + 1 calculate_cyear <- function(df) { mutate(df, cyear = year - min(year), cpercent = cyear / (max(year) - min(year)) ) } baseball <- ddply(baseball, .(id), calculate_cyear) baseball <- subset(baseball, ab >= 25) model <- function(df) { lm(rbi / ab ~ cyear, data=df) } model(baberuth) models <- dlply(baseball, .(id), model) } \references{ \url{http://www.baseball-databank.org/} } \keyword{datasets} plyr/man/liply.Rd0000644000175100001440000000142112725615561013461 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/liply.r \name{liply} \alias{liply} \title{Experimental iterator based version of llply.} \usage{ liply(.iterator, .fun = NULL, ...) } \arguments{ \item{.iterator}{iterator object} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} } \description{ Because iterators do not have known length, \code{liply} starts by allocating an output list of length 50, and then doubles that length whenever it runs out of space. This gives O(n ln n) performance rather than the O(n ^ 2) performance from the naive strategy of growing the list each time. } \section{Warning}{ Deprecated, do not use in new code. } \seealso{ \code{\link{plyr-deprecated}} } \keyword{manip} plyr/man/list_to_dataframe.Rd0000644000175100001440000000137112725615561016015 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/list-to-dataframe.r \name{list_to_dataframe} \alias{list_to_dataframe} \title{List to data frame.} \usage{ list_to_dataframe(res, labels = NULL, id_name = NULL, id_as_factor = FALSE) } \arguments{ \item{res}{list of input data} \item{labels}{a data frame of labels, one row for each element of res} \item{idname}{the name of the index column, \code{NULL} for no index column} } \description{ Reduce/simplify a list of homogenous objects to a data frame. All \code{NULL} entries are removed. Remaining entries must be all atomic or all data frames. } \seealso{ Other list simplification functions: \code{\link{list_to_array}}, \code{\link{list_to_vector}} } \keyword{internal} plyr/man/create_progress_bar.Rd0000644000175100001440000000350512725615561016350 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/progress.r \name{create_progress_bar} \alias{create_progress_bar} \title{Create progress bar.} \usage{ create_progress_bar(name = "none", ...) } \arguments{ \item{name}{type of progress bar to create} \item{...}{other arguments passed onto progress bar function} } \description{ Create progress bar object from text string. } \details{ Progress bars give feedback on how apply step is proceeding. This is mainly useful for long running functions, as for short functions, the time taken up by splitting and combining may be on the same order (or longer) as the apply step. Additionally, for short functions, the time needed to update the progress bar can significantly slow down the process. For the trivial examples below, using the tk progress bar slows things down by a factor of a thousand. Note the that progress bar is approximate, and if the time taken by individual function applications is highly non-uniform it may not be very informative of the time left. There are currently four types of progress bar: "none", "text", "tk", and "win". See the individual documentation for more details. In plyr functions, these can either be specified by name, or you can create the progress bar object yourself if you want more control over its apperance. See the examples. } \examples{ # No progress bar l_ply(1:100, identity, .progress = "none") \dontrun{ # Use the Tcl/Tk interface l_ply(1:100, identity, .progress = "tk") } # Text-based progress (|======|) l_ply(1:100, identity, .progress = "text") # Choose a progress character, run a length of time you can see l_ply(1:10000, identity, .progress = progress_text(char = ".")) } \seealso{ \code{\link{progress_none}}, \code{\link{progress_text}}, \code{\link{progress_tk}}, \code{\link{progress_win}} } \keyword{utilities} plyr/man/arrange.Rd0000644000175100001440000000216312725615561013753 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/arrange.r \name{arrange} \alias{arrange} \title{Order a data frame by its colums.} \usage{ arrange(df, ...) } \arguments{ \item{df}{data frame to reorder} \item{...}{expressions evaluated in the context of \code{df} and then fed to \code{\link{order}}} } \description{ This function completes the subsetting, transforming and ordering triad with a function that works in a similar way to \code{\link{subset}} and \code{\link{transform}} but for reordering a data frame by its columns. This saves a lot of typing! } \examples{ # sort mtcars data by cylinder and displacement mtcars[with(mtcars, order(cyl, disp)), ] # Same result using arrange: no need to use with(), as the context is implicit # NOTE: plyr functions do NOT preserve row.names arrange(mtcars, cyl, disp) # Let's keep the row.names in this example myCars = cbind(vehicle=row.names(mtcars), mtcars) arrange(myCars, cyl, disp) # Sort with displacement in descending order arrange(myCars, cyl, desc(disp)) } \seealso{ \code{\link{order}} for sorting function in the base package } \keyword{manip} plyr/man/rename.Rd0000644000175100001440000000171712725615561013607 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/rename.r \name{rename} \alias{rename} \title{Modify names by name, not position.} \usage{ rename(x, replace, warn_missing = TRUE, warn_duplicated = TRUE) } \arguments{ \item{x}{named object to modify} \item{replace}{named character vector, with new names as values, and old names as names.} \item{warn_missing}{print a message if any of the old names are not actually present in \code{x}.} \item{warn_duplicated}{print a message if any name appears more than once in \code{x} after the operation. Note: x is not altered: To save the result, you need to copy the returned data into a variable.} } \description{ Modify names by name, not position. } \examples{ x <- c("a" = 1, "b" = 2, d = 3, 4) # Rename column d to "c", updating the variable "x" with the result x <- rename(x, replace = c("d" = "c")) x # Rename column "disp" to "displacement" rename(mtcars, c("disp" = "displacement")) } plyr/man/strip_splits.Rd0000644000175100001440000000116112725615561015070 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/strip-splits.r \name{strip_splits} \alias{strip_splits} \title{Remove splitting variables from a data frame.} \usage{ strip_splits(df) } \arguments{ \item{df}{data frame produced by \code{d*ply}.} } \description{ This is useful when you want to perform some operation to every column in the data frame, except the variables that you have used to split it. These variables will be automatically added back on to the result when combining all results together. } \examples{ dlply(mtcars, c("vs", "am")) dlply(mtcars, c("vs", "am"), strip_splits) } plyr/man/as.list.split.Rd0000644000175100001440000000061312725615561015041 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/split.r \name{as.list.split} \alias{as.list.split} \title{Convert split list to regular list.} \usage{ \method{as.list}{split}(x, ...) } \arguments{ \item{x}{object to convert to a list} \item{...}{unused} } \description{ Strip off label related attributed to make a strip list as regular list } \keyword{internal} plyr/man/here.Rd0000644000175100001440000000152512725615561013260 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/here.r \name{here} \alias{here} \title{Capture current evaluation context.} \usage{ here(f) } \arguments{ \item{f}{a function that does non-standard evaluation} } \description{ This function captures the current context, making it easier to use \code{**ply} with functions that do special evaluation and need access to the environment where ddply was called from. } \examples{ df <- data.frame(a = rep(c("a","b"), each = 10), b = 1:20) f1 <- function(label) { ddply(df, "a", mutate, label = paste(label, b)) } \dontrun{f1("name:")} # Doesn't work because mutate can't find label in the current scope f2 <- function(label) { ddply(df, "a", here(mutate), label = paste(label, b)) } f2("name:") # Works :) } \author{ Peter Meilstrup, \url{https://github.com/crowding} } plyr/man/dims.Rd0000644000175100001440000000042112725615561013263 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/dimensions.r \name{dims} \alias{dims} \title{Number of dimensions.} \usage{ dims(x) } \arguments{ \item{x}{array} } \description{ Number of dimensions of an array or vector } \keyword{internal} plyr/man/ozone.Rd0000644000175100001440000000236512725615561013472 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/data.r \docType{data} \name{ozone} \alias{ozone} \title{Monthly ozone measurements over Central America.} \format{A 24 x 24 x 72 numeric array} \usage{ ozone } \description{ This data set is a subset of the data from the 2006 ASA Data expo challenge, \url{http://stat-computing.org/dataexpo/2006/}. The data are monthly ozone averages on a very coarse 24 by 24 grid covering Central America, from Jan 1995 to Dec 2000. The data is stored in a 3d area with the first two dimensions representing latitude and longitude, and the third representing time. } \examples{ value <- ozone[1, 1, ] time <- 1:72 month.abbr <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") month <- factor(rep(month.abbr, length = 72), levels = month.abbr) year <- rep(1:6, each = 12) deseasf <- function(value) lm(value ~ month - 1) models <- alply(ozone, 1:2, deseasf) coefs <- laply(models, coef) dimnames(coefs)[[3]] <- month.abbr names(dimnames(coefs))[3] <- "month" deseas <- laply(models, resid) dimnames(deseas)[[3]] <- 1:72 names(dimnames(deseas))[3] <- "time" dim(coefs) dim(deseas) } \references{ \url{http://stat-computing.org/dataexpo/2006/} } \keyword{datasets} plyr/man/tryapply.Rd0000644000175100001440000000066512725615561014225 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/try.r \name{tryapply} \alias{tryapply} \title{Apply with built in try. Uses compact, lapply and tryNULL} \usage{ tryapply(list, fun, ...) } \arguments{ \item{list}{list to apply function \code{f} on} \item{...}{further arguments to \code{f}} \item{f}{function} } \description{ Apply with built in try. Uses compact, lapply and tryNULL } \keyword{internal} plyr/man/join.Rd0000644000175100001440000000360112725615561013271 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/join.r \name{join} \alias{join} \title{Join two data frames together.} \usage{ join(x, y, by = NULL, type = "left", match = "all") } \arguments{ \item{x}{data frame} \item{y}{data frame} \item{by}{character vector of variable names to join by. If omitted, will match on all common variables.} \item{type}{type of join: left (default), right, inner or full. See details for more information.} \item{match}{how should duplicate ids be matched? Either match just the \code{"first"} matching row, or match \code{"all"} matching rows. Defaults to \code{"all"} for compatibility with merge, but \code{"first"} is significantly faster.} } \description{ Join, like merge, is designed for the types of problems where you would use a sql join. } \details{ The four join types return: \itemize{ \item \code{inner}: only rows with matching keys in both x and y \item \code{left}: all rows in x, adding matching columns from y \item \code{right}: all rows in y, adding matching columns from x \item \code{full}: all rows in x with matching columns in y, then the rows of y that don't match x. } Note that from plyr 1.5, \code{join} will (by default) return all matches, not just the first match, as it did previously. Unlike merge, preserves the order of x no matter what join type is used. If needed, rows from y will be added to the bottom. Join is often faster than merge, although it is somewhat less featureful - it currently offers no way to rename output or merge on different variables in the x and y data frames. } \examples{ first <- ddply(baseball, "id", summarise, first = min(year)) system.time(b2 <- merge(baseball, first, by = "id", all.x = TRUE)) system.time(b3 <- join(baseball, first, by = "id")) b2 <- arrange(b2, id, year, stint) b3 <- arrange(b3, id, year, stint) stopifnot(all.equal(b2, b3)) } \keyword{manip} plyr/man/match_df.Rd0000644000175100001440000000316612725615561014105 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/match-df.r \name{match_df} \alias{match_df} \title{Extract matching rows of a data frame.} \usage{ match_df(x, y, on = NULL) } \arguments{ \item{x}{data frame to subset.} \item{y}{data frame defining matching rows.} \item{on}{variables to match on - by default will use all variables common to both data frames.} } \value{ a data frame } \description{ Match works in the same way as join, but instead of return the combined dataset, it only returns the matching rows from the first dataset. This is particularly useful when you've summarised the data in some way and want to subset the original data by a characteristic of the subset. } \details{ \code{match_df} shares the same semantics as \code{\link{join}}, not \code{\link{match}}: \itemize{ \item the match criterion is \code{==}, not \code{\link{identical}}). \item it doesn't work for columns that are not atomic vectors \item if there are no matches, the row will be omitted' } } \examples{ # count the occurrences of each id in the baseball dataframe, then get the subset with a freq >25 longterm <- subset(count(baseball, "id"), freq > 25) # longterm # id freq # 30 ansonca01 27 # 48 baineha01 27 # ... # Select only rows from these longterm players from the baseball dataframe # (match would default to match on shared column names, but here was explicitly set "id") bb_longterm <- match_df(baseball, longterm, on="id") bb_longterm[1:5,] } \seealso{ \code{\link{join}} to combine the columns from both x and y and \code{\link{match}} for the base function selecting matching items } plyr/man/round_any.Rd0000644000175100001440000000153112725615561014330 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/round-any.r \name{round_any} \alias{round_any} \title{Round to multiple of any number.} \usage{ round_any(x, accuracy, f = round) } \arguments{ \item{x}{numeric or date-time (POSIXct) vector to round} \item{accuracy}{number to round to; for POSIXct objects, a number of seconds} \item{f}{rounding function: \code{\link{floor}}, \code{\link{ceiling}} or \code{\link{round}}} } \description{ Round to multiple of any number. } \examples{ round_any(135, 10) round_any(135, 100) round_any(135, 25) round_any(135, 10, floor) round_any(135, 100, floor) round_any(135, 25, floor) round_any(135, 10, ceiling) round_any(135, 100, ceiling) round_any(135, 25, ceiling) round_any(Sys.time() + 1:10, 5) round_any(Sys.time() + 1:10, 5, floor) round_any(Sys.time(), 3600) } \keyword{manip} plyr/man/idata.frame.Rd0000644000175100001440000000143712725615561014512 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/idataframe.r \name{idata.frame} \alias{idata.frame} \title{Construct an immutable data frame.} \usage{ idata.frame(df) } \arguments{ \item{df}{a data frame} } \value{ an immutable data frame } \description{ An immutable data frame works like an ordinary data frame, except that when you subset it, it returns a reference to the original data frame, not a a copy. This makes subsetting substantially faster and has a big impact when you are working with large datasets with many groups. } \details{ This method is still a little experimental, so please let me know if you run into any problems. } \examples{ system.time(dlply(baseball, "id", nrow)) system.time(dlply(idata.frame(baseball), "id", nrow)) } \keyword{manip} plyr/man/splitter_a.Rd0000644000175100001440000000331312725615561014500 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/splitter-a.r \name{splitter_a} \alias{splitter_a} \title{Split an array by .margins.} \usage{ splitter_a(data, .margins = 1L, .expand = TRUE, .id = NA) } \arguments{ \item{data}{>1d data structure (matrix, data.frame or array)} \item{.margins}{a vector giving the subscripts to split up \code{data} by.} \item{.expand}{if splitting a dataframe by row, should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.id}{names of the split label. Pass \code{NULL} to avoid creation of split labels. Omit or pass \code{NA} to use the default names \code{"X1"}, \code{"X2"}, \ldots. Otherwise, this argument must have the same length as \code{.margins}.} } \value{ a list of lower-d slices, with attributes that record split details } \description{ Split a 2d or higher data structure into lower-d pieces based } \details{ This is the workhorse of the \code{a*ply} functions. Given a >1 d data structure (matrix, array, data.frame), it splits it into pieces based on the subscripts that you supply. Each piece is a lower dimensional slice. The margins are specified in the same way as \code{\link{apply}}, but \code{splitter_a} just splits up the data, while \code{apply} also applies a function and combines the pieces back together. This function also includes enough information to recreate the split from attributes on the list of pieces. } \examples{ plyr:::splitter_a(mtcars, 1) plyr:::splitter_a(mtcars, 2) plyr:::splitter_a(ozone, 2) plyr:::splitter_a(ozone, 3) plyr:::splitter_a(ozone, 1:2) } \seealso{ Other splitter functions: \code{\link{splitter_d}} } \keyword{internal} plyr/man/isplit2.Rd0000644000175100001440000000062112725615561013717 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/liply.r \name{isplit2} \alias{isplit2} \title{Split iterator that returns values, not indices.} \usage{ isplit2(x, f, drop = FALSE, ...) } \description{ Split iterator that returns values, not indices. } \section{Warning}{ Deprecated, do not use in new code. } \seealso{ \code{\link{plyr-deprecated}} } \keyword{internal} plyr/man/rdply.Rd0000644000175100001440000000252112725615561013464 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/rdply.r \name{rdply} \alias{rdply} \title{Replicate expression and return results in a data frame.} \usage{ rdply(.n, .expr, .progress = "none", .id = NA) } \arguments{ \item{.n}{number of times to evaluate the expression} \item{.expr}{expression to evaluate} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.id}{name of the index column. Pass \code{NULL} to avoid creation of the index column. For compatibility, omit this argument or pass \code{NA} to use \code{".n"} as column name.} } \value{ a data frame } \description{ Evaluate expression n times then combine results into a data frame } \details{ This function runs an expression multiple times, and combines the result into a data frame. If there are no results, then this function returns a data frame with zero rows and columns (\code{data.frame()}). This function is equivalent to \code{\link{replicate}}, but will always return results as a data frame. } \examples{ rdply(20, mean(runif(100))) rdply(20, each(mean, var)(runif(100))) rdply(20, data.frame(x = runif(2))) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \keyword{manip} plyr/man/quoted.Rd0000644000175100001440000000340212725615561013632 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/quote.r \name{.} \alias{.} \alias{is.quoted} \alias{quoted} \title{Quote variables to create a list of unevaluated expressions for later evaluation.} \usage{ .(..., .env = parent.frame()) } \arguments{ \item{...}{unevaluated expressions to be recorded. Specify names if you want the set the names of the resultant variables} \item{.env}{environment in which unbound symbols in \code{...} should be evaluated. Defaults to the environment in which \code{.} was executed.} } \value{ list of symbol and language primitives } \description{ This function is similar to \code{\link{~}} in that it is used to capture the name of variables, not their current value. This is used throughout plyr to specify the names of variables (or more complicated expressions). } \details{ Similar tricks can be performed with \code{\link{substitute}}, but when functions can be called in multiple ways it becomes increasingly tricky to ensure that the values are extracted from the correct frame. Substitute tricks also make it difficult to program against the functions that use them, while the \code{quoted} class provides \code{as.quoted.character} to convert strings to the appropriate data structure. } \examples{ .(a, b, c) .(first = a, second = b, third = c) .(a ^ 2, b - d, log(c)) as.quoted(~ a + b + c) as.quoted(a ~ b + c) as.quoted(c("a", "b", "c")) # Some examples using ddply - look at the column names ddply(mtcars, "cyl", each(nrow, ncol)) ddply(mtcars, ~ cyl, each(nrow, ncol)) ddply(mtcars, .(cyl), each(nrow, ncol)) ddply(mtcars, .(log(cyl)), each(nrow, ncol)) ddply(mtcars, .(logcyl = log(cyl)), each(nrow, ncol)) ddply(mtcars, .(vs + am), each(nrow, ncol)) ddply(mtcars, .(vsam = vs + am), each(nrow, ncol)) } plyr/man/laply.Rd0000644000175100001440000000500512725615561013453 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/laply.r \name{laply} \alias{laply} \title{Split list, apply function, and return results in an array.} \usage{ laply(.data, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{list to be processed} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.drop}{should extra dimensions of length 1 in the output be dropped, simplifying the output. Defaults to \code{TRUE}} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions) } \description{ For each element of a list, apply function then combine results into an array. } \details{ \code{laply} is similar in spirit to \code{\link{sapply}} except that it will always return an array, and the output is transposed with respect \code{sapply} - each element of the list corresponds to a row, not a column. } \section{Input}{ This function splits lists by elements. } \section{Output}{ If there are no results, then this function will return a vector of length 0 (\code{vector()}). } \examples{ laply(baseball, is.factor) # cf ldply(baseball, is.factor) colwise(is.factor)(baseball) laply(seq_len(10), identity) laply(seq_len(10), rep, times = 4) laply(seq_len(10), matrix, nrow = 2, ncol = 2) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other array output: \code{\link{aaply}}, \code{\link{daply}}, \code{\link{maply}} Other list input: \code{\link{l_ply}}, \code{\link{ldply}}, \code{\link{llply}} } \keyword{manip} plyr/man/l_ply.Rd0000644000175100001440000000402612725615561013453 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/l_ply.r \name{l_ply} \alias{l_ply} \title{Split list, apply function, and discard results.} \usage{ l_ply(.data, .fun = NULL, ..., .progress = "none", .inform = FALSE, .print = FALSE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{list to be processed} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.print}{automatically print each result? (default: \code{FALSE})} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ Nothing } \description{ For each element of a list, apply function and discard results } \section{Input}{ This function splits lists by elements. } \section{Output}{ All output is discarded. This is useful for functions that you are calling purely for their side effects like displaying plots or saving output. } \examples{ l_ply(llply(mtcars, round), table, .print = TRUE) l_ply(baseball, function(x) print(summary(x))) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other list input: \code{\link{laply}}, \code{\link{ldply}}, \code{\link{llply}} Other no output: \code{\link{a_ply}}, \code{\link{d_ply}}, \code{\link{m_ply}} } \keyword{manip} plyr/man/vaggregate.Rd0000644000175100001440000000320612725615561014447 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/vaggregate.r \name{vaggregate} \alias{vaggregate} \title{Vector aggregate.} \usage{ vaggregate(.value, .group, .fun, ..., .default = NULL, .n = nlevels(.group)) } \arguments{ \item{.value}{vector of values to aggregate} \item{.group}{grouping vector} \item{.fun}{aggregation function} \item{...}{other arguments passed on to \code{.fun}} \item{.default}{default value used for missing groups. This argument is also used as the template for function output.} \item{.n}{total number of groups} } \description{ This function is somewhat similar to \code{tapply}, but is designed for use in conjunction with \code{id}. It is simpler in that it only accepts a single grouping vector (use \code{\link{id}} if you have more) and uses \code{\link{vapply}} internally, using the \code{.default} value as the template. } \details{ \code{vaggregate} should be faster than \code{tapply} in most situations because it avoids making a copy of the data. } \examples{ # Some examples of use borrowed from ?tapply n <- 17; fac <- factor(rep(1:3, length.out = n), levels = 1:5) table(fac) vaggregate(1:n, fac, sum) vaggregate(1:n, fac, sum, .default = NA_integer_) vaggregate(1:n, fac, range) vaggregate(1:n, fac, range, .default = c(NA, NA) + 0) vaggregate(1:n, fac, quantile) # Unlike tapply, vaggregate does not support multi-d output: tapply(warpbreaks$breaks, warpbreaks[,-1], sum) vaggregate(warpbreaks$breaks, id(warpbreaks[,-1]), sum) # But it is about 10x faster x <- rnorm(1e6) y1 <- sample.int(10, 1e6, replace = TRUE) system.time(tapply(x, y1, mean)) system.time(vaggregate(x, y1, mean)) } plyr/man/defaults.Rd0000644000175100001440000000051112725615561014136 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/defaults.r \name{defaults} \alias{defaults} \title{Set defaults.} \usage{ defaults(x, y) } \arguments{ \item{x}{list of values} \item{y}{defaults} } \description{ Convient method for combining a list of values with their defaults. } \keyword{manip} plyr/man/list_to_array.Rd0000644000175100001440000000115412725615561015206 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/list-to-array.r \name{list_to_array} \alias{list_to_array} \title{List to array.} \usage{ list_to_array(res, labels = NULL, .drop = FALSE) } \arguments{ \item{res}{list of input data} \item{labels}{a data frame of labels, one row for each element of res} \item{.drop}{should extra dimensions be dropped (TRUE) or preserved (FALSE)} } \description{ Reduce/simplify a list of homogenous objects to an array } \seealso{ Other list simplification functions: \code{\link{list_to_dataframe}}, \code{\link{list_to_vector}} } \keyword{internal} plyr/man/eval.quoted.Rd0000644000175100001440000000072312725615561014563 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/quote.r \name{eval.quoted} \alias{eval.quoted} \title{Evaluate a quoted list of variables.} \usage{ eval.quoted(exprs, envir = NULL, enclos = NULL, try = FALSE) } \arguments{ \item{try}{if TRUE, return \code{NULL} if evaluation unsuccesful} \item{expr}{quoted object to evalution} } \value{ a list } \description{ Evaluates quoted variables in specified environment } \keyword{internal} plyr/man/adply.Rd0000644000175100001440000000561512725615561013452 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/adply.r \name{adply} \alias{adply} \title{Split array, apply function, and return results in a data frame.} \usage{ adply(.data, .margins, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL, .id = NA) } \arguments{ \item{.data}{matrix, array or data frame to be processed} \item{.margins}{a vector giving the subscripts to split up \code{data} by. 1 splits up by rows, 2 by columns and c(1,2) by rows and columns, and so on for higher dimensions} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.expand}{if \code{.data} is a data frame, should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} \item{.id}{name(s) of the index column(s). Pass \code{NULL} to avoid creation of the index column(s). Omit or pass \code{NA} to use the default names \code{"X1"}, \code{"X2"}, \ldots. Otherwise, this argument must have the same length as \code{.margins}.} } \value{ A data frame, as described in the output section. } \description{ For each slice of an array, apply function then combine results into a data frame. } \section{Input}{ This function splits matrices, arrays and data frames by dimensions } \section{Output}{ The most unambiguous behaviour is achieved when \code{.fun} returns a data frame - in that case pieces will be combined with \code{\link{rbind.fill}}. If \code{.fun} returns an atomic vector of fixed length, it will be \code{rbind}ed together and converted to a data frame. Any other values will result in an error. If there are no results, then this function will return a data frame with zero rows and columns (\code{data.frame()}). } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other array input: \code{\link{a_ply}}, \code{\link{aaply}}, \code{\link{alply}} Other data frame output: \code{\link{ddply}}, \code{\link{ldply}}, \code{\link{mdply}} } \keyword{manip} plyr/man/daply.Rd0000644000175100001440000000556112725615561013452 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/daply.r \name{daply} \alias{daply} \title{Split data frame, apply function, and return results in an array.} \usage{ daply(.data, .variables, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop_i = TRUE, .drop_o = TRUE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{data frame to be processed} \item{.variables}{variables to split data frame by, as quoted variables, a formula or character vector} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.drop_i}{should combinations of variables that do not appear in the input data be preserved (FALSE) or dropped (TRUE, default)} \item{.drop_o}{should extra dimensions of length 1 in the output be dropped, simplifying the output. Defaults to \code{TRUE}} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions) } \description{ For each subset of data frame, apply function then combine results into an array. \code{daply} with a function that operates column-wise is similar to \code{\link{aggregate}}. To apply a function for each row, use \code{\link{aaply}} with \code{.margins} set to \code{1}. } \section{Input}{ This function splits data frames by variables. } \section{Output}{ If there are no results, then this function will return a vector of length 0 (\code{vector()}). } \examples{ daply(baseball, .(year), nrow) # Several different ways of summarising by variables that should not be # included in the summary daply(baseball[, c(2, 6:9)], .(year), colwise(mean)) daply(baseball[, 6:9], .(baseball$year), colwise(mean)) daply(baseball, .(year), function(df) colwise(mean)(df[, 6:9])) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other array output: \code{\link{aaply}}, \code{\link{laply}}, \code{\link{maply}} Other data frame input: \code{\link{d_ply}}, \code{\link{ddply}}, \code{\link{dlply}} } \keyword{manip} plyr/man/name_rows.Rd0000644000175100001440000000144012725615561014323 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/name-rows.r \name{name_rows} \alias{name_rows} \title{Toggle row names between explicit and implicit.} \usage{ name_rows(df) } \arguments{ \item{df}{a data.frame, with either \code{rownames}, or a column called \code{.rownames}.} } \description{ Plyr functions ignore row names, so this function provides a way to preserve them by converting them to an explicit column in the data frame. After the plyr operation, you can then apply \code{name_rows} again to convert back from the explicit column to the implicit \code{rownames}. } \examples{ name_rows(mtcars) name_rows(name_rows(mtcars)) df <- data.frame(a = sample(10)) arrange(df, a) arrange(name_rows(df), a) name_rows(arrange(name_rows(df), a)) } \keyword{manip} plyr/man/m_ply.Rd0000644000175100001440000000502312725615561013452 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/m_ply.r \name{m_ply} \alias{m_ply} \title{Call function with arguments in array or data frame, discarding results.} \usage{ m_ply(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .print = FALSE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{matrix or data frame to use as source of arguments} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.expand}{should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.print}{automatically print each result? (default: \code{FALSE})} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ Nothing } \description{ Call a multi-argument function with values taken from columns of an data frame or array, and discard results into a list. } \details{ The \code{m*ply} functions are the \code{plyr} version of \code{mapply}, specialised according to the type of output they produce. These functions are just a convenient wrapper around \code{a*ply} with \code{margins = 1} and \code{.fun} wrapped in \code{\link{splat}}. } \section{Input}{ Call a multi-argument function with values taken from columns of an data frame or array } \section{Output}{ All output is discarded. This is useful for functions that you are calling purely for their side effects like displaying plots or saving output. } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other multiple arguments input: \code{\link{maply}}, \code{\link{mdply}}, \code{\link{mlply}} Other no output: \code{\link{a_ply}}, \code{\link{d_ply}}, \code{\link{l_ply}} } \keyword{manip} plyr/man/maply.Rd0000644000175100001440000000546212725615561013463 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/maply.r \name{maply} \alias{maply} \title{Call function with arguments in array or data frame, returning an array.} \usage{ maply(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{matrix or data frame to use as source of arguments} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.expand}{should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.drop}{should extra dimensions of length 1 in the output be dropped, simplifying the output. Defaults to \code{TRUE}} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions) } \description{ Call a multi-argument function with values taken from columns of an data frame or array, and combine results into an array } \details{ The \code{m*ply} functions are the \code{plyr} version of \code{mapply}, specialised according to the type of output they produce. These functions are just a convenient wrapper around \code{a*ply} with \code{margins = 1} and \code{.fun} wrapped in \code{\link{splat}}. } \section{Input}{ Call a multi-argument function with values taken from columns of an data frame or array } \section{Output}{ If there are no results, then this function will return a vector of length 0 (\code{vector()}). } \examples{ maply(cbind(mean = 1:5, sd = 1:5), rnorm, n = 5) maply(expand.grid(mean = 1:5, sd = 1:5), rnorm, n = 5) maply(cbind(1:5, 1:5), rnorm, n = 5) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other array output: \code{\link{aaply}}, \code{\link{daply}}, \code{\link{laply}} Other multiple arguments input: \code{\link{m_ply}}, \code{\link{mdply}}, \code{\link{mlply}} } \keyword{manip} plyr/man/count.Rd0000644000175100001440000000321212725615561013460 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/count.r \name{count} \alias{count} \title{Count the number of occurences.} \usage{ count(df, vars = NULL, wt_var = NULL) } \arguments{ \item{df}{data frame to be processed} \item{vars}{variables to count unique values of} \item{wt_var}{optional variable to weight by - if this is non-NULL, count will sum up the value of this variable for each combination of id variables.} } \value{ a data frame with label and freq columns } \description{ Equivalent to \code{as.data.frame(table(x))}, but does not include combinations with zero counts. } \details{ Speed-wise count is competitive with \code{\link{table}} for single variables, but it really comes into its own when summarising multiple dimensions because it only counts combinations that actually occur in the data. Compared to \code{\link{table}} + \code{\link{as.data.frame}}, \code{count} also preserves the type of the identifier variables, instead of converting them to characters/factors. } \examples{ # Count of each value of "id" in the first 100 cases count(baseball[1:100,], vars = "id") # Count of ids, weighted by their "g" loading count(baseball[1:100,], vars = "id", wt_var = "g") count(baseball, "id", "ab") count(baseball, "lg") # How many stints do players do? count(baseball, "stint") # Count of times each player appeared in each of the years they played count(baseball[1:100,], c("id", "year")) # Count of counts count(count(baseball[1:100,], c("id", "year")), "id", "freq") count(count(baseball, c("id", "year")), "freq") } \seealso{ \code{\link{table}} for related functionality in the base package } \keyword{manip} plyr/man/list_to_vector.Rd0000644000175100001440000000067412725615561015400 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/list-to-vector.r \name{list_to_vector} \alias{list_to_vector} \title{List to vector.} \usage{ list_to_vector(res) } \arguments{ \item{res}{list of input data} } \description{ Reduce/simplify a list of homogenous objects to a vector } \seealso{ Other list simplification functions: \code{\link{list_to_array}}, \code{\link{list_to_dataframe}} } \keyword{internal} plyr/man/ldply.Rd0000644000175100001440000000477212725615561013470 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/ldply.r \name{ldply} \alias{ldply} \title{Split list, apply function, and return results in a data frame.} \usage{ ldply(.data, .fun = NULL, ..., .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL, .id = NA) } \arguments{ \item{.data}{list to be processed} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} \item{.id}{name of the index column (used if \code{.data} is a named list). Pass \code{NULL} to avoid creation of the index column. For compatibility, omit this argument or pass \code{NA} to avoid converting the index column to a factor; in this case, \code{".id"} is used as colum name.} } \value{ A data frame, as described in the output section. } \description{ For each element of a list, apply function then combine results into a data frame. } \section{Input}{ This function splits lists by elements. } \section{Output}{ The most unambiguous behaviour is achieved when \code{.fun} returns a data frame - in that case pieces will be combined with \code{\link{rbind.fill}}. If \code{.fun} returns an atomic vector of fixed length, it will be \code{rbind}ed together and converted to a data frame. Any other values will result in an error. If there are no results, then this function will return a data frame with zero rows and columns (\code{data.frame()}). } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other data frame output: \code{\link{adply}}, \code{\link{ddply}}, \code{\link{mdply}} Other list input: \code{\link{l_ply}}, \code{\link{laply}}, \code{\link{llply}} } \keyword{manip} plyr/man/dlply.Rd0000644000175100001440000000513212725615561013457 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/dlply.r \name{dlply} \alias{dlply} \title{Split data frame, apply function, and return results in a list.} \usage{ dlply(.data, .variables, .fun = NULL, ..., .progress = "none", .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{data frame to be processed} \item{.variables}{variables to split data frame by, as \code{\link{as.quoted}} variables, a formula or character vector} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.drop}{should combinations of variables that do not appear in the input data be preserved (FALSE) or dropped (TRUE, default)} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ list of results } \description{ For each subset of a data frame, apply function then combine results into a list. \code{dlply} is similar to \code{\link{by}} except that the results are returned in a different format. To apply a function for each row, use \code{\link{alply}} with \code{.margins} set to \code{1}. } \section{Input}{ This function splits data frames by variables. } \section{Output}{ If there are no results, then this function will return a list of length 0 (\code{list()}). } \examples{ linmod <- function(df) { lm(rbi ~ year, data = mutate(df, year = year - min(year))) } models <- dlply(baseball, .(id), linmod) models[[1]] coef <- ldply(models, coef) with(coef, plot(`(Intercept)`, year)) qual <- laply(models, function(mod) summary(mod)$r.squared) hist(qual) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other data frame input: \code{\link{d_ply}}, \code{\link{daply}}, \code{\link{ddply}} Other list output: \code{\link{alply}}, \code{\link{llply}}, \code{\link{mlply}} } \keyword{manip} plyr/man/progress_none.Rd0000644000175100001440000000107712725615561015222 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/progress.r \name{progress_none} \alias{progress_none} \title{Null progress bar} \usage{ progress_none() } \description{ A progress bar that does nothing } \details{ This the default progress bar used by plyr functions. It's very simple to understand - it does nothing! } \examples{ l_ply(1:100, identity, .progress = "none") } \seealso{ Other progress bars: \code{\link{progress_text}}, \code{\link{progress_time}}, \code{\link{progress_tk}}, \code{\link{progress_win}} } \keyword{internal} plyr/man/plyr.Rd0000644000175100001440000000515312725615561013324 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plyr.r \docType{package} \name{plyr} \alias{plyr} \alias{plyr-package} \title{plyr: the split-apply-combine paradigm for R.} \description{ The plyr package is a set of clean and consistent tools that implement the split-apply-combine pattern in R. This is an extremely common pattern in data analysis: you solve a complex problem by breaking it down into small pieces, doing something to each piece and then combining the results back together again. } \details{ The plyr functions are named according to what sort of data structure they split up and what sort of data structure they return: \describe{ \item{a}{array} \item{l}{list} \item{d}{data.frame} \item{m}{multiple inputs} \item{r}{repeat multiple times} \item{_}{nothing} } So \code{\link{ddply}} takes a data frame as input and returns a data frame as output, and \code{\link{l_ply}} takes a list as input and returns nothing as output. } \section{Row names}{ By design, no plyr function will preserve row names - in general it is too hard to know what should be done with them for many of the operations supported by plyr. If you want to preserve row names, use \code{\link{name_rows}} to convert them into an explicit column in your data frame, perform the plyr operations, and then use \code{\link{name_rows}} again to convert the column back into row names. } \section{Helpers}{ Plyr also provides a set of helper functions for common data analysis problems: \itemize{ \item \code{\link{arrange}}: re-order the rows of a data frame by specifying the columns to order by \item \code{\link{mutate}}: add new columns or modifying existing columns, like \code{\link{transform}}, but new columns can refer to other columns that you just created. \item \code{\link{summarise}}: like \code{\link{mutate}} but create a new data frame, not preserving any columns in the old data frame. \item \code{\link{join}}: an adapation of \code{\link{merge}} which is more similar to SQL, and has a much faster implementation if you only want to find the first match. \item \code{\link{match_df}}: a version of \code{\link{join}} that instead of returning the two tables combined together, only returns the rows in the first table that match the second. \item \code{\link{colwise}}: make any function work colwise on a dataframe \item \code{\link{rename}}: easily rename columns in a data frame \item \code{\link{round_any}}: round a number to any degree of precision \item \code{\link{count}}: quickly count unique combinations and return return as a data frame. } } plyr/man/true.Rd0000644000175100001440000000054712725615561013317 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.r \name{true} \alias{true} \title{Function that always returns true.} \usage{ true(...) } \arguments{ \item{...}{all input ignored} } \value{ \code{TRUE} } \description{ Function that always returns true. } \seealso{ \code{\link{colwise}} which uses it } \keyword{internal} plyr/man/each.Rd0000644000175100001440000000173112725615561013234 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/each.r \name{each} \alias{each} \title{Aggregate multiple functions into a single function.} \usage{ each(...) } \arguments{ \item{...}{functions to combine. each function should produce a single number as output} } \description{ Combine multiple functions into a single function returning a named vector of outputs. Note: you cannot supply additional parameters for the summary functions } \examples{ # Call min() and max() on the vector 1:10 each(min, max)(1:10) # This syntax looks a little different. It is shorthand for the # the following: f<- each(min, max) f(1:10) # Three equivalent ways to call min() and max() on the vector 1:10 each("min", "max")(1:10) each(c("min", "max"))(1:10) each(c(min, max))(1:10) # Call length(), min() and max() on a random normal vector each(length, mean, var)(rnorm(100)) } \seealso{ \code{\link{summarise}} for applying summary functions to data } \keyword{manip} plyr/man/mdply.Rd0000644000175100001440000000601212725615561013456 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mdply.r \name{mdply} \alias{mdply} \title{Call function with arguments in array or data frame, returning a data frame.} \usage{ mdply(.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{matrix or data frame to use as source of arguments} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.expand}{should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ A data frame, as described in the output section. } \description{ Call a multi-argument function with values taken from columns of an data frame or array, and combine results into a data frame } \details{ The \code{m*ply} functions are the \code{plyr} version of \code{mapply}, specialised according to the type of output they produce. These functions are just a convenient wrapper around \code{a*ply} with \code{margins = 1} and \code{.fun} wrapped in \code{\link{splat}}. } \section{Input}{ Call a multi-argument function with values taken from columns of an data frame or array } \section{Output}{ The most unambiguous behaviour is achieved when \code{.fun} returns a data frame - in that case pieces will be combined with \code{\link{rbind.fill}}. If \code{.fun} returns an atomic vector of fixed length, it will be \code{rbind}ed together and converted to a data frame. Any other values will result in an error. If there are no results, then this function will return a data frame with zero rows and columns (\code{data.frame()}). } \examples{ mdply(data.frame(mean = 1:5, sd = 1:5), rnorm, n = 2) mdply(expand.grid(mean = 1:5, sd = 1:5), rnorm, n = 2) mdply(cbind(mean = 1:5, sd = 1:5), rnorm, n = 5) mdply(cbind(mean = 1:5, sd = 1:5), as.data.frame(rnorm), n = 5) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other data frame output: \code{\link{adply}}, \code{\link{ddply}}, \code{\link{ldply}} Other multiple arguments input: \code{\link{m_ply}}, \code{\link{maply}}, \code{\link{mlply}} } \keyword{manip} plyr/man/raply.Rd0000644000175100001440000000303512725615561013462 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/raply.r \name{raply} \alias{raply} \title{Replicate expression and return results in a array.} \usage{ raply(.n, .expr, .progress = "none", .drop = TRUE) } \arguments{ \item{.n}{number of times to evaluate the expression} \item{.expr}{expression to evaluate} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.drop}{should extra dimensions of length 1 be dropped, simplifying the output. Defaults to \code{TRUE}} } \value{ if results are atomic with same type and dimensionality, a vector, matrix or array; otherwise, a list-array (a list with dimensions) } \description{ Evalulate expression n times then combine results into an array } \details{ This function runs an expression multiple times, and combines the result into a data frame. If there are no results, then this function returns a vector of length 0 (\code{vector(0)}). This function is equivalent to \code{\link{replicate}}, but will always return results as a vector, matrix or array. } \examples{ raply(100, mean(runif(100))) raply(100, each(mean, var)(runif(100))) raply(10, runif(4)) raply(10, matrix(runif(4), nrow=2)) # See the central limit theorem in action hist(raply(1000, mean(rexp(10)))) hist(raply(1000, mean(rexp(100)))) hist(raply(1000, mean(rexp(1000)))) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \keyword{manip} plyr/man/llply.Rd0000644000175100001440000000421712725615561013472 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/llply.r \name{llply} \alias{llply} \title{Split list, apply function, and return results in a list.} \usage{ llply(.data, .fun = NULL, ..., .progress = "none", .inform = FALSE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{list to be processed} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ list of results } \description{ For each element of a list, apply function, keeping results as a list. } \details{ \code{llply} is equivalent to \code{\link{lapply}} except that it will preserve labels and can display a progress bar. } \section{Input}{ This function splits lists by elements. } \section{Output}{ If there are no results, then this function will return a list of length 0 (\code{list()}). } \examples{ llply(llply(mtcars, round), table) llply(baseball, summary) # Examples from ?lapply x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE)) llply(x, mean) llply(x, quantile, probs = 1:3/4) } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other list input: \code{\link{l_ply}}, \code{\link{laply}}, \code{\link{ldply}} Other list output: \code{\link{alply}}, \code{\link{dlply}}, \code{\link{mlply}} } \keyword{manip} plyr/man/print.quoted.Rd0000644000175100001440000000044412725615561014770 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/quote.r \name{print.quoted} \alias{print.quoted} \title{Print quoted variables.} \usage{ \method{print}{quoted}(x, ...) } \description{ Display the \code{\link{str}}ucture of quoted variables } \keyword{internal} plyr/man/try_default.Rd0000644000175100001440000000120612725615561014653 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/try.r \name{try_default} \alias{tryNULL} \alias{try_default} \title{Try, with default in case of error.} \usage{ try_default(expr, default, quiet = FALSE) tryNULL(expr) } \arguments{ \item{expr}{expression to try} \item{default}{default value in case of error} \item{quiet}{should errors be printed (TRUE) or ignored (FALSE, default)} } \description{ \code{try_default} wraps try so that it returns a default value in the case of error. \code{tryNULL} provides a useful special case when dealing with lists. } \seealso{ \code{\link{tryapply}} } \keyword{internal} plyr/man/a_ply.Rd0000644000175100001440000000453412725615561013444 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a_ply.r \name{a_ply} \alias{a_ply} \title{Split array, apply function, and discard results.} \usage{ a_ply(.data, .margins, .fun = NULL, ..., .expand = TRUE, .progress = "none", .inform = FALSE, .print = FALSE, .parallel = FALSE, .paropts = NULL) } \arguments{ \item{.data}{matrix, array or data frame to be processed} \item{.margins}{a vector giving the subscripts to split up \code{data} by. 1 splits up by rows, 2 by columns and c(1,2) by rows and columns, and so on for higher dimensions} \item{.fun}{function to apply to each piece} \item{...}{other arguments passed on to \code{.fun}} \item{.expand}{if \code{.data} is a data frame, should output be 1d (expand = FALSE), with an element for each row; or nd (expand = TRUE), with a dimension for each variable.} \item{.progress}{name of the progress bar to use, see \code{\link{create_progress_bar}}} \item{.inform}{produce informative error messages? This is turned off by default because it substantially slows processing speed, but is very useful for debugging} \item{.print}{automatically print each result? (default: \code{FALSE})} \item{.parallel}{if \code{TRUE}, apply function in parallel, using parallel backend provided by foreach} \item{.paropts}{a list of additional options passed into the \code{\link[foreach]{foreach}} function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the \code{.export} and \code{.packages} arguments to supply them so that all cluster nodes have the correct environment set up for computing.} } \value{ Nothing } \description{ For each slice of an array, apply function and discard results } \section{Input}{ This function splits matrices, arrays and data frames by dimensions } \section{Output}{ All output is discarded. This is useful for functions that you are calling purely for their side effects like displaying plots or saving output. } \references{ Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. \url{http://www.jstatsoft.org/v40/i01/}. } \seealso{ Other array input: \code{\link{aaply}}, \code{\link{adply}}, \code{\link{alply}} Other no output: \code{\link{d_ply}}, \code{\link{l_ply}}, \code{\link{m_ply}} } \keyword{manip} plyr/man/summarise.Rd0000644000175100001440000000223112725615561014335 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summarise.r \name{summarise} \alias{summarise} \alias{summarize} \title{Summarise a data frame.} \usage{ summarise(.data, ...) } \arguments{ \item{.data}{the data frame to be summarised} \item{...}{further arguments of the form var = value} } \description{ Summarise works in an analogous way to \code{\link{mutate}}, except instead of adding columns to an existing data frame, it creates a new data frame. This is particularly useful in conjunction with \code{\link{ddply}} as it makes it easy to perform group-wise summaries. } \note{ Be careful when using existing variable names; the corresponding columns will be immediately updated with the new data and this can affect subsequent operations referring to those variables. } \examples{ # Let's extract the number of teams and total period of time # covered by the baseball dataframe summarise(baseball, duration = max(year) - min(year), nteams = length(unique(team))) # Combine with ddply to do that for each separate id ddply(baseball, "id", summarise, duration = max(year) - min(year), nteams = length(unique(team))) } \keyword{manip} plyr/man/splat.Rd0000644000175100001440000000136112725615561013456 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/splat.r \name{splat} \alias{splat} \title{`Splat' arguments to a function.} \usage{ splat(flat) } \arguments{ \item{flat}{function to splat} } \value{ a function } \description{ Wraps a function in do.call, so instead of taking multiple arguments, it takes a single named list which will be interpreted as its arguments. } \details{ This is useful when you want to pass a function a row of data frame or array, and don't want to manually pull it apart in your function. } \examples{ hp_per_cyl <- function(hp, cyl, ...) hp / cyl splat(hp_per_cyl)(mtcars[1,]) splat(hp_per_cyl)(mtcars) f <- function(mpg, wt, ...) data.frame(mw = mpg / wt) ddply(mtcars, .(cyl), splat(f)) } plyr/man/amv_dimnames.Rd0000644000175100001440000000101312725615561014765 0ustar hornikusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/dimensions.r \name{amv_dimnames} \alias{amv_dimnames} \title{Dimension names.} \usage{ amv_dimnames(x) } \arguments{ \item{x}{array, matrix or vector} } \description{ Consistent dimnames for vectors, matrices and arrays. } \details{ Unlike \code{\link{dimnames}} no part of the output will ever be null. If a component of dimnames is omitted, \code{amv_dimnames} will return an integer sequence of the appropriate length. } \keyword{internal} plyr/LICENSE0000644000175100001440000000005412303221212012246 0ustar hornikusersYEAR: 2014 COPYRIGHT HOLDER: Hadley Wickham