flexsurv/0000755000176200001440000000000014660035012012125 5ustar liggesusersflexsurv/tests/0000755000176200001440000000000014657665315013314 5ustar liggesusersflexsurv/tests/testthat/0000755000176200001440000000000014657665315015154 5ustar liggesusersflexsurv/tests/testthat/test_custom.R0000644000176200001440000002656614603725274017657 0ustar liggesuserscontext("Custom distributions in flexsurvreg") ## These previously didn't work when the d or h functions are ## defined in functions or testthat environments. To find the h or d ## function in form.dp, get() and exists() would need to look in ## parent.frame(2), i.e. the grandparent calling environment, but ## inherits=TRUE searches back through _enclosing_ (definition) ## environments. ## Even with d/h functions defined at top level, these still didn't ## work when called from R CMD check. ## Solve by adding dfns argument to flexsurvreg, passing functions through. if (is.element("eha", installed.packages()[,1])) { test_that("Custom distributions from another package",{ library(eha) dllogis2 <- eha::dllogis; pllogis2 <- eha::pllogis custom.llogis <- list(name="llogis2", pars=c("shape","scale"), location="scale", transforms=c(log, log), inv.transforms=c(exp, exp), inits=function(t){ c(1, median(t)) }) fitll <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.llogis, dfns=list(d=dllogis2, p=pllogis2)) custom.ev <- list(name="EV", pars=c("shape","scale"), location="scale", transforms=c(log, log), inv.transforms=c(exp, exp), inits=function(t){ c(1, median(t)) }) fitev <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.ev, dfns=list(d=dEV, p=pEV)) ### h(x) = (b/a)(x/a)^(b-1)exp((x / a)^b) ### H(x) = exp( (x / a)^b) ) - 1 detach("package:eha") fitll.builtin <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="llogis") expect_equal(fitll$loglik, fitll.builtin$loglik) }) } test_that("Custom distributions: hazard and cumulative hazard",{ hfoo <- function(x, rate=1){ rate } Hfoo <- function(x, rate=1){ rate*x } custom.foo <- list(name="foo", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp), inits=function(t)1/median(t)) fitf <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)) fite <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist="exp") expect_equal(fitf$loglik, fite$loglik) }) test_that("Custom distributions: hazard only",{ hbar <- function(x, rate=1){ rate } hbar <- Vectorize(hbar) custom.bar <- list(name="bar", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp), inits=function(t)1/mean(t)) fitf <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.bar, dfns=list(h=hbar)) ### FIXME q is Inf. is it Surv object bug? time2 being used ### it's trying to get p from exp(-H(t)) with t = Inf, should get fite <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist="exp") expect_equal(fitf$loglik, fite$loglik) ## with covariates. Approximation is less good. Many more integrations needed fitf <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist=custom.bar, dfns=list(h=hbar)) fite <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist="exp") expect_equal(fitf$loglik, fite$loglik, tolerance=1e-05) ## options to integrate() flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.bar, dfns=list(h=hbar), integ.opts=list(rel.tol=0.01)) flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.bar, dfns=list(h=hbar), integ.opts=list(subdivisions=200)) ## OK to omit inits from custom list if supply it to flexsurvreg custom.bar <- list(name="bar", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp)) flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.bar, dfns=list(h=hbar), inits=0.001) }) test_that("Custom distributions: density only",{ custom.baz <- list(name="baz", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp), inits=function(t)1/mean(t)) dbaz <- function(x, rate=1, log=FALSE){ if (log) {log(rate) - x*rate} else rate*exp(-rate*x) } dbaz <- Vectorize(dbaz) fitf <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.baz, dfns=list(d=dbaz)) fite <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist="exp") expect_equal(fitf$loglik, fite$loglik) ## with covariates fitf <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist=custom.baz, dfns=list(d=dbaz), inits=c(9e-07, 0.12)) fite <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist="exp") expect_equal(fitf$loglik, fite$loglik, tolerance=1e-05) }) test_that("Custom distributions: summary", { custom.baz <- list(name="baz", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp), inits=function(t)1/mean(t)) dbaz <- function(x, rate=1, log=FALSE){ if (log) {log(rate) - x*rate} else rate*exp(-rate*x) } dbaz <- Vectorize(dbaz) fitd <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.baz, dfns=list(d=dbaz)) expect_no_error(summary(fitd, type='quantile')) hfoo <- function(x, rate=1){ rate } Hfoo <- function(x, rate=1){ rate*x } custom.foo <- list(name="foo", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp), inits=function(t)1/median(t)) fith <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)) expect_no_error(summary(fith, type='quantile')) }) ## Integration breaks for the Gompertz if (0) { hbar2 <- function(x, a=1, b=1){ b*exp(a*x) } hbar2 <- Vectorize(hbar2) custom.bar2 <- list(name="bar2", pars=c("a","b"), location="b", transforms=c(identity,log), inv.transforms=c(identity,exp), inits=function(t)c(0.001, 1/mean(t))) fitf <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.bar2, control=list(trace=1,REPORT=1,reltol=1e-16,maxit=10000)) fitgo <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="gompertz", control=list(trace=1,REPORT=1,reltol=1e-16)) } ## test_that("Custom distributions: hazard only, unknown function, more than one arg",{ ## }) ## TODO a more complicated one test_that("Errors in custom distributions",{ hfoo <- function(x, rate=1){ rate } Hfoo <- function(x, rate=1){ rate*x } custom.foo <- list(pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp)) expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "\"name\" element of custom distribution list not given") custom.foo <- list(name=0, pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp)) expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "\"name\" element of custom distribution list should be a string") custom.foo <- list(name="foo", location="rate", transforms=c(log), inv.transforms=c(exp)) expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "parameter names \"pars\" not given") custom.foo <- list(name="foo", pars=2, location="rate", transforms=c(log), inv.transforms=c(exp)) expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "parameter names \"pars\" should be a character vector") custom.foo <- list(name="foo", pars="rate", transforms=c(log), inv.transforms=c(exp)) expect_warning(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo), fixedpars=TRUE, inits=1), "location parameter not given, assuming it is the first one") custom.foo <- list(name="foo", pars="rate", location="bar", transforms=c(log), inv.transforms=c(exp)) expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo), fixedpars=TRUE, inits=1), "location parameter \"bar\" not in list of parameters") custom.foo <- list(name="foo", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp)) expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "\"inits\" not supplied, and no function to estimate them found") custom.foo <- list(name="foo", pars=c("rate"), location="rate") expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "transforms not given") custom.foo <- list(name="foo", pars=c("rate"), transforms=c(log), location="rate") expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "transforms not given") custom.foo <- list(name="foo", pars=c("rate"), transforms=log, inv.transforms=exp, location="rate") expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "\"transforms\" must be a list") custom.foo <- list(name="foo", pars=c("rate"), transforms=c(log), inv.transforms=exp, location="rate") expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "\"inv.transforms\" must be a list") custom.foo <- list(name="foo", pars=c("rate"), transforms=list(2), inv.transforms=c(exp), location="rate") expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "some of \"transforms\" are not functions") custom.foo <- list(name="foo", pars=c("rate"), transforms=c(log), inv.transforms=list(2), location="rate") expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "some of \"inv.transforms\" are not functions") custom.foo <- list(name="foo", pars=c("rate"), transforms=c(log,log), inv.transforms=c(exp,exp), location="rate") expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "transforms vector of length 2, parameter names of length 1") custom.foo <- list(name="foo", pars=c("rate"), transforms=c(log), inv.transforms=c(exp,exp), location="rate") expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "inverse transforms vector of length 2, parameter names of length 1") custom.foo <- list(name="foo", pars=c("rate"), transforms=c(log), inv.transforms=c(exp), location="rate", inits=1) expect_error(flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.foo, dfns=list(h=hfoo, H=Hfoo)), "\"inits\" element of custom distribution list must be a function") }) test_that("Errors in form.dp",{ expect_error(form.dp(dlist=list(), dfns=list()), "Neither density function .+ nor hazard function") }) flexsurv/tests/testthat/test_predict.R0000644000176200001440000003625314500662107017760 0ustar liggesuserstest_that('survival predictions', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") # Single time predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'survival', t = 500) p <- predict(fitw, ovarian, type = 'survival', times = 500) expect_equal(s$est, p$.pred_survival) # Multiple time predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'survival', t = c(500, 1000)) p <- predict(fitw, ovarian, type = 'survival', times = c(500, 1000)) expect_equal(s$est, tidyr::unnest(p, .pred)$.pred_survival) }) test_that('hazard predictions', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") # Single time predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'hazard', t = 500) p <- predict(fitw, ovarian, type = 'hazard', times = 500) expect_equal(s$est, p$.pred_hazard) # Multiple time predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'hazard', t = c(500, 1000)) p <- predict(fitw, ovarian, type = 'hazard', times = c(500, 1000)) expect_equal(s$est, tidyr::unnest(p, .pred)$.pred_hazard) }) test_that('cumhaz predictions', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") # Single time predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'cumhaz', t = 500) p <- predict(fitw, ovarian, type = 'cumhaz', times = 500) expect_equal(s$est, p$.pred_cumhaz) # Multiple time predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'cumhaz', t = c(500, 1000)) p <- predict(fitw, ovarian, type = 'cumhaz', times = c(500, 1000)) expect_equal(s$est, tidyr::unnest(p, .pred)$.pred_cumhaz) }) test_that('rmst predictions', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") # Single time predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'rmst', t = 500) p <- predict(fitw, ovarian, type = 'rmst', times = 500) expect_equal(s$est, p$.pred_rmst) # Multiple time predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'rmst', t = c(500, 1000)) p <- predict(fitw, ovarian, type = 'rmst', times = c(500, 1000)) expect_equal(s$est, tidyr::unnest(p, .pred)$.pred_rmst) }) test_that('response/mean predictions', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") s <- summary(fitw, ovarian, tidy = TRUE, type = 'mean') p <- predict(fitw, ovarian, type = 'response') expect_equal(s$est, p$.pred_time) p <- predict(fitw, ovarian, type = 'mean') expect_equal(s$est, p$.pred_time) }) test_that('quantile predictions', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") # Single quantile predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'quantile', t = 500, quantiles = c(0.5)) p <- predict(fitw, ovarian, type = 'quantile', times = 500, p = c(0.5)) expect_equal(s$est, p$.pred_quantile) # Multiple quantiles predictions s <- summary(fitw, ovarian, tidy = TRUE, type = 'quantile', quantile = c(0.1, 0.9)) p <- predict(fitw, ovarian, type = 'quantile', p = c(0.1, 0.9)) expect_equal(s$est, tidyr::unnest(p, .pred)$.pred_quantile) }) test_that('link predictions', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") s <- summary(fitw, ovarian, tidy = TRUE, type = 'link') p <- predict(fitw, ovarian, type = 'link') expect_equal(s$est, p$.pred_link) p <- predict(fitw, ovarian, type = 'linear') expect_equal(s$est, p$.pred_link) p <- predict(fitw, ovarian, type = 'lp') expect_equal(s$est, p$.pred_link) }) test_that('test order (of age) stays the same', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") s <- summary(fitw, newdata = ovarian, type = 'survival', t = 500, tidy = TRUE) expect_equal(ovarian$age, s$age) }) test_that('predictions with missing data (gengamma)', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") ovarian_miss <- ovarian ovarian_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = ovarian_miss, type = 'mean') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'link') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) # Multiple predictions p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(ovarian_miss)) }) test_that('predictions with missing data (genf)', { # Use cancer data because genf is non-identifiable with ovarian data fitw <- flexsurvreg(Surv(time, status) ~ age, data = cancer, dist = "genf") cancer_miss <- cancer cancer_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = cancer_miss, type = 'mean') expect_equal(nrow(p), nrow(cancer_miss)) p <- predict(fitw, newdata = cancer_miss, type = 'link') expect_equal(nrow(p), nrow(cancer_miss)) p <- predict(fitw, newdata = cancer_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(cancer_miss)) p <- predict(fitw, newdata = cancer_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(cancer_miss)) p <- predict(fitw, newdata = cancer_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(cancer_miss)) p <- predict(fitw, newdata = cancer_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(cancer_miss)) p <- predict(fitw, newdata = cancer_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(cancer_miss)) # Multiple predictions p <- predict(fitw, newdata = cancer_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(cancer_miss)) }) test_that('predictions with missing data (weibull)', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") ovarian_miss <- ovarian ovarian_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = ovarian_miss, type = 'mean') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'link') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) # Multiple predictions p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(ovarian_miss)) }) test_that('predictions with missing data (gamma)', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "gamma") ovarian_miss <- ovarian ovarian_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = ovarian_miss, type = 'mean') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'link') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) # Multiple predictions p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(ovarian_miss)) }) test_that('predictions with missing data (exponential)', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "exp") ovarian_miss <- ovarian ovarian_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = ovarian_miss, type = 'mean') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'link') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) # Multiple predictions p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(ovarian_miss)) }) test_that('predictions with missing data (llogis)', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "llogis") ovarian_miss <- ovarian ovarian_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = ovarian_miss, type = 'mean') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'link') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) # Multiple predictions p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(ovarian_miss)) }) test_that('predictions with missing data (lnorm)', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "lnorm") ovarian_miss <- ovarian ovarian_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = ovarian_miss, type = 'mean') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'link') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) # Multiple predictions p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(ovarian_miss)) }) test_that('predictions with missing data (gompertz)', { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "gompertz") ovarian_miss <- ovarian ovarian_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = ovarian_miss, type = 'mean') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'link') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) # Multiple predictions p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(ovarian_miss)) }) test_that('predictions with missing data (spline)', { fitw <- flexsurvspline(Surv(futime, fustat) ~ age, data = ovarian, k = 3) ovarian_miss <- ovarian ovarian_miss$age[[5]] <- NA # Single predictions p <- predict(fitw, newdata = ovarian_miss, type = 'mean') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'link') expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'rmst', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'quantile', p = 0.5) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'hazard', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'cumhaz', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = 500) expect_equal(nrow(p), nrow(ovarian_miss)) # Multiple predictions p <- predict(fitw, newdata = ovarian_miss, type = 'survival', times = c(500, 1000)) expect_equal(nrow(p), nrow(ovarian_miss)) }) flexsurv/tests/testthat/test_flexsurvmix_opt.R0000644000176200001440000001025414471614302021576 0ustar liggesusersif (!identical(Sys.getenv("NOT_CRAN"), "true")) return() n <- 200 p <- 0.5 set.seed(1) death <- rbinom(n, 1, p) t <- numeric(n) x <- rnorm(n) y <- rbinom(n, 1, 0.5) t[death==0] <- rgamma(sum(death==0), 1*exp(0.3*x[death==0]), 3.2*exp(0.5*x[death==0])) t[death==1] <- rgamma(sum(death==1), 2.5, 1.2) cens <- as.numeric(t > 2) t[cens] <- 2 status <- 1 - cens event <- ifelse(cens, NA, death+1) # 1 is cure, 2 is death dat <- data.frame(t, status, event, x) dat$evname <- c("cure", "death")[dat$event] test_that("EM basic",{ x <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), method="em") xd <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), method="direct") expect_equivalent(x$loglik, xd$loglik, tol=1e-06) }) test_that("EM pformula",{ x <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), pformula = ~x+y, method="em") xd <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), pformula = ~x+y, method="direct") expect_equivalent(x$loglik, xd$loglik, tol=1e-04) }) test_that("EM with different covs on different components", { x <- flexsurvmix(list(cure=Surv(t, status) ~ 1, death=Surv(t, status) ~ x), data=dat, event=evname, dists=c("gamma","gamma"), method="em") xd <- flexsurvmix(list(cure=Surv(t, status) ~ 1, death=Surv(t, status) ~ x), data=dat, event=evname, dists=c("gamma","gamma"), method="direct") expect_equivalent(x$loglik, xd$loglik, tol=1e-04) }) test_that("EM with anc and different covs on different components", { x <- flexsurvmix(list(cure=Surv(t, status) ~ 1, death=Surv(t, status) ~ x), data=dat, event=evname, anc=list(cure=list(shape=~y), death=list(shape=~1)), dists=c("gamma","gamma"), method="em") xd <- flexsurvmix(list(cure=Surv(t, status) ~ 1, death=Surv(t, status) ~ x), data=dat, event=evname, anc=list(cure=list(shape=~y), death=list(shape=~1)), dists=c("gamma","gamma"), method="direct") expect_equivalent(x$loglik, xd$loglik, tol=1e-04) }) test_that("Variances in Aalen-Johansen",{ x <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), method="em") aj <- ajfit_flexsurvmix(x, B=3) expect_true(inherits(aj, "data.frame") & is.numeric(aj$lower)) }) n <- 100 set.seed(1) x <- rnorm(n) y <- rbinom(n, 1, 0.5) p <- plogis(qlogis(0.5) + 2*x - 3*y) death <- rbinom(n, 1, p) t <- numeric(n) t[death==0] <- rgamma(sum(death==0), 1, 3.2) t[death==1] <- rgamma(sum(death==1), 2.5, 1.2) cens <- as.numeric(t > 3) status <- 1 - cens t[cens] <- 3 event <- ifelse(cens, NA, death+1) # 1 is cure, 2 is death dat <- data.frame(t, status, event, x) dat$evname <- c("cure", "death")[dat$event] test_that("var.method",{ x <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), pformula = ~ x + y, method="em", fixedpars=c(3,4), em.control=list(var.method="louis")) x x2 <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), pformula = ~ x + y, method="em", fixedpars=c(3,4), em.control=list(var.method="direct")) x2 expect_equivalent(x$loglik, x2$loglik, tol=1e-04) expect_true(x$cov[1,1] != x2$cov[1,1]) }) test_that("Models with interactions",{ dat$x <- factor(rbinom(nrow(dat), size=1, prob=0.5)) dat$y <- factor(rbinom(nrow(dat), size=1, prob=0.4)) fsi <- flexsurvmix(formula = Surv(t, status) ~ x*y, data = dat, event = event, dists = c("gamma", "weibull"), fixedpars = FALSE, method="em", em.control=list(var.method="louis", reltol=1e-04)) aj <- ajfit_flexsurvmix(fsi) expect_equal(aj$val[1], 1) }) flexsurv/tests/testthat/test_splinedist.R0000644000176200001440000002251214531630662020502 0ustar liggesuserscontext("Spline distribution functions") test_that("Spline distribution functions",{ regscale <- 0.786; cf <- 1.82 a <- 1/regscale; b <- exp(cf) d1 <- dweibull(1, shape=a, scale=b) d2 <- dsurvspline(1, gamma=c(log(1 / b^a), a)) expect_equal(d1, d2) p1 <- pweibull(1, shape=a, scale=b) p2 <- psurvspline(1, gamma=c(log(1 / b^a), a)) expect_equal(p1, p2) meanlog <- 1.52; sdlog <- 1.11 d1 <- dlnorm(1, meanlog, sdlog) d2 <- dsurvspline(1, gamma = c(-meanlog/sdlog, 1/sdlog), scale="normal") expect_equal(d1, d2) p1 <- plnorm(1, meanlog, sdlog) p2 <- psurvspline(1, gamma = c(-meanlog/sdlog, 1/sdlog), scale="normal") expect_equal(p1, p2) p1 <- pweibull(1, shape=a, scale=b) p2 <- psurvspline(1, gamma=c(log(1 / b^a), a)) ## other way round gamma <- c(0.1, 0.2) d1 <- dweibull(1, shape=gamma[2], scale= exp(-gamma[1]/gamma[2])) d2 <- dsurvspline(1, gamma=gamma) expect_equal(d1, d2) scale <- exp(-gamma[1]/gamma[2]) d1 <- dweibullPH(1, shape=gamma[2], scale= scale^{-gamma[2]}) d1 <- dllogis(1, shape=gamma[2], scale= exp(-gamma[1]/gamma[2])) d2 <- dsurvspline(1, gamma=gamma, scale="odds") expect_equal(d1, d2) d1 <- dlnorm(1, meanlog=-gamma[1]/gamma[2], sdlog=1/gamma[2]) d2 <- dsurvspline(1, gamma=gamma, scale="normal") expect_equal(d1, d2) # TODO document #H1 <- Hlnorm(1, meanlog, sdlog) #H2 <- Hsurvspline(1, gamma = c(-meanlog/sdlog, 1/sdlog), scale="normal") #expect_equal(H1, H2) g <- c(0.1, 0.2, 0.3); k <- c(2,3,4) expect_equal(dsurvspline(1,g,knots=k)/(1 - psurvspline(1,g,knots=k)), hsurvspline(1,g,knots=k)) expect_equal(dsurvspline(1,g,knots=k,scale="odds")/(1 - psurvspline(1,g,knots=k,scale="odds")), hsurvspline(1,g,knots=k,scale="odds")) expect_equal(dsurvspline(1,g,knots=k,scale="normal")/(1 - psurvspline(1,g,knots=k,scale="normal")), hsurvspline(1,g,knots=k,scale="normal")) expect_equal(-log(1 - psurvspline(0.2,g,knots=k)), Hsurvspline(0.2,g,knots=k)) expect_equal(-log(1 - psurvspline(0.2,g,knots=k,scale="odds")), Hsurvspline(0.2,g,knots=k,scale="odds")) expect_equal(-log(1 - psurvspline(0.2,g,knots=k,scale="normal")), Hsurvspline(0.2,g,knots=k,scale="normal")) expect_equal(dsurvspline(c(-1,0,NA,NaN,Inf), g, knots=k), c(0,0,NA,NA,NaN)) expect_equal(psurvspline(qsurvspline(0.2,g,knots=k), g, knots=k), 0.2) expect_equal(qsurvspline(psurvspline(0.2,g,knots=k), g, knots=k), 0.2) ## Vectorised q and p functions, through qgeneric kvec <- rbind(k, k+1) gvec <- rbind(g, g*1.1) expect_equal(psurvspline(qsurvspline(0.2,gvec,knots=kvec), gvec, knots=kvec), c(0.2,0.2)) expect_equal(qsurvspline(psurvspline(0.2,gvec,knots=kvec), gvec, knots=kvec), c(0.2,0.2)) expect_equal(psurvspline(c(NA,NaN,-1,0), gamma=c(1,1), knots=c(-10, 10)), c(NA,NA,0,0)) expect_equal(qsurvspline(c(0,1), gamma=c(1,1), knots=c(-10, 10)), c(-Inf, Inf)) expect_equal(1 - psurvspline(1, g, knots=k), psurvspline(1, g, knots=k, lower.tail=FALSE)) expect_equal(log(psurvspline(c(-1,NA,1), g, knots=k)), psurvspline(c(-1,NA,1), g, knots=k, log.p=TRUE)) ## single x=0: fully defined in in dbase.survspline expect_equal(dsurvspline(0, g, knots=k), 0) ## value for x=0? currently zero, should it be limit as x reduces to 0? expect_equal(hsurvspline(0, g, knots=k), 0) if(0){ bc$foo <- factor(sample(1:3, nrow(bc), replace=TRUE)) spl <- flexsurvspline(Surv(recyrs, censrec) ~ group + foo, data=bc, k=0) system.time(hist(rsurvspline(1000, gamma=c(log(1 / b^a), a)), prob=TRUE)) system.time(hist(rsurvspline(10000, gamma=c(log(1 / b^a), a)), prob=TRUE)) x <- 1:50 lines(x, dweibull(x, a, b)) } }) spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1) gamma <- spl$res[c("gamma0","gamma1","gamma2"), "est"] gamma_mat <- rbind(gamma, gamma*1.1) gamma0_vec <- gamma_mat[,"gamma0"] gamma1_vec <- gamma_mat[,"gamma1"] gamma2_vec <- gamma_mat[,"gamma2"] spl2 <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=2) gamma2k <- spl2$res[c("gamma0","gamma1","gamma2","gamma3"), "est"] k2 <- spl2$knots spl3 <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=3) gamma3k <- spl3$res[c("gamma0","gamma1","gamma2","gamma3","gamma4"), "est"] k3 <- spl3$knots test_that("fixed-knot convenience wrappers",{ gamma0 <- gamma["gamma0"]; gamma1 <- gamma["gamma1"]; gamma2 <- gamma["gamma2"] expect_equal(mean_survspline(gamma=gamma, knots=spl$knots, scale=spl$scale), mean_survspline1(gamma0, gamma1, gamma2, knots=spl$knots, scale=spl$scale)) expect_equal(mean_survspline(gamma, knots=spl$knots), mean_survspline1(gamma[1], gamma[2], gamma[3], knots=spl$knots)) expect_equal(mean_survspline(rbind(gamma,gamma), knots=spl$knots), mean_survspline1(c(gamma[1],gamma[1]), gamma[2], gamma[3], knots=spl$knots)) expect_equal(mean_survspline(gamma_mat, knots=spl$knots), mean_survspline1(c(gamma_mat[1,1], gamma_mat[2,1]), c(gamma_mat[1,2], gamma_mat[2,2]), c(gamma_mat[1,3], gamma_mat[2,3]), knots=spl$knots)) expect_equal(c( mean_survspline(gamma=gamma_mat[1,], knots=spl$knots, scale=spl$scale), mean_survspline(gamma=gamma_mat[2,], knots=spl$knots, scale=spl$scale)), mean_survspline(gamma=gamma_mat, knots=spl$knots, scale=spl$scale)) expect_equal(mean_survspline(gamma=gamma_mat, knots=spl$knots, scale=spl$scale), rmst_generic(psurvspline, t=c(Inf,Inf), gamma = gamma_mat, knots=spl$knots, matargs = c("gamma","knots"))) expect_is(summary(spl, fn=mean_survspline1, t=1, ci=FALSE), "list") expect_is(summary(spl, fn=mean_survspline1, t=1, ci=FALSE), "list") expect_equal(psurvspline(1, gamma, knots=spl$knots, scale=spl$scale), psurvspline1(1, gamma0, gamma1, gamma2, knots=spl$knots, scale=spl$scale)) expect_equal( psurvspline(1, gamma_mat, knots=spl$knots, scale=spl$scale), psurvspline1(1, gamma0_vec, gamma1_vec, gamma2_vec, knots=spl$knots, scale=spl$scale)) expect_equal(hsurvspline(1, gamma, knots=spl$knots, scale=spl$scale), hsurvspline1(1, gamma0, gamma1, gamma2, knots=spl$knots, scale=spl$scale)) expect_equal(Hsurvspline(1, gamma, knots=spl$knots, scale=spl$scale), Hsurvspline1(1, gamma0, gamma1, gamma2, knots=spl$knots, scale=spl$scale)) expect_equal(hsurvspline(1, gamma_mat, knots=spl$knots, scale=spl$scale), hsurvspline1(1, gamma0_vec, gamma1_vec, gamma2_vec, knots=spl$knots, scale=spl$scale)) expect_equal(Hsurvspline(1, gamma_mat, knots=spl$knots, scale=spl$scale), Hsurvspline1(1, gamma0_vec, gamma1_vec, gamma2_vec, knots=spl$knots, scale=spl$scale)) gamma0 <- gamma2k["gamma0"]; gamma1 <- gamma2k["gamma1"]; gamma2 <- gamma2k["gamma2"]; gamma3 <- gamma2k["gamma3"] expect_equal(psurvspline(1, gamma2k, knots=k2), psurvspline2(1, gamma0, gamma1, gamma2, gamma3, knots=k2)) expect_equal(dsurvspline(1, gamma2k, knots=k2, scale=spl$scale), dsurvspline2(1, gamma0, gamma1, gamma2, gamma3, knots=k2)) expect_equal(qsurvspline(0.4, gamma2k, knots=k2, scale=spl$scale), qsurvspline2(0.4, gamma0, gamma1, gamma2, gamma3, knots=k2)) expect_equal(qsurvspline(0.4, gamma2k, knots=k2, lower.tail=FALSE), qsurvspline2(0.4, gamma0, gamma1, gamma2, gamma3, knots=k2, lower.tail=FALSE)) set.seed(1); r1 <- rsurvspline(10, gamma2k, knots=k2) set.seed(1); r2 <- rsurvspline2(10, gamma0, gamma1, gamma2, gamma3, knots=k2) expect_equal(r1, r2) gamma4 <- 0.01; gamma3k <- c(gamma2k, gamma4) expect_equal(psurvspline(1, gamma3k, knots=k3, scale=spl$scale), psurvspline3(1, gamma0, gamma1, gamma2, gamma3, gamma4, knots=k3)) expect_equal(dsurvspline(1, gamma3k, knots=k3, scale=spl$scale), dsurvspline3(1, gamma0, gamma1, gamma2, gamma3, gamma4, knots=k3)) expect_equal(qsurvspline(0.4, gamma3k, knots=k3, scale=spl$scale), qsurvspline3(0.4, gamma0, gamma1, gamma2, gamma3, gamma4, knots=k3)) expect_equal(qsurvspline(0.4, gamma3k, knots=k3, lower.tail=FALSE), qsurvspline3(0.4, gamma0, gamma1, gamma2, gamma3, gamma4, knots=k3, lower.tail=FALSE)) set.seed(1); r1 <- rsurvspline(10, gamma3k, knots=k3) set.seed(1); r2 <- rsurvspline3(10, gamma0, gamma1, gamma2, gamma3, gamma4, knots=k3) expect_equal(r1, r2) }) test_that("removing support for beta, X and offset",{ gamma <- c(0.1, 0.2) d2 <- dsurvspline(1, gamma=gamma) expect_warning(d2 <- dsurvspline(1, gamma=gamma, beta = 0.1)) expect_warning(d2 <- dsurvspline(1, gamma=gamma, X = 0.1)) expect_warning(d2 <- dsurvspline(1, gamma=gamma, offset = 0.1)) suppressWarnings({ d3 <- dsurvspline(1, gamma=gamma, X = 0.1) expect_equal(d2, d3) }) }) flexsurv/tests/testthat/test_aic.R0000644000176200001440000000137514470676366017101 0ustar liggesuserstest_that("Information criteria",{ p <- 3 n <- nrow(ovarian) fitg <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma") expect_equal(nobs(fitg), n) AIC(fitg) expect_equal(BIC(fitg), AIC(fitg, k=log(n))) nevent <- sum(ovarian$fustat) expect_equal(BIC(fitg, cens=FALSE), AIC(fitg, k=log(nevent))) expect_equal(BIC(fitg), BIC.flexsurvreg(fitg)) expect_equal(BIC(fitg,cens=FALSE), BIC.flexsurvreg(fitg,cens=FALSE)) expect_equal(AICc(fitg), AIC(fitg, k=(2*n) / (n - p - 1))) expect_equal(AICc(fitg,cens=FALSE), AIC(fitg, k=(2*nevent) / (nevent - p - 1))) expect_equal(AICC(fitg), AICc(fitg)) expect_equal(AICc.flexsurvreg(fitg), AICc(fitg)) expect_equal(AICC.flexsurvreg(fitg), AICc(fitg)) }) flexsurv/tests/testthat/simulate.R0000644000176200001440000000160214020431707017075 0ustar liggesusers test_that("Simulation with no covariates",{ fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="gengamma") sim <- simulate(fitg) expect_true(is.data.frame(sim)) }) test_that("Simulation with covariates",{ ovarian$rx2 <- as.numeric(ovarian$rx == 2) fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ rx2, data = ovarian, dist="gamma") sim <- simulate(fitg, nsim=1) expect_true(is.data.frame(sim)) sim <- simulate(fitg, nsim=2) expect_true(is.data.frame(sim)) sim <- simulate(fitg, nsim=2, censtime=5) expect_true(is.data.frame(sim)) sim <- simulate(fitg, nsim=2, censtime=seq(5, 10, length.out = nrow(ovarian))) expect_true(is.data.frame(sim)) }) test_that("Setting seed makes simulations reproducible",{ sim1 <- simulate(fitg, nsim=2, censtime=5, seed=2) sim2 <- simulate(fitg, nsim=2, censtime=5, seed=2) expect_equal(sim1, sim2) }) flexsurv/tests/testthat/test_residuals.R0000644000176200001440000000106114564157676020332 0ustar liggesuserstest_that("residuals",{ fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") expect_true(is.numeric(residuals(fitg, type="response"))) expect_true(is.numeric(residuals(fitg, type="coxsnell"))) cs <- coxsnell_flexsurvreg(fitg) surv <- survfit(Surv(cs$est, ovarian$fustat) ~ 1) if (interactive()){ plot(surv, fun="cumhaz", xlim=c(0,1), ylim=c(0,1)) abline(0, 1, col="red") } expect_lt(max(surv$cumhaz[-1] / surv$time[-1]), 1.5) expect_gt(min(surv$cumhaz[-1] / surv$time[-1]), 0.5) }) flexsurv/tests/testthat/test_genf.R0000644000176200001440000001257414472141270017246 0ustar liggesuserscontext("Generalized F distribution") tol <- 1e-06 test_that("Generalized F", { expect_equal(dgenf(c(-1,1,2,3,4), mu=0, sigma=1, Q=0, P=1), # FIXME add limiting value for x=0 c(0, 0.353553390593274, 0.140288989252053, 0.067923038519582, 0.038247711235678), tolerance=tol) expect_error(Hgenf(c(-1,1,2,3,4), mu=0, sigma=1, P=1), "argument \"Q\" is missing") expect_error(Hgenf(c(-1,1,2,3,4), mu=0, sigma=1, Q=1), "argument \"P\" is missing") expect_error(dgenf(1, mu=numeric(), sigma=numeric(), Q=numeric(), P=numeric()), "zero length") }) test_that("Generalized F reduces to generalized gamma: d",{ expect_equal(dgenf(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=0, P=0), dgengamma(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=0)) x <- c(-1,0,1,2,3,4); mu <- 2.2; sigma <- 1.6; Q <- 0.2; P <- 1.2 delta <- (Q^2 + 2*P)^{1/2} s1 <- 2 / (Q^2 + 2*P + Q*delta); s2 <- 2 / (Q^2 + 2*P - Q*delta) expect_equal(dgenf(x, mu=mu, sigma=sigma, Q=Q, P=P), dgenf.orig(x, mu=mu, sigma=sigma/delta, s1=s1, s2=s2)) expect_equal(dgenf(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=c(0,1,2), P=0), dgengamma(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=c(0,1,2))) }) x <- c(-1,1,2,3,4); mu <- 2.2; sigma <- 1.6; Q <- 0; P <- 1 delta <- (Q^2 + 2*P)^{1/2} s1 <- 2 / (Q^2 + 2*P + Q*delta); s2 <- 2 / (Q^2 + 2*P - Q*delta) test_that("Generalized F reduces to log logistic", { expect_equal(dgenf(x, mu=mu, sigma=sigma, Q=Q, P=P), dllogis(x, shape=sqrt(2)/sigma, scale=exp(mu)), tolerance=tol) }) test_that("Generalized F reduces to gamma",{ expect_equal(dgengamma(x, mu=mu, sigma=sigma, Q=sigma), dgamma(x, shape=1/sigma^2, scale=exp(mu)*sigma^2)) }) test_that("Generalized F reduces to generalized gamma: p",{ expect_equal(pgenf(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=0, P=1), c(0, 0, 0.5, 0.727159434644773, 0.825443507527843, 0.876588815661789)) expect_equal(pgenf(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=0, P=0), pgengamma(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=0)) expect_equal(pgenf(x, mu=mu, sigma=sigma, Q=Q, P=P), pgenf.orig(x, mu=mu, sigma=sigma/delta, s1=s1, s2=s2)) }) test_that("Generalized F reduces to generalized gamma: q",{ expect_equal(qgenf(p=0.25, mu=0, sigma=1, Q=0, P=1), 0.459858613264917) expect_equal(qgenf(p=0.25, mu=0, sigma=1, Q=0, P=1), qgeneric(pgenf, p=0.25, mu=0, sigma=1, Q=0, P=1)) expect_equal(qgenf(p=0, mu=0, sigma=1, Q=0, P=1), 0) expect_equal(qgenf(p=0.25, mu=0, sigma=1, Q=0, P=0), qgengamma(p=0.25, mu=0, sigma=1, Q=0)) expect_equal(qgenf(pgenf(q=c(-2,-1,0,1,2,3,4), mu=0, sigma=1, Q=0, P=1), mu=0, sigma=1, Q=0, P=1), c(0,0,0,1,2,3,4)) expect_equal(qgenf(pgenf(q=c(-2,-1,0,1,2,3,4), mu=0, sigma=1, Q=-1, P=1), mu=0, sigma=1, Q=-1, P=1), c(0,0,0,1,2,3,4)) expect_equal(qgengamma(pgenf(q=c(-2,-1,0,1,2,3,4), mu=0, sigma=1, Q=0, P=0), mu=0, sigma=1, Q=0), c(0,0,0,1,2,3,4)) x <- c(0.1,0.4,0.6) expect_equal(qgenf(x, mu=mu, sigma=sigma, Q=Q, P=P), qgenf.orig(x, mu=mu, sigma=sigma/delta, s1=s1, s2=s2)) }) test_that("Generalized F reduces to generalized gamma: r",{ rgenf(n=10, mu=0, sigma=1, Q=0, P=1) set.seed(22061976) x <- rgenf(n=10, mu=0, sigma=1, Q=0, P=0) set.seed(22061976) y <- rgengamma(n=10, mu=0, sigma=1, Q=0) expect_equal(x, y) if (interactive()) { x <- c(-1,0,1,2,3,4); mu <- 2.2; sigma <- 0.6; Q <- 0.2; P=0.1 delta <- (Q^2 + 2*P)^{1/2} s1 <- 2 / (Q^2 + 2*P + Q*delta); s2 <- 2 / (Q^2 + 2*P - Q*delta) plot(density(rgenf(10000, mu=mu, sigma=sigma, Q=Q, P=P))) lines(density(rgenf.orig(10000, mu=mu, sigma=sigma/delta, s1=s1, s2=s2)), lty=2) } }) test_that("Gives errors",{ expect_warning(dgenf(c(1,1), 1, -2, 1, -1), "Negative scale") expect_warning(dgenf(c(1,1), 1, -2, 1, -1), "Negative shape") expect_warning(pgenf(1, 1, -2, 1, 1), "Negative") expect_warning(qgenf(0.1, 1, -2, 1, 0), "Negative") expect_warning(rgenf(4, 1, -2, 1, 1), "Negative") }) test_that("Avoid underflow in pgenf",{ mu <- 7.495875 sigma <- 0.35362 Q <- 0.4572124 P <- 16.68415 tmp <- Q * Q + 2*P delta <- sqrt(tmp) s1 <- 2 / (tmp + Q*delta) s2 <- 2 / (tmp - Q*delta) xlow <- 80 expw <- xlow^(delta/sigma) * exp(-mu*delta/sigma) pbeta(s2/(s2 + s1*expw), s2, s1, lower.tail=FALSE) # underflows pbeta(s1*expw/(s2 + s1*expw), s1, s2, lower.tail=TRUE) # works expect_equal(pgenf(xlow, mu, sigma, Q, P), 0.03214437, tolerance=1e-05) xmid <- 3000 expw <- xmid^(delta/sigma) * exp(-mu*delta/sigma) pbeta(s2/(s2 + s1*expw), s2, s1, lower.tail=FALSE) pbeta(s1*expw/(s2 + s1*expw), s1, s2, lower.tail=TRUE) # both work expect_equal(pgenf(xmid, mu, sigma, Q, P), 0.7276473, tolerance=1e-05) xhi <- 1e+5 expw <- xhi^(delta/sigma) * exp(-mu*delta/sigma) pbeta(s2/(s2 + s1*expw), s2, s1, lower.tail=FALSE) # works pbeta(s1*expw/(s2 + s1*expw), s1, s2, lower.tail=TRUE) # underflows expect_equal(pgenf(xhi, mu, sigma, Q, P), 0.9933716, tolerance=1e-05) }) ## When x is small, thus s2/(s2 + s1*expw) is close to 1, use second pbeta construction ## When x is high, thus s2/(s2 + s1*expw) is close to 0, use first pbeta construction flexsurv/tests/testthat/test_gengamma_orig.R0000644000176200001440000000522713231112051021103 0ustar liggesuserscontext("Generalized gamma (original)") test_that("Generalized gamma (original)",{ expect_equal(dgengamma.orig(c(-1,0,1,2,3,4), shape=1.2, scale=1.3, k=1.4), c(0, 0, 0.419477559803262, 0.260699967439176, 0.120081193404263, 0.0474236822588797)) expect_equal(dgengamma.orig(c(1,2,3,4), shape=1.2, scale=1.3, k=1), dweibull(c(1,2,3,4), shape=1.2, scale=1.3)) expect_equal(dgengamma.orig(c(1,2,3,4), shape=1, scale=1.3, k=1), dexp(c(1,2,3,4), rate=1/1.3)) expect_equal(dgengamma.orig(c(1,2,3,4), shape=1, scale=1.3, k=1.4), dgamma(c(1,2,3,4), shape=1.4, scale=1.3)) shape <- 1.2; scale <- 1.3; k <- 10000 pgengamma.orig(2800 + 1:4, shape=shape, scale=scale, k=k) plnorm(2800 + 1:4, log(scale) + log(k)/shape, 1/(shape*sqrt(k))) expect_equal(pgengamma.orig(c(1,2,3,4), shape=1.2, scale=1.3, k=1), pweibull(c(1,2,3,4), shape=1.2, scale=1.3)) expect_equal(pgengamma.orig(c(1,2,3,4), shape=1, scale=1.3, k=1), pexp(c(1,2,3,4), rate=1/1.3)) expect_equal(pgengamma.orig(c(1,2,3,4), shape=1, scale=1.3, k=1.4), pgamma(c(1,2,3,4), shape=1.4, scale=1.3)) expect_equal(qgengamma.orig(p=0.25, shape=1.2, scale=1.3, k=1), qgeneric(pgengamma.orig, p=0.25, shape=1.2, scale=1.3, k=1)) expect_equal(qgengamma.orig(c(0.1, 0.4, 0.7), shape=1.2, scale=1.3, k=1), qweibull(c(0.1, 0.4, 0.7), shape=1.2, scale=1.3)) expect_equal(qgengamma.orig(c(0.1, 0.4, 0.7), shape=1, scale=1.3, k=1), qexp(c(0.1, 0.4, 0.7), rate=1/1.3)) expect_equal(qgengamma.orig(c(0.1, 0.4, 0.7), shape=1, scale=1.3, k=1.4), qgamma(c(0.1, 0.4, 0.7), shape=1.4, scale=1.3)) if (interactive()){ plot(density(rgengamma.orig(100000, shape=1.2, scale=1.3, k=1))) lines(density(rweibull(100000, shape=1.2, scale=1.3)), lty=2) plot(density(rgengamma.orig(100000, shape=1, scale=1.5, k=1))) lines(density(rexp(100000, rate=1/1.5)), lty=2) plot(density(rgengamma.orig(100000, shape=1, scale=3.3, k=1.2))) lines(density(rgamma(100000, shape=1.2, scale=3.3)), lty=2) } }) test_that("Gives errors", { expect_warning(dgengamma.orig(c(1,2,3,4), shape=-1.2, scale=-1.3, k=-1), "Negative shape") expect_warning(dgengamma.orig(c(1,2,3,4), shape=-1.2, scale=-1.3, k=-1), "Negative scale") expect_warning(dgengamma.orig(c(1,2,3,4), shape=c(-1.2, 1), scale=1.3, k=1), "Negative shape") expect_warning(pgengamma.orig(c(1,2,3,4), shape=-1.2, scale=-1.3, k=-1), "Negative") expect_warning(qgengamma.orig(c(1,2,3,4), shape=-1.2, scale=-1.3, k=-1), "Negative") expect_warning(rgengamma.orig(3, shape=-1.2, scale=-1.3, k=-1), "Negative") }) flexsurv/tests/testthat/test_gompertz.R0000644000176200001440000000634314472142437020201 0ustar liggesuserscontext("Testing Gompertz") test_that("dgompertz",{ x <- c(-1,0,1,2,3,4) expect_equal(dgompertz(x, shape=0.1, rate=0.2), c(0, 0.2, 0.179105591827508, 0.156884811322895, 0.134101872197705, 0.111571759992743)) dgompertz(x, shape=0.0001, rate=0.2) dgompertz(x, shape=-0.0001, rate=0.2) dexp(x, rate=0.2) expect_equal(dgompertz(x, shape=0, rate=0.2), dexp(x, rate=0.2)) d <- numeric(6); for (i in 1:6) d[i] <- dgompertz(x[i], shape=-0.0001, rate=i/5) expect_equal(d, dgompertz(x, shape=-0.0001, rate=1:6/5)) expect_warning(dgompertz(x, shape=-0.0001, rate=-1), "Negative rate") expect_error(dgompertz(x, shape=numeric(), rate=numeric()), "zero length vector") expect_error(dgompertz(numeric, shape=1), "Non-numeric") expect_error(dgompertz(1, shape="wibble"), "Non-numeric") }) test_that("pgompertz",{ x <- c(-1,0,1,2,3,4) pgompertz(x, shape=0, rate=0.2) pgompertz(x, shape=0.001, rate=0.2) pgompertz(x, shape=-0.001, rate=0.2) expect_equal(pgompertz(x, shape=0, rate=0.2), pexp(x, rate=0.2)) p <- numeric(6); for (i in 1:6) p[i] <- pgompertz(x[i], shape=-0.0001, rate=i/5) expect_equal(p, pgompertz(x, shape=-0.0001, rate=1:6/5)) expect_equal(p, 1 - exp(-Hgompertz(x, shape=-0.0001, rate=1:6/5))) expect_warning(pgompertz(x, shape=-0.0001, rate=-1), "Negative rate") }) test_that("qgompertz",{ x <- c(0.1, 0.2, 0.7) expect_equal(qgompertz(x, shape=0.1, rate=0.2), qgeneric(pgompertz, p=x, shape=0.1, rate=0.2)) expect_equal(qgompertz(x, shape=0, rate=0.2), qexp(x, rate=0.2)) expect_equal(x, pgompertz(qgompertz(x, shape=0.1, rate=0.2), shape=0.1, rate=0.2)) q <- numeric(3); for (i in 1:3) q[i] <- qgompertz(x[i], shape=-0.0001, rate=i/5) expect_equal(q, qgompertz(x, shape=-0.0001, rate=1:3/5)) x <- c(0.5, 1.06, 4.7) expect_equal(x, qgompertz(pgompertz(x, shape=0.1, rate=0.2), shape=0.1, rate=0.2)) q <- numeric(3); for (i in 1:3) q[i] <- qgompertz(x[i], shape=-0.0001, rate=i/5) expect_equal(q, qgompertz(x, shape=-0.0001, rate=1:3/5)) qgompertz(p=c(-1, 0, 1, 2), 1, 1) }) test_that("Gompertz with chance of living forever",{ shape <- -0.6; rate <- 1.8 x <- c(0.8, 0.9, 0.97, 0.99) expect_equal(qgompertz(x, shape=shape, rate=rate), c(1.28150707286845, 2.4316450975351, Inf, Inf)) # qgeneric(pgompertz, p=x, shape=shape, rate=rate) # won't work - needs smoothness expect_equal(pgompertz(Inf, shape=shape, rate=rate, lower.tail = F), exp(rate/shape)) expect_equal( pgompertz(Inf, shape=shape, rate=rate, lower.tail = F), pgompertz(9999999, shape=shape, rate=rate, lower.tail = F) ) }) test_that("Gompertz hazards",{ expect_equal(hgompertz(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3)), dgompertz(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3)) / (1 - pgompertz(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3)))) expect_equal(Hgompertz(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3)), -pgompertz(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3), lower.tail=FALSE, log.p=TRUE)) ## reduction to exponential expect_equal(hgompertz(c(2,4), c(0,0), c(2,2)), hexp(c(2,4), c(2,2))) expect_equal(Hgompertz(c(2,4), c(0,0), c(2,2)), Hexp(c(2,4), c(2,2))) }) flexsurv/tests/testthat/test_spline.R0000644000176200001440000003675314645517220017632 0ustar liggesuserscontext("flexsurvspline model fits") suppressWarnings(RNGversion("3.5.0")) set.seed(11082012) bc$foo <- factor(sample(1:3, nrow(bc), replace=TRUE)) spl <- flexsurvspline(Surv(recyrs, censrec) ~ group + foo, data=bc, k=0) test_that("Basic flexsurvspline, Weibull",{ expect_equal(spl$loglik, -810.926859076725, tol=1e-06) }) test_that("flexsurvspline summary method",{ summ <- summary(spl, B=3)$"group=Good,foo=1" expect_equal(summ$est[1],0.999838214156694, tol=1e-05) expect_true(all(summ$est > summ$lcl)) expect_true(all(summ$est < summ$ucl)) expect_true(all(summ$ucl < 1)) expect_true(all(summ$lcl > 0)) summ <- summary(spl, type="survival", B=3, t=0:5)$`group=Good,foo=1` expect_equal(summ$est[2], 0.9684014494284117, tol=1e-05) summ <- summary(spl, type="cumhaz", B=3, t=0:5)$`group=Good,foo=1` expect_equal(summ$est[2], 0.03210855719443461, tol=1e-05) summ <- summary(spl, type="hazard", B=3, t=0:5)$`group=Good,foo=1` expect_equal(summ$est[2], 0.04446356223043756, tol=1e-05) }) if (covr::in_covr() || interactive()){ test_that("flexsurvspline plot method",{ expect_no_error({ plot(spl, col=c("red","blue","green")) plot(spl, ci=TRUE, B=40) plot(spl, type="cumhaz") plot(spl, type="hazard") plot(spl, type="hazard", ci=TRUE, B=40) ## multicoloured plots plot(spl, col=c("red","purple","blue","green","brown","black","orange","yellow","pink")) plot(spl, lwd=1) lines(spl, X=rbind(c(0,0,0,0)), col="red") lines(spl, X=rbind(c(1,0,0,0)), col="purple") lines(spl, X=rbind(c(0,1,0,0)), col="blue") legend("bottomleft", levels(bc$group), col=c("red","purple","blue"), lwd=2) }) }) } test_that("Basic flexsurvspline, Weibull, no covs",{ spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=0) expect_equal(-873.207054864145, spl$loglik, tol=1e-06) }) test_that("Basic flexsurvspline, one knot, best fitting in paper",{ skip_if(covr::in_covr()) # optimisation for scale="odds" doesn't converge under covr for some reason spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1, scale="odds") expect_equal(spl$loglik, -788.981901798638, tol=1e-05) expect_equal(spl$loglik + sum(log(bc$recyrs[bc$censrec==1])), -615.49431514184, tol=1e-05) expect_equal(spl$AIC + sum(log(bc$recyrs[bc$censrec==1])), 1761.45139087546, tol=1e-05) # #results from the paper expect_equal(as.numeric(coef(spl))[1:3], c(-3.451, 2.915, 0.191), tol=1e-03) expect_equal(as.numeric(spl$res[1:3,"se"]), c(0.203, 0.298, 0.044), tol=1e-03) if (interactive()) { plot(spl) plot(spl, type="cumhaz") plot(spl, type="haz") } }) test_that("Spline models with hazard and normal scales",{ splh <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1, scale="hazard") expect_equal(splh$loglik, -792.863797823674, tol=1e-05) spln <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1, scale="normal") expect_equal(spln$loglik, -785.623256840396, tol=1e-05) if (interactive()){ plot(spl, ci=TRUE, lwd.ci=1, B=30) lines(splh, col="blue", ci=TRUE, B=30) lines(spln, col="green", ci=TRUE, B=30) } }) ### log(H(t)) = g0 + g1 log(t) + Bz ### H(t) = exp(g0) t^g1 exp(Bz) ### S(t) = exp(-H(t)) = exp( - exp(g0) t^g1 exp(Bz) ) ### pweibull has par exp( - (x/b) ^ a) ### a = g1, 1/b^a = exp(g0 + Bz) = b ^ -a = exp(-a log b) ### g0 + Bz = - a (log b + Bz) test_that("Spline proportional hazards models reduce to Weibull",{ wei <- survreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") wei.base <- survreg(Surv(recyrs, censrec) ~ 1, data=bc, dist="weibull") a <- 1/wei$scale b1 <- exp(coef(wei)[1]); b2 <- exp(coef(wei)[1]+coef(wei)[2]); b3 <- exp(coef(wei)[1]+coef(wei)[3]) a.base <- 1/wei.base$scale b.base <- exp(coef(wei.base[1])) ## Compare three implementations of the Weibull, with and without covs fit <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull", fixedpars=FALSE, inits=c(a,b1,coef(wei)[2:3])) spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=0, inits=c(-a*log(b1), a, -a*coef(wei)[2:3]), fixedpars=FALSE) expect_equal(fit$loglik, spl$loglik) expect_equal(fit$loglik, wei$loglik[2]) fit <- flexsurvreg(Surv(recyrs, censrec) ~ 1, data=bc, dist="weibull", fixedpars=FALSE, inits=c(a,b1)) # NaNs here dues to zeroes for dweibull being visited by optimiser spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=0, inits=c(log(1 / b.base^a.base), a.base), fixedpars=FALSE) expect_equal(fit$loglik, spl$loglik) expect_equal(fit$loglik, wei.base$loglik[1]) }) test_that("Spline proportional odds models reduce to log-logistic",{ skip_if(covr::in_covr()) # optimisation for fitsp doesn't converge under covr for some reason fitll <- flexsurvreg(formula = Surv(recyrs, censrec) ~ 1, data = bc, dist="llogis") fitsp <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=0, scale="odds", control=list(reltol=1e-16), fixedpars=FALSE) expect_equal(fitsp$loglik, fitll$loglik) expect_equal(1/fitll$res["scale",1]^fitll$res["shape",1], exp(fitsp$res["gamma0",1]), tol=1e-02) expect_equal(fitsp$res["gamma1",1], fitll$res["shape",1], tol=1e-02) }) test_that("Spline normal models reduce to log-normal",{ fitln <- flexsurvreg(formula = Surv(recyrs, censrec) ~ 1, data = bc, dist="lnorm") fitsp <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=0, scale="normal") expect_equal(fitsp$res["gamma0",1], -fitln$res["meanlog",1]/fitln$res["sdlog",1], tol=1e-02) expect_equal(fitsp$res["gamma1",1], 1 /fitln$res["sdlog",1], tol=1e-02) }) test_that("Spline models with time-varying covariate effects",{ spl <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group), data=bc, knots=1) expect_equal(spl$loglik, -789.002098222827, tol=1e-04) expect_equal(spl$res["gamma1(groupMedium)","est"], -0.410859123437426, tol=1e-04) summ.g <- summary(spl, ci=FALSE, t=c(1,5,10))$`group=Good` expect_equal(summ.g$est[1], 0.9853637097617495, tol=1e-04) summ.m <- summary(spl, ci=FALSE, t=c(1,5,10))$`group=Medium` expect_equal(summ.m$est[1], 0.9391492993851021, tol=1e-04) summ2 <- summary(spl, ci=FALSE, t=c(1,5,10), newdata=data.frame(group=c("Good","Medium"))) expect_equal(summ2[[1]]$est[1], summ.g$est[[1]]) expect_equal(summ2[[2]]$est[1], summ.m$est[[1]]) spl2 <- flexsurvspline(Surv(recyrs, censrec) ~ group, anc=list(gamma1=~group), data=bc, knots=1) expect_equal(spl$loglik, spl2$loglik) if (interactive()) plot(spl) spl3 <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group), data=bc, k=2) if (interactive()) lines(spl3, col="blue") }) test_that("Spline models with left-truncation",{ bc2 <- bc[bc$recyrs>2,] (spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc2, k=0, fixedpars=TRUE)) expect_equal(spl$loglik, -951.4567686517325, tol=1e-06) expect_equal(spl$loglik, sum(spl$logliki), tol=1e-06) (spl <- flexsurvspline(Surv(rep(0, nrow(bc2)), recyrs, censrec) ~ 1, data=bc2, k=0)) expect_equal(spl$loglik, -432.9048860461514, tol=1e-06) spl <- flexsurvspline(Surv(rep(1.9, nrow(bc2)), recyrs, censrec) ~ 1, data=bc2, k=0) expect_equal(spl$loglik, -400.3556493114977, tol=1e-06) # if(interactive()) lines(spl, col="blue") # truncated model fits much better }) test_that("Spline models with weighting",{ wt <- rep(1, nrow(bc)); wt[1:30] <- 2 spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=0, weights=wt) wei <- flexsurvreg(Surv(recyrs, censrec) ~ 1, data=bc, dist="weibull", weights=wt) expect_equal(spl$loglik, wei$loglik, tol=1e-06) }) test_that("Spline models with relative survival",{ expect_error({ bc$bh <- rep(0.01, nrow(bc)) a <- 0.1; b <- 0.2 iniw <- c(a, b^(-a)) inis <- c(-a*log(b), a) spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=0, bhazard=bh, inits=inis, fixedpars=TRUE) wei <- flexsurvreg(Surv(recyrs, censrec) ~ 1, data=bc, dist="weibullPH", bhazard=bh, inits=iniw, fixedpars=TRUE) expect_equal(spl$loglik, wei$loglik, tol=1e-05) }, NA) }) test_that("flexsurvspline results match stpm in Stata",{ skip_if(covr::in_covr()) # optimisation for scale="odds" doesn't converge under covr for some reason ## Numbers copied from Stata output for equivalent stpm commands ## see ~/flexsurv/stpm/do1.do spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=0) expect_equal(spl$loglik + sum(log(bc$recyrs[bc$censrec==1])), -638.45432, tol=1e-05) expect_equal(as.numeric(spl$res[,"est"]), c(-3.360303, 1.379652, .8465394, 1.672433), tol=1e-02) spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=2) expect_equal(spl$loglik + sum(log(bc$recyrs[bc$censrec==1])), -674.75128, tol=1e-04) expect_equal(as.numeric(spl$res[,"est"]), c(-1.728339, 3.476179, .567432, -.3420749), tol=1e-02) spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=2, scale="odds") expect_equal(spl$loglik + sum(log(bc$recyrs[bc$censrec==1])), -675.271, tol=1e-04) spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=2, scale="normal") expect_equal(spl$loglik + sum(log(bc$recyrs[bc$censrec==1])), -675.73591 , tol=1e-04) ## stpm needs all or no ancillary pars to depend on covs ## not tested under stpm2 spl <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group) + gamma2(group) + gamma3(group), data=bc, k=2, scale="hazard") expect_equal(spl$loglik + sum(log(bc$recyrs[bc$censrec==1])), -607.47942, tol=1e-04) ## coefficients are the same to about 2sf }) test_that("Expected survival",{ spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1) gamma <- coef(spl)[1:3] surv <- function(x,...)psurvspline(q=x, gamma=gamma, knots=spl$knots, scale=spl$scale, lower.tail=FALSE, ...) expect_equal(integrate(surv, 0, 5)$value, 4.341222955052117, tol=1e-04) # For group="good" }) test_that("gamma in d/psurvspline can be matrix or vector",{ require(mvtnorm) boot <- rmvnorm(10, spl$opt$par, spl$cov) psurvspline(5, gamma=coef(spl)[1:2], knots=spl$knots, scale=spl$scale, lower.tail=FALSE) expect_equal(psurvspline(5, gamma=boot[3,1:2], knots=spl$knots, scale=spl$scale, lower.tail=FALSE), psurvspline(5, gamma=boot[,1:2], knots=spl$knots, scale=spl$scale, lower.tail=FALSE)[3]) dsurvspline(5, gamma=coef(spl)[1:2], knots=spl$knots, scale=spl$scale) expect_equal(dsurvspline(5, gamma=boot[3,1:2], knots=spl$knots, scale=spl$scale), dsurvspline(5, gamma=boot[,1:2], knots=spl$knots, scale=spl$scale)[3]) }) test_that("Errors in spline",{ expect_error(flexsurvspline(Surv(recyrs, censrec) ~ group + foo, data=bc, knots="foo"), "\"knots\" must be a numeric vector") expect_error(flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, knots=c(-5, 2)), "knot -5 less than or equal to minimum log time") expect_error(flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, knots=c(2)), "knot 2 greater than or equal to maximum log time") expect_error(flexsurvspline(Surv(recyrs, censrec) ~ group + foo, data=bc, k=0, bknots=c("foo")), "boundary knots should be") expect_error(flexsurvspline(Surv(recyrs, censrec) ~ group + foo, data=bc, k=0, bknots=c(0,1,2)), "boundary knots should be") expect_warning( flexsurvspline(Surv(recyrs, censrec) ~ foo, data=bc, subset=1:10, k=0, inits=c(1,1,0,0,0,0), fixedpars=TRUE) , "minimum and maximum log death times are the same") }) test_that("supplying knots",{ ldtimes <- log(bc$recyrs[bc$censrec==1]) expect_equal(flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1)$loglik, flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, knots=median(ldtimes), bknots=range(ldtimes))$loglik, tol=1e-08) expect_true(flexsurvspline(Surv(recyrs, censrec) ~ group + foo, data=bc, k=1)$loglik != flexsurvspline(Surv(recyrs, censrec) ~ group + foo, data=bc, k=1, bknots=c(-5, 2))$loglik) }) test_that("subset",{ subflex <- flexsurvspline(Surv(time = time, event = status) ~ sex + cut(age, 4), data = survival::lung, subset = !is.na(wt.loss)) subflex2 <- flexsurvspline(Surv(time = time, event = status) ~ sex + cut(age, 4), data = survival::lung[!is.na(survival::lung$wt.loss),]) expect_equal(subflex$loglik, subflex2$loglik, tol=1e-08) subflex <- flexsurvspline(Surv(time = time, event = status) ~ sex + cut(age, 4), data = survival::lung, subset = survival::lung$age > 60) # empty factor level in subset, should be dropped since 0.7 }) test_that("spline basis function with vector or matrix knots",{ expect_not_equal <- function(x,y)expect_true(!isTRUE(identical(x,y))) x <- c(1.5, 1.6) b1 <- basis(knots=0:3, x=x) knots_same <- matrix(rep(0:3,2),byrow=TRUE,nrow=2) knots_diff <- matrix(c(0:3, 0:3+0.1), byrow=TRUE, nrow=2) b2 <- basis(knots=knots_same, x=x) expect_equal(b1, b2) b3 <- basis(knots=knots_diff, x=x) expect_not_equal(b1, b3) b1 <- basis(knots=0:3, x=x, spline="splines2ns") b2 <- basis(knots=knots_same, x=x, spline="splines2ns") expect_equal(b1, b2) b3 <- basis(knots=knots_diff, x=x, spline="splines2ns") expect_equal(b1[1,], b3[1,]) expect_not_equal(b1, b3) }) test_that("splines2 orthogonal basis",{ spl_rp <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=2, spline="rp") spl_ns <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bc, k=2, spline="splines2ns") # fits better expect_equal(spl_ns$loglik, spl_rp$loglik, tol=1) p1 <- predict(spl_ns, type = "rmst", times = 500, newdata = tibble(age = 50)) p2 <- predict(spl_rp, type = "rmst", times = 500, newdata = tibble(age = 50)) expect_equal(p1$.pred_rmst, p2$.pred_rmst, tol=1e-01) spl_rp <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=2, spline="rp") spl_ns <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=2, spline="splines2ns") # fits better expect_equal(spl_rp$res["groupMedium","est"], spl_ns$res["groupMedium","est"], tol=1e-03) expect_equal(spl_rp$res["groupPoor","est"], spl_ns$res["groupPoor","est"], tol=1e-03) }) test_that("interval censored data",{ bc$recyrs1 <- bc$recyrs + 0.001 bci <- bc[bc$censrec==1,] ## knots chosen from interval midpoints spl1 <- flexsurvspline(Surv(recyrs, recyrs1, type="interval2") ~ 1, data=bci, k=1) spl <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bci, knots=spl1$knots[2], bknots=spl1$knots[c(1,3)]) expect_equal(spl1$res["gamma0","est"], spl$res["gamma0","est"], tol=1e-02) spl0 <- flexsurvspline(Surv(recyrs, censrec) ~ 1, data=bci, k=1) expect_equal(spl0$res["gamma0","est"], spl$res["gamma0","est"], tol=1e-02) }) test_that("spline with weights",{ set.seed(1) bc$w <- bc$recyrs # weight later obs splw <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, weights=w, k=1) spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1) expect_true(!isTRUE(identical(splw$knots, spl$knots))) ## knots chosen to account for weights, so should be higher in weighted model expect_lt(mean(spl$knots), mean(splw$knots)) }) flexsurv/tests/testthat/test_gengamma.R0000644000176200001440000001061414361010245020066 0ustar liggesuserscontext("Generalized gamma distribution") tol <- 1e-06 x <- c(-1,1,2,3,4); mu <- 2.2; sigma <- 1.6; Q <- 0; P <- 1 delta <- (Q^2 + 2*P)^{1/2} s1 <- 2 / (Q^2 + 2*P + Q*delta); s2 <- 2 / (Q^2 + 2*P - Q*delta) x <- c(-1,1,2,3,4); shape <- 2.2; scale <- 1.6; k <- 1.9 test_that("Generalized gamma reductions: d",{ expect_equal(dgengamma(c(-1,1,2,3,4), mu=0, sigma=1, Q=1), # FIXME value for x=0 and add here c(0, 0.367879441171442, 0.135335283236613, 0.0497870683678639, 0.0183156388887342)) expect_equal(dgengamma(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=0), dlnorm(c(-1,0,1,2,3,4), meanlog=0, sdlog=1)) expect_equal(dgengamma(c(-1,0,1,2,3,4), mu=0, sigma=1:3, Q=0), dlnorm(c(-1,0,1,2,3,4), meanlog=0, sdlog=1:3)) expect_equal(dgengamma(c(-1,0,1,2,3,4), mu=0, sigma=1:3, Q=0, log=TRUE), dlnorm(c(-1,0,1,2,3,4), meanlog=0, sdlog=1:3, log=TRUE)) expect_equal(dgengamma(c(1,2,3,4), mu=0.1, sigma=1.2, Q=1), dweibull(c(1,2,3,4), shape=1/1.2, scale=exp(0.1))) # only defined for x>0 anyway x <- c(1,2,3,4); mu <- 0.4; sigma <- 1.2 expect_equal(dgengamma(x, mu=mu, sigma=sigma, Q=sigma), dgamma(x, shape=1/sigma^2, scale=exp(mu)*sigma^2)) # FIXME add limiting value for x=0 expect_equal(dgengamma.orig(x, shape=shape, scale=scale, k=k), dgengamma(x, mu=log(scale) + log(k)/shape, sigma=1/(shape*sqrt(k)), Q=1/sqrt(k))) }) test_that("Generalized gamma reductions: p",{ expect_equal(pgengamma(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=1), c(0, 0, 0.632120558828558, 0.864664716763387, 0.950212931632136, 0.981684361111266)) expect_equal(pgengamma(c(-1,0,1,2,3,4), mu=0, sigma=1, Q=0), plnorm(c(-1,0,1,2,3,4), meanlog=0, sdlog=1)) expect_equal(pgengamma(c(-1,0,1,2,3,4), mu=0.1, sigma=1.2, Q=1), pweibull(c(-1,0,1,2,3,4), shape=1/1.2, scale=exp(0.1))) x <- c(1,2,3,4); mu <- 0.4; sigma <- 1.2 expect_equal(pgengamma(x, mu=mu, sigma=sigma, Q=sigma), pgamma(x, shape=1/sigma^2, scale=exp(mu)*sigma^2)) }) test_that("Generalized gamma reductions: q",{ expect_equal(qgengamma(p=0.25, mu=0, sigma=1, Q=1), 0.287682072451781) expect_equal(qgengamma(p=0.25, mu=0, sigma=1, Q=1), qgeneric(pgengamma, p=0.25, mu=0, sigma=1, Q=1)) expect_equal(qgengamma(p=0, mu=0, sigma=1, Q=1), 0) expect_equal(qgengamma(p=0.25, mu=0, sigma=1, Q=0), qlnorm(p=0.25, meanlog=0, sdlog=1)) expect_equal(qgengamma(p=0.25, mu=0, sigma=1.2, Q=0), qlnorm(p=0.25, meanlog=0, sdlog=1.2)) expect_equal(qgengamma(p=0.25, mu=0.1, sigma=1.2, Q=1), qweibull(p=0.25, scale=exp(0.1), shape=1/1.2)) expect_equal(qgengamma(pgengamma(q=c(-2,-1,0,1,2,3,4), mu=0, sigma=1, Q=1), mu=0, sigma=1, Q=1), c(0,0,0,1,2,3,4)) expect_equal(qgengamma(pgengamma(q=c(-2,-1,0,1,2,3,4), mu=0, sigma=1, Q=-1), mu=0, sigma=1, Q=-1), c(0,0,0,1,2,3,4)) expect_equal(qlnorm(pgengamma(q=c(-2,-1,0,1,2,3,4), mu=0, sigma=1.2, Q=0), meanlog=0, sdlog=1.2), c(0,0,0,1,2,3,4)) expect_equal(qlnorm(pgengamma(q=c(-2,-1,0,1,2,3,4), mu=0, sigma=1, Q=0, log.p=TRUE), meanlog=0, sdlog=1, log.p=TRUE), c(0,0,0,1,2,3,4)) expect_equal(qgengamma(p=0.25, mu=0, sigma=1, Q=1, lower.tail=TRUE), qgeneric(pgengamma, p=0.25, mu=0, sigma=1, Q=1, lower.tail=TRUE)) }) test_that("Generalized gamma reductions: r",{ rgengamma(n=10, mu=0, sigma=1, Q=0) set.seed(22061976) x <- rgengamma(n=10, mu=0, sigma=1.1, Q=0) set.seed(22061976) y <- rlnorm(n=10, meanlog=0, sdlog=1.1) expect_equal(x, y) }) test_that("Gives errors", { expect_warning(dgengamma(1, 1, -2, 1), "Negative") expect_warning(pgengamma(1, 1, -2, 1), "Negative") expect_warning(qgengamma(0.1, 1, -2, 1), "Negative") expect_warning(rgengamma(1, 1, -2, 1), "Negative") }) test_that("Generalized gamma definition in Stata manual",{ Sgg <- function(t, mu, sigma, kappa){ IGF <- function(a, x){ pgamma(x, a) } # incomplete gamma function gamma <- 1 / kappa^2 z <- (log(t) - mu)/sigma z[kappa<0] <- -z[kappa<0] # Stata manual uses sign(0) = 1 u <- gamma*exp(abs(kappa)*z) ifelse(kappa > 0, 1 - IGF(gamma, u), ifelse(kappa==0, 1 - pnorm(z), IGF(gamma, u))) } expect_equal( Sgg(c(1,2,3),c(-1,2,0.2),c(1,2,1),c(-1, 0, 1)), pgengamma(c(1,2,3),c(-1,2,0.2),c(1,2,1),c(-1, 0, 1), lower.tail=FALSE) ) }) flexsurv/tests/testthat/test_fmsm.R0000644000176200001440000000637314472153104017270 0ustar liggesusers#### Functions that summarise outputs from fmsm multi-state model objects ## Three state competing risks model for testing functions that only work on ## Markov models tmat <- rbind(c(NA,1,2),c(NA,NA,NA),c(NA,NA,NA)) set.seed(1) bosms3$x <- rnorm(nrow(bosms3)) bweic <- bweim <- vector(2, mode="list") for (i in 1:2) { bweic[[i]] <- flexsurvreg(Surv(years, status) ~ x, subset=(trans==i), data = bosms3, dist = "weibull") bweim[[i]] <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==i), data = bosms3, dist = "weibull") } weic <- fmsm("Well-BOS"=bweic[[1]], "Well-Death"=bweic[[2]], trans=tmat) weim <- fmsm("Well-BOS"=bweim[[1]], "Well-Death"=bweim[[2]], trans=tmat) nd <- data.frame(x=c(0,0.01,-10,10)) test_that("pfinal_fmsm", { expect_equal(pfinal_fmsm(weim, fromstate="State 1")$val, c(0.717737627151196, 0.282262372848804)) expect_error(pfinal_fmsm(weim, fromstate="State 2"), "No destination states") expect_equal(pfinal_fmsm(weic, newdata=nd, fromstate="State 1")$val[1:2], c(0.715828147070156, 0.715333178039627)) expect_true(is.numeric(pfinal_fmsm(weim, fromstate="State 1", B=3)$lower)) expect_equal(pfinal_fmsm(weim, fromstate="State 1", maxt=100000)$val, pfinal_fmsm(weim, fromstate="State 1", maxt=10000000)$val, tolerance=1e-06) expect_error(pfinal_fmsm(weim, fromstate="1"), "not found") }) test_that("simfinal_fmsm",{ set.seed(1) sm <- simfinal_fmsm(weim) expect_equal(sm$val[sm$quantity=="prob"], c(0.71758, 0.28242)) expect_equal(sm$val[sm$quantity=="50%"], c(2.25618202292384, 4.67377970752349)) sm2 <- simfinal_fmsm(weim, probs=c(0.25, 0.75)) sm3 <- simfinal_fmsm(weim, probs=c(0.25, 0.75), t=10000) expect_equal(sm2$val[sm$quantity=="prob"], sm3$val[sm$quantity=="prob"], tolerance=0.1) sm2 <- simfinal_fmsm(weim, probs=c(0.25, 0.75), M=1000, B=10) expect_error(simfinal_fmsm(weic), "`newdata` should be supplied") nd <- data.frame(x=c(0, 0.01)) simfinal_fmsm(weic, newdata=nd) simfinal_fmsm(weic, newdata=nd, M=1000, B=10) }) bosms3$hix <- factor(bosms3$x > 0, labels = c("lo","hi")) test_that("ajfit_fmsm", { expect_equal(ajfit_fmsm(weim, maxt=5)$val[1], 1) expect_error(ajfit_fmsm(weic, maxt=5, newdata=list(x=1)), "Nonparametric estimation not supported with non-factor") weicf <- fmsm( "Well-BOS"=flexsurvreg(Surv(years, status) ~ hix, subset=(trans==1), data = bosms3, dist = "weibull"), "Well-Death"=flexsurvreg(Surv(years, status) ~ hix, subset=(trans==2), data = bosms3, dist = "weibull"), trans=tmat ) expect_equal(ajfit_fmsm(weicf, maxt=5)$val[1], 1) expect_equal(ajfit_fmsm(weicf, maxt=5, newdata=data.frame(hix="lo"))$val[1], 1) weicfd <- fmsm( "Well-BOS"=flexsurvreg(Surv(years, status) ~ hix, subset=(trans==1), data = bosms3, dist = "weibull"), "Well-Death"=flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2), data = bosms3, dist = "weibull"), trans=tmat ) expect_error(ajfit_fmsm(weicfd, maxt=5), "Not currently supported with different covariates on different transitions") }) flexsurv/tests/testthat/test_hess.R0000644000176200001440000001723314633575437017305 0ustar liggesusersif (!identical(Sys.getenv("NOT_CRAN"), "true")) return() if (!require("numDeriv")) return() library(numDeriv) library(testthat) test_that("Weibull AFT Hessian",{ pars <- log(c(shape=1.2,scale=1.1)) lds <- function(pars){dweibull(2,exp(pars[1]),exp(pars[2]),log=TRUE)} expect_equivalent(grad(lds, pars), flexsurv:::DLdweibull(2, exp(pars[1]), exp(pars[2]))) expect_equivalent(hessian(lds, pars), D2Ldweibull(2, exp(pars[1]), exp(pars[2]))[1,,]) lss <- function(pars){pweibull(2,exp(pars[1]),exp(pars[2]),log=TRUE, lower.tail = FALSE)} expect_equivalent(grad(lss, pars), flexsurv:::DLSweibull(2, exp(pars[1]), exp(pars[2]))) expect_equivalent(hessian(lss, pars), D2LSweibull(2, exp(pars[1]), exp(pars[2]))[1,,]) }) test_that("Weibull PH Hessian",{ pars <- log(c(shape=1.2,scale=1.1)) lds <- function(pars){dweibullPH(2,exp(pars[1]),exp(pars[2]),log=TRUE)} expect_equivalent(grad(lds, pars), flexsurv:::DLdweibullPH(2, exp(pars[1]), exp(pars[2]))) lss <- function(pars){pweibullPH(2,exp(pars[1]),exp(pars[2]),log=TRUE, lower.tail = FALSE)} expect_equivalent(grad(lss, pars), flexsurv:::DLSweibullPH(2, exp(pars[1]), exp(pars[2]))) expect_equivalent(hessian(lds, pars), D2LdweibullPH(2, exp(pars[1]), exp(pars[2]))[1,,]) hess <- hessian(lss, pars) expect_equivalent(hessian(lss, pars), D2LSweibullPH(2, exp(pars[1]), exp(pars[2]))[1,,]) }) test_that("Gompertz Hessian",{ pars <- c(shape=1.2,scale=log(1.1)) ## nonzero shape lds <- function(pars){dgompertz(2,pars[1],exp(pars[2]),log=TRUE)} lss <- function(pars){pgompertz(2,pars[1],exp(pars[2]),log=TRUE, lower.tail = FALSE)} expect_equivalent(grad(lds, pars), flexsurv:::DLdgompertz(2, pars[1], exp(pars[2]))) expect_equivalent(grad(lss, pars), flexsurv:::DLSgompertz(2, pars[1], exp(pars[2]))) expect_equivalent(hessian(lss, pars), D2LSgompertz(2, pars[1], exp(pars[2]))[1,,]) expect_equivalent(hessian(lss, pars), D2Ldgompertz(2, pars[1], exp(pars[2]))[1,,]) ## zero shape pars <- c(shape=0,scale=log(1.1)) lds <- function(pars){dgompertz(2,0,exp(pars[2]),log=TRUE)} lss <- function(pars){pgompertz(2,0,exp(pars[2]),log=TRUE, lower.tail = FALSE)} expect_equivalent(grad(lds, pars), flexsurv:::DLdgompertz(2, pars[1], exp(pars[2]))) expect_equivalent(grad(lss, pars), flexsurv:::DLSgompertz(2, pars[1], exp(pars[2]))) expect_equivalent(hessian(lss, pars), D2LSgompertz(2, pars[1], exp(pars[2]))[1,,]) expect_equivalent(hessian(lds, pars), D2Ldgompertz(2, pars[1], exp(pars[2]))[1,,]) }) hess_error <- function(object){ if (!isTRUE(getOption("flexsurv.test.analytic.derivatives"))) stop("flexsurv.test.analytic.derivatives option not set") object$hess.test$error } options(flexsurv.test.analytic.derivatives=TRUE) test_that("flexsurvreg fit hessian",{ err <- 1e-03 fl <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="exp") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, data=bc, dist="exp") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="weibull") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, anc=list(shape=~group), data=bc, dist="weibull") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="weibullPH") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, data=bc, dist="weibullPH") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, anc=list(shape=~group), data=bc, dist="weibullPH") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gompertz") expect_lt(hess_error(fl), err) err <- 1e-02 fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, data=bc, dist="gompertz") expect_lt(hess_error(fl), err) fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, anc=list(shape=~group), data=bc, dist="gompertz") expect_lt(hess_error(fl), err) set.seed(1) simt <- rweibull(1000, 2, 0.5) status <- ifelse(simt>0.6, 0, 1) simt[status==0] <- 0.6 tmin <- simt tmax <- ifelse(status==1, simt, Inf) tmax.sr <- ifelse(status==1, simt, NA) fl <- flexsurvreg(Surv(tmin, tmax.sr, type="interval2") ~ 1, dist="weibull") expect_lt(hess_error(fl), err) set.seed(1) sim <- rgenf(3000, 1.5, 1, -0.4, 0.6) dead <- as.numeric(sim<=30) simt <- ifelse(sim<=30, sim, 30) obs <- simt>3; simt <- simt[obs]; dead <- dead[obs] fl <- flexsurvreg(Surv(simt, dead) ~ 1, dist="weibull") expect_lt(hess_error(fl), err) wts <- rep(1, length(simt)); wts[1:200] <- 1.2 fl <- flexsurvreg(Surv(simt, dead) ~ 1, weights=wts, dist="weibull") expect_lt(hess_error(fl), err) bc$bhaz <- rep(0.1, nrow(bc)) fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, anc=list(shape=~group), data=bc, bhazard=bhaz, dist="weibull") expect_lt(hess_error(fl), err) bc$wts <- 1; bc$wts[1:300] <- 1.1 fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, anc=list(shape=~group), data=bc, weights=wts, dist="weibull") expect_lt(hess_error(fl), err) bc$bhaz <- rep(0.1, nrow(bc)) bc$wts <- 1; bc$wts[1:300] <- 1.1 fl <- flexsurvreg(formula = Surv(recyrs, censrec) ~ group, anc=list(shape=~group), data=bc, bhazard=bhaz, weights=wts, dist="weibull") expect_lt(hess_error(fl), err) }) ## TODO documentation test_that("flexsurvspline fit hessian",{ err <- 1e-03 fl <- flexsurvspline(formula = Surv(recyrs, censrec) ~ group, k = 1, data=bc, scale = "hazard") expect_lt(hess_error(fl), err) # fails on codecov system for some reason # fl <- flexsurvspline(formula = Surv(recyrs, censrec) ~ group, # k = 1, data=bc, scale="odds") # expect_lt(hess_error(fl), err) }) options(flexsurv.test.analytic.derivatives=FALSE) test_that("nearest positive-definite control",{ # sub-optimal solution near to optimal solution of: # flexsurvreg(formula=Surv(futime, fustat) ~ 1, dist="gengamma", data=ovarian) perturbed <- c(mu=6.4049977, sigma=1.2217696, Q=-0.6432642) short_optim <- list(maxit=0) expect_warning( flexsurvreg(formula=Surv(futime, fustat) ~ 1, data=ovarian, dist="gengamma", inits=perturbed, control=short_optim, hess.control=list(tol.evalues=0)), "Hessian not positive definite" ) expect_silent( flexsurvreg(formula=Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma", inits=perturbed, control=short_optim, hess.control=list(tol.evalues=1.1E1)) ) fl_nearPD <- flexsurvreg(formula=Surv(futime, fustat) ~ 1, data=ovarian, dist="gengamma", inits=perturbed, control=short_optim, hess.control=list(tol.evalues=1.1E1)) expect_gt(min(eigen(vcov(fl_nearPD))$values), 0) }) flexsurv/tests/testthat/test_flexsurvreg.R0000644000176200001440000007264614621151032020702 0ustar liggesuserscontext("flexsurvreg model fits") test_that("Generalized F (p parameter) not identifiable from ovarian data",{ expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf"), "non-finite finite-difference") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf.orig"), "non-finite finite-difference") }) test_that("Generalized gamma fit",{ fitg <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma") # print(fitg) # print(fitg, digits=4) fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="gengamma") ovarian2 <- ovarian fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian2, dist="gengamma") ## GF with "p" fixed at 0 fitffix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", fixedpars=4, inits=c(NA,NA,NA,1e-05)) expect_equal(fitffix$loglik, sum(fitffix$logliki)) expect_equal(fitffix$res[1:3,"est"], fitg$res[1:3,"est"], tolerance=1e-03) expect_equal(fitffix$res[1:3,2:3], fitg$res[1:3,2:3], tolerance=1e-02) }) test_that("Same answers as survreg for Weibull regression",{ fitw <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull") fitws <- survreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull") expect_equal(fitw$loglik, fitws$loglik[1], tolerance=1e-04) expect_equal(fitws$scale, 1 / fitw$res["shape","est"], tolerance=1e-03) expect_equal(as.numeric(coef(fitws)[1]), log(fitw$res["scale","est"]), tolerance=1e-03) }) test_that("Exponential",{ sr <- survreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ age, data = ovarian, dist="exponential") fite <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ age, data = ovarian, dist="exp") expect_equal(sr$loglik[2], fite$loglik) expect_warning(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ age, data = ovarian, dist="exp", sr.control=list(maxiter=2)), "Ran out of iterations") }) test_that("Log-normal",{ sr <- survreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ age, data = ovarian, dist="lognormal") fitl <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ age, data = ovarian, dist="lognormal") expect_equal(sr$loglik[2], fitl$loglik) expect_warning(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ age, data = ovarian, dist="exp", sr.control=list(maxiter=2)), "Ran out of iterations") }) test_that("Weighted fits",{ wt <- rep(1, nrow(ovarian)) wt[c(1,3,5,7,9)] <- 10 fitw <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull", weights=wt) fitws <- survreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull", weights=wt) expect_equal(fitws$loglik[2],fitw$loglik,tolerance=1e-06) }) test_that("subset",{ fitg <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, subset=-(1:2), dist="gengamma") fitg2 <- flexsurvreg(formula = Surv(ovarian$futime[-(1:2)], ovarian$fustat[-(1:2)]) ~ 1, dist="gengamma") expect_equal(fitg$loglik,fitg2$loglik) }) test_that("na.action",{ ovarian2 <- ovarian ovarian2$futime[1] <- NA fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data=ovarian2, na.action=na.omit, dist="gengamma") ovarian3 <- ovarian[-1,] fitg2 <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data=ovarian3, na.action=na.omit, dist="gengamma") expect_equal(fitg$loglik,fitg2$loglik) expect_error(flexsurvreg(formula = Surv(futime, fustat) ~ 1, data=ovarian2, na.action=na.fail, dist="gengamma"), "missing values") }) test_that("Log-normal",{ fitln <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="lnorm") expect_equal(fitln$loglik, -97.12174204265681, tolerance=1e-06) }) test_that("Gompertz",{ fitgo <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="gompertz", fixedpars=TRUE) # model fit is unstable expect_equal(fitgo$loglik, -112.8294446076947, tolerance=1e-06) }) test_that("Log-logistic",{ fitlls <- survreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ age, data = ovarian, dist="loglogistic") fitll <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist="llogis") expect_equal(fitll$loglik, fitlls$loglik[2], tolerance=1e-06) }) test_that("Gamma",{ fitga <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="gamma") expect_equal(fitga$loglik, -97.86379723453011, tolerance=1e-06) }) test_that("Loglikelihoods of flexible distributions reduce to less flexible ones for certain parameters",{ ## Test distributions reducing to others with fixed pars fitffix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", fixedpars=TRUE, inits=c(0,1,0,1)) ## GG = GF with p -> 0 fitffix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", fixedpars=TRUE, inits=c(0,1,0,1e-08)) fitgfix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="gengamma", fixedpars=TRUE, inits=c(0,1,0)) expect_equal(fitgfix$loglik, fitffix$loglik, tolerance=1e-02) ## Weib = GG with q=1 fitgfix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="gengamma", fixedpars=TRUE, inits=c(6,0.8,1)) fitwfix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull", fixedpars=TRUE, inits=c(1/0.8,exp(6))) expect_equal(fitwfix$loglik, fitgfix$loglik) ## Gamma = GG with sig=q fitgfix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="gengamma", fixedpars=TRUE, inits=c(6,0.5,0.5)) fitgafix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="gamma", fixedpars=TRUE, inits=c(1/0.5^2,exp(-6)/0.5^2)) expect_equal(fitgafix$loglik,fitgfix$loglik) ## Log-normal = GG with q=0 fitgfix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="gengamma", fixedpars=TRUE, inits=c(6,0.8,0)) fitlfix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="lnorm", fixedpars=TRUE, inits=c(6,0.8)) expect_equal(fitlfix$loglik,fitgfix$loglik) ## Compare with weib/lnorm fit from survreg fitw <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull", inits=c(1/0.8,exp(6))) fitw2 <- survreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull") expect_equal(1 / fitw2$scale, fitw$res["shape","est"], tolerance=1e-03) expect_equal(as.numeric(coef(fitw2)[1]), log(fitw$res["scale","est"]), tolerance=1e-03) }) test_that("Fits of flexible distributions reduce to less flexible ones with fixed parameters",{ fitgfix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="gengamma.orig", fixedpars=3, inits=c(NA,NA,1)) fitw <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull") expect_equal(logLik(fitgfix), logLik(fitw), tolerance=1e-06) fitgfix <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="gengamma.orig", fixedpars=1, inits=c(1,NA,NA)) fitga <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="gamma") expect_equal(logLik(fitgfix), logLik(fitga), tolerance=1e-06) fite <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="exp") fitw <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull", inits=c(1, mean(ovarian$futime)), fixedpars=1) expect_equal(logLik(fite), logLik(fitw), tolerance=1e-06) expect_equal(fitw$res["scale",1], 1 / fite$res["rate",1], tolerance=1e-06) }) fitg <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ factor(rx), data = ovarian, dist="weibull") test_that("Model fit with covariates",{ expect_equal(fitg$loglik, -97.3641506645869, tolerance=1e-06) if (covr::in_covr() || interactive()) { plot(fitg, ci=TRUE) plot(fitg, X=rbind(c(0), c(1)), ci=TRUE, col="red") lines(fitg, X=rbind(c(1.1), c(1.2)), ci=TRUE, col="blue") plot(fitg, type="hazard") plot(fitg, type="cumhaz") fitg1 <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="weibull") plot(fitg1, type="hazard") } }) test_that("Summary function: alternative ways to supply covariates",{ expect_equal(summary(fitg, X=c(0), ci=FALSE)[[1]]$est, summary(fitg, newdata=data.frame(rx=1), ci=FALSE)[[1]]$est) expect_equal(summary(fitg, X=c(1), ci=FALSE)[[1]]$est, summary(fitg, newdata=data.frame(rx=2), ci=FALSE)[[1]]$est) expect_equivalent(summary(fitg, X=matrix(c(0,1),ncol=1), ci=FALSE)[1:2], summary(fitg, newdata=data.frame(rx=c(1,2)), ci=FALSE)[1:2]) fitg2 <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ factor(rx) + factor(ecog.ps), data = ovarian, dist="weibull") expect_equivalent(summary(fitg2, newdata=data.frame(rx=1,ecog.ps=2), ci=FALSE)[[1]][1:2], summary(fitg2, X=matrix(c(0,1), nrow=1))[[1]][1:2]) }) test_that("summary with CIs",{ summ <- summary(fitg, newdata=data.frame(rx=1), B=2, type="survival") expect_true(all(unlist(summ[[1]][,2:4]) <= 1)) expect_true(all(unlist(summ[[1]][,2:4]) >= 0)) }) test_that("Errors in summary function",{ expect_error(summary(fitg, newdata=list(foo=1)), "Value of covariate \"rx\" not supplied") expect_error(summary(fitg, X=matrix(c(0,1),ncol=2), ci=FALSE), "expected X to be a matrix with 1 column or a vector with 1 element") expect_error(summary(fitg, X=matrix(c(0,1),ncol=1), start=1:2, ci=FALSE), "length of \"start\"") expect_error(summary(fitg, start=1:2, ci=FALSE), "length of \"start\"") }) test_that("Model fit with covariates and simulated data",{ x <- rnorm(500,0,1) sim <- rgenf(500, 1.5 - 0.2*x, 1, -0.4, 0.6) dead <- as.numeric(sim<=30) simt <- ifelse(sim<=30, sim, 30) fit <- flexsurvreg(Surv(simt, dead) ~ x, dist="genf", control=list(maxit=10000)) if (covr::in_covr() || interactive()) { fit # estimate should be -0.2 summary(fit) plot(fit) lines(fit, X=matrix(c(1,2),nrow=2)) plot(fit, type="hazard", min.time=0, max.time=25) lines(fit, type="hazard", X=matrix(c(1,2),nrow=2)) x2 <- factor(rbinom(500, 1, 0.5)) fit <- flexsurvreg(Surv(simt, dead) ~ x + x2, dist="genf", control=list(maxit=10000)) plot(fit) plot(fit, type="cumhaz") plot(fit, type="hazard", min.time=0, max.time=25) x3 <- factor(rbinom(500, 1, 0.5)) fit <- flexsurvreg(Surv(simt, dead) ~ x2 + x3, dist="genf", control=list(maxit=10000)) fit <- flexsurvreg(Surv(simt, dead) ~ x2, dist="genf", control=list(maxit=10000)) plot(fit) summary(fit, type="hazard", ci=FALSE) plot(fit, type="hazard", ci=FALSE) } x2 <- factor(rbinom(500, 1, 0.5)) x3 <- rnorm(500,0,1) sim <- rgengamma(500, 1.5 + 2*x3, 1, -0.4) dead <- as.numeric(sim<=30) simt <- ifelse(sim<=30, sim, 30) expect_error({ fit <- flexsurvreg(Surv(simt, dead) ~ x3, dist="gengamma", control=list(maxit=10000)) fit <- flexsurvreg(Surv(simt, dead) ~ x + x2 + x3, dist="gengamma", control=list(maxit=10000)) fit <- flexsurvreg(Surv(simt, dead)[1:100] ~ x[1:100] + x2[1:100], dist="gengamma", control=list(maxit=10000), method="BFGS") fit <- flexsurvreg(Surv(simt, dead)[1:100] ~ x[1:100], dist="gengamma", control=list(maxit=10000)) }, NA) }) test_that("Covariates on ancillary parameters",{ set.seed(11082012) x3 <- rnorm(1500,0,1) x4 <- rnorm(1500,0,1) x5 <- rnorm(1500,0,1) sim <- rgengamma(1500, 1, exp(0.5 + 0.1*x3 + -0.3*x4), -0.4 + 1.2*x5) dead <- as.numeric(sim<=30) simt <- ifelse(sim<=30, sim, 30) expect_error({ ## Cov on ancillary, not on location flexsurvreg(Surv(simt, dead) ~ sigma(x3), dist="gengamma", fixedpars=TRUE) flexsurvreg(Surv(simt, dead) ~ 1, anc=list(sigma=~x3), dist="gengamma", fixedpars=TRUE) ## Cov on both location and ancillary flexsurvreg(Surv(simt, dead) ~ x3 + sigma(x3), dist="gengamma", fixedpars=TRUE) flexsurvreg(Surv(simt, dead) ~ x3, anc=list(sigma=~x3), dist="gengamma", fixedpars=TRUE) ## More than one covariate on an ancillary parameter flexsurvreg(Surv(simt, dead) ~ x3 + sigma(x3) + sigma(x4), dist="gengamma", fixedpars=TRUE) flexsurvreg(Surv(simt, dead) ~ x3, anc=list(sigma=~x3+x4), dist="gengamma", fixedpars=TRUE) ## More than one ancillary parameter with covariates flexsurvreg(Surv(simt, dead) ~ x3 + sigma(x3) + sigma(x4) + Q(x5), dist="gengamma", fixedpars=TRUE) x <- flexsurvreg(Surv(simt, dead) ~ x3, anc=list(sigma=~x3+x4, Q=~x5), dist="gengamma", fixedpars=TRUE) }, NA) ## Warning if location parameter supplied as ancillary expect_warning( expect_error(flexsurvreg(Surv(simt, dead) ~ mu(x3), dist="gengamma", fixedpars=TRUE), "could not find function"), "Ignoring location parameter") expect_warning(flexsurvreg(Surv(simt, dead) ~ scale(x3), dist="weibull", fixedpars=TRUE), "Ignoring location parameter") ## base::scale exists expect_warning(flexsurvreg(Surv(simt, dead) ~ 1, anc=list(mu= ~x3), dist="gengamma", fixedpars=TRUE), "Ignoring location parameter") expect_warning(flexsurvreg(Surv(simt, dead) ~ 1, anc=list(scale=~x3), dist="weibull", fixedpars=TRUE), "Ignoring location parameter") }) test_that("formula can contain dot", { fit_dot <- flexsurvreg( formula = Surv(ovarian$futime, ovarian$fustat) ~ ., data = ovarian, dist = "weibull" ) exp_fit <- flexsurvreg( formula = Surv(ovarian$futime, ovarian$fustat) ~ age + resid.ds + rx + ecog.ps, data = ovarian, dist = "weibull" ) call_index <- 1 expect_equal(fit_dot[-call_index], exp_fit[-call_index]) fit_dot <- flexsurvreg( formula = Surv(ovarian$futime, ovarian$fustat) ~ ., data = ovarian, anc = list(sigma = ~ age), dist = "gengamma", fixedpars=TRUE ) exp_fit <- flexsurvreg( formula = Surv(ovarian$futime, ovarian$fustat) ~ age + resid.ds + rx + ecog.ps, data = ovarian, anc = list(sigma = ~ age), dist = "gengamma", fixedpars=TRUE ) call_index <- 1 expect_equal(fit_dot[-call_index], exp_fit[-call_index]) }) test_that("Various errors",{ expect_error(flexsurvreg(data = ovarian, dist="genf", inits = c(1,2,3)),"\"formula\" is missing") expect_error(flexsurvreg(formula="foo", data = ovarian, dist="genf", inits = c(1,2,3)),"\"formula\" must be a formula") expect_error(flexsurvreg(formula= futime ~ fustat, data = ovarian, dist="genf", inits = c(1,2,3)),"Response must be a survival object") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, inits = c(1,2,3)),"Distribution \"dist\" not specified") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist=1, data = ovarian, inits = c(1,2,3)),"\"dist\" should be a") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma", data = ovarian, anc=1, inits = c(1,2,3)),"\"anc\" must be a") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", inits = c(1,2,3)),"Initial values .+ length") expect_warning(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", inits = c(1,2,3,4,5), fixedpars=TRUE),"Initial values are a vector length .+ using only the first") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", inits = "foo"),"init.+ must be a numeric vector") suppressWarnings({ expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", inits = c(1,2,3,-1)),"Initial value for parameter 4 out of range") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", inits = c(1,-2,3,-1)),"Initial values for parameters 2,4 out of range") }) expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", fixedpars = c(3,4,5,6,7)), "fixedpars must be TRUE/FALSE") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="genf", fixedpars = "foo"), "fixedpars must be TRUE/FALSE") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="lnorm",cl=-1), "cl must be a number in") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="lnorm",cl=1.1), "cl must be a number in") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="lnorm",cl=c(1,2)), "cl must be a number in") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="lnorm",cl="foo"), "cl must be a number in") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian, dist="foo"), "\'arg\' should be one of") expect_error(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, data = ovarian), "Distribution \"dist\" not specified") }) test_that("Calling flexsurvreg from within a function",{ expect_error({ f <- function(){ ovarian2 <- ovarian fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian2, dist="gengamma") fitg <- flexsurvreg(formula = Surv(ovarian2$futime, ovarian2$fustat) ~ factor(ovarian2$rx), dist="gengamma",method="Nelder-Mead") } f() }, NA) }) test_that("Calling flexsurvreg from a function within a function",{ expect_error({ f <- function(){ ovarian2 <- ovarian g <- function(){ fitw <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian2, dist="weibull") fitw <- flexsurvreg(formula = Surv(ovarian2$futime, ovarian2$fustat) ~ factor(ovarian2$rx), dist="weibull") } g() } f() }, NA) }) ## Left-truncation. ## Time passed as arg to initial values is stop - start, ## since, e.g. mean of trunc exponential dist is 1/lam + b, mean par plus trunc point ## time at risk in returned object is currently sum of (stop - start) ## default knot choice for spline - start + quantiles of log dt test_that("Left-truncation",{ set.seed(12082012) sim <- rgenf(3000, 1.5, 1, -0.4, 0.6) dead <- as.numeric(sim<=30) simt <- ifelse(sim<=30, sim, 30) obs <- simt>3; simt <- simt[obs]; dead <- dead[obs] fit <- flexsurvreg(Surv(simt, dead) ~ 1, dist="gengamma") summ <- summary(fit, ci=FALSE) expect_true(all(summ$time>3)) if (interactive()) plot(fit, ci=FALSE, xlim=c(0,10)) fit <- flexsurvreg(Surv(rep(3, length(simt)), simt, dead) ~ 1, dist="gengamma") if (interactive()) lines(fit, ci=FALSE, col="blue") # truncated model fits truncated data better. }) test_that("Interval censoring",{ set.seed(1) simt <- rweibull(1000, 2, 0.5) tmin <- simt status <- ifelse(simt>0.6, 0, 1) simt[status==0] <- 0.6 tmin <- simt tmax <- ifelse(status==1, simt, Inf) tmax.sr <- ifelse(status==1, simt, NA) sr1 <- survreg(Surv(tmin, tmax.sr, type="interval2") ~ 1, dist="weibull") sr2 <- survreg(Surv(tmin, status) ~ 1, dist="weibull") expect_equal(sr1$loglik[2], sr2$loglik[2]) fs1_inf <- flexsurvreg(Surv(tmin, tmax, type="interval2") ~ 1, dist="weibull") fs1_na <- flexsurvreg(Surv(tmin, tmax.sr, type="interval2") ~ 1, dist="weibull") fs2 <- flexsurvreg(Surv(simt, status) ~ 1, dist="weibull") expect_equal(fs1_inf$loglik, fs2$loglik) expect_equal(fs1_na$loglik, fs2$loglik) expect_equal(fs1_inf$loglik, sr1$loglik[2]) ## put an upper bound on censored times tmax <- ifelse(status==1, simt, 0.7) fs1 <- flexsurvreg(Surv(tmin, tmax, type="interval2") ~ 1, dist="weibull") fs2 <- flexsurvreg(Surv(simt, status) ~ 1, dist="weibull") expect_true(fs1$loglik != fs2$loglik) ## using type="interval" status[status==0] <- 3 fs3 <- flexsurvreg(Surv(tmin, tmax, status, type="interval") ~ 1, dist="weibull") expect_equal(fs1$loglik, fs3$loglik) ## interval censoring with zero width interval set.seed(1) tmin <- tmax <- rweibull(100, 1.1, 1.5) fs1 <- flexsurvreg(Surv(tmin, tmax, type="interval2") ~ 1, dist="weibull") fs2 <- flexsurvreg(Surv(tmin) ~ 1, dist="weibull") expect_equal(fs1$loglik, fs2$loglik) ## interval censoring close around the event set.seed(1) tev <- rweibull(100, 1.1, 1.5) tmin <- tev - 0.001 tmax <- tev + 0.001 fs1 <- flexsurvreg(Surv(tev) ~ 1, dist="weibull") fs2 <- flexsurvreg(Surv(tmin, tmax, type="interval2") ~ 1, dist="weibull") expect_equal(fs2$res["shape","est"], fs1$res["shape","est"], tol=1e-03) ## relative survival with left and interval censoring ## at left cens times, bhazard contains the background cond prob of surviving interval bh <- rep(0.01, length(tmax)) back_cdeath <- 1 - rep(exp(-0.002*0.01), length(tmax)) fs1 <- flexsurvreg(Surv(tev) ~ 1, dist="weibull", bhazard=bh) fs2 <- flexsurvreg(Surv(tmin, tmax, type="interval2") ~ 1, dist="weibull", bhazard=back_cdeath) fs1 <- flexsurvreg(Surv(tev) ~ 1, dist="weibull", bhazard=bh) fs2 <- flexsurvreg(Surv(tmin, tmax, type="interval2") ~ 1, dist="weibull", bhazard=back_cdeath, inits=c(1.24, 1.4)) expect_equal(fs2$res["shape","est"], fs1$res["shape","est"], tol=1e-03) }) test_that("inits",{ fitg <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma", inits=c(6,1,-1)) fitg2 <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma") expect_equal(fitg$loglik, fitg2$loglik, tolerance=1e-05) }) test_that("fixedpars",{ fitg <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma", fixedpars=1:2, inits=c(6,1,-1)) expect_equivalent(fitg$res[1:2,"est"], c(6,1)) expect_equivalent(fitg$res[1:2,"L95%"], c(NA_real_,NA_real_)) }) test_that("aux is ignored if it contains parameters",{ fitg <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma") fitg2 <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma", aux=list(sigma=1)) expect_equal(fitg$loglik, fitg2$loglik) }) test_that("cl",{ fitg <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma", cl=0.99) fitg2 <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma", cl=0.999) expect_true(fitg2$res[1,2] < fitg$res[1,2]) expect_true(fitg2$res[1,3] > fitg$res[1,2]) }) test_that("Relative survival", { bc$bh <- rep(0.01, nrow(bc)) ## Compare with stata stgenreg, using Weibull PH model fs6b <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibullPH", bhazard=bh) expect_equal(log(fs6b$res[1,"est"]), 0.3268327417773233, tolerance=1e-05) expect_equal(log(fs6b$res[2,"est"]), -3.5308925743338038, tolerance=1e-05) expect_equal(fs6b$res["groupMedium","est"], 0.9343799681269026, tolerance=1e-04) expect_equal(fs6b$res["groupPoor","est"], 1.799204192587765, tolerance=1e-04) ## Check fit from 3 par model reduces to 1 par ## Deriv calculation bug causing false convergence fixed in 2.1 fshgg <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="gengamma", inits=c(1,1,1), fixedpars=2:3, bhazard=bh) fshe <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="exponential", bhazard=bh) fshw <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull", inits = c(1,10), fixedpars=1, bhazard=bh) expect_equal(fshgg$loglik, fshe$loglik, tolerance=1e-06) expect_equal(fshgg$loglik, fshw$loglik, tolerance=1e-06) ## same results as ## cd /home/chris/flexsurv/stata ## use stpm/bc ## gen rec = 1 - censrec ## gen recyrs = rectime / 365 ## gen bh = 0.01 ## stset recyrs, failure(censrec) ## stgenreg, loghazard([ln_lambda] :+ [ln_gamma] :+ (exp([ln_gamma]) :- 1) :* log(#t)) nodes(100) ln_lambda(group2 group3) bhazard(bh) ## Check we can convert from partial to full likelihood by adding the ## sum of the cumulative hazards mdl_0 <- flexsurvreg(Surv(time/365, status == 2) ~ 1, data = lung, dist = "exp") bhaz <- 0.1 mdl_1 <- flexsurvreg(Surv(time/365, status == 2) ~ 1, dist = "exp", data = lung, inits = mdl_0$res[, "est"] - bhaz, fixedpars = TRUE, bhazard = rep(bhaz, nrow(lung))) expect_equal(mdl_0$loglik, mdl_1$loglik - sum(bhaz * lung$time/365)) }) test_that("warning with strata", { ## need double backslash to escape $ expect_warning(flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ strata(ovarian$resid.ds), dist="gengamma", inits=c(6,1,-1,0)), "Ignoring \"strata\" function: interpreting \"ovarian\\$resid.ds\" as a covariate on \"mu\"") }) test_that("error with frailty() and offset()", { expect_error(flexsurvreg(formula = Surv(futime, fustat) ~ frailty(resid.ds), data="ovarian", dist="weibull"), "frailty models are not supported") expect_error(flexsurvreg(formula = Surv(futime, fustat) ~ offset(resid.ds), data="ovarian", dist="weibull"), "offset\\(\\) terms are not supported") }) test_that("Distribution names are case insensitive",{ fs1 = flexsurvreg(Surv(rectime, censrec)~group,dist="weibull",data=bc) fs2 = flexsurvreg(Surv(rectime, censrec)~group,dist="Weibull",data=bc) expect_equal(fs1$loglik, fs2$loglik, tolerance=1e-06) }) test_that("Weibull hazards from summary are reliable",{ fs1 = flexsurvreg(Surv(rectime, censrec)~group ,dist="weibull",data=bc) output = summary(fs1, t=seq(from=0,to=30000,length.out=100), ci=F, tidy=T) expect_true(all(is.finite(output$est))) }) test_that("No events in the data",{ set.seed(1) tmin <- rexp(100, 1) tmax <- tmin + 0.1 bhazard <- rep(0.0001, 100) mod <- flexsurvreg(Surv(tmin, tmax, type="interval2") ~ 1, dist="exponential") expect_equal(mod$loglik, -337.9815, tolerance=1e-03) modb <- flexsurvreg(Surv(tmin,tmax,type='interval2')~1, bhazard = 1 - exp(-bhazard*(tmax-tmin)), dist="exponential") expect_equal(mod$res["rate","est"], modb$res["rate","est"], tolerance=1e-02) }) test_that("No censoring in the data",{ bcev <- bc[bc$censrec==1,] mod <- flexsurvreg(Surv(recyrs, censrec) ~ 1, data=bcev, dist="weibull") expect_equal(mod$loglik, -477.2455, tolerance=1e-03) }) test_that("summary type=quantile is consistent",{ expect_equal(summary(fitg, type='quantile', quantiles=.5)[[1]][1,2] ,summary(fitg, type='median')[[1]][1,1]) expect_equal(summary(fitg, type='quantile', quantiles=.5, start = 50)[[1]][1,2] ,summary(fitg, type='median', start = 50)[[1]][1,1]) }) test_that("Errors in summary type=quantile",{ expect_error(summary(fitg, type='quantile', quantiles=1.5), "Quantiles should not be less than 0 or greater than 1") expect_error(summary(fitg, type='quantile', quantiles=-.5), "Quantiles should not be less than 0 or greater than 1") }) test_that("SEs in summary function",{ expect_true(is.numeric(summary(fitg, se=TRUE)[[1]]$se)) }) test_that("summary type `link`",{ expect_equal(summary(fitg, type="link")[["factor(rx)=1"]]$est, fitg$res["scale","est"]) expect_equal(summary(fitg, type="link")[["factor(rx)=2"]]$est, exp(fitg$res.t["scale","est"] + fitg$res.t["factor(rx)2","est"])) }) test_that("With and without analytic Hessian", { fla <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="weibull") fln <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="weibull", hess.control = list(numeric=TRUE)) expect_true(all(fla$cov != fln$cov)) # analytic derivatives available fla <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma") fln <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ 1, dist="gengamma", hess.control = list(numeric=TRUE)) expect_equivalent(fla$cov, fln$cov) # analytic derivatives not available }) flexsurv/tests/testthat/test_survsplinek.R0000644000176200001440000003427614471605166020727 0ustar liggesusersgamma <- seq(1, 1.2, length.out=9) names(gamma) <- 0:8 test_that("mean_survsplinek",{ expect_equal(mean_survspline0(gamma["0"], gamma["1"]), mean_survspline(gamma[1:2])) expect_equal(mean_survspline1(gamma["0"], gamma["1"], gamma["2"], knots = c(-10,0,0)), mean_survspline(gamma[1:3], knots = c(-10,0,0))) expect_equal(mean_survspline2(gamma["0"], gamma["1"], gamma["2"], gamma["3"], knots=c(-10,0,0,0)), mean_survspline(gamma[1:4], knots=c(-10,0,0,0))) expect_equal(mean_survspline3(gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], knots=c(-10,0,0,0,0)), mean_survspline(gamma[1:5], knots=c(-10,0,0,0,0))) expect_equal(mean_survspline4(gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], knots=c(-10,0,0,0,0,0)), mean_survspline(gamma[1:6], knots=c(-10,0,0,0,0,0))) expect_equal(mean_survspline5(gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], knots=c(-10,0,0,0,0,0,0)), mean_survspline(gamma[1:7], knots=c(-10,0,0,0,0,0,0))) expect_equal(mean_survspline6(gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], knots=c(-10,0,0,0,0,0,0,0)), mean_survspline(gamma[1:8], knots=c(-10,0,0,0,0,0,0,0))) expect_equal(mean_survspline7(gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], gamma["8"], knots=c(-10,0,0,0,0,0,0,0,0)), mean_survspline(gamma[1:9], knots=c(-10,0,0,0,0,0,0,0,0))) }) test_that("rmst_survsplinek",{ t <- 1 expect_equal(rmst_survspline0(t=t, gamma["0"], gamma["1"]), rmst_survspline(t=t, gamma[1:2])) expect_equal(rmst_survspline1(t=t, gamma["0"], gamma["1"], gamma["2"], knots = c(-10,0,10)), rmst_survspline(t=t, gamma[1:3], knots = c(-10,0,10))) expect_equal(rmst_survspline2(t=t, gamma["0"], gamma["1"], gamma["2"], gamma["3"], knots=c(-10,0,1,10)), rmst_survspline(t=t, gamma[1:4], knots=c(-10,0,1,10))) expect_equal(rmst_survspline3(t=t, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], knots=c(-10,0,1,2,10)), rmst_survspline(t=t, gamma[1:5], knots=c(-10,0,1,2,10))) expect_equal(rmst_survspline4(t=t, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], knots=c(-10,0,1,2,3,10)), rmst_survspline(t=t, gamma[1:6], knots=c(-10,0,1,2,3,10))) expect_equal(rmst_survspline5(t=t, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], knots=c(-10,0,1,2,3,4,10)), rmst_survspline(t=t, gamma[1:7], knots=c(-10,0,1,2,3,4,10))) expect_equal(rmst_survspline6(t=t, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], knots=c(-10,0,1,2,3,4,5,10)), rmst_survspline(t=t, gamma[1:8], knots=c(-10,0,1,2,3,4,5,10))) expect_equal(rmst_survspline7(t=t, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], gamma["8"], knots=c(-10,0,1,2,3,4,5,6,10)), rmst_survspline(t=t, gamma[1:9], knots=c(-10,0,1,2,3,4,5,6,10))) }) test_that("dsurvsplinek",{ x <- 1 expect_equal(dsurvspline0(x=x, gamma["0"], gamma["1"], knots=c(-10,10)), dsurvspline(x=x, gamma[1:2], knots=c(-10,10))) expect_equal(dsurvspline1(x=x, gamma["0"], gamma["1"], gamma["2"], knots = c(-10,0,10)), dsurvspline(x=x, gamma[1:3], knots = c(-10,0,10))) expect_equal(dsurvspline2(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], knots=c(-10,0,1,10)), dsurvspline(x=x, gamma[1:4], knots=c(-10,0,1,10))) expect_equal(dsurvspline3(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], knots=c(-10,0,1,2,10)), dsurvspline(x=x, gamma[1:5], knots=c(-10,0,1,2,10))) expect_equal(dsurvspline4(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], knots=c(-10,0,1,2,3,10)), dsurvspline(x=x, gamma[1:6], knots=c(-10,0,1,2,3,10))) expect_equal(dsurvspline5(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], knots=c(-10,0,1,2,3,4,10)), dsurvspline(x=x, gamma[1:7], knots=c(-10,0,1,2,3,4,10))) expect_equal(dsurvspline6(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], knots=c(-10,0,1,2,3,4,5,10)), dsurvspline(x=x, gamma[1:8], knots=c(-10,0,1,2,3,4,5,10))) expect_equal(dsurvspline7(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], gamma["8"], knots=c(-10,0,1,2,3,4,5,6,10)), dsurvspline(x=x, gamma[1:9], knots=c(-10,0,1,2,3,4,5,6,10))) }) test_that("psurvsplinek",{ x <- 1 expect_equal(psurvspline0(q=x, gamma["0"], gamma["1"], knots=c(-10,10)), psurvspline(q=x, gamma[1:2], knots=c(-10,10))) expect_equal(psurvspline1(q=x, gamma["0"], gamma["1"], gamma["2"], knots = c(-10,0,10)), psurvspline(q=x, gamma[1:3], knots = c(-10,0,10))) expect_equal(psurvspline2(q=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], knots=c(-10,0,1,10)), psurvspline(q=x, gamma[1:4], knots=c(-10,0,1,10))) expect_equal(psurvspline3(q=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], knots=c(-10,0,1,2,10)), psurvspline(q=x, gamma[1:5], knots=c(-10,0,1,2,10))) expect_equal(psurvspline4(q=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], knots=c(-10,0,1,2,3,10)), psurvspline(q=x, gamma[1:6], knots=c(-10,0,1,2,3,10))) expect_equal(psurvspline5(q=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], knots=c(-10,0,1,2,3,4,10)), psurvspline(q=x, gamma[1:7], knots=c(-10,0,1,2,3,4,10))) expect_equal(psurvspline6(q=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], knots=c(-10,0,1,2,3,4,5,10)), psurvspline(q=x, gamma[1:8], knots=c(-10,0,1,2,3,4,5,10))) expect_equal(psurvspline7(q=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], gamma["8"], knots=c(-10,0,1,2,3,4,5,6,10)), psurvspline(q=x, gamma[1:9], knots=c(-10,0,1,2,3,4,5,6,10))) }) if (covr::in_covr()){ # these are slow test_that("qsurvsplinek",{ p <- 0.4 expect_equal(qsurvspline0(p=p, gamma["0"], gamma["1"], knots=c(-10,10)), qsurvspline(p=p, gamma[1:2], knots=c(-10,10))) expect_equal(qsurvspline1(p=p, gamma["0"], gamma["1"], gamma["2"], knots = c(-10,0,10)), qsurvspline(p=p, gamma[1:3], knots = c(-10,0,10))) expect_equal(qsurvspline2(p=p, gamma["0"], gamma["1"], gamma["2"], gamma["3"], knots=c(-10,0,1,10)), qsurvspline(p=p, gamma[1:4], knots=c(-10,0,1,10))) expect_equal(qsurvspline3(p=p, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], knots=c(-10,0,1,2,10)), qsurvspline(p=p, gamma[1:5], knots=c(-10,0,1,2,10))) expect_equal(qsurvspline4(p=p, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], knots=c(-10,0,1,2,3,10)), qsurvspline(p=p, gamma[1:6], knots=c(-10,0,1,2,3,10))) expect_equal(qsurvspline5(p=p, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], knots=c(-10,0,1,2,3,4,10)), qsurvspline(p=p, gamma[1:7], knots=c(-10,0,1,2,3,4,10))) expect_equal(qsurvspline6(p=p, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], knots=c(-10,0,1,2,3,4,5,10)), qsurvspline(p=p, gamma[1:8], knots=c(-10,0,1,2,3,4,5,10))) expect_equal(qsurvspline7(p=p, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], gamma["8"], knots=c(-10,0,1,2,3,4,5,6,10)), qsurvspline(p=p, gamma[1:9], knots=c(-10,0,1,2,3,4,5,6,10))) }) test_that("rsurvsplinek",{ expect_equal({set.seed(1); rsurvspline0(n=1, gamma["0"], gamma["1"], knots=c(-10,10))}, {set.seed(1); rsurvspline(n=1, gamma[1:2], knots=c(-10,10))}) expect_equal({set.seed(1); rsurvspline1(n=1, gamma["0"], gamma["1"], gamma["2"], knots = c(-10,0,10))}, {set.seed(1); rsurvspline(n=1, gamma[1:3], knots = c(-10,0,10))}) expect_equal({set.seed(1); rsurvspline2(n=1, gamma["0"], gamma["1"], gamma["2"], gamma["3"], knots=c(-10,0,1,10))}, {set.seed(1); rsurvspline(n=1, gamma[1:4], knots=c(-10,0,1,10))}) expect_equal({set.seed(1); rsurvspline3(n=1, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], knots=c(-10,0,1,2,10))}, {set.seed(1); rsurvspline(n=1, gamma[1:5], knots=c(-10,0,1,2,10))}) expect_equal({set.seed(1); rsurvspline4(n=1, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], knots=c(-10,0,1,2,3,10))}, {set.seed(1); rsurvspline(n=1, gamma[1:6], knots=c(-10,0,1,2,3,10))}) expect_equal({set.seed(1); rsurvspline5(n=1, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], knots=c(-10,0,1,2,3,4,10))}, {set.seed(1); rsurvspline(n=1, gamma[1:7], knots=c(-10,0,1,2,3,4,10))}) expect_equal({set.seed(1); rsurvspline6(n=1, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], knots=c(-10,0,1,2,3,4,5,10))}, {set.seed(1); rsurvspline(n=1, gamma[1:8], knots=c(-10,0,1,2,3,4,5,10))}) expect_equal({set.seed(1); rsurvspline7(n=1, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], gamma["8"], knots=c(-10,0,1,2,3,4,5,6,10))}, {set.seed(1); rsurvspline(n=1, gamma[1:9], knots=c(-10,0,1,2,3,4,5,6,10))}) }) } test_that("hsurvsplinek",{ x <- 1 expect_equal(hsurvspline0(x=x, gamma["0"], gamma["1"], knots=c(-10,10)), hsurvspline(x=x, gamma[1:2], knots=c(-10,10))) expect_equal(hsurvspline1(x=x, gamma["0"], gamma["1"], gamma["2"], knots = c(-10,0,10)), hsurvspline(x=x, gamma[1:3], knots = c(-10,0,10))) expect_equal(hsurvspline2(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], knots=c(-10,0,1,10)), hsurvspline(x=x, gamma[1:4], knots=c(-10,0,1,10))) expect_equal(hsurvspline3(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], knots=c(-10,0,1,2,10)), hsurvspline(x=x, gamma[1:5], knots=c(-10,0,1,2,10))) expect_equal(hsurvspline4(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], knots=c(-10,0,1,2,3,10)), hsurvspline(x=x, gamma[1:6], knots=c(-10,0,1,2,3,10))) expect_equal(hsurvspline5(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], knots=c(-10,0,1,2,3,4,10)), hsurvspline(x=x, gamma[1:7], knots=c(-10,0,1,2,3,4,10))) expect_equal(hsurvspline6(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], knots=c(-10,0,1,2,3,4,5,10)), hsurvspline(x=x, gamma[1:8], knots=c(-10,0,1,2,3,4,5,10))) expect_equal(hsurvspline7(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], gamma["8"], knots=c(-10,0,1,2,3,4,5,6,10)), hsurvspline(x=x, gamma[1:9], knots=c(-10,0,1,2,3,4,5,6,10))) }) test_that("Hsurvsplinek",{ x <- 1 expect_equal(Hsurvspline0(x=x, gamma["0"], gamma["1"], knots=c(-10,10)), Hsurvspline(x=x, gamma[1:2], knots=c(-10,10))) expect_equal(Hsurvspline1(x=x, gamma["0"], gamma["1"], gamma["2"], knots = c(-10,0,10)), Hsurvspline(x=x, gamma[1:3], knots = c(-10,0,10))) expect_equal(Hsurvspline2(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], knots=c(-10,0,1,10)), Hsurvspline(x=x, gamma[1:4], knots=c(-10,0,1,10))) expect_equal(Hsurvspline3(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], knots=c(-10,0,1,2,10)), Hsurvspline(x=x, gamma[1:5], knots=c(-10,0,1,2,10))) expect_equal(Hsurvspline4(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], knots=c(-10,0,1,2,3,10)), Hsurvspline(x=x, gamma[1:6], knots=c(-10,0,1,2,3,10))) expect_equal(Hsurvspline5(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], knots=c(-10,0,1,2,3,4,10)), Hsurvspline(x=x, gamma[1:7], knots=c(-10,0,1,2,3,4,10))) expect_equal(Hsurvspline6(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], knots=c(-10,0,1,2,3,4,5,10)), Hsurvspline(x=x, gamma[1:8], knots=c(-10,0,1,2,3,4,5,10))) expect_equal(Hsurvspline7(x=x, gamma["0"], gamma["1"], gamma["2"], gamma["3"], gamma["4"], gamma["5"], gamma["6"], gamma["7"], gamma["8"], knots=c(-10,0,1,2,3,4,5,6,10)), Hsurvspline(x=x, gamma[1:9], knots=c(-10,0,1,2,3,4,5,6,10))) }) flexsurv/tests/testthat/test_genf_orig.R0000644000176200001440000000353113231112051020242 0ustar liggesuserscontext("Testing generalized F (original)") tol <- 1e-06 test_that("Generalized F (original)",{ expect_equal(dgenf.orig(c(-1,1,2,3,4), mu=0, sigma=1, s1=1, s2=1), c(0, 0.25, 0.111111111111111, 0.0625, 0.04)) x <- c(-1,0,1,2,3,4); mu <- 0.1; sigma <- 1.2; s1 <- 1.7; s2 <- 10000000 dgenf.orig(x, mu=mu, sigma=sigma, s1=s1, s2=s2) dgengamma.orig(x, shape=1/sigma, scale=exp(mu) / s1^sigma, k=s1) # equal for large s2 expect_equal(pgenf.orig(c(-1,0,1,2,3,4), mu=0, sigma=1, s1=1, s2=1), c(0, 0, 0.5, 0.666666666666667, 0.75, 0.8)) x <- c(-1,0,1,2,3,4); mu <- 0.1; sigma <- 1.2; s1 <- 1.7; s2 <- 10000000 pgenf.orig(x, mu=mu, sigma=sigma, s1=s1, s2=s2) pgengamma.orig(x, shape=1/sigma, scale=exp(mu) / s1^sigma, k=s1) # equal for large s2 expect_equal(qgenf.orig(p=0.25, mu=0, sigma=1, s1=1, s2=1), 0.333333333333333) expect_equal(qgenf.orig(p=0.25, mu=0, sigma=1, s1=1, s2=1), qgeneric(pgenf.orig, p=0.25, mu=0, sigma=1, s1=1, s2=1)) expect_equal(qgenf.orig(p=0, mu=0, sigma=1, s1=1, s2=1), 0) expect_equal(qgenf.orig(pgenf.orig(q=c(-2,-1,0,1,2,3,4), mu=0, sigma=1, s1=1, s2=1), mu=0, sigma=1, s1=1, s2=1), c(0,0,0,1,2,3,4)) x <- c(0.1, 0.4, 0.7); mu <- 0.1; sigma <- 1.2; s1 <- 1.7; s2 <- 10000000 qgenf.orig(x, mu=mu, sigma=sigma, s1=s1, s2=s2) hgenf.orig(x, mu=mu, sigma=sigma, s1=s1, s2=s2) qgengamma.orig(x, shape=1/sigma, scale=exp(mu) / s1^sigma, k=s1) # equal for large s2 expect_error(Hgenf.orig(x, mu=mu, sigma=sigma, s1=s1), "argument \"s2\" is missing") rgenf.orig(n=10, mu=0, sigma=1, s1=1, s2=1) if (interactive()) { mu <- 0.1; sigma <- 1.2; s1 <- 1.7; s2 <- 100000000 plot(density(rgenf.orig(10000, mu=mu, sigma=sigma, s1=s1, s2=s2))) lines(density(rgengamma.orig(10000, shape=1/sigma, scale=exp(mu) / s1^sigma, k=s1)), lty=2) } }) flexsurv/tests/testthat/test_mstate.R0000644000176200001440000002235714623351645017633 0ustar liggesuserscontext("Multi-state modelling and prediction") bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp") tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) tgrid <- seq(0,14,by=0.1) bwei <- flexsurvreg(Surv(years, status) ~ trans + shape(trans), data=bosms3, dist="weibull") bspl <- flexsurvspline(Surv(years, status) ~ trans + gamma1(trans), data=bosms3, k=3) bexp.markov <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, data=bosms3, dist="exp") bln.markov <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, data=bosms3, dist="lnorm") test_that("msfit.flexsurvreg",{ mexp <- msfit.flexsurvreg(bexp, t=0.01, trans=tmat, tvar="trans") summ <- summary(bexp, t=0.01, type="cumhaz", ci=FALSE, newdata=list(trans=factor(1:3, levels=1:3))) summ <- as.numeric(unlist(lapply(summ, function(x)x$est[x$time==0.01]))) expect_equal(mexp$Haz$Haz[mexp$Haz$time==0.01], summ) mwei <- msfit.flexsurvreg(bwei, t=c(0.01, 0.02), trans=tmat, tvar="trans", B=10) mspl <- msfit.flexsurvreg(bspl, t=c(0.01, 0.02), trans=tmat, tvar="trans", B=10) }) ## With covariates suppressWarnings(RNGversion("3.5.0")) set.seed(1) bosms3$x <- rnorm(nrow(bosms3)) bexp.cov <- flexsurvreg(Surv(years, status) ~ trans + x, data=bosms3, dist="exp") bexp.markov.cov <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans + x, data=bosms3, dist="exp") test_that("newdata in msfit.flexsurvreg",{ expect_error({ msfit.flexsurvreg(bexp.cov, newdata=list(x=1), t=c(0,5,10), trans=tmat, variance=FALSE) msfit.flexsurvreg(bexp.cov, newdata=list(x=2), t=c(0,5,10), trans=tmat, variance=FALSE) msfit.flexsurvreg(bexp.cov, newdata=list(x=c(1,2,3)), t=c(0,5,10), trans=tmat, variance=FALSE) }, NA) }) test_that("Errors in msfit.flexsurvreg",{ expect_error(msfit.flexsurvreg(bexp.cov, t=seq(0,150,10), trans=tmat), "Value.* of covariate.* .+ not supplied") expect_error(msfit.flexsurvreg(bexp.cov, t=seq(0,150,10), trans=tmat, tvar="foo"), "variable .* not in model") expect_error(msfit.flexsurvreg(bexp.cov, newdata=list(x=c(1,2)), t=c(0,5,10), trans=tmat, variance=FALSE), "length of variables .+ must be") }) test_that("pmatrix.fs",{ pmat <- pmatrix.fs(bexp.markov, t=c(5,10), trans=tmat) expect_equal(pmat$"5"[1,2], 0.267218506920585, tolerance=1e-04) pmat <- pmatrix.fs(bexp.markov.cov, t=c(5,10), trans=tmat, newdata=list(x=1)) expect_equal(pmat$"5"[1,2], 0.259065437633427, tolerance=1e-04) }) test_that("totlos.fs for flexsurvreg objects",{ tl <- totlos.fs(bexp.markov, t=c(5), trans=tmat) expect_equal(as.numeric(tl), c(2.89231556324412, 0, 0, 1.06822543404334, 2.77639174263866, 0, 1.03945900271255, 2.22360825736133, 5), tolerance=1e-06) tl <- totlos.fs(bexp.markov.cov, t=c(5), trans=tmat, newdata=list(x=1)) expect_equal(as.numeric(tl), c(2.76115934740386, 0, 0, 1.08844199049896, 2.64568022609759, 0, 1.15039866209718, 2.35431977390241, 5)) tl <- totlos.fs(bexp.markov, t=c(5,10), trans=tmat) expect_equal(as.numeric(tl[[1]]), c(2.89231557124359, 0, 0, 1.06822540869797, 2.77639177178247, 0, 1.03945902005845, 2.22360822821753, 5)) tl <- totlos.fs(bexp.markov.cov, t=c(5,10), trans=tmat, newdata=list(x=1)) expect_equal(as.numeric(tl[[1]]),c(2.76115934740386, 0, 0, 1.08844199049896, 2.64568022609759, 0, 1.15039866209718, 2.35431977390241, 5)) attr(tl, "P") }) test_that("pmatrix.simfs for flexsurvreg objects",{ expect_error({ pmatrix.simfs(bwei, t=5, trans=tmat, M=100) pmatrix.simfs(bexp.cov, t=5, trans=tmat, newdata=list(x=1), M=100) }, NA) dimnames(tmat) <- rep(list(paste("State",1:3)),2) set.seed(1) p5 <- pmatrix.simfs(bexp, t=5, trans=tmat, M=1000) p10 <- pmatrix.simfs(bexp, t=10, trans=tmat, M=1000) pboth <- pmatrix.simfs(bexp, t=c(0, 5,10), trans=tmat) expect_equivalent(p5, pboth[,,"5"], tol=0.1) (p5 <- pmatrix.simfs(bexp, t=5, trans=tmat, ci=TRUE, M=100, B=3)) expect_gt(p5[1,1], attr(p5,"lower")[1,1]) set.seed(1) (pboth <- pmatrix.simfs(bexp, t=c(0, 5,10), trans=tmat, ci=TRUE, M=1000, B=3)) expect_gt(pboth[1,1,"5"], attr(pboth,"lower")[1,1,"5"]) set.seed(1) (pt <- pmatrix.simfs(bexp, t=c(0, 5,10), trans=tmat, ci=TRUE, M=1000, B=3, tidy=TRUE)) expect_equal(pboth[1,2,"5"], pt[pt$from=="State 1" & pt$to=="State 2" & pt$t==5, "p"]) expect_equal(attr(pboth,"lower")[1,2,"5"], pt[pt$from=="State 1" & pt$to=="State 2" & pt$t==5, "lower"]) expect_equal(attr(pboth,"upper")[1,2,"5"], pt[pt$from=="State 1" & pt$to=="State 2" & pt$t==5, "upper"]) }) test_that("totlos.simfs for flexsurvreg objects",{ expect_error({ totlos.simfs(bexp, t=5, trans=tmat, M=100) totlos.simfs(bwei, t=5, trans=tmat, M=100) totlos.simfs(bexp.cov, t=5, trans=tmat, newdata=list(x=1), M=100) totlos.simfs(bexp, t=5, trans=tmat, M=100) totlos.simfs(bwei, t=5, trans=tmat, M=100) totlos.simfs(bexp.cov, t=5, trans=tmat, newdata=list(x=1), M=100) }, NA) }) ### List format for independent transition-specific models bwei.list <- bweic.list <- bweim.list <- bexpc.list <- vector(3, mode="list") for (i in 1:3) { bwei.list[[i]] <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==i), data = bosms3, dist = "weibull") bweic.list[[i]] <- flexsurvreg(Surv(years, status) ~ x, subset=(trans==i), data = bosms3, dist = "weibull") bweim.list[[i]] <- flexsurvreg(Surv(Tstart, Tstop, status) ~ 1, subset=(trans==i), data=bosms3, dist="weibull") bexpc.list[[i]] <- flexsurvreg(Surv(years, status) ~ x, subset=(trans==i), data=bosms3, dist="exp") } test_that("multistate output functions for list of models objects", { set.seed(1) totlos.simfs(bwei.list, t=5, trans=tmat, M=10) totlos.simfs(bweic.list, t=5, trans=tmat, M=100, newdata=list(x=0)) totlos.simfs(bweic.list, t=5, trans=tmat, M=100, newdata=list(x=0), tcovs="x") pmatrix.simfs(bwei.list, t=5, trans=tmat, M=100) pmatrix.simfs(bweic.list, t=10, trans=tmat, M=10000, newdata=list(x=0), tcovs="x") set.seed(1) pnt <- pmatrix.simfs(bweic.list, t=5, trans=tmat, M=100, newdata=list(x=0)) set.seed(1) pt <- pmatrix.simfs(bweic.list, t=c(5), trans=tmat, M=100, newdata=list(x=0), tidy=TRUE) expect_equal(pnt[1,2], pt$p[pt$from=="1" & pt$to=="2" & pt$t==5]) pmatrix.fs(bweim.list, t=5, trans=tmat) pmatrix.fs(bweim.list, t=c(5,10), trans=tmat) pmat1 <- pmatrix.fs(bweic.list, t=c(5,10), trans=tmat, newdata=list(x=-1)) pmat3 <- pmatrix.fs(bweic.list, t=c(5,10), trans=tmat, newdata=list(x=c(-1,-1,-1))) expect_equal(pmat1[[1]], pmat3[[1]]) expect_error(pmatrix.fs(bweic.list, t=c(5,10), trans=tmat, newdata=list(x=c(-1,-1))), "must either have one row, or one row for each of the 3 allowed transitions") pmatrix.fs(bln.markov, t=5, trans=tmat) totlos.fs(bweim.list, t=5, trans=tmat) totlos.fs(bln.markov, t=5, trans=tmat) }) test_that("list and non-list format give same estimates", { expect_equal( as.numeric(pars.fmsm(bwei, trans=tmat)[[1]]), as.numeric(pars.fmsm(bwei.list, trans=tmat)[[1]]), tolerance=1e-04) bexpci <- flexsurvreg(Surv(years, status) ~ trans*x, data=bosms3, dist="exp") expect_equal( as.numeric(pars.fmsm(bexpci, newdata=list(x=1), trans=tmat)[[2]]), as.numeric(pars.fmsm(bexpc.list, newdata=list(x=1), trans=tmat)[[2]]), tolerance=1e-05) expect_equal(pmatrix.fs(bwei, trans=tmat), pmatrix.fs(bwei.list, trans=tmat), tolerance=1e-04) expect_equal(totlos.fs(bwei, trans=tmat), totlos.fs(bwei.list, trans=tmat), tolerance=1e-04) expect_equal(msfit.flexsurvreg(bwei, trans=tmat, t=1:10, variance=FALSE), msfit.flexsurvreg(bwei.list, trans=tmat, t=1:10, variance=FALSE), tolerance=1e-04) expect_equal(msfit.flexsurvreg(bexpci, newdata=list(x=1), trans=tmat, t=1:10, variance=FALSE), msfit.flexsurvreg(bexpc.list, newdata=list(x=1), trans=tmat, t=1:10, variance=FALSE), tolerance=1e-05) }) test_that("different model families for different transitions", { blist <- vector(3, mode="list") blist[[1]] <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1), data=bosms3, dist="exp") blist[[2]] <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2), data=bosms3, dist="gamma") blist[[3]] <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==3), data=bosms3, dist="weibull") expect_equal(pmatrix.fs(blist, t=c(5,10), trans=tmat)$`5`[1,2], 0.2423839, tolerance=1e-04) expect_equal(totlos.fs(blist, trans=tmat)[1,2], 0.08277735, tolerance=1e-04) blistx <- vector(3, mode="list") blistx[[1]] <- flexsurvreg(Surv(years, status) ~ x, subset=(trans==1), data=bosms3, dist="exp") blistx[[2]] <- flexsurvreg(Surv(years, status) ~ x, subset=(trans==2), data=bosms3, dist="gamma") blistx[[3]] <- flexsurvreg(Surv(years, status) ~ x, subset=(trans==3), data=bosms3, dist="weibull") expect_equal(pmatrix.fs(blistx, t=c(5,10), trans=tmat, newdata=list(x=1))$`5`[1,2], 0.2291726, tolerance=1e-04) expect_equal(totlos.fs(blistx, trans=tmat, newdata=list(x=1))[1,2],0.08698692 , tolerance=1e-04) }) flexsurv/tests/testthat/test_fmixmsm.R0000644000176200001440000000555314272447617020022 0ustar liggesuserstest_that("fmixmsm state pathways: basic competing risks",{ tbl_data <- data.frame( to = factor(1:3, levels = 1:3, labels = c("response", "progression", "death")), dt = rep(1, 3), status = rep(1, 3)) fit1 <- flexsurvmix(Surv(dt, status) ~ 1, event = tbl_data$to, data = tbl_data, dists = c("response" = "exponential", "progression" = "exponential", "death" = "exponential")) fit <- fmixmsm("stable" = fit1) expect_equivalent(attr(fit, "pathways"), list(c("stable", "response"), c("stable", "progression"), c("stable", "death"))) }) test_that("fmixmsm state pathways: multiple routes to same absorbing state",{ tbl_data <- data.frame( to = factor(1:3, levels = 1:3, labels = c("response", "progression", "death")), dt = rep(1, 3), status = rep(1, 3)) fit1 <- flexsurvmix(Surv(dt, status) ~ 1, event = tbl_data$to, data = tbl_data, dists = c("response" = "exponential", "progression" = "exponential", "death" = "exponential")) tbl_data <- data.frame( to = factor(1:2, levels = 1:2, labels = c("progression", "death")), dt = rep(1, 2), status = rep(1, 2)) fit2 <- flexsurvmix(Surv(dt, status) ~ 1, event = tbl_data$to, data = tbl_data, dists = c("progression" = "exponential", "death" = "exponential")) tbl_data <- data.frame( to = factor(1:1, levels = 1:1, labels = c("death")), dt = rep(1, 1), status = rep(1, 1)) fit3 <- flexsurvmix( Surv(dt, status) ~ 1, event = tbl_data$to, data = tbl_data, dists = c("death" = "exponential")) fit <- fmixmsm("stable" = fit1, "response" = fit2, "progression" = fit3) expect_equivalent(attr(fit, "pathways"), list(c("stable", "response", "progression", "death"), c("stable", "response", "death"), c("stable", "progression", "death"), c("stable", "death"))) expect_false(attr(fit, "cycle")) }) test_that("fmixmsm state pathways: cycles",{ tbl_data <- data.frame( to = factor(1:3, levels = 1:3, labels = c("response", "progression", "death")), dt = rep(1, 3), status = rep(1, 3)) fit1 <- flexsurvmix(Surv(dt, status) ~ 1, event = tbl_data$to, data = tbl_data, dists = c("response" = "exponential", "progression" = "exponential", "death" = "exponential")) tbl_data <- data.frame( to = factor(1:2, levels = 1:2, labels = c("progression", "stable")), dt = rep(1, 2), status = rep(1, 2)) fit2 <- flexsurvmix(Surv(dt, status) ~ 1, event = tbl_data$to, data = tbl_data, dists = c("progression" = "exponential", "stable" = "exponential")) fit <- fmixmsm("stable" = fit1, "response" = fit2) expect_true(attr(fit, "cycle")) }) flexsurv/tests/testthat/test_utils.R0000644000176200001440000000770514472137051017471 0ustar liggesuserscontext("Distribution functions and utilities") ## note - standard q fns in R return zero for p=0 for positive dists, but -Inf for real dists. tol <- 1e-06 test_that("Exponential hazards",{ expect_equal(hexp(c(-Inf, NaN, Inf, NA, -1, 0, 1), c(1,2,3)), c(0,NaN,3,NA,0,3,1)) expect_equal(hexp(c(-Inf, NaN, Inf, NA, -1, 0, 1), c(1,2,3), log=TRUE), log(c(0,NaN,3,NA,0,3,1))) expect_equal(Hexp(c(-Inf, NaN, Inf, NA, -1, 0, 1, 2, 4), c(1,2,3)), c(0,NaN,Inf, NA,0,0, 1, 4, 12)) expect_equal(Hexp(c(-Inf, NaN, Inf, NA, -1, 0, 1, 2, 4), c(1,2,3), log=TRUE), log(c(0,NaN,Inf, NA,0,0, 1, 4, 12))) expect_equal(dexp(c(1,2,3), c(2,3,4)) / (1 - pexp(c(1,2,3), c(2,3,4))), hexp(c(1,2,3), c(2,3,4))) expect_equal(-log(1 - pexp(c(1,2,3), c(2,3,4))), Hexp(c(1,2,3), c(2,3,4))) expect_equal(log(-log(1 - pexp(c(1,2,3), c(2,3,4)))), Hexp(c(1,2,3), c(2,3,4), log=TRUE)) expect_warning(hexp(c(1,1,1), c(-1, 0, 2)), "Negative rate") expect_warning(dexp(c(1,1,1), c(-1, 0, 2)), "NaNs produced") }) test_that("Weibull hazards",{ expect_equal(hweibull(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3)), dweibull(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3)) / (1 - pweibull(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3)))) expect_equal(Hweibull(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3)), -pweibull(c(1,1,1,1), c(1,1,2,2), c(1,3,1,3), lower.tail=FALSE, log.p=TRUE)) ## exponential reduction expect_equal(hweibull(c(-Inf, NaN, Inf, NA, -1, 0, 1), c(1,1,1), c(1,2,3)), c(0,NaN,1/3,NA,0,1/3,1)) ### positive shape, increasing hweibull(c(-Inf, -1, 0, 1, 2, Inf), 2, 2.5) ### neg shape, decreasing hweibull(c(-Inf, -1, 0, 1, 2, Inf), 0.5, 1) expect_equal(Hexp(c(-Inf, NaN, Inf, NA, -1, 0, 1, 2, 4), c(1,2,3)), c(0,NaN,Inf, NA,0,0, 1, 4, 12)) }) test_that("Log-normal hazards",{ expect_equal(hlnorm(1, 2, 3, log=TRUE), log(hlnorm(1,2,3,log=FALSE))) expect_equal(Hlnorm(1, 2, 3, log=TRUE), log(-log(1 - plnorm(1,2,3,log=FALSE)))) }) test_that("Gamma hazards",{ expect_equal(hgamma(1, 2, 3, log=TRUE), log(hgamma(1,2,3,log=FALSE))) expect_equal(Hgamma(1, 2, 3, log=TRUE), log(-log(1 - pgamma(1,2,3,log=FALSE)))) }) test_that("WeibullPH",{ a <- 0.1; m <- 2 b <- m^(-1/a) x <- c(-Inf, NaN, NA, -1, 0, 1, 2, Inf) expect_equal(dweibullPH(x, a, m), dweibull(x, a, b)) expect_equal(dweibullPH(x, a, m), dweibull(x, a, b), log=TRUE) expect_equal(pweibullPH(x, a, m), pweibull(x, a, b)) expect_equal(pweibullPH(x, a, m), pweibull(x, a, b), log.p=TRUE) expect_equal(pweibullPH(x, a, m), pweibull(x, a, b), lower.tail=FALSE) qq <- c(0, 0.5, 0.7, 1) expect_equal(qweibullPH(qq, a, m), qweibull(qq, a, b)) expect_equal(hweibullPH(x, a, m), hweibull(x, a, b)) expect_equal(hweibullPH(x, a, m), hweibull(x, a, b), log=TRUE) expect_equal(HweibullPH(x, a, m), Hweibull(x, a, b)) expect_equal(HweibullPH(x, a, m), Hweibull(x, a, b), log=TRUE) set.seed(1); x1 <- rweibull(10, a, b) set.seed(1); x2 <- rweibullPH(10, a, m) expect_equal(x1, x2) fitw <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ rx, data = ovarian, dist="weibull") fitwp <- flexsurvreg(formula = Surv(ovarian$futime, ovarian$fustat) ~ rx, data = ovarian, dist="weibullPH") expect_equal(fitw$res["shape","est"], fitwp$res["shape","est"], tolerance=1e-06) expect_equal(fitw$res["scale","est"], fitwp$res["scale","est"]^(-1/fitwp$res["shape","est"]), tolerance=1e-05) expect_equal(coef(fitw)["rx"], -coef(fitwp)["rx"] / fitwp$res["shape","est"]) }) test_that("rmst_generic",{ expect_equal(rmst_lnorm(500, start=250, meanlog=7.4225, sdlog = 1.1138), rmst_generic(plnorm, t=500, start=250, meanlog=7.4225, sdlog = 1.1138)) }) #implemented in C++ test_that("exph",{ exph_r <- function(y)(y + sqrt(y^2 + 1)) dexph_r <- function(y)(1 + y / sqrt(y^2 + 1)) expect_equal(exph(1.1), exph_r(1.1)) expect_equal(dexph(1.1), dexph_r(1.1)) }) flexsurv/tests/testthat/test_fmixmsm_outputs.R0000644000176200001440000000705714471606611021616 0ustar liggesusersif (!identical(Sys.getenv("NOT_CRAN"), "true")) return() ## simulate events following hospital n <- 1000 set.seed(1) x <- rnorm(n) y <- rbinom(n, 1, 0.5) events <- c("icu","death","discharge") pbase <- c(0.2, 0.3, 0.5) event <- numeric(n) for (i in 1:n){ p <- pmnlogit(qmnlogit(pbase) + 2*x[i] + 3*y[i]) event[i] <- sample(events, size=1, prob=p, replace=TRUE) } t <- numeric(n) t[event=="death"] <- rgamma(sum(event=="death"), 2.5, 1.2) t[event=="discharge"] <- rgamma(sum(event=="discharge"), 3.5, 0.6) t[event=="icu"] <- rgamma(sum(event=="icu"), 1, 3.2) cens <- as.numeric(t > 3) t[cens] <- 3 status <- 1 - cens dat <- data.frame(t, status, x, y, event) ## model for event following hospital fhosp <- flexsurvmix(Surv(t, status) ~ x, pformula = ~x + y, data=dat, event=event, dists=c("gamma","gamma","gamma")) ## simulate events following ICU nicu <- sum(dat$event=="icu") picu <- c(0.4, 0.6) set.seed(1) evicu <- sample(c("death","discharge"), size=nicu, prob=picu, replace=TRUE) ti <- numeric(nicu) ti[evicu=="death"] <- rgamma(sum(evicu=="death"), 1.5, 1) ti[evicu=="discharge"] <- rgamma(sum(evicu=="discharge"), 0.5, 3) censi <- as.numeric(ti > 1) ti[censi] <- 1 statusi <- 1 - censi dati <- data.frame(ti, statusi, evicu) ## model for event following ICU ficu <- flexsurvmix(Surv(ti, statusi) ~ 1, data=dati, event=evicu, dists=c("gamma","gamma")) ## Construct multi-state model object fm <- fmixmsm("hospital"=fhosp, "icu"=ficu) nd <- data.frame(x=c(0,0.02), y=c(0,0.01)) test_that("ppath_fmixmsm",{ probh <- probs_flexsurvmix(fhosp) probi <- probs_flexsurvmix(ficu) pp <- ppath_fmixmsm(fm) expect_equal( probh$val[probh$event=="icu"] * probi$val[probi$event=="death"], pp$val[pp$pathway=="hospital-icu-death"] ) ppath_fmixmsm(fm, final=TRUE) probh <- probs_flexsurvmix(fhosp,newdata=nd) probi <- probs_flexsurvmix(ficu,newdata=nd) pp <- ppath_fmixmsm(fm, newdata=nd) expect_equal( probh$val[probh$event=="icu" & probh$x==0.02 & probh$y==0.01] * probi$val[probi$event=="death" & probi$x==0.02 & probi$y==0.01], pp$val[pp$pathway=="hospital-icu-death" & pp$x==0.02 & pp$y==0.01] ) ppath_fmixmsm(fm, newdata=nd, final=TRUE) expect_true(is.numeric(ppath_fmixmsm(fm, B=3)$lower)) expect_true(is.numeric(ppath_fmixmsm(fm, final=TRUE, B=3)$lower)) expect_true(is.numeric(ppath_fmixmsm(fm, newdata=nd, B=3)$lower)) expect_true(is.numeric(ppath_fmixmsm(fm, newdata=nd, final=TRUE, B=3)$lower)) }) test_that("meanfinal_fmixmsm",{ meanfinal_fmixmsm(fm) meanfinal_fmixmsm(fm, final=TRUE) meanfinal_fmixmsm(fm, newdata=nd) meanfinal_fmixmsm(fm, newdata=nd, final=TRUE) expect_true(is.numeric(meanfinal_fmixmsm(fm, B=3)$lower)) expect_true(is.numeric(meanfinal_fmixmsm(fm, final=TRUE, B=3)$lower)) expect_true(is.numeric(meanfinal_fmixmsm(fm, newdata=nd, B=3)$lower)) expect_true(is.numeric(meanfinal_fmixmsm(fm, newdata=nd, final=TRUE, B=3)$lower)) }) if (covr::in_covr()){ test_that("qfinal_fmixmsm",{ expect_error({ qfinal_fmixmsm(fm, newdata=nd) qfinal_fmixmsm(fm, newdata=nd, final=TRUE) qfinal_fmixmsm(fm, newdata=nd, probs=c(0.25, 0.75)) qfinal_fmixmsm(fm, newdata=nd, probs=c(0.25, 0.75), final=TRUE) qfinal_fmixmsm(fm, newdata=nd, B=10) qfinal_fmixmsm(fm, newdata=nd, B=10, final=TRUE) qfinal_fmixmsm(fm, newdata=nd, n=100, B=10) qfinal_fmixmsm(fm, newdata=nd, n=100, B=10, final=TRUE) }, NA) }) } flexsurv/tests/testthat/test_simulate.R0000644000176200001440000000237414632520504020146 0ustar liggesusersfit <- flexsurvreg(formula = Surv(futime, fustat) ~ rx, data = ovarian, dist="weibull") nd <- data.frame(rx=1:2) test_that("simulate.flexsurvreg",{ sim <- simulate(fit) expect_true(nrow(sim)==nrow(ovarian)) sim <- simulate(fit, newdata=nd) expect_true(all(sim$time_1 > 0)) sim <- simulate(fit, seed=1002, newdata=nd) expect_equal(sim$time_1, c(575, 2392), tolerance=1) sim <- simulate(fit, seed=1002, newdata=nd, nsim=5) expect_true(all(sim$time_2 > 0)) sim <- simulate(fit, seed=1002, newdata=nd, nsim=5, censtime = 1000, tidy=TRUE) expect_equal(sim$event[sim$time==1000], rep(0, 5)) sim <- simulate(fit, seed=1002, newdata=nd, nsim=5, censtime = c(500,1000), tidy=TRUE) expect_equal(sim$event, c(0,0,0,1,1,0,0,0,1,0)) sim <- simulate(fit, seed=1002, newdata=nd, start=500, tidy=TRUE) expect_true(all(sim$time > 500)) sim <- simulate(fit, seed=1002, newdata=nd, start=c(500,700), tidy=TRUE) expect_true(all(sim$time > 500)) }) test_that("simulate.flexsurvreg with left truncation",{ fit <- flexsurvreg(formula = Surv(futime, fustat) ~ rx, data = ovarian, dist="weibull") nd <- ovarian sim <- simulate(fit, seed=1003, newdata=nd, nsim = 20, start = nd$futime) expect_true(all(sim[,1:20] > nd$futime)) }) flexsurv/tests/testthat/test-broom.R0000644000176200001440000000247014434176644017370 0ustar liggesuserstest_that("check tidy", { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") expect_equal( tidy(fitw, transform = 'baseline.real')$estimate, coef(fitw) ) }) test_that("check tidy against survreg", { fit_fs <- flexsurvreg(Surv(futime, fustat) ~ ecog.ps, data = ovarian, dist = "weibull") fit_sr <- survreg(Surv(futime, fustat) ~ ecog.ps, data = ovarian, dist = "weibull") expect_equal( object = as.data.frame(tidy(fit_fs)[3, ]), expected = as.data.frame(broom::tidy(fit_sr)[2, ]), tolerance = 1e-6 ) }) test_that("check glance", { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") gl <- glance(fitw) expect_equal(gl$N, fitw$N) expect_equal(gl$events, fitw$events) expect_equal(gl$trisk, fitw$trisk) expect_equal(gl$df, fitw$npars) expect_equal(gl$logLik, fitw$loglik) expect_equal(gl$AIC, fitw$AIC) expect_equal(gl$BIC, BIC(fitw)) }) test_that("check augment", { fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") expect_equal(augment(fitw)$.pred_time, predict(fitw)$.pred_time) expect_equal(augment(fitw)$.resid, residuals(fitw)) }) flexsurv/tests/testthat/test_standsurv.R0000644000176200001440000004227014554246735020371 0ustar liggesuserstest_that('survival predictions', { fitw <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") # Single time predictions ss <- standsurv(fitw, at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4) s <- summary(fitw, tidy = TRUE, type = 'survival', t = 4, ci = FALSE) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s$est) # Multiple time predictions ss <- standsurv(fitw, at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = c(4,5)) s <- summary(fitw, tidy = TRUE, type = 'survival', t = c(4,5), ci = FALSE) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s$est) }) test_that('hazard predictions', { fitw <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") # Single time predictions ss <- standsurv(fitw, type="hazard", at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4) s <- summary(fitw, tidy = TRUE, type = 'hazard', t = 4, ci = FALSE) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s$est) # Multiple time predictions ss <- standsurv(fitw, type="hazard", at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = c(4,5)) s <- summary(fitw, tidy = TRUE, type = 'hazard', t = c(4,5), ci = FALSE) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s$est) }) test_that('quantile predictions', { fitw <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") # Multiple quantile predictions (q=0.1 and 0.5) ss <- standsurv(fitw, type="quantile", at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), quantiles = seq(0.1,0.9, by=0.1)) s <- summary(fitw, tidy = TRUE, type = 'quantile', quantiles = seq(0.1,0.9, by=0.1), ci = FALSE) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s$est, tolerance = .Machine$double.eps^0.25) # use same tolerance as uniroot # Test marginal predictions of quantiles correspond to inverse marginal survival set.seed(136) bc$age <- rnorm(dim(bc)[1], mean = 65 - bc$recyrs, sd = 5) fitw2 <- flexsurvreg(Surv(recyrs, censrec) ~ group + age, data=bc, dist="weibull") ss <- standsurv(fitw2, type="quantile", at=list(list(group="Good")), quantiles = seq(0.1, 0.9, by=0.1)) ss # Feed back in the quantiles and calculate marginal survival probabilities ss2 <- standsurv(fitw2, type="survival", at=list(list(group="Good")), t=ss$at1) expect_equal(1-seq(0.1, 0.9, by=0.1), ss2$at1, tolerance = .Machine$double.eps^0.25) # use same tolerance as uniroot }) test_that('rmst predictions', { fitw <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") # Single time predictions ss <- standsurv(fitw, type="rmst", at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4) s <- summary(fitw, tidy = TRUE, type = 'rmst', t = 4, ci = FALSE) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s$est) # Multiple time predictions ss <- standsurv(fitw, type="rmst", at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = c(4,5)) s <- summary(fitw, tidy = TRUE, type = 'rmst', t = c(4,5), ci = FALSE) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s$est) }) test_that('marginal_predictions', { set.seed(136) bc$age <- rnorm(dim(bc)[1], mean = 65 - bc$recyrs, sd = 5) # Single time marginal predictions for survival fitw2 <- flexsurvreg(Surv(recyrs, censrec) ~ group + age, data=bc, dist="weibull") ss <- standsurv(fitw2, at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4) s.good <- summary(fitw2, bc %>% mutate(group="Good"), tidy = TRUE, type = 'survival', t = 4, ci = FALSE) s.medium <- summary(fitw2, bc %>% mutate(group="Medium"), tidy = TRUE, type = 'survival', t = 4, ci = FALSE) s.poor <- summary(fitw2, bc %>% mutate(group="Poor"), tidy = TRUE, type = 'survival', t = 4, ci = FALSE) s.marginal <- c(mean(s.good$est), mean(s.medium$est), mean(s.poor$est)) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s.marginal) # Single time marginal predictions for hazard ss <- standsurv(fitw2, type="hazard", at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4) h.good <- summary(fitw2, bc %>% mutate(group="Good"), tidy = TRUE, type = 'hazard', t = 4, ci = FALSE) h.medium <- summary(fitw2, bc %>% mutate(group="Medium"), tidy = TRUE, type = 'hazard', t = 4, ci = FALSE) h.poor <- summary(fitw2, bc %>% mutate(group="Poor"), tidy = TRUE, type = 'hazard', t = 4, ci = FALSE) s.marginal <- c(weighted.mean(h.good$est, s.good$est), weighted.mean(h.medium$est, s.medium$est), weighted.mean(h.poor$est, s.poor$est)) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s.marginal) # Single time marginal predictions for rmst ss <- standsurv(fitw2, type="rmst", at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4) rmst.good <- summary(fitw2, bc %>% mutate(group="Good"), tidy = TRUE, type = 'rmst', t = 4, ci = FALSE) rmst.medium <- summary(fitw2, bc %>% mutate(group="Medium"), tidy = TRUE, type = 'rmst', t = 4, ci = FALSE) rmst.poor <- summary(fitw2, bc %>% mutate(group="Poor"), tidy = TRUE, type = 'rmst', t = 4, ci = FALSE) s.marginal <- c(mean(rmst.good$est), mean(rmst.medium$est), mean(rmst.poor$est)) expect_equal(c(ss$at1, ss$at2, ss$at3) ,s.marginal) }) test_that('predictions with missing data', { set.seed(136) bc$age <- rnorm(dim(bc)[1], mean = 65 - bc$recyrs, sd = 5) bc_miss <- bc bc_miss$age[[5]] <- NA fitw2 <- flexsurvreg(Surv(recyrs, censrec) ~ group + age, data=bc_miss, dist="weibull") # Single time predictions expect_warning(standsurv(fitw2, type="rmst", at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4, newdata = bc_miss)) }) test_that('model with no covariates', { fitw <- flexsurvreg(Surv(recyrs, censrec) ~ 1, data=bc, dist="weibull") # Single time prediction - checking survival with predict.flexsurvreg expect_equal(as.numeric(standsurv(fitw, t = 4, newdata = bc)[1,2]), as.numeric(predict(fitw, type = "survival", times = 4, newdata = bc)[1,2])) }) test_that('all-cause predictions from RS model', { # Single time prediction - checking all-cause survival from an RS model # with predict.flexsurvreg, where background rates are zero fitw <- flexsurvreg(Surv(recyrs, censrec) ~ 1, data=bc, dist="weibull") set.seed(136) bc$age <- rnorm(dim(bc)[1], mean = 65 - bc$recyrs, sd = 5) bc$agedays <- floor(bc$age * 365.25) ## Create some random diagnosis dates centred on 01/01/2010 with SD=1 year bc$diag <- as.Date(floor(rnorm(dim(bc)[1], mean = as.Date("01/01/2010", "%d/%m/%Y"), sd=365)), origin="1970-01-01") ## Create sex (assume all are female) bc$sex <- factor("female") ## Assume background hazard of zero bc$bhazard <- 0 ## ratetable (used by standsurv) new.ratetable <- survexp.us new.ratetable[!is.na(new.ratetable)] <- 0 fitw2 <- flexsurvreg(Surv(recyrs, censrec) ~ 1, data=bc, dist="weibull", bhazard=bhazard) pred1 <- as.numeric(predict(fitw, type = "survival", times = 4, newdata = bc)[1,2]) pred2 <- as.numeric(standsurv(fitw2, t=4, newdata=bc, type="survival", rmap=list(sex = sex, year = diag, age = agedays ), ratetable = new.ratetable, scale.ratetable = 365.25)[1,2]) expect_equal(pred1, pred2) # all-cause survival quantile # just use one row of data pred1 <- summary(fitw, type = "quantile", quantiles = seq(0.1, 0.9, 0.1), newdata = bc[1,], ci=F, tidy=T) pred2 <- standsurv(fitw2, quantiles = seq(0.1, 0.9, 0.1), newdata=bc[1,], type="quantile", rmap=list(sex = sex, year = diag, age = agedays ), ratetable = new.ratetable, scale.ratetable = 365.25) expect_equal(pred1$est, pred2$at1, tolerance = .Machine$double.eps^0.25) # use same tolerance as uniroot) }) test_that("standsurv deltamethod and bootstrap SEs",{ fitw <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") ss <- standsurv(fitw, at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4, se=TRUE, boot=FALSE) expect_true(is.numeric(ss$at1_se)) ssb <- standsurv(fitw, at=list(list(group="Good"), list(group="Medium"), list(group="Poor")), t = 4, se=TRUE, boot=TRUE, B=5) expect_true(ssb$at1_se != ss$at1_se) }) if (interactive() || covr::in_covr()){ test_that("standsurv plot",{ expect_error({ ## Use bc dataset, with an age variable appended ## mean age is higher in those with smaller observed survival times newbc <- bc newbc$age <- rnorm(dim(bc)[1], mean = 65-scale(newbc$recyrs, scale=FALSE), sd = 5) ## Fit a Weibull flexsurv model with group and age as covariates weib_age <- flexsurvreg(Surv(recyrs, censrec) ~ group+age, data=newbc, dist="weibull") ## Calculate standardized survival and the difference in standardized survival ## for the three levels of group across a grid of survival times standsurv_weib_age <- standsurv(weib_age, at = list(list(group="Good"), list(group="Medium"), list(group="Poor")), t=seq(0,7, length=100), contrast = "difference", ci=TRUE, boot = TRUE, B=10, seed=123) plot(standsurv_weib_age) plot(standsurv_weib_age) + ggplot2::theme_bw() + ggplot2::ylab("Survival") + ggplot2::xlab("Time (years)") + ggplot2::guides(color=ggplot2::guide_legend(title="Prognosis"), fill=ggplot2::guide_legend(title="Prognosis")) plot(standsurv_weib_age, contrast=TRUE, ci=TRUE) + ggplot2::ylab("Difference in survival") }, NA) }) } test_that("examples from help(standsurv) run",{ skip_on_cran() expect_error({ ## mean age is higher in those with smaller observed survival times newbc <- bc set.seed(1) newbc$age <- rnorm(dim(bc)[1], mean = 65-scale(newbc$recyrs, scale=FALSE), sd = 5) ## Fit a Weibull flexsurv model with group and age as covariates weib_age <- flexsurvreg(Surv(recyrs, censrec) ~ group+age, data=newbc, dist="weibull") ## Calculate standardized survival and the difference in standardized survival ## for the three levels of group across a grid of survival times standsurv_weib_age <- standsurv(weib_age, at = list(list(group="Good"), list(group="Medium"), list(group="Poor")), t=seq(0,7, length.out=100), contrast = "difference", ci=FALSE) standsurv_weib_age ## Calculate hazard of standardized survival and the marginal hazard ratio ## for the three levels of group across a grid of survival times ## 10 bootstraps for confidence intervals (this should be larger) haz_standsurv_weib_age <- standsurv(weib_age, at = list(list(group="Good"), list(group="Medium"), list(group="Poor")), t=seq(0,7, length.out=100), type="hazard", contrast = "ratio", boot = TRUE, B=10, ci=TRUE) haz_standsurv_weib_age if (interactive()){ plot(haz_standsurv_weib_age, ci=TRUE) ## Hazard ratio plot shows a decreasing marginal HR ## Whereas the conditional HR is constant (model is a PH model) plot(haz_standsurv_weib_age, contrast=TRUE, ci=TRUE) } ## Calculate standardized survival from a Weibull model together with expected ## survival matching to US lifetables ## age at diagnosis in days. This is required to match to US ratetable, whose ## timescale is measured in days newbc$agedays <- floor(newbc$age * 365.25) ## Create some random diagnosis dates centred on 01/01/2010 with SD=1 year ## These will be used to match to expected rates in the lifetable newbc$diag <- as.Date(floor(rnorm(dim(newbc)[1], mean = as.Date("01/01/2010", "%d/%m/%Y"), sd=365)), origin="1970-01-01") ## Create sex (assume all are female) newbc$sex <- factor("female") standsurv_weib_expected <- standsurv(weib_age, at = list(list(group="Good"), list(group="Medium"), list(group="Poor")), t=seq(0,7, length.out=100), rmap=list(sex = sex, year = diag, age = agedays), ratetable = survival::survexp.us, scale.ratetable = 365.25, newdata = newbc) ## Plot marginal survival with expected survival superimposed plot(standsurv_weib_expected, expected=TRUE) }, NA) }) test_that('t ordering', { test_mod <- flexsurvreg(Surv(recyrs, censrec) ~ 1, data=bc, dist="weibull") # surv tvec <- c(3,1,4,2,3) ss1 <- standsurv(test_mod, t=tvec, type = "surv") ## summary.flexsurvreg output sum1 <- summary(test_mod, t=tvec, type = "surv") expect_equal(ss1$time, tvec) expect_equal(ss1$at1[1], ss1$at1[5]) expect_equal(ss1$at1, sum1[[1]]$est) # haz ss2 <- standsurv(test_mod, t=tvec, type = "haz") sum2 <- summary(test_mod, t=tvec, type = "haz") expect_equal(ss2$time, tvec) expect_equal(ss2$at1[1], ss2$at1[5]) expect_equal(ss2$at1, sum2[[1]]$est) # rmst ss3 <- standsurv(test_mod, t=tvec, type = "rmst") sum3 <- summary(test_mod, t=tvec, type = "rmst") expect_equal(ss3$time, tvec) expect_equal(ss3$at1[1], ss3$at1[5]) expect_equal(ss3$at1, sum3[[1]]$est) # bootstrap CIs set.seed(1) ss4 <- standsurv(test_mod, t=tvec, type = "surv", se = TRUE, ci = TRUE, boot = T, B = 5, seed = 1) expect_true(all(ss4$at1 >= ss4$at1_lci)) expect_true(all(ss4$at1 <= ss4$at1_uci)) # delta method CIs ss5 <- standsurv(test_mod, t=tvec, type = "surv", se = TRUE, ci = TRUE, boot = F) expect_true(all(ss5$at1 >= ss5$at1_lci)) expect_true(all(ss5$at1 <= ss5$at1_uci)) }) flexsurv/tests/testthat/test_rtrunc.R0000644000176200001440000000503614471622332017641 0ustar liggesusers set.seed(1) ## simulate time to initial event X <- rexp(1000, 0.2) ## simulate time between initial and final event tdelay <- rgamma(1000, 2, 10) tmax <- 40 obs <- X + tdelay < tmax rtrunc <- tmax - X dat <- data.frame(X, tdelay, rtrunc)[obs,] fs <- flexsurvrtrunc(t=tdelay, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="gamma", theta=0.2) test_that("flexsurvrtrunc works", { expect_equal(fs$loglik, -7846.25011895056) }) test_that("summary.flexsurvtrunc works", { summmean <- summary(fs, type="mean") expect_equal(summmean$est, 0.2095068) summmed <- summary(fs, type="median") expect_equal(summmed$est, 0.1746857) summary(fs, type="rmst", t=0.3) summq <- summary(fs, type="quantile") summq2 <- summary(fs, type="quantile", quantiles=c(0.025, 0.5, 0.975)) expect_equal(summmed$est, summq$est) expect_equal(summmed$est, summq2$est[summq2$quantile==0.5]) summ <- summary(fs, type="survival", t=c(0.01, 0.02, 0.03)) expect_equal(summ$est[summ$time==0.02], pgamma(0.02, fs$res["shape","est"], fs$res["rate","est"], lower.tail=FALSE)) summary(fs, type="cumhaz", t=seq(0.01, 0.05, by=0.01)) summary(fs, type="hazard", t=seq(0.01, 0.05, by=0.01)) fntest <- function(shape, rate){2 * mean_gamma(shape,rate)} summfn <- summary(fs, fn=fntest, t=1) expect_equal(summfn$est, 2*summmean$est) set.seed(1) summse <- summary(fs, type="median", se=TRUE) expect_equal(summse$se, 0.004329825) }) test_that("survrtrunc works", { ## simulate some event time data set.seed(1) X <- rweibull(100, 2, 10) T <- rweibull(100, 2, 10) ## truncate above tmax <- 20 obs <- X + T < tmax rtrunc <- tmax - X dat <- data.frame(X, T, rtrunc)[obs,] sf <- survrtrunc(T, rtrunc, data=dat, tmax=tmax) sfnaive <- survfit(Surv(T) ~ 1, data=dat) ## Kaplan-Meier estimate ignoring truncation is biased expect_true(all(sf$surv[10:20] > sfnaive$surv[10:20])) if (interactive() || covr::in_covr()){ plot(sf, conf.int=TRUE) lines(sfnaive, conf.int=TRUE, lty=2, col="red") plot(sfnaive, conf.int=TRUE) lines(sf, conf.int=TRUE, lty=2, col="red") } ## truncate above the maximum observed time tmax <- max(X + T) + 10 obs <- X + T < tmax rtrunc <- tmax - X dat <- data.frame(X, T, rtrunc)[obs,] sf <- survrtrunc(T, rtrunc, data=dat, tmax=tmax) ## estimates identical to the standard Kaplan-Meier sfnaive <- survfit(Surv(T) ~ 1, data=dat) expect_equal(sf$surv[1:10], sfnaive$surv[1:10]) }) flexsurv/tests/testthat/test_outputs.R0000644000176200001440000002254414417262424020054 0ustar liggesuserstest_that("normboot.flexsurvreg",{ fite <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist="exp") set.seed(1); b1 <- normboot.flexsurvreg(fite, B=10, newdata=list(age=0)) set.seed(1); b1 <- normboot.flexsurvreg(fite, B=10, newdata=list(age=50)) set.seed(1); b2 <- normboot.flexsurvreg(fite, B=10, X=matrix(50,nrow=1)) expect_equivalent(b1, b2) set.seed(1); b1 <- normboot.flexsurvreg(fite, B=10, newdata=list(age=c(0,50))) set.seed(1); b2 <- normboot.flexsurvreg(fite, B=10, X=matrix(c(0,50),nrow=2)) expect_equivalent(b1, b2) ## return cov effs, not adjusted set.seed(1) normboot.flexsurvreg(fite, B=5, raw=TRUE) set.seed(1) normboot.flexsurvreg(fite, B=5, raw=TRUE, transform=TRUE) ## no covs fite <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist="exp") normboot.flexsurvreg(fite, B=5) normboot.flexsurvreg(fite, B=5, transform=TRUE) }) test_that("custom function in summary.flexsurvreg",{ fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist="weibull") median.weibull <- function(t, start, shape, scale) { qweibull(0.5, shape=shape, scale=scale) } summ <- summary(fitw, newdata=list(age=50), fn=median.weibull, t=1, B=10) expect_equal(summ[[1]][1,"est"], 1575.803185910278, tol=1e-04) summ <- summary(fitw, newdata=list(age=50), fn=median.weibull, t=c(1,2,3), B=10) expect_equal(summ[[1]][1,"est"], summ[[1]][2,"est"]) mean.weibull <- function(shape, scale=1) { scale * gamma(1 + 1/shape) } median.weibull <- function(t, start, shape, scale) { scale * log(2)^(1/shape) } }) test_that("newdata in summary.flexsurvreg: dynamic cut, unknown factor level",{ fl2a <- flexsurvspline(Surv(time, event = status) ~ factor(sex) + cut(age,c(0,56,69,100)), data = lung, k = 2) su <- summary(fl2a, newdata = lung, B = 0) su1 <- su[[2]][1:5,] su <- summary(fl2a, newdata = lung[2,], B = 0) su2 <- su[[1]][1:5,] expect_equal(su1, su2) fl2b <- flexsurvspline(Surv(time, event = status) ~ factor(sex) + cut(age,4), data = lung, k = 2) # should break second summary expect_error(summary(fl2b, newdata = lung[2,], B = 0), "factor .+ has new level") }) lung$sex <- factor(lung$sex) fl3 <- flexsurvspline(Surv(time, event = status) ~ sex + age, data = lung, k = 2) test_that("newdata in summary.flexsurvreg: extra covariates in the list",{ su1 <- summary(fl3, newdata = lung, B = 0)[[1]][1:5,] su2 <- summary(fl3, newdata = lung[1,], B = 0)[[1]][1:5,] expect_equal(su1, su2) }) test_that("newdata in summary.flexsurvreg: are missing values passed through or dropped",{ luna <- lung[1:5,] luna$age[1] <- NA summ <- summary(fl3, newdata = luna, B = 0, t=100, tidy=TRUE) expect_true(is.na(summ$est[1])) summ <- summary(fl3, newdata = luna, B = 0, t=100, tidy=TRUE, na.action=na.omit) expect_true(!is.na(summ$est[1])) fitw <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull") ovarian_miss <- ovarian[1:2,] ovarian_miss$age[[1]] <- NA summ <- summary(fitw, ovarian_miss, type = 'rmst', t = 500, tidy=TRUE) expect_true(is.na(summ$est[1])) expect_true(!is.na(summ$est[2])) }) test_that("newdata in summary.flexsurvreg: missing covariates, factor not supplied as factor",{ expect_error(summary(fl3, newdata = list(age=10), B = 0), "Value of covariate .+ not supplied") }) test_that("newdata in summary.flexsurvreg: factor not supplied as factor",{ lung2 <- lung[1,]; lung2$sex <- as.numeric(1) expect_warning(expect_error(summary(fl3, newdata = lung2, B=0), "variable .+ fitted with type"), "not a factor") ## numeric doesn't work expect_warning(expect_error(summary(fl3, newdata = list(age=60, sex=1), B=0), "variable .+ fitted with type"), "not a factor") ## character works if matches one of the factor levels su <- summary(fl3, newdata = list(age=60, sex="1"), B=0) expect_error(summary(fl3, newdata = list(age=60, sex="foo"), B=0), "factor .+ has new level") }) test_that("summary.flexsurvreg tidy output",{ lung$sex2 <- as.factor(lung$sex) lung$agecat <- ifelse(lung$age<65,"<65",">=65") head(lung,20) Model.1 <- flexsurvreg(Surv(time, status) ~sex2+agecat ,data=lung, dist="weibull") Extrapolation.Data <- model.frame(Model.1)[,c(-1,-dim(model.frame(Model.1))[2])] Unique.counts <- as.data.frame(table(Extrapolation.Data)) ## bug reported by Owain Saunders st <- summary.flexsurvreg(Model.1, newdata=Unique.counts[,-3],t= c(4,5),tidy=TRUE, ci=FALSE) snt <- summary.flexsurvreg(Model.1, newdata=Unique.counts[,-3],t= c(4,5), ci=FALSE) expect_equal(st[st$time==5 & st$sex2==2 & st$agecat=="<65", "est"], snt[["sex2=2,agecat=<65"]][2,2]) res <- Model.1$res[,"est"] res.t <- Model.1$res.t[,"est"] expect_equal(pweibull(5, shape=res["shape"], scale=exp(res.t["scale"]+res.t["sex22"]), lower.tail=FALSE), snt[["sex2=2,agecat=<65"]][2,2]) ## no covariates Model.nc <- flexsurvreg(Surv(time, status) ~1 ,data=lung, dist="weibull") expect_equivalent(summary.flexsurvreg(Model.nc, t= c(4,5),tidy=TRUE, ci=FALSE), summary.flexsurvreg(Model.nc, t= c(4,5),tidy=FALSE, ci=FALSE)[[1]]) ## covariates but no newdata - covariate column should be included st <- summary.flexsurvreg(Model.1, tidy=TRUE, ci=FALSE) expect_equal(st[1,"est"], 0.99604726078272, tol=1e-06) expect_equivalent(st[1,"agecat"], ">=65") }) test_that("summary.flexsurvreg untidy output back compatibility",{ nd <- lung[c(1,1,2),] s1 <- summary(fl3, newdata = nd, B=0, tidy=TRUE, t=c(5,10)) s2 <- summary(fl3, newdata = nd, B=0, tidy=FALSE, t=c(5,10)) expect_equal(s1[3,"est"], s2[[2]][1,"est"]) }) test_that("hazard ratio",{ t <- c(100,200,300) haz2 <- summary(fl3, type="hazard", t=t, newdata=list(age=60, sex="2"), ci=FALSE, tidy=TRUE) haz1 <- summary(fl3, type="hazard", t=t, newdata=list(age=60, sex="1"), ci=FALSE, tidy=TRUE) hr <- haz2$est / haz1$est hr2 <- hr_flexsurvreg(fl3, newdata=as.data.frame(list(age=60, sex=c("1","2"))), t=t, ci=FALSE) expect_equal(hr, hr2$est) hr2 <- hr_flexsurvreg(fl3, newdata=as.data.frame(list(age=60, sex=c("1","2"))), t=t, ci=TRUE, B=10) expect_is(hr2$lcl, "numeric") ## default t hr2 <- hr_flexsurvreg(fl3, newdata=as.data.frame(list(age=60, sex=c("1","2"))), ci=FALSE) expect_equal(nrow(hr2), length(unique(lung$time))) ## a non-proportional hazards model fl4 <- flexsurvspline(Surv(time, event = status) ~ sex + age, anc=list(gamma1=~sex), data = lung, k = 2) hr4 <- hr_flexsurvreg(fl4, newdata=as.data.frame(list(age=60, sex=c("1","2"))), t=t, ci=TRUE, B=10) expect_false(hr4$est[1] == hr4$est[2]) expect_error(hr_flexsurvreg(fl4, t=t), "`newdata` must be specified") ## default newdata: factor fitw <- flexsurvreg(Surv(futime, fustat) ~ factor(rx), data = ovarian, dist="weibull") expect_equal(hr_flexsurvreg(fitw, t=t)$est, hr_flexsurvreg(fitw, t=t, newdata=list(rx=c("1","2")))$est) ## default newdata: numeric ovarian$rxbin <- ovarian$rx - 1 fitw <- flexsurvreg(Surv(futime, fustat) ~ rxbin, data = ovarian, dist="weibull") expect_equal(hr_flexsurvreg(fitw, t=t)$est, hr_flexsurvreg(fitw, t=t, newdata=list(rxbin=c(0,1)))$est) }) test_that("summary.flexsurvreg quantiles",{ fitw <- flexsurvreg(Surv(futime, fustat) ~ factor(rx), data = ovarian, dist="weibull") nd <- list(rx=c("1","2")) cf <- fitw$res[,"est"]; sh <- cf["shape"]; sc <- cf["scale"] qu <- summary(fitw, newdata=nd, type="quantile", q=0.4, tidy=TRUE) q1 <- qweibull(0.4, shape=sh, scale=sc) q2 <- qweibull(0.4, shape=sh, scale=sc*exp(cf["factor(rx)2"])) expect_equal(qu$est[1], q1) expect_equal(qu$est[2], q2) ## Quantiles of truncated distribution qu <- summary(fitw, newdata=nd, type="quantile", q=0.4, tidy=TRUE, start=100) pstart1 <- pweibull(100, shape=sh, scale=sc) pstart2 <- pweibull(100, shape=sh, scale=sc*exp(cf["factor(rx)2"])) q1 <- qweibull(pstart1+(1-pstart1)*0.4, shape=sh, scale=sc) q2 <- qweibull(pstart2+(1-pstart2)*0.4, shape=sh, scale=sc*exp(cf["factor(rx)2"])) expect_equal(qu$est[1], q1) expect_equal(qu$est[2], q2) expect_equal((pweibull(q1, shape=sh, scale=sc) - pweibull(100, shape=sh, scale=sc))/ (1 - pweibull(100, shape=sh, scale=sc)), 0.4) }) test_that("newdata in summary and predict with no covariates",{ fitw <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist="weibull") nd <- model.frame(fitw) expect_equal(nrow(summary(fitw, newdata=nd, type="quantile", tidy=TRUE, ci=FALSE)), nrow(nd)) fitw <- flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist="weibull") summ <- summary(fitw, newdata=nd, type="mean", tidy=TRUE, ci=FALSE) expect_equal(nrow(summ), nrow(nd)) summ <- summary(fitw, newdata=nd, type="quantile", quantiles=c(0.1, 0.9), tidy=TRUE, ci=FALSE) expect_equal(nrow(summ), nrow(nd)*2) pred <- predict(fitw, newdata=nd, type="quantile", p=0.5) expect_equal(nrow(pred), nrow(nd)) pred <- predict(fitw, newdata=nd, type="quantile", p=c(0.1, 0.9)) expect_equal(nrow(pred), nrow(nd)) }) flexsurv/tests/testthat/test_contrasts.R0000644000176200001440000000201714554246713020347 0ustar liggesusers## Thanks to Andrea Discacciati @https://github.com/anddis ## Fixed https://github.com/chjackson/flexsurv/issues/178 test_that("Non-default factor contrasts", { veteran$celltype <- factor(veteran$celltype) fit.noc <- flexsurvreg(Surv(time, status) ~ celltype, data = veteran, dist = "exp") veteran$celltype2 <- veteran$celltype contrasts(veteran$celltype2) <- stats::contr.helmert(4) fit.c <- flexsurvreg(Surv(time, status) ~ celltype2, data = veteran, dist = "exp") fit.poi <- glm(status ~ celltype2 + offset(log(time)), data = veteran, family = "poisson") expect_equivalent(coef(fit.c), coef(fit.poi)) expect_true(coef(fit.c)[1] != coef(fit.noc)[1]) summ.noc <- summary(fit.noc, type="survival", t=10, tidy=TRUE, ci=FALSE) summ.c <- summary(fit.c, type="survival", t=10, tidy=TRUE, ci=FALSE) expect_equivalent(summ.noc$estimates, summ.c$estimates) }) flexsurv/tests/testthat/test_flexsurvmix.R0000644000176200001440000001757214471612577020742 0ustar liggesusers n <- 1000 p <- 0.5 set.seed(1) death <- rbinom(n, 1, p) t <- numeric(n) t[death==0] <- rgamma(sum(death==0), 1, 3.2) t[death==1] <- rgamma(sum(death==1), 2.5, 1.2) cens <- as.numeric(t > 4) status <- 1 - cens event <- ifelse(cens, NA, death+1) # 1 is cure, 2 is death t[cens] <- 4 dat <- data.frame(t, status, event) dat$evname <- c("cure", "death")[dat$event] dat$evnamef <- factor(dat$evname) test_that("flexsurvmix basic",{ fs <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=event, dists=c("gamma","gamma"), fixedpars=TRUE) expect_equivalent(fs$loglik, -1550.65934372248) fs2 <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=event, dists=c("gamma","gamma"), fixedpars=1:2, em.control = list(var.method="louis")) fs2$cov expect_no_error({ ## event as character fs <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), fixedpars=TRUE) ## event as factor fs <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evnamef, dists=c("gamma","gamma"), fixedpars=TRUE) ## user supplied inits fs <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), inits = list(cure=c(2, 1), death=c(1, 3)), fixedpars=TRUE) x <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=event, dists=c("gamma","weibull"), fixedpars=TRUE) }) }) n <- 1000 p <- 0.5 set.seed(1) death <- rbinom(n, 1, p) t <- numeric(n) x <- rnorm(n) y <- rbinom(n, 1, 0.5) t[death==0] <- rgamma(sum(death==0), 1*exp(0.3*x[death==0]), 3.2*exp(0.5*x[death==0])) t[death==1] <- rgamma(sum(death==1), 2.5, 1.2) cens <- as.numeric(t > 2) t[cens] <- 2 status <- 1 - cens event <- ifelse(cens, NA, death+1) # 1 is cure, 2 is death dat <- data.frame(t, status, event, x) dat$evname <- c("cure", "death")[dat$event] test_that("flexsurvmix with covariates on time to event distributions",{ ## covariates on all location pars fs <- flexsurvmix(Surv(t, status) ~ x, data=dat, event=event, dists=c("gamma","weibull"), fixedpars=TRUE) ## covariates on all location pars, and some shape pars ## this is the right model here fs <- flexsurvmix(Surv(t, status) ~ x, data=dat, event=event, dists=c("gamma","gamma"), anc=list(list(shape=~x), list(shape=~1)), fixedpars=TRUE) ## covariates supplied manually for location pars fs <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=event, dists=c("gamma","gamma"), anc=list(list(rate=~x, shape=~x), list(rate=~x)), fixedpars=TRUE) ## covariates on location for one component but not another. two ways to do ini <- list(c(1,3,0.6,0.2), c(1,0.3)) fs1 <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=event, dists=c("gamma","gamma"), anc=list(list(rate=~x, shape=~x), list(rate=~1)), inits=ini, fixedpars=TRUE) fs2 <- flexsurvmix(list(`1`=Surv(t, status) ~ x, `2`=Surv(t, status) ~ 1), data=dat, event=event, dists=c("gamma","gamma"), anc=list(list(shape=~x), list(rate=~1)), inits=ini, fixedpars=TRUE) expect_equal(fs1$loglik, fs2$loglik) ## We can either put location formula in first arg (adding ~1 in anc if necessary)... ini <- list(c(1,3, 0.6, 0.2, 0.01), c(1, 0.3, 0.01)) fs3 <- flexsurvmix(list(`1`=Surv(t, status) ~ x, `2`=Surv(t, status) ~ x), data=dat, event=event, dists=c("gamma","gamma"), anc=list(list(shape=~x), list(rate=~1)), inits=ini, fixedpars=TRUE) ## ...or include the location formula in anc. fs4 <- flexsurvmix(Surv(t, status) ~ 1 , data=dat, event=event, dists=c("gamma","gamma"), anc=list(list(shape = ~x, rate = ~x), list(rate = ~x)), inits=ini, fixedpars=TRUE) expect_equal(fs3$loglik, fs4$loglik) expect_error( {fs <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=event, dists=c("gamma","gamma"), anc=list(list(rate=~x, shape=~x)), fixedpars=TRUE)}, "`anc` of length 1, should equal the number of") ## user-supplied inits fs <- flexsurvmix(Surv(t, status) ~ x, data=dat, event=evname, dists=c("gamma","gamma"), anc=list(list(shape=~x), list(shape=~1)), inits=list(cure=c(2, 1, 0, 0), death=c(1, 3, 0)), fixedpars=TRUE) }) n <- 10000 set.seed(1) x <- rnorm(n) y <- rbinom(n, 1, 0.5) p <- plogis(qlogis(0.5) + 2*x - 3*y) death <- rbinom(n, 1, p) t <- numeric(n) t[death==0] <- rgamma(sum(death==0), 1, 3.2) t[death==1] <- rgamma(sum(death==1), 2.5, 1.2) cens <- as.numeric(t > 3) status <- 1 - cens t[cens] <- 3 event <- ifelse(cens, NA, death+1) # 1 is cure, 2 is death dat <- data.frame(t, status, event, x) dat$evname <- c("cure", "death")[dat$event] test_that("flexsurvmix with covariates on mixing probabilities",{ x <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), pformula = ~ x + y, fixedpars=TRUE) expect_equal(x$res$est[x$res$terms=="prob2(x)"], 0) }) test_that("dot in formulae in flexsurvmix",{ expect_error(flexsurvmix(Surv(t, status) ~ ., data=dat, event=evname, dists=c("gamma","gamma"), fixedpars=TRUE), "`.` in formulae is not supported") expect_error(flexsurvmix(Surv(t, status) ~ 1, data=dat, event=evname, dists=c("gamma","gamma"), pformula=~., fixedpars=TRUE), "`.` in formulae is not supported") }) ## Partially-observed outcomes n <- 1000 set.seed(1) x <- rnorm(n) y <- rbinom(n, 1, 0.5) events <- c("icu","death","discharge") p <- c(0.2, 0.3, 0.5) event <- sample(events, size=n, prob=p, replace=TRUE) t <- numeric(n) t[event=="death"] <- rgamma(sum(event=="death"), 2.5, 1.2) t[event=="discharge"] <- rgamma(sum(event=="discharge"), 3.5, 0.6) t[event=="icu"] <- rgamma(sum(event=="icu"), 1, 3.2) cens <- as.numeric(t > 3) t[cens] <- 3 status <- 1 - cens ## Out of those still alive at cens time, or those discharged, label some as as partially observed, ## so we don't know if they've been discharged yet or they are still in hosp at the cens time pobs_eligible <- (event == "discharge") | (t > 3) pobs <- rbinom(n=sum(pobs_eligible), size=1, prob=0.2) == 1 ## Construct data # Partially-obs people: know alive at cens time, else don't know anything # Time of death and ICU are right cens # Time of discharge interval cens on 0 to Inf ie no info # Note we don't need a "partial_events" indicator in the event data # partially obs people still at risk of all events in the future # we just know they are still alive at cens time, so could die in future or go to ICU t1disc <- t2disc <- t t2disc[cens] <- Inf t1disc[pobs] <- 0 dat <- data.frame(t, status, t1disc, t2disc, event) # No censoring, all events known, likelihood factorises nicely # Use "EM algorithm" code with one iteration, since no latent data n <- 1000 p <- 0.5 set.seed(1) death <- rbinom(n, 1, p) t <- numeric(n) t[death==0] <- rgamma(sum(death==0), 1, 3.2) t[death==1] <- rgamma(sum(death==1), 2.5, 1.2) status <- 1 event <- death+1 # 1 is cure, 2 is death dat <- data.frame(t, status, event) dat$evname <- c("cure", "death")[dat$event] dat$evnamef <- factor(dat$evname) test_that("With no censored data, we get the obvious estimates of the event probabilities",{ ## Observed proportions 0.52, 0.48 should be MLEs of the probs. EM looks to work better here. fse <- flexsurvmix(Surv(t, status) ~ 1, data=dat, event=event, dists=c("gamma","gamma")) expect_equal(fse$res$est[fse$res$terms=="prob1"], sum(event==1)/length(event), tolerance=1e-04) expect_equal(fse$loglik, -1344.29387018376, tolerance=1e-05) }) flexsurv/tests/testthat/test_llogis.R0000644000176200001440000000372314472143261017616 0ustar liggesuserscontext("Log-logistic distribution") test_that("llogis",{ x <- c(0.1, 0.2, 0.7) suppressWarnings({ if (require("eha")) expect_equal(dllogis(x, shape=0.1, scale=0.2), eha::dllogis(x, shape=0.1, scale=0.2)) }) expect_equal(qllogis(x, shape=0.1, scale=0.2), qgeneric(pllogis, p=x, shape=0.1, scale=0.2)) expect_equal(x, pllogis(qllogis(x, shape=0.1, scale=0.2), shape=0.1, scale=0.2)) expect_equal(x, 1 - exp(-Hllogis(qllogis(x, shape=0.1, scale=0.2), shape=0.1, scale=0.2))) expect_equal(hllogis(x, shape=0.1, scale=0.2), dllogis(x, shape=0.1, scale=0.2) / (1 - pllogis(x, shape=0.1, scale=0.2))) q <- numeric(3); for (i in 1:3) q[i] <- qllogis(x[i], shape=0.0001, scale=i/5) expect_equal(q, qllogis(x, shape=0.0001, scale=1:3/5)) x <- c(0.5, 1.06, 4.7) expect_equal(x, qllogis(pllogis(x, shape=0.1, scale=0.2), shape=0.1, scale=0.2)) if (interactive()) { rl <- rllogis(10000, shape=1.5, scale=1.2) plot(density(rl[rl<100]), xlim=c(0,10)) x <- seq(0, 10, by=0.001) lines(x, dllogis(x, shape=1.5, scale=1.2), lty=2) } expect_equal(mean_llogis(shape=0.1, scale=0.2), NaN) expect_equal(var.llogis(shape=1.1, scale=0.2), NaN) mean_llogis(shape=1.1, scale=0.2) var.llogis(shape=2.1, scale=0.2) x <- c(0.1,0.4,0.6,0.9) expect_equal(pllogis(qllogis(p=x, lower.tail=FALSE), lower.tail=FALSE), x) expect_equal(qlogis(p=x, lower.tail=TRUE), rev(qlogis(p=x, lower.tail=FALSE))) expect_warning(dllogis(1.2, shape=1, scale=-1), "Non-positive scale") expect_warning(dllogis(1.2, shape=-1, scale=1), "Non-positive shape") expect_warning(pllogis(1.2, shape=1, scale=-1), "Non-positive scale") expect_warning(pllogis(1.2, shape=-1, scale=1), "Non-positive shape") expect_error(pllogis(1.2, shape=numeric(), scale=numeric()), "zero length vector") expect_error(pllogis(numeric, shape=1, scale=1), "Non-numeric value") }) flexsurv/tests/test_base.R0000644000176200001440000000032414436107473015376 0ustar liggesuserstest_partial <- FALSE if (test_partial) options( warnPartialMatchArgs = TRUE, warnPartialMatchAttr = TRUE, warnPartialMatchDollar = TRUE ) if (require("testthat")){ test_check("flexsurv") } flexsurv/MD50000644000176200001440000002517414660035012012446 0ustar liggesusers528aef35f12968721e41bd98d1c55f80 *Changelog 3b91854c8b77b664b39436f553aa536b *DESCRIPTION 3e2cba30108b3749682b51c0036b0ce0 *NAMESPACE 0750e20f286317baa4e90c869e6a82af *NEWS.md cb4390298f2697a29698a6ab1152bf09 *R/Exp.R a692506f3c82b7317ee5925c7e3de15d *R/Gamma.R 2c9b3e1aeadae19fbfa8d657ddd195d3 *R/GenF.R 9af897212481fcac616c0f178be6149a *R/GenGamma.R 7e21af1bc35781572c116652fc609d1c *R/Gompertz.R 202aa6c0683fa1da24ffdc3f63bbd872 *R/Llogis.R d533d3f6980c790aeb6ec1c9114e7316 *R/Lnorm.R 1fe43fe3e807536468b2661abc32171c *R/RcppExports.R 7283c3e0a44780a9ead4557c866b67d6 *R/Weibull.R 36bb82a489964f6eaf58d9bd2d775504 *R/WeibullPH.R db91be92e2770a104fd3bb672f11713a *R/ajfit.R 17086a7ec09bfbe6facf36e2a581c73a *R/broom-funs.R 91df41d2a5f2b431bb9a7151d739766e *R/custom.R 1342633fa1fb964e1c92c00adc523c1a *R/deriv.R 573fa924a20d62732dfc6d714846c987 *R/deriv2.R de593eeb124d3fbeda19e00433e1f945 *R/distributions.R d2f1ffd332526adfffddee5f2b0c7efa *R/flexsurv-package.R e09552311c9d116da12adfc6c8f6f993 *R/flexsurvmix.R 082add5fa5ee90760ef626a9baf4665f *R/flexsurvmix_louis.R 51b2d29d119f0cca709c8f53c24feaf2 *R/flexsurvreg.R cc6ae2f4e7c172c832dbdc7bae1a729e *R/flexsurvrtrunc.R bfdb28e19f74235bbb3dc57674c258a5 *R/fmixmsm.R a2ee1988080f8660292ef188f518b0be *R/fracpoly.R 6332f5cca426036cb0b20f21ca543152 *R/hr_flexsurvreg.R 088518221817b91135180ce3aa786bce *R/mstate.R 2c950dea8f35afb3aa4af52c8bc25942 *R/pexp.R d6d53c8790dc9ef51d3dfd30d9223c18 *R/plot.flexsurvreg.R 0bb0f3b471483c6dcf86721f7b16844d *R/predict.flexsurvreg.R 004d67c980eaca1957e819afa537b3b7 *R/residuals.flexsurvreg.R e4a56f913ba1cd19b6a6fce5bea3a148 *R/simulate_flexsurvreg.R ca8e4ff0455abd64d7c62df3e190b8bd *R/spline.R 5da3928c9a231dc1fd2eb386169ae7a1 *R/standsurv.R ad3a62583e488d3fb7fe3a0e05215ac1 *R/summary.flexsurvmix.R f78a39d8999cdc6d23264e1233059e8b *R/summary.flexsurvreg.R a7ffb4debd86019633611eaefcf4bf2d *R/summary.flexsurvrtrunc.R ad4af2e49a4102bc2024d218f412f2b8 *R/survrtrunc.R 229e3803276cc9c626ba087d73f01a83 *R/survsplinek.R f424106c087405037c43373cc7627684 *R/unroll.function.R db42ea78c3f6fadeeaa42d856b9fabc9 *R/utils.R 181b5ac5a69bd3e3e542680739e88fd5 *build/partial.rdb 94af21cc13107b056eea2b7dc2a6ad01 *build/vignette.rds dad16d64732423320d77e05626ba9837 *data/bc.rda 1ab571d7e81c55e0f45884447e1948d7 *data/bc.txt a224d40af55a8c2bc3937819b232b6ad *data/bosms3.rda fa17402c1c901249190d08ab8427e80e *data/bosms4.rda d67ccf81b25ecf0a34a91bff921ef965 *inst/CITATION bfbaccd448abd946f08d2d5b136a042d *inst/NEWS a14863800bdbb44fa9a8f76b5914c1e0 *inst/doc/distributions.Rnw e5e5567ad9ef32ddf85e5e63ad704782 *inst/doc/distributions.pdf 3c2d044042e674a01415226729bad5df *inst/doc/flexsurv-examples.R 65e6644bd72a0c7b09ecbfa4c08d9daf *inst/doc/flexsurv-examples.Rnw 675b74385c735d42700b354f09d05c12 *inst/doc/flexsurv-examples.pdf 34f266cc7cf6d6ae9dfc5ae18eaedb3e *inst/doc/flexsurv.R 0a232efe749801933b8e9f522b427421 *inst/doc/flexsurv.Rnw a699c8c841b313a9731e1d54369ce54f *inst/doc/flexsurv.pdf 7b08a1f456460cb355689e5f27a8a7a3 *inst/doc/multistate.R 683e55a702d69f1f6fe8e60ac73ded2d *inst/doc/multistate.Rnw ac4daa663a9c2d55239fb525f3babd68 *inst/doc/multistate.pdf 57ec3a0c0ea88acb3489662f068e59e6 *inst/doc/standsurv.R bef56cbb7859bc443a31df21b2f8a57f *inst/doc/standsurv.Rmd 1d956daab24cfb511db59cc12aab59af *inst/doc/standsurv.html 42e5c66199821dbe50e30bb7b55377f7 *man/AIC.fmsm.Rd 663ade1d4452778a1f3eeefc9241b27a *man/AICc.Rd f14d36e4cb919131982c365c92fae5e0 *man/AICc.flexsurvreg.Rd 22ad80a3926a0308dcf774ceebdbab42 *man/BIC.flexsurvreg.Rd 1f7105c7b56f681d98a2d422379101aa *man/GenF.Rd 4942fcb0a5b7f02c0d9e636b05eefd7d *man/GenF.orig.Rd ee85e752846d3771cb0971c9739ab927 *man/GenGamma.Rd 52eef766003cf14089fe5639a546c94f *man/GenGamma.orig.Rd 8c04dfb1d2f716ceeef878aca9b717be *man/Gompertz.Rd 80bcc344336d78d73fa4f001e8a774e4 *man/Llogis.Rd c871f0dd23e704d346c8ddda0ff24031 *man/Survspline.Rd 6bcf12612fd451db7f99aac8e2c87f0b *man/Survsplinek.Rd 0a5a155575fc55b0c34518d322585114 *man/WeibullPH.Rd 5130f3d1bb97b6e81bd14f525087ae17 *man/ajfit.Rd 322277e18a4f719ab137eadc731f413b *man/ajfit_flexsurvmix.Rd 9d34000f2f5d09bb455d82c6d044e3fd *man/ajfit_fmsm.Rd 73ad23d9929cef8ca944d523f7bd0164 *man/augment.flexsurvreg.Rd 2bc85f93c1123d417ea62c1001228abf *man/basis.Rd 349a867b3e12445f3beb5eea1b59f4d3 *man/bc.Rd 57ec087ff6bd23f941902b09dc7aaa89 *man/bootci.fmsm.Rd b07f878258862dfd229ac19e7aa1d618 *man/bos.Rd eff2ce120c5d32464166723bda066f45 *man/coef.flexsurvreg.Rd 0e00877e5115795a7c65bae5910bb4f8 *man/coxsnell_flexsurvreg.Rd de9385d638c50a28a734b01a14439178 *man/dot-hess_to_cov.Rd b17abca42ca97f85a551c0b76942410a *man/dot-hessian.Rd f30ccfbdf1f72b34e5f93d66b6447ceb *man/figures/flexsurv_hex.png add018aa59aa811f1f2954d4d41bc94c *man/flexsurv-package.Rd f329b0f8c63aea63ccbf87c4e6f91515 *man/flexsurvmix.Rd 568eca3b7b4db280ea07d6197df8961b *man/flexsurvreg.Rd c48715f806d7ceb73514d626493206e5 *man/flexsurvrtrunc.Rd 12cf4a379a71baaeb91752d34a35c73d *man/flexsurvspline.Rd 7a9f2f4f734bf3bdfee7252725d8878b *man/fmixmsm.Rd 193667d53cb661b75f23bb5f94f895e7 *man/fmsm.Rd 93f583e7554618bd094ce42391ac0602 *man/get_basepars.Rd 00dbb1de0946a5b0fe2bc80321df33a2 *man/glance.flexsurvreg.Rd 427f438b408323372667a1644d4e3885 *man/hazard.Rd 3b51a5b1217ed2dedd51be22200c2a1a *man/hr_flexsurvreg.Rd b4305e19a47062ca5e6dd3c152c81362 *man/lines.flexsurvreg.Rd b50a5c3f28d9110a81fbffbc57736c06 *man/logLik.flexsurvreg.Rd 119fbbc3633b7ebf182e14bf16711bbe *man/mean_flexsurvmix.Rd 07ab9f34e9072844066299047ddaa3e5 *man/meanfinal_fmixmsm.Rd d581490e266b22e642a0011a69fbe035 *man/means.Rd 2664f00f7a220708307fb2d5cb305c7b *man/model.frame.flexsurvmix.Rd 1642e79bfa55799efced6f01c05cb1d9 *man/model.frame.flexsurvreg.Rd f2e0589537b8c19313fc9a316521e197 *man/msfit.flexsurvreg.Rd 66ed34abd3a3ce4cb13b054f7ac3f707 *man/nobs.flexsurvreg.Rd 3b000af7deb807293b7210a26b0de873 *man/normboot.flexsurvreg.Rd c4b1e3060732e9268937bfa96ae11809 *man/p_flexsurvmix.Rd 024538967757002332cbd776d51979a7 *man/pars.fmsm.Rd c9681e69eecc194a645c21773d41b939 *man/pdf_flexsurvmix.Rd 043a48aabc21289bdd6ee167b5c06e5e *man/pfinal_fmsm.Rd 9bbceb02c9a2a9c6f2e853a968aec969 *man/plot.flexsurvreg.Rd c5e215207a2ff6b32d40d74d7d78a9e2 *man/plot.standsurv.Rd 591c692053e3511239d2e5b8664433f8 *man/plot_survtrunc.Rd e4eec951460828844d8499195b8b0e3f *man/pmatrix.fs.Rd 8b6bfb12d99851bdc6bbbaefc4143c0f *man/pmatrix.simfs.Rd 3ec62c91129c11bf9a0dcd248ee87a4f *man/ppath_fmixmsm.Rd f00ac9787377c885b2355b5cb40e4544 *man/predict.flexsurvreg.Rd a5a939499d8a278c839f8cac59ce567e *man/probs_flexsurvmix.Rd a55a34d82624432edb67babae629fa6a *man/qfinal_fmixmsm.Rd a955f7e5b4b560d292b2f380ed1790e6 *man/qgeneric.Rd 1915ed7e50341638fdcd3a9ec999a6c7 *man/quantile_flexsurvmix.Rd 3439305183a26e97487b18493f2cba4e *man/reexports.Rd 1ce5f73bb370e1d3a8f7cc0e35ececfc *man/residuals.flexsurvreg.Rd d21d2e4f91232bbfc5d13fc2a6098211 *man/rmst_flexsurvmix.Rd 13efca1fe7eec15bc66e07e9802f65ea *man/rmst_generic.Rd 28cb7d7c68e1fe2f4cdd07475e2a250a *man/sim.fmsm.Rd d6b8ace43d91e445bbbfc3f62c271b0b *man/simfinal_fmsm.Rd 2b14922e8fc51fc0c1bf33c001cbc231 *man/simfs_bytrans.Rd 9bbe00c30ced433290455e0a6c2d3d1c *man/simt_flexsurvmix.Rd b374ff66eafdffe53e6fb2fe0dbed57e *man/simulate.flexsurvreg.Rd f222e812f7022c7b7271749929b5ec04 *man/standsurv.Rd 4e04c6b2198c6c3a04e706787c93152f *man/summary.flexsurvreg.Rd 03d4f7c044ef796707faedce4a4bf62f *man/summary.flexsurvrtrunc.Rd 69bd8dde18cba45e7206a9d50e5a07a6 *man/survrtrunc.Rd 687c95d0feb5f83feeab8c32fdd67bfa *man/tidy.flexsurvreg.Rd 1d8f7d5fe0818c9eb6d5ce549f794ab0 *man/tidy.standsurv.Rd 0ca2ef0d264a17ad242256f4608f5690 *man/totlos.fs.Rd b4d020b4d016f9b9615bc7003fbe3d72 *man/totlos.simfs.Rd 872a57dffd11ecfefe73fb3a100df99e *man/unroll.function.Rd 224e50004e263d0192ab7625d5225290 *man/vcov.flexsurvreg.Rd 31d89c11d92e684cc047eb5f134ca333 *src/RcppExports.cpp dd039268dba58f7cfd994e83d8594b75 *src/distribution.h 501fe2aae3a64689ad6fb9909213e0ac *src/flexsurv-init.c b0026a94b32cb22f80f76d09c795cc3d *src/genf.cpp 7e66aae44be7254caf0de4b443cbeee8 *src/gengamma.cpp b1383bc80c8cac0a2077dbb774b15740 *src/gengamma.h 52f6a8b5dc8ae9313119316ba10cb415 *src/gompertz.cpp 682ae60b5e80b991c8d73a60601c39b7 *src/llogis.cpp 28503108f5c020e9f2b3085696b7391c *src/mapply.h bf1c8e33737b4b4b641ea28d8df37a7d *src/mapply_4.h 73a10b93d45f726a212f346772071b94 *src/mapply_5.h faacf375d683e4bb6cc25e0193b2888d *src/rep_len.h 673d0a41797b86c1c81b94fe8e8069d1 *src/special.cpp 6cfed49deb591083c9a0ba8cf0981ade *src/splines.cpp 05ee62dc2c8884fbc09efe46dfae151d *tests/test_base.R d0e27be8ac1f3447434f8f4a80beab42 *tests/testthat/simulate.R e9a24e3342a9030205437af4c2c3c3f8 *tests/testthat/test-broom.R 16914b7fee96d9bfa1b7ff7ee28d2dd8 *tests/testthat/test_aic.R 01aabc16d93ff9dd2274b8b5671e002a *tests/testthat/test_contrasts.R 55f61784494b45ff8be364ce970c7096 *tests/testthat/test_custom.R 93e5b25fa530d970cf20d3b0457b24bc *tests/testthat/test_flexsurvmix.R 42850ad0ea8a2a2afdb265e9a5c9fee6 *tests/testthat/test_flexsurvmix_opt.R 8b4c937747c8ce491dc636474d2c7e91 *tests/testthat/test_flexsurvreg.R 5e9a813d895233f05bdcbe45423baaeb *tests/testthat/test_fmixmsm.R ece8c0dbb6f186b25f7832cf5e75cf51 *tests/testthat/test_fmixmsm_outputs.R e625b3fe77e85485449a6c21ebdf173d *tests/testthat/test_fmsm.R 3dc4cd0daa84e9c8cb1db2a0ddea9d77 *tests/testthat/test_genf.R 3ec30d07ded8628b4390fcecc683adef *tests/testthat/test_genf_orig.R 17df9c2d5ef15359f017ddb0ffa08e76 *tests/testthat/test_gengamma.R 7edc22ec3118fc4117ccf053ea0b0422 *tests/testthat/test_gengamma_orig.R f253eeaaf28c2461bbe69c9ca16be3cb *tests/testthat/test_gompertz.R 3f06b04fb73cde1c8b9a288a1a956acb *tests/testthat/test_hess.R 1b1cb76550e68d523958976a6b173b01 *tests/testthat/test_llogis.R b2d0adceddac2237250a293243ba22b3 *tests/testthat/test_mstate.R 8b9d8cf6464bdfa972076ccbab2a203d *tests/testthat/test_outputs.R 50d53a168b23d1d543b5a35d3d3e9811 *tests/testthat/test_predict.R bcfd206047e4a5909d4a262fe4674d5b *tests/testthat/test_residuals.R a18d195d27683aa6bf222b3467f73fc8 *tests/testthat/test_rtrunc.R c845cbf92e0ddfa3fe6227370671762e *tests/testthat/test_simulate.R f83bf44a0afaaa4ffd25e36caf23a47f *tests/testthat/test_spline.R b926d458834a21351e6986f2af70cb84 *tests/testthat/test_splinedist.R accd4e2010803805ec601d0c54a59bf3 *tests/testthat/test_standsurv.R 8960a0e1a7c95a5be6338a34894c5cc8 *tests/testthat/test_survsplinek.R 1a588dbd4fb50939ed57d8da103d8278 *tests/testthat/test_utils.R 54aa75f4f266da33ca1e5ace0072a76c *vignettes/bosmsm.pdf a14863800bdbb44fa9a8f76b5914c1e0 *vignettes/distributions.Rnw 65e6644bd72a0c7b09ecbfa4c08d9daf *vignettes/flexsurv-examples.Rnw 0a232efe749801933b8e9f522b427421 *vignettes/flexsurv.Rnw acb637b628f15f1456947e1bbde241d4 *vignettes/flexsurv.bib 683e55a702d69f1f6fe8e60ac73ded2d *vignettes/multistate.Rnw bef56cbb7859bc443a31df21b2f8a57f *vignettes/standsurv.Rmd 11e4d1d2d92001f504697a52fc540e98 *vignettes/standsurv.bib flexsurv/Changelog0000644000176200001440000000013213231112051013723 0ustar liggesusers-*- text -*- See "inst/NEWS" in source package, or "NEWS" in binary package, for changes flexsurv/R/0000755000176200001440000000000014657665216012353 5ustar liggesusersflexsurv/R/survrtrunc.R0000644000176200001440000001522614644755460014736 0ustar liggesusers##' Nonparametric estimator of survival from right-truncated, uncensored data ##' ##' Estimates the survivor function from right-truncated, uncensored data by ##' reversing time, interpreting the data as left-truncated, applying the ##' Kaplan-Meier / Lynden-Bell estimator and transforming back. ##' ##' Note that this does not estimate the untruncated survivor function - instead ##' it estimates the survivor function truncated above at a time defined by the ##' maximum possible time that might have been observed in the data. ##' ##' @param t Vector of observed times from an initial event to a final event. ##' ##' @param rtrunc Individual-specific right truncation points, so that each ##' individual's survival time \code{t} would not have been observed if it was ##' greater than the corresponding element of \code{rtrunc}. If any of these ##' are greater than \code{tmax}, then the actual individual-level truncation ##' point for these individuals is taken to be \code{tmax}. ##' ##' @param tmax Maximum possible time to event that could have been observed. ##' ##' @param data Data frame to find \code{t} and \code{rtrunc} in. If not ##' supplied, these should be in the working environment. ##' ##' @param eps Small number that is added to \code{t} before implementing the ##' time-reversed estimator, to ensure the risk set is consistent between ##' forward and reverse time scales. It should be just large enough that ##' \code{t+eps} is not \code{==t}. This should not need changing from the ##' default of 0.001, unless \code{t} are extremely large or small and the ##' data are rounded to integer. ##' ##' @param conf.int Confidence level, defaulting to 0.95. ##' ##' @return A list with components: ##' ##' \code{time} Time points where the estimated survival changes. ##' ##' \code{surv} Estimated survival at \code{time}, truncated above at ##' \code{tmax}. ##' ##' \code{se.surv} Standard error of survival. ##' ##' \code{std.err} Standard error of -log(survival). Named this way for consistency with \code{survfit}. ##' ##' \code{lower} Lower confidence limits for survival. ##' ##' \code{upper} Upper confidence limits for survival. ##' ##' @details ##' ##' Define \eqn{X} as the time of the initial event, \eqn{Y} as the time of the ##' final event, then we wish to determine the distribution of \eqn{T = Y- X}. ##' ##' Observations are only recorded if \eqn{Y \leq t_{max}}. Then the ##' distribution of \eqn{T} in the resulting sample is right-truncated by ##' \code{rtrunc} \eqn{ = t_{max} - X}. ##' ##' Equivalently, the distribution of \eqn{t_{max} - T} is left-truncated, since ##' it is only observed if \eqn{t_{max} - T \geq X}. Then the standard ##' Kaplan-Meier type estimator as implemented in ##' \code{\link[survival]{survfit}} is used (as described by Lynden-Bell, 1971) ##' and the results transformed back. ##' ##' This situation might happen in a disease epidemic, where \eqn{X} is the date ##' of disease onset for an individual, \eqn{Y} is the date of death, and we ##' wish to estimate the distribution of the time \eqn{T} from onset to death, ##' given we have only observed people who have died by the date \eqn{t_{max}}. ##' ##' If the estimated survival is unstable at the highest times, then consider ##' replacing \code{tmax} by a slightly lower value, then if necessary, removing ##' individuals with \code{t > tmax}, so that the estimand is changed to the ##' survivor function truncated over a slightly narrower interval. ##' ##' @examples ##' ##' ## simulate some event time data ##' set.seed(1) ##' X <- rweibull(100, 2, 10) ##' T <- rweibull(100, 2, 10) ##' ##' ## truncate above ##' tmax <- 20 ##' obs <- X + T < tmax ##' rtrunc <- tmax - X ##' dat <- data.frame(X, T, rtrunc)[obs,] ##' sf <- survrtrunc(T, rtrunc, data=dat, tmax=tmax) ##' plot(sf, conf.int=TRUE) ##' ## Kaplan-Meier estimate ignoring truncation is biased ##' sfnaive <- survfit(Surv(T) ~ 1, data=dat) ##' lines(sfnaive, conf.int=TRUE, lty=2, col="red") ##' ##' ## truncate above the maximum observed time ##' tmax <- max(X + T) + 10 ##' obs <- X + T < tmax ##' rtrunc <- tmax - X ##' dat <- data.frame(X, T, rtrunc)[obs,] ##' sf <- survrtrunc(T, rtrunc, data=dat, tmax=tmax) ##' plot(sf, conf.int=TRUE) ##' ## estimates identical to the standard Kaplan-Meier ##' sfnaive <- survfit(Surv(T) ~ 1, data=dat) ##' lines(sfnaive, conf.int=TRUE, lty=2, col="red") ##' ##' ##' @references ##' ##' D. Lynden-Bell (1971) A method of allowing for known observational ##' selection in small samples applied to 3CR quasars. Monthly Notices of the ##' Royal Astronomical Society, 155:95–118. ##' ##' Seaman, S., Presanis, A. and Jackson, C. (2020) Review of methods for ##' estimating distribution of time to event from right-truncated data. ##' ##' @export survrtrunc <- function(t, rtrunc, tmax, data=NULL, eps=0.001, conf.int=0.95){ t <- eval(substitute(t), data, parent.frame()) rtrunc <- eval(substitute(rtrunc), data, parent.frame()) check_survrtrunc(t, rtrunc, tmax) rtrunc[rtrunc > tmax] <- tmax X <- tmax - rtrunc - eps trev <- tmax - t event <- rep(1, length(X)) sfleft <- survival::survfit(Surv(time=X, time2=trev, event=event, type="counting") ~ 1) sf <- list(time = rev(tmax - sfleft$time), surv = c(rev(1 - sfleft$surv)[-1], 0)) d <- sfleft$n.event N <- sfleft$n.risk cdf <- 1 - sf$surv[-length(sf$surv)] h <- d / (N*(N - d)) se <- sqrt(cdf^2 * rev(cumsum(h[-length(h)]))) selog <- sqrt((1/log(cdf)^2) * rev(cumsum(h[-length(h)]))) L <- log(-log(cdf)) alpha <- (1 - conf.int)/2 lower <- exp(-exp(L + qnorm(alpha)*selog)) upper <- exp(-exp(L - qnorm(alpha)*selog)) se <- c(se, 0); selog <- c(selog, 0); lower <- c(lower, 1); upper <- c(upper, 1) sf <- list(surv=sf$surv, time=sf$time, se.surv=se, std.err=selog, lower=1-lower, upper=1-upper) class(sf) <- "survrtrunc" sf } check_survrtrunc <- function(t, rtrunc, tmax) { if (!all(t <= rtrunc)) stop("Not all `t` are <= `rtrunc`") if (!all(t <= tmax)) stop("Not all `t` are <= `tmax`") } ##' Plot nonparametric estimates of survival from right-truncated data. ##' ##' \code{plot.survrtrunc} creates a new plot, while \code{lines.survrtrunc} adds lines to an exising plot. ##' ##' @param x Object of class \code{"survrtrunc"} as returned by \code{\link{survrtrunc}}. ##' ##' @param ... Other arguments to be passed to \code{\link[survival]{plot.survfit}} or \code{\link[survival]{lines.survfit}}. ##' ##' @rdname plot_survtrunc ##' @export plot.survrtrunc <- function(x, ...){ class(x) <- "survfit" plot(x, ...) } ##' ##' @rdname plot_survtrunc ##' @export lines.survrtrunc <- function(x, ...){ class(x) <- "survfit" lines(x, ...) } flexsurv/R/flexsurvmix_louis.R0000644000176200001440000000735513752454647016316 0ustar liggesusers## Calculate the covariance matrix for a flexsurvmix model fitted by the EM algorithm ## using the method of Louis (JRSSB, 1982) flexsurvmix_louis <- function(K, nthetal, dlists, ncoveffsl, locform, data, dists, anc, aux, fixedpars_em, optpars_em, inits, optim.control, ttepars.t, nobs, ntparsl, nppars, w, alpha, covp, ncovsp, Xp, hess_full_p, hess_full_t, hess.control) { ESST_t <- vector(K, mode="list") ctrl <- optim.control for (k in 1:K){ ## unweighted indiv loglik (not minus loglik) if (is.null(optim.control$ndeps)) ctrl$ndeps = rep(1e-06, length(optpars_em$t[[as.character(k)]])) logliki_flexsurvreg <- function(parsopt){ pars <- inits[[k]] pars[optpars_em$t[[k]]] <- parsopt theta <- inv.transform(pars[seq_len(nthetal[k])], dlists[[k]]) coveffs <- pars[nthetal[k] + seq_len(ncoveffsl[k])] initsk <- c(theta, coveffs) fs <- do.call("flexsurvreg", list(formula=locform[[k]], data=data, dist=dists[[k]], anc=anc[[k]], inits=initsk, aux=aux[[k]], fixedpars = fixedpars_em$t[[as.character(k)]], hessian=FALSE, control=ctrl) ) fs$logliki } parsopt <- ttepars.t[[k]][optpars_em$t[[k]]] nopt <- length(parsopt) J <- numDeriv::jacobian(logliki_flexsurvreg, parsopt) # nindiv x npars. ## Quick with nindiv=1000 SST <- array(dim=c(nobs, nopt, nopt)) for (i in 1:nopt) { for (j in 1:nopt) { SST[,i,j] <- J[,i] * J[,j] } } # w[,k] # nindiv vector ESST_t[[k]] <- apply(SST * w[,k], c(2,3), sum) } # Analytic derivatives of imputed-data log-likelihood for the component # membership probs (and covariates on these) alphamat <- matrix(c(0,alpha), nrow=nobs, ncol=K, byrow=TRUE) # by individual if (ncovsp > 0) { for (k in 2:K){ cpinds <- (k-2)*ncovsp + 1:ncovsp alphamat[,k] <- alpha[k-1] + Xp %*% covp[cpinds] } } dmat <- array(dim=c(nobs, nppars, K)) sumexp <- rowSums(exp(alphamat)) for (j in 2:K) { esum <- exp(alphamat[,j]) / sumexp for (k in 1:K) { dmat[,j-1,k] <- if (k==1) - esum else if (k==j) 1 - esum else (-exp(alphamat[,j]) / sumexp) if (ncovsp > 0) { for (i in 1:ncovsp){ ind <- K-1 + (j-2)*ncovsp + i dmat[,ind,k] <- if (k==1) - Xp[,i] * esum else if (k==j) Xp[,i] * (1 - esum) else Xp[,i] * (-exp(alphamat[,j]) / sumexp) } } } } dmat <- -dmat Dw <- array(dim=c(nobs, nppars, K)) DDw <- array(dim=c(nobs, nppars, nppars, K)) for (k in 1:K){ for (i in 1:nppars){ Dw[,i,k] <- dmat[,i,k] * w[,k] for (j in 1:nppars){ DDw[,i,j,k] <- dmat[,i,k] * dmat[,j,k] * w[,k] } } } SDw <- array(dim=c(nobs, nppars)) for (i in 1:nppars){ SDw[,i] <- rowSums(Dw[,i,]) } SDw <- SDw[,optpars_em$p,drop=FALSE] DDw <- DDw[,optpars_em$p,optpars_em$p,,drop=FALSE] noptp <- length(optpars_em$p) ESST_p <- array(dim=c(noptp, noptp)) for (i in 1:noptp){ for (j in 1:noptp){ ESST_p[i,j] <- sum(DDw[,i,j,]) + sum(SDw[,i])*sum(SDw[,j]) - sum(SDw[,i]*SDw[,j]) } } ESST <- Matrix::bdiag(ESST_p, Matrix::bdiag(ESST_t)) hess_full <- - Matrix::bdiag(hess_full_p, Matrix::bdiag(hess_full_t)) hess <- hess_full - ESST cov <- .hess_to_cov(-hess, hess.control$tol.solve, hess.control$tol.evalues) cov # of loglik } flexsurv/R/RcppExports.R0000644000176200001440000000404014501417340014742 0ustar liggesusers# Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 dgenf_work <- function(x, mu, sigma, Q, P, log) { .Call(`_flexsurv_dgenf_work`, x, mu, sigma, Q, P, log) } pgenf_work <- function(q, mu, sigma, Q, P, lower_tail, give_log) { .Call(`_flexsurv_pgenf_work`, q, mu, sigma, Q, P, lower_tail, give_log) } check.genf <- function(mu, sigma, Q, P) { .Call(`_flexsurv_check_genf`, mu, sigma, Q, P) } dgengamma_work <- function(x, mu, sigma, Q, log) { .Call(`_flexsurv_dgengamma_work`, x, mu, sigma, Q, log) } pgengamma_work <- function(q, mu, sigma, Q, lower_tail, give_log) { .Call(`_flexsurv_pgengamma_work`, q, mu, sigma, Q, lower_tail, give_log) } check.gengamma <- function(mu, sigma, Q) { .Call(`_flexsurv_check_gengamma`, mu, sigma, Q) } dgompertz_work <- function(x, shape, rate, log) { .Call(`_flexsurv_dgompertz_work`, x, shape, rate, log) } pgompertz_work <- function(q, shape, rate, lower_tail, give_log) { .Call(`_flexsurv_pgompertz_work`, q, shape, rate, lower_tail, give_log) } check.gompertz <- function(shape, rate) { .Call(`_flexsurv_check_gompertz`, shape, rate) } dllogis_work <- function(x, shape, scale, log) { .Call(`_flexsurv_dllogis_work`, x, shape, scale, log) } pllogis_work <- function(q, shape, scale, lower_tail, give_log) { .Call(`_flexsurv_pllogis_work`, q, shape, scale, lower_tail, give_log) } check.llogis <- function(shape, scale) { .Call(`_flexsurv_check_llogis`, shape, scale) } exph <- function(y) { .Call(`_flexsurv_exph`, y) } dexph <- function(y) { .Call(`_flexsurv_dexph`, y) } basis_vector <- function(knots, x) { .Call(`_flexsurv_basis_vector`, knots, x) } basis_matrix <- function(knots, x) { .Call(`_flexsurv_basis_matrix`, knots, x) } dbasis_vector <- function(knots, x) { .Call(`_flexsurv_dbasis_vector`, knots, x) } dbasis_matrix <- function(knots, x) { .Call(`_flexsurv_dbasis_matrix`, knots, x) } flexsurv/R/Lnorm.R0000644000176200001440000000301614203411131013531 0ustar liggesusers### Hazard and cumulative hazard functions for R built in ### distributions. Where possible, use more numerically stable ### formulae than d/(1-p) and -log(1-p) ##' @export ##' @rdname hazard hlnorm <- function(x, meanlog=0, sdlog=1, log=FALSE){ h <- dbase("lnorm", log=log, x=x, meanlog=meanlog, sdlog=sdlog) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) logdens <- dlnorm(x = x, meanlog = meanlog, sdlog = sdlog, log=TRUE) logsurv <- plnorm(q = x, meanlog = meanlog, sdlog = sdlog, lower.tail = FALSE, log.p=TRUE) loghaz <- logdens - logsurv ret[ind] <- if (log) loghaz else exp(loghaz) ret } ##' @export ##' @rdname hazard Hlnorm <- function(x, meanlog=0, sdlog=1, log=FALSE){ h <- dbase("lnorm", log=log, x=x, meanlog=meanlog, sdlog=sdlog) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) ret[ind] <- - plnorm(x, meanlog, sdlog, lower.tail=FALSE, log.p=TRUE) if (log) ret[ind] <- log(ret[ind]) ret } check.lnorm <- function(meanlog=0, sdlog=1){ ret <- rep(TRUE, length(meanlog)) if (any(!is.na(sdlog) & sdlog<0)) { warning("Negative SD parameter") ret[!is.na(sdlog) & sdlog<0] <- FALSE } ret } ##' @export ##' @rdname means mean_lnorm <- function(meanlog=0, sdlog=1){ exp(meanlog + 0.5*sdlog^2) } ##' @export ##' @rdname means rmst_lnorm = function(t, meanlog=0, sdlog=1, start=0){ rmst_generic(plnorm, t, start=start, meanlog=meanlog, sdlog=sdlog) } var.lnorm <- function(meanlog=0, sdlog=1){ exp(2*meanlog + sdlog^2)*(exp(sdlog^2) - 1) } flexsurv/R/plot.flexsurvreg.R0000644000176200001440000003015414644755415016027 0ustar liggesusers##' Plots of fitted flexible survival models ##' ##' Plot fitted survival, cumulative hazard or hazard from a parametric model ##' against nonparametric estimates to diagnose goodness-of-fit. Alternatively ##' plot a user-defined function of the model parameters against time. ##' ##' ##' @param x Output from \code{\link{flexsurvreg}} or ##' \code{\link{flexsurvspline}}, representing a fitted survival model object. ##' @param newdata Data frame containing covariate values to produce fitted ##' values for. See \code{\link{summary.flexsurvreg}}. ##' ##' If there are only factor covariates in the model, then Kaplan-Meier (or ##' nonparametric hazard...) curves are plotted for all distinct groups, and ##' by default, fitted curves are also plotted for these groups. To plot ##' Kaplan-Meier and fitted curves for only a subset of groups, use ##' \code{plot(survfit())} followed by \code{lines.flexsurvreg()}. ##' ##' If there are any continuous covariates, then a single population ##' Kaplan-Meier curve is drawn. By default, a single fitted curve is drawn ##' with the covariates set to their mean values in the data - for categorical ##' covariates, the means of the 0/1 indicator variables are taken. ##' @param X Alternative way to supply covariate values, as a model matrix. ##' See \code{\link{summary.flexsurvreg}}. \code{newdata} is an easier way. ##' @param type \code{"survival"} for survival, to be plotted against ##' Kaplan-Meier estimates from \code{\link[survival]{plot.survfit}}. ##' ##' \code{"cumhaz"} for cumulative hazard, plotted against transformed ##' Kaplan-Meier estimates from \code{\link[survival]{plot.survfit}}. ##' ##' \code{"hazard"} for hazard, to be plotted against smooth nonparametric ##' estimates from \code{\link[muhaz]{muhaz}}. The nonparametric estimates ##' tend to be unstable, and these plots are intended just to roughly indicate ##' the shape of the hazards through time. The \code{min.time} and ##' \code{max.time} options to \code{\link[muhaz]{muhaz}} may sometimes need to ##' be passed as arguments to \code{\link{plot.flexsurvreg}} to avoid an error ##' here. ##' ##' Ignored if \code{"fn"} is specified. ##' @param fn Custom function of the parameters to summarise against time. The ##' first two arguments of the function must be \code{t} representing time, and ##' \code{start} representing left-truncation points, and any remaining ##' arguments must be parameters of the distribution. It should return a ##' vector of the same length as \code{t}. ##' @param t Vector of times to plot fitted values for, see ##' \code{\link{summary.flexsurvreg}}. ##' @param start Left-truncation points, see \code{\link{summary.flexsurvreg}}. ##' @param est Plot fitted curves (\code{TRUE} or \code{FALSE}.) ##' @param ci Plot confidence intervals for fitted curves. By default, this is ##' \code{TRUE} if one observed/fitted curve is plotted, and \code{FALSE} if ##' multiple curves are plotted. ##' @param B Number of simulations controlling accuracy of confidence ##' intervals, as used in \code{\link[=summary.flexsurvreg]{summary}}. ##' Decrease for greater speed at the expense of accuracy, or set \code{B=0} to ##' turn off calculation of CIs. ##' @param cl Width of confidence intervals, by default 0.95 for 95\% ##' intervals. ##' @param col.obs Colour of the nonparametric curve. ##' @param lty.obs Line type of the nonparametric curve. ##' @param lwd.obs Line width of the nonparametric curve. ##' @param col Colour of the fitted parametric curve(s). ##' @param lty Line type of the fitted parametric curve(s). ##' @param lwd Line width of the fitted parametric curve(s). ##' @param col.ci Colour of the fitted confidence limits, defaulting to the ##' same as for the fitted curve. ##' @param lty.ci Line type of the fitted confidence limits. ##' @param lwd.ci Line width of the fitted confidence limits. ##' @param ylim y-axis limits: vector of two elements. ##' @param add If \code{TRUE}, add lines to an existing plot, otherwise new ##' axes are drawn. ##' @param ... Other options to be passed to \code{\link[survival]{plot.survfit}} or ##' \code{\link[muhaz]{muhaz}}, for example, to control the smoothness of the ##' nonparametric hazard estimates. The \code{min.time} and \code{max.time} ##' options to \code{\link[muhaz]{muhaz}} may sometimes need to be changed from ##' the defaults. ##' ##' @note Some standard plot arguments such as \code{"xlim","xlab"} may not ##' work. This function was designed as a quick check of model fit. Users ##' wanting publication-quality graphs are advised to set up an empty plot with ##' the desired axes first (e.g. with \code{plot(...,type="n",...)}), then use ##' suitable \code{\link{lines}} functions to add lines. ##' ##' If case weights were used to fit the model, these are used when producing ##' nonparametric estimates of survival and cumulative hazard, but not for ##' the hazard estimates. ##' ##' @author C. H. Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' @seealso \code{\link{flexsurvreg}} ##' @keywords models hplot ##' @export plot.flexsurvreg <- function(x, newdata=NULL, X=NULL, type="survival", fn=NULL, t=NULL, start=0, est=TRUE, ci=NULL, B=1000, cl=0.95, col.obs="black", lty.obs=1, lwd.obs=1, col="red",lty=1,lwd=2, col.ci=NULL,lty.ci=2,lwd.ci=1,ylim=NULL, add=FALSE,...) { ## don't calculate or plot CIs by default if all covs are categorical -> multiple curves if (!add && is.null(x[["data"]])) stop("Goodness-of-fit plots are not available if the data have been removed from the model object") if (is.null(ci)) ci <- ((x$ncovs == 0) || (!all(x$covdata$isfac))) if (!ci) B <- 0 summ <- summary(x, newdata=newdata, X=X, type=type, fn=fn, t=t, start=start, ci=ci, B=B, cl=cl) t <- summ[[1]]$time X <- if (is.null(attr(summ,"X"))) as.matrix(0, nrow=1, ncol=max(x$ncoveffs,1)) else attr(summ,"X") if (is.null(col.ci)) col.ci <- col if (is.null(lwd.ci)) lwd.ci <- lwd dat <- x$data if (!is.null(fn)) type <- "" if (!add) { mf <- model.frame(x) Xraw <- mf[,attr(mf, "covnames.orig"), drop=FALSE] mm <- as.data.frame(model.matrix(x)) if (isTRUE(attr(dat$Y, "type")=="interval")){ # guard against NULL from older versions form <- "Surv(dat$Y[,\"time1\"],dat$Y[,\"time2\"],type=\"interval2\") ~ " } else form <- "Surv(dat$Y[,\"start\"],dat$Y[,\"stop\"],dat$Y[,\"status\"]) ~ " form <- paste(form, if (x$ncovs > 0 && all(x$covdata$isfac)) paste("mm[,",1:x$ncoveffs,"]", collapse=" + ") else 1) form <- as.formula(form) ## If any continuous covariates, it is hard to define subgroups ## so just plot the population survival if (type=="survival") { plot(survfit(form, data=mm, weights=dat$m$`(weights)`), col=col.obs, lty=lty.obs, lwd=lwd.obs, ylim=ylim, ...) } else if (type=="cumhaz") { plot(survfit(form, data=mm, weights=dat$m$`(weights)`), fun="cumhaz", col=col.obs, lty=lty.obs, lwd=lwd.obs, ylim=ylim, ...) } else if (type=="hazard") { muhaz.args <- list(...)[names(list(...)) %in% names(formals(muhaz))] if (is.null(muhaz.args$min.time)) muhaz.args$min.time <- 0 plot.args <- list(...)[!names(list(...)) %in% names(formals(muhaz))] if (!all(dat$Y[,"start"]==0)) warning("Left-truncated data not supported by muhaz: ignoring truncation point when plotting observed hazard") if (any(dat$Y[,"status"] > 1)) stop("Interval-censored data not supported by muhaz") if (!all(x$covdata$isfac)){ if (is.null(muhaz.args$max.time)) muhaz.args$max.time <- with(as.data.frame(dat$Y), max(time[status==1])) haz <- do.call("muhaz", c(list(times=dat$Y[,"stop"], delta=dat$Y[,"status"]), muhaz.args)) do.call("plot", c(list(haz), list(col=col.obs, lty=lty.obs, lwd=lwd.obs), plot.args)) } else { ## plot hazard for all groups defined by unique combinations of covariates group <- if(x$ncovs>0) do.call("interaction", mm) else factor(rep(0,nrow(dat$Y))) Xgroup <- factor(do.call("interaction", as.data.frame(X)), levels=levels(group)) haz <- list() for (i in 1:nrow(X)) { mha <- muhaz.args if (is.null(mha$max.time)) mha$max.time <- with(as.data.frame(dat$Y[group==Xgroup[i],,drop=FALSE]), max(time[status==1])) haz[[i]] <- do.call("muhaz", c(list(times=dat$Y[,"time"], delta=dat$Y[,"status"], subset=(group==Xgroup[i])), mha)) } if (missing(ylim)) ylim <- range(sapply(haz, function(x)range(x$haz.est))) do.call("plot", c(list(haz[[1]]), list(col=col.obs, lty=lty.obs, lwd=lwd.obs, ylim=ylim), plot.args)) if (nrow(X)>1) { for (i in 1:nrow(X)) { lines(haz[[i]], col=col.obs, lty=lty.obs, lwd=lwd.obs) } } } } } col <- rep(col, length=nrow(X)); lty=rep(lty, length=nrow(X)); lwd=rep(lwd, length=nrow(X)) col.ci <- rep(col.ci, length=nrow(X)); lty.ci=rep(lty.ci, length=nrow(X)); lwd.ci=rep(lwd.ci, length=nrow(X)) for (i in 1:length(summ)) { if (est) lines(summ[[i]]$time, summ[[i]]$est, col=col[i], lty=lty[i], lwd=lwd[i]) if (ci) { lines(summ[[i]]$time, summ[[i]]$lcl, col=col.ci[i], lty=lty.ci[i], lwd=lwd.ci[i]) lines(summ[[i]]$time, summ[[i]]$ucl, col=col.ci[i], lty=lty.ci[i], lwd=lwd.ci[i]) } } } ##' Add fitted flexible survival curves to a plot ##' ##' Add fitted survival (or hazard or cumulative hazard) curves from a ##' \code{\link{flexsurvreg}} model fit to an existing plot. ##' ##' Equivalent to \code{\link{plot.flexsurvreg}(...,add=TRUE)}. ##' ##' ##' @param x Output from \code{\link{flexsurvreg}}, representing a fitted ##' survival model object. ##' @param newdata Covariate values to produce fitted curves for, as a data ##' frame, as described in \code{\link{plot.flexsurvreg}}. ##' @param X Covariate values to produce fitted curves for, as a matrix, as ##' described in \code{\link{plot.flexsurvreg}}. ##' @param type \code{"survival"} for survival, \code{"cumhaz"} for cumulative ##' hazard, or \code{"hazard"} for hazard, as in ##' \code{\link{plot.flexsurvreg}}. ##' @param t Vector of times to plot fitted values for. ##' @param est Plot fitted curves (\code{TRUE} or \code{FALSE}.) ##' @param ci Plot confidence intervals for fitted curves. ##' @param B Number of simulations controlling accuracy of confidence ##' intervals, as used in \code{\link[=summary.flexsurvreg]{summary}}. ##' @param cl Width of confidence intervals, by default 0.95 for 95\% ##' intervals. ##' @param col Colour of the fitted curve(s). ##' @param lty Line type of the fitted curve(s). ##' @param lwd Line width of the fitted curve(s). ##' @param col.ci Colour of the confidence limits, defaulting to the same as ##' for the fitted curve. ##' @param lty.ci Line type of the confidence limits. ##' @param lwd.ci Line width of the confidence limits, defaulting to the same ##' as for the fitted curve. ##' @param ... Other arguments to be passed to the generic \code{\link{plot}} ##' and \code{\link{lines}} functions. ##' @author C. H. Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' @seealso \code{\link{flexsurvreg}} ##' @keywords models aplot ##' @export lines.flexsurvreg <- function(x, newdata=NULL, X=NULL, type="survival", t=NULL, est=TRUE, ci=NULL, B=1000, cl=0.95, col="red",lty=1,lwd=2, col.ci=NULL,lty.ci=2,lwd.ci=1, ...) { plot.flexsurvreg(x, newdata=newdata, X=X, type=type, t=t, est=est, ci=ci, B=B, cl=cl, col=col, lty=lty, lwd=lwd, col.ci=col.ci,lty.ci=lty.ci,lwd.ci=lwd.ci, add=TRUE, ...) } flexsurv/R/predict.flexsurvreg.R0000644000176200001440000002272314644755623016507 0ustar liggesusers#' Predictions from flexible survival models #' #' Predict outcomes from flexible survival models at the covariate values #' specified in \code{newdata}. #' #' @param object Output from \code{\link{flexsurvreg}} or #' \code{\link{flexsurvspline}}, representing a fitted survival model object. #' #' @param newdata Data frame containing covariate values at which to produce #' fitted values. There must be a column for every covariate in the model #' formula used to fit \code{object}, and one row for every combination of #' covariate values at which to obtain the fitted predictions. #' #' If \code{newdata} is omitted, then the original data used to fit the model #' are used, as extracted by \code{model.frame(object)}. However this will #' currently not work if the model formula contains functions, e.g. #' \code{~ factor(x)}. The names of the model frame must correspond to #' variables in the original data. #' #' @param type Character vector for the type of predictions desired. #' #' * \code{"response"} for mean survival time (the default). \code{"mean"} is #' an acceptable synonym #' #' * \code{"quantile"} for quantiles of the survival distribution as specified #' by \code{p} #' #' * \code{"rmst"} for restricted mean survival time #' #' * \code{"survival"} for survival probabilities #' #' * \code{"cumhaz"} for cumulative hazards #' #' * \code{"hazard"} for hazards #' #' * \code{"link"} for fitted values of the location parameter, analogous to #' the linear predictor in generalized linear models (\code{type = "lp"} and #' \code{type = "linear"} are acceptable synonyms). This is on the natural #' scale of the parameter, not the log scale. #' #' @param times Vector of time horizons at which to compute fitted values. #' Only applies when \code{type} is \code{"survival"}, \code{"cumhaz"}, #' \code{"hazard"}, or \code{"rmst"}. Will be silently ignored for all other #' types. #' #' If not specified, predictions for \code{"survival"}, \code{"cumhaz"}, and #' \code{"hazard"} will be made at each observed event time in #' \code{model.frame(object)}. #' #' For \code{"rmst"}, when \code{times} is not specified predictions will be #' made at the maximum observed event time from the data used to fit #' \code{object}. Specifying \code{times = Inf} is valid, and will return #' mean survival (equal to \code{type = "response"}). #' #' @param start Optional left-truncation time or times. The returned #' survival, hazard, or cumulative hazard will be conditioned on survival up #' to this time. `start` must be length 1 or the same length as `times`. #' Predicted times returned with \code{type} \code{"rmst"} or \code{"quantile"} ##' will be times since time zero, not times since the \code{start} time. #' #' @param conf.int Logical. Should confidence intervals be returned? #' Default is \code{FALSE}. #' #' @param conf.level Width of symmetric confidence intervals, relative to 1. #' #' @param se.fit Logical. Should standard errors of fitted values be returned? #' Default is \code{FALSE}. #' #' @param p Vector of quantiles at which to return fitted values when #' \code{type = "quantile"}. Default is \code{c(0.1, 0.9)}. #' #' @param ... Not currently used. #' #' @return A \code{\link[tibble]{tibble}} with same number of rows as #' \code{newdata} and in the same order. If multiple predictions are #' requested, a \code{\link[tibble]{tibble}} containing a single list-column #' of data frames. #' #' For the list-column of data frames - the dimensions of each data frame #' will be identical. Rows are added for each value of \code{times} or #' \code{p} requested. #' #' This function is a wrapper around \code{\link{summary.flexsurvreg}}, #' designed to help \pkg{flexsurv} to integrate with the "tidymodels" #' ecosystem, in particular the \pkg{censored} package. #' \code{\link{summary.flexsurvreg}} returns the same results but in a more #' conventional format. #' #' @seealso \code{\link{summary.flexsurvreg}}, #' \code{\link{residuals.flexsurvreg}} #' #' @author Matthew T. Warkentin (\url{https://github.com/mattwarkentin}) #' #' @importFrom tibble tibble #' @importFrom stats predict #' #' @md #' #' @export #' #' @examples #' #' fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") #' #' ## Simplest prediction: mean or median, for covariates defined by original dataset #' predict(fitg) #' predict(fitg, type = "quantile", p = 0.5) #' #' ## Simple prediction for user-defined covariate values #' predict(fitg, newdata = data.frame(age = c(40, 50, 60))) #' predict(fitg, type = "quantile", p = 0.5, newdata = data.frame(age = c(40,50,60))) #' #' ## Predict multiple quantiles and unnest #' require(tidyr) #' pr <- predict(fitg, type = "survival", times = c(600, 800)) #' tidyr::unnest(pr, .pred) #' predict.flexsurvreg <- function(object, newdata, type = "response", times, start = 0, conf.int = FALSE, conf.level = 0.95, se.fit = FALSE, p = c(0.1, 0.9), ... ) { if (missing(newdata)) newdata <- model.frame(object) assertthat::assert_that( inherits(newdata, "data.frame"), msg = "`newdata` must inherit the class `data.frame`" ) assertthat::assert_that( is.logical(se.fit), msg = '`se.fit` must be a logical (TRUE/FALSE).' ) assertthat::assert_that( is.logical(conf.int), msg = '`conf.int` must be a logical (TRUE/FALSE).' ) assertthat::assert_that( all(is.numeric(p), p <= 1, p >= 0), msg = "`p` should be a vector of quantiles in the range [0, 1]" ) assertthat::assert_that( is.numeric(start), msg = "`start` must be a numeric vector of left-truncation times" ) if (conf.int) assertthat::assert_that( is.numeric(conf.level), conf.level > 0, conf.level < 1, length(conf.level) == 1, msg = "`conf.level` must be length one and between 0 and 1" ) type <- match.arg(type, c("mean", "response", "quantile", "link", "lp", "linear", "survival", "cumhaz", "hazard", "rmst")) stype <- switch( type, response = "mean", lp = "link", linear = "link", type # all others keep their type ) if (stype %in% c("survival", "cumhaz", "hazard")) { if (missing(times)) times <- object$data$Y[,1][order(object$data$Y[,1])] assertthat::assert_that( all(is.numeric(times), times >= 0), msg = "`times` must be a vector of non-negative real-valued numbers." ) } else if (stype == "rmst" && !missing(times)) { assertthat::assert_that( all(is.numeric(times), times >= 0), msg = "`times` must be a vector of non-negative real-valued numbers." ) } else { times <- NULL } assertthat::assert_that( length(start) == 1 | length(start) == length(times), msg = paste0( "Length of `start` is ", length(start), ". Length should be 1, or the same length as `times`, which is ", length(times) ) ) nest_output <- ((stype == "quantile" && length(p) > 1) | (stype %in% c("survival", "cumhaz", "hazard", "rmst") && length(times) > 1)) res <- if (stype %in% c("survival", "hazard", "cumhaz", "rmst")) { summary( object = object, newdata = newdata, type = stype, quantiles = p, t = times, start = start, ci = conf.int, cl = conf.level, se = se.fit, tidy = TRUE, na.action = na.pass, cross = TRUE ) } else { # Avoid passing `t = times` for non-time based predictions # to avoid noisy warnings summary( object = object, newdata = newdata, type = stype, quantiles = p, start = start, ci = conf.int, cl = conf.level, se = se.fit, tidy = TRUE, na.action = na.pass, cross = TRUE ) } res <- tidy_rename(res, stype) if (nest_output) { if (stype == 'quantile') { num_reps <- length(p) } else { num_reps <- length(times) } orig_nrow <- nrow(newdata) res <- dplyr::mutate(res, .id = rep(1:orig_nrow, each = num_reps)) res <- tidyr::nest(res, .pred = -.id) res <- dplyr::select(res, .pred) } res } utils::globalVariables('.id') tidy_names <- function() { tibble::tibble( old = c("time", "quantile", "est", "se", "lcl", "ucl"), new = c(".eval_time", ".quantile", ".pred", ".std_error", ".pred_lower", ".pred_upper") ) } tidy_rename <- function(x, type) { names_tbl <- tidy_names() names_to_change <- names_tbl[names_tbl$old %in% names(x), ] out <- dplyr::select(x, names_to_change$old) colnames(out) <- names_to_change$new out <- tibble::as_tibble(out) if (type == "mean") type <- "time" name_with_type <- rlang::sym(paste0('.pred_', type)) dplyr::rename(out, !!name_with_type := .pred) } flexsurv/R/Gompertz.R0000644000176200001440000001270214472142471014273 0ustar liggesusers##' The Gompertz distribution ##' ##' Density, distribution function, hazards, quantile function and random ##' generation for the Gompertz distribution with unrestricted shape. ##' ##' The Gompertz distribution with \code{shape} parameter \eqn{a} and ##' \code{rate} parameter \eqn{b}{b} has probability density function ##' ##' \deqn{f(x | a, b) = be^{ax}\exp(-b/a (e^{ax} - 1))}{f(x | a, b) = b exp(ax) ##' exp(-b/a (exp(ax) - 1))} ##' ##' and hazard ##' ##' \deqn{h(x | a, b) = b e^{ax}}{h(x | a, b) = b exp(ax)} ##' ##' The hazard is increasing for shape \eqn{a>0} and decreasing for \eqn{a<0}. ##' For \eqn{a=0} the Gompertz is equivalent to the exponential distribution ##' with constant hazard and rate \eqn{b}. ##' ##' The probability distribution function is \deqn{F(x | a, b) = 1 - \exp(-b/a ##' (e^{ax} - 1))}{F(x | a, b) = 1 - exp(-b/a (exp(ax) - 1))} ##' ##' Thus if \eqn{a} is negative, letting \eqn{x} tend to infinity shows that ##' there is a non-zero probability \eqn{\exp(b/a)}{exp(b/a)} of living ##' forever. On these occasions \code{qgompertz} and \code{rgompertz} will ##' return \code{Inf}. ##' ##' @aliases Gompertz dgompertz pgompertz qgompertz hgompertz Hgompertz ##' rgompertz ##' @param x,q vector of quantiles. ##' @param p vector of probabilities. ##' @param n number of observations. If \code{length(n) > 1}, the length is ##' taken to be the number required. ##' @param shape,rate vector of shape and rate parameters. ##' @param log,log.p logical; if TRUE, probabilities p are given as log(p). ##' @param lower.tail logical; if TRUE (default), probabilities are \eqn{P(X ##' \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}. ##' @return \code{dgompertz} gives the density, \code{pgompertz} gives the ##' distribution function, \code{qgompertz} gives the quantile function, ##' \code{hgompertz} gives the hazard function, \code{Hgompertz} gives the ##' cumulative hazard function, and \code{rgompertz} generates random deviates. ##' @note Some implementations of the Gompertz restrict \eqn{a} to be strictly ##' positive, which ensures that the probability of survival decreases to zero ##' as \eqn{x} increases to infinity. The more flexible implementation given ##' here is consistent with \code{streg} in Stata. ##' ##' The functions \code{\link[eha:Gompertz]{eha::dgompertz}} and similar available in the ##' package \pkg{eha} label the parameters the other way round, so that what is ##' called the \code{shape} there is called the \code{rate} here, and what is ##' called \code{1 / scale} there is called the \code{shape} here. The ##' terminology here is consistent with the exponential \code{\link{dexp}} and ##' Weibull \code{\link{dweibull}} distributions in R. ##' @author Christopher Jackson ##' @seealso \code{\link{dexp}} ##' @references Stata Press (2007) Stata release 10 manual: Survival analysis ##' and epidemiological tables. ##' @keywords distribution ##' @name Gompertz NULL ## consistent with paper and Stata ## shape pos: inc haz, shape neg: dec haz just like weibull, shape zero=exponential ## ## in eha: shape=lam, gamma=1/scale ## log(shape) + x/scale - shape * scale * (exp(x/scale) - 1)) ## shape/scale labelled wrong way round. ##' @export ##' @rdname Gompertz dgompertz <- function(x, shape, rate=1, log=FALSE) { check_numeric(x=x, shape=shape, rate=rate) dgompertz_work(x, shape, rate, log) } ##' @export ##' @rdname Gompertz pgompertz <- function(q, shape, rate=1, lower.tail = TRUE, log.p = FALSE) { check_numeric(q=q, shape=shape, rate=rate) pgompertz_work(q, shape, rate, lower.tail, log.p) } ##' @export ##' @rdname Gompertz qgompertz <- function(p, shape, rate=1, lower.tail = TRUE, log.p = FALSE) { d <- dbase("gompertz", lower.tail=lower.tail, log=log.p, p=p, shape=shape, rate=rate) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) ret[ind][shape==0] <- qexp(p[shape==0], rate=rate[shape==0]) sn0 <- shape!=0 if (any(sn0)) { p <- p[sn0]; shape <- shape[sn0]; rate <- rate[sn0] asymp <- 1 - exp(rate/shape) immortal <- shape < 0 & p > asymp ret[ind][sn0][immortal] <- Inf ret[ind][sn0][!immortal] <- 1 / shape[!immortal] * log1p(-log1p(-p[!immortal]) * shape[!immortal] / rate[!immortal]) } ret } ##' @export ##' @rdname Gompertz rgompertz <- function(n, shape = 1, rate = 1){ r <- rbase("gompertz", n=n, shape=shape, rate=rate) for (i in seq_along(r)) assign(names(r)[i], r[[i]]) ret[ind] <- qgompertz(p=runif(sum(ind)), shape=shape, rate=rate) ret } ##' @export ##' @rdname Gompertz hgompertz <- function(x, shape, rate = 1, log = FALSE) { h <- dbase("gompertz", log=log, x=x, shape=shape, rate=rate) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) if (log) ret[ind] <- log(rate) + (shape * x) else ret[ind] <- rate * exp(shape * x) ret } ##' @export ##' @rdname Gompertz Hgompertz <- function(x, shape, rate = 1, log = FALSE) { h <- dbase("gompertz", log=log, x=x, shape=shape, rate=rate) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) ret[ind] <- ifelse(shape==0, rate*x, rate/shape * expm1(shape*x)) if (log) ret[ind] <- log(ret[ind]) ret } ##' @export ##' @rdname means rmst_gompertz = function(t, shape, rate=1, start=0){ rmst_generic(pgompertz, t, start=start, shape=shape, rate=rate) } ##' @export ##' @rdname means mean_gompertz = function(shape, rate = 1){ rmst_generic(pgompertz, Inf, start=0, shape=shape, rate=rate) } flexsurv/R/mstate.R0000644000176200001440000021531614644767543014005 0ustar liggesusers### FUNCTIONS FOR MULTI-STATE MODELLING is.flexsurvlist <- function(x){ is.list(x) && (length(x) > 0) && inherits(x[[1]], "flexsurvreg") && all(sapply(x, inherits, "flexsurvreg")) } form.msm.newdata <- function(x, newdata=NULL, tvar="trans", trans){ tr <- sort(unique(na.omit(as.vector(trans)))) ntr <- length(tr) if (!(tvar %in% x$covdata$covnames)){ if (missing(tvar)) stop("\"tvar\" not supplied and variable \"", tvar, "\" not in model") else stop("\"variable \"", tvar, "\" not in model") } if (!x$covdata$isfac[[tvar]]) stop("`tvar` should have been fitted as a factor covariate in the model") if(is.null(newdata)){ newdata <- data.frame(trans=factor(tr, levels=x$covdata$xlev[[tvar]])) names(newdata) <- tvar } else { newdata <- as.data.frame(newdata) if (nrow(newdata)==1) newdata <- newdata[rep(1,ntr),,drop=FALSE] else if (nrow(newdata) != ntr) stop(sprintf("length of variables in \"newdata\" must be either 1 or number of transitions, %d", ntr)) newdata[,tvar] <- factor(tr, levels=x$covdata$xlev[[tvar]]) } newdata } ##' Cumulative intensity function for parametric multi-state models ##' ##' Cumulative transition-specific intensity/hazard functions for ##' fully-parametric multi-state or competing risks models, using a ##' piecewise-constant approximation that will allow prediction using the ##' functions in the \pkg{mstate} package. ##' ##' ##' @param object Output from \code{\link{flexsurvreg}} or ##' \code{\link{flexsurvspline}}, representing a fitted survival model object. ##' ##' The model should have been fitted to data consisting of one row for each ##' observed transition and additional rows corresponding to censored times to ##' competing transitions. This is the "long" format, or counting process ##' format, as explained in the \pkg{flexsurv} vignette. ##' ##' The model should contain a categorical covariate indicating the transition. ##' In \code{flexsurv} this variable can have any name, indicated here by the ##' \code{tvar} argument. In the Cox models demonstrated by \pkg{mstate} it is ##' usually included in model formulae as \code{strata(trans)}, but note that ##' the \code{strata} function does not do anything in \pkg{flexsurv}. The ##' formula supplied to \code{\link{flexsurvreg}} should be precise about which ##' parameters are assumed to vary with the transition type. ##' ##' Alternatively, if the parameters (including covariate effects) are assumed ##' to be different between different transitions, then a list of ##' transition-specific models can be formed. This list has one component for ##' each permitted transition in the multi-state model. This is more ##' computationally efficient, particularly for larger models and datasets. ##' See the example below, and the vignette. ##' @param t Vector of times. These do not need to be the same as the observed ##' event times, and since the model is parametric, they can be outside the ##' range of the data. A grid of more frequent times will provide a better ##' approximation to the cumulative hazard trajectory for prediction with ##' \code{\link[mstate]{probtrans}} or \code{\link[mstate]{mssample}}, at the ##' cost of greater computational expense. ##' @param newdata A data frame specifying the values of covariates in the ##' fitted model, other than the transition number. This must be specified if ##' there are other covariates. The variable names should be the same as those ##' in the fitted model formula. There must be either one value per covariate ##' (the typical situation) or \eqn{n} values per covariate, a different one ##' for each of the \eqn{n} allowed transitions. ##' @param variance Calculate the variances and covariances of the transition ##' cumulative hazards (\code{TRUE} or \code{FALSE}). This is based on ##' simulation from the normal asymptotic distribution of the estimates, which ##' is computationally-expensive. ##' @param tvar Name of the categorical variable in the model formula that ##' represents the transition number. This should have been defined as a factor, ##' with factor levels that ##' correspond to elements of \code{trans}, conventionally a sequence of ##' integers starting from 1. Not required if \code{x} is a list of ##' transition-specific models. ##' @param trans Matrix indicating allowed transitions in the multi-state ##' model, in the format understood by \pkg{mstate}: a matrix of integers whose ##' \eqn{r,s} entry is \eqn{i} if the \eqn{i}th transition type (reading across ##' rows) is \eqn{r,s}, and has \code{NA}s on the diagonal and where the ##' \eqn{r,s} transition is disallowed. ##' @param B Number of simulations from the normal asymptotic distribution used ##' to calculate variances. Decrease for greater speed at the expense of ##' accuracy. ##' @return An object of class \code{"msfit"}, in the same form as the objects ##' used in the \pkg{mstate} package. The \code{\link[mstate]{msfit}} method ##' from \pkg{mstate} returns the equivalent cumulative intensities for Cox ##' regression models fitted with \code{\link[survival]{coxph}}. ##' @author C. H. Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' @seealso \pkg{flexsurv} provides alternative functions designed ##' specifically for predicting from parametric multi-state models without ##' calling \pkg{mstate}. These include \code{\link{pmatrix.fs}} and ##' \code{\link{pmatrix.simfs}} for the transition probability matrix, and ##' \code{\link{totlos.fs}} and \code{\link{totlos.simfs}} for expected total ##' lengths of stay in states. These are generally more efficient than going ##' via \pkg{mstate}. ##' @references Liesbeth C. de Wreede, Marta Fiocco, Hein Putter (2011). ##' \pkg{mstate}: An R Package for the Analysis of Competing Risks and ##' Multi-State Models. \emph{Journal of Statistical Software}, 38(7), 1-30. ##' \doi{10.18637/jss.v038.i07} ##' ##' Mandel, M. (2013). "Simulation based confidence intervals for functions ##' with complicated derivatives." The American Statistician 67(2):76-81 ##' @keywords models ##' @examples ##' ##' ## 3 state illness-death model for bronchiolitis obliterans ##' ## Compare clock-reset / semi-Markov multi-state models ##' ##' ## Simple exponential model (reduces to Markov) ##' ##' bexp <- flexsurvreg(Surv(years, status) ~ trans, ##' data=bosms3, dist="exp") ##' tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) ##' mexp <- msfit.flexsurvreg(bexp, t=seq(0,12,by=0.1), ##' trans=tmat, tvar="trans", variance=FALSE) ##' ##' ## Cox semi-parametric model within each transition ##' ##' bcox <- coxph(Surv(years, status) ~ strata(trans), data=bosms3) ##' ##' if (require("mstate")){ ##' ##' mcox <- mstate::msfit(bcox, trans=tmat) ##' ##' ## Flexible parametric spline-based model ##' ##' bspl <- flexsurvspline(Surv(years, status) ~ trans + gamma1(trans), ##' data=bosms3, k=3) ##' mspl <- msfit.flexsurvreg(bspl, t=seq(0,12,by=0.1), ##' trans=tmat, tvar="trans", variance=FALSE) ##' ##' ## Compare fit: exponential model is OK but the spline is better ##' ##' plot(mcox, lwd=1, xlim=c(0, 12), ylim=c(0,4)) ##' cols <- c("black","red","green") ##' for (i in 1:3){ ##' lines(mexp$Haz$time[mexp$Haz$trans==i], mexp$Haz$Haz[mexp$Haz$trans==i], ##' col=cols[i], lwd=2, lty=2) ##' lines(mspl$Haz$time[mspl$Haz$trans==i], mspl$Haz$Haz[mspl$Haz$trans==i], ##' col=cols[i], lwd=3) ##' } ##' legend("topright", lwd=c(1,2,3), lty=c(1,2,1), ##' c("Cox", "Exponential", "Flexible parametric"), bty="n") ##' ##' } ##' ##' ## Fit a list of models, one for each transition ##' ## More computationally efficient, but only valid if parameters ##' ## are different between transitions. ##' ##' \dontrun{ ##' bexp.list <- vector(3, mode="list") ##' for (i in 1:3) { ##' bexp.list[[i]] <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==i), ##' data=bosms3, dist="exp") ##' } ##' ##' ## The list of models can be passed to this and other functions, ##' ## as if it were a single multi-state model. ##' ##' msfit.flexsurvreg(bexp.list, t=seq(0,12,by=0.1), trans=tmat) ##' } ##' ##' @export msfit.flexsurvreg <- function(object, t, newdata=NULL, variance=TRUE, tvar="trans", trans, B=1000){ tr <- sort(unique(na.omit(as.vector(trans)))) ntr <- length(tr) if (is.flexsurvlist(object)) { Haz <- vector(ntr, mode="list") for (i in seq_len(ntr)) Haz[[i]] <- summary(object[[i]], type="cumhaz", t=t, newdata=newdata, ci=FALSE)[[1]] } else { newdata <- form.msm.newdata(object, newdata=newdata, tvar=tvar, trans=trans) X <- form.model.matrix(object, newdata) Haz <- summary(object, type="cumhaz", t=t, X=X, ci=FALSE) } Haz <- do.call("rbind",Haz[seq_along(tr)]) rownames(Haz) <- NULL Haz$trans <- rep(seq_along(tr), each=length(t)) names(Haz)[names(Haz)=="est"] <- "Haz" res <- list(Haz=Haz, trans=trans) foundse <- if (is.flexsurvlist(object)) !anyNA(sapply(object, function(x)x$cov[[1]])) else !is.na(object$cov[1]) if (variance && foundse){ boot <- array(dim=c(B, length(t), ntr)) for (i in seq_along(tr)) boot[,,i] <- if (is.flexsurvlist(object)) normbootfn.flexsurvreg(object[[i]], t=t, start=0, newdata=newdata, B=B, fn=summary_fns(object[[i]],"cumhaz")) else normbootfn.flexsurvreg(object, t=t, start=0, X=X[i,,drop=FALSE], B=B, fn=summary_fns(object,"cumhaz")) ntr2 <- 0.5*ntr*(ntr+1) nt <- length(t) mat <- matrix(nrow=ntr, ncol=ntr) trans1 <- rep(t(row(mat))[!t(lower.tri(mat))], each=nt) trans2 <- rep(t(col(mat))[!t(lower.tri(mat))], each=nt) res$varHaz <- data.frame(time=rep(t, ntr2), varHaz=numeric(ntr2*nt), trans1=trans1, trans2=trans2) for (i in 1:ntr){ for (j in i:ntr){ res$varHaz$varHaz[trans1==i & trans2==j] <- mapply(cov, split(t(boot[,,i]),seq_along(t)), split(t(boot[,,j]),seq_along(t))) } } } class(res) <- "msfit" res } ##' Transition-specific parameters in a flexible parametric multi-state model ##' ##' List of maximum likelihood estimates of transition-specific parameters in ##' a flexible parametric multi-state model, at given covariate values. ##' ##' ##' @param x A multi-state model fitted with \code{\link{flexsurvreg}}. See ##' \code{\link{msfit.flexsurvreg}} for the required form of the model and the ##' data. ##' ##' \code{x} can also be a list of \code{\link{flexsurvreg}} models, with one ##' component for each permitted transition in the multi-state model, as ##' illustrated in \code{\link{msfit.flexsurvreg}}. ##' ##' @param trans Matrix indicating allowed transitions. See ##' \code{\link{msfit.flexsurvreg}}. ##' ##' @param newdata A data frame specifying the values of covariates in the ##' fitted model, other than the transition number. See ##' \code{\link{msfit.flexsurvreg}}. ##' ##' @param tvar Variable in the data representing the transition type. Not ##' required if \code{x} is a list of models. ##' ##' @return A list with one component for each permitted transition. Each component ##' has one element for each parameter of the parametric distribution that generates ##' the corresponding event in the multi-state model. ##' ##' @author Christopher Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk}. ##' ##' @keywords models survival ##' ##' @export pars.fmsm <- function(x, trans, newdata=NULL, tvar="trans") { if (is.flexsurvlist(x)){ ntr <- length(x) # number of allowed transitions if (ntr != length(na.omit(as.vector(trans)))) stop(sprintf("x is a list of %s flexsurvreg objects, but trans indicates %s transitions", ntr, length(na.omit(as.vector(trans))))) basepar <- vector(ntr, mode="list") newdata <- as.data.frame(newdata) for (i in 1:ntr){ if (x[[i]]$ncovs==0) X <- matrix(0) else { if(nrow(newdata) == 1L) { X <- form.model.matrix(x[[i]], as.data.frame(newdata), na.action=na.omit) } else if(nrow(newdata) == ntr){ X <- form.model.matrix(x[[i]], as.data.frame(newdata[i, ,drop = FALSE]), na.action=na.omit) } else stop(sprintf("`newdata` has %s rows. It must either have one row, or one row for each of the %s allowed transitions",nrow(newdata),ntr)) ## } else stop(sprintf("`newdata` must only have one row")) # use case for ntr rows is unclear } beta <- if (x[[i]]$ncovs==0) 0 else x[[i]]$res.t[x[[i]]$covpars,"est"] basepar[[i]] <- add.covs(x[[i]], x[[i]]$res.t[x[[i]]$dlist$pars,"est"], beta, X, transform=FALSE) } } else if (inherits(x, "flexsurvreg")) { newdata <- form.msm.newdata(x, newdata=newdata, tvar=tvar, trans=trans) X <- form.model.matrix(x, newdata, na.action=na.omit) basepar <- add.covs(x, pars=x$res.t[x$dlist$pars,"est"], beta=x$res.t[x$covpars,"est"], X=X) ntrans <- length(na.omit(as.vector(trans))) basepar <- split(basepar, seq_len(ntrans)) basepar <- lapply(basepar, function(y){y <- matrix(y,nrow=1); colnames(y) <- x$dlist$pars; y}) } else stop("expected x to be a flexsurvreg object or list of flexsurvreg objects") basepar } state_nums <- function(state, object){ if (is.character(state)){ badstates <- state[! (state %in% attr(object, "statenames"))] if (length(badstates) > 0) stop(paste(badstates,collapse=","), " not found in state names") state <- match(state, attr(object, "statenames")) } state } state_names <- function(state, object){ if (is.character(attr(object, "statenames"))) state <- attr(object, "statenames")[state] state } ##' Transition probability matrix from a fully-parametric, time-inhomogeneous ##' Markov multi-state model ##' ##' The transition probability matrix for time-inhomogeneous Markov multi-state ##' models fitted to time-to-event data with \code{\link{flexsurvreg}}. This ##' has \eqn{r,s} entry giving the probability that an individual is in state ##' \eqn{s} at time \eqn{t}, given they are in state \eqn{r} at time \eqn{0}. ##' ##' This is computed by solving the Kolmogorov forward differential equation ##' numerically, using the methods in the \pkg{deSolve} package. The ##' equation is ##' ##' \deqn{\frac{dP(t)}{dt} = P(t) Q(t)} ##' ##' where \eqn{P(t)} is the transition probability matrix for time \eqn{t}, and ##' \eqn{Q(t)} is the transition hazard or intensity as a function of \eqn{t}. ##' The initial condition is \eqn{P(0) = I}. ##' ##' Note that the package \pkg{msm} has a similar method \code{pmatrix.msm}. ##' \code{pmatrix.fs} should give the same results as \code{pmatrix.msm} when ##' both of these conditions hold: ##' ##' \itemize{ \item the time-to-event distribution is exponential for all ##' transitions, thus the \code{flexsurvreg} model was fitted with ##' \code{dist="exp"} and the model is time-homogeneous. \item the \pkg{msm} ##' model was fitted with \code{exacttimes=TRUE}, thus all the event times are ##' known, and there are no time-dependent covariates. } ##' ##' \pkg{msm} only allows exponential or piecewise-exponential time-to-event ##' distributions, while \pkg{flexsurvreg} allows more flexible models. ##' \pkg{msm} however was designed in particular for panel data, where the ##' process is observed only at arbitrary times, thus the times of transition ##' are unknown, which makes flexible models difficult. ##' ##' This function is only valid for Markov ("clock-forward") multi-state ##' models, though no warning or error is currently given if the model is not ##' Markov. See \code{\link{pmatrix.simfs}} for the equivalent for semi-Markov ##' ("clock-reset") models. ##' ##' @param x A model fitted with \code{\link{flexsurvreg}}. See ##' \code{\link{msfit.flexsurvreg}} for the required form of the model and the ##' data. Additionally, this must be a Markov / clock-forward model, but can ##' be time-inhomogeneous. See the package vignette for further explanation. ##' ##' \code{x} can also be a list of models, with one component for each ##' permitted transition, as illustrated in \code{\link{msfit.flexsurvreg}}. ##' @param trans Matrix indicating allowed transitions. See ##' \code{\link{msfit.flexsurvreg}}. ##' ##' @param t Time or vector of times to predict state occupancy probabilities ##' for. ##' ##' @param newdata A data frame specifying the values of covariates in the ##' fitted model, other than the transition number. See ##' \code{\link{msfit.flexsurvreg}}. ##' ##' @param condstates xInstead of the unconditional probability of being in state \eqn{s} at time \eqn{t} given state \eqn{r} at time 0, return the probability conditional on being in a particular subset of states at time \eqn{t}. This subset is specified in the \code{condstates} argument, as a vector of character labels or integers. ##' ##' This is used, for example, in competing risks situations, e.g. if the competing states are death or recovery from a disease, and we want to compute the probability a patient has died, given they have died or recovered. If these are absorbing states, then as \eqn{t} increases, this converges to the case fatality ratio. To compute this, set \eqn{t} to a very large number, \code{Inf} will not work. ##' ##' @param ci Return a confidence interval calculated by simulating from the ##' asymptotic normal distribution of the maximum likelihood estimates. Turned ##' off by default, since this is computationally intensive. If turned on, ##' users should increase \code{B} until the results reach the desired ##' precision. ##' ##' @param tvar Variable in the data representing the transition type. Not ##' required if \code{x} is a list of models. ##' ##' @param sing.inf If there is a singularity in the observed hazard, for ##' example a Weibull distribution with \code{shape < 1} has infinite hazard at ##' \code{t=0}, then as a workaround, the hazard is assumed to be a large ##' finite number, \code{sing.inf}, at this time. The results should not be ##' sensitive to the exact value assumed, but users should make sure by ##' adjusting this parameter in these cases. ##' ##' @param B Number of simulations from the normal asymptotic distribution used ##' to calculate variances. Decrease for greater speed at the expense of ##' accuracy. ##' ##' @param cl Width of symmetric confidence intervals, relative to 1. ##' ##' @param tidy If TRUE then return the results as a tidy data frame ##' ##' @param ... Arguments passed to \code{\link[deSolve]{ode}} in \pkg{deSolve}. ##' ##' @return The transition probability matrix, if \code{t} is of length 1. If \code{t} is longer, return a list of matrices, or a data frame if \code{tidy} is TRUE. ##' ##' If \code{ci=TRUE}, each element has attributes \code{"lower"} and ##' \code{"upper"} giving matrices of the corresponding confidence limits. ##' These are formatted for printing but may be extracted using \code{attr()}. ##' @author Christopher Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk}. ##' @seealso \code{\link{pmatrix.simfs}}, \code{\link{totlos.fs}}, ##' \code{\link{msfit.flexsurvreg}}. ##' @keywords models survival ##' @examples ##' ##' # BOS example in vignette, and in msfit.flexsurvreg ##' bexp <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, ##' data=bosms3, dist="exp") ##' tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) ##' # more likely to be dead (state 3) as time moves on, or if start with ##' # BOS (state 2) ##' pmatrix.fs(bexp, t=c(5,10), trans=tmat) ##' @export pmatrix.fs <- function(x, trans=NULL, t=1, newdata=NULL, condstates = NULL, ci=FALSE, tvar="trans", sing.inf=1e+10, B=1000, cl=0.95, tidy=FALSE, ...){ if (is.null(trans)) { if (!is.null(attr(x, "trans"))) trans <- attr(x, "trans") else stop("`trans` not supplied and not found in `x`") } ntr <- sum(!is.na(trans)) nst <- nrow(trans) dp <- function(t, y, parms, ...){ P <- matrix(y, nrow=nst, ncol=nst) haz <- numeric(nst) for (i in 1:ntr){ xi <- if (is.flexsurvlist(x)) x[[i]] else x hcall <- list(x=t) for (j in seq_along(xi$dlist$pars)) hcall[[xi$dlist$pars[j]]] <- parms$par[[i]][j] for (j in seq_along(xi$aux)) hcall[[names(xi$aux)[j]]] <- xi$aux[[j]] haz[i] <- do.call(xi$dfns$h, hcall) } Q <- haz[trans] Q[is.na(Q)] <- 0 Q[is.infinite(Q) & Q>0] <- sing.inf Q <- matrix(Q, nrow=nst, ncol=nst) diag(Q) <- -rowSums(Q) list(P %*% Q) } nt <- length(t) if (nt<1) stop("number of times should be at least one") basepar <- pars.fmsm(x=x, trans=trans, newdata=newdata, tvar=tvar) auxpar <- if (!is.flexsurvlist(x)) x$aux else lapply(x, function(x)x$aux) res <- ode(y=diag(nst), times=c(0,t), func=dp, parms=list(par=basepar, aux=auxpar), ...)[-1,-1] if (is.null(condstates)) condstates <- 1:nst condstates <- state_nums(condstates, x) if (any(condstates > nst)) stop(sprintf("all `condstates` should be in 1 to %s",nst)) to_pmatrix <- function(x){ res <- matrix(x,nrow=nst,dimnames=dimnames(trans)) anyevent <- rowSums(res[,condstates,drop=FALSE]) res <- res[,condstates] / anyevent } res <- lapply(split(res,1:nt), to_pmatrix) names(res) <- t if (ci){ resci <- bootci.fmsm(x, B, fn=pmatrix.fs, cl=cl, ci=FALSE, cores=NULL, trans=trans, t=t, newdata=newdata, condstates=condstates, tvar=tvar, sing.inf=sing.inf, tidy=tidy, ...) if (tidy) resci <- resci[,1:(nt*nst*nst),drop=FALSE] resl <- lapply(split(resci[1,],rep(1:nt, each=nst*nst)), function(x)matrix(x,nrow=nst,dimnames=dimnames(trans))) resu <- lapply(split(resci[2,],rep(1:nt, each=nst*nst)), function(x)matrix(x,nrow=nst,dimnames=dimnames(trans))) names(resl) <- names(resu) <- t for (i in 1:nt){ attr(res[[i]], "lower") <- resl[[i]] attr(res[[i]], "upper") <- resu[[i]] class(res[[i]]) <- "fs.msm.est" } } if (nt==1) res <- res[[1]] if (tidy) { if (is.list(res)) res <- do.call("rbind", res) res <- as.data.frame(res) rownames(res) <- NULL res$start <- rep(1:nst, nt) res$time <- rep(t, each=nst) res } attr(res, "statenames") <- rownames(trans) attr(res, "nst") <- nst res } ## Obtains matrix T(t) of expected times spent in state (col) starting ## from state (row) up to time t. ## Solves the second order linear ODE system T''(t) = P(t) Q(t) ## Express as dT/dt = P(t), dP/dt = P(t)Q(t), solve for both P and T at once ##' Total length of stay in particular states for a fully-parametric, ##' time-inhomogeneous Markov multi-state model ##' ##' The matrix whose \eqn{r,s} entry is the expected amount of time spent in ##' state \eqn{s} for a time-inhomogeneous, continuous-time Markov multi-state ##' process that starts in state \eqn{r}, up to a maximum time \eqn{t}. This is ##' defined as the integral of the corresponding transition probability up to ##' that time. ##' ##' This is computed by solving a second order extension of the Kolmogorov ##' forward differential equation numerically, using the methods in the ##' \pkg{deSolve} package. The equation is expressed as a linear ##' system ##' ##' \deqn{\frac{dT(t)}{dt} = P(t)} \deqn{\frac{dP(t)}{dt} = P(t) Q(t)} ##' ##' and solved for \eqn{T(t)} and \eqn{P(t)} simultaneously, where \eqn{T(t)} ##' is the matrix of total lengths of stay, \eqn{P(t)} is the transition ##' probability matrix for time \eqn{t}, and \eqn{Q(t)} is the transition ##' hazard or intensity as a function of \eqn{t}. The initial conditions are ##' \eqn{T(0) = 0} and \eqn{P(0) = I}. ##' ##' Note that the package \pkg{msm} has a similar method \code{totlos.msm}. ##' \code{totlos.fs} should give the same results as \code{totlos.msm} when ##' both of these conditions hold: ##' ##' \itemize{ \item the time-to-event distribution is exponential for all ##' transitions, thus the \code{flexsurvreg} model was fitted with ##' \code{dist="exp"}, and is time-homogeneous. \item the \pkg{msm} model was ##' fitted with \code{exacttimes=TRUE}, thus all the event times are known, and ##' there are no time-dependent covariates. } ##' ##' \pkg{msm} only allows exponential or piecewise-exponential time-to-event ##' distributions, while \pkg{flexsurvreg} allows more flexible models. ##' \pkg{msm} however was designed in particular for panel data, where the ##' process is observed only at arbitrary times, thus the times of transition ##' are unknown, which makes flexible models difficult. ##' ##' This function is only valid for Markov ("clock-forward") multi-state ##' models, though no warning or error is currently given if the model is not ##' Markov. See \code{\link{totlos.simfs}} for the equivalent for semi-Markov ##' ("clock-reset") models. ##' ##' @param x A model fitted with \code{\link{flexsurvreg}}. See ##' \code{\link{msfit.flexsurvreg}} for the required form of the model and the ##' data. Additionally, this must be a Markov / clock-forward model, but can ##' be time-inhomogeneous. See the package vignette for further explanation. ##' ##' \code{x} can also be a list of models, with one component for each ##' permitted transition, as illustrated in \code{\link{msfit.flexsurvreg}}. ##' @param trans Matrix indicating allowed transitions. See ##' \code{\link{msfit.flexsurvreg}}. ##' @param t Time or vector of times to predict up to. Must be finite. ##' @param newdata A data frame specifying the values of covariates in the ##' fitted model, other than the transition number. See ##' \code{\link{msfit.flexsurvreg}}. ##' @param ci Return a confidence interval calculated by simulating from the ##' asymptotic normal distribution of the maximum likelihood estimates. Turned ##' off by default, since this is computationally intensive. If turned on, ##' users should increase \code{B} until the results reach the desired ##' precision. ##' @param tvar Variable in the data representing the transition type. Not ##' required if \code{x} is a list of models. ##' @param sing.inf If there is a singularity in the observed hazard, for ##' example a Weibull distribution with \code{shape < 1} has infinite hazard at ##' \code{t=0}, then as a workaround, the hazard is assumed to be a large ##' finite number, \code{sing.inf}, at this time. The results should not be ##' sensitive to the exact value assumed, but users should make sure by ##' adjusting this parameter in these cases. ##' ##' @param B Number of simulations from the normal asymptotic distribution used ##' to calculate variances. Decrease for greater speed at the expense of ##' accuracy. ##' ##' @param cl Width of symmetric confidence intervals, relative to 1. ##' ##' @param ... Arguments passed to \code{\link[deSolve]{ode}} in \pkg{deSolve}. ##' ##' @return The matrix of lengths of stay \eqn{T(t)}, if \code{t} is of length ##' 1, or a list of matrices if \code{t} is longer. ##' ##' If \code{ci=TRUE}, each element has attributes \code{"lower"} and ##' \code{"upper"} giving matrices of the corresponding confidence limits. ##' These are formatted for printing but may be extracted using \code{attr()}. ##' ##' The result also has an attribute \code{P} giving the transition probability ##' matrices, since these are unavoidably computed as a side effect. These are ##' suppressed for printing, but can be extracted with \code{attr(...,"P")}. ##' ##' @author Christopher Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk}. ##' @seealso \code{\link{totlos.simfs}}, \code{\link{pmatrix.fs}}, ##' \code{\link{msfit.flexsurvreg}}. ##' @keywords models survival ##' @examples ##' ##' # BOS example in vignette, and in msfit.flexsurvreg ##' bexp <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, ##' data=bosms3, dist="exp") ##' tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) ##' ##' # predict 4 years spent without BOS, 3 years with BOS, before death ##' # As t increases, this should converge ##' ##' totlos.fs(bexp, t=10, trans=tmat) ##' totlos.fs(bexp, t=1000, trans=tmat) ##' totlos.fs(bexp, t=c(5,10), trans=tmat) ##' ##' # Answers should match results in help(totlos.simfs) up to Monte Carlo ##' # error there / ODE solving precision here, since with an exponential ##' # distribution, the "semi-Markov" model there is the same as the Markov ##' # model here ##' @export totlos.fs <- function(x, trans=NULL, t=1, newdata=NULL, ci=FALSE, tvar="trans", sing.inf=1e+10, B=1000, cl=0.95, ...){ if (is.null(trans)) { if (!is.null(attr(x, "trans"))) trans <- attr(x, "trans") else stop("`trans` not supplied and not found in `x`") } ntr <- sum(!is.na(trans)) n <- nrow(trans) nsq <- n*n dp <- function(t, y, parms, ...){ P <- matrix(y[nsq + 1:nsq], nrow=n, ncol=n) haz <- numeric(n) for (i in 1:ntr){ xi <- if (is.flexsurvlist(x)) x[[i]] else x hcall <- list(x=t) for (j in seq_along(xi$dlist$pars)) hcall[[xi$dlist$pars[j]]] <- parms$par[[i]][j] hcall <- c(hcall, parms$aux[[i]]) haz[i] <- do.call(xi$dfns$h, hcall) } Q <- haz[trans] Q[is.na(Q)] <- 0 Q[is.infinite(Q) & Q>0] <- sing.inf Q <- matrix(Q, nrow=n, ncol=n) diag(Q) <- -rowSums(Q) list(cbind(P, P %*% Q)) } nt <- length(t) if (nt<1) stop("number of times should be at least one") basepar <- pars.fmsm(x=x, trans=trans, newdata=newdata, tvar=tvar) auxpar <- if (!is.flexsurvlist(x)) x$aux else lapply(x, function(x)x$aux) init <- cbind(matrix(0, nrow=n, ncol=n), diag(n)) res <- ode(y=init, times=c(0,t), func=dp, parms=list(par=basepar,aux=auxpar), ...)[-1,-1] res.t <- lapply(split(res,1:nt), function(x)matrix(x[1:nsq],nrow=n)) res.p <- lapply(split(res,1:nt), function(x)matrix(x[nsq + 1:nsq],nrow=n)) names(res.t) <- names(res.p) <- t if (ci){ resci <- bootci.fmsm(x, B, fn=totlos.fs, attrs="P", cl=cl, ci=FALSE, trans=trans, t=t, newdata=newdata, tvar=tvar, sing.inf=sing.inf, ...) tind <- rep(rep(1:nt,each=n*n), 2) res.tl <- lapply(split(resci[1,],tind), function(x)matrix(x[1:nsq],nrow=n)) res.tu <- lapply(split(resci[2,],tind), function(x)matrix(x[1:nsq],nrow=n)) res.pl <- lapply(split(resci[1,],tind), function(x)matrix(x[nsq + 1:nsq],nrow=n)) res.pu <- lapply(split(resci[2,],tind), function(x)matrix(x[nsq + 1:nsq],nrow=n)) names(res.tl) <- names(res.tu) <- names(res.pl) <- names(res.pu) <- t for (i in 1:nt){ attr(res.t[[i]], "lower") <- res.tl[[i]] attr(res.t[[i]], "upper") <- res.tu[[i]] class(res.t[[i]]) <- "fs.msm.est" attr(res.p[[i]], "lower") <- res.pl[[i]] attr(res.p[[i]], "upper") <- res.pu[[i]] class(res.p[[i]]) <- "fs.msm.est" } } if(nt==1) {res.t <- res.t[[1]]; res.p <- res.p[[1]]} attr(res.t, "P") <- res.p class(res.t) <- "totlos.fs" res.t } ##' @export print.totlos.fs <- function(x, ...){attr(x, "P") <- NULL; print(unclass(x),...)} # TODO make pmatrix generic # pmatrix.flexsurvreg <- pmatrix.fs #' @noRd format.ci <- function(x, l, u, digits=NULL, ...) { if (is.null(digits)) digits <- 4 ## note format() aligns nicely on point, unlike formatC est <- format(x, digits=digits, ...) if (!is.null(l)) { low <- format(l, digits=digits, ...) upp <- format(u, digits=digits, ...) res <- paste(est, " (", low, ",", upp, ")", sep="") res[x==0] <- 0 } else res <- est dim(res) <- dim(x) dimnames(res) <- dimnames(x) names(res) <- names(x) res } #' @noRd print.ci <- function(x, l, u, digits=NULL,...){ res <- format.ci(x, l, u, digits) print(res, quote=FALSE) } #' @noRd print.fs.msm.est <- function(x, digits=NULL, ...) { if (!is.null(attr(x, "lower"))) print.ci(x, attr(x, "lower"), attr(x, "upper"), digits=digits) else print(unclass(x)) } absorbing <- function(trans){ which(apply(trans, 1, function(x) all(is.na(x)))) } transient <- function(trans){ which(apply(trans, 1, function(x) !all(is.na(x)))) } ## Handle predictable time-dependent covariates in simulating from ## semi-Markov models. Assume the covariate changes at same rate as ## time (e.g. age), but the covariate values used in simulation only ## change when the clock resets, at each change of state. form.basepars.tcovs <- function(x, transi, # index of allowed transition newdata, tcovs, t # time increment ){ if (is.flexsurvlist(x)){ x <- x[[transi]] dat <- as.list(newdata) } else if (inherits(x, "flexsurvreg")) { dat <- as.list(newdata[transi,,drop=FALSE]) } for (i in tcovs) { dat[[i]] <- dat[[i]] + t} dat <- as.data.frame(dat) X <- form.model.matrix(x, dat, na.action=na.omit) beta <- if (x$ncovs==0) 0 else x$res.t[x$covpars,"est"] basepars.mat <- add.covs(x, x$res.t[x$dlist$pars,"est"], beta, X, transform=FALSE) as.list(as.data.frame(basepars.mat)) ## for distribution with npars parameters, whose values are required at nt different times ## returns (as list) data frame with nt rows, npars cols } ## TODO Unclear how to check for semi Markov vs nonhomogenous Markov ## model. attr(model.response(model.frame(x)), "type") will be ## "counting" for a nonhomogeneous model, but also if there are ## time-dependent covariates ##' Simulate paths through a fully parametric semi-Markov multi-state model ##' ##' Simulate changes of state and transition times from a semi-Markov ##' multi-state model fitted using \code{\link{flexsurvreg}}. ##' ##' \code{sim.fmsm} relies on the presence of a function to sample random ##' numbers from the parametric survival distribution used in the fitted model ##' \code{x}, for example \code{\link{rweibull}} for Weibull models. If ##' \code{x} was fitted using a custom distribution, called \code{dist} say, ##' then there must be a function called (something like) \code{rdist} either ##' in the working environment, or supplied through the \code{dfns} argument to ##' \code{\link{flexsurvreg}}. This must be in the same format as standard R ##' functions such as \code{\link{rweibull}}, with first argument \code{n}, and ##' remaining arguments giving the parameters of the distribution. It must be ##' vectorised with respect to the parameter arguments. ##' ##' This function is only valid for semi-Markov ("clock-reset") models, though ##' no warning or error is currently given if the model is not of this type. An ##' equivalent for time-inhomogeneous Markov ("clock-forward") models has ##' currently not been implemented. ##' ##' @param x A model fitted with \code{\link{flexsurvreg}}. See ##' \code{\link{msfit.flexsurvreg}} for the required form of the model and the ##' data. ##' ##' Alternatively \code{x} can be a list of fitted \code{\link{flexsurvreg}} ##' model objects. The \code{i}th element of this list is the model ##' corresponding to the \code{i}th transition in \code{trans}. This is a more ##' efficient way to fit a multi-state model, but only valid if the parameters ##' are different between different transitions. ##' ##' @param trans Matrix indicating allowed transitions. See ##' \code{\link{msfit.flexsurvreg}}. ##' ##' @param t Time, or vector of times for each of the \code{M} individuals, to ##' simulate trajectories until. ##' ##' @param newdata A data frame specifying the values of covariates in the ##' fitted model, other than the transition number. See ##' \code{\link{msfit.flexsurvreg}}. ##' ##' @param start Starting state, or vector of starting states for each of the ##' \code{M} individuals. ##' ##' @param M Number of individual trajectories to simulate. ##' ##' @param tvar Variable in the data representing the transition type. Not ##' required if \code{x} is a list of models. ##' ##' @param tcovs Names of "predictable" time-dependent covariates in ##' \code{newdata}, i.e. those whose values change at the same rate as time. ##' Age is a typical example. During simulation, their values will be updated ##' after each transition time, by adding the current time to the value ##' supplied in \code{newdata}. This assumes the covariate is measured in the ##' same unit as time. \code{tcovs} is supplied as a character vector. ##' ##' @param tidy If \code{TRUE} then the simulated data are returned as a tidy data frame with one row per simulated transition. See \code{\link{simfs_bytrans}} for a function to rearrange the data into this format if it was simulated in non-tidy format. Currently this includes only event times, and excludes any times of censoring that are reported when \code{tidy=FALSE}. ##' ##' @return If \code{tidy=TRUE}, a data frame with one row for each simulated transition, giving the individual ID \code{id}, start state \code{start}, end state \code{end}, transition label \code{trans}, time of the transition since the start of the process (\code{time}), and time since the previous transition (\code{delay}). ##' ##' If \code{tidy=FALSE}, a list of two matrices named \code{st} and \code{t}. The rows of ##' each matrix represent simulated individuals. The columns of \code{t} ##' contain the times when the individual changes state, to the corresponding ##' states in \code{st}. ##' ##' The first columns will always contain the starting states and the starting ##' times. The last column of \code{t} represents either the time when the ##' individual moves to an absorbing state, or right-censoring in a transient ##' state at the time given in the \code{t} argument to \code{sim.fmsm}. ##' ##' @author Christopher Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk}. ##' ##' @seealso \code{\link{pmatrix.simfs}},\code{\link{totlos.simfs}} ##' ##' @keywords models survival ##' ##' @examples ##' ##' bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp") ##' tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) ##' sim.fmsm(bexp, M=10, t=5, trans=tmat) ##' @export sim.fmsm <- function(x, trans=NULL, t, newdata=NULL, start=1, M=10, tvar="trans", tcovs=NULL, tidy=FALSE){ if (is.null(trans)) { if (!is.null(attr(x, "trans"))) trans <- attr(x, "trans") else stop("`trans` not supplied and not found in `x`") } if (length(t)==1) t <- rep(t, M) else if (length(t)!=M) stop("length of t should be 1 or M=",M) if (length(start)==1) start <- rep(start, M) else if (length(start)!=M) stop("length of start should be 1 or M=",M) basepars.all <- pars.fmsm(x=x, trans=trans, newdata=newdata, tvar=tvar) nst <- nrow(trans) ## TODO only need a max time if model is transient, else if absorbing, can allocate these up front res.st <- cur.st <- start res.t <- cur.t <- rep(0, M) todo <- seq_len(M) while (any(todo)){ cur.st.out <- cur.st[todo] cur.t.out <- cur.t[todo] done <- numeric() for (i in unique(cur.st[todo])){ if (i %in% transient(trans)) { ## simulate next time and states for people whose current state is i transi <- na.omit(trans[i,]) ni <- sum(cur.st[todo]==i) t.trans1 <- matrix(0, nrow=ni, ncol=length(transi)) ## simulate times to all potential destination states for (j in seq_along(transi)) { xbase <- if (is.flexsurvlist(x)) x[[transi[j]]] else x if (length(tcovs)>0){ basepars <- form.basepars.tcovs(x, transi[j], newdata, tcovs, cur.t[todo][cur.st[todo]==i]) } else basepars <- as.list(as.data.frame(basepars.all[[transi[j]]])) fncall <- c(list(n=ni), basepars, xbase$aux) if (is.null(xbase$dfns$r)) stop("No random sampling function found for this model") t.trans1[,j] <- do.call(xbase$dfns$r, fncall) } ## simulated next state is the one with minimum simulated time mc <- max.col(-t.trans1) next.state <- match(transi[mc], trans[i,]) next.time <- t.trans1[cbind(seq_along(next.state), mc)] inds <- which(cur.st[todo]==i) cur.t.out[inds] <- cur.t.out[inds] + next.time ## if final simulated state is greater than target time, censor at target time cens <- cur.t.out[inds] > t[inds] cur.t.out[inds][cens] <- t[inds][cens] cur.st.out[inds][!cens] <- next.state[!cens] done <- todo[inds][cens] } } cur.st[todo] <- cur.st.out cur.t[todo] <- cur.t.out res.st <- cbind(res.st, cur.st) res.t <- cbind(res.t, cur.t) done <- union(done, which(cur.st %in% absorbing(trans))) todo <- setdiff(todo, done) } res <- list(st=unname(res.st), t=unname(res.t)) attr(res, "trans") <- trans attr(res, "statenames") <- attr(x, "statenames") if (tidy) res <- simfs_bytrans(res) res # TODO set S3 class and adapt methods } ##' Reformat simulated multi-state data with one row per simulated transition ##' ##' @param simfs Output from \code{\link{sim.fmsm}} representing simulated histories from a multi-state model. ##' ##' @return Data frame with four columns giving transition start state, transition end state, transition name and the time taken by the transition. ##' ##' @export ##' simfs_bytrans <- function(simfs){ ## TODO check for simfs having proper attributes trans <- attr(simfs, "trans") ## all possible starting states start <- which(apply(trans, 1, function(x) !all(is.na(x)))) suball <- NULL for (i in seq_along(start)){ subi <- NULL ## all possible end states for each start state endi <- which(!is.na(trans[start[i],])) for (j in 1:(ncol(simfs$st)-1)){ sub <- (simfs$st[,j] == start[i] & simfs$st[,j+1] %in% endi) if (length(sub) > 0){ subj <- data.frame(end = simfs$st[sub,j+1], time = simfs$t[sub,j+1], delay = simfs$t[sub,j+1] - simfs$t[sub,j], id = which(sub)) subi <- rbind(subi, subj) } } if (nrow(subi) > 0){ subi$start <- start[i] suball <- rbind(suball, subi) } } suball$start <- state_names(suball$start, simfs) suball$end <- state_names(suball$end, simfs) suball$trans <- paste(suball$start, suball$end, sep=" - ") rownames(suball) <- NULL res <- suball[,c("id","start","end","trans","time","delay")] attr(res, "trans") <- trans attr(res, "statenames") <- attr(simfs, "statenames") res[order(res$id),] } ##' Bootstrap confidence intervals for flexsurv output functions ##' ##' Calculate a confidence interval for a model output by repeatedly replacing the parameters in a fitted model object with a draw from the multivariate normal distribution of the maximum likelihood estimates, then recalculating the output function. ##' ##' @param x Output from \code{\link{flexsurvreg}} or ##' \code{\link{flexsurvspline}}, representing a fitted survival model object. Or a list of such objects, defining a multi-state model. ##' ##' @param B Number of parameter draws to use ##' ##' @param fn Function to bootstrap the results of. It must have an argument named \code{x} giving a fitted flexsurv model object. This may return a value with any format, e.g. list, matrix or vector, as long as it can be converted to a numeric vector with \code{unlist}. See the example below. ##' ##' @param attrs Any attributes of the value returned from \code{fn} which we want confidence intervals for. These will be unlisted, if possible, and appended to the result vector. ##' ##' @param sample If \code{TRUE} then the bootstrap sample itself is returned. If \code{FALSE} then the quantiles of the sample are returned giving a confidence interval. ##' ##' @param cl Width of symmetric confidence interval, by default 0.95 ##' ##' @param cores Number of cores to use for parallel processing. ##' ##' @param ... Additional arguments to pass to \code{fn}. ##' ##' @return A matrix with two rows, giving the upper and lower confidence limits respectively. Each row is a vector of the same length as the unlisted result of the function corresponding to \code{fncall}. ##' ##' @examples ##' ##' ## How to use bootci.fmsm ##' ##' ## Write a function with one argument called x giving a fitted model, ##' ## and returning some results of the model. The results may be in any form. ##' ##' tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) ##' bexp <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, data=bosms3, dist="exp") ##' ##' summfn <- function(x, t){ ##' resp <- flexsurv::pmatrix.fs(x, trans=tmat, t=t) ##' rest <- flexsurv::totlos.fs(x, trans=tmat, t=t) ##' list(resp, rest) ##' } ##' ##' ## Use bootci.fmsm to obtain the confidence interval ##' ## The matrix columns are in the order of the unlisted results of the original ##' ## summfn. You will have to rearrange them into the format that you want. ##' ## If summfn has any extra arguments, in this case \code{t}, make sure they are ##' ## passed through via the ... argument to bootci.fmsm ##' ##' bootci.fmsm(bexp, B=3, fn=summfn, t=10) ##' bootci.fmsm(bexp, B=3, fn=summfn, t=5) ##' ##' @export bootci.fmsm <- function(x, B, fn, cl=0.95, attrs=NULL, cores=NULL, sample=FALSE, ...){ if (is.null(cores) || cores==1) parallel <- FALSE else parallel <- TRUE if (is.flexsurvlist(x)){ sim <- vector("list", length(x)) for (j in seq_along(x)){ sim[[j]] <- normboot.flexsurvreg(x=x[[j]], B=B, raw=TRUE, transform=TRUE) } } else { sim <- normboot.flexsurvreg(x=x, B=B, raw=TRUE, transform=TRUE) } boot_fn <- function(i, fn, ...){ x.rep <- x if (is.flexsurvlist(x)){ for (j in seq_along(x)) x.rep[[j]]$res.t[,"est"] <- sim[[j]][i,] } else x.rep$res.t[,"est"] <- sim[i,] args <- list(...) args$x <- x.rep resi <- do.call(fn, args) resivec <- unlist(resi) if (!is.numeric(resivec)) stop("boot_fn returns a non-numeric result") c(resivec, unlist(attributes(resi)[attrs])) } if (parallel) { cid <- parallel::makeCluster(cores) parallel::clusterExport(cl=cid, varlist=ls(.GlobalEnv)) res.rep.list <- parallel::parLapply(cid, seq_len(B), boot_fn, fn=fn, ...) parallel::stopCluster(cid) res.rep <- do.call("rbind", res.rep.list) } else { res.rep <- vector(B, mode="list") for (i in 1:B){ res.rep[[i]] <- boot_fn(i,fn,...) } res.rep <- do.call(rbind, lapply(res.rep, as.numeric)) } if (!sample) res <- apply(res.rep, 2, quantile, c((1-cl)/2, 1 - (1-cl)/2), na.rm=TRUE) else res <- res.rep res } ##' Transition probability matrix from a fully-parametric, semi-Markov ##' multi-state model ##' ##' The transition probability matrix for semi-Markov multi-state models fitted ##' to time-to-event data with \code{\link{flexsurvreg}}. This has \eqn{r,s} ##' entry giving the probability that an individual is in state \eqn{s} at time ##' \eqn{t}, given they are in state \eqn{r} at time \eqn{0}. ##' ##' This is computed by simulating a large number of individuals \code{M} using ##' the maximum likelihood estimates of the fitted model and the function ##' \code{\link{sim.fmsm}}. Therefore this requires a random sampling function ##' for the parametric survival model to be available: see the "Details" ##' section of \code{\link{sim.fmsm}}. This will be available for all built-in ##' distributions, though users may need to write this for custom models. ##' ##' Note the random sampling method for \code{flexsurvspline} models is ##' currently very inefficient, so that looping over the \code{M} individuals ##' will be very slow. ##' ##' \code{\link{pmatrix.fs}} is a more efficient method based on solving the ##' Kolmogorov forward equation numerically, which requires the multi-state ##' model to be Markov. No error or warning is given if running ##' \code{\link{pmatrix.simfs}} with a Markov model, but this is still invalid. ##' ##' @param x A model fitted with \code{\link{flexsurvreg}}. See ##' \code{\link{msfit.flexsurvreg}} for the required form of the model and the ##' data. Additionally this should be semi-Markov, so that the time variable ##' represents the time since the last transition. In other words the response ##' should be of the form \code{Surv(time,status)}. See the package vignette ##' for further explanation. ##' ##' \code{x} can also be a list of \code{\link{flexsurvreg}} models, ##' with one component for each permitted transition, as illustrated ##' in \code{\link{msfit.flexsurvreg}}. This can be constructed by ##' \code{\link{fmsm}}. ##' ##' @param trans Matrix indicating allowed transitions. See ##' \code{\link{msfit.flexsurvreg}}. This is not required if \code{x} ##' is a list constructed by \code{\link{fmsm}}. ##' ##' @param t Time to predict state occupancy probabilities for. This can ##' be a single number or a vector of different numbers. ##' ##' @param newdata A data frame specifying the values of covariates in the ##' fitted model, other than the transition number. See ##' \code{\link{msfit.flexsurvreg}}. ##' ##' @param ci Return a confidence interval calculated by simulating from the ##' asymptotic normal distribution of the maximum likelihood estimates. This ##' is turned off by default, since two levels of simulation are required. If ##' turned on, users should adjust \code{B} and/or \code{M} until the results ##' reach the desired precision. The simulation over \code{M} is generally ##' vectorised, therefore increasing \code{B} is usually more expensive than ##' increasing \code{M}. ##' ##' @param tvar Variable in the data representing the transition type. Not ##' required if \code{x} is a list of models. ##' ##' @param tcovs Predictable time-dependent covariates such as age, see ##' \code{\link{sim.fmsm}}. ##' ##' @param M Number of individuals to simulate in order to approximate the ##' transition probabilities. Users should adjust this to obtain the required ##' precision. ##' ##' @param B Number of simulations from the normal asymptotic distribution used ##' to calculate confidence limits. Decrease for greater speed at the expense of ##' accuracy. ##' ##' @param cl Width of symmetric confidence intervals, relative to 1. ##' ##' @param cores Number of processor cores used when calculating confidence ##' limits by repeated simulation. The default uses single-core processing. ##' ##' @param tidy If \code{TRUE} then the results are returned as a tidy data frame with ##' columns for the estimate and confidence limits, and rows per state transition and ##' time interval. ##' ##' @return The transition probability matrix. If \code{ci=TRUE}, there are ##' attributes \code{"lower"} and \code{"upper"} giving matrices of the ##' corresponding confidence limits. These are formatted for printing but may ##' be extracted using \code{attr()}. ##' @author Christopher Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk}. ##' @seealso ##' \code{\link{pmatrix.fs}},\code{\link{sim.fmsm}},\code{\link{totlos.simfs}}, ##' \code{\link{msfit.flexsurvreg}}. ##' @keywords models survival ##' @examples ##' ##' # BOS example in vignette, and in msfit.flexsurvreg ##' ##' bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp") ##' tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) ##' ##' # more likely to be dead (state 3) as time moves on, or if start with ##' # BOS (state 2) ##' ##' pmatrix.simfs(bexp, t=5, trans=tmat) ##' pmatrix.simfs(bexp, t=10, trans=tmat) ##' ##' # these results should converge to those in help(pmatrix.fs), as M ##' # increases here and ODE solving precision increases there, since with ##' # an exponential distribution, the semi-Markov model is the same as the ##' # Markov model. ##' @export pmatrix.simfs <- function(x, trans, t=1, newdata=NULL, ci=FALSE, tvar="trans", tcovs=NULL, M=100000, B=1000, cl=0.95, cores=NULL, tidy=FALSE) { n <- nrow(trans) T <- length(t) check_nonnegative_numeric(t) res <- array(0, dim=c(n,n,T)) statenames <- rownames(trans) if (is.null(statenames)) statenames <- 1:n dimnames(res) <- list(statenames, statenames, t) for (i in seq_len(n)){ sim <- sim.fmsm(x=x, trans=trans, t=max(t), newdata=newdata, start=i, M=M, tvar=tvar, tcovs=tcovs) for (j in seq_len(T)){ st <- find_state_at(sim,t[j]) res[i,,j] <- prop.table(table(factor(st, levels=seq_len(n)))) } } if (T==1) res <- res[,,1] ### if t is a scalar, drop dimension, for backward compatibility if (tidy){ rest <- data.frame(from = rep(rep(statenames, n), T), to = rep(rep(statenames, each=n), T), t = rep(t, each=n*n), p = as.vector(res)) } else rest <- res if (ci){ resci <- bootci.fmsm(x, B, fn=pmatrix.simfs, ci=FALSE, cl=cl, cores=cores, trans=trans, t=t, newdata=newdata, tvar=tvar, tcovs=tcovs, M=M, tidy=FALSE) resl <- array(resci[1,], dim=c(n,n,T)) resu <- array(resci[2,], dim=c(n,n,T)) dimnames(resl) <- dimnames(resu) <- dimnames(res) if (T==1) resl <- resl[,,1] if (T==1) resu <- resu[,,1] if (tidy) { rest$lower <- as.vector(resl) rest$upper <- as.vector(resu) } else { attr(rest, "lower") <- resl attr(rest, "upper") <- resu class(rest) <- "fs.msm.est" } } rest } ## sim should be a object returned by sim.fmsm in non-tidy format ## ## t should be a scalar (a single number) ## ## Returns the state at time t for each individual find_state_at <- function(sim, t){ check_numeric_scalar(t) tind <- rowSums(sim$t <= t) sim$st[cbind(seq_len(nrow(sim$st)), tind)] } check_numeric <- function(x){ if (!is.numeric(x)) stop(sprintf("%s must be numeric",deparse(substitute(x)))) } check_nonnegative_numeric <- function(x) { check_numeric(x) if (!all(x>=0)) stop(sprintf("%s must all be non-negative",deparse(substitute(x)))) } check_numeric_scalar <- function(x) { check_numeric(x) if (length(x) > 1) stop(sprintf("%s must have length 1",deparse(substitute(x)))) } ## TODO test the multi time thing ##' Expected total length of stay in specific states, from a fully-parametric, ##' semi-Markov multi-state model ##' ##' The expected total time spent in each state for semi-Markov multi-state ##' models fitted to time-to-event data with \code{\link{flexsurvreg}}. This ##' is defined by the integral of the transition probability matrix, though ##' this is not analytically possible and is computed by simulation. ##' ##' This is computed by simulating a large number of individuals \code{M} using ##' the maximum likelihood estimates of the fitted model and the function ##' \code{\link{sim.fmsm}}. Therefore this requires a random sampling function ##' for the parametric survival model to be available: see the "Details" ##' section of \code{\link{sim.fmsm}}. This will be available for all built-in ##' distributions, though users may need to write this for custom models. ##' ##' Note the random sampling method for \code{flexsurvspline} models is ##' currently very inefficient, so that looping over \code{M} will be very ##' slow. ##' ##' The equivalent function for time-inhomogeneous Markov models is ##' \code{\link{totlos.fs}}. Note neither of these functions give errors or ##' warnings if used with the wrong type of model, but the results will be ##' invalid. ##' ##' @inheritParams pmatrix.simfs ##' ##' @param t Maximum time to predict to. ##' ##' @param start Starting state. ##' ##' @param group Optional grouping for the states. For example, if there are ##' four states, and \code{group=c(1,1,2,2)}, then \code{\link{totlos.simfs}} ##' returns the expected total time in states 1 and 2 combined, and states 3 ##' and 4 combined. ##' ##' @return The expected total time spent in each state (or group of states ##' given by \code{group}) up to time \code{t}, and corresponding confidence ##' intervals if requested. ##' @author Christopher Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk}. ##' @seealso ##' \code{\link{pmatrix.simfs}},\code{\link{sim.fmsm}},\code{\link{msfit.flexsurvreg}}. ##' @keywords models survival ##' @examples ##' ##' # BOS example in vignette, and in msfit.flexsurvreg ##' bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp") ##' tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) ##' ##' # predict 4 years spent without BOS, 3 years with BOS, before death ##' # As t increases, this should converge ##' totlos.simfs(bexp, t=10, trans=tmat) ##' totlos.simfs(bexp, t=1000, trans=tmat) ##' @export totlos.simfs <- function(x, trans, t=1, start=1, newdata=NULL, ci=FALSE, tvar="trans", tcovs=NULL, group=NULL, M=100000, B=1000, cl=0.95, cores=NULL) { if (length(t)>1) stop("\"t\" must be a single number") sim <- sim.fmsm(x=x, trans=trans, t=t, newdata=newdata, start=start, M=M, tvar=tvar, tcovs=tcovs) dt <- diff(t(cbind(sim$t, t))) st <- factor(t(sim$st), levels=1:nrow(trans)) res <- tapply(dt, st, sum) / M res[is.na(res)] <- 0 if (!is.null(group)) { if(length(group) != nrow(trans)) stop("\"group\" must be a vector of length ",nrow(trans), " = number of states") res <- tapply(res, group, sum) } if (ci){ resci <- bootci.fmsm(x, B, fn=totlos.simfs, ci=FALSE, cl=cl, cores=cores, trans=trans, t=t, start=start, newdata=newdata, tvar=tvar, tcovs=tcovs, group=group, M=M) resl <- resci[1,] resu <- resci[2,] names(resl) <- names(resu) <- t attr(res, "lower") <- resl attr(res, "upper") <- resu class(res) <- "fs.msm.est" res <- cbind(est=res, L=resl, U=resu) } res } check_trans <- function(trans, flist){ if (!is.matrix(trans)) stop("`trans` should be a matrix") if (!is.numeric(trans)) stop("`trans` should be numeric") if (nrow(trans) != ncol(trans)) stop("`trans should be a square matrix") ntrans <- length(na.omit(as.vector(trans))) if (ntrans != length(flist)) stop(sprintf( "`trans` has %s numeric entries, but `flist` is of length %s. These should match and equal the number of transitions", ntrans, length(flist) )) } default_statenames <- function(trans){ statenames <- rownames(trans) if (is.null(statenames)) statenames <- colnames(trans) nstates <- nrow(trans) if (is.null(statenames)) statenames <- paste("State", 1:nstates) statenames } default_transnames <- function(flist, trans){ statenames <- default_statenames(trans) res <- names(flist) if (is.null(res)){ tid <- trans[!is.na(trans)] from <- statenames[row(trans)[!is.na(trans)]] to <- statenames[col(trans)[!is.na(trans)]] res <- sprintf("%s - %s",from,to)[order(tid)] } res } ##' Construct a multi-state model from a set of parametric survival models ##' ##' @param ... Objects returned by \code{\link{flexsurvreg}} or ##' \code{\link{flexsurvspline}} representing fitted survival models. ##' ##' @param trans A matrix of integers specifying which models correspond to ##' which transitions. The \eqn{r,s} entry is \code{i} if the \eqn{i}th ##' argument specified in \code{...} is the model for the state \eqn{r} to ##' state \eqn{s} transition. The entry should be \code{NA} if the ##' transition is disallowed. ##' ##' @return A list containing the objects given in \code{...}, and with ##' attributes \code{"trans"} and \code{"statenames"} defining the transition ##' structure matrix and state names, and with list components named to ##' describe the transitions they correspond to. If any of the arguments in ##' \code{...} are named, then these are used to define the transition names, ##' otherwise default names are chosen based on the state names. ##' ##' @export fmsm <- function(..., trans){ flist <- list(...) if (!is.flexsurvlist(flist)) stop("extra arguments should all be `flexsurvreg` objects") res <- flist statenames <- default_statenames(trans) rownames(trans) <- colnames(trans) <- statenames check_trans(trans, res) names(res) <- default_transnames(res, trans) attr(res, "trans") <- trans attr(res, "statenames") <- statenames class(res) <- "fmsm" # note sim.fmsm is named inappropriately as it's not a S3 ethod res } ##' @export print.fmsm <- function(x, ...){ for (i in seq_along(x)){ cat(names(x)[i], "\n") print(x[[i]]$call) if (i < length(x)) cat("\n") } } ##' Akaike's information criterion from a flexible parametric multistate model ##' ##' Defined as the sum of the AICs of the transition-specific models. ##' ##' @param object Object returned by \code{\link{fmsm}} representing a multistate model. ##' ##' @param k Penalty applied to number of parameters (defaults to the standard 2). ##' ##' @param ... Further arguments (currently unused). ##' ##' @return The sum of the AICs of the transition-specific models. ##' ##' @export AIC.fmsm <- function(object,...,k=2){ nmods <- length(object) aics <- numeric(nmods) for (i in 1:nmods){ aics[i] <- AIC(object[[i]],...,k=k) } sum(aics) } nextstates <- function(x, fromstate){ trans <- attr(x,"trans") colnames(trans)[!is.na(trans[fromstate,])] } simfinal_fmsm_noci <- function(x, newdata=NULL, t=1000, M=100000, probs=c(0.025, 0.5, 0.975)){ ncovvals <- if (is.null(newdata)) 1 else nrow(newdata) simfs <- vector(ncovvals, mode="list") for (i in 1:ncovvals){ nd <- if (is.null(newdata)) NULL else newdata[i,,drop=FALSE] simfs[[i]] <- sim.fmsm(x, newdata=nd, t=t, M=M, tidy=TRUE) } rest <- vector(ncovvals, mode="list") statenames <- names(absorbing(attr(x,"trans"))) for (i in 1:ncovvals){ sf <- simfs[[i]] abs <- sf$end %in% statenames finaldat <- sf[abs,,drop=FALSE] means <- data.frame(state=statenames, val=tapply(finaldat$time, finaldat$end, mean)[statenames], quantity="mean") probsu <- data.frame(state=statenames, val=as.numeric(prop.table(table(finaldat$end))[statenames]), quantity="prob") quants <- tapply(finaldat$time, finaldat$end, quantile, probs) quants <- quants[statenames] quants <- as.data.frame(do.call("rbind",quants)) qnames <- colnames(quants) quants$state <- statenames quants <- tidyr::pivot_longer(quants, cols=c(all_of(qnames)), names_to="quantity", values_to="val") rest[[i]] <- quants %>% dplyr::full_join(means,by=c("state","quantity","val")) %>% dplyr::full_join(probsu,by=c("state","quantity","val")) rest[[i]] <- newdata[i,,drop=FALSE] %>% tidyr::crossing(rest[[i]]) } do.call("rbind",rest) } ##' Simulate and summarise final outcomes from a flexible parametric multi-state ##' model ##' ##' Estimates the probability of each final outcome ("absorbing" state), and the ##' mean and quantiles of the time to that outcome for people who experience it, ##' by simulating a large sample of individuals from the model. This can be used ##' for both Markov and semi-Markov models. ##' ##' For a competing risks model, i.e. a model defined by just one starting state ##' and multiple destination states representing competing events, this returns ##' the probability governing the next event that happens, and the distribution ##' of the time to each event conditionally on that event happening. ##' ##' ##' @param x Object returned by \code{\link{fmsm}}, representing a multi-state ##' model formed from transition-specific time-to-event models fitted by ##' \code{\link{flexsurvreg}}. ##' ##' @param newdata Data frame of covariate values, with one column per ##' covariate, and one row per alternative value. ##' ##' @param probs Quantiles to calculate, by default, \code{c(0.025, 0.5, 0.975)} ##' for a median and 95\% interval. ##' ##' @param t Maximum time to simulate to, passed to \code{\link{sim.fmsm}}, so ##' that the summaries are taken from the subset of individuals in the ##' simulated data who are in the absorbing state at this time. ##' ##' @param M Number of individuals to simulate. ##' ##' @param B Number of simulations to use to calculate 95\% confidence intervals ##' based on the asymptotic normal distribution of the basic parameter ##' estimates. If \code{B=0} then no intervals are calculated. ##' ##' @param cores Number of processor cores to use. If \code{NULL} (the default) ##' then a single core is used. ##' ##' @return A tidy data frame with rows for each combination of covariate values ##' and quantity of interest. The quantity of interest is identified in the ##' column \code{quantity}, and the value of the quantity is in \code{val}, ##' with additional columns \code{lower} and \code{upper} giving 95\% ##' confidence intervals for the quantity, if \code{B>0}. ##' ##' @export simfinal_fmsm <- function(x, newdata=NULL, probs=c(0.025, 0.5, 0.975), t=1000, M=100000, B=0, cores=NULL){ if (x[[1]]$ncoveffs > 0 & is.null(newdata)) stop("`newdata` should be supplied if there are covariates in the model") ests <- simfinal_fmsm_noci(x=x, newdata=newdata, probs=probs, t=t, M=M) valfn <- function(x, newdata=NULL, t, M, probs){ simfinal_fmsm_noci(x=x, newdata=newdata, t=t, M=M, probs=probs)$val } if (B>0){ bci <- bootci.fmsm(x, fn=valfn, newdata=newdata, t=t, M=M, B=B, cores=cores, probs=probs) ests$lower <- bci[1,] ests$upper <- bci[2,] } ests } pfinal_fmsm_noci <- function(x, newdata=NULL, fromstate, maxt=100000){ tmat <- attr(x, "trans") if (!(fromstate %in% rownames(tmat))) stop(sprintf("State `%s` not found in rownames(attr(x,\"trans\"))",fromstate)) tostates <- colnames(tmat)[!is.na(tmat[fromstate,])] ncovvals <- if (is.null(newdata)) 1 else nrow(newdata) pres <- as.data.frame(matrix(nrow=ncovvals, ncol=length(tostates))) colnames(pres) <- tostates if (length(tostates)==0) stop(sprintf("No destination states possible from state %s",fromstate)) for (i in 1:ncovvals){ nd <- if (is.null(newdata)) NULL else newdata[i,,drop=FALSE] pm <- pmatrix.fs(x, newdata=nd, condstates=tostates, t=maxt, tidy=TRUE)[1,tostates] pres[i,tostates] <- unlist(pm) } if (!is.null(newdata)) pres <- cbind(newdata, pres) pres } ##' Probabilities of final states in a flexible parametric competing risks model ##' ##' This requires the model to be Markov, and is not valid for semi-Markov ##' models, as it works by wrapping \code{\link{pmatrix.fs}} to calculate the ##' transition probability over a very large time. As it also works on a ##' \code{fmsm} object formed from transition-specific time-to-event models, ##' it therefore only works on competing risks models, defined by just one starting ##' state with multiple destination states representing competing events. ##' For these models, this function returns the probability governing which ##' competing event happens next. However this function simply wraps \code{pmatrix.fs}, ##' so for other models, \code{pmatrix.fs} or \code{pmatrix.simfs} can be used with a ##' large forecast time \code{t}. ##' ##' @inheritParams simfinal_fmsm ##' ##' @param fromstate State from which to calculate the transition probability ##' state. This should refer to the name of a row of the transition matrix ##' \code{attr(x,trans)}. ##' ##' @param maxt Large time to use for forecasting final state probabilities. ##' The transition probability from zero to this time is used. Note ##' \code{Inf} will not work. The default is \code{100000}. ##' ##' @return A data frame with one row per covariate value and destination state, ##' giving the state in column \code{state}, and probability in column ##' \code{val}. Additional columns \code{lower} and \code{upper} for the ##' confidence limits are returned if \code{B=0}. ##' ##' @export pfinal_fmsm <- function(x, newdata=NULL, fromstate, maxt=100000, B=0, cores=NULL){ ests <- pfinal_fmsm_noci(x, newdata, fromstate=fromstate, maxt=maxt) tostates <- nextstates(x, fromstate) ests <- pivot_longer(ests, all_of(tostates), names_to="state", values_to="val") ests$state <- factor(ests$state, levels=tostates) ests <- ests[order(ests$state),] if (B>0){ bci <- bootci.fmsm(x, fn=pfinal_fmsm_noci, newdata=newdata, fromstate=fromstate, maxt=maxt, B=B, cores=cores) if (!is.null(newdata)) bci <- bci[,-seq_along(unlist(newdata)),drop=FALSE] ests$lower <- bci[1,] ests$upper <- bci[2,] } ests } flexsurv/R/flexsurv-package.R0000644000176200001440000003074514554254207015744 0ustar liggesusers##' flexsurv: Flexible parametric survival and multi-state models ##' ##' flexsurv: Flexible parametric models for time-to-event data, including the ##' generalized gamma, the generalized F and the Royston-Parmar spline model, ##' and extensible to user-defined distributions. ##' ##' \code{\link{flexsurvreg}} fits parametric models for time-to-event ##' (survival) data. Data may be right-censored, and/or left-censored, and/or ##' left-truncated. Several built-in parametric distributions are available. ##' Any user-defined parametric model can also be employed by supplying a list ##' with basic information about the distribution, including the density or ##' hazard and ideally also the cumulative distribution or hazard. ##' ##' Covariates can be included using a linear model on any parameter of the ##' distribution, log-transformed to the real line if necessary. This ##' typically defines an accelerated failure time or proportional hazards ##' model, depending on the distribution and parameter. ##' ##' \code{\link{flexsurvspline}} fits the flexible survival model of Royston ##' and Parmar (2002) in which the log cumulative hazard is modelled as a ##' natural cubic spline function of log time. Covariates can be included on ##' any of the spline parameters, giving either a proportional hazards model or ##' an arbitrarily-flexible time-dependent effect. Alternative proportional ##' odds or probit parameterisations are available. ##' ##' Output from the models can be presented as survivor, cumulative hazard and ##' hazard functions (\code{\link{summary.flexsurvreg}}). These can be plotted ##' against nonparametric estimates (\code{\link{plot.flexsurvreg}}) to assess ##' goodness-of-fit. Any other user-defined function of the parameters may be ##' summarised in the same way. ##' ##' Multi-state models for time-to-event data can also be fitted with the same ##' functions. Predictions from those models can then be made using the ##' functions \code{\link{pmatrix.fs}}, \code{\link{pmatrix.simfs}}, ##' \code{\link{totlos.fs}}, \code{\link{totlos.simfs}}, or ##' \code{\link{sim.fmsm}}, or alternatively by \code{\link{msfit.flexsurvreg}} ##' followed by \code{mssample} or \code{probtrans} from the package ##' \pkg{mstate}. ##' ##' Distribution (``dpqr'') functions for the generalized gamma and F ##' distributions are given in \code{\link{GenGamma}}, \code{\link{GenF}} ##' (preferred parameterisations) and \code{\link{GenGamma.orig}}, ##' \code{\link{GenF.orig}} (original parameterisations). ##' \code{\link{flexsurv}} also includes the standard Gompertz distribution ##' with unrestricted shape parameter, see \code{\link{Gompertz}}. ##' ##' @name flexsurv-package ##' @aliases flexsurv-package flexsurv ##' @docType package ##' @section User guide: The \bold{flexsurv user guide} vignette explains the ##' methods in detail, and gives several worked examples. A further vignette ##' \bold{flexsurv-examples} gives a few more complicated examples, and users ##' are encouraged to submit their own. ##' @author Christopher Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' @references Jackson, C. (2016). flexsurv: A Platform for Parametric ##' Survival Modeling in R. Journal of Statistical Software, 70(8), 1-33. ##' doi:10.18637/jss.v070.i08 ##' ##' Royston, P. and Parmar, M. (2002). Flexible parametric ##' proportional-hazards and proportional-odds models for censored survival ##' data, with application to prognostic modelling and estimation of treatment ##' effects. Statistics in Medicine 21(1):2175-2197. ##' ##' Cox, C. (2008). The generalized \eqn{F} distribution: An umbrella for ##' parametric survival analysis. Statistics in Medicine 27:4301-4312. ##' ##' Cox, C., Chu, H., Schneider, M. F. and Muñoz, A. (2007). Parametric ##' survival analysis and taxonomy of hazard functions for the generalized ##' gamma distribution. Statistics in Medicine 26:4252-4374 ##' @keywords package ##' @importFrom Rcpp sourceCpp ##' @useDynLib flexsurv, .registration = TRUE ##' @import stats ##' @importFrom magrittr %>% ##' @importFrom dplyr mutate rename full_join bind_rows distinct ##' @importFrom tidyr pivot_longer pivot_wider ##' @importFrom tidyselect all_of num_range ##' @importFrom rlang .data ##' @importFrom mstate msfit probtrans ##' @importFrom graphics plot lines ##' @importFrom survival Surv survfit coxph survreg survreg.control ##' @importFrom muhaz muhaz ##' @importFrom mvtnorm rmvnorm ##' @importFrom deSolve ode ##' @importFrom quadprog solve.QP ##' @importFrom utils globalVariables "_PACKAGE" .onUnload <- function(libpath) { library.dynam.unload("flexsurv", libpath) } ##' Hazard and cumulative hazard functions ##' ##' Hazard and cumulative hazard functions for distributions which are built ##' into flexsurv, and whose distribution functions are in base R. ##' ##' For the exponential and the Weibull these are available analytically, and ##' so are programmed here in numerically stable and efficient forms. ##' ##' For the gamma and log-normal, these are simply computed as minus the log of ##' the survivor function (cumulative hazard) or the ratio of the density and ##' survivor function (hazard), so are not expected to be robust to extreme ##' values or quick to compute. ##' ##' @aliases hexp Hexp hweibull Hweibull hgamma Hgamma hlnorm Hlnorm ##' @param x Vector of quantiles ##' @param rate Rate parameter (exponential and gamma) ##' @param shape Shape parameter (Weibull and gamma) ##' @param scale Scale parameter (Weibull) ##' @param meanlog Mean on the log scale (log normal) ##' @param sdlog Standard deviation on the log scale (log normal) ##' @param log Compute log hazard or log cumulative hazard ##' @return Hazard (functions beginning 'h') or cumulative hazard (functions ##' beginning 'H'). ##' @author Christopher Jackson ##' @seealso ##' \code{\link{dexp}},\code{\link{dweibull}},\code{\link{dgamma}},\code{\link{dlnorm}},\code{\link{dgompertz}},\code{\link{dgengamma}},\code{\link{dgenf}} ##' @keywords distribution ##' @name hazard NULL ##' Mean and restricted mean survival functions ##' ##' Mean and restricted mean survival time functions for distributions which are built ##' into flexsurv. ##' ##' For the exponential, Weibull, log-logistic, lognormal, and gamma, mean survival is ##' provided analytically. Restricted mean survival for the exponential distribution ##' is also provided analytically. Mean and restricted means for other distributions ##' are calculated via numeric integration. ##' ##' @aliases mean_exp rmst_exp mean_weibull rmst_weibull mean_weibullPH rmst_weibullPH ##' mean_llogis rmst_llogis mean_lnorm rmst_lnorm mean_gamma rmst_gamma mean_gompertz ##' rmst_gompertz mean_gengamma rmst_gengamma mean_gengamma.orig rmst_gengamma.orig ##' mean_genf rmst_genf mean_genf.orig rmst_genf.orig ##' @param t Vector of times to which restricted mean survival time is evaluated ##' @param start Optional left-truncation time or times. The returned ##' restricted mean survival will be conditioned on survival up to ##' this time. ##' @param rate Rate parameter (exponential and gamma) ##' @param shape Shape parameter (Weibull, gamma, log-logistic, generalized gamma [orig], ##' generalized F [orig]) ##' @param scale Scale parameter (Weibull, log-logistic, generalized gamma [orig], ##' generalized F [orig]) ##' @param meanlog Mean on the log scale (log normal) ##' @param sdlog Standard deviation on the log scale (log normal) ##' @param mu Mean on the log scale (generalized gamma, generalized F) ##' @param sigma Standard deviation on the log scale (generalized gamma, generalized F) ##' @param Q Vector of first shape parameters (generalized gamma, generalized F) ##' @param P Vector of second shape parameters (generalized F) ##' @param k vector of shape parameters (generalized gamma [orig]). ##' @param s1 Vector of first F shape parameters (generalized F [orig]) ##' @param s2 vector of second F shape parameters (generalized F [orig]) ##' @return mean survival (functions beginning 'mean') or restricted mean survival ##' (functions beginning 'rmst_'). ##' @author Christopher Jackson ##' @seealso ##' \code{\link{dexp}},\code{\link{dweibull}},\code{\link{dgamma}},\code{\link{dlnorm}},\code{\link{dgompertz}},\code{\link{dgengamma}},\code{\link{dgenf}} ##' @keywords distribution ##' @name means NULL ##' Breast cancer survival data ##' ##' Survival times of 686 patients with primary node positive breast cancer. ##' ##' ##' @format A data frame with 686 rows. \tabular{rll}{ \code{censrec} \tab ##' (numeric) \tab 1=dead, 0=censored \cr \code{rectime} \tab (numeric) \tab ##' Time of death or censoring in days\cr \code{group} \tab (numeric) \tab ##' Prognostic group: \code{"Good"},\code{"Medium"} or \code{"Poor"}, \cr \tab ##' \tab from a regression model developed by Sauerbrei and Royston (1999).\cr ##' } ##' @seealso \code{\link{flexsurvspline}} ##' @references Royston, P. and Parmar, M. (2002). Flexible parametric ##' proportional-hazards and proportional-odds models for censored survival ##' data, with application to prognostic modelling and estimation of treatment ##' effects. Statistics in Medicine 21(1):2175-2197. ##' ##' Sauerbrei, W. and Royston, P. (1999). Building multivariable prognostic and ##' diagnostic models: transformation of the predictors using fractional ##' polynomials. Journal of the Royal Statistical Society, Series A 162:71-94. ##' @source German Breast Cancer Study Group, 1984-1989. Used as a reference ##' dataset for the spline-based survival model of Royston and Parmar (2002), ##' implemented here in \code{\link{flexsurvspline}}. Originally provided with ##' the \code{stpm} (Royston 2001, 2004) and \code{stpm2} (Lambert 2009, 2010) ##' Stata modules. ##' @keywords datasets "bc" ##' Bronchiolitis obliterans syndrome after lung transplants ##' ##' A dataset containing histories of bronchiolitis obliterans syndrome (BOS) ##' from lung transplant recipients. BOS is a chronic decline in lung function, ##' often observed after lung transplantation. ##' ##' The entry time of each patient into each stage of BOS was estimated by ##' clinicians, based on their history of lung function measurements and acute ##' rejection and infection episodes. BOS is only assumed to occur beyond six ##' months after transplant. In the first six months the function of each ##' patient's new lung stabilises. Subsequently BOS is diagnosed by comparing ##' the lung function against the "baseline" value. ##' ##' The same data are provided in the \pkg{msm} package, but in the ##' native format of \pkg{msm} to allow Markov models to be fitted. ##' In \pkg{flexsurv}, much more flexible models can be fitted. ##' @name bos ##' @aliases bosms3 bosms4 ##' @docType data ##' @format A data frame containing a sequence of observed or censored ##' transitions to the next stage of severity or death. It is grouped ##' by patient and includes histories of 204 patients. All patients ##' start in state 1 (no BOS) at six months after transplant, and may ##' subsequently develop BOS or die. ##' ##' \code{bosms3} contains the data for a three-state model: no BOS, BOS or ##' death. \code{bosms4} uses a four-state representation: no BOS, mild BOS, ##' moderate/severe BOS or death. \tabular{rll}{ \code{id} \tab (numeric) \tab ##' Patient identification number \cr \code{from} \tab (numeric) \tab Observed ##' starting state of the transition \cr \code{to} \tab (numeric) \tab Observed ##' or potential ending state of the transition \cr \code{Tstart} \tab ##' (numeric) \tab Time at the start of the interval \cr \code{Tstop} \tab ##' (numeric) \tab Time at the end of the interval \cr \code{time} \tab ##' (numeric) \tab Time difference \code{Tstart}-\code{Tstop} \cr \code{status} ##' \tab (numeric) \tab 1 if the transition to state \code{to} was observed, or ##' 0 if the transition to state \code{to} was censored (for example, if the ##' patient was observed to move to a competing state) \cr \code{trans} \tab ##' (factor) \tab Number of the transition \code{from}-\code{to} in the set of ##' all \code{ntrans} allowed transitions, numbered from 1 to \code{ntrans}. } ##' @references Heng. D. et al. (1998). Bronchiolitis Obliterans Syndrome: ##' Incidence, Natural History, Prognosis, and Risk Factors. Journal of Heart ##' and Lung Transplantation 17(12)1255--1263. ##' @source Papworth Hospital, U.K. ##' @keywords datasets NULL flexsurv/R/Gamma.R0000644000176200001440000000265214203407517013506 0ustar liggesusers### Hazard and cumulative hazard functions for R built in ### distributions. Where possible, use more numerically stable ### formulae than d/(1-p) and -log(1-p) ##' @export ##' @rdname hazard hgamma <- function(x, shape, rate=1, log=FALSE){ h <- dbase("gamma", log=log, x=x, shape=shape, rate=rate) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) ret[ind] <- dgamma(x, shape, rate) / pgamma(x, shape, rate, lower.tail=FALSE) if (log) ret[ind] <- log(ret[ind]) ret } ##' @export ##' @rdname hazard Hgamma <- function(x, shape, rate=1, log=FALSE){ h <- dbase("gamma", log=log, x=x, shape=shape, rate=rate) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) ret[ind] <- - pgamma(x, shape, rate, lower.tail=FALSE, log.p=TRUE) if (log) ret[ind] <- log(ret[ind]) ret } check.gamma <- function(shape, rate=1){ ret <- rep(TRUE, length(shape)) if (any(!is.na(shape) & shape<0)) { warning("Negative shape parameter") ret[!is.na(shape) & shape<0] <- FALSE } if (any(!is.na(rate) & rate<0)) { warning("Negative rate parameter") ret[!is.na(rate) & rate<0] <- FALSE } ret } ##' @export ##' @rdname means mean_gamma <- function(shape, rate=1) {shape / rate} var.gamma <- function(shape, rate=1) {shape / rate^2} ##' @export ##' @rdname means rmst_gamma = function(t, shape, rate=1, start=0){ rmst_generic(pgamma, t, start=start, shape=shape, rate=rate) } flexsurv/R/flexsurvmix.R0000644000176200001440000012422514644755116015073 0ustar liggesusers##' Flexible parametric mixture models for times to competing events ##' ##' In a mixture model for competing events, an individual can experience one of ##' a set of different events. We specify a model for the probability that they ##' will experience each event before the others, and a model for the time to ##' the event conditionally on that event occurring first. ##' ##' This differs from the more usual "competing risks" models, where we specify ##' "cause-specific hazards" describing the time to each competing event. This ##' time will not be observed for an individual if one of the competing events ##' happens first. The event that happens first is defined by the minimum of ##' the times to the alternative events. ##' ##' The \code{flexsurvmix} function fits a mixture model to data consisting of a ##' single time to an event for each individual, and an indicator for what type ##' of event occurs for that individual. The time to event may be observed or ##' censored, just as in \code{\link{flexsurvreg}}, and the type of event may be ##' known or unknown. In a typical application, where we follow up a set of ##' individuals until they experience an event or a maximum follow-up time is ##' reached, the event type is known if the time is observed, and the event type ##' is unknown when follow-up ends and the time is right-censored. ##' ##' The model is fitted by maximum likelihood, either directly or by using an ##' expectation-maximisation (EM) algorithm, by wrapping ##' \code{\link{flexsurvreg}} to compute the likelihood or to implement the E ##' and M steps. ##' ##' Some worked examples are given in the package vignette about multi-state ##' modelling, which can be viewed by running \code{vignette("multistate", package="flexsurv")}. ##' ##' ##' @param formula Survival model formula. The left hand side is a \code{Surv} ##' object specified as in \code{\link{flexsurvreg}}. This may define various ##' kinds of censoring, as described in \code{\link[survival]{Surv}}. Any covariates on ##' the right hand side of this formula will be placed on the location ##' parameter for every component-specific distribution. Covariates on other ##' parameters of the component-specific distributions may be supplied using ##' the \code{anc} argument. ##' ##' Alternatively, \code{formula} may be a list of formulae, with one ##' component for each alternative event. This may be used to specify ##' different covariates on the location parameter for different components. ##' ##' A list of formulae may also be used to indicate that for particular ##' individuals, different events may be observed in different ways, with ##' different censoring mechanisms. Each list component specifies the data ##' and censoring scheme for that mixture component. ##' ##' For example, suppose we are studying people admitted to hospital,and the ##' competing states are death in hospital and discharge from hospital. At ##' time t we know that a particular individual is still alive, but we do not ##' know whether they are still in hospital, or have been discharged. In this ##' case, if the individual were to die in hospital, their death time would be ##' right censored at t. If the individual will be (or has been) discharged ##' before death, their discharge time is completely unknown, thus ##' interval-censored on (0,Inf). Therefore, we need to store different event ##' time and status variables in the data for different alternative events. ##' This is specified here as ##' ##' \code{formula = list("discharge" = Surv(t1di, t2di, type="interval2"), ##' "death" = Surv(t1de, status_de))} ##' ##' where for this individual, \code{(t1di, t2di) = (0, Inf)} and \code{(t1de, ##' status_de) = (t, 0)}. ##' ##' The "dot" notation commonly used to indicate "all remaining variables" in a ##' formula is not supported in \code{flexsurvmix}. ##' ##' ##' @param data Data frame containing variables mentioned in \code{formula}, ##' \code{event} and \code{anc}. ##' ##' @param event Variable in the data that specifies which of the alternative ##' events is observed for which individual. If the individual's follow-up is ##' right-censored, or if the event is otherwise unknown, this variable must ##' have the value \code{NA}. ##' ##' Ideally this should be a factor, since the mixture components can then be ##' easily identified in the results with a name instead of a number. If this ##' is not already a factor, it is coerced to one. Then the levels of the ##' factor define the required order for the components of the list arguments ##' \code{dists}, \code{anc}, \code{inits} and \code{dfns}. Alternatively, if ##' the components of the list arguments are named according to the levels of ##' \code{event}, then the components can be arranged in any order. ##' ##' @param dists Vector specifying the parametric distribution to use for each ##' component. The same distributions are supported as in ##' \code{\link{flexsurvreg}}. ##' ##' @param pformula Formula describing covariates to include on the component ##' membership proabilities by multinomial logistic regression. The first ##' component is treated as the baseline. ##' ##' The "dot" notation commonly used to indicate "all remaining variables" in a ##' formula is not supported. ##' ##' @param anc List of component-specific lists, of length equal to the number ##' of components. Each component-specific list is a list of formulae ##' representing covariate effects on parameters of the distribution. ##' ##' If there are covariates for one component but not others, then a list ##' containing one null formula on the location parameter should be supplied ##' for the component with no covariates, e.g \code{list(rate=~1)} if the ##' location parameter is called \code{rate}. ##' ##' Covariates on the location parameter may also be supplied here instead of ##' in \code{formula}. Supplying them in \code{anc} allows some components ##' but not others to have covariates on their location parameter. If a covariate ##' on the location parameter was provided in \code{formula}, and there are ##' covariates on other parameters, then a null formula should be included ##' for the location parameter in \code{anc}, e.g \code{list(rate=~1)} ##' ##' @param partial_events List specifying the factor levels of \code{event} ##' which indicate knowledge that an individual will not experience particular ##' events, but may experience others. The names of the list indicate codes ##' that indicate partial knowledge for some individuals. The list component ##' is a vector, which must be a subset of \code{levels(event)} defining the ##' events that a person with the corresponding event code may experience. ##' ##' For example, suppose there are three alternative events called ##' \code{"disease1"},\code{"disease2"} and \code{"disease3"}, and for some ##' individuals we know that they will not experience \code{"disease2"}, but ##' they may experience the other two events. In that case we must create a ##' new factor level, called, for example \code{"disease1or3"}, and set the ##' value of \code{event} to be \code{"disease1or3"} for those individuals. ##' Then we use the \code{"partial_events"} argument to tell ##' \code{flexsurvmix} what the potential events are for individuals with this ##' new factor level. ##' ##' \code{partial_events = list("disease1or3" = c("disease1","disease3"))} ##' ##' @param initp Initial values for component membership probabilities. By ##' default, these are assumed to be equal for each component. ##' ##' @param inits List of component-specific vectors. Each component-specific ##' vector contains the initial values for the parameters of the ##' component-specific model, as would be supplied as the \code{inits} argument of ##' \code{\link{flexsurvreg}}. By default, a heuristic is used to obtain ##' initial values, which depends on the parametric distribution being used, ##' but is usually based on the empirical mean and/or variance of the survival ##' times. ##' ##' @param fixedpars Indexes of parameters to fix at their initial values and ##' not optimise. Arranged in the order: baseline mixing probabilities, ##' covariates on mixing probabilities, time-to-event parameters by mixing ##' component. Within mixing components, time-to-event parameters are ordered ##' in the same way as in \code{\link{flexsurvreg}}. ##' ##' If \code{fixedpars=TRUE} then all parameters will be fixed and the ##' function simply calculates the log-likelihood at the initial values. ##' ##' Not currently supported when using the EM algorithm. ##' ##' @param dfns List of lists of user-defined distribution functions, one for ##' each mixture component. Each list component is specified as the ##' \code{dfns} argument of \code{\link{flexsurvreg}}. ##' ##' @param method Method for maximising the likelihood. Either \code{"em"} for ##' the EM algorithm, or \code{"direct"} for direct maximisation. ##' ##' @param em.control List of settings to control EM algorithm fitting. The ##' only options currently available are ##' ##' \code{trace} set to 1 to print the parameter estimates at each iteration ##' of the EM algorithm ##' ##' \code{reltol} convergence criterion. The algorithm stops if the log ##' likelihood changes by a relative amount less than \code{reltol}. The ##' default is the same as in \code{\link{optim}}, that is, ##' \code{sqrt(.Machine$double.eps)}. ##' ##' \code{var.method} method to compute the covariance matrix. \code{"louis"} ##' for the method of Louis (1982), or \code{"direct"}for direct numerical ##' calculation of the Hessian of the log likelihood. ##' ##' \code{optim.p.control} A list that is passed as the \code{control} ##' argument to \code{optim} in the M step for the component membership ##' probability parameters. The optimisation in the M step for the ##' time-to-event parameters can be controlled by the \code{optim.control} ##' argument to \code{flexsurvmix}. ##' ##' For example, \code{em.control = list(trace=1, reltol=1e-12)}. ##' ##' @param optim.control List of options to pass as the \code{control} argument ##' to \code{\link{optim}}, which is used by \code{method="direct"} or in the ##' M step for the time-to-event parameters in \code{method="em"}. By ##' default, this uses \code{fnscale=10000} and \code{ndeps=rep(1e-06,p)} ##' where \code{p} is the number of parameters being estimated, unless the ##' user specifies these options explicitly. ##' ##' ##' @inheritParams flexsurvreg ##' ##' @return List of objects containing information about the fitted model. The ##' important one is \code{res}, a data frame containing the parameter ##' estimates and associated information. ##' ##' ##' @references Jackson, C. H. and Tom, B. D. M. and Kirwan, P. D. and Mandal, S. ##' and Seaman, S. R. and Kunzmann, K. and Presanis, A. M. and De Angelis, D. (2022) ##' A comparison of two frameworks for multi-state modelling, applied to outcomes ##' after hospital admissions with COVID-19. Statistical Methods in Medical Research ##' 31(9) 1656-1674. ##' ##' Larson, M. G., & Dinse, G. E. (1985). A mixture model for the ##' regression analysis of competing risks data. Journal of the Royal ##' Statistical Society: Series C (Applied Statistics), 34(3), 201-211. ##' ##' Lau, B., Cole, S. R., & Gange, S. J. (2009). Competing risk regression ##' models for epidemiologic data. American Journal of Epidemiology, 170(2), ##' 244-256. ##' ##' @export flexsurvmix <- function(formula, data, event, dists, pformula=NULL, anc=NULL, partial_events = NULL, initp=NULL, inits=NULL, fixedpars=NULL, dfns=NULL, method="direct", em.control=NULL, optim.control=NULL, aux=NULL, sr.control=survreg.control(), integ.opts, hess.control=NULL, ...){ call <- match.call() ## Determine names of competing events, and their order, based on event data event <- eval(substitute(event), data, parent.frame()) if (!is.factor(event)) event <- factor(event) ## Determine which of these are codes for partially observed events if (!is.null(partial_events)) { if (!is.list(partial_events)) stop("`partial_events` must be a list") if (!is.null(names(partial_events))) stop("`partial_events` must be a named list") npartials <- length(partial_events) evnames <- setdiff(levels(event), names(partial_events)) for (i in 1:npartials){ badnames <- partial_events[[i]][!(partial_events[[i]] %in% evnames)] badnames <- paste0("\"",badnames,"\"") if (length(badnames) > 0) stop(sprintf("partial_events[[%s]] values %s not in levels(events)", i, paste(badnames,collapse=","))) ## Convert to codes partial_events[[i]] <- match(partial_events[[i]], evnames) } } else npartials <- 0 evnames <- setdiff(levels(event), names(partial_events)) partial_event <- ifelse(event %in% names(partial_events), event, NA) partial_event <- match(partial_event, names(partial_events)) event[event %in% names(partial_events)] <- NA ## For all arguments that are vectors or lists by event, ## make sure their names match names of events ## and reorder if necessary so the order of the names matches too if (missing(dists)) stop("Distributions \"dists\" not specified") dists <- clean_listarg(dists, "dists", evnames) anc <- clean_listarg(anc, "anc", evnames) inits <- clean_listarg(inits, "inits", evnames) dfns <- clean_listarg(dfns, "dfns", evnames) ## Build distribution functions K <- length(dists) dlists <- vector(K, mode="list") if (is.null(dfns)) dfns <- vector(K, mode="list") for (k in 1:K){ dlists[[k]] <- parse.dist(dists[[k]]) dfns[[k]] <- form.dp(dlists[[k]], dfns[[k]], integ.opts) } names(dlists) <- names(dfns) <- names(dists) check.formula.flexsurvmix(formula, dlists[[1]], data) # TESTME if (is.list(formula)) formula <- clean_listarg(formula, "formula", evnames) ## Build covariate model formulae if (!is.null(anc)) { if (!is.list(anc)) stop("`anc` should be a list") } ancm <- vector(K, mode="list") for (k in 1:K){ msg <- sprintf("anc[[%s]] must be a list of formulae", k) fk <- if (is.list(formula)) formula[[k]] else formula ancm[[k]] <- anc_from_formula(fk, anc[[k]], dlists[[k]], msg, data, loc_warn=FALSE) } locform <- forms <- vector(K, mode="list") for (k in 1:K) { ancnames <- setdiff(dlists[[k]]$pars, dlists[[k]]$location) fk <- if (is.list(formula)) formula[[k]] else formula locform[[k]] <- get.locform(fk, ancnames, data) loc <- dlists[[k]]$location if (loc %in% names(ancm[[k]])){ ## Add any extra covariates on the location parameter found in "anc" (usually we'll be adding to ~1) fc <- as.character(ancm[[k]][[loc]]) extraterms <- formula(paste(fc[1], ". +", fc[-1], collapse=" ")) locform[[k]] <- update(locform[[k]], extraterms) ancm[[k]][[loc]] <- anc[[k]][[loc]]<- NULL } forms[[k]] <- c(location=locform[[k]], ancm[[k]]) names(forms[[k]])[[1]] <- loc } ## Build model frame given formulae indx <- match(c("formula", "data", "event"), names(call), nomatch = 0) if (indx[1] == 0) stop("A \"formula\" argument is required") temp <- call[c(1, indx)] temp[[1]] <- as.name("model.frame") temp[["event"]] <- event f1 <- if (is.list(formula)) formula[[1]] else formula if (missing(data)) temp[["data"]] <- environment(f1) temp[["na.action"]] <- na.pass # event will have NAs by design. Or recode them ? TESTME ## one model frame for each component. may be different if different response terms in formula m <- vector(K, mode="list") for (k in 1:K){ f2 <- concat.formulae(locform[[k]], c(unlist(forms), pformula), data=data) temp[["formula"]] <- f2 m[[k]] <- eval(temp, parent.frame()) m[[k]] <- droplevels(m[[k]]) # remove unused factor levels after subset applied } nobs <- nrow(m[[1]]) ## Build design matrices given formulae and model frame mml <- mx <- X <- whichparcov <- vector(K, mode="list") for (k in 1:K) { mml[[k]] <- mx[[k]] <- vector(mode="list", length=length(dlists[[k]]$pars)) names(mml[[k]]) <- names(mx[[k]]) <- c(dlists[[k]]$location, setdiff(dlists[[k]]$pars, dlists[[k]]$location)) for (i in names(forms[[k]])){ mml[[k]][[i]] <- model.matrix(forms[[k]][[i]], m[[k]]) mx[[k]][[i]] <- length(unlist(mx[[k]])) + seq_len(ncol(mml[[k]][[i]][,-1,drop=FALSE])) } X[[k]] <- compress.model.matrices(mml[[k]]) npc <- unlist(lapply(mml[[k]], ncol)) - 1 whichparcov[[k]] <- rep(names(npc), npc) } if (is.null(pformula)) pformula <- ~1 if ("." %in% all.vars(pformula)) stop("`.` in formulae is not supported in flexsurvmix") Xp <- model.matrix(pformula, m[[1]])[,-1,drop=FALSE] ## Convert event internally to numbers based on factor levels event <- model.extract(m[[1]], "event") event <- match(event, evnames, incomparables=NA) ## Count parameters of particular kinds ncoveffsl <- sapply(X, ncol) # number of covariate effects for each component-specific distribution ncoveffs <- sum(ncoveffsl) ncovsp <- ncol(Xp) # number of covariates on mixing probabilities ncoveffsp <- (K-1)*ncovsp # number of covariate effects on mixing probabilities nppars <- length(dists) - 1 + ncoveffsp # number of parameters related to mixing probabilities: baseline probs and covariate effects ## Order of time-to-event parameters: baseline parameters in the order they ## appear in the distribution function (e.g. shape before scale in the ## Weibull), followed by covariate effects on the location parameter, followed ## by covariate effects on the remaining parameters. nthetal <- sapply(dlists, function(x)length(x$pars)) # number of baseline parameters for each component-specific distribution ntparsl <- nthetal + ncoveffsl # total number of time-to-event related pars for each component parindsl <- rep(1:K, ntparsl) # index identifying component for each of those parameters ntpars <- sum(ntparsl) # total number of parameters related to time-to-event distributions npars <- nppars + ntpars # total number of parameters ## identify parameters of particular kinds parclass <- rep(c("prob","time"), c(nppars, ntpars)) # mixing prob or time-to-event related baseorcov <- c(rep(c("pbase","pcov"), c(length(dists) -1, ncoveffsp)), # baseline or covariate effect rep(rep(c("tbase","tcov"), K), as.vector(rbind(nthetal, ncoveffsl)))) parcov <- character(npars) # identify baseline parameter which a covariate effect modifies parcov[parclass=="prob" & baseorcov=="pcov"] <- rep(paste0("prob",2:K), each=ncovsp) parcov[baseorcov=="tcov"] <- unlist(whichparcov) ## Build initial values for each parameter type for optimisation if (is.null(initp)) initp <- rep(1/K, K) alpha <- initp theta_inits <- cov_inits <- covparsl <- vector(K, mode="list") for (k in 1:K) { covparsl[[k]] <- nthetal[k] + seq_len(ncoveffsl[k]) if (is.null(inits[[k]])) { Y <- check.flexsurv.response(model.extract(m[[k]], "response")) yy <- ifelse(Y[,"status"]==3 & is.finite(Y[,"time2"]), (Y[,"time1"] + Y[,"time2"])/2, Y[,"time1"]) yy <- yy[event==k | is.na(event)] # wt <- yy*weights*length(yy)/sum(weights) dlists[[k]]$inits <- expand.inits.args(dlists[[k]]$inits) ## This extra stuff is needed for the Weibull, to use a survreg fit to ## get "initial values" if (dlists[[k]]$name %in% c("exp","weibull.quiet","lnorm","weibullPH","llogis")) inits.aux <- list(forms=forms[[k]], data=if(missing(data)) NULL else data, weights=temp$weights, control=sr.control, counting=(attr(model.extract(m[[k]], "response"), "type")=="counting") ) else inits.aux <- aux[[k]] ## Auto-generate initial values using the heuristic for that distribution auto.inits <- dlists[[k]]$inits(t=yy,mf=m[[k]],mml=mml[[k]],aux=inits.aux) nin <- length(inits) theta_inits[[k]] <- auto.inits[seq_len(nthetal[k])] if ((length(auto.inits) > nthetal[k]) && (ncoveffsl[k] > 0)) { ## e.g for Weibull distributions, initial value fn also estimates covariate effects. cov_inits[[k]] <- auto.inits[nthetal[k] + seq_len(ncoveffsl[k])] } else cov_inits[[k]] <- rep(0, ncoveffsl[k]) } else { theta_inits[[k]] <- inits[[k]][1:nthetal[k]] # baseline pars of parametric survival dists cov_inits[[k]] <- inits[[k]][covparsl[[k]]] } names(theta_inits[[k]]) <- dlists[[k]]$pars names(cov_inits[[k]]) <- colnames(X[[k]]) } ## Transform initial values to log or logit scale for optimisation, if needed. inits_probs <- initp inits_alpha <- if (K==1) numeric() else qmnlogit(inits_probs) inits_covp <- rep( rep(0,ncovsp), K-1) # order by covariate within probability names(inits_covp) <- sprintf("prob%s(%s)", rep(2:K, each=ncovsp), rep(colnames(Xp), K-1)) inits_theta <- numeric() for (k in 1:K){ inits_theta <- c(inits_theta, par.transform(theta_inits[[k]], dlists[[k]]), cov_inits[[k]]) } ## Full loglikelihood function, required for the direct likelihood maximisation ## (note this is different from the "complete data" loglikelihood used in EM) loglik_flexsurvmix <- function(parsopt, ...){ pars <- inits_all pars[optpars] <- parsopt if (K==1) probmat <- pmat <- matrix(1, nrow=nobs, ncol=K) else { ## Apply covariate effects to mixing probabilities by multinomial logistic ## regression alpha <- c(0, pars[1:(K-1)]) alphamat <- matrix(alpha, nrow=nobs, ncol=K, byrow=TRUE) # by individual if (ncovsp > 0) { for (k in 2:K){ cpinds <- K - 1 + (k-2)*ncovsp + 1:ncovsp alphamat[,k] <- alpha[k] + Xp %*% pars[cpinds] } } pmat <- exp(alphamat) pmat <- pmat / rowSums(pmat) probmat <- pmat # this will be 1 or 0 if event observed } ## Remaining parameters are time-to-event stuff parsl <- split(pars[nppars + seq_len(ntpars)], parindsl) theta <- coveffs <- vector(K, mode="list") ## Contribution to likelihood for mixing probabilities for those with known events llp_event_known <- matrix(0, nrow=nobs, ncol=K) # Set membership prob to 0 where there are partially-observed events for (i in seq_len(npartials)){ non_events <- setdiff(1:K, partial_events[[i]]) probmat[!is.na(partial_event) & partial_event==i, non_events] <- 0 } ## Likelihood from times to events or censoring liki <- matrix(0, nrow=nobs, ncol=K) for (k in 1:K){ ## Evaluate likelihood for each component by calling flexsurvreg with ## parameters fixed at initial values. Build this initial values vector. theta[[k]] <- inv.transform(parsl[[k]][seq_len(nthetal[k])], dlists[[k]]) coveffs[[k]] <- parsl[[k]][nthetal[k] + seq_len(ncoveffsl[k])] initsk <- c(theta[[k]], coveffs[[k]]) if (any(is.infinite(log(exp(initsk))))) return(-Inf) ## Event probability is 1 if their event was observed to be k probmat[!is.na(event) & event==k, k] <- 1 ## Event probability is 1 if their event was observed to be one other than k probmat[!is.na(event) & event!=k, k] <- 0 need_lik <- probmat[,k] > 0 liki[need_lik,k] <- exp(do.call("flexsurvreg", list(formula=locform[[k]], data=data, dist=dists[[k]], anc=anc[[k]], inits=initsk, subset=need_lik, aux=aux[[k]], hessian=FALSE, fixedpars=TRUE))$logliki) llp_event_known[,k] <- as.numeric((!is.na(event) & event==k) * log(pmat[,k])) } logliki <- - (log(rowSums(probmat*liki, na.rm=TRUE)) + rowSums(llp_event_known)) res <- sum(logliki) attr(res, "indiv") <- logliki res } # Parameter dictionary to be completed with the estimates distnames <- sapply(dists, function(x){if(is.list(x))x$name else x}) res <- data.frame(component = c(evnames, rep(evnames[setdiff(1:K, 1)], each=ncovsp), rep(evnames, ntparsl)), dist = c(rep("",nppars+1), rep(distnames, ntparsl)), terms = c(paste0("prob",1:K), names(inits_covp), names(inits_theta)), parclass = c("prob", parclass), baseorcov = c("pbase", baseorcov), parcov = c("", parcov)) inits_all <- c(inits_alpha, inits_covp, inits_theta) if (isTRUE(fixedpars)) fixedpars <- seq_len(npars) if (is.logical(fixedpars) && (fixedpars==FALSE)) fixedpars <- NULL if (is.character(fixedpars)){ if (!all(fixedpars %in% res$terms)) { bad_fixedpars <- fixedpars[! fixedpars %in% res$terms[-1]] stop(paste(bad_fixedpars,collapse=","), " not in model terms") } fixedpars <- match(fixedpars, as.character(res$terms[-1])) } if (is.numeric(fixedpars) && !all(fixedpars %in% 1:npars)) stop(sprintf("`fixedpars` should all be in 1,...,%s",npars)) optpars <- setdiff(seq_len(npars), fixedpars) fixed <- (length(optpars) == 0) inits_opt <- inits_all[optpars] if (is.null(optim.control$fnscale)) optim.control$fnscale <- 10000 method <- match.arg(method, c("direct","em")) if (!anyNA(event)) method <- "em" # likelihoods factorise, use EM code with one iteration if (method=="direct"){ if (length(optpars) > 0){ if (is.null(optim.control$ndeps)) optim.control$ndeps = rep(1e-06, length(inits_opt)) opt <- optim(inits_opt, loglik_flexsurvmix, hessian=FALSE, method="BFGS", control=optim.control, ...) if (opt$convergence==1) warning("Iteration limit in optim() reached without convergence. Reported estimates are not the maximum likelihood. Increase \"maxit\" or simplify the model.") } else { opt <- list(par=inits_all, value=loglik_flexsurvmix(inits_all)) } logliki <- -attr(loglik_flexsurvmix(opt$par), "indiv") ## Transform mixing probs back to natural scale for presentation opt_all <- inits_all opt_all[optpars] <- opt$par res_probs <- if (K>1) pmnlogit(opt_all[1:(K-1)]) else 1 res_covp <- if (ncoveffsp>0) opt_all[K:(K-1+ncoveffsp)] else numeric() res_cpars <- split(opt_all[(nppars+1):length(opt_all)], parindsl) res_theta <- res_coveffs <- vector(K, mode="list") for (k in 1:K){ ## Transform time-to-event parameters back to natural scale res_theta[[k]] <- inv.transform(res_cpars[[k]][seq_len(nthetal[k])], dlists[[k]]) res_coveffs[[k]] <- res_cpars[[k]][nthetal[k] + seq_len(ncoveffsl[k])] res_cpars[[k]] <- c(res_theta[[k]], res_coveffs[[k]]) } ## Build tidy data frame of results with one row per parameter. Includes an ## extra row for the probability of the first event (defined as 1 - sum of ## rest) est.t <- c(NA, opt_all) res <- cbind(res, data.frame( est = c(res_probs, res_covp, unlist(res_cpars)), est.t = est.t)) loglik <- - as.vector(opt$value) if (!fixed) { # the hessian computation is potentially extremely time consuming! cov <- .hess_to_cov(.hessian(loglik_flexsurvmix, opt$par), hess.control$tol.solve, hess.control$tol.evalues) } else { cov <- NULL } } else if (method=="em") { if (!is.list(em.control)) em.control <- list() if (is.null(em.control$reltol)) em.control$reltol <- sqrt(.Machine$double.eps) if (is.null(em.control$var.method)) em.control$var.method <- "direct" converged <- FALSE iter <- 0 alpha <- inits_alpha covp <- inits_covp theta <- theta_inits covtheta <- cov_inits fixedpars_em <- split_fixedpars(fixedpars, nppars, ntparsl, K, nthetal) optpars_em <- split_fixedpars(optpars, nppars, ntparsl, K, nthetal) while (!converged) { ## E step alphamat <- matrix(c(0,alpha), nrow=nobs, ncol=K, byrow=TRUE) # by individual if (ncovsp>0){ for (k in 2:K){ cpinds <- (k-2)*ncovsp + 1:ncovsp alphamat[,k] <- alpha[k-1] + Xp %*% covp[cpinds] } } pmat <- exp(alphamat) pmat <- pmat / rowSums(pmat) llmat <- matrix(nrow=nobs, ncol=K) for (k in 1:K) { fs <- flexsurvreg(formula=locform[[k]], data=data, dist=dists[[k]], anc=anc[[k]], inits=theta[[k]], aux=aux[[k]], fixedpars=TRUE, hessian=FALSE) llmat[,k] <- fs$logliki } alphap <- exp(llmat) * pmat w <- alphap / rowSums(alphap) # probability that each observation belongs to each component for (k in 1:K) { w[!is.na(event) & event==k, k] <- 1 w[!is.na(event) & event!=k, k] <- 0 } w ## M step ## estimate component probs and covariate effects on them #alpha <- colMeans(w) loglik_p_em <- function(pars){ parsfull <- numeric(nppars) parsfull[optpars_em$p] <- pars parsfull[fixedpars_em$p] <- c(inits_alpha, inits_covp)[fixedpars_em$p] alphamat <- matrix(c(0,parsfull[1:(K-1)]), nrow=nobs, ncol=K, byrow=TRUE) if (ncovsp > 0) { for (k in 2:K){ cpinds <- K - 1 + (k-2)*ncovsp + 1:ncovsp alphamat[,k] <- alphamat[,k] + Xp %*% parsfull[cpinds] } } pmat <- exp(alphamat) pmat <- pmat / rowSums(pmat) -sum(w*log(pmat)) } # if setting a control argument here in the future, note ndeps has to be different # length from others. alpha <- inits_alpha covp <- inits_covp if (length(fixedpars_em$p) == nppars) { # all prob-related parameters fixed hess_full_p <- matrix(nrow=0,ncol=0) } else { parsp <- optim(c(alpha,covp)[optpars_em$p], loglik_p_em, method="BFGS", hessian=TRUE, control = em.control$optim.p.control) if(any(names(optpars_em$p)=="p")) alpha[optpars_em$p[names(optpars_em$p)=="p"]] <- parsp$par[names(optpars_em$p)=="p"] if(any(names(optpars_em$p)=="pcov")) covp[optpars_em$p[names(optpars_em$p)=="pcov"] - (K-1)] <- parsp$par[names(optpars_em$p)=="pcov"] hess_full_p <- parsp$hessian } probs <- pmnlogit(alpha) ## call flexsurvreg for each component on weighted dataset to estimate component-specific pars thetanew <- covthetanew <- ttepars <- hess_full_t <- vector(K, mode="list") ll <- numeric(K) ctrl <- optim.control for (k in 1:K) { if (is.null(optim.control$ndeps)) ctrl$ndeps = rep(1e-06, length(optpars_em$t[[as.character(k)]])) fs <- do.call("flexsurvreg", # need do.call to avoid environment faff with supplying weights list(formula=locform[[k]], data=data, dist=dists[[k]], anc=anc[[k]], inits=c(theta[[k]],covtheta[[k]]), fixedpars = fixedpars_em$t[[as.character(k)]], weights=w[,k], aux=aux[[k]], subset=w[,k]>0, control=ctrl)) ll[k] <- fs$loglik thetanew[[k]] <- fs$res[seq_len(nthetal[k]),"est"] if (ncoveffsl[k] > 0) covthetanew[[k]] <- fs$res[nthetal[k] + seq_len(ncoveffsl[k]), "est"] ttepars[[k]] <- c(thetanew[[k]], covthetanew[[k]]) hess_full_t[[k]] <- fs$opt$hessian if (is.null(hess_full_t[[k]])) hess_full_t[[k]] <- matrix(nrow=0,ncol=0) } theta <- thetanew covtheta <- covthetanew logliknew <- sum(ll) if (!anyNA(event)) converged <- TRUE else if (iter > 0) converged <- (abs(logliknew / loglik - 1) <= em.control$reltol) loglik <- logliknew est <- c(probs, covp, unlist(ttepars)) theta.t <- parlist.transform(theta,dlists) ttepars.t <- vector(mode="list") for (k in 1:K){ ttepars.t[[k]] <- c(theta.t[[k]], covtheta[[k]]) } est.t <- c(NA, alpha, covp, unlist(ttepars.t)) if (is.numeric(em.control$trace) && em.control$trace > 0) cat(sprintf("loglik=%s\n",loglik)) if (is.numeric(em.control$trace) && em.control$trace > 1) print(est) iter <- iter + 1 } res <- cbind(res, data.frame(est=est, est.t=est.t)) ll <- loglik_flexsurvmix(est.t[-1][optpars]) loglik <- -as.vector(ll) logliki <- -attr(ll, "indiv") if (!anyNA(event)) { hess <- - Matrix::bdiag(hess_full_p, Matrix::bdiag(hess_full_t)) cov <- .hess_to_cov(-hess, hess.control$tol.solve, hess.control$tol.evalues) } else { if (em.control$var.method=="direct"){ hess <- .hessian(loglik_flexsurvmix, est.t[-1][optpars]) cov <- .hess_to_cov(hess, hess.control$tol.solve, hess.control$tol.evalues) } else if (em.control$var.method=="louis") cov <- flexsurvmix_louis(K, nthetal, dlists, ncoveffsl, locform, data, dists, anc, aux, fixedpars_em, optpars_em, inits, optim.control, ttepars.t, nobs, ntparsl, nppars, w, alpha, covp, ncovsp, Xp, hess_full_p, hess_full_t, hess.control) } opt <- NULL } ## Add standard errors to results data frame, given covariance matrix. ## A previous version attempted to calculate a SE for the reference category ## probability as follows, but didn't account for the logit transformation. ## var ( 1 - p1 - p2 - .. ) = var(p1) + var(p2) - cov(p1,p2) - ... res$fixed <- c(NA, rep(FALSE, npars)) res$fixed[1 + fixedpars] <- TRUE optp <- optpars[optpars < K] res$se <- rep(NA, npars + 1) if (!fixed){ if (length(optp) > 0){ covp <- cov[optp, optp, drop=FALSE] res$se[1] <- NA } res$se[1 + optpars] <- sqrt(diag(cov)) } names.first <- c("component","dist","terms","est","est.t","se") res <- res[,c(names.first, setdiff(names(res), names.first)),drop=FALSE] rownames(res) <- NULL mcomb <- do.call("cbind", m) mcomb <- mcomb[,!duplicated(names(mcomb))] attr(mcomb, "covnames") <- unique(unlist(lapply(m, function(x)attr(terms(x),"term.labels")))) attr(mcomb, "covnames.main") <- unique(unlist(lapply(m, function(x)rownames(attr(terms(x),"factors"))[-1]))) res <- list(call=match.call(), res=res, loglik=loglik, cov=cov, npars=npars, AIC=-2*loglik + 2*npars, K=K, dists=distnames, dlists=dlists, dfns=dfns, opt=opt, fixedpars=fixedpars, optpars=optpars, logliki=logliki, evnames=evnames, nthetal=nthetal, parindsl=parindsl, ncoveffsl=ncoveffsl,ncoveffsp=ncoveffsp, covparsl=covparsl, all.formulae=forms, pformula=pformula, data=list(mf=m, mfcomb=mcomb), mx=mx) class(res) <- "flexsurvmix" res } check.formula.flexsurvmix <- function(formula, dlist, data=NULL){ if (!is.list(formula)){ if (!inherits(formula,"formula")) stop("\"formula\" must be a formula object") formula <- list(formula) } for (i in seq_along(formula)){ if (!inherits(formula[[i]],"formula")) stop(sprintf("\"formula[[%s]]\" must be a formula object", i)) if ("." %in% all.vars(formula[[i]])) stop("`.` in formulae is not supported in flexsurvmix") labs <- attr(terms(formula[[i]], data=data), "term.labels") if (!("strata" %in% dlist$pars)){ strat <- grep("strata\\((.+)\\)",labs) if (length(strat) > 0){ cov <- gsub("strata\\((.+)\\)","\\1",labs[strat[1]]) warning("Ignoring \"strata\" function: interpreting \"",cov, "\" as a covariate on \"", dlist$location, "\"") } } if (!("frailty" %in% dlist$pars)){ fra <- grep("frailty\\((.+)\\)",labs) if (length(fra) > 0){ warning("frailty models are not supported and behaviour of frailty() is undefined") } } } } #' @noRd logLik.flexsurvmix <- function(object, ...){ val <- object$loglik attributes(val) <- NULL attr(val, "df") <- object$npars attr(val, "nobs") <- nrow(model.frame(object)) class(val) <- "logLik" val } clean_listarg <- function(arg, argname, evnames){ if (!is.null(arg)){ if (length(arg) != length(evnames)) stop(sprintf("`%s` of length %s, should equal the number of mixture components, assumed to be %s, from the number of levels of factor(event)", argname, length(arg), length(evnames))) narg <- names(arg) if (is.null(narg)) names(arg) <- evnames else { if (!identical(sort(narg), sort(evnames))) stop(sprintf("names(%s) = %s, but this should match levels(factor(event)) = %s", argname, paste(narg, collapse=","), paste(evnames,collapse=","))) arg <- arg[evnames] } } arg } ##' @export print.flexsurvmix <- function(x, ...) { cat("Call:\n") dput(x$call) cat("\n") if (x$npars > 0) { keep.cols <- c("component","dist","terms","est","est.t","se") res <- x$res[,keep.cols,drop=FALSE] cat ("Estimates: \n") args <- list(...) if (is.null(args$digits)) args$digits <- 3 f <- do.call("format", c(list(x=res), args)) print(f, print.gap=2, quote=FALSE, na.print="") } cat("\nLog-likelihood = ", x$loglik, ", df = ", x$npars, "\nAIC = ", x$AIC, "\n\n", sep="") } par.transform <- function(pars, dlist){ pars.t <- numeric(length(pars)) names(pars.t) <- names(pars) for (i in seq_along(pars.t)) pars.t[i] <- dlist$transforms[[i]](pars[i]) pars.t } inv.transform <- function(pars, dlist){ pars.nat <- numeric(length(pars)) names(pars.nat) <- names(pars) for (i in seq_along(pars.nat)) pars.nat[i] <- dlist$inv.transforms[[i]](pars[i]) pars.nat } parlist.transform <- function(parlist, dlists){ parlist.t <- vector(length(parlist), mode="list") for (k in seq_along(parlist.t)) parlist.t[[k]] <- par.transform(parlist[[k]], dlists[[k]]) parlist.t } invlist.transform <- function(parlist, dlists){ parlist.t <- vector(length(parlist), mode="list") for (k in seq_along(parlist.t)) parlist.t[[k]] <- inv.transform(parlist[[k]], dlists[[k]]) parlist.t } ## Transform full vector of estimates back to natural scale. ## Returns Kth baseline prob as well ## TODO can this go into the main flexsurvreg function? Would have to form list first inv.transform.res <- function(x, dlists) { dpars <- x$res$est.t[x$res$dist!=""] dpars <- split(dpars, x$parindsl) dnames <- split(x$res$terms[x$res$dist!=""], x$parindsl) K <- x$K est <- vector(K, mode="list") for (k in 1:K) { bpars <- dpars[[k]][dnames[[k]] %in% x$dlists[[k]]$pars] cpars <- dpars[[k]][!(dnames[[k]] %in% x$dlists[[k]]$pars)] bpars <- inv.transform(bpars, dlists[[k]]) est[[k]] <- c(bpars, cpars) } probs <- if (K==1) 1 else pmnlogit(x$res$est.t[2:K]) pcov <- x$res$est.t[grep("prob[[:digit:]]+\\(.+\\)", x$res$terms)] c(probs, pcov, unlist(est)) } ##' Model frame from a flexsurvmix object ##' ##' Returns a list of data frames, with each component containing the ##' data that were used for the model fit for that mixture component. ##' ##' @param formula Fitted model object from \code{\link{flexsurvmix}}. ##' ##' @param ... Further arguments (currently unused). ##' ##' @return A list of data frames ##' ##' @export model.frame.flexsurvmix <- function(formula, ...) { x <- formula x$data$m } # Multinomial logistic transform and inverse transform # returns transformed probs relative to first component, excluding first component qmnlogit <- function(probs){ if (length(probs) == 1) qlogis(probs) else log(probs[-1] / probs[1]) } # returns probs including first component, given transformed probs with first component excluded pmnlogit <- function(alpha){ c(1, exp(alpha)) / (1 + sum(exp(alpha))) } ## Convert "fixedpars" (vector of parameter indices to fix) from ## joint full MLE form (indices into full parameter vector) to EM form ## (indices of parameters in each submodel to be maximised in the M step) ## e.g. #nppars <- 4 # number of prob pars (including cov effects) #ntparsl <- c(3, 3, 4) # number of time to event pars for each event (including cov effects) #indices 1,2,3,4 are prob pars, 5,6,7 time to event 1 pars # 8,9,10 are time to event 2 pars, and 11,12,13,14 are time to event 3 pars #fixedpars <- c(2,3, 6,7, 9, 12) #correspond to indices 2,3 2,3 2 2) in the four submodels # so function returns list(p=c(2,3), t=list(c(2,3), 2, 2)) # List component will be numeric(0) for prob model, or NULL for time model, if no pars fixed for that model # names of time models will be "1","2",. split_fixedpars <- function(fixedpars, nppars, ntparsl, K, nthetal){ fixedpars_p <- fixedpars[fixedpars <= nppars] if (!is.null(fixedpars_p)) names(fixedpars_p) <- ifelse(fixedpars_p <= K-1, "p", "pcov") ft <- fixedpars[fixedpars >= nppars] - nppars fixedpars_t <- split(sequence(ntparsl)[ft], rep(seq_along(ntparsl), ntparsl)[ft]) for (i in 1:K){ ic <- as.character(i) if (!is.null(fixedpars_t[[ic]])) names(fixedpars_t[[ic]]) <- ifelse(fixedpars_t[[ic]] <= nthetal[i], "theta", "covtheta") else fixedpars_t[[ic]] <- numeric() } fixedpars_t <- fixedpars_t[as.character(1:K)] list(p=fixedpars_p, t=fixedpars_t) } flexsurv/R/summary.flexsurvmix.R0000644000176200001440000005335114607775206016571 0ustar liggesusers##' Mean times to events from a flexsurvmix model ##' ##' This returns the mean of each event-specific parametric time-to-event ##' distribution in the mixture model, which is the mean time to event ##' conditionally on that event being the one that happens. ##' ##' @param x Fitted model object returned from \code{\link{flexsurvmix}}. ##' ##' @param newdata Data frame or list of covariate values. If omitted for a ##' model with covariates, a default is used, defined by all combinations of ##' factors if the only covariates in the model are factors, or all covariate ##' values of zero if there are any non-factor covariates in the model. ##' ##' @param B Number of simulations to use to compute 95\% confidence intervals, ##' based on the asymptotic multivariate normal distribution of the basic ##' parameter estimates. If \code{B=NULL} then intervals are not computed. ##' ##' @return Mean times to next event conditionally on each alternative event, ##' given the specified covariate values. ##' ##' @export mean_flexsurvmix <- function(x, newdata=NULL, B=NULL){ if (is.null(newdata)) newdata <- default_newdata(x) if (!is.null(newdata)){ # mean functions aren't vectorised newdata <- as.data.frame(newdata) nvals <- nrow(newdata) res <- cisumm_flexsurvmix(x, newdata=newdata[1,,drop=FALSE], fnname="mean", fnlist=x$dfns, B=B) if (nvals > 1) { for (i in 2:nvals){ res <- rbind(res, cisumm_flexsurvmix(x, newdata=newdata[i,,drop=FALSE], fnname="mean", fnlist=x$dfns, B=B)) } } } else { res <- cisumm_flexsurvmix(x, newdata=newdata, fnname="mean", fnlist=x$dfns, B=B) } res } ##' Restricted mean times to events from a flexsurvmix model ##' ##' This returns the restricted mean of each event-specific parametric time-to-event ##' distribution in the mixture model, which is the mean time to event ##' conditionally on that event being the one that happens, and conditionally ##' on the event time being less than some time horizon \code{tot}. ##' ##' @param tot Time horizon to compute the restricted mean until. ##' ##' @inheritParams mean_flexsurvmix ##' ##' @return Restricted mean times to next event conditionally on each alternative event, ##' given the specified covariate values. ##' ##' @export rmst_flexsurvmix <- function(x, newdata=NULL, tot=Inf, B=NULL){ if (is.null(newdata)) newdata <- default_newdata(x) if (!is.null(newdata)){ # mean functions aren't vectorised newdata <- as.data.frame(newdata) nvals <- nrow(newdata) res <- cisumm_flexsurvmix(x, newdata=newdata[1,,drop=FALSE], fnname="rmst", fnarg="t", fnargval=tot, fnlist=x$dfns, B=B) if (nvals > 1) { for (i in 2:nvals){ res <- rbind(res, cisumm_flexsurvmix(x, newdata=newdata[i,], fnname="rmst", fnarg="t", fnargval=tot, fnlist=x$dfns, B=B)) } } } else { newdata <- default_newdata(x, zero=TRUE) res <- cisumm_flexsurvmix(x, newdata=newdata, fnname="rmst", fnarg="t", fnargval=tot, fnlist=x$dfns, B=B) } res } ##' Quantiles of time-to-event distributions in a flexsurvmix model ##' ##' This returns the quantiles of each event-specific parametric time-to-event ##' distribution in the mixture model, which describes the time to the event ##' conditionally on that event being the one that happens. ##' ##' @inheritParams mean_flexsurvmix ##' ##' @param probs Vector of alternative quantiles, by default \code{c(0.025, 0.95, 0.975)} ##' giving the median and a 95\% interval. ##' ##' @export quantile_flexsurvmix <- function(x, newdata=NULL, B=NULL, probs=c(0.025, 0.5, 0.975)){ cisumm_flexsurvmix(x, newdata=newdata, fnname="q", fnarg="p", fnargval=probs, fnlist=x$dfns, B=B) } ##' Fitted densities for times to events in a flexsurvmix model ##' ##' This returns an estimate of the probability density for the time to each ##' competing event, at a vector of times supplied by the user. ##' ##' @inheritParams mean_flexsurvmix ##' ##' @param t Vector of times at which to evaluate the probability density ##' ##' @return A data frame with each row giving the fitted density \code{dens} for ##' a combination of covariate values, time and competing event. ##' ##' @export pdf_flexsurvmix <- function(x, newdata=NULL, t=NULL){ if (is.null(t)) { stop("Times `t` to evaluate the density at not supplied") } else { if (!is.numeric(t)) stop("`t` must be numeric") } nt <- length(t) if (!is.null(newdata)) { newdata <- as.data.frame(newdata) ncovs <- nrow(newdata) newdatarep <- newdata[rep(1:ncovs, nt),,drop=FALSE] } else { ncovs <- 1 newdatarep <- NULL } K <- x$K res <- vector(K, mode="list") for (k in 1:K){ pars <- get_basepars(x, newdata=newdatarep, event=k) pars$x <- rep(t, each=ncovs) res[[k]] <- do.call(x$dfns[[k]]$d, pars) } tdf <- data.frame(event = rep(x$evnames, each=length(res[[1]]))) if (!is.null(newdata)) tdf <- cbind(tdf, newdatarep[rep(1:nrow(newdatarep), K),,drop=FALSE]) tdf$t <- rep(rep(t,each=ncovs), K) tdf$dens <- unlist(res) rownames(tdf) <- NULL tdf } ##' Transition probabilities from a flexsurvmix model ##' ##' These quantities are variously known as transition probabilities, or state ##' occupancy probabilities, or values of the "cumulative incidence" function, ##' or values of the "subdistribution" function. They are the probabilities that ##' an individual has experienced an event of a particular kind by time ##' \code{t}. ##' ##' Note that "cumulative incidence" is a misnomer, as "incidence" typically ##' means a hazard, and the quantities computed here are not cumulative hazards, ##' but probabilities. ##' ##' ##' @inheritParams mean_flexsurvmix ##' ##' @param t Vector of times \code{t} to calculate the probabilities of ##' transition by. ##' ##' @param startname Name of the state where individuals start. This considers ##' the model as a multi-state model where people start in this state, and may ##' transition to one of the competing events. ##' ##' @return A data frame with transition probabilities by time, covariate value ##' and destination state. ##' ##' ##' @export p_flexsurvmix <- function(x, newdata=NULL,startname="start", t=1, B=NULL){ fm_p_fn <- function(base,prob,resdf,x,startname) { resdf$val <- base * prob resdf$tval <- resdf$pval <- NULL resdf <- resdf %>% tidyr::pivot_wider(names_from="event", values_from="val") resdf[[startname]] <- 1 - rowSums(resdf[,x$evnames]) statenames <- c(startname,x$evnames) resdf %>% pivot_longer(cols=all_of(statenames), names_to="state", values_to="val") } res <- cisumm_flexsurvmix(x, newdata=newdata, fnname="p", fnarg="q", parclass = c("time", "prob"), fnargval=t, fnlist=x$dfns, combfn = fm_p_fn, B=B, startname=startname) names(res)[names(res)=="q"] <- "t" res } ##' Probabilities of competing events from a flexsurvmix model ##' ##' @inheritParams mean_flexsurvmix ##' ##' @return A data frame containing the probability that each of the competing ##' events will occur next, by event and by any covariate values specified in ##' \code{newdata}. ##' ##' @export probs_flexsurvmix <- function(x, newdata=NULL, B=NULL){ if (!inherits(x, "flexsurvmix")) stop("`x` is not a flexsurvmix object") if (is.null(newdata)) newdata <- default_newdata(x) if (x$K==1) { res <- newdata res$event <- x$evnames res$val <- 1 } else res <- cisumm_flexsurvmix(x, newdata=newdata, parclass="prob", B=B, fnname=NULL) res } default_newdata <- function(x, zero=FALSE){ dat <- x$data$mfcomb covnames <- attr(dat, "covnames") ncovs <- length(covnames) if (ncovs == 0){ newdata <- NULL } else { faccovs <- sapply(dat[,covnames], is.factor) if (!all(faccovs) & !zero) newdata <- matrix(0, nrow=1, ncol=ncovs, dimnames=list(NULL, covnames)) else newdata <- do.call(expand.grid, lapply(dat[,covnames], levels)) newdata <- as.data.frame(newdata) } newdata } cisumm_flexsurvmix <- function(x, newdata=NULL, parclass = "time", fnname, fnarg=NULL, fnargval=NULL, fnlist=NULL, combfn=NULL, B=NULL, ...){ K <- x$K res <- vector(K, mode="list") if (is.null(newdata)) newdata <- default_newdata(x) if ("time" %in% parclass) { nquants <- max(1, length(fnargval)) if (!is.null(newdata)) { newdata <- as.data.frame(newdata) ncovs <- nrow(newdata) newdatarep <- newdata[rep(1:ncovs, nquants),,drop=FALSE] } else { ncovs <- 1 newdatarep <- NULL } fnargvalrep <- rep(fnargval, each=ncovs) for (k in 1:x$K){ pars <- get_basepars(x, newdata=newdatarep, event=k) parnames <- names(pars) if (!is.null(fnarg)) pars[[fnarg]] <- fnargvalrep if (!is.null(fnlist)) fn <- fnlist[[k]][[fnname]] res[[k]] <- do.call(fn, pars) } tdf <- data.frame(event = rep(x$evnames, each=length(res[[1]]))) if (!is.null(fnarg)) tdf[[fnarg]] <- rep(fnargvalrep, K) if (!is.null(newdata)) tdf <- cbind(tdf, newdatarep[rep(1:nrow(newdatarep), K),,drop=FALSE]) tdf$val <- unlist(res) } if ("prob" %in% parclass) { if (!is.null(newdata)) newdata <- as.data.frame(newdata) pdf <- get_probpars(x, newdata=newdata) if (!is.null(newdata)){ # in case there are covariates on times but not probs if (length(intersect(names(pdf), names(newdata)) > 0)) pdf <- dplyr::left_join(pdf, newdata, by=intersect(names(pdf), names(newdata))) else pdf <- tidyr::crossing(pdf, newdata) } } if (setequal(parclass, c("time","prob"))){ tdf <- tdf %>% dplyr::rename(tval="val") pdf <- pdf %>% dplyr::rename(pval="val") resdf <- tdf %>% dplyr::left_join(pdf, by=c("event", names(newdata))) resdf <- combfn(resdf$tval, resdf$pval, resdf, x, ...) resdf$tval <- resdf$pval <- NULL } else if (parclass=="time"){ resdf <- tdf } else if (parclass=="prob") { resdf <- pdf } if (is.numeric(B)) { resm <- array(dim=c(B, nrow(resdf))) resm[1,] <- as.matrix(resdf$val) if (B > 2) { for (b in 2:B){ pars <- list(x = resample_pars(x), newdata=newdata, parclass=parclass, fnname=fnname, fnarg=fnarg, fnargval=fnargval, fnlist=fnlist, combfn=combfn, B = NULL) pars <- c(pars, list(...)) resm[b,]<- do.call(cisumm_flexsurvmix, pars)$val } } qp <- c(0.025, 0.975) ci <- apply(resm, 2, quantile, qp) resdf$lower <- ci[1,] resdf$upper <- ci[2,] } resdf } resample_pars <- function(x){ cov <- matrix(0, x$npars, x$npars) cov[x$optpars, x$optpars] <- x$cov newpars <- rmvnorm(1, x$res$est.t[-1], cov) x$res$est.t <- c(NA, newpars) x$res$est <- inv.transform.res(x, x$dlist) x } ##' Evaluate baseline time-to-event distribution parameters given covariate values in a flexsurvmix model ##' ##' @param x Fitted model object ##' ##' @param newdata Data frame of alternative covariate values ##' ##' @param event Event ##' get_basepars <- function(x, newdata, event){ k <- event kpars <- (x$res$component == x$evnames[k]) & (x$res$dist == x$dists[k]) bpars <- kpars & (x$res$terms %in% x$dlists[[k]]$pars) beta <- if (x$ncoveffsl[k]==0) 0 else x$res[kpars,"est"][x$covparsl[[k]]] if (is.null(newdata) | (x$ncoveffsl[k]==0)) { basepars <- as.list(x$res[bpars,"est"]) names(basepars) <- x$dlists[[k]]$pars if (!is.null(newdata)) # if covariates for one event but not another, stretch out basepars <- lapply(basepars,function(x)x[rep(1,length(newdata[[1]])),drop=FALSE]) } else { basepars <- vector(x$nthetal[k], mode="list") names(basepars) <- x$dlists[[k]]$pars for (j in seq_len(x$nthetal[k])){ parname <- x$dlists[[k]]$pars[j] betainds <- x$res$component == x$evnames[k] & x$res$parcov == x$dlists[[k]]$pars[j] if (any(betainds)) { tm <- delete.response(terms(x$all.formulae[[k]][[parname]])) if (!all(rownames(attr(tm, "factors")) %in% names(newdata))) stop(sprintf("not all required variables supplied in `newdata`")) xlev <- lapply(x$data$mf[[k]], levels)[attr(tm,"term.labels")] ## convert numeric newdata to factor if necessary, ensure ordered status preserved for (i in names(newdata)){ vari <- x$data$mf[[1]][[i]] if (is.factor(vari)) { newdata[[i]] <- factor(as.character(newdata[[i]]), levels=levels(vari), ordered=is.ordered(vari)) } } mf <- model.frame(tm, newdata, xlev = xlev) mm <- model.matrix(tm, mf) basepar <- x$res[bpars,"est.t"][j] beta <- x$res$est.t[betainds] Xb <- as.numeric(mm %*% c(basepar, beta)) basepars[[j]] <- x$dlists[[k]]$inv.transform[[j]](Xb) } else basepars[[j]] <- x$res[bpars,"est"][j] } } basepars } get_probpars <- function(x, newdata=NULL, na.action){ if (is.null(newdata) | (x$ncoveffsp == 0) ) { probpars <- matrix(x$res$est[x$res$baseorcov=="pbase"], nrow=1) } else { tm <- delete.response(terms(x$pformula)) if (!all(rownames(attr(tm, "factors")) %in% names(newdata))) stop(sprintf("not all required variables supplied in `newdata`")) xlev <- lapply(x$data$mf[[1]], levels)[attr(tm,"term.labels")] mf <- model.frame(tm, newdata, xlev = xlev) X <- model.matrix(tm, mf) K <- x$K probpars <- matrix(nrow=nrow(X), ncol=K) for (i in 1:nrow(X)) { logitpcov <- numeric(K-1) for (k in 2:K){ logitpbase <- x$res$est.t[grep(sprintf("prob%s$",k), x$res$terms)] beta <- x$res$est[grep(sprintf("prob%s\\(.+\\)",k), x$res$terms)] logitpcov[k-1] <- X[i,,drop=FALSE] %*% c(logitpbase, beta) } probpars[i,] <- c(1, exp(logitpcov)) / (1 + sum(exp(logitpcov))) } } probpars <- as.data.frame(probpars) names(probpars) <- x$evnames if (!is.null(newdata) && (x$ncoveffsp > 0)) probpars <- cbind(probpars, mf) probpars <- tidyr::pivot_longer(probpars, tidyselect::all_of(x$evnames), names_to="event", values_to="val") probpars } ##' Aalen-Johansen nonparametric estimates comparable to a fitted flexsurvmix ##' model ##' ##' Given a fitted flexsurvmix model, return the Aalen-Johansen estimates of the ##' probability of occupying each state at a series of times covering the ##' observed data. State 1 represents not having experienced any of the ##' competing events, while state 2 and any further states correspond to having ##' experienced each of the competing events respectively. These estimates can ##' be compared with the fitted probabilities returned by ##' \code{\link{p_flexsurvmix}} to check the fit of a \code{flexsurvmix} model. ##' ##' This is only supported for models with no covariates or models containing ##' only factor covariates. ##' ##' For models with factor covariates, the Aalen-Johansen estimates are computed ##' for the subsets of the data defined in \code{newdata}. If \code{newdata} is ##' not supplied, then this function returns state occupancy probabilities for ##' all possible combinations of the factor levels. ##' ##' The Aalen-Johansen estimates are computed using ##' \code{\link[survival]{survfit}} from the \code{survival} package (Therneau ##' 2020). ##' ##' @param x Fitted model returned by \code{\link{flexsurvmix}}. ##' ##' @param newdata Data frame of alternative covariate values to check fit for. ##' Only factor covariates are supported. ##' ##' @param tidy If \code{TRUE} then a single tidy data frame is returned. ##' Otherwise the function returns the object returned by \code{survfit}, or a ##' list of these objects if we are computing subset-specific estimates. ##' ##' @references Therneau T (2020). _A Package for Survival Analysis in R_. R ##' package version 3.2-3, . ##' ##' @export ajfit <- function(x, newdata=NULL, tidy=TRUE){ dat <- x$data$mfcomb covnames <- attr(dat, "covnames.main") ncovs <- length(covnames) if (ncovs == 0){ sf <- sftidy <- ajfit.dat(x$data$mf[[1]], x$evnames) ret <- if (tidy) as.data.frame(unclass(sf)[c("time","pstate","lower","upper")]) else sf } else { faccovs <- sapply(dat[,covnames], is.factor) if (!all(faccovs)) stop("Nonparametric estimation not supported with non-factor covariates") if (is.null(newdata)) { newdata <- do.call(expand.grid, lapply(dat[,covnames,drop=FALSE], levels)) for (i in names(newdata)) class(newdata[[i]]) <- class(x$data$mf[[1]][[i]]) # preserve e.g. ordered factor status } newdata <- as.data.frame(newdata) ncovvals <- nrow(newdata) sf <- sftidy <- vector(ncovvals, mode="list") covnames <- names(newdata) ## TODO error handling for (i in 1:ncovvals) { datsub <- x$data$mf[[1]] # assume any of the mf[[k]] will do for (j in seq_along(covnames)) datsub <- datsub[datsub[,covnames[j]] == newdata[i,covnames[j]],,drop=FALSE] if (nrow(datsub) > 1) { sf[[i]] <- ajfit.dat(datsub, x$evnames) sftidy[[i]] <- as.data.frame(unclass(sf[[i]])[c("time","pstate","lower","upper")]) covvals <- newdata[i,,drop=FALSE][rep(1,nrow(sftidy[[i]])),,drop=FALSE] sftidy[[i]] <- cbind(sftidy[[i]], covvals) } } ret <- if (tidy) do.call("rbind", sftidy) else sf } ret } ajfit.dat <- function(dat,evnames){ intcens <- model.response(dat)[,"status"] == 3 dat <- dat[!intcens,] ## exclude interval-censored data event <- model.extract(dat, "event") # create a multistate outcome for survfit. event <- as.character(event) event[is.na(event)] <- 0 event <- factor(event, levels=c(0,evnames)) Y <- model.response(dat) tname <- if ("time1" %in% colnames(Y)) "time1" else "time" time <- as.numeric(Y[,tname]) sf <- survival::survfit(Surv(time, event) ~ 1) sf } ##' Forms a tidy data frame for plotting the fit of parametric mixture ##' multi-state models against nonparametric estimates ##' ##' This computes Aalen-Johansen estimates of the probability of occupying each ##' state at a series of times, using \code{\link{ajfit}}. The equivalent ##' estimates from the parametric model are then produced using ##' \code{\link{p_flexsurvmix}}, and concatenated with the nonparametric ##' estimates to form a tidy data frame. This data frame can then simply be ##' plotted using \code{\link[ggplot2]{ggplot}}. ##' ##' @param x Fitted model returned by \code{\link{flexsurvmix}}. ##' ##' @param maxt Maximum time to produce parametric estimates for. By default ##' this is the maximum event time in the data, the maximum time we have ##' nonparametric estimates for. ##' ##' @param startname Label to give the state corresponding to "no event happened ##' yet". By default this is \code{"Start"}. ##' ##' @param B Number of simulation replications to use to calculate a confidence ##' interval for the parametric estimates in \code{\link{p_flexsurvmix}}. ##' Comparable intervals for the Aalen-Johansen estimates are returned if this ##' is set. Otherwise if \code{B=NULL} then no intervals are returned. ##' ##' @export ajfit_flexsurvmix <- function(x, maxt=NULL, startname="Start", B=NULL){ nstates <- x$K + 1 dat <- x$data$mfcomb covnames <- attr(dat, "covnames.main") # main effects, excluding interaction terms ncovs <- length(covnames) if (ncovs > 0){ faccovs <- sapply(dat[,covnames,drop=FALSE], is.factor) if (!all(faccovs)) stop("Nonparametric estimation not supported with non-factor covariates") newdata <- do.call(expand.grid, lapply(dat[,covnames,drop=FALSE], levels)) for (i in names(newdata)) class(newdata[[i]]) <- class(dat[[i]]) # preserve e.g. ordered factor status } else newdata <- NULL statenames <- c(startname,x$evnames) ajlong <- ajfit(x) ## survival package changed 04/2024 to include state names in survfit Aalen-Johansen output if (any(names(ajlong)=="pstate..s0.")) # handle both old and new versions ajlong <- ajlong %>% dplyr::rename("pstate._s0_"="pstate..s0.", ## rename name chosen by survfit() "lower._s0_"="lower..s0.", ## since double dot confuses names_sep "upper._s0_"="upper..s0.") ajlong <- ajlong %>% tidyr::pivot_longer(cols = c(tidyselect::starts_with("pstate."), tidyselect::starts_with("lower."), tidyselect::starts_with("upper.")), names_to=c("summary","state"), names_sep="\\.", values_to="prob") %>% tidyr::pivot_wider(names_from="summary", values_from="prob") ajlong$state <- as.character(factor(ajlong$state, labels=statenames)) names(ajlong)[names(ajlong)=="pstate"] <- "val" ajlong$model <- "Aalen-Johansen" if (is.null(B)) { ajlong$lower <- ajlong$upper <- NULL vals <- "val" } else { vals <- c("val","lower","upper") } names(ajlong)[names(ajlong)=="time"] <- "t" if (is.null(maxt)) maxt <- max(ajlong$t) times <- seq(0, maxt, length.out=100) modcomp <- p_flexsurvmix(x, t=times, newdata=newdata, startname=startname, B=B) %>% dplyr::mutate(model="Parametric mixture") %>% dplyr::full_join(ajlong, by = c("t", "state", names(newdata), "model", vals)) %>% dplyr::rename(time="t") modcomp } flexsurv/R/summary.flexsurvreg.R0000644000176200001440000005456214603753361016550 0ustar liggesusers##' Summaries of fitted flexible survival models ##' ##' Return fitted survival, cumulative hazard or hazard at a series of times ##' from a fitted \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}} ##' model. ##' ##' Time-dependent covariates are not currently supported. The covariate ##' values are assumed to be constant through time for each fitted curve. ##' ##' @param object Output from \code{\link{flexsurvreg}} or ##' \code{\link{flexsurvspline}}, representing a fitted survival model object. ##' ##' @param newdata Data frame containing covariate values to produce fitted ##' values for. Or a list that can be coerced to such a data frame. There ##' must be a column for every covariate in the model formula, and one row for ##' every combination of covariates the fitted values are wanted for. These ##' are in the same format as the original data, with factors as a single ##' variable, not 0/1 contrasts. ##' ##' If this is omitted, if there are any continuous covariates, then a single ##' summary is provided with all covariates set to their mean values in the ##' data - for categorical covariates, the means of the 0/1 indicator variables ##' are taken. If there are only factor covariates in the model, then all ##' distinct groups are used by default. ##' ##' @param X Alternative way of defining covariate values to produce fitted ##' values for. Since version 0.4, \code{newdata} is an easier way that ##' doesn't require the user to create factor contrasts, but \code{X} has been ##' kept for backwards compatibility. ##' ##' Columns of \code{X} represent different covariates, and rows represent ##' multiple combinations of covariate values. For example ##' \code{matrix(c(1,2),nrow=2)} if there is only one covariate in the model, ##' and we want survival for covariate values of 1 and 2. A vector can also be ##' supplied if just one combination of covariates is needed. ##' ##' For ``factor'' (categorical) covariates, the values of the contrasts ##' representing factor levels (as returned by the \code{\link{contrasts}} ##' function) should be used. For example, for a covariate \code{agegroup} ##' specified as an unordered factor with levels \code{20-29, 30-39, 40-49, ##' 50-59}, and baseline level \code{20-29}, there are three contrasts. To ##' return summaries for groups \code{20-29} and \code{40-49}, supply \code{X = ##' rbind(c(0,0,0), c(0,1,0))}, since all contrasts are zero for the baseline ##' level, and the second contrast is ``turned on'' for the third level ##' \code{40-49}. ##' ##' @param type \code{"survival"} for survival probabilities. ##' ##' \code{"cumhaz"} for cumulative hazards. ##' ##' \code{"hazard"} for hazards. ##' ##' \code{"rmst"} for restricted mean survival. ##' ##' \code{"mean"} for mean survival. ##' ##' \code{"median"} for median survival (alternative to \code{type="quantile"} with \code{quantiles=0.5}). ##' ##' \code{"quantile"} for quantiles of the survival time distribution. ##' ##' \code{"link"} for the fitted value of the location parameter (i.e. the "linear predictor" but on the natural scale of the parameter, not on the log scale) ##' ##' Ignored if \code{"fn"} is specified. ##' ##' @param fn Custom function of the parameters to summarise against time. ##' This has optional first two arguments \code{t} representing time, and ##' \code{start} representing left-truncation points, and any remaining ##' arguments must be parameters of the distribution. It should be vectorised, and ##' return a vector corresponding to the vectors given by \code{t}, \code{start} and ##' the parameter vectors. ##' ##' @param t Times to calculate fitted values for. By default, these are the ##' sorted unique observation (including censoring) times in the data - for ##' left-truncated datasets these are the "stop" times. ##' ##' @param quantiles If \code{type="quantile"}, this specifies the quantiles of the survival time distribution to return estimates for. ##' ##' @template start ##' ##' @param cross If \code{TRUE} (the default) then summaries are calculated for all combinations of times ##' specified in \code{t} and covariate vectors specifed in \code{newdata}. ##' ##' If \code{FALSE}, ##' then the times \code{t} should be of length equal to the number of rows in \code{newdata}, ##' and one summary is produced for each row of \code{newdata} paired with the corresponding ##' element of \code{t}. This is used, e.g. when determining Cox-Snell residuals. ##' ##' @param ci Set to \code{FALSE} to omit confidence intervals. ##' ##' @param se Set to \code{TRUE} to include standard errors. ##' ##' @param B Number of simulations from the normal asymptotic distribution of ##' the estimates used to calculate confidence intervals or standard errors. ##' Decrease for greater ##' speed at the expense of accuracy, or set \code{B=0} to turn off calculation ##' of CIs and SEs. ##' ##' @param cl Width of symmetric confidence intervals, relative to 1. ##' ##' @param tidy If \code{TRUE}, then the results are returned as a tidy data ##' frame instead of a list. This can help with using the \pkg{ggplot2} ##' package to compare summaries for different covariate values. ##' ##' @param na.action Function determining what should be done with missing values in \code{newdata}. If \code{na.pass} (the default) then summaries of \code{NA} are produced for missing covariate values. If \code{na.omit}, then missing values are dropped, the behaviour of \code{summary.flexsurvreg} before \code{flexsurv} version 1.2. ##' ##' @param ... Further arguments passed to or from other methods. Currently ##' unused. ##' ##' @return If \code{tidy=FALSE}, a list with one component for each unique ##' covariate value (if there are only categorical covariates) or one component ##' (if there are no covariates or any continuous covariates). Each of these ##' components is a matrix with one row for each time in \code{t}, giving the ##' estimated survival (or cumulative hazard, or hazard) and 95\% confidence ##' limits. These list components are named with the covariate names and ##' values which define them. ##' ##' If \code{tidy=TRUE}, a data frame is returned instead. This is formed by ##' stacking the above list components, with additional columns to identify the ##' covariate values that each block corresponds to. ##' ##' If there are multiple summaries, an additional list component named ##' \code{X} contains a matrix with the exact values of contrasts (dummy ##' covariates) defining each summary. ##' ##' The \code{\link{plot.flexsurvreg}} function can be used to quickly plot ##' these model-based summaries against empirical summaries such as ##' Kaplan-Meier curves, to diagnose model fit. ##' ##' Confidence intervals are obtained by sampling randomly from the asymptotic ##' normal distribution of the maximum likelihood estimates and then taking quantiles ##' (see, e.g. Mandel (2013)). ##' ##' @author C. H. Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' ##' @seealso \code{\link{flexsurvreg}}, \code{\link{flexsurvspline}}. ##' ##' @references Mandel, M. (2013). "Simulation based confidence intervals for ##' functions with complicated derivatives." The American Statistician (in ##' press). ##' ##' @keywords models ##' @export summary.flexsurvreg <- function(object, newdata=NULL, X=NULL, type="survival", fn=NULL, t=NULL, quantiles=0.5, start=0, cross=TRUE, ci=TRUE, se=FALSE, B=1000, cl=0.95, tidy=FALSE, na.action=na.pass, ...){ x <- object X <- newdata_to_X(x, newdata, X, na.action) type <- match.arg(type, c("survival","cumhaz","hazard","rmst","mean","median", "quantile","link")) if (is.null(fn)) { fn <- summary_fns(x, type) } fn <- expand.summfn.args(fn) if (type=="link") x$aux$"(location)" <- x$dlist$location args <- xt_to_fnargs(x, X, t, quantiles, start, type, cross) est <- do.call(fn, args) if (type %in% c("median","mean")) res <- data.frame(est=est) else if (type=="quantile") res <- data.frame(quantile = args$t, est=est) else res <- data.frame(time = args$t, est=est) if (ci || se){ res.ci <- cisumm.flexsurvreg(x, args$t, args$start, attr(args, "X"), fn=fn, B=B, cl=cl) if (ci) { res$lcl <- res.ci[1,] res$ucl <- res.ci[2,] } if (se) res$se <- res.ci[3,] } nodata <- is.null(attr(args, "newdata")) if (x$ncovs > 0 && !nodata) { res <- cbind(res, attr(args, "newdata")) } rownames(res) <- NULL if (!tidy){ ## For backwards compatibility if (x$ncovs == 0 || nodata) res <- list(res) else { nd <- attr(args, "newdata.orig") covnames_untidy <- apply(as.data.frame(nd), 1, function(x)paste0(names(nd), "=", x, collapse=",")) nx <- attr(args, "nx") nt <- attr(args, "nt") resdf <- res[,setdiff(names(res), colnames(nd)),drop=FALSE] res <- split(resdf, rep(1:nx, each=nt)) names(res) <- covnames_untidy res <- lapply(res, function(x)setNames(as.data.frame(x), names(resdf))) for (i in seq_along(res)) row.names(res[[i]]) <- NULL } } if (x$ncovs > 0) attr(res,"X") <- X class(res) <- c("summary.flexsurvreg",class(res)) res } newdata_to_X <- function(x, newdata=NULL, X=NULL, na.action=na.pass){ if (!is.null(X)) { X <- as.matrix(X) if (!is.matrix(X) || (is.matrix(X) && ncol(X) != x$ncoveffs)) { plural <- if (x$ncoveffs > 1) "s" else "" stop("expected X to be a matrix with ", x$ncoveffs, " column", plural, " or a vector with ", x$ncoveffs, " element", plural) } attr(X, "newdata") <- as.data.frame(X) } else if (is.null(newdata)){ if (is.null(x[["data"]])) stop("`newdata` should be supplied if the data have been removed from the model object") Xraw <- model.frame(x)[,unique(attr(model.frame(x),"covnames.orig")),drop=FALSE] isfac <- sapply(Xraw, function(x){is.factor(x) || is.character(x)}) if (is.vector(X)) X <- matrix(X, nrow=1) if (x$ncovs > 0 && is.null(X)) { ## if any continuous covariates, calculate fitted survival for "average" covariate value if (!all(isfac)){ nd <- colMeans(model.matrix(x)) X <- matrix(nd ,nrow=1, dimnames=list(NULL,names(nd))) attr(X, "newdata") <- as.data.frame(X) } ## else calculate for all different factor groupings else { X <- unique(model.matrix(x)) ## build names like "COVA=value1,COVB=value2" nam <- as.matrix(unique(Xraw)) for (i in 1:ncol(nam)) nam[,i] <- paste(colnames(nam)[i], nam[,i], sep="=") rownames(X) <- apply(nam, 1, paste, collapse=",") attr(X, "newdata") <- unique(Xraw) } } else if (is.null(X)) X <- as.matrix(0, nrow=1, ncol=max(x$ncoveffs,1)) else { attr(X, "newdata") <- X colnames(attr(X, "newdata")) <- colnames(model.matrix(x)) } } else X <- form.model.matrix(x, as.data.frame(newdata), na.action=na.action) X } xt_to_fnargs <- function(x, X, t, quantiles=0.5, start=0, type="survival", cross=TRUE){ tstart <- summfn_to_tstart(x, type, t, quantiles, start) t <- tstart$t nd <- ndorig <- attr(X, "newdata") nt <- length(t) nx <- nrow(X) if (!cross){ if (nt != nrow(X)){ stop(sprintf("length(t)=%s, should equal nrow(X)=%s", nt, nrow(X))) } } else { tstart$t <- rep(t, nx) tstart$start <- rep(tstart$start, nx) X <- X[rep(1:nx, each=nt),,drop=FALSE] nd <- nd[rep(1:nx, each=nt),,drop=FALSE] } pbase <- x$res.t[x$dlist$pars,"est"] beta <- if (x$ncovs==0) 0 else x$res[x$covpars,"est"] basepars.mat <- add.covs(x, pbase, beta, X, transform=FALSE) basepars <- as.list(as.data.frame(basepars.mat)) fnargs <- c(tstart, basepars) for (j in seq_along(x$aux)){ fnargs[[names(x$aux)[j]]] <- x$aux[[j]] } attr(fnargs, "newdata") <- nd attr(fnargs, "nx") <- nx attr(fnargs, "nt") <- nt attr(fnargs, "newdata.orig") <- ndorig attr(fnargs, "X") <- X fnargs } summfn_to_tstart <- function(x, type="survival", t=NULL, quantiles=0.5, start=0){ nodata_msg <- "prediction times `t` should be defined explicitly if the data are not included in the model object" if(type == "mean"){ if(!is.null(t)) warning("Mean selected, but time specified. For restricted mean, set type to 'rmst'.") # Type = mean same as RMST w/ time = Inf t <- rep_len(Inf,length(start)) } else if(type == "median"){ if(!is.null(t)) warning("Median selected, but time specified.") t <- rep_len(0.5,length(start)) } else if(type == "link"){ if(!is.null(t)) warning("`link` selected, but time specified.") t <- rep_len(0,length(start)) } else if(type == "quantile"){ t <- quantiles if((any(t<0) | any(t>1))){ stop("Quantiles should not be less than 0 or greater than 1") } maxlen <- max(length(t), length(start)) t <- rep_len(t,maxlen) } else if(type == "rmst"){ if (is.null(x[["data"]])) stop(nodata_msg) if (is.null(t)) t <- max(x$data$Y[,"time1"]) } else if (is.null(t)){ if (is.null(x[["data"]])) stop(nodata_msg) t <- sort(unique(x$data$Y[,"stop"])) } if (length(start)==1) start <- rep_len(start, length(t)) else if (length(start) != length(t)) stop("length of \"start\" is ",length(start),". Should be 1, or length of \"t\" which is ",length(t)) list(t=t, start=start) } cisumm.flexsurvreg <- function(x, t, start, X, fn, B=1000, cl=0.95) { if (all(is.na(x$cov)) || (B==0)) ret <- array(NA, dim=c(2, length(t))) else { sim <- normboot.flexsurvreg(x, B, X=X, tidy=TRUE) args <- list(t = rep(t, each=B), start = rep(start, each=B)) args <- c(args, as.list(as.data.frame(sim))[x$dlist$pars]) for (j in seq_along(x$aux)) args[[names(x$aux)[j]]] <- x$aux[[j]] ret <- do.call(fn, args) ret <- matrix(ret, nrow=B) retci <- apply(ret, 2, function(x)quantile(x, c((1-cl)/2, 1 - (1-cl)/2), na.rm=TRUE)) retse <- apply(ret, 2, sd) ret <- rbind(retci, retse) } ret } #' @noRd summary_fns <- function(x, type){ switch(type, # TODO warn for clashing arguments in dfns "survival" = function(t,start,...) { ret <- (1 - x$dfns$p(t,...))/(1 - x$dfns$p(start,...)) ret[t 0){ pars[,j] <- pars[,j] + beta[,covinds] %*% t(X[,covinds,drop=FALSE]) } if (!transform) pars[,j] <- x$dlist$inv.transforms[[j]](pars[,j]) } colnames(pars) <- x$dlist$pars pars } ## Draw B samples from multivariate normal distribution of baseline ## parameter estimators, for given covariate values ##' Simulate from the asymptotic normal distribution of parameter estimates. ##' ##' Produce a matrix of alternative parameter estimates under sampling ##' uncertainty, at covariate values supplied by the user. Used by ##' \code{\link{summary.flexsurvreg}} for obtaining confidence intervals around ##' functions of parameters. ##' ##' ##' @param x A fitted model from \code{\link{flexsurvreg}} (or \code{\link{flexsurvspline}}). ##' ##' @param B Number of samples. ##' ##' @param newdata Data frame or list containing the covariate values to ##' evaluate the parameters at. If there are covariates in the model, at least ##' one of \code{newdata} or \code{X} must be supplied, unless \code{raw=TRUE}. ##' ##' @param X Alternative (less convenient) format for covariate values: a ##' matrix with one row, with one column for each covariate or factor contrast. ##' Formed from all the "model matrices", one for each named parameter of the ##' distribution, with intercepts excluded, \code{cbind}ed together. ##' ##' @param transform \code{TRUE} if the results should be transformed to the ##' real-line scale, typically by log if the parameter is defined as positive. ##' The default \code{FALSE} returns parameters on the natural scale. ##' ##' @param raw Return samples of the baseline parameters and the covariate ##' effects, rather than the default of adjusting the baseline parameters for ##' covariates. ##' ##' @param rawsim allows input of raw samples from a previous run of ##' \code{normboot.flexsurvreg}. This is useful if running ##' \code{normboot.flexsurvreg} multiple time on the same dataset but with ##' counterfactual contrasts, e.g. treat =0 vs. treat =1. ##' Used in \code{standsurv.flexsurvreg}. ##' ##' @param tidy If \code{FALSE} (the default) then ##' a list is returned. If \code{TRUE} a data frame is returned, consisting ##' of the list elements \code{rbind}ed together, with integer variables ##' labelling the covariate number and simulation replicate number. ##' ##' @return If \code{newdata} includes only one covariate combination, a matrix ##' will be returned with \code{B} rows, and one column for each named ##' parameter of the survival distribution. ##' ##' If more than one covariate combination is requested (e.g. \code{newdata} is ##' a data frame with more than one row), then a list of matrices will be ##' returned, one for each covariate combination. ##' @author C. H. Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' @seealso \code{\link{summary.flexsurvreg}} ##' @references Mandel, M. (2013). "Simulation based confidence intervals for ##' functions with complicated derivatives." The American Statistician (in ##' press). ##' @keywords models ##' @examples ##' ##' fite <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist="exp") ##' normboot.flexsurvreg(fite, B=10, newdata=list(age=50)) ##' normboot.flexsurvreg(fite, B=10, X=matrix(50,nrow=1)) ##' normboot.flexsurvreg(fite, B=10, newdata=list(age=0)) ## closer to... ##' fite$res ##' @export normboot.flexsurvreg <- function(x, B, newdata=NULL, X=NULL, transform=FALSE, raw=FALSE, tidy=FALSE, rawsim=NULL){ if (x$ncovs > 0 && !raw) { if (is.null(X)) { if (is.null(newdata)) stop("neither \"newdata\" nor \"X\" supplied") X <- form.model.matrix(x, as.data.frame(newdata)) } } else X <- as.matrix(0, nrow=1, ncol=1) sim <- matrix(nrow=B, ncol=nrow(x$res)) colnames(sim) <- rownames(x$res) if (is.na(x$cov[1])) stop("Covariance matrix not available from non-converged model") if (is.null(rawsim)){ sim[,x$optpars] <- rmvnorm(B, x$opt$par, x$cov) sim[,x$fixedpars] <- rep(x$res.t[x$fixedpars,"est"],each=B) rawsim <- sim } else { sim <- rawsim } if (x$ncovs > 0 && !raw){ beta <- sim[, x$covpars, drop=FALSE] if (nrow(X)==1){ res <- sim[,x$dlist$pars,drop=FALSE] res <- add.covs(x=x, pars=res, beta=beta, X=X, transform=transform) } else { res <- vector(nrow(X), mode="list") for (i in 1:nrow(X)) { res[[i]] <- sim[,x$dlist$pars,drop=FALSE] res[[i]] <- add.covs(x=x, pars=res[[i]], beta=beta, X=X[i,,drop=FALSE], transform=transform) } } } else { res <- sim if (!transform){ for (j in seq_along(x$dlist$pars)){ res[,j] <- x$dlist$inv.transforms[[j]](res[,j]) } } } if (tidy && is.list(res)){ res <- cbind(covno = rep(1:nrow(X), each=B), repno = rep(1:B, nrow(X)), do.call("rbind", res)) res <- as.data.frame(res) } attr(res, "X") <- X attr(res, "rawsim") <- rawsim res } ### Compute CIs for survival, cumulative hazard, hazard, or user ### defined function, at supplied times t and covariates X, using ### random sample of size B from the assumed MVN distribution of MLEs. normbootfn.flexsurvreg <- function(x, t, start, newdata=NULL, X=NULL, fn, B, rawsim=NULL){ sim <- normboot.flexsurvreg(x, B, newdata=newdata, X=X, rawsim=rawsim) X <- attr(sim, "X") if (!is.list(sim)) sim <- list(sim) ret <- array(NA_real_, dim=c(nrow(X), B, length(t))) fncall0 <- list(t,start) for (j in seq_along(x$aux)) fncall0[[names(x$aux)[j]]] <- x$aux[[j]] for (k in 1:nrow(X)){ for (i in seq_len(B)) { fncall <- c(fncall0, lapply(sim[[k]][i,seq_along(x$dlist$pars)], function(z) z)) ret[k,i,] <- do.call(fn, fncall) } } if (nrow(X)==1) ret[1,,,drop=FALSE] else ret } flexsurv/R/residuals.flexsurvreg.R0000644000176200001440000000712414564155207017037 0ustar liggesusers#' Calculate residuals for flexible survival models #' #' Calculates residuals for \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}} model fits. #' #' @param object Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object. #' #' @param type Character string for the type of residual desired. Currently only \code{"response"} and \code{"coxsnell"} are supported. More residual types may become available in future versions. #' #' @param ... Not currently used. #' #' @details Residuals of \code{type = "response"} are calculated as the naive difference between the observed survival and the covariate-specific predicted mean survival from \code{\link{predict.flexsurvreg}}, ignoring whether the event time is observed or censored. #' #' \code{type="coxsnell"} returns the Cox-Snell residual, defined as the estimated cumulative hazard at each data point. To check the fit of the #' A more fully featured utility for this is provided in the function \code{\link{coxsnell_flexsurvreg}}. #' #' @return Numeric vector with the same length as \code{nobs(object)}. #' #' @seealso \code{\link{predict.flexsurvreg}} #' #' @importFrom stats residuals #' #' @export #' #' @examples #' #' fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") #' residuals(fitg, type="response") #' #' #' residuals.flexsurvreg <- function(object, type = "response", ...) { type <- match.arg(type, c("response","coxsnell")) if (type=="response"){ obs_surv <- unname(object$data$Y[, 1]) fit_surv <- predict(object, type = type)$.pred_time res <- obs_surv - fit_surv } else if (type=="coxsnell") { cx <- coxsnell_flexsurvreg(object) res <- cx$est } res } ##' Cox-Snell residuals from a parametric survival model ##' ##' @param x Object returned by \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}} representing a fitted survival model ##' ##' @return A data frame with a column called \code{est} giving the Cox-Snell residual, defined as the fitted cumulative hazard at each data point. ##' fitted cumulative hazard at the given observed data point, and other columns indicating the observation time, ##' observed event status, and covariate values defining the data at this point. ##' ##' The cumulative hazards \code{est} should form a censored sample from an Exponential(1). ##' Therefore to check the fit of the model, plot a nonparametric estimate of the cumulative ##' hazard curve against a diagonal line through the origin, which is the theoretical cumulative ##' hazard trajectory of the Exponential(1). ##' ##' @examples ##' ##' fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") ##' cs <- coxsnell_flexsurvreg(fitg) ##' ##' ## Model appears to fit well, with some small sample noise ##' surv <- survfit(Surv(cs$est, ovarian$fustat) ~ 1) ##' plot(surv, fun="cumhaz") ##' abline(0, 1, col="red") ##' ##' @export coxsnell_flexsurvreg <- function(x){ mf <- model.frame(x, orig=TRUE) startstop <- "start" %in% colnames(mf[,1]) tind <- if (startstop) "stop" else "time" t <- mf[,1][,tind] start <- if (startstop) mf[,1][,"start"] else 0 covnames <- attr(model.frame(x), "covnames") nd <- mf[,covnames,drop=FALSE] res <- summary(x, type="cumhaz", t=t, start=start, newdata=nd, cross=FALSE, ci=FALSE, se=FALSE, tidy=TRUE) res$status <- mf[,1][,"status"] res <- res[c("time","status", setdiff(names(res), c("time","status","est")), "est")] res } flexsurv/R/hr_flexsurvreg.R0000644000176200001440000000670414603753314015536 0ustar liggesusers##' Hazard ratio as a function of time from a parametric survival model ##' ##' @inheritParams summary.flexsurvreg ##' ##' @param x Object returned by \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}. ##' ##' @param newdata A data frame with two rows, each specifying a set of covariate values. ##' The hazard ratio is calculated as hazard(z2)/hazard(z1), where z1 is the first row ##' of \code{newdata} and z2 is the second row. ##' ##' \code{newdata} must be supplied unless the model \code{x} includes just one covariate. ##' With one covariate, a default is constructed, which defines the hazard ratio between ##' the second and first level of the factor (if the covariate is a factor), or between ##' a value of 1 and a value of 0 (if the covariate is numeric). ##' ##' @return A data frame with estimate and confidence limits for the hazard ratio, and ##' one row for each of the times requested in \code{t}. ##' ##' @export hr_flexsurvreg <- function(x, newdata=NULL, t=NULL, start=0, ci=TRUE, B=1000, cl=0.95, na.action=na.pass){ if (is.null(newdata)){ if (is.null(x$data)) stop("`newdata` must be specified explicitly if the data have been removed from the model object") else newdata <- hr_default_newdata(x) } if (is.null(newdata)) stop("`newdata` must be specified unless the model has a single covariate") newdata <- as.data.frame(newdata) X <- newdata_to_X(x, newdata, na.action=na.action) args1 <- xt_to_fnargs(x, X[2,,drop=FALSE], t, start=start, type="hazard") args0 <- xt_to_fnargs(x, X[1,,drop=FALSE], t, start=start, type="hazard") fn <- expand.summfn.args(summary_fns(x, type="hazard")) est1 <- do.call(fn, args1) est0 <- do.call(fn, args0) tstart <- summfn_to_tstart(x=x, type="hr", t=t) t <- tstart$t; start <- tstart$start res <- data.frame(t = t) res$est <- est1 / est0 if (ci){ argsboth <- xt_to_fnargs(x, X, t, start=start, type="hazard") sim <- normboot.flexsurvreg(x, B, X=attr(argsboth, "X"), tidy=TRUE) sim$"(time)" <- rep(rep(t, each=B), 2) sim$"(cov)" <- rep(c(1,2), each=B*length(t)) sim0 <- sim[sim$"(cov)" == 1,,drop=FALSE] sim1 <- sim[sim$"(cov)" == 2,,drop=FALSE] argst <- list(t = rep(t, each=B), start = start) for (j in seq_along(x$aux)) argst[[names(x$aux)[j]]] <- x$aux[[j]] args1 <- c(argst, as.list(as.data.frame(sim1))[x$dlist$pars]) args0 <- c(argst, as.list(as.data.frame(sim0))[x$dlist$pars]) ret <- do.call(fn, args1) / do.call(fn, args0) ret <- matrix(ret, nrow=B) retci <- apply(ret, 2, function(x)quantile(x, c((1-cl)/2, 1 - (1-cl)/2), na.rm=TRUE)) res$lcl <- retci[1,] res$ucl <- retci[2,] # note it doesn't draw new simulations for each covariate value. OK } res } hr_default_newdata <- function(x){ mf <- model.frame(x) Xraw <- mf[,unique(attr(mf,"covnames.orig")),drop=FALSE] isfac <- sapply(Xraw, function(x){is.factor(x) || is.character(x)}) isnum <- sapply(Xraw, function(x){is.numeric(x)}) ncovs <- ncol(Xraw) if (ncovs == 1) { if (isfac){ levs <- levels(Xraw[,1]) if (length(levs)==1) stop("the covariate has only one one factor level") newdata <- list(levs[1:2]) } else if (isnum) { newdata <- list(c(0,1)) } else newdata <- NULL if (is.list(newdata)) names(newdata) <- attr(mf, "covnames") } else newdata <- NULL newdata } flexsurv/R/spline.R0000644000176200001440000012402214645512110013746 0ustar liggesusers##' Royston/Parmar spline survival distribution ##' ##' Probability density, distribution, quantile, random generation, hazard, ##' cumulative hazard, mean and restricted mean functions for the Royston/Parmar ##' spline model. These functions have all parameters of the distribution collected ##' together in a single argument \code{gamma}. For the equivalent functions with ##' one argument per parameter, see \code{\link{Survsplinek}}. ##' ##' @aliases dsurvspline psurvspline qsurvspline rsurvspline ##' hsurvspline Hsurvspline mean_survspline rmst_survspline ##' ##' @param x,q,t Vector of times. ##' ##' @param p Vector of probabilities. ##' ##' @param n Number of random numbers to simulate. ##' ##' @param gamma Parameters describing the baseline spline function, as ##' described in \code{\link{flexsurvspline}}. This may be supplied as a ##' vector with number of elements equal to the length of \code{knots}, in ##' which case the parameters are common to all times. Alternatively a matrix ##' may be supplied, with rows corresponding to different times, and columns ##' corresponding to \code{knots}. ##' ##' @param start Optional left-truncation time or times. The returned ##' restricted mean survival will be conditioned on survival up to ##' this time. ##' ##' @param beta Vector of covariate effects. Not supported and ignored since version 2.3, and this argument will be removed in 2.4. ##' ##' @param X Matrix of covariate values. Not supported and ignored since version 2.3, and this argument will be removed in 2.4. ##' ##' @param knots Locations of knots on the axis of log time, supplied in ##' increasing order. Unlike in \code{\link{flexsurvspline}}, these include ##' the two boundary knots. If there are no additional knots, the boundary ##' locations are not used. If there are one or more additional knots, the ##' boundary knots should be at or beyond the minimum and maximum values of the ##' log times. In \code{\link{flexsurvspline}} these are exactly at the ##' minimum and maximum values. ##' ##' This may in principle be supplied as a matrix, in the same way as for ##' \code{gamma}, but in most applications the knots will be fixed. ##' ##' @param scale \code{"hazard"}, \code{"odds"}, or \code{"normal"}, as ##' described in \code{\link{flexsurvspline}}. With the default of no knots in ##' addition to the boundaries, this model reduces to the Weibull, log-logistic ##' and log-normal respectively. The scale must be common to all times. ##' ##' @param timescale \code{"log"} or \code{"identity"} as described in ##' \code{\link{flexsurvspline}}. ##' ##' @param spline \code{"rp"} to use the natural cubic spline basis ##' described in Royston and Parmar. \code{"splines2ns"} to use the ##' alternative natural cubic spline basis from the \code{splines2} ##' package (Wang and Yan 2021), which may be better behaved due to ##' the basis being orthogonal. ##' ##' @param offset An extra constant to add to the linear predictor ##' \eqn{\eta}{eta}. Not supported and ignored since version 2.3, and this argument will be removed in 2.4. ##' ##' @param log,log.p Return log density or probability. ##' ##' @param lower.tail logical; if TRUE (default), probabilities are \eqn{P(X ##' \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}. ##' @return \code{dsurvspline} gives the density, \code{psurvspline} gives the ##' distribution function, \code{hsurvspline} gives the hazard and ##' \code{Hsurvspline} gives the cumulative hazard, as described in ##' \code{\link{flexsurvspline}}. ##' ##' \code{qsurvspline} gives the quantile function, which is computed by crude ##' numerical inversion (using \code{\link{qgeneric}}). ##' ##' \code{rsurvspline} generates random survival times by using ##' \code{qsurvspline} on a sample of uniform random numbers. Due to the ##' numerical root-finding involved in \code{qsurvspline}, it is slow compared ##' to typical random number generation functions. ##' ##' @author Christopher Jackson ##' ##' @seealso \code{\link{flexsurvspline}}. ##' ##' @references Royston, P. and Parmar, M. (2002). Flexible parametric ##' proportional-hazards and proportional-odds models for censored survival ##' data, with application to prognostic modelling and estimation of treatment ##' effects. Statistics in Medicine 21(1):2175-2197. ##' ##' Wang W, Yan J (2021). Shape-Restricted Regression Splines with R ##' Package splines2. Journal of Data Science, 19(3), 498-517. ##' ##' @keywords distribution ##' ##' @examples ##' ##' ## reduces to the weibull ##' regscale <- 0.786; cf <- 1.82 ##' a <- 1/regscale; b <- exp(cf) ##' dweibull(1, shape=a, scale=b) ##' dsurvspline(1, gamma=c(log(1 / b^a), a)) # should be the same ##' ##' ## reduces to the log-normal ##' meanlog <- 1.52; sdlog <- 1.11 ##' dlnorm(1, meanlog, sdlog) ##' dsurvspline(1, gamma = c(-meanlog/sdlog, 1/sdlog), scale="normal") ##' # should be the same ##' @name Survspline NULL ## Things to do that are common to d/p/q functions ## could be generalized to any function with vector of arguments ## TODO more special value handling dbase.survspline <- function(q, gamma, knots, scale, deriv=0, spline="rp"){ if(!is.matrix(gamma)) gamma <- matrix(gamma, nrow=1) if(!is.matrix(knots)) knots <- matrix(knots, nrow=1) anylength0 <- (min(length(q), nrow(gamma), nrow(knots)) == 0) nret <- if (anylength0) 0 else max(length(q), nrow(gamma), nrow(knots)) q <- rep(q, length.out=nret) gamma <- matrix(rep(as.numeric(t(gamma)), length.out = ncol(gamma) * nret), ncol = ncol(gamma), byrow = TRUE) knots <- matrix(rep(as.numeric(t(knots)), length.out = ncol(knots) * nret), ncol = ncol(knots), byrow = TRUE) if (ncol(gamma) != ncol(knots)) { stop("length of gamma should equal number of knots") } scale <- match.arg(scale, c("hazard","odds","normal")) if (deriv==2){ npars <- ncol(gamma) parnames <- paste0("gamma",seq_len(npars)-1) ret <- array(0, dim=c(nret, npars, npars), dimnames = list(NULL, parnames, parnames)) ret[is.na(q),,] <- NA } else if (deriv==1){ ret <- matrix(0, nrow=nret, ncol=ncol(gamma)) ret[is.na(q),] <- NA } else if (deriv==0) { ret <- numeric(nret) ret[is.na(q)] <- NA } ind <- !is.na(q) & q > 0 q <- q[ind] gamma <- gamma[ind,,drop=FALSE] knots <- knots[ind,,drop=FALSE] list(ret=ret, gamma=gamma, q=q, scale=scale, ind=ind, knots=knots) } dlink <- function(scale){ switch(scale, hazard=function(x){exp(x - exp(x))}, odds=function(x){exp(x) / (1 + exp(x))^2}, normal=function(x){dnorm(x)} ) } ldlink <- function(scale){ switch(scale, hazard=function(x){x - exp(x)}, odds=function(x){x - 2*log(1 + exp(x))}, normal=function(x){dnorm(x, log=TRUE)} ) } ## probability density function. ##' @rdname Survspline ##' @export dsurvspline <- function(x, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp", offset=0, log=FALSE){ betax_warn(beta, X, offset) d <- dbase.survspline(q=x, gamma=gamma, knots=knots, scale=scale, spline=spline) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) if (any(ind)){ eta <- rowSums(basis(knots, tsfn(q, timescale), spline=spline) * gamma) # log cumulative hazard/odds eeta <- exp(ldlink(scale)(eta)) ret[ind][eeta==0] <- 0 ret[ind][is.nan(eeta)] <- NaN ind2 <- !(eeta==0 | is.nan(eeta)) q <- q[ind2] gamma <- gamma[ind2,,drop=FALSE] knots <- knots[ind2,,drop=FALSE] eeta <- eeta[ind2] ind[ind] <- ind[ind] & ind2 dsum <- rowSums(dbasis(knots, tsfn(q, timescale), spline=spline) * gamma) # ds/dx ret[ind] <- dtsfn(q,timescale) * dsum * eeta ## derivative of log cum haz cannot be negative by definition, but ## optimisation doesn't constrain gamma to respect this, so set ## likelihood to zero then (assuming at least one death) ret[ind][ret[ind]<=0] <- 0 } if (log) {ret <- log(ret)} as.numeric(ret) } tsfn <- function(x, timescale){ switch(timescale, log = log(x), identity = x) } dtsfn <- function(x, timescale){ switch(timescale, log = 1/x, identity = 1) } Slink <- function(scale){ switch(scale, hazard=function(x){exp(-exp(x))}, odds=function(x){1 / (1 + exp(x))}, normal=function(x){pnorm(-x)} ) } ## cumulative distribution function ##' @rdname Survspline ##' @export psurvspline <- function(q, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp", offset=0, lower.tail=TRUE, log.p=FALSE){ betax_warn(beta, X, offset) d <- dbase.survspline(q=q, gamma=gamma, knots=knots, scale=scale, spline=spline) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) if (any(ind)){ ret[ind][q==0] <- 0 ret[ind][q==Inf] <- 1 finite <- q>0 & q 1) n <- length(n) ret <- qsurvspline(p=runif(n), gamma=gamma, knots=knots, scale=scale, timescale=timescale, spline=spline) ret } Hlink <- function(scale){ switch(scale, hazard=function(x){exp(x)}, # log cum haz, or log cum odds is a spline function of log time odds=function(x){log1p(exp(x))}, normal=function(x){-pnorm(-x, log.p=TRUE)} ) } ## cumulative hazard function ##' @rdname Survspline ##' @export Hsurvspline <- function(x, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp", offset=0){ match.arg(scale, c("hazard","odds","normal")) d <- dbase.survspline(q=x, gamma=gamma, knots=knots, scale=scale, spline=spline) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) if (any(ind)){ eta <- rowSums(basis(knots, tsfn(q,timescale), spline=spline) * gamma) + as.numeric(X %*% beta) ret[ind] <- as.numeric(Hlink(scale)(eta)) } ret } hlink <- function(scale){ switch(scale, hazard=function(x){exp(x)}, odds=function(x){plogis(x)}, normal=function(x){dnorm(-x)/pnorm(-x)} ) } ## hazard function ##' @rdname Survspline ##' @export hsurvspline <- function(x, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp", offset=0){ ## value for x=0? currently zero, should it be limit as x reduces to 0? betax_warn(beta, X, offset) match.arg(scale, c("hazard","odds","normal")) d <- dbase.survspline(q=x, gamma=gamma, knots=knots, scale=scale, spline=spline) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) if (any(ind)){ eta <- rowSums(basis(knots, tsfn(q,timescale), spline=spline) * gamma) + as.numeric(X %*% beta) eeta <- hlink(scale)(eta) ret[ind] <- dtsfn(q, timescale) * rowSums(dbasis(knots, tsfn(q, timescale), spline=spline) * gamma) * eeta ret[ind][ret[ind]<=0] <- 0 # these correspond to invalid decreasing cumulative hazard functions } as.numeric(ret) } ##' @rdname Survspline ##' @export rmst_survspline = function(t, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp", offset=0, start=0){ betax_warn(beta, X, offset) rmst_generic(psurvspline, t, start=start, matargs = c("gamma", "knots"), scalarargs = c("scale", "timescale", "spline"), gamma=gamma, knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survspline ##' @export mean_survspline = function(gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp", offset=0){ betax_warn(beta, X, offset) nt <- if (is.matrix(gamma)) nrow(gamma) else 1 rmst_generic(psurvspline, rep(Inf,nt), start=0, matargs = c("gamma", "knots"), scalarargs = c("scale", "timescale", "spline"), gamma=gamma, knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' Natural cubic spline basis ##' ##' Compute a basis for a natural cubic spline, by default using the ##' parameterisation described by Royston and Parmar (2002). Used for ##' flexible parametric survival models. ##' ##' The exact formula for the basis is given in \code{\link{flexsurvspline}}. ##' ##' @aliases basis dbasis fss dfss ##' ##' @param knots Vector of knot locations in increasing order, including the ##' boundary knots at the beginning and end. ##' ##' @param x Vector of ordinates to compute the basis for. ##' ##' @inheritParams Survspline ##' ##' @return A matrix with one row for each ordinate and one column for each ##' knot. ##' ##' \code{basis} returns the basis, and \code{dbasis} returns its derivative ##' with respect to \code{x}. ##' ##' \code{fss} and \code{dfss} are the same, but with the order of the ##' arguments swapped around for consistency with similar functions in other R ##' packages. ##' ##' @author Christopher Jackson ##' ##' @seealso \code{\link{flexsurvspline}}. ##' ##' @references Royston, P. and Parmar, M. (2002). Flexible parametric ##' proportional-hazards and proportional-odds models for censored survival ##' data, with application to prognostic modelling and estimation of treatment ##' effects. Statistics in Medicine 21(1):2175-2197. ##' ##' Wang W, Yan J (2021). Shape-Restricted Regression Splines with R ##' Package splines2. Journal of Data Science, 19(3), 498-517. ##' ##' @keywords models ##' @export basis <- function(knots, x, spline="rp") { if (spline=="rp") basis_original(knots, x) else if (spline=="splines2ns") basis_splines2ns(knots, x) } basis_splines2ns <- function(knots, x){ if (!isTRUE(requireNamespace("splines2", quietly = TRUE))) stop("spline=\"splines2ns\" needs the splines2 package to be installed") if (is.matrix(knots) && nrow(knots) > 0) basis_splines2ns_matrix(knots, x) else basis_splines2ns_vector(knots, x) } basis_splines2ns_vector <- function(knots, x){ nk <- length(knots) if (nk > 0){ iknots <- knots[-c(1,nk)] bknots <- knots[c(1,nk)] bas <- splines2::naturalSpline(x, knots = iknots, Boundary.knots=bknots, intercept = FALSE) # doesn't handle matrix knots bas <- cbind(1, bas) colnames(bas) <- NULL bas } else numeric(nk) } # Are all rows of a matrix the same as each other [ie the same as the first row] all_rows_same <- function(x){ all(apply(x, 1, function(y)(isTRUE(all.equal(y,x[1,]))))) } basis_splines2ns_matrix <- function(knots, x){ stopifnot(length(x)==nrow(knots)) if (all_rows_same(knots)){ ## Only do basis computation once. bas <- basis_splines2ns_vector(knots[1,], x) stopifnot(length(x)==nrow(bas)) } else { # different basis computation needed for each row bas <- matrix(NA, nrow=length(x), ncol=ncol(knots)) for (i in 1:nrow(knots)){ bas[i,] <- basis_splines2ns_vector(knots[i,], x[i]) } } bas } dbasis_splines2ns <- function(knots, x){ if (!isTRUE(requireNamespace("splines2", quietly = TRUE))) stop("spline=\"splines2ns\" needs the splines2 package to be installed") if (is.matrix(knots) && nrow(knots) > 0) dbasis_splines2ns_matrix(knots, x) else dbasis_splines2ns_vector(knots, x) } dbasis_splines2ns_vector <- function(knots, x){ nk <- length(knots) if (nk > 0){ iknots <- knots[-c(1,nk)] bknots <- knots[c(1,nk)] bas <- splines2::naturalSpline(x, knots = iknots, Boundary.knots=bknots, intercept = FALSE, derivs=1) bas <- cbind(0, bas) colnames(bas) <- NULL bas } else numeric(nk) } dbasis_splines2ns_matrix <- function(knots, x){ stopifnot(length(x)==nrow(knots)) if (all_rows_same(knots)){ ## Only do basis computation once. bas <- dbasis_splines2ns_vector(knots[1,], x) stopifnot(length(x)==nrow(bas)) } else { # different basis computation needed for each row bas <- matrix(NA, nrow=length(x), ncol=ncol(knots)) for (i in 1:nrow(knots)){ bas[i,] <- dbasis_splines2ns_vector(knots[i,], x[i]) } } bas } basis_original <- function(knots, x){ if (is.matrix(knots)) { basis_matrix(knots, x) } else { basis_vector(knots, x) } } ##' @export dbasis <- function(knots, x, spline="rp") { if (spline=="rp") dbasis_original(knots, x) else if (spline=="splines2ns") dbasis_splines2ns(knots, x) } dbasis_original <- function(knots, x){ if (is.matrix(knots)) { dbasis_matrix(knots, x) } else { dbasis_vector(knots, x) } } ##' @export fss <- function(x, knots) { basis(knots, x) } ##' @export dfss <- function(x, knots) { dbasis(knots, x) } flexsurv.splineinits <- function(t=NULL, mf, mml, aux) { Y <- check.flexsurv.response(model.extract(mf, "response")) ## Impute interval-censored data, where Cox doesn't work. intcens <- Y[,"status"]==3 & (Y[,"start"] < Y[,"stop"]) Y[intcens,"status"] <- 1 Y[intcens,"stop"] <- Y[intcens,"start"] + (Y[intcens,"stop"] - Y[intcens,"start"])/2 Y[,"status"] <- ifelse(Y[,"status"]==1, 1, 0) X <- mml[[1]][,-1,drop=FALSE] ## Use only uncensored observations, unless < 5 of those, in which ## case use all (coxph doesn't work if all censored). Impute as ## alternative? dead <- Y[,"status"]==1 inc <- if (sum(dead) >= 5) dead else rep(TRUE, nrow(Y)) inc <- inc & Y[,"start"] < Y[,"stop"] ## Estimate empirical cumulative hazard for each observation formdat <- as.data.frame(cbind(Y, X, weights=model.extract(mf, "weights"))) names(formdat)[1:ncol(Y)] <- colnames(Y) form <- c("Surv(start, stop, status) ~") if (ncol(X)>0){ names(formdat)[ncol(Y) + 1:ncol(X)] <- paste0("X", 1:ncol(X)) form <- paste(form, paste(paste0("X", 1:ncol(X)), collapse=" + ")) } else form <- paste(form, "1") formdat <- formdat[inc,] cox <- coxph(as.formula(form), weights=weights, data=formdat) if (ncol(X)>0){ newdata <- as.data.frame(matrix(rep(0, ncol(X)), nrow=1)) names(newdata) <- paste0("X", 1:ncol(X)) surv <- survfit(cox, newdata=newdata) } else surv <- survfit(cox) surv <- surv$surv[match(Y[inc,"stop"], surv$time)] surv <- surv^exp(cox$linear.predictors) if (aux$scale=="hazard") logH <- log(-log(surv)) else if (aux$scale=="odds") logH <- log((1 - surv)/surv) else if (aux$scale=="normal") logH <- qnorm(1 - surv) x <- tsfn(Y[inc,"time"], aux$timescale) b <- if (!is.null(aux$knots)) basis(aux$knots, x, spline=aux$spline) else cbind(1, x) ## Regress empirical logH on covariates and spline basis to obtain ## initial values. ## Constrain initial spline function to be increasing, using ## quadratic programming Xq <- cbind(b, X[inc,,drop=FALSE]) kx <- x kr <- diff(range(x)) kx[1] <- x[1] - 0.01*kr kx[length(kx)] <- x[length(kx)] + 0.01*kr db <- if (!is.null(aux$knots)) dbasis(aux$knots, kx, spline=aux$spline) else cbind(0, kx) dXq <- cbind(db, matrix(0, nrow=nrow(db), ncol=ncol(X))) nints <- length(mml)-1 for (i in seq_len(nints)){ Xi <- mml[[i+1]][inc,-1,drop=FALSE] Xq <- cbind(Xq, Xi*b[,i+1]) dXq <- cbind(dXq, Xi*db[,i+1]) } y <- logH[is.finite(logH)] Xq <- Xq[is.finite(logH),,drop=FALSE] dXq <- dXq[is.finite(logH),,drop=FALSE] eps <- rep(1e-09, length(y)) # so spline is strictly increasing Dmat <- t(Xq) %*% Xq posdef <- all(eigen(Dmat)$values > 0) # TODO work out why non-positive definite matrices can occur here if (!posdef && is.null(aux$skip.pd.check)) inits <- flexsurv.splineinits.cox(t=t, mf=mf, mml=mml, aux=aux) else if (posdef) inits <- solve.QP(Dmat=Dmat, dvec=t(t(y) %*% Xq), Amat=t(dXq), bvec=eps)$solution else inits <- rep(0, ncol(Xq)) # if Cox fails to get pos def inits } ## Initialise coefficients on spline intercepts (standard hazard ## ratios in PH models) using standard Cox regression, in cases where ## the default inits routine above results in parameters that give a ## zero likelihood, e.g. GBSG2 example flexsurv.splineinits.cox <- function(t=NULL, mf, mml, aux) { aux$skip.pd.check <- TRUE # avoid infinite recursion inits <- flexsurv.splineinits(t=t, mf=mf, mml=mml, aux=aux) Y <- check.flexsurv.response(model.extract(mf, "response")) ## Impute interval-censored data, where Cox doesn't work. intcens <- Y[,"status"]==3 & (Y[,"start"] < Y[,"stop"]) Y[intcens,"status"] <- 1 Y[intcens,"stop"] <- Y[intcens,"start"] + (Y[intcens,"stop"] - Y[intcens,"start"])/2 Y[,"status"] <- ifelse(Y[,"status"]==1, 1, 0) inc <- Y[,"start"] < Y[,"stop"] X <- mml[[1]][,-1,drop=FALSE] formdat <- as.data.frame(cbind(Y, X, weights=model.extract(mf, "weights"))) names(formdat)[1:ncol(Y)] <- colnames(Y) form <- c("Surv(start, stop, status) ~") if (ncol(X)>0){ names(formdat)[ncol(Y) + 1:ncol(X)] <- paste0("X", 1:ncol(X)) form <- paste(form, paste(paste0("X", 1:ncol(X)), collapse=" + ")) formdat <- formdat[inc,] cox <- coxph(as.formula(form), weights=weights, data=formdat) covinds <- length(aux$knots) + 1:ncol(X) inits[covinds] <- coef(cox) } inits } ##' Flexible survival regression using the Royston/Parmar spline model. ##' ##' Flexible parametric modelling of time-to-event data using the spline model ##' of Royston and Parmar (2002). ##' ##' This function works as a wrapper around \code{\link{flexsurvreg}} by ##' dynamically constructing a custom distribution using ##' \code{\link{dsurvspline}}, \code{\link{psurvspline}} and ##' \code{\link{unroll.function}}. ##' ##' In the spline-based survival model of Royston and Parmar (2002), a ##' transformation \eqn{g(S(t,z))} of the survival function is modelled as a ##' natural cubic spline function of log time \eqn{x = \log(t)}{x = log(t)} ##' plus linear effects of covariates \eqn{z}. ##' ##' \deqn{g(S(t,z)) = s(x, \bm{\gamma}) + \bm{\beta}^T \mathbf{z}}{g(S(t,z)) = ##' s(x, gamma) + beta^T z} ##' ##' The proportional hazards model (\code{scale="hazard"}) defines ##' \eqn{g(S(t,\mathbf{z})) = \log(-\log(S(t,\mathbf{z}))) = ##' \log(H(t,\mathbf{z}))}{g(S(t,z)) = log(-log(S(t,z))) = log(H(t,z))}, the ##' log cumulative hazard. ##' ##' The proportional odds model (\code{scale="odds"}) defines ##' \eqn{g(S(t,\mathbf{z})) }{g(S(t,z)) = log(1/S(t,z) - 1)}\eqn{ = ##' \log(S(t,\mathbf{z})^{-1} - 1)}{g(S(t,z)) = log(1/S(t,z) - 1)}, the log ##' cumulative odds. ##' ##' The probit model (\code{scale="normal"}) defines \eqn{g(S(t,\mathbf{z})) = ##' }{g(S(t,z)) = -InvPhi(S(t,z))}\eqn{ -\Phi^{-1}(S(t,\mathbf{z}))}{g(S(t,z)) ##' = -InvPhi(S(t,z))}, where \eqn{\Phi^{-1}()}{InvPhi()} is the inverse normal ##' distribution function \code{\link{qnorm}}. ##' ##' With no knots, the spline reduces to a linear function, and these models ##' are equivalent to Weibull, log-logistic and lognormal models respectively. ##' ##' The spline coefficients \eqn{\gamma_j: j=1, 2 \ldots }{gamma_j: j=1, 2 ##' \ldots}, which are called the "ancillary parameters" above, may also be ##' modelled as linear functions of covariates \eqn{\mathbf{z}}, as ##' ##' \deqn{\gamma_j(\mathbf{z}) = \gamma_{j0} + \gamma_{j1}z_1 + \gamma_{j2}z_2 ##' + ... }{gamma_j(z) = \gamma_{j0} + \gamma_{j1}z_1 + \gamma_{j2}z_2 + ... } ##' ##' giving a model where the effects of covariates are arbitrarily flexible ##' functions of time: a non-proportional hazards or odds model. ##' ##' Natural cubic splines are cubic splines constrained to be linear beyond ##' boundary knots \eqn{k_{min},k_{max}}{kmin,kmax}. The spline function is ##' defined as ##' ##' \deqn{s(x,\boldsymbol{\gamma}) = \gamma_0 + \gamma_1 x + \gamma_2 v_1(x) + \ldots + ##' }{s(x,gamma) = gamma0 + gamma1 x + gamma2 v1(x) + ... + gamma_{m+1} ##' vm(x)}\deqn{ \gamma_{m+1} v_m(x)}{s(x,gamma) = gamma0 + gamma1 x + gamma2 ##' v1(x) + ... + gamma_{m+1} vm(x)} ##' ##' where \eqn{v_j(x)}{vj(x)} is the \eqn{j}th basis function ##' ##' \deqn{v_j(x) = (x - k_j)^3_+ - \lambda_j(x - k_{min})^3_+ - (1 - }{vj(x) = ##' (x - kj)^3_+ - \lambda_j(x - kmin)^3_+ - (1 -\lambda_j) (x - ##' kmax)^3_+}\deqn{ \lambda_j) (x - k_{max})^3_+}{vj(x) = (x - kj)^3_+ - ##' \lambda_j(x - kmin)^3_+ - (1 -\lambda_j) (x - kmax)^3_+} ##' ##' \deqn{\lambda_j = \frac{k_{max} - k_j}{k_{max} - k_{min}}}{\lambda_j = ##' (kmax - kj) / (kmax - kmin)} ##' ##' and \eqn{(x - a)_+ = max(0, x - a)}. ##' ##' @param formula A formula expression in conventional R linear modelling ##' syntax. The response must be a survival object as returned by the ##' \code{\link[survival]{Surv}} function, and any covariates are given on the right-hand ##' side. For example, ##' ##' \code{Surv(time, dead) ~ age + sex} ##' ##' specifies a model where the log cumulative hazard (by default, see ##' \code{scale}) is a linear function of the covariates \code{age} and ##' \code{sex}. ##' ##' If there are no covariates, specify \code{1} on the right hand side, for ##' example \code{Surv(time, dead) ~ 1}. ##' ##' Time-varying covariate effects can be specified using the method described ##' in \code{\link{flexsurvreg}} for placing covariates on ancillary ##' parameters. The ancillary parameters here are named \code{gamma1}, ##' \ldots{}, \code{gammar} where \code{r} is the number of knots \code{k} plus ##' one (the ``degrees of freedom'' as defined by Royston and Parmar). So for ##' the default Weibull model, there is just one ancillary parameter ##' \code{gamma1}. ##' ##' Therefore a model with one internal spline knot, where the equivalents of ##' the Weibull shape and scale parameters, but not the higher-order term ##' \code{gamma2}, vary with age and sex, can be specified as: ##' ##' \code{Surv(time, dead) ~ age + sex + gamma1(age) + gamma1(sex)} ##' ##' or alternatively (and more safely, see \code{flexsurvreg}) ##' ##' \code{Surv(time, dead) ~ age + sex, anc=list(gamma1=~age + sex)} ##' ##' \code{Surv} objects of \code{type="right"},\code{"counting"}, ##' \code{"interval1"} or \code{"interval2"} are supported, corresponding to ##' right-censored, left-truncated or interval-censored observations. ##' @param data A data frame in which to find variables supplied in ##' \code{formula}. If not given, the variables should be in the working ##' environment. ##' @param weights Optional variable giving case weights. ##' ##' @param bhazard Optional variable giving expected hazards for relative ##' survival models. ##' ##' @param rtrunc Optional variable giving individual right-truncation times (see \code{\link{flexsurvreg}}). Note that these models can suffer from weakly identifiable parameters and ##' badly-behaved likelihood functions, and it is advised to compare ##' convergence for different initial values by supplying different ##' \code{inits} arguments to \code{flexsurvspline}. ##' ##' @param subset Vector of integers or logicals specifying the subset of the ##' observations to be used in the fit. ##' @param k Number of knots in the spline. The default \code{k=0} gives a ##' Weibull, log-logistic or lognormal model, if \code{"scale"} is ##' \code{"hazard"}, \code{"odds"} or \code{"normal"} respectively. \code{k} ##' is equivalent to \code{df-1} in the notation of \code{stpm} for Stata. The ##' knots are then chosen as equally-spaced quantiles of the log uncensored ##' survival times, for example, at the median with one knot, or at the 33\% ##' and 67\% quantiles of log time (or time, see \code{"timescale"}) with two ##' knots. To override this default knot placement, specify \code{knots} ##' instead. ##' @param knots Locations of knots on the axis of log time (or time, see ##' \code{"timescale"}). If not specified, knot locations are chosen as ##' described in \code{k} above. Either \code{k} or \code{knots} must be ##' specified. If both are specified, \code{knots} overrides \code{k}. ##' @param bknots Locations of boundary knots, on the axis of log time (or ##' time, see \code{"timescale"}). If not supplied, these are are chosen as ##' the minimum and maximum log death time. ##' @param scale If \code{"hazard"}, the log cumulative hazard is modelled as a ##' spline function. ##' ##' If \code{"odds"}, the log cumulative odds is modelled as a spline function. ##' ##' If \code{"normal"}, \eqn{-\Phi^{-1}(S(t))}{-InvPhi(S(t))} is modelled as a ##' spline function, where \eqn{\Phi^{-1}()}{InvPhi()} is the inverse normal ##' distribution function \code{\link{qnorm}}. ##' ##' @param timescale If \code{"log"} (the default) the log cumulative hazard ##' (or alternative) is modelled as a spline function of log time. If ##' \code{"identity"}, it is modelled as a spline function of time, however ##' this model would not satisfy the desirable property that the cumulative hazard ##' (or alternative) should approach 0 at time zero. ##' ##' @param spline \code{"rp"} to use the natural cubic spline basis ##' described in Royston and Parmar. ##' ##' \code{"splines2ns"} to use the alternative natural cubic spline ##' basis from the \code{splines2} package (Wang and Yan 2021), ##' which may be better behaved due to the basis being orthogonal. ##' ##' @param ... Any other arguments to be passed to or through ##' \code{\link{flexsurvreg}}, for example, \code{anc}, \code{inits}, ##' \code{fixedpars}, \code{weights}, \code{subset}, \code{na.action}, and any ##' options to control optimisation. See \code{\link{flexsurvreg}}. ##' @return A list of class \code{"flexsurvreg"} with the same elements as ##' described in \code{\link{flexsurvreg}}, and including extra components ##' describing the spline model. See in particular: ##' ##' \item{k}{Number of knots.} \item{knots}{Location of knots on the log time ##' axis.} \item{scale}{The \code{scale} of the model, hazard, odds or normal.} ##' \item{res}{Matrix of maximum likelihood estimates and confidence limits. ##' Spline coefficients are labelled \code{"gamma..."}, and covariate effects ##' are labelled with the names of the covariates. ##' ##' Coefficients \code{gamma1,gamma2,...} here are the equivalent of ##' \code{s0,s1,...} in Stata \code{streg}, and \code{gamma0} is the equivalent ##' of the \code{xb} constant term. To reproduce results, use the ##' \code{noorthog} option in Stata, since no orthogonalisation is performed on ##' the spline basis here. ##' ##' In the Weibull model, for example, \code{gamma0,gamma1} are ##' \code{-shape*log(scale), shape} respectively in \code{\link{dweibull}} or ##' \code{\link{flexsurvreg}} notation, or (\code{-Intercept/scale}, ##' \code{1/scale}) in \code{\link[survival]{survreg}} notation. ##' ##' In the log-logistic model with shape \code{a} and scale \code{b} (as in ##' \code{\link[eha:Loglogistic]{eha::dllogis}} from the \pkg{eha} package), \code{1/b^a} is ##' equivalent to \code{exp(gamma0)}, and \code{a} is equivalent to ##' \code{gamma1}. ##' ##' In the log-normal model with log-scale mean \code{mu} and standard ##' deviation \code{sigma}, \code{-mu/sigma} is equivalent to \code{gamma0} and ##' \code{1/sigma} is equivalent to \code{gamma1}. } \item{loglik}{The ##' maximised log-likelihood. This will differ from Stata, where the sum of ##' the log uncensored survival times is added to the log-likelihood in ##' survival models, to remove dependency on the time scale.} ##' ##' @author Christopher Jackson ##' ##' @seealso \code{\link{flexsurvreg}} for flexible survival modelling using ##' general parametric distributions. ##' ##' \code{\link{plot.flexsurvreg}} and \code{\link{lines.flexsurvreg}} to plot ##' fitted survival, hazards and cumulative hazards from models fitted by ##' \code{\link{flexsurvspline}} and \code{\link{flexsurvreg}}. ##' ##' @references Royston, P. and Parmar, M. (2002). Flexible parametric ##' proportional-hazards and proportional-odds models for censored survival ##' data, with application to prognostic modelling and estimation of treatment ##' effects. Statistics in Medicine 21(1):2175-2197. ##' ##' Wang W, Yan J (2021). Shape-Restricted Regression Splines with R ##' Package splines2. Journal of Data Science, 19(3), 498-517. ##' ##' Jackson, C. (2016). flexsurv: A Platform for Parametric Survival Modeling ##' in R. Journal of Statistical Software, 70(8), 1-33. ##' doi:10.18637/jss.v070.i08 ##' ##' @keywords models survival ##' ##' @examples ##' ##' ## Best-fitting model to breast cancer data from Royston and Parmar (2002) ##' ## One internal knot (2 df) and cumulative odds scale ##' ##' spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1, scale="odds") ##' ##' ## Fitted survival ##' ##' plot(spl, lwd=3, ci=FALSE) ##' ##' ## Simple Weibull model fits much less well ##' ##' splw <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=0, scale="hazard") ##' lines(splw, col="blue", ci=FALSE) ##' ##' ## Alternative way of fitting the Weibull ##' ##' \dontrun{ ##' splw2 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") ##' } ##' ##' @export flexsurvspline <- function(formula, data, weights, bhazard, rtrunc, subset, k=0, knots=NULL, bknots=NULL, scale="hazard", timescale="log", spline="rp", ...){ ## Get response matrix from the formula. Only need this to obtain ## default knots. Largely copied from flexsurvreg - ideally ## should be in separate function, but can't make scoping work. call <- match.call() indx <- match(c("formula", "data", "weights", "bhazard", "rtrunc", "subset", "na.action"), names(call), nomatch = 0) if (indx[1] == 0) stop("A \"formula\" argument is required") temp <- call[c(1, indx)] temp[[1]] <- as.name("model.frame") ## remove the predictors f2 <- as.formula(gsub("(.*~).*", "\\1 1", Reduce(paste, deparse(formula)))) environment(f2) <- environment(formula) temp[["formula"]] <- f2 if (missing(data)) temp[["data"]] <- environment(formula) if (missing(data)) data <- environment(formula) # TESTME to pass to flexsurvreg m <- eval(temp, parent.frame()) Y <- check.flexsurv.response(model.extract(m, "response")) deaths <- Y[,"status"]==1 dtimes <- Y[deaths,"stop"] intcens <- Y[,"status"]==3 midpoints <- (Y[,"time2"] + Y[,"time1"])/2 ktimes <- ifelse(deaths, Y[,"stop"], ifelse(intcens, midpoints, NA)) kinds <- deaths | intcens if (is.null(knots)) { is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol if (is.null(k)) stop("either \"knots\" or \"k\" must be specified") if (!is.numeric(k)) stop("k must be numeric") if (!is.wholenumber(k) || (k<0)) stop("number of knots \"k\" must be a non-negative integer") knots <- quantile_weighted(tsfn(ktimes[kinds],timescale), probs = seq(0, 1, length.out=k+2)[-c(1,k+2)], weights = model.extract(m, "weights")[kinds]) } else { if (!is.numeric(knots)) stop("\"knots\" must be a numeric vector") minlogtime <- min(tsfn(Y[,"stop"], timescale)) if (any(knots <= minlogtime)) { badknots <- knots[knots < min(tsfn(Y[,"stop"],timescale))] plural <- if (length(badknots) > 1) "s" else "" stop(sprintf("knot%s %s less than or equal to minimum %stime", plural, paste(badknots,collapse=", "), (if (timescale=="log") "log " else ""))) } maxlogtime <- max(tsfn(Y[,"stop"], timescale)) if (any(knots >= maxlogtime)) { badknots <- knots[knots > maxlogtime] plural <- if (length(badknots) > 1) "s" else "" stop(sprintf("knot%s %s greater than or equal to maximum %stime", plural, paste(badknots,collapse=", "), (if (timescale=="log") "log " else ""))) } } if (is.null(bknots)) { ## boundary knots chosen from min/max observed death times... if (length(dtimes)>0) { bt <- dtimes } else { ## unless all observations censored, where censoring times used instead ## "time" used with right censoring ## "time1", "time2" used with interval censoring bt <- c(Y[,"time1"], Y[,"time2"], Y[,"time"]) bt <- bt[is.finite(bt)] } bknots <- c(min(tsfn(bt,timescale)), max(tsfn(bt,timescale))) if (bknots[1] == bknots[2]) warning("minimum and maximum log death times are the same: knot and boundary knot locations should be supplied explicitly") } else if (!is.numeric(bknots) || (length(bknots) !=2) ) stop("boundary knots should be a numeric vector of length 2") knots <- c(bknots[1], knots, bknots[2]) nk <- length(knots) custom.fss <- list( name = "survspline", # unused, d,p functions passed through pars = c(paste0("gamma",0:(nk-1))), location = c("gamma0"), transforms = rep(c(identity), nk), inv.transforms=rep(c(identity), nk), inits = flexsurv.splineinits ) aux <- list(knots=knots, scale=scale, timescale=timescale, spline=spline) dfn <- unroll.function(dsurvspline, gamma=0:(nk-1)) pfn <- unroll.function(psurvspline, gamma=0:(nk-1)) rfn <- unroll.function(rsurvspline, gamma=0:(nk-1)) hfn <- unroll.function(hsurvspline, gamma=0:(nk-1)) Hfn <- unroll.function(Hsurvspline, gamma=0:(nk-1)) qfn <- unroll.function(qsurvspline, gamma=0:(nk-1)) meanfn <- unroll.function(mean_survspline, gamma=0:(nk-1)) rmstfn <- unroll.function(rmst_survspline, gamma=0:(nk-1)) Ddfn <- if (scale=="normal") NULL else unroll.function(DLdsurvspline, gamma=0:(nk-1)) DSfn <- if (scale=="normal") NULL else unroll.function(DLSsurvspline, gamma=0:(nk-1)) D2dfn <- if (scale=="normal") NULL else unroll.function(D2Ldsurvspline, gamma=0:(nk-1)) D2Sfn <- if (scale=="normal") NULL else unroll.function(D2LSsurvspline, gamma=0:(nk-1)) args <- c(list(formula=formula, data=data, dist=custom.fss, dfns=list(d=dfn,p=pfn,r=rfn,h=hfn,H=Hfn,rmst=rmstfn,mean=meanfn, q=qfn, DLd=Ddfn,DLS=DSfn,deriv=!(scale=="normal"), D2Ld=D2dfn,D2LS=D2Sfn,hessian=!(scale=="normal") ), aux=aux), list(...)) ## Try an alternative initial value routine if the default one gives zero likelihood fpold <- args$fixedpars args$fixedpars <- TRUE args$weights <- temp$weights args$bhazard <- temp$bhazard args$rtrunc <- temp$rtrunc args$subset <- temp$subset lik_try <- do.call("flexsurvreg", args)$loglik inits_fail <- is.infinite(lik_try) || is.na(lik_try) if (inits_fail){ args$dist$inits <- flexsurv.splineinits.cox } args$fixedpars <- fpold ret <- do.call("flexsurvreg", args) # faff to make ... args work within functions ret <- c(ret, list(k=length(knots) - 2, knots=knots, scale=scale, timescale=timescale, spline=spline)) ret$call <- call class(ret) <- "flexsurvreg" ret } betax_warn <- function(X, beta, offset){ if (!isTRUE(all.equal(X,0)) || !isTRUE(all.equal(beta,0)) || !isTRUE(all.equal(offset,0))) warning("`X`, `beta` and `offset` arguments not supported since v2.3. Instead the first element of `gamma` should be modified to include any covariate effects or offsets.") } ##' Weighted quantile function ##' ##' Works by multiplying the [0,1] weights by a large number ##' `max_rep*length(x)`, then rounding to an integer. Each element of x is ##' duplicated to the length defined by these integers. Then ##' quantiles of x are obtained using the standard `quantile` ##' function. ##' ##' @inheritParams quantile ##' ##' @param weights Vector of non-negative numbers of same length as ##' `x`, in proportion to the weights of `x`. Elements can be greater ##' than 1, since this is normalised to sum to 1 internally. ##' ##' @param `max_rep` is the average number of times that an element of ##' `x` will be replicated. Increasing this will give more accuracy ##' at the cost of bigger memory requirements for longer `x`. The ##' default of 100 is chosen to be rough, given the intended purpose ##' of this function for choosing default knots for a spline to span ##' `x`. ##' ##' @noRd quantile_weighted <- function(x, probs, weights=NULL, max_rep=100, ...){ x_expand <- x if (!is.null(weights)){ weights_int <- round(length(x) * max_rep * (weights/sum(weights))) x_expand <- rep(x, weights_int) } quantile(x_expand, probs) } flexsurv/R/WeibullPH.R0000644000176200001440000000760514171772374014334 0ustar liggesusers##' Weibull distribution in proportional hazards parameterisation ##' ##' Density, distribution function, hazards, quantile function and random ##' generation for the Weibull distribution in its proportional hazards ##' parameterisation. ##' ##' The Weibull distribution in proportional hazards parameterisation with ##' `shape' parameter a and `scale' parameter m has density given by ##' ##' \deqn{f(x) = a m x^{a-1} exp(- m x^a) } ##' ##' cumulative distribution function \eqn{F(x) = 1 - exp( -m x^a )}, survivor ##' function \eqn{S(x) = exp( -m x^a )}, cumulative hazard \eqn{m x^a} and ##' hazard \eqn{a m x^{a-1}}. ##' ##' \code{\link{dweibull}} in base R has the alternative 'accelerated failure ##' time' (AFT) parameterisation with shape a and scale b. The shape parameter ##' \eqn{a} is the same in both versions. The scale parameters are related as ##' \eqn{b = m^{-1/a}}, equivalently m = b^-a. ##' ##' In survival modelling, covariates are typically included through a linear ##' model on the log scale parameter. Thus, in the proportional hazards model, ##' the coefficients in such a model on \eqn{m} are interpreted as log hazard ##' ratios. ##' ##' In the AFT model, covariates on \eqn{b} are interpreted as time ##' acceleration factors. For example, doubling the value of a covariate with ##' coefficient \eqn{beta=log(2)} would give half the expected survival time. ##' These coefficients are related to the log hazard ratios \eqn{\gamma} as ##' \eqn{\beta = -\gamma / a}. ##' ##' @aliases WeibullPH dweibullPH pweibullPH qweibullPH rweibullPH HweibullPH ##' hweibullPH ##' @param x,q Vector of quantiles. ##' @param p Vector of probabilities. ##' @param n number of observations. If \code{length(n) > 1}, the length is ##' taken to be the number required. ##' @param shape Vector of shape parameters. ##' @param scale Vector of scale parameters. ##' @param log,log.p logical; if TRUE, probabilities p are given as log(p). ##' @param lower.tail logical; if TRUE (default), probabilities are \eqn{P(X ##' \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}. ##' @return \code{dweibullPH} gives the density, \code{pweibullPH} gives the ##' distribution function, \code{qweibullPH} gives the quantile function, ##' \code{rweibullPH} generates random deviates, \code{HweibullPH} retuns the ##' cumulative hazard and \code{hweibullPH} the hazard. ##' @author Christopher Jackson ##' @seealso \code{\link{dweibull}} ##' @keywords distribution ##' @name WeibullPH NULL ##' @export ##' @rdname WeibullPH dweibullPH <- function(x, shape, scale = 1, log=FALSE) { dweibull(x, shape=shape, scale=scale^{-1/shape}, log=log) } ##' @export ##' @rdname WeibullPH pweibullPH <- function(q, shape, scale = 1, lower.tail=TRUE, log.p=FALSE) { pweibull(q, shape=shape, scale=scale^{-1/shape}, lower.tail=lower.tail, log.p=log.p) } ##' @export ##' @rdname WeibullPH qweibullPH <- function(p, shape, scale = 1, lower.tail=TRUE, log.p=FALSE) { qweibull(p, shape=shape, scale=scale^{-1/shape}, lower.tail=lower.tail, log.p=log.p) } ##' @export ##' @rdname WeibullPH hweibullPH <- function(x, shape, scale = 1, log=FALSE) { hweibull(x, shape=shape, scale=scale^{-1/shape}, log=log) } ##' @export ##' @rdname WeibullPH HweibullPH <- function(x, shape, scale=1, log=FALSE) { Hweibull(x, shape=shape, scale=scale^{-1/shape}, log=log) } ##' @export ##' @rdname WeibullPH rweibullPH <- function(n, shape, scale=1) { rweibull(n, shape=shape, scale=scale^{-1/shape}) } ##' @export ##' @rdname means rmst_weibullPH = function(t, shape, scale=1, start=0){ rmst_generic(pweibullPH, t, start=start, shape=shape, scale=scale) } ##' @export ##' @rdname means mean_weibullPH = function(shape, scale=1){ mean_weibull(shape=shape, scale=scale^{-1/shape}) } flexsurv/R/Weibull.R0000644000176200001440000000710714203141721014057 0ustar liggesusers### Hazard and cumulative hazard functions for R built in ### distributions. Where possible, use more numerically stable ### formulae than d/(1-p) and -log(1-p) ##' @export ##' @rdname hazard hweibull <- function (x, shape, scale = 1, log = FALSE) { h <- dbase("weibull", log=log, x=x, shape=shape, scale=scale) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) if (log) ret[ind] <- log(shape) + (shape-1)*log(x/scale) - log(scale) else ret[ind] <- shape * (x/scale)^(shape - 1)/scale ret } ##' @export ##' @rdname hazard Hweibull <- function (x, shape, scale = 1, log = FALSE) { h <- dbase("weibull", log=log, x=x, shape=shape, scale=scale) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) if (log) ret[ind] <- shape * log(x/scale) else ret[ind] <- (x/scale)^shape ret } check.weibull <- function(shape, scale=1){ ret <- rep(TRUE, length(shape)) if (any(!is.na(shape) & shape<0)) {warning("Negative shape parameter"); ret[!is.na(shape) & shape<0 ] <- FALSE} if (any(!is.na(scale) & scale<0)) {warning("Negative scale parameter"); ret[!is.na(scale) & scale<0 ] <- FALSE} ret } ##' @export ##' @rdname means mean_weibull <- function(shape, scale=1) { scale * gamma(1 + 1/shape) } var.weibull <- function(shape, scale=1) { scale^2 * (gamma(1 + 2/shape) - (gamma(1 + 1/shape))^2) } ##' @export ##' @rdname means rmst_weibull = function(t, shape, scale=1, start=0){ rmst_generic(pweibull, t, start=start, shape=shape, scale=scale) } ##' @export hweibull <- function (x, shape, scale = 1, log = FALSE) { h <- dbase("weibull", log=log, x=x, shape=shape, scale=scale) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) if (log) ret[ind] <- log(shape) + (shape-1)*log(x/scale) - log(scale) else ret[ind] <- shape * (x/scale)^(shape - 1)/scale ret } ##' @export Hweibull <- function (x, shape, scale = 1, log = FALSE) { h <- dbase("weibull", log=log, x=x, shape=shape, scale=scale) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) if (log) ret[ind] <- shape * log(x/scale) else ret[ind] <- (x/scale)^shape ret } ## Don't warn about NaNs when NaNs are produced. This happens for ## extreme parameter values during optimisation. dweibull.quiet <- function(x, shape, scale = 1, log = FALSE) { ret <- suppressWarnings(dweibull(x=x, shape=shape, scale=scale, log=log)) ret } pweibull.quiet <- function(q, shape, scale = 1, lower.tail = TRUE, log.p = FALSE) { ret <- suppressWarnings(pweibull(q=q, shape=shape, scale=scale, lower.tail=lower.tail, log.p=log.p)) ret } hweibull.quiet <- function(x, shape, scale = 1, log = FALSE) { ret <- suppressWarnings(hweibull(x=x, shape=shape, scale=scale, log=log)) ret } rweibull.quiet <- rweibull hweibull.quiet <- function(x, shape, scale = 1, log = FALSE) { ret <- suppressWarnings(hweibull(x=x, shape=shape, scale=scale, log=log)) ret } Hweibull.quiet <- function(x, shape, scale = 1, log = FALSE) { ret <- suppressWarnings(Hweibull(x=x, shape=shape, scale=scale, log=log)) ret } qweibull.quiet <- function(p, shape, scale = 1, lower.tail = TRUE, log.p = FALSE) { ret <- suppressWarnings(qweibull(p=p, shape=shape, scale=scale, lower.tail=lower.tail, log.p=log.p)) ret } mean_weibull.quiet <- function(shape, scale=1) { mean_weibull(shape=shape,scale=scale) } var.weibull.quiet <- function(shape, scale=1) { scale^2 * (gamma(1 + 2/shape) - (gamma(1 + 1/shape))^2) } rmst_weibull.quiet = function(t, shape, scale=1, start=0){ rmst_generic(pweibull.quiet, t, start=start, shape=shape, scale=scale) } flexsurv/R/custom.R0000644000176200001440000001555314603725274014011 0ustar liggesusers## Get density, probability, hazard and cumulative hazard functions ## and return them as a list of functions form.dp <- function(dlist, dfns, integ.opts){ ## TODO check for format of dfn (args x, log) ## FIXME bug if object called d is found in global env ## check for existence in current frame. inherits false? name <- dlist$name hname <- paste0("h",name); Hname <- paste0("H",name) dname <- paste0("d",name); pname <- paste0("p",name) rmstname <- paste0("rmst_",name) meanname <- paste0("mean_",name) qname <- paste0("q",name) rname <- paste0("r",name) if (is.function(dfns$d)) d <- dfns$d if (is.function(dfns$p)) p <- dfns$p if (is.function(dfns$h)) h <- dfns$h if (is.function(dfns$H)) H <- dfns$H if (is.function(dfns$r)) r <- dfns$r if (is.function(dfns$q)) q <- dfns$q if (is.function(dfns$mean)) meanf <- dfns$mean if (is.function(dfns$rmst)) rmst <- dfns$rmst if (!exists("h", inherits=FALSE)){ if (exists(hname)) h <- get(hname) else { if (!exists("d")){ if (exists(dname)) d <- get(dname) else stop("Neither density function \"",dname, "\" nor hazard function \"", hname, "\" found") } if (!exists("p")){ if (exists(pname)) p <- get(pname) else { message("Forming cumulative distribution function...") p <- integrate.dh(d, dlist, integ.opts, what="density") } } h <- function(x, ...){ d(x,...)/(1 - p(x,...)) } } } if (!exists("H", inherits=FALSE)){ if (exists(Hname)) H <- get(Hname) else { if (!exists("p")) { if (exists(pname)) p <- get(pname) } if (exists("p")){ H <- function(x, ...){ -log(1 - p(x, ...)) } } else { message("Forming integrated hazard function...") H <- integrate.dh(h, dlist, integ.opts, what="hazard") } } } if (!exists("p", inherits=FALSE)){ if (exists(pname)) p <- get(pname) else { p <- function(q, ...) { ret <- 1 - exp(-H(q, ...)) # ret[q==Inf] <- 1 # should have been handled already in cum.fn # ret[q==0] <- 0 ret ### TODO special values in other functions } } } if (!exists("q", inherits=FALSE)){ if (exists(qname)) q <- get(qname) else { # giving this another name to avoid scoping issues # w/ name p also being an argument to q functions pfun <- p q <- function(p, ...) qgeneric(pfun, p, ...) } } if (!exists("d", inherits=FALSE)){ if (exists(dname)) d <- get(dname) else { d <- function(x, log=FALSE, ...) { if (log) log(h(x,...)) + log(1 - p(x, ...)) else h(x,...) * (1 - p(x, ...)) } } } if (!exists("rmst", inherits=FALSE)){ if (exists(rmstname)) rmst <- get(rmstname) else { message("Forming integrated rmst function...") rmst <- function(t, start=0, ...) rmst_generic(p, t=t, start=start, ...) } } if (!exists("meanf", inherits=FALSE)){ if (exists(rmstname)) meanf <- get(meanname) else { message("Forming integrated mean function...") meanf <- function(start=0, ...) rmst(t=Inf, start=start, ...) } } if (!exists("r", inherits=FALSE)){ if (exists(rname)) r <- get(rname) else r <- NULL ## random sampling function is currently only used for multi-state models } ## Check for existence of derivative functions ## conventionally called DLd, DLs ## dfns$deriv can be set to FALSE by user to ignore any derivatives that exist, but this feature is undocumented/unused. if (is.function(dfns$DLd)) DLd <- dfns$DLd else if (is.null(dfns$deriv) && exists(paste0("DLd",name))) DLd <- get(paste0("DLd",name)) else DLd <- NULL if (is.function(dfns$DLS)) DLS <- dfns$DLS else if (is.null(dfns$deriv) && exists(paste0("DLS",name))) DLS <- get(paste0("DLS",name)) else DLS <- NULL ## Likewise, check for second derivative functions if (is.function(dfns$D2Ld)) D2Ld <- dfns$D2Ld else if (is.null(dfns$hessian) && exists(paste0("D2Ld",name))) D2Ld <- get(paste0("D2Ld",name)) else D2Ld <- NULL if (is.function(dfns$D2LS)) D2LS <- dfns$D2LS else if (is.null(dfns$hessian) && exists(paste0("D2LS",name))) D2LS <- get(paste0("D2LS",name)) else D2LS <- NULL list(p=p, d=d, h=h, H=H, r=r, DLd=DLd, DLS=DLS, D2Ld=D2Ld, D2LS=D2LS, rmst=rmst, mean= meanf, q=q, deriv = !is.null(DLd) && !is.null(DLS), hessian = !is.null(D2Ld) && !is.null(D2LS) ) } ## Produce cumulative version of hazard function or density function ## by numerical integration integrate.dh <- function(fn, dlist, integ.opts, what="dens"){ cum.fn <- function(q, ...){ args <- list(...) pars <- as.list(dlist$pars) names(pars) <- dlist$pars args.done <- numeric() ## if argument is unnamed, assume it is supplied in the default order for (i in seq_along(dlist$pars)){ if(any(names(args)==dlist$pars[i])) { pars[[i]] <- args[[dlist$pars[i]]] args.done <- c(args.done, match(dlist$pars[i], names(args))) } else { pars[[i]] <- args[[i]] args.done <- c(args.done, i) } } ## any auxiliary arguments not in main distribution parameters rest <- args[setdiff(seq_along(args), args.done)] ## replicate all arguments to have the length of the longest one (=n) n <- max(sapply(c(list(q),pars), length)) q <- rep(q, length.out=n) for (i in seq_along(pars)) pars[[i]] <- rep(pars[[i]], length.out=n) ret <- numeric(n) du <- function(u, ...)fn(u,...) ## then return a vector of length n for (i in 1:n){ parsi <- lapply(pars, function(x)x[i]) int.args <- c(list(f=du, lower=0, upper=q[i]), parsi, rest, integ.opts) if (q[i]==0) ret[i] <- 0 else if (q[i]==Inf) { if (what=="density") ret[i] <- 1 else if (what=="hazard") ret[i] <- Inf } else { int <- try(do.call("integrate", int.args)) ret[i] <- int$value } } ret } cum.fn } flexsurv/R/ajfit.R0000644000176200001440000001045614472153214013562 0ustar liggesusers##' Check the fit of Markov flexible parametric multi-state models against ##' nonparametric estimates. ##' ##' Computes both parametric and comparable Aalen-Johansen nonparametric ##' estimates from a flexible parametric multi-state model, and returns them ##' together in a tidy data frame. Only models with no covariates, or only ##' factor covariates, are supported. If there are factor covariates, then the ##' nonparametric estimates are computed for subgroups defined by combinations ##' of the covariates. Another restriction of this function is that all ##' transitions must have the same covariates on them. ##' ##' @param x Object returned by \code{\link{fmsm}} representing a flexible ##' parametric multi-state model. This must be Markov, rather than ##' semi-Markov, and no check is performed for this. Note that all ##' "competing risks" style models, with just one source state and multiple ##' destination states, are Markov, so those are fine here. ##' ##' @param maxt Maximum time to compute parametric estimates to. ##' ##' @param newdata Data frame defining the subgroups to consider. This must ##' have a column for each covariate in the model. If omitted, then all ##' potential subgroups defined by combinations of factor covariates are ##' included. Continuous covariates are not supported. ##' ##' ##' ##' @return Tidy data frame containing both Aalen-Johansen and parametric ##' estimates of state occupancy over time, and by subgroup if subgroups are ##' included. ##' ##' @export ajfit_fmsm <- function(x, maxt=NULL, newdata=NULL){ dat <- x[[1]]$data$m covnames <- attr(dat,"covnames") faccovs <- sapply(dat[,covnames], is.factor) if (!all(faccovs)) stop("Nonparametric estimation not supported with non-factor covariates") covs <- lapply(x, function(x)attr(x$data$m, "covnames")) if (length(covs)>1){ for (i in 2:length(covs)){ if(!identical(covs[[i]], covs[[1]])) stop("Not currently supported with different covariates on different transitions") } } if (is.null(newdata)) newdata <- do.call(expand.grid, lapply(dat[,covnames,drop=FALSE], levels)) else if (is.list(newdata)) newdata <- as.data.frame(newdata) else stop("`newdata` should be a data frame") nmods <- length(x) datlist <- vector(nmods, mode="list") for (j in 1:nmods){ datlist[[j]] <- x[[j]]$data$m names(datlist[[j]])[1] <- "(response)" datlist[[j]]$trans <- j } dat <- do.call(dplyr::bind_rows, datlist) dat$trans <- factor(dat$trans, labels=attr(x,"names")) ## remove interval censored dat <- dat[dat$`(response)`[,"status"] != 3,] dat$time <- dat[,1][,1] dat$status <- dat[,1][,"status"] ncovvals <- nrow(newdata) if (ncovvals==0) ncovvals <- 1 pt <- vector(ncovvals, mode="list") for (i in 1:ncovvals) { datsub <- dat for (j in seq_along(covnames)) datsub <- datsub[datsub[,covnames[j]] == newdata[i,covnames[j]],] cf <- coxph(Surv(time, status) ~ strata(trans), data=datsub) ms <- msfit(cf, trans=attr(x,"trans")) pt[[i]] <- probtrans(ms, predt=0, variance=FALSE)[[1]] covvals <- newdata[i,,drop=FALSE][rep(1,nrow(pt[[i]])),,drop=FALSE] pt[[i]] <- cbind(pt[[i]], covvals) } pt <- do.call(dplyr::bind_rows, pt) nstates <- length(attr(x,"statenames")) names(pt)[names(pt) %in% paste0("pstate",1:nstates)] <- attr(x,"statenames") pt$model <- "Aalen-Johansen" ## Estimates from parametric competing risks model pmat <- vector(ncovvals, mode="list") if (is.null(maxt)) maxt <- max(pt$time) times <- seq(0, maxt, length.out=100) for (i in 1:ncovvals){ # note newdata doesn't support multiple covs pmat[[i]] <- pmatrix.fs(x, newdata=newdata[i,,drop=FALSE], start=1, t=times, tidy=TRUE, ci=FALSE) covvals <- newdata[i,,drop=FALSE][rep(1,nrow(pmat[[i]])),,drop=FALSE] pmat[[i]] <- cbind(pmat[[i]], covvals) } pmat <- do.call(dplyr::bind_rows, pmat) pmat <- pmat[pmat$start==1,,drop=FALSE] pmat$start <- NULL pmat$model <- "Parametric" cols <- c("time",covnames,"model",attr(x,"statenames")) res <- rbind(pt[,cols], pmat[,cols]) res <- tidyr::pivot_longer(res, cols=tidyselect::all_of(attr(x,"statenames")), names_to="state", values_to="val") res } flexsurv/R/Exp.R0000644000176200001440000000231514203407406013211 0ustar liggesusers### Hazard and cumulative hazard functions for R built in ### distributions. Where possible, use more numerically stable ### formulae than d/(1-p) and -log(1-p) ##' @export ##' @rdname hazard hexp <- function(x, rate=1, log=FALSE){ h <- dbase("exp", log=log, x=x, rate=rate) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) ret[ind] <- if (log) log(rate) else rate ret } ##' @export ##' @rdname hazard Hexp <- function(x, rate=1, log=FALSE){ h <- dbase("exp", log=log, x=x, rate=rate) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) ret[ind] <- if (log) {log(rate) + log(x)} else rate*x ret } check.exp <- function(rate=1){ ret <- rep(TRUE, length(rate)) if (any(!is.na(rate) & rate<0)) {warning("Negative rate parameter"); ret[!is.na(rate) & rate<0] <- FALSE} ret } ##' @export ##' @rdname means mean_exp <- function(rate=1) { 1/rate } ##' @export ##' @rdname means rmst_exp <- function(t, rate=1,start=0){ p_start = pexp(start, rate=rate) auc_full = mean_exp(rate=rate) auc_right = auc_full * (1-pexp(t, rate=rate)) auc_left = auc_full * p_start auc_uncond = auc_full - auc_right - auc_left auc_uncond/(1-p_start) } var.exp <- function(rate=1) { 1/rate^2 } flexsurv/R/deriv.R0000644000176200001440000002250214603753150013572 0ustar liggesusers## Deriv of loglik wrt transformed parameters p ## loglik(p|x) = sum(log(f(p|xobs))) + sum(log(S(p|xcens))) - sum(log(S(p|xtrunc))) ## dloglik/dp = sum (df/dp / f(p)) | xobs) + sum(dS/dp / S(p) | xcens) - sum(dS/dp / S(p) | xtrunc) ## = sum(dlogf/dp | xobs) + sum(dlogS/dp | xcens) - sum(dlogS/dp | xtrunc) Dminusloglik.flexsurv <- function(optpars, Y, X=0, weights, bhazard, rtrunc, dlist, inits, dfns, aux, mx, fixedpars=NULL) { pars <- inits npars <- length(pars) pars[setdiff(seq_len(npars), fixedpars)] <- optpars nbpars <- length(dlist$pars) pars <- as.list(pars) ncovs <- length(pars) - length(dlist$pars) if (ncovs > 0) beta <- unlist(pars[(nbpars+1):npars]) for (i in dlist$pars) { if (length(mx[[i]]) > 0) pars[[i]] <- pars[[i]] + X[,mx[[i]],drop=FALSE] %*% beta[mx[[i]]] else pars[[i]] <- rep(pars[[i]], length(Y[,"stop"])) } dead <- Y[,"status"]==1 ddcall <- list(t=Y[dead,"stop"]) dsccall <- list(t=Y[!dead,"stop"]) dstcall <- list(t=Y[,"start"]) for (i in 1:nbpars) ddcall[[names(pars)[i]]] <- dsccall[[names(pars)[i]]] <- dstcall[[names(pars)[i]]] <- dlist$inv.transforms[[i]](pars[[i]]) for (i in seq_along(aux)){ ddcall[[names(aux)[i]]] <- dsccall[[names(aux)[i]]] <- dstcall[[names(aux)[i]]] <- aux[[i]] } for (i in dlist$pars) { ddcall[[i]] <- ddcall[[i]][dead] dsccall[[i]] <- dsccall[[i]][!dead] } nobs <- nrow(Y) dloglik <- matrix(nrow=nobs, ncol=npars) dloglik[dead,] <- dderiv(dfns$DLd, ddcall, X[dead,,drop=FALSE], mx, dlist) dloglik[!dead,] <- dderiv(dfns$DLS, dsccall, X[!dead,,drop=FALSE], mx, dlist) dstrunc <- dderiv(dfns$DLS, dstcall, X, mx, dlist) dloglik <- dloglik - dstrunc ## Derivatives with baseline hazard. ## adjust dd, dscens and dstrunc. cens and trunc terms don't depend on pars ## Add deriv of log(1 + (1/h) * bh/w) just for uncensored event ## 1 / (1 + (1/h)*bh/w) * -h^{-2}bh/w * dh ## and h = f * S^-1, so dh = df*s^-1 + f * -s^-2 * ds) if (any(bhazard > 0)) { dcall <- ddcall dcall$x <- ddcall$t; dcall$t <- NULL dens <- do.call(dfns$d, dcall) pcall <- dcall pcall$q <- pcall$x; pcall$x <- NULL surv <- 1 - do.call(dfns$p, pcall) haz <- dens / surv offseti <- 1 / (1 + bhazard[dead] / haz) ## Note d/dx log(x) = 1/x ddx dscense <- dderiv(dfns$DLS, ddcall, X[dead,,drop=FALSE], mx, dlist) doff <- - offseti*bhazard[dead] * (dloglik[dead,] - dscense)/ haz dloglik[dead,] <- dloglik[dead,] + doff } res <- - colSums(dloglik*weights) ## currently wastefully calculates derivs for fixed pars then discards them res[setdiff(1:npars, fixedpars)] } dderiv <- function(ddfn, ddcall, X, mx, dlist){ if (length(ddcall$t) == 0) array(dim=c(0,length(dlist$pars))) else { res.base <- do.call(ddfn, ddcall) res.beta <- Dcov(res.base, X, mx, dlist) cbind(res.base, res.beta) } } ## Derivatives of log density with respect to covariate effects are ## just found by an easy chain rule given the baseline derivatives and ## the covariate value: the parameter on the real-line scale is always ## a linear function of covariates. Dcov <- function(res, X, mx, dlist){ ncoveffs <- length(unlist(mx)) cres <- matrix(nrow=nrow(res), ncol=ncoveffs) inds <- c(0,cumsum(sapply(mx,length))) ## parameters of res ordered as distribution definition, but mx ordered with location first ## mx is a list, with one component per survival distribution parameter ## ith component contains indexes of cols of X that are included in regression for ith parameter for (i in seq_along(mx)) { for (j in seq_along(mx[[i]])){ cres[,inds[i]+j] <- X[,mx[[i]][j]]*res[,match(names(mx)[i], dlist$pars)] } } cres } ## Derivatives of log density and log survival probability with ## respect to baseline parameters for various distributions. Baseline ## parameters are on the real-line scale, commonly the log scale. No ## easy derivatives available for other distributions. ## Naming: names refer to natural scale pars, but derivatives are taken with respect to transformed scale pars ## Transformed scale is log scale for positive pars. Unrestricted pars (e.g. Gompertz shape) not transformed ## Exponential DLdexp <- function(t, rate){ res <- matrix(nrow=length(t), ncol=1) colnames(res) <- c("rate") ts <- 1 - t*rate res[,"rate"] <- ts res } DLSexp <- function(t, rate){ res <- matrix(nrow=length(t), ncol=1) colnames(res) <- c("rate") res[,"rate"] <- -t*rate res } ## Weibull accelerated failure time DLdweibull <- function(t, shape, scale){ res <- matrix(nrow=length(t), ncol=2) colnames(res) <- c("shape","scale") tss <- (t/scale)^shape lts <- log(t/scale) res[,"shape"] <- 1 + shape*lts*(1 - tss) res[,"scale"] <- -1 - (shape-1) + shape*tss res } DLSweibull <- function(t, shape, scale){ res <- matrix(nrow=length(t), ncol=2) colnames(res) <- c("shape","scale") tss <- (t/scale)^shape res[,"shape"] <- ifelse(t==0, 0, -shape*log(t/scale)*tss) res[,"scale"] <- tss*shape res } DLdweibull.quiet <- DLdweibull DLSweibull.quiet <- DLSweibull ## Weibull proportional hazards DLdweibullPH <- function(t, shape, scale){ res <- matrix(nrow=length(t), ncol=2) colnames(res) <- c("shape","scale") res[,"shape"] <- 1 + shape*log(t)*(1 - scale*t^shape) res[,"scale"] <- 1 - scale*t^shape res } DLSweibullPH <- function(t, shape, scale){ res <- matrix(nrow=length(t), ncol=2) colnames(res) <- c("shape","scale") res[,"shape"] <- ifelse(t==0, 0, -scale*shape*log(t)*t^shape) res[,"scale"] <- -scale*t^shape res } ## Gompertz (note this is derivative wrt shape and log rate) DLdgompertz <- function(t, shape, rate){ res <- matrix(nrow=length(t), ncol=2) colnames(res) <- c("shape","rate") res[shape==0,"shape"] <- 0 res[shape==0,"rate"] <- 1 - rate[shape==0] * t[shape==0] sn0 <- (shape!=0) t <- t[sn0]; rate <- rate[sn0]; shape <- shape[sn0] est <- exp(shape*t) res[sn0,"shape"] <- t + -rate/shape*(1/shape*(1 - est) + t*est) res[sn0,"rate"] <- 1 + rate/shape*(1 - est) res } DLSgompertz <- function(t, shape, rate){ res <- matrix(nrow=length(t), ncol=2) colnames(res) <- c("shape","rate") res[shape==0,"shape"] <- 0 res[shape==0,"rate"] <- - rate[shape==0] * t[shape==0] sn0 <- (shape!=0) t <- t[sn0]; rate <- rate[sn0]; shape <- shape[sn0] est <- exp(shape*t) res[sn0,"shape"] <- -rate/shape*(1/shape*(1 - est) + t*est) res[sn0,"rate"] <- rate/shape*(1 - est) res } DLdsurvspline <- function(t, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp"){ d <- dbase.survspline(q=t, gamma=gamma, knots=knots, scale=scale, deriv=1, spline=spline) for (i in seq_along(d)) assign(names(d)[i], d[[i]]); t <- q b <- basis(knots, tsfn(t,timescale), spline=spline) db <- dbasis(knots, tsfn(t,timescale), spline=spline) eta <- rowSums(b * gamma) + as.numeric(X %*% beta) ds <- rowSums(db * gamma) npars <- ncol(gamma) parnames <- paste0("gamma", seq_len(npars)-1) colnames(ret) <- parnames for (i in 1:ncol(gamma)){ if (scale=="hazard") ret[ind,i] <- db[,i] / ds + b[,i] * (1 - exp(eta)) else if (scale=="odds"){ eeta <- 1 - 2*exp(eta)/(1 + exp(eta)) ret[ind,i] <- db[,i] / ds + b[,i] * eeta } } ret } DLSsurvspline <- function(t, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp"){ d <- dbase.survspline(q=t, gamma=gamma, knots=knots, scale=scale, deriv=1, spline=spline) for (i in seq_along(d)) assign(names(d)[i], d[[i]]); t <- q b <- basis(knots, tsfn(t,timescale), spline=spline) if (any(ind)){ eta <- rowSums(b * gamma) + as.numeric(X %*% beta) for (i in 1:ncol(gamma)){ if (scale=="hazard") ret[ind,i] <- ifelse(t==0, 0, - b[,i] * exp(eta)) else if (scale=="odds"){ eeta <- exp(eta)/(1 + exp(eta)) ret[ind,i] <- ifelse(t==0, 0, - b[,i] * eeta) } } } ret } #' @noRd deriv_test <- function(optpars, Y, X, weights, bhazard, rtrunc, dlist, inits, dfns, aux, mx, fixedpars){ an.d <- Dminusloglik.flexsurv(optpars=optpars, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars) if (requireNamespace("numDeriv", quietly = TRUE)) num.d <- numDeriv::grad(minusloglik.flexsurv, optpars, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars) else stop("\"numDeriv\" package not available") res <- cbind(analytic=an.d, numeric=as.vector(num.d)) rownames(res) <- names(optpars) list(res=res, error=mean(abs(an.d - num.d))) } flexsurv/R/survsplinek.R0000644000176200001440000005443614603752643015067 0ustar liggesusers##' Royston/Parmar spline survival distribution functions with one argument per parameter ##' ##' Probability density, distribution, quantile, random generation, hazard, ##' cumulative hazard, mean and restricted mean functions for the Royston/Parmar ##' spline model, with one argument per parameter. For the equivalent functions with all parameters collected together in a single argument, see \code{\link{Survspline}}. ##' ##' These functions go up to 7 spline knots, or 9 parameters. ##' ##' @aliases dsurvspline0 dsurvspline1 dsurvspline2 dsurvspline3 dsurvspline4 dsurvspline5 dsurvspline6 dsurvspline7 psurvspline0 psurvspline1 psurvspline2 psurvspline3 psurvspline4 psurvspline5 psurvspline6 psurvspline7 qsurvspline0 qsurvspline1 qsurvspline2 qsurvspline3 qsurvspline4 qsurvspline5 qsurvspline6 qsurvspline7 rsurvspline0 rsurvspline1 rsurvspline2 rsurvspline3 rsurvspline4 rsurvspline5 rsurvspline6 rsurvspline7 hsurvspline0 hsurvspline1 hsurvspline2 hsurvspline3 hsurvspline4 hsurvspline5 hsurvspline6 hsurvspline7 Hsurvspline0 Hsurvspline1 Hsurvspline2 Hsurvspline3 Hsurvspline4 Hsurvspline5 Hsurvspline6 Hsurvspline7 mean_survspline0 mean_survspline1 mean_survspline2 mean_survspline3 mean_survspline4 mean_survspline5 mean_survspline6 mean_survspline7 rmst_survspline0 rmst_survspline1 rmst_survspline2 rmst_survspline3 rmst_survspline4 rmst_survspline5 rmst_survspline6 rmst_survspline7 ##' ##' ##' @param gamma0,gamma1,gamma2,gamma3,gamma4,gamma5,gamma6,gamma7,gamma8 Parameters describing the baseline spline function, as ##' described in \code{\link{flexsurvspline}}. ##' ##' @inheritParams Survspline ##' ##' @author Christopher Jackson ##' ##' @name Survsplinek NULL ##' @rdname Survsplinek ##' @export mean_survspline0 <- function(gamma0, gamma1, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp"){ mean_survspline(gamma=cbind(gamma0, gamma1), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export mean_survspline1 <- function(gamma0, gamma1, gamma2, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp"){ mean_survspline(gamma=cbind(gamma0, gamma1, gamma2), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export mean_survspline2 <- function(gamma0, gamma1, gamma2, gamma3, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp"){ mean_survspline(gamma=cbind(gamma0, gamma1, gamma2, gamma3), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export mean_survspline3 <- function(gamma0, gamma1, gamma2, gamma3, gamma4, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp"){ mean_survspline(gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export mean_survspline4 <- function(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp"){ mean_survspline(gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export mean_survspline5 <- function(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp"){ mean_survspline(gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export mean_survspline6 <- function(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp"){ mean_survspline(gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export mean_survspline7 <- function(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp"){ mean_survspline(gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export rmst_survspline0 <- function(t, gamma0, gamma1, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp", start=0){ rmst_survspline(t, gamma=cbind(gamma0, gamma1), knots=knots, scale=scale, timescale=timescale, spline=spline, start=start) } ##' @rdname Survsplinek ##' @export rmst_survspline1 <- function(t, gamma0, gamma1, gamma2, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp", start=0){ rmst_survspline(t, gamma=cbind(gamma0, gamma1, gamma2), knots=knots, scale=scale, timescale=timescale, spline=spline, start=start) } ##' @rdname Survsplinek ##' @export rmst_survspline2 <- function(t, gamma0, gamma1, gamma2, gamma3, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp", start=0){ rmst_survspline(t, gamma=cbind(gamma0, gamma1, gamma2, gamma3), knots=knots, scale=scale, timescale=timescale, spline=spline, start=start) } ##' @rdname Survsplinek ##' @export rmst_survspline3 <- function(t, gamma0, gamma1, gamma2, gamma3, gamma4, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp", start=0){ rmst_survspline(t, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4), knots=knots, scale=scale, timescale=timescale, spline=spline, start=start) } ##' @rdname Survsplinek ##' @export rmst_survspline4 <- function(t, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp", start=0){ rmst_survspline(t, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5), knots=knots, scale=scale, timescale=timescale, spline=spline, start=start) } ##' @rdname Survsplinek ##' @export rmst_survspline5 <- function(t, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp", start=0){ rmst_survspline(t, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6), knots=knots, scale=scale, timescale=timescale, spline=spline, start=start) } ##' @rdname Survsplinek ##' @export rmst_survspline6 <- function(t, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp", start=0){ rmst_survspline(t, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7), knots=knots, scale=scale, timescale=timescale, spline=spline, start=start) } ##' @rdname Survsplinek ##' @export rmst_survspline7 <- function(t, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots=c(-10, 10), scale="hazard", timescale="log", spline="rp", start=0){ rmst_survspline(t, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8), knots=knots, scale=scale, timescale=timescale, spline=spline, start=start) } ##' @rdname Survsplinek ##' @export dsurvspline0 <- function(x, gamma0, gamma1, knots, scale="hazard", timescale="log", spline="rp", log=FALSE){ dsurvspline(x, gamma=cbind(gamma0, gamma1), knots=knots, scale=scale, timescale=timescale, spline=spline, log=log) } ##' @rdname Survsplinek ##' @export dsurvspline1 <- function(x, gamma0, gamma1, gamma2, knots, scale="hazard", timescale="log", spline="rp", log=FALSE){ dsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2), knots=knots, scale=scale, timescale=timescale, spline=spline, log=log) } ##' @rdname Survsplinek ##' @export dsurvspline2 <- function(x, gamma0, gamma1, gamma2, gamma3, knots, scale="hazard", timescale="log", spline="rp", log=FALSE){ dsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3), knots=knots, scale=scale, timescale=timescale, spline=spline, log=log) } ##' @rdname Survsplinek ##' @export dsurvspline3 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale="hazard", timescale="log", spline="rp", log=FALSE){ dsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4), knots=knots, scale=scale, timescale=timescale, spline=spline, log=log) } ##' @rdname Survsplinek ##' @export dsurvspline4 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale="hazard", timescale="log", spline="rp", log=FALSE){ dsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5), knots=knots, scale=scale, timescale=timescale, spline=spline, log=log) } ##' @rdname Survsplinek ##' @export dsurvspline5 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale="hazard", timescale="log", spline="rp", log=FALSE){ dsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6), knots=knots, scale=scale, timescale=timescale, spline=spline, log=log) } ##' @rdname Survsplinek ##' @export dsurvspline6 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale="hazard", timescale="log", spline="rp", log=FALSE){ dsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7), knots=knots, scale=scale, timescale=timescale, spline=spline, log=log) } ##' @rdname Survsplinek ##' @export dsurvspline7 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale="hazard", timescale="log", spline="rp", log=FALSE){ dsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8), knots=knots, scale=scale, timescale=timescale, spline=spline, log=log) } ##' @rdname Survsplinek ##' @export psurvspline0 <- function(q, gamma0, gamma1, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ psurvspline(q, gamma=cbind(gamma0, gamma1), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export psurvspline1 <- function(q, gamma0, gamma1, gamma2, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ psurvspline(q, gamma=cbind(gamma0, gamma1, gamma2), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export psurvspline2 <- function(q, gamma0, gamma1, gamma2, gamma3, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ psurvspline(q, gamma=cbind(gamma0, gamma1, gamma2, gamma3), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export psurvspline3 <- function(q, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ psurvspline(q, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export psurvspline4 <- function(q, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ psurvspline(q, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export psurvspline5 <- function(q, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ psurvspline(q, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export psurvspline6 <- function(q, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ psurvspline(q, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export psurvspline7 <- function(q, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ psurvspline(q, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export qsurvspline0 <- function(p, gamma0, gamma1, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ qsurvspline(p, gamma=cbind(gamma0, gamma1), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export qsurvspline1 <- function(p, gamma0, gamma1, gamma2, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ qsurvspline(p, gamma=cbind(gamma0, gamma1, gamma2), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export qsurvspline2 <- function(p, gamma0, gamma1, gamma2, gamma3, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ qsurvspline(p, gamma=cbind(gamma0, gamma1, gamma2, gamma3), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export qsurvspline3 <- function(p, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ qsurvspline(p, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export qsurvspline4 <- function(p, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ qsurvspline(p, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export qsurvspline5 <- function(p, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ qsurvspline(p, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export qsurvspline6 <- function(p, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ qsurvspline(p, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export qsurvspline7 <- function(p, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale="hazard", timescale="log", spline="rp", lower.tail=TRUE, log.p=FALSE){ qsurvspline(p, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8), knots=knots, scale=scale, timescale=timescale, spline=spline, lower.tail=lower.tail, log.p=log.p) } ##' @rdname Survsplinek ##' @export rsurvspline0 <- function(n, gamma0, gamma1, knots, scale="hazard", timescale="log", spline="rp"){ rsurvspline(n, gamma=cbind(gamma0, gamma1), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export rsurvspline1 <- function(n, gamma0, gamma1, gamma2, knots, scale="hazard", timescale="log", spline="rp"){ rsurvspline(n, gamma=cbind(gamma0, gamma1, gamma2), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export rsurvspline2 <- function(n, gamma0, gamma1, gamma2, gamma3, knots, scale="hazard", timescale="log", spline="rp"){ rsurvspline(n, gamma=cbind(gamma0, gamma1, gamma2, gamma3), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export rsurvspline3 <- function(n, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale="hazard", timescale="log", spline="rp"){ rsurvspline(n, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export rsurvspline4 <- function(n, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale="hazard", timescale="log", spline="rp"){ rsurvspline(n, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export rsurvspline5 <- function(n, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale="hazard", timescale="log", spline="rp"){ rsurvspline(n, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export rsurvspline6 <- function(n, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale="hazard", timescale="log", spline="rp"){ rsurvspline(n, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export rsurvspline7 <- function(n, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale="hazard", timescale="log", spline="rp"){ rsurvspline(n, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export hsurvspline0 <- function(x, gamma0, gamma1, knots, scale="hazard", timescale="log", spline="rp"){ hsurvspline(x, gamma=cbind(gamma0, gamma1), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export hsurvspline1 <- function(x, gamma0, gamma1, gamma2, knots, scale="hazard", timescale="log", spline="rp"){ hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export hsurvspline2 <- function(x, gamma0, gamma1, gamma2, gamma3, knots, scale="hazard", timescale="log", spline="rp"){ hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export hsurvspline3 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale="hazard", timescale="log", spline="rp"){ hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export hsurvspline4 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale="hazard", timescale="log", spline="rp"){ hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export hsurvspline5 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale="hazard", timescale="log", spline="rp"){ hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export hsurvspline6 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale="hazard", timescale="log", spline="rp"){ hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export hsurvspline7 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale="hazard", timescale="log", spline="rp"){ hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export Hsurvspline0 <- function(x, gamma0, gamma1, knots, scale="hazard", timescale="log", spline="rp"){ Hsurvspline(x, gamma=cbind(gamma0, gamma1), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export Hsurvspline1 <- function(x, gamma0, gamma1, gamma2, knots, scale="hazard", timescale="log", spline="rp"){ Hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export Hsurvspline2 <- function(x, gamma0, gamma1, gamma2, gamma3, knots, scale="hazard", timescale="log", spline="rp"){ Hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export Hsurvspline3 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale="hazard", timescale="log", spline="rp"){ Hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export Hsurvspline4 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale="hazard", timescale="log", spline="rp"){ Hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export Hsurvspline5 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale="hazard", timescale="log", spline="rp"){ Hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export Hsurvspline6 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale="hazard", timescale="log", spline="rp"){ Hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7), knots=knots, scale=scale, timescale=timescale, spline=spline) } ##' @rdname Survsplinek ##' @export Hsurvspline7 <- function(x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale="hazard", timescale="log", spline="rp"){ Hsurvspline(x, gamma=cbind(gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8), knots=knots, scale=scale, timescale=timescale, spline=spline) } flexsurv/R/fracpoly.R0000644000176200001440000000263514471621547014314 0ustar liggesusers### simplified version of gamlss::bfp with no shift or scale #nocov start bfp <- function (x, powers = c(1, 2)) { nobs <- length(x) npoly <- length(powers) X <- matrix(0, nrow = nobs, ncol = npoly) x1 <- ifelse(powers[1] != rep(0, nobs), x^powers[1], log(x)) X[, 1] <- x1 if (npoly >= 2) { for (i in 2:npoly) { if (powers[i] == powers[(i - 1)]) x2 <- log(x) * x1 else x2 <- ifelse(powers[i] != rep(0, nobs), x^powers[i], log(x)) X[, i] <- x2 x1 <- x2 } } X } dbfp <- function (x, powers = c(1, 2)) { nobs <- length(x) npoly <- length(powers) X <- matrix(0, nrow = nobs, ncol = npoly) x1 <- ifelse(powers[1] != rep(0, nobs), x^powers[1], log(x)) dx1 <- ifelse(powers[1] != rep(0, nobs), powers[1]*x^{powers[1]-1}, 1/x) X[, 1] <- dx1 if (npoly >= 2) { for (i in 2:npoly) { if (powers[i] == powers[(i - 1)]) { x2 <- log(x) * x1 dx2 <- log(x) * dx1 + 1/x * x1 } else { x2 <- ifelse(powers[i] != rep(0, nobs), x^powers[i], log(x)) dx2 <- ifelse(powers[i] != rep(0, nobs), powers[i]*x^{powers[i]-1}, 1/x) } X[, i] <- dx2 x1 <- x2 dx1 <- dx2 } } X } #nocov end flexsurv/R/pexp.R0000644000176200001440000000335614155156771013453 0ustar liggesusers## more sensible to reparametersise as baserate, timehr? then trt eff on baserate gives a PH model ## or is trt eff only in first period a sensible model? ## either way might want utilities to describe various kinds of fitted curves hpexp <- function(t, rate, knots){ check_pexp(rate, knots) knots <- sort(knots) rate[findInterval(t, knots) + 1] } ## TODO check t is valid. return zero for zero, other special values? Hpexp <- function(t, rate, knots){ check_pexp(rate, knots) k0 <- c(0,knots) int <- findInterval(t, k0) dk <- diff(k0) cumrate <- c(0, cumsum(dk*rate[-length(rate)])) # cumulative rate up to each knot cumrate[int] + rate[int]*(t - k0[int]) # add on the remainder for each t } ## TODO handle special values for rate check_pexp <- function(rate, knots){ if (!is.numeric(rate)) stop("`rate` should be numeric") if (!is.numeric(knots)) stop("`knots` should be numeric") if (any(knots <= 0)) stop("`knots` should all be positive") nr <- length(rate) nk <- length(knots) if (nr != nk + 1) stop(sprintf("found nr=%s rates and nk=%s knots, should have nr = nk+1", nr, nk)) } hpw <- function(knots){ nk <- length(knots) unroll.function(hpexp, rate=0:nk) } Hpw <- function(knots){ nk <- length(knots) unroll.function(Hpexp, rate=0:nk) } custom_pw <- function(knots){ nk <- length(knots) list(name = "pw", pars = paste0("rate", 0:nk), location = "rate0", transforms = rep(list(log), nk+1), inv.transforms = rep(list(exp), nk+1), inits = function(t,aux) {lam <- sr.exp.inits(t,aux); rep(lam, nk+1)}) } ## todo d, p functions? q? r even? copy from msm? flexsurv/R/deriv2.R0000644000176200001440000002755514603725274013677 0ustar liggesusers## Second derivatives of the log density and log survival ## with respect to parameters on transformed scales ## The transformed scale is log scale for positive parameters ## Gompertz shape is unrestricted D2Ldexp <- function(t, rate){ res <- array(dim=c(length(t), 1, 1)) parnames <- "rate" dimnames(res) <- list(NULL, parnames, parnames) ts <- - t*rate res[,"rate","rate"] <- ts res } D2LSexp <- function(t, rate){ res <- array(dim=c(length(t), 1, 1)) parnames <- "rate" dimnames(res) <- list(NULL, parnames, parnames) res[,"rate","rate"] <- -t*rate res } D2Ldweibull <- function(t, shape, scale){ res <- array(dim=c(length(t), 2, 2)) parnames <- c("shape","scale") dimnames(res) <- list(NULL, parnames, parnames) tss <- (t/scale)^shape lts <- log(t/scale) res[,"shape","shape"] <- ifelse(t==0, 0, shape*lts*(1 - tss - shape*lts*tss)) res[,"scale","scale"] <- -shape^2*tss res[,"shape","scale"] <- res[,"scale","shape"] <- ifelse(t==0, 0, shape*(tss - 1 + shape*lts*tss)) res } D2LSweibull <- function(t, shape, scale){ res <- array(dim=c(length(t), 2, 2)) parnames <- c("shape","scale") dimnames(res) <- list(NULL, parnames, parnames) tss <- (t/scale)^shape lts <- log(t/scale) res[,"shape","shape"] <- ifelse(t==0, 0, -shape*lts*tss*(1 + shape*lts)) res[,"scale","scale"] <- -shape^2*tss res[,"shape","scale"] <- res[,"scale","shape"] <- ifelse(t==0, 0, shape*tss*(1 + shape*lts)) res } D2Ldweibull.quiet <- D2Ldweibull D2LSweibull.quiet <- D2LSweibull D2LdweibullPH <- function(t, shape, scale){ res <- array(dim=c(length(t), 2, 2)) parnames <- c("shape","scale") dimnames(res) <- list(NULL, parnames, parnames) tss <- (t/scale)^shape lts <- log(t/scale) res[,"shape","shape"] <- ifelse(t==0, 0, shape*log(t)*(1 - scale*t^shape*(1 + shape*log(t)))) res[,"scale","scale"] <- -scale*t^shape res[,"shape","scale"] <- res[,"scale","shape"] <- ifelse(t==0, 0, -scale*shape*log(t)*t^shape) res } D2LSweibullPH <- function(t, shape, scale){ res <- array(dim=c(length(t), 2, 2)) parnames <- c("shape","scale") dimnames(res) <- list(NULL, parnames, parnames) res[,"shape","shape"] <- ifelse(t==0, 0, -shape*scale*log(t)*(t^shape + shape*log(t)*t^shape)) res[,"scale","scale"] <- -scale*t^shape res[,"shape","scale"] <- res[,"scale","shape"] <- ifelse(t==0, 0, - scale * shape* log(t) * t^shape) res } D2Ldgompertz <- function(t, shape, rate){ res <- array(dim=c(length(t), 2, 2)) parnames <- c("shape","rate") dimnames(res) <- list(NULL, parnames, parnames) res[shape==0,"shape","shape"] <- 0 res[shape==0,"rate","rate"] <- - rate[shape==0]*t[shape==0] res[shape==0,"shape","rate"] <- res[shape==0,"rate","shape"] <- 0 est <- exp(shape*t) sn0 <- (shape!=0) t <- t[sn0]; rate <- rate[sn0]; shape <- shape[sn0] res[sn0,"shape","shape"] <- 2*rate/shape^3*(1 - est) + 2*rate/shape^2*t*est - rate/shape*t^2*est res[sn0,"rate","rate"] <- rate/shape*(1 - est) res[sn0,"shape","rate"] <- res[sn0,"rate","shape"] <- -rate/shape*(1/shape*(1 - est) + t*est) res } D2LSgompertz <- function(t, shape, rate){ res <- array(dim=c(length(t), 2, 2)) parnames <- c("shape","rate") dimnames(res) <- list(NULL, parnames, parnames) res[shape==0,"shape","shape"] <- 0 res[shape==0,"rate","rate"] <- -rate[shape==0]*t[shape==0] res[shape==0,"shape","rate"] <- res[shape==0,"rate","shape"] <- 0 est <- exp(shape*t) sn0 <- (shape!=0) t <- t[sn0]; rate <- rate[sn0]; shape <- shape[sn0] res[sn0,"shape","shape"] <- 2*rate/shape^3*(1 - est) + 2*rate/shape^2*t*est - rate/shape*t^2*est res[sn0,"rate","rate"] <- rate/shape*(1 - est) res[sn0,"shape","rate"] <- res[sn0,"rate","shape"] <- -rate/shape*(1/shape*(1 - est) + t*est) res } D2Ldsurvspline <- function(t, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp"){ d <- dbase.survspline(q=t, gamma=gamma, knots=knots, scale=scale, deriv=2, spline=spline) for (i in seq_along(d)) assign(names(d)[i], d[[i]]); t <- q b <- basis(knots, tsfn(t,timescale), spline=spline) db <- dbasis(knots, tsfn(t,timescale), spline=spline) eta <- rowSums(b * gamma) + as.numeric(X %*% beta) ds <- rowSums(db * gamma) if (scale=="odds") { eeta <- 2*exp(eta)/(1 + exp(eta))^2 db <- dbasis(knots, tsfn(t,timescale), spline=spline) } npars <- ncol(gamma) for (i in 1:npars){ for (j in 1:npars){ if (scale=="hazard") ret[ind,i,j] <- -db[,i]*db[,j] / ds^2 - b[,i]*b[,j] * exp(eta) else if (scale=="odds") ret[ind,i,j] <- -db[,i]*db[,j] / ds^2 - b[,i]*b[,j] * eeta } } ret } D2LSsurvspline <- function(t, gamma, beta=0, X=0, knots=c(-10,10), scale="hazard", timescale="log", spline="rp"){ tmp_gamma <- gamma tmp_t <- t tmp_knots <- knots d <- dbase.survspline(q=t, gamma=gamma, knots=knots, scale=scale, deriv=2, spline=spline) for (i in seq_along(d)) assign(names(d)[i], d[[i]]); t <- q b <- basis(knots, tsfn(t,timescale), spline=spline) npars <- ncol(gamma) if (length(t) > 0){ eta <- rowSums(b * gamma) + as.numeric(X %*% beta) if (scale=="odds") { eeta <- exp(eta)/(1 + exp(eta))^2 } for (i in 1:npars){ for (j in 1:npars){ if (scale=="hazard") ret[ind,i,j] <- ifelse(t==0, 0, - b[,i]*b[,j]*exp(eta)) else if (scale=="odds") ret[ind,i,j] <- ifelse(t==0, 0, - b[,i]*b[,j] * eeta) } } } ret } d2deriv <- function(d2dfn, ddcall, X, mx, dlist){ res.base <- do.call(d2dfn, ddcall) res.beta <- D2cov(res.base, X, mx, dlist) # does this have to be in a different function? nobs <- dim(res.base)[1] nbasepars <- dim(res.base)[2] ncoveffs <- dim(res.beta[[1]])[2] npars <- nbasepars + ncoveffs res <- array(dim = c(nobs, npars, npars)) if (length(ddcall$t) > 0){ dimnames(res)[[2]] <- dimnames(res)[[3]] <- c(colnames(res.base), colnames(X)) baseinds <- seq_len(nbasepars) res[,baseinds,baseinds] <- res.base betainds <- nbasepars + seq_len(ncoveffs) res[,betainds,betainds] <- res.beta$ccres res[,baseinds,betainds] <- res.beta$bcres res[,betainds,baseinds] <- aperm(res.beta$bcres,c(1,3,2)) } res } D2cov <- function(res, X, mx, dlist){ ncoveffs <- length(unlist(mx)) nbpars <- length(mx) bcres <- array(dim = c(nrow(res), nbpars, ncoveffs)) basepars <- dimnames(res)[[2]] # ordered as in the distribution (used for baseline pars) basepars_locfirst <- names(mx) # ordered with location parameter first (used for covariate effects) dimnames(bcres)[[2]] <- basepars_locfirst inds <- c(0,cumsum(sapply(mx[basepars_locfirst],length))) ## second derivs wrt two covariate effects ccres <- array(dim = c(nrow(res), ncoveffs, ncoveffs)) for (i in seq_len(nbpars)) { mi <- mx[[basepars_locfirst[i]]] for (j in seq_along(mi)){ for (k in seq_len(nbpars)) { mk <- mx[[basepars_locfirst[k]]] for (l in seq_along(mk)){ ccres[,inds[i]+j,inds[k]+l] <- X[,mi[j]]*X[,mk[l]]*res[,basepars_locfirst[i],basepars_locfirst[k]] } } } } ## second derivs wrt baseline par x covariate effect for (i in seq_len(nbpars)) { for (j in seq_len(nbpars)) { mj <- mx[[basepars_locfirst[j]]] for (k in seq_along(mj)){ bcres[,i,inds[j]+k] <- X[,mj[k]] * res[,basepars[i],basepars_locfirst[j]] } } } list(ccres=ccres, bcres=bcres) } D2minusloglik.flexsurv <- function(optpars, Y, X=0, weights, bhazard, rtrunc, dlist, inits, dfns, aux, mx, fixedpars=NULL) { pars <- inits npars <- length(pars) pars[setdiff(seq_len(npars), fixedpars)] <- optpars nbpars <- length(dlist$pars) pars <- as.list(pars) ncovs <- length(pars) - length(dlist$pars) if (ncovs > 0) beta <- unlist(pars[(nbpars+1):npars]) for (i in dlist$pars) { if (length(mx[[i]]) > 0) pars[[i]] <- pars[[i]] + X[,mx[[i]],drop=FALSE] %*% beta[mx[[i]]] else pars[[i]] <- rep(pars[[i]], length(Y[,"stop"])) } dead <- Y[,"status"]==1 ddcall <- list(t=Y[dead,"stop"]) dsccall <- list(t=Y[!dead,"stop"]) dstcall <- list(t=Y[,"start"]) for (i in 1:nbpars) ddcall[[names(pars)[i]]] <- dsccall[[names(pars)[i]]] <- dstcall[[names(pars)[i]]] <- dlist$inv.transforms[[i]](pars[[i]]) for (i in seq_along(aux)){ ddcall[[names(aux)[i]]] <- dsccall[[names(aux)[i]]] <- dstcall[[names(aux)[i]]] <- aux[[i]] } for (i in dlist$pars) { ddcall[[i]] <- ddcall[[i]][dead] dsccall[[i]] <- dsccall[[i]][!dead] } dd <- d2deriv(dfns$D2Ld, ddcall, X[dead,,drop=FALSE], mx, dlist) dscens <- d2deriv(dfns$D2LS, dsccall, X[!dead,,drop=FALSE], mx, dlist) if (sum(dead) > 0) dd <- dd * weights[dead] if (sum(!dead) > 0) dscens <- dscens * weights[!dead] dstrunc <- d2deriv(dfns$D2LS, dstcall, X, mx, dlist) * weights res <- - ( apply(dd,2:3,sum) + apply(dscens,2:3,sum) - apply(dstrunc,2:3,sum) ) if (any(bhazard > 0)) { dcall <- ddcall dcall$x <- ddcall$t; dcall$t <- NULL dens <- do.call(dfns$d, dcall) pcall <- dcall pcall$q <- pcall$x; pcall$x <- NULL surv <- 1 - do.call(dfns$p, pcall) haz <- dens / surv bw <- bhazard[dead] offseti <- 1 / (1 + bw/haz) d1Ld <- dderiv(dfns$DLd, ddcall, X[dead,,drop=FALSE], mx, dlist) d2Ld <- d2deriv(dfns$D2Ld, ddcall, X[dead,,drop=FALSE], mx, dlist) d1LS <- dderiv(dfns$DLS, ddcall, X[dead,,drop=FALSE], mx, dlist) d2LS <- d2deriv(dfns$D2LS, ddcall, X[dead,,drop=FALSE], mx, dlist) dhazinv <- surv/dens*(d1LS - d1Ld) if (any(dead)){ ## given two matrices with dims (n,p), ## return array of dim(n,p,p) with outer product of each pair of matrix rows vouter <- function(y,z){ rows <- seq_len(nrow(y)) res <- mapply(outer, split(y, rows), split(z, rows), SIMPLIFY=FALSE) res <- array(unlist(res), dim=c(dim(res[[1]]), length(res))) # res <- simplify2array(res, except = NULL) # would do this, but needs R >= 4.2.0 aperm(res, c(3,1,2)) } doff <- - offseti*bw*(offseti*vouter(dhazinv, dhazinv)*bw + (d2Ld - d2LS)*surv/dens + vouter(d1Ld - d1LS, dhazinv)) res <- res - apply(doff*weights[dead],2:3,sum) } } ## currently wastefully calculates derivs for fixed pars then discards them optpars <- setdiff(1:npars, fixedpars) res[optpars,optpars] } hess.test <- function(optpars, Y, X, weights, bhazard, rtrunc, dlist, inits, dfns, aux, mx, fixedpars){ an.d <- D2minusloglik.flexsurv(optpars=optpars, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars) if (requireNamespace("numDeriv", quietly = TRUE)) num.d <- numDeriv::hessian(minusloglik.flexsurv, optpars, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars) else stop("\"numDeriv\" package not available") res <- list(analytic=an.d, numeric=num.d) list(res=res, error=mean(abs(an.d - num.d))) } flexsurv/R/fmixmsm.R0000644000176200001440000003012214366216636014147 0ustar liggesusers##' Constructor for a mixture multi-state model based on flexsurvmix ##' ##' @param ... Named arguments. Each argument should be a fitted model as ##' returned by \code{\link{flexsurvmix}}. The name of each argument names ##' the starting state for that model. ##' ##' @return A list of \code{\link{flexsurvmix}} objects, with the following ##' attribute(s): ##' ##' \code{pathways} A list of all potential pathways until absorption, for ##' models without cycles. For models with cycles this will have an element ##' \code{has_cycle=TRUE}, plus the pathways discovered before the function ##' found the cycle and gave up. ##' ##' @export fmixmsm <- function(...){ args <- list(...) starts <- names(args) evlist <- lapply(args, function(x)x$evnames) names(evlist) <- starts plist <- list(transient_unvisited = names(evlist), transient_visited = character(), pathways = list(), pathway_current = character()) pathways <- get_pathways(evlist[1], evlist, plist) ret <- args attr(ret, "pathways") <- pathways$pathways attr(ret, "cycle") <- isTRUE(pathways$has_cycle) attr(ret, "pathway_str") <- sapply(attr(ret, "pathways"), function(x)paste(x,collapse="-")) ret } get_pathways <- function(mod_current, mods, ret){ ## TODO error handling if (isTRUE(ret$has_cycle)) return(ret) fromstate <- names(mod_current) tostates <- mod_current[[1]] absorbing <- setdiff(unlist(mods),names(mods)) ret$transient_visited <- c(ret$transient_visited, fromstate) ret$transient_unvisited <- setdiff(ret$transient_unvisited, fromstate) nd <- length(tostates) pcurr <- c(ret$pathway_current, fromstate) for (j in 1:nd){ pathway_new <- c(pcurr, tostates[j]) if (any(duplicated(pathway_new))){ return(list(has_cycle=TRUE)) # could we carry on, ignore cycles, return all paths to absorption? don't do unless we need. } else if (tostates[j] %in% absorbing){ ret$pathways <- c(ret$pathways, list(pathway_new)) } else { ret$pathway_current <- pcurr ret <- get_pathways(mods[tostates[j]], mods, ret) } } ret } ##' Probability of each pathway taken through a mixture multi-state model ##' ##' ##' @param x Object returned by \code{\link{fmixmsm}}, representing a multi-state ##' model built from piecing together mixture models fitted by ##' \code{\link{flexsurvmix}}. ##' ##' @param final If \code{TRUE} then the probabilities of pathways with the same ##' final state are added together, to produce the probability of each ##' ultimate outcome or absorbing state from the multi-state model. ##' ##' @inheritParams mean_flexsurvmix ##' ##' @return Data frame of pathway probabilities by covariate value and pathway. ##' ##' ##' @export ppath_fmixmsm <- function(x, newdata=NULL, final=FALSE, B=NULL){ pathways <- attr(x, "pathways") if (isTRUE(pathways$has_cycle)) stop("models with cycles not supported in this function") nmods <- length(x) probs <- vector(nmods, mode="list") names(probs) <- names(x) for (i in seq_along(x)){ probs[[i]] <- probs_flexsurvmix(x[[i]], newdata=newdata) } npaths <- length(pathways) ppath <- vector(npaths, mode="list") for (p in seq_along(pathways)){ plen <- length(pathways[[p]]) ppath[[p]] <- 1 for (i in 1:(plen-1)){ cur_state <- pathways[[p]][i] next_state <- pathways[[p]][i+1] cur_prob <- probs[[cur_state]] ppath[[p]] <- ppath[[p]] * cur_prob$val[cur_prob$event==next_state] } } finalstate <- sapply(attr(x, "pathways"), function(x)x[length(x)]) ncovs <- if(is.null(newdata)) 1 else nrow(newdata) finalstate <- rep(finalstate, each=ncovs) pathway <- rep(attr(x, "pathway_str"), each=ncovs) ppath <- data.frame(final=finalstate, pathway=pathway, val = unlist(ppath)) if (!is.null(newdata)) { nd <- newdata[rep(seq_len(ncovs), npaths),,drop=FALSE] ppath <- cbind(nd, ppath) } rownames(ppath) <- NULL if (final) { ppath <- ppath %>% dplyr::group_by(dplyr::across(c(names(newdata), "final"))) %>% dplyr::reframe(val=sum(.data$val)) } if (is.numeric(B) && B > 1){ res <- matrix(nrow=B, ncol=length(ppath$val)) res[1,] <- ppath$val for (i in 2:B){ xrep <- resample_pars_fmixmsm(x) res[i,] <- ppath_fmixmsm(xrep, newdata=newdata, final=final, B=NULL)$val } resci <- apply(res, 2, quantile, c(0.025, 0.975), na.rm=TRUE) ppath$lower <- resci[1,] ppath$upper <- resci[2,] } as.data.frame(ppath) } resample_pars_fmixmsm <- function(x){ xrep <- lapply(x, resample_pars) attributes(xrep) <- attributes(x) xrep } ##' Mean time to final state in a mixture multi-state model ##' ##' Calculate the mean time from the start of the process to a final (or ##' "absorbing") state in a mixture multi-state model. Models with cycles are ##' not supported. ##' ##' @inheritParams ppath_fmixmsm ##' ##' @param final If \code{TRUE} then the mean time to the final state is ##' calculated for each final state, by taking a weighted average of the mean ##' time to travel each pathway ending in that final state, weighted by the ##' probability of the pathway. If \code{FALSE} (the default) then a ##' separate mean is calculated for each pathway. ##' ##' @return A data frame of mean times to absorption, by covariate values and ##' pathway (or by final state) ##' ##' @export meanfinal_fmixmsm <- function(x, newdata=NULL, final=FALSE, B=NULL){ pathways <- attr(x, "pathways") nmods <- length(x) means <- vector(nmods, mode="list") names(means) <- names(x) for (i in seq_along(x)){ means[[i]] <- mean_flexsurvmix(x[[i]], newdata=newdata) } npaths <- length(pathways) meanp <- vector(npaths, mode="list") for (p in seq_along(pathways)){ plen <- length(pathways[[p]]) meanp[[p]] <- 0 for (i in 1:(plen-1)){ cur_state <- pathways[[p]][i] next_state <- pathways[[p]][i+1] cur_mean <- means[[cur_state]] meanp[[p]] <- meanp[[p]] + cur_mean$val[cur_mean$event==next_state] } } finalstate <- sapply(attr(x, "pathways"), function(x)x[length(x)]) ncovs <- if(is.null(newdata)) 1 else nrow(newdata) finalstate <- rep(finalstate, each=ncovs) pathway <- rep(attr(x, "pathway_str"), each=ncovs) meanp <- data.frame(final=finalstate, pathway=pathway, val = unlist(meanp)) if (!is.null(newdata)) { nd <- newdata[rep(seq_len(ncovs), npaths),,drop=FALSE] meanp <- cbind(nd, meanp) } rownames(meanp) <- NULL if (final) { probs <- ppath_fmixmsm(x=x, newdata=newdata, final=FALSE, B=NULL) %>% dplyr::rename(prob="val") meanp <- meanp %>% dplyr::left_join(probs, by=c(names(newdata), "pathway", "final")) %>% dplyr::group_by(dplyr::across(c(names(newdata), "final"))) %>% dplyr::reframe(val=sum(.data$val*.data$prob)/sum(.data$prob)) } if (is.numeric(B) && B > 1){ res <- matrix(nrow=B, ncol=length(meanp$val)) res[1,] <- meanp$val for (i in 2:B){ xrep <- resample_pars_fmixmsm(x) res[i,] <- meanfinal_fmixmsm(xrep, newdata=newdata, final=final, B=NULL)$val } resci <- apply(res, 2, quantile, c(0.025, 0.975), na.rm=TRUE) meanp$lower <- resci[1,] meanp$upper <- resci[2,] } as.data.frame(meanp) } ##' Quantiles of the distribution of the time until reaching a final state in a ##' mixture multi-state model ##' ##' Calculate the quantiles of the time from the start of the process to each ##' possible final (or "absorbing") state in a mixture multi-state model. ##' Models with cycles are not supported. ##' ##' ##' @inheritParams ppath_fmixmsm ##' ##' @param final If \code{TRUE} then the mean time to the final state is ##' calculated for each final state, by taking a weighted average of the mean ##' time to travel each pathway ending in that final state, weighted by the ##' probability of the pathway. If \code{FALSE} (the default) then a ##' separate mean is calculated for each pathway. ##' ##' @param n Number of individual-level simulations to use to characterise the ##' time-to-event distributions ##' ##' @param probs Quantiles to calculate, by default, \code{c(0.025, 0.5, 0.975)} ##' ##' @return Data frame of quantiles of the time to final state by pathway and ##' covariate value, or by final state and covariate value. ##' ##' @export qfinal_fmixmsm <- function(x, newdata=NULL, final=FALSE, B=NULL, n=10000, probs=c(0.025, 0.5, 0.975)){ pathways <- attr(x, "pathways") nmods <- length(x) sims <- vector(nmods, mode="list") names(sims) <- names(x) if (final) { ppath <- ppath_fmixmsm(x=x, newdata=newdata, final=FALSE, B=NULL) %>% dplyr::rename(prob="val") %>% dplyr::mutate(n = round(n * .data$prob)) } for (i in seq_along(x)){ sims[[i]] <- simt_flexsurvmix(x[[i]], newdata=newdata, n=n) } npaths <- length(pathways) simsum <- vector(npaths, mode="list") for (p in seq_along(pathways)){ plen <- length(pathways[[p]]) sm <- 0 for (i in 1:(plen-1)){ cur_state <- pathways[[p]][i] next_state <- pathways[[p]][i+1] sm <- sm + sims[[cur_state]][,next_state] } simsumdf <- sims[[1]][,colnames(newdata),drop=FALSE] simsumdf$pathway <- attr(x,"pathway_str")[[p]] simsumdf$sm <- sm if (final){ simsum[[p]] <- simsumdf %>% dplyr::left_join(ppath, by=c("pathway", colnames(newdata))) %>% dplyr::group_by(dplyr::across(c(colnames(newdata)))) %>% ## Keep only the first n of the sampled rows ## where n is weighted by the prob of the pathway dplyr::group_modify(~{.x[1:.x$n[1],]}) } else { simsum[[p]] <- simsumdf %>% dplyr::group_by(dplyr::across(c("pathway", colnames(newdata)))) %>% dplyr::reframe(probs=probs, val = quantile(.data$sm, p=probs,na.rm=TRUE)) } } resq <- do.call("rbind", simsum) if (final){ resq <- resq %>% dplyr::ungroup() %>% dplyr::group_by(dplyr::across(c("final", colnames(newdata)))) %>% dplyr::reframe(probs=probs, val = quantile(.data$sm, p=probs,na.rm=TRUE)) } rownames(resq) <- NULL if (is.numeric(B) && B > 1){ res <- matrix(nrow=B, ncol=length(resq$val)) res[1,] <- resq$val for (i in 2:B){ xrep <- resample_pars_fmixmsm(x) res[i,] <- qfinal_fmixmsm(xrep, newdata=newdata, final=final, B=NULL, n=n, probs=probs)$val } resci <- apply(res, 2, quantile, c(0.025, 0.975), na.rm=TRUE) resq$lower <- resci[1,] resq$upper <- resci[2,] } as.data.frame(resq) } ##' Simulate times to competing events from a mixture multi-state model ##' ##' @inheritParams probs_flexsurvmix ##' ##' @param n Number of simulations ##' ##' @return Data frame with \code{n*m} rows and a column for each competing ##' event, where \code{m} is the number of alternative covariate values, that ##' is the number of rows of \code{newdata}. The simulated time represents ##' the time to that event conditionally on that event being the one that ##' occurs. This function doesn't simulate which event occurs. ##' simt_flexsurvmix <- function(x, newdata=NULL, n){ if (is.null(newdata)) newdata <- default_newdata(x) if (is.null(newdata)) { ncovvals <- 1 } else { newdata <- as.data.frame(newdata) ncovvals <- nrow(newdata) } simdf <- as.data.frame(matrix(nrow=n*ncovvals, ncol=x$K)) names(simdf) <- x$evnames for (k in 1:x$K){ pars <- get_basepars(x, newdata, k) pars$n <- n*ncovvals simdf[[k]] <- do.call(x$dfns[[k]]$r, pars) } if (!is.null(newdata)){ newdatarep <- newdata[rep(seq_len(ncovvals),n),,drop=FALSE] simdf <- cbind(newdatarep, simdf) simdf <- simdf[do.call("order", newdatarep),,drop=FALSE] } simdf } flexsurv/R/utils.R0000644000176200001440000003674314523727777013656 0ustar liggesusers### Standardised procedure for defining density, cumulative ### distribution, hazard and cumulative hazard functions for ### time-to-event distributions dbase <- function(dname, lower.tail=TRUE, log=FALSE, ...){ args <- list(...) ## Vectorise all arguments, replicating to length of longest argument n <- max(sapply(args, length)) for (i in seq_along(args)) { args[[i]] <- rep(args[[i]], length.out=n) } ret <- numeric(n) ## Check for parameters out of range, give warning and return NaN ## for those check.fn <- paste("check.",dname,sep="") check.ret <- do.call(check.fn, args[-1]) ret[!check.ret] <- NaN for (i in seq_along(args)) ret[is.nan(args[[i]])] <- NaN ## name of first arg is x for PDF, haz, or cum haz, q for CDF and p for quantile function stopifnot( !(names(args)[1]=="x" && lower.tail==FALSE)) if (names(args)[1] %in% c("x","q")){ x <- args[[1]] ## PDF, CDF, hazard and cumulative hazard is 0 for any negative time ret[!is.nan(ret) & (x<0)] <- if (lower.tail) { if (log) -Inf else 0 } else { if (log) 0 else 1 } } if (names(args)[1] == "p") { p <- args[[1]] if (log) p <- exp(p) if (!lower.tail) p <- 1 - p args[[1]] <- p ret[p < 0 | p > 1] <- NaN ## should be 0,Inf for p=0,1, but hopefully always handled anyway ## Result is NA if x or a parameter is NA } ## Result is NA if x or a parameter is NA nas <- rep(FALSE, n) for (i in seq_along(args)) nas <- nas | (is.na(args[[i]]) & !is.nan(args[[i]])) ret[nas] <- NA ind <- !is.nan(ret) & !nas if (names(args)[1] %in% c("x", "q")) ind <- ind & (x>=0) ## Any remaining elements of vector are filled in by standard ## formula for hazard li <- list(ret=ret, ind=ind) for(i in seq_along(args)) args[[i]] <- args[[i]][ind] c(li, args) } ### Standardised procedure for defining random sampling functions rbase <- function(dname, n, ...){ ## Vectorise all arguments, replicating to sample length if (length(n) > 1) n <- length(n) args <- list(...) for (i in seq_along(args)) { args[[i]] <- rep(args[[i]], length.out=n) } ret <- numeric(n) ## Check for parameters out of range, give warning and return NaN ## for those check.fn <- paste("check.",dname,sep="") check.ret <- do.call(check.fn, args) ret[!check.ret] <- NaN for (i in seq_along(args)) ret[is.nan(args[[i]])] <- NaN nas <- rep(FALSE, n) for (i in seq_along(args)) nas <- nas | (is.na(args[[i]]) & !is.nan(args[[i]])) ret[nas] <- NA ind <- !is.nan(ret) & !nas li <- list(ret=ret, ind=ind) for(i in seq_along(args)) args[[i]] <- args[[i]][ind] c(li, args) } ##' Generic function to find restricted mean survival time for some distribution ##' ##' Generic function to find the restricted mean of a distribution, given the ##' equivalent probability distribution function, using numeric integration. ##' ##' This function is used by default for custom distributions for which an ##' \code{rmst} function is not provided. ##' ##' This assumes a suitably smooth, continuous distribution. ##' ##' @param pdist Probability distribution function, for example, ##' \code{\link{pnorm}} for the normal distribution, which must be defined in ##' the current workspace. This should accept and return vectorised parameters ##' and values. It should also return the correct values for the entire real ##' line, for example a positive distribution should have \code{pdist(x)==0} ##' for \eqn{x<0}. ##' ##' @param t Vector of times at which rmst is evaluated ##' ##' @param start Optional left-truncation time or times. The returned ##' restricted mean survival will be conditioned on survival up to ##' this time. ##' ##' @param matargs Character vector giving the elements of \code{...} which ##' represent vector parameters of the distribution. Empty by default. When ##' vectorised, these will become matrices. This is used for the arguments ##' \code{gamma} and \code{knots} in \code{\link{psurvspline}}. ##' ##' @param scalarargs Character vector naming scalar arguments of the distribution function that cannot be vectorised. This is used, for example, for the arguments \code{scale} and \code{timescale} in \code{\link{psurvspline}}. ##' ##' @param ... The remaining arguments define parameters of the distribution ##' \code{pdist}. These MUST be named explicitly. ##' ##' @return Vector of restricted mean survival times of the distribution at ##' \code{p}. ##' ##' @author Christopher Jackson ##' ##' @keywords distribution ##' ##' @examples ##' ##' rmst_lnorm(500, start=250, meanlog=7.4225, sdlog = 1.1138) ##' rmst_generic(plnorm, 500, start=250, meanlog=7.4225, sdlog = 1.1138) ##' # must name the arguments ##' ##' @export rmst_generic <- function(pdist, t, start=0, matargs=NULL, scalarargs=NULL, ...) { args <- list(...) args_mat <- args[matargs] args_scalar <- args[scalarargs] args[c(matargs,scalarargs)] <- NULL matlen <- if(is.null(matargs)) NULL else sapply(args_mat, function(x){if(is.matrix(x))nrow(x) else 1}) veclen <- if (length(args) == 0) NULL else sapply(args, length) t_len <- length(t) maxlen <- max(c(t_len, veclen, matlen)) if(length(start) == 1) start <- rep(start, length.out=maxlen) na_inds <- rep(FALSE, maxlen) for (i in seq_along(args)){ args[[i]] <- rep(args[[i]], length.out=maxlen) na_inds <- na_inds | is.na(args[[i]]) } t <- rep(t, length.out=maxlen) for (i in seq_along(args_mat)){ if (is.matrix(args_mat[[i]])){ args_mat[[i]] <- matrix( apply(args_mat[[i]], 2, function(x)rep(x, length.out=maxlen)), ncol=ncol(args_mat[[i]]), byrow=F ) } else args_mat[[i]] <- matrix(args_mat[[i]], nrow=maxlen, ncol=length(args_mat[[i]]), byrow=TRUE) na_inds <- na_inds | apply(args_mat[[i]], 1, anyNA) } ret <- numeric(maxlen) ret[na_inds] <- NA for (i in seq_len(maxlen)[!na_inds]){ fargs_vec <- lapply(args, function(x)x[i]) fargs_mat <- lapply(args_mat, function(x)x[i,,drop=FALSE]) pdargs <- c(list(start[i]), fargs_vec, fargs_mat, args_scalar) start_p <- 1 - do.call(pdist, pdargs) fn <- function(end){ pdargs <- c(list(end), fargs_vec, fargs_mat, args_scalar) pd <- do.call(pdist, pdargs) (1 - pd) / start_p } ret[i] <- integrate(fn, start[i], t[i])$value } ret[t x].). ##' ##' If the distribution is bounded above or below, then this should contain ##' arguments \code{lbound} and \code{ubound} respectively, and these will be ##' returned if \code{p} is 0 or 1 respectively. Defaults to \code{-Inf} and ##' \code{Inf} respectively. ##' ##' @return Vector of quantiles of the distribution at \code{p}. ##' ##' @author Christopher Jackson ##' ##' @keywords distribution ##' ##' @examples ##' ##' qnorm(c(0.025, 0.975), 0, 1) ##' qgeneric(pnorm, c(0.025, 0.975), mean=0, sd=1) # must name the arguments ##' @export qgeneric <- function(pdist, p, matargs=NULL, scalarargs=NULL, ...) { args <- list(...) if (is.null(args$log.p)) args$log.p <- FALSE if (is.null(args$lower.tail)) args$lower.tail <- TRUE if (is.null(args$lbound)) args$lbound <- -Inf if (is.null(args$ubound)) args$ubound <- Inf if (args$log.p) p <- exp(p) if (!args$lower.tail) p <- 1 - p ret <- numeric(length(p)) ret[p == 0] <- args$lbound ret[p == 1] <- args$ubound ## args containing vector params of the distribution (e.g. gamma and knots in dsurvspline) args.mat <- args[matargs] ## Arguments that cannot be vectorised args.scalar <- args[scalarargs] args[c(matargs,scalarargs,"lower.tail","log.p","lbound","ubound")] <- NULL ## Other args assumed to contain vectorisable parameters of the distribution. ## Replicate all to their maximum length, along with p matlen <- if(is.null(matargs)) NULL else sapply(args.mat, function(x){if(is.matrix(x))nrow(x) else 1}) veclen <- if (length(args) == 0) NULL else sapply(args, length) maxlen <- max(c(length(p), veclen, matlen)) na_inds <- rep(FALSE, length(ret)) for (i in seq_along(args)){ args[[i]] <- rep(args[[i]], length.out=maxlen) na_inds <- na_inds | is.na(args[[i]]) } for (i in seq_along(args.mat)){ if (is.matrix(args.mat[[i]])){ args.mat[[i]] <- matrix( apply(args.mat[[i]], 2, function(x)rep(x, length.out=maxlen)), ncol=ncol(args.mat[[i]]), byrow=F ) } else args.mat[[i]] <- matrix(args.mat[[i]], nrow=maxlen, ncol=length(args.mat[[i]]), byrow=TRUE) na_inds <- na_inds | apply(args.mat[[i]], 1, anyNA) } p <- rep(p, length.out=maxlen) ret[p < 0 | p > 1] <- NaN ret[na_inds] <- NA ind <- (p > 0 & p < 1 & !na_inds) if (any(ind)) { hind <- seq_along(p)[ind] n <- length(p[ind]) ptmp <- numeric(n) interval <- matrix(rep(c(-1, 1), n), ncol=2, byrow=TRUE) h <- function(y) { args <- lapply(args, function(x)x[hind]) args.mat <- lapply(args.mat, function(x)x[hind,]) p <- p[hind] args$q <- y args <- c(args, args.mat, args.scalar) (do.call(pdist, args) - p) } ptmp <- rstpm2::vuniroot(h, interval, tol=.Machine$double.eps, extendInt="yes", maxiter=10000)$root ret[ind] <- ptmp } if (any(is.nan(ret))) warning("NaNs produced") ret } ## suppresses NOTE from checker about variables created with "assign" if(getRversion() >= "2.15.1") utils::globalVariables(c("ind")) ##' helper function to safely convert a Hessian matrix to covariance matrix ##' ##' @param hessian hessian matrix to convert to covariance matrix (must be evaluated at MLE) ##' @param tol.solve tolerance used for solve() ##' @param tol.evalues accepted tolerance for negative eigenvalues of the covariance matrix ##' @param ... arguments passed to Matrix::nearPD ##' ##' @importFrom Matrix nearPD ##' @keywords internal .hess_to_cov <- function(hessian, tol.solve = 1e-9, tol.evalues = 1e-5, ...) { if(is.null(tol.solve)) tol.solve <- .Machine$double.eps if(is.null(tol.evalues)) tol.evalues <- 1e-5 # use solve(.) over chol2inv(chol(.)) to get an inverse even if not PD # less efficient but more stable inv_hessian <- solve(hessian, tol = tol.solve) if (any(is.infinite(inv_hessian))) stop("Inverse Hessian has infinite values. This might indicate that the model is too complex to be identifiable from the data") evalues <- eigen(inv_hessian, symmetric = TRUE, only.values = TRUE)$values if (min(evalues) < -tol.evalues) warning(sprintf( "Hessian not positive definite: smallest eigenvalue is %.1e (threshold: %.1e). This might indicate that the optimization did not converge to the maximum likelihood, so that the results are invalid. Continuing with the nearest positive definite approximation of the covariance matrix.", min(evalues), -tol.evalues )) # make sure we return a plain positive definite symmetric matrix as.matrix(Matrix::nearPD(inv_hessian, ensureSymmetry = TRUE, ...)$mat) } #' Numerical evaluation of the hessian of a function using numDeriv::hessian #' #' We perform a quick check about the expected runtime and adjust the #' precision accordingly. #' #' @param f function to compute Hessian for #' @param x location to evaluate Hessian at #' @param seconds.warning time threshold in seconds to trigger message and #' reduce the number of iterations for Richardson extrapolation of #' numDeriv::hessian #' @param default.r default number of iterations (high-precision recommendation #' of numDeriv) #' @param min.r minial number of iteration, must be at least 2, #' @param ... further arguments passed to method.args of numDeriv::hessian #' #' @importFrom numDeriv hessian #' @keywords internal .hessian <- function(f, x, seconds.warning = 60, default.r = 6, min.r = 2, ...) { # dimensionality of the problem k <- length(x) # estimate evaluation time of f(x) start_time <- Sys.time() for (i in 1:3) f(x) mean_eval_sec <- as.numeric(difftime(Sys.time(), start_time, units = "secs"))/3 default_runtime <- mean_eval_sec * (1 + default.r*(k^2 + k)) # reduce iterations for Richardson extrapolation if (default_runtime > seconds.warning) { r <- default.r runtime <- default_runtime while ((r > min.r) & (runtime > seconds.warning)) { r <- r - 1 runtime <- mean_eval_sec * (1 + r*(k^2 + k)) } message(sprintf( "estimated runtime for evaluating the hessian with r=%i is %i minutes, reducing r to %i, estimated runtime is %i minutes", default.r, round(default_runtime/60), r, round(runtime/60) )) } else { r <- default.r } numDeriv::hessian(f, x, method = "Richardson", method.args = list(r = r, ...)) } check_numeric <- function(...){ args <- list(...) nm <- names(args) for (i in seq_along(args)){ nm <- names(args)[i] nmstr <- if (is.null(nm) || nm=="") "" else sprintf(" for `%s`", nm) if (!is.numeric(args[[i]])) stop(sprintf("Non-numeric value supplied%s", nmstr)) } } flexsurv/R/standsurv.R0000644000176200001440000015526714603753345014537 0ustar liggesusers#' Marginal survival and hazards of fitted flexsurvreg models #' #' Returns a tidy data.frame of marginal survival probabilities, or hazards, #' restricted mean survival, or quantiles of the marginal survival function #' at user-defined time points and covariate patterns. #' Standardization is performed over any undefined covariates in the model. #' The user provides the data to standardize over. Contrasts can be calculated #' resulting in estimates of the average treatment effect or the average #' treatment effect in the treated if a treated subset of the data are supplied. #' #' The syntax of \code{standsurv} follows closely that of Stata's #' \code{standsurv} command written by Paul Lambert and Michael Crowther. The #' function calculates standardized (marginal) measures including standardized #' survival functions, standardized restricted mean survival times, quantiles #' and the hazard of standardized survival. The standardized survival is defined as #' \deqn{S_s(t|X=x) = E(S(t|X=x,Z)) = \frac{1}{N} \sum_{i=1}^N S(t|X=x,Z=z_i)}{S(t|X=x) = E[S(t|X=x,Z)] = 1/N * sum(S(t|X=x,Z=z_i))} #' The hazard of the standardized survival is a weighted average of #' individual hazard functions at time t, weighted by the survival #' function at this time: #' \deqn{h_s(t|X=x) = \frac{\sum_{i=1}^N S(t|X=x,Z=z_i)h(t|X=x,Z=z_i)}{\sum_{i=1}^N S(t|X=x,Z=z_i)}}{h(t|X=x) = sum(S(t|X=x,Z=z_i) * h(t|X=x,Z=z_i)) / sum(S(t|X=x,Z=z_i))} #' Marginal expected survival and hazards can be calculated by providing a #' population-based lifetable of class ratetable in \code{ratetable} and a #' mapping between stratification factors in the lifetable and the user dataset #' using \code{rmap}. If these stratification factors are not in the fitted #' survival model then the user must specify them in \code{newdata} along with #' the covariates of the model. The marginal expected survival is calculated #' using the "Ederer" method that assumes no censoring as this is most relevant #' approach for forecasting (see #' \code{\link[survival]{survexp}}). A worked example is given below. #' #' Marginal all-cause survival and hazards can be calculated after fitting a #' relative survival model, which utilise the expected survival from a population #' ratetable. See Rutherford et al. (Chapter 6) for further details. #' #' #' @param object Output from \code{\link{flexsurvreg}} or #' \code{\link{flexsurvspline}}, representing a fitted survival model object. #' @param newdata Data frame containing covariate values to produce marginal ##' values for. If not specified then the fitted model data.frame is used. ##' There must be a column for every covariate in the model formula ##' for which the user wishes to standardize over. These are in the same format ##' as the original data, with factors as a single variable, not 0/1 contrasts. ##' Any covariates that are to be fixed should be specified in \code{at}. ##' There should be one row for every combination of covariates in which to ##' standardize over. If newdata contains a variable named '(weights)' then a ##' weighted mean will be used to create the standardized estimates. This is the ##' default behaviour if the fitted model contains case weights, which are stored ##' in the fitted model data.frame. #' @param at A list of scenarios in which specific covariates are fixed to #' certain values. Each element of \code{at} must itself be a list. For example, #' for a covariate \code{group} with levels "Good", "Medium" and "Poor", the #' standardized survival plots for each group averaging over all other #' covariates is specified using #' \code{at=list(list(group="Good"), list(group="Medium"), list(group="Poor"))}. #' @param atreference The reference scenario for making contrasts. Default is 1 #' (i.e. the first element of \code{at}). #' @param type \code{"survival"} for marginal survival probabilities. In a #' relative survival framework this returns the marginal all-cause survival #' (see details). ##' ##' \code{"hazard"} for the hazard of the marginal survival probability. In a #' relative survival framework this returns the marginal all-cause hazard #' (see details). ##' ##' \code{"rmst"} for standardized restricted mean survival. ##' ##' \code{"relsurvival"} for marginal relative survival (can only be specified ##' if a relative survival model has been fitted in flexsurv). ##' ##' \code{"excesshazard"} for marginal excess hazards (can only be specified ##' if a relative survival model has been fitted in flexsurv). ##' ##' \code{"quantile"} for quantiles of the marginal all-cause survival ##' distribution. The \code{quantiles} option also needs to be provided. #' @param t Times to calculate marginal values at. #' @param ci Should confidence intervals be calculated? #' Defaults to FALSE #' @param se Should standard errors be calculated? #' Defaults to FALSE #' @param boot Should bootstrapping be used to calculate standard error and #' confidence intervals? Defaults to FALSE, in which case the delta method is #' used #' @param B Number of bootstrap simulations from the normal asymptotic #' distribution of the estimates used to calculate confidence intervals or #' standard errors. Decrease for greater speed at the expense of accuracy. Only #' specify if \code{boot = TRUE} #' @param cl Width of symmetric confidence intervals, relative to 1. #' @param trans Transformation to apply when calculating standard errors via the #' delta method to obtain confidence intervals. The default transformation is #' "log". Other possible names are "none", "loglog", "logit". #' @param contrast Contrasts between standardized measures defined by \code{at} #' scenarios. Options are \code{"difference"} and \code{"ratio"}. There will be #' n-1 new columns created where n is the number of \code{at} scenarios. Default #' is NULL (i.e. no contrasts are calculated). #' @param trans.contrast Transformation to apply when calculating standard errors #' for contrasts via the delta method to obtain confidence intervals. The default #' transformation is "none" for differences in survival, hazard, quantiles, or RMST, #' and "log" for ratios of survival, hazard, quantiles or RMST. #' @param seed The random seed to use (for bootstrapping confidence intervals) #' @param rmap An list that maps data set names to expected ratetable names. #' This must be specified if all-cause survival and hazards are required after #' fitting a relative survival model. This can also be specified if expected #' rates are required for plotting purposes. See the details section below. #' @param ratetable A table of expected event rates #' (see \code{\link[survival]{ratetable}}) #' @param scale.ratetable Transformation from the time scale of the fitted #' flexsurv model to the time scale in \code{ratetable}. For example, if the #' analysis time of the fitted model is in years and the ratetable is in #' units/day then we should use \code{scale.ratetable = 365.25}. This is the #' default as often the ratetable will be in units/day (see example). #' @param n.gauss.quad Number of Gaussian quadrature points used for integrating #' the all-cause survival function when calculating RMST in a relative survival #' framework (default = 100) #' @param quantiles If \code{type="quantile"}, this specifies the quantiles of #' the survival time distribution to return estimates for. #' @param interval Interval of survival times for quantile root finding. #' Default is c(1e-08, 500). #' #' @return A \code{tibble} containing one row for each #' time-point. The column naming convention is \code{at{i}} for the ith scenario #' with corresponding confidence intervals (if specified) named \code{at{i}_lci} #' and \code{at{i}_uci}. Contrasts are named \code{contrast{k}_{j}} for the #' comparison of the kth versus the jth \code{at} scenario. #' #' In addition tidy long-format data.frames are returned in the attributes #' \code{standsurv_at} and \code{standsurv_contrast}. These can be passed to #' \code{ggplot} for plotting purposes (see \code{\link{plot.standsurv}}). #' @importFrom tibble as_tibble #' @importFrom rlang := #' @importFrom dplyr bind_cols #' @importFrom dplyr inner_join #' @export #' @author Michael Sweeting #' @references Paul Lambert, 2021. "STANDSURV: Stata module to compute #' standardized (marginal) survival and related functions," #' Statistical Software Components S458991, Boston College Department of #' Economics. https://ideas.repec.org/c/boc/bocode/s458991.html #' #' Rutherford, MJ, Lambert PC, Sweeting MJ, Pennington B, Crowther MJ, Abrams KR, #' Latimer NR. 2020. "NICE DSU Technical Support Document 21: Flexible Methods #' for Survival Analysis" #' https://nicedsu.sites.sheffield.ac.uk/tsds/flexible-methods-for-survival-analysis-tsd #' #' @examples #'## mean age is higher in those with smaller observed survival times #' newbc <- bc #' set.seed(1) #' newbc$age <- rnorm(dim(bc)[1], mean = 65-scale(newbc$recyrs, scale=FALSE), #' sd = 5) #' #' ## Fit a Weibull flexsurv model with group and age as covariates #' weib_age <- flexsurvreg(Surv(recyrs, censrec) ~ group+age, data=newbc, #' dist="weibull") #' #'## Calculate standardized survival and the difference in standardized survival #'## for the three levels of group across a grid of survival times #'standsurv_weib_age <- standsurv(weib_age, #' at = list(list(group="Good"), #' list(group="Medium"), #' list(group="Poor")), #' t=seq(0,7, length.out=100), #' contrast = "difference", ci=FALSE) #'standsurv_weib_age #' #'## Calculate hazard of standardized survival and the marginal hazard ratio #'## for the three levels of group across a grid of survival times #'## 10 bootstraps for confidence intervals (this should be larger) #'\dontrun{ #'haz_standsurv_weib_age <- standsurv(weib_age, #' at = list(list(group="Good"), #' list(group="Medium"), #' list(group="Poor")), #' t=seq(0,7, length.out=100), #' type="hazard", #' contrast = "ratio", boot = TRUE, #' B=10, ci=TRUE) #'haz_standsurv_weib_age #'plot(haz_standsurv_weib_age, ci=TRUE) #'## Hazard ratio plot shows a decreasing marginal HR #'## Whereas the conditional HR is constant (model is a PH model) #'plot(haz_standsurv_weib_age, contrast=TRUE, ci=TRUE) #' #'## Calculate standardized survival from a Weibull model together with expected #'## survival matching to US lifetables #' #'# age at diagnosis in days. This is required to match to US ratetable, whose #'# timescale is measured in days #'newbc$agedays <- floor(newbc$age * 365.25) #'## Create some random diagnosis dates centred on 01/01/2010 with SD=1 year #'## These will be used to match to expected rates in the lifetable #'newbc$diag <- as.Date(floor(rnorm(dim(newbc)[1], #' mean = as.Date("01/01/2010", "%d/%m/%Y"), sd=365)), #' origin="1970-01-01") #'## Create sex (assume all are female) #'newbc$sex <- factor("female") #'standsurv_weib_expected <- standsurv(weib_age, #' at = list(list(group="Good"), #' list(group="Medium"), #' list(group="Poor")), #' t=seq(0,7, length.out=100), #' rmap=list(sex = sex, #' year = diag, #' age = agedays), #' ratetable = survival::survexp.us, #' scale.ratetable = 365.25, #' newdata = newbc) #'## Plot marginal survival with expected survival superimposed #'plot(standsurv_weib_expected, expected=TRUE) #'} standsurv <- function(object, newdata = NULL, at = list(list()), atreference = 1, type = "survival", t = NULL, ci = FALSE, se = FALSE, boot = FALSE, B = NULL, cl =0.95, trans = "log", contrast = NULL, trans.contrast = NULL, seed = NULL, rmap, ratetable, scale.ratetable = 365.25, n.gauss.quad = 100, quantiles = 0.5, interval = c(1e-08, 500)) { x <- object if(!is.null(seed)) set.seed(seed) ## Add checks ## Currently type is restricted to survival, hazard, rmst, quantile, or relsurvival or excesshazard (for relative survival models) type <- match.arg(type, c("survival", "hazard", "rmst", "quantile", "relsurvival", "excesshazard")) # Check that models is a relative survival model if relsurv or excesshazard are specified if(type %in% c("relsurvival", "excesshazard") & !("bhazard" %in% names(x$call))){ stop(paste0(type, " can only be specified for a relative survival flexsurv model")) } type2 <- type ## Checks for relative survival models if("bhazard" %in% names(x$call)){ if(type %in% c("quantile", "survival", "hazard") & (missing(rmap) | missing(ratetable))) stop("'rmap' and 'ratetable' must be specified to calculate all-cause survival/hazard in a relative survival model") # Swap type to acsurvival (all-cause survival) or achazard (all-cause hazard) if survival or hazard is specified # Swap type to survival or hazard if relsurv or excesshazard are specified type2 <- switch(type, "survival"= "acsurvival", "hazard"= "achazard", "quantile" = "acquantile", "relsurvival" = "survival", "excesshazard" = "hazard", "rmst" = "acrmst" ) if(type2 == "acsurvival") message("Marginal all-cause survival will be calculated") if(type2 == "achazard") message("Marginal all-cause hazard will be calculated") if(type2 == "acquantile") message("Quantiles of marginal all-cause survival will be calculated") if(type2 == "acrmst"){ message("Marginal restricted mean survival will be calculated") if(length(t)>2){ message("Marginal RMST is currently slow. We suggest using only one or two time points") } } if(!missing(rmap) & is.null(newdata)) stop("Must provide a 'newdata' data.frame containing all covariates and matching variables with 'rmap'") } # checks for type="quantile" if(type == "quantile" & !is.numeric(quantiles)) stop("'quantiles' argument must be provided as a numeric vector for type='quantile'") if(!is.null(contrast)) { contrast <- match.arg(contrast, c("difference", "ratio")) if(is.null(trans.contrast)){ trans.contrast <- ifelse(contrast=="difference", "none", "log") trans.contrast <- match.arg(trans.contrast, c("log", "none", "loglog", "logit")) } } trans <- match.arg(trans, c("log", "none", "loglog", "logit")) ## Check that at is a list and that all elements of at are lists if(!is.list(at)){ stop("'at' must be at list") } if (!all(sapply(at, is.list))) { stop("All elements of 'at' must be lists") } ## Check sensible transformations have been specified for type if(boot == F & type %in% c("hazard", "rmst", "quantile") & trans %in% c("loglog", "logit")){ warning(paste0("type ",type, " with transformation ",trans, " may not be sensible")) } if(boot == F & !is.null(B)){ stop(paste0("'boot'=FALSE but 'B' is non-null")) } if(boot == T & is.null(B)){ stop(paste("'B' must be specified if 'boot'=TRUE")) } ## Contrast numbers cnums <- (1:length(at))[-atreference] ## If no contrasts (i.e. only one at() list) then 'contrast' should be NULL if(length(cnums)==0 & !is.null(contrast)){ stop("'contrast' cannot be specified if length of 'at' < 2") } ## Standardize over fitted dataset by default if(is.null(newdata)){ data <- model.frame(x) } else{ data <- newdata } ## Was weighted regression used, and do these weights feature in newdata? weighted <- FALSE if("(weights)" %in% names(data)){ if(var(data$`(weights)`)!=0){ weighted <- TRUE message("Weighted regression was used, standardization will be weighted accordingly") } } ## Set t to be unique event times if NULL if(is.null(t)) t <- sort(unique(x$data$Y[,"stop"])) ## Calculate individual expected survival and expected hazard if((!missing(rmap) & !missing(ratetable))){ message("Calculating marginal expected survival and hazard") expsurv <- expsurv.fn(t, substitute(rmap), ratetable, data, weighted, scale.ratetable) } else expsurv <- NULL ## Loop over at() stand.pred.list <- dat.list <- list() for(i in 1:length(at)){ dat <- data covs <- at[[i]] covnames <- names(covs) ## If all covariates have been specified in 'at' then we have no further covariates ## to standardize over, so just use 1 row of data ## do not use this shortcut for type2 = "acsurvival", type2 = "achazard", type = "acrmst" ## or type = "acquantile" as we require individual expected survivals for these methods allcovs <- all.vars(formula(x)[-2]) if(all(allcovs %in% covnames) & !weighted & !(type2 %in% c("acsurvival", "achazard", "acrmst", "acquantile"))){ dat <- dat[1,,drop=F] } ## If at is not specified then no further manipulation of data is required, ## we standardize over original or passes dataset if(!is.null(covnames)){ for(j in 1:length(covnames)) dat[, covnames[j]] <- covs[j] } dat.list[[i]] <- dat predsum <- standsurv.fn(object, type = type2, newdata=dat, t=t, i=i, weighted=weighted, expsurv=expsurv, rmap=substitute(rmap), ratetable=ratetable, scale.ratetable=scale.ratetable, quantiles=quantiles, interval=interval, n.gauss.quad=n.gauss.quad) if(ci == TRUE | se == TRUE){ if(boot == TRUE){ if(i==1) message("Calculating bootstrap standard errors / confidence intervals") rawsim <- NULL bootresults <- boot.standsurv(object, B, dat, i, t, type, type2, weighted, se, ci, cl, rawsim, predsum, expsurv, rmap=substitute(rmap), ratetable=ratetable, scale.ratetable=scale.ratetable, quantiles=quantiles, interval=interval, n.gauss.quad=n.gauss.quad) stand.pred.list[[i]] <- bootresults$stand.pred predsum <- bootresults$predsum if(is.null(rawsim)) rawsim <- bootresults$rawsim } else{ if(i==1) message("Calculating standard errors / confidence intervals using delta method") predsum <- deltamethod.standsurv(object, newdata=dat, type2, t, i, se, ci, predsum, trans, cl, weighted, expsurv, rmap=substitute(rmap), ratetable=ratetable, scale.ratetable=scale.ratetable, quantiles=quantiles, interval=interval, n.gauss.quad=n.gauss.quad) } } if(i == 1) { standpred <- predsum } else { by <- ifelse(type2 %in% c("quantile","acquantile"), "probability", "time") standpred <- standpred %>% inner_join(predsum, by = by) } } if (anyNA(standpred)) warning("Missing values present in newdata") if(!is.null(contrast)){ if(boot == TRUE){ if(ci==TRUE | se==TRUE) message("Calculating bootstrap standard errors / confidence intervals for contrasts") if(contrast == "difference"){ for(i in cnums){ standpred <- standpred %>% mutate("contrast{i}_{atreference}" := .data[[paste0("at", i)]] - .data[[paste0("at", atreference)]]) if(ci == TRUE){ stand.pred.quant <- apply(stand.pred.list[[i]] - stand.pred.list[[atreference]], 2, function(x)quantile(x, c((1-cl)/2, 1 - (1-cl)/2), na.rm=TRUE)) stand.pred.quant <- as_tibble(t(stand.pred.quant)) %>% rename("contrast{i}_{atreference}_lci" := "2.5%", "contrast{i}_{atreference}_uci" := "97.5%") standpred <- standpred %>% bind_cols(stand.pred.quant) } if(se == TRUE){ stand.pred.se <- tibble("contrast{i}_{atreference}_se" := apply(stand.pred.list[[i]] - stand.pred.list[[atreference]], 2, sd, na.rm=TRUE)) standpred <- standpred %>% bind_cols(stand.pred.se) } } } if(contrast == "ratio"){ for(i in cnums){ standpred <- standpred %>% mutate("contrast{i}_{atreference}" := .data[[paste0("at", i)]] / .data[[paste0("at", atreference)]]) if(ci == TRUE){ stand.pred.quant <- apply(stand.pred.list[[i]] / stand.pred.list[[atreference]], 2, function(x)quantile(x, c((1-cl)/2, 1 - (1-cl)/2), na.rm=TRUE)) stand.pred.quant <- as_tibble(t(stand.pred.quant)) %>% rename("contrast{i}_{atreference}_lci" := "2.5%", "contrast{i}_{atreference}_uci" := "97.5%") standpred <- standpred %>% bind_cols(stand.pred.quant) } if(se == TRUE){ stand.pred.se <- tibble("contrast{i}_{atreference}_se" := apply(stand.pred.list[[i]] / stand.pred.list[[atreference]], 2, sd, na.rm=TRUE)) standpred <- standpred %>% bind_cols(stand.pred.se) } } } } else { if(ci==TRUE | se==TRUE) message("Calculating standard errors / confidence intervals for contrasts using delta method") for(i in cnums){ standpred <- deltamethod.contrast.standsurv(object, dat=dat.list[[i]], dat.ref=dat.list[[atreference]], type2, t, i, atreference, se, ci, standpred, trans.contrast, cl, contrast, weighted, expsurv, rmap=substitute(rmap), ratetable=ratetable, scale.ratetable=scale.ratetable, quantiles=quantiles, interval=interval, n.gauss.quad=n.gauss.quad) } } } label <- unlist(lapply(at,function(k){paste(names(k),k,sep="=",collapse=", ")})) attr(standpred, "label") <- label attr(standpred, "type") <- type attr(standpred, "contrast") <- contrast attr(standpred, "at") <- at attr(standpred, "atreference") <- atreference if(!is.null(expsurv)){ attr(standpred, "expected") <- expsurv$marginal } class(standpred) <- c("standsurv", class(standpred)) ## Create tidy versions of the data.frame and store as attributes standpred <- tidy(standpred) standpred } #' @importFrom dplyr group_by #' @importFrom dplyr summarise #' @importFrom dplyr left_join #' @importFrom dplyr slice #' @importFrom dplyr n #' @importFrom dplyr ungroup #' @importFrom statmod gauss.quad #' @import rlang standsurv.fn <- function(object, type, newdata, t, i, trans="none", weighted, expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad){ tr.fun <- tr(trans) if(! type %in% c("hazard", "acsurvival", "achazard", "acrmst", "quantile", "acquantile")){ predsum <- standsurv.fn.generic(t, object, type, newdata, i, weighted, tr.fun) } else if(type == "hazard"){ predsum <- standsurv.fn.hazard(t, object, newdata, i, weighted, tr.fun) } else if(type == "quantile"){ predsum <- standsurv.fn.quantile(object, newdata, i, weighted, tr.fun, quantiles, interval) } else if(type=="acsurvival"){ predsum <- standsurv.fn.acsurvival(t, object, newdata, i, weighted, tr.fun, expsurv) } else if(type=="achazard"){ predsum <- standsurv.fn.achazard(t, object, newdata, i, weighted, tr.fun, expsurv) } else if(type=="acrmst"){ pred <- standsurv.fn.acrmst(t, object, newdata, i, rmap, ratetable, scale.ratetable, weighted, tr.fun, n.gauss.quad) predsum <- tibble(time=t, "at{i}":=pred) } else if(type=="acquantile"){ predsum <- standsurv.fn.acquantile(t, object, newdata, i, rmap, ratetable, scale.ratetable, weighted, tr.fun, quantiles, interval) } predsum } # generic standardisation function, for use with types "survival", "relsurv", "excesshazard" standsurv.fn.generic <- function(t, object, type, newdata, i, weighted, tr.fun){ pred <- summary(object, type = type, tidy = T, newdata=newdata, t=t, ci=F) pred$levels.fct <- factor(seq_along(t)) if(weighted){ pred$weights <- rep(newdata$`(weights)`, each=length(t)) predsum <- pred %>% group_by(levels.fct, time) %>% summarise("at{i}" := tr.fun(weighted.mean(.data$est, .data$weights))) %>% ungroup() %>% select(-levels.fct) } else{ predsum <- pred %>% group_by(levels.fct, time) %>% summarise("at{i}" := tr.fun(mean(.data$est))) %>% ungroup() %>% select(-levels.fct) } predsum } # hazard standardisation function, for use with type "hazard" standsurv.fn.hazard <- function(t, object, newdata, i, weighted, tr.fun){ pred <- summary(object, type = "hazard", tidy = T, newdata=newdata, t=t, ci=F) names(pred)[names(pred)=="est"] <- "h" pred <- cbind(pred, S = summary(object, type = "survival", tidy = T, newdata=newdata, t=t, ci=F)[,"est"]) pred$levels.fct <- factor(seq_along(t)) if(weighted){ pred$weights <- rep(newdata$`(weights)`, each=length(t)) predsum <- pred %>% group_by(levels.fct, time) %>% summarise("at{i}" := tr.fun(weighted.mean(.data$h,.data$S * .data$weights))) %>% ungroup() %>% select(-levels.fct) } else{ predsum <- pred %>% group_by(levels.fct, time) %>% summarise("at{i}" := tr.fun(weighted.mean(.data$h,.data$S))) %>% ungroup() %>% select(-levels.fct) } } # quantile standardisation function, for use with type "quantile" standsurv.fn.quantile <- function(object, newdata, i, weighted, tr.fun, quantiles, interval){ quantile.root.fn <- function(t, q, object, newdata, i, weighted){ as.numeric(standsurv.fn.generic(t, object, type = "survival", newdata, i, weighted, tr.fun=tr("none"))[1,2]) - (1-q) } predsum <- tibble() for(q in quantiles){ root <- uniroot(quantile.root.fn, interval = interval, q=q, object=object, newdata=newdata, i=i, weighted=weighted)$root predsum <- predsum %>% bind_rows(tibble(probability = q) %>% mutate("at{i}" := tr.fun(root))) } predsum } # acsurvival standardisation function, for use with type "acsurvival" standsurv.fn.acsurvival <- function(t, object, newdata, i, weighted, tr.fun, expsurv){ rs <- summary(object, type = "survival", tidy = T, newdata=newdata, t=t, ci=F) ## this gives predictions of relative survival for each individual rs$id <- rep(1:dim(newdata)[1],each=length(t)) names(rs)[names(rs)=="est"] <- "rs" pred <- rs %>% left_join(expsurv$expsurv, by=c("id","time")) pred$levels.fct <- factor(seq_along(t)) if(weighted){ pred$weights <- rep(newdata$`(weights)`, each=length(t)) predsum <- pred %>% group_by(levels.fct, time) %>% summarise("at{i}" := tr.fun(weighted.mean(.data$rs*.data$es, .data$weights))) %>% ungroup() %>% select(-levels.fct) } else { predsum <- pred %>% group_by(levels.fct, time) %>% summarise("at{i}" := tr.fun(mean(.data$rs*.data$es))) %>% ungroup() %>% select(-levels.fct) } predsum } # achazard standardisation function, for use with type "achazard" standsurv.fn.achazard <- function(t, object, newdata, i, weighted, tr.fun, expsurv){ rs <- summary(object, type = "survival", tidy = T, newdata=newdata, t=t, ci=F) ## this gives predictions of relative survival for each individual rs$id <- rep(1:dim(newdata)[1],each=length(t)) names(rs)[names(rs)=="est"] <- "rs" excessh <- summary(object, type = "hazard", tidy = T, newdata=newdata, t=t, ci=F) ## this gives excess hazard excessh$id <- rep(1:dim(newdata)[1],each=length(t)) names(excessh)[names(excessh)=="est"] <- "excessh" pred <- rs %>% left_join(excessh, by=c("id", "time")) %>% left_join(expsurv$expsurv, by=c("id","time")) pred$levels.fct <- factor(seq_along(t)) if(weighted){ pred$weights <- rep(newdata$`(weights)`, each=length(t)) predsum <- pred %>% group_by(levels.fct, time) %>% summarise("at{i}" := tr.fun(weighted.mean(.data$excessh*.data$eh, .data$rs*.data$es * .data$weights))) %>% ungroup() %>% select(-levels.fct) } else { predsum <- pred %>% group_by(levels.fct, time) %>% summarise("at{i}" := tr.fun(weighted.mean(.data$excessh + .data$eh, .data$rs*.data$es))) %>% ungroup() %>% select(-levels.fct) } } standsurv.fn.acrmst <- function(t, object, newdata, i, rmap, ratetable, scale.ratetable, weighted, tr.fun = tr("none"), n.gauss.quad = 100){ # Using Gauss-Legendre quadrature newdata$id <- 1:dim(newdata)[1] gaussxw <- gauss.quad(n.gauss.quad) pred <- vector() for(j in seq_along(t)){ if(t[j]==0){ pred[j] <- 0 } else { scale <- t[j]/2 points <- scale*(gaussxw$nodes + 1) eval_fn <- acsurv.int.fn(points, object, newdata, rmap, ratetable, scale.ratetable, weighted) pred[j] <- tr.fun(scale*sum(gaussxw$weights * eval_fn)) } } pred } # Function to marginal all-cause survival at any given time points average(S*(t)R*(t)) acsurv.int.fn <- function(t1, object, newdata, rmap, ratetable, scale.ratetable, weighted){ # Relative survival rs <- summary(object, type = "survival", tidy = T, newdata=newdata, t=t1, ci=F) rs$id <- rep(1:dim(newdata)[1],each=length(t1)) rs <- rs %>% left_join(newdata, by="id") ## Expected survival rs$t1.scale <- rs$time * scale.ratetable rs$es <- do.call("survexp", list(formula = t1.scale~1, rmap = rmap, method="individual.s", ratetable = ratetable, data=rs )) rs$levels.fct <- factor(seq_along(t)) if(weighted){ rssum <- rs %>% group_by(levels.fct, time) %>% summarise(acsurv = weighted.mean(.data$est*.data$es, .data$weights)) %>% ungroup() %>% select(-levels.fct) } else { rssum <- rs %>% group_by(levels.fct, time) %>% summarise(acsurv = mean(.data$est*.data$es)) %>% ungroup() %>% select(-levels.fct) } rssum$acsurv } # acquantile standardisation function, for use with type "acquantile" standsurv.fn.acquantile <- function(t, object, newdata, i, rmap, ratetable, scale.ratetable, weighted, tr.fun, quantiles, interval){ newdata$id <- 1:dim(newdata)[1] quantile.root.fn <- function(t, q, object, newdata, i, weighted){ acsurv.int.fn(t, object, newdata, rmap, ratetable, scale.ratetable, weighted) - (1-q) } predsum <- tibble() for(q in quantiles){ root <- uniroot(quantile.root.fn, interval = interval, q=q, object=object, newdata=newdata, i=i, weighted=weighted)$root predsum <- predsum %>% bind_rows(tibble(probability = q) %>% mutate("at{i}" := tr.fun(root))) } predsum } tr <- function(trans){ switch(trans, "log"= log, "none"= function(x) x, "loglog" = function(x) log(-log(1-x)), "logit" = qlogis ) } inv.tr <- function(trans){ switch(trans, "log"= exp, "none"= function(x) x, "loglog" = function(x) 1-exp(-exp(x)), "logit" = plogis ) } #' @importFrom dplyr pull boot.standsurv <- function(object, B, dat, i, t, type, type2, weighted, se, ci, cl, rawsim, predsum, expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad){ if(is.null(rawsim)) rawsim <- attributes(normboot.flexsurvreg(object, B=B, raw=T))$rawsim ## only run this once, not for every specified _at X <- form.model.matrix(object, as.data.frame(dat), na.action=na.pass) if(!(type2 %in% c("acrmst","quantile","acquantile"))){ if(!(type2 %in% c("acsurvival", "achazard"))){ sim.pred <- normbootfn.flexsurvreg(object, t=t, start=0, X=X, fn=summary_fns(object, type2), B=B, rawsim=rawsim) # pts, sims, times } else { sim.pred <- normbootfn.flexsurvreg(object, t=t, start=0, X=X, fn=summary_fns(object, type), B=B, rawsim=rawsim) # pts, sims, times } if(weighted){ weights <- array(dat$`(weights)`, dim(sim.pred)) } else { weights <- array(1, dim(sim.pred)) } if(type2=="hazard"){ # Weight individual hazards by survival function to get hazard of the standardized survival haz <- sim.pred surv <- normbootfn.flexsurvreg(object, t=t, start=0, X=X, fn=summary_fns(object, "survival"), B=B, rawsim=rawsim) # pts, sims, times stand.pred <- apply(haz*surv*weights, c(2,3),sum) / apply(surv*weights,c(2,3),sum) } else if(type2=="acsurvival"){ rs <- sim.pred es <- array(expsurv$expsurv$es, dim= dim(rs)[c(1,3,2)]) es <- aperm(es, c(1, 3, 2)) stand.pred <- apply(es*rs*weights, c(2,3),sum) / apply(weights,c(2,3),sum) } else if(type2=="achazard"){ excessh <- sim.pred rs <- normbootfn.flexsurvreg(object, t=t, start=0, X=X, fn=summary_fns(object, "survival"), B=B, rawsim=rawsim) # pts, sims, times es <- array(expsurv$expsurv$es, dim= dim(rs)[c(1,3,2)]) es <- aperm(es, c(1, 3, 2)) eh <- array(expsurv$expsurv$eh, dim= dim(rs)[c(1,3,2)]) eh <- aperm(eh, c(1, 3, 2)) stand.pred <- apply(rs*es*weights*(excessh+eh), c(2,3),sum) / apply(rs*es*weights,c(2,3),sum) } else { stand.pred <- apply(sim.pred*weights, c(2,3), sum) / apply(weights,c(2,3),sum) } } if(type2=="acrmst") { ## if type2=="acrmst" ## This for now manipulates rawsim within standsurv.fn.acrmst. This code could be made more slick. stand.pred <- matrix(nrow=B, ncol=length(t)) for(b in seq(length.out=B)) { newobject <- object newobject$res.t[,"est"] <- rawsim[b,] newobject$res[newobject$covpars,"est"] <- rawsim[b, newobject$covpars] newobject$res[newobject$dlist$pars,"est"] <- NA ## setting to NA to be safe newobject$res.t[,-1] <- newobject$res[,-1] <- NA ## setting to NA to be safe ## standardisation (averaging across patients) is done within acrmst itself stand.pred[b,] <- standsurv.fn.acrmst(t, newobject, newdata=dat, i, rmap, ratetable, scale.ratetable, weighted, tr.fun=tr("none"), n.gauss.quad) } } if(type2=="quantile"){ ## This for now manipulates rawsim within standsurv.fn.quantile. This code could be made more slick. stand.pred <- matrix(nrow=B, ncol=length(quantiles)) for(b in seq(length.out=B)) { newobject <- object newobject$res.t[,"est"] <- rawsim[b,] newobject$res[newobject$covpars,"est"] <- rawsim[b, newobject$covpars] newobject$res[newobject$dlist$pars,"est"] <- NA ## setting to NA to be safe newobject$res.t[,-1] <- newobject$res[,-1] <- NA ## setting to NA to be safe ## standardisation (averaging across patients) is done within standsurv.fn.quantile itself stand.pred[b,] <- pull(standsurv.fn.quantile(newobject, newdata=dat, i, weighted, tr.fun=tr("none"), quantiles, interval)[,2]) } } if(type2=="acquantile"){ stop("bootstrap not yet applied with acquantile") } if(se == TRUE){ stand.pred.se <- tibble("at{i}_se" := apply(stand.pred, 2, sd, na.rm=TRUE)) predsum <- predsum %>% bind_cols(stand.pred.se) } if(ci == TRUE){ stand.pred.quant <- apply(stand.pred, 2, function(x)quantile(x, c((1-cl)/2, 1 - (1-cl)/2), na.rm=TRUE) ) stand.pred.quant <- as_tibble(t(stand.pred.quant)) %>% rename("at{i}_lci" := "2.5%", "at{i}_uci" := "97.5%") predsum <- predsum %>% bind_cols(stand.pred.quant) } return(list(predsum = predsum, stand.pred=stand.pred, rawsim=rawsim)) } #' @importFrom numDeriv grad deltamethod.standsurv <- function(object, newdata, type2, t, i, se, ci, predsum, trans, cl, weighted, expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad){ if(!(type2 %in% c("quantile","acquantile"))){ g1 <- function(coef, t, trans) { object$res[,"est"] <- object$res.t[,"est"] <- coef standsurv.fn(object, type=type2, newdata=newdata, t=t, i=i, trans, weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad)[,2,drop=T] } } else { g2 <- function(coef, quantiles, trans) { object$res[,"est"] <- object$res.t[,"est"] <- coef standsurv.fn(object, type=type2, newdata=newdata, t=t, i=i, trans, weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles=quantiles, interval, n.gauss.quad)[,2,drop=T] } } est <- standsurv.fn(object, type=type2, newdata=newdata, t=t, i=i, trans="none", weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad)[,2,drop=T] var.none <- NULL if(se==TRUE){ # Calculate for each value of t the untransformed standardized measure if(!(type2 %in% c("quantile","acquantile"))){ var.none <- sapply(t, function(ti){ gd <- grad(g1, coef(object), method="simple" ,t=ti, trans="none") gd %*% vcov(object) %*% gd }) } else { var.none <- sapply(quantiles, function(q){ gd <- grad(g2, coef(object), method="simple" ,quantiles=q, trans="none") gd %*% vcov(object) %*% gd }) } stand.pred.se <- as_tibble(sqrt(var.none)) %>% rename("at{i}_se" := "value") predsum <- predsum %>% bind_cols(stand.pred.se) } if(ci==TRUE){ # Calculate for each value of t the transformed standardized measure if(trans=="none" & !is.null(var.none)){ var.trans <- var.none ## use already calculated variances } else { if(!(type2 %in% c("quantile","acquantile"))){ var.trans <- sapply(t, function(ti){ gd <- grad(g1, coef(object), method="simple" ,t=ti, trans=trans) gd %*% vcov(object) %*% gd }) } else { var.trans <- sapply(quantiles, function(q){ gd <- grad(g2, coef(object), method="simple" ,quantiles=q, trans=trans) gd %*% vcov(object) %*% gd }) } } tr.fun <- tr(trans) inv.tr.fun <- inv.tr(trans) stand.pred.lcl <- as_tibble(inv.tr.fun(tr.fun(est)+qnorm((1-cl)/2, lower.tail=T)*sqrt(var.trans))) %>% rename("at{i}_lci" := "value") stand.pred.ucl <- as_tibble(inv.tr.fun(tr.fun(est)+qnorm((1-cl)/2, lower.tail=F)*sqrt(var.trans))) %>% rename("at{i}_uci" := "value") predsum <- predsum %>% bind_cols(stand.pred.lcl, stand.pred.ucl) } predsum } #' @importFrom numDeriv grad deltamethod.contrast.standsurv <- function(object, dat, dat.ref, type2, t, i, atreference, se, ci, predsum, trans.contrast, cl, contrast, weighted, expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad){ tr.fun <- tr(trans.contrast) inv.tr.fun <- inv.tr(trans.contrast) contrast.fn <- switch(contrast, "difference"= `-`, "ratio"= `/` ) if(!(type2 %in% c("quantile","acquantile"))){ g1 <- function(coef, t, tr.fun, contrast.fn) { object$res[,"est"] <- object$res.t[,"est"] <- coef tr.fun(contrast.fn(standsurv.fn(object, type=type2, newdata=dat, t=t, i=i, trans="none", weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad)[,2,drop=T], standsurv.fn(object, type=type2, newdata=dat.ref, t=t, i=i, trans="none", weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad)[,2,drop=T])) } } else { g2 <- function(coef, quantiles, tr.fun, contrast.fn) { object$res[,"est"] <- object$res.t[,"est"] <- coef tr.fun(contrast.fn(standsurv.fn(object, type=type2, newdata=dat, t=t, i=i, trans="none", weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles=quantiles, interval, n.gauss.quad)[,2,drop=T], standsurv.fn(object, type=type2, newdata=dat.ref, t=t, i=i, trans="none", weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles=quantiles, interval, n.gauss.quad)[,2,drop=T])) } } est <- contrast.fn(standsurv.fn(object, type=type2, newdata=dat, t=t, i=i, trans="none", weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad)[,2,drop=T], standsurv.fn(object, type=type2, newdata=dat.ref, t=t, i=i, trans="none", weighted=weighted, expsurv=expsurv, rmap, ratetable, scale.ratetable, quantiles, interval, n.gauss.quad)[,2,drop=T]) stand.pred <- as_tibble(est) %>% rename("contrast{i}_{atreference}" := "value") predsum <- predsum %>% bind_cols(stand.pred) var.none <- NULL if(se==TRUE){ # Calculate for each value of t the untransformed standardized measure if(!(type2 %in% c("quantile","acquantile"))){ var.none <- sapply(t, function(ti){ gd <- grad(g1, coef(object), method="simple" ,t=ti, tr.fun=function(x) x, contrast.fn=contrast.fn) gd %*% vcov(object) %*% gd }) } else { var.none <- sapply(quantiles, function(q){ gd <- grad(g2, coef(object), method="simple" ,quantiles=q, tr.fun=function(x) x, contrast.fn=contrast.fn) gd %*% vcov(object) %*% gd }) } stand.pred.se <- as_tibble(sqrt(var.none)) %>% rename("contrast{i}_{atreference}_se" := "value") predsum <- predsum %>% bind_cols(stand.pred.se) } if(ci==TRUE){ # Calculate for each value of t the transformed standardized measure if(trans.contrast=="none" & !is.null(var.none)){ var.trans <- var.none ## use already calculated variances } else { if(!(type2 %in% c("quantile","acquantile"))){ var.trans <- sapply(t, function(ti){ gd <- grad(g1, coef(object), method="simple" ,t=ti, tr.fun=tr.fun, contrast.fn=contrast.fn) gd %*% vcov(object) %*% gd }) } else { var.trans <- sapply(quantiles, function(q){ gd <- grad(g2, coef(object), method="simple" ,quantiles=q, tr.fun=tr.fun, contrast.fn=contrast.fn) gd %*% vcov(object) %*% gd }) } } stand.pred.lcl <- as_tibble(inv.tr.fun(tr.fun(est)+qnorm((1-cl)/2, lower.tail=T)*sqrt(var.trans))) %>% rename("contrast{i}_{atreference}_lci" := "value") stand.pred.ucl <- as_tibble(inv.tr.fun(tr.fun(est)+qnorm((1-cl)/2, lower.tail=F)*sqrt(var.trans))) %>% rename("contrast{i}_{atreference}_uci" := "value") predsum <- predsum %>% bind_cols(stand.pred.lcl, stand.pred.ucl) } predsum } #' Tidy a standsurv object. #' #' This function is used internally by \code{standsurv} and tidy #' data.frames are automatically returned by the function. #' #' @param x A standsurv object. #' @param ... Not currently used. #' #' @return Returns additional tidy data.frames (tibbles) #' stored as attributes named standpred_at and standpred_contrast. #' @importFrom dplyr select #' @importFrom dplyr inner_join #' @importFrom dplyr mutate #' @importFrom tidyr pivot_longer #' @importFrom tidyselect matches #' @export #' tidy.standsurv <- function(x, ...){ standpred <- x at <-attributes(standpred)$at atreference <- attributes(standpred)$atreference type <- attributes(standpred)$type label <- attributes(standpred)$label contrast <- attributes(standpred)$contrast ci <- any(grepl("_lci",names(standpred))) by <- ifelse(type == "quantile", "probability", "time") class(standpred) <- class(standpred)[class(standpred)!="standsurv"] standpred_at <- standpred %>% select(c(all_of(by), matches("at[0-9]+$"))) %>% pivot_longer(cols=matches("at[0-9]+$"), names_to = "at", values_to = type, names_prefix = "at") if(ci){ standpred_at_lci <- standpred %>% select(c(all_of(by), matches("at[0-9]+_lci"))) %>% pivot_longer(cols=matches("at[0-9]+_lci"), names_to = "at", names_pattern = "at(.+)_lci", values_to = paste0(type,"_lci")) %>% distinct() standpred_at_uci <- standpred %>% select(c(all_of(by), matches("at[0-9]+_uci"))) %>% pivot_longer(cols=matches("at[0-9]+_uci"), names_to = "at", names_pattern = "at(.+)_uci", values_to = paste0(type,"_uci")) %>% distinct() standpred_at <- standpred_at %>% inner_join(standpred_at_lci, by=c(by,"at")) %>% inner_join(standpred_at_uci, by=c(by, "at")) } for(i in 1:length(at)){ standpred_at <- standpred_at %>% mutate(at = replace(at, at==i, label[i])) } attr(standpred,"standpred_at") <- standpred_at if(!is.null(contrast)){ ## Contrast numbers cnums <- (1:length(at))[-atreference] standpred_contrast <- standpred %>% select(c(all_of(by), matches("contrast[0-9]+_[0-9]+$"))) %>% pivot_longer(cols=matches("contrast[0-9]+_[0-9]+$"), names_to = "contrast", values_to = contrast, names_prefix = "contrast") if(ci){ standpred_contrast_lci <- standpred %>% select(c(all_of(by), matches("contrast[0-9]+_[0-9]+_lci"))) %>% pivot_longer(cols=matches("contrast[0-9]+_[0-9]+_lci"), names_to = "contrast", names_pattern = "contrast(.+)_lci", values_to = paste0(contrast,"_lci")) %>% distinct() standpred_contrast_uci <- standpred %>% select(c(all_of(by), matches("contrast[0-9]+_[0-9]+_uci"))) %>% pivot_longer(cols=matches("contrast[0-9]+_[0-9]+_uci"), names_to = "contrast", names_pattern = "contrast(.+)_uci", values_to = paste0(contrast,"_uci")) %>% distinct() standpred_contrast <- standpred_contrast %>% inner_join(standpred_contrast_lci, by=c(by, "contrast")) %>% inner_join(standpred_contrast_uci, by=c(by, "contrast")) } for(i in cnums){ standpred_contrast <- standpred_contrast %>% mutate(contrast = replace(contrast, contrast==paste0(i,"_",atreference), paste0(label[i]," vs ",label[atreference]))) } attr(standpred,"standpred_contrast") <- standpred_contrast } class(standpred) <- c("standsurv",class(standpred)) standpred } #' Plot standardized metrics from a fitted flexsurv model #' #' Plot standardized metrics such as the marginal survival, restricted mean #' survival and hazard, based on a fitted flexsurv model. #' #' @param x A standsurv object returned by \code{standsurv} #' @param contrast Should contrasts of standardized metrics be plotted. Defaults #' to FALSE #' @param ci Should confidence intervals be plotted (if calculated in #' \code{standsurv})? #' @param expected Should the marginal expected survival / hazard also be #' plotted? This can only be invoked if \code{rmap} and \code{ratetable} have #' been passed to \code{standsurv} #' @param ... Not currently used #' #' @return A ggplot showing the standardized metric calculated by #' \code{standsurv} over time. Modification of the plot is #' possible by adding further ggplot objects, see Examples. #' @import ggplot2 #' @export #' #' @examples #'## Use bc dataset, with an age variable appended #'## mean age is higher in those with smaller observed survival times #'newbc <- bc #'newbc$age <- rnorm(dim(bc)[1], mean = 65-scale(newbc$recyrs, scale=FALSE), #' sd = 5) #' #'## Fit a Weibull flexsurv model with group and age as covariates #'weib_age <- flexsurvreg(Surv(recyrs, censrec) ~ group+age, data=newbc, #' dist="weibull") #'## Calculate standardized survival and the difference in standardized survival #'## for the three levels of group across a grid of survival times #'standsurv_weib_age <- standsurv(weib_age, #' at = list(list(group="Good"), #' list(group="Medium"), #' list(group="Poor")), #' t=seq(0,7, length=100), #' contrast = "difference", ci=TRUE, #' boot = TRUE, B=10, seed=123) #'plot(standsurv_weib_age) #'plot(standsurv_weib_age) + ggplot2::theme_bw() + ggplot2::ylab("Survival") + #' ggplot2::xlab("Time (years)") + #' ggplot2::guides(color=ggplot2::guide_legend(title="Prognosis"), #' fill=ggplot2::guide_legend(title="Prognosis")) #'plot(standsurv_weib_age, contrast=TRUE, ci=TRUE) + #' ggplot2::ylab("Difference in survival") plot.standsurv <- function(x, contrast = FALSE, ci = FALSE, expected = FALSE, ...){ if(!contrast){ obj <- attributes(x)$standpred_at obj <- obj %>% mutate(Population = "Study") y <- attributes(x)$type if(y=="quantile") stop("plot method not configured for type='quantile'") group <- "at" if(expected){ if(is.null(attributes(x)$expected)) stop("Expected survival/hazards have not been calculated by standsurv") if(!(y %in% c("hazard", "achazard", "survival", "acsurvival"))) stop(paste0("Expected survival/hazards cannot be plotted with type = ",y)) if(y %in% c("hazard", "achazard")) y2 <- "exphaz" if(y %in% c("survival", "acsurvival")) y2 <- "expsurv" obj2 <- attributes(x)$expected[,c("time",y2)] %>% rename({{y}} := all_of(y2)) %>% mutate({{group}} := "Expected", Population = "Expected") obj <- obj %>% bind_rows(obj2) } } else { if(is.null(attributes(x)$standpred_contrast)) stop("Contrasts have not been calculated by standsurv") obj <- attributes(x)$standpred_contrast obj <- obj %>% mutate(Population = "Study") y <- attributes(x)$contrast group <- "contrast" if(expected) stop("Expected survival/hazard cannot be plotted with contrasts") } linetype <- c("Study" = "solid", "Expected" = "dashed") p <- ggplot() + geom_line(aes(x=.data[["time"]], y=.data[[y]], color=.data[[group]], linetype= .data[["Population"]]), data=obj) + xlab("Time") + scale_linetype_manual(values = linetype, guide="none") if(ci){ if(any(grepl("_lci",names(obj)))){ p <- p + geom_ribbon(aes(x= .data[["time"]], ymin=.data[[paste0(y,"_lci")]], ymax=.data[[paste0(y,"_uci")]], fill= .data[[group]]), data = obj, alpha=0.2) } else warning("Confidence intervals have not been calculated in standsurv. None will be plotted") } p } #' @importFrom dplyr bind_rows expsurv.fn <- function(t, rmap, ratetable, data, weighted, scale.ratetable){ expsurv <- exphaz <- tibble() for(l in 1:length(t)){ data$t.temp <- t[l] * scale.ratetable es <- do.call("survexp", list(formula = t.temp~1, rmap = rmap, method="individual.s", ratetable = ratetable, data = data )) expsurv <- expsurv %>% bind_rows(tibble(time = t[l], es = es, id = 1:dim(data)[1])) # individual hazards from difference in cumulative hazards / epsilon epsilon <- 0.001 data$t.temp.epsilon <- data$t.temp + epsilon eh.epsilon <- do.call("survexp", list(formula = t.temp.epsilon~1, rmap = rmap, method="individual.h", ratetable = ratetable, data = data )) eh.epsilon0 <- do.call("survexp", list(formula = t.temp~1, rmap = rmap, method="individual.h", ratetable = ratetable, data=data )) eh <- scale.ratetable * (eh.epsilon - eh.epsilon0) / epsilon exphaz <- exphaz %>% bind_rows(tibble(time = t[l], eh=eh, id=1:dim(data)[1])) } expsurv <- expsurv %>% inner_join(exphaz, by= c("id", "time")) if(weighted){ expsurv$weights <- rep(data$`(weights)`, each=length(t)) marginal <- expsurv %>% group_by(time) %>% summarise("expsurv" = weighted.mean(.data$es, .data$weights), "exphaz" = weighted.mean(.data$eh, .data$es * .data$weights)) } else { marginal <- expsurv %>% group_by(time) %>% summarise("expsurv" = mean(.data$es), "exphaz" = weighted.mean(.data$eh, .data$es)) } return(list(marginal=marginal, expsurv=expsurv)) } ## to remove R CMD check NOTE utils::globalVariables(c("levels.fct")) flexsurv/R/simulate_flexsurvreg.R0000644000176200001440000000770414632364677016765 0ustar liggesusers##' Simulate censored time-to-event data from a fitted flexsurvreg model ##' ##' @param object Object returned by \code{\link{flexsurvreg}}. ##' ##' @param nsim Number of simulations per row in \code{newdata}. ##' ##' @param seed Random number seed. This is returned with the result of this ##' function, as described in \code{\link{simulate}} for the \code{lm} method. ##' ##' @param newdata Data frame defining alternative sets of covariate values to simulate with. ##' If omitted, this defaults to the data originally used to fit the model. ##' ##' @template start ##' ##' @param censtime A right-censoring time, or vector of times matching the rows ##' of \code{newdata}. If \code{NULL} (the default) then uncensored times to events ##' are simulated. ##' ##' @param tidy If \code{TRUE} then a "tidy" or "long"-format data frame is ##' returned, with rows defined by combinations of covariates and simulation ##' replicates. The simulation replicate is indicated in the column named \code{i}. ##' ##' If \code{FALSE}, then a data frame is returned with one row per set of ##' covariate values, and different columns for different simulation ##' replicates. This is the traditional format for `simulate` methods in base ##' R. ##' ##' In either case, the simulated time and indicator for whether the time is ##' an event time (rather than a time of right-censoring) are returned in ##' different columns. ##' ##' @param ... Other arguments (not currently used). ##' ##' @return A data frame, with format determined by whether \code{tidy} was specified. ##' ##' @examples ##' fit <- flexsurvreg(formula = Surv(futime, fustat) ~ rx, data = ovarian, dist="weibull") ##' fit2 <- flexsurvspline(formula = Surv(futime, fustat) ~ rx, data = ovarian, k=3) ##' nd = data.frame(rx=1:2) ##' simulate(fit, seed=1002, newdata=nd) ##' simulate(fit, seed=1002, newdata=nd, start=500) ##' simulate(fit2, nsim=3, seed=1002, newdata=nd) ##' simulate(fit2, nsim=3, seed=1002, newdata=nd, start=c(500,1000)) ##' ##' @export simulate.flexsurvreg <- function(object, nsim=1, seed=NULL, newdata=NULL, start=NULL, censtime=NULL, tidy=FALSE,...) { if (is.null(newdata)) newdata <- model.frame(object) else if (!is.data.frame(newdata)) stop("`newdata` should be a data frame") if (!is.null(seed)) { set.seed(seed) attr(seed, "kind") <- as.list(RNGkind()) seed_attr <- seed } else seed_attr <- .Random.seed nd <- nrow(newdata) if (!is.numeric(nsim) || (nsim < 1)) stop("`nsim` should be a number >= 1") n <- nd*nsim if (!is.null(start)) { if(!(length(start) %in% c(1, nd))) stop(sprintf("`start` of length %s, should be of length 1 or %s = nrow(newdata)"), length(start), nd) if (length(start)==1) start <- rep(start, length.out=n) else start <- rep(start, each=nsim) } else start <- 0 U <- runif(n, 0, 1) newdata <- newdata[rep(1:nd, each=nsim), , drop=FALSE] time <- summary(object, newdata=newdata, start=start, type="quantile", quantiles=U, cross=FALSE, ci=FALSE, se=FALSE, tidy=TRUE)$est if (is.null(censtime)) censtime <- rep(Inf, nd) if (length(censtime) ==1) censtime <- rep(censtime, nd) if (length(censtime)!=nd) stop(sprintf("`censtime` of length %s, should be of length %s = nrow(newdata)", length(censtime), nd)) censtime <- rep(censtime, each = nsim) event <- as.numeric(time <= censtime) time <- ifelse(event, time, censtime) if (tidy) { res <- cbind(newdata, i=rep(1:nsim, nd), time=time, event=event) rownames(res) <- NULL } else { time <- matrix(time, nrow=nd, ncol=nsim, byrow=TRUE) event <- matrix(event, nrow=nd, ncol=nsim, byrow=TRUE) colnames(time) <- paste0("time_",1:nsim) colnames(event) <- paste0("event_",1:nsim) res <- as.data.frame(cbind(time, event)) } attr(res, "seed") <- seed_attr res } flexsurv/R/flexsurvreg.R0000644000176200001440000020640314644755325015054 0ustar liggesusers## sinh(log(y)) logh <- function(x) { 0.5 * (x - 1/x) } buildTransformer <- function(inits, nbpars, dlist) { par.transform <- lapply(seq_len(nbpars), function(ind) { xform <- dlist$inv.transforms[[ind]] function(pars) { xform(pars[[ind]]) } }) names(par.transform) <- names(inits)[seq_len(nbpars)] function(pars) { lapply(par.transform, function(item, par) { item(par) }, pars) } } buildAuxParms <- function(aux, dlist) { aux.transform <- list() for (ind in seq_along(aux)) { name <- names(aux)[[ind]] if (!(name %in% dlist$pars)) { aux.transform[[name]] <- aux[[ind]] } } aux.transform } ## Filter out warnings produced during fitting, when the optimiser visits ## parameters are on the boundary of the parameter space, as the optimiser will ## move on in these cases, and the message is unhelpful to users. call_distfn_quiet <- function(fn, args){ res <- withCallingHandlers( do.call(fn, args), warning=function(w) { if (grepl(x = w$message, pattern = "NaNs produced")) invokeRestart("muffleWarning") } ) res } logLikFactory <- function(Y, X=0, weights, bhazard, rtrunc, dlist, inits, dfns, aux, mx, fixedpars=NULL) { pars <- inits npars <- length(pars) nbpars <- length(dlist$pars) insert.locations <- setdiff(seq_len(npars), fixedpars) ## which are the subjects with known event times event <- Y[,"status"] == 1 event.times <- Y[event, "time1"] lcens.times <- Y[!event, "time2"] rcens.times <- Y[!event, "time1"] par.transform <- buildTransformer(inits, nbpars, dlist) aux.pars <- buildAuxParms(aux, dlist) do.bhazard <- any(bhazard > 0) loglik <- rep.int(0, nrow(Y)) ## the ... here is to work around optim function(optpars, ...) { pars[insert.locations] <- optpars raw.pars <- pars pars <- as.list(pars) pars.event <- pars.nevent <- pars if (npars > nbpars) { beta <- raw.pars[(nbpars+1):npars] for (i in dlist$pars){ pars[[i]] <- pars[[i]] + X[,mx[[i]],drop=FALSE] %*% beta[mx[[i]]] pars.event[[i]] <- pars[[i]][event] pars.nevent[[i]] <- pars[[i]][!event] } } fnargs <- c(par.transform(pars), aux.pars) fnargs.event <- c(par.transform(pars.event), aux.pars) fnargs.nevent <- c(par.transform(pars.nevent), aux.pars) ## Generic survival model likelihood contributions ## Observed deaths dargs <- fnargs.event dargs$x <- event.times dargs$log <- TRUE logdens <- call_distfn_quiet(dfns$d, dargs) ## Left censoring times (upper bound for event time) if (!all(event)){ pmaxargs <- fnargs.nevent pmaxargs$q <- lcens.times # Inf if right-censored, giving pmax=1 pmax <- call_distfn_quiet(dfns$p, pmaxargs) pmax[pmaxargs$q==Inf] <- 1 # in case user-defined function doesn't already do this ## Right censoring times (lower bound for event time) pargs <- fnargs.nevent pargs$q <- rcens.times pmin <- call_distfn_quiet(dfns$p, pargs) } targs <- fnargs ## Left-truncation targs$q <- Y[,"start"] plower <- call_distfn_quiet(dfns$p, targs) ## Right-truncation targs$q <- rtrunc pupper <- call_distfn_quiet(dfns$p, targs) pupper[rtrunc==Inf] <- 1 # in case the user's function doesn't already do this pobs <- pupper - plower # prob of being observed = 1 - 0 if no truncation if (do.bhazard){ # Adjust for background hazard in relative survival models pargs <- fnargs.event pargs$q <- event.times pminb <- call_distfn_quiet(dfns$p, pargs) logsurv_excess <- log(1 - pminb) loghaz_excess <- logdens - logsurv_excess haz_excess <- exp(loghaz_excess) logdens_offset <- log(1 + bhazard[event] / haz_excess) # = log(haz_allcause / haz_excess) if (!all(event)) { # background survival S* and left or interval censoring b_condsurv <- 1 - bhazard[!event] # this is S*(end) / S*(start) b_condsurv[lcens.times==Inf] <- 0 # when end=Inf, i.e. right censoring } if (any(is.finite(rtrunc))) stop("models with both right truncation and background hazards not supported") } else { logdens_offset <- 0 } ## Express as vector of individual likelihood contributions loglik[event] <- (logdens + logdens_offset) if (!all(event)){ if (do.bhazard) loglik[!event] <- log((pmax - 1)*b_condsurv + 1 - pmin) else loglik[!event] <- log(pmax - pmin) } loglik <- loglik - log(pobs) ret <- -sum(loglik*weights) attr(ret, "indiv") <- loglik ret } } minusloglik.flexsurv <- function(optpars, Y, X=0, weights, bhazard, rtrunc, dlist, inits, dfns, aux, mx, fixedpars=NULL) { logLikFactory(Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars)(optpars) } parse.dist <- function(dist){ if (is.character(dist)) { # Added: case insensitve matching of distributions # Step 1: Use match.arg on lowercase argument, dists. # Step 2: Use match to get index in distribution list from # value obtained in step 1, and grab corresponding element. dist <- match.arg(tolower(dist), tolower(names(flexsurv.dists))) dist <- names(flexsurv.dists)[match(dist,tolower(names(flexsurv.dists)))] dlist <- flexsurv.dists[[dist]] } else if (is.list(dist)) { dlist <- check.dlist(dist) } else stop("\"dist\" should be a string for a built-in distribution, or a list for a custom distribution") dlist } check.dlist <- function(dlist){ ## put tests in testthat if (is.null(dlist$name)) stop("\"name\" element of custom distribution list not given") if (!is.character(dlist$name)) stop("\"name\" element of custom distribution list should be a string") if (is.null(dlist$pars)) stop("parameter names \"pars\" not given in custom distribution list") if (!is.character(dlist$pars)) stop("parameter names \"pars\" should be a character vector") npars <- length(dlist$pars) if (is.null(dlist$location)) { warning("location parameter not given, assuming it is the first one") dlist$location <- dlist$pars[1] } if (!(dlist$location %in% dlist$pars)) { stop(sprintf("location parameter \"%s\" not in list of parameters", dlist$location)) } if (is.null(dlist$transforms)) stop("transforms not given in custom distribution list") if (is.null(dlist$inv.transforms)) stop("inverse transforms not given in custom distribution list") if (!is.list(dlist$transforms)) stop("\"transforms\" must be a list of functions") if (!is.list(dlist$inv.transforms)) stop("\"inv.transforms\" must be a list of functions") if (!all(sapply(dlist$transforms, is.function))) stop("some of \"transforms\" are not functions") if (!all(sapply(dlist$inv.transforms, is.function))) stop("some of \"inv.transforms\" are not functions") if (length(dlist$transforms) != npars) stop("transforms vector of length ",length(dlist$transforms),", parameter names of length ",npars) if (length(dlist$inv.transforms) != npars) stop("inverse transforms vector of length ",length(dlist$inv.transforms),", parameter names of length ",npars) # for (i in 1:npars){ if (is.character(dlist$transforms[[i]])) dlist$transforms[[i]] <- get(dlist$transforms[[i]]) if (is.character(dlist$inv.transforms[[i]])) dlist$inv.transforms[[i]] <- get(dlist$inv.transforms[[i]]) if (!is.function(dlist$transforms[[i]])) stop("Transformation function for parameter ", i, " not defined") if (!is.function(dlist$inv.transforms[[i]])) stop("Inverse transformation function for parameter ", i, " not defined") } if (!is.null(dlist$inits) && !is.function(dlist$inits)) stop("\"inits\" element of custom distribution list must be a function") dlist } ## Return formula for linear model on parameter called "par" ## Parameters should not have the same name as anything that might ## appear as a function in a formula (such as "I", "strata", or ## "factor"). If any parameters of the distribution being used are ## named like this, then such model functions will be interpreted as ## parameters and will not work check.formula <- function(formula, dlist, data = NULL){ if (!inherits(formula,"formula")) stop("\"formula\" must be a formula object") labs <- as.character(attr(terms(formula, data = data), "variables"))[-c(1,2)] if (!("strata" %in% dlist$pars)){ strat <- grep("strata\\((.+)\\)",labs) if (length(strat) > 0){ cov <- gsub("strata\\((.+)\\)","\\1",labs[strat[1]]) warning("Ignoring \"strata\" function: interpreting \"",cov, "\" as a covariate on \"", dlist$location, "\"") } } if (!("frailty" %in% dlist$pars)){ fra <- grep("frailty\\((.+)\\)",labs) if (length(fra) > 0){ stop("frailty models are not supported and behaviour of frailty() is undefined") } } if (!("offset" %in% dlist$pars)){ fra <- grep("offset\\((.+)\\)",labs) if (length(fra) > 0){ stop("offset() terms are not supported in formulae. To fit a model with a covariate coefficient fixed to 1, use the `inits` and `fixedpars` arguments") } } } check.fixedpars <- function(fixedpars, npars) { if (!is.null(fixedpars) && !is.logical(fixedpars) && (!is.numeric(fixedpars) || !all(fixedpars %in% 1:npars))) { dots <- if(npars>2) "...," else "" stop("fixedpars must be TRUE/FALSE or a vector of indices in 1,",dots,npars) } } anc_from_formula <- function(formula, anc, dlist, msg = "\"anc\" must be a list of formulae", data = NULL, loc_warn=TRUE) { parnames <- dlist$pars ancnames <- setdiff(parnames, dlist$location) if (is.null(anc)){ anc <- vector(mode="list", length=length(ancnames)) names(anc) <- ancnames for (i in ancnames){ anc[[i]] <- ancpar.formula(formula, i, data) } ancpar.formula(formula, dlist$location, data, location=TRUE) } else { if (!is.list(anc) || !all(sapply(anc, function(x)inherits(x, "formula")))) stop(msg) badnames <- names(anc)[!(names(anc) %in% dlist$pars)] if (length(badnames) > 0) stop(sprintf("There is no parameter of distribution `%s` called `%s`", dlist$name, badnames[1])) ## reorder components of anc to canonical order anc <- anc[dlist$pars[dlist$pars %in% names(anc)]] if (dlist$location %in% names(anc) && loc_warn) warning(sprintf("Ignoring location parameter `%s` in ancillary formula", dlist$location)) } anc } ancpar.formula <- function(formula, par, data = NULL, location=FALSE){ labs <- attr(terms(formula, data = data), "term.labels") pattern <- paste0(par,"\\((.+)\\)") labs <- grep(pattern,labs,value=TRUE) if (length(labs)==0) return(NULL) else if (location) warning(sprintf("Ignoring location parameter `%s` in ancillary formula", par)) labs <- gsub(pattern, "\\1", labs) f2 <- reformulate(labs) environment(f2) <- environment(formula) f2 } ## Omit formula terms containing ancillary parameters, leaving only ## the formula for the location parameter get.locform <- function(formula, ancnames, data = NULL){ labs <- attr(terms(formula, data = data), "term.labels") dropx <- unlist(lapply(ancnames, function(x){grep(paste0(x,"\\((.+)\\)"),labs)})) formula(terms(formula, data = data)[c(0,setdiff(seq_along(labs),dropx))]) } ## Concatenate location formula (that includes Surv response term) ## with list of ancillary formulae, giving a merged formula to obtain ## the model frame concat.formulae <- function(formula,forms, data = NULL){ covnames <- unlist(lapply(forms, function(x)attr(terms(x, data = data),"term.labels"))) covform <- if(length(covnames)==0) "1" else paste(covnames, collapse=" + ") respname <- as.character(formula[2]) form <- paste0(respname, " ~ ", covform) f2 <- eval(parse(text=form)) environment(f2) <- environment(formula) ## names of variables in the data, not the formula, with functions such as factor() stripped ## used for error message with incomplete "newdata" in summary() covnames.bare <- unlist(lapply(forms, function(x)all.vars(delete.response(terms(x, data = data))))) attr(f2, "covnames") <- covnames.bare attr(f2, "covnames.orig") <- covnames f2 } ## User-supplied initial value functions don't have to include all ## four possible arguments: this expands them if they don't #' @noRd expand.inits.args <- function(inits){ inits2 <- inits formals(inits2) <- alist(t=,mf=,mml=,aux=) body(inits2) <- body(inits) inits2 } ## User-supplied summary output functions don't have to include all ## two possible arguments: this expands them if they don't #' @noRd expand.summfn.args <- function(summfn){ summfn2 <- summfn args <- c(alist(t=,start=), formals(summfn)) formals(summfn2) <- args[!duplicated(names(args))] body(summfn2) <- body(summfn) summfn2 } ### On entry: ### event (status=1) time1=event time ### right-censoring (status=0) time1=lower bound ### left-censoring (status=2) time1=upper bound ### interval-censoring (status=3) time1=lower, time2=upper ### On exit ### time1=lower bound or event time ### time2=upper bound ### start=left truncation time ### so meaning of time1,time2 reversed with left-censoring check.flexsurv.response <- function(Y){ if (!inherits(Y, "Surv")) stop("Response must be a survival object") ### convert Y from Surv object to numeric matrix type <- attr(Y, "type") ### though "time" only used for initial values, printed time at risk, empirical hazard if (type == "counting") Y <- cbind(Y, time=Y[,"stop"] - Y[,"start"], time1=Y[,"stop"], time2=Inf) else if (type == "interval"){ # Surv() converts interval2 to interval Y[,"time2"][Y[,"status"]==0] <- Inf # upper bound with right censoring Y[,"time2"][Y[,"status"]==1] <- Y[,"time1"][Y[,"status"]==1] # event time Y[,"time2"][Y[,"status"]==2] <- Y[,"time1"][Y[,"status"]==2] Y[,"time1"][Y[,"status"]==2] <- 0 # Y <- cbind(Y, start=0, stop=Y[,"time1"], time=Y[,"time1"]) } else if (type == "right") Y <- cbind(Y, start=0, stop=Y[,"time"], time1=Y[,"time"], time2=Inf) else stop("Survival object type \"", attr(Y, "type"), "\"", " not supported") if (any(Y[,"time1"]<0)){ stop("Negative survival times in the data") } attr(Y, "type") <- type Y } compress.model.matrices <- function(mml){ cbind.drop.intercept <- function(...)do.call("cbind", lapply(list(...), function(x)x[,-1,drop=FALSE])) X <- do.call("cbind.drop.intercept",mml) loc.cnames <- colnames(mml[[1]])[-1] anc.cnames <- unlist(mapply(function(x,y)sprintf("%s(%s)",x,y), names(mml[-1]), lapply(mml[-1], function(x)colnames(x)[-1]))) cnames <- c(loc.cnames, anc.cnames) colnames(X) <- cnames X } ##' Flexible parametric regression for time-to-event data ##' ##' Parametric modelling or regression for time-to-event data. Several built-in ##' distributions are available, and users may supply their own. ##' ##' Parameters are estimated by maximum likelihood using the algorithms ##' available in the standard R \code{\link{optim}} function. Parameters ##' defined to be positive are estimated on the log scale. Confidence intervals ##' are estimated from the Hessian at the maximum, and transformed back to the ##' original scale of the parameters. ##' ##' The usage of \code{\link{flexsurvreg}} is intended to be similar to ##' \code{\link[survival]{survreg}} in the \pkg{survival} package. ##' ##' @aliases flexsurvreg flexsurv.dists ##' @param formula A formula expression in conventional R linear modelling ##' syntax. The response must be a survival object as returned by the ##' \code{\link[survival]{Surv}} function, and any covariates are given on the ##' right-hand side. For example, ##' ##' \code{Surv(time, dead) ~ age + sex} ##' ##' \code{Surv} objects of \code{type="right"},\code{"counting"}, ##' \code{"interval1"} or \code{"interval2"} are supported, corresponding to ##' right-censored, left-truncated or interval-censored observations. ##' ##' If there are no covariates, specify \code{1} on the right hand side, for ##' example \code{Surv(time, dead) ~ 1}. ##' ##' If the right hand side is specified as \code{.} all remaining variables are ##' included as covariates. For example, \code{Surv(time, dead) ~ .} ##' corresponds to \code{Surv(time, dead) ~ age + sex} if \code{data} contains ##' the variables \code{time}, \code{dead}, \code{age}, and \code{sex}. ##' ##' By default, covariates are placed on the ``location'' parameter of the ##' distribution, typically the "scale" or "rate" parameter, through a linear ##' model, or a log-linear model if this parameter must be positive. This ##' gives an accelerated failure time model or a proportional hazards model ##' (see \code{dist} below) depending on how the distribution is ##' parameterised. ##' ##' Covariates can be placed on other (``ancillary'') parameters by using the ##' name of the parameter as a ``function'' in the formula. For example, in a ##' Weibull model, the following expresses the scale parameter in terms of age ##' and a treatment variable \code{treat}, and the shape parameter in terms of ##' sex and treatment. ##' ##' \code{Surv(time, dead) ~ age + treat + shape(sex) + shape(treat)} ##' ##' However, if the names of the ancillary parameters clash with any real ##' functions that might be used in formulae (such as \code{I()}, or ##' \code{factor()}), then those functions will not work in the formula. A ##' safer way to model covariates on ancillary parameters is through the ##' \code{anc} argument to \code{\link{flexsurvreg}}. ##' ##' \code{\link[survival]{survreg}} users should also note that the function ##' \code{strata()} is ignored, so that any covariates surrounded by ##' \code{strata()} are applied to the location parameter. Likewise the ##' function \code{frailty()} is not handled. ##' ##' @param anc An alternative and safer way to model covariates on ancillary ##' parameters, that is, parameters other than the main location parameter of ##' the distribution. This is a named list of formulae, with the name of each ##' component giving the parameter to be modelled. The model above can also ##' be defined as: ##' ##' \code{Surv(time, dead) ~ age + treat, anc = list(shape = ~ sex + ##' treat)} ##' @param data A data frame in which to find variables supplied in ##' \code{formula}. If not given, the variables should be in the ##' working environment. ##' ##' @param weights Optional numeric variable giving weights for each ##' individual in the data. The fitted model is then defined by ##' maximising the weighted sum of the individual-specific log-likelihoods. ##' ##' @param bhazard Optional variable giving expected hazards for relative ##' survival models. The model is described by Nelson et al. (2007). ##' ##' \code{bhazard} should contain a vector of values for each person in ##' the data. ##' ##' \itemize{ ##' \item For people with observed events, \code{bhazard} refers to the ##' hazard at the observed event time. ##' ##' \item For people whose event time is ##' left-censored or interval-censored, \code{bhazard} should contain the ##' probability of dying by the end of the corresponding interval, ##' conditionally on being alive at the start. ##' ##' \item For people whose event time ##' is right-censored, the value of \code{bhazard} is ignored and does not ##' need to be specified. ##' } ##' ##' If \code{bhazard} is supplied, then the parameter estimates returned by ##' \code{flexsurvreg} and the outputs returned by \code{summary.flexsurvreg} ##' describe the parametric model for relative survival. ##' ##' For relative survival models, the log-likelihood returned by \code{flexsurvreg} is a partial ##' log-likelihood, which omits a constant term defined by the sum of the ##' cumulative hazards at the event or censoring time for each individual. ##' Hence this constant must be added if a full likelihood is needed. ##' ##' @param rtrunc Optional variable giving individual-specific right-truncation ##' times. Used for analysing data with "retrospective ascertainment". For ##' example, suppose we want to estimate the distribution of the time from ##' onset of a disease to death, but have only observed cases known to have ##' died by the current date. In this case, times from onset to death for ##' individuals in the data are right-truncated by the current date minus the ##' onset date. Predicted survival times for new cases can then be described ##' by an un-truncated version of the fitted distribution. ##' ##' These models can suffer from weakly identifiable parameters and ##' badly-behaved likelihood functions, and it is advised to compare ##' convergence for different initial values by supplying different ##' \code{inits} arguments to \code{flexsurvreg}. ##' ##' @param subset Vector of integers or logicals specifying the subset of the ##' observations to be used in the fit. ##' @param na.action a missing-data filter function, applied after any 'subset' ##' argument has been used. Default is \code{options()$na.action}. ##' @param dist Typically, one of the strings in the first column of the ##' following table, identifying a built-in distribution. This table also ##' identifies the location parameters, and whether covariates on these ##' parameters represent a proportional hazards (PH) or accelerated failure ##' time (AFT) model. In an accelerated failure time model, the covariate ##' speeds up or slows down the passage of time. So if the coefficient ##' (presented on the log scale) is log(2), then doubling the covariate value ##' would give half the expected survival time. ##' ##' \tabular{llll}{ \code{"gengamma"} \tab Generalized gamma (stable) \tab mu ##' \tab AFT \cr \code{"gengamma.orig"} \tab Generalized gamma (original) \tab ##' scale \tab AFT \cr \code{"genf"} \tab Generalized F (stable) \tab mu \tab ##' AFT \cr \code{"genf.orig"} \tab Generalized F (original) \tab mu \tab AFT ##' \cr \code{"weibull"} \tab Weibull \tab scale \tab AFT \cr \code{"gamma"} ##' \tab Gamma \tab rate \tab AFT \cr \code{"exp"} \tab Exponential \tab rate ##' \tab PH \cr \code{"llogis"} \tab Log-logistic \tab scale \tab AFT \cr ##' \code{"lnorm"} \tab Log-normal \tab meanlog \tab AFT \cr \code{"gompertz"} ##' \tab Gompertz \tab rate \tab PH \cr } ##' ##' \code{"exponential"} and \code{"lognormal"} can be used as aliases for ##' \code{"exp"} and \code{"lnorm"}, for compatibility with ##' \code{\link[survival]{survreg}}. ##' ##' Alternatively, \code{dist} can be a list specifying a custom distribution. ##' See section ``Custom distributions'' below for how to construct this list. ##' ##' Very flexible spline-based distributions can also be fitted with ##' \code{\link{flexsurvspline}}. ##' ##' The parameterisations of the built-in distributions used here are the same ##' as in their built-in distribution functions: \code{\link{dgengamma}}, ##' \code{\link{dgengamma.orig}}, \code{\link{dgenf}}, ##' \code{\link{dgenf.orig}}, \code{\link{dweibull}}, \code{\link{dgamma}}, ##' \code{\link{dexp}}, \code{\link{dlnorm}}, \code{\link{dgompertz}}, ##' respectively. The functions in base R are used where available, ##' otherwise, they are provided in this package. ##' ##' A package vignette "Distributions reference" lists the survivor functions ##' and covariate effect parameterisations used by each built-in distribution. ##' ##' For the Weibull, exponential and log-normal distributions, ##' \code{\link{flexsurvreg}} simply works by calling \code{\link[survival]{survreg}} to ##' obtain the maximum likelihood estimates, then calling \code{\link{optim}} ##' to double-check convergence and obtain the covariance matrix for ##' \code{\link{flexsurvreg}}'s preferred parameterisation. ##' ##' The Weibull parameterisation is different from that in ##' \code{\link[survival]{survreg}}, instead it is consistent with ##' \code{\link{dweibull}}. The \code{"scale"} reported by ##' \code{\link[survival]{survreg}} is equivalent to \code{1/shape} as defined ##' by \code{\link{dweibull}} and hence \code{\link{flexsurvreg}}. The first ##' coefficient \code{(Intercept)} reported by \code{\link[survival]{survreg}} ##' is equivalent to \code{log(scale)} in \code{\link{dweibull}} and ##' \code{\link{flexsurvreg}}. ##' ##' Similarly in the exponential distribution, the rate, rather than the mean, ##' is modelled on covariates. ##' ##' The object \code{flexsurv.dists} lists the names of the built-in ##' distributions, their parameters, location parameter, functions used to ##' transform the parameter ranges to and from the real line, and the ##' functions used to generate initial values of each parameter for ##' estimation. ##' @param inits An optional numeric vector giving initial values for each ##' unknown parameter. These are numbered in the order: baseline parameters ##' (in the order they appear in the distribution function, e.g. shape before ##' scale in the Weibull), covariate effects on the location parameter, ##' covariate effects on the remaining parameters. This is the same order as ##' the printed estimates in the fitted model. ##' ##' If not specified, default initial values are chosen from a simple summary ##' of the survival or censoring times, for example the mean is often used to ##' initialize scale parameters. See the object \code{flexsurv.dists} for the ##' exact methods used. If the likelihood surface may be uneven, it is ##' advised to run the optimisation starting from various different initial ##' values to ensure convergence to the true global maximum. ##' @param fixedpars Vector of indices of parameters whose values will be fixed ##' at their initial values during the optimisation. The indices are ordered ##' as in \code{inits}. For example, in a stable generalized Gamma model with ##' two covariates, to fix the third of three generalized gamma parameters ##' (the shape \code{Q}, see the help for \code{\link{GenGamma}}) and the ##' second covariate, specify \code{fixedpars = c(3, 5)} ##' @param dfns An alternative way to define a custom survival distribution (see ##' section ``Custom distributions'' below). A list whose components may ##' include \code{"d"}, \code{"p"}, \code{"h"}, or \code{"H"} containing the ##' probability density, cumulative distribution, hazard, or cumulative hazard ##' functions of the distribution. For example, ##' ##' \code{list(d=dllogis, p=pllogis)}. ##' ##' If \code{dfns} is used, a custom \code{dlist} must still be provided, but ##' \code{dllogis} and \code{pllogis} need not be visible from the global ##' environment. This is useful if \code{flexsurvreg} is called within other ##' functions or environments where the distribution functions are also ##' defined dynamically. ##' @param aux A named list of other arguments to pass to custom distribution ##' functions. This is used, for example, by \code{\link{flexsurvspline}} to ##' supply the knot locations and modelling scale (e.g. hazard or odds). This ##' cannot be used to fix parameters of a distribution --- use ##' \code{fixedpars} for that. ##' @param cl Width of symmetric confidence intervals for maximum likelihood ##' estimates, by default 0.95. ##' @param integ.opts List of named arguments to pass to ##' \code{\link{integrate}}, if a custom density or hazard is provided without ##' its cumulative version. For example, ##' ##' \code{integ.opts = list(rel.tol=1e-12)} ##' ##' @param sr.control For the models which use \code{\link[survival]{survreg}} to find the ##' maximum likelihood estimates (Weibull, exponential, log-normal), this list ##' is passed as the \code{control} argument to \code{\link[survival]{survreg}}. ##' ##' @param ... Optional arguments to the general-purpose optimisation routine ##' \code{\link{optim}}. For example, the BFGS optimisation algorithm is the ##' default in \code{\link{flexsurvreg}}, but this can be changed, for example ##' to \code{method="Nelder-Mead"} which can be more robust to poor initial ##' values. If the optimisation fails to converge, consider normalising the ##' problem using, for example, \code{control=list(fnscale = 2500)}, for ##' example, replacing 2500 by a number of the order of magnitude of the ##' likelihood. If 'false' convergence is reported with a ##' non-positive-definite Hessian, then consider tightening the tolerance ##' criteria for convergence. If the optimisation takes a long time, ##' intermediate steps can be printed using the \code{trace} argument of the ##' control list. See \code{\link{optim}} for details. ##' ##' @param hessian Calculate the covariances and confidence intervals for the ##' parameters. Defaults to \code{TRUE}. ##' ##' @param hess.control List of options to control covariance matrix computation. ##' Available options are: ##' ##' \code{numeric}. If \code{TRUE} then numerical methods are used ##' to compute the Hessian for models where an analytic Hessian is ##' available. These models include the Weibull (both versions), ##' exponential, Gompertz and spline models with hazard or odds ##' scale. The default is to use the analytic Hessian for these ##' models. For all other models, numerical methods are always used ##' to compute the Hessian, whether or not this option is set. ##' ##' \code{tol.solve}. The tolerance used for \code{\link{solve}} ##' when inverting the Hessian (default \code{.Machine$double.eps}) ##' ##' \code{tol.evalues} The accepted tolerance for negative ##' eigenvalues in the covariance matrix (default \code{1e-05}). ##' ##' The Hessian is positive definite, thus invertible, at the maximum ##' likelihood. If the Hessian computed after optimisation convergence can't ##' be inverted, this is either because the converged result is not the ##' maximum likelihood (e.g. it could be a "saddle point"), or because the ##' numerical methods used to obtain the Hessian were inaccurate. If you ##' suspect that the Hessian was computed wrongly enough that it is not ##' invertible, but not wrongly enough that the nearest valid inverse would be ##' an inaccurate estimate of the covariance matrix, then these tolerance ##' values can be modified (reducing \code{tol.solve} or increasing ##' \code{tol.evalues}) to allow the inverse to be computed. ##' ##' ##' @return A list of class \code{"flexsurvreg"} containing information about ##' the fitted model. Components of interest to users may include: ##' \item{call}{A copy of the function call, for use in post-processing.} ##' \item{dlist}{List defining the survival distribution used.} ##' \item{res}{Matrix of maximum likelihood estimates and confidence limits, ##' with parameters on their natural scales.} \item{res.t}{Matrix of maximum ##' likelihood estimates and confidence limits, with parameters all ##' transformed to the real line (using a log transform for all built-in ##' models where this is necessary). The ##' \code{\link{coef}}, \code{\link{vcov}} ##' and \code{\link{confint}} methods for \code{flexsurvreg} objects work on ##' this scale.} \item{coefficients}{The transformed maximum likelihood ##' estimates, as in \code{res.t}. Calling \code{coef()} on a ##' \code{\link{flexsurvreg}} object simply returns this component.} ##' \item{loglik}{Log-likelihood. This will differ from Stata, where the sum ##' of the log uncensored survival times is added to the log-likelihood in ##' survival models, to remove dependency on the time scale. ##' ##' For relative survival models specified with \code{bhazard}, this is a partial ##' log-likelihood which omits a constant term defined by the sum of the ##' cumulative hazards over all event or censoring times. ##' } ##' \item{logliki}{Vector of individual contributions to the log-likelihood} ##' \item{AIC}{Akaike's information criterion (-2*log likelihood + 2*number of ##' estimated parameters)} \item{cov}{Covariance matrix of the parameters, on ##' the real-line scale (e.g. log scale), which can be extracted with ##' \code{\link{vcov}}.} \item{data}{Data used in the model fit. To extract ##' this in the standard R formats, use use ##' \code{\link{model.frame.flexsurvreg}} or ##' \code{\link{model.matrix.flexsurvreg}}.} ##' ##' @section Custom distributions: \code{\link{flexsurvreg}} is intended to be ##' easy to extend to handle new distributions. To define a new distribution ##' for use in \code{\link{flexsurvreg}}, construct a list with the following ##' elements: ##' ##' \describe{ \item{\code{"name"}}{A string naming the distribution. If this ##' is called \code{"dist"}, for example, then there must be visible in the ##' working environment, at least, either ##' ##' a) a function called \code{ddist} which defines the probability density, ##' ##' or ##' ##' b) a function called \code{hdist} which defines the hazard. ##' ##' Ideally, in case a) there should also be a function called \code{pdist} ##' which defines the probability distribution or cumulative density, and in ##' case b) there should be a function called \code{Hdist} defining the ##' cumulative hazard. If these additional functions are not provided, ##' \pkg{flexsurv} attempts to automatically create them by numerically ##' integrating the density or hazard function. However, model fitting will ##' be much slower, or may not even work at all, if the analytic versions of ##' these functions are not available. ##' ##' The functions must accept vector arguments (representing different times, ##' or alternative values for each parameter) and return the results as a ##' vector. The function \code{\link{Vectorize}} may be helpful for doing ##' this: see the example below. ##' These functions may be in an add-on package (see below for an example) or ##' may be user-written. If they are user-written they must be defined in the ##' global environment, or supplied explicitly through the \code{dfns} argument ##' to \code{flexsurvreg}. The latter may be useful if the functions are ##' created dynamically (as in the source of \code{flexsurvspline}) and thus ##' not visible through R's scoping rules. ##' ##' Arguments other than parameters must be named in the conventional way -- ##' for example \code{x} for the first argument of the density function or ##' hazard, as in \code{\link{dnorm}(x, ...)} and \code{q} for the first ##' argument of the probability function. Density functions should also have ##' an argument \code{log}, after the parameters, which when \code{TRUE}, ##' computes the log density, using a numerically stable additive formula if ##' possible. ##' ##' Additional functions with names beginning with \code{"DLd"} and ##' \code{"DLS"} may be defined to calculate the derivatives of the log density ##' and log survival probability, with respect to the parameters of the ##' distribution. The parameters are expressed on the real line, for example ##' after log transformation if they are defined as positive. The first ##' argument must be named \code{t}, representing the time, and the remaining ##' arguments must be named as the parameters of the density function. The ##' function must return a matrix with rows corresponding to times, and columns ##' corresponding to the parameters of the distribution. The derivatives are ##' used, if available, to speed up the model fitting with \code{\link{optim}}. ##' } \item{\code{"pars"}}{Vector of strings naming the parameters of the ##' distribution. These must be the same names as the arguments of the density ##' and probability functions. } ##' \item{\code{"location"}}{Name of the main parameter governing the mean of ##' the distribution. This is the default parameter on which covariates are ##' placed in the \code{formula} supplied to \code{flexsurvreg}. } ##' \item{\code{"transforms"}}{List of R ##' functions which transform the range of values taken by each parameter onto ##' the real line. For example, \code{c(log, log)} for a distribution with two ##' positive parameters. } ##' \item{\code{"inv.transforms"}}{List of R functions defining the ##' corresponding inverse transformations. Note these must be lists, even for ##' single parameter distributions they should be supplied as, e.g. ##' \code{c(exp)} or \code{list(exp)}. } ##' \item{\code{"inits"}}{A function of the ##' observed survival times \code{t} (including right-censoring times, and ##' using the halfway point for interval-censored times) which returns a vector ##' of reasonable initial values for maximum likelihood estimation of each ##' parameter. For example, \code{function(t){ c(1, mean(t)) }} will always ##' initialize the first of two parameters at 1, and the second (a scale ##' parameter, for instance) at the mean of \code{t}. } } ##' ##' For example, suppose we want to use an extreme value survival distribution. ##' This is available in the CRAN package \pkg{eha}, which provides ##' conventionally-defined density and probability functions called ##' \code{\link[eha:EV]{eha::dEV}} and \code{\link[eha:EV]{eha::pEV}}. See the Examples below ##' for the custom list in this case, and the subsequent command to fit the ##' model. ##' @author Christopher Jackson ##' @seealso \code{\link{flexsurvspline}} for flexible survival modelling using ##' the spline model of Royston and Parmar. ##' ##' \code{\link{plot.flexsurvreg}} and \code{\link{lines.flexsurvreg}} to plot ##' fitted survival, hazards and cumulative hazards from models fitted by ##' \code{\link{flexsurvreg}} and \code{\link{flexsurvspline}}. ##' @references Jackson, C. (2016). flexsurv: A Platform for Parametric ##' Survival Modeling in R. Journal of Statistical Software, 70(8), 1-33. ##' doi:10.18637/jss.v070.i08 ##' ##' Cox, C. (2008) The generalized \eqn{F} distribution: An umbrella for ##' parametric survival analysis. Statistics in Medicine 27:4301-4312. ##' ##' Cox, C., Chu, H., Schneider, M. F. and Muñoz, A. (2007) Parametric survival ##' analysis and taxonomy of hazard functions for the generalized gamma ##' distribution. Statistics in Medicine 26:4252-4374 ##' ##' Jackson, C. H. and Sharples, L. D. and Thompson, S. G. (2010) Survival ##' models in health economic evaluations: balancing fit and parsimony to ##' improve prediction. International Journal of Biostatistics 6(1):Article 34. ##' ##' Nelson, C. P., Lambert, P. C., Squire, I. B., & Jones, D. R. (2007). ##' Flexible parametric models for relative survival, with application in ##' coronary heart disease. Statistics in medicine, 26(30), 5486-5498. ##' ##' @keywords models survival ##' @examples ##' ##' ## Compare generalized gamma fit with Weibull ##' fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="gengamma") ##' fitg ##' fitw <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="weibull") ##' fitw ##' plot(fitg) ##' lines(fitw, col="blue", lwd.ci=1, lty.ci=1) ##' ## Identical AIC, probably not enough data in this simple example for a ##' ## very flexible model to be worthwhile. ##' ##' ## Custom distribution ##' ## make "dEV" and "pEV" from eha package (if installed) ##' ## available to the working environment ##' if (require("eha")) { ##' custom.ev <- list(name="EV", ##' pars=c("shape","scale"), ##' location="scale", ##' transforms=c(log, log), ##' inv.transforms=c(exp, exp), ##' inits=function(t){ c(1, median(t)) }) ##' fitev <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, ##' dist=custom.ev) ##' fitev ##' lines(fitev, col="purple", col.ci="purple") ##' } ##' ##' ##' ## Custom distribution: supply the hazard function only ##' hexp2 <- function(x, rate=1){ rate } # exponential distribution ##' hexp2 <- Vectorize(hexp2) ##' custom.exp2 <- list(name="exp2", pars=c("rate"), location="rate", ##' transforms=c(log), inv.transforms=c(exp), ##' inits=function(t)1/mean(t)) ##' flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.exp2) ##' flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist="exp") ##' ## should give same answer ##' ##' @export flexsurvreg <- function(formula, anc=NULL, data, weights, bhazard, rtrunc, subset, na.action, dist, inits, fixedpars=NULL, dfns=NULL, aux=NULL, cl=0.95, integ.opts=NULL, sr.control=survreg.control(), hessian=TRUE, hess.control=NULL, ...) { call <- match.call() if (missing(data)) data <- NULL if (missing(dist)) stop("Distribution \"dist\" not specified") dlist <- parse.dist(dist) dfns <- form.dp(dlist, dfns, integ.opts) parnames <- dlist$pars check.formula(formula, dlist, data) anc <- anc_from_formula(formula, anc, dlist, data = data) ancnames <- setdiff(parnames, dlist$location) forms <- c(location=get.locform(formula, ancnames, data), anc) names(forms)[[1]] <- dlist$location ## a) calling model.frame() directly doesn't work. it only looks in ## "data" or the environment of "formula" for extra variables like ## "weights". needs to also look in environment of flexsurvreg. ## should handle calling flexsurvreg within a function ## Make model frame indx <- match(c("formula", "data", "weights", "bhazard", "rtrunc", "subset", "na.action"), names(call), nomatch = 0) if (indx[1] == 0) stop("A \"formula\" argument is required") temp <- call[c(1, indx)] temp[[1]] <- as.name("model.frame") f2 <- concat.formulae(formula,forms, data) temp[["formula"]] <- terms(f2) if (missing(data)) temp[["data"]] <- environment(formula) m <- eval(temp, parent.frame()) m <- droplevels_keepcontrasts(m) # remove unused factor levels after subset applied attr(m,"covnames") <- attr(f2, "covnames") # for "newdata" in summary attr(m,"covnames.orig") <- intersect(colnames(m), attr(f2, "covnames.orig")) # for finding factors in plot method Y <- check.flexsurv.response(model.extract(m, "response")) mml <- mx <- vector(mode="list", length=length(dlist$pars)) names(mml) <- names(mx) <- c(dlist$location, setdiff(dlist$pars, dlist$location)) for (i in names(forms)){ mml[[i]] <- model.matrix(forms[[i]], m) mx[[i]] <- length(unlist(mx)) + seq_len(ncol(mml[[i]][,-1,drop=FALSE])) } X <- compress.model.matrices(mml) contr.save <- lapply(mml, function(x)attr(x,"contrasts")) weights <- model.extract(m, "weights") if (is.null(weights)) weights <- m$"(weights)" <- rep(1, nrow(X)) bhazard <- model.extract(m, "bhazard") if (is.null(bhazard)) bhazard <- rep(0, nrow(X)) rtrunc <- model.extract(m, "rtrunc") if (is.null(rtrunc)) rtrunc <- rep(Inf, nrow(X)) dat <- list(Y=Y, m=m, mml=mml) ncovs <- length(attr(m, "covnames.orig")) ncoveffs <- ncol(X) nbpars <- length(parnames) # number of baseline parameters npars <- nbpars + ncoveffs if (missing(inits) && is.null(dlist$inits)) stop("\"inits\" not supplied, and no function to estimate them found in the custom distribution list") if (missing(inits) || anyNA(inits)) { yy <- ifelse(Y[,"status"]==3 & is.finite(Y[,"time2"]), (Y[,"time1"] + Y[,"time2"])/2, Y[,"time1"]) wt <- yy*weights*length(yy)/sum(weights) dlist$inits <- expand.inits.args(dlist$inits) inits.aux <- c(aux, list(forms=forms, data=if(missing(data)) NULL else data, weights=temp$weights, control=sr.control, counting=(attr(model.extract(m, "response"), "type")=="counting") )) auto.inits <- dlist$inits(t=wt,mf=m,mml=mml,aux=inits.aux) if (!missing(inits) && anyNA(inits)) inits[is.na(inits)] <- auto.inits[is.na(inits)] else inits <- auto.inits } if (!is.numeric(inits)) stop ("initial values must be a numeric vector") nin <- length(inits) if (nin < npars && ncoveffs > 0) inits <- c(inits, rep(0,length.out=npars-nin)) else if (nin > npars){ inits <- inits[1:npars] warning("Initial values are a vector length > ", npars, ": using only the first ", npars) } else if (nin < nbpars){ stop("Initial values are a vector length ", nin, ", but distribution has ",nbpars, " parameters") } for (i in 1:nbpars) inits[i] <- dlist$transforms[[i]](inits[i]) outofrange <- which(is.nan(inits) | is.infinite(inits)) if (any(outofrange)){ plural <- if(length(outofrange) > 1) "s" else "" stop("Initial value", plural, " for parameter", plural, " ", paste(outofrange,collapse=","), " out of range") } names(inits) <- c(parnames, colnames(X)) check.fixedpars(fixedpars, npars) if ((is.logical(fixedpars) && fixedpars==TRUE) || (is.numeric(fixedpars) && identical(as.vector(fixedpars), 1:npars))) { minusloglik <- minusloglik.flexsurv(inits, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx) res.t <- matrix(inits, ncol=1) inits.nat <- inits for (i in 1:nbpars) inits.nat[i] <- dlist$inv.transforms[[i]](inits[i]) res <- matrix(inits.nat, ncol=1) dimnames(res) <- dimnames(res.t) <- list(names(inits), "est") ret <- list(res=res, res.t=res.t, npars=0, loglik=-as.vector(minusloglik), logliki=attr(minusloglik,"indiv")) } else { optpars <- inits[setdiff(1:npars, fixedpars)] optim.args <- list(...) if (is.null(optim.args$method)){ optim.args$method <- "BFGS" } gr <- if (dfns$deriv && deriv_supported(Y)) Dminusloglik.flexsurv else NULL has_analytic_hessian <- dfns$hessian && !isTRUE(hess.control$numeric) && deriv_supported(Y) optim.args <- c(optim.args, list(par=optpars, fn=logLikFactory(Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, inits=inits, dlist=dlist, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars), gr=gr, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars, hessian = hessian && !has_analytic_hessian)) opt <- do.call("optim", optim.args) est <- opt$par if (has_analytic_hessian) opt$hessian <- D2minusloglik.flexsurv(est, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars) if (hessian && all(is.finite(opt$hessian))) { cov <- .hess_to_cov(opt$hessian, hess.control$tol.solve, hess.control$tol.evalues) se <- sqrt(diag(cov)) if (!is.numeric(cl) || length(cl)>1 || !(cl>0) || !(cl<1)) stop("cl must be a number in (0,1)") lcl <- est - qnorm(1 - (1-cl)/2)*se ucl <- est + qnorm(1 - (1-cl)/2)*se } else { if (hessian) warning("Optimisation has probably not converged to the maximum likelihood - Hessian is not finite. ") cov <- lcl <- ucl <- se <- NA } res <- cbind(est=inits, lcl=NA, ucl=NA, se=NA) res[setdiff(1:npars, fixedpars),] <- cbind(est, lcl, ucl, se) colnames(res) <- c("est", paste(c("L","U"), round(cl*100), "%", sep=""), "se") res.t <- res # results on transformed (log) scale for (i in 1:nbpars){ # results on natural scale res[i,1:3] <- dlist$inv.transforms[[i]](res[i,1:3]) if (identical(body(dlist$transforms[[i]]), body(log))) res[i,"se"] <- exp(res.t[i,"est"])*res.t[i,"se"] else if (identical(body(dlist$transforms[[i]]), body(logh))) res[i,"se"] <- dexph(res.t[i,"est"])*res.t[i,"se"] else if (!identical(dlist$transforms[[i]], identity)) res[i,"se"] <- NA ## theoretically could also do logit SE(g(x) = exp(x)/(1 + exp(x))) = g'(x) SE(x); g'(x) = exp(x)/(1 + exp(x))^2 ## or any interval scale (dglogit) as in msm } minusloglik <- minusloglik.flexsurv(res.t[,"est"], Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx) ret <- list(res=res, res.t=res.t, cov=cov, coefficients=res.t[,"est"], npars=length(est), fixedpars=fixedpars, optpars=setdiff(1:npars, fixedpars), loglik=-opt$value, logliki=attr(minusloglik,"indiv"), cl=cl, opt=opt) } covdata <- list(covnames = attr(dat$m, "covnames"), isfac = sapply(dat$m[,attr(dat$m,"covnames.orig"),drop=FALSE], is.factor), terms = attr(dat$m, "terms"), xlev = .getXlevels(attr(dat$m, "terms"), dat$m)) ret <- c(list(call=call, dlist=dlist, aux=aux, ncovs=ncovs, ncoveffs=ncoveffs, mx=mx, basepars=1:nbpars, covpars=if (ncoveffs>0) (nbpars+1):npars else NULL, AIC = -2*ret$loglik + 2*ret$npars, data = dat, datameans = colMeans(X), N=nrow(dat$Y), events=sum(dat$Y[,"status"]==1), trisk=sum(dat$Y[,"time"]), concat.formula=f2, all.formulae=forms, dfns=dfns), ret, list(all.contrasts=contr.save, covdata = covdata)) # temporary position so cyclomort doesn't break ret$BIC <- BIC.flexsurvreg(ret, cens=TRUE) ret <- c(ret, check_deriv(optpars=optpars, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars)) class(ret) <- "flexsurvreg" ret } check_deriv <- function(optpars, Y, X, weights, bhazard, rtrunc, dlist, inits, dfns, aux, mx, fixedpars){ if (isTRUE(getOption("flexsurv.test.analytic.derivatives")) && deriv_supported(Y)){ if (is.logical(fixedpars) && fixedpars==TRUE) { optpars <- inits; fixedpars=FALSE } if (dfns$deriv) deriv.test <- deriv_test(optpars=optpars, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars) if (dfns$hessian) hess.test <- hess.test(optpars=optpars, Y=Y, X=X, weights=weights, bhazard=bhazard, rtrunc=rtrunc, dlist=dlist, inits=inits, dfns=dfns, aux=aux, mx=mx, fixedpars=fixedpars) res <- list(deriv.test=deriv.test, hess.test=hess.test) } else res <- NULL res } ##' @export print.flexsurvreg <- function(x, ...) { covs <- names(x$datameans) covinds <- match(covs, rownames(x$res)) cat("Call:\n") dput(x$call) cat("\n") if (x$npars > 0) { res <- x$res cat ("Estimates: \n") if (any(covinds)) { ecoefs <- matrix(NA, nrow=nrow(x$res), ncol=3) colnames(ecoefs) <- c("exp(est)", colnames(res)[2:3]) means <- rep(NA,nrow(x$res)) ecoefs[covinds,] <- exp(x$res[covinds,1:3,drop=FALSE]) means[covinds] <- x$datameans res <- cbind(means, res, ecoefs) colnames(res)[1] <- "data mean" } args <- list(...) if (is.null(args$digits)) args$digits <- 3 f <- do.call("format", c(list(x=res), args)) print(f, print.gap=2, quote=FALSE, na.print="") } llname <- if (all(x$bhazard == 0)) "Log-likelihood" else "Partial log-likelihood" llname <- sprintf("\n%s = ", llname) aicname <- if (all(x$bhazard == 0)) "AIC" else "Partial AIC" aicname <- sprintf("\n%s = ", aicname) cat("\nN = ", x$N, ", Events: ", x$events, ", Censored: ", x$N - x$events, "\nTotal time at risk: ", x$trisk, llname, x$loglik, ", df = ", x$npars, aicname, x$AIC, "\n\n", sep="") } form.model.matrix <- function(object, newdata, na.action=na.pass, forms=NULL){ ## If required covariate missing, give a slightly more informative error message than, e.g. ## "Error in eval(expr, envir, enclos) (from flexsurvreg.R#649) : object 'sex' not found" covnames <- object$covdata$covnames missing.covs <- unique(covnames[!covnames %in% names(newdata)]) if (length(missing.covs) > 0){ missing.covs <- sprintf("\"%s\"", missing.covs) plural <- if (length(missing.covs)>1) "s" else "" stop(sprintf("Value%s of covariate%s ",plural,plural), paste(missing.covs, collapse=", "), " not supplied in \"newdata\"") } ## as in predict.lm Terms <- delete.response(object$covdata$terms) mf <- model.frame(Terms, newdata, xlev = object$covdata$xlev, na.action=na.action) if (!is.null(cl <- attr(Terms, "dataClasses"))) .checkMFClasses(cl, mf) if (is.null(forms)) forms <- object$all.formulae mml <- vector(mode="list", length=length(forms)) names(mml) <- names(forms) forms[[1]] <- delete.response(terms(forms[[1]])) for (i in seq_along(forms)){ mml[[i]] <- model.matrix(forms[[i]], mf, contrasts.arg = object$all.contrasts[[i]]) } X <- compress.model.matrices(mml) attr(X, "newdata") <- mf # newdata with any extra variables stripped. Used to name components of summary list X } ##' Variance-covariance matrix from a flexsurvreg model ##' ##' @inheritParams logLik.flexsurvreg ##' ##' @return Variance-covariance matrix of the estimated parameters, on ##' the scale that they were estimated on (for positive parameters ##' this is the log scale). ##' ##' @export vcov.flexsurvreg <- function (object, ...) { object$cov } .onLoad <- function(libname, pkgname) { assign("flexsurv.dfns", new.env(), envir=parent.env(environment())) } ##' Extract original data from \code{flexsurvreg} objects. ##' ##' Extract the data from a model fitted with \code{flexsurvreg}. ##' ##' ##' @aliases model.frame.flexsurvreg model.matrix.flexsurvreg ##' @param formula A fitted model object, as returned by ##' \code{\link{flexsurvreg}}. ##' @param object A fitted model object, as returned by ##' \code{\link{flexsurvreg}}. ##' @param par String naming the parameter whose linear model matrix is ##' desired. ##' ##' The default value of \code{par=NULL} returns a matrix consisting of the ##' model matrices for all models in the object \code{cbind}ed together, with ##' the intercepts excluded. This is not really a ``model matrix'' in the ##' usual sense, however, the columns directly correspond to the covariate ##' coefficients in the matrix of estimates from the fitted model. ##' @param ... Further arguments (not used). ##' @return \code{model.frame} returns a data frame with all the original ##' variables used for the model fit. ##' ##' \code{model.matrix} returns a design matrix for a part of the model that ##' includes covariates. The required part is indicated by the \code{"par"} ##' argument (see above). ##' @author C. H. Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' @seealso \code{\link{flexsurvreg}}, \code{\link{model.frame}}, ##' \code{\link{model.matrix}}. ##' @keywords models ##' @export model.frame.flexsurvreg <- function(formula, ...) { x <- formula x$data$m } ##' @export ##' @rdname model.frame.flexsurvreg model.matrix.flexsurvreg <- function(object, par=NULL, ...) { x <- object if (is.null(par)) compress.model.matrices(x$data$mml) else x$data$mml[[par]] } ##' Log likelihood from a flexsurvreg model ##' ##' @param object A fitted model object of class ##' \code{\link{flexsurvreg}}, e.g. as returned by ##' \code{flexsurvreg} or \code{flexsurvspline}. ##' ##' @param ... Other arguments (currently unused). ##' ##' @return Log-likelihood (numeric) with additional attributes \code{df} (degrees of freedom, or number ##' of parameters that were estimated), and number of observations \code{nobs} (including observed ##' events and censored observations). ##' ##' @export logLik.flexsurvreg <- function(object, ...){ val <- object$loglik attr(val, "df") <- object$npars attr(val, "nobs") <- object$N class(val) <- "logLik" val } ##' Extract model coefficients from fitted flexible survival models ##' ##' Extract model coefficients from fitted flexible survival models. This ##' presents all parameter estimates, transformed to the real line if necessary. ##' For example, shape or scale parameters, which are constrained to be ##' positive, are returned on the log scale. ##' ##' This matches the behaviour of \code{coef.default} for standard R model ##' families such as \code{\link[stats]{glm}}, where intercepts in regression ##' models are presented on the same scale as the covariate effects. Note that ##' any parameter in a distribution fitted by \code{\link{flexsurvreg}} or ##' \code{\link{flexsurvreg}} may be an intercept in a regression model. #' ##' @param object Output from \code{\link{flexsurvreg}} or ##' \code{\link{flexsurvspline}}, representing a fitted survival model object. ##' @param ... Further arguments passed to or from other methods. Currently ##' unused. ##' @return This returns the \code{mod$res.t[,"est"]} component of the fitted ##' model object \code{mod}. See \code{\link{flexsurvreg}}, ##' \code{\link{flexsurvspline}} for full documentation of all components. ##' @author C. H. Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' @seealso \code{\link{flexsurvreg}}, \code{\link{flexsurvspline}}. ##' @keywords models ##' @export coef.flexsurvreg <- function(object, ...){ object$coefficients } ##' Number of observations contributing to a fitted flexible survival model ##' ##' Number of observations contributing to a fitted flexible survival model ##' ##' By default, this matches the behaviour of the \code{nobs} method for \code{\link[survival]{survreg}} objects, including both censored and uncensored observations. ##' ##' If a weighted \code{flexsurvreg} analysis was done, then this function returns the sum of the weights. ##' ##' @param object Output from \code{\link{flexsurvreg}} or ##' \code{\link{flexsurvspline}}, representing a fitted survival model object. ##' ##' @param cens Include censored observations in the number. \code{TRUE} by default. ##' If \code{FALSE} then the number of observed events is returned. See ##' \code{\link{BIC.flexsurvreg}} for a discussion of the issues ##' with defining the sample size for censored data. ##' ##' @param ... Further arguments passed to or from other methods. Currently ##' unused. ##' ##' @return This returns the \code{mod$N} component of the fitted ##' model object \code{mod}. See \code{\link{flexsurvreg}}, ##' \code{\link{flexsurvspline}} for full documentation of all components. ##' ##' @author C. H. Jackson \email{chris.jackson@@mrc-bsu.cam.ac.uk} ##' ##' @seealso \code{\link{flexsurvreg}}, \code{\link{flexsurvspline}}. ##' ##' @keywords models ##' ##' @export nobs.flexsurvreg <- function(object, cens=TRUE, ...){ if (cens) ind <- seq(length.out=nrow(object$data$Y)) else ind <- which(object$data$Y[,"status"] == 1) sum(object$data$m[ind,"(weights)"]) } ##' Bayesian Information Criterion (BIC) for comparison of flexsurvreg models ##' ##' Bayesian Information Criterion (BIC) for comparison of flexsurvreg models ##' ##' @param object Fitted model returned by \code{\link{flexsurvreg}} ##' (or \code{\link{flexsurvspline}}). ##' ##' @param cens Include censored observations in the sample size term ##' (\code{n}) used in the calculation of BIC. ##' ##' @return The BIC of the fitted model. This is minus twice the log likelihood plus \code{p*log(n)}, where ##' \code{p} is the number of parameters and \code{n} is the sample ##' size of the data. If \code{weights} was supplied to ##' \code{flexsurv}, the sample size is defined as the sum of the ##' weights. ##' ##' @param ... Other arguments (currently unused). ##' ##' @details There is no "official" definition of what the sample size ##' should be for the use of BIC in censored survival analysis. BIC ##' is based on an approximation to Bayesian model comparison using ##' Bayes factors and an implicit vague prior. Informally, the ##' sample size describes the number of "units" giving rise to a ##' distinct piece of information (Kass and Raftery 1995). However ##' censored observations provide less information than observed ##' events, in principle. The default used here is the number of ##' individuals, for consistency with more familiar kinds of ##' statistical modelling. However if censoring is heavy, then the ##' number of events may be a better represent the amount of ##' information. Following these principles, the best approximation ##' would be expected to be somewere in between. ##' ##' AIC and BIC are intended to measure different things. Briefly, ##' AIC measures predictive ability, whereas BIC is expected to choose ##' the true model from a set of models where one of them is the ##' truth. Therefore BIC chooses simpler models for all but the ##' tiniest sample sizes (\eqn{log(n)>2}, \eqn{n>7}). AIC might be preferred in the ##' typical situation where ##' "all models are wrong but some are useful". AIC also gives similar ##' results to cross-validation (Stone 1977). ##' ##' @references Kass, R. E., & Raftery, A. E. (1995). Bayes ##' factors. Journal of the American Statistical Association, ##' 90(430), 773-795. ##' ##' @references Stone, M. (1977). An asymptotic equivalence of choice ##' of model by crossâ€validation and Akaike's criterion. Journal of ##' the Royal Statistical Society: Series B (Methodological), 39(1), ##' 44-47. ##' ##' @seealso \code{\link{BIC}}, \code{\link{AIC}}, \code{\link{AICC.flexsurvreg}}, \code{\link{nobs.flexsurvreg}} ##' ##' @export BIC.flexsurvreg <- function(object, cens = TRUE, ...){ n <- nobs.flexsurvreg(object, cens=cens) -2*object$loglik + object$npars * log(n) } ##' Second-order Akaike information criterion ##' ##' Second-order or "corrected" Akaike information criterion, often ##' known as AICc (see, e.g. Burnham and Anderson 2002). This is ##' defined as -2 log-likelihood + \code{(2*p*n)/(n - p -1)}, whereas ##' the standard AIC is defined as -2 log-likelihood + \code{2*p}, ##' where \code{p} is the number of parameters and \code{n} is the ##' sample size. The correction is intended to adjust AIC for ##' small-sample bias, hence it only makes a difference to the result ##' for small \code{n}. ##' ##' This can be spelt either as \code{AICC} or \code{AICc}. ##' ##' @param object Fitted model returned by \code{\link{flexsurvreg}} ##' (or \code{\link{flexsurvspline}}). ##' ##' @param cens Include censored observations in the sample size term ##' (\code{n}) used in this calculation. See ##' \code{\link{BIC.flexsurvreg}} for a discussion of the issues ##' with defining the sample size. ##' ##' @param ... Other arguments (currently unused). ##' ##' @references Burnham, K. P., Anderson, D. R. (2002) Model Selection and Multimodel Inference: a practical information-theoretic approach. Second edition. Springer: New York. ##' ##' @return The second-order AIC of the fitted model. ##' ##' @seealso \code{\link{BIC}}, \code{\link{AIC}}, \code{\link{BIC.flexsurvreg}}, \code{\link{nobs.flexsurvreg}} ##' ##' @export AICc.flexsurvreg <- function(object, cens=TRUE, ...){ n <- nobs.flexsurvreg(object, cens=cens) p <- object$npars ## equivalently: object$AIC + ((2 * p) * (p + 1) / (n - p - 1)) -2*object$loglik + (2*p*n) / (n - p - 1) } ##' @rdname AICc.flexsurvreg ##' @export AICC.flexsurvreg <- AICc.flexsurvreg ##' Second-order Akaike information criterion ##' ##' Generic function for the second-order Akaike information criterion. ##' The only current implementation of this in \pkg{flexsurv} is ##' in \code{\link{AICc.flexsurvreg}}, see there for more details. ##' ##' This can be spelt either as \code{AICC} or \code{AICc}. ##' ##' @param object Fitted model object. ##' ##' @param ... Other arguments (currently unused). ##' ##' @export AICc <- function (object, ...) UseMethod("AICc") ##' @rdname AICc ##' @export AICC <- AICc deriv_supported <- function(Y){ event <- Y[,"status"] == 1 left_cens <- is.finite(Y[!event, "time2"]) !any(left_cens) } droplevels_factor_keepcontrasts <- function (x, exclude = if (anyNA(levels(x))) NULL else NA, ...) { ct <- attr(x, "contrasts") x <- factor(x, exclude = exclude) contrasts(x) <- ct x } droplevels_keepcontrasts <- function (x, except = NULL, exclude, ...) { ix <- vapply(x, is.factor, NA) if (!is.null(except)) ix[except] <- FALSE x[ix] <- if (missing(exclude)) lapply(x[ix], droplevels_factor_keepcontrasts) else lapply(x[ix], droplevels_factor_keepcontrasts, exclude = exclude) x } flexsurv/R/broom-funs.R0000644000176200001440000002350414644755103014560 0ustar liggesusers#' Tidy a flexsurv model object #' #' Tidy summarizes information about the components of the model into a tidy data frame. #' #' @param x Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object. #' #' @param conf.int Logical. Should confidence intervals be returned? Default is \code{FALSE}. #' #' @param conf.level The confidence level to use for the confidence interval if \code{conf.int = TRUE}. Default is \code{0.95}. #' #' @param pars One of \code{"all"}, \code{"baseline"}, or \code{"coefs"} for all parameters, baseline distribution parameters, or covariate effects (i.e. regression betas), respectively. Default is \code{"all"}. #' #' @param transform Character vector of transformations to apply to requested \code{pars}. Default is \code{"none"}, which returns \code{pars} as-is. #' #' Users can specify one or both types of transformations: #' #' * \code{"baseline.real"} which transforms the baseline distribution parameters to the real number line used for estimation. #' #' * \code{"coefs.exp"} which exponentiates the covariate effects. #' #' See \code{Details} for a more complete explanation. #' #' @param ... Not currently used. #' #' @details \code{flexsurvreg} models estimate two types of coefficients, baseline distribution parameters, and covariate effects which act on the baseline distribution. By design, \code{flexsurvreg} returns distribution parameters on the same scale as is found in the relevant \code{d/p/q/r} functions. Covariate effects are returned on the log-scale, which represents either log-time ratios (accelerated failure time models) or log-hazard ratios for proportional hazard models. By default, \code{tidy()} will return baseline distribution parameters on their natural scale and covariate effects on the log-scale. #' #' To transform the baseline distribution parameters to the real-value number line (the scale used for estimation), pass the character argument \code{"baseline.real"} to \code{transform}. To get time ratios or hazard ratios, pass \code{"coefs.exp"} to \code{transform}. These transformations may be done together by submitting both arguments as a character vector. #' #' @return A \code{\link[tibble]{tibble}} containing the columns: \code{term}, \code{estimate}, \code{std.error}, \code{statistic}, \code{p.value}, \code{conf.low}, and \code{conf.high}, by default. #' #' \code{statistic} and \code{p.value} are only provided for covariate effects (\code{NA} for baseline distribution parameters). These are computed as Wald-type test statistics with p-values from a standard normal distribution. #' #' @importFrom purrr map2_dbl #' #' @md #' #' @export #' #' @examples #' #' fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") #' tidy(fitg) #' tidy(fitg, pars = "coefs", transform = "coefs.exp") #' tidy.flexsurvreg <- function(x, conf.int = FALSE, conf.level = 0.95, pars = "all", transform = "none", ...) { assertthat::assert_that(is.logical(conf.int)) if (conf.int) assertthat::assert_that(is.numeric(conf.level), conf.level > 0, conf.level < 1, length(conf.level) == 1, msg = "`conf.level` must be length one and between 0 and 1") pars <- match.arg(pars, c("all", "coefs", "baseline")) transform <- match.arg(transform, c("none", "baseline.real", "coefs.exp"), several.ok = TRUE) dist_pars <- x$dlist$pars if ("baseline.real" %in% transform) vals <- x$res.t else vals <- x$res coefs <- vals[, "est"] terms <- rownames(vals) ses <- vals[, "se"] stats <- coefs / ses; stats[names(stats) %in% dist_pars] <- NA pvals <- 2 * pnorm(abs(stats), lower.tail = FALSE) coef_pars <- terms[which(!terms %in% dist_pars)] if (conf.int) cis <- confint(x, level = conf.level) else cis <- NULL if (!"baseline.real" %in% transform && any(rownames(cis) %in% dist_pars)) { cis[rownames(cis) %in% dist_pars, 1] <- purrr::map2_dbl(cis[rownames(cis) %in% dist_pars, 1], x$dlist$inv.transforms, ~.y(.x)) cis[rownames(cis) %in% dist_pars, 2] <- purrr::map2_dbl(cis[rownames(cis) %in% dist_pars, 2], x$dlist$inv.transforms, ~.y(.x)) } if ("coefs.exp" %in% transform & conf.int) { coefs[terms %in% coef_pars] <- exp(coefs[terms %in% coef_pars]) ses[terms %in% coef_pars] <- exp(ses[terms %in% coef_pars]) cis[terms %in% coef_pars] <- exp(cis[terms %in% coef_pars]) } else if ("coefs.exp" %in% transform) { coefs[terms %in% coef_pars] <- exp(coefs[terms %in% coef_pars]) ses[terms %in% coef_pars] <- exp(ses[terms %in% coef_pars]) } lcl <- cis[, 1] ucl <- cis[, 2] res <- tibble::tibble( term = terms, estimate = coefs, std.error = ses, statistic = stats, p.value = pvals, conf.low = !!lcl, conf.high = !!ucl ) if (pars == "coefs") { return(res[res$term %in% coef_pars, ]) } else if (pars == "baseline") { return(res[res$term %in% dist_pars, ]) } else { res } } #' @importFrom generics tidy #' @export generics::tidy #' Glance at a flexsurv model object #' #' Glance accepts a model object and returns a tibble with exactly one row of model summaries. #' #' @param x Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object. #' #' @param ... Not currently used. #' #' @return A one-row \code{\link[tibble]{tibble}} containing columns: #' #' * \code{N} Number of observations used in fitting #' #' * \code{events} Number of events #' #' * \code{censored} Number of censored events #' #' * \code{trisk} Total length of time-at-risk (i.e. follow-up) #' #' * \code{df} Degrees of freedom (i.e. number of estimated parameters) #' #' * \code{logLik} Log-likelihood #' #' * \code{AIC} Akaike's "An Information Criteria" #' #' * \code{BIC} Bayesian Information Criteria #' #' @export #' #' @md #' #' @examples #' fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") #' glance(fitg) #' glance.flexsurvreg <- function(x, ...) { tibble::tibble( N = x$N, events = x$events, censored = x$N - x$events, trisk = x$trisk, df = x$npars, # global test statistic? # global p.value? logLik = x$loglik, AIC = x$AIC, BIC = BIC(x) ) } #' @importFrom generics glance #' @export generics::glance #' Augment data with information from a flexsurv model object #' #' Augment accepts a model object and a dataset and adds information about each observation in the dataset. Most commonly, this includes predicted values in the \code{.fitted} column, residuals in the \code{.resid} column, and standard errors for the fitted values in a \code{.se.fit} column. New columns always begin with a . prefix to avoid overwriting columns in the original dataset. #' #' @param x Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object. #' #' @param data A \code{\link{data.frame}} or \code{\link[tibble]{tibble}} containing the original data that was used to produce the object \code{x}. #' #' @param newdata A \code{\link{data.frame}} or \code{\link[tibble]{tibble}} containing all the original predictors used to create \code{x}. Defaults to \code{NULL}, indicating that nothing has been passed to \code{newdata}. If \code{newdata} is specified, the \code{data} argument will be ignored. #' #' @param type.predict Character indicating type of prediction to use. Passed to the \code{type} argument of the \code{\link{predict}} generic. Allowed arguments vary with model class, so be sure to read the \code{predict.my_class} documentation. #' #' @param type.residuals Character indicating type of residuals to use. Passed to the type argument of \code{\link{residuals}} generic. Allowed arguments vary with model class, so be sure to read the \code{residuals.my_class} documentation. #' #' @param ... Additional arguments. Not currently used. #' #' @details If neither of \code{data} or \code{newdata} are specified, then \code{model.frame(x)} will be used. It is worth noting that \code{model.frame(x)} will include a \code{\link[survival]{Surv}} object and not the original time-to-event variables used when fitting the \code{flexsurvreg} object. If the original data is desired, specify \code{data}. #' #' @return A \code{\link[tibble]{tibble}} containing \code{data} or \code{newdata} and possible additional columns: #' #' * \code{.fitted} Fitted values of model #' #' * \code{.se.fit} Standard errors of fitted values #' #' * \code{.resid} Residuals (not present if \code{newdata} specified) #' #' @importFrom tidyr unnest #' #' @md #' #' @export #' #' @examples #' fit <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "exp") #' augment(fit, data = ovarian) #' augment.flexsurvreg <- function(x, data = NULL, newdata = NULL, type.predict = "response", type.residuals = "response", ...) { if (is.null(data) && is.null(newdata)) { data <- model.frame(x) } type.predict <- match.arg(type.predict, c("response")) type.residuals <- match.arg(type.residuals, c("response")) if (is.null(newdata)) { preds <- predict(x, type = type.predict, se.fit = TRUE) res <- tibble::as_tibble(data) res <- dplyr::bind_cols( res, preds, .resid = residuals(x, type = type.residuals) ) } else { preds <- predict(x, type = type.predict, se.fit = TRUE, newdata = newdata) res <- tibble::as_tibble(newdata) res <- dplyr::bind_cols(res, preds) } res } utils::globalVariables(".pred") #' @importFrom generics augment #' @export generics::augment flexsurv/R/Llogis.R0000644000176200001440000001236414472142637013725 0ustar liggesusers##' The log-logistic distribution ##' ##' Density, distribution function, hazards, quantile function and ##' random generation for the log-logistic distribution. ##' ##' The log-logistic distribution with \code{shape} parameter ##' \eqn{a>0} and \code{scale} parameter \eqn{b>0} has probability ##' density function ##' ##' \deqn{f(x | a, b) = (a/b) (x/b)^{a-1} / (1 + (x/b)^a)^2} ##' ##' and hazard ##' ##' \deqn{h(x | a, b) = (a/b) (x/b)^{a-1} / (1 + (x/b)^a)} ##' ##' for \eqn{x>0}. The hazard is decreasing for shape \eqn{a\leq 1}{a ##' <= 1}, and unimodal for \eqn{a > 1}. ##' ##' The probability distribution function is \deqn{F(x | a, b) = 1 - 1 ##' / (1 + (x/b)^a)} ##' ##' If \eqn{a > 1}, the mean is \eqn{b c / sin(c)}, and if \eqn{a > 2} ##' the variance is \eqn{b^2 * (2*c/sin(2*c) - c^2/sin(c)^2)}, where ##' \eqn{c = \pi/a}, otherwise these are undefined. ##' ##' @aliases Llogis dllogis pllogis qllogis hllogis Hllogis rllogis ##' @param x,q vector of quantiles. ##' @param p vector of probabilities. ##' @param n number of observations. If \code{length(n) > 1}, the ##' length is taken to be the number required. ##' @param shape,scale vector of shape and scale parameters. ##' @param log,log.p logical; if TRUE, probabilities p are given as ##' log(p). ##' @param lower.tail logical; if TRUE (default), probabilities are ##' \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}. ##' @return \code{dllogis} gives the density, \code{pllogis} gives the ##' distribution function, \code{qllogis} gives the quantile function, ##' \code{hllogis} gives the hazard function, \code{Hllogis} gives the ##' cumulative hazard function, and \code{rllogis} generates random ##' deviates. ##' @note Various different parameterisations of this distribution are ##' used. In the one used here, the interpretation of the parameters ##' is the same as in the standard Weibull distribution ##' (\code{\link{dweibull}}). Like the Weibull, the survivor function ##' is a transformation of \eqn{(x/b)^a} from the non-negative real line to [0,1], ##' but with a different link function. Covariates on \eqn{b} ##' represent time acceleration factors, or ratios of expected ##' survival. ##' ##' The same parameterisation is also used in ##' \code{\link[eha:Loglogistic]{eha::dllogis}} in the \pkg{eha} package. ##' @author Christopher Jackson ##' @seealso \code{\link{dweibull}} ##' @references Stata Press (2007) Stata release 10 manual: Survival analysis ##' and epidemiological tables. ##' @keywords distribution ##' @name Llogis NULL ##' @export ##' @rdname Llogis dllogis <- function(x, shape=1, scale=1, log = FALSE) { check_numeric(x=x, shape=shape, scale=scale) dllogis_work(x, shape, scale, log) } ##' @export ##' @rdname Llogis pllogis <- function(q, shape=1, scale=1, lower.tail = TRUE, log.p = FALSE) { check_numeric(q=q, shape=shape, scale=scale) pllogis_work(q, shape, scale, lower.tail, log.p) } ##' @export ##' @rdname Llogis qllogis <- function(p, shape=1, scale=1, lower.tail = TRUE, log.p = FALSE) { d <- dbase("llogis", lower.tail=lower.tail, log=log.p, p=p, shape=shape, scale=scale) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) # lower.tail is handled in dbase() by transforming p to 1-p ret[ind] <- exp(qlogis(p, log(scale), 1/shape, lower.tail=TRUE, log.p)) ret } ##' @export ##' @rdname Llogis rllogis <- function(n, shape=1, scale=1){ r <- rbase("llogis", n=n, shape=shape, scale=scale) for (i in seq_along(r)) assign(names(r)[i], r[[i]]) ret[ind] <- qllogis(p=runif(sum(ind)), shape=shape, scale=scale) ret } ##' @export ##' @rdname Llogis hllogis <- function(x, shape=1, scale=1, log = FALSE) { h <- dbase("llogis", log=log, x=x, shape=shape, scale=scale) for (i in seq_along(h)) assign(names(h)[i], h[[i]]) if (log) ret[ind] <- log(shape) - log(scale) + (shape-1)*(log(x) - log(scale)) - log(1 + (x/scale)^shape) else ret[ind] <- (shape/scale) * (x/scale)^{shape-1} / (1 + (x/scale)^shape) ret } ##' @export ##' @rdname Llogis Hllogis <- function(x, shape=1, scale=1, log = FALSE) { ret <- - pllogis(x, shape, scale, lower.tail=FALSE, log.p=TRUE) if (log) ret <- log(ret) ret } DLdllogis <- function(t, shape, scale){ res <- matrix(nrow=length(t), ncol=2) tss <- (t/scale)^shape ilt <- tss / (1 + tss) res[,1] <- 1 + (1 - 2*ilt)*shape*log(t/scale) res[,2] <- - shape + 2*ilt*shape res } DLSllogis <- function(t, shape, scale){ res <- matrix(nrow=length(t), ncol=2) tss <- (t/scale)^shape ilt <- tss / (1 + tss) res[,1] <- ifelse(t==0, 0, -ilt*log(t/scale)*shape) res[,2] <- shape*ilt res } ##' @export ##' @rdname means mean_llogis <- function(shape=1, scale=1){ ifelse(shape > 1, {b <- pi/shape scale*b / sin(b)}, NaN) } ##' @export ##' @rdname means rmst_llogis = function(t, shape=1, scale=1, start=0){ rmst_generic(pllogis, t, start=start, shape=shape, scale=scale) } var.llogis <- function(shape=1, scale=1){ ifelse(shape > 2, {b <- pi/shape scale^2 * (2*b/sin(2*b) - b^2/sin(b)^2)}, NaN) } flexsurv/R/GenF.R0000644000176200001440000003306714603767312013315 0ustar liggesusers##' Generalized F distribution (original parameterisation) ##' ##' Density, distribution function, quantile function and random ##' generation for the generalized F distribution, using the less ##' flexible original parameterisation described by Prentice (1975). ##' ##' If \eqn{y \sim F(2s_1, 2s_2)}{y ~ F(2*s1, 2*s2)}, and \eqn{w = \log(y)}{w = ##' log(y)} then \eqn{x = \exp(w\sigma + \mu)}{x = ##' exp(w*sigma + mu)} has the original generalized F distribution with ##' location parameter \eqn{\mu}{mu}, scale parameter \eqn{\sigma>0}{sigma>0} ##' and shape parameters \eqn{s_1>0,s_2>0}{s1>0,s2>0}. The probability density ##' function of \eqn{x} is ##' ##' \deqn{f(x | \mu, \sigma, s_1, s_2) = \frac{(s_1/s_2)^{s_1} e^{s_1 w}}{\sigma x (1 + s_1 e^w/s_2) ^ {(s_1 + s_2)} B(s_1, s_2)}}{ ##' f(x | mu, sigma, s_1, s_2) = ((s1/s2)^{s1} e^{s1 w}) / (sigma x (1 + s1 e^w/s2) ^ (s1 + s2) B(s1, s2))} ##' ##' where \eqn{w = (\log(x) - \mu)/\sigma}{w = (log(x) - mu)/sigma}, and ##' \eqn{B(s_1,s_2) = \Gamma(s_1)\Gamma(s_2)/\Gamma(s_1+s_2)}{B(s1,s2) = ##' \Gamma(s1)\Gamma(s2)/\Gamma(s1+s2)} is the beta function. ##' ##' As \eqn{s_2 \rightarrow \infty}{s2 -> infinity}, the distribution ##' of \eqn{x} tends towards an original generalized gamma ##' distribution with the following parameters: ##' ##' \code{\link{dgengamma.orig}(x, shape=1/sigma, scale=exp(mu) / ##' s1^sigma, k=s1)} ##' ##' See \code{\link{GenGamma.orig}} for how this includes several ##' other common distributions as special cases. ##' ##' The alternative parameterisation of the generalized F ##' distribution, originating from Prentice (1975) and given in this ##' package as \code{\link{GenF}}, is preferred for statistical ##' modelling, since it is more stable as \eqn{s_1}{s1} tends to ##' infinity, and includes a further new class of distributions with ##' negative first shape parameter. The original is provided here for ##' the sake of completion and compatibility. ##' ##' @aliases GenF.orig dgenf.orig pgenf.orig qgenf.orig rgenf.orig Hgenf.orig ##' hgenf.orig ##' @param x,q vector of quantiles. ##' @param p vector of probabilities. ##' @param n number of observations. If \code{length(n) > 1}, the length is ##' taken to be the number required. ##' @param mu Vector of location parameters. ##' @param sigma Vector of scale parameters. ##' @param s1 Vector of first F shape parameters. ##' @param s2 vector of second F shape parameters. ##' @param log,log.p logical; if TRUE, probabilities p are given as log(p). ##' @param lower.tail logical; if TRUE (default), probabilities are \eqn{P(X ##' \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}. ##' @return \code{dgenf.orig} gives the density, \code{pgenf.orig} gives the ##' distribution function, \code{qgenf.orig} gives the quantile function, ##' \code{rgenf.orig} generates random deviates, \code{Hgenf.orig} retuns the ##' cumulative hazard and \code{hgenf.orig} the hazard. ##' @author Christopher Jackson ##' @seealso \code{\link{GenF}}, \code{\link{GenGamma.orig}}, ##' \code{\link{GenGamma}} ##' @references R. L. Prentice (1975). Discrimination among some parametric ##' models. Biometrika 62(3):607-614. ##' @keywords distribution ##' @name GenF.orig NULL ##' Generalized F distribution ##' ##' Density, distribution function, hazards, quantile function and ##' random generation for the generalized F distribution, using the ##' reparameterisation by Prentice (1975). ##' ##' If \eqn{y \sim F(2s_1, 2s_2)}{y ~ F(2*s1, 2*s2)}, and \eqn{w = }{w = ##' log(y)}\eqn{ \log(y)}{w = log(y)} then \eqn{x = \exp(w\sigma + \mu)}{x = ##' exp(w*sigma + mu)} has the original generalized F distribution with ##' location parameter \eqn{\mu}{mu}, scale parameter \eqn{\sigma>0}{sigma>0} ##' and shape parameters \eqn{s_1,s_2}{s1,s2}. ##' ##' In this more stable version described by Prentice (1975), ##' \eqn{s_1,s_2}{s1,s2} are replaced by shape parameters \eqn{Q,P}, with ##' \eqn{P>0}, and ##' ##' \deqn{s_1 = 2(Q^2 + 2P + Q\delta)^{-1}, \quad s_2 = 2(Q^2 + 2P - ##' Q\delta)^{-1}}{s1 = 2 / (Q^2 + 2P + Q*delta), s2 = 2 / (Q^2 + 2P - ##' Q*delta)} equivalently \deqn{Q = \left(\frac{1}{s_1} - ##' \frac{1}{s_2}\right)\left(\frac{1}{s_1} + \frac{1}{s_2}\right)^{-1/2}, ##' \quad P = \frac{2}{s_1 + s_2} }{Q = (1/s1 - 1/s2) / (1/s1 + 1/s2)^{-1/2}, P ##' = 2 / (s1 + s2) } ##' ##' Define \eqn{\delta = (Q^2 + 2P)^{1/2}}{delta = (Q^2 + 2P)^{1/2}}, and ##' \eqn{w = (\log(x) - \mu)\delta /\sigma}{w = (log(x) - mu)delta / sigma}, ##' then the probability density function of \eqn{x} is \deqn{ f(x) = ##' \frac{\delta (s_1/s_2)^{s_1} e^{s_1 w}}{\sigma x (1 + s_1 e^w/s_2) ^ {(s_1 ##' + s_2)} B(s_1, s_2)} }{ f(x) = (delta (s1/s2)^{s1} e^{s1 w}) / (sigma t (1 ##' + s1 e^w/s2) ^ {(s1 + s2)} B(s1, s2)) } The ##' original parameterisation is available in this package as ##' \code{\link{dgenf.orig}}, for the sake of completion / compatibility. With ##' the above definitions, ##' ##' \code{dgenf(x, mu=mu, sigma=sigma, Q=Q, P=P) = dgenf.orig(x, mu=mu, ##' sigma=sigma/delta, s1=s1, s2=s2)} ##' ##' The generalized F distribution with \code{P=0} is equivalent to the ##' generalized gamma distribution \code{\link{dgengamma}}, so that ##' \code{dgenf(x, mu, sigma, Q, P=0)} equals \code{dgengamma(x, mu, sigma, ##' Q)}. The generalized gamma reduces further to several common ##' distributions, as described in the \code{\link{GenGamma}} help page. ##' ##' The generalized F distribution includes the log-logistic distribution (see ##' \code{\link[eha:Loglogistic]{eha::dllogis}}) as a further special case: ##' ##' \code{dgenf(x, mu=mu, sigma=sigma, Q=0, P=1) = \link[eha:Loglogistic]{eha::dllogis}(x, ##' shape=sqrt(2)/sigma, scale=exp(mu))} ##' ##' The range of hazard trajectories available under this distribution are ##' discussed in detail by Cox (2008). Jackson et al. (2010) give an ##' application to modelling oral cancer survival for use in a health economic ##' evaluation of screening. ##' ##' @aliases GenF dgenf pgenf qgenf rgenf Hgenf hgenf ##' @param x,q Vector of quantiles. ##' @param p Vector of probabilities. ##' @param n number of observations. If \code{length(n) > 1}, the length is ##' taken to be the number required. ##' @param mu Vector of location parameters. ##' @param sigma Vector of scale parameters. ##' @param Q Vector of first shape parameters. ##' @param P Vector of second shape parameters. ##' @param log,log.p logical; if TRUE, probabilities p are given as log(p). ##' @param lower.tail logical; if TRUE (default), probabilities are \eqn{P(X ##' \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}. ##' @return \code{dgenf} gives the density, \code{pgenf} gives the distribution ##' function, \code{qgenf} gives the quantile function, \code{rgenf} generates ##' random deviates, \code{Hgenf} retuns the cumulative hazard and \code{hgenf} ##' the hazard. ##' @note The parameters \code{Q} and \code{P} are usually called \eqn{q} and ##' \eqn{p} in the literature - they were made upper-case in these R functions ##' to avoid clashing with the conventional arguments \code{q} in the ##' probability function and \code{p} in the quantile function. ##' @author Christopher Jackson ##' @seealso \code{\link{GenF.orig}}, \code{\link{GenGamma}} ##' @references R. L. Prentice (1975). Discrimination among some parametric ##' models. Biometrika 62(3):607-614. ##' ##' Cox, C. (2008). The generalized \eqn{F} distribution: An umbrella for ##' parametric survival analysis. Statistics in Medicine 27:4301-4312. ##' ##' Jackson, C. H. and Sharples, L. D. and Thompson, S. G. (2010). Survival ##' models in health economic evaluations: balancing fit and parsimony to ##' improve prediction. International Journal of Biostatistics 6(1):Article ##' 34. ##' @keywords distribution ##' @name GenF NULL ## Generalized F distribution (Prentice 1975 parameterisation) ## For P=0 this is equivalent to the generalized (log-)gamma (Prentice 1974) ## P=Q=0, lognormal ## P=0, Q=1, Weibull ## Equation 2 in C.Cox (2008) is wrong, delta*beta*m1 not beta*m1 in first exponent in numerator ##' @export ##' @rdname GenF dgenf <- function(x, mu=0, sigma=1, Q, P, log=FALSE) { check_numeric(x=x, mu=mu, sigma=sigma, Q=Q, P=P) dgenf_work(x, mu, sigma, Q, P, log) } ##' @export ##' @rdname GenF pgenf <- function(q, mu=0, sigma=1, Q, P, lower.tail = TRUE, log.p = FALSE) { check_numeric(q=q, mu=mu, sigma=sigma, Q=Q, P=P) pgenf_work(q, mu, sigma, Q, P, lower.tail, log.p) } ##' @export ##' @rdname GenF Hgenf <- function(x, mu=0, sigma=1, Q, P) { -log(pgenf(q=x, mu=mu, sigma=sigma, Q=Q, P=P, lower.tail=FALSE)) } ##' @export ##' @rdname GenF hgenf <- function(x, mu=0, sigma=1, Q, P) { logdens <- dgenf(x = x, mu = mu, sigma = sigma, Q = Q, P = P, log=TRUE) logsurv <- pgenf(q = x, mu = mu, sigma = sigma, Q = Q, P = P, lower.tail = FALSE, log.p=TRUE) loghaz <- logdens - logsurv exp(loghaz) } ##' @export ##' @rdname GenF qgenf <- function(p, mu=0, sigma=1, Q, P, lower.tail = TRUE, log.p = FALSE) { d <- dbase("genf", lower.tail=lower.tail, log=log.p, p=p, mu=mu, sigma=sigma, Q=Q, P=P) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) ret[ind][P==0] <- qgengamma(p[P==0], mu[P==0], sigma[P==0], Q[P==0]) pn0 <- P!=0 if (any(pn0)) { mu <- mu[pn0]; sigma <- sigma[pn0]; Q <- Q[pn0]; P <- P[pn0] tmp <- Q^2 + 2*P delta <- sqrt(tmp) s1 <- 2 / (tmp + Q*delta) s2 <- 2 / (tmp - Q*delta) w <- log(qf(p, 2*s1, 2*s2)) ret[ind][pn0] <- exp(w*sigma/delta + mu) } ret } ##' @export ##' @rdname GenF rgenf <- function(n, mu=0, sigma=1, Q, P) { r <- rbase("genf", n=n, mu=mu, sigma=sigma, Q=Q, P=P) for (i in seq_along(r)) assign(names(r)[i], r[[i]]) ret[ind][P==0] <- rgengamma(sum(P==0), mu[P==0], sigma[P==0], Q[P==0]) pn0 <- P!=0 if (any(pn0)) { mu <- mu[pn0]; sigma <- sigma[pn0]; Q <- Q[pn0]; P <- P[pn0] tmp <- Q^2 + 2*P delta <- sqrt(tmp) s1 <- 2 / (tmp + Q*delta) s2 <- 2 / (tmp - Q*delta) w <- log(rf(sum(pn0), 2*s1, 2*s2)) ret[ind][pn0] <- exp(w*sigma/delta + mu) } ret } ##' @export ##' @rdname means rmst_genf= function(t, mu, sigma, Q, P, start=0){ rmst_generic(pgenf, t, start=start, mu=mu, sigma=sigma, Q=Q, P=P) } ##' @export ##' @rdname means mean_genf = function(mu, sigma, Q, P){ rmst_generic(pgenf, Inf, start=0, mu=mu, sigma=sigma, Q=Q, P=P) } ##' @export ##' @rdname GenF.orig dgenf.orig <- function(x, mu=0, sigma=1, s1, s2, log=FALSE) { d <- dbase("genf.orig", log=log, x=x, mu=mu, sigma=sigma, s1=s1, s2=s2) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) w <- (log(x) - mu)/sigma expw <- x^(1/sigma)*exp(-mu/sigma) logdens <- -log(sigma*x) + s1*(log(s1) + w - log(s2)) - (s1+s2)*log(1 + s1*expw/s2) - lbeta(s1, s2) ret[ind] <- if (log) logdens else exp(logdens) ret } ##' @export ##' @rdname GenF.orig pgenf.orig <- function(q, mu=0, sigma=1, s1, s2, lower.tail = TRUE, log.p = FALSE) { d <- dbase("genf.orig", lower.tail=lower.tail, log=log.p, q=q, mu=mu, sigma=sigma, s1=s1, s2=s2) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) w <- (log(q) - mu)/sigma prob <- 1 - pbeta(s2/(s2 + s1*exp(w)), s2, s1) if (!lower.tail) prob <- 1 - prob if (log.p) prob <- log(prob) ret[ind] <- prob ret } ##' @export ##' @rdname GenF.orig Hgenf.orig <- function(x, mu=0, sigma=1, s1, s2) { -log(pgenf.orig(q=x, mu=mu, sigma=sigma, s1=s1, s2=s2, lower.tail=FALSE)) } ##' @export ##' @rdname GenF.orig hgenf.orig <- function(x, mu=0, sigma=1, s1, s2) { logdens <- dgenf.orig(x = x, mu = mu, sigma = sigma, s1 = s1, s2 = s2, log=TRUE) logsurv <- pgenf.orig(q = x, mu = mu, sigma = sigma, s1 = s1, s2 = s2, lower.tail = FALSE, log.p=TRUE) loghaz <- logdens - logsurv exp(loghaz) } ##' @export ##' @rdname GenF.orig qgenf.orig <- function(p, mu=0, sigma=1, s1, s2, lower.tail = TRUE, log.p = FALSE) { d <- dbase("genf.orig", lower.tail=lower.tail, log=log.p, p=p, mu=mu, sigma=sigma, s1=s1, s2=s2) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) w <- log(qf(p, 2*s1, 2*s2)) ret[ind] <- exp(w*sigma + mu) ret } ##' @export ##' @rdname GenF.orig rgenf.orig <- function(n, mu=0, sigma=1, s1, s2) { r <- rbase("genf.orig", n=n, mu=mu, sigma=sigma, s1=s1, s2=s2) for (i in seq_along(r)) assign(names(r)[i], r[[i]]) w <- log(rf(n, 2*s1, 2*s2)) ret[ind] <- exp(w*sigma + mu) ret } ##' @export ##' @rdname means rmst_genf.orig= function(t, mu, sigma, s1, s2, start=0){ rmst_generic(pgenf.orig, t, start=start, mu=mu, sigma=sigma, s1=s1, s2=s2) } ##' @export ##' @rdname means mean_genf.orig = function(mu, sigma, s1, s2){ rmst_generic(pgenf.orig, Inf, start=0, mu=mu, sigma=sigma, s1=s1, s2=s2) } check.genf.orig <- function(mu, sigma, s1, s2){ ret <- rep(TRUE, length(mu)) if (missing(s1)) stop("shape parameter \"s1\" not given") if (missing(s2)) stop("shape parameter \"s2\" not given") if (any(!is.na(sigma) & sigma < 0)) { warning("Negative scale parameter \"sigma\"") ret[!is.na(sigma) & sigma < 0] <- FALSE } if (any(!is.na(s1) & s1 < 0)) { warning("Negative shape parameter \"s1\""); ret[!is.na(s1) & s1 < 0] <- FALSE } if (any(!is.na(s2) & s2 < 0)) { warning("Negative shape parameter \"s2\""); ret[!is.na(s2) & s2 < 0] <- FALSE } ret } ## Thanks to Skif Pankov ## currently undocumented and unused! ## Only defined for s2 > sigma ## mean for gengamma.orig will follow ## TODO replace integrate version with this, check equal #mean_genf.orig <- function(mu, sigma, s1, s2){ # if (s2 <= sigma) NaN else exp(mu) * (s2/s1)^sigma * gamma(s1 + sigma)*gamma(s2 - sigma) / (gamma(s1)*gamma(s2)) #} flexsurv/R/GenGamma.R0000644000176200001440000003261114472142603014136 0ustar liggesusers##' Generalized gamma distribution (original parameterisation) ##' ##' Density, distribution function, hazards, quantile function and ##' random generation for the generalized gamma distribution, using ##' the original parameterisation from Stacy (1962). ##' ##' If \eqn{w \sim Gamma(k,1)}{w ~ Gamma(k, 1)}, then \eqn{x = ##' \exp(w/shape + \log(scale))}{x = exp(w/shape + log(scale))} ##' follows the original generalised gamma distribution with the ##' parameterisation given here (Stacy 1962). Defining ##' \code{shape}\eqn{=b>0}, \code{scale}\eqn{=a>0}, \eqn{x} has ##' probability density ##' ##' \deqn{f(x | a, b, k) = \frac{b}{\Gamma(k)} \frac{x^{bk - 1}}{a^{bk}} }{ f(x ##' | a, b, k) = (b / \Gamma(k)) (x^{bk -1} / a^{bk}) exp(-(x/a)^b)}\deqn{ ##' \exp(-(x/a)^b)}{ f(x | a, b, k) = (b / \Gamma(k)) (x^{bk -1} / a^{bk}) ##' exp(-(x/a)^b)} ##' ##' The original generalized gamma distribution simplifies to the ##' gamma, exponential and Weibull distributions with the following ##' parameterisations: ##' ##' \tabular{lcl}{ \code{dgengamma.orig(x, shape, scale, k=1)} \tab \code{=} ##' \tab \code{\link{dweibull}(x, shape, scale)} \cr \code{dgengamma.orig(x, ##' shape=1, scale, k)} \tab \code{=} \tab \code{\link{dgamma}(x, shape=k, ##' scale)} \cr \code{dgengamma.orig(x, shape=1, scale, k=1)} \tab \code{=} ##' \tab \code{\link{dexp}(x, rate=1/scale)} \cr } ##' ##' Also as k tends to infinity, it tends to the log normal (as in ##' \code{\link{dlnorm}}) with the following parameters (Lawless, ##' 1980): ##' ##' \code{dlnorm(x, meanlog=log(scale) + log(k)/shape, ##' sdlog=1/(shape*sqrt(k)))} ##' ##' For more stable behaviour as the distribution tends to the log-normal, an ##' alternative parameterisation was developed by Prentice (1974). This is ##' given in \code{\link{dgengamma}}, and is now preferred for statistical ##' modelling. It is also more flexible, including a further new class of ##' distributions with negative shape \code{k}. ##' ##' The generalized F distribution \code{\link{GenF.orig}}, and its similar ##' alternative parameterisation \code{\link{GenF}}, extend the generalized ##' gamma to four parameters. ##' ##' @aliases GenGamma.orig dgengamma.orig pgengamma.orig qgengamma.orig ##' rgengamma.orig Hgengamma.orig hgengamma.orig ##' @param x,q vector of quantiles. ##' @param p vector of probabilities. ##' @param n number of observations. If \code{length(n) > 1}, the length is ##' taken to be the number required. ##' @param shape vector of ``Weibull'' shape parameters. ##' @param scale vector of scale parameters. ##' @param k vector of ``Gamma'' shape parameters. ##' @param log,log.p logical; if TRUE, probabilities p are given as log(p). ##' @param lower.tail logical; if TRUE (default), probabilities are \eqn{P(X ##' \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}. ##' @return \code{dgengamma.orig} gives the density, \code{pgengamma.orig} ##' gives the distribution function, \code{qgengamma.orig} gives the quantile ##' function, \code{rgengamma.orig} generates random deviates, ##' \code{Hgengamma.orig} retuns the cumulative hazard and ##' \code{hgengamma.orig} the hazard. ##' @author Christopher Jackson ##' @seealso \code{\link{GenGamma}}, \code{\link{GenF.orig}}, ##' \code{\link{GenF}}, \code{\link{Lognormal}}, \code{\link{GammaDist}}, ##' \code{\link{Weibull}}. ##' @references Stacy, E. W. (1962). A generalization of the gamma ##' distribution. Annals of Mathematical Statistics 33:1187-92. ##' ##' Prentice, R. L. (1974). A log gamma model and its maximum likelihood ##' estimation. Biometrika 61(3):539-544. ##' ##' Lawless, J. F. (1980). Inference in the generalized gamma and log gamma ##' distributions. Technometrics 22(3):409-419. ##' @keywords distribution ##' @name GenGamma.orig NULL ##' Generalized gamma distribution ##' ##' Density, distribution function, hazards, quantile function and ##' random generation for the generalized gamma distribution, using ##' the parameterisation originating from Prentice (1974). Also known ##' as the (generalized) log-gamma distribution. ##' ##' If \eqn{\gamma \sim Gamma(Q^{-2}, 1)}{g ~ Gamma(Q^{-2}, 1)} , and \eqn{w = ##' log(Q^2 \gamma) / Q}{w = log(Q^2*g) / Q}, then \eqn{x = \exp(\mu + \sigma ##' w)}{x = exp(mu + sigma w)} follows the generalized gamma distribution with ##' probability density function ##' ##' \deqn{f(x | \mu, \sigma, Q) = \frac{|Q|(Q^{-2})^{Q^{-2}}}{\sigma x ##' \Gamma(Q^{-2})} \exp(Q^{-2}(Qw - \exp(Qw)))}{ f(x | mu, sigma, Q) = |Q| ##' (Q^{-2})^{Q^{-2}} / (sigma * x * Gamma(Q^{-2})) exp(Q^{-2}*(Q*w - ##' exp(Q*w)))} ##' ##' This parameterisation is preferred to the original ##' parameterisation of the generalized gamma by Stacy (1962) since it ##' is more numerically stable near to \eqn{Q=0} (the log-normal ##' distribution), and allows \eqn{Q<=0}. The original is available ##' in this package as \code{\link{dgengamma.orig}}, for the sake of ##' completion and compatibility with other software - this is ##' implicitly restricted to \code{Q}>0 (or \code{k}>0 in the original ##' notation). The parameters of \code{\link{dgengamma}} and ##' \code{\link{dgengamma.orig}} are related as follows. ##' ##' \code{dgengamma.orig(x, shape=shape, scale=scale, k=k) = } ##' ##' \code{dgengamma(x, mu=log(scale) + log(k)/shape, sigma=1/(shape*sqrt(k)), ##' Q=1/sqrt(k))} ##' ##' The generalized gamma distribution simplifies to the gamma, ##' log-normal and Weibull distributions with the following ##' parameterisations: ##' ##' \tabular{lcl}{ \code{dgengamma(x, mu, sigma, Q=0)} \tab \code{=} \tab ##' \code{dlnorm(x, mu, sigma)} \cr \code{dgengamma(x, mu, sigma, Q=1)} \tab ##' \code{=} \tab \code{dweibull(x, shape=1/sigma, scale=exp(mu))} \cr ##' \code{dgengamma(x, mu, sigma, Q=sigma)} \tab \code{=} \tab \code{dgamma(x, ##' shape=1/sigma^2, rate=exp(-mu) / sigma^2)} \cr } The properties of the ##' generalized gamma and its applications to survival analysis are discussed ##' in detail by Cox (2007). ##' ##' The generalized F distribution \code{\link{GenF}} extends the generalized ##' gamma to four parameters. ##' ##' @aliases GenGamma dgengamma pgengamma qgengamma rgengamma Hgengamma ##' hgengamma ##' @param x,q vector of quantiles. ##' @param p vector of probabilities. ##' @param n number of observations. If \code{length(n) > 1}, the length is ##' taken to be the number required. ##' @param mu Vector of ``location'' parameters. ##' @param sigma Vector of ``scale'' parameters. Note the inconsistent ##' meanings of the term ``scale'' - this parameter is analogous to the ##' (log-scale) standard deviation of the log-normal distribution, ``sdlog'' in ##' \code{\link{dlnorm}}, rather than the ``scale'' parameter of the gamma ##' distribution \code{\link{dgamma}}. Constrained to be positive. ##' @param Q Vector of shape parameters. ##' @param log,log.p logical; if TRUE, probabilities p are given as log(p). ##' @param lower.tail logical; if TRUE (default), probabilities are \eqn{P(X ##' \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}. ##' @return \code{dgengamma} gives the density, \code{pgengamma} gives the ##' distribution function, \code{qgengamma} gives the quantile function, ##' \code{rgengamma} generates random deviates, \code{Hgengamma} retuns the ##' cumulative hazard and \code{hgengamma} the hazard. ##' @author Christopher Jackson ##' @seealso \code{\link{GenGamma.orig}}, \code{\link{GenF}}, ##' \code{\link{Lognormal}}, \code{\link{GammaDist}}, \code{\link{Weibull}}. ##' @references Prentice, R. L. (1974). A log gamma model and its maximum ##' likelihood estimation. Biometrika 61(3):539-544. ##' ##' Farewell, V. T. and Prentice, R. L. (1977). A study of ##' distributional shape in life testing. Technometrics 19(1):69-75. ##' ##' Lawless, J. F. (1980). Inference in the generalized gamma and log ##' gamma distributions. Technometrics 22(3):409-419. ##' ##' Cox, C., Chu, H., Schneider, M. F. and Muñoz, A. (2007). ##' Parametric survival analysis and taxonomy of hazard functions for ##' the generalized gamma distribution. Statistics in Medicine ##' 26:4252-4374 ##' ##' Stacy, E. W. (1962). A generalization of the gamma distribution. ##' Annals of Mathematical Statistics 33:1187-92 ##' @keywords distribution ##' @name GenGamma NULL ## Log-gamma or generalized gamma distribution (parameterisation as in Farewell and Prentice, Technometrics 1977) ### FIXME value for x = 0 ##' @export ##' @rdname GenGamma dgengamma <- function(x, mu=0, sigma=1, Q, log=FALSE) { check_numeric(x=x, mu=mu, sigma=sigma, Q=Q) dgengamma_work(x, mu, sigma, Q, log) } ##' @export ##' @rdname GenGamma pgengamma <- function(q, mu=0, sigma=1, Q, lower.tail = TRUE, log.p = FALSE) { check_numeric(q=q, mu=mu, sigma=sigma, Q=Q) pgengamma_work(q, mu, sigma, Q, lower.tail, log.p) } ##' @export ##' @rdname GenGamma Hgengamma <- function(x, mu=0, sigma=1, Q) { -pgengamma(q=x, mu=mu, sigma=sigma, Q=Q, lower.tail=FALSE, log.p=TRUE) } ##' @export ##' @rdname GenGamma hgengamma <- function(x, mu=0, sigma=1, Q) { logdens <- dgengamma(x = x, mu = mu, sigma = sigma, Q = Q, log=TRUE) logsurv <- pgengamma(q = x, mu = mu, sigma = sigma, Q = Q, lower.tail = FALSE, log.p=TRUE) loghaz <- logdens - logsurv exp(loghaz) } ##' @export ##' @rdname GenGamma qgengamma <- function(p, mu=0, sigma=1, Q, lower.tail = TRUE, log.p = FALSE) { d <- dbase("gengamma", lower.tail=lower.tail, log=log.p, p=p, mu=mu, sigma=sigma, Q=Q) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) p[Q<0] <- 1 - p[Q<0] ret[ind] <- numeric(sum(ind)) ret[ind][Q==0] <- qlnorm(p[Q==0], mu[Q==0], sigma[Q==0]) qn0 <- Q!=0 p <- p[qn0]; mu <- mu[qn0]; sigma <- sigma[qn0]; Q <- Q[qn0] ret[ind][qn0] <- exp(mu + sigma*(log(Q^2*qgamma(p, 1/Q^2, 1)) / Q)) ret } ##' @export ##' @rdname GenGamma rgengamma <- function(n, mu=0, sigma=1, Q) { r <- rbase("gengamma", n=n, mu=mu, sigma=sigma, Q=Q) for (i in seq_along(r)) assign(names(r)[i], r[[i]]) ret[ind][Q==0] <- rlnorm(n, mu, sigma) qn0 <- Q!=0 if (any(qn0)) { mu <- mu[qn0]; sigma <- sigma[qn0]; Q <- Q[qn0] w <- log(Q^2*rgamma(n, 1/Q^2, 1)) / Q ret[ind][qn0] <- exp(mu + sigma*w) } ret } ##' @export ##' @rdname means rmst_gengamma = function(t, mu=0, sigma=1, Q, start=0){ rmst_generic(pgengamma, t, start=start, mu=mu, sigma=sigma, Q=Q) } ##' @export ##' @rdname means mean_gengamma = function(mu=0, sigma=1, Q){ rmst_generic(pgengamma, Inf, start=0, mu=mu, sigma=sigma, Q=Q) } ### FIXME limiting value for x=0: 0 if bk >1, 1 if b=k=1, ... ? ##' @export ##' @rdname GenGamma.orig dgengamma.orig <- function(x, shape, scale=1, k, log=FALSE){ d <- dbase("gengamma.orig", log=log, x=x, shape=shape, scale=scale, k=k) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) logdens <- log(shape) - lgamma(k) + (shape*k - 1)*log(x) - shape*k*log(scale) - (x/scale)^shape ret[ind] <- if (log) logdens else exp(logdens) ret } ##' @export ##' @rdname GenGamma.orig pgengamma.orig <- function(q, shape, scale=1, k, lower.tail = TRUE, log.p = FALSE) { d <- dbase("gengamma.orig", lower.tail=lower.tail, log=log.p, q=q, shape=shape, scale=scale, k=k) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) y <- log(q) w <- (y - log(scale))*shape prob <- pgamma(exp(w), shape=k) if (!lower.tail) prob <- 1 - prob if (log.p) prob <- log(prob) ret[ind] <- prob ret } ##' @export ##' @rdname GenGamma.orig Hgengamma.orig <- function(x, shape, scale=1, k) { -log(pgengamma.orig(q=x, shape=shape, scale=scale, k=k, lower.tail=FALSE)) } ##' @export ##' @rdname GenGamma.orig hgengamma.orig <- function(x, shape, scale=1, k) { logdens <- dgengamma.orig(x = x, shape = shape, scale = scale, k = k, log=TRUE) logsurv <- pgengamma.orig(q = x, shape = shape, scale = scale, k = k, lower.tail = FALSE, log.p=TRUE) loghaz <- logdens - logsurv exp(loghaz) } ##' @export ##' @rdname GenGamma.orig qgengamma.orig <- function(p, shape, scale=1, k, lower.tail = TRUE, log.p = FALSE) { d <- dbase("gengamma.orig", lower.tail=lower.tail, log=log.p, p=p, shape=shape, scale=scale, k=k) for (i in seq_along(d)) assign(names(d)[i], d[[i]]) w <- log(qgamma(p, shape=k)) y <- w / shape + log(scale) ret[ind] <- exp(y) ret } ##' @export ##' @rdname GenGamma.orig rgengamma.orig <- function(n, shape, scale=1, k) { r <- rbase("gengamma.orig", n=n, shape=shape, scale=scale, k=k) for (i in seq_along(r)) assign(names(r)[i], r[[i]]) w <- log(rgamma(n, shape=k)) y <- w / shape + log(scale) ret[ind] <- exp(y) ret } ##' @export ##' @rdname means rmst_gengamma.orig = function(t, shape, scale=1, k, start=0){ rmst_generic(pgengamma.orig, t, start=start, shape=shape, scale=scale, k=k) } ##' @export ##' @rdname means mean_gengamma.orig = function(shape, scale=1, k){ rmst_generic(pgengamma.orig, Inf, start=0, shape=shape, scale=scale, k=k) } check.gengamma.orig <- function(shape, scale, k){ ret <- rep(TRUE, length(shape)) if (missing(shape)) stop("shape parameter \"shape\" not given") if (missing(k)) stop("shape parameter \"k\" not given") if (any(!is.na(shape) & shape < 0)) { warning("Negative shape parameter \"shape\"") ret[!is.na(shape) & shape < 0] <- FALSE } if (any(!is.na(scale) & scale < 0)) { warning("Negative scale parameter"); ret[!is.na(scale) & scale < 0] <- FALSE } if (any(!is.na(k) & k < 0)) { warning("Negative shape parameter \"k\""); ret[!is.na(k) & k < 0] <- FALSE } ret } flexsurv/R/distributions.R0000644000176200001440000001434614632521533015372 0ustar liggesuserssurvreg_wrap <- function(args){ opts <- options() on.exit(options(opts)) options( warnPartialMatchArgs = FALSE, warnPartialMatchAttr = FALSE, warnPartialMatchDollar = FALSE ) do.call(survreg, args) } ## covr doesn't detect when these are used, as they are manipulated dynamically # nocov start sr.weib.inits <- function(t,aux){ if (aux$counting){ lt <- log(t[t>0]) ### c(1, exp(median(lt)) / log(2)) c(1.64/var(lt), exp(mean(lt)+0.572)) # from survreg } else { aux$formula <- aux$forms[[1]] aux$forms <- NULL aux$dist <- "weibull" sr <- survreg_wrap(aux) sr2fswei(sr) } } sr.weibPH.inits <- function(aux){ if (aux$counting){ lt <- log(t[t>0]) shape <- 1.64/var(lt) scale <- exp(mean(lt)+0.572) c(shape, scale^{-shape}) } else { aux$formula <- aux$forms[[1]] aux$forms <- NULL aux$dist <- "weibull" sr <- survreg_wrap(aux) sr2fswei(sr, ph=TRUE) } } sr.exp.inits <- function(t,aux){ if (aux$counting){ 1 / mean(t) } else { aux$formula <- aux$forms[[1]] aux$forms <- NULL aux$dist <- "exponential" sr <- survreg_wrap(aux) sr2fsexp(sr) } } sr.ln.inits <- function(t,aux){ if (aux$counting){ lt <- log(t[t>0]) c(mean(lt), sd(lt)) } else { aux$formula <- aux$forms[[1]] aux$forms <- NULL aux$dist <- "lognormal" sr <- survreg_wrap(aux) sr2fsln(sr) } } sr.llog.inits <- function(t,aux){ if (aux$counting){ scale <- median(t) shape <- 1 / log(quantile(t, 0.25)/scale, base=3) if (shape < 0) shape <- 1 c(shape, scale) } else { aux$formula <- aux$forms[[1]] aux$forms <- NULL aux$dist <- "loglogistic" sr <- survreg_wrap(aux) sr2fsllog(sr) } } # nocov end ## Convert parameters of survreg models to flexsurvreg ## parameterisation, for use as initial values sr2fswei <- function(sr, ph=FALSE){ scale <- exp(coef(sr)[1]) beta.scale <- coef(sr)[-1] shape <- mean(1/sr$scale) beta.shape <- if (length(sr$scale)>1) log(sr$scale[1]/sr$scale[-1]) else numeric() if (ph) c(shape, scale^{-shape}, -beta.scale*shape, beta.shape) else c(shape, scale, beta.scale, beta.shape) } sr2fsexp <- function(sr){ rate <- exp(-coef(sr)[1]) beta <- -coef(sr)[-1] c(rate, beta) } sr2fsln <- function(sr){ meanlog <- coef(sr)[1] sdlog <- sr$scale beta <- coef(sr)[-1] c(meanlog, sdlog, beta) } sr2fsllog <- function(sr){ shape <- 1/sr$scale scale <- exp(coef(sr)[1]) beta <- coef(sr)[-1] c(shape, scale, beta) } ##' @export flexsurv.dists <- list(genf = list( name="genf", pars=c("mu","sigma","Q","P"), location="mu", transforms=c(identity, log, identity, log), inv.transforms=c(identity, exp, identity, exp), inits=function(t){ lt <- log(t[t>0]) c(mean(lt), sd(lt), 0, 1) } ), genf.orig = list( name="genf.orig", pars=c("mu","sigma","s1","s2"), location="mu", transforms=c(identity, log, log, log), inv.transforms=c(identity, exp, exp, exp), inits=function(t){ lt <- log(t[t>0]) c(mean(lt), sd(lt), 1, 1) } ), gengamma = list( name="gengamma", pars=c("mu","sigma","Q"), location="mu", transforms=c(identity, log, identity), inv.transforms=c(identity, exp, identity), inits=function(t){ lt <- log(t[t>0]) c(mean(lt), sd(lt), 0) } ), gengamma.orig = list( name="gengamma.orig", pars=c("shape","scale","k"), location="scale", transforms=c(log, log, log), inv.transforms=c(exp, exp, exp), inits=function(t){c(1, mean(t), 1)} ), exp = list( name="exp", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp), inits=sr.exp.inits ), weibull = list( name = "weibull.quiet", pars=c("shape","scale"), location="scale", transforms=c(log, log), inv.transforms=c(exp, exp), inits=sr.weib.inits ), weibullPH = list( name="weibullPH", pars=c("shape","scale"), location="scale", transforms=c(log, log), inv.transforms=c(exp, exp), inits = sr.weibPH.inits ), lnorm = list( name="lnorm", pars=c("meanlog","sdlog"), location="meanlog", transforms=c(identity, log), inv.transforms=c(identity, exp), inits=sr.ln.inits ), gamma = list( name="gamma", pars=c("shape","rate"), location="rate", transforms=c(log, log), inv.transforms=c(exp, exp), inits=function(t){ m=mean(t); v=var(t); c(m^2/v, m/v) } ), gompertz = list( name="gompertz", pars=c("shape","rate"), location="rate", transforms=c(identity, log), inv.transforms=c(identity, exp), inits=function(t){c(0.001,1 / mean(t))} ), llogis = list( name="llogis", pars=c("shape","scale"), location="scale", transforms=c(log, log), inv.transforms=c(exp, exp), inits=sr.llog.inits ) ) flexsurv.dists$exponential <- flexsurv.dists$exp flexsurv.dists$lognormal <- flexsurv.dists$lnorm flexsurv/R/summary.flexsurvrtrunc.R0000644000176200001440000000773414603753373017312 0ustar liggesusers##' Summarise quantities of interest from fitted flexsurvrtrunc models ##' ##' This function extracts quantities of interest from the untruncated ##' version of a model with individual-specific right truncation points ##' fitted by \code{\link{flexsurvrtrunc}}. Note that covariates are ##' currently not supported by \code{\link{flexsurvrtrunc}}. ##' ##' ##' @param type \code{"survival"} for survival probabilities. ##' ##' \code{"cumhaz"} for cumulative hazards. ##' ##' \code{"hazard"} for hazards. ##' ##' \code{"rmst"} for restricted mean survival. ##' ##' \code{"mean"} for mean survival. ##' ##' \code{"median"} for median survival (alternative to \code{type="quantile"} with \code{quantiles=0.5}). ##' ##' \code{"quantile"} for quantiles of the survival time distribution. ##' ##' Ignored if \code{"fn"} is specified. ##' ##' @param fn Custom function of the parameters to summarise against time. ##' This has optional first argument \code{t} representing time, and any remaining ##' arguments must be parameters of the distribution. It should return a ##' vector of the same length as \code{t}. ##' ##' ##' @inheritParams summary.flexsurvreg ##' ##' @export ##' summary.flexsurvrtrunc <- function(object, type="survival", fn=NULL, t=NULL, quantiles=0.5, ci=TRUE, se=FALSE, B=1000, cl=0.95, ...) { x <- object dat <- x$data type <- match.arg(type, c("survival","cumhaz","hazard","rmst","mean","median", "quantile","link")) start <- 0 if(type == "mean"){ if(!is.null(t)) warning("Mean selected, but time specified. For restricted mean, set type to 'rmst'.") # Type = mean same as RMST w/ time = Inf t <- rep(Inf,length(start)) } else if(type == "median"){ if(!is.null(t)) warning("Median selected, but time specified.") t <- rep(0.5,length(start)) } else if(type == "quantile"){ t <- quantiles if((any(t<0) | any(t>1))){ stop("Quantiles should not be less than 0 or greater than 1") } t <- rep(t,length(start)) } else if(type == "rmst"){ if (is.null(t)) t <- max(dat$t) } else if (is.null(t)) t <- sort(unique(dat$t)) if (is.null(fn)) { fn <- summary_fns(x, type) } fn <- expand.summfn.args(fn) fncall <- list(t,start) dlist <- x$dlist basepars <- x$res[dlist$pars,"est"] names(basepars) <- dlist$pars basepars <- as.list(basepars) fncall[dlist$pars] <- basepars y <- do.call(fn, fncall) if (ci){ res.ci <- cisumm.flexsurvreg.old(x, t, start, X=NULL, fn=fn, B=B, cl=cl) ly <- res.ci[,1] uy <- res.ci[,2] } if (se){ res.se <- sesumm.flexsurvreg.old(x, t, start, X=NULL, fn=fn, B=B) } if (type %in% c("median","mean")) ret <- data.frame(est=y, row.names=NULL) else if (type == "quantile") ret <- data.frame(quantile=t, est=y, row.names=NULL) else ret <- data.frame(time=t, est=y, row.names=NULL) if (ci) { ret$lcl <- ly; ret$ucl <- uy} if (se) { ret$se <- res.se } class(ret) <- c("summary.flexsurvrtrunc", class(ret)) ret } cisumm.flexsurvreg.old <- function(x, t, start, X, fn, B=1000, cl=0.95) { if (all(is.na(x$cov)) || (B==0)) ret <- array(NA, dim=c(length(t), 2)) else { ret <- normbootfn.flexsurvreg(x=x, t=t, start=start, X=X, fn=fn, B=B) ret <- apply(ret, c(1,3), function(x)quantile(x, c((1-cl)/2, 1 - (1-cl)/2), na.rm=TRUE)) ret <- t(ret[,1,]) } ret } sesumm.flexsurvreg.old <- function(x, t, start, X, fn, B=1000) { if (all(is.na(x$cov)) || (B==0)) ret <- numeric(length(t)) else { ret <- normbootfn.flexsurvreg(x=x, t=t, start=start, X=X, fn=fn, B=B) ret <- apply(ret, c(1,3), sd, na.rm=TRUE) ret <- ret[1,] } ret } flexsurv/R/flexsurvrtrunc.R0000644000176200001440000002670614174025364015611 0ustar liggesusers##' Flexible parametric models for right-truncated, uncensored data defined by times of initial and final events. ##' ##' This function estimates the distribution of the time between an initial and final event, in situations where individuals are only observed if they have experienced both events before a certain time, thus they are right-truncated at this time. The time of the initial event provides information about the time from initial to final event, given the truncated observation scheme, and initial events are assumed to occur with an exponential growth rate. ##' ##' Covariates are not currently supported. ##' ##' Note that \code{\link{flexsurvreg}}, with an \code{rtrunc} argument, can fit models for a similar kind of data, but those models ignore the information provided by the time of the initial event. ##' ##' A nonparametric estimator of survival under right-truncation is also provided in \code{\link{survrtrunc}}. See Seaman et al. (2020) for a full comparison of the alternative models. ##' ##' ##' @param t Vector of time differences between an initial and final event for a set of individuals. ##' ##' @param tinit Absolute time of the initial event for each individual. ##' ##' @param rtrunc Individual-specific right truncation points on the same scale as \code{t}, so that each individual's survival time \code{t} would not have been observed if it was greater than the corresponding element of \code{rtrunc}. Only used in \code{method="joint"}. In \code{method="final"}, the right-truncation is implicit. ##' ##' @param tmax Maximum possible time between initial and final events that could have been observed. This is only used in \code{method="joint"}, and is ignored in \code{method="final"}. ##' ##' @param data Data frame containing \code{t}, \code{rtrunc} and \code{tinit}. ##' ##' @param method If \code{"joint"} then the "joint-conditional" method is used. If \code{"final"} then the "conditional-on-final" method is used. The "conditional-on-initial" method can be implemented by using \code{\link{flexsurvreg}} with a \code{rtrunc} argument. These methods are all described in Seaman et al. (2020). ##' ##' @param theta Initial value (or fixed value) for the exponential growth rate \code{theta}. Defaults to 1. ##' ##' @param inits Initial values for the parameters of the parametric survival distributon. If not supplied, a heuristic is used. as is done in \code{\link{flexsurvreg}}. ##' ##' @param fixedpars Integer indices of the parameters of the survival distribution that should be fixed to their values supplied in \code{inits}. Same length as \code{inits}. ##' ##' @param fixed.theta Should \code{theta} be fixed at its initial value or estimated. This only applies to \code{method="joint"}. For \code{method="final"}, \code{theta} must be fixed. ##' ##' @param optim_control List to supply as the \code{control} argument to \code{\link{optim}} to control the likelihood maximisation. ##' ##' @inheritParams flexsurvreg ##' ##' @seealso \code{\link{flexsurvreg}}, \code{\link{survrtrunc}}. ##' ##' @examples ##' set.seed(1) ##' ## simulate time to initial event ##' X <- rexp(1000, 0.2) ##' ## simulate time between initial and final event ##' T <- rgamma(1000, 2, 10) ##' ##' ## right-truncate to keep only those with final event time ##' ## before tmax ##' tmax <- 40 ##' obs <- X + T < tmax ##' rtrunc <- tmax - X ##' dat <- data.frame(X, T, rtrunc)[obs,] ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="gamma", theta=0.2) ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="gamma", theta=0.2, fixed.theta=FALSE) ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="gamma", theta=0.2, inits=c(1, 8)) ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="gamma", theta=0.2, method="final") ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="gamma", fixed.theta=TRUE) ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="weibull", fixed.theta=TRUE) ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="lnorm", fixed.theta=TRUE) ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="gengamma", fixed.theta=TRUE) ##' ##' flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, ##' dist="gompertz", fixed.theta=TRUE) ##' ##' @references Seaman, S., Presanis, A. and Jackson, C. (2020) Estimating a Time-to-Event ##' Distribution from Right-Truncated Data in an Epidemic: a Review of Methods ##' ##' @export flexsurvrtrunc <- function(t, tinit, rtrunc, tmax, data=NULL, method="joint", dist, theta=NULL, fixed.theta=TRUE, inits=NULL, fixedpars=NULL, dfns=NULL, integ.opts=NULL, cl=0.95, optim_control = list()){ tdelay <- eval(substitute(t), data, parent.frame()) rtrunc <- eval(substitute(rtrunc), data, parent.frame()) tinit <- eval(substitute(tinit), data, parent.frame()) dlist <- parse.dist(dist) dfns <- form.dp(dlist, dfns, integ.opts) if (is.null(inits)){ if (is.null(theta)) theta <- 1 ## FIXME for aux arguments. pop out a function for this ## what is this for. to fit a survreg weibull and use their heiurisitic ## shdnt be a problem, just build the formula up build_inits_aux <- function() { list(forms = list(Surv(tdelay) ~ 1), control = list(), counting = FALSE ) } aux <- build_inits_aux() dlist$inits <- expand.inits.args(dlist$inits) initsd <- dlist$inits(t=tdelay, aux=aux) names(initsd) <- dlist$pars inits <- c(initsd, theta=theta) } else { if (!is.numeric(inits)) stop("`inits` should be numeric") if (length(inits) != length(dlist$pars)) stop(sprintf("%s values supplied in `inits`, but %s parameters in distribution \"%s\"", length(inits), length(dlist$pars), dlist$name)) inits <- c(inits, theta) } npars <- length(inits) nbpars <- npars - 1 if (method=="final") { if (!fixed.theta) warning("theta cannot be estimated in method=\"final\"") fixed.theta <- TRUE } check.fixedpars(fixedpars, nbpars) if (isTRUE(fixedpars)) fixedpars <- 1:nbpars if (fixed.theta) fixedpars <- unique(c(fixedpars, npars)) names(inits) <- c(dlist$pars, "theta") for (i in 1:nbpars){ inits[i] <- dlist$transforms[[i]](inits[i]) } inits[nbpars+1] <- inits[nbpars+1] optpars <- setdiff(1:npars, fixedpars) optvals <- inits[optpars] fixed <- length(fixedpars)==npars if (!fixed) { opt <- optim(optvals, frtrunc_loglik_factory(inits=inits,tinit=tinit, tdelay=tdelay, tmax=tmax, method=method, dlist=dlist, dfns=dfns, fixedpars=fixedpars), control=optim_control, hessian=TRUE) est <- opt$par covar <- solve(opt$hessian) se <- sqrt(diag(covar)) loglik <- - opt$value } else { opt <- NULL est <- inits se <- covar <- NA loglik <- - frtrunc_loglik_factory(inits=inits, tinit=tinit, tdelay=tdelay, tmax=tmax, method=method,dlist=dlist, dfns=dfns, fixedpars=fixedpars)(inits) } if (!is.numeric(cl) || length(cl)>1 || !(cl>0) || !(cl<1)) stop("cl must be a number in (0,1)") lcl <- est - qnorm(1 - (1-cl)/2)*se ucl <- est + qnorm(1 - (1-cl)/2)*se est.opt <- cbind(estlog=est, selog=se, lcllog=lcl, ucllog=ucl) res <- matrix(nrow=npars, ncol=ncol(est.opt), dimnames=list(names(inits), colnames(est.opt))) res[optpars,] <- est.opt res[fixedpars,"estlog"] <- inits[fixedpars] res <- as.data.frame(res) res$ucl <- res$lcl <- res$est <- numeric(npars) for (i in 1:npars){ trf <- if (i==npars) exp else dlist$inv.transforms[[i]] res$est[i] <- trf(res$estlog[i]) res$lcl[i] <- trf(res$lcllog[i]) res$ucl[i] <- trf(res$ucllog[i]) } res$pars <- c(dlist$pars, "theta") est <- res[,c("pars","est","lcl","ucl","estlog","selog")] npars <- length(optpars) res <- list(call=match.call(), res=est, loglik=loglik, data=data.frame(t=tdelay, tinit=tinit, rtrunc=rtrunc), dfns=dfns, dlist=dlist, ncovs=0, cov=covar, opt=opt, optpars=optpars, fixedpars=fixedpars, npars=npars, AIC = -2*loglik + 2*npars, res.t=est) class(res) <- "flexsurvrtrunc" res } ##' @export print.flexsurvrtrunc <- function(x, ...) { cat("Call:\n") dput(x$call) cat("\n") if (x$npars > 0) { res <- x$res cat ("Estimates: \n") args <- list(...) if (is.null(args$digits)) args$digits <- 3 f <- do.call("format", c(list(x=res), args)) print(f, print.gap=2, quote=FALSE, na.print="") } cat("\nLog-likelihood = ", x$loglik, ", df = ", x$npars, "\nAIC = ", x$AIC, "\n\n", sep="") } frtrunc_loglik_factory <- function(inits, tinit, tdelay, tmax, method, dlist, dfns, fixedpars){ pars <- inits insert.locations <- setdiff(seq_along(pars), fixedpars) frtrunc_intfn_joint <- function(a, dpars, theta) { pargs <- as.list(dpars) pargs$q <- tmax - a exp(theta*a) * do.call(dfns$p, pargs) } frtrunc_intfn_final <- function(a, dpars, theta, log=FALSE){ dargs <- as.list(dpars) dargs$x <- a dargs$log <- log ret <- do.call(dfns$d, dargs) if (log) ret <- ret - theta*a else ret <- ret * exp( - theta*a) ret } function(optpars, ...) { pars[insert.locations] <- optpars nbpars <- length(pars) - 1 ## NO COVARIATES SO FAR . this needed if covariates for (i in 1:nbpars){ pars[i] <- dlist$inv.transforms[[i]](pars[i]) } dpars <- pars[1:nbpars] theta <- pars[nbpars+1] nv <- length(tinit) dargs <- as.list(dpars) dargs$x <- tdelay dargs$log <- TRUE if (method=="joint") { log.numer <- theta*tinit + do.call(dfns$d, dargs) integ <- integrate(frtrunc_intfn_joint, lower=0, upper=tmax, dpars = dpars, theta=theta)$value logl <- sum(log.numer) - log(integ) * nv } else if (method=="final") { if (dlist$name=="gamma") { logl <- loglik_final_gamma(tdelay, tinit, dpars, theta) } else { log.numer <- frtrunc_intfn_final(tdelay, dpars, theta, log=TRUE) integ <- numeric(nv) y <- tinit + tdelay for (i in 1:nv){ integ[i] <- integrate(frtrunc_intfn_final, lower=0, upper=y[i], dpars = dpars, theta=theta)$value } logl <- sum(log.numer) - sum(log(integ)) } } - logl } } loglik_final_gamma <- function(tdelay, tinit, dpars, theta){ sum(dgamma(tdelay, dpars["shape"], dpars["rate"]+theta, log=TRUE) - pgamma(tinit + tdelay, dpars["shape"], dpars["rate"]+theta, log.p=TRUE)) } flexsurv/R/unroll.function.R0000644000176200001440000001217213231112051015603 0ustar liggesusers##' Convert a function with matrix arguments to a function with vector ##' arguments. ##' ##' Given a function with matrix arguments, construct an equivalent function ##' which takes vector arguments defined by the columns of the matrix. The new ##' function simply uses \code{cbind} on the vector arguments to make a matrix, ##' and calls the old one. ##' ##' ##' @param mat.fn A function with any number of arguments, some of which are ##' matrices. ##' @param \dots A series of other arguments. Their names define which ##' arguments of \code{mat.fn} are matrices. Their values define a vector of ##' strings to be appended to the names of the arguments in the new function. ##' For example ##' ##' \code{fn <- unroll.function(oldfn, gamma=1:3, alpha=0:1)} ##' ##' will make a new function \code{fn} with arguments ##' \code{gamma1},\code{gamma2},\code{gamma3},\code{alpha0},\code{alpha1}. ##' ##' Calling ##' ##' \code{fn(gamma1=a,gamma2=b,gamma3=c,alpha0=d,alpha1=e)} ##' ##' should give the same answer as ##' ##' \code{oldfn(gamma=cbind(a,b,c),alpha=cbind(d,e))} ##' @return The new function, with vector arguments. ##' @section Usage in \pkg{flexsurv}: ##' ##' This is used by \code{\link{flexsurvspline}} to allow spline models, which ##' have an arbitrary number of parameters, to be fitted using ##' \code{\link{flexsurvreg}}. ##' ##' The ``custom distributions'' facility of \code{\link{flexsurvreg}} ##' expects the user-supplied probability density and distribution ##' functions to have one explicitly named argument for each scalar ##' parameter, and given R vectorisation, each of those arguments ##' could be supplied as a vector of alternative parameter values. ##' ##' However, spline models have a varying number of scalar parameters, ##' determined by the number of knots in the spline. ##' \code{\link{dsurvspline}} and \code{\link{psurvspline}} have an ##' argument called \code{gamma}. This can be supplied as a matrix, ##' with number of columns \code{n} determined by the number of knots ##' (plus 2), and rows referring to alternative parameter values. The ##' following statements are used in the source of ##' \code{flexsurvspline}: \preformatted{ dfn <- ##' unroll.function(dsurvspline, gamma=0:(nk-1)) pfn <- ##' unroll.function(psurvspline, gamma=0:(nk-1)) } ##' ##' to convert these into functions with arguments \code{gamma0}, ##' \code{gamma1},\ldots{},\code{gamman}, corresponding to the columns ##' of \code{gamma}, where \code{n = nk-1}, and with other arguments ##' in the same format. ##' @author Christopher Jackson ##' @seealso \code{\link{flexsurvspline}},\code{\link{flexsurvreg}} ##' @examples ##' ##' fn <- unroll.function(ncol, x=1:3) ##' fn(1:3, 1:3, 1:3) # equivalent to... ##' ncol(cbind(1:3,1:3,1:3)) ##' @export unroll.function <- function(mat.fn, ...){ fargs <- formals(mat.fn) vargs <- list(...) # list of names and numbers if (length(vargs)==0) return(mat.fn) badargs <- paste0("\"",names(vargs)[!(names(vargs) %in% names(fargs))],"\"") argerr <- if (length(badargs) > 1) "arguments" else "an argument" if (badargs!="\"\"") stop("\"",deparse(substitute(mat.fn)),"\" does not have ",argerr, " named ", paste(badargs,collapse=",")) sargs <- fargs[setdiff(names(fargs), names(vargs))] # arguments to not change ## converts e.g. list(gamma=2,knots=2) to c("gamma1","gamma2","knots1","knots2") unames <- mapply(function(x,y)paste0(x, y), names(vargs), vargs) unamesv <- as.vector(unames) ## makes an alist(gamma1=,gamma2=,knots1=,knots2=) uargs <- eval(parse(text=paste0("alist(",paste(unamesv, collapse="=, "),"=)"))) args <- as.pairlist(c(sargs,uargs)) ## copy the old function definition into the body of the new one ## so it remains visible dpa <- deparse(args(mat.fn)) basefn.lines <- paste("base.fn <-", paste(paste(dpa[-length(dpa)]), collapse="\n"), paste(deparse(body(mat.fn)), collapse="\n")) ## build the function body cbind.lines <- character(length=length(vargs)) for (i in seq_along(vargs)){ ## make statements like: gamma <- do.call("cbind", list(gamma1, gamma2)) cbind.lines[i] <- sprintf("%s <- do.call(\"cbind\", list(%s))", names(vargs)[i], paste(unames[,i],collapse=",")) } ## make the return statement of the new function sargsn <- paste(paste(names(sargs),names(sargs),sep="="), collapse=", ") vargsn <- paste(paste0(names(vargs),"=",names(vargs)), collapse=", ") ret.line <- if (sargsn=="") sprintf("do.call(base.fn, list(%s))",vargsn) else sprintf("do.call(base.fn, list(%s, %s))",sargsn,vargsn) body <- as.call(c(as.name("{"), parse(text = paste( basefn.lines, paste(cbind.lines, collapse="\n"), ret.line, sep="\n") ))) ## thanks to http://adv-r.had.co.nz/Expressions.html#pairlists for this res <- eval(call("function", args, body), envir=parent.frame()) environment(res) <- environment(mat.fn) res } flexsurv/vignettes/0000755000176200001440000000000014657665315014162 5ustar liggesusersflexsurv/vignettes/standsurv.Rmd0000644000176200001440000010446014417276462016657 0ustar liggesusers--- title: "Calculating standardized survival measures in flexsurv" author: "Michael Sweeting^[mikesweeting79@gmail.com]" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Calculating standardized survival measures in flexsurv} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} bibliography: "standsurv.bib" --- ```{r, include = FALSE} knitr::opts_chunk$set( fig.dim = c(8, 6), collapse = TRUE, comment = "#>" ) ``` # Background ## Standardized survival measures `standsurv` is a post-estimation command that takes a `flexsurvreg` object and calculates standardized survival measures. After fitting a parametric survival model in `flexsurv` it is often useful to compute and visualise the marginal (or standardized) survival. For example, suppose a survival model is fitted adjusted for treatment group, age, and sex. A separate predicted survival curve can be obtained for each individual based on their covariate pattern or a prediction can be obtained by setting covariates to their mean values (both can be obtained using `summary.flexsurvreg`), but it may be more useful to obtain the marginal survival for each treatment group. Regression standardization achieves this by fitting a regression model including the treatment group $Z$, covariates $X$ and possible interactions between $X$ and $Z$. The standardized survival can be estimated by obtaining predictions for every individual in the study under each fixed treatment arm and averaging these individual-specific estimates. The marginal survival over the distribution of covariates in the study assuming all participants were assigned to arm $Z=z$ is: \begin{equation} S_s(t|Z=z) = E[S(t | Z=z, X)] = \frac{1}{N} \sum_{i=1}^{N} S(t | Z=z, X=x_i) \end{equation} for covariate values (vectors) $x_1,...,x_{N}$. Here standarization is done over all $N$ patients in the study and provides a counterfactual marginal estimate when setting $Z=z$. The standardized survival is therefore an estimate of the marginal survival if all study patients had been assigned to group $z$. Under certain assumptions, differences in marginal survival provide estimates of causal effects (@syriopoulou_inverse_2021) and certain estimands such as the average treatment effect (ATE) can be targeted: $$ ATE = S_s(t|Z=z_1) - S_s(t|Z=z_0)]$$ Alternatively, an average treatment effect in the treated (ATET) estimand can be targeted by averaging over only patients who were in the intervention treatment arm $Z=z_1$. Standardization estimates can also be obtained for other target populations of interest. For example it may be important to predict survival in an external population with different characteristics to the study population. The hazard function for the standardized survival can be obtained to understand how the shape of the hazard changes over time. This provides an estimate of the marginal hazard. It can be shown (@rutherford_nice_2020, Appendix I) that the hazard of the standardized survival can be calculated as \begin{equation} h_s(t|Z=z) = \frac{\sum_{i=1}^{N} S(t|Z=z,X=x_i)h(t|Z=z,X=x_i)}{\sum_{i=1}^{N} S(t | Z=z, X=x_i)} \end{equation} This is a weighted average of the $N$ individual hazard functions, weighted by the probability of survival at time $t$. Patients who are unlikely to have survived to $t$ will contribute less weight to this hazard function. ## Calculating marginal expected survival and hazard In economic evaluations parametric survival models are used to extrapolate clinical trial data to estimate lifetime benefits. In this context it is often useful to plot marginal 'expected' (general population) survival alongside parametric models fitted and extrapolated from trial data in order to aid interpretation and for a visual comparison between the trial subjects and the population at large. Displaying expected survival and hazard functions can aid understanding of whether the assumed hazard and survival functions are credible (@rutherford_nice_2020). Expected survival is defined as the all-cause survival in a general population with the same key characteristics as the study subjects. General population mortality rates are often taken from national lifetables that are stratified by age, sex, calendar year and occasionally other prognostic factors (e.g. deprivation indices). The Ederer or "exact" method for estimating expected survival assumes subjects in the trial population are not censored before the end of a stated follow-up time [@ederer_relative_1961]. The expected survival is then the survival we would expect to see in an age-sex matched general population if all patients are continuously followed-up. This is the approach used by `standsurv` to calculate expected survival and is the "most appropriate when doing forcasting, sample size calculations or other predictions of the 'future' where censoring is not an issue" [@therneau_1999]. Based on the exact method, the marginal expected survival using background mortality rates is calculated using all $N$ patients in the trial at any time point $t$: \begin{equation} S^*(t) = \frac{1}{N} \sum_{i=1}^N S_i^*(t) \end{equation} where $S_i^*(t)$ is the expected survival for the $i$th subject at time $t$. It follows that the marginal expected hazard is a weighted average of the expected hazard rates: \begin{equation} h^*(t) = \frac{ \sum_{i=1}^N S_i^*(t) h_i^*(t)}{\sum_{i=1}^N S_i^*(t)} \end{equation} The expected survival for the $i$th subject at follow-up time $t$ is calculated based on matching to the general population hazard rates. If lifetables are utilised these often provide mortality rates by sex ($s$), age ($a$) and calendar year ($y$), in yearly or 5-yearly categories. In practice the expected survival at time $t$ for a given subject is calculated from the cumulative hazard. At a given follow-up time $t$ this is the sum of $h^*_{asy} \times \textrm{Number of days in state } (a,s,y)$ in the follow-up where $h^*_{asy}$ is the expected hazard for age $a$, sex $s$, year $y$. This requires follow-up time for each individual in the study dataset to be split by multiple timescales (e.g. age and year) into time epochs, which can be visualised as a Lexis diagram. Each epoch can then be matched to a corresponding expected mortality rate. ## Incorporation of background mortality into survival models Incorporating background mortality into survival models directly is recommended as it helps avoid extremely implausible projections (@rutherford_nice_2020). This can be done using an excess mortality / relative survival model where population based 'expected' rates, often from life tables, are introduced to explain background mortality. The concept behind these models is to partition the all-cause mortality into excess mortality caused by the disease of interest and that due to other causes. A parametric model can then be applied to the isolated excess mortality. This may be particularly useful when making long-term extrapolations as the pattern of disease-specific mortality and other cause mortality are likely to be very different over time. Alternatively, if cause of death information is available and reliable, a separate cause-specific model can be fitted to the disease-specific mortality and other cause mortality. The all-cause mortality rate at time $t$ for individual $i$ can be partitioned into two constituent parts: \begin{equation} h_i(t) = h^*_i(t) + \lambda_i(t) \end{equation} where $h_i(t)$ is the all-cause mortality rate (hazard), $h^*_i(t)$ is the expected or background mortality rate and $\lambda_i(t)$ is the excess mortality rate. Equivalently, the hazard rates can be transformed to the survival scale which gives the all-cause survival at time $t$ as the product of the expected survival and the relative survival: \begin{equation} S_i(t) = S^*_i(t) R_i(t) \end{equation} The relative survival, $R_i(t)$, is therefore the ratio of all-cause survival and the expected survival in the background population. Typically, $h_i^*(t)$ (and hence $S_i^*(t)$) are obtained from population lifetables. The expected mortality rates are assumed to be fixed and known and a parametric model is then used to estimate the relative survival (or equivalently excess hazard). # `standsurv` `standsurv` is a post-estimation command that takes a `flexsurv` regression and calculates standardized survival measures and contrasts. Expected mortality rates and survival can also be obtained. The main features of the command are that it enables the calculation and plotting over any specified follow-up times of 1. Marginal survival, hazard and restricted mean survival time (RMST) metrics 2. Marginal expected (population) survival and hazard functions matched to the study population 3. Marginal all-cause survival and all-cause hazard after fitting relative survival models 4. Contrasts in survival, hazard and RMST metrics (e.g. marginal hazard ratio, differences in marginal RMST) 5. Confidence intervals and standard errors for all measures and contrasts using either the delta method or bootstrapping Through a simple syntax the user can specify the groups that they wish to calculate the marginal metrics. These groups can be formed by any combination of covariate values. ## A worked example: the pbc dataset For this example we will use data from the German Breast Cancer Study Group 1984-1989, which is the R dataset `bc` found in the `flexsurv` package. This dataset has death, or censoring times for 686 primary node positive breast cancer patients together with a 3-level prognostic group variable with levels "Good", "Medium" and "Poor". For this demonstration we collapse the prognostic variable into 2 levels: "Good" and "Medium/Poor". We also create some artificial ages and diagnosis dates for the patients, along with assuming all patients are female. We allow a correlation between the age at diagnosis for a patient and their survival time so that age is a prognostic variable. The mean age is 65 with a standard deviation of 5. We load this dataset and create these additional variables. ```{r, message = FALSE, warning = FALSE} library(flexsurv) library(flexsurvcure) library(ggplot2) library(dplyr) library(survminer) ``` ```{r} data(bc) set.seed(236236) ## Age at diagnosis is correlated with survival time. A longer survival time ## gives a younger mean age bc$age <- rnorm(dim(bc)[1], mean = 65 - scale(bc$recyrs, scale=F), sd = 5) ## Create age at diagnosis in days - used later for matching to expected rates bc$agedays <- floor(bc$age * 365.25) ## Create some random diagnosis dates between 01/01/1984 and 31/12/1989 bc$diag <- as.Date(floor(runif(dim(bc)[1], as.Date("01/01/1984", "%d/%m/%Y"), as.Date("31/12/1989", "%d/%m/%Y"))), origin="1970-01-01") ## Create sex (assume all are female) bc$sex <- factor("female") ## 2-level prognostic variable bc$group2 <- ifelse(bc$group=="Good", "Good", "Medium/Poor") head(bc) ``` A plot of the Kaplan-Meier shows a clear separation in the survival curves between the two prognostic groups. ```{r} km <- survfit(Surv(recyrs, censrec)~group2, data=bc) kmsurvplot <- ggsurvplot(km) kmsurvplot + xlab("Time from diagnosis (years)") ``` ## A stratified Weibull model We start by fitting a Weibull model to each group separately. One way to do this is to fit a single saturated model whereby group affects both the scale and shape parameters of the Weibull distribution. This effectively means we have a separate scale and shape parameter for each group, which is equivalent to fitting two separate models. Such a model does not make a proportional hazards assumption and hence the hazard ratio will change over time. The saturated model approach has advantages as we can use the model to easily investigate treatment effects using `standsurv` as we shall see later. Including group in the main formula of `flexsurvreg` allows group to affect the scale parameter of the Weibull distribution whilst we use the `anc` argument in `flexsurvreg` to additionally allow group to affect the shape parameter. ```{r} model.weibull.sep <- flexsurvreg(Surv(recyrs, censrec)~group2, anc = list(shape = ~ group2), data=bc, dist="weibullPH") model.weibull.sep ``` Given that the model only contains `group2` and no other covariates we can obtain the predicted (fitted) survival for each of the two groups using the `summary` function and storing these predictions in a tidy data.frame with the argument `tidy=T`. ```{r} predictions <- summary(model.weibull.sep, type = "survival", tidy=T) ggplot() + geom_line(aes(x=time, y=est, color = group2), data=predictions) + geom_step(aes(x=time, y=surv, group=strata), data=kmsurvplot$data.survplot) ``` The Weibull model does not appear to fit the data very well and so we should try other parametric distributions. However, for illustration purposes we shall continue using the Weibull model. We will now show that the same predictions can be obtained from `standsurv` but with the benefit of addition flexibility. ## Using `standsurv` to calculate marginal survival `standsurv` works similarly to the `margins` command in `R` and `standsurv` in Stata by allowing the user to specify a list of scenarios in which specific covariates are fixed to certain values. This is done using the `at` argument of `standsurv` to provide the list of scenarios where each scenario is itself a list containing covariates that are to be fixed. In our worked example the two scenarios are `list(group2 = "Good")` and `list(group2 = "Medium/Poor")`. Any covariates not specified in the `at` scenarios are averaged over, hence creating marginal, or standardized, estimates of the metric of interest. In the example above, there are no other covariates in the model so we will get the same answer as obtained from `summary`. But the later worked example extends this to models containing other covariates. The default is to calculate survival probabilities at the event times in the data but this can be changed with the `type` and `t` arguments, respectively. The returned object is a tidy data.frame with columns named `at1` up to `atn` for the n scenarios specified in the `at` argument. ```{r} ss.weibull.sep.surv <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) ss.weibull.sep.surv ``` Further details such as labels for the `at` scenarios are stored in attributes of the `standsurv` object. These are utilised by the `plot` function. A plot of the marginal estimates can be easily produced using the `plot` function, which produces a `ggplot` object. ```{r} plot(ss.weibull.sep.surv) ``` The plot can be easily further manipulated, for example by changing axis labels and adding further plots. ```{r} plot(ss.weibull.sep.surv) + xlab("Time since diagnosis (years)") + geom_step(aes(x=time, y=surv, group=strata), data=kmsurvplot$data.survplot) ``` ## Other metrics: marginal hazards and marginal RMST We can use the `type` argument to calculate marginal hazards or restricted mean survival time (RMST). For example a plot of the hazard functions for the two groups is obtained as follows: ```{r} ss.weibull.sep.haz <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) plot(ss.weibull.sep.haz) + xlab("Time since diagnosis (years)") ``` Whilst a plot of RMST is given by ```{r} ss.weibull.sep.rmst <- standsurv(model.weibull.sep, type = "rmst", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) plot(ss.weibull.sep.rmst) + xlab("Time since diagnosis (years)") ``` ## Calculating contrasts The advantage of fitting a saturated model now becomes clear as we can calculate contrasts between our `at` scenarios. Suppose we are interested in the difference in the survival functions between the two groups. This is easily calculated using the `contrast = "difference"` argument, and a plot of the contrast can be obtained using `contrast = TRUE` argument in the `plot` function. ```{r} ss.weibull.sep.3 <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), contrast = "difference") plot(ss.weibull.sep.3, contrast=TRUE) + xlab("Time since diagnosis (years)") + ylab("Difference in survival probabilities") + geom_hline(yintercept = 0) ``` Alternatively, we may wish to visualise the implied hazard ratio from fitting separate Weibull models to the two groups. In the breast cancer example we see that the hazard ratio (treatment effect) starts very high before decreasing, suggesting that those with Medium/Poor prognosis start with a high elevated risk but have a continued excess risk up to the end of follow-up, compared to those with Good prognosis. ```{r} ss.weibull.sep.4 <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), contrast = "ratio") plot(ss.weibull.sep.4, contrast=TRUE) + xlab("Time since diagnosis (years)") + ylab("Hazard ratio") + geom_hline(yintercept = 1) ``` ## Confidence intervals and standard errors Confidence intervals and standard errors for both the metric of interest and contrasts can be obtained either through bootstrapping or using the delta method. Bootstrap confidence intervals are calculated by specifying `ci = TRUE`, `boot = TRUE`, and providing the number of bootstrap samples using `B`. We can also set the seed using the `seed` argument to allow reproducibility. If instead the delta method is to be used to obtain confidence intervals then we specify `ci = TRUE`, `boot = FALSE`. The delta method obtains confidence intervals by calculating standard errors for a given transformation of the metric of interest and then assuming normality. The default is to use a log transformation; hence if `type = "survival"` the confidence intervals are symmetric for the log survival probabilities. Alternative transformations can be specified using the `trans` argument. The code below shows confidence intervals for marginal survival calculated through a bootstrap method (with `B = 100`) compared to a delta method. For computational efficiency here we only predict for 10 time points. ```{r} ss.weibull.sep.boot <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=10), ci = TRUE, boot = TRUE, B = 100, seed = 2367) ss.weibull.sep.deltam <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=10), ci = TRUE, boot = FALSE) plot(ss.weibull.sep.boot, ci = TRUE) + geom_ribbon(aes(x=time, ymin=survival_lci, ymax=survival_uci, color=at, linetype = "Delta method"), fill=NA, data=attr(ss.weibull.sep.deltam,"standpred_at")) + scale_linetype_manual(values = c("Bootstrap" = "solid", "Delta method"= "dashed")) + ggtitle("Comparison of bootstrap and delta method confidence intervals") ``` ## Adding age as a covariate Suppose age has been added as a covariate to the survival model. If age is not included in our `at` scenarios `standsurv` will by default produce standardized estimates of survival averaged over the age distribution in our study population. Alternatively we could pass a new prediction dataset to `standsurv` and obtain standardized estimates for this population. As an example, we obtain marginal survival estimates after fitting a stratified Weibull model, firstly standardized to the age-distribution of our study population and secondly standardized to an older population with mean age of 75 and standard deviation 5. ```{r} model.weibull.age.sep <- flexsurvreg(Surv(recyrs, censrec)~group2 + age, anc = list(shape = ~ group2 + age), data=bc, dist="weibullPH") ## Marginal survival standardized to age distribution of study population ss.weibull.age.sep.surv <- standsurv(model.weibull.age.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50) ) ## Marginal survival standardized to an older population # create a new prediction dataset as a copy of the bc data but whose ages are drawn from # a normal distribution with mean age 75, sd 5. newpred.data <- bc set.seed(247) newpred.data$age = rnorm(dim(bc)[1], 75, 5) ss.weibull.age2.sep.surv <- standsurv(model.weibull.age.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), newdata=newpred.data) ## Overlay both marginal survival curves plot(ss.weibull.age.sep.surv) + geom_line(aes(x=time, y=survival, color=at, linetype = "Older population"), data = attr(ss.weibull.age2.sep.surv, "standpred_at") ) + scale_linetype_manual(values = c("Study" = "solid", "Older population"= "dashed")) ``` ## Calculating expected survival and hazard in `standsurv` To overlay marginal expected survival or hazard curves we require a lifetable of population hazard rates. To demonstrate we use the US lifetable that comes with the `survival` package, called `survexp.us`. Other lifetables can be obtained directly from the Human Mortality Database (HMD) using the `HMDHFDplus` package. The `survexp.us` lifetable is a `ratetable` object with stratification factors age, sex and year. It gives rates of mortality per person-day for combinations of the stratification factors. A summary of the `survexp.us` object shows that the time-scale is in days. ```{r} summary(survexp.us) ``` To use the lifetable to get expected rates for our trial population we need to match age, sex and year variables in our dataset to those in the ratetable. We can use the `rmap` argument to do this. `standsurv` utilises the `survexp` function in the `survival` package to calculate expected survival over the times specified in `t` using the 'exact' method of Ederer. We note that sex in our data is coded the same as in the `ratetable` ("male" and "female") and importantly that we have variables that record both age at diagnosis and diagnosis date in days. It is important that the user ensures that the study data are correctly coded and have variables on the same timescale as in the `ratetable` so that matching is successful. The code below demonstrates that for our data we therefore need to match the `year` variable in the `ratetable` to the `diag` variable in our study data, and the `age` variable in the `ratetable` to the `agedays` variable in our study data. We need to specify three more arguments in `standsurv`. First, the lifetable, which must be a `ratetable` object and is specified using the `ratetable` argument. Second, we may need to pass our trial dataset to `standsurv` if the stratifying factors do not appear as covariates in the `flexsurv` model. Finally, we need to be careful to tell `standsurv` what the time scale transformation is between the fitted `flexsurv` model and the time scale in `ratetable`. We can use the `scale.ratetable` argument to do this. Typically ratetable objects are expressed in days (e.g. rates per person-day). The default is therefore `scale.ratetable = 365.25`, which indicates that the survival model was fitted in years but the ratetable is in days. After running `standsurv` we can plot the expected survival (or hazard) by using the argument `expected = TRUE` in the `plot()` function. ```{r} ss.weibull.sep.expected <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.expected, expected = T) ``` We can see that the marginal expected survival is much higher than the marginal (predicted) survival for our breast cancer population. We can also obtain the expected hazards: ```{r} ss.weibull.sep.expectedh <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.expectedh, expected = T) ``` The hazard plot shows that our model is predicting an increasing hazard over time for the cancer population, which remains significantly higher than the expected hazard in the general population. The monotonically increasing hazard imposed by the Weibull distribution may be implausible and this may make us question the suitability of a Weibull model if we wish to extrapolate. ## Incorporation of background mortality A relative survival model can be fitted using `flexsurv` by incorporating background mortality rates. The model then estimates excess hazard rates and relative survival measures. For prediction purposes, following the fitting of a relative survival model, `standsurv` allows the user to either obtain marginal predictions of relative survival / excess hazard or of all-cause survival / all-cause hazard. The latter are calculated by multiplying relative survival estimates with expected survival to get all-cause survival, or by adding excess hazard rates to expected hazard to get all-cause hazard. We demonstrate this by fitting a relative survival cure model to the breast cancer data and obtaining predicted all-cause survival and all-cause hazard up to 30-years after diagnosis. A mixture cure model makes the assumption that a proportion of the study population will never experience the event. In a relative survival framework the cure model assumes that the excess mortality rate approaches zero (or equivalently the relative survival reaches an asymptote determined by the cure fraction). We fit a relative survival cure model with a Weibull distribution assumed for the uncured. The relative survival mixture-cure model is fitted below. We must pass to `flexsurvcure` the expected hazard rates at the event / censoring time for each individual, as it is the expected rates at the event times that are used in the likelihood function for a parametric relative survival model. For this we need to initally do some data wrangling. Firstly, we calculate attained age and attained year (in whole years) at the event time for all study subjects. Secondly, we join the data with the expected rates using the matching variables attained age, attained year and sex. In the example, we express the expected rate as per person-year as this is the timescale used in the flexsurv regression model. ```{r} ## reshape US lifetable to be a tidy data.frame, and convert rates to per person-year as flexsurv regression is in years survexp.us.df <- as.data.frame.table(survexp.us, responseName = "exprate") %>% mutate(exprate = 365.25 * exprate) survexp.us.df$age <- as.numeric(as.character(survexp.us.df$age)) survexp.us.df$year <- as.numeric(as.character(survexp.us.df$year)) ## Obtain attained age and attained calendar year in (whole) years bc <- bc %>% mutate(attained.age.yr = floor(age + recyrs), attained.year = lubridate::year(diag + rectime)) ## merge in (left join) expected rates at event time bc <- bc %>% left_join(survexp.us.df, by = c("attained.age.yr"="age", "attained.year"="year", "sex"="sex")) # A stratified relative survival mixture-cure model model.weibull.sep.rs <- flexsurvcure(Surv(recyrs, censrec)~group2, anc = list(shape = ~ group2, scale = ~ group2), data=bc, dist="weibullPH", bhazard=exprate) model.weibull.sep.rs ``` We can now use `standsurv` to obtain all-cause survival and hazard predictions using `type = "survival"` and `type = "hazard"`. If instead we had wanted predictions of relative survival or excess hazards we would use `type = "relsurvival"` and `type = "excesshazard"`, respectively. ```{r} ## All-cause survival ss.weibull.sep.rs.surv <- standsurv(model.weibull.sep.rs, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.surv, expected = T) # All-cause hazard ss.weibull.sep.rs.haz <- standsurv(model.weibull.sep.rs, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.haz, expected = T) ``` The marginal excess hazard is now unimodal since the cure model is forcing the initially increasing excess hazard to tend to zero in the long-term where only 'cured' subjects remain. The marginal all-cause hazard tends to the expected hazard and follows it thereafter. A plot of the excess hazard confirms this. ```{r} # Excess hazard ss.weibull.sep.rs.excesshaz <- standsurv(model.weibull.sep.rs, type = "excesshazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.excesshaz) ``` # Conclusions `standsurv` is a powerful post-estimation command that allows easy calculation of a number of useful prediction metrics. Contrasts can be made between any counterfactual populations of interest and, through regression standardisation, allows the targeting of marginal estimands. Confidence intervals, via the delta method or bootstrapping, are available and benchmarking against or incorporating background mortality rates is also supported. # References flexsurv/vignettes/multistate.Rnw0000644000176200001440000014302114471114027017025 0ustar liggesusers%\VignetteIndexEntry{Multi-state modelling with flexsurv} %\VignetteEngine{knitr::knitr} % \documentclass[article,shortnames]{jss} \documentclass[article,shortnames,nojss,nofooter]{jss} \usepackage{bm} \usepackage{tabularx} \usepackage{graphics} \usepackage{alltt} \usepackage[utf8]{inputenc} <>= options(width=60) options(prompt="R> ") library(knitr) opts_chunk$set(fig.path="flexsurv-") render_sweave() @ %% need no \usepackage{Sweave.sty} \author{Christopher H. Jackson \\ MRC Biostatistics Unit, Cambridge, UK} \title{Flexible parametric multi-state modelling with flexsurv} \Plainauthor{Christopher Jackson, MRC Biostatistics Unit} \Address{ Christopher Jackson\\ MRC Biostatistics Unit\\ Cambridge Institute of Public Health\\ Robinson Way\\ Cambridge, CB2 0SR, U.K.\\ E-mail: \email{chris.jackson@mrc-bsu.cam.ac.uk} } \Abstract{ A \emph{multi-state model} represents how an individual moves between multiple states in continuous time. Survival analysis is a special case with two states, ``alive'' and ``dead''. \emph{Competing risks} are a further special case, where there are multiple causes of death, that is, one starting state and multiple possible destination states. This vignette describes the two forms of multi-state or competing risks models that can be implemented in \pkg{flexsurv}. Section~\ref{sec:causespec} describes models based on \emph{cause-specific hazards}. Section~\ref{sec:mixture} describes a less commonly-used approach based on \emph{mixture models}. Cause-specific hazards models tend to be faster to fit, whereas the parameters of the mixture models are easier to interpret. } \Keywords{multi-state models, multistate models, competing risks} \begin{document} \section{Overview} \label{sec:multistate} This vignette describes multi-state models for data where there are a series of event times $t_{1},\dots, t_{n}$ for an individual, corresponding to changes of state. The last of these may be an observed or right-censored event time. Note \emph{panel data} are not considered here --- that is, observations of the state of the process at an arbitrary set of times \citep{kalbfleisch:lawless}. In panel data, we do not necessarily know the time of each transition, or even whether transitions of a certain type have occurred at all between a pair of observations. Multi-state models for that type of data (and also exact event times) can be fitted with the \pkg{msm} package for \proglang{R} \citep{msmjss}, but are restricted to (piecewise) exponential event time distributions. Knowing the exact event times enables much more flexible models, which \pkg{flexsurv} can fit. The \pkg{flexsurv} package provides two general frameworks for multi-state modelling. \begin{enumerate} \item The most common framework is based on \emph{cause-specific hazards} of competing risks. This is an extension of standard survival modelling, and is explained in Section~\ref{sec:causespec}. \item An alternative approach is based on \emph{mixture models}. For example, suppose there are three competing states that an individual in state $r$ may move to next. People are then classified into three \emph{mixture components}, defined by the state the person moves to. The probabilities of each next state, and the distribution of the time of moving to each state, are estimated jointly. These quantities are easier to interpret than cause specific hazards. This approach was originally described by \citet{larson1985mixture}. In Section~\ref{sec:mixture} we explain how to implement it using the \code{flexsurvmix} function. \end{enumerate} \section{Multi-state modelling using cause-specific hazards} \label{sec:causespec} Given that an individual is in state $X(t)$ at time $t$, their next state, and the time of the change, are governed by a set of \emph{transition intensities} or \emph{transition hazards} \[q_{rs}(t,\mathbf{z}(t),\mathcal{F}_t) = \lim_{\delta t \rightarrow 0} \Prob(X(t+\delta t) = s | X(t) = r, \mathbf{z}(t), \mathcal{F}_t) / \delta t \] for states $r, s = 1,\dots,R$, which for a survival model are equivalent to the hazard $h(t)$. The intensity represents the instantaneous risk of moving from state $r$ to state $s$, and is zero if the transition is impossible. It may depend on covariates $\mathbf{z}(t)$, the time $t$ itself, and possibly also the ``history'' of the process up to that time, $\mathcal{F}_t$: the states previously visited or the length of time spent in them. \paragraph{Alternative time scales} In semi-Markov (``clock-reset'') models, $q_{rs}(t)$ is defined as a function of the time $t$ since entry into the current state. Any software to fit survival models can also fit this kind of multi-state model, as the following sections will explain. In an inhomogeneous Markov model, $t$ represents the time since the beginning of the process (that is, a ``clock-forward'' scale is used), but the intensity $q_{rs}(t)$ does not depend further on $\mathcal{F}_t$. Again, standard survival modelling software can be used, with the additional requirement that it can deal with left-truncation or \emph{counting process} data, which \code{survreg}, for example, does not currently support. These approaches are equivalent for competing risks models, since there is at most one transition for each individual, so that the time since the beginning of the process equals the time spent in the current state. Therefore no left-truncation is necessary. Note also that in a clock-reset model, the time since the beginning of the process may enter the model as a covariate. Likewise, in a clock-forward model, the time spent in the current state may enter as a covariate, in which case the model is no longer Markov. \paragraph{Example} For illustration, consider a simple three-state example, previously studied by \citet{heng:paper}. Recipients of lung transplants are are risk of bronchiolitis obliterans syndrome (BOS). This was defined as a decrease in lung function to below 80\% of a baseline value defined in the six months following transplant. A three-state ``illness-death'' model represents the risk of developing BOS, the risk of dying before developing BOS, and the risk of death after BOS. BOS is assumed to be irreversible, so there are only three allowed transitions (Figure \ref{fig:bosmsm}), each with an intensity function $q_{rs}(t)$. \begin{figure}[h] \centering \scalebox{0.6}{\includegraphics{bosmsm.pdf}} \caption{Three-state multi-state model for bronchiolitis obliterans syndrome (BOS).} \label{fig:bosmsm} \end{figure} \subsection{Representing multi-state data as survival data} \label{sec:multistate:data} \citet{andersen:keiding} and \citet{putter:mstate} explain how to implement multi-state models by manipulating the data into a suitable form for survival modelling software --- an overview is given here. For each permitted $r \rightarrow s$ transition in the multi-state model, there is a corresponding ``survival'' (time-to-event) model, with hazard rates defined by $q_{rs}(t)$. For a patient who enters state $r$ at time $t_{j}$, their next event at $t_{j+1}$ is defined by the model structure to be one of a set of competing events $s_1,\ldots,s_{n_r}$. This implies there are $n_r$ corresponding survival models for this state $r$, and $\sum_r n_r$ models over all states $r$. In the BOS example, there are $n_1=2,n_2=1$ and $n_3=0$ possible transitions from states 1, 2 and 3 respectively. The data to inform the $n_r$ models from state $r$ consists firstly of an indicator for whether the transition to the corresponding state $s_1,\ldots,s_{n_r}$ is observed or censored at $t_{j+1}$. If the individual moves to state $s_k$, the transitions to all other states in this set are censored at this time. This indicator is coupled with: \begin{itemize} \item (for a semi-Markov model) the time elapsed $dt_{j} = t_{j+1} - t_{j}$ from state $r$ entry to state $s$ entry. The ``survival'' model for the $r \rightarrow s$ transition is fitted to this time. \item (for an inhomogeneous Markov model) the start and stop time $(t_j,t_{j+1})$, as in \S\ref{sec:censtrunc}. The $r \rightarrow s$ model is fitted to the right-censored time $t_{j+1}$ from the \emph{start of the process}, but is conditional on not experiencing the $r \rightarrow s$ transition until after the state $r$ entry time. In other words, the $r \rightarrow s$ transition model is \emph{left-truncated} at the state $r$ entry time. \end{itemize} In this form, the outcomes of two patients in the BOS data are <<>>= library(flexsurv) bosms3[18:22, ] @ Each row represents an observed (\code{status = 1}) or censored (\code{status = 0}) transition time for one of three time-to-event models indicated by the categorical variable \code{trans} (defined as a factor). Times are expressed in years, with the baseline time 0 representing six months after transplant. Values of \code{trans} of 1, 2, 3 correspond to no BOS$\rightarrow$BOS, no BOS$\rightarrow$death and BOS$\rightarrow$death respectively. The first row indicates that the patient (\code{id} 7) moved from state 1 (no BOS) to state 2 (BOS) at 0.17 years, but (second row) this is also interpreted as a censored time of moving from state 1 to state 3, potential death before BOS onset. This patient then died, given by the third row with \code{status} 1 for \code{trans} 3. Patient 8 died before BOS onset, therefore at 8.2 years their potential BOS onset is censored (fourth row), but their death before BOS is observed (fifth row). The \pkg{mstate} \proglang{R} package \citep{mstate:cmpb,mstate:jss} has a utility \code{msprep} to produce data of this form from ``wide-format'' datasets where rows represent individuals, and times of different events appear in different columns. \pkg{msm} has a similar utility \code{msm2Surv} for producing the required form given longitudinal data where rows represent state observations. \subsection{Multi-state model likelihood with cause-specific hazards} \label{sec:multistate:lik} After forming survival data as described above, a multi-state model can be fitted by maximising the standard survival model likelihood~(given at the start of the main \pkg{flexsurv} vignette), $l(\bm{\theta} | \mathbf{x}) = \prod_i l_i(\bm{\theta}|x_i)$, where $\mathbf{x}$ is the data, and $i$ now indexes multiple observations for multiple individuals. This can also be written as a product over the $K=\sum_r n_r$ transitions $k$, and the $m_k$ observations $j$ pertaining to the $k$th transition. The transition type will typically enter this model as a categorical covariate --- see the examples in the next section. \begin{equation} \label{eq:lik:multistate} l(\bm{\theta} | \mathbf{x}) = \prod_{k=1}^K \prod_{j=1}^{m_k} l_{jk}(\bm{\theta}|\mathbf{x}_{jk}) \end{equation} Therefore if the parameter vector $\bm{\theta}$ can be partitioned as $(\bm{\theta}_1|\ldots|\bm{\theta}_K)$, independent components for each transition $k$, the likelihood becomes the product of $K$ independent transition-specific likelihoods \citep{andersen:keiding}. The full multi-state model can then be fitted by maximising each of these independently, using $K$ separate calls to a survival modelling function such as \code{flexsurvreg}. This can give vast computational savings over maximising the joint likelihood for $\bm{\theta}$ with a single fit. For example, \citet{francesca:smmr} used \pkg{flexsurv} to fit a parametric multi-state model with 21 transitions and 84 parameters for over 30,000 observations, which was computationally impractical via the joint likelihood, whereas it only took about a minute to perform 21 transition-specific fits. On the other hand, if any parameters are constrained between transitions (e.g. if hazards are proportional between transitions, or the effects of covariates on different transitions are the same) then it is necessary to maximise the joint likelihood~(\ref{eq:lik:multistate}) with a single call. \subsection{Fitting parametric multi-state models with cause-specific hazards} \label{sec:multistate:fitting} \paragraph{Joint likelihood} Three multi-state models are fitted to the BOS data using \code{flexsurvreg}, firstly using a single likelihood maximisation for each model. The first two use the ``clock-reset'' time scale. \code{crexp} is a simple time-homogeneous Markov model where all transition intensities are constant through time, so that the clock-forward and clock-reset scales are identical. The time to the next event is exponentially-distributed, but with a different rate $q_{rs}$ for each transition type \code{trans}. \code{crwei} is a semi-Markov model where the times to BOS onset, death without BOS and the time from BOS onset to death all have Weibull distributions, with a different shape and scale for each transition type. \code{cfwei} is a clock-forward, inhomogeneous Markov version of the Weibull model: the 1$\rightarrow$2 and 1$\rightarrow$3 transition models are the same, but the third has a different interpretation, now the time \emph{from baseline} to death with BOS has a Weibull distribution. <<>>= crexp <- flexsurvreg(Surv(years, status) ~ trans, data = bosms3, dist = "exp") crwei <- flexsurvreg(Surv(years, status) ~ trans + shape(trans), data = bosms3, dist = "weibull") cfwei <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans + shape(trans), data = bosms3, dist = "weibull") @ \paragraph{Semi-parametric equivalents} The equivalent Cox models are also fitted using \code{coxph} from the \pkg{survival} package. These specify a different baseline hazard for each transition type through a function \code{strata} in the formula, so since there are no other covariates, they are essentially non-parametric. Note that the \code{strata} function is not currently understood by \code{flexsurvreg} --- the user must say explicitly what parameters, if any, vary with the transition type, as in \code{crwei}. <<>>= crcox <- coxph(Surv(years, status) ~ strata(trans), data = bosms3) cfcox <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data = bosms3) @ In all cases, if there were other covariates, they could simply be included in the model formula. Typically, covariate effects will vary with the transition type, so that an interaction term with \code{trans} would be included. Some post-processing might then be needed to combine the main covariate effects and interaction terms into an easily-interpretable quantity (such as the hazard ratio for the $r,s$ transition). Alternatively, \pkg{mstate} has a utility \code{expand.covs} to expand a single covariate in the data into a set of transition-specific covariates, to aid interpretation \citep[see][]{mstate:jss}. \paragraph{Transition-specific models} In this small example, the joint likelihood can be maximised easily with a single function call, but for larger models and datasets, this may be unfeasible. A more computationally-efficient approach is to fit a list of transition-specific models, as follows. <<>>= mod_nobos_bos <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1), data = bosms3, dist = "weibull") mod_nobos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2), data = bosms3, dist = "weibull") mod_bos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==3), data = bosms3, dist = "weibull") @ We then define a matrix \code{tmat} describes the transition structure of the multi-state model , as a matrix of integers whose $r,s$ entry is $i$ if the $i$th transition type is $r,s$, and has \code{NA}s on the diagonal and where the $r,s$ transition is disallowed. <<>>= tmat <- rbind(c(NA, 1, 2), c(NA, NA, 3), c(NA, NA, NA)) crfs <- fmsm(mod_nobos_bos, mod_nobos_death, mod_bos_death, trans = tmat) @ The three transition models are then grouped together, and the transition matrix is attached, using the \code{fmsm} function. This constructs an R object, \code{crfs}, that fully describes the multistate model. The \code{fmsm} object can be supplied to the output and prediction functions described in the subsequent sections, instead of a single \code{flexsurvreg} object. However, this approach is not possible if there are constraints in the parameters across transitions, such as common covariate effects. \begin{sloppypar} Any parametric distribution can be employed in a multi-state model, just as for standard survival models, with \code{flexsurvreg}. Spline models may also be fitted with \code{flexsurvspline}, and if hazards are assumed proportional, they are expected to give similar results to the Cox model. Since \pkg{flexsurv} version 2.0, different parametric families can be used for different transitions, though in earlier versions, the same family had to be used. \end{sloppypar} \subsection{Obtaining cumulative transition-specific hazards} Multi-state models can be characterised by their cumulative $r \rightarrow s$ transition-specific hazard functions $H_{rs}(t) = \int_0^t q_{rs}(u)du$. For \emph{semi-parametric} multi-state models fitted with \code{coxph}, the function \code{msfit} in \pkg{mstate} \citep{mstate:cmpb,mstate:jss} provides piecewise-constant estimates and covariances for $H_{rs}(t)$. For the Cox models for the BOS data, <<>>= require("mstate") mrcox <- msfit(crcox, trans = tmat) mfcox <- msfit(cfcox, trans = tmat) @ \pkg{flexsurv} provides an analogous function \code{msfit.flexsurvreg} to produce cumulative hazards from \emph{fully-parametric} multi-state models in the same format. This is a short wrapper around \code{summary.flexsurvreg(..., type = "cumhaz")}, previously mentioned in \S\ref{sec:plots}. The difference from \pkg{mstate}'s method is that hazard estimates can be produced for any grid of times \code{t}, at any level of detail and even beyond the range of the data, since the model is fully parametric. The argument \code{newdata} can be used in the same way to specify a desired covariate category, though in this example there are no covariates in addition to the transition type. The name of the (factor) covariate indicating the transition type can also be supplied through the \code{tvar} argument, in this case it is the default, \code{"trans"}. <<>>= tgrid <- seq(0, 14, by = 0.1) mrwei <- msfit.flexsurvreg(crwei, t = tgrid, trans = tmat) mrexp <- msfit.flexsurvreg(crexp, t = tgrid, trans = tmat) mfwei <- msfit.flexsurvreg(cfwei, t = tgrid, trans = tmat) @ These can be plotted (Figure \ref{fig:bos:cumhaz}) to show the fit of the parametric models compared to the non-parametric estimates. Both models appear to fit adequately, though give diverging extrapolations after around 6 years when the data become sparse. The Weibull clock-reset model has an improved AIC of \Sexpr{round(crwei$AIC)}, compared to \Sexpr{round(crexp$AIC)} for the exponential model. For the $2\rightarrow 3$ transition, the clock-forward and clock-reset models give slightly different hazard trajectories. <>= cols <- c("black", "#E495A5", "#86B875", "#7DB0DD") # colorspace::rainbow_hcl(3) plot(mrcox, xlab = "Years after baseline", lwd = 3, xlim = c(0, 14), cols = cols[1:3]) for (i in 1:3){ lines(tgrid, mrexp$Haz$Haz[mrexp$Haz$trans == i], col = cols[i], lty = 2, lwd = 2) lines(tgrid, mrwei$Haz$Haz[mrwei$Haz$trans == i], col = cols[i], lty = 3, lwd = 2) } lines(mfcox$Haz$time[mfcox$Haz$trans == 3], mfcox$Haz$Haz[mfcox$Haz$trans == 3], type = "s", col = cols[4], lty = 1, lwd = 2) lines(tgrid, mfwei$Haz$Haz[mfwei$Haz$trans == 3], col = cols[4], lty = 3, lwd = 2) legend("topleft", inset = c(0, 0.2), lwd = 2, col = cols[4], c("2 -> 3 (clock-forward)"), bty = "n") legend("topleft", inset = c(0, 0.3), c("Non-parametric", "Exponential", "Weibull"), lty = c(1, 2, 3), lwd = c(3, 2, 2), bty = "n") @ \begin{figure}[h] \includegraphics{flexsurv-cumhaz-1} \caption{Cumulative hazards for three transitions in the BOS multi-state model (clock-reset), under non-parametric, exponential and Weibull models. For the $2\rightarrow 3$ transition, an alternative clock-forward scale is shown for the non-parametric and Weibull models.} \label{fig:bos:cumhaz} \end{figure} \subsection{Prediction from parametric multi-state models with cause-specific hazards} The \emph{transition probabilities} of the multi-state model are the probabilities of occupying each state $s$ at time $t > t_0$, given that the individual is in state $r$ at time $t_0$. \[ P(t_0, t) = \Prob(X(t) = s | X(t_0) = r) \] \paragraph{Markov models} For a time-inhomogeneous Markov model, these are related to the transition intensities via the Kolmogorov forward equation \[ \frac{d P(t_0,t)}{dt} = P(t_0,t) Q(t) \] with initial condition $P(t_0,t_0) = I$ \citep{cox:miller}. This can be solved numerically, as in \citet{titman:nonhomog}. This is implemented in the function \code{pmatrix.fs}, using the \pkg{deSolve} package \citep{deSolve}. This returns the full transition probability matrix $P(t_0,t)$ from time $t_0=0$ to a time or set of times $t$ specified in the call. Under the Weibull model, the probability of remaining alive and free of BOS is estimated at 0.3 at 5 years and 0.09 at 10 years: <<>>= pmatrix.fs(cfwei, t = c(5, 10), trans = tmat) @ Confidence intervals can be obtained by simulation from the asymptotic distribution of the maximum likelihood estimates --- see \code{help(pmatrix.fs)} for full details. A similar function \code{totlos.fs} is provided to estimate the expected total amount of time spent in state $s$ up to time $t$ for a process that starts in state $r$, defined as $\int_{u=0}^tP(0,u)_{rs}du$. \paragraph{Semi-Markov models} For semi-Markov models, the Kolmogorov equation does not apply, since the transition intensity matrix $Q(t)$ is no longer a deterministic function of $t$, but depends on when the transitions occur between time $t_0$ and $t$. Predictions can then be made by simulation. The function \code{sim.fmsm} simulates trajectories from parametric semi-Markov models by repeatedly generating the time to the next transition until the individual reaches an absorbing state or a specified censoring time. This requires the presence of a function to generate random numbers from the underlying parametric distribution --- and is fast for built-in distributions which use vectorised functions such as \code{rweibull}. \code{pmatrix.simfs} calculates the transition probability matrix by using \code{sim.fmsm} to simulate state histories for a large number of individuals, by default 100000. Simulation-based confidence-intervals are also available in \code{pmatrix.simfs}, at an extra computational cost, and the expected total length of stay in each state is available from \code{totlos.simfs}. <>= pmatrix.simfs(crwei, trans = tmat, t = 5) pmatrix.simfs(crwei, trans = tmat, t = 10) @ \paragraph{Prediction via mstate} Alternatively, predictions can be made by supplying the cumulative transition-specific hazards, calculated with \code{msfit.flexsurvreg}, to functions in the \pkg{mstate} package. For Markov models, the solution to the Kolmogorov equation \citep[e.g.,][]{aalen:process} is given by a product integral, which can be approximated as \[ P(t_0, t) = \prod_{i=0}^{m-1} \left\{ I + Q(t_i)dt \right\} \] where a fine grid of times $t_0,t_1,\ldots,t_m=t$ is chosen to span the prediction interval, and $Q(t_i)dt$ is the increment in the cumulative hazard matrix between times $t_i$ and $t_{i+1}$. $Q$ may also depend on other covariates, as long as these are known in advance. In \pkg{mstate}, these can be calculated with the \code{probtrans} function, applied to the cumulative hazards returned by \code{msfit}. For Cox models, the time grid is naturally defined by the observed survival times, giving the Aalen-Johansen estimator \citep{andersen}. Here, the probability of remaining alive and free of BOS is estimated at 0.27 at 5 years and 0.17 at 10 years. <<>>= ptc <- probtrans(mfcox, predt = 0, direction = "forward")[[1]] round(ptc[c(165, 193),], 3) @ For parametric models, using a similar discrete-time approximation was suggested by \citet{cook:lawless}. This is achieved by passing the object returned by \code{msfit.flexsurvreg} to \code{probtrans} in \pkg{mstate}. It can be made arbitrarily accurate by choosing a finer resolution for the grid of times when calling \code{msfit.flexsurvreg}. <<>>= ptw <- probtrans(mfwei, predt = 0, direction = "forward")[[1]] round(ptw[ptw$time %in% c(5, 10),], 3) @ \code{pstate1}--\code{pstate3} are close to the first rows of the matrices returned by \code{pmatrix.fs}. The discrepancy from the Cox model is more marked at 10 years when the data are more sparse (Figure \ref{fig:bos:cumhaz}). A finer time grid would be required to achieve a similar level of accuracy to \code{pmatrix.fs} for the point estimates, at the cost of a slower run time than \code{pmatrix.fs}. However, an advantage of \code{probtrans} is that standard errors are available more cheaply. For semi-Markov models, \pkg{mstate} provides the function \code{mssample} to produce both simulated trajectories and transition probability matrices from semi-Markov models, given the estimated piecewise-constant cumulative hazards \citep{fiocco:mstatepred}, produced by \code{msfit} or \code{msfit.flexsurvreg}, though this is generally less efficient than \code{pmatrix.simfs}. In this example, 1000 samples from \code{mssample} give estimates of transition probabilities that are accurate to within around 0.02. However with \code{pmatrix.simfs}, greater precision is achieved by simulating 100 times as many trajectories in a shorter time. <>= mssample(mrcox$Haz, trans = tmat, clock = "reset", M = 1000, tvec = c(5, 10)) mssample(mrwei$Haz, trans = tmat, clock = "reset", M = 1000, tvec = c(5, 10)) @ \subsection{Next-state probabilities} \label{sec:nextstate} In a multi-state situation we are usually interested in the probability that a person in one state will move to a specific state next, rather than to the other competing states. In the BOS example we might want to estimate the probability that a patient will die before getting BOS, or get BOS before dying. In a mixture multi-state model (Section~\ref{sec:mixture}), these are explicit parameters of the model. In a multi-state model parameterised by cause-specific hazards, these probabilities are related to the hazards through the Kolmogorov forward equation. To obtain these, we consider the full multi-state model as a set of \emph{competing risks submodels}. There is one submodel for each state a person can transition from (the "transient" states of the model). In the BOS example, there is one submodel for the transitions from no BOS (with two competing risks: BOS and death), and a second submodel for the single transition from BOS to death. The probability that the the next state after $r$ is $s$ can then be obtained in practice as the transition probability $P(X(t)=s | X(t_0)=r)$, under the submodel for transient state $r$, for a very large time $t$. \code{pmatrix.fs} can be used for this. <<>>= tmat_nobos <- rbind("No BOS"=c(NA,1,2), "BOS"=c(NA,NA,NA),"Death"=c(NA,NA,NA)) crfs_nobos <- fmsm(mod_nobos_bos, mod_nobos_death, trans = tmat_nobos) pmatrix.fs(crfs_nobos, from=1, t=100000)["No BOS",c("BOS","Death")] @ In a time-homogeneous Markov model, i.e. where the times from state $r$ to state $s$ are all exponentially distributed with a constant rate $\lambda_{rs}$, the probability that the next state after $r$ is $s$ is simply $\lambda_{rs} / \sum_u \lambda_{ru}$, where the sum is taken over all possible next states after $r$. We can check the result from \code{pmatrix.fs} agrees with this: <<>>= modexp_nobos_bos <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1), data = bosms3, dist = "exponential") modexp_nobos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2), data = bosms3, dist = "exponential") crfs_nobos <- fmsm(modexp_nobos_bos, modexp_nobos_death, trans=tmat_nobos) pmatrix.fs(crfs_nobos, from=1, t=100000)["No BOS",c("BOS","Death")] rate12 <- modexp_nobos_bos$res["rate","est"] rate13 <- modexp_nobos_death$res["rate","est"] rate12 / (rate12 + rate13) @ \subsection{Distribution of the time to the next state} \label{sec:nexttime} Under the cause-specific hazards model, the time until the next observed transition can be considered to equal the \emph{minimum} of a set of latent times --- one latent time for each potential transition whose cause-specific hazard defines the multi-state model. The distribution of this time is not generally known analytically, given a set of parametric distributions defining the cause-specific hazards. For example, if there were two competing latent event times $T_1$, $T_2$ with cause-specific hazards distributed as Gamma$(a_1,b_1)$ and Weibull$(a_2,b_2)$ respectively, then the equivalent mixture model would be specified by the conditional distributions of $T_1|T_1 T_2$, which wouldn't have a standard form. Instead this time can be computed using simulation, via \code{sim.fmsm}. The function \code{simfinal_fmsm} wraps \code{sim.fmsm} to summarise the distribution of the time to each absorbing state in a multi-state model, conditionally on that state occurring. If this is applied to a \emph{competing-risks submodel} for state $r$ of a multi-state model, this simply produces the time to the \emph{next} state in the full model, since the absorbing states of the submodel define the potential next states after state $r$. This is done here to calculate the mean, median and interquartile range for the time to BOS (given survival) and the time to death (given no BOS before death). The function also produces estimates of the probability of each of these states, though as we saw in Section~\ref{sec:nextstate}, this is available more efficiently via \code{pmatrix.fs}. Note the number of simulated individuals $M$ can be increased for more accuracy, and optionally the $B$ argument can be supplied to obtain simulation-based confidence intervals around the estimates. <<>>= crfs_nobos <- fmsm(mod_nobos_bos, mod_nobos_death, trans = tmat_nobos) simfinal_fmsm(crfs_nobos, probs = c(0.25, 0.5, 0.75), M=10000) @ \subsection{Obtaining probabilities of, and times to, a final absorbing state} \label{sec:ultimate} As the previous section mentioned, \code{simfinal_fmsm} can be applied to any multi-state model with an absorbing state, to estimate the distribution of the time from the start of the process to the absorbing state. If there are multiple absorbing states, it can also estimate the probability that the individual ends up in each one. For the BOS model, there is only one absorbing state, death, so the function returns a probability of 1 that the patient will eventually die, and summaries of the distribution of the time from transplant to death. <<>>= simfinal_fmsm(crfs, probs = c(0.25, 0.5, 0.75), M=10000) @ \code{simfinal_fmsm} requires a semi-Markov multi-state model, or a simple competing risks model, constructed through \code{fmsm}. Though for a simple competing risks model, \code{pmatrix.fs} can be used to get the probability of each competing state, as in~\ref{sec:nextstate}. \section{Multi-state modelling using mixtures} \label{sec:mixture} \subsection{Definitions} A ``mixture'' multi-state model, first described for competing risks models by \citet{larson1985mixture} is described in terms of: \begin{itemize} \item the probability $\pi_{rs}$ that the next state after state $r$ is state $s$ \item the distribution of the time $T_{rs}$ from state $r$ entry to state $s$ entry, given that the next state after $r$ is state $s$. \end{itemize} In other words, the transition intensity is defined by \[ q_{rs}(t) = \left\{ \begin{array}{ll} q^*_{rs}(t) & \mbox{if } I_{r} = s \\ 0 & \mbox{if } I_{r} \neq s\\ \end{array} \right. \] where $I_{r}$ is a latent categorical variable that determines which transition will happen next for an individual in state $r$, governed by probabilities $\pi_{r,s} = P(I_{r} = s)$, with $\sum_{s \in \mathcal{S}_r} \pi_{r,s} = 1$ over the potential next state $\mathcal{S}_r$ after state $r$. The transition intensity $q^*_{rs}(t) $ is defined by the hazard function of a parametric distribution that governs the time $S_{rs}$ from state $r$ entry until the transition to state $s$, \emph{given that this is the transition that occurs}. The mixture model describes a mechanism where the transition that happens is determined ``in advance" at time zero, whereas in the cause-specific hazards model, the risks of different events ``compete" with each other as time proceeds. However, in practice, both models can represent situations where individuals can experience any of the competing events. In the mixture model, we only specify a distribution for the time to the event \emph{that happens first} among the competing risks, and do not model events that don't occur. As discussed by \citet{cox1959analysis}, if the time-to-event distributions are specified correctly in both frameworks, then they can both represent the same process. In practice however, they will differ. As discussed in Section~\ref{sec:nexttime}, given a particular parametric form for a set of cause-specific hazards, the form of the distribution for the \emph{minimum} of the potential event times, the one that actually happens, won't be available. The main advantage of the mixture model is that it is parameterised in terms of quantities that have an easy, direct interpretation. In the mixture model, we specify a parametric distribution with density $f_{r,s}(|\theta_{r,s})$ (and CDF $F_{r,s}()$) for the time of transition to state $s$ for a person in state $r$, conditionally on this transition being the one that occurs. We have data consisting of state transitions, indexed by $j$, experienced by individuals $i$. This can either be \begin{itemize} \item \emph{an exact transition time:} $\{y_{i,j}, r_{i,j}, s_{i,j}, \delta_{i,j}=1\}$, where a transition to state $s_{i,j}$ is known to occur at a time $y_{i,j}$ after entry to state $r_{i,j}$. \item \emph{right censoring} $\{y_{i,j},r_{i,j},\delta_{i,j}=2\}$, where an individual's follow-up ends while they are in state $r_{i,j}$, at time $y_{i,j}$ after entering this state, thus the next state and the time of transition to it are unknown. \end{itemize} Therefore, for an exact time of transition to a known state $s_{i,j}$, i.e. $\delta_{i,j}=1$, the likelihood contribution is simply \[ l_{i,j} = \pi_{r_{i,j}s_{i,j}} f_{r_{i,j},s_{i,j}}(y_{i,j} | \theta_{r_{i,j},s_{i,j}}) \] For observations $j$ of right-censoring at $y_{i,j}$, the state that the person will move to, and the time of that transition, is unknown. Thus it is unknown which of the distributions $f_{r,s}$ the transition time will obey, and the likelihood contribution is of the form of a mixture model, that sums over the set $\mathcal{S}_r$ of potential next states after $r$: \[ l_{i,j} = \sum_{s \in \mathcal{S}_r} \pi_{r_{i,j}s} (1 - F_{r_{i,j},s}(y_{i,j} | \theta_{r_{i,j},s})) \] \subsection{Data for mixture competing risks models} The required data format for the mixture model is shown for the BOS data in the object \code{bosmx3}. This has \begin{itemize} \item one row for each observed event time \item one row for each ``end of follow-up" time where we know an individual was still at risk of making a transition, but we don't know which transition will occur. \end{itemize} Recall that in the data \code{bosms3} used to implement the cause-specific hazards model, a individual ``censored" at time $t$ contributed a row in the data \emph{for each} of the events that might have occurred after $t$. The difference from \code{bosmx3} is that for these individuals, \code{bosmx3} only has \emph{one} row per ``censored" individual. For example, patient 5 is censored at 11 years, when they were still at risk of either BOS or death. Also we do not include censoring times for events competing with events that were observed, e.g. when patient 4 below got BOS (state 2) at year 2, thus were ``censored" at the same time for the transition from state 1 (no BOS) to state 3 (death). The process of transforming the cause-specific dataset to the mixture dataset is shown below. Multiple censoring records, for different destination states, are condensed to a single censoring record. Each row of \code{bosmx3} then corresponds to a transition. A new column called \code{event} is created, which should be a factor that identifies the terminal event of the transition, which takes the value \code{NA} in cases of censoring where the transition that will happen is unknown. Columns not needed for the mixture model are removed. Informative labels for the factor levels of \code{event} are added to identify the states. <<>>= bosms3[bosms3$id %in% c(4,5),] bosmx3 <- bosms3 bosmx3$Tstart <- bosmx3$Tstop <- bosmx3$trans <- NULL bosmx3 <- bosmx3[!(bosmx3$status==0 & duplicated(paste(bosmx3$id, bosmx3$from))),] bosmx3$event <- ifelse(bosmx3$status==0, NA, bosmx3$to) bosmx3$event <- factor(bosmx3$event, labels=c("BOS","Death")) bosmx3$to <- NULL bosmx3[bosmx3$id %in% c(4,5),] @ \subsection{Fitting mixture competing risks models} The \code{flexsurvmix} function fits a mixture model to competing risks data. To fit a full multi-state mixture model, we fit one mixture competing risks model for each transient state in the multi-state structure. The models are then grouped together (Section~\ref{sec:fmixmsm}) to form the full multi-state model. The mixture model for the event following transplant (BOS or death before BOS, the 1-2 and 1-3 transitions in the multi-state structure) is fitted as follows. A Weibull distribution is fitted for the time to BOS given BOS onset, and an exponential distribution is fitted for the time to death given death before BOS onset. These distributions are specified in the \code{dists} argument. The same distributions as in \code{flexsurvreg} are supported (including custom distributions, in the same way). <<>>= bosfs <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) bosfs @ The printed results object shows the two event probabilities $\pi_{rs}$ in the first two rows, and the parameters of the time-to-event distributions in the remaining rows. The maximum likelihood estimates are in column \code{est}, and estimates on a (multinomial) logit or log transformed scale are in column \code{est.t}, with standard errors on the transformed scale in \code{se}. Covariates can be included on the event probabilities through multinomial logistic regression. For illustration, we just simulate some fake covariate data in the variable \code{x}. The log odds ratio for this covariate on the odds of death (with the first category, BOS here, always taken as the baseline) is shown in the row with \code{terms} labelled \code{prob2(x)}. <<>>= set.seed(1) bosmx3$x <- rnorm(nrow(bosmx3),0,1) bosfsp <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential"), pformula = ~ x) bosfsp @ Covariates may also be included on any parameter of any time-to-event distribution, as in \code{flexsurvreg}. If the covariate is named on the right hand side of the \code{Surv} formula in the first argument, then it is included on the location parameter of all distributions. <<>>= bosfst <- flexsurvmix(Surv(years, status) ~ x, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) @ The first argument may be a list of formulae, to indicate that different covariates are included on the location parameter for different events. <<>>= flexsurvmix(list(Surv(years, status) ~ x, Surv(years, status) ~ 1), event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) @ An argument \code{anc} is used to supply covariates on ancillary parameters (e.g. shape parameters). This must be a list of length matching the number of competing events, each component being a named list in the format used for the \code{anc} argument in \code{flexsurvreg}. If there are no covariates for a particular component, just specify a null formula on the location parameter (as below, \code{rate=~1}). <<>>= flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential"), anc = list(BOS=list(shape=~x), Death=list(rate=~1))) @ \subsection{Predictions from mixture competing risks models} A few functions have been supplied to extract estimates and confidence intervals for interpretable quantities, for given covariate values. Here we extract estimates of various quantities for covariate values of \code{x=0} and \code{x=1}. These values are provided in a data frame \code{nd} that will be supplied as the \code{newdata} argument to various extractor functions. The first extractor function \code{probs_flexsurvmix} gives the fitted event probabilities, by event and covariate value. This is applied here to the fitted model \code{bosfsp} that included a covariate on the event probabilities. All these functions take an argument \code{B} which specifies the number of samples to use for calculating bootstrap-like confidence limits --- increase this for more accurate limits. <<>>= nd <- data.frame(x=c(0,1)) probs_flexsurvmix(bosfsp, newdata=nd, B=50) @ \code{mean_flexsurvmix} extracts the mean time to each event conditionally on that event occurring, from the mean of the fitted time-to-event distribution. \code{quantile_flexsurvmix} extracts the quantiles of these distributions, e.g. the interquartile range in this example summarises the variability between individuals for this time. <<>>= mean_flexsurvmix(bosfst, newdata=nd) quantile_flexsurvmix(bosfst, B=50, newdata=nd, probs=c(0.25, 0.5, 0.75)) @ \code{p_flexsurvmix} extracts the probability of being in each of the states at a time $t$ in the future, shown for $t=5,10$ here. The \code{startname} argument supplies an informative name to the ``starting" state that the model \code{bosfst} describes transitions from. <<>>= p_flexsurvmix(bosfst, t=c(5, 10), B=10, startname="No BOS") @ \subsection{Forming a mixture multi-state model} \label{sec:fmixmsm} We supplement the mixture model for the event following state 1 (no BOS) with a second model \code{bosfst_bos} for the events following BOS (the other transient state in the multi-state model). Although this is fitted with \code{flexsurvmix}, there is only one potential next state after BOS, which is death, so internally this just fits a standard survival model using \code{flexsurvreg}. The two mixture models are then coupled together using the \code{fmixmsm} function, which returns an object containing the entire multi-state model, here named \code{bosfmix}. This object contains attributes listing the potential pathways that an individual can take through the states. These pathways are identified automatically by naming the arguments to \code{fmixmsm} with the label of the state that each model describes transitions from --- here the first model \code{bosfst} describes transitions from ``No BOS" and the second describes transitions from BOS. (Note we redefine the \code{event} factor so that empty levels are dropped) <<>>= bdat <- bosmx3[bosmx3$from==2,] bdat$event <- factor(bdat$event) bosfst_bos <- flexsurvmix(Surv(years, status) ~ x, event=event, data=bdat, dists = c(Death="exponential")) bosfmix <- fmixmsm("No BOS"=bosfst, "BOS"=bosfst_bos) @ Now we can predict outcomes from the full multi-state model. All these functions work by simulating a large population of individuals from the model, by default \code{M=10000}, so increase this for more accuracy. A cut-off time \code{t=1000} is also applied to the simulated data that assumes people have all reached the absorbing state by this time -- increase this if necessary. These functions currently require models to have at least one absorbing state, and no ``cycles" in their transition structure. The function \code{ppath_fmixmsm} returns the probability of following each of the potential pathways through the model. For this example, they are the same for both covariate values \code{x=0} and \code{x=1}. Setting \code{final=TRUE} aggregates the pathway probabilities by the final (absorbing) state, returning the probability of ending in each of the potential final states, which is trivially 1 in this case for the single absorbing state of death. <<>>= ppath_fmixmsm(bosfmix, B=20) ppath_fmixmsm(bosfmix, B=20, final=TRUE) @ To estimate the mean time to the final state for individuals following each pathway, use \code{meanfinal_fmixmsm}, and for the quantiles of the distribution of this time over individuals (by default the median and a 95\% interval), use \code{qfinal_fmixmsm}. Supplying \code{final=TRUE} in these functions summarises the mean time to the final state, averaged over all potential pathways (according to the probability of following those pathways). Again, covariate values can be supplied in the \code{newdata} argument if needed. <<>>= meanfinal_fmixmsm(bosfmix, B=10) qfinal_fmixmsm(bosfmix, B=10) meanfinal_fmixmsm(bosfmix, B=10, final=TRUE) @ \subsection{Goodness of fit checking} The fit of mixture competing risks models can be checked by comparing predictions of the state occupancy probabilities (as returned by \code{p_flexsurvmix}) with nonparametric estimates of these quantities \citep{aalen:johansen}. This is only supported for models with no covariates or only factor covariates (where subgroup-specific predictions are compared with stratified nonparametric estimates). The function \code{ajfit_flexsurvmix} derives these estimates from both the mixture model and the Aalen-Johansen method, and collects them in a tidy data frame ready for plotting, e.g. with the \pkg{ggplot2} package. The mixture models fit nicely here. A \code{start} argument is supplied to give an informative label to the starting state in the plots. Note we are plotting not probability of \emph{being in} a state at time $t$, but the probability of \emph{having made} the respective transition --- here we are checking the competing risks submodels one at time. <>= aj <- ajfit_flexsurvmix(bosfs, start="No BOS") bosfs_bos <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bdat, dists = c(Death="exponential")) aj2 <- ajfit_flexsurvmix(bosfs_bos, start="BOS") library(ggplot2) ggplot(aj, aes(x=time, y=val, lty=model, col=state)) + geom_line() + xlab("Years after transplant") + ylab("Probability of having moved to state") ggplot(aj2, aes(x=time, y=val, lty=model, col=state)) + xlab("Years after transplant") + ylab("Probability of having moved to state") + geom_line() @ Checking against Aalen-Johansen estimates is also supported for cause-specific hazards models that are grouped together using \code{fmsm}. Thus we can compare cause-specific hazards and mixture models that have been fitted to the same data. We do this here for the \code{fmsm} object \code{crfs_nobos} created in Section~\ref{sec:nextstate}. <>= library(dplyr) aj3 <- ajfit_fmsm(crfs_nobos) %>% filter(model=="Parametric") %>% mutate(model = "Cause specific hazards") %>% mutate(state = factor(state, labels=c("No BOS","BOS","Death"))) %>% full_join(aj) ggplot(aj3, aes(x=time, y=val, lty=model, col=state)) + xlab("Years after transplant") + ylab("Probability of having moved to state") + geom_line() @ \section{Comparison of frameworks for parametric multi-state modelling} As the mixture model is described by the probabilities of observable events and the times to those events, it is somewhat easier to interpret then the cause-specific hazards model. While those quantities can be computed under the cause-specific hazards model, they require potentially-expensive simulation. An advantage of the cause-specific hazards model is that it tends to be faster to \emph{fit}, if the transition-specific models are fitted independently. Another competing-risks modelling framework not implemented here is typically referred to as \emph{subdistribution} hazard modelling --- essentially covariate effects are applied to the probabilities of occupying different states at time $t$, rather than to the cause-specific hazards. This leads to covariate effects that are easier to interpret compared to, e.g. cause-specific hazard ratios. The method has been implemented semiparametrically~\citep{fine1999proportional} and parametrically~\citep{lambert2017flexible}. A further framework referred to as ``vertical" modelling \citep{nicolaie2010vertical} involves factorising the joint distribution of events and event times as $P(time)P(event|time)$, whereas the mixture modelling framework uses $P(event)P(time|event)$. \bibliography{flexsurv} \end{document} flexsurv/vignettes/standsurv.bib0000644000176200001440000000326714252566476016700 0ustar liggesusers@article{therneau_1999, title = {A package for survival analysis in {S}}, author = {Therneau, Terry M.}, year = {1999}, month = {February}, url = {https://www.mayo.edu/research/documents/tr53pdf/doc-10027379} } @article{syriopoulou_inverse_2021, title = {Inverse probability weighting and doubly robust standardization in the relative survival framework}, volume = {40}, issn = {1097-0258}, url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/sim.9171}, OPTdoi = {10.1002/sim.9171}, language = {en}, number = {27}, urldate = {2022-01-07}, journal = {Statistics in Medicine}, author = {Syriopoulou, Elisavet and Rutherford, Mark J. and Lambert, Paul C.}, year = {2021}, keywords = {regression standardization, relative survival, inverse probability weighting, doubly robust standardization, Monte Carlo simulation study}, pages = {6069--6092} } @article{rutherford_nice_2020, title = {{NICE} {DSU} {Technical} {Support} {Document} 21: {Flexible} methods for survival analysis}, language = {en}, author = {Rutherford, Mark J and Lambert, Paul C and Sweeting, Michael J and Pennington, Becky and Crowther, Michael J and Abrams, Keith R and Latimer, Nicholas R.}, year = {2020}, } @article{ederer_relative_1961, title = {The relative survival rate: a statistical methodology}, volume = {6}, issn = {0083-1921}, shorttitle = {The relative survival rate}, language = {eng}, journal = {National Cancer Institute Monograph}, author = {Ederer, F. and Axtell, L. M. and Cutler, S. J.}, month = sep, year = {1961}, OPTpmid = {13889176}, keywords = {Biometry, Humans, Neomycin, NEOMYCIN/statistics, Survival Rate}, pages = {101--121}, } flexsurv/vignettes/distributions.Rnw0000644000176200001440000002177214500354432017543 0ustar liggesusers%\VignetteIndexEntry{Distributions reference} \documentclass[nojss,nofooter]{jss} \usepackage{bm} \usepackage{tabularx} \usepackage{graphics} \usepackage{listings} \newcommand{\bbeta}{{\bm\beta}} \newcommand{\x}{{\mathbf{x}}} \newcommand{\z}{{\mathbf{z}}} \newcommand{\btheta}{{\bm{\theta}}} %\newcommand{\code}[1]{\texttt{\detokenize{#1}}} %\newcommand{\code}[1]{\texttt\lstinline|#1|} \author{Christopher H. Jackson \\ MRC Biostatistics Unit, Cambridge, UK \\ \email{chris.jackson@mrc-bsu.cam.ac.uk}} \title{flexsurv: Distributions reference} \Plainauthor{Christopher Jackson, MRC Biostatistics Unit} \Abstract{ A reference guide for the distributions built into flexsurv } \Keywords{survival} \begin{document} This document lists the following information for each of the built-in distributions in \code{flexsurvreg}. \begin{itemize} \item How the distribution is identified in the \code{dist} argument to \code{flexsurvreg}. \item Name of the \code{d} function in R for the probability density, showing how names of the arguments in the R function correspond to the symbols in the formula for the survivor function. In each case, there are corresponding R functions with names beginning with \code{p},\code{q} and \code{r} instead of \code{d}, for the cumulative distribution, quantiles and random number generation. The R \code{help} page for the function named here will contain more information about the distribution, e.g. the probability density function, and how particular distributions are defined as special cases of other distributions. \item The survivor function $S(t|\btheta)$ as a function of time $t$ and the parameters of the distribution $\btheta$. Any restrictions on the allowed values of the parameters are noted. \item The location parameter of the distribution, now indexed by $j$, and a function describing how the location parameter depends on covariate values $\z_j$ and covariate effects $\bbeta$. $\bbeta$ are the covariate effects indicated when printing a \code{flexsurvreg} object, which can take any real value. \item A more interpretable covariate effect measure, defined as a function of $\bbeta$. \end{itemize} In a \emph{proportional hazards} model, the ``more interpretable'' effect measure presented is the hazard ratio (HR) for one unit of the covariate. In an \emph{accelerated failure time model}, the time acceleration factor (TAF) for one unit of the covariate is presented. The survivor function is of the form $S(t) = S^*(ct)$ where $c$ is some constant that depends on the parameters. Multiplying $c$ by 2 has the same effect on survival as multiplying $t$ by 2, doubling the speed of time and halving the expected survival time. An alternative way of presenting effects from an accelerated failure time model is the ratio of expected times to the event between covariate values of 1 and 0. This equals 1/TAF, and may be easier to interpret if the time to the event is of direct interest. A HR below 1 and a TAF above 1 both indicate that higher covariate values are associated with a higher risk of the event, or shorter times to the event. % So the comparable parameters are exp(-beta) for the lognormal and gengamma 1/exp(beta) = exp(-beta) for the weibull exp(beta) for the gamma and exponential \subsection*{Weibull (accelerated failure time)} \verb+flexsurvreg(..., dist="weibull")+\\ \code{dweibull(..., shape=a, scale=mu)} \[ S(t | \mu, a) = \exp(- (t/\mu)^ a), \qquad \mu>0, a>0 \] \[ \mu_j = \exp(\z_j \bbeta), \quad TAF = \exp(-\bbeta) \] \subsection*{Weibull (proportional hazards)} \verb+flexsurvreg(..., dist="weibullPH")+\\ \code{dweibullPH(..., shape=a, scale=lambda)} \[ S(t | \lambda, a) = \exp(- \lambda t^ a), \qquad \lambda>0, a>0 \] \[ \lambda_j = \exp(\z_j \bbeta), \quad HR = \exp(\bbeta) \] (Note the argument ``scale'' to \code{dweibullPH} would perhaps better have been called ``rate'', given the analogy with the rate of the exponential model). \subsection*{Gamma} \verb+flexsurvreg(..., dist="gamma")+\\ \code{dgamma(..., shape=a, scale=mu)} \[ S(t | a, \mu) = 1 - \int_{0}^t \frac{x^{a-1} \exp{-(x/\mu)}}{\mu^a \Gamma(a)} dx, \qquad \mu>0, a>0 \] \[ \mu_j = \exp(\z_j \bbeta), \quad TAF = \exp(\bbeta) \] \subsection*{Exponential} \verb+flexsurvreg(..., dist="exp")+\\ \code{dexp(..., rate=lambda)} \[ S(t | \lambda) = \exp(-\lambda t), \qquad \lambda > 0 \] \[ \lambda_j = \exp(\z_j \bbeta), \quad HR = \exp(\bbeta), \quad TAF = \exp(\bbeta) \] \subsection*{Log-logistic} \verb+flexsurvreg(..., dist="llogis")+\\ \code{dllogis(..., shape=a, scale=b)} \[ S(t | a, b) = 1/ (1 + (t/b)^a), \qquad a>0, b>0 \] \[ b_j = \exp(\z_j \bbeta), \quad TAF = \exp(-\bbeta) \] \subsection*{Log-normal} \verb+flexsurvreg(..., dist="lnorm")+\\ \code{dlnorm(..., meanlog=mu, sdlog=sigma)} \[ S(t | \mu, \sigma) = 1 - \int_0^t \frac{1}{x\sigma\sqrt{2 \pi}} \exp{\left\{-\frac{(\log x - \mu)^2}{2 \sigma^2}\right\}} dx, \qquad \sigma > 0 \] \[ \mu_j = z_j \bbeta , \quad TAF = \exp(-\bbeta) \] \subsection*{Gompertz} \verb+flexsurvreg(..., dist="gompertz")+\\ \code{dgompertz(..., shape=a, rate=b)} \[ S(t | a, b) = \exp(-(b/a) (\exp(at) - 1)), b > 0 \] Note that $a<0$ is permitted, in which case $S(t|)$ tends to a non-zero probability as $t$ increases, i.e. a probability of living forever. \[ b_j = \exp(\z_j \bbeta), \quad HR = \exp(\bbeta) \] \subsection*{Generalised gamma (Prentice)} \verb+flexsurvreg(..., dist="gengamma")+\\ \code{dgengamma(..., mu, sigma, Q)} \[ S(t|\mu,\sigma,Q) = \begin{array}{ll} S_G(\frac{\exp(Qw)}{Q^2} ~ | ~ \frac{1}{Q^2}, 1) & (Q > 0 )\\ 1 - S_G(\frac{\exp(Qw)}{Q^2} ~ | ~ \frac{1}{Q^2}, 1) & (Q < 0)\\ S_L(t ~ | ~ \mu, \sigma) & (Q = 0)\\ \end{array} \] where $w = (\log(t) - \mu)/\sigma$, $S_G(t | a,1)$ is the survivor function of the gamma distribution with shape $a$ and scale $1$, $S_L(t |\mu,\sigma)$ is the survivor function of the log-normal distribution with log-scale mean $\mu$ and standard deviation $\sigma$, $\mu,Q$ are unrestricted, and $\sigma$ is positive. \[ \mu_j = z_j \bbeta, \quad TAF = \exp(-\bbeta) \] \subsection*{Generalised gamma (Stacy)} \verb+flexsurvreg(..., dist="gengamma.orig")+\\ \code{dgengamma.orig(..., shape=b, scale=a, k=k)} \[ S(t|a, b, k) = 1 - \int_0^t \frac{ b x^{bk -1}}{ \Gamma(k) a^{bk} }\exp(-(x/a)^b) dx \] \[ a_j = \exp(z_j \bbeta), \quad TAF = \exp(-\bbeta) \] \subsection*{Generalised F (Prentice)} \verb+flexsurvreg(..., dist="genf")+\\ \code{dgenf(..., mu, sigma, Q, P)} \[ S(t | \mu, \sigma, Q, P) = 1 - \int_0^t \frac{\delta (s_1/s_2)^{s_1} e^{s_1 w}}{\sigma x (1 + s_1 e^w/s_2) ^ {(s_1 + s_2)} B(s_1, s_2)}, \qquad \sigma>0, P>0 \] where $s_1 = 2(Q^2 + 2P + Q\delta)^{-1}$, $s_2 = 2(Q^2 + 2P -Q\delta)^{-1}$, ${\delta = (Q^2 + 2P)^{1/2}}$ and $w = (\log(x) - \mu)\delta /\sigma$ \[ \mu_j = x_j \bbeta, \quad TAF = \exp(-\bbeta) \] \subsection*{Generalised F (original)} \verb+flexsurvreg(..., dist="genf.orig")+\\ \code{dgenf.orig(..., mu, sigma, s1, s2)} \[ S(t | \mu, \sigma, s_1, s_2) = 1 - \int_0^t \frac{(s_1/s_2)^{s_1} e^{s_1 w}}{\sigma x (1 + s_1 e^w/s_2) ^ {s_1 + s_2} B(s_1, s_2)} dx, \qquad \sigma>0, s_1>0, s_2>0 \] where $w = (\log(x) - \mu)/\sigma$, and $B(s_1,s_2) =\frac{\Gamma(s_1)\Gamma(s_2)}{\Gamma(s_1+s_2)}$ is the beta function. \[ \mu_j = z_j \bbeta , \quad TAF = \exp(-\bbeta) \] \subsection*{Spline (Royston/Parmar)} \verb+flexsurvspline(...,scale="hazard")+\\ \verb+flexsurvspline(...,scale="odds")+\\ \verb+flexsurvspline(...,scale="normal")+\\ \code{dsurvspline(..., gamma)} where the argument \texttt{gamma} collects together all parameters,\\ ~\\ or the alternative forms for the density/distribution functions (flexsurv versions 2.0 and later) where different parameters are in separate arguments:\\ \code{dsurvspline0(..., gamma0, gamma1)} (no internal knots)\\ \code{dsurvspline1(..., gamma0, gamma1, gamma2)} (1 internal knot)\\ \code{dsurvspline2(..., gamma0, gamma1, gamma2, gamma3)} (2 internal knots)\\ etc., all the way up to \code{dsurvspline7}. \[ g(S(t)) = s(x, \bm{\gamma}) \] where $x=\log(t)$ and $s()$ is a natural cubic spline function with $m$ internal knots: \[ s(x,\bm{\gamma}) = \gamma_0 + \gamma_1 x + \gamma_2 v_1(x) + \ldots + \gamma_{m+1} v_m(x) \] where $v_j(x)$ is the $j$th \emph{basis} function, \[v_j(x) = (x - k_j)^3_+ - \lambda_j(x - k_{min})^3_+ - (1 - \lambda_j) (x - k_{max})^3_+, \qquad \lambda_j = \frac{k_{max} - k_j}{k_{max} - k_{min}} \] and $(x - a)_+ = max(0, x - a)$. The link function relating the survivor function to the spline is: \[ g(S(t)) = \begin{array}{ll} \log(-\log(S(t))) &\verb+(scale="hazard")+ \\ \log(S(t)^{-1} - 1) & \verb+(scale="odds")+ \\ \Phi^{-1}(S(t)) & \verb+(scale="normal")+ \\ \end{array} \] For more details, see the main \code{flexsurv} vignette. The location parameter is \[ \gamma_{0j} = z_j \bbeta \] For \verb+scale="hazard"+, the hazard ratio is $\exp(\bbeta)$. \end{document} flexsurv/vignettes/bosmsm.pdf0000644000176200001440000005226713231112051016134 0ustar liggesusers%PDF-1.4 %ÐÔÅØ 5 0 obj << /Length 37 /Filter /FlateDecode >> stream xÚ+ä2T0BC] 6µ´PHÎåÒ÷Ì5TpÉç äg. endstream endobj 4 0 obj << /Type /Page /Contents 5 0 R /Resources 3 0 R /MediaBox [0 0 256 165] /Parent 6 0 R /Group 2 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./bosmsm.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 7 0 R /BBox [0 0 595 842] /Group 2 0 R /Resources << /Font << /F1 8 0 R>> /XObject << /Im4 9 0 R /Im5 10 0 R /Im6 11 0 R >>/ProcSet [ /PDF /Text /ImageC /ImageI /ImageB ] >> /Length 503 /Filter /FlateDecode >> stream xœµTMO1 ½çWøŒÔ`'“/i5[ *·-#q¨zj í¶‚ ¿v’‰æc©à°Z&Þ<¿?{‚šàU=òÊ%§ ÄŽt„—{uwü^ò†ƒAö5AR÷•BÞeï·z8S¨#Qð¼•ÐÅ(o! «=tºcÖHœ\‚=”À›ÌGÞ¯£œq4E‡”Dqþþö%—ùÊÏ ôtý[µ+fòKÜ*Ø  ¿àüšÍŒ0s š ¢Ð½Õ„ Üf–wz‘‰\ŠZ¾£2I%çÊ»N§æÃ<ªÈˇ½?É ÖÞSŒð×–Ñh|ïÇt²txùv (vÜKOÈŠ ¾«’.}¼žt!'sýõ{µ2- /Creator /Producer /CreationDate (D:20140814145414+01'00') >> endobj 8 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA+ArialMT /FirstChar 0 /LastChar 15 /Widths [ 750 666 277 556 556 277 556 277 722 556 666 777 556 556 722 556] /FontDescriptor 12 0 R /ToUnicode 13 0 R >> endobj 9 0 obj << /Type /XObject /Subtype /Image /Width 191 /Height 83 /BitsPerComponent 8 /Length 14 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream xœí]Ñqã: T ©!%¤†”RBzH ©!%¸†”p5¤=ÁårY®øøøÕ¢ ÷áëëkT&j!V{{{Û¢ÍpO”Cìõúú:º/ÿƒhÃýyÝ—‰=HÌ!µs±J{Ezt_&¶A ™mD2•ôêèîÜàåå…û6õóAq†8sXñä‹A$݉Â9ˆH¾c‡J©¤%$aeØ…bÝ"ÐŽÏð³Ag„Œ„%ÌŒÏ಻:Q Ñ¢ôÞ¸67#Ùhž$'Ê!B‚p¹\àíK•Fl#MÍÊÏ@èVFØ!ðê*m14!VR8´2ÂŽŽ È*ƒnö eð³A› )ìÈê*œ¢RsN¢ýÄ>tØIZ¶† ÃgðmÓ¤i‹Ìã2â›VSSùô„ždåÜ2@?œvõ„vÛ$Í'xFÏšOhÁ@Sõ¤»xÁ·¯N‹s·ah³æå,Y‡bP¬ƒßB?HÒ„qÂ@ ƒ©kÂN†,Ñ!tf®0ž4O1wYÒÖ1û8ÂC¯qg¤—Ô° “cs &bÓµ4LEú@ÝÙrFߧ8©G;o†ÛAð0´ì©ÿÄgº\Ç®ç+䯛åGñ‹î Ñ6ÄyòM=ìÍ F"ÛJMA <¾™ØH,Ò×R³<•£?õ¿ëâÒÙ$–Ù] ¼qÚ@ºaª=%Ñ€.ÑÑÐCƒ¿&ñG^-Y2céa¡'è;Ôyëû̪ÄrÍ÷W¹:þ™ˆ‰¨úûÊ$Îbt•ñ»Ö´õbt^y°›àñ·Û¿—Éq%+ª| 5k<â„‚G«Á¼ªš;I7bÈÆTƽ¯™êA9¥7¥ÝÙÏzkÖ$›v«ðÌ:ÈfåÊ÷ª¼Àå×YN(xŒ¶L:: […G`„ܦü6»a«žÝ¯ðžPðïKªÇv<«3®.“×jÅžZ',eë™æÒe½ “šy‰*>nÔž–àcé ÷ž™ÜñÆwÁ³ºtlfß^îÖ¦QK#³Tb2ö¬Âžx û~óÖ¶Æ žõ–<”\Œ›,M;ß|Ѧ¹{Ál&å54ˆ˜F€¼±‚Çï.övo¨u+lòȾ}ÎËåB øsßK3Ú!dý„tnÖ W­½€åµW$lƒ©Z´-8>Bƒàaë@tµß§ä}­ÖS¼j¾\Ö“<Àc!u#¨UË6ÁòÖ$M>mÞt©V"𲯫©$ð "PGù5”a…oidƇÇ'ª¸á½58V£Èƒ=V§?T)¦a‡0k$TèÓQBîn­*òø°Œ£ÈcÜ*¸½Ê´é¡ê?TªJ¹y4Ñðåšg³À<cyLøÿÚ‚y H©Çˆù?”m ÀM»˜¡+,©ù ñ²!ä1ë}… ŸRê1>¾?2ú€/«’hw¨ÍÑ÷˜ïmò˜TŽ*ë!…¨3µÙ¶ö7(Åõ™iྦྷèŸQ6ä‰O ;“G«PŠóÀÑ6-ÇÜmJ Vƨ¥ÇË-M­{¤%% Áóû Cžx‡{’G“Ÿ»ümÒ¸Î\›A>ï4-­–7bø£;@\’¡–ýä¾:ïd7òhæd¼}`æþ8@mj#ÊÔ†¬ÃÇ÷-Ð̫﫟å^ûÔ £êMI\GK³þ‘g}ÈÓáÇDÖ[5…:îÀ·e D^ñ¦OÕQ]D-ê†>µ’:l9é7ž:G˜“᤺”}/FIŸUH£ÞXÜ„N—V^@‘9›<œ#ò€ÐÏò¸?S®Ÿ"c¥ciÂTòHŸKÖP(nÄÝî³ý¡sªpÙ½à‘GaN¡áäá®ÖN¬ø*”­uðy¬Ó®dB̹I‚gE“G˜Sn2>µëkZù<Ð!ºÔ¬†™° y|x¬°È¯§]r¶°®#¡ÚÌ<«Û#ÔLË8shŠÑËš1g׆êü ÁÃb7Ï£ÛÑý^ÑÜÃ6Ê@›ãøÊG ͳ~ñ«¡‘Íwä˱“Î6j@ÆA2tÿ¥NYòŽoªÔð¦i‡<òÜÛ¨V‹ŒiµN^‡=¡Z›µ€Üœ6ÉàÍ"‡Csû˜ƒ&›%‚Bú³ Kð@³Ñ!¨Zbë TßšeçÇäh™û¡M¢b\’Qžâ‰û¸âóН+x*æçïð—?•8D> stream xœí]íQì: M Ô@ Ô@ Ô@ ô@ Ô@ [%Ü(!Oo5£GÙ¬mIvvâóãp7¶cKGòÇ®ëÄ!ðùùùûû{¶ª'œøùùy~~^–åûû»íÿþý£ªŸžž†Ô>áÁårY®øøøÕ¢ ·áëëkT&j!£ööö6¶%D›áž(‡Œ×ëëëè¶ü¢ ·çýý}t[&ö 6‡ÔÎqÄ*@nIèÑm™Ø)d#’©¤WG7ç^^^¸mS?dgˆ3‡ ¾DòÑÍ™øR8É· bìP.u‚´„8¬Œq![AUø Úñ~6há°„™þ.»©µ-J?„®‡›á´l°§ɉrˆ \.—ðò%K#pH„‘¢fæg t„•av¼:å¶šGK)œz2ÌŽ¶ŒU]ìAÒàgƒ‚$³#««á•œsí'ö¡ÍNÒ²u¸àH2|Ÿ!Ðcš¶H—aß´ššÊ§'t•—pË<ý 3ìê =m“4Cžàa€Ÿ9Ÿ>ЂBõ¤Z¬à _íçnÃ>ÐÚç³dŠA¶.¼ ý"Iã@ƒ©ÌN†,Ñ&tz®€OŠS –%m³ÏD˜`è5î WbkI5 Ú96»`"6=K½ÁT¤è×-gôyúÌ ““º·ó"Ü‚‡¡eO­ø'>ÓãÚv=_!¿n¦e^œpOˆS§¹©»½Tˆg[)$ÊíØFb‘~–ŠåPŽþÕ×É¥³I,Ø]ã1¼~Ú„4²=%Ö€цè¡Áû#GK–L[zXè‰ãœ;TÍÖ÷-ÀªÄrõ·àW¹ÚÞuÄDTýù»2‰½=óî„9m½—ì&xluûu+YQåG¨X˜'ÙƒrJoJ»³ žõï°&i· ÖA63W¶Uå .»ÎrBÁÚ2éê€n¹Mù »a«ÞÝ®ðžPðÀìKÊÇv<«\û^à×jÅžµZ'LeëHsé²^Ðg’BVÅÚÚÛ¬-=áÞ3ðÝ'¾û žÕ¸cˆ¾­Ü­u£`K=Q*19ö®<ê^ÎÈkÒ¼¼B’¬wÆôé/xºFEÚö4¬ýšWÐdòú½/¬èVa^¯€ÖRo„Ì_äI"TÑ-*¹Ekvj{Òžx­zhzD·ÄyËÎs’A°„Ú †b'‹^Ù ›Ð_ð06 Q£¶d[ÈÝIGKŸae“íNòˆ„£¾ÝAÎ;—Àw‡“ÇNÒniXMZÑ$ž/M‡t`Æí ø°<=ßLQw…%€×ö8˜ÍåÜBÃ$‚%•îm£V%x„<ôõ6ž>ñ5“GtÑ 0UåïF6yª&i,ÀȬ[R¹Ì~ÁÈ"0¹„?Qi·lòDE% °ä±b£Ìk #Š<И&XOÚVuªæ‰š¤m·e/Xh#s”-H»ŽIž‚gýKÞ]lÉÓ@f°¥Í‡â£Èd.)½y+Ej¨>Pð¬&Tß Òk3êÖ–6zyhÈx÷/¡P0G%OR3ÌÏj’„›j¹¶LËÀæ(òÔÂò¿yÇoÞÚÖXÁ³þ%jëèÌu”Ô\Ç‘Fܳý¦R`o¬à±»‹í¸7˜ë(Á³"¾3Ð?(w÷½4£MðP†¬_@>‹òÔŽ—Í1†¬)ô$ Šóˆ"ÌÐÀWh<<:!ºÚîS²GkgŠUM‡Ë:GOçÉ8~…¨UË6ÁÃ!dÈVXpš|Û<4©vÞA„»ørª=É#Ç4‘£Âjm"¢®òkHà ßB¤Øê+ëtª¦žÍ1:û*<ÔùD>%míì~?ÍɨTLÃavÇQ¦O[ ©F¿ÊòX³ã´yäÙ\Çgðâi`ä“4¤Lè껓TÌB”9ݼšzµ\ól&j³›Ûâ­DT>ôI…à-BÌ,AÞ¤ü^¸9.๠“–և̲!ÑŠJu»[÷ÉoxXH¢§C­¾Åk’$ôëÝ¥!ªB›žáщýJqý_îÏý5Ê@H8Š+*qÒ(Ê,ûÉcY]n-yœKu}¾»$ZbEqÐÉQ«o~òØ“DåSÞÏ¿IX·çá<—V¶Qä·‚'Š“ä)/Ä.žúßK¿Qçýê~h¼ä}Ç“Ÿ<–åÏ^R[û&4Ÿë¶+}—QT™I‚g ¼rO»ŸöVÉtI£V€;±¡“;$$Úâìe­H½"RÛÃG¹[Xç‘¢ÊÌ<«‰wÚh)3½œ?P/Än¨úô²æCÄìºCu~†àá ±dg¬ê êè¿~¯(/PΧb÷? Ì¡G2”‰®åøÊGߨX¬]üj(dóŒ|9JÜ™^§£Fò@À@jx«Ô€HÚsðoê”%ïX lUe[?t ƒ÷½Ãã|†þH,ÊÎÃhçuتõGm ‡Û&e ìŒ>¸ñö*]ú•L ýW·öë`ð˜&›%<Á&1ÐÞUX‚ŠF‡@DcÔ‘®@DµÍ ãB°OމÜ5ÑÄ*ú%ßQLø¸âóН+x*ÿÌçÏð‡J¢Ä:ïYºQ¡áiЉ †ŸÍwÙø7™ó(ÿ5pÁ]¶Fûo¿Ÿè NªÄ³ª3g*ÕŸ}ˆ=iUvXmºë?د¢ë endstream endobj 11 0 obj << /Type /XObject /Subtype /Image /Width 191 /Height 83 /BitsPerComponent 8 /Length 16 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream xœí]íQì: M Ô@ Ô@ Ô@ ô@ Ô@ Ô@ ÔpKØwÞjF£•¯lKNvâóã\²¶cKÇòÇ^.‡Àççç¿ÿÎVõD'~ŸŸŸ—eùþþ_ûßߪ~zzÚ¥ö‰üüü,W|||ìÕІÚðõõµW&jÁV{{{Û·% Íîžðƒíõúúºw[þhCíyß»-%°ÏÚ9ŽX…¤VABïÝ–‰u@!“ S¡W÷nÎ ^^^¨mS?ð3àÌa D“/H¾ws&n…s‘¼c‡ ©Ð°2ì_*úÚñ~6Ȉ°˜™ý3¸ì¦NÔ‚µ(~/\š›ÐéÙ0aOu’~°~~~ÂËç, £³@†‹š™Ÿ!gXn Õ±¨°E„n¡_åJx7ƒ¨òù»2‰¢>¥ÆÝ sÚr1:/=8LðØêÊu©çYQ¥ X5"N(x¤Ì˪Y·“T7¦¶SÙ?¥W¥ÝÙÏåÖ¬I6–áa¨uÕÌ•m•?Áe×YN(x”¶Lº:`X†‡¡„ܪüV»a«ÞÝ®ðžPð¨Ñ—”,x.Ƹö½T\«{Ök0•-gšËõ‚1ƒT̓”W±~£ö¶ëKO¸÷LÅîŒßãÏÅ„c5û¶r·6Œ*_êw\à-%.¸ 4kƒ!¢ºå¨*ð-¯€ó$WÞ;cøŒ<Y£œEÚö4¬)úyJ@½žô;,ÒfZX‘E0¯W¨zÑ!D•Iž$ò¨*†ÍJ¶Èc-XÛ“öÄkYðàyçø,¢#€`q%Ý—ú0*󜠟 ¨K9ŠBÝ eÙ Ÿ0^ðV«fa„Ú’m!…AÇQm(/Ê«Žòa ‡¾-[PIˆÎ;—Tì'¤ÃÒ°Ò¬Iìo8¤£F\Aðàõ©ž¸ÆWµÕÓY©¨ÝT‚½¹œ-T ÒXXòXéîïó­’ËÄàUxgɶ…w›Ç:4p¦ªú{€Mÿ ‡r2—5©Ü@f¿àá4H•?·¹ër “=ü‰J»e“§aVK»²ß@f•+—lTûʵgùÕÃ&¨Ýl÷TÍS;+‰… [Ö(mdvúRU]Õ4¡*‰Ô@5í:&yv<—[òÐîbKž2;5mƒzaTeÆ™=µ(£7o¥Hªï(x.fª¾:I¯Í¨[_ºe,Ýü6²M-´&£Ý¿€S0G%OR3Ì; ž‹I®ªåÚ2ýfµžÇÿú–x‡2,ÿ› Ï[ÛÚWð\nÉGm}ƒ»®’šJ±û\Už§Êâ=ÛÿT;3xû »»ØÚ½Á]W%ñxS=M-y'úåýF¹»ï¥m‚Á%dýBE *VY¤69Ö£« R «Ê(ÑPÐÀÞh> endobj 13 0 obj << /Length 291 /Filter /FlateDecode >> stream xœ]‘Ënƒ0E÷þ /ÓEÄ;I%„DIXô¡’~€±j©Ë8 þ¾ö8m¥.@gfîµÆ×QÓ;%môfÞƒ¥£TÂÀºÜ :À$IR*$·÷ ÿ|fšDÎÛo«…¹SãR–$zw³Õšîj± ð@¢W#ÀH5ÑÝGÓ»º¿iý3(KcRUTÀèÎyfú…Í¡kß 7–vÛ;ËŸàºi )ÖIX…/VÍ8¦& eW´lÛŠ€ÿfI,ÃÈ?™qÒÄIã¸È*Ç)ò1÷œ!ÏyàÂsœÆžÈjŽkÏ'äüâù1x[Ïuè§žŸc¿ ^ìŸã>— Á}ÚpÎ /ußÞ_Ïçÿå7c\døH˜•OI*ø}G½hïÂïä6Žb endstream endobj 14 0 obj 2269 endobj 15 0 obj 2332 endobj 16 0 obj 2448 endobj 17 0 obj << /Length 18 0 R /Filter /FlateDecode /Length1 21760 >> stream xœí|y\[ÇÕ虹Wº X$.a0‹ ØÄ³8Á+vÀ11B K˜4 Nb;!kÓÆmÒ4ÎÖ¬M"㥘¤µ³´I8N›|é—¤ÍV§IÚºvûR§ibôÎ̽,Ž~ý¾÷þx¿ß³®ÏÌ™™3çœ9çÌ™Ñ5 ô{!†@—§ÇÝW’-À+$Þ³9$ßñÛÐÛˆ¿ ÓÑ×ÙsÉý¹&@îììøéc/üÀp nC—×ÝþZÕ‰X€ô<ä1¯ ;Ö_#a»ÛY]=¡-HÕ‹°}=¶]Ý~Û(Ò±ý¶gô¸·ôuEõ‹Øþ3¶å^wwù‹GnȈpþªÏ í„ÜÀ’÷Ùx_ÀÛ÷ÃÁ{R.ÂfÔi,>ìƒôDËÚT5ZI§ŠŽ1ÄÆÁÿwͤ ¤j†ÑÉ‘>aõ¸/ò g5ý#ªðŒ¥ûàÒ^WÁ˜IräS¸¶ ¯ã¬m`€PËÁ7“‹#ý°Þ¯…R¸z¡ Eš"·Dn<?‚ÂK‘Ó ©àÁçHä/šÿŒüfãŒ;àNxÜ®ß.”2„”?„Ü%´ˆ$Òù'j ¨ƒ p„¢Näî…I2¹B¨F.D‘Ê -ÐwÁ™KÓLͺHCä˜QÆäz'ŒÀ~|Fá§ð6‰ÑœŒ<9 )Kp={áUrH?½u¼’­4 ÊqÄ?ƒá5b'ÏR¿&FS¤qi.¼‰P«QÛ‡qæÈçô*|®~!ÖEA,ÚåÛÌÚðsø€¤’²Œ¬¡³¨ŸÞ#@‡ ñiÚûûÈý]â$ûi =*< >.~©M?‹qÀà‡ð,1àJe$×7Éïi5]O@?¾+>*þZrãª/ƒ¸‡ÏI<)#+È¥¤‹\Avo“;Éòù„VÑFº‘žº„MÂOÅEø¬ƒâµšíšµŸŒ7¿0þ«ñÏ#E‘í°ãa+j܃+;Gá-|Þƒ‰†D“X|d’IV“oás¹™ÜO!’½(å5ò!ù”üü|I-M£™t>v ô»ônzŸ×èŸé‚E˜!8…¹B…Ð,øQ«Âmøì>SÅ£bí\¤Ù©Ù¥yDó¸æ9ÍImŒtt¯|õÀéÜÓïŽÃøõã;ÇGÆ÷F>€$ôa*ZÁ¨½Ÿ èïqOÁë$m—JrÉBr1Zf=Ù@6‘-hÉëÈ]äG\÷'É3h¥ß¨³Z¹Îùt.]D—ásõÒMô6z;ÝKߤÿ$!Zˆ’„\a±Ð"x…0(ìÂÂ+Âï„…SÂWøDÄ(Ñ&΢S\,®ûÅ{ÄÅ5ë4/k>ÒFi{´Ûµ£Ú¿Jó¤…Òri…Ô"Ý*í—Þеbt>ûà'Ó÷“Ò…”_£t)”®IJb”+ bvž\k—ÃGjìò(Y»¢ ñ›kìÍrø8Ç8~Ç ˆgfâ¹6¹«F“V¹6\·¹k¸¶µÙ펎ª¶W{£fçÁî¨hD£ [ì}»‰e!áµÔÎßMAg@¥Â©öšÚpн†i²kÝíáå+šjkÒ23›gç…IµÇÞû¢pœ““@5ÖV‡%.Fö±ÕÀòî¼CÃ7¡­ÕÓnow¯k îf&ÃäD¹5aËåÇ’§šÈ<¾ºiÇôÑ4a¸6Ù'³æðð9|飙¬lnF8—f×µסè›Ðˆõ«d”F·57…É6)³•°U)ëóÚkYOë9¬·/²w ohEפ‡aå`æHjªë@ä}H­•‡›ì™áÊ4{³»Æº;†WîIqÉ)gŽÌÎÛm4)†Ý§"1†éˆwrŒcœœaõ+'-K˜Fö%aÙ#£&Mv\S+¼e0ì)C2ü4œnGøÂúêÖaã|ÖÏæ‡5ÙF»<üwÀ°ÿó™=nµG›mü;0”ÅÉd¨áøv:ù¹,D¤jô)긷çÎÎÛ£Œš–£mÝÍó Ðü™™ÌÁ7Žº  á¡MJ[†¶´p8›Ã´•šIZÍF†&F&§·Ú1’÷òËoRXç˜üg4'ÔvÍó¿ö*ãõ«ìõ+Ö6ɵíªmëÏh)ãe“c*N¨nÒ¨ŠÑ4bP®›$f¦˜°˜ÿ´<¨ÛG%F%ï!r]ØØz¡R6Gefþ›“F#'Ù,^MMSÕ ÏwžÙ^pFû õb†TÁúƵÃÃQgŒa¨)—¨F<46eÊÕaX;3ÿF•1hN »ÐdÕŒãOéR›g¦©x3~XtÎΫÃD7<\g—ë†[‡Ý£‘¡6»l´ ÏÑç†ûj['g42vcZ¸î¦f´U™?(á—O àmV‚E{)9¦•Fé®ЈÇˆ’ÄcRtZÍ1*<ƒ‡º¯xùì4žª8]±ÔøYEÃé ¨DÜø…s2M™¦l,i_É¡¯\ødñûvµ.ò±ø'Íë0Æ]w{B¢˜3W(·V K¤‹Ókm5Yu9«„fi]ú%3oHˆipdÑ,!'{^\‰½&»¶`­¼Æ¾:»;zƒaclG¢7y0úrÃåqWû³‚ÙÛ…áè Ãq7·e]›}»agÜΤŒì¬XC´&Óšž‘†‡ ž1Z’5û´šŒ´Ù·¦’Ôãxc7â5s9nÎ>rÑ’QveÏÎÈ0 šŒÙú4GêEzÌ"³R‹2ñÄß(ãjR =—&;Ñ- ÇŽ/5žji8þÙq¨<^yÜxºåÂg¦xK¹ ÿÅ——D ç@Ë&Ò²)¡4ƒÍ›7·Ä‘ãÈÊq8æ–Ì›W\d6[$‡Ã>C›”h1‹3‘Z­}F–cÝO ë_ºÒÿتåëŒw¯ðu^õ·ï>ðÅvÍX܆ï+/#o5 ]¾ý˾8þ¿î$¿1öÞ|É¢`Mm§Ýâv–>àõ?Ûî{ekì·l½tYqñÆ™ ömî? }ŠkÈŠüæjîÄo[C *rhÝQ¢ÇØrU!2”‚_ˆc QD³QҚ­BtœqÌ †øì‘tµúÚV©O’n“Ddé^),’^“´ÒÝÉdÞî,-›>;f<ÎÂäØgÌBˆšÊãËMÅÅÆ_Î!-Ng¶—Š–0Ùç›JMÅIvS¢Ù\\D©W´uç]wÝž}ûœ33îÛe\轟zn"R÷øÍ7þNC~‰§pQäÑ*.ÄûK)IwÝ¢7èsS ©¹³ ¹¹å†yI¥iós—ä¶Zr7|¹­s† ÛgÝeþA꣆¤‡R›¹?åé™/¤ùë¤ßÍÔÕ˜‰ÍbKvæå–”‹åyKÄ óÖèš:ŸssÌŽ˜_Æ|aøÂi*-‰%¢± «ÄR”™˜¼~–e-ˆ­Œ½5vWl$V³+ö©Ø±Bl¬U°ŒÒÇ\æä;­V js¢ŠÐ³ÜF7dgfÒK]Æ8ŒÙ1Çñ”Cã(,g>°eØKæ”*§÷–“rKvòŒ‚¬ƒÚ£ZjÓVj©¶°Œ™ÎزÉyªåøg§?úˆ™öXåñÓÇ0â ptÖ<øLjô‘M-°)›E¹RþÌ-ÉaQ'å,¤<ÍII‰f‹Ý!h¥XŠ(†* í6<õÌâà…s7¾ÝIŠk¯¿z0=œÜûÚ ×?¶Ü¨·ÌxÆji{Á¿®¨Ç×u¿#ýÚÕuo[ºuib¬!5+;ªwöÍ›’7ÝXïr_”¿åä—Û.(#¿›i5Îl(¸°õÒe  ëуèÁ$H‡w]í6°&ÑÕB‹¦E¿:Ú+lÔøõÞhŒÄHsâßÒü3ñTªT??¥ÐZßZe]¿.e¥Õß“ê¶nÑnI:EO%ÁLâ Ërs«¹Ï,˜­q·ï5R£QL³FIÀü¢'w$XÅh‹ËÀ¬®ÏÉ- ˆ!Õ†­=ÙŽV»Ò™/lÄf.6fI®¬Ü›T)-“)%£¤TÉΆÓÇ–79§69X8ž`n¨8½©‚0/Ä—³PgN ó˜ŒP\¦D)“…ú<’éàž.ËûËOÇOÄßþ~þꓨ‘mž›N¿MWÄ”­¹áŠGÉË{‰ø}sæø»ã_å§ÆºÈÛ«»b™ö=Ü_jA]²à2˜J6ŠWÓ[é:ñÇ"уVC½†ÄPr8 Øúâ3q}@X^KѸ q%Ö˺5DÖ¸4T“=F*È6`Ë=†AÇ÷µS9*-cêòœ™v“V+ÍÅð*¦_î­z½ñ{„Äo-¼ÂöäâÃëÙ^=€JnüÔ)sÉ¢´’žj+D¡‚hÅ(ZQ•@™6÷éîû>fÏ0˜Q æYÕ’(+anq’€pàÈ‘#Bó‘#_=|äθO4›f ôðÇÝñÑls’JtTdI—(I:* ‚N/Rª—t¢ kµš9šÈÑË£[£û¢‡¢5Ñ:½L¸Ybp&Ó¢%jA3ÏcN–Ã0›Uù¹WYÁ7Wyù1ß¹ãÊÐN¼wìÕ¹êÊd°¿®\ç*RТriFJ9¼»?Ñ"e½vŽº¢íåRl"Bk¶?ÑtMG4‰¡ÿØTîT>D©€ÍŦbb*6Ù‰éî:öâWãš±/·ŠWÿ³Núr-^ƒ{+÷–RàYWK¼•³X{¡n¶Yשõét%ÆùñóÍs“kõñõæÚäušuú•Æ–øóÊäM¾ÝØßcnO Iz­Æp©Ð¨iŒº4¦[ðj¼QÝ1Q«(™¬ÑщY³\BVvɉ€dÄSA ßK#i¬?…m$Äc³À…$6æg(Le›ˆ™÷8n –S-ˆðsíÉšÔ¥_¥Y¥oÓ´éEÒÒœ`,Åó”óxŠÂ÷N̓7üübþÖŸn|oüø‘ÛGölÛ1‚_ñsnÙ<þÁé#º†dÃ+/¿ò«Ÿ¿|ão'~¿þ£Å„9'¶º–‹b}½ÃÔ_§×úRû5}ú`ôµšk£µ9f½œ“›aN×ëâ3rsgͼVPBm&Ð%;´ÙŽ˜Ô¼ô ™ï¤ç‚u|Yü®tJ¹ ΋¡òKÐÊå€mžbSf?ø%VÆR;É,*å7‡ïUE¥ ©‚癩G^vtn»õ’¡goÿ¹`kÙEõu×Ü3þé¹ÌQ½v~ã7?¡k>à½ì¡âœg†:w· +M掆%þY_Þ+Å”m¬[9XÈö£'ò±æwš7 ÒàjWkjI4&&¦YÒÒDÑ(&F[¢ÓÄG-ûc+X,ÉiTNw™–%,³¸R›4MúKŒ«MëÖZÖ'¯I½$íFËÔ˜’!ñÑú$‡,)u(¤Ç9ø­ÉêY§ÞšðÊÔÂîLžnÙ--x92Bf‘Ÿ”HE¼ûÐR%E–Pô.xÈõdÞˤîñ½ãû{ä%’þ›wHÚà§ß~uü7ô0é!?|nüG¿}oüÞ}/‘µ?ÿ|ü()!i{HôwÆ?b™±ý-afÌ€]óhhŸÖÔ>-½¨û¥UZÓÓ»1¦=öòøËnˆ&þ£ÔÒN¦ÆŒþIM3ZéÆ £ög‘“ áwUÖúÈIWjF”Q§Õ¶¦âñžª³¦ „êR­‚!Ã8JܳÌDL£$yŸ!#Q£ôiW¡1QAËë¨ ,yšnµ2WŒi_%]Oýôj*Ò1š6rëîy áAÊYaœ¡ãxÃd‡:?ÙwÄæ;c¯4¾Àr#žòeø!¬À£¦%”é(eG½ºC¤~×d{G¢ôU)µd?p׉GîüÖ5w“ ÿøÕë§.|ø¹û×e<ñDU…çÐU/|Ô±ñ;w'}ëO4=ö̃׻ Ñ’k"ÍhI'¼îš©1˜ µ†í±Öt‰isš°ÒÜmÜØnî7 &n7 'Þö#C”FÆDø¾+šýoŠ(»!†0¹ÙÓ„½7¹{cb’Ää1ú ¤Ð.WVR†U#fÌ2Ä×Ë~™ÊCRÐÁl6ÇAØ…‰:n›:8º}ƒï¦Ä½™|rËáí×Ü6þÉ›ÏFȵÉwî_sÅ}‰÷Ð-Wz®¹î:yß‹#íëïÎÏøé-‡ÆÿþÔø<»Öb6ŠÃltË!ÛHµNI1&cFè,YOô©¶t£ša2¦2 –Sé¥pNõ kž&é´:NÔ‰Ú”äÔdªŽŠ‰2D Ú$s¢9Á,hÓK&‰Å"YgÍ$æ(S&ð£%?[ OG¼²íˆÉ(;³H $¼§dÞC¾x|íUÍ¡àÒË¿}dÛønRþíÖ6|¯{éã¯hÆ’Ò/n?úÂÃã㺋ž˜WXûéCø<7ƒíÂø…“ýïQ"ì>ftš!ÉR’-Îj…1ƒÈ£$Ë’RbÑ™bL‰‚†@œU#%¢òÙzWñ¼’ˆžB;,5³ÅR2¯$l>i¦}æ{ÍasÄ,šib¶r~'!ñIöæB†×à}üNº4iñòdõâÂOrçg,&ØQ~¼S1fârn»Xm¬”«I#]\f“­àl!N/Š·>+–èT\€ËˆYÅEˆ"!×àׯ«T\‹ô;U\‚ȃ*®íRq= Ó[TJþ•Š£’ßQqôQò§*Ž>JY¬â裔*Ž>Jñ©8ú(e@ÅÑG© T}”êVqôQêŸT}d{BÅÑGrœŠ£ä~GåÌâx[WÎ6ŽG³µä|›ã1¼ÿ>ŽÇr\áidkÉ9ÀñÄãs^äx"§y‹ãIœÏG7óþ¿s<…ÍI8žÆhf*º¥3š™6ŽÛ8îäx§/åx.Çk9>›íŒ™«®ãú«8—5s=Ãc”þçk™90}à…pƒkEh„.Ž7€zB*•ŒÙÁÄYéÆ~§±§çç#VÃûÝÿ‡œ &5“aŽtCÿ$Mû–`­È+„r|æÀl+â½U8£ë•8§uñY+‘_!›±lGªŽ»‘’t¢ŒnlÎÒvþ4Jùk´óa çœ\Ó  Kf"'êÀ‘ Brœ5×7Íœ¢h@;LµžäeöjÇ™=\þFìcœÿç¶–±—­È‡š„¸FÌ62¶MHåºý Ãr>_—×€å2”ÝÁmîFz6Ï‹\™•øLÆ-ÿ:)þõ£\¦SÒ~#•—Ç£àZuNÊõ©Q;›ûÅmªÖKùH7j“7©{€øx„®Â²Ÿk­øA‰&æj®Iˆ[yÂnÔEF*·ƒJ$ù¸íÛyd±Xë岦NjGååæº±™=œ#Ó» å÷pŽŠõe®µ›Ëó¨ÞPF˜ÖAÕn¾FeÞà¤ÿ}j”÷©ôrÛyä)«›ð[Õ¿ŸK“¹„éZMxžÙ†µ8ï®iÑÀhýœ—"{¢_±vHµˆGÔàYt!äéåVña­ðö¨=ýÜÒ,¢¦bÚÏwl€[´›Ïgš2ö¨³&$xøüͪTŸºReï1SVèà{¸[í²«Oµ®_]‰Ó÷óÖ”Wƒž¥È—=ùœjz†ÍçÙ©)ºø^êF¬±^î!/oa=Åãù“”ÿw% ðˆQh½Ó¤,ÅL߈ç}B5F×a/;ê°¼˜÷×bÏ*,Yl.Æ“ ŸÞÛüfÀ ‘GSð±&Oö+ûD±hŸjó©ý÷N±)ÏLdä ?·ñÑA¤ïŸ”é™ÌmJ ^ ÅlÖ<˜‹ß0îÿ½³î~2NŒ|Íz“çaã`Ÿ·ÃíñÊÊ]^¹Áßëa—\íôùîÏß+÷u{òåwÈý_0fò*w?ë ÊKzq^ayùœÙXåËUÝÝòJ_gW((¯ô½ÍÞöª€ÏݽÒÛÙßíL°Ï;eµwþo Èå—É3|ž€?èïÍâTÓyGC#¯‘îvo;°QöwüK­å€·Ó yÞvÙ×+‡tõ*y¹;$;äÆyYGG¾ìîm—½ÝAï@’åOrÂõú;î¾®Áé]^¹&àðõv²¹>4íly¥¿ Y/õyºüÝî`ãðy|ny•»¿·×€f*+ªö÷†¼=L·À t£ÑH¾¹ÝôuöæÉŠ]/R{é æËÜÒþÍÞ€} xÝ¡b<ýèï Ƽç p:ú»»庢ø? ñõ¶÷C|©ÁÐ`·wº%X¤™o Ç×Ë)þÈÖú{úQâÀvŸ»ÓÏÆºÐær—·»-â—;}›½œ€‡¼[îFsÈ=^´]¯Ïƒäî¾>/š±×ãE!й}ÌX²w .¦ÇÛ=(ãÚ‚;ÝŒG¯››7¤n¢ *σ3Ú¼rCŠ[Ó»©Ÿ)Ûïaö—;ü¸d䈋 …XœàÒ^ô{CÝD“ñðÄf»Ó}¹¯Y{Cž<Åh8½Ýìëv2lv¯w ØçîCÕ¤U ù‚Œ1#ï ø{üœ[~W(Ô7¿ ``` ¿G Ø|¿§ +ÔÓ]Ðb¿{TÐ\ïf Ïgÿæ„o7özù”¥Ë—Ô-©®j\²l©¼¬N¾xIuíÒUµrÕ╵µ µK Q†¨Æ.4ë„Õ˜‰™OPQ\Aˆ[ô[Œ/†2[sÛ <èïg3=,ÚÐÎ|)a‰ÁÁcý‹Û¯Éݯ—Eb¾ÜŒÓºÜþ6¶pfè eXt°pò¢ã¼ÌÒ¯'„~î@;NéÅ\èïôrîâÉyèŒÞ¶þ²F5ý¸£¦-('8¡ò¤)&'³h“7»»ûÝmaî FÈôÙùòê^³ƒ«À5©™ ÃÛ-û¼&³W.£{y´±¹îöv‹ ŒÊÏÈy¬;ÀmËw÷×”êöõøØ‚P§ð6• åñÈ;ý˜PûÛº}Á.&y)æîÁ@EýÑU}ƒ²¼ª…ÎÄí±¤cjq,{mê÷¹Ì{o W]A@Õ›»üýÝí¸‡6û¼Jº:kùŒ=éÅ Ð>•â&׈jñÄê Mù˜-Ì­jÝqn¶\åÉ ê¾W¡wh>#X½ª ™e%¥³äÒ²ÙsJæÌÑëW×cçœÂÂ’,K‹KåÒysËç–¢¾a×ýËÍÈZªz|âWU?ÿ’Ç.åì+Ú 1àÁ¿/ŸòkÃÄØ*~ b_Ù¥­]¸KØ-üT8ˆp@~|þ•þùWúpþ•þùWúç_韥þ•þùWúç_韥þ•þùWúç_韥þ•þÿƒ¯ôÏøæ?…»9ý¹Æ>øÚïïø[oàÙÍ#|Z[Ì Åzq±x–ågH`9ø›¸,å{†åeõ]$Lî€ï‹ožsn|ògy!’Ã~OæìO•â œ@ˆ `òaÂz„[v!h9ëñ#\pá$q –‘Û‹]£XÝÈ«=º‹xÓ­4×µðæžKš•ºa…R×,QÈæ+d…%Jwþ"¥ÎÉSêøì¢!VGŠU™3¼&°¾ìÃ’Ð Ž°Á½B„¨ U{\Büž,GÑ®ƒ‚D A›Ú"‡2b0UEÑ=ñ`£¡Ç•z|O¬©hWÕEôCx á ‚@?Äçú\MßqXV"ìB8ˆpá‚–¾Ï{ø¼KßEªßAB%Âz„]N HôwXéoÙOó’á•”þK#}—õ–qômÄÞ¦o£j¯”–àˆ³@ElÙ*bIS‘xsÑ(ýõȳl£ô÷{d§íÞª9ô #Pö2d„å­}ZÄÞDìMB¸ á^„0‚缉sÞÄ9‡^Axæ ¸–#èèk#(f”q,²U™é«ôE° QЗxý ý¯_¦?çõ/±ÎÀú0ýÅH† ª¢qpŽk#Ö8®¡ÏîÉŠ·EªLô šÇ†eB%Â2„õ·"héA:c¤ÝLž†Ã:@Êø”×Áý:pm°¹Õc2+ó/@ ‹]ò.u9vÞ‰MV8n¹1V8®» 1V8.ߊ+Ý›c…£}b¬p¬]+ËÃb”Þó“¬[é²D®Š£h¥´ÒZiD:ÀøBdºý`$7-v—Ë9+×64F†ž!C+ÉÐýdÈK†®"C[ÉPºŒ 9É• e!zš”¡)†ˆkïÍrW2:L†ž CA2ä CÙd(‹ ɤÔ5J3G–óª–W{ªØ¾Âú‚…Eq¨c&Z4Ã:·ýA,"DxË…Dò …8%ƒÕ3öäV*íüùEþª éó8ñytÃóð‚ˆzÃèydÂ~:=ËJ„õ‡N D´H=¿•—qX T"¬G¸á‚–«s‚_Uñ)®Xªô2Ö¢ÏãÃþZT&Ít¥­F§ñBáV+‰Ë Ë2"´Ìì·âM:Ó(1ìÿÜðÏ  ¯ÒÓ[è­ŽŽ¸M­où"Ý6J¾?âxÚV•D¾"F)ÉÆº ‚¼=¬:V—€•>Žuшu N‹qäÙÆH,›µßö…õ˜íSë(EôëÓ¶ßÈ£"±ýö<¾ßö†õÛ/ FuØóŒc”`5&sÒÖ2Û‡9éV¸kÄv«öÛ®´.¶m´ò¯2pY[®8ÛJÇZۅȯÆÚfs‘ç~[¥õ2[…B5—ÍÙo›ƒ*84•eåBíœáêÒQÒåÊ“vJMÒ2ižT$åI™’MJ—Ò¤D]¼Î¨‹ÕÅè¢t:V'ê¨t‰ì×zœì—+µFViEVŠ7RVRå÷L(ÑQ¸ B=­_µˆÔ‡y ¾MŸZe%Q+Ö†5öE$_õ‹ÂeÎúQ)²2\ê¬KË/mÚMÈ-ÍØ¦×hl%Öµ-ý©›@ˆiÛÍi¬ž¹íææfH6o®L®Œ_h*¯«9GѪ–ΩOòxzxgýª¦ðcéÍá"†DÒ›ëÃßa çù9Y[s€ü•UÍM„…äoµ+Y¿°°¦¹¹~”¬át “¿"FÌ_9.dF².C¡»K¡ËÆùH—Å*¤Óë!›ÓeëõœN$Œnw0«¶fwV§±àÕ“Ó-òtšÃÙH“ÍiÌCp˜Ó61šðBNbµ"I†•“T°r+Iå$k¦H T’&Inà’2EcUh ïOÐÞGç¿ûñ.r:ɞ͞uìïµÚk½­á7w%‡‡Údy·§YýCŽÖ6O«ÝÞp³Ý[öØkäÝ Öcx^`¯Ù ëj›v¯sykF¸ÔÚÝ5Í{//)=CÖ “²J–ŸƒÙrƬ„ÉZ\zŽáR6¼˜É*e²J™¬Å®Å\ð_Þ´[‹š«×)õ…ñÚš–Ù¼Èlì[ȃwAfòUicx!y¢Íáû¢° Í®š]ņpO±¡XöÇ¢Ô¡ä«d¦‘GÔ!#v›ì‹ÀêöCr­¯FùÄv…ú™Á•Òü¦ŽÕ†]îš` >œ»ª>\¹bmÓnIÂÞV¶¤ðü‰¾èèÚÑÈ!¥3;ç³NA˜$d}¬O¯W Ïö¿ZW³]0DŸÞC\¿Ô5 áŒúFŠ© Qý«>endobj 3 0 obj << /XObject << /Im1 1 0 R >> /ProcSet [ /PDF ] >> endobj 6 0 obj << /Type /Pages /Count 1 /Kids [4 0 R] >> endobj 19 0 obj << /Type /Catalog /Pages 6 0 R >> endobj 20 0 obj << /Producer (pdfTeX-1.40.10) /Creator (TeX) /CreationDate (D:20140814145415+01'00') /ModDate (D:20140814145415+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian) kpathsea version 5.0.0) >> endobj xref 0 21 0000000000 65535 f 0000000249 00000 n 0000020612 00000 n 0000020672 00000 n 0000000132 00000 n 0000000016 00000 n 0000020737 00000 n 0000001104 00000 n 0000001341 00000 n 0000001561 00000 n 0000004001 00000 n 0000006505 00000 n 0000009125 00000 n 0000009322 00000 n 0000009686 00000 n 0000009707 00000 n 0000009728 00000 n 0000009749 00000 n 0000020590 00000 n 0000020794 00000 n 0000020844 00000 n trailer << /Size 21 /Root 19 0 R /Info 20 0 R /ID [<4EFB5C94A92182C7DDCFB3FA11D4EE55> <4EFB5C94A92182C7DDCFB3FA11D4EE55>] >> startxref 21110 %%EOF flexsurv/vignettes/flexsurv-examples.Rnw0000644000176200001440000002630214144502574020333 0ustar liggesusers%\VignetteIndexEntry{Supplementary examples of using flexsurv} \documentclass[nojss,nofooter]{jss} \usepackage{bm} \usepackage{tabularx} \usepackage{graphics} \author{Christopher H. Jackson \\ MRC Biostatistics Unit, Cambridge, UK \\ \email{chris.jackson@mrc-bsu.cam.ac.uk}} \title{flexsurv: flexible parametric survival modelling in R. Supplementary examples} \Plainauthor{Christopher Jackson, MRC Biostatistics Unit} \Abstract{ This vignette of examples supplements the main \pkg{flexsurv} user guide. } \Keywords{survival} \begin{document} \section{Examples of custom distributions} \subsection{Proportional hazards generalized gamma model} \citet{stgenreg} discuss using the \pkg{stgenreg} Stata package to construct a proportional hazards parameterisation of the three-parameter generalised gamma distribution. A similar trick can be used in \pkg{flexsurv}. A four-parameter custom distribution is created by defining its hazard (and cumulative hazard) functions. These are obtained by multiplying the built-in functions \code{hgengamma} and \code{Hgengamma} by an extra dummy parameter, which is used as the location parameter of the new distribution. The intercept of this parameter is fixed at 1 when calling \code{flexsurvreg}, so that the new model is no more complex than the generalized gamma AFT model \code{fs3}, but covariate effects on the dummy parameter are now interpreted as hazard ratios. <<>>= library(flexsurv) hgengammaPH <- function(x, dummy, mu=0, sigma=1, Q){ dummy * hgengamma(x=x, mu=mu, sigma=sigma, Q=Q) } HgengammaPH <- function(x, dummy, mu=0, sigma=1, Q){ dummy * Hgengamma(x=x, mu=mu, sigma=sigma, Q=Q) } custom.gengammaPH <- list(name="gengammaPH", pars=c("dummy","mu","sigma","Q"), location="dummy", transforms=c(log, identity, log, identity), inv.transforms=c(exp, identity, exp, identity), inits=function(t){ lt <- log(t[t>0]) c(1, mean(lt), sd(lt), 0) }) fs7 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist=custom.gengammaPH, fixedpars=1) @ \section{Examples of custom model summaries} \subsection{Plotting a hazard ratio against time} The following code plots the hazard ratio (Medium versus Good prognostic group) against time for both the proportional hazards model \code{fs7} and the better-fitting accelerated failure time model \code{fs2}. It illustrates the use of the following functions. \begin{description} \item[\code{summary.flexsurvreg}] for generating the estimated hazard at a series of times, for particular covariate categories. \item[\code{normboot.flexsurvreg}] for generating a bootstrap-style sample from the sampling distribution of the parameter estimates, for particular covariate categories. \item[\code{do.call}] for constructing a function call by supplying a list containing the function's arguments. This is used throughout the source of \pkg{flexsurv}. \end{description} <>= fs2 <- flexsurvreg(Surv(recyrs, censrec) ~ group + sigma(group), data=bc, dist="gengamma") B <- 5000 t <- seq(0.1, 8, by=0.1) hrAFT.est <- summary(fs2, t=t, type="hazard", newdata=data.frame(group="Medium"),ci=FALSE)[[1]][,"est"] / summary(fs2, t=t, type="hazard", newdata=data.frame(group="Good"),ci=FALSE)[[1]][,"est"] pars <- normboot.flexsurvreg(fs2, B=B, newdata=data.frame(group=c("Good","Medium"))) hrAFT <- matrix(nrow=B, ncol=length(t)) for (i in seq_along(t)){ haz.medium.rep <- do.call(hgengamma, c(list(t[i]), as.data.frame(pars[[2]]))) haz.good.rep <- do.call(hgengamma, c(list(t[i]), as.data.frame(pars[[1]]))) hrAFT[,i] <- haz.medium.rep / haz.good.rep } hrAFT <- apply(hrAFT, 2, quantile, c(0.025, 0.975)) hrPH.est <- summary(fs7, t=t, type="hazard", newdata=data.frame(group="Medium"),ci=FALSE)[[1]][,"est"] / summary(fs7, t=t, type="hazard", newdata=data.frame(group="Good"),ci=FALSE)[[1]][,"est"] pars <- normboot.flexsurvreg(fs7, B=B, newdata=data.frame(group=c("Good","Medium"))) hrPH <- matrix(nrow=B, ncol=length(t)) for (i in seq_along(t)){ haz.medium.rep <- do.call(hgengammaPH, c(list(t[i]), as.data.frame(pars[[2]]))) haz.good.rep <- do.call(hgengammaPH, c(list(t[i]), as.data.frame(pars[[1]]))) hrPH[,i] <- haz.medium.rep / haz.good.rep } hrPH <- apply(hrPH, 2, quantile, c(0.025, 0.975)) plot(t, hrAFT[1,], type="l", ylim=c(0, 10), col="red", xlab="Years", ylab="Hazard ratio (Medium / Good)", lwd=1, lty=2) lines(t, hrAFT[2,], col="red", lwd=1, lty=2) lines(t, hrPH[1,], col="darkgray", lwd=1, lty=2) lines(t, hrPH[2,], col="darkgray", lwd=1, lty=2) lines(t, hrAFT.est, col="red", lwd=2) lines(t, hrPH.est, col="darkgray", lwd=2) legend("topright", lwd=c(2,2), col=c("red","darkgray"), bty="n", c("Generalized gamma: standard AFT", "Generalized gamma: proportional hazards")) @ Since version 2.2 of \pkg{flexsurv}, however, the code above is obsolete, since the function \code{hr_flexsurvreg} can simply be used to calculate hazard ratios and their confidence intervals against time. <>= nd <- data.frame(group=c("Good","Medium")) hr_aft <- hr_flexsurvreg(fs2, t=t, newdata=nd) hr_ph <- hr_flexsurvreg(fs7, t=t, newdata=nd) plot(t, hr_aft$lcl, type="l", ylim=c(0, 10), col="red", xlab="Years", ylab="Hazard ratio (Medium / Good)", lwd=1, lty=2) lines(t, hr_aft$ucl, col="red", lwd=1, lty=2) lines(t, hr_aft$est, col="red", lwd=2) lines(t, hr_ph$lcl, col="darkgray", lwd=1, lty=2) lines(t, hr_ph$ucl, col="darkgray", lwd=1, lty=2) lines(t, hr_ph$est, col="darkgray", lwd=2) legend("topright", lwd=c(2,2), col=c("red","darkgray"), bty="n", c("Generalized gamma: standard AFT", "Generalized gamma: proportional hazards")) @ \subsection{Restricted mean survival} The expected survival up to time $t$, from a model with cumulative distribution $F(t|\alpha)$, is \[ E(T|T>= summary(fs2, type="rmst", t=100, tidy=TRUE) summary(fs2, fn=rmst_gengamma, t=100, tidy=TRUE) @ Or for the baseline category of "Good": <<>>= est <- fs2$res[,"est"] rmst_gengamma(t=100, mu=est[1], sigma=est[2], Q=est[3]) @ Note that the (unrestricted) median is more stable, and less than the restricted mean due to the skewness of this distribution. <<>>= summary(fs2, type="median") @ Note also that the custom function \code{fn} supplied to \code{summary.flexsurvreg} must be vectorised - previous versions of this example used an unvectorised custom function called \code{mean.gengamma} which will not work in version 2.2 or later. %\subsection{Custom summary functions with spline models} \section{Spline models} \subsection{Prognostic model for the German breast cancer data} The regression model III in \citet{sauerbrei1999building} used to create the prognostic group from the breast cancer data (supplied as \code{bc} in \pkg{flexsurv} and \code{GBSG2} in \pkg{TH.data}) can be reproduced as follows. Firstly, the required fractional polynomial transformations of the covariates are constructed. \code{progc} implements the Cox model used by \citet{sauerbrei1999building}, and \code{prog3} is a flexible fully-parametric alternative, implemented as a spline with three internal knots. The number of knots was chosen to minimise AIC. The covariate effects are very similar. After fitting the model, the prognostic index can then be derived from categorising observations in three groups according to the tertiles of the linear predictor in each model. The indices produced by the Cox model (\code{progc}) and the spline-based model (\code{progf}) agree exactly. <<>>= if (require("TH.data")){ GBSG2 <- transform(GBSG2, X1a=(age/50)^-2, X1b=(age/50)^-0.5, X4=tgrade %in% c("II","III"), X5=exp(-0.12*pnodes), X6=(progrec+1)^0.5 ) (progc <- coxph(Surv(time, cens) ~ horTh + X1a + X1b + X4 + X5 + X6, data=GBSG2)) (prog3 <- flexsurvspline(Surv(time, cens) ~ horTh + X1a + X1b + X4 + X5 + X6, k=3, data=GBSG2)) predc <- predict(progc, type="lp") progc <- cut(predc, quantile(predc, 0:3/3)) predf <- model.matrix(prog3) %*% prog3$res[-(1:5),"est"] progf <- cut(predf, quantile(predf, 0:3/3)) table(progc, progf) } @ \section{Right truncation: retrospective ascertainment} Suppose we want to estimate the distribution of the time from onset of a disease to death, but have only observed cases known to have died by the current date. In this case, times from onset to death for individuals in the data are \emph{right-truncated} by the current date minus the onset date. Predicted survival times for new cases can then be described by an un-truncated version of the fitted distribution. Denote the time from onset to death as the \emph{delay} time. This is illustrated in the following simulated example. Suppose individual onset times are uniformly distributed between 0 and 30 days. Their delay times are generated from a Gamma distribution. <<>>= set.seed(1) nsim <- 10000 onsetday <- runif(nsim, 0, 30) deathday <- onsetday + rgamma(nsim, shape=1.5, rate=1/10) @ The data are examined at 40 days. Therefore we do not observe people who have died after this time. For each individual in the observed data, their delay time is right-truncated by 40 days minus their onset day, since their delay times cannot be greater than this if they are included in the data. The right-truncation point is specified by the variable \code{rtrunc} in the data. <<>>= datt <- data.frame(delay = deathday - onsetday, event = rep(1, nsim), rtrunc = 40 - onsetday) datt <- datt[datt$delay < datt$rtrunc, ] @ The truncated Gamma model is fitted with \code{flexsurvreg} by specifying individual-specific truncation points in the argument \code{rtrunc}. The fitted model reproduces the gamma parameters that were used to simulate the data. After fitting the model, we can use the fitted model to predict the mean time to death - this is approximately the shape / rate of the untruncated gamma distribution. <<>>= fitt <- flexsurvreg(Surv(delay, event) ~ 1, data=datt, rtrunc = rtrunc, dist="gamma") fitt summary(fitt, t=1, fn = mean_gamma) @ \bibliography{flexsurv} \end{document} flexsurv/vignettes/flexsurv.bib0000644000176200001440000004502713725126655016520 0ustar liggesusers@article{flexsurv, title = "{flexsurv}: A Platform for Parametric Survival Modeling in {R}", author = "Jackson, C.", journal = "Journal of Statistical Software", year = "2016", volume = "70", number = "8", pages = "1--33", doi = "10.18637/jss.v070.i08", } @Manual{R, title = {\proglang{R}: A Language and Environment for Statistical Computing}, author = {{\proglang{R} Core Team}}, organization = {\proglang{R} Foundation for Statistical Computing}, address = {Vienna, Austria}, year = {2014}, url = {http://www.R-project.org/}, } @article{stgenreg, title={\pkg{stgenreg}: A \proglang{Stata} Package for General Parametric Survival Analysis}, author={Crowther, M. J. and Lambert, P. C.}, journal={Journal of Statistical Software}, volume={53}, pages={1--17}, year={2013} } @article{reid:cox:conversation, title={A Conversation with Sir David Cox}, author={Reid, N.}, journal={Statistical Science}, pages={439--455}, volume={9}, number={3}, year={1994}, publisher={JSTOR} } @article{latimer2013survival, title={Survival Analysis for Economic Evaluations Alongside Clinical Trials --- Extrapolation with Patient-Level Data, Inconsistencies, Limitations, and a Practical Guide}, author={Latimer, N. R.}, journal={Medical Decision Making}, volume={33}, number={6}, pages={743--754}, year={2013}, publisher={SAGE Publications} } @Misc{therneau:survival, OPTkey = {}, author = {Therneau, T.}, title = {A Package for Survival Analysis in \proglang{S}}, howpublished = {\proglang{R} package version 2.37-7. \url{http://CRAN.R-project.org/package=survival}}, OPTmonth = {}, year = {2014}, OPTnote = {}, OPTannote = {} } @Book{kalbfleisch:prentice, author = {Kalbfleisch, J. D. and Prentice, R. L.}, ALTeditor = {}, title = {The Statistical Analysis of Failure Time Data}, publisher = {John Wiley \& Sons}, year = {2002}, OPTkey = {}, OPTvolume = {}, OPTnumber = {}, OPTseries = {}, address = {New York}, edition = {Second}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Article{polyhazard, author = {Louzada-Neto, F.}, title = {Polyhazard Models for Lifetime Data}, journal = {Biometrics}, year = {1999}, OPTkey = {}, volume = {55}, pages = {1281-1285}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Article{prentice:loggamma, title={A Log Gamma Model and its Maximum Likelihood Estimation}, author={Prentice, R. L.}, journal={Biometrika}, volume={61}, number={3}, pages={539-544}, year={1974}, publisher={Biometrika Trust} } @Article{prentice:genf, author = {Prentice, R. L.}, title = {Discrimination Among Some Parametric Models}, journal = {Biometrika}, year = {1975}, OPTkey = {}, volume = {62}, number = {3}, pages = {607--614}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Article{ccox:taxonomy:hazards, author = {Cox, C. and Chu, H. and Schneider, M. F. and Muñoz, A.}, title = {Parametric Survival Analysis and Taxonomy of Hazard Functions for the Generalized Gamma Distribution}, journal = {Statistics in Medicine}, year = {2007}, OPTkey = {}, volume = {26}, OPTnumber = {}, pages = {4352-4374}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Article{ccox:genf, author = {Cox, C.}, title = {The Generalized {F} Distribution: An Umbrella for Parametric Survival Analysis}, journal = {Statistics in Medicine}, year = {2008}, OPTkey = {}, volume = {27}, number = {21}, pages = {4301-4312}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Article{stacy:gengamma, author = {Stacy, E. W.}, title = {A Generalization of the Gamma Distribution.}, journal = {The Annals of Mathematical Statistics}, year = {1962}, OPTkey = {}, volume = {33}, number = {3}, pages = {1187-92}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @book{nash, title={Compact Numerical Methods for Computers: Linear Algebra and Function Minimisation}, author={Nash, J. C.}, year={1990}, publisher={CRC Press} } @Article{royston:parmar, author = {Royston, P. and Parmar, M.}, title = {Flexible Parametric Proportional-Hazards and Proportional-Odds Models for Censored Survival Data, with Application to Prognostic Modelling and Estimation of Treatment Effects }, journal = {Statistics in Medicine}, year = {2002}, OPTkey = {}, volume = {21}, number = {1}, pages = {2175--2197}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @article{stpm:update, title={Flexible Parametric Alternatives to the Cox Model: Update}, author={Royston, P.}, journal={The \proglang{Stata} Journal}, volume={4}, number={1}, pages={98--101}, year={2004} } @article{stpm:orig, title={Flexible Parametric Alternatives to the Cox Model, and More}, author={Royston, P.}, journal={\proglang{Stata} Journal}, volume={1}, number={1}, pages={1--28}, year={2001} } @article{stpm2, title={Further Development of Flexible Parametric Models for Survival Analysis}, author={Lambert, P. C. and Royston, P.}, journal={\proglang{Stata} Journal}, volume={9}, number={2}, pages={265}, year={2009} } @Article{kalbfleisch:lawless, author = {Kalbfleisch, J.D. and Lawless, J.F.}, title = {The Analysis of Panel Data under a {M}arkov Assumption}, journal = {Journal of the American Statistical Association}, year = {1985}, OPTkey = {}, volume = {80}, number = {392}, pages = {863-871}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Article{putter:mstate, author = {Putter, H. and Fiocco, M. and Geskus, R. B.}, title = {Tutorial in Biostatistics: Competing Risks and Multi-State Models}, journal = {Statistics in Medicine}, year = {2007}, OPTkey = {}, volume = {26}, number = {8}, pages = {2389-2430}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @article{mstate:cmpb, title={The \pkg{mstate} Package for Estimation and Prediction in Non-and Semi-Parametric Multi-State and Competing Risks Models}, author={de Wreede, L.C. and Fiocco, M. and Putter, H.}, journal={Computer Methods and Programs in Biomedicine}, volume={99}, number={3}, pages={261--274}, year={2010}, publisher={Elsevier} } @article{mstate:jss, title={\pkg{mstate}: An \proglang{R} Package for the Analysis of Competing Risks and Multi-State Models}, author={de Wreede, L. C. and Fiocco, M. and Putter, H.}, journal={Journal of Statistical Software}, volume={38}, pages={1--30}, year={2011} } @Manual{eha, title = {\pkg{eha}: Event History Analysis}, author = {G{\"o}ran Brostr{\"o}m}, year = {2014}, note = {\proglang{R} package version 2.4-1}, url = {http://CRAN.R-project.org/package=eha}, } @article{yee:wild, title={Vector Generalized Additive Models}, author={Yee, T. W. and Wild, C. J.}, journal={Journal of the Royal Statistical Society B}, volume={58}, number={3}, pages={481--493}, year={1996}, publisher={JSTOR} } @article{actudistns, title={A New \proglang{R} Package for Actuarial Survival Models}, author={Nadarajah, S. and Bakar, S. A. A.}, journal={Computational Statistics}, volume={28}, number={5}, pages={2139--2160}, year={2013}, publisher={Springer-Verlag} } @article{sauerbrei1999building, title={Building Multivariable Prognostic and Diagnostic Models: Transformation of the Predictors by Using Fractional Polynomials}, author={Sauerbrei, W. and Royston, P.}, journal={Journal of the Royal Statistical Society A}, volume={162}, number={1}, pages={71--94}, year={1999}, publisher={Wiley Online Library} } @article{royston1994regression, title={Regression Using Fractional Polynomials of Continuous Covariates: Parsimonious Parametric Modelling}, author={Royston, P. and Altman, D. G.}, journal={Journal of the Royal Statistical Society C}, pages={429--467}, volume={43}, number={3}, year={1994}, publisher={JSTOR} } @article{sauerbrei2007selection, title={Selection of Important Variables and Determination of Functional Form for Continuous Predictors in Multivariable Model Building}, author={Sauerbrei, Willi and Royston, Patrick and Binder, Harald}, journal={Statistics in Medicine}, volume={26}, number={30}, pages={5512--5528}, year={2007}, publisher={Wiley Online Library} } @Article{mueller:wang, author = {Mueller, H. G. and Wang, J. L.}, title = {Hazard Rates Estimation Under Random Censoring with Varying Kernels and Bandwidths}, journal = {Biometrics}, year = {1994}, OPTkey = {}, volume = {50}, OPTnumber = {}, pages = {61-76}, month = {March}, OPTnote = {}, OPTannote = {} } @Manual{muhaz, title = {\pkg{muhaz}: Hazard Function Estimation in Survival Analysis}, author = {Hess, K.}, year = {2010}, note = {\proglang{R} package version 1.2.5, \proglang{S} original by K. Hess and \proglang{R} port by R. Gentleman}, url = {http://CRAN.R-project.org/package=muhaz}, } @Article{actuar, title = {\pkg{actuar}: An \proglang{R} Package for Actuarial Science}, author = {Dutang, C. and Goulet, V. and Pigeon, M.}, journal = {Journal of Statistical Software}, year = {2008}, volume = {25}, number = {7}, pages = {38}, url = {http://www.jstatsoft.org/v25/i07}, } @article{demiris2011survival, title={Survival Extrapolation Using the Poly-Weibull Model}, author={Demiris, N. and Lunn, D. and Sharples, L.D.}, journal={Statistical Methods in Medical Research}, year={2011}, note={early view, DOI: 10.1177/0962280211419645}, publisher={SAGE Publications} } @Article{heng:paper, author = {Heng, D. and Sharples, L. and McNeil, K. and Stewart, S. and Wreghitt, T. and Wallwork, J.}, title = {Bronchiolitis {O}bliterans {S}yndrome: Incidence, Natural History, Prognosis, and Risk Factors}, journal = {The Journal of Heart and Lung Transplantation}, year = {1998}, OPTkey = {}, volume = {17}, number = {12}, pages = {1255-1263}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @article{titman:nonhomog, title={Flexible Nonhomogeneous Markov Models for Panel Observed Data}, author={Titman, A. C}, journal={Biometrics}, volume={67}, number={3}, pages={780--787}, year={2011}, publisher={Wiley Online Library} } @article{cook:lawless, title={Statistical Issues in Modeling Chronic Disease in Cohort Studies}, author={Cook, R. J. and Lawless, J. F.}, journal={Statistics in Biosciences}, volume={6}, number={1}, pages={127--161}, year={2014}, publisher={Springer-Verlag} } @manual{stan-manual:2014, author = {\proglang{Stan} Development Team}, year = {2014}, title = {\proglang{Stan} Modeling Language Users Guide and Reference Manual, Version 2.4}, url = {http://mc-stan.org/} } @book{bugs:book, title={The \proglang{BUGS} Book: A Practical Introduction to Bayesian Analysis}, author={Lunn, D. and Jackson, C. and Best, N. and Thomas, A. and Spiegelhalter, D.}, year={2012}, publisher={CRC Press} } @article{crowther2014multilevel, title={Multilevel Mixed Effects Parametric Survival Models Using Adaptive Gauss--Hermite Quadrature With Application to Recurrent Events and Individual Participant Data Meta-Analysis}, author={Crowther, M. J. and Look, M. P. and Riley, R. D.}, journal={Statistics In Medicine}, volume={33}, number={22}, year={2014}, pages={3844-3858}, publisher={Wiley Online Library} } @article{hougaard1995frailty, title={Frailty Models for Survival Data}, author={Hougaard, P.}, journal={Lifetime Data Analysis}, volume={1}, number={3}, pages={255--273}, year={1995}, publisher={Springer-Verlag} } @article{royston:lambert:book, title={Flexible Parametric Survival Analysis Using \proglang{Stata}: Beyond the Cox Model}, author={Royston, P. and Lambert, P. C.}, journal={\proglang{Stata} Press books}, year={2011}, publisher={Statacorp Lp} } @article{nelson:relative:survival, title={Flexible Parametric Models for Relative Survival, With Application in Coronary Heart Disease}, author={Nelson, C. P. and Lambert, P. C. and Squire, I. B. and Jones, D. R.}, journal={Statistics in Medicine}, volume={26}, number={30}, pages={5486--5498}, year={2007}, publisher={Wiley Online Library} } @Article{gamlss, title = {Generalized Additive Models for Location, Scale and Shape (with discussion)}, journal = {Journal of the Royal Statistical Society C}, volume = {54}, number = {3}, pages = {507-554}, year = {2005}, author = {Rigby, R. A. and Stasinopoulos, D. M.}, } @Article{msmjss, author = {Jackson, C. H.}, title = {Multi-State Models for Panel Data: The \pkg{msm} Package for \proglang{R}}, journal = {Journal of Statistical Software}, year = {2011}, OPTkey = {}, volume = {38}, number = {8}, OPTpages = {}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Book{cox:miller, author = {Cox, D. R. and Miller, H. D.}, ALTeditor = {}, title = {The Theory of Stochastic Processes}, publisher = {Chapman and Hall}, year = {1965}, OPTkey = {}, OPTvolume = {}, OPTnumber = {}, OPTseries = {}, OPTedition = {}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @book{aalen:process, title={Survival and Event History Analysis: A Process Point of View}, author={Aalen, Odd and Borgan, Ornulf and Gjessing, Hakon}, year={2008}, publisher={Springer-Verlag} } @Book{andersen, author = {Andersen, P. K. and Borgan, O. and Gill, R. D. and Keiding, N.}, ALTeditor = {}, title = {Statistical Models Based On Counting Processes}, publisher = {Springer-Verlag}, year = {1993}, OPTkey = {}, OPTvolume = {}, OPTnumber = {}, OPTseries = {}, OPTedition = {}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @article{fiocco:mstatepred, title={Reduced-rank Proportional Hazards Regression and Simulation-Based Prediction for Multi-State Models}, author={Fiocco, Marta and Putter, Hein and van Houwelingen, Hans C}, journal={Statistics in Medicine}, volume={27}, number={21}, pages={4340--4358}, year={2008}, publisher={Wiley Online Library} } @article{mandel:simci, title={Simulation-Based Confidence Intervals for Functions with Complicated Derivatives}, author={Mandel, Micha}, journal={The American Statistician}, volume={67}, number={2}, pages={76--81}, year={2013}, publisher={Taylor \& Francis} } @Article{deSolve, title = {Solving Differential Equations in \proglang{R}: Package \pkg{deSolve}}, author = {Karline Soetaert and Thomas Petzoldt and R. Woodrow Setzer}, journal = {Journal of Statistical Software}, volume = {33}, number = {9}, pages = {1--25}, year = {2010}, coden = {JSSOBK}, issn = {1548-7660}, url = {http://www.jstatsoft.org/v33/i09}, keywords = {ordinary differential equations, partial differential equations, differential algebraic equations, initial value problems, R, FORTRAN, C}, } @Article{crowther:general, author = {Crowther, M. J. and Lambert, P. C.}, title = {A General Framework for Parametric Survival Analysis}, journal = {Statistics in Medicine}, year = {2014}, OPTkey = {}, OPTvolume = {}, OPTnumber = {}, OPTpages = {}, OPTmonth = {}, note = {early view, DOI: 10.1002/sim.6300}, OPTannote = {} } @article{andersen:keiding, title={Multi-state models for event history analysis}, author={Andersen, P. K. and Keiding, N.}, journal={Statistical Methods in Medical Research}, volume={11}, number={2}, pages={91--115}, year={2002}, publisher={SAGE Publications} } @Manual{TH.data, title = {TH.data: TH's Data Archive}, author = {Torsten Hothorn}, year = {2015}, note = {R package version 1.0-6}, url = {http://CRAN.R-project.org/package=TH.data}, } @Article{francesca:smmr, author = {Ieva, F. and Jackson, C. H. and Sharples, L. D.}, title = {Multi-State modelling of repeated hospitalisation and death in patients with Heart Failure: the use of large administrative databases in clinical epidemiology}, journal={Statistical Methods in Medical Research}, year = {2015}, OPTkey = {}, OPTvolume = {}, OPTnumber = {}, OPTpages = {}, OPTmonth = {}, note = {Early view}, OPTannote = {} } @Article{survextrap:tatiana, author = {Benaglia, T. and Jackson, C. H. and Sharples, L. D.}, title = {Survival Extrapolation in the Presence of Cause Specific Hazards}, journal = {Statistics in Medicine}, year = {2014}, OPTkey = {}, OPTvolume = {}, OPTnumber = {}, OPTpages = {}, OPTmonth = {}, note = {In press.}, OPTannote = {} } @article{larson1985mixture, title={A mixture model for the regression analysis of competing risks data}, author={Larson, M. G. and Dinse, G. E.}, journal={Journal of the Royal Statistical Society: Series C (Applied Statistics)}, volume={34}, number={3}, pages={201--211}, year={1985}, annote = {} , publisher={Wiley Online Library} } @article{cox1959analysis, title={The analysis of exponentially distributed life-times with two types of failure}, author={Cox, D. R.}, journal={Journal of the Royal Statistical Society: Series B (Methodological)}, volume={21}, number={2}, pages={411--421}, year={1959}, publisher={Wiley Online Library} } @article{aalen:johansen, title={An empirical transition matrix for non-homogeneous Markov chains based on censored observations}, author={Aalen, O. O. and Johansen, S.}, journal={Scandinavian Journal of Statistics}, pages={141--150}, year={1978}, publisher={JSTOR} } @article{lambert2017flexible, title={Flexible parametric modelling of the cause-specific cumulative incidence function}, author={Lambert, P. C. and Wilkes, S. R. and Crowther, M. J.}, journal={Statistics in Medicine}, volume={36}, number={9}, pages={1429--1446}, year={2017}, publisher={Wiley Online Library} } @article{fine1999proportional, title={A proportional hazards model for the subdistribution of a competing risk}, author={Fine, J. P. and Gray, R. J.}, journal={Journal of the American Statistical Association}, volume={94}, number={446}, pages={496--509}, year={1999}, publisher={Taylor \& Francis} } @article{nicolaie2010vertical, title={Vertical modeling: a pattern mixture approach for competing risks modeling}, author={Nicolaie, M. A. and van Houwelingen, H. C. and Putter, H.}, journal={Statistics in Medicine}, volume={29}, number={11}, pages={1190--1205}, year={2010}, publisher={Wiley Online Library} }flexsurv/vignettes/flexsurv.Rnw0000644000176200001440000020161214607502156016516 0ustar liggesusers%\VignetteIndexEntry{flexsurv user guide} %\VignetteEngine{knitr::knitr} % \documentclass[article,shortnames]{jss} \documentclass[article,shortnames,nojss,nofooter]{jss} \usepackage{bm} \usepackage{tabularx} \usepackage{graphics} \usepackage{alltt} <>= options(width=60) options(prompt="R> ") library(knitr) opts_chunk$set(fig.path="flexsurv-") render_sweave() @ %% need no \usepackage{Sweave.sty} \author{Christopher H. Jackson \\ MRC Biostatistics Unit, Cambridge, UK} \title{flexsurv: A Platform for Parametric Survival Modelling in R} \Plainauthor{Christopher Jackson, MRC Biostatistics Unit} \Address{ Christopher Jackson\\ MRC Biostatistics Unit\\ Cambridge Institute of Public Health\\ Robinson Way\\ Cambridge, CB2 0SR, U.K.\\ E-mail: \email{chris.jackson@mrc-bsu.cam.ac.uk} } \Abstract{ \pkg{flexsurv} is an \proglang{R} package for fully-parametric modelling of survival data. Any parametric time-to-event distribution may be fitted if the user supplies a probability density or hazard function, and ideally also their cumulative versions. Standard survival distributions are built in, including the three and four-parameter generalized gamma and F distributions. Any parameter of any distribution can be modelled as a linear or log-linear function of covariates. The package also includes the spline model of \citet{royston:parmar}, in which both baseline survival and covariate effects can be arbitrarily flexible parametric functions of time. The main model-fitting function, \code{flexsurvreg}, uses the familiar syntax of \code{survreg} from the standard \pkg{survival} package \citep{therneau:survival}. Censoring or left-truncation are specified in \code{Surv} objects. The models are fitted by maximising the full log-likelihood, and estimates and confidence intervals for any function of the model parameters can be printed or plotted. \pkg{flexsurv} also provides functions for fitting and predicting from fully-parametric multi-state models, and connects with the \pkg{mstate} package \citep{mstate:jss}. This article explains the methods and design principles of the package, giving several worked examples of its use. \emph{[Note: A version of this vignette is published as \citet{flexsurv} in Journal of Statistical Software. All content there is included here. There have been no substantial changes in the survival modelling parts since then. Version 2.0 of \pkg{flexsurv} added new features for multi-state modelling, and since that version, multi-state modelling with \pkg{flexsurv} has been described in a separate vignette.]}} \Keywords{survival, multi-state models, multistate models} \begin{document} %\SweaveOpts{concordance=TRUE} \section{Motivation and design} The Cox model for survival data is ubiquitous in medical research, since the effects of predictors can be estimated without needing to supply a baseline survival distribution that might be inaccurate. However, fully-parametric models have many advantages, and even the originator of the Cox model has expressed a preference for parametric modelling \citep[see][]{reid:cox:conversation}. Fully-specified models can be more convenient for representing complex data structures and processes \citep{aalen:process}, e.g. hazards that vary predictably, interval censoring, frailties, multiple responses, datasets or time scales, and can help with out-of-sample prediction. For example, the mean survival $\E(T) = \int_0^{\infty}S(t)dt$, used in health economic evaluations \citep{latimer2013survival}, needs the survivor function $S(t)$ to be fully-specified for all times $t$, and parametric models that combine data from multiple time periods can facilitate this \citep{survextrap:tatiana}. %% Cox "That's right, but since then various people have shown that %% the answers are very insensitive to the parametric %% formulation of the underlying distribution. And if you want %% to do things like predict the outcome for a particular patient, %% it's much more convenient to do that parametrically." \pkg{flexsurv} for \proglang{R} \citep{R} allows parametric distributions of arbitrary complexity to be fitted to survival data, gaining the convenience of parametric modelling, while avoiding the risk of model misspecification. Built-in choices include spline-based models with any number of knots \citep{royston:parmar} and 3--4 parameter generalized gamma and F distribution families. Any user-defined model may be employed by supplying at minimum an \proglang{R} function to compute the probability density or hazard, and ideally also its cumulative form. Any parameters may be modelled in terms of covariates, and any function of the parameters may be printed or plotted in model summaries. \pkg{flexsurv} is intended as a general platform for survival modelling in \proglang{R}. The \code{survreg} function in the \proglang{R} package \pkg{survival} \citep{therneau:survival} only supports two-parameter (location/scale) distributions, though users can supply their own distributions if they can be parameterised in this form. Some other contributed \proglang{R} packages can fit survival models, e.g., \pkg{eha} \citep{eha} and \pkg{VGAM} \citep{yee:wild}, though these are either limited to specific distribution families, or not specifically designed for survival analysis. Others, e.g. \pkg{ActuDistns} \citep{actudistns}, contain only the definitions of distribution functions. \pkg{flexsurv} enables such functions to be used in survival models. It is similar in spirit to the \proglang{Stata} packages \pkg{stpm2} \citep{stpm2} for spline-based survival modelling, and \pkg{stgenreg} \citep{stgenreg} for fitting survival models with user-defined hazard functions using numerical integration. Though in \pkg{flexsurv}, slow numerical integration can be avoided if the analytic cumulative distribution or hazard can be supplied, and optimisation can also be speeded by supplying analytic derivatives. \pkg{flexsurv} also has features for multi-state modelling and interval censoring, and general output reporting. It employs functional programming to work with user-defined or existing \proglang{R} functions. \S\ref{sec:general} explains the general model that \pkg{flexsurv} is based on. \S\ref{sec:models} gives examples of its use for fitting built-in survival distributions with a fixed number of parameters, and \S\ref{sec:custom} explains how users can define new distributions. \S\ref{sec:adim} concentrates on classes of models where the number of parameters can be chosen arbitrarily, such as splines. \S\ref{sec:multistate} mentions the use of \pkg{flexsurv} for fitting and predicting from fully-parametric multi-state models, which is described more fully in a separate vignette. Finally \S\ref{sec:extensions} suggests some potential future extensions. \section{General parametric survival model} \label{sec:general} The general model that \pkg{flexsurv} fits has probability density for death at time $t$: \begin{equation} \label{eq:model} f(t | \mu(\mathbf{z}), \bm{\alpha}(\mathbf{z})), \quad t \geq 0 \end{equation} The cumulative distribution function $F(t)$, survivor function $S(t) = 1 - F(t)$, cumulative hazard $H(t) = -\log S(t)$ and hazard $h(t) = f(t)/S(t)$ are also defined (suppressing the conditioning for clarity). $\mu=\alpha_0$ is the parameter of primary interest, which usually governs the mean or \emph{location} of the distribution. Other parameters $\bm{\alpha} = (\alpha_1, \ldots, \alpha_R)$ are called ``ancillary'' and determine the shape, variance or higher moments. %%% Covariates may be time-dependent, but this notation generalizes to left-truncation, ref msm section \paragraph{Covariates} All parameters may depend on a vector of covariates $\mathbf{z}$ through link-transformed linear models $g_0(\mu(\mathbf{z})) = \gamma_0 + \bm{\beta}_0^{\top} \mathbf{z}$ and $g_r(\alpha_r(\mathbf{z})) = \gamma_r + \bm{\beta}_r^{\top} \mathbf{z}$. $g()$ will typically be $\log()$ if the parameter is defined to be positive, or the identity function if the parameter is unrestricted. Suppose that the location parameter, but not the ancillary parameters, depends on covariates. If the hazard function factorises as $h(t | \bm{\alpha}, \mu(\mathbf{z})) = \mu(\mathbf{z}) h_0(t | \bm{\alpha})$, then this is a \emph{proportional hazards} (PH) model, so that the hazard ratio between two groups (defined by two different values of $\mathbf{z}$) is constant over time $t$. Alternatively, if $S(t | \mu(\mathbf{z}), \bm{\alpha}) = S_0(\mu(\mathbf{z}) t | \bm{\alpha})$ then it is an \emph{accelerated failure time} (AFT) model, so that the effect of covariates is to speed or slow the passage of time. For example, doubling the value of a covariate with coefficient $\beta=\log(2)$ would give half the expected survival time. \paragraph{Data and likelihood} Let $t_i: i=1,\ldots, n$ be a sample of times from individuals $i$. Let $c_i=1$ if $t_i$ is an observed death time, or $c_i=0$ if this is censored. Most commonly, $t_i$ may be right-censored, thus the true death time is known only to be greater than $t_i$. More generally, the survival time may be interval-censored on $(t^{min}_i, t^{max}_i)$. Also let $s_i$ be corresponding left-truncation (or delayed-entry) times, meaning that the $i$th survival time is only observed conditionally on the individual having survived up to $s_i$, thus $s_i=0$ if there is no left-truncation. With at most right-censoring, the likelihood for the parameters $\bm{\theta} = \{\bm{\gamma},\bm{\beta}\}$ in Equation \ref{eq:model}, given the corresponding data vectors, is \begin{equation} \label{eq:lik} l(\bm{\theta} | \mathbf{t},\mathbf{c},\mathbf{s}) = \left\{ \prod_{i:\ c_i=1} f_i(t_i) \prod_{i:\ c_i=0} S_i(t_i)\right\} / \prod_i S_i(s_i) \end{equation} where $f_i(t_i)$ is shorthand for $f(t_i | \mu(\mathbf{z}_i), \bm{\alpha}(\mathbf{z}_i))$, $S_i(t_i)$ is $S(t_i | \mu(\mathbf{z}_i), \bm{\alpha}(\mathbf{z}_i))$, and $\mu, \bm{\alpha}$ are related to $\bm{\gamma}$, $\bm{\beta}$ and $\mathbf{z}_i$ via the link functions defined above. The log-likelihood also has a concise form in terms of hazards and cumulative hazards, as \[ \log l(\bm{\theta}|\mathbf{t},\mathbf{c},\mathbf{s}) = \sum_{i:\ c_i=1} \left\{\log(h_i(t_i)) - H_i(t_i)\right\} - \sum_{i:\ c_i=0} H_i(t_i) + \sum_i H_i(s_i) \] With interval-censoring, the likelihood is \begin{equation} \label{eq:lik:interval} l(\bm{\theta} | \mathbf{t}^{min},\mathbf{t}^{max},\mathbf{c},\mathbf{s}) = \left\{ \prod_{i:\ c_i=1} f_i(t_i) \prod_{i:\ c_i=0} \left(S_i(t_i^{min}) - S_i(t^{max}_i)\right)\right\} / \prod_i S_i(s_i) \end{equation} %% with hazards: %% log lik is sum log(f) sum log(S) - sum log(S) %% sum(log(h) + H) - sum(H) + sum(H(si)) %% h = f/S, H=-log(S) h S S These likelihoods assume that the times of censoring are fixed or otherwise distributed independently of the parameters $\bm{\theta}$ that govern the survival times (see, e.g. \citet{aalen:process}). The individual survival times are also independent, so that \pkg{flexsurv} does not currently support shared frailty, clustered or random effects models (see \S\ref{sec:extensions}). The parameters are estimated by maximising the full log-likelihood with respect to $\bm{\theta}$, as detailed further in \S\ref{sec:comp}. \section{Fitting standard parametric survival models} \label{sec:models} An example dataset used throughout this paper is from 686 patients with primary node positive breast cancer, available in the package as \code{bc}. This was originally provided with \pkg{stpm} \citep{stpm:orig}, and analysed in much more detail by \citet{sauerbrei1999building} and \citet{royston:parmar} \footnote{A version of this dataset, including more covariates but excluding the prognostic group, is also provided as \code{GBSG2} in the package \pkg{TH.data} \citep{TH.data}.} . The first two records are shown by: <>= library("flexsurv") @ <<>>= head(bc, 2) @ The main model-fitting function is called \code{flexsurvreg}. Its first argument is an \proglang{R} \emph{formula} object. The left hand side of the formula gives the response as a survival object, using the \code{Surv} function from the \pkg{survival} package. <<>>= fs1 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") @ Here, this indicates that the response variable is \code{recyrs}. This represents the time (in years) of death or cancer recurrence when \code{censrec} is 1, or (right-)censoring when \code{censrec} is 0. The covariate \code{group} is a factor representing a prognostic score, with three levels \code{"Good"} (the baseline), \code{"Medium"} and \code{"Poor"}. All of these variables are in the data frame \code{bc}. If the argument \code{dist} is a string, this denotes a built-in survival distribution. In this case we fit a Weibull survival model. Printing the fitted model object gives estimates and confidence intervals for the model parameters and other useful information. Note that these are the \emph{same parameters} as represented by the \proglang{R} distribution function \code{dweibull}: the \code{shape} $\alpha$ and the \code{scale} $\mu$ of the survivor function $S(t) = \exp(-(t/\mu)^\alpha)$, and \code{group} has a linear effect on $\log(\mu)$. <<>>= fs1 @ For the Weibull (and exponential, log-normal and log-logistic) distribution, \code{flexsurvreg} simply acts as a wrapper for \code{survreg}: the maximum likelihood estimates are obtained by \code{survreg}, checked by \code{flexsurvreg} for optimisation convergence, and converted to \code{flexsurvreg}'s preferred parameterisation. Therefore the same model can be fitted more directly as <<>>= survreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") @ \begin{sloppypar} The maximised log-likelihoods are the same, however the parameterisation is different: the first coefficient \code{(Intercept)} reported by \code{survreg} is $\log(\mu)$, and \code{survreg}'s \code{"scale"} is \code{dweibull}'s (thus \code{flexsurvreg})'s 1 / \code{shape}. The covariate effects $\bm{\beta}$, however, have the same ``accelerated failure time'' interpretation, as linear effects on $\log(\mu)$. The multiplicative effects $\exp(\bm{\beta})$ are printed in the output as \code{exp(est)}. \end{sloppypar} The same model can be fitted in \pkg{eha}, also by maximum likelihood, as <>= library(eha) aftreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") @ The results are presented in the same parameterisation as \code{flexsurvreg}, except that the shape and scale parameters are log-transformed, and (unless the argument \code{param="lifeExp"} is supplied) the covariate effects have the opposite sign. \subsection{Additional modelling features} \label{sec:censtrunc} \subsubsection{Truncation and time-dependent covariates} \begin{sloppypar} If we also had left-truncation times in a variable called \code{start}, the response would be \code{Surv(start, recyrs, censrec)}. Or if all responses were interval-censored between lower and upper bounds \code{tmin} and \code{tmax}, then we would write \code{Surv(tmin, tmax, type = "interval2")}. \end{sloppypar} Time-dependent covariates are not supported in \pkg{flexsurv}. In other packages, they are represented in ``counting process'' form --- as a series of left-truncated survival times, which may also be right-censored. For each individual there would be multiple records, each corresponding to an interval where the covariate is assumed to be constant. The response would be of the form \code{Surv(start, stop, censrec)}, where \code{start} and \code{stop} are the limits of each interval, and \code{censrec} indicates whether a death was observed at \code{stop}. However, using this approach would require the probability of survival up to the left-truncation time to be represented by a term of the form $S_i(s_i) = \exp(-H_i(s_i))$ in the likelihood (equation 2). The cumulative hazard $H$ over the interval from time 0 to time $s_i$ depends on how the covariates change for an individual on this time interval, and \pkg{flexsurv} cannot keep track of different observations for an individual. Furthermore, prediction from models with time-dependent covariates is a difficult problem, as it requires knowledge of when the covariates are expected to change. Joint models for longitudinal and survival data are a more flexible approach for modelling the association of a survival time with a time-dependent predictor. In versions of \pkg{flexsurv} since April 2020, models with individual-specific right-truncation times are also supported. These are used for situations with ``retrospective ascertainment'', where cases are only included in the data if they have died by a specific time. These models are specified through an argument \code{rtrunc} to \code{flexsurvreg} that names the variable with the truncation times. See the Supplementary Examples vignette for a worked example. \subsubsection{Relative survival} In relative survival models \citep{nelson:relative:survival}, the survivor function is expressed as $S(t) = S^*(t)R(t)$, where $S^*(t)$ is the ``expected" or ``baseline" survival, and $R(t)$ is the \emph{relative} survival. Equivalently, the hazard is defined as $h(t) = h^*(t) + \lambda(t)$, where $h^*()$ is the baseline hazard function, and $\lambda(t)$ is the excess mortality rate associated with the disease of interest. The baseline represents a reference population, and is typically obtained from national routinely-collected mortality statistics, adjusted (e.g. by age/sex) to represent the population under study. The parametric model is defined and estimated for $R(t)$. These models are implemented in \pkg{flexsurv} by supplying the variable in the data that represents the expected mortality rate $h^*(t)$ in the \code{bhazard} argument to \code{flexsurvreg}. This is only used for the individuals in the data who die, and \code{bhazard} describes the expected hazard at the death time. The values of \code{bhazard} for censored individuals are ignored. Note that the parameters returned in the model fitted by \code{flexsurvreg} refer to the relative survival $R(t)$, rather than the absolute survival. The likelihood returned by \code{flexsurvreg} here is a \emph{partial} likelihood defined \citep[as in][equations 4--5]{nelson:relative:survival} by omitting the term $\sum_i \log(S^*(t_i))$ (summed over all individuals $i$ in the data, including both censored and uncensored times $t_i$) from the full likelihood. This term is equivalent to minus the sum of the cumulative hazards. It can be omitted from the likelihood for the purpose of estimating the parameters of the relative survival model, since it does not depend on these parameters. Hence if a full likelihood is required, (e.g. for model comparison) then this term should be added to the partial likelihood. Similarly, the predicted survival or hazard (e.g. as returned by \code{summary.flexsurvreg}, see Section~\ref{sec:plots}) from a relative survival model refers to $R(t)$ or $h(t)$. Hence if the overall survival or hazard is required, the predictions of relative survival should be converted to the ``absolute" scale by combining with the baseline, though no specific tools for doing this are provided by \pkg{flexsurv}. \subsubsection{Weighting and subsetting} Case weights and data subsets can also be specified, as in standard \proglang{R} modelling functions, using \code{weights} or \code{subset} arguments. \subsection{Built-in models} \label{sec:builtin} \code{flexsurvreg}'s currently built-in distributions are listed in Table \ref{tab:dists}. In each case, the probability density $f()$ and parameters of the fitted model are taken from an existing \proglang{R} function of the same name but beginning with the letter \code{d}. For the Weibull, exponential (\code{dexp}), gamma (\code{dgamma}) and log-normal (\code{dlnorm}), the density functions are provided with standard installations of \proglang{R}. These density functions, and the corresponding cumulative distribution functions (with first letter \code{p} instead of \code{d}) are used internally in \code{flexsurvreg} to compute the likelihood. \pkg{flexsurv} provides some additional survival distributions, including a Gompertz distribution with unrestricted shape parameter, Weibull with proportional hazards parameterisation, log-logistic, and the three- and four-parameter families described below. For all built-in distributions, \pkg{flexsurv} also defines functions beginning with \code{h} giving the hazard, and \code{H} for the cumulative hazard. A package vignette ``Distributions reference'' lists the survivor function and parameterisation of covariate effects used by each built-in distribution. \paragraph{Generalized gamma} This three-parameter distribution includes the Weibull, gamma and log-normal as special cases. The original parameterisation from \citet{stacy:gengamma} is available as\\ \code{dist = "gengamma.orig"}, however the newer parameterisation \citep{prentice:loggamma} is preferred: \code{dist = "gengamma"}. This has parameters ($\mu$,$\sigma$,$q$), and survivor function \[ \begin{array}{ll} 1 - I(\gamma,u) & (q > 0)\\ 1 - \Phi(z) & (q = 0)\\ \end{array} \] where $I(\gamma,u) = \int_0^u x^{\gamma-1}\exp(-x)/\Gamma(\gamma)$ is the incomplete gamma function (the cumulative gamma distribution with shape $\gamma$ and scale 1), $\Phi$ is the standard normal cumulative distribution, $u = \gamma \exp(|q|z)$, $z=(\log(t) - \mu)/\sigma$, and $\gamma=q^{-2}$. The \citet{prentice:loggamma} parameterisation extends the original one to include a further class of models with negative $q$, and survivor function $I(\gamma,u)$, where $z$ is replaced by $-z$. This stabilises estimation when the distribution is close to log-normal, since $q=0$ is no longer near the boundary of the parameter space. In \proglang{R} notation, \footnote{The parameter called $q$ here and in previous literature is called $Q$ in \code{dgengamma} and related functions, since the first argument of a cumulative distribution function is conventionally named \code{q}, for quantile, in \proglang{R}.} the parameter values corresponding to the three special cases are \begin{Code} dgengamma(x, mu, sigma, Q=0) == dlnorm(x, mu, sigma) dgengamma(x, mu, sigma, Q=1) == dweibull(x, shape = 1 / sigma, scale = exp(mu)) dgengamma(x, mu, sigma, Q=sigma) == dgamma(x, shape = 1 / sigma^2, rate = exp(-mu) / sigma^2) \end{Code} \paragraph{Generalized F} This four-parameter distribution includes the generalized gamma, and also the log-logistic, as special cases. The variety of hazard shapes that can be represented is discussed by \citet{ccox:genf}. It is provided here in alternative ``original'' (\code{dist = "genf.orig"}) and ``stable'' parameterisations (\code{dist = "genf"}) as presented by \citet{prentice:genf}. See \code{help(GenF)} and \code{help(GenF.orig)} in the package documentation for the exact definitions. \subsection{Covariates on ancillary parameters} The generalized gamma model is fitted to the breast cancer survival data. \code{fs2} is an AFT model, where only the parameter $\mu$ depends on the prognostic covariate \code{group}. In a second model \code{fs3}, the first ancillary parameter \code{sigma} ($\alpha_1$) also depends on this covariate, giving a model with a time-dependent effect that is neither PH nor AFT. The second ancillary parameter \code{Q} is still common between prognostic groups. <<>>= fs2 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "gengamma") fs3 <- flexsurvreg(Surv(recyrs, censrec) ~ group + sigma(group), data = bc, dist = "gengamma") @ Ancillary covariates can alternatively be supplied using the \code{anc} argument to \code{flexsurvreg}. This syntax is required if any parameter names clash with the names of functions used in model formulae (e.g., \code{factor()} or \code{I()}). <>= fs3 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, anc = list(sigma = ~ group), dist = "gengamma") @ Table \ref{tab:aic} compares all the models fitted to the breast cancer data, showing absolute fit to the data as measured by the maximised -2$\times$log likelihood $-2LL$, number of parameters $p$, and Akaike's information criterion $-2LL + 2p$ (AIC). The model \code{fs2} has the lowest AIC, indicating the best estimated predictive ability. \begin{table} \begin{tabular}{p{1.8in}lll} \hline & Parameters & Density \proglang{R} function & \code{dist}\\ & {\footnotesize{(location in \code{\color{red}{red}})}} & & \\ \hline Exponential & \code{\color{red}{rate}} & \code{dexp} & \code{"exp"} \\ Weibull (accelerated failure time) & \code{shape, {\color{red}{scale}}} & \code{dweibull} & \code{"weibull"} \\ Weibull (proportional hazards) & \code{shape, {\color{red}{scale}}} & \code{dweibullPH} & \code{"weibullPH"} \\ Gamma & \code{shape, \color{red}{rate}} & \code{dgamma} & \code{"gamma"}\\ Log-normal & \code{{\color{red}{meanlog}}, sdlog} & \code{dlnorm} & \code{"lnorm"}\\ Gompertz & \code{shape, {\color{red}{rate}}} & \code{dgompertz} & \code{"gompertz"} \\ Log-logistic & \code{shape, {\color{red}{scale}}} & \code{dllogis} & \code{"llogis"}\\ Generalized gamma (Prentice 1975) & \code{{\color{red}{mu}}, sigma, Q} & \code{dgengamma} & \code{"gengamma"} \\ Generalized gamma (Stacy 1962)& \code{shape, {\color{red}{scale}}, k} & \code{dgengamma.orig} & \code{"gengamma.orig"} \\ Generalized F (stable) & \code{{\color{red}{mu}}, sigma, Q, P} & \code{dgenf} & \code{"genf"} \\ Generalized F (original) & \code{{\color{red}{mu}}, sigma, s1, s2} & \code{dgenf.orig} & \code{"genf.orig"} \\ \hline \end{tabular} \caption{Built-in parametric survival distributions in \pkg{flexsurv}.} \label{tab:dists} \end{table} \subsection{Plotting outputs} \label{sec:plots} The \code{plot()} method for \code{flexsurvreg} objects is used as a quick check of model fit. By default, this draws a Kaplan-Meier estimate of the survivor function $S(t)$, one for each combination of categorical covariates, or just a single ``population average'' curve if there are no categorical covariates (Figure \ref{fig:surv}). The corresponding estimates from the fitted model are overlaid. Fitted values from further models can be added with the \code{lines()} method. <>= cols <- c("#E495A5", "#86B875", "#7DB0DD") # from colorspace::rainbow_hcl(3) plot(fs1, col = cols[2], lwd.obs = 2, xlab = "Years", ylab = "Recurrence-free survival") lines(fs2, col = cols[3], lty = 2) lines(fs3, col = cols[3]) text(x=c(2,3.5,4), y=c(0.4, 0.55, 0.7), c("Poor","Medium","Good")) legend("bottomleft", col = c("black", cols[2], cols[3], cols[3]), lty = c(1, 1, 2, 1), bty = "n", lwd = rep(2, 4), c("Kaplan-Meier", "Weibull", "Generalized gamma (AFT)", "Generalized gamma (time-varying)")) @ \begin{figure}[h] \centering \includegraphics{flexsurv-surv-1} \caption{Survival by prognostic group from the breast cancer data: fitted from alternative parametric models and Kaplan-Meier estimates.} \label{fig:surv} \end{figure} The argument \code{type = "hazard"} can be set to plot hazards from parametric models against kernel density estimates obtained from \pkg{muhaz} \citep{muhaz,mueller:wang}. Figure \ref{fig:haz} shows more clearly that the Weibull model is inadequate for the breast cancer data: the hazard must be increasing or decreasing --- while the generalized gamma can represent the increase and subsequent decline in hazard seen in the data. Similarly, \code{type = "cumhaz"} plots cumulative hazards. <>= plot(fs1, type = "hazard", col = cols[2], lwd.obs = 2, max.time=6, xlab = "Years", ylab = "Hazard") lines(fs2, type = "hazard", col = cols[3], lty = 2) lines(fs3, type = "hazard", col = cols[3]) text(x=c(2,2,2), y=c(0.3, 0.13, 0.05), c("Poor","Medium","Good")) legend("topright", col = c("black", cols[2], cols[3], cols[3]), lty = c(1, 1, 2, 1), bty = "n", lwd = rep(2, 4), c("Kernel density estimate", "Weibull", "Gen. gamma (AFT)", "Gen. gamma (time-varying)")) @ \begin{figure}[h] \centering \includegraphics{flexsurv-haz-1} \caption{Hazards by prognostic group from the breast cancer data: fitted from alternative parametric models and kernel density estimates.} \label{fig:haz} \end{figure} The numbers plotted are available from the \code{summary.flexsurvreg()} method. Confidence intervals are produced by simulating a large sample from the asymptotic normal distribution of the maximum likelihood estimates of $\{\bm{\beta}_r: r=0,\ldots,R\}$ \citep{mandel:simci}, via the function \code{normboot.flexsurvreg}. This very general method allows confidence intervals to be obtained for arbitrary functions of the parameters, as described in the next section. In this example, there is only a single categorical covariate, and the \code{plot} and \code{summary} methods return one observed and fitted trajectory for each level of that covariate. For more complicated models, users should specify what covariate values they want summaries for, rather than relying on the default \footnote{If there are only factor covariates, all combinations are plotted. If there are any continuous covariates, these methods by default return a ``population average'' curve, with the linear model design matrix set to its average values, including the 0/1 contrasts defining factors, which doesn't represent any specific covariate combination.}. This is done by supplying the \code{newdata} argument, a data frame or list containing covariate values, just as in standard \proglang{R} functions like \code{predict.lm}. Time-dependent covariates are not understood by these functions. This \code{plot()} method is only for casual exploratory use. For publication-standard figures, it is preferable to set up the axes beforehand (\code{plot(..., type = "n")}), and use the \code{lines()} methods for \code{flexsurvreg} objects, or construct plots by hand using the data available from \code{summary.flexsurvreg()}. \subsection{Custom model summaries} Any function of the parameters of a fitted model can be summarised or plotted by supplying the argument \code{fn} to \code{summary.flexsurvreg} or \code{plot.flexsurvreg}. This should be an \proglang{R} function, with optional first two arguments \code{t} representing time, and \code{start} representing a left-truncation point (if the result is conditional on survival up to that time). Any remaining arguments must be the parameters of the survival distribution. For example, median survival under the Weibull model \code{fs1} can be summarised as follows <<>>= median.weibull <- function(shape, scale) { qweibull(0.5, shape = shape, scale = scale) } summary(fs1, fn = median.weibull, t = 1, B = 10000) @ Although the median of the Weibull has an analytic form as $\mu \log(2)^{1/\alpha}$, the form of the code given here generalises to other distributions. The argument \code{t} (or \code{start}) can be omitted from \code{median.weibull}, because the median is a time-constant function of the parameters, unlike the survival or hazard. \code{10000} random samples are drawn to produce a slightly more precise confidence interval than the default --- users should adjust this until the desired level of precision is obtained. A useful future extension of the package would be to employ user-supplied (or built-in) derivatives of summary functions if possible, so that the delta method can be used to obtain approximate confidence intervals without simulation. \subsection{Computation} \label{sec:comp} The likelihood is maximised in \code{flexsurvreg} using the optimisation methods available through the standard \proglang{R} \code{optim} function. By default, this is the \code{"BFGS"} method \citep{nash} using the analytic derivatives of the likelihood with respect to the model parameters, if these are available, to improve the speed of convergence to the maximum. These derivatives are built-in for the exponential, Weibull, Gompertz, log-logistic, and hazard- and odds-based spline models (see \S\ref{sec:spline}). For custom distributions (see \S\ref{sec:custom}), the user can optionally supply functions with names beginning \code{"DLd"} and \code{"DLS"} respectively (e.g., \code{DLdweibull, DLSweibull}) to calculate the derivatives of the log density and log survivor functions with respect to the transformed baseline parameters $\bm{\gamma}$ (then the derivatives with respect to $\bm{\beta}$ are obtained automatically). Arguments to \code{optim} can be passed to \code{flexsurvreg} --- in particular, \code{control} options, such as convergence tolerance, iteration limit or function or parameter scaling, may need to be adjusted to achieve convergence. \section{Custom survival distributions} \label{sec:custom} \pkg{flexsurv} is not limited to its built-in distributions. Any survival model of the form (\ref{eq:model}--\ref{eq:lik:interval}) can be fitted if the user can provide either the density function $f()$ or the hazard $h()$. Many contributed \proglang{R} packages provide probability density and cumulative distribution functions for positive distributions. Though survival models may be more naturally characterised by their hazard function, representing the changing risk of death through time. For example, for survival following major surgery we may want a ``U-shaped'' hazard curve, representing a high risk soon after the operation, which then decreases, but increases naturally as survivors grow older. To supply a custom distribution, the \code{dist} argument to \code{flexsurvreg} is defined to be an \proglang{R} list object, rather than a character string. The list has the following elements. \begin{description} \item[\code{name}] Name of the distribution. In the first example below, we use a log-logistic distribution, and the name is \code{"llogis"} \footnote{though since version 0.5.1, this distribution is built into \pkg{flexsurv} as \code{dist="llogis"} }. Then there is assumed to be at least either \begin{itemize} \item a function to compute the probability density, which would be called \code{dllogis} here, or \item a function to compute the hazard, called \code{hllogis}. \end{itemize} There should also be a function called \code{pllogis} for the cumulative distribution (if \code{d} is given), or \code{H} for the cumulative hazard (to complement \code{h}), if analytic forms for these are available. If not, then \pkg{flexsurv} can compute them internally by numerical integration, as in \pkg{stgenreg} \citep{stgenreg}. The default options of the built-in \proglang{R} routine \code{integrate} for adaptive quadrature are used, though these may be changed using the \code{integ.opts} argument to \code{flexsurvreg}. Models specified this way will take an order of magnitude more time to fit, and the fitting procedure may be unstable. An example is given in \S\ref{sec:gdim}. These functions must be \emph{vectorised}, and the density function must also accept an argument \code{log}, which when \code{TRUE}, returns the log density. See the examples below. In some cases, \proglang{R}'s scoping rules may not find the functions in the working environment. They may then be supplied through the \code{dfns} argument to \code{flexsurvreg}. \item[\code{pars}] Character vector naming the parameters of the distribution $\mu,\alpha_1,...,\alpha_R$. These must match the arguments of the \proglang{R} distribution function or functions, in the same order. \item[\code{location}] Character: quoted name of the location parameter $\mu$. The location parameter will not necessarily be the first one, e.g., in \code{dweibull} the \code{scale} comes after the \code{shape}. \item[\code{transforms}] A list of functions $g()$ which transform the parameters from their natural ranges to the real line, for example, \code{c(log, identity)} if the first is positive and the second unrestricted. \footnote{This is a \emph{list}, not an \emph{atomic vector} of functions, so if the distribution only has one parameter, we should write \code{transforms = c(log)} or \code{transforms = list(log)}, not \code{transforms = log}.} \item[\code{inv.transforms}] List of corresponding inverse functions. \item[\code{inits}] A function which provides plausible initial values of the parameters for maximum likelihood estimation. This is optional, but if not provided, then each call to \code{flexsurvreg} must have an \code{inits} argument containing a vector of initial values, which is inconvenient. Implausible initial values may produce a likelihood of zero, and a fatal error message (\code{initial value in `vmmin' is not finite}) from the optimiser. Each distribution will ideally have a heuristic for initialising parameters from summaries of the data. For example, since the median of the Weibull is $\mu \log(2)^{1/\alpha}$, a sensible estimate of $\mu$ might be the median log survival time divided by $\log(2)$, with $\alpha=1$, assuming that in practice the true value of $\alpha$ is not far from 1. Then we would define the function, of one argument \code{t} giving the survival or censoring times, returning the initial values for the Weibull \code{shape} and \code{scale} respectively \footnote{though Weibull models in \code{flexsurvreg} are ``initialised'' by fitting the model with \code{survreg}, unless there is left-truncation.}. \code{inits = function(t){ c(1, median(t[t > 0]) / log(2)) } } More complicated initial value functions may use other data such as the covariate values and censoring indicators: for an example, see the function \code{flexsurv.splineinits} in the package source that computes initial values for spline models (\S\ref{sec:spline}). \end{description} \paragraph{Example: Using functions from a contributed package} The following custom model uses the log-logistic distribution functions (\code{dllogis} and \code{pllogis}) available in the package \pkg{eha}. The survivor function is $S(t|\mu,\alpha) = 1/(1 + (t/\mu)^\alpha)$, so that the log odds $\log((1-S(t))/S(t))$ of having died are a linear function of log time. <>= custom.llogis <- list(name = "llogis", pars = c("shape", "scale"), location = "scale", transforms = c(log, log), inv.transforms = c(exp, exp), inits = function(t){ c(1, median(t)) }) fs4 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = custom.llogis) @ This fits the breast cancer data better than the Weibull, since it can represent a peaked hazard, but less well than the generalized gamma (Table \ref{tab:aic}). \paragraph{Example: Wrapping functions from a contributed package} Sometimes there may be probability density and similar functions in a contributed package, but in a different format. For example, \pkg{eha} also provides a three-parameter Gompertz-Makeham distribution with hazard $h(t|\mu,\alpha_1,\alpha_2)= \alpha_2 + \alpha_1 \exp(t/\mu)$. The shape parameters $\alpha_1,\alpha_2$ are provided to \code{dmakeham} as a vector argument of length two. However, \code{flexsurvreg} expects distribution functions to have one argument for each parameter. Therefore we write our own functions that wrap around the third-party functions. <>= dmakeham3 <- function(x, shape1, shape2, scale, ...) { dmakeham(x, shape = c(shape1, shape2), scale = scale, ...) } pmakeham3 <- function(q, shape1, shape2, scale, ...) { pmakeham(q, shape = c(shape1, shape2), scale = scale, ...) } @ \code{flexsurvreg} also requires these functions to be \emph{vectorized}, as the standard distribution functions in \proglang{R} are. That is, we can supply a vector of alternative values for one or more arguments, and expect a vector of the same length to be returned. The \proglang{R} base function \code{Vectorize} can be used to do this here. <>= dmakeham3 <- Vectorize(dmakeham3) pmakeham3 <- Vectorize(pmakeham3) @ and this allows us to write, for example, <>= pmakeham3(c(0, 1, 1, Inf), 1, c(1, 1, 2, 1), 1) @ We could then use \code{dist = list(name = "makeham3", pars = c("shape1", "shape2", \\ "scale"), ...)} in a \code{flexsurvreg} model, though in the breast cancer example, the second shape parameter is poorly identifiable. \paragraph{Example: Changing the parameterisation of a distribution} We may want to fit a Weibull model like \code{fs1}, but with the proportional hazards (PH) parameterisation $S(t) = \exp(-\mu t^\alpha)$, so that the covariate effects reported in the printed \code{flexsurvreg} object can be interpreted as hazard ratios or log hazard ratios without any further transformation. Here instead of the density and cumulative distribution functions, we provide the hazard and cumulative hazard. (Note that since version 0.7, the \code{"weibullPH"} distribution is built in to \code{flexsurvreg} --- but this example has been kept here for illustrative purposes.) \footnote{The \pkg{eha} package may need to be detached first so that \pkg{flexsurv}'s built-in \code{hweibull} is used, which returns \code{NaN} if the parameter values are zero, rather than failing as \pkg{eha}'s currently does.} <>= options(warn=-1) @ <<>>= hweibullPH <- function(x, shape, scale = 1, log = FALSE){ hweibull(x, shape = shape, scale = scale ^ {-1 / shape}, log = log) } HweibullPH <- function(x, shape, scale = 1, log = FALSE){ Hweibull(x, shape = shape, scale = scale ^ {-1 / shape}, log = log) } custom.weibullPH <- list(name = "weibullPH", pars = c("shape", "scale"), location = "scale", transforms = c(log, log), inv.transforms = c(exp, exp), inits = function(t){ c(1, median(t[t > 0]) / log(2)) }) fs6 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = custom.weibullPH) fs6$res["scale", "est"] ^ {-1 / fs6$res["shape", "est"]} - fs6$res["groupMedium", "est"] / fs6$res["shape", "est"] - fs6$res["groupPoor", "est"] / fs6$res["shape", "est"] @ <>= options(warn=0) @ The fitted model is the same as \code{fs1}, therefore the maximised likelihood is the same. The parameter estimates of \code{fs6} can be transformed to those of \code{fs1} as shown. The shape $\alpha$ is common to both models, the scale $\mu^\prime$ in the AFT model is related to the PH scale $\mu$ as $\mu^\prime$ = $\mu^{-1/\alpha}$. The effects $\beta^\prime$ on life expectancy in the AFT model are related to the log hazard ratios $\beta$ as $\beta^\prime = -\beta/\alpha$. A slightly more complicated example is given in the package vignette \code{flexsurv-examples} of constructing a proportional hazards generalized gamma model. Note that \code{phreg} in \pkg{eha} also fits the Weibull and other proportional hazards models, though again the parameterisation is slightly different. \section{Arbitrary-dimension models} \label{sec:adim} \pkg{flexsurv} also supports models where the number of parameters is arbitrary. In the models discussed previously, the number of parameters in the model family is fixed (e.g., three for the generalized gamma). In this section, the model complexity can be chosen by the user, given the model family. We may want to represent more irregular hazard curves by more flexible functions, or use bigger models if a bigger sample size makes it feasible to estimate more parameters. \subsection{Royston and Parmar spline model} \label{sec:spline} \begin{sloppypar} In the spline-based survival model of \citet{royston:parmar}, a transformation $g(S(t,z))$ of the survival function is modelled as a natural cubic spline function of log time: $g(S(t,z)) = s(x, \bm{\gamma})$ where $x = \log(t)$. This model can be fitted in \pkg{flexsurv} using the function \code{flexsurvspline}, and is also available in the \proglang{Stata} package \pkg{stpm2} \citep{stpm2} (historically \pkg{stpm}, \citet{stpm:orig,stpm:update}). \end{sloppypar} Typically we use $g(S(t,\mathbf{z})) = \log(-\log(S(t,\mathbf{z}))) = \log(H(t,\mathbf{z}))$, the log cumulative hazard, giving a proportional hazards model. \paragraph{Spline parameterisation} The complexity of the model, thus the dimension of $\bm{\gamma}$, is governed by the number of \emph{knots} in the spline function $s()$. Natural cubic splines are piecewise cubic polynomials defined to be continuous, with continuous first and second derivatives at the knots, and also constrained to be linear beyond boundary knots $k_{min},k_{max}$. As well as the boundary knots there may be up to $m\geq 0$ \emph{internal} knots $k_1,\ldots, k_m$. Various spline parameterisations exist --- the one used here is from \citet{royston:parmar}. \begin{equation} \label{eq:spline} s(x,\bm{\gamma}) = \gamma_0 + \gamma_1 x + \gamma_2 v_1(x) + \ldots + \gamma_{m+1} v_m(x) \end{equation} where $v_j(x)$ is the $j$th \emph{basis} function \[v_j(x) = (x - k_j)^3_+ - \lambda_j(x - k_{min})^3_+ - (1 - \lambda_j) (x - k_{max})^3_+, \qquad \lambda_j = \frac{k_{max} - k_j}{k_{max} - k_{min}} \] and $(x - a)_+ = max(0, x - a)$. If $m=0$ then there are only two parameters $\gamma_0,\gamma_1$, and this is a Weibull model if $g()$ is the log cumulative hazard. Table \ref{tab:spline} explains two further choices of $g()$, and the parameter values and distributions they simplify to for $m=0$. The probability density and cumulative distribution functions for all these models are available as \code{dsurvspline} and \code{psurvspline}. A model with an absolute time scale ($x = t$) is also available through \code{timescale="identity"}. \begin{table} \begin{tabularx}{\textwidth}{lXlp{1.4in}} \hline Model & $g(S(t,\mathbf{z}))$ & In \code{flexsurvspline} & With $m=0$ \\ \hline Proportional hazards & $\log(-\log(S(t,\mathbf{z})))$ \newline {\footnotesize (log cumulative hazard)} & \code{scale = "hazard"} & Weibull {\footnotesize \code{shape} $\gamma_1$, \code{scale} $\exp(-\gamma_0/\gamma_1)$}\\ Proportional odds & $\log(S(t,\mathbf{z})^{-1} - 1)$ \newline {\footnotesize (log cumulative odds)} & \code{scale = "odds"} & Log-logistic {\footnotesize \code{shape} $\gamma_1$, \code{scale} $\exp(-\gamma_0/\gamma_1)$}\\ Normal / probit & $\Phi^{-1}(S(t,\mathbf{z}))$ \newline {\footnotesize (inverse normal CDF, \code{qnorm})} & \code{scale = "normal"} & Log-normal {\footnotesize \code{meanlog} $-\gamma_0/\gamma_1$, \code{sdlog} $1/\gamma_1$ }\\ \hline \end{tabularx} \caption{Alternative modelling scales for \code{flexsurvspline}, and equivalent distributions for $m=0$ (with parameter definitions as in the \proglang{R} \code{d} functions referred to elsewhere in the paper).} \label{tab:spline} \end{table} \paragraph{Covariates on spline parameters} Covariates can be placed on any parameter $\gamma$ through a linear model (with identity link function). Most straightforwardly, we can let the intercept $\gamma_0$ vary with covariates $\mathbf{z}$, giving a proportional hazards or odds model (depending on $g()$). \[g(S(t,z)) = s(\log(t), \bm{\gamma}) + \bm{\beta}^\top \mathbf{z} \] The spline coefficients $\gamma_j: j=1, 2 \ldots$, the ``ancillary'' parameters, may also be modelled as linear functions of covariates $\mathbf{z}$, as \[\gamma_j(\mathbf{z}) = \gamma_{j0} + \gamma_{j1}z_1 + \gamma_{j2}z_2 + \ldots\] giving a model where the effects of covariates are arbitrarily flexible functions of time: a non-proportional hazards or odds model. \paragraph{Spline models in \pkg{flexsurv}} The argument \code{k} to \code{flexsurvspline} defines the number of internal knots $m$. Knot locations are chosen by default from quantiles of the log uncensored death times, or users can supply their own locations in the \code{knots} argument. Initial values for numerical likelihood maximisation are chosen using the method described by \citet{royston:parmar} of Cox regression combined with transforming an empirical survival estimate. For example, the best-fitting model for the breast cancer dataset identified in \citet{royston:parmar}, a proportional odds model with one internal spline knot, is <<>>= sp1 <- flexsurvspline(Surv(recyrs, censrec) ~ group, data = bc, k = 1, scale = "odds") @ A further model where the first ancillary parameter also depends on the prognostic group, giving a time-varying odds ratio, is fitted as <<>>= sp2 <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group), data = bc, k = 1, scale = "odds") @ These models give qualitatively similar results to the generalized gamma in this dataset (Figure \ref{fig:spline:haz}), and have similar predictive ability as measured by AIC (Table \ref{tab:aic}). Though in general, an advantage of spline models is that extra flexibility is available where necessary. <>= plot(sp1, type = "hazard", col=cols[3], ylim = c(0, 0.5), xlab = "Years", ylab = "Hazard") lines(sp2, type = "hazard", col = cols[3], lty = 2) lines(fs2, type = "hazard", col = cols[2]) text(x=c(2,2,2), y=c(0.3, 0.15, 0.05), c("Poor","Medium","Good")) legend("topright", col = c("black",cols[c(3,3,2)]), lty = c(1,1,2,1), lwd = rep(2,4), c("Kernel density estimate","Spline (proportional odds)", "Spline (time-varying)","Generalized gamma (time-varying)")) @ \begin{figure}[h] \centering \includegraphics{flexsurv-splinehaz-1} \caption{Comparison of spline and generalized gamma fitted hazards for the breast cancer survival data by prognostic group.} \label{fig:spline:haz} \end{figure} In this example, proportional odds models (\code{scale = "odds"}) are better-fitting than proportional hazards models (\code{scale = "hazard"}) (Table \ref{tab:aic}). Note also that under a proportional hazards spline model with one internal knot (\code{sp3}), the log hazard ratios, and their standard errors, are substantively the same as under a standard Cox model (\code{cox3}). This illustrates that this class of flexible fully-parametric models may be a reasonable alternative to the (semi-parametric) Cox model. See \citet{royston:parmar} for more discussion of these issues. <<>>= sp3 <- flexsurvspline(Surv(recyrs, censrec) ~ group, data = bc, k = 1, scale = "hazard") sp3$res[c("groupMedium", "groupPoor"), c("est", "se")] cox3 <- coxph(Surv(recyrs, censrec) ~ group, data = bc) coef(summary(cox3))[ , c("coef", "se(coef)")] @ An equivalent of a ``stratified" Cox model may be obtained by allowing \emph{all} the spline parameters to vary with the categorical covariate that defines the strata. In this case, this covariate might be \code{group}. With \code{k=}$m$ internal knots, the formula should then include \code{group}, representing $\gamma_0$, and $m+1$ further terms representing the parameters $\gamma_1,\ldots,\gamma_{m+1}$, named as follows. <<>>= sp4 <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group) + gamma2(group), data = bc, k = 1, scale = "hazard") @ Other covariates might be added to this formula --- if placed on the intercept, these will be modelled through proportional hazards, as in \code{sp1}. If placed on higher-order parameters, these will represent time-varying hazard ratios. For example, if there were a covariate \code{treat} representing treatment, then <>= flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group) + gamma2(group) + treat + gamma1(treat), data = bc, k = 1, scale = "hazard") @ would represent a model stratified by group, where the hazard ratio for treatment is time-varying, but the model is not fully stratified by treatment. <<>>= res <- t(sapply(list(fs1, fs2, fs3, sp1, sp2, sp3, sp4), function(x)rbind(-2 * round(x$loglik,1), x$npars, round(x$AIC,1)))) rownames(res) <- c("Weibull (fs1)", "Generalized gamma (fs2)", "Generalized gamma (fs3)", "Spline (sp1)", "Spline (sp2)", "Spline (sp3)", "Spline (sp4)") colnames(res) <- c("-2 log likelihood", "Parameters", "AIC") @ \begin{table}[h] <>= res @ \caption{Comparison of parametric survival models fitted to the breast cancer data.} \label{tab:aic} \end{table} \subsection{Implementing new general-dimension models} \label{sec:gdim} The spline model above is an example of the general parametric form (Equation \ref{eq:model}), but the number of parameters, $R+1$ in Equation \ref{eq:model}, $m+2$ in Equation \ref{eq:spline}, is arbitrary. \pkg{flexsurv} has the tools to deal with any model of this form. \code{flexsurvspline} works internally by building a custom distribution and then calling \code{flexsurvreg}. Similar models may in principle be built by users using the same method. This relies on a functional programming trick. \paragraph{Creating distribution functions dynamically} The \proglang{R} distribution functions supplied to custom models are expected to have a fixed number of arguments, including one for each scalar parameter. However, the distribution functions for the spline model (e.g., \code{dsurvspline}) have an argument \code{gamma} representing the \emph{vector} of parameters $\gamma$, whose length is determined by choosing the number of knots. Just as the \emph{scalar parameters} of conventional distribution functions can be supplied as \emph{vector arguments} (as explained in \S\ref{sec:custom}), similarly, the vector parameters of spline-like distribution functions can be supplied as \emph{matrix arguments}, representing alternative parameter values. To convert a spline-like distribution function into the correct form, \pkg{flexsurv} provides the utility \code{unroll.function}. This converts a function with one (or more) vector parameters (matrix arguments) to a function with an arbitrary number of scalar parameters (vector arguments). For example, the 5-year survival probability for the baseline group under the model \code{sp1} is <<>>= gamma <- sp1$res[c("gamma0", "gamma1", "gamma2"), "est"] 1 - psurvspline(5, gamma = gamma, knots = sp1$knots) @ An alternative function to compute this can be built by \code{unroll.function}. We tell it that the vector parameter \code{gamma} should be provided instead as three scalar parameters named \code{gamma0}, \code{gamma1}, \code{gamma2}. The resulting function \code{pfn} is in the correct form for a custom \code{flexsurvreg} distribution. <<>>= pfn <- unroll.function(psurvspline, gamma = 0:2) 1 - pfn(5, gamma0 = gamma[1], gamma1 = gamma[2], gamma2 = gamma[3], knots = sp1$knots) @ Users wishing to fit a new spline-like model with a known number of parameters could just as easily write distribution functions specific to that number of parameters, and use the methods in \S\ref{sec:custom}. However the \code{unroll.function} method is intended to simplify the process of extending the \pkg{flexsurv} package to implement new model families, through wrappers similar to \code{flexsurvspline}. \paragraph{Example: splines on alternative scales} An alternative to the Royston-Parmar spline model is to model the log \emph{hazard} as a spline function of (log) time instead of the log cumulative hazard. \citet{stgenreg} demonstrate this model using the \proglang{Stata} \pkg{stgenreg} package. An advantage explained by \citet{royston:lambert:book} is that when there are multiple time-dependent effects, time-dependent hazard ratios can be interpreted independently of the values of other covariates. This can also be implemented in \code{flexsurvreg} using \code{unroll.function}. A disadvantage of this model is that the cumulative hazard (hence the survivor function) has no analytic form, therefore to compute the likelihood, the hazard function needs to be integrated numerically. This is done automatically in \code{flexsurvreg} (just as in \pkg{stgenreg}) if the cumulative hazard is not supplied. Firstly, a function must be written to compute the hazard as a function of time \code{x}, the vector of parameters \code{gamma} (which can be supplied as a matrix argument so the function can give a vector of results), and a vector of knot locations. This uses \pkg{flexsurv}'s function \code{basis} to compute the natural cubic spline basis (Equation \ref{eq:spline}), and replicates \code{x} and \code{gamma} to the length of the longest one. <<>>= hsurvspline.lh <- function(x, gamma, knots){ if(!is.matrix(gamma)) gamma <- matrix(gamma, nrow = 1) lg <- nrow(gamma) nret <- max(length(x), lg) gamma <- apply(gamma, 2, function(x)rep(x, length = nret)) x <- rep(x, length = nret) loghaz <- rowSums(basis(knots, log(x)) * gamma) exp(loghaz) } @ The equivalent function is then created for a three-knot example of this model (one internal and two boundary knots) that has arguments \code{gamma0}, \code{gamma1} and \code{gamma2} corresponding to the three columns of \code{gamma}, <<>>= hsurvspline.lh3 <- unroll.function(hsurvspline.lh, gamma = 0:2) @ To complete the model, the custom distribution list is formed, the internal knot is placed at the median uncensored log survival time, and the boundary knots are placed at the minimum and maximum. These are passed to \code{hsurvspline.lh} through the \code{aux} argument of \code{flexsurvreg}. <<>>= custom.hsurvspline.lh3 <- list( name = "survspline.lh3", pars = c("gamma0", "gamma1", "gamma2"), location = c("gamma0"), transforms = rep(c(identity), 3), inv.transforms = rep(c(identity), 3) ) dtime <- log(bc$recyrs)[bc$censrec == 1] ak <- list(knots = quantile(dtime, c(0, 0.5, 1))) @ Initial values must be provided in the call to \code{flexsurvreg}, since the custom distribution list did not include an \code{inits} component. For this example, ``default'' initial values of zero suffice, but the permitted values of $\gamma_2$ are fairly tightly constrained (from -0.5 to 0.5 here) using the \code{"L-BFGS-B"} bounded optimiser from \proglang{R}'s \code{optim} \citep{nash}. Without the constraint, extreme values of $\gamma_2$, visited by the optimiser, cause the numerical integration of the hazard function to fail. <>= sp5 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, aux = ak, inits = c(0, 0, 0, 0, 0), dist = custom.hsurvspline.lh3, method = "L-BFGS-B", lower = c(-Inf, -Inf, -0.5), upper = c(Inf, Inf, 0.5), control = list(trace = 1, REPORT = 1)) @ This takes around ten minutes to converge, so is not presented here, though the fit is poorer than the equivalent spline model for the cumulative hazard. The 95\% confidence interval for $\gamma_2$ of (0.16, 0.37) is firmly within the constraint. \citet{crowther:general} present a combined analytic / numerical integration method for this model that may make fitting it more stable. \paragraph{Other arbitrary-dimension models} Another potential application is to fractional polynomials \citep{royston1994regression}. These are of the form $\sum_{m=1}^M \alpha_m x^{p_m} \log(x)^n$ where the power $p_m$ is in the standard set $\{2,-1,-0.5,0,0.5,1,2,3\}$ (except that $\log(x)$ is used instead of $x^0$), and $n$ is a non-negative integer. They are similar to splines in that they can give arbitrarily close approximations to a nonlinear function, such as a hazard curve, and are particularly useful for expressing the effects of continuous predictors in regression models. See e.g., \citet{sauerbrei2007selection}, and several other publications by the same authors, for applications and discussion of their advantages over splines. The \proglang{R} package \pkg{gamlss} \citep{gamlss} has a function to construct a fractional polynomial basis that might be employed in \pkg{flexsurv} models. Polyhazard models \citep{polyhazard} are another potential use of this technique. These express an overall hazard as a sum of latent cause-specific hazards, each one typically from the same class of distribution, e.g., a \emph{poly-Weibull} model if they are all Weibull. For example, a U-shaped hazard curve following surgery may be the sum of early hazards from surgical mortality and later deaths from natural causes. However, such models may not always be identifiable without external information to fix or constrain the parameters of particular hazards \citep{demiris2011survival}. \section{Multi-state models} \label{sec:multistate} A \emph{multi-state model} represents how an individual moves between multiple states in continuous time. Survival analysis is a special case with two states, ``alive'' and ``dead''. \emph{Competing risks} are a further special case, where there are multiple causes of death, that is, one starting state and multiple possible destination states. Multi-state modelling with \pkg{flexsurv} was previously described in this section of the current vignette. Version 2.0 of \pkg{flexsurv} added several new features for multi-state modelling, including multi-state modelling using mixtures, and transition-specific distribution families in cause-specific hazards models. These models are now fully described in a separate \pkg{flexsurv} vignette, ``Flexible parametric multi-state modelling with the flexsurv package''. \section{Potential extensions} \label{sec:extensions} Multi-state modelling is still an area of ongoing work, and while version 2.0 extended \pkg{flexsurv} in this area, more tools and documentation in this area would still be useful. The \pkg{msm} package arguably has a more accessible interface for fitting and summarising multi-state models, but it was designed mainly for panel data rather than event time data, and therefore the event time distributions it fits are relatively inflexible. Models where multiple survival times are assumed to be correlated within groups, sometimes called (shared) frailty models \citep{hougaard1995frailty}, would also be a useful development. See, e.g., \citet{crowther2014multilevel} for a recent application based on parametric models. These might be implemented by exploiting tractability for specific distributions, such as gamma frailties, or by adjusting standard errors to account for clustering, as implemented in \code{survreg}. More complex random effects models would require numerical integration, for example, \citet{crowther2014multilevel} provide \proglang{Stata} software based on Gauss-Hermite quadrature. Alternatively, a probabilistic modelling language such as \proglang{Stan} \citep{stan-manual:2014} or \proglang{BUGS} \citep{bugs:book} would be naturally suited to complex extensions such as random effects on multiple parameters or multiple hierarchical levels. \pkg{flexsurv} is intended as a platform for parametric survival modelling. Extensions of the software to deal with different models may be written by users themselves, through the facilities described in \S\ref{sec:custom} and \S\ref{sec:gdim}. These might then be included in the package as built-in distributions, or at least demonstrated in the package's other vignette \code{flexsurv-examples}. Each new class of models would ideally come with \begin{itemize} \item guidance on what situations the model is useful for, e.g., what shape of hazards it can represent \item some intuitive interpretation of the model parameters, their plausible values in typical situations, and potential identifiability problems. This would also help with choosing initial values for numerical maximum likelihood estimation, ideally through an \code{inits} function in the custom distribution list (\S\ref{sec:custom}). \end{itemize} \pkg{flexsurv} is available from \url{http://CRAN.R-project.org/package=flexsurv}. Development versions are available on \url{https://github.com/chjackson/flexsurv-dev}, and contributions are welcome. \section*{Acknowledgements} Thanks to Milan Bouchet-Valat for help with implementing covariates on ancillary parameters, Andrea Manca for motivating the development of the package, the reviewers of the paper, and all users who have reported bugs and given suggestions. \bibliography{flexsurv} \end{document} flexsurv/data/0000755000176200001440000000000014045250755013050 5ustar liggesusersflexsurv/data/bc.txt0000644000176200001440000003266313231112051014165 0ustar liggesusers"censrec" "rectime" "group" "1" 0 1342 "Good" "2" 0 1578 "Good" "3" 0 1760 "Good" "4" 0 1152 "Good" "5" 0 967 "Good" "6" 0 629 "Good" "7" 0 461 "Good" "8" 1 991 "Good" "9" 0 758 "Good" "10" 0 1617 "Good" "11" 0 1767 "Good" "12" 0 432 "Good" "13" 0 892 "Good" "14" 0 1933 "Good" "15" 0 2456 "Good" "16" 0 553 "Good" "17" 0 1833 "Good" "18" 0 1624 "Good" "19" 0 1222 "Good" "20" 0 1499 "Good" "21" 1 755 "Good" "22" 0 722 "Good" "23" 0 368 "Good" "24" 0 1499 "Good" "25" 0 1109 "Good" "26" 0 1435 "Good" "27" 0 2556 "Good" "28" 0 747 "Good" "29" 0 1432 "Good" "30" 0 2237 "Good" "31" 0 2449 "Good" "32" 0 1853 "Good" "33" 0 1858 "Good" "34" 0 695 "Good" "35" 0 1781 "Good" "36" 0 2009 "Good" "37" 0 213 "Good" "38" 0 1627 "Good" "39" 0 2056 "Good" "40" 1 1279 "Good" "41" 0 2372 "Good" "42" 0 2297 "Good" "43" 0 1984 "Good" "44" 0 1720 "Good" "45" 1 1329 "Good" "46" 0 2539 "Good" "47" 0 2659 "Good" "48" 0 529 "Good" "49" 0 322 "Good" "50" 0 1169 "Good" "51" 0 1114 "Good" "52" 1 1989 "Good" "53" 0 1094 "Good" "54" 0 1765 "Good" "55" 0 2065 "Good" "56" 1 801 "Good" "57" 0 1329 "Good" "58" 0 1692 "Good" "59" 1 1352 "Good" "60" 1 982 "Good" "61" 0 2217 "Good" "62" 0 1818 "Good" "63" 1 1420 "Good" "64" 0 2370 "Good" "65" 0 1703 "Good" "66" 0 1840 "Good" "67" 0 1486 "Good" "68" 0 753 "Good" "69" 0 1212 "Good" "70" 0 1364 "Good" "71" 0 761 "Good" "72" 1 2039 "Good" "73" 1 865 "Good" "74" 0 1756 "Good" "75" 0 2148 "Good" "76" 0 1938 "Good" "77" 0 1171 "Good" "78" 0 2170 "Good" "79" 0 1625 "Good" "80" 0 967 "Good" "81" 0 2014 "Good" "82" 0 2195 "Good" "83" 0 8 "Good" "84" 0 273 "Good" "85" 0 2271 "Good" "86" 0 2172 "Good" "87" 0 1818 "Good" "88" 0 1666 "Good" "89" 0 1490 "Good" "90" 0 2132 "Good" "91" 1 983 "Good" "92" 1 1105 "Good" "93" 0 970 "Good" "94" 0 1632 "Good" "95" 0 319 "Good" "96" 0 1926 "Good" "97" 1 799 "Good" "98" 0 46 "Good" "99" 1 550 "Good" "100" 1 662 "Good" "101" 0 1356 "Good" "102" 0 1117 "Good" "103" 0 2010 "Good" "104" 1 1343 "Good" "105" 0 57 "Good" "106" 0 1355 "Good" "107" 0 1717 "Good" "108" 0 1922 "Good" "109" 0 2156 "Good" "110" 1 559 "Good" "111" 0 1743 "Good" "112" 1 1090 "Good" "113" 1 205 "Good" "114" 0 1786 "Good" "115" 0 1645 "Good" "116" 0 1869 "Good" "117" 0 1976 "Good" "118" 0 1119 "Good" "119" 1 2093 "Good" "120" 0 1317 "Good" "121" 0 2049 "Good" "122" 0 1680 "Good" "123" 0 1427 "Good" "124" 0 740 "Good" "125" 0 2401 "Good" "126" 1 1002 "Good" "127" 1 1675 "Good" "128" 1 1459 "Good" "129" 0 1600 "Good" "130" 0 734 "Good" "131" 1 1371 "Good" "132" 0 195 "Good" "133" 0 969 "Good" "134" 0 1703 "Good" "135" 1 637 "Good" "136" 0 570 "Good" "137" 1 1679 "Good" "138" 0 2471 "Good" "139" 0 2296 "Good" "140" 0 1340 "Good" "141" 0 1514 "Good" "142" 0 652 "Good" "143" 0 806 "Good" "144" 0 1721 "Good" "145" 0 651 "Good" "146" 1 890 "Good" "147" 1 784 "Good" "148" 0 692 "Good" "149" 0 741 "Good" "150" 0 2237 "Good" "151" 0 1163 "Good" "152" 1 762 "Good" "153" 1 476 "Good" "154" 0 1349 "Good" "155" 0 2161 "Good" "156" 1 729 "Good" "157" 0 1722 "Good" "158" 0 229 "Good" "159" 1 598 "Good" "160" 0 1905 "Good" "161" 0 1751 "Good" "162" 1 1641 "Good" "163" 0 1219 "Good" "164" 0 1475 "Good" "165" 0 1926 "Good" "166" 0 1358 "Good" "167" 0 1341 "Good" "168" 1 475 "Good" "169" 0 2438 "Good" "170" 0 1264 "Good" "171" 0 1091 "Good" "172" 0 2372 "Good" "173" 0 114 "Good" "174" 1 1753 "Good" "175" 1 557 "Good" "176" 1 1521 "Good" "177" 0 1701 "Good" "178" 0 858 "Good" "179" 0 1296 "Good" "180" 0 1350 "Good" "181" 0 1884 "Good" "182" 0 2551 "Good" "183" 0 1722 "Good" "184" 0 972 "Good" "185" 0 945 "Good" "186" 0 1629 "Good" "187" 0 2192 "Good" "188" 0 2017 "Good" "189" 1 1105 "Good" "190" 1 1146 "Good" "191" 1 612 "Good" "192" 0 1441 "Good" "193" 0 296 "Good" "194" 1 748 "Good" "195" 0 986 "Good" "196" 0 936 "Good" "197" 1 1174 "Good" "198" 0 1342 "Good" "199" 0 2007 "Good" "200" 0 995 "Good" "201" 0 17 "Good" "202" 0 1863 "Good" "203" 0 2161 "Good" "204" 0 877 "Good" "205" 0 1483 "Good" "206" 1 707 "Good" "207" 1 533 "Good" "208" 0 1499 "Good" "209" 0 916 "Good" "210" 1 1246 "Good" "211" 1 1219 "Good" "212" 1 548 "Good" "213" 0 1502 "Good" "214" 0 1807 "Good" "215" 1 1218 "Good" "216" 1 542 "Good" "217" 0 870 "Good" "218" 1 426 "Good" "219" 0 1089 "Good" "220" 0 1243 "Good" "221" 0 1125 "Good" "222" 0 2175 "Good" "223" 0 2320 "Good" "224" 0 1233 "Good" "225" 0 1624 "Good" "226" 0 972 "Good" "227" 0 566 "Good" "228" 0 2030 "Good" "229" 0 148 "Good" "230" 0 1401 "Medium" "231" 1 675 "Medium" "232" 0 940 "Medium" "233" 0 637 "Medium" "234" 0 1527 "Medium" "235" 0 1088 "Medium" "236" 0 1685 "Medium" "237" 0 737 "Medium" "238" 0 1834 "Medium" "239" 0 1756 "Medium" "240" 1 438 "Medium" "241" 0 825 "Medium" "242" 1 1528 "Medium" "243" 0 2388 "Medium" "244" 0 1208 "Medium" "245" 0 1717 "Medium" "246" 1 481 "Medium" "247" 1 1525 "Medium" "248" 0 1866 "Medium" "249" 1 1481 "Medium" "250" 0 1956 "Medium" "251" 1 1990 "Medium" "252" 1 1814 "Medium" "253" 1 687 "Medium" "254" 1 554 "Medium" "255" 1 544 "Medium" "256" 0 2177 "Medium" "257" 1 545 "Medium" "258" 0 1959 "Medium" "259" 0 853 "Medium" "260" 1 552 "Medium" "261" 0 1821 "Medium" "262" 1 795 "Medium" "263" 0 2563 "Medium" "264" 1 855 "Medium" "265" 0 766 "Medium" "266" 0 2057 "Medium" "267" 0 1598 "Medium" "268" 0 1323 "Medium" "269" 0 974 "Medium" "270" 1 177 "Medium" "271" 0 1842 "Medium" "272" 1 191 "Medium" "273" 1 1684 "Medium" "274" 1 329 "Medium" "275" 1 1059 "Medium" "276" 1 1918 "Medium" "277" 1 714 "Medium" "278" 1 838 "Medium" "279" 0 1897 "Medium" "280" 0 1693 "Medium" "281" 1 1280 "Medium" "282" 1 285 "Medium" "283" 1 1253 "Medium" "284" 1 1157 "Medium" "285" 0 918 "Medium" "286" 0 2126 "Medium" "287" 1 552 "Medium" "288" 0 1729 "Medium" "289" 0 2011 "Medium" "290" 1 964 "Medium" "291" 0 1847 "Medium" "292" 1 918 "Medium" "293" 0 1483 "Medium" "294" 0 71 "Medium" "295" 1 876 "Medium" "296" 1 889 "Medium" "297" 1 1807 "Medium" "298" 1 2372 "Medium" "299" 0 1077 "Medium" "300" 0 2153 "Medium" "301" 1 374 "Medium" "302" 0 1434 "Medium" "303" 0 2353 "Medium" "304" 0 1205 "Medium" "305" 0 1826 "Medium" "306" 0 1707 "Medium" "307" 1 564 "Medium" "308" 0 1841 "Medium" "309" 0 1642 "Medium" "310" 0 792 "Medium" "311" 0 1222 "Medium" "312" 0 1868 "Medium" "313" 1 308 "Medium" "314" 0 2144 "Medium" "315" 0 1505 "Medium" "316" 0 2009 "Medium" "317" 1 369 "Medium" "318" 0 1861 "Medium" "319" 0 1833 "Medium" "320" 1 1193 "Medium" "321" 1 1120 "Medium" "322" 0 933 "Medium" "323" 0 1351 "Medium" "324" 1 670 "Medium" "325" 0 424 "Medium" "326" 0 1965 "Medium" "327" 0 1283 "Medium" "328" 0 1789 "Medium" "329" 0 1693 "Medium" "330" 1 385 "Medium" "331" 0 2388 "Medium" "332" 1 857 "Medium" "333" 0 429 "Medium" "334" 1 353 "Medium" "335" 0 17 "Medium" "336" 0 1714 "Medium" "337" 1 394 "Medium" "338" 1 502 "Medium" "339" 0 276 "Medium" "340" 1 1093 "Medium" "341" 1 578 "Medium" "342" 0 177 "Medium" "343" 0 1862 "Medium" "344" 0 567 "Medium" "345" 1 372 "Medium" "346" 1 371 "Medium" "347" 0 1965 "Medium" "348" 1 1150 "Medium" "349" 0 723 "Medium" "350" 0 2051 "Medium" "351" 1 548 "Medium" "352" 0 1182 "Medium" "353" 1 350 "Medium" "354" 0 63 "Medium" "355" 0 1655 "Medium" "356" 1 491 "Medium" "357" 1 1192 "Medium" "358" 0 740 "Medium" "359" 1 420 "Medium" "360" 0 1720 "Medium" "361" 1 1460 "Medium" "362" 1 476 "Medium" "363" 1 2015 "Medium" "364" 1 866 "Medium" "365" 0 2027 "Medium" "366" 1 473 "Medium" "367" 0 2234 "Medium" "368" 0 1113 "Medium" "369" 0 2612 "Medium" "370" 1 2030 "Medium" "371" 1 1763 "Medium" "372" 0 717 "Medium" "373" 0 1472 "Medium" "374" 1 956 "Medium" "375" 1 2034 "Medium" "376" 0 936 "Medium" "377" 0 2239 "Medium" "378" 0 1013 "Medium" "379" 1 554 "Medium" "380" 0 2380 "Medium" "381" 0 1434 "Medium" "382" 1 223 "Medium" "383" 0 1195 "Medium" "384" 0 2138 "Medium" "385" 0 758 "Medium" "386" 1 540 "Medium" "387" 0 1582 "Medium" "388" 0 854 "Medium" "389" 1 646 "Medium" "390" 1 1463 "Medium" "391" 1 1601 "Medium" "392" 0 1343 "Medium" "393" 1 449 "Medium" "394" 1 1094 "Medium" "395" 1 456 "Medium" "396" 1 498 "Medium" "397" 0 1078 "Medium" "398" 1 594 "Medium" "399" 0 770 "Medium" "400" 0 1852 "Medium" "401" 0 1192 "Medium" "402" 1 586 "Medium" "403" 0 733 "Medium" "404" 0 2233 "Medium" "405" 1 1387 "Medium" "406" 1 1337 "Medium" "407" 1 495 "Medium" "408" 0 1604 "Medium" "409" 0 1637 "Medium" "410" 1 772 "Medium" "411" 0 1820 "Medium" "412" 0 942 "Medium" "413" 0 1469 "Medium" "414" 1 2018 "Medium" "415" 0 1979 "Medium" "416" 1 1975 "Medium" "417" 0 1838 "Medium" "418" 0 1277 "Medium" "419" 0 1557 "Medium" "420" 0 2052 "Medium" "421" 1 529 "Medium" "422" 0 1730 "Medium" "423" 1 1164 "Medium" "424" 1 1502 "Medium" "425" 1 503 "Medium" "426" 0 1356 "Medium" "427" 1 1306 "Medium" "428" 0 2227 "Medium" "429" 0 623 "Medium" "430" 1 727 "Medium" "431" 1 1296 "Medium" "432" 0 1904 "Medium" "433" 0 1230 "Medium" "434" 0 1701 "Medium" "435" 0 168 "Medium" "436" 0 2128 "Medium" "437" 1 308 "Medium" "438" 0 918 "Medium" "439" 1 359 "Medium" "440" 1 893 "Medium" "441" 1 1036 "Medium" "442" 0 2205 "Medium" "443" 0 1231 "Medium" "444" 1 518 "Medium" "445" 0 663 "Medium" "446" 1 338 "Medium" "447" 1 891 "Medium" "448" 1 1280 "Medium" "449" 0 1846 "Medium" "450" 1 169 "Medium" "451" 1 285 "Medium" "452" 0 867 "Medium" "453" 0 1095 "Medium" "454" 1 1140 "Medium" "455" 0 1878 "Medium" "456" 0 888 "Medium" "457" 1 370 "Medium" "458" 1 550 "Medium" "459" 0 1443 "Poor" "460" 0 1472 "Poor" "461" 0 1735 "Poor" "462" 0 310 "Poor" "463" 0 1838 "Poor" "464" 0 721 "Poor" "465" 0 1152 "Poor" "466" 1 563 "Poor" "467" 1 769 "Poor" "468" 0 1331 "Poor" "469" 0 2467 "Poor" "470" 1 1108 "Poor" "471" 0 463 "Poor" "472" 1 288 "Poor" "473" 0 1729 "Poor" "474" 0 1232 "Poor" "475" 0 1185 "Poor" "476" 1 1493 "Poor" "477" 1 1814 "Poor" "478" 1 836 "Poor" "479" 0 1250 "Poor" "480" 0 1459 "Poor" "481" 1 867 "Poor" "482" 1 594 "Poor" "483" 0 1089 "Poor" "484" 1 573 "Poor" "485" 1 535 "Poor" "486" 0 1653 "Poor" "487" 1 2286 "Poor" "488" 1 805 "Poor" "489" 1 486 "Poor" "490" 1 956 "Poor" "491" 0 526 "Poor" "492" 1 1183 "Poor" "493" 1 504 "Poor" "494" 1 712 "Poor" "495" 0 798 "Poor" "496" 1 1589 "Poor" "497" 0 1603 "Poor" "498" 0 1570 "Poor" "499" 0 2059 "Poor" "500" 0 596 "Poor" "501" 1 272 "Poor" "502" 0 615 "Poor" "503" 1 275 "Poor" "504" 0 67 "Poor" "505" 0 857 "Poor" "506" 1 1162 "Poor" "507" 0 1666 "Poor" "508" 1 731 "Poor" "509" 1 530 "Poor" "510" 1 600 "Poor" "511" 1 632 "Poor" "512" 0 1855 "Poor" "513" 1 181 "Poor" "514" 1 446 "Poor" "515" 1 1806 "Poor" "516" 1 241 "Poor" "517" 0 1240 "Poor" "518" 1 177 "Poor" "519" 1 113 "Poor" "520" 0 1771 "Poor" "521" 0 657 "Poor" "522" 0 628 "Poor" "523" 1 547 "Poor" "524" 1 2456 "Poor" "525" 1 732 "Poor" "526" 0 1062 "Poor" "527" 1 1701 "Poor" "528" 0 29 "Poor" "529" 0 1645 "Poor" "530" 0 1357 "Poor" "531" 1 348 "Poor" "532" 1 1366 "Poor" "533" 0 828 "Poor" "534" 1 722 "Poor" "535" 0 1702 "Poor" "536" 1 742 "Poor" "537" 0 18 "Poor" "538" 1 370 "Poor" "539" 0 1093 "Poor" "540" 1 344 "Poor" "541" 0 859 "Poor" "542" 1 776 "Poor" "543" 0 841 "Poor" "544" 1 415 "Poor" "545" 1 336 "Poor" "546" 1 797 "Poor" "547" 1 1043 "Poor" "548" 1 338 "Poor" "549" 1 981 "Poor" "550" 0 1560 "Poor" "551" 1 281 "Poor" "552" 0 772 "Poor" "553" 1 698 "Poor" "554" 1 175 "Poor" "555" 0 1675 "Poor" "556" 1 238 "Poor" "557" 1 827 "Poor" "558" 0 1352 "Poor" "559" 1 629 "Poor" "560" 0 1502 "Poor" "561" 1 72 "Poor" "562" 0 488 "Poor" "563" 0 1177 "Poor" "564" 1 375 "Poor" "565" 1 1587 "Poor" "566" 1 491 "Poor" "567" 0 1722 "Poor" "568" 1 577 "Poor" "569" 0 650 "Poor" "570" 0 2024 "Poor" "571" 0 855 "Poor" "572" 1 648 "Poor" "573" 1 173 "Poor" "574" 0 1791 "Poor" "575" 1 1388 "Poor" "576" 1 1225 "Poor" "577" 0 42 "Poor" "578" 1 417 "Poor" "579" 0 779 "Poor" "580" 1 679 "Poor" "581" 0 974 "Poor" "582" 1 305 "Poor" "583" 0 1100 "Poor" "584" 1 730 "Poor" "585" 0 1090 "Poor" "586" 1 491 "Poor" "587" 1 249 "Poor" "588" 1 1170 "Poor" "589" 1 357 "Poor" "590" 1 1080 "Poor" "591" 1 500 "Poor" "592" 0 623 "Poor" "593" 1 819 "Poor" "594" 0 1977 "Poor" "595" 1 622 "Poor" "596" 0 740 "Poor" "597" 0 1826 "Poor" "598" 1 410 "Poor" "599" 1 579 "Poor" "600" 1 171 "Poor" "601" 1 293 "Poor" "602" 1 747 "Poor" "603" 1 377 "Poor" "604" 0 1854 "Poor" "605" 1 624 "Poor" "606" 1 790 "Poor" "607" 1 571 "Poor" "608" 1 358 "Poor" "609" 1 272 "Poor" "610" 1 536 "Poor" "611" 1 316 "Poor" "612" 0 1095 "Poor" "613" 0 973 "Poor" "614" 1 307 "Poor" "615" 1 227 "Poor" "616" 1 184 "Poor" "617" 1 251 "Poor" "618" 1 859 "Poor" "619" 0 15 "Poor" "620" 1 436 "Poor" "621" 0 1167 "Poor" "622" 1 1977 "Poor" "623" 1 120 "Poor" "624" 1 455 "Poor" "625" 0 751 "Poor" "626" 1 548 "Poor" "627" 1 754 "Poor" "628" 1 392 "Poor" "629" 0 1751 "Poor" "630" 0 186 "Poor" "631" 1 855 "Poor" "632" 1 525 "Poor" "633" 0 1981 "Poor" "634" 1 490 "Poor" "635" 1 595 "Poor" "636" 1 1730 "Poor" "637" 0 1856 "Poor" "638" 0 2014 "Poor" "639" 0 65 "Poor" "640" 0 1441 "Poor" "641" 1 460 "Poor" "642" 1 650 "Poor" "643" 1 98 "Poor" "644" 1 842 "Poor" "645" 1 160 "Poor" "646" 1 338 "Poor" "647" 0 2048 "Poor" "648" 1 286 "Poor" "649" 1 544 "Poor" "650" 1 1363 "Poor" "651" 0 16 "Poor" "652" 1 745 "Poor" "653" 1 883 "Poor" "654" 0 631 "Poor" "655" 1 359 "Poor" "656" 1 861 "Poor" "657" 1 537 "Poor" "658" 0 541 "Poor" "659" 1 859 "Poor" "660" 1 1449 "Poor" "661" 1 180 "Poor" "662" 0 546 "Poor" "663" 1 465 "Poor" "664" 1 426 "Poor" "665" 1 797 "Poor" "666" 1 945 "Poor" "667" 1 403 "Poor" "668" 1 1207 "Poor" "669" 0 675 "Poor" "670" 1 281 "Poor" "671" 1 233 "Poor" "672" 1 575 "Poor" "673" 1 624 "Poor" "674" 0 768 "Poor" "675" 1 515 "Poor" "676" 1 959 "Poor" "677" 1 360 "Poor" "678" 1 960 "Poor" "679" 1 379 "Poor" "680" 1 242 "Poor" "681" 1 195 "Poor" "682" 1 420 "Poor" "683" 1 448 "Poor" "684" 1 471 "Poor" "685" 1 343 "Poor" "686" 1 247 "Poor" flexsurv/data/bosms3.rda0000644000176200001440000001121513231112051014724 0ustar liggesusers‹åTTG¸Ç—Ý¥ƒtD5ö –½c=ö¨‰E,1€½a‹%v±bì½ûÔØ{ר[ìØE¥(¢¼{ï~ß8îȹ¬ì²øÞžóç¿;;íÎÌýf~ ‡mQ§my»¶v*•J­ÒXˆ?5âS­Züa¡ÒªlE·êYA¥Ò¸‰¯lD9ŠofÈ9>JÍHÃHËÈdÅÈš‘ È–‘#{FŒåaärfäreäÆÈäÁÈ”äÅÈäÊÇÈ”ŸQF~ FŒ 2**ÌèFE@EcTœQ PIF¥•fT†QYзŒÊ1*Ϩ¨"£@F•UfTT•ÑwŒª1úTTƒ‘Àˆ0ª ªªÍ¨£ºŒê1úQ}PF A@5aÔô#£fŒšƒZ0j jj jÃè'Fmµµgô3èF@uu1êêÊ(Ô ¨;£Œz2êÅèWP(( Ôêú ŠEú‚ú1êÀh hh0£! ¡ aŒ†ƒ¢aô;h,hhFûA@A‡@‡att tttt t”G:ñ*ùNTŸ¾6vº¹Ë›:=·ƒ¹Ëe–ÏTåÿ¿õ+·´÷õ:¾öv²Û¯œênéwnWcçË-õ›:ýkó¬^GVó}-ëÃ\õæ–ñ74Ý\qÈÜãgêöÍ]>§úc¬ôÜzç–ë5w{J®þÇö‰ž›*ÝÜåsËõ™«œ.—[æ×ÜåsËzþÚê5÷u|íí䶸bîò¦¾ŽœŠŸ_š/·Ôoîû+·½Î-óœÓý2W½_ÚŽ¹ïƒœ*oèksϧ¹Ç+·ÅýÜ_s[\Í-ëÓLã¢þWé=ˆKÉw^!ÿqéVÞæ¯í[I?]ع¸æ¸áSnrùUž_þ½~:Wþ‰Ø˜uÙB\ú‘µ^µÿË^©<Ѹ¾|dàq>¬¬´¦£_¯Õå_Yrù…7âÕ¦$pé3Éÿ°a¡ùnÖTêŸð ºv—¶W”ò‘<;OŒZ—nñùùàÚÉdÛUiW¡D5CË ×¼]ªöi ˜ïÒõ4»[¸vícfŒŸ¸5@±nM«ÕãxWïÆ uÚÆ|Çå·Ì⺱xs¥±ý³z\½Û󜪸n‰æØwí:ØÛqå_çk½Á!/w]Dmµrj¿Jõ Oêlˆël9KO¯YæøY§#\½§<*l<½ŠKwò“.$L©=âx#z~ÆÅo¸ö•è4§ù%.¿‹Å‹°âwÿUªW8!…‹À·\úÅÔME:­yÈ¥¿nÙýIɨ߹ölò^úcP@#¥öˆ{ñöÕ[¾Ä¥ÛþÝJš®½Ô5’¦óWª—+wÓÖwÊú͹vÜ2OÒ#œK·z]ëÏ%—ƒÛyÉxX~~¾…g™ÄamǘýÁ/æf5?—oÿ€I3{^žcHßårñ·— ÏÛ”ëêôÊg^÷6*•'V1U/œ|Â¥kÏ*¿de°bû©RØé¿.Ëάž„Aƒ-flëÁ¥?Ë·¡Û™ûϸþYHѪF©^b(MäÅ|Ú¾}®Þ9¨ØÏ«ƒ.íh=²œR>®~¿ $`éxÅúS¤Û°áCëâ \¹ãµk¡ÝU¨ŠàÁåÿ°*¥zQ7o.¿¦ìåÄÖŸû[ض1"±XCû•ÛDµëʲƒk]•ò 7êO8ºå·ï)–KëUöÇÎåû\.VÜ¥ýò)æÛ7ñnz CëW¬7‹çÀl·sµIêOá î*æ»ñîmÃFm‡\ÿåIÝ'GmÞÉ¥/ÿüú%Öµ¯Tø´R½ÄåÝo;Š-?ÇÕû8¸»õý©6Ÿ)òiyËê´iáu”ò)=2»®=çÏŸÛ²Ý~úÓnQ¥Š&)æË¨¤wÞ!6Öê =WÜ/ˆí™²CªÍèÀÕ{ëÄú¶«pû5—/ñ^›ƒ×^(æ»ñùý…Ë—2`MñHƥϩ2¢YØO|û[­¸ùz>—˜?sÖ&.=I^Å•ú¡ØÏWõRœm®˜Ýz n÷‚Cíôa7{séó?ŽŽšf?!Úðߤk/ÃGšèXc·—…‡î÷ÿÀûÔ í=_¹\|5ä}êÿ0 y¨ëŒrÎðGÞ§^¬úºeß{¿"ß$íÖŒ(49زïºen'ŒóÔ™8¶îÔ@âßBZ°o¨ïS°ßÓë—÷©ð*S«Ú 7ä}êÖNÈû褰³tPqDÞG'ùw­:t´4ò>:qž[>¿'¹LŠ´ÌS®çÊ=èÈûÔëÎM$ÀæÕÖ&§‡PÞ§^P J-Æ.DÞ§®ß¸Û"ëñB|›§Ò•R×Ç‚nõj/>žì0m¾x¤ûèí=ç–:ð>õ‚Ž«¯þn?ÔÝ'Ôvw¨ü°Ã^tä}ê÷ nZ›pv ÐcÑ‘÷©§Øm¬çy¬;ò>uå‹_'kŠ’»6SZ½[HxŸz€îœˆ¼N\nÎ}8aÎ5ä}êvžn"av‚›û&èÈûÔ ¹îÛ퉼Nœjþ¼´Ì›UÄï` iĨïS·Ñq:ò>:ñ>|÷¶—+÷©û©îÖ0´ž§¨ï£ç¾ûnÿÜ¿ò>:qþ}º8â‰ÈûÔ½¥Õè…¼OÝý~×Ò6ßÿ ¼lFÿÜp:ò>u·1/HÓhä}t’_\äbËÈûÔ]ýb“cû4'¾×fH'rtä}ê8.ÀûÔïI«2`ò>õ4i6CZ!ïS÷غbTõ#ˆÏó"–o Þ¡¼OÝG^fÈûÔó½+[ºß@ÞG'¾íå1ñÞWâEÒn-º¶cC•Ä‘xŸúû»¾â³ ÈûÔ½BZ‰¤v yŸº×íû¶ýêõ!ÚEÏï9ì†.Ü‘°kÜZêÀûÔÓ{ÛßòÚyŸºc_ùÀ†üŽN¼ŸV™}ª–ò>u§5V7KzÊåÏ+îöSG“¼3åÀ‡Ž¼Oý‘n?$yFn¯ßáyKêžâ"h²p:ò>:ñlP£b厧‘÷©[G÷)QcñxgÕôúßÔ÷©{Å„¬/y¶:ò>uOévŠM!îïä@‚޼ŽëŸx÷Y£ íGÝ]ºê†=ø»R#VFGÞG'Z9° hOid÷©»%Ô×VœæIÜ`EÞ§î*MÓ‰Û49 QÞ§î6xÜ7×½EïÒxßO'Z£#ïS$…½Nk‰ë“¯n~L]ý[¹Y£ ¢¼OÝEÜ´ªGŸ$. lAGÞG'V~ߎïtm?q†øFæÛç_ÇûèÄbE›.çþƒ¼OÝYÈûèÄ]ûøÃœÂ©ÈûÔÅU#n•ÈûèÄQœìFcÚ·€ób¤ Žq=O]Û%â[Ô¥î6I¥nÿÂ-ÒO³þ£‹Á²Â­•Ômc”Z?f ºðnÒº•†B'v-å@JÝZ<íV•@ÝJ<õÇ=šMxŸº•¦hè¹yˆå½‘Ä3:ò>:±~wª÷³ˆÙD+…ÅèýÓuƒ¼N4ÒñÀg1ÑHǰiÉÔnï[µqUtýý‰¨aŸW• èÈûÔßK§„þÑBºŒ#%¨§êâðG/üöœ¸T¨§œh%FĽÔõϸ$‰³²îCÒGÿeSËj§¨'ž|ÒöÇGG¨'èöyêñO6K;1uà}tbÑöÊ€ÇJ qçÑ÷©?—N –áÂS8Qo~©Ü¡Néï£÷º]ÛÅ.(œLý¼®]ä}ê¾''/šì“N4v†ŸÜ5”:ð>õ¼âªq\} yø4-RþܨÃÄýÐDi§£¼OÝóùõÈ;û·ežÛ¸ð,u/ù˜ê„.Äu¹Ø|Ð`5uýëH–îö^jâtm¿}¥kU©ïSwæ¹vKÛK\†Öß¾Ø}uçñGïQ·…ý ÝÙr^¨ïî èÈûèÄIŠFÅÇâ~G÷=à}tâ¸Òöß÷å"ïS·ß_ŵª_b ÂåNOêÀûÔí`Þ§þ´GÍû•š¯ vÒ²µÛˆŽ¼Nß·…üàÈûèÄÖ[^XÄFšö!¯Ð‘÷щsò¶™ñÝw!ï£uƒ„E;“; ï£ËÎKO>Ûy8x¿¼¤}œ¼N¬`Ÿ·ÝvàÔñE?º» hÔ5±µûÆý³yŸú;A ÄÉÂ;9œÚQ?!5ûa:QKQ~hêzq‡XÈ·—-ºª›êÀûÔß<. |‘÷©?ÈŸ<þŸ©ÈûÔÓG÷¿QäQ ¢’^y;¡ /Å >üétêqR-ZPu8tIÓuèÈûÔÝtÜ€¼N\öO;žö¼ˆð¦_êm‹ýÓщV¾¼Ô52^Ö@’e ,Iýõ÷i•wŒìH=ñŠ´a_§·ÜWºsÑ3åÏæÒ†=ãížø—M"Žêó¿ðA:eZÖâø¿°Ë˜M×Ï|«Èÿ°¿pqÿVxʬ[—(ò¿—tLÃñ¿»<Öÿß–%½8þíÙèŽÇÿù|þõC Çÿö÷$«Èÿºqº«Èÿž ÚÔë¾>ÿ ÿÉûMEþ÷—1¬¸Áüï£ãƒù_7žGù?îW=þ2:ïß»´½"ÿ;Äž´qú5”çÿ9òF«ÏÿÂ=1hµ¯ÞJ‘ÿ=BŠÎQPŸÿ…§æ¹8¬µÿ ÷äzêpüï{NTÿ{¼Ÿ¨Ú6Z‘ÿínHÈšÿ«ås–ZŸÿ…WiÁ3bkÐçá¼Nk)ñ¿Ô\Žÿ}¤éˆ™©ÏÿÂù;=æÍ~ë¯ÈÿxÎÒçÿ³ÒÝSæ$ÇÿºómŽÿ5rÿ¶+ñ¿&ï›qúü/ÜÒ£÷ž¿ªpüïñjlį³JÌÿÉ·.=ü66¯>ÿ òçK9þ·“nïí‹ æÿDi™W½¨ÏÿÂK™“¼8ž÷”NÍÜõù_HžûÇÅk1\~wùsÅqŠü8ÒPþwu‘Š>ÿ ÏäpZJ‘ÿí­Ë}~:Çÿ6#uM‰ÿŽí uGvù_H–²}8Êñ¿ƒŽo8þ·ú»¨ðúDq%þÇyQäõHÍ-•ùÿ’îsmCùŸÎ‡ÿ ¯¥]6d½¡ü/$Éü>XŸÿ…Ò,·mÊñ¿ÍÖKâÊ Ñç!Mþ¸Ý™ãøœì+çá¡|‰WäíæÒ'܆ò?ì/s å!MÚ& Ç(ò:ÄGcó?îã&æ!ýv™y‰ëï*ò¿n2˜ÿ]aœô¹ùŒ¸ª]êrüïR¼tP’Í,%þÞxl¦³?Çÿyƒä’"ÿë~1?ûüŸ*ð¿°K÷ç‘Fç écWÉJü/¼Ó}~£ÏÿÀñÑJüçyŽÿ//(ñ¿ ÆC‰ÿ-¥e[w"ÿÃç²<ÿç•7}þÞ:,Ø""Çÿ–rØh©ÏÿBšŒ ÞÙæÿÇ•ÿXž¾fGŽó?Æ}þ$ÝvµßsüŸ ×glþ×Ha+ñ&Çÿš×ò/ÌÅÿÌÿÐý=Bü§žÝtýÇ—–7v¿rª™ÕoªqPzd5ß—–3öúÈn½æZ·¦Z95Jõd5Ÿ±ÇÍØýPªßTónìv ÇÌÆŽ+¦Þ”Ò³úþ—öÃØãjªy2U³Z.§âÑ—îo_ú0õ>lìyPÊoês„¹êUj'»÷cVËåô9$«å3{û|£TVß7ö¾”Ýò¦j'«í+Ž_§ ½Ï oc]¯ÒãëÙ¿4ìwáwþò<»ï£½ì”ùÒ÷Œq½9Y××Ö†©Ëk­{šâ^0Æ7ÅÛsòžÿ’¾˜²ÿ9½&5&¦è·±÷cα1ï#Ý_Ÿ~K`h·~ÝB¥oÚr–kÕ¥Z”Ã'åñI½‚–]Cƒ"±­-$¨kTx„øìƒ~öÞAaÝ0» $ª{Ã3mHDx¦F…cu­"£‚"¢° ñUx|1°[PD$æ³EõÅW–QA½#õÚ·ï_û }á :Zü‘‘ñÁB¿£PZ-}¡íðxñ§Êz±¾ã‰M?è’é\Ât½F4Á=ð*ú¥‹Ÿd±³@ÕnOyв8‹Ú ȪÎdüå ÄIÔèç¶ ‹ Š ‚WvÒó2!bg±ÜÿZCh#žrflexsurv/data/bosms4.rda0000644000176200001440000001345013231112051014730 0ustar liggesusers‹ÝXÉÖ†‡™aHƒF0`Z³˜Ý.sÎa kÀ¬‹âf]QW]]³®×œf W]#机æPADPn‡ª3ZÝý7“€ýçy>ß™éêªêîª:§>x°uÝåut*•J­ÒرÿjØ·Z5ûJ«rbéÐ#$l`XE•Jc`?9²re‹­åKˆ¥–æi%då ¡rÄr’NBÎr‘«„Ü$䎥—VN $ä‰å%!o¬\X>”|±rcå‘P^¬|Ê/¡X~ò—PA Â*,¡"ß(«¨„ŠI¨¸„J`•”Ð*%¡Ò”Ê`••P9 •§T«¢„)U¢TYBU°ªJ¨š„ªK¨VM¬%Ä|#D©Vm¬:ª+¡zߨ¾„H¨!V# 5Æj‚ÕTBÍ$Ô«…„ZJ¨Vk µÁj‹Õ«½„~’P uÄêD©3ÖÏ”º`u•P7¬îXAêÕóõÂêÕ‡R_ õ“P øF¿`c Ä„‚5ëW¬P¬0¬p¬!XC%4 k¸„F`Ä%¡ÑXc°~“ÐX¬Jã°ÆcMÀúk"¥IX“±þÀš‚5ëOJÓ°¦Sš5k¥Ùš#¡¹Xó(ý%¡ùXÿ‘Ь…X‹°SZ‚µTB˰–c­ÀZ‰µŠÒj¬5”ÖJhÖzJ‘”6`m¤´ k3¥-X[%´MBQ”¶Kh‡„vbíÂú/Ön íÁÚ‹õ7Ö>¬ýX°R:Dé0¥h¬#XG±ŽaÿF'$tëÖi¬3Xg±ÎaÇrãrS&NÅ¿‘Š¢ã÷ÇM.gáù¶îŸÍ¯?›—Ë®÷ÍZç)Õcéùÿ¶û“múñÿõºl\.«ûi«ö-=žÝŸ£­ç }¾ÍÚ·r?ÿ-q"»¯'¶ºÙuþÐçÙº¼­Ç‘¹ñÑVë¦ÕËYiüe5‘Šb6]—2ë:l}3ûyÚºJçÓÇ3{Ý´V½¶Š7YÕ[sûmj½Y=èò¶ÞŸX»½¬Z¯m=^-=nqÿ2ù¹˜JöK¡úïûŸ Í-géù¶îŸ­ëÏîå2û¼Ìî—R=–žoíó²Ký¶î‡µëË.×eërYÝO[µoéq[÷ÏÚý0·žŒžo«ö3+îg·8‘UýÌêû`ë~[ëúl]>£çY«kµgn2k=ø·}Îêù˜ÕõXg²º~KÛ³vœU:ni9[µo­ó,íofõÃÚý²V¿-Í£³º¼µËÙº=S?gÖx4µÖ>né猶k«ö>«°_ª¢^È£dª]Ÿ€¹z4=üÓQ9ß¿òÕÉ[ èþñLÑ““bér̾Uµþ;ó®è|UÔò SÊæý}Ø€ç?ÒåDõ½d;•£L!`ÂÏÛÛTw9'*wb_í÷þã ¼4ù¯ùc³RýHc8ãĈÓF.êúiXÀßâr(²Ò¦®>@÷Ͻæ>©3T܇¿³? <·­÷…ǯ‹Ê%²w109žyÆõÝßÒ°BT0¥þÒŽSžÿ".×8ÿ˜wwW<ïúíϺ{þÃ7Ñœ.uÒDýs^6wÊ´]þ@—S õë¬V¼.Ãf×îw:è5¾ìîêU׉úuµnûÀeÕ€‡n^]æ’<@TŸ½0o€Ž£ÛS©ìóM¼ÙÔùu} ºÓ±çìZ"êGúž<ã§Q¬OsªZÇ.Î: Ö‹ï¨¾yÚmsÉåOˆÔ«#{N:ôUTŸÚ!rVOìýùPãµîJý`^ÖÝÛÝ~1ðUõ>ãZ[&­VéÓÝOÉ-OggŠúáuΫBÔù À\·:–-³!—¨œ{îF $Tê'r½±$ýZ ÌÖþkõ †ÐäöŸâûMø\f}²Çã•Щ‹³SZÌ\Q}¯eâ¾¶ë²è^o¹cŸ·!Etä|`»úÅçQ¼ŽèáÓçõ¿±xŽ_ò›r/øzâî*’«9!òì|E×~f;Ñõ¨ÎG¾öy´›õr»´(Õ—U½zö¥‘)÷í¢g‹ó,íÅcåWGöºüvw®ø.Åþ§pafØB¤‹;êñ@1þ+Ö?r”ÝÜÝý€dÖ÷×y¸Dç50>¤.;ãÚŠ®ÏŽ‹V5@cÝÆ:5­C¢óœ¹xP±¼vˆËà[Ž*^ç­‘×÷¶_xûÝu틯 •εëR€K<§]Ë7Š_¹/I±ýdnYk|ÕÔö˜¸ü|@'õÇN»¿PÆËHvT·M].ªçë†äšE ¾„ÈNæùiÊÜøÐ®ØH Vˆ¿¢úvŒ ýP¬™©×“Ý^HµÿæÚ£›síÖ·ï1b‘h@¿˜; §žÜyª0é@ÙŸÙ-©í3Ÿ”iѽü0BdçŸúëÞâ&×óDXOÏ3ö|˜±Ó¦µ¶#4µ]Åú©}›µëµw«YÊO!K*–¿“ú©q“cMnïÆô¾3Âwì#_'< Þ7ÒåPŽÚGÇV*|è4sÜÍôƒ”ÚGìh)¶î2¡¨ý½úæx<ˑٷã_ŠõÚÏUžR×ÈËúl-yQé<¥}?û¡ö5FòiÌXKû!êWÚ«Þá?M T,ŸÎ¹ÝŠŠúí˜CݠЛ-Fº,݉"óHät¡Ìèês»ŠÚ½wfk‡ K'*öóãöŽGcÞ*–¿ƒã;¦bùä%#j±[ #×Gù²[)Q¹…Âþ øPXoÅýÝ5rýÝKEÇc…<šPvÿ˜ÀÛâÀO‚Ï t=Š×û¾~²¾ÉŽŠÀøëå¸ ÇÒzMîÇUv°©#¡èø¼ïÀ?‰çáIÛÄq¤ ù•ËHDí¦çæÖB¤Ós‰ýMk·Ÿ—ðû¥2þ(°Ð¡+•ËÅU—óG^ܪÞà7â"U`Ý út?9X¬æ–µ5|ߣ" 4ã Í!”óG ‘c!çž;u“óGO¦M®7+ùµæ&V"PÆú;ðs‰#rþ(0¿OéÚÕßäüQàÓ-ù¹ TÎÖs ¯«œ?Jˆòíßp6èd)9”é•Ïçn €6nåúG$”óG/„¼ù;¾ßÕìüh Œ? ,È…Ö“—Ëù£@í’¦½Wæ˜ÂĵÅÝi Œ?Jˆ ê×Yu:*Øeöv+b¤°Rþ(*èºñÖ$çÙF ëÐÿ@—ÊϺ"”óG nßq>òÇû7L9˜¬‹ªï}ª¯œ? ôZ·êc’¦(òö5@è/ì‡äüQBäqwѳ© cäüQ Žs5º3ñ½\[ùG„rþ(0PÎÃÛ#¼‰?JˆÜku^S:q*p´5W(ã±_)ãýÞŒ=°ûÝz9X@õ°áÓ1CEû”釾ßyX[9”é'ÍaGÈ9èËÍâ@ÚEž{–r¬Ñ€y‡Ç¦œ? 4Yö5óGë»h°W@û£(g'IO·æ™ËíŒ åüQ yN”?Ê<âf«ÿZ å2Ÿ¹QÙ§-¡œ? ôÚµ~BÍ;ãPî7ö‰eüQ`n~Êù£@7fPe{Ï;rþ(0o'~#‹|—x›p@KÈ|Þ»­Ê‡ñFÊø£À/ó²G¶èÓ§í—Á1´?Š|î?vZ0P»òÅ•ƒÇ „Ì eüQ`Ú ]ñ½åüQ ë~ƒDû›È÷U•çj»Ëù£@÷MO7¶Lx%ç¢\ì]‰JùåšÇFB9ˆ}äÆ>í.oÚ½ÙÁÜlùJB9èÝèÇŠ•»ž—óG9"ýq?òzëÐüö  Œ? ôá·—5åüQ 7·Œ=IFž©|À ”óGdñ¼I<èÉÝÕÆéFöªöø… åüQB².Ëù£„È#›{rþ(ÐßP[q¶72༓òGQNn˜ü3h˜Í å"è?ŠÜöý†|zÛŽPÎ>çÂ_·Í(g‹é®·v¼ª-7ÿ÷ü…€2þ(ЃMºjFœE^œa²“ø£„È¡@YnEAzÇ€x|êÉxýÞ%þ‘Òþ(P/ rþ(Г» …SäüQ žýlJHüQBäÊÊ&; ƒÿ6sð’<€Ð­žÓjöЕ»Ìf)@ç·†°š­F²A°Â½H Ó“¥?l8‘Iå¢ào‘® 9Ø]l… ñ@Ç£1±ÏeüQ ƒ¦hðånÈþÑø§ì^‰PÎ%D9RÏ zºi¹°±ÔÈïÇ­œ? ÔpipîUHÃm—f']ŸíRµiUB9ÖG5ÎcU%¸ÄØ…öG™/\V<,˜ÆÛ%€)Bü4²ð§ËìP&ŸiËF¤C@zßFåuLû”·|M0òûýóáìË-žŸÆ y(0Ž_–{)Ùu¸9üE“™X )”yÃe¯ö!ÀWx_lÅ"@ÊEžõzv|²´¡œ? ¼‚û'ãóž±rFî4¤¾/äìþ1@ÊE¹ØÑêº1†PÎænPþò„ãÈóØ4.³Êø£@ï7·Ã†ïŒ kÿºµü"Їß>º2±=®µ9J ¤ïG¿MQ"w6˪S(ã=˜Å9ÙTyŒi¸g•ç þ8sêíÉG@'œ¯êíç=0•öG‘;·Ÿl¤Ç@>Cù£È5ÒéÒ—ò2þ(Ð9ºJΪºˆâ8å"η0i”yÕ¯ÖãJ­Ö"7ÍtQ„´?JGNø|v¡ýQdý L9èâËôt9”9àüÐi÷‘s§WV4Ò“7’€š'u†Äþ}€PΦ2\ KbRùp¥žÁy&RsQtL# µ.#;¡>B&E@Êe±ŸCHù£Ì ÿ|ISþž¤üQ&Mð鑊ûÖ×yÇÓ±¯æc¹Z»µÆM8¼ºùBâ Â~_ÎzDÏ>ýùM“8”Kœç"-5¼½õ#!“ÄÛJ%k|®¼w|Wà‡›\Âu»./·"Êù¥Lj¾%W“í%Dîžœ‘Ö‰öK™„Ýý¼nOŒ85OïGû¥ÌWn—d_[ä—z²‹N¦Ñ@·o¶BÑ/½’<ÿÞõç@²ŽÑqwçrÎȬ Œ™üéËÞ»žJ~)ö•ü‘%G  ýR&%Œ H‘ ??£Dñn#¾„ÿðqvÈ/uo]êåÄ’ !ù¥o'õnÐò”!Ê5@Æn¥E~i~œ«‘3o‡èýR!NµnåÓðÁJ~)~Þфț‹²Á«i¿”Ù>qûí e"€·ðüTòKß»¶©\ „(—þŽßk²_š[ð+€¦ú¥;Ø Ö+úp¿¿¹¬è—Îçï'âý'í—2Gô[¼à“ð ¿Ïh¯ä—2÷ù}Ž!rrûÓoÀG‘_º¯˜È#ˆO(h¿”¹Éï#¼VI¥ä—2øx‡ç²D¾ö¡ýRæë¹Å'®ýÖNÉ/eVóó…ø©åÕñx|a"Ÿ‰%ls‰öK™õüóŠ&D^ÜO1J¼SôK—ñó ‚é–p ik‘_*ÄŸB¤ÆqòK™‡=xø€ßëi¿”Iäçsm ‚_Š}"=ð=Ÿ¯ù¥TžŠ¼ÏV|}¾EÚ/e®àqˆ©è—^âmÕæÀW1¼Á'òK/r«Té³@Ú/ö™Ui¿”¹Â?çB¼¾ÜUòK™Ëü<@@!ø™öKéõ“yÌûëz‘_ªâ-0›Œçßd²_*´öÚ/eâyyÈ/ÕqËðž•@SýRaïŒo¶|Å–«>´_ÊÜåóŸ–@2~i¿Ô›Ë‚[zÒ~)³–cÑÀD6Êø(:Ÿ‰y´íðïkv"®j*ú¥ÿå×/P˜WÎ&û¥‚ï3ž¹ã å—2{ù¼B|q(»SÙ¬ä—âò~„x²öK™w|þ„‘ ï üR&õÅpv'VøïÓ,õK©øÁ$^æº "¿ô ßG"à‰üR5w9U¯2x®ƒ’_Ê$-úóZŒË2BE¿T=^sçN#•üR:î\åãýaSýRæ¿.]>g õÎ=\É/e>ö¿Á9¦ú¥LŸ7Ž"¤ýRѺöµôâ[T£ýR¼>Ö Dø>S~)sÏÃ?uæ6GE~© þùË¿Ü/]ï#ì'+ù¥qØ$Láó£ö¦ú¥x ^Ù1½ÚNÃi“ýÒ=8ï&LáóEE¿4 Ï{ •ýR*¿´µ_ʤÝç&€‘J~©¯ƒ€¦ú¥9…ûH(ò©ßg`öóyœí—2Wq>‚‰ôê »ÝºÖSòKaŸNHù¥ÌWî·„z¬#Dî¼ïSAÉ/í7Î8Èi¹_*ü܈PÉ/­od?jm¿ÔŽû±ž×  ‚_ʤb“öKEý¾ÇÙ/—UòKñõ=Ò~é ì`*ú¥$¿ TòKí¹iVï PÉ/¥Ç ñ“h¿ô¿hLÃ>(å—2Ÿx¹òK™Ï‚ÏŒsì_°dîË"¿TØ—¼ ó£€Å~é>ÿ|Ìûqw2Ý/¥×UÚ/~Oâ öKS„ë'´º_ªá–÷wi¿”IäÇí 0Nc³Ê/ýæï™ ¿ÿ*óÙÒr=Ÿ~Y»æž—Ùå”Î7·]sûan{¶~.J¯Œ–Ëèùæ¶›ÙóÂÖýø·Œ÷ì2¾Í-—Yí[ë{s¯ËÔãÖš‡-g­uÉVñT©=k·ŸÑrÖ^ÏL=/«Æ‰¹çÙ:dôxFëµõz¬TÎÔï3Z¿­æµ¹ígôA=ÃCBÙw_é⃂ö&Åñ—êþ½ð;mŸÐäÛðR]Û°ð ÐpRû)d0ù0¢wPh)Ç B>Ù‡‡ £Úw VšôÁ•k%‚ý'=ýKgº£ølµ×Ù±q쿪«äHöJåÈÿµ ú^øÚø#x~_Žêœ¦Wÿ¤ÿxhh©"Žl|j.§çËeäa›T–kW›ŽÏQË–å±ùçm·¤1 ôü?a²첸-—g-–·¯}¶,Z–ï-®·´ö‹·ý¼úKk¿¬úËÃÃì´¼íê{Y¾9P,.KgIõ–Ç–f÷¸2¯-ïú4öåñóåù]Òµ¤:iü'cüosIãÈÞËò‰l2¯/ëýçë@}.ï<—ôn »,é ùkå«QT]×›Hk¿‡üö¨óWün…z“ÐïJ«ûúÕ_ãwÜ¿€çסÞÜŸ~жz î7ÆýSèïS´ÿ#Ê»¡ì4ûÑf4꼊v‡âþçxÊ'âÙÞÞVµ×qgÆC³›ÕOòÕÓÐlQG¥Ñv,=Žç¡®AÓq¿*Ún½/àºõw@½ýñî”Q'êÃïöhsž¡¿úXÔûîÿŽz„uªÎÅ5ïwÄ•D½ Ñnmüb­«?CcLÞÅœ1ŸÒxvžÝ†_‹ç˜C6»ǼM’“q}åsÐ÷õÙ¨³ .´M`»Æ[ýÊè§{”šQ¾×$¿¾eúIÜü°^Õ« µ¯@¿‚µ¯í‡zý^§ô$®ß£ {ÖaƒÚ[~ Êo‚õ¬\/¢üêÁÞ¥kñî5Œ«ôô°¦µ­ýøK°qå ÔÇ8“ïߥóÑæu?þd-ž!N"Ø´&ðûg<Çxãm¡½&ž‚úðï’[¬iõ´q¸AŸe¬yù‡xûֿ浪 ž³á_ðÛãß9ûF°w ~^:ÁÛÒ­{Y£úŒC_áâºìbb ôsúS(»X?í†yÕK1ž×o•·<_b¬cmKÏ­2XPÆ»|¨Íä7x¨Ý„{Ì¿ºÀÏ!>ÕÛ·„˜ñ.íý¢z+Êgâ#ãvô…~“Í‚}`ƒsŠÁ5Ñ÷Yvöyã)y_);½Pq^=ep­|­ÓøÊÀ»Û} ÕÀ•ÒÁøEó¨Ã¿ËO£ò~S…¯&`Aœ,aµéÞŸëX£Ò,¿æ ;xÛEè« ›Õ÷ñ|OF¢=TBL&.þGyþÄx¦ÆâBŸeøi²+ê&ÐØ$Œ~–¼†þÀƒÊ7qÁ'ã©èëV…¿—ʨ ’ÛoÀ†ÚÛ¸îÅtËÎΈ§zÙ3½ŠØ)Ÿíc)î÷L¬€§uð*ëEï5ì1å§<"7×ýz;?ŠÇ/b§<ϱ†eð2©âºïÜø¿ã}³†ùD×y-aO)ÃÊX³lQú6žOðl®\ám[óãÔ;yÆï™‰Œ²OFü6 ^¾C/^Íûxùi\`Måyƒ%çÏo{þ:MgOLJÌKºÐûokZ¿ã÷üz&CPçRÜ#Ö¬E l©"&ªàb1P„çN×qsÝwªÍ½Ï–Ïô{QâöçV\`N‚¹ÕÜþâxñ'”Ñäö¿—¼ÿFŽÍðµ{k{$k†=¾XþB°ùÊ~ß©`߉ÁÝŠ³Ù&~ÿ¯^_Œ=jõ6t±;ÖaŸ)a¯,±›Ö¬äøÐÖÅíÿˆßx¸÷›Äí·øý*r6ùŠßË]Žâü#B9žŒö¿Ä/b¨*}9þ'Φ˜{mr`Ù¨8¬"¯¨€/e°1B\ÄX›’³ß5žo±c |.yÅï±®¿ù@û .÷âw¦÷Åôjn<ÊÇ­ãQŒK`û1¯íóžØ± Mà³%ÇaÌ#>,¬—›ï&Þ÷Jˆá}FnïAüGó¼Í"p0 Êçx½Èù¦ËÕ¦z–$ˆÍø ¿ŸF÷„ù"Ç«!Þb·gÝÇUÍúœ%ö¿'½"°¥„8Ž.óëPwÜ^Åï´Ü8§ X–â ûj‚uJVöc¬ Ž"—8<ã÷=·¶nŽ‘”ïòûš[Û}%&Ø#òŸ[K`Uü ü"ÎbÄg4Ýç$Ž…±{†¹Å˜Wäò²üûëçÍ{W\+®×ÿ¸V\+®ÿ©«´âZq­¸þW®û? ªcÇ7fìÄ(˲ñÖ?-o=~ü¡yÇzıãò7;?a±>*‡Œ=1ï¢èø°Ñ‡ãªF qሗÜl›Ž˜¼ÎV/\j[¶ôÑ~çÿÞ¶m{å³G¨_ÙóÜÈÎ[`+ÝO7Ï­læýü‚®—þ°®™©w|eµÍw·•»ýÇ÷ÿù#]²Ò>'6õñC7_ifoê¼jÛ;¿uin[œÌÈm㣞2ýÆÛæqn`/Úèì­Öl9ã/fÑÕ}ß_gî¡fÚê×õL²Rñ¾þµŸÜ´iyŠ:ñ¯~rü&vdò”|ïþ mtàÁï^õÃÏìÐìg#; ƒÛ›¯Ú/üæ´cÆiÛC»öýÎÿÝŸþú˜YxüW.yêýclÛÎißcö¶¶³œMÔ¼}㟺Þc¶åY¶óŒæç{¾qª\?òâÛíìð…½7øÒìð ¾ôû »>d;þÔºÉ.û¾e[_{ç¾^h›Vûì­wjWÊÌ)ìÊkþÕU1ýºh‡‰UóÑ—An± Î ÃgجÛÓ¯·Áµ¹‡\$¾{µmÛó†ç?˜õÛyùÎ×î¶^‡zÐc.úo=ó†U¾ˆõüm6p[Á¤·Ûë@;lû?Ÿ°Ç´m¹‰>l‡®zÎ#ï|:ÇŸ=ÿ³êÏlëu÷nQ?ò×¶}½ŽÆnv¹mÞæÓ-ÇÿàÚôõãÎh±?ûÎÑ^W·MX½©¯ïa£›¦ûö™oØÎ½œO·É¬ï;à–½lÛWÇÂòïÛ®3×?i­o_a;6-O~å¹§mƒ[®ר.¨BÒ¶<õ¾[©Ü¯lgf®µì°!µÒ©÷¿i.ÈÜa„yêzð„vØ;®ce»þö½½>é¥b­™­j›wsßÜvy¿³•³2GµõÞ‘èñ4[Ù,3˜myÛh]óaÿ/…Il‡sÛgî´1¼ 6÷{¿2³]³S0 ²áïd›‚_×jwÙÎl˜GÛ¦ñ™£˜‡d±M·ºßȶb¶WÜl;š³m×e.@Íì`϶á3‚ËÛZfcÞ ëÐæã˶†þÛƒ^Ç5Y¶~º[¨oÚÎWƒ_ËÚvãakÛŠ Ýñ çÙ¡[en£0ÿ;Í|®f+™;b[÷Ýð‚'ÆÜf‡¿BlÜ=ìl…82øÒ)?=èqóÖ0x?¶•°ŽÁOÌ5ï¶]ñÍF}ÙÌMoŸ‰¢mwjCj¶ÍÇ¡m™÷ø­k¿qŸm¼ëÁ­á¶9ÄCî'M¹Ž¿b›œ÷ì±¥™é(¹ã:vD¨?Q ÙÚ˜¿Ì¹`ž þÑ–…÷AfvˆïæÖØ’¶5îf6ÃÖïØÁ‡;G?Ù6a•n}yœm¿* d»Ò¿ÏÇVv{Ý–ït z˜mq·¯ýÖ«ü=ìc;®~}®Õ´sß1sŸ{Ú‘ÏÍÂ`3%sÇÔF™v¶Yó½¶åÜÞnÙ1ä|Ÿè¼«ø86×ÀiGŸ|¶mó ö·¥Þ¿_ÝöÛœ™¥n.ÈbúCœæü.ûu±ƒð–&·¿™æÑœ…ßþ¶-Ä#Vé7¬aú³jkÙRæÀÃÍôÀéÚë™ãØAGõk3@Ø.ÐóÄû´ÃÇf³ƒª.0ÆûN°§™í†}ö\Ûi(§›—ƒ}†dn³“YÖ¥ì¢mÛ«òx°Í÷f`±µ`Ö°ŸDëdiÛÌççœ43döÇ&™›íb›]t úÈŽpøüíݶ^wÇ5—ç<1³²e?ÛÖ»}b6ÛöÏ#ÛøÚöV¶Ñ˜…+ëv3ÛsÝô‡ñu¹åÝônÓï9d;²0ü®M‚}g}ßÿ¢m ~» œHîsþ‚Ü.4ø2ÛöŸÏS;عÓN³lÅ­úîçšÌm§ýܶ»mòÁyæÍ0ßVÏ/óÑKÙ‚ÛšÛáùk²nf>b-k¿iÛƒ^«Û¾'ÿÓûÆäÀ£Aǹ úÛ°of[vÞ8êÛåû)æÕš9Ìú¶Ó™ù²Kl%ì£í7y»Ü}Ïq´-…u+¹eºëÁÂ/ó< vqF&ÛuQ&d¦…¸z”[ˆ·íp7ëý~a¯ÛC¾Òük¶[ž³ð|ƒlã³-¡ß8Ì'ÏÚúÖgš=m×)Ù„l³3Ã#ïùË´ÐO{Gžo5fË|€­ûüÊ–ƒ?5ùø7 <¿Íôl[m;Â>18Ø¥-Ì3¬ƒ™xšûoâÇi¦{®™O¼½ ^´†÷™W¶ïi>Ë–½ÓLëSó~gæì±…‹,ú磙ýJ23Íçqfš£_YãlÈÌ»Y”¹[—íôñTp¥ar˜æ“[²ÄÊ<œMóÛºf3+äOVËù~j¦‡uËó;—_ãO±u†xNæu­”ÐvúýÆÌ |öõzX‘n»}lQÎÛ¶«ó”ÕÍ¢à/Í!ß-gî1Êvn篫 > ûg53óWó8·#Â8‚ß™wBÞØí6öVÛúù»é¿!¤mñö¶Iàðü]œãuÚæï¶„ü*ÏfÞ‡<ÕÌðû™òåZÈæ†8‹‚Ÿ´‡¼4Ø×¸ÑýýâØFYzÝd‡yÿ¶CB~Ñø<+äY-ç9!k[²t´ÁFΪCîµmÎV³å°o6îvzÚŽ Ó‘sv´íYoc…}º%äm'9 =•çé¶5ä¹ oa_2Ÿù|©È‡õütžß×Ì¢°/åû{{ð—ÆÐoÈÌkÙ0wµ]Áòø<2SOÈÈ–B¾XõܰÃB¾ÒèýÎ|–ïW~>æãp.(eØ?.ç¦m÷û‡ñÃY­àh)èÖ½ÛzxÞò¸’笙â"äÍv¨_ïÂoÛ|bg>Ü0Û8s{›Eáœif‡sEäãÚ6…óÔJ!îëaÿšéýÆL çÓœãƒÂxB>ÝìÏuù>hGµ7°ƒÆdTä¿až…†üÁÌ ùR8W¶ÿîÒøæçmìýÇÌÊó0Ÿ¦È=81}d>ÎFó™çŠYöµ8ä¯-ù¹;ä­-žW¶ÓŸ·ÌÜï{^š¹ÞOÌäp>y$ð>pÖ6„ý;?Ežs¦ß¥!ï1s]ºrå³f^ÈSÛý¹É¸]`ÿyO˜mg €™öÃA~ÝrþŸ>VlÛ7²™ÿ¤ûó73Ïû•év ç|¹p‹n·µp.Éýüöì¸ptqÞiòçfóÉiYB`›B\'~ŸÊÏÿ¶5KkÇÛÈóÞ\ü'øa±o|â–ïí³lòÝ8K£Ö°ÉQYBe¦{šC¼ÅÁ~Õp.É㥒mï8øó™œaiýœ7&Ûž§üÔ¼î÷‘ü|eÞ ñ„ý#œËóï(? ãŸå϶Áç£fZ†É²m ç|?ÊÏ3sü÷3?ßïÝÛƒ'åy™™øóz8Gµ…¸26K8l£ß¿Ì}~þfz–NŸ`ã,]û’YÎ;yþöAÈ÷ê!ΣÀ…üÆg&î7„ø˜ò·šß_̬2Gιhã_wøs¡™—7Fç×™O}\›9Ùñr˜yÍŸ×Ì”|ßðß{Ì´pNn÷û–™çŽow\kãì³É 3«†5Sýw¡"¾ú}<™C|äÜ«dáÞc>ß­ÞɶٱæÍð½à=Ÿ·ä~f®rÞùZ3íj÷“¶!ìSùüžÏ߇}* ~ç%‘¿ù4|/ çSófø^•¯o¿çªí¸#û@`2«îy£™öý|¿jq¾³˜‡ŸÈXœÿfú}#÷#óLÐMB^þjȯóxè ßg¦?ÉÏMH曫ý{…ï2%o3ïºÌðÅþ•?î÷ß‹L¶,ß*âu¨?ß™7ÎÉ>™~ÿ=ÈÌ<8 Üâ¼—Çm8›OÃ÷…Æ0þp^ËãÖ¼ëÏfNÈsÿˆ²´ãëæ3GÉ#´­„óÇT¯o+aݦ…|iRVýøü;IžšÙq¶ÇÌôù‡ù$Ø}’ÿ޳øgÚ£F“¦-‡‡µCÆ5q˜Cò[9bܘ¼ÉáÆ{tþEïN˜0q±^&Œ?~£é9¹9¼ˆ»ó‚È 2/¨¼ óBšzòBo^èËÿ\÷ÆE©»(‰¢$‹’*Jº(¥E©§(õ¥BC¢Ð…†(4D¡! QhˆBC¢Ð…†,4d¡! YhÈBC²Ð…†,4T¡¡ Uh¨BCªÐP…†*4T¡¡ ]hèBCºÐÐ…†.4t¡¡ ]hèB#-4ÒB#-4ÒB#-4ÒB#-4ÒB#-4ÒB£§Ðè)4z žB£§Ðè)4z žB£§Ðè)4z ÞB£·Ðè-4z ÞB£·Ðè-4z ÞB£¯Ðè+4ú ¾B£¯Ðè+4ú ¾B£¯ÐèË5JÝoÌb7‹‚EÉ¢bQ³˜²ØÃb/‹Të¦Z7Õº©ÖMµnªuS­›jÝTë¦Z7ÕÕÕÕÕÕÕÕÕÕÕ$Õ$Õ$Õ$Õ$Õ$Õ$Õ$Õ$Õ$ÕÕÕÕÕÕÕÕÕÕÕ4Õ4Õ4Õ4Õ4Õ4Õ4Õ4Õ4Õ4ÕRª¥TK©–R-¥ZJµ”j)ÕRª¥Të¡ZÕz¨ÖCµªõP­‡j=Të¡ZÕz©ÖKµ^ªõR­—j½Të¥Z/Õz©ÖKµ>ªõQ­j}Të£ZÕú¨ÖGµ>ª‘%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÈA–²D%‚,d‰ KY"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%’,‘d‰$K$Y"ÉI–H²D’%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÈE–(²D‘%Š,Qd‰"KY¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%š,Ñd‰&K4Y¢ÉM–h²D“%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)Y’’%)X’ýçÒÒ¢èßÿyLã¡£½ÑaFù"³ðÿA„ŒTflexsurv/src/0000755000176200001440000000000014657665314012740 5ustar liggesusersflexsurv/src/RcppExports.cpp0000644000176200001440000003077114501417340015723 0ustar liggesusers// Generated by using Rcpp::compileAttributes() -> do not edit by hand // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include using namespace Rcpp; #ifdef RCPP_USE_GLOBAL_ROSTREAM Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif // dgenf_work Rcpp::NumericVector dgenf_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P, const bool log); RcppExport SEXP _flexsurv_dgenf_work(SEXP xSEXP, SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP PSEXP, SEXP logSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type P(PSEXP); Rcpp::traits::input_parameter< const bool >::type log(logSEXP); rcpp_result_gen = Rcpp::wrap(dgenf_work(x, mu, sigma, Q, P, log)); return rcpp_result_gen; END_RCPP } // pgenf_work Rcpp::NumericVector pgenf_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P, const bool lower_tail, const bool give_log); RcppExport SEXP _flexsurv_pgenf_work(SEXP qSEXP, SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP PSEXP, SEXP lower_tailSEXP, SEXP give_logSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type q(qSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type P(PSEXP); Rcpp::traits::input_parameter< const bool >::type lower_tail(lower_tailSEXP); Rcpp::traits::input_parameter< const bool >::type give_log(give_logSEXP); rcpp_result_gen = Rcpp::wrap(pgenf_work(q, mu, sigma, Q, P, lower_tail, give_log)); return rcpp_result_gen; END_RCPP } // check_genf Rcpp::LogicalVector check_genf(const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P); RcppExport SEXP _flexsurv_check_genf(SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP PSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type P(PSEXP); rcpp_result_gen = Rcpp::wrap(check_genf(mu, sigma, Q, P)); return rcpp_result_gen; END_RCPP } // dgengamma_work Rcpp::NumericVector dgengamma_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const bool log); RcppExport SEXP _flexsurv_dgengamma_work(SEXP xSEXP, SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP logSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP); Rcpp::traits::input_parameter< const bool >::type log(logSEXP); rcpp_result_gen = Rcpp::wrap(dgengamma_work(x, mu, sigma, Q, log)); return rcpp_result_gen; END_RCPP } // pgengamma_work Rcpp::NumericVector pgengamma_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const bool lower_tail, const bool give_log); RcppExport SEXP _flexsurv_pgengamma_work(SEXP qSEXP, SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP lower_tailSEXP, SEXP give_logSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type q(qSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP); Rcpp::traits::input_parameter< const bool >::type lower_tail(lower_tailSEXP); Rcpp::traits::input_parameter< const bool >::type give_log(give_logSEXP); rcpp_result_gen = Rcpp::wrap(pgengamma_work(q, mu, sigma, Q, lower_tail, give_log)); return rcpp_result_gen; END_RCPP } // check_gengamma Rcpp::LogicalVector check_gengamma(const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q); RcppExport SEXP _flexsurv_check_gengamma(SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP); rcpp_result_gen = Rcpp::wrap(check_gengamma(mu, sigma, Q)); return rcpp_result_gen; END_RCPP } // dgompertz_work Rcpp::NumericVector dgompertz_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate, const bool log); RcppExport SEXP _flexsurv_dgompertz_work(SEXP xSEXP, SEXP shapeSEXP, SEXP rateSEXP, SEXP logSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type rate(rateSEXP); Rcpp::traits::input_parameter< const bool >::type log(logSEXP); rcpp_result_gen = Rcpp::wrap(dgompertz_work(x, shape, rate, log)); return rcpp_result_gen; END_RCPP } // pgompertz_work Rcpp::NumericVector pgompertz_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate, const bool lower_tail, const bool give_log); RcppExport SEXP _flexsurv_pgompertz_work(SEXP qSEXP, SEXP shapeSEXP, SEXP rateSEXP, SEXP lower_tailSEXP, SEXP give_logSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type q(qSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type rate(rateSEXP); Rcpp::traits::input_parameter< const bool >::type lower_tail(lower_tailSEXP); Rcpp::traits::input_parameter< const bool >::type give_log(give_logSEXP); rcpp_result_gen = Rcpp::wrap(pgompertz_work(q, shape, rate, lower_tail, give_log)); return rcpp_result_gen; END_RCPP } // check_gompertz Rcpp::LogicalVector check_gompertz(const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate); RcppExport SEXP _flexsurv_check_gompertz(SEXP shapeSEXP, SEXP rateSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type rate(rateSEXP); rcpp_result_gen = Rcpp::wrap(check_gompertz(shape, rate)); return rcpp_result_gen; END_RCPP } // dllogis_work Rcpp::NumericVector dllogis_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale, const bool log); RcppExport SEXP _flexsurv_dllogis_work(SEXP xSEXP, SEXP shapeSEXP, SEXP scaleSEXP, SEXP logSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type scale(scaleSEXP); Rcpp::traits::input_parameter< const bool >::type log(logSEXP); rcpp_result_gen = Rcpp::wrap(dllogis_work(x, shape, scale, log)); return rcpp_result_gen; END_RCPP } // pllogis_work Rcpp::NumericVector pllogis_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale, const bool lower_tail, const bool give_log); RcppExport SEXP _flexsurv_pllogis_work(SEXP qSEXP, SEXP shapeSEXP, SEXP scaleSEXP, SEXP lower_tailSEXP, SEXP give_logSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type q(qSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type scale(scaleSEXP); Rcpp::traits::input_parameter< const bool >::type lower_tail(lower_tailSEXP); Rcpp::traits::input_parameter< const bool >::type give_log(give_logSEXP); rcpp_result_gen = Rcpp::wrap(pllogis_work(q, shape, scale, lower_tail, give_log)); return rcpp_result_gen; END_RCPP } // check_llogis Rcpp::LogicalVector check_llogis(const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale); RcppExport SEXP _flexsurv_check_llogis(SEXP shapeSEXP, SEXP scaleSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type scale(scaleSEXP); rcpp_result_gen = Rcpp::wrap(check_llogis(shape, scale)); return rcpp_result_gen; END_RCPP } // exph Rcpp::NumericVector exph(const Rcpp::NumericVector& y); RcppExport SEXP _flexsurv_exph(SEXP ySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP); rcpp_result_gen = Rcpp::wrap(exph(y)); return rcpp_result_gen; END_RCPP } // dexph Rcpp::NumericVector dexph(const Rcpp::NumericVector& y); RcppExport SEXP _flexsurv_dexph(SEXP ySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP); rcpp_result_gen = Rcpp::wrap(dexph(y)); return rcpp_result_gen; END_RCPP } // basis_vector Rcpp::NumericVector basis_vector(const Rcpp::NumericVector& knots, const Rcpp::NumericVector& x); RcppExport SEXP _flexsurv_basis_vector(SEXP knotsSEXP, SEXP xSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type knots(knotsSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP); rcpp_result_gen = Rcpp::wrap(basis_vector(knots, x)); return rcpp_result_gen; END_RCPP } // basis_matrix Rcpp::NumericMatrix basis_matrix(const Rcpp::NumericMatrix& knots, const Rcpp::NumericVector& x); RcppExport SEXP _flexsurv_basis_matrix(SEXP knotsSEXP, SEXP xSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type knots(knotsSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP); rcpp_result_gen = Rcpp::wrap(basis_matrix(knots, x)); return rcpp_result_gen; END_RCPP } // dbasis_vector Rcpp::NumericVector dbasis_vector(const Rcpp::NumericVector& knots, const Rcpp::NumericVector& x); RcppExport SEXP _flexsurv_dbasis_vector(SEXP knotsSEXP, SEXP xSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type knots(knotsSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP); rcpp_result_gen = Rcpp::wrap(dbasis_vector(knots, x)); return rcpp_result_gen; END_RCPP } // dbasis_matrix Rcpp::NumericMatrix dbasis_matrix(const Rcpp::NumericMatrix& knots, const Rcpp::NumericVector& x); RcppExport SEXP _flexsurv_dbasis_matrix(SEXP knotsSEXP, SEXP xSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type knots(knotsSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP); rcpp_result_gen = Rcpp::wrap(dbasis_matrix(knots, x)); return rcpp_result_gen; END_RCPP } flexsurv/src/splines.cpp0000644000176200001440000000705113231112051015070 0ustar liggesusers#include #include namespace { inline double cuber(const double x) { if (x <= 0) { return 0; } else { return x * x * x; } } inline double dCuber(const double x) { if (x <= 0) { return 0; } else { return 3 * x * x; } } } // [[Rcpp::export]] Rcpp::NumericVector basis_vector(const Rcpp::NumericVector& knots, const Rcpp::NumericVector& x) { if (knots.size() < 2) { throw std::runtime_error("Bad knots."); } Rcpp::NumericMatrix result(x.size(), knots.size()); result(Rcpp::_, 0) = Rcpp::rep(1, x.size()); result(Rcpp::_, 1) = x; for (R_xlen_t ind=0; ind < knots.size() - 2; ++ind) { const double last = *(knots.end() - 1); const double first = *(knots.begin()); const double lam = (last - knots[ind + 1]) / (last - first); result(Rcpp::_, ind + 2) = Rcpp::sapply(x - knots[ind + 1], cuber) - lam * Rcpp::sapply(x - first, cuber) - (1 - lam) * Rcpp::sapply(x - last, cuber); } return result; } // [[Rcpp::export]] Rcpp::NumericMatrix basis_matrix(const Rcpp::NumericMatrix& knots, const Rcpp::NumericVector& x) { if (knots.ncol() < 2) { throw std::runtime_error("Bad knots."); } if (knots.nrow() != x.size()) { throw std::runtime_error("Mismatch between knots and points"); } Rcpp::NumericMatrix result(x.size(), knots.ncol()); result(Rcpp::_, 0) = Rcpp::rep(1, x.size()); result(Rcpp::_, 1) = x; for (R_xlen_t ind_r=0; ind_r < result.nrow(); ++ind_r) { for (R_xlen_t ind=0; ind < knots.ncol() - 2;++ind) { const double last = knots(ind_r, knots.ncol() - 1); const double first = knots(ind_r, 0); const double lam = (last - knots(ind_r, ind + 1)) / (last - first); result(ind_r, ind + 2) = cuber(x[ind_r] - knots(ind_r, ind + 1)) - lam * cuber(x[ind_r] - first) - (1 - lam) * cuber(x[ind_r] - last); } } return result; } // [[Rcpp::export]] Rcpp::NumericVector dbasis_vector(const Rcpp::NumericVector& knots, const Rcpp::NumericVector& x) { if (knots.size() < 2) { throw std::runtime_error("Bad knots."); } Rcpp::NumericMatrix result(x.size(), knots.size()); result(Rcpp::_, 0) = Rcpp::rep(0, x.size()); result(Rcpp::_, 1) = Rcpp::rep(1, x.size()); for (R_xlen_t ind=0; ind < knots.size() - 2; ++ind) { const double last = *(knots.end() - 1); const double first = *(knots.begin()); const double lam = (last - knots[ind + 1]) / (last - first); result(Rcpp::_, ind + 2) = Rcpp::sapply(x - knots[ind + 1], dCuber) - lam * Rcpp::sapply(x - first, dCuber) - (1 - lam) * Rcpp::sapply(x - last, dCuber); } return result; } // [[Rcpp::export]] Rcpp::NumericMatrix dbasis_matrix(const Rcpp::NumericMatrix& knots, const Rcpp::NumericVector& x) { if (knots.ncol() < 2) { throw std::runtime_error("Bad knots."); } if (knots.nrow() != x.size()) { throw std::runtime_error("Mismatch between knots and points"); } Rcpp::NumericMatrix result(x.size(), knots.ncol()); result(Rcpp::_, 0) = Rcpp::rep(0, x.size()); result(Rcpp::_, 1) = Rcpp::rep(1, x.size()); for (R_xlen_t ind_r=0; ind_r < result.nrow(); ++ind_r) { for (R_xlen_t ind=0; ind < knots.ncol() - 2;++ind) { const double last = knots(ind_r, knots.ncol() - 1); const double first = knots(ind_r, 0); const double lam = (last - knots(ind_r, ind + 1)) / (last - first); result(ind_r, ind + 2) = dCuber(x[ind_r] - knots(ind_r, ind + 1)) - lam * dCuber(x[ind_r] - first) - (1 - lam) * dCuber(x[ind_r] - last); } } return result; } flexsurv/src/genf.cpp0000644000176200001440000001114213560603030014335 0ustar liggesusers#include #include #include "distribution.h" #include "rep_len.h" #include "gengamma.h" #include "mapply.h" namespace { namespace genf { inline bool bad(const double mu, const double sigma, const double Q, const double P) { bool res = false; if (sigma < 0) { Rcpp::warning("Negative scale parameter ""sigma"""); res = true; } if (P < 0) { Rcpp::warning("Negative shape parameter ""P"""); res = true; } return res; } class density { public: typedef double result_type; inline double operator()(const double x, const double mu, const double sigma, const double Q, const double P) const { /* check the parameters */ if (bad(mu, sigma, Q, P)) { return NA_REAL; }; if (x < 0) { return R_NegInf; } if (P==0) { return gengamma::density()(x, mu, sigma, Q); } const double tmp = Q * Q + 2 * P; const double delta = std::sqrt(tmp); const double s1 = 2 / (tmp + Q*delta); const double s2 = 2 / (tmp - Q*delta); const double expw = std::pow(x, delta/sigma) * std::exp(-mu*delta/sigma); return std::log(delta) + s1/sigma*delta*(std::log(x) - mu) + s1*(std::log(s1) - std::log(s2)) - std::log(sigma*x) - (s1+s2)*std::log(1 + s1*expw/s2) - R::lbeta(s1, s2); } }; class cdf { public: typedef double result_type; cdf(bool lower_tail_, bool give_log_) : lower_tail(lower_tail_), give_log(give_log_) {} inline double operator()(const double q, const double mu, const double sigma, const double Q, const double P) const { if (bad(mu, sigma, Q, P)) { return NA_REAL; } if ( q < 0 ) { return below_distribution(lower_tail, give_log); } if (P==0) { return gengamma::cdf(lower_tail, give_log)(q, mu, sigma, Q); } const double tmp = Q * Q + 2*P; const double delta = std::sqrt(tmp); const double s1 = 2 / (tmp + Q*delta); const double s2 = 2 / (tmp - Q*delta); const double expw = std::pow(q, delta/sigma) * std::exp(-mu*delta/sigma); const double qb = s2/(s2 + s1*expw); // two alternative constructions to avoid underflow if (qb > 0.99){ const double qb2 = s1*expw/(s2 + s1*expw); return R::pbeta(qb2, s1, s2, lower_tail, give_log); } else { return R::pbeta(qb, s2, s1, !lower_tail, give_log); } } private: bool lower_tail; bool give_log; }; } } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector dgenf_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P, const bool log) { if (x.size() == 0) { return x; } const R_xlen_t size = std::max(P.size(), std::max(std::max(sigma.size(), Q.size()), std::max(x.size(), mu.size()))); return perhaps_exp(mapply(flexsurv::rep_len(x, size), flexsurv::rep_len(mu, size), flexsurv::rep_len(sigma, size), flexsurv::rep_len(Q, size), flexsurv::rep_len(P, size), genf::density()), log); } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector pgenf_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P, const bool lower_tail, const bool give_log) { if (q.size() == 0) { return q; } const R_xlen_t size = std::max(P.size(), std::max(std::max(sigma.size(), Q.size()), std::max(q.size(), mu.size()))); return mapply(flexsurv::rep_len(q, size), flexsurv::rep_len(mu, size), flexsurv::rep_len(sigma, size), flexsurv::rep_len(Q, size), flexsurv::rep_len(P, size), genf::cdf(lower_tail, give_log)); } namespace Rcpp { namespace traits { template struct result_of< RESULT_TYPE (*)(U1, U2, U3, U4) >{ typedef RESULT_TYPE type ; } ; } } // [[Rcpp::export(name="check.genf", rng=false)]] Rcpp::LogicalVector check_genf(const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P) { if ( (0==mu.size()) && (0==sigma.size()) && (0==Q.size()) && (0==P.size()) ) { Rcpp::LogicalVector null_result(0); return null_result; } const R_xlen_t size = mu.size(); return !mapply(mu, flexsurv::rep_len(sigma, size), flexsurv::rep_len(Q, size), flexsurv::rep_len(P, size), genf::bad); } flexsurv/src/llogis.cpp0000644000176200001440000000573713231112051014715 0ustar liggesusers#include #include #include "distribution.h" #include "rep_len.h" namespace { namespace llogis { inline bool bad(const double shape, const double scale) { const bool bad = (shape<=0) || (scale <= 0); if (shape < 0) { Rcpp::warning("Non-positive shape parameter"); } if (scale < 0) { Rcpp::warning("Non-positive scale parameter"); } return bad; } class density { public: typedef double result_type; inline double operator()(const double x, const double shape, const double scale) const { /* check the parameters */ if (bad(shape, scale)) { return NA_REAL; }; if (x < 0) { return R_NegInf; } const double log_shape = std::log(shape); const double log_scale = std::log(scale); return log_shape - log_scale + (shape - 1) * (std::log(x) - log_scale) - 2 * std::log(1 + std::pow(x/scale, shape)); } }; class cdf { public: typedef double result_type; cdf(bool lower_tail_, bool give_log_) : lower_tail(lower_tail_), give_log(give_log_) {} inline double operator()(const double q, const double shape, const double scale) const { /* check the arguments */ if (bad(shape, scale)) { return NA_REAL; } if ( q < 0 ) { return below_distribution(lower_tail, give_log); } return R::plogis(std::log(q), std::log(scale), 1/shape, lower_tail, give_log); } private: bool lower_tail; bool give_log; }; } } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector dllogis_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale, const bool log) { if (x.size() == 0) { return x; } const R_xlen_t size = std::max(x.size(), std::max(shape.size(), scale.size())); return perhaps_exp(Rcpp::mapply(flexsurv::rep_len(x, size), flexsurv::rep_len(shape, size), flexsurv::rep_len(scale, size), llogis::density()), log); } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector pllogis_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale, const bool lower_tail, const bool give_log) { if (q.size() == 0) { return q; } const R_xlen_t size = std::max(q.size(), std::max(shape.size(), scale.size())); return mapply(flexsurv::rep_len(q, size), flexsurv::rep_len(shape, size), flexsurv::rep_len(scale, size), llogis::cdf(lower_tail, give_log)); } // [[Rcpp::export(name="check.llogis", rng=false)]] Rcpp::LogicalVector check_llogis(const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale) { if ( (0==shape.size()) && (0==scale.size()) ) { Rcpp::LogicalVector null_result(0); return null_result; } const R_xlen_t size = shape.size(); return !Rcpp::mapply(shape, flexsurv::rep_len(scale, size), llogis::bad); } flexsurv/src/mapply.h0000644000176200001440000000012713231112051014357 0ustar liggesusers#ifndef MAPPLY_H #define MAPPLY_H #include "mapply_4.h" #include "mapply_5.h" #endif flexsurv/src/rep_len.h0000644000176200001440000000062613231112051014505 0ustar liggesusers#ifndef REPLEN_H #define REPLEN_H #include namespace { namespace flexsurv { template inline Rcpp::sugar::Rep_len rep_len(const Rcpp::VectorBase& t, R_xlen_t len ){ if (t.size() == 0) { Rcpp::stop("zero length vector provided"); } else { return Rcpp::rep_len(t, len); } } } } #endif flexsurv/src/gengamma.cpp0000644000176200001440000000344313231112051015170 0ustar liggesusers#include #include "distribution.h" #include "rep_len.h" #include "gengamma.h" #include "mapply.h" // [[Rcpp::export(rng=false)]] Rcpp::NumericVector dgengamma_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const bool log) { if (x.size() == 0) { return x; } const R_xlen_t size = std::max(std::max(sigma.size(), Q.size()), std::max(x.size(), mu.size())); return perhaps_exp(mapply(flexsurv::rep_len(x, size), flexsurv::rep_len(mu, size), flexsurv::rep_len(sigma, size), flexsurv::rep_len(Q, size), gengamma::density()), log); } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector pgengamma_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const bool lower_tail, const bool give_log) { if (q.size() == 0) { return q; } const R_xlen_t size = std::max(std::max(sigma.size(), Q.size()), std::max(q.size(), mu.size())); return mapply(flexsurv::rep_len(q, size), flexsurv::rep_len(mu, size), flexsurv::rep_len(sigma, size), flexsurv::rep_len(Q, size), gengamma::cdf(lower_tail, give_log)); } // [[Rcpp::export(name="check.gengamma", rng=false)]] Rcpp::LogicalVector check_gengamma(const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q) { if ( (0==mu.size()) && (0==sigma.size()) && (0==Q.size()) ) { Rcpp::LogicalVector null_result(0); return null_result; } const R_xlen_t size = mu.size(); return !Rcpp::mapply(mu, flexsurv::rep_len(sigma, size), flexsurv::rep_len(Q, size), gengamma::bad); } flexsurv/src/distribution.h0000644000176200001440000000075114260613663015621 0ustar liggesusers#ifndef DISTRIBUTION_H #define DISTRIBUTION_H #include namespace { inline double below_distribution(bool lower_tail, bool give_log) { if (lower_tail) { if (give_log) {return R_NegInf;} else {return 0;} } else { if (give_log) {return 0;} else {return 1;} } } template inline Rcpp::NumericVector perhaps_exp(const T1& y, bool log) { if (log) { return y; } else { return Rcpp::exp(y); } } } #endif flexsurv/src/special.cpp0000644000176200001440000000164013231112051015031 0ustar liggesusers#include #include namespace { inline double restrict_hypot(double x) { if (std::isnan(x)) { return x; } x = std::abs(x); if (x > 1) { const double inv = 1/x; return std::sqrt(1 + inv * inv) * x; } else { return std::sqrt(1 + x * x); } } inline double dexph_work(const double x) { if (std::isnan(x)) { return x; } if (x >= 0) { return 1 + x/restrict_hypot(x); } else { const double h = restrict_hypot(x); return -1 / h / (x - h); } } } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector exph(const Rcpp::NumericVector& y) { // exp(asinh(x)) return Rcpp::ifelse(y >= 0, y + Rcpp::sapply(y, restrict_hypot), -1/(y - Rcpp::sapply(y, restrict_hypot))); } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector dexph(const Rcpp::NumericVector& y) { return Rcpp::sapply(y, dexph_work); } flexsurv/src/mapply_5.h0000644000176200001440000000561713231112051014614 0ustar liggesusers#ifndef MAPPLY_5 #define MAPPLY_5 #include namespace { namespace flexsurv { template < int RTYPE_1, bool NA_1, typename T_1, int RTYPE_2, bool NA_2, typename T_2, int RTYPE_3, bool NA_3, typename T_3, int RTYPE_4, bool NA_4, typename T_4, int RTYPE_5, bool NA_5, typename T_5, typename Function > class Mapply_5 : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits< typename ::Rcpp::traits::result_of::type >::rtype , true , Mapply_5 > { public: typedef typename ::Rcpp::traits::result_of::type result_type ; typedef Rcpp::VectorBase VEC_1 ; typedef Rcpp::VectorBase VEC_2 ; typedef Rcpp::VectorBase VEC_3 ; typedef Rcpp::VectorBase VEC_4 ; typedef Rcpp::VectorBase VEC_5 ; typedef typename Rcpp::traits::Extractor::type EXT_1 ; typedef typename Rcpp::traits::Extractor::type EXT_2 ; typedef typename Rcpp::traits::Extractor::type EXT_3 ; typedef typename Rcpp::traits::Extractor::type EXT_4 ; typedef typename Rcpp::traits::Extractor::type EXT_5 ; Mapply_5(const VEC_1& vec_1_, const VEC_2& vec_2_, const VEC_3& vec_3_, const VEC_4& vec_4_, const VEC_5& vec_5_, Function fun_ ) : vec_1(vec_1_.get_ref()), vec_2(vec_2_.get_ref()), vec_3(vec_3_.get_ref()), vec_4(vec_4_.get_ref()), vec_5(vec_5_.get_ref()), fun(fun_){} inline result_type operator[]( R_xlen_t i ) const { return fun(vec_1[i], vec_2[i], vec_3[i], vec_4[i], vec_5[i]); } inline R_xlen_t size() const { return vec_1.size() ; } private: const EXT_1& vec_1 ; const EXT_2& vec_2 ; const EXT_3& vec_3 ; const EXT_4& vec_4 ; const EXT_5& vec_5 ; Function fun ; } ; } template < int RTYPE_1, bool NA_1, typename T_1, int RTYPE_2, bool NA_2, typename T_2, int RTYPE_3, bool NA_3, typename T_3, int RTYPE_4, bool NA_4, typename T_4, int RTYPE_5, bool NA_5, typename T_5, typename Function> inline flexsurv::Mapply_5 mapply( const Rcpp::VectorBase& t1, const Rcpp::VectorBase& t2, const Rcpp::VectorBase& t3, const Rcpp::VectorBase& t4, const Rcpp::VectorBase& t5, Function fun ){ return flexsurv::Mapply_5( t1, t2, t3, t4, t5, fun ) ; } } #endif flexsurv/src/gengamma.h0000644000176200001440000000412313231112051014631 0ustar liggesusers#ifndef GENGAMMA_H #define GENGAMMA_H #include #include #include "distribution.h" namespace { namespace gengamma { inline bool bad(const double mu, const double sigma, const double Q) { if (sigma < 0) { Rcpp::warning("Negative scale parameter \"sigma\""); return true; } return false; } class density { public: typedef double result_type; inline double operator()(const double x, const double mu, const double sigma, const double Q) const { /* check the parameters */ if (bad(mu, sigma, Q)) { return NA_REAL; }; if (x < 0) { return R_NegInf; } /* this function relies on interesting levels of cancellation if Q is small or x is small */ if (Q!=0) { const double y = std::log(x); const double w = (y - mu) / sigma; const double abs_q = std::abs(Q); const double qi = 1/(Q * Q); const double qw = Q * w; return -std::log(sigma*x) + std::log(abs_q) * (1 - 2 * qi) + qi * (qw - std::exp(qw)) - R::lgammafn(qi); } else { return R::dlnorm(x, mu, sigma, 1); } } }; class cdf { public: typedef double result_type; cdf(bool lower_tail_, bool give_log_) : lower_tail(lower_tail_), give_log(give_log_) {} inline double operator()(const double q, const double mu, const double sigma, const double big_q) const { /* check the arguments */ if (bad(mu, sigma, big_q)) { return NA_REAL; } if ( q < 0 ) { return below_distribution(lower_tail, give_log); } if (big_q!=0) { const double y = std::log(q); const double w = (y - mu) / sigma; const double qq = 1/(big_q * big_q); const double expnu = std::exp(big_q * w) * qq; if (big_q > 0) { return R::pgamma(expnu, qq, 1, lower_tail, give_log); } else { return R::pgamma(expnu, qq, 1, !lower_tail, give_log); } } else { return R::plnorm(q, mu, sigma, lower_tail, give_log); } } private: bool lower_tail; bool give_log; }; } } #endif flexsurv/src/mapply_4.h0000644000176200001440000000476513231112051014616 0ustar liggesusers #ifndef MAPPLY_4 #define MAPPLY_4 #include namespace { namespace flexsurv { template < int RTYPE_1, bool NA_1, typename T_1, int RTYPE_2, bool NA_2, typename T_2, int RTYPE_3, bool NA_3, typename T_3, int RTYPE_4, bool NA_4, typename T_4, typename Function > class Mapply_4 : public Rcpp::VectorBase< Rcpp::traits::r_sexptype_traits< typename ::Rcpp::traits::result_of::type >::rtype , true , Mapply_4 > { public: typedef typename ::Rcpp::traits::result_of::type result_type ; typedef Rcpp::VectorBase VEC_1 ; typedef Rcpp::VectorBase VEC_2 ; typedef Rcpp::VectorBase VEC_3 ; typedef Rcpp::VectorBase VEC_4 ; typedef typename Rcpp::traits::Extractor::type EXT_1 ; typedef typename Rcpp::traits::Extractor::type EXT_2 ; typedef typename Rcpp::traits::Extractor::type EXT_3 ; typedef typename Rcpp::traits::Extractor::type EXT_4 ; Mapply_4(const VEC_1& vec_1_, const VEC_2& vec_2_, const VEC_3& vec_3_, const VEC_4& vec_4_, Function fun_ ) : vec_1(vec_1_.get_ref()), vec_2(vec_2_.get_ref()), vec_3(vec_3_.get_ref()), vec_4(vec_4_.get_ref()), fun(fun_){} inline result_type operator[]( R_xlen_t i ) const { return fun( vec_1[i], vec_2[i], vec_3[i], vec_4[i] ); } inline R_xlen_t size() const { return vec_1.size() ; } private: const EXT_1& vec_1 ; const EXT_2& vec_2 ; const EXT_3& vec_3 ; const EXT_4& vec_4 ; Function fun ; } ; } template < int RTYPE_1, bool NA_1, typename T_1, int RTYPE_2, bool NA_2, typename T_2, int RTYPE_3, bool NA_3, typename T_3, int RTYPE_4, bool NA_4, typename T_4, typename Function> inline flexsurv::Mapply_4 mapply( const Rcpp::VectorBase& t1, const Rcpp::VectorBase& t2, const Rcpp::VectorBase& t3, const Rcpp::VectorBase& t4, Function fun ){ return flexsurv::Mapply_4( t1, t2, t3, t4, fun ) ; } } #endif flexsurv/src/flexsurv-init.c0000644000176200001440000000550713231112051015676 0ustar liggesusers/* Automatically generated by * tools::package_native_routine_registration_skeleton in r-devel from * 2017-03-27 */ /* Future versions of Rcpp may generate this, so this may not be * needed in the future */ #include #include #include // for NULL #include /* .Call calls */ extern SEXP _flexsurv_basis_matrix(SEXP, SEXP); extern SEXP _flexsurv_basis_vector(SEXP, SEXP); extern SEXP _flexsurv_check_genf(SEXP, SEXP, SEXP, SEXP); extern SEXP _flexsurv_check_gengamma(SEXP, SEXP, SEXP); extern SEXP _flexsurv_check_gompertz(SEXP, SEXP); extern SEXP _flexsurv_check_llogis(SEXP, SEXP); extern SEXP _flexsurv_dbasis_matrix(SEXP, SEXP); extern SEXP _flexsurv_dbasis_vector(SEXP, SEXP); extern SEXP _flexsurv_dexph(SEXP); extern SEXP _flexsurv_dgenf_work(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP _flexsurv_dgengamma_work(SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP _flexsurv_dgompertz_work(SEXP, SEXP, SEXP, SEXP); extern SEXP _flexsurv_dllogis_work(SEXP, SEXP, SEXP, SEXP); extern SEXP _flexsurv_exph(SEXP); extern SEXP _flexsurv_pgenf_work(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP _flexsurv_pgengamma_work(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP _flexsurv_pgompertz_work(SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP _flexsurv_pllogis_work(SEXP, SEXP, SEXP, SEXP, SEXP); static const R_CallMethodDef CallEntries[] = { {"_flexsurv_basis_matrix", (DL_FUNC) &_flexsurv_basis_matrix, 2}, {"_flexsurv_basis_vector", (DL_FUNC) &_flexsurv_basis_vector, 2}, {"_flexsurv_check_genf", (DL_FUNC) &_flexsurv_check_genf, 4}, {"_flexsurv_check_gengamma", (DL_FUNC) &_flexsurv_check_gengamma, 3}, {"_flexsurv_check_gompertz", (DL_FUNC) &_flexsurv_check_gompertz, 2}, {"_flexsurv_check_llogis", (DL_FUNC) &_flexsurv_check_llogis, 2}, {"_flexsurv_dbasis_matrix", (DL_FUNC) &_flexsurv_dbasis_matrix, 2}, {"_flexsurv_dbasis_vector", (DL_FUNC) &_flexsurv_dbasis_vector, 2}, {"_flexsurv_dexph", (DL_FUNC) &_flexsurv_dexph, 1}, {"_flexsurv_dgenf_work", (DL_FUNC) &_flexsurv_dgenf_work, 6}, {"_flexsurv_dgengamma_work", (DL_FUNC) &_flexsurv_dgengamma_work, 5}, {"_flexsurv_dgompertz_work", (DL_FUNC) &_flexsurv_dgompertz_work, 4}, {"_flexsurv_dllogis_work", (DL_FUNC) &_flexsurv_dllogis_work, 4}, {"_flexsurv_exph", (DL_FUNC) &_flexsurv_exph, 1}, {"_flexsurv_pgenf_work", (DL_FUNC) &_flexsurv_pgenf_work, 7}, {"_flexsurv_pgengamma_work", (DL_FUNC) &_flexsurv_pgengamma_work, 6}, {"_flexsurv_pgompertz_work", (DL_FUNC) &_flexsurv_pgompertz_work, 5}, {"_flexsurv_pllogis_work", (DL_FUNC) &_flexsurv_pllogis_work, 5}, {NULL, NULL, 0} }; void R_init_flexsurv(DllInfo *dll) { R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, TRUE); } flexsurv/src/gompertz.cpp0000644000176200001440000000714013231112051015261 0ustar liggesusers#include #include #include "distribution.h" #include "rep_len.h" namespace { namespace gompertz { inline double exprel(const double x) { if (x!=0) { return expm1(x) / x; } else { return 1; } } inline double safe_coeff(const double q, const double shape, const double rate) { if (! std::isinf(q)) { const double scale_q = shape * q; return - rate * q * exprel(scale_q); } else { // If shape is negative, Gompertz reaches asymptote > 0 if (shape < 0) { return rate / shape; } else { return R_NegInf; } } } inline bool bad(const double shape, const double rate) { if (rate < 0) { Rcpp::warning("Negative rate parameter"); return true; } else { return false; } } class density { public: typedef double result_type; inline double operator()(const double x, const double shape, const double rate) const { if (bad(shape, rate)) { return NA_REAL; } if (x < 0) { return R_NegInf; } const double scale_x = shape * x; const double shift = x * exprel(scale_x); return std::log(rate) + scale_x - rate * shift; } }; class cdf { public: typedef double result_type; cdf(bool lower_tail_, bool give_log_) : lower_tail(lower_tail_), give_log(give_log_) {} inline double operator()(const double q, const double shape, const double rate) const { if (bad(shape, rate)) { return NA_REAL; } if (q < 0) { return below_distribution(lower_tail, give_log); } if (shape != 0) { const double coeff = safe_coeff(q, shape, rate); /* my, there's a lot of cases here */ if ((!give_log) & (lower_tail)) { return -expm1(coeff); } if ( (!give_log) & (!lower_tail)) { return std::exp(coeff); } if (give_log & lower_tail) { return log1p(-std::exp(coeff)); } // fall off the end here return coeff; } else { return R::pexp(q * rate, 1, lower_tail, give_log); } } private: bool lower_tail; bool give_log; }; } } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector dgompertz_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate, const bool log) { if (x.size() == 0) { return x; } const R_xlen_t size = std::max(x.size(), std::max(shape.size(), rate.size())); return perhaps_exp(Rcpp::mapply(flexsurv::rep_len(x, size), flexsurv::rep_len(shape, size), flexsurv::rep_len(rate, size), gompertz::density()), log); } // [[Rcpp::export(rng=false)]] Rcpp::NumericVector pgompertz_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate, const bool lower_tail, const bool give_log) { if (q.size() == 0) { return q; } const R_xlen_t size = std::max(q.size(), std::max(shape.size(), rate.size())); return Rcpp::mapply(flexsurv::rep_len(q, size), flexsurv::rep_len(shape, size), flexsurv::rep_len(rate, size), gompertz::cdf(lower_tail, give_log)); } // [[Rcpp::export(name="check.gompertz", rng=false)]] Rcpp::LogicalVector check_gompertz(const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate) { if ( (0==shape.size()) && (0==rate.size()) ) { Rcpp::LogicalVector null_result(0); return null_result; } const R_xlen_t size = shape.size(); return !Rcpp::mapply(shape, flexsurv::rep_len(rate, size), gompertz::bad); } flexsurv/NAMESPACE0000644000176200001440000001463714554254215013371 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(AIC,fmsm) S3method(AICC,flexsurvreg) S3method(AICc,flexsurvreg) S3method(BIC,flexsurvreg) S3method(augment,flexsurvreg) S3method(coef,flexsurvreg) S3method(glance,flexsurvreg) S3method(lines,flexsurvreg) S3method(lines,survrtrunc) S3method(logLik,flexsurvreg) S3method(model.frame,flexsurvmix) S3method(model.frame,flexsurvreg) S3method(model.matrix,flexsurvreg) S3method(nobs,flexsurvreg) S3method(plot,flexsurvreg) S3method(plot,standsurv) S3method(plot,survrtrunc) S3method(predict,flexsurvreg) S3method(print,flexsurvmix) S3method(print,flexsurvreg) S3method(print,flexsurvrtrunc) S3method(print,fmsm) S3method(print,summary.flexsurvreg) S3method(print,totlos.fs) S3method(residuals,flexsurvreg) S3method(simulate,flexsurvreg) S3method(summary,flexsurvreg) S3method(summary,flexsurvrtrunc) S3method(tidy,flexsurvreg) S3method(tidy,standsurv) S3method(vcov,flexsurvreg) export(AICC) export(AICc) export(Hexp) export(Hgamma) export(Hgenf) export(Hgenf.orig) export(Hgengamma) export(Hgengamma.orig) export(Hgompertz) export(Hllogis) export(Hlnorm) export(Hsurvspline) export(Hsurvspline0) export(Hsurvspline1) export(Hsurvspline2) export(Hsurvspline3) export(Hsurvspline4) export(Hsurvspline5) export(Hsurvspline6) export(Hsurvspline7) export(Hweibull) export(HweibullPH) export(ajfit) export(ajfit_flexsurvmix) export(ajfit_fmsm) export(augment) export(basis) export(bootci.fmsm) export(coxsnell_flexsurvreg) export(dbasis) export(dfss) export(dgenf) export(dgenf.orig) export(dgengamma) export(dgengamma.orig) export(dgompertz) export(dllogis) export(dsurvspline) export(dsurvspline0) export(dsurvspline1) export(dsurvspline2) export(dsurvspline3) export(dsurvspline4) export(dsurvspline5) export(dsurvspline6) export(dsurvspline7) export(dweibullPH) export(flexsurv.dists) export(flexsurvmix) export(flexsurvreg) export(flexsurvrtrunc) export(flexsurvspline) export(fmixmsm) export(fmsm) export(fss) export(glance) export(hexp) export(hgamma) export(hgenf) export(hgenf.orig) export(hgengamma) export(hgengamma.orig) export(hgompertz) export(hllogis) export(hlnorm) export(hr_flexsurvreg) export(hsurvspline) export(hsurvspline0) export(hsurvspline1) export(hsurvspline2) export(hsurvspline3) export(hsurvspline4) export(hsurvspline5) export(hsurvspline6) export(hsurvspline7) export(hweibull) export(hweibullPH) export(mean_exp) export(mean_flexsurvmix) export(mean_gamma) export(mean_genf) export(mean_genf.orig) export(mean_gengamma) export(mean_gengamma.orig) export(mean_gompertz) export(mean_llogis) export(mean_lnorm) export(mean_survspline) export(mean_survspline0) export(mean_survspline1) export(mean_survspline2) export(mean_survspline3) export(mean_survspline4) export(mean_survspline5) export(mean_survspline6) export(mean_survspline7) export(mean_weibull) export(mean_weibullPH) export(meanfinal_fmixmsm) export(msfit.flexsurvreg) export(normboot.flexsurvreg) export(p_flexsurvmix) export(pars.fmsm) export(pdf_flexsurvmix) export(pfinal_fmsm) export(pgenf) export(pgenf.orig) export(pgengamma) export(pgengamma.orig) export(pgompertz) export(pllogis) export(pmatrix.fs) export(pmatrix.simfs) export(ppath_fmixmsm) export(probs_flexsurvmix) export(psurvspline) export(psurvspline0) export(psurvspline1) export(psurvspline2) export(psurvspline3) export(psurvspline4) export(psurvspline5) export(psurvspline6) export(psurvspline7) export(pweibullPH) export(qfinal_fmixmsm) export(qgeneric) export(qgenf) export(qgenf.orig) export(qgengamma) export(qgengamma.orig) export(qgompertz) export(qllogis) export(qsurvspline) export(qsurvspline0) export(qsurvspline1) export(qsurvspline2) export(qsurvspline3) export(qsurvspline4) export(qsurvspline5) export(qsurvspline6) export(qsurvspline7) export(quantile_flexsurvmix) export(qweibullPH) export(rgenf) export(rgenf.orig) export(rgengamma) export(rgengamma.orig) export(rgompertz) export(rllogis) export(rmst_exp) export(rmst_flexsurvmix) export(rmst_gamma) export(rmst_generic) export(rmst_genf) export(rmst_genf.orig) export(rmst_gengamma) export(rmst_gengamma.orig) export(rmst_gompertz) export(rmst_llogis) export(rmst_lnorm) export(rmst_survspline) export(rmst_survspline0) export(rmst_survspline1) export(rmst_survspline2) export(rmst_survspline3) export(rmst_survspline4) export(rmst_survspline5) export(rmst_survspline6) export(rmst_survspline7) export(rmst_weibull) export(rmst_weibullPH) export(rsurvspline) export(rsurvspline0) export(rsurvspline1) export(rsurvspline2) export(rsurvspline3) export(rsurvspline4) export(rsurvspline5) export(rsurvspline6) export(rsurvspline7) export(rweibullPH) export(sim.fmsm) export(simfinal_fmsm) export(simfs_bytrans) export(standsurv) export(survrtrunc) export(tidy) export(totlos.fs) export(totlos.simfs) export(unroll.function) import(ggplot2) import(rlang) import(stats) importFrom(Matrix,nearPD) importFrom(Rcpp,sourceCpp) importFrom(deSolve,ode) importFrom(dplyr,bind_cols) importFrom(dplyr,bind_rows) importFrom(dplyr,distinct) importFrom(dplyr,full_join) importFrom(dplyr,group_by) importFrom(dplyr,inner_join) importFrom(dplyr,left_join) importFrom(dplyr,mutate) importFrom(dplyr,n) importFrom(dplyr,pull) importFrom(dplyr,rename) importFrom(dplyr,select) importFrom(dplyr,slice) importFrom(dplyr,summarise) importFrom(dplyr,ungroup) importFrom(generics,augment) importFrom(generics,glance) importFrom(generics,tidy) importFrom(graphics,lines) importFrom(graphics,plot) importFrom(magrittr,"%>%") importFrom(mstate,msfit) importFrom(mstate,probtrans) importFrom(muhaz,muhaz) importFrom(mvtnorm,rmvnorm) importFrom(numDeriv,grad) importFrom(numDeriv,hessian) importFrom(purrr,map2_dbl) importFrom(quadprog,solve.QP) importFrom(rlang,":=") importFrom(rlang,.data) importFrom(statmod,gauss.quad) importFrom(stats,predict) importFrom(stats,residuals) importFrom(survival,Surv) importFrom(survival,coxph) importFrom(survival,survfit) importFrom(survival,survreg) importFrom(survival,survreg.control) importFrom(tibble,as_tibble) importFrom(tibble,tibble) importFrom(tidyr,pivot_longer) importFrom(tidyr,pivot_wider) importFrom(tidyr,unnest) importFrom(tidyselect,all_of) importFrom(tidyselect,matches) importFrom(tidyselect,num_range) importFrom(utils,globalVariables) useDynLib(flexsurv, .registration = TRUE) flexsurv/NEWS.md0000644000176200001440000005230114657632123013240 0ustar liggesusers# Version 2.3.2 (2024-08-16) * Vignette source included to satisfy CRAN checks. * Fix of prediction with `spline="splines2ns"`. # Version 2.3.1 (2024-07-14) * Fix for simulating from semi-Markov models with `tcovs` option, which was not completing for some model configurations. * Fix for `simulate.flexsurvreg()` with vector `start` argument (#192). # Version 2.3 (2024-04-21) * Analytic Hessian calculation for models where this is possible, that is, Weibull, Gompertz, exponential, and spline models in hazard and odds scales. * Analytic gradient calculation for Weibull proportional hazards models. * Vignette now firmly warns against using flexsurv with time-dependent covariates (#176). * New argument `spline="splines2ns"` can now be specified to use an orthogonal spline basis in `flexsurvspline()`. * Weighted likelihood for relative survival models now implemented consistently with other models, as a weighted sum of individual log-likelihoods. * `standsurv` now returns results in the same order of times `t` as given by the user, for consistency with `summary.flexsurvreg`. * Quantiles of standardised survival now available in `standsurv`. * Non-default factor contrasts now handled. * `pmatrix.simfs` can now accept a vector of times `t` and has a `tidy` output option. * `BIC` and `AICc` functions added. * Column name of `predict()` output changed from `"time"` to `"eval_time"`, for consistency with tidymodels update. * Default value for `t` now chosen in `hr_flexsurvreg`. * `coxsnell.flexsurvreg` now handles delayed entry. * Warning given if the name of a location parameter is included in the ancillary part of the model specification. * Fix for computing quantiles for custom distributions (#187). Thank you to all who have contributed code for this version: @mikesweeting @stephematician @ndunnewind @mattwarkentin @hfrick @kkmann; or reported issues: @anddis @irtimmins @sbihorel @zou-ims @aghaynes @huftis @mafed @hezht3 @sebffischer (and anyone else who reported issues via email). # Version 2.2.2 (2023-01-31) * Allow unicode characters in vignette, to satisfy R CMD check on r-devel. # Version 2.2.1 (2022-12-22) * New `simulate.flexsurvreg` method to simulate data from a fitted `flexsurvreg()` or `flexsurvspline()` model. Thanks to Mark Clements for help with this. * Fix of bug for `summary()` method with type = `"quantile"` or `"median"` and left-truncation in the prediction (`start` > 0). * Correction to the examples and interpretation of Cox-Snell residuals. # Version 2.2 (2022-06-16) * New function `standsurv` for survival and hazards standardised over an observed distribution for covariates. Contributed by Michael Sweeting . See the new vignette about it. * New function `hr_flexsurvreg` to compute the hazard ratio from a fitted `flexsurvreg()` or `flexsurvspline()` model as a function of time, with confidence intervals. * `summary.flexsurvreg` has been rewritten to make it cleaner and faster. User-visible changes: - Custom summary functions in `summary.flexsurvreg` must now be vectorised. - A new argument `cross` specifies whether to compute summaries for all combinations of times t and covariate values, or for covariate values matched with corresponding times t, in custom summary functions. - Covariate names when `tidy=FALSE` now consistently don't include spaces. * Better handling of NAs in summary and prediction functions. Thanks to Matthew Warkentin. * New functions for Cox-Snell residuals: `coxsnell_flexsurvreg` or residuals(..., type="coxsnell"). * `rmst_generic`, `mean_survspline`, `rmst_survspline` and related functions (e.g. `mean_survspline1`) handle alternative parameter values in a vectorised way. * Allow output functions to work on models that have been stripped of data with `x$data <- NULL`, if possible. # Version 2.1 (2021-09-13) * Fix of a bug that affected models with baseline hazard offsets and exponential, Weibull, Gompertz and hazard/odds-based spline models, where convergence may have been falsely reported due to incorrect likelihood derivatives. * New vignette section and better help page documentation about relative survival models. * `start` parameter added to `predict.flexsurvreg`. * New function `pdf_flexsurmix` for the fitted density function in a `flexsurvmix` model. * Fix for tidy method with one-parameter exponential models. * Fixes for `h/Hgamma` and `h/Hlnorm` with `log = TRUE`. * Minor numerical improvements to `h/H` functions for some distributions. * Bug fix for `simfs_bytrans` when some transitions don't happen. * `NaNs produced` warnings should occur less often during fitting. # Version 2.0 (2021-02-22) * A new class of multi-state models based on mixtures (Larson and Dinse 1985). A new vignette on multi-state modelling describes this model class and contrasts it with standard (cause-specific hazards) multi-state models. * Different parametric families are now supported for different transitions in multi-state models. * New function `fmsm` allows a list of flexsurvreg objects to be associated with a particular transition structure matrix, to create a multi-state model. * New function `simfinal_fmsm` to summarise times and probabilities of final absorbing events in multi-state models, using simulation. * More features for right-truncated data. Individual-level right-truncation times supported with new "rtrunc" argument to flexsurvreg and flexsurvspline. A comparable non-parametric estimator for right-truncated data is provided in a new function, `survrtrunc`. Alternative parametric estimators, which make use of the time of an initiating event, are provided in a new function, `flexsurvrtrunc`. * A new vignette describes properties of the different built-in parametric distributions in more detail. * `qgeneric` is now vectorised, thanks to the `vuniroot` function imported from the `rstpm2` package by Mark Clements. This massively boosts the speed of `rsurvspline`, hence speeding up simulations from spline-based multi-state models. * `pmatrix.fs` can now calculate transition probabilities conditionally on the the transition being to one of a subset of the states. * "tidy" argument to `pmatrix.fs` for tidy data frame output. * "tidy" argument to `sim.fmsm` for returning simulations in tidy data frame format with one row per transition, and associated function `simfs_bytrans`. * Bootstrapping function `bootci.fmsm` made available for users to get confidence intervals / distributions for their own flexsurv model output functions. * Parallel processing capability for bootstrap confidence intervals. * Distribution and mean functions for the Royston-Parmar model named like `dsurvspline2`, `psurvspline4` and so on, with one argument per parameter, rather than all parameters collected in a single argument, going up to 7 knots / 9 parameters. * Return value from `pars.fmsm` is now a list rather than a matrix, even if the model family is the same for each transition. * `summary.flexsurvreg` given a new argument "na.action" to control whether missing values in "newdata" are dropped. Defaults to producing summaries of `NA` when there are missing values, while previously missing values were dropped. * S3 methods have been added for the generics defined in the broom package. These functions create tidy data frames containing the results of fitted models. The new functions are `tidy.flexsurvreg`, `glance.flexsurvreg`, and `augment.flexsurvreg`. * S3 methods have been added for the predict and residuals generics. `predict.flexsurvreg` has full support for all model outcomes supported by `summary.flexsurvreg`. `residuals.flexsurvreg` currently only supports a naive difference between observed survival and predicted mean, neglecting censoring. * Case weights accounted for in nonparametric survival and cumulative hazard estimates in `plot.flexsurvreg`. Thanks to https://github.com/andbe. # Version 1.1.1 (2019-03-18) * New type="quantiles" and type="link" for summary.flexsurvreg. Thanks to Leonardo Marques for the contribution. * Allow different covariates per transition in multi-state models supplied as a list of flexsurvreg objects. Thanks to David McAllister for the contribution. * Bug fix for qllogis with lower.tail=FALSE. * Bug fix for likelihood when all events are observed. * Bug fix for "ylim" argument in plot method for survival or cumulative hazard. * Allow dynamic symbols in C code. * Various other minor code and doc fixes, see github commit history. # Version 1.1 (2017-03-27) * Substantial speed improvements in fitting most of the built-in models, from implementing their PDFs and CDFs in C++. Thanks to Paul Metcalfe for contributing this. Results may therefore differ from previous versions in edge cases. * As a result the package now depends on Rcpp. * Mean, median and restricted mean included as built-in functions in summary.flexsurvreg. Thanks to Jordan Amdahl for the contribution. * Documentation migrated to roxygen. Thanks to Paul Metcalfe for the contribution. * Various minor bug fixes, see github commits. # Version 1.0.2 (2016-09-26) * Bug fix: "start" was being ignored by plot.flexsurvreg. Thanks to Ruth Keogh. * Built-in distribution names are now case-insensitive. Thanks to Jordan Amdahl. * Fix for Weibull hazard function to avoid numeric instability. Thanks to Jordan Amdahl. * Fix to hsurvspline when t includes 0. Thanks to Jordan Amdahl. * Vectorised parameters supported in qgeneric. # Version 1.0.1 (2016-05-31) * Bug fix: covariates were labelled wrongly in summary.flexsurvreg tidy output. Thanks to Owain Saunders. # Version 1.0.0 (2016-05-10) * Version number bumped to 1.0.0 to accompany the publication of the vignette in Journal of Statistical Software. # Version 0.7.1 (2016-03-24) * Slightly more efficient likelihood calculations, and removed spurious warning from likelihood with interval censoring. * Tests modified to work with the latest (and current) testthat. # Version 0.7 (2015-11-13) * flexsurvspline now allows the log cumulative hazard (or its alternatives) to be modelled as a spline function of time instead of log time. * The routine for generating initial values in flexsurvspline has been improved. This now obeys the constraint that the log cumulative hazard is increasing, thus avoiding errors from optim() when this wasn't satisfied. Cox regression is used as a fallback to initialise covariate effects if this fails. * As a result, flexsurv now depends on the "quadprog" package. * dweibullPH and related functions give the Weibull distribution in proportional hazards parameterisation, and "weibullPH" is supported as a built-in model for flexsurvreg. * Option to summary.flexsurvreg to return a tidy data frame. * New "logliki" component in model objects, containing vector of log-likelihoods for each observation at the estimated or fixed parameters. * Fix of various bugs with supplying "newdata" to summary functions (github issue #7). The behaviour here should now be like predict.lm, e.g. variables in newdata that were originally factors should be supplied as factor or character, not numeric. * Fix of bug that prevented plots being drawn by categorical covariates by default. * Fix of bugs with spline models and no data censored, or all data interval censored (github issue #3). * Fix of bugs with subsetting in flexsurvspline (github issue #6). # Version 0.6 (2015-04-13) * CRAN release. Also includes the changes from Version 0.5.1. * Full support for multi-state models fitted as a list of independent transition-specific models. * New function pars.fmsm to return transition-specific parameters in multi-state models. * Bug fix for empirical hazard plots with categorical covariates. Thanks to Milan Bouchet-Valat. # Version 0.5.1 (2015-02-24) * github-only release. * Log-logistic distribution built in to flexsurvreg, and distribution functions provided. * Bug fix in tcovs option in semi-Markov model simulation. * "digits" argument supported by default model print function. This is passed to "format" to format the parameter estimates, and defaults to 3. * Bug fix in "events" printed output for interval censored data. Thanks to Sabrina Russo. * pgompertz returns Inf for q=Inf, even for parameters denoting "living forever", since the CDF is P(X <= q) not P(X < q). This affected some fits of the Gompertz distribution. # Version 0.5 (2014-09-22) * Major new release, so version number bumped from 0.3 to 0.5. * New package vignettes: a user guide and a vignette of examples. * Development moved from r-forge to https://github.com/chjackson/flexsurv-dev. Spline models and ancillary covariates: * Major rewrite of flexsurvspline. This now works by calling flexsurvreg with a custom distribution written dynamically. Models can now include covariate effects that vary as spline functions of time, by including covariates on "gamma1" or on any further parameters. * New argument "anc" to flexsurvreg, as an alternative and preferred way of modelling covariates on ancillary parameters. * New general utility "unroll.function" which converts a function with matrix arguments to the equivalent function with vector arguments. The new flexsurvspline works by unrolling "dsurvspline". * Quantile, random number, hazard and cumulative hazard functions for spline distribution. * Autogeneration of initial values for flexsurvspline now accounts for left-truncation. Thanks to Ana Borges for the report. Other new modelling features: * Several utilities for parametric multi-state modelling, including transition probabilities and simulation ("pmatrix.fs", "totlos.fs", "sim.fmsm","pmatrix.simfs", "totlos.simfs"). An "msfit.flexsurvreg" method also gives cumulative transition-specific hazards in the format of the "mstate" package. * Interval censoring supported in the Surv() response. * Relative survival models, using the "bhazard" argument to flexsurvreg to specify the expected mortality rate. * flexsurvreg now uses survreg internally to fit Weibull, exponential and log-normal models, unless there is left-truncation. Custom distributions: * Custom distributions can be defined through the hazard function. This can be optionally supplemented with the cumulative hazard function, otherwise this is obtained by numerical integration. * In custom distributions specified by the density, the cumulative distribution can now be omitted, and it will be calculated by numerical integration. * New arguments "dfns" and "aux" to flexsurvreg, which can be used to supply custom distribution functions and arguments to pass to them. * Document that density functions for custom distributions need "log" argument. * Documented how to supply derivatives of custom distributions for use in optimisation. Output functions: * New "newdata" argument to summary.flexsurvreg and plot.flexsurvreg for an easier way of supplying covariate values. * User-defined summary functions can be used in summary.flexsurvreg and plot.flexsurvreg as an alternative to survival, hazard or cumulative hazard. * New function "normboot.flexsurvreg" to simulate parameters from the asymptotic normal distribution of their estimates. Used for representing uncertainty in any function of the parameters. * summary.flexsurvreg can be called with ci=FALSE to omit confidence intervals. * "start" argument defaults to 0 for all prediction times in summary.flexsurvreg. * Bug fix in summary.flexsurvreg for left-truncated models, which was returning probabilities > 1 before the truncation time. * New model.frame and model.matrix methods to extract the data from fitted flexsurvreg objects. * Accept vector X in summary.flexsurvreg, and give informative error if X in wrong format. Thanks to Mark Danese. * Extra arguments can be passed to both muhaz and plot.muhaz in plot.flexsurvreg(...,type="hazard",...) Printed output: * Use format() not signif() for printing flexsurvreg objects, to avoid spurious zero significant figures. Thanks to Kenneth Chen. * Standard errors included in printed output of flexsurvreg, but only for parameters optimised on natural or log scales (which includes all built-in distributions). Distribution functions: * Bug fix in rgengamma for Q=0 (log-normal) and sigma not equal to 1. * Don't warn for shape parameters being exactly zero in generalized gamma and F, just give NaN. * basis() and fss() functions for the natural cubic spline basis made available to users. # Version 0.3.1 (2014-02-14) * R-forge only release. * Distribution functions tidied up, making special value handling and vectorisation consistent. Hazard and cumulative hazard functions for all supported distributions. * Vectors of different col, lwd and lty can be passed to plot.flexsurvreg for multiple fitted lines. Thanks to Julia Sandberg for the report. # Version 0.3 (2014-01-19) * CRAN release. Includes changes from 0.2.1 to 0.2.3. # Version 0.2.3 (2013-10-09) * R-forge only release. * Parameters other than the location parameter can now have covariates on them in flexsurvreg. Thanks to Milan Bouchet-Valat for help with this. * subset and na.action arguments in flexsurvreg and flexsurvspline. * coef, vcov and confint methods for all fitted model objects. * Distribution functions for generalized gamma, generalized F, and Gompertz, now allow all parameters to be vectorised. * Bug fix in analytic derivatives for Weibull. * Restored print output introduced in 0.1.2 which had been accidentally removed in 0.1.5. # Version 0.2.2 (2013-07-26) * R-forge only release. * Case weights supported in flexsurvreg and flexsurvspline. # Version 0.2.1 (2013-07-03) * R-forge only release. * Default left truncation times were being set wrongly for user-supplied times in summary.flexsurvreg, giving wrong confidence intervals. These now default to 0. * Confidence intervals set to 1 for t=0 under spline models. Thanks to Paul Pynsent. * dgompertz,dgengamma,dgengamma.orig,dgenf,dgenf.orig fixed to return -Inf instead of 0 when density is zero and log=TRUE. Thanks to Gao Zheng. # Version 0.2 (2013-05-13) * New summary() method for fitted flexsurvreg and flexsurvspline model objects gives fitted survival, cumulative hazard or hazard curves, with confidence intervals mosly computed by a simulation method. * This allows plot.flexsurvreg to plot confidence intervals for the fitted survival, hazard or cumulative hazard. * Left-truncated survival observations are supported in flexsurvreg and flexsurvspline. * New psurvspline and dsurvspline functions giving distribution and density function for the spline model. * Analytic derivatives used in optimisation for spline (odds and hazard scale, not normal), exponential, Weibull and Gompertz models. * Default to BFGS optimisation method, which uses derivatives where available and should be much faster, instead of Nelder-Mead. * Work around NaN warnings from spline models presumably due to parameters violating implicit constraints. * If "knots" specified, boundary knots set to min/max of uncensored times, not all times, to match results when "k" is specified. Thanks to Paul Pynsent. # Version 0.1.5 (2012-08-29) * Data are now stored in fitted flexsurvreg and flexsurvspline model objects, avoiding environment search errors and allowing package functions to be called within other functions. Thanks to Hanna Daniel for the report. * Gompertz documentation clarified for the case when there is a chance of living forever. qgompertz and rgompertz now return Inf in these cases, with no warning, instead of NaN. Thanks to Michael Sweeting. # Version 0.1.4 (2012-03-22) * maxt argument in plot.flexsurvreg. * Plots no longer complain if data named "dat". * Corrected wrong bug fix from Version 0.1.3 for transforming parameter estimates in output when fixedpars=TRUE. * AIC penalty corrected for models with some fixed parameters. * qgengamma corrected for parameter Q<0. Thanks to Benn Ackley. # Version 0.1.3 (2012-01-17) * No longer complains about invalid initial values when there are zero survival times. * Don't transform parameter estimates in output when fixedpars=TRUE. * Checking functions for distribution utilities don't complain about vectorised parameter values. # Version 0.1.2 (2011-11-08) * Initial CRAN release. * More features in print output for flexsurvreg and flexsurvspline models. # Version 0.1.1 (2011-04-19) * Fix of drop=FALSE bug in flexsurvspline.inits which caused flexsurvspline to fail with single covariates. # Version 0.1 (2011-03-14) Initial release flexsurv/inst/0000755000176200001440000000000014657665216013127 5ustar liggesusersflexsurv/inst/CITATION0000644000176200001440000000135113231112051014227 0ustar liggesusersbibentry(bibtype = "Article", title = "{flexsurv}: A Platform for Parametric Survival Modeling in {R}", author = person(given = "Christopher", family = "Jackson", email = "chris.jackson@mrc-bsu.cam.ac.uk"), journal = "Journal of Statistical Software", year = "2016", volume = "70", number = "8", pages = "1--33", doi = "10.18637/jss.v070.i08", header = "To cite flexsurv in publications use:", textVersion = paste("Christopher Jackson (2016).", "flexsurv: A Platform for Parametric Survival Modeling in R.", "Journal of Statistical Software, 70(8), 1-33.", "doi:10.18637/jss.v070.i08") ) flexsurv/inst/doc/0000755000176200001440000000000014657665171013674 5ustar liggesusersflexsurv/inst/doc/standsurv.Rmd0000644000176200001440000010446014417276462016371 0ustar liggesusers--- title: "Calculating standardized survival measures in flexsurv" author: "Michael Sweeting^[mikesweeting79@gmail.com]" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Calculating standardized survival measures in flexsurv} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} bibliography: "standsurv.bib" --- ```{r, include = FALSE} knitr::opts_chunk$set( fig.dim = c(8, 6), collapse = TRUE, comment = "#>" ) ``` # Background ## Standardized survival measures `standsurv` is a post-estimation command that takes a `flexsurvreg` object and calculates standardized survival measures. After fitting a parametric survival model in `flexsurv` it is often useful to compute and visualise the marginal (or standardized) survival. For example, suppose a survival model is fitted adjusted for treatment group, age, and sex. A separate predicted survival curve can be obtained for each individual based on their covariate pattern or a prediction can be obtained by setting covariates to their mean values (both can be obtained using `summary.flexsurvreg`), but it may be more useful to obtain the marginal survival for each treatment group. Regression standardization achieves this by fitting a regression model including the treatment group $Z$, covariates $X$ and possible interactions between $X$ and $Z$. The standardized survival can be estimated by obtaining predictions for every individual in the study under each fixed treatment arm and averaging these individual-specific estimates. The marginal survival over the distribution of covariates in the study assuming all participants were assigned to arm $Z=z$ is: \begin{equation} S_s(t|Z=z) = E[S(t | Z=z, X)] = \frac{1}{N} \sum_{i=1}^{N} S(t | Z=z, X=x_i) \end{equation} for covariate values (vectors) $x_1,...,x_{N}$. Here standarization is done over all $N$ patients in the study and provides a counterfactual marginal estimate when setting $Z=z$. The standardized survival is therefore an estimate of the marginal survival if all study patients had been assigned to group $z$. Under certain assumptions, differences in marginal survival provide estimates of causal effects (@syriopoulou_inverse_2021) and certain estimands such as the average treatment effect (ATE) can be targeted: $$ ATE = S_s(t|Z=z_1) - S_s(t|Z=z_0)]$$ Alternatively, an average treatment effect in the treated (ATET) estimand can be targeted by averaging over only patients who were in the intervention treatment arm $Z=z_1$. Standardization estimates can also be obtained for other target populations of interest. For example it may be important to predict survival in an external population with different characteristics to the study population. The hazard function for the standardized survival can be obtained to understand how the shape of the hazard changes over time. This provides an estimate of the marginal hazard. It can be shown (@rutherford_nice_2020, Appendix I) that the hazard of the standardized survival can be calculated as \begin{equation} h_s(t|Z=z) = \frac{\sum_{i=1}^{N} S(t|Z=z,X=x_i)h(t|Z=z,X=x_i)}{\sum_{i=1}^{N} S(t | Z=z, X=x_i)} \end{equation} This is a weighted average of the $N$ individual hazard functions, weighted by the probability of survival at time $t$. Patients who are unlikely to have survived to $t$ will contribute less weight to this hazard function. ## Calculating marginal expected survival and hazard In economic evaluations parametric survival models are used to extrapolate clinical trial data to estimate lifetime benefits. In this context it is often useful to plot marginal 'expected' (general population) survival alongside parametric models fitted and extrapolated from trial data in order to aid interpretation and for a visual comparison between the trial subjects and the population at large. Displaying expected survival and hazard functions can aid understanding of whether the assumed hazard and survival functions are credible (@rutherford_nice_2020). Expected survival is defined as the all-cause survival in a general population with the same key characteristics as the study subjects. General population mortality rates are often taken from national lifetables that are stratified by age, sex, calendar year and occasionally other prognostic factors (e.g. deprivation indices). The Ederer or "exact" method for estimating expected survival assumes subjects in the trial population are not censored before the end of a stated follow-up time [@ederer_relative_1961]. The expected survival is then the survival we would expect to see in an age-sex matched general population if all patients are continuously followed-up. This is the approach used by `standsurv` to calculate expected survival and is the "most appropriate when doing forcasting, sample size calculations or other predictions of the 'future' where censoring is not an issue" [@therneau_1999]. Based on the exact method, the marginal expected survival using background mortality rates is calculated using all $N$ patients in the trial at any time point $t$: \begin{equation} S^*(t) = \frac{1}{N} \sum_{i=1}^N S_i^*(t) \end{equation} where $S_i^*(t)$ is the expected survival for the $i$th subject at time $t$. It follows that the marginal expected hazard is a weighted average of the expected hazard rates: \begin{equation} h^*(t) = \frac{ \sum_{i=1}^N S_i^*(t) h_i^*(t)}{\sum_{i=1}^N S_i^*(t)} \end{equation} The expected survival for the $i$th subject at follow-up time $t$ is calculated based on matching to the general population hazard rates. If lifetables are utilised these often provide mortality rates by sex ($s$), age ($a$) and calendar year ($y$), in yearly or 5-yearly categories. In practice the expected survival at time $t$ for a given subject is calculated from the cumulative hazard. At a given follow-up time $t$ this is the sum of $h^*_{asy} \times \textrm{Number of days in state } (a,s,y)$ in the follow-up where $h^*_{asy}$ is the expected hazard for age $a$, sex $s$, year $y$. This requires follow-up time for each individual in the study dataset to be split by multiple timescales (e.g. age and year) into time epochs, which can be visualised as a Lexis diagram. Each epoch can then be matched to a corresponding expected mortality rate. ## Incorporation of background mortality into survival models Incorporating background mortality into survival models directly is recommended as it helps avoid extremely implausible projections (@rutherford_nice_2020). This can be done using an excess mortality / relative survival model where population based 'expected' rates, often from life tables, are introduced to explain background mortality. The concept behind these models is to partition the all-cause mortality into excess mortality caused by the disease of interest and that due to other causes. A parametric model can then be applied to the isolated excess mortality. This may be particularly useful when making long-term extrapolations as the pattern of disease-specific mortality and other cause mortality are likely to be very different over time. Alternatively, if cause of death information is available and reliable, a separate cause-specific model can be fitted to the disease-specific mortality and other cause mortality. The all-cause mortality rate at time $t$ for individual $i$ can be partitioned into two constituent parts: \begin{equation} h_i(t) = h^*_i(t) + \lambda_i(t) \end{equation} where $h_i(t)$ is the all-cause mortality rate (hazard), $h^*_i(t)$ is the expected or background mortality rate and $\lambda_i(t)$ is the excess mortality rate. Equivalently, the hazard rates can be transformed to the survival scale which gives the all-cause survival at time $t$ as the product of the expected survival and the relative survival: \begin{equation} S_i(t) = S^*_i(t) R_i(t) \end{equation} The relative survival, $R_i(t)$, is therefore the ratio of all-cause survival and the expected survival in the background population. Typically, $h_i^*(t)$ (and hence $S_i^*(t)$) are obtained from population lifetables. The expected mortality rates are assumed to be fixed and known and a parametric model is then used to estimate the relative survival (or equivalently excess hazard). # `standsurv` `standsurv` is a post-estimation command that takes a `flexsurv` regression and calculates standardized survival measures and contrasts. Expected mortality rates and survival can also be obtained. The main features of the command are that it enables the calculation and plotting over any specified follow-up times of 1. Marginal survival, hazard and restricted mean survival time (RMST) metrics 2. Marginal expected (population) survival and hazard functions matched to the study population 3. Marginal all-cause survival and all-cause hazard after fitting relative survival models 4. Contrasts in survival, hazard and RMST metrics (e.g. marginal hazard ratio, differences in marginal RMST) 5. Confidence intervals and standard errors for all measures and contrasts using either the delta method or bootstrapping Through a simple syntax the user can specify the groups that they wish to calculate the marginal metrics. These groups can be formed by any combination of covariate values. ## A worked example: the pbc dataset For this example we will use data from the German Breast Cancer Study Group 1984-1989, which is the R dataset `bc` found in the `flexsurv` package. This dataset has death, or censoring times for 686 primary node positive breast cancer patients together with a 3-level prognostic group variable with levels "Good", "Medium" and "Poor". For this demonstration we collapse the prognostic variable into 2 levels: "Good" and "Medium/Poor". We also create some artificial ages and diagnosis dates for the patients, along with assuming all patients are female. We allow a correlation between the age at diagnosis for a patient and their survival time so that age is a prognostic variable. The mean age is 65 with a standard deviation of 5. We load this dataset and create these additional variables. ```{r, message = FALSE, warning = FALSE} library(flexsurv) library(flexsurvcure) library(ggplot2) library(dplyr) library(survminer) ``` ```{r} data(bc) set.seed(236236) ## Age at diagnosis is correlated with survival time. A longer survival time ## gives a younger mean age bc$age <- rnorm(dim(bc)[1], mean = 65 - scale(bc$recyrs, scale=F), sd = 5) ## Create age at diagnosis in days - used later for matching to expected rates bc$agedays <- floor(bc$age * 365.25) ## Create some random diagnosis dates between 01/01/1984 and 31/12/1989 bc$diag <- as.Date(floor(runif(dim(bc)[1], as.Date("01/01/1984", "%d/%m/%Y"), as.Date("31/12/1989", "%d/%m/%Y"))), origin="1970-01-01") ## Create sex (assume all are female) bc$sex <- factor("female") ## 2-level prognostic variable bc$group2 <- ifelse(bc$group=="Good", "Good", "Medium/Poor") head(bc) ``` A plot of the Kaplan-Meier shows a clear separation in the survival curves between the two prognostic groups. ```{r} km <- survfit(Surv(recyrs, censrec)~group2, data=bc) kmsurvplot <- ggsurvplot(km) kmsurvplot + xlab("Time from diagnosis (years)") ``` ## A stratified Weibull model We start by fitting a Weibull model to each group separately. One way to do this is to fit a single saturated model whereby group affects both the scale and shape parameters of the Weibull distribution. This effectively means we have a separate scale and shape parameter for each group, which is equivalent to fitting two separate models. Such a model does not make a proportional hazards assumption and hence the hazard ratio will change over time. The saturated model approach has advantages as we can use the model to easily investigate treatment effects using `standsurv` as we shall see later. Including group in the main formula of `flexsurvreg` allows group to affect the scale parameter of the Weibull distribution whilst we use the `anc` argument in `flexsurvreg` to additionally allow group to affect the shape parameter. ```{r} model.weibull.sep <- flexsurvreg(Surv(recyrs, censrec)~group2, anc = list(shape = ~ group2), data=bc, dist="weibullPH") model.weibull.sep ``` Given that the model only contains `group2` and no other covariates we can obtain the predicted (fitted) survival for each of the two groups using the `summary` function and storing these predictions in a tidy data.frame with the argument `tidy=T`. ```{r} predictions <- summary(model.weibull.sep, type = "survival", tidy=T) ggplot() + geom_line(aes(x=time, y=est, color = group2), data=predictions) + geom_step(aes(x=time, y=surv, group=strata), data=kmsurvplot$data.survplot) ``` The Weibull model does not appear to fit the data very well and so we should try other parametric distributions. However, for illustration purposes we shall continue using the Weibull model. We will now show that the same predictions can be obtained from `standsurv` but with the benefit of addition flexibility. ## Using `standsurv` to calculate marginal survival `standsurv` works similarly to the `margins` command in `R` and `standsurv` in Stata by allowing the user to specify a list of scenarios in which specific covariates are fixed to certain values. This is done using the `at` argument of `standsurv` to provide the list of scenarios where each scenario is itself a list containing covariates that are to be fixed. In our worked example the two scenarios are `list(group2 = "Good")` and `list(group2 = "Medium/Poor")`. Any covariates not specified in the `at` scenarios are averaged over, hence creating marginal, or standardized, estimates of the metric of interest. In the example above, there are no other covariates in the model so we will get the same answer as obtained from `summary`. But the later worked example extends this to models containing other covariates. The default is to calculate survival probabilities at the event times in the data but this can be changed with the `type` and `t` arguments, respectively. The returned object is a tidy data.frame with columns named `at1` up to `atn` for the n scenarios specified in the `at` argument. ```{r} ss.weibull.sep.surv <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) ss.weibull.sep.surv ``` Further details such as labels for the `at` scenarios are stored in attributes of the `standsurv` object. These are utilised by the `plot` function. A plot of the marginal estimates can be easily produced using the `plot` function, which produces a `ggplot` object. ```{r} plot(ss.weibull.sep.surv) ``` The plot can be easily further manipulated, for example by changing axis labels and adding further plots. ```{r} plot(ss.weibull.sep.surv) + xlab("Time since diagnosis (years)") + geom_step(aes(x=time, y=surv, group=strata), data=kmsurvplot$data.survplot) ``` ## Other metrics: marginal hazards and marginal RMST We can use the `type` argument to calculate marginal hazards or restricted mean survival time (RMST). For example a plot of the hazard functions for the two groups is obtained as follows: ```{r} ss.weibull.sep.haz <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) plot(ss.weibull.sep.haz) + xlab("Time since diagnosis (years)") ``` Whilst a plot of RMST is given by ```{r} ss.weibull.sep.rmst <- standsurv(model.weibull.sep, type = "rmst", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) plot(ss.weibull.sep.rmst) + xlab("Time since diagnosis (years)") ``` ## Calculating contrasts The advantage of fitting a saturated model now becomes clear as we can calculate contrasts between our `at` scenarios. Suppose we are interested in the difference in the survival functions between the two groups. This is easily calculated using the `contrast = "difference"` argument, and a plot of the contrast can be obtained using `contrast = TRUE` argument in the `plot` function. ```{r} ss.weibull.sep.3 <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), contrast = "difference") plot(ss.weibull.sep.3, contrast=TRUE) + xlab("Time since diagnosis (years)") + ylab("Difference in survival probabilities") + geom_hline(yintercept = 0) ``` Alternatively, we may wish to visualise the implied hazard ratio from fitting separate Weibull models to the two groups. In the breast cancer example we see that the hazard ratio (treatment effect) starts very high before decreasing, suggesting that those with Medium/Poor prognosis start with a high elevated risk but have a continued excess risk up to the end of follow-up, compared to those with Good prognosis. ```{r} ss.weibull.sep.4 <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), contrast = "ratio") plot(ss.weibull.sep.4, contrast=TRUE) + xlab("Time since diagnosis (years)") + ylab("Hazard ratio") + geom_hline(yintercept = 1) ``` ## Confidence intervals and standard errors Confidence intervals and standard errors for both the metric of interest and contrasts can be obtained either through bootstrapping or using the delta method. Bootstrap confidence intervals are calculated by specifying `ci = TRUE`, `boot = TRUE`, and providing the number of bootstrap samples using `B`. We can also set the seed using the `seed` argument to allow reproducibility. If instead the delta method is to be used to obtain confidence intervals then we specify `ci = TRUE`, `boot = FALSE`. The delta method obtains confidence intervals by calculating standard errors for a given transformation of the metric of interest and then assuming normality. The default is to use a log transformation; hence if `type = "survival"` the confidence intervals are symmetric for the log survival probabilities. Alternative transformations can be specified using the `trans` argument. The code below shows confidence intervals for marginal survival calculated through a bootstrap method (with `B = 100`) compared to a delta method. For computational efficiency here we only predict for 10 time points. ```{r} ss.weibull.sep.boot <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=10), ci = TRUE, boot = TRUE, B = 100, seed = 2367) ss.weibull.sep.deltam <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=10), ci = TRUE, boot = FALSE) plot(ss.weibull.sep.boot, ci = TRUE) + geom_ribbon(aes(x=time, ymin=survival_lci, ymax=survival_uci, color=at, linetype = "Delta method"), fill=NA, data=attr(ss.weibull.sep.deltam,"standpred_at")) + scale_linetype_manual(values = c("Bootstrap" = "solid", "Delta method"= "dashed")) + ggtitle("Comparison of bootstrap and delta method confidence intervals") ``` ## Adding age as a covariate Suppose age has been added as a covariate to the survival model. If age is not included in our `at` scenarios `standsurv` will by default produce standardized estimates of survival averaged over the age distribution in our study population. Alternatively we could pass a new prediction dataset to `standsurv` and obtain standardized estimates for this population. As an example, we obtain marginal survival estimates after fitting a stratified Weibull model, firstly standardized to the age-distribution of our study population and secondly standardized to an older population with mean age of 75 and standard deviation 5. ```{r} model.weibull.age.sep <- flexsurvreg(Surv(recyrs, censrec)~group2 + age, anc = list(shape = ~ group2 + age), data=bc, dist="weibullPH") ## Marginal survival standardized to age distribution of study population ss.weibull.age.sep.surv <- standsurv(model.weibull.age.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50) ) ## Marginal survival standardized to an older population # create a new prediction dataset as a copy of the bc data but whose ages are drawn from # a normal distribution with mean age 75, sd 5. newpred.data <- bc set.seed(247) newpred.data$age = rnorm(dim(bc)[1], 75, 5) ss.weibull.age2.sep.surv <- standsurv(model.weibull.age.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), newdata=newpred.data) ## Overlay both marginal survival curves plot(ss.weibull.age.sep.surv) + geom_line(aes(x=time, y=survival, color=at, linetype = "Older population"), data = attr(ss.weibull.age2.sep.surv, "standpred_at") ) + scale_linetype_manual(values = c("Study" = "solid", "Older population"= "dashed")) ``` ## Calculating expected survival and hazard in `standsurv` To overlay marginal expected survival or hazard curves we require a lifetable of population hazard rates. To demonstrate we use the US lifetable that comes with the `survival` package, called `survexp.us`. Other lifetables can be obtained directly from the Human Mortality Database (HMD) using the `HMDHFDplus` package. The `survexp.us` lifetable is a `ratetable` object with stratification factors age, sex and year. It gives rates of mortality per person-day for combinations of the stratification factors. A summary of the `survexp.us` object shows that the time-scale is in days. ```{r} summary(survexp.us) ``` To use the lifetable to get expected rates for our trial population we need to match age, sex and year variables in our dataset to those in the ratetable. We can use the `rmap` argument to do this. `standsurv` utilises the `survexp` function in the `survival` package to calculate expected survival over the times specified in `t` using the 'exact' method of Ederer. We note that sex in our data is coded the same as in the `ratetable` ("male" and "female") and importantly that we have variables that record both age at diagnosis and diagnosis date in days. It is important that the user ensures that the study data are correctly coded and have variables on the same timescale as in the `ratetable` so that matching is successful. The code below demonstrates that for our data we therefore need to match the `year` variable in the `ratetable` to the `diag` variable in our study data, and the `age` variable in the `ratetable` to the `agedays` variable in our study data. We need to specify three more arguments in `standsurv`. First, the lifetable, which must be a `ratetable` object and is specified using the `ratetable` argument. Second, we may need to pass our trial dataset to `standsurv` if the stratifying factors do not appear as covariates in the `flexsurv` model. Finally, we need to be careful to tell `standsurv` what the time scale transformation is between the fitted `flexsurv` model and the time scale in `ratetable`. We can use the `scale.ratetable` argument to do this. Typically ratetable objects are expressed in days (e.g. rates per person-day). The default is therefore `scale.ratetable = 365.25`, which indicates that the survival model was fitted in years but the ratetable is in days. After running `standsurv` we can plot the expected survival (or hazard) by using the argument `expected = TRUE` in the `plot()` function. ```{r} ss.weibull.sep.expected <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.expected, expected = T) ``` We can see that the marginal expected survival is much higher than the marginal (predicted) survival for our breast cancer population. We can also obtain the expected hazards: ```{r} ss.weibull.sep.expectedh <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.expectedh, expected = T) ``` The hazard plot shows that our model is predicting an increasing hazard over time for the cancer population, which remains significantly higher than the expected hazard in the general population. The monotonically increasing hazard imposed by the Weibull distribution may be implausible and this may make us question the suitability of a Weibull model if we wish to extrapolate. ## Incorporation of background mortality A relative survival model can be fitted using `flexsurv` by incorporating background mortality rates. The model then estimates excess hazard rates and relative survival measures. For prediction purposes, following the fitting of a relative survival model, `standsurv` allows the user to either obtain marginal predictions of relative survival / excess hazard or of all-cause survival / all-cause hazard. The latter are calculated by multiplying relative survival estimates with expected survival to get all-cause survival, or by adding excess hazard rates to expected hazard to get all-cause hazard. We demonstrate this by fitting a relative survival cure model to the breast cancer data and obtaining predicted all-cause survival and all-cause hazard up to 30-years after diagnosis. A mixture cure model makes the assumption that a proportion of the study population will never experience the event. In a relative survival framework the cure model assumes that the excess mortality rate approaches zero (or equivalently the relative survival reaches an asymptote determined by the cure fraction). We fit a relative survival cure model with a Weibull distribution assumed for the uncured. The relative survival mixture-cure model is fitted below. We must pass to `flexsurvcure` the expected hazard rates at the event / censoring time for each individual, as it is the expected rates at the event times that are used in the likelihood function for a parametric relative survival model. For this we need to initally do some data wrangling. Firstly, we calculate attained age and attained year (in whole years) at the event time for all study subjects. Secondly, we join the data with the expected rates using the matching variables attained age, attained year and sex. In the example, we express the expected rate as per person-year as this is the timescale used in the flexsurv regression model. ```{r} ## reshape US lifetable to be a tidy data.frame, and convert rates to per person-year as flexsurv regression is in years survexp.us.df <- as.data.frame.table(survexp.us, responseName = "exprate") %>% mutate(exprate = 365.25 * exprate) survexp.us.df$age <- as.numeric(as.character(survexp.us.df$age)) survexp.us.df$year <- as.numeric(as.character(survexp.us.df$year)) ## Obtain attained age and attained calendar year in (whole) years bc <- bc %>% mutate(attained.age.yr = floor(age + recyrs), attained.year = lubridate::year(diag + rectime)) ## merge in (left join) expected rates at event time bc <- bc %>% left_join(survexp.us.df, by = c("attained.age.yr"="age", "attained.year"="year", "sex"="sex")) # A stratified relative survival mixture-cure model model.weibull.sep.rs <- flexsurvcure(Surv(recyrs, censrec)~group2, anc = list(shape = ~ group2, scale = ~ group2), data=bc, dist="weibullPH", bhazard=exprate) model.weibull.sep.rs ``` We can now use `standsurv` to obtain all-cause survival and hazard predictions using `type = "survival"` and `type = "hazard"`. If instead we had wanted predictions of relative survival or excess hazards we would use `type = "relsurvival"` and `type = "excesshazard"`, respectively. ```{r} ## All-cause survival ss.weibull.sep.rs.surv <- standsurv(model.weibull.sep.rs, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.surv, expected = T) # All-cause hazard ss.weibull.sep.rs.haz <- standsurv(model.weibull.sep.rs, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.haz, expected = T) ``` The marginal excess hazard is now unimodal since the cure model is forcing the initially increasing excess hazard to tend to zero in the long-term where only 'cured' subjects remain. The marginal all-cause hazard tends to the expected hazard and follows it thereafter. A plot of the excess hazard confirms this. ```{r} # Excess hazard ss.weibull.sep.rs.excesshaz <- standsurv(model.weibull.sep.rs, type = "excesshazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.excesshaz) ``` # Conclusions `standsurv` is a powerful post-estimation command that allows easy calculation of a number of useful prediction metrics. Contrasts can be made between any counterfactual populations of interest and, through regression standardisation, allows the targeting of marginal estimands. Confidence intervals, via the delta method or bootstrapping, are available and benchmarking against or incorporating background mortality rates is also supported. # References flexsurv/inst/doc/flexsurv.R0000644000176200001440000002136014657664736015705 0ustar liggesusers## ----echo=FALSE------------------------------------------- options(width=60) options(prompt="R> ") library(knitr) opts_chunk$set(fig.path="flexsurv-") render_sweave() ## ----results='hide'--------------------------------------- library("flexsurv") ## --------------------------------------------------------- head(bc, 2) ## --------------------------------------------------------- fs1 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") ## --------------------------------------------------------- fs1 ## --------------------------------------------------------- survreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") ## ----results='hide',eval=FALSE---------------------------- # library(eha) # aftreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") ## --------------------------------------------------------- fs2 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "gengamma") fs3 <- flexsurvreg(Surv(recyrs, censrec) ~ group + sigma(group), data = bc, dist = "gengamma") ## ----eval=FALSE------------------------------------------- # fs3 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, # anc = list(sigma = ~ group), dist = "gengamma") ## ----surv,include=FALSE----------------------------------- cols <- c("#E495A5", "#86B875", "#7DB0DD") # from colorspace::rainbow_hcl(3) plot(fs1, col = cols[2], lwd.obs = 2, xlab = "Years", ylab = "Recurrence-free survival") lines(fs2, col = cols[3], lty = 2) lines(fs3, col = cols[3]) text(x=c(2,3.5,4), y=c(0.4, 0.55, 0.7), c("Poor","Medium","Good")) legend("bottomleft", col = c("black", cols[2], cols[3], cols[3]), lty = c(1, 1, 2, 1), bty = "n", lwd = rep(2, 4), c("Kaplan-Meier", "Weibull", "Generalized gamma (AFT)", "Generalized gamma (time-varying)")) ## ----haz,include=FALSE------------------------------------ plot(fs1, type = "hazard", col = cols[2], lwd.obs = 2, max.time=6, xlab = "Years", ylab = "Hazard") lines(fs2, type = "hazard", col = cols[3], lty = 2) lines(fs3, type = "hazard", col = cols[3]) text(x=c(2,2,2), y=c(0.3, 0.13, 0.05), c("Poor","Medium","Good")) legend("topright", col = c("black", cols[2], cols[3], cols[3]), lty = c(1, 1, 2, 1), bty = "n", lwd = rep(2, 4), c("Kernel density estimate", "Weibull", "Gen. gamma (AFT)", "Gen. gamma (time-varying)")) ## --------------------------------------------------------- median.weibull <- function(shape, scale) { qweibull(0.5, shape = shape, scale = scale) } summary(fs1, fn = median.weibull, t = 1, B = 10000) ## ----eval=FALSE------------------------------------------- # custom.llogis <- list(name = "llogis", pars = c("shape", "scale"), # location = "scale", # transforms = c(log, log), # inv.transforms = c(exp, exp), # inits = function(t){ c(1, median(t)) }) # fs4 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, # dist = custom.llogis) ## ----eval=FALSE------------------------------------------- # dmakeham3 <- function(x, shape1, shape2, scale, ...) { # dmakeham(x, shape = c(shape1, shape2), scale = scale, ...) # } # pmakeham3 <- function(q, shape1, shape2, scale, ...) { # pmakeham(q, shape = c(shape1, shape2), scale = scale, ...) # } ## ----eval=FALSE------------------------------------------- # dmakeham3 <- Vectorize(dmakeham3) # pmakeham3 <- Vectorize(pmakeham3) ## ----eval=FALSE------------------------------------------- # pmakeham3(c(0, 1, 1, Inf), 1, c(1, 1, 2, 1), 1) ## ----echo=FALSE------------------------------------------- options(warn=-1) ## --------------------------------------------------------- hweibullPH <- function(x, shape, scale = 1, log = FALSE){ hweibull(x, shape = shape, scale = scale ^ {-1 / shape}, log = log) } HweibullPH <- function(x, shape, scale = 1, log = FALSE){ Hweibull(x, shape = shape, scale = scale ^ {-1 / shape}, log = log) } custom.weibullPH <- list(name = "weibullPH", pars = c("shape", "scale"), location = "scale", transforms = c(log, log), inv.transforms = c(exp, exp), inits = function(t){ c(1, median(t[t > 0]) / log(2)) }) fs6 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = custom.weibullPH) fs6$res["scale", "est"] ^ {-1 / fs6$res["shape", "est"]} - fs6$res["groupMedium", "est"] / fs6$res["shape", "est"] - fs6$res["groupPoor", "est"] / fs6$res["shape", "est"] ## ----echo=FALSE------------------------------------------- options(warn=0) ## --------------------------------------------------------- sp1 <- flexsurvspline(Surv(recyrs, censrec) ~ group, data = bc, k = 1, scale = "odds") ## --------------------------------------------------------- sp2 <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group), data = bc, k = 1, scale = "odds") ## ----splinehaz,include=FALSE------------------------------ plot(sp1, type = "hazard", col=cols[3], ylim = c(0, 0.5), xlab = "Years", ylab = "Hazard") lines(sp2, type = "hazard", col = cols[3], lty = 2) lines(fs2, type = "hazard", col = cols[2]) text(x=c(2,2,2), y=c(0.3, 0.15, 0.05), c("Poor","Medium","Good")) legend("topright", col = c("black",cols[c(3,3,2)]), lty = c(1,1,2,1), lwd = rep(2,4), c("Kernel density estimate","Spline (proportional odds)", "Spline (time-varying)","Generalized gamma (time-varying)")) ## --------------------------------------------------------- sp3 <- flexsurvspline(Surv(recyrs, censrec) ~ group, data = bc, k = 1, scale = "hazard") sp3$res[c("groupMedium", "groupPoor"), c("est", "se")] cox3 <- coxph(Surv(recyrs, censrec) ~ group, data = bc) coef(summary(cox3))[ , c("coef", "se(coef)")] ## --------------------------------------------------------- sp4 <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group) + gamma2(group), data = bc, k = 1, scale = "hazard") ## ----eval=FALSE------------------------------------------- # flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group) + # gamma2(group) + treat + gamma1(treat), # data = bc, k = 1, scale = "hazard") ## --------------------------------------------------------- res <- t(sapply(list(fs1, fs2, fs3, sp1, sp2, sp3, sp4), function(x)rbind(-2 * round(x$loglik,1), x$npars, round(x$AIC,1)))) rownames(res) <- c("Weibull (fs1)", "Generalized gamma (fs2)", "Generalized gamma (fs3)", "Spline (sp1)", "Spline (sp2)", "Spline (sp3)", "Spline (sp4)") colnames(res) <- c("-2 log likelihood", "Parameters", "AIC") ## ----size="scriptsize"------------------------------------ res ## --------------------------------------------------------- gamma <- sp1$res[c("gamma0", "gamma1", "gamma2"), "est"] 1 - psurvspline(5, gamma = gamma, knots = sp1$knots) ## --------------------------------------------------------- pfn <- unroll.function(psurvspline, gamma = 0:2) 1 - pfn(5, gamma0 = gamma[1], gamma1 = gamma[2], gamma2 = gamma[3], knots = sp1$knots) ## --------------------------------------------------------- hsurvspline.lh <- function(x, gamma, knots){ if(!is.matrix(gamma)) gamma <- matrix(gamma, nrow = 1) lg <- nrow(gamma) nret <- max(length(x), lg) gamma <- apply(gamma, 2, function(x)rep(x, length = nret)) x <- rep(x, length = nret) loghaz <- rowSums(basis(knots, log(x)) * gamma) exp(loghaz) } ## --------------------------------------------------------- hsurvspline.lh3 <- unroll.function(hsurvspline.lh, gamma = 0:2) ## --------------------------------------------------------- custom.hsurvspline.lh3 <- list( name = "survspline.lh3", pars = c("gamma0", "gamma1", "gamma2"), location = c("gamma0"), transforms = rep(c(identity), 3), inv.transforms = rep(c(identity), 3) ) dtime <- log(bc$recyrs)[bc$censrec == 1] ak <- list(knots = quantile(dtime, c(0, 0.5, 1))) ## ----eval=FALSE------------------------------------------- # sp5 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, aux = ak, # inits = c(0, 0, 0, 0, 0), # dist = custom.hsurvspline.lh3, # method = "L-BFGS-B", lower = c(-Inf, -Inf, -0.5), # upper = c(Inf, Inf, 0.5), # control = list(trace = 1, REPORT = 1)) flexsurv/inst/doc/distributions.pdf0000644000176200001440000066471314657665141017307 0ustar liggesusers%PDF-1.5 %ÐÔÅØ 1 0 obj << /S /GoTo /D [2 0 R /Fit] >> endobj 5 0 obj << /Length 2976 /Filter /FlateDecode >> stream xڽɎÇõ>_AäDb¹»ªz3 ²â%2 òødùÐ${f(q¤¯ÏÛjkG‚ãä@²»¶·¯Åbr?)&?Þ£ßïno¾ù¡®&e£tYÙÉí<¶ªª&.Ui»ÉíròÛôMQVÏÊéð¾Žð9àë|¾}6³ÖLÿ¾’‰N¬æ¸ßpx·=>›£§85Üá|øµ…Ïbxöûí+F¢T]UiD¢Öª®ëÉÌtÊ5#ñò÷áùi·‡ï:‹ÏÿIñï+êÏt3}‡Xí¶ À˜IY¨®èJ03•*L;™•FUŽÌÂú׸ñ%žd¦ßþ­?!`G%>/è…Öýº•ÉÓsFá%¢°Á“æ™ZÂç~ù_Fœn UŠÉ„!¯4MŒ*ˆÃT)¢ÛsCRðy‹p‘©ðy'ã;aôß೑=8?ƒÏÜÉSö/dÿFÞÝYJÖ¼c´Ey¾¿½ySÚå¤-Ah­jÛÉbsóÛïÅd ï€.Óµ“GZ´™X‹Ëד_nþ}U;ÕÕºFÂu«•©›I]Ôª‚"ý¢íU­_œ”Ü/‰;œ4+«N•ÈÄNiݸ“HxA-éIt’Ätv’x-.Ûøù$2©¥Å)’Ëüì´%6Å‘õ‰V$"ÝÒÒŸ‡&‡Êý1²7Òã¶JôØj°Üf2Ó•j Ôý,Fö >€o¥§ËcÎ l­l…"¡mß26dzPðaEP«zÚ¯I Óc¡ƒÁª¢ì¾Vê$å Ã7 fÓyªzÄöþ¼‰P!è§]ð¼,ìÿ]|¦ª”!?aTYþ!éý«ß îkR|ü}’©u­ŠÎžf€Ç*P€¼8“ûMáˆññ5ÿÜ¡E¦(Ðë¶CÍéçÎ )0£\>ñš%¥Çt¦5SˆÍ¶±$‚‡ OamCpœãAÛžd~Ì0…82™5µªÁ½%±;£.¢Ò6(¬MÍÃ"ÝøxÒ+Vð¹/Ò—ã|H=%w² §í²?Q¼<æäcÉSŽÑ1ÞÇQdO‰œ8 {A/ ޲œãÉá÷Ë?s¦zBþvÐ÷Lÿˆè‚]0Ê‚Þ(a9¢@1³Ò‘„DXÔ†°zw`Áמ ÞŠq¢6º$vÆ»³ËRÓ S+qM‚É–R¾Afç$á~%û·îAÎvgL§H5fŸ³J5eíLçy6R¨Bk·â}îŒR¿¢g>d‚J \dÝá‹'­œ}!C*vö‘9»‚ÇR?é%Ò&P:3­ ‰Xcƒ®Á3Jøœjæ)(^3•e_HÖ(eHïñÄ>„ç°|R¿%ò dþí6‘Wÿ(þÏœ³3º®[0ɶí8Á)“A;ÇÓ{†žÏý‰$§7 _8‡|“uºm•†²3Ñ鸞I“v-ªD Oãí55 Uü AÂåÕ#­]HVJB·?9 ë*ó3q^º žé³¬1à1º¦vVM ”ªÚ4Op½Uç&Ѫy g&‚g%x:ÅcAª!TšÁÙè1çÐ×™"r·[¯¸Û´”ÖN†Á!¼v\©!÷OX ]R/ÃkL'Ê#&Ò-%fp1ðȃ¤[βz ¯Á©Ç.kéeï ,Éž·÷ ºÏ–¶…äõOênAÔõ–䈕¾õ´`µªïš®ªDÄý–ÍÆhàuY]†‚þyXÉŽ¶>µÓ|±Á©‘‰š§¤ÑÿûìFzÚ!}–>™—¥ã{Ç7"e¾kŸÒ‡Dé™Dñ†(æ*ßUâ˜ïÉZ»:r½8ƒ>ôÓ/[>¡ré „”"¤@_oM¬Ñ°[ÆíK¹Qž‚­ §Šig]WÊv^öÔEßíŸUÒ(Œ’Æ®ÑCÿ™½âÕ^{YÕ„‚|ÃÞ•æZô±+#\Mß”ÆzI"ž"I.—Èëî°$¹ü¨/¤…gPß©÷™¯œì5âzRdÓõÈIØ©Ëú2ªôŸÉç,à K"îz’àrúÓkJ@IäÒ<Ò‚EáήyrŠ3—4÷Y\ÑX¹² "§94Aê¦m¦ý6+öNuUp (} ‘/: 8»;WÄ®™»´ fjV–¼lˆ •¤묮Ø2Æu£î»T­mâ ›‰Y,œ&›¼à®wqŠØ #"‚[ì}¾øT…D‹£e»­€HDÑrÃÓ¡âÊí²ÄÇqñ“  ½>‡±®C¶9«­|Eò]w¥µHSù"eŽHèFQ±ò7Ù|®³7è?§ÚÓã¨U{6)ÓÕbú×,V¥ÒfŒ”­£¤qêðÈÊ_é&ÕªNš%+¿‚‚E–„VÕuù¥R¾|ŒzF˜FPŸ,ò­È¢µq+RdMwáÑS[TøÙ±žn]]Øû‹œè>±—w²Û½ïêm]’«µ´¤ÒÂJ§3jä j~¤*° ?œ×‘®â†õ§q!v¼jžfGKiî@U3jý1¥RP> ¶ôrö=©×®‹¹êoP‚Ú¥÷(mÓû¢{//ŸB3>C4ÄqÛé'»­ —yŽd©ŸóEÝ(#èù:a1,Jڸǵ¼(+èšGK‹cÖQ#ØC×QG‰²]*P|¦l6ê¤ù`«m®%Å @ÉëKVÓB¢?n%¿pñÍ1–Ìi7Â[FQ½kA ·§žK=8QPØ ŽèƇ×둉òA 42Ï>‡‰ö"¾¥éÅŸÕ1Š?aç(Û¸¼gâ¢ã3eÄ€sx¦Îá­‹²Ž˜$w >bÁDÜ÷§Ö/±zÜ•Zw%,Ê©£ÊáÈ£õ’1 k7-ЕԆã¿%ôÞËýZFÊo ä[ùÏOÔÜL/xÓG)¹Ï E@\E½Ýè+Oæ¨þV>ßJ„žç{kp|×¾5¶\uJp¹¿Ù I³MeÿEôýíÍrý07 endstream endobj 2 0 obj << /Type /Page /Contents 5 0 R /Resources 4 0 R /MediaBox [0 0 595.276 841.89] /Parent 20 0 R /Annots [ 3 0 R ] >> endobj 3 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [213.717 649.684 392.916 665.225] /Subtype/Link/A<> >> endobj 6 0 obj << /D [2 0 R /XYZ 80 770.89 null] >> endobj 7 0 obj << /D [2 0 R /XYZ 81 733.028 null] >> endobj 4 0 obj << /Font << /F65 8 0 R /F33 9 0 R /F77 10 0 R /F85 11 0 R /F64 12 0 R /F42 13 0 R /F39 14 0 R /F45 15 0 R /F52 16 0 R /F49 17 0 R /F43 18 0 R /F46 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj 23 0 obj << /Length 1592 /Filter /FlateDecode >> stream xÚÍYÝoÛ6÷_!ôI&–ß7t@‡õ{(¶ÖÀ€5}Pm9ÉfÇ™í4^ÿúÝ‘”E9”í¶N“Åu<Þ÷»ŸB³óŒf¯¿ŒO_ ‘1J,µ,M³’eFb…ÊF“ì}·F¿=}YêXˆIK¤6 ÃÉœQ¦†,¯7ðgu–p}úqXH)ò_áþ_¬Ã |øˆRëð°¸Z !x¾¬áiZ¹ú þŒk\@ƒÁ»Ö%…P¤ÔÚÛóÔ©2ýmþqXp×3\jÈM~ë_3ÿS]MÂÿ K‘?‰&¯p®ñÓ> y™×¹á-:ráGд{‚7c¸ªu˜â…pÀ«¾@‰s©—^bÜøi¨T^5±ªpfPot^¡'7¦U°|^W+\8«ÆÑ\°Ã!,˜ JZ§Û˰ >þ!v-Ãq×?^b1õãOµ®Cˆ0`¾ýÁ .‚¢J/–UK?¯I„yãS[´·ñ*˜\¨¿³ñyªUƱJqLðWP“¼¿âÖÖq ÎÜåL;£ŠbÄÆã:¼h·#èVŸâÀe¸Y6fA,¶€&æ­1&NV°†Sb¬ñÖL£e6!¾ÛÃÓœÜ ¯’:'Û "«¸³Âñ [ù ®'p݆ÙÎÕ y®'‘‘»9190·ß’U“àp] ÏÂs$2C³Hdi#'y§Þ0K ³àpÚmé-}ç%…% ¬lëØšP' ‡ ´*–ÄÊFàï” A¨h—áú§aÁ4Ô‹”MÌVÆF1< %xî~êÍudh× K´fRšÒ_Yª/óùÚœ´Uöí~­5t«KÀ_E¥—Kº-‰µ:+"±¾íõúšIŽ¡tB€LþsR»!¦õ:é²"RÉH­ß ~•\¦Ù^•3†H&Á-Jhs’Û`v¤‰2 Ɉ¦“J»)+,ÒJ%ó¢3Ep"ùÖùωµ¬­Rk«È‹RÄk”Ë´‘J—‰´èÏ1 8F|¿Â"¢¦vQ {üVý~·ç¡ëÔÎyø"‡ºøõ”Qî¶[s}<Œ\cõ^\»ÎÃãïtª æ åg‡ñXqW3~‡ëõ7bG£ã^0dÆæaáIxîÅn…ã~BL‡0¥Íõc@Eí gÝöƒ &¤Ë÷b‹¹{–ä¾³ÄÕ:Ql@^Ðïj? (£Oð@s¢%»ƒ*‰B‹ãð@< ð“âØÅƒ×âdùÛ”RÛ‡]c×ò˜BoïZºÃ#¹…ª`LtÖYþfZ‘Þ°´ó›yÄE Æm~Æ„t•Ê‘µú ‚ ¤&Qæ™dD¶Ù{\!Mø¡,4®[5·hТ™8ñ{LªÑî‹êÚ.,y0!Ð3|ã rÄ€qOÁ€§Ãˆ ®:w'm–[ ÈÁVqnh~~qE„€9ç]DÙ¡~Rëj¶8ÿÏ£è.u·-·¼ùç´—JnH_yW¸gê— PÏ=_'Žº :Žn¾ªpò¼zp\? qîáxj΃p¿²ø…+¤{,0½-SUÀ‘^BµŸü±” \­SÐ\fp¾]: òìÛ6‹þJ~7¢G˜R]¯i$ ,9ðkàÙ ðð–ƒîƒ±Mé¸PIe;ý”¦˜EÊ·íØªÜ‚¥â  ÝÛ.€‘Š)ÛédNE¥7ýTº$\‹]ä¼ þ`úÐŒA‡a eÆ­ €§ãùàýšMàJ Fevë$çðNŠYönð‡ÿrÛ5‹—€ÛÀ$y 'åfŠ9Á÷k‘†­/*PiËž“ 1Zj€-x]Pêèdsä7Õù\ÒÛªÓ¶€œJè—°±Å-:÷ÐꣾèÓv€:µv_¨ï«t_ʯý"èOFö%nv‡ë¿HwîÛúl°ëïìÖë#=–í_izý-ÌZQÂðË—cÖö12ë4’-ŒPï`‡gÔôAhrÁA„äG“Zù€%MWÒÄIK¿gRûµí$Ÿcï…ß1vû/Ýæú¢ÿ`Ùº endstream endobj 22 0 obj << /Type /Page /Contents 23 0 R /Resources 21 0 R /MediaBox [0 0 595.276 841.89] /Parent 20 0 R >> endobj 24 0 obj << /D [22 0 R /XYZ 80 770.89 null] >> endobj 21 0 obj << /Font << /F33 9 0 R /F86 25 0 R /F65 8 0 R /F77 10 0 R /F42 13 0 R /F39 14 0 R /F45 15 0 R /F43 18 0 R /F49 17 0 R /F52 16 0 R /F48 26 0 R /F40 27 0 R /F46 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj 30 0 obj << /Length 2364 /Filter /FlateDecode >> stream xÚÝZKsã6¾ûW°r’k‡¼•uª’ÔzRSI*Þx/›É–dv-ɱ5±3¿>ÝH(É3“Ä•ƒ,Ñ~|ÝøºAZ-*Z½:ùêòäå¹Õ£ÄQǪËëŠ9Aç•Q†8¡ªËYõÓäë·§lrŸå=üÙÂgs‹ÿšßÖBðÉkøÝLO¹™ü~á˜ÍúE¸õ\üï|×bòÕïúiœhØâ©¿ðãþ³Ž7·§?_¾~y.D*¥à–hcA /ŸÀ1'4jõò\«Š1â”â8¸–’UµPÄjÆ»YÔ7(ÇÂ/ï嘆uŒIסUÍ)1Άç®a >7‡Ïcü]4ͯñï-àó†* _$ù€I“Yª6|ÎàóYœÙKghÇ|fc( JÄQÒ‰f{ž—ï¢ÿøÜF™Ïâu2dÿu“ ¹J„yy.y†°•@[sGþýçÒ‘†ÖyÏËY˜N.E;(Â@ª Q׎ø_iA¨`íˆæóÓši:DbŠp§™ØiÍ¥ýWQaž‰xVšV©Tª)NËùäákLwn7½òge‘%¡Fe"‡©ØšXQ‚Cd´Bi*I(_'ÃÆœœ© åhÑd&_§Ö Kç좶™‘:'OÉ3Å‹SÖÌ(¸ %Œ™0ôªh m9Œ'Zè ICÈJ+ô£"0æ·‰]ž¥ˆä˜ï k+¢Œ.­­66[û e²,¤Ò¶ˆòÔÚhîKønòåyÑ…°'8Öã¼ ¸ÚQ\örPZÒÊiô>I£A†çÜ£´wvg$Ìò¸‹l0-¯š›g‘à×1Q{™ŽLîÃgÆW^EùšøTº-œÅ§ßåI~VvXÄGš=Ißb¨ý∛ç’óûu¸Ž å ¢˜E-¡ÒLü™\­Í.À¥­qšk?±_G‹†ùo!à¦aJåzÓd¤fÉ-àÃAÔˆ,ñ r#ìcn™&œ³0Ϋpò¯Ë“_N0ˆiÅ ƒ*i^)ˆ"ÎD5]üô3­fp`·lõà‡®*p,e§7Õ'3·Á8¥„ò¨ÄcoïÜvŒƒà‡üÀÛ‚tÀFA˜–Cé$Dx+ÌFµÌ¥¤›,‘Ž܆@|V²¯˜ Ì]:Zò`Éù!»1ÜÇùæUž¤¸a¥C)YÜb Ù~ƛ͢H `×ë2ðcyY­\Â9¥ N¢©$–†mL¶:à!£WÙĹß!AÍŽB¥˜+½ÏïBb…¿3B)‚ßEA|xÀé`¦Ôé{ ’7‡ú*8}öØÒ)/C-˜(ÓåÈ!öÃáB+HË CÍÐ}YBïÉ"@%À0¢ØÎCËËÍyPÊާ3Od3êÏd3y¡ÊÙÌ«ÍêDÕ~G&°}ÿ—šEä «¤Ž¼‹cÞAn=ÿQì]¼Ü[½ÂÖ*Ô§,^ù!"#æ1‡K×qã}Øa£;€$á t&_f€ð#ÜÕY3"¯£<•gË#0ßÌÀ3®[ºÙ–·FCuaRùFU¤mñ²=EùÊ˜ÉØè±•«äî¼·y_†Õ87„Ú˜»¿ß×\‰ÉÖC[´¿Þ×›* àŸEQ`Cel¯(8W‡Ñ`}9‰‰È×#Ëb^¼Y?®¾â>¼ 6n!fý¦Íý¼ÜA‚àÒPv1 YÑ ·xˆ%a&XÇš*šÊ7KÃÏ&|ùjÿÔï}¾Û“Ü¢57˜ š«eÌÚÁ¶`¶ß˜æ¾h4…´P´ÍåÔ6õä›{w¾V¼Ç¿÷/|’®…Ó„Êrõ2&ß99­¥¨ öh‰ŒýßÍuÛÞÃMg¹ö¹ßÿÿÚèsžò˜"E-¥öZb~æ-»zŽýõ‰û9îƒú9ßœÖ;ï%\Âö6sra‡ôçãú44°¿ŒÙ ÷×íÞß´Hñ°œ”,š•ïá„«H ~hÉË‘æÙÿS£yìÂ,"Y%í”c¨Ñ¾ç÷÷€=ža/'ÞºØÇ†(¤?ß>@.Ô3£Cö§íæ{QD<üd²DJdCA$…J™é=¨š´u>ÔmtÛ«²u(0«dTb!še U½[š®­ MWÆÖN¨qñP˜qˆ9> ÇA“Åh 2 ”DîmA0ƒR;ˆÛPÅ2Xh›NÑ’RÎÝÒ/X˜?È‹è¼Aäˆõ©Ùp‘ã!S‘A­mX-: : _Š‹#”„õ­ßÉÇ”ì¦ú`%=!Mªãçåc+mÆD‘\ 5gœôÆE@y™ˆ Â:&L»LTƒM ø”YaËÝdˆ5Oìý=ãÈAùűã Q@ÅGE’ À¾4LE¡Ö’Ï)$õG@G(y8’º¹>TËHÒGE’D’cbüV¤5êž:ªI»ç‘]`)ßú{B@|[î¹r5O,…€»¾wïEO|왊¦ÒŽ i$‘:1wiNеoÓFÞJÇ 3¨¢±ëdVÑÞñ­äV%ŠÁˆtJF¤`B ¤hûðõ@á1ŠÖhn´"ÝÓÁüˆ¬k<¦k/ŸT\œ%þƒ3^¹#’¶z{Ô.`?ß|â»#åV‘î»Ýl Œ@îEß&X¶o9…Šáí<üöõG[|„R™<¼†»trý.Óö­©Í:<*ì8Wèá%”L¡^‚"*-Pî–±ún8ÑCÛÊy©DÍ\^›ÜûÖSÛ‰.Çè;\MÑx6Õ¡¡ ( AÈi[΋IÜÓsŽ¢©ñ,GîE"d»¾y Û Ø~2,Ê?øH»ØÝCïæ D'$@ò>ñEqJëA‰·®c©é›IÛK’RÊÂ\᥻z½i_e_û]½mß4¼ŠsgÓî@TIÂðô<…h\Ä¿Á±äÛ+ßíZ1Á‰…|9„-ï[Ì-lqæ6¶š5êÑÜÍBï /æ­áÂÛŽ›uùè0Âôîä°‰§ûFÌX–MO2; \”¦ƒ1y‡²¹ë-å}꯳¬1´yqh4ÃXA™CJ¡U•ÝÉ"6™7÷­Ë;ôÍIöºgû |õwYÍŽÁ endstream endobj 29 0 obj << /Type /Page /Contents 30 0 R /Resources 28 0 R /MediaBox [0 0 595.276 841.89] /Parent 20 0 R >> endobj 31 0 obj << /D [29 0 R /XYZ 80 770.89 null] >> endobj 28 0 obj << /Font << /F86 25 0 R /F33 9 0 R /F65 8 0 R /F77 10 0 R /F42 13 0 R /F39 14 0 R /F45 15 0 R /F43 18 0 R /F49 17 0 R /F52 16 0 R /F48 26 0 R /F40 27 0 R /F41 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 35 0 obj << /Length 2188 /Filter /FlateDecode >> stream xÚíËR#7ðÎWLådjw´j½•Ô¦*©„TåYNÉæ`À† @òõii4ciÜ3³†ÝMåàǘVw«ßݼº¨xõÝÞ×Ç{¯¤¬€3Ï=TÇ畃Êj˼ÔÕñYõÓLíÿ|üý«gr Pž)cG„yËAïÃlñ€o·âÛ ¾þú|¿VJξÁᅥ?Ü¥?„‡“u—®¯n÷k)ÅìfOç‹·¸Â·ÓE ¿Çï”(aLUkÏ´q-3Â4<+YáF,†i+«˜‘¦ü­’>Gh™¤°‚zp•di¤›¶ÿAN3N“Ó"Ť+È¡(EÑÆ &‚_ì×ÆÎŽñSúÙWÔN”døowQ ëPCïÞr̓KÁ”Ð+rNñë˜rPËk_†¯H £ƒÜ¼FŒT §Q%ºªgÊ&kû.(ÿªµ€ùek;á—³`$rv1_âÃrÞ<ÅíÀìM0§ù)¾ÿ½"hmÎG’œY«JçÐÌÑnñÕ™nkøºÀW"²×ËýZ ‰<%“9¿Æ×giUÜJú>,§×<¡¸Îüá"­k™Ü‚d:‰åì‘(‡ ÿ’V¾K˜ó'%Èi¹Ì@æ+ßÓO¿g¬¯ûŠdcE-QÏ*Iÿ m7r»á:Å:Zº#-ƒWgø¿Q8$ãŠyp&ô¥“øip+gÂ0è™tô§äV@±kL"[‡R®òÌa¢p"|…"²Þ6?Ñ$,Àh"´ÑîœgPµBvh8œlàH"9ƒ†  ÜÉA6,ª}KâQ&s¨El”—á×u3ÊkïÛã½?öãTžd¥½fNCuºÜûég^áÑ0’¹ê>‚.+‰2¡ËêÍÞQÊa¥ºZdbŒ‚cCF…q‰hÙ#MÀ0.äzP[7NÑY™¬  ¥@KbÈÕ&d)¸‘È-Z“‰²¹'8×Ãë9ɦHmIäûl¡˜æÉáOÈÅí¯ÎÀ& ö,Ú*Ú¹EÆõ³«å!¡›&Û ©_V™4ÅZÒT›êEѪì£r눋bÁí°XPÏY,xˬ IÄ £Ó‹…ƒ¦°Lyðð¦Ë¡ÂÍî~mêËF•#×Çk]Oкœ¨u³s­±î0»A¯ùœÔ`3¯Ýûû¯ÅôdûÊ  ­Lì:õ_Ç4xBü|ÌéjU©VÒ ±ÈNÑ‚R~ :#4¿Š=1å‚ù•ôïIÓÂ\.]Á6"ØüiÐe_´vy}& ƒD‚z%ËzÖ–í0“¥.Œ1§7†¦§­Új¶M¹–ØƬ$âe<: Ó(£å‡:‹z Éq>ÇY”ûdÏ¢ ƳõYT9^ºîŽ^ÂÛU\ñÑFoqú46nÚî¸iú*ü ÊG12Š€å€N£(û±. Ï¢¨ ËmÅåëNäZw2mf>’3®ÞT P¾7{æ®ñÉfr¬¦û¯Í¶°`hœh„Œ ?>ÛBPP£³­› ¶šÙÖSØÒˆ"6N¶ÜŽG[r¢YŠÈœøØÇV}ÐÁ¸Ò¦Q»™™"Ó¨.Øž=LœGiÚÖã¨i{º,µ¦ØÓ—Gë¡my¾Ä_òq|õfm*äPèÌš9ë¦ÍÚŠöà~€4ä-g×€7­œ4p©âlýùZ9˜ÒÉmwK£kàÖšh¢+o‡±ÐŸ_Ñ=4æ’n“ï7½ÞÕ[q‘aš oЖêC"™ Z§_ –¼}#‹vbSäÖ“²„è8ŒE«w«õ½2Æy¤§*4½¸`ì‚Bº~S4 >Ì^á ¥Ù„?™ã£µYW8Ì©›8öçwé–ã¢yoâ´j|¾óŒì]'vÎÜÈ¥çgäê*f-3˜MC±÷b)η¨›Üƒ¡Ã=¬¦ÙyáGE»h¦½å¢¹ðFYª÷Œ¯Æñëì|ȶˎKN¯/[‰ž¦¹c}¯/[7©ˆjàã÷w‘Éùr‘VÆíܾ,þç£ýÄtú/k :© endstream endobj 34 0 obj << /Type /Page /Contents 35 0 R /Resources 33 0 R /MediaBox [0 0 595.276 841.89] /Parent 20 0 R >> endobj 36 0 obj << /D [34 0 R /XYZ 80 770.89 null] >> endobj 33 0 obj << /Font << /F33 9 0 R /F86 25 0 R /F42 13 0 R /F43 18 0 R /F39 14 0 R /F52 16 0 R /F45 15 0 R /F65 8 0 R /F77 10 0 R /F48 26 0 R /F40 27 0 R /F46 19 0 R /F41 32 0 R >> /ProcSet [ /PDF /Text ] >> endobj 39 0 obj << /Length 1897 /Filter /FlateDecode >> stream xÚÍZK“Ó8¾çW¸ö”DèaYÔ\ –­¢j»Ìž& 3a&Él`à×o·$?Óvœa`öàÄŽäV÷×OµÂ“Ë„'Œ^žž½¶Y"8s܉äüc"œbJÊÄhÜÒÉù«ñË%Žz29ZÆöx3ó~Þ?ë8¸Ÿ¼?óìµRu.•´,3„ðüiœ3âQªdš¦"™*Íl–… `TéY÷Œ‡Çü&г@áÖ%C_&Òs>nplµÃ'áŸ(Js¼E–wgxÿÜ<›{ùö|p}ø×ô@¬ã"pÿ_ŸÕF<8zÁ5¿àBãw¯Ï[ϧì»òíøªdðÄ£´ëy¸A©½¬þ .?Àn*Ó© ˜}½*€Y•Ì#q`EÅß4Ôí>èúénó•¨îÂX¾]„›¥ÉDnñ¥}±N½DŒV5òAæçÁŒ©›B‹ëyO„üK|Æen¢ëÈ;÷Âhübµ ,WK5¾DÆxåñža Êd…“ À/L6®‹¬lË5ª±²F¤y†®‹™‰j…&Ób‰{"~ =ò/©,ã\µð«ºix+®à’.U'Tu•>)ùHõ «> ­bFµ”§Y@é5¬Ìûû¬Biûè)ùpýû+®—ãÇ·ðÃg²ÇçJc‚cÄ×…§èÊP¨d–i—äX˜’ÊF’aBÈ#œIa¼ËHÊÕçi ¤ðÄR&ÓÒùßRd SÂDfO‘QÌ¥5*Â+¾ŸQ¥b•“íhñ„HOâëîE˜¢S„`ÜÖ M£ ¶JšôTêŒ)°½©L™æö0aQêL‹RãwÔâŽÉ¬ÔäY@ífs9Sï”\:fÁLލD¹c2f+óÎÑvçär‚‰Ên‡)¬3%I˜YQ˪øÊÃ׺¨|±Q…úÜô±YøaW:ݺ*>Fç\ÏŠrg³Žî¿Œ¿\Qò «ÁL žV$Û RÔÙÁª¢¹âT"©iÓÿÒºÝXXf¬=¤˜r ã ìg©…¸Í2ëbÞ±®†Ø[ÍzB®èoO^QÐ%ë+’Þ @— vò$NfIbé IKZR¼&ã´úLGõF¨ŒI•¶lBÊ4 Ó¦ Ï!Še&|e…'4‰ °o-"Lj]õB¼"À3,­”õ„´ ðŠÐ‚êÕŠ6kgÝP-È£ZÐG“”‚Ô`´ú$5LÚO´Í)+¡´ôUK%Õ>™Î¦’öECn-»–YÃêVJp¥&6‘»²¹@ÕÄ3Õ »ï§d¶t‘…º;3HQf¢ÌCM% ø2ÝL½ŒtSÝx/8çÇ#Ã5 ÂG°[ô¬4ÌSEÃ0‰Sê1L7«< ŒJ–9sŠH\RÁ Ñ,}`5ËGQÇ ê7*+d ^x$…´Xi)DsAÑÃzNŠÓzxíŠ. [–Zý8Îɸ…‚„<5LÅj¨Še3=`Á[Sñ JXtà®|P:Š;Ô¢ÁxWq¬¥Æ ¶í˸f‘“Êηž©õ4ÔZÔ‹9úý|ôï-˜'"I•ö -qã#“Ùjôî=Oæ0Ø3ålòÕO]%Ø´×h[7ÉÛÑ_¡¿ß /1H™œËA¬™¡x˜Äã (µŠ+—ùe§’û6ÍÁ¶¹i(Ímó))ö‡=3§w’&Ëk*ÂÛ¦‡±ƒ ˆ»ÒÚ´³ŽZºVYvD€I›F€%tÞyéÉèÈ´m(_ùþ4¼šFÑP ÝJ‘J¦ün$c¶èüªjT”ÝÂëÐ1 ‹A?â‹öòìÄ7;.ÛEn8רw%—þtf³í§^t>IrØ×l65ËÞíî9 (†Ï,™¦œ¥ÜýšÞ¥=É»†5ÊZ]DZ¨E¤7«âhèÏéVðÇóL~´²PU|¬ççiŠGC¤ëTCb~mõùw±/ŸÇvÈÎàú-Úþþ=~o}ô c5k04µ°#CÓªwÿáõ@tZ÷;RÉêT˜¨ÝAXâÒOÛ2È‘u&6Ê ’T_áÚ§ÀTž ÀMTXqr²â.¸àD¸™w!ÊZQ­¯&D|á×BivP3ô«cU²­Ìݪ¥u”‘BÎ…`2• L,P_OlZæŒÕ¦uïÛòe¤¾‹ÿ´Ø-ªYõã¶Uòu¨–B<ÕY½RÈtwpÀF%\Û#Uu«BŠº\/b‡¿ð'‚!;,Ö]"Þ`°Ïòvê½Íý ÄjQý_£ü3ÁŽŒ8°š¶Ø{sÌ y¿¶x£4Më×#›‘£uX™r¿“E07Šêðiy¤Ã'RÚÄð¯0(¢4Ì8Ý41Ê,`C^;bºO!ذœqYúïÓÃsá«ÜÓÙΫr+¦VïÇvµŒ›‹»Û*84!“íîuJëQgöôZ³üÿQñ ›¸ÿ.—kh endstream endobj 38 0 obj << /Type /Page /Contents 39 0 R /Resources 37 0 R /MediaBox [0 0 595.276 841.89] /Parent 20 0 R >> endobj 40 0 obj << /D [38 0 R /XYZ 80 770.89 null] >> endobj 37 0 obj << /Font << /F86 25 0 R /F33 9 0 R /F77 10 0 R /F42 13 0 R /F39 14 0 R /F52 16 0 R /F40 27 0 R /F43 18 0 R /F85 11 0 R /F45 15 0 R /F46 19 0 R >> /ProcSet [ /PDF /Text ] >> endobj 42 0 obj [611.1 611.1] endobj 43 0 obj [663.5 885.4 826.4 736.8 708.4 795.9 767.4 826.4 767.4 826.4 767.4 619.8 590.3 590.3 885.4 885.4 295.1 324.7 531.3 531.3 531.3 531.3 531.3 795.9 472.2 531.3 767.4 826.4 531.3 958.7 1076.7 826.4 295.1 295.1 502.3 885.4 531.3 885.4 826.4 295.1 413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4 501.8 501.8 826.4 795.9 752.1 767.4 811.1 722.6 693.1 833.5 795.9 382.6 545.5 825.4 663.5 972.9 795.9 826.4 722.6 826.4 781.6 590.3 767.4 795.9 795.9 1091 795.9 795.9 649.3 295.1 502.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 324.7 531.3 590.3 295.1 324.7 560.7 295.1 885.4 590.3 531.3 590.3 560.7 414.1 419.1 413.2 590.3 560.7 767.4 560.7] endobj 45 0 obj [805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6 1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.5 472.2 833.3 833.3 833.3 833.3 833.3 1444.5 1277.8 555.6] endobj 46 0 obj [555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 808.6 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8] endobj 48 0 obj [826.4 295.1 826.4 531.3] endobj 50 0 obj [531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 474.4 479.5 491.3 383.7 615.2 517.4 762.5 598.1] endobj 51 0 obj [511.1] endobj 52 0 obj [659.7 590 522.2 483.3 508.3 600 561.8] endobj 53 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3] endobj 54 0 obj [625 833.3 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 722.2 583.3 555.5 555.5 833.3 833.3 277.8 305.5 500 500 500 500 500 750 444.5 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 472 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.5 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.5 777.8 736.1 555.5 722.2 750 750 1027.8 750 750 611.1 277.8 472 277.8 500 277.8 277.8 500 555.5 444.5 555.5 444.5 305.5 500 555.5 277.8 305.5 527.8 277.8 833.3 555.5 500 555.5 527.8 391.7 394.4 388.9 555.5 527.8 722.2 527.8] endobj 55 0 obj [517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.5 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3 465] endobj 56 0 obj << /Length 155 /Filter /FlateDecode >> stream xÚ31Õ3R0P0U0S01¡C®B.c ˜I$çr9yré‡ù\ú`ÒÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEÿƒý ñÿÿæÿÿ?0°ÿÿÿƒÿÿÿ? òÿÿÿJþÿ!êD‚âÿH"Ð @˜ ¶l%Ør°3À‚8 äH.WO®@.E‡Þ endstream endobj 12 0 obj << /Type /Font /Subtype /Type3 /Name /F64 /FontMatrix [0.011 0 0 0.011 0 0] /FontBBox [ 5 6 40 40 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 136 /LastChar 136 /Widths 57 0 R /Encoding 58 0 R /CharProcs 59 0 R >> endobj 57 0 obj [45.2 ] endobj 58 0 obj << /Type /Encoding /Differences [136/a136] >> endobj 59 0 obj << /a136 56 0 R >> endobj 60 0 obj [768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6 408.9] endobj 61 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 62 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4] endobj 63 0 obj [555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 755.6 444.4 559.7 722.2 777.8 500 905.6 1016.7 777.8 277.8 305.6 544.4 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 305.6 777.8 472.2 472.2 777.8 755.6 711.1 722.2 766.7 655.6 627.8 786.1 783.3 397.2 516.7 783.3 600 950 783.3 750 683.3 750 759.7 555.6 694.4 769.4 755.6 1033.3 755.6 755.6 611.1 280 544.4 280 500 277.8 277.8 486.1 555.6 444.4 555.6 466.7 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 427.8 394.4 390.3 555.6 527.8 722.2 527.8 527.8 444.4] endobj 64 0 obj << /Length1 2005 /Length2 13216 /Length3 0 /Length 14435 /Filter /FlateDecode >> stream xÚ·Pœ[Ó® ÁÝ‚CÜÝÝ5¸»dÜÝÝÝÝÝ‚ ¸»î’àîpØò½{¿ßÿWSTÁsu÷êu÷ZÝ3äÄŠ*ôÂÆ¶_@¶6NôÌ L<Q9f&+ <9¹ª¹“èo3<¹:ÈÁÑÜÖ†ç_¢ #§w›˜‘Ó{œœ­ @ÆÙ ÀÌ `æàaæäab°01qÿO ­@ÌÈÅÜ DZµ9“‹ÚÚ¹;˜›š9½oó?* 5€™››“îÏåakƒ9ÐÈ gäd²~ßhdP±šƒœÜÿ+Ÿ™““#£««+ƒ‘µ#ƒ­ƒ©5ÀÕÜÉ   r9¸€Œ 7²ýU<9@ÕÌÜñ/»Š­‰“«‘ðn°2‚lßW8Ûƒï›T¤e v ›¿‚eÿ  ü}6fæÿ¤û{õ‰Ìmþ\lÚZÛÙ¸›Û˜LÌ­@ Y'7':€‘ñFV޶ïë\ŒÌ­Œ¾¼ü©Ü !¬0z/ðïòævNŽ ŽæV”ÈøGš÷S·1µµ¶Ù89Âÿ¡OÌÜ|?vwÆ¿nÖÒÆÖÕÆóo01·16ù£cg;F5s{g´Øß!ï&øl¦ ';'3d¹ÍÿH¯ênúÓù§ù½oO;[;€É{ osÐûxOG#ÀÉÁäíùoÇ<33ÀØèø25·ÿ'û»dò¿_¾ƒ¹@‡é½÷˜LüüçIï½½Œmm¬Üÿ ÿó~…å%Õ%Thÿªø?>[7€'= €ž… ÀÌô¾=çûƒ÷§Q42ÿ[Æ¿ÖJۘظÿRû~Lÿ£Øåï ú{8¨ÿKÞö½kAªš\—‰ øþ‹ùÿ¹Õÿ\òÿ×ádù¿5ùÿ$áleõ§›êOÿÿÇmdmnåþwÀ{Ó:;½€œíûØüïP Ð_C+bkeü¿}ÒNFïc lcjõŸC4w”0w+š;Íþê•¿ìj̘•¹ HÑÖÑü— €ž™‰éùÞ hùþâp|oÈ?] ÷¹ùï-Åm€¶Æ  ;ÀÈÁÁÈþýŠß‰àÉü>‰Æ ·?[ÀÈ`cëô¾ð^œ7ÀÄÖþûä`ïš?L'€Qôâ0ŠýCÜFñÿ'€Qâb0JþC,F©ˆ À(óqeÿC\ïYÿ¡÷uÊÿ+€QåzW¦ñâ~'£è]ç—è]'ð?ÄþîÚZ½ïÿXþ8eFãá»vпð]„É?ø.ÂÄê_Þw6ý¾×föd{?K3w;3п7{·™ÿ ß…[þ ßÕý;û»tëð}†ÿ•ê}jmÿ…ïBíþÙû=Öîý=nc2qúÇÊü·õ¯üùýìÞ'Ïö_ÇÀü^ŠÃ¿ð]·ã? Þe;Z9šý+à=‡Ó¿ð=Âù_ø^˜Ë?Èò®Îí_ø.Ëý_ø^‰ÇŸø_­ tvxWîôç«ç½ïÿ‡ÿüG¹€ðK ¶@Þ ‹ú öûZa|Wú½Iþ9ò=4jzÏ%‡çGd˜dꚬ€ ‡[áä‘^ÔÕqª¡e¢Ï£ÖF˜Ðï‰JmO^ÏñÊ3{mð?§±§ŠŽ„áèU…ö½^ì½Ôý-!ZÁ»dÈóì¹ 0î]û%Ý*VÆCö”ök8>#œ|‹36!-hÜkúåê-§)̪յьÅVèÏÚÛÖjáף-.8È׿S•–­˜£n*Ê‚p™¨ôlHˆÏþQ +%3>ѻζ.k'm G¤6®´ÂUëÓ{†…ùkÕ2]ýÅk¯,³0 ü@±¢-‰uä!ùä£rÝÖÈo›|Þ©}$–1 ÷`øtá¿s&6ýß´ü½‰I¶z×+í1Q(gAaå\rÏœÝ@_óIÍ8ÔF$Cñ.žFeÄË÷´éj4µ8¤Ðò]˜ÊÎSQÉÕ@¥¿¨¦Ö— Ï7k@‰Q6Ÿ§Wh‘Hî=¬l°ÓUº°ÛñŸÕظ¨&hî.§k9À9âÝ ~iÇŒZŸÊEÏÊšµ]Gî?3ïj?Ù(RV°¸>ÀBãò2Oà-îÉBË}Z‰É=Ê„I€Ê¿>Rhm†¿.(„K=›GU甽Wójã1ÃÌŒ ÙIþ–Ò·àeoG±ŸÑwjŒKÑ)ö½¿¤5-3ÓªÝט¯•– Êfñ ÿE¡4·oÄe#ÈTÖ^†Ð I‚röE…¼vA„íB1ÿ¡1k-Òj ÖFI¼ÈJÞêLl©‡?4ûw¢ï…$Ç‘«™BªôJAnÓ—Öù”sZØšíãT’ÛR¹Lù²seÿðŠ·…µŠ¸€ÿÄ7Òðt™·8ñkÆ"ò\çé…o–©¡]sOeW2ºõÐ9}4±éøQœpÌzNç䌩E ÷bäQOŠÕ½ l¯Å¬éýYÎ\¨(Ž©û徿И>xd4´¶±Ÿ0ÂÂÂü¾[žŠw 9êÞý”Ÿqq$:”<ú!€F5Gf"ž¿wéK—ì5¡:ú3¢'‘ù7x” .,¬-éý㬠)d~ØÜ§[EÂhFz(Ì ¢ä’ß xå89œÅ\J¥¥ÂlhDœ[:o{JrWC6'LS'„㊬¥ ôJ0{ÕÃ"5»ãv÷‡+ÚPŠÁœ1:Ö"5é`È ÚŽvÿÞ¬-{k¢¤ö<³©:ß±ç»6Ã0BËFÕ—ä <€s«®Ö@SÇ{XVXOü²Ì,$s*‹¨”‘tÊ!æY '±{X[7²Eþ`¿ ¼01Uè@ âEÖS¿€5Ú—¬$`à‡7©qBpt“}ðâ1š¹°H¶à~:°xš½àLƒê5ñd6Jã'¿Ø×]XÙôRSi½… çä8‰Î¥©ÀI2Ûkg йB–J/‡0$S>(vg V"°.û¥\ÝL1É·ç™=æ‡CsfR âëYí¨óþò¹ÜÑU¢%ušŠ~q¥¹Èú.…ªª±€Ñ‚áîFèY˜dõÍq)4ÅÌúåw˽›a ûg¨½ ’1l‡ÆÈ9 >&  4¯‰=#q°— êÎê­…µG¹mï!wš¾Àa1k±®Vº?† ®=±p0%"z@F³¸¼=Nʧ‡*¤­Á ïíl¯n57M§5^ص}>AüsN¿àgµò¦h‡Ýõ2ƒû/ÎÇR«;XˆYšÜ2)¡øÆä/do–øõže~7ó°¨óì.n,צ”_–}{CÒúãTo‰'¤W“‹„MhL#­Œ‚†N«Ïfbš— øÐÕ¥–&w×€B_cßNÒnÒ#ç®?C~ï€F éOÓ ]ðUèNà?òý"åÈ"Ò'Òl݈áËcë¸ú‡¼ÐaÚ­¨qm"·><¾-`›òqÅíI•ÆGüukCj-ÐÛ¨˜b˜ó‚§Œ"m"«}«ó}¨û"²Üdjr}äDûEi‰¤¢•¾:=‡ooÛa *lP|뜎ëG»ý”’¬nM˜+x7vFðP}b‘ÖžÚŒ­7¡Ù¢ œßÞy&ø“þãvkêGØZ¶˜}}FѺ_ôØÙý˜¡%Iª¥r¼ÎÜüŽÌù‘‚¹+ÒÃ6q}-ƒžÜèXò g†¾¥¾ÆµßÀ¸UãÃay¸R^ÄÿviÅ«:HûÕ,V(Ògµ• ŸÀì`—c©·”U÷»°­Âš­÷Ð8ÉJ\w´m¨àEûà#F ªÖþ¢~£ž—²öbj.&° Mº “†³^嘓–Aÿâ½zÖ©”m†¤»Ýk• r«È|‚W%Þò¿”_æê†Vâ70=¾6ðüêøZ …Õpª ÇéB53¿+¸Pô3Y´ žïÈ“_OdÈ‹ftTHv)°üú“}‡jºÏÛûF·³uýœ1„â²±¼8†^%'H_ÁþÔM*yûäÁt%ò K¨ ½kY!ˆ‰Kí'†ÇD÷Â×âÒ&úÄgM1ŽxÔD÷tÕlðë(}çÐÝðä(3^‘rÔ·>³ðèŸüTåQ“µÖ&Å2ÿølù<½¸„¥í‰·ÚáÿéJ26ߨçÑ´À*LÏ ³}ù©”qžÊ0ôÔÿ)‰IÇUòf+«ò ™Y_/¦›˜ÖÿÀuš+‰$ï œv-“­¬ãÖÁ7©™¯¡ ¶9Kq‹­VÒ]ñ’9+µ¸¤”%EjŠ}˜EwCnúwÌ¢f6 ¤wj®vG¿Å Å Ü;5Í‘À;‹êÁÒ~iÄâw@y.8¸›~búòj\l·*6速ë’Ó/íeeÄÒéŠ:ÀÂ"`þøËÏf$k°sbÉJ¬{Ä£5i=×Ô€L¼eÉ·ÙB¹øâF7œUŽ ±^P]öpËqÝÌa$¼ƒ(²ïôg1Ÿ¨Œ¨@•Ò~<4˜±ØmóLMô(ÂØÕG¨2À:)QÐî×áû>é’(²Õ$¤ÍZx8Çy8ØæÔýT Åû4l*Á3ªÎ‡`÷ÊÚe ‹d÷9îgžÿMÁ§‰WD?Ä©í¸*¼\ÎA uÆØ2ÚÕLkÿØöDWJ‚¦ë[dš|ZåBU¶B\(T¬Ÿqs[.àC-ô>všÅNâ½Çu=OK²éRÒò ÚW ú¸êæ_$kmw#ðùǪ_œJ¶ÞÔ/ÍžÑÏêO®æÊ8U»Y4ù9‡‚åÂwÜ\rYˆæW• $u"K·Ç¶r¹ë[´‹&›åÅø¶!«‘Û£“ÈFvEl¸±­)Ò>:]šPO 1ý†÷Ùç`$·öæ-¬L-ÿûºfƒÆäÍO‘uÊ ‹Ò -Î/¦%_É8CLÀÓj?C‚³T78ù„?\`TeƒkÎÑ.5UzãlÄ F^æÞr‘ôÍCéx½ã”¾ƒLÎEŽ–4[Œcu@ä-@Ž«UYž£U°‡ÞMG·ëQ6B“‡ÍþP¡¼. ú°GéY2d[WGg‹™ØsøÝÛ3t²Êv±¿‰Ì´ðà \öOSçÊ0.ÊÌ#üÆ m·&'{-Û…ùt‚w[szóBpÀ‡¾à¿b9 ×Û|¢]µìÌnÚ)3á´óN!'W Jöè-‡†óôy13íúŸ=šÊ›+éK#ú§¸ôî>™X“™úE±Pç˜*U#Ï^ŒYœt#£DÇœ ±ù Ž'w¨û1íó,®2{Ùµfpê$N„açÃä Åe€\à?’[ÓiÜD¾ÌïìN’ PBq”ˆˆ™ëª{Ü©‡Ú¥¿CIÎ…ø²Ãr—B£‡R’ŸŒJŽ€ @›b…&£_`S¾âž&[øI"Ò&>¢&‘}5¿ï3çÌÒ±îL^ÁÚåFgŠÞٹ¹I8ïUKWz¨;‘Ë4™¾ï$™W1Z”!¶’‹o¦éK¤*òoáôŽl¯¶…¾V”ô»ÍÐÔ3n­¹G«Ô¬i[WµÔ@/ÉÅÍ" P‘Y=ýª_¾*_])Ú›ù0f°sc¨L/-Ù„ ŠßþZjq¶Ùþí°ÞáÒüã|©%¥aspŸSå…±µ¿nÒd#’½ 'AW~[öµ”¾VLÇqÔ+B†Ž6ºlŸMö­O+·.(Ÿw£gÄ›=" FæAí­F Ÿ_i®½b‹À{¬–ê ÛܲŒa6(á –œ+;4ï¬t$šÚÏŠzÙ¥* ×ñëûð=7hÁSM1ïÉyœ0. f„»-¤´n{mµ¾Ý@&fÕëA’ZÒÝ} ¹þ:ûˆÃz=.»êؘ…Ü^ÔsøTÿe¢e`åKœ¾á ¬Pf†•z| ‹·9,›þ#,n‰Ðþ&Û·8€ ®uáµ¢ôvPèò2#*H§ËÙŸé©zo‰XjS_&@š®ü¥r¼{3dX2äUÕŸF‹ÝÆŒ²åÈ’2‰#Ö¹.ðþµYÐã­j;™UæG±O/Ák‘%I_n§¦…êþf|'œáT¸â]Îï4^or+ªóësíͨõ($¬`rÈÆyéÛA‰ÈNQ\wjŸâ«™ºiÃó§ W¸Šùç¾ÃƒŠõÙ€•o`‰ Œ)Œ×ÃO„@#ñf wŽÓL5 ñ~?úúæá•ôÇÒ<ÚyëdboÞ°2>ýê4‚QÄla öxVö%ås-Þ+G·¢‡Ž“ßeí9ñÅÖ’»UÜò±*c¬] r*EÁÏRN©Ó+†ÇÖÎÜ<&:}Ÿz|ܶ+Ê¢¾L…Þˆèã ZÓ¬Ítî¶`<¥H‘XÛ¡Â:°‰ûκ¢íàu5W¦ýêi…iÝÁØí”ò«ÉŽ7ÕÂZžFà ëLèßù¼ã‰CSH…Ðñêvý¡«ÉI‚R%þÂlZ(MÃZ6Þ¯a?S¬ú<¯ÑÚök>J‹çc•já¥ÒGz^Ñ‚-¥[¾\Gâö…DÚýά:í5Ù¹¿­±"oeàVո阣i?9‘»¨´C”AÏ÷à¥i*+Tæ_)ËŒËìÖ±ÂG) †Õæ§·yr›aNŽçûW<èׯÊã­ZŸ·;1T@¡,„Èù-è6÷>R;ȯɔ)¦r-{±(òJž˜@Eg}wޏpEE^zK9}ùþf][H5ªÝþ}Gl£Ûôcl­¿w.É‚2Œ§µxqéEÉ$UÉò¢Ä¥úë'Pò¾mF a¯.R‹–Ò¾:y6§ëLKëvet:™Î¸ë_~[Ôt­\Œ’ïï¢ÎÓ…Žo´%æ^›–ÅóâfJ‹>–ä)Ñ.«°݈¥ÐàÕ´`éÊy¸æ$ŠÛ=È<ÖH—ER+³ñçS?‚ c] N³>K÷„EôQœUÌÖvˆ“G¯¾Ñ¡âû·’_ÌåËœš×™hŽpE^N=7Ë¿lð<²ÊÆÐ•×΄DÐéç‡ÒŒ >‚KT½¥÷iýÆ~ˆ *’Jd'ÃI5ºÞï*ØŠb:¼‚a;]!Ò˜öeN‰[Z…ň‚`wãBG…Æ–V » ýö¦,ãïƒ:¾:—6Gå,ðïp?¯q©Ú"íØˆMVì’x?à•ô!À4} gï%$D BÌÙÔîÉ}kŸt‘Évðl¢Vá:iCRhaKG ùˆßÎFÉqE»dvŒÀŠN½<÷F‚Å„…οZTŽÞY)‰É ¯±65®2T"¹ôAX,8],=—k÷}^Äào­4kuMaZñ GÒ7ôTËÐZ ge±_v‹KU5Ãì*°‚O‘ÐkÝýÀ§W‰¿E<ߪ‹RÁ:±™¤iêRÍæÜ^>^·@Ž“ÕcÀš×UgD›W…Ñ»â•) )ªçm/@¯l´í®“Ëk/‹m©u4’´È¾SÅ•ús? ‘—)¯ §yDeaɼR"DD Sé™öŒÓÊBë}w”|>ŸQ¯%«èß.õRB¤ƒ‹Óª† Šb‚2)+G¾½¡š×Ð¥ñòEåwÑŸ–ÜÜ´xá_ ¥Ú~`¹*ÑA!råÆqiHÖêq±ú‘é€ < ì9'È¢¨Ú/£b?¬ÁmØ~ Ö¸„íÂëòkpáûQB?ÜÊÕæmKämiüLÒÞ×óú³RÔñšý0o]òœw­˜÷†s1åÈG¹p±EׄÚÍ—><ÕubZ/¸Z¨ÇQ6³ìC€ÛîÉG Êð<¨(ve_VùŒ)æƒr4Öõ¼)_šVIíÁ‘nµHãÉbŠÇYÙs©H®!…†Tiš0Ùh¢¤Ó4j&³ïµXÖ‚miú^d[Ä{ìqI5ïH™·ê¾Ý% •k OãvßÙêpÓóøÊÇD¾irQ è쥧€îÌbÌr=ñòhŽw¬o ë/7YŽKe$±6èSrUý¸|=¬'ºÅ@­ù|ïÜ ysÓœ[Í5ÝjIÍU'?ßl0 ÃÛS¨(RØd:¬SãÃmœ¸ˆ)`¬(ÃZ•û÷†â*•žHq‰ª»$EAùÓFµ[|wuéž^¶Tù°è¯JdÝ%6Å%q]‘ÚXòüºÞ¬à¾w±Ø<¿A¤ªÿh}¯Ê§TïÞ+IwøáEnR`x|T(í:·yŠ RNˆy"á)Å@IÓP™¨ŒQ°±êu@ðļàÂTó«Î× ]¥¶‹ž[] ág•Χ“ÓöR.W7z¤A;7sgKǘ^Z¥ø†ûÝ5˜ "íC}BÆäIjÏ€>ÿº5Y-¬dôQVªª7œî ˜ÎäÇÕ þìo4IŠ[Uä*°ºêCcÍüS¯` Ë@VHÉ­\„DuȨ±Øôy®ý)þÀ¸ŽY—û€ù©/¦…]9c¼ÜعI+É|ûáæÐ¥¾ïoœœV{Û ô21Ä›¼ÞÌLÝ$ÀøAU3Ô…Ù¦.c _ÇòYÅÓË!ßQ4¢€ 1Ja­Ÿ7‘Mއü¼wE…#¿•žOut° ÌZz†÷;Õ‘UÊ%ø'ÙÒ$RÊ«ÇE¡ ¸ºÝ”vë1M¥ã¹:•ßóÊ–iêXc¹çmºi&¾­¹¨}XPa^©ƒ!|[ºÍ¿uQ‰¼”Á¾Õ :Ä%!sœ„j`óãg<.Ðikú#Û®ˆ ùŒeØeËÂý]74óP§’]”¿a|ûºg˜C¥k5Éž‰A-”Ö³iÏTý;~XÚW÷ ÄØö+ haUí´<÷ºö”@m× Âb5B-ÄéÔB‚ÅaW4«ÄlGwtšþ>ïCK-–sÚøO` ã6Ú¥T *ö© ÷jFGýQ~’w€™¶‹‹î¹KÍ®¼ß­¼“¡—,“­7®£W¦Z€‰Û|cpíB.†÷ÈU]ÁAÙfIë\\yŠHžgé¾BǨ*Ç­òlT·Î›µý©‹N-ë—Ü‚õB›þm[ø©Èa9Ÿ#ø×7’6Ò)£IÝÍN€¢!O=B`5õͰ±RñL9ºa¹zCœÈ-݋չ¢O’]îfçë`ÊçõF=MQi÷ŸèIªu[â’ýá@ Ün²¦h¶kŸüÊo¶Jާ„M?óÁ)SÇÊR˜˜mY7À$Ä,{ƽ¥ú=ø×D—Ÿ¯ð7œMÕ±J´X ªÿø¤Ö&3¿»Ÿà"ο5»n¿Þîx83í†"(Ü^uK«%ޏÆ`€«o'R*&¬t°¦É€(²e<\/§€[›ã•š‹¡ï²›Ÿ9’ô«Ö§Pß§uBÅÞ‹™¶±b…1y ZÝ,¥ÍeÇÐï“!¹pÊfîÞe}Ž‘§F³ÄÜ&ÜÀD¥xkž:Íl‘iKE‹ÎÀÄ"š‰‹TqJ¦l.Cæ4€Þo¿Ãhkƒ¢éÁCsܬ"tÕ–ïGxË>·×é–&˳X™Ùt‹B’Ù­ËjúÚ½„¯Ø[º$œ/~ \®P¦€WDÑ x•ªôïÓÖÁÓöÝê"%È`— ©ªDàó0êìÕ†‘ôŒ¨öüÓX[ß›Å:¡-?O>/¶Æ¶FfÇU”šV_‘Ñ‘~¾ÿ³ZÈ–Ò^jÆw˜~«Ñzÿ±áµzàa£z·mßTqÞ¢xÅÆ ŽýÓñxì6Iõ'ÿ2)ƒlA”\Öõú¼5½óã:h܆%Þß$F–Ðד¡OÞ¶ÑØÁÐnˆR(bUÐgš3¯œ[s³¾{©lŽ)-Ä2ü,†q”ÂÑcbï°|~ð£4ì#}ä¿Ì7õÞÉVgçAÏ“p``¼«î˜v.àÐÄ•†:4»DüúPªx¥7>%zdõÓ×,Üf;ܹFD¯{+ùúr‹éµ»Ò`°ë­p­?Zê+TNßþjÔ›>»+·$1.Gðë6\óó—–æ`ü3¿šëÔzÇGk^ë+:Mwºá ¦ùÔ.çûßäP«Mñ55‰“b- ˜H8;2” Uíײµß¯“Y‚ª9V)¾¼ºÝÃÅȬ3 ©ø n4ó­9²ž0~7ã.œè<>.7ø‚ì¸Áñøµ ?{ƒì>b¸í-}˜Æ%Í ®·&zI•üà+øü›Â‚mæcí7ìëŸ]ç9ƒ‚6^éÃX1ÎõE>¼\˜î?­- U‹Æ… pN4bD)Ä£1©åL(B‹žpÕ«®Røu?·ÿ¨"¶ þo••ñ¡|N 'Íýâ£òõ¼.é/þ•çcãû`}¿Û¼g¿Òƒv)œ­¤ý2y˜ðC†{H½P¢µˬl’ZãoÓ¦JƒeÖhK cˆZ9Fx[xº÷¢µnð„†6ãjWÎ î‡Cq”sŒNE6 ùvkOœÀrû|QGo%ý!Ik\-âýïõ XY’³™«0µ|c'¹,Ç®ð£óIÜðØ®ÝùF(0Î>2áÙˆPëxÌÎÚõÊÓV*Ö†<àÓLjÛŰ7‡Taø‹«ÉÏK^TòvÕT}Gè#`³Ú!¤åÑ9Mòzx¼‰;f1ÈÝû/¶22çùÓärò9˜ZH§óAoŒ-{ñæ$Æk8&ckƒÉKb㽎Ӽñð}»ú“(%hðн´ÒŒ5-N§{ÒÂnžŒéŠ „~*3 Þ\5ô\¬ølóbЛ4@À×&ôKåA1aÝ¢,s–ÚAâº4 SfX´øpË0ÆZÅÚic‰¹ 2·åQ­­]U«¾çæµÚú­¥¸ƒ/Æ$£«íÐT*|®Å5›mšìP•˜öfá Ö•`€pð[{*…Èe2wV:™ˆ[KÆàPlô6? %h棛}„µýO“W|7¼".ÁóWtRŠofÛk÷ó«Þž Ãg j¾M‘P$µLR{‚8‘¾Y–ÑË}•Ì×õø¾Øâ†$>âµóQŒc­ÉØMWˆÏ x™©4kB¸Ï@äj~nðúŠúÈV²T4†Füïát䈕Kæºõå1DÝr9v÷0yaÞ:ýÎ?zx¹"šÉ¿æ/Dfr úû$[ýNKŸè§™¤@í÷Vä>J»ù=ã„»¡Í³±rÉ]ê¼`h÷ýõX9² f ïS¦†²üì#Œw2(SÑ{âVFò ñááÇ«ÐÖ¦Zp‡‰iÎuQ¡&«»š_ZôÑ—‹Ï@Ú×ïywÈ0?ù˜Æj,œÛ½U7r†ä¥FÂÁÑt qVž脘?¼U?ê ©ÂØí,®^6QDŠUUœCCŸˆɾE1L-Š!Œû®ó©°Cì­hLë¾´ån6³‰w±au\AúR¸²d=^r–3 93–C•Å©3üs8ñ[ŠÑ“†8Î ÚÎ/a% sÕP“øï"Þ( ß]D¿£ðJ·Ó¨â¿6¥¸c<|¼þš #rŒ€X%q;Ç#ÑÊ¿V¸G²4_;bç*‰&zôDÇÓ†]C 2€ã‹Q©*¸”Ÿ1¦÷4ÞNÃ|èðÕ ˆ>^”&ýE«€]20°¤’ oeé…]Þ¸V Ò>¦¾J£3éwǃűôÂwÁ-\µÌÈÒùíµ@‡^Gè…ÀÛ¢3¸é;NÁÙB;ðT5°´è-‘/¢©;²¥©Š†2®A UŒa P˜à…£¹k¨ôª<¦çC§Žã-Œ~Ñ~ÎãÎyjq•„ñ™à]îòó n™ÕGÇzëùµ‚rY¯Ò)«;?â_ß@b0 )r’…ˆýp `4¢»LB{üà•»£vàí*vÿÚë`Xãb'O Àûa5ßj•²ö\X¬}ÁG¨ͪã Ç2A‰Ò#û8§ŠÚröGäòWÕò)‰bÝ~ÈE¹æ€Áú„¡2†fšÚ‡¾À1*ø¡—sãjùyš—Aõ QuþÀqKñ!h6übZ^ÏŸœHOß#XI£Áªš(w>9Kë#³D‰øƒÚsZÌäe¢Zx—âÄ [}ºÎ/Í:jÐú™t Rð@ˆÅÄ‚µ›¡i>7ØIÄX7Øì®™îk[nñî¯_ßµ=Ÿ×zØ[YæšÕ]O”bc°…OÔGaø“ÓԹ•šhœŒx¡«:ÁöË&™ÆŒew»G.±TÃ^ §+ÃÝKÍóÛWÁ¸S¨q‹/;“…|‹¤/Áû÷Û: pš™±LÎ[g»hµ-ìß,ÿ i´¾T0°ªðø|…ÇTCÇ2•·iû"N¯ÄDQÿ!ÈËåýsvuPß!Gu¡¤uЫۇªÁ‚æ°°…éHSÚœÍ6p‰(9yEbz(7Œêäý=ô|Ìä*¼O`!YÔ…‡H —`_?öQÊZýäÚûÄuÀp3•’rU1‘Ô? ¢·¹‘ž´IÞšsôɽ®¼âþJ—Yê²}µ×'(Y¼Á`à>E8qÉÉkžu{vr³¡‹ye„%)Lfƒ†;™m–Ç]ØÕî5Ô‘¥ê¶~èMè¾¢ Ä•N-´¬diW—€SÄV·_Ý€@›ˆ «È÷ó #mDœ&í£pNÉþü¤¦w8ÝëÄ€,²Ž.-fatïæCa¯9–}¤sUÆ-4Ê Ð5sµ 9?4oÞÁÀtБ@ÎëS~@hfæ€eЫÃü±V™->ØíÙ\ò]z%©`²Q° Ä6Ç4œˆÇg~Ì&húêDþ35³@} W$¼^Çñç¹;?hR䫸ŒÁ.Èš•< ˆ9/ $ïÔ°WÈškÚ¿Ö¡AJ8Æñ9Sy—Á€¶ªXùº¿UR÷Ûl¯Ç¬|×ç·Óâ"tª9øô¤–—I€s|&H¦ß@P®Ð^ó!°VM¹{„XäK“!«×ƒÁ¦öw(g̉ƒ=ÔÄω¡Žœ£·ÁëC€:Z±„#î3mÎ?QìöQÓ¥·Î_bR/Öuì];b²ÉîNÁæÎD ³™¨ù/“\öhnV:2F6™µQ{Ðb’=bÑHÑrO7ÞÞPÉÇð„®ÃƬÿ’éWwÝfP‹ãkN”sn–×b)MY¾n”nâ“ÿ¨¼'|ò£iI*_ò'9ôR„&ÿ6àÝ«þ,ŽøÕG×# ¶ÏÄ¢âxëݪz‘d>ËxÊÇMwLI9·æ( 7«‚>sÅHYp‚!Üsµ(™vvóö‘ Ïm8‹ý<Š,Ñ)¹98íõë–Ueq„_ìáD$ÿÄaQNDé\¶°*ŒØÈŒaŸGBúsâ!fÛˆZž¼i$T%]ËüXôk@Z,õ,•ÊÏV-__ “PIÍ!ä¤ÎLÙº³ŒÝ_C¥Ø’·ÐjY Æl¯½w.vnꂌx÷÷¾WŠõâÕ6â1¯€ 0’pÎ@²#ïkÁŽÁ§p\Ò”i0òŸ2œÖ=ýð©çÃâzÉE?7•Ë` â˜WÝÌæBÜ“RcSžQtë𒸣RÇFi~†¶\ë­Î«¤é}×tƒž—Ñ8ã ì«ÁNB’8ÜLÐ6ÈK6Ï–Ç6×ÅŠ;9k²F” ¹TR¶VƒD‡j£1âUÒÃD,á°ÝŸ xé—Q(']9ñkÀßFâe9¢|&Ml«“ô8vj ”pœŠÄ!Ö,?)ÿp¸| ¸/Ó©Ëɪ&¯ŽM1І²ÂIpì!ÃÆa„/Ô""lO$ô_M¥C9Øæ‘ʨ_;\ÝLTSOõuG=¶{hA¢]ü¸²¹I±/ }üZo«”ò¸Ëg'Ï{oŽ‹§û{„n‹M0z4®|.ã—FcÜŽvùȽ¾„ ³é:‹"9U`ÅŸSY,˜½Y†58šã&œ]¼zž Zÿü€²¤ðrrÂõÊà2Ùf”a©-7ίQY†Ûé*"ñPÄË뻞Èåêòì. ÔâùóLíió™à –âÓ ,ÞÇŠD­¶Tê[Jºº¶ã†ºÎZ–!e~áy¦dK‘¢Û\цÄåikyIË>1’+õ³KÕãW|†Ý¢÷Ž•¼ÉÛèŠî”¿ìs³ÔéÕÍzD¨“DŒ )tô Ôt×…Ð\‘Âh³™]!FÒÜù{rŒ ñµc;ôH…õT"‚ÃH-›{õ;]:±Âhf‹¨è…§¶t ©A=ÑŸÅeÇ_J½…¨Ð}%‹~@ mcM½Ì‹ ÓasßÑÔi¥7eAßLÖz#PÏ÷­öqyY…JÀ0òZó®Šf!þV_Ð4Ë|Éa½°ä‰òÆ œÖš¢•L2ÎùDhA.„‰bYäÛ¥ˆ”Ó(L\WÆ›W*"—Ê\O€mþÓ²òЂ"ƒ…X1®@aXjWVÔíTo<åŸA.: Ÿ¡T M%¾®#L€XiÈW.Ÿçƒ!7†û}åSkϦ§ØÉ&È£K¼I…³é<ÍœhÊPÏ®K¡Èâ„—-%G² €|£'©ú‡K~K%?7›lêK0ÕYÊ ™¾¯Töfâ±àf¾šîQìOúQìäŒ)Ýtcølµ©u~á(4›ˆðªTÜ®zDÑ+â£:‘*§O¢=K¡çj=‹o@J…£¯¡qIßÎì>¢¸ùˆŸ¾`IËu2v´É§ê±»Þ'R ð˜Aùµ÷F(8 %«bÞ†aN j¬5ÊeL:¨àQ3Óã¯cÑì<¦‚6>Õ‘ ([í Ë ®$2mÝßSJ$q;_À¬~íHü^fÕ~ÅvôÖwÇ>y?J1~žö¦8ÙvöÁKk£×sÝëôœQ~)[!OBó·’»7WÒJ…¬­ÐUQ›lI—¨ù>TÃÚ1écJMÿ±%­Vƒ ar%t »ÿWpP endstream endobj 65 0 obj << /Type /FontDescriptor /FontName /ANGVFS+CMB10 /Flags 4 /FontBBox [-62 -250 1011 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 108 /XHeight 444 /CharSet (/A/C/D/E/F/G/H/J/L/P/R/S/W/a/b/c/colon/d/e/f/fl/g/h/hyphen/i/k/l/m/n/o/p/parenleft/parenright/period/r/s/slash/t/u/v/x/y/z) /FontFile 64 0 R >> endobj 66 0 obj << /Length1 2238 /Length2 18756 /Length3 0 /Length 20081 /Filter /FlateDecode >> stream xÚŒöP]mÒ C ¸»spîîîA‚,pp‡àÁ‚{p÷àwwww .—Ì;3É|ÿ_uoQ{µ¬§{=Ý{CA¢¤J/lbc”°9Ò330ñDåU˜™LL¬ LL,pjŽVÀ›á(4€ö6 ž¿D톎o61CÇ·8y@ÆÉ ÀÌ `æàaæäab°01qÿ'ÐÆž fèlagÈØ€€p¢6¶nöfæŽoÇüç@mL`æææ¤ûW:@ØhoalÈ:š­ßN46´¨Ú[Ýþ‡‚šÏÜÑÑ–‡‘ÑÅÅ…ÁÐÚÁÆÞL€†àbáhP:í&€ß  ­ÿtÆGP3·pøÇ®jcêèbh¼¬,Œ ‡· ' Ððv8@UZ h ý,÷OàßÚ˜˜ÿK÷ïìßD %ÛXÛ‚Ü,@fS + @QBŽÁÑÕ‘`2ùhhå`ó–oèlhaehôð¯Ê ÂÊ÷ÿÝžƒ±½…­£ƒƒ…ÕïÓ¼©,2µ±¶‚à~×'fa4~“ÝñŸ›ý ²qyü˜Z€LL7aâd˨²°sJ‹ý;äÍ÷Çft°311qr³€v «±9ãoz57[࿜̿ÍoxyØÚØLßšzY˜ßþÀy8:ŽöN@/¿ÿ‹à˜™&ÆŽ# ™îû›hú~»|{ W€ÓÛì1˜~ÿü÷éÓÛx™Ø€¬Üþ„ÿë~5”?~”–£ý§ãÿúDDl\ôlLzv&óï!ã|{ðú_%C‹—ñW®4ÈÔÀýOµo2ý§bçõ¿—ƒð¿\ 6oS Pÿr]&v&ã·_ÌÿŸGý_)ÿÿ&ü7ËÿÛÿß‚$œ¬¬þå¦þ—ÿÿÇmhmaåö¡ur|[y›·5ýßPMà?K+4±p²þ¿^iG÷E™YýWF  W ‰’…£±ù?Óò]ý÷–YY€€J6¿_+ú·«ù?¾·Õ2þüöêpxɹ€o›ó¿GŠƒŒmL~¯ ;ÀÐÞÞÐ îí’ß;ÀƒùmM€®ÿb#ÈÆñ-ðÖžÀÔÆî÷r°…›þAF‘?ˆÀ(ú_ÄÉ`”øƒXŒR+€Qúzã”ýƒÞXäÿ .£Â׋ÊÄ`TûƒÞXÔÿ‹¸ßX ÿ 7£?ˆÀhü_Äþæ3¶±zô?6¶ßkë?ù¿•f4ù 2Á·²LÿÀ7§é_ð·ÓâÏq¬¿¡ó_Ù¿ Vü¿Ãmœìÿb 0û ¾Ugþ§Ö·®ÍÝlÍ ¿"ÞlÁ·K²ü ¾)óù/øÖ¾Õ_ðMë¿Zyëû/æß­Ùü9û-öíCõ—û­vÛ?î·\Û·È hêøÇÊüoë?‹þ_ó[‘¶oëmó—Ê¿•±ûskoävN6Ž@#«ÿadeûãø_Rfæ7×_J2¿ ãðçÈ7!¬ Ìÿ x«âOúÛÛ‡ÑÑÜø§Ã·­btt±ù+áÃé/ø&¦ó_ðM —¿á-Ûõ/øFïö|ëÏýOqoLî@ûŽúŸ 6v²SÏñ_ïØ·õþþ×tÃ-ÌÚóXV´ÜU ã»ÐïŒòOQìh&ÑÐ{,Ø·:= AÇÓT¤ù­ÙßÇt¢,o‰SÿZ$~ö8j¬…nŠSn~ô|ÒQ™Øi†›ÇêË=®é!„% WÚõ|¶óÔðý ÑþS†"ËΉ Ié;úK·¤kMOñÒpÐìŽòn‡,üSñ$}¤z„®oÁ4E¶Qú )”#=!Ì´sWäé_7Sh™c¯Ä21´p^Ç‘¬yÚë,_ïgÜWJÕXÚqÉqµq!~¡ OPzˆì'È`Ïyæ-÷λ6òåg"Ò%.Ó£0쳤VX¨„ƒê»ªœ‡Ú˜·³âTø½èÛqUEõúö¤Š˜ÍúáèŽU¬Ÿ„ûm¦"+-7¦–‰‹Ü“5¯€iD-ó#Ÿ†ÇZ»•Á^ú۠Ħ»úÁ­/ÍÁA3æâæ:aËK<©„‰ï‹GÞµk¥1Pè㹞Þòyø]ˆ<à1oæ21is½ï&8eÏò¼øêUVw®Ð¶>:gå‚öÉÿÕŸCáÕègâùy.®9«¸AZuvªxGhöj•2o5°nÚ¿˜ñ|½ ‹A¬ÈX.v“}þ¢BX¡¿ê}Xª[ï¨ÁÒPV¾R¤í.Aé·Ôk\¼à‰à«ªÝ}'s_ëš›Ù"šØ"÷°*Ó-`ënð²G$CXÅP’Ìmù¤\­ñSG„½˜†5¬ª»×.T¥N÷׎û‡!EÈ [Y™0F¥¹ETi«ry´¯³q–›îéBÄQ üåºÕ«¿øKøuÛµÀÉ×ÄCÔaÇwŸ8â3']%³•A}%ø)a¸Û³ß2Hæ&àäXÀ°«t2RP¯·ò¼iH"L?úÁÀmñÍPaôWG%\¨ +±Šg“ÐóT¡R¡®¿Œ #É W0¼_讕“q,£ìòà„Šæ¨‚#óÕïo?š™•šÁ» g,D’˜3s!•`ÿår¡BîYñêk£Ì7º7š?aðå_:3S‘'Lò+_óõYmýý|Úê€ùùjVÀZÙL]]eeªà®àg¼þpÖ{ø¶+.W%>6æÂ+~DZ;)°EdD^ŽäÆ/{Y'æÖÇuQ°÷)XµRŽeÕS^7n8D³/_Œ‰(t×ìÎ|t›švÙÙœItRõo¥›¾WžÕT•€Âæ©cF‚™O0)êwã¸õk_\J àÈØU/](‹è¦*+2$Ýï ¹qøû©b·©‡Ÿ[¤ŸÌjg=¶ÑHIÌrÎÆ3Ö˜ï-êòÛ)ûIå­»…ê5g‚Êprˬ—(˜’Þx0H9‚îÎŽ[‹c4ýÕ•nÕJ¡$Î’ÍC¤!L£*"ǸËWŒuÊŽ^,š!œ³v›nÅ[î1ÔOMÖ4ÿñ=H*–&, ,€ËCeÞ&µ£[ ›z[_óü‘ð‹·¬§<¼>úìT¢&êÚ AL+¢Û¶üþ+‡OIV•^ë­¡c1Œ"óQ6c:˜Äñ·¬nDdÉ[ÆÈòòsã’=ÚÏ+:Ö¥¯MîcÞP°hVÅ÷%¤2å@Èy ‘(M¯= šhÈeÕþ% \ºì3ßÕ‚34¬¬¼Öf‰È>ˆâV¥t†ýV9È ×;È|}Ñ!¨Ø}W×ÊYˆjJ¯¿œý³îဃt±¶/‹xþöÞæq qNXÑ´Vx0·@åÛÙh}!SlV<©5%Cç w\õLýÊÌŒ^íf¢ÅÛ}‘hQò´}F¶>A¼+Åð¾eʬXû¼óÙ-#!SHˆhåŠ Šët-\\%³DþÇ]Af™üºüëB¤ë²wjÙFI1m¾_­¨­ÌÊ;Ò&Ë"WHö‹gf†t7žï Ù”™±+‡¿J¸7í4ò †ó±zŸO¾;˜|M!¹ÇtÀ@—åìåòÌÈe¸ã~úŠz^l–÷½ØßYA¬-\^’“›\ZÎâ…2NxÞ dÅá,%¡XwÉ' »s¤4’«øUXgÐ9(Î{uÒê;å^ÝÖÎ\-ÕÂ(˜æâøŽ?eûw&_YÀ .f £¬Å¤¬Q^§(W_·»°TÞL&+8œÃ¥N–kãæŠ#³°SYq:‚­ðƒ[Žê<‹‘Ë7Zc€cQî©Çœ@l¸z¾‡4™„èËv /-§­n®‹+.šÖ¦$œÞ »xùÈò~&A¦þrc‚dÝíÆù5‘0‚U=úÄ)³Á2—ÕíéÖéÕï9·û@íœMsÅZ–+D?S’ƒêl?.š&³„ëØéô~âÀìÅ:&²ÎUÃíWÝ"êD:é'2÷/8‰¶Î—ˆé„A1É7ó=… ö"ܡ䘠-Ñ2Qæ‡nÇb!²ÛB.°ñÏ ÁÓᲕàYS¼9í‡ÓqV¾ÔPðó Waùà¼ëy&/¥'à±e(OkZÂøzó³ã·zÐЋ!Úó¹ùê$£EÅ 5¾›¯·tS`*ÇJäÙ(µvoN ú{“G·’N°²¶Ü*qÏqkG:pƒSl•!Û/jÞó(|Ë;îw˜úÕ÷­žXÊÔ!MPs%’…Í­ÈÊ~—|šEó ½Úe%°÷X‘Ûè5g‡T1?}pD³ëƒÚ§Æ|·âå*ØoºÊñøŠ—-Ô°."÷õ7&ú9òþ¹Aªj5 M²œQ0´*ɳÇ:öy©OýZ¿zÐO´ì€^-Uóyá·óZÁJ×p£àêâ߯^"ΧdýÛg¥"¨ªëÀµ•…F‘¥Ö)r¶_ÒÚu i8»)Ûž²ÌGAéU¸ZTÓK†?Ôº.¨>Ú{O¯%3‚ôAñ2rÙXð0Ô BpÕ{YCã)peu „²ukKçzŸSV;A‡_°N ä*r>Á,æªgƒ7öx<… 9ožÉ­-7í~g‹»fN"÷F··~=uˆÇè콺i¯A|Hnæ/ºtøun“Ša$äã6 C"*Jîm àé­ýãøŒh— ¿ndhæ ”dBN?¡{S1:J)Çgû­Ù Á³ñKj-×þÃ@wÂZÓÑ>w·Bgâ ýj÷òÁàÌ kAçé¨w‡W-¿æ‚»>‚æpáÎäZÃ%,㘹,@ÃÁÜqîHÀj ¹©~úr˜ù.¹ìÞÊFdö 4–8!Ý™„é~¿>Lâ›ÂÊÚÃi‘øš¡NˆŸé’+›T`¦ç!´æS-ï’$Ñ,Š:)«È5ûÂÕÓî݆”.éT‰ÔsÂhò‰1»Âw±­ §L³ÈóU#ÄiØ3êë"WLe:$GòM®‘8I‡ž_brîO”!Önå4u¸aΖ7š…árÝ*"z„*"†V?\kô³æ´ÒyªÙå * ×vO—0Πѿ6—!×á{>2Zæ®÷,d“x­|;=£Ô$ðé/ÞžUþØH%µV°‡<ì([ÖëÝ?ð Ep!4Â,±O@Ñ¿>-ûv ¶)>m9 +¼§—C%„' ¾×_ÅÒÓ\2È­û’ÕÅi@T9~R(+¼zÎìþѱL\Ó'ðmßê§²mL^Éwï)šö é÷uy—Œ‘¼Ðª¸Tz¿x¶!eª,…1\KjüÅ©™$yG›0—”íÞ}-êûöYªñ<…7ƒ/Ú4¿íäëh%'Ê÷±À>‚—g3×m7™ç+¸>îÎ,ªJÛN£ÄÜõ…8ðN•ežµD&A~q0 ÞŠúbªŽ†¨ 8 ¼Ãhm«À.Ë ®ù ó¤éZš_5 “J([×nœª`sŠT÷úÙÓ½×u]…¡˜ JЊ?>»'™—†™ÖÚ)œÊÄ•¥Ø7ίh8&zLåY–þ„ï£ Å| »šjB5GÖQ’3/Ö¢ßñû¢jÿâfÈWÒ’,šç%↌$øY4­†(Ä6Aw—#ŸÞå_? &eüeËÓÓÏu9n—¡S`q|¶¢"{ìsbù¢U7/eBßÞbJå%0šÆtb[Â=Õ ¾¯^ðû–´1˜ªeßëû–ØSH 3Œ Ý7]Â@wK£ª˜µçʰL˜ÄÍ­e‹çbŠ#Ø$Çõü}‚ŸÑ˜üËl裩ëZBêÑP~ß©dQjÙ•©¼Ãô4ñGMõg¯§›ºú­îºH=xŸé9 Ë‘>©¶³pE©W˜‘¯Äú÷?Ây÷ƒ«G/½c6eœ³‘ª}?-“Á‘/@#/Q‰š ú²'ó¨â<6Ÿ Uv\Å•á¤Ã¦–ÖúÐc$ {‡XÙh‚×ÊS_FAÙƒÕ-̃´<,— X=­Þ9–4QI[e={¯W‘ìÔ>eÿšRê<öøöJ¼"éŒÔÖp_ÞwÞüHñ3„Azýiê–íÝB—“Û2¹ýeÂÊU¼œ©—±]-{‡Û’ç•O3éøwíÇHêteàmŽY4»FÇgùž¾ë{‡|ŸÇÏÜÒ¯cMsŠÒ& 6_ÇžiÑò?Š$ ô3n´w‘~YRåDj_Ô"ª€!Øf¹„HH9¹ ¼/ƒ@[²ò³±mÿW‚Bö9‡sµ*žšj(ÙN¹\â+ÛhÁéž`*ØÕÍñm×½·¶‰†¤Ü,í–f©äKîºcC‘]mäÀ ¸yDréý½6Q©{€X‘£ë--%5s_~^HÀ’†OÓÜ`[¾%DàuîûÀë— àú‰†˜ÌŒgbSÓGd¯‰Qû°~ì^µ~áþ}xSœçwI9±ß”¼x߇‘NµÈÞL‘ƨeÕ#IÜ>èîá=ßêMÇAâAÀó&ö{ªÄt»ý¥œ¦9^•{žÇ“¨Ò•Yûx]ɾ³^«ó[¡ž,Q48ÊÄ@3 f+¾ž¦Úk¬úvâº~ªl„j Ù<Ëì¨ûäc•~ÁnÓ†¢³—=.Á‹B§@YH…nQ¦[¥ Ü!})5=r=NÜ.¨Æs"4/q†½§ð ­ú±c…©Š¯”¦Ù|]sÊ·•Í´QB¬ÞQþ‚;,ãÜI'Kì {Y8¯±—ô”ªP«³¼Ê§Þñ‘‡ÒoqIИö†b½ öD¡yYD•;èο£<²8ƒ´k¶;­Æl_í ee[ϨH³j‰ºú9 ªônŸ3,"n+PCľ¬KË=//ˆÛ>‘WØDZ߀1Ä× ŽÞÎá®;du‰<ü–&ˆ÷aÄW–wnE3OuG)|¤\¸X’Ê¿«{ù»f|rXüŒe~\J‰³»‚èDk[s€¾ZbM\>fîSJ¿Hèf&9ا  >åÆÝÍ/»æzD[ÃÇ•Þ9}d‹}&ù¶.„`‡Ä60Üöq#ê ÷!/ÕOWüJú['X¾¡uj€e5[å<‚°[E›ÜgMEŽb“Þ2­—·‚‹È3ßóçêfÞ"i¾oóëš&g{ ½¯ñz6UL¤¹³‚ù«ßòiwƒ—%ÇðG7Z^ɘlFà{ØÁMk¤cƒÊHqQ×=ƒñû‘Lc™ãÂÒÆO”‚v?.|Wûá¿ ßÕ  4£Ì¯…mGqvÕ›x¤¯’ø´VµL±iBJKªä%øÀ•ÃS³"L¢Ì5ÚO«Èk+®[Ûls$Äb/ä'¯ÖÚG¦5mv8@Ø-äï n‰‹5W¥ãë0ò¨¯ŸŠ¼±qè)ÏÞKÉíŒ&„¨²¨—mCú\—8 çbŽ$Ï3Fu3<Ñ;=±àæ¸|ñοt°˜Ð}WùTÜ{ ­O tûnºÁv-–AbÑKGI³}ض.L '‚ÏHoCÕ&'z g“2¥…O; · /è〽+SÁk /GoÌr_…ÌÇÇióE=ÿœ¢¡=ƒMŽL½J­þ1’~ % …yÃ2×&1t ÈUí.ÒêPËð*tks„xÛŒˆµ IÔ‚³ï‡1ÈŸ]WЬáܹ»Àbü0L.Ë?–`iXÐx)J/ì¼3û Õ†¿ûíêú3ÓÞ&Ó°Ô]#¸*ñ¢ïxˆrÂÊ+ÙÉžAó! ˜Ëà„¿tŽTXd`iÔvCAüÉfÛØwE)'±Í(Ÿ°R,Û®Ù¦ÊE0;͆ù67® Ëè®L©J CQ‡jAÛÖbÇ&=ÚÊÐ3}?¶Õz½ïPmÈݲ2{3¾âê€E§óâshC=8´¿´ÑuÒ^c²À8sÞ©š,E×èMž+ë¼p^§{¤ØÅ~ÿ°I®¿þ5H¸ëX‹èÒi¯´õ†ßÝ ~°©Øôb|8B^I¼î“_m/Y¢iŠp¼]‹©mTRÂl¦ÌûcôÉ/1%™uÀ”[Ì)˜Búäáç=t«ÄH¦˜ôÉéàqÖÓ§ú“ QÑT‹ ï²`‡_t5§ƒNV#Ù|HöÆçvCçM7F_>n’>gHÊ ¨yâ×-«B}3úšMx@Að^Í=?Ò§L–­ŸûÞOžA™Öï‡‡Ñ ÿ¦“R¾·JwÌBwDÓšUÀg5Få;²kž“8-.“¾4—[¤Î³¡¯ó÷Tòu)jk±î¸¼‹$Ù!ä<|ñtóW™g¦$ÉÔ•D®½Oú=´Íë´ DÖöIxP®Í$\õ¯ïÕ­V¼+¼âÄÒÀ*…cx^j·5¡!ÈX«ñ–àÏïxê¦Ý@"¶ªÓ#™§ "«š§TŽf©eç†?IB¡ù7‚MQí;nG¨>ä= U/“3 ‰Ñî=4áHð»uù—T‚';zˆñ*â+ß"-{-IåO¥rhCä™åx–ægÐõïÕS Å’Nƒ²Ãš.‚óªõúøe>Qˆí§0(Êj¾@zOÐIÃÍø+™AW?±Œ—§\ZTþ訖bÞ˜6óo¨äp(“—¦,<‹Yßú*ÀÆÿ£WWºDw´c3#2,ÙN$ëˆoܳÌQºÀ^à¾ñNªc+TлŠï/MD FQßµ—çÁµ.ú4…;®½fôÅùy¿@äDZF²Á¦d·u˸v±¦j=£3PlŒK%? à!µ¢+ª,H hdÀñä–“° ² P?òŒ\!+÷€ØºÄ ¬‚öT!„¡­è]œ§†bãËf>›TkÓÀ y,vCl*~ØGˆ¬Úö‹%?‰W¨Oð€¡ª¬a3¦ñƒ=U³ÛºâO-’ÜØxs^uzÉWˆ[Êøš[b9|‚£4±Þõ{'RVè­¥ð\ð²ÑÃ9÷Æá…ÜYÿ°a.å÷üǸXüžŽÂó¡ÔÉ&T“Úä™1´dRiA;Óq¹:Qj•¿^ʼi?/H«§¹T¿;û¶dÜÚ6,W¹Õd¦kÿ½ˆÜÛv·Å5Íi;svÀBJPD¾ŸcøNÕI´w+ï,á1’}:Žé.œ˱<Ë}ËþS\êxš‚ ’¡—éÿ>]02>€,5£l`Îçk)¢m'ÜŸƒO§àß}œBxéHƒS4 ¨†R‘*ÝQ¾`ïÐßJóœ÷Èó­+ô™¥#Ö;™ÎT®GuT~³O@wõ¹#ªÎgOœhÉênRIm”t\йÍÇzø}Ìú£Xî°ŒäÂå)4¯=Ï…63Q‘.nrWÀí ãÀúIA˜d²F}]Qø1a#Ü||Ö ‰<öýù§{m:Fq… Žn8GŒU±•Ѧ¢c‚ツ%|:ë*öò’mHd7ù²¡U#›\ÆR5çR1‚ºâ÷»0ò€:gŸOÅt¤l+ÂÊz)Ž\ÍŸÊMñ±±Ã¾ RJgáCGЧ­ ÕwPÒŠH7¥ |¨V€ðK¿Ÿ9=†ÙyJb)dq ,ÆqÄç®í÷£ûœppâd3è7`,·)°M.ãl.oRu–>zý@còÑà‹ë•†n/à§À99á.À5“Š.—ww NÞÞú¥yZ£Ãð}„ð¦<éÆÍåÖ¦5RÎ. 4¡3ÆØ$51ehi¼À?¦éV‰jŽ9ï ¤1ëõ)~Lá³?9 ‘+b9zw%æ¹Û¯B¶ƒŒ¿yíÔŒFq¯XOfsz†£Þ˜IÝÌÁ†ÕΤ›1 ë$û"«Î„SòùʬţVzRvÍÛw~UÖ|‹Ð7P Jõ)µÜ‘•ヸ¾¯Ò±î"Ÿ!÷ vT… '±®mA[-YG|6[Hv B»<%˜h0)ÉÕJÈ9¦Î£ï»ŠõØÆ Å…¥Vô.eà~%ÖŒjÜßù0–X5¿ñŽX¹ÛópïBT“€Ã9¨µÿ4mðZ½~¥ÑqNpûÕìt’QÜO;Tá³`y¯a‰¢Ì—…ªé¡ßñÐ gOR’JŠÅ@í~ØjõFÅwØÁ8x\>òe“\íú >CøºÊÊLº0®þ‘Ìdr'õÈ[þÑÓ]v¶{_Ö W‰Õ.yy„ΨýÑÙ6ö¨^vf²+]’€•Hûµ(?IŽðÞ¥`§WÎÇXŒò‹ Ñ=eüŒÑ®ö/½ŠÓœtœãÚ #6D¶ùu™&‘'Ø#š ‹ßŸ‰ ññúàng3EöĹ6íGô±„ž]F¹~™øÞù?¿TÅGŒ–óë6Y‚1ÈÌèa”Ϲô‡0Ñ¿ÇÙœ…I“f’‹‘U¹ñ¯½^ÙdóÔýk€’F$»nVºTåyµJ c‰ˆµûãÒ.ËÁ®²Èºîë£ó Z¢6jƒö ©åÓØ€ŽnÈ[UF†ÔRÑUïrÕJSµ‰bbz¿–à9›“eå†bh¡3µ<“)(ÅDº!Š\ýïeÃ×T̲>õã™ P¡,‘Ï:Ôœª¸y[$¦…EÛÕ­•5£!œrFt‡¬$’}Þ ^xüZtnêÔ“ZèYZa‹0#`Ädü€/ûQ‹J³õ ® ¹Î§?Ü«–™A‡< ÃéÖ¸>öa]uîöÎ{C,øDþ°v ç}.r¼9mµÂ¿ê»®·`á5_ûìòR4ÈeÒ¯I8îFÃaÜ’²šB)Ï"*ÌìoÝv¦ºµx´_—ë‡?Are˜Õ̽NŠ]£Û\QÓth6Wç¤(1›Ù×ÚJé¢%ÄbሄÍÞÉ» =³àD6Þ“5 ±Æ,‡f¶ú£ia25 1eëeŒ-:š¸ã¿ÀH>Ÿþ 2 'CûJÉéÂB,3þ)¯—E ²²º’ª>æ "I˜È^H†¨AÙ!çhÿqï~ÙcŽÍÂâz¹½ßʇˆ”wë¦=D›a2´EÃý^Ö¿§öq4Çf¹ic ÿsM—ŒSÏ7¹sVYÈ ŽS_Ì9Ⱥ³•YšCÖVªœè®’ha²©E@ÁáPXw1U†&Ý rfõ• áËáÀŒ üM)ÎÅxwŸ‚Iqì^îKH¸WlU”Ô*;®•sØïºÅŒ5†ã¬µ%äî—Î5wÀãx ê³¡/Ê“SkЗe€ˆñ¤~èÑÏʧÁ6˜ ˱òënãù¶ G¼K«*ˆ1C¾rÑòN)e™DǺ讙Ýï ¾ˆy-œÉ9 –¬ÅM.¶ Ç IÜ0溯ïwK»ù]G…ÝÈC_!Ç|âtýÔ=&ÔÄŽb$)7!Ä$ðH:óLªÏ^?xu'C’ÈEOÕ™#©F,Çñ<“%|ÚmKð-z@Þ3xCfí²ûû1Í:‡L c€ßÕc=ϪÒ>§Òr=4̇BèZz𔻉å4÷ø¡»ÆCWïMCuC’è˯ƒS<o[ÔrS&ù#\:3Ä Xš6ÒZËigSéŽÜ Úý dÔåsýd5q3~)w”pÙf¦#ð¶ïyËAlæÈGQ”qÂ<Ç ÷ÙóÛ}Ý8âmD -×WÛ¿äDoïÀä_Pœo@ âRýføs8õü#YreÌW¥Â] !R±SAL†\–z.å–ª#=šo1¥¹hý¢“ÜÓ¢zKø¤iƒ$§›¤öz›GdÉsÝb Û=Žò»^ôV9œ÷q©´ª,›\fäkk´¥"! åðùA£¥y,ýäA5ÐSž9Ъ„Ìä”nP46â‚U˜mšÞC8[†‡€¿™Á©RE¥8¬É·¬¨º3¯åšßw!‰­Ù½[lÍN9òÌ&ÆB!ð­GÛnê´…ý´æÉØœ–»…ò—ì(¾îeöE^}TÎ+žØðïkÑX©¸oD'Øy’5Ùz0§ÿ¦¸Yaü¡#=}x5øX`9ˆ@†,zˆ”,„_¡½ÖnŸCôeü wT'æÑI‚ø!z*oGC¨ø7´Ñq›D¶/Dr=é³U¹ãõè&#8r3Šû`ÖsŒ/ºKƒ0u ÃMß…¶,TÚðT\8”t¦T)ÃïFÙñ÷ýf:Ô‚ÅßJ¦f×ñ=—'ñ]`©£õ{E™ðN‹þÁ°ø‘žÐD9uež½lTèêQ*QŸ"lU/ØÈè°G”wÇ +Vz¶PôB'Sà¶5©}k_Pý=Å^ªÐÖE[–õK£öBmÉŠFTãá:Ó˜ )vs6lË4zò¡ºëô$º/ †“ùÖ£:ûÁû¬èí8àAÕ?Boé|2å+„Ì™f¼Ã‘|Z4…%ÕjS‹VtXª06\>$Á£rw¼Ç#7ï™ ÿIÆüì ŸÕg;ê!YvGbR]ƒî»õêuüŠ~†Œù@{9̬êù£ŒK(q®*ü°Ï&8œüEQ™ççÍOSo?&ÆÊ€2m|òpSŠf½F‡¥}¹nKªwQ‚¹—KýPs?ÕeÅ™D%¬¦SN̯d†ßÔÄÛѶ¿ŸúêqÈUvVZ’?Öû—ê^¾«ƒåX²,6K%{´ü^Ý.PÕOÂîÅÿñy†íˆ‚´˜{âŒ.v[]I³A£é)829ÔæÖ"XmI¢Ìì+_²Õ¼½³š'¦XÏh{‘î窟Dë3O’éÚ¶–{ÔMõlþJüŽ„Ã»&ßÑ*YÀu"n³£ó¹‡>¨Z¥HÈÐ /›ö”åvtÈXR#‰ò%i“¥ ÆCôŸ=¤g„Ñ>dbE~æiõ[ N˜ŠDiEZÓ«#Òù(¤,¦Û¥ªGÀlu½ÃB³>ò2wµ¶Éšëç†Gr Ž`ù$Ý:’äá‰ÕÖ:êþ“– hPjm蟑¡PPbCI]tB¢Ý{eéxÄ[^­Åê`‹±þC= xêÉ0&¨$Ç3ÛÞàý¨÷ÝsyyÚÓwö.” ¾'ªöŒ…POí‹#¸Â1ÄD欃«›7>Æ)Ä­·â¡-Ñãa˜BpÁU¨‹>¤v YËQ>ù<$‡¿ªÉgL†˜œ½üÐÑÖûX߬L?ë­0K(z¦­áÃ:©¹,VËÕC1©ù‡?~ÕSý)eæ‡X¨"µ8¬¸o»Ý},ôHÐd1¤Þ¼Je+U»Õ2Š,yløñò¶õ{?~J1& `û>M¿ŠüwJÊrvÉuy½dfyí^`qˆX•Ê®4 Õn˜ dž­TW2ˆQ–¤|YÅuî™Ö,f€C)AMµ¯.Äǘø˜ JD+’:²/®ß´/Úlâ<‡¤ùÅoJ¡ž¥¼mT§ëý1 #-´5¥ªtO…mVçH²)5IùãËöŸ~Pѽ»8D_Íž {G´½ öÍFÝ$ƒ‰–VÓx³×Ò œ"Ú¡üò¬#%S­à[Íê ¿þÆhÚ¦¶!ÓY’%N¹bn9ÊUfT´& LröîÆÒš!©]–Ó· +P®`ZepùuÃgv®¶p8ÁÜG‘´þÚÝu¡ãÒ^öõ1.½'uDo­w2ë¶‚©}*;·¼U4)¼¼`ý¾íäÌ/·=›b¬“QG†ºÈd9/G0ìÓ—ùôë!%×÷½Ù ²y¼Tˆ7˜œ3$Ây!ÇRdŽC¿Ò%)’h->òR)C¥Ôžúzc¿[M<ÓÅ|3.F£=L7·ú¡1@bñÅ r”o%;7Dš-ØJß­Ð\}ÈB%EÀ2ÙÒùHY³1XÚ2 ÝʰûØ.¡]‰¼Ëãb¢HHw¦uz|LR|Ü: ]3EÛ™6¾i’¿ª¸è^”ª'[N¤ö¤Ž]“4óò)‘!œâ )_ާüÒ€q¸š]i6 )a¾NÛÒÛnó+zî‘%V¤e=7²J(HÉ;åbóÐÆovœ\$ áb§¹¹‰ÃÙ9}Þ0Óì2šè§[ïNA\æM̼õý©pê=¸àZ‚Pdäžb¿ÀÁ\gÃûvÍÁÝðJŽZÇ}5ÊKõr9eFí¼œ_ûíÐÝf„Û< Eïƒ+*ƒ­!¨I*¤šÉ;¿ªJ`}«7Š}8&?WLº+¼Ç™k†F:J“2êµ¥|/_Ö°›3³ÖÊj¹kyˆ¾{ŠV«ÔÅ™û·'‡¯ªk ŒËdmZŒºÚ‡õ,£öÅ*€Å{œwø 9”Ü£ªq½ mèï3ãºYnNMU #À™A™¿þ}»J\yþPÎΊwç@¸âŠ8¶kªlAÛÐ4ÚD¶ñ<ÍÃvEL¶#;V`)´¸ŒLÿ<ñ“õ§ŽvµÜd+Npé~…)dã”…gx¹påoZZíS4?‰M!÷æAÀ¾wMôô9'4Œ ¬›Ð÷rÍlaÓ—»²ôïGü`Ã5&Øì«rHó ïÍc‹y“I—#3>äË¿ôÕËëLD|9…±®fjyLF33 ¾ÏÍhÿ©wJ‰@oŠ‘#ÄþÝq׿ØXH¾N̰w¡9Þ°píæýfQc›[™÷ØYjêr&Ð:|»^÷‡ÿÍ”\ a©và«;G¶6Š6’ölwwªÕ:r,%rã¢ÿÄΞ`+,W§ú@ÝOá6£p^»<º‡O1±M­pôy¿<Ôʵˆ´´TÞHÌŲÊe&;HJøFëù%©ñÑxØæ¾ÄRjé¬Î{i§’(TôÔd«ö•cšÅÄø3¯ù’ßþÑG Ï7!‡Ù=€™tÉãr¥rm­ ðß$y”•bÙôÉÌá7í§„ìN€aˆõ·R+~ûµ°Ì­É ÁQ9¥ËßqëYòö ¥jb‰ ÚºwÄO)$Z¨ÈÙæY%²~[«5ÁÈó>Þ ‹ãÃôOGnНòÕMÕ¢½`hí»"Yˆ‹Q¼ŽÑ0æ"$b´þügî8 ¬º_Ò|ßDq/GL¾*æuÔ£ZBÆL¸Þ…Á1NjQóžá—è V¼;¯ÒìAdQ'²žߺ¡:â•WÙO쬑 «ež}©Ûú2KIþ!œh2Š1w ©|”Â%bæ[³ S£«ü=f®˜ÞD^ Ÿ°…‚Ñ•^D†Ô–EÍâ=YAŠž:[¦¹Û¿öÆk#ö ¶2Î)7Xþü±†pÎXõ¨#²°â¥éWKgö¡ÖO¥ùÂØû†ÔA"Ý™u¢ˆè¼¦p¼?"­ˆÅ?yùP0—:’Vç˜+KInf9Qæþ¤ gÏ„ùšÀš9a瘤žr—ÿ0BÉPܸÒÄ…¢=(w}‚\jõÄJ,mö çôs\ZË ßù¬gqóõÀç±’†$”²Cgƒ|xɼ׸ü»Y»˜TÖüÖ $mxjÛ[cÖþJabÌ âȺѨR£¨Sø·ÖÌ>³Q¾þYþ€Þ¥ Ïl’ÎÝF.»3«W“Qu™Ý_âö|Q‘°Á HDá’äóVšVp¢vR‘˜Îc†‡¥ãdêôs<äc ç3 •l(C*L_,qu¨aj¦\\ô0öÏŠx$Œ\ÞÝo®Üíò¥z:“–Þô<®ÝBÝØÓTw'Ï/±Ù·çsÉ(˜×æPÏ{¯eÎ ¥£æÃÔ7 ÆDwüÓÒi ”NÑ—¡ì—ï9Ó¨Õ>Š•:Qj-9è a~-úäWüº[ºSÓ"<˜k} ~ߘÿq´Þ¥…êSҨ䖽4ÅÞö ÇŠõð¯ÙRWë!Å-¡‚ÅKÆFgT|þ:m½ÔÃ…{n8º'±ztFb`‰d{Œ[êrÅû3†£}€=™$H‚å½7å9î$z±×"çuº­à%앹Ãxµ$ÝǶ‰Ž0*B³"Ùë›n6N­Êø®é@ôÀ„&ÖhXÿ‰ÏÎíáÈX&Å¢rg ›üi1'/0Hïj˜–Å9†yÌ]IÔŸÝs]…p¦ÌÅPV1×%íä^QºB=Žsžï‘'ˆÀê뱩•ó½§ç4ýÃQ—ß‹N½+] ` J‹þî5;2å'uŽ©wc£,šˆ’Nù]ÄÕ¸öGófZÆÁ—¤s¦|æöñ¬¹§Õ«‰Ÿ¥ì‘ üK<£¤£8:•@‹­*ÎMõO$˜' ‚ºU ¤ñ[t,9£hô.½•YRLç]Z*dVfh¦­a9Ä%¶¡.2Ca(½vR‹M|¦1«×œ×6Aàá€Xçø Í…òrúôäç„à Ž×ºoj㈩© íxÄÖÎÙã¡nÖ†/”;5ìY&}üYO‚㌠am²PùÒ¤¡¡+ä0u¨<¼òö?Ù¬`Z-8hphsƒ!H³ïǃlõ‰œróê’dݺóÊÑ–„R¤å›˜Ò˜ ŸS²Ïr w›Wh·Í·zÑİÃ@¥uIf¡˜‰öxyåSèÂ+> í0²±óHÄ©Ô8jµ] Ún®mùrDò(âç7‡××qhíì‹“òÉß«jtËØËc¡v›’/C‚BÙ ä¬2CÒÄçÖÌ<ÌstS'šD"ðcI#ÐÑx8(ÄOÔb2ëßÈ94U´l`á{ñè«tE±=Xtå‹EËXÆa†=Æäy„Ùf¦G"=^5e+]z" w„›„P—?Œõ]Â(h2ºo d%Ôð0k«Q\…Ða0’Õ¾8þº¼v[2{PЫd÷¾ð˜þR?~ôÍ”"½–Â?øwõüG´ÍÑÄÏn© (T%+÷Ò]ý]?ÙÓkO‹Uu;|ß|9ˆQMàï&¥×zxmÔyŽ ¥‚E!æòàìIÔæÎx°^¹/ÀüÓKí›aO’¿”tâ¨û”—¶ø€ ‚cÞ—•ßëÌ…¨”Š„s©Fd²G¿\žð\’PíÞåâ.V%´ogs{תˆ?q$”UÃ…}×JM…ßÒ‰Æäà–Õ{íîÝ3ä¢äÿ$ëë+åô"%.ÖæõòªýûˆA`źy­Œ0¬V¨2‰Î ï§} ½âç!¹‚V&Hb™ªiqèá :·ÏtŠ ¾[ÜQ®ÜEËHaÐKùop˜ôÁƒ§{³ò ‹Dêñ»{hÝ8œ¥ìŒR7FA{^=²b.ššó Y ÷0¤5é,FÚï6?Œ÷ š‹%‡2Aô¯1’RlþêÕç_ }ª«$ºžo-VÑ:€í‘>r_áÈDË ÎÂíî›YI§«V @å<ÓUÙùwU¨á[ƒG ±îÑá:û'„Ó¡ØôÝÀJÖnŽtÂkù\!OpTgØÚdÞ*€«DÍ…xˆdF³ÏÒèšuÄïIú¸ZJÙzß`ã«äÚ k}\½‹Ö8QKLóp}˜Ñ’6 LÌL®L‚(6§Bž,Åé0l²Õä&¸lu©Lu¸)½ßú:/âàοnùL¢¤´¤9zFe§IÀßë7 ÃÝcsƘã%ï×›ÛD·¬È4DÝÝF(Ïÿ]0ãË©YlñsSØrÕ°½À—{üÀ­¾Ô7Žä™§“UÈÄ€¥€H…x?µÌíR?‚ò+““¡Ä e瀺¡IcûŒ±ºéµïu¶ûHÉíhËÚ°TË:D8vŒ£ë¢íDm ý{Dù€ýâdÅŽaMÝŽ¡zO‰Ãhj¡ãV ]é™Ù•«.ÕÔVb¢B…¿”±¾ªß+À=…Žýć‘‹ñæ` j·q„8Î`ïFG¦åh¾ Ye:©lªKçÓ\Ô¥wZ¯¶ ¯þ¿=3¨ƒŒ-ƒb×íDîпirJ 'P#øvQâ\…·áxBéŽP˜Q“jÊ‹,:…†afœ–·È@ôy‰a– ¨ÈOò¶»D¦rÊÑ_A÷ª íÁ¹U‡/Èéb”ŠÜ“ƒ]ì*eJ3füxˆÌJ†›¨2¾1is8D°¿êÕÉ.d˜"A«ú3^H?äêWÕDhòLÃzÁ\̤æVR]bÎ=òö\o‘×è_c³jR–ÙÒóýLVr&V,²ôÜ×z»»Uð”Ù¤?G#’+Z,m}ì‡ÏºÊnfl;¾¶©—%¯°Z½×ÍæD…ôO+vÜ­òµ%0àTü.àƒ„ÑôÔéeF?ïkc4Á ÂÓØ¦ü!ø/=ýuGuþ/3Ë”Ó`HpI.ê@ @†æù¥ñš»Àˆ-b»­Bˆs“.ÃÝZ=Eõ1OdŠ¯Ð­PV#ltâAHâÛ«KÎÃâ á©ÀvŠhBs ‹c}&©Î]f¸è§Í6êe-ÕÝï‹Æ þÌåÀ½±6>6Ô7Œq¸Cˆúœ¤æž± ¸ M›-Ú§˜‘LaíêB¥•ÎKeÈl…Š·1Qg\kQd»cÜ0+ŒÀZ ÛÝ,¦+4µ¬WŒÜ›š´:PÆïš‚‹°v2Šó¸ÙЧ)Mw‘Qlz6ÄàûiÆä‡–ægóÜM¦GJ±?žŠÙ fˆ0>‰¡êE‰Ì|È`<Žåú/H_9æ¹;ÛRä#øaêmËá’ò7/29ùF2÷ Ô`ö‰«$ œÁv"ãÔ†½jÙƒŽ¯u~·+ï)Ÿ£à'Kuˆ®|ÓÜÄYÌÝWžNZÇ|]}fßä1[‚¯íÁæ=%;Šü)/åΜ|ËOG iù^ñH‹l¹öy|Dpû±¾ª", Uã<ÇZU&éI$˜¹œ—ÝNX] ôÚ\ýsõl,Iùx]Þ"†"@º´w¹±å·9ÅøpPµ¸¸pŠz…Ú’5ºÞ³$ ”ß_óN{×ÌV%°ÇäÁC…šmšíÍ-B¹Lc1ùÎ戫l%˜ÃÅvÿù®PšéÚ`Ppõ£©.šÂ'~³oD\j  ßq4µŸŽ' ye|>Dâ.Š™|Dföw)b‡ ­Ì«Ãô£+ªž6,Ыµ™0Ò¬pwõkc)'пn cCaðéÔ¶JLJ(ºÕ"\<Ó{Ãþõù¸¼1¯i„,‚añ€§~‰Ô&ÿv·×G|”ÍBF H‰æ´DdœÌž>PA,X¤Ÿ¿èSæÈd ¢ Q¾¹‹¦Î>¹äËÓk6BŠÄËšWd”NöÕŸåˆø%ç±Qj³íTfµwÿ÷¼ì•™ómqc¬)ÍÆQ˜@{µ³}q9<¨tøº†ßz3të =f cõºŽnÀy‘ð•à¬ÍÖêÂ`>Ûg¬…£T€rÕX'Ða¯2öõǞ³ÜÉe]5(] _»9wÒ*6úLº¼ÏŽ;_‘/Ø ÐN‹cSy”‘]Ç|¨ˆ{´óåôÁõ³<¦ÑÇÓåyì οš*ÈôÙĆ@Ó}QAœß.óÖS‡e‚ürïa[ŽÈØ T·¶žæ¾2â«x­e3›.åx0«·æ¬BMÓqcM4GÈcz­½Ä¢¨[…}KǨ‹³–Œ¹&’ [L9–6 Úð®HY‘t]¶püÞrÔ—c•+®Omã­ÜÝn•}Ã=E¬E†0Ëšˆ9€t@¤ÎdÎÞ¯TìÎÚ›yñ½P±“ÙêÂÓ-bGÈU™{¼Ñ.T¨d÷°ž(“=J1¾€¤`é3§*ijen40-ßËžÞù>ìSXì ×™\œÁëô gUL½ iÌØÕ÷ÁAÞOß1îþ ÕH§&ÕÕɃ|}"ù°3bÝÓ†®†ïXlDÁ50ÊpqFÐòrî Í‘X5J_Áæ7… Kifqe…ª±O1ôZ™VR”<~Ô^ÕÒrzÞ+GîãC7}º½ß’!Ñ"†Ï6âB d0‚0Z«ê>C[}çqwøy÷ƒº;0!:-@«£Ã^|¿Ivgs¹û’D¥›_ŸkȬJBÍ]‚*-Uã\æNéÖW×?»äN«È ·Íc;¼aü—Ì— yCÐýÉö~á&Aîh+  OB½«Þ wfŒGѳêr P¥T‘%1G-®4¢åpÂ[f¢G£l`¦ ï12¤å…ùHQýH.{ endstream endobj 67 0 obj << /Type /FontDescriptor /FontName /VQXXIL+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/F/H/I/K/M/N/R/T/U/a/b/c/colon/comma/d/e/f/ff/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/o/one/p/parenleft/parenright/period/q/quotedblleft/quotedblright/r/s/slash/t/three/two/u/v/w/x/y/z/zero) /FontFile 66 0 R >> endobj 68 0 obj << /Length1 1762 /Length2 11521 /Length3 0 /Length 12637 /Filter /FlateDecode >> stream xÚ÷P\ÛÖ€‹âN€àÞ@îîÜÝ‚K54.ÁÝÝ!܃»»÷@p NpÂeË9{Ÿÿ½ª{««èõ sޱª¡¦PQg3›¥ÀöÎLl̬üqEu6V++3++; 5µÈÙø9 µâÛóÿËB4q~•I˜8¿*‚ír.¶67??++€••ï?†`?@ÂÄdPdÈíN(Ôâ`ÈÒÊù5Ï´ft6>>Æ?Ýbv@ÈÌÄ hâl´{Íhfb P›€Îÿ‚VÐÊÙÙŸ…ÅÍÍÙÄΉ ±¦c¸œ­j@' Ähø£e€’‰ðïÖ˜Q¨V §¿ê` g7ð*°™í^]\ìÍÀkv€º¬@Ùhÿ—±Â_Œ€¿ÀÆÌößp{ÿdÿ§³‰™ØÎÁÄÞdo °ÙÊR ÌÎîÎŒ{ó? MlÀ¯þ&®& [ÓWƒ?K7H‰©L^;ü»?'3ÈÁÙ‰Ù dûG,„y=fI{sq°ÐÞÙ åú$@ Ùë¹{°ü}¹6ö`7{¯ÿÈÞÜâ6Ì]X4íAŽ.@Y‰¿m^E(ÿÈ,Î.VVV>^Ðt7³bù#†‡ðO%Ûâ×>y9€¯m?,€¯_(^N&®@€3ÄøÉëߊÿ%66€9ÈÌ` ´Ù£üýU ´ø‹_ïrè±¾Ž€õÏŸ ^'ÌloëñùŸWÌ"%«*¡¢ÌðwËÿU~øvx1q³˜Ø¹Xllìž×‡OÿGÅôwÿò•µ·øþ*÷õœþS²ëß3@û÷‚Ðþ7–øurÚ]Ÿ•‹ÕìõÛÿçqÿÓåÿß”ÿåÿuÐÿoER.¶¶êiÿ2øÿÑ›Øl=þ¶x\ç×-P¿î‚ýÿ5ÕþµºŠ@s‹ÝÿÕÊ:›¼nƒ˜½åëD3ñ1srÿ%9IÜæ* g3«¿†æ/¹æëf ²ª€@¼`Ll¬¬ÿG÷ºcf6¯/§×ÉüS|]¡ÿM+io6ÿcר¹¸&ˆ‰ÊëU¿À‹íu)ÍîÎ2€…ÙìüêxmñÀ Aùã^¹¹,þýE<ñˆÀ"ñ_âá°ÈýC¯–Šÿ%^v‹Ú?Ä`Ñü/ñ½ZšüC¯1Mÿ!>‹Ù‰ëUg¶}=ŠÿH89ÿØÙýãÏöº ,Àákf‹ã•lÿ¥}õ·ú¾ú¾Vf󾮋ý¿ð5ø_øšÈá_øò/|ìô/|=Uçák"—ákŸ®ÿ ûk^÷?ñnÖÌy}Ëý¹¯×þþó• ºÍP–ÀfAÖµAíw_ňݘv'Ù9Ñ/#®‘´w$ ]÷UÄï¯8ò#—ĺçö"ï¼=f/yi²ÑÁcµ1ÜðNäÇ[®o‡·0Ýfôžz+ôpì¤à¾'ßÕõјÃÞÜï¬YmØíZt–ŸÑñbw>ëPZð}sÕm¥Õ"MãOf4˜ÉèHD^^4˜ ±¬Žª5b³s²ïœ.E'OI¥ïÓÆØ¹¶WÊ¡A›éÄGGèò×YGÂi½ÜDòÆS€Yê^I‚Ç8Ú€ëö ZS§qu*lÙ©K™ËÓlzÌ—éØÐ{FLÔz>Cû…6eyœnŽÅxE›È³[Ü!Î;5ãy8$åMÝÖ(ÑïüÖ‡aWÎM°Þ#¨g­ý"ø5«Ùh´gV+T&g&Å+K@©, ,D°èÁÅlKYº‚•#¥úÇ-öCส@GÍ;ÞsR#Ò—Ûpe,$_tP#Q)zz±Rcr:Ì;³(©Ák :™`Šž1ˆ†p~qÈ£±Î  iã³%&pZ¿´¾•2Ìýmÿ O[€QÓ4d!ÉìhË2(Öª5ýÚ ýåǪµÚK/ÆQÉö P›AŸ¿ÞM×ŧ÷†P­ÉÒ=Æåîtn¬x{ìJkÎò(–g±ˆñ¡7+Où¶¬“Wq_'"CM…À¿Õ–ã8RµÜÔ—St¦ÕËŸÇ¡ÐÜŸŸSÝÆ¶Ái&ç“/¿à3Dl挈N–bì.¶ V´Ò¦6#3eèË&ÜzESNÇ“0ÌÚ/Æió(|$I éO¿„wë(8ÂæG×V×Ñö5ä.Ùœ]3½*÷è¯DH£ùg=¿ŸT¾=›×yU{ àÍJE=éCD2³~–ݯâ16ï'>âê}§ëe¬¦ÎŒEÍd™M=ˆyV³:Úï,U|¤ 7 v?MŠq‹ ;ýùUü@ÇÔ¸¯tÚ&%vy³>†þüe-D¸õ;1ßcl‰--HI5Ò9EÂ6ä¥ý-‚\'ÑŽήڋA¶§ŽªhÃЋár†Q¢ØÊ^{©Qd¨Óf¸û§!A‡®·iŽ’Ü (ŠF˜!÷³z.o®4^¬FdùJ°°“C²vSâñTïUN æ™^ÄÍ¢È~T¿¤A¬›Ò³õ S‹žx ÜüK0ê=ÊN¡}5¬¸y‚»E]Õœ…DQQ6í,˜zôþl4¬’‚7<«AdøûÇôYC:d^#{É|>y(]*ûT¶à8¬DjõÔ¾1‡À@"a.ºÇDUæ°}k më7­$åQX:yoS×ö\T`ƒ9g!p%¨(Tw™ Ü#zž±š›_C֥̹/òu=~f±ïÛr? f~íò™÷¿ë>˜¥Ÿe ”¢–M¿ l‰áæÙßš›Ù òÖž³[üy‡m[ÿ £cëÅ4ÊFIC÷ø!õ©écý©óLÊ]ù'ÍøÊš•jKCŽFyºíôv§¢Ô–qCRo¡/³p–¨N‰õk(Š¿ÓуñA×Ã>j¨c]Ÿn ¡¹eLòBòÖZÓod. ߸ŸÚS0Ý[‰>¸EëW!+™ªÏo "Àõ±Â&jˆP”gB s‡È¹…ÒïØ£ú{j-µc5Ÿt‰È·~à@lêÆey¡ùJsyûnCýœÍî—Ëp$Ÿ(Ø£ÁlEö¶ôó”oÞ.‹v›5•¿"6ìêq2h…¯#´ã¸t† º £:WnÎñhö&YáHÚÜqÊLšßF2[‡}aV…ÝóTä!¢å P +!À–¯Aïn ¯X“öµ¦%˜Û’š†wjÕð–3¨o¯Óžåz›Øà>ÎÓðqÛ½¾ˆ¸…ú“ê–·¼[]|꣓I”á#ò#ê¹¢t”˜;-á Ѷ5M£n¡æ@­²Ñ[k‰±_æ%Q°+ÎÉþz†*®)óÅų[ œnŒñGò+:n¼Þe{£û™oZÏL4Ó¾µ‰ž|S6œÓúÓ„º_NÊQ)¦Ðå`…´ß<;;탑!„ë«ôq톔÷VøÂç ïÏa?ž|›6V›áOÞ=åt[βº¨b2ÎZdš>õÔ>1ªÒ3ÀQ±›"kZ|õ©Áƒ)&7©O²ž,Œöp« ¢meŸ±½Y©0­¡1»½OZ´êe«Ùùê*ך.žA ¼“Ÿ79?•ƒ¸¬Ûk—(%JGŸS&î.|jŦ7Ibt}wáUòö´ãEäïkÚÛs.µJº×·g3Øëx«ôÙ_ ¢÷†’ôÖ²"ØN8ùØóv;ò†ÍÑEÅë¶ú6qüËÍ ­Ò’{ñÌyE¸iV=ó`Óî/_¯â?MZ/òWÏœTft;n˜Žš=6¯á³çwy”‡k=Õ©,ûŽº^üøDXNØÅÛ¯Â/ìù¡"ävu˜P>æ¡Ú¾â\"žŠå¾Êá’P¶È½ÏuY‚ÌÀjT|“õó¤”ü¸³<]ÐècZ Ü;O>‰ŒX޼ÀÓõ–sA“ÇAsô ˆÜqñj×Eüi¸„jt—R":§³±t²<¬AÉF?˜ &µ|dÿ}œš@}q%ÉÇÈè C”¿kk§´LrŠðåãî‡÷ȨEýÂk½ÜHÀíÍ€ˆJ K(6·ˆ2É.-ÿB‚âØÖÛ}Š¡Òl>ÕoÎjZÃB²Î™ˆþkýV£ÓÎTàôt_$NKgµ1x¼›Š¯I€+Üþ‰o©xs°P‡¿m¤WÐÌañsr@Yc’>¨½þ°3ehL½Yé©ëÕ,·‰`¶'» L—ÈWâŸHˆšRéV†Ò’y\„…LAä9?ÒU6Þ×vTeŠ"O¼,éš;Ž"Ù‘ Jò,<ŠԨDž÷q2‘3æ"˜ …ªËÄZ´j’A¥ÊÎ ­;LŸg°[ê`›OÂ×nüB­s­üÞÈ@Û ”?=)Î̈qçÒ²îu˜œË¬,:±¯ÚHütæYK©ò~Z¹>ïyǦ%1׿®A÷ÆxÙêZW»‘GjYÄùüÁåÀÃIv—k<my$I{ZMÁ1óšŠÔ5ŸXdÙcð¯(>8œUÊ?èÊy'mÂRö‰¬âìs9áp‹-»¤ ™C%q©&W{{/ÏÄ»4î°'´Ÿ^fÌ—šøê¬ø#0úö\þ¹¼ûò±É5÷ P©‹• dŒÌZº)ÉÍÆMYKœë–~£* Ñ÷¢‰3Z•Q>H ŒÜ IM¼4ΔõµQåõ\ äýñAÞ˜w¿,/§9T.E&KhÖt4SœyJ|°D/†Mÿ‘Êk,­ì_!=S=h¤eš+¯.=7;ŒÆä9À¦äYm¦ÒdÁä 3®óò¡¡dâÃÅ©7iø´{C“&‘žùQß=Iö–åaÆü;ý¿Âvpaö~n‘—1Ó“ç] V%'SƧô!$æP£ËоxŽ[˜¤q¹ê›ËžÄp¿$*ë ?÷PÓ<8îÑ™†´oI*ô‡î‡O_§¼} œœ@“&oårî·N·šk|”2ÊÒü”ÍÂ=fºªì‹*:Td›ý-•*¾7ýöÅ ï†ÁË£ŒYÙÄ«ºËýlªpÑÞpj »cI‡5Lù–ûiàå8mŸf罨ÂFàùh-CŸ²‹{a~ˆ5ó>Þ§«*/°ÍJÎæÕOס ×LDAÂôrû€Jü¸çÌÑ,çúBöƒ™"¿¯ëHµù“… P7—2’\7;ØTºWÔƒzNÊË8Tqˆï&enûäD– ÿAhæ:jMè2ºzØ&ø`®.ö Q™^|ž(¡–ˆŸo¾ìÒ³ùr¼È65šVÌéí„{ß ‹¸ù-5Û„ï;FÊðqZà |™-S8xïSŠÝKêuG¸&ß1RŽËm³îôR½ÚñÃÃÓTñ|ÑwíÛX_Öµ=×›lYCè°gÌ ­Ô‰~_8pŸ‡±¨âc-ºÄ«†“ã…:W”Xó—!Ô£?4.ž_c”pÒ„²IŒ› ~œ½@qÚ•MåÑùÅSŸËè(靖w¸Û7*i‡^ÞY­gU{Á—òFè^HÊô©‘v|K锈õ]?Q6Ø·_€¿’Ì9µ… Çi*Þ{Z¸w°%½UÐ9¯p¢©®|•ï‹um’,Ï·;t¬]¯%7NEìñ—Pþ]ƪ-ÅòB¯ÑÑ‹)‚·G”MtԗϽJ„›<…qu횤ý/iç!è_%Óº=Ð^òÑØ¦Œ9©¹k¬–‚´9H)¶H}s¶²k&²áÎqäVé×§ñWRÞ*OïjÖ,iixî¦sÄŸ(_Ù¥Wãx^ñwh\é†DZæîØ«qðˆ¶ÅNÜïzP`a%|Y´°½ "-‚ÊÇ„8)ÑaT?vâÅNòœþØ šæ‰ÔÁ$3¾R'á2wÒwv ãYQÅ—>ÃüiôÜ`(.7ðs“@z.V·šÕ.Õòô¤U=ÍÁuœ$—é1»_¶Á¨;ÜË—É”õÝ_ývYL%_A-RU3ûÅ»Zsj-%ùçSbSD¬Ev“Âù4Yêwý?# |«È;¯?y^ ¦5õó±O ó?ätˆ÷ìjàhF aÝUp8ç4¡‹šMÛÛ´t…—áN ¨̈́ެžŒë7ÚÐÌ3B±’œŽÑ①˥'Ù8¯åFUÍMSœŸô\¼?Ÿ¼Ì e{ûCð}Ÿq}ÖT¸Rî\Ÿ«á×õ xÏwüaÏï÷i9ºú˜T°Qt¦VðZ±…—„ÖÛð‘O©Ç #)TgÁÌùq®m‰#8ØÓŸãOÖJ‰°«eå"Ÿ£f÷.ÇP-ùÈ®'¸ñíœêü±£½D¯ÄÜ/»ÅíÓÞeÚbÚR¾‹vW¬XZïòß|oµ¡ßŒ³,öwÀ…í: ÎÉ~“4VûÜÈ>/ =b1ö¼ÝEpùÙäB YŸ´áY)%HÍà? ±+¢®JR£Ðš÷’¬K/¼êæZ–1<‘YT.|Ew æ°ç$%Ç`ykm–<Ú†_]i¨$[]Æ]¹…¾^8ä™?]`–¤IÄ ` Ä­/½?I`ù ß:ã‘à”|3ý¸»R•˜¢øyöé #âðBÝ]+¤doyMcY~ º»öWhK‘¢ÀY ómÛ#fs$—õÝ‘P@ëÓ×÷© !(DÊÆ@Ï‚"”£‘@ááepjëGyÛ±^Ï©4Øò‹àu-î^~sË ˆQˆk–s0÷|8’ß:N4¾é‰»!ôu¼BoÑ"|½7 –-åñÜê “¬a1B^'¾» º›íÍRÔº7òK±bð°É-Q!ø1M‚á/…•JÎôö<ÒÐŒø.sÅ‹e¡§}.´ýÍEÑ4ƒŸl“ƒ°d¼Ãÿ¨Ue¥¼ÈŠV²òxxÊÆ!ø¬ºÚÅ ³Ó Ó®`Ëû¾?¬O髸¬þ;¼æF®÷(ÓÂætÛïõ˜bŸ~JÅ鈥nN©Ä|FþbܦÅÿ#`|(¥ÅI9÷6W¤vª•"áw%&ƒÔÝÜ›LCÀO"ZÙ—…²¯S ÙÊ­o•¿Îˆ€œÙÕhv;ÈL÷†w2‰áýù6Ó¢aŠàœ4’m<å‚ Ü¹ðgÌw™HÙ:=fÑÆF8e*ÒŽjérì9”½ž Q燚TbÕ4‹ +ºÙû¤úq½¼nó-L:˘¿†ñß4Ü‹ý^™¼±ûvåg7A¬ç¦´tÞ´ox}•š%ð31êí´ʳ‡”δ>ì²hø‹™ˆ·â^oøäm†¿cÏ’FÏÏŒÍÝmSê…öRb~õ¨´åÀ ‘|à€Ú"¬Ùj^¸tâ–EøV¦x2¯I•”‡hU šuäÓŠq6m‡à[‘¡X(R†n.rÌBR&7±Mã”MYzßk½¨u¥ôA7íÆOœIÉ3­ «ÞŠo"&ì Ûë•ÇèW¡¢|ìx›A·Q"1X‹d`-a@êÊU‰KiÞ·FÏ®Ë^pÔ¾vò¢ËXÈ"­æÙ!”®úK5Pjh íűïk4.»®ƒæ.mvôÔ3ÅF÷,N¬È0>TÔv³˯)\h„÷‹0æÒCr“s…{ž;ÙUÚgh¡1ó#0¤#ö¤Œ|±–eã>Ò™Ð#›Ã*€‰áÑ/õú…]Wо¨(Èy÷GÐѱSz(vhÑó\ŠÉÆH´ÌòˆHôÀWiê–³j˜J‚Â7:e)Dòn^vÏ3ˆ¬Õßaн¨\1†Š'é}¤âœÃØXd öƒYY"&£ïZlôi¯ýB¯„ù> ˜Ür”-¬‰èÍ–9.DÝÃ3´½ÂÃËŽÈN½©à5~à“û|žºß&šã,ϯZ&‹¤åeY;¥oÅIF0å'×)ŽÓ£: Æ гÙ!Ä£k“Ø‘à3¶ݺ#Éè-•Ïåe”½.Ùs;IHÎj’õŽû0¸-/úgxmÙXiÊ–~Ú 0·ÊJ]Â…•"Iž§«xJ (ɳf‹B æØÈ,\@¼ª'…$fýB®¹Ä‹¯š¯}/©݈d§h˜»ûö±Ùq \Ilk¶?‡¯ŠýL«Ü!u]M ¨ÀW¥JpD…íšF(Ý|gX«ä—¿ªš’<ŸNϹ/é«r‚H_0nĬ`’áÎÁ%³£q0Á@“¤/Ö[Š Fè‹Sít/”¸µ–Ôt(ëZÄy?ånÇçÊ~¯‘¢vX_e~B\§…ç­ÉãBM—ÇÑ{(R-*þþ•~3odÇO~ˆ(Ó.dAÙÕÿ"Á¾ ËJ²Q?ÓÓÛÖÆÅe/ Ax†Ÿ¥¹Y±¸œk‰âõ¿è»a,ÓÚFè Û¥‹&XŠ™Ø›†°?g¡y•ý°âG¢îJUó½&ëŸߦ@r2ðß±ð#Ä©+tïÀ-bGºDì*ᄅ“¸ÇSã 8J}^‚ù…öö~nŸøû1bBƒ!¢jä¾^º7îâX{Ô~X&Ò%=£x}’þW±7]8åÜ›‚Ò 24.L.C™ Kùäd^äÓzz·CDÍ1¡M¢)hð,§œª_㌳ôͶ‰Ö×à[àQ-­|"`‰ßyÚ1¾qW.=ؑ眱˜¢¨×ÖAD–ï1\üöÕýÈ[[ •(Ê61€ßsܬ÷ù#{B¡¨—¬™ƒÙ÷ú²YfJOp¼ [tÿÉø(²¬œ-­–^}@Æje˜ý&™·„ !¯}BŠl§tÁx¼˜³‚sàÑ—²[‘u6ÇÃ\}HÒ>Z˜šÉ…•ï“·tQC±ùK4ݽ“«kE~9ZGÕ€>BHþ÷µ<Ķò= éG–§dm +]¬“܆󢌈½7ù~e3ô< rpGHÀƒkÌu•?ªÍ0§§÷äWmÊ$¥Õ"žƒH‰†·¨¢õF°•iÙïäýv Ur%•gV ˆ9Áû‡Ù-NôŽ&BjªÇçj­Ÿ¡ñê3wp鯙w½Ÿ«ætsÄæ(°Äqç¦0íPŽ,—¯nÈòTQ(*ô1ž®IAMfs¨ŠÑ ƒø”[[ø$`›½‡P«SO!ŽlÍ<äŠ>ÁwH «Hô\wÊT¢âôã´x^.•b ‡2n6«´Àx)QZÞ•ï™D±Ácä6ƒ„1»²ð;_ž =»U=‘z<îÙ<â©&§ÁU²«¥Zf;O©˜Zvo?î`K¤ôφotÅøóºŽÛ-ß 2A¡ôÓlFä ù7±yóê|8uS“0hè#t¡^\:ØOö„“9ï4.5ÇZuù¨Óej",E‡WyÂBaó~˜n9–C·–¼v¿^_Œ? ¨ý"ñîWŒŠpJÁâµØ¥U¤ƒ¾÷tto6G#-?–…™$³‘cò}xÓKWËWàÓ±N;¨Ô—‚G>QÒƒµÑ×¢ÎTñ½bžš§ïn“õJ®<@ÒqÀØ‰ß ½““¾ñ(%–B»5€Ö‘9$ç9€2‹[¸DãmŠž¹ ®ûä§ØDò´æ·™ZÅ­ú÷†X°SÚʳÕáèŽál úÌ«ö±Jþþá ×®#R=ZWNªpÅáõ%—³ZÇçtz~f½ ÁÚa¾8˜®ã\Î}D}qÇz¥?W|h¶Àº'k6]Þ _µo÷¡ Õ%:B‚†€þ›¤p4¿è,e@˜e†Â—©•žéËŽ$[ÍWÛ4öÆ)µ–òz”TaÆòÇVz÷‰K*(AmHKªBˆéûÝTw¬šè$=•y‡˜ŒšF ª9yMv®œFR}HÍÃÏÍ-Y¨-MÎä…:]Aéù5-fË%“Ôä1D¢ëãr½"išÕ¿ñœTý">˼٠ShÌ{Çadž !["Ý•{¯çÄZ³ôûB8£@áMËnõÂÚF³*œ»bw¾e:+É­M»¶FnÝ­¦U“†jI Ò„ z^…[$€¦d ¾‰ävœ´'â” dÏ#†w•>Òõ—¡žgkœÉ,º™£GñŸS6϶HðiƒG¥K§Å¶©à䈹¼xé²o3ßȉÁõnKùÛ\²«5–‘¥šµHÊ…ü(pÑ¿Á£(q!±›¾è7JCÝ›ª ±z30v7_ÎÑÊ_ÿD´U,ž–ˆa¬÷s£y9 x¤x¨ºßóz c0áÓP˜t ltM“IEªŠÀ"ETæšK8Ê)Jœ­žñI'%l–] |Ý%.geáÅ{FEë3¤%sã[d‡©nÝéã‹uÝÑI•;ÒûmV» >ìB_2áUN ¾ˆ9éYnäÇò¼Ó“uýž˜€›2©.yíZ@¬ ŒÄÌâºþ޳֦$ ά6­^ï‡pOt°cHbº$îõqc]ÁÍn…Q;åÊH>Y®VB>è†Õô9©€àú¡M»B\˜±§g¨™äD2á~ý©áYXµ—“#¢;‚„NF ôK1_Í%ÚuwÙ[ÚVWZ/S, DÑææ>B=´üÓoÓ‡XµàÆ=Ýq¹ë›¶-](W¬hnMÕÖá€cŽ»±/ ñ_ÞÇžu[GΨ&RY¦.‰îsgŸr;×E~’Úü*jŸ©îÏxšËù ç]m8Ï«]zîÓñAÕýf=»mˆU"|{‚«ç\u—DxóQjæ1­Û,TAÙÉ%¹¿©%~{¢Ü³¡îÆ¿–ÖßÛuQ*¦cŸ‘oÚHì¶ å¤§Y#OÿWÓYŽì×6®A@ê×ÖÜÝj…¦ÐñÓTvÕ ,\o‡t}ËZ¶ÖNÉÐàÂü‡uµùËæ9Þýÿ`èKZ â,À¥Ê7æ€Z-‰DÈyC;Ø|‰t7Ó܇^·Îâ î5P£^>b*hÈÆÐŒª¨±+=c— zhæk`ƒ‘§½Â*Ê…èá­pÃoš¹ÂÝÔý9:kÔÛ¡MËøýl†¯¡ã)ŒÓŸ¢XX©GüN0G¿Ròº¿ólî’G ¾É â½™´` 0uxìèÁ^Å–-póøµ:QÈz»³Iy¶Ay0{^®5_g:ê¿«ãi뇺f^OiSð‘þi·?ÙÍ.ËÆÖ~ë7´Š^Uc™ëfËãï‚€3¾.¡uO‹lCÞ2WŒöÌÀ¢¯™„j¼õ,}¤k´÷dséË8-Yá« 5-úYE±Íòé§s&s÷!Ð 5ÀË…Oü Ÿ½‹å‡?vK!|nŒiFOŠ‘µdj5¦~Â8¯]AÖä\"êã;œÏx/ˆpP¥/4*òúL5b²P¬ÇÖayu1åÝCU´•-¹Ù5C‘‡?%‹z—¶‘¡8‚è'›Þ`r×⃘¦ÓJß u?7Ø¡O~‘‘͸‹XÏÀú¾Ñvrn#agï #¡¤CÁ²€¡kØŽ ij×”ièU?¸|[³R³Õ ½ÿò^¢,Û^J6 Ê8¸Ó!i—â,#ŸÆ Zlo†EÜ|\›ÐþÃp§ÃS…͈*ü ±µ #wÔd·ê¤–59úOæÜ0íOoø“½ÜUÕ£4_8Bމµ`„Q$†Lò0âµø%” G™ùÓí¯e;â/ùB;¿ È0e ö¦:*ÊñWÅ8 7R¬ÔÝ3¾kúC‹Yê~sÍéƒÀfXˆ¦CCŽ–›ÆŒn‡áYÆ¡+kþÀû]ò Ú´Aü=_OIÃ9ãWhÚûkÎé;ŠÂóIÒ|©4Ù|ÝÊÅ"ò£BƒŸë¸œ3H|{#f9P§äPX𧄬þ–oë»/šáw:‰´Ä] ž·Ä©p*tÔX“Û ¡h;a°bLÜ\àJ“AÁ¨lue)!}Âû8ËÞt8¤{dtãÞQ±ôP®v‘¿:*„À6̬ï’î ¢ýKÈúËX@~vU{rÄ–x*×Àîçîo?wËûY²*ùÇ1«K¡ÍD™ú¶';ÏÞG£Œê.òµz§$X»ªU8›[µGæÞÔæ¢Êà˜ú9’¯‘­Ñ§zxo›s§ÇQŠ»£.N·r¡(Í"ôv$wgúzjtÎõ^ ŠŸÓñla™Þ°\¦ÞdG%rÈ_(ˆb6[Õéé|‚š\uÄwêH`tcñ›Nñ×q«+l) ‰³ÉLÜâyHÞJ6ß쮿 æl«R ‡<7Q”Ü’î¶bJiV{q[­'äy³ áõ+ÝF¢sÄDNðÝ’M¤vVÂÎÔŠõ ½Éœt ÔAê–æ`ÀXø«ŽóH×8AÏtQ‰ì¥’^*+6½̧{QU’$Ëx¼ÊçlF©äŽž]N((üñù>Õ=N¤+®8‡C3œÇÄ÷ Žínus-Ne«•eý>{¼]x0Ó–îlŽ&5Q)|÷g& ÷/äZÃÂíOÙ;·Ïô¿||~œWm£¦7Ö?ÆîÓÂ-lJ¦â¢–n{Ó±¯ºU>óØœmN~Çpùts¡dñáa.†\»%¿a’Ü_]“e‘O÷Úó@=Y`²¥g±lÕOÉê ÿè~:ö]ïÔjaNî}ñÄRÙï€íʬà­bñ'è»Ï “lÌO5]æ¶žÜ,ÓNØÜúe5ù&ø(o¸düæ ŽKVÜwõ¶Ä2Çœ¹ÞÍ{zÏ>Z/±CwÇ <sØW¨˜´xáœe¢—ŒÚ…-æ°ß¶ú"ó[…W⸴GhÆV_e%] táÐÏ'Z–Hêða{Û-x‡[EŒ솉onç@„>Ÿ_sõû*\ÇŽ¿Íj‹l_M°€ç€‹¨g›¸ ½ ‚¥Q¦Á¬²‚yS0D™W4/¥Ëî>qpÝÎa{u_ÍŒ…•ÚûƒŒð %|gR¾ÓôDjyÝÇ“5tÈØŒöG-æ¨"~8¥^Ý&ioO-t!:2Ý]¶å„Á#?ÖŽgú éÝîhªï±1†ÐŒ >á¡vMÄIÉ×oGv}«úLœ©3—r›I<þ^ùsJC¶‘üÅøèÃo;›Þ)ÒÔ@ÑÏ~èŽæpØ“´^úÌ ™× ðæô:Å90PÝBÅ# (—%Ñ߯+z ¼ª/°GÑΚyþĨóÒKøæD’oé<ðÜô9ÇzGTùõ¬OÌ:ß ÈĹçÌr©kTÛF®1˜~¦£>‚9”´@m(þö©Nƒ1ý Ÿ_N¡·ÿ@@'9Vž4Ýôö‡xÀYT|I ñÕ üí;Ü]ÖœRŽIÓµ“‹êÚóKγz]yÏ8´Ì‡ÐjÝ#¢{U…[Qº>µ/Èåò†Æˆ‡Ë(Áשp.Qç½Êýˆ´:é•ÙGy6h<‡LÛi(®|§ ©¡€„ÙsËá—w8Ö\ÔÚ誕õOâ ·ïÛBûAYŸ($<µö$ô«MSæˆÑîi•W|.ÌH µØ9Þµs¾QI¤$ó÷6—¿˜ìD9ÿ¸' rŠ4òmÇئç/>”âÔ5¦¿â­6Al³³Á?ì½®ê¹;=ç׆Ëâ ËsÞ Uür‘ÞÇdA…‰rxÉÒÑ?ˆk¡¼»A²zæ€ÖÑõV•´rW:#Y’cµŽÿ×cê¯ '%{ÑpKÒâƒzÜ’™F¤„¶_òñ¤·. hð¸B>j¡„€uoÚöÆæCIR™«±®õ6 …Hq¦,KÀ|oÙàâaŒ¢»Y¥œƒk%ßP gÚ8‘hîi·JÞÓ%I…Ñžltñ=¬ÙfOa.³f¸õ>O Üx…dððføÈ=øçÙí‡`?ðš?c×}ˆYål˜%l#Íâׯþí Ô»³óüÒ_(ß{à!Ê„MÃ#_nMO’½-œÛ¶©uXXPÃ"Ö]P’]ððõTe:Àw…›$ƒ*|wv “]böíwÍÈ,awÛÎ=£ÎÜ[K#ðy9¢#žHKÍ!¥Øxò^L2äýîˆ÷á$@[ëÏ-Ïw™ÜŸ2Ø ïEªCï‡"$Ü¿ŒD”òm ËŠoNVñ{>¿K)ž½ÐŽé[÷ól<ª&]þµ\/«)JÈÜ1™“'™R%/õƒž¡¤Ôo°N§ÂM0:ã7“Šoé%ýÿyŒ4 endstream endobj 69 0 obj << /Type /FontDescriptor /FontName /FIQDPO+CMSL10 /Flags 4 /FontBBox [-62 -250 1123 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -9 /StemV 79 /XHeight 431 /CharSet (/B/C/D/J/M/R/U/a/b/c/colon/comma/e/f/fl/h/i/k/n/o/p/r/s/t/u/v/x) /FontFile 68 0 R >> endobj 70 0 obj << /Length1 1673 /Length2 11251 /Length3 0 /Length 12324 /Filter /FlateDecode >> stream xÚ´Pœ[-Œw÷Æ5¸»;ÁÝ¥Fº Ý8‚Ü=Á5Á5¸‡Áƒ&îþ¸23wæÿ«Þ+ªšom[{Ÿ³öa¤ÕÒ})c±*BÀ°—<œÜ¢9 =n77'77/:#£æü—ÑèAÀ¢ÿˆsZÞmòÖ°ç@  êáàáðŠò‰rsx¹¹EþqÈ[{‚ìœUEg”ƒ¸ù¸ƒaÏ<ÿú°Ø²xDD„8þLȸÝA¶Ö`€†5ÌèúÌhkíÐ…Ø‚€0Ÿÿ*Á"‰rqyyyqZ»B9!î’¬/Ì „Ý=v€?F¼²vþ=':#@ÏýË¡ ±‡yY»Ï- }NñÛÝÏì]u€¦üW°ú_€¿ÀÃÉóïrgÿQþ3ÙÚÖâêf öö  @SQæ ãXƒíþ´vBžó­=­A.Ö6϶n P”ÑX?Oø÷|P[w Ê ¹ü1#×ežYl'qu‚aPô?ú“¹mŸÏ݇ëïËuC¼À~ÿBö °ýcØy¸qéƒA¯=€*òÇ<›ÐÿcsÂÜÜܼÂàkÐÛÖ‘ë=7àŸNž?ÌÏ3¼ñsƒ¸ìŸÇ¾ÙŸÿ¡ûA­=˜»ðß?ÿÐyxv [Àè£ÿ§ú³hÿ~¾w7À”ûY~<î?þþýeþ¬0;ØÅç?á^1—ö+%cE-ö¿Gþ·SVâ ð{É'xÉ+À àááå=¼ùï:ZÖ ¿ûøG® Øù«ÝçsúWËžk€åïaüw­Wgå,ÿº··íóÏÿ³ÜÿLùÿSùUþ¯Bÿߎ=\\þô³üðÿñ[»‚\|þŽxV®ìy 4 Ï»þßPCà_««´y¸þ¯Wfý¼ 2`‡gE¿äáçäæÿË‚*‚¼vZ ˜­ã_ªùË®ÿǾ¹€À@-ôÇ óœÅÍý?¾ç%³u~~E ÏÒüÓ|Þ¡ÿæUÛBìþX6^A€µ»»µúó]?#€ÏóVÚ½ÿ3€‹ =§žg|°‡¸£ÿq±B.µ?L"!—õ0€Ëæ?HÀeûoôG¯\vÿ€<.à? /€ËþÀåøøL ú|æqù|&rý|–4øð™òøLäöøLäþøLýpÁþŸ§õø|æõúä}&òù|&òýþ×ùÛz¸»??F.Êóåü ÿùòÞ@[ôÅo[±P§ºÐöë ¯—?&xù±Oߣn+yîhˉߜñF/ÈtÏþŒ¾YÇßç-{jv6"æv¶XóÏŒ%^lhG¶·ÙâðŸÂ—¸Ý‡ª{ðþTëê2±âÛ9µè|ñ:—ža%áx}òc.gWIœ©¥êê“ã sÓoNL„‰ØhRaa>L„ЙœŽ*ÙZ™™ÙNè©ôÄA2•âîMæÀ(¯ÀæàReDâô&qj€áæÃv?ÖP×¥]ù”Á†yUSy¡q™ä1[iLÿD6¨£•¨…¶CVÑŽ5 ìÕzÚºVúbxy¶†¡ŠöüM³|@™ˆ&\‘®Ÿ]B®¶Œ×9×Ét (œã[úç¬B¸&AAÑ8)Ý \wzÞæ 8ø04¼8ö3óƒÎOâáu1kû ý=æ˜úØ$ÂcÛ±„€åÓkþ:ä 1ª3â®V1§…-ÕGöë…VH.môNE)«O§…8êôÞ‡§Y ‡W.¢'{¡Ê+·,E„·4ÓN œ 7‰rË$Ã’_¯íÜ·ñºó}{ùRÆåÉ-èhXîV+|’Ê¥*ª—o¡•páPùPRX?µ%ŠåõõìýkÛâ‚RƒâŒæý7߇úµ–GU˜uW>!ÞQS¶ÁƒiÝ ߀ںb\^+3%I¾CཽÀNëB­[’ÑœtIå­TÑ'ß¾À4m£Í‚vÓ@ 0Ñà>ßÉÃNïv­·Õ¨‚&ÓEß,âvˆpi,šÛ´½0Zt±?-|y«8á¿è3`È𜒆k¦âÔpñ> t‰v³~´•ïqY¤ÏØÈb¢šZã©úÖ·(§pÇ{änÕNé6/Cb¸Œ­P˜XG*vEÍj‚q>§¸+uЦ¶úDjçÜûáms5X7:øVT­AÈ&3¤#Í…1 >~ÐÙiR8×:o81tlè‡[ïð5WÄ%RYÈïò]®ÿõS}ŸNN¡ÆëìÏœŽâÝ*î*>&·3Ï0~mQ!µ ¯Žsv°Ül€g×å7î}}°hºu=–O0 ™1©ða‡:ú£®çxr²š8€Än´› ¤=±×­D<"õBžå3q[B²;pwÚ5*~Ñ7ÿ•À}$>y&ö×3ŽQ^.º8Â3ûÀÒ‚ù4Œ¬:Œ#6«Â‹Nåy!‚(I4®GDÙ¯QG´_ÊÑ`CÓÔšgŸäß~:m4û,¡ÃG2Ltk'Ik¼<·/Ò¦©]÷b"•Ë`ή~£ uµ—ýQvg¨úÆŒ)Dåä(x…RåÂ-W梔À‘­µÐÇaˆ\Ó÷ âôÒ§¨Oß¹Ì÷›ÓX˜s »£8C¹¥žC©úþB“ÇÒ¹­¯ˆÔ‘EÃŒÏ}-‹ØÇ|ÞÚ•ƒ½ó±— ×BŸHÌq/ÞŽï¹*eÒNç6íÌž–Ñ0o?gôSªÉÛœ:Ôzùó¬/y{ô¶`…q¤åeº[O*‘,$sœ“ËšG‰³Á«i dö]ùSåãî½\ìK+ r”*ûUVt½ä:¥ðÀ»`¶Š‡aDJ‘ÂcF ³*R‘߀Mt>¥dìÞÌð-ÿ'àèÙúv÷À5a‡p²£è¾-Gþ‡-e„°3%çõ¡ËAu/Ž¿‹?^"fy=WåõJ–s& ¯–¹8Úøj¦vöÝŬ_î~!h]´0u#&‡Ùÿå 4Ø'Œè›Å4Jç?%¥˜eÚ ƒ™{vêó¿ÎoíM:¯›$ÙPóÞ·º*;Eñ¼yýÐVi©ÅKì¿j-ü»x8 rt̹Nkã’rSb¹¿û›rSBâQ,ÚYf±gölbÄY,îYåðÚò¸ðµ¾€i«å öFÏ4ëî9ð…„ëÈÆíH°èÓC Ïl,®M3–|‰ÈÉ›QE«Äo]Ÿ¸¯lwš·Á:+!Ý*—‘n > ]©1_×Àäz]»×§OÀsл',í\UÁ¸¢LIì^€‰÷äd¿€¸½ÙÄp’á±KC[Tk²}¬Ûì°{«ä²ëÌSÚ©EbâiÝR=U:¼øªÂ«ïÕ×–¡oWìŒÄP[GÞzEý<š`ül­QfÛ—¸ÏUpHybcC¨ÆN”Íûú{¥½=žvp\(n2:ø¡:Î<„ë]8³WìêG 6C‚‚뺲âœÈ(HÓÉÝ» *ìÔ—C^2Ö& Á-QûBCØU§Ãcav$ÆÃSè^'mCV³}ŸÔëz¯¶(Ø|ŽZÉÜìê‚ y!CœîuÓ8ƒÃ7ãfÀ7zª+ågI5#mjÜP^SM}¸!›Çä= ÅõÜZǧlmËýþ¾†@Z.‚Ã"· Ö´ñ¤cÁ]=®Ã?ò›ëÂq­¿£›[+½:’·¿¦]_“ðN*מGGܽ?IféB3}×P¦„ õ¤v ÌIv®ÔÂp Üâ:&­—xñ çì2ÁÒ\Ž:¯©'Õw&SÁ |ZÏiüpÙd­ñ<þ —ê)@`³s­¹:7ªýz¬ê`1ó«’³íÄ寡_Q.š©Îç„ux\Œ_$ƒæ„žr2Ž¿qXò}D$…÷e„…!{8<£×EØ5_¢¢òuG4¿`ÊxJIE§§ä­µÍ!lµ&8C%\SºN<¹ç œ»BE\uN²•ð:¾°Þ¾Q¶š³b I»äïÇ»ÅAŸŒ^ÇW^T²Èáb†¡>>LÜïLxP °Ù ¢ŠÜ¿ÚFŒm`š­~³ÔLŸË†º‚þMè6\b'‚Ëÿ¶Q®Øˆ7'hvÔ¸›ÖK&ý7…ó—af= qiÝéàÐØªg-a{²ÊVI©Ê_gŸÂÆ?ôàxƒÔ¸7vºÔºÌ°$רbÒg‡ßÍ/Ôªë¾ÂèU”øÎ5HK?/ ô^Ožu¨M}aùªê›6B ÁÅŠ(y~Yn)rNò²™¾Ì}W²¸´%ÉHÃjÕ1ú†A¨˜FÞ÷ _Ø#‚†ëQZ#hð±C5r~¡Ö|ß äÚó«O}´4ÿröD£y:ÏY2IYå±JiY]ky·g| ÇUD¸¢|̨<‰j•lh‰I¶ÿM ]Daê+>¯^?ÊXË—Ÿr Çqš­¦áõsU3×X§_án$"Ä¥×ëyÕù-º;çJÁ±Âë„|aÝÇ•›—%â>ÍÞûv?îõš#òY¼ î€WN-»vq×Ì«¶/æý#æpŒÞÏ·gŽï5{æƒÓ:%¤·Öi³„Ðu‹á,ÖoQÛï€ÚÚêBûG‹m§²·e¸|ó©bœÄ¤o×Ê}¿ïew·ðÃbømñz¤Œ‚7j]Xö ë1±:EXQøè¡8i÷„¼ÐëH‚û ŸOÝÏ?[±ïBL ½¤/à”Þðù2ôM.%F×f)èÝ~åûDši1þE Ù8ÒArÅ7XfÿZ6ÌW·´·’æs‚¬¯‰fÒŸ§$•ëŠ8ýQ}èðigþä…‹–kõ[¼¦GËnÒ`ŸÀ^JþoÄãÐRøÑïWÙ¹$»!jFÖ¼ô·è¨qˆ0/–¦û@¦PÄA]ÃÖXñ¯ùMlɶÁ¥p‚kÅïà3s{eË ±WØ>ÊúIÈ\«ôt¬ÔsO°–Gœå£AåÝ´“Ù ¯(ï÷)dT~{˜>r竘r6þÑS¤Ÿ0p›Û2Åj·R…œ{’SжsŸÔöuyN;2¶U­E}W »¡…£)“vò5ȨFÊ·ø9fv˹IN¬|Þ+Œàf\'Q šfémµ«¡ÙªŠ€ˆH3@@rÊAÚxY`;•|ºWäa³e¾9™{¸¡ÉYXû>ªz3첆ûušÌpoò ‚ü~Të.ÿ+Ù ÔÓî-Δ¯¹ÛÇÖ/¥)tÅqiœR½cIÓÕ³\+.+¦.«L9;„äøQ:ñ†^²´…çIWw`óAav/cseO‚•º1}º¡ šóõ˜Wd¤=+Èø­Çü§Ùá“«l«/ú/$üLrë ÆCØÕÇW%j®ï™Úê=‡Cð<ÞT¾†Öw—qhoÖ(VKét*¹Zç w]¯€Öɼ—òÁô¹ß· ñž²×'QOˆ7ÄÓ¾*’Æ ×_y)X\Þ]lýÌ®B\?˜ ;¦5´'ó¬Î.ÞåøH(+«AÙ Ò%è²<í{t‘ÎÀ€e’t m°jˆ2>±å?Ít¿ WÏ€‘"û”¿Š½M¨_¾ã¦B~d°¹@ˆ)˜#Û_ØœºZ.ƒ¤]vÞ`˜ŽíUp±ÉlóÐpºCJõw6«©ûå”Üb­ðwrr¡mïOÏXÕçä—p{W¾‘ëêNÀAÈaš6QhfY(z\‹wçwAÐ/ÓÝ4Ñ—M°J)¹’z-{E’ÒˬQ´Nëƒ49Ú…5xy›ž Tʱì åÞä‹NŒ-ÓÆ½Gj†I<§Ù±ßÓvò¹ŒaÒyœ"§7^â}Ú8Œ—¶ºˆþ™Áox1áª=ô-ãÇlËúû>‘Ñ3²¢(÷œ‰}Ý;’sUÎ$kjä“oûX@Ñëšü„=Ér‡<+ï׿TKö–Ôbnû} ž$¶òÌžb§mÿÒ+y"¹ãïß@4»Ðäéã­Ð¦TÒºH„Éj|aÁ”5 GŠ4W…+%7£÷³y—[y–bmäÛT$\0K¦.Œöº*³­àô¼\Éœ§NÒìäGû / sI«§{ʬ±aEèŽÒU“üÒl®ß¶ïTq»¸[ü…èq É4ÄÖ‚Ü-¦ƒf%úr³‘Èé慕ͦÕÒ Ó»>ßÝ:$Hw’ç yØ6aöØÃf¬~VmzöDð«—oY\Þ£„½ŸŒ‚…ÈJÕï Év}Ï/F¹wn»½M 'ÔÈ,¥^‡¤ ™›0Þ1ó–TóiË/Ä8…d/ªÆ¥Ì&~äóǵ|ôÞ2 X»N^É<ª¼ôP”V÷'¢¨nÏœÈ,²Yîͽ+ÃNÏ;jÜUy»ŸdþÈ“‡˜·×ífØŠ{/1qÔöâûÎuF‚þÊïk!Üý€|«×¦à…ÆÏ ¯b™/=ä}ÆÓÉX=‰e²òXw)²tà×ñæä/h?€üpN‹V³æ¥MèŠ"³tv½ÓÖ ¸}‡qSb7ókÄ€‡w·}* U-žüøãýRÊL#M6 Ë °–0L<¿‹R¯.^ ±§ÆdRB1•]%¾H„Ñ6ûH ‰|Þ‰¸ÁkìQSuðvä"ïë1=+TY’‡c©Ç%ϾR¥ðûw+ä¯sƒ^žs¨÷é®+ü )¯$½6*²#À. 'ªm¦–µù4bxk.Ò¿ßg&’sZÃtfÑpò ‹B[–i ¿ÙÀ;¸‹½è¦ùqãd ô°å •ò˜ÌÕ›x4–2H?‚ ¼ÆJ.œ&½«óðçÓidëçs ¢Ì”Œ‚Ÿ¡ÑoÁøZ®UÂÏÀ Š®Úé]­çcÆÉÚO*K°u§ß'æX¥šÊ)Zó_Ãmê>¨-†µù0ΗËÀ«áêL~W@‚W½Ák»›—$¦ÝÖ &n²ÒŽÑ´–OÖwÝ%@óu0ÇA&kl¾(XçPIé’’á™%!P ìÛEaq N6FÑiÆ&Xu†T/}±e—5j…Ý iõÀ9ýâíò•Jì¾Rýš$$”ôEáQöDm~Ú49¦’9ô…Z€XG_aY¢PßÊç«Ðù.œH‰9ü¬Uš¾£ ž—ÆÚžâòç‘âñú…q)ç|®Ò%ØRÎ|çÜ”³tƒÈ0ô¨º%Ó‚a–0a ¯ÂrÏ|Õ;‘úVo%d)¸º·Ó-7ɱ½qðÛi¤ìD½Á‹Ý!ŒmNŽóB‚‡,°ýY¦-?–• íp¹§†f­ÁaŒ8A4´¢IÊ$<…èy˜¹•Íì¬bÅCƒXTc§—(勞žâteú¶®ƒ´dRþæ  ¼¡±ÝmËë« Ë ÏË»„p ^{æ£ójMSÒœ#š´6ÔoM\S‚±0ý>n£¥ìãñQºñ 4b ‚ZãÜ9ùý´RuŸ–Ë¢œm>¡’'º^á}˜X¼WŸ·g¥ôå79mRxƒý–ìÐæb”ÙíSáÆ xI·ûèFˆr»+wà!‹øÒoÑ}Ÿ +Ì8x mŒÓæUI2«êy ¹¶2U=Ðà½n7¡­!?~ôð\¡*·–fžæ¦íî<:ƒƒ nâ ý˜‡ 8Æ«£‰ j•ó0`À ­zœ¡½ÿuÓbFøDJÛzfÊrÞË#x±„¨kXµ´8?ñY$;Ÿ 9ý¨„33na¦#G¯ò·Ðw^ß'õ5Fã‰LU'!ÉL&ênuT“ʳ~@\DµwN¹ t½X"²¿ƒO-åƒõg¤ÊyܲU’Dõôú˜‹^Ò}Ànœ¼'%1„ê£Ø? „lY¿â9 ‚ !ØsÞŒùü¬ë9ìÒÿJÐ]‹Ÿ¿¶Ý“¡Y“^–ŠX{•2åp™ú©=ÄÁñeÄ€›ý}OéæS̹–™Ba,ê2gA.\«H³eÒ…rjH?gЇEM˜Ší ÞiðÓÒŽ·çEDÉ·n {µkþ¤i«lÖ_Ù êd—hïÚ—_lÎAf±bŽòôì=©Y±Þ“ÀòR-}IÜzO ÖëÀI¬´êŽOG#2+öÚH ®wóЖ׉8ÄÁ&Jæ‰â!BñŸµLoᔨé+틼ÔÃ*Šè×4J«¥P<§„ySS2G1FÅ·¤XO£ABEò×fÎo?ŸØ:s¡lôwX1{ÚÆÆñ’%mí|á)ØÑªùÚ4ÓÖŒWPuBOñîÈãø“ÛLËUî¦ù⓪XVƒ–JöùÍ«³jôxRùµ©½@*‹Þ<Ûɦ|ŠÆQ}üÒlr>¬Âµ—31‡u"É•7éà*›ÔÚ_aŠVæómM¬))ΚÆxyêÔ¸Bñ·2›Ô­’üŽ’ËÄy®@bÙóŠwÀèМî>ØÜ ð1É/»¸{bàŠˆºoýôe]õeƒé—¼FhIeó¥m`;—ˆ©ú€ÌQêÄ8ZFƒªžo ßðsU«ô˜VÞÏ€éh”¹M9ioHý±fèÚ׬áTÓ}ï3¢S;§¨{|Pü EkÁ±òmšY²qóS…äÅ££qL¶n¾­0™/FQ+îB·iyC†,éý¬ßiLÑ^¶W¥³ÝNäâK{çPÜEY£›¨ëyµ™ªËº”ŒàL*Ö **”²£ËßþA1Bú´2$Cö¯^žu5#DgN½\ˆ™ùXiãÕÌéÕù:;ûW–/üém\Ÿœ—føñï»È±¡}S£ÈS¾—h$9k¢'tjïÛ601ŽK¤O™º9¥®8(AÅŸ·G:ð®¾~mI–6œ2Y»õ“ì½:eñz÷{¹ÄpŠbïÞ‚‹»¾P£æ'2YŒrÈô7 (¯ rv`AU­¹-»Ýt¾ók±îx3û‘âË•rliÖ±•è6ëë¿ÇkUx›×Èm¬•;+]9{dk†™‡8,-Ï3DËOÔìpÚH½'•ˆ~;¹±¸ŠÅiº—WkMþéwˆÅëZ מ5O©ïi„uxó U²ƒqúŒ\i}z&™”,L Éúß±:ßNû:ÔÙ²ª¹~•ú¸ÓbE›%ײ¾ÓöðËIx ñ±wÿúÖ¥n–?¤Ôm+iµÂ ‚â·Ý@*K22YZòh{òø^ƒ®å“{Tâ“y›%»‡ÕÅ›†¶Ñ²É»é+®®9‘£µ¤ôOÈÏG |Ü2éç-›F+¹¦Š(°‘J"^:Xü´ü¹Â‹2Êl#…6¢ÑHŸfÜ“A–/«ÜÔÀw@Ù‡E*Kü%cÒòM9Ðr¢ßÉìçAVB¡Ô ã‹åŠ )OYÂO¦æö¿-M¸™0XE´ƒý}@ôÚ|T “*ÄÝ^x¿ê¾ž“¼ófŠ&οd¨AWL^9•ί™…SÞÔ{ð‹C¡ÇÔ|¿³Ênú¨·(…,XLCßL„=•Uim;£gI€× Oû»d `Ü”÷ÔsMÜè"Ç~«Þ1áÇÒpF7Žã(y§Eµ6ÿ»h±šMh`Ç™3á`6®sj©Ú~ÜhGê¡IÈù£ØâÛC ¾Gƒ¤&µ0J[5)[ÁL™˜ç¼Ä§ÅdïòÆuÛñ\6¥ß¦\ŸìÅYVOüH…†–šE2¼JB •€W7ÛQ¾I*ƒþF H!çõÒ/ï&…b ɘ†Åþ¨ü°XÃû¨½±Du¹Öó ~üM#u_)syÌÞ]~|M½Äé:§WxâàNzÿLV§â]©¼ÓçÓ²5#¬•mJ8âÕŸ#,m9$hè—pÂÏËÀÈEúFžÒžÇÕµ%îK'ûÃŽF_=<ØJ¡kdªð)¿æ?îM7U-î¢âYø @@Åm°³ÚÅ»ìRz_fc†7Å*Óåõ%ë^Š9ðxêà!Ê‹Â9´Sãƒá`p v”<¥Ù¶j‡DŽ^ÝZëT»‰Qæ²xÂ+]¸´J_E׈Öìžú\}¹†Í¾Vd> Jp?®/¹iª_7·Ø÷(ªÉÂÕ–'áÏBX_‚Úͤ_Н¬eXŠ&Ál]C±DäW]¥éãìœ6/)·uúZ›æ&)0#›j}Ï/—ûJiغŽÙ /ãGy ÎÆæÜ´ƒy;˜ï¦ÄR –b![r ñòg¬Xƒ?7…´ôã?w«xfÕÒ`e¤íœ¥¸ ÝÁ ²·F±>Ýçñ~@Ì’+¤ 0àíg¤jcè\(œ¦i«‡„ydñ°„҆܄0†S>\NIxFLdh=C~9g|{mO-Æþ6Ãh+,«³@›º¶cƒøVµ–eç=é[¾&̹š·drµÊ½ª®ùY?!ût!yÎߘBEBâÃ|{áÔôtÙA§„ð®c@Ú°T×ÉNv4{¤v•`s2í‹Æ`œfL˜ÑÍzµ÷˜Ù™?C à£KÛÞSŒa!a,å FPÑÖ§Yg,á.¤ðã)µÚØf¥Î‚êÓ»?ÖÌh㪺¬ Éá jÕ ¾t-Üip8VO_éÅØùÐ~¬i½­è-ï/³D]ÆÝæLñ=”ݧ#PØ´˜#¼yµ·ÃßD½áR¶ÎÚÑK“?RÉ<&`CzÃaèè})…½gJµúø |¿-X&Þ°Ö!™¨[ßcS¡o—€6'Õt2½îó]ÿ¼>£ª®‚ù­øh°£¯Ä7kR~‘ß!U’ÌŠA¦))øQΆ%n*v“^l—MïEÒJXRÙ>V”Éæîê{k’¡Q_Nð´šwÖZ–‚xƒs?·6ªö?µ<Ð;t¬P<±n¾ËÍAN•‰ÞPÀq¶Ég‘^¶8nêg2m¬ø;LuÉ×.O n/§ì;\Ë16Y³]âtÍêä¥ÜñcF1pýÕ¥3»úÓŒJhÜ>‰~xÕ‚ß³"¸*-5’>Ž?(>Àj.Š\ÊMƒà¤y°k/›Ü2ù?5úÌðlš…n|4‡ “D™jw^Î,Ú¿"w™¾ýé—|- ô!ä°“ü¡ü¥jÚ·]R”B ¹Ìþ;rp@|ú‡×¸µÕËÜš¸F½¶ãá]ý®ð%Yì¿>£Åÿú*¸!=Pw¶ý š¿Ì§=eË— Ù¼`~+9ãøš]¯`Ï#¾€»•©còË^fN••ñµ«À÷€›O\zsI~=º~´TÝSˆ’.xƒ)óxÄ çX63E€â,í¥ïãÏ2mYFÊ.…÷­o½­g»–ù;jñ,'‹[¶8ß^¡aÉN‘ZV#®Qb“vkG.øëÿêØÔ zª î?‚í¥u4­G$ÀálÂËXï÷= °[_¯ax_"'ï ‚/Ü«u·´„f,ĩѿ™à_zÈ7a-}©ðÃ[¬Èc{Áè¤ï=¼FøCû¨$)Mté.‰Û?!uí|÷qb .S,º€A¹"Æ}lW;|ñvñ1‚K§Z æä¾žopH™‚ÿíµ#ó~‰çŽnq8¯=06ï Ô1ú‹}÷V‡£Èÿãþá“>”œˆ¤²–Ç0C™ù1㮬Œì“ÄX›>~ð@QsòWÕÓ½³·òÞ9˸ŹjµãçÍÆ“{ÒF5MHæßY)©Wíb™¢&äÙv·»Wþ4|µïÓæàS"K÷E‘¬B{G@L,?[•«Ïà¢ìÇÃŇô­i%GHQusgJ&V€¬¹ÎÁÂtO ¢îÐïþ¼Îñ~ŠŽ‡]˜&¶ã×Éó_^õ¹Âs›Y²?J¼ÂßJU`¾Ã07nj¥TÃ3V¿‚„v/ŒÄqÉ[v7µWH6q `Ò•Rêà}ŒOûF5RBaÔÕ²íû!± ^ŽD¡¦¿Ûaú,pM¹Í69žÒ¿øñêh¢c ÙH0y“j¤ß¼µ1è‘y m”v7§ESIÞ{ºÚlû·¦XÚ¯¹yƒb Ó 4‡=©Á=«Î–»šÙœ$-·fñÊÓ%²ò¼ŸrŽÀת•âoeLÈËÝ6îû! ÑÄo×ÍßVèh»µÝ †³3R½…Ô·\L®ñŽœÀ,äMÏ'8‹Ø8-Ãêª °ð µÀFõ2,½Ý^œ• Z·ô|ë–HÄ«„ŠEw^£² ôäQÞQq‰nҹĒlÁ‘YB”Á¸´®N&gºãO<Û={nªD•ïo@IþŽˆx¡k[iß-ÞS9(†ÉQ#ÇMvHè³1S t:êŸÍÊaKÈzÇe½PRL^§ Ó=w4-ÒQFÀô¿a¬lŽ·̯!´©ëÝg7‘²+‹Ñ~^_V1‹ÚÏ­¤3.|Uw˵p…J÷U0ÊT‚ç†ðº-;"IòÜ—„ñYÆd¨¢Crî‡1jÉk«ÓŒB”â2’WX£ÅVÝ?pË͉¥ùÜ 6' ´• ácJ¸~u)§§$©ë–»PÈï¥è…ø¾|ïWY‘ _íð†Uj¹ì€º8F\!“ͳį˜–®*Ñcbñ§Yȱ÷ë^ÈÞ3CÉý#„4>¯ß5gÖ¬ ¨%ßíYËŸÍ …¤ Øž\ 'njíÛñ³%hyðh2WµDÏÜT„‘r«™Øy4nºùqÝ,訑/ßòœ[—ƒlâΦg’J[]nÍ‚®G\Z=§à’ªó8Ž3ñv‹1E˜•N˜TÒ üȘViÛé}v¢ͤdÆÖœ †Îâ¸åd¯ =ÒŠŽ—Ñh‘v{`-\Z>*3Æ#ÛM2`ªòhR8eIAAâðe9AMS¯£³ÿ‡Z¢,štÉÚ”ý›þðmk\­ lþWa¤±ŠH qÁðVù,ÂoÊÜCJj- s£nX–E“˜Ø7gohhÚ’±ûhNЬ ’E£tg.ã gÞ¡žÈÏUÛÅYÜ­ŽÔ[ú¿Vq™½÷"»ì"=è-„áVs‰@Râ>xY°ž£Ž1X•Xеflc®ý츜OWû2{Áá4m×Å™5©ñ{Ð~•}õÍz“‰‡E«›Ûß ÓÒÃÿèšýÊ endstream endobj 71 0 obj << /Type /FontDescriptor /FontName /QNGYFP+CMTI10 /Flags 4 /FontBBox [-35 -250 1124 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/K/a/b/c/d/e/f/h/i/l/m/n/o/p/r/s/t/u/w/y/z) /FontFile 70 0 R >> endobj 72 0 obj << /Length1 2008 /Length2 13285 /Length3 0 /Length 14521 /Filter /FlateDecode >> stream xÚõP\ÛÖ ãîN°†àîîî hp‡ÆÝƒ»Kð@p îîÁÝ‚»;<ŽÜ{Îýþ¿ê½êªÝ{Ls͹6©²*ƒˆ È( ²ub`adæˆ)¨©±0˜™Ù™™Y((Ô,œ¬ÿ‘#P¨-@¶¼ÿ²s:½ËÄ Þ @¶Ygk €…“—…‹—™ÀÊÌÌóC/@ÜÐÅ ÀÙ(Ä@vîfæNïyþó  6¦°ððpÑÿé±:XÚ Ì6ï ­ª c  “ûÿ„ æ7wr²ãebruue4´qd9˜ ÒÐ\-œÌ*@G ƒ Ððe€¢¡ ðojŒ5s Ç¿ª S'WC à]`ma ´u|wq¶5:Þ³TeäJv@Û¿Œåÿ2 üÝ #ËÃýíýG Û? A6v†¶î¶fS k @IRžÑÉ͉`hkò‡¡¡µ#èÝßÐÅÐÂÚÐèÝàÏÒ ’"Ÿ†ï ÿæçhì`açäÈèhaýG¦?¼·YÂÖD dc´urDø£>q  ñ{ßÝ™þ>\+[«­ç©…­‰é4Lœí˜>ÛZØ;eÄÿ¶y!ü#3:8˜™™¹ÙX@{ÐÍØœéjîvÀ?•,ˆß9x{Úì¦ï4€Þ¦À÷?OGC ÀÉÁèíùoÅÿ"€‰…±Àhfa‹ðOôw1Ðô/ü~þnæ÷ñc0ÿñûï›îû„™€l­Ýÿ1ÿóˆ™4äU%Äèþ¦ü_¥¨(È àÉÀ``ecp°q8y8ÞÿEÙÐâï*þå)ck ðüUì{—þS°Ëß@ý÷zÐþ7–"è}nêÆü 3³ñûƒåÿó°ÿéòÿoÆÿˆòÿ:æÿ·"Igkë?õÔüÿè m,¬Ýÿ¶xŸ[g§÷P½o‚íÿ5Õþµ¸ @ g›ÿ«•q2|ß[3ëÿ6ÒÂQÒ h¢ládlþçlü%þüÇžY[Ø•AŽÜ,fæÿ£{_.c«÷ÛÃñ}$ÿTßwç3J؃LþX2VN€¡ƒƒ¡;óû$±rpyLN® 9¼·Ëù_ð½].ÿ‚ï-pý²¾{»ý ¾÷ÃãŠï®@‡¿bÿÏX;;¼7ÄéÏ›ç}æÿƒÿün@c„Å91_ eu`ëýOW†qiŠTÏE‡6çGØ$šÊŒ€u‡[‘¤¡n´•m êá%’Ï£¦ZØæ„O-O^Ïúq*S;- “8ýùG"5}Dð„ j»^/ö^êþVMà²9öÎÜ(Êß1ï]{¥ÜjúJ–Gƒçv>íVrÊ!>—übˆúùÅ¿p†"×(s ƉŽãÜ uææv#{âD6ŽÁû8Ší‡§ökôìÇj™«c'>9¾6ä Æè¥§è~²,î¼gQAäºÀ|3 #Øúh‰×Hé ¯Ž¼ .³µÃ"Ô(¹wK “¿f|ÆŽªmµÝÊ<©««¤Ôw¥Æ‚^½ÝÁø»P:—XEwÏÝÍE¨­£¹£“ê aÓ-x„-ì•ÑUñ—{o,Âë]îN¯|Ëôbò*Ïˉc»i·]7Õ¶þR‰SgØü¤4T4Ìüoõ\Cq7U˜ì_à+yZŒÀà¿tÑè á/I~^f´¿Ø}e?ÉÕNå–{òpu%¬s·Nœ(á0Âh ±4Ž;ÑÆ.ƒ@I §OàÊΟ*‘«â½ÿ(,»lR!<Õ"y >¦²w×¥_’ûd‚þÑŒ®úñH a_ð(jF;3Äз±!Eƒ0\ñ+\šC‹ii›_»º???7¤/‡@bì‡ÎÈ8eN” b7ûþìÝ-räo˜dTwß&¼¢¢ív¯Ô%4¬½óqÃ@ÕœB"Dûu—ÙÓÁŒ $#,èć¶·-c³¹u¸ˆew?R‡ÀrZí Bõ“;¦N>óù0騰Md @GʪñÆGó¸ÌÀÃ(ÒûµTHý´ÄÒá’­®ù¼ bKªuõÕŠCà°Ÿ2]+÷Ø‚xÑõ*xÄ ·/3ØE¬2Bè±- Uµu` ùuKV‰´³ôÕ£?w 'O‚‘†;O$ÃÉ€.et¸x˜WQŽì÷ÕË`—ÔëշܶbÌdï3b,, £“ ¡¹}Üük(1-3dŽý©_s•_¥à^ "öÀgø>¶~’Á˜ .Ô^?%§z6¯¨sfÈ«&»þ…×§nØõ$TB{qù¾¶ÖhÏ•ƒj¬„A×D¯ù@d)Ù7¦†Œ}iªvmòÀ°E°´…ñ|î¨üè˜~m´ÑÐhð|8~®uÏJy»5ôž;u LŒÍ}«á¶¯Çij üg1[ovÁí7‡ÁŸž-¸]Ÿµßx$J²çf¤*6ãØy–7 @øöícLù›>(n[É1ªA^¦<$óeBšŒÎƒ¢n¦RFÏŒ®|OAi úNxÜ¢òVVruž°<¦pffÏôàÖ^¥”­~¿ðP iófÈoÈ:\>®Ô s}>6>ð멇-£j€À ±mTDLg‰ü¶W ±Ö_ú [´ø¦¾‚Tœªè CÇó¶„ÊÎ…á.…J=Õýº¾Ž\äÜÝNVî1¼…RêÖOô*3Ö~%ôÍßý*Ü í'B²Úþ°!l˜tKÞ!0ŠÝ$ÇN‚Õê :;͘à ;P+0­µ†Â\Œâùü"y([)D†¡c§Û¸=l7n¹Ð•3Þ_tü‚Ûob6Á#wo­]>X¨Æï"÷™—X.‚¯âæ1WãbT31ðŠ|!„×hˆÇn»VRÏä›è8ñœ¬ 58§ƒí ;iFÔ”»˜•BÝ 5$b9\åɰf©²ÈÇ~Ó8?52SÂH2(!à]Ê«f!e¼J{¯ÄÀ¢n«¼ßap/'Ò…9 7å(6“¨!šé×ÛäRÜfæÐºs'´þ¾HMfp6–urNrìï' þuË‹-.νòvö* øÏÚÀ^±ü½Ëx®šó§}Pïê¥À…7QDíHõ¶êðÈ3cBGe4Ë ¢ÉNÄ×WÃ20c|-~ʺ¸mCuM8*à¯IÏûIÍ2ô‰dƒBé™ þ·ÛF¢ÙãƒÏóÜ^+ËRYk«g_øš¥‘lû7aŒYC×+ÝH4Ça°rXH…x7°7Ñ›’wÐpœ>÷làQ4MÝ%™†«vu<¾eÇÀ‚¼Ãëæ4)âÇH– Ap½ÇJœ.7Îù±ÂF_á#úà-ÜjûW –1(:÷‘QdŽa0bðc–šôÑáü‘YTUM ¯Áðv´ÈOƒ hò»Ëo¦zñæy¡ÃqN;’ÐuïU0t'%e*Ô¬ÜÎÓ-ÍŒ²¤Là©yº¶ÎJ3#'!R(òíì;J®q|Ëõ<Üè—<õâÇŒuÒ·8A ÁuM7¹ƒkeNÒ j+b/ó€$%¾Iû-]îr,÷ÆÑP¼²Ÿ§€ig}9@ò¾Ï›öæ+Åm ÆcÉ£“‰ãwœt1pEãú–o…OR>c¾ ÝY@À!kÑŒI)!xø¶®‘£UÇ ï΄¡†HmIš ; D‡óº€,±Úåcy‚t(68w‘ÖfŽm#æä„çsƒ?jëý#\–ÓÛ/oåçãD§^ìï…²n5IÜóƒÓ*„Ë›Œ¸_<‡ œWßt°C Hê ¯)šØºBcžƒ¸º¿Ì:Ø+Ê’Ô¾FL\¦½äH–[•U#Ö@_¶+Yv¤´}¨X_Ú¥«…Õ~˜t,V˜UO‰ )¹OM¾êÚ€-‘½ÐR¿Iç®=îdéz1ù(+Ï‚#„©P;(„IÖ—nT8ú© …ð¬½ÉÔ¸ar:Û¡¶­‘ßÌÚ'ê,%ŽC«RnBÀ_uçB÷ÈA84ßO–cVÚq#àéf»ÿér«9bÔJpÕy×ì·oâKnÄÜ)š7»uÒdâŽðCe‡¾’Ìz~ú“g¬”‡;ƒ‰Ãž²)AnÛ(É#—ìúÔÜÅ}àütç]­jfñ6UöOü¦#£ºÓÆVÊFp>ýþ` ̹UÝ=÷cÛ2Óå¤Èj_#TJȧé3åì‹‚åoùSJ¤ÂpwÕ¤ <+À»~¾Ë8fOYXê¥Ïذ(Ñ2Xo¢.èjÑEÙ_+ÄåÓ6dú4tz¬4ó¯¹ûÞ›NÑÊ &È×mY·qÎ ç|òV:À—`T3ªÓFŸmòù†®Ï®þ½ö?¦–€]å€,†'¿z²îð|¹,›­ÑEÙÝ䥡Mýx8)-?$¼2Îe¢Ô“·;h¯lw‰_¹RŽ›ÅëˆKëBLK¦À? Cœê~0¿eÉ£(ó:µŸ#Ê|v•áKBøÃoyb£ì.úJ3%[*nì¡çÁ’ò RÜ3ÁT|D¯A,8€íàŒa_*ü+Cí~€õaÑtÙ-×YŸÚ/ád²O‰®vã–éØ ³æš,w5|T7E“еzö¨üÔgW¾]Rˆ@n4ýXÃq=D}x“:ëR52Ob Οú.êJË8߃áÀcMa’÷²JÌ¿®›1¥¹µäþTœ:éŸþÌ*ti&vŠõɿ룂·– ¬œNÀC_(}ûôHꙊò( ¬²•ÿ†øNB~,òÆ‘A¨Ó¸Rh¼rÿ7ëј[5OÚ/Ìjˆcă¢K;9Š9HÕBÐ̉)vøo'¯ò絉šµUÈKk≆Š0;‚†þ­ìó ³Âø&í%)]‰{.•X5‡Í@ì^qSºce ˆ7ÇÒeÍ8n¢×o3“66~ß–ù$Ê+å{u3¤½ÊUºV…4>Þ vÀvžßÕîìýìléG-±ÞC¹©&xHÛ Þ]ªr¢à<„ïžóO»:HÙÀýàDµÔÌÐR¡`–`ª¼qÔrÕ SÇCB³K' L±Óg̲ Zf^Ï5 ôéœYrYiDæP<׋î϶¿Îÿ̉+-òP¦ý4Rœ¢:¯²cBK²g­x‚»c„i9RŒáÚæ¬ßW‰GȼŽÇöC¿Ã¦G’iÝ÷ÓÅu³éõÖw„ *xE¨ï-[BC˜ö–%i4ÃÑGߦ«é²êsE0¦ˆ&¾oµsRJO&ŠñÌÙ8@{õp9Tc\I=Pð†\Ê:¼Öó¯Q—šIéu÷ÖÖøTº)ÀèùÉm­Íàãvmh=j‰$Ý7&’c ™6p§,}[÷FoŠ×ù ÚÝc{ΠڢS zqÝød»ÝóH¶ÇÏÁ '’°œFÏR-¶áÌÁxÐñ‰âƒxZœ-ŒwÇ~Ëú¹"k{ÕwaA“‹ êL[„ÏÏ¿"þ"»{ªÞhïçûÀæ%ç!¹©Å~«» J(=œ*»Y˜u@ãó†E‘Qh¤Ó®$ÔsÑLJ­â²Þ4 QΑ'D–¥±ãåÇ7[!Ãy‘¨ AõÅ$|_îáÚÑ›5ßó“ëÙC'XÍhl 6çH 6µt{Ž8#/bŸ£ÇxþÖ§N.|#ï ÿì´?ä5g”8÷ž˜Ð¨ xI&f.Ú j;j㊈›Á±/¸Í"eÀÉo¤è“ÞF ܽ¥ 2p‡…hŒãW ×®’¿½qmÊ!’r‹·E[ƒ1® A€nˆ'pêfC]äU…ƘµùKˆZ/ô²@›sg‰Èüš¡&†@9d=Ÿ?:xR”ö ~©&—(w3fÁÂZ2b–ƒ‚“/åÀñ2™z$UGô!Qµ†ÈÙ—KŒEà~]. ¼J‹•‹5¹W¹ÅÝ1³½ÝyÂ'7°)жôã§Ðš4‹½ô¾¯çÀÐÅ öƒ¢Q`±Ñ]j³P©:U¥¡Û961R7íæü@.x‹O„ÂŽ˜Øõ÷°ŠÄæ_dßÓÇUÅ*v!º¹#=éÌ<Íèñ“2°ÿäO\S@G—a|Å™M”9c 1ù˜!ËsJ™&ô± 0Ñg½^oLÛ"ŠNWT޽"©ak¬à=¡¢åœf¤ ÙPîòmÏXHßLÁŠCÔ ZÅúMX”]óõ—iN0¤îú‰T·àÌóBÝÑX(}6ZNYê¶™Õ.„7fƒdjö‚a¨"“L!êÞøÖ+«dÑ£Ó<5“N¯ð¶ŸXÁ:˜®¡çö¬æ r F#=D«XD8˜Îmاã0-ƒ¢=Y}ÑÊ bóÂû‹Ln$R¾!ÆË‰‚ÚÞy…»²³½t£ŽÄ9üCO#\ºÌ®íÔç@P#ë¬Ñ%[|×l”WœJ»=‘úy)Õc1ê.¸êãHfNýK/첮ŜšÙ`D”Žþºvþ±e0aEÞk"G~e•"·+ªB(,¯K$Bø0Y dãtÉY±ïf‚aß„R´A Ò]Õx?0êò쬘ÌÈqÃÂ^¾÷ƒ¶í0QOQ:Ûnw$pr”úG•Yÿè©» @~¬òÐð–]÷ºRö]™M¹%ËklYÂV`ÊŠ _ÇË&&˧„6ìBÆï‹3X#"Ä#Ð1b?7è‰õø¨0Ò^Ké-¿këœYà‹÷ƒ}9[]gtƒŽñ»~Ña¹Ómi,Ë!c½÷ÐÜÀt—ñÔs¥çïR~þt—㻕ÆuœQ¹ëþGÄ1°‹äÁɼU0žQ˜5¼:² £§ú´áTr÷ƒÉ’¹\õc€®F2^÷ܯÁ¼ÕmfÈ,ô_å|Ñø Z"m±¡þôp¥¬CU?ø#æš¿YÃÜæ€ñ¹Îf˜ÕÀ*Žñ¤;o®°¸™~œE†®tZÜF±ŠO–Á¦`‘ðÔuí¾šß°øJqÔRpˆlS18·I°Zc¾óXls¬¡‹¿(ÞU“S¹Êw##ƒïÐcT[’%€i¸Ô¸+Œ™º¤7å?RÒÏKÃVE›ªo•Ò 0 :éŦL(Vîtk¬¥”ÁÀû–öv”c!@:’’³ïÁ ã øF~ø(85¥[›»'cíRá®|½øl9­C à„Þì1åú›oÊÌøOrå&’*÷1†gfÊl¦V™,»¶cÓ9¹]ºÓ·—].š@šuÊyÑO3ÈÛò\ 4å5f·~ þÁóWqcqõdŒ¡­o¦€P4‰ôÚ-ÔŸ¸ ÷¼\„•7–lÒS!‘JHë¨  :°ØšÜ°z øu§¿K¡NÃrðlcWõÒ›‡x³õR<{x$ú°¦!F¹§VE·ø—4>Õh8.óÅ{w£ùïúèN(мL¹‘ ˜&žS¼þJë¸ÿéÚ½HˆìwzÔ3RC¿Ðñin;²V£§,¢|$:¶T‹¸—À) …õ¬¢f4ÆÌŠR0ÃíXƒ‹‡Â¬ˆÑZŽMÆ:¦¼;MóC³ÏsÀ)@»‚^¾¸5}lô²$|S_HsŽ3㞦õùà`ipÐ!Øs²UÅǧŒùLTš°X2|½¬BÍûG¼%¬ñ÷ÌÆ¼zÿöÚª•PúJxß)6¸ÞËX0¹jƒ}\Q8ÊâޙΠºèìž7>àA­ßN&Ém×o¿ëœÙC ›¡ƒÒ¯á¯Ç§³5!åZž¤Í6pþ»OI™#yrú:‡º —ZU6;ÈvÈøÊ¯Z¿q¿!2 ³š—д›Ÿ‚)Û~Vɺ]"T_ƒt¬½ÔËÕ3ëô] à4*p.ב` “Kž€Ôæ“8±üüÙœš“Á ¹Ÿ¾þttAˆ›Q‚ÛS eéK¯&}eðÀvæÀîðfš,‚;ŠÔ»Ó‘˪ϱ¿÷!O€ô‡X“cL•‘“-´.§?7{.~¬-ŒtçÃt!ŸÞsiÊT‡ÿ mËê©×D¥Æ8@'Ø£LÒ§hñT€\Û¶Îv¤J¦†ˆ{Ö†´¼Pôv­ªe°øHèãàÏÄ¿(û®÷œçFã¬gäÇu"U²&7Èõ¯ NçŽÇ¡N:jòy U±G,½{¿-?7•¦'£KS)d:2â ŽÐ2´µîø¼Il#1Çõ2yôý†QŒl# >ÿ¼ÜŸ•lzÛ*œÿê+Á @žîpl%Gý³¿œ%*s38~`è§“àNöáðç’™'ù A×^ú5eRêÍö»ì©²†ñoÝÝ®Êc5ž¬Q«|øK5Ô]Ñå}Ò»ŸçÑìmåè[Ç"OqéÏÞδª$5«Ô@lßѸ¬˜‰íl­ÔnãîÃu¶vnp%ºàÂ|"/MU2g¼vÄ1jfš}¬£<ڈșëüC£Ù«L¶0Y¸&Ø3r“Mó†,ªÑeiŠVÈÝ.¾ü¬Y¢Xüï š!*çVM]{A°S¿ôÉþäÇÖ›‹!ÿr‡Ý*{|]G>Ž'ai£9O»¢Í9ȇÕ7ô4½`LØödÞ¢:¤ã¡·k¥”Ÿ¿UªF#°Zqý¤mò %qøu¦"GºÎ”I‘Ãe2°-úR`µü%‡1î~›Ý,00×â nàsµ« £¼Vö8ü;ꃋBè<)íOYì-ŸKœçãè#Ö— û\§þJ­MÉÊÏöô ;|¼aé11‘ôÎv÷] Øv°Ó[ü«>nó‰7bë š“ûŽ_„5j˜>1 ®³:/µ“<0M®àr~Yþôøù›zSγô›p é\}ÀÑ©9=›@a*£€ó@4î'˜ö£ðõj£QáYðÜ uˆj>r ÌîðþÞÀ_-`ž¾ÃÊT^ÿ²‘µª9oÚCfúÁ”'6Ð+å8ÈWFTýdqNûÌÇaØÙÏúä1”)‡Òt’ej—±ø…–º6ôœ&ÊæÎWKÍ™B‰)¤¾~+ÃPâLÜH,{õ)OZªªÌÑ ÎÉ<FMòÈ.Z›Ý¾tÊß1»Ì ™Å§ -zñQ±º‡c©(J1@ymðŸ!CK#à²)¬Ÿí¼‰¦—²}\o+xÑ[É*]>û>ôMSßšt ŸÍ¡(êf~>á ÏO>K<÷½ND÷ª‚¤J¹* ßËŸh1 ÐˆËÔ};Óû’øƒg‰a<ð“ƒr&qv‚»O~”Ê¡.^²DÞ ~‡€Þ£ÐŒ©Î²‹ŒÒbéÕ9tø}³Þ pö‰V8¹&âWÀ"ä©Ôɳ 9Ã]üföjuMŸèç­ËÔd¬ÂÇÕbê€0ñCàytQÑ@jp14f›ÎÔÌü-*$$ZvÔª.J¤ªd„« íéX[•NÅDlŸ2Á»WO(ô«ËwDç`AHOå8@ˆ\®˜´ížÈ…NíŠm&îB˜ ùr×H²XtX¬žº¢mû¢L1[cÌr`„0íe"Y¡ËKRtë°í TàÒ€ÛL›ÑŒÈ!!­ó ±Ñ7_„ÞjylÛµ¡ÂÆxvt®øäi:W0ú?V£X¥% U¦5Éå•jŽ-N\óVÎ{öjçIc°ýýJÑÞ’yljÑ+öÆ…¢sê æÓ†‡IN²c¿‰áŸªáP£¤`}~i™³ÂÓH8Áao²è ƒ×ë6]…;Ñtó¯A »sºU»õ·W&`·b'Ç(ÍÔ%£Ó¶–ïü> di˜£½¨ðȃ P1)t°K8-´µ· àÙÑ)á‚ÍÆ4z—AuT×¶Fd‘ÕINÖÜ"æNg85d“ñJZß¿ZÓw^ªºÆ:Z·QùÑJrºˆLZé_)ÚÄÿ†>ÏI‘äÈ)€ÓŽœ6ñÆ ô+¼ô»¶Õ£I¢ý€W½kKñgá]Â/ƒ; ¢«ôe†‡ø²Ž¿+þƒ]€k‚gÿŽ’GV(@˜úWzΑuž/í%rq:Ü”le‰=ÇÉMˆ«v² l8®ÿPe%ÿÚv‡ZÛðIA”ŒBfȵ¸@½jâÒÂ.þ!µ&°®FùéŸ4£³÷üƒÀPÇ£_0ãµi›Æ“‡-ËCæÉXk@¶ ó–—qÌÝó¾ýc§Ž»¶L¯ƒ Frˆn3¬r/:Ø ‹cªßºÐ$7!„X å±âY SžÂÅɱ|T§OIÐ&ø)ÝRäèJ¼Ýinñ”;­Iq­àõ!…lfÊW²5ìWonäXðŠ`¶=gmnDö™0©Ö¯è¤¤Nä5~æ‘Ry|Ÿ—|t#Ú­ ¨õÒó¥°²] Ò’3oÚìC³–öèá¨Wjþ„1—~|¥QÀ2§HŒ•¾1‡–]c¯Y61–Ó¥R{Úýjn‘’ýÅË“E´5¢™Éy|>l÷6Ø·‰_…ϸoÿÈœ?©Gpûëa!š Ñú¯ÔtVÄ0‰{ýÒ¯ ~Hé'i¸FŽZÂÑbr+?[ëSmÕðv³†Uú¥_µn!ñÕCËTÒj•è·°’îC³á(ÔÍp?†ßÍeu[,¾ø†)y¦>£ü%†&¾÷ØÝõ òº@=ž¢î&Ç Ó—9åë;ó4ÃÉhi2¾Ø‚tø§’ Pœ›«ûE¢ØÎt1Ìð ĸä0W‰ÊRm•úfßù03/{@ÃòhúÏıØá泶∶›~˜¨1˰è÷³K_çö]kkõuâ±ß&¡¿â•»¨óàC}¶,~ÎúëfWó:l8@«ÐìÔ´ÔÜìe.ãô59>¡¤Édµú[‡\roj+õ=!kš$Ù=J³Ê¸êÃèáÚNõl†=ЃaÎz~øöšk§*¨Ý5P‚Q1Q®Ú(If³1.¯›²MoÞ—\84Eå]éZÿæÖ(¶µIì{`£DÂäg»Å†«0+ÝŸ"] óû&j@h’Oܨ]$°.5­©þb¿ .Qí¨Oä~áž:£¹ª¾ÑÁÑ1¢Î ~Ú™Lá¨STµû#w´h`ë[u†¾äÄö`«{çIwVþz„×øœ,¼!ot¥Ž®­×Å¢8rµ!BÑLÄ|¯Ëù‹ÅH c\Õˆša|ÿ¶ Gã’®f‡ï O;;WÓ[¸ÊÒ ÍÐ0 «ûįEõV[ Oí‡Ã× "UuÙT‮Å8qš;“J`ËåV«R24f68N‹n/–Vh`7=Eg§‹@²ÚU·:=›Aã'u¸OšþÞ·€B-=­ZþE8ÜÝt—­²IżÛV°}•ô‡IsýáÊœ ð‘ÉF±6úÆÊ'BÝi˳3ÆþavsÝÄŒa¼Èé–?J$(%­³o`¾Wgù/jRÈpMøŽ‡MŒKéËñò>ùS“/FpDÓ’RŽ£‹3Ta* _:Ãuô+žíÔFÀć1v#™VêüO®#;®û¼!M§{µ9„ž aºA&äoή’Y¶÷”OøYp•Er`@<†ñh"­P0žZ‰í±²*Mqú½|ÉZuË™VN¯×/«ÍÔþ.¡Ë¿ÐÄg€(Ü–z«ÃÛ¬Û0£$˜ôû_ò‰ÍÌ1é^Å+^eøÀ[®ÐríjO˜æ¤¬ ·p½Èd¦©gˆg¢m߆wpü@xY·¯~ZÓOÌR_³eëF!—ü<ÖüÞœ•èîöÏ$–n*ïž|álHFi Ã°Ž€•›¬Ÿ‰]Íõ¬oÆ7(fÂ5»JØb4#­ï«‡¿LÅxj`CÕÎW‘& Dñ¿Ô¬ø ¹ ‰ÒÊ$2Qóÿ’ kœYw)‡E}e™› ÿL@èʃLª\ÈôÏJΈ„!Ò·Ú(©Å+,·|Sh”¹2©Ü0SŒ;·ýž:ƒü&¡?ãhXšž[èe€á8 ™¿ÝÏxBÀ¥Ï0Ó¥òx9V‹ƒµiÏô~ Ƌå(÷îç Ÿ6óØ`!Ñm3‚˜ü¸•Uc¨=aôô“±@†&¼‚ÚÞî©8UË„,¹)/FЉ7\Í™£7ûÍAéîåj!Ü3 ›“{x|‹¬$k•RåÁ„ª>‘Rɯ ØÜüc,€éç‚—óØ§šL›ÉÍEIîÕ,¿S­c>ßµ¶ar½ÍÀò¬׬ٚèÎ’”¾x¡l[cæXl5]<Ó¾ÿäyµ.( ç›i«&.6±ÃA[áiÑ¿Z…‚OPŸÀKC®ØR’€#7‹÷bó2Ôåû-Ô©VÁüàÃ9K“xåÙTMü’‹(,Ô<ô§¿;äÔ`x±O …ˆ¢áŽD¾²®ÀÁøOPu'sîé!‹Iï£#^eÿzseSbn)[-˜Œâm[š3 ÀXÝÓ¦—¥ä¨¾æ+³Ýám¼+ÎÉE/€ÕØF‘«&ÓuLò]e… â$ÅtFCH‚1dp‘+%KÎì aþm©¡~ÇGIfŒËúÍaàñ‘òÒ*•»áÃŽgQ¸áíÒµ¦£ô ’h¯sì6²o”Óõ‡Þ-ݘ³Œ\î“ ï§®šæøN1G×uä¸z~ ôïŠùœ^Ì!¨ìŠ ©k#¶Ê_·+déÔ‘ Î“9îW®Éy¬'±0kí×áÏ:U*]â ç òSq§†ï”#7«‹˜(3?ÂF…,÷£ T´¹±néÙZ~ñðéiñº~‰%$lV¿Ä›Æ¯,Ê(°É_>1ˆÔ½öµK¹Õ¾)F±ÎÓ…Bf¸pÏ»²ùœÚ¡º’­#‚?÷0kcËîwš³ŸDnCýø]Jžæ'{§‰%‚=¦½iŠö®#;ËÏ ÷ÈRÝéAè/6áºe]át÷9.<ÁÓÓÔî?n¤íjMÃ^{·›1J œƒ†R÷ *™ò¸ÙåSkX´­Êç_7¸¨ÙÏë+àÙ—²!^›ª¢ÇøÚàø9/áP¬Ýz·ßF­b"‰¿ÉÐ Ÿ3Ïè©zvUAåôVîËÆÞªºx¯£³‘åL)`ÃŒ(ék´¦ù¡sÈ,e&†t í¢ŠÈ–àìpž›R›ôG„áòZ}¦øsê˜ ™-Œ ºò+UìÛbÁÒ8Åyjª5 >:y_M[ш‚‚ÖBiØFpñ@ taP ô«ýrÇ;޽2rÊv[ôÔ=¥F0°ÁE‰0÷*b3]¾ f gY ‘çlVþæš³’³²^l꺇‡jéA_ W± € í€‰/£Õ„ª¸¦sàrûbÜgž(°ÏC™ßb‚Üíñ ÖˆÆTªdoROÕà¢\©èNOÀ”º[–¡îº Ê»l›m»|}³ŸR ÃÜ“ïfÕuC6†àÀ“Ø‹œd>g·!cz×âΗòí…ög)õ®å[SL>%Íóo”ºŒI%“.T‘d#¾ƒ“±N.++epîºFݬ ²?èç/8¶t+òAäuwŒ&?ÓÍ›Q\&•£q·¬XR%Hj¹$ð9}„†Ù:ß_7È»ÝÝÞ&Æ+AÍÏ)hÖ®äJJ4ÁvXCù4í81“µ5|³&ñ ì«í£k š>3Ùôã6ÏJ™8î&¹q³Ú6Ïtø¨çf,À˜ç¹%ù§ûÈÃÐM9üŠBƒLÓ ²íãá Ø€ùãæ‡äßÒcgã¾ÃÙ¶2?í¤QÉ1CîYKŸðd~zêÅÑÄÓ¤ªØ‡°…ñ Ü‹¸2‰‰éÚDydÕ;ŸYº›XŸ¥Õ–w°®éSUªƒGvEQŽU~÷ùÑwåCJÎEÕñcàÓ@ºË‚úÔcý‹º/íÑÇêv áC–oðjŒÑB'qü³J[ÿXƒVæÀ•´Q<åýBÅ’>—áàá<„–:Ò! Jó“o t†nÕWŒç烚JRà1í)éO:‚XŸf3ÓwBóP< ¾«‘ñL¹A°*æO’‡<…ìyÕŒT3=à 8-û®.f:ÇÃW®Ô?+{Ñαùo/åÐrÛóuªwxŸ±m…»édã‰s/ÿ„3˜jÜŽéœdS8°SÃc@q6*A[·œÀüè0P Š×7ÛcÄÈÞÎa„“-ªZii«5ñ‡ñ:ú€µžX¼ÌÜÏ?„ÃÊ:Ÿy…½ûzB5Jhê­‰ˆeÍ’ó ™‚1âKÛX¾Go¶o ÷TçùB(¹÷ÉlÝÌò´`ëî&UIÀ+s E™‹©_¾•æÑ‰ii³x¼Û0ˆNwÜŸÚÊwœ‚¸FP-Õ{ óZIoÿÖ\–C;jqZ0PsxÀç(¼Õö×XnÎǧ/ÊWðóz1çMN¹0°ó¹@™±É:™üt ññ°Ö5Ù(ýN UpB;![¯é=diþk»»oXÒ> ’%P¼³à$ôÒ!`8x“iv„Õä—˨Uy´ n*ÆüàŠ¼dY̦O‡u>*Àç¥t¾|Œ% EÄ \„¿†>"ºêiUE¾Îíõó÷êFvó;RÝÙ?a„¸nAœ‰‡6æío M©5þX»£jß 8aýź}Í…øˆžkWökª.UO3æ>©Ïõ. œãWµ0[îCòa¤š\̃¯?.šGXŠõQM:ÈŽ2c{L“УÛz|—©›æ6,hª­&g3ù3àÍöšL`‰‹ç½ø/AŽÍ˜%³ŠƒµxÞ¬¾Jw ¶ÙEY¨3ÓU¼?¾}…Åä»åž+㚦‹’ }*ÔIᇰ¤Éeµä`85Ñɨà‰á… ;&”$é ÚZmØómw8Èœ¼|¡‰Ž-š†åó¬+ú…1ph5gëc¸> rŽÝ#%«w†S¡U]fl¶¶Î»¸E$§ÔHžB‰¹¤Špœµtt>i°ûPi2ÆáD¥ôR뽤LÊöèÞe/ˆÒÜ.«žÃõå} d݃Ü9[â!FOY›‘Ü’t'ŽÖ>Ø8¡ ØQ$æœíš<«„ÝÖëm#2ñÏ=·r‚OLüI*Ó<¢˜h–?郄–7ÏÎÔj_’Â6àJÒKc‚¿e{¯¶à”€ñ‹ïíBQž›nì|«nXÄSÇÌ´Ð8 _éõ"r¯áÕWÝóè (@Žt¨P†H¯Îo2$-­Éˆ©V@Õ6ü€Ö@psP^[^œ–ˆÐ C¶WÉ&dFг© ©Z'Æþ‘š-_èöA¯5áÜÿÉŠq¹PuFj¼Ô£«X´> endobj 74 0 obj << /Length1 1625 /Length2 13484 /Length3 0 /Length 14544 /Filter /FlateDecode >> stream xÚµ¸uT[ݺ=Œ»Kqîîîîî Hàîwh‘âîÒâP\Š»»S¼@qýè{îýÝ{θÿ~##ÙYÎ=×\ÏH65¹š&³¸¥£9HÆìÆÌÎÂ&PRÖpt‚ÙÙ˜%í-,ll\HÔÔ’.  ›­#X èðºÙT-ÜÞ]llüHÔYäòî´˜{”An@-o';€øÏBÍÑÕÙèúî­mÁ ú÷IG'o[k·¿58™™ÿVú›-ÁPZØ9zºÚÙ€`K€‹2 @ÅÑóÝh  sÌA6@{+€£@ ¤ÐÖ”ÖÐÈj¨j«iÒ³¼Ötwrrtù/,’šZÚ²L)q-iH‡ «­©õ÷S ~ÇoÍPÑz÷ÿíóø7]YZK\K_Mšõï=Ø WÛ¿mÿÍ;2Àÿ@{Oµrqtø§€ÎÆÍÍI€•ÕÓÓ“ÅÚÝÕÅÑÅšÅÉþ|Z6¶®OG;ÀûÕdú‡w°å;n6 ø»%%[ Øô7IÆñ_N‡w*ß“ÞínÿØ;nkÚÿ+à ý[ ë?¹JjjJ -Ø ‚-ÞÝ€nlïo%í¿‚’î..{(ÿ·ËåÿµùoèŽïwfdïëôüÏ‚Ý]}þ7ÿ~ÛŽ`W[W7×U¬líAÑ»þÝ3[ð?6eqyiM-f¥wᙕßÙ³¸y¹ýý·ž¸”’€ÀÎÏ`{©4ØRÒÑÁáµ+Ò_ú¤lßyrstñfýUÛ=Á¾ÿiµ²[ZýeÝÒ݉Ulëì’—ú¯ØwÒÿجAn6Èò²°aýÛê¥ü5³ÿ5¿Sàïëäè°Ú»‚üm­@ï$_W àæâò÷ýߎ_!±ó,m-ÜÞEþ~Pþ©.¶rðÿËüŽä¿]ÿµýtÿRú÷jé¶÷X‚¬XUÝÞÅ@÷ÿÏû^2îöö*@Ý¿úŸQ@[{ïû]Ð_¨tÿG²­«Œ­ÈRÍÖÍÂæ_¬þË.ï|½8ØÚô¾#ÿ˜´ÿž#ûwÁ¾Û¿3 ÀÌÎÅó¾w-ZØA®®ž¥Þ9ø¼ïÄÿE `UÖR‘RSaü¹ü$ ¶p´´[8¸y@ 7Û»8¸¹¾ìïR¶yý#+ ØÑí=àäîæ°rtAú»‘ìVŸ¿6¤o®ö÷Ôý#*¶ÿAó_ã蟵¦›‹£H×Öò}ÿ¯e ›‹­—!Û»"Øßíï¯ÿþfüo ¨ÿGÌÿ+[BÂÑË—™‹ÀÌÁÏ `çaã°³srúÿ[®Å¿&Ã?j|§í¿×%òY -/8Z†~Lk /.œª€¥æg9­ú ¢§³œ1ÕN„/•·C- n ʤ)rT’0H —èQ‡âÚ¿n´~©ž¼¶TÛ(¡I‹æê°h‡d*/UtRÐ)äè—rÍd¶%µ‘´G%ùÛ»â8&Þ0¯R)Œ*ÚÖòa=‹çØ›q\ì±¼–0;ˆ–¦: ÝÞpb½âË ³fáFàœzº0 Ó ´Lj-ábk{ˆ‰4éÀ(Ú^Áµ·¸™KÐÕò¤\É.ý¨,nQSbãae™J÷ Æö«õ…6p’3:î~EÖ's$ŸúábLu‰Ö5ã}}éh…Nø:ÍÉBð~Mi›B«Tñ¯^#¿äº|KH@.„ª`3|ø£ãÂ5þ ‹˜[d"‰‡R¾ƒß.ôp0ƒ€#ñGðVQ>Ý@Ë1Å’V]ED‘ÂdG~•ê×\ãÃJhU¼w‚\P8W\€¢±Ì!5º°7r«Â÷óA©%†³j4a7›¼ÜH"4B|ô á*ˆ½µle´ví{“õ6J/’ô}žcK=R·)‘Õý _Ò rYÜâütx—‡/tÛ‘|&“Ú¼a”ýè úºë³_øHbè0 ë¢x3–b`O?2zß‹ÿþZàQ6KôÆA¼~‹ÉxÑÛ³Š*ÊYõr-ÈËApîïQ=Ø¥5|ùMÎ8c€F¼xÉѰá=6WßpWüuQk ×5Ÿàé¥ü{s}r"µšx:n±vúö¢ãGßO[¦Ì_yÊ%í©_åÐ×{ªï79bG·¿cÐnéë‹÷_tßÊ‹äÁI zMûk:ÁÀS<´:&÷PšK^–)>ÏòåJäªËæJCòÅ¡õ¹§Vkô ´Æ#!霞Óv_ª‰Ô!`Œ:]šYBJvX{itö6Ô(…ºÛ‹s­ÝÃ,hœ>ú„W?qš‰Ö—y : !Ëh^]Íc½lg´Áç $†©Så2Qˆ5™°¡ò…Âíý”þ’¸w;ÒÖÈ~Ê®AbaˆƒËw™0TýƒV6ë]ÑŽ¦<:aoŽl&".¯T?Òüo˜¤…§= ¯jE̦ˆ²W¬‚KrÈå;{Ü&l—ÄåqXe mY+1À5Ú©êCšîò¬„‰aqek´±¤þˆ¯~H#a;º—xä*ÈbdgÀ]n ŸÕ–EO»ñ…âÞX"®ÐÎ?Ñ"½lN; î6$<%·oÎø¡ÏhÓöw¦üH©“جwÆ´†'„°#‰LÉú<‘9~¬Õâ4ÓŽ¨¼VâÝÜŸný‰Ñ§»+´ÉI•AÑ¿‰ïW ²Íꨆ["˜–÷ YvÛIâ:wu ¯ñ>GÌžâÖUg³z¯!¸ór–«ìñVÏ|¿ÀS ßjf&“…O8é5Ø‹a±¶â`n‡’úæßESq-ǵb*8ÆF¿Êhá(Ã’ókØzáqÜhºW<›Jb;h¯ŽÍIPŠTÕDz9 Põk¨_ôüïäÏL-IÊͲ "}ÎKÓȰxvŒŒvÀ`šix­yór?r•ȵ‹:¾š—k0“@ì˜IQYg'‘…󛨩9ÍÕ‚§)î—èlå!fG³Å5GgÝ †a!å¹›• Õ´Ï8_¦´“(ö\œ¬»D“DƒÒw˜Á÷ÎÂö ·‡½O„ªlß½ínRë\èÍî?Ód{k´ 0|*T…²çß Ð‡§Ÿ+íÿt!ˆáxÈÖÛ!BòbмŸ€šGWÓŠH„ºq¦VwËZšwµ}Oä©LˆHÓqoÝ´|)š˜‘ÛŠy‰(ÇœNæ€1?GŽÕ!ϺM›m7‰ê~1ö l-;‡QÛë—©„ŽœÂh©§£Ì'‹ñzú=úd5pÛøèÝâC<ÉlôvÀE¬iJ»ÑÃ$À¼}çdæé#(É_â§ôà?Žø6Qì‚UÔfÛ #¨³¹+d›Š¶çû^—¯¼cD¡ÃTÕ6öoÁ†w¿üÕÖ¦Úê ŽöjŠ4* ƒ#TËê[Û8÷¿UÃSµžÎKî,þ|þ-.¹ž‘è½ÎúØšZN§@R)Øbન'(Ââm–U¥ô hd:±yZ¿‹€þs©>E‹ÙDFù’ºÞ(|ücœÒŠz®{qfmøÞQßJ|n‚…©øò-Â/9zaô,ãBm?lXÒ-fÒ-ÚÃßdµ¿‡‘Õè‚IŽg®3uŒ‘Šéh þRžhÐl!Åès{“ãkÁ§gg .´¤_M´—䟡¥û‹VʪMÿ3d³sôªƒ; _É»À׎B-@Ä|#)@Ǭ?¿›0À*vÞ®°4Ű'Ùâ!Y"Ã9fÕ…^AÛN½=é¨/ï †lÏ~ŠßÌAjQ){žH æmŒŽ»a@)üsUŸ]aëy+¸|]9&b²¡BDéT)_ujgq© s‰wœÄ^[KÊlcE5DªîÂþ³@+îçGª6̱YŠ,ü7,öíÎÊ¡q|žºßa­t{M<<…/$´í'wOÉ’¯‡.¯Uj†‚Ò6&7²>Ëã©#_[Œ6äëñû·úê$+Þ04 Iò5ïMÁ(,A}c¶'<³êÀú{1î_R¦yÍ gÊâGkºìŠ{t“ÒåoúIq‰q¬·5¬`ÞÜÞjNªû4˜Yøè€UǧX]MÒ€ 6Á°–t¥¥w_UQ’òŸ}N=ê-7ŽŸE†®°É7—+ßîiL9&*ø é8:~öu^žì©/ž(„D¡žT*á)M+ÞíÅ‚“‡+¤$~šˆ½Iñ't6ŽQ”vV,¯5ϳ=*cÁKVb‹ÞÉj_¼—áÆv×h$’ȱÝÓl}¹^L6T±àüŠ©Ã2]^T×ô@úZÈße'ZÒ¸-¶õ%UnõdßÒ¯.Á¾hºÆU>ÐT‰9~3(¹Ä Is(_ÛtJ°ïÕS¹{Oc6$õ¥iJòuÏ„—ŒŠž.ã|±†ÏúÃn´2$Ç—_Er™æ"?‘ÀñpH«fH[ÕZÁ8å©P¿¨šÉæöSÛ§©=ãq°\×{šÊL¡87çJ!ÞSº9ÆÞ|9Uû¶(“J /HêÊ«Ã`@k°\ñE ©þmîJãÔIÃ2 Îm2ë–Ùû79V$N~³ñ¼ó« µÚ=Î*[öF&Þ¥bQŒUœ'"Ì ž›{¿·hÉÚkû\Æš-»q§pV«ãºRÐYêïGâ;Ûë‚’uhá¨I¡¤qxø§ Xv$¿û†ƒšÂ*Â73 j\óT0¿ŒŸ,¸v0QÁIªø„dìOZÛû°Ž'ãîÞ¼£ŽóKª],–Ö½~pI/kÝ)7¥K1ÈлJî¶‘ª°fÇŸµ!^È0”= œÒí]Ç!!s,ó0´öº4Ö“<Vâæ¬òFÆY™w›$r›OœíŽO««>ö³9bÃæ¢1+uºeÆ}Ø’ü×o É2|𥖬ŸSh÷ é’S íµ[ ª•¯9Ø-íè ­Î®‡7Ÿd¿µ2†5óKk Tƒ4}äÂõhÜQôìì(åJ+ÆôûÌÕ²}¼t-Vz¾¹J1þÊ/°4¬ò¸¼KölöôÉx<( Æß)*éJªNœ üÒÏ ®›ž›hÝCüÙÁú ú&zÑìPdqøÞ7U6`]rª#é5™nh?žô” ìlœû·Èݤ„¦³¦]: Ƭè™\†ÒU“YÞ\Í2·ÐfÿöJ\aB÷knêÄ›)˜­<¤©‚ë´N ܇|çÛ†éW¹|\ÊÜûÊ☣gq½”اáƒá_Šnër,¡4{‡É»¸Á©pï¾Ø?þ̰¸úU²8-ˆ¡%]×0§“ ž:í.¹í»ëa5vù}uŤLÿX4·‘—çG²„)\ñ*2ýh=Éé‘…bÑúŽo°Ë…ž|ÉbY¬q~"5W~uj`—án«mÀó_cË‘;kø:,CŠÖ{ãüº 7ÐÓíðŠgx;fûã#HÃMb0s¯Š†Í-ªŸW×ÍÌç…e×þæøÆT_’r/NøÇ±¯;b¥žÕ!ÿ9B'õ»8,‡’ødJ ÉÑñCx{ˆBÔü~\µú·&èÙmæ…Þ©L¹éqbjU_jÛœ<ï½ÝÑrtµÃ¶I“®œ±šËûÒ<¾uÇ"”ghãW:0n¥e“6¬«ˆ¥¢£Q:/ýü3®×«ИFmÚçíÎqÁv¶Û¹®4{¢Cgd)ÏßÕõ•Â[’¶AãÝÂKAW}…: ê )¨ 9E²ÖS?¯˜ªÅXã‚æÐ¡Ëœ:TêçÓoO0 ø_*¡t?~Èù{çâDP¬_G«‡¼%4É‹¢>ÀHã}22Ào:«*Ê=”hë¿h/II]"„·ÄÇ”Ji-u››á)üÁå·‚Â"PÙ0Uc¦#´Ê¢UG›×WV$°êþù(ÞÅÀYÃâ[n\zE”òã.ƒ2ëŠo¨ÝºcŒ:#ÝÈÒÍܶ®½O•/åvâf+\Œ8ôK¨XkKbÝ«!›Ç’'²_ª–(G¢ñ <Öœìu¢cïöäR—ÊYp—6Ê—lrUõöãÍÚÄÖ£ Íú’¢këù±ppˆÎ‹l] Ëy½V̰M òm¡Îy_/þ¾l³Ï·u€`Q€ÕnËgÚ»nÇììç*ï`¶î #ùí'Ìó³õ3,z!W‘Ä&tÔïÊ«(,‹óá®æ¢„ßv©Þ)zìdó–Ù³‹"d¢„’/ÿFî7±ñ8ëdæ±Âuàq1oäfö=ã|!ðµ ›æ'ÒGC µ3+ë™9$;;„4¥F|u+œ·¼p8ÿæ–Åœ†D'0ôsÄ7X©h¼7ÂbLŸq^ãö¾ÀYl²ØÂ™ðÜItr6žj¨ð/2ì|fcP‡mä¼#SªÃõ¦PÔCÃ, sø†újŸ\2‰èW_šKR‹9ivéÊ®eúq1Ê$æ7C(¿ñ®É5ÿ0ߎ•|ìCd‡hýdˆJÚÐt£s_~y\m„ÑY 'šÙ³öýX0®t¼ˆehŒ¨FoÄ^2”‰ÚÔ„Õ£®ÃjÀ¾¾ s%ŸhL⶯ÕDÜíשÆáöÞò&!±«B:A¢X`Óý£<”´ñ¥Ý5 óWö¥ž… eߤ<'žÅçYVÖüÚªAéðÙu-¸@Oïå¸lÿýȳ«Ùö8jrÌÃUé7òe@×'¬¯ØrÚ´¿¼ÖV™Ñ­iÚ/qWpyÅš ¥´‘H8«Vo,,d¶ JP•xç¾ j­?_­š;‹EϯÞ-ÙGNž cÄg˜{ÍÓý:h3þ ¾iÐ(ðÝúî'óÄŠoÿ³í£8†Áu§ÙÖ«©z<7=\RÔ| ó ²ãÅ^c")¬»Z%uHƒ–^aA~¤‹@€dSdõmfep"GlI¯©j'Ú]oš,7¾œª1éVóOöÁÃá^*` ‘Ö;WÞ•qêŠêïýϳ«¼‘(¿<Ÿ=8 ¥3s+¢ë”|’à¢4ØI<ÈR£¨ $ôuÚ±u©?R‘‹ZöV‘8Eò²;¾~½µöäOTèÏÏC}ÛŒ˜10¸ÌËÚ,9Ùx( ðƒšë ì¾§“R»Š¯rª~Ö †ÆE¯apÍ?"^/Ùv7£ó¸}¤Ëhþý 2J dy¯YaÜ­J¦S$¸ñ ?Øÿ¥ôüÞƒNŸ[D²–ojîÀº Òjs/.Ä%õs0ÿrmû¬-u€D…cz˜!¥¡å÷ ¯3+î?EÌçÛ$²öpÄë°A‡}c#C$q–¬ªC‰}Õ?@ (°“CvAï^Åú]h®€6Ýùƒá¢Ë˜’ÈÒq×%¬õ×=\é“”G}•‡¯}¯EôV_ÍÎwE0ÕòÞ$¨OÚŽÔÞ6Œ5«¿¯»ÄB¹1£©/d¹%cö`[³õÔ 8€ƒUVØ No¾— ¨ÕšÊQwp"N,æ¤H÷̪;Õç穽ò9ÊFb¿[χÂëwÚN ¨ƒäøxï#ŠHó¦'©u?VBýêÓ¦†Ͱ¤‰œ†Ÿ`\èÇ—!3 šùJY.ÊÞ¾@“;ªrúˆ ›©ñµ”¢1Fª»ˆbÆt* :ÍX gtó>óÒZªäjÙ÷E_×uºÐ¬ÄÍ$èÞsµ"‰¿*cí«Äb·Ô~|%¯úí$’,¿5‡}A¨ºkŒÀH¿-—{µf¥(]3A.H½o×e^àqAX|ƒ›…žøšu`…j–…W¸ƒhŠ{ž‚¨~ÆbÄr›‚Uœ5 Älù$K\—?ôcRæQà×úý¶í£ Z§ìF+8Œ€lóÐàì¬Ù?ÇE`ÒïLF~mzýA\±}x xsKôƒº=kâN‰¿ ÑO bøLOŸq(ŒŽ¢ ðïë#z›ŽÇ1÷Á«î@Î<óÉCy FœJaÅÊ­W}Áƒ‹Ó$CÙií`æU« bB‰›38‡]("ÉJ]·Òbr~$Q’yÁAlnKàG¿q€ßmî3vf3³E­Xdûö Ñ%k#×]TŽ<ÖïíVaÔ¯Þ&7{íYR§‡/á#²W±€‰o—ëÔî‹9xÉ»F}·©µ?y±àÆ=f%¢$l⊡sßE#r¦^ì*ER±B7¿¸Ž™îÇß•ôeNÒ–zM#án@ˆ8öû”Cuf3Íþ™ü‚žÚÆ¥d,s|”äþÁ€ÚžEúô#­•!fµov`\лXljP×X ÔäÊãí ¸—`I"c KÍÉì: x±É[9ò¿5„à äAοøx‘½?òB¹àNo’Ï…Êf( «Šö‘4Ø£Qþ'Ë5õ¬]ÂÉ]µ÷”/:ŽžwóÔk:¤]^[œM•wcF$î{¡ õúÀ6ærŒ¤§}]mÍ_ÆCuèïäå¶G«¿¡Æ–÷¥=*ƒU¶³Ð§ÕWÑýÖ•ò¬(úQ¹™`ïuµô>V1ï ‘îšœS›òñSN8B`µ=£T>¤wñiá=®ED¦ÒÇxÌ´ßΫô6|¶‘ :ºÚ¦^ û†9Ô•á}½‰þižcx N„÷‡¨º”5—Ú?jw¡øëX:»ýOé&sÄ™fÏáß•™]Ïõ¯ib?—ßbÃLQqiŽcÇCÝ5…LilB°á#®­%7êK¨–ˆE Òa޲,HŠ€ X~z¢Ì ˜«\òºò¥ã@Ôjª”»m½›Í‘` j‰‰à«qŸØ {vËLòÄ(måm¿Ñ­Âæü¼ît ©"ÆÌ–A}|¿L‚‡ª‘YÃ7Z³f¸gPÕ¨ýæhuN9¤·B=&ÿkž^œç‹@­–† ¸³qoŒIö'tÀ7  ±Q%PÇV·¿¼0qú‰Ü!ßA·Y9ĦscJB¦NžFc}vv‹ƒÓ_oŸÇB‚[gqPô/¶hõ<ØC¢0ŠήЎ ë‡lwèqºµlK0_yÛCW£—p}÷íW§¾"hñ#D;%K7—›!ÍÞâm†¥:­¦d¶©‚ÅбÅb?ÄŸr‹ÌéDÃMëO`¡Z)[]:$Éöuì´.Tp¦4½Ò"&ÂŒA…Q4B¹ÃÒŠÉþ ñý؇ˆïvvÖ²ÞÎÒJÉñ¢fã NÅÐû¤¿p0t»ÊØq¸×îá-M60–œì{ä`_Åžè©?öÕu TzäP¢™KÖïÞ <—³‘Ñ N_åqLA% ÒÄ'Yôô×(ay& }‹qûß=«6ù-˜i8´¥~|ßqû:ÔŽçüŒ+czsèB#DË:… ª‚?[ÒZ@tÃ¥àö ¥¥Dmd9ËŽ×KBíøô¼ à Œè®jæi®ž0ÒFü4Ä l®ñ…uˆ'ú€9“LpMð•ÓG·ÄjÜ[Xh/kiƒÖ–<›¼7"ÙðF¸®7F»âÞÛƒŠžî;xw_ÜŸHb…ì¡,\§0`è¦*%.v÷îÆw ”£‡¹M¢#fðK7–šðu£Ã°þFÈ‘Œ_:µ!Ñ“umÕuŸ¹9iU£Î ¯Nº K·0ÚQ4dü“%T1DÒk­¦R1ÝþRüK˜U”¨N>¢v$Á”—ñ¥”+É '#z IhÿÇ™ÐÛ˜Ža¸»?`?ܽ†ô‹ª¼Ä°0+¸«B#tøÍ”M/ÖU¾cÝ5 ޳åwïós>ÿi:ûØeÚæ÷L®y½SKuµÊyÝS/é o>æÏʈ°¦‡ŸÇËâñ}b~ùÄg£}£J(kÞ'¦P©éB+¿Ñ{V`ÆíWFIتê¢kN¬:üð/d¦w­UãꣲŠð ²agøþYï¸üêÈ&Dø×ÑÉUûÐB:øîv™É|AZ¤–èo?w=·Ã7¾Ñg,jéî‘VvsÇs²BÜÈíÛ¾¥I%Ïðº.3Š.ò†¢¸Ò«.Њ©2¹‘ kÏ—Õ)ëd9ÁýEê/Ì2ò®&MBx?i—¢`o$:Ø”™ñÒÛ:B|‡J¢úúÔ¼ÿPŠ×lÂŽˆµ킦øøBhjEÛÛî רûG¯ÜbÈZœ‡}¼^qÇ`}JɃ (1Zòøfa03„ê¦d .³E[{f´a‡.‘ÿ! ì…Ja•»%EÖHs-æÀiAõöiÞMt˜S—Mö\]r|ÛqdSÌ7©w +J ú$¿?z-\‡“J;£V% mw·¸ð°ž¶‚˜h„|ŠÖùTÛìÍ¥Dr’6íï¿S½*!h][èɨøú{ƒT×Tdÿ­G.y½6 DEŠ{¶ãž.7’ûäî>5§þ D€|cQ«´qº]èå%B´mA³˜^ù·Ä±{¤˜Ùuö]ô¶_(“õ49J|ùK¡Ü\ŽS½Lþs)+gÏ …ÏY£ojÛú‡ÕÄ:ÞÁŸi+¼Ù‡tèû< ½pwÇ ÐX Y? 'ˆ:Ò¦>‡´@‰î—"<Ó€ „~—}XJ@Q¶7î#JW­.å}°íâ%²r§MGF:²À‚uÝð“³Â¶áJ‡bM­$r·¢wš„ÚY@}Ÿg®¬wߌ„É"#B§›[–Û7Ýz”Q@f¹k†¹³$êµú`Íñµ½µhÎŒò…¤ —r¢Ã¤93 wœ iÌÞ_CVÉ—‡v dGæ*Þ7y…€ýÑöQèGOÝ'(ÚåF€‘aîæ“ŒCpB["½ºæ˜èEÑs}Ý•â'X©]ï`O3Hlö£•o²b9²1zƒ¡ç*¾8.¾Ž´{"`‘’ߨñ$ uº;7¦M ü8?§ý1ø8õó,uCĬR«Â¥·Ñ׃æÉ¦à„ë¯DíJ¨°KfvA&ûÜ_"Ú—e0–mûd?˜„Dl©{ôw䈼í TµöÆôŠ?òIe4Q˜~ê·²ƒB@IÆ0·ö:£Ô7ÑæFM«ìd¡;h%<£2m®wWDšõ©‚´ð§ï®cZM-0™ƒ®%ú®|ú„¿ß lŠkýŒOŽ’D›Q­OQ¨R€”ƒè:HrD/] eÒ‰0#PdÅëuÍÄ ¥'c–ýÆ2ø€ëü|Ÿ-#ùå8¼ñ Tµ­gÂI˜c°åxÖóGž\;hD¼™iÉãf¾à¥¬¤™kÌ(FäW˜¾OjÒ]íÊ ¼cì$%"°3º%Û›Ùîi¯ÃÆÏKVØLh9êRI'ÈY·Üz]Ûe×Îî8ûŠDûc¦up¿z¼;EÄãO“–Ú<¶¨'Ë"Z°±!×GŸ"—N€I_[°¯1hE?¤ñý×ìÕØû?Õ‘[w‰/a µ¦ÜͱK”:ô˜½ÈxUó(QQõ‡6q nGÃÅeñ‚›;a:Þx¤#¿Z·÷%n!¿à €×6tô-Ò©«¼Ì¦¼Ô—^3GR Yω.Œ ˜X¥'\˜sˆãŒÉ4Ê’e˜~ÈÙ ›!ý?1"YGE›|rǸÛkâoCGóB÷ŽC|~˜x´D|®qâÇçú ŒY®Öüyê®LÞ$BU#®Lÿ¾o´´ä³4Kiõd)É­Ãs ö]Y±Vä!K!Q×è†$Ûê2uV’¡ýà^ÌbÛd ¯"Ë/òýóYæÌœ}#üæ‚îßdœ-º‚dæ-$•Û¯Zâ3Î%¦»øsƒI?‹¼BKJ&Ããn"V¤;${ÚÝ%VuÌG[9/H-V©ô k´Ó}¯(½ÖOš4scBgí82Ú«k³Nè·2¼Y8 ”¤ñH©Á»OâqÊêCô™8{z{x•Ò>‘Ëò’EY¬QÌñññúShL"… ó•A®4jƒæ¶•Åa¬r±¥C ‘_ ŸÒª*X²¿Ë´–å1úi"Ÿ±E9ÑeÆú1؃rEæ¯$nÎÂötÖÊÏο¤¼<•0ú¹".Ø%ÆGCJ#p*ËаB³S‘DÈ3'~¶ ždÀ`¹Ö7†×ªszôÃGú¥©l¬7[ݯXv\sŽÔsv½ÆªI«†yþ•°ÜaSÞåRbÉ¥&ñXáW§~ëæeî¦Ãd›]=6½ÛOȦGzY’>9œçàüíb\£§ ¾Jçâf“‰4ò½Ðš²GÏ@»h¬ÓRwϱÀ/e#l§Cß°GEOagðähùùÀ\úxçGS}oÂÏõócÓ·è³+}á{[]¬Ùì2žŸÿ' )žc¦!Ô£þ˜ñ¶` àÑpßï\)ez²~ŠÆÛŸHêO›=5n;`?õ\›=Ì=ª„—Ålˆ tD$[E+ñÃñíf¤ˆ­+ÖœSáãÉEŒö®óú­õáY‚ò}ÃÊdkü3”ŽãiÛH,øgÔüO8Ñ\ Ÿ9ˆòDjq—úŽEà´÷|óÒ h7Ü­tô•ž5o Ý;výŸžöW‰žªYÖÉe Œ•ÏòT%?pöíç÷´M>O®Ê•àÖÖˆ #[Gô—›+iAJqN¢ôV p"çöîì|rKsÇJrż!¥;K»’<´ø`ò”ODÈzK{ íòå•Ï–az &雡k¿;ÊýüÜ#Iœ&5,ÿ¸d³2Ç©XËöâ]39}Çø†U q‹þ5hT°/èUÿ2S{<ëúê‚ÒËøIŠ_ˆp¡\Nv:“oa†n¶éÙü„j¨ Õ“ÂÖÆ¾‡ÞÏ[uHY?øU³ùp³B>Œ(eYg¼r£AÚl3Nmrgë?b(õ}†5ÕñÈ>ˆ1DüpmÂ3õÔ » ½¸SÕýÉéí Sºm™D¨Hú %œ(‘D«ÃÿsÃÖò™_âÌÞìvRºòß—ºÿô|F1—³Y‰Ý`¢R þ:'† ¤ÚÓp¶bÊ ©L›§‘†€“x«œ`êöÙÝxÄéÉâ!ÊéÜ·h)Úo–3dÁÖ’æ?ßq /PÈ(S§ ¨—xïCôµB¤Û'×·¼ô°¼'¯€ƒsœu•;Ù©û.h9SŒFƃÃëÃ:B[,ÙÝ1ú¢n£üÈÛV迪½ª $i+›Ù«"ÚgkÛÜ×ìäOéÈ¿§ôiMx¯ó·FÀÄ'tr9æë+ò“… ¥LÐÌ:@bÎ%êâåŸVȶ@’ÙjiëÚw­f @î×j‘ÇwHn¹™®À³ãTj’7|£®i ÐÌ)¹ eov½,ËZ:èwùi¤ü/jX¬Âw‰¬–zWJ‚jŒ·ù q†´ñ1ký‘€?­fçï‡wi\ï5K¦TêÍÎçq"™¼©1qO䑟²RMH)qCµv’µC?~¯Ì‘R ©‚@ÝWdT™¦)7þ¡Z0•sJƤæÿ4».‚íhfç®Jæu„ÇÈðÛ[r £ D·øRïØçÀ¯|\l«•>!{\CÁH¢ …Ý™gaÉï@û%6Çe³[Ñ7DH›Öº»X²è‰SeüWu§å{Ü«SÄ*¾»ú?iãù¾í¾Ô—ž—ÄSôÔ7†¨”‹,^ht»`¢†#†‹V|Qj$³Òd~þuODgf£7àUECQŠf-ßÂH}û‚­O:N·‘ÛCri4žËw³¤ú'&“±<*Jý+MÓüéb„'5Ê)~Öõ †^v†f×àqG sû¿éô#?÷”ëï8aBù]ÄZu ÜI=ß &…eRX¦‰´­z‚%‡ ”da8:Ò“õWÓÃ{8žavu”æ W<5Ïw~«‘›^ßÚWñG*ºATÆ’J”%¡ª1ˆ…Ñ螬vÙ˜Ô™9ìÑÀ;q‡aÈú×¶MÄn hgÚÃMt®ÅE‡ã¹@¬Ÿx€A&H+ü]sæV㤩¬Fùªœ¤JxŽœ¾ t¹5¬Ð¨–5ì=áC9H`ñ,0Þ9.˜ëVRG3+gc½Kwy¯¢zÖVO„—iKòÜ|+¡øÍ½úý¬RätðZúL”ß}Ál)ô ù´ùP©z·RGXR+‹chš$’èˆAè²TÆê·ˆÊÈ“bAoÄ' ¤r–æ’¥^¥ÛîÛ·™:¼Y'‘«ò·ý=@s“]Yî4ú¥e´êa|GtC"IDs0ÄìPÝR£,MÄ@ÁKU¿ø£È(€æÀå ãýêµÔnpüy‚ó ÚKIPÌ7‡eïEÐd,KkàôçWi4qô¾Ê~£ŸaÃR ×§¶ÆÊ·¢jgž_Í2Wöî§xHë¿>%ꔊÝÅ60× ˆØ9|§©ˆ s¬%™ßå,[f_¤Oc`·&ÉæF@r±r}°Å‡gÈú³±Ç"³aR˜À:ÜÖñ´QÉ õýĶÛwt·LÓê<ýŒ¤õMhj¬àô âá"½T÷sê[¿eäÑ $#ä‹§H¸‹î'JrÉ{ygÁ+vù\³_?»•zð¸ŒTÔÝâŒ´Û t&‹ñú¿ïÇ"å¡C‡¦ê£x% 8]hH÷׸üù&ös"Úxõû´ñ!YM‹ó¶úæà¯Õ&D 9An®š¦¥,âÓ­¯ }~±h=è­¹­iæû—'I‡ WÇ2¢™ ÍÓîóÊì0'%Ÿ¸Ùìy’º¤1©*9–š") øP8Ÿ—QDúj²aGµ¼NÒ¤*0[wÖ×'g:°Œò$‹Œ³…Â+!`k(¯iyò53ˆ„ƒÑ:Ö7†ˆcloYwtMžúžRH•>F’p[Ri޳°sIªD–åïÓ~ûå[cþ)dÅÙÐMy>¢0û“ æ}¬Ù- uX,‰6Õš¡(Ÿìt¬*¦ aŠL>ê¬âH­¹ø¯dÿ g¦èŽÊI!ˆâ§eü^>€¥â¨RÓË™®„L¤iàd¤¾hØ0žÌg+²š§]š€}s$|Ø/·¬T~à _ææ8Ìr6Ç'í-ÂÌ7‘* o ÑK§ºvÓGѯ &fc’Ê5?1#ªØ º^—_áYôÑÔ)Íâ¶s“²wV1³ÈÇGÕ£†Pò1È"1\ÙTP×ý½æR'Ä!çɧ  N5sÿªÙ‡=ÜîPüC–÷<ÃûTT/Âü§CºYÓÜc€@ÅËÔB«ÜgÕ°ÄË¢5¤(¤ŠFUOÁ;!sΓt y×q„šÝóÂ{¡´,‡d-‘bIƒÚbä-¸ ¬èh|½ÃõŒÝPDNÓWþ7•ÏW¥T„ò ’¤*+8Zö§ ŠD‚¥p^acè}¤³*<:É—hTÌÆ¨5&iÎcc¾wo; ÕêDÛhÇU³ÌLª$Í/÷Ƈ'á-2k´_æÊ Ùúvöý¤ÅŸK8¡?²é`\J«öD7‰øvoy<†î<ý8‹ŒÛCÇ(mÅ#‚æË©J3o Œå'èÛ3XÄ= 0 ‰EÂ3åðH‰ ý ù2bxNЃ‹{pd #šdÞ—án¾tÜ¢æ¡,‡ÈAÓ1+ÑùÁê@ôKú('ì’Ñ]Ž“Ön¨æ\}¨™_¹2<ŒG.1~w7‡:®{-ý×Tó_^©šgr\ËÔœµ£Ñ=Å+µ¿†ÐPRb­¶^¾Â¨ù> endobj 76 0 obj << /Length1 1759 /Length2 2125 /Length3 0 /Length 3219 /Filter /FlateDecode >> stream xÚµUy\×¶"ˆQ\€‚Ú‚„„ËöÐHÂV@’Éb’™˜ VAŠ,Å)¸¡Ô¤ ˆˆPQ¨¢‚l "E\Å‚y“ ¯Õ÷úþ{¿ü&“{¾sÎýî9ß¹Á¯¤3Žl$rE`”@&šÛÞ4ˆò¨2‚¥|&›|!n„”d"Å܇Ç;K Å …ì²5Ê…DáÀ\ìpxÀ ‚! †³ð(€¡ 3J ‘cP± #R”J1‚¹|2ÁBœq”„Ïå¡ò‚<“<Ú‰x‚,)ðfžDðA"1#0F` âB€p&ø1¨¾ ÀÍ÷;?:Ĉ%fDˆÅˆä#gÓÏÍ pqôaRÈß póc0åßLÆøsÍ&†Ë÷Áåá4*Ó‘D§’Iò3d`+$‘Wæ?¸aÌ€¿¨a¡ "RlóPTlO"EFF¹R”ˆH¸D±PÁÉãKHD"°·BŠÂDÀl¬œ(šI oàÍga]äA®È (ÂJ‰avôßİB òœÂw@ AŸmÃ¥ŠXo:Ý|ë5³0GD#¤@˜Â†={Õ ApŽHä{Ð>A’o󉺂,DF~Ù1ŽFÿ­6Ÿ›…`R“¢Ò™ŒÀá !9{©¼g|Xa£9úx¸RL‚7¦=˜@C°êÀDT†*¼åù]¼ík;K€Œ=rRa¶3"a¬¥8yù\øXPDEúg `$Žù>ÌæÈ{ÁŽ“ü`þ–ÈÃåcfÂýeãB(`@[HÆâ‘äú‘›Ér3V˜¸1"8 P Åñ9öÂÅHÁ­€J" ¸˜¿Ÿ¯pd€Íg¡˜ô±ñÁ)²{À°›1cL>AEaL!bSe‚.…QâàH>ŠIÄøÿ3y_ìå!ú€"Èøkûe(â £þ{È®œ½±"Â/0¾Ô•/ƒØt>ÊâÍ”zÆî‚Ø|8Â\!„µIaò“œÓ6v?ñå7@ [Za²e `H*,g ¬0_0Ǻ!ç èN^~¦ÿ,'…?f!l>Ì(VÖ(‘€Q8sL#++ †Œ ’)Dˆ0‚b!€88ˆ'o´@ —€,ìæà N|.WÏ –Ew?ƒ(d[€$Ÿ|®²ùR±ŒR€Ÿ….w…nÍÿ:ÛÇ{P±f DðÙØ¿Àß\°óJø²`sLtdÌŽ}>ý ýlü_óò·h''DC XŠ5V K+KÀƆ÷Y(kæFRèëÁ§µü: H±p÷Öš›³+’OÆS‹ZJ”ñvÄ¡ÓZž»çtj©ÖÓq)x¬­/N¬LÈ5*F¼ÝíCã÷'ÂÇñ;– ?ôTí+½ý–½áÛ~0ž¯§NulÊ÷'úmÏ¥u$”Ôè›<óÌ/ :ny7÷âî‹+¿¦çÎvÕW&2(·¦5G臔\|pD9òh+ù—%á"Y‡†îe½Ž–Ë_¡ÓK~Lë;Wß +LÖjòT_½¢ü~™WɘCqã³¥nÖoîkH§2ï›öžâ5xÑ#{¿q)õ›¸Ö­íjSDK–|‘§7qÝ"V(ðîµ´~5þÜ@µ©Ÿó}oIPá·JVçË}ÓõˇÕÌî~ؼ惪Ù;ƒ…éIï½X<Óè¸7›´6O­ÿ!o§µß‡g;.Y—2ñãÝoεèW†[•ç(¯™«Ó'Ž_²Ùq¿Jè%è,™\ý2À½oïÝôw'ì–,qÌ^áXŸÈʸr¥Çȶ"Tãæf« @¿ïBœzãÔ FжµDRXeo+¹;Xû€4æYTãÊá iÍÆ' ÷ÕG¶Æ?·†ªÆÜì6Ê“¢ƒœÖ:Jæ–o ~áÞ u3Ô°{ãðTíF‹ÙrÚîõ @ÖØUšÉã0ÿRuÓoê¯âã^)E3†áìŸNÕÛ¿[͹Ø3ß*`âíÍ)èð„…Û곩ús–‡ªM:†9ôq¦NǦve°†–µ<~ì@mhÔõg üºŸ`|~ç‘k6¡s/\iowzð(ÛÖa\ȉ©Øp01Э|øÒÆeJ!ƒ´KëÖßhQ»w7£v纮޲ëOœÜ·’”»®S5ÃMÖ‹ìöW¦ºÞi?ãÞÞoÉÔdŒÏ[Eœõë@´ R¹ÐvsW§:ad/³QªÙE§¹4­u®ûèEk{r|üЮJ­\]¼Z6ž+Iy· ¾úâdÚI;¥ÓÔSO¯†wZ§Í—k?H=h0?=JGõ°ø4[d­¡3½§g2LÅA—oô‹ q{K_÷ð­´s&› }¢+UÞS«¹9Þs¹ÞºüÌÁBJZ|•+'Q»ÙÆ‹“bÕ{V“Þ Ç oá•[XN2î'NŠV-–9žUtšf–3jß’žÍhg¼ôŠ´qÛ2«3wÝÖª»jFÖíÚùf à$É*4ÓÙmµ+¯=¸å}rýÊ65ÅV·5ÞDy–ê€,u¯E?5⪻®Óç¡C?¸©o=bk*Úüè%\V+­Øä•óÛ;ѯ!:Î2ý ºwé¶ÍœcÎZ†-¸jý)åÃî±Q-;öœî/qXûÓèË#aÓK ¥¥IžÎC.h¼}œhËûC„oLÉÄ=þͬâÄXkBJæ±gÊZ+úG';üW7?77xùMšÉžòËÚ],+“ÆØ2ûø„ª}¨Öñ]ƒ.+ÀÉ ¡§ÓÉ*™çnÌÖä"PÊ‹ ¾ªÙ¢Û¬±·©‚]ïÝÊçXä÷îÜÑÖ­b>PL8Oèè³7™˜{2lŸyF­Ú žvãþ†åd¤w°~À è ™ûz5S'ÎY|ï‚™)åûùkßÙ„­©ý]iäqM»q¸^þƒ©'»«3<Æ£5žµqÊ ¢XOt«ßý\aôFá;3;ÎáACﺯ{U@ñÑÊ Ž¯w£ ñŸ/H'}ÿHÛ#+i­¾0!ú½ngèõ­?§\‘õ4‡Ö¦¡¿Ú%¿í>sk¥§`:º9fïÈ˯®ziŒõ,êH·òkØÇ”Öfñülð§T³n\o~=:>ïìO†¢§Š_ÁÕïß¾T)dlmÊÜ«}ng_UrJfž×‰­}1Ãù·ç7{jqÔ]±d®L)·èDCt;+~òÚ¾‡;¢UÞ§Ïûª/+ß\‘Ô_[+ù¯9ýÌÙÃÅ=Zm`ê½nßU{ÓG„mü´TýÒ¶ËÔÚç!¾{—ZÍÉѼ™k­;/J3fó|àÂÊ®ßIüŸ½=•Ö¶¶»+ƒ²›Àéu¢äóšÇ=óâÞÝJ\÷tÛĹº“‡rÿDí/j%t› uYøÛÛO ¤íNúõ^žƒm‰T¿§} )×Ì'݃WÛåÄêÙ ‹«ž­7e¡E©ò<5ÇœOeØÅ’=j 1zÕÚÜŠŽ‚ùZçŒrJëÚ¾ºÛ1ª÷¾yÄŸ1<rÈó¹¹¶ÑR³‚"HÂY*mŸ[I·~r(?#9<]¯°Ýr†ŠZðížÁŒ‹#¯])n¿]ó½h» npä§¾ÃT)º:zLçOÁÝÛJj ûÇ\ñCÍ©ªT—½h]~-}âÿ­§ÉÅyâéùBßCŠ™½ÎqYÛóJæpšä×Ìë+øO‚lo endstream endobj 77 0 obj << /Type /FontDescriptor /FontName /PIWBKU+LMMathExtension10-Regular /Flags 4 /FontBBox [-24 -2960 1454 772] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/braceleftBigg/bracerightBigg/integraldisplay) /FontFile 76 0 R >> endobj 78 0 obj << /Length1 2214 /Length2 8624 /Length3 0 /Length 9966 /Filter /FlateDecode >> stream xÚµuuX”ëö6-‚t3RÒÝ Hw7R 0Ä 1tH)Ý Ò%ŠÒ%)Ò ÒÒ‚À7¸ÏÙº÷õ;~×\3ïÜ+ïg­õ¬—þ‰º›„%Ô$ …ÀظØ9…Ê**@˜ h¶àâdÓY»Ú\ìÜœœôôRÎ …Ha a?Ì r„ÌAθ‰=@9Ãõ–sO€ Ôötq¿€:ÔÆft«Ak0Äw‘‚:z:ƒ­m`÷1xØØî#Ý{K²vPw;0±(²«°T¡îp!À…ÌA6@{+Ô   ÒèhÉhjä4ÕtÔµ˜Øáµ\¡Îÿá"¥¥­#Ç –PÕ–€tYr:ZÚ÷¿Ú œ¿5+@U®¿Ï7¼wW‘Ñ–Ð6P—áâ¸?€ àrvß§ý783ÀojpW+g¨Ã¯FÌQ˜ƒÃÝÝÝÚÕÆu¶fw´ÿÅOÛìp‡:ÛàOg=èWa\!–ðrÂl@¸ï@l‚¸€îd¡)ॄ;Áå°¿‰Á »iÿ—9ÀúG Ë/_euue€ @ˆÜ„¹ºÌ~Éà_åÓ¿‚R®ÎÎ÷9Tþ«rþ;Í©KBá'3²÷öºÿ»c@ˆ«‹×µùç±- ° Ì寈 €ØtÏÞå¾g`È/™Š„ª‚¬Œ–6›2|ö l*Pxu ì0Ø/ëûxÒÊÂ~!^ü{?§2K)¨ƒœµ Æ}ù¤Áð:Á ÎžÿcÀí Pwˆ÷ÿÒZ!–V÷]°tuäЀ\A Òÿñ‹0~ˬA0'äyXØpܧþ59÷b®{1¼$¾ÞŽPG€ÐÞä ¶ÁÞ.@7æì òõþSñO„Á%°[ÀàC¿8¿¢+@¬ ¡¿Äp&ÿUýg¹Ùá÷‰ ~i-¡{O€%È ƒC ƒãÿŸ;÷¯\²®ööª@ãÿ]Ø[Àöžÿ‡ý¿ìô@÷¼U¡Î@ûéÀ.²`¥:faóW‘ÿ’ÿJbm°qñ²sòðsÿ¥Ñ¹¿mö𱆯&ðýr»×óÿKŸX ;ÈÅÀËùK‚Wæ_ìáí¸çàוÐUÑcùÃôËXbµC¬Ü|ü ³3Ѓ>!Ü||o.øà[‚<~€ƒ…Á]Ž®0_€Ôã¾Íü|‰{Ñ_ˆÀ!ù7àpÈþFÜp>#A¸Ný7âphüFpKÍ߈À¡õñ8´ÿFBào$à0ÿ„#^¸Ÿü"þ¶æâ„S°ürsÁ9X‚ìaZÀE ? œ‰õpkàŸ!áä°¾1ÁÓo/xMlÿ€pÊvs¶:˜[þ×þ¾Á¿}àGqøÃçºþ><#È ýã0Üp&Žà߸àmrùC ¯† Øúê¼pZ.ö@›?|àqa@8S·? œ„ûoÈ 'íñ„ç÷úÿ9šê÷›û×"âü=«ÿy¥ýÂZ0g¨Hl ¡ÿaŸ_g°Ç Nøá‚ËáŸÿþ3þGúß ðoII¨‡77€›>Üœ¼‚>NßxZüõnùµ¿àWê¿ø~±@ ÆìÔB$Ø6åÃë?™ü‘RTz!öýr"1}Å8”Ùô‘fréœUxA@½CTY^ØØ/)R¤OLh»ØX1|j©ñ| è§âGþHFb [—]'0CeÆ¿´•†iG1;Ï ˜w,£1®‘  3°+%ÔÜö#Š{èîñq2Qiã×\T÷ ®Îöx3¸d-ä3#-ˆ°»1‘ÀN‰Yæq³¼×DŠhŽmøëˆ‘…â?#×38·‘"mŒbî:E±T9±¥+mcBûÏ ØD1ð(«ÙW[Õ#O:ÐS­Hýõ"¤’¯¹Å©w»£rûþ“lIv\ ˜œ½µŽ"ÿsPÉpF†;dÆ®÷iÇó¢ÚŽs:!!Ûo})“²=—ti©Co3ryYPwòEדË&§/ì(šÇ¹r"&Š£ e„×jʬ,‡[âRÙíq +IF‹™w8cû26'%òpÅ¥øž+åâ£FÓÕ¦¬rQÞ{¸ÕS£™ª´|·@LPÖ0¤dPopÏ…DÅ»ÚzÞ¥›²jT7ÍÆlêŸ@J²oFûl=‘&zôY_™Õ«BZ‰f¤2€e)ÂõªÝÍSQYü§×¥l¡Få<OIÂü÷O±Æ+¨˜–òåÀeý ‹áUážÊûNšú6„/ŸúÁ´î+ÍTêi‚ ¥ˆ“XM)Ÿ2–9±UÇ“è‚Bß]U$‹†=ÈdÄ™á }nSxÈ>•PKþNÍÊ\º¢œƒôAuÉÛÇEcS¯iåä+â4î,WF•…MšP¦}»’L‚‰bÒ{vÙéûºÝ—wwõƒP±qêÂ#R¤|Þ¤- ¡ï<Üš-÷Å~•:Òš÷sBÇ›Ì{0¼Ð;Rý‘t÷º;ãè¹"ÿ¼âƒ7?˜oÇ R¯ÌG×äX¿-¨VR™d>®—¿Ûß-¯ÀêMh*X{i½tâ§à’:‰šjU^@sPõ´e`®YOߪ"MMá~†Ø‹ø‰kºâ'G¨J˜õ[µ:‡­ž´@&ö¡‘SÙV¨tüù)ášZøx”þ9³Û‡ÁKmj7f¸qgQk#kŒC-I¤Úά\¸T‚{wÞ6¥˜’ŽnTÓ® Îu9¬-y½Ý ÒÎUÀ]£Oötòc<Õ“ÔKø¦¸×ìÍŒáâû ?f“!<‰Gè°=\+ºFï §Ï|àZeÜLI˜&WƒóJõ] n »ÿtbºA·»‘/’Sª9f1m£öИ´)¦e(±÷ö€œ¿-Ór¹ *S:dþýóùgVi#ˈ}Ç×\ÂWÝIBÎÍeeh„¾m5áÂ0h>.{?6ß;›|쑺þ»&„#¹HÔ4Ç®ahLôO\šfBˆc?ip^;fWÍ,×úÔ‰÷oø+õ÷‹õݼS¢IìÇCU‰ˆonsž©b%Žòø¨ÐuËÆ*Š,è¾ÅÄ®äü¬×œãê:”!°i Ü^€V‹¥]ép-ÃM+:lü0Æ×ßäíè‘sâŽHu oîM[™œƒÁ–¢9¤Å–‘™,D3Y™üü僔ޑ¥Lqýñqþ÷èå(h-4HñPïéüÁQéh1,Yãò: êÔ®4¢OÈ,; öƒ?ùÅ<š q6 Í–KgãMËiXM-Ü-~œÅ%ò4%×£4! ì‚äU¬R €W0NI}g8Ž<Ëð|2ãàÎðÕ¬9#Šê¼›Ä@ûkÊQ]eeÒoܧIV}Êg¼,ré²-è܉ÓéÑ\@?S]§v׭·ZñùE_že ,27Äš>~f , wìâ/Qæ,—W‹ÇÈ #QÉ—j8ì ˜sYà©ÿ4¯u¡uÅérã"TõUü÷+§_ÖèÆš±Ã³‡bè5Dykz_–.zEOá›bRcEg·ŠwñÒŽ™¨2Te½ðüöâÄ®±OƒCóå~lŽÛ*!.yñhÒY³qežîP¤—™$ÿN"¥¡ÏÃÂb1«H&~àœŽutAí|§ù¶ t”T‡,‚éËmf6Y«^^©Cù£kîD Íj"ZÒ`bÂ^•"Í ea°y=Pk¤Úìʳ7Ëíª÷’vÿ“Âs$Æ6&Dyäx“ŸÇ)w¸jpF«SªôòF'¾AeWK?3Åàxåv+Øý¤Gv£Z‘=ë¸6<@°¶%{x&1lb-êsŸ€ò •ÃdF· :É~ÁçÏþAsšÃ2×S0H2"¼^é  ²¿·‚?7ë$ë:rÄ]]Ω()Ò9ŠöNû³2&y'¶lÁY~»^ºî#š6r˜B§?S1OIVÿæQH8åö0w‰,F<S"-ó t_ƒ{‹’ç¡ðäír Žað(lW/†v™ü£xgnt £ìbü$/‰ØuSd_Âì– †L«QOQ>C¯D¼N¾©â‘Pïh™,O/ì”u8ÕwŒK;RB!J5ö“Ö©åîuêÌò„ÞVÊ"ž¼wI×ÁÇ«:1¬ì<Ç7ûâä‰ùH¡µÀ&Pê"ÑÞ 9£„o¶*Õx=Ê+¹"?_¾=‹ÁÄz˜ÝD PŠo®Òˆ/¶m’I&–ˆ-_#CƒD^¾8(0ãt#H NîGXR Á¤–èÛñ§Çogñ}3QØé‘–—›í=,ølÆ0L®dÙG¸OÏ=ó&ð³§í{±5Þ±Ôý¦;G°6<õYž<:;aw‚ýõ\µÞy‹÷ÑŦæJSˆ{‚7_îámÇ€ûã&Ì!#JugÖ×$sbäu¼ýÉ–7YýñBò­ƒ¯o\.i2ÄS·Ãǵ¼ìԦɅ¨9°ãB{…úÓù?~!-µhÒN 9¡Ïô‚½–ŸÆi±jCâä3>Þ‘‹ÁQý^Ò*OR]J×eå2ÀׄÎ-ß}@-†–!öuÏ¥q-ËÇÏôǺӆö;@E:zâlŒ@¸›l$KÀµ¶ê·ãG•¸ecª´Ì†zW܈Y%/ñeþÊÌéÚ8Æ \~n–¿âíéòÜ-n¾2dç÷õx4òV´¡ÝZ\Ýý «"¨„éŠ"¬ÜæJÅDQðyb.~6Ó›|K䥽¹ë*/º[8‚G¾R «‡ô_èßD:¦†(jWE¶‰ =‹ ªñŸö<|-1œwèýôùË]u^šË4¼ShóÕÒ­ùÉÏ/qêÑÈ(ƒ'˜w¯Ç.ß2ü`7—Y,~ÕcHAÎ#Ô7cdœ‡ÑŒŸŒLÒ #Ÿ»Fžô·ÉU°^'D`ø¥ Læ¶\º¾M&&ÿ©ïŽñt1„Û9®?[I»•[géº_ËØÊíõo<ùå·o6-Â){Ô™yX~;ªÝ%öI ï¼v+‘'L$^‘ú¬ÇåÊÄ6M"-²`·‘D#]tˆl˜”§ÁFÈÓë åÏÏÄgK;Š7ßd“*ñ7E(¤Ö“\ì¹×Ÿují“ëvçÊÒ[W“?wv䌧›Òê}«p»=÷’™z¯ûí2{}R—9áá¬Y‚õ&ÍUêÐ«Š€è–¯Ø/_8z?ÅðíðùšÜ !QEÓÒ$•vz+o¤ž¥Œ#ÉmŒÔÚ œHêDw‹g•Ññ‡[̱OÏîìz¼¿Ôýs5Ñ)ƒœ#ÊÒú<·ª—BÅ÷ƒÐ¨gUÒp“o¥ý¾JªÈB¸¼¨bþ ËÞí~zM”}¬€+—Ø E”äÄ­¡NÜè¹!)çVĦ¤{iˆ@tV¾ÖìÈ=F—ᮜhÙîã~ȳ«¶RÊs H °Î ëñÚ›ØIéÚ|úÍÏ.u1¼«'^ï e§Ö¡×%:IÚa©'éýwqoÊjèÁWž‹µÙÌÎï’ Y©odJ™CĈ}5ï ÎÙêèê…“qiY Œp— µ›œÏ}bDp0 zä%ó£×‰ÇÓ­À¨á»!bCÜM ðrÊBtMA.çØb“ 9©XøzÑ[Í ûâðñ³vÝ•¶×` ±àÙÄ1ºŽ[À«½¨(R^Gd'Ùt…æFXøM¿*ÅБåñ…s*ƒ¹^÷hhcUƒË”qåÛH–²“‚uv¡`3Æ~y—kä-·îX’«Ü¼ùæ2 ›º|€ß!OAÚÍŒ†'-ÙOçh)1ì¬'¼Ç×LŸ2ßÙ]Yã%‘°92,~rÄ’7§+øÐIyÐ@Q2pæ‰+h{h^jj¡ÔÕNBNÂTña¯‡ûýíë5IK|a·>ò(Vy‹œâ 5í’ù”+&ýèqÀ¿  ÿAÀ(NÁ‹ÏŒ’¬<œTŸL_~.úfhç­|Øû:Ó½óyc1n_ÏóoSŽëOôüñ¨ˆ]€ŽæêZM¬˜›s$£Ÿ¥tH>q(‰‹ŽQ;ÌE5­Aõ >—®œ¿Ön¤¨}Í{1«QauPŒ™Iê§zÚé'¬B’ëýL*&· É¢=Ó©$Pº¹Û–Æ[¢“rcj1%sc·™"É´b܉¦ñ ›†Þâ}U\Ûr]@± ¶-\}¶zùã#µsê˜ö[”“Þf‡»!õ(=¾úøÜó7Lšw/\:¾ëAG/ƨÜSnQÑbèbC<¶i´¦Älùö>ÐFŽFŽÍé+Ë „0n—µGêFN³Jg4°‘q²`yX]E\È›ZÖ/crXS\ËdNr±­\£ÆØ†^Ž`ž§*…§§hºý;g•r+,@‘æü.)a`·Ãåú@krdk¥ìUôÍ>Îo~’NÎz_[ïŒ"¹UÿtäEÌãÕ!ªòíüScÜòìT¾$ÖK°yúÙ£æ ÂXÑ÷6V§ïñAüÏЄLèªkëf”^çÄÉ!:zawú¡ÕHÝHb•Šìw=æaÈF¤RêeEÁNÐO¶¯b™Sµ;F"¿û¢õ‹™Å’UœMºÏ½lãjÖæ£M`AÙÇKw¦'¸g6á÷W<¢ùqšåùÔKŽøMá;œ•sU6?àUù—Ca¹/D qß;:öÛQ§¸)ö•&Þ¾ ~c$Îñ¶dæ–¯ÎÎ<ì@G,2;éªPTÎþZ‰á²aØ5mêÔ¾üÅ*Ûc5œú" †·Ð«c*Ü£¤š×]Ãð|í …Ü7vð[8qÙ¾ï uHø9ûLª›Q:JþG}h—ʳ) O'ÎOþýº4”›ƒè>?˜êÂÂÚ=ÈlÔ_QX$ÀÈØsç´½_è´R ·ø7û.H‹?J3Öѽ&æÎI&aëÆ¬g*ð×BwI{ü†LÚá‚Qž«O1žXZÉø9xÝh”(2å:©Ø¥=¤·Âƒ`Ç8Âz' lî%ƉËYÙHËE´\NV§eE†zNç/­®“ j8µ~¨¤‡pì Ô I«Ê‹Ó*—ßsÏcþð·Ë¯Š“Hâ?í”yì ¤®–?ƒìk†yÒæáHúu'iÓ#÷(¨WT5ÝÇ•vÙm•Æfúh°À)}7gw©ð9†©,‘óRùMÆÏz„Öâ;¹OÉŠŠJýº,ɶÈ#—«Þ\HIû«ÑQé&Y‚Y Ëß´:zc³G}ÇÐâÛpÏúÚ6ðå›—"ÂJÛF2½“xOÿu°ìhp¤Ž¹ÇÆNyjŸ°rƒgh½T“ÚsE~[iýÌOá%YpÏÐáÓ7ôòMÇ߀S 4c‡Nžþo‡Êíãi”¶æusUzÙp?°²6Îlòzåݤ•h?JŒÃʲÊitñêSIÇ?*šÍæ=sNV67³0ÓÉb©ö‹è<Û7™ç[A.^!k xñ­„Æ1ðàsI§Ä2³1ýÄc”~ð Ô±ÕMoÍZ\¡Kˆá¡hžé›ßwoÄŒëDo-eØè[ް‡ÌgmxzÍ}$^qgØ”¤_ŸŸš©òñ'±Il´ [È} 4þ˜ßÉUZºúN˜‘rIdà þ=Ñ›)Yï,ñ—Á›GÃÊOŽ?.\Í3 ÕÈsÁº]t™œgѺE|¨Úv’ž[ °6”ñböÇÏ}|oÙhЩ J4'î ²«ó*Wôz„þ€"“™£Å监¤hrwïµÍ wɧDKðÐç+g™¡–ïÁ¡”ñ¦íŒiý±î>àŽ Ú3öWÛ£7L|EýÓôS?ß5'žP\ÚÅl]"ó1‹gÆÎš!È9¹µá÷z/ »Õž›r)>4˜Ð˜ Ô¨¾]¸‘gÿðyt¹U\¶œ“©»± Š¿]ÏÙ¶©±ôv~"#¥­È?à.Uql÷¹3F%t4pÅËeJ²è7ËÄUì2šÏŒäK xÿ¨7í†æÃÄ”Nn}¬ª4˜yX˜5†—Ð&±›Ð|÷1¿P8’’YMšÿtF¡šÖK·üílF¡ç/c\ã[ôƒ`Cæ'Z‰Ÿy¿ ™èJŒOÂrEIÉ’/¿.§Ð.Âgáþø>*aî $;ÅxÅyzA¡‚D¶m–éÄàµu¨6j£ûÃàPÒÄOK\ˆÃþ ‹ÉS}á;ÿ“ʃìv<1dêÇs ØK[T;Wô<æúݪñ!Úy5z­ñð5ö Š ãÏœ¢þîÓK‰£OÜD™éÑ¡9ŸO3v(½XôsË·‡erMŸ>¥]¶Ç<5 é[LÑâTÏ:à ±äie¥GZ:€·®¶ø>|ŽÚ¡êÒª%¼,ò¦‹¬-3áóÇ©õÞ‹F5®pTH•Ì‹Øìª;oø|Çܺ¼2²ÁÅ[¯á”fȘÀRº£r®ùÊf96‚€¶5[6judŒÇ­À6²öªàh+o÷{<—ët—«Y­¼¸Ê@ãHØÂÙzJ\¾±ªÁ–¤Áì»í%&sa§ t¼Í1ä­^Åêlê ´Q‘Y#®’Ô›¥*%$v±'-ñà¾3¹¯S[]]/iDYðQ> u5°Éª{¬[Xkð‰Ÿ•©g‰L Ʋ2¹Õn°fñ¯Ö j4‡²éú*¯~ÇKEZJüLB¸ÀˆJ>ÿ-÷YpŽ•õ$ílSéePŠÊw©¤öާv™LÈ‘¯¾ªÞ&ØYâKˌ׻„0Ùy´ ›:²åO²ƒTó)–ñ•û/Nz6ÏŽGÚµYf¥Èïgtm>Ó¤   e›3™¿T¾ l„°RB}*Æö½f±äÉ‹ ¾Ž”ÔPÿ¼!&ò%–x×R“E• ð¹. ¦>Äózb³¿râ§÷UtÊ é3œá­á]o#]ˆ¤éˆÑFsÔÛSÞT"gHÁõ@NÉM๦ùÃvºÐ;±±ñéðX»LJS§Ò0Mó3ÖÉ)ÅñÍØ¶/8&¦¬¼¸lR»¦`€îêçãh–©ràÜ”º´ÒѵPyŠ`¸iµ#ÕR ®ŠqÉk‚õW ÅWÄ‘šaÒ´K/NBôVÐß;ŸžE÷Ù È.O¤`,Y[–n™{dõ þ–ÚN ÛX]R’ü·¡rT3MyøÚF2ÌJ·šþ“AêWW¢ÄœW '®˜Ã]Aõ#ÛC3ç)Cýc)$Q´.îkc×,'“ïr­‘$TQ¶p ø…x$SürÄlCŒ‹¢5ʲ_ù¼ÕÔ RJ¬±]I®Àœ¸TnY9>§Vçâ"GlKÊ!RÄc"CÐH|ùJoǸ÷ ƒz~üÆ^ÍxEèÙË8ðTò­kììæ³R¯˜›‹3ÙñxÍ'æ…ha/-ãÏãg×,Ÿ· Ij•Ãd§äu‡B»_ì»MI~·ûA”γ¥±ôí®Ë¿Ž½PG¡bñÂPd Ÿ`èà;/NªæËïRª¦ïy©ÈgÓfPF¿ØH«¨žØ*¡NïÔ„’¹YæƒI{fŸ?2ê ð"D—ò£ÞR§q¯wËa*(>jfz¬ÞɆ>%;>X’äõ]J ÇÎ )!ýCç³®Uß—9ÇÈóO`Ožßü,J¹Iðd%ïNœ‰¡£~¯±’·Ò&_¥Ù,Ÿã_£gŠœ-˯l ß›N;šê€¡M´çë]–°DyÆ=.}y™ŒôB½žl–¥‡@,Õ]f&…%÷'õÀùèšqKÚ â,¾)è!»“ç ³üÚD–ió¦þÓOŸ¹®hîŒXs(v÷Ž‹®6÷?E•º"{zúøG^ì}ó^ÓÀiAð( µ4RߪWópÑüõBè. - ¡£á½ÖO=cZoóKu·’mòôÕ@J©ìL[>ÜJ–2Ôu2癉aÎïU·=r1•­õ´Òè¬-> §ïÎÑnq´ }«üÆ QjIyZ‰Ëg4ËlpHê&Ä’Côž‘¬<¨<¯2DüH¹¼û•~1ùmaé¹êCß奼¦.n¥ËjK²a%kÆRĤýU´“¶Gõú[W»«r6ú+±ñ‘7ȳޅne—U|v¡–Âw¨³Š+2–¤|â˜çïÕ›·ÐhcWçõKsÆ:œyx›¤ú˜¯r5Ý(¯¸ÝÈÙÙ†f}Æyvį6,/o$ÙÁòî\?“©WÐûÒS5£bxL«Ç4m7¼ÝPWYþ™óÞØœ¬É %ØôDÜ¥Qe^}+©¯)P”é¼Ï @bíÉî #4G$»ú™Ãšµ{TÁé‘n÷$öx˥ͥœšN!ês ÆS:G×ÎʘóÜ×GÓ„¤0é4ƒ§úÆJ æ\ë•Ú8¹¼øû¢iØ¥M¤¼/#Ù´—*ºSm®ôä(b\%B±ºÊcƒ·w€°0É.µ …Á…"qh é=V))ûŽ¥Vù—5wSôaBUÙ»è¾,[c’cp\:/Í¿b¬ù™’ÓC¶å%‚Êäq{ebô¬õh…>³$!=Ý-<‘© ƒ1 ó5›ã^ìÌââÉ‹¯G,‚:o3¹Ã½‡ÚÓÎ'}é¾®;±ñˆ¸ycçu¹™Åµ™zg¿ÜÇ`ûØ6ðÐC„mË—Z½"MØgU|è-!Ðc‡M½äö˜8ÁMñ]KÐrpÝ7“ÖôeÛ蘙 ‰!û° ò·¹½‘4î-ÑÔߥzøš~ÑèkêµÕÄiX²ûVJÿè­ºå endstream endobj 79 0 obj << /Type /FontDescriptor /FontName /HVAVMW+LMMathItalic10-Regular /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 60 /XHeight 431 /CharSet (/A/B/F/H/P/Q/R/S/T/a/b/c/comma/d/delta/e/g/gamma/greater/j/k/lambda/less/m/mu/period/pi/s/sigma/slash/t/v/w/x/z) /FontFile 78 0 R >> endobj 80 0 obj << /Length1 1882 /Length2 4971 /Length3 0 /Length 6146 /Filter /FlateDecode >> stream xÚµUy<”ëßNBHID$Od_Ǿd7öeìK’ažY3Ì c‰¢¢"KYCÈvȾ¯ÙŠì»B![‹%‰DÒ;ô;çtÎû{ÿ|?óyæ™ë»ß×}Ý÷ðŸ‡YŠk"ð. .G‡HH)Æ&&pÚ€Çb\Å-@”7N ÒRR üüÚNÂàq:p¨ @äIhÀô$.  „(1ðz $PüÀÅ0Ip+?OÁ O$‰»À‰7ˆCap 0%EïéGÀ Ð¤ý2ââû•ö³µ$C¸«;žLtÇp0”0‘LñdŠáq€ ˆ†c‘ Xv€µ%ÔÂг0³†Y KP [z{zâ ÿ™EÛÒÊZO ÐÑ4µ‚  gmiµÿmâ(ó£ÄS+Š¿%p?Ýj¥ieƒB$÷×@@Äì·ý×l”É€¿G£¤" xƒ€šDòT–”$“É(o"IO@Ixbæ³BcˆOp(oˆˆñÆ!(t’Ðà¯û›c\AÜOÒÅÿrzP¨¤$Q줿£AÚ¯‰ýAðmÐpâA®1 f xÀ18ˆƒã\)$8É›8Ø(ˆü5 h{û=LþtþjóçèZxÊʱpò¿w Žó&úÿÆÍ?—íŠÇ1DñWE@b°àþôÄý=Ãàl&š¦ºPK+qcŠöpâ&x ;8 ’/é z¿ž¦Ž±2 ''@(ϾN¡8„6ÞÃ25‘aŸ> …'žà'ùßõíŽÃ“qÿ‡‰Á!û{€ðö”´Æa¼¼Aÿ¤PL ÛP @/ôuEKî7>Ð;²o¦à‰÷p, Ä AÊ‹!€÷Á øÝñOÄQWEò”cÃpP݇ÄJ¿Ì”IþtýG BÒ”Ó$L9²<ë @$ƒ¤)žD‘†ÐÿωûW/]o,Öî ýW^ÿ ÷À`ýþwø¿ÂlÁý©…Lñ8ö_> Qã "`’+úÅ¿ì¿*iâPX‡ÈJHÉÈKÿòXïŸ4,EÒ”k ³±Qüû<ÿÃGQ««;$ùHáå_ÃS6ct@ª­­oì úß•t Źâ ¦ˆN Àý¤(ò–“ Í#@ßý’8<‰’xz“$žÀ°¿Ç @Roßô É’Æ!EŠÏü/¤¤HÂÿFŠ€¤Ë_"%Hb~ƒ”:n¿AJªûoP ôøB¤IÜoRŠø”¥¤±p"ú·JqÒoRü7”¦Tó=€ÿä¶Ýœ©¿IþÏ=|€-I¼;h‹APþ…~ ¡OÀø^’¢ˆB±S>þºüüŸÛß²µ´ð¾âÒ²€¸´e[öת 'øL×_âÁ±£háO¼ è º2Œá]Unº%T…æA3òiø•$– N«ÙÆ8ÐÀÅ¡“>Ë ªg×\OÈÂë+_Š ÆåØñßdÃîMÕÆöo Ì5æàA&A\Ç¡šÝi6Ö!É&¯®ç?åþ`˜öØ>Wv(¹.¦î`ÝýQ[©¡iûžtßÏ“ëñ¼Žùu¯3hÈÙ#jV–Å÷3g#׫F*ÒÏmÖ¨x«æ¸È°óãÐÓ݆´ž-M§Þ8¡YÔSwÙŽžñÒEÑ+7œ+™ Í“˜¼í\v È|Û©ì ;fX$ªd¢ý†öI:÷ц^™º¼m©·¹¸a±Þ“±*mïÎü”ž¼#“u'sZÔPVgÎè¯OÁíìõf">{'Œ¾å›¹q”–\ϽD7ëuy}.þ©ÿ ‹ŠãÈ:’JÝ1b³À)غ|Ij]"Y:ôCë?±~EAM7÷Gã‘ Ãs§îgÝ- é´LvKYÚÐ\ &;Í÷°@Ô!{^L#ÂFg¬§E·þˆ<×ÊýXĵÉõ}JŒZó¹· ´TcßùR7SÅV}P=FÅHÆ _嶃]£4Þ÷¬];¿Y¹§âxò2ó¡ãF"[¥Ï•ä–H¬ZÜí¿‰'Ü0ïf\köx/ß?ª5vÏ<„6ÑkÝö YæÛÇF"ÏvÉ\!âcoýÒ,þv'JªÂ‘¥u?èänBEˆÜÂÀTAGû¡‚s«Kæ9ª‰ŒlTr¦}.orŽèÎ*. ºöæ:šiÆ£O/O•n½Ì¾äÐ÷¸lÉÈ7‰˜Ø1®`K¿ÞÆçÖCÔÝäð¡Ëxtë…šnäËN[Õ•¶Aö'õ=™ìꜴk^ö]ÈÀøÊ5c'ëÝÒYÖp£{x££èº8xr2ÛÚd®àMïG_ÔkÒÈçSp¸„1b€{æz§TÜ¢¢ÔÀ\>;ê «ÊÇÖ ›ók¾h:ói­|XïšêMŽØ+-¢|ª DÿÐ/³hZžCtâIä²…4ònÞ<¿ Yã…·ânÂF×ËÌ—åZ3øÔNï8Td«ë0IS~õ}ì©ÝnrÞnýæCuG9~Ï-%ÆÜì!Öoò›ø†+7o\ªÉ™¬m·eË»òb¨Íº*®S<Ä«âÝß$BteT'„'ƒ'¬6Lú-·‚3UFÓn…§“‡>õ· ä³+}}ª(a%zk°H0£ÛºuSv¶R·ÎRtûæ±|§í 4,W‚Tœq…­=Z·°´¼ªí~ñ+/|| lì'œÕÌí‘y×ÝÐLXØHf¦gðK‹´Xµ bŠ@@„UyÆîy]¾«Ü'™ ™OЏÀ×2ñö©ã)Ô…¦GõÐÌÓêEÉñZôºÞ†xÒ…GiNÕVÓ;E'ÎȧÓÊCK6îÄ;$Õ£Û„,9^?sf]å¶bÇ—Õ%çkC±U6+"çña“–Ú.…†Nû{{Ûó¦§i’Ð ¹#|™ñôC´®™Zé­YtðGðÅ BÏ÷OÚWgKã&ø³ñ…6œ“R7í÷K’³[àÜÍþ §®±wȘHg0¤¼ù°cÊÇ0OÕ½dåË'{ÁÈ'¨äY«¦ ~_Üm:D ”Œ+Ï42š4OYÑ¥SaN8§svÖsá`ÝnŒ7Ðàgð‡Úù³ƒóÙw‚U¸+è:–y?H²9úov.¹W¹¿¾¥¦(%9íIè]ªÚMu¤÷NÝV« úä|š¸ðÞþñkõ¨X§ÛÔHÞ¤¶½DÕÀ[Ú.zá'‘ê+Õ/¸;DŸ‹Xj3>îÉ¡óâƒÕËùoÞÚŠV½6«‘Õw¹ÓuHsÐWª> 2ìì $‹¯vžJ«ãÂ7³EŽSK£÷ÚÃ?uÖT8øçŒ”ô½A¸ö¼x¥ø¤1æø)»”Í¥ço€vI¿ùÜ5®oîÕ)\ ¨§Íêuªü^‘÷Þrõùªû|dzÚWÅ:'„Ç^*Dnñ3’*R ;ªùcü)¥åë|øÃ’àˆäXŽï´ÍUÇý í w>çÝw8u)ågLú!…ÌÖˆÉ?œå¦¢Pcß×îƒáQ¯±]\í1œ½6¬—z_¶P‹­^çù&£­)q¥tëÌäüf‚eYߎOšüÂaëLòFIæP‡øV?zsÆþ]-¯Û™Îû-éRo!ÑG’`q‘VáŒ{ƒ1¥ãgùHz/U¼4 ¤Ÿf½+yÒǧžUô=+ùÔõ z¯ø²k¢/NrŸ ±XdE[õµô¿mFšk-¿¬P­ÕªAc›J`%?.âðg½¹d§ÝqTæÈ3,,½-rè{ßJޏ?ÛÖ®õHFˆÀãBz5µRcèÍ{æª×gé_û8ÐÄh$]-àš®òðµ|Ý»Ì4{¥.öó1¡·É*Rƒù õ—ƒèY§ÙÖ²/^¥Ö©áK®ìäÆYÀÖ"£°‚aœ,W®d_¾Í½Ä"2V>”_ÎâxÂ)4¯r˜ÛÌéyÚǤ¨¾ÎöÅTÃ$'ò0¦ŠÿÃ3»³´. k¸¥äÞúHݵ¼úãJ×¥W‹ÜP{¥)ÃÞ[9¬q|{Ø+ÛÁå#I„Ö#†rÄ•ŸeòV%a> Zb?gfÓKä>Æ|À&9åÆk–_TÜêE‰-\_iéÀå¼âåá«n»¸O”¾¸Î½w"¬•ç¾±ö&ÅÌ{¢¥/‡4ŠT¨ C%²¤ßa( ¿±gª– µ¬êÒîã‰AÔŸ˜K«ïÚI¼ŠýŒhµ1„‰Iií†2‰Ø¾¬)Þå<¤hÿ%„1á7sˆ¯ùöí‚sEsŸ¥Ôé7ž-O¼§Þ µåÏ}\ ¬ Ÿ§V.k|Ò½gÏºŠªpU…§jíšÔuN¸}Š613‘ž°qV.ÉšÅÆlWÜœ…úHŽo JΨ¿Ò‚º:Å.ë{Κ>œ Ãc×y[){ü·óe”µ3#õÛ@c¶M›²/›èâDj¶AUÓÜù%òð<àë•úcéC…›ª{ -cÞI£µ‹-™g«ž¥¸#ßtŽÈ†NW]ÞÂ)TJP•« _¤Œ”>á²ô(¼ý|eÁ¯ŒãÒ?û숖qh¬sž‘}â}ú,’íÕÖ¤aÆ(ÜšŸ>¢3Q7°v©oѦè~ùцƒºþ×h/ÈÛ¯C•y=¯ Ó–½œÑ"Qm½2¿ Cn­MI-WrvZ÷l¨L®Ö:'Jw!ü9Q|wfr½ââ–õ8l¦èÅë6UƧŽt|y&­þ³¾ŠÎ¾ÖY¥$Ú°\'‰Lmf®]¯]U«ÆÔl6RöD®5)@»º[x &p¦‚k´‰ÞÔë.JƒN“ÔŸN`ÃÌñ:_‹Tuå|Aeþ| „alÒG„Râˆìj7Рɣ/ZŸ³m3XyíúQãTàmšú§ðû ±¦?¸ácǵVˆ[ m—ÃD½k¼ÎpÕsrõÛèi {hǨvXßî,Õ²÷Ó%8ÓŠ›~Aeö\O}QM_kËô#é?.§E´ÐJXxE‹¸û4’>0Ø= ~$“É:–Ö>²|ò´aV®<Úã¡$#Z’¡¶*røëgYžë'!œrbðBUÎ-ìîÊîüÌÞÏëDE¶œå;Û·œmú¼ÈK©}ªïBSE?3öÕ«.9¥XÕ)ê¥>iѳĸù÷OQŸÉëþ…ט†¥f>Ò<»XØ·ìâ í]Ÿ{æïñÚ¨QY5{Wa±W¼Úšï“Ès|_¥Ä‚rëÒ'{Ҹʣ =êQ1êÏ-“Ùþ¸11|7R̲n¤ ac–«ÿþó=g3ûÞÊù>¬>³­ÞmGÁXAz§S¬£uóöï HY1t]åÂH³üÖ¯#‹t©îµÖ]²ÊuÓ²ôíëjÎËŠ5¢Ñ¬D”iÄÓè@é—x=â­ž'Öô凲îÌ»‘ònÌzŒŽ>Ì‘üðý{x<5¨ÉdÕB2x­{´£>/‡ïȳ…ÈÚì6źtÕ7N°¾¸#ƒ$XPùÓDhøð„Aþ½û<±UAAÌLã÷‚›Ñ7ïöè¼a¨x}.’ÎTolŒD¨ö“r=¢è¶øI<êÅ™ôi%½ ˜kw«…à&l4¡FìçÞbË‹²c¶8fÓ„XNî°ôÊSÈD¾ã,ùÃc›¯û<ËËX—þã­Î;V>l¨¯Â#‘ž±—¼©%Œù†¿ô°åw_`}w{øä[KÑà=·?¢èèŸøÁq%ãJøÏh–ÛfÞ÷P©nIq3óÉM‰Waº/ƒ¾M¯¼}éÇãîüŸÇf ¡=ªÓO~§p8+ÓH®#éŒ9Aй{;z8HNÔbŠ«ú¨gnØ½ÛØtÄÄ5Èð 6vÉÇ»C®¸tœžlUÙ†„%ÛBu"oY_–;É¿¸mxÓ s-•&ò”jþ™³xïˆ&˜KðÅôÓé£LŒÁ—ÐlK»SyñÍ qsµMü|q«- úä[X‡ä‹eGs’7߯u4ùwK¹OUnoÞ«#GXF}åj¨_¹Üu ÝY×Qœå­:Ý2£‘=ÏN×ÛZlÈÔ¢^µíšì‡íÏ<6ý.§rÔ6-èv½)uä2B~ìºÝöèçg.ù(ï"±ß“Užn¦ÌÍóFó„Ýl_½©ŸÐÖëÀézÜi“À.&óºÄdå{RUÈVŸ_…|×›û|¾ ¢êûøýœñ~ç”4Üõ>>ÞædéäÞ]Ó[`ði~¶¶{æ2[C'®¾Ç7îåã.PjoñÑ:ž±Å¬æ‰(§és –i ;дfòkÅ{ °0éY‹‡i;xb³ìN8 +_¢’ rW.Bä@ý,Ï•,2íY¬[¿Am\ ¯ÉdvÇI9L¨úYj8Qk5Š?ÓÖêú»Ù5^é²@®q0³§”0Ô>½wzÌñîx¤LHSYË •Ý'H’ö…ºÍ1¶:ùá¼…·37ƒŽ-ù‡ñríl, sßÃa³âœÎ’¯šŽu=.ípê4ã:i®Â}YùûÕe• JðEØ£œ¹R滯ìõòŠ˜èåy“¸?¦^â%«((=’ó ´Ac ¯ °´qèŽkÐ6EsÛs´‚?lç·Ê.fé"ÚlfÛf˜³½¬áÔØ;òü–¥ï¦bžÑë‡ú9¿ñMï 6Äœ¯zP~ÍMÀ­ÜWúËÆ®ò¥±û/R+ìÓŠ«¾‚ëqˆ©vv_µà|Tº~ÓV8T¦å^Y®ˆ—ÌDà⑽D£íÿËÔÕ endstream endobj 81 0 obj << /Type /FontDescriptor /FontName /ECCHLZ+LMMathItalic8-Regular /Flags 4 /FontBBox [-24 -250 1110 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/G/L/Q/a/b/i/j/k/m/n/s/slash/t/w/x) /FontFile 80 0 R >> endobj 82 0 obj << /Length1 1704 /Length2 1910 /Length3 0 /Length 2962 /Filter /FlateDecode >> stream xÚµTyM"â>ðd"QÉȈ*„X(Y(d HV(xC „„s±Q2Î 1;JBY ‰"ÖÔ ¡¸@–3Cp0†L±*"yÁ\TšÃ‡“f’F;à+‹ŠDˆBy€s€+žŽHò€ ƒ@ˆËâ$0 _ÀôvZã œ×x2½¼MñXbo±@€¿p¡z3˜ÎfÀ‘âÁppfz3¤ÿ Æø›f—ÖÁ¥át'…±ÎˉDîÀfH(âIËþÄÍc¾QÃBƒ„HØT`ÂEQ-‹P<" Æ øSü\žD ÂP€½…šjŒæ`íD¹ÐtéÑw‚E4ˆ†LðVbAŽþÖTš“?íDôC.K4ëîååÂX<…`ÌÆQ*€) { Î’i‚ Š…Bi úW“ðe¾Rw@°ùñ£cX?Ÿ ‹¢¾ëÍÛf#°ˆ'BEÓ!ÄãCRö"é™ñà)ŒNñXMsòfàÜ1íÁ8:‚uÆ£‘è”·4ÅÑÝXÙXöHuês¨HXÆZ¤$mŸ#ëŠ%„_©;F"àè_š‚x0'HÚŽX@`¼p1´ÚñK)}Â! H6— -:¥)L’ÂX3b¢ˆ±ø"(†a/¥hk3P¡ЉþÞðãJ‰´pxl“;62JSÙWÃA°™†1&_M_„`BÆc“dŠ+ùÀ‚”ŠÉÂäÿ3m?Õ¢‰ù|Vdò‹®þìÊ ãñ%¿pþÉo-$%mò‹ < q¼x(›;Ýßi|:æCG²ÀÍ­ÈÓ¦tÄø˜–±ûˆ'½Ñ¤v«Ÿl˜LÙ¡0$+┠šòwì$¤ÌÁ‰Iqs\¿ìW"šòt‚Ù‡²¥` …,‰SÙÒD“0©s È)éFP,Äh B„JÒã%cgDÄ.P)<ˆ€Ì û²ld¾xýHÕK:¾Sš$~ãþå^›Z{£B$ZËã`·úw.Ø~„¼È DLP$ Ç~_¿ü(`ôm¾‹vp@"£q/ÙÛ/™d–[c~ˆdO_0SRÆZüu-nA‘[©û¶KÉ®J,‹u:Ô^.odƒqLÃÞ×5}FwNûEMÇ‚G‹ •Åñçãr‹w[ÿجx¸Ä×(a>ÿóƒ ™Çoqþ\õ˜KÕù݉ÒzÐÏÜ–KïŠ+¯]dúÜõ`Ѻ#wr«Ó«õ³ujsñòD ùæ¤Ú뽋üÊ«û å#ÿM:§.äÏìRÕ¾¤ÓÕ~IœPß“Ìj t/í(JÔhuUÔ_VõÛ9h@ZqÔØfbîRç—æeÞ*”`öfèÃÎÞœ½Æåyö×|_®ì´_:ÁíÈÊØ {-püdí~zÃÃK!.ãËR<4_ÐCì÷‚ƒ³Gò'Û+{ KÖhî²to¶FceÞEu¦l§Ý _éÖ£G€©)¡,„uy:E~'Sër©d6G“Œ%§2’›÷&ô^V®,´È¡. êü{ãDu\»Æøáƒ«ÑÝ3úoEûòKrÉëgoU܉Xݱ¾¹ÿЈºâØ‚èØÚÛA¦.evÛ·o¤U‰ûYZÝAn»åRíïUÉ-|즦h”•ª8gyyôZ…æL—O£áU»"™Ì ‰ä-KdÀüaÝ:BÑÀÞ£ºýâr=¹‰R]ŸY.Jno™Ý:+#z3Æ‘´<{>;vÍÇ¡tÔV5?ÏãË·á"Šv§$óÞZ<¯õ1ÜEXø~ÃÉŒûZ™ ûT›,ìtsêÎßôìÿ`@‹±¤ö(>~Þ°¿/ +Ž1’zÍÚ°¥mLФ°N# kÞŽ·¡ÇW6©º9¿ñ¹áKdꟺq6*Ž8ÎÔœ‡[5ãĦ7×Gí{3šŸ)2;”{Ëß[½s¼´üRªsiÂéÍ*'߇ö›Éì4¬NPýk¬#Æ0 I¢ü¦yÌz6X›eló‡‚ZY¸Ç“Ú++ª¯WVnhW,b´èи9öO·»¿5¶í¾Q,7Ëa@’œUîpAnTsÇ´J‹}u Y#¤D(Ø”vÁ¯B6x׎¢xb•ßÊg1pP´ìíÝFwü6E¦«ÞÝäs{þ Tôó¿3K»Gñß*o1Ç=¤q0ZæLŒ¤k.¹(22³P0;ÀØ úyô†R)µnMc;T›ÃúlcåÇOxnó.¯™“pg­a“Ÿgë¶ø® ·5aÃëd$Ý•]Ù.¤¥åï:[´Ø¼öJd6ÄÕ;nŸ¼­A¬ŽÒc”.Çn¿™ê“TúFþôê3¥cÐG?®kèò¶çV5“×lÉGæZØŽ(]¢™,WÇ|bYËÖ—ýñ„Ìn¼¼«‡UZ·ÿü™ý)Í·v×2:gž˜…ˆÎlÙWæÀüXÎyíq‹V»™úh=ûl,•<Ú翱î÷Ûœò§åJ#YVã6¤iëïɗͧyèY]‹7ÍLŽœ¿Ä/œÚóÌÄ×'É’ 0ßMýf©{Ç»y*ÇTŠ÷s»G\"nâ»ìΧTÛâEÅÅgveܼU1p¼dõŠìM|ùºÄIåê‚3º²êÊN™Ý8´¯Ä|Oó{¼K^¤ü]f…5&Ï%ÏßÜ<œöYϼûþ«7Õ †é3ŒŒÍʳZ¨ö ±‚XþÁ<…ê°sáýW›Ô«öö˨£´LSŽ‚r…‘ŒlŸæE¥ûíl5›Úš’(oK¿ºXóúÕ4ÕË¡mñ_ÔO/:­É¬è†¶×–¾.Á-ª­‹O~²<•TãxQ¾ús¬Ëîâ?ÔØÍñ)ÿÈW¨ã}zò6fûªsJ¥ôË ÝM‹æ =áý5¡vúíULy¸Qu“ŵƒóFÕSBkr­mQÏÊÛ5÷¾ßDY¶"d3I+˜M)È–˜ßݺÇñÏé1,0_24§?è’ßÚ³=k ^e«/Rtìqè-»“n.’Äß§*vn͸ïíÙ²ª¡¦Åt°f£Ž®Ç4ÑÎsjÆéûÞû9 ëdöþƒï¹õŸЕÍâR. ®,`gÿ ÕØ†8¬4è‹Ïj^ §Ÿùq¦Ùöx:×qR{ñrÉ|àÙ:ÚÝüÛ»:*^<ÏyS\©ê¥xð·¬îÄÞìƒ_æõç¤O“ÏsRi{µèua.ºûšúÌy…Dëæh‡ÞÌŽ¨wJãNìQvx 5˜]¶~æ2;NÃNTÄX âtÉÁƒ÷Ô:B…|•:T5|âeÁÑPñÖÝ›ÒÉ5ŠÛü©Ìè´¤TáHž·Ses[¶„ dImw{êÖiËkzeÖÈ^ú©ìlÌ`Ú®æ!1O{ÃìÓÇlo9Eëi¾˜ÜZZΔ?‘8)'7öA³§¿š ëwç *-æþšÚO.óy74çzÓîãvÜ÷êæçhPžZ ¯QÏŽ+\·ÚgÕ§dŸßõ©¦jã“VYfÔѺ"íç£,ZwÇuýSZ)Q)c¥ ïäfvÖ8‹ÿãįµYaͥܵ:wTrÅ‘hGŽzTr¯êyþ¸Pí ­×:É‘ò9,•¼ž$?¿QÕ§ðõjú{VIú üUíÓž§?Ü\bmÃûsë2û²U Žh5¨”¼UpUšU08ûÒ¾åÿÀص endstream endobj 83 0 obj << /Type /FontDescriptor /FontName /EUAKDZ+LMMathItalic10-Bold /Flags 4 /FontBBox [-15 -250 1216 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle -14 /StemV 107 /XHeight 444 /CharSet (/beta/gamma/theta) /FontFile 82 0 R >> endobj 84 0 obj << /Length1 1846 /Length2 22575 /Length3 0 /Length 23767 /Filter /FlateDecode >> stream xÚ´zeT\Û²5îîNãîîîîî4îÜÝ%@pw !¸»K°àîîò‘sî}WÞûûÝ»kVÕªÚsÍZ=ztS(«1ˆ˜;š%ÜX™yò ªŽö&,Ì ª@Kw;+#33;…˜ ÐÄÍÚÑAÜÄ È àr³(™¹}ä~D03óÀQ¤€@—§9ÀÔ  t3Q÷r²¨Mþ2”]ÝLM\?Ü@Kk ÍGŠ˜£“—‹µ¥•ÛŸ5Øþ¬ô'[” kbfëèájk 0q0È2*0=>@kµ£Àhebgp´¨µjªj)U% e5Æ…ÕÜœ]þÑ‹˜šº†=@\DQ]Ô¤Hi¨©ÿyU:|ôoIPTÿðÿ©óø']AB]D]GY‚…éÏ=XŸ€.®ÖÊþWo”þÕÚGª…‹£ý_ÔVnnN¼LLŒ–î®nŒŽ.–ŒNvõ§neí ðpt±|\]€vÀ¿ˆqw0ÿ ÓÍ ø÷v omtpþI’tüÛiÿAåGÒîö?}áögM»¿Ã®@à”±2qý+W^YY`obíàt0q0ût3qswÿ…}<æT7ˆ¹»¸ü©¡ðO—Ëÿ”ùg뢎w¦oçãgâñß;fâàîêýoÜüçm›9:¸Z»º¹þ½"`amüÓ½ëŸ=³vø SQ”‘”PSgÿžƒ‚ã;ŒnžnEÿYOD\žÀÍÌ `áa0ˆTÂÁ\ÌÑÞþ£kW¸?ô‰[ðäæèâÅô¿…mëàèáàó8,¬Ì-þpoîîĤá`íì”ÿGø÷/Ìè`@O3+¦?ÿÒ˘åüA„Ÿ“£ÀÂÄÎègmü¸Àù¸š|Ü\Ü~>ÿîøO Ž… `nmæö!õqûku GÏßðG'ÿtýCÔ*ÍÇœš;:ØyÌpLŠŽn’ þÿ3iÿUKÒÝÎNÑÄHý¿8ýï@{k;¯ÿ ý¯-àŸn©]ìMìþËgí*ií 4W¶v3³ú›Ú¿q7“ý‹8XÚ?¶å/HãÏHÙ}h÷ãü±þs|XØ9ÿË÷!K3[ «+€ýï4àÿÕñûú0éÊëjKÉÒýoÙü'á`æhní` `åà˜¸¸˜xÁ1h•ƒàÃò!ls ç_b01:8º}¤œÜÝüŽ.p6”…™Àüƒýerþ±œÝMìþaaf0Yþ›É `ú7/ËG‚ãÿ˜ì<–ðßܬ&§¹™?,“·Z¸ý eùú·\þþ¨ëd÷qRüàøÈvóøW1ÖÀó_ñy]þöÿ'—ÊΓ¿…ù_äþã ýËVssq´jY›|Èü[ˆ‚‰›‹µ§ó‡ÊY>ðÇ?ßüGŠ è¿e‹Š:zú0°³1Xy>ö„ýc¾>áòû\³¿Ï¼¿&ìCÿ´ÿ8 Ðh·´àhÆjó¥)¼Â_¢hª’‚‡ñ¤KP[6 b)sª G<‹(Tô#0‹²ØQ^š×À?5È¡T›"Óîm­%¥fòÆ\ExÛÄ_ÁIBd4O“Q#8Ka1°²ƒ”æP6¯P§Œ}&ëgÒO"€Æè‘O[çcëÄ;êU©~åÏÕH’9–f ;4ÏE¼vüÅ©vP·÷GŒ„X“‘%ÚYãÂp¬QY(§îNôÐØ¡—ê,Þt êGçµeCh½(×vxÂr‚JK)Õg}8,Ì^ìTðÈI$Фb×÷ B™)1ªÜ#ÜFÔéÅ'¶k_aõ•à/'+=_lÉy3쥼U³Â-[…š=à=øRi%‰YDz O ÜãYô·î¯ ºö:£po[0KÆ0Ñ)DYÇŒ`£Eá¯gL²p¼iˆÃ ¢ß”6ðï™,Q ÁQpmxÁu9/«Ï%BËq˜¢Qr¢P9ó‘z_ê¤f•:]$ÖîawAö‰«Kou¸»‡78A/QZZZˆ´çSêh=ˆC%WݸÅ$áyßq,9ýÌ•±·Ê†m‘[+pr2 ª Ij.ÈŸÚØ¬èVÂ!1 pзødÓUWhÜÅNãØ‡¶2#Ýã/9å1mHøÆ£è¹Ô7†vOÇuµ‘ò5ñFˆ« zKë´éºò(/Òú„ù“qERúû°¼fê<‰¥ÁAŒ••Xi>[¥S þï››×5~®CÊ®ü5øk#aG¬¤¾Ñ}|ùèõ„Q¼–áAO0+¾L³@Ž`v_/ˆÁ±|Qap CÌxµÌMí“3(¤!`<ý;@BŽÞWއ­-¨ù‚€PeÆtá‡î¯'w„©…+e¤•*Š^ÉGcê{†RÁèÞ°®8ìr!Æ¡²Ý·¼¶õñhY^‹ÕlÕ´u=섬doQŽ…2់Y±Š‘ÒÍj@ªiAÏl…ÌŽ×Æm†é0'ÃNƤ輻Ÿ“D„£e¾A…Á“›às£¯3‚šüš‰»Ÿ¯Ša¿ø3’!d¤aÞ© ¿÷½´m(ñ°&»”AuB°R-¸˜H>­Ä r¤ÂÄuÖs™)ÐXË«uÿÆÚ&ëé5۞˸^uC]ÝžAb̳„² Kn•ˆÛ…Ï´rŒ ìS&Ð;_Ù+¾'ú||uU×Aqb²ê¶`)Pä—œ´¥{åœ'Õ€ƒ»îÏð¶’€Òõ6ÏMÅ?“è¶H=½Á§æ¿Ð÷8Cê­.u– U¾õí2£›lÄT*Œ«T†Î$³9î[i\ˆ´‹ÀWÙO‘OhŸê˜œ‰HXiuòu»Ysœ"jÊ4*¥×¿;{ Å»lÇ´qÝÏðoŸm?}S‘ÙÝÁ¨8jHZ ~Pr…~ª«©ßðœÒû”œü=LjU€~4u#–®ŽY±K†h@ëO†:ž¸ú{ZÇŠÐçÓfß]wHÌëÛÏœ•—%0~ŽÏ6ôoµóêrP5ÒËóÛ=×î#Ó¼‰â8ô± f]]ݽ #q5Ë_Š) 0›ým §ß÷ &¼Î*÷Ø8ƒl‘Ô4ÄÆ<òIDÌ…™O̪ëÕPµÂ ¹À’#G¬£âÕï&wësJå£dY›’F*ØòçÂaò®åxÉd/~ç]åp¨ÝEæÆ‹é3HÚºÁéÕ|£ îN÷ˆt?e5u+SõeTov£Ø×XWƒ{Ì rÎ\ˆ$©unúe¸d~ó/®Þ –Õ^–‘Ì#¶§V78 (ÈERçc¤Ëz¿LzÊQŠR\b5YF„+mÊe„·ÀïõQƒ{ô‰áü†ñ°:/ÿ\v6jŸÚ«÷ïðÛs¢ØxîE@NªwƒÊ‰ùOI.g‘\ÄÖ~¤U4‚‚ªªÕËÖêQAÝ£”6ïÍ"ÿ!*cP§:]Œ¡ÙKªEI„ÀÓâÁ–ýJp;•t¯v€ë„;Wñ.Y·7€ˆd%ŒÓ`ñ‡ÆN{i‘Y1É´,¼ÌÚzE½nQ ù½ÍèþïݸßEîNv‚5|ŽéõáÝ„ó¼ç²‰HäEdáÞjœ¯÷Ìñžír†ÙA¶NŽó^޽`¿ˆÀPç芈†„¹ÚjH ¿ äí¿À®)zX-ÄP-“î/a-Cƒ‹´ÜŒ—¹0©o)ºÖôG‹u’Í*1+lìÇ™†KöÒ¦v-/Ý@×'”’OŽŠôU‚%»¿ *­YÅWŒã1Ýþ|ÿ|œvQ–ǾÕa¢ëL/hG1\´Œòy¡ÃdðÍ/‚ÛM!òÚ–î×aw ÷2ÒžÞ›K cìáÿ°½€^ p_ôëiÉþÒ÷õv9¤UwØØ¶`Ñ!ÆQ’•Ãð´uAgÏ3~kþ&‚k÷¿¾ßiqÆÕ_sš³ªûý˜¢âW»ˆEýÀ¾®·@Fï3Rq W’`õž´òeuMã´”׸ôн¿{¯*LDuϽ[ÊfÚxÚ¯´§±,Ä0¥¸G. 'à>ùõ´•޳¾¾ë£:ÔÚN·;¹O^Ö_&ØW%Û°Q óay+Ù•ÀÕýwà¹ÏtœU4a -êÝÏ3¦ Œ!Zf~GÅz,¯C¬Êv}IOꓟ Q5¢17›à†É»F Df™w6¼Êò§`d®ŠºV-6¨¡°„h´­DÜI|bRϨ-¡"ÕéÈŽ¸TÜyDö;Ê-Q®¤aî;k?ƪDa“´TÌ Ï@Þ°<15ͤò¿Ü…æ÷cìï[ á—ˆdq"¹CÏÔšÀ²tWÅtj??öϘËtã¬Åàç®Ür£$qŽf_ O‚ÑÛþšÐÆ5^ã<ŠwøÆvÀã0mÕ’{ã!ß²cî6u¥Î§L{—:6• ø:b¡Îÿìr:`#ËRkT€®ß<æ°×þ¦¡IãwΛ‡›˜¿‚Þ³Í&:÷Ö ˆcÓVc¦a¤#¿Å1Ç9ëÇÒvšnC…Þè÷Éò™[ßä}F‹b¸šì2Ù’#zÝNhÇí<ÌUëD6¢áPÄ o×÷f©´U«´VÆ€üÔN2øüŽ;þ ]¼°_: °›º ¹P4mb˜Hn~°ƒ€°%ŒöŽ®–W¥c¨5}eÍ|!`¼¿ó¥"Û³³ð3kB¦½ŒU}@yêêè"• ÉÎü­œ²bѸÀÑÊ$sÊÀ™³_´®ƒëömë•K5ut¾ŒRYÙš|5G”Sio(!ý õÀ8lƒ`[\'Rn/x‹aažžyÀGµÞÞSŠº0KÚ“,£¯>r|afnÇüÅ!øà¥Ë£“ÁÔždÞS!v3)݃þ×`1Ukµ€Eôþä›Îe‚.Ž+Š›Bò‚8õ®ñ-Mc>i5'Í%²41 QG°Ó$øRKJ!ûŒn÷’9šìç1£,)˜N$Ï÷Øòul.fÐEšýfø/2Ýà|×_U$ô¤ ‡­s3î ~ÊÜÖža<ÆìØãåìØ$Tœl Â2š…ÒÐ2L™0ç'=|mF@¤'oиT?0}Ç.’BáwtI¦2áLÚ LäN()v$añäÊ/‰9ô{~òéPÒÁæb±Qúµ_µšºð{ÙÆ¶¤Ö äãèñ)z|J„l`4Õ†ˆ3:œíQ’wæÜËcÓÉSù$\χ ¥F)]²-²·ý©T0ˆ˜Âß:ªÙ&IMžÂ¼NÅgøïUñæÅ šB$zqìH“Q~Ÿv,>/êTä|B#%8¸ºÎQmþ°Êu¤q¼KçŠ$¥Å÷Ôof²x‹{–â©ÏeæB”¶kwÞdUfçöwWÄŸ À" L›_&_Ó–'®¶!oìÌPè5BÁxŸßõ‡ßâ2§í!ÖP"¨^}Aˆ8h4úÃ9ʬ$Ò|Ÿ;öƒ†¹B›»à¬îñK‹âQn‰Íl¨)°šáËO:ˆ@Ü4+¤,~®+¹ôgù—O )ì_Ÿ5"ý4çý¹t¬bÔ®h‹…¥ùä©iØ ¯b“tÍÉÄxq Ûîq•¦d®b‚oz~ ŠŒ¹vßY}Æc þZw—Ö7ìÏ%É:Ÿ–®óxé`ÕÓñý" /ðFíÍøi˜™ÀLnˆY(ò3.]n:8B%I#U)D'[‹'F>¿ž ò…¶‰œÇ*Õ0Ã>K‡^3©IxC%–^Céd7„ô#%#÷Ôà C2áþªd!DG‘QgÙnpòÜÈ 2Œ­/Ae+-Í’@U|Ÿ¬ ¦B7— Ž‚ ˆk—.“½ïι„84º¥*µŸõi)‰ †¥ÎZ)Ä Û}–ã­ÁÂPÈ„Øîæ žœÎ%·Q£PãíÆYÿ¦T3UÈÍÔ4D¤Úge(Ú’*—ÉB>lžïa¡ÛËëïyl}†âÔêµ^ÂjnãF…Yñså$>«a=ÔÏ»Ð[bm¬NÓ¿¾,–²¤hÛOãVU#·ÄS|Ï­¥)ª…]1»€;X­Á´F“x-—âîÀÒM¼Ó²–K2$°FéIÖcé¼`Á] ïÏ”ó!q›Ôö2­\d´ÿñ©øqþqFêb›4ôÕ#9†â¢?‚°úõKå¬ßá²]Ô~à•&…ïø¸æ‰§ó°`|ç¼ÙøZ?§Éþø£ð Ç]Dƒ¾CÝ¢~å`6áÒŽ¢º‡Ç÷Úç#|B=›)\ö8úàRa‹:w¤SEôzä6uÛô¾Q¢šÍGP´Œ-x–Tß#ã§|ÕŒŽpÏŽ×s¤1ÎÛ­´gÕ]×0bŽ%߯ç A~3cÌ ²:úlWçaˆº‹„tw¾„}F}˜oª ŸW@4.h­-ïÆïVœù ν&Ó\V¬A>TkÌ‚ù>íaBwLIFÓaëŒ;j}SÍb㑺ºÐ†\éMª»K&H*vÙ¼1á=}­‚ra¾†Ò–|ÂÈö \mˆ™II±Â_` ãáV_ß ·ùê™e[L¢åË|IŸŒñLÈŠãê¸/ï Å>E ™Ï(¬!A£@‹v '5¸»M‹BjTßÞ‚=˜'­¯C0Â!Ê"ªŒˆ·LšY¯¸ò׈çqø¡mE861V¹<ÕÏ(*ÒêæËµ"†šlöªƒG¥gèY²Öæù@@_æa÷K¾½È°–‚]‰PÁ“>¿ª"BøU‡½Èãûž ±à3j9£0žè:º™˜ØN©Å`¡¿MËôµWÏõõX¬¡JÔÃpx•àî§åœ[9¿[1û*b>: l »²ô‚ñËßøJïÕ†ñ#›dQõE`›¶~_àÊaã½jì_bM²ÞˆÎøò¶ƒzdc$”â—èsYž¤ÞÇ–Ëßòb õÿ\õ=š­Úf>%=šil ÿåȰo-”a‡«÷ö/ú€(GÚ½L­£·ó ¥‘/Cc +DZ,´N)âȦââ¹ãK µ'‚“°Â몪(ÍËÜ६»ÏÌã_\£# ó 3záÔ¹' g©àæúŽe"[Æókú"œgºî¾ÊÁD°ïweÍ`grÿ`ŒÆçE!È5O«‚.—ã¸`¥®‡¨Ç@á}˜úÆoÜr¶¼¢RŜЩ¨sgvÚ¯_K‘2wÏhÔ¼Á&LGéµ…gb î®WC†zLi§Dv&úr¥çâÇs3fƒï?5Í«ØF쟘×TËä튷$øXºy?®¼G[Ñš×ãÞU“m슰bQ:ë¿ÓýÖ]VÂ'©ñËnöàQOý’ÐÚÉ£ º…Óûê(ï°þ]Ö¤‚>>Ëz¾žV’Ý`+‚ú0|&…b솱tÁS¢|äM<Ð5G‡Ï®7A⩲QIMÄÈ͇ºc³­sG1rØ‹òWÑ<ܧg m‘b®Ÿ ž]ã ý$íƒÀS’VÄ­±žŒPßñö«%dâ½QÚh„Y¾Ÿ¾»'ìCQº^±9ob_Üo¡ÿôRñ×5çlµ†Ž`pHö›DïËõg§ª—Œ+³lsJþíÛž™îVô`Ü›¶´Eè áI‡½Ä¡5¸i¾Ê·Lm;½ ?øÊö}rÕ Ï "™î‰µF”=ê~I~÷™€AéYMÄòÙÕ;~цÝ'C¡³PüàTÊÑ1öw‹ôð:UµØ²uÒimŠ:9ùíyÛ ëâß5fú<2ú+¾Ç†r ü=¾Î¢×ï°ðo1$v0GÎÛZ¹rÔ§P×S2']*cš%à«ZÚ÷J!äx°$Ë>ŽH·Ó›ŒÒGóøßêÙÑQe;í^¬÷Í¢# ¨ò†Êþa6Ÿ F!Kb™'å’ woG]4c‚TËY-èµ!Aº´ôsÅ ¬n«92ŠÍËÇ:‚}ï$¨Ý¿y!;ëˆÅŠ>¼ÂÔUâ2~j–@ÈQƘ\ÐäË¡¾ ß§ ‚!sH¯Û£'ÿTÒRÔ½Ÿ à «ãâÉ»±mk«‚a=‡ä€ì=.„ë%_k4åRØåI檅Â?d|ˆ»ÏJ£>#175{0žŸ—®·èÑ!Yü]ÖN+å$Ü:_OÖ{ãàqXuy¬¢~‡9ó‰/‹s¤ræ½&`m…lòšLó'¿fs4ëUçx?Õ3ßE’ÂÒ'1áÓ4¢JÚÚUE7}Ï"C7GìÅÉ]ˈåB sHõÞ³T]ovŒ·ÁöÖ0ÎUnßíYjÚ¾ZªV\wXâj‘K›ÍÆK©¥±´ü»\ †º3ÓJ¤_ËßQÚp²®^>¤tOPª.ŸßðgôÈsA–½Œ­{šœkš“ù¹ø#ªÓñÊã}F*”âtdñ±Ð‡ß8Á+©..”|LMÛÍ5»hrtÆ›¬¨Ò¦Ã祮Eïßæ<ÏY§]ã»Üºc°æø™r2Î5ßÓ›•ÂÏ HVfbFS‡3Mäp¬¯ ÷~>…gÿ ³ÿ­0Ì¥Ñl4+ šC~LòB7pÖDòÂsk°d›úõ.‚ïlöÑ:ι|C‰Ø ŸèÆÂK"*â}G1åvn1sÆQþ];#?Rôsû±5â0uiü{;f\-]œî³÷!ïOªÐ–F¬gSNš‰ùð#F:^> ¾‹^P.@©N Üéwô§7Æ\;¨Ù|Þ[Ýeãî «¤Ø¶ËöÂt¹‹µË¥®¸žyèæƒöZºdX¶[êÜw$ ФàÁ‚yú§OéYÅt‰Hº3†Õõà 'V° Äåj¦@S9vÛªnŸ¯«Q.ê£2Æ«övÓ÷Ü«š>uÛàyûNrqá‡idØ·R=Ìád8O˜Šú‘t)RÁ©·ÈÄ&ÙÈçì‚ÒG˜¥s5: Š&ÙÆÞ“<»?k»Ž^¼ ˜NŽ|-õ°‰ƒ¨«¯8geÀE¶{|×¥Îðop²!MpVùçLtë‚L5:; /DþzÆz>Ý;A³;ÅÁ²÷š[D]Ç|B :†Œ’SªZÐi£, køQ$ØÕƒip Q!R€È•«V_˜ƒJDIEYÇ,ÄM»˜ˆ•vþ™´ cVGæŠ1ctº¡~c®ç+¢Æ‚âڋ{m!ñ“ Õc³Lû9v²yÃøÅE4QTÞ‡ç÷éFŸõR‰8ßâA{ìºÉÛ•¶¡4ãö6å9Tñ7I ¬˜•hþcõ~dAúŠ´$XË1ˆ4$c»Ê㇠uÕ,o‘õ.#½áU·vwíˆHå}®8$r6ñFåD*¬»}‡\Íj‚B¾«ä‡¦¼ÅÓlH±Ú5»-”ïj s¼‚ðŸ,bók;óV/¦†ã¾fp™l¥­.Ãú‡¦A—»XRB\òôeŒ‘‘$´b+9Š.(gÑ.ž‚1u7ç “Êòrñ^'zÜKzŒèžö…Ïs¨îñ•™ùžÙ:”¯ìoÌég=­Û`.Á~"?Ñ­zU§ cãéÝŽ§Û¸cVŒië^¬¤…€W'¸„ •ÐÖšS7JŽÙÇâUä_UJÃtâBa¦q!È·e-$Y6°a¤-–Ƀ´¥…ÃC±†½µiã`eϾ?ÂËóZ;¨| ‹Ï£QÔì§X2!àÒÚ1ŠÜ¨‘¿|ßPÚkÎ6 ‰é.6Z#èØc·ì#ÁßÂÐxòì¦QMU7÷éä´†Þò™…Ì×–Y§OtYÇ!9®ab7~%jÅ÷³¾"e¦C%P(NW;±<ÁÇF]ÓiÊœÄg{©7¢Iò†×›òÍ‹ UÖhËÐEB×S r']\›5äA7Tä5)?…¸À_]ï¿wëéQGÕ þ®å‚8L4\ííY÷×]ƒ{§ÆµŽÀ¤ô>Œï]îk<{up¤–ø²Š‚uõK™1éÕ}{#åH<ËÚU—ÓÕ7c³yBè„wDKκ @ß´&»‚l/ŒD@­³ºÑðŠ“¸d[Õ’TH² #Þmqº%¼á¸V2ÛEê„´‚S'ÆPù%n5î˜,šB½TÖQò¤Ÿ*jÐÈ äx§<¿“}‹¬&Âvk_1Fªæ*GŸ¾=9pë´-ÿèn¿õ:ÿl—ÚÝXÔØty‰c²lB/A_¯ ÆÚ´«,J/â–ýD“(Q»šµ^YÁ©ÛíMÔöçeÚ‘gšÕƯ¸¸}×g, Ȱ%«äsÄ¿1ÊɃáÙis1 ðKKÚüìÌ(O^¾`Þâk-`Lš+ë)%QKÁÀ¼iça»fÜpí+!á”.ª)$7TŒK B&ê¨4˜ƒ—8¡‹jIã,nm3o½©€5߬ *]eµ5ÍïBõ «W§¹Éaòäzl\jÌ=±Ù3®dÙKù:ĘÊþR€Xç”  Íý¤³UW„;¿ï­õ3;«‡é.ï<‡ „ãѱbh ÿØÉŒÃ¯å°XœrÞ j¼fC8 [ÄÆ:fbjµ·ÆÛ¬…f,XA¥¬#¾@x[­C²¶P‘M)2oïï¿e‘°oŸŸ09&CÂ~²úåèFõ;–ßñù5Ÿ@˜R¿¸{F›ÃcNZl)tRÞíiÆ^×›.ÖØéˆÕ&eI¸Ê¸Kóñ4)]{ï?¿Ñ)(%7 xø _Â\õ™,I_#«š’!)­`ü\l‹„ÉpòÁR"!vZtHE~£›{•ê@¾‚˜¾»Ê„í…V£éHÔ1rÀQ­ )¹à7c$¹ç`a~Ž úZ2œVÅ5ê–\Nד;‡"€ká#›×°1©º÷x„4ñ$ñ‚D ‚§AéÿŽt“íÒGW‡!C ©ç8ÁLñí|%èNöP¿)¾ãìI…–µ£M?ŠDá ëwvEM‹Ù%9P–(óÝV± *v‚¦}ƒÉm\7µ”V`‡â›0Îû5%ãLë’¿OèùÙµ=bV1Ä%M,ÕÂ@öod!ûv‹M@Tb¢²Gë`c¶¾èHÃA‰nßÖת— °À© €mBÐ|'æ ˆ¶&pßäUÅ}¸% ¸Ї"§8®ÙÉ9â­ ýsî> ¼rÊ‚Y7½+´ª4¨°¼˜È‰NJØê:B÷¸ØH°þõHVñØê †£¶… r{½_ˆt Û®úhÜÏVªpš­kóê»î q9–d’º [õ±ð—.ÝâÀ™¹< 0GØ_M/·)|·ç—ÌM¯©§¾Nýn½úk—vq õÚë‡88IØ^liJÐG¹°§œä^òº)ÚÝưå/4ËŠÞÛéü„1†÷™µ_2NP†hy¦… 4µ‚rùÇ´ž›FJ™¼§»ÌcK$Õ_U¸P 3– ÑjäÒ7\é)|û­1¥i¥ÿÉÕñ‡Îyúù&¯PjŽd%z6êâN¦ŽX»zÒ½@oåñ™eç’NUÒ½s±pâGÖ’Ø÷ÌNõxƒäîLB¢%S9AUWi-ùÉÏb5Ë0˜Žõ{¨ ŒÙ‡ì‰ƒ§’‹o_zѤђ®/,Ÿ´Mî% ¬Õ $ˆõ@h—KPê$­ÃÒpŸÖ$ t¬ò`8†Ç¾ÉÀ@6y¾ll~Š,iGôú1•Ñm¢Ò>"5ë€XBD¢ûnÍÊ :ô¹nâÁ³]·_}°Bî•7éÛûܕꉓª§—hñ©à¹vçCÐÍ©’‚^jK’7EiVR|ôAÃ9#j2Z“¡;°Z÷‚4Ëg¦Ó5JéñSg|‰¨jrˆ„… ý³³§uói“yNº–z à×d‹ú~Üâ·9ûÍì„¢ zªÛ¨ø»Vû¸p½[Hþg ~ò=ÝRRb‰hLvØn¤:)Hü=ö&G,á°c ŽYËâcå"1³6Ž)Õe¦}G›ÅarMYïJåxùe³ŽÂtvîuñK®ªàéP™HDζHÅš–²bäX‡Ýåa²ñ~¥É!§Bà"o¿+]4æùP Äu÷‚ÌÌ3EëL(ô?Ÿ,ýXE¤uuù|\BêÐçM–óI~Ëø ‘¢"yÌ­O÷û]Ú`ûMuè7¢s÷i°™“ô"#qžö`,Æ$Ówã^Sþ )il&sk]̦‚§ø¸œ¹¡· Î(“ËPßä>+ÓpdT.ËÚh0ÖOèÐßöN"žr W“N[>­g§H—yÞ,A7\ˆ6©ÃûÞA*8YÆ€B0¨$MI®9 ¶ Ãé+ôv/¿~–V)W6+ŸÖGñ"= nxœ5`m¢/R·¯/)ìd7&ùBõ(ó>Y.QÇPÊW™1ޏš—÷üBåAÑdd"M)ÀÂ6€5Å–2}ô!*F/{Ê‚ç%J½}(pök-«,8r 3 ?uükKN‘Ñ[içåŒrP1*³Ñá 0;¨²ýjSÞªœ¥&®kQßqöåPóªchÙ ýC!Þ¨Yëí½¥öÀø#Óºå&Û£´Àçd',õP*ÈYˆ£>"ªÃcÏêßMoû„Í%!îú_ûöîxÉ Ç¿Ÿ ³®–ŒÙ¡þ¼]}ŽDV(†ä©`V T„7WŠ7k4>pRŸH>­TTæƒ>¸R•²=Æn—È›Œzbޠƃ©â3M8!bñåvY¨ ^Ï%èñÄÐÍ'ò”§Kg£Ì·w¾Í^:ª+¤îX°$c·ëô+ ù1ÈûÌÅ\ 2Þ:÷‚‹ˆb,HÕ‘0ÿsCa¾Ÿ(ˆš‘JëW¹Jt€¢)ø5??eË5žæ ÝD´8„œä ¼^f|ÿŒâqˆ¯äáž_ù'!p|KÚ‡ÎÑ$›ÈxòÍúç`ú-ãå|q–/ý$–‚•Ϋø™ÁL~s¼ªÉ¦ãFC äq2ÄQ 'J·s£ªz AÒÅxÜ/+ÜÅî\Jt3gÍ-Ù6‹÷„´7Œ¼ žIÈþЈ®­{ʦ®ÕüX=ìSŒˆ½Ýê)b‹Fóu=»äôûÚÈû+:Ú±1G»{?å¥uÆ é÷«îJ2éÅZüC ÕªúÉu ‘>@˜G&\ Þ½žÃv®ˆ ì¾Þ=£e½¯ÈØÂ‘Aãbø#¦K±¡>uñ­.¶ª«AÒzfh« ­Ç¤Àx¯Aò%­>lß;U1½9D,ÏR³ ‘Ðð6MJᦨIšr<õ‚$ãüåF½®'‡ú·ð|ï@_80Šëu­‹šq{j»»ˆ@J_1c‹!Oeùô6‚ (¨Š¹Ã9ÙÏ2M™‡ô€Ã:x­¡G?NËãTÞV w‡«2K’˜X|´…Øw›xµl"fÙš•*8ä?N}^qÖj \û–/öŒ–áu@+zÊÿ`ÎÍâÞ}µ,†³" aé#Ï d(Õxìîÿä f‘Ý"TCÂ.™ì­–’|&yv-ºfìád6©Žž†,y¯â;¹˜P9AÇ3aU¢Z)u¦@¥u {Uÿ)ÇÁ½)ÃqeM›¸!LÆÛ'ž¼ .î[Æ€Œõ…kǦužÆ!BS–[Ùá«Z¬RìKV pe  © b N’^Ù‚uÒ@¤Fo^z·î”n¾àV¨¼«U$`˜v¸º…Ú^°,œFÎçÖÄWp–ƒ©—3¢BQ5ž¤_>;?ž¦Ž|§œ¥äƒ'· ÷ ÊBš|70zí.r€äNeð÷ªæHUaÀ~4 mÀ TF\O「ž¼ØR߯73i§–v¸Ÿ Z³Ø-½\‘ ŽéãÿF—aBóv𪘴zp_–Ý+;Œö4S°¯/Ø=*ÒBè8Ï ÷¬p’¼Ù-¿m/üÎw©ããÚóÃVŒÇæÀæát¦µ‡/G·ˆð WÉ3œ}<ò‡·õaKÁXYü<ãu…,³kD/¦æ¿jw#ÕN¨ cÖb v].‘ñKð³€[$ÿ—ؽ›¨ kò³ÑÀd&Žz¾ŸÏ }™I¹œÜÍzfäP¢'[¿ùÖøžíÀÏôÜVÁ¡1³SuŸƒhqaj¶o²7¨@¥´¶ (iãë\ÏfcžÆ$Xya‡ïZnÌbÇG¬ué¹?ÛóäQêGPÓÚ !ŠwÛ»´EµÐ“iôšßN·‹CžØÉƒ>wÞ‹Ï©ÂQ-Ùü BŲe@Á “™¢«’Èüú\¦\`#“1_’ylTëX‚[9Ø[y…-tâ‡~u –9”¨?ŽÑøþ.œH¶ ž²=VÀ6ŇFOеÞ:"s,²äeo˜i7’>û³’ÕÆ0³¨Þ_+Ú×òvÜܪÂ]±%Mò;î`’÷$wk²FE<Ñþ~òþ¸¯ò|¶zù+ý£¬ý4úJVl{×´d—ÅžO§Üùûg=i¤:hÊ.K¤OHjšBœ² ‹tåe%ã:w H¸žÇë|’¤“qþµ d–~˜çNÚ{¨è¨¹V3“Y=Ƚx€JÛ²Ç7}–°¥Rœ]ǯH®1Õ1YH~úõ„HnYm5&(¦®‡ˆË‘¼:7Æ/E8Ô£XÔ(\ÃedÃþD~-¿r-Hg^¥ãh”áj#ÃÒ¦(i›(ÈSXW=F´ç‹ Õazô!7÷„-оàV±6"Î ¡5~E‰Ã¨ áÞLÉòÕc~)YvÅ‘pÉ!gVc¤7óàÚÐLû¼½5>®ùi äº~àƳ×\C/hþ¬öóJú™ýyL­šÈÏ„z&“¾ixlèrHR<ð)cdCµÖÛËU(†x( Õ*«øæ½ð¤Ä®}¤7p É›!5Ò1¼/u™,°4¢Î3pÒ9Üœ²‹y*ÏóQדS_Œ²e Z`TYí£±GLÔëcü é'¸,üˆ°5!¨âÁ¬Ý/:Ì÷Ÿëu-z˜û¶<Ô|f!§4{$¡ÇñÖâÿF5°#"ù rÁ_Ÿ‚%1Bœ±o­Kjo&uG>0|oËm™#hO¯È‚θŽKfwJ“†b'Á†ü­ISTÏïi&Ú9y°*‡}Àþ=¥>bñÌOµWE¨É’ç’á°Ÿá™n…wX-›ú‹¡Æ…m:kLw¬y@›l}wت%¥<ÌÍדÝÂspI'x)C9¢kÇÓ'&Ú$Ÿ/€ˆ̹ÈéMýQü¢èŸ»‰d eD+-È?Ä«—FÏ„ŒTÛ¿BK?ýzðüÔѺœž²‡…4 j‘úœ†j×lÀÅÊäàdsLg)éjM¿×½EeeZJG'?vTÞ«¥5Ý2Ý;¨˜u‡»ü"ª3$snž-”B—Ü“¾Î8èäç1”/§šÝÿ¼dš¤ò]ñw÷9Ž‘½Wß!e¶ƒ,“%šo+†‹¡4ú†V°„¯߽㬯vÓ²¥_¹1»‘¢áfþanôw¨ç”»ò¡þà &½Ùã'…;¯'¤¼â7æ x§ßb‘WÚB¦ ¼­ó­ö¿¢—ˆ>ôÄYZRu×6â®ÕOŽÒ×4 ¦JÓy’Ù¤V c¯B¦ ³R öV[D)ô€¼Iú;N7ÒÞÕW{St­ÜrG{¼wb&'5fªv¶Æç² Á,¦q{ÏϱH"Q‹^¼/.¹YiPã5àŽ.Cýäu2ŒAsÿŸ 9€iXõЦ…>6Œ¨þdˆä;´Z*:¹[\'§‘š+¿a“ Iãx߯´ÉBS»Nê¹ÖìÑe*; «HØjû:ÛŠAžè ô¥Œ…ÒzçÛ-ˆ·¾ü´L%ô{i<=ii~`¥q[Å|Á5@0FžVÞ–B»ë'Ø$¾I@&îüòɽ?…Sn‹­äÊžÉðÃåÓOÔU•)HôÔÈ#p˜&5¢ý¬öo¨Ý`÷È„4ì‹"ˆ"Ëî}ýƒáJZ•oG^oCC“$Cµ·Ù…&!d‡!Ý_²?k=ñÞ´ZáØQÔèo´—ÛÛ3QÍM»:ÍÀ'D¦T³b–q“ÍÍWn䓺{¿ãC·HµFÜ‹/eêuR_©ý~ü±•áÑöÙ­%“âXÙ-Lµˆ›’–÷³ù™ åWÕÕ¬šwßïÙØR¼Y~Ó*ZZ*flmq$›‹_Œo³%ÛFgf„keÕ‚áe}‚Ûƒu*` Y>;ïŠâêïÌ€T믃?·Gã±é®|h2 ÷° ~ Z“÷ð>)·4áâßN  R_î½Ml>߯ÓDßefÍí°ò÷4BŸDj5Ð/¸Îw-ceãªÕ¸Î6¤™ŸcÅFn«Ï’§™Àãcƒ¾é¼bØ& ¯,©ºóîØ.½|ÑÉdG°Ñ$¼.±ƒåÕuZw§åê虌âC(n°DÄ-m‹~L¹ÄíyPÊÏšº¸ÀÓ·æ×Ù=Ù½p¶„?B⣜RºcOˆÚo£Û A¤ÕYÿ¬m¼RÅ_¿¹Èþù>Ngßgn“Ô‡k±Â\šz¥TÏß¼ÈcuS„ý6™µîy†v½ö}[`<ÍË?ÇÀ‹ÕóËS&@F4L ÆY1èͶ@Ún­â éð»;LT˜Ë§ÄîqÜ]Õ¤HÞR àz…ït]CbS5†œÆq§¼ÿNé|Å“N¾eF!ø–“™ru :õ5¨÷0'÷Z‰¹/,:Þd@›”iÈ™äØ;r0)T&Yn6,¼Ž’¾H—Å3®À¯¿‹ÇT’G~·‚æ7¯KâÆ,„×ZúÁO“àgOHÇË}ª^Á“ˆJ)Ú®ŠcÊUR¥(ŸÀ)y<%ýp6c¢ÙÆvóD[£2‹tªMÜá#f*×eì†×´ýhTŒ±yåhDt/¬[/¥ð™AÛFºñÖÆA`fQFNlÁl !ñ…èjsˆðÆXXÔÔ<Ã’ø©D{Žû÷ÜM_K…w%ıA¢MV,ð­e*¾yd*ÛÎ&]fTñ]fzmùOÖ ÕgÌ|¶.!ÊÁ:vè‚Nþ‘£ý £­”¢{[É:,x7òã¢C'µ!¨Á´ãNµØ¢~Ú1¼it§d&—X$V*Ðw ƒ ±Yì¯ç:Â%z¥¿Û@qÁ]Á.äIÔx¿³cáË/qëê>ª‘¦½¬œàoË÷¨?·®¦fÄ3–ÿó_kɸA1Ýw/+!]ædHFmhvµ¶ôF|…)®u>Y²° '!Nºóì.L—Hر–Ø tê=WQ•]ge má#q.¦6Ib\¶G¸&9lhˆž%­Ó7Ë@uÂ|®î~`1R¹ÜK …Ö5´W•’@ù¼°(rÐ:kºØ1„4¡i-ø¼zFP?xØØ·;ÕÂÓ+ƒÔ ;§ô©uyjë8h~ÂhÂúÓúI)|°¦¡VV‘Z=»c:Z~Zå°V¤ˆõ©¸4 '‚$eð¡°]CXßÛ-ìÂë•“5¥•”&œ¨hŸ ÷$M[œ /hØ£k º½(rŠ?Ë(.– ð'Z£rýeÖìjeX”ô ö- Ývuë½äu.¾î|VŽ»ä4ÔÅ1€êiÈÏ ]ª :‘{¸Ò¬€J”úîZÞ·¡D[ÏÂLëé«þÞÞç®RȺ-Ò.åâAõ·aâÞjDM00)—Êao­™‘uež‰‘ $¯±)d Qøò»1l´š+iqV”Ú÷‰M]V½Ä!ÒßY: ÿ±/¡½ÂF™0Wã‰*dõ(±š[P\ÒÍqÈ0‹0È7{>VµÎüŒHrÄ#Ì&~>ŘKóž4ÜWçŒ%L§º%)ñKÓz†fYÛ’qÙmÿYkØQH.µ=¹&7‰ŒË Må_f=âPk±Žþßû ÙM°ÉX$ z£ÿ¯UɈñ˜t}ÓL^'8¬•VƉXáý°Jw^É™ªY ÛȲçï>›h®g£gÏî­bî êmüÜ̃Ã$¨¢Më‚|:ìÍÝ"’w»¼i?¼C/ª¬î=Äе‘¯Ÿqñ0ÙbeÆ=”Ë.ÎôЯƚf&Á npi¿Â?(ds£¬ƒº ²nXÙÊû(ÙÏÜõ(¾(#¥ÌÚ”c[ÊrÒz…ì å×Ï¢,šsÝ¢·¶ƒx.“º èžT<±˜g;Á•B8;]]…àÉÎcœ0©M½âe‘sRæä÷m=ßi]l`LòöYF¶\  Z  QvìÈà!æ%÷¼»^m7Ž yh/faª¡B¢²~%>è*Ñ?­Qñ†ôáTï‹â™õÍŒB„Š ¦ðôê³™#Ýg)yP¼Ü.ÔÁÆ–™zÚœ‡oMAÎí N±‚êËÆâ,s¸óVju•…;kOƒ˜ð™àšÈ±Î¢ ®Ä̱~- ŒÅzÃÎÏ÷þ…•};¤^[)4”§N%Š‚³û þ Ò„W“à1mpœ˜E-%-Wðôý¬00JéMB?HMƒá‚9kÔ°À³-Df F’ši:2©§²»CâG'©i¼±:iïÌÊû%ø&¥=E«VcwVŸƒ¡ H´O&VcÂcÃý½ÇTc§/†Ì5–»Ÿ4Q« ™âN&i3NĽÚvó›Pä­þéÈ“ÝËT+ Ìôz”Ìí¦­¹‡¨ªßÔycÆÖu°Ã+;OZ›ª …î ²ñ¼ø¶?ClwHõ“é2ȶÑÐ/éMhŒ¡XlË¥â;,‹°Þמÿ€äu2É1¬‹†è°"6×j(øç2ÒåHDì›a$XïÅÏFšŸóì’iÚ¤–Ì‚Å?œ1$˜¬ÿ§ø¹Sâ1—` $­K¨qOY&ÆÞ–™"ÕòïK…¨ënýòl˜—À,J¢ j8© À5Æ*”q¶ŒÿØ«ž¾X;2›"€5F0 Þ]L²@dÁA›Æom F\˜´éÉŸá´Þ´‚_>(г‘&æŸôÅÝ@¬'O0r¶QÆMŒÇ¤¯»Qm«¸%' #Ç‚+ä[F3Ù<ô¬.wåãÊ(‘ëÆ÷ÔþM×+¦>sŽÊg:Pë&ÕµuIÍ&spÉ…º&ÝvP²Š2o‹’ôát›8æ’…•Ú¼JÏY<¨>X–´”wv×OµtL6+ér‹|÷õèVsä¸Äô$Õ”ýuuyûHÞ°ü”›üi¤Á/bß5j ‹èOsK ö?|®TQ-Î‚ÄÆAC¼~LE#´QÄ>µ˜ecá¡IŒ9@º 0¾õÄÜ¡Ñw¼.d–¤Cñ’âú#Y{ÿ×ß\âqg1p¸1ïÃÖ ä+V&ÍÒ‡ŸN+\lsÓ¨K ƒ2À«“Âý³ýLAËéñˆfWz5õt»¨&Aócl‚ç [puÆýV|,¦ªðÁ.µij9}°ƒ[öüt²b²œ¡mºÐ¢¿š÷”Kòh>ß²@Öƒo·\^¡¾N)Íð€vª€Ð‹w¤ ¹rçB™âU× 6¶ª]Ù6%ÅÒ× “ùãXÜKëf §æ_¸°¤°žV²E8ζª-ÝɈÑ+Ôåä­»(éi8+@r¼ !¥™ïo–Lh¤q[ÑI[™Ë©jº‘Gìï)Ö›Óü}œû¨Wúì—»%sÅ<ÑÍY=cÞ÷uÇúOdDÂíH$/®Š®¬N7¬2,"ébÍumä©7˜ûÝOC¡¡@”ÿš—Ÿ™®7ï šM«#ÍWŒný®°&¾µ±²íiX•‡¤‹U–¢DT“£¤Cœ;†SÀY†é¦ËÎ5³èŒ!uP‘Â55˜µ”׃e6ºu“ÎQžw€ÁTQëò’½êŒ©MýeëGW%óî+#€„ƒñ*']àÐôî¤Û‰~*™ŸJÝŒ±œ'Êk)¼öõ+­WºdàˆûÚè«ZÞ¶î ø&Üð}qù©nMã‹–¿¡~ÖŠï»È‘M H"ÿ{5¸Áß]'Òírqñlä‚fa_ô3uXª9Ž7¿˜O“Lf˜l.饦·ü|vg¥ä«{…Àß{Z8øáÁgJm<Í'.Š[ÅþÔßÅ0UKÇ!õÚ@/$ÙÝRiçs®¶®Ÿ~¦´ šºùuÃúp£no.ÅžøÎø²¶A¤ûæÜ›jáô†êßÎ-†nR*LÀ©RûÆÈŒèiTâ)f¦v £^ ¥;œß@[GÆHùí¿½ïxŸËÐ=Tðx‰õ´8Ànä‹6påÅš,k­6b ¨ÅcÃwU5bÉlÿ¥¼£û¦• E/ÚÜ¢&Am8®ÅèTnS ×’„> O8ìØՇžŠù×l ÆM^‹ÿßh­ûˆqøh 3 ʼ&Ü£þâ²3V›ÿÖY—ÒWÏø¬MÅ›Cßܦ&ø¢y¸öM6 ÎYRA¼¹ µJ¥pŽOx3;Aˆ¼.­Æ ¶"]œ¶Êˆy"±ëyéC¡ |õòZ«}Eyµk9˜Ò(ŠX~ž  ësôp·oÆåPQ•8Çs­£uNBÓ\BéÉ«Þ<Œgç¸è躢.+Â+S#MlSp»UPß'KWœ™é¹¶f’ºgX€ž„oÄHâ:ëçÒ!¢äÄç¨Ïž:YûÆ]\_úsõšâ+ǩޔÈ×Ò˜Þ‰)îbEc’åÜ­–¤—Cvç«WŠœu®F›D”÷»C1¶²éöèh‚7qêŒDH÷Éðn’ºÒžXpÌÛÙÄÙíb\ï^ÛÓvÒ¬*ñÇ,XRËÜ'£ÃI ‹E)€^0n•cðîlîp@ê–’…­"*#>Æ™­"*憀 ëæx¿xÇÙŒ$ÊitžætŠt†~D&/žiCnµØ}AÈÌPâ ]¶Ñ Ïú1Ñe²²“ç¦Àž.»ä–öH1¦´’N´óÔšY†úÙ÷ÔlÊb>Ñ^F»è” /›ä½Ú.C"ÀR…-·]½ ‹´‹@`Ú}šBx*Qå­2mp¦ 8ö 1W#¶_vТXf”£5CW?7̵ÆôŸ–O¹í«ÞZó°'ÚÌëd칦€ŒÉ^îÀ\q/£¤Ðmagçð5Y~èœ.lxAÞFméýx‹ß> (Òå\=nöŸÆ 3r}®R}ƒÂí3p ÀEXRtŒwq*š’X±Ü‹× éÖÚB—Š˜=­ºOr€@Ò ˜¬­?¸ Ì×Õ:ŽøäÐ3›¡˜´}‹y‚Yú.îÒ!Ô‡Dzµ«ÏžvÃ^©R¢Îuõ{g&ÂvfÖ¼GŸ™ö{d)Hþ–Dª¬vcÝ4T —I"GL„ÇÃijØ<¡P™ìß:'>ŒéRñêÊèecn\úuz¥àΫ$JE²v ¬ë€|hè”iÉ EJ‰OUn²·×ˆM®´¯¯Èü,Èr5BÕ!Q²øt¢ä8çJ)Ü×üªi»Â?œlK$æò—Êì$-¿ô¼‹g®ýŽiDáV䇙»NN,2ØYŒÌxˆfØ™9*¼%º¡«åšHôfƒ®’pˆ±V­Øgƒ–ʲGz·G…8TDË6ã-xÃͪÙn‰ÎÒ‰ª€\~‰´ü—ÌEè!Î_ÜáMVÓŽ&á86x¦úG¥™ï¾8mµâl­yQûóײq!ÿÞ¦ôœzB9´ƨ9ÉpEµ{0mVw/ûv£Ð§ÇÐâ¾lº¾#¢ öb$}÷(Á÷œynœf˜ ¾ Ìïº=)w Ž>³1rCÖ¼_[¥û«ì/»ô˜«–õ]¦Ó_·Ìä5sÖ¨eë³â‡“qGɾ™&ڪᲹa=–Øj´¹.ÊÎ3îKqÀ¿ÌàWþÚõ5aÐJ…‰Œ à+Q”“Éê–nã¸ú2kÒíçe\iq1>¾ ŒnuY@î¥Yû—Zý·W'+ù|«!*9E•†µ–B=ô™¾8ÊNòÁÆÛVýïA&:®szÎ!¾r%7Äï®’ ì ½Â¤giJò24óolìþæì¶­V^w’ ÓÿBX!Úª±T[Ì)¯B?u·(ØDéNw7d¬åÅfñgH¶; mSµ‡IBÃ1Ì­»ý…5ZsÕ˜<†q¼ÄõJ›zRÌ„¦¸Ô?ˆ>yK>鯊\Ñ 4~Ëp`øÙß>Jû26ʱ;¬ÓäeД¶B«5 Üië üè$Ö'Z»¨õ¹73¹'eó+zçèvÛ{Ö3³—Ê´§Dg×ëZÇ–Ò0:ÖIîKÏŒñ2]<Þ~zý`7› Ÿ& Ïcªåao(aqÜ -™'h˜Fo‰ ¬¾»Õý²>ÇEh!9ø_ÔOE ô„» Ÿ¾¥!nÜ|7t÷ §eZŸ ò–]jÉÁ±|¯¨Õ¿°AŠNW±;•n&øåo 0ÞJýc‘èÌT@é|.E˜¼0–аö¸Ž ÷†Z<{Xœ [ È9œüͧ¬W*¥SÍÔÄJÁ•ŒŽìXSïö÷°o.¦†×i;±½±‡áD¨kí@“"ÑÏ›ý+\ïn÷É3M2›Ûnê&A Í{'«#äNÛØñ)Ù…¡6öΓCËQ¤áíÈ]=Oìù@%zã§zžQêÒÙ¤ÉÆ´žË¥MÑÄv®µ—?8ëfûgÂ%‡ü‰€QÄýâðŸ Õt„Œ…¼·ó×Oຫ£ 1éÒ2³5Î\ùç !¾ZeÛuNØøf=CŽÓ =¦ªqÖÌoð^UµÝ,éúsš.dC½ÝЏ¿HÆBòeJàÒ£»gÐH9^–ô_ зÅ#.OÚ‰.¨OMA+yè¾§¨t뇻D[AÈ”nCÄ.mC8îX• ŽîÐè`S{àSw‡9â]W”Z’›(©ª,!à]v}°Ò’课Ї§¼–ÈÃ_ë^Ùó23“žQ\õñÀ[7ÇÐõí=Ú)ÛÒ4T¶,™'P%¬I5bìg[óóÅJÆ[p¹®k÷£zvúˆ;">!ðUg‡´0x.Øü_8Ní§J†Wµcû:!ËãO±|0dc™AoJ ejá†pÚ£¼ˆç¨U™üyJ“ÙTê¡3v“þGú™r²‡¸åæIÑìŠíÄ¡ 1vÂi)\>éý·fÅV“¬ØlÒÏò£5ØâÞ¬{ÞtÛçeO;½ŒÌ(—ň ŸÛdW ¾å]Çò®Øé>|šK$ÀIŸ±a IHÞÒqúeWALãKˆ{c-ùVr`.V {Ž,óú 0l!g¾ípu¶uxr÷¥ô¹äƒµkÒ«Üç+ÜÎØt¡s#ds˜îsw ^ÞÐçŽÉy†nL¢óR…!ÁS3ÿ‰wöU.î{bßÞŠf¢#­te¸þbˆ’É®×}Ë8LS›îëßÇ3T(qËݰmß ðúß WÁÖax úÂÞi‚î¬ðž(†L´‘B×ñT/Ó! “÷‚ î‰1(Øßcq1ç·<æÄg©—8'Íá›F6T…³=×?¬wd3‘Þ§Ë&Ô¤´XÃ/Úž­Êeò’@ªÕ»bp×]ç3v'…"Í—u(\Ì D"ÿ½™§><âa˜^¯îñâ-W^‰g=ÐÃKØz¦ßè.ɦ‰‚¨|ø-{Ûẛ:Õ¥Èê… MuÈ‘ÁÇu‚íhßX¹9¬s0©.bº`R3lM“ipšÄmfžø’ØWÁC\òl8kÀE2…ß¹/Åž× Ím`JÖKÙ<‚0ígjÇ^~¸¥gô¼ñn™‹mjº„¸/"ÊtAãdÄU{nï‡øq Ÿ)ÄcS)45G)¥-[úèf¦¨i'ö)Hèð6 H CkE•XÃ+Feõ¤Û(ÜcÅmÏRíóVO#/xÝ·tš}AŽÂ(/8ˆµ”úcæÄ0Ž:ZÛÖß@ § E;;-zÝ‘fÿ|ÙS…eBú–y+#AÃ!&¨Jpg"{&ƬK 8£íqµf½ï4nTçM1–N(Œ¶¸Þ›Î94»o1ÿpaî®ÅŠj:Ó2ª~u?Ý1êÄá‹ïÆ× ÈHøÏ59>”Ý=ð‘¯Î.Ô_nçž®X©kh²ˆÙƒÝ_)Åü=C¸ë] VPf¢þF“¢‡Ž”"쇮¦VåIRs¯MV®{BØóóHVø%Ô¬¹r$Gdœ³1qº³Ï8jåMÁå÷üx¥˜²½¯»nÊS MV “3̓²nE&õŽžŒHÛMÑ™®”l-&¨œ¾ˆL9ÃÄ|ÙâEm [Vº‹r†ÉÚ7é2ºhÁ4,9' jz¼3,bá°@͸¹ô,´ c»ì±¥-LÌ!ÈZ Ïš=¡—J¹r:²‡ÃlÑÜîá ½·'Ív™/M–dD¶|¶ g>…QV·M“)Xü&¸_Ý쎓94̪UûE˜ua=®gÿÇÌm‰¿òÒe3GƳ Ä„25ž÷ ­¸s† ùRmÆ»í·‚¼ÿ`¹_ÙÄsní–ê!=#T‰€G¥. }ˆYXî[ç…>´^-b5=~ÖtB³Š5Xb:[1¾ìÄT+æ^°©ZXîѱ£éí˜TVîçœÉ› ‘d:̯Ó®Ä|ÅhüôŠ I‚Šø «¿+mÝ ô4Øžy¼­¬°R×$sEé™ # ª¾d\âGFŸ¨U%0H_Ö~jP:ð]!|ŒQVátƒ;á1î×#Ô¤´ýÞ÷À@éq‹w“‰VW·pÉÂ9èbor±šôì8ªrvÉ‚ˆqá‹ðÀ4h?™9I9 ”™À]V³˜¹1¥ ¿a9ÌÿÝGL¯7Iý¯D‡ w8䋯«L±…L¸€o¾ŠúȪ¾™—„W¿ ­|3äÃ(H)pEC÷}–t‘V*á»T+Û²›°eäó…DP™ë¥'Ãù§?mMñd ä)Aa$Žh&Þ ¾T¤ûz=K‰TÐ܈ÍÏÓECŠ-}j­ºDnÆÑfo,Oa‚¦Î6‰¹e±\Ò ¬ó5¯fÒk•v¦ÅÈ|ÌJŒ¾R–ì^Ì@Ôeù?@–ñQËì|è²7±Ñln+ûH¥ÎwK/Û1Òr§×<†Ä¦q4¨ endstream endobj 85 0 obj << /Type /FontDescriptor /FontName /ZLZXGJ+LMRoman10-Regular /Flags 4 /FontBBox [-430 -290 1417 1127] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/Gamma/Phi/e/equal/g/l/o/one/p/parenleft/parenright/plus/two/x/zero) /FontFile 84 0 R >> endobj 86 0 obj << /Length1 1652 /Length2 13812 /Length3 0 /Length 14831 /Filter /FlateDecode >> stream xÚµºeTœÝ–5ŠCp—`…»C°àîîÁ)œ*ÜÝ=8Á-¸wwwMðà n—äôùºÏÛý÷Ž%{é|æžkÿØ£¨È”Õ˜DÌÀ&@I0È™‰™• ¯  ¶3}`RZ¸Ø;Ø™YY9©¨ÄÆÎV`¸±3Àíl P2u~K}‹`eåE¤HA@Ç7§ÀÄ t6V÷°²hÿ.”ÁNÎL&ÆNon È ¤{KÛ{8ZYX:ÿ©ÁÁÄô§ÒŸlQf€¬±© ØÍÉÆ ` 2È2+0ÁnoF+-0ZÛšÀæu 6@CMBU ¥ª¤¡¬FÇüVXÍÅÞìø_XÄÔÔ5¤â"Šê &#@JCMýϧ:ô†ß‚ ¨þæÿÓç-ðOº‚„ºˆºŽ²ËŸg°\ŽNVÚþõ2ÀC{K5wÛým µtv¶çcaqssc¶pqrf;Z0ÛÛþŧniåp;ÚÞ¾¶À¿Ä¸€ÌÞèt¶þ«ÀŸMÈ[™ANÀ?I’à9íÞ¨|Kz³;ÿ?`oD8ÿ©iû¯p€øm,þæÊ++Ë쌭@Î@1Èô-ÐÙØÙÅ `ô×ööšÑü  æâèø§‡Â¿]Žÿ¯Í¿¡‹‚ßžì“­—±Û?wÌäâäù?¸ùÏÇ6ƒœ¬œœþU0·²þAïôgϬ@m "Š2’jêLòoÂ1)€ßØ1;»;ÿþSOD\žÀÃúÀÆË `}©ÈL lg÷†Ú ñ}âVo<9ƒ=Xþ—®m@`7×ÿ¶›[ÌÌÿ0oæbÏ¢²rpʈÿWô› ñ¿m@g+躛Z²üi÷W-ÌlÌo4øxÙƒíæÆ¶N@+sàÛ¢—“±+àìèôñúŸŽÿ\!²q̬Lß„þ6,ˆ«Ë€ÌÁÞ™ßüÛõ_ ý;¨toSjÙzÌ€æˆ,Š`ç7AÐþÿ3gÿè%ébk«hl¤ý'¥ÿŒ3¶³²õøÈDhÿ`¥U;ÚÛþÃgå$iå4S¶r6µü±ÿ²Ë8¿i_da |Û”¿&?ãdû¦Û·³ÇêÏÑ`âáù‡ëM‘¦6  “€ƒí¯ øÆÂ?ð¾Qÿ-€EGQSK[›áIæo˜Èlf²°s};:{ ²¾é€‹ àÅö&i3 û_¡X˜A`ç·€½‹³Àìˆøg39y,`ðñïš‹Àâìþ»þO<ÊÆñ¯ÒXÿàS×jÎŽ` –•ÙÛý?BŒ­ÜõXßdÂöf{ýû—þ4 úo…ÿlQQ°»€‰—Àö“ÀÆÆÎåó¹¦ÿ:2þJôɯÿÌ+tš"®,‚Mùƒ­SCK}% ¦Ë`©x™O*pµeãaVÒ§Û ñÅs·ÉB_šý3¨¿‚å¥ùô}“@EÚTÁ8¶/?Z’*§~›©ïû*ø¢JˆŒåh2kf(,û—u’ÓÊæäësÎf´Æ·’4ÆŽÄxÛ»îcØ'_1.SÈ?•µ®çÁºγ5a;Úbº/£¿ï \žî€t~½ÇþmÜ+²B?g”Š;& gßÓ…µ_a`‰)”õ0ƒƒö‚¥ÑË Â`Ú9‚µj,®ž‹;D½ÅÎíþ^ 5ˆã%UæCXR ? L6¶+É‹˜NÐ}<;ÞpHᘼte1J­¥ÊÏysëXVid ¬€j7±²ÝdHGlÐÔôN¦k6+Ž“Q™õŒAjS¬â*†¿»ÉKêÖXÚ>íê,*uï"ft0‰Íû³ÂIëä€Á–5Á0±®%¦·Wè wXÍÇU‚Ëõ]¢ŽÉÔF-·«Öð8³3,QþºªÐ¥ÒâŒÌZ) u±5„ÄrT?\—„‹$EújlÔfÿŠÐHµº–h·]ñó–yk–VAá)]b½èK´Þa6é¿ oKG ì‚=ªé¦üp‰m„öMºÒ &ç–óL|Ô£0„:nðY‘NT -@©Ê¿§ØÍzê@ŸMçO(Zñ\ÂØAS1™ˆZR·Ij†{Î ·@øÑ±B™.×î®Uú°l⎽•F¢_z?j’O•Ar볇9ì"ÏžƒKtvL<ÙY@¶,¦…)>Æù€e3 TáŒ%VŸ§Ã‹Ñx²éàÊr.L¬ÑýȧכôG 9.N|ñ,†¿-½™¢Wt¹¿ØÖOyk(++Ü+”nˆµ¥ÎóÐDì·Ü,š fÊm7ÓEG³Ú`q¦Î†Ú™Æø©xDwºŒÈL$ÞÓejWtéy»ý,žÖ«üýŒ/kÙÒ=/™$ZJ"§žš«ŠùPŸ¬'ŽxÇ †Ûuûkƒ·„øZeñ¥½ÐÃb³üÑüÍÚ-É?Þ<Ó[Z‡X^“%Û’~‹‚ôi¸ŠfƒÅÅ—‰ÐÒ,n²?yÖ$×Çmf 迌K§40›ñ‡¿!ö¸ “ ˆÖ€±!a¡Áô/o!VHñgg.wÜ¢Bt…eëð£Ïû!ñ”×f…#P´ˆKêùìuò¾CÝ»£±½©í[„4ØÖ—"šÞs“Š÷fu"¼2-¿1ôñ„³èþŒÎØ\”\Ww¹ÿñþ…šÉ¥ìŸÓáfsJrC(cʦ˜&[ïÊ™°™LQ%K«$Ú£AßL¾œNC‰™íÙRìÕ‹*}A-j:ŒвNœ1#}G“"é…ÓãÄÌ1LY?ÆÒ¸ÜU¡ñpO‡åYQEÌIkd£íîÛ>š¨¨$™ú®Hʶ cÄݤO¾xÖ!I?PùYûÞ3Ùï>FoUPZ^UX×–áøxg;ÇÛÚå‹ÖÙ- s?_¨hœ¼ü)اÓÿRßæ£xL®Í©ˆÔÛR—/]%Œó~wé²Âg{ÿãN…ÙÕXlW”AXä›ÔÕE"Î/oÊþh|E†~.ÇÆd;dõBÎ×z׿%CÊôùßœa7oh&»} QæÏÙ~´ybC¡ï1„ÃhWñaž´Ž¼ªò­ èÝíA`Ý@Oo2%dÇÔ¦%.[%'R€nÍ£ç°,xŸ aý¼«}n"ç=ó28ö®zKÏ[Þ¥»MBfV¹dyº™¥íš’g¼'™ß}ež-¯!WÖ©Z6¨‡ƒRfN(‚À\"…NôGÇ2=²lè9›_ÒÇjžîZ"AnTªUñ¿£ü7; ÝL*hæìEÙ€Çüûù´bmíô®g5[}…?–ÇzL¿Âõ œÝq뫌R+KK/ÉyÃÀÁ-šcqº*¹ SŠjIã/oï°n¿¨@5ýÞTºL°\dù¾nl½î›ƒõ³¹Ð$:“ƒÝ¸×ƒ;Â9? ùÜYÂzt‡Ò^oÓ…¤K˜QÀ 6pÄh0†kiiõsÕ ‹ðT|öwÚ`v!þ27|j‹û0yÊ.îüUƒÞã-xïÑSFŠ{H¡§³*]Ì~lÜšßè 5?q<9®i&° ilUîój×ò¡T‚µç|A¦ ÿ¸„îsN¾‘m_·3š˜ÏõEñv9$Ôäbƒuƒ7Nô9¿•Ò|[Åd5:Aí黋]:u]`[Æ8,¬®ý§þ¥xS@:ìÑ –oѱ𢟓“GÉØÖ—‘¡glûªz'¦<©:´ÒLùh¯¹ó×kÏ;klìæpŸ©Xº˜”¬KGU$(ž¤»ZI8v¬-žú×O¯¦Ëôª‡ÖG¾¢•ýœOP¡æÌÚ¡ã[v.34Äã«%]‘0Â$™Vܪmß™–]o‡:@íze¹œ°›pDÏa ê,™¬§I0v …aºø¨ö ]E‰ç¦ W¯÷nÙE´Åß ©¹c³Tn,­+!ó@ñ¯­¬ðèŽ dRÎë ~C#™ÃaÁãÑ\µr~ÿ2µ›J+þXèïJ¢ -egf %t zL5â¯Ý-ä³7²ÏÛù¸š=2|qg’–˜°iñ+Dþ–Ó㙋Ò`þí$é‡ç$ó 6dmÅ»œ:\×xŒÅ²þ{í5ãZâ ö¯¥‰šAºÔ=¿Î*Eü‚ÅõîôœÌ‘z¼#ê¦n† Bwé“•W1³ºŸû;• 'bÊEÞMHµÃžd#wù'Ò8ùxà•u ®”øI ˆ½î.»ïGeú#*4Û”ªêEö±êÓÔµ±Ûø™ Õ½å¢ð;éÛ\á—c9Ýý¶6Të> ž¹EàPg;¬9D8tÛ?V1R£KDüâñàQïb©ìÈ4âzÂÆ(`jÿêV®§5šùI¦¡×žoûÅzÔÊAq;d_p&ؘ3fc®Žô¨É:D"Ó”÷ѵà ü¸+‹†¤¼Ð+Ú룗‘ŠÜ¦1rsLUÍ4˜ÕÚˆZZ\N´TÏ=lD+õ‡ŠÓ#}·ÑA%¨Ûú¹(œõgGšÇ³Ê0—®ï@³¤_ý—ƒÀøèM1äjÿ‹›x´>̉R\ƒmqœ¿´MÃPëåtÈÊñ–.|c®d’aUwøÙ[g¦Ûžïs¹“³·ÉQ™cM=jµ³µØ·UÕ‘ÏGï×Ú»©jPÉ¡#2iÝ(Ûšnaã@õEk¸},\m±$)q÷õ0š½†j*€3EïôÄаzÿÆ—èDº«® ’¾ÖY¬¤=4·êr8ãš… r˜à¼ç©UU^Väå`XFŠCSt[}¾ßü‰üŽõ¶jX^Áw‹ð)îh`ÊEÅ©4Sé7æ3+ƒdã£Rª×•RÝ£p^e>£¯Ðîo*Bü°üAØüä9ýxJkzæßÂX˜ T hHlð(F¿[¨žñ+äNkÕäJÔµ›L¤Y\À—8Õœ6J ®Ùœý— ¢‚³­™AÁ01Ñ¡úï+ÉÃ4I ßïc’èŠxÜxb£/Æ!k{â,ã ìª"¢=¯ºÏÆ-Âf<±h¦›éSÏò=Îðþ̰4Š滳‡­0ÊdêìÃ'¤É Žïtòô¬„ 2sµV|¿½gÿ‰ß"m:J›DWø(?’"a•FwsdcKS¹Ú Íò(M0'hÖ÷q)ð­%Âæôù}¯´u.~6!xŸ@e2<”7L†U¬mCztiBÇHµÌ3¾ëu5–Pê£sß±l’E+È/u¶:w.¼D8Æ•LŒ{üOøpµ~= ƒâ¼ƒîLKÐ?!¤GÒ©ÆJôû½°^àÉ<Ø800¦™Îê‚B‰P¶¡AFÌçêøµ³-U3¨±òêñ±ÔC¦²ºø™|ø^Íg×±±t¤¬Ów´Ðž…Ê¥:2$…J1Ñ›qD…aJÜ9­BMºYÚn‹ˆö+ Èx@Íï‘Ì~”¢ûêB]$î̯6…¼8©x\=$â’cÙ;BÇ œÓw›IÙš|ÿXUÖWW8N”*NÅeQmÂM[&ž|‡¢Ý¦ˆô.«v¯ÍŒºXã{j Ê画3þ‰Ó/}$eâõ?u{¹ÂÍê5ýh¾åxÜ|!$@£v“SÞœ•Ì·!Ã‰Ñ §±Ú©ö²Eûb]kÀÙT]™Ó¹ÎóãÝ^«6kËA¤ð™JÀÇöruàEh ³¼5íý²ƒØû y o¢€¾[jf¼üêD¬jy‚·’·7(¹‚ß9”+å“ ™'NÂmŒ·²º§¯F,`ÐEŒæÁXUñž–·:)ŽÏ·I1¿}§½q–-n.ë²B>AÈУ7[Û4ý8׎ôÏÒÄG؃Té1 ÏQƒž-_$©´–ܽükÍ6íú¸Ì5¬j»Á™säÎWNS‰S¯ heŒ}ÄÂø (ŠÁœwá7×k¤xMŽ~%6”øãÇ#"Ï|Íàk³SŸã>‡ùgoÅãõÉ”¬t?8œ|äË_uäö‚×Ñ¢zé>4“HÅá©d(¬«Ÿ½—õ¥„³µ¾3[^€}u•—“Ǩ*þÆ>|™^ñ‰FI3)”Zdø4rÞÁü Ñø³"ÑÖäÕ,ˆ¶£€ ³u²ô"Á%*͆?Lù©¹"WæìjÊöN2õåìL×Åš¤–W ÁzŠoõš9bïÚu¯,Óç› QÜ^dÚÏa1âVÏÚøñçÄ‹r‘Ê Ö™óé§DÁ誻XÛÝ@s|cíND+¢™mà‹*¿=“J+W'ú×kѵ¹-'œ­Í|ʇ&šI7§ÁŒÅ4]è»çγYwÊþçVšè›².ÖèÌïÙq>™à®Œðèâ˜ÝWöËKÅgñUd"6Ú6f+ù$ºŸgzÀëðÝÉÃø‚Å!¹=ôª®8#r"¢ßi{WÙs9”àmϼ§4T¥ ƵªâeûX "üË”{¢?E‹ŸÅ}¥EÇe+éø¹ƒ©,Õç¾7ÍÓ#Br²þ?ÎØ9Ïc.þtbÍÕXnÒ$®¯£'ŸZ+Ø·7.€øvN4z#¦1‘N‚:°Ç¦2mkîÛ<•>ê¹wó9Gô?Ì ‚l¼}mÀÛw“<¥æ5Nƒp'ÑBŒ†!Å,Qd‹Ò¶óïýO`I Ê"• /1mG}M­½GÉ´[Òq&„µu¨÷NꈓEöVÐPlš€Þ—¹…‚seÛ.ñ´¢ „—ÌÅ@yšT`v³kî8×f‡Çï<%Í"üŸ C_òi–ïîéŸ(_CºÔýº'"`ìË>}Û\|?y!SSÜ$ļ‰eIñËŒ †|òp6¢ïQ?Ëá´ÙàaJLpÎÆÁäu')ŒÈ"m¿†Œ6vl‡›“ñ£*]ïƒl·RÈÇÌ€ˆã+±JP™WlŸV‡¥9áò*ˆo!ÃSe†ßv7åß•]úúbèè;ôAðb› PÐX1K*ìNºŽp¤Þ¦E>ëš-Æ 1_;Üç‹|`Ó Gؼ'nu‰¤ØÃ9¼¢ÓùBpÚñUËÆÿ=™u•Šeñ†3^úTÌ«BÔÚøÚ"QaÃ6*ÑÌP“,©HšÙžûû[o-žkÆx5¢„ò¼€¦)´{’Uº <5Ð’6 GѰ &ñ”<®1Ñä3ÆõÀ9ÚdáY–d™é«¨û8 e«VxQu—mD™MÖW[•‹_uÓØd9) x”¨½† -‰ÏMÑ 13£ü€4e*Šv(:fÜ2þÌ܈[vÂŒ|ì]Á ž§Î -NL¼š õ£¸ AqIgð°Aq€÷—È=êU1žGš¼hAR #SreÈê$)ÏMwóÚsázZ™6\ÒheíUÀu™»~÷¾CxO0Wþþk«Ž!2¬bʸøµûò³vv¯X$®ÏœGš£¤ü¾n¹kÖ;¤\Ëë%ÍXnFô,®“êÏVæ”+C‹váÔœŒÐMræzõ]>¶Ÿ•Ö“ B¾è7yÊ çÙ"XPFD¸íøXX¥€[ë9f2_:Ö Æd´gø»×œÍCVÈÈ öƒÎ ÔAwt¤’{v^>ûo92Do›ˆØ³#æ*¶µ2Îîu:Ò] xr’ïˆã…î á8sÕNÅ[H†ª|QÌî˜;TG!‘T½Ömý½ì>O“aXš«çc¼™’ 2P=+I9Æxs\vfÌ mу¿h½ñ£-Ÿ:•Hš¡§±¢Úânvul´ E+ÑÙøröó"õ¾Í‰„x]0‡s)Ö\[ì˜iÐàq×·FÒM9$¬o6‘þ‹ÌÒf7zÁ¸x•)+KwÙ‹2.ëVS€»XÒÖUœf‡å³ Ôr,…ÅÀõöL|Ï÷ϦúÞıbn9½!PšËÄ+FXfjŠÈDesÂMÜê4(Ù Ó¶0²ƒ¤áºœÖÓí ¯úXCäFB3¥­ÍÒÄóͪpøi – Óyj¨Étã5˜g6–r…߈qi€]¤«H=ïÊ#ì¶åQ´V~O­Ë“¾ÜùÍÖŒ2¿§õ: ¯–â;9K-ße+™©Ñû™yÚ˜rIÀIncì ‰ºce‡AGÊ,Ç•ómqEzáÊ©l÷« KÆJ†ä†0꧇ÀjŒòY;¦€GX6Òpˆ'ÏvõXÞ'·œÐñ†Ô^¤ú¤ÆÞ5œd¿„e06VB nÏR =œ ;Ú8°ÀK êy˜\´ØàòxNÇÕzuOåÞÞD‰(âŦ„=8'EÆÃº¥®o“Ó>D˜b‚+“ˆ×òNxäj¿†x—4UúÛŽR´-Õô1Ñ®:ú0 0¾©“}B#L{7rà[„U~¿n[áA?è_&¡ãÖ$ŽH‘¬sMQÆúùIø›ZµÈEI™‚€ÞqâœW^òŸ¼`mű[½öéš MÓú›éŒLÆî¢tµp„×Sí?FJƒ¢:"¨nÅÍ>iœIý-¤ïø’T|ÎÈ®ÄÛI¡ÎŒ{Í÷ÖUQ¸Ö.©Ojĉ)rÀJ§¥ÐºžšŸÜl‹öŽSÝÌû¹AÉ0dH«ë­Ç÷Á{½I^³+Hó^=±6úLY¬áE8å@Nx¬ƒOA"Eg½ÏPV$}/P{¢÷ôô0‡–ºrC™X3æwô”Q×¥ÏÌuÒKCoz‚ú»ùu” ÿêÂôÖ÷*­˜ÐðÔƒëLjYÕšÙ…ÛSDa9V®‰q‡9”Z1³©TV׿£¿H‰SD{s¯R‰ËÜ6D.þPÔö!«„WßìËlw‡r§%â¾@ÞvË!Cã1±*zµ‡ÕÂP¡Ejü¼s;’ïüGÄ‚°Ž|QÃh­f x Å«œÛv;ÏYXد¡‡»¯3(wÑN±ç"+LÙƒ>ñ·téšç;ìPw& õ— „a¬x7 èÏXoíT ¦ §ÙÌÐ[ûU;¢Ä<§Xr-Ñ3ðâ—ÞùõìË¡yÌ7dªç;(<Û5—;(©ü0–ÏJÁ¼ÊM6ïaë× Â®B(#îABG*¿0õqá¹ÄB•5 <Ÿýç±7ŸÚío*g×4rémCe~ûé©Ömýì›lëCÅb(} !,Óòm ¹{Ö/б9tîÎhÊI‚8¾kÔ¾»ÁE@Ó»Œ‡ÿŠúhGr¼ñê~¼â'|Q74HVƒ@<¹i¾£¶>Îà®Ãu¦_Èày ¹%MeŒÜU?º&Ðòi{H¡&Ç:¨ ¢K˲2‰N窎üÓpÈÔS8¼é'Q »é& èÊqÑ浆©¸RßRŽsûÝVÒg7lã´qÿpÔ|þ[Œ‰P½K²jÅÍ -çš(˜±K)Boòí_#y±Kµ\}¬(жQ–Ö2ó4ãÓ«Š^ðóØH!JÌÞG[«èýƒ¼nï†c¨ç¼e­>hxhÿ+#ºˆ¢ŒQvïTÖEÚÆ-hU}»µûȈâÍòëÃJ1“Ë¡AO ~ Ç?«/œZˆËd±µ‘¹©Aõµ9ãˆ|šþ'ôˆymíJ~MÎ7H¼Š£hŽÏ‹?·%É^7¥V[I~Qø- ýÿ|¶™òÉÞÝý,%¾*qDRUƒ¬nW/v?ÝÃô4$Go[{À…ˆ ¹ÁKAT-løX†¢øËË餗±QjìÒ«¬JZÃÇœ8¥ZçANõêoØ%IräiK†›"ŠÀJk‚»óy`ºñ9ìàÓVî¡=4Ð|lA6ê}¾VïËlÀ;ªeÃ|N^ úÀŸ¢„⽩µ‰º|ú‡Š¡O–¢þ™DKI–¥rFeïîß˱Ç_eq­6g® (»¥£Y=H9#*¯É”õn—%RØÄQޫ諎…±·æÔ˜O=)¶Ï„ë'7BHÏþªˆaìçjG£ê—“Ý_Ьºœ—Ñ/aŽâ6•a-gžA™+–rnºyM“œµi:ÿ`÷Pw‘å,ÍUú)æ×,É.u±§ð:ã•æûêÐ]ƒ”üÞž@díjrù ‚—ã37ÚØõGü[rxf{§YœÀFÃClŽBk9"Ož©Ìð1‡w’¬™_?4Uwð5‰uÅ?g¨¢ê=(õ ?È\sûâúƒVÇÑPüCR_ì˜S`U9œÈ–d~°Ws•㉒ýøÐ–‹m])ðò%™€æ¾¯„Š >¥OT®xØFYûL.08ü5êC3nÀSåìà;CXÆȦ¹´éÔÖñ›‘-ÔO pî ¦ï(&ŒHRöÉ×wÙ¿x?¡ "泤x¥Â€ úK J}¼¡I³#óåñëQ“™ß…b÷® úÃ²Ž‚K}ǩٺU×?hÓ”rèµçÉTýfh)ô "5õ€Cý <ñmدPõ:-PÃeqô©ÉëHª‚¢pÛÀE ÐüÔóˆR´'Î+a:«ö‚FCþXáî-ñ¢é}Lkñ£Àl”øÔ Õäp~þÓš>1arèêâøf{ÆÃ›gƒ5Õý‹ñ*E } ,Ò`>5¿Ÿ‡×üý3êù®eUJ|æíD?6{ ­W6Íy²½¤{™šÝ/pjçx0w)üQw>#£ŸN÷¦"+©?@qùÎt?koä²ùåQãÌõ&Ò(ÎŒN÷˜߇²/ò÷Ȭcy°{NÎ9æ´]­ôfäæc8QJ7_aê—«…7ÍÓªô-]ÒUßÙx2=›[ ®ôTMµóÍBðpºMkHÔȪ¿äád”³¨|’$ÏR¾]Ch!|™Ô:f꿜¿òä§æ$Ö½SBÅâ…ˆxE^ïòùæÉhC²#Pà}—%8tíΞØk­sÂ2ïkv„Q¼<Ó[;ì& `@fÿ}ž¾'—i1ѾsÅ,©­ÆäS “²gôÀ‡õºˆÙé¾)ª2<ÌK„éÞwlíªZgù…*€(â›9·§˜se+òíÆ‘,̵à,{âGÌB¹5} ÷`ôk þÐ& ê¼9}_½Ë/ú|Xkª*24jP[äcË¢þ+dTjÙ»DuìT,—uÒ\í|kÑÀ-ñ€°º2¹šêlì<¢ÂvŸ“m:hùp+ —8¦›‰‡íò´ò¢Ï•‡_–~Gžâ­Ž ‰·…´³Ý&'1é»íTzóÛÞâíMˆÉo Ö…·@Þsç§Ý|bÇÃG‘ë(›=Çׯ]°Ør±žË08¯@„>W¶ˆù9™µ¹T‚†A¶XSxñŸÒ.¬ÅO£ÂÇ©ÄqøÞ—Ì®V&óºÉÕ[aÌiÛ‡¼«KØja;ß…šÂ+âM|醑Ä<8þTd°Â6n€¶u^õü·(A®¼'ˆDé•´<ïJ¹~@kA]ó#3éfÎ. {®ÂsþØŒnd¼c|„4?¿PâYü~ðc;¾tó+™ØæSjŽZ?s ‘k*×c¨¶‘¨bñõDz/‘ú¹g™›µsVÛÓ¤Izºß—Oð?û­m—VÜBÐÓ\žîHdËôº²Cd>g>~“,uÈM\Þƒò±(Éþ†—[é°gFVPËcî~¼qÁr÷u[*,?Swä;ú\[ªó{PîÙíÎD¯sQ`ŸoÐkT³àsÈãŠÐ_¢å'´ŠKF®á1·‘Õ´‹eô µg`p¦C)÷ î];JÆ“Ío¡[zh|"r£HåXTÝE¼ÕˆS_ƒ ™t*YpŠfè+­^H0 âL¼‹$„Ãà–õD„Ú=6¢H áËÕ<éfÁÅ“„+§±§KW¬rƵCIùÖœMܤjCp{Þ‹„ñ\sùŽ®^&k)v.Â…\ V‘ÌãösZ¨ácHÃé³–=c' ÉaŒc0ís@ÞÞ…YlS›kl¿ÚP{NÄ’Î7"ˆõýÑ’ Øwh{í·>VÄW¯°Ü Gp(S%ÐP†ú¡¯&FºÆj²ÛÍ¿ýÊi–È¿=tKÎS1šØ1,XZñ޳mõ÷H,Å¥hOÇuÔ¢ßÀÅʹD-W*;Jã. š¶* ·Æ~B´S9µÏ*[ŽŽ…”߬<™EÏé‘@:c´zθíòÏXBÍúõ¦’‡^Öªv’ªîúØ|G™ül™é< ¯\i˜‡Öý³á ÔÈdµøå¬É¢þðu_h¢:jÁuÓ$ßËì˜MÖ²)#’™VwÒô©¦–ÛRãyõÛÁsXðC1î(«ìz¤¥{ Àëò˜ý—d°Éøáôdcõq‹ú<ÑO·%årÑ8ß^¯›È݆¶yo”©¡Ä.JbtžÐ“)žt'¥¡k+ùíf@ߥì?=#ØGìψú¥aMKŒk'ᇰããÎìlQ¨z s|t_mm–5}»7Ëq¾lEeðÒúùƒÆ…òÜÃ,:/ËÓ»_½¡âRñ W§Œ©jm$§™b:n"I¶åNù—§ªÕYpIÕ¨Mç¶Ä¢QYœ„™éՇybJ¹ÌM”ÀÞ•¢¢U¶¦ÓReÿ±ûñ¬Ä‘H”2N¤ýC(•Ñø€EG @ødžž{_ð ËÆ³ë%¦ #x®¯,Ù% kJèÜÚÿ½J•´òàót`ÙÍcÏ£µ M1_¾†Àï@ÂÇ4âÁZ÷Z²¹èýl¾%ºÚ]ö”\õHo3v°Pü¦ö‚®D½„dQ%Ø8“tÌú=kîWµš¢Ì ·#«xð$ÿliò'×ø&úyюՙϬk¨ ’© ¡ø š_vO~2îçìÈF–Ç~lÎ „»”ÅÏÖÊmèqob·4ª¦ç Ê‚Ši)PÎIUÎÉm1pËaŽKÜÄ]AÛ¿Y¢Î•Õ‡«é6°Êç½f1(‰0ñ#€°`Ê– îÅV~hÃwнi-ø°¥¼Éò-Kç¹E+áÛO1âY¹×Ë5+ÁõL]¥¯Å$¹Á‘‰f­f’ ‰gétïÚŸWí‹6Ðï~½£&H7ÚŽ~•nú"ÜÞÅ+¥ëKd‰£.ܧp¾MoÐHŠLÁÝE ä.5”­[IÝÁá’öPH`/ôfØ^}Öd>Jšç—Úº­Š@á>$Úvú\ÞN&ïô~ !qáẾíDWÓU†ÐG(æ–a4B¸ÈÀ…hÚÚ^1ÉFÍ5Ê0aXä·«äÞå BÉ…ô¬Ãl‰|uùûÔôâ]²çc·‹[ÔÊ)_x¿{Ƴm™‰Ïp"Ðg«cëÂÇÌ7½±ñ¹y5KÅ5''ÇTµQcWX*­¦FýçíœVà—èjÒ}ŒZ?¸“éå¨3à0Ìû6&›ª «êÃn%§  V=º¡+C§³¬‘ÀPŠ5qÒˆÉßÕý6IŽ'­h \׎ ÊÏ«4ä-b§›·•:Lšd"áŠÊ_%„¬Câì–äI$&§ÝzÄm%j‹jbÏcâOB¬&ãׄ¼|Ã:²„ ™éºÌáœ%<í_Ã#u ,©éÃO¨$ée³«·“íÄ”—GÐÒ KÈú´8Ïqx•÷nYnJʬ„ƒ¬k³Ç"ZVÓ§igcŸš¸ 6z¯Pl¥¾†Ô˜˜k ÖŒ“¯c N–-ÐÅÏ”î¥d¹vì>¥9_.R8óì\—ŠH¸K œ¼ëÆ%ïŽ(ÿø ·°×ÇTŠíjT£SŸ4þµU–‚Áò> ,â&­¤—‘õˆ5ÖúSì±ÙïÄáë&+¢…¾ìDë. ÿ ]±}\ºRÄãöÎÙSTKÖUËøÁCb1m³câϸ^Ñ“~#9֪ǫ]Þ—‹Y–DÄ¿ÿ×BÓÃh^v¤z¥}žPjþ’«š[[ПTöÍ9D°ƒÂÏp­!ðñ'ô‚¼ì×pÏz5{èNè„ê ]Üàt$¦ã_’;å 1ûj 3™Ï‹ !]ކßèj„FyHÞ•']”’Ë×ör%Þ¹P–Ë<ø"ú~7öÑ2ýÄÚŽE¬ÝÇÁ ˆ~Æ aÇfyÄEi¥×Æy/¬¾º¼†ÛY°ÈŸAËåÑ$TpCèìŽ-ó!x·$Tcî ©äaÈÀ§åw)ÇØ¼ìõ4R{é¶AÂK2GuÇñà“~Ú~‹ÃÌ£‚Öeta¡<¥ýÜÀõ®åq3é+Piäl Ò-\}oø îiBLŸ¨ul­oÇ–«›{;üdcõa ’Ð)-³‡”n= £Ÿ‘N–L ÁžÃv°Óq©êóa5g|22õ><î¼­ÓíuBt%*;M©^Ýèy8tkìŒjnâ}W†×©GÀ€ƒô”+Y`÷\l‘â)V7sõ¤¤Cø‚š·äû ¥MröÝö3³ EP¥+e pLOáÞÄW~Hœ[›5—Çñ­°Lî¼Í˜Áµ‰BŒ07_ì!d“ßHÃú¬¯«fh#±¶²É[PŽNsÁëO†`Ùî‚oîÉÒ'kÛj4´†›b>©×Ç,S³J»§hã̃’3þœm€Àà ´Á8[—˜å㩽®6E—u/g”d›2¯ÀlÍrt%¾µþl2V4ª€‹oLK£Ï²‘îU‹½ÎnáRíZ¹º¥@l(G=y·YÝ"Y—ŽhßòÕ˜1Ô!ÙóoŒ©]D¶&Òa¦Ï5¼ôú(xåò•4‹nÖ°”š¦kî’ W´X‹—®¢´ªˆ©õ!«a“Ë¥ª(æcE„Õ|?@÷õ½~þ‚‰¯á{˜§¢ØTÔ¼ò*ЭRø Ÿq½Iàæ' ¨³øžÚÎ~ãv7IèÊ‹áwA=ˆjK¢òªgô¸Ft4𥪔¶ÕëÌ=þ,Q"M&kÜÔGDbF›¬œO¤70ÛÞÅlT®ÍñfòƤõ쨥ÏsÅåýÉ3™Ñ?…XEÈ“äK°W)¡Rê°~mâš3°ëê-Hžò,´ãWxÉUEX0x¥îw) $Ñ{‰^$•|=z•5_…­gÉpe¹‹Ó+#´Ã¡ÎáÉŸ ê’°Óz9Ó³rð#ÏUfƒ¼Oˆ-âßv Ùê '#÷~?êÒ,±7Ý}»,bÁZ-·û”H’¢‘´Éî8i.u ¥ 2á¾”éÏ|Ô6š8vo‰ï÷Ñ{°¼¥€Ž·LëA‡Êíå.‘c’SÇlxƘ"p1=möAqNÍmký·ÆFC¶†_‹q%ÒwûhΟÍÉUç‚ÅàÝŽ™Î1%m‰¹¤ø—úôÑr÷ƒ©Ä0:2yË×_£#©'´`ÖJ(‰Kº9KÏõ.pnŒcÄ …¦Žº5ËÃCtŽ©™‡œY,F0ãëƒCy¨Q4ë.C©ª-G[&öàÙáÓÑ!VF•ÁçÃf4»:¼­/|×ãŸ?úVmKh³JÒLwóA2ØÖ3µÇþBŠ ²²Ó>}}h e¹‡õ“¿‹$‡@¿NbÅgáLBXÊq#ø™òÕ}3¼\Zc›]LY'Q¦-ÎÃ10sXåÝš÷á¿Ý%õóÛ,"õYÁÓ¥“èÕrý$ ùèm~ÎrÉþÙGOF€Fþ!éçè`ƒ'ÌÊÑa lò Çæ(=ßåw;EåÒ‡Èï—@>E¡ìÞ \¡ ùa×ð²Ñ­øñx·®^Ó¤Ó¡ìvÞ…È$u•Ò—ÄChª’û“àú_檟qn#sÌÖÜãÔ„6âÞO¬}Zª{¸pìô9|z¥ê5Dm~=¢ù9s@Ü\ÅVÅ)Ä=Í ˜jd:s- ©56Ìl%úÈ–Jþ1Evä:¤bc«UÍw—r|ë’¹ÕŸMœ¯;)×÷`Ô£ï˾§[Ç]zÂ,³jëÊ´•£üyÎAÄ-µã~Šl*fß×úšqŸûqŸH‘È ÃÍ•4 þ+Ï÷ßʶÖkU¡ŸcR‡?XG4¢B/—•÷âu;$ÞÓSa©±• ˆ~%,ËÊ ´]ÿ¡Ma×›9Ý!ï.ê ˜|=VíTn¦¹ñáU‰Et›È Ê^ þwE8¡D?ê¦èÎÎ\T|ç|-dзðu£“«!þýà6þ©ÉÑ E…{ϳj·Ô’ÂGðw.+9{¨Ÿ¤}²%´µò7Í’mUY 0rBŽßƒ­²µ¸–J íãçìsJØd—^ºàS¬x’Ks@Ð]hË”V*a£9›\ª6:)ŠªY¢ÐsÁ)Ç ÁÔFUbhªƒUEmxêCnEf08-ŽY_(bÎwÌ,îª$ûs‹8æëî¦:0’Zcù ¿à[ æŸ+nV÷U)<8{âÁÝ>‚ÇÔÜWšeüŦ‘Ÿ¤f+Ð.rkáKéëNl<ëCîƒqþ?{®÷ç endstream endobj 87 0 obj << /Type /FontDescriptor /FontName /YNVWXX+LMRoman6-Regular /Flags 4 /FontBBox [-515 -298 1647 1125] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet (/one/two) /FontFile 86 0 R >> endobj 88 0 obj << /Length1 1795 /Length2 21705 /Length3 0 /Length 22858 /Filter /FlateDecode >> stream xÚ´·uX[ߺ-Œwwwwww-Å ¡ÜÝ)^ÜÝÝânŠCq-Åõ£¿}ÎÝgŸ{ÿýž<Éʯ®1Ç;WBE®ªÁ$f2JƒÀLl̬üE%u½‰/“:ÐÒÅÎÄ ÀÎÌÊʉHE%á4[ƒ$MÀ@~Ø  b~}÷`eåC¤È€NïFs€©@ 6Ñôp²hMþY¨‚œÁL¦&Îïf ƒ¥µî=Däèádmiþ›ƒƒ‰éo¦¿ÑâÌy3[›³­5ÀÄÁ Ï¬Ä P¹½ƒÖZÀhebgY4º- )u €ŒºŠ–ªó{b GGÓõ"¡¡©%ÃSÖ”µ2Zš?5ïý[2”5ßíë¼;þ W’ÒÓÔS•bcù{6€+ÐÉÙúoÙÿÕõ{g€·öjá²ÿ§€Ö vägaqssc¶tq3ƒœ,™íþéOÓÊÚàr²¼_€vÀˆqq0§lüW‚¿›P´6:8ÿIƒþe´§ò=èÿŸÆÞ‰ÿÍi÷/w€3øe¬Lœÿ‰UTUUØ›X;€&fïŽ`°‹3Àøìý 4§ùWƒ@€„‹“ÓßJÿmrú?eþ»uqÐû}¶óò1qûß;fâàâìù?¸ùÏÛ698[;ƒÿ•°°¶þíÞùïžY;üƒ)‰)ËIKih2)¾ ÏI ôÎŽ3Øü÷ß|b’Šü^Vn'€õ]¤Ræ {û÷®ÿÒ'iýÎääÁòéÚÖäæàõãÖæ™7wqdÑr°þ┓ü/ïwñߘ% `¿€îfV,Ëý£–¿0Û_ø/G#ÀÂÄÎècm|¿ z9›¸`' ×ÿ4üç ‘`nm~úû° þ“]ÎÁàûüÞÉ›þK´ÿ *Ýû”šƒì<æ@ Deø]´ÿÿÌÙÿª%íbg§lb¤ýß”þo?{k;ÿðü_:À¿½Ò*ƒœìMìþ—ÍÚYÚÚh®j 6³ú±ÿÂåÀ&ïÚs°´¾oÊ?Ößq²{×íûÙcý÷è0±ý¥õ?lï’4³u:;8¸ÿ1ßiø_ ¿sÿ·]‹žŠ„’¼*Ãÿ¥™ܤÌ@æÖ–v.n€‰““‰"ë»ع¸^lïš6ºÿ£ ³üptû,@Nˆw“• Àü‹ý³ää°€þ½fcc°8þÛÌú¾2yO; øß(Û¡ÿÚìÿs¼ÃvïSþß×»ØÊ øïô\ïùÀn —cÜÿÀâ tú—ý?ÙQý{:ü#|ÖÓõ_Çæ?k °È¨cmþþÈø.J&`'kw}ÖwÕ²½ãï¯ÿþfð¨þ=pÿ#Z\äîÅÄùÎ4;;€“ç/E\>ÿkö¯쟉yß×ÿ^ÿ=>@ ;Ð qåÈL Øæ[sh™¯TÁL9 ói%®°®|ü‡•ô™N"|ÉÜ  Ha@«u!HQ–ßÀ79À¡X—*Çîu£-©júÚ\Mt×ÄWÉ—UJl'_¯„s.£=¾ 5~,Á×ÙóÃ>õ†q•Bñ¹¼}-Æ­h­ÛÉÓ}°‹hy¦ üö€ý5Ú¤_l…~Þ8?w\Ö±¯ë ÒÐ S$ëqíK/¢ŸAŒÁ¬{막¤f 6î0ô6;;¡ÁjÇ=JªwXR©Ë‡llWÒW ½ aúxv¼‘$¥вU–QmP®xà­¬y•ÑÁ°ªQÜĪNÓM ‰aKW‚Ü×&ª>Um}EŒ‘Üç\½âS¬·_Au"\uÉËá°í& F`Å»%…LÖºš«ì²2K1ÇG<÷V[kd´$ŠÍ”eñPÉ0#!t›I|ºë]s(N OÌ9(—heàÆF²/CpðHËä®Ýð{lwÖ¥àš’+QhhÏÎehV·þ”” ¶ØÅ»Gº©˜ê·Wnc4±Í¹tKÕnÁoRý=1º$ZÎTdë|^(&zøkh)ÜA|gæóÉç˜kôH¶$T}PYÃÒƒÒSþÁ>2‘‰²› Ç0ò(jq–B|¢«( $Î3?=×èª[ö[bâ\ƒØA¦êÝÜhA_W y«A?éív4—IR nþ±ÑÃj5å~oé‚v<ªóuÝ•³ ×– ™2Ü%ÆáŽýíåR#³€Ä& mÈÓMäf›Òše¶X††MEP1ÜËK"@ó]“È{ïîU½ë¨phyh®%ÜH'÷éFŽP¹Âwi‡aºñB#4}#Èuñ‚bzZ×3&ásã¿tbŽT°œž¼Ë‰Îà …K0WŒ†0§¿ý¥Ö=B þœïN)¨¾°ÅHùûÛž¶6/Á á:…l_,Ôö×ݵ[Ê]ß•DAŸ ˜älkQÑ– £„eÄãþiÝSÈ.“¥ñFåb÷Á^S=¡_· 𧇶~Ц¼!'ŒyÈ?íÀzKS+Ÿ×V õ0ÿ$ \åI”é H^Çw³rî0G>ƒƒ0FÇC“¿€œ^Tü|^|!ž¢ë®š¾ˆž+{a;yÁƒh~ ;_ ìÇâö^ªÂ«ƒ«šlË'’“Êζ²ü’×£Ï1ª®<Ñ,‡ò& ãE˾ÈRE qdÀúÈõF¹iªó•urb:ÐAQ±ÉË@_Ãkî-Þvæû؞Ι«ýŸ›ö,t¸ëC=%1^\ S+ú/9ÏueESaÀ+RóÖeyï%UeÝñ€™ è‚ó2 0™fªç£"y¢wg¸óÐ*„E“ÊÍ´\"d¯]È'qFè}A”FD΂xó­š‹šӢávhUŽú»rÉ–G¬wèV šè‘-uÔËTF„hD3º¢n³ñ·LK¼¼[“iùâ*,„Nm«ü"ʡ١(e1[ÊHÐNºåÚõöøó>45"牟‹©3‡pð13O¢U:檭QOÌi¤xC>jþ²Kò¾ëÏaýu z°¶öùc”[€Ü—µ^¹°žüneí‰â“oÜ¡ùðŸoÎf±s/?1†ãݪ?N·Ü²m!zT‰¡°ôj #ÊúX~ù²iºgC½r ²Åóq¡Aª–„Ü‚[—GväºötåHuêT‹BïN'Pwq“ ¸;‡;rüêí $Åy'8v<ˆ+úÖfzx˜I˜kfGvÌ>ŠG6SbIÏò'º\ ìy¨]¦%>êP4!»GËC…z[uÅjktÔÐŒi£4uÀ¨´Öæñ7¥v|( ü :+ÅOÜ#ÛfÚ²éÜDƒµ9ÏtÜN'|^^Ú+šlÞA:‰)§?C¹°u ͲŒQõG?4£ý—¼^xb E‚Õš†Ë%a³ë>D È)í |©Õ) d¬”3(ëjÆ‚SÓN’yr9.5s$``ùPßõ©BôòçÆ^eW‡«'ëËùÞ¯)ªB âD'ü°«@šÕW`áÛÒï"-¿›æà›=ÃϘ¥DÎ%ÈxÅójÇ^”§üPFvŠHŽ…q™Kµgž4Ó|ùÓ«ö‹Ï¬ré 4º\2ü<À@t'ºH1ˆ]ðÂÆ%˜Ûs°š™Ž‰L¯Ìr†jö€s«Jíè5Ÿ!›­)þÉpÙÍy¨¡´b¤¢NxB€2ß½ôÎ^OÏά³›'"Φ^ûO¯tÞú+­g@ÂxÉ\iF·§SsÝv奸éQa1w_l9]_Za‹² ¯6±äÝ¢>Ÿý@­›Œ¶Ý\õÛLwø' O‚c¢P®•Ë4¶w±«³þÞXùYwêPNÄÁ6xzXÍÈùÞ’F’¹_Iú1M.Bz¬ycùfFVè”ùÏ=yÁõmdl£ ]¡ÅPz1:æÇ¤ HiŸý&U w|î¹_H-^;MJZc –€fñæZÔº”«iP’’Sâ'"ñÎõ«+± j÷o=Yh4T[«%#S¬}MYýø²NOi:Qþ‰º!Êiõ±X±LM!“OW HHÆQe–dRIŒøØjÖ«*¸‹ßñÙeI;òÖæ9(/ÒsçK5qlÂŽzÊMšPpñ”ð¿vÓé0¿t¾ütþ€°…F¸@ &òÜòÚ@áUû0ÜëŒt‘´)”QKì,ýX‡ƒCƒ+‹ŒÜŽU*Á¿úƒŽ"SÒæ^ÞM;7=ø¤njQí3÷•Gd„UÆYŠÍZúì ‘åjýôÓÀh”œU_ª®õmƒaÚ ò:d¤eY;pm÷Ó¨«·¨7JãÌ ¡l@JîùAŠõ•¸¿Ô¤qöÇ),Ód´F®Ùˆt™ýýìU¼Nø1"&@7aq§|Öqø¼¥ žòózKnb_9«ÏéÛ?Ùž\ð*–ñ. ”…±x‹*nh~¤M ê)ü–Gg¾ð.=Öhúî^9§þ¬§±5„‹ò&F™´-öä‚ÈŽ‰‰øY¦ê0…Ê`û­t‚aÎLü0#;SQ[Q]í‹Õ8‚é“ZKÔ‰°dK´*›Ió«¬â^à‰_× PÍ+µ£Z¢27ÈÛ‹±bnH¼IäØ×|P‹Ñ.“Ú·Îܲð` åoÒ‚žkX-!8]§%ÓÀWÃã(öÚ&ÁE<ˆæò“€t×J̿٠sadrЩ&µ¡HoS¨¡Œ‘¡¡=µ¼±æ’‰Qãh;0‘@ä«]CÏ€*…¥.«\ q˜RZßÌ®à@À á¹ãrØ‚k¢Òغ{dž5ü‡±{ê:Ñ‘`f³¼¦ë¢>A£'ÚùVÚ¦p~?¼NÉL°ºË€Å¶;UåcCý}]yL( ©ïµ7§àò ^ŽÚΔP¼µ+óHc³ÌÊë;_®d¦PI̜﴾KëÍc—',9âѸA…ÄŒ&…t»k(aK6ÍtŠ÷iøÅ…VÎy®éWúzãÀJ)²íím*9ÇaX‰p˜õàá±jËoÝî4„ñç9ç m<|ÁGsWš¹EË0¿õ³o/ÞÙÎJöÊóŽå{,¬{úqô\a(‡g¯>þ‚m÷‹©ýg¶‰Ó¦÷Gñ-š™¿lãPF?鯲v¾”^ a½ÔP‹‡Èsˆî˦LØ£ùò_dÿÚ,À(pº¤°xVL–³ê>¯Ï ×ÅJ3h?h·)ù†ARäÚMÿhĉڲsv¾äñÞ½"…†“ÅÏÔÈ1áÖb'²Ž: ÈrX2há–¶Æ?Ð(È0›^¶Ð1Â:RPµÇJÓ$¢ãpl{°õ@XD_‚P‚ñ˜½—zõ©BнkêнØåãçC?·I=SòØH]m “ó„Y':ýFLÀ‡Oor·Ô:Ã~—uûbVò±ì€LU©hA¦æpzuÙ?âQêZ®Ñ­[=šÛòÒaP&ž²Õ[漆ñcQ N~Ñ©ˆÙ‹é:BšÒþ¼hײ©X;qŒñçÇôüxÉ?…©Ý•š<)éƒM¢g|{dºÖ©œÔ¡®„Þp¨%j¢$ž(‹Îd¨|ŸìjÅ´ýÝÌYM~bôŸ{JôÒd÷[›¦q/R©në!â~ý EVrQîldàm9³à¬Ùªï—³Î&§Bpå Ö×þСn¬Q9Øûf [Ÿ,˜¨ºçªÓ6F)1j]¬EiiwzÖOÞ¶šn˧Q£]Ÿ2ݳíášÓ9>Ê2uáºß«l,œßÞ_™SÉ\Ïñ‡ŠáµÌ;ô¨IuN£[¯*Ä:犷ÑǯãÖŒV€øåWâÆ¾z±š:v¦º1RAÅ](s·`¯hV}1ÇÆ±ó(AAÈY7Át€;Æ9¥)U1ªngÚäYÃŒ‰b0é8+Ú˜Ú.*(µ¢l!¾þa| "¬þÙel6<ƒ¿|—ŠC6k¶ë‚"w#"Rq¢“ÍK¦[œKšæÔ­ Ç<—óEÀX5@³6" ™ž9 ¼uThÃ_éV÷ (*Naa¹#žHs5QSš©kºðùc]*ÈÝ~1¿äF¬£H„=æiÛtˆ9!¶cØÝ?^¿pH딥ˆÀ'‰˜?¤é‹î u¬¹†Vƒ!(îÌ¿ç5¦£G°íŽÃyfj ›¯6z»gz~+â¹Äêdí*`šüb‰]¹8בZ‹D¢7ˆ '±ÒüÉ#Áï1+gµ³R·rZ†€fqñkihÞ÷¹-µÍˆ@a´ùH?OVuG­ðâ÷-v,´Í“ß%ÜïÈ ÅrƳàšÅ0¶|±ml«Ž<Û9yeÿ7\1è7¼²vs„ì@Wø¹ð@lš‡.žÄä!.Úçb,’œ‡°ô9ñU³TäÉ­ã©£u \¯\[« ²¶ŠkÙQj"—ÒfLã{‡.ë+{·|$ªnt%Ejh*7һɋ™°ö·¡QþûWŽXG^/¢|ŒÊ­Jì#YÆ«;Ûg%Œ‘áŒWVå!BÐv®$%<Ó¢ƒ¿ÏÖšÔbiG¿œ46dˆ`8YBGÆÒ!oüìHÕÆ¬µn ûí·ðj(›!kû6Šo‡@Ž7Ý-´3´ú„T¯_Ç}z‘¥¤Az»…œÙŽFY)¡~Ò%2Aûm0<7gÛÜO©{Ï`øªz*Ke!2:ØË+Û4l;E5לâ I€®ò‹ÐZãfÔ§Ú£D:ø>äæU¾ô¾ëY9VC{IfŸ(](DÈ‘B¼fÇB2æZBÖ«êhçeãC¹Ó ò.¼­àž™c{ñ‹®*ÉŽÔI(¸Óäo O³ûõâY¬Á¦‰=¬ÆGc{òs„5í¯n"ú…‹¹ƾTklNI]È S:íÑÂ÷Ší¦pÆÉ"^µ¢‚Q>ÃþùtX°[÷Ê]&v ˆcD¯8ºRƒ…¡òÊõÒÂlS?~ae+üDq–V+«ñÃáEÈãõŽ¿e|8æÓð }•°¥ü¡1¨pU€C'ïŽx¼£³—ÅP)[Y .e•ÉZ$Ê'™BnØÁžŠ4”ý‰ÜBu!R@K³Æ *¶­M9[,îç Ñ 2š%aòÓ=¦Láâ Áhõ¹ŠÓX¡…‰+êâÀ¬[_ž|ñÁ­—Ûš©XòÒª-Á1ª'Gßu‡Íï_Zé‹ìPíÜlµÑ“å4¿Ü/s*­ÆJus"„Z=e5.äˆôŠù§Oj Ñ»6‘8£Da* µØÈÀs¶[Ù‰)á‚Åf°)RÙ¬ŒSå Àœ„¥·MyÂ×b^Uk‹CtÐÉŠRßôKFÞîªÓ’[öp!Oý“MFä¶6ײ´oÚ—µa£WyLŠì>^î)3øgfXŠš!|ýÒÐW7ððÜpAÓnWçCqéê_KR‰ŽÂ#;FÔ+ƒák˜þT”Y-™¢øM~U1ÉNEŸ[²C$qéÁÒq˜3­ñYpÙ±™‹5š7€šõGG=+­ ÇÜ|ð‡òâp71I[3Â-C==¿Z÷HGê†ÙWá@ª£ÊꃬAÓ6ï9JOêJ½ÝÃÐN \ÚÉœŸaø\ ?¦Ð‡xJ¯ÎaÒPëÙÄMa\µHd:ëY™ ŒÆ;>,ù|O6 Æýš>tÌL52ÉÝb JL<±ì8ç=ÂÝÑiøö˜Å>¹ÒY;aŒÁëÏ(“½¥<þ3÷ñƒeVŠËwø¸éã¼ÀF§‘ø.ð:!ôYU–oðøm§™=TMZDÍs„hŽÚÙÌcÙUÒþ‡uèîåoôÌ I]õÏpŽÌ—}BñÙy»ÍÎk w‰lGîuú›y¦432´ 9éRl­žÐƘ*³ªŠÆØ«¬7³;OØ_ù"…íæ…¼èØ{ã30KPFCÞ\;ؽ¯®^: „ú.q Î7]û¢è×‡Ó ­,xÃõNkŠYžÂž¢TýBŽ0hžO¥Ò:x¦Ù¿€^OÖ2‡v'±:Á®VEMf&¡¤Ê5}4á[€£ÜÁ'÷sÔg^“mZÃsÐtòÕ8*ë·ñ‘©%ÚÛì¾CnéÌ"kÓ2(¥¢i2÷ïŽ\Ä!ø–:!e|¹mû"àŽ²2“E‹¬×©“S*»^×5'V‘<ªëâ\¢—ö¼#¸mATþ¢R0¥:„ ¤<¡ëöJŠÍ~ÌxižË“˜nR4l¢Ù6ªNñLÃÅ£<ýMpv|¯pŸOcOŸAµÙy’ÿxð8_«Îætp o#Oá“[xø­bÒ;7ŒÁNÿ5¬Ç#â¼ðke­ÐYs¥Ó¾?>,Ûv ;•qsô‚Ûò¢œGžF_1iˆ˜ÙNh==!“|‘vƒ\Bïá3‚| ØÕýêÊOD¨ŠÉ-ªæ¢Ù³mýùÔ·ûæÎõŒó‹÷Jž®ç -z~Äïß%Ô ÐòDCŽ C©xꊗ×çÕÎlܹÁPjÓdªkÜÄÌ.°5Å×oе×IŠë¥o'%"v!v(²9ƒŽ!ˆ]›, %!–t¿œwÝé³pJ\ý}‘ÎÀiŸ¶ŽÛ$Ù”,¿<¼´ùã7•Z”ìÑñåÒmƒ»Ë¿/…¿q3ÆD€?m¹ðLy̱lŒŠ~­ %$xõf F¤ÁjÏœ–<»Š~ÔVþúðMGƒ=¾¢V1žq]ã²ãËɉHEæÉƒMoÜØ e QÜÇfÎ.JwÛÏŠíò:ë#6_ô‡‚é âúfË´ºÉøÚ|ŒæBI¶,à eGt½*5åiHw²þ¨Æü®ì¸cOnØå¡ é$*OèIS š‚ ÅIÄ]âzƒájµ8÷`¡²æ¡¦¥·Â™…)³¢ËüŽ‘%JIk+ºè9ýì?R=§t;m6H¢Õ5((¢?`ùœÊæÅº{ûȦ’ü{܉óXB×õ~_Göò\ÙŸÕ}l§qðÇÇÀ¥ ÒYfL¸ÒÁ÷~xÊï‹x‰£,ïmmÎýšû=@®ÏÍ#>JŽÿÝÿÃÔ¨G!é·a‚ÉO.®›éÞõÂãÅÐS@$Åúo»åÂÙ—q\’í1k-ÀöÍÅý¥dzOÄúšªŽ“zŸ¢·Ž„¤züŒS“!«‘J_¾æÈ£MÔ²9“ì7:Íü ©/N’Ïh>!´×Gû”aKó»Æ<ãÛž‹qÍñ”Ó‚ „€Á"þXœþ”Žnÿ¯£¾ž;ªb ð¼!&àaج^ƒ"G}È.Un¼ð¡ßí8­ý)ž¨ÌÄ·F9uû,C¨=BÙkYJh^S@‘µþ ’òj†Í!êãîŽ:¼I'Ê’¥cé:Õªfi©º¯É5·e;ž×œKŪ‰Òåwùê[0>ñ@¡„ãmÚ‘?TÅ–» @š3t8ÝÉå+ËÔÙwÛ×,Í^ÿÒ=úêí…´@лÕwOŸ>DZ!­ýk¢¯’PÇ´[öæ1¼ °´å­*Æ Q Þ‚™£ËÿGà‘SXbègZV˜G®0%†ô%ºÆºý³]d*M[#x|®ä‘}èÛuS­˜žƒXäÃÌÚ;KnóøÙŸ¯pu”x˜5•¿æl)<ðÓ¿ø) 46¥ß' ߪ)°Ÿ»ìâ«ÓgòXúô ;\Y†ngï#î15:x5ðœgVþ£G÷ƒ˜¤$ ¥‡ì'™w7W1Ú‰H^§˜…aM¶3•ëç/6ý4N«>úü®`ǃ\zN•{<Ö|x³(OÍΖáñÉœ´ˆ»ÉKˆU:nëÒ•€Þš¸sªOëæe c‹8ÂnXÝ´ŠûüT玪Ь(ïspÒPÏÓ¶Ù†ýB<ÖøíŽâ­ˆ(Á _”eÆãl›¯”kr[!@V0õìï#½ý©=jª7Úû;û ‚‹dÐYT š»œž½—AC9ÒËþš¹o†ä1 ¯‡‘‚[Žõ~6úŒeé€àóI-áÌP69è;s’‹amˆœÙ<ð£Mo°ëK^\p…ïOxY¢£ÝCÇ®¤uxjrÿ² ëƒÆ´~Ûê«ö2ùŽIi)×—±‚šça’áe‚|¨Â‡ÁÇ¡iâjáEà ¾Ì<¯/Ÿ#í ²ö“Ig¬ùʾ&ñÂÊòÖŠIÃD2ª¯dôèB7I QÔ'%¶ƒ0qŽ™Þ~-3‡0M =¹´ c|³Ê3¹ïw5‘R s…8g’8ꀤóÖ=§qò¶-"˜ïswÆN±°–t1ú.):ùÓŸ‚ ‰%Oø+È{”»‘ëÍÏ×m·€_óÁÞÚ*ëˆY>ÃyNª‘3ŬiÜá$¼1|q­£Yh^Ö@Éšo âúz4ÔH¨_S‡ð¾gÚ ¶žŒôAÿqŽ8’„éæ‚Ëô÷>0X?’rÝÉÉ;|æçøiMÏE,~¶† ÚúÁa^lÐS´€/ ëÙÅ õ7hWµ(·Ós%…ŒÞ}ÜLqö¼ê”Jœl,\_;/~½ztµpË{k+õ¼%[t—2®xøÂ ³f±PLmpK®ÇJ Œ»òî9–3!¯¹·p4Ó÷ø¯ýlQIÁÚWÿÙðÒP"¥¯PH™ï‡;Â&§ÿ{óYÖ‡ ×^>´lŠ#Íõþöbࢠ̫ ,Õfdû¬;^f\ ¾ß#%¶üC1‹'j+.…*‚…²PDÅóJÛ…¿?µpcÖíÏ“¢þ_ã*ÓUv‚‰†Ú½_³‹Înᆰ¹2ªÂW¦8ªÉüŠ$î ØTË1wÍØžÎœù jYÙtD3ÂRß{îFmB9a1[c |³žx$¹\sóòî)çÌÃ[QR[:Ïä%§wˆ1ŽxRÎ<º]”Ôž'“#GMxv<>Ô_µ¿Ìh¤ï°,¨†Þà¼üÄ»·e¼ ¥Ã¬ûö ¨ ó"¯ìô,c#$J0Mµ—δJè±X÷C'}ï*¿D>áLÉxãA¼Æ(]ŒËB·Ýß—ë~i.öaÞ¸‚£Áú䑨¢oŒIóÚ€®¸AiºAë.¶¿MiþEï Ä ´öšÉKÙ¶… ;E14©U›þz³í­2Åp E¬J‹nøUÓ¸F®iLXôâW2<( Þ6ÕÿÆwêAŒqÅv”íºž­Ü)–»›Júœ-Oýá-žRÿá ÑÈ Ïþ¦õq8#YF¯«Ì@‹x‘ü$Çdt‘ÂÏ‚Åèa׫?— 9œÈŸ‚ÿÕÄqžÀ¬”Œ5 NB¼í!Yœü(Ä×Ó’:‹Ööê=‘ƒzN“Ù¢ ¼H0Q—ˆ8 ¾ÔIäóÕ¨e  TY„©ýøèO•cÊ-½ ñ©ÇÚ™Äè‚8Blºy [Ý‘èÖïÊÛŽõ]'÷Ù\I S[K©ÃŽ<²†ŒZh‡$<ÿI˜2¯Ià(¹c*ú„œäB]õB«›>~ÿ†ŒÆ7é'lãíÃI%qH^€|tƒ%ÌEMòËù_É Ì;¡{îð‡ynV²DãY¥î5ùý]ÆX7e'1L…ñvY¤9*˽  ™´:mèì©æ» u³˜J<) %^ƒ;ØHš} ¹·Rå§gÑ7¿°Rø7¶y@*{çÜ/¶†\í{ú­d”«]`ø,l„²á[òÔ‡Ýå‡@Ãê ÔWÔ5Þ uIŽŸ¡‘G}ö¶rÛ¶REqØ ã!«âæRÇÛÊÿŽð•Y±zíºt¸÷‰iÔ¹«S÷Böó ¿ï­QræÐ™Èpdõ(*)%Sí´uiª]µ¯‰€¡¶Ø»¯œeªOµïæq‹!þíoK²07Ú–ÜCºÌü²Šp8DW„Ÿ¼¾k¢ŸCj©!Ïöù–UÉÑ7.Ã…Lq (ó°D ³OØõL¬ƒ²+“mMK¬ ÍÜeúeµ¸¨™àÉ‘O½×u›?†°æ¦ìé)r½?dèBn<ÿ{¹p¹RlõR- E”r¥<®0B"Y´Šp_ñ½oyx‡—êÕGªñ¼¯ÕK'ü÷mZ/Â]èÈ÷¡YÃEÓQÈŸDÿ¢~k>×ð^)èµ/qÇìP>JÈÌ< ¹1,f¿‘„gèmñÖj\Ø÷·XéR!Ž@AM}.§ÿ’þrvÕÃo,r,!‰cûJBqí7Wú.áAr¿„zÞÊN©$¦Br3ÚŠ®v­,'~ún-i _äˆgï&Ÿ¯aÀÚ3TKŸ]6ºÌ)E·^”¡êsÌZÌÉÇH*Íbñ NmUË¥wÔÝDz~kLwî(öd*üW„S)Äz/9êb820bý‘@m¯nÙÒéÊ¥|•ÍYªØ)1^9míjTðݵ Ò.Ãâ¹ðg-o«œÖþÄôð¾eb(¹´&-‰¡÷ä5ZsqðTkýÉ4¤[\`ÇCë¬ËP¤›"NÐv.FÒXh´ÿ>•‘ó»DÍÿT/úÕñäÙ—Á‰A¶¬oCóºÒäm' Ý“ŒL…ÉIhÍw}ÇñûÉÜöÖôÉÑRÿ?«©eÄ ÎrM™Àt¤™¾7£É‹î\j“lÒŽ/?pÕ~i>ïp”2¥në³Õ¤Fp; lÜ•pò™2N'šèqç]jêpnÎ'âèð§†çªÓ“ÅG² ~C¿5}F´ý,—*Ž­ú%²jpþô§Ö´<» Èrdõ¤O¼À2+'ÈÌõy¡Ÿ¿ô;\GN-ï°hCÎ\#®gnJZ~pÂÑdÜøHs>8Ðö=¨ô2z4—e_mÆ^¥º[Áádp¹FÃñ/\±™»[k!v^.«Æµš´’»Ÿšº D ”øiÍ#C-á`²ÿn™V{³0.”¼NêÄ+’|æÈøpPªnæ CŸ‹N\Î"fA{¬Ûm»yéÇ€)šæH¢äâ\WXË%¤7FYö¤û®ì­ðEk§mk<ãÃÙá–Ý‘´-›€©V‚‘w\ÏnOÒ*Oÿ×ßèÛQ:(#Ö³+š˜Å¤S9l˜ÏÌ"ÛâQLåø¯;¾k “Ú­¾Ø„2É6)f‰m­51›»h­Q¾¶Z±Œ-£Ç !»§Ea$ZpòŽ[æ‡Aö%0<»¿o`Ƴ8Àx:ÏØÄ­`TIdUÎFi2XX–sýf£A2t- ¬Î_Ê&H¯¼ \ÞéëE#Z:][Õä g«Aìèþ~°Ö‡Ð•õÒ¤v%S¢Š-P[©Ôƒ-…s2xl÷ ò6O¹‰×Ji mX;²IçT´/Ö,£\t[çã-DxR£ãaxž FǤxP¿ ï´#ÛMäQâêæ rà¨Ì Åz4ÑŽÒÿÉÅhöYµŸÒßÿâ4\¥²Ð4“àÓ@°óFîÕD­«o…DZ¥ÄŠ>8¬Áã®kŸ”Î𾌋”¤©…4Ÿ# °„—0…º¸5Á.¸ï1áíÑô½Ö À¨VFî™&ÑWF:¡‹ €#4­öu×®8o$é—ïÛûðæ6y.‚bǺ“1ú°8)qÿ-¯³oòښɘpà Kø²hæõ)µ ϦØp7.2ª)oÿ쳺a9IœH£”\·REY'"ׄ‰WvTs’ëùwÇ¡ ® 4R Ü%©AxÖ-4„¬΂Î$¹L*ý{uŠÒ:µÊüxY£^Î^ ú®š61Ûú„Î’£U©)‚Ðà«ï[Ï(Jz%F‡›ç#ÂÛä—‚M)j¾¿Ÿ¥µ§P÷[¼Ÿ ,Ki•žs1ËöÏ­’€é=½gœ͞†s8*‹²¨áGÝ'”i=œ…v¡òbÕ|)xló¸8ÛŸ~ò©r©÷¶€ú¦Å§®íeX¦›FÅoÔüªæ#Ø¿póZäüÈ|0vèÛÁ´¬OP¦X-!-숢W;å–ãy|ÄÁ^*ÙyÆ5ä† gtB¦ ’rìCºO¸Ë`åD­ a ´Lþ]ÜyþeMEµ©¡1…v%Ô¦Ø{©ãŠRßÈÞãû u¦ƒ<‹…% ä9¡µ®ƒ±S¶’EÜ0@u+¿s…Æè{êD6cŽÎE8‰L(ÄÜúðeÞÌò‚§©^°ÔQB,RÙH9“¶%pJon¶ÚÄùyŒ•Ïë}:e-\6ޤèó•˜Ý›þ‡„Ä/ôÛ y¨4PcƒÔz\ðtž)ä¬o˜Ä)ä©Qz­?Kê„Ï"À¡ ¦(£òj*“ãć Ux+Šâ¼°.­™_ŽZ´Hqª ËÓ'CK²‡ë62)ô,Y“V²Ó"ƒ«Êv¯'ìÆLùMáÈ~ÆÛ|R_øùëÙÚdìT•ï%û*_Xw‡*~VÔý1.ySÕX„™µŽ©Çûd†…6ùÛ©ƒ[,è\ó2H7dŠ„ÐýS Ì·ñ¹¹{ÿèçyXˆä;L£:yƒ«(2ÙüU¬ºÏþù®Ê?(Ü"$È0'C8u—×^‘ŒÂž35Ì6m6ÎËàë”ð3a›æH|™6Ôr×;.;"t¸–—± á4Rˆê©ô÷Ž"§ê?ñ²NNÎV}+÷,‹WU§&ù¢Ãgåñõc>aK~li<¾k¶"Ô¡’\»L°U„ØËK¶ß·\¦®‚Ái$ù"Ùß7猲+é-¡‹3ƒ•äÅ_¿úðë¯Ð'( ä3ÑÇaÒúD•~—€ËÜ@iùùás¶.ÓåšÔ§ëÀkŽkM6ûMŽn…;Še€ßÀ”ÆŠZ¹ÓS|²s}¡ÕÔ”t;LD ò.«4²E=¶o‚Ù†° Œñ7£9™½æøšYâxöÇÊè¨ÅÄþ²Íb<ë{¨&ÊŠšQZy%‰¦‰ßÜ?6?R<ݤº¸xsó|WÓëA%抉^ãS/²R,×ûîÍq×°íÙúšŠOôñ7Æ­  CÞ’QÏ,åUÏí*ÌçÒŠ|L#nqmÔ1=*¼•ŽîVÙ‰ÙÏÅA¥‚éó<×NÖ°'Bº_çð>îkunÖØ±ŽÊe“düœgFÿé²u¡hw>EðýMÈîV¶+`…~ôq ¯«.ª0¾ã§kŸ|qµwÕÒÊ™z½¬¤ŽâlÒœ¶ uoRvàGçâßIj8—°@uœc"ËQ Õ÷rêGö·Dÿ·iŸE%M*ùˆŠZµÆ"'æáJŒng¥U©Ì9Ï©—u¿-M¥-¿ó)yÛíY6^Ëžü¦<@ àí2j†§ŒðÖšÍï²Üd{s*ysŒ©ª¤çØŒÂÕëRs=fê¢ mˆÉKiHËçd¬,¤kíAÍ‚Ö \th øa»WLb0ñO…É-œuLó-ïwÀE–ð>QŒÕíy7‡AšÇåP± ðÛHÛµµ¸q[A]Pý¦ Z!s"ì°µþJm¯qð§éçÞo†j¥½2… $7Í3=ñh̘N¾ðO’_IàøkÙMNÜ‘p 7­ŽÛÆj£f‚?HÌcÜËVí1k˜ÂsÈùN]‡ç‘<QÃh>jÐïNÛ*~Oø6`²D®¸;fþr1zfp£ßðëÖѹDCö|Ûàí'ôw'ΰŸéŸí'ïÚîyû¸èa¦þø¿Ê¦†Òe%ß¹Ÿ–1éö¬iy=b¨tw>´þ4ØÂi,úíK(R™ˆÈ(ÈpRj·ì¢Ò9ùHÿð+ú¥‘,G&(øTñUC¦³Zà­&™Ñ¿:­´w„ÑÄGc99ïELž= ‹A"$—z pg&©5ýZä’÷ÙäN¾ÉŽ×)·›mË}&ƒ*³Í­Ù‘T|ZUÚîƒc=wg‹‚ 9²Ï/ßXǹŠàðwïYÄŽtnïöè3†ªz$-©?šäÍâü¤W LˆAßÍîÃ^8´L˜v‚MÉ~ píŽ D ¹3r­¼táf9Ž•õt|¢%vqõžµ ä#‘>=–*!ᶆpyŸïÓ€¶Ÿi¦TˆGë¾DtP5¢Å£œ£’x×JgþÏwóÌ7aÅ?z•¦,î9fSËÌß<¾[ÛêÃôú˜þ¢-ˆÐ÷ÀÈÙäÁan ¬L:ÓG?~¦Vu¡· ίaÓ%¹À-°ºåŒ¸O’*i?M\%Ã~³éÿ49"(ÏöTx¬fÐrÂ#ê'åa:à$p»O*(Œ¾AUMoI£«ƒHÙ ’^:¹Rp ¸^s o>¨ûÕc×Ý‹ÂЊ\¿Ëiœg}ºŒ„ýskÓÄK¬ífOóð©ÀŽeqOM±8ªÙË¥*º?­tœ¢òõäà &þýƶ¼@Ë1$wØwZ% ºð&&­ Ib<G&1ûê–ìB¬ì|2»~ÂBááQ,ÂU*hu"ë6ÔIE† 察%6P>©À`¿±úÎjž“òïY9<¡í>‹q*ÓF¹E!Ö”¥hÎüîÜÃt)7ÓNî `±¥ù6ËÊ<Õè{Òg‘ MÕ9¿‹0;]4BAŽŽÔÒý!•ÎÊ e˜šñËyOöF3—gN ‹·÷–‹Šˆë@Í“Úåü-œ§ô8Ç¢ú[ë$41ƒ)«óµ»íí‡ÀÎ:TCµ:¶’©XU€ZP„51i™¸(”P§¼ª‡àw †Ó?ƒL&0úÏ9%'L4Ÿßʧ¢žgØ`r‹¹ Î\¦Æ)ÇÔ‹^Ie´Û—Ùš‚PíyGÛ]?Aú˜ê–¨\#…ÂÉ ÉÛ•ÆKñÏ•8 E G³†áµrb”^ï 3ÈJLѳtC{2 S7»m_M–“œ4ÁÞÁëÆ°¦å˜â…‰—h’“ü`Ì (Îî‹&í†åŸpÁ20CZÖ踉—sÔܹhÔøa¦ÏAÜ=óÖέ ú¬±Oê'Nî¹ëÍÝ{±Ý&ñbPUÊŸz7~G]`p×´ºãFE}ЌͲBEŸK¾‘Ü}¾õ-: &FäZìöf]D'YX_0ÒÚWhïÒTWô …z)T@Á¯ ,€—3Ÿ ì…»°gMÅ*\ÙÉUl¢@H’Â^‡³ êÁé¬Îc‰™ÆÖ¶8u¹ ™,™—>RHÈ0kIÇ4âëSÈ m¿0 Mˆ¶y«»~JΖ§/¸ŠíÙÜSçöñf2Dµî†xÌ,bÓ‰fQ?#ŸÂ/¬5 X¿Ó4±…‡ñ(!u—‰SýÇÉeoÏàçÒiÄ]ÿl£!!Æ}pB¸„2W€ÚªÔèvs™ˆ¡¶¿o1³Ò.ž=jÕ©Vi•iÀýIè3¼ªÚŠñK«ƒöqlNj^.Z{?}-K¿¾f[‡¦j¸’p%Tx Òúkh8ÉF( «+ÎaÞ*xÂçÄл,W&YÃo‘]œm½®ŠW1r¢"Em;B/ÓŒx7 1UDñÖë.: s:Ë‹B‰´)‹ó‹§nçlEBâyFK6¬Lû1> 9Šú-/]˜?·„®uxÈò>G0ò_«|HKT7‰T£í3we°º0gŠÞÕ~”.òÁäÍlg= p )JäãCU¡ŽU>7DNžÑ‘¦ i~t- e˜ž‰Àt_<(5•¤=»³FÙ¶EGH—}œðÂLËZ.t]\E˜,oö/‡‹¬Ì«'?àÐnŽSˆ§)¬dƒ ^’lTÄ Rü”U0îî$ÒˆdjÆ/M˜>yÓ­&ž¹±Íw-‰¸ÉÒ3˜—ËÎÓ’—†M3DCs2`Älql–¶oÄûX%@ íë¾ÿÉ«õój–`oÛ >/B3¹†è:²Î|:s>YBÙæ”¸ŸÔ>œWCª…X›I§Wa¬U×Cœ‡­0J±x´ª5œl>à yᄧ㟠5Ï‘†Ç+4캫U‡euø5±PmÔ¾<´© pÄ&­ÀZ½…–uóܨ^†I¡›ãÁ}è‹ãGµžSÊO¨@`R,E“¡eú&¢lº=x­í•ñ)Ö÷¨®¬Ìq¶EÚêËÂ%ýF·>ó5°^9{‘;Œ‹§‘Ã)éæ6‡Q,\i¿¨å}_Žêÿ¾7 ±Û!vrêP¨ª:2U#šzsЯ›"öb“mïÁûÖÑGg=“³RNÐ;øºÓŸ>À×ôœDäæä¤& ÆŠ .ì›)ûc1é²Gbe°°[ö¥?ÖUû©,u °÷N˜·,à;ª'—;r³> ²ÙÎý‘Óõ¢ØmJeØ÷ ÝêU¬ðmbÏÙ )¥{ìdó¹CD;b9—MŽ}¶^4 Báhz´cëi^ëë$_éWëº#ª’*ñ°ïS†Ù!ì, W=8Õ”g“¯®ïG¸v«Î Êàšj´-†A6-¨‘Ý[HVk_›ÅùÚ|=/XÁò¹¦-2›VÔv38Nj‡à•¿e”ÒQִáÚj4†E(ú±ÔÕÅæĹñv¹Ž û þE NC"}d„.™}0 ZÛÙÃõÏ÷éŽtœXÁÉ1´eÿ¨Wœ¼>&¤eŸ–Æ2¢õ\pXÕ3„·å´”ÛÔ­òr}¼&I·³mƒ^ÈU†ú•ó‹ÒŽËÞ|Ò_L\†~¾ï…¤Ì ךg¡šÌ #gvÓ¼¥O›ŽÏ7ºdfšê3_G¥±G§…tãc1>¤î´ÓýkíVprƒþ0ýÂËOviÍ2ãì°œðSJ~áýj­ä÷Û±˜§VÁB›³RNK*½rš„^š žû/Z)¥&’ªRùWÍú±3MÛúOýQºÒõ2ÒêlÖ¡ þÍ2â­†{'ܦcB;.ªÅ_$¼ú;°Lã†}³6ÿ¨*×%,xƒq¦üFqÎ'â¹ä]ã ŸçlF)[Ï×ô6n_û«k]ΧªÕU‰œ3ç©ÙÕ>ùoÈZL¸ÄŽ VàKžw! yœbÑ4gã£ì`£a.ƒÙ ß>hKΰ͛ç¯ó)?¹;†å0”ºRï]: 7QþùºÑ¼MÓÓ ÖÉýQËLÓÔ¦m ÿDI(ÿùéËn@ó¨Ò´û—š÷ŒŒœNóQÍ×´‡4„ó#ºbÚt%¯â‹˜dòÒsÞ\ËXòl4*éTè#ØLôµ‰ÝexÉÅÈóêÛÐ[Ðáãª1Ôk<ÿKbGŒÍVQï¹§Ù°b}!à,ÍÓß& {†W úY¬‚¥{H‰< èY—®Â¦,ðí×]ʰF®æHQ!ÉúS/ Nû³|å!{×b)Zk€Ö°å Íë0ñYV;f¾סÁ/ÿ1dýe¿ä8ælûŽ"/†<ù¾4‚jOÔZ0ùE×—1>&zmÇt=…¯b˜Àíwrÿ+ ±ÍÎtÏeÁôHWŒ’ª°!ŸF”ÚfÚÖqdwCêþ,º64?AinÔKáeÓ±~úwDÄLåÀtË:˜Ë{^h}šÉEKdíUÚ ìxVÀdqÇ=³yk“fÌLµAÎÃíZªÑû·)Œo4Üà$‚ª$çÀ3½»¤ K¢Oà—I‹«Wûý&dG,•ÝE5µµ&¿þE€ÀмéqJG9|4—Þà¨'ðø¨5ýU¦Œ³¨}ê0÷=ïÈ.¶.» ý™%-¶Íq æ©@œåàÈN$«ÖÃñÛÍ;©ç7ûÚȾ³o™Òàk3;œ@º8 d"OÛÀ|tþs­ò…ȲTF“ž¿ú:̯@ètÉÌ&dè½¾‚F#¼3Ô£/ï#Ôú%ÿμ~•¿a^îÃß·U+ú¶Jgf åX'7j:e›Þ;yß²D2 ï²'žÛÇÝc¦5?w5“ß-+\3u‡Ñ SØvÇW»êÒwüG¯žª±œøR•ût߬¾£Ô§-Ü]àfμw ¼¾¤ÌaXÜÇâÖ;Ø“XʦÔ)õðJŽÜþЙSÚJRÉKç'½~Ç«-MúãáF̬±­m|Êc(‰6±”´BE6à'öÌ"‚®>Uü<)VÛÙµJKÌÛÄOmûÎ?€ÌZs=YJß5.ßiô8¹þÖÐöP˜KItU¥¨ÏC2O3ødRéŠÙu&Gþ#c¢Ï!øŸ4¦ÞMÂÇ'ÂIhrhË Ã,bíwYZ>¿ yÌ’ -"–†—B5Íjùõ(2Ž>Ì¥¸bf߯<èµ&I¶6Âë ˆö© c¤mrûF¶øeNâç üØâøÄ¡ú³n˜.c ‹#ÜVæ’ü‡lVÇ6ǶD» zH÷'ì„4aICÕ`Ü¥òL¨£ü¢Í.%”Ɇ@±ð²Xá´ý\ÔžÉΪ{s *,Ï•Œ éW”‘Œ×wêÞ)ÿ°“ª4¸’CÞ;‘3 ?·¹sJûª¹i/;å“éîkÔퟩc…öŠ ™§ÞšÚSIªÖû~ÿÔºõ jåÏ‘®;.|öõ=䔉ÌÛ.q¾Ì¤J—m[Æøæ­ªâ5z}øˆÇ{ùº š ¾bÛ!‰d†{ùgoª;Tv%ñ# ¯Í'žzIH‚ƒè†ÁËZôá[ x ÃTý½Mr_Ð<4ã®Ò˜^ë=b¿§ ]Cnú¬az‘¥˜žjü½^Å…!ŸA™ïÕn«zPbºãÜ»cý6YʌٌݚIôVÅîa±¼V‰ÄîÛÝr3šœò˜ã¨[ùLPù}‚Ò$BwÓr ™¹Bš…6Þa1ûu@Ó©¿êò¦#r&åÜàÑÃüŒ |òb>–W]:´öO§­ZlÙ±únÚ'À÷ÍRTnÒµón9«B!°è?ì…ˆ‹h!}" ×…4ñ0çÂ;•Lï­~yc< !ï¨;U7Äzüz±ÆÛ©›…ýûÖ §Í{?«þú*ü,ÏÆ£CûÀBK1RІ9²1xÏ#k]gÏjgêž.ú]¬·.9ºXû! ßoʃH?{åA@‚õ d°û_Ëà w1?~ZY®1ã͸֓H~–zŸšüÊHá}/ñfä=¨ )Ä[“Ù#£È€$9Z ‰O Ï ¥ò×â^³×ïR4pÏåöàÝFÂ+椅³’0Ÿ­žYžnµÐTNdòÙTa(îò¦ˆ¦µYÓ1‰|OcD‹7z7 cóËL–®>û$‡F”ÆöÏ4ùEQ‡ÙqpZT‰ÔBÌÑTê>bò©+ÍÞï1pÃÜ1†ñy›|!‚Á.Vª;óy×Á€mJºYíœ] j{Õ¾®¹b[TÌà}…¡ïV7)7¬’ò{’3ÎwhS욢ÒB‹6_}î+^N4wŒ¨REÇ ·É(Õ/û¹FEwH>®ë }dUâd/Q¹ã;C ¹‰Ò~Ùv‘amó£ÆA§]3üÙ@ÿø‚Ÿt%Ž °‰_/y 98­‘nĹªvòïKj¶$òãÈœü.sQHå»}¤¦¶ãåRÙÁ†ÝÄXs›wß^Ôô'îÖ5'$¦4cf‰W_[‚/v+ÅÓ±Û}¬ßàC-íªõÞ<FEí¿L’Ð?N¬¥ÐñG’}g` x¾[hö¹ƒ­àXiŸOÿ  _SíúFoI*¶²§ô³XŒÔ™Ç§gW¿(çØ›ú܈ £Ò!hà¤ÜZôìâßLÿv"ÚWêÐö6@¹£_¸Õ…tSï£+,ä¾Ä/<È 0¾b÷:ì¨HŠùjm F.«UÕ†1ìñ´?ûÖ,ÜáoY€…ÒåRxqµéÛ½Q’íc~ÑÌï'í¸Æ•Z™QyåW~]è´™\VÚhÐSÕÅëqÝÉÃŽœ§eÑ®tˆàMˆWrB1 ê‘59ö梀º­6dð'ù 7U³êÜ£!û§Î…¨‹¶;¸Ñ1tõ¡Æþó9OŸGzû˜ Pÿƒ—óq±1”ÜÍCÌÄ} `*|õÊÊ[¶$Ó8që<Ö®¢‡þ“Ð7.ÌÉK,}àÓ9€ãªoFMåõôØ/MÏ}‘,ßê4ùXÚ†tPÈS9‹µÏ’ÆG<Iн§þöPõ/³K”%¶æO'{ô{ÆÐbpQÇ·M“KÃÃÉ4x~½®³•r'¹Ò¿†%(1meÕP>Õÿ%$À<—忳6È( @OvÀvL±AE¦Üÿ4 þ[§Òzì°»€.ª©ügÛžò±Úô‰ÔwÎNÛs³ƒ•ô«½ö…áóŒç¨­Hi+&ç¯Â ä%šPª®·¨9N8…ƒXØ£ï5°úÞºô”:=.ÆH6šKm¦¬)ïÍÐ'„m‡.Æv^ÁNÌú»#‘&¥R“ž}–‡ÛÔBÝ.ôJU(69O¼¨ÄMR»Ñ ßϧmÝ#KÝðkZÒ"°)AØöîìDGVÔAZµ‚¾1yz¿é[E•$1NAIîÇ{Åb%“°“ói„åËðö´buÓA( !" ûª‰Ja½÷nÑ8råøä”A^¡Å4{i¢"íS¶õ ¡£ÇçÖJ¿ô'¦íoòÕ²cl/ÇF»Uw0ÊQë9N屄‰­o¥&ÝÚjÄ]XÆ{äO#´"É$bâ—À}”½5ž1¹ S˜ÇÏv/b"Þg°  ºs½}(JâÈç`¿4•/¤a½MÁè¨u·4¯ ú1 Ȳ:;™ø…­o‹Ö¸5wzîïzùsjR»½ÑWAïÀ|ÇlmC©ËAÏ׫ÀM4þø;Šj (aÜ}ѕڬ1)EÙ«ýfgÒÄËVŠTaôÓY3ÞŠö³ÿOÚ¶($°!]ûY—ïN±¶¯jwgýâ‹RŽÜ ¿0°ïBŠæÄœýù¼. ßÿœ‹7ó˜ÝàïĽ®j䆃ÿ̽¸¤ÊÏI¿•#9¬·éZ3»»þOr¾"«ò†|8'”ÙEýŽu[d&,| *«Ökv¬!62* n¶[I]½V5„̓£YÞ‘áÒ·2»ÓKfR(ތ݌:ñ r¾mø”å“hògøö´rûyb„òíjôØ€0¹î øQåä$'¼œè7Ýú:(ÉÅål66v‰ŠˆsÿvˆÅÊÕ ëD\]x”äî0 GJÏù¯ÍoJ¶Ôd­R £ÆðÁm¾F/Ÿ½¬&xáb…ñTÄ>+%¶ÖøÀljG au¼Á¶0ŽÏÂtÚ:åî|+ñ·Ù®®û.ÿj÷D–Ø*ïu=މ³ÁéP^j×=ª’\éâO∔Ÿ¼UË .ôRU!ÏïŒÚ¨D’8Ê«)o®öqe8Äõ♟(ìû WѺžØxîyÖ8ç¼È¸V¯Qtà Uc42.ÑΘš(qˆÈØÛ ¬€Ù›zÇ;öMïöþžôŠnj)Wâ÷ÕéÞÛÄ­È’7’ì©S“nhMA×¢Žß¿XD’PN*¹ýðúaº|ÎÅåtðá× ]ªEÅÇvDÉ-WR‘ä¸ö«øÛdîèáÉ7"³e-ïÁ.ï³ì(¯V df„žE}û‹¼'%,–;|$Wˆ½gZyÉ;„Ô®T÷ÝFe‚çUb5UÅõ^!R m;G³Nc5’‹…“•F¥ÖïRf‚Ë@8^€¯7¥:ëèv¤R ú[Ç6t@j¢§Ä-))Przè —áXçOÖ ‘ê¬*l\RB & @ö”Óg(ûölüZ5&žÍqA“Û¬c L&œ6UJ1¼NM,ühnm¶Y~&]€yÏ+äE °†P^!¡aÁ9’"lžêë@$?ö?þ…æuî e­ñ{p˜Iª{T½aV˜3žìÞ~†Ø™• ¦–)%­þgž¹½µHVçP©ò¯ƒ¹ùªEö®¾ˆØ¦³úu=†Æ›'ÊO²Þ2[VÖjáî„Örc†6“ò‰ŒûŒVõuz5C=EO}œéZƒy©~®ø¢œA±æ÷£ú›1gøMIŒ"ŽQõÎä8.ŒbûÉEþ ‹F/ñúI9Q”k/çõÑ}âEȱêª?í•5«™ÖœÇÌ|†‘˜]TÙg´µƒœoíSÌ[wjúúû#³2Æ<<ÞQkº'@« ùœWV,Yès‹[;†5¨ RYep1oT~¢ÍZ§CrÿÒÃxE <§‹Á|$CÇ=¹Žt·;Ëû‘aìl—_j·Ã{ξÞSA#âDxNáœ'6©ª}—ªYçR/Ý âÑÉöžd¥¹O½ì½N´æ]LGjÏ6~¯mC]ŽC#¬íT*Ö33ÉQŽM]åÝf=«%©P²×áÆ£'ƒ»š”Z«èÓü‰ÚmTŽê¦r0†%ÁÏ@éoü|]ëè¨;Û›;>lé£+¤8I$›]ÓË‘W¾úêOÃ顆ÇNú‰âŒÁ1µ¥=K}¸ìg¼ S2Œ‹MG»f'ûß½J‡¼ÙcBTàl´ª¾6Àn@pAc²Àüu®A(ÎSneÖ­XõBŽý(ûp"ÂþBdêði±W[(Cú%n¯òñÿØ÷cn endstream endobj 89 0 obj << /Type /FontDescriptor /FontName /YOCMJP+LMRoman8-Regular /Flags 4 /FontBBox [-456 -292 1497 1125] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/Gamma/e/one/p/parenleft/parenright/plus/three/two/x/zero) /FontFile 88 0 R >> endobj 90 0 obj << /Length1 1728 /Length2 1775 /Length3 0 /Length 2844 /Filter /FlateDecode >> stream xÚµT{¥¨IŠ$¹~ÄvÉÌ×°U.ãNcŒk:YcÖŒÅÌZcf1„ì„DÒŽŠ6¥vrÙµ»mÝè&ÝSŠ(ì"[9§8mD·}֌ڕßéÏó›ßšµ¾ç½=ßû=ïgjÄ!»q06ì…¡8™F±v"°1¾˜fMfÂ< ÅÆÚšdjê!‚!ÁPO‡Í!°‡lX'’)ð†QXDØ9€-0±dB˜Ì!Å‚‰q2få!(lA„x`B™áÅáò¶d²<“<Úü ØL*N@„r€%‚0)"ÀCŽƒø\€q Ž¡!tfðf® e„XPˆÄ!¡}äâ õ¶žnA,:€Ã¬€whKþÏ‚Q‚?Ï ±»¼á(¤³ÜX‘ :*ß $X$Fäe§pûŽ`>S#B¹"L (Ìãp\èL¥J¥R O"Æ)˜ˆGòüXqˆH1Q Þ"˜+#A9D;ñ8x2üx@ £bXä…MD+‰ Çÿ&F4—çäOº1 U&+bŒ €‡Q%q—ˆAŒ#˜c6I‘H^#ð“Iôw™OÔÝ1bgÑüÔ4H:õÄ T"Nù¢7_o;CňOf„áÃröbù™!¨ t òõ¢‡°È„öPr Ft¥àɸÂ[žÏÍ3À88ÙñÈuJG9˜@@°“äíóDˆ>á˜HFý–ÂPLЦ~ÓÌEPW~‰Š"‰Ø×óc‘>c<ÖNprlU^\¡9L“ÃDSÒR…˜p!¾NC¸0ñ"¥Š¡$à" œ–ú¥áë‰æ8H,NÈž’"»/ÊÅ€Ó$L0ùdú(s 1QÄØr0”/˜K¢a8!óÿÏÔM©å%áóƒ lþÎNu‡_ö¿¦8†ÃrææA˜Hñ§Ø±’ s7ÙæI܇ˆ¹pCy|ivk[›IK¨|âø„´‰ë ‘_pr»Ã¡ÚØ‹µÂ½™BŸ89y@ ¢3˜¬¥ßÒ“Â›ŽÆbå{‰DŒdMˆÄÆÞ¤Òõsàd…Š•‚b8„< p1I~Ò4;@eÉtp´TB Üß­ Š B_~Í—!i…>­?oàã]§X‡à",G8ÄMÿ… ±)’¼ÚšÀ‰ß§¯5_0ý<_D»»cÉ©d'@vr 6L£9GGû´¯"c'/…¬‰>ZË'Àp2KêlÇb]²âwü–]Nßw§f¦©åßuZË#üŠft–Þ9««í¹§×^±?óäú²ïöc>ÎkÒ‹3ѦY ùzNmÿ¥e„¼²JL×U£»Ý¨£„þPر¾¦ÑØâ¹_Eed•]kÙé¢Ó ôÆ ‡ÓÙs6·ÿRUb]sºkïLéÏ÷iõš"¾FrÇ|ÝŽ; Óð¿&4 ó¡‹n–÷b*³µnø) /œ›¿úžMIÂ@aë˜öÅÍö½Õµ‡[.ÌV]ñëV&³Içнõ¬»ÒiÛLGãsúcrËwiL{¼ª,&z®qRy«¿¨uì? Òà~þ¼ =°rÌéµeiØÒh}›æ‘Œó êi[³µBt6Ⱥž 3´}"!rEÖ„ZŸÎl§Fu‘÷Á[ÖmããöíÒ–Hq’qrÏ@¾Ä¸ÕT©á~–˕֥¢…oËé8¬mÛ3tÞŽü¤t&úЉ‹ççn{°]õò®5ÛÏU+ç\ícל52H¿ý,½YQsYóV¸ºy³ÿ>]WAoiÄlÆ^ûX†¾És÷K¦Ýú®-Џú¸…íšÍœ—ºÍø”y:£½i?²_b˜]ßxÎãkKÈÓÿÚܘºÛIÉ6n×ßPÙ§¤«f ¥¢,¾[ÕŽòØT‰WîE ´/7r(½ôªm$d9þânøöñWt¬µ«M¥¤m¢ê}6µó„›?_mgbÞ •²¸¢s±S«™ H×ô¤ô)-POLù•Ôæú}YÊ5ìɃEîFÞ݉d6Æ^µùçcÞ^«ClR¶™¼k$ÃÚ9Kö–«7=ž»Mxb®+Ës¥ß,w=½¶™ÉªÌʈ•·]{rs´»ÊWZž¢ï´mÝ©ÁEf:o­;n2(ô#/f´“—ú¬Z937œ]^Ø›™ÐÉ™ºxézl8Ñ`xz@üÑ~0È}7ž·GTœ/ÓêL|úL}§íHcu‡Þ•£ùµö½ßª”’_Ý*Ç(—÷ìØüº;Ù yÅlÊqWò»–,Y»IZÊŒ9‹™&; #zšrka~÷¸Qe1uèfçüƒ™VQ½‡*äÒ´æ?/•ì$÷ï]âV|Î5¹²\/é>_Ú+¬¼lDÛtj=.žñŠ®†.ŒÈQvÑ5ëy&Õüv¸:ðˆ¸)þ²kðp~²‹eÿô¹ø•ÄUÃ…Qç!^Ø/šuäJÌ"½þ5óúήå!o_)ÖkëªÂOºÙ’¬òGwD,!i¹O„µ.óh²¥Î=¬9 6̦¦¯nhÏ[õ¢ÀÊOì¼o“¸%à÷¤|Z_´S´ËXŠlüHuY-å•eÎÁ_­Bñ´”?çë­Õ±Ô;ßK¯‹X1u 9¥MÏhv¾±¶2Èíz_iõ2žƒ7=çÞ–ëgììrýwük­×º+ßeü°çXœ•~ªê¡ipûo¢7¾¸¥A­s­x¸®ièÊ-¹Ìµc'úkµtóÀÖѰb‹lÃCï¯ü°œ¤VMÉP×>;² Á>ºÃóÎx¾÷QÞà›…×ÖÔ–olµíñ {zóBN8»ÑgôMîžé¤ÿ¤x¬×<±Õ2ô¥ñ4æ5%Ÿ–H’J’æÂÖQçl~ñýY[–Öˆ+œP³ìw›@?g쾬ÑpÙà«äèESçgQÇr7åA§»3bóùgýñ÷.{“¯b¥;Ü—-}c5ûtäœ ‰mõ’<‰ÂÀ&Ù’Y·>˜É®c nhÉû †>ß«>ü°!m§_’FvS#w´Ë¿ òuæ 1ÿyNY°Ý<¶ö­vcYV›ë£¯>¿èâõþ'»”×Zm(7A†ú4mʼBî—ªzz¨„ «u-k•Ž9Ÿ¡ï¹hå«á«1OÀË:½¥\·Gÿéîƒ*[ã[.³½÷z=™©u´fP]Ö|»ìNð„ £œ¹]%¬÷þ}’ÛZ ì Ž)ëkDáúܰk› D¨º®¤ÔŸÎÙX¿üE›/rr¤ö®Ë˜ô©ù™¡gõW=žÇÜdIÎÖ¨ü®wB+úÇÔ÷\DŸ”÷l×,Í+3™ãz5c¿pÛK'ªï›S/ë­.[x¢g~б>1¿ÝçÒÕÙ7G­Û¿ëÎ`ƒ*ƒ4»˜œTuüÏÁsÁ !æïpïÆà–VƒºY-U½ß-H¬«o–ž*«¹ÐëÑm–q ¾î—HÖa®WÞ6™û?žßºþl<*s‘Ožú2õŒÁ@ÞO.Ù[sU%=Ì­PMaN<ܸiT­¶ÇÂì§õ,x·®å¥A¾d9wüic¦iJì¦â¨‹MóŠï´%î•$5 ^Ú2=mýùÝ °ƒê™Ò¥U¹E ½šÜ3ý˜½Ãî­áí†+vÀ3´UÂý«Â`õ­»˜@ endstream endobj 91 0 obj << /Type /FontDescriptor /FontName /YNEPRT+LMMathSymbols10-Regular /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/bar/minus/radical) /FontFile 90 0 R >> endobj 92 0 obj << /Length1 1710 /Length2 1767 /Length3 0 /Length 2832 /Filter /FlateDecode >> stream xÚµTy\Lë'TF¢RÛ‹JëLS*•¤eJij43 ùéÔœ©cfÎ3gªi-–›-”µ¸ZÑÚ¤ÈÍ’K”k¹¶DR\¥¸Üs&®åsÏ|Μó>ßgù¾Ïû}^ƒÙl޹3 †Ý17gÐ,ì7‹áa…8ɘûÁ¡r$ š¥…ÅÀÀU C8‚¡nÛ† 8°‡ÅÁ°.vࣰ”Àù XX0q˜Œ å‚Épó`HFÀ0Š °1âŠIR$4 'sX™›“™Èhð‚B„X„Lˆå/‹|°ˆ# Áp$L¸pàq˜~àáçËcsŒiDbŽ\"Á¤Ÿ¹¸r¸<3àæìÃeØß xð8\òŸ £ÿP3àÃ%p²áH†³˜\gî 6“A'÷ –ʲìÜ fà+5"T ÅÄÊÀ( Ç%ötzDD-T.Ãi˜4”&)ùqÈÀ¤B@¼¥°V6FŽò‰vâaðpòt€7£2˜ rdžA1ÑJ"ˆ°ãÿ#“9EÃî@Ãß• ƒdÊXo6Ûˆ!ÅaBCGÂå2¤´ÌŸ7L®r©”¬ÁúIÿ)ó…º Fì,P Eüxb*—E}ӛﷂ¡2D†Ë†3Â@€ˆ`’½Œ<3UÚXÎ>žîL×Ü›ÐjΈî 4<Wz“ùœÝ¼íµµ `©S&ÊwÅÄb‚µŒB¶Ï !ú„cRý?.D±4ú¿P‚òä)ðå:EÖÉaO·Ï1„‰òÕ ãÀÀëF'K+•Cš¤™hIl´“$’Á±ˆ&^”h\*‡c£¿¾_Q¶€„à„è‰Á¡(³{¢ Ø › &_ Ïr0²¤ódL -CE À‡º†â0úÿÌܵÜå"‘$†þ½±?zCbD¤øÿü–Ã$o#L*†D?`ˆÌ‰„ùl nò°Ý‡ˆ™pFCE00ģYXÙX#©” ÓP 'B€DŽÇ&¥ÇLêœC"EdB1Q…„‡[+@#ÄÐ)MßSd“¬¤ÅWΟ¯6嚃K1!¼á¿q!ö!E"WYjbvâ÷åkõw ¾Â7Ñ..Xd´¹•0·#¶Ç`,°¶¶v±ßE† ß1J­ý²&Àp$B¹ý;â¸vÇÉäâ8æ–’1v´çez‹¼2FßÎk95mŠÛþGs`§ƒªâwļ—دŽËÞ€ 0HÔ}¼_uøêÙâ(Ž7M“éܼϟÆÛ¸‹u+¾äôãg^û Vο¾«&£f&à5w»Úª·ÍòÊ'­W9sKjîæ‰ø¹Q9I*ÒŽ¼5‘Z7íVKÝHüÓ»Ii)ÐYçÛ&­AÉzÍ^ª’3õW M_Z’#|švýÍ”³?Y?*.=zõÌX §òt?¿sÔ#­ñÜk#·¼^Ë÷$hóÞ\í‘}wŽŸ¾÷.÷IFjû䯧ju. úLVÁ»·&yþ¦3,›Ö7µbÓ“õ8ÔÅÝvɬõS–¬€Ì÷%¾Óì ¾TìÔ.Îð(úÍâÆà`¯µ\ôpEУÆy*º;&ëŸK,Óh=Sº»Ÿ§l¢b.ªrìÙ`ø`t¸YºÞä îöºñž7šVwA®•ýb›¹öZ6‚Z Ð;V^á<Ѥ7ýfÛCJ¸–¡Ùo6ئ š]“ý7êê¨ ƒRâô(yŠ:SÁ£GE»ëÅ“G%yê–v]—Ö±`ûÒ•}ïûÀŽä#å# ·šÅT‘…°¤×öAy¿q\{i ¬óÖ|Bdñ)ýQ[W´—f-‘n<¹GØp¢w¾Ãs^ÅA/{T~ṡ£öeâÓµ[Ë ½Á¬¤Õ¢âO똅ÔJ'-\÷ø•zo58­»höœFµ¯Z¢ÓºåôÇ8 £á ÕFŸbéîí:ž^X¾§…ê<çPòѪê¦Ì G½;p2{nŠÃñf·ŠÚ'š¦GBÂ3²¸H­¼i_”|C|eLÉõ«7²©s(ŽLõ… a\ÇÖ¨ã;ÆTÛÅ{k·Õ ÉÔ™o›ˆò*z„°Îî°sHêÊOa^ÜTç¹çIîåñá=Kb%¥óÓŠbŠóG¨O:7”{¼§q¥ÊÎc‡QjjýÝ·?½­¯r˜ã5¢¾bûÓ]ŠÎ(ÙûrÕž¢œCǦ=[¼?Kuñü‡iƒªù“·þåRkç~9â^òn÷û‚„Ýyô·‰ã(Wçn³²ú:+¶­qWª“šæ‹;T»†ŒFCû†  :Ï.d/-^z!Uò@&¿iëóö»9e×àoBo•{µ¾²ˆ¡DMΚZ¤šAg l_ÛiÛ2/¥"¨æ¸C•MódYOv)vŸœg¨sƯüRùš…ÙŠ™šÞsƒ\s* 8u²ìuÝcÍÕïÏä¯+4ÒL(ï½uvî³G5'š3…âî3‚Âsž?{v/Óê“k4µ?ÇF4‹‚kü®­oBUË.Î&¥efÍû¹sŸbïÈÖ‘'=î,Ÿh :Ný¹gì¥À W¦j¯¼ 辰°Ý‘õ%Û´ tOuª4Zì× ô×Þèð2¶èbŒE¨–8PõÞ¼8§¾·…毘{D\{ù`ŠþZõÑK€†‰q£W§Áªó»dG&UÇ6.›Vžc”Õ|Çò“©äuàZÀ÷î~a^ëØ-9ëÚÕ–Z$9y>¾ë×ËWº}:¾6óJG×~ùôõuC»S©õGùÉż$±OG¼VŒ»#ð4›ÐÊ*O}H£¾Þ:¶<©¸rh10þ¨o¾'ô~Ý…Ã)É3ÓŸX/+H÷½©.´ÉפíΙ4­Þcó+ÏÿØñöŠØÇìµ—]ô¯6PÒ¬²¨cÆ-«fo è1oÀoæ¾Ö ΩÚhr·í”Ç7Ü|M-´ø]žšiÛ…”Š ÷M5žœjqq¿¥Ö/&*ºo×Ð7-bã…72ï´¼¸-•¼ÏÛtzÓ¨Ùs~Ñ´â´ÈóŸ.nà>+™:½© ª‹[§òû¯öµzê‡Ë.v\yv0«ës}¥ù ¹é3Úgµé\i7^­±í³«TYÐÒ8Y‘{0׎?^Õ#õ•ÄCçÆ`g¯­9ä*ÓËŽúã\æóÙÛŽhšžõ"t0{z…ÏkW_ªâ»üÂõ¶ ÇÌgÐþ©Sû÷6wœ¸hokæõ忱^T6ZתÖÛâÆë¬”v: ±ÙŒ¦¨ÆÛ ~ê/?!çölA¯lNë-’m4)®Ø2ШŸî¯ç^$Ìí„vÎ"n¨ó/£“³¨7ßyxèLñÌš„í' L"Íæ›¬©§ž·t4êëvÏï±]6Ýûù§ } > endobj 44 0 obj << /Type /Encoding /Differences [40/braceleftBigg/bracerightBigg 90/integraldisplay] >> endobj 49 0 obj << /Type /Encoding /Differences [12/beta/gamma/delta 18/theta 21/lambda/mu 25/pi 27/sigma 58/period/comma/less/slash/greater 65/A/B 70/F/G/H 76/L 80/P/Q/R/S/T 97/a/b/c/d/e 103/g 105/i/j/k 109/m/n 115/s/t 118/v/w/x 122/z] >> endobj 47 0 obj << /Type /Encoding /Differences [0/minus 3/asteriskmath 106/bar 112/radical] >> endobj 41 0 obj << /Type /Encoding /Differences [0/Gamma 8/Phi 40/parenleft/parenright 43/plus 48/zero/one/two/three 61/equal 101/e 103/g 108/l 111/o/p 120/x 122/z] >> endobj 94 0 obj << /Length 739 /Filter /FlateDecode >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©[Á'Ûs³švÂÁ}o†½å|7ÍlÝÔ˜[òËô§¦kŸ˜xäœÛBÑÖYw€‡S0½è`ÓQÙ®iëþ"†m!-’ÕM5\Fî»:ØÃÀâõçi0‡U»ë‚4eÓ7;yúO§ð!˜¾ôµé›öƒÝß(³3ëóñ¸7PÁx°\²ÚìlCëýys0lúÁ+åýóh˜tcAªª®6§ã¦2ý¦ý0AÊù’¥e¹ L[ÿ7—Њín¤&–Êçø U´ RZ,c¸Å¶€ÉPSan aiqD‹ƒ4'Ê,Ò“I†F\ ‡Bµ¸îbu ’ù¨¨ú³é/Úy¸À2ŽÆRòXR xHXÏÀíÀc®Ïeg·:¥®'™ˆc|0ÎüxqîÇÆÅ?ü‘SÞÖÀ΃qìI&À’¸Ð'œ®gÀ΃ÌÇy9´ º…C ÕðœÖ:ŽóÆsÇ¡;(àE8o"‚A¾JÇ'O™ãÄ‘ÀäÃí+Ý6ôKIט'„á;¤ž œz†à„tFz¢Kp&q"p¢‚üBCT’/ôŒ9ñ¡!É©~Bü}ÒéîRqÒ‰óTÂçFIŸúܨ™ÏŠ|nTìs£Ÿ¥|neEAºxwüÜçI·yRåmž4¿Í“_ó¤å×<éÐçIÏ|žtäó¤cŸ'ø<é¹Ï“^øO™ôyÊf×;s¿|÷KÇÛ„wôúêUç¾·¢{lÝC‡'®iÍõ=>vG¬r÷½”Á_$Ô¨ endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ANGVFS+CMB10 /FontDescriptor 65 0 R /FirstChar 13 /LastChar 122 /Widths 63 0 R /ToUnicode 94 0 R >> endobj 95 0 obj << /Length 739 /Filter /FlateDecode >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©½à“í¹ÙM;áà¾7ÃÞr¾›f¶ÆnjÌ-ùeúSÓµOLg~¼À8÷ã ãâþÈ)okà çA„8 ö$`I\èÎ×3`çAfŽã<ÈZ]ƒÂ!‹„ê xNkÇyã¹ãÐð"œ7Á¿ _¥ã“§Ìq âH`òáö•‚nú¥¤kÌÂðRONH=CpB:# =Ñ%8“ˆ88QA~¡!*ÉzÆœøÐäT?!~Ž> étw©8éÄy*ás£¤Ï }nÔÌçFE>7*ö¹Q‰ÏR>7в¢ G]¼;~îó¤ŠÛ<©ò6OšßæI‹¯yÒòkžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçIg>O:÷yÒ…Ï“.}ž2îó” Ÿ§Lú> endobj 96 0 obj << /Length 740 /Filter /FlateDecode >> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qض*Õj¯˜n$HPý÷ëñ#xÙö?ŸgìÁÜýxÝLTÕîÌ$|äìÍôí¹+Í$ý¹=wwY[ž¦ž©L5ÎöOìµkËØ}ºÎÖM=Ƈ`úÒU¦«›v+ÍNmΧÓÁ@ãÁjÅ*³·­ÿçíѰé·¯œ÷Ï“aÒé*ÛÊô§miºmóa‚%ç+¶,ŠU`šê¿¹„Vìö#5±T>ÇW¨¢U°”¡Å2F[l ˜ 5æ¶GT°8XÆÂâD¹‚ÅÁ2Ád’¢è¡ÐC-®»X]£‚d>**ÿl»‹v.°Œ£±”<–T‡ÖÀ3Â9pD;pà˜°ësÙÙ­…N)¤ëI&âŒS?^`œùqŠqþä·5ð„ó Bœ…€{’ °$.ô çë°ó SÇqd­‚®AáEBu<§µŽã¼ñÌqèrxΛˆà_¯ÂñÉSê89q$0ùpûJA· ýRÒ5fÀ aø©§'¤ž!8!‘†žèœIDœœ('¿Ðä =cN|hH2ªƒŸ?CŸ„tº»Tœtâ<•ð¹QÒçF…>7jæs£"ŸûܨÄçF)ŸEYQУ.Þ?óyRùmžTq›'Íoó¤Å×Ozîó¤>OZùO)÷yJ…ÏS*}žÒÙõÎÜ/ßýÒñ6á%½>{å¹ëì‹èž[÷Ðቫs}‘Oí «ÜÇ=åãF/EðÑhªq endstream endobj 25 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FIQDPO+CMSL10 /FontDescriptor 69 0 R /FirstChar 13 /LastChar 120 /Widths 46 0 R /ToUnicode 96 0 R >> endobj 97 0 obj << /Length 750 /Filter /FlateDecode >> stream xÚmUMoâ0½çWx•ÚÅ$*B²ó!qض*Õj¯˜n$H¢$úï×3Cð²íh<~3~Ï~î~¼ngºj÷v¦9{³C{îK;Kîºàî.kËóÉ6ã³µ•­¦Ýችöm¹µ#»O7Ù¦©ÇÞ4åñ\Ù õ=ÈØºñ8‡Ý¿Ûß³ò4Ö‚Ïöçú8ÖÍŒø½ôí>sIv›dXôËöCÝ6OL xû9Œö´im$lþæ6‡±ÿDŽÁü¥¯l_7ìþ–šÛÚž»îhãÁzÍ*{pþçÝɲù·¯˜÷ÏÎ2‰kA¼Ê¶²C·+m¿k>lp¾fIQ¬ÛTÿíÅT±?LÐØAù>J‡ë ‘¡‹e .1›ÊPbéªpqH I$\kL¸8HbØŒShÄ…r =ôêzŠã51Xò‰Qùg×_¸sµ‚2¥äÄ’òÀ€+Š Ä ŠsˆC:CQŒ}.'c-ð”BbOEðƒuê×+Xg~Â:ÿ?aŠÛàj îB€.U ±$,ð¨›ĨA¦ˆA 2®‚žAÃ%‹˜òâ%Õ"µñ 1ô9h¨M„ _®ñ¤)ELN 1éÀs¥ ×þRÒ3fg =傸aîCÑYj¥ VÑÝà^¬w&L˜Ó=·° ½Ð3â„nqFyÀDŽϠOLüñ5'žpÏZx?iéý¤•÷“^x?éÐûIGÞO:ö~ÒÚûI“‡4ðÑíˆÏ¼Ït~ë3]ÜúÌð[ŸñÕgF~õ™QÞgfá}fBï3yŸ™ØûÌ,½ÏÌÊûÌhï3c¼ÏLê}f2ï3“{Ÿ™Âû,åÞg©ð>K¥÷Yº¸¾Nœ0³`Â^Çayî{7)q ã„ÑW7ö:©»¶ƒ*üሟþS`õRé̯ endstream endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QNGYFP+CMTI10 /FontDescriptor 71 0 R /FirstChar 75 /LastChar 122 /Widths 60 0 R /ToUnicode 97 0 R >> endobj 98 0 obj << /Length 672 /Filter /FlateDecode >> stream xÚmTÁn£0½óÞC¥öÆ6’*ŠdrضjªÕ^pºH‰A@ýûõŒCf»êô¿™yã'æîÇën¦êö`gñ#govh/}egæç¾‹îîò¶ºœ­Ÿ­­m=Oìµo«Ù½Ùæ[׌ž¼uÕéRÛ‰õ=IÛÆú°ûwû{VÇQðÙáÒœÆÆÍ8ß›ñäIßž3d_ƒ “~Ù~hZ÷ÄÄ#çÜ W›ö c Ñü*…Í'qÇÆÕýU;€ºHHV7ÕxýÂwuö÷É»Ïa´ç­;¶ÑzÍæoþpûOÔøÍ_úÚöû`÷_¥ù£Ý¥ëNd0m6¬¶G_ÑÏÿ¼?[6ÿvÆçý³³Lâ·ºª¶¶C·¯l¿w6Zs¾aë²ÜDÖÕÿ%!ãpœ¨™§ò%¼b•l¢µËÜc€Ã¤ ¥¤ÀÈ ¤ÀPÀP«[ ßuªŸñ©_õgß_•ñxû4Ž$Oˇú<X^\NB8 ë\;c®‚šBbMx¹ ùy˜%ÆPÈ 3jok:E q:¹Œ/d4ˆ8ð€Q§4ÈA2="\¤ÂšYˆ+ÀË‹ÔÏsä(Äè5$ YŒ—Èú rŠÀ‘€ƒ~ì+A¿\HÈ•ÐWr߯{ÇNøxoËøŠ‡û• ¿”$¿TL~©ù¥òK¥ä—ÊÈ/¥È/¥ƒ†p˜1ðsòQä£*ÉGÍÉG-ÈG-ÉG“zA>ê„|Ô)ù¨3òQ/ÉG½"µ"µ&µ!uN>ê‚|Ô%ùh8ùhùh$ùhbòÅ,n~á†üá°nË£ºô½ß+¸´p]À¢hœ½íµ®í \ˆÓ†¯—2ú ¯M„Ç endstream endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WLSEMC+CMTT10 /FontDescriptor 73 0 R /FirstChar 34 /LastChar 122 /Widths 61 0 R /ToUnicode 98 0 R >> endobj 99 0 obj << /Length 430 /Filter /FlateDecode >> stream xÚu’Ín«0…÷~й‹Hé‚b·M+„” eÑ5QÕ-±')R°‘©yûzlH¥¨]ŸgÎàãñLþ½nƒ…Ô{ f·Þ°Õ½äOeÃ&“•}ª{F”(Çlû¯F‹-v0Í7«ªº+Þ(qê%ŽªßEK> endobj 100 0 obj << /Length 600 /Filter /FlateDecode >> stream xÚuTËnâ@¼û+fHä@˜Æ!BHØÆ‡M¢€V{5ö@,á‡lsàïwª m˜ššêîê6Íè×Çn²Î냘g)>mW_ÚÌN¢ßiãFq]J[õoÖæ6n»WñÑÖÙÎöbmãmUôON¼­²ó%·ƒêÿ¢ÐžŠê[‚:b¼·'ç²,”t_“2í¿Š~"!ßýÙÉ~PG‹GZPàÛvE]½ õ,¥tĦʣºD37½ÓÁⱨòöæJàÑSZäEÖßNôÌJ7ï®]oËmu¬½åRL?Ýe×·WòùäMßÛܶEuãGsîrwiš³…!½ÕJäöèrº9¼¥¥Ó:½«öׯ MgÅÞ²:·]“f¶M«“õ–R®Ä2IVž­ò‡;e8äp´ÓÊ<ÌÚ_9"Þ*G(dS>sQÆ  ÖDDr¨˜ "qX+&Gh„ë±aá:$‚r”5PHi@ÌîS9ƒ1jUô|s(V8Œö‡>Ílè;ûJÛÛˆ¤YÀœD˜Ö½IÍü °aÏo€yk˜rA„)Ï‚1ÅR;JS΄øÓU¤—!ar ¬¹.ñšëÆèQsÝy4×Mˆçº‘“9µÒŒiè~½á©hø7!cŒÝD<`Â1ó ð†yÒSMùg’g…º>Õ2½û cðsÒ(> ZÊÀC@µ´· f fP·7Fo?],Û}/²KÛº•¡¤=À•½/mS7ˆ¢mûð'ƒÓ{âý¨ØL: endstream endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HVAVMW+LMMathItalic10-Regular /FontDescriptor 79 0 R /FirstChar 13 /LastChar 122 /Widths 55 0 R /Encoding 49 0 R /ToUnicode 100 0 R >> endobj 101 0 obj << /Length 599 /Filter /FlateDecode >> stream xÚmTM¢@½ó+z&ÎÁ±?DtbL$ñ°3“ÑlöŠÐ:$òÀƒÿ~ûUÉlbÛ:ÛÛ^Œ£]¼«ŠþʼnwUv¹ævP=…ö\Tÿ%¨#Æûwr)Ëbáž“2í¿‹~"¡>ýÅ©ž „cÅ+(ìm»¢®Þ„z•R:b[åQ]¢“ΛÞ݈éàïTTy{·$Ž0è)-ò"ëï'zf¥ ‚÷·®·å®:ÕÞj%¦_î²ëÛ¹|ñ¦mnÛ¢:‹ñƒ7w·¿6ÍŇÞz-r{r)Ý ÞÓÒŠéó6D‡[c…¦³bgYÛ®I3Û¦ÕÙz+)×b•$kÏVùÃ2r< ÚÀiå³ñ׎·D„Ê Ù”ÏÄB‡„1ˆ%ˆ ‘*f€HÖŠ‰ÀázIl@¸‰ e R3„ûTEÎ`̇ÚG=ŸÃÇŠ€£ý¡O3úξÓö>"i–0'¦µDoR3¿6ŒCàã-0ÏbS.ˆ0åY2¦XjGiÊ™Ÿ`ºŠô2$ÌCŽ5×%^sÝ=j®#æº ñ\7ÒÀcÒ §öCš1 Ý 7< ÿ&dŒ±›ˆL8f>Þ2OzÊ£)ÿLò¬P×§ZF£w?a ~N¥ÀTKx¨–6ðĬÁ¬Ê#ãàþÆè ᯋUûY‹ìÚ¶nchi°EeV¶©DÑv}ø¾àô‘xÿæzKm endstream endobj 18 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ECCHLZ+LMMathItalic8-Regular /FontDescriptor 81 0 R /FirstChar 61 /LastChar 120 /Widths 50 0 R /Encoding 49 0 R /ToUnicode 101 0 R >> endobj 102 0 obj << /Length 602 /Filter /FlateDecode >> stream xÚuTËnâ@¼û+fHäà0ŒC„°%›D­öjìXÂÙæ¿ß©nÌJ›ÍSSSÝ]ݦ™üxÛû›¢9ZßÊÁ—ÐÊáâtßI„ãÅ^Pè/ÛõeS? õ(¥tĶ.â¦B?½7»y³Ñ婬‹îfLaÓSZe>ÜNôÌ+7ï?ûÁV»úÔx«•˜½»Ë~è>Ééƒ7{í Û•õYL¿¸s·ûkÛ^,œé­×¢°'—ÔÍâ%«¬˜}×ì]vøl­ÐtVì.o Û·Yn»¬>[o%åZ¬ÒtíÙºøçN9žFmè´ò ³ ÖŽˆ€·DDÊ ÙTÀÄB‡D ˆ%ˆ ±*a€HÖŠ‰ÐázIlƒ@¸Žˆ e Rs„TEÎa,€:@½XÀÇŠ£ý±O3ûÎ?²î6"i–0'¦µDoR3ÿlGÀsÆ[`žÅ¦\aʳdL±ÔŽÒ”3%>ÅtéeD˜‡œk®K¼æº zÔ\7AÍuSâ¹n¬CƤAND4czCox*þMÄc71˜pÂ| ¼ežô”GSþ¹äY¡n@µŒFïAÊü‚4J©–2ðR-mà-LXƒY…”G&áíÑÂOëv_ŒüÚungh'i°emïkÛ6-¢èCû>þÓàôšzÍyN$ endstream endobj 16 0 obj << /Type /Font /Subtype /Type1 /BaseFont /EUAKDZ+LMMathItalic10-Bold /FontDescriptor 83 0 R /FirstChar 12 /LastChar 18 /Widths 52 0 R /Encoding 49 0 R /ToUnicode 102 0 R >> endobj 103 0 obj << /Length 790 /Filter /FlateDecode >> stream xÚuUMoâ0½çWx•Úʼn B „H¶­JµÚ+ML ”„ÿ~ýf’Vª¶àååyæyfln~=ï&iÙ¼ù‰¹—âÅwÍ¥-üdý{Žnn²¦¸œ|Ý?z_úr|Û=ˆç¶)v¾·ëm¶­«þ.ˆ·uq¼”~Tý_´òïUý%AqûêÿNާîªdø™œöýGwHÈ_«þd?(D ÅwZÐÂ?¾íª¦~ê^JˆM]®›6ÓEÓÁ˜ŽU]¶ƒ+ñ‘Ò¢¬Š~x¢ï⪂Żk×ûÓ¶>4Ñb!¦/áe×·WòyMŸÚÒ·Uý.n¿› /w—óùèaDÈh¹¥?„˜¡û“Óvú©z½ž½Ðô¬Ø[Ñ”¾;ï ßîëw-¤\ŠEž/#_—ßÞiÉKÞ£v´r¾´ž'Ëh¡tÀÊ1³ b 6aA8išƒHA¬x‰x*ã%)ˆ ˆœBSDÖjn@PË„AñȘʠ0ˆa8F ± 8An)Ž  +4bXÂ*^c›³”ÛHø°°`&f P;á6 <9ÇB‡—iµÔ2)L¦´ÛÔeTõ±¼Vå.>öíЭ¼HEÎW0*5áŒ0×^Ž‰Ï s ÖØº´¼~${S¨‘$2Ë€Q lÐC™³]j{ˆ¡Q\‹8jFجç¬A´ä¦`«Z1F­c­f1urÆ=#ýœ1éSƤÏx-¼é ã907OÁ›¡¼Ò`­aŸaŒ¦¼šºe¸VrLÓ”¬hVƇje éyÞ ïQ’ž§(ÅÞ ²Äa0<Šxö¬à?æšhÖkŒSÂIc/ Ïÿ ž-÷ËÁ§uŒáÍr^‡øvˆƒ˜–óÒ´œ7#¼!}Bz®UŒ½¸a®àÁQ­Rƒ“é†Za~×JËyž1KŽçŠN¡›qH¿âCù±–4côÅmÓ¹ÈËáÐÄãÂùy½—¶ 7]¬tá"«jÿy÷ž›3Vч.íñ¿OOyôâ§/ endstream endobj 15 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YNEPRT+LMMathSymbols10-Regular /FontDescriptor 91 0 R /FirstChar 0 /LastChar 112 /Widths 53 0 R /Encoding 47 0 R /ToUnicode 103 0 R >> endobj 104 0 obj << /Length 789 /Filter /FlateDecode >> stream xÚmUMoâ0½çWx•Úʼn*„‘8l[•jµWš˜6$( þýúÍ„®Tq zyyžyž›»_¯ÛIVµ~b¥xó}{îJ?YýÞ¢»»¼-ÏGß ÏÞW¾º~íŸÄk×–[?ˆûÕ&ß4õðÄ›¦<œ+UÝ-ýgÝü— ¸÷'‡cIÃsrÜ _ýe"¡~¯‡CP݈ÀЬ e|××mó$Ô£”2ë¦ZµG줦£1½úÛ×MÕ–Ä FJ‹ª.‡ñžå1”‹·—~ðÇM³o£ù\LßÂÇ~è.äò!š¾t•ïêæSÜÿð¾mϧÓÁÇÑb!*¿!C žwG/¦··ù-z¿œ¼Ðô®ØYÙV¾?íJßíšOÍ¥\ˆyQ,"ßT?¾iÉK>öWm´rZÏ’E4W:`eˆH-ˆDB„AXD– 2K^¢A žÊyIb ¢ ÂД‘µš”À2á@P<2¦r( bŽ‘ÁG¬N[Ê€£yE …°Š—À˜Åæ,å6>,,Ø„‰êag Ü„ƒ'ç¸@ÈâðÑ!­–Z"ƒÉŒv›¹œª~-¯Õ×r—_»nìŒÖ ^¤"çK•špN˜k¯ÇÄ„¹+l]Z^ ?’½)ÔH’ ™çÀ¨†NÖè¡,Ø.5‡=ÄÐ(®E•6+àkP-¹)تVŒGkÆX«ÙCLL¹g¤Ÿ1&}Ƙô9¯…7½f<ææ)x3”W¬5ì3ŒQÀ”WS· ×J.iš’%ÍJ˜âP­Œ!=ïQ›á=JÒóeØ»áA–8 †çOÏžüÇ\MÂzqJø iì%áùOáÙr¿|ZÇÞ,çuˆoÇ8ˆi9/HËysÂkÒ'¤çZÅØ‹ç Õ*38™n¬æÇq­4<¸˜ç³äx®èº”ë@ú%Ïzäȵ¤É£/n͘ÎEÁXŽ'€&7nÌïÛ­> endobj 105 0 obj << /Length 963 /Filter /FlateDecode >> stream xÚmVËnÛ0¼ë+ØC€ôàš¤,‰*Ô È¡4AÑ«#1©X6dhþ¾œÝuÒ9ÈR³Ë™¡$æêÃ÷Û…÷÷a‘~ÒêG8îÏóÍ—Í!¹ºj÷Ãy¦Óׯ0^î?«ïó~¸ 'uÝÜ´7Óöô1’o¦áé<† ë}R·Ó+ë¨ë»ðk1ïO»û?FÇ?h°ï¶§§ÈzŸ â¬z3«¨ìg˜ÛýôY™OZë8ÑMc³ßÁÉ1Yе¼è{ØNã,’Ô=&ƪq;œdD¿Ã.F‚âÛçã)ìn¦‡}RUjù#Þ<žægRù1Y~›Ç0o§GuýF[¼w{>žt(¬×j ±eÌàëfÔò}›/¤»çCP–Ɔ• û1›!Ì›é1$•ÖkUõý: ÓøæžI¹äþáÂ-"W;ü¤>['•M#¶9&tÄq7Óš'\œHûˆ3žˆ8©rqái"â¤*p³hÐHô(Ñ£,Á0z4ØdTqœ€Ž–—8©Z°ÛŽ&"Nª%—t(éPÒsI‡’%=—D ûŸFë‹ñá÷f–ŒtZB†~kuly"uʸ^1î€3Ž "tΘú”Œ©qXc©'g•ç¸0n^Çp¦Û×qƒq÷ÿÂéÿŸÏ“"rqñ̅>Ct½&–â5äÁ¶Ðj8C½4Ï{`ǵÄ)y'ˆÃ[ÝÁ‹!o&ƒþzâ³§†8s,0û u­á‡ ú­å§¥.ÃwÊ==8)÷LÁI9£z2yÒIÆœ œ¬c¿Ðõì =sÍ|h(Zž¿`~‹>뤽tœ³†~g#Og£¿K£Ö­ãYq”³1ÈÓ匩gÁ˜8Ž÷Ú¿$äÑQÎfïŽs^!g×0Æ>º–1õ—œ±ï®g %ëϰnÉú3ðKÖOÏIÉú3è)YNµ¬?‡÷’õÄgý9ñYgÍ%ë,ðΔ¬3¥ZÖ™R-ë4ðUJÎðâ%gxô’3>I^r&ŽäŒµ¼äŒgÀKÎX×KÎÈÓKÎÄ‘œáÝKÎÐï%gèô’3¼{ɹyÉ™úKÎÐï%gè¬%g¬[KÎà×’3øµä =µäLµ’3¼×’3ñ%gâóûØ–©—Ï}ÕâyõßG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–âÂ×™kÈhßó ×ý+‡Ó—ƒo8Ïs<éÄ¥“gÜv /‡òa@]tš_þƒÀè[ŸüA"B endstream endobj 17 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MTNDPN+LMRoman10-Bold /FontDescriptor 75 0 R /FirstChar 122 /LastChar 122 /Widths 51 0 R /Encoding 41 0 R /ToUnicode 105 0 R >> endobj 106 0 obj << /Length 962 /Filter /FlateDecode >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—ÃbtüÖ ?ìÏ/‘ôé}‹êcQQÓ?a9íçé›2_µÖ±ÐMc3`㔬EŠZ_Å=í§q=êêcÕ¸ÎrE¿Ã!ææû×Ó99©*µþožÎË+iü’¬,cXöÓ³ºý(-Þº¿/2”N¶[5†§81úÿ¾;µþÔãçáõ”¥kú†y §ãnËnzI¥õVU}¿MÂ4þqϤÜòøtå‘«~RŸm“ʦÛq,àfZsÁÅBÚGœq!â¤ÊMÄ…§BÄIUàfÑ`6˜QbFY‚a Ìh ±É¨%âX€Ž–—8©Z°ÛŽ 'U‡–Ž[:´thé¹¥CK–ž["†ý«O£õÕøðßn‘ŒtZB†~kul¹‘:e\owÀÇ:gLsJÆÔ‹8¬±4“³Êsüáºy¿†3ݾ_7¸î~ã_9ýÇx†<˜‘xˆ†Œe.ôò ë 0y°¯!¶…VÃzì¥)¸î÷§ä ou/†¼™ þ ûê‰ÏžâṯÀìƒÖµ†*è·–Ÿ–¸` ß)Ïôà¤<3'åŒjèÉäIC&s2p²ŽýBCÖ³/ÌÌ5ó¡¡h¹~Áüs ÖI{é8g ýÎ0FžÎ2Æ|—2F¯Û0Ƴâ(gc§ËÓÌ‚1qï#´9~IÈ££œÍÞç¼AήaŒ}t-cš/9cß]Ï:KÖŸaÝ’õgà—¬Ÿž“’õgÐS²þœzYï%ë/ˆÏúsâ³ÎšKÖYà)YgJ½¬3¥^Öià«”œáÅKÎðè%g|’¼äLÉkyÉÏ€—œ±®—œ‘§—œ‰#9û—œ¡ßKÎÐé%gx÷’3ró’3Í—œ¡ßKÎÐYKÎX·–œÁ¯%gðkÉzjÉ™z%gx¯%gâKÎÄç÷±',S/Ÿ9úªÅÓêÃG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–â_gî!£}Ï/\÷»XN8Jßνá²,ñH¤ó–N:œqû)¼ÉÇùˆ.ú£³üúÏ®~ôÉÿÚ~: endstream endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZLZXGJ+LMRoman10-Regular /FontDescriptor 85 0 R /FirstChar 0 /LastChar 120 /Widths 54 0 R /Encoding 41 0 R /ToUnicode 106 0 R >> endobj 107 0 obj << /Length 962 /Filter /FlateDecode >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—Ã’Ç@ îÃþü9ŸÝV±¦>Ôµü–Ó~ž¾)óUk Ý46óNÉZt¨õUÙÓ~£!-1Vûá,Wô;bh¾=Ãánzš“ªRë_ñæé¼¼’Â/ÉúÇ2†e?=«ÛÊâûËñø Béd»UcxŠ£÷ï»CPëÏ ¾Q^AYº6¬j˜Çp:ì¦çTZoUÕ÷Û$Lã÷LÊ-OWn¹Úá'õÙ6©l±ÍQÐÇn¦5\,¤}Ä"NªÜD\x*DœTn iƒ%f”%¦ÀŒ›ŒZ"ŽèhyÙˆ“ª»í¨qRuh鸥CK‡–ž[:´ôhé¹%bØ¿ú4Z_ÿíÉH§%Ôiè·VçÀ–ë©SÆ5ð†qœq\¡sÆ4§dL½ˆÃK39«<Ç®›÷k8Óíûuƒëî7þ•Ó¬gȃI¹‡¸aÈÁXæBŸ!ºÞ“Kñò`[h5œ¡Ç^š‚ëØq/qJÞ âðVwðbÈ›Éàß°¯žøì©!NÇ Ì>h]kø¡‚~kùii ÆðòLNÊ3SpRΨ†žLž4d’1''ëØ/4d=ûÂÌ\3Š–ëàÌo1§`´—ŽsÖÐï cäé,cÌw)côº c<+Žr6yºœ1Í,Çñ>B›ã—„<:ÊÙlàÝqÎäìÆØG×2¦ù’3öÝõŒ¡³dýÖ-Y~Éúé9)Y=%ëÏ©—õçð^²þ‚ø¬?'>ë, ¹dÞ™’u¦ÔË:Sêe¾JÉ^¼ä ^rÆ'ÉKÎÄ‘œ±–—œñ xÉëzÉyzÉ™8’3¼{Éú½ä ^r†w/9#7/9Ó|Éú½ä µäŒukÉüZr¿–œ¡§–œ©Wr†÷Zr&¾äL|~{Âò1õò™£¯Z<«>|äjÙ˜¬ecð€Ö²1´¿05­ù¥²¢–§‘Ì´ó ;z‘hS[æg)þðuæ2Ú÷üÂu¿‹ÅᄃôíØ.ËOD:mé¤Ã·ŸÂÛ|œè¢?:ɯÿ7àêGŸü»•c endstream endobj 32 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YNVWXX+LMRoman6-Regular /FontDescriptor 87 0 R /FirstChar 49 /LastChar 50 /Widths 42 0 R /Encoding 41 0 R /ToUnicode 107 0 R >> endobj 108 0 obj << /Length 962 /Filter /FlateDecode >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—Ãââ ÷a~‰œÏn«XSjŠZþ Ëi?Oß”ùªµŽ…n›ù§d-:Ôúªìi?‹ˆQ–«Æýp–+ú1 4ß¿žÎáp7=ÍIU©õ¯xót^^Iá—dýcòŸžÕíeñÎýåx| P¡t²Ýª1<ÅÑû÷Ý!¨õgß(¯Ç ,]V5Ìc8wCXvÓsH*­·ªêûm¦ñ{&å–ǧ+·ˆ\íð“úl›T6Øæ(èˆc7Óš .Ò>⌠'Un".<"Nª7‹ƒ´ÁŒ3Ê S`F‰MF-Çt´¼lÄIÕ‚ÝvTˆ8©:´tÜÒ¡¥CKÏ-Zz´ôÜ1ì_}­¯Æ‡ÿv‹d¤Óê4ô[«s`ËuˆÔ)ãxøÎ8.ˆÐ9cšS2¦^Äa¥™œUžã×Íû5œéöýºÁu÷ÿÊé?ÖÀ3äÁ¤ˆÜÀCÜ0ä`,s¡Ï]o€Éƒ¥x y°-´ÎÐc/MÁu츗8%ïqx«;x1äÍdðoØWO|öÔ§cŽf´®5üPA¿µü´´ÀcøNy¦'å™)8)gTCO&O2ɘ““u첞}af®™ EËuð æ·˜S°NÚKÇ9kèw†1òt–1æ»”1z݆1žG9ƒ<]ΘfŒ‰ãx¡ÍñKBål6ðî8ç rv cì£kÓ|ÉûîzÆÐY²þ ë–¬?¿dýôœ”¬?ƒž’õçÔËúsx/YA|ÖŸŸuÐ\²ÎïLÉ:Sêe)õ²N_¥ä /^r†G/9ã“ä%gâHÎXËKÎx¼äŒu½äŒ<½äLÉÞ½ä ý^r†N/9û—œ‘›—œi¾ä ý^r†ÎZrƺµä ~-9ƒ_KÎÐSKÎÔ+9Ã{-9_r&>¿=aù˜zùÌÑW-žU>rµl LÖ²1x@kÙZŒ_˜áÖüRYQËÆ€ÓÈfÚ‚ù„½H´©-ó³ø:sí{~áºßÅâpÂAúvì —e‰'"¶tÒáŒÛOáí@>ÎGtÑä×ÿpõ£Oþ (m endstream endobj 27 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YOCMJP+LMRoman8-Regular /FontDescriptor 89 0 R /FirstChar 0 /LastChar 120 /Widths 43 0 R /Encoding 41 0 R /ToUnicode 108 0 R >> endobj 20 0 obj << /Type /Pages /Count 5 /Kids [2 0 R 22 0 R 29 0 R 34 0 R 38 0 R] >> endobj 109 0 obj << /Names [(Doc-Start) 7 0 R (page.1) 6 0 R (page.2) 24 0 R (page.3) 31 0 R (page.4) 36 0 R (page.5) 40 0 R] /Limits [(Doc-Start) (page.5)] >> endobj 110 0 obj << /Dests 109 0 R >> endobj 111 0 obj << /Type /Catalog /Pages 20 0 R /Names 110 0 R /PageMode/UseOutlines /OpenAction 1 0 R >> endobj 112 0 obj << /Producer (MiKTeX pdfTeX-1.40.24) /Author(\376\377\000C\000h\000r\000i\000s\000t\000o\000p\000h\000e\000r\000\040\000J\000a\000c\000k\000s\000o\000n\000,\000\040\000M\000R\000C\000\040\000B\000i\000o\000s\000t\000a\000t\000i\000s\000t\000i\000c\000s\000\040\000U\000n\000i\000t)/Title(\376\377\000f\000l\000e\000x\000s\000u\000r\000v\000:\000\040\000D\000i\000s\000t\000r\000i\000b\000u\000t\000i\000o\000n\000s\000\040\000r\000e\000f\000e\000r\000e\000n\000c\000e)/Subject()/Creator(LaTeX with hyperref)/Keywords(\376\377\000s\000u\000r\000v\000i\000v\000a\000l) /CreationDate (D:20240816160359+01'00') /ModDate (D:20240816160359+01'00') /Trapped /False /PTEX.Fullbanner (This is MiKTeX-pdfTeX 4.14.0 (1.40.24)) >> endobj xref 0 113 0000000000 65535 f 0000000015 00000 n 0000003116 00000 n 0000003246 00000 n 0000003535 00000 n 0000000061 00000 n 0000003430 00000 n 0000003482 00000 n 0000205766 00000 n 0000206742 00000 n 0000209619 00000 n 0000208708 00000 n 0000017972 00000 n 0000211163 00000 n 0000217497 00000 n 0000213971 00000 n 0000212911 00000 n 0000216268 00000 n 0000212036 00000 n 0000215034 00000 n 0000220142 00000 n 0000005575 00000 n 0000005406 00000 n 0000003734 00000 n 0000005521 00000 n 0000207719 00000 n 0000210288 00000 n 0000219956 00000 n 0000008400 00000 n 0000008231 00000 n 0000005787 00000 n 0000008346 00000 n 0000218727 00000 n 0000011049 00000 n 0000010880 00000 n 0000008612 00000 n 0000010995 00000 n 0000013407 00000 n 0000013238 00000 n 0000011261 00000 n 0000013353 00000 n 0000204779 00000 n 0000013596 00000 n 0000013626 00000 n 0000204339 00000 n 0000014370 00000 n 0000014694 00000 n 0000204683 00000 n 0000015294 00000 n 0000204443 00000 n 0000015336 00000 n 0000015712 00000 n 0000015736 00000 n 0000015792 00000 n 0000016439 00000 n 0000017111 00000 n 0000017737 00000 n 0000018213 00000 n 0000018237 00000 n 0000018299 00000 n 0000018334 00000 n 0000018626 00000 n 0000019000 00000 n 0000019622 00000 n 0000020246 00000 n 0000034801 00000 n 0000035139 00000 n 0000055340 00000 n 0000055749 00000 n 0000068506 00000 n 0000068786 00000 n 0000081230 00000 n 0000081490 00000 n 0000096131 00000 n 0000096485 00000 n 0000111149 00000 n 0000111378 00000 n 0000114716 00000 n 0000114994 00000 n 0000125079 00000 n 0000125424 00000 n 0000131689 00000 n 0000131956 00000 n 0000135037 00000 n 0000135286 00000 n 0000159173 00000 n 0000159469 00000 n 0000174420 00000 n 0000174656 00000 n 0000197634 00000 n 0000197919 00000 n 0000200882 00000 n 0000201135 00000 n 0000204086 00000 n 0000204947 00000 n 0000205923 00000 n 0000206899 00000 n 0000207878 00000 n 0000208867 00000 n 0000209778 00000 n 0000210482 00000 n 0000211356 00000 n 0000212228 00000 n 0000213100 00000 n 0000214164 00000 n 0000215224 00000 n 0000216454 00000 n 0000217684 00000 n 0000218913 00000 n 0000220228 00000 n 0000220388 00000 n 0000220426 00000 n 0000220533 00000 n trailer << /Size 113 /Root 111 0 R /Info 112 0 R /ID [<7706729782BE5D0A22E0457BBF5C0794> <7706729782BE5D0A22E0457BBF5C0794>] >> startxref 221269 %%EOF flexsurv/inst/doc/flexsurv-examples.R0000644000176200001440000001466514657665170017524 0ustar liggesusers### R code from vignette source 'flexsurv-examples.Rnw' ################################################### ### code chunk number 1: flexsurv-examples.Rnw:39-59 ################################################### library(flexsurv) hgengammaPH <- function(x, dummy, mu=0, sigma=1, Q){ dummy * hgengamma(x=x, mu=mu, sigma=sigma, Q=Q) } HgengammaPH <- function(x, dummy, mu=0, sigma=1, Q){ dummy * Hgengamma(x=x, mu=mu, sigma=sigma, Q=Q) } custom.gengammaPH <- list(name="gengammaPH", pars=c("dummy","mu","sigma","Q"), location="dummy", transforms=c(log, identity, log, identity), inv.transforms=c(exp, identity, exp, identity), inits=function(t){ lt <- log(t[t>0]) c(1, mean(lt), sd(lt), 0) }) fs7 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist=custom.gengammaPH, fixedpars=1) ################################################### ### code chunk number 2: flexsurv-examples.Rnw:84-127 ################################################### fs2 <- flexsurvreg(Surv(recyrs, censrec) ~ group + sigma(group), data=bc, dist="gengamma") B <- 5000 t <- seq(0.1, 8, by=0.1) hrAFT.est <- summary(fs2, t=t, type="hazard", newdata=data.frame(group="Medium"),ci=FALSE)[[1]][,"est"] / summary(fs2, t=t, type="hazard", newdata=data.frame(group="Good"),ci=FALSE)[[1]][,"est"] pars <- normboot.flexsurvreg(fs2, B=B, newdata=data.frame(group=c("Good","Medium"))) hrAFT <- matrix(nrow=B, ncol=length(t)) for (i in seq_along(t)){ haz.medium.rep <- do.call(hgengamma, c(list(t[i]), as.data.frame(pars[[2]]))) haz.good.rep <- do.call(hgengamma, c(list(t[i]), as.data.frame(pars[[1]]))) hrAFT[,i] <- haz.medium.rep / haz.good.rep } hrAFT <- apply(hrAFT, 2, quantile, c(0.025, 0.975)) hrPH.est <- summary(fs7, t=t, type="hazard", newdata=data.frame(group="Medium"),ci=FALSE)[[1]][,"est"] / summary(fs7, t=t, type="hazard", newdata=data.frame(group="Good"),ci=FALSE)[[1]][,"est"] pars <- normboot.flexsurvreg(fs7, B=B, newdata=data.frame(group=c("Good","Medium"))) hrPH <- matrix(nrow=B, ncol=length(t)) for (i in seq_along(t)){ haz.medium.rep <- do.call(hgengammaPH, c(list(t[i]), as.data.frame(pars[[2]]))) haz.good.rep <- do.call(hgengammaPH, c(list(t[i]), as.data.frame(pars[[1]]))) hrPH[,i] <- haz.medium.rep / haz.good.rep } hrPH <- apply(hrPH, 2, quantile, c(0.025, 0.975)) plot(t, hrAFT[1,], type="l", ylim=c(0, 10), col="red", xlab="Years", ylab="Hazard ratio (Medium / Good)", lwd=1, lty=2) lines(t, hrAFT[2,], col="red", lwd=1, lty=2) lines(t, hrPH[1,], col="darkgray", lwd=1, lty=2) lines(t, hrPH[2,], col="darkgray", lwd=1, lty=2) lines(t, hrAFT.est, col="red", lwd=2) lines(t, hrPH.est, col="darkgray", lwd=2) legend("topright", lwd=c(2,2), col=c("red","darkgray"), bty="n", c("Generalized gamma: standard AFT", "Generalized gamma: proportional hazards")) ################################################### ### code chunk number 3: flexsurv-examples.Rnw:132-146 (eval = FALSE) ################################################### ## nd <- data.frame(group=c("Good","Medium")) ## hr_aft <- hr_flexsurvreg(fs2, t=t, newdata=nd) ## hr_ph <- hr_flexsurvreg(fs7, t=t, newdata=nd) ## ## plot(t, hr_aft$lcl, type="l", ylim=c(0, 10), col="red", xlab="Years", ## ylab="Hazard ratio (Medium / Good)", lwd=1, lty=2) ## lines(t, hr_aft$ucl, col="red", lwd=1, lty=2) ## lines(t, hr_aft$est, col="red", lwd=2) ## ## lines(t, hr_ph$lcl, col="darkgray", lwd=1, lty=2) ## lines(t, hr_ph$ucl, col="darkgray", lwd=1, lty=2) ## lines(t, hr_ph$est, col="darkgray", lwd=2) ## legend("topright", lwd=c(2,2), col=c("red","darkgray"), bty="n", ## c("Generalized gamma: standard AFT", "Generalized gamma: proportional hazards")) ################################################### ### code chunk number 4: flexsurv-examples.Rnw:168-170 ################################################### summary(fs2, type="rmst", t=100, tidy=TRUE) summary(fs2, fn=rmst_gengamma, t=100, tidy=TRUE) ################################################### ### code chunk number 5: flexsurv-examples.Rnw:174-176 ################################################### est <- fs2$res[,"est"] rmst_gengamma(t=100, mu=est[1], sigma=est[2], Q=est[3]) ################################################### ### code chunk number 6: flexsurv-examples.Rnw:180-181 ################################################### summary(fs2, type="median") ################################################### ### code chunk number 7: flexsurv-examples.Rnw:211-231 ################################################### if (require("TH.data")){ GBSG2 <- transform(GBSG2, X1a=(age/50)^-2, X1b=(age/50)^-0.5, X4=tgrade %in% c("II","III"), X5=exp(-0.12*pnodes), X6=(progrec+1)^0.5 ) (progc <- coxph(Surv(time, cens) ~ horTh + X1a + X1b + X4 + X5 + X6, data=GBSG2)) (prog3 <- flexsurvspline(Surv(time, cens) ~ horTh + X1a + X1b + X4 + X5 + X6, k=3, data=GBSG2)) predc <- predict(progc, type="lp") progc <- cut(predc, quantile(predc, 0:3/3)) predf <- model.matrix(prog3) %*% prog3$res[-(1:5),"est"] progf <- cut(predf, quantile(predf, 0:3/3)) table(progc, progf) } ################################################### ### code chunk number 8: flexsurv-examples.Rnw:251-255 ################################################### set.seed(1) nsim <- 10000 onsetday <- runif(nsim, 0, 30) deathday <- onsetday + rgamma(nsim, shape=1.5, rate=1/10) ################################################### ### code chunk number 9: flexsurv-examples.Rnw:265-269 ################################################### datt <- data.frame(delay = deathday - onsetday, event = rep(1, nsim), rtrunc = 40 - onsetday) datt <- datt[datt$delay < datt$rtrunc, ] ################################################### ### code chunk number 10: flexsurv-examples.Rnw:279-282 ################################################### fitt <- flexsurvreg(Surv(delay, event) ~ 1, data=datt, rtrunc = rtrunc, dist="gamma") fitt summary(fitt, t=1, fn = mean_gamma) flexsurv/inst/doc/multistate.R0000644000176200001440000002140314657665122016206 0ustar liggesusers## ----echo=FALSE------------------------------------------- options(width=60) options(prompt="R> ") library(knitr) opts_chunk$set(fig.path="flexsurv-") render_sweave() ## --------------------------------------------------------- library(flexsurv) bosms3[18:22, ] ## --------------------------------------------------------- crexp <- flexsurvreg(Surv(years, status) ~ trans, data = bosms3, dist = "exp") crwei <- flexsurvreg(Surv(years, status) ~ trans + shape(trans), data = bosms3, dist = "weibull") cfwei <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans + shape(trans), data = bosms3, dist = "weibull") ## --------------------------------------------------------- crcox <- coxph(Surv(years, status) ~ strata(trans), data = bosms3) cfcox <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data = bosms3) ## --------------------------------------------------------- mod_nobos_bos <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1), data = bosms3, dist = "weibull") mod_nobos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2), data = bosms3, dist = "weibull") mod_bos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==3), data = bosms3, dist = "weibull") ## --------------------------------------------------------- tmat <- rbind(c(NA, 1, 2), c(NA, NA, 3), c(NA, NA, NA)) crfs <- fmsm(mod_nobos_bos, mod_nobos_death, mod_bos_death, trans = tmat) ## --------------------------------------------------------- require("mstate") mrcox <- msfit(crcox, trans = tmat) mfcox <- msfit(cfcox, trans = tmat) ## --------------------------------------------------------- tgrid <- seq(0, 14, by = 0.1) mrwei <- msfit.flexsurvreg(crwei, t = tgrid, trans = tmat) mrexp <- msfit.flexsurvreg(crexp, t = tgrid, trans = tmat) mfwei <- msfit.flexsurvreg(cfwei, t = tgrid, trans = tmat) ## ----cumhaz,include=FALSE--------------------------------- cols <- c("black", "#E495A5", "#86B875", "#7DB0DD") # colorspace::rainbow_hcl(3) plot(mrcox, xlab = "Years after baseline", lwd = 3, xlim = c(0, 14), cols = cols[1:3]) for (i in 1:3){ lines(tgrid, mrexp$Haz$Haz[mrexp$Haz$trans == i], col = cols[i], lty = 2, lwd = 2) lines(tgrid, mrwei$Haz$Haz[mrwei$Haz$trans == i], col = cols[i], lty = 3, lwd = 2) } lines(mfcox$Haz$time[mfcox$Haz$trans == 3], mfcox$Haz$Haz[mfcox$Haz$trans == 3], type = "s", col = cols[4], lty = 1, lwd = 2) lines(tgrid, mfwei$Haz$Haz[mfwei$Haz$trans == 3], col = cols[4], lty = 3, lwd = 2) legend("topleft", inset = c(0, 0.2), lwd = 2, col = cols[4], c("2 -> 3 (clock-forward)"), bty = "n") legend("topleft", inset = c(0, 0.3), c("Non-parametric", "Exponential", "Weibull"), lty = c(1, 2, 3), lwd = c(3, 2, 2), bty = "n") ## --------------------------------------------------------- pmatrix.fs(cfwei, t = c(5, 10), trans = tmat) ## ----eval=FALSE------------------------------------------- # pmatrix.simfs(crwei, trans = tmat, t = 5) # pmatrix.simfs(crwei, trans = tmat, t = 10) ## --------------------------------------------------------- ptc <- probtrans(mfcox, predt = 0, direction = "forward")[[1]] round(ptc[c(165, 193),], 3) ## --------------------------------------------------------- ptw <- probtrans(mfwei, predt = 0, direction = "forward")[[1]] round(ptw[ptw$time %in% c(5, 10),], 3) ## ----eval=FALSE------------------------------------------- # mssample(mrcox$Haz, trans = tmat, clock = "reset", M = 1000, # tvec = c(5, 10)) # mssample(mrwei$Haz, trans = tmat, clock = "reset", M = 1000, # tvec = c(5, 10)) ## --------------------------------------------------------- tmat_nobos <- rbind("No BOS"=c(NA,1,2), "BOS"=c(NA,NA,NA),"Death"=c(NA,NA,NA)) crfs_nobos <- fmsm(mod_nobos_bos, mod_nobos_death, trans = tmat_nobos) pmatrix.fs(crfs_nobos, from=1, t=100000)["No BOS",c("BOS","Death")] ## --------------------------------------------------------- modexp_nobos_bos <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1), data = bosms3, dist = "exponential") modexp_nobos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2), data = bosms3, dist = "exponential") crfs_nobos <- fmsm(modexp_nobos_bos, modexp_nobos_death, trans=tmat_nobos) pmatrix.fs(crfs_nobos, from=1, t=100000)["No BOS",c("BOS","Death")] rate12 <- modexp_nobos_bos$res["rate","est"] rate13 <- modexp_nobos_death$res["rate","est"] rate12 / (rate12 + rate13) ## --------------------------------------------------------- crfs_nobos <- fmsm(mod_nobos_bos, mod_nobos_death, trans = tmat_nobos) simfinal_fmsm(crfs_nobos, probs = c(0.25, 0.5, 0.75), M=10000) ## --------------------------------------------------------- simfinal_fmsm(crfs, probs = c(0.25, 0.5, 0.75), M=10000) ## --------------------------------------------------------- bosms3[bosms3$id %in% c(4,5),] bosmx3 <- bosms3 bosmx3$Tstart <- bosmx3$Tstop <- bosmx3$trans <- NULL bosmx3 <- bosmx3[!(bosmx3$status==0 & duplicated(paste(bosmx3$id, bosmx3$from))),] bosmx3$event <- ifelse(bosmx3$status==0, NA, bosmx3$to) bosmx3$event <- factor(bosmx3$event, labels=c("BOS","Death")) bosmx3$to <- NULL bosmx3[bosmx3$id %in% c(4,5),] ## --------------------------------------------------------- bosfs <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) bosfs ## --------------------------------------------------------- set.seed(1) bosmx3$x <- rnorm(nrow(bosmx3),0,1) bosfsp <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential"), pformula = ~ x) bosfsp ## --------------------------------------------------------- bosfst <- flexsurvmix(Surv(years, status) ~ x, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) ## --------------------------------------------------------- flexsurvmix(list(Surv(years, status) ~ x, Surv(years, status) ~ 1), event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) ## --------------------------------------------------------- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential"), anc = list(BOS=list(shape=~x), Death=list(rate=~1))) ## --------------------------------------------------------- nd <- data.frame(x=c(0,1)) probs_flexsurvmix(bosfsp, newdata=nd, B=50) ## --------------------------------------------------------- mean_flexsurvmix(bosfst, newdata=nd) quantile_flexsurvmix(bosfst, B=50, newdata=nd, probs=c(0.25, 0.5, 0.75)) ## --------------------------------------------------------- p_flexsurvmix(bosfst, t=c(5, 10), B=10, startname="No BOS") ## --------------------------------------------------------- bdat <- bosmx3[bosmx3$from==2,] bdat$event <- factor(bdat$event) bosfst_bos <- flexsurvmix(Surv(years, status) ~ x, event=event, data=bdat, dists = c(Death="exponential")) bosfmix <- fmixmsm("No BOS"=bosfst, "BOS"=bosfst_bos) ## --------------------------------------------------------- ppath_fmixmsm(bosfmix, B=20) ppath_fmixmsm(bosfmix, B=20, final=TRUE) ## --------------------------------------------------------- meanfinal_fmixmsm(bosfmix, B=10) qfinal_fmixmsm(bosfmix, B=10) meanfinal_fmixmsm(bosfmix, B=10, final=TRUE) ## ----fig.height=3----------------------------------------- aj <- ajfit_flexsurvmix(bosfs, start="No BOS") bosfs_bos <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bdat, dists = c(Death="exponential")) aj2 <- ajfit_flexsurvmix(bosfs_bos, start="BOS") library(ggplot2) ggplot(aj, aes(x=time, y=val, lty=model, col=state)) + geom_line() + xlab("Years after transplant") + ylab("Probability of having moved to state") ggplot(aj2, aes(x=time, y=val, lty=model, col=state)) + xlab("Years after transplant") + ylab("Probability of having moved to state") + geom_line() ## ----message=FALSE---------------------------------------- library(dplyr) aj3 <- ajfit_fmsm(crfs_nobos) %>% filter(model=="Parametric") %>% mutate(model = "Cause specific hazards") %>% mutate(state = factor(state, labels=c("No BOS","BOS","Death"))) %>% full_join(aj) ggplot(aj3, aes(x=time, y=val, lty=model, col=state)) + xlab("Years after transplant") + ylab("Probability of having moved to state") + geom_line() flexsurv/inst/doc/multistate.Rnw0000644000176200001440000014302114471114027016537 0ustar liggesusers%\VignetteIndexEntry{Multi-state modelling with flexsurv} %\VignetteEngine{knitr::knitr} % \documentclass[article,shortnames]{jss} \documentclass[article,shortnames,nojss,nofooter]{jss} \usepackage{bm} \usepackage{tabularx} \usepackage{graphics} \usepackage{alltt} \usepackage[utf8]{inputenc} <>= options(width=60) options(prompt="R> ") library(knitr) opts_chunk$set(fig.path="flexsurv-") render_sweave() @ %% need no \usepackage{Sweave.sty} \author{Christopher H. Jackson \\ MRC Biostatistics Unit, Cambridge, UK} \title{Flexible parametric multi-state modelling with flexsurv} \Plainauthor{Christopher Jackson, MRC Biostatistics Unit} \Address{ Christopher Jackson\\ MRC Biostatistics Unit\\ Cambridge Institute of Public Health\\ Robinson Way\\ Cambridge, CB2 0SR, U.K.\\ E-mail: \email{chris.jackson@mrc-bsu.cam.ac.uk} } \Abstract{ A \emph{multi-state model} represents how an individual moves between multiple states in continuous time. Survival analysis is a special case with two states, ``alive'' and ``dead''. \emph{Competing risks} are a further special case, where there are multiple causes of death, that is, one starting state and multiple possible destination states. This vignette describes the two forms of multi-state or competing risks models that can be implemented in \pkg{flexsurv}. Section~\ref{sec:causespec} describes models based on \emph{cause-specific hazards}. Section~\ref{sec:mixture} describes a less commonly-used approach based on \emph{mixture models}. Cause-specific hazards models tend to be faster to fit, whereas the parameters of the mixture models are easier to interpret. } \Keywords{multi-state models, multistate models, competing risks} \begin{document} \section{Overview} \label{sec:multistate} This vignette describes multi-state models for data where there are a series of event times $t_{1},\dots, t_{n}$ for an individual, corresponding to changes of state. The last of these may be an observed or right-censored event time. Note \emph{panel data} are not considered here --- that is, observations of the state of the process at an arbitrary set of times \citep{kalbfleisch:lawless}. In panel data, we do not necessarily know the time of each transition, or even whether transitions of a certain type have occurred at all between a pair of observations. Multi-state models for that type of data (and also exact event times) can be fitted with the \pkg{msm} package for \proglang{R} \citep{msmjss}, but are restricted to (piecewise) exponential event time distributions. Knowing the exact event times enables much more flexible models, which \pkg{flexsurv} can fit. The \pkg{flexsurv} package provides two general frameworks for multi-state modelling. \begin{enumerate} \item The most common framework is based on \emph{cause-specific hazards} of competing risks. This is an extension of standard survival modelling, and is explained in Section~\ref{sec:causespec}. \item An alternative approach is based on \emph{mixture models}. For example, suppose there are three competing states that an individual in state $r$ may move to next. People are then classified into three \emph{mixture components}, defined by the state the person moves to. The probabilities of each next state, and the distribution of the time of moving to each state, are estimated jointly. These quantities are easier to interpret than cause specific hazards. This approach was originally described by \citet{larson1985mixture}. In Section~\ref{sec:mixture} we explain how to implement it using the \code{flexsurvmix} function. \end{enumerate} \section{Multi-state modelling using cause-specific hazards} \label{sec:causespec} Given that an individual is in state $X(t)$ at time $t$, their next state, and the time of the change, are governed by a set of \emph{transition intensities} or \emph{transition hazards} \[q_{rs}(t,\mathbf{z}(t),\mathcal{F}_t) = \lim_{\delta t \rightarrow 0} \Prob(X(t+\delta t) = s | X(t) = r, \mathbf{z}(t), \mathcal{F}_t) / \delta t \] for states $r, s = 1,\dots,R$, which for a survival model are equivalent to the hazard $h(t)$. The intensity represents the instantaneous risk of moving from state $r$ to state $s$, and is zero if the transition is impossible. It may depend on covariates $\mathbf{z}(t)$, the time $t$ itself, and possibly also the ``history'' of the process up to that time, $\mathcal{F}_t$: the states previously visited or the length of time spent in them. \paragraph{Alternative time scales} In semi-Markov (``clock-reset'') models, $q_{rs}(t)$ is defined as a function of the time $t$ since entry into the current state. Any software to fit survival models can also fit this kind of multi-state model, as the following sections will explain. In an inhomogeneous Markov model, $t$ represents the time since the beginning of the process (that is, a ``clock-forward'' scale is used), but the intensity $q_{rs}(t)$ does not depend further on $\mathcal{F}_t$. Again, standard survival modelling software can be used, with the additional requirement that it can deal with left-truncation or \emph{counting process} data, which \code{survreg}, for example, does not currently support. These approaches are equivalent for competing risks models, since there is at most one transition for each individual, so that the time since the beginning of the process equals the time spent in the current state. Therefore no left-truncation is necessary. Note also that in a clock-reset model, the time since the beginning of the process may enter the model as a covariate. Likewise, in a clock-forward model, the time spent in the current state may enter as a covariate, in which case the model is no longer Markov. \paragraph{Example} For illustration, consider a simple three-state example, previously studied by \citet{heng:paper}. Recipients of lung transplants are are risk of bronchiolitis obliterans syndrome (BOS). This was defined as a decrease in lung function to below 80\% of a baseline value defined in the six months following transplant. A three-state ``illness-death'' model represents the risk of developing BOS, the risk of dying before developing BOS, and the risk of death after BOS. BOS is assumed to be irreversible, so there are only three allowed transitions (Figure \ref{fig:bosmsm}), each with an intensity function $q_{rs}(t)$. \begin{figure}[h] \centering \scalebox{0.6}{\includegraphics{bosmsm.pdf}} \caption{Three-state multi-state model for bronchiolitis obliterans syndrome (BOS).} \label{fig:bosmsm} \end{figure} \subsection{Representing multi-state data as survival data} \label{sec:multistate:data} \citet{andersen:keiding} and \citet{putter:mstate} explain how to implement multi-state models by manipulating the data into a suitable form for survival modelling software --- an overview is given here. For each permitted $r \rightarrow s$ transition in the multi-state model, there is a corresponding ``survival'' (time-to-event) model, with hazard rates defined by $q_{rs}(t)$. For a patient who enters state $r$ at time $t_{j}$, their next event at $t_{j+1}$ is defined by the model structure to be one of a set of competing events $s_1,\ldots,s_{n_r}$. This implies there are $n_r$ corresponding survival models for this state $r$, and $\sum_r n_r$ models over all states $r$. In the BOS example, there are $n_1=2,n_2=1$ and $n_3=0$ possible transitions from states 1, 2 and 3 respectively. The data to inform the $n_r$ models from state $r$ consists firstly of an indicator for whether the transition to the corresponding state $s_1,\ldots,s_{n_r}$ is observed or censored at $t_{j+1}$. If the individual moves to state $s_k$, the transitions to all other states in this set are censored at this time. This indicator is coupled with: \begin{itemize} \item (for a semi-Markov model) the time elapsed $dt_{j} = t_{j+1} - t_{j}$ from state $r$ entry to state $s$ entry. The ``survival'' model for the $r \rightarrow s$ transition is fitted to this time. \item (for an inhomogeneous Markov model) the start and stop time $(t_j,t_{j+1})$, as in \S\ref{sec:censtrunc}. The $r \rightarrow s$ model is fitted to the right-censored time $t_{j+1}$ from the \emph{start of the process}, but is conditional on not experiencing the $r \rightarrow s$ transition until after the state $r$ entry time. In other words, the $r \rightarrow s$ transition model is \emph{left-truncated} at the state $r$ entry time. \end{itemize} In this form, the outcomes of two patients in the BOS data are <<>>= library(flexsurv) bosms3[18:22, ] @ Each row represents an observed (\code{status = 1}) or censored (\code{status = 0}) transition time for one of three time-to-event models indicated by the categorical variable \code{trans} (defined as a factor). Times are expressed in years, with the baseline time 0 representing six months after transplant. Values of \code{trans} of 1, 2, 3 correspond to no BOS$\rightarrow$BOS, no BOS$\rightarrow$death and BOS$\rightarrow$death respectively. The first row indicates that the patient (\code{id} 7) moved from state 1 (no BOS) to state 2 (BOS) at 0.17 years, but (second row) this is also interpreted as a censored time of moving from state 1 to state 3, potential death before BOS onset. This patient then died, given by the third row with \code{status} 1 for \code{trans} 3. Patient 8 died before BOS onset, therefore at 8.2 years their potential BOS onset is censored (fourth row), but their death before BOS is observed (fifth row). The \pkg{mstate} \proglang{R} package \citep{mstate:cmpb,mstate:jss} has a utility \code{msprep} to produce data of this form from ``wide-format'' datasets where rows represent individuals, and times of different events appear in different columns. \pkg{msm} has a similar utility \code{msm2Surv} for producing the required form given longitudinal data where rows represent state observations. \subsection{Multi-state model likelihood with cause-specific hazards} \label{sec:multistate:lik} After forming survival data as described above, a multi-state model can be fitted by maximising the standard survival model likelihood~(given at the start of the main \pkg{flexsurv} vignette), $l(\bm{\theta} | \mathbf{x}) = \prod_i l_i(\bm{\theta}|x_i)$, where $\mathbf{x}$ is the data, and $i$ now indexes multiple observations for multiple individuals. This can also be written as a product over the $K=\sum_r n_r$ transitions $k$, and the $m_k$ observations $j$ pertaining to the $k$th transition. The transition type will typically enter this model as a categorical covariate --- see the examples in the next section. \begin{equation} \label{eq:lik:multistate} l(\bm{\theta} | \mathbf{x}) = \prod_{k=1}^K \prod_{j=1}^{m_k} l_{jk}(\bm{\theta}|\mathbf{x}_{jk}) \end{equation} Therefore if the parameter vector $\bm{\theta}$ can be partitioned as $(\bm{\theta}_1|\ldots|\bm{\theta}_K)$, independent components for each transition $k$, the likelihood becomes the product of $K$ independent transition-specific likelihoods \citep{andersen:keiding}. The full multi-state model can then be fitted by maximising each of these independently, using $K$ separate calls to a survival modelling function such as \code{flexsurvreg}. This can give vast computational savings over maximising the joint likelihood for $\bm{\theta}$ with a single fit. For example, \citet{francesca:smmr} used \pkg{flexsurv} to fit a parametric multi-state model with 21 transitions and 84 parameters for over 30,000 observations, which was computationally impractical via the joint likelihood, whereas it only took about a minute to perform 21 transition-specific fits. On the other hand, if any parameters are constrained between transitions (e.g. if hazards are proportional between transitions, or the effects of covariates on different transitions are the same) then it is necessary to maximise the joint likelihood~(\ref{eq:lik:multistate}) with a single call. \subsection{Fitting parametric multi-state models with cause-specific hazards} \label{sec:multistate:fitting} \paragraph{Joint likelihood} Three multi-state models are fitted to the BOS data using \code{flexsurvreg}, firstly using a single likelihood maximisation for each model. The first two use the ``clock-reset'' time scale. \code{crexp} is a simple time-homogeneous Markov model where all transition intensities are constant through time, so that the clock-forward and clock-reset scales are identical. The time to the next event is exponentially-distributed, but with a different rate $q_{rs}$ for each transition type \code{trans}. \code{crwei} is a semi-Markov model where the times to BOS onset, death without BOS and the time from BOS onset to death all have Weibull distributions, with a different shape and scale for each transition type. \code{cfwei} is a clock-forward, inhomogeneous Markov version of the Weibull model: the 1$\rightarrow$2 and 1$\rightarrow$3 transition models are the same, but the third has a different interpretation, now the time \emph{from baseline} to death with BOS has a Weibull distribution. <<>>= crexp <- flexsurvreg(Surv(years, status) ~ trans, data = bosms3, dist = "exp") crwei <- flexsurvreg(Surv(years, status) ~ trans + shape(trans), data = bosms3, dist = "weibull") cfwei <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans + shape(trans), data = bosms3, dist = "weibull") @ \paragraph{Semi-parametric equivalents} The equivalent Cox models are also fitted using \code{coxph} from the \pkg{survival} package. These specify a different baseline hazard for each transition type through a function \code{strata} in the formula, so since there are no other covariates, they are essentially non-parametric. Note that the \code{strata} function is not currently understood by \code{flexsurvreg} --- the user must say explicitly what parameters, if any, vary with the transition type, as in \code{crwei}. <<>>= crcox <- coxph(Surv(years, status) ~ strata(trans), data = bosms3) cfcox <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data = bosms3) @ In all cases, if there were other covariates, they could simply be included in the model formula. Typically, covariate effects will vary with the transition type, so that an interaction term with \code{trans} would be included. Some post-processing might then be needed to combine the main covariate effects and interaction terms into an easily-interpretable quantity (such as the hazard ratio for the $r,s$ transition). Alternatively, \pkg{mstate} has a utility \code{expand.covs} to expand a single covariate in the data into a set of transition-specific covariates, to aid interpretation \citep[see][]{mstate:jss}. \paragraph{Transition-specific models} In this small example, the joint likelihood can be maximised easily with a single function call, but for larger models and datasets, this may be unfeasible. A more computationally-efficient approach is to fit a list of transition-specific models, as follows. <<>>= mod_nobos_bos <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1), data = bosms3, dist = "weibull") mod_nobos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2), data = bosms3, dist = "weibull") mod_bos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==3), data = bosms3, dist = "weibull") @ We then define a matrix \code{tmat} describes the transition structure of the multi-state model , as a matrix of integers whose $r,s$ entry is $i$ if the $i$th transition type is $r,s$, and has \code{NA}s on the diagonal and where the $r,s$ transition is disallowed. <<>>= tmat <- rbind(c(NA, 1, 2), c(NA, NA, 3), c(NA, NA, NA)) crfs <- fmsm(mod_nobos_bos, mod_nobos_death, mod_bos_death, trans = tmat) @ The three transition models are then grouped together, and the transition matrix is attached, using the \code{fmsm} function. This constructs an R object, \code{crfs}, that fully describes the multistate model. The \code{fmsm} object can be supplied to the output and prediction functions described in the subsequent sections, instead of a single \code{flexsurvreg} object. However, this approach is not possible if there are constraints in the parameters across transitions, such as common covariate effects. \begin{sloppypar} Any parametric distribution can be employed in a multi-state model, just as for standard survival models, with \code{flexsurvreg}. Spline models may also be fitted with \code{flexsurvspline}, and if hazards are assumed proportional, they are expected to give similar results to the Cox model. Since \pkg{flexsurv} version 2.0, different parametric families can be used for different transitions, though in earlier versions, the same family had to be used. \end{sloppypar} \subsection{Obtaining cumulative transition-specific hazards} Multi-state models can be characterised by their cumulative $r \rightarrow s$ transition-specific hazard functions $H_{rs}(t) = \int_0^t q_{rs}(u)du$. For \emph{semi-parametric} multi-state models fitted with \code{coxph}, the function \code{msfit} in \pkg{mstate} \citep{mstate:cmpb,mstate:jss} provides piecewise-constant estimates and covariances for $H_{rs}(t)$. For the Cox models for the BOS data, <<>>= require("mstate") mrcox <- msfit(crcox, trans = tmat) mfcox <- msfit(cfcox, trans = tmat) @ \pkg{flexsurv} provides an analogous function \code{msfit.flexsurvreg} to produce cumulative hazards from \emph{fully-parametric} multi-state models in the same format. This is a short wrapper around \code{summary.flexsurvreg(..., type = "cumhaz")}, previously mentioned in \S\ref{sec:plots}. The difference from \pkg{mstate}'s method is that hazard estimates can be produced for any grid of times \code{t}, at any level of detail and even beyond the range of the data, since the model is fully parametric. The argument \code{newdata} can be used in the same way to specify a desired covariate category, though in this example there are no covariates in addition to the transition type. The name of the (factor) covariate indicating the transition type can also be supplied through the \code{tvar} argument, in this case it is the default, \code{"trans"}. <<>>= tgrid <- seq(0, 14, by = 0.1) mrwei <- msfit.flexsurvreg(crwei, t = tgrid, trans = tmat) mrexp <- msfit.flexsurvreg(crexp, t = tgrid, trans = tmat) mfwei <- msfit.flexsurvreg(cfwei, t = tgrid, trans = tmat) @ These can be plotted (Figure \ref{fig:bos:cumhaz}) to show the fit of the parametric models compared to the non-parametric estimates. Both models appear to fit adequately, though give diverging extrapolations after around 6 years when the data become sparse. The Weibull clock-reset model has an improved AIC of \Sexpr{round(crwei$AIC)}, compared to \Sexpr{round(crexp$AIC)} for the exponential model. For the $2\rightarrow 3$ transition, the clock-forward and clock-reset models give slightly different hazard trajectories. <>= cols <- c("black", "#E495A5", "#86B875", "#7DB0DD") # colorspace::rainbow_hcl(3) plot(mrcox, xlab = "Years after baseline", lwd = 3, xlim = c(0, 14), cols = cols[1:3]) for (i in 1:3){ lines(tgrid, mrexp$Haz$Haz[mrexp$Haz$trans == i], col = cols[i], lty = 2, lwd = 2) lines(tgrid, mrwei$Haz$Haz[mrwei$Haz$trans == i], col = cols[i], lty = 3, lwd = 2) } lines(mfcox$Haz$time[mfcox$Haz$trans == 3], mfcox$Haz$Haz[mfcox$Haz$trans == 3], type = "s", col = cols[4], lty = 1, lwd = 2) lines(tgrid, mfwei$Haz$Haz[mfwei$Haz$trans == 3], col = cols[4], lty = 3, lwd = 2) legend("topleft", inset = c(0, 0.2), lwd = 2, col = cols[4], c("2 -> 3 (clock-forward)"), bty = "n") legend("topleft", inset = c(0, 0.3), c("Non-parametric", "Exponential", "Weibull"), lty = c(1, 2, 3), lwd = c(3, 2, 2), bty = "n") @ \begin{figure}[h] \includegraphics{flexsurv-cumhaz-1} \caption{Cumulative hazards for three transitions in the BOS multi-state model (clock-reset), under non-parametric, exponential and Weibull models. For the $2\rightarrow 3$ transition, an alternative clock-forward scale is shown for the non-parametric and Weibull models.} \label{fig:bos:cumhaz} \end{figure} \subsection{Prediction from parametric multi-state models with cause-specific hazards} The \emph{transition probabilities} of the multi-state model are the probabilities of occupying each state $s$ at time $t > t_0$, given that the individual is in state $r$ at time $t_0$. \[ P(t_0, t) = \Prob(X(t) = s | X(t_0) = r) \] \paragraph{Markov models} For a time-inhomogeneous Markov model, these are related to the transition intensities via the Kolmogorov forward equation \[ \frac{d P(t_0,t)}{dt} = P(t_0,t) Q(t) \] with initial condition $P(t_0,t_0) = I$ \citep{cox:miller}. This can be solved numerically, as in \citet{titman:nonhomog}. This is implemented in the function \code{pmatrix.fs}, using the \pkg{deSolve} package \citep{deSolve}. This returns the full transition probability matrix $P(t_0,t)$ from time $t_0=0$ to a time or set of times $t$ specified in the call. Under the Weibull model, the probability of remaining alive and free of BOS is estimated at 0.3 at 5 years and 0.09 at 10 years: <<>>= pmatrix.fs(cfwei, t = c(5, 10), trans = tmat) @ Confidence intervals can be obtained by simulation from the asymptotic distribution of the maximum likelihood estimates --- see \code{help(pmatrix.fs)} for full details. A similar function \code{totlos.fs} is provided to estimate the expected total amount of time spent in state $s$ up to time $t$ for a process that starts in state $r$, defined as $\int_{u=0}^tP(0,u)_{rs}du$. \paragraph{Semi-Markov models} For semi-Markov models, the Kolmogorov equation does not apply, since the transition intensity matrix $Q(t)$ is no longer a deterministic function of $t$, but depends on when the transitions occur between time $t_0$ and $t$. Predictions can then be made by simulation. The function \code{sim.fmsm} simulates trajectories from parametric semi-Markov models by repeatedly generating the time to the next transition until the individual reaches an absorbing state or a specified censoring time. This requires the presence of a function to generate random numbers from the underlying parametric distribution --- and is fast for built-in distributions which use vectorised functions such as \code{rweibull}. \code{pmatrix.simfs} calculates the transition probability matrix by using \code{sim.fmsm} to simulate state histories for a large number of individuals, by default 100000. Simulation-based confidence-intervals are also available in \code{pmatrix.simfs}, at an extra computational cost, and the expected total length of stay in each state is available from \code{totlos.simfs}. <>= pmatrix.simfs(crwei, trans = tmat, t = 5) pmatrix.simfs(crwei, trans = tmat, t = 10) @ \paragraph{Prediction via mstate} Alternatively, predictions can be made by supplying the cumulative transition-specific hazards, calculated with \code{msfit.flexsurvreg}, to functions in the \pkg{mstate} package. For Markov models, the solution to the Kolmogorov equation \citep[e.g.,][]{aalen:process} is given by a product integral, which can be approximated as \[ P(t_0, t) = \prod_{i=0}^{m-1} \left\{ I + Q(t_i)dt \right\} \] where a fine grid of times $t_0,t_1,\ldots,t_m=t$ is chosen to span the prediction interval, and $Q(t_i)dt$ is the increment in the cumulative hazard matrix between times $t_i$ and $t_{i+1}$. $Q$ may also depend on other covariates, as long as these are known in advance. In \pkg{mstate}, these can be calculated with the \code{probtrans} function, applied to the cumulative hazards returned by \code{msfit}. For Cox models, the time grid is naturally defined by the observed survival times, giving the Aalen-Johansen estimator \citep{andersen}. Here, the probability of remaining alive and free of BOS is estimated at 0.27 at 5 years and 0.17 at 10 years. <<>>= ptc <- probtrans(mfcox, predt = 0, direction = "forward")[[1]] round(ptc[c(165, 193),], 3) @ For parametric models, using a similar discrete-time approximation was suggested by \citet{cook:lawless}. This is achieved by passing the object returned by \code{msfit.flexsurvreg} to \code{probtrans} in \pkg{mstate}. It can be made arbitrarily accurate by choosing a finer resolution for the grid of times when calling \code{msfit.flexsurvreg}. <<>>= ptw <- probtrans(mfwei, predt = 0, direction = "forward")[[1]] round(ptw[ptw$time %in% c(5, 10),], 3) @ \code{pstate1}--\code{pstate3} are close to the first rows of the matrices returned by \code{pmatrix.fs}. The discrepancy from the Cox model is more marked at 10 years when the data are more sparse (Figure \ref{fig:bos:cumhaz}). A finer time grid would be required to achieve a similar level of accuracy to \code{pmatrix.fs} for the point estimates, at the cost of a slower run time than \code{pmatrix.fs}. However, an advantage of \code{probtrans} is that standard errors are available more cheaply. For semi-Markov models, \pkg{mstate} provides the function \code{mssample} to produce both simulated trajectories and transition probability matrices from semi-Markov models, given the estimated piecewise-constant cumulative hazards \citep{fiocco:mstatepred}, produced by \code{msfit} or \code{msfit.flexsurvreg}, though this is generally less efficient than \code{pmatrix.simfs}. In this example, 1000 samples from \code{mssample} give estimates of transition probabilities that are accurate to within around 0.02. However with \code{pmatrix.simfs}, greater precision is achieved by simulating 100 times as many trajectories in a shorter time. <>= mssample(mrcox$Haz, trans = tmat, clock = "reset", M = 1000, tvec = c(5, 10)) mssample(mrwei$Haz, trans = tmat, clock = "reset", M = 1000, tvec = c(5, 10)) @ \subsection{Next-state probabilities} \label{sec:nextstate} In a multi-state situation we are usually interested in the probability that a person in one state will move to a specific state next, rather than to the other competing states. In the BOS example we might want to estimate the probability that a patient will die before getting BOS, or get BOS before dying. In a mixture multi-state model (Section~\ref{sec:mixture}), these are explicit parameters of the model. In a multi-state model parameterised by cause-specific hazards, these probabilities are related to the hazards through the Kolmogorov forward equation. To obtain these, we consider the full multi-state model as a set of \emph{competing risks submodels}. There is one submodel for each state a person can transition from (the "transient" states of the model). In the BOS example, there is one submodel for the transitions from no BOS (with two competing risks: BOS and death), and a second submodel for the single transition from BOS to death. The probability that the the next state after $r$ is $s$ can then be obtained in practice as the transition probability $P(X(t)=s | X(t_0)=r)$, under the submodel for transient state $r$, for a very large time $t$. \code{pmatrix.fs} can be used for this. <<>>= tmat_nobos <- rbind("No BOS"=c(NA,1,2), "BOS"=c(NA,NA,NA),"Death"=c(NA,NA,NA)) crfs_nobos <- fmsm(mod_nobos_bos, mod_nobos_death, trans = tmat_nobos) pmatrix.fs(crfs_nobos, from=1, t=100000)["No BOS",c("BOS","Death")] @ In a time-homogeneous Markov model, i.e. where the times from state $r$ to state $s$ are all exponentially distributed with a constant rate $\lambda_{rs}$, the probability that the next state after $r$ is $s$ is simply $\lambda_{rs} / \sum_u \lambda_{ru}$, where the sum is taken over all possible next states after $r$. We can check the result from \code{pmatrix.fs} agrees with this: <<>>= modexp_nobos_bos <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==1), data = bosms3, dist = "exponential") modexp_nobos_death <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==2), data = bosms3, dist = "exponential") crfs_nobos <- fmsm(modexp_nobos_bos, modexp_nobos_death, trans=tmat_nobos) pmatrix.fs(crfs_nobos, from=1, t=100000)["No BOS",c("BOS","Death")] rate12 <- modexp_nobos_bos$res["rate","est"] rate13 <- modexp_nobos_death$res["rate","est"] rate12 / (rate12 + rate13) @ \subsection{Distribution of the time to the next state} \label{sec:nexttime} Under the cause-specific hazards model, the time until the next observed transition can be considered to equal the \emph{minimum} of a set of latent times --- one latent time for each potential transition whose cause-specific hazard defines the multi-state model. The distribution of this time is not generally known analytically, given a set of parametric distributions defining the cause-specific hazards. For example, if there were two competing latent event times $T_1$, $T_2$ with cause-specific hazards distributed as Gamma$(a_1,b_1)$ and Weibull$(a_2,b_2)$ respectively, then the equivalent mixture model would be specified by the conditional distributions of $T_1|T_1 T_2$, which wouldn't have a standard form. Instead this time can be computed using simulation, via \code{sim.fmsm}. The function \code{simfinal_fmsm} wraps \code{sim.fmsm} to summarise the distribution of the time to each absorbing state in a multi-state model, conditionally on that state occurring. If this is applied to a \emph{competing-risks submodel} for state $r$ of a multi-state model, this simply produces the time to the \emph{next} state in the full model, since the absorbing states of the submodel define the potential next states after state $r$. This is done here to calculate the mean, median and interquartile range for the time to BOS (given survival) and the time to death (given no BOS before death). The function also produces estimates of the probability of each of these states, though as we saw in Section~\ref{sec:nextstate}, this is available more efficiently via \code{pmatrix.fs}. Note the number of simulated individuals $M$ can be increased for more accuracy, and optionally the $B$ argument can be supplied to obtain simulation-based confidence intervals around the estimates. <<>>= crfs_nobos <- fmsm(mod_nobos_bos, mod_nobos_death, trans = tmat_nobos) simfinal_fmsm(crfs_nobos, probs = c(0.25, 0.5, 0.75), M=10000) @ \subsection{Obtaining probabilities of, and times to, a final absorbing state} \label{sec:ultimate} As the previous section mentioned, \code{simfinal_fmsm} can be applied to any multi-state model with an absorbing state, to estimate the distribution of the time from the start of the process to the absorbing state. If there are multiple absorbing states, it can also estimate the probability that the individual ends up in each one. For the BOS model, there is only one absorbing state, death, so the function returns a probability of 1 that the patient will eventually die, and summaries of the distribution of the time from transplant to death. <<>>= simfinal_fmsm(crfs, probs = c(0.25, 0.5, 0.75), M=10000) @ \code{simfinal_fmsm} requires a semi-Markov multi-state model, or a simple competing risks model, constructed through \code{fmsm}. Though for a simple competing risks model, \code{pmatrix.fs} can be used to get the probability of each competing state, as in~\ref{sec:nextstate}. \section{Multi-state modelling using mixtures} \label{sec:mixture} \subsection{Definitions} A ``mixture'' multi-state model, first described for competing risks models by \citet{larson1985mixture} is described in terms of: \begin{itemize} \item the probability $\pi_{rs}$ that the next state after state $r$ is state $s$ \item the distribution of the time $T_{rs}$ from state $r$ entry to state $s$ entry, given that the next state after $r$ is state $s$. \end{itemize} In other words, the transition intensity is defined by \[ q_{rs}(t) = \left\{ \begin{array}{ll} q^*_{rs}(t) & \mbox{if } I_{r} = s \\ 0 & \mbox{if } I_{r} \neq s\\ \end{array} \right. \] where $I_{r}$ is a latent categorical variable that determines which transition will happen next for an individual in state $r$, governed by probabilities $\pi_{r,s} = P(I_{r} = s)$, with $\sum_{s \in \mathcal{S}_r} \pi_{r,s} = 1$ over the potential next state $\mathcal{S}_r$ after state $r$. The transition intensity $q^*_{rs}(t) $ is defined by the hazard function of a parametric distribution that governs the time $S_{rs}$ from state $r$ entry until the transition to state $s$, \emph{given that this is the transition that occurs}. The mixture model describes a mechanism where the transition that happens is determined ``in advance" at time zero, whereas in the cause-specific hazards model, the risks of different events ``compete" with each other as time proceeds. However, in practice, both models can represent situations where individuals can experience any of the competing events. In the mixture model, we only specify a distribution for the time to the event \emph{that happens first} among the competing risks, and do not model events that don't occur. As discussed by \citet{cox1959analysis}, if the time-to-event distributions are specified correctly in both frameworks, then they can both represent the same process. In practice however, they will differ. As discussed in Section~\ref{sec:nexttime}, given a particular parametric form for a set of cause-specific hazards, the form of the distribution for the \emph{minimum} of the potential event times, the one that actually happens, won't be available. The main advantage of the mixture model is that it is parameterised in terms of quantities that have an easy, direct interpretation. In the mixture model, we specify a parametric distribution with density $f_{r,s}(|\theta_{r,s})$ (and CDF $F_{r,s}()$) for the time of transition to state $s$ for a person in state $r$, conditionally on this transition being the one that occurs. We have data consisting of state transitions, indexed by $j$, experienced by individuals $i$. This can either be \begin{itemize} \item \emph{an exact transition time:} $\{y_{i,j}, r_{i,j}, s_{i,j}, \delta_{i,j}=1\}$, where a transition to state $s_{i,j}$ is known to occur at a time $y_{i,j}$ after entry to state $r_{i,j}$. \item \emph{right censoring} $\{y_{i,j},r_{i,j},\delta_{i,j}=2\}$, where an individual's follow-up ends while they are in state $r_{i,j}$, at time $y_{i,j}$ after entering this state, thus the next state and the time of transition to it are unknown. \end{itemize} Therefore, for an exact time of transition to a known state $s_{i,j}$, i.e. $\delta_{i,j}=1$, the likelihood contribution is simply \[ l_{i,j} = \pi_{r_{i,j}s_{i,j}} f_{r_{i,j},s_{i,j}}(y_{i,j} | \theta_{r_{i,j},s_{i,j}}) \] For observations $j$ of right-censoring at $y_{i,j}$, the state that the person will move to, and the time of that transition, is unknown. Thus it is unknown which of the distributions $f_{r,s}$ the transition time will obey, and the likelihood contribution is of the form of a mixture model, that sums over the set $\mathcal{S}_r$ of potential next states after $r$: \[ l_{i,j} = \sum_{s \in \mathcal{S}_r} \pi_{r_{i,j}s} (1 - F_{r_{i,j},s}(y_{i,j} | \theta_{r_{i,j},s})) \] \subsection{Data for mixture competing risks models} The required data format for the mixture model is shown for the BOS data in the object \code{bosmx3}. This has \begin{itemize} \item one row for each observed event time \item one row for each ``end of follow-up" time where we know an individual was still at risk of making a transition, but we don't know which transition will occur. \end{itemize} Recall that in the data \code{bosms3} used to implement the cause-specific hazards model, a individual ``censored" at time $t$ contributed a row in the data \emph{for each} of the events that might have occurred after $t$. The difference from \code{bosmx3} is that for these individuals, \code{bosmx3} only has \emph{one} row per ``censored" individual. For example, patient 5 is censored at 11 years, when they were still at risk of either BOS or death. Also we do not include censoring times for events competing with events that were observed, e.g. when patient 4 below got BOS (state 2) at year 2, thus were ``censored" at the same time for the transition from state 1 (no BOS) to state 3 (death). The process of transforming the cause-specific dataset to the mixture dataset is shown below. Multiple censoring records, for different destination states, are condensed to a single censoring record. Each row of \code{bosmx3} then corresponds to a transition. A new column called \code{event} is created, which should be a factor that identifies the terminal event of the transition, which takes the value \code{NA} in cases of censoring where the transition that will happen is unknown. Columns not needed for the mixture model are removed. Informative labels for the factor levels of \code{event} are added to identify the states. <<>>= bosms3[bosms3$id %in% c(4,5),] bosmx3 <- bosms3 bosmx3$Tstart <- bosmx3$Tstop <- bosmx3$trans <- NULL bosmx3 <- bosmx3[!(bosmx3$status==0 & duplicated(paste(bosmx3$id, bosmx3$from))),] bosmx3$event <- ifelse(bosmx3$status==0, NA, bosmx3$to) bosmx3$event <- factor(bosmx3$event, labels=c("BOS","Death")) bosmx3$to <- NULL bosmx3[bosmx3$id %in% c(4,5),] @ \subsection{Fitting mixture competing risks models} The \code{flexsurvmix} function fits a mixture model to competing risks data. To fit a full multi-state mixture model, we fit one mixture competing risks model for each transient state in the multi-state structure. The models are then grouped together (Section~\ref{sec:fmixmsm}) to form the full multi-state model. The mixture model for the event following transplant (BOS or death before BOS, the 1-2 and 1-3 transitions in the multi-state structure) is fitted as follows. A Weibull distribution is fitted for the time to BOS given BOS onset, and an exponential distribution is fitted for the time to death given death before BOS onset. These distributions are specified in the \code{dists} argument. The same distributions as in \code{flexsurvreg} are supported (including custom distributions, in the same way). <<>>= bosfs <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) bosfs @ The printed results object shows the two event probabilities $\pi_{rs}$ in the first two rows, and the parameters of the time-to-event distributions in the remaining rows. The maximum likelihood estimates are in column \code{est}, and estimates on a (multinomial) logit or log transformed scale are in column \code{est.t}, with standard errors on the transformed scale in \code{se}. Covariates can be included on the event probabilities through multinomial logistic regression. For illustration, we just simulate some fake covariate data in the variable \code{x}. The log odds ratio for this covariate on the odds of death (with the first category, BOS here, always taken as the baseline) is shown in the row with \code{terms} labelled \code{prob2(x)}. <<>>= set.seed(1) bosmx3$x <- rnorm(nrow(bosmx3),0,1) bosfsp <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential"), pformula = ~ x) bosfsp @ Covariates may also be included on any parameter of any time-to-event distribution, as in \code{flexsurvreg}. If the covariate is named on the right hand side of the \code{Surv} formula in the first argument, then it is included on the location parameter of all distributions. <<>>= bosfst <- flexsurvmix(Surv(years, status) ~ x, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) @ The first argument may be a list of formulae, to indicate that different covariates are included on the location parameter for different events. <<>>= flexsurvmix(list(Surv(years, status) ~ x, Surv(years, status) ~ 1), event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential")) @ An argument \code{anc} is used to supply covariates on ancillary parameters (e.g. shape parameters). This must be a list of length matching the number of competing events, each component being a named list in the format used for the \code{anc} argument in \code{flexsurvreg}. If there are no covariates for a particular component, just specify a null formula on the location parameter (as below, \code{rate=~1}). <<>>= flexsurvmix(Surv(years, status) ~ 1, event=event, data=bosmx3[bosmx3$from==1,], dists = c(BOS="weibull", Death="exponential"), anc = list(BOS=list(shape=~x), Death=list(rate=~1))) @ \subsection{Predictions from mixture competing risks models} A few functions have been supplied to extract estimates and confidence intervals for interpretable quantities, for given covariate values. Here we extract estimates of various quantities for covariate values of \code{x=0} and \code{x=1}. These values are provided in a data frame \code{nd} that will be supplied as the \code{newdata} argument to various extractor functions. The first extractor function \code{probs_flexsurvmix} gives the fitted event probabilities, by event and covariate value. This is applied here to the fitted model \code{bosfsp} that included a covariate on the event probabilities. All these functions take an argument \code{B} which specifies the number of samples to use for calculating bootstrap-like confidence limits --- increase this for more accurate limits. <<>>= nd <- data.frame(x=c(0,1)) probs_flexsurvmix(bosfsp, newdata=nd, B=50) @ \code{mean_flexsurvmix} extracts the mean time to each event conditionally on that event occurring, from the mean of the fitted time-to-event distribution. \code{quantile_flexsurvmix} extracts the quantiles of these distributions, e.g. the interquartile range in this example summarises the variability between individuals for this time. <<>>= mean_flexsurvmix(bosfst, newdata=nd) quantile_flexsurvmix(bosfst, B=50, newdata=nd, probs=c(0.25, 0.5, 0.75)) @ \code{p_flexsurvmix} extracts the probability of being in each of the states at a time $t$ in the future, shown for $t=5,10$ here. The \code{startname} argument supplies an informative name to the ``starting" state that the model \code{bosfst} describes transitions from. <<>>= p_flexsurvmix(bosfst, t=c(5, 10), B=10, startname="No BOS") @ \subsection{Forming a mixture multi-state model} \label{sec:fmixmsm} We supplement the mixture model for the event following state 1 (no BOS) with a second model \code{bosfst_bos} for the events following BOS (the other transient state in the multi-state model). Although this is fitted with \code{flexsurvmix}, there is only one potential next state after BOS, which is death, so internally this just fits a standard survival model using \code{flexsurvreg}. The two mixture models are then coupled together using the \code{fmixmsm} function, which returns an object containing the entire multi-state model, here named \code{bosfmix}. This object contains attributes listing the potential pathways that an individual can take through the states. These pathways are identified automatically by naming the arguments to \code{fmixmsm} with the label of the state that each model describes transitions from --- here the first model \code{bosfst} describes transitions from ``No BOS" and the second describes transitions from BOS. (Note we redefine the \code{event} factor so that empty levels are dropped) <<>>= bdat <- bosmx3[bosmx3$from==2,] bdat$event <- factor(bdat$event) bosfst_bos <- flexsurvmix(Surv(years, status) ~ x, event=event, data=bdat, dists = c(Death="exponential")) bosfmix <- fmixmsm("No BOS"=bosfst, "BOS"=bosfst_bos) @ Now we can predict outcomes from the full multi-state model. All these functions work by simulating a large population of individuals from the model, by default \code{M=10000}, so increase this for more accuracy. A cut-off time \code{t=1000} is also applied to the simulated data that assumes people have all reached the absorbing state by this time -- increase this if necessary. These functions currently require models to have at least one absorbing state, and no ``cycles" in their transition structure. The function \code{ppath_fmixmsm} returns the probability of following each of the potential pathways through the model. For this example, they are the same for both covariate values \code{x=0} and \code{x=1}. Setting \code{final=TRUE} aggregates the pathway probabilities by the final (absorbing) state, returning the probability of ending in each of the potential final states, which is trivially 1 in this case for the single absorbing state of death. <<>>= ppath_fmixmsm(bosfmix, B=20) ppath_fmixmsm(bosfmix, B=20, final=TRUE) @ To estimate the mean time to the final state for individuals following each pathway, use \code{meanfinal_fmixmsm}, and for the quantiles of the distribution of this time over individuals (by default the median and a 95\% interval), use \code{qfinal_fmixmsm}. Supplying \code{final=TRUE} in these functions summarises the mean time to the final state, averaged over all potential pathways (according to the probability of following those pathways). Again, covariate values can be supplied in the \code{newdata} argument if needed. <<>>= meanfinal_fmixmsm(bosfmix, B=10) qfinal_fmixmsm(bosfmix, B=10) meanfinal_fmixmsm(bosfmix, B=10, final=TRUE) @ \subsection{Goodness of fit checking} The fit of mixture competing risks models can be checked by comparing predictions of the state occupancy probabilities (as returned by \code{p_flexsurvmix}) with nonparametric estimates of these quantities \citep{aalen:johansen}. This is only supported for models with no covariates or only factor covariates (where subgroup-specific predictions are compared with stratified nonparametric estimates). The function \code{ajfit_flexsurvmix} derives these estimates from both the mixture model and the Aalen-Johansen method, and collects them in a tidy data frame ready for plotting, e.g. with the \pkg{ggplot2} package. The mixture models fit nicely here. A \code{start} argument is supplied to give an informative label to the starting state in the plots. Note we are plotting not probability of \emph{being in} a state at time $t$, but the probability of \emph{having made} the respective transition --- here we are checking the competing risks submodels one at time. <>= aj <- ajfit_flexsurvmix(bosfs, start="No BOS") bosfs_bos <- flexsurvmix(Surv(years, status) ~ 1, event=event, data=bdat, dists = c(Death="exponential")) aj2 <- ajfit_flexsurvmix(bosfs_bos, start="BOS") library(ggplot2) ggplot(aj, aes(x=time, y=val, lty=model, col=state)) + geom_line() + xlab("Years after transplant") + ylab("Probability of having moved to state") ggplot(aj2, aes(x=time, y=val, lty=model, col=state)) + xlab("Years after transplant") + ylab("Probability of having moved to state") + geom_line() @ Checking against Aalen-Johansen estimates is also supported for cause-specific hazards models that are grouped together using \code{fmsm}. Thus we can compare cause-specific hazards and mixture models that have been fitted to the same data. We do this here for the \code{fmsm} object \code{crfs_nobos} created in Section~\ref{sec:nextstate}. <>= library(dplyr) aj3 <- ajfit_fmsm(crfs_nobos) %>% filter(model=="Parametric") %>% mutate(model = "Cause specific hazards") %>% mutate(state = factor(state, labels=c("No BOS","BOS","Death"))) %>% full_join(aj) ggplot(aj3, aes(x=time, y=val, lty=model, col=state)) + xlab("Years after transplant") + ylab("Probability of having moved to state") + geom_line() @ \section{Comparison of frameworks for parametric multi-state modelling} As the mixture model is described by the probabilities of observable events and the times to those events, it is somewhat easier to interpret then the cause-specific hazards model. While those quantities can be computed under the cause-specific hazards model, they require potentially-expensive simulation. An advantage of the cause-specific hazards model is that it tends to be faster to \emph{fit}, if the transition-specific models are fitted independently. Another competing-risks modelling framework not implemented here is typically referred to as \emph{subdistribution} hazard modelling --- essentially covariate effects are applied to the probabilities of occupying different states at time $t$, rather than to the cause-specific hazards. This leads to covariate effects that are easier to interpret compared to, e.g. cause-specific hazard ratios. The method has been implemented semiparametrically~\citep{fine1999proportional} and parametrically~\citep{lambert2017flexible}. A further framework referred to as ``vertical" modelling \citep{nicolaie2010vertical} involves factorising the joint distribution of events and event times as $P(time)P(event|time)$, whereas the mixture modelling framework uses $P(event)P(time|event)$. \bibliography{flexsurv} \end{document} flexsurv/inst/doc/flexsurv.pdf0000644000176200001440000222270214660035012016227 0ustar liggesusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 5371 /Filter /FlateDecode /N 93 /First 759 >> stream xœí\Ys7¶~¿¿ocWÊÆŽv¥ReËVìx‰cˉ“?´©–Ô E*\;¿~¾s’ÍM¦HÍøÞªë²Ðh4úà; –¦¥0B#¬0±N8k…¡4"ˆèµˆB•ÊŠJ(åòB…«ÊÒ½ÊkÔ1B…Š …ª¬¨¢ñ ­AE¡­Æ5 í"Ê+¡ƒUB—BǨQY˜R[TFEaŒÁË€e®NG/ya<èé¸%Ê£0•CýJزÂÃRXíñP ‹Âha=Þ#ø3VØñ--êyá4è˜ Q€è@|ØR¸€{@u• .|Yáj„×HHX¦B£Nx‡ÊxÅ{ºÂGnLø üØJf5hâJ€}€Ð"8âwˆxnE,AÌ9U…« C Dt¢‹PJèJĈė¢*Á HTªB£ZT@‰ÊCú( ¤Ãº3%PNé ? †“±ø'쿯aÿ”:N=§ÓÈiÅ)à‹J.é}•¨DA%*ÑP‰ˆJTt¢ò^È£á`Ò ¢JoÉÍi[?~*ªä*Whˆ5ZU€Q¼ñªá2g®ÿº§£^3&Å¥¢“ÏW Õ;oÄwß%F¥Ä^;iŠÑðóx2Ü¿ªG—õè®o„ü~x2Dm!G§Í(·^2D¾Q鿉O©ÑÞ¥¶4EE¦«|¡ag`4ët(`jTÿÍôÄá»>ÞåxROšû¿Ç· T«K(Ó‘(‰Ñ¨¢ÂñÕpÅPÐØ6å˪ ׿?¬³~ó‰y(Þ j*_(8p]–’±(Õ×B…¡¶pºƒJÃò1€jÔ´§÷{ÃOø|lFãzÒ‡X¿÷…Å0BP+ #ª²°% ¢W]ý¯€ˆŽHÐfÉ­«X×ý~w4ÄXrP_€ÑÛ’ÆmøŒR*’‚ »…7{ùŽ[ƒE: z24­la(BÙZš¼lFºTæ6ün4…¦¸Èit LuQ!öDÜë^êíŒðo%…}U¡"Ç“E¤€xKDf{à#Pͧɨ¾ºGÜÖƒúùiŒSd{£<{ê& 7þø«Ã˽voÖkÀ÷úî@Z£¹@òƒ<¤!Ú½lí0˜>Uì AÈ‚ìæöBI S˜Ù‚f‚˜½ž¦o€Œ)áWŦÄ„ÙÖBpž’ÝÛ#"”æï~ý&f¢e°<˜öû ‘ë=¬ÇÍ1&,BÿöÃÑ÷Ï¿9zñ"yÜŽÆ“£‹zD3!I55ãÞ¨½š G4'dÊÏëYJ PGá2|;h{ÃÓ†œtw“Úû¥=\Œi¢IÖà<ýáÁ//Oçõ µ'¬Á ×ÃQÛáØÍpŽOŽß=y 8oÞ,ãÁÌ{ O\щãµxôvgO,×äóí£1ùxªíàœÖW˜ìm¹.<·†µ¼kµ]xj3ÔŸ~{qôä% ¾¨'O'u¿ímÆ«Wñnè QßP¸×uÎr3à_^=úádøÍçËÃþ8n\î àÕÞâ¿w{çõÕf¸/ß½{rôzf ®Y‚]w{qÕíá­k‘nïÖ>v‘ §x†>ù¬=Ï·K½Pç5 =[hÒùÞÌWœòú‘Ž¡Û ­ÿó ª²Ele…ÁB[]F|”õumiʬð0ò§×\1Z_ÈËU†gÇ–®ð¸rxïˆc›r*ÁÛC}nšûµýÓCÌ z+á|&v6¯¿”&vÚ-TZÁŠ0Ýœ£BPU!þ8UÝ›LOÛñdpÈ4؆²¥Žf•j1ËtºT{ų·‚K¡—9+¦%†fé¶ï%í;í3y›\]êCVi•)x‡F¥%*š¢Ð.‘-|ØkåP@´L¬Y ‚ût$²C 7ƒQs~ˆ²%¦nÓ[c#æžQªý£n•±U¡J»@ȇÛ=QA´ŠÝ´§f7Ë‹'¶ˆ´X­m¡]%È T´HŒ^höÅcÀcàb忀 ú¿¡ÕõƒÙY§Ò5<'â_ëÈHbðûâqàÑŽ#,æ%>H!ðgÒbu¼©£œò‡¨ÌÁ¨mÔÞÆ2äi眶 «›(3DáÑJo§ûÂqDWnÛøX¨]—,9Üå ­ÊæIÔ1T®óüèØ–´‘ŸóZ˜Ù\œá¼o–ç¼§9_ÑæyÊ#˜syqmÎGCî)_‘¢gy>hó†ä<­û—#| {o’‡|õè<6Ÿ&‹u“ù>³V9*ç‹I›Ô®IÔLjͤ†LâÍ&v]zÁ&*6Q±yó:?KÄl"f1›ˆÙDÌebj6#˜ïAëÙ\~ÿMh·ãô­ y5z0…¨ïfÃbÞ÷àéÉ»ã_iÑæ×•E$½> ÙævžèW¶+—åé]'¢ÏŽ:úíñò¼yóL—‰óÚ²Wyí²ŽžGØØoüâÝÑÑÛÇE”‡Ãþéµóæj}½çÆË=¹nºe¹ðÕ“>û~u eíNë'vm¼lØvËÒÔÓW?þöêñØ‹;Á575Ûíki~i±ñQ{vÖÀ' î*/ÛÁ™iÒ^õ? ‰F›Q;þãŒ+”磦FQóç´î““’W£öí´ƒ³vÐN>óêN¿žLÚ^3^ÁfqÿaT÷š~s6ÉÙQ{~1Iæü½ŸKfÂïëËËZ ÕW-yXyEN-Qæl¢Lk;W}ðBÿnFC!‡Пü…ÜäbÔ4´ø"ÏÚ -²7ì¼Ú“øò°ñÇlé=:G‡bÚ6ó´ÕöèPH¢äœcPMzù”lÿï]y":uÿꢆ$š ÒsæLrrA$ó~}ùá´&µÐÀ&Çí9ªî+HrxJøé%Â?î×㋹–h}OÓšnrÂästzê±ò'ødöã'&.ë̯àyH‰õœ‚‰±¨P“0Â>1UÛ|¡=•S‡6Ì-¤]šQúTÞÍ;æ$ NÄPªPÉ0ÒžF$>¡3_”kÔ´Ì³ÃØ‹r8ßéѶækˆ@É‚ˆQárHô±,©Ä& ¨N9Å0O: ¡6ÍÍ<»Í0³ØjWØÁzvãÉÙvk<´³ëô%;}^2 <(—‚Äs7¢2rþ Û¼¦‘Ç'§©ù]Ø3=UŒŒÜ5½o<õ ÏÖ¸â8ÑÇè:žf—¿î»›œª3Ô›}@k]è›ÔÓpLä1Óóˆ$‡Èòµ$9ÒCL:äÒ+}bIƒWH<ÑA~N‚ãz<ˆºHr§Ð)fÉV¬ ’ˆãÝóS¿Ô›SºŠeã4å4œÒ²!SdÏdYÏ6RK[¬Göc•Êõè¸Jä?Òȃ$À¥a_ãyhWTîÉ=Òà Ö%× Ê±•(¶Œ’Ã8—ìMC:†¸ËN¸b®Ù£±¼»nz-ŸäBÞå4ÑJiÒ§)ùé­}›œx¹ÜÝW¥æ!I‘wGݔڠs3T¹ËBn¶£Ž…1ågxûši×X…càŽxHtÉ)$¶<Çl±ä± I1¨—ÕÕá“”R©¹ R¿›©Ð’À3}—ĉørÞ¼› ã -X^ë­L,k£“ïhK—tª4²*ÜríTÃÐqx¤dYY!§Ù’ôl¤SÏÿÿ÷ßýcO¢€³N*+xœÉMZwŒ>ù G§áŸæ#!h¦•ò–Æš fßÉ1ÓM£åz4¥çÝ·“ë:¦ä¸«ä«“7)¾#käRÍx4Ó·)öJ«Å›‹Ú)5Ì™a?—:*ÛèÜïÍÂÛÍ~Ï_ë÷ì>~oáíþoù=€ßók~Ïïî÷ ló{~¦N¾£=.]ÒéF¿×­}ß›=íú½”.lbiªFlt{Z—9^ÅX36Ç«Iè]S™ÏìW5·„c»¹ñÓ4qÌÇÞ#ù™$çè92äœv0»÷i÷iÜ£ +p+äQ}õ¤áµ]úŽVÒB8íÝÝ‘äCy$ÉÇòX~/ŸÈ§òùBþ(_É×ò<‘oåÏòY˲—–yå©l$“’g¼,Ïúòl8Ésy!/>_]4ÙÊ?d_^Ê´ƒFiùX^åõV9’c9n>¢Þ¸ý$'iE™—åT~”ÉOò³ü›×ï IKùÄÆ=E|÷ëó±ÈGx¦íº{^‹{š‡R¬ì÷éùqÛ§õüÙ^)J^Ö´Ö¾|’;í/<œ£2í LšËŸÓ:õb ³Ÿ ßeAÒ‡Ö³}¾-’6_’ô3ùÒ~ÉòþiIâ¿.Éœ¨!ùÓ¶5ãvõ‡ÕÞ<ïijnË5õÔ¼µÞcûÍx|h·M™Eçív×ý:)ºÞÒIñÐÐ:m ùµ›Uµ¯|¶q{}”G½mƒ`œOäß;z¼{Î (ÚLPʘ¦ì*S[ lxȸowà9ÎfœÌ·Nû¥¼]Ê™lñŒlŽöN;–779Þ?…Ñ]NawW {b‹¡ÝÔ¹µ|ÚU’f>nÛ¸Á»U9~á3->Âïã#®è ˆr&Æ^–Éê’¥3ʘÊO;ºF›Å T¹A ~m»ötÄ)ÐöÁRXê43J"à ÷ÝXV.³¬i4Xc9¬²|Ýé•- +P¹yGŠÕ2ÇU—c>=AG'²ofž›üö9:ÊõÞ¸?w¼é§›:†"ú­«Èåè°"°¸*°íwÝ¢K½NVYB,Ê2÷7àݱ»Õà½bÞWC‡µð~ë×L›ã"sÖ¯‹>ԣʼnΥ³?é°Ðü¤ÐmQj-àýÒqº[Œª®I÷Ôü¨Sç˜S–Ÿ…Úqì@¨ý$W¤•ô•Y­…È_ø"o›$nbÏÛË–¼Þy4ìÝ{3©Gˆöï<9'Yt* Îj%â N]u—OF­”ê»ü©ìJ©¡Ò°Zj©4®–:*­ò)ØŒ;T—¿ËTqöëMùç›r¹ÉßšüÕÞûm /¾¸Zm!His„dóoó Á­'õ‡>³9'MÐïG-}.š;û¦ðÇ«fð€ç'ôSh¹l:é#hÓ©–TB‡u_Щ?ùvÜÌç/W><ªa#Ãù9´ÓÉ áÛ³æì¬,á¡KË2h\+\q,òxÊôÌ»ôÿK[ãóVOï}Hõ©®oð¼—뜖¥Ó‰6ßgÚLsF_åk·Í*Ñ ù=ç]®c¿'ä‡ ™GðFô}]j[FåÐjg¿)Õ?Êòws=ðxçy}Ò¼µ“ ÙH35gxü¬ùü×pÍfpû™Çàs{>óÙ[ðåOS=*›áÕ§xr‹ú,›\Æï™ëéÝŒd+ø’8^<~WOûýõ`Ð@,'íXàÿ‹öäsïêôŒÄd e‹Rüëý&L¡í¿îÞåÃò§Ó½”*‹Tù^®s—O¤þNG¼ï Òbö8«÷ &›O\³©³y¨¬î2ן±î³ÉèÄ>‹¡S6Gå:*‹É¥÷g&ígæô%5gÓ]3ÿUÙCƑ†NFõÕUƒ¨î¸îùý¿ÖHf|endstream endobj 95 0 obj << /Filter /FlateDecode /Length 3823 >> stream xÚµZYÛF~Ÿ_¡G1ì&›G€}pŒxƒdxíÉŽDi´‘DE‡Çίß:»›5‘Xc‘쫺ºŽ¯ª:›,'ÙäïwÙÙï·w_¿©ò‰©Rk\1yXLê&mœ™TÖ¤¦h&óɇä×̸{“tŸà¿üöðßGøûæ~Zyòê~šçyòv ŸÚ#ü·è±Ç†?/àÞáÙ&oïm•´ØØn:øÿˆ+ø›qß÷8;üÑ+ZÅ•I»æÑ?õ÷S?Ç‘kùÃNÛåýo?LLS¤M]O¦@{c*¦ÚyòwØ‹÷ œ³¸ßi‘§•Í'Ó¼IóL½~V¸Ýc¿ƒÿŸ:úF„|Ÿò︑îéwdM¿årX!K›¬1´BîÒ,²Lž:eéOÐÿ|Í´}‹tö´qp%¬¦ç½P¿_¶ÒxüŠIxM¼Ä™•—sø[vÒþËHÓÝwwÜ8ôlb&µ™”6K±“ÙæîÃoÙdߘdiÞÔ“gêµ™ö_OÞßýóªà€°”¶Ä]ÚÚ¦yYM\S§¦)y—¯€’ǃžs;;-ç“g\“¿Mjmõ¢Ð)ƒÃÊyð! ç ¼*2398†ˆNÇlµ÷»‘ùà芪Ñ»èˆQ—O®R]de²8Eùy ÿíbG¹ÇÞ‘bÜÜ™ÓÌý‚û¼"`¯Ø4WEkAËÒ%¯¶÷¶N>óD2­?%½˜ÖÈ]@{Þ×iy™%*y¤mŠoý´# `öŽÖ8rϹÊèQ5ú¤‹#·ÜsÓ"ó€´Ü5É#l½L:n.dþusþŒƒÜýÈzGÏ'‚nÏ/Ä›Ý.â^wàÑ-ÿ섬þ±}”kRáNBvd{P…âdX6d¯(A–þIœERkKB€”lgºñõU¯ÉAþæŒc0lòŠϳø q >CnìÀ¼çøJRp¬aÉE2¢Ý?z[ŒZªò.» (Àsý¤ªÀ="„çj¶g çߌ ( K“‰6Áv*“Mò०lI/gÐtªÎMgÁ–¼À•å¿´bc´R©T•ÍRö¸(2å{i[ŽÀW¥…u:ÓWHJMƒ^Q‚Ã%.)|Èsà+5Ä«Èù¢­°µKŸi§àë'þÊjt¶³ ĺ(”œ/Ùõº‰Y²ï7¼Ò@ÏK QÙûif«³´Î<[Æã eZ—õKÉùKVkn œÎò5Ó[°q[@ ¡EGRÝï"HG (;-³rèÓ9HËY»©*Kl;€wÐYý=>v¬Î3ì @¨Ú˜€K90E™–ÎKø a¼-RŽ«ûáŠä?*yÜÂyß+ŸãíÃ9áÅ(….ê‰q–VmÎFc³•è4Î$øk@¼ëÒŽøEF€µªsú;á8}{bªíhà³Lp‚îàm”X^Þ]]ºÍȼà‰t޲wè¹ò*Ûy¾;'Ε'X0®"lRWWÜ<¶”_ßáyx 7ìn/@¼ðM…ð² ²­;˜s ÃÇ~¾NÕãÒ ˜4Úx{4>_’ǬjîÃIHˆ6²Lì!£@¶tÝQ«’§vŒ¢*9oýn5ÜéÄdÛ ô¤(G ë,ž g*ÁÒS¤´‘— ¥†pÍtÔ•jÐØHx‚tÞ©7¼‚¨Û¹b”TU%•µˆé6è2{V@ðÄïM;;ÅÜ4àU|.`#ù”nìàrЉ¯[pv}ΦUf¾¨Íƒ~ýû¾Î½?ëæòfàs°‚žðN⥬f‘Jop 熲L‹ÆOÎÂ\we&ÈfýÑ3­h1)©T«Ò(ýƒ®×‰—”§~\Ø¥ZÕVYŠáØÅ®Š¼Èn=´klZês{ ^ÜgîìòLÉ„æÉr¥^uÐΡ q4ÇÂuòŒƒûýïÚ0ç®Ä„v£ÙÒèºÒ°òÍã«täÌ-à* ÙèösO6ìpk¥Å¼jGóQX°?Dv8SÌxòY¯š7¶TM"ÛÑq „«ldÝ¡ù=I»V÷§é,C}Š_ …ŠÜh6Ôp2”éÊMuSœƒ’YŽJ,-Åa'`{Mn9F1Ìø}ºï©,ʰ#îe jô dÐ3`hœ_Öp| ôsä¬q.Úoéx¶¢ž0ÉQÒÂ4œI;È/vœŽyº™Îi®ÎÄèDFé(\ZOOÝÚb[†OÔ ´oùãýxpÅÔÊvKL év‹=µÛe¤`ðUóå0ÁñI–9Gç«Æ1ŽœepFß©ËXŒH¹`‚ñ}¯V]ˆ[q挨a³v+ÌÈëä_÷U™(H9ø¼BS&6…—ŒŸ}´áb”ß@ð“z÷³Ôò@C f%x÷¹?0\h+Œ{æ×½â>§ø$)ªt>_ŒÏ̓·lEQ©ý‚Ÿƒ,1'³`Lqy¤ÂMš…Ld{@ :ïÊ3÷†E­Ï^‚èmäÐÙ«O½©Kw”ÉvêëFè¤>쾟FÎÄ€ÏÃRÓÿp(Uáã¿'Êa¹rL*M±óù3ßsνV[ž¢å׃lh‡»cÓ€‚º¨ÛöÈêj’ß<­qñÇZØ%€”©uhæLô²«çžV˜ÆjGEßpIg<;×ۛðØhX$3ä8CÍðç£Ï‹{Ušr[ê[+M¾$Y¤yQR‰ÎZ›‚ßžØÊ¥ÌH¼0)×ê Ç™Z–ðà…qÆXΆϘV•Tè4Õƒ(ü5ÁøOøRœ' ñ“Àõ«‰3lšsÁ†'T d¢ñýÍ–Sñz¨I†ÇM'aáxžÚ1º$©¥ VR~|œ&cSIˆJ¶¥Iðµãè0ï46u9#íBpán-*iÙ p/BÐVqݧ`«x¹Î¹5ÂûȪ7åll©W•x÷üÈE!Ÿy`«1„ÄÖ:P3(h¯¢ð—†ßZç €V(¦4Áò Ïâ8Æ®À’¢ñ˜·ÍT‚˜/(åI¾'|& Ê8u¯–ÚÞ±a¸VÔ£éøüÔr¤*u%ì¢}xkç,Í!»·ìB€õ…'oËo±¤Á6}*Š ø¨muë¤RVê"Ö†žƒ>ÚËe¿`­Ï•î¼–(¿M-ÿì4:[3ì´ '‹-”’PWÝ\ÄÁvÔ$®ca….}ÙuÝË€|×qÖজ 0Ms='1[üÿ›{€ºCɡ҈T$Äê'ö˜üÀ空³‘\SgͲa—ž„GDê¶¾ª,’L܆g:4‡Î ^@8寉(G¼…v¯¶'µm§½†lApGÄP’7¸ÓYJ–·D0¯È#wÛ1LPÛ´ 9#‰õ©v½¾9Ц³UÚ„él–Õ×KDy^¡M¤Ã kÚ’­†¶,/µÄó™ß.ýqü‘…DJ’¼OGªÝæá¤Þy†z)C)«ß†Ò±¯ñK™q,°£,†§ ŽòA:‡^œ8SÝSõ_ìX#×*¸$v !K$[øÕ&LF¸²]ÂøÕbˆÕn£ànͺ…CŸq*MjáêQ¦ý‚ väZB¨ÀñaÒ+ý .÷û1Y–|…Ÿ …ÍǶ٠´ z­»îIœË&–?“çijTß Äô)Sg\@ú¬>_¿Ø*»© ¹»‡±iª4~8`«:ù›LVÇÁEVu=©S‹2ºêS”0Kƒ9="«¦˜ “h¤WõšBÈ”W“)àX#~”~‰À›æY©ÕŒÑM䦹…^§cÓ@XQ xñW³Ìcà·IKSGUA” Ÿµš³4(µl/ø‹J¯eÉÙÛ~ã¢C( ¡ÉÉ_^ñYnën±£ÿheØý-¾pjáô³f¨«Ñ×KçÆEÉk¢”&<Ÿ{ðEd ‰ngòÇÄ£lÒ:ÇUÙ¨ÿ_²1<ø:u¡“¢è&¾¢ÕŒ|Oö£ ŒiµÖ…¼ô×Êã¼±© —øF%5Þ”™·µ°Â•+wœÆ/³4S‰Ðö%ޱg0ÞJÓóýJ-ùuÜ.áá;gx´‚ï—QôN2麎ˆ5½ [Õâ„.r%ø° 0!®¾Ç±¹ßÂ* ½A;%ÐÛ.}A ·äµ3^œÛ_X¤ˆ±K 6µˆª/ÂWN D{Ù,‹7+8ß⦋£±"™43&¾IÀ”®Œ¤¨¹3wÉÒ"3çš{• ÃùA¡ó/™þµGÕàø°¾Ô±‡¿-PÈšëœæÊ")®„œ’¸ª`Ôv&?ŠÕ?K›RÁÉäNÔ£¿í£±ÕgnûÁ MjgƒÅµKù¥ñàïÃÆÕ}½ð—þéã{¶ЉîÙ²~£µwµô5¯øºn£ðuÆÛõ±tçpçåÂMõRD‰Íc·÷|D)Dù‹^k™;Äñýj>¸ qñú»‡»ÿœ RJendstream endobj 96 0 obj << /Type /ObjStm /Length 3541 /Filter /FlateDecode /N 93 /First 827 >> stream xœÍ[[sÛF²~?¿bíJi0÷‹k7U¶ÇÎÚ[^ÉÉÉ9[~€HXBBZ´ãýõûõ`@ReS¤6q©€Ãžž¯/ÓÝ3FÏ‹éÈbdA0)ð¯î’IgpWL ‡»fÊÜ S!ân™Ö ÁwÚkÜ=3Ò☱÷È XJ)˜5à)%³|¥bN¯Ô,à_Jâê+55`0é©§'$ÔŒa•'´êÔ †ÚX¡Õ`¨ÙX+´:€”4ˆw`F,¢"¢xêî™R‰k`jà™²€.µ`ÊQ/ȦñÐP@ Ô¢™–† jèÀx¢AÐÚpÄ: cA³FK0¡ >F2£I•FAU4¨ÑÌ8êe 3X iRǬ´@h<³Ivô´†,(Ö¡‡´Pq {Yè8Zð±P2Y‚z:Eæ°†9“¾²ÌyôÖ1ÉøÚ 2¾öÉÖ62¯©— ´ä ’y1–SÌÒ´É' ŠÔë, †Üê 6P‹gÁ“)!”ý8øq•n—üvI ø::oŠ`€{Œ¤1O~%ƒ'ƒ’'j2-ù˜¥q=y¥#¸4”ðL™<9±e ¿4dò>žÈÍ´§'rAîlò6P“tÊOӈʑBr ˜Y†äÖþÏ_þŠïØ?™Â :cÅ/ÿ÷ÿphøLàPÍb9›±wìÛoWd°Ä&ÖŠ;øümB%·8 Ã|b¥ºI ðkí „›lR:鹋j%lƒÒJî ë/SÂ9¹Ý ÎsC 9Ùv‡Ž,n7;•d•ÞHs!wêÝè- îvâܦ„Ósw‰ná†7Ew\íÒ&M»MBümSjää¶’ž7‹ž¥#ĵÔã9BŒÊ¶xŽ(£Õø¬˜ã3"”ŸáÌqììbŠÁÃOA>?GèÊψ~|MŸSÐN¾ý–oÚfr^õ§xóÝsV¼­~ï×àŸ•]•(Î_þ|þÓoN_?ûåíKؼx^·]zU¶˜[ƒ”ßUݤ­¯û¦M“4 ÷ª‰ ìâ|yѺ®0 ®·æ§E=i¦b`ÖÀÛôý0æÿÖÓþªKs€»…é矞½xùö›W¯ÏËE'ÅÉYu¹œa¬âû˜Ö‹K6ºñ,tw¬ÛKDŸÃª?ƒUmb½"&…F%¸W»æÓiÿeêÍy:R„)³ËµoÌÀ‘ZDîÝîùïÅ{õ¸­ÞWʧlèóhR÷ïúËjÑV—aVüмm’?kÚiÕ‚¯HïXqš>Èáà V¼dÅY5!7—Î+—bJJrK%€Š< ¾x·aùWõâ·ÑÊO‹¦ß ªm>u}³x2+çUÛ?¹hšßŽèxDöEîâ©V#™ÐôHË} µY~PPц°úײìëfÁ-7{’ã‡-P†{ÊöÆó€T¥•â©jpH(TöµÖT)5†âÍнpÁߎí{_ ãnÏà{Ó†‹²»:Æf"p•² ÔBÞ›)•ÊcØò§:¶\¹d& :Фm>öWUû1¢jËÙ1à”åʧ5 §rÔèÈ9´ýŸÎÇ¡Ñ9Ä®xº!dŒáµ­º3òˆÞ…Éè»<-ñ9"³y¹Åjñ+@ˆ¬ø¯WaÐGAìÊeÕ^´U­„ð]5Ã@Ça4&p,RSE¯h5ƒÓêÊ9ƒ³¡F6M[ \`Ùë ”iÊU—å|ÖuÇÌ]Ô(:Ж…æ´6NC‰À¤‘‹,Gc2É-¬!„“x?Dû¤¦»Vw¦¦{¥#BÓÑÌÉýeNk2—~2GšØjjsª|]MëòYó{Ö—`ÜGfO~S¶èuZwVuͲT]Ú¡Ù¨·ß”—Õn3]7³OWå¿ËvzL\ðÈC–$ˆX©Þs”Ì Ë½±‡xσÀR˜QÚË5.¯9-6ŽÀ5­æu[wJHÙ-Ûõ‡£’’Tˆ°¶•‹uÇ¢"1 fþUàƒâœ+| Ū¡ý¸ƒñ]5ËËVEJ²ïÛ²žõŸŽ10pD‘v«xTƒÕš¨¼úz“f ` <í´p¬‰`b3_ÎúzV}¨Ž1r¨)Ó&2& íœÂÆnÐ)íC~ %Ò‘z1xävýUa4Àf¨žD³.;$Ê¡äWQb™`°~k`©±¾Iü×À]_.NæåbYΞΣV[‚{;ÔCsÄH,J)Û*IŠýsÁx”f Î øppËËîØM©W+T+§ûSQI¤×€ˆ‚reXqÅ´Å+ì¹gy{İfvEc˜ÊÛ¶ø€úd¬çnì ß{3ø°0oKËŒš^³ w“ï6ß]¾çш|ÏýMîŸwñeÞû¤WiÃ=÷7¹à´c{.9¡µS‚@ŒFmCgØà'lÚëÀd~@£ë½îƒ‹2ƒå ZïÛ)ë‘ÔîÿžéáæþÓ=[>[~œþqÇ4÷›ætÜôÖ4ÿÂ{¦?ɬc¥¥‡ct( tQF§H¿—UO›% ÍŠ¿ÕÓnxË5ê0+D…[ÒwÔûŸ˜BX§ 2 y.¥(¨Ò)Æäo½\§ò?0ã‰ÆQRÇÚRr:Ql3…׎ˑ×ðl,úXk9ª/:艫ç6󯬯ÈW)ùpfƒ›OiôŒ!q²’z˜Äcó™V¾.õZU£“ø ->®{®©‡«N’é !•v„ét5h†ž¼ÐœÎ6cÀtì™t¥“”:½^¤w]£I2é¤G:£­hÄá:P Á¢—vÁt‚ÅUÅ„+$­*’Ð^@ˆµãs¢pO؇ëÀõÆ·Ò¬í>×,y–ß­ÆÚ¤Z‚KW¹–Þƒo“Ÿ)ÒoÀ¬Ö¸ãeò ’íð;²¿žô3Ðæ€©#žB2[÷÷p•‡•´°ËÒ•¼6÷Z§Ãóm©²$ÉfùºÑB‡ì7[oôLíƒõ²¿ÓÏ6u8ô2ù§#Dð¡Ïðw$µu©Å%ºHÏï†ðÕMhŠÓ¯ŠÓòúEU_^õ´ó„È‹eQïgÅU1/Ú¢+–Ňâ÷…IA©“ºŸHêÿ|V^vÌ ‰âÙiOTÄ?ý@¡ó6m¾Ð÷ÏëY…eÜÐFËßËyµã4ñ˾œÕ“§‹KПHp?ï«ùÏé'*Yw#‰¿d)0£WQz·˜éãJÌgÅÅYq^üE¿Ÿ|("ùè·(ÞÆ-ùä¶|ÛõÈMñÔ(rÐK÷ý~ò%؉¦á~ȳm1µ-Ñg­7E£`È.û öªž×)á?zñ¾izd­Š»ÇìÑyÞãÔütÙõÍœ)”Më®oë‹%}Ýqù˜ÀÌÛLd>'³Ñê§ß ¥ÖqÁ_7=X§Œ^.¦lZuõå‚XçõÊTò†|ìºl1&€LÖÈæ¨g©[¸ÙMñçußÓ™tZNËvzwÿ$R.hî£úa×ÔoiväbøÓö¢îÛ²ýt2­çÕ‚NÑmŒúè|½ß­ú´ùP¶uÙCµI3“z«±WmG›â›êßw$šÚ7´ü5½"¡Õz_mæ_˜¬ÓPÕWC¨Ιt´ë¦‚?Nkú0*xFvx_•ý²­’Rˆ%¶¬gýI½ÂHw±¯¦¤Pwšh“ŸæofÍà/Ͳ¿^ö©w¢¹‰Pð·ír1Y{n]ŸL«ëj1¥ 0YÁâzËP_~Ax[V3zbR üq>Ç£"ÍŽÚ™ƒépÎ;‘Ù[d²œ ‡<“ ¨KÁ—u×°Vö‡¡kØÑUò—óëY5'·€ ‹ê#Ëçlo;_b×LŽQ¨Î[Éžÿ3£ŒŸendstream endobj 190 0 obj << /Filter /FlateDecode /Length 739 >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©[Á'Ûs³švÂÁ}o†½å|7ÍlÝÔ˜[òËô§¦kŸ˜xäœÛBÑÖYw€‡S0½è`ÓQÙ®iëþ"†m!-’ÕM5\Fî»:ØÃÀâõçi0‡U»ë‚4eÓ7;yúO§ð!˜¾ôµé›öƒÝß(³3ëóñ¸7PÁx°\²ÚìlCëýys0lúÁ+åýóh˜tcAªª®6§ã¦2ý¦ý0AÊù’¥e¹ L[ÿ7—Њín¤&–Êçø U´ RZ,c¸Å¶€ÉPSan aiqD‹ƒ4'Ê,Ò“I†F\ ‡Bµ¸îbu ’ù¨¨ú³é/Úy¸À2ŽÆRòXR xHXÏÀíÀc®Ïeg·:¥®'™ˆc|0ÎüxqîÇÆÅ?ü‘SÞÖÀ΃qìI&À’¸Ð'œ®gÀ΃ÌÇy9´ º…C ÕðœÖ:ŽóÆsÇ¡;(àE8o"‚A¾JÇ'O™ãÄ‘ÀäÃí+Ý6ôKIט'„á;¤ž œz†à„tFz¢Kp&q"p¢‚üBCT’/ôŒ9ñ¡!É©~Bü}ÒéîRqÒ‰óTÂçFIŸúܨ™ÏŠ|nTìs£Ÿ¥|neEAºxwüÜçI·yRåmž4¿Í“_ó¤å×<éÐçIÏ|žtäó¤cŸ'ø<é¹Ï“^øO™ôyÊf×;s¿|÷KÇÛ„wôúêUç¾·¢{lÝC‡'®iÍõ=>vG¬r÷½”Á_$Ô¨endstream endobj 191 0 obj << /Filter /FlateDecode /Length 739 >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©½à“í¹ÙM;áà¾7ÃÞr¾›f¶ÆnjÌ-ùeúSÓµOLg~¼À8÷ã ãâþÈ)okà çA„8 ö$`I\èÎ×3`çAfŽã<ÈZ]ƒÂ!‹„ê xNkÇyã¹ãÐð"œ7Á¿ _¥ã“§Ìq âH`òáö•‚nú¥¤kÌÂðRONH=CpB:# =Ñ%8“ˆ88QA~¡!*ÉzÆœøÐäT?!~Ž> étw©8éÄy*ás£¤Ï }nÔÌçFE>7*ö¹Q‰ÏR>7в¢ G]¼;~îó¤ŠÛ<©ò6OšßæI‹¯yÒòkžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçIg>O:÷yÒ…Ï“.}ž2îó” Ÿ§Lú> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qض*Õj¯˜n$HPý÷ëñ#xÙö?ŸgìÁÜýxÝLTÕîÌ$|äìÍôí¹+Í$ý¹=wwY[ž¦ž©L5ÎöOìµkËØ}ºÎÖM=ÙëÃP7ò{=,éÛyf‹ì¶ÈÜ¢_¦ëë¶ybâ‘sn yS¥í6ú`z‘¦£¸}ÝTÝEÛA] $«êr¸ŒÜwy´çÅ›Ï~0Çu³oƒå’Mßìd?tŸNãC0}é*ÓÕÍ»¿•f§6çÓé` ƒñ`µb•ÙÛŽÖÿóöhØô[WÎûçÉ0鯂t•meúÓ¶4ݶù0Á’ó[Å*0Mõß\B+vû‘šX*Ÿã+TÑ*XÊÐb£À-¶L†š s[ ‹#*X,caq¢\Áâ`™`2Iш ôPè¡×]¬®QA2•¶ÝE;XÆÑXJKªC kàá8¢8pLØõ¹ììÖB§Òõ$qŒÆ©/0Îü8Å8ÿ‡?rŠÛxÂy!ÎBÀƒ=ÉXú„óÀõ Øy©ã82ƒVA× pÈ"¡ºžÓZÇqÞxæ8t9¼çMDð/ÈWáøä)uœœ8˜|¸}¥ Û†~)é3à„0|‡ÔSRÏœÎHCOt‰Î$"NN”“_hˆ ò…ž1'>4$ÕÁOˆŸ¡OB:Ý]*N:qžJøÜ(és£BŸ5ó¹Q‘ÏŠ}nTâs£”Ï¢¬(èQù<©ü6Oª¸Í“æ·yÒâkž´üš'ú<é™Ï“Ž|žtìó¤Ÿ'=÷yÒ Ÿ'­|ž´öyÒ©Ï“Î|žtîó¤ Ÿ§”û<¥Âç)•>Oéìzgî—ï~éx›ð’^Ÿ½òÜuöEtÏ­{èðÄÕ¹¾È§ö„Uîãžòñ¿£—"ø ›tª”endstream endobj 193 0 obj << /Filter /FlateDecode /Length 672 >> stream xÚmTÁn£0½óÞC¥öÆ6’*ŠdrضjªÕ^pºH‰A@ýûõŒCf»êô¿™yã'æîÇën¦êö`gñ#govh/}egæç¾‹îîò¶ºœ­Ÿ­­m=Oìµo«Ù½Ùæ[׌ž¼uÕéRÛ‰õ=IÛÆú°ûwû{VÇQðÙáÒœÆÆÍ8ß›ñäIßž3d_ƒ “~Ù~hZ÷ÄÄ#çÜ W›ö c Ñü*…Í'qÇÆÕýU;€ºHHV7ÕxýÂwuö÷É»Ïa´ç­;¶ÑzÍæoþpûOÔøÍ_úÚöû`÷_¥ù£Ý¥ëNd0m6¬¶G_ÑÏÿ¼?[6ÿvÆçý³³Lâ·ºª¶¶C·¯l¿w6Zs¾aë²ÜDÖÕÿ%!ãpœ¨™§ò%¼b•l¢µËÜc€Ã¤ ¥¤ÀÈ ¤ÀPÀP«[ ßuªŸñ©_õgß_•ñxû4Ž$Oˇú<X^\NB8 ë\;c®‚šBbMx¹ ùy˜%ÆPÈ 3jok:E q:¹Œ/d4ˆ8ð€Q§4ÈA2="\¤ÂšYˆ+ÀË‹ÔÏsä(Äè5$ YŒ—Èú rŠÀ‘€ƒ~ì+A¿\HÈ•ÐWr߯{ÇNøxoËøŠ‡û• ¿”$¿TL~©ù¥òK¥ä—ÊÈ/¥È/¥ƒ†p˜1ðsòQä£*ÉGÍÉG-ÈG-ÉG“zA>ê„|Ô)ù¨3òQ/ÉG½"µ"µ&µ!uN>ê‚|Ô%ùh8ùhùh$ùhbòÅ,n~á†üá°nË£ºô½ß+¸´p]À¢hœ½íµ®í \ˆÓ†¯—2ú ¯M„Çendstream endobj 194 0 obj << /Type /ObjStm /Length 4452 /Filter /FlateDecode /N 93 /First 857 >> stream xœí\Ys¹~ϯ˜Ç¤RžÁ}¸R©²-ËÇÊ^G–×I¶ü0¢Æk)RKR^{}¾n`È’¢%R»öCÊ% ƒãCw£´Œ¶…Œ®Aáé ­ž¡0Þã §U¡„(|ðxÊ"j'êŠ@t!×0…Ô>ÙBZãAŸ^DdÐQp™@-”J‡þ$^´´ÈÈB‡æ}yƒÊ/Ñ£XšUPõ´ŠTÇÚh !×ú íõ Na#€E)YiÑJ©Âh‚ ta ¨La¬ ´4^Q‰+LèYù Ký„ÂÒ€JÅÂj‡Œ…µ–2²°žúÁüm° ¤q‚çd '•X" ¦¸Î}´/œ3Ô*.ª "G`T ¹ÂgÌŸŒ*¼¡Y]xké“' •Ø"š2hˆÊø"h$ }c¨r,‚%Š¡¯à1 ²²!æf @š(ú±†x‹V˜ à`î˜dtš>ù"ú@ÍC#QP¤Ä#ñš„ÂIä,Ø®‰‡¡XŠœ¡DÒ° t‘ÒF€9%dŽržåˆÚBüT$qqC39½ Ñ\n1´ƒ*1ÀtúŠ1Œ&RzŒrScX:ŠÚ²xŒa] ^0†˜–‚Ig8‡1œÃ- /8‡1¼&9ñ¤wÔ ˆ&}$,—Q#¬ƒöùÇ?Šêq=k'ãyQ={óîÇLJ?zõªž_<ýjcK!I™´¤¶ª4ŽVµõ]]Ÿ¶ téö€%½-5©ˆ—€U‘Q–š`êXú]88›_]>œL‡ç{pL#EYJØhâ’ ³•e„•ùF¨$H$^Â"8Þ쫾n¦§Ófç%ž^G¤U÷€¨ J¢q ÌØw¾K f 1º’,ý§“/³ùj£ž^ÖÓ}äN”B$yƒ…q„е†¡êo MB¡‘ËÑbƒZJ¸g»a{þq2™ãC³—i‚K •¶„sàµÚ‡\'Ï˳z^ïA'x×%¹tÑÀj’[LÉÃÔ}+LÖ”AÛ&¨\òÙ]ÎHâŒäwI-lûF¾:<°ö-…é¼Þ¶yÎ1çáïêÖ‹-Ú<¬æ¢NŠqò œvCñWÛ+p—œª¢zoàmC„¬Þ‚:Íç9ˆÖ2‹¨4#©/ŠÓ3¡§x0=e~ªüÔùiòÓæ§ËOŸŸ!?s2õG,Sš1Fw¹mõª9Ö'Ÿ³``Y”äÔ8kðyÑäM=E‹Bgb7³ÉõÎG•óM}Þ¬;¹ÏŽ_¼:È®ù‹y=Ü·Ü­{å¸î–ÛU/X|Å/w[¼`±Ù/ÿêøÙÑSøåÇ¡ ²²î•»<”­püÍp\Ü çðýã“Ã×Ç}Î*y¾'l6ÃyóúèÉÁ+‚{ìRàøµ˜EmÇ·àñ›ñ<9:zùèxNNz€´Ù >úŽAT^8›¹. Ž¶³iä+:ì&½ÕQU]-Do[~/Zh© Úe¼&_×ÿ=zûœÃÝ““~À«7¼qWn;¯Ô^ÙÛðJÂs¢í«Ûsî&›ÑãÐŽ\Ñ{sEÝB?žüøþ=qåä/á¥~Ù¤~Õ*OÀø­<Ù² áL—'}fÜŒfðA§Í¨ž?5g×ÓOÃOõh/7Ë ¾Ö´YêÀ;W%B!²¥Š»xYFJ SØbÔB•Ú«ï d,…æçR@+kH¢æ½åX,´ï¥6ºä­ô Òù’övÂØÛº0ûl] üð°X¶<µ.] ­^_Æ`îìVßY]Ýdhàuk¹É?¾Q§ííûªÜ¯Ê U¶n*¡rÿ=ŸUîﳪž‹ÑÕ‰ vÏëÓÑ~a¦Ž>pÇb©xxAFˆ2À™·Qrl·ÓvP=øòð¼Ÿ×——û„v:¸’tœ+G¨E‹`ICõІþ·„f”( :ehÆ”${@»"1š‡£ÉùÞ„óèl‡·AᎬ^ R4íX…´ó}Â3šì›\³´û®¾xÚ™’brkËhiEØÒÑ^²£²ÓЏWâI:šKxÚò"Ù Þr¯Jíc,´/éèKe'@b9>Úµ`ìNËa0˜|¦…úq¯=ee ÈZIg¢Ò„ÒÁªxxf'ó/°¬¬°„åé8%ìk!`{B£è¢/\†d„+£$¨Pwq§ó°û‚FrGd bO‡çwBÖqHd:8o÷ùvÛõë»5Ò >ƒ¿‡Á;;<7…Ü»9)Ü"ø||gHÍhÔLþVïw¬ëBZµ@f`žöß2Ïš2Ähš¶wB–%}?¯= iÏ'øÒÐárT¥p;yy—õø¬=œ /Ã}Xè±ô¡¡óf…‘ÀÉg€wجøC€±Ó‹ÝƒÓâéZäNÀ–¾ú^ꓼN`ÑÞAKE:ÑS± C,¿»#u»#„;:=÷¾YÝñm²Y3ùàÒd_Çd_ÇäI“ëÙ\Ïæz6׳Ù'²­¹Ì>QžCߊûû@öÆs‹ýO¯ofâèdæÓì¡Z ûʉM„ú¹pˆmÐ9«EX»F¬PWÒå_Q:¸6ºT|ÑÞ…C†JlŒ¥%.Rž"¢¶~T¢"z°P†ÆiG£°Ö•š«Pâ å¼ 4Õ4ˆ`$ ¢$ ¾Í=ho:O£KA¡ëæ‡ ° 9%ÄñÒnŸ>ò|¸¼›·Fc>3¡”fëiSLñÔ*Í©‚™0ÀÈý)ŒÍ¦¯nã!b£>#(áÅJôàá¹É¶­$ÊRÿâà™‘òH%çÑ–©èFDtD×HœÑ‘.ÕuÓ>ÝŒ"úZcÐÂBB»vt—›x@\A(CJE¼§K_ž·ûPõ É€ø" ¢ ¬¡[ K“%$$czCÃe¶wøÓ?o—唇7‡þ$ΞÊ4å¤)ç‰>×#åžxKå’Zr>pyªC½¦öÜ?·”íh)Ý6 …XÎM¯`§kÉÚÁ‚†>pdÇZÇSÄ—êé!L«c(’Æ;=%NrûN®§ÕdÜT³æS3®fÃÏÕübÚ4Õü·Éß ÑšÔÓI]ŽêóY‘ï ?N»$ˆ> xJʘ–ø‡ôýp8jÀšö%¯ëËfåªv:.{4>G]ºeèHðËê–â× )~—åøôö"Éz IÞ®úwEÅ’!ÛGÁÚ…:1Ô‰_S°OßþðîUú5ĪhI³­pßJö¸cψŒ=úmP§w±éäo‹MÊ4¬‰bÿ· 7Í~f«6} | ™[Î?©´Ù¢, °QtVtSO^n§‚\Ò@t-€®ÁõÉWÉÔÿÅÙ½™a#º$]uâå^€Ü±{qt?pîEß½x¹Ä÷cø• y-ªîGâ]:ÓIÆ ªÞà/ÒiC?RÏk—¤^œ`/HýõÿØe#ùïCù÷è°º¼Õškþ?†VWœ^ ¶ÿ:ö†¨ý}Ïî__ ÆJb£~Ëàhá¼z»a®kÃö»„7ÌUÝEÕ¦[wpÚkwíË| m3lþaª ‹ßE¯Ü®ûsÖmendstream endobj 288 0 obj << /Filter /FlateDecode /Length 750 >> stream xÚmUMoâ0½çWx•ÚÅ$*B²ó!qض*Õj¯˜n$H¢$úï×3Cð²íh<~3~Ï~î~¼ngºj÷v¦9{³C{îK;Kîºàî.kËóÉ6ã³µ•­¦Ýችöm¹µ#»O7Ù¦©ÇÞ4åñ\Ù õ=ÈØºñ8‡Ý¿Ûß³ò4Ö‚Ïöçú8ÖÍŒø½ôí>sIv›dXôËöCÝ6OL xû9Œö´im$lþæ6‡±ÿDŽÁü¥¯l_7ìþ–šÛÚž»îhãÁzÍ*{pþçÝɲù·¯˜÷ÏÎ2‰kA¼Ê¶²C·+m¿k>lp¾fIQ¬ÛTÿíÅT±?LÐØAù>J‡ë ‘¡‹e .1›ÊPbéªpqH I$\kL¸8HbØŒShÄ…r =ôêzŠã51Xò‰Qùg×_¸sµ‚2¥äÄ’òÀ€+Š Ä ŠsˆC:CQŒ}.'c-ð”BbOEðƒuê×+Xg~Â:ÿ?aŠÛàj îB€.U ±$,ð¨›ĨA¦ˆA 2®‚žAÃ%‹˜òâ%Õ"µñ 1ô9h¨M„ _®ñ¤)ELN 1éÀs¥ ×þRÒ3fg =傸aîCÑYj¥ VÑÝà^¬w&L˜Ó=·° ½Ð3â„nqFyÀDŽϠOLüñ5'žpÏZx?iéý¤•÷“^x?éÐûIGÞO:ö~ÒÚûI“‡4ðÑíˆÏ¼Ït~ë3]ÜúÌð[ŸñÕgF~õ™QÞgfá}fBï3yŸ™ØûÌ,½ÏÌÊûÌhï3c¼ÏLê}f2ï3“{Ÿ™Âû,åÞg©ð>K¥÷Yº¸¾Nœ0³`Â^Çayî{7)q ã„ÑW7ö:©»¶ƒ*üሟþS`õRé̯endstream endobj 289 0 obj << /Filter /FlateDecode /Length 962 >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—ÃbtüÖ ?ìÏ/‘ôé}‹êcQQÓ?a9íçé›2_µÖ±ÐMc3`㔬EŠZ_Å=í§q=êêcÕ¸ÎrE¿Ã!ææû×Ó99©*µþožÎË+iü’¬,cXöÓ³ºý(-Þº¿/2”N¶[5†§81úÿ¾;µþÔãçáõ”¥kú†y §ãnËnzI¥õVU}¿MÂ4þqϤÜòøtå‘«~RŸm“ʦÛq,àfZsÁÅBÚGœq!â¤ÊMÄ…§BÄIUàfÑ`6˜QbFY‚a Ìh ±É¨%âX€Ž–—8©Z°ÛŽ 'U‡–Ž[:´thé¹¥CK–ž["†ý«O£õÕøðßn‘ŒtZB†~kul¹‘:e\owÀÇ:gLsJÆÔ‹8¬±4“³Êsüáºy¿†3ݾ_7¸î~ã_9ýÇx†<˜‘xˆ†Œe.ôò ë 0y°¯!¶…VÃzì¥)¸î÷§ä ou/†¼™ þ ûê‰ÏžâṯÀìƒÖµ†*è·–Ÿ–¸` ß)Ïôà¤<3'åŒjèÉäIC&s2p²ŽýBCÖ³/ÌÌ5ó¡¡h¹~Áüs ÖI{é8g ýÎ0FžÎ2Æ|—2F¯Û0Ƴâ(gc§ËÓÌ‚1qï#´9~IÈ££œÍÞç¼AήaŒ}t-cš/9cß]Ï:KÖŸaÝ’õgà—¬Ÿž“’õgÐS²þœzYï%ë/ˆÏúsâ³ÎšKÖYà)YgJ½¬3¥^Öià«”œáÅKÎðè%g|’¼äLÉkyÉÏ€—œ±®—œ‘§—œ‰#9û—œ¡ßKÎÐé%gx÷’3ró’3Í—œ¡ßKÎÐYKÎX·–œÁ¯%gðkÉzjÉ™z%gx¯%gâKÎÄç÷±',S/Ÿ9úªÅÓêÃG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–â_gî!£}Ï/\÷»XN8Jßνá²,ñH¤ó–N:œqû)¼ÉÇùˆ.ú£³üúÏ®~ôÉÿÚ~:endstream endobj 290 0 obj << /Filter /FlateDecode /Length 600 >> stream xÚuTËnâ@¼û+fHä@˜Æ!BHØÆ‡M¢€V{5ö@,á‡lsàïwª m˜ššêîê6Íè×Çn²Î냘g)>mW_ÚÌN¢ßiãFq]J[õoÖæ6n»WñÑÖÙÎöbmãmUôON¼­²ó%·ƒêÿ¢ÐžŠê[‚:b¼·'ç²,”t_“2í¿Š~"!ßýÙÉ~PG‹GZPàÛvE]½ õ,¥tĦʣºD37½ÓÁⱨòöæJàÑSZäEÖßNôÌJ7ï®]oËmu¬½åRL?Ýe×·WòùäMßÛܶEuãGsîrwiš³…!½ÕJäöèrº9¼¥¥Ó:½«öׯ MgÅÞ²:·]“f¶M«“õ–R®Ä2IVž­ò‡;e8äp´ÓÊ<ÌÚ_9"Þ*G(dS>sQÆ  ÖDDr¨˜ "qX+&Gh„ë±aá:$‚r”5PHi@ÌîS9ƒ1jUô|s(V8Œö‡>Ílè;ûJÛÛˆ¤YÀœD˜Ö½IÍü °aÏo€yk˜rA„)Ï‚1ÅR;JS΄øÓU¤—!ar ¬¹.ñšëÆèQsÝy4×Mˆçº‘“9µÒŒiè~½á©hø7!cŒÝD<`Â1ó ð†yÒSMùg’g…º>Õ2½û cðsÒ(> ZÊÀC@µ´· f fP·7Fo?],Û}/²KÛº•¡¤=À•½/mS7ˆ¢mûð'ƒÓ{âý¨ØL:endstream endobj 291 0 obj << /Filter /FlateDecode /Length 789 >> stream xÚmUMoâ0½çWx•Úʼn*„‘8l[•jµWš˜6$( þýúÍ„®Tq zyyžyž›»_¯ÛIVµ~b¥xó}{îJ?YýÞ¢»»¼-ÏGß ÏÞW¾º~íŸÄk×–[?ˆûÕ&ß4õðÄ›¦<œ+UÝ-ýgÝü— ¸÷'‡cIÃsrÜ _ýe"¡~¯‡CP݈ÀЬ e|××mó$Ô£”2ë¦ZµG줦£1½úÛ×MÕ–Ä FJ‹ª.‡ñžå1”‹·—~ðÇM³o£ù\LßÂÇ~è.äò!š¾t•ïêæSÜÿð¾mϧÓÁÇÑb!*¿!C žwG/¦··ù-z¿œ¼Ðô®ØYÙV¾?íJßíšOÍ¥\ˆyQ,"ßT?¾iÉK>öWm´rZÏ’E4W:`eˆH-ˆDB„AXD– 2K^¢A žÊyIb ¢ ÂД‘µš”À2á@P<2¦r( bŽ‘ÁG¬N[Ê€£yE …°Š—À˜Åæ,å6>,,Ø„‰êag Ü„ƒ'ç¸@ÈâðÑ!­–Z"ƒÉŒv›¹œª~-¯Õ×r—_»nìŒÖ ^¤"çK•špN˜k¯ÇÄ„¹+l]Z^ ?’½)ÔH’ ™çÀ¨†NÖè¡,Ø.5‡=ÄÐ(®E•6+àkP-¹)تVŒGkÆX«ÙCLL¹g¤Ÿ1&}Ƙô9¯…7½f<ææ)x3”W¬5ì3ŒQÀ”WS· ×J.iš’%ÍJ˜âP­Œ!=ïQ›á=JÒóeØ»áA–8 †çOÏžüÇ\MÂzqJø iì%áùOáÙr¿|ZÇÞ,çuˆoÇ8ˆi9/HËysÂkÒ'¤çZÅØ‹ç Õ*38™n¬æÇq­4<¸˜ç³äx®èº”ë@ú%Ïzäȵ¤É£/n͘ÎEÁXŽ'€&7nÌïÛ­> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—Ãââ ÷a~‰œÏn«XSjŠZþ Ëi?Oß”ùªµŽ…n›ù§d-:Ôúªìi?‹ˆQ–«Æýp–+ú1 4ß¿žÎáp7=ÍIU©õ¯xót^^Iá—dýcòŸžÕíeñÎýåx| P¡t²Ýª1<ÅÑû÷Ý!¨õgß(¯Ç ,]V5Ìc8wCXvÓsH*­·ªêûm¦ñ{&å–ǧ+·ˆ\íð“úl›T6Øæ(èˆc7Óš .Ò>⌠'Un".<"Nª7‹ƒ´ÁŒ3Ê S`F‰MF-Çt´¼lÄIÕ‚ÝvTˆ8©:´tÜÒ¡¥CKÏ-Zz´ôÜ1ì_}­¯Æ‡ÿv‹d¤Óê4ô[«s`ËuˆÔ)ãxøÎ8.ˆÐ9cšS2¦^Äa¥™œUžã×Íû5œéöýºÁu÷ÿÊé?ÖÀ3äÁ¤ˆÜÀCÜ0ä`,s¡Ï]o€Éƒ¥x y°-´ÎÐc/MÁu츗8%ïqx«;x1äÍdðoØWO|öÔ§cŽf´®5üPA¿µü´´ÀcøNy¦'å™)8)gTCO&O2ɘ““u첞}af®™ EËuð æ·˜S°NÚKÇ9kèw†1òt–1æ»”1z݆1žG9ƒ<]ΘfŒ‰ãx¡ÍñKBål6ðî8ç rv cì£kÓ|ÉûîzÆÐY²þ ë–¬?¿dýôœ”¬?ƒž’õçÔËúsx/YA|ÖŸŸuÐ\²ÎïLÉ:Sêe)õ²N_¥ä /^r†G/9ã“ä%gâHÎXËKÎx¼äŒu½äŒ<½äLÉÞ½ä ý^r†N/9û—œ‘›—œi¾ä ý^r†ÎZrƺµä ~-9ƒ_KÎÐSKÎÔ+9Ã{-9_r&>¿=aù˜zùÌÑW-žU>rµl LÖ²1x@kÙZŒ_˜áÖüRYQËÆ€ÓÈfÚ‚ù„½H´©-ó³ø:sí{~áºßÅâpÂAúvì —e‰'"¶tÒáŒÛOáí@>ÎGtÑä×ÿpõ£Oþ (mendstream endobj 293 0 obj << /Filter /FlateDecode /Length 4541 >> stream xÚÍ[YÜÆ~ׯXäiÑP싇 œÈqdž,$ìyùæÉ³WJ‰²hËVœ½¹»ÑZ`DÖÊ…w±4ϳ`Ü WG…Ç1Œ[ÿ‹2iTâ€ÇaÞº<ѲlPW×ø¤ŠBúÀÝš/HTÛmøÐ:>zÇÏÈÑÞÚ·.@Ý;B3Ô`Wvä—£a?Žˆ^RLxZrÈ%ÂÎ%ºQ™žŒ7f²b¨c9`F°Yá\€š7ÞVp•:û²£e±OË”® %Í]Õ4í´E L ©Éš¯-èÚ3Y¾;f|éH]  àŸ§9› ð©ö¾ß¾îrä˲íCÌô%á«È(¥ ]~€ Òð(ÿ¶Â O6«{3,zÒ˜­W¬ÀJLªdøË«€»¼¿¢ü¿}ñ}Žª)äØð÷óFÍúÞ2ÚÔìoV7ޤ»WCˆ¶­²«F4”#ËÇw¼Í ŽŽ½èC²ÆúB]-# âÆÙ0õƒõŒœ³ùÔtÁ'ò|@´´ùˆuo¦)@"/—˜Ó¥bœÔ´”ÒÅ$-b#bˆ“ 3»¾+ŸÍ@‹/(à€–Ö`6Û¹¬dpþœJ%ô쇈Zgd Kuºô‚b<Îü{Ͻµóhc%ÄZ‹¬ †é.8hfÿÄëkk(MUèªÊ ùâ—»¨û¦É‚⬚VR%KrsBâȵλr…]€¨ã Þ’ƒCñ®}åBª 6„ÜE.–z%´¯Pèà`1 ¥š™Æk‘­a†Î’'ïe×” â:û@7i…/Y”ðVð³p‡€À(^&IÇlÿ8“ˆh>ªŒGÏ•qñ¢„µD oxØåÊù·ng[סÃßrç%HÏw±—×yè*MÑ”‡c ßwû|Ī Q ¸9 «‹Rú0Gª³Å•Èl(E+ô¬ðÏeÜV6»°vàú¸zu¿à@!±lóøp¹±’¶qrÔÏÑ?wY‘æIðL­¥y@}³I<×P1&éöDàB•J9~Erg’¤ÅXÿÍΞn“x'ÛÀ|XI$¡Ú£Îý=%cMz>ݧ²ÐÓƒ;ëxlÉ›ÀéßˆŠ®œ+[: {ãšž‹ð’‘Âš¤J›åÀ…S,ºé¸n…y¤¯á]p“˘”H ²•?!ûxŸCPLåjúá&f²+éaŸ{ 3œžkQiåñÔJÒ rÉ ±)‡ËÆL -´‚|ri?ox$¬Ã>.!Â븠©UTIÄÆöŽ›ZQy™ªqx}²¼ŒƒF vÔ-øÕ Ÿ†²M¦ ÎÛ”i!`éG Y~tïñÊ7¼R’ gº€1e!! %¼=‘GžÄíø Ú±¯ƒª¸…Ìާv#H˜žÇðÒôù¸3ô] '°IŽ}Øìâø€œ¥œ]ï*ƒøhC¹÷–“pzB‘ÁÕeÿ‰PR ïö¹2@¿rR6ì&èQ•Û"ä>{®Õ*ÞH1—„°Û;÷€*ú´†ÝáCX‘ˆÕr=ƒ‰”ja‘âÎz^CS(Òjp“îk*¹¿H!߇áöH“!T{oŸÍ5à2_^ZD«´ê·Qí˜ÔÀÌq5<~¯ÛgAG-bãzQš¦UÀq¾tw«JëC¤ü¬jà¦/!<š‘*ÇÈ«È1N:Þ}ëÉ´÷l®^sÛ­«`@Ø–EÓ¦©H `b›röö7ösïc©1 ›4ãâþ%E™l3ã}Ç?–¨.³‡G“»ÌÐÆ¹¢ð{W½«xì|)•SFŽªª UþzAŽ‹XDX°ˆÎñÖ.ü:àÆ$ ËBWSPßj£²"\¹~LfuºœÞPžò¢VEÝÔ¿š+æˆ+¸ š˜N0xÄåñ$UPÁùoÖaÉ7”Ö }`I¼Í—L¹åÖ×p,cb†| ›Íq.Ǹ»n ›©0hÊJM(¶é ¸©;5ÐɃ'CüuúOcî–¾hÒhª±Ô")(ð‹ÿŽò¿aÊSÉZJ>Z–Þ¿VG²„…­)&æ ­1Ïáö`‹—H=°3çÒKL÷«GUf*QÇ‘Ñ9=-ë¢5£,xÂëÉ6Ê#Û†!9¡ef£Þ8Ón³âîC­ðÁøäHt¦ ßÎa·}Øú¦AsE.¿•†u|©öwºpI61,‚&¼pãîÂ$—îøSž]Q½© e§>lñì{†>ìÞ¥S {åøÇ5ÝY磛B$ôhçS),RMÙéUïÜâÃ{I´»O tÏÖj¡ðÒCÉ€4÷N'û‡(ÛN*‘`º’„ÊŒ(d]a•°öXpeyõíÑ;ÁØÑϧƒ24¥j”± ¹(ä8-Àðýmˆ–7×au#Ø65b¸¶ S´µz”˺ÞÓ© mBhœ8¯ƒÄgÎëàãp(ÑvéöøÓ‘%%C®k‹›:=4» [ÿûl0¸_ÉW¹QæRˆÂ`J(M!ŒtŽk(Z˜ø@&ÑÆãi0)5¢I›Išþ™C1Ú–Õ1µÎÓŽ‰ñ ú”ÆÄû™n?0·&?Ì×ÜÃȱ?ˆ5FåæoÓ6_€ä)²ÁÔÈž QÕy‘HYÔ!rËMnbT” åÉã­Â@ÞÒ¤%W1ó¤oIq³l@ýšÂ¨6õZ›ìѳ¸N…}îQ§Âniân÷o2Œ.êptéU^˜F=ÆÒQ[r›h,ÔÙ½®&ÀBuþ Z†Àt)$—?å(¬ %šû,TÞµP¬s®«jöœDÖM€¶ÅGÊìÌ “ÁÅÿ?JŽu¢ÌZóy+ Ê<Þh7;)¦æœ$H&œ„úcŽè©þkŸ þyÖ“ÀpòXh#GRB*ìç¼Ù\e%kЦ­?n~Ù¶…ÎÛ×1y§œª²!ï¿ÎÇ2ÙTŸÅÆNÉIÉI„<æ×„ûZþ]£<ÏÊZ@ˆªÕÿDØxëÑi¼OÎÐþA#\° [.»†xó µá¢YÝR´IÑŒ+®.ìÓÞðÅIÁÈ–‹>÷`S¸ÃEÖÌ$xPSÝ·Z€ê^ŒÏ'ù¸º37Gù8p¥™€^XÞHæRÑñÖ;RU¨˜!¿Í:aüË$-ž±Šf¬ S5Œ•÷ï2d͹×àä*„HèÒ#d®S d“'õ¶ Ùg|èkݲ8RuRyvyåÁÞ÷TžLÈJæŒâË]sê‰9¡fÕCÕ,£eꤖíòZ& ?ù²Z¦²ZV™*¡+¯eU[ŸÐ²„qY \ƒ6«‘†1?ÉbÊ© õˆßú°ËÞÒ#ò-ƒK¬¶»/0ÛðQK.Õm`•Uœ2ƒo>I }\:BÊ¡fž£sy@-Ïl ÛÓ(ûÜib»É1ÄI Gȧ)8ðßNÚÉ.޶ü’êyZÈó§ÑT8 '=Þ÷3"ÌÊS ö´?Eš)XøOyÒÃÌM8Rì?üªy™¸×e ¯§£#»É%¶ÝøýääÛ|jË¢<X—n_†\o܉`3¾#Æòݸ³ñèG_¥úˆë1Äø=¦NŸ‚/En?ï»Kþ^ÜI¯Ý¹Qw´ÏL|·ˆ}/»¤Üy:­m]mˆ4?|î0YqùB[æÄV†%rr_À& S˜ü‹–ò‹­§¢ D|óùÕgÚ”Q#!R@”q®ÖОLÿûêpz›è~{UœÀ:29Þ¡{w OPæj cLôÍák ›-–øÜ$›%ŸnŽÎ·óïÞ<ù{·M”endstream endobj 294 0 obj << /Filter /FlateDecode /Length 900 >> stream xÚmUMoÛ:¼ëW°‡éÁ5?$R. ¤d9ôMðð®ŽÄä ˆeC¶ù÷³k›m‘CŒÕp¹;;†wŸ~>Î|¿Ž3óEŠ_ñ¸?O]œ5ß¶‡âî®Ýwç]Oßcìc]=~?§}÷Oâ¾yhÆáô9%?ŒÝ۹׬“B|Æœ‚>âþ)þ;ëvÇw%gÏçáí4Œ3‰ä§áô–’>\ ‚‚6ý§ã°¿ õEJ™€õØ7ûÆ8ó 1¿’{Æ~ºðÏ`W(-ú¡;]¾è·Û%=°ùñýxŠ»‡ñe_,—bþ+-OÓ;qü\ÌL}œ†ñUÜÿI--=ž‡·B«•èãKª˜æÿ¾ÝE1ÿpÆ[ÎÓû! Mߊyuû>Û.NÛñ5K)Wb¹Ù¬Š8ö­iÇ[ž_®¹uÊ•MúÑzQ­Š¥Ò)V†€Ú(TØ€àx¿àÞ¢ žjy‹°°!ÀÐÔ•µZÔÀ2àP="¦ZdÔ0\ÃG©R\¡·”).–2*ÎШa!„U¼Ä,†³ÔÛHð° `+jÐÃ.¸5Nα@èâ°èÐVK-àxŸ%ô˜Ü3š% A°YÓ€z¡ÎšÔ>kP#¬³¦õ™5m0W£oš¦Ã¾žj­®§Üý·.†ÐZ¡ŽT$X/©)n)æ#W—„o(æ“oÀRZÞ $K¢p4’ŽZ¶-bâ\­1¦Ü°Jä æP"Gñ‘XÔQ¬‚i/8ºkÉ^€ÂZqŒ:ZsŒ½š9”d š­Bù Ž)ßsLù-ï7½æx˜ÏJ›¡¾Ò`¯ažÉ½)f¥É$†µ’1™¸ dÑŠcªCZCù<£7Ã3JÊgózÌnøþHȰíáÌYÉšäTœ¯a…Šï¯Æ,_»œ-Ÿ—Oë87Ë}êÛKÔ´Ü—Ll¹oKñšò+Êg­JÌâ.¾GZyóº‹Vðc­48¸’ï¼äØWtù]Í:P~`áŒñ±–rZŽq.nÍ1]Ç ÇàSÿæ/©ßP•ýïuö¿7Ùÿ¾Ìþ÷Uö¿·ÙÿÞeÿû:û?Èìÿ ²ÿƒÎþ&û?”Ùÿ!dÿ‡&û¿1y–¦¼ÍH·œn5þ¹ã)º½ÝyšÒ“Bï½x#†1Þž´Ãþ€]ôGoáõñÅ×Mñ?®Xêendstream endobj 295 0 obj << /Filter /FlateDecode /Length 790 >> stream xÚuUMoâ0½çWx•Úʼn B „H¶­JµÚ+ML ”„ÿ~ýf’Vª¶àååyæyfln~=ï&iÙ¼ù‰¹—âÅwÍ¥-üdý{Žnn²¦¸œ|Ý?z_úr|Û=ˆç¶)v¾·ëm¶­«þ.ˆ·uq¼”~Tý_´òïUý%AqûêÿNާîªdø™œöýGwHÈ_«þd?(D ÅwZÐÂ?¾íª¦~ê^JˆM]®›6ÓEÓÁ˜ŽU]¶ƒ+ñ‘Ò¢¬Š~x¢ï⪂Żk×ûÓ¶>4Ñb!¦/áe×·WòyMŸÚÒ·Uý.n¿› /w—óùèaDÈh¹¥?„˜¡û“Óvú©z½ž½Ðô¬Ø[Ñ”¾;ï ßîëw-¤\ŠEž/#_—ßÞiÉKÞ£v´r¾´ž'Ëh¡tÀÊ1³ b 6aA8išƒHA¬x‰x*ã%)ˆ ˆœBSDÖjn@PË„AñȘʠ0ˆa8F ± 8An)Ž  +4bXÂ*^c›³”ÛHø°°`&f P;á6 <9ÇB‡—iµÔ2)L¦´ÛÔeTõ±¼Vå.>öíЭ¼HEÎW0*5áŒ0×^Ž‰Ï s ÖØº´¼~${S¨‘$2Ë€Q lÐC™³]j{ˆ¡Q\‹8jFجç¬A´ä¦`«Z1F­c­f1urÆ=#ýœ1éSƤÏx-¼é ã907OÁ›¡¼Ò`­aŸaŒ¦¼šºe¸VrLÓ”¬hVƇje éyÞ ïQ’ž§(ÅÞ ²Äa0<Šxö¬à?æšhÖkŒSÂIc/ Ïÿ ž-÷ËÁ§uŒáÍr^‡øvˆƒ˜–óÒ´œ7#¼!}Bz®UŒ½¸a®àÁQ­Rƒ“é†Za~×JËyž1KŽçŠN¡›qH¿âCù±–4côÅmÓ¹ÈËáÐÄãÂùy½—¶ 7]¬tá"«jÿy÷ž›3Vч.íñ¿OOyôâ§/endstream endobj 296 0 obj << /Filter /FlateDecode /Length 963 >> stream xÚmVËnÛ0¼ë+ØC€ôàš¤,‰*Ô È¡4AÑ«#1©X6dhþ¾œÝuÒ9ÈR³Ë™¡$æêÃ÷Û…÷÷a‘~ÒêG8îÏóÍ—Í!¹ºj÷Ãy¦Óׯ0^î?«ïó~¸ 'uÝÜ´7Óöô1’o¦áé<† ë}R·Ó+ë¨ë»ðk1ïO»û?FÇ?h°ï¶§§ÈzŸ â¬z3«¨ìg˜ÛýôY™OZë8ÑMc³ßÁÉ1Yе¼è{ØNã,’Ô=&ƪq;œdD¿Ã.F‚âÛçã)ìn¦‡}RUjù#Þ<žægRù1Y~›Ç0o§GuýF[¼w{>žt(¬×j ±eÌàëfÔò}›/¤»çCP–Ɔ• û1›!Ì›é1$•ÖkUõý: ÓøæžI¹äþáÂ-"W;ü¤>['•M#¶9&tÄq7Óš'\œHûˆ3žˆ8©rqái"â¤*p³hÐHô(Ñ£,Á0z4ØdTqœ€Ž–—8©Z°ÛŽ&"Nª%—t(éPÒsI‡’%=—D ûŸFë‹ñá÷f–ŒtZB†~kuly"uʸ^1î€3Ž "tΘú”Œ©qXc©'g•ç¸0n^Çp¦Û×qƒq÷ÿÂéÿŸÏ“"rqñ̅>Ct½&–â5äÁ¶Ðj8C½4Ï{`ǵÄ)y'ˆÃ[ÝÁ‹!o&ƒþzâ³§†8s,0û u­á‡ ú­å§¥.ÃwÊ==8)÷LÁI9£z2yÒIÆœ œ¬c¿Ðõì =sÍ|h(Zž¿`~‹>뤽tœ³†~g#Og£¿K£Ö­ãYq”³1ÈÓ匩gÁ˜8Ž÷Ú¿$äÑQÎfïŽs^!g×0Æ>º–1õ—œ±ï®g %ëϰnÉú3ðKÖOÏIÉú3è)YNµ¬?‡÷’õÄgý9ñYgÍ%ë,ðΔ¬3¥ZÖ™R-ë4ðUJÎðâ%gxô’3>I^r&ŽäŒµ¼äŒgÀKÎX×KÎÈÓKÎÄ‘œáÝKÎÐï%gèô’3¼{ɹyÉ™úKÎÐï%gè¬%g¬[KÎà×’3øµä =µäLµ’3¼×’3ñ%gâóûØ–©—Ï}ÕâyõßG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–âÂ×™kÈhßó ×ý+‡Ó—ƒo8Ïs<éÄ¥“gÜv /‡òa@]tš_þƒÀè[ŸüA"Bendstream endobj 297 0 obj << /Filter /FlateDecode /Length 602 >> stream xÚuTËnâ@¼û+fHäà0ŒC„°%›D­öjìXÂÙæ¿ß©nÌJ›ÍSSSÝ]ݦ™üxÛû›¢9ZßÊÁ—ÐÊáâtßI„ãÅ^Pè/ÛõeS? õ(¥tĶ.â¦B?½7»y³Ñ婬‹îfLaÓSZe>ÜNôÌ+7ï?ûÁV»úÔx«•˜½»Ë~è>Ééƒ7{í Û•õYL¿¸s·ûkÛ^,œé­×¢°'—ÔÍâ%«¬˜}×ì]vøl­ÐtVì.o Û·Yn»¬>[o%åZ¬ÒtíÙºøçN9žFmè´ò ³ ÖŽˆ€·DDÊ ÙTÀÄB‡D ˆ%ˆ ±*a€HÖŠ‰ÐázIlƒ@¸Žˆ e Rs„TEÎa,€:@½XÀÇŠ£ý±O3ûÎ?²î6"i–0'¦µDoR3ÿlGÀsÆ[`žÅ¦\aʳdL±ÔŽÒ”3%>ÅtéeD˜‡œk®K¼æº zÔ\7AÍuSâ¹n¬CƤAND4czCox*þMÄc71˜pÂ| ¼ežô”GSþ¹äY¡n@µŒFïAÊü‚4J©–2ðR-mà-LXƒY…”G&áíÑÂOëv_ŒüÚungh'i°emïkÛ6-¢èCû>þÓàôšzÍyN$endstream endobj 298 0 obj << /Filter /FlateDecode /Length 599 >> stream xÚmTM¢@½ó+z&ÎÁ±?DtbL$ñ°3“ÑlöŠÐ:$òÀƒÿ~ûUÉlbÛ:ÛÛ^Œ£]¼«ŠþʼnwUv¹ævP=…ö\Tÿ%¨#Æûwr)Ëbáž“2í¿‹~"¡>ýÅ©ž „cÅ+(ìm»¢®Þ„z•R:b[åQ]¢“ΛÞ݈éàïTTy{·$Ž0è)-ò"ëï'zf¥ ‚÷·®·å®:ÕÞj%¦_î²ëÛ¹|ñ¦mnÛ¢:‹ñƒ7w·¿6ÍŇÞz-r{r)Ý ÞÓÒŠéó6D‡[c…¦³bgYÛ®I3Û¦ÕÙz+)×b•$kÏVùÃ2r< ÚÀiå³ñ׎·D„Ê Ù”ÏÄB‡„1ˆ%ˆ ‘*f€HÖŠ‰ÀázIl@¸‰ e R3„ûTEÎ`̇ÚG=ŸÃÇŠ€£ý¡O3úξÓö>"i–0'¦µDoR3¿6ŒCàã-0ÏbS.ˆ0åY2¦XjGiÊ™Ÿ`ºŠô2$ÌCŽ5×%^sÝ=j®#æº ñ\7ÒÀcÒ §öCš1 Ý 7< ÿ&dŒ±›ˆL8f>Þ2OzÊ£)ÿLò¬P×§ZF£w?a ~N¥ÀTKx¨–6ðĬÁ¬Ê#ãàþÆè ᯋUûY‹ìÚ¶nchi°EeV¶©DÑv}ø¾àô‘xÿæzKmendstream endobj 299 0 obj << /Filter /FlateDecode /Length1 2211 /Length2 15898 /Length3 0 /Length 17207 >> stream xÚŒ÷P\Û¶ ãîî4ÜÝÝÝ niÜÝ=¸CpA‚—܃»»»>öÞçžì{ÿ¿ê½ê*z}ÿ1ǘ«¡"SQg5™¥@ö.Œ¬L,|qE1V ; •†µ‹-ð?b*- “³5Èžï_âN@—w™„‰Ë»"È çj `e°rñ±ró±°ØXXxÿÇäÄ0q³6(2ä@ö@g*qƒ§“µ¥•Ë{šÿyИÑXyy¹þvˆÚ¬ÍLìŠ&.V@»÷Œf&¶u™5ÐÅó… °rqqàcfvwwg2±sf9Y Ñ2Ü­]¬j@g “Ðða€’‰ðfLT +kçäê w' à]`km´w~÷pµ7:Þ“ÔeÊ@ûŒþ1`ü§7V&Öÿ†û÷_¬íÿv613Ù9˜Ø{ZÛ[,¬me)&€‰½ù_†&¶Î w7k[Ówƒ¿+7H‰ªLÞ þ‡ž³™“µƒ‹3“³µí_™ÿ óÞeI{sqÐÞÅá¯ú$¬€fïm÷dþçdmìAîöÞÿÖöæ‘0wu`Ö´·vtÊJüÇä]„ðGf tp²°°ps±€Ž ‡™ó_á5<€+ÿ¿3ðõv9,ÞI}­-€ï_ÞÎ&n@€‹“+Ð×ûߊÿXYæÖf.S ¥µ=Ÿèïb Å?øýð¬=z,ï³Ç `ùëóß'ƒ÷ñ2ÙÛzþ1ÿû|™¥tåÄ¥èÿaü_˜ÈàÍÈÅ`dãd°²¼§ç~ðýßaTL¬ÿSÆ¿|eí-@Þª}oÓÿTìöŸ ùÏrÐþw,%ÐûÔ4†\Ÿ…“ÅìýëÿçQÿÛåÿß„ÿåÿmÈÿoAR®¶¶«iþÖÿÿ¨Mì¬m=ÿcð>´®.ï  z_ûÿkª ügiÅ@¶æÿW'ëbò¾¢ö–¶ÿm¢µ³”µÐ\ÅÚÅÌêŸYùG®ù׎ÙZÛU@ÎÖ]*FV–ÿ£{_,3›÷‹Ãù} ÿVß÷æ§”´7™ÿµ`lœ\''O„÷#~GœoÖ÷M4zü=Âf&{Ë» àœ/Àä„ð×yrq˜Eÿýƒ¸Ìb7€Yüâ0KüA¼fÉÿ"n–÷ÙûƒXÌÒ€Yæb0ËþAf¹?è=ŸâôžAù¿ˆç=ƒÊôSíz©þ½ÇÔøƒÞùiþAïü´þ ÷|ÚÿE¼ïÈäzgkú½×bö_Äù®3Ù¾ÙÿHþ:9fóÁ÷ÿØ¿gýghþ¼°øcðNÀÂÚíë_Û?ú¿¬A®Nÿò7°ü|çlõ_ÈñÎÙÊÓÁ øïßeÖÿ‚ïdmþßÙþ ¾Óµûßïæ?¡8ß]íßgó_úw¶ ?ÙßAÿKý^½Ãõ{3Þ·ô¯v±¾—ÿ/r¬ïµ:ÿÉ÷ºý‹ 绹óûÝøÇá=æŸæ¾_1Ì.VNÀÀ;wпÞ9¸þ ¾Ówû|gàþ²½{ÿ+Û{xÏÁwv^ؽGò:ý“ê-ª™«“Óû›êï‹ô}‹ÿÿýZ=€f ³ 3þOu!m÷5¢„îŒ;c‚ÓT;Úé´ŒÞ Ní®(°)´ß²ƒÖœnES{Ж·$inDI_¼Z¾Ã†ÿHRm}òy6JP›ÜiE˜ŸÀé/:­ÿI OĨ!²ëóâè£hÙÞ)G•çèʃ¢R€yïÞ'íQÿ³bi$lvGu÷—<âsÅc¬fŒ~`é U¾iÎoaÙH&Fà{¶?ÌÅZØ©‰¡v 7Bq{N£ôÖŠI. ü¸æ&íÚÑyV ˵šOSY¹4ªkb™‹m1žu7í4¯‡:šÝð‚Q®­Ç+mZ°‡<ÔÕ„áײМ9‘žc”—J&ýb·]µAn+'­ÀGäVžôÂe»Ó{¦Ù™-;2}ùkŸl«ˆ„ÁE°R«(‰"J)GåúìÑë¾Pi½ä6qL÷`„ ‘‡¹£ëæso}ÉÈ7zV+±Q©§€å<_Î\=û_ó)¬¸4¥Ã .ž†ä$Ë‚wt¾é¨èÎÖ'rÉ ç»±”+Ÿ§¡îSiKhÆW‰æÎ׿“bìå'–è‘Éï½líq3Ô»ŽpÛŸ59xhFéî.&„k¸À¹< tã†ìNc§eM‘ÜﱎY·uŸìU¨+ØÜŸà`‚ùYG ævä(`I–â¾eÁ&Bç_)·4!\§͠iq+Ükú´òYagÅ…m¥4~ ëõŠqt „9Ž‹º|O–À“+ö¿¿¤·,³úX³«=S#+òE”Í/òàƒêô® ´½0KY[b9ꙩ:UͬÇ…JþÃ÷ìôhÛ8{U-ª¾_㌶g Ý‚á9‡IþP\Gî”2¥WÊŠýÜþô®§Ü¢vXãÉ;Èårå‹®•}K¾ŸìÔDøÀ…G)"3äÞâ%¯™‹¨¾¸NÌ6Ú¤…wN?•]Éé×ÁäöÒ}Î(h'Œá†f5p9§‚dN+š½—  ˆyR©îQ.àx-fÏèËvåACuNÛ-÷?@gðÊè<}ÜÄ}ÂŒ<Šˆøas*Ù^ôË©ÐXÿn^iÒÍ™t_úè·Nl:mÌ4¥…dþÎ¥?ã]ŠÏ¨ÆÐì¨î$ÖC.ðÄq{|>8Åýãì”T~Ä4É­ q,3#4öi"JÉa&_ú<ôè‰U)b‹.×^(˜ÃꤕQ–Ïí)oØ”—p‚¨naêkm‹zíåê)lH×ÈÏ ¿äí‚m+úÐã¹K¿Ì⿸Z9>¡¨ÕŒpùðÈEÙ¶7UŠCäX˜m;g¤ÃàZ–°ÀuÛ¨Jô¦ïÛf‰ÜÙçØA#†x⎀؇0[âľ_åZ“ ÷0tPã„ñŸ~úçºþr:‹»”IOƒ]ÓŽ:·qÝô–æ­†jJœ MŒÄ[Iê‘bõ©ƒCnòÄïê‹Tq0¢–€=cv®AnÐÃ)’C w® W(”½5ÐÓzŸÙWï : \[aš ç JóïÁ{TWk£k<,*¯&™.²ŠÈ* ©f&_ qIx—ÂKmï×ÔnP=8.š]XX+ô … ¢ëh_À¾;–,%bâG6hrCruQ6þôá3™¼ø”lÖŒOr"&ôéiê‚;ºÇ›Õ$]êbWviÝGS½íõ:’›ë$ö ]^²ÕNGÞŠLÚL9¤1¥Ú^±'K¨*‘]ÙZuÓ‡1ïœá<º3‹ºS @÷r{­¯©|¹³»dsÚ$ /4ãÜRS‘Ý]*MÕ÷æOìˆw7"Ï¢äËoÎ[Èá©Vv/‡Í÷ÆqœòÐ;!ƒäÃÚ9Nß×¢§ÕµXÌô¥‰õ,œ™IýøD1w¶oÍì=xj­;_&»1\Ÿ¦>­j–ëŽÎî ÂLj‰_'RÒÍ-nŽP ‰èjs#øº:jÙNO0|© îÜ<%›Ÿ6,˜¯V[oàb¸Þ@¡sòá<à~,µ½c‚ƒœ¢ûR&#’ð=Å”ò͆°Î»Ì(àfm†Ó̓ëzÏ’ÚtÑ¿',½/^ã–lTv9¥ÑKLA},"b@gmkòë´úl2®i±@CXKfal[ØuÅLäëç·“ô›Œèékfyèàí0Ha}éÃgý•»yFÎp@¦J8Îlb½bMvß1ýùìùu3‚—ŸâqÌ.ôX¶+¾¹7PÙíßpŒû¹ãw§É"ÜÚSØ õ|WI5N†}!Pà “µPЉ½Õûñ«« Eq *-¥•1z´í¢´DJÅÖP‹‘Ë¿§u¿.$¡eZÏËa7µ$»Kö Áƒ“<ÒL¬å†¯&sãMdKá†t ïÐ7Ê‚p,pÄaEë÷#»·×$VßÔ€“3€Fš¼Z&×çÌ#àÈZ9”·"#bßß&ä‰Éƒ1‘-ßxòWcÚk|Û ¬'i5!<Ž—çuiðåÏ„ãC·‚ª½ôƒ&‰B±^Û„DV'‡\ƒ…DèÚ7¸ÙMuöƒ‡ïcìdµG 0ÆzA>ôA~Dšm/‘7Zùw©+/–ÖBë0³zéx«Uι陌/¾ ágªé0VÈú›=¶yÀšÑ¬' JÑÀK¥Ež.Uþ‹Ÿ–Ç×FÞ__ ôp:?]jÃ"ñ:Ѭ¬ï .T,æ@¡3íyJ«Ilyу0ÌÎÊ)n6_ç9·h&z=y}oôëP±[VÏ™Ã>\~//΄eTÏ 1Tv<õIÙÜ'°\Šƒ:Ã)Èè\TaáÑœ'åÓöíšýZ\ÚÀ˜ô¬#Á•ø=…Ç;Q5Udöuˆ±ã×ÝÀØ+A‘Z´)›G¯Udì¼ „ƱZÊÇ•1‰¬à¿~€>OÌ-àèz,ws’CKÎw23ðj˜eed„‚^æU3ÏÓ˜~=õ‘$³è¹K_ÀndW¾¡°JÄu‘Ñî¹O°ã$“ç™ÂëÖ°€œ7öe&¿†'‚râçZle;¤s—jð)>Q—iªôbÝýò0¼c·²g¢¸ãÒtw8:”4–$2òìÐ4E›Ý}ªî/í“E*ôäYwá0LÊX\ŽÿëaFŸ¼' ÈsÉŠþ²4hãrEôÉ2háØt¾ ÙìœLºçéhEÖ@È=-(‹`Q:ÑcªP1¡ø»Þ²רDžõVûñ³ÛÂm…ýw›44ì±o|åÒEØÇ©=¡]ø‚²o xO‡áZd³‘—Òüt$n­6"„‰PtÈÕûýðB:î<¿~”ò棃H!œpÉ”,b_éÏŹR~À™ÉÝÙC‡a!U®ùDÃ#¿Hª¤”øÆÁ-ÄBž/b9|–p§>’vÞήÉëÇð±'RÕñåR †âð¢Û–ªU˜×i -ÁOj²ëú½ªèd ó¯§äS³¤|-êd&õD Gú*lsÛFHÕ»³zw¸PûØ&} W”fM I¿¢zU"ÈÌ€‰-»þ³’±ÌàrY.ƒµ-Ïöwq¿±E®tñô´Rt˜5qú\oÿìçöìâD‘åŸVЧ‘AO$j‚ÑHè|ÄßÑàââ-û‰–ÊïBöˆy™Å¯DrÌé'd¹0äžl¬xr—¢á ‰º¡{µhnK}È ®Ï§]9Óâz}|ºu†ƒ(z,”c„étŵæœZÌ?P”Èéã¬Z†µ[ªmþ•kæ$Q@Ú9Ë* ?L‡}T÷hvùc)PƒgQôŒž"ž¢s¶‰êŒ€ø^ðyàQb 2Ù„Î=Q³ü%5TG™À¿¹i' ß僪7@s`ÃCž.sTÁÑt„kᥢ°ö ì}mãÖ¡÷÷*í¬$íhViÌM¹µÛLЋŽÜ̶,„~! NPEŒ $= ŒMbÂØŠ+­}ÏN¤D]TMùØ„Ö%µÆ<‹ü*Bû’æL¶ {®&”äœX¾GÉ2 šæ;M1FÎ(§Ä¸èß¹@@²q§§Žd[|[YØšeû @ì%v˜$à]‚p˜}qwËvscR4ì9¤ÎÏ“ËØy™òäÃZuÞ´çÞé~Ì«xª·Õ˜I]KΞN{õQhYìš,œ}%Uqa©í!¤ž‡͸¡ßX(ß÷wáDkq? ;÷Îc.÷§ÍNI­¿wnÊ}.?Ïáãzsï÷Ph|I´ù”ö%² tô†$qMÛÛÛ}«b{"µ ër‚1×™ìjÇSV@g»GÚ΃[›§)ÜPÚìŽ"€4ŒU6ÍÕ=´1ôz:RA”db®)ð赜«©ÞæþÓëþÁvâÉGô÷ôЬMi†ð¶~ôLK'ÒóY¤U~ß Ë)ö©šH•ø÷w:×lu³\ý9Éç¼h²Â³ä™e“1½Ÿv?ÿ–i¹ÙJn,¶¿˜k_< ¹'jZP²ÎZ=‰Ócpʆ(§šoŠ7³h—|#Ô*™´Ó‹%ÈÊÌ?™ùÖ™*,fB,³?õýŽ}ñœÝ*^3âë3AøÔG‰½æËn„N-™ê:Š-’«Í)Ѷ3̼ Z1c_"=p°Ä"tä´Ï"Ì0ž¦÷ÂÄüâOÉX*o‘gCÈånnÛ`.V?Fˆ‚ƒ†àZ ÅŸµxŠïeä)cøgÂ#ŒÉ­¦woN£^Àp:¾mÆj£¸Jé†UpúbŸAœòNF•#{(NâŽ$K·z›’]ç¹.ßw²•S/qô³²j×1Q>” 0ìížÖ„#Ö•Ld]qÐõÕ¸@A– ±¦+£×ÌDE§,?|òîò!½SE)i‚/x¼Å½ÓsìÞv<¾‚'J‰/<Ö¾+OêTC¹ÅÀgût?’Z G(A©1áfçš¹Ç:HàŠá–éÎï!Ú܇‹£¨ ·ãë%0= ™…X¡J«¸Ñ÷d¯nOkn].Z–VÔ1±C,ïQ܉G†×GÊ øÔg·gÒi‰œò$Jj|ÆûC­7#ìꎱ'µw˜†¦ùLŽ·Ä$%E³ezZ@­¦ò5]g ë‚æ²›W‘çf’‹ø²È±#Íz´NH8ª: XJµo!4ùi»Õ;-EòÑK¨sWܱÊç¤DY·O_4âǘ[’ØFƒˆ®`xáþ4÷~«K×S54ÿÓ€¥ß–¢Ã+{}Œ‘>²ƒ|ü|^àMÉè+RÒøf|XÁ‹Ð>îþZxÌŸËè—³ì?·%¹S5\ߢÐå‹ÑË©jpüÖáA¥°{ÆGúÒ|9‹~0ÛóÜj’<:IðÑŸó>-ÉaHMÏ+h^.èå©y‘®mGš W¿î¹”š|i_š¼cŸµžÜ­Õð´«¶³é¤òs÷…ËE/î2yy³‘¬¯*™ÈkÅnAŠ_V¹6èç,ö‹s ­¿lof-¢¿sªàÂoŒSô2èÓ…{kKÖ7{N=‡"{´5màtc ¼¯m"7úž²žè-¶J}ñ©tí#·©eÉW*Dî0Ë=ðôy(p¶êz¿È‡Ë̪°Pi:ŠE“†J_¼µøþèË/·Ö?F¹íž¦M—a^š©±> š3µÞZœì4cµ‰ è…n·äöäφáÿúZ@øŠã"ZgOB¿lÓ‘)-Ú°U fÁíh6Ž’R$Ým°É×ëÃʲxòh©d­j(‹˜êÖ³ýdñI”ê—¥ÿQ m®¥j5ÊÔÅð§“.ÔØ¸“þ_œÅÃÂÄ#)íZ,»|sˬ> “–LÞ~½¤‰ Ü|Ø/"ñ™ààTv ÚwÑoA3[Ûcä¨ÔÐ\%bVÅúZ^wêf¿Z÷e@KO‡ùsÃñ–Â`„SSšŸÿ’×% -†LáR¿âŸ¦| -D¢OzDK¦üj}ßkÍ­g×ÝŸ²„³Í‹Á»µu…w“xÞ£™¡úP{¢˜e1q›ÐA>£n2'Gf«˜ÐD×›DSØÌíØ\n ­(éó0™¤«cÞX5zÆjaé|k]Õ°ÑÆ(ù‚ŸM2 !¢¤´}:¨[¼*_^*Ú™ü4ì´uc¬Æ(+Ý€$NØA#37Õäø¶_çti5SjC­GÜÚëR@mª<(±ÇjÿØ£çÓâŠo8P'#ɘßSõÄl jÓÈãCRcJñ.«¥“¬6‹”|í* …2:}dCîû€„`>VJÙåîÐ#öí²–äÓ™¯©wÃbè"ñXvçÃÔ ö—}2Lãܳ³ñ‰)®LbþÎpŸòØþª!4~øœž«Ç¦’î<¢C¶KhG›à‘ñ)¤¸I/A÷h®î˘ˆ&lîùªüÑxZHÅÍúˆ‘ŽðÈicªä/•´d¿b,‘çD«"R㮤6¶ ˆ +k¹¥N=>°8|á0Ó™Ü#+ŒÈ\Mñ`RJZ82zSÐgõ=®ƒÚŒÃšafÉ —)䪾£ê<Н¬hT¤·yEÇgÏ2CVô xníõ‡÷(¼ö›üqƒ©Â¥D$9†ÚÛŠ¨¿C¿ìµJ~œ³A L¬ÉeÛTŠ]z¹]AùŒ#3ÁÔE( ZO5RäÌâ`SÍGÁcµLGÄú†M«Q‰@¨ôtÙ¾uG =ÉbßqJÜ×t›¦0R/ âG~Ȭ%¶¦JÞ“ëq|2ì okXiíæÊr]F‘\Ü("šO#Q² zòÝ c°µá*ç Ój>§Æðð'ŘçnÉñ¾Ë$›àÊ—xCã=åI8‘¬L'­„f6_kt8ÃG8üo"»+Øña|UÚ<âk?˜ÍðÅEf4 ^§k )òSõΙÌ,·¡\,CùKÔ4x×zØ€tØ«F ÝGN{+êæ#êd®Ï®µ €÷›…½Þª~â¦P¡Éý.öë!ºc/²!ïýÒ¡óIcw=¡Þx<òÒ]îa:¿/•-Íùõ¹nœNÌj 2N(Ô÷ÙÛ~©èq|OZ¿â«ÉÚfYãó§¯fwøŠ™çÞý½ŠÕ© ¥F°$£YæTæëŽ'b3É&mO®Ó,Í’Í‚ˆŒuMK¥y^ô3v)td¾Nü7`e†ÕéDCH9¢Úœ lˆyCg}Ÿ¶jçGèè+íô4Œ±`é«·$ñ×|,&_}ˆTfD”£X•‘_©ñqý‡¡ãJHͳÆrÉcÙØò?],¿a§ºr±¢3^ƒ˜MNÛj<å…ƒ×ât@A ¯]Âè‹ÕV?C»]¼XÉ!1¨KqÊ%í·)ñÕ¥`6eî»á,„¹žm } îµÀ~^XKv)‚’,ü0‹*JŠÇ°°S÷’t˜o#ƒÜ`8Öeé6®òô­‚tµØGÛÀ¾ÚBñ«A±"Á6t§„iq­?væ[—Û9p2U8T1—Dé£8¢¸xÙ$Ñjk©0ýp‚ͳæ-‹t­Äx»U㩚»9Öu£’ŸÓú]¥P_v-æÅöÛDEq•&/Xõ¡é¥¡§á”´‹˜pQHíZFKˆjS„«„î ú!õY^p£®ë <ŽH_”|¹Û©’®‰ž‘·2o]¥„!#/ߊe_åáÌ1¹«JO?Û¢ËÝ–©+øϘ‡ù§ÜbðÏß‚3U nGÜßOè8F~æquoOxã<é©ZD~Ü_uðÀBóÂŒk|}Ù³ò啯‡³Òz–ty…¾=7ÝCuð·Õ<¬îÄä™Võ7ä òúæ †YÊ-1]¢ Ûç’/íW9{Øè‹¹qì(ÿe!íXÑ­Œ9إ󊆧Ž~ηQl]óÈbòk ²±oTÎÈ¢àõL7¥œ;òtÉJ¼ èçd¸0 ’öb¬Î¯Ÿ‹<Ä:ë…\y£‡;fµÜwŸ„8 ¹Ú8µNO²Ð=òzŸJðó2¹iÛ|Oa]ˆæ7Öð ! ¾îzý°ª+ƒãÆßkIÜ ´ ªéØfу[ -ë|<øÂiùY¿\j°5¡IRÈT›êbL¼Å­ù¾­‚ é^•_çMKF¶I¥(/BlBèѬCðöÄ J`MpbÂ{(шv+¦QªäYжcÏç‚_^5€·r¤Y…GêÓ±”­©“Ñ~–ø³ÆÌ˦å y³Ý¬é†ûè4Ú×6ÒŸ³yPÆ÷,½CzÉsgôÅ ¡îò^¿)ùÚoA/Ƥ‰Mº±Ÿ=N÷ˆ2TwÞÖ´ÁÇo#eš´åÔlJ‹ZÒZòG|6߈õ77gîN0^_¤õ„;‰¼T‚>Þw$Þ©Sç£,ñ#Ç9)møñ°’ é”`¨\bùüò-¬–Ï6BC†Ü+'²1zA넌0 EQ\åÈbSÀu0÷rýôã~úÚŒ…YÇ“Šî>o`v’ר=¤ ¨¦¹s€:ò«FfU?z¶ LªÛn%‰ã_Ñææú×JlKèS+(\Ú†:ML¶ öÕ¼HµµPÔ #?k;{Ù ®J'¥å1å6¤KL ôC‚&-ÌÿT<.?5‘œà §5‘s;›£—‡:ÀnC8–XC1¿˜XfÔGH£® „SÉç!+¨Xh®gOö_W³S` øA!§Âàáf;÷wЍ5³{­1°±hÖgfдg&è­a‰èNœÑû€-|~-‚"ׇÔ|þæô;ËÎdå;F‹º›¾_½ÛÈs,ƒ\…vžÅ]>U‚ÊÛ/2.˜Òä$©u’¬Ø+tˆÉkÿ¶NoU89=hŽùŽBÕê"X7'[wH­CуÍÀ¹v^Þò9Ãüº#ª†û#^ýÏ0Ø‹œŒó¬Ñ Ü]ÆfÅú+l˜(¿i×BZÖH¹z&P^ÈñGTjV;>ŠØ¥L༌‡ˆn‡QÊezÚÀÁÚ0ë}ŠküxuüŽL´só¥êÞVð}˜Ù74p^ï½z˜Sx¶s›{”ç5F%‘²k)zó¬PDÓ 1-¥b ^ÕzK4äÇ-ìüõP'ït›ìÛ¸k32"×:´†âÛöÙgÂÜ®_ª“ñÝÍà«¥°ãú»9æ2¨ðæ²5VX|­ƒ°Ö5¦vÛF«æî©Õª˜‹h¥ÝY†5÷o‰ëد ÞìÎc ƒút1ù¥ä{eØçŒõL„pú•’¢høãšö»$ܽ&·†”¾P^#uøÊñK9rP%¹u z–Ì#ozî÷sv™gm.}"ûÙõzY$? Â‘ö3<T©ËÇŸ‘ŽyYä¥ëÈ™¾Õƒ¡½Ìô%, ªÓ*‚X‚s³x¬Ò• sw›uÄ,¿“´År—‰NqÃOrã<ÆÜY\žA+ûÐo}QÎ9¸ö¹¼n;;^JX Òž¿ú”YtKÔ]ƒÂ³Ì!<Á ¿1øaß#!î3#†„ª©ZEÐßç‚­ÿke Í€g÷Š·”­„Wf? ½þiÜÌMñbBG¾ªË*%mµˆY·kpÆcúÞô¦Bìä{‹d(~Vú‡ á»Ãk¥``ñX´ïØWBàêŽëÌô´Ä×V›ÔCÊtVajRÆù»ÑW˜-” ƒ"ÙÝ€î6"ؼ<Ä~XÌO­ibèÑíg#>kÀÑù‰ºÐæí7äF^›9R‚7lÕKºQDVŒþÙ®›ºy­œAÛ…¾–liôTü¤dmFÝT†žÔ%*Ø'Ú3._°5+ÞÙL(—ø?-䣶ÖAZÜ‹œC UƒOf¹ü Q×$_ÍÉ|êgriÇAë¦b *‚œY`Ôb$µ'&ôðê :z\‚ݦç–n£S¿Le÷CNòK©g«z6è¦.H\*Óyê‘*/š _Ã™ð‚æ…„ûž£¹7,;=Wçö†ëRJqBIA·EjÙB… 9-b(ˆ´Rõ»DŠÖsº•D¬g-~i¯ï>K˜Ý³ÏzDŸÀtˆ x$çgÎþ ±¼©7Ùæs^m¾3e eQ}`hŠr'hΚï$Ú*Ñ£Wœe•úHõº5“¶ÆÊ]8+éIeK´á&,)a‰Ð]åWůïñt²:š­N©Âz—;À»Þ@œÙ^éìØËyöâ´LéùTÕ`¹Liø:áéí“õÎÔi«_ìnhvÜÐX&ŠHõ™¼~… “]2Mʇëà$*Œø«–ì· CX Ekëâ\6®/>3-¢.4‹´¾ö:qhЏmA.á«y] ”Õ-6]¨cаî©ÑœÄ·YuסðU™.ŠdÈ"’ᕵ Ê ñºG¤)Î&à©øz忤ÝF¿iµOœ÷|¿.EìIà´š¿rÚ? µp0Q…í0Coî·6T¥«ûF~”|Âã:Ò $¾e „báV²Ê)ÝÇîMª}gRpt îé6°Ë0#ìþmÍ«fT0šË™.-dî4À‡\m[pÁ}è$wé›PˆâIöòöt×ù7 Ò±A¥N{Å„ë‡ß1#«{mXYÉóò4{*Fº½›²6„p—ß™²ñFžG! yah¨Ú„ €Ù:ÕÛÈ{ÑÏ("z¢Ö»Ü¤+ÂïÏØæyá|ôaŠÇs¨é uo‡q|ùíäJ‚+ÁxÑ#ͱ‡XAmÝ:µ$e—eAä炨À¢ZNÜó~pò ¸aQ‹§¬‡‘ÙÏ•î!üT¬ÐÀµ«ŸfyH ˆæ5 0¤òSÖ÷SùàÎUø+n­Í¾‹¢ì)•bsøJ\sÏgÒ°4dcˆ(¥AðWˆl¯7MKs”̵ôî/Û¬Ùo¯zÈ H <êzª`N[¾9ª n:˜¸’/‡@ xODî£\®ŽˆŠ[A'{Ô "®–*7˯TêkI6]7®„;ìU½Ä„xy9ë@ z ~+ß\³ZËg½LÚ©‡¤§ÎC…q+e·ß ¤¦4Wãn¢—h‚VÆÎ#ìá±8“Irô¶Y•¨bÄxš¡IBŸÐÙ¤5¹CÖ„C›}äf)6ƳP„¥p¾úñ%°e=3ä=Ä'<°`J“ ÄôÊWH4ƒá“Ñ9ÜÏëðdM)ï1ot‡1æ5:i¾I¥^îó§ƒ3@Ûê)vëÑ’Ô=ŠÖ¨àcXÍL‹«ÅZø÷x°¡ìÉÂP*“5ˆÊ(P°€4ΪдAÄ•xŒ}2D?µZ&£}p_© ×õ•(ÄÃÖ–ol…ŠIf˨õ|¦$qO®ºv#:2ï…F˜s½ÁÈijáß­ô"6·»ö"º,Ñ3\_3C¾Š+Ê3ÎãH^qõ1ËfÉŠ,ª¿@÷»Ã8`Vð\È?øn¬Wlˆ~èâL2¤o¸\‡ÏZ*;åK)²ÆˆcK¢ó52͆’âðˆ$ÈÿmÛ4q¿: ‰èî$âÖŒ&[’œ.²ü¥?;ãL­y`Eª€ V‡^П_F{gwïÒ¦jCL’æ¤u¥k(ó%jLbbnXTЍ‰Cžøpå³J³±ÞrTÀom­Ï<Ëa;-~/Q$CJÓ2®¿iAü‹üê쥦/}wg ò§g,Ä4ý‚›¤Œ¥÷÷=ŒŸmR׋…Å>¤9vd*ùQó&©ÍGhŽt¹@4KŽû R"7ˆ7¤Í»{ïf¶{b/š¤—ÖYÏ"Ê” ‰É3ÀoÉø­"`}fœNõª˜ó¥F ²‰ï¥Ø€> €k ¨Q6ÚÔ¤†po„»¾ÌÍêχ”Ë úÕZê´<†n±¾ôÍEÛ=0\Æ*énÞÝN‘& 0M8œ°³§ìp%!‘XäZge߉ó‰@ƒ³¯LÏœ”åùI"lþ÷€èm í5& øš³)¶^A,:»Ð¿9M¨f™–å§p¤vþhÒàV  è[à9²H÷¢!;…:-à¦ô¾a†”VS‡ûÊÍuˆ`°¹*WkƦ¾¡™Nï˨)ÄS ® ±$dÛ;©—ÞkÅ}wÏ›méоHö´áãeoÙ§ª³ÀYf’XŸ»õÇãÝ€ñ©Yä\x©ÊÖoÁõU uQ3‡–_CÉ 2,?5žÎkõ dý˜€àfž™å‚Æożæ‰ÉȶM¿_ D‘sbì(û9{Zñí†êñ&D VSõl/[$;œ[Nü0ü³tE˜ÙQ04³½kˆpʦêÁæ¼·@Q¼%?ÔPzåÈwY© B¢•fñ÷{ÐIêTùýá¸d…K_Ûà{Nb!c _|I¾oêlÁ"S[ù!ê[á"{®Œ.o‰-nÞè:ÞW‹õµ„¸ÉC€LŸ0ÇfRjª®plAM–˜&£µÜƒÛ]•u)F¹;2¦rÀ'Z%¼úHd¼–þöj£vó#¤µ5B‘½ZÃÑŽª Ôö®²jŸ0‰SUÑkúDón¹‹²£šàŽÀúÞÙ>±âïÞF¤Z»H—×rø;ô^L¿¼#Òo‡±Lõ„ÎÙ”=]>OÖe+ÆGz„¹sM‹æê$üq/]`N{‹XõÜÑÕ –¶°â„=6zSÆÂu‘%š—É”ƒ;CÚM|Þ‹·…NQ,t B®)‘“™¥"ɦs*\~LÀhõZ Y3ulúê˜JùçfZÆå½t‡èkÍ5V¼SngÑ*Z ëÚ*PÛlˆJ ëîùxt¹ºh§¼õÜþNZ} i–Ÿ½¢¤ g~õ ¸sQ¹ê(5Z†ÞÈñºÙÛ11µe׿n¾9;)¼åÎû£FƒŠF=ç Ü{¹’¬x¹oö¤ ã˜@aòV£*Ëw}ýtÚ7ᶇþruÝLe”úHËNòY[ªF¡]ˆ ‚]"y/”$Ç–Å4‚ÈxõÊi†Ìˆ éíbw R—11D›Š{˜_òNx·Í‹wöÆg©õŽÂ–Þmt8ʼn'wµWZ-?6U—Ã¥óoœñéMAs`ÃõÁà¬;¥¼hTÕé[6#‹»í6·ÍR·¡Sü,ûئ×[~åWD(ÓÞüþô+Â^hi{»i€ kOœÎlkb…&ãóçü“œ÷.¼´œ¥]*Ä¥UÜèL˜o3L9_4Ls[¿{÷t¡ˆXb^å+ÅL×-ƒ½à£æšÝ~ À ÌWÔªˆtÑ1Q$é0Ã$zËmD Yˆ‰?]=1³‹Ù³ïât?вâ?ëìgñ²~„XׯO>LJæöÊË)RcÈŸ^6qЄ÷Çéqo§²­4üÞØìBQ‰Ð6¢tb ¥­f;…ÊuƧ»±¿õŒ’ƒžËÝFgãe0únœZºµHŒ2ܪçG³dÕ'¬tßœéTás ù;‘Qª–ÍëÿËFÊ_« ™<–ã쀺gPÏgõ²õôIÐo9„âÛ(«0)‹U·‚³Iç«1ñòCÖøp?ÎmmŠ£N?T èjêšÕãªGšR˜5ð&¬°ñ³—¢&˜Ê/ËJmYcG’}¿Zü@Î:‘4Lú©Eb-¢$_¦ðØ£ÞÚ`‚FÝ_[ÀFFX$™‡ŸZö9Q"ˆûÅ]Ë"¯jPn·ËÜO0ÿšÏ±(ûÞFÓçQœ66Ê96†¼Êg£|[¼&Siw"Öñà‚ýCBëã–ŸZLuÀ#ƒ'CŽB{9óxÌPsu°œ)ŒÙ•²d7:\²WЋ®­0üTźVì j?¦cDutu ÛW½”R†×ñÕà%A¼c-¯‚ß6)Á„K4vxÞ’ŠM¬áµ†Ã¾—Öóq??¤´ð¶Éùlå¬ ǤÌ/Îzú`»Â4׃J&æÖ¡Œ˜8ü˜‘K;”—Bt¨Ã“ˆ7¹àE˜(Â<Ý…ˆJzÞë#‘¿*ÅÉêä`zèé½Ô*ê»;Þ:Aâ½>)÷ÚÁí@âBËlL~¡/|A[6} ÄɆ(#Oú’ƒ®ÔÓê› ÆTðn™¯ŽÎõ OÓQ0Û¾ òç§%-§—™àôP?vVÀïìH] ³À!#U£+}ÚÝÛ‘œ¦çžN«__lš(6*Çœ,wŠv¹ æóïDó>2³Ó^³bå^¯~«Gý,Pƒ«Åÿìbc©)V)\—Q¦ÆÁ›b¥´I9e^ɯ„À…'Õ”eùà†b+G«Iÿ ÿ¨•Üißœ4Û׃§"NúÛ-ÍKêsãt-ÛO¥(SL÷‘Á¾ý^€:\Ùï{"aŽØŸ0‘º?G ÐAàêò㈑ZÐ$aâW«ºº€ð äã|¥†ÖPë2uxpt¿<ðDÃA)–l@Vfò¸"»-ãy*”‡SFé´"ÊFÁ/xÜ·íèbH¹­ð|oo±AC<ÙßcŽl?P‰¬DÓ]mûäM{û;Žr±ÐNo{qC…¶ÞÞî#‡Í~d†DîôSÅŽË}iÌך¶>fOZƒžO­NýƒGµ›“R^ê%&sÌÓe×Hä3_ŠGa]H|Ö„CÁ¬¯\i§>%äåÔ×¾ˆÿ _*±| ²žãɰ¸lO©”{Ñ&Ÿ:á5Á*¹2pPh#X"XýÄÑVßï_ ·n})¼«’º pÙØÙ¼”dÆß.ºßümœÓ>D¯(¢‡nÞÿíè åÙxŠxaÍMòªS#É}.›5ÝšÿÂ-³‡*Ì>H|*Ùý\/7|J—ß±Yøõøf©û«Ip¡äTuÇùWoÜ]n÷Û©Lê0°L?Ȩ̀#ÇÛ‡’ 7YŒˆ (þõzÄÝß÷…A<ܲá”d¹y휴/‘F¥­åXßXmÀ£ö§&i€¡BRįY¸Y‘Õi¦á’à,p¹#n¡@i5uÌ™Ôdê>„_ª/wÔ]+ÆäUk´‡yŽîƃž%ÑtÖž€Ôò€ÙÞÃ@-cOªBܰ B¯ÄØHÖÃ馨UÇþäAÉXní쿱th½'†TôÆ[­QÇXÎ¥œóVN³Ð‘)Å™ý£e}œÉðŠ¾Ù¼[i,« Jrè)÷ ¯Úm|é|( ¦Ö¹AäÜìªL.BüB´õgÿ7eboÆ Rùéd‘\M¢ x9˜ï£lTã Ïo4µ4w,­¸Ð&là0Äd¹Í3ø¥Iù눹 Œ8$ “Ê¥Ú>jŠ`Ëqývïø• Ye!9z†÷+Y´ûÝ¡·ÁY‹µocÓÀ=f©pÙ•’¹@Pû:tSû42×8ÇÏ9=^¬eªÃº?‡ó,ߤ'µF‚É$7pæÛ)&[Ñ 0ø#þËûý–sŸ¨;\¨Ê¯­Æâ¯‚no¼‚“!N2v¾QÁ=Í/j3zÞ¦6QrîБàw‚dšw-³´Iýß)]ÓȾv"%Ø:‹eÁ7MºhÏÀ'Ê*:Mmí £ÜièºPdhÄ´ô*="èèÕ!u#Quœ$¨ïŠM¾¥åqð¿Y8£9*a³ 7AaµÜ0ÌpâX< u×é?‘ã}â‘eãJ G‡5´ÊÔÉýy‚Ý'Iñ i›ÚzËÝ Þ '—Õ~üÉ;S•N CîÇ«,‰¿½•¾×ƒ•Ô ¾°…áÀ ë$ˆYP÷æA~pÖó¼mjùmQbYª~ÙÐ÷»®ôìÔÉòí{ä˜;8Û55½)Ö¢ât~û)AºJk‚ s¡•È›£þîêåáʼ°ÅʬlçXgé#rí˜ÊÁa˜‹ØE V£¬›¸3LhtÂÜ¡Á©´Ð2Šò´BãBm{™ø‡ìS#šÒysüàe‰C•èÍè×–§¨ˆáO6çÁ<œåGt†¹7^žƒc¹¥Y$,f’±Gð³-“››*ZÆuŸŒZþŸ§XþLTÛ&½Z¹fË玈Ïsˆ0wÑË$;/ï}/7ñ8¬«yA´+²s¦.ª(™hÔ¨ªÍ±¿÷â†*2d)nÐ9pG É“†y‰aÐ2¬cwgfš›ÖÄUK–C­òG–®OasN—SïjóëcG{ýÙu„,ò>xdeXŽR?dN)ˆÝSq/¦¦H=Ñu6‘…ºÆæ+MÄ)gã²Åæ–Èðk²C˜³aÈ`º™w·W!‹oÎ&Ü~iÛþþý )Îõ¥ÁUÓIë€ràÕu-¬„÷U ò0&ÊdÿîŽD@«·Q4ÔRW±ÆsE¬KFš…§Ìmû—¨H>—v¿ ·Ï„ƒk”aãq7&-Ål‹ä-‹"@ô‡lš ϵdB©žÜŒ!䦑37äìÎw\§ßW¯<ó÷æyTŸ^…'žFiRkEø’"„ïëq2FÈõzÊa8ЉKî'³Iz‰?'öžËô›‹çÞ{´¤üÓf~§*Ýa Jò¼4)úªTräýå(}LNSëôgsš f8(4‡ßwzendstream endobj 300 0 obj << /Filter /FlateDecode /Length1 2636 /Length2 23038 /Length3 0 /Length 24521 >> stream xÚŒ·T”‹. "Ý5tI—tw·tÍÐݤ„tJ7H7HHwwwç÷Þçè>ÿ¿Ö½‹µ`ž7Ÿ·¾o  QT¡2±5ŠÛ‚œè™˜¸"rÊÌL&&V&& U 'kà?b u ƒ£…-ˆû ¡X&jè¶“³¤­̬fnfNn&& × m¸¢†.&9€´-èˆ@!bkçî`afîNóŸjc3绿ÜB6@ cC@ÎÐÉhÎhlh P±5¶:¹ÿ+5¯¹““7#£««+ƒ¡#ƒ­ƒ?Í;€«…“9@ètpš~ 7´þ]@ÕÜÂño¹Š­©“«¡X[AŽ`g ÐNP‘’(ØAËþmððOoÌ Ìÿ ÷÷¯@ ¿œ mmì Aî 3€©…5  .Ëàäæô`2ùehhíh ö7t1´°64üÅÜ .¤0øOyŽÆvNŽ ŽÖ¿JdüÜe1‰ˆ­ ääˆð‹Ÿ¨…ÐÜvwÆ¿'k²uyþL-@&¦¿Š0q¶cTYØ;¥Dÿ1‹~ËÌ€Nv&&&N.VÐt36gü^ÕÝø—’ù—\·§­À\ÐÛÂþƒàéhè898½=ÿTü!03L,ŒF@3 Âïè`1Ðôo ¾ƒ…@› ¼{̦_?ÿý¤ ^/[µûoó¿æË(%-¤!¯J÷wÅÿÕ Ûº<éÙ˜ô,ìLæ_KÆ þàýï0ІÿÐøÃW dj àú›-¸MÿaìòÏPÿs4€Ç’·o-@ý{Éu˜Ø™ŒÁ¿˜ÿŸWý/—ÿ¿ ÿåÿ¶äÿKHÜÙÚú/5õ_úÿÚÐÆÂÚýðÒ:;@Î| ÿ5Õþ}´r@ g›ÿÕJ9‚Adfýß6Z8Š[¸M-œŒÍÿÞ–¿åj¿®ÌÚT´u´øõXЃGó?:ði[Žà•üK_οSŠŒmM~ ;ÀÐÁÁÐYC•ï~c¸£àÑõ]‰”(Uþœ\¯Ìo¨×œî¬h~7n•Ÿ ÖÇ«z?–¯­ ·ÔoÒQ–¢)Ò· Èô[êÕÏžñ„ñUTo¿y¬BtÏŒoüÛ ÷´.×)dëið°G¦@YÇR’Ìlø¥^¬ðQG†?›†7,«¹ ÕÎT§M~®öA “½neeÂà9”äS¥/ËæÓa¼LÇgZ®{dÞÇ4ðU8ê|]Ƹâ .åÓéЄ$_SÛ‡Ý~äøœ5î&‘£ê+ÅO ÇÝ´¨¤˜NÈ$™CeÀ®ÖÎLE½ÜÈ÷¥!‰4 þg¼‹±Á;E…Ñÿ5&ñL]‘U,‡$ˆž»• uõyTè­4r%Ì\ÏWéi§ÊnONØOÕdþê£Ý£SÓ’SøñŒÅƒoÅgÌ\IÅÙb\ÏTÂȽ*_üm•xGvF’Ç |¾ñf13{Á¥¼ð6ïÙœÔÖßͦ/˜Ÿ.g­”ïùÁÕÕUU¥ à\p&`!êeÃhn»xï¦ÈËÆ#;¿Ï¥’!xÿr%V¬]uužÙœ–á°‰·Hh ™«ïZÞ¿/& <ì 6ËâÓá[$_½—¿UÍ1zHŽmS÷¶¦¶6«è̘7/Z"iØ-™Jœú¡³ötgȦČ]5ä(åZ·WÏo(ÊÄ9êY}q4‰N½õˆí„{]ž»“Ç=M ›é«zZ„ÿ¥$ÐE^´-BN‚“‹\JÖâ™2^hÖ  dÍá* #®PwÎ+¿u 8œ§-$„3èï»ÊxS»§I5¹`ØõMµûŒêƒƒïäJ #HôJZ6 Ž:QáëNöÑT„ò:yBOñº•…S=«4£å.оÖ‘le®.Ü‚ažZdc¯çcšËú‰ìÊbÓö¶øKædr_t¡—cÇÏ]ß/ÎAZ+P´)Í|Å7ƒŽW§¶iF‚ž±îÓˆp$""ÄžØÆp ¾ZßOˆ¶™°Aˆ«FvÁfŽŠÉ&äôc:ו#“i”²¼víÐh ÈÖèo¼}ÒjßïÞ3 ô$~£3éóp/r $^Óÿ*ìQ1šrÉ"à2Ùûjÿ¢åj&´û¤a.É{Ü©<„Ä…P3×9’×p·œ[âðš‚î*º>gÁY¯RÊï¬m…§÷Êâá‰3\H˜îvëÃÅÞ,­Ü‹­j‡˜Þ*º±ùIgczí¿Öx¬åY šÆ@ÑD'e¾dŸ»xܾ]“Ô!(Õ†½eNI92f—¿å*±ãgá”n~º¨sd„:ÿfF}Y솩ôî­¿vÅúûáx ÇÞnber.] ʰ{÷ ‹:Üp—=Ë®k¢Ùea=BeaCëö·ýìÍ î¯ìr…•Ð+ÛÇ 'á¯Ñ£›Ë‘ëð}‹-ó‚W{çrH¼— ŽD)5üúK6§•>4’ÃJ®î 9Iå•·ÀûöO1Ìiœ ΂0KQô/A‹þ]pHm NBò0ô²H Äˆ$ýe,=ýà3Œ¸:ŸL¬ï1hvÓÙßÉZV„9þC€}/ Á>v¦Ç~<ß_`3bÔƒYD…®ƒ W‘¹Û‡8ðJ…e‘µT:Qn~0è³5õÙD9Qp@i‹ÑÆNž]†Rã îEÓ½0»l.™X¾ªÕ8QÉæ¥æÝÞÛ³Ó}Y‹¡#ù‘¨ùùpâŽdR nRs«h" W†b×8_¬²áè!OxnHJßO–ù@v1Ñ„jþvH[)DÖ¼D“~+ÀGÅáÙÝ §¨)Q<5ÊCÄE  ]<†­ ,Èî·´2F‡p›˘ÑX? *iúeÃÓ3Àm1a›¡‹~tº²2ç§URżueb%ïÎ|jÕ9ð騦¸GšA}_½À— )cAIÊDÞ˜–¸ch  â=º†xΆzu kï…a¹‰»{Ë÷ÙF¦1I®Û)Lb€ÑO¹çékŒ¦Þ¬+‰i? ú6H%ŠQËw¨LåÇ^OÐP{ò~¼®«oÐì©‹ÒCô›œ¡°î#‘l;‰P|Ž&Ö¿ûÁ³úuäÜ7v]ºÁ%çíWÝE2ò¹×%È T"æþì)¼A*8O„ÍG?ª:ÏãËq2àS Ëjýè1R„|ÃCö¬m5 kå¨Ïc` ê É fFAšž– ¬^Ö¯\+ š¨¤¬³Ÿ|W«I¶js®&»=¾ÀŠU&ŸðØîê!úÏš(XAdÔ§mØÝÞ¿)ïì¾Hîpž¸tñÙÁÔÛØ¾›Ž½Ó݇äiIw*ãÿ¶ãð­Ú»rÈ6§lšm nÉóì6…àžê } ‚ÿ¡¸zÛ³ý(,™óîj½wØÚYG`fpš¤–EŒÚ‘ËlҨdžÎêá(w ?yÕõ†o¬|8VZl0¤ãn±è'Xƒn-6f$?ù›þ |²jPf8H»zr¡òë³a@£VÙèmš³v$ÆáŒÇúòFójZ¤¦¼×f¯Nï[¥„3»¾DÚëÛº9æ‚d'ÆÈIÄçÕ¨¡õS„U¶ÕÌå 0ýQ~o;XºmÓ3.srÂû¢^H]Á¹;ƒY½ñF ™köRØ<×¾ƒfèM)û¡"VS¡€MT ç2¿®¥ÍîóÖ±“Ãq4M”=BÑ«ky¢×ÊùPK€x!'Ô7ô%ŸÞaЬ7–ä 4™¯ÿäÒž,t~SÙÁᒉà BíQ•)6ü@¾éj6ÿM!P{ý•[¾}_`®;´uâK‹% »la‰T‡q·—9Qy¬‡è:ºÚÏ®O®ÍšQt­OeZÜ#';=?ózÓ™ÛÏë¬}ç€ø}η‚¯ð¼ Ë‰1§ÃvkS¿ëÍsà3fº=žæ ô#…kWŽ„£Œ· ‰eæv¹âuÂá¿Éñض8—5 ÂFó¶¬Ú|È ßòîõuCÞ>Ñøó:e êÌ¢}ëù¶ÒZ@«Øã"âó ZÃÎû#b;zÙ1Êþܨ~€AmE—Aâ—ã¥öÇ&—Íßõt?ÒÆaN?) ®É™Ó-´´-eÚ’ÂGͪÁ·xŒ]˜í› nFr®ÏKáíFÿpï¾ÔPR6úêž¶åU¿Ùõ ›ÀÝ®OlE’©Ã_ÒfÎSõ:Gíe¶_Ó“ÕŽ.|ÞÜäÇÅròÒ|Ï»H‘}Ê|ÕTT.ÄIºç)¢ÌËÈâô$×Ûwyç¸Uà÷`Å%õá2Î4·8} jýåçÓú\Á±ÃÂD”~†ý5’ŽÑnRZéηóšD•p»0'– H„”ãsB»ÒoèJ·ÃÚ›áÐæÑø®ås¶È9\¾ªà©j¢~$[À©Mza)<ÞHƒøIu}xÓ}ç+Žm¢.!;ýŽn˳Lâ9oU±¡Ø¾¶zàÒ<²¹ìîN‹¨Ì#H´ØIð ë -5-kWnVß’†WÃÜ`S®%ŒÿeæËÀ‹ÏpõH]TzÊ+©©é²÷X¡ˆCx?öwÕ~¡þ]DSœ§Wɹq ŠÞ<0á¤-2×d#±ªÙõoÅoîuvðžnô&ã¡ñ yRà;¼ö•¢:=H’Γ/J½O£ÉTJ¬ýF$vÂ2;*©ÈÙ‰]It¤¹©1@ÿU|ML.vF7µ_øãz9„î ¯RãöºÏ6”¹ÞÑÆÞÐa•onÙ|Ÿ§IëX!„ŽÅ>±-—Cü°š'Èã‡7‡ŠîŸ¢þÆ–ÿÇ:U@‹’ªR¾¼²vaø‚mÞ“†G ƒÉ÷µr§QGéŠJPï/Û²ñVºþʽMPæ ˆý]{F6å¢Ç$@f¨) éæú.ªxxsIXØîÔ1Šÿ Q‹ìÍG¤Ïª?3Ú‡ë0uœ“§gP1Æ ×XzðUÔx^ÕCz÷¹%Ž¢ ¥ÆêÒÆì{°°ß\÷ɲ‘Ÿ±,ˆWÖ¸òά­rÒ¼-+Õïž{Ô!5zq2«ØlmÚ˜\¹ÄÞv²ª³{ätì£Î‡4ØB¹ˆ“ûŒ±þ•U=ísZóUĆ‹Ø6—ñ§ÛÊø›íÉŽ{ÊÊ›Z~ïÌžz`kdkOùåô"èô¾ØÊæÙ´stœ‹§96‘º}p3[Ñj‘ËA;c&Ò®þbùžÙp ¹K¢|@»*gE U øá~f]ƒ ß§†S€sQF¡ p ®äÛr6q´.pUÁš£óNh”üél45ÞœwŽe°Z¬D˜3ŒL vUˆ¬†:ù€uOYPfíó‰u?é†cb²!Ê´O¢:ÿc‚Õ:FYX;ÆÑ.”vQ ¢f,,ïÔo$÷6ÚHƒ%avz¯ö×Hè©´b?‹j«uu45Zt¬pãÄ»ßI)!}Ñ:d–Z]JP¢ÂO±Uͬe 2Dk1€]‹:T¸‡çµ¾¸ñ5“üÆóÆF…=…”â^RHÄZ3°–t¢ø'©»r\]ˆpñL(?ô‰6£È²ûÍLì6$MÙ¡ÝY/Lw¤¡ÞcþUgRòJj á–¥ós¡RJ¯9ÃBD¹qº÷ß¾0Ž78X]™”mÐi•zÑ>è ¼˜jóhl"E] çz†êÑjAX³r«¸¯¹zB/µo½D\i¿÷–>Pù>êúÜRtc’z^ú‚&ðЯ±T ׃6f—™ŽLÇÀëö_#!¹QLªÚŠ©öìzàƒŒ“Ÿ<ò-¾%F¹°c‰Y zöõüM)¼ËDq™h ˜é€' —ÕÀ®&¶Ñ wÓ 8»$vŸ±²|½–loÏѬò™QÙ‚‹wû9©Ë¢¹Ìy³¥Û)ß·ÙÑÆJk–Ìn–&+Uø<؉Kt¬¢N 5¬1Ĺ˜µŸ²+3&4k%”Kª"ïNT`“>?Æt÷ÌÈõ(`öÜ©!"Ù±FQ ·ÅÆûm§‘ÇQ– @ÀHE†²#zœ$T†‰Ü¼ú„ bì†ï#Lúëjê2¿¸7âÍ9°7í‰êlÅ{Á;BBô—IJTŠ.”?²ƒ:i$–_SSî#UFÂ÷=¹[?m1·|aýž3S5“u-+í©†m€Ÿvß"lÛè‰f_/qÍ>Úa!|Z¥¼^š’…:ŠŽU4ÜK»Ü8F:<1¾–ù‹«F5¾£ö5QOÊÁ­dgžË°€–ÎÉ{Éúk€…¢¯ƒJ:Ä]6¢Ïy™U¤ZÒÝ'ñ¨ø­ÝÇ7=9$’%–Jã$„]Q"HÙ/'®çØ7µ¯Û«Sœ,fø=`Ii ú¥GæVé3‡÷ÎjÃ-.nƒŸ“Ö ß—ËZ÷^Ÿx¬CgæŽxB®k¼ÿyÒrêo»½Sþ£) d¿";Þ™‘4ÄŒ9ÍÈèÆÄžUüüq^C/ÎÊ´qøؕà áêíOh¿†ÈO!]åT†Œë|½’ëcÅ6{É,ùûi»ˆ[£ovÐÄt¨ÑM á&!dùšéJaÊ>š>Û1éí£°Ššn¼Îù.I» Ñ—{Ù¿ óþbF~L%8’Þ/´i³Œw’íi%Í$«tdþáÌ%~ü 8¥‰Æ2x.q ËœÆXܘíÂÏPÉËþºœísiô[­h²gÏ”G5Yì¤/¥ ˜gŽ^РdC.—¦÷úsÛ l>oø^:¬¼f,–BLe"«ŒÄnñ^Ûæöö3@Lз5Œ¬×#Õ¥™T)íøâ<å?>»]CL‰œÑÎrpP)î!VŸ•™¼¢’ÆG˜éZŒë¡_%YæÔr¢Š+ðQZÏ´×ÀÎgÖóp—r§ïv›ÄíY&‡"‡É´£w¨æ0;’³‹z‹MmÁšuÓÚiî® çð›ð%äZ1öɨh~Oœ ohꎈÐ/³–J„¤`šƒXÒ¯+%û¾ínL#õ@´¶|oø]¶ƒds;L÷ù" ¿?nü]‰¨åÇÅqÊ ÈÓ·0—òÏ‚GÞ•5€Û¡ÂÀŸ„_ÆaL*y]/ñ–¡‹Sa¥¨b]÷´ñQð)·£V‡pÕ ø’+³G £E™ Oþ¥ŒQÓ~yïø.„”æÔ+^ºn«a¤+Lw8¢j]P‚k{8,«;FÓ¦Q:b°[]Ô¸~TZ­‡ÚDYEÄ"eôÍ‘…†9ÏæõØv¨*ÍH™Ó`  Ÿ/¸zÎ ç?wtáÂÅ(Ì&¢õàv»ù»_Y®›b ¾,¾þL±¶¡qÕѽý+õÎð¤DõΣ)éÐ?â!0Ófb¦" G„^¹Ç/àÎP$+ÓŽb@ Çymm÷,Ÿ¼'‰¶¢ØÌOsë>OÀ‚H YgVsD0±‚ðHݪš(H€$5ãNúæ«è>^ML´ÐË+ÐõWé/6vPÛ dyiƒSJq?"£Â_;"B=Áa ¶ýDk«¡°]d÷"´› l¿+y•²«¯ø®ñùTüÈPec¬aÕ1¶›,E/–+‹;Á¥•t?šõé•m¤}k•DÅxãúšœ¦–0.sž,PKŸä*4ᇣ?¼ˆ´à†‰§“‘¤uL¬­Q_?'Ø4­ìýü}ÀúônÀ;Z§WC®y̆$½6[Z¹õÓ<9¯(ô•Êíä?â•)o ièè>³):+°¸²0,~ó |:™´Ã« ŽbºÕ¥›B‘†[ìP¢º³ØÏ…|ïÝÿ4 %©S3P®ÂáœÓqoKJî½Kä:Ú3]_ƒ?¬¹îôV- ÓïÝËÊŸk9Ìx¶ü}‰ÍRÀ±}^ÞžÔà±7à›šô×L,’ždŠÈŽc& Åg¥s±Ûgh6×åe|¹*â»oçàÿˆŠÔpAº‘V”Yî?.3”J#:é–•â ¢ÞÎEßš™dBÀ”8>Ö Šn$d—Q“CÄiÌÏB¾¹5Ævw÷]«ºV¤å¹C·F§>é¼"ù¨eS&îÈd¬qòêQ¾ÄX­nÅÓe,)ÈÖY¼b߯õ'ŒF‡µåt¢u¯öA5Ÿ¼}󰨘qí5_}çÇãCVn»öôìk Ý«¤ÜQòZƒš³aä0¶·þãU?^@3¬‚W>egz±+t]_oôD†Z´¿[ì)“dT(›õ ê7TNÊù·ZB;e<[^$}ñô34ÑT+Äja¡dσ¿‰j¥,'E =©“B—ˆ¼ ³oÉóoÄæ¸®£HaævjûÖ¸0Õ‰|û<$®ôó¶ V®7-J•l;gä´ŠmW“[>%››=…>°)}‰ž"»@).'«TÌà+ý£ß2¤T¤prÿ~dWl”.- õhû“¸E†Æ%•ÇãösxÒB}~e åIA5IÎwF¤ þΧ6Å–qjHˆÓÓ±UõÄürPÉÂW*‡ó̸q®g&cÐrk–e“ãåi#H«5¾’¼‘.%~ uÖwfU‹ž¤£ÛûyíÍù“†¹û«SÎé¼ò~¤I¿÷ Kç·‘pÈ‹[%_ƒÉ ¢„4˜´Üò¥{–7^{뇘±%þ$‰©+¨ÔÔ|å­ØŽb"yà¾e&D¿>6lZ]ÚûÁŸ%_Ä‘ž÷ H×ħÑâ~fĹ¿Óq7në.(¦Êš öʇÑDV\kn@©ZÖü„©%{ ÎX˜LÃÅ_]'Üþ—ëárÓêî;¢âɾ·ú‘$¯ïr=²ø‚hM“9U'Žbý;ö1™»R °Á|tL|,ñi÷rr±é÷pĹëÅmn2‰ŸSšŒxÏË›—;uìG|çS ·p<@vtG×2öhre¿mQ¨šrŒœ¦¨ H #(ô¶¾q÷Rø¬‰AÐõ­BzδÏx»Öw••³ŽI®g«ÒuŠéc#7,ÒÚÉq±‚OŸ¤“lf;ÍôøP~ÚÔÞì»­ ¼8=Fq¥Þ/7“¦oM“Ž ÿt»øš×§â;ãÍãÒ£Yß»ì6“ìÙ’Kù³W{fÈ`¯,÷;y«Ç9¡5Šúób$U¬(O§ë$.vùz,‚Ó|}f^˜];cxQ‚Eíæˆ«TkÈêaÚ öSã¼ÂÓìné¢]”ÿ¨ƒ×Úw±YY™ÅÄl†K±áS¨3ʈ-ÎíþÅ$9¶u;ǘD{©C6©ŸHE`zJÃ?âG¤¢Éy?p†ÌL7Ÿ­ÜærÌмD˜Ø°#ZžŒî¬¶•§¨‘9ˆ$8ô ¥@ 0ªI‘„ÿ.àè.UÅö`4[g`Ë+Àų°¡—fïé‹Vv5,–š‹_ÂÞ“½u¹$†Æñº•¾V¼{÷ÔšL•YMƒ€½±7½&Jt»6 GI~›éáán$eÝ;]¤OYÚŽàD œûÂIdÝ8ÐЉF7ZG À­—s\¸K—×L0¼Ÿ´Âû"Ÿ÷æšàí2´Ô'¼]3ÖD3ƒr ¿)²ƒÝË÷d®sp*èÎ^)ññ4oò™Ž#u©µ¿3Ì ×½©¨Jd†sÓÁ€XAFæ~†žÓQ>j/§ûô™tEи%®È™l÷[U.wKó¬(fŽXaËÉ©›WúJR™Èjà:RÄ+§^õä¶¼Ë/Ø4o`†*`]ã~2;i¦PKHô0ïÚ\cÌT7DGìNQ]£¯á™ ÙøA&\l¶{Aöe€ÀˆçÉ—8²/ˆËjóAD9¶ m›toÕú£ŸÜ.´‚̯ÏɧПqYa›<°ždÔO]ßΑ2Û3ísºß<³tŠªÇCÌiq«£@¨¾C½(k#Z,4ÛFÖ„ùº°u@éûÚVé6ß¾¢‹…†›`z;ßÒil,E8ʼ­Ÿ»ÍppÄÚVê°—@›oHuO%•[ô^ìTKúC?ûQÝ‘­ÔyZ@Ò@ãâ@_w'y¥€õU Â1ŠUª–WTÖ›Áü,"´­FÁR:.Î_VÆ-*Lü·O(“SœqBÝn_ÂbÌSÚH¸-™;5Þ‘#¤žïáòýpyNèðFÄÉœ})f-½é‚µë«E¹vµv~œã¸®ÍÒ[.ïž\ý–[üÞù™ñ¤­ò‰’@c>KÀè˜ןãÊ âp½vîý0³ÑÛ¥e,ð)?óÕ›©ŽLllå‹’B²­-²³cvã4‘/¥äx&ÛuVˤÁ2¦í&õwªË<±‹.þUTU¾]åýjÙ¢‚³ÏÂÜ#ÓA0ÂÓÀæ5 <Êæpa«k·Õµ¹%ˆ“Q†ˆvëL·ö8‰ú=kDûìa(RvƒòÆMÓ'e˜º~òkEtFž¡Èfs°>D§N ÷£±[´ßð¿&–¼O°Âóœý!úr`¤Wë¦Yò¡¶©…8ž8ñò:“ºû&¯Q×[„©rTÕˆ4Þ~ØäÃm­ Cq <¬“zæ<ÖêøÜˆ[(g⬑D‹ç”9áê 2Ûë].®¤ta7*`üõ%uL‘XÏàFáË&?ƒ.Šü•eÊV›+g¯Púò›¸ÅÄ.¾tؤ}Ëâ±¹J4O Zùm }È¡¤ºÜ'.F\W.¼W¬§]Êå92ó·Ý­w“"tÈqêc%sü2ºð·ÜKŒùï.ªŽÌ4Ÿ• Ò´ZrŸ¡›ÆÄRçÞav¥.p«Éâw^Ó¼‘ ¶[EZ ,ôY”ˆÕLošN‡)[6Z°“L*-ÙsÁÈÃvݤSÁ]é†xºŒ`: ’%òÝt²9¤ '·?°…&N<„ª§báÐÁÉ„±-vše•_¬w¶}è]Bñÿ!¶Z*ÕüIv,…¾Ó$_8%GU²dc¸Âöäk¥’¸®üz¯Ik}qo3Uã…<ŰG>Á§ Ý®Ùè«í}Dlº_Á»Ü/QºrO›Œ# M‰Tå)¦R¡£¿Àû)v ‹Ï¾Ç ¯ìáì—¾Žá÷è·È®«ØÉþ1GÀ¦­²rÆæ-Zõn3ßz^@.+7üªÕí!0‡uÇŠæõ<' eòìºs«ÞDÁ÷T}Ú§Xˆ£³•ÐxËUŸj13& Ô”Ç^í:‚ÅÁ”õOõL‘¤ÓÜ›vƒ2 _6µ­`o8â™Å£h›ÑÆlL¢,^E3©‹82ÏZUWµ÷¢kþÑ’û6 #ΰZ¬GŽ ZV_åêæK«i>×Lá!·EYOô…`æŸ.O%¢nyQŸ£Ü^Cý4}UÝ-è¾?†ý0î», é:¨ÜölñUjZ§oAX$¿%*=ç8Ü}w8³ñcßÞ¿bj$ü-üÅí¢Q†/@À‘f_äpzøØÆ?2¾nÜc‘¸3}eÑ\b%XËêÞ53O°SCF¬ uò¼W¿LþcXˆyRýU™F^qyëÔª}õ™h¯‹'5@qC8)ù}7Z$äçãž©*a£§NÙg»¯W~tCÑ—fƒ ¢æhOæ™ÂšSá£:”|Ô¢ALB‡B²£½L8ÍøN³è± ’¥ÝŸiS3÷ 0HœÏÍæ®—¯ÍDk*Ûì6×g™êÊ…¨NjŠ|Õ¸/Àgÿ¯£ë9…Z ^ ¢ë õœ§¯€îŠ:Žæ¦tßfS¾§V|Ú øÄˆÙ¬ô ÷3¶µZÒiuôBàw÷&D¡y¡Ow)íChÁ]ëeÿ¼yd™Õç§%OÐe۱ˋK­ló C{Q§Åòv!rðêÂç˹ËÌXm)Sç]½\§ô vÇBç\%à³åÒ¡@PÂin÷§“:FóÆóóƒ'J]eFJì\ö§52Úu¡A­f†¡ÃÜQ¨ÉMèÉV>%¯ÀXÜMªÜ:;u&‚#ú+Úñd]MhYÜ@V £Bˆcñ¡—¾¹]—錤ï$tmïjÃþ›q2PüïYò1ÖÆ(93¸›Ø:á•“YštEx¸Ys  wû:êx¯`ºFâvu_«m†’RH5]»?£iÂý¤ åqx+Óâµ=?Ï„4b‹4;—\X…÷­’ë>VcúÑ«|ÕOp1É´%—Lg§9ÃBßx« háÞÇ^›§±DE‡{—ÓÞ3B+Í«dô*Wbà ‰õ7ð/UœDèÅ å’)ÑÕRïqd§LNªdKU_ÞRÓK»ÂcÑë'Í vÒÖÙËèç‘>Oò¿ìP~—µ’Q¹_¾| áÑ\Èð‰Èáφ‚‘D¿©æOáaÎLwˆT ¾Nuбžü )ïýS÷¤EÇ´È&‡ÒG²ùµ8·LÍ}Y° Ä!ëcúáùP`(©¹æ6&n)t'Í"“Fzåíö/-#zÉèJº!)Bû§ˆBXò•váZ+×Þ’×JЈª;™Í+g9’³7™÷y[²É3vóú̱ÁB؆dÙcÜ‚ì7V™2Çzý:ÔåjFnÌk³¼8?Èô™,}bgœ’}Nc8ì!˜’iÖ[q×Õént’|íG3p[«¯+Ö&ì"yò\)T DTñ¼‰ûˆ)ÆM3GAôøFÿË4.{<Ù¬šà›’ió™ÞÙì¡çP§Á¼â¬ýä¢õN¼¥™Õb¶×œWw²*ÝžÏøˆD‹¤þ–cßyÝ‚;—4Aâ’¡×·ZøièS‘ÓDüè“Ü—±ªéZU¢¬½€É¯—]~ˆiøÍÇÇcê)ç•K¾­ÍÞg·ËY¢j“ÜsÆlI!K·,0vQú‹¸Éj *&>W‡ BÙGNbÁR†°+V¢Êð©ôÅf/†)¶äŸ‚ ¾Â\ˆlz°=zÄ["p‹ú‡qf̤»~oÍ„ºKªœƒºð…bëzĶѹæÚàšØòˆ¥RFÊ,5m‘‹Õ‘D-SœÛeÙ›ôäù@ÁÎ:mwÔ¤1d²ÍTºXŒ—úr½·Ýínkcî@|m´~KÛ(F™óGüz4®„!xÒM6.—4óòëf'`¶'\búlà¥Y•du½ß©€fÔôÎü ¶H1uþ'\âðP›ZZnÙ)2‰¼äu&~3[ÜØû± ˜é­R,†ƒËo VyÑXÔÊæbPö¥sùØQ¹ $H¦yEADTÑx·¥Þ:ëŽoîþØ3ƒÙ¤ÈThÚüb¥B€M|²ÿ b|eñ‹¡Ñyô®!ƒó»2I3fÊÈÑåÞ¯A"ŸR­ö¤Kâò~ÒÏèž mX¦ÃŒ ‡`ä¯"ìÉ]ŠoÙo$ëõS\˜R Ða/ÙòrÜ@= ž’H >®¢\Æ>§M¿ñ-cɲÈ.b4rLN}@ Î8ÐÒ¼-ØÛR,Ñ6¾n¤”µŽïy*{[.‘Ù)‰S‡-­_èÆ‰EÇÀ¯Ä»<¬iÐ_Ð,ø˜¬T¹(Éá§ÅðM l%~£þÇϲSNÖl¿oVCû™ëTf46¤Sœ¥¸‰EuÓ^<ô·R×Ê:›Ø.>r†°EÙÉÉÚa^?b8xc–AËÞgîË7¥’rµ _4_HMÞƒ&˜¼,Ž÷Eš*ä~àGFTZ±³·eZ´lŽ7ÑéoÔG:%KHTW'G 0eå£ßÅäåS¾×öùIp Óç¯COÓ™#H•ùà=¨Ü¨\vV¼V(>ùF”ì‰. q„¾sbºÊjæ ¡_}‰šáPîøÁĨF\¢Ù8…>ÏéÓë­á^Æý“—~|Û»ìÒF¶Ä3 [„Åsx¥Ã§öUêH ­æXèø‹W±ª$ûT÷ùäî¦ÎåÞ)_-“š“ècìTô‡‘rˆ}Þ lÚ¾é ˆKr!Yªí8¾³&æ;1JENoQ]sûËŸŸ÷wp[õ7¤ŒÌOà µcg(´Í¤–\6Dîr¸ö™|aVòoÈï ôjƒ^žË©–™=ů æc“ø±!Ïâ…½»áœbhâ6eeéøªo>q/bKcëÆcá¿ ùQО¯}ZÖ#xaD½ª…¥Ø¾Fœ•L.Þâ3qìŸØaI‰E«öbò•Éö•*ë°òSJkwVv žp‰ö PxÏ]#3‘p»¾TL£èuŽÄ‘Ö»Ag™¸ç‘)þ3ºn…¨ˆkÆÈ$ŒŽ‰}xa‰Pu÷©—â9KG¡nG“| $W¾ËtUä¼SEQ1û ß½( ×7»ïøëŒµmׂÎá Êcyus<‡Lwbmáùî$'¥’9ŸúB¦0¨HŠm´S§žæÃáÛS£½ DT6G| Ï}’žÊPº;ÆgÍ‹ËSU­ƒ<°Ð²×0\W Þ3•©¡‹´—­9«B•B¼Þ’òf\5 é‚U¶ÂñXÛ^ÕÕ{‚F‚r.d\sþLòB7ŽÖž‘ýXqÓMy½K˜;òo]qŒ–lš¸Ÿ¾G&…Ä+™GÇæÑódqaKh‘ù ýØì –Ž>œ Õ ÇmEìÙpœŸA›mÄ¡)|jL—EÀtMKÇ×ÒXiÐíÆ®ÀçÖ2ÂÎ|`³8´ð;yúÑþâò.¿YWb¼Ï.s ×&È£•—öZe ã+í·Ûø3è}¸Z &^¡Ü9³ÂÄ&mÆ!^¼­ Æÿýâ :5D2­ô`?¢ N•,xl¢¿y_{q1*rðSC2K q{cCo—h¶j„H§À°Â$¢ýâ/é:›Æ£—2Ï)kTòè*ß=‚klhêºâ½CP Ô]M,ò#u•e»g›Ldïé„ùqÐ)f½q³>‘œ€y·'ö¥(4L@‰‚,Ƙ µ†îaåþZQQ£Ü%½ò¢L ㄆAZB qþA#eùès5 Zâo¾²KL+‘ƒÍL6Œ1Ñò(}Îïx¶7x–jìeÛpˆ%üE2²ª½Š 9‡(PLÏ”ÿ~ìG_»¨Eλ#2qÚŽWÆn^›FËS+é𜬭“úNQ¬íIRÝæ€d#’(ùk@"J½O>'QÑÀ°xÁªÆýìÁ•Õj~Ã3A0¦br8PÖõ( 5ÂT†êqžóÈb½9‡é‚­“:yŽOš^Ÿ$¯8''›É ¼®«‰ìY/›}6qiÞ%…ôÁWòWë+)(8§õ¢mi«™F3¥x³‹6ϳkáÿl–]ÉÚ-Ïä4úØV–ÄA%ˆ6©æ·<Ðågâ±ÞõPµÐXÚ¸‰»   `8F‘$»ª+î…nרϿ‚´+ËcÝÌèpwçTþ-Ÿ—WyNr>È[X„ÍXÎtZ•à$ñæ\„}1øôW–;S“Ã%:ܵh‘…µåïw]b[d¬Â—¬ÕN®ÓÓÆNXܺà†©KZý¥>¢Õ3Û¿þE{H)&Ä,—}_)þµ]ùfÌqý^¾©næG q|Pæ÷Ú œH¤Q U±Êjû¤ˆlK¿’w”ycžräé×l’ɽ`v q*Û0R@äRƒŠ?:ΙmàØš¦ËRZ9Þ‘v Mtldq£ ¦p4Ôò—µ\7<E›|?y‘×W·QØåÕ±ã4[Ú¿ßé]˜:úÝkÆ*;g¤ ]¤·ôe‚Vñ ¹ ?ÍÛ‘I¬ÔÛ¹üm Ê Gkò¶,{Ñ .f0:†ÏÈÊÿêq“æê(W&J)zða7´Ú‰vÆ“i})`<ý¢ÿª¤@êUf(`ü€1^ø9wõ§ãÿGÄ?ÆÚ Çf¯UX%JZCȃº¥_Ò»ŽèÈLo·æ¡iÌ3¶ ~ußÏ.‘-¾â)DCHZMÌ ¨]ËŽM\ªúÈf’¥ÝÎð»r ˆîrÎeÚ÷†5ýYÈgÙ‰-˜çÒ$¡.$ûëãÑÓUûPí!üѦ¼27^ ž°{Mœ$'°–±*ß5•ôhÒ=~Û“»üesõÀæ9\Å+%æKù ÆúµàJÞs¼ Ç,÷»G}—ó)&7wо×H£w’Ú&*’¥ªlö¯Ê]*Æ&- £•u²jápu wÑsPÉ¿8wÁ•‡Ó’ÌãIgOWmÅ£!3¦‰;ÿ½†­#37jšrî×ÊŸQÇ‹OKr­>þ¸O­ +1væõéµW__±4aû^ׄSðyw@qh—öï´kÄ”øŒ¬auèÀd+FB#ïùÄáöù;³™0ÖŽÆ äûŸÕL ¼J;CÍ•³Ð¼9èÿ{Ju-Ï즲2LÀ"€.6? OC‰C))TõöOuxto9m€å02øƒ²YDçlõGýÈÐ,T™ºlÒWÔú´0¢‹¿Ì߇˦ô¢3Dj¾4Ûåö9ðÄð6Ÿòî´aoÞ¬}w­6ÎÅn ;pºÆl?¾€Ûç+y+”.o €¸¦ODߥ+ŸÅþݷؤǓÐ[‚Ë*úÄÍC9ùÿ|HûºDðý)¸Óûu¸v%)¤iâ˜2×¥¶Yö )ËÔT«,ö†º"F›‘E¸Ü¼É5Ýx’ÑžÁŸÿåI‹÷ÅMj?N InÈ¥´ ϦšrõUùkøÆšJ1bÐXuH'Äí4 MA÷Àé®Oj]Ÿ3ÄG?ùê—æ\eˆx‹(â*. îG±âèw†ð²r@[Õž,å¥Ðq[ÜÒÄ<ƒô6Sì6’ÈF¸ßôŽôD\žïHæxÿu¶øÆ{õT%¦R2 §âw)Í QŸµ¡ ʉšTGm»ÕviVXß¹7µP(åû™ì¡ÒÃ=o¿óŽ/:¶y“è`mX{Iwüñä«ݾªËxdD¡#f8 Ä…0 =Û¥TÞ-Æmç¤ÃÑ©§é6[ÍèÐ穌Öb®ÈQàٰ?;6˜Tl¸¦ƒÕ¡é%[5|Å«Õ1䆜_;) tºˆ‚#ÿ5³U‡±©F¯íIW úÚ£Ãë ŒQX¬j§òD5ͳwxPËloÓJvÀÂÐ~ñÒXÈõOòe) P3Ïß_9Nôã±:êÀì\øÎó[–†”±‹{>uÖ(Â#¡8}¬Öu¬¥N1‹ù3Œú¸Šÿ97ä2y$¥ å\v# L$N~@y¢í¹BÂD÷5‹ðOˆFJˆ-ZU xœ°ÿÄÄŽ®}~ðilÒn…°jr}܃3= Ž’—§©<ñ?µŠ/‡“Þ1ôš¨ kÉÝhÜüêÍ[ù„‹cSK,$ò-£⠉ǎAÝñUFoaÖß¾ÉOâÁž)Ñ'±©pxçzÌ(²ñÑ™øôpÌÊíz,i²°î !5 ïE¥Ãyp÷Jö¥yDå–•ŒyÝ ®;ÖJú ùz¼ßlYUBØUf_qÁ2âj_Nˆ3bØÑ'c0,0\øQà£#Q6¸ÜL{2}Çѱµ§SDä7+@ìÒÞ#ÓµR·îö>wT›e¤º×’¾EÔ2¬CÜ”wcmÕÕ7ÅVðô°Š&MN8SË6ª˜³}åˆúèŒYwa±ó¨ŒÀÒ[uãl&˜ä+‘J ‘thˆ©ÜuоŒ©n÷¹‘›¾$òMØpõ#Üù"Ê¿6z8Ø–²©ä(™.[Þ™¼a§££’È1Ä?5I“˜£ÇÂ"ÞwÓS®eÞªfPuù`è€÷ú œzÜÌñN,©µê’£Lö“Êøèbñˆù` tÏHÖŸ´œŒí¸GûnhPïܼâˆ; ËÃ2Íž…ž‘Mt”ÓºÖÎAæž39Å…Ï(ú›¨Oyk.ºÄY—eØd¶—/Ù´ÈMÓ ^º"SX¸ä–‚>w¤*ÒŽ{2²f¤±;ä’ìó£cè-u¨Ož3¶9„EÂÐË'Åül|ýÒ4ðFºÏÖ%øF’VªÊõ{`žbín$2­ßë]+ödåƒmaíÞcËF°?…’¢õ¡ÂW¹Ûî'¬Ž4 Œvg ^Å™aäÅ‘©‹ ¹ðï‘~À xÉ4L§9šeQÑÙ $œÔ“7· (-‹Â€Ý¼oÿÞtöS¶Õ—îìD›®–É¥2K7_æåÑ‘éîÐÀN¹E.M¬ÇG;²‡–Ýdn§,¢¹ÍyÇ“E§æŒáË¥ÃD Îüq] ÂëֵęÂ>=[Œ$È𼕰íÕ2–M” ì8Øû„±r™oåAùê[±9TÙMn×ÐHO"¨U»Ü}¯sÕ.«¾ƒK€~øïųԡÒ ÀM—÷ÜôNg™Ú|O ˜ØÑïaÙîu}ªÒh‡MÞ#Ùød…ËÎ÷rJvÑk+Ö~Â*g-ÏTЬùý® œzæi†“ANÍïsS çEæxø¨‡ _rZL¨Tó„ǰ”*XZù콸×|‹^†¬Ö«·ÁŒBo1î-F®£ªº@d6¯"©ßqÞJ(›Öâê²CšŸë¯ÅuÝcú¤Ôçw5ŸTõn Ltª¼É½7KÝVæ÷`Œa„Ô3g½:$š RË%/3ÔRú—;SWµ=+åª#opYð8Ã.†=—í4Ùhb3¤$‡¤) ª¦#]™f’¸°¥]Óí8Ëçûõ1½ê\Wõ™TýGˆ¢mJRÙܹíª^ª¸¬k6K4ä£I±¹‚ÝÕƒ3Œdå‘UÎ~îcl_Æk^ÙÖ\}ÏçÛë ù€ÉHf»BÖž#ÑtŠWÊrÃA…-ßzÕ•L÷š=Òxâf±6ÕËE30…Þo—é©é–%v6ù2啣Л ô¸ó ,¹Fù[I"|4¥’ 9ZŽX"\]k$è ŽÃ…©ˆ£Æ§Á£b5éº<¯!n«ê6g»ìúèjF-fsך«Kzãbç²/¥ØòÜ„¸v‘¦+Î6"­åƒEÊO§sòo§ìˆÿj·ÿœŒe¯2:Ãx†Ùp³Ì=º× ó…‰Â¹'ÿ€{Å•¬¨õ–D.^– æ2x2Û”'hØ3äú1řԺ ánªv½v˜–™ÑI¡˜åŒd¿Ÿ•kštþ?l»ºãípÙáv!&~ë†ÚíH#zv²£+2”5u%»”ÞpÍ ÆÛ<äƒdà™™³8-J Fï{ËëÞk½ BHL´ˆsrÀ›/oº4û°ŽrD͈¨‘söÙ_7·Ô]¿¡÷ž_âèuL{8,7,Ç:»ŽL§ŒüAw{X–,…äXø_ q#oSˆç™£Me¡ž·6…µ…@^9dû˜‚£Ì¶ãr|À§¨d›ÿ¤Õ¹öìRä)ô²k³-N–ír¯ª½%õQæíÙ¹ÞZk‘`v2µÔ¡ýTlAÝ2­d-†QššBûK¥êPC–œÔSÚáUr. ¸[è[FÔ™kR¯C;pS·žËäŽeŠv—aÁd¯Ì1£Ëð#ÒÀaȾd]íirS(Ê)Jܸ֓Üý–6ê2¥0"VOMÁ-æ5´ü–÷?–ÜÁõKz‡S¢¯ÐS{)&ÊôäWu¥µš)|%¼ÀjÙ1d]–ì#¥ [Ž6ÒÂ:K¢GÄ…4ëÎüF‰Ï³f’uF1AWœ8fÄÿŽhõRB{&ÚN?Íâ0¶…Ss‰¦BR·t¨C|&3+‘õå?BœçA4ÆaB¶KÑÜÁ‰¨¿Æ{Gg·!N]’š-Ziù¶AÛ2£Ã(-ÓZ6>¡3E`ò2«Ú(å—I"Y£Úo>O¥”\.)¡³k6ö‹.%ûTa¶JÉõÏÿ@ÿȧ ™ÅdŽS>]ƒ5»‚"vVhD©êA»/ñj—W¢}ù—ZA2º )>°5Ä4¹ß­S´E»‘Ó÷f9¦G f‡:Eyî>¬µüš‚»Åfì%Â[›¥Q2³g³Ó†˜[ªÛpƒ»ªX­µd6.a1%ÓÉÏ?$tºJ(^Ï$ñ2M—/ÓJßy\8=nÉêT€Â ëÃþª‡Œr xyEû‰:ó·ÖtW=^;ÔÍÇ9ÛËÓæ¥ÎÞ^@&{Yw¹Ö’Ó"³³´rf´¡KáäçÆœtw¹ÜèÿŠ'¯ö¦LP;È33jM}„"ú”ø)¡¶báç„AöÑgÄ ~¨›'ª¶Bc(”­j™è#3ÞØjÖ(üZ·—LÓTøÍ81|’M]2¥F5FËòÄR[z ”ñ¦I)ÙK ,fÍ0²GÄ:»4KORŠÖ‹Wô³]¡1NnÌ ¸#ãÛû–ö§<ùnöº·ƒ,a8rhuäØóNàšC«J"ã”عÓrú#tf¤ß®l¤\Rj«—*–WZÃø?ÿF1²Ð Ì÷î2øO?áV¤…ŠW o· 5kx…ÁõÛ®C…-Ä"bÇm­|˜ß,*PÜœ‰”B>;“ípþxâ󰀊7Þ|ÓMtº­ä© ០Õñ•ÆT“"z²ÊË‹=p‘nZ7üt¸óßçÛlxøz,&ù>Émëê3é,Ý£¬l ÖÄ8Ï˛Ԟ‡ZrK {±?á6Ù’5ÜãA=ïËÁE3ÈÞÍ ‘Žz°Y‹sTæ]ägƒ?é +@ұ¾hÔõ#‹×ª]›Üc½Úúñi°`B€IÏt4f\X~Ö3»fz+Q~@s6 ”r”gÛƒj© ]'º iaG-~MAÜM =mØ^n¿k¾A@!ìYvFkxhÅ îQÛQ㺸Ð;µ[%6P¼çø2ƒmÖÆóF›B×¥ÂÒ'¾†x¢!Û³Q¹Œ$sèeƒ ú—·ø`m¨ÿ±ñ#Û—/ÿm2»…<‰dtU  2`‹efä+Û¼ó‡ŒGa:T–^"`endstream endobj 301 0 obj << /Filter /FlateDecode /Length1 1470 /Length2 6754 /Length3 0 /Length 7735 >> stream xÚwTTm×6RRJH硆NARº»`ˆb()ié–”RZ@A”îîòCŸzŸ÷ÿ×ú¾5kÍœkïk×}_û¬5Œ´ÚœRÖpKˆ<†àäá‰2ªÚÚ< âãx±u GÈ_v,F=ˆ«ý†Œ+Œ¸³É‚wDU8 PrwxøAQ!QàDþ"Â]EY°ÔPå”à0ˆ£ ÜÙÛjk‡¸«ó×#ÀbÅ ðˆˆqü¤œ ®P+0 P#ì Nw­ÀŽ€6Ü Axÿ+‹¸á,ÊÍíééÉvrã‚»ÚJ°ržP„ qƒ¸z@¬_#j`'ÈŸ£qa1:vP·?Úp„'ØÜ¡V˜Û]ˆ;Ìâ ÜU´Uugì²ÊàÏÃx¸xþN÷gô¯DPØï`°•ÜÉ ó†Âl¨#P—WáBx!80Ìúìè¿‹{€¡Ž`Ë;ÂïÖÁ€¼”&¾›ðÏùܬ\¡Î7.7¨ã¯¹¥¹;f9˜µ ÜÉ C¸aýêOê ±º;woî?/×÷„ùü…l 0k›_cX»;së .îEÙ?9w&¬l¶ „A|Ä€xYÙqÿ* ãí ùíäùe¾›ÁÏÇî ØÜñƒÚ@î~°|ÜÀáêñóùOÇ¿` µB–[( ëŸìwfˆÍøîþ]¡^€1èN~<è×çï'Ó;…YÃaŽÞÿÐ_1·¼Ž¼‚ûŸ#ÿí”–†{>œ‚<'¯„D¿§ÑCÿlã?Ba6p@änïŽé¯Ž=þ”ËŸûÁ ü;—üN¸€å›€@Vw_<ÿgµÿùÿ‰üW–ÿUçÿÝ‘¼»£ão?Ë„ÿÇv‚:zÿɸ®;ân Táw«ûoª>äÍU…XCÝþÛ«ˆß-ƒÌÖñºÉC½ ÖP„•ÝzùîûkÓ¡0ˆÜ úëÝpò€@ÿå»[/+‡»÷‡Û(» wÛóï’r0+¸õ¯5ãÀ®®`o,Жxž»}´†xý–1À̓#îB€»ñü¸+Ö¯;¸¥™~#!€ûéßH˜àÖúñÜÚÿ €[÷o$"pƒÿFS¢Íêõ‰Œ(>C©Þ ‰IZàL¦$ï`¬)§ÿ3úÈ.ŽŸ¥fç©ff²J$ÊýV(ä;zu‰û4* Ñä¢pyVÏÇ–\·¸ ö&Ôâž©ÆØª$ü1þÎIjæíübKßÑcç=¼óhòFÈo@6³ña¨lkt‰¯p}Fѱûä.âsç“}—˜žáùÙ?Zm­û¼¶AŽ.“Ÿ$óÅ©í 5CaHPò÷Šà©Ox26úªL›"úŸä"ƒe„€­º¸ô{ך÷ܰë¤A'ú»јÿÜæ>eÏYX!Ÿ` UÕkJYÊÍVáýí’\/‘±¹ÜSŠÏ–»ï}gQ*žÆy«º‹g/¾“'˜e\*ô=æ´ô"~WÛ·óæ‰ùÊ“”g˜¶¡ÄóAS¦ó'h &œaË{³ÍZ³tiÀâGps@÷ù¥1{këVñ»*Ƴ%€)B¸é‘/fø ¿:ó—7o‹N¦Ï!Õ‡WÖ²îSÜŠ0,§¯ÚnçFÖæÙBO³a¯Ž´¬8›mí±*ò¼Úù­¶ôžE ù9ïK%²2Z°öBÄxÏÈ3méÍ SÙ§âö<ó”üÞüfäwÐ0{ʈ IšEÕI ¼eLKvæÕ”ÒWq:$¬±Ï¶!›–”͸ÏöNðÙËHÝ©SÚ~ˆ†XBEXÊE¾Š½âΙ©My~¿…Yq’¨fÑE*ӞĩšvE, ò‹ê“¬§†z)§or„ÁÁ TÏA³X*ƒ'Ã7o|P2 Â…m Œ])Ö¨žøºõyPV™€‘qÎÉ_¯6gŸYÖ’ég©êi/yœÀÌ.IðìêÊìŠsFΗí)¨K¶W4W!´ÐeoçáWSf–âÎÎÛr6<‰÷·;Ÿ ü >±µ¹ÞQPQmßuRŸvÙ(Ø uª`V@§¦70¹˜­˜\µ¿2’˜¼­¾ kñ“ZQê+Ô›ŽJ„úJ؉5…©ŸàúÅ4DÍݪš÷dÇ=x&f ß99`Þ¨”ä×.ºUFnHKˆ6p=¶ø³,Ìæü;‡vq&ˆ› Í‚N¤ iØ4¤;–}3Õ)©u0²!Ó™6 PÒ”,ëÖʲÒé~%‡´o7ùþÆôKÈR|„‹°½K‹ï™/»èRotÃ{Ú?Ï·E¹éÁcG;ëÂÌ'â×$È@ ò¶Ê‘ß«”H|y‰Ã‘·ƒÐv¯¡¶49ËE-Ò7ü©ç«%N ]Z;e¼ï¡9Ö¥õ[<˪îV{t:uvàozú# ìË ‰Ÿcþ²NóªþrBàì=,?g}+”cÛg×ÿ ‹ivt]¥ôøMýþU×=6Ae¼ngÛ8ÉQµÑØL‚újVn¾÷ØÞ½/´ïýô±ÍŸl²ö ƒŸ˜g_Û1™tž3,Øê§V˜g"­ºäð‹ éíM§“޽lü™Z¥Œô¡»OìƒIøCú/É„Xö©"+œ¥kG"(åI¼Ç磽ž|šøo'”\fÆÊiV? (ÊîL³´µ"ÍïRióÁ’g‡PR”ð¹šBll{ãõ_úÍ›hwyÇ5<ì4 A`V¬ñ|5ÓÚwe?{4I[¥Œíšó%àè¨dÅþê Iû; Ü9¦ðmS±ph½À=¶°È› /üÂq·¢ÖˆE<>3mýè=`xÚpU;µ,¿SÙ—¬mÜ£Ho;5Æ:f“Æl/É|«hbØ@{8q1̽œeaF÷LjZЄ)Pþ–a‰»‹hÿ¢•aŒv¯vC¯Q¢$¹%þ›,A,Ú~nħƒÇŸRhmsIÿžõyj|[Ôø×à[>Œ¥¥˜£:3ęиÄg:4çCß‘jBê·Õcп։JI*¶ÃM•F>%ªZ¦ø"6T5 ènX';²o‰Á(!_ÏÚL‹emÓ*½×Ÿ{åÖ£1‚ùô –¾¢A” èãÒDõ]' ÐñÚ÷¢Â¥É™Y}6 µQwQBx «9ÈÉ]{ÇPað&½–jWæI¿D–l+ÌÁÞ諒§5·µäO–Ÿc vlÝmD¡Tv(*TüÊ`ÑË…JRw8B÷t z2 Òøá­Dü±Œc¦r’´I³€ƒÐ”Ñä‰ )H¿:ç¡‘x…¡Ù Þƒk»½\îPÒ#xÙEynšl©(qÜÚu‹Má6T"ð¥|5'ùR y ¯úä Åâý¢1»©%úøšïW‰¶ƒõ°˲¸o]†bÚZáæFØ#1ãø 7YÓBÚ„[¾ÕÖŽeª™Ãac5v!ªëàÇžwX4ªB騱b”q(0õ\!OF7’öyâØ®ºK°Û²ç9/ÉÐÄëh:-ð2q!\žA‘š™’ˆ=‡Ãiðv7:6ÌÝç•‹-iˆ+dÔs‹ª.û€ýK‡Çáõ¤øÇ.O›ÞáÇ73Ê“  ü« .ËÂˬg{žÎAMhàí«mìy¤c™×Cñ$Óx‘uœC ¿M,•ðý àÿYV÷Xvâ‘3ÛC§îh/.¹G9禪ƒW™žšRl«J–{á÷Y‡’4q‚†22æ/’›DF$Þá¶øH a3òã¥_Ò­¼/À×Ù.Z}ÚT*ºoŸˆ›¼mNi‹%S™ S¦T×Dq~/šÏë.ãr¦}Ÿ³Æ›p!A4þ˜ýÔܧ¨þì+rÂ0‹ü[‚Â8*—iŽ.9ÍR~C§b“{’rà{±yýɼD‹P“î¤N+£ÃëoµAA…„§FŽæ>,¤ú¡¹ú8’K ”F†k)}rҲ㦒};"éA¼ó*¶ÕÉæ±,9†±ô “éÅìIÐD©äÆ8Iîò)¥š×7}ñaA»jTe}:aµb2ø úÄÉ}‰š8©Š"îÆ8so«‹ˆÏ]” pö9¶VïÇh׋S¡šé|¤ÝŒgl|¢¸í€ëb®wˆî HmêtA!Å36¾*ßã8À!Á¿è»ÖmzW¶gpªA}tâõŽ8ñ¤ýÔžiD‰ÆÉÔy%÷=V2åõÔ^gúÂÖ7Xä‘§¢§3r›@8yQ}t«k8³æ"¹^¥2Ù©†êæcMš@k ÎÊaOVÚ’«¡8䋺ú¶b­/†Ž¯8fŒç¹:Æ›$v’Ë2l39^GË×s³éò~ƒÜÒˆÙ!-Œ¯É¬2z‰Ÿ)ŠNzÜb¨&%ÖFmÝåO:´.lžC2•ÜÕ[¬ìví¡.Û9;–É!³Up¼ÿùæ´#¤…ùXÄ?»¥â;×QîíÓöÄÍø‡ýgüŒÈÔäp¶~DÙº'µyS#™FšÑúOloÝhiT;ÿ”iSšpx"UÎ3yÔ¾>cšÌA(k3›(рƾ*ú¶C0‹Î{g̨‘“fª!Θ?’&V>oÀßêÖÊ$q°bg¯c‡•Ë„w|Ä‹ò¤øÁù¸žo‘Æe?Öká’šÞŸußVê!¿êi9‹—&ÖöJ&w º$·ò×*a2ó [˜Ž\˜n å $ —›+çô%ô8}“+¡5œpéË?^aEpq…âyá¿¥àŠ­”„zÙµH¤þM”w%Ë8ÃÕß/`Äåé qϨ%93¡Œ½šœKÿ#;‘.9¶´:V§–Ès7ÚÚWg*§Ëheå±tå÷³7Ïs¯××'¯Øؘ•»TÒpï¤ÇpQ6¾¤€ ^"¢ny÷{Žl7#™&“ÑÅ~ h‘-Kðz±vŸ,KlÿÉN}á8 Ô—š<.b0½"Éøót³Z±8¯‰®¶\(êó æ:§&ëøÕÌâÂd ¸xæu£„¬k1Oü:“R¸*ý è}P4Ëå°l7ç&ÏWP+õîNµöÙÆøý‚ŸÔã Ì*JbÊX†Äi¼™tßñÇ+ÁÖƒ­ÒýMV¿®êÂ.ÊÑ…§™½ê#ê}Vdm«qjö ¡» „ÅÒ\¨å!™ l¡qPó²ø™0­‘%Tá…€ùùG½™rXR¹Ü‘iAÛ•X;¸ùµ&=1k! qà²ºëø¨‡§Ï9šIO¯‘Ûê‹~ÒHó½s#À•C>Oï|y†ÂïÞRÆSœ-žËºVÑã8ònüþMã+ƒ9ÚÛ‘ÔlÇÉÁÛJ*¤X’oc4öûnô}Œåé©^¾~ä>ÈXÏt„aÕo |;Aí¾†?ŽÑ5X(üà8þÝÛÃ¥añjf½« 9F²Ôe¹A}¾ïUPñ2ÑzõbZ­âΕ1´´“¢øiáêR{Íå—ê]yÿÉïo(zbel^æ3›s p¾8äÅ7A~:ÈΦ˜Ø´_ôÑeçЫq­ª4#‹±ÁgR›{ ÇðT9[ú^„-ˆ¸GuÔ'á¬]ÖV~…ÇôV¬«ë·ELj/)ï v´yЦWµZ7c_»yð‰i»²œö…O>fja`HíдÎp¹ÊÏh¡H^5™³¿ o|WÏš Ä¤9ÉHªcÉÿ¥Z‹Na‘ÄÇx¸.bB»DðfÚ,&ïÈb[Æo—“¾Ú‘Ç6f =ËïÝ”(¦0Ó%åÅ›<Ý=ჹÖ+9œ- éÝl´õÑÓ»ئiFT S¶Ž^Ï:¥¢«¦,w—ÈkK¶åN3á©>o€¨ut¼›0ñAÿ9ÛгFü³¨™ªîJsÕ÷ñèß¶ËŽîo“ô˜ºÚpHÈpûÒn=¥M/áðÆš— Æ‘q‰•øöõt™%=$ù0å}Û T+4b¿ä‚”élvmÈÑýy¢YáK’qæç¬ÔÃÚ$Õ·Lf´êÜ¢‰½IZxÖÄ DŠ×ß!P5²¨'y Èí.¼skÝO´l/Š— ™þ©Qá½ßÿ˜£Ÿ~AŽ9Ù¾ÜD»Ò°QÖN{{Cg-b°wz(ªËw£Ê(þãB:%œ³uy¥çûK˜QH›Ž©‰¥«ÌÚÅÒÒ°ãŽÄ™슓Dê9)åÏ7½JŽ%ÈnÅo‚åy>¨I¦$Ê^¾h¶ë‰mµBÞó§š§<áx™ëChg’^Ú៻ê9žWcwþ¿Ü¯Í¿c ìªÛœrç°IûÖ´RˆÒ¨}lróÒ¬_‘éáÓ!€ho+ÂÁ¡ÿäŃ%=5¢ OeÚÁÓwà ¡' z<é‚b;|¤Ú£?$“×dÛò4Œp `4`$ž*YüŽnÖ$@£ŠÈš±óGñ• ù¬#7^ã± ØÉ·°0Z?¢2.µhÆ_yî}?}X¸P “ÞîPvÕ ÛUv£jôdÃǤVlYÚþªÕé½EI÷UBK“¦Â~OR@Äõ Wôý8…'JIô}0cú=;mǰoÃâöG®ë#8CQ^áô£!e ¥BÖWâR4'Ìì)€ Ù;þ“ô#RÒÒ—1Íîûàú žž®0H¤Ð&¾È2¼`ºŒNÖxùiÁÜzÈ®÷+òŠ9“×3" Ä3ld<¼ï;R¥Ì¢ÛÁ5NHÂÊ7QWkØET-âÜÞ׿×9Fë»¶ õíà¬]ØÑ.ÉET|¤ÚKÔÞ1âŸv>ûX P !Hb%¬®NG}ÏNtÂ^ß“ˆàm,Ø“ÌG³Èß>îý°WY-}¡›r<*‹Îœª©t5äÜrªº:ô¡ïPKžnuƒò æ›Ã}1‰‚mñ('ÝǢâ!>4J‰l»çyÑ‚±ßò#U“¶câ|&%ø Ö®Eùo0s^±ÎBÐîö’+¥wšß äøº÷j'8Ý_ã¤Ì,HÔÃ+‚ædýÚ9zP@Ú½CTªìfƒ®å¦ö y‚9¦˜QîóçV³Vñ:ÓL6Ç¡T1X!]E?;OÄú™wÍ—î™åH©¹IFÃIö±9ßrA©[_@HWl§â¡#fˆùÖBwm¨Tð‰œÓ9ЂC뇆ö$+×öÀ{²¡WÖ„K"À÷µ†vbÄ™CB>Í30tÂßÉŒ2ýÔáq #±ßÖ™ ×bO~a£}ºÊ½YœÉg)rÛÏô‹Ðη÷Ýœ?}@‰Ìªk?´·iš%ŠíÌyì5{?ªIÌnx¿û¥±c³“sýçEYXðÜs+tv–ý–cåY•lž.õ…Ÿ$> s<¯Æ•GË'ÊðøÂ ¬‚NƒiºÕ¿ ‹×TIoÞèM󔊘X°ÝD{<®2Öˆ(ìŸR> U@êtwz'»üžªõÁí›O„"T`н—iö‘l'xUy1SvÁ7Q"Áo}HÒë\ëDñbGC¥½?FY¼º £–|û¼/³ærgáØ_cãÇd‚íuŒ¤ÉWÿRôáçÀ¼Ä#"y{ú9& ×K9üè~-!¥”Ì Œ}:±Ì­7Ye³”"º˜|×Ê®q½xË”¨3ûñ€hNaX×Íʾ€©Ë÷¡^$Óâ‹%+_”, qð3?N§Ë*œ×mPñÆ^Ï}ÝYÞ_Ì$ÍFýäÛÿÓX(²È‡6¿¶¡ÿÊ‚¡Ô¡¦…^Fh¿sìÆ^79Û½á¢eQ¥FAPN:º#Äñ¸ï¥‚$.-}‹êÛcÄ•xÇ<sVÿm³úfäÛèB¸N9²™˜ÿÚÒþÇ ×(~nRˆÎÙ'H=+vãŽI‹ôË<„¯¡qwíjØHìÛÏŸ*®Ä ÷– $É‚ÏúZ¿ù”YƒÇÆæº7æŠÔ¼D;ß}8d£¡Ó×"«¾–©÷?Ìendstream endobj 302 0 obj << /Filter /FlateDecode /Length1 1383 /Length2 6042 /Length3 0 /Length 6994 >> stream xÚxTSÛº5"Aºé5é½Iï RBH $¡„"Ušô&Aé( E@ŠR¥7éÒ¤é"è‹Ͻ÷Üÿ㽑1vöú¾ùµµæÜÉØ\ìÆBJ({¨: ‰ ¥*ºÆ– EI¹¸Làôo;)—Ô G!¥ÿ¡âcp6U0ÔE!÷<$! ’”¢@ Ôß@”»4@ì wè î¡P4)— Ê ëwtÂàêü} à…ð@RR’‚¿ÃJ®Pw8Œè‚1NPW\E0FAàP ö)xe07i///a°+Zåî(Ï'ð‚cœFP4ÔÝêø52@ì ý3š0)ÀÄ ŽþËaŒ‚a¼ÀîP΀€C H4.ÄéuઌµtúnPä_`¿‚€?› ƒþ•îOô¯Dpäï`0‚ru#±p¤#G@úê:ÂoŒ Œtø#Ð(\<Ø G€íq€ß­ƒêJ†0nÂ?ó¡!îp7 Z GüšQäWÜ6«!TP®®P$Mú«?U¸;‚Ûw¬ÈŸÃuA¢¼¾¯`p¤ì×n"¦HøC¨–ê ÎDúo›#JIHˆƒÐ‡¨7ÄIäW¬ô·ó·7ƒ¿¯Ê Ãõ‡Ã ¸/R_4Ø À¸{@ý}ÿÓñÏ)p€C0{¨#Iúïì83ö×wþîpo€G?øëó¯;kÃPHößðßG,¢¤eb¡n)ðgä9••QÞ_!Q)€”$’’âÿæ1Ãÿôñ±ZH õW»¸}ú»eÏ?àý#>À?sé¡pÌ…xÿMô@q wýŸéþ;äÿÇò_YþW¢ÿwGêÄo?ï_€ÿÇv…#°8æz`p*ÐEá´€üo¨9ô/éêBà®ÿíÕ€qjPB:â-º# ¼ó—ŽV‡{C àˆÓ_¬ùËnúKo8j€BÃ=apQ@àùp"ƒ¸àž"h5» 8 ý³®‚rø%6Qq ØÝŒ%Å5n%ðáTéõþMf€ˆ0…Á…p3ú`(wÒ_ DÐ8 ýêç!ýGvˆ‡»;Nj¿i€+ý÷ú·®¡Po(„tz‘ u~ÚtV©Äì%´:@´°ØoÙ!Žáž|æë¤Cœ¡1úPÙÎá%CßSƒ©’°‘ ?fþݳAïﳂæS5s1xjËÊûBy=ßß;BÙPLŽC’O#—©÷ Y)í¬­x’Ì'.K¶‰­½úòâ²½v_j à (<¡bOeÆÄ(å´lá?±dç\ÄôZ> Š¥q·Jó0Ñ2ºÄ=UnŠfü†]¶ŠMï›ûÕÕùTì _»½Bâe-ã Ÿ{ì9}‰ÝŒt Y÷Þ ñ¸•ÅOTJRâ9 \øç ì$ç¿åw½Mèó¨uÔS º®ÿ¨¿Î£%>!—Ó6Àb»’iòM„œ¡>1ÒI°ò)§2W…ÞIoÚ^…"·ž @TÝ2ûSw UT|j©ƒ?SMü(DÌæË0Ù]LFHÔ:Eq·ûóse ›[Ì|æB6@ËÄEk E Çî¼èÑw[Pøøy'¼ÌâVòh½þCSo[ø>Šs—•n4(Þ¢9c«c3á–øÉGj3~5 L•ö$ªÕ–/.'n,À(7‡Ðàm‹†Ì}E©©aŽ831Ê<êI5¼4½k–Ò•Ǩ(h]vKX_Í”Kô?“ ®—K¹|4;¼EÕp;ŽªjùºaÛ·«6ñöîû"¢$6Ú¹-÷ìŠôxîaîÄÃë¶â/Ö•-Gƒö%'æs•˜ØÒ?z ‹ù{¼vT»—k¡Tq™Ü:°lû¼Ÿµù~W,KÚ»áíöfž”5oÍÚóÂ}Zû^ énŽÐDY]œx£Ê\]¤©UX§é¨žÄ½­Vwô du*sg%ÈÍf½VoÏí{éCeU %ÏÔc)±å—ºÜR¾„dfªäÇwiÈÁõÁ¢Ha<'Xé BA{†>ËŠóI}uõ¹†ÛþI;Ëmc‹È½nÈ)AA°úÝïžbŸ>‹XèK|À*¡Z«vm­Y›?dV Öm а¼³PtVOo7ÞŸoa ¶¯s)ºl+ÚpýeC J3Å—tÓ{”ñFÏ&Ok“£ß[ùÙɹ¹Þ-V£ µäƒÂô†¸1ü£ïÜÉËiˆ[ê?éèPã9^±©çØ-|9ä/Ž W9³̶ñ’„²xÂÆQ!°!†,Ý­[Õþ§ÿ|ÇîK›£ò/Ö¥®a+TáE¡Ú¥ú=£±ìZ×£_½þ¾ÆplDýÃ3f.“ÞÚÿ5­ÛC‘÷v)†¿¿ˆvìºé³,_¿åãcC°Øªz1‚ ¥åð®7a93ñ‹QL¢¦¹RqÛË%™jö³ùáä*½7BÌPÕOg=s¶Úª“oÉ$gUÉõ}’ íZ.*kyÀQö­.%ãæˆÑÎUO#•”©Â,CU'RFŠ1E[Áœnú¾,Êfú{bMIëÌÀ¿´:Ýk:ƒ¶ÐA«GÓÇ…r*âý=ž-ª'hÛ¸×Ô@«æ«=X2€fzL¶;`YÑ”·#²íù>nÈ*¯áû[½—~žâVºfHXì¼Oì½ç}³ž ã‚]œ5N¦Eº GÕ[ ‹Inü¡’ž“7åf @hÿe Ê$Åz‰â6ûb)‘&«Õwaa&¬aaxHƒ>_h y9PrìË(Åãk¡d/Î|žÓÂ6|Çm¨U>É®äû¦§/)§ômNøŸ¿ëšÎA‹ÂxT±óK•¶Ý¯Æ^)ZCØî&U!™$ò„0~¹¢qqÇE_îæÎ2Å S@bñ'„àœJíÉüÍ/.øÓù)$IXͰmŸž¿œZ{€zl3Éù†;zõðÀšú."%nå º;4ô½HüÒ’ _»ÉjG ˜ü±|wz¸z‘>¨Ù˜#O&n=åÂÃÏ8’TIü ]BYŽz6ß9›n²Lò2=®j¨‰ãñÈi ­µÑ€P€¿oÄHWbîXªÀ– 8Å•ËxÐ Ù3»\3öyÜ·”\¯$oω ý­tc?€×0¹¨÷‚>xeµÜlfe°;¤\’a}´®0.H†¿s`ÉC$¥9QI$üÔðl³-"2Ú诖Š7Øì°º^{Ï|Úà.qÚô^¦ ú~êzk׊ç›” –:–¾V3ë&äÚ3¹ HrfÜe Kï…Z—ÏeÚûh¨(ppûAç ¼Ø×«R$bú Œ Ö9¿¼iþÙü‘¯§9VíöÔzOyûj+³PCÙQ<æN××XÿðéVæè©O7É\ûWÜ¿`êÈס¸;ôîh:ÒwX;„º1_•©£Yð±QûÓÑa]_Ú1ñÃÉYˆ%6¥sàmAnæRZ[ÝþèK;!Åjb Ñ%3ÏQÖPÕðI Ƹ¸ç¥ƒÂ\•!-oˆeÈãŽS=óZËw;êS²ëÊþÕ©.Õ³íÄ F;¼3ãC6¢S\T@|¥‹Ëm×зxу”?×ÔØ‡í’;Œ†«t/Có°Ù´~Iq3ž·höÅ¿ÈeëHV«…Ä~|=M¨Ûµ5)òò„•~ 3õ˜àBš6m R³á©·»Æ¡!áOV¸M¾Kœ›c] ÊSºÿ.:YÀo­’w¥ÁlüëB”Fq9B2XÆl~ÃgÞ=×vG/Oé¾0 ]@!o+C{JUأȧêºiŸQöû¡~ ‘ªWغîQ~[ªí¸ÕE1Ý7>¯?Tê^ /'‰¨þ°È8U¯´’Üð¾ƒh©Լ̳Â3 òFêæ³>6ˆä¯y…–Ä [ð¼\fÂØÎ4A|’$ÅqpŽ˜áö½`N ëÔ š²v3x+ M¤ÏáÚÝ®N¿Öy‡ŸÎX“Œ˜ öZ3×î/Oõ;ªô2&&ìM½k̸"åsõíªI„Ê|€HæQcBgZØÕ"+ÿÎS©è.÷¡q­'y(ç ÓíZoç¼Fák‚Dgö Ê‰×_ÉÚµ2ª:{†÷ Ä‚Në „¨£¦ƒfÙaËæ"¨Ð6HäŒ":W2(š_MüöS‡ð¯/P±©¾Ö*¥òœ?Ô¯ù8²Gð?G5â]uŽú(¤÷=hg `à%êàn\§¶—¡ã\Œ[?Ȇ–"Xx"*"{°m«ŠLÇ,òÑчŸg®ä7àArk®ÛÂ…vñoKl_¾³0­¸½;éŒeë%&F'â‹c…-BâXF^ñ}ýÂ’o’·ƒWxâÒÎÍw)+ërž (Ë'aF}n–j¼b]¼õ0òMܸÄÜpƒË'tŒáÞë†)‹Lùmb-,°£å¹0áØíÈN«¤Û/XCTo«} Nts«Pç/+>®šOóÜs×sDJ"¯¿ %€I…ðW0o[H·¬Éw7eHóÌë°ÂðbèÚ¥¹Á‰Î2¬¾toá×ø†g”Û+µù7ƒ,´ÛðgÍêx|¦ïö+±Îð]Cîž ]¯7iJ¦nOŸÕ\ ¸·µw°a£ /¾´*Ü—FËfªmcÿzcÞ4üÜ//õ6Ñ7q³Ð-؈iÔæCƒ ÿÓ‹Q?¹ŸÑ¸ÿ3mâú~íDëè ©¯El±þ+«Iü¤¬ŽnJ‚•‚ïåüœËDÅ©Uz‚%3ÇÉ÷R+jŸN±Poˆ¨33÷4ôóS1FY‹QøÂ,^P2'&ÆV ƒÀgЕ W·ƒÝ{á¨Åʪ¥Ô Ÿ¶û›J£bEK†t­ÊlfG8÷¥ÔòéãåHŸX+ÊÖ³}½®VØRŠ‹¨ï:޵VßÉVN__ÉÜV*.£Yl~øzh¿òÖ»ù‘;µÄQlá/â‡wA¯ ` ¯• NwæJ-7]eyæþ¢È*aî½§Ýg²¦Úªï17Z¼O58æ2‡l ûç5 ^ïO~S|óÓP‹ú@z2¤²*#!XŽáå{ûÍ+·øûšK…‰DÖ¼ˆ:"î6ò*NO?Éð!‡Ô7+¶ëqk¹>Í™{.oÁþÁ5úµWqAOaþ“cÔLEsý,ûîG—›ã We±gYzäàdâÍ‚âæNá®=|Œ^MAGBô5U½‹’–u8ßMÝ3Ê€:ãü/?-S§‘µLÁ1DDéqãÜÅü6±¬Ý <E<Ê%† î7=~² ƒ/žž¶°0íTÒüÜœ.H†P¼ ¬“Í{„åqÝF˦›nI¹±Û¶à6ͯðêejÔì-^M“§Àï,xçl]Cƒ<³¿—ç£0­º(§wöøJ³=’œ5Æ÷áM{K^yŽé»üëOZz\бbg¨¥¨3¼O€ÀÃHÍå6ò8U¯¥†3ëdÍÌñt[Ï|Õéz ÚŸxM3.¦S sÒ™-®91a²N|\8]\8­ïlUÐîC`õyçToUÍSú¿‹eŸyZ¥~lzfÀñV{0,L ¬iÔ²*I«,ãM9!;03gèÔÈ8ºK½§áµÔŠFؽ:Þ•±§[û¢4L¢)]óêÙ¢¥&«=(©vé­f·o½WH·‘åH#… é3Nõ⩚ªÓfL nÄØ‘§ 7 æ¹ÔåÞ·uw)‡LŸäihO8U?Ò«±ª'ÔêµÝŒT!Ù7¡÷™…][»&;–š}tÅîîWY 4q§érqŽÓÎßèe0ñLÀƒâ@ê%=QX>øåqOR,;€j³æÀsq³õ(@{ÖÜ7Kwl^La2.¦D÷Àú›´9£Ì jÏ[ñ©Ò®Z,É\ U¾•x-²È‚6NØ`QKF!—ÝäE@øú4ý6Á‰©õÊ«D¹‹¨×/ÅkÞEºêbä±raüËAö*-lÈ›1ÌJîUyžº³Î”‹Ã+ŽN§r{Xt‚ð·Bò ’¸%1Jü mÇ;3‡#1l2o<ø86ªeÎ?§¤¶y6÷í_«<ªVh½òV$QCÂT¸(¿F„$ðIÛp,ÈÈÑ;V6"·ô½1¿âºg½8YÊÞïu!¡?'ìÿ$'³Õ N½Ÿo¶ÔWR-PN]ð¦üå» VɨjStpÆ«‰’.ìÚjoG±In´Šø…†»ã’)Q•x?g\øÓhn¿Ê¸ÚÖ(’G)s¥+Swsžn’çUéz®.ð:ßÄ…,/È¿å#¿îdZZwâ÷›3<ÖŸJ`Šp¥Ž~ûrÿš‘UËÍá4”ž¬óí/$?x‚×:š@/i§(ÞɸߢÜü@7 2Á+=«R8y¶L{?ý›v„c8aIçú‹¶’5JZÅè,“òdÀ8ø„ƒ«KÛÏÎPÛÿsþ‡åÕ°¬¤H ÿCîÀËŽ»R—Eo×ì™<•!j­ d=â…Ü©#‹ùa¤ãÑ5-õ5i…6LòT<‘±©þ ¤‹ÂYTÅÕªàs™¾¤|‹ù¹KA~I3~ŸEOÈë]ÖBú,Jº6YӢדz³wuPγèI 1ªpy²ôÛÌL_SG0<)tRj’Uûz+D$éÑw};­¢]²E¯w}¥Êy;KWàÀäÉøÄ?ŒÈ2õäÇ-/”íÑF:{ºZ‡A¶¤ºŠa¨ÃÙ€Rjéà%Gæ{Ç$å¨ìèÁÎiƒÝØ#eÃ8ý’$±o­üÊ×ŪC·²>V¯ŸÏ¼ÊMþˆ#tE-I~ ̯NÆŽ²“Ìó;×Ù­™ «È‘õ^0?ŠCã©)“sÌBQ(6jãé=.íá`˜@ïqk{㵉GRés{µ÷úaÖSˆ ïÏ<^˯U¨ZUµÙô‰߇Ã2y½¬a…fé}mV›¶¢Aêß6Øl(•Ä<˯u/égzŽV°Ô‰^ñ$#õ9_5©Ÿ?ïNÏݰ¿}’yÅ*Ó;”8ÎI•ϺŒ‹?u0RÚ¶ãí|¬è/wk.ߺ±"žP±†UüÒù³Átñœä÷+…vM™nˆoê¾,VÙ^²ÁÎí׸U±$üã^ ‰Cál³ÇÊæ¼¶ü/i§<»½~tìò³bß517Û›žÛŒ¿JfàOò}£×P©?q.JeTÜVCéýa}‹äV„a'É‘—²ãpÂRÓ¥ñåÛœLŽÉRD¦ýþ‰LCUšvüÚäÕ÷}›‘nîÅ.ºdo‰Û Ü¥¤!Ú{#1Ƨ_:¸XƒvøÖEÜŒºÏæ§ß•r0ˆÖz¦©AÅÏ:¦+ÑE÷x˜HnT5§}^³0|Ít´_iŒ Éuî<Ä32ù{2âQÍ.=â¦Õöy w#/*tíbù”^m“Xpj&:J-§{EËwC(è¤Ûìó éQ&ÓiÑ‘zùPÄä‡$ÊVCóÆg!ú—Ç# wøõ}¾7 Cê!Ée–Ü Ÿ¦¦†hã¶7å¶$i’-ÒkNÎ>ìo *‰#{µÔ£RD².ú£ÒÉ­Áhá=þµ×&Õ€©øŸu r&l£LŸ9Ö]låŽWž¹—x:Ìéyc:VxUç³3o´Ù·­{’`¿²Ð.¦Ù lL›+ dË^±Ôqçà}(SÊÖj·s¡®:;Bb½¼3wC:›Ä[;b Ç„>Ž h *±Ù?ÒÎÉÎŒi®2Þÿ¶‘8Ó@¼É9f€~©¤9È>“+]u‘ˆis¶ P½ÜøÖE ;ލZRzGqÄ~Ì%^ÿÄï%5óPŠ“?ØÝÍ8ŸÜ}/—}60K:–V!íq æ¸myº8À¾qÝ{}ñN™­¡ œ¬R˜d 2l¦ãu6 ·ð9\Ñ´r”mÂ^âk‰¦d^º3ÞM?̉‡Ýf»î^:ûªlvÁ?þ€ˆ*¬“£vÀ» [OϳçÂæâÁÏGõ´D5¸ÉgæQô'µ©8ÊbaÇÆþ.ÆþÛ"È ~ëÌ 2;AQ^QZu‚'äõÉe_éuDøq”ÐèƒÔóH­V6{›ù=í«üÀÚðP£Îª$ÖÕ¤¯Êb·ºœ¶ZtI3®ïu¿jÎWKº&Cã2%°tï=Yzñ·ÕîÓ8þnU;ÓšãÜ÷ýRÆZ0ÄÄÄÿ0R‘xendstream endobj 303 0 obj << /Filter /FlateDecode /Length1 2566 /Length2 18151 /Length3 0 /Length 19636 >> stream xÚŒöPÜÒŠâ\ƒîîî\ƒ; îîîÜ%@ 8‚[pw‡ww×;Ÿœ“œÿ½ª{‹ªaVÛêîݽ÷P(©2ˆ˜Ú%íí\X™ybòjj,Ìff6FffV 5Kàäê@'gK{;Þ?,Äœ€F. ™¸‘ ÈPÞÞ ãj`a°pò²pñ23X™™yþchïÄ 7r³4È3dìí€ÎböžN–æ. žÿ|P›ÐXxx¸èÿvˆØ,MŒìòF.@[£‰‘ @ÕÞÄèâù?!¨ù-\\x™˜ÜÝÝlíÌièî–. 3ÐÉ h ø«d€‚‘-ðßÒ(j–Îÿ(TíÍ\Üœ€ÀÆÒhç rqµ3:@ìUi9€¢Ðîc¹ èÿ6ÀÂÈòßpÿzÿÈÒîog#{[#;OK;s€™¥  ()ÇèâáB0²3ýËÐÈÆÙäoäfdicd 2ø;u#€¤ˆ2ÀTá¿õ9›8Y:¸83:[ÚüU#Ó_a@m–°3³·µÚ¹8#ü•Ÿ¸¥ÐÔwO¦×ÚÎÞÝÎû?ÈÌÒÎÔì¯2L]˜>ÚY:º¥Åÿµ‰~ËÌ.fffn6VÐô0±`ú‹@ÍÓø·’å/1¨_o{€¨  ¯¥ôÁÛÙÈ pqrúzÿ©ø_„ÀÂ0µ4qÍ-í~G‰fÿ`Ðù;Yzt˜AãÇ`þëï¿ßô@fjogãùÛüï#f’SWWP¤û·äÿ*EEí=Þ ìV66€“‡àû¿Q”Œ,ÿÍâOi;3{Ï?É‚ºôŸ„Ýþê׃ð¿±ìAs Pÿs]ffÐËÿçaÿÛåÿߌÿåÿuÌÿoF’®66ë©ÿ1øÿÑÙZÚxþkš[WÐÈÛƒ6ÁîÿšjÿY\y ©¥«íÿÕJ»vAÄÎÜæ¿´t–´ôš*Yº˜Xü=ÿˆ?þµg6–v@%{gË¿n 3óÿÑ–ËÄt{8ƒFòo´;ÿË(agboú×’±rpŒœœŒ<˜A“ÄÊÁðfm£)Ðãï!01ÚÙ»€\ ê|föN)'€Iä/Ñ?ˆÀ$úq˜Ä~#n“øoÄš·ÿ".f“äoÄ`’úXL~#6“ôoâ“û@|ò¿ˆOῈÄ ô”#ƒÊobPýØLj¿¨Ú¿ˆ]ý7±küñ€ÑoŠbälbiibédâjû_9 +ç¿ KSào{PîÆ¿([c'#k è•1sù-gû¯üŸ5ù¯Ô\“ÿ"P0{ЄüGÂÎþ—ÄÖöw‚“éDù;Ðd0ÿ‡ó/½£+hß~»€ºhöÛ”›™¥Û1þRÛ»:ýá21ÿ¤7ÿëíþiJÔâwÚ î[x:Xíþ°É,ÿ€ L­þ€ S°þ‚:ñ;cNPÉ6íÆo=¨oèdúMÅŠeÚ©?ô &ØÿÎälÿ?jPE¿Õ ` ÇÒîŽå_éÿ èŽer:Å?L9ÿ–YÚÿqL ßLŽ¿½@Ýrtµwšÿ®tUÿ#ü^6ž¥ÿËË ñGÿY@ÝýÝŽ¿Ðíös€ÌAïÌsåílcälñGÿoÐ Îäbáüc.@}qq·ÿÃÃõ:3·? (q÷?öäíñ…÷ü‚NÀëwr H^@§¨þç4quËßïè†üþûgè4AXš·7á ±úÒv_-‚ïΰ3.0C±£‘NÃà½äÔîúˆ ›BS•´æt+’2Ôº¼%A}#ü“øÅû¨¹6¼%I¹õÉçÙ Aej§aq»¢ðH¤¶ž€AMx×çÅÑG=в¼C†"ÏÑ•Yé Æ½{¯”Gm_ٯѰùåÝ*NÙwÏeÓ Ÿ>ÆèÏRäç̽'…qa „£E?÷@™½¹AÏx#–I Cð=þÄöÕ[{5öaÎk¥BÕ¹—Wû=!ä ú襷è~ª ΂wIQÌšÀÂgfF°µÑ>bŸ‘’^9itf§%©QrßÖZ¦@ÍDøìUCÚïGÈ ïéÌÜÝ%¥¾(6õêï†ÃßE8љʻÅÁ*xzïn,AÝhÝÈ|ŸÐñÖ1Û„GØÄZn] wôÅ”‡!¸Þåîô)´Ê*%¯ñ8v˜ñØõPmï/—8uEF€-LÉ@AÅ(Ìlà¢J¸©Á`×…¯âi5ƒ×í¢ÑÂý)ùñ£ãÅî+ûIþ¨v:·ì“—»;A½§MòD‘4‡1z#±•I‰6VrF}WnáüP™l ï=™°Ì/ÓoÂS­’Çàcòá{w]eùO¦hdætß÷¢ fµsÂü›Ó4¢n0£>ph1ýÜâ×þÞ_¸_˜Þ—Ž/1öUgdœ2ï“ô»nöý¹»[¤˜m˜T”÷Öf :•ÙØ¢ÏC×U’ÝBæ*²¥µz‘cñüª3JAMo(q_nÊ6uF z’–ôªÉüÒGµgº´=‡=«b¾‡× jPŠë$Ì€eQ¢×ï´Ìñ‘ò´†*ù>øþHXëè™2º™·b4xÿ”÷säqýŠÝî'ýÃû~÷¸¡ùÆZÛ¦9ì]­oi˜£‚ÇËHŒN;ñfÞÌâ>œÂå{¹9|z‡LU?,|&&ï‹UD V‡ªeg!m³mnõ—)5–p¢W¼‰¿œ¿ØJöâ­œ•æÔ¥uàÿœËb‹—”õ“ÆûÊ%Œ­Æ%²,ÿ¤¨„ÅÈ»óa˜Î2L³æ3Ÿï÷ÄûϘ»V}Zš7 ®åÄm­¿âE¥ÛŠ6ò£TØÏ¥y\ÊíŸØ™MÀ?dÌαŸ»ê#¹kµ÷¤f~ÞÉamÓq™œNýYS—-dqÕdœ½ñJ»DA€`ÚÿÕ0Š ŠšÉˆJ”wQJ[êóqꬿô(Æ æ¡C¼¾ÐåuÖ4­»8O "+›cìªÍŸ¿¡ðÔŠ«‹âÈRø- {c|*bD lÒ1ïãò¤äAÍ]|3K²‹ÄDÐtãÊa¤©/8,¸=ß%õU„RrRr.»‹±C`õ³Ižb hYÌÝïöX;óÙ™Šòr›Ø:„Ë7u«¹¼~yN±ÐD62®gœ_FKxiQµ –ÝrDHšø ØYý`ÝlŸƒ™7ÁÜwgAüô|?ºÏ`œ+­žÕåÙô7vtÉl>¿tù0:içð¢è©ÄÌü˜¢Ã!ÿ‰ßò‚X‘ˆšÊ»4nîû²{ù«ê®*0‹Š[üíbd ³–ub¼s×—èN²2@t®Ä~æSK †>TpWÚ©vQ.Ì»£¥7ª”øÊ0dpEï)ÉôÈ£,ÁÀ§û >Ž•ìB%[‘ÙAº<õ…a¯•á‚Ä,lâð÷†lújȹJn”xÕÕ[]‡ zw**Yeb_Å ô«8^xÈ®EN6è„DÈ÷–h…¿óSkPíÒC†ƒ½ŠöI•!â28%Žªå‡¥ÌakY@¡„ˆÒ[ç@–ìQ¢ú—Kf¹^´.i­?–ž ¢MéÕQ§TÎPÁØf<¾“¥B‘ÝœA¢ÌEË–XWR ç•ß÷ŽRe“bUAæÔÍ]b8ŸÓÇÖüDðkÿÆ_›ÑÑ"½úN ?÷òÉ&Ȩ¬Ä}tIáÛG‡±bÃÊÊëÍLyž˜mLóicw’Í4ÄÑ6çÞÀaµéd°JñNHã !^ G=Ëþ|÷Ö$÷ýÂR(تnÃu }˜nD5µ8ér»‘@›í†/híc‰—±w=y†è+·ó[é· +ª"‡ˆ5dj¨r-–æÝÛòȼS%LÇŠÐj†”ÇÞ!ÔïeûxÅŽ-Çdy¾tx|ècÀpÛ”xže÷0à ŠØ‰Ë[jyŽÊ쥿þ\lºiÃAe8%ïsÂÜĪ¢•€^[’P5«Ÿ %ƒ7e`I:Ë_½úóz $i¸ D²] éÒÆí—“á¾U"{aî’ø¼úWÑ~3Ýûø. –†ÑEšÀÂ1aá5‚ˆ–2Ïñ4 ¥& Jp/Dkà#|[?ñ`Ü:Jo¢Kƒ›Ï§s'fÈ«f‡þÅ×§EnصtGq¹¾ö¶XïåÃï˜Iƒ¦îÉø> !HR2o^LÙû¨~h“‡D.e,Êr*\ë×Fˆ/„ãçZó®’sXEë¹S§¡À@ߨ·^f 9ÎP³/|³óelÔ~s¬önuÂéú¨ýÆ#Q–;?+õmÃ5ç§àº¡=®ã1¦ Â ¿dÍÔ8ÕPŸl3â… ¡NÍ F×AQ3)c‰gFw ¾§Ð {úNxœ¯¢rÖÖ²õÞ°å”møÓï‘åh fÉo# ;ÜÈ–¹>›øõ4À–ƒQ5B`†Û5) LfŒ³Ädîi¬ö—¿Â–,½©/#–¦+¸ÂÐñ¼ýDaçB‹ö”B¡žê~][C* DêîŒ"­ôÞD¶Wì6Hö©0Ñ~%ð-Ü nÔ!^ùñ°.lTôHÝÁ7Šß$ÇJ‚Õê =;͞lj™tP(+')ðvËX4wb|ðyÛgù—ÔÄçÕ•3]¾–ˆvý0&¬kUÄšã0˜y,$B¼ëXhÍ©;¨Ø.dD=ëØBÍSw)æ!Qª@¯Ì\àX¨/`xÍ‚&íQüÒŠá1.¤÷X1„ÓíÆËµ0^Ø8>ºÞңΤÅÐé:¥Sç²ôñ! znÜÏfA4¸@$ÕCUSèk°÷;Zä§¡†4…Ý•7S½ïx¡£°O;RÐôÞÝ« ëMJJS³ö8ϲ27þü!ÉŽ‘š¡kó¬<›€1f"¢ÐÁ±£ìZÛ¿BPÿÀ˃þ§·~☉žSÖ&§ý·Æ°úæ›üÁÕ —IjËb/ €E¾IÇÍ@=îrLϦFÑ{9'¤o³Î† r*€ä}Ÿ/íM0Åm42úcÙ£‹©óì,1p/“†ÖÌâ§ )¿1ÿÅî¦Ï@À!k4á¬i9:xÔ–ž±³UÇ ï΄‘†H]Y† û{:„ˆ"×5"µËÇʤXàÜ%ZØvM“ÞÏ5 (m÷pŸ]Þ¦}•ž“]z±¾ËxÔ¦p/ ΨüÚ`ÄÑõ6t]yÓÁŠÀ'®/¾¦8hf늈{åêÖs² S!®?|ž¸ÌxÉ“¬´®øþ®úò‡¢UGZ;Þ·µŸ»tu°@¼¹IçRù9õ´hš²ûôÔ«®uØ2™ -õ‹‘,îºãN–®S29l! ùºA! Ò¾,ãâQå.d‚³Íf&“3¹NuíUïøÍmü>¥%phUÉNªî\è™"GÀrÌ}p^zºYÆê?dºÜl‰µV'XqÝ5ßöO~Éž?Eõ¥b·I™LÞ~¨ê0P”^kæÂÍš`òŽ×‡òòd0u{ïd†Ÿß>JüˆÎ%³65q²0ÓyW§šSºE•‹‡ïåÛ|d\ÿuÆÄZÉί?l9¿¦»ç¾hÌ Kz¦’$I-¸)Z¥Œ|†þ+QPÉ1SÞ¾(Xáñf ¥D: wWmÆÀ³<¼ûÇ»ìcö´ÅŸ½ôÙë–EáZ†kÍ´ÀE=-ºOŽ×ò …´9~-ø^Ë-ü«žwÅ&…ÃÒ´ ÂðsÅõZFÖl]sÂÆ9Ÿ|p%ÕŒëµÑæšý2Ñ Ø¢Ô¿ÔâæÁÔᳫÆb~Ÿ¬?<ß@FF*µ“I‹Õè¢ìÀjöÑЦ~9œü ?$¼>ÎeªØS°;â¨f”p‰[µ\‰ó™×‡Öˆ–Tž†(Ýó`aÓŠGAZ:½Ÿã“ÅÜ ƒnRÔö‘ñ,V}•¹¢7ÖÐó`Yå7<‰Ù0*>Â×Pl@øVXö°?î•‘v?Àf d¦â–ë4Ü8@mZ8•T?ÙÝaÜ* +iÎB“å®–ê¦dºN¿È…‚úìÊÿ±‹Cªó]Õ Þh\ÿ>±¼iM¹©7‘%gµ›“ºâ/ì/apàñf0©{¹AeÁkæL­ùÕ S'ý3Y….ÍÅN1•Ë1É|µ¤aeu‚ú"èÌ܉¤Ÿ©(Ã*Y[òßi¨ï$Æ#­F¸Œ+F$*õgÚŒÆÝªyÓê2«½#¢ý¹“§‡ø]š99Í÷íäUî¼.Y³®éçêƒx²‘ÌŽ Q ºSûBÒœ0îƒé²´®ä=·*ÌZˆÃ–l V¯¸™ ]£‰€’%Ä›sù/ÍnÂ×ÌÙI[Ûè€Ì_|•Ur‡½zÙ|*U“º«kÂd7ƒ°Åç÷#„uÅ;{Õ­ý(e6{È7ßñ2¶ƒw%—!ªœÈØQ»çÀÂÓ®6ð8Q-5sÔt(˜Ÿ05¾ØjùjFéãA¹åfXY³æ¹E­³¯çšEt.É,ù¬4"óÈÞk%÷g[&Á Õy å%^J´Ê#¥iª *;¦´Ä{6 '8‹qÆVCᥘîí®}Åï ˜×Þ³}5è°í€dÚ_óW¾¸®u5»Þü‚pA% ¯õ¥uShÃѪì"ƒa8ö(sæ;Ýç†|ô)ÂI§/›­¥œ”&“Åxæm }z¸œ¾£_I=Pð†_Ê8½6ð¯R—›Kéw÷ÖÕúUy(ÀèÈn®Îâât­k=j…Š$‘Þ7%“c ™5r¥ýÌ\óEkNÔÙ¶ßØc{ΦڤS úpÝøåzÜóHþHœ‡N¤`º"Œž¥'[nÁY€!ð(¸ á&†òµºZšì:m˸#˜hû4taB“‹ êLYF-σßM“Þ=}_ÿÑÏ‡Çæ#’à%¹¡Å~«»¨Jða8]f£øóß&Ev±±Nš¢PÏEV®Š{øZó€D%GégŸ¾¹oÒœ§Ÿ ’5!¨tM£öe®}Ycp½•EhÜñd]`5×c±,Ù\cTÐÙ Ô²9Œ}ˆüŽùXŸ:¹pE|Cs3ð¾ÊiÎ*rî=1¡RAòOÌ^´CÔuÔ%”µ€c]p›ÇHƒ“ßHѧ¼ÊzúJeã ј$.C¯^¥f¾qmȾ#ánµb\F„°¿!šÀ®ŸspCm QcÖæ/#l»”×ÿl/±1–ŒÄ¯aj”EÒ÷Xo  ƒ'Aþ±Îo+ÕìöÉÓœ™G°¸Ž”ˆå èD·8^!Ý€¨êŒ6$*­Ö37ëv‰¾ܯÏ'†Wiµv³!÷©´¼;fvt8oGPö›r²ßúð¨Q›áæu±—Õ|ŒXº`3,–ߥ·•«SUyœc!vÓnŒaÃ䃷úEË]‰ü–|Ã>Ê´F5ÜRúÊíÚ¹æù¿ÿÊþ+W]gtŽñ‹A¨ña ¹Ëmy<Ë!cƒïÐüÀL—ÉÔs•÷v9?–ÛñÝrÓö¨×üu8ÿã»1°‹ÔÁÉ‚0žQ'˜Õ÷õ¤ÙÆA. Ãéäž“eóùêÇ=Ô÷ÝóÓ³‚+[ÌŸÑnü‰• E5h µÅ†ú³¢?ªÀ1×ÌÅá´Ïw¶À쨆ÔpŒ§Ü1ørEÁÍöc/1teÑâ4I‹}‹ófl‰J_Óî«Ý†ý†ë¤˜@-÷Ï.s‹³-î åÇš1šø‹ÂÝwb"*w¹n$$ðzôïV¤)`nµžòãÆfnYÍ…”ôsa`¿…£N5´Ié™…žôbQ&•*uz4ÕQJ£¿ÏÌx;*Œ³ FIËÛ÷â Òñd’> ÎCMéÕåïIÛ¸}óTº^z6™Ñ!‚ rAkñšrßæ›²3ùÊ“Zu ‰¨Ê}Œî“€<—£U!ÃnåÜ|NEîD—å’ù¾ËEB³fK-§1ª<‹´%Ç•DSYk~жp•0–Ð@ÊÑÙöfˆ@•Èz¡ÝD@©Æ‘¾ âå"¨º±Â³ÍJ‡D,#©§*‚êÀdköÀìÅç×qœn—CFæáÙůèg8· ñæê§É{÷ðH$õ5bN@ŒrO­ˆn¹ðÿÔ ;ªÕpþÏ–èÛ¸ë§7¡ ò2åAR„xb–|Nñ:Ñ;p_íÞ½D€pqÔ3RK¿Ø¡<¿S§ÑS]>Úúµ¼†­nS»‘¹nÆ’dlƒà šÀ’+Äê±çøsû~’“¨6 €ƒÀ{>@‡–µsñ™!ÍÝ1Ç“µ—)ë ·ßãö »Iº“J¼uḹ†Š™€ì6ÕŽ«Ã=DKtv-µÅž™Õ,{bãX-í'ÙÛðàSÖx‘É[üÛPQuZ;ô/_.ªÅ– B-*nx7ä³â‹„B0^}÷ͳ¡ÉÒÞ/Oì¦45â—VJÚÚ®²Ùv&3j-*zsøk4üþÈ,H®q{VpÁX"C½*›3\S ¬ùŽï@š±Í5ÉÐ?Ä' Ü,©×–;ºVñzçƒùhÚl¦dá<ÏW¨M^±]<º•ÐY&¨ GóŽø£-:ù-«²8Xœí³ÏöW›¯^Ÿ6ú~9\óR̹ÊÈDÑO˜ô3/EØ>¤ÑYNžUаŽ8Ž×/ý¸ÄÛêz/4Ìܬ¯Âp®´eOñJÿ ö‹t|) B÷€‚Œ_è½AsCbÞ—Äa(#ôAÀ· q¶;þQ”§]vÙ@ÖKîÄÕÒ¨êÏóXã_k£ugëQ>ÛFG¾X¥O·‰oÆ—IÉÜ¢ƒMƒåþh.8³–h#þñÕÄJŽe³uuf³vZ7¥A=âÝí®Bªþi¢Ft(¦T4ìĶê ì;Ä]Ê}V2þÆ _ê%ŸÔÀ5œCŽ8¿ìÑwÉÉíz´×®Y /}ä÷…¬ÃaaŸ©¹Òçxœ*8˾ÐY2„+ªg%'M'_N|¿?ȱj ð1$)±i™5|6¦œx½Õ©÷K%Ä_1BšÛ¦ó%/ä&­¡ôbÈ"œL«2?}H°A]ÓYŒé¾$¤‚oß+XŒÎ‚°j¦\â8JÚMæ¡]HãÚ†ŸE0òND ű^f~d1–¹÷­p <öÖ+2€°~ˆ«Ñs çZRæC…ÑmÖt×·Ì+?æÛßdzZù8¥eÇNPç¯Tã¹Ø Z° åCV®Í*‰¸Ò@2Ròvqϼäd3^\ìÐl :*!AÅf¾„Pñi„ÎÂ×–$ÍÕ[?Aâ)qlIWDÕÕ×™!¼{aðeœÇAÔú|íîXˆß ïDÎ6½‡Ú’Ʋxéµ›ÞôÍŒ ç'±,VÉŠ^Y€êsi¹F£O{Çöæ„K{ê—lj&Ÿ­(c–{Ãn‚ E½¹7¹OBcŠE~.½býKxÂ궸¨wùÎZ/Ÿ7gŸ²3unø§­ddR\Ù •§â·N7–]NœYf<ýYþ¾Ñƒ€uMävM²ô0H)ލ¡iu,ŒºàýÇFYce&œ|Ñ(¦›¯?{%1™s‚C›}®k­5,ø?á©VdxkÎ,VXHçR"¡ {ëá¤áγ…LN|}ÏŽ¢*G̹d\®¢­6.y‚±)59bÀÄuˆsíp½>äPfŸöë¼Çà•»¢ÈÊÙÔš[L”¥ªt2oi´Ì>ºœe DFÆÒZnã €g'ïu´ç¡)‰‰+B¸°{¯ÙµÌ>ù 6gÞÀ)…% ¼ÏbXBtÄŠ§,nqógbP¾yoð—Qºo}¾ûåZ³k;?nàWÓª,¿‡˜ç¶îXóO­ò’ü¾k)Gæþ '³Aµi~WêXÓÃûåaÌùÆˑݪ]ÏÆAåš½j0·3þž懠ó>¤”U¤,EA[Õør2©Ã‰bóè%ö¨BdyAСŽ†Æî&FÊUÎHBˆØg¸åòQÒ½ NÝ‹›AsØÊý‘oT¦)¢ÅpíÆw1™WWë±»ÅòÑѺz>Q].ÑøQà LMW(î´ ÓËònŠÇœ­5ž;Α'¬Ï‚§g\¼²Ú+½ËÈ|HÙÙ`ì°x—LÝ&÷ŽØlc3—öI)4^&v®Ž/ ` "Œ‚Û«¾Ãƒ%Þk3³%0FƒÒ#d~Ãneǧ¿ÉZ…žIïðr¿NEÚ«*>'×Ì&~ŽÙ÷¿Žÿˆ¨Ã±+²_Åb_&Û–Ý’êFýå‰ãg’Û>TÀå{MîÂEïÅo»k\a›xP@öéü±à%.æÍ–“Âò€$,ói×G~‡¯íñDF÷ÂjÒË’àÙ³Ö:zş鱅ЋRdýueÕ‘Ù½'çeCZ±H6äpIÛ·Ö¾~Š!ôUX+­9êRÚ•?¾]½qÆ<¤|ˆ`ëDΨê®÷Ù?:q•~Â#È&þ§HuÛ:‘Ý«h°qÜÇ«PQ1’¡’[\PÃUÖ0Ö¬’’žµŒÇ{ÜšÁÙÐJ¸\:%wv3ì§I%ó`Þ ÑûöÆt𶑠ס“úSÆ ¢çá…±ÔÜÀ Å £RÜvçœÈñ^¢òêS%’}…ƒ[¢´ŽD‚@4$„Üæ‰c¯‡CÄq Ÿ º&Ön‘;VD$NØà%dMKÃ|_õVÉÝž*.¶¶0è•ëËdñ«ª­õ8HHŽ’»nÛú{ØúŠ=d™™.ïD1Ý_&Oo´égƒ Çù“ !™²-„ÙYX«l»Þƒñ›E_V ¡¦b„Ë„eírÅY³õõ˜6e\°vTŠx¢éá’]óÌNw•di~áw¨J\î|9=HG¤øàRæ‚Ç`ÎKwYƇUé?BWÔ±²fÈ®O)|d`þðÕ½ÙœVX!Jú¤õ\zÙy<Úò¬'5ôz/ËÀw.ÉujÕŒ«Á*}&mµˆœIf†ZY°‰Ø·J±3ŽžÚ>ˆ'…ýŒRé%±C\¹wlþtôç¥TSçõ×¾ÎÓ± ×¢ÔGÊñ&ñ¾Aê dK¬w°9Ôó–žíõÐ"¦$œ5§_uå.2C‚}ùÏöÊŸÓ8а(ZÌ‹/wÄP†º»ÍXæaô%Š¥/Sß1ý`Ó7;ʃ]i wvÀzåŠIôë ¡8å}n¾ÿào EþžQøÔàÿ×Ì3ŽøGÑ!?®/ªÈ¾ vÚ)äe(¡¬Œ‡j£ü°Š@Í‘Y]±¶ãÏÆò›$l0z¤!3Sb 'Ù¥Ó¬’ÉLRÚœè©7'£Ñ%é_’ªfÓs$âur2± Y¹<³Œ'§J›= Âʰ͕øfe¬,´3¹ó¯â÷Ò•¶ŽzFo‰>·/>#y§|->Mô³ÝøqÛ[£‹žf³×õ«i7R3â;EÄ‘têsÂ?Ãøð!Fn18PbÃnƒùq]÷´’}“€Ïmä†ÖB˽e&+—˜:^ÊRƒŽ‹Rß]µH."ãzÚÕ{¯] íø Éc~’ab‰ önsUŒR~H âé’«'y?&Ë5ׯß[ù}ÌÝ»ã_ÍÁð·u‚^¨°x.Ù´œùt\¤»HÏ Á€=ë«õbñLJðn•Èoí ‹T‹ÈŒÓV§Î¢|SMvÇ·´ÓöjŸéØGôø!\¿SÅ6\Ÿ>;ŽÑX]Ooo^‘Kœ;Í\UÇ´4ÊMÖY¥õEØ[Neá8ÁÌLýÚ³3ðO@èGÊ ÿ?&««B KØý‚Øröa…”mñÛ@‘´Š2:¯ð'Lž±ïÓSZF7ZEЪ;Ðî°ï?e‡¼ªfÀGgvý¬.ó5ú€ãwyã#üø81}Hö=\èë`âR ±N¸B‹ßÈÜòxo§ÓB¶Õ3‹ f¯ ŒQ;¿ݪ_ £Jó“É“ò¬À.°“Š6ÿ̶¿iŽM•R«Ú£g6m&¡þiPÎÚ®ö¢Ã~{y¼Èpœþ53Œ¬w™¤¢ËCëò‘\ ” šåa7[@A\4??ê*0!# ÿ"4Ö|¿rä¹S’wSSëŒ)®ýcÐ7:E0ÇõUKµçÐdpƒ´?7ìýF+½–6ž{ß9\ÄGõŒ0ˑڪüv0¹ù(ÐItÇÕ€¨åˆ+ÈÛ¼©jEi/"¹Ê•ÌñC–Œ©7~Žäm·ºÞ{'.j:;AÆŒ¢ü.C‡ ­¡ea¶íBÜ‚u&RMDw«§yLÝ!5\5›I·wÝcX{“ `ÍxúÙnŽOÙdëWÚ•ã@[ò¢îFéþS“q_0ùWZ‚÷Ò³£ ×ì½ìò’ßÕ¼"|5¹Öò7Ò¬PrVìŠj'¼œÕ0aç÷*5¿C|†ù¸lŸW Šf½Ð‡7%†¬›l9(”¥Œ15÷sjù}ª ·¬H4KíÖ‚E’qØV¦$„ æDÂçÕ>—ª¬á> y8wë9öKî™Ì|PX$¼¢s7¨ÒÆä½¡Ë{fÕû.†X uZY½=&Ú5üÔÁž¼’/ºù«~ÎK ñèæG·ùÀ+¼Éõ¶b`Ö~Ü^VæÅì滑•&#Ý/c ÅÄ×9à9}áÞKmmøXZg8iÖš­ó¹D!êånBvp`&M’¯²ƒuu½Ëâ¿/(e^‡å>?Ûk“L\p¨Å@á3UmˆŠ8Ü¿¹gP Ž@M*|ž)'&ˆ²s•(Äà¯Ê˾ñœQ¦|îøÓiÃdµ½üYòþ‹dàOnNtIê0L72ø~,ž)ÜNüt[üD:¢ÂãgM9ÄÛÊþXؾÊHŸò¦º®Û¼íÂü,Ëí¹çKË) ˜çdatC×­Œ×Þ¹ »’Þ¿½9¹e…Ä ò!é´JÜœGJÜé“Ht"öÓ·²ÖåüårèÑO`„hÁÁÙÇá ¿š…)é….Í¢Nä œbCÜaã9P0÷¼€ŸÝòˆÓ$Ö¦Ôýr¾'^1Avˆ;6 Úå˜Íú¥S®ºiK%ÓÏlï&Ô» à¥Ø¡†Dá<Õ|Ëî¬U·‹è³×ÆÜ •Ðòù8ž[z«Ÿã¯ÎGªéÃQ(9“hŠ7ò€Ú%%ð-…v‰ú—Œ6aš›hó‘¢0 ÜþêÚv܆̮e ßu‹32öWvÔ'ó×FL À*Á{gXeÌ@¬Ö@ëw´Y­)3*Ü1$‘t´§EsY¾]N_YplësQƒ4›Ìš©€ç+™8Ô±žËéN$„H™ÇNÉÔ÷ =ì‹Ã·|æôZgàbÿISÈ€Vfž—ãÃDªpÈ#h÷GÀ ª‡Uí„?0'Ó©/“kʈÛ9³LY@øEàH³6Ilj/ÿ§/F¥xo;ú˜O˜Ü6õE»þÎ7Õ…o‡ûBÔUþ$ª7ßp|÷e åïq§— ª”LHÆ.K¦:– ˜¿­Ú^NLƒK•Qf€~‹ÃDaµ¶¨”Á,•æ`|Ožm®B†9'Kfß0èK@û•/„‡I;5uÏ®°3CáDVÁàQuøTÛïï·†gM`†[”š(è¡Ùࣃ<îÔòû\:ܧª¢/ÜùÌD2™Aʧ èÊ{¨lØ(ße%éð@ÂÝCd„N¼‚îÞHo1waÕº¸!K>³ozÕ®ØmmÅŸüX(·g ªlà™6?˜la)R§Œ÷5ôqsø —yfçÇ„œ8³àÉÀ¾ ˆq3¤º ´þÈ˥΋‚e•çyiäL- L®–j’+͵ÂŒÖüíódžmô#Ç–½1¨)C@0q– ^EÿþÕKtãCto®ËBÆ9úð÷¡µ¬z­>B$à»)c ËÏÇÚ½žu1LtÞ+¥É.QYlëôÒt¤”Î`ñØ/£hŠÛgogõ·è» Õî3ÓÍZïÃKÜ#íG’l¼‹‚Ã;‹¸wO…PÂDæ7øRiÇ 2`ÄÈÙ?YË·©Š¯«s\4Oè*ýº;ÆŸ¸íÞ«\ OM<ß mT¹sxá<º ç(̃*Ëév!¶£0êS^r{^°‘|L PùvØ_WYÙ¥-Ðèîð"kâpž‹Âös÷˘™÷¡Ö\¤ù­˜lè4zûGlbø!)妴VÆÇGž]ÞBMï<Ž$\6·r³§Fâ@wÉìÕñŒzϯ–ð{¸Æ±6òöX9hz'FÓ½¨E¾àìëÖˆFoƒç‹Õ=§°’ð__ Y·/1Å£/=sð0b™ 0X¡B›M 7»‹/¯àhãœÁL`{º}‰N"×¢Kžap—âÞ¦=­¢ˆ[«[=ØÇ¯%Cé·/•Ý÷së?‰71hw^úìŸòVD¾`DÞ#ª Œ ^_¬hŒÆ7 M®¼pF}ÓÁÁ9â«‚ðLɪGYPá=?ÁEÍÉ ÆEÁý5¼:ÍäÅ—3ݧ×_“k„è;wöISͰgÀlwü$Ð;ï'‘¢œ_<@çÇ1ð»€Áð.4³É…1z¨Ý›yQ9AAñ ßî[›á<Êg¢vWsÏcÏu5ùQ¡­ÈÍ}_·NgWÒíÔùÃpæÊ3·KX4ãUøU’ñ–t™ó•Ñ ¥=ìlûj©~‚ C4ö—¸¹~+Ú “•1BÙ!!]=’İ ý¹Îiúsè‚(= ×AÁš›ÞLÂ{(œLýå… y=î÷Ï“þÆÆ•xPúRxá_¦ÎDMOJ¾¶¤¢’ºOÃcêï2L4Ñ+’¾Wˆœµ«7wgûr³LºÃ@0åó>îÍBO=7iQaÓ¿C[÷…8µÇtãQÚ:eÇfÊ%ÂeÝ1òùÝ“Kê:W^Xîµì·d|Ñ(Æ«qê|…_´ùÈÁT‰ë¹7ìîpvÓ=ì¼Û ˜Kpd?"57ªâ¼„BH‡[iª¯NàºiØOøM¾9n0E;>NF^u‚ÃW)ºÅ•ògÝMì‘èd‹)W! Â}9‰b vÀDö?Îj4Âf=Öòû:˜Ý:‹Q-O´‡dlù½ÐT®Z Kîs?”ò°B ƒ†ØÓøÄä–§Þ~~úgT3\ó©Ô‡jäò< ¹ïó?À“'¶í<3Réß½ ÍïšZ•·”¦åŸçs6·èó2]çÏbÕµ‰} TäNþ8ò“¯£‹éLÜ´³ô6Jn¢už'‰ÿpz&ßä¥å)~›&µó“1,ó¼ì¬Bî’}Y žd²8m寺U³ ʽÖKzÊËqŒÑ¥q¤Ë«YÀ°\EYâzY)€ËŠ'Ü—:ør¯ú#ëGFó® o”‰+'1|<$§äÖ¯?öˆÜ”\±¼-z·ÃVf8VÞØñÆ?DhAÊ ¼þ@¥†ݛ̀mR&“.ÒØoºHS£`9ôì¥G§¢c—¥m<Åä½cÀy…u//sM(sò)×µG\Mÿ©/O7ûUððµÐk<¶šüK¼Ý‡»U‚N4,‚«–ø‘aYqx]Òî£o]ô]fô¤qmºeï \¶‹ŽÄƒ#€¶¨‰ºiìLv²â‰˜½ %3lja$Ç—÷ÞY.ÓUQìžÆ3¶§èn{6 8d;ï¸&‡‹‡nÇâÝ(_aWãªIDΜšÉÃ¥m†;™†ô,oMçŠG9íAË=¡Œ¯m*DgŽ-jq4Q¢Bg›ÚQH†q)aƒ%ž“Âðòp©[•w+sÏ(KùC9ï =`'ÕDϼÍÅ·¯OØ#GÐé¿Ñ×;7™a,Š øhS‚û£~xaê/–žB4úáêvì¨(λ¢™*´ýŒq˜+æœMƒQ›’C£"lgG¨…#öLÚß´j%q8ÎF™ëÙÚtÅ[©pø´‡‚XÐ× ¼k~¤Ô± ¤ž8ŸýbýY¸¨‘ºk„ÝoC¼= #Ç7g±w_­muBïy'‚`ì1ÜmD2üÚvÀ"#yê$1{j &×ý ï½7+%•B1\Ñ3ç×up¤ MÑË䔾êQû·'WI5IãKQ;x¥š,Šþݶž4Ê:þ£`Ø‘lP¸8?Ìê;ª\3p^ü`4<Ìj? …½4æV§¨ÖLUâð¦*¿ìs~yg™‹9Q>Ãc$2àžÀÏR¥u‘¨U{šÑ†ׯ#–ÅùŽyY_Ã~a̧Π}´QoNzb$i,œx]s0'âv’K‚]žBwt;Òg_€i¯kÌÑI-ÀЫŒm{Ã}®†hXD•ɧäÛÓìYA|ÞSìi þpçQk †‰j‹+Žšó+f“G 0‰Wepfr ¶ä ' ½O…33¥åùÁx»ò²0NexK‹hᯘ¾™3Á‹ú–y¿¹Ùi$ õNi™_æ(Tj«2§2…se¥)‚2Á×yû"ö÷U„ïmÍÖã¬æÍîJ'¶³ RVHD yŽºJ#|íy<ì>©¼²:‹ Óð"ˆ›m~ć¤ÞNÀU ïŽtø lÿOè õÝýd;¹(˜BÌÇK«ÿ Ìàï÷|ä&(G‰3É}˜·)'>/=¬ÎÀ¾2óêšð’pA÷|­W)J±>E®wÔ냼å3XÊž¡0¥úYjïïG×Ó›O“êø•hzF¸‚Üù¾ŽºpWÕ߬•‚‰Î΋¾/ŽE¹k'Ï_&¹WÉJT1¿YÉóâajàb›èOô‰Ÿ*qg }ÈVQØ FÚƒëHoèe‘4MJ<ì ÇÂ`ïèf2Òýà]àÃÙy÷ÿ>ÉY¨ê&ë Ž›DeµÞþ³‰wß~l}Ì`ã ñä èÆ…¾ÌFU‹xH> y… ÝÑo´é”!4è \zɨÀÌÖR€g¯ñØ î'›9Ÿ:”v½"ê®«è ª'-ì–ÚkûúéduÄÉ ~ÌÆéb¶Øó3“åõ„~#Yfìl„Ê _P­.c/žxÛÉßúç8ß"¹€ 8ØE–ô"y”-¾}‚c–ÂæÕúçÉ Úší# ³ÉP%ʵãëÖˆ=#®Àc— :zD ©Z°vÃÁäMüm#׈úÍKnXµÇi½Ðvœ,XÏj¢Î‹ðŽ[Ãz¢¿5ØåâõòÈòÖïR*‘sÙu Uð”¦ã+lŸÁ{32XŒ¸Ñ×Z*,0ªRË4àÚ&%@Dœ[ûbDl,SÈX#d“‚ûl²z‰‚#œYŠB4üpÌX=ïî t@tŸ#kÁƒI4¿E¡rÔù`f¼C~æãã˜Ì-°.pÚ–)—0oÛð¶‘â)„çޙêѧojÀ3×ý$‚?fBgn(x8( ,n¸/§.³Ç”)=^º£¸rGÙ=V<ð:$jîVÞièwc!X\ÇG6¯!ÔLÜ€-ééëA"³ul)?Ä]¯ÍûäØ?’îÜ÷Ö|¥A·}ÎÁ6õ°Rü{þ}”¹¿.;”hðl”¡“3ÿ¿§Ó‡£»…V‚N& M0×^ÃJḇ}úûHÁúµ†Ö±ëÎ=w)1gã s.RUõ¿hÎ&*$›Ã€Î …«iÔ¹½yÖ¹u…øæŸ°mJÐl›…Õ‡1Òu,š_ !ñ¡Õ¸½¼§õ>à2s~¥Nð$Çm$q¾¶GšEl"wº/TúNøˆ6-Xvü¢00§#”èè®M‚7Ò²ÆÒ+} o±ø´° ÌcþiAv"­M¥ƒ·^F3Ô…„v\Â8¦máÁÕúõ(ÿd¹^ÉŒD’°ªÈŠ Àˆù¢ôJ%]C)þ’È}L¨›Àƒ‡HŠdJÜš’Vú#<‡äõÛœà=qsË’%μðBlØ\ÚÚ1T“ ®ˆP$‘þUß dÐ=®{(¦eOPðUb³d£úüÌUÙåuñŠîÛÜ…ö~Aô*®ë”Ùõ(‚¼-õ å«®ƒZ N•w¨çÀNÏó|,]N Ÿ[]OJ/t€­EàdDºqo>dŸWÄ­'Y6ør 8ëx'ŒD|ªOzöó‚ëêu[šÖçû©ãway Ð ñ4p¬:|ácTIq’(9Õ ‘Å" Ö: ”gúîê}¥VÀÌ¿¦Û”Øß'fBð*PøÄC»4Þ\™Æû¤ÕÐÂz‹2ÿ:Eª~é#Q¸¹gìã)(·Œ'[¤2ëúðÄøyàé–?+ÓÈ< ¢ö›ÇBW¥ÓFâiÅ`/ïcžz·L¡p\²ÌÁ¬+ep”Ës™ˆKbz hÉ<üX¦QÕmöÈúv=rvõÜ/Lj³ñ•r qQ'muxsMôßQæ-lßÑ<U Â$Nøú â‰ÓryŠžTÌ2ü°ð”ÐgñoÐæQh~ËP‘Nൔgm×~Í£°cn ŸôfáK…LÿRkY˜“KDq½xÊÿ®m„t4Ü2›rRü¶ßuz…?µLkïsë9gi‡å  ßy}h“}P¦}Ä€ \ûë{Õ5ŽCz8͛٠hŠ£õiòVœWV÷±ß:¯\AëãJ¸.+z°ú¡¹‘Æ=¥+è«IBPÊì#‹Ynã~3=“i#¤‚^i,â`iÒV{m› d¾›üá$XB^ìeùûÕÍܱ¨£qaïúÏT*´RzxdŠ× ¤ÊõhÔ pÒTñ4Ö—„ÝæþÍEn¸ Àž:´¢Q˸fóŠâ*iö‹ ªaªÀ"Êe`„â×{Ú¿/‹Í´‘”•g‡dòU>™Þp«Ûˆ—ùáaq°ó[ÆXúˆíª5iVºðÑ/r'¯Òÿ-"ˆ‰€·m—”ëÕGrŸp@ŽÓ|4£·dW8_ï\Їµ³Ÿ÷m{µb²ÏÌlŽ0fêáQ¨_È<í‡}GÉœU-þ;vÿbºò¼Ï&¼5J¶»^÷ˆ{E­Û”<ó{TÞÇ KYvêu.ýB³N„mT¶ø Å¢•}4:}¦ˆ¢y/Pi.­}¨¥OºSmÿ"èh  BoÀ(×øþ  ²`v­ Ì•BÃT†ê‹{é)äFîÂÅSìQžÆÜm€•“Êàdi™ —U([b{¹ÒÂvú6hfÞr“¡÷UD2Pi9ãdF¹P•²ÒSÇúôu3*…¸½÷•E-5Oʶ½RV̈e²,¡b©‰=ìålÄÇæ6Œ‘åŽXǃ&ì'NÏ[€µ™í§>‘GÊ pm°ðÙ¡»Šø¨ÌPóÄ’Çßgù5Ò3 Aþe˜ùÔªv•›g}‡ƒÔoæïž/ºœƒÎ+|8Ë­±ójpÃŒ 6ºâ‡dúBí‹t(Ÿ,ëOloo w(/Cå‰+I§lM¬ýP˜•ßîgMþ~ Òôà`†ò/Þú—yàJÆRˆAUì§?£ü/ªˆÍîmK#`-.÷}„| gxÝŒQx{0Ö€<ҘㅺX¾ p𝉾ÊF¿fÎj €d( ý‹Ý©’ƨNqªJ$ â”s¾1ÔXåêjŒõìû8.@§- Tõ€ˆIq‹¡™l€%,Ø#B<2aQßÿuK­YßEXuk”â -T¼9·bWÃçÍ{ “_€ï¿ß"*g× ”·^=¦Æ¿.ƒ‹UÍoü¿ïW7¬¶ÚÄ@•K °ìÁËЂ©Š·Ì·ÊF)\Ô|Pıºr;7€èWØÃÅÁåÓUVg¿à)§ÎȬJïWÍ‹õ©WÕ«i¦â[‡Ô¨› ‡Åi-åR÷¤N¡¡OÒ#œ½ËD-‡<œŠ›I'Ììòy=Qíï²R±Ï> stream xÚ´ºeP\ßš=Œ‡\‚C£ÁÝàîw—àîÜ!¸»»»[pww^ò»3ÿ™{k¾¾ÕÕ}úñuÖ^{Wu×!#’W¢4²1ŠÚXƒhé¸Ò2Š6VúÖŒ ´ßm,Lt ,pddBö@}™µ°>È`™ä A…ö&N82€Ðhÿ4¸d€ }eW[ #€BÿCÞÆDk ïðZ›˜Y)?J„ll]íÍLLA{0ÓÒþíô·ú;@RßÐÂÆÙÁ  om¤“¡ÈÚ88Í6Ö ©¾¥1ÀÆ  T¨(‰(*ÄåTä•(é>+9ÚÚÚØÿ!%e1€° ¬²¨JSQRþû© ´þÀoBUþˆÿó‘ø·\FDYPYC^„‘þï=N@{³¿cÿù2Àÿ@û(5¶·±úg€Â²å¢§wvv¦3qtÑÙØ›ÐÙZþƒOÙÔÌàlcoø¸Ú-ÿãhmôA'Èø¯— mf´vþ-µùWÐêƒÊ¢?èÿû ô·§å¿Ò@à¿1Õwø§VZ^^`¥of Zë[~$‚ôA޽|o Ñ·„ííÿÎùïýÿóßпÛ|Ü™–¥»§¾ó®˜¾µ£ƒÛÿâæßoÛÐÆÚÁÌäð¯Ž@€±™%ð/z‡¿kffýOFPVBTDI™VúCxÖ´26ìXÓ\@ÿdÿí'(,Íà``0r²>D*bm$dceõÚî/}ÂfDþ±Qàþé.amlàü—ûɇþkù)þÙ¤”;ÔÈÆÚÒ`4†£—µ}ˆâÿŸ=ö³D--eõ­€ÿNèfé[™Yºþ{Þ¤¨ÿB¥ø?ŠÍDÍ\€Fòf CÓ±ú/¿HÿCô‚Ö&–ÀùÇ¥òwY~öãÐ1û{fhYØþ#ö¡EC k ƒ€í_eÀþïñÑèeÔ…„TD¨ÿC.ÿ$‰XÚ™Y›˜XÙúööú®p `be¸3~HÙèòHôtÖ6 €­#È`lc÷w!99ô†]ÿXŒŒ¬z‡ÿe²èAÿc21èÝþ1ÿ¨üßúþù]ÿØJ {  š™ÑDZý¿RdôAöf.?>ÔÃøáÿxý÷7í@ö?Âÿ_Õ߿۸¸Ó²p°h™8YŒl 숙™=ÿ­Öð_§È?Êý ø¿í¿[º á–æm ¹ýÍ“ê{‰äNC“qÒ”~åS—ŒZJ™lÅÅÎÚ"òçù4z§’çÙH‹si{%øX¨“ùcX¾­7Å—MÜ)lë{Éxá"ŠŽdªÒ©ø¦Ê,z·SJfæh²L§6Ç4TFŽ„8[;#˜ÆßQ®‰µŠ›W³¡ógÐí-Q]‘qÚp'ÛÀAïèQáúÝ‚KT3z9_G$al»:5©“r”ukËçŒ`Â+ºðp­”(¬áU\|*î0R!Ë$Xbí{¿#ЃúB&ƘŠR¥¨´-WjrM½`„¦sT=òLŽgñýzaÂtÕp×”"ÝÝ)¾ñs´úbîOªèBÊ–Žr®Ü|yÍ̵¯ŒJ€ÏûË¢Q}½– ³g™;{Tûœ™§#„ _l}!¸Yèb¢Êê…~2qëÔG7ú–/Ôgüý{G.¯S0/!ò¡G‰ÂM;ËØ4b)»ù–·=<ó²½>8­/W¹ô­ø ïÜwbÁpyò€[®?ì¬pL|ä<”Të²ß?cwW0}³hÝ™¨1•~ê£Ìé°}Å^ì¾K*é­OÊɤExD©²/ -\¨µÂ¹MÄ4»|†’ñ Èéé¬Iå ¨ £@É­a“JY ƒ>1§v}lù•ãT4ƒû΄·v‡B}Ñݵ  ÉËXqqÈÉÊø`=ØÝ>$}´Hªó='¢žÖDÄ[¸dªOq ˜­©½/ñùµ Ü×íýüúûm emb<¡ oÊf!zê¥§ßŒ&u?K¦ ¨5ñ«Í›8ÒZWÙæð‘Í*äojG‚½w‚{Y0BÜ.SžJ¶PPZcÄMV>€‰ø†‚ר%⸎Ìï9™rúE³…¾Ù‚¬“ó+ÔåêšÊcÁà¶/IÛ¯e¸ `PZíö t¾[VôÝäª;ëò$<­ùR™&ކä¶qneÏÌzü5EN¶ƒ_D5•®®æ|P_7Sšò>eÀGh)fÒ ÔŸàê0Àÿäð‡Ùé‰Þ¹n®c oúß b­‰HÚƒä¡:&ɘ4iO"ÍÑüWí ÿ4RS|J%ó®>"$ ™ø­™ùU2×(wÔ{>¦™ËV' Õ±92úC§‚è}˯0TémGì¬Ú{޳M®XLø wÝòÇtT€EF<í9fêp6‡Êƒÿª³‘D ÖœT]‰¾Í¿‚T#å½[@åË„¬wÄù_Ë ÕN-¸<¹†OdClÙ]{iŠnØMÅæÓ†L° õè˜W–i ž¢ãÉú^ÌêU¤ú¶ÓÖráé4~È5ÿýRçÝ á"?´ hô'±_µD¥£Xâ'5UdtÑæˆk:ꡱæȵ÷H Œ i ƒ>ú=Ö…•ÍõfQÈ*¸KÛÒw¯7}£HÔÜDŽçïå„»P9z¿äÀŸƒ(©Rcòª9>Ãû?=Á›Þ¹W,R’J^µRÂ’VÁ³»fÏ€ Õ×+ßjbÓª»Q¯õ1’³X|~1 "†Þ`×L+V1ö„öH¸NøÅ+¸™xÌ^×dDÙÎj¿¼½ê/5õ3’“0ô>ŸíEêÔ:Fg–$# á²Hu­üby m•ý]MbøTö$u‰k’0ò,}¨mº=0‚/‘=Y¾?<ãþJ2|h_ ·u9%V\qœ–;·àÄçKvXZ¾ŸîÃcÐdî1MêFžQ˜¢ºZŒŒ_l±ý®&/>êÖxÉÑõM8Zéxéñ©ôj™¡î·_»È3“Ó+ÿGMv]­t9ÈIŽåÚ òÊÎåÛ}!ÁFn4J…_@C®±V0É] p0R×}ªÒÇÒ^·ìd*®ýÞ²yâΜ =ó“™Ç[ª‡¸–e"Õ~pŒ¨$ŽW²qÈ{!³—Ž ÏC±»¶ŽœÂ1;­„¥& Úñy9J†ÝÄ6Ëj‰,]â´Uw~Ѹ…tÕf톗zXÜLFÊ©ºc uÿDCÝTzáfô~;3|wä€ÇŽü•…°µî8šY9óáPW,8q‡žÏ Ö³·¶y¤ÁõnØ6iE÷¼ÊW·'/¹àÀù7¡‘Å'­€Ó1TúR¶ÛÌe;fKò~!së±V\Ó#4E2 Ï&îÊuïÕ­HöÆìÝ#.qo¼>ÜóøÂµÉæèŒ¡  &dÀÕÈúa²iîøµõÉ ýŒ«}­ä\ê†Bg¾Tå`½f™¬¹¿½²CÉ>A´pžî¸˜Ÿ}‚KPMZïú©ÕKËüœ<úÄ:€2K åu@à>‘‰‰W¯)e;–Ç|{(®ž &ò:{¤üìµ êÂÉýPOŸÈu†¬]·EAb@ m‚øf´/» ×,O¿9‡¯«Æ#‡wë Úÿüy$§h´˜ß‹vrД £.¦lKÖôWˆ·ø |x1˜ ¾FM©j:ËÎæ Õú”ƒûâ¦ä©LÍå³d•·¾ì3ó¶ÅØå0¡dž94‚”[ž :1<ê²DÍÚzx[~Å ©QÐ0eÜ ‡ø¼Jñ*e\1w¥ÍnäšoôEìûè2Š{©ŠÞ‘ÜŽ,'ò!Ó8·üf*8£|›$@ñO±° »WÛgépZA-+aÛµpò@åè¼0K sAJlÓA…ßùÛpÝÑ× Jé¥Wú®—p9e±ÛrvèüÆÓ:vQËO3ñ-è0mqÌ€ÛxR<~Ûañåšò&úHÓÓu,yk‡Úíxü}‰¯ÚË^ToeqæÆ%ïãGÁ†—Çñ+ôH­(‡ÅK¤™=ÊáŸvF_zHÈ»gL¾w.àõså­}íÚiX¹Cš 3EG¨Õ^•è«Vc±[h­»~~pÐ\I ]âŠÝÁ¨–íÉ@1ʲLA«<–\Œ yâ[®¶Øã…°\Më #+üŒI_Éc:¿Œùõ7wh€”×#RÖŸØ^·3 ¢¤Þnªïy‡lÚ1ãO¤)ñ¹8i.nœfv:½1Ü$Ýè!.¹B‘²­M–{ ÓÓ¯PFvóvî“ò¶ X"X|<Çë4þõIw¥ø]VŸ¤·ß¶‘Þe Š!ÆQÒ|þ:?o„&ú¼=T¾*¼Ç’sî~ò@Ë`«ÃQI6¶„¼ÚS]ˆDIb¥é;/^Ê‹‡ UÈ_/ §Ÿ“ûN÷3A©‹ìž…,Ç"¥¥Ï8ÓZXW9°¹M‰³óRÔª8Æ/2ra¤Ý,®¤2Â.-Å–¸“Žá4tý–—©ÓÊØˆÿäd„Ñ7 Â<;žýÔ‘œvÂ×óº$`-f<È ýMèL 5T7M´÷ŒÐ´RÈùpyÑ}ÌD£f­yd²*M’#c8 ¬.õbᕸÅ.±ÚžÒüÐO²à¨Ø¼«§Wz€h”†@?Úµïv}Y™ø(£d±™ÿ WGq¸†Ðpв+^4Dk¥ØÒ棶ÖB‡gÊŸïâA&“åFöçu=íõÖ…Aíª»K)Ùz4ÉëèåuƒªZ󇸧s‡ævŒ« ÙPˆ¹¥ŒM‹Þ’3¾P®8 “ÕÒÁÃÍ_Üq¤Ï‚§QŠ…(‹çDö#FGƒÔœƒŠîF Õ:IÜïÓ <ë½jL TÝ©úsÎ|€§ÍİãhVÎ=ïƒzýXÎ$õS£ß'cмõ—ð£“ïÎjP¡«‘ô¡ŽâE)Ý€NXëC´iïþäÖ•Æñ©Ð|R ¯9½­¢ vJÄÒÝž%x†,t‰Éëó?ô†ÕóÇ£ —ÐFEѵjws87î—ËYmdÑáEÖ+núJ£Ä#Qãd®é±WÉ̬Ìn7¶1œ¬¥B)Ï·¤J¨ÚíÓ´û§>Ô¦rêñ+Ü}Ö”\J1¡^öØJÏ€»§‡+1þÓBïÑ×õàv°u~¢'Ñ^FÝV«óu0—Ô‡©D$Ó›á´gy˜º„Ö0ѹ¿k hžÖé£ÂG$¤_]経Ý2z‘¼% &þ‹y)½WB3J!®3UØ…F1f]ãÆç›-;Õ‘;Ì3žß¦Ì3”B]o–œKgÊk”V¨tóà“°o/ЇÒ&@œ[hN¶,r®Ä³›ç… ¢1ÛÆ³Aòn±!üùR=ôý²7ÿÃZ•EÙafH´œ§.9Ä«”3õº*nŽã›FÐ ðS«7¬ $‰ÛN?¢è¥ËPü Rý‹»æ»8I˜ûØ4ad¹D»Í4 s‡x)ÆèVnû D‹ö¯Z´ÜüÂl„ÔúÒWw™ "á£ê¹‰{ º{Q2£‘Ùt,À^øœ3“±mÚeº”æ2ó¬ÍüDuÀù™W ³˜A!Ø™èè;’/1L IFÚg¤´É×NhÏZ¹ì÷A‰¥ ¤ª§G ýë=§üé«å`Ò(ÚN˜šòëñ¸® o!'º&õ›´Šwš”çZKjE¼³ˆìYh#ÅY&/i²<×b×F#ŒŠZ.cPŸm j\èDjõJÐ ¤ÖÒ\VË!Z,8ªÿÁ†Wú_X™Á &³Bì¡Ú/‰f\üÎâ3Œ¶]±¼Þ2xâšbè1‰CÊ#µZ  û)5±Š]cu´eG¹sÜ‚îèw®}½šG…%¨OI¾´(ÑÅê±^ŽWJkÁÇXTÌyãái£À×PYB’u´ÞŸx 7 mJé›Y·.züXßéu$ïPb®<ŒÒ`{µ¯“ §BŸÔÉ4+ã–]˜°%ìD$†øÏ·ìãÁ  ±1‘YÙmžéêÄ%Â2qñ¬äÒa¶+©¥¾ÉTíÖñ4¨«oS¶Gð‘¨ñÏ—œKJfZP ¢LP‡6à{ÃÕd t:Žô@íð˜ Øã¨ÄYPÜ`„»ƒ)?ì‡iÒÃX1m•ÝðˆUÏé…*öœ¶ˆM.Æòºˆ Ý®oïcôóKಅž³‡î ru¹5Sè6úÅ ôÖwÚè$¿*2&Woè ‚ÒyE‹±×IO‰¨RuGˆñ[<UóÚ1ìôuüÐ˃9ÎÛòêȺùh\°…ÅØ £™§¶ªUC÷œ^{Æ’Û«•“ˆ˜v½ÌäEt"Å "¸!ƒÛÉÁ|u‚¡ldÇ~&OØ[Í‘Û×qÞ ©²¯H}~+IQulúcôš7>-¾öôe*– |2èáËŸÝ[{¡UàªÖü{M¥É–Z}úó f*ƒm"$N:ÌzïtÞc›µºÄ,ïД²fh1çQ_Ñ0V6Ûû"»±…_ȬEG+Rðs™ey)ÑÚD1Xà Ú¾ fþÜqÖn% ål³ŽéB¿ÑÝÒÁµåá<ÿOйèRÖt2»ïæé™‚Ý=—ý 7Ž {Ë„ò.Uh¹Ûbu®.+=Âïx>n.lS³¹«™eo7:€$ÌlµøËà¯àçÞ ·Ôñ³ †1§OÅ Ó»:;LjÒ²ðä_­4%ÊØ[_è4·Y“¬¡ê"móÝIÞCfH•çmpëèü(Š 4’- n••ÝáPQ«F¢™•|œ¨I/Ëexå Æ.$pæû5š0š‹tQ}½·‡~αúQ¿£¼+·ã¬u¶³Ö.$Ñ+X¹q=¿Aƒß^oOüA™£ YäiÌ/ùÐïóVžw…ûÈWV#ŽOþö±O\® i =ΟU—·Z¡‡kn·+’ …ž…9¢àùµ½M ¥u:7£jrÔ3ë0´v½ßýÔöx¾l7¡YÁFÂüÖ§ÄJ¼‡ǰY‘#bÌXïYûL’eœS°î"t&Þ\¢¤­„Ì+åÐ\>‘Öo @Šñæ•»PUDòåÚùhíwÂàé°ýúÄŠBõÂÊE¯[»!dYCÂ,ËK] ÕÎæ¤ Cšª_&ñ0”9…¦²€TÎ’U{ßΞ#FbZ¤C÷Ë:X…Më;ÓAî´+Wcùʼnޯôøá‡ßUÒ ,„—âÝûŠÀ—-Ü+ñLø&³ z|IØ'£“¦÷I¶Ø&µ‚^“üÏžQ–ùƒ/‡àhøj ‰³IYÐÈ~ÛQüj‹v]¶\›‡ì¦ÒÜÈ.F=3Ò”i¢™dï-…;_ßÝ@uIÉE%^ŸfŽ‹ùÒš¡¸‘ ö°É”E 8`;Ó¤ð$jMe«[iÙGƒµÛ¢Æ|m匹k†õöxêŒq!Ì kÇȃßcxù%^²¦ÀF6´bCf³e]Г•å#˜0ÑsÍ`fL9À¤é369-¨€&~¢“+×?Âç£-:—§{nKÅ‹QEeÌQÉÊf'r1±äsà`n·öi3»`f虽¶Ä»¨7øã.˜!þ»~cÎë³ü–2@*-6±¨3ºÑyu~…ðÖOG—úýÔKQ]ÀB÷sš÷ =h‘<%µQÕÑàOÞðÏûˆhã_#iÔB¯€ï%eÇÁKqØ™QýaÑB XÅÚѶ÷{Š]#_Yq¼8¢)œIBÄq3,‰mâ}dåäT"—5‹<<©ùKჯrr#uë  ¨o?áH†“ÆVe.öܾ›ZsZ æï[ù=ûìßÜõêŸ>i’¥¤Œô}¿Z B°ÆŸŽ$³ZÀy²” é-z–·ßç·—×óV?.퓌¦/T˜U¿õ©àhÖU¡›qc›øtJÃYïk“N=2Kùõ^ÔÚ&£ý‰Q%ÍYÑEíûëÆ`èÞéô•WæÝʼx¡Qs@žY—2€1*€Äy™QÄ-Ï­ÓÝ@a²‹¥q“§"N”Þ¶É*ܨZ†Ü³GÜnâxNÓ¾t ‚\BçÔÞÛgÌ,…˜«O·ˆÜMºìŠê I߯„ŒáVe¾?'ú(hÒÿ¥ÿtʺý°-½b•Y··.d%¶§MW‹‚Ä¢ÕðjpD±Üµs@ÃZÿ—;!vmÖkœ2ûÆûÎŒ–U$ãtŒ¬@ºQMte ¼©A>]gw¯Ø×oϺ´möÃü~øl§CÝ: +,Dƒo{5RåùYß t~ž¾ŽZÔSØj°uôxŒ-)ÆÅõ#%]æ‡Ë—T+žèR˜ïyÔ}þ„iC{KêÜ‹.7Ÿ—nP[,îa£’RMj(og‘{-rpMsJSõ#(šj3Q¡*x!Núsšc‰Á© éì}¾·Kõ™v…3Êg?Q” …ïS‚ðÏ@å\•éÕº“¦ñøàu†Ï\Dˆ#ÛrU ˜FX†q%PYDŸÞXT­1k³³2S³N¡P…–}_*qødÇyÿÞV²k!]]#búµR~ùpjG'þÕ¡'vWdT:zå-(1 ÌçÑ’­¯jé·:l1‘HçKÜ´C—ÍŸ¢ì"O^©åIüÕ`ìi=YÓ‹‘ö/ŽmÌ—'Ç”øW·!¸Ó× ÏÐ É('º¾O¹ÍvK6X/À‡Vqi3ñ\˜­l(¤ ÚÍWóWÝ%¯âzôÓXÉ*T4zÂî#»Qm:*tóغSÔ{B´ú/‰ƒ*¦ûV,eÚ2Œr£J!þ§Hñ\Yƒ_|qn3~Öw$°dp;û¿Ôbÿh‰œÇ—¥ÃÁªyâ z1è$¶pB>bÅ@ âOÿ™B*¡YB¡ ŠÎþå-QÚ9è;š1eV£N '4 Eô5S:‹ eúM¦G÷·HÕç ê¡Éá(zåþâ˜þZÒË™t“/E©”;ˆ1S#åëPøÓ‡}DXoÃÒLVéa Yøë@ÛcÙ2Î6`‡mžÆ ÊÊ{½£»“‰ñj2`áxSóS}–h¼nygðÙ3ƒwöu ß<6XÂÍ“kï/—ß’ÚÔ¼#B¡ç¦+WWïh~F¾Òž‚=MÜü;bHÈ'œkÝ·”¡¹$lj ï•o¥f:½Ò§œ6¦y<äh¾{´þÞPƒ'’šA}IE€åÉ c4xo=vý@pÎBuv^ö+H¡}ã(¨ ÿG¡*šˆ Ÿ#Ê ›Ñž«{Δҟ.謊U¼H¡b:¸)NRš0@™HåOwÙÈyå/Ä£8}Áð¼i üz e?_å™P-Ë8¼]…aiÛZ¶†G_ê}ˆåi¢5ö£„õ¶(=îå1…ÊhÂ"p\<JßR5 q‡9ž\(Þ¸[œ~iXI‹ˆÉN¡%Õ££¿B¼•0ÆøЛ,ÚfâA›zÉ9Tî8ÄT’tÜ ·™CŸ.)C[ý•ߣ¬U@FÀMßÊs¥bD g—§Þ|‡!êú5µ3t±Äˆä‘ü~ΰïw‘ÇÐk„†(©rÝ,g¯j‹Ê³Oµ«ü6ÎòF­ÉõØÅØ&1X=ýœk2©þà ÷Â|¼„FƒÜ|¨&ŸZç{”v–Æ2¶…盟'ÃE6ÒEq ¥ÙO²”‘SÙ)¬gÑT ·½Þ³\cϲ]²HqšTQ©@×–ÌìpŒ„Äý’õÁèª{wÑóQo¸›µûºÅfưіÀ0¶;öxd¿ùÄΧofPbnÄ]‚H3l”àN5u¢fa樷¤«I/Z*ÿÇ/—°ƒÌwü¯ø%rÕëZµÉj@°²¶ù½+"fm‚Å1ÒI‘Æ9=]:ö<¤Þ\Aãèbßo‰çºuÄe#aÚ\½D¦$AÙ1Âs%€Ø3ºËƒŠô©<œ¥Ú¸ û}Òš”Ù AXtoËÁíݽ“z;zm_ ÎÔyÛ_"þYÃVG·GÈŽŒò¯c~ÅØõD  ~d›Ò»±ö¼ã‘f¯“Ký#Ü ¡‡ÚÒSd<}'æ¦X0p“T!°¾~@ôÛ„öñ/mÂ2S•çËw&¿±0QÌ3X‘Ê_`yO7œÃi]Û3—ÖÕFY1ե㉈/Ž„êùNgèòšn®¡8KiÂïø1„wmF?GLõ7ÇÔ**¾yRµ ï¯Ñ{õÖ-•ŠP×`ÁR©nªNaRÐ%ºÂo&mdÔ–Ÿ¿RÚ¥ej¨ðúÆS£A¼r—­SÞ‘œËUQ1òÈp¤ ‚|2H4Ü×Ì·¾=»7†ÝŠýš­ƒ Š:¯ë˜‡[6Ĩ„³_÷#Rò–½aô³ñ[®…ÊË¢š1©ˆ«±~2ãgÍëùe4ªùÕ½²»KóÒIÀ«½#Ÿ Øtô/𪄺Dùær¼÷O¸OLùžÊäßlÑmîüÀ¹›ûêÚÕï8Í”u#w»>Åÿãïþ^¯EpÁ‰þTƒßG °±é¶èŸýû¥ùlGŒØ»Bmö˜'Õ€ÇÌA$oŽîi¾‚e³\÷¨uí[ü¾$ʦ£Úf:CyÝ(ÅÙTVÕ]A­„yëFØE‰_?ºgÙëjYö@G@Ìë!T§ ÂOOº{Þ`RÆmÀ„â‚nÔ˜–)þ|^áµ+›ž‹¥Âjh »6ˆ' †9Ë‚)(‰‰‡ÄG¹ åcótBù•Ù™¸o:‰µ?WZ2™!©ôËŸ‡‚¯ÔËå¸`ôŸ 7’íz5– ¬4Ý»U!K|CoyTÌ;wF;w3 IPYhU\#¿Ùœ ñd–›KèËQ›ôO;í?칚n­ÕBFÚ²Ó‡o_Å9GÃË2i»8õÊwP2ÍJÛ1×Â-U®ò,³p_”D÷–æ¡=ËÞ*mÜÎOýbe6·øJ°›m?éJ2¡_c'àÜ‘í¾eºí=®h•Žm_ÑLøÆ‡Í$¼C´ËÔ¯' ÖÜN“¢@ïªÜq#]Nh°T´Sø+ËÖœeh0G¨ þ@) f»kræ5ÔÁï´ÙIþW‘Å$¢F7“Ñà~’‡4Ìtn2a3Ù·.÷S@•=ÁáWIcÉÚþ7¯˜Â’^§H+UĵÅßàÄpIÛm‹¿„“-1ÚCÛo­]~Ð$˜îÚjHr.L(?zSVcëR²§I÷!\j`^ÚlÎdÙ c¸9?þ”…<ò=ô¬o¶øiεï‘K‘û\˜c‚ÙDGbjô ½vHãèTƒvÕ³åzg±Vgk«‡Ÿ²dŠWøÀp\KÂ#ÌŸÆ–/Tm+oÓäÅÙ•zÕ7™ÅçüT.á õðd[IJt$Ödô:6Jm`}ße ‰ÈI©aÞµÖE@¢FJ¯U¢UäåfG0x`õ’ö|êp¼€°É"ô0¦z0£€À=­¼qV\Ä[Д[œtD6®}uíA:‡$Uúæ±,÷f´z¯Aøµ£ k%ÃO¼Œ1X»q² bÿUšïýûÒ†–\2-Ö"«¬¤FíýËñ ÅX å £QŒ¡éŠ pãçnßBóùk÷oŽêOB1bZäŠ%ˆ9hͫϤÃyZÓ/{jdë»>O¯„ÌE?ôÍf]¥ðâ?‡ñÑákAï/CÌÝ÷û9—(ø;•rÛ—tágÀµQÝ(GOeʹd\” uF÷¾=Á};w§ìÂ|D™%^Jz,çO'8v¨[ž¢Ùþ²PÁoÃL»)T^LW±*•ÈòúŠt8Ë.êª, 1Q‡¾ÉÙ2µæ<dR‹þI*‡ŽÑq%Ä;ÀVê]83RQʦm£X|_fòÕ`;LB@§ôT0ƒ+¯$øm”ZT ™EßO‰æbõç„á+Ú—ƒëýî­Î5EP(¥›Š»ÓªM‰Ã)˜ã[‚c&øAàMRú¯íãmŽç+‘…:Nb+¼¹ƒè´O•<Õ1©âй®Œ*1ÙS¸Â"V†$–ÇA©Ü+±>‚3»"Lª]-Õ5m²IS¢«Ñ˵þw îòüÔír°zɸäë´3˜„Aâ ÁP —ûà‰%"ìi…E‰SØ^ÁwÍvë1ŠÏ%”zs²‰Z2Q¿Ö-ç3ÞÕsjÀ'R`¢ÜLi’ÃZ„V¯¿sµ4=G¢é3‹Pø/¨iÄ$>ãîãîhgÓ¨ž•šðÏ7 )/S^YB=;»Þ~‚vZÁ—qžò*fmó<×Tž”·‡?Æ:ÑÜ4äñ8¹µ·cP:$¦à£Ô‹©÷þ ý¥Z÷xO°ð½ñ•®©?w£zŒ“À<S¶fA\ÏÌLËÞßöß9O—f¢û fLèªñ(ñdÍ^㟊D>À1uàBk÷:1rn1Z c±ò‰÷IÃm$ÙÔÁ ó±P}_æ3cOëÌ5"Úz7?ÛOžå²¦\[â°5çþic:ñ; ìð<ÿMB(áŠâ¼Œc¾µëÈIÏyëî³wˆôÛ± ‰èþÊálˬò¾ ]^Úˆf?O,SÈšƒÒ̼âZCù]õä*¹à®ã7Så—!Ƹ¸½ž\” Ô%–O£(o}O‡Lõ}£ ®`šÐðð fÙ$ÓÆUôS©FÅ[…œGq;¤|'r_¸ÍIô:BÞ\Ãà4(îÇE-Ú–}Uy<žùs/âÈs‘J~£ù:|na46ðÅ»Ntiø ¾¼.ÖSËsuƒw´š²WÔÕKm]\E”>Ö™zÉ6!—"F¥ÌswÄ’íX_Ô”OáÇ·Ç^³n§]A¯´™]u¸T¨kKÁê;{¢ CÌ…£™CTRßÅîëó †[˜Æ1ûˆ9™ñV¢¥n…¶{Ü2‘BW«.Yè-œÖ<±ùP0öÌÞz‰˜Ú©7焲é:»Kls”¼}—Ž(K WÖ›k9Ú&*‹kpáäÆ`¾5Í085{‚Ãy—B"]ç&r³ïÍ;?MŽkòÕÆ{ª$ºpxC´¢HkºÎ| "Ñ ~’7wpm‡Þ%.ØÅ)íEiŽgo$FYm£<à!Õ¬®fhX¬ÌNN)ï%AÒ!œØÙ‰·cÛ$mŽÆpYêüòµUµÀURC–Âb2j 0-ü(#·k¡WÇ¿!¢å»‹úej×Z‹>@¸3ðK1*ï,xâÏÚ#¬œvn¸C{‚§Ööè,<èÙcgó¸C’y†Ïø_{]9³'R\¼L„´~r©ý~–S·oO>Û«=Ä÷ô¦¯×0®ç€¶1s/J“éx¦*¢ŽØW¢žJ{ è°×­¦|ê«€1×/<Ú—ò:4*ÌIÒ竬¹b#õÆ[Rïz2ƒ“_}ˆùÛ›ƒ'ÖÃ-úY$?LÐ]fÌ&÷”u ¢¾ô#;×é\reyIsâ|ˆA€5¥­Þ%ÐpGB]ø£µ…mg‚ñ‰Ñ_ w©ÏA€8LMóý'þòXöË-Ÿì¦éW£³XXó†«iSƒ¸‰ããl1·L¾YîZÔÓrw )ƒ ÑOªìfŽ8—‹Ÿ¬±É­›‹+ä¯áTÊñ½‹ó_¸íø­§ÍÝ€ž[€{–•1ÃFW’9’‰O¸ ¥îœ†6ø›ßwùÇrjð;%ûƒÙ€„I‘í—°Ôë}àÕAN Ma§&L/|$'A¸c†‹ì­ò—€ì²3Ã[æ>»„FòVºíizã–ÚºÒŠpÔ$Ø„ZuÞÐ ÆÓ»G›-²|öJzùlaWw¤µ/¢åô k±œ5*y>{zᯠ_å;V®Ó»Íº²›ôÌÀ”_+ñó[ª¾7‚åêqHÚ¥/6ÌÌ8§bÛQ#¤çÛÄU®Ú±(’9Û(ŽÂ±¡ÏHÔ%KœÄ+.}²>Ý;]È=Š`ž8Ï¡zé£Â¥^ߢT³\8Eù.¡¶N[t–·ÞçTÂBU“6ßBZÍ:³Ùr’ÈwîH›Ü¾ÞöýÐ󣙥pâ»*­¨ÜgÒ8ÅŸ'ÑYN²ÑßæñvãÂP±ì“–D ©2õ9¼Ù¨#voUëŽÄ>Ÿ k<™äMÂé­Té`'F¥jö)¯7Z—¬Â¯Ïôq›Ç×{œI‡£¥¡p¿.õ“IuöOc¨$4¼¹+ÕàèæÚئ˜}íë>ÒhiCSFÞBY#ðÔó©8H™ð)ý‘Ë»š Ú{04‹Þ87 #úÌèLM6Ë·vÿÍk+ f\ ,Ô ©¹ü£µrŸ´"ë7’>X—×dŒçöü?!çß:?ÿâ²”"’×MÛuú~CI;ZJ“Ás•OCGQM®Ùªê.sU\xÌ®ý\\ö0h}íÂ^º¹§Óÿš}~ôhó5Ù̋辌çê™# ƒÚ+ÓCš­º¬tsб» Õo6‘l©áñ%Rãàñ\-¨Š^ñ-ÁÿìÌøu>ÞÝï-æ~Qé:lKù–åtð(äý&ûŒÝ¡¬†@äé…„„4ðàáe—ýG1㥓º(ï„n¿ÄòTrš®éÿ¡¯áÈéÝ, ¶lë.Ð¥G%¹Þ>·‘ijr‚§nª¦(ð¼×ÉDÞlÉgvÛÂ4p`kqþN±ðw.f¿×ns2öºjÀ H©ùîÍ!µ )•ø4ÃU£&ä¼8P1×~ þª‚Ùú¢¶ÓvÍMˆÇ³fO}ï:;Ë/ß“éF´zÿ±v»~]¾Ä[ëÇ+s@hbYN‹ÕLŠ„yƒ+¯›U÷ÓÇ~>v&mVñö8•:o¹÷°djŒº¾„²–­‹§³uZ‡6„›3úñ0¦yòû#ã0÷\^”R•Î1• ™[þ¼{v}í(R Â~`ÖÁ±^W3†s?@Õ¹¦õœnáÝ›QÄωÛ@Ù‚;º!¹\ó`FúòÎns Ê3>˜y‡‘Yïï&ö§¹QMX¶¾Î=´p‚`þ Ü:ƒ·ð©þ1–MU_JÑ<««ç6­·ypóŸ¡úðÕ©GxÐ?½+tÂã`R¸¾•›Ÿ'§¶ÄÛ ÓZÝÓ…‡ä6ܹåd(”p+d:±±šŸ%…~@ûzlÓ!¸ñ)ßû½ñI1»Ö†^'ÙÇ_7¼Q<¡£(ÀRUA¸ýlòtâ|yžìY¢Ãû9_6{¶³e˜HC¯š™rÐWUÊßÔwuŒ”vsqާÑóþ€€<|¼JïDŒSå'ÁŸÅ}Ф.+öÒKDIˆÃwŒd£c´<,½†é|¾ØÝËÓDß¹ÐÕï@…Qtâ ô§|P-%$oïUã#H—WáG¤.S~àZÒ¯‘ güÒ&§ 'ÂCÙ«Ú¹¹ùñ^ùc½Þ I˶uN¹›K%1²_Ê@ì¬jÃÙiO•‡.¨à—ÿ“˜É­n£¡SuxïŽ$©¹l^*y[ S ­Iƒœ|½b,¨´Ë–»¸)„§ È2!U ºà‚âë…î×-€Kž?,›ƒY_}R>¥»¡JްÏ{?‰ÝhÒŠfóbÙˆh’E˜–Tvªì€þ¡3캄¸¡3ÒÖ9ÀÀy9D¦¬Iÿ#©RWâ<é¼° Üîý–íçe9ܹcý&—}ÕáÚåTÇ“ÓÂ'¨_œr«hl-™óÊ¿CÊõáÞÎ*´dBXeeÿIlŠ,ùHIÞ_´wP…y÷¶–§±ãœ '(ü!MØãm@U' ¸åèsºY4áÍ0¿R¹{(aüº¥ P©ë»l¢ÄÈ&R9±ýûªÔSLwµŒ\Ô—¨9‚ÕõŸ²,ðùøG®æl²5ÙÎ ¬4Ø8ˆ(N¹2a®ŽÔ¶ L½a÷3¨Æ†šÓ©p‰¸•ÇÔ½YÛž[+Bg C`wòšš‡Ú,òû4¿¬G H‰¼bÀ²=EíÁ|z“Á}äU‚È™‘üF¹ªäª9" g;–µiE–23UFâ yÒrPËVVÛÖòÜRüéîÜ)²×(§àÝÏ–÷ÑK/¿yºrMÑWÈö©ú©*àF®Äp=ˆCÔÚ<¹9;¤Îßã~ˆk V~"ï4At‚£]y½tr7fm]» ?ŇñK^òo“\“û.²ºØ. ïõ}.%ÿZP)0ݦ‡½žJ…ܶ6ÓºL|%—£2c,ÏÒ!1œôsqÏšâ–š·ûÓ—¤w^á–€VÆû„xZmçí2×cnË{Ì®;'½ãñÒÝ‘cZfš×Br¡W·Lm>úåŽÂ~†÷?DDì–K¶Ø›_\±ðngØÓuîy˜ò,û#@ôë‰ß-Äò³#öäY&G33שw´hm¥C’Œ(’%=ŸFfÞ(Š¢yjé*O*s«'Rù‰/F«6K×^ínÔ ÕQáÖsÖ°ÈåñM>åî6ÿ<\p)©^®gźà݃àÉ0D±Åó§ Ê•lKZ/HTUÞÑg‚ÁZÊÕÊ«±¥*xv¹¹·5ä&:šÔÊ¿^](æwn–¿Y[ä§r–SbÊ‘+p=Ï~–µå˜T l©‰D1™_;•"óÊèó”Uœ5ݼ”ÐO‡GM¨CÖ_n@ð¯Žwù\ùÁ˜¢íúöàû‚“䙈¨aL×*?hƨ8m‹Z‹aÑ3ã ‹· 5$’ÕêƒÓ§>Ýù.­ªy°ýAS×g ÕuÈ«ò.*Ç=J¯ž¸¨.‡"YgHaCºƒ/¢òUhWu|9õ™°%öhg‡ùôEI¡IAÁ1½Ë«ªV¦ådûÛ ›ONýgfÔâÞÑ“”ŒúüÏ˸ÊŸU:j¦6}”³ê<÷§ ç¦QhÙº*äèbñÉä1% 3‡;nN¸GIo¾ŠïC?|Kч˜íÄÖûÖå¹”CdîÛ-‚¤²ÖçHŸáw²v bß«,E¾šÁ´´óK`ø³–ö‹u¿!è|yu-à¤Ôê|ÿ›BCG`W'§Ž*Av@– ù‹Y1ä)CEÿ~៟²{Ó6½B#eg_Ša{ós{®…Ï0E! Õ0³Ð?âò"X»ÚkÇ.Y•úµ]Ç^+¬ÌOi»-)ò [†YX{ž]íóõ‡n7Eã”Û8pG?cO%ê§§öà5WÁøå'épWx™àþ¨©ÈÊýžÎO\éyœ±/M'õƒ‘re˜·+¼¸øºJ‰e)½á[¡úoÒvhÜÞ#ꨀ½éëË/E~#Ѽm̬F¹^ü²¦ðr6_L”¤”&ÁšS3îû,;ÌÁËωK]ˆ èvÄ20>+ ÞïÆ˜ç\% \ÂD‡C5_a ]m¡|‚ouxXMª³ñJÈúGØñ‡(¿ûàÙåÁW<Å‘a-è㘿k2TY¬9ö-ÍŠŠ²àÊ^g…X{K¬¨äÑe;_LÐAéã)HyEGý®žyÐ|(Óñ'Ô%1óº3À`]µùœy„¨ACTrn?>`ìóðîÖòN…úZÞlä ³J¿”¼ý;¨ US"Œ¿`È‹£˜\z‚ÆäuíŽÃ1ÑÜfÐï·žÝîÖŠú¦þtŒªÖ¡ó<®$M‹¶ojõk¿Ä9A½“ Žú.ëÖ(ëõ•‹°®{­ô}š0¦<2¥ÕiÀ–û"gÿ|»!ìÉĹ÷ÿ-Òï–Î`Û!g²‹‰éø[ÑÔvÈ;–wôÞ©›5Þòéq-øS;+mB®¢Šø¡,Nf»yA™ð'ŸgUâ2f›e§¤jaaùª¾¬Wd˳L‰R5VþqPÁûÛ‹³•Ò1»gž²«Þ‰^&§vâW•ÑÿœÂ†uP̳¶Ý€àÿõ§û °ÁÄúS‡#uðs:ªŸª:™Š„z…žÞŸóð{Yí¥6,Þ̼£~§¢3u÷X#wŒÄSÔl•3Ú'ÄÕ.EÿRÊ^ÕÌŒùz_„®k[×j(øç2ÒåHDì›a$XïÅÏFŸ„2 *0bòX,Y´—>NŸ±Ü¬:ôF]êœàÆ38ƒz¿ûW^â© ñD0¹e¼Í…€ã³“‘ÚX h0ûjDûÜjçO9Ö_y|=íI_ã ˆœ„ÁæÉ¨Yˆ‹]Æí $‚ð·–ƒ¬‘\3E®†~Ã)d|RlaLXÖ­vkV’üˆ¬ Yf$Ê‚i£KTAÌ û—º'\Öýæ Ä›v}Ó¿k¨lÃmÐôbœÄÿwÈ8è„?[-]o¼!$äç·Û!éc1‹ìõÇõt¯™ßlóc&†GÌIüƒ £Ë05=¾váXZ°J‚½²~k{ 4Ô;š$õ©½ê=m–°qûZé²;î}ž»KA!Îy?>yAÌëÑÚ7!@J9ý²s¶NÖ…»/æS+»Ô¶W“\Ï|Æ`Ï+"}íišÝ柋†ãÆzq: *m°ß¥B3µ§î"ïÀyb“ËÉB=–míO4"W#©`‘Ìxê]È kýW§†–µlÔç /¬ìçSÒ¨V¯ÔE'Ýéžwg Jлgwm†úNPúé†/ýÖCùˉÅ{ºYq„õàX,-² GšY&ÄE JúŠû®Ž™0Mï§¼®@,=d‚Ére^ËhhiæÚdµòÃÐ’R ³Whç6à ñcï.'?Ì5ì®KO1ƒ9ƒÚw¯ l1…‘Ä.ê7ž' ÖaÜÇϼÚG†õ¶§)ð’‡UP7ÞŒM ¹ŸnÊõî¯ÆLŽ aɱϾˆ€_ï.¶_½Øb†: …tÅûx¾†êÍEg9„Öð5¹“õÏÛP&5s68} ´/•ý{ùá-®@ðè|8ŽMÛ=O®%« î½Ôa‰[ æ~àó% &Á[aÀkß©À±ñ¼’ÒÖÐq2ëXáÆàïÙ#8Hrú^AøÆ6%ªÍ ¤d‹õ¾¼Tj9Bbô7ŒS›®b€TµÃ#µ +5s‡Z¨:bd@k6¤n}Ððȸê{ÿÿ‰Káǯ—ʳc%ýÙñ¸ <å@.]_Z a¢åÏÇmah¸yâ=Ú]GlCÄ.mC8îX• ŽîÐè`S{à\µ¥3ÖA#©ˆÙí\å<©Cu·®Ë~)ƒfÝIo±xÆÖ¸ø¨«¢…ŠÖ$×`ò¸crì6BMŠu«: M¦8ät©ÂOþJ[[ÇK©wËÿ‰å¥&‹å»vH:4Y¡¹^¢…ÉO§ûÃolß¾¨õj+ÊHÛÔ,á ËÑæ¸™qw­¼ðîàXì[ììÅm2.æˆ l’øÚGÏ—Ô» Ks9‡}é´ÓãfW‰}ó;ªÑx/}+þĪß̆]ƒDË¢‚©½Ô¡˜ ÊnçY˜”<× â•v؆)]Uä}â¾°r†ñ>’¾Ä;ÿO ©¢$IJð2Æü*ÉÆr%ÊL`‡FV` uÏ0nKym~¹h Ú…Õá¸:)MCæªX>ˆ1Cc1øuûœòA¦øÃA<°QÄC&¯Ëž…¦J¯³Rø@øE; _äög#à‰–l=&58µÉº)Wùš©†Ž¨óÐTN«úò‘«ôÒøˆEx*’ªìlã‘:Z@jE\J༂}ê¸@QUßžÖWãîñ ¡ÿ¼!AœË-êÕâ pßB9â§Î»ÚÓ¶š,²¶¬$ŽOÀô ?a·[º…(A2EºÊýçéßÀùÕ,Þ§úùa$>ßD´)í;TÇÒ£†xé+1~ïs?ßÔ‚@^-ðoЄsÔ©ºÖ²8þb$ºrk0zŽ©‰ bQ+-ãÌ•˜Hå”S]([åߤN>±Ó²…×îH*a‰ØšŠNAý—@®›˜RiËN¸Åßh*¨{ýÇ;‡*h^œ¤b6êÖ­“^†—³<ÈÅNqàuñi>úTƒÛ}ëµ*5Íz¨ŒD@bsnúCÕ ‹“Ü6­‡¡PJ[¶|²Å¼4—°aò=§¾yDB}«ïÎ8šm|»d§Ê¾|Ó ¶'cõAeCCªT˜•Á°o2tE_ø=ꞆbÇp$ƒmˆe«÷)DššýdRe>q{>¡µmÌ @Éø<è[wÏ¥+"©A³¦â¢üÿvMà_!èüÝî< e1«â£0j ;W˜[âŸQ”;ýhûÊüMéÿÍ6_<Ù#W¼–~ äňôFƒÂ)_ÀÅVJ*LGÔc÷ãYŸb°(jƒþ†}è3Ú<¤è-ž{vd-Ö{#2î'Ûç©X͹‚IH!ÊX9(qO?£ÐÁ¦–wVXÆo "MŒ¡jÓ´MËÒûfÄLÏéˆYÍepAžmQ©,,ðj_T-¼&Lam=A£èªÜÛMu2‡¯u~wÔ†ÑVá 2„Žø´ª]š,[‡Ï œàËy[ûIbÂ9°yQމo±—í«4¾N­u–ˆáÃ3T Ä/T^©9C2Àûì¤ú‹ R^„žYç·^8OÁì}{Û‚ç0™”=v- «Ä-üÏNÐáQÜÜh-“§¼+ k `7q¢{^ƒ:tÃdÂË$™ò¶wÙŽS“‹‘£R¾)¦Æ1ÑïÐRmxòÊÓ}žR‘SI€eÜ5U{ßû·Ü Û´Oí4ß§ŸèfÆWk–—E~oùàñëidÂûñxÒ\Ë®ñ¥Øz½´º\Ç—€}Ñ@.èža”Þ£è2Äûw?Rãz›8^Š(ùJA·å/ã5Ê›À.™2Ä)^%˜-áÜZ}§œÆ-Êäî9ŸùŠyÝ=ã­”*m°K@  •1©9’lxÈÐk"ux§s ÙæÎK$Ék8êBœNgEãï0¯ÀÐkÕQ‡XÓox>Çm$ÍÒwFŽšÏ‘3ü§¢宑úpZ’*®&˜3C&žŠÍmqõœÙê°¢(¾Ög £1-9íèChFǵK±aü¼2ßZê#uáÆ§þ˪´±\Ç Õâc‚…·ÒsCëÈ—í,n¯q0wkÁüØù¢žÕwïœGY……í x´×å¹B+<莘̰é<&üék$ÞØ ÚƒÕ„¤^±‹ ®Md¬ËŸX6h¥Cˆ¾ú޼îcÄ @ç”éXŠÛc½¾ÌL%`‡WÎÞ<.sƒ#ì{tñè£iÚ«3Ä@¦†åf8lJÒ&ÏP7:·Ô{Pšæõı¾ƒ4«ä‚$ÇYì“pu (´åLôÿò$ÿp.Ó yÒªòÉÅ”‹?z^l¼²tì&úCS}ýê°89³ H’9¬ÒÈ?‚'Ÿ8¢Òƒ¿Em]‹þëË[iq" R§µ„á…‰†a€D´îL=:·ÌÅáä‚r–“9Ù¯²uÓi%~Bªe©o¿°ÄÆ‚¯v#[Ë_|´˜*ŒGCEybÃr;öæ<>Þ%®øjN˜n`·¸6âÙ µÇ1*<Ñ 2üviÖîõ¾l—ûuô£´¾Ö±ã¯$;zÞôn‘'`Ø•Nm¨4x“ŒØuQÚ·\ÞH’K›@À/ÑôŒâ6©õ¡åŽ€—Þk|8Îý9ÑSÁŒ45í¥!I¼[û˜SqÃ^Éÿ¨”q9CáéT·ÙÁØ\_2WÛwצt×_´†©„rìCB´üt¡Û©­Â´ÖãŒÁ÷Óm 8O3M&ªæ¶ÂQsþ Ö•Evµ+?Zû=¼«¨ù ³E[æ“jò{6#JÉôWÚ‹ß¹ˆ&Õ á¦*xã[¼nâ·WÖP‡d]Èý·5RWSðÅ)ªÀh³ù¨[¯ùðSµìú¨2¢ƒxÕ•\,âÈñf·Ñ„˜®«‹H=X£eF Z¨¢\õXÛÞ&™+˜šþð†dÖ´F¨äù¸ŒtèØ¬áè¨oášG3=0{(ïTµ|÷K|U6>*ƒ twðY#ÏÇ>ü?‚îÎùA,ÙkÉô²1ªrŽ6¾%FåñÇ㉯óæÒ$ª°Êã à¯ÃÕð"e=–Øj´¹øN@gœ~L{°nÜl<â Wä—¦Kä÷΢¶§æw4žWÑŠï“‹jõÏh€ôLì%£6¸Íð oÿeŠ¢ÉÃ<£~ûö¤ð§ò}*'˳&Ês¿ÀkÚÿàùö°«?|€ ;¥­¯V>dפDË:^{VžØ*8¸å›<Åë¡ãC+ozèScpXñšœÔøt'é¥ä½ÏȵRáÄÝ/Ô†—jÀ“~çö¦s=®eý3OÂZŠp%³"v摳!IA­²rEÙsÒ¾TIšØÈ5r#:“é̪…„J²¾Zƒûã6ØioÜØê š½;Ð*z ˜žŽX¯;³ÖˆÃÚê zYþ BÒO9uö*¼ËáNCÑù¨\zÔ}!•aÔ­­AxwVa‘o%A›­æ5XÜ·¦u±ü¯¼8äŽãÖ.QÜÄoc‚:^I¢ž¨`óqrˆˆAà δOÃ;f|LPë€~y΋_Ñ/¤qŽýìùjREÖ¹íendstream endobj 305 0 obj << /Filter /FlateDecode /Length1 2262 /Length2 9191 /Length3 0 /Length 10550 >> stream xÚµvuXÞ¶6H ÒHŽ(ÝH§tHwà 1C ÒÒÝ%Ò)ÝÒ‚t— -) ßàç<÷þù=<Ãð®|×Úk¯ Ísu1s¨)H ±p°² 0+9ÐlÆÁ΢²t¶:8X9ÙÙ1hh$A@ ‘Â@˜@dÙ™‚p~ € r„ëͦîE ¨ánâШŒÅèWƒ –`ˆî"µww[ZÁb¼bayˆôà-Î šÙ@]lÀ Ä ÏªÈ P‚ºÂ…`=0Ym-P €H ©.¥¦QSÖTQg`…Vw¶·‡:þ u Mf€¤˜’†¤Å ÑT×xø­‚Àù[2”4àú‡@ ©ùß”á5Ùýeòÿ¨HBþ‚p†ö:OnrCÿª™^¤Ã_Îþ¯b8àìþdã„kÀ–µ€ ^€“-Ð鯊9àY`A¸Åßá5¹üœp¾nA8_ßð?GYåaÓÿ^\ìfûžÀßXæµiƒÍáÿüeŸwG°›>;|ëpÀåðŸýeø hþ,Ì¿¼ÅÅ¡nž,¯8,œÜì'Ëàåf÷þO³Þ¢ßû~ÿ…ä2Ø‚š Z'×ûH}-A¡ágÝ+#Ñ‘EžMm%#‘ÌY£‰æ½môK§Íƒ*È ú$¾…èÐÚÞ-5%”=5W}½ôQô!ÖÌÖbÕôOWœñ+ùDͰ-Ÿ«[Èõ-½9¶™ 9¸#ÁßÚ~É9r{œDmPÒ¼ðÅ5‚£ÀÑÏmæ)iÙÌh"ìþ’ :øYl–qÜ$7˜hPÕ¾³ÿ;bD¾èM8ý÷tö­GVÑ÷Ÿ…°™*XÒÞlaBøÎòäY†å„0ð)>²®}R‰8é<@O±xæ§.‘tÍá~‚è‚‹ð‚‚ç‹Ù¥…‘~ôïmõª‰'l¡ä©w|®Ë‚ÒÚskmí9oÆe¨¼Zo&u¸yÏBüíR”;EÕæÉJSµ8Ÿ•;#Ó¦Ûì¥9ÊË>Ñ»k´'ÜXÓÑRÂhý÷†«Ó³f Z¾t8.ßî)]ŽnHgIÇç-$gÿØCG–½~£7#Å2cÓG×ùº ºó×K~~ëýþäIéÞ‹—¸ÔþT¡wé﹘å·?}O*œ>·!oçȉ°›à-Œ"”X¯*µ0ÿÚ×”Âj‹£WNë†,®·§&@"›*ÀòHwS9V‘[dŒ~G¶ Yºký '&’?m$¾^g¡ž#¨||,DQqûŠ®~ðÀÓØTçkS8}#àÙ¸äö+ãü±P_ Û öÐz~:?ÉÀ'0ÄXψWÖùΘINËDª:Ó¬l}Ú|ù¨ÊâÄkub@ºA¶\Ûá1­Gx·®YqW“$#ÛsÁÓÍÛ!^ÿf½Ò}ɹLÉQs¤ãÛ.á[zÿl+ÛÑJdÔ#œWm;èÂŒb†¿ñÛZ´ÿ$k) Ï`ŽÊêXÀšÄcç­¾êZAfué®/†9_j3Yù ºS½ž$}™÷sÆÚ7&'9âpÅ!_Ë‘|ñR¦înWPÝu Khý˜Œá)É;¿½S¬ñrJ†å2àÒø¥°Ê0l:YŸ|ÿIc聆•_Ã>0õû„ ÅFêh â$VKzrWú û¥ñÄ—!K5WåIBï°Ré±&x#_Úå³NÅW“Õ([˜J–—±=CûX\„[ðm*ø…Œlyì ê½ùꘂ½¡ñ` ò´ww¢Q QtZï+MëÊÎŽNÊœº°ðd ¯ŒÔÅGèÛÌ–y? J™öDŠoxÏ™R#ãœ/Êjñ¹°aá»â›´L5^´>yäá¢û kÍÕ(ÌHÁÚ䈕#‘Œ£i¢/!ôŽ¡Ÿ ã¹|‰+Âs°ü4ÖìZ~Iä3Ý«”·«uý^øh· V^›/ëOhdÞ~ÌÚ5‘{Ë~r9ocr†«¨Žøz@¹,!“Âw§B­•bÿ³†íkë3–ž˜æÆÔŒnļ“oÚôÉ´µûO™¼ÊÒì=Ø…Aì5M2ÒyŒï}›HâVr/íªª)ü R­o Jù4“t›¥SFw¹né“ÜO3\‹§É.ƒ8vOÅ7;ÕÝÇdBÃ4„¢ 3&‘O•隹’ÂÃ?Ø7ÊŠÑ[½´“×óT8¢¨£ö)F¬eyÝo]Y2^“z#ÔmxvÂXH+øø2ö.N‹Àš*¥a%ýç;Lj¸Ö]ð/6_ÍIqSEô¡|ßy›Û½ÞÎs”Ðj:Ø‘ŠÖÞÐëGdØÔ_B?cÕ3£4X{ŠÍm~\ÌéŃZ¨va§Îv÷iK`¨Õ©ûíD ñÏ2Å×܉´ÆH¨³ƒ‚´ƒÆ({ÆŸÙd3D˜•Ñœcù0銮÷·>þL̇ÚOgg5Ût=¹li•ã8ñjB /^4RçT¤ýÇõ§Ý"Õ¬aEou-¯ìG4x¥8=s_n|t–þ((º0Ýqú%ç[¢Fö¬¢~ëžöðÅMz>w_Ú®)s°_cªŽü{±-f·añûÐö¡øô>:Ø)4¬b3@¢÷Rwˆ~[jƒD“V¡éÔô†‹Ê3ô<|]  s>XYÅ.eîFÕí84*d*3"ã¤Ï Û9†ò8#‚’Ç”?üËψ€ð s˜•€\27ÝwW´èùEù¥d(oÑ ,^t%e%7ÿú“ºäºÜæ<ŠÚÀ—¼ˆ]Zw&ñWoºA_ü“èÓÒ1;¶Ï´ZWjOXn’¡OwmÄõÈ Ôâ<ŒÇUe¹žžMö—<õ<<"{¾)]afGòèˆò©¿¶›(„}úöÙ¹gõЛn´~Ä:Ž$)’d!Wž'a¥Uô©jý$ƒÞ.*¶ÉI­ÀÕƒµ‹ÛBäPÓRé™õ:×áÏ ŸX?‘µ¼w.mÁÓ!•ySþçÄ5“œHvЄú’‡[J|;ð»*ÿ{ôöJýZ\î]_¿Bp.+—€LÝôLITüýmŒÊüÓædŽ™cͬ¶ÕÔ³¸·g3©Oâ‚Ér>åÏiÅšm¼’äFLEô$Áj–Ös@¦[Ü ËL@$.X˜°e')Óã<;o(;ÙFù’åžÚmíïÁ\tCeà_¿Êû‹7R9=ÉqKÀyŠš‹õ˜|`p5H50ägû0Bñà |\Ž mœjM¨¨òKÂè–‚oW–ÓÎÊ÷NÓžë:Ù˜êGÙ süXÌñgwQÜF®¶d"ùôïï±¢ÊD̾m)}¥iH'uOBÚ©s ƒÈƒÉXJ“b4ƒ¸v`f³Cùß*XøôÌ ÝÒ4’<Ïh âp™J³!LÍgC º÷§*sØ@ ²‡xõ1y-5Ø·ú§ÅV:†´çªèÏ™·Œ3=E§hzÒ¾;c1g“Î|yFhn®pèÑv˨“;&$§UxøÛ~¨/9ÙN’S ÛÅKNòEJ-“]Gó‡ÚSrÞZ«â×ûgy¨ª´Ÿ®òÒºšfCj_¬ J6õ[¹ >iž ¢±vu¬Ø¾ ¾ÿHZ $d/ÛË'L/V¹,„½6©BÖ,‹f¿Ø-i1¾¿ݯôì2úƒþ““]~±ŒÑ@ûZÍsRÞÃÚ‚YjAz;Sc–‚sú 8OÄÌdŸD¥‰³Øn§e(Ušj^@©¡t=Wq0ðPÞU&¾õ(d8‰@1S¹sbêæÇÝ ­ÂfN~lÕò•A f>É5Š07ñ¼„.ïRà’¥è³tžÇyRé_=™ Ç•M5y‘œ“²¥KìFO%”“ØX¿ü´SFà¯pÓ “aìkÅ(—ÐS¹×~Ð7 ëD|rõ|­K­qiapõ ¥Šb&“™c-k§OŠˆæ·æä¥‚ië‘U_¼9{&>éIp¬&—BÉÞdÑ3y|Þ’ðøœž„4ðuïþGº5͹1ctÖåšµôœÓ´Lh*,íÜÍsI)SÑjôšstbîv õøå ½8y‹UÄcÆwO¼³l^ò2ŠÛ‹Ÿ±ˆ ¡§2{©®]@ÖmÞAB!îš3ÉÂ~'ðaÑ¢ 5iTõ>=÷{µ—Ñn O¬Ñ…‹$Aó †­÷íŠÑse,ÿÕP kêsáÓ€*B+!¼ÅÔndXI¼JR³H^¾õ,¢ñé¾Þ¹Eµ|Üä“üdÉšK$C¹oz‰«Î˜@!¶…‚iʽƾ{žbŸäÙûæ,úÅmVsµ2–õ“«)PÊÚGÒBõ“F.ßqItz±¿Õ•ø z+>K+3Õû{mÁ‹9{qÃ’!ªç}Ï5G*µísvYÂ(ªŽª[¼uƒ€ä‰ë¦øX¯2M°©ñ¸’h¬š~åØfLWrÕµáá*Ý NN-6øÌ–7…ÍQŽÐu×pT²¤GjÆdÃÞŽnS+®É’óQ¤®œ@ð€y¨ŸÃ3ÄVß¹©aNÝu—o?_ì1}1«Ïë#Žþ#Q­Ä~üYpÞ¿—U噺’cnŽõ¸‹ÂF꧆m…F( jQ#ýX7×/âèé^±1¶½ç֮܃i…¤ü¤ßé¢Ç@ Õäù¸Àx®OkH„É{´kó gj—9”üß½!ºäÃ%ëw<¦_®ð 'Ü'À0yŒkUðò¯Šm›ŽU>‚!¡´·Òo?8o‡H\L–ñÇõÜ”ì8è³…Èy àY2L®v¯göN:— sÊÛ縕‘göºðR¾èkjüŽèî§Ìv7=qFë=;þd Æ|汞¶×c};gw÷eß@†ä²&k[ÖÕƒt%îe’ÒO^£ÕÚÊÐç -$Sˆ»K8ìïZ7²F«tF-«å¥NŸùx Ý!¡–¢kÑ6"vW9)Æ–å$³àݧ]ŽºcK»é%â¥ËÎITåæÛ_6 ÁÛ«(Ì‹zBÀ6w~9\çeóÕuVô§ÜjÕ|Ö¡sM<–ÈËâùáDshàå6ÝÒžÜ+šÎÕWdhæï>f‹èûk.²#ä‰ûÏßÿ:»øNz¡a—âÀ¬%fˆ‹YwN“M¥ûm‹í§\Tc5Õ¸¶aÑ- q`G5—²êÞ}Éa¶”?¥K€ð3wÎz†dt¼ó\O…ý©½ÏÎh%úÚÁåÞ(¿üÙ Ë)  ŸêWU¹b¦ 1tý24¹:nÇ éfÇ7›.&¢’_^hò+ż›JlG|9Éâ{³ðR°™@E¶8Á°þ$‹ïú…Ú,ÝÙ´Ï~¡E±$±X6 ªœâ^ëìQE=ÀBÕä.ð)úéùýÏÚŽZN$Q<ÛªyæwŒœc~Y,Ô¡KCõõ 5_;)†b‡¸-%G)o†ŠH2ÝP>æ wð¥LTò2ÒÐ?—nøtA-Ï4\$s Šë –çñÊö‰uM¶ >aƽ£•K¿]a~W‡/¡·­«‚Ph”²&tÝè£Ìõž?Qí¨Ôšq!˨ñ‘ €°*+úí`)½” е“#ìÍZ ;g9&þqGÞ+®ê jn:‡ö7µ”ß<*6œ¸EKóWšO‘¿/Vû„Bqº3ß1SvÍúUÿC“Ÿ§¥æKÞ8µ“ ‰,ÊS'N\¹]ÏÖàDÖâüÉ ßß—Q Muê«cv2Æ(ÌàÉÆFžTíÙ¤ðB•§’5û^&ú¸š1φ# »@!CJ»HÃ-ƒ¢6öI+‰ÀíY;¬”ådÖ}X|Z5]ÜOâ•\“ˉÏs¾Â"SßÜ…­Ä° DËÞÕrË07.J†ÍèÏ1ÓfFø¨@ŸE±Ý­;äîTªìÐä ö1èµ(¾\Äc•¿Ò‘¦Å½Bu9öÓ+ÕFoE¹ù‘Û> Ü6y `¤N»‹µ‹7-3V›8¼¼eâáØÄ<¥_xÁ”¦:ÜSÝ Cf4• kˆíC\ È)ϽbÁ‰ÙîIÃa¦°)çYäd)z´5Aiô”1Iæk×£Õ[h›¥HÉEgá’yb˜{vã̦´Àú;ymiV?°,B z^¹úì{xJ·Ú;¿×-#|7&«î–סÙf/[V”(B™Åë\ø«:Ãå#Ü67 ©À(£ /áéVãÔx²ØQ¥6Ú<Ñù°ý­`‰ñhú2Å›÷­óê¬fß÷/ç÷+Hˆ~zÒ¹‘G¯5F‡o"o DÄ÷Çâjµ9FмÊ.}ä«Rsן>ëSf„^Hgˆæóƒ€)«Œ˜Ó¼Æ+M•bÆMU÷ñ”D·¼”Ò¨¾l]4£;*Q$!hÔX9ëíYÎŒ…d”æ–¼Sæ1‹§Æöè «0°Ç‡PÆÆëÍÂ>‹è gb Þ ‡ ã®SRo‘'HP4ΰ~°ûÕ€'ÏÔÞ¢÷@Ú™—£Âïòu¸ŽšXm ßÇ«•ø]gL´|°!ý&–`…Ò F Ì®ãfâr£¤Ï ùö¹ÀÑ<¿œÃþ=X3-^ÛD™‹Ðã£Fá Å~ÊçhÎDª¦—ËÛº$É‚õ^©|o­¤ ¦bT#hØÚX”­‹õa„u:Gà«6 j¶Tvòhù° 0ýì²5i4zrÒ¦éá, Ü³b3ÿbлzª¥ ³%¬•y/ªU-æÂÙÇ®™Šƒ÷!¢™x™„·ë8b8RHèÝ^AË]è·B™£«}'¯—/Ÿ°;RxßÇMF7… î‰~J ³,<ñY®¨¬4Øsî¬5àÑÛšL·9 êв¢FŽ4uçs‰=Íkž±ýªÕ¨vD¬«´x,wƒmMÄp•X3¸£a8ï„]Çh Xýc˜•µ¿²ñv!oûœ”ix«ç9‹|̉—g”T_îN}A Ñúdk³jPú”ˆYoaVùÈ]̘ X(ˆØÛÒ¤ïšÏOª`—[ Å3¶²uc®ìrœ{l½¢64ñ×¢m¢° Œ k=qf㔫_mË„ûÑ&~>JK"j›¬aöP Ãe0ªW¶²j¦æ“›ÊN%íÀ×KÌôÌoÛ0C2E3¹VÅ1¡ë‰«!aëäϳíêöªŸUq­7±l÷+e‚3kô§4¤ÇvCW,ü{ü›ŒÙ]_‘‰Ô¡ëhŽÅ«ÔDÞ³«M/x|0™pdä¾"³è ËŠhŸ}ÛlF²_"±IEŒxº#Jh¶D  gÀM0“_øy\ªYÄ­üÝìÝJ{ âc£žÚ3wÙtÄÏJ6™Ö”(A× —2…/†ÑUBO“[<µCŸ÷±ÑNѳgÔÆ¼eès¾5« uqHî·pÚÓ;Ÿ‹òøº8Ý"ðñz'tùÄ f ͱš+¯/h÷ ùžÜ%WŸu’$4Ã=ðŸãڬͫ©N7ÎÄm`9ÈkÏfŽŒÈì6™B h¸fhŽ8Q£—"˜(,¾ëìK<Âz›¼éà‹µ_üŠÃO°/a™)¨XÕÒíca¿¢Ÿ }±x\p›ûܳ&Îál0¡> Íÿtî ôe818zYúÙ¢m£,ZÆ,­ãoƒGÖ9ÀàäN{º¯¬Šœ£!e=ä'±ê?g¯®jïßÝwò¾ÕÿˆU'è|­Ð\Å.t±Z\ÿ+e‘hÇR€Añ#îŒwAle#76¸µÃÔÀyO!v½ãë]Ä;ÑÖöƒ­;w„`é©*uI(i¸Oý¿[¥ÔU¡;I™:RüVÞ ° „NfÓ£yïb¬û­ìJaÞH \k}t#ø„Y¦®µ®°æ¢E÷1 ‡J‡Œ/<÷Z¾N®½Kxb]úüŽ”y&ä}£/HfÉ+2é4î[›ÕzK ¥#§©Ä; sEcEÍ™zùëÈܹ'¬úA%É;aaÃ¥÷ÌÌÄGÚ*Mb3MvŸ4n$jsØ«uˆ#¿äsf9/gK¸3veè_¾Oºyþ 5Rñ宯t`þB˜¶ºIÍò‘{Câ& —¦U—3»^Ó™ágÉSÂ;¯òÜÖËŽëb‹í˜8-ß5ßž*hQÉ÷|%[:“_O»ŽÃÀ'l嘺dI¡<÷vÖªs2yÈ„bj¨ãl¨?‚ƒy„S+-Ó?H^N3ÏØ#'(i¸\öùû›/4ök…Te´Ú~*/{¹cƒËòtGYMöc[bl –Z.›$ùèIn›ùçBΆ§7ͺm?»7c¨4âC¥Ü½ZUtÁ¦>éa ”¼Ä2yýšš†„p¤b£„÷‹ 1Û‡ ì=A¶ÁÃ<Ô ù²9!5ŽˆIóF¼†¦Ãêeh&?PµèË1eõÞK /”«çá±x'o*#ÕÕ ›d÷—NÄ“õçó'Þ™z§9ˆÎe4ññžê Ų]èZ}­C54«©Ð§Væ í?T“l”Ü ÿIÉIoÒ·“À4t—¯€”SNáYXµ]^AjË…vË›-¿¸—g3gúmTÑGë›äÖ›_“~ ¬ w´¤ª·Õ-çÐ+6BGµb/¢;¦É8ôöåpÉz&/Oò —ìí}ð~)P¿Ž¡Ovx)bu¶RÜUˆžŠž¨´[vŽbÙÍr~J@b¸M6S ¦Y}ì“âfö]L7%“hî‰K©L4šó±Ðþe¨en–èž|c1ˆ¬‰V+¡[›dJ¤¹<Íô x`Wçºtt­ËzLðd‚’̪¨¾‡1†d U¦Y‹"ƈôk+üq„92ÿÓq1¤àzC3ç,¿G¹Åt;ÜÎúEØ™E*ë-Î[üå­¡diIýŽÈ©f+" J7u—èÍ2í²Rk¬£ù 5W¬mÈ„Äù"²7Á[ê®Ù|'‰¦véålK­AKoùñL~ô«»ÔŒ¥6\ q©1©®ŸhõeÏ2£¤iƶ!ýd¼¡¶ôgÚV­5Á¨al?ü’š£æœûýwBǤ©2Z»V¶”~¦‚TEÅL⑞›ظ70¤e/*â³2ÄżQ|R¨²¬êÙÃ?¯ÝReŽ*ª}‡6LĈù÷¬ã±.Ø`êÑfUì¾f)C…ÎÛËòØdD¼: U”¨Ë†Tr<Û½^E[£+mB¬ŽˆEÙÿãFIÃ7…tjx–¢EhVÖ€`Ù׃U<ÅÝÇæ¨®™D˜“¢Oè4›˜b|»º Ûè\Jj:P€ñµÿm~ò¹Šúî+6}{ù`Ibž>Qå€ì¹ÉÓ&•.M*fÊ/»=É¿ØNÆ<$b,U‚^©-¬¿QÌ?oð¼;m¿®m"½n·çtÉZ¶nÙ\²kÑQ!Ö’ÀSû^ê~Ÿlt#{ÊÙ7p”c¹¾^€yEÌ~àòâõ~ßEz,ãleÚÄ×ö–2{^@DO3|d·+î׺ç[ç¯Ì®–‹ºX)º™}*iQ|_§T‡öBJ†HÄŸ„6?ÚÀÔR|”³xfÍÊÚ·¨ž‚»SÍzv]F' àÙà†éœj4jYÍfêöØ ·ªf _–"G·ÐÚ0oü°Þ6øäËZ§%Ÿ=yº‹©ßÖ %Åæ\®;MÁ28°ª;ævj ÚsL·r“»ÿ‘ÅS§ ³!¬š@äo'¤{H‰=#°úøcÇk9{®¢A¿™+ùÎNý^jKúŸþgèÑÅ\öÝôËé¶áEÍ÷õŠÑr ‹îí×°ƒ†×ï÷G³™öŒ’"zÁAßêPa®ƒâý{rÁèåYe(sf›Ùˆxæö0ìýDÌ.ëHÕ2¤ƒ”ÅÎôN÷&›ÏÝZBÞ~Þb´|FN&z£²¡þoSkÆÈx0›9‘jyZÐmTÚ~2×|Àñó(úþ.¥Ç¬®*¼½ÔÙÍñÎna%ç_ã9âÅ yý4Âà­òAÇRµŸ7·óþÉĉ¾ŽÀã;2þB ŒW(ò‚Ïï1lÓr­í‡Ú ~Cœ ífðÌT=CX ùÑnȵ`ÀÿSÜÞùuó×êƒÃÒðIó_æÈ&8Ôèï–/ÒýçÕéwžÝ’/§z‹!WÁ:ªŸ=ás¼ôòi—](Y7ÒªP´\ÑšË6ÌàÿšeOn”Ó•³‹>xäÀÏ+š}ZR€FD1àòÁ`Ž«]øŠp°K3•ÂÞ¦r÷ÅS—@DûžÍ1C1/ItÑÉôö.±¤{&]MäŠÁ|#ñàÿ´ó¯Œendstream endobj 306 0 obj << /Filter /FlateDecode /Length1 1891 /Length2 4948 /Length3 0 /Length 6125 >> stream xÚµUy<”mÛ¦BöìÙê–= c_Bö¬=² sc3ÌŒ=…PÙ²ïû®ˆ,!Ù÷µ,¥ˆˆHJ|CïóÔó|ï÷ç÷›ß=÷çz\çr /ÌXD±51h¼"&èéëÃñÎÚx8 é +b:y¢àX £àåUÂp<ƒV‡ãAy*wŒAw<èfb‚‰/ ¢A,Aì}}7ñu¡€üÀ08¼ˆ=GPƒh'$$¸¨aÜ}±H'güQ ‘£HGÞª@îàŠñƹ"8è@ô!€Æ› D4`:ÃQŽÆ0¯¦ÆFÆ€–ÑUS˜± „ØØÓ݃ý5cS-a@]ÅÀDÍ„-Sc“£oMàï$ ˜ôGy†Gîú&*&0 ¨èÑ(àbqÈ£´ÿâÆG`ü¦FpuÄbÜŽÎx¼»¼¨¨··7Äɇ‡`°NwÔ1?g$ðÆ`] ¢ÀãÂx¢„râÁ_Žšè!@4øcë£x*êzò€””4% †Ä;8ÿ*ñ/ù¯H*h'ˆ@%!bÒâ¿4¦G›†"Œ4áZB]lýQÿ¡#L«ƒ+Äá écH¨Ë¿ÈšqDÕ†]µ„iý÷I:¶Õ@;`H´ NV8 ÷¥#Œ‡¸”à%Ì<ô9ž@‚Æà .€»'>pÄ`)Žz,#ˆê‰Ž‘¬8 jô7’#èà#q1YD¹;ÿÉÉ¢¿  b€¨ÜÍí·TL Eþ¥Q—? Áßí7<òGÿ dÜÿ€’€(öo(Ià†CÁqÎDž¿¡8!šÏ1ügqaG÷Îñ"‰ý®ö.äclŒÇb\As$‚ðwô‡ ¡X¤Ïu1Â@ rÂç¯_ÖÿHÀû{ÿðVUÅøø‹ˆK"âR„þUFJ,àž¿nÆãý# Å_øèZ@Ðt ˜šÄ8(„¸<|V|S#w¸„„W²VƬtMçþ©©”á&ö³êYó@å¼ úÀT¾<ŒÞyë› Aè‚k¼!L¨ƒ7Oãˇ¶†—à7õo²Óh¨ôešALƒSõ_–<» ¸¢“™cQ(9šÚp¿á`Ú÷QM®©e/J|ðn+ñ‚UIÃl6‰wþ8´Ž‹¢÷yu†­™ýÕp31þp1&þ\eêâ˜]NsŸ©{[ Ç2gzåôï#L§Y=4Èå›ÎU\œ +†Ìܵk{ø¤ý¿}¯½C¥S!$g¬öš´´L™³T¨i@¢¡˜¶*ö+•0&<@¯ÐþõP|æžDÞ%´³xY^ùLöPcú`ü` ñÙóá$­`¨Oî6 .ºUxlÞÃzk!ñ™ß½”¶ÀŠq<ýd׸Ù"ÿóOA×Åæ«D«G? Iý¦·l'ÉŠ2)OmëœcˆËÓ /1NuI[ÝVY ò¶ºù¾Ÿª =ð Ôe5Ú-Š>÷œ3ç¢C‹ÃrÚ}¥Ösï(H‰'p§ï¤ ¯{9m÷ëV:Rò|•Ú rˆ¹¼Ü¿y‹k§ö@ÁŠÎú îÅéÝê9©U<£*gMŠÅ7‘¤áÛ†}”›­nËÒCª“Q†%ã¤I[æ¥Þß>6ãÎïU-”#ˆ(Wç1w{œÄj¬5bTãnò@ÃÖK-Ô5d¤+5l»½N-ÞŽÍrv¤Òúçp®¼ ìâˆÃ@¡ÕU•D`â™õ›êÝ—ù×-s­êú$ã’ºÆ"ýÍñS­w¸]úqš;g½È²3B»•„Ñã_¾G2=±mai²Q>ȯ+ȼåaÑëX;¬¤gcº_½=Ï¡Uäé”CÖ{ö|An{;…D`Æ .ö’VË•n¯²U”‘Üo{\4DŒjj1 @=Ìþ³Õ EéøFÝ1C^•n€¤§ÄŠÔÄ‹1Ü@kfüUuù(éHF¨ÄûóÊ#£–µaDïýhñ#Ƀâs‰{ÐMv!østlb뱿ᚴîólnå‘Ós´Dæš–3Ä÷G1.Ç3ì÷yïWï¤([IñºïÊQ®p²›¾£:1T÷Äwúú±aój}áøÌÓNs¦l)ÛîÑvÓF õʹ›¼NEŒëë$¨¦„â´àLдɶþ1"ôfum,énD–÷hÊ3?ãîkÕ³ ?ÅîŽTðg÷™>ß‘œ¯Õl0…VÜ ¡*Á³™:¯q§‚¯Ì¶eêŒÕ,¯~ü¤=®ò•™&±6yg¼ê’aØÏ– »3ž›ëôÒ(3^[©—Æçiò8{ŸK“û'µÎ:m{â–L.ÆB0}Ê(mød¹Ái-ç ÃÌF!ïDUrMO ž'#Ó¦Îdî{-«t©´FÕö½x*"±~ÍøǪs:F^ì¨vÿÙ‡Ës‹F`¹È¸Ûw\ó… ó÷ª3*ëq™Ahyþ¦ï"åg˜ß,Ö»^/~Æ»¼GˆUhUŒ—qû†Œ“M>à ß¶jÜ\ÕÞ»n¼=ñv=g‹•uKá®l×—õU»Sáu&͘~ÛÓ^™¦Olx–e s.f’Ô&ç&Há8wn"ù(©C®jÖsÿ<2x|éf¹ûriçú|uÂ4o~3¦ÜÈŒmæ²ØmDg\Uj~|›³Õo‘á†n¥.K—„¾x6EV™öë•ïÜï‰ûVM|¸%yt½nÖç7ëHƒ–+û®–1Ãʦäß6Sê·¾1!Ë"FÒÚÑÙÙ©LÚŸeÜkNü0Üä«]¤ÄÅ1ò>ÿ^g Y×êÈ…Q&+¿žU×'®³¡J²B1¢sîØÕ'ûé–äžé{J Á£v̸Åe‹œYå˜x›»'/$·$)„ªYÚóiEÐS r8î\IŠÅqÞ»þ‚Ë„´ku(©?¬ß°—£%èŒÚÛuMŠcª¤)÷SiNáGZŒT; µj³ßÏšQ¶n+g×%¼5™æí,ô6ËØv³M¹U²UÎ6žÊ@£ðÙQB.u=t&n3@j[Œb»FÍ*£ô#ÿ 'v2i˯iiò2Ì©ò©Ýí—OtÞ™huAÙŠärâLªÍlè̯%ù3È^à/4i{›\›ŸF"ìqþçÝÛ=¿ùºûúÃF7CŒÊZ£R ŽüÞÞé¸-]òª®¶gß]Ûw:#ߨž)6i!÷ØðÊQtyuÁæGkÎ罬Kì’qdC<œÉìÍêoZ¦+oYéûÚFj™zYFüÄÛ_Ñyš¢¯ñµþFÿ(¥/‡í‡o* ² ½˜.Ò[øAÛÆ=6¢^Aú¸–¯k§(×°Ÿ.¸`¤ÊÊÅ‹OK‘ç3v…é`®zòž²&2|¡æÙ ÆFš¤åV™àÊ=|îÖЉóݯyN5¼½&È÷*ãÀÚÆl‹ÿÍ&ØËä2çXïh/Å—´Ÿ[ðñ'ÙœxbS [SÜ2R»ÞÜM±8 HÏsCú=o¤ëlHi÷¶\ :0—½¦¸F; +ßLé'Yœmmez®Ã†o80—¶†$l@SH‹Û†d}¬_’¼Ž°\>ç:êk€ŒÒB=²!uØJÅ÷ å4©©¡çS/º¹Þ±å»'˜>6 y‡Ùz³ØK ŸþÁƒ¬n¿a2„V;Øo)sÔ>@æ mG©WýЧq¡fâ>¡ØyY}s\±TènBó:ç†ä9…%®½E—6›]*ε¼g•€ŽS%nÅÔíi£æ/Ö®tϯ¼hÞ‰l¯Ë‘Ž‘uSÚ`©Ik/&ÓI[‹7•à¸Õ«Àþ4àT‰KúźqŸ³Øz®-DN7Û‡ôo½†½ì.z"ÊI¥‚ˆáÐðø %i×AMsäšÂT5Ûb‡NÃ…«\õÞõÁR×÷FF‡ãytÄ–ÆÍ"Þ›37íØw›ªKòÛ''F9õYæù }ï T¡È}»¨¡=êSR²Ã§êx&Ιÿ1€-ž½ƒxò ÚÈV—sL-ªiï´åƒ‚ ªa¯| ªÉ.b3‘èŽ [¹V@|g’ZG¨_<ÔÃÏÃh_Ôù=½ŽO,£Ôä%™²D£/«ÉíJ¦j¸mÿƒJ,¾¯+y­6DB–Wä#ú[<Ù’Á}¶HŽ´­ÛAxvµVTáÙîI¹žUj±HùUñ6¼ÍæTÊ™{½j¯Ï“Êfv-§ƒÃž*¨U›íÎÒÌi]à¾ÅÍÈÒnÆÇñI×u„×££Ù¹ÜíB ÞÓÚŽLÉÓ³˜ï«ÀÀuZ>rÆŽïsz¦qÜDN¼­gU¬Huè÷ª@úOúd°Àºñ0¾»cæNϾ¶…z_ÎØü¡i/½õé:V³’ösÇ›µý§SúÝ)i]ÉÝ·?ÅeøÁև˹ÛLž&×Èß7/5‚³Ý;OÒê|©ËêVšCÌ3q,§ê%úÌæ^áW–ƒmV-SA¬wîóAÉ¢ióø–)<·¾ÈÞ0)ô;á4,{M*”“|¿8UÊàx€ÍÎRh;¯^Ï:A”r¢¬î¶À^.PþcfËçãDð#÷›ÑR ÅìLß“wKÑT9ö9oÔ‹ÂMl"ÖøfÌzõxM™¡‘Ðá邉 VÇ#_Óš·r‡ vãª}Ã%ŸÛ‰÷Ô¥ìPÎö‚'?ÃöÈ9- "›Ü•£ëµ)+ßļº#üúp/~Ps&Íò­_’^“òÆëÇXY’“º‹iÌíßS1ÍW ¶ß^o+óK£_è­·S˰»9ôa ãßÔæ;*|wÌ닊\3J4QŠ¥fi›¢y‹•ÃC8Šº¯)œ¯j‚wCñÏ)MxØúK÷*¶X¹¥|fÔÖ›µÔ_ߺ)iÅgñS—+Çv›"þB¤e<•H}Í&ðÈñk—þBrk e äHÒ+îk`3ÆÊåúIhð¼‚]íÌØNr#JÜär±' 5äÈšåiÏjޢŋ´…í>Ó¹6%×As Q[š+ŒÿE³W冸båÍzŸõ‹ô$R˲Äï x5Ï ˜# ý,kôÝíNÕ»Ar™W£Ãƒm+œ5+Ú>^{}GlØ‚˜‡‡Ä`lè·ì%9¬8ê%K}póUó‡mÏy SF7~Üñ¿ñ¤ש~o¾;á"9Uút<½ë¹áÓooƒ"2.;ÿì-[¸‡fYÕT­×?ÀDì?ô¶hz¾Ðb^uÅû¼«öéA¾Nwd¬(ŽF³ëóÉ+ÛwÒž.‹ùÛ]%tÞådõ‡ Ÿ«–¼ü“Lè¾Zù%¡·½ZürìŸ4O¬¨'åފ̰¥n·eXŒé"d‘Kz cìI´jȉ¤ä®{t¥zåü“Þ.$a!q•Ÿ¨)#6˜$8JŸ¯¸2‰±<€±ð}ìFv†©¬ØÑ¸˜»wNÓ2Nt†³N>!YAŒÛ[/íð$!Šî*1¡aȰ»tùþ<;ä‡cNÉL©º¹šæÇæ³Í¦×¾¦ežÍ½}Ï ãÝ×9o¯|Õ‚ñÊN:î§z ?äåŠñ'º÷Ÿ%÷Ö 1çct`ôcé‡k}+_ý`/?Xô ÊÜ ›»v6Øa±±á³xa?°jÝìžlôö‘q¾Â¢ÌcÿÎl…¼RÓŸï‚#Ê“<åóJìZ`(ºÏÈô#dÁ°D£+É}K›ó./Zº\¼×6õ‘C\°l#ÿ8pHןCs‘>ÊW;¹ñò @1혫xY9>ÕtéS3Ì3ò¨iãËCà£%é2Ä3-è‰8 ÇYhó.¹â¶A¯€wÛv=+¸*â¼$|ب`u¸ jzby²«ÑѲáV²~¾°Áà bÿ—*ÙÉ gm2t“*ç3x¨²bÛ*:ò/Üýføe²<)'Þs *ÌOOÃxIÙùÅÞwûÅPѼ¨çô%rƒÒú}ñ!ô[Èt¯Ú»]©Â·Ö½ÜСðæ6[VMM²„·µ;)6û'%©%Ðô¨™œ­½“üü#µé–<:c¹eD=Í ‹-iÙ÷±¨Fß¿6áŸÌåÛ¹Xp°š³×!§u‰øÞ o:Ò펳Œ3 -RÓ=oK_«ŸÛ:äÎŽ)h¹MÃúµKö¥õaÁK5ßMǵl¾W¤á¼ëÒWéstÜ8&)²ÅÌ9Ç ®™RLð†ó§nPÍ£S¥êªš•Èx”¨XŠ;æ~mž\?jÙU©jO·.+FbçrMê®,ƒÖ — i÷¹¤|¯p³¡ºý¨j•Ô·¿áƒsCó¦NkÔ¦«D}ÿéR¯ñ…\Xô+Jøé%Q‚¸ÏQ­Î=qT‚Ù4”ñß°¤£ŽOõ•?”¤¬&™ì°˜ÌD¯;†ÓsŒŽÍ*‹Mt§iš¯¸ç¥¼viý¡fñîcJ–|t $éyç{߃TGqI彋_BMÔýÆvëÚ’?/·g©V’T9Æú³ùxŒ†Üùø™÷ÙÌ™²Ôþ/ÁgœÙ-œ“l\HaÜWLèfªGòR3qùƒ™Ñ`¦ 7Œ3¶ F/s”ý|Ý"[aÚavÑ'Ö÷&5Ù±w0{ïo;ÛJõRì\Q¢§õ!)cX_2xô飴ƒsªõ#ãÙÓ±ç»ñÄR}¯w…ÎĽ—Çu›$WÔÜ@ŠìX|ðÒKTÁÂË·}õ™ Da%ì22ÿ]:²endstream endobj 307 0 obj << /Filter /FlateDecode /Length1 1723 /Length2 2115 /Length3 0 /Length 3184 >> stream xÚµTy™„ÿ–ùDÝÅwÄ—Ê É·'!bѦ/zóõ¶™("â‰0ÑTF°y|XÎ^$?32‰yѼÝèÎ~ O\{ˆ…Šw!`Qؤ·<ÍÉ“ ¬m-ä:uFXŽhx8ÎZ¤&oŸï† £‰ßSw‚JéwMlÂbËûÏ ˆþ/B »9} À!µÏÆ ÀŽbr‰ò¢“š‘Ãd9Œ7C& À†ø"XÆcÃøKM*‚"a€ ŰLú¥áë•y`ñ˜.w|dÔ&³»!lØNÁ8“O¦B0¥ðI2ÃÇ•…"ühÀ‚ÙjDoÃeaúÿ™¶ojÑÅ|¾7›~§«ßºBá<~ôwœ¿ñ €å¤M¿“'¢ó¢`–/cr§ú;…O%¢!> ,È–ÒrkÊ”Å_>b|\Ëø}Ä“ßhr»õ76\¦Ì0‰€5iÒãMù†;~ræ€èëêãàáòÓ÷D4ééŒ0Qን5€„B(Z„+ƒbe¤d\ê,8jR:€H@P 1&lT¨&?^ É!¾€ Éñ- †àwêg„LDþ%dˆø}ôúš½¯|¢'eJú¼WÝäÚ¢ap…_ô_¸à[ò¢6p‘qÿ}úÚøUãÏãñE´ƒ%µÀyYP¬ðPÈÖ`…IöU$sêΙT7ÞõOkùÀŽ‚™jm(Ó.!toYRaŒóá–"ec[Bß -ûuî;§uîo¹°PÇéà£Åðªü¸òØl“|ÔÓ•º1&39ºÎ8A“ÿáþùÝÅ̓¬ÿ¬~ ÅxÅ,œíLkÌ]KðÏöêˆ-ª^löÜ=7/ð˜å­ìŠúÀ¿ñ…£í…‹£i”¦ ·{UtR–¹M>7_ÈŸÕ¡®[µ°£¥J›¿#ú“ÖiÞœ—¤Õè>]pé¢zPò CÇM+›ØŽÎ5wyµ¼Ðo&íX6ôr,9ٵǤè€ý•u¯VµÛ›r[3w%#¾ÚNÿØxžÝð°*Ôuä§4o>¯P{A‡³·?g¢¥¤ëÐÑ5:Û©Qž 6XŒÂ»Míi[è7¼ê:õ½$àw µc4í~@ <à½0/èTzq¾בÂdéP°—©éŒÔ†=Û ».Î(9d™êu¤Ý~û—ÑŠØ­[q¯€ËÒÎi=7ǰٔõÓ(ÍgnIÜZ×7ô:¨-©¾É6s-´‹_Òò ½LÜyk-èd{¤(¥Û·•)-zì¡¡jœ™®:gE‘4`zÃn×"Ê¢íòvoH¢l67Vš¯õjˆyOö×ëé+è­UqUóöo}ìA\¸JÒµkÍ8`ÏgƬ¹Ó£ªçðë»ëñ:¦Û½»-Ày·`<ÂUxèý†S»îÕ.ؽ¨[½ÞÒNoMy“OϘ!]fåxWõñpÄŸYÝÁ™±Œþô+6F×® ê§jwÌK+^U¯îá2´®ÿÆ:Š`·Áé«’?6Å’FüuæY¬žvòס«!ö]»žÍxáß:£«è½õ;§ªUé. g#gžzÖ³L!Ù¨"A}ë`«Ì(ÝFþAç„Í,$¤:ÓÄöçé…[{«ëV–…\-)ÙÐ8¢šÇ¸¶ÎÝoÿt‹ç° µóF¾’ŠÃAhê¶MEç•tod”Xî«IÈì''Á3úù 3Šœí‰yq¤² %ÏPRÈ ÑOçèï´qñªþîúwRÏiíøOˆjÐÆ[*ºwUϑʖsëVZ0¸ ⺇­¸þܺÒaâ •rl®%õˆ¤`©Nj´¸Böd£x©ðç^ ³öâö»PAMVyiVZCsJ5£ýÇ“*¨¨tó¾Âÿ]~b¹îˆe£ÝØ%æ1Ž”î¿Ô̾)Ü_ô´H­?sÌÍâ×þŒ#;rsèÞúÖWâÌv§Fi. Špl—=3]·v›•ðtMùM™äÎÄÍvófž˜™¿”ÝÙï*i tØ•§UP ¢ó‚üüÒí™F†MÍgžUq¬Sl"&M̨8Xª§´„ÎqY›"™o8ÖG÷×Ü<«âùŒÆ°×yŸt¯5GG9ÙÊ[ u8MnbÜ>Ð×¾D;vURGªý,‡Ö€“ƺ«–ºÖð+ôÛk¡ú ýçr‡cÇÞbž«SÛ.›>êšrá}›Ÿ¥oeâØ‡»‘Ôùgj¨ë ËV67f§¼Ò{l0¾õ¾Ééze*zØü|RwÕÞ?îOk]´ýÃ_.žÇ`ÎÀþ;µ}R¤¾ûŠGòùÁåçÏ ÇÍþs³NÄ_%Y*f™»®9 d¨²©üÉÏ{v¬7¸“R›v¸ô9=Q~Žv\fhgþJ÷×ðß¶Ö4¬×{“¢Ûø€ºe¹lí‹®‹~ö÷—‘æ;?¡üú·;{h…26œ"òroñ®ÍÎ$¿ñ^MGÛ [‘tþÞ—Bš^9¼¿¸˜hrhGâb{3g×Õq¯œ½\Y%¢•_{ÉxÓXE<ÝÞp‰¾ ¡¨¬'õô=O»Dçb‡õ+ÌKÏûÖw®Ì’%I³â’[ ˆÊrŸ¶Ñ/þ6£U¥%pѳºÙ[/\q4™òt½½ÂP»JBº¡,> stream xÚ´xcxœm·vl§±&¶ÍÆ6;Û¶m›McÛiœÆhÜØhì/}žw¿ÚûïwÌ1sÏ:—Î{á+ªÐ ™ØÅíl陘x²rÊv6†¶ÌLôÊ@3kCG 9¹ˆ#ÐÐÙÂÎVÔÐÈàt6(;ø~X01qÑ$€¶@Ç¥ ÀÈ t6Tõ°2¨ ÿ휜é >Ô@[3 [ õ‡‹ˆ½‡£…™¹óŸ¬ôô"ýñfH[Ù¹9YY mMÒ r y;·Ð@eg 0šZ›ìLª@ €šŠ˜² @BYAMQ…šá#°Š‹½½ã?¸ˆ¨¨ªIÐD…äUÅÀ/t 5Õ?¯ª@ÛþftyÕýŸ<†ÜåÄT…T5ŘÿÜ€à tt²ø“ö¿¸Q|0ü‹Ú‡«©£Í_ TæÎÎö<ŒŒnnn f.NÎ vŽf öÖñS5·p¸Ù9Z>®Ž@kà_…q±5ù(§³9ðﺵ0Ú:ÿ8‰Ûý­´ù(å‡ÓîüOb…pþÓúos€øiÌ þò•UT”ØZØ:m m? ]œaO  åßGÇ?9äþGåøÏ4ÿC]ØîãÎt¬½| Ýþ»c†¶.NžÿV›ÿ¼mc;[' 'g§¿#¦ÖÀ?ìþôÌÂö/LNH^J\LE•^öcðléåì>ªcËàìîü—õŸxB¢²<.&37€écHÅlMDìll>X;Áý)Ÿ¨ÅGœí=ÿ÷`[ÙÚ¹Ùzý S [Ó?µ7q±gT³µppJ‰þÃü‚ûft0€ »±9㟄͢ùüQ/{;{€©¡µÐÇÂøqór2tœ]€>^ÿ®øO Ž™`baìü1êë÷Wt)[S;÷ßð“ÿQýc¨þZUê=5±³µö˜Máåíœ?F‚êÿϦýW.qkkyC ÕÿªéÚXX{ü§é™¨ÿ°¥’·s´1´þ/…“¸…;ÐDÑÂÙØüïÒþK9~Ì¿­™5ð£-AjVÊúcv?΋?Ç€ž™ã¿tcile tr°ýíü(Ä1þ¨þ¾FYI%!1Úÿ=6Ù‰ÙÛ™XØšXØ9†ŽŽ†pL³ÀÂÎðbþl û_Ã`d°µsþpØ»8ûLíáþ4” ÀhlgýAóþ afb0ÿ)rü‘\ ­ÿ‰°³M-\ÿæñ˜ý›øó_æÌÌìþ)²qH¶ÿæÌÌ`´ÿ—šéC2ü8¬¦ÎÿB™ÿþ=Qÿ„?òÚ[&ÿ¤öaçlîüWxöxÎnÿJÏÌò¸ÿ+ÂUO ãßúÿl€âŸCè¯íbúWGþq:ÿ%«8;ÚYÕ-L>>™þÍDÎÐÙÑÂ]›éc5˜?ðÇÿ¼ÓýäÿÚêó¶s÷¢gceгp4’íc)?JÄé󾯔­åÇèüüç”î@c¸Ÿ‹vƼÁ–iÍ¡å¾bEÓß É¹N+14¤ ~fNwâa‹æo“?´úgQÛÉJòèú¦Ø–jcX¿m´%WMݘ( îúÊùâ!‰ ç}aP Ì’[öÿÖMB}$W¨YÆ6›ÕžÐNP?áîìyŒaùñŽú;•Dç[ûZ¤[É¿DQífñ< ‹Q=:l¬¨AkG8uÁãƒø‘á3“P&éÀaºeÈa¥€‡O!&;u»JM‹Pæã4¡Î,?q³^{k ª®¦‰®ö¦Y‘ñdØHx*g…šu|nqç‡wãM¡ÄgœH×?ÉqMfÑݺøÒ¹¥À<ÆœêUÕ ÂL1õãd$v]`O‰>î©ã4–£9´Ué>YÇÜ!í0ޙϸ^sF]Û™EbÈ3ƒ²„Iì•äكϴ± £™T$å×¾XÝ/¾'L:9Ì:‰¨í&?5\s^4ã/ò‰ILØÖúí˜#Q³éKÿ¶‡Ò õ¶ÀEÉ7ï¼L5³Å‡«â»XŸ÷8Kâ©*q – õu»á2ýS阑Dg©­a8FKLCiL¤#´køÃšk-Ó¡!1 f¾€ƒVKŽ}Xµ_Ù RéõzÏh¯Õ„Æçý,÷ÉÎù¯âÇ€%©íñÝOåÇõ ‹DJPNÐOµUu[îÓÚ®‰‰!kütã)[™°´µLò½R„ó€8_RÔÉøµõM*Ms/×_ƒw}AQ¯oí9«/?ÁøØOÝ;ѪTe ª$WvÜú¯]ÆfxâE±é¢ÃŒ{ÝzûÇbªVÒŠ)t1Z|-¡gÞ uxÛgb³B„SQpË&2f>1)oVBU ÆåKŽí0ûuõ‹×‚<›]Ü,.(¥-Kš(a¿>õ®ÄŠ'zð9ì)†BÕk-35µ.§ÏB"i4i¦WòŽË¹Øß#Ò¶KÑú–¢#¥<|³Á¶Á²Øg¡‡qàD$N©uÖ)Ã!õ!_xqòŒ3«ô0 g³:3oºÁVEA.’¸˜ YÑ^oò—¡&¿Âl6 ÷ Uø%“Ú¿?Hî6(‚½ãf~*ú5©ì|Ü&e@»Õ§°á9^d2÷Ò/'ų^i‘ؤ]œ¿×A(±ã;Ò~AEÅZ‰YGÕ¸€Öqr§ç¯"ßJþ`ûZ­O#sW”òâþgÅÃmßÀ­•Ò=ºNwb.œÅ{¤}žBâÕÝåVµÝ®Ò"\Òbâix©Íò:­TÂfj²{Ëñƒõ­˜ïe®(6ü <ö™Íѽ8?“¼ç²áÈËÈ‚•Ø5÷L±î—º]2zÙVöv v`K„`¨ó´E„#‚œUÄ…iCy/°ònæ‹Q”+$?1W Á…Ún&ËU·åª¾GŠôÎ)1ÉmÄ…ŠÐ¤ô®ü¼®‹+%›¬Š÷¥¡*lê›Ç–Oâ2Þ¶¿'¤^–å±mwjÙÒ X“­ $-v{ƒ ¿ù„q9Ë…_[Á-õù{® íkß±:¶a3D¥ù†ìû |÷öE¿žãk•¼¯³Î!©¸Ã²‹ "7ˆÿ6 OSpþ<룻ák(°q¿Ôxs¬ÎSwÍa¢êÓ:MɧrÚêçǶ©½HJ ï5VqW’ígþž°š¶¶¡vZÊãCTú›í{ß~Eˆò¾KŸ„åŒÁŒ.né wSYˆ^rÑ7xl™D$l¿ûÄ׳z"8ŽººÞ#öÊ` k­¾ÄAYi_©@]¥l½&uŒ‡•íD'|'—uÿ ¯™óH‚6ZÔ-ÚösÆòO#4L|vÌòCu˜G˜ßºtÄÝ©NÛém#ª„£n~ë%îé×gÞÙZò(Êž‘:Ékù™·Y¢Ã Ñtr%ðŠH<£¶ U¦"ÛáPrå†Ùìú+úµuG:‘„¸”ïn´NúUÃ&¨+™œƒ¼Çaºc|1–ÈO» ÎÿþéàÀ|¨¯D(‹Éz¶Ú°–¹¯"ªG½øùñû¬a±TöF^îê-JÇxÙ%òÕÒ £Ñ ŽãXÛF0ÖCnÛó¶ Ø7Ù¶]çéߪ¼Š$Ñ×y)ÓÙ€š1SU¾gdz!KiæXýt– Ûý®75¹LjŸ ž<œøüUôþVáy¸·zylË>´*c5}ÍXlÙmöyŽ9æÎ³tKJô&W³g.Ã÷YuòÑJÒ«D3öhèMëÏ».h×à!Nê ÒaõGBºƒûÐ8Þ7‹H¥ê¥Õ 0ºdgÖâw\±O袅ß%ýüû¨š‘ …SŒÊ, wã´…0ÀÞÑÖÓð(ut¤¯n˜,úM~ïyùþ#Û½§°•‰%.ÓFÆ<“ÎïkÊÚø2¥) ÉÚü­ œ¢|Ù¸È÷©ƒQꌞ#ç hS4Ú¹aû•S9e|¡ŒBQÑ šl-G˜Caw$.ýõÐ l GT3\f?p“~aŽiÈK¹ÎÆ]‚•ª0KÒ4}°.|ò`qv~×äÅ6ðð¥×­‡ÞȆdÁ].úWBºÝÒp1eG¿iäÁÔ›æUœ¶3 Šóg„ÄEQª=ƒ[ê¦|’Jê dI"@“¦@aà•º„\ö9ÜÞS$iû ƒ:,) ˜f87wcô×M,N&Ðeêƒø4©>pÞë%1m ½Q †ÜŒ»‚‡v©ÛêóOOãQ»6¸9»–qå§¿`‡Œƒ©ið§ ™òjZéÈêÕ®”cÞ±Š$P`øì“G) 9~ùÇs%ä»0ŽyseWŠDl¿»»zu+hbq2[*}º~w9òyXE·¥Ô æbkóÊ»¹ÆC׳ i@ÄèÍõ+È:pìg}aÕÌ“s¬ãEPW¡,ÙÚßq- "÷µˆh±LP‘%7©U²Æ=Ç}ý‚ˆxóâ M.¹³SÅÛ\säOƒŽ³­N}yS™=;rÄNˆí‹À"r Ë%ášôú•) “UÐzÕç@\ÿ¤wÑ·˜Ìˆ ”0ÊWo¢!vjµï¡ìeæb©ÞÏÝH£œÁ-½pæ÷x¥E±(·D&¶–Tä˜-þð_O» ëAãø\Ô«$[Ì>N«¹tçùWOõÉl5Ïjá>_†}95ñÌ£ùU~Ó¶“æ•¥¢f…þÍP eB*ƒ Ýy£0-õ;*ð¦I@h©oôÎ< —ž¨¦ö.upÔ—Sœe!5]óñÊÖ¼¿»ñ2ð¢®XÑi…¬9(›k4ãMщ„‚N5€¨Ì’CŽûdzØö5âäY)N½­Š`CÆÌï~â~ïh¤>ä¶<–®é¸HÄøþ4×Ê':BRZø_ã>ñâ–ëìÈXâd¸ŸQ _¦hüÎ'žI¢¨ÜYcz;æ±HßS†À«¼$´™bŸ•OÝ‹1¸ßª‹ø:ú¤ãqö y–YªÁ>]Y„—N]¦EHs¢µØþšÜo ôŸÕ°÷uCÕd9° júÛQäIuêêVé×+M¢ 5O‚qßïàãN+«ÓuP×ÎDV¬¸ù½Püä¸TpŠt9Ÿù©ñˆê)t~P{Õ˜ø8/9Œ˜í=gÝ9’N—Æ vlùqÝuv>EºÃ£+—4Ü5'—ü~b¾4›’Œjþ{×-?fZA-€+ç$\hœm/Ë¡F‘“ÀãéîDÔ·Á“)é¡3ìTupkFÛt½¨ôž*iªî(ãfk‡ºNârˆ†ûä±UâKùŠ:–I!õRu VeHc¥%zZß¼âòëçÝ9Û‚4›ÕK×2ÅG&¦q Ø‹ô£›¨|ú×1Y:+ŒÜ»:UÍ[ú[Rßm€~€›„Ç1ÕÌï£T5"‹ÁR£òè¹=w½$@õÕ­h6±³‡(Ÿv娽4*—†/…|aÌ̾¯¢C¡á‹ÞÃcpNÝvåD‰Æ'Ki8LjWÜêg|æPt̉‰–|Oÿظ'µ fTàÞð3ŠÍ5P9ŽÉ™¤[ÑÏ÷ ÝMæ@î ‰Ø7·w) ×86o¡Œ ‹×ÏeøTg/~6_YîùAX§pªˆòº„ý÷à Ìenßx…¸ ó©Â^'ëðˆU™²b®ü ¸>Y€±š“BvÅhvdõ° ô^NÍòï#Eq'W ñ¦Á ÚøºÓn ²gL¯Võ Ê?ÕDýRrÝu9Ò}ä, ™ Ô@²•/p•ã28QÀÏ8ouúSõøn÷‰tÍ~9ì8{ó½Î—~Q|+•5ã„%áÆ/?_WXï‘:9Ðè°Û~·%û÷s†–xؘ5—f_¨¥¼ŸC+æC„µL]´ºVÕÐm¸™1w@` Ñ~G?á¶Œà”ØÐ€^"V„Ðy®T¼2 »B‚V|Fѵb,òdô A?º\ŠDódËÍÄœ|˜Úµ‚?iž½r¿µ‡ÒqGšÕ˜7ÞZÙ¹G*šQnH—~;fÌj±`R¶†Õ”]ÉÌç1éFkfôCÝkð®ôìÏË ¹§žø'º=l"ªOåõ •uÉ8yqCQñ"Î0Ê]s^÷T{&h¾¬š‰?uÛµŸœ9p]”ÄT•®Í5S&]´Í:èÞ…„£AÑ; _Thïb©‹Y#^ú]  e—ʧE:·!¬í=ÁJ'TPN E$´w$®›g”O(µ|œz­ v”HÑn“åHÃO‹â§XÓ§Ä"$0KuP½EºÆªßF§¨›P’ T+7?zÓ“iÔ L?¢ë)®zrÛHhL],I$õbÏîì¥.V¿¥)xjŠ}?Éß}µJÎRµœÏÁ«3¼ÐæÂõtHH”tN®ß“_æ1¬roE½€>Gˆ¹6»¥É@è¦þ}Òß’ÓGJœù]ÉE,bGÕc¿J˜­Q YÝ‹ËmE]¢MÙôK^“»\¥šz)ØÑ­4>»E@JÁÍà„/S­ë|(¡¿a.QÐQ~A±PfSâV¯}àpqxÕ\¤Ò½Ï,ïvxöV£48Œ‚ŽzÜ'ž[ÒR0°F(ZHž[>G³¨P^åÊÊwž„Å‹GS»õ` *?|ˆ†:u¦ôÎ_ž±J©jäwjõöT”š!~|€ëa¤ ÷#÷W4¦Žôlÿ6›O)‘vx-œ׊ Ϲ%ZèŒYx§,¹f×ÍñhÉ¥OäD&-ì<¶=—²" YA?©„™ÚÅÙ`Ÿ\“y¨0åJ½µ»J¼t”ªš4µYy $‘1jŸýŸŒ0¬Ãã¥.¢¥^Ç¿Ã_óðº’ì•A2jÖ_Ô“¡xý°:&ÜãU–™T+!¾X©CwRkúRúÅ,3­{~€Ã¼Ÿù‚¹xÁò­ù²ï’W8»cèÈW¦ä®“4˜F4ˆ‚41CåK£Â•‘~0H6ɹ;ÉOÙ¹Œõ’99|¿9°9"l£Û1òLóék\rööKœ´oªQÎõôI`ûšöÌf 4cøÂ¯/ƒ½—·íž}ϯî?5Œ~‡+¼xS¤æ•UR•¾3\sB ,]3d@^/=ÃìÁ…C+\Z fóK˜]š•1ËûìPÒÐñ™ ~Ézti¹0k‘Žs’ÀZMUÔ`cE!P´ †‰¶!=‡@i›…ŒUì²ʤkÑFdЇ\š?rr/·K©P—ïè7ÔÓáí½r‘5èO†UÓZLlj‘Ob\©5[¦}‡0AxåK4´™Š"¤Ç&&•¡«n-ÕÙ‚±Ù{§œcZdZÜe¯jó Ÿßw¹g‘®c‹±¹0Î¥­íìݨEd¾y¬[E}Éh²Ô ‰õuTúÍ ]k‰!¨š—kèZ³MÞ‹˜$~Vw[[äŽU!4‰¡b§yÔŽ\™–B„?`,ëfÝ¿÷pzG€V ÂR\Þ•ô%èP‹¢ï†ö¼JÈ/˜q-çÝÀžHÁÛ´5ýÊf> œW—It”Ì4#>³×`mÐÀD5^¡í 3oü-W ëzŠ>D!oѤ‹ã0‰)¥1JÕ‰:”.®¾cäÀÁS'8iÓvÌË?핉KÐ%´1@6×/ýd¾Yæ­+Ùµw :Bé\CŽ¶Ì¹ª23è7Á§¶Û–Cù•)É)Ê`ç!ÏßmÍ9zkïÑO¨Ð»õíð½¯ðEòdVƒV8ýPà׳<«Ù†\ :Úx«Ö:ñBaRàxþHÒLà ðg]ŠLBW¸ŸÍ}¨B“¹¶ÖêL¾·†sÌVÉ«ŠÅÌ$S¸Ö\'éôgë"“#LÒq0ˆÃ¢ Kµn»ªÖ¤KRllmÂ;ld„1ºTì0µ‘A4£°.’·sÜ…Œøqr¢æ CsØï“R‘ð³ö-üìfá_Èh“†Õð–Ö¿].\©nÅZ XršÀX»XE?Ÿ/jFg|ÆG]…$jºlp¨ON—0‡–αŸ:}Àw»7¾G‹r üN„‚pE¿^ËË•à®Þ_º¼ò5ä‹mäÒ0"÷ÑÏtåÄöl&'9ܶ•<¬1z>«Ç£œ¿ô!K<›á'”ý¢‰ªÞ‚·Ög“5Õâõæ«)yÌìö åôJÛÒ\‚Ì_æÀÊA¼qTžr‰_X\9úŠ‚ÄÇ'=›ìKÙ€:z9n9ÄÛÙû«S÷@s:-šajõÚ‡ßH½ö|t·'@Ü GÐm×U³Ë—éÿH‡ö’KGå… ©‚昡NQ÷Þvþ ›ög3$³Ö7¥:[²O¬o%@8.ß›:îl葘Gz£h.LW1W–cQâÊ>°?K7ZoÁÞëC{Š@³–ô&N6÷+ïÛÜji–¦nb˜â²v]B²šŠj¶#=í«U: ¥á¾p :œh….Ô̬«Ç:3e¢=‹òÞ1Nþ\fÉpyªÈ諒g?&Ÿ¨Ê•Ö•Q+ƒ^²yÖ¦è¿U¡€l;A/ŽÓ”žÞ>Ò`§ VßþúuI3ú2³ìA"°?ÕÜÿLŸ”…vÖ>b^‹}ï|Å^c"hv2+:Šžn ÷(î¦ø3pbR&ÉÛ×2¢Çö•»‘ ÇìVŒót|sÁ»¨ÙÔñ–H7-77}´,qxCiÇh~{æΫõÚñ…&*@&¹¥NÐ3Ç lGáªIMÙ!l«Ö½­  É;ä‰=íïv¿GåÂY²­á+6þs¾9ÎINÝ=>ŒxcqnÅûÖÐ{‚þyœ¯-;yÑW0' ‚» 3Ñ ÷|ݽ;Ò¯!O9Ä–àéÕ Xõ,@bF.œzBY,ՉŖ#š××ñèJ{´RŽrÓ»ü*À×XðNéþjcmÀH9?ãd?‹'¶Á+ñë¾:‘ üÛ)®¢“XÖ _:¬üšX@ºÚE€­¬ðcÿ“„èÜŒçé΄õ>ó©/?ˆ=%^^ñ“0« íÊXÒòmÝæZ½K2ÈØ^¤Áü‹n‡‘›÷‹ð9ÙXšê`ó×Þ^->gq³çngDî3J3W&»].ÈIùÈ bF¨q…¯‘$[k¯Na"€ªùJ|Lv%oq_U£:JI,7áДª=°ŠXí+yG6¬øá%•v‡ëgüŽëx«”^‡ÖŽ˜ú2ñâÁõ@&t’öõøÝ“Š42L4ü›ËãÒÕ#®Éðb>ÕkX&}E†c77tÐ’÷ö»a®D¤ö÷Š'®ãÛÏJbn΃&×ËÂPȰ;šbés£qéĺºù?–ˆµ0ó—šz#Ì‚Ý_3?ñØ£¨„Æöað+ÜßÀÝɶXêÓNGí3¯VqK¨ñVOªßœ¬”:U! ,ÜÀXë¼lƒ¹YèL0¨* •kV:E6OÏïZ¡ºs…Éû#VˆA"¢—€Û«ŒÐž*7ºl><ÝÕ–!‹‡y¸öQ¡½|+ùTWœZc±Õ_bEúÎßNF8-ÒY"gH-‰¦~·ÔÄ ˜C CÎ.<Ÿ7Àw¥\ÃM*‡°1œû"=j× I®{²O!ò?âGåÚW«1ñ@À'€Ó¾4âMÇhkquo(|t´Ÿ¢ùzZ3œÕ±júW¸çS”úÍFˆîžY §w»s»3Úü+»W½~„À¢Ð¸äŽÎQo ük˜+¤Ïš ™uªOI™Ÿ­Pš•vj4³úÜ/œdç>aõÃ-ê†0Ê0‹™Ï8Òf¯šÙås Ý LA q©;ŠáHÖ– 5Ö¸J~¡³C8poYÌ4$V4‹Å´&_…,¯‰”LS&uóߨ#× –G²ï›³ø*E=ééºIDx“«+2¬éÁ7ÀŒ7œ7Êò¸Fsòê4¥!FÊᑆ-!­Õo9í ºÞÉLbS}ül6gò:BíTgðô >j´ˆÖ[Þß±ã 81Zš&Z©N`~–«ÄIö‹»9{N½fc¢åÕ†¯£ÀÀú^î;¿wºUÃHÁѵIõkÜaD@A òƒæ™»W¹* vÔ¿m³ÌãÔßàËQôñLÅq~_FÕª&ØH-&ª´9Ÿ"žá¥zGNøB M*Çæ$©öýâyæ`,]w«<Ö¯Æ'<5wèëÔçsKñ ­©h†½N)+—”ù|Ò¦Q2E~2åHyæ_ú’Ô³S±ÒÑ—?¬¸%ŠÌ9[ûÆ,m†éÀÆ\±gÏ•ê˜$PÖÅHS¾æ\|-c6šÁËòkí~µñĦï³ao9‚Õô§Qç•ga.ÎerƒŒ!©÷Û Ô»wG „–“ãIXFnr‡òfŒŽœúZ0­v°ôa~,U‘¿Û{Ñ…4fš2ƒë;("ÍO!óúÅy \p§ÖŸm¶P‚_Kq¸ùö-ìv§”€kçOŽkx,!´R¿pÑdWtÕE #õùÏ™ÇìCZ—ZŠ˜k9×ÖÈ‚vÌÖ#%ö^ž´ÈÎëoW»N`Cñ£|ó¡s`éË„#¢Ã$µóŸ7{>Ͼpð×GHºè›uŸÞdèèŠ'”ƒ.‰±K…å$®ùB¤rDüŠ à:!˜Šo æeÔχ+ð¬Ú0YeöO} kâsÝG³À¾ˆ­æ˜!KhÓèU7P?g¨ƒŒ±ùlÄÍû)xÛòöîAÈT‹ÿëT§û^M#ö–kA<*3çü3.f•ñïàZèÎ ® —ù¡(’FuýbŸˆmÆGo@?€ÀÞüŒ;:¬<[e³‹uIÆG(n eË"röCW=@"œs ^_Ô ¤º ¯°ê½ß{Û{GÂ( K‰í¸ƒò–å˜ÊŸ*0Pà‚¤VýëèMbk½ü«ÄP ðª»×1ž)ú §È~¼àœãÜ8Y7x¾Ãˆ^#ÇÄYÈr ’/ÆÂ‰¤õ2?Wô§t㘳&{¹|Pö${×EFYA¯må¦kî©[j—3=’%È¥¨IÛËÈíÞèíî[R¦Ï”Yô¢çkŸLhËÇឯj–ƒ¾û[êÒ˜ç/mð݃ÿæâzøæ‹ñı¸IJò|›îââÍÁ9¨¤Ùƒ„Ïâ3.'d•@pðE€¢7„k‹k=ö‘Œ©G˳’ÛõKÅXXG¶âz½:Zd ÿ[÷Æz»K8ÂlŸÚâûUd/ˆ oE¸M¥5›]€NY[?ld:‘XU!Ù~‡0@%Í]ZôŒbÑïì? uõX[À¯äƒ2.ì K€ ‰{ˆ©bRÝm”ˆ`a‹6lŒh[¥;¤‚dK–†9öÀ ä;@Û]V|Kt ·£žânÔFc‰Î]›uBÅ_QŠ% ëðã·äIøÉÃJ”…!”O"Œvcª#EXÕM|¡[]oF…ˆÐû#©ªqû­‰êÝFúQ˜æum­§ÂÂxs"Á†o¹)(Í!šŠ;’ÅW“|m¶YžTœ‡5ˆ€Ä”á舅ÀNÿQ¤¦áûy¢±Õ+Ó¶m‚¡2ÄýÀáÞ§%{¡+–-xô2K­†[)Tõ‚Ó‰™6¦B‘Üßz¾èY›–RÈ› U”øMcéåÄÆ¯ñ5И(ï©ú5l¾!3¥Ç¥¤c©æ»õ+HÄbö¤£¸ü–Y§ôwL!?Í©nˆÕîFúFÔ‰î›/CŦ‡•=¹+…d^½cVD5¹ÂŸàîiTQô<Õ髲«°+¤ýƉ:,3 ¥»Îë(qú¶ž!`ïÍqƒ–nÎiìd(yå·`…‘ÈWÇ?AˆSsžßF;4B”À ÿîv×Ò!q …­ ZAÓÅG¾0ZøÍMø°d•Ÿ1ã§4Îݱ„Õž¢vØóƒå ã!SŒ[gMrµŽßûæÕÊRîZ?ÆBaj ´0™Ò.´ý“ȽJYg”§ÁÅa\ÆÎJíŒ ãTÆcööìøSËøü&ÔqF–¨æAO`•æ+‡­›>írÿ÷pŽË)‹kôÌgô!Í%£Uà ™l|â{Ñ~Ρ¾{Žù®PS‰ÚBÕÙÝPƒ\ ©n‘®Þ¶Ž/ƒ ƒÝ¹þ\ÎøÃ;‰õ»c2|Ñé>Íô.–V½¹üe §M¬â,+)w 83ÄSÓL)AñÑ ÓPïï…[öê$s†m¼uë#5#Ç »]ú]1L,ùÞ­ÏÞùp“ö_osÖ—S<êV nú¿%6§RIkÿ¿Íê”[1vØ|2"yˆƒ ~ŽM¢Œ)P¥K_µ ªóEacxßlBz~M;˜´®RxoÎEgÖÿÌ=ìcÖ‰ëž7ß±‹øû’…EÑé ¤FÝ9ymÞC®‡Ú…C*±!ö¨ñAÅPè¼Ã®y6£Íü:¿åJ¹üxR ‘xÒêB<øÊ2˜¸ñ ² ZuÝ‚Éà ‡ È*~Ö© ±Çag¦È²@“šÌå5TVf½¤0È5œ;?j<œOãÇÿ‹•ë–‘Á“¢j’±n «c£¶s*ùGˆm†¤hÇ®N“ Åwj©ö”Hyyõ«ËEn”ëh–=°Qzö|ÃX8¼Õä<ã¹Øƒ±£ßÁrXkX‘ïµRü´çËHAͺÙó#“ß=á;!Ó*À4–Åʤýzg‚4Èâ`>†ÇÓ1ç¬4] ‰m˜\¸©÷âýñ°»¶ß¾+Ì×¾ù­8ÞkáÃjÙ$D ÃÕ§aÙÀ›+íþð…¼ K®-û‹OJ›ðNê¾ á‘×̲ÍÌO)B·ŠG«À©¼ù·Êͯ/÷Ð m§‰•æºa„º}Õ¾Ðç\ÌÆ×ÌŸ¾f"ÁŽ®t¡6·ä'¹¢bú™¢"¸ÛJré…ª F&øàƒl†Þ7üBI,<5½‚×Ê /*J6A®ku± ÷É ô„Ë€¸ŽÉ1¶ ŸtT4è&hý*«GuœfàwßVQÊéMF—ËÍáYÇwö+u$gkgËÀ½¾êaÊÜÜ⣠çÕåMªZk0m¸´õõ³É}ùŒ;{"- n¤&¸èúzíú•¥VÅ)8”ÁÍ:®á`Qßß³ú7^ŽTºkfƒÎ7YÓÞ5R¹çµ,ô}ä)äm×ÉЄ b*»­¤wKó¡ië¡u±¸–hÛqƒÂ€¯ÈŠä¤`Ô´WÊeT-—G“Yi¾ÈKÞ´T¯CQ`­ '£+WÕË ‹¤Ùnnïi«4CÞ~&e‹Úaü¢šõaclûÝïJ”iáý­’·^ n÷ú ¤-–¨3Ò)Ø»­0+A½’½Y,v&'ÕmÝs”~óv´v<øf&[>2öËIX¿5hî·¡¼Å)äÏk+{Vpƒ@i"®PÜ®méŠûè‘ï—JØD…+± ùÊL»K=„@ë[í<­cèJŒy¬pBÒoG-d—Ÿ¡˜CQ¡uÝn–<ã•S‰ö¼/,­S\/r R0 3ø_.¾Q¯ÎØ÷jòçYE¤Fá†(–¼ºÚ«`rÜ·õ7ï“ÉëŒ$uW(£¹L£÷/¹oE'#+â&‰}=}R0ÅÉlç䯫®!ÜäF>ÎõSœÛÌж­;¸Uò …ÆÂAäÿš äwvëô›g–Ô²:ŽI¡…?õ¦ê°^˜ô¶ L%¸‘ͽLâºcÙV\±Ü j˔ـ•ýëºÔÏ\׬%.%6&ãÆ Ø~ÝàŸê0-Y®U¬kÏ èf1ضþ¡ëRÂlè’Pué>x*òbKó÷oütÁáý¹Ûê-èT çSNû Vâ÷6) ,­møý¬àþi-î3^pCŽÛ`ÉvȱàEšŽª™ªÚ@…î^žw×—M6†cQGyTÞù›øž)Ö½FÒÛЮ»“±®«Å"Î]µµžš‰`ô™“Ú 3ÚE–øÃyû÷`R¨Ê)`oeªSHNÛ@Fpƒùÿøà ™÷¥c#ZààK?–=]hôÏ^ráÐé^½#ú^ÈN>—›¼‹Ê8˜×YÞ«%Õ»–«äïdbþ¢s#ˆÀž„,¿êMšn ÕjnêtÞÒ­r·ð¼D6еšI®3ûC;g:^Ýdâíš82´ƒè¯ô4 h&é› _6AÇvsŽDûõ÷œFI™ÔÚ/–Ò¢‡W1úŠxAUk—ö¡5ËÓTØTNÜv[‡ lû›‚Ÿ³XWÓ÷E,Âd¬³+'{U7_~ê£ê>z߇•©ó‘¯“W§³œ|ùZbÜ\’…fâNÙi‡ÚIÇ·4ysCRaòÌô;ýb pænã$'¤„À²£`+„ì˜îxV€ ù:-çz=B½R¹6¼ØÎâͺ·È9ðmþÝÐGÆwÖü©ð j~»y'²FØÄæ•›Þ•{é8ôBÏ(¥ÌUúÙñ C§ÝÁðk¨‰b²®£m6 Çh^Òz ±ÌÃog!?õ…3ÎZh?£ì°÷6*Ƭ¿Ô’gY0¶y".¹q>($Ëï^šAâøïF¬Å¹lJLÜ›R|«)Þô{œ!œ üÕs^™° ­*>³¿9ŽŽÄyœæáÌr]/ÛyK$û©/ŠPIü.Á@NyÅ’]é+ó®—›PÁ¹Â¥½ÕØÞqŠÑª'—He*êyžl³ø©öPv>+Žétص^OòD[ô­ŸOí]4³*^ Ve8—¥GƒT^Fc\dâµ73žÄ ­sƒ$x±ÏšXE@rwÞ„R0÷ú´>†iX8[Án…T+"zÌ9íßOuÉ}RMá/}ºNeXj¼l¯ú—Yä÷¡¬³'Q÷Ï$n}¿j`”ºé¹Áñ¦ò‰Î¤ibò¢/ΟƒPÔŒ š%¶'ª¶®X’yÎÕ^t«ª×¤Å ÙúÙçêJ5k†ÌòK›ÈßÏõôFŽˆ wŸ“Á¨†±f¿Ò´3«µ­r Æ/cq¦ÀÞÁ réýN~S³›ù”[ý¤†úcì†Â7‡3zm†ä ‡m>¿é>çZù%NhQÓ‰Õ â8c«¾–YzEYô†#¿Ÿ¸%UxÑhÞ{JÅ2Ïš‡ËÍ%.LÛpLA¾c&b"²ã’ãr›nÖ ¬"w-‰uíã—œvê°½tŹ~CÃ!Q:¥%JA·¢»@Ž;×}ñtI*ð—`ñ´çþÌm;ËUoTgo÷‰…@Ú¤éÖ ’üFg³'Û¤DÔ¾3…6–.•IùdLAäI¯æò‚©‘WA‘4©ßëb :zçê1kšB¼ë8±²WÍ%q…EH0‹KŸÐ?Æ‘!ãÈdÿ¶áØþ‹ˆbdæ~Fª<©§ÆÍ˜VÑÍÀÈT“QÌgeŒð{ã°‰ïBÿkZ‡ ^ÔÉÏg“ˆzõ99éN¨x)¿æÈo°35moRï_%€ _äqåú71hHä™ÝŽ(ðme+ºŽ¼Oòè¦}kMžà“Ü,+Q­ úµäµcáa+ƒ5Ú6ûÝ‘fúí²( ų6ÛI.©Óµâ>ç1Ñ®–ø”:ZZÒtçð¶ÉX(Kç%ËùL÷ø]Þó‚ d2¶1)º}¹Ãq¯t #êÞŒmzpg"‚·?ïzõe–K’ú6>µòmOJ¾:3N5Âa©³éúùÁIkY,…ì'Oâ~¬µžóرq%䯭I@/·^[èù u{of@Wmà“[‘Y]zFøÊp9>'Ö'1¥_̬ªwÝ(´º=ñ˜‹cé ÞÞ¨1Ñf÷¸2#2›:ärB‡>y7Oîj¼²žðû÷{hB4ÀbL·6¬øfP1}'×—õ‹ÃdÁÞÏ*Ü'èÁÍÖ•Í4£‹÷·´úW¯î¦Fšý½—¢¡ª@¸Øù´X[VÄ]6ëò©°·1ÅLß‘ݾ&úCƒßb®PAŒåc‚¹°V^ms‚¸…ï0ZØ­j;òÅá58`èx¬KèÊJp;÷oØèŒÅ¥š '0~hhZd´OÏn 7  ÁŸ±­š.¢<–âgÅ}9þ¤è99Šš[ɧá/À¯¼ªaÌÕHìÞ´{V}ãÚ'BKP4Qàlj¢Ôð¤5¦‹Sጣ;gœ+yÔø*òƦ„GXFGë`6M·ºhJ]ž´s[Å"F‰7@Ts%ýèÛ}sdPË‚rÝ“ºØsŠZj/h^2Œá‰œðù”žÛÚŽÐð½kºPn Æ´¼‡Ñ¿wúŠd5 õ»o»{qƒL†¾åƒo6ìû^îô ^÷¯”4ùxùc±8ä,ÖËÇDZ·Ðã!<,‡ßYwm‰GôÅÓr0)µ^¦ lR¡e¢é|•ÆwrúœöC`ûë ÝûÇ`:‘HNÒJ’XáïÙ›ü÷ »ÔñUU›ð¢ÊAÆ‘â¨B S‰U*층ŸKLÑôT¼ň„¿7FH­d9\ÑÊrFøÿĘé3 OF`HSÃB;¹‡Î Ž?=þ¾éy!ŸàÚPS‰£kYms±<Žt)›B˜â ‘´dNL¨³è‰4ÁÜÚ5ŸÁu"b*ô3\!‘EèáRêÂkkùg* 7øh>c‹öüFM„ŒZˆaPŽk*M>>:Ø(…$©yVääZû#d_–Ûl±¿ T8ÇÀ·òƒ¯}53ÆþÔæïg^DÚr;4ž'ßÉœä »pS|áOõ– ¯‰€™Â8þp#UýË(PçYå'€Óª6ÊÝN‘~ó:œ©Öù¹PÆnôSÞ¡DÌ»\ØêÄê"~IÓ6þ Ä€Cª³Î%½“»¸õ*)¾gD2óŠÇ…ŠÃü=b!ì¶zw¢¬Éï¬Ç,ßw”—ûÌ" -ñ…ò»u]ˆL…^« €E¦ŸJÃ"(+k}_YJ†nŸUÉw/©âzËÏŸÒk÷°r ¹–¹ó­Û1ÛÔ61gvbðÎ$©ÄRŠsIöÛ¬*­¿=,¤`¼Ë"/~¼€’§¤Þm,çù5R…¤—­g=ÓÉhøwWwÈ{T´`¼^Ù’Šé¤ó§°Y=4Œ-”`õS0$¼ÔUgŸÄÑ*ñ̃utª ûA>9£^lƒû#ŒD[LW±<'Ù…vî „•ã¸rì_Íp$ʗ䟿MnŒÅq˜éƒD‹Ö/ÿÀi$áñÉŰF™à5ɲ¨¦Dw†Z›^ßè·«;mÕ(£ -#ø” m(F¥þüÊ­ê¡X\›/äöœü2Á¬Ã®%S›8'ßå—‚qøs6G¥Fà—ŸRCÓrÉ^îÆs ªŠ¹:‚û™\7Ñd›Ó‹ xÀ8lü¶œÛYR ‡–"È;Â!‰Ù[:ŸÏ×aÚº ËŸLc‚ãÐ]²±]X]Š|¨cŽ9p”‡¥RjidàÁ¨º-hÇ~ª-ÚF96Ñàèµy§ ¼8s¸ô9i»W„oþ¶ŠÖZÝË”€ þ¥‹Žþ`œd¯Ó<Ïs±yOãêèûšlzx,ò”•c¡·öó'[m.¦€r‚‚Ÿæ³h¥ª©c¦ô »<SÁ%‡88®Î·+äÖÍö@ò¢WmX+·ýR²sRްoñB}"Q^SwY ÅoR®Ê©sp#ß­@1ìÂËŽLá¾’ó‘æ82 Ä7eêݪŸ›¹n¶0*RÏÙÊ=ñ¨Ú\ß;ψ¼;â'ÝóëNmŽàß17« Âr2óölV3’ËlT;ëÒFV‹yà€ïé»>ÉP²C+G‘;æ—s;| ÊEih >B濦®Jd¥êpûÑØ½Çñ»6Ò?lâ\Ëv~feæ5ïàKHd;¼#Ÿx­V®Û3ÛjµS©ýË "ôê&AçH]ðÍpXEñ|¾DóˆØçÚÌ2C|Zâ0cèÊúŠ}én½žwϽªöÖX~g§{xf[öe£y£lªP_u슭ži̫ܚ—ëuz5”°N †PzÚ>1ÉÚ$OTŒU›ÙŸuɹS‚‰¡†Ÿ~{´‰ž-¨O¹9ºD’ÂÑf´S4Ínÿdg~Vu—ë)‹[ß;’%¹‚¸š‘›9®¦¡Qbp`Í Úñ¦óòµç"~!ª¢7)^v!S,°oø-˜zxšI<ÃM‡&°ö•ñåŰò™5”묹åštV÷³€ªgË ×ZsÃ^ýNÑÕ§I <Ú¤î ÛxD;Ü*öO¬X‰ñ„¬Oœr4Q¡Q8Žb Föù„視Á›'ßKÖ zêæ³n»›áUÇ!0NïgгªlN´:'ofhÍšÙ–ÉY ’; ^EÏšfÜ=ÀéøS5@h=`…(¥•4…´±t®Ëé°¦`6!>|CÀ+<ÓqI#^ÅIÿaý=ð}S¸ö»‘u”,4æ/?sö÷m*ÛÌidU2_4Á(†6R3nW uùø9ê!ìþûWþlü…¹Íóɽ›Û°\ÍÜ.È·£áÊ^ ‹ ëárY²ó„ðÔÈfêv!³gÜxù*»P'¼[ш­cõêf&UmD“ÍZ€oþØ÷Ïü¿‚ÁKÞÃÌŠ†7›è*·ÙÊUÖT¬tUG”c#eNâ*â!Ý#µ¡b¦7ES"‰\SNIR7)éx‹š1Ó’jB |öÏžŽ]Ìfmë“:礙mÙ¬ÒØ¢¡E¦³±-³ý”ê€É˜b¼"wñ)I¿8­D ièifÐq›ýM•¶ßˆ®á;•Ô>lª›­6`ŒV” ºœ»ÿ#lï–W?ÁF„¿}6P¶-9 ½=1_ÎÕÃ2N,Eï™K«~Ãú#g|“‹MzºèÁ†òÿµmlu8mK«–íUËv7Û®›msÙ¶]¿¸–mÛ¸ÙÝ›––­÷ýÿoqÎóœóù×»  jöôkôæŸy­nfûéd±µ!Ä´}gÁ –ðœ·À\ÛA`Ÿ÷“Sð‡ ©³MxéBî‰õ=K—ˆ“348‰4ŽfBœ¸5Sx©÷ˆEÖúC#•yC?ù ¶píg™ýë¯|D‚b¾ä½¹¾ð wf«Û°ø;ËJm"‰lôÞ"™qàÃW÷,GTØOÛØËžl7“œDì¥åïˆ|B3¡ØÇŒÂB¢'ij gËõÉøÄœIŸ{öÛq…ó¯LÄp³w³Þ(®è©š4` 7ùÔÝ‘8+ƒ…œF…&–ެ~xfˆM…ñáH3Xì•”RUüê·@üËÑ,+J¥0irx¶Ùý?7Fî™Ëš¯­X"Ôàìø“‹+¿DgÓ Ü<ù¤²¨†A˜SJ¯1Øiœó¿¸ÕƸóê÷G£b|êG  Þ Á°&)à_w)ë¦^ÍÛƒ>U]L襊Úh°#|h2×:ë¤I8 )ººŠÝS¦„·~ʰÿ½%jw@€×k@±‹þ :G£]2µLûéhNzzitM‚Ñ«>Áõër(Ó »M•¹Ö—¥ï”×üD µçOHÂ@! @,»˜TÈâ­2OÕ][…&9õÕŪ}×=¢êZZ¨ýz(£Ä­[?°JºÄËr²¹Õpûå' ²®¼y>Üܾ$dŠ›T^lT]|ç¾QÌ{«¸‰W´6ï’‰ŸPŒY,šþ™›U˜SË{‰”«TE5£‡·ª¶-¶&*î·$âÏ+Ø}õö¦zW±£Ág„;øÉE<€Un/X«Ì‘>„CŽbŽÐúævÐpÕ¸LÛökÌr“}­©‘ñS”~ÿúÂ'kšU<»LÏÜD·¨åãÃ9 `˜žÎ8;ë`c¯$¯Ý¯N_e«üks±,&lAL®Š~6Q0 Ø ´Áb9M°d<–ɤøóŸ"èó‹Âì€füÕªðû€=[7 Ó,l> ÅŸRœ‘;…â‘W,rNq&­Œw’Á6¦ =ª>»A®8é. ©.#‹Qýº‘]"ªõ—ÍG3¹„3™¦Í×ÀN~t N-hÚrPû\ÞKlVi¹T cE[î‹Ñ«»0B”mð¹¦/[„ykKC3‚Í3dV¥Ò}Ÿ—Ó~qü$ú#ή fPöÈãk['–Qßœä"˜oñ²{^+š¨§ãØO%”@q_ß©ÐPVtÚxÂ'h0'mtI²ÕUçz˜nèrÆŒ©Oc§ °,UãÞE<•Î*­HrˆgTu,?\X³£[Ø'»Ù… ÀYôu9CÚ)RW¶méöF «¥sÓ0Úk³êF•X4%@™ŠY_-³ 3%Ù_yþAâŸç&’Ïê K/ì˱/¾æ1@pç[v<Ýß/ò.µBF«#P¸=Ç)³¤:¨«øR˜w¸ïÞ\Œ’#o?Ã(g—y_DßÁÖÕø±~Å)§iYìtƒfõ†üVƒHlpæÝ*–™Ÿ]¦å¸¥PXWÎÚS+BÑÝW<÷’M ¿Xrò¥–a€ë|šÕ¦ïa‚5ïY´Ð>ÿ]l7¹W‹—0‚×iTçíÛ‚Ôfêׯç翘ºê¨Ãh‚ýU§ AV"†}ð;MFÐúrš‹¤Ëu—¯ê“Tü“í»OlÜýÝ®ÆôáQKô²©îŠöHl:…)”<ÕD™uÊ›IÂû{]ƒ÷wô<Pü¿Eß}¬©ÃÊüƒüÀ^T;m3¸r`%žº¿sÙþúÐå֛ʱ¯óŸKLvmBRv;঵iVÒô{æÆË©³³ÛõŽ?÷êkÄo嫯{¯òšL»ôŽ„“®1º!qÚ¨ãÇV¶ ëšXed3 ±¼Ì;N]Á¨¯@ý‚Ä» ¹¢…ue „‚¥3Y¶CH¯ò1¡¾´ªmD\–2`p‰ºÃ7ð”Ä_œÆ¨†(ϯgwÜ óÄCEHئeÕògÌ ts½†û}Jäè­m‚N åÝèn3œ_WuØ9¨#K ŒÍ0ØÅ.H̎ʧÔ48U‘ŒíÍùæÅD1`Ä_ëj‹ÕÓ—§ÅÿÊNoJlýh=&QŠPÿ<‡¸èO™¾‹DÈ£eö éOsv™<42êëµi(#H·0†<É™ÙEMÁU”ø!ˆmGdÒ«ƒ¹X Oö¥êº&žð3Ä’hbR&º±+d›6frþsc ïºs¸ã Žú*÷4Q9̦½óX1w7­õHlÓ šS^”ƒÝBRñ|}ÿü§îãå·†¬5§óUºâw‘Rspëcxé ½pâ×0ôqø¼7D«'PF¦7$ý˜ÚÏ/|Ä7ø†915£4aˆ™$h‘À\çŽÁ;ùQØ¡"/*È+l°­k¦›»ß‰úÍé¨/ŒÝb\†GùWšâ˜ÀI00$ ÀÈòÌ;½Ë'¼ '5J›>6GµL=Òæï!ë9ï®cãÉƒé®øÊÖ¼Õ£ƒøBƯOÊ\î^)tÕª™³·*Z—:ܼÃí¢\è…CCLà– ¼ iÑzÐQß°YйùïÅÃæwö~ê’OäÇ»“j¢e÷§·‘(%H=s{«÷Ý/¬ÌßI4n´y€K•ð0³lÂÝc-w*OÖÜûvÖï®Ã[·s­•úuc[“§ ÔÙšo6C0•åw¶G€°™Ž/¦b¢t9Ùkîœ(UÙ]VàùY] {ÍèKL”Éc òN€èý³#ê¬Ø¿SúSÉ”ï c ¨ :6‡Ø•’mN´ïÒóföãÒŸ}Ç£o„EŒÍÎÂeºUYKiBA¶çŸ*ÑžØÊú††¤!äô?ZÙFgr’üžl˜²ãº$¶nÄÄù»:^ëk¤=—rä†. Ó~Ð÷æÿ"%E”æ†M1¦Éó£"7Ì#7Ýõ¯ç¢¹³Tº×ÔæÚ]LÃÕæÏŽ.Rg O‰eq{?¹šK^* zŸwfÔ¸ô»íø®ká­UšMpšÿ˜Î‹ìCPÄgØ@e³ï¸øY9’À »‘¸n‰¿WN¿ÝœàÆãv˜O‡5Í›ÌÃȃò™Œº,Ÿé£?'ÓŸiÊÁѵ€‚ƒ‹Nô`毭*É„{».ã¥]“ƒùûÉBÓzóz`Tec öù´ch§Æœlóêïäöé£+œ”õú<5– )“Æfü’=aÐsÉŽ—çF¡ñ¸AH‘DiùRnc›ŠÝßèTB/Rúµ×„qI“%­«Ú˜ROð ìRj¸ÿx‚·¤=C¡ŸÍpì][̉ª´M£²8þ«ŠãJ›.¿ÞìòäˆYOèvᄈ¾¿W`®K.UcýÁ+¢v]‚Z“ýK‚šõýöÝñIzr.”bZOûhî„0mâläeÔŽi›•JcÆ¡¿=k‡(Û7D>QÙ8YêBŒJíQ‘I­œ±KfïL;TxƵna‘ Õ+CKŠhŒ—DTð†¢öò´Úñ‚=âø*¥ðœ4«Åvd6ÎKÝ·/+nÏ-ÜD"üí™$·†Žé÷¬ÖØ×{¾³o)ùÃPŽ ¾ý¬«ÇØ Î «bŸR\«3ÌõÕ¥tèæ:O¦ìSâlG!iõLÊ,:¡–’Qh#}Úr0‹§ýFCŒ­Çã  AÍi3ÅÐ,ÛÝŠ¢•i›µC”2Q¤˜ÀÀ™X$Ö–ø³ô¾ów EzCßøp.÷)‚­ä»˜² s¼D®M”Ž3¥4Ö"Ç"}šíìr$ÝÌ7w;¹…7ÄTvg»/n?ëíjð¢6‡ /¡=•Èâÿ³pº‘MÛå%ÓU—¶ž´Þfϰ{K=zF±šH|åSUà2¶´øÁM"9=ÏyEç¯ûž£"øÿïÑ;U‘{NÕ÷C?Ø ‚Fh‘¬ ážÄ‡9ÍZZ{§\q¨ö÷Ë—^‚œ^4:Î ú! ”œý.ÌPT¯2È–³)€Tׄ•m*á–çûX-k¨ÿχ¨¨eÈŠŠÜ=½ÿ¤w‰ŠoI±Ëq ÷¢ºm/ycLq/ÿÞÿh¨ zE‘"Í Å; 8#ÿ–<„IψÖ:ñ›%$`ªaû*\°8¢Í’²I£ÃåÅà“ÔzP:¡Bm˜&=2oâ*ÐbÏÒË;ÁÖ¶JO•]ZØ*yVhŸŠ3[™ÓÔ'÷Š[„ëæÊ€½½D-mG Ù¥?È-:ˆŠŽÇ€ñF’]8Lc®w úA:.›»3ƒEÅ- €BT¼ñI‚¤ŽÁ7“1JÍ•Z¼ÊŽfw¥y*ó.ÃmåÄÑš-z„ÓÕá‚Vc¶l7ÿŸ`5nh¾4ÉX5 ®Qëïû&QóCd”™3EŽ•`t+\#_'Â=ç7Ú§¿ï=|ô‰%/~" `>!ÏG¹Toõýõ$ã©=øS¾üJZŠj'ûOÜS®_äïcÕÒN1±O Þ¯ç [IFw½àÿNÚÏÜLÃs  X:¡´¸ûyµC=çNº¬¢­í“ÇÛÄÏ—aîÞœh¦±àüØ_8ø‡ýåé’¬&Š®¼®Ñ7Ë&ÿò[ªëâ W¥¢cºÑš„ÏL'å³*'h„¹CôL™à-ÞŽZÛýá()ñý&` Ö?à§ú,âÎÀ¬¾}±£æ"ç:\ÛgW¬F®ž·Ë„:‘íq*’)‡©Oô7®¯}Í 4õµ-ÝÎÖ¦™ML¡)óú£déð<¡ÏUïäèNìÀO楨DÉ™„ÊžXÜï$ïùG{‰õ—‹§9ºüZ¡[ºëƒýb0¬, ÅM‹×ïÄýqç7œ«µ§Oï8ëæÆ…Ò4Êd®BûP:ž˜Äšo˜JÔ<2ÿº¾¹#Ê"(yõqjS|¾Ak>]½;ì5jý®ø«+‹2Ó$H;:Lõf´åm»ÊTEAhØQÛš÷ã=ˆ$Êi5ò$\S OÁ€,’>”ÒÒy)Þ/ž±®ç+vƒºAá¥ç©.–J÷ãì°Oýy¤ŒE¯EŠã”WŸuÍ }N’‚“Ñú†UHi­{Pë{w·n»“§*BdåpN=°Zæÿ^6ÿ˜^ñYOû¦DôÁ0•ù³¶-TIù„nƒLÔýFý·-ià.{ÚÆu;::ƒÃ7ÇÏ8añ€]Ž$ÈhªNø.w‹Ej[àêSõ}›HÞ 'Tß”YøÅÅ ãþ¶ pXøsù8ºrrŽ˜n|àhDš]¿ËGçy×q°Q^¹yÇÚ×’ÿ"çòã¹-%4žûžÝ¥ô!fÚ1E-ÔtWØäÖóNíød¾ÂÖú¨ýjÓõ¼öù?za‡ö9v†ÐÐYs)ì©FAs.5ÙIkZr֎Ⲫ ó¯õbæoûHä¬W:¯é­Xµ¼h]'.’æ Pv{>¥|1¥ž*rJÇL;ëì>”`çÍiZ¡Ø*}]¹^<þ?'Ο¶x…ç8ªN£ÈD W/g”ÍÏÙíXi. á×lÀ¶ØWÜ5Þj•Bº¶M"§îä‰ý€äHo4„ùHŠ8­µz™,¢7¿Swš‡¼‰úP»¼`8.B²9<±à¢¸Nò7ºJ“a °ÄÛLhÜ«ÜxÚŽ¥Ãn îéŠWWø¬UR£|ÐI÷]r¹ÆÔg¥å³…eû¯c‘™ù~°óƒQ:{TþiëÔ&@C´¯˜ÃycÎéèÊBIqŠyJ A‹¢ÔæûƒüÞñ  -•\Û•ª² @kϰ³ä2"Òã$âf…ÜiËû?v4D…ڬ؈ˆR ê±x#ïwD—=î¥9AiÝúùÙ~ém¨ÈÄ™²yÞb~ƒ‹KKWx–ðéä^FJBe®%çV¬ßAÑÜïš^«±éÙRq³iŠv£OT}Ÿ«å-ÆY—ÐNè”ÊgŠý¡¥ñÅB«G†PǨ֙Çð÷ÂH$šü]Ž,­¡1ë;y+ÝŸ˜Ú’^=ó˜}a#Ÿ Y¹a|ßï%¨z^t®Ð«µx7ÂÁ1tó|ê´ú޹Äi‘o-N†ÙäÚÎ*¯:;EþÊ|·=ŽD¤¸Ã'™ò¦©`ë¡æ]›S>qïÆ£lOæÓ .²µšµÎBvø|ÌÇÐQñ¹*àÙ8Éaä%æ§ðy¬²R[4Dk“Æ30œŽU=¾n÷ýe©ûùŸ!>Æ~Y/]êzWÄЗ™ýû¢PMâ‘H—`¡„¾"È<É¡"ö£ŒÛÅWÍ#S±=?@Ì pã$Цõ>úÞ½ŽEmÅ0!)°‚€žFy÷Œöšp)Ï·“FßæÓYV*XíÊMâR(S¸Wýõi'ê`~q”8¾ñ1’áÚMžÂ ›þ 5r‰QÒï¹>ôbÜŽºÀׄ¦ÿ†Û!n /-.‹«º?OŠi¯3ߺ7ý Ñðìσ†9Á?ÝýquHª¥¬C…€k=ûÚ¥3ÙD}À ÛÎuâ·2×´(Q)KuÞ³&ö{„H2w<®%oÏÈÕº9’%“%õˆÚD¦u+ÿ¾gÂ(ú|j§4ÐÎ]2§©•Z™ }q£ ŒáC[)Œù˜]"õþAå ÜôëåÚ,ëg}·ÂÄ·j˜ÿ¶ôŽÃóš~žÈ I‰4!‹Îú-;»úØêý÷ÎÞêæaàw¹)6 kQźå95.ë?Sîrt„™.4|ËÞHõEíEú*Y_oÈRýà—¢•¬N'Y¾ í+º`ht‰ªsæCð}ezÒÙí(_®þÅp¶ü¦àP=hþiµæS’ÿ}÷e\FàNLhU¦34¦…¢×·œjD¸²em§>ÕÒˆíXÓú¥= q-1 }ã²{œ„¬©ÜÙÙUaö½&Óåà¤ð eìiÿÄyIendstream endobj 309 0 obj << /Filter /FlateDecode /Length1 1741 /Length2 20955 /Length3 0 /Length 22129 >> stream xÚ´¹ePœÝº-Jpw'@Cp'¸»»»ÓX !4®Áàn‚www .ÁÝÝ9ä[{Ÿ½×:÷ï­®–9cŽgÖ[Õ”dÊjŒ"æö¦@I{#+ /@^AÕÞÎÄͨ ´t¶5q|fbaaG¤¤sš8YÛƒÄMœ€¼.'+€’™Ó{è» "%@ :¾Í¦î “‰º»@còÏBÙìÄhj~7A–Ö í{ˆ˜½ƒ»£µ¥•ÓßlŒŒ3ýeÈš˜}±w±˜€Ì²L LE{×wÐ@c˜­Ll-öu 6@CMBU ¥ª¤¡¬FËôžXÍÙÁÁÞñ¿zSS×bˆ‹(ªK€š ) 5õ¿Ÿê@Ð{ÿ– Eõwûß:ïŽÃ$ÔEÔu”%X™ÿîÀ p:‚­ÿ–ýÞ¨Þ;üOkövÿÐX999ð23»ºº2Y:ƒ˜ì-™lÿéOÝÊ pµwüxÿvÚÿ!ÆdþN§“ð_ þ @ÞÚ ÿIÚÿËh÷Nå{Ð;îô{'ÂéoNÛ¹À@à¿•±2ÿ+¯¬,°3±9A& ³wG''g0Àøìý 4§þWƒ@€˜³£ãß ÿmrü¿eþ»uQû÷éÛzz›¸þ牙€œÁÿ‹›ß¶™=l vÿ+#`am üÛ=øï™YƒþÁDe$%ÔÔåß…bT°gÄääæô÷ß|"âò¼nN+;€å]¤ s1{;»÷®Áˆé·~çÉÉÞÑùÿÑõ½+ÈóÿÅ-¬Aæ™7wv`ÖYuʈÿ—÷;„ø?˜%Ð À~Ý̬˜ÿ–ûG-aÖ¿ð; Þžö [0ÐÛÚøþ…è 6qœÞžÿÛðï+DV.€¹µ™Ó»Ð߇ñŸì2 {Ï¿à÷NþÛô_ ùgPiß§ÔÜdë0Z 2+Ú;½ ‚æÿŸ9ûZ’ζ¶Š&v@šÿ¤ô?ýLì¬mÝÿÍó?<´€{¥Q´w´3±ý›5XÒÚ h®lídfõ/bÿ…Ë8™¼k_di |?” ¿ãdû®Û÷»ÇúïÕ`dýKë¿ÙÞ%iöƒlœÿ˜€ï4üGÃïÜÿmÀ¬¨­--¦Jÿÿhæ7 ™½¹5Èð™ƒ`âèhâŽÈò.„ÏOÖwM›ÝþQ €™ dïôppvòXØ;"þ=Mn³™½í{—ïð?'+€øÕÙÄöÿ"ì<f{ðÖlfÛ÷ñýo€ã=ÄÉÊø?.,ýÿ„¼—ñ:þ ø÷}*ÿó$Ìò?ÿ¯ 🵚“£ý –µùûåÿ¿\Lœ­ÝôXÞõÇúŽ¿¿þû—Á¿ üŸÑù_Ñ¢¢önžŒìïœ1~æù `eçá°²~æðþ·X³ÝEÿhÿý„þ{ý÷"n@3ÄÅ9{3¾@›äúàb‰¼ÉJ¦ãR\AmÙXèÅ´ÉV"|ñœMr P¾_ã·tª|{yi^ŸD?P6e ŽíëZSBÙĵ¹Šð–‰‚ª„ÈH¶&“†ºÂ·’vrÚÙì\BöéôæØf€ÆÈ¡OkÇCÔçñ7ŒË$rý’æ•0®?³6`;Úbº- ¶-L¶}pz{ÀþiÒ-²H7cœŒ;" ëÐÕµWjh…)”ù8…ƒöŠ¥ÖM/BoÖ>„µd"®ž ƒ;@µñ™ËÐ`5€í%U†3$¡ˆ: Û…äUL'`€.ö3Þ`Hሼx™y.B­©ÒÏi}ëHVi¨/$r7¾¬Õô–ذ¡-A¦‡ã¼GéÝ¢€iÇ S÷ #ÓÆ ˆêh\M…ωýÚŠ9XšÇ||ð*ùÈàwg(X¸‡¹hÔ9‘|%L¥}€@1 ŸëFÁ¯ú{ÉŸâ"yG[@“›àˆp•\º+rãûÖÊ-Å–Ïb<¿÷/˜Ä,kaá†3£¸ÄÃî íãm&ó#I Šn}¦:ÛŸ6ð'ú7ö–Dý“Þã†ÝeŸ6a½$©O+¡u0-΀²ÄŠˆ´į#[™Ùw˜ƒúNC#Á‰_í_”¾íy¿ø|8xЬº¬K&>UôÄvô„·§Þ œ¡ìFã už+ë:•Õ})¹ˆ'#‘žjdÞ–Õ¡Ë6ª,=R/ô" áFË:ËTFé¡v ÇúÄñFþÇTë;ËØè„?H^¾ÎÓ@OÍsú- þËdïðŽÖ‰‹ÝÕMs&:Ü õ¾Ž‚7.†©Ý×ìçªbÿŸã!ÀM+óÆY¯yeEí¿É3¨¼Óbo1'Rõ9£Ÿ²Dsþwg'¸3PJ„?Çëi8„H_ÛbŒÐ»(ŒˆÀüx3ê³|Á¡­¶hez[2‰–,wèVôaêèá UT ”F„hD“~Ú®S±·ŒóÜÜëc­©Ù‚2,„VM«ÜŸýSýŠ"_(Âí7Ó,W®7Fžw¡¨©=Ž|MÁl‚W"fDË´Le“C˜H±†yääpûæWÉ`³h¾é—%ŒX×2ÄO ·¬ëÈCîe"h~¬ê‚$Ò€.æmVu·,ÈWN~ÖX´Jû…Ay·ö C{› ™v£mbB­*åŸ5ÁwÇ£¨û[¸‰yœ­-Ù¾Õvyâ¢Ü£l›îu­Lvôp1ï1ÆWL nšéІ×RìcINñÆ»õ츨œ'Ä>i‘×!»EÊB{YµEäkªµTÐ k¢ÔµïÁ(5Vþà­KiéõË£€Vž’àýØ# ÛdÚ°nG¢Æú3ÃxØL+xZRÔ)œhÞB2†)£‰?Iþ{ýŠy£ìJ/8½}[V /4¾‚<ÎjEÍùœ°ÞeÂ_蘦…¾ÈêåC•´Ø>órÒ‚]Ý•Vœi¬9&%cЯga_Ïå© Bø|im§´­EŒÅƒååtçÎÇ” UÎ_~“¢~Ø–'ÉâÃ÷;yþbó†HÃ÷È&)ðfÇP³ˆ|å FÊ-ú£røEqÜep³`N|8„#ÿÀ\¢9㨞úë÷ ¨N•m³Òù½àÈñÐS?áÍÈŸòäøèêöA¬üiÑ{Ëi˜ÈtŠÌ'¨fHQ·ÊTž3éÒYꢺ† ®àþš¢_ƒ¿ªGù(²ñÝŠîìttlÍZ›8?ã„ÅØT‹b_uJþ¸D¥ñð‹)œ.Jo÷ðd¬¯Úˆ£85äqóÁ–Ñö¡A´(ðlIÜÊÿÙå½ëÏ¥q“Þ´•£z›áÿôŽsˆˆÀõ¦tžÀ6ãlùèÖÛ.9iOéÏÛÛÃvšP1ß[R‹3u+H>0¤Ê„Iׯ-Üü†8fººç-É»¾ c€¡Í·èÏC/@Çü”þÁ}Â{·NèÛÁŠ{êT‰ñ™Ú%µ6À‹O½àÏJµÄª„‹i@‚‚cüÜ‘hëêå¥È/*·äŽ_y™hÔ”ëË…ƒã,{]u™ÝøÒŽO©Zßⵃ@Š©ÕÑXÑŒuAc£O—µö>0 )2× “ˆcÄF‡Q±\–Á]Äf¥HØ”µ6ÏFyœ>¯ˆatÐQ¬ëQ‡ä{„‹¥€¿pÜJ{¤Å üÚú²hƒø…p†@Eä±Ñ﹆­=Ð F:Kø#^û,ùX…ƒC+ŒØŒU$Æ»«¢Ïyéf•~’d³’Ö;I¢X®žx: ‘±èIT5¾­Ñ!L˜}¸lXaÒô_Ù‚frñöB©|!”öËSÊ9ÝóC±¾ý&1fœõiœËË4­–c*,Mjw7k¯~˜Q ÐNXÐ*›yø‹Èé´¡ žBµ!'¾«„Åûøm‡—tG&pËx ÌÌP°N×?³BÜ$ùzËJ†£5“—m´f]u¯˜]}ÒQÛÄAq¥HÒ}tFdËȆôñYªl?‰Ò`ã­h”aÚLt?=; S^S^U勇Å8ŒQW¥!âHP¼!R™ÕÖ¤þUZ~ÇÿÈ·­O ú•ÊA%^‘ÓÞË“á×t¿Y*²½CWý^E4F³TJ×*SÃïSÈo& è©Ñ†åbáþUR5<\ x‘×&1ÞK’¨À>4ghv’ \+‘oõ¿Çú¥_ÒüØ{÷¯“2â¬îr{`±m•yXQ/®K …?ÈåzÎÆL˹mÃË|¦²5%mÌÃÊ8PûSlåÙË“‡+Þ)P5‡ÓKã3¿*Vï>|~Äœ-)†ÿ‘Á$Ÿvk%dÞ¦žVþ~4¿ ß üÃ%môROgD X*Aº±¨¹A)ã0+ ³©80\n™Mï¥ÝžŠ0ò< >ÓÄÃç4wv¡žžµ ñ]=I~ñʯ)Ø)Î8œ•Ôî0³ìèÅÐr¬…ì¡ìŸ¼zãoª½Ÿ Ké>ù?azÛ –±ý%eˆ_Wûp™¥õ-¯äRë¥bJ4H–MxW:iÔî͇÷º'k{7<?,ÏñœÜâøk¬„Å_ûyuJ`¤*Z’^óA³IþÀ'äyN¾íÄ\-Nĺ­K$øœËkë’ N?Cƒ/Ût X‰Ï2ꑱÏfN§‰‡›_ïáqø@ë!'Ŭ{YGÇiyHBÕ.J‹ŒÁùÒA­cEô5%Ék¾S2è'¿Wå’í‹m.þ¨ç&‰g .‰Ë5d2®ë8BÇm`Ø(üaÈéÄÎF‚J0l¯´ëW³ÂOÅ{¤Ê ?KUìO,/| {”†¼–©umWä´<õI¥ÃS4zIV"~J ò×Êýy,döbºŠ†¦pÅûcÊ¥xÖ)G˜¬öH§z¤Ķo¡ëçåð Ô”áåµÁ_”œùRw¿íäÍŠc±Ï¦YÙ6ŸüÅÈ ™Â«FÂ÷p‡ÙÇÕ%  ©Ú]GÀ™Öù†W0a¢Œ9L צ4‹óK,*Zˆ®B¬°B„T?;O…`ð–üÁ¥‡dS…Íœj;#ÏÂ]‹‚—meõ”jå¤>vmÂ1Ïacæ3VöS¯ ó«§cJuZ?È·á-õ ©z ü,H bf¾û8eŸ'ÉQGEeDh¦ªîÌó ë\Næö«ù9'úc©y<ì!WÓPÔÑG[úµ¡ÝÃÕ3Pj«4y>qØ„ÓCªžðNŸQ«ßŠKp¹ùyoöAmzëÖœG†Ú€ùr­—[†»aòO®s¬Vúà¶<Æ1Ý KìÒÙé–”J AD(±•ú}®{?¬ŒIÄæbÕÊq1šÅyØö|ÿ¼îsSJ“ÜPýÞiåM•ü³‹þ/ØÑP6O¾çpá¿äKNj”€WÔ³!¬¹"ØV-?¾äÉÈ*~{à zÃû!.Lj“ÄÎGiŽ©`A‚ 16ºNÝšéënÊ|Äké‡OR&‰Že~ü¤ŽŒD¾D:× ÀiéÁpã‰T¸–fËnwQ?Š_§M•Õ´]´³ùx³gŸPC¸}²ÿÉÿ£aæiÓ•×AÖ™ð ¡.…obXî™M“~9i2¬òãdW”¦b=! >fÞÉN‡0¥h™†ÈV¾Ûy¼`íá¶xàz`Ûš7ÃéÍŽ"C;v.šf®§CÓÀJ{g{:“UuuÞ8_»¿A_Ôt¹™? 6Ñ»þ™´Úá ¡…¥Xáyr}ìôf,\2§J(-ËHAë¿üÒ*—R‚–D±`µŠ®Ò¾¼Iw{ãi¢5u¢é)Û…¸²1|ðHÀèˆSXßF¤¨ÜhHFPXþááAC áK ÚÁ[©²œÔ€-¶wL‚ö„ràÙ³ªï;{|$ rÖ<ag߇¥ËŽýP6E™G–Ø8’2TÇñʱ¾lOÚÁúëZzˆŠÈ¹ƒ¤ÓxíÔf}içš‹DÙŽŽ  O¢‚R¢t•"¹;› i~ëâ½e‹vàöT"ÊÅȦX/ÅžÌ4^ÞÜpS~=)de¸´* €²ua;#.äšî»p8Y©©S‰¦úzô$¶ š:à þ‚S©‹I·CŒ¼qùÈz0Ä•MÏ.\ÞÈÁ#ÑÈa¶jòÈSÿEae+[Pþ“òü€^{„öI÷åqÕn D¿ƒí¤a"}óŒK„¥G‚Ko\Uóà4Ã>§·[a——/›èxaZûv`¨Á xw7AMA£ßtL ªÂ”^¤»× ÄàÜ:ëá™·ârL±yÌ@ÿÅv!óþá~ü=ñBZ:4æYãgÊ&&Uíä Áåû,úÌWšˆÏx›T2¼‰vÍþå'¤j½*^ÌÈã³L’ÛuäŒfœŠR1Õ£6á Qšä¾Ðœìels_-¤öƒËò)ÈXJ¿Ã#¿-bùrd™†ôq&)瘓?!ñÑ–^1 ¬Ôþ‰Ðí ª<ˆ§…ï‚A®_æiAﺞ’a1´gòŽÐ†Dü0˜WïOÊTIÈrY ^`3Þ—9(iÃ[ì˜Ì3¶=k+oI)‡„;NLþð4µ[-š9ÊhßÁb|0¼#ë7MXÁ÷Øüê*„ —?›ó`ìC¹ÂÊEk»±°Ùø„r[÷d§/¢žh¦÷ç.¥ò›HŸÅ±›à@•žKžïPWǧq‰3)Ò ÇÁN‘­$6þidÿËFT'Ý‘xÿ+Ýý¼­ªW¨b‘C@ zeÏžÀ¥ , 5[¦“f£Ï˜êñ+ SH¾.ùIj¥´ÚH—¼ÎÞýõŽ¿ad8ì]³¾LØPòP¿ÌÇÆ‡„—Œ#kàö"ï/b-öÇ¥(3Y GÙó •Ë ÙÛQ’„Ô¡;’ù]žä×P¯¶ˆŠýŦ„5W?@mh”z^ìx‡1C°`Juú×q´ÀïÑKªÿÌ[®\Ѿõ—ÛŠñX²¢²= þa.Ê'ŸEUФzï×FºŸô¶(ò¶®_4ÑeAê_ïØåá–£%ÚÙ‚­~>eÖþÎêù–6–¯ÑOçRG F‰À”ëo°ƒNÇÛ.nFrÀbÓÛüTúS£ÌFŽ9K÷%é _ƒiY¥)6¤•Ù¡úÇ7y£­JCzxÁÝ™,å*›”Èueºa%`×´+sÍF®ôÙm¤ÄCªïjr@‚Š>tõÜЇ×ÿÖ©ÁïŒ6ªÙ¶Ê9Šü4Üå[%q): —ô0Q§†aÚSa@F¹x’|²ü²|‚/œ’§x‹Püüƒ¥Ã{j)â³ à¼åOäÐÔÌ+-ÕÌÔ6só¾9ÅÙöÄMAL·ôÕt¼*íƒ-)kfs.‚þ”¥å{™~ü¦M6^ÓTÙj¥:[ûÁ­j¸4cÙK!ø~5sãh ý\E—§‡ò0©¨Õ¬¢¦0.Ä=R­Õ,ŒF#-ÐóÞ½‰†¸ßÓú™({"Â9k¸úã ‘ëÚ’øb7#ë一™=­·ÆûT Sˆùú–šŸ ¤Ù°ëˆàîûR¦©È}‹ºÜºPbr/mÌ2ÎqÅJwkTsuJŽp~R@=ÍšNžµVp¨ê:ûþDQÛ­À¯@øÑÔëÎtX+¡îkÒ‰<@^¯ßFíepU[E­Ó@¨ Ççn‚Gly[ j¯ñÔçXÆ]hp¡Tù¼–zuÝ †èØ›õ¬ HK',¢§²ŸÝµêM€9ðV?Í Gß…;í:ùª»z†À:tÖLïÒðÝ&¦s[ÉŸóF‡»g\7ë°ˆ+koÁ}Š_ ©-L[x ’`Óð[ ýD,©ÈÏ„+€N³÷û`ŒEÓ›Y#b`½s™„ž6¢\»8<ÏO9ný,‰¯½á• +Xžà  î$SÅDò¼ñöËÍÌpÆ3¥ªr´vŸ^uæÊh¶¤eð½]|Ö‚ôTÿäx—¶÷êu Sž£,Ê»GFž§\Ú†_GH„BµPI{aŶ¥é©\ (màú!\\¥õõpøHpǘ:—ì/Œ”Î;¡ËJmn«<ЏÝjx??£ñj9»É ®-¤#ÈÆ½ìV˜-( à•+x°ßõÝ…ºZCêãÊÍ‘0)¶Þ}ìÛXÚúc‡Øp­h™„'ùù¶–g³„¸åJ þ¥ù€ý³Ó’Õ˜3¡# £ÒbÀQ$v<[õùúOöbOÙáu`äkÍôÕÃ5ƒ¦ÜÕ3R~кòŸPA9jËMÎv²ìㄳ„ÅKËEŸö5<¦¸¼=šBqâ`'«)—î™^Û—žjeSC9}zú‡ì vc¶´³ ¥QíCsÖ6¥Ä6#»<â¬ã@úò¾#}2ßþ N[Ým©¡X,ç@5Å—54Ï¡òÆL°oöªuíIY­ËТA™´0¼áj!ˆVL¥E–¤©`ƒúÖ$ok„@Þõm÷²º³ãŸ†]àçòLc‚Æpú+óþ €—žƒŸ?Ãã¹Á?Üi‰’Ƕ;pYS.;¥\óÍ䲤ö;Q¢(F"÷ÜpM뜵—fw¦iåW¡ýž•$!Ü£¹:6•ÚZÛsÖ†WŸÛøJ²vTò«DW»8!X¿KŒl´‚'>ÎÇúÏTsÔj g7`ù3›É&õMÅq¡/Ë¥Tš=Âý|Û4e@»=³Í-R{EsùE2Ûän<Ńq]*þ¨¦àëÕ,„6ºsœ¯€ç¹ŸØ/ef¾¶«nR•jó7¹JÿA7»Ív¦â9ù= Ô®]ãó›O[n)¯w·=‰ë9bæ@ÁT«Èó /MÜý¨˜éòTѼJ«ê´ñ÷® ÌýÄŠ›7q”Å}>_ùèHì‘ §ü‰® éý™E†¢‘»Ü½ß*ÎÙÚ‘7e€×ß°Âõ¾'²H2ÚÄòëî‚€»{å!VãC€NÝ]Ǭa ;’¨xóªÖ’äfgÄ>6DûfèiAýÞª5þÃŒ$ÔýÔMVëU唪Jšéì€pÕòžæbÍŽþ<ØÒÕàòG{%ºç½Kç¤EÞm—_8ŸEd ¿~6±ÄçX½0;Œ(!…Á^;î¦dÁÇÚ>Þ «Ì¥…¾Œ¶›>ÇRÊ"øó]·-x-r•&›™ì-µµ”QjÎe¶ìÙÄiVGMD#ŸÙ‚ª`obPæé­Ï2­9’½ŠT2æ]øqmr®Hú*i<à\=ÃêÈ»Pò†(J;”‚n½ÞÙK£ÁƒV?gŠ/ÓÁ׃gÇ´g×p~Xº núž -¢ßÊZ/ðZ,Öºkoaôbp-¸¼ßÓª#aß0²…˜^G' ëŒÄŸQpôI a ìýÊ Åá«.2Ø ¶ÝÏm÷Lp¸7\á‘*]<ó4¸K&ÛX'y6_÷ê1+JM˜-Ü÷œš3<´QŒuhçæcò„½çU&T.ª­‹…aÑ*ë¡fr 2>ræh8xÀšmϳÛn¬B ©ü’õ3:¾ŒÙ¿Ÿ¶ì>¬ û·×Üi[V7nç±·&jDËf"Åu.ð7rÈYs¸Ú·s%å\lkµ£6*²}Ôím^M £(Ÿ !xØíc5ý-÷u÷)U¨Á¡mýŒ»/„UÒ0Ëà;ãì.º ýÔWÝ6á:ÄSv."b¯˜Š:<¼ÈÌWñ(¬'§"šëŒ]wê¯ šWJ 0äÏP]Ûé€2þ!WÆww_ñùX˜o4-y/·°[£Q/` ëL>%JâªnUÏÕ´Ž X§ ’S¯ÝÏ·,åæV M¹Æ¸óÑËfÁVtéExq°wøÙäP‡]l´› ®T¨ƒ«Ê’ ÃuÇ®¥bf}Ÿ‚\Í‹Ž%ÒßL‹â—>¸7xVÜHøÁÐ[ÌhfGªœ gŽÃá¹fjS ogÃGÎmû…p PÅÂl££Ð¥cS,M}cf4} ú!6_J.¸ ª ÙCdåË@€e¢Õ¿ÀÇÆúÙâ¢9" VÕ\9rÞèü¨"6ѲáÇØÏ ¥“{c˜´aÔaßæ…cÖ«®^î^¶SvÖ¹î|Gµ;†£B£Ú°¯ßéÔw&ñJ×Ä>ÐÑ•~Õ€TrÔ—'ˆËû9aOjÅÛÐMa‘ÅA‹¥Ê—H~-(ö\èÿæEƉ‚,ä*zíÕÊètF&„Ó‡˜®K0B°3s¡KǾ´‡â’6¼‰æ:½Bý%í ò¨f9 íñ¿I¨ýý»‰ÉæX6.ôÍD/¬ÓÑ^ïØN¿…êñ1tÔ¶Ÿ¢Ô &ÕݧqJ?E–s‡ [Ãï!wòOaéd”RшfwßÙO~ßÊ)Ðé Z 6ò#Oµ@1œ¯ûÎ÷¨âÇEJ««¸–$Iöf27&ùk*l,:È…7 IÚ‹”6›#è˼˜-‘á}Ye &™BÚa‚˜3 D ´%Ò#yÝá )«–k.Š™¡5§ Êüâý‹H„s7äPÁyˆTñõp>ˆ‡…ÖÛ€à-Ûuàg©,齘'ÃïÙ=+F”ß·º¢Ì+Zഘř ¹Öc’)Úf™äRzË¢ qhÚĦ*Ï–\žó þ\8Î6çé-Õ*¶t|ú-D¶Ü#{*÷á: &_\KüõÁ°{arOþ¥Gqœ‚îs0òpž09®9lÈËërSŒØL¶|„ðlt$DȦ5Omc€–¸Ì‰;Òž"eàGzûšZæ±4Ç@tX²XÕùœƒ!ݹ¿U2µj²´êAºÀŒÌä$ßS¯[ê}`Ä9ú~¦±ü`þ³»$éS£¥¼¿Nߦƒì¦q¼UÚD2um¿™üœ6Eß^¤ªé ;B#žf³øÐ¾Ô¾'¢ÃéH±VŸA×ò;ú§Y z̽üNRÅÆÁ£°û™JZyqÓàïf0ûWåz†ô­Ìߘ!j v„Ž6š¨é ¡¿Ô³ä¥"È(—oâ& Ül|gÝl¤¡?Ç ´Ó›X“üdfE…²l‹ Ïl‚ûŠŸ#z¤zäA r†\ ·Ê· «œ^Ï^P«/ £¿÷ø2Cë¤Úìóc8«ôXB ó˜x!>©!bj¶PÇã¸éê&l- –·»ƒµÐÂ…òà¸qj/¢¹2³õßlÁÝ b0>üã܃"”œG&+Æf¡Gn9 Õü¢Ã¾hÔF%Üqw /O…ô‚ö–™dO.[È@ð&·T­&&KÍbÍ["QÉ£p·Þ=;¤xhƒw š”#¤We´|.×qö;o…)@0Ê­Î7½h^®VžÁÄFÝ¡¾¸%ÔþŒPiQ2ðº#Uƽ1Ùšô¿»m¨Ú÷DŽ¥$Ý´ÃÂgiÌ„¤<ÁY%ç*vÁ£–ßog¤†øBûUuÁæ©mQC±¯‡Â‹ÝA<“¹.¥ËU<å‘Ò”:Îq–'Åi®Ä&ˆ(ãð§>½q¨¥òŸºüù ]Þ•D TÄä6 é&Ægír} ÕUŒ½ ”oØå ÿ†Z£­N­ÐþD`øI8ZD~“6ã·eànay,™÷Ì×6°×›-v@¯*R~~t>ÔG•,] [ì—ò[Pp‡F#o¥W¨óšwÕGÈ >ê-3Õû•’{nm¯o/AFxl7hf6òNTÚÒ˜KfuçUÛ¶=Š> ü¡?ñ^í3ŒêHC¸ÖÉîÆtìD‹µ“ƒ»om¦ãÓÃvTÄÖ@ü¡ÞÉw‰ËCôÆRõðúƒ 7ƒV/f§í,ds`}pv{nðâìHƒ—Ìéƒð‰r,½œa’Û0§ÀÖÝÿ?gV±’15H;§]“ò{0[{P]Û ‚TØ‘$ªl¥c,bˆ…ªpmÉ~=Û»';›qׯ‚Ù* œkkø«~墛Mçþ”ú)'OíPrÍ«@0ßÔ+£f›Š ÞÜI‹É¼†‹¶zÂ}_؉²­³ Ý!§2}úɶÂý› Ÿ²'† ÍÆpP„åE"0u@‡¨„cXI䬾/LO‹ºÎaÍeœòlF1› ÚÄ…Þ®v$GI÷\y¹7}*DéXù¤VŽ=>$ìëöa³‘zÄÖÞI§l>NI¸Ü[E-Ü‘ˆ+w%L?~WÌ©!ê§rvÕÅJWOHÂ…ZÖæPÆ}áª/o-Gà T²ÔÆ©ƒúÍîÇÚ~ã>­|,¥áGø•iø\_aA£—À˜Â0ù‚Âî Yl€5G"~µC2S4)âþL(@uL ÿ£*©ˆ/Í€9”¬cŒ3jk˜/FŠ×]og’ØRf‘¬õ·Ûjæ­† 3­Ñr¸¬i®ºœh]Öô ±uúl Äm­ Šž¼ë´îÖGYç¶HŸJjò¥¨0Qq{˜ƒ?#lE’'FaÄIÊ‹2ÇÄYV7oEˆœl½—‡¯uù“¥è û¹Ñ„þîr¿~/øÉ©Buvέy⾪玉–ÿ|¬·–5¯aqFªÏŸü„¸‚uÔ¡; EçÖy0­¦½[ò‡ã¡'õ+õŸÇ´ŽûAíŸFGµ_ºgÝos´r=Î(øå¸3&âý›UÄæ82ùrO„S놶L:Ãs59PÇü¯j"f ƒ×‹j¶™½Ú{,v‘ñE¾$Úš¹®Ó‰½´ºm›ú̧ã3Ægó²@Ó:•÷ Ð!ªûµæ>W O<ŒŒ´íy[I>î}Ò„;æÙÎÝ×vn¬ŠŠJÏ$§0e;¶ñƒ ÛËßMkß„ ÃÈ4ÿtxÐK.Gêó¬/úS^¥ <åKG‹UÏãˆvm©‘ì ÐàHˆÖèÙîÌrÂå¡âã«7ð˃ž‹…çhÒjŠuà 2÷á x_ﻉòA‚¶(@Í®Q›¡' 2]¨áݧÜrhÖpKŸ;TÔÊŒQðÖ¨]gGÙt]A]¼”çF¨¹Oª¶²ÖÎøA©óaãD‰_)¾BÜ~?v¶÷ø^M·õ%ßYŸ¹”Œc?í#n”ËåF­èû¢Å7BŠd̦ïß-ç9 1ƒ+…F³Ì¯•Ñ u©ÇÏ ìhš,ö~ÇÖ}Tü<­´†ä¥ ¦Õ*åØÏí*èÐÒålž_Hb"¤Öæ, ÿdXvª¤™ÊAÂ}·x>¾Öm[r— ï!£A7rþ¹GB¸bCÊ­…,]§¦%öËØò\1JÙK>Ûû±¢¸­ë9ÌBò¢8%.Ä^A ôªËzèY2œÏÕ ¶æõ¡NÆuo53]É%i¼I’7ì'ô/­×XHrƒa¨]i}(}S)\¸¹®üLJrÉÖÛ)=‘dQÁ‡µTQý5˜áôX¥céó, nYÔ;v/® Âù¸bTî úü¹-[Ýù:{YäûW²$‡"¼2²>¹†a›=¶/·D˜xΖÆCXÁ¼ÏM1Ë#ìÂé¨Ò4òÍ?½Œ ™M„KÕ:ÔM$6K¿‚›¿Ð+Ò\õkXlþy¾’Ïø°¯Ò 6#›û3Àâ]ñúèR%iéHHŽ:³T‘t‰J;}Qé*æïÓá ’¨½·”µÏu¸“¿t Q«xPÇUƒôÖûÔ®4h ³Ç©–°I!÷ õ‡î}×—ôÚ\ñe’ÒóοÞë^Œ»tâOEK¬3ù‘_cêñ™ÞHæùh½®ìþ‘à {T\¾³žï&„×)¾ŽP«ãñxÐ4#êgK¸­…4²Ç=¹1òêvöLÓÉm¼ÙÖcv™q7TjqëŸÍËÉHœsdwÄ‹/Tƒ2¬}â[“Â…Ü•*y¯6ÒP•~Âsƒ­‰ºl•9ø(DRÔCÏ÷`1…àÈ¡%Wê>xK€‚ª·q{°FìD8ÑÍeÔd$µ¼ìÑ>¤!lJâü{éGÅÛ~e²U+Á m™e9Vî‰R~ô4ú°…þ°¢º±‰ëø<~}œ=ÚßnÉ1U§æéì2aLz½ô#ålaóVÌäž”ܺ˦bôûØ¿TwÈ•ù©}a¥‹Ñ¥Ï-7¢—½B>IÚÇ«0ár`_âJÑ1 pR¾ë <*ìî'|ýè;=z»žµàï´¡nÁ|Kçɬª+þé yc(?ñÕ¸Oɳò“iR1Ì'X³lIÇT¾Ì5£ó»6Çˆà™–-ÏntEw''HNlÜÕÚ®2ôÐŒ† ÜÔŽšIæ[î VlIù ‡«ÃgÇé{f4kÖ@rœV~ÑãÛÀ*ø©¢ŒN°§L\%¾½+w꣓o#%{3{*áÕEKÚ[·j21ªyÄVi-ý±žAÎðEºV\ÞýûcI-°%¢Aú´v,½ðÌÔß›¸£FqƸbç~->¸*qè&qÈÁ‹HžAN%iÐFMKèQ†} )ƒx:ýFó&ýIX뜮<-7±Ô§ Xyég_h:cûJ U¯‡ ×â»A»î$Mo:Luæ°’¥•Ñܦô|±I¼ 1G‘V4ÒêDÂâ,º%ÞMÏÖ5à`[„jLQÛû3_n ®¥°)]&®àH˜s¿NÕ°=‡2â+¿’Æx¤¹k*t¼%Z´ý)û8%´}Ýf´éÍ«óÔo oô¾IÛ¤(^KœŸä]3°ë¤dÈÝ:;ÙP޵0y½×Ç®T§èì#êÙ ÜáÅñR‰ÃÒuÐ ·pKtÎ܈ʘK_­uðõdðwÆí*¨W{rÒ:Õ:Ó§Àr¢“ŸjqñÓF(ƒ74ü•ÃlÌ•poSrÙp°…S¥ußnÑ[.„fž*M)ØGœ’‹ôQD¹|œÈ\ñú¡JE}æÍYœ¦grþ>|1ùÄðñ¼;¸á\{ÿ:º£Ç¦Œã>µ˜`ONñpuýÉ xH-"ë³ñ‘ŸŒõæv°ÄÆM)´‡?ôµùmRþZ¹ÐSŠ´ØRÑ(ÒR(@½>7CPý-UÒz}=Œí¢$o` d³âé¥Åy‡G¤ÖøÆŽ| ¡’z›ŸèÏ·÷ øblœs·p\{T®¢í–GJà;i}-†%dúµèÿãïÞ×dŒñ¯‹PŠûò'‰ìNö5$lH;|Ðü-œ5‘û&IE¡´%Ž{K5*¬²}æÎÅ£‘ýT¶*”’¥»b®Â»®§äùÈÜ-¤Ö·±˜ô¯Ò»¯ÂPí“¿©uÔ$p&\uΙ[:O§M™tÒTxu¾ó´M†™›¸èÜȳ.£B*ôÕÂ)FŸÏ„q6ËÌ|Ö_xí=‹Ë‰Ø-ã»otϧŸQbYü\±Â4@5½rMRR}ÞÜ’è#âxñá}ß%X–N-p޶7)µ]ÍÝ_w¯1_ÒU:¼¬—üXð›r±#÷}(õž!³ [v™–ËÈsYP=iïÖ|ó§×'ƒ }#(ÊÖÒ—MJ¬ücª7sÜ5Õõ-¡ O¸1½OVlZ÷O8 g²/»?õ]éˆÙ‘b0îȪ•üú~UaÙ Pœóã'½yÙmŸ½å6hãxž ‚÷âô EM9v¾— Ò*³v8<ú‹S.,²‚úWˆd]Ùr+Ô M²„_oØ{ãŒ:¥¹ñiYé>æŠXÃËK>¸kŠœ Ã\uBiìÐûþ¢d\À“p“]R-üÖËBL–pòAƯ™à³ «ÛIÕÆ¡…ã5 UëS÷W+¾§O7øeB¡âF-CÚrÎÉb2,Hp°M.Ì„'v†æ5’¡ð³ {]\Ë﬩bÓRHÈÍ5uœq#Êà@9uÌev Ò¶‹+ ¦/ÂC$=óýÇw‘Ɇ<Ö G®•Š€-ËÕ0f3©g*|ÿ`í7å-´W] 9]6<0Ý™Z”3žÞÌï;øt¦ŽW1z6O—Î@uöÞ0o• ¼&M*3ª%%æþöÃÌ€WÄÛelæÌ™€ª4}Q˜ÏþÜÆÅñ·¾)ßÎï%rËha» fT VÐë'uiP*?ΛAíÕ#X)ß‘Pl÷T9Ϥ¢,)¹Ì [”§ä_Ù‰£fìúõ|ûeq¥*M[š=hØäçó;ö'>åÞç º«‚ñýר—½»…›¥¾ö!ØY!¦´U‹óéx—3¿z˜è/ׯw›—ëBÊ Ýæ*ª”ÚÛ# yšpýª  ¢!çMûoZ— z£¬bV 'ºÚŸ:lºÙ#$[”Ys+, ¬ŒŽœ5ŸW2ÝGíŒCqã;Ý[ñYÄN˸‘ÓVu‚bIkðyp ƒÏ³³]üŠè«´Ïõs²:o [®`=|öRúä:4rÒ†ö¢ÏGʼnšoOná.XUçQ"]Ö[0”ƒ™¾øÓå§Pº±áŸ휼’×5°Ñϱ ë„Q2hL‹~G¸£.ËÍNÀ›[3,­¼"…<f¨™ý±Y;-†§'¬Rzüä›*y¹œÿpr[0Æ7Rù @üźÉ{9u«B_ŽÑh sÕÚΉ֋[T‹àØYË[ZŽ÷®ê‚v§4ÀÚ‹>9~kslL9Ôe⪪ÿÞ­Ç‚wKï¡1Ÿ?´b$)’2 × F.:ü§XOšgj_(ÃHÛNÕ¨ÊÙ¬õô s÷s<Ÿi˜xÐ’nw}7ãxúÁÑÞCË©öK>s°·9›0—ÁÑ1yܷĶõÿ/ÐêS±ý‡±åGCéÌÞ†EÚéLCÀH¨ šiš"Ì®eBu}mAp––Y¶›#¿Òhªiøô{š©®°"ïZ6ðíÌu¯%Y.·ç‚žNúãÆºÐÕþâ¥ó|„ÑCÞÜû§)€³ŒáO±W5uÑŽ,!I'øÁ9ðfÌnv¸‰¯ŒîCMÔ²w­sfkÀªËƒ®ðždgã ~ ‘m3›jt!z‰lzÊ^…{½VWøq"âZÆÚŽ?óßÜOg^ãå•ÍRÏ™Áž—îÓøxeèç}‰VÙmœy γ0ª¥uuâ²døÒÊÀEÒ–ü" d‡•ê&'Ú~Æ©x¼ß~¹j.l"—ë†V垂ظØÙÃ鉠*”Žˆ³³#àÝ~["š‡SάÄa|G¦:Û7FMbò #WK8¢ä©YNSÏ£¸Ü7çÇÀÊMµÃ™?èÁÄ©'[GÕbnùçPÇy z:»±ZPK„x—v~0š¾l¤PgïÆ’:_Κ›ñ÷ê)Ú4Cì(Ó™ üý6òë«U:3šrÝFï\ùD¯7ÌZC¯ú­Ý½ ø¼?[î²ä¥'$ç)Âwé]¶³x¹ L7ÄæÉp÷ÔêMƒ3Ų|®±ÅL\Jš Ò©r[!odc>ÜAþS¶ ˜ˆG¼µ°õà;ÒC—¹AÈÁ$M:‡Eš· NÌÐ ò1ŒŸn-o|òMç•fi[ä9£7È4ìkìë/Dº¶ð óÚ½ˆ¶ÜqÈO¹*dppi.jëêØ#ª¦Åÿ¼mð F_—‡NÎÅÈh;UŠþØ 8t6à^âûÏù¶x+Gƒ£1UiáVAÃ)I Ý×\©Ë¯!Üü$.릥®EBRª4w¶ÑJHi¦æ-qÁ¼ä…aÀ°NˆhQäÎ~ þÇHÜØ€FÍJd;Í_Q|ÅÆ/¸Í±Gè[jyGZüýÕz9yæý•È)º$s:l® èûiäµ= šxÓŠÂs½tÐWÀfµ1ŠìÔ£þN îóó‡Õ‰—’‡VlÆLØ£  ëþß1—¥yj#¹'"~QïÅÖ ×ªÇ*™óQØ$øm3̉½pÝAñ¢AüUûÞÿ4(côÀkºyí t0³ U¥ËiC6s%4iJE9R”Åâ1ŒÕ29_ÓÜ6›©¼S¨v›É²Ãɪ¾~Ê¥p %u¯Š…–%N”"KÌBlY¢-óƒ‰ÑƒÖN¦ë‹½LÚ†‹ÆLQ;¿hŒî¾O‚é‚™’‡AÝ\x„‚"" c`_ \ [5ß’ÁE®Üå‚c" _øÜNKy±`±öŸÍñN,©µê>–ù›14 ÆÔ`+ܳ„qiÁÃsâhïšÂ¶gáJbC£› UÓþY˜)®#™m¬Z5EQTÕ[94o‘V‚gP§yÞÀvçÑ%ª3wÙVP¸Ÿ^¥Oš3 —)X7öÓ Œ»½vRK@„ÕÛá“F(R‰‡í™*„ ß"iå/3 KÅKÓ¨÷å Ù™¸Yí#ÍØûßû'`5¤(å1ÔQ„ͳš–×ýç:F~S~|o]°™näŒ&/¼+åäKʳ¡ èæ†užªá)‹2â& !Ͼ=âÆÛû ²[±<ðÝ]?¨'ì Ä¥tWC‰!·"E»—1öÚ$p¨¶8¬wA':äŒRt¨ƒçËDôÐwt)?òŠÞþwÍ>zþ+˹¾ó´º­qŒÅæÍlæÖÕòBõí…çãY‰ÆrªSÒ"ØL¼ž¹¼ŽÐ?\'ªþQE“ó–²¢l›”¼U“©x¦ `6üó§¥û­«OÊ…ÑàéžcˆE'ú„0$(+†0L¯+Ït¶&Ô¸È9Vm{Ècð"~†$'æÛÛdUeüýó#§‰š¦”£ wOÇp3ŸSòW6UÔªÁÎ0>¼Ç;µôOøaGÑ+€¶¡M.H¤}ÜE«”¾ŸÎÙ5¬¶è]ä²±[“·ºËy¬%ózNM¬€rY]“ä +]%Åh¦ŸŸþÖû3^ò0DŒ :sõ~Jç’Fg;/æA¿Œü”3ÿ+ÃkM»Q¶0G?t ðCmøº¿0ˆ“|ŽšA”¬×à|taQpC}Ù¹’ÿ0’ÊÎj3ø_x#4$Kv~·eð·è¯ËXe\j|ÒÅ…E±{‚–†Â=:( <&bZlLÂ-à„µ¨„BP…§6ȺÑyÀ" ¤—YXˆLh‚n4e}±^)²ì+ŽîJ‚d-0}BΈ¥¥Çy-Šë:ŸPOK©]Ôý:´ÃŒΫúÀ8êšþà¬ÙQ¯Dá!i[ô s,XÃWðÏJØ!E½û–Ó~–K¾Ðu²€¶C}—«Bºû—²â•.†ÈŽ”ºp&ƒ”zêÖÙg Ù–ªŸäÔ&Š?Ûøñ©žÄ#ƒpç«SÑ­XvÀy qPÔ‰wLôhkûÖhyv–P šló\66ùœ™W&è‰pÊÝŦ-¬01áç«Èøs…J^Qç6R¹dµ øÌ"åÅΩnÞåñë‘è2òúêF?›*·ÑuÕO©LRtïœ2^X ÓÉï‚l,«ë†o«…ŸGysPp'î2pÙ^Ç»•5¶ƒUÄÕËD¦Ý+Q lFÑ|øJ"2TéD¶Ðö0ê5†™*"ù×Cö†j?o‡Ñ¤s¤ >ß‹|Òói“9æl¤çjRQ¶ùÅ1žAYÆß×à‰ p:-pužÀ_Ù‡ U·™qb´þ=¶–¥q_÷ˆIÆ»ý šÈ°ú|ÔÕézðÜóm‰MŸ²ÿÔ-… Ó‹Lv±Ì‹°†}çÊUÅM²Ö²Ê/þ¶å ójuH*°%ÿß6qâB:Ü2ßX·\ ü:T³ —â<Ó ‚U÷Å™ݘ–>¤p(tÞ¯\†]êPÅ6*K»áØUÃÏMáþl-ë7«YM*—ÖF>ÝÍÀ6J(’"æÔ%ô¯»1-#‡Ž€zàÕ#ù’Tw­™{‘¸­Š)‚ðNÇUB¼Ì};?Ä 7DÈjå_Si±*…1–Õ¶RÏl¬t”†Â똵Éð™2‡c+‹‚x/„'s—Úæ%•è‘8wCKßøP¶sขM,[l¿ñ©O@8f¿íxˆ“„òÆÚCN¦ëÌÛi&*#SÿXêü ,É}åáÚ6kºÎc¤ÔÔ岿QŠÊd‰C É/ÿæ Ð÷šs™)Ý­¤î5‰Jj[˱6TŒBÁ4›~ì kQÂq}µ½èè o)³>”Ãs1Ñ´ƒÄï9:™¾Ww¯Þ"ׇ ²€÷®œ¦ž;pø9Rõ3.~|O²µ¨­Ê8& ?'­'l~·;kB+Êäö§ª÷°´r# Ú7ûÙ ž…“¯â`ùåõ¤ Fœd@kzèlh<¤ƒÚÕQÐìÜ<êØ:{AW„Œj#EC}Ø‘Po‰¦=þ»ˆÅÅZ]–Æ"°OÍÛ@¶uð3w6MåC\mÁÁ7sþX²q}¹¹­Ôî{ Í‹##9óü×q‘I3Ê¿a?Ÿ£âñ0—V±›u*R‹d&Ìru·t‹Ý^ðË]´ÑË;Ñ'¸Mqg ýP-þ6¿(Ž_,@úiÔÿyqî6›dæ`NÇ\u¹Vi©áó…z¨CæKNWò‚¡Þ I±c¤(ŠiínÞ+íŽ$ W…ˆjè¤ôÆ2Ü”?£ð£vñ5£X Î!.xð=¤(ø ’ÞoˆŠ"(,O$7ç­On§k…Þˆ#XŽùˆ®߀f &´£F}åÎã 9ª>÷˜À°øØS¦«2þß=g›š]g<+á<ê·xå Ì­@†…mJ­Ö”qÎk šðà÷$ f:£oíÉϘ¬çø¤Ëœõ¢ÎÞœhó#ä·ï~;¤ÇÀBè#Òó·R×uò/#h¶qD€v¬Ù#bÑbi‹Æ÷S^Ï ,uý••e¥ ³ÍÔÝ0Õ>2q““l°~ËAÄ);Š}Y^ãùÇé¾ð«™è ý«À„¼ß¢ñ[^YêçtªŒÎê-Y8t…ša#RÂõËÇú|§««rÏ¢;9´…¡„ãÆÚßÿ¿Ÿ3Íš{”c‡æßg|—z´&ëlö†}á+4 ‘ÓûhÅDØyC·Èÿܼ‹•ñ¸yËqnuY¹óã‡pS¼ÃðÛD 7#DÞ¥9PÓÄ燢a]Ü›‚M‹Ù°»:TN A¸ ‰ph›#ÕXÿË2ºêÿZ{´<øºÓ‚ ÊMØõa-£Œ -„µ~])G²ÓH @\bé¦2 ùÀ°ænŸÿ«O²Þ\´˜We­½ÖíSJêÖÆoO¼Þï%p%0PBnü¡'¾ŒÿMÃæ¤TÜÍø?ò»Ç±~öiدìs¸óAšùïñ ì¨6÷oX.Ýypl-%ôÊ+/DV£np”¢”<ϵûÃý°³ÙGÝsÌNž¿×›ë¢¥r(H1ðî»­K°mgÈÿÖ@•¡úŽƒg ÜíuÊ—`T7_ó*Gs)Ðè<”@µEPð/“ƸwK– ZɶBÀÏ)ÊIý<^XÏÅ›ž M‡*}2ktÛ0—PiCâžýü4™ñº[|€HÏm1“… D7þÈ9dh ï;ž&Ýnˆ€.y÷@ ÔÊ#t™Ý÷Tg¦ü’Ÿ@ ʼÃG¼ ŒÖÄvØk ߢ۰Úß5  ô$«µ…ÎG°½Ëx‰éÿvŠCÑg|m)û ÔyâG¥l"žü£Îú—?ç¬þo”êkzĹ4ZÇ„B™œ—tªާêEø²4G9*câ‰àÝ,åòùÀ¢ùeåÎt+ÙÃuÅú졊‡C?¥9ÉÀd% M8BVrÄ ¥'’N,çýÈ•éP6Ò1êÀ¬É_«£>ßS¹fCOÛÂü‘¢å²š©«¹+è]¶Å’uƒ~‘ž(Hû=3Ÿïƒ÷ûÕCueSs¶øMm©z6$öò ÿlwDVNh#ª>¯pË¿:t Ë„¶{þŠ¿áâö¡É§kæ(’é¿~^óK3eÜÇzG_»ù‰piÔ 9À–9(àºÆÀõEfƒŠà-Õ·óþyž5¤q$Î͵àKÞtP_7ŠÊ(d³¦"·?¡i9Ê/Ô0]zooPVÝ3Ã`IÔAz \â@¡A#~‚­ä8ï§Â×C]¼/£q.Ã㽿Kó´k,[sKcõlz‰„UÆ7üèÚ(P$šÓx†°â·x_…bXÎhÝóŽ´°qÔ~Yìþ ú´¸·aã$ÒdŠF°œjú¤¾=ûјf? ~Þ®÷ E”—î¡0™©‡åAiØÞ«¦ŽüíÅÉü`MôC=ôÇf—)øU+þYá_9vØÆ»¯!«òÍ@ÝÅ΃•°&ÙZžÌªendstream endobj 310 0 obj << /Filter /FlateDecode /Length1 1802 /Length2 2332 /Length3 0 /Length 3445 >> stream xÚµU{Ïèhúbè0 tƒÙ–€3±¼I$*(`Ñ`&`‚ |&• p¦&&.HE ˜íJE@[€`‰D Y4  *6Àdƒ\TNh€"T²€}êÂÁæ!X•‡ŠA6bƒ¨‰ Ìp!F$"ôa†Å = ­q€'5< ŽáEA•MOaCÑ|pƒë#Âüƒ1@0ÀhŒ Ä ƒ/pG„0Z”„xÌ"¨L˜E€è Ï£n„Ëâ¿|¬:Ž ´GG³à};la4“¯¢/„Ð7Å¡e€Ž-f3ŒÀà}`¥‡þÿgê~ˆåÆg2}¨,Pÿ_*û£:•1ÿËàÅ P˜¹¾ÌeQ™?È ž Òý $ÏÉegR¯8õþVš¦pËSœÓò»Ìæ÷ª^UyQ£Ù]o¯dX<©8$ÙvdË¡ß+Å÷´sOЪ.kª'Þ}–x•TÕ&w'HVÿš× {–ú“‚à~-Œž·Y«Õ´Ÿ;_Õéß5ܾvÛÃÍç ̶dÐ_eýÚ¯ÇÄ­Rž1x’ð íÜ›OðV¶ïf­ÃŠ|ÎhŠ?j#j¹4ÂKCÜ#ïqUY®¸p[¿¤9nP'&)-²”4m½ ®NuO: /;ƒÍNá®ÇÝËóºç*æÓð}¿9y1¥ó£÷‹óŠû”lºô´D9/VܰèÙè¸Ó˜nûŸ ã¶HÃCÖ:kº÷Gci0Í7£ü¬»Ûæ@Ó¸ƒÚ›°`±âžu%E²­ƒR9¿IÙ“]×{J8«ªv‹ÅJö”¯¿û¨}èöLņ˜¢85›ƒ;.Ž­ÕSWþ`¬dµW=Û«ä׃5òð]/–DË *†,rõ´‰Ø¤à/U­>)â½­îçOêég÷çæfòß*ôE?}&›o6ÝTÙ«z½ƾSüã|…hcìÔ-Žx˜xÑÀáŒwý±ê×WàÎÙc?v¤ z´â–½Üs27@;ß& Ò$&ˆwegöÏj–æâ'n÷ÉœL1Þ„S}¸[píÍÕ¼|ìHÉ:§ÜZ0IÐjO¶¿ªòÜè §´M“°kûÅd„·fäÜ Èï·SÑx£6øa²’t†×º­ÍÞ23ÖÎpDD ¹í;™½ipôè¥ÅZ‰3×ÃÖªŽlY5|y+ú t=WµûqrÁÉ cœ9st:xFÁyn£f—µK«^l¦VnTz2`Ÿèèß3Ú³Ï÷e–±'ÏöÄ^^‡÷ŸÛ3 á6¡voã³gª ðÖ§pS†{Nþ§É˜‚$Ľ‘Qݪl¨ò¶ù ±:Øq4õtQ‘˜tÍöÖÖR§›Ã•Ö Kw8tå÷”;n^²h4J÷:<¾ÕmÇ/¥“v?i¬/Y³ìùär«÷}èî—wVã«-gŠîhøK£xú.=+Å0«¹‘S *û€3s Ò4jæÛÕw:`¤+qI²Š—§×4Z„öºÞ›Ít¯cŒ½—ß}îTÕ©ÂÙÝ]fnŸÞn©V¢5y̼O?.‚yç’,÷ÛCÊ+­¥í¢!˜åÛåä»flÓ˜¹÷MÝoTXjmgn9˜jiqT›ÚTžt´muc›ú9¯îŠŽí³MgÓ÷Ö1¨ ~G“Â3™—½Çy;—’ØpÁagkù™÷Æ+BVîŠî®çïs™Ë&µ ÖIÜù¤'¸ ÕÏÕõopüñ´¬#Ê«SÆDJü^ÄÈ’Õ+È^±–{âõoŒßvM¯"sŸŽ='*I\xw×Á7ÉzF?&vƒµÉëMÈ!Ý<‘c¯ÛXV$aú¨÷5Žó-ÇP‘dJ{šZb3Ð+¼^u|¨ïu¿tVuýù™‰eŠCq‚^{5•&¾ÈÕá•Sì"ooÂðî¿4Ú7@PÈ«œ A$—´¿9$™/9î¢n}.vÅi™aÎ|ýUyhúÕÍëÞÝ;"IŒeêDŸfNÛêQçõE rwTã”%t>ý~á4 ë–ψIúPùéÝ.ý©ê·ïö=p×°Ý6’¬Õ¶b‰×j›¥Ü›­}3¥›vkÊû|Æý”äa­b;½$å×ÌDµ‡“Ò-[N48W MµH&^Á¶Éùû4äWˆ')Úó&ÁÙîÔÇô Ñ”Ž{…o™7ïÙìÀ=ÛÛÙë¸aÙµ&Æqžn€\©Õô{A|Àë‰Ê.# ü€ï§9‹\Ï.Ž5¬ÃKª¬9öµŽ=·Ù²Ý8¯Ôþ’ßµ«‘’_®&™Üdgàè×s½ªÃS¬ñ '™²uùÚ)vwk”Ôç½¥¦û`4{loуUaãùDýUƒJÎ'Êâÿ¤Ë×Õc“š³=-Ž-Q.{öÕf—ºìVÕu·NXgk—fNÌNÿågÃlUµWòe/S}B± YýªXµ¢¹ZrÛyѧüϯ ¥d°xöAÖîÉÛ gUÛ«›åB5¯•è<Ô­h”QMnL²•ñYy0éO ‡°Õa‚jÙ8ùväÈšÖ€ºÔƒÖêû‡ëÌkß]b*îzïh@^[y;BÕì™Kyêtõ'Ü ††ÕìçdŽã€a·Ê/>¢æ¶ŠrלúêÇ9ö¢µä²+š·IÒC×8.y#rj¿uƒ4=ÿzÊÆzgÛ“5zQÌ,¥X-ÜòN ooRŠyùü±ã+.“V¦â3Îóètó'±lw;úçI®×˜ >«8`ÿvüñtñ”Ö¤†ØâÕº‡endstream endobj 311 0 obj << /Filter /FlateDecode /Length1 1775 /Length2 2145 /Length3 0 /Length 3256 >> stream xÚµTyD&Lù b–!L!CF S<Äå‹0' “å°±´”e’E¯ Ofh8% ‡aO¢7ø Q¸&(B 0&— P6`@ÀŸîêGî~«ýitS"ž˜.âóQÁß\œé w àBõa¸(À¸ûÓ²_„àü9À‡ã²:¸£,ÜÛ•Ae¬¥¹’I²32ˆ„BXVö'nÆ83ðÊ æÿ &¹³+в`„¬qÅ2¦˜`…+ÄÚÎÄqá³ h¹„‰ˆ ø",°QA6f™ÎIL|I°0œ‡W‘ÁrÄÚ G`W,Œ‰¿YÉ@â21Ùä1\}_íd@âÁøŠ~—Àø?ˆÌôãi²+@®h«o‡þûn”¿Ó1­Y8¥ï\ðFàèõV¸ɸÿ|ý·á‡Fß6é»è+ÐèK+`IÁûC&/²”¸"C'.)ù"à³ùú.»!EC¡„Ž£¡N)›vO+‹w-n)ŸbD!¾:¦½4Ð3K©£ å’Þ—=в’¤ŠÄ=Æ%¨×JÇ ñ¹IÈá@£”ÙÜ/+sŽßbù.ÂŒ÷Ž×Ss¥6ï úoÙã}?±ü²éKÏýEkØÞÙS•U5ø7÷9S.Õ|üÝúÖ¸ú@žAPyÕƒƒS¢µ“/h ¸Ñ÷géVëÝo©ž„Ô’d0ë©fmÁEiÚÍžSùu5³Öþ²ª~…*4sCªüZ®"Sݘž*Ù¹ódÁ¡gûÅû&µM:ïÞ¹Æ È<¹ô×ÞiMAÁæÊžÆ]o´0º¦üw¢Ùä皪-އ/ßâô&®ôF¬Õ;W0µÜIW;%ùýëF•}-Äñ‚¼‹”dnRQZ TÍL<Ÿ­¿¶GxB«2ñHÚ0=ižINs§õ¸9ÿ´îPk`÷ˆ›_˜g­%/!ùñÒ‹GmS©'^Íxqe‘oÊ:—ñ³›vÞzòâ€ñ¢- R¬%š œ¾º5'Yie¾g§Ò.G‹§_e{XÌló–îx”BÔÞ>MšZvat90ýbH‰ÜËyX}ýxFÚ¼Ì^kSߢÌÕ÷#Ãí³xU’Â<-½÷­£Îþ§Ï>>÷”¶é†·k ’d›Ý)Ó}+iéCý–µØ½ÝÃê!y[̺0G¥e,ã­­Êœ²Êæí×3Ήϸ¥WyÐ+yU¦ƒÖê§Ìgl$¥/¥aGîîìlyÝ!à¤_NŸ<¿dwà)5û/Чï‡.á²yù†Yé3lâ½j ”%ô¹Ên½iR¯Í!~_ÚWäSõ/ò4ÇScìÆñÌ̹$Ë)UæÔ¾T p"óU]© TóTG=œ®,Ò!š¹&I¼)=R¨•äNVeg™³Þ~¦ÝïÌîF$¦(µošv$©ŒSSvk…Ke‡aœUÒù©vï˪í×Þt ÈrnÚ…5¢;ÉûrÄçÕu$OCÖÏ{Æ9}N¸÷‚Î Õ®uoRS.»¥^Ÿ<¤kÆëi ð`ÉÑv÷¡bn¾»ÚíwÆJnúŽ5-W¨ÍdW°…—ÅÎÈOß½!²ÈÉ<Ýå³ãÙ}ó;Ó™½éycv™\VY_Z8KR¦9ÑŸøíÃÙYMA‹Z¨¿$¯¨4è÷¸×kàð²¯Êᇠª™ÔZ[ÞÖãzeƒ¿%Œ+nþ\ð‹æ6=çZkuO¥À.}Zh÷Íèó[·weŸj½fì“Ųú˜¤AÍŸçðëÂú”km½‚†ÉØZA·Òðó˜!Wz^n\ðõWà·9ZqŸ^ýù¸ÙÓô¬2÷¥¶¢žjkþœèx7endstream endobj 312 0 obj << /Type /ObjStm /Length 1951 /Filter /FlateDecode /N 93 /First 810 >> stream xœYK㸾çWð8Z ¾ÆbO9,°‹&òBj·Æ­D~D’{¦óëó-·)›vÔ;=hªK‹U_‹tYKÍÓÒ0#1XǤ2=“Nc L 12eñ·LňSŒÅˆ9ÏJ3£Ã\g™U„sÌzÂyæ$9GøÈ¼À¨óó´d>bžV,hÌÓš…¼6,jÂY=ÖÒ°OÀ(Ťp„Lâ",t”Á/8oŒÂ©3šI²IC*5)„ÒHC³±XæH+ ÍÖšmØ b«[hvš-4{8¡AŽô` Íè±Ðì±ÐÍ‚æeÚBsŒ4 ´ ø¤ ž9J’ƒNáìA”;ƒŠÜV*Æ1Ei,£4ñì/#I4Š ‡f+€ñÐl)fp[YbÃC³#6<4;L%ÊKC³·„æ@‘òÐ@¤öÐÈ÷@¹@¾hŽä;e ” ¤p’ÒzÒØQ˜ÒÅ8P>8¿ˆRŸR˙ľ—”lÐMú…¼¥E£eÆH;f<Å=zfÏPjO˜È,…Ñ€Gk±ºKÖc#³ŒÌ´ÑÑ+C¹*ñ`™ƒ…¿ûñGöùì ]aÇ|aŸÿú·¿38-çÀìŽ]ÇþÉ~úé+9ÐhÁ¦y˜‘S\"ß È ‡=ã[·0‰0½­æÏÀÌ’ÊùÀ%8.¡Õ ÚkË’uÚÁè^f‰sš›²ÎÜ ±9…s™%Æ_Š\Q·Z•½,Ø#·¶l«—Å0Ças„êŃ+Ù0ÓJe)òXZ½ä™ ’Û;Ñ.ä†r࡜u·“ÅGÇÂÜšÛPä¸d·ܪ’ÝJ.Ü(3 6§ d»XJ¢9ZI©^YôÒ]è„át ,C£†!ûÝRö`·òe7ãB>ÔRâfµía)*$…Ñ¡Xßf•ðƒ±ã8Ò!Qãt±j)»­bRb«ŠåF(‹t(– !ò\CFÒyKÔÒtpé`–CÜå°™J1±òÚ÷1Cpãá±|ðáž³¬Š…é63öÃyiwŲIefÙújaîà"²h–.mÂoÊpºáÀZZ˜¬ <˜"Sna™qéÑ0 xvã†v•€tü—3ôCüoJº¢ó¢ai’†ùÅ×}N—Ü…¹ ¹tÅk‹^˜¥Â%=N¦òÙk—e;¿Ç>ºr à‹ÇWñhÄu6øÅ×H\:£_z¡Å' NgýÂ:KÇnñ@ñƱ\±t–‚¢#7ÅkdÉË]ÄñÙ‰Ó§ÛÿcÉâ"ºø¸¾üµÝ¶ãô§?ŸüoÖc»ßq¤;~¾4]=¶¯ ŽýkûZw\WìÓº^¯Çãs;Œ»¡‚¶Ï¬·ÍÇÔPûƒÌ+ÌPü/M»yÛ݆ջg–^ôçi¢=MLv|©RËã"øóÏü¹ë*µ%.âºîšÝêÐï×Í0T©}’½Ìœ¡†½)P”°OÇͰzÚïÿ}f¢y©ç\Ãèóöe­õzÿ}µiv_«ÔçÈ^ôûoãKÓ+!ÍöØm×¼6]•>ÀߢHEÓ×ô~*•§÷ÏͶíÛJä™í*u.d°žÍ{n~íšï¤àìåvë±Yýk Î^ÀÔ¦º¬´©·]b;ÈLú²?n꺖1Ú¯}Ývã[•úåË6Q¡3/TîÅ™Ñt«¡Ý®Û*5²w™±Z>vt{lº|~«w›³³‡¾Ùíº™âtãï|µ¢²µ/õ«Ô¨ºwõðR¥îS&kºa¿[õÓæXeŽšÜÑþ{ƒJV¥>Oöfn&µYyúïöDf[ŸÝêcÓ?õM‹ˆÄ§cÛ=·ä×ÛÔ¼»Ï+Êïõ~÷ÚôCM[ºJ=Ë ´Æýk™¾ÙôØŽ'· UWoŸš~<ï$o ˜CÝoë¾J­ÓËÛ;Néé¼¾GÒû4%„šîT–Þ™ÛÕ¾oKìÜ›©C¾%™ë7 Ø;vþv÷{dö±îVTªÔµËßc&X«RŸ6—¶ªJMܹp2–š¶½&èñ€ÂÙÀÕæ?Ç9bUr4SK4[9Ü|ûú°Âlë]ª4yШvíšú˜§»Ì·Å[Ó¬¾!ZUjQ'yf¬RGûZœ|·÷\Ì€t~êMCŠrÇæjvÏ—°œb1ÑŸ¾¶›cŸtPc:‘!S_è,"}nòð¼4uûï{‚ˆw;íÜÐ÷×ÔÜÎt&[|.I¦Ä\’,¹$9%s‰­Rü¡qîlœ%ã\•Zç™R_¥Žy& Uj”g’X¥ŽùEBö«|­¦ýcÛ”<Û¦ ¦Ñ[ê´g:iŸó¦ˆ¥ÇK¥m˜«ˆ¥˜›’Æ<4Íœ-‹Ëh “+¤LbÕ¨L@¤N­›“€85¹+D©½»+¦×”—?®6|¢¯’ò‹"âüµ4±,¯¥‰i}-%âüµ^@»:Ì~iŸÉ"ú‚äô-Äi´Óè¦ÑOã¹Î?¸Ù\*Áõ"§ÅÍÔ¡ï,N£šÆ“&ªÛE.øÝŸ0-ñ?!ÚFendstream endobj 406 0 obj << /Type /ObjStm /Length 2095 /Filter /FlateDecode /N 91 /First 805 >> stream xœ½YYÛ8~ß_ÁÇxfó(^À @&‹,æØ `/̃ÓVgøhØrÏæßoEÚ"MÙ`1¶(²T¬ï«b±DpL0žÀK`RZR0… %SNãU1 ¯Øö¯ÀŒEyi˜uÔo™7ÔïXP¯žI¡H)¤'•`Ri… ‰€Ï*Å$X‰ ͤQÔlœUHëHØ2é4=î˜ô‚dPsô8j…5ÙªÑ0ÆJ`p%éqìU Ð. Lé€kÃZ¨-SqRí°HØ3e 5‚ÆyP³GëP³'…€š*@ÍÁ£¦ ¨TË(l™VøØ«µ ì!€Dhƒf‚L[2ÕHlXÔŒkðq£™Žs¡?tœË¡¤Ç¡ôG°#™Ä¹–¤0$¶4 1OÌòWÔNöXÒN6G¹(C7ÖÓ‡N‹š‘@½ŽÜdQ³×4ŽÃÞQ7j‡¬ ¤CÄêÆ…@JP6h.g™‘Š´:l2TÄKR Bà3šØðÈ1x… gƸ$ÆÓÐÐoº‡U÷ÒmW„æi÷ºÜ÷Ë)ÓmÊBÁ…®¸pJV\˜ ./Z}f:ɤ°R«I¶“Dç¶ËYM§Œ˜3aÇ<÷-Þ$ÿØ­‘µ×î´†gRª ȶ We³LÔt©ILhrÉý·WÒHŠÿ½ë¿ü'æ*Š„8S×2s‹.±¸KÎÕySñíLsáö„Ϫ´)åŒR<ÛÎ ’{ì×ÃC¿Í ·”ŸúL«öO™´ q-êåžÃ;¤Œ)TÃ$´GfSüýiM²¸hŸúõz¹ÿš÷•n?K„®ÝWÀÊY-ÃÒ5¬»VP‚×ZÅúLÉ)œ‰ªp{óÈ[ûEšXïÆMww^ŽÃ,!P⯒£ bëx Èóü®Çr¼ŠI{ð÷Çðیъ+r³AÏÏn_º¨A^…cJ85cN#y£}0®ÅÒ\¥ß4..3ê ¦ÁÞ ›–cÅÔÄâ*š²0„‹ÂPŸL‰¿Ük. 8}pªÕVý‹·ÏGž+Ù@®p¥ñU-V pQ‹]qÅ]uSÞ%tU{© “Ívê¦DðwûÏý°Ç4ó°Â a{ zájÑ e-¥Nµ”)j)Seì5¢ "ªUYEp à ì4·¬Î„äœ2‚nTw§eƒ…ÔÇÝWŒ“±ŠBûq¥²Ã V]zý™‰ë¢~2Uýåæb.ê'•’J¨Âc¦f2Ó¬:Y¡§PÊI,'.sûEgÊ‚äݼ¬; ˜}·ÝoìËø^x6m>Œj30F€) $SHÎk<â0•—[I9¿,æûk/‘ÿÇè9‘öÓq=ôøz8t×—”1E¬„«k¥Šœºü¢3—­JˆÝôÅ.ﵿåvyó$Z9z|¿† ç‚„ÀÖ…•ÉjUßç*ä”þȇ¾’«üuFòo–_ÛÙ¯VOþñÏ1O‡zž[ͶÇõå'by-'9­·øž})¨d¥Q·X5TªR§•ø¦+›“ƒ®¬Üš–N™Q–ï84í¬%5ÎnqóºÈ‚å¾)iòñO’”AÍÌ®T©S:ǃ÷H‚㢩R—“ãFËuO^k'äŽ7ÉTPRd=p©›FÖ’¨Òu‡¤H¦mJZy–”(ÏnãÕÞÊiƒþôwHZ#¹u®åOg'&p…¦6Àéô†Å¦.péšR´´’»¦Î„è,ËU‹.£*¯ZÃu“X£áN¦jI-§×É ?aJY.cxNiñ†8Åj ÍT)©$:KÕLe™;Ueùh5UeùíïëKÇÿv¨Ž9ägì7ýpÀ©Þ¤ÿÏtBp¾ñ Êœ?ãËè…á“æs',â)~Ùiñ¾ì´‹x`_vºE<¼/;ý"žßSç¯WŒg£iƦÍ(C_¦úi7£/"EŸZÄ#EáµPö\["‹h­½a.ÁSÙ@ÓäH“-‰,YŸúŠ‘Eüs9@xœm (/Ñ‘0‹¢xáKPª¨ Oõ}йœ•кKsLDæuc€y8T{‹øMjf4²¢¯a,åiY ËÏëŽZ5¸ Qúâ'‰¦øiO4½è‰Þ¥A?ô+šƒ¾NQ?}œ¯&]s¨Í­‰‰Å¨òÿ×2Åendstream endobj 498 0 obj << /Type /ObjStm /Length 3128 /Filter /FlateDecode /N 93 /First 852 >> stream xœÕ[[sÛ6}ß_Çt:‰;éd&v'Û¦—8ív6“ÅfíÚ’+Évýž‚ºÙJ$ÑŽwgAð||7À6%Q W×Bù„«:\µ°5û°‘÷ÿ]û?òêE0|D ¼BÕš$” J8… ¦qJ e ÞWZ(çùÈàc–= ïÑpBˆ*&Ì£‚Ðu…V‰ó$¡EC×B[öh€õ¹Gum„©m@à £5Në"^Oøè5Á±…‰‰’°Ê¢Y@®QÂZƒG|p30ÂGLJlB·3™Àl<¡°‡=ßÂÒä XêI2§ˆ`‰³¸I¹G ¯Àgð|v Ö[Î (Þ%ŽñÂ’ƒÿ>æž(‚¢l‚<®!Ù)?á´1”3"Öä³"*R ²£qìñ"f¡:Ð[>Š$¹ê’ˆ‰4ùZ¤š=€›4Çx-’…ôœ7Dà£ÞŠÇ8‘âTµªù~ N‘§v‚„Ž)@B_¨Ù":h‹ª)C‡‰ð&µ:¨j`F :R'rz¦TfYÀ7$޾¡,ð EQº@ôÔâˆo¨5ïÑJd\ÔlQÅ ×J[OÉX¶0+u[iOa‚håw[ã"[T´ˆoèmu‰z®(_ÈGýß¾ùFTÏÇ£™È €×â5î GàRiC£Sic(Uikhq×ݘD5ïÚ€’|¾yòDT?MƧ'ÍL¼EóÙsQ½iþœ‰w¢úíÇ÷ÿjN[$//4ÍtïÅÀB¨dÍ`Ø%Vº6Z2¾ßW«\HË¡©'4Ï_D°í½Ô-]ïR”‹”IwÆ wðQªs1Êò™ŸßñYçZs¡¹ê3­‰·85¦¯ÝœÆwïnçìn:´PZ;+Ô»B·+3Ÿm¯-nW2ƒU˜ú;@­7:Àƒ ©šæÔ&ZøŸØ±g8™Î8RP–YЇ-$§0Eü÷®í5˜M†£¬U«l‹Æ|?Xž©86Ê} .q­súå%@f^¯yA³âáÛÎf§9yk¥¶i½øëÅÀ3xÙ:¬€[Db,À µ«c¸³HÕê$áÒNÉ޵¾!£K~WÃ2¼¿hz¹Oc=ëØ¦³«Ëíâæ å!e%—²ebýÐRbmé˜ÙÒ¡Ü-$d­5 ç¶F¢˜ëÚ2²& „Dº'¢ÇãɰWÞS×ôû* 出?4(‹‘αCêœT÷…u}u6˜5½²D‡ìÐ/€%DQÞïì>*ü˦Ö»³Xs›;ˆ6JñÚ™[ qÅ›ö2±vcr_f IµŽ,—¤\O²ÆÀV„ÊH¶õÚXk|¾_`ó&‡ïûakãõ>u «´äœŽ M‘J žùëÊŠ{ƒnx+֪汉j÷(?©lµ€TÞÝo5Yn~neÝc0S*¥ZëJ¶ïJ,ïJ8ÌýàöZV¨½m…î¸gwë ½ ߌÿOþyøâäøëï_½_Fþàus~}Ð~Q9ðwç¹bð›¹A‘Í<7€,>™¸elk©A·•¹†õèøøèø»kÚk}kª×°*ØøO‚õŸ«oû÷Ã_¾ý–Œ}5˜}<ùëòýøbz+äzòmˆÕâÏà ŸÀ«–ñÞ—9t07ÜŠ‡?ÖÎ,»è%ÏX<¤©æžŸñ–§dU¯Ìð¨K@À—öªoßß|-µÍGF$ÖŽmH&>4×hRM-]f™!J³}EyŽëÃðüzÒ¯•¢äƒd!åPÝËšƒB’açð³qÌ*8U­æx¬VR!¿z(·ù/xà0:QÍŸ´´m Ô+¤¡å—÷N[Œ·ACû»Ü@¹Üßö,÷kÏ/D“H_ó‘+3-S[o†ÒðÛÎÕìÉO‰ÃºÜÈ«u%ÆÈLjüÝcä§Þ­œx:=¥Öûd±hW/šáùGÜÂìçQ´ÝªAuZ5Õ°º¨.«q5©¦Õ¬úÆU6¾}À#ŽÕó‹ÁùTØ•cQ9´ã_œðtÜüxÔó!9?w-èic²Õ#/gƒ‹áéÓÑ9@ÊÕɬ¹üU Œ[ Ô–j}Õo…‹gB¬ò Ó2…ãQSý§™Œ·#ŠÇؘ/(&Švg•,¿NÖÆJñ2…uG_4wM_“)¼ª®hä.š³¶5áØêÏí¨¶HX@5ÿ0:ªãÕaê5ç[©N{H•µYos̽¥žÖâ q›Ÿ».ôž«¤ÅuÒ>S¡Þ ¸v[Áþ•ý\endstream endobj 592 0 obj << /Filter /FlateDecode /Length 753 >> stream xÚuUMoâ0½çWx•ÚÅ$ !Ùù8l[•jµWHL7$Q¤í¿_Ï Á¥ÝˆžÇoÆoì§áæÇóf¢Ëfg'êž³Û7§®°“äç¶ nnÒ¦8m=‡Òá*XÊÐaA€K À¦2˜»€Ê)àp°Œ„ñƀÃÁ2†Í8B\(ÐPC/.§8]£‚9¶ÝY;W HãPXJ–\6€g„3À!ÀG„±ÎùdÌRH¬IMDü`øõÖ©_'°Î>ðGN~žÀ„‚»Ð—*,‰ úöÀÍ 0ö ä`2­‚žAÃ%‹˜âðœr‘ƒ½ñ9ôô"°7Bÿ‚úÊ‘O=%ÈɈ#Sx®ôÚ _JzÆ0i–PSÎHâ˜8pŠÎÒ«è,¹Šî΀Îðl ¸«8!pŒ9õ 5#N|Ч~LüêĤßXsÒ ÷¬…÷“–ÞOZy?é™÷“½Ÿtäý¤cï'­½Ÿ4yHƒ}îù©÷™Î®}¦ókŸ~í3#¾úÌȯ>3ÊûÌ̼ÏLè}f"ï3{Ÿ™¹÷™YxŸí}fŒ÷™I¼ÏLê}f2ï3“{Ÿ%Üû,Þg‰ô>Kf—7É€fLÙË@,N]çf%Žb€0úªÚ^¦uÛ´…?óã¿ ¬žòà.I³Fendstream endobj 593 0 obj << /Filter /FlateDecode /Length 964 >> stream xÚmVMoÛ8¼ëWpÒƒk’²$ª P_@ÛM°Ø«#1Y±dÈö!ÿ~9ï='mƒœ!5ïqf(‰¹ùëçýÊócX¥_µúNóeªù{wLnnÚy¸ÂtþÂÆëÝÓ7õs™‡ûpV·Í]{7íÏ_"ùn^.c¸²>'Õáy?½S°Žº}ÿ®–Ãêåp:ÿ` Á~ØŸ_"ës‚гê좲ÂrÚÏÓ7e¾j­ãD7Í|€“S²5j}Õ÷´ŸÆE$©GLŒUã~8ˈ~‡CŒÅ÷¯§s8ÜMOsRUjý+Þ<—WRù%YÿXưì§guûA[¼w9_t(l·j O±eÌàûîÔús›o¤‡×cP–Ɔ• óNÇÝ–Ýô’Jë­ªú~›„iüpϤ\òøtå‘«~RŸm“ʦÛ:â8›iÍ.N¤}ÄODœT¹‰¸ð4qR¸Y4h¤ z”èQ–`˜=Hl2*‰8N@GËËFœT-ØmG'U‡’ŽK:”t(鹤CI’žK"†ý«O£õÕøðßn‘ŒtZB†~kuly"uʸÞ0î€3Ž "tΘú”Œ©qXc©'g•ç¸0nÞÇp¦Û÷qƒq÷ÿÊéÿœÏ“"rqñ̅>Ct½&–â5äÁ¶Ðj8C½4Ï{`ǵÄ)y'ˆÃ[ÝÁ‹!o&ƒþzâ³§†8s,0û u­á‡ ú­å§¥.ÃwÊ==8)÷LÁI9£z2yÒIÆœ œ¬c¿Ðõì =sÍ|h(Zž¿`~‹>뤽tœ³†~g#Og£¿K£ÖmãYq”³1ÈÓ匩gÁ˜8Ž÷Ú¿$äÑQÎfïŽsÞ g×0Æ>º–1õ—œ±ï®g %ëϰnÉú3ðKÖOÏIÉú3è)YNµ¬?‡÷’õÄgý9ñYgÍ%ë,ðΔ¬3¥ZÖ™R-ë4ðUJÎðâ%gxô’3>I^r&ŽäŒµ¼äŒgÀKÎX×KÎÈÓKÎÄ‘œáÝKÎÐï%gèô’3¼{ɹyÉ™úKÎÐï%gè¬%g¬[KÎà×’3øµä =µäLµ’3¼×’3ñ%gâóûØ–©—Ï}ÕâyõÇG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–âÂ×™kÈhßó ×ý.‡Ó·ƒo¸,K<éÄ¥“gÜ~ o‡òq>¢Š.:ͯÿA`ô£Oþ~endstream endobj 594 0 obj << /Filter /FlateDecode /Length 2596 >> stream xÚÍZÝ۸߿ÂZT¾®Q–T´}HpÜáÚ+r[ô!¹Å֮ؖO¶7›×¿½óIQmïmS ÎRä3óÁD£ûQ4zsõêöêåMYŒL–QiF·w#S&aÇ£<ËÃ2ÉF·óÑ»àõbl‚~Ëü³‡_³Å®ºO’$¾‡v5ÇyðZHÓl®yèoðñG^ãw¼Zâ(-SáBK™°ÇÆŒ>ˆîŸÜ¾ýþåM’¸R&qNó6Aòʼn®"ÙÖË“Å.ù$MÍh’da1òŒ?Ž'ñÔ”Á 8Ü'Yœ†æ„›Ùn¿Oð{eÂ6á·–_ÅCÄOLfiÙg KÕ´•cFºÊcÇd%ÄaˆJZtÃÊÓ×¼ÆJ/I2”þXÝÊWý|~ëÂ?îšwÐ<ˆì3‘})zÜx÷ ªÙöG­ uACéŸT-£²ì%]<öþ?Ä‘ Ú]#‹-DŸ_¼B© þ$º]Ë…!?Èäs—dè£܈H»þ~šÎnŽ…þÝ7üç9†_ËšÛ¾i7}v)äþ«€4.Ã(I™ô–à #͈ó/ÑÇÃ8›ÕŠ`h4)[*™©µÑ ,wü—Ž˜§ÑªhÏ-~lÕsîÅuš–gTܵW°¬‘zB§Ð[RJ…*Ü®:›;‡åR0úפ¯ H=¯I}D…Êl6Ýì%o­ é52ÞT+Ÿ:+œ„rg1ЄO¨;°#8¶ ¡Û;Ç]¶D¬[°Öet9Ç=S{Çíª½'kuÓé$Ë8Çqš4V,÷ÙZäõi—Ö\û–ž†åÙuwÝÄItš(Í'· Ó¨8·||yùYÓªµìè²àiÓéΗoè€ÈëÒ±N’© £,ퟮFÍþ“>¤oÖ¬D6§ëóìÎD°½2?½=ÏÖÀ)g…9:‘cWl’(ŒÀu÷®ï[Xò¯|ÛbfÑ˃|«SRµà¾BéÃ9É=Õ)Ю䇳žè©ž+Ìõ)Üt]2ø™I—`n\$ ˆÝ88Â;¨yD  ÚQ°ÁÑKgƵZ 7¸#[sÏ\ýÉ^C?t6WU¦\u”ÄQ ‡׌—§x/]„À´¨Q€0Zí#y°áÒ´ïj&PŒƒÕÞÙ=-5t¿Gt³*”>ÏÄ JQÜJ+æSöW÷ÜÞ‘ <ô½ ©BhqÜc‘[¬ÕqÝ/|~à;®Ö7W¤Å1ë²÷²Sè«ÚnîÑ®qtÏû8b²VË\®ék¡¶hvìÖÕ£nÏ‚@"ORö­;‘(±â`{[¡Îv¢2ì±(5À“ ðÄ” Ï»Xž R@º’ꪪ„–´{¿èdZÔ>¡²rêEžG/¶Ea:µ”(òý [\/qòCé4û³HzçÄø-(fßû¤˜Æa‘[%†~„MHÝÎ ìL8Ú\NÐ)ü/oˆ¾+7¹SD½()VÖ=œ|ñl™ ͽ>Çv+l[¾pÛYç^œÈ€"ËÁ ê3žD ™MïΈ­¡ôLæöý×3·ác|”·¨7¨Dç;ñ¥ô¯jô$VŽHË1»M®ö6ë·é§“ê&ƒ=û9ûÿùΜܩqç‚ÎFÎu8º\GùÛüw†ÌDÊÖ ÝMðîˆ|ælp×›.Š2ª,œýóé+J=Ÿ¾Õ=›_äÖWGÚWü”E†ú²'âeÔõFb-Y×eŽÒß'‡dßÙBÕR–$Žl€ò×jC/»VVupÖ…Þ4f l$yp-oΤKIE¡¹×8Ú³j%©!œò¾±É è6_Í9i0ŽƒI7S±z1IÙ‹/‘àiñ%R:ñ%e?qî-3}û£å0$*ËÀFŒÐV|˜iæ3¯y"!ž :7oc(kœ¾|΄EZvùܺŸÆÕ65§h*nÆEJ%”ÂÍøñ»ÆÓpê ^SDÁ{“¤d xpÕa%ò¼€Ñ<ë‹©F©1a&FÈ &ñÀjþý¢å¬DÁûÈLgÌ™”m Ë5eÖó2àÜ1ÅBv]+ÒªÖöÆ…^ »4fJûáb’„¥Ì@ªL¨¢7‡oá4…0Ç„ÓDʺތ»SŒ*Âû»j)¯>Ë–P•;ʱ­¤Ÿ3:Qk±4sãìN€æ®µv^“ˆ>J¹ŸÔìº .3µuW[Áˆ9ƒ{î8ÅNLš‡E9íßtè?þšàünà÷FêˆÚ÷§.ŠË.¤ÖºÐ†ï'5XðÖÝ¥¦-ÞiÚ½Mïp²Ò¢Ñ[Ÿ9 ¬™ÿpªvͨ[¨7Þùÿ}M²¸³,ŽJ¯"è8}Ôâ7ß¾¹½3Á߫ݢ÷¼pŠv~¤,£531&þå Ê¢aÄ£©6mÏ’¡©YÁs*H¡ÃõºlŒÓ0в¾%x|Q’ž¸wi àž}{—†y»÷îš Nú¤Z —` ®ßg§~Õ•®š­ÏÖ /™rLŽUË_ÎÜMhi–>4‘«†áNµõ}«õ]뀸@FLŽDZT_¨N*Â{+Êt(YÆÓlX­kº‰Õ’ S¾|.:™Èi” ¢­§;xýtD"ݧBI'¾ò‡Žî3¿»r˜ã"ûuòjÓ¯’i zÝE—œ¤»D•„’§r&¥yéñç'¥£PñbóBÆÆÜç½ø˜ó×OÈO&r,ÎÚ©.„é|w_ö ƒ7¥OZÆ;¥]œûˆ}×Í?ÓíÆëOÒõÁyÉ<+‹‡¡§ë7óŸ9¥ä}¯íÊq"'rsØÙ ⤛ßÂïðû‘ÞÙMp; þmé û–Ýë]Ȉu×I”¾Ñ3ÿžC]j¯ÇNQW#z ÷„°ÑçBÞZœ*j5Á9° +G,OhXøµ%]h]‹ iëëŽ÷ŠNOÍŸàáRYx)œ¶ñpß²õxÎÚ>~mxzoaø£¹«”‹%ï½C&t÷î±Ìõ¼ûé½3&‘°=;¸Û•õ]¬T^ޤüBg6Ç$»çR.³ßsƒŒvƒÑÔSj㬞Á3£îŠ¥ã‡POHq¤·Ë1E~&¦(ÃcÉŽ 3FUŠÜ¡™^c¢Up„äì…D¬)5E ›¤§ ð±¡k©) 7ÎÔhÛ§#³ðl 9™BFöšŽë“µ—–×­ð*a㇊ÎSJ­þ' ì6|>rq—¾X”ØjÒ±s’D‘Ü/…D ìyLoa·¬×A™£‚ß*ý?#d„3Ƀ—ø§dËáL“}¬\ÉÙ W_[?¥Y4.6Ü,šè÷{Ý×j¥ª$â¤o…9ú Ù;éfb8dÿWÒà ¥i»ðPA½ú°²î¹ŸEðßoo¯þÞ„ endstream endobj 595 0 obj << /Filter /FlateDecode /Length 4340 >> stream xÚ½[ݓ۶÷_¡é“nÆbH€Ÿéô!µ3¸ÍØNóô'ñtjDI%ûœ¿¾û t>·N&ãI‹Åb±ûÛ]$­géì峯ß>ûâ…µ³,Mš´Éfoïfu6«Š*il1{»šý<7ææ_oÿöÅ‹¦z•IY6@ƒúü’fÅM6ïàÏp†?Gø÷îË›EžÛùW7 kíüø´…íéþî±GÏ-ò.½L=o±±í»“PÚÀ¿%·¿Gšà|wS”óvË­¯ÒÍÂT󲳕)±ßnÍ]èÍü5.ìY*¢øâEÈa!K\Ø"©Ë’úÓ=&¾FY½•9NÄ7þù°€?+üÖw4!Èßö;ÖŒvÂäÀb7#«LRÃNˆœ¿BB{˽ÇÃ~JþÜíP~ø´A™˜ =ÀÛAŰlOò¤¬lhnz< Wðˆ{rl—¸(×_)ˆñ=’ü ‹Û÷Ø¥uë˜-”óEf“"oTOŠT„ÿ%Å숲çÇ×/ŸÍ~Îæ¯÷7@é'å²Ò8ËŠŸ¿Ú [=|õ·ðU•5Môf~2 “€¢‚ßÒÞ´Á0ÄðVv<éþŽIøãç;QdÚ»¼ž5ISš·Îä6)M3«’*•åÿ Ý,|lª”w¸Ì*в$+äĽ" ¦³E•ØTOgH½¡U’»ø—L:˜@}€ª­f&© ãNªpQÂS {•”v2a@ÔÍÌëõ¥e`ßmÒ²ìƒtÊgtªH:ybJ;[é&œÐ6þ„Mbó…©Zî¶ÝÃAάS¥‹%׉5™Šå!F”t¦«È"‹þàÝ[Ä.vn²•®ã¤˜ôPõÂÔqò¶ßq·XЂڜ ˺ŽIt êzBr} ëMØž)˜¹U>7p†ç>+“:sÞ´cj‹œ£ŽdËM‘ŒþÔhĤiu%h¥t>&MCŠØñy:r8DŸ÷nSüá ÊrÊØÜB·[Ž„èÙ;p¦¶_Ú³¶îÃÈ™†ÕÔå Z·Ýˆ jOÓéXý›šãÖ;‘Áצã>UjÇ݆£R[•è(:/PD\¶k²X•€`1=n7UäNô«¨¬„f¢Y!§‰½Õë¨9Ï’ |CÔÀÈçÿ•rk¡[Mô-I!êWßöÛ^‰Óm‘e¸û„¹¸Äµî°­ §H(ˆ7$,:d%p8³á}ZÌ‹t@}‹¨úÒŒ÷­lFË–Ü5È© ·6fw›"uÙ‚Úö Ù3¼^-÷¸“¦v9É'©†EdSƒdµÞ’(…ȼ÷­Çc°Yß³‚I¤Öñ´¨C=i•¤DáVÜ̆/²û¶ÌA&šß²ûˆÁÐÆÚë'ɨA-X¤4Oƒ©J`—4Aüí·Ô‡ÿ¦Á—­Ò1úüeûžÜÁot"ÛÅß;Þ¹'jQŠ™“暥.IBÏ»ÀÖÙ²ÑdÑ$9%û‹cØò3¹µjô‚›a|'ˆ›ˆ ;¤ð1£‰"ÌßxFª¸âxrÅP(´Glº·ü}º Õ¼Õ‘üCéΞŸ™ýJҜފé+Y]†Ð˜Xí»å†}|.INè©€'Uƒ^g­‚šl§rGçßQkìM¶f«*wøöý£ÆQP‰®Ežêµ(,üÀ9°r®@bð´·ç Yˆ˜ª)h×ЇœmÍÔ¹gU‘du9Zh8›lPR?Éîo$Õ*8«À¿‘#XbÒÃÆ °_Y‰Žñ}Ìø•s‘"=ÿtSç̃c`«‰Ãjþ⦶ìj:éYÛ«+ëž‹qµ`\›&=èPž™ù‹lšhÄ ¿N-ö[ަ‡1;~$7¯ι%”ØìÌG˜vߊçÁg1±¿§ nxÏϸýØ¿ó!ð”Ó?݉¾MxPõŒ¨a¿W¬Ýn]¢L¦Î="ññ|1vÀo´Á­r¯\ŒŠOï;¨ø-’^¶lƒØ:/J81ßyIºÑ*<ÇÐmo4cÙü©œÓ¹$ïy9Û÷Té æ¿Ý‰.&”ƪóJÏj´„#qÚx†6‡Ï8Ã'±.Z`0TìU¬tñØ(.>o*ëPÙq6qü®ö!‘6ùН„ºŽ [Oš#¸ ¨ÆÂ­ö±å…ÃbÎÜà·8m¿ñlÖ3FužTõe QÅødS‹dª¤.D5i–]-D8,’'6/ a‘&)M6|I¿L¸¶öꬵ ù”“ *u=µÈ´È “˜¢D#SH©)j§§N4HŸçGY.TÚP-r™NË’€²Á£¦ÆŽƒOß üÁ‰“ƒI/íŽ7l@ZÄ—3#Håƒý;üD¬QÃGÞ“Žc×ítˆ©æî«Bä˜ar},láL“é@÷#Q9ùƒ¦„•×—ž˜k†¸½%GÇbð]µ³jgÍ&±Õ2œBdlÙÈ/bËqéAŒ œ+‡¾ Ç²TaßvP£ ¦¢ì“¬šó&Y1ÿ%³¹³Ùl-ÿ„-ùcÒz­8Oø§›ÌªìÍð®I}CÆð€áƒH;©’Òx‡8ƒHîšn+ÁÐï*fM É~îÔ+øÕUl¸&¼=ÙÐi¼]“ôx`ÇÍ'¿DSyÏ=iDL½˜²º$z%` ƒB''ó¿”@³ks Qr ,,%´eô©ÿã‚S2+W9‡V æ\âàÖµ¶ƒ›=(EcûD½lj"½rFG/Äè(f©/%ÿ ¶¿×ç},ô5M̘hú„ÐÏøãèØ´Ïx8Šë}GË¥½uø©fN‘øòÈs„ήä^nw#d‡n—ãW†icIŸ]ÎóèU©Ó—InêÀ½ªµYï:‘Ô‰qü¢ŸóOD»â¾+Àæ„ù)>[W˜HÖdIYfÿ“díxÙ„ÂØ•Dñ8[$í† ‘ê¿ç.wîàœ]8¶š±&bõª°N¿â~Õå«×ˆ+¡ZˆˆÁ¥“²Ãr+¼¬ÜH‰ò‰‡K÷xˆ%¶š+2ç ±Œ6„Þ˜ÒYõq@;Q5^ò‰ƒm’ãnðŠ®wD¬!"Ã%û«Ë¨g Î9ÌpGÒÆ;šú.!35@j?ÂC]…a{Døz‘©ÎIJ2µ‰-ìã—®âdd Ò+§zZ‘»~±5yÐÈ70ô! Ÿ\ÔzÂY²;KÜÅ3×ô”Hì53BåÀ“_ 5­q‚z„8;Ëk°„e´+Ú? :uŠåN#ˆ2<·ä{Æ|ùU´­óxhû#^ÍÔ—’r^%eêÜ•j¡·ó².‰a.ã/©sË/œÓ±Ìðz¯&?1òÃοRòÆH‰ 6ó÷÷›Q°ïh~Çr|V§€Ï¡”Ä€ÿþj®¸<÷ÒŠ"§\³—ís/RÐP>¦¸å¶›ŽQT Ï+׃\lÄ,á]»ÜÚŒ•‚Ž2ï-yæ–û±äéô¬¸ùb?mãì ½pbѤ„3/~Ýd’á®ê¤/¹ôÃxm¼BˆÖdO8æa˜2>çöÖ³Àè=—66O5>éUæøÒ.—AõqÍeIýH®d)ÍãEÒ†<ÂÉǺbP¼ý£Ðˆv­w•îaÒ7.&f¬¹tÏy¸¸¿+;_mŽîc³ÞÉm ìӷʘs5é¸^èp Uu[~[)ä_ÄŸ©ùJTà¨1aÝxáèÈÅÕ5|Al¤ä‚f«óšºØWRÑnF°íOI4KþgsÒ<å©´Vníè½áYqÏÖ¿±Qóž}B(gßè(ŒÙvÅ$—ù?›eáu@K©ÂG Øa¸òg©/ 7Gë‘oIØŠæà=7¹,/¾P†âxTuuÉÔ•°=º\‚•DˆnìÏUoˆï‡}¯ØaÓ³âF±›B$º;TÕzгÞîn×”°ooœ˜¨ºA-„æ>žýûn^· ŸvièfMS\¯ÿ›ºñMµxÖnU‰Æ+H"Ðæµ¦/«1ˆÙrÉwêM¨ØPÈU‹çœb{â]‹0{ú»™óÞ;¸±;MbÆÒºdBó¼zÊ• Ó$uS|BEÜàÁV1ç>†iä5ð‡æÒY,j‰\scT­%»Ð1kCÌ.¹m ¼¤LPÙÉqêK€úÞ‹¯«&ÉÊIM}<Šû´±ZÔuR:ÀKÜ=ˆ,¹ŽI:²™ærŠZ.néÅýöÖ²ô a¿;rEíò[‘RdÑ<Ñs¾©,ÂÒR'·¿ëœ¬Ìì*[¥!¡hÄv—y9J Ç›%ÿ–àyVŠÉ¨YÓÁtå G>ÊúBV5%µ¤ó+šg…..Tw7~´oñ’ÃÀ]'{ÙMáÊjì&×f?ëÄ·ÁËV¼Ó¬!“ø½ƒtL>¡©¨KöKG—Óä§· –û~tATà±U. dyOÅm€ï÷Р[¼ò…-vQ©vZ¶ßhªˆïÔ-öN¾K¾ `ÇüùÉÝMkÇŒÕÆ­¨seãå×Gî7ÀØ©=ääoÄN¯ò‰A,ЬÃtD›’!ø,1·î&ƒ6@«kW¤°¸žº™ßp`ÙF±>ü|TÀý †¨4púÛVïã™ÑÜÌ_r–›ßÑ¡ëÕFÉ8ÝüvåöÑ%£Ð¨VÅø¿÷»«æ#5v1цWN$Çfó¤˜Þí%íÉèÓ½Ö­oÌ$Wa`ÆÇ’i¦*¹Þ¼ãhfÝñ ä> }h‡èõ´Æ$eaBáGïKÿ›ÙÓôc:Mžk?y’o?‚9h]oéêCÛ?4•(®°?FådË$­ê} Lüøþ¼‰Þ¶Ë oý Gé{²ï»Ø™Æ2}RÕexWH¯çÿ?Eß"©½’¯¹"›_Dû¹m!'@Š·[ÉK¸C&ã5oí¾yàÖà2ÀnîdCs¨Ùð®S©£û‚Ð'àò Hh9†\øòð{µTŠ“ÿúöÙ¥÷Íìendstream endobj 596 0 obj << /Filter /FlateDecode /Length 3165 >> stream xÚÅZKoÛØÞçWÝ”F ]8Ž“L·®íL“.h‰–4EA”ìx²è_ïyÝKR¦ìdPL1ðˆ¼ï{Îw¾ó`¢Ñ|Þ½x}ýâåÛ<©(Ì£\®oG*7¡Ñz”Æi˜›xt=ýœ.Æ*ØÂß²ÿíà¯Þ`S¹OŒÑÁx.¦c_à ÇÔ럸ë^.±çßMðz‰½´L -e¦ôBã>­¥s7þ÷õ‡—oéžÒè,LÒ .AçÓ½ˆäZ£‰µj41q˜% Øà ·E…‡ÞñÉýVµÜ¢Âcî¡}%—Äí7øRòÀ…´ÑäbK†)®yZ¬x!šr7ÖYPâcòÒÞ¢ÑD%aªðs¤bœöUä±Çåï†înUGþêK¹Gléq»ÒQ~³ÿǽ2AÁ¯t/ÒÀ-*d[qï- FÚŸr_³—†»%2Nº:tUõx"™á´•ˆ’Î5Ç“8J‚3xÁ;îJ:-ž±–ÓÕ·|<Ür!’‡W‚Ô-6NP$ `ÂD™0¶9‹â•AjÁYÚ0Pù‘$A‡„—û¥(x!rHÐ)y>I2…A0@?ºUÃóªÇ<ð˜";ߣ€Ü.¢ÕÎØ7] Êy¸wÕ¸E “©à„50_t¦µ·¾-ÐŒ–+o?Ú†$±ÌİéFÍÔéï%"&5‚'B`ÖC`¢Â,2_Åöà¿0mÑùñòÝ‹GØ 3ë'Ú¾Ñþ ›L ·C»ªTýÑ]­›‡°>Ø:@t&qpMâoJ@µd)“IQ‹×Кß[¥;yMô{mO’í ¢,¸î¦ÃœhFsY‹¬7Ø‹úV ~x‘…hoðGÃÅDT¤Ã$Q}qh@ƒSÀÊšŒЪé€~Wd,¼ÑEªzÝÝ‹ˆo‡ðDø+¡ç ^*ÃKÅt)ü•qnUÔ^Œ[n¸“SÍ׎nh}FA®{(ˆò0Õ±Óæ­ˆ»Z!êtì$s}ZRzgN3İy Hó ÐHr&®Bøž)(J`†éË—.pÏî‚ P4Gs+Žf€N ’H¬Þ¯„³aà’†ŽH¸uZW­OêpYÒ/ß*P}ׯ'¡ÉãÑDÛxV|ŽVÑÁ¬¾ à1k1',â‘ÈH§x 'F@Ú4¸_00è¥qÇÚS#CN®j³žÀkÅD2)é®Ôê\,ÇT‰ÊÞ¯¸…½òbÌšD³ž‡Ò€ü»ðg¡— s›œù–»ÅïΕÏd«¥Ìšò=;œétLA´²ðÎâI LDš­Âj®¸g…_|ð»K—à ”hdÙ¸3U] ²[‚PÑ«¡G€¹ ƒàèÅzÐ_dq¨lÜ —×Säÿ‰›Ô“$±_Ïj¦å·ËjÈÿ{ç2ëŠ̆v=ãƒfôÀ8ísGCæjq–ÿÏ1ÜP¥ä-­ã0]É÷§/Qr¾XF€@bT’…‘­Iö…ý·[–$5ŒévxIy¤KöuŸÁ-3ø-:á8²É+ø{)§”¥ªàþþ.Îä’‡‰i4m¿‰Oe¥PÚ·d€¼ÚF‚)Y?ÏeÞß$ã:´<å ´…ëfq'4Iã(xÓÏ7kÜ¿räE±ŠIRÈ…Í3¶mƺЩòY”N£'õ‚cëõ¨DaΧÇtÒèeÞ1Õ…HéF¤>ÉW2v*c~;~#ãÖ2îùu>“ÏèÃÄt†L4cÑMY¬â¢Ø|#*ŠU˜èùl–ÃÃ4(åð–} c´‰æP/ S;¤ an2^éÄU+P$ëŸîÙ3ÉÎ˪õxìè×Õ&4‰Ô-®)ê[ìhí²n|êÜÇA8z&½”í¸í½¯êÖÎz õd úZÓÅšNé÷à|£.¶cH"êqŒ<O¥Œjxß‹zÉq#…´6MûvÇ5Ä$øe)Ǻ,!'!ˆ£ãI­ÕÁÕ¦ÃÓkª[l±„@E%J˜‡ƒªMl hÉ%ÅØ¿&ÉsÕ¡é›<¸&ÛKƒÎ"1XsAæô½Tf®ÄÄŠ­/Z4Üóñ ÿRl¨ ù‰×+$&ø¬Œ=TŸjqž¯Ãâ±ÜÚׄ]4Š•l 'u-z.ä9žºÊ#Q?˜¼Ú´G§œ–l~WBÓNŽ5e[}ßKÍáZÄ«†pÒ£UZoÌî{Bœøœ2N‰…K„ÖÌ}sX®Ë!ˆ¨È„‘I0ò³P§Ñ§‹8h™‚˜½ %% @)™(‹›D¡_ý!϶ –üì ÒY8q÷üi&mzP.Ša‹“ÜG0`‹i¤ƒ3oÑ$JÀu>`Ô6ÍШãÇF=$Lˆ4­0ù,ý"•UâÉçrx™PE~•¡ò)ÊéqhKrÓ¡EkVh]y|ºüø#¡+ÄÞQšO'¤*¨Â8=¨ºþҌґÇÓ¦ ô¢UO/PV¹ urP½:¥°ê+~wÈéüxlvÍÄ@|€„tME%õÎyJþ–æ¸ñwª˜Cÿ[þy3XäFß²º«0Ú¢)Ÿ¨ qãÊsgÜÅ·4ÀÃÕ°ºK÷DD»Dw½ˆlųOî“GçÔýàp× ÚyKç!ÈäO"®Ÿ†òø$Lboj:^ݧX%j•¼ÖDê›…ËE¦ ñ!r蘅x§²e«<ÿ % xþXˆ6}`¹ãŽ‹Sþm™Ðà±j™bß7tg•ÙµÙ'¡jN0t%Ñù`É"¯®º™Æ`æãP)Ÿž_qµZYO» ÈC"Ëó6AÈl†%á¿zJ=Ö}zœ2!éÔÀ™l¡Wm‰Æ<Ü÷kJ\(ý(’¬öùàªr[ zV ÜšÒnz¼ÚùÏþ1³— ¿¢ñ»{öÿ¡Óá€<6σ\@­¾©ô¨SO`ÕÌ~žu¦ÈjÒø:iì¸ A„Á NKPwÂc£y;ÎlЂ«ÍÛ/ØIZM[ç?ì¿&?ìl<ˆþˆ²Žbcˆÿœ í¬Øö?šÑeH$¢bt-˜=ýüŠãMXCƒ(Ò/è+lIL¥6¸Xvߣ6c»PÀ×Rÿ"½¨<é»t5ˆòA(à7‡ØÀh_+ƹx­•ó½‡B“Ï—öÓ·[ÃÙý³‡©/ˆS±õ)„à¼a„‰ùÏ?ï±Â£(øÔø\ Ó;ð­³bө޹¤»Þqæ€3¾½'ÐWKÿ¥˜FüPÌ(£ÙuªzÒý¯nñ÷Ú¸ÁbþC%õ»B<^’|ˆ1·"õuj Rzj†ÊA®¡ÝzæoÈ¿³½³âÄÛçÎË~7ü=Rö…Ao\²V໋Aƒ1®)m(r4…^ µ±ÏÅ":(õѹ2NÔáû„¨;1ÏÐtûÏIŒùþPD·¡ˆ—l2k¿™,ΆíõìúÅÄPÑendstream endobj 597 0 obj << /Filter /FlateDecode /Length 3312 >> stream xÚµZIsÛȾûW¨r XeÂ蘪dY²Æ#+.JÎ29À-q,’’²=V~|ÞÖØÐt%9€zCw¿ï}oifG·GÙÑëg/¯Ÿ½83æHei‘êèúãQ®Ž‚ iaÜÑõÍÑ?mGÿº~óâ¬È[­|ê}cP›ß2åF*™}…ŸÍ#ü¬áúüÓhl­IŽGccLòŠîá*·áw…-\#ïÒJçI‰•åb¶•‘æpM¹þ 韥üóÈù¤¼çÚ·8Òh¬CrƒÓ¹—Ob»å-7¡g|ÔÉö,“­èÞ»û2–%KsïyáôXfðɯ£ÜÒlg³ªÔ%'Ïùá çÁs›ârVÜ g,-pƒqÉ[êŽK§&ç\ý[æ2(Ô™Rð¨ÒÑ8X›ü¦ŒÈ'´f«M–j§£€·Üθm{eF§:-AhAÉñR¤®Z-³ÔªØrÒ7–‚±´MXšÓ,úÉéV6+Š†Ë½“í‚Ï‚äïÿDá†m¸xõ¿u4Ö…MVGceRg þÈÉjñûêi϶,_•ˆ¸'ø¾ùDãQA‰•7 €·œÂ| ?W[B(Ëštà„³Jÿ"{ÓÞqxv¶Úñ7¸BB*/ †sÀ©`íô(ŸšË ÛùtätRÒŒ¸Á wiû›­±®WxÊš4·ÕŽ?ï×¹ØÂä½ÃÐc= -^=À{•´ ×i(@´u°ÜïnÓ73ª-ìzpYrùœï"ž%¿¿bøã#jöiþƒHe&/øÖQÄh¬œg%¸êgìx _EÊë’±²º‚Ææ+™ÎûM>Áq—;FÖ¿C$SWDè˜@ ;—ÛÀÊ$*˜áPP§™†Æ¹É›…h½Oá§M*ƒáB”ÇÕ¶$ˆl"V+8¨ŒÎ¤øn5‚9ßl°¸b:||KK€.7ížl?RFÚ”–Ýå©ñY  g“S’ï ­“ä€éÞ‘ ÿ×Ï?±&¥ÀÄämM†A¥Bx‘^ë<ÓJYUxë†`w¿‰ÂóÙ†‘§ Ÿü‚7fO@NV!‡÷Ü5lšÙJOÈo}Ò`2Ý LkUrm£ª"ÁÀ¾Ÿ€ëòÓ(9„VVz¿¨뢂ǫʚbƒÏ‘J@vÇ#í’eÁ(tÙ'3›¥>SµÌzˆ=¤z?­ƒ5©ÅŽ ÚeuÜëÏH÷3œíF´Šeí|êÐr¶d¢Öøãž÷ÍHi¦kè›T‘zkb‹UdœÛyE¸0›8Ë?ùù¦ |¬ bÀÖ‰I虄R`ës÷½­ñÚÕ[Cì²ÞVŸÏãç'òí×3/Ìk‰Ž °|ÎÓy?· Æ{ŠgGk€»hé̃뾇-­‚Æv¬ yw·e¹²×Æ‚s@7A–* ×tSròRÎbP¢¨î·Bد'vAf\å,c«Ú´Ü¬ª7èUhŸ¥ÁUp¾˜“;ªjÏyLî#ˆK| biºŽy/‚½×uä5J Õ7ŠK­³udI»id+Ìü íÜ“fØ7Í`y[^oêË`së©p JðµàLHpý.©ÿŒ‚\ƒ‚\B+È…š*È…J["î¹ÐvO«ýŽÙŒx °rKŸÐè;—ç|/G)«áù»öÏ@ämQHMÌ_Ä8<^“¬ÆVWQZ&+v`¦Ûh<4æ"¨¶R‰¬œƒ+LMd„˜*DZsŠÙ&!‡­ˆV–X pÐG0%r?“àlþ!:Cq0/IµÔdÊõýt‰5¢iÝØ,Ú'R®Ê£får’AÒ1Nõ&†° -RàÆ6lS[§N®8ÇRö2ožê"Ô·¾¬ ˜&•®Å¡\ªÛºt?èSâçÝÿ¢Šš(rSÉå„ï5ƒššAbíÛw!µóMu$#y,þH”YäÉé”йZDš„ÊÓ†ð˜0½ pL\Þ’0%/‡å'U^äiäàF€ç´žG lQôoôb\rZå°Ëáq7µ€-¿ÌcÎïlb+ÑLA]TÊíšV56÷ÉÏ1œÄ56x†ÈÎ9oÂIÅ܉_È'¶Í)ÁÒ¤ȦáœÐcužŒ­g{L¢‹¦ x»>‡k6hk ü´µS°“Ѝ^¯bÕ´JQΔí4À¾%Zï9Û»>k  nÌͤÃÌÁFÅ·'XóœVžÞw”‡´þ[I.êø’XmʼnÉ3µv‹†":ÔÎ?Qøô8òf0ÿ½éæØ5`âcdÔèóaqÃì÷À„¬Ú¸—M‹è@®çâ ÷:‡`>œÒ‡ ƹÃó”:WOðã†B•†\udA‰™%nW‘:Ž"Öœ<çÆ/gl/éåRº]S˜¹(7\|,ÅH{sÙ¢[É]sÎH üuºÕü©÷¥ƒë:Ó|Íùó>û¤aÙ&4%ö•öª_¼©5¶Ù–²‰«OâäB„qÌþ0óƒ£]êxì/Z—:D~“0‰¶¶s–ò1F|‘%Q÷+¾ãçË?Gurr^.Ùµl¦½* ݋ƫK[«““ ö¤>’¢›Í&îuŸ"Mé•Vf¨h)Z¦ÝrºõÛÀ¬`Hú†3x¬NÃ*RÓ¢73Qç¦IL ¡‡Å²Y$þ×þÌ6cV#Ñn¸¾Ry˜ÕÚµ˜{Ÿv¬¤o'þ0*õÃ}EÿñHêfÐ ¾b87Mû–S–hÌ:nTyÞ¦yí¥œka/ªã° h‚ BêóÁïeÿÙŸ.?œ‚|8Ø6tœªàŸ€rÓ ˜Û4m6B@=Î÷ñø{þú9ç—E–éáÁêÊR£ÚjØuÞ:BÝym$°í„¥¹á·Ó*‚Ch¶Ý¨~Ï_Ç®ä-:X™’ÄëFŠsk j1ÿ õ¬Å˜Í‡v¿D,-ã†ìÞ¦š}ë&Æ!Ã8S!KRÿgVÙe0¯ž‚„ F£Æ´ùç’]ˆ5¸l öm–¨»”Çô.yYršp-ÅÇÇü '! v²Š“SÒàrö¥7!ŸùÔÔ©›þ\¸J3³ÿô×ø3Á׎‰9S Ú{/SîÏuaU7²_îEHMížÌÇ1…iÒ¢›Â|xd™¡Jjì ÂB_N3:?˜f\'vS¦xÒÊžÒ*mR•uŸËrƒXqÀ h]3g™ís˜Ã‚BcF[D`l¸Š|þ¯-~Á5óOÑÍ¥tü]5t55ôµöü d×oð[>ÅÓ®¿E§ÞøÃý¯@Û9°FÎfDÀ#άoû1Â6@n(h¼×‚nœ©Ù HЯ¢ªL#©P’pÙR\åxÁ¹@~»’ýƒ·ÿo‡Ðøð¿YM• ßq2÷ Ëí83õø^ K ÊŠu ¥•nCËgáÉ«ž^?ûE"žêendstream endobj 598 0 obj << /Filter /FlateDecode /Length 741 >> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qØmUªÕ^!1ÝH $úï×ãGðÒö?ŸgìÁÜýxÙLTÕîÌ$|äìÕôí¹+Í$ý¹=wwY[ž¦~S™jœíŸØK×–3°ût­›zx°äuSΕYß“´y¯OÁ>ìþÍü™”Ǿ¯ŸìÎõa¨› û­–õ=Ù*ûTenÙoÓõuÛ<1ñÈ9·…¼©Òö'}0½¨aÓQß¾nªî"‰í 0’Uu9\Fî»<Ú#ÁâÍG?˜ãºÙ·Árɦ¯v²º§ò!˜>w•éêæÝÒfç6çÓé` ƒñ`µb•ÙÛ–ö ~m†M¿·y%½}œ “n,HYÙV¦?mKÓm›w,9_±eQ¬ÓTŸæZ±ÛÔÄRù_¡ŠVÁR†Ën±-`2ÔT˜ÛBXXQÁâ` ‹å Ë“IŠF\ ‡Bµ¸îbu ’ù¨¨ü»í.Úy¸À2ŽÆRòXR xHXÏçÀíÀc®Ïeg·:¥®'™ˆc|0NýxqæÇ)Æùü‘SÜÖÀ΃qìI&À’¸Ð'œ®gÀ΃LÇy´ º…C ÕðœÖ:ŽóÆ3Ç¡;ÈáE8o"‚A¾ Ç'O©ãäÄ‘ÀäÃí+Ý6ôKIט'„á;¤ž œz†à„tFz¢Kp&q"p¢œüBCT/ôŒ9ñ¡!ɨ~Bü }ÒéîRqÒ‰óTÂçFIŸúܨ™ÏŠ|nTìs£Ÿ¥|neEAºxwüÌçIå·yRÅmž4¿Í“_ó¤å×<éÐçIÏ|žtäó¤cŸ'ø<é¹Ï“^øO©ôyJg×;s¿|÷KÇÛ„·ôúî•箳O¢{pÝC‡'®nÌõM>µ'¬r÷˜ =Á?^¬¡endstream endobj 599 0 obj << /Filter /FlateDecode /Length 2777 >> stream xÚÍZ[sÛ¸~ϯÐô‰š±âF™éƒã$Þî$ÛŒ/Étº} %ÅV#Q]²qüç{. R¤¬MûЙ qßùÎ…NGw£ttñâõõ‹—ïŠ|$SQ¤…]ÉB ­ÔÈY' mG×ÓÑ?“óû±LÖð›oàÏ~«|4[OµVɯÐ.'cå’¯ÐB™UuÂ]àæ{Îñ^'¯çØKÓ”8ÑÜØbcB7$wSùÎíø_׿¾|§u¼J­r‘¹6AëS…^¤~[Ý+ìQÆ£O‘£SmEže<Á­§ê{•Ò"ƒ–ÓÜõ·±Ê“´«ø»Äf…{ÜŽO•-’ëqn’Y¹ä»ßS›‚€J¥¦ü™-µëT8—…×´ÖS´×cD*ë£zWc+“)­uVÝÁ{ó´î¡TÁ(¥ 4-šÆ^ö)šV׊9_­ù¨µJ‹š±ˆw,ÒFúà$àÒZM—}8t"ÕµÄ+˜´tÆ—äicT(ó¶úæÏ}Ò¨ËjéñUmQ&#¼­Ö,ϱíРÀFç8Åòa:áõ}Öì”ÈŒkDWñXÝÙû!}¿Cs_íSÜî)#_R($šùÛì@sõ*¯`5)†Æ„výç+TïÐ÷Uwžf?áݬòè,Oxö³]˜hí”?e5*KE.å1fóGôÄýÁ„ü2ðœþíOzâgù“æd´0©;lNÀòÒŠ4³Þ~¼+»Ä×Χ¬µßXMÞ*dQ4Vqª¥K~—Úœ±Ìùо¦þõ¦>,>K•ü1÷»¹÷çÉè¦ö✀(6(>ùî÷ÿ—^¶Ïdl‰WÛ’ðèhÞ˜€Í’«‰?嘛{à›[aœ sž°ˆk‰d"³&H½d,ŒµAÂkP{õyP]<ÐÐùh ü–»¿áúïnQÍLˆ ³n_ÞÌ=ÔÁŸ‚W;ïþV–D…À¦nH/µÑñÚ”Ž÷"ØÍl<×üÞNyðšôtÙœ‡½…Ý/. ö¿þý w™ä=‹Lbóæ HîÊ›¸§HM‰ºÎ©ZôÂ÷%n9#ñ¼]ðMSNˆ6žtdTÐ 7©Àdÿˆqiv]±rÈA¯( æöÞ¯ÐGaÂê1<ÌÙ^€¢îÌïà‘;Ï{™·@¿S]kš‡ÑkS÷d!äDo*LÍ.½dÑu‘Lš%ñâ" ʈVÄw?³ï!·8ò#b®$„.g1ŸO¸ÿláuG(®j Õtµa¹-㕚÷Íôˆh±=˜eÙy“ˆ0uâ#3a ×g»z ZëÚ8ß^_ ÕƒH¨9J±˜éà@¶q Ÿ Ù0˜tæY hmxi0û% ¯Öˆ0L0€ 0€ý ”m¾Ú°5kàM”X‡‡¨!KnêÇ4ýlÐoéÂÖº¿FbšõBT§ õ…ó“H)ò'™Ê£°b‡ùÂáQCÐ~ÂíúX—¥ï}sÁ×Þ°ÅAp‡P¢8çnM¶¿ Q Žº©]ç>°¾®ËŠÍWëy%è\ÄÊÞá.)Ž\lX`õ…g¡ø(oS· g³th ¼ocðe£niÕ€9ÐS{Zør «b:Ë÷ Ñ #+úð̉2ê`8ò2Jy¾ï ɸÐ)í¯[Æ7µ/ÑÃ5~ž\ùRGÄÞ'HIDX)-TcúàéD~¼S4zÈ)Êg":dôC> M> q-%BÜЬÐ~é)ÈÜrX³& x!Iu#)£Ì5ò ̤ßwâƒY˜dØwj©Hÿt°ßjÂD4.xô[ÃcT¨Øð¸›M„õe‘Úi¡2ÝOlº[Ò1©Žriƒ…2ÜÏ#®}Å™%'•y™X±ŸTÖd®c2W{Þ<Â{‡ˆs%\ƒ÷CD þPµäǺ´ñÊõÝ’PDø5À£játþ\'™“ÏûXÊÄǾ,×üè_¬"lA)Dçê0šðµë”dÿGé¾O.N)ÐðiÈ€ *Ÿ†ü:ÊkÖQ汪xŠA6ý;Î&.0NkÓž\ç&Ð>§ägÃÝ”Ÿ°è}¼?VŒìä½ pöð(–r›VÍúC R8ÞíêŽüJSðð‹ï wQ»r]8¼l,#mkâm\AY–ݲ ñ6XUÇhë$²ädüɽ¥„IjªU ÄfÐ_ÈÌ ›»™zm¼ Jr>²¬Ï×ÈT³~rÖøØãƒ%N|:aŒ“{R˜i ˜¤¢$L·MASî¨4rë1<›³]}ösC³×p5Ç&.ıer‚ôš Ô o:žxë,<äÿ>íiÅ·QvÍöÙƒ8*N;Ô„r|W­¢3¤¾¾¬ÿÕ QÖ£é7l|K2¢’™cHfQJM‘WdØ1apµöP‰ºPíØ!ÑŽìèÛL—ˆBà”GÁ•çåÂ3y…@k i¯:åï%+¢˜­Ú;2?O»¼Jûå­&JòiÒö‘{Îú ^Xð”æø Hfª×b2¡³g'ŸŠÁBT8°â8kÉUm-yËZÂw·Š{jO—s¤@Ç> Ÿä`–_¸¯ñu®±(ˆàÈ¢®zg“AÂp>AüJÎmWT†o](ø ѽgjŒOì &•³I‘ˤm/ýaoVµ*¬Æ2®ðJÀÞy_0i¹Gè'àk^ï’|Aw‡=¾Œ¥)y²ó9 I~ •éž½a·§nlë,Z…AkcUø4ȶ|1=ŃÛÍýLkß6èbÒg­åàb²ã-FeÇ×ÖÒNqÍJõdípeE"?˜lßj4üÔ’þÌÍÚwdQT§œ®‹øi–ô{á÷£Àd¸Öy´/(æ[–|÷fYå:Š»ÏWGd. ’ïTGÊ”Mª*¤ØøˆƒÉX‘R9P)·áCSê„Õœ ·Öº_ŒÍ3-@‘Ç#A럭²J™»§B Á "K;(¸¾ ³r‡´´H—¾Oœ ¢¢Æ*|ïÿaC…»®#chˆ‚¡÷¬ŽèCibÃ=lz=¡rò¦¨(Ú§x‘6!\ŒŸÖLRŠ<{î eÖ”¼¢ÿψ·Ë¥Áº¶BèWø^»S¸àQߥ„#jòÇýo„„U“Ja]ç£høvxÁï·ÿòû!¿µô2_}ûÎû«·‚¹4GÌr‹ƒßl5Mõs™«ÐæÏÿ Ïñèò,¹ö®ÛŸý 8¾¥Gç¿òµ‰Š³¨Îç2B4ùßYй9rA_ÃX” b9ŸáaïW-—øuõ̆ó­sHã‡ãASäì· HÜzâAåDžëV¡ëgÃÁ×á v¢FfóŸ¥4“Ë'Sè~X¼½~ñ›™˜3endstream endobj 600 0 obj << /Filter /FlateDecode /Length1 1540 /Length2 8271 /Length3 0 /Length 9290 >> stream xÚweT\Ù.,ÜÆÝ]Bð`ÁÝB 4Ò Ý[p‚· ÁÝàw·@€@ÐGfæÎ̽ïýxë¬Õç|U_UíÚû«½V3ÒjhsJ[A-@ P‚“—‹G ûJÆ@G‰—ÀÃÃÏÅÃÇÍȨF8€þñ`3ê`p0"ö/Ž, D<Øä€ˆê+( ìâàåð ‰ñ ‹ñðøxxDÿC„ÂÄr@W°à@ Á±e¡N0°-â¡Ò>,–¬^QQaŽ?ÂÒŽ ؼ"lAŽ-m¨%„ðø¯,¶„“7·››ÐÎ…ÙH²rÜÀ[€‚¹‚¬¿Û¨A7Ç…ÍбÃÿtiC­n@ð`p[‚ ð‡ ˆx¨ÐVR¨; ’Uÿ$pþÚ/ïßéþŠþ ù#hi utB<À€5ØPWPåB¸#8@ˆÕo"Ð}ˆºÁ@‹Â‹¤5À‡ÿên ;!à\p°Ãï.¹§yØhyˆ•,ÔÑAÀ±¯O Y>ì¼÷ßGlºA¼þÁÖ`ˆ•õïV¬\œ¸u!`g’Ü_¬ö?6 ÈÃÃ#,Ì 9@î–¶Ü¿‹èx8þpþa~èÃÇË ê°~hä¶=¼°½à@WsùxýÛñß›—`¶D,@6`ö?ÙÌ ë?ñƒ ``w€1σy<¿Ÿ¿¿Ltf…8xüCÿã ¹µ•ô´5eÙÿnúo·Œ ÔàÅÉ' àääðò „>ÿIþk%ÿŠU‚XC¢.øa§þ³h׿”Àò× °þ;—ôAÁ Ë?‚7áä±|øáýÿ–ý!ÿ/µÿÎòÿ!øÿ]“‚‹ƒÃ –ÿPþ/ÐìàñçAÃ.ˆ‡yx}˜ ÈÿRõAޱ ÔÁê}JàÃTHCl”ÍÉ+ÀÅ#ð§ W»ƒ¬4ÀKÛ?•ó§]÷÷Ü9€! (üû®yˆâáùßðYÚ?Ü'ðyþá=ÌÒו‡XB­~Ÿ ƒ=°Nû ¼x¦Ó äþ‡ Ü\(â!ðСÀ Ãþ}´¢ÂnàoÓˆ÷AnÜ  ?€ÛÚá_^·í¿ (€ÛñÈûà…ý ¸áÿ‚…\þEÜ®ÿ@>·û¿ €Ûóø_ÍZºÀ`7Àº|؉ÿà?®Èd‰=; µ²« jº,—¦tãÜüÊ'€Ûóãí¦þ†<…ë¶f€¬Ä¯Sþìˆé¶É­ˆ_+„û|÷µö¤<öfËÞ"ÄHg«šY[¬sx>¿Ú‡«ºðm©´¶™óC¬lH¿×iõ¹IM°’q8ŸlN¥î¾”`ª+½(±ýŽÁ\sÀ…ƒò5*ƒ\D„%¨Y:µ¹T¦Bzb²E‰þCêëaÜ3…Ý_ºù×zæŠ8Á«(÷öpTÎR÷$“w:„žª˜&7:äɯcXΚ‚üY,àC %*;)3×½¤?f>(½¬Îòy‚U· âUÛ‡)Õ@ pÉ׿´HSpMƒqo*¨àÕ¥U£»WqèŒ7£A~êãt1Š”‰zjá;‹Î;!ÝLV>âd¡´çÎ{+œ‘3Úý·ëò1ž;ÃEk³ö¹ÝÞyE§ìä… e¶Ížákûƒ‰‹çüG_n¼>5{YR2´Ãr‚ ÑKF3œ4¸6k¨L·bæÙ«ØÑ¤H̆ØkvÄ¥blTƱiHÝÇtÕÞ« ÍÞ(Lg¾ˆhûˆ¬|¶÷½·›‹fÆÇcéö3ÑÞ¹Q蛟œ–lqMqnÄÑ}dæ³é¾S÷ä0N7šªa©ã_›2ÚeÛD;Þ+3)±q•‡'ÍŸ},#¼Òõ¹Èé³oŽ·ÛÄF÷?ˆ šŽÌ3­¾‡ ^Þ"æg0*¢«övíCnÜ Ã êæŸþXËçÔÖ ‡Ç3àdZíZ˜"™tTP Ý¢n}'“UXÀ½¢„û" ÉÕ-y-Q•VïñáÆòäÔúòàÚŠù€rS %Ô¨9‘~C¦:ÄÞÄ‘`ÅEMË¿d÷Z§ê—,¦Ït¢õ–›ð(¯pàqôÎŒ½!ïZµX?8­ôŒ²"Ü "”ÇìLqI¦¨þ.õ +õˉxÔ>J\·Ïg(g*gß-*y«ãAªtþü„v»œ[jk(ýÇNO™1á'el‡<۹܆ʧõ8†Vâ*âOS2@â ¸£ FòœCR½<ÊëÅăÇnÒÜ1Ù ¤ÊeØi{}’‹X”ýn6\ìõ:¦‰Qmßl(˜š0„"aI×i#!ÓÖ–/å‚îÐQc‡±¥* ‹Q(•…HeÇJÈ›³߈• ý¹•9KFO>iÛ!÷¦ðSʃ*ÊØÑŽ’‡Óog¨Ä.ä7£TnT (\‹Îã•„tvÆÎª=*8<‚ |×½©ÿiÛôb¿q7…b¯Â؉„â8«½o¹G¼à0椮5ñ‹Nm¾‹ÛÔ·é{¼€Vs"‰xnnœ§¹iWÅ¡¦³¨­R›šG4^Ñ i– Õœü <‚’HÊ®[œ³NwNVüüõ°oÌÏ‚+‰XĪr‰RDSñîJÉ‘ývpŒÎÊÚ…k^c¶Z†L¡ëAÄʨô“úk]JΓhŠßžo0 /&©/ðä2ç¢ ^*€¡,½ñ­)*A»µVgFà³0S‚þd#sÙHI2IB½™&…¤RùÚèñ1Æ~b¨yˆõ•SóôçÉWÁ!^×Ëk…Á®G# Rå·GÒR¦ É0:wšlꚬ|0ˆÅ`mR—…yÖ7Ó™ ‡°Í@ñ$&å`>’Ö]éäÎV«{`Ôó#6¬ÔO§B÷Ü A³~]¶ïø_>Y#Á ëH+¥äãJE/†&õ5I…sdXèÔÑÅßæ¾,] º79à.Èb˜`¹<ñ*;´#ý!4ÇØm8œŽ ¢`Ö ¤”D¼%AbS»2ZáŒø  ³áH¬Ô¥ˆÔÉŸºíB‹Ã­Zel=ÙðöÞ—Š¹œ½À@­³_ÖO^Õ†.iEÚøÈöÓªûÚOÜ8•=}wB‚2¾ ÙÁiâ®–8lÌxî«:ÃÀ+=´´xéŸXºwíq¶í*lºC‹‰#§^H~Lµ·–”„V[êks“=ÆR¥RMšDsœCD×N±VK¡ÌÆõz²áŸ>— ’¥’8.ÅÍrá÷&IEé<"ëë0ÜÍŠNxÁ÷ÑàűÁÁHWT;‡Oô‹Ðxæ˜ß†Í•5ÇÔE%Í´'ƒç͈ˮZðõ‡žw‡oß© F‘bk8k뽺ؗƒo·LA/rxžÙèMŒ"³¾, bbùAÖ ¾ç¤„¬Úò›ž(qúâzÔw1­°²ûFû:·u†þÄêÒSß'ÝŽ—J‰NôkƒËåR ~ïW¬È¶“¦ ¬]=}[8À‹ð¬RÄÃa>"ºÍ쎞[¦ãí2Bö|¦yqB- ‰'Ð&w%+èõËÂê*h7«n2ϲ/ºe[+’ DP.q9°0Udæ˜ýÚJ0ó÷¸älRÖmô”šûèVˆQXkYMÛv EE ]]MÐ6õ¾š¡-Ìf¾| ØÛJ¯IÕj Óûq¾úшNé´Äà©j¨³ÂÆËAdyå°I»g)”Ÿu¹GGÌëʵ ÂSË |-5UÊ\bãÂ^Ѥ ë+šIKþx³¬ þ Wüw•æ“ UyZtSºõ¤$¿5ÂiküÏûøôôr ÚŒë6ÇÀG{ÇÓ¥‹•~s$N[ñ¢9â)2øM?Æ|6ÄNœÂíî½[-G_1#¦„”ü°5À®®ËMêåU˜Xs—GuU¼*›¥ã&û( gŸ÷ƒâö'³wöK2þ^ߨDߵˀ+¦KO8%ÂcÒüø¼E²ÂŒxùø »·¿…´Ãñ;·ä†& ‚_fùØ +,0jTõÝ #gÔÈñu{"±ƒTâÃ?.Æ*%vmöYD¾›Wè½í*›zÙâÏ0Ò£‚î<מZHß{ˆã^ZRaI/]fÀš£1üɧvRà–§<ï<Ð=¥U§Z™\‰l½Ð·n¬ÁæµzÙ9à`†ÑÓeÈÚ©Õdî9Lb¼Å¾|nü“¯@RÓÆkׯ,ýbrC’Ê?ß·õ<ç$Ô(j‘¥„òER‚¹ž;=5¹"ãÈØ,Û°Æ…ˆígÆ£ÎÂ\´ü'MšÌ äÊôA_(D19ã·Ú,OEóÊ‘âB¥°På÷YøØÛï)_ˆ@XIˆ½PÓ{¹ð1Ôi:Žœ dv¾jX°ðÙ +4WîáÏš1Ò™d(PŸkWŸ*¼,"ÙÏ4r¤¦%£6!±$ã-¼È¡>Ò¢kqãÎP.­‡Ò¥3î±Ì;b’ËË‘¡ÏzºÙ_Øÿ½tA[÷©ŸwÖí•…:_§ 3Õ “‡Ì\ÏOHÔU|󦕧Ó=ýìl„L‚…œG¤¢ö^¬ðÕ}¹Ý3]{ªY åó"êÃ㙤H¡ºÎ+'=†±¼3Ö~æõ¥â<nL±Ï]èj¼K8¸z¬%£'ßœ»åtÞ0_ÓKú?Ïe·VÔÞµi«â9B'¯sÛmEÝnRØm–òTó¯sh™07[ÆR¥h7ž*ZW —!ðVŽF‰ÃØi‚ˆ÷¸ø¹Ï¨Úˆòn‡—&"qŒ$lÁ¢ñÔ÷è;?f+L™y..cø™Þ1šnF=H)•zˆûˆnißÂSS¸ûcm——ëžêûúp4UjþÑÛÙ©®™X$ÊQ†Îé•yÄL<ýv–" 3ç«”ÜñÃõñF¡ò‘œúLQš…¯nÅàzæÇ¡±Ï’‡£SY†û½v4eQsŒul«sü=™NY©´æ[Yæb‘ô6] Lø¬)‚§L¹l$¸â…V²XÑÔd† Æ´téî,¶F0ë9âËÛá/ÅÄéº5mÞv¶ÒšÇDôZuëN´6CÈì4;ß´Ê?ù(Dõ>Ó þ½íssüÇbFYÉdµ çæx)d•ΆæWãšYmbVÈBûp%â–믗0IÆ åžò —i9?caÏÔü“yÚ˜8çéFkåÏΪ<Öòä=»ßj9l¾l®8¨ýjÐì=Çœ¢ ­ëÉxëçœb£Äg+°Õƪâ ÷×§P§JÕØ:GÃ"ª8À=¥”BÆv!„%;zÈ‘š …öIM°«J`q«šî{gªµú[çà'$ìí9±éd‘-€ýƒ:MéA_™¤}™3~ã:0X!yÞãSÓ\J¹™ep¦¼o.!Q\th=QkôYSnt)Áe{ §™é>Ó¢ð˜[*•ôÞÎhÕ™m‚:>¼iy¸ÖóÓñÌ 0vÉÊlå]•¾C!Wi™©uQ‹*+s)B‡Ííd™ b¶k¨>ë ãYš¦‡ê³QšFª¬4‘Þ“mX'ødj¾,’9F©Žá{wñÎɪò•?üâ凇ÿ1`ÚG¶Ð˜Ÿ7,oÆ+/žx£°ûlü4&Ñ‹ÛØ]6T¯ÿô‚¯îU’µÏ}SWµgbw‹FQ0¼¦d£LÌþPoW´>w\o"Û 0 5-Ô‘ù1zí¤yíDÙIÛNÆÓÞZˆ¬ èöɵU‰dQ꽆wÝþæ,¯ôéÑqú®œw²^¶\Ï&ÈXêH4*¥˜l»Ž¹8mx£b(öPLú#qWŒ›8ѧgª÷ süœ¦3§ lîxÙïž)´÷IK üØTŽ£Ð=žP‘ÞLi"øºãæ²É'ÿêV MgˆiLŽ¦ÐžYù °uaŒ.«æ P …‡§y£Šß hó»<_«wž!.³?dÆ¢éɺdu¨¾cÇeØZ¤¬¹%I ÅsÐÀû)|öd'ÑÇ 3çã]G€ÃµÐ‡—YÏN—çbŽYu9yçü1^0K -%Ý|„jª°lw5ñnË ¦Iš¸ýÏÑGAÝ6Ãc›KRÕ¬|Å"¦0hY<ƒ5¡‰LÃYäæl1¤¼Þˆ%³ÄK ]Iðu…-~¹y¹éš¢HnA(•Á¡Æe§ƒÌ°ú^®T°2#™lç}Ü”D½ò“çý† H%¬ZÄÞÄcHöLì_ë{Šöå¸&vðí „öÐÖš›åbU±ú¥ÄÕ‹ÜDôJ£@7øŽ1pˆ(9cóæ÷hyg°¯@Ôê¥Ý!«ýð2å2‹{›NQr fdüôSœ¦ÇM[Õ¨®8­Á*sqÑù[ þ¤ùÇ.øžxñÎäûY”˜¯7…C _ß(°IGú¦äÐÏr9JcøÜÔÚëÄFçþ”¸{r§A×3F§=½ä|šÕºñïH¾ >÷"¨àŠú±¦ÛZ¾ƒt¯… ¡­á;^5íë6\Û(ÉïXÄ-/„&>]‹xËÂSÁŒZd§óÆír•ýÉ'dsD“ú1,Ÿ¤ãKÐØ¡Î§°ˆ¾ÎSo]~Oíæ6ã‚ËÐP`‘ï ê~,ȲK&'lN]Ñagp3}_Ù«[QºE”0i­7¬u·lÁŸ§‚6!9üû ]H%šŒA'?å>%ö¥VÙºF}y}…‰|—1WèÛ¹“ž$ú®2qÙãßLOzÝ|ÔZª~T³ÕåºJ'Ü•ç÷¨Ñ ×—S΂÷*Æ=v‚«¥R±:©¬=.T‚ºø†êá×)>KxŽ ^„ÑÈ6ª ½aïoåãt§'˳ušÔ†˜ò+7já¥JXäsja³Þ¤ «úD´5-¶gqÊOžüµá‹Y,$-? .e‹%Ç‘R;m…E»÷òÇ•Ó7K'Ì ]W•œÊ ·^l²ÌF§A©Û¸gR×+îØ»Ûí„!B°= –xríÜfú<žlÎaË+ ‚jJÙ>i ±o T‡³ÈBeKë2ÒMó øIöŠ>S­†99¿÷Æc¬~«¹fcU<žó£)ëâ¿çêö\ÿ\‹UÀÝà²àžÚœå*JÝX­£êljÚùe=jü.©Ø[-Ù׳!¸£åR«/—?qË»àö§#zfØ0dp÷íçbl©S ð¨ëKårdƒ8rjùÕññ)–hnóCL‚¬%)Aʳ¹  óœ/ã6ƒTCÛŠ7‹Vw‚æ¾9}yŠÎ¬6'¶Xý5Q,½2ß™aï$ìAGG3]>Ñ­;lj*'kFoÉ  ÐËlúv{$ ŸgßÏ唞JHlèì©È üÉX‘ø&ýLYÌ ÆÑì)/†äð}‰âSlê«î=Ê!Jú5pžY¼`Òš‹v—ü«™¶¨ðµp$ã/\–Û~f_[¯¼õ”f‹}S½ölÔp*>׺¶öj¥dk'DçUÛ–Ðf¥4|¿~Dg?ò¦¶Ðá‹K©„Ňt ’ ä£ûxi¢C¤Fçõ1cÒÏê®÷FWoh~jCKïº÷¦^ÍPíÐÚÓ_¾1ø²O2àA{A4¹BFy„RðâžLv؇€¨Î1§ƒ5¼¹1Ѳ­q†o޶Èòœ£¦íõØÖ¸L Ú•à·6ß‚ †>ÎOX/x?·S…ôÉ\]taŸ™fï1Ót5”¦ýðçË>Zkü†ÓËn‡ŒèýrIÿš}’-8óá´wš1™M¡]%C—î°ìÖÛ*hXßëlÜ$Û&Ù·êP#ËÊŒ”ã5´ Oër@ȹ]£ñ¼Ól„úÚ0ÖšÑwˆÓ^Õ2W‰Øí¶?]Ea¹ø&jÊ»ýYÏXAÃÇLªÉ°)jÕð^0H¤|V ½‡.÷^xkz—lÿ—#™ðºÝI¼Æ.¶Vó²7Rúò£ßÛ ÌtŸÚºoéU16ô”IìÄÏ £M<Œq‡£²—{±îj1ץح’—‘ ª¶_ë;œ– YŒÿ”šMbáöÊx¥‘tu:ÍëÚpbñUÑ(0›µ";ÅÑÈÒ“%³ÞF®‰Ôþ=²ÉÊŽÿSôR‘19Œ-‡ïøþé^õau®½”DùŸ3‘8ïÖ¼¨<”é ¤÷"÷ôÒ9£Ô‘dªn:á©¿>ÃwiC:Î…Þ¡5Ñ>=ò+@£“ºÉ“U!Í·¬Z:ò½&jèçš ®²°(ÕËtº?žJù…>Mº#áméï )¼-N+Ë•6¥bk´q#r ¹RÓˆ"¿Ú% ᦹ¥“òå÷¿C_/œi6Ò–ˆÆ§c²EÚ¬„_ÃL¹ì+ÒuÇ|ì÷Å&›9ú® SZÄÞ)\.¨Ã.ôÝ××v‹¿‘¨£®.ݼ&¸qï©E'ר&^€šž_¥\¢yBš™rHHŠƒ­=ÈÿúR« Õ ¦cŒ„fLvÊÏZƒQ”É2ì}g/Ñ»w{ý©¿A,æOddóW­‚°Æˆ+µJÔHkÊÞû¹ÕF<©ïïÐ÷U®,F xÞϳŸ— juJ¨ñ³fÉkÑüjX¶ÊrLPkTU èg¸„µ×½é‚£&Æ¥szi=°¯tg=Ñ ,ŠEi&ce]]v‡Ò܆—˜\ÜÚÁ'Þ”*J‡6dVÄjãÓ«[)Ó8!èt›ç+˜gD)î¼0ヸwG×"^»Ôó0Ix1/ÈiˆÎMv 3?I¾·C†óŸ$¥?; G¨Ñ(r‡´Ó~uUoùÕìÛàœâ?Η¾ŠUCµ>×ê\<ö#5Áh„YÆ–’§OÎJ¿;)›EC”˜¿h+/EýjDßPbÞí7n>;‘84z’+ä]y,™XncÎó)ò4á:_]-yží³{_CŸÔ¨è@{Îç¯ïáUdó¼×æí-ß rã0‹oz’Çtù‚)<ƒ¿k ɦETªõ¤5$¥ÚåFò«q£}Ÿ7dE ›\ÃqÂçƒéí.nKZ¼;Wž—(.1Q厔0¼F>çÌTe¡K-X³T*Q)Ÿ~‚¯A¦vpaݲ¼-®†ÁHßÏNûóX¿tmRc)ûX<¤°Ýd7–­ñOgœ€Ì'BæóµžŽ¢øô—D­ü}ßé»xa ÄrwmwÑÜ84r„~Nµj´ø¨bë.u§ÓºùØvâíÞl©Ø¡½sn• «†¾åPšæ:9¦Gš±Ÿ×˜ZO­K#¡43U–ÐF¥VZ6*bsª0æ²ÚÆ(Hþ¬FÏ;ÁÏSBó*dª¹6s¯ôW>#·µJžÎïc¬ÉÆ9Œ(!}†¦…9ÑÈô $‡êìå!ñ¸ì[òàKZåÀWŸ˜‘ iiú×Eª4ÇÞèÙÞ“·ífÙ'íUñæT×µóP^Ö‰)RPQ¢Ys’<(›‰V¬ŠÒcˆÅº—á [g#5 msB¤FøÀ÷=mÔšÀj€òn„äk77Od½Ê€Ì¥ ϤÍU*b½ëœü¬=WºßŒ‡eª_ìnøâ(Üþ´ãµòãê«~l Tñ@©ü¶Ö°Ia¼?|¼X»<*(>öNÿ6mýªÊ%§ƒçSXˆŸDÎz$ûdÈOÆ~áú䕽†Q;¼qAMùÖ†šŽ”nÀz+ºß•ŸÈõú@ûrô>í þŽÅ´¦›ëåqy¦Ùë®ÖÏ®ê´2\yU^µ”ÈïoÜœsË<ì©ö2W¬r¢ÇèÙØˆ”ž“Ö¸H.ñ„Ô©˜§›ò±ç5`Oêõ„ ;+×¥eQ($Ý™TlÙmîµÚ„ï.æý6\íÓtXº7pewK~5šæ§] óÆ@¦³ÀFe«ØÃ0ë÷rÛUGó’xÈí¿YлJÔU¹œ‹LHee6T!¬¹)Ïùp Hëã ¬aG–å»MqŠ7èŽèÐÆ6É—¾Ù“´Ø°ž÷18N=®Ô?ͨ«~¨eÉ~¨31 ì¢|Ãí^ŽQû–~†Òߢ>wúí@jz²Q¼ªtÿ{ñ-^]GžŸÎÚ~îÖ™?ÈÂ×±GX•¤M+Itýí2Ò¯Ô1 •=ŽyÛR_#¯<Û×O%Â…îè 3Œ*ÓëN§_ÆŽ~jfßÒÔÖ™f ÂÍr:ÍýfœÔÁ¶o2p¤õ‹@¿xm2¾9äéSAmbýZ!òãƒ`2_Û3ó²4‘‰s؇„¯%Í݃xrï+S* ¶ÕŒRm̤àøDÞ£òH ®ÓU؃(w¶¯xŸEÊŽÁînšx9‡:ïiÆÂ;BÞ8À£¨¢E`ìùÃ895Þƒ†\Çø+Å»u}L…ÈÐ\zˆ}Iúß   ~ý°¢x¤Â™9»Žjì>>Ø¢Ä{K ,ÜLôº¸Ïçµ1Q®ùK\ç¾4ÿj¯Û¢Ûç¥T{³%ÂÂÅ$‹Ç LºªÈ;Ë*Üyñóå¬ä>\UD3êãv*Zka߇ Ó¸'/ÂFp¼ˆ´Å6ÚXRñm[jazhäùŸ}jäÞ-“.4MZ7jð껆G_}cb[ =IÀìë_œp?Ü##ÖÄS+x§°I$rÄüq¯üŽŽýZ N[z@טÝÜœ)vðVJ´¼!“’z£>+àU`xµ©_Mž*]9˜áY·[œ÷Þ;êœaUi­xy¤HFÓñJŸªJ¤$þ1çÉá …9—V%¿>jæƒÙÅD‘m$5àlc¯rNígŸÝùHû0-f­¤¿[œÁiàkì'¶<^ÕÙUú÷dZ èmi’>eSŒÏ©Ž°°ýþçýêendstream endobj 601 0 obj << /Filter /FlateDecode /Length1 1481 /Length2 6804 /Length3 0 /Length 7796 >> stream xÚwXÓï×>!CéÎQÒ°‘"ÒHÃè†1`ÄFŒ’ é‘FDI¥Sº )‘îz§ßú}ÿÿu½ïµëÚ>÷9÷9Ï9ÏsŸg;³„OÆi SD"P|`~PNy A !~HÀή G9ÁþvØõanîp$Bâ?(rn0+Ú&o…B3Õ‘ Š‡,‹J€Å$@   $þé&”·ò„ÛÕù*HÌÀ.‡tñqƒÛ٣Рýõä„rÁââb¼¿Ã2Î078Ô T·BÙÜÑ+B­œ€$Cùü+ç{ÊEB@ÀËË‹ßÊÙéf÷‹èGÙu`î07O˜ ðWÓ@ +gØ_½ñغöp÷?<¤-ÊËÊ DœàPÂã°¹ÑË!Õ€š.0Ädµ?¼À?wæÿîÏè_‰àˆßÁVP(ÒÙÅ áGØmáN0 ¦¢?ÊÅ ´BØü"Z9¹#ÑñVžVp'+k4áwíV@Em ºÅ?t‡ºÁ]Pîüîp§_M üJƒÞg„ÒÙ†@¹~Õ'wƒAÑï#ð×ù:"^ß¿¡-acû«=ÜÕöXþOÚøÇfCE@ Ð}tÌó†Ú üZB×ÇöÛ þeFwáïë‚tÚ¢ùÃma耯»•' ˆró€ùûþ§ãßmàPÐfGþÉŽ6ÃlÿÀh ¸Á½& ´Á@Я×ßOfh‘Ù N>ÿП²€Š‚šÊc%ž¿zþÛ++‹ôúò‰‹ùE@@0HL (&"ôÿw"-+øŸ…üGìc„-(þG½èú«fÏ?eÀùçpÿK‰V/ ÈùØMA" (ú ü–üïÿŸÒeùßÅþß%)z89ý&pþÉøVÎp'Ÿ?)hùz Ð£ ŽDâ¿©°?Xf÷pþoïc”z$dvhYóÿ0ÂÝáÞ0-8 jÿ‡jþ°ëýš8'8¦…t‡ÿºdÐ! ÐùÐcuD_$îhiþvÁÐSôïEP¤Í¯qZ¹¹YùÐGF"@_0z.m`Þ¿Å àG Qè ºA -Ò ðë\EE²¿L¿‘( ô7º/Ðù  ÿ  €Þß-1«¿-BÄ@ô¨ßð_¥C=ÜÜГü[bè¾þ¿¯ ÌLO ¡’a•a§å2t^|«ƒpvÒN ùóÍñP #ß ¯3fT‹§ÛÁŠæ-²®§™_'|Wª˜ª}„ù˜×혬ã&nŽ1Ç}OèY&ˆê0r Rd% Ý:0´¢‰[ñ¥mì: ìD~•Ÿ§½î‘)Š©l‘ëð/Zs˜ïÑñ“;™ö ‚× ¶‡ëê3 ûmJÇý·2«]âô°ú¯‚”ùâ$¹Š—È^v—âW†wõ¹W8r¾ænwÁ‹תܶĻç!èðMº'mñS»ùö´u~õAXÑ‘ìÊkdô¯CeâÐjÛrÙ¨„©ª³ÈÁÆjÖq¨ý²VO)Wop@uµe~au£d†ü½ù© T”A4Èpó‡nw¸ÚÏ fš^tEi6O!lÓ°»W½I0ÑÇ42 7ÎR”}I˜*šPÜälý8-Z=ov¡ÛB ð ñg¼†ìŽîã@1$òÄã™&Í~¼ÌœIWÿx„®ò¸nôÃÜnœQÜæóa‰@ûN]õ…pBÿ¯µy©àÚ í;_Xã½³ßåÇfcsÉ|¶¢€¼ÊøQRÅtBY¢³RtíÈrzÅJšyWáAdŒ‘^ùÇêݧS͘ž‚çFÈa a_œ¥¢}§h…Eäß›ø˜çfmsDPâMdVø‡.â²d?¾ïv?'{=¾ò¼ålLlð$)~‘ôùÔë× »ÁϺ‰E‚¤!]µ…é/î¢R[ä{„s믌޵d¶~ÚŠTz¨°£¨lìdHV.¾kÝÄ<~º¼"L)ì³8ý©gö©%~°`AµA9¶n¯d ¯Î±£f<Ú¸Lm~uüAAæg~_{4LI1<$òÞãdcªRŸ+,Råñ¼Û ûûš74 Ê‚bÙ-Auì´¸Ú‹uÕl{â×<ïÖ +okOÜTÈâèÙ%t KŸÍÚ'3È‹{Í[âcðð æÇÅ™¨ ðô½©5y’)Ec.OÊÆ‹Æ¤m ºo””¶=r|åüekMs>`¤fE.'v8~7²(ü†¿Â BîKS:Y!”KKa›ký Æÿó1¡'O1b¼¾E>Úþ|#$CíK³e:FÇwž\;~Üâ#þÔëÁNòŠr#ö=2=“4íY7äÃäʵúú‹£–ÐÚÕ™Â+šVzŽz씊RøE!CH¶»›¨;`C:ê =×’{ØjÅù]æEVŬòñ`è¤ÿ{«Æq™ feøa¼Íñ¶w1ö€_·T[•Ó¥®|o(‚ÖZ1ba ( ¶Í£ÝÎ&|•ç‚û´¤ø±Ø¹¿`e;8,ïj.thZ+5ÊrHÆëF§_PÜÿ¼ñuå e€Gü¦–’hUôÒ­¹³eáœ>kD§Ây±“ –Q¶}ø`4))M_hE“¾å,>ॴÙ|0ÁFe¤t‰oØÆÊ¾ˆUÿéÞø¶µ¨áÇ Î îèJi+0pK¯«U¬FR %¹­Ó´»0(~ÓòÛ`͜ѩ6EÚ §„æó¦†¹Û‹j½¯}¥‚óR(° ‰ôWpVìì]H‰š°·¬hž4‘2úŽqcãuš¸‡õ»Þ:þµò:MWéÙúŸ™Úö^Ù3Iüß+…Ì|‚•ïU–q«Bžwýì"RŽSíZªG¨xVc}§cddw?(‰ú)Šzæ®eÅÔ¼„à¶抎FsL(Ï}=·k~ºÂXTÚ{Û³Ýîíóáô€­å!¢3"žH˜Š¼v¡U<”¹’y’ç¼LU‡û… ñ¹¦Î’ŸT‹åpÞ¼Ój<"K‹‡#—[¨Ð,b`¬‰—ÜÐteé›fßôcñ2-˜†BuÜÒ/ãYã¿æø3Ä¡XÓòŒÞçÉIN <§æv´>Å9í1æ3?S š¿BÛØê—ß)Ãêß·ZV-Tã7&“™ÊËG¶´9œ§áiÈŒµ÷uÝJ&ØýSk=}_V«þ®]ªäý,œËÁèU=•wß}(hÞ^RoÙ}÷¼.xÒ}T'²Ø¤MÓ:rÌ‚eÜr–âÙšÇ_6ï_ÕÇ„N»y𠦩š‡ë§“\6äš|ñqħOZfÆô»åk%+À௖nlj‘DB€q-( «þ¦"ˆâ[E£<Úkcä¡w`J)ÇüJ…ùÏ¥‹4-Q2WŸpzÉýæåégYj¾é­>¯&.ª}»D€=µÅÈ( –|ê¡óºâiuÿîÜ)'ÆÃÖ Í’Øàú¨S˜ÍºÍù åv/¹·“ôéU¡K½; ›75x†SØ)¹«³+@ú##ûCQû'ªä;·ôEÖÄ#¯ |çý"/?|IWHù2äíãÏöÀ¡t ŒÒë§Bæ Þ<÷Ét}iÞâç¶ÀžuN‚3Î4{ïgÇåE#àåB+êiàxèöB¦îͨô's,¡ ’MBšnÄÈ)Ó‡Jp°Òºï°ïS2yÕŸÌïÓ_%D"‡±k ÍÍ Z½äi˜30ôoÈì‰0,ªÍ ðõ`&Gc~¿7Ô~o}à˜!\M:„\ÜkSøfñEp©ñÙÈαñŒ>9z N–1!v{) ަ-“{Éb‹;oŒrØUsÒÿ®i»½Ù”UM¾òÐW¼ ¢µ—4Ia$Uôþ£öó­Ï4€UÁ£ºe^Òû6Ë b›ï²ôzõô1ƒfíÇ{4U(Ýå1i¡]wâe‚IG,ʘˆ3ð°U±SwÛ·°¾Ð¨Ë ³A/bÒð^Àw¯ P/{ù.Ø}a†ÊÏ\«c¢SýV1à vݯ(|-J÷¨æïg¸Ä&¸?w”Î\xBMÆÆ÷Ä´²æÊ²uˤÂÚ'’RAŸ:â¶q™Ô•>™ À1O„õ >ýÄÖÒúz*[wë0ÏžG×þ$uíÆ¾#ª}U¯RýPï¼îp(Tcíœ|^ÌP¡=L §Ô¤XRõóÃÊ_,Ä\B}–Ê/f–}ò3µä®Á÷q“ˆ›+&bÍžùà‹iOŸkÛØ|a¶Ë’–>%¬–8š%÷× Eò¨_ÒNP¼t«t‚8¥†=Æ ¬Å8™=ÄhŠÏ €ë€UnM!ÏR¬rû+oîð*d;.0‹ ˽³í¹ÞÊ[g(Ù””¹Æ™‘ôù¼4Saê¸ã®ÖËîuqý=õKTPÌ(ÑRÛE,x&}>‹pKwÅ ½=²Eêȯ3a/ëì ðÚ5€ÏŸx—±iQ=1?ËÓ épys¬ãÍRv ó 3—V–äË*ú¸DsÓ6ªb·áÆûÐCXœ£Ì›YŒ(*¼l‹X«îåÙ-ºÂùgk0°†eLPEe§‰v°NݰX³®TÅ>q‰~c>ú5®qäxK†Ë£˜\’Ü^•JQeÐHš¥RD“ܹ^¼I% Wê»s’N' pWg/#M:’û±pÛÉ×·•èqäóšR.‹!@¿Ôù,ª0ßBŃá°ŽÊÕÅc-V-Æ£/OûÏÇ?ÏoâE‹Ýj»’…ˆì~ñùDR Ð÷Šc|Lµ z\3aÆ9büát*èu ½Æ¹]} +‡:…Yצk-Ï5µŠ5íïˆÈ´ÃóVK©0…¦¾‡0gLý Þf–›BUˆcrŒÐbTŒÄ$ÉY2Ëûé¤P=,¡"…Ÿ>NgÍÏZÈøK´Ír{ÌÐEmÄ;ÜRlã‰I[zËûìÛ\¹‡}Âx½÷^É`—>éÞœS-^ =¾ƒbÉWÇQÀ$ï—}ª°þá£ëÀÏÚ2 )Ö:< ¤ò!-þåÐgôÉ]x¸±2Sís)wÜæšEÇtζ|Èãõ­ ¯áÈ[cÄCgW7Ææ†p„ÚúC/ñÜ«JÓ-½‘5 °_‚ç¿¶$uå+½>m 8.¬ E6õ δÏe™ÎÄ”€g4#|#I”²N.’ˆÊ¨¨-ˆy& …‡,r0_qƆQè^âx•¬–í£á¼E›y#´·a·awK½öÇ ]ᆭš­1ĕވJ½õ@BE†Wýç!O‡÷{ä7~V‡Žoí9ŠÂŸï7ŸE§b°kŠÝà“Ä%©ú¡I¡²?û¤å@ÅÒ¤Ú“âr¹ó½7v»ÓXàyDHÇ€w`7®(ÒN^þT,-nM8ÜDï¤ÓÇ2÷2Ý÷FÎzÞ˜}çàý©$wÛaÀ3αj§#eð[à·<}ZÅÉ®¶ÈÉ„Ó^ÈwFpïwç€ +Ìùò”[qÖÖ‘ï#ù­ËBßêY…™ß‚;«?*îÁHÆÚSob# ßsq¹Pš±R( k¬NÄbn!ÂJW dÒ®#ü±âÿŒgï­KE.wf®„awêõhJ¯íÚàôœY±·®ß.R²d§µ(·¬¤ï“[Té¿ï-·Æ¿ È긕ôÕJ–Ä:±.Ç h¨·%õf$x‘Éד'¨Œd“#Ÿ|ƒË—Ù—°øý›ÍæÇE!xÚØ«¯¢çunx-·ZÌÍ)K"o¿¿24TNŒ²É!«=€t6;k¾[WQ{BŸZœ‚h÷ˆÀRí-qc]®i?-Ÿ†½ NYPvÄJ1òìæy†Sõ€8úï;ÎB–ø þn‰^iÝ3ÉŒ$¾µH[9KËâsö2Ï£¥c¾N‡Tæ—M‡5&Ú›çüß´B­™Åñœ(Z õqŽdØ?;Ü÷&ËVO¡©ã|ø_ý¨ý;KaÓ»yyE¿8cÕîÓâà×Ê2åLóAj÷ô#¹ùnï…~>Y_ÈnÐ3{ÏI$™þyÄ¿ó †‚q²×d÷ðÐ}h­Õè»DM2DªÕR·È'µÀ‡ÿø|+U§c’—ßÖ<‘´5À¢osu9/+bCÊ ÌÁ].áp°i6 ’ûè!§ê¥X ·èáÞ¥âr]¦>#¶0 /ýÞ0;E&[ ñ‚n㟇RLífZ—Ÿféê.™mßà’’ž%FÉ|­3éÚù¼Ã´üf{%†CÇèî\öëÍrë‡1ìû]×ýÆ$*õëíÀìÛq_®+IßH¥ Á¢ñçÍY†rˆ$>Å„UÃÔ_™v$ù-î™Æ4¥z6WvÍj­´mNžÏ¦éËÅíH¹r¯ÇJÎi,ÊžP[Ø(Т<– 'Ç;Éט¸y”-úŸÑ>ŸÀ(Rz¨uµfón.›—qœ÷<|ØGÕg$EZK,JðLsF¤TÈÔ]ša©)[›¸á”m§„Q0Ò¦çE­Y#M´ÆjïS:ýÔtL¢CSJÅ£Ø_¦örà¡ÂCÖZX£i:ˆ;[ZîÇc‘åÁgº!;¬ønß ›(í¼(¡¹Kʪý H +áÏecĵb;?$ƒ`ÅȲ“å»ÍT ²o?Ö>øžXXSKr[nWï@`‡g$H0*ÁÓNU<ÎI€Ç÷Ýn{{‡¼Ýâ=ðúeÿVÇóÏ0†½­þ³õ:룸KYÃ'¥”ÎlÝSó¯ö2Çê*QG˜+GÅQ/ƆêµYËìœs&“|:2s žT^?ô ]`襾±Ádz'¦ nè—Ó~ŽûP±°ÐQº/›w=‡Gw5ÑNh[¤É‚¿F“—¨pñJwèø•ÁÝ KKaä‰>Ó%á—‚OrÝêˆ5Ƚ쥻áÝ"³/qK¶‹Ý†z.åÒµõ‘o¶Í¿Æ´¿Dl|žÞ픉ÄrÙ7QÎé Ä‰eCÿ~š1Ñ›­dM£›T*ZLÒyä5üÕ>ùí ‘Ð“·«áÅÏÙÏ„ÓFƒ÷.ØŽÅ®¢L ð0AbwfjµVh“›+‰«³T +TšÔ µJâMM¾âÉ"¢©Ï»)°âì,¿ª¦ÛÂtù•S©Æ8|ÝŸÛXF(œŒDŒý‡êB>»*PÖ·¼ëzfˆm[N…ÉÒ¶‡ íûÊc¼|8¥zARðhI»7úf´ Òn“_‰mº]ª{ewúå«þæ-Ù¯˜$ó-¼?.?ø¥¹{“dÊzvuùòÞzóû aŠ=Ù˜Kó6i®3 ]1¨%˜ ABÞzá‘-ðÐA2h]¨5‹Nñ“ÒÄÊÉFŠßFB²u—ý—%*ÍÆ Z;%2ÉÝID’ç{1Ø¥$º–T¶41›'{ŠmÒS†$øsÔê¾ßª§×ºzÈ¿¸"ÆeàÄ;à3+v»Q•KÕåN‘wg%¨ßg¥ÍÀ’µ2÷0Рîä/Oï—‘¥SõŒpŒß„è:¤nsâYÇ\¥Ãƒ"†-–Å\EÕ9ü~koqb3޼ž|¡ í­>å5m-“˜Ï…”E\.ÍS´µ­l6çsñ·’—?8ʦ‡òns‘®¯.W© ®@åuÙ¯¨Ž¦#˜ ãMû\ºV¸nQn÷,é$_Îjñä%TtM¼G‘|ë¥èf,¹í›Yjï‰ýÂÔcÐ$ôœòísM.ÝqG÷V·Ã¯é 筳Ƃ«“†’A+#˃¦r}òq:í¯Oæ‚>J0—Öøu…uHÝwU9+鮘åݵ0sÌó'Ls¯x{–“ùBTÍÐytÏsÄÆzÌZr‰ßÒ~xÆi¼føÐ¢”ï5)6bÏÆænÖ€-7ž¼ÉØÂ}÷ý蛆±Ž jT¢…ׄÖS[YY·';CÃÇù-o]ìš×«¼¨`‹2&ß½;ÃÅn£*âÓ=Ð@£1 KéoMQûÌÜÅ(R@}¬“ó‚¼R-‰Œ`4äP—>¨`32Ðó‘fqÝr‹% ¬<ÖNqŒ”K'‰º¤¡Ù‰?_S  tT¶)ì‹Réô|³Apj—QaGPæòŤD’5÷¤©¼¶aÑ¥çäÎ’Ãì,!Æ’n‡›ã¬m#vB!˜¦Ÿ¡”é>Ø®[r¨,!¼ºYJþÔ_â´ûdJ$.®‘D)J¢ô•áæK0E—Ø’¹P²ái—ÊH[>ÖÏæ*ƒ{Oô²gCÚN$? –6Þ¾0%«fx/¯Ê!:„·Œº9—ôÒèYU›osG‡€Ï*kôɵßfNYò!š@r‘ÁW¦‹bö/#õÒþrJÚù"°ŸsF;DÈÐc£_¿Þ1†”¬ $&aºlȦ˜’0x**µíNcÓöh;aºJˆímÇÐñs3cLôIÉÊ,¶îÅõ°¯»“R–„tø~¤)½1›§¦ÂG„öÔ™6¯O×V hnÚñ¬C%»à«”> Ï^µZ”ój˜PáxöO­(É5®Šðzî>›dþý5¡h¶K[Z©ñ3Éâ[ž­’íM?¹lÕçÉ«ï®ã¿í. ÍäºçÞ3M½Ö´d¯¢Íµ'Þ§ìr·sË@FÈúPròÕ§„ŠTù7׌ c26 ¶øœëDÓ(wXg¥°‘Nqt/$tòuyØT»® ©£¼o¶ê!NÏuV„2‹jè݇î_õŠ—g»sâæÄ²fÌꑱ›„%Zs•½S¸Çîº]$¦u™à; €iM1O«•ÖïÂEîEmÒ¬è¢úš!‘·‡®{Û›Ìé©[Âï%˜~lÅÁÞV©ª#u=ÒK¡U6b…,¿®çÑ`¤¨ŒS;¿sÅÙ‰ËfÒAÕßÚ@¼»¹tëë£I¿+_%ªqqÂt$Ø@­)y6cs±þtq&Óendstream endobj 602 0 obj << /Filter /FlateDecode /Length1 1635 /Length2 9189 /Length3 0 /Length 10264 >> stream xÚµxeX[Ûº5ÅŠ» îîw/î HBpww+Tðâîî-îP´Å …¢.í>çž³÷ýþ~Ožde¾:Ö˜ãëIè©5´Ù¥¬!– yÆÎÍÁ%PUÓ‚]¹¹Øµ@¶nŽ@(€‡ƒ‹‹ž^ Âì!`Y $„Ù^YÁžRŸ"¸¸„Ñè 0úä´XzÔ@0 Ž—3ˆÀü³Ð€¸ÂØ-®OnØÖ b~J‘8{Aímí`¿kð²³ÿ®ô;[š  ´r€x¸:Ø€`k€2‡@âñd´0AÀKÐÑ±è€ ºÚrZÚ­WºÚÌO…µÝœ!Ða‘ÑÖÑU`ÈJ©ëÈ@zl]mߟ: ð~[6€ºÎ“ÿwŸ§Àßéjr:R:†rÜœ¿ïÀ pA]í·ý6†'d€ÿ@{JµBœþ40ÙÁ`Î"œœ¶n®0Ô–ÃÙñ>;{W€êxºBAŽ ?ĸ­Ÿè„Ùþ*ð{SªöV °+èw’<ä/§Ó•OIOvØÿ{"ö»¦ã_áWèom쀮rU54TN@{0 ‚­ža@˜›+Àâíé ²fü  ã…þî¡öoôÛüº4äéÎL}ü€ÿÜ1 ØÍÕû¿¸ùûm[AÀ®ö®0׿*‚6öŽ ßè]ï™=øMMJ]I^N[‡]õIx`v5È;`˜'ìOôïzR²ª"!.·0€ëI¤r`kˆ“ÓjW´ßôÉÚ?ñƒ@½8ÿ®À°ÏÿµÛ؃­m~3oíæÌ© ¶wq)Éþ+úÉ„ö›-à€\ O+;Îßíþ¨å·™û·ù‰?gˆ3Àèè ò³·=]Ð|\î êòóùoÇßWhÜ‚k{+ؓП†íOu%°  ü—ù É¿]ÿ’ÓŸAe~šRkØÑ ` ²AãT‡ÀžÁôÿgÎþÑKÞÍÑQèbú'¥ÿŒ:Ù;zý-òú ßX™Ô!P' ã?|ö®òöž k {˜•Ý_ÄþeW‚Ÿ´/¶u=mÊ“îïqr|ÒíÓÙcÿûè°só üÃ÷$I+0ÈÕÀ÷W艆~âþ7\§ž®´¢’ëÿÑÌŸ09°ÄÚl àá¡P דxøù>ÜOš¶yþQ €“ =¥œÝ`~í÷n 8å~›ÐþÞ]ã÷ôý×àüëXú³Ö†A! }{ë§#ù¿BÔ€0¨½§1ד*¸ŸìO¯3ý[úÿú¿²¥¥!ž>ì|<\vÞ'­póñr¸¹ùùüþ–kõ× ñG‘O¼ý{ý{< 'È mqbõ2ôuFcx‰¿\þd)½0ÇQ9‘¸râbÖdû Ùœ DAPsà[†ˆª¢ˆ©Zø£}(¡ãÃ×–ÔŠ‰ kMÉM ¿šÿ ,9©‘l=Ýà·j ¥4ÌûÊÙy†E|Óo[“Z)º#2Âí]7q<ã¸?ÒiLJ[Wr‘< g¹› Žxž 8d/&;žÁob½R‹,3yáD#ÊÈÎ=]ø[Ïb %î ø‰Í‘ˆâ»Þ‹<Ð1'WEü?4io*ÓÑIv€ÃÜsø¼âAsðn ŠŸÂå:–&GŽ8홦ÙðqþÕDí£útOû@Þb¿žö úÍ[ƒ:„z¼Ð˜û_+èõ#Ù߸n‚~æ…KÌlPsàü<²&mûƒȽ~@íCàÜÚE1d Ç7À`4CuwÈ-„È’zA©©T6#{‹Ø¿-Úp&³ßäÝÓ’^y{hVò>ÌHòu§Xoèä_@ëu”ÞÂî÷Aw\|,Ò£Ïë²÷ÎjŸ“À^šý&°JÌoݯ¿w«±ê{ãE¾j5ÐÚÐÁÀ×°”…,N6¾–´ÖŽ6òF&eB ¦ÍÌplÎúž‰òœGÚàÆjªÀb2® ÏÇI²ï³Ê›Rš– ‡f)ük³{¥à®v ?<Âo8Y}Ðñh±ç¿Á÷7¾+CçuJ–t)Îòʺ-ßx†ž0È!ÝÞqJ=ô :=ÉÙÁ6³¬’Ìú…”öŠõçkÂõ²î £åwt*hÇ*Y:yyáwjï7›"ReëvB~•¦Mži¡¹8üà1Ûµ%j31m°@ó­À=%­05¤N3å+ðèm5ײ€QNuKI?Äg×6žªñÆÃô;é3EþUDIa»¾=ǦZt훉„’8+óíçÊíûœå)„ìJÂq]u®[d™^¾‘oÍëÃgk=‹ÏEy2sè~l}¡,  –!7ÂÎêdÍö¾:K{|z¹Te§xR>Ýø=åƒíz›‚9Ï™vưҖZËÀ‚ð«„¹¨iôÕ ÚÁlŸéˆÕ›QíØz+=zùÂP3f®?ÊãN²SŒÆþ…šNÞp 8ä‘®0¡Úã+iyZPg“kqÓ2_²™ß…âwßÐ ðWB€*‹·’¦¢>ƒ?­ 7^¬—Ú{ðÕz|È3D¤áü*Ý=C@a8E[eb5¾òd cl€$ÌC³¦)«¦–E§V…/ìH<î܆Ir“5¼¢„ï:êõGg¦¸¯áÌ4Å×h˜ u6n{¼.«“Rû7{QǼ+R‚ñ¼jîåG©%Bb8çûãI¥P³Çø6×+ƒfëÕ×5˜d¬'”/"HÐ £Îœí\‡<î|{rM{䏸ÈÈè$Ëf/•¾ªâ™f\d«Jð®”›£¬h†'µ8È//lo÷|*š5µ4gÓõË]ñn‡¢ôŽQ×XŠõ?=ÐÀ{xj×ûͽ”'”—éóU 7w3Oï®™Åe¼…LnYÎ…O3Ç;Õ®Ìwú.×Ê b7a8Êr¾IÒJ:ùQÓ2ò:ÞQnçõÂõö‚ß"66áÚq~dKiH%kR÷'øíˆ…7Ž}µÙ³;cæ]…f_66ﯸ¤M½YC…^ˆ¼¶Ûše[¥ P辱ã’–Mܲx}&ë¯(ÂGf˜Ûb–6ô*ïÂÜ»Œ*˜š¥§&qˆÄìšœËeþÉðNÏœB©ž{"*{¢¶Â$µS¬;8¡î^ɨéýVdüDú‡J6»S•V•q¨hJ'ɹ é–Ög¹´m•­Š‰oäêPP0à ˆåóðZ±×-“4V+²I¾ÑôÎD¯µ“Fj*ýŒÀëý(ê­”<»TC!ïÛ2hjÕ .ˆçƒÇ®ç„®ª ø¶;ú­é-;œÐ9^Œ*Ž…ŠÞ_š+ÜÙ{Zã+§ÎFÓk&.pM?•ø{èRÁv&¬DS(kE*áù/”ñ¯DÑ΢Zš<[¨ÊáÖ!",™k¿¼%þ1S6+ú¢@6É:xÞ[7óN /p/ÕëØè¿ç%?Ô`™ó›÷‹Jˆm°DÑìdFx1‘Lu¬Ì—ƒ}B=wÁúz?_&ÛuË‹.O‰¤øhm,ó€9rW)(#âT¥¨dT|ùfl3?^Oïmu–þ¤é“s¬¬£æ…eW7·±|Óa•š&}ôd€R±]ÿc¿äɮ鱿Ÿ-ö[I2õLcZÓ‘Ðìl:dkÄ9Ñ#_iZðä6ªU…èð7»{QöïhE2 ÂàÚä̵˜Sî ÂD‡Y†>Æ~D,ñÜ•kD~1“»ÒÃá¯Ý& hq‘œ Q#\°@¯Ÿ1fs'A7ùÈK?¿Q¹-7+»éþ¸i­²‚F¦caSa#ø}cÀáß ZAµW£C¦3 ½˜u‘kÅÞý¾†ÂEa"Ñ´×Qd„ËNÁ¸O[b*Ì‹Òç7á9Ÿ¾…ªýòF¤X¾¸y+&ªc\û1j±Ûäú(¯6BàÒŸ¨»ß-*ª+’wEÏx2¶D¿)r‡¾¨·‚`DZ¯Õp÷Á r ¸†¦HQ7_q³lî0í-IrKV|@¹›Mk‘‰]´_’—À‹*ÿú¬–aí •–eÅàž!P¦È^ÃŽKM>‘ þÃ¥¯•ÙtojŸ&„r«G´´Ow?­Är1ÊÜ2AŒ¹ Túü|ûëî·$Ák|ŽØä&æÓËXð:qn*4ø×åý‚q ŸgòxaÙ°@–ãýf»ZsÃååŒ0ÅT%‹Žú+*îqvV+Å“Sô½I£Ç2ÎZcˆ3 ‡Ã^E}?¼K’Õlˆ~…c çK2@ÌúU«Ž…!v¢ ]øÁð;ì¡ÏÞ4Eó÷Z5ð×scªeW[1j?få>|íÐá>M8¦Žè}ÿâmä'ÄŸLÄ‘'¤ VÉ¥/漢x¦›z(O-ôì‘ §ÎøM^Îü0+z‹l°ûíÝ‹—ÊL:ÆJ¨D¡çø5_É#o¿ÑdXz53™›í;¬”E¶%ϹOó"]#|ÏÂ9¢cG§z”7QJ¾Æ#¯)|¶J:NY zíÞÇ|»ŽhbVøŠ Ňã09žE~Õ3ÍY}=G®œH߬_˜Éê+™ñ’‡Öô¤RGÞàÛKIlˆŽ=Å™ËzÅÅò="¥¼}ޱ­Î‰ï>Ö^_ûÛÎùóÂz€fV½¼¹…Ü%Ì V^Q€(Ä.´p*k_Ìö'ƒs›„‰mÙZ˛ϭ!ø«›PVqL|}é%¶%žÈøçÒ-²t<ã’ÞÌp(…Y½¯ÆÙˆ~Æ„éØ~[Õ:¤ðˆ!Ñ!¬Úè$lÕ@,ú97|Ógúä··°œ ë·ÚzêïØŸ»‹ñyŒOöW–g­ã¶k>Ùq…*Ñ¥º{í¤š‘F¥"BíU“¹sð‘ JçåÕ¦ZöƒÂÏãó÷ã$ ßi]©¼ûD‚R>ŠÐmÉ §œ¤Ô?ƒÈsXu(aˆiü4B$P0”¥9y,}5šawÅòNu–[ÁvT6},ü"G{ Õ×3\¬µü~Ë"Ñ2h®Õht*ò¸6k¸zµov¯øCyùç LU ¤·p$ ¦ÀgÓáìI¬¶hñ*ªJÈÞÓ_n€«_¢Šû£L?<௓wïVºÝX(÷þèBU¯%p/bÒm¨±<ÔÞËxŽZ£É=G)|o%èêG¢–¼,{Iÿýè­2jäVé–Rº mÓÛŠuâüq»d)6¹žqÄÝâ-Œ LJteç#mÀ n×§Ó>Á"UÙ*Ó¶Õ°²° 9ÿZÊ\Õ¤wûg¢¬S º”EFºÚ_\ ¶æÙ¾ª*¨ŽêBÒÎT9H ŸNrZ­QâW‚Œ€}OuЛ’HÏ\5*AÆcTâáÀ;^]â@Ç¥à#a»Z ·Þ¬c0rºZ·L5#¾«´8stLrXM.x°÷xßÄïDMï¿7Óˆ|8@TG4Ò0v–áIï6| Ðæž0ŸSqui2ÏI§ƒøÊ°À ¨ŒNˆéä¨hmxC«°ßQÐ~)ñÊgjغð••l²Óˆ•½ÿcQ¼áçO%¾ó"Ã(¹z´ ®Dô—×¢ºLBjHVÚ^-mJ–?€b˜ äãµL§u‘yÌž5ó;´S]·eg‰ÕS <;F…_Pð¯hVà ¡—ðç`±_<Û5‘UJz†YñÇfäßÙ™ï§3¿ÕêM±aæ$80G8>Ï”ùä"@"Â~Sñˆ•íÈ%7ŒÛáõE{7ÕJy¯-¶}ÙKÝAH y10&÷ꓯ“$™3%-evBA¥ú}uQ¤¡TMŠ,©•¥ø\MïTX3ºBÜG™óÃc‘vØm„õ~Õw–¸ÆÙïBÚõL4·ƒl‚ꨆž±\dFûŠ¡¼·hì/ý"H65Í>‰ W;²²ˆ²h„µaE|›lAëí-òÊU]ðPOHIÆiIùi&Ø3û¥4`×À«SýôeÖag]YQ†‹ÜØܤ`ùÔè5“(ßzO¯>õõŠt5Ó¦!'·ÊöÂÃLµ²œ¢ÀÄ‹FÔ4/ñÕxw$§Ö„wé/º"o•¼˜ s—‹<’#ㄎwîÄB"Ð;k+¼zŠ%Q%}¶NrvÖÂÈ 1#☨ò®4ŽÉdü.Ñ{©2HÍ*ªañ´¥W™Ÿ[5É~½Ê¬+ݽ?™YúšAP¥:Ë;Åbñrô{²ùûãŒªËø]gÚ»P§ªf¿ü å뺡Õ:…ǩܮѲ®/œšá<”¦‘Î3¤ÄnìüÏ·É1¨º¨i1È33TÄÌ÷Ûšð”g2Æ!ÈL¨ë˜UF„³=–ü¾æÜ Ä`c¸IWèËX4_´ï?ñÉÆ”œ9CÍAÒβÆ%ôˆsׂEi¨ó×q<Ò2òÌlãêO|€N‹‰]^@úÉø¾#ä tŠìGÒJŠQ–B”I&§ã©E'×îL†üâ2UB“³;¶ÅÏlVv…ÚËÑÌPãI9_>v6¡íy¶<¾,â¡ÑgU»x®„iMç3êÁ•ƒK3+'¼joŽ6I°K­·ºeRÁ÷#¿íâèú] «žYè É74 óõT Û8D—ËŸ òaô/%Ô¼n”.?ÉÇtÊzqh ë…TÛÌ}4®T®Bñ—¤÷¥Ú¹ô‰ˆ‹XZW÷ Gt ~>ˆ $&ÁTYųøäçýöWï}¯—Vu´ÑâpBjiy}íOÁekÜâô~Ÿ3êt |b™c%äv§ždÝ ¸±•ó画«$š/[¡l`êËŒª®Ò¨œììl—mÆøÛp„kl.üÊšÚÒÕZ^¿Öû×ÌÑ/Ìr¿†¤1\ívyâx­¿–Ä0$MVe+Ë,3ξÒzš{=sêiu&ÖzfŠ7ø={—‹:lËô)…Ŧ{ý— bf²µ?+L]±jî=ÇúF5†ö·ŒÈzݤ Ú¤ä, ¹»¢vè · å»ïÇ4ÑÉyýXS>ò.ÇÒšwYòEñ¢„Ao¹ç…¹öœœe4¡r'6i®Ø~ºÚÄžtÔÜýþ2àh·\øË£f±eÚˆD{Ž›©QáÒkÕ¼˜0uR·„SM[É×ñ áúÙ÷³ìE­NxÆéuøçR;óS'ï6È.«­¼kÅ¾È Kº Gœi›Ÿ€?$#·­ºª·oc'à„©)ù„"Æö¥©ÈÎhù<=8MQà{wž…P•:¾´¬y×H/Û{~dêûËðI¨_·ý•"Ö^û$ŽØs¦à”_%YÒ&¥ò&b³¡ÒïÊÉ’DêÇsǶÅ\㼯õ­W.ðΙÝQ¤ÃŒ ÎÌ|>Xé°F~‹¹xƒnÞlEñ½%ð‡¾×vÍ€©ñå‡ H‹ÍBYؾm`yÂ(â––þÁ6Nk™TnѹÒOxþÌ©ÐÆÊcÇñZÑ”o8´pÜÌ×û¥ä(áæòÑé0§î‚<¾é¥ÅW3Ë Âbp>*œ›z+ñšôc ·1Ž£ïrsR•ÉŽIŸÔŸï°$ H4Úr“œ±»ƒØïX'pD†´ß±-ИÖ *àõ­OhÙWcqß)Ô_Ì*Ež7ê»„Öø††á$9Òá¹=±.–/¤Ó‚cí¹Päeç¯? €"FXh¼)jÌ?:£¾xwÍj%^¶(ξ–AƒÉØêz„êŸKÆãQ²ùÒgŸö žìê²N_F~„âä ’ÓDKÜ`d æ6‚·o é¡Ô—½vôÙ™ 1vêÌ7¾H0 "ÕBz V8þ·â#%¦ÝQ×C %uZÞZ ç Ëp¸ŠÈ²dotyn?xò=-]ø ’ Ë9è~R€®£Ü¸ §A™ÒO¢Ml?"–~•ÙEnMŒº8­^ý¬ˆöÄÐU™äoÌWg¹äºè(CãԸϰq0b.;1®ÆÐRnÐCîì2îo±¥FƒZëlÛ¼v²ßP Ž q-ÄQ*Ô½ôø‰m¯VUmÝ`¯(кd›.TcÞ9dD_ÑÀW¸zG• ±¡Ö¨Ô.xç§}“G;º$*J»ìX\1.Ò½Ÿ{‰¾ü&+ç/Àø6FP]Ém_,{†ýmO>s*ôccy6í„n2üd»ÿÝÜü@ñ„šÒbNóÁD\;ùË#87zÚõ‹Ež£ù&9W»“¡¾è΃¶~ ·Çµ}!<ŽÓ¾6BÀ*á® ň&¢~€õ„ ZôþãùÏä6|ˆÔÙmìPø—”zãØ|¥6ƒgC¿îÊ&~]¿5ùé7H§Yë^ï2…>׳0R/]/ñi902X€éëQ«uG°&þ¾‹¿XjìŠoJñÎHl•±£ÙyœeÇâ„3ô‡‹z†‚²¦<%Un¢4ÔCñSÏ ÷Ș˜w«^ó±º÷éÅ Ãer‡KëùO†*óÇB'®åô2ŸU=´8uæ¦ÛŠ#Êv|—®hcô`ÓÉZ<¢›`ºœ„¢\³òÜ ×¥\ÁŸªËD9 “Îï N1¬´|öW84®Yʺ’™gðc¿Œ¨iß|sAƒ;Ô;q·ÚÝaÊ í­Ë­›™ÎuÓÕ*À2Œ¥Ù’ز‰;ð<æU@?äÎ["ʺRËŠ—yw:÷ƒ¡(G÷¯S.ý¤5€oï—^m˜²ž²1pŠ­ï÷cN/Ù7Bk »ëÝ›^™ÓeÍ^ðE\RâÝŽw{M¾é×O¥Z1^ÁÀ™c‰_[MSîÚ„0ÐVÐFé‚âmœkÍèÓµ ÂË¿„ëø±ƒR“O ¶J·Ü âß/òü¬ž.?Àjv ¼±õö¤M7OL|xZ®ç”È[ëV°aÝÉߎ Pñ³TÝ0”SÉùR#îÎØÂA¼Û²D[åLJH2½l+š9yXŽ G¼Ha<{:©ßK¼e®TU;³/Р8æYú2Y,/ü3Ã}ÞÍéƒFdÆ›’‰JcÙ!í¦(犮ãØä“±Ýuô­<Ÿ"Ká¾`XX$û÷Ûj[›G¢O µ·.åäz[î®=À3¦ïpÖó‡ÇÄ#?Vü ® ˆŽ¡O}âH»4œOÀ´o6ΑIâBø¤½»"_î¶…@" ý:ûú&*EÆF.ñÙ¼Yóf 4¹—Isͨô…ÐYï°Åêv °ô—£J8žÅâ'¹¥`Ýáâû z¿ÉfžiÔçʉRÛ#&€>û´²!º( ¾À©Õ)7’ááPጲz~œŒûÐŒ™¶ølD}8}ö†á0ýÙ’“¥EÛ*ŸK¥gP8U6vq •\a:³´&ˆ@Zu½ýq!CÌvÛ?þߺü–ðz<6R‡Õ¦LS:»EÐÐèì,½ítc&rÁmØD=¬hßo¦v$¡V+î—?ÙL]¤d™® ;E Mh¢—TB˜õMσéé—K'¹¢W2žò ctR ',™wè­Ä+Âî:–$Ãø(‚ß³4¡0¤Ð¾ã³«ñè}®.‹^žIT2ŠHø„3Ú#©Õ˜j?ìóà–ô¢™šYÜ~²?Ѷ ±½ˆîN L é6ÎØÌ‡6ÖX° £^3“û½°^BÈð<ÏzɨdMÞRŽÿ÷}Ï"E?fŠ€Q*…&Ë,à™ˆÓϽ1×ÁpÌõsáuû•£\gfÅ{íF9ôRªOnÄcÆöQ¶_Ç ì/y cá¢ÆÚ= õ>",GÂzÞ’õX*ÑV:5gªÍ.cÊqìØ£E‘±U½Xt•LÀ;ek>þæ¸ç¼ èûY+VÇÅ$,æ>{³Ó‰y3ˆ'¶Øû}£ÊU™ˆ×Ÿ‰Q@Õ®—©äóÕ¯øÃz©“IØL_î<ë®5ýFª2RDq™íô¡‹_„P¿W3ö«.pÀ]‹¼[ÚC*3úÚˆ}‚zͰrêç6ïquÈŸËdyz¯–wZoÃ.‡q…âmKu1TãqRÜñ"EîÄjÌŠä_6ç…6_øÊ«½³/¯kG²Ùø¡ãI—GZú«û–ÎÄ–;ooøé¥O'v·cܧ¨t—ax©uú7¨(vE$Bk„ J­Ì Ô(ž…(ö4p…>.Õ -‚Ñ ,[¿¹¯?׉ÉÑåPC˜>cê°¯‰8 ô¹-1´¥ºëòõ}â?æPc€h³–MÅyTíÖJyL»Xïb,+O ‘ª·Š‰ü“Àµði)Ü¡h æwï|]EâWR_¢êl“LÕ÷kÙ8n\IÏÈ]£Î‡ ·Ü—xÌN “ê×ðŸû”¬‘vâQÒÖ·â^μ()a˜BÛ}ƒ¤†½Õ½œÍrRŸ/‰ˆA®Ñª¤5±kû\E€ð¾ÖÛÆ·èÜ™§>GÛû&ýØì1Ê̈y‘BgôèK–kW]ô®¿´ Ù ©îÑŽXòïÌ1s*x¼¸Ø,ó/Ûc`—ú;ãämùsy…w6ˆvÞ[»¿Ô‚5JʉFCƒ»­· b‰È‡÷Æ îº×ŸäÂ4Ós‚ôªÞñΜelÏÓ‡W#çádÅÒAsmiYLÄímK5ËÊŽF½JhÛ:X=LÞÏa)#°}<±œTAFÔ¾‘!žd‡m|JJ×›ÆÕ”J>v€ÞM½´—ëâ0òºþ‡0'Þ†FBZj:ßsJ>¤º-Â})²¬m–R½mH°m´ ã¡c¾zÃÇâš~SÝx'"SÒÈ÷cy¥¡qüm|ÕŸ~ ç/õÑŽlwt]Ù ÙÁû?ߟ“À{ÇÎÇV¤CæfkV{VØE/Oº4œ`nßíèßdã^Øø¥³û¨£˜?QþµÓ)­4ïw”\ÿùèïmƒIj芌gÌ%˜ÜÑÑ¡2o…æ_¦ºAµ9 T9eòƒ‡8Kppá[O*MHÜ–·ØhwW7t;r<¶é­1~àîæ7/û\Éï™É×ÐbRìD~Löùâ=“h!Ênõ‰°}:!·ùJÜ¢ÅáºJ­êi^í ò+*LÕRö o'KKúÀÜlÎÇgýÚÜ}˜ìØ(¢5ð˜QfxU1¾ú-F„3ÍW*ÜÏôcù+&‹g—VhæÖHCúÉü÷I«Puäí·Ö5Bü Ú`;ó;×¶”¸(ø‘öÊŸx4J@Ó<„÷êu5±íÔ jP4–hÂ#±Ê!öÏ{í¿l{û^bX…Øœ÷W0«ieÞ|FU9=X d½RÓï^ïK¤¿òp n‚Zïs'oz?ÿ8ì—•øÿ¬04ãÂiˆ%P‡ˆ€¶„É2ƪ_¶¸Á]9mÙSg°6ÇyLNÜñì|…O›M+mÃÑÕÂãŒù:sq–ƒ£è³gèx+šK~Av>mÔ)Ÿévªdg×YI®éç@\ŠôaÛw—¨u ¿°G }¹ž"ÎùV’­ßãr×ïõÁO‡º“ûj?¦(–UË"ÀhžË¶KA†åA¦Un{²ûjAÊ–«JeëW eºnêß±Nu’”,<ëŽ%ÖËÍöÇçÝ̳ ¢Åq¢•H¯–¡]¤’?¤òXPÏàmÇì°Êv'húã`«a{"¢=!øÙÑEæAù Wk 18 å+ï±Ü8ßvq÷#QÉxêßc0˜õjâá†HÄ*˜ú¬öñ3~´zƒá&YÜF0“x®±„qx•ìg4Ûá¬9b“]ù¥FgãÊœ3‚@fUk}|êmž•–°¯Ø€öX#ˆØ3F¿¯h2=&Oˆ›Z‘Õƒñ˜óäœ4dÍ‹ñ¦¹Ä-,ZVîXNí´õaèzØýÚNñ³ˆq¶ôäÈID¥“]A7¯Ã>âÑ Ž”²öÉ®Èd<À‹|Uôš±5‘+å.Ó¿-Æ8™°³ z*uæ§[ÿ6è|Š1ûWai¯Oæfôúçñó8^ZÜ›o7ï3Ž¡Þ¶¤å»³Â£ë´tþ¡F«™VØëž“Xüdo°¿$;5´@oȽoŸóLÚ½`½Ü ”F©|S—oÕÖÜ¥’X=,ƒq¶,Ü9à$½|æ6•pøæ šÉ¦'ˆÊˆCì“·É)v¥ÕðÐ}ƒb@Gr#²uö݆(y&Óø®HerR–‚â¢Æ©—Ù¹l·ü8îC0SV.%•8mmn·nÄO ”ÃÐîbÄ7±’rÌeR+Fõ:åÝÛŠ²ß†lúÝf ÐÚó•j,$­Š kOÝ!@Ú6½Û52‰ˆW†©&*•¸ÞÜÀßE¿—q¾bZ€˜.½ß’ø[æao!\eâ‚V†«ÅŒÆ‘‰9Vé¼:ZÏÃw‘˜‘lF™YŸc·~Ë5JØ¢†tÂ,*jsu 㪹" ÍwÚÜ–Ý<»9ì~™(6I}Þ³L ïÿNU‹‘6N1♫Ë,Äû$¯¬Ôý´&±6–PV[`-,*3¼¾„Ã"õ,9 äK¬·N—õÊ+eL¦?êåì–²tBuÓ|†'›¿kúÉ—”n;d[9堰俵öÈáßU…“¹ Ã=¢dÁê²-PœO?aQ!Àã½µô«Þé¶®ÛŦÓxËöýLSÔFÄÊ;ž²`üàU¿¥ƒÚôº‘KÁ¸¥°¡&s G‚¥> stream xÚu’Ín«0…÷~й‹Hé‚b·M+„” eÑ5QÕ-±')R°‘©yûzlH¥¨]ŸgÎàãñLþ½nƒ…Ô{ f·Þ°Õ½äOeÃ&“•}ª{F”(Çlû¯F‹-v0Í7«ªº+Þ(qê%ŽªßEK> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qض*Õj¯˜n$HPý÷ëñ#xÙö?ŸgìÁÜýxÝLTÕîÌ$|äìÍôí¹+Í$ý¹=wwY[ž¦ž©L5ÎöOìµkËØ}ºÎÖM=Ƈ`úÒU¦«›v+ÍNmΧÓÁ@ãÁjÅ*³·­ÿçíѰé·¯œ÷Ï“aÒé*ÛÊô§miºmóa‚%ç+¶,ŠU`šê¿¹„Vìö#5±T>ÇW¨¢U°”¡Å2F[l ˜ 5æ¶GT°8XÆÂâD¹‚ÅÁ2Ád’¢è¡ÐC-®»X]£‚d>**ÿl»‹v.°Œ£±”<–T‡ÖÀ3Â9pD;pà˜°ësÙÙ­…N)¤ëI&âŒS?^`œùqŠqþä·5ð„ó Bœ…€{’ °$.ô çë°ó SÇqd­‚®AáEBu<§µŽã¼ñÌqèrxΛˆà_¯ÂñÉSê89q$0ùpûJA· ýRÒ5fÀ aø©§'¤ž!8!‘†žèœIDœœ('¿Ðä =cN|hH2ªƒŸ?CŸ„tº»Tœtâ<•ð¹QÒçF…>7jæs£"ŸûܨÄçF)ŸEYQУ.Þ?óyRùmžTq›'Íoó¤Å×Ozîó¤>OZùO)÷yJ…ÏS*}žÒÙõÎÜ/ßýÒñ6á%½>{å¹ëì‹èž[÷Ðቫs}‘Oí «ÜÇ=åãF/EðÑhªqendstream endobj 605 0 obj << /Filter /FlateDecode /Length 4556 >> stream xÚí<ÛrãÆ•ïó|¤*f}C£íøaœíJe«²¶¶vSN0$E1–H…”<ýž[ °!R“±“qmMi€}9÷súT³Í¬š}õê‹ëW¿ý263]©XE=»¾™éh•5f|PÑúÙõjöÝü÷·Wz~€¿íþ{„¿ý>Z®Öšùá¾]^™0ÿî°Ï~÷ ÿôŸÐøù=¶íü‹-þJô8ÐV^xÄ›%5¨ßïäÇÇ«¿]ÿñ·_Z›¯ÒšFÕ¡MÐú,öyUÉ®`KƒÎ çôla½jêšûß¶?áŠWÞÌWÇÒ®RzËø­|/üùk¸Ñ°¾:ÎïqW ØØj ·wð‡;‘··Aê¶IoPÆ¿ámûS‹P]q‡Cyý Œ_Ï×W¦™¿EâLë].=•Þjÿô 0„'²ì¾õ×J;¸îÖ2 #¼› _ÚÂK–ÑLóBÂ@”Á³ÐVyH?\ùzÞ" žÖ=÷7 ^蕃×2:ôýT€W>äÐLOÛ~è%Ñ“’,Žºìq?àƒDŸ ®÷kYŒ<Þ{Ÿæ*0CL=A×^YÛàªÖë;áÚ®C)¯|wÕ8¤S[ú妴¦P+W¹4á·²¤ ƒ²:(´0ŽS wæüäÎþ^êÊê~"S—VSºla5q¼;Æzcݰ>±©n˜Ï¸‡õh\Ó£mi®F™Ø )Ì„fþy‘Fšf„Wb¨uRPµJ¨Js:, Ü÷ºqÏÝ]tsèõ%@?KInDHþ„^Ž”7Ö*šØ¯Eä*FãjQpë“°À§ !h ¡jð¹˜F þK2}MŠÏƒ¨&ž&…Ádrƒò{+ÝžüüR³*K¢f¸p5MGzåõ—ðßµP ,û^ ÎÈŠ…ä ÒC©{Dy]'}ò(LÕèŠ6ð^/4Øä2]—"-Qv¶WÝFYÊÂËIàâ°2×ñÓz%cäùé.ïm¶Ž5ß?´(©íf-@W¹lÖ YÎÖó/QD¦Q×?âªPß>FPÍj;_ퟠõ€¯£¹°!8UCe°0M̵TzØÐZðÚrŸeÚÆ)X¨ÛÛ­Èø[n/_æ_ß®iMðô±,Nj|Æß œ ÌU!uúœéîn¿¹‚ í˜)qFõê•Õú“êŠ×¼¥Ò¦ˆ~îHQ;áïq3ˆ…‡nŸK‡ŒudÀñ’²c w1‚/5 ­3c£2ÈN«•ך×ürÀ‡5xwÅ7w2Ô÷2Ý v‰oJœWóøŽóþ´.ã%*õXÊÙL̳ºÌåü¶,™ÈùOKÓÕªêäîÄ0¡—BEé &H ½J“$À”p©ùÒå3~¸+9NÙ¦E¬O´ ª¹`âØÞ?t’‘žÛù·²Hﹱ݉)ºMT‚'"¹c™GL®s·e³,ø¦7ËÀÒ7S¨5`/¹Î´XP ºÙèËP«sÔñbG¾‡q¨õ"iÒêÓZé^¿ŒüìH‹G zV>  éºGÙy\:ãtÅÏIí´"ÞðÁµ }]M"¿´~A3»ä€<‚±«ugS 6k€ bÆG$ÂÒÂo³g·K’ÏäªÖB‹@?!°Çº?>J?¢àûýN¨^Œ÷ r­ës²Ã]†»&ßû}‹bú.HW¢7 „Zã†ÔutmnYýèùbÉæì~`¹ÍÞª±h7îŸÓší ÍûtÐÖìí&êH„:¨ÃöÈWŒìØØñâ;n<Š› #ô‚äÅ®;#ä0\T²âFŠ7*Öúð8 ;’)ÓÄ¡‡Êf|é °!i€*«+e=i‰ ûz|Ðþ0P™#•º¢ñ“ˆÛ™hfRÜ_ñ:{gqJçì•ïJLgŒõçß˧<¡sKê– x»K–Y ~¿ àDÁ€Np~s]Vš†]²|žöÇéy†[ÕAoó‰&M©ÜÙÏß«ÐÏÍqWÕ¬!‹zÈi{¿ýXØ—WZ_ '‚j [Ö«£ \À’È•HVÌub¿Uo+C·Àë¼svÑ1;vZ£S8 5Få‰ Ð*Çû.ê%t)váj‘…Š`°wd£cƒ/]ßÓšD•DÞ¦XßnËïØýqØ.†ol0JW/°x4 ¶RAÔsϘl­$ÆtqȘÐNÎÜîw,¸QЭøœCV«.´ WBK&Dd°~¾Ûl®îUZÚJP•VwÛ²Ó"Àd,[_ˆšlEOlÖ§ÉöE’­¼2}´uŠf-Ól8#_Ù,–^¨…¼”À⟦¬Á……0FÕóì.2ãÂÀŒ+›•ªûØ…˜(H;Ê<ô‚½ QT€ô(…n¦Ø¬£‘0hÚŒB‹ÿ“‘ šf•1>Jã¼À¼†ü§{ÃW3+t1í©ƒEoX)ÒB2݆ͯ£ß¾îUy‡ÚQXHƒ¡ó`—)Šl`ÕÆöÎP!E¥7¥¹¼r>SpÚƒ¯JÛóñÅxê½W”ïðM‰¬b> ó,AöÿHœƒÏ7àŸò³sðí7_½š}G¯èÁq–´2:ÙfÓ‹]oq {QäÈ%Õ±Ê$4ô*-®å6¶L§C‘ï=;”t}¥)؇ÄnA€ÓÒîJ¨·Ê…S«ÄO…{¢˜¾¨ü½-Íc”eý­šžÆ>+\³àó²4Æ àz~Œc9’Ý3Ñëˆ+Ö¦î‚ב„˜ˆ’&ÙI t’g¿ë¢gxòg³°ÅL{p} ;zþ—‚àE£ °"›02òòH¹QMÏÇŸ%xlN/‡NÀoCÐ‚Ä f :F‹²î¼ßÚ+¸úCÑͧGóé :⊊Fÿ˜0¨¬.Äà·…E*mâÇ‹Bž.câX`âÏKLüYYúª:8бq¨RóIÁMB8C6 ŠŒ-Sª»ÚøKÐßjç±ô2wë24ey#íõ˜“×0FTÅz0jуo3«²äôT  ìÈÔ9‘Wú¼Üo+œ‡£½0ÄòÒ uÙ¿5•É#<É p¹MÁN¯ØÉ¡FÐÉ"-™t`ÓÕcÓðä0U_ûx?(ŒÏJGPøNÞLJÀ#rA“äŸÁÞ/rFqZÁÉæüe›3ãÍM‘g£\¯â>)Ÿîh]S&Ò¿‹š÷dѲ¦1½É<™ËÒüšyïC‘çÇÉ{ï+X.ä½…iì\ô@éä¯&ó0Ce&Z+gL(£ e|çB¶öAåsHé­œ³ÿ+j9 ð}r_\Ö&œ†'Æ\§­I?’<¦.äØq8¥ê 2€^…¾BŸ‰v†|Ÿ‹W¯˜]•í8á€ÃÒt`ü=·Q±?íRÞĤÙ"€7K Ž”ÎÁñ,sàzÝ%„̧X¤$’sy<ê]Êq•ĉöÈ#É>8Æ»LÙ²’Bq“Œ–{¦‹lj«OÏ…w}\‘‚f÷ƒTJŠÏtÙ«“WégH`ìæ‰¦HêÝ(ýÇdžÂè’©Ûà |00‹Æ€‰*Î?¦ ”ä¼ï±£Þ©@Nÿ?’sɉ—Er ŒÀÊü±ÿ-»ñUýQbü‰ß”1ãtÅ,†›§CM$nÚÞ »-Za¦ñIX Óø~$Ìc•ÑPUMbY¯¯ K‹@8ÍÇ"ñ“óacrhüYi:"6d¥)tÿl±–nBæoJ±Í@Bø &½ Þ]¤‚[/—€®ùÀ ³ž°¾”5Ë™i¶’ƒ)Ö)ߘâã0¿dÝ‹{/ù%h’•»3¥þXt"ysdaõ5Ńh/=0ú—ÚÃè(šãÊÒaÊ©/‹¬ãy{â²ù8-æd>Lq/œðßí8Kγ‹γ.=q×VsÑ–þUœh™ …å­ÑÞ0baPŒ5|ªÊ¼ÑxÅ“ôúƒ}½\[M‡âN…ò#G ŸÉÍ“À:†ç­=ØU^fôþÒN“|p*Ÿ/MJ[,Áf|Xhg9YQG¦˜¨lí Ljáç;F4çxÕQîx‘Ußïñç#ùŸÃ@›”³l±À‰ªVû~ë1¢Ît\ðòñ¼ŠÛyÂiªTÆç“§eàâòã²²Pxð˜óŒG5G†+@d¹âÚŒ;òLlô˜ý„áT “4àÜ?M%%r=&•¬˜Ö'R‹i•F³Ç¢ÝÖtï/œ³s¬2ß>¦o­¤LÞôý `—w'[Íi {$Õ½/  ¼™W¯ üŠŸXY`ÝFs`ÍFLÌטݘTóÕš:+Î8>2~¨ãSâÓwIò@õÎ:Â{’¾é7¬PÃöC+Ävàv*„andw(@°]75ßæƒhÝÈót>‡‡ë¶¦²Œ®hX'ïøäÜÜõV,ÃFf)¯ Ƨ2u:K…íÉœ£<õ]^“xèKô¥†ŠÑáÍL¬t¤®£ÒU§#I*>Ü—+wÁ÷±ÕHe]`|³çŠ(‘¹]ò>sî´I¶2zB%|ÂD–²Ý°wËy—³> stream xÚmTM¢@½ó+z&ÎÁ±?DƉ1ÄÃÎLF³Ù+BëÈGþûíW%nbÒÒŠéó6ï¢ýµ±BÓY±³¬Îmפ™mÓêd½¥”+±L’•g«üáN9mà´ò ³öWŽ7D„Ê Ù”ÏÄB‡„1ˆˆ5‘*f€HÖŠ‰ÀázAl@¸‰ e R3„ûTEÎ`̇ÚG=ŸÃÇŠ€£ý¡O3úÎ~Òö6"i0'¦µDoR3ÿl‡À3Æ`žÅ¦\aʳ`L±ÔŽÒ”3!>ÁtéeH˜‡k®K¼æº1zÔ\7FÍuâ¹n¤ƤANí‡4cºAox*þMÈc7˜pÌ|¼ažô”GSþ™äY¡®OµŒFï~Âüœ4J¨–2ðP-mà-ˆYƒY”GÆÁíÑÂ_«v_‹ìÒ¶nchi°Eeï+ÛÔ ¢èG»>|_púL¼¿zKcendstream endobj 607 0 obj << /Filter /FlateDecode /Length 739 >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°ÛªT«½Bbº‘ A!úï×ãGpÙö?ŸgìÁÜýxYOTÝmÍ$|äìÕœºs_™Iöss îîò®:L;ü2¦6õ8{zb/}W­ÍÀî³U¾j›áÁ’Wmµ?×fd}OÒæ½i=û°û7ógRúùd{nöCÓN8¨oͰ·”of™-±Ï%æü6ý©éÚ'&9ç¶P´uÖ`àL/"Øt”µkÚº¿(a[è „duS —‘û®ö$°xýqÌaÕîº MÙôÕNž†þÃé{¦Ï}mú¦}g÷Ÿ…Ù‰õùx܈` étw©8éÄy*ás£¤Ï }nÔÌçFE>7*ö¹Q‰ÏR>7в¢ G]¼;~îó¤ŠÛ<©ò6OšßæI‹¯yÒòkžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçIg>O:÷yÒ…Ï“.}ž2îó” Ÿ§Lú> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°ÛªT«½Bbº‘ A!úï×ãGpÙö?ŸgìÁÜýxYOTÝmÍ$|äìÕœºs_™Iöss îîò®:L;ü2¦6õ8{zb/}W­ÍÀî³U¾j›áÁ’Wmµ?×fd}OÒæ½i=û°û7ógRúx²=7û¡i'Ô·fØ[Ê7³Ì–Øçs ~›þÔtíœs[(Ú:ë0p ¦l:ÊÚ5mÝ_”°-tB²º©†ËÈ}W{X¼þ8 æ°jw]¦lúj'OCÿáô=Óç¾6}Ó¾³ûÏÂìÄú|<î D0,—¬6;ÛÏúþµ96ýÆÝ•ñöq4Lº± MUW›ÓqS™~Ó¾› å|ÉÒ²\¦­ÿ›KhÅv7RKås|…*Z© -–1 Üb[Àd¨©0·…°´8¢‚ÅA ‹å i‚É$C#.ÐC¡‡Z\w±ºFÉ|TTýÝôí<\`Gc)y ,©<$¬g„ àˆvàÀ1a×ç²³[ RHדLÄ1>g~¼À8÷ã ãâä”·5ð„ó Bœ…€{’ °$.ô çë°ó 3Çqd­‚®AáEBu<§µŽã¼ñÜqè xΛˆà_¯ÒñÉSæ8q$0ùpûJA· ýRÒ5æÀ aø©§'¤ž!8!‘†žèœIDœœ¨ ¿Ð•ä =cN|hHrªƒŸ?GŸ„tº»Tœtâ<•ð¹QÒçF…>7jæs£"ŸûܨÄçF)ŸEYQУ.Þ?÷yRÅmžTy›'Íoó¤Å×Ozîó¤>OZùO÷yÊ„ÏS&}ž²ÙõÎÜ/ßýÒñ6á½>zÕ¹ïí{èžZ÷Ðá‰kZs}Ý«ÜÇ=ãã?FÏeð‡†§yendstream endobj 609 0 obj << /Filter /FlateDecode /Length 739 >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°ÛªT«½Bbº‘ A!úï×ãGpÙö?ŸgìÁÜýxYOTÝmÍ$|äìÕœºs_™Iöss îîò®:L;ü2¦6õ8{zb/}W­ÍÀî³U¾j›áÁ’Wmµ?×fd}OÒæ½i=û°û7ógRúÅd{nöCÓN8¨oͰ·”of™-±Ï%æü6ý©éÚ'&9ç¶P´uÖ`àL/"Øt”µkÚº¿(a[è „duS —‘û®ö$°xýqÌaÕîº MÙôÕNž†þÃé{¦Ï}mú¦}g÷Ÿ…Ù‰õùx܈` étw©8éÄy*ás£¤Ï }nÔÌçFE>7*ö¹Q‰ÏR>7в¢ G]¼;~îó¤ŠÛ<©ò6OšßæI‹¯yÒòkžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçIg>O:÷yÒ…Ï“.}ž2îó” Ÿ§Lú> stream xÚmTÁn£0½óÞC¥öÆ6’*ŠdrضjªÕ^pºH‰A@ýûõŒCf»êô¿™yã'æîÇën¦êö`gñ#govh/}egæç¾‹îîò¶ºœ­Ÿ­­m=Oìµo«Ù½Ùæ[׌ž¼uÕéRÛ‰õ=IÛÆú°ûwû{VÇq5;\šÓظî{3ž<ç»cæcìKŒaÊ/ÛM래xäœû@ájÓža†!š_u°ù¤ìظº¿Ša Éꦯ_ø®Îþ2 y÷9Œö¼uÇ6Z¯ÙüÍcÿ‰ ¢ùK_Û¾qìþ‹2²»tÝÉ‚ ƣ͆Õöè úÙŸ÷gËæß x£¼v–IüAUÕÖvèö•í÷îÃFkÎ7l]–›Èºú¿³$dŽ5óT¾„W¬’M´–Âc™B€{ìp˜”!°ôY ju«á»Nõ3>õ«þìû«2¯bŸÆ±“ä)`âPŸÇkÀ‹€ ÀIèÀ§ckgÌUPSH¬©¯@"7#?³d€Ã 9aFíïm-P§ˆ!.@'—1ð… cƒþ0ê”9¨Sæ G„‹TX3 qxr‘ƒúyŽ…¸ýB£†4 ƒñùA¿AN8pÐ}%è— ¹úJîÛxïxÀÀÉïmù_ñp?0£ä—’ä—ŠÉ/µ ¿TB~©”üRù¥ù¥tÐ3~N>ª‚|T%ù¨9ù¨ù¨%ù¨còQ/ÈG:%uF>ê%ù¨Wä£Vä£Öä£6ä£ÎÉG]º$ ' $ML¾˜ÅÍ/üÃð‚?¶ÑmwT—¾÷kW® X³·­ÖµdáƒëpZ¾ðõRF#üƒÿendstream endobj 611 0 obj << /Filter /FlateDecode /Length 2473 >> stream xÚÕZ[ã¶~ß_1(P@FW\^D‘ ’Û"› š`±;Eš>hlÙãÖc,Ïnö%¿½‡‡‡)SÉ$ÈK4–x9üÎý~³»á7_¿øëí‹Wo”ºœu¼7·Û+nŒ6¬Súævsó¯ªYýûö»Wo:›bRh C~äB¯D5üÆ'øs†çÃg«ºiTõzU+¥ª·Ðt€§¿ÀŸíÉxð=[x…o%mÕ»Îþa¸¥=Eu!v° »w4ãD,=®j¡È¦}¢1#È\€)8ü»‰ÄôéÙêiʈâ¨f¡˜n:Y¥¶5EóN÷¨< <ðÆT_ª’Å•ÜO I~…Ÿæ†´D…EK{ïˆ7Ißš¦š ·¢,@Ô´ž]†˜®-“_#B4É0AiH„ØÐŠ9uÍŒ'¹õ†Tê•ࡎÑTT¥Õ“Q\ˆÂžì(¨’EʾEkxöôO‰ÑŸ½E¤l$á( TSàYT5<œÚj’•öC·Døˆ{õâ›)Æ(¥‘œ×@—é|Yû¿Ç&päïƒãív Ž´L[™c Ñç1 V\¥ZšBRå¤  ~2N¿1èL étIOð³ð´>\å9ˆç‘êÖÀZu­SäôMa éÕšK¶ŽÞÆÝp'í'÷½'$¤ñ}ôƒ\ìê‡h…€*¹bJÙ-Ї¨¸+qÛJf#%¶ª[ÈOß|Bä8rdFlF¼˜%wO’.m^®øè]d¹@¶Ìr|GcÔ,_(ݤÜùŒý²x‰ºá S¦ËMétÆÐTÿ‚ÐCÝñI©VzÑm‰7+0áõÇÿ÷hðiëÛ­ûÁ¿‡‚Ì`‚ˆ£w¾J€Ž8u¢ˆÚ}ƒ'̈D¹§)D´Jˆö ¾âõ¥S„ªžÆ´Él+÷¥÷™)ÄêlºÌ &µÅXNE× €ÉK@Ã$oÅ15ä}(¸ @v§¹hÓ¯àÿ‹Sv󓿥–Ð Ó`4R3.ÔUñ³%w¢ô9FÐØó<§‹%ÓûÙj.-±²Z®”¨âÂQ?/gM¢³I‚oð?S)WÈ)ñUCs6Ed¾+$?ªP—G8Ì ÍR°MDÿÍØ{éí&˜J, ^ä’ûu(éêÂѽócÅ'UbÙÉT¨â±Öï麗KÅð«ke´µ²þ ¼ª†É.µn‡r;ãîìH=šcˆ®±?å*VÆôMwÅž£w,÷kÙÂ.K6³h Á­¡c¼ë½è±Áí ·îѹúD”ë`ÒˆüèÍg}¼÷é¡´%0†Å$°lá%?o  “a* έ&Àbm"Öà]nÈî>H±F8Ü‚#æ–$KCͦ|ïñ”kȽRý±Ø9£SrÖX“k%æ*nªõÉ)”,vÍ¿Ô)XÄÅ®CÉ@ì¼í Ÿ[Öån«möc¸e†d÷1(?±Ö˜o¦Ù8ì´s’:—dk CÆ5 Ž/Àxö´Ô½¯¸‰Ýôƒ[K¯²§Ú†‰Iâ.åU­ N%AÖêä„-‰<%X«L–+]ìèÇán)ÈÚ^–ÀiÎDkRlß'»=)êa #L7"Úa\,%˜R¶ÌÛDçẼ•MõêRp²ÖG ø™|$·×&§N"w ÐMh¦q¦22¾g »÷ß.מû‡%K—ʱ±Þ-¹îéeÆ’ÆZwë—ÉÊWP f¸Î±Pø5so<ßíúÌY.¢,oæ~×ú2² )–a¤rNÒÚ«ìØR­Š>ãD(dæý(Ö!W´<)µò³-èÚLð RJŠ<_Yƒ<¾%j-ââ:0ßÂÛGŸ“m-.¾§÷‚7šÙn&÷®lS qe_Z`…°ºfGr,8-3-u½b%Ùv1ݺ÷–v°×lg«àÈPŠc~ôü¹æ°°¨ׂQ3¦ñXË8²¸q/k¯[<êvMˆ2ØÃyâŸh¸ ¾\Ȼܤ«M+¶bÅì¬.ÕÃ…‚ÓÙÑvÛÄ/§è7g߀ÜQ=|K°[Ú)õsÃi„­~ðë&LÁÕrŽÀ%ääq ÕÏCÖSØFJ¨1d#߈纴„ÕÀ°vã__C…ƒ ä±à¦ÂŒŽ^Ýê”cœTB"ºs&ÿÉ[·Ò³­ÒÔ1ß‘å[fËŒœï˜g‘C6’Y¼ùEo­•ìÊ›µRÅÃ%ã<£¾\í—ªpFÓñ`^ƒ,Eó–iÓ¤Z»§Ëã4¥É¦@üÆ&jIHÓµ%L”Ä2Õ¥»Ê‘ªüé¤ì`d»FDâ¡‚œ‚{/ìõ¥/n£îB¹ê ºËÁÀ`ËÚnvýžuéPÔ°YÉS EAkŽK‰Œ‚²KÈi¬Û*ºŸá§Ç„´ž‰ºíœ—È[¨õsPF{½|‘è ËKyÖMØ´C¡v6<á¸ÒÝ•yeÔ€˜+³‘å=oö¹.š–œÁDŠßVÄK&EôôÑ»ôþ'¨~_èŸbTHWS0©™Ô U|8A¦jQ½”wȈ:ŸWך¸–›šÊ·âyŽì8“J?ã@§|ö•^‚ý-qu÷|VÊ‹¿ãh›ÔÞIôÌOeþ?N‹`waÛY­öÇœ.ˆ6è„w¤“¯’BtŸ\\„Ì=F=™š¼ºvš1õ\ôé‚l˜°ãÍáßé’Ã]kýÙUK¢«þQh§½CºxËu*«[+Dõ¼¿&"¹a3´„¡û˜Ð'iÙ&¹y }:¹+áÔ—^„´ôØ’)_§·`¸P ‹5ÉÍJ¸¥ì¨OÐ}“H.ErË)©O$@SM¼,-ÙmyïœK@%%†ÂåX¸¡ —º-NûÃ…š¿…ºîWÉS7[[$WPÝs™ÊwêÞDæÌøK׉1“°Ln§ë™öt¼g¾f¦KÌE,0£ã%oÉàÓ«?Š^Câ¾>ếîaW^¥ŸåTèâ;^Œû÷ßnüË„âÿq„߯n_ü¼zË„endstream endobj 612 0 obj << /Filter /FlateDecode /Length 675 >> stream xÚu”Ao£0…ïü ï¡R{Hc›IE² H9l[5Õj¯ 8]¤Ä ‡þûõŒCfUm‰óçÙŸ˜»¯»™ªÛƒÅœ½Ù¡½ô•™Ÿû.º»ËÛêr¶n|¶¶¶õôvxb¯}[íìÈîÍ6ߺf|ðæ­«N—ÚN®ÿ›´ýhY »·¿gÕy8£à³Ã¥9›q°¿7ãÉÛ¾q0_f_Ë þ²ýдGι/®6í3Dók 6Ÿ"W÷×Tì#!YÝTãõ ÿ«³¿X¼ûF{Þºc­×lþæ_cÿ‰9¢ùK_Û¾qìþk8ÿrw麓… ŒG› «íÑïéïáy¶lþÍIo®÷ÏÎ2‰Ï"d«ÚÚݾ²ýÞ}ØhÍù†­ËrYWy—„‡ãdͼ•/á/VÉ&ZKáµL¡À½öx™”¡°ô…Y… juÛÃwöÏøÔ¯ú³ï¯Éx¼Šý2Ž$OAËP‡ýy´½º„t4îsíŒkì)$î©Q¯ "7A£?gÉ@‡c(ô„3jok9E u9¹ŒÁ/d86dqð/@cNiЃ9eyD¸H…{f¡®@/ÃZô`~ž£G¡. ¿Ð˜!ÌÂ`½DÈoÐSòc_ ùåBÂZ }%÷m<;4x²àÇ{[þãW<ÜœQ â¥$ñR1ñR â¥â¥Râ¥2â¥ñR:dÈA‡3NUAUI5'ŽZG-‰£Ž‰£^GGGG½$ŽzEµ"ŽZGmˆ£Î‰£.ˆ£.‰£áÄÑâh$q41q1‹/üÂð‹‚/fÒm|T—¾÷“Ž ³·ÙÖµ¬ÂÅiÃÓKýõN‰"endstream endobj 613 0 obj << /Filter /FlateDecode /Length 2489 >> stream xÚíZKÜÆ¾ëW öb`¶Ø¾Œ8€½ŽØäåÀáìšW8³+é’ßîzu³Iqw-G@É;M²»º^]õUq³ÅÝ"[üéÅ÷7/^¾®«…ÎTÕzq³YèÚ*kÌ¢ÌKUÛ|q³^ü#¹Þ.uÒÃÕáϮ㠵ý2µÖ$?À¸Y-M™¼ƒÎ9¾æW†›ŸñÍ5ÞÛäûß™ u²à‚ƒÝм¿äåeùÏ›^¾¶6æÒšJeB9Îy‘‰T ’‰'§ÎéEjsUÏ¿qŽpÝÃu‚ máZ˾ø|¿Lu^ê$ƒ±‚+‡ËÁ¥é75Y‡wøÜ„k¼®€«–9y>SmUîêÇú«Üé]j ]‚F–ÄÔ˜C›ðo1aŸWK¾/<#¦T81òÓ2ÍM¾åŸB¦ã/ØSg®L^ÁøAtuo@~ÃK•\nî ¡ùså*ÇT_/+—ÁÛ\U’r·-ÿ¾¬,ÉŠrÞÞ‹Ð;~ù6ËÑ¡šÃšïÛäÂà²Øð¦ ¶jv^Ø‚ˆïRtŒc¿ç—D"Ð’üCÆôtV°­æIþÌÒ»>æ’&´#‰? ¶¬”6>ŒlD,dùƒøÍ½P|ˆ|önN“©ÐYéìó„t?·Ú@¤ä3Ã7þlò÷hN¬< ¯ønCê™ã_;§œóü¿.S™KáhŸ§-Ÿ%ä†,‚šèöKS%÷{æ‡üý>!ï\B‰ü]óÌÖ狎Há¨õ÷-Ž·” : ­,½Eúç„NuRçn¢êß/<8£q6¡FÒK*!cžb(¯”­Ê/âEE®l6rH<¸ýñäU‰.EÞ(88Ì#`òÙÇ-ú;:}˜V[²9 ­x)L~ Y{Ù¡]39Jôs]«ªv_Fb£ª²ö¤¾¢åï kÊ•ÅØÊ¨„imH¾!‹hÀ·MßP6¸È«þUaXê6¹Ù¶ž;Öt˘Å>Ÿ›½ŒöÞ³aúŽ­@›4¸åóÊ\¼×BM^ÆÌíã-Ößy%Jß}ä7Í™µ¤s3 ÔVe™ ˜ŸaÅ9æ?®mí#ó/“)òØÏ\Qlâûó‰V“´OçØ‹³þÍ?s&ÊhMÈÝqººjÑÄ€G¯àÉ{Ùžb»ì²“ëʳ4ã¬>ÅYÁ²AðõÍ Úø *ÝD8fq3ðJñS,y-\µ¢®OÜòû)‚œÁ9¢±7Ñ\h½š|`Tó¹øþyøœi­Ä®{&ÂV*„BÀ£g†Àér\ èh~%ÐDsuæuTYøuŒ‘SÏ©]XúETÓDQY¬é9(…š“ÝÍS%AŒ~cä+–ÙÀ;€a²„~ü²æŸ!Þ=kvÚá(Óvržæ÷/#¼oHR—«Òê±E¯Íøóð¯Pl_Ú˜)/™ò1Ãà–qŸ_ 03™±ì‡z˜øƒ0ÐJ1¢ƒÝÒX‰d‡aáPÌ=QH¼hkÈ{Œêð) ^í™{Ã=ƒϼ¢éÂ!ÍÂ5 ™ÄuY‘lJÞ{ãÑɰj r"Š˜¤ÅKB›b„Žpj'<øyÚ¶}DR¢`‘Xæf#¥÷ÞË"ÜEB¶L´ IJP+8{Ôó¹AnFÕ* ôH()Àú† ¯·ÈÓ,Œ-œ‚3ùûЉB(÷K;â`Z=*W¬rêó@°,Þ‰£*yW UØAX‰3§P¶¡Êy<•ŽÃžbõ›\ÃiÁö˜¿Î'0ÉZ`¢ZŸcbzJ>ꔉtPÙ—¨ù2(„Ø+Gì鼂Юc!·ÍœÀ©‹{\¤7t²ó‘ù‘ŽVàxÒêÃù;äè†ã.wí¾~²q‘ê2WNÕcý‹]”Žz‰Ëýä½Õ|ÈŽ«Íø(D)6/ÿï†ÌýÈCJ3,åäÝ[ñ…?Á8 ¸s;:îôaž¦…o¥–Ž~#X§=g¸©Áâµýò€u…}¹ |wº0Ë>5—H0ð«"6)'M3-8ùž ©sþžaj—œWÍNr,<æ†%ë$ þ3Ϥ9N’O ¨³ž#Hº ŸLÚ5ûŒḬ́øô½¯ŠÛ³P½l‡Ýiç;j„xcΡ§í3£NwQäŽw¦æwsñ®Þ†Èë¦ hÐnå?¡ìÉ)VË<ƒõUÆ8D·ÁÁ¥Û·éJG·‡u{¸ðsZp|húàßù±¸’)€S´×› Y€‚žÂ¸RÞÐ YóØŸà ê"õAûÞ¹h¼Šˆâ€-Ïü “ Ó“Ýo·Òk>v;v 9/Ï D–Q‘p‰<ýò|‘G°´)Jÿ%ôÌ®ƒ\’^Ž>f¯%–€µôôƒ‡ÿ²0‡v UÛ€ÅÉjŸ Ìšðf!ÀCAaGÓ¸ä/=îí|Ó«HÄ4föj¢Üræ7¡¼éÛ‡ª6ÈšçL-%Žiý±—´„kD…\¶‡ÑÿŒøßW7/~R1þwendstream endobj 614 0 obj << /Filter /FlateDecode /Length 750 >> stream xÚmUMoâ0½çWx•ÚÅ$*B²ó!qض*Õj¯˜n$H¢$úï×3Cð²íh<~3~Ï~î~¼ngºj÷v¦9{³C{îK;Kîºàî.kËóÉ6ã³µ•­¦Ýችöm¹µ#»O7Ù¦©ÇÞ4åñ\Ù õ=ÈØºñ8‡Ý¿Ûß³ò4ÖBÎöçú8ÖÍŒø½ôí>sIv›dXôËöCÝ6OL xû9Œö´im$lþæ6‡±ÿDŽÁü¥¯l_7ìþ–šÛÚž»îhãÁzÍ*{pþçÝɲù·¯˜÷ÏÎ2‰kA¼Ê¶²C·+m¿k>lp¾fIQ¬ÛTÿíÅT±?LÐØAù>J‡ë ‘¡‹e .1›ÊPbéªpqH I$\kL¸8HbØŒShÄ…r =ôêzŠã51Xò‰Qùg×_¸sµ‚2¥äÄ’òÀ€+Š Ä ŠsˆC:CQŒ}.'c-ð”BbOEðƒuê×+Xg~Â:ÿ?aŠÛàj îB€.U ±$,ð¨›ĨA¦ˆA 2®‚žAÃ%‹˜òâ%Õ"µñ 1ô9h¨M„ _®ñ¤)ELN 1éÀs¥ ×þRÒ3fg =傸aîCÑYj¥ VÑÝà^¬w&L˜Ó=·° ½Ð3â„nqFyÀDŽϠOLüñ5'žpÏZx?iéý¤•÷“^x?éÐûIGÞO:ö~ÒÚûI“‡4ðÑíˆÏ¼Ït~ë3]ÜúÌð[ŸñÕgF~õ™QÞgfá}fBï3yŸ™ØûÌ,½ÏÌÊûÌhï3c¼ÏLê}f2ï3“{Ÿ™Âû,åÞg©ð>K¥÷Yº¸¾Nœ0³`Â^Çayî{7)q ã„ÑW7ö:©»¶ƒ*üሟþS`õR$m¯endstream endobj 615 0 obj << /Filter /FlateDecode /Length 4653 >> stream xÚÍ[I“ãFv¾÷¯¨è+ÜL¹p„ãi4ańԷ±lUE‹K ÁjuËþñ~[n`²ªÜ#Íô¡Š2‘ËÛß—ÍÍýMsóÇ7ÿþþÍ7ßsÓ6jh†öæýÝMßÞt®Sƒq7ï77]øÛÿzÿço¾ú²“Ò­ƒ!¨Ë6­»mã'ø7=Á¿ü}ü×Û¥µfñ‡Û¥1fñx´ƒ¿ÕþݱǞ[îàî+l\ídzŒ´…¿5·ÿ—4ÁGyþñÖùÅj‡­zñÇÛ¥î\ËNæÃN‡{~›®¹ë¸«7aNƒ¥ìoiœê½ç]âhÇ[ÿü7Š­Åàñ†¯qe°›?ÐÝ[¸®I¨©óéZm”mú@Î3ÑF–ÎýËåéNùH|Y@eX­•±Ã|Ôü}ªŽªa¯qØw°~oé­‡‘é†ûá½g×ǧ]"À/]øÚXÝjk”v:ÌùI¬lA’\#¯' ´¸§Íl ÅãÏHzš”ýÎ ìkå´½Y¬HAs¾Íæu¦ùW"5þÞòzÚ­|¯ÜàÃ.Ï&—m§ZË-ïq¢=ΰ$©á –1U„gIkAÄE¾X¦OÛ -ãÄH/F¼v´ø£¼8erGŠE/m¸1¢®d·1ªëMU‡‘+L’ÊÞ HŸÍö¾´Ý°øÓ§;F9ñƒÇÕuúç[ç«{l˜ÞaKÇ¢…S~¾ÜÞ‰‰ÅŒ—L_ݵÊê¡ä攑‘y‰ﺠìÚ[c׬ƒ¡c4 Ð3ÌÃÖcMkœÞâ«:'6VÐ÷ùg5É/ÿÐ"ˆaô2?<ÞñïNßá¼Ë`Ôh5ëÈbZ´ëyiܺ´ê}¤a¦ ¸% ?p7ÖØÇg"ZÃÔ[¾ÂµL°OÓh2M¤Ëx÷þÇ:/Ñäe'"ÑY Vô»ÛÞ²Á†÷°9ÜÑüð hÖf+*…¿ÜmzD¾~Ã31%¢}›Ê÷¸.²5»ô> µ¼ÚLlLÓ/ÆU¤ô[S;õžDah±ËœXA´‚ŒhßФG¾\ø—wŠÔ ›‰üÂfb É؆àgt›«»cáOŸf˜dÒ)øÖ=ÊŠvCZR+^&˜ø†=VQä‘}í°xŸ­ A¦IM´˜F¾´îø$òoPºã®ÆùXuöUÏäÁ /8¸i:'‹šŽbõåñZ(~·Or¿~Æ’·¶W^çnÏô¸ù`Ū^Ì Jw]xçr¡5«©U×t¯pÚ­ò}?š7ZsÚ^ ‘Ñ‚v}.mxK¡Ð>óÎ?g#ÕÏôÍg]´‘ÖlŒ¬ö%ËŸÝVëâ¶®3ª²Ek”oâ·!’¢¨puÎl®¾Ó OÑJ›†ã†{S´)¯?Li³$çlˆðýsuK Ràõœ*Â+TF«ßge>ñéÏŒj1“zÏÛœÝÊÂW¨äÀ‚­ÕvºäÐ¥¡µý‚ÌûßP ·‘Ð0Býx’(*¶Y|}ÆY?s(øMy@éɬ„É|)6ìb®áU^s{<¤aÄ7–Ãö™ÁưbdK—‡›ðm¦bÐVèÿlŠ÷ìqÇø+RG×YØ@¢` É:åz—Ìw17uu Ç—`0ÐQÞtAîY¦†Â¨(éZÖ‹LgeF«´5IT/'t "ó×M¨g¶(ÊBnú?=f‹p3E6]p6Õ¥öÊ&Ú|_Yê ßÿ£ic¿lÂöªÛ4¨õ…Q»”¢ _?³@b¨Ò]ê,^sü›¨IÒlÕ´ :ˆ¯C€MkŠ*p 2 «sŒ>uÏIØXºw¶&qˆÕ¯äs65ºbîÜõ3N^P¡k"³%ÂY)y0¥M°YÄ•r6ŒvÜû.Äñ{î^Z³hÒããEÊÚ¾0¥{¥ÚøR4Š}BBˆR¯‹dpâ%²A3‹ñ ‰ ²‡už!âê HY$zrÄ÷ò¢-ÌE«UÓ_úlpø®t¬d´ñæ‰ÓÇ+ƒßè}B áK:‡‘¢YG_ù"P(ÓÒv°ÊúáÿŸ–ÚVu)-]Ó 1K†UE%Bº‡œbØó³lóŽ)}ÉMLT$â^y¬€[ º&ÚxF.#bÔ:GdÇßgó%ÖW×pÎõ¢à˜=íÉÇŒ„Õ4‹èØ6[ z3`wA7pÚý *›ø1ƽ[‰‚¯£°q¼Ä/r¢à»Ïâ8ØvºâUÁ+D‚{FòÍRá¶.üá¶ñ—PJ’­àaI'¯!©d‡÷7MÙq4³x𢦳ӥ‹)$IOåšÅ4Dƒô±ÊSHbOÇÎ ™fÏ?¤îD*h¾cþþö¶ÕŽo0q§¹Fâ¬i<2ØMÒ|¼>v³ÓM|ö´‘m§ºÌ‚7¼6Å6lµïfÝdì‡`†mÒËÛlÉÐx‰üE)È…ñÙ…½Ó%±GçaO¼ÆÕU*ÕWàë°}¢<ûþŸ’ÃÇ_öþ) ¹bÛkG%ΪÁDÍâÓàkx‰”\~ìs¬oU—­»h·ÙM3L.²ûêiÄ]>ãà ƒP˜åM|wòà‹–…]jÊu"'hHFºÂؾäI$Í!âBÉ€låìhœŸK"ê8ŽÉú?ÈõObB¼‘l:-ö3÷úé´Ú'š£apÁÐÝ‚Ÿed6 É™0sâ¯gË­d»Wû¸Å$q¸i[58§‘æ ’ºW®—\óÇ[ˆGHÞ¶q6¸™Øôo?‚‘«ð ßo•n\ò>»œ‚MÏÓÀ.€2™G‰Qƒ‹¸NEp!!ï~ÓÀ¤r7'Í׫èütÓtÅØà|Åå)Øœd¥ˆ±Ðt—CTç(ÐÒ%¸? jÍ Ttдšjy(&ß þ©†=tÊ´}Š®:iiÂl6J‹‡&žSçƒ-­Fó4Ó€eù,GæµÁÐÀÀ€ü˜Úì` 8ë¢ç+ ›k;1C±•—†ù±6L¯Œï^C×/ZÍ, ˇÁHËÙ¹»¾€XðÅÏÄ9ñ‡¯„ø3§¡úVçF‘ÆEUkÛ†‚¡ñSå!Ù[ìà uèKÐô‘2tã[n®ãÑm 4fE5ÕkŒò½ýjdä¢UL§F¬yHA„ã3[ù>&ɺ8äï²ìà ñ¤ðÁ6ð¢/ÑÁoó\\Þ(ðv'{K&áï |ø9yÚðm0žAP¬)Þ!ÑÀóºål{£ú.nã¡FwP¡Þýì#_µí †ÁÌVU¨-/ •qxYm «íðXÿù´µ‹©SV5.ó8ÚÕik¼ýÜÒë©óS\Âsò#Ü™éìÕпÄÿZè \þµ² Ï$;Ǻá63e!Û’–9îSƒè¹9Îba²wVëköÎ÷ó¿‚­ædñpAsrÙÆ¦T®ÉEHÝ?ÙÇììÔöSF˘ï9½]‡‘8Ù´e.ÒØt>×>…ÅSå˜N2„Œ­—õ!”tž) íà 1ph]É?€]V­&yDYUžbRÒr†!=ï2›ñì! ÇãS¬ËÌE„Æ8lø")%JDGŽ_·ë@ßÝgîI0mÂ!‚}†–>ã(‡ a NÎnžBä|™ÈgBj`Å1 †y` )ý5þk>©Ó‡s{Ú –UaÌjóߨ=ÓlÔpĦ0½#6š Œ0Rßö q䓜Œ6ôÅ!~Œâ ôFgÂ¥CIÎc€Ã‹”;<Å*ÂS¤ˆ0;Z³Ä7œý¡{z$7{µÜvC’ºXF+ò@ÑBct4¦ˆÊ¥B7É…kñV7äÑÔW“ëY™§hkYŠ:ÏSÒ¦©B¤ð8b醫»ö5œAÈúT«7aªi¿ ömÓ™f^œ‹Þ{ÝÞ}Îìbñ¦- Ø ÿ'-{©õí´–œx²*Y)ÂŽÏ[5Æs‡^µ¾/âÌ¢ªŽóO—ÙÜwW¶eN¡í˜6¯÷ýš"¶#ÒƒÆP­^ÝÖ¨&ÕcuÛ¯Y•Û¦*]´Êõh÷O¹hÇ©«˜¤o ÛÒ¿ &©3Ì-ŸnAKcEe—Š+{özocSòYÝU®éê'¹fð ^<ò˜¤‚BƒK)ÏàE7V|ó‹Ôx˜MÈ6œò¶úÙ;0ý—ñÍ*…„ŒÖ´î@ŠK§l·iÙcí°SÜ>4ç‰lu=#£¹À©ùMY©WÀ·'–òѧ ‡ ‡eóO-´ »m<éIM­”MK™æ9“„I`cªÏ¼ð[­ýmŽ´°(Zµ3³T|µàS ìñH§‚½UÍ’×Ç['Á6Y³ú±ŒqÊ%zu .á2÷1eYÉ2·‡gOb¨Ïc<¯Æ€Cô©”=Æôxœþ…'16ÖÎbÎi±JyU bÐìÿ8Ý|:"Æëã~›Y¨m¨¤.¬‚x"£Œöáå˜òö7ƒ<ô’Ï(ì‘¿Tja«®ÅQe}ûL©Sú|!žïó°ÌÖ\µèíuûøßÿþ1i±[ Ik‘Wjeý+jeµ2.Lføfb ;ÄòQ© —µÝ.À=™Õ(lñ¼5«Ò­†×®›×ñâ©gîq\žúȉâ6ÕOäUZ÷Ü]>=?ðâkñnî° …8Ø–Ö*DÎÞ$+‡Wk°;Õ /±Ù /¾VùÌKHåˆ+Pµ»Ií¸-3‚¹ë(- yï #Nèr¦û¬)–Jo“ßÊà›€Ï_£RÛS9öƒ ~ä]ödXÏ*;÷!³ÏÖüZø¶muQãcû,ˆ†™1þí‡ÅŸÎܶ§}ñ©Ã1~쓇äÐ@UÒ\"ÝÏ?ðx‹¦QøÈ»K9 ~ÂI§±ü&dœ²Ï÷ö«ì;Ì ~U,mËž†ªi?+ã°R š€ÍDOS­bð±Š|Žy½“l·Q¸_(<…¹6ǘɊÒ繺R%HC©wÜç”m–øMå%c¶Ù¼p0£Ô÷ Øí](­ÂË[ßqÇ_¥Pq¬‰/+ßm+z2Ê#­OÑF§©w™C/åÂ{Þé6âÂûThNõ¸ÙývJ÷A±ñ~"I ß+â“ðUd¥rt ÓMªë<¦Ë „4ˆj(}m`V/õü)ÿoG‚Ÿ†Ú¦+Óìj!i̲õÕo­†RèhCÒK`¶–0qÐ×’ÃA?}7‚í}öÉþIÀ|EúwçmÓ+ŸÀÏwl¢§Qâ8ÛÀév^™Òf%”Çâ` 2mp¶ZDíùç&z ¯ ñqfxb}ÐÈMWê±éi§±Šó›‰žUäÜzÕ¤Ú€zê qQü®§ õCT— ^=š÷ÿ„ãcúÐ]ƒ]ÍL>R~{'È0g¸ž-Gzè®ÔØ—9ÿ~ûþÍÿÇÖRRendstream endobj 616 0 obj << /Filter /FlateDecode /Length 4086 >> stream xÚ½[YoÇ~ׯXø%K@;ž>æJà±;6 väÁv€áîp¹ÉÔή$ë×§®¾†="å†@qfº»ºººê«£›åb»(ß¼úòöÕç_wíB•EWvjq{¿P)ŒÖ‹¦jŠÎT‹ÛÍâÇåW7jy†ŸÝÿ]àçôˆŸ†óÍʽüžûõn–ÿ…'ìs:¾æ¦¿ÁËØò¾›å—;l%2=ÚÉ€ >¬é…úýó(—›Ÿo¿ûükcb.n‹ºiaÄ_ƒ}^•²ªÅÊZµX™ªhëš;œ€Q]·Ë‡þ²ŠKÙà—Næ§ÆóÏo®2/ö6ð,D·¼ê‡{>úFâÚ­ãttĺåé>"ºÇI©×ÛÝ.…ʈSßÊà·7U½ì÷Ò„Ò=]÷ŽÏvy¿7r 3&v–-¤'m3áxVÖ,RÆöwÈà É^iü|†²¹­”)*Û±¼F܉~O]`;:˜fÿŸqö¾Ý ãGú~¶ÐlËå;üN3s÷ËCLÈŽÃÞ Å–×<ŒFœP$Ûî|ä…`#jÈ#®i9¬qàO¥²¤/ÔÑ­¸YÒÒFþz:óîÓ‰¦Û†þ¬ÍôNú >âžœp}nc6"[C b lœ¬pÜ{Qïë™¶8§ÊMQÛÆirÁ]TeJ]Uiì³’N°Ä–†»þ éï¶—­«*—ýqÃãõn.Ô™XÕea*±¯úQ–ßµ°y¨e;ÞÍÊ4rSdmÄçSèß;^")× Ú(ƒÖ0 V¦ñÄ_ïx+ùet‹ò–u†g•}a ;¡4ҼČ2­ÖKÕè¢.k'Örr›¦s]¬A´Û{±Y¯4Àæ=.ñøÔÜ_“ý€–š¢k«T P›G!ÂL꘱Jy߉A’ðECY’Þa¶Hk@Ó3äSׇ¶~îD#‡YlEàw£HÂÛë½BÁ"%UÚÖÖ ‹²PJ3SÀ]ÀV}y݉d/+\é‘}D,zls«™hí½ÂÞȶß:ø&If–Xë¢õÎãw2Zò?d©çd½{>F¼°øY1ˆQã†<ÉÅ9J”ôUº±²ŒÜ/€Mëul¼xŒi–žf»¼½iÍ’@›—Ê^þÕâŒÎŽŸ÷# P©#Dò—{ò$éwd*N]} • Caºƒ¦²‡0°ˆH€„rËdj»¢mtºÎâBTµûCx9²ØøåŽÃx¶Á·Î‹'Aô}·“õ=ðûdRçXÈYÓª.€‹¬o““@U4BQÛA{¿¾i-…|™™ÿ…mäàh9éÑTËÛÃþˆÐ=`ÀC3\9*am+xîÚÀlÀ¦ÇãZSxT[6¶ýá@Εw ¡1z`äÙ°…6&fbK„é¯'úóaXà˜ ·öv¤Û†ÄtÚ®(*Cs:P° æXikÈ$^ö¢$'AÉà yá ¼«ãÍD–²@C<Ý_eªuÀ´¦s ‰ö†°â8’Å‘O#úLªïì¹ßï#ÔTUGL[W{‹<‚ë|ÁtEW«ZS”&ЉØ-‰ÇEtðD쉌$Ž×"£õÄI±Â@Ž&á!¶ x]Ÿ¼‡#SÙÄ`ìr}¥ †é®Ù ˆx‹‘Üæ¸ñ‹‡/èv/™×(Ó"Ûšìî©u¨…tS´ŸÙßÂ;À‹V/œÌf”¸i‹&˜iÖ’¡‡ñ>*Q†¡ßðÄ~‹S[…‘íËÑM̲‰T¸aéŽNiÑF»¬‰7…ÂoŒcB—†•„•‰Cùõ1x¯Î;dŸ¢5uœWþÄ“Ëñ™b ö¥ÈÁNôOR<öÁE. ðl@ @ n¨Í§¦bVeU…½Îf‚`´¶´\ä@ψ/ýFZwIn€éú^Ð’\[7q˜¾¸,ceuHš×{é[q‚¿ªå7,cvÒ®@ðan¾§±ªXË#±¬Ô±‹]"¡!!¹ŽŠF•\Ðè]Gfã2çGídÏ“Ðæ`U èüdpÍþA@›Ã}äÀM@DÓ*¯ÙíïÁõÅ•svŠ^œT½*]6Þ6 ~â«+¦ 8ï ?FÉ5t¸?9#[±Œ8"»¸‚v!¾wQšŠziœK¤ò¨©€P–7bû8ºŒ¦V2õ½0—ñÈT½w´˜L-éÎU›&9óÔx!¥Õ‘Ûÿ£µ²|™ÁÚÒÇ`ûGg»XÊ– €ÏYÇÄ–Ù5²â/)ì«,%1¦$£:8wÂï%3HJ£¾Ý¸Â —⨲vè'çÆ¶»cDôEÞ.ÜäTÏ•œÌò.ñYÿ2)>Ѭ.9œ%¢–ª«õ´nű.Ø…3¡>ù¤¨2Æís…ÃXè›øÐéfUi³ü‚}&Ùòà!š9£Ê‡ìÕj?ËꮆØÝ‡îD á±×%¬t‡7ÐЄú<“±p^Z3Q@vç ë³â^þýIy“‚–!Ùù‡1àáìÌ~éÆït|tSÝ;¦ÉT7¿ÏmÓJ$Càÿ·WÙ}éšB÷[ÏntîkL &»¨b¨y؉ûÕEŠî?•ºÎ&GEÕ˜ B|¯dŒÉ“©uõ,_Dx“O1u­3e(„¡£ø1Îú"苘)ä®j¬X*â×å餒k«´ªÑ6QXæåL®×·¹«¢®â…eéØB[+€—?Ü@¼RƒsÌ… ÓØI©¬SшâÓ6leÌRîŠ6YùJ÷bÕ—íÄw|Šè&Ó$¢ƒ5—³¬ëBíùrk; C5]9+ 1e¨h¼É‘l ÝùI¿ÀŒ±]ΖýWÚÖô€UÔV‚ŽwÎ\‡¬Qè¢y^wÔKtÇ|ºî4©¸lƒ ÆäÛýtM’ÓÚJI ælŠ®)S+S(‡™2±-£^+Utdª¨„XvEX¬l3L)ÄÞg§Ô¦‚N]Ÿus¿:êg‹Ö茗 ­ªõÚ f€*¼Ì¦Þ?F;’连¨v;@ ­GÍ÷ùIµ©’mz:¾Èk‘­ª˜›y¯Q”µJT)ÏU8š3ØÂ€6.X®ÒœÒvœnâEš]‰ï"mþôæ“ì'EVçgÒC…; ÚX§pæÔx½À;}_ŸšÆëbmNÆø»?ô0g…\©Âv!OäW•vzŒˆDÝ.ÛP©ÏPø5]«”A«ì ·ºj2ñq7 €ÃrçbdbÂâ(3Iùl¢Å „Ôæ9EníóŠÒqLìƒ_”p7Žë¹TàϪNz’™½¦ØÖµO6]kÂ)­v+Õfjåüš¢Ú,Ÿ/Ñ_æ¤:ï þAÌzæ”Áç'U%©Œõí1w‘lÉ€&©ÔÒ箓յ÷ó\^b­`wþ?ÿZE $§D~)-ó>½Ga ÕýØDxÙÓP„;NýB‰.¾§"×ÇÅ l¢ó6wÁåÝu‰ÔñAjÄŸ+ÇK!:B™I•³\Ä;².—¶N¯i}¬˜)ÉÖ{6,ÄÞäuŒ*Òn4}_ÀOÉtðI­:úª¯JÛÌÜÎú•ÓúÊU¦ôþ[¬S}|ñEkZîçéô£è`ÃáËÔ¡ÿúüc¼¡$t[ªœØà(òÒ‡cŒˆt¸=èÙr¢Ì3T³ä+qϪ€¬&•þ˸ø¥þo¼u¤_·lmâ…ÎÒóòÁ¯¦Âéün‹<èýåöÕ›WŠ`S-”8­ëÅúðêÇŸËžƒÝ|Î;êu€§†w <ö‹¼úžÿjK™Ü×4T,ìá5„¸¾Æ&¹‚²XDìêÚr`é5@l[vÑ¡*]4(_Ñøi¸$tæ&¯¦{p˜4Ð ¤;ù_3ñºéì€ðánâ·LÜ‹†nøUŽ¡Kç¢×“Èä–½»4œÝ6^ù„ šÃ91òîìk?„´/åÂÍ¢ ×ü¾Ï1?©Ö]Ÿ:íSéfzývÞs;TÊú°o"þk²>º\…_ÃŒ¿!Fo+S)ˆÈ1+ƒƒwÑHôr6X¬vjuÆ;“ÆŠ‚lEÚ^šÆØzãÄ÷üØsÿµëн®1û˜tnšÉe¢ôB‡„ @mn©Ôè¢3 ·?F¼½uW ™Óo‹túç¾bUI¶ØXHŒþ¨žÛ¢î’šP¾?IèÏodu}©§ôŽ®hªºŒH’épÆóCnö Ï’?(‹ÎuÓ߀FÿÐy±endstream endobj 617 0 obj << /Filter /FlateDecode /Length 598 >> stream xÚmTM¢@½ó+z&ÎÁ±?DƉ1ÄÃÎLF³Ù+BëÈGþûíW%nbÒÒŠéó6ï¢ýµ±BÓY±³¬Îmפ™mÓêd½¥”+±L’•g«üáN9mà´ò ³öWŽ7D„Ê Ù”ÏÄB‡„1ˆˆ5‘*f€HÖŠ‰ÀázAl@¸‰ e R3„ûTEÎ`̇ÚG=ŸÃÇŠ€£ý¡O3úÎ~Òö6"i0'¦µDoR3ÿl‡À3Æ`žÅ¦\aʳ`L±ÔŽÒ”3!>ÁtéeH˜‡k®K¼æº1zÔ\7FÍuâ¹n¤ƤANí‡4cºAox*þMÈc7˜pÌ|¼ažô”GSþ™äY¡®OµŒFï~Âüœ4J¨–2ðP-mà-ˆYƒY”GÆÁíÑÂ_«v_‹ìÒ¶nchi°Eeï+ÛÔ ¢èG»>|_púL¼ùúKrendstream endobj 618 0 obj << /Filter /FlateDecode /Length 740 >> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qض*Õj¯˜n$HPý÷ëñ#xÙö?ŸgìÁÜýxÝLTÕîÌ$|äìÍôí¹+Í$ý¹=wwY[ž¦ž©L5ÎöOìµkËØ}ºÎÖM=—ÝZè”Bºžd"ŽñÁ8õãÆ™§çÿðGNq[O8"ÄYx°'™KâBŸp¸ž;2uçAfÐ*èY$TWÀsZë8ÎÏ‡î ‡Ἁþù*Ÿ<¥Ž“G“·¯tÛÐ/%]cœ†ïz*pBê‚Òiè‰.À™DĉÀ‰rò QA¾Ð3æÄ‡†$£:ø ñ3ôIH§»KÅI'ÎS Ÿ%}nTès£f>7*ò¹Q±ÏJ|n”ò¹Q”=êâÝñ3Ÿ'•ßæI·yÒü6OZ|Í“–_ó¤CŸ'=óyÒ‘Ï“Ž}žtâó¤ç>Ozáó¤•Ï“Ö>O:õyҙϓÎ}žtáó”rŸ§Tø<¥Òç)]ïÌýòÝ/oÞÑë«Wž»Î>ˆî±už¸º1×÷øÔž°Ê}ÜC>þm`ôR~â©Ìendstream endobj 619 0 obj << /Filter /FlateDecode /Length 3745 >> stream xÚåZݓ۶÷_¡ÉKy“ˆ!€IÓÇS;Nã™Ô¾™<$}àI”N±$^DÉ_ÓéßÞýRÐùœ6Žç,’X‹ÝÅîoÈfëY6{öèÛëG_>Õz¦²´Îj5»^Í*5+m™ÖÚή—³Ÿ“êê×ßù´®ÆDi®, A$¿dÊ^©¤}ÿõ'øïo¾ºš£“ÇWs­uò#|ÚÂ_s„ÿVRì¸eð.Ty•4ØØìÚ£Œ´¿·¿‚Gšà|se‹¤Ùbkž¼è®æy™,‘—­Ì‡Dû5÷¦g&}‰«z”‰¾|ZŽd0—õ͵M«¢àU>k±{+L5nðøe £Ö&yʲ ´¬Ò*/¬®o¥_Ï]hõ'q~‡Ãk穈jé:…2¹AIå¥Û3%¯¶Q-Ûa2$¾¥‘éuÝ"e{q9ëf‡jj¾Mf —=}×LÜw¸ØÙ\–7W:µ¦æE†óä9é¡[ÏùgÓ\/¾@ “4È`ƒÞ‹¤]l˜'ú¸h°KÛ§À†®Y‚22«ÿ°iÑ|ÞsS·âÞ·Í’ëRfÀÞÍŠ“ PÇ`›fÂ@‡àÀÌ@ïÚ3ƒ62hU—öƒV&yÕÒêc2,ëDä–|+RBmábiv•< „÷”?«˜üæºÒi¥ÅJôìd:y®RUŸ8wÌp/ñSÕ©.+7}zäá• rÊxMÞtÝrˆ\r4EgxÚ *oFèV¼ó鸚$ Ø·Êìe‰=å`VimmNU°[m––°Ùi%… SFOØ'qÀሽ¶ç‹ÍÙØ8L@”ï¹é®AqN¶c“'8qÐY[dä-FF ¤ch@T\¤É4Ò]ä;Ò ÁÖ7ˆ³EÈæ qä~HArnùó F xú² “[xÀ/}1aÓ’ÄÕ¤Q[Ti¡½ï[‰wÉc²ÁXkC[“Õ`ʼn£õ^³¿Ôu–ªª;ÌÝ»!0°eò–×J.>äì·¨< ræfQ‘œą̀oùz8ô¼ˆûýÔŒbK+À„¶sïY¡_§âYíÖHÖõǼBÛbj«.$^pN@¸çtíc0ú»¨*DÊu-b³;Ê©ß{6\œh`¢~BΛ©þÅ?çnÓ³$ÀònFùFFû"´qŒŸŠÏLYâ^ËD;ïxÑ8à6µ²ˆ¸õÿ¬¸éóçüsî=1= Œÿ}êrÂüô†Ányõ&âÒùe;½ÐPåÈý_ÌŸKŸ.ÈØÎ/ÐKïdxçê:T¡€*=lüJá› bq,O´fs*W_ºµñ0Ö·sf¡ldªB‡qõááa^YHˆu]JPösXø‰³¼÷uæ~-C7ío'éxp(]èV¾H1 ¿G}ß{ã¶C;ý-SŒB,¼=h‚Þ<`ÏoÝŠWÈØ~1ί¸éÔOxÝǶÌ$ÐSŽGQu‡+:{’#Êîm1%[§nž±Ì¤¦eìÙcÐÊ`—¶@]xëèâPéßž|Ð16õ…ƒhhT•Ì[46êÿ»Øxæl/öÝŽ\°_ÓyX;ÝÃìy€øC¼Kü¯*”õî¯x›qR–¶Œev;_ò§M ´?|S$›eÈÒ#V/Î]t.4.Ó2µ/øUŠ˜'”Ì)h½ug)Äè ÐÑ)ÃqÜsC#yO?5”¥LÌMl ߪäÉŽÙ<93–ZÈó¬Y>iÇN,aÇÉ« äÉ\* Â•UiV–ƒÈ¢Ž P±l|Á:›~M%m÷v˺r‹Ì[Ti™Ž'“DS×§Íc©¨MÍPxùᇨ3ieª0ÿ†|‘°mxSŽKŠ"I–ÇKÕ}´¬¢€SíAB´8œVçÙç›{Quž%¹&9HøObùÐæPŒœ&Ž “ؾp…R¢¤5¢UfiiþKú0gú¨'1§T>3¯²ø`ªH뺾Wªð˜•jT°PÉãçOÂøpf†bùhi§ÎÓ²P­û•ƒÚéhM”ã‹”0ûÖ{­Îó z1D?cÐÆ¤ÊNꂤdçÚ^ǽb9ÛלÃ丗¢sëSêGÚK)ý r“±§‡S86¹y‚ò›áx l´\EêÔFêÔ?’ ŽÇ ïùÎ;:Ƚ·èlFEçøqB‘ÛÁT”H}i/8Ø…Ãi¾¯ Þ:CßÑ.‹;L:xÏÿ ²ÛЖ:P¥5ɯ­S žBªã£G³È^#üÉ“ßdæÍuöšÛèù–ñwPOôvØ:½Ø„Ñì8ì¢oßógª`­š“¬öèáÐO”ò²ˆ;:.ŠdIÅKÚòK³E™üަ·|ú àñ…+v¡cFº6<;ßIEºÒi7PøZ4<W1¼Yw2ç¡Õ{·8IþP{ô*æÍÊT«úÓ¡ž~Œ £ÓZqx´Xš2]Z>)ø«$(«†ÕÍ- ·8ÔIɳ/6/(MÁ„#å‘uT< |íO«xŒâÃzkPÙkFóº ÆòªH~=‰{—†àŒ|Í{g®À€ñ™‹¦næÓvÂ1ukxNôWdSk:d†Þ‹a×±3CêÍŠç<†g*4Œ;½¯8#ídU±õÆ®3\<×À=Yû,ñ©Ãù‚çî?*†~ꞃ]ù †¤¤ƒ?žæûrÈáKÜDÙöÓ ÄšV¶z €%¯] y}î1€Ì‹ž»±vHƒty‚nZÔ,cPäYFêî¸L êÄ+*òî$9wÊËTÓ³F9å S-ùŒt¹ bcXvðg»ñÀcò4+ê» ×JøXb¯Ó”—Ãrõ›¼‚¡Ð».D;:‡Õ¥¿&Hœ0D8.U èvðFœIßñ0“´ñVÒÃò{‹úì‰;ÖÎe`³ ¯ÁKßʸÉ]ަ¶4ѼÈšè¸ÑäÎÍ94ïÉ™¸æQ>ëÆé¦?JÄ*²´L;Úѯ½Ñî]ÈŠã·ž WîZÙ" ²zîÔݸ2mB²/èá¶š‡Q¢1Ú¡Š¸s‰Ê-ë!_ ˜ƒÆ {.|G ÷#÷rÑá*òLeSgôõý »½âo#R Ç ½9üDÅ÷0nT]›Ë®Ñª‚]Ëúä!×=œÎóܤf‚ºóiÉBC *tŸ°xp· ¾qØ6‡ ,]ÞÒݺà]:ý„hš0΋r[ûì¢~õ7'ùqßQ:´ç4óµ”Úù|¼q—èº¶Ž¯K ”?¾I–Ù¸6>ñÍá&ÅÒvp…T]UaU¾bŽ £2|ÍÈÈh½‹¡J³ hþÉ?o]ÕZ~ % ¯Á”óË0‹ÜIARßžD¿›^õâ^C˜¢€aqÌxë.ÊÉ5AB£T4òêò#ãµAR¤+oöÑû„Á]N²åAø¾¢ü:ŒÏþz Ýl|EAÞ'ØR6-Zë |¦&²¢Ý$dÄÃD‰N1JÕº£óG|±ðù•Qï 08$«y w¼K:ŠÄJ£ì¥œØ€¯cP}SÖCz³¼\©2*í+WµÝñû=0V]yxYã4)ÑD©ÜbüÄŠúÅ#ð¶´÷ãyxnßî¥ÄÉ×Þ5`€Mõäúß&¼çØò5,‡çЩ|k9&: ~ïä<Ó’›]ÝSƒ‡ï7qƒp¾Gæ6vºÕ‡ý3Üm‡ICá»O!ºéQàT¦>2:`†_á±ÜÕVåÇ.ªwÑ'J^­.R‚á*n¸HäÏš‡U\iŒ‹°Dã”±* ¤»& ÊDc/øÈx Üý)SU—£»?‡xê\Ex÷ç«Xî\¤Æø²È!^•,ò *B'Ñ4ö˜¶~¬¯1W,aRø)ø§t?_óÇ—1)é<ʃë ×[Ô§à±€†ŠäC`FP¦/À º=Xñõ¦æÜ¸.•?‚yù÷¯×þ £täÖendstream endobj 620 0 obj << /Filter /FlateDecode /Length 3416 >> stream xÚÅYã¶ù}~…±/õ1W$EE[ »Ín´@Ž)úæAcËgm˵åÌNúçû]¤(Yžc“6XÌš7¿û¢’Éj’LÞ_½¹¹zý®,&:QeRêÉÍr¢K«¬1“Ü媴nr³˜ü0}{w­§ø[á¿þš=Շ뙵fú5´«ùµÉ§ …kšÝg<õwè|‡3o±o§oÖ8KÇTxÐZ6´Ø˜S‡Öýc'“íõ7_¿~gm ¥5…Êò øJ\s•Vþ÷‹›«_ih&=)ô$·F¦œÌ·W?ü˜L0þõ$QpO«¶“Ô%*q%´7“ﯾeõ¯6pµƒ¡ÜX¥S!Ð7צ˜V‡j‹Di™2„ŠK27ýk Ý1 k+82¦}Z*m3Õwc˜C3ËJ¿d çRsOËf''›x U–\‹˜î¼\§@"UfYŠËgö‰Ì´U.-yÛ¿—ÀŽMs=~"¯*‘†uƒãR>˜`ÒVn|÷þ ïÉ¢{_«S’ )µèqs›NUR:¿`Ò´üŒÙ‰S ¿’ÙE¦J³¬t*K ¾ò ñãh!±ä2”ÈPm."Þç ¤œs1æž–uûɳ¼LrbÒæ#üÁݹ1vúª7¦¡?"/3U•ÿ¼.Òi¬ºE Ú [£R{&WÈÞy½‘+U˜CË–ÕšöÀæƒî]âEr[{.]"C¼ …òNè±—K?»@V ŽBÅtTÒ m®‘ð^ ˜Ë@ÞiêW®y’Ä&Ù,#qêrOâ½ØÔfOúÔ¼2‘W²˜HñË,¦¯Øœ 7,÷ç×ý®ÔÕ`!õôK@)ÉË'©ÌkŸGm‘š÷àv[=F†ä“Ið¨~¦Æ–„þJVm寺že:w„îùÜ‹ôõoÍj†¶†„dû©ff+ØVd¢™Ö ×G éX¿è-«—åal'ãU„íùÜ‹°Ef6[6±µW‹_~oÖ6‚ˆ?¸l–f‰ l¾¼îÅ,'º¯ÈU{Ë0ÿßáùJ¾éɃ$f.s:ðþ|þÅü¯w>Šªð´5R¯^ ±Ói:4SoK¿:Ó®1cÈWsXªËÜ…ØáùЏ%£õˆâ¬…^ÝeêÛ뎖+aÎnÜzôÄêòºÊK´…àiK&{¥'ï÷"ÂÕüaÌÑë23¿³‹äýVC§öäÕS™(æÖL—ÅóH~¾÷EÑÁ£lù|Ç?BÒþ Ý䦎üý§y€OÚÐüæ—`ÿ³²<#Þò·ÓýsÂ4x-wU›ÿ?ipJ÷»är”Ê\ˆ‰ž^+¤<Ëv\¢UVf/Év’¸0È1UF»IZH»r¦ÏÍ5hË IYºþ#€Âðæ$ nZ2ÀÐÙ1£P¿ãĘp™óÜñ$?ãÖŸ¯]† §©E—ŸÂ’$FYn¨„„óõ»¼Ÿ©;mÝ¥ŠÚ!ådJ\~­.äíå~Ÿ-. ¥if3§ò Rfk”u¢æÃ èVú`¦„Ó›(•;J4Ìàé¯FË[Á 1K¼+ŽÙ *Å"˜k”ÓUOÅhh‹óí‡ùÈ‚‡« ;s¹?òМ¨äL^YÑ­âÔ:äÂõ!bi¤•ã¡yK·È¾æ–,œ×ãšJ`»ž…XrL¼§‰ºö²E#,DK$ãnÞË«Ž<Õ,ù€V\‘ÈóPZ¥ŒCÚM÷Éöë8ïd“BU1Qk)†œ¿óò׊ÔýÒ Þ5YÒŒïWp–ãýYë#÷I^Ôý&8Ñ™IsæbÍrCK½(PÉbÃÂNÅ?G‚xµé6ÌC¾¿jDcERp’¤yëM¯—û« ê;ï­‡c5–ãŒÝ}7ŽÖü t‚¤Ë#ç°s¶ Ÿ¾›EdäŠÔ¨´W°F Õ½F I0Ó$QØÝž`¼Ôö"×PÐvHRà}ƒbJ ?°:.xAµ[ðT(¹°‡gD„8I™97ý gHbt\ãUÛu¨ÅÞñ±5X€@³ìN¿cþQî•Øë†ìEë¢pÁE®ÛÒÕu´{Kœôåܪíôy6n;²Ö›NÏRˆBOD+©¡¦™ã±ñE‚… JŠ8(—8žNï=F¸èQŒxIg¦Nuw%‘¦f"cÿ©ÄÀÑ=ä¿ ñgÖ²séÙ#Øü}wœvÇãÄnŒ6O”9{‡BJž~µ‰‚xiEe¦VüSC ßä ¬Õ“\•y"þC+0À«J'WÛAùu "*G×-¡È³|zs×å‚iÚk.¼Ã®¹ËpH¸÷ºÿ°7­$ÇҊ̪̆:øN¬Õ½,|F_jy v'âÞê´íUr‘qYA9Ò·j%!KÙ]‹‡`[`MªÒ|P+'Uf¬G±ø%WÍ I=‡·¤iÉEóÊó"­'8†U[² 'ÎèfrU°Ü{#húx MŽxÊÅØ;„P&+íãïZÙ'Þ!8Bƒ{)ˆÿÀh„—Y¡lZÄ~ { ðE.\Ú!Èå ¤"Š„2 ‘ÐZì~=ó–Û(ç¹åº÷Zl ¹‰Iä§µ!T)-ìÙuæÒq‡ðrÆÕ^caXà73q”˜a)|å8¦#m?V½SÂ1ÇT»q ÿ]?ˆ‰I™¹ìg67^é±I@n¨Ø1]’:äLÈŠtž}©ù5E`áwïÚpþ佦“éœN⾓OIÖÁݬéòÙ¨¸Ó>tµ+c×G îŠèµq2Cë’âNœuÓýÁ[\¡{Y˜ö†µõá±—i1ÝØ®>ЍËÉ>*fšÁÔ ³Ríã,h£væ ÖªèO²ÕV< WahèÏüóJ„÷Õ#2¡1ÔJmï-NBeçvžƒê—¬TyÒµw|@OÊ(…ee‘ ÂŒÑ0ò5¦ñ à]Û¶OÎϲ,ö5Î\:ý)„ý$zàhH 3-î!ä½xÓ\d(“8¿i;øƒá€öº±s:Fa™ËÄA¶wªÎÙ¬7CY}[úWªí¥fÚ*)LÏœ^¹_šð>Éñª®  !B`yÑÌ&Ê&>ÊAHœâòÅ[¢W 8’ÉÝvI°„Ì¡Z±%„(é«;;Û l2ܘ 5>ßy&n˜‘b0‡Ã”‘e€ö…Tæ²°¾âîH怳ýøš†æ•Ü(+ï'pÙ7|äá!ÉDp‚ìÅWÜF¸ B¹a!>6£,•e/=†îH(6"s¨T÷À²«þ ‹X* ŸR°ã‹#­Êõ3’ÅߤTc d feÜô <]éihÈ5 ¥¢˜(FéU‹ g¹vƒŒÚ~¾’ ž†³ÔBî¥ç%‘ð#Û´œÞ¯½çêV³ï­¢—r´@-¢Om(okx`4Ø–P~lÑ Ðø·8`¼{Ÿ¯PôZû˜%úq^ mëKô—ct*uKhIæø×QV›~\•d4¹ë96>ä¡ opOĵ*bÈÌêt*ŸÇ¬ã8Z[oÍ×ü\€ ƒÅƒöÁg4’ÅÒ/—0ÏuÇÅúì; \çoŽ*»°¤«)Ã’Óž)<ówK¥À÷WÐã w€âsBá7·œ¸uÔ»ðuƹ¤ÍLiÀ´Ày>W3e\ -;Wí=S…Æ;<…J8~½”î`¸O€¸®Ž³áÓ¯6zW¸=õHJEä2*ó”Rµ¬¸´ã+%ýèXp!×ô‡wøò„‹è#Â.,6>žÁ™¾SScT’ôü?ÑŒ•ÁMÁ²s„;:[ÁÀÐí£Ç¨êØåhM¯PÎÕ¹A°”¸ôʤª4Ö›I=ý ÇÜÛAÚë¿ÓPO|¹[ÿDî–š!aŒçµ8‘]R?Â^xl•ŒfÿÓ« _¢G¦½Dé<ƒ~Þÿî¿{tªÌ1•?eUjðÑŒ0°·«K ¿L!ïÁrTá㺯ض¤Ú—ÁÙðÁ@ÁF³æIO LQ±¿¬"r5R¦ƒ=’ú—(Ê…ˆ@ø^Ãw´UÇ Ü&]0ƒ¹^ {Cä¿)ñ%É" A›ë—•—ê–¿|;Ô­/¤c·’‡_mSN¥Ñ«ï#M~ŒÊ›¬<*ÿÂúJŠ:§kãkñÈÇ"ïG®ˆM+v7!­D@Í~”ðAT׫”m¿f~ä•ÇZm›`##š8•Ù€J£‚SiÇ*. FyåÚj!½kCøm§h^“©¤©yãe„ ®¼×xI‰¹výP‚òƪ§L û»PÒƒƒïº£šPø8â)hù˜ƒD.Gñ£%ç¶'ÞØ?¡àçlp¹ Òcd¾þŽ¿ G¶ñ¿ñ'õœendstream endobj 621 0 obj << /Filter /FlateDecode /Length1 1459 /Length2 6975 /Length3 0 /Length 7964 >> stream xÚwPjÓn¡8JqZhp‡àîîÅ ¤@!¸»»S¼Hq-V(R´·R´‚;…âð§íùÎùÏwï̽“™äÝgåÝÝ÷Ù –.‡´5̬ƒ"8¸9"YuÈË òà00èAà?(ƒîAEþ—^!˜4S‡A*®n^·€· à…ÿcƒ‹ä@nk€:'@»à0Èœ<á[;ò–ÿÌV,naaAößîiG0b‚ÔA;°#òF+@f#<ÿ‚YÌpáârwwç9ºpÂà¶,ìw vÃÝÀÖ€_å4@Žàß…qâ0ôì .`]˜ Â€Ä uA:¸B­Ápòn€®²@Ó ýc¬öÇ€ðWkܜ܇ûËûW ô·3ÈÊ æè‚zB ¶ˆ © Æ‰ð@°@Pë_† Òä‚8€,‘¿¤µ d}Uçb‡8!\8] ¿*äúÙdy¨µ,ÌÑ E¸àüÊO[!»îÉõûYí¡0w¨÷Ÿ³ jmó«kW'.}(ÄÙ¬,÷—Âù³#ü@ PPHv€=¬ì¸~×ótÿVrÿ‚‘ùûz;Áœ6ÈÀ¾0òÇÛä à®`_ïÿ­ø·„ÃÍ °†X!–`[çŸèHlóGF¾<â0"‰Ç þúü}2CrËuðüÇü÷ãr)Êè)h°ý.øo•Œ ÌàÍÁpððÜܼAäÁ÷ßQ´@¿²þã« µ„ÿ$‹ìÒvûëõ™ÿ À¿ciÀŒ˜ÿ!¸)h…üâþÿ¦ùo—ÿ»Eùü¿óQpupø­eþ¥þ?´ Gˆƒç_z$_]Hî«ÃýoSCðŸqU[C\ÿ[«Œ!g@jëðw!. °µae÷‡*pý_悵`._ ÀÁ þ—9UVöÈ¥á‚äão94ÿ¾Rj³þ5]<üòÄA>1Râxs#ÇÐìñ›Á.N( t ËóØÀà8¿Þ“ŸÀeAR‰þxÌþ7À' àB.® ø\.`7äBøáC"Hªþ-s¸vpðÿò"wØoù_é[¹ÂáÈáýM/dmÿ‘o 0Øl…3? ³ yQÒ~^+ýØcmT|ŠaÍ0ƒ…Ã{Þáz‰™ÊR“´ÿ):Ôópñ›<ó©Ôç§7Þ;­˜ámÉÚo¯|®Íu&ÖÞâ|'í+Ú‘nè£Â~¡'µîsãìch¿¥S…!ßÙU_«èܽWÑ£¡¯|ácØìšöz€*îuù$G¬~Œi`é4CeÎ 9-‚ƒ ‹õÑ¡ÁôéÏ©GycwOUÙp|wcy‹½Wyâ.f¼–*õx\º(è)ŒÉ©îŸ>ú8Áè-³™¦B6çýºxþ1}†´cä‹c ·Ã&³×š†Î9|ëø9#Ø39×}bå蘕6¥$ÇRš$ ¾œÃE•åcÁVKvÍ$Ȧƒ`=ZåT ͺ%ñ“}Òç;+ë£Ûòø¼¥QE̱5Q‡#‘÷ØçÅšº© ¿è²jJ¾nÏ[™ÿ²š~Rû(ï<æéÄŽÛpô«2Œsw€§-¹Ð=5#Äl‹| ®³R­°Hb8` g“Ýyu{!ª5…À9¡6Œ»Ò‘ÐXÎLðC[«¦=‡¢ù’éWÝa¢ZOÅìSµÜ“›”¬° J¡KÛ—»<Ú¾"[ï‹®û\ÊrÝåçç5~¤¼šJtx0‘Ü+{¸ÄcѧæÊ;²D°ú–Tn‹•`Fv ŒŸºc"sÍezB-XŸÂžÜQ©â‚ó‚žÍcú͓êIŸÌÅõžŸ«5Ã]ç<Þ%Ù*nrù `ˆì2j@ýéU†äµ×<¯7–ƒùî~LK”9y2}§æÍ¾{Yâ\¸ž¢(y†6,ìõmtĈ뺞c)ªP.Ĭ¥`„ê3G,§Ëä)~f ¥Ñ4N ÏÈ­-ׄ¼Žû¹^õ:A‰=l$hqš»nn,vDd›sdÜy³32ò¨±<Œ±’—çï?“äœÁå‡ñ‚ÉDž{ ûñ»-û jU@Ê >ÌqVB]¨Q´^ˆ’}F|Ÿª‰:!܀О„ØöWHåɶŽÔäÓy‡#Ë{²\íc^AµªÔæhåÕ¨v¦Yî1í£LÁçɼmò­çSå»þÑTÂô÷»Œ‰f¬=ÍÔqð‡ù„âyäYY$bˆˆU>N‚rw˜î3#¾‘rÊS{Å2GЩk|LløìÇ:'/:Ûy7.ÛOQXzÎ}æÉ_ºÔÉd×êiƒSçBøð3§PàX-u—„P‘žØx ªçp{ßézNj^ÂŒâÎæë<ªáäFÈ‚ v¼¢ÁNÊj%´è¡ßpž¸ú–q‚E aá~rë:ªŸ î&m.A>Vüç«õOgîTÀ–ÔÒ¨}o£(çsåN­üªR£m3J‹7‰ehýê4ãɤ§Ý_ž¹o‰®7舆!ª²>‘g'³™Ù&ÖnO…ÞâÝÀ\ÜË“7µõY²›…¢«AQ_¥ŸƒÜ$<úc{‡•‚ÚÍ¡æýîfFûR<½[ôÖEd}P̉¬|0©ÚN.ÁóÎ&§J6÷¨HâÈí*L6Ãɘf¶³ñ9£ÆzäN!`ÑÉq›³EÿQ ]KþT}^7½{±iŠ5¦[—n¾¼xi׳È;hó°A"ÃÔ‚ädÍlžâ¾à˜÷rc, {“ñ‰¾ÛÁb±oXvœîäœáö°ãgÌŒ‰ïš¬Ð¢HÄžO·i‹*(ß/*hÖ‘ÍÜP½ä@µ9}Ñ~ºŸ¾è5Šù¶¹`bœz½³{m÷-Æ…m•5™BŸ#»æé iï ó“nq9k©ëe4DÀi Ýëù¤Hõùtiñ ~ ú×äÜÚéöUvë½|žÔøw°Z,’̵G‹û&¤Ž t=Gýè^Äv¶AWªÁs¢ñà<é¤u¡¹˜Õ}íô©ÞMãÖ`º§PªßO†¬ÜðÐqRbó=Çi9¡–øVíPƒ]´»¡«y÷·Ò¦$ñ&œ8ƒ³'F-<’ í8Um}Û,Q\ª:)­þ>`ñý…ôòû‘–(æ!wM@ÝÍiümQ¡¼ÜŸ:‡<Ö%ÒÌd4jæ\’ÔvQ?£1ù4ÿ)-ÎâbÈ ÍæØÇ÷‹Îe6m4)† !†+ÉžÛƒyzýŠÌw¦Ño Ewbr)'UUÞÒÏ—®G'TiÙKöx¾õ¼‹à m#Cÿ¹´|8œä,.«H8$Kk‘²žï®Coöû1$Í­-$Íá³iÉmáUU÷â 1!m¡äÚØôa!çü ìA¾ß÷—ÎLÚ7–Ûdf:ž™™™ŒðA9àC;µ,Ý–íJ/õuñ¯éD·´L­šš›i·ýÈþc{ó°¥Ò?œ:ñ­›[}›tüÁÐâgýÅô{ì!îzq¦Ã„löÙ%»²÷ÇÁöýñó;²6òÙü— fQãÑžiP;Ÿ'­±È01ƹ˜;ýo7º´j‹e„ßÈÞyÄã\,ocÇ39cÎÃD!ÓÄRÝÚS#ÏXDs{B¬ÄC,1zó„] 1•–M®¿åÜNMÌ SšM`]¥GåðÆÚBgÂ>‰?ÏÙ 1.žŠWé=ß·;ù)ûSëºlï P’°ÉÖX±‰—³…”sUǬLO²w5Ÿ^甆M%øúê¥mŸ‘,] ç<‘›dÞ¶B>(ÈpÏQ„æ¸ïé„ .ÑÔÖÂ]’ZÉ-)üd 5Š´žžw*=³Á¤“i`%¡Nº+J…|ÍKiMÙ=¹¶-^ÀSLIIH¼}È.¦C;Ëd­âàÉÖ³4¬¿’6ì÷ ä;3bÏMmº³¼q¯Žô à Þì/Î1ÔWgáŠSQVÞ*†Ø_Ê^ïÕIIhûR[†*˜ mý(óúÁä”ϨÛqU¿‘žºáSõ«{qA eñ™\ë=·ó§ŸL© sÊÎdVÛNë̉:ø›Jû &™G+ŒÇúÛ7MÏ U‡_5ÞÖX¹ŽvÂÝ)§›(¿^©3ÕÝß§UŽ«ÆXwÃ÷ÏsÁÆHr6rÊÆÓ2»ã÷¹»ï×ü‰€beµ%$ù«jà3—¿Æw¶ ”½púZ²ã2$$Ý¿ù6'}ÿÛÈö›»#T>ŽÝ©µÆµ #5½‡¨܃¥}ƒ:o†~ûåÑÍTe³ZŒ«i¾×ßý3¢ÚY¥øaˆÊÅÇ¿ÜQåU?ÅRMÒØA‰µ´‘Å‹ÕêwAõè†h¹{"+ìâ$2FÛ•·Žå«»`Z8?¿Š º0`hﲯ´íÉ®ûªû¼‡²9àÜàÙLøåã¼Gšâ^ac±68²ÝNôÀaB™­hC•2‚ÂlQÀzqÄõ­]¹ÞÛý’¡ ¢½ºë=0%Ê[meðæ8g+¸´¨Zú"%úÞÚ¸Àÿˆrõñòc¼†L䫇¶Ò(‰«ô÷ݺœÇP‰’ÅI¥*pZžÄæî¥ã[¥ï¼£*[º²W&voñÕP ÕÓnÔénptpB·Œ^ú7¶gWLÐçïV„ =î÷)hÍôyº–™0¯O¬œÞlÑkcïüä+…hA7fÌaJìÿŽÅ[2m‰¦\jûD?—+P5ØS&ÝQƒò=ß÷ûué1Ë©„«ßêÐÎXÄ¡s«f2è˜B–à4›ÐšNÓ‚nΆìx˜©ý³"L0J{þûj4¶G¯úG(Ü‹eš ²ÝNš/që(|èN×ð3É£&ëaÃ62~òͤÜF 71ö› J)ýú.ÓIòü‡e³€pB Ì™ÂkvrÅ8AÐ>Y·†ÑìbÒÕâ ^ÏýˆŸêþnV<¤†t¯y+;puú*öž2©£ÛËñãKÍíw´¯Ùqˆ‚E˜ódwÚ–ÊÔ!ÍR#¦§9&u'8‹§±‘ˆÔÉUñÍX}õ#¨‰Œ9É OšùýX|)¨k†¤Ú$;‰œ¡>ñÇÛ˜i–{⮾©tŽM©TSÒxTÏѵ¯Øˆ±ãw"Y½ÉÆ¢fšá%lV#Ïô6àd  ²D¿y¬%X6ä9û.ÒÉÚ¾TïóÇ9=6†>Á{û×XOëi"ë>“Ûœ7*l—WïåhuEóHê2ù4Y2Ô~»½I/ÜÕ`Dô‹HËk~0RQ9PA¿+J2ŽK.ߺ“Qâ ¹ççÙ>Iá4ó1j²å[~HÄêlõ¡×vÑå oÑê ’Ä"Ö.f*­—}ôL5EUÒßõΛš—{Ð6õXfðùñ™=ßi[OzwF•!\-¬'Ö1÷á¥êöýW¡ƒy¤&ÊÞZ—Á”Áüø:®VŒÌûå¤?§€‹ån9„õGùy¢‡Þ[¼7h¾oÍ8ß¡Yæ ó÷ Ë yÀº»r(ABÔ¯*Ãv37¿x/¼íÚjÞÌöÅÂèt‡²jæW{½DM‹ÉeÓ‰@„Œ<;ú&>‚k:éZÒ&“ŠÙ·÷CŸYÖ­ÿ¾»¤Òö Äß=¹¼"rÄÞåTpÛe”¼V’É Á½Š)®Øúžæ –ê ¶ÕÆæL‚<ü‰uC¡ùšÏÊð”•lkaò³Lá…Ÿ õ–ë{Mª>ª%ÙY¡î\[rá—«úÚodÝ.Ëa»æã б-l‘ Ã0Ñ+÷{F ¤˜m=ùt£Â[®¼ß `âwŒ>ÕŽÄ‹iæ¼±>uŠ6´åPK°,Îs:»¢ð4]ðÂ`¶Õ)ÀZ ŒvUªÆ¾¹U$+ÖçY*]ÿLÚÐ*[{SBý#aF ÷k7Ì)ÎtñMAwgˆ O¿chx‘þ¼i`´ˆ·ÕNt{\¥À3p4­(H„&w>¨ßQE._q¡Ðâ ~¾  :”\^˜\pÔ— ¤¦Hí¿¬Å#ŽÓãW¡a¥<÷_#»Ð%“*U_¤bœÝå()½È÷ „^ö ¿\>¹Hžäo®U ©Ó[ž™ 1ðÇv¨"ÇÀ2@GX½3`Í«jíGÀ /ABÖ¾zûOÌb¥ª\LÇ=wL˜IÅœÌS.µ—¢«Ã>+æšzy3¹˜Ïv&…-¨ÑC\Ók΂&Äm䦋4))✬劗O¼ÑËf{;´’„Õ¿™-F÷ê WMaCóP&1°ÇqǬ99QoÃÌwœ˜ã¾.72xGWpñµ­%«UýºðЬäœu pî•ð7Â4Ä9?ÜñóW&ù90>Œ~4«°4ui’ÍKÊ%. }1Ñ@ž;Á\…9×;ÌÌNšU¢È㎻%&P µÊç¦Y“nõzl0®óø’¤W9óíö§z6=û.™puÆ‚ÁÊ¡éE„[çCTÏi~’”õþÛã{6f’/Xîú=^–{.ÐhÄóFÛ²O‰ðäDgEì+Ķ2l¸ÎÈ[ìWïÝ›’Ùôðw?Ãb^ª ËblÄžõc$('ˆ8Z£äÔ`l³n!·hLzPÏžµGjˆil"#Ì¥'8¬-Ì\´ 3³²™8Êù”Ù¼ì¦%Gd¯s^„e?ˆ”Úd›RÍòÑÇ©qX‚áÓ5­5ïØïÛÓÅáZ³J'(M«_ñž¥)DÏtÎØcG ó…ñ,<Ë›èq]¸uÊñÚë§ž˜tMαQ²ïTÔϾ§&'g¾¥‰»ÇǰNN¤ÄtÝW'‹AÈõ¨ñ¶):íAÌua÷Œ{¡›xëïVXöSÙˆòìlO #|-Ö–õ“øûÉðå.!LboŸU ÷z›¦î‘Lµ4&–ÀN•™!ƒm—Õš^þqör^S™5Ú„zOwësþûøÝ&3R©ù¬Æo~R­‹ÒÙÙ-ª nÐñˆÖÈ.5]Õñà¹Ë>Н‰K¤zÚoÒè)W¡2ÈN7béßiaÀ*ð \ÉPý.š7žâ9ì*, Ì¢L‹MO“Ø;ÃõúâлSX³V¡§Îvw#a°¾î+ |±§Ä4ÞQ9Š%ãÝàv¶ àufÙ WéÚg4Šq‡M=+W“4ÜóÔ³âñòYG3y<ç²| Ã?ý+kIxجáÚûm“¤…Ä\¢Ý‰ù Ÿ/|eÿ •ò÷¹c´ éë<ˆå¾RD}¢éÛ†ÂÿeŸ/ˆF ®nž\{ä ;1ÿrƒ €rdNƒ€®d !®?EÂM}ùˆ{{£ËÉ)Òü[MÜnð¢p;’šzÔ^yžÐb[üΘ;"^$ ÔoœäõMÜÞ¹TSyÈÙÅMð=ûÓ2“ˆ(Ëì²ßÓCö2W« µyé:Pðüsš²5ü{õ‘I´ù®¤¹O_~ÅÊö/“ç 1yàäºAY|¡|q©§ùIG;øŽäinŠç"s±< kוDg%ÓJøJ0µžˆA@ú’û橜W*NoÊ{它—DóÝÂÍAŽySlœØÎhÈ”Ü.véʲÉ2ed=/5ч "±/kÎíCw%J‘Ú©Qúv,9æÀæ›ñŠªýŠ)jUXeŽ=}Îà£ÒNVÑHñ‘d¡.#1eÙÝäUÃ&!ù}¾X|ßB/¸±äÙÝ:«£ÓüGGc/ŸÖÐAkëI1Ng~ÑŽY'^‰ovU™ëÉåÁ' a6óºkîÖn>é*ïr”Ó‰®5a²=×ì@mDä}Œïl­­m¯æKåj®ºp±Ìzy­rÖ§s+Œë^v믚³äÚU"–H8~~¶¢ ”0>úŠÒzg y8º]w¶’Üg—u•o"F­×®÷„|ŽÕc¥ D—Þîøô…ÛUqÕk°gJm–÷*5å]±äÛõ'« ˆ‡§Ôç®k5]C«…#)>çßÚº®8¾ÝšØVócŠ}±ðs¡pÿ¶í¥D‘“îÿCºänW‰‹1|Zs™4…Æ]ã]:î˜'—,ÿ«1¸¥äç{ñ‚W£R¯$ÙB ø£g¨Çvª®*À‘‰ hûðsfôþÈÙ¿÷yб ξ(“Döü«È}>4â®ÆŒâ;àA鱨•RxâL©¯<_þ—tÕæ2¾a<üãw‹Y¥y'ã¶3'ñ!ï<˜ÿ{Î.ï :¦òÓWuÂÍ8½ºÕã÷©}h&A¶?”½ß[«Ik$õûcûZÞÞ ãRÄ“n1³tÍ™uê¬(r^JN0áãS—Ñ+"q5¯Â5:Lª€¡+ךD|¦ E¨›5a2°þ–ß²*qã_£Þ˹Y8”Hfêô®†z´k¤'ÐAæÛ›K/¿lši®-t¡mÿì>øs$…§ø³Š‡/»OÎãÉ/o·Ž²P 0L½d?jsÐ õƒõ?SÒ:á„˨¦…à ìl7@ž7‹xDB^³{ÅaVó šY¸¨´…´»õ‰»±^¸j¾yi *Þœyfèü:‚·#6x&†lî¤>jø <€Gògoij±t¬xbó¬(g e$e¦¬1ú p1xø”ÿ¶ôÉ|å„ KmamVÄD ´ã3%|5’+ž!›z\àôpr®™ÕÅyGîkIÑÐ1ç˜qó¤½êéªq½”ÅsÚfAoŸä| ïÖ&ìÁÏt£<ÆŠW:i~⚣CIE¹_¿âÏìá~u ª Õ¶ÖU‘;=~ðª>‰OLßµ ›%ªÖ‰0üö ›u%=…¶ _3¦·Çs [#Ú_Øtå|þ˜ü#ÜA:¿köU/¡ÔHŒÞ˜…ûQIGo‚Â{Õ IÁmáöà´py ·¦ãïü¡O3mÞô Ì]9 / å"’Eª÷3æ©èV3_Š¢FŒVsÐ#ÊÑ» 7HçøÐ¼C MÈýOÓD,´ƒUƒà8¸õá§ò+öT-Ô©Ò¡…i;Ó($çÞñÐsº”ºŠŽÈ6Å(g-¡tm¹#>~Ë£ã\½¼Êœ&2–ÝõùoŠf^>þoÔù¿ù˜…çp]-ŽDK¨3·ÇÆ,³hoP=nÓ§f¤÷´¸}p.8_¯±ZLQwlÔ¸yQÖªüu}Âà[ëk©EœÑe#[º§Væ`økBý †î@ŒÈLîy[‰Á™r ìóûn65èOêÚZõ7®"•M`œã-Ô |Á ^ <Õã^ù«†“ƒ’…MÉôñÊ1…MóÛur2>Ì·.}°ãM2å†+©Ö²ogŽ ‚e^À¥üÑ4®$w°ª.~œ«¾RÆ"p# —²èQäv†!”’aâ{Êô°¬ ëËF?®>ªïÞ…—QÙ΢”ʯŒe„.KáÁcìxåàH¼°g«1£€feWlÕÅæFª†É¹þ›8žkKñS¾Â>j´ úÓÄjn?9‰Ïp„°û:È…(±w æ5½XwÉo{©K2¦”Ë¿:ÕŽ¾.£JdÝä’âüŠÍç~'º7×¶ËYS’3¡âîª29Ðuf¹w¡MˆbÊ8kÞ¾õÙ\l]G­Ó€–¯Ìáópâ`’Ø{3ï*C–Ðð ³›*÷âñ”ŒW¢ŒO\ü¬ŒÚÞØ¶L'öv_ï",l6Ç;ií:º›¶[F n­T¢¾óK6 Õ[Ÿ1[‡š ï{=ŸÑÝ"N0úyÅÂ+a›H $ø‚ýxxhuÿ‘J°;BJƒÌVlƒ  £O$½Å;Ë…•Õߪ XEvV_tÑ À?‡IEÐc4‡ï¯~¦†¾ApÛsçÄп@ÚYëMñ¹8öY?÷Kݩ؋çÎJ³Õ/©GõœSŸ¶B5bìG¤ÄwÛt­Ùâò<–Œ=j±m°lÀ=¸ ‘“5`¨Ñ¾ 9^*šÈ Â1 ÒK¤*#pØœ§¼(·T¤²ÜÓ^l3ž¹Ÿþeø'hÇá‘ÀYôJg¡ ÝíUOÙÏ×;”A•¨qÏdÀ#ìÍZZ2#p¹ý>régÉŒ,Uݽ¡.1‡cjb•ËÄãÕì•K¥ÉÚ+¹Mu0u³vÕ>ÈV ez¯’|é£áò?XÛendstream endobj 622 0 obj << /Filter /FlateDecode /Length1 1459 /Length2 6962 /Length3 0 /Length 7951 >> stream xÚtTÔk×/Ò!)Ò=tJw§HJ 00ÌÀÌÐ-J‡€ˆ „„ "-ÝÒ€€(Ýߨç=ç;ï½kÝ»f­ÿ<û·ãÙûÙ¿½Ù˜õø`v UÉä”(éJ…ù…ØØŒÁHèJÀf ‚#À0¨ÔÿÒ+ÁA¶H¦l‹D™éÀ MO( ŠIÅ¥B‚‚’ÿ1„Á¥Ê¶^`€?@!Ø”`î¾p°“3uËŽN{.PRRœ÷·;@Á ÛÛB:¶HgêF{[Àf!}ÿ‚SƉt—ðööæ·uCðÃàN¸xÞ`¤3À„Á½@€_åtmÝ@¿ ã'`;ƒ`#˜#ÒÛ ØE <¡ 8u7ÀHC ç‚þ1ÖþcÀ øëi@~àßáþòþ ýílkoss·…ú‚¡NG0ÐSÕæGú y¶P‡_†¶ åoëe †ØÚ¡ ~'n PU0Ø¢êû«:„=ìŽDð#À_ ü ƒzd¨ƒÌÍ E"~å§ †ƒìQ¯î+ð»­®P˜7ÔÿÏÙ upüU‚ƒ§»€ ìá ÒPþËüƒ9QAAAqI äùØ; ü nìëú­ü £òôw‡¹Q%€ÁŽ Ô?ÂÖ @Â=Aþÿ[ño‰8€í‘;JðOt rü#£:û,QÄýþ>Y¡¸åƒB|ÿ1ÿÝ\‡:†jÚ*<¿ þ[¥¨óøó ‹ø„D@AqA€8êøï(ú¶à¿²üÇWêHþIõJÿIØë¯îsþ5\€ÇÒ…¡ pþCpKAQA{ÔøÿMóß.ÿ7vÿŠòÿ øç£ê üÖrþRÿZ[70Ä÷/=НžH÷u`¨ €þ·éCПqÕ9€=Ýþ[«´EÍ€Ô ò÷#‚ª`ƒ>iïü‡*p“_CAú0ø×BðÿK‡š*{WÔÒ@ øø[B Í¿¯TÚÃ~M—¨À·õ%@µ%‰ü¨1tùüf0@€ C¢\¨òŽ08Á¯~Š Á(Ê¢Ð?€ €yÂÿD$¨Åõ(@òB-„¿‚¢êß2 €t†ƒþ— ñ†ý–ÿ•¾½'ŽÞßôBÕöù÷¦|@ö3S0{é§.UO›Ï*è½ù6†dÇÙ6¾ââóŸ·x^ã¦pUdcùÍ€kÓPWÌô6M¶O bý<Š3ïN5Ÿê®’¹ð© ƒÍ 1-«’1¾8“XËТ ¶\»ÌI$#7ùÉÄñÉ8yöð-“f"Aànœp¿ù²Püù¤ßB™±â#-+­9 #æ1ùÀ(»¿âÖKÍ»ÓþÅKðÔIê–Á·@ȧ߆®á|û§5;Û°'-&¥FLìR£z’[sŽHæÁ¼æ’ÆOñ;¯^øV"^ElÓyè4Zýª!&½™òI?5$3µ¦¾<IîSÃûQÃK3Z¸óZÖîçR+œŸ—²ó{A%µLiT_3ÕWáiu|©NŸD}ý¾Ë·Úiô?{ãŒÎ48v‹ôMùÓAÁ©ô8úm˜î)ÔºözTõïÊ‹Žß+Všv¯u°p;'[+‘‘ø`¼¤á4\óMáýˆàâQ_Š‘^sCûÄ}WîëõŒ–ˆ6ݸ&i »ÃY<5Š8óŽ”Év=ËDÖà]ÖòúƒÆ£ç`:[RÐÉ DN]çâJ˜*D*ðÞm…ðºA"6£Ž×f1›šîAët×]ޱ Ç#Q§,¯w15±IŸë KÌ>ãbù¬4Ԟد·8НO„üš¤KœÍ4ß|í&zÛ!ˆÏîCEÉH½TM.áLð”jÆßɶF”aI;¤gÒ›#KV¯áH›ÆÞéLõýŽW¢ä{Õþ×~Tl¤OJÎÈž‚®#õRÆíöÃ*h#Z¿\îì˜â—†j­&Y7Ôw†KLD4Épé”|¾&ƒ‡á¶„W,=ðõe"CIy žÐÊÜhˆòë=7ý0ÇA‘ʉF.ÆW:Q¯õ û¶œ„Fª @§¸UÕã¡ítâï‹yîD©¦hu?cýk‹d,ȨDÁšzJ NŠb’›E“›·2„°îž,E“¾‹£/5Ðàn™g¡a0¼MÞ+$yÃgòL¹}ÔMCx¨f÷íS¼ÝsÚÈÖü†Õb SÒaÃú`µk÷,_å» êÃ^>þî!äöÚÔXy§@ïæ­O­ cätTQøõªÛ:ºNœFèÑ«€¹ .¬ÝF9éfyŠü=EÝ¥2µV³ãe0ÉŒz‡HÿÝŒQó'#³9el ×o'± N=ûÈŒöŽCŠ÷&Ö´r‰ŸûF…¢ë³úˆŸžDÝñÙ3AÛêhqkŒo9~ìR`ßçZÃê)UcXB9ó,¬òÕ¤‘´i2wˆ4[f·yµv’ßúûûWsá Ïa‹ô’ˆoˆÎû;šZ7*$\Zýh5Æç¶•RÙ`MãW¥ñézP úŸ†N÷_J+7¿ì§Ï!JäÔä ë? ˜mÇSËH.ÚšÜËøF¹ì*9[5FyòÍ£#».è•äáå³ön|øüL#0szg@L¶÷Íor%¿¡¾àfpü-‰ïµ±ûÅGäôe}|Ô›«!‘⯶bcˆâ¤ˆ¯ÔÌ8z¯÷ÀÓ±¬‹Õ–Ë ‡îpÖçÞ¢/Š-IúÝ!‘9‘ @Ï7îûý{×vlfˆáîº×Ï‘XŸgäÍ[6÷XépL-¾_â$«›_gjU\Â-½s›“‚=ÙömªÒU‰¬ 1eó×Ñ·(S&2{ÕÂ[^±ñMÏÕµU>h^6ÀÄ"AÊõ÷tÊ4D(Ák®h–÷ýò7ד•GŸ½â¤8VìHÑà© £É©„»Åhw"Èòl¤ÒÃXÝJÇ2¤•€RaàõÙhÎX§Î`ò±N|Ê3X)S¶vckLÔXgß=«°&›ÑÑÙ¯Dè”’#ü}%òãu÷Òécz`gèÝY¬ôyóxÕÃ£É Z»4f¥ÏÜáú–sÕøöÝݶ‚š® ¿ŸX±¶Â`·ägÔ¸f'ª¦Ñ/N”Tô|4Ã/\TÝ Ÿ:sÑšõµ`æ2LŽDÄHÔ†õ0ÆÌn¿ô_óÄí ŠyfŸÏ½!]Ü’›µÛXêAƒ˜–Ýœ‘É¿éå#Ëcpù¦à¸*ù¡ÕôÊî(·Ÿ\ÃørΡʅF„yÛ´¹ñÕ:¨êmî5aÎ 2- Ç’$0ÇXØ{Ø¥öçÜëvRC´½ß=Yi! ׎ôÀ3>ðrsQšÚ(µÓé$—rÊZÙkïˆ8Áï4ÕûF Úüš<[Br¯ü~À¨¯Û)ŸÈ oÿ BÇgª'>/ˆãZJ[>Ĺ#ê͘ãÄ<øžêpìS\çv%Ì.±{ºy>}4ŒòS±^wfœ‘›Þ²X﹈og¨|ö2ÅIKãÄÊ3¶Þ×:áËs•‹ýÑ÷=}<‰EÚÁŸkrÅOÑù.HÙV‚§ >!wUéÆŠÔ…[r´ #âÉ{f>‚‚Õ> ³×ƒ<îì"'.iTë´µ'zÖÍÀ÷Æî^qÊϬSŸSvvâ2ŦÏù°¾ú°Çã9Z÷IJ¤ÍÝo¯]¥‰= ?€S]èÐGøD–—­n‰RóÍÒž).öÏ3Qì´ã Ñcw7Ú nE=•ˬ/8äÖ–ð¯]@Ôg[¸íÇEØw*›9)îⵜ'Ϩx:²ù|ÚâtcÁCGW$ä´ƒ{<ò õD·*Ugtê™éD£yã.ž“œW.õ^wÆ@ʽy/|ròQÊÐﮜT#ŸlNƒòzûO%l“MÏ{Ù8`³^,&BñÌe»E®ŒÎ¢r ‡¹%\›Ñ)Nìš¹¬ûLE”d!ý¼Ë=s.FVT쟻ª#ܽ;Üs}féÜñ àHÄO#GÝ©þæ ø˜ò=ËXgPc½ÿ5‹V§òQúmW:þ”rÎøQÉ]Éô[³@gÁH»¸ü 2s“η­ öÜ#hoÚ-E¥uÇýkp˜Dn÷r¯°DËÖ?jW´ÏÈ2›Šò¶fÂѵV.© <ž¬¥ars^Èf‡Hµö!UÑmCõLùhöiCfH¯ÓUe¬Æ3Js›g7Å=]lω&UƒÅ‚N Tâ§•yXwǯ&ÎwöHP­éè¢]%ùÔ‘N†§"9/Å”S¡:UG'Àö˜×º´œµKºi´¼Š¢¥ê<€.l>Ï¿0_̦ÆÙµAjf–Ryô¤µãjeå¾põìUô­ºÏSRù¨¾«mûÍî³v<àÅFTZú°ãn‡vL•V\qdÓ.ŽPÜ„~wçPÒ dyšôåóùØ ©^ÿȪ*ÙkLM•0!‹‡ï”ý•»Äç›%ÛOè94C³NG6.ï†.©R£Pžclµ<Þé®aÞª Š`âF¸yቪƭ±úr‚:óÇIh'é^­)ßÞnȲóÛnú¢k…'D•ûê(žC™[Œ<]}½XDßÏ)ûLÍÓsˆÐõ. ¡=5 bŸ*nìý8^×hHc/ìÊ>Þ<£™“sGÄmˆèÐâËG‹ä^ç€!+Æ Ñõ¥IÍÚÞ¸†{½Ç“Sã‚åÄ“kÙN?×iÛm¼¡+mþÛÍ uØPÌ¢· jNÉê/c­pUˆÎ+‰aÁ]¦™·u!Í"Rœxý–kÆo1á"dÚªsê—_vè6È-èd÷ÞÙ#Úæ¨ülSË—nÌŽå¦déå¾ÂxV"Z[‘f3E«ADvËï© Û÷S‚È»Q¤üÕVgzÞæãGKÔ½MŸnWB¡ù+eÞ© |#>Ì[æV…±¦R´S/&ù eüªX\=œN!u’¦4zTî¿6ò.'NÎt¼_7Ÿ×]ÿÄ8y2”Mèè”%­qÓ²Ôž"—Ç’6§8>5®ì;RuG{WçÊo—ˆ}áT{À6]`"q$1ö†ìÅ×JÊÚA*;­}¡«}ŒæèKë}뇧X& ¦âï| ‚@T÷÷U4DÑ …Šî¸¼^ì!®™€Êc¨’L¤k°S94¦ð šux_£n1g¦`Ö•ì8}ó ¥Ì4môÓ0¢²Æt@™Ç¨6iuÒ¢°ÜtBwzP.öÅzÄóÊÌΣà@Ó qž¤Kâ‹ÃP¯a<‰õˆוù·?˜{Ûh²?ïúdÅ͆‘÷dÔlgYÙ¿,üÆ<åT'ÈNIjgöæU½Ç4X%Fø.&…O¢ÛõPÂù¥¹Ød¡Ê‘x^µÒ”VâÄNTòû•ó… U,]§ žÚPã&Û fÚàthñ‹»sËë]sa@ßÕ껋8¥”‘¡Þ-Jì½Í’²÷Y@ÕvÇ ÖrWSLФeÊ÷ùOͯ¿2aÌnpvE2ÔZǦ3¨0bT_³Õ¿ç¼ã¨é5°f}ðu GJuÆA‘! Fh0!Üöi3uOXÞþ#râ©póúÜ£ks†°ñQ§gø&’ãk¹Gã¦Ã-Æ6äÔ ìt¬6¯Ë¨ŸÉÓ.ý(†Ô¦ÕV|z¶î`D±TÕV¨žð‹«ex¹ã*î~9!™¹?ýèlZjÉ–ý¹‹ÒMhoEWçͱVËã’Ê~ÏOñس£L“ Ï o[d\V3à>„9$ðÉáóR•ë¬ôØ«g._"Â3"©‹8¸A†Î|$qü÷œ)‹¥ãœqt `Ý_Êì+H†Oº|.8™Ài¢½ ë©Îuê=WS¾Ü3Þ?Æ{.[ŒÞ(f 0M{uó†µ 'öÀ‚!ÉñùúÐÞÔîË y Ä”+Z𩈫fÓ¼À;#½’aè#MK·^º}?`n56}Ü‹7ØܘؑšWZû3IXœ­yÐVo%Š©z@¯H;†‹Mk‹ZÙ"Å£øò+;‹ƒÍM‰¢šqnvf´¡¡Ì2ò³8vÖþjçû… r!-¤Ù%\a±Òì^á:Ä4¸g;²,O²ˆŒðTò‰µa®[üב£ºYôqìòÑIÇŒÒc%AùýÇ5/T†÷ŽÇP§Ö¦Øg¼^·dö@ïE£·¢·¶ì³0rßcúQrêrf u\–`¦=ÞOç$Ãi*syù@):È­Ô—^¼¤AžùÒy pÁ°O}èÑzŠ ‘³Ð3Éx8¬Œç?òÞ?!M¯©™§v‡ñÈ—¬‡=,ƒò¸v6àïŽk½&á¹B4"x8/ÑUÊSz<á:É{A•l°Ò„~ÿnÃ$"î16årZÞ¡êV“uòýîöúBœªRÕ Ïé°ð-\¿û?{Ø5ݸAD/fË>s—zÛyãÅ¢J­/ñ=€2‰Ó/H7´uŽGV18J‡šìÔÛñ÷ôèåÊMD¬ãRi°Âlº†f G‚?Ÿ¤ŠÕYú»Ûýrƒú{¢L‚tžÂ<%LSJö¡%ÇæãÄ£1À6ÅN+éM’Ú•"ãÈ{•£­1 ¡Í;‡þÜGϳk™qõ¬ûD·‰¤ ?Š-uOtjô'Ʀ¹ñuûÈbŒÏ}N@ŒY´ ¡5GáÇê2$(ÍØ½|Å“Þ nzÇÓ{V: %ó \ÎÌŽ}w»ïi¦|ñBùƒlŸ f^`ÔLÃ<70ZXnUòm\tì "YÆÈ÷ƒ¥IŸæ.X¿µÛü£¾˜_|QΘú×Ð-pÌRËÁ#ŸwÏO:iÇïõÎÅÎ|f¨³xj®)ý,¬s;xüS9 J¸ °L g®m«í Ã©NwÎá‡ÍìÚŽi¿f'—K ëçCÞÑY¿ÎàÇ)•h‡8í­¦­(²f¢qYagcmµ•[T—·lÉŠ>X·ü\ð>¼]1ï–!jIH¤å»êý7‹ZåÚ·*ÜŠÛnoæ½ óìyû*y³eî;6ù°ÝðÜ[ÒÉIñ½Ün3DË»Ÿzh„¨Æ3‚{äRÂÖÒÝ»2u9½Õ÷ØÈÖ¬Ì m{^õ¤’¤=tøó)íî©únê»ÐÇó8dF)ǶTÌâ'Sæì!üŠ^Z’a"þAƒ*/îBÖO —Î%ïˆ9}І‘°î ¨j¿…Ͷ2›ä¤‡Õ{*–õõ¸UDØlƱB |£(ø¡<Àô°ƒÏ‹¡ÇÒƒC–F¯ Z*òeŸÙîât½1`™À]_<Üc3U>|Ußøš*|l³Áw9RZºÈå1ÿ[¦º”ÎsɪùÕ+|æ¢‚Ò /,Ð;cÜ÷€­:Ä[eê=øˆ#ëÇÇUz[ZëÀxVèô ÁÓž¬Âÿ±¦š ¢>öÚ2ÂAK<ö4©Ÿ²aåÇ÷¡çž—kb&oA…]WÁûjï[¡u Ÿ´t¢2¯ô/cÓAGW ØY!㡉ß:Låœa†¢¾OåÒ¼r:ëÍoä9jöy>ºù¾]—¿'åž5FÕu°çÑdòØw@h/÷&ˆ–]~°F)›ss&‹9TIx0{ ûÖÞöˆ§D«{îuhB´jGò™_§@Ÿ¡kHð¹•o¤CRø{ ¡uüRʸ[ßËNöú2K‚܈/ž|/³ŠÆožJB˜ïrˆwq‚²èœÂÒ’²g,œîÍE'9,†·‹Œ<€>Q…¼_·Ž}‘jOZ­|Ø™SÈ‚]³_5Šª\sܹò‹WuK½H³*:˜w3îð~✠î4N|ÅÙ}¯‚üÚ+©÷‘îžT®ëH ík‘`íA»þmÐDÞÒ­÷ÙéÕ˜Ó…ê…›~`ïãê#_ ùôèxfǃ:íð£"±üi2™°!ž…5t›Ð3ÝÃpÓ!ííÆrz73h=]ŘºáËNŶ/"ð©‘²ç¤_ud+nä.<¿Š9‹Ûº¨Ý¾õFŸzþ¦?2­òÚNâK€øvGðÖŽ E y'ºÂÏžBˆò{ð/®ñì¬Ð‰¡zhùLÛãKʘáf-e]Çg9LëÁb‚Ý!"÷›ØÅ’«E$—Þ Œß.“¯™©½Ó3¹5ª0 “|›Å‘ή{ÿÀdxEÞ4ö¨¥ŽuÒåZD¥6+ =ÊjCóg´[‰;Þ„V3fŽw/¿¨›c  ]Qâг»¶Ö<¤pg-©»^•ŠŠ! „!¨ó©àÛá} k ê‚NáÐÈÆLöï±o°ªÓ¼v«;) # ŠÂD‡+VJ%ŠyÛT pO‘¯¼Ç’ö1ïk+¶¤Ê± W`}±¼ÇW›¯AË4Œ`±4@Wƒ»Ùe#ŸŸÝû[Ö;_KdÞCƒÓÝâû‚¢ö,Çý¬(i¢ }W¿¨¦ÕìÝdª‡Ö^Mô¯Tó …)–*]Y˜ÔžòàeÏ/ |¯‡“8VdMrý˜F†!Yms#êtl{¢ &6¬%.ñ+Þö´Ô¯†aHz_}ˆmк/ùèkVfm}Kr$¡UL¦äRðIÇœ¼aóiXpË­=/œ\{\+’ÏŒk<ÌŒûî«–440)m©R£Êõ(Õ®`LÞüñ^_fõ%‚/û°@п/N-¾lMe䙈»×‡ùOEÅ™£Ôf«$š3TËë}$ç>ÅMÜÒ~%ÏqÍèàùvR¹BÏ­ :º†^ÝäƒmÖ£Ô&%æb~¶—y?£ÐQ¡+ˆî“BºbÔ}{‰°?k &1i"Ù$gb›X¶ £Âð¸×©CKáw,}¸?iCs¶¤“¿ÌCÖ‡d§Nròa†/žèàÔ…x†å° O9KàYÂ`ú!%’„”œŽjtïÁݽ|EFéŽ&áòâjI‘²é…«´Ö‡ÑÁú2ù a^XÞIS‡Œ2•â€'ûÎ[ÆÍ‹ÃVWñ—Ñ?34?/“Ψ ö&ÐË¢¥º;½8é¤ägÿ22¿£ðCq–÷^aAúôœ'Bf-¦éà<\?•Ú‚+ Œl†¿ÚÐø€;QªÙ%1D K.h¤þ0pP¹Ô'cUö)ºMöøÊ²—Íd¸duÂ*y­¢û¬ï™‹§¸ËúN÷èÆR5+âë=òåïãXpve­JßÎ÷lÓëÄ U®&ó CŠ?{1óYx@¥§'¸<ñ%ó SÌ?†6Ž‹æ3R#WË-SþÔh2Ø|W^æP†2“ê¬ÙŒî€Û :ÜeDªÅ ¿¥ŽÅ˜¾žë)cÿÖXŽüiQÞܦË›ö¡ŽÞØTK‡(.Ï{Ð «÷_؃$Õø¥“»ßÊ|úÌj.”£DµnH§+8h¡3Uí΂)`dÙùí²ž$bV”˜òTñÎ —ôÕâôС•mÃJ¹3Z´oâôhÇk~¼ƒy[ýÆá°š5¨š—ØO‘Æy£Ê|ÙðºµÊÁo֑ݼ?/üŸØšõ;:L—=ä$Iýd…JL¤ñèèϯ ñÞ5a:.’žØwƹ²ÒÏÙëp­Šß£ãA¨³’ªœìåwÔÄä&ŒXýh]Òó$Vµ¦š##"Æç%élÝ?Xïš0°ÉQÇ TS¦Ö¢#Ä'?ŸØÀ•4õ·y…™\•×e¦1½,J?7J‚ÚÄݼ}°&š²øà¬ékÅWn{wo7ÁÂ"otrI„{© átçÞb£ÆŸ{åœÄŬVÃÅÉcÐÉßÑÍxœ hº¨¾7tê·ülëµDéÃJí~Ž=ô¿Ä~“+xÐVù”~kÖw™Gk"öÞ瀥b æzÏQƧ~óÙ–Ë%ú> stream xÚõp¥Û6 wlÛ+¶m'ÛÆŠmÛèØ¶mvluÌN:è¸oöÞç;½Ï÷ÿU÷VªVÞçsŒ9ɉUè…Míöv.ôÌ L<Q9en+ ,9¹ª¥‹ ð–\èälioÇó/¹¨ÐÈåƒ3rùP“³·H»Ú˜YÌ<ÌœLåùÌì`ÿ:Ov£ð_Ô?ˆÀ(úqÅþ‹8™Œ €ñóÄ `”ú/âb0ªþA>5þ‹¸?ÑôÁøâ0šü±}xù¸8ËÁJ¬ÿ?J±ùü¨ÅödþÈü_®>ÖŸÑþO°ݧá_âÜþˆ?l>îg; ™Ë–ù?ì?ëõ_šãƒþX*ûõéãqbtüÓå玮ö.@Sc›ÿñÈÊöGð¿N?nŽ$ÿK33X8ý ~4ÈùO&ýq¶1r¶ø—ÂGrÌ?FšÑÅÝþ_â ×ÁŽºý ~$áþ¯ãý°öøüh‡ç¿àG‘^Rùðätú'Ôÿ¬‰«ÓG ]þ¾Þ>vëÿà¿_* Ðh»¶loÂbÕÒõX'ŒçN8ÿ@~¨‘NMï½æÔíúŒ•B]›´ãô œ2>€¼¹/Nu/´Nôæ}ÞÞÞ‘¤Ôùâój F-Z7°t‘<ß8g ›Ò…žšõÚiñþaõëìo"éZXß‹Öboí]–ا%¯­*Uç>2ml°{Ô©9 o‘“Ti¬ï²âÍ‘Uv¾b¢¯ti›ôÈ ',Yµ–ÊQv­ƒõnSk=Ìy)€J¼´ƒ¤úòVt'ŒÚNƒ(4—zVk ÁI™ÈV׃z¿™Uþ:÷|ãoÀ'qR=Bn„ûô–&OMbŒL™‹L¬*äsMVaù}çÖ¹5xï÷åÈÓåaRÆ”dâÐŒX;g6Tá¬et´øjê^Õ¶¹@äÍæèó]vÞ¤¸šNˆ¶DPC¹¡Ò'µáöÖæ£¹)GB*­ØI~DÚï7^”ǽù%[˜ŒæU5BœwÿšU㯤Ì„#ÎS²÷¦Ã›t!¹—ŠBAݬIH* ò ßKçñ>ôþDÖfËóA9á[²PŠf¥¯{ö{¨C`ßùí˜:f>¼çAL·Ù¼Å˜ìzÝŠOÂÝâê›X Lh–ò„˜uXhq&#ˆ5=&[‘Wbü¶À]ŇÿqÞðG?‚aH†-ï:›k¼‘ 6¸‡S5qï´¬¼h_W¼+ b8 ¶ŒØY¬"²}ê\—É“ŸµªMoŒ NöžñËVÆÊ†@kûöþû(aÌjKˆyHráB¨¿>s½²”-÷3±á‹6E¾Z> †ŠV¶Ò¤=åp¬f¥÷žI²DðVŸ%ÈsÁpsT8•7É×KÅè}TKd¯­¬à¿*â™_¢/ÇÛZô"$â@JÈÁ7ßD¥PÚ¯Ó–ÒiæÓH1l!,°÷C³%>P™9¿ã¾‰ALs{ß%9:¸ÿ>Ô¿ŽÙ^?UȆ!⪭Ý"˜ƒ$«ì tù³«Ðâ±&oŠ÷ðÜäNHµÙ<ŠsXóŠl¼…jÔ M+6U!÷¶¦ÏK±nçj®¾[¶UøÆïü•¦¶ˆC·Á¿à $¸6òÖìe'#µ+¯ßv|KY×]Ú fVÙá¡îæÊ/ìÀš.ÿKŒÒ™1 µ®á;Ïöô^b~š±Ã®øí%:J5ˆ°‰©æ;HNe–,š™ÌLËåÕê[¬4ˆMLŒïÕ€'ɺmM±éz©‡ñü/vyweOç´d²scÆËF!€V†ð„Ì38š·YÙÚŽ_:gÍÑ/˜'è=lêþrªU)xlt¥a˜ˆ>}‚vI‘ÙjQl³ì›ˆ>ó6þo…§Ÿ¢ß‡ü«Š;`GHÑÄóBÏc[:âRíÉ--ßSºU¹ð¡ÜèÈ)¼9VI¤H]ÔlàçKì²|äž~ý>º_Qxµâz}b‘¿é™‹ôY_?(7+^0€$†K¸~0 $6ºg[æÕ ©NcqÓñhz`“J£üÌ2¤ —í+„sœÁvON%IãÙ¸1ÝþÜ&fäþ‰WfîùáQzЀy¡Mó#ΗA;„d™•Õ¬‡¨„jÕP¡I³~EZ’:–¯W²FiiAǸK·´¹ù+ä¯í}(ç˜-[‚88_ûQbmQó-á¯OUDS÷`w|Ün³„bTs¦ܳt„Qö2slß{5úè‹þq˜„Câ?ú"’[ m-•°'re—eg¾^ÂFŒß–ûP‚¥±ìâÓÄâQâF’ŸDæËÂc!.sâƒ.8  üÔpBëe†êÿ'ï-»ÆC['0øV|K 68šz߯£;ùE}nñs’¯tËe}Õ´ØŠ^)·†žÕ7#¥hS]Å•^œæÕЛ®ÙŸJ½å[çqÑN ݺ[Sï`1íâ²¶^ÉÕ%‰¦]¸åympr©Öè­<¿˜g;«¡,–+d$+îJûäëzç}äq­É*{и* ðûÒÕÜ•#Ö½v¯ºOT-§ð\/[TKìËÎi;üngW;ÚÆ<ëõê>û*‰‚šC¦Ï¸mc¾tÃGúç&JÉ¢¦|Üú³0zÍo›ñPÛXÛ\K¾óWg¿Á+u;µ¹*E~^sb´’½éЦ®Û® ™Étœ¹¯{Tï¦:5ºÿDZÉ幫ŽËÇö™Z`Pê9‘«Åºi2nhZùåÞ‡÷nÆ ’ösÖ”±žN.€Øò‹È§O˜AF:Þ׆ÀD¦§9z¹h»5·Y:èÔeÒ±ÔÙ)9_cô_K˜%òOr÷ SFUÝ/+2Çß‘@ŸÀwJn•„öÀZ~ >¡º)2é~Üî²ÃôË¿bºÿê×ÀFy4¿Õ'ÙÖgû©›íÍ’»²JÓ¾²;w–Mq¡ÁkQ›ùÛšæÕþÌ5 ”) aܽntP>F°’•trѸÿsõ0-(ü‘ây(³ê@d¨sC}Ѓêøöè§%†b÷Ýϸ/©ÖÇNï…Ù–“GY iïX+¼`•k†¢ú¨Ó–c¦÷Ö}ôô žÑú¬Ù8_åƒôíÅ[û‘^Ê•õ×=8ïYƒºõXB„¿ueñ@O9Öð®å¾Ù„ýìu%Rÿy÷ÖT¶‡€‘t<ýƒÝ}aÔN›;“‹È åŽËžáÐù]À'H^¥B½ü÷_;¡(ÈCIYaæYUWf ÿE‹zÜËVI­û|©d0F?¦²V6üég n󈨧5æ)KÂqÚ´A)Á‘´áƱ¼°”k-^Ï… s{̧µÒŽú—NP«tËã6½âj¥šOƒ^™<æ!ŒÏÞ†ÇÈq·u°æ æºÃR­.WDYõ±Q_Øm‡È¿ñù0]öáƒ3ú³ªZz¹_€\B8úN¤Ëß=•¾ï6¾ƒäâK %!ðSÆjŠ‚BÌ!Îp•EŸÛGë .½úWDÝÓ2¨lit†%¹Ošê®úMŒ9Å!ÖBA}«{ªÑU~R‰-MKû}óGT6õ€14¶óo¦¹þR—ÒÓ*‰rNf/BÝðý "'q¢JðÙbÉÌûŽ¡=¼ ÷SMD©…÷±DŒ5· ¬,sͯójO{*%lÉ2¦Œ•:=ÖjÒ3P:é.¿½+’è³WíK£ƒ öæTC'ßEwÌ/“;!Ù| pHö6]ØL‰¿(ûZÉýµžgÔ;åí/GW£BîlF¶¡­rùy=~D¿UßeM °"RC®KÞº4t®šIëá„RAßO°xoR[:1Çp1¦šfk i1 ›ó©=­$OYœª½ûÞí;µµ€éÓËYÓFÎl}2Þotð³ÙHpgg@ì­ç6BV톎Z¦.ª$DÍ#îA60¥ä†YjàÄ6BÐõçüMÊÏ#ñƒ+œ¸ºþ·À¨cûç`WçšJVÞÑËø„ÄÉ\å#y*»xX$’ Dø X\¤ß†¨ÂiQö(Æã?Äîæ3³¨¤c·Úî\Æ¡$SBF-ŒLŒé-oÏAÜ›T¸g[ô2©I[»!ÎI§«®?qNo„¡‰-YÐÑ‘fイ¶íU¯\hòoüÄŠ6IŠ&ª Kbt8ˆ"¾8äÌ¢Už…oà s Ô¥ºu’T¯—Ÿh¶`.­EbN1^Ã΄ _ê]¹SŠp6vë„uÁû27Ø5D&àyÅNÿÝç8²J¬—hó³Hå{Çaë$#ãÀÁÖa„ùœíò¸ Ê–Ä“²x¿çÂðö…ÚNl¤ZÒ™ÙÚVÁJ—8"Ò7·jÛâÎÁž°õEƒŒ0ˆR±"e£sü•Ç;œþš%þGPÐïµn;);,o‰£'»÷%+.gÓÇ@¨£(è®MŸ8W«ÀXûL:M«wRÚ‹Gë’1Ærÿ¼ h…úr1€xX©ä4úÆ«áS€˜:ÃC'»p{‹b¿ï@—TѨÔ<ì• •}†Ì*x–w™È6@Í£œÚ'cøP¹ÄÁ †FKb2å3ZŸ3".}0,MÐqÏ0?]2„×ù!¢uˆ±õ5¾›àiUq/¦Ms’mÕ­^ñžÅ¤i³-Âצt­48|Ì+Cîlä´õÆ"gP¨(‡ß&|Ãe«‚bs‹wzµO™‡0‡½˜™¿EF%1¸HšHüË\æ¹ÅU°©ÇPç‡E}êyï%OšœOk¤õCŠ„F'¢\­ÇMr`%<•jfo/·qµûž Ô”O£ܲÉA"Œýháø‚èEßî_5U»itw}'é´ö­b½ŒÈ(ë'ÍDtetZÓ“>:÷”¼ÑïꥶyMq~]·Âsï‹Ô—>RžÙÅþ­™xBX°ñ¿…Éc2™ì¬€Ðá-|±¬bxzHˆxQü2׋Ú¾Ô"–‡¤ž¿LÀ¥)έ÷\—ÏœýßÍW5 ¶pÅuˆ” °ÜÁPy©‹°žU%´vg‚û™\éà°d¿@©¦mOÆ^Äþ"$¶áp›¥zŒW–¦`‹˜/=œ ÷£úÅÔ¸?MoS¤B^¶S–ç¾<+B•ú4sÃâ8.—KòEÓáÞN#j—åTÜ€ìŠ÷93œUˆ·‡¾¢ôýÊÅyÍ-süËÏš©¿Œ€‘å(àÅ·Ú e‡EêJ¤¹gÒ¼CU8㠬Ȏ«2šJfåS0¯“rÈe|õÏ鯧HŠm¦ß†,Ž¥Ãð»ƒâ–‡HXÒcëBZöÒxáepœÃ5ȯsfƒëÁž³®ê–¤³·§ø\¿Ù(jÅxZM(@ú$ø”˜ ­‡GøDÂG(vE×ä ÑÞ+郙kãpÌy cl›á€Sñ>û"´Lqrˆø‘7º1ÑìÆb6:ÛmÈÙV§Ò‡®7TqÊ›e»ßÒ†Ãå^®²yƒÕ$ê¾]î4—¯vr˜¸ QÝöMö5B*ÙžúRÛZÀt¢5¢ut[¶0;ínØ%‚Qg+åþð@Ymêíkœé9wgLö>ë¼-JxÝ­Çø"ÅÊ;Ëk¾wçLWÿíè0;§?£ãÒTÉþ¨Ëú ÁE¨ m°gHb]Iè€÷*Þ5‘X1º +Ø0=¾¥hhüåºcbürÄÏfZ²Âs~oŽÁÇËXL— f™±,v÷&ötQ5æ[ìµNã¤am>§!¶µLìÛP“‡óöÒwCŸ£oD›Zí]½á. P‹Þ™}1—a,±)T¬û ˆ¯­µ]Sv–‘LO·\¡F¶Žþˆ«6™íÄQH,»M×ï øÃ¥ZY¨™hAÎP¾iuâ1˜²bµ’³*4ÔBò\ìÔ¢#tYØî÷Íó™lüÝ‹$r^.±¹zÂÒÔz²IÙNþÑ4Rv©µ_Eõ•ˆ¥ºQK±0•Ô³ë®3"£µ^QM"YÖ—âÕÊ–xg E¢Óz%Œo$–jS¸îü±Àí4¿6§I$‚ Ëô£ïh‚²BìNSuŸU®öp×Àã´¤\/<±5«Ñ৘s úzo¿ÅñIBÔ˜Ö;‚”ÝÉ“I›W@<ÛÉ:x‹8jMèYá¤4›½k‰¬;ÇF^†Üÿ´ìÁž¼eopP‰†¬ìmlÈsä ãæöš@ê)/x{‰Öƒ…wz*t¨,3Ñ¾JÓ4Ñ”Õ(8M¯ðÀ1Ó7tI!“HhwA±¤+HÐòö ãÐGU©µ>Q©ÿ–%üT\ß©8—?ó"ôåËVONÃS½~ì\ ·sü{è×9G¡±Äg­tdÿ¾ORÆ¢7@«Øv¡o¥zäA%cx¤2œQD9‹gÏ'cÊV ÙÖ,ÂY‡øÁú ['8Ê^süf(§©ÔæVÂ[I”áÆ"Ц|µûÅúó±t ÄHƒùnK‡¶«pÒÄ õ4|5õŒ*  c ürSܾš:ʬ{ÏÂ,´òÁ¦ç$ßÝ>IpÀˆß'êü`@ÊŸYЖ—Ã#Ø8&²Àƈ.ô!B½–9`Ÿb`§’Ù{ÆX … ¦eëô\*ÃØ†È‰ý&²t¥£EÔÖ•|SE@oøŠ‘œp3@\\JïS~¯¬.çÄcJ†bó«Ò½ˆûµ£:æ’ŠœÁáá'‚K_¬!ö͘ÿ—Ü“‡¦8;æC ’×ÜP9g7€ÔîÉö}[¡ô}- Û}À]Á•F~ôÑú“‡IdNÆoõÂÅ~îªÏŽ\u,ãE³(¬73?®ø/eÝ3ªdBÒŽa Q uG&èÍéõåkìäÈo;¬a ^1%šÅuÙÄmÙu.ÀŠ‹ÅÀ79@ˆ:ñÜÔÝ .^(!ƒó|J8Aÿ>•£ÑŒ†ÉåM˜`+ª¶ÚÊÛªäòŽ·Ÿ£S©½SŠb5’Ù䣦ÄF4v$ʇ¡ œ]½Â²?8| äúCHÏþ™R ý`¦&Mà ôö! É’shý°€Ê‰4×F²†y}ï‹DDòU‚åØ:;aÞ¯8¢Ò\÷ñ©Øƒз†H6(¸Gº#Q#CØJ~XÖ«dš¦ØI #ÁÒשt;ïÏ<¥Óh優åùŒX'I;àP´z7p óë ç’/¼œ& >èÜô´~ %i|DbÉö¢'\ŧ¶¯Ù/—Îç+{l¢Óê' J‚]ã¼€¦&Ž„=)¡lä ( V<IîD——1~BÏèÓšZDI¹ÛE®Þð/7yá(Ü%Ö·»é1oñŠce­ÔOpÎ&)Ä]&ä\²{å`‹âÙEíléÑø¸Çt‡' Viòºwæu„”ÊDL²MlºÁøôéJ¸C‚<Ž“"²Nµ®ýqVÌáñÂý¢QÞ³YKEïRnÊ© êw=a°´$zX!–A`C×çÃQŠ_ˆà ³V´ï­»¿ Ã4ÔsTƒ&6Ïn•Ž‚þ–뉧Î?ÎZº^N=ìÇH!íéwYYªKúEùVÜÔP•4¨T=={Œ=½ŸÇn+Õ²«Ö&îWq4Ó/ð&ókޤ …ï?’7wC[YQKç7öPúÈZçûS'8UñH ŽPéàh#ÎŽÚY´y~ç_×Ô55ÐŽ yÁÇòºTdü !g1™° œBQS>mKb½É×ú¥WXECûXÆò–›áÖ}ìµ-l»ûž²ãjMï|O+Ž;¹( O…%ÛX§\)U ¹ ÅD™ŽD3BV÷z4h׬Y’s±¦òæÈÚ-]ß;tÄð0ÜV€æ–RÖ³ì˜wÒ€eÆù”Ñ[Þ£{»¢èM‚ü%¼Q|Aá–n¸#h§FŒDS6覜bDŽ´±èJnŒã–pûÔW8s',w‹›më°éºØJÄêÛE|ÏØÜç1kÄEÌáfúéMƒ‰ÒÙŸz×ßëÉÜR£ºD¨·£Cvi8î_2‘ìQÕ¹¿=½‹A«ðq¢ ¶ÃÜÜøï®‚ VkïÛ±¬St„ìÁ̾6ƒ˜^{g;?[€aãK•hñ…Xµª6ª ߃[W¼ Mdƒªú]¢È}Ås×-Sü ¡Ç¿í€2q”ƒK·÷SµLÉR/$“­ÔN@ Ó83„4½ïÝXkÌõýbý² ÌúÛ @IÄ¢ó¶_P%“ªöÀ)fc&N„ûMs2+.È¢—Áë8¡ê3ÿ¤³”uM^€ªa{ÚM‘â÷›±m‘¹~þš@S–ÝTíoÕ’2£E9œ^3åݰ4,aÃeŸ`˜Òï§¼ê3{¶H~X ¼Xy9.ÈÿRPíO¹Ô·ÔªqSÕEÈ’¿7cûÑO‡G¿P-Õ°í¹Õý¾,]H‰6žþ*2ýª©²¥^»$‹¿4 áÄxv!5žÚó,üI›YTl?tçóh›Gdy+À…FXƾßR˜—qHúž[ÎÓj™Añâ-K¿5k8%{c<â3kB aNoØ­l•ü‹ÜQyÜoÌî¡bæ&è´ _cw8´ðÛZŠ™p°ˆ* ,zÞ©î™ÿ~—™û ^>».µœ¼CË×¹Ð%íø3÷l#1¹¢f«€üÇX›ƒ 3l#½ÒÔl¡7OŸoP}>14£ZšPSƒ÷k±ÓüShç…àÉØ‡ÙªØÜ«×ì鈯ËJC͈ÁYzn£Ü1¦G L,ÎÖ$ÒYðâÆŸ’3Aœa •qË1Ç®I„Lä÷ê›8ÐÚ4z¤†^!¤ÁEoNeéós=Ë]”ì´3Wq³GO¦PuÌCÃšÒÆÒ?Y‚”dÝ>œ£L:ÀÒU£‰Àj|GLVŒ·s 1)X‰C”gÑM2?åOÇþ õ×9o¶1ÁJxhi¥ÃOÙÙ Ñ…NñµXêhG“åeeL÷ž6‚¹½Q›×óšL â.@AÀYé+m¦bU³Ÿ¡4/yÎ>ëdž@Œþ Æ Ž¾—FÁpŸ á°Œø´C¯hc/¡áêÓçUdÅÞGã»Es؈§¢ì17s°"?j`ïΌчe"DÜ  éIúÎQþÀæÐ~†ÂVãâ“ù§££ëß\ûµúÛqz‰¶yŸˆÏÖ×kIê ;Áô åõe ,া{NÅ·FÞ²ã×\uÙºlULüÈ׋¶MfTbˆA{îžá˜xq§j†¾9|ËSë’¼ñÿÉÚœÝÕ=²$bÆNÛ¥/ê+ çÌÜ‚'“¤=ÔÓ< T5]èHäKNŠ<Àwâ\OÏù–暢&þL«>Å©‡IäJøKg0ó÷Ò*¸~ß4n U³°&]hÙë°v·-[qÒÕ¥€Sm÷K ûar„„5ª¯Ø1âïx~ºq¾cù ·%Åxœ—(ÛRùý柎^ Š« 9éÊP'Dé·írGDìŽ @ø¤ÆDMgÃÌeC Àw5žag] Êòa÷Sž•t~"Ù ".ñ ¹âêÅMð KG««fPv,|ù@lrµïÃ+³à1Òyü»OZ³¼º|5‡8ø‘Ñ²ŠŸJ­lø(.˜Öur ]bM<Œ ž9(æT¹SRƒr»î(é¸/‚F/ŽAs`6Ö‡¸…"1 áÁ¦5›²ˆa®ûr<ø|¶„a´½ª-0qJ”™IÒÙÄœ/î Md‚EI:4´eƒ}A¦#ÕUÇÌ^‘걂”;_®–å£ì/Í€…û¨;úÂyÜâLä£àÝãDîú®`‹Öâ¯äTõ£$2LVqdÅ{×L©oM¡¬¶ãñ8q`}›Îˆ›ÝyÚ¿*5£g¡BŒY#Q”¦à`øÈNéRÚIx½Ê³°Xúógüí1”?WúÈ€Ñ&ü*¯òÒ ]„’†Ž?Öžˆeè† r#ç Ø7ƒ¥%€¤8uœÁ#ª ?‹ < -Òø<øeãÍË«Y5}–2 ëȰ—³8]G/„Aî2L<øR¸t:ÒK„Í\ðûaNÈ}¥`Ž ˜»ÙÝ…YòŠ~êŤã È$ õ¸g<ˆ²£çW=ôr-¹ðàéâôÑ&8HÅÉH^º¡Q”W/ºŒªÍÜÉlîV•¤‰bwK¿æ§Ñ£ObB²µ6Y‚ƒ¢¾o;ÒýΕ~ïç0ÒÉç`Az½®u“’þõ.ÂÜÊU°ìôÚ.¦!I&¹j:Š#Ž#æ ŠfÂêìç³jçïCETV±~¦LÝ %/Ú¾Û÷èíù†Öy¾-8¸R‰9%q6pbªÍ¿¶VÉÀY æÅ¤…ôM›ë©Ióˆ´p˜ÓQùÓž˜ìâræm#¶ù.Æ8g œŒšCͬðãÑP©‰2)–Ó‹žy¸ù÷´R¹ ÞÓî^{àˆHeÁaCêá1œ©&ŽýUÑDwÂ֨@c?Óî®Ê*)\‘‰ <²I?l×NÞóÓZ© ©ŽƒDk]3ÌæïP0×ã—et×lmq9p´>a*û!}¯Gäv· ¡>>ü-ØM‚¦/„`ÏZe,~mÁž¼ÕƒŽþ¡‰n2(CYHR©M·Hª ?.¨dMΧáæFR. /WpyZ×Ù"j© wßJé:üOe›äõ¡njG 4?Ú\óRyVξú=9<˜ÕñaŒï ‡ù*^Š ölW™3q`€}ò[)‡á¤'Ã+û I±çö¡É/tªŽ› ´/­qøv7sÃgÓ¡Å}aÜBÁzúGÎrÁíÏ4 ªAWwý}º„ê7th•Ÿ8‘3=Uð‰ž‚ÎD™©>í†Ì˜ƒÝ”{¨S+zîe¢­_I{n¾xµ´¶W»ž¯+íÙå¤2Š{¡ – M•z2~²œõög£“˜­O·d ˆäŽŒÌØ(Hˆ;4Ý>«txNZ.›_uÌÔ¥**/Àð2^*aô ¬q@“4„úF‹Èc!{² 0‡¶€î§;»ÝEæÒâuµ…Ûwø0ü±û%¹ó/-z–Ž<].)çËʰØýùÉ,»«ßú!&íMwPÎBõ%›r"l·D䭛Īm$}˜zjAw!í“«ŒŽÅŠÁap…D#™ÌDÌUá°¹­Kp`­øbÔŽvQd|"õòѹ…êy5&ÈLþÚL"‘䛖ꮯÆ^gFól6—Žø(^}ˆý5A®Ê^0-ˆ[ TÐã®y? ê}Ÿ@uÓÝb‚oå½ º$ƒ§ª /OÓž^¥£UšûBãå>kÚ×cïBk ^H¼Øw›‹§¼š{ÙyëOn¯œW`y4Ž(|¢{ (á†ÓúݯìÐT4ÐH9œ2¹ôSC])_E}Ü~/¼nÜÚ+”¥“ÒÐïc™˜R=aG r`³ŽçÅ,ÀüŽ…ÚÌe‚¡:¯C@s²òUËxœ«8žf?ݱ ‚«FïS/¥…¥|ò‰1Q_l@®‚å¬ãeìI±|ìâJ`M@ܱÑ`ûSƒ¼\ñ⦡mŸ µBf|AhÊælr[Ydd0|WÖÅLSÿ2eøXÃ!íɳyB[`ÔwuG¡R Ý~ÃYóQGÈKª>°Àž}Õ&!¬ªõ€™JCOüQÕHÂ?è?3DX;d~¿v¸”Tö¤«å$YY…â3˼šM §¨Cƒ´É‰¤å­†Ï{Î i½jøÍ½¹“¢0LŸj€Õ@¾Ÿn5½Q’± Ø>Ë:Pð› OCiŽ˜Áå^ äå­œ`;¯~»„Ô¹¬Šõs ³¯·E¯YÇúÁVÁìÚ~wþ(44•ÉVö˜ Üút$$ 9i—KVÕ “Š 3S~xD‹Q½¤PbÒõn¡=Ãæ—0ôF´Ìªt×Vø~pfP‚Ð%a7®!ƃ3cé/r•˹¦ºNc3L̳¤ªZwÝ Ä(ìF¸¡¶j÷ g|CÛN!ª²€éMžÝ×ÿh,{³ÕiÙÕôò« î·ïö†`b`,d”ý[äR4Çâ/»¤Üüê^WÒ–FsOJ©é;DC(±j0Õ³3ÜoØXu²¬›rày«ÖQªôO7¿ßF~ÚöÃxQ([Æ=^€ýš ÿ\Ä 82Ñ~¦ +C’‚_¯èVIÝl[îþ*©d™P§{aœAðf~Î'¦³RW#'RŸôè<† ut©“µàß¶¶X½{v¹,¶ªßÛÁ§dí÷J”}(áëokó².‚CÇ…†lˆY–Ò÷u°5ÙÐ ãMWàJ!RÎR¢Aì¶½÷ Ô$´ —…ÏY·¬š P¹ÇWîè*½½õEK_`b"tÀÁ—²= ¦–ªm& ôO¬rÌΔEÂIë7òä†è™64ÃZöÐú@O_¿uÀr Úr½Hc.•sûÊ`m8 ÖÚºì0š*6ìŠëM½¡«6…Ä’÷Ÿ\DO.1Ž/ÍÇÙÅç­Ùãkió°qBÄÈ£¯¢éÄDÞ¨;±ÙLî*Ç«•ðÇs?ý6Ü¡¶«ùʨ8ùѧ)((Ø«DxX|(ÁŸæ‰“.®¦df®•Ňjœn3¨[0t5áÐIø##ằèYU,`ˆìÖLQÉÓÚ­7>]òrMX…L„Vñ;gcuW†ža›\ÈÖ¸E$¿V[QðõjÛðkü”Ç.8 Ÿh[·-{Hé Y}ËoXš2v&¼¥Gjô¿1¦ÂAJ•À!H~×êÏü%ÿìWæs±ç¶;U3;“T>ª¿.8Ç[צ¡¾FgË”9«ËdžÌÿ•¦”»«´ äφþê“%ú=»êð+‚þ>CŸãrFíµBþŒúšBöU÷wíÍ0Ê• ©öò»ˆ'Ò óìfOް¯SÇaƒËúhð:àeþÖ³2-ö^IáÁ·œh!Y¿ØëÔïŒøšþM¢Ê£ ª Ë”jE…þCéš„™°A+ÍWøŒÊ޲Wó²öŽ¥‰Õíó§ÁñO ~~¢k$ "Í›—Ó3ÍŒ…È“Œç•v Rͼ¥°%mk*“#‡„u[–âÁDt´ÿþï=×éÑ.fNú0?A89t3©5ì”{ÖÁìäZˆÖ+Bú¸Ijñ¡5æÅ°{ySpwíÁ_ÑM Ѽ-“;Lɘ0ð,ò دE)Â…ü°$)épR88Ù!ÏÁéÈ6ÕWj”ÍÄebY°1Ð@ÛR~†ä‹ –EŠV*èÇU³]:0¶á²™r•\gP6S& lê´O=À —m²D÷QŽuâ#ÙD…‘F4÷ÃeŸñ(­@eþ>ö‘¿\ß$?àp蘳,ÃeÛBõ»sÔ8ŸBMÁ2úí–³”f'¦Îgà+ß)k'Sn®løèö½:Q[>R,’éÀ¼&ðhìjö ~uÉ-jŸœÆ;ãÀ A›ècÓém/>ˆ |9.7ö¡‹“’ÍÈò¿ÔÙ²ÌJÆ¥/õ+X³ )Ƽäzçâž·–k&Ç…ºPœïàðí­'X<¸o¢ÇÇBÈ¥–çß8f>Gâf™V¹¯õ:Ög=®ƒÌÐúù2‡³bšŸD%Xê>”œÀ áïl(ÉÙ Ûʸ•Æ1îAÍ<žç£zÀÛ3ªÏ×1[鈮ˆðk¤\œøg¾ƒQ_Mƾ:.\ÒZšqÚ>’RŸua¢cXëØ¾p~§ëÐýË÷«UcŽQ«Œ>ù„I¡ËlSÜÙÀu’ž5Îg°*yâLªwãÊ‹íöëÜY»È.Îg4ÓLHXBšâ@(•P³‹Û(—½o ßÊUuÉ¡ÿ?ø[ó„°jaQxÃç*ïdYüÚºÖƒsk3]":Ÿwa$jp¦ñ[´ã&ù§âynÝH«õÈ‘`ùŸ,„ˆo½Ó¤ä¶ÒÅ!-Òr¦'c1'7Eؘá tðW=!Ç u 1yQ|'ˆbɰ¡a~¿È{ðíÒÆóÙÉíÁôR+•tx|±"!c/!è¡Yb\4…f^®=w?u—+èwŸGiíZbÍi³AeJÛå/tRnÅïM¨9¶M¾×7oÙüT|ÊCúl}RÆtŠ…®ÊD[ûÓ€L×Tíñó‡–Œq 8Džº å@†±áý÷†vxÇmqú—„ p"E=ÉÁ¢ìe¬L¾OÞ](–ø¶§$4Y”Õ·Kgê|ÞŽ]èÑtvÖíTi!bMIy.gK¨G5 ¼ŠÄç…§‚+°ö¬ÉZZÙQ;zü¨ 6.–8ÕÔ3òÓK)„x—œ¦Ô­©Ÿi*' “gjwB­@‚îÓnÃ3ÃØ  Ò‰½ßïKñ!V~Š#ìD~D™št£{q€èüÐ[¸(Á]°u-$g‡8ú¾_}ª§Qžÿ¾s:$ÃS5¦#eù^“­Ã¾ì‰‡vèùg®Jð ºVùIeºµÜœ|©(>´Æ^ê¾Î'fc|}f| ˆ-hZN¸ßü³å˜JäšÐèïv…tW¢ôíªLb 9>uàêE°O¦,¯Ô6û§õŠÓBJ †F;;Ë‚YØÁŸÞ„#±ˆ¿*Õתá ÛÎϳ3Ê`3ÞwÎíp¢p8ïí5¶'EHÑÒ|0¿+Ö½S@ÚÞËLž3VGá¼›Ñj‹‘ئ±\Ƙp~¼R¶<—ü¬ÌñKh¾WWìIØUYaªÐë¡.=+LyT;rrV ­Q^žSÒ^ÍP>ÆìwUEI])-އÏyíûõ»5lI%ä««Åš0;ëΊ‰†«iŠ)¼¹© xkŸŒ·LBëFDYpö»Å¦ÛhíEÒLp3(7‹¨KR…©n1¾ùj§¢`°*ïÌøÄÀ ½œ‡yŒs€$ö ¯J×ac•AqËKÉc¤Ú² YÆúsMafÄÏXÇ’}h³Ûjƒ¥V ׫ºûÈDõaÕlÓÎí÷ uΟ'»iâ›ü‚[ÜŸÇ{î¬è»ya¢gTvÌPÜŠ)ÈÈ[*H Ï7Â}Îë(¼äoµJóÐÙ>‰È©êõ‡ Ò;;{§ËrñìÑßûÎ[Vö,T'îoÆŠÿÎ{9Ê#è‚ól€hap'×B›7( ›“¬ê’à¯ØNú:µ6q­øM>ïWS=vï ÉcQxu!ƒö‘Ú ›5¸åIÔÚl Ã!6åHÚØM£VÑ,ïeûàÖ] ÿáÝIcTØj@ȸ*t²Ö§˜bNT‹yŽlÈ– ¯÷CXg˺9i‡Ÿ‰–Z}Þ¡½já¹Z|A*a7J³ÊkfåF8Ö²‰–^ +WkJ^xH¬ïñ¬0Ç#Aœ*}•5q-¥?ÕÓ¨¸±Z”Ún`KÇ•‰yã Þ ÏYb¸¡üB~›öuY’銣ä&£K_š@_ OÝ'šä¥ÜT„-SëŒKç»Øv1Ýd`âÓ”JbJ3ó«\ÈsÌS‹tDKÞ÷€?”a¬ìïy¸‹`j"˜XÁþÆ3|ñV0¬þ»Oë!‰±1«Øƒ§zGØ\=Ÿ%ýlw‰È cõC?k“ušÃ`T¬Å×ÛcÒîÒ4ÅMõN‰Q§ºµ íb±Ò-0ñŽ–«Ã|)W–QÆÈŠ“Òwò\ÔÁR'󤪋g0"‚D–°¶sü¶<Ò,Å7øÍ½Ã@nŽ Ó÷<·`™¬‡”rkñÀ3xH+§®^u¶s2ö"$TçC3%eÇÇÓNiÿ.EÙñn0U·‡*Ç„FjɿՇö†›ÞÝÇ«™ñ- ’ptçÎ×zx*|œüžcV¨Ûµ¢'Ãæe€ãK¾_B%{þ{(žð\JÙÖ…Šm†¹îÅ`ê~ñˆü”XU­:¶¼¶ R‡Ö;Û™ M4F½ä¹N}Ízf“¼V¤1ܪºÚDPÔY ôƒ|*9Bù‡zPsÝw_Û=- E‰‹ ˜ËTÇJµ9ÁX_ZÆ0dD±Y1ËìÓʉ[ÍOVŸ–?îp–h V-#ÀñÒ‰±©²’vªFM'lw¿é¹4u=pV «˜(¹@¼(6e}¬¾ªë*@R–QS"…Œù‡Ÿg|v=«"â$G,“ÂI ·e&ã ù;Yþ b¥LÔ¤U†‚¾y÷*;êW Ù ßwjcX–k¨»ô˜êTvÈSÒ%èê§š‘b‹þšFú! h®8䥢:-H²1¤÷ªXU™Îu5ר۱eq€§[Êâ Ã9òLU³=D3•nóƒºÚë·a‘4ö §ô\"‰Ò$ $HmÌžÌ]{q.YyNUì3[ÒG§²ej°CêÜô©ÈR:­Ô\i³k…î;ؤ/8ùò[èJa%ú?¥"*%‚¾ìè‹wî‰I/ú-ÜbÍgéMú›Ÿ±½1_À@¸íþš3"#J®–eÑ œ×·B‚üY\؇°8cÜ#Æup¢Ä<ƒÍ-Fó"üT‚HÕ÷Ë¢À,˜#ÙºmÿÆü‡8çÌM>wžù3 9øeöHŸx«ûRÖU*𔻿(•éLŠ^5'¼Â#*¥Þ)¼ÌQ#ÞRˆ®úwB¬–ÇìzùoÝí&¶_ÏÍ—«ù1ÀbNK«N"r›½£žÃ²ßo+N87‘ä¡\8HA„¦:õçò¹¶ÂÔCoCFNxÇ!¨%Z}Å®•laõ^ܲå}@—+è| ·Ÿ›ÏýêtÁ^£˜_69À'¹Þ‹¬Ü¼;LÓ“ ¹Ë qDOWÔf¸=:@H§Ðû1Ë¥…~ëJ"¡âTÍñ&ꪜòÈ–ØË%b-dÄ <œz€¾ÂÄÉÐ[ò­ær² 1ì#L‰ V¿Oö–×2÷-úwítt¾&+çÉá¹Qqbfd¸k­fu´þ\_rBì«?Óö  ù)ñžzÖOÙFªâgŽ%D6#‘ãñ~ðD0Ó¸‘OûAä¹Q?m´‚RóöÜ¢FŠ*Ìâöeq@èü *ó´¥6^Å-Äì`Næö£p$‚‰«Ú¨u¥QŒlù³?ž4$[ ¬¼ÙÀÕ 7Þµ×géP³¯. 1|dË#Rç¶îfKÁ},sß®ˆù)À±%'øó{ɾx”oôky€*¯]cCƒà,”ÂqéfŒܸßAÕZ»âÛIX¿ÿVð {n£Ú]{QÊl¼-0¦½aˆ;k¢m'›Ö'=•oMœJøiP FÎZŸ_Ü0Y1EÛ…›#d°Ö;ü`×µ+‹Iýé©ôÕ*ð‡-BEs´¥ª®þÿÐåéendstream endobj 624 0 obj << /Filter /FlateDecode /Length1 1836 /Length2 12872 /Length3 0 /Length 14016 >> stream xÚ÷P\ÛòÀ ãî. ww·àîn 60¸kpw 8'¸{°à,¸œð8rï9÷ÿ}UïÕTÍì_Ûê^«{ÏÞÔªÌâ–`s  ØÑ•™…M ©¤¡ÈÎ`cãdacã@¡¦Ö¹Úÿ#G¡ÖB\@`GYHB€f®¯2)3×WC%°#@ÞÍÀÎ `ç`ç`cp°±ñÿÇ H™¹ƒ,J,y°#Ð…ZìäYÛ¸¾®óŸK=€ŸŸ—éOw€¸²0s(™¹Ú^W´0³h€-@@W¯ÿ A'dãêê$ÀÊêááÁbæà†X‹Ð3<@®6u  â´üQ2@ÙÌøwi,(ÔMË_ °•«‡x؃,€Ž.¯.nŽ–@àuu€†œ"@Å èø—±â_L€¿7ÀÎÂþßp{ÿäø§³™…ØÁÉÌÑ äh °Ù*2Š,®ž®L3GË? Íì]À¯þfîf {3óWƒ?S7Ȉ«Ì^+ü»> ÈÉÕ…ÅdÿG¬„yÝfiGKI°ƒÐÑÕåü¤@ Åë¾{±þ}¸vŽ`GŸÿÈÑÒê2,ÝœXµAÎn@9©¿m^E(ÿȬ®n666^~>Ðô´°aýcM/'àŸJö?į5øù8V¯eý@VÀ×3w Àâôóù·â …` ²p˜­AŽ(ÿD­þâ×ó‡€<l¯íÇ`ûãóß+£×³;Ú{ýcþ糊ËéHÈë0þ]ò•`O€3€™ƒ› ÀÎÎÁ à}½ðûß8ªf ¿óø—¯œ£ÀÿWº¯ûôŸ”Ýÿ„𿱔Á¯ ÐýÓè†lÜl¯_ìÿŸÛýO—ÿ]þG”ÿ×Fÿ¿ɸÙÛÿ©§ûËàÿGoæ²÷úÛâµsÝ\_§@ ü: Žÿ×Tø×è*-AnÿW+çjö: âŽÖ¯ÍÌÏÂÅó—ä"òZª‚\-lþjš¿äZŒ›=Ȩ výqƒ0³³±ýÝëŒYؽÞD\^;óOðu„þwYiG °å³ÆÁÍ0ƒ@̼P^ú•¸>ì¯Ci ôü³—¬,Ž`×WÀk‰~+0åsåá~mŸ?D€Uââ°Jþ—x¹¬òÿЫNé¿ÄÇ`Uý‡8¬êÿ'€Uãz]Oë¿ÄÿÅìâ°Zü—¸ù^ lÿº1ÿ‘pqý!qpøÇãcµü²XÿÂ×D¬þÁ×D¬ìÿ¥}eëákt›ák¢ ák¦vÿÂ×äþê5s‡ðuYÿ…¯Yÿ…¯Y9ý _×…ü _×uù¾žˆë¿ð5 ·ákîÿ Ç뺞âÿôˆ…òz¿üs–_è?üçÍôZ ,̓-Cm¿„¶ßÕŠ“z0ïNrp¡^F]#éìH»ï©K Ý_qE/ŠwÏýŒ¾ÿsÄñù¥ÙN—€ÍÎxÃ73Z€`©¡ÞÊ|›Éw GøáÈEÑã§BW—¾)§£¥5ÁY‹ú°ÇµØ,=!“óÅî÷œƒ÷B4-Õ·U6gˆ´MÇ,h0“±ÑˆD||œh0¡â9Õuâ³srT.—b“'Éd2÷™cÜ[ƒËåLРÍLÒÃCt'…ëœC‘Œý^Ó)À,õN¯4Ñc]ðu{h¹Ë¸†è;Á\¹©KÙËÓ\ݬ—éøð{E&,Ô~ZcÇù¯º* xÝœ;J‰JvÑg·øC²\­ê¦ßáTn´ôÚbÄÖl"®\ša}9GPÏÚúE õµBjØiu‚›fV*U'g&Å•ª>ƒÒ£XçYI`Ñ?”²/æè U”µ:ªo¼uT|çd&Fd/=ö‘*ØHè &’Od虥ÊM©aèØœ0T12ƒ×Vô²(zÆ šÀï C^MõF]hÌ­±€Ó†e mo(#<Ñqúý¿›4OCæSÜÀÎö¬ƒâý /æµmÐ…?VlÕ_z1?ou <ôÜü{oˆÕ›­=ãÜîNWéÇJ·Ç®´ç¬O€âV»!˜½9*·å|J{мQYêªDAmöœGÑjæ\b3mNèÜA¼NÅ–A\vö.3y~BÏñ™3z9б»ørX±*»/YYX!(C…›pëaÍyO"0«¿˜Þ[Æš!I[½÷Óü%²[¿O¸Ïñ}tuemOSþ’ÝÕ=Û§jo€ñJ”,V`Ö{í¤ê…üÙ²Þ§Æk€`V&æÉ"šó b²äy•ˆ¹)t?¡o°FßËTCšÍ:›¾÷¬ns¸×Y¦ Ч‹4ÿàyšçžpz\+¹¯knÚW6 m—¿‡¼ÙÇþ²&Ò¶FÊÿÿÙƒŽ¤¬횀"eöÒŽƒ ßI²”·«þâàO”ë-ƒç*Ö8ôb¼”e’,¾ü³½Lž$:\™Hœy3R˜ã‰Ë˜¨Cϋǘîw=Œ¢†;rèÓK#¶´ŽKOÝZmþÌMp¬“5Ó½•ì_²~¶œ­ö¼ñ) Ü_)b¦ŽEy&̸?w‚œßYü~‚Šã7j·öb;vËÙ~—¨B›'bs7>ë íoTÚËÛxª sv‡_nûÀ‘"’H`&‹U 9NÙÇ(q¾‚|V¯¶ïdÀ„•y°W“¡ËüáGe3ìïp¨›1kòåçœgoRß[A>tœ2&‘}}3[{aQÛóT á%¡ã VøL„«P‡ÞÝÈP¹8ö>À–ŽhnKfÞ}¨MÓWÞ¨¡½^g–'¹Ñsœ·QÛ³¾„Ÿ´•ÚOmÛ…GÁ£>1ýÑÅ,FŠøùõ\é}Œ¸'á Ѿ-C³~¾f_½ª)W{‘©_ö%Y¨+ÎÅñz–¾9ËÅų{œ^œ©þÛ+z‚Þ%G“û™oÚÏÌ´Ó_’½ù§ì¸²§ §‰9õ O*P)¦Ðåa…u0ž]]öÀÈâ(¯õ†„vcÊ{B‘óFšsXý“5ñiSõÔÝS.¥›‹jfÓœæéSo“j#L4é¢P›JƒÓ·­XôïY‘æÛ¥÷. ô¿W²ÓØ}QäÎí5‡X0¤z“‘WR&|¤*ˆ c#8Õr> žÇdÛ#}ݦËx‡YÚ çÛËæyôvq¼VÍ0ѺA7@ ĉ)bPø¨*¨ø…/Gav¡%w—áË0›jï§¥ï%›îD»¬—ª¨Fè$b_Å4ßĆyÂamÉmͧ9í`O:Þìyª.½ù&No0`7^µàH7^ò–¦®½=ïRûs÷êùðlGÃ_Õ>Ç«A@ìÏ¡ƒÕœ(§F.~Ž‚¡Î‡‚aKt1Éú­¾M¼  Kc›ŒÔ^K>QÚïØŒûË×Gè§Ic«Ò…š™“šYÝÎæ£O¡ÄM¥«¡„¤E]^å&û¤a´ŸêU—Fݯ>ýð#® îâëWöÆýPö¸:HªóŒRkß sý,™Ží¹Îé–T¾À³Ç}ù™‘+ܤô&çøÂ¬ìíQgE¦1Ðß¼øó<õ$:j)ú‚@ÏWÞ MÍÙ‹(zÇͧ]ñØp Õä)£8DrNogíb}P‡’‹¾?AMfýÈñû(=‰"öâJšŸ‰—IQ–¤h×Þ4AyéÍ)B¡þ®D’gtÌ‚‘añµAþ<$øöæ @òN[8>¿„2Å.£èB‚âÜÑÛ}Š©Úb9ÕoÉf^Çúf+ý×ú­f§ƒ¹àééžh‚¶îJÓ‡ñVÜwüܑ͂ŽOü?‘J7‹ ñ¾Žô y9­Ž'T4'¹àC;Ð;á:ÓVIÆ4Z”Ÿº0lfyÌ„r½‰<í`ºDkI‘­´d‚3mŒßKp3K…¾ÍÓü‘©ºAó¥;¸:[ yâeQÏÒyéО„|PšwþQ8 N=.²‡—œ5ÅR,\S.Þª]— *SqokÚaþ8ƒÛÚ Ûr¹zn›oˆ! í \ñô¤4° ÅŸËȹ×edv-·±êĽjg|“¨;GÌŠ\ö®àGˆûóOßÒÒøŒd–/ù«Ðý‰û>öz¶5n@ä‘/¬’üA`Á àÁ$‡Û5™Ž’´#–Иe]Åj¯:?V9Ž8Âëý §³±*ÙzòÞG)›°”=ä¢+x‚{œä.x<âKn"&–PI‡Üj©5¾¾KsD‰nM{ÁIí§—YßËÌt—ƒ˜O{.ÿÞ='…øÔ:¢{¨ÌÍF2Fnû¾9ÅÃÎCE[’û–a³:89࢙«ZI >TŒÜIO¾4Ζ °Sãó^ áû!¡`Ê·W^Œ×.Ÿ&›#Aš)Í>%Ý_dÇeÐçóü^žóýLÍ ‰NlŒy¾‚Æû¹Ùa4fÿèveï Õf+f_˜q݉~„Ï…JS„t?‡:'Í¢½‹ˆbÖ¼ßìÍ/)ÀŒuÕÂvpcõ~l•š–³0¼-¸¬NM¥LLëCHΣF—¥{ñ·2Ë,t»ê›ËÄŸð¼$)ïx{}pþIoÖ¾%­Ø¾9}†ó0,29öþm·kŸ¤„xºÍRS_Æ$GË/—•gÌ|E%Ul¨Ä>÷[ú»Ä/ø™·/X0Œ>^å,*fØ5]žgSmÄ ŽÆS‹¸e0˜‹ºL¨*·¢ ƒä²cIÒþïå—Þ}È/£ö©ÑŒR._ü‹ÄF9ÄÍoé¹ö 4ø€12FýiÁBør{æHðO¿4‡—ôëÎ`p]Qb:¤ŸÇnÝ3ô¥f¥ã‡—·¹Òù‚þ6Ú·±¾œkGnŒ\9cèˆg¬PíôÏžx†©5âËô3–I6 ÖL+Ý£Nxosñ·Œ=AF_™îéR("7‰|$whw¯æ(@󗣨^bvé¤Ç™¬› ÊêoßKþ®ç[lÄ.§ÐcfÃð‰•qÖÇçÉu=]lÞ.ü÷Õ™êáÌýQRõ•„/˜„3Jc‡j° „ï¬á2¢‹¥;+ËÔ¬º¦¢ U(6HÞgÝlÚŸ1uìùDµE² íúogøLÚ?µòý¨d‰nQ ÖW1ÊK¬’üF¸B˜Õ³…~z»£ýI'w4²L ñ-´/?·/T´®êÂlãÇÓ¥®æþƒwâ‘Ñ î¼ÈÞ"ZŒÞM 'Èyè¹·&Îq®õ … ²³¯n% ¥f'f‡•`’d‡YÍ{Ø{̃Ãi×Ë´{j$m¿a6œ8BgVž&k]Ÿò}T2ÜZó_3BFƒ!3wÖ·¿•’óü“ 8ñŸ‡±ß%Æ[uIV+¥& w<.+³-A¨Gh^<ÿ>ºÆüÌEÎ.5n†¨?{ât(Ÿ* L¤>—ÕUÙQ=ïðtlR: ÕYƒ^ÚY©gU!”ñEèžOÉö¯“vÆ¡tIÆ^“'L–ûÐ/(PEîšÞJ”ç2•è;-Ò;ØÎšÙ&äZP<Ñ\_±Â_hû%EŽ÷Û:ö®Ï¢‡`§’îøK¸À.Sõ–RE±Ïèè²ÕÎ!e3=õås¯2ñ&oqÂ@}»YÿKÆyz­tS¦S·ÚKû”)5OÍb¨'…ÓÀY@ÞVn]ÒD.ÜÙžü ƒéú4árŽÊô®VÝ¢¶¶‘÷n&gâ9‘Ê•Cf•)ž÷•@‘æ•^X™u¾ñŽ£:'¯XÛPüÄý®6vRá‚•ýU(Y T<ÄE‰„޳òÃc'Aü$ïé­ÐiÞh],rÓ+7C–.†®žB¼Ëj„ïϰŽM$Þ %ä‡|ÌyÇ,˜ù»[Ýf÷ÝÒô¤Ë»ÚýÛ8inó#ŽÀ\£QO¸'"·ÂÉ´õÝ_ý9̘ŸkA­2Õ3{¥»Úsê­FŸ‹Î)¦Ä§HØJ>MŠÑæhÜõGT¿í¼öó¾6Îhîçç˜xÈëìÙÕÄÓŠÆ%¹«ätÍkF#¶˜v´kíŠ,ÇŸ@P5Zc¬œŒ6ÙÑíg‚b{s:FGðY>3ÅÎu5?¦znšâü¤ç‚æ|òB('œç‡1MŸiCöT¤.Rþ\Ÿ»qíú¼7•@Ä3ÍgW³*.ŠîÔ2A›3®È¢Âz;#!ò)õ˜q4…Ú,˜¥(Á½ékòî´ß`âÉj nœÂ£KôsÌìÏË1Tk~òë B—ú ÜXQ¦+qOàËniû´où€Ž¸ŽLÀ‚ö6UÆZ›Ãf‚uiÞ(l×>u^î˸¸´©úp"÷<^òˆÍÔƒ³‹à6rÜìFYŸ´á].#JÏØ—s(¡®NQ§Ðþî£ðXŸY|Õͽ$k2x"?9´ªš'ú(†îüÓ‘‹ì-&+Ž­ZêèW„Äš*ce¹šrÆÜª-ôõâ‘PïüàÄéŠ`‹->+X0a}‘æ$‰m¤ ¾mÆ+É%õf ÷qw¹:9MéãìÓ~GÔÁ…†§vØçŸÈ«šÛÈ cÐÝ_~…·–( ž…°œÑÕ{/?Þ‡œ²s =«­t±Àì4ʶ«ÛóÑôGt(×JÊR´4qÓ LKDÌéµß0Ç?Ë$芧oN©Æ}D.4ýª-ð#x|(­Õ I%ÿ6_ôËTEÒï*,F™»BNü›lcÀo2Zyá|ymçÔ|®JŽJíŒ((Ø•Cv·ƒÜüçðN6)1“sÿfFÌ#L ‚‹fª·|è'On ç]f²#SöN¯™&´±.ÙÊŒÃ/JôyŽœ*>ÏŨ߇æ[œTãÕµJ‰+»9údúñ}|n‹¬Ì:CÊ™›ÖÄ÷âÇ"Ë“7ß®&H•Aà¢Ñ £öO7í>µR2³D &ƒ¯% žae3m»¬šAâf’_ñ¯7ü 6#©8rÞ£eÇæî¶) Â{)±j½_ó`I†ÞHpBm½¬Úk]¸uâ—GT¥y³”®Ê|®Ó ­D´è(¢çjÞ#´!G±R¢ ß"^àœ…¤Mnb‡˜'¨˜³öÒh¿¨weŽôA7ï&NœI“(0/–ªÝKn"&í ;ŒTÄV£¢|ìÀɢ߸,5øÉÈVÊèm¸;w>¥eß*‡ǧï‘«'/Ê0ñÜ!ŬïÕ½;„3Õ~©…ðB Í㢡½8÷ÕÆâsè9iíÒåÆNͱPltÏâÅ‹BÅl'=»ýšÂ‡F Ñ/ÁœË wÉOÍéyîäPmŸ¡ƒÆ )ŠÂ|õSÆ${Iö1AŸÞœˆÙVÑL ‰|iÐ/⾌>_¨ª(ïÛEOÏAé¥hÜ¡ DQ*p+%{£mQ@òÆ|•¡a=«Ž¥,4!r£[Ž™¦I¢àáãù8ƒÈV³ƒîóÎs¨tbÁ_Æ)Á5B‘UÎhï›bÔdì]«!Ýu`ø•ð࿟ɀÙ-—Qùüª¨Ál¹ó|pÌ=<ãWšAû¹†°€Te"uˆ—à0z‡2 î’i)WDjŸ*nÜñTÌ^ïù7ƒ%g-ÍçP%"¿¸v]`å¼Hn3¯dSW×C”) I<ˆXuÖ;>%/éÝb+4|+ñáò.ÇÑôàlÉ®\¸ÿ× <“ÙqéQþAçúè=͉ï—*{)ô$2È3»œ°×@"7”VrÛ'NBc©½‘?k¹ú ¬²Ô(820òqÿ£Ð]tçÈ‘xëðB‚<¹NLŸc”˜43…hˆõ÷úäõŒßUÀ-ú”=ÊŒ«ìóeŸûÙÞ›ôÔn¬Oý]+q^wÁzS_¬wúE«^î%w”Ï Ú•+ßž)aÂ×âqÄë· Ö列·lè—i¤.þ4iÈ”JO{¬oç‚óù$1¢)¥nÌÞL±ü~ •;˜P'·_ý“M²"O-ÿo‰ÔuM&,ŸÁVNi(¨é‘ÜHáàl9Ï=¡@wXUS"bÞÁ¾(¶š“Ãah^Œ¯Âc2¡VÔy܉<ÊÓ1¥Û‰/’7ÆìºqÃ5‰ƒ·¬R@`ê”1ôµÜèÅЧèdªè÷Ãç¹8wAèõç¿¿²7(»5g.±eŒ&Ô&r±w+¸–s½0 ‘_ž„7ɽÿ´í• #ôƒ§ÄÃQA`W°]4å™d™ö¼òƒ¹!‘×#›fuîDíç6Ï^ìE‰½Ö6¸_¼ Š+øƒ…`.–ÚˆÓŤ\…&šl°°+ÊÏj3SßZQ”HbüBª‹‡p«=oÂA&Âõ]‚>|<¯ooe9ñýOìéŸ1O0|‹¹Ã¥<=9þ÷º©Æ·b¼áÍ4'¿³[ÈU'Í,lˆ[RMxÒ¼‹ìï0N§"Ÿ$œ>KXMk®þ>ç@*£=ÒLB–?Iis?¹€Þ×~­xŽ»ëâLõ‡¡™.Q Z-%í¢ë€VÕÆ"~ÝÚ)p¬ØÅ“Âì~ŠJ-3)eÒbb‘„\ªGkEË;¨€³PAíf("dX«ûS‡2¿ï<ãí+q@Wðˆ0Ôš‡÷ž0|+Zùþv‡ø§Áo:ÐPlŒ½ˆnjé€Ã&ïæî¤V^Ùœ ™µ…,NêåmÂõî2Ñéwî™6ûq3Ùߟi›ÛKÂM¤¹:ÊIÔÂáñ"„åØxÐB4lSIç4H~ú~G»øQR"î[ ÿ’›Õmƒ…Jy´È~ì²Æ¬:ÎÖ¾ËoUÎõ=›psÇ|GrÞü¤:\B‹3ËÚ´'5lÑp¹í¶›ŒÚÁ]u&u_ôÚº‹½½ü¾ó«ûèF¼Üy›"æ#g)m@"ª ˜Ùï3v¿Û›µN)³Í~ir<:,ÐúÓ-eTuÎ4km< °=ÕÚ·ÆüW³ñÖ,N²}ÒM·àˆúv¶£B/uêâ{y˜w8,€Jùþ»z·^ã—·³vÓ—Ï_C¤©ÓR%pÒ>xéJsO™QÄI¯‡Îv1G6㛼F’2hÇÙµ4„ÞßÈoNæ+(*J‘ÒÏõÉÀÙ}v]¤«ÊÕBÇôS[õHµ¿0¹EŠçÑ\Y«ñî{Žä«Éý7l£M´õLñ >#Ãl‡›¥¼_ØKbNïB\Væ,Yx°¹üÞÔ%T£Mâ):;¢52 yä]I&ã›ÀAú&÷ô¾¿Â)ä“>qYÅ–„hr@ý<ï¾ÄŒ(#%HM[›ž…1H¿SIò]öù§8!µ•¢¬½ñˆ•×d@Ïèï˜Ñ·Høtî­ÛS1“~?ŠœÜI:¿O3¿!юеªÕE{Ù‡>à µR“U+Ñ ´:Å<«;w¾¡^Bˆì/ïØ(ÉfØÇçTô‘q{iÕ®6íÙ9rõ3[~mó=ñ{z’B¦<_àR]RÛÊWwõYô…zÈí÷©£¸:ïÍŽayEŒf‡„檺ËÙçÏ´N…à믷M/@_óÝ3ÂÝ5Ø:‚é'W½Y¦ÇÏë …3²eÞZE\· ¸‡ŠdJ0JQü^ Ê]¨Ö¥ã‰U‹Vár2W꾪!¦6¤›Oan4]ØVÝ· S†dEí•û%fäÏF­ô£ñ2nÓ•Œ¬Ù¸8bFà}Ê‚"iMI¢»GfnFÚy²<3Âì爧Ÿé}—’„µèDY>ÎÕ,Þ¶£‹&Tî¾w€XàoÙŒÎn§Ýº×[½Ø¢•R¬åGޏ¥- Hx6“$³Ì»ØÖ莕ܞ"8äFwŠ@Σ¢{’ïäšõùýçÆ™½ìJFI“z'~œ”q™n«¿‰2ûè¿p tÍß:= u÷,æ„€ôL“å휹—oȻϫ­§}.0mó2‚q¶ðž·¡A"#Ãf ¾&f!ÂÙV&<^Ò1ˆ6¤ýÇšŠ¿s‹Ÿ~(íúSƹ…fM™tÃî‡v¡ùó‰!£“Ì»þ«”+Ô¼]rß{{Ÿ@+ÚJžã›ç÷®%O#·yjðê7t[¨¦ó„µË¾hóm³‹moྔ¬'I»gƒ¥hëÙ{Cðµ£>¿¥ ”›cÕZ6̉©ÍevB}Ùm*¥uÝ÷€ÁìoHßié6Cë€ ÷h÷u}t+ÓQ߇wÍ]• 3>x‚׬t¥#>ÃyUùÉÒ^ý¼%ïö\sMäP‘ZB%‹V2z@(Ø%©l_ *9Ÿ»S 6<Íó–ÓŠÌÈ(1Wc,µµ°æY½è–CUZ|R\™®íTMoX1;ÌyÊ´ˆH± ó:âP6çŒ:q Å»#œª¦!èÚÄ`Ã0]ŠÐ'b@#ý¢h}/I—k6Óê8±›>Go||-g¾îDjBý–x%‡²$j÷BKåGÏò!ƒ5šP°ÿ›zƒ7¬³$F?ËÀè·˜ÊfΉô›YU¡|ήBÝÚ '¦æ9¢ñ’yÚödŒ|çÓÀÃvÛõmŒœÜ`YôÚs°RSY˜…tüÖá 3 ·{;]Ž"-óƒ$X—:výµœ9ÕΚW‰=/‹øòÃ9Ò¾TcÚ{g¡”w‚ju õöÓQb€¤s«gª†~ÙÌxê~u¿k=[ IÔ“¥Ë¶R1M œLˆbfIi7Åê•þxþˆå`‰Æ£Æ7Ÿ!uÄ6lU¸Ò‚$Ç}!)µnd‹‹Ï—ìlà' ‘Nã3šÝhM?ÂçœÊ±qJ^ äè™Ü5ç LÐ9ÝDlgÌ:çC“\ ÜUt{4¢ -1YÜêE„ùzåÜeQS’7 6RWËDè(ÿÙPn "I–jSå§ÿQ'P)ÌïPó…'NC9ž+Ôðsç¹û€™ÆK®à¥ûQ¸¡dkû6!çÙÚ‚dð£iŠä'éAY s]dNlâ zQ‚/œ—%¦ð$r&šÒ¦J‚X¨oßjjã1âY­ÎËQ ” ]ÈŸ)­FêÝ|‰zj©®è0dt0H¶…á5Ëf‚v„aî©Hºie’r7‘º»÷>,³¦:»oKëõXö=—£Àß}¼³oÞŒIº)dTáåëÄsÅ!MPTýFškÐ)X€Äÿø°P_dØöD3PÅ9sMý€id…~”_ÅÞ†?pÔ2C%1î’ÿɹë;Aº[;b•ÓÁí‡}‹÷™ÀÂJ‹–Q|1öïÈõºŒ¶„8!AEe dY–:éC'–‡kíëìY€1Ú…¼›Ö9¨hS)òÈè$±Š²-²|7lFÇOEжVtJôRîñ¶O&8iŽ4·fÓ¬îýL$C)-γZǵÑÜaòß–¤^bgÒGÄNoò«¾Ä‌ƒ&’ò¿½üTóPgôåx®-nL¾ÍƒÉÌoŽÆ;'žâl&ù‚»”Ko3Ùa)U¼ÜôLœ^Å-+Ž€¤‘ ¤úžlˆˆïhhŠ+•O¡q+Áþ)ä_:Ní|„ÔJ-Yû-´”KƒS•§ÒÄâç3MmÈéNFk˜uÛGrL¨\£òþ'^µózú¡ÃÓ3…þªCNX@ìݾy]®¨¬=b™‹Oß¨â¹ø*÷4b§•ÜnδBYË„Á: «5L<Ø2¾%ãBãÔzuxÙß—s)#Š¥;â•·zjÙëvÛÙ¸J;²E»œbY½S–‚îâ`äÛÞÉ¡$ 09k'ÏQ ²¶öÃ`µW0ØTu/“éi`F„òÅLî]ÏÜãÉÀTË~k’ฑÉÊ<~ÑÜêÓ b£û„­€©Š·íÂSuïh8¢(˜À™ûTDzìŠ=ÚW—œÙ'ðÃa'wêÀ‡ÿ¹Æ@•Ý+&£%xƒçôÙêrkøטkð‡k+Ö››Lp9U÷ø$Áø)ÎØ²M!^5¯‰k¤ÈAŽj•ÌÚþɯَÎ;ïÍÅòuRòw,UgîÄÝb{Æ?‡Ä2µ5[ L‡HtÞ¼#$Iksô ÝãDNH9ýhYë@dé]½Xïãe¤ÑKàöòÀ£:¡^U¸ñ9j°_Šný…ðPðÆ ç¥ó|2àØ[´Æ¯ Â%âʹÐ*9ÝÔÕVmhf­ ?Êh0i»öþdñuB"Ûÿ%Ü»kŽò‡%ƒÍæNrãÄNœÃ{gØLzõOoÕÊ¿yu™žipˆÓk…à·&·TwÀxg‰ð,9=Î_ÙéW®½ÚeÀZ_ ö×N’nuÊd¶Õ粨§Ý´B>KMÇw“]Lð:R&à6j¢(}þ@¸Dêà1ÚohÇ%ð¾'¥fd?8~¡_#&¼WeNŪ&AX×¼@ ·¢€z]QÒ:vì5»ÀOH€˜'ñúŸŸ«êYéÈùðúóbÑ=(+ñÈ»\݈1*Ã{;ÔY3Ð&MÐ÷Õy Hží“ä#±AÅ߸târE4^f[eV-$¹ŸsU®¬5˜iÈ¢œ«p’;#&¼Ï #®Lªw߽ǀFil#QuO®«Z¬±Hà*ܬœ‰¦) F$AB7„º†îkƒòC±yéûC÷nùVï°öøbŒ®Ñ€¿ô‹b)ó<À„äaÍA1u謾aÆOs>†¶ŸË †ïéÞ~=)(%à\ AÑ8¹Ë®”JêÊŽ…†Ñâ¬"Œó pÙ¬([®(䱺ùÌÝC#äªÔ$mRá- )a²)J˜¡ÍWÀ³ŽPŠÂÄW-xÒì¹CbøÁxT&…=oâ‚:,Å;5½˜ˆ" b1ÌV”ܸƒ:Þøu¢&à˜cœ_Ò™ ¡=~çU'uÐþ.’¥”0¿çÃí\L7(ÊQ«™ä²êùžûÑâYxü õD$O+tƒõ„ø´ràðEƒ¥A5ñ¬´§vA2†©Eäô`FŒ »bL¶¿N bÖѸ¿ôKRûG±¿'Mîñ¾|òÔ;µÞ·X˯3Ù½*¤‡Ó5áûÌ0Ô¬Dè-“ámB”`“M|µD1êÃ:£ÙŒ9Jh¦ŽD&t2H/Q1q±‡û#©]ÃòÅn4H#¼°¥;Ù´ÊvµñLÓ~Ë(3É¢_§¡¨‰áŸŠöb=nLæþì[Œ‹¤ÜoÖ4ÞGÅ …vIå³ö­UB‰óCZ5Á%ä¶nyëgò™\¾N.OËFa·ƒS5—–3oÆ@O¤N 8×I|žJâÑœ‰LÔ•ÛqúR$}ºxÏ ÉDÇ«ƒ¦$?:÷ “ù°Û|ºf¡2É¢:>ðÅ­°JB+iö„Ï…?¡.•?Œõ[·ö”bd8ÑÒ$P‡j£åÐöù¡XK@¼b„:äÏåUÈ— “¥sñs@f×xÜ °´hÀ#ï¶=ÙÕ|‡$ýPvƒ†ÕZêB4v¾¶Ãäf$MçˆcøÍ†žæD?xš\ÆÙü— 8ö¥n¶žÑ5¢k£ÐD†øÌmqKBŠù. ž‹)®æ*~­"V‘(îѨFu^»½Çg6T›¥™5û›È~›1E”_ï":S®Ü˜‡ƒ:Âûr{ä‚q%ﺻ¤5Jù“çTóL¥ŽðÙg訳{úà© –æºØBÖ1ö0 †cµª;ƒê©óu "Œ-<çÑñf3.¾õ×~ö)¶t'r+þ¥aÀI2i2Ï¢ŽIúÏ窂 þÁ`ðS©+HÃ3ç™ÀK;±”í÷ 8á£õTºæz_³‘£{›+â8áJG¼(œ–=ÄîZ$ºÃÅF%^:½À)¯wIUG”0©P,¹˜µ5(õŽ»T²^n¡U}C¶%ŽìKÎhU—ç+jyçõ} VœÃ¡|¾o"³Ô`ásƒd|bKUNÜ“\öÔ"­ øÈ´z38Îñ.ÖñZã¡ßE—§ð^ã{ÉcÉ ÉñWh‡Té©ÑL“bäz_ÐWˆÇ.ÔÑMÖ!L@s£|.ÁçEÈ·HÙ¬MkkjF!ˆÄùÄùápY»æûap¶2 Ô½~ÜŽWÚ^¬âP5Ülj¬[u\ŒÆ¾5å(ݹ1—r0eÜT‰€¶¶Sм‡ò]¼¯6C¨Õ =EØ †]%4†åÂúD ‚ˆ¶EúFV¸ˆõeH¾^(hÊHßÈ‚§PX1Ü ÔöIÊ÷ùÙAÇeàp'5ƒ£’£AGêÊôSphÐ%y³®ø$,»WÃŒOá]M|f³|0jüP8eè;ù’*šùgʬ,ÂhIW0E‚æè±G-í¶ùûª;I< ·?×”Õœ‡Ê4šVQëƒÉiŠ|óJ—é½—TpÈM °©³.óm8;Ó} ”}¡\ÂÓ¡‰¸".ØgSx»1‰º.~^O^õº=*´Qu©ÐVY1ヴ ÚWó}žÜæ7ÇÑXñÆÎ¬ÞÆ’é,+Y¢…¨f®¼ß;&»GÉ÷ˆ¢j¦ÌGDÿ*õ4Ǽš©õXKãj˜Žf ˜ž„.¯²ƒÍ@:pþØ›: F>àd嘡7Ñ`ÙäϲIƒJpžGHç¾wP¾]tRÒütL@uktãÞUØ –7õ0Oà€üñÜ_è2Ë9¶‰F8=®UH)@ßbV³€$j#dñwmLu‰˜{ƒÝì9Ÿ’Q޳R]A·$c•Š‚êh1°ƒqI`Ò_´õ#úý—"Ц%Y†dÖŸ!øÈëÙØ:JÚ&YžÅÝÖ÷R–ä0‘h[v &µl©Ô{û¥°[AŸ¦þ×|c H9”ôœ—µO,•ôþ#×!ï1æ¼q‘M0བÈ{’{‘EskŽ®Ô~ÊÍ`$l!»0žº|W|BC²*ƹS€Â‡—õ—À ¾°ŠžŽðÊõ Ý™põz~§¦äÉ fKüY@·l{Ãêï–“Äóâ‚tÝGÕNCÁ·”ìQÚµ/•¶ s’æypÍL‚_UméE7ò¯‘úÔ$ú:/—Lg×—÷s…á%'Ðס£M2|²‡Xß%É¿}йùi­ß„)]bp8Vµ+}ä-ºìõQì—¸Ecœkí|·6£‡Df?:O™E¯Q@Cžˆ˜£µâ4–&£¾¢·WëlÖošþ™"èEãϧŷ\NJùÑ–“ÌN>ËåøÊw¿,hWÊÅvù‘h“Æé p 6^vLï>MHà@³G.Bÿ*­V›E9¦õÏ«>·uÉKZÃ`åNŽsû±ß¸òü‰k§`WáiPyM¥›Ð2å®ÞÄ‘ƒ]h­­JOŒ°«n‡-ŸnΗ#´¤*<’·2 ‰×/DÖÙ£D0ö+ªª=Ù7w¨wöUkÞ‡>e¿›> stream xÚŒwctk×nÔ8il¬¨±mÛ¶³b[m³qc6¶Õ¦1³±Ù8gí½ßo·ïwÎ3ÖYëšóš¼ç¼Ÿ'$JªôÂf&@ {Wzf&€¨¼ªœš3€‰‰•‰‰ž‚BÍÊÕø[O¡tv±r°çùƒ#ê 4vÉÄŒ]ATy{€Œ›-€™ÀÌÁÃÌÉÃÄ`abâþ¢ƒ3@ÌØÝÊ Ïq°ºÀSˆ:8z9[YXº‚"ýÏO•)5€™››“îos€°ÐÙÊÔØ oìj ´E45¶¨:˜Z]½þËŸ¥««##£‡‡ƒ± ƒƒ³…5ÀÃÊÕ t:»Í• P0¶þ[<@ÍÒÊ啪ƒ¹«‡±3ØZ™í]@Fnöf@g(>@UZ è´ÿ‡,÷ðŸö˜˜ÿu÷ë¿YÙÿmlljê`çhlïeeo0·²%ä\=]éÆöfm]@öÆîÆV¶Æ& ÂßÉ$„•Æ ÿS¡‹©³•£« ƒ‹•í_U2þåÔhq{3Q;; ½« ü_ù‰Y9MA÷bü÷ˆmì<ì}~cs+{3ó¿J1ssdT··rrJ‹ý‡Áÿ–Y]ìLLL\ ƒ:€ž¦–ŒQórþ­dþK ªã££ƒ#ÀT ð£•9ôïãbì¸:»?úü©øoÏÌ 0³2u˜-¬ìá{‰æÿ`Ð8[yt™@CÈ `úëóï/}М™9ØÛzý¦ÿ}ÐŒbb:rªR´ÿý¯ZDÄÁàCÏ gaep0s8¸9ÿÛ‘’±ÕùÃTÚÞÜÀýO¾ FýOÎîÿªÿì 5à¿})8€ ú=ïzLìL¦ ?ÌÿßSÿ·ÉÿkØÿòòÿ1ïÿ;' 7[Û¿TÿCù¿ÆvV¶^ÿá€FØÍ´ò ¥°ÿßTMà?[,4³r³ûßZiWcÐZÛ[€F›ž›ã±•‹„•'ÐLÉÊÕÔòï1ùG¬þ×ÚÙZÙ•\¬þºjôÌLLÿKÚ5SÐuâšÎ¿U@Ð*ýwTq{S³¿vŽ…`ììlìÏ*vv€3h9Í€žÏ3€‘ÁÞÁdUø`îà ÿ×Ñr°…ÿýƒ8Œ"¿'€Qô7â0Šÿ‹8™Œ¿3€Qò7b0JýF¬FéßAî7Eÿ@ÿE\ J¿ȧÊoò©ú±Õ~#PßAó_Ä BÆ¿ÈÎØÅÔÊÊÔÊÙÔÍî_93 Ç®V¶fÀål,‰AãaåbóÛ €ÑäSPf&ÎÆ¦@[ ¹ëböÿˆÿÙ‹™ÿÛ]ÿ‹ÏÍú¯ü€Zdú/bÅ6u°Íο)²ý%±³û]ä_CÅhö/d•fæ`kkìü”Åï*9þBNn •ü×” h„lÿh¨æ¿1Ì­Ü;aÿKíàögÅâwÞâ¯G'ðO (yËߥ€Zféåh ´ÿƒ’YýAÇióµãwÖ ºmÿZßzPóþ(tY2þátA3:üŽâ‚ä¨A;þVƒlAORûÿ:66æÿHÿûÐ@7£#èä~¨޶n$z·`túÝrP+œÜ\f&¶p@Ò?úÅ êÆoì ¥ èññoPs\l],ÿ0%ò;-ЭÌèjé üãÔ@U¹z8üaòáö5Øýê‘Ç3²öü‚Ü{ýAýóþÈ“7ÐùŸPÿu¡™º9ƒèú÷³tÛýþûôšÂ/-8˜ò†XׇtÞ× ã{ÐïN°p¨ß½¹³ÁÇÚ‚ï0@ô+àØ”ã³Ür¥æˆ)Y ÔèBÊC‚‡%à‹ÇrzØp‹t1À ¡‡¢AHEâ04ð)ð ^ÀRM]2 à%Æà¤çŠz K“TÞiSˆŽ£©†9`úÞëì8)BãUUÃ),Psc=)JÙú)ó@Ï}íc² OGéiž~ ”ÑAh>ù…^Ý…f4¿0(‚Äî?& ïZa‚¯]ÎÉÓ=ÞÃòhÙ%+Ô ÞKW•O¹MWüõ×’d’9¿3§2VGÀ­?¥DLbátœ¥ýV:VQßÑC`rŽ&„g1ÃÎÜ#ð¸ØRê,Î;—³üøkǬÕyÚLÕÌw#²]¨<…h>¬°iòpÑEͨI‹C©Pá¶–Ü»7ÛÄ] ŽDÃF\8íçù”×MdøÑ5Ê}ÔS Â;gHE±¾Y#YcÝ"‚S_Ú)ª¬±Ù­ ?q 5]®Næ6cϔʥ¢yÓÁw}‹¾ª½¯°†IùifÚÄr-ï“éF"÷IVý ájÜ×rþ$aý©Eð}ܹB¢ÇËYj`u 2 ¦ÕADÓö€óñé9âЬøÇ6>°· áïT^P5¦éUð´‚{3Pf+”Lu1ôðÌÖ^"Q´‚Ó¹Œ&&™´ðË—™æQïb3—<œ6ŽȰ|)OWÀ‹%j!Ï &±ª`‘›pÞÁìÍ #y©ù’ÔUyê¥7wÓÓ“4Q¬Dø6î¢p£ô!#UâÇ›Œô@Åp` ßˆÈˆzÀ™jÎTˆz%ÚO-àš*°o¨-¡ïìIÔ/ÏŠx|äŽÖû¿=…¡h×0ÒÒ½:õNãæ“òC´þ‘*Ši¯ú-£þìÜ(.Ž*ƒÙœ­ËˆyFww2Óë9' QåuÄmI=Úº+ûy'©ž#o’z¾ó@€é]ýµÿnz t©$;\MËÉ3£äP*Ž¥Ú£²¾¨< r¾ô§ôb(ÅìOœŽV .c°TíÈÐ6­ÂxDÔò Èú÷} *Ú³¬7VÐ 9¼J˜ j¢A{?×™WJÞ‰Št‡DÌÄ4(t§0XÅ—"dªžï5[Ÿ––¿]+tµu|l~­èc‡-‰ˆq!Ëpæg,×3ï²ûnì¬;>k¶öÃþùý÷ôëú†F5¦Øn:šÓPb|%cÇóþôåBX -:hóÃä€ã;å«é;ð<‡– †Ë}›-¼\ïø>–Ì#f¿S‘q훟õQ ÊïSIP«žã®̤™ßÇÄXxè@.) +·é#g h°šwfV$“ÝKpÆ–nK“ ª‹zñ‡¿ïk†ºÒIAæ6•”cÖ¼!5(,Å…†¹c&;Ò{/ˆ‚$¢êv\ï>¹ZÖÂå~ݸnÜÊP\íÈ,õÄÍüDN_´ÌF ;6­ýë˜Á[˜o¢Â?aøqÑÝTë þA MC=n’È]M·wï¼"vSZ©ðrƒª(VÉ‚Xpù¥l{ÍRF‚í¤¾QÊé#âqºò-jŽ‚H Oö'O¢i¢×§¦]o6è—_Üò"…Nh|_¡7ÇǼEÓ^¶hõïØØs<¹t)Okû+×ïüŸ ¾0¹ ^÷ŸùÚ:vD$áx)­¤ùõey£¦v¹‹!¿Ž™ZKÓ0ŽÕ?¬fÂJ<ëêQê84'P1£Q˜”¼ŒŠ¥}9%uRF»Íò5,¹[Í ü&MÂä`ijsù¡ FUÙK´Jj×#uƒ”» BM÷ЬÅ,QÍ4Æ<(. œ(Ï›¡2·PZHÊ`º¾Û°£Ìµ í‹d‹ qçóv°Ü«èû*îä£c6†ÓÒê³ÓÏÂ}äÜÓy*‰îQ‰kâ]}f°£JhÁXyE-È–³|„ßüŒ·™œÆ­ Cq›ž!†|±…Y¢(ðôì3•Ã$(÷5ÙØ;”L)1qnÀòˆñ>ÉEŽïa2¬Ôúùð€U/i—^E`†Á÷\® âsœ‘3.¾Ö<Ÿ*ˆFRÍÚ}ž}øÖŸõ…Éû*ðüó´]ZÔtŸ®ˆÕ—gxµÏ õ­<˜†Å‚±ÙRÝćâòŸ8cZ¯s)Ïç‡El÷Òûæi[غ¡Æ? _¼u¹·³ôÎóÁ7¬™Œ=k_,Ø(F´N¶ É}UÀþ¨/žî›rôù»oF–øs›šÒ˜ËMæÔ‰áÞ,J¡h§#fÉçIãWœarÊwÏ•V¤Z:Œw\†ê(-?í…¾0ùGÌ?»Ù‹#’„]Õ{M;nzöI³“Ò—˜è/{õñÒ|vÔ_5‰[”…\Fõ–W4ѳCgC6Šø¼*ÇÈäj,Ú¦:÷Ž|¦6Û2<«†>òÌ)/NM[`Òèׯ‘k¨.˜O.úùë^þã–Ù-ÕiÝ`&ì eMáŽl=zäUŸyq €ÚQkèunz9â‚F1¹Ãj¤âU K¬8ÉC3ê_Úhχ@ñë±É¾ê(ø^Ì™ÒÂ[îÀªH¦ÏóËMƒÎ—Êú{ZMÞÓÞŸ À§p2ˆ‡hrÇ»?åÄ] ¦lH‰ñ×°ô˜p«Ó-Š’lõ*VB«\p¯$¡·tÎS–ø_‘¸´Kæûê2m<Ó¦1†¹ð‰\:ßj~_€¢…Z0FT˜l¾Ùñ)êl1W0F“#›uÖ ,¶àT~H\e?‹ƒL§£JŠ{TÒ=)ÀÀÚH q¿½õþ\È·íÕhão³^‹ˆÀl¦Ù£îÍä¹Zx Âǽø“—nÐ;DûÖ³3‚‘ $©ò[•Œ»fzK¤×âðfÄwNÁ†ÌªmÞùUF×¶?¤ºµú‘Ü•Ÿúª®tfÝ‹ «î;¢ Ù¤£î2ßn6,7?æjîÈä~æUd}hÖ£‚i 0K ÿ8[¥'ò3dî"~ßÅÈžëç$…™çU ‹/$‘äIõv;–Ô²€gù¾:B/C“¯;¹®‘÷ ± -&ÂÆ»lô©ùžTä„ó1êØ¿)úœ[x;»àöŸGÈ´IR†lã•]#õt–‹8øcžâÆXoѺ–†zN”&•Ÿ{ÒÚ$RnÖð~~dK@•‘$AZv.ÿY©”iR®ÂrÄ{œSÙךC ÇFœ»T5¿¦‹Êƈcý«RÉþ=mÑöãÌ¢²–©¼+Bz>¤`¢> '+'¼&k"D“Åî·ýÒ¤û«H³Y~qÃÊL¶È”Ù Ž@!#˜3¾¶%XêíµüÔnyþ$‚X3®æ½‹ÉöuIâ íÙCjuú È_SÝŒi-:=¨ 4EŠ'2¶jè·üïz_Ñ#ô?0š~}5¹+u%l‹B@¬6•]§Mà©À’8:Y%HÿÉm(¤çm’E ÅÑ´Q6ò)U£Ï0× Ü™H–5U¥xûæ&-Ý:CÚ*n¶F`Kkj4S§ÿ-îþ;Ä„C~’ÕÚÌôÂsR#b•RDáÉÇxÑ©;t!¼e]G7V½QÏb]¤ÜIáä ¨µ=؃M—|Œ×iöÌ:9/7YháHpšoÌ%ý(?ÅÂýÀÉ<÷1жB ¦‚LÊ`G×Ä39}]ïc…q‡’§¯’ Sz6í ¿¹SÌõ/µÕ¯;S*ž½b)w¾*L~z:<ðÙœíiÆÏ€™¡&@+R6§“F„bcõuüDǶ#¨VõÖ0ö•íø ÿkÌ"¤Ïš:ám³l?@}Ô² ÕÏó%yüõ\ Yùž—ì»;$•ÌÀOÙS^8AAqœMJÑhm™øY¸ríÞ3ˆßy^]W\Ÿ 3û<»¤wR¸’GJT±¯ƒ=2¡8;Ý~~9ü˜ÿAzgõ§ôF¾Ï Å,íŠéüa$WÒ«„„+{ldâËWˆ(‡OïôD¬Æ+˜}¨$¾• Þ3o³3¹J%w„] Å£bKoŠ.ìð†ßóœè?/¾öô\%ËYÞkiµ¼Ëõöùüùt\TZ­ •ý}bü4FÃâíR®½IŠ_g¸Á á–u´8\3W}þDçöÉZí˜,WÁõ£n Aë¥ãúÔ཰%¶6p±%¹˜#(¿ÿ¸UCný\@»µõËrò’‘üéó› Þ;Á(ކåÅdéɃûkª_ÉgSI)öˆÓ”.Sªð3Æ_t®Àƒ…¼‹l‘ͺÛÌÇ Ó/ËYF5º6?ž)z-ƪòø;ïš–o– J½]c„Ó£ÏAáGij>¡ñX錄@i['žî}ˆåk¸J,š/Ô¤1F¢˜ûû²Ew×gÆÂ*È:,:ÔÛ‰“¹ð‘XcEj¾.ôWóÚO@Ä1^¬\‡ó%ÚøÚuKQÒõ‡‡ö{7«åɃÚ NÖì®ÊyŽ(í³fðÝ$VV Á»Á®0¢Ê$‚MKÝâqL¸޵Öõ” ¹…KmÓ‡†›Jz=³­ËÙíRŒMj6xh·Äå`úg\]Ã×fNLÏ…Üëú}ÝöÄë§Üm 4óüÂêWiOÞYú¤ …8ÍcÀ¢Î‹`>ùÉkD¼€) ²ûÌ7>µ×|ì¹FÛ× ÑòÑÐ^&šn™{õØ)À^ºWc°˜‘*žuz­AEÓÈ^swÙíå½h”Û-éññò<Õf…x™9â ÞZËTmàaqÜW·Í]?•¸´V!ð6å“ËSÎv×+± .ØTI=«¼‹~àƒí¡ìäûèÑh]r;]‡+Ñaz‘9 ÿ Ôû´è5ŽiWûF³@ª_pܧÁ(òŽØ.€ÏnìM#+ÖÀE.‹Ë‰ÖˆëüÖÐP`î4¯¸†)ž ÷΋CÃ¥;éds雞ÓÅÜD’³(½Î÷\®äËdZ|ù;wÙØ{;Áka[·ÌФJ¢/M±ÎNTòÊÝ`£‡€Ÿü¹¢˜-K¸çYïÊôœÆÍÜþÚÁ†µLšóMìæëŒÔ<\µb‘oH÷Q]·'¿\É0¿23ÌV}˜Ð»ÁÏÄfÞÐzÂK; 0ZÒ]ì\Ì)¾Œ2?g©ÓÈ+(”tÝ ø¾àí«¬:þXn„6®h˜·»ådÂSÀ%…€†ß.î4—µË’ÌŠì–ÔŒ{†=a‡,¸só~ñ´AÉô‰=LÚ´œ¢þò¹]‚¾Î„WЦW§±dŸ£åÓdô×*CÙ6Û‹ß+WÆü,aß`?íºLK“Cøj(Ï›~ŽÍ½™V}ׄ¥°4íX!¯¼Ô….7½€í¥ ¡û¬TS^]± ð#.ؔ҈æ¼.Œo®1ÚKs2‹$eÔeK1wN¢fXß’¶²™‚{sÖ:÷›I$Â’5l„«_ a(áÂzt`žKÉø‡7{lÖçmºš¶nöæS…¶¨™E’ÖŠãä#<ûºé™ ñÝ…{pÌÃzá®c|‰@±øËÖ´äõU—$ØUØZ)ã®+íÙ-`ˆòH£kDhØ3|.1ÖõÛü­[·IÞê7ü'6RÙ€ îJꪬªþÃåïQ@ÝŽ ˜©ëT޽àby-®,8bK"Ø·º¨q.((Áizœ•™ƒÞ»“’Ò_& h&“Ø–àF5Ö÷"۪߫¥Š’xÌÅ;`áHÕïÖöy¯qå2§E¦A¤…ËU¿@é‘Äs:»—i½Ü¹ÆM»p9HnÇÎ¥3±ÂM\ìy%ÉUNüÈâøôèQΡO/õ·®k]ü©«­ñC?Ï`|t³6‹Tâæ7VÇ–éÑ}v2óͺ#n\‘C×Í„°rZ~m*XœO÷#.­ƒ»€Ù<¬šÿâ ™Iàá4œñS"ÚϰÈÕ{ïõ×§EŒ l-±ÕÏÕ%(ªÅaê=ŒRµáIBÞDH „ʸZhV­½$-ÆÀî¾ÈÔ½åêpn.‰üC«ñkœˆÌAì_#݇·åŒœÔ¿ç‚Þ.+ƒ•÷Æùs<.”Á6jè÷{Ðq"aº]8›ü<¹¨_>œ±s ‡c›a ¶‘V’z`n ÓAvÕJ¹YÖøIÀDd3 I#a‘~/ª,/‚àÐýb¾+ø®$õþA‚WN_Ò¿šYIŸøñjá;’µÅ• \+ ‰r‰ÎÌXŽ£•@>åðcûRõqÚŽZ„®¤ùÒOTÔ!6Ê‚a Eš¶NÇ8+{ëJ\òtFøM·W®£ˆëb+jœËÁ»¼ÍN÷þ‚c„(xhW×íÂë8Ží¼J•3á›®)Ói¹½²ÌË⨥޼×8ìÖ6U ÿŒ%%…¯r=wWÇ[±ŸýË·T(ÀH_®Ê[%Ö1gDõçh§ÏüÁŒ!}ǹӖÖß%g6£Äð¼#ºE8»‰ó%„««¡ ÇÜn ~“ì.óÚ{lj1½¬y¤JÈAPÑ›)ß±ÐåÄÏíš1ñàØˆ AUØîâî"©%Ý ähâ7§[¡z›¯zO¾<'o¿>Òc™“ŹÐ[=\Åø+ùë'X3œè!©ö Æì_†gIÐðïvŽÌR¸çÉÊq'ÕÂWä¤P¢™ë>íøÔ9éwJ"^ÑÆ1lñŒW¼ÀÃ\™Ã~Æ`g‡ƒöþZÜ ÷ü^`~ éZõ'pý”Û*È¥ÆYK½ ŽrEN0;ÇÂMárnš2'“õÐǨ<%üŒçø¯­[4·°/~m£·{MëW,îÐ Vj‹¼¹QO›©,§Ìƒbå:È ×ñÿ2÷ŽìÞÒÆäçÃÂ9ûV„ÈÝjlÕÛ” ­H:ŽSéàT2®$É ¬P¾a‡„7ƒ¡/É›p—>5}8i1ÌfJ´giw+>Ò.Mùõ⡃[¿Ø(ä±,ð‚HžÃ—,_³{¹ÃëgùÄÓ ©¢>”2l#SÏ ßºÁôCûP`µ§×RP\Iiç`CðCc5Ç" 5¨Ñf¿ZVbÛ«™­SŸÜfîâL²ž&wWÙ-M]ˤô“ö1>&UYí'KlèïÔQè`žM‹!Tel2ÏJêE`-™exb´÷Ÿ]½±Y´G(RÀG5 «ÇeÉüƒ²ª÷Qrëb¶¹ï2ݹ(7úG™ ©õ%=Æc2†Švjà_+PCÇ'ßð%˜r¢%”3_ñ4¢²—Z,À ¾žç€o . ˜‹Ã4|{˳7Ç6Šqæ{ÔAѽ%)é}ïŒåÆýçpBFNÈl(^­‰Â€\+%~ÊŽm eJw¡˜Æ†8ôíL7 æË<öÆ> Ö—‹ŒÛøçÁž$»qmɵnÒ9Ï„¢X¸ ›„C^É6[õõô†sLåB¾Boþ°ã¯»õâ{Ä[ȉuG¤Û¬ ‰.|$å ·“|zŽÃ£»Èž»%ÁjiÁüXίeV?Æ´aoBqVîÖ¸¾Éá;‹[~ÛÕœ^ŠÞ<«´¨ýª*`þ2?öýúžØñ¢÷óâ?‰hͧûŸL‹ì9«îÚ¸Âhº1öj£òFÁ|ƒé¼»l-e£çÃwÕŒP›×S¨s#‚tL»º 4ßÙ×ýûdIPF½hÙŸãËßEú$LËmÄU|rÁ©e„¿|…—:ô/2;Î};NõôÕÈF—\‰õûi¦ÊÈ1*žbk…?„9 6Ùû.,ñ.ÚR™žÙ3AâêöõŽÚBOÈ D b ÙgÓ¼aדbÆM«Jþ:[¡”ùÏFúí0û“%¯'•>xj›«×ŸÞ§M« ¶šëµ³§¦W©_ù¥2¾ÿGWg%,Ë9Œû‹,³pW…šTGH)yþÂì<ç[Ψ¢X\ŸÅqœ0ó“œröiWÐÒTø¸#îA ßAAa\®Âh⩾„ié.x½o VŸïÍA!˜ïu\bH¤Ì—òjóÅ ÉYm/þʪ8µÁCœÙÜHßùL$Úá§áºØ$8³8u¯w½Žã…$„í±ÇFù²ƒË ®5ÂéÚ¹ãÀ'îÖ m›õ ŸÊox'ôÓcÃÏvvcÕž~5$¿Ú­!¿Ëª¯&:ø`®Ë_25{¾oÏÝÝFÔõXvI1JžHIèº|5Ê;ıü+²·<Ó8Ií!§}$‘ω˜Yþ$GÙ·.!)nuÃªÊÆ¥f¡J È²B2f@‰å:Õ Ît›lýËÿk1‡ðxBÕšØN•U&wpéa¼øÎ x0P+3-ý1ÇÕ{>*ÞPrz.Ìõ¼^x˜m]ïž_Cê[«[%iT¥lX!=cK°5IŒ ¦‘W;¹a |ôF7`ë%¥õ›dI;.=M0–Xê Ã¥%$Â,ŸpŠ))Þ²”Œ:Ž>á ˆ\à†£ò‘^Wè4èʉ­nè.°Ú `ZïêÛ "!·‚„Õº\A|Ì„°¶˜Š%ß3],ºR—köYGLdÚz‹Ÿ¶Ú:?+™¡˜êRß™×8ìÖ‰Ý$‡w_õ §R?_¸.³ÃC§åomÂe‰Î^OãÒgóÍ”£©ÌÚsþ|JÛð«|RG¤2U'wË›µ­³_€RKÌë–ë!IVu®‰VòƒT3Câ0zÍ·Ö³hjìxíÓý~á¸cÓ–õè3j-5ŒØÃËÎmá~~*Íò”¡Ù˜øÁ¤c“ç´† ðNp‹Ðp0¶àú•8¯&ܳêÖºâP÷ܯ?7›—iOíî¯Í1Kĵµg‹'îXˆ‰Glƒªðà“Ý&¢¿öE 5sß ü„} Ögeá¡4é´×åOw'|W\šÛ!´²ˆûŒÝ»ó]`gçEñ;{â8äþ‡/G„&Ü¥>Ï”<‘H÷i‰C.ã`°ZXU3¡¬F=Ky”†ñìlæ6¯‡D¥Õ†+pýøSªzìá‰éØ—¹Ö±ÙȈ¢Á*ɹ~Bñ«§C=¶®L´ùI¹ÇlCK—&¥f‹Æ¥Òn<¡* = ù(QÐí¬±Á6•¡ò§æw £6+DüåGa.‹ê÷ì rÞ .¬(¸¶L!4ÜókXGåÒþº°ú²XhײIÎ#7Øù“¸–.§å7B½ ùC–/¸á‹vYë™Iá“©` q‰Ms»‹Ë&5ׂH¡áÐÔvV¤À¶à½y‰Ï?ó ž%ŒíBç¯ø¨‚•úVß3*)<Ðʧ­Eà¯LϾÛË{)þµ™eà/?m¸Cnlû•;B 8n&Ôz2òYh®m}1ÜKÛ㪠–¬¾ÞZ‚šµÊOÓnÂ+Gb”0ñœû^7ÌU— õ§-¡D]•«­gbÖàÍåt¹üÇ3ü0N  d³x…‹žê¡"$??òP²'WP£æµÀ‹ÚI8vÿä¡á/ÌòxíD‡A>—æ~}u\mÐÿQÖ½ôW9–;Iø8ÍÅèñæt«¼øaüvúkǤ/1J¼iŸXk s r¾{'µ 7© Ä0~pú¢v ¯ÔW!át+÷~ÁòIKC½Ã"óY&¸q#`áˆ×@˜0¡žm'x‘R³æƒ `‘…åç8ñö„³Aß©Yr}9Æ?™?ý.«¿ZƉÍÊKú1ãåcItõœ¯ŒåŠì‘A/Üø×h6W Yᥤæ.‚fî¤(¾+§dp›¢†˜†áOÞo.SŸjÕ¨ñ>Q1×?@›u 3 `ý”û&iˆÇÅض*Œl::’ù~§ÃìÉ/Céðwж·”9n +&ãxŸ@ªî„A²_ìá.Äý7y^;4*Td÷ô~Â7ˆÍ‹ž:LÃ;M3+Àn6³­,‰9Iü,åçà+×FQ²¼ToúYÑiŸ” ´Dm÷AKB›ìÀs­,†ûDÔ¡.—8X2öŠ[h¬Vç6ͪ¬FÄóÌf0Ò>š^‹*†ójqLd›ré¾pí»f\‰öUü7‘¦ùFŸÖ°ÙãYÞûed€è¯m‹*Õ/ÞôÀ¯ÑN豿ŽJ;Ä¿|•éFMc¡CŠŽü0 PÚŒÍ#qqÃÆ¥µ[ËZ;}P‡NCúÅVûâè¥bµ“¦7ø¾Œ>QumènÜ-FKFÃJ†\ÈôÏ¢kÃ<¾’Ŭ-¤i@CVsü°#'#!uÜOÜ?QpçàjtqwÔDÒéL+; ®ìY®ì:cжEçT„üÖís·µyÿ+ƒÕVÙ „×@ÄAvä¸{&ʶO~°áÊR*X“Õ=EÉÎSÄÀÖ˜é£M6&ة赥¹7–étt‹Ú£|SŸdÅO5ó,ñHÑžùØg×a~Ü™)¯¤ßî&k÷ÌYßW'ÄŒì—ýp‹y„ü`çÌ€E«»•ð}Ž®c%Öì¤e1½¶"…v“^Þ£˜<3Øã£A§ÔX9êÍñRQ"†§ØƒãHwv¸R“šú³?‡­gp‹XwZÒw{"qáFpûó ï™YÁb}sLU¬þŠÃÔ†ùøž´Ð^ìæ’ï½RÈ^ƒÓ/H[n]Ñô¹·öE¯É×Rþ<˜Ž,\pvï ]ƒ3÷|7sžg° uª¬0ŽI9=¼:>GÕ0Šr¢ºðkRý Ú²¨ÍD«²ð{^;ìve~¤™St‘Lb`²}<%ÙôC³ê,ŠîÀq—!kVÍ0€Ó·Ç©+ ïÿ„mØÞCFG]{½ôÑÅl…pú4›á]õ¥ÿG’ÞÎLꜤb¢Å½€ÓèeAÝãž&¦Ìpgˆ‚¹|!’´|a€ñLê~Æñ"ñX!U¡DÁñùE¤\%¡ñªZ¥J¸Ý®O•)ûÆy¨.ÓÆs.f= ½ÞÈöÑ…i‚¯†Z%F’hµÞMA³¹|Ì]Züó©W{A÷‚2ò˜7 ébáÂÀÕÓG“n6ì ädr4ÑJÕD÷# hêù¦Š'˜-*Œ¯÷Çcyá%l`ý&kµçµï*54œíS#}[[˜Ø™y h¸/u e͘<͹Œ¹oz¡e¾wºkÇÔe¦ð“¥sBs&‚ž” E¸gÎ3Æ–ñºÌk @_”áâfG|"ç¥@/¶qI¢ž¶{X¼ñ?³Ç­JÂ*àÈ{˜üjÆìv¿˜‹¹{XEôËl2ÕΚn½=•Œ¨6J]ŽHùÃ}ÜIã»Kø¸ß; (-O ÂÀ«]£;Ã=2ImŒÇ¥M…T©±-Ñ qäôÇuoZßçúÆ„¸oFfsì‹’ðOà^Â#‚Ã?zÃ¥óßèÒÆ™¿ž¹><ý$káY=Ž5©)0…A«É²ºÕÑ}¬uB÷ïÉnS~¯6Õ¨*©.sÖûdÆÍ3)ž!¢² Ö.i äs³±Bmp5tâðL=çÀæ9GGÝLiS.é’ÞúŽ·>S‡m•~QáÇ~¢†ÖñÔœ£-«úHEh`¶(¾Ã_L@™U]¬3@rÜ>ÚÛï¡+j<#I¾}Ââßúè«ÔÀç¿”‹Ý¸.}Æ[X Ò¼G²‡ò‡”÷D,É5ÓÌ–!TE¯þ…Ò+o¹Yzæû8îÔõ-¥ÞmtxŠíqp;Ùäh•w(ÙiúQà­Ö b]T5º§‘‹éGàÂ&U°©,Ð$èq5Ê`á™ùJ\Û£vÂEQõë]ÖšO2$”À=Ñ!ÏÓx’öV †¢{b‰˜w´–;‰õÝ—ó}ÂÁ8RUؾÙkZZ`]IJH»‚ýFqüц"¶@¹´2ÑÅ/Wq'-î€S¾õlÎC5ƒXcãÞP¥Vø&°šL((¿X)”ü²µ{µîê‚ì`¼›“ï0春Š+;¥î.gèÚYÁS§,9‡;XM 9ÁÁ6NÉC°.D¬Ÿ;zñ¬àz=¦Œ¼äùg=C£„Qriñ÷Üݽ³`­äU?I.™–åÞ¿í·ážsÑl3mŒ1¿qM-uÏäfÉ!‡Æx_-Õíd¿&†—”¥gïûúsÉøÃ4úàÒô‚oéy> ÚJ‡O«¾¾Dñ åܪÚ‰#Í„Íû`ålCÃab§Í¼Ü4—c‹žË8×| ˆ•j¹rFŸN¼Á;¬ªËïè!1ÍÎ7*¯Þi ßwoW XÄ4ŠeïUݼ x™±H:„–äv+{“££ö=T±ÇhÇ‚.}Љ±!ó²PÈáÔ–ZÝõʰ†`ëÆÒèz.V(ÂʺÆì¼ Wh¹Þ‚ ̱/–m’rû{‘éÜ8¿øŽð=xîÉÒ)Gšž¸}{¨tÛ·Ï4NôŠ ˜ê¤î¨YšÆtž$ƒžiˆùLýe¹;(ÿ]9è’É<(OäR9©yšŠC$*âÝŠÆ’Í_û~Ù¸Fùqz3{­™ôâüÍî(FŠé­=–FCí]ÍR…–}' 4¡ô>fñ™HÍþáÄÝÛã,¹ve˜(䙟×LKèð›Ö„º¹ëŽ1¶.jföRì,0HjTŸ~¬äÿ>U—iÛÏPjjZˆö=øa½¥šï›‰¸„™õ¿ÀÅѤ6’÷eGݳnñ‰X(邽³\jÁºFbôün…ƶ­ÍÔ_¾ßÔL‡bÜK6 ®c«“Ƽ³§zy¸@Ô'­×üÌî°IŠV“Ö¬¸2B(¨“IcñÖÀ•jÈX‚a|fßékxËø©p¶¥ž Xu@FbZ}ĬîÅ{àYw[´úÅ˯~ìýtvÞJ/2µ‰ŠÕ~j>vã—,)zù6g+H\žWeWý@|Xj"ÁÜëΉ2‚æ²o ¸žŠ˜c²Àá7öÂ!™$nUš2¶õ~¾_Za­Dg*ÔuáS«6ˆu`âåÛðï5?ÖDS1¹¨ï:ä”–I(Ìò Ìœ›áÇÎáÂJüÞ…R[ÒRÊë¹Px¥kÖñ瑳ÑsŠá+ÁøÖ½¯§ÄãŽ%¡kF-¸9APxy­n–}ê‰;}ž‘ãØº6I}a/¾ØºãªfÆÓôôÕ‚®²ª¯ålXº‹¥Ùìï j„AoDðêÏÀ¿OÂ[+ŸÓc¼bê?JMÀ‰ëºŒ`¢4‹kß”QVÙšs.}íþô¢R¼èÔyÙœº>Íwµõx,<,H›[ÎP³ÌÈïÕÍÁ.iaˆ[NžE- FŽÅÕ•tÈ¥}À®uI“¿ñb4³ý :Èa¬}P¸€šw <’ww ¼Ü$@`˜UN6',Œ0›à€žŸ k,ކÇìŸZìŸ\A¦ylÑ­’Íšø6h¶Ür—ŒQu8¤ !õUòý€“îü8–f¤“bßÞ77êHóâÅ%§¾"´¶° I‹ÊÙ8‚°-è`¡€FÁõ¼=¹ÝÂò" ˆ g׬Ùüçãc ±V ±^/©ÞÌ¡ÜLÑ6#¢JÈ\áGÛGà{Æä°™ç[eÉÂà—„wÁ¯Zt¡áÖìºæbK]¢Ïq¥úˆ­Zév-Rö#)®ä¢aûqV, ÍÁÎöGl…:'ÏÒäÄcm|šÍp­õôÕ–¥ð%ÉMCã¬n!EØOä¹SOXÓŠ¾ºVÓãÁt6.ÉÆ¸y¹è9ˆØur´Ù“Ô{GY–Fز©*IXÑ(ý*²¬Õa8ËC¸%Ǥû`]ƒäÝÙ‹TDý™jƒ’0å+¸m*vá4™à­LÝ}½!é6ÞVÔ‡æåÙ‰£õcƒ!¯ŠŒ[ÄÛí3§¿Ãm ãÝbýt­8VÍã4´Ýö·'/åÁo5t]°äg‚yMŒ D‘Œ¢RÜSî“ÁŽÑMû9{¡³þ,€4ƒ«j¯ ©YÛ–ýâ 51íɘå^ë²m¬öp dØÓnN1.â¥Ú ‘Ê Ôk¢aøiÖŒ|±8Ø/Lå)Ó„ž׌«´J• >xWÚö‘ð,œsõž§­O¸ŽQñjŠŸ9FÀr¨‰Ÿk°™›ì’_,ÚE]^³GýÓÊ»8wM|p;g•#d8ú@ï΋Sžž|ް’‘)+CépD–Öç„Î,ãsW/Dò[°ù·"u” +ÍÌÓØ"ÂðN·úéÝ—Øh6c1† ƒ>ŽaaÔrûx¢h“™Cq¾ø°Àl ˆ„‰;@—âÇ!Åð 5ð&˜´¾ÿ$ò ûÙpÓ°º©–¾F'Чʘå-÷D±$´¯$ÉÇà•¨ÜBp‡T–ûGZ=¸m3lª%~ý±T²ÓaŸL¾¢Ø~VªÏ/S6è:ˆ5ŸzfŒÜ½™,nh¡m‚H AÓØkKÉèÀÃì5Ìõh²9·ìYÇô¥jY:;®™‰ë˜y²iP%òÏuàzïxRcb¦€§6³’öˆ.ÃüFÇÔ…=òyæ_uµÌ†Ú9·Ï¥dÓ¡^OG‘Ÿ„ašçw¬So/ưýf·:&ó‹­®™|®HÌßMÊWú?ŸSp–¼gþý +˜´Œ)«sÈØÏ2n'¾R3†ûuI(£™˜õ‹XäFÒ)18þ•æÝlRè¾®£qjVß¼¶RÚ&qµ˜…üø~$<¨Êé; Š^ÿ:ääh@O~«£‚ÓŒ«òh'‡ÆEŸ€Gk¶ ÀYŽißÚ·E¢Ù&çjQ-átFÞWPÌkd‡”x¢©´ö ™+HãªFfH.fÉáLá^õgë>J%+ú€»·QKcMâŸÍÜ.|­{׊ƒ7ÿ 橞À0u{%ZÖwô¼ØâÎÖ)܇ڪÛÁ KôuêljÔË2‰Í÷öijOÊ>t1ï²–ÂÅlº¼R$õdiŠ4%‚]Ç÷I Þ&‰}9—МrµýLØ‘ÉØž&;×B‡øÞÙ•Ö˜n¬yc”q(qý¶)—CÜ› «›Ô=SÏî9¦'îæÉñŠd)Xò1`¾O1íV 9Ôˆˆê]otCqƒiÈ-†å¬4­êÂÐ/ÓØBL·dV0*þá\ï:B– M$œ0GÇW¾È¡ã6$/{š,%Õ«Ao9>ËG)Uê.Ì8òzŒö˜^Ö”rqÎ3Ï£tW4¢mýA)³÷M*…«[OINcAFµ0å{6‘Û·ßó…'qù½¤½·\¨fàî=£…¡j¡¿T…:L£0÷<‰e÷öL1Eν…ä‹”:e©°a@im½¤ ýF–O¶¿f†0hÛgB¡•EÞ7§Îýk3\úíádƒÅ`w¢åEh<ß=D^"¢$×É%„³w¿0Š»ïŪУª'æ²eó;ûÙâ…¥”<Ãö‡Æ•ÉsêVÍxß9:V)·á]Vo‹ý,ÌÀvÊ®iú©/Çïæü£’¿“*ZbYþ¨òn–ã]exg<3£ UHƒúŠ1ù>ÓYlaïhu†[¬­ ~ÜÖ¯X—_ϯ*Y³ºã|¦„î0Äǵ6µC P Ë÷·EF—¨îÄÙB@­Åæy6bÏ8 `~ǹ]ü!ÉÙhŠNªôM¨öS ÝÓ¥[ì5â}ns¹­ù¯C§y*ç‹ìZE&õ®2YçÁz)z|ÆþVಱ¥Àß[å°ÉÚÀ“ÓÎ$R%ÒXêJÄp3¾éŠJâ‚Å©Ïqð]IvŽÅTðϦ¦)‘ËBCy0/ûùüÕî”éu@Û_¥ýÍ-V”ÞÑLI°VÎg:µ¨[ž =cŸë8Î ¨‡vøç?ß%¤§‡K"’í—n‡ #ÛÂÖ×}Í4[b0£÷þ‚1\Ÿƒ/º>P~ÿùN,Ü*6q‡u´Ô\ëé}×ÙÓ¯cZðW5's\(ïÎÉ84ñwí\®7Ö’hZ)ÖR¹›ŠðD*èDeí¶?Ô“! »Q¬P™MQ Ìß…ÏÂÑSàÎÏ<–Šu‰\¢9»‹°„î7º=°®»ó´‰ôÛÚR1j²–ÛW^Rw¬+©¶¶B½È…2j+ñÇ4¦yf°ÊRÜíÉÒ(†Hã ÃŒãø&•'§ìÍÌ)4ñdÐ)²M!šVöô}€W2ÀŒ„þ‚0Fwç+Øk“áÖ‰Ö¦2Ÿ1tHv’5Eèæ1>ˆ9@ËÅ‚Ïéù¦9Éu ýÇ;äœö0¹×<Ð+mBë¸ :¦ù¨¢¢áÝw¹"áL˸6»‘­ÈZ ÚC‹ªÔºbÖwÅ_Ÿ‚©öÛÒ ñí¡‹Œˆk|¸»#€ýL­ºh–¯ñ“ÏÇż»¾ç>)Çy|»æ€#¹¬pìÛ%ñãñ·'ëë1ªÑïÒnO¥¹9“ÀÁš2O±¸è8-ÝG#3.é÷LŸN[‡J¨ÊìÈŒÄ4 É8Ø+ÆD4`ãÙC;^s á3뺡úò.’3 D>˲jÏITÇÏê—[Ûv>:î}è¥Ê¡‰ÈŒýfK h⥥B©·‚>Üë|9?ùÈ?‹QªÂ¯ƒŽÂÛù@vÏ{0º¾‰rI§üAR£õ™g¹œòG—÷xï§yelÃŽ0åîÙqyšG¬õšäÞ¨²EoÄÛ\ä©#O‹µÛåge¬G럅»B9ÚSø ·ž1.Û²¬zy½ŸYåW *—Y„ÉÛ Ç!'8a.¨Fô z?a㣞ÛÃ1ñ]àe¶X'§é…åôæYÝ^ÂÎìÈï»¶”^Â;422e0"FSˇŸEŒë¼™6«éòI‡×ˆwi‡0ÕO¡j;.ÙÝ´Š|‡Ñá“€.>ýñjÌ?…ù”›3Ä ¦0¬‰•V'¹‘~!$d/’Žk«úÙâcèU€Ð©Gï‹5:'ÿhcþi‰•áû{_I%ºYÞ9_mq¬ _Y|a4\}uC7.´„†ã„,Qc›ÉnŒï ¦…#Ln`˜œ¨+íi¨V¤CQ,‘D9¿d™0êE9®¾ ˆ‹^=·Ìÿˆrˆk¼¿[^`XÁuÌ÷ ‹ì8u|µ0œcù5i¨3ØÇœÕi×jðí­\ ã3Òg1êG˜pdWêúãöQŒsáG>„wŒÙ1Fj¦¦eÈúÔa»Ô¢ ˜æ"Bí‰`"‘Unh%Ý­aµ¦’˜w{˜îç…¨7ú‹K‘‡ +ïá µ?ô9 tÓj”ˆ×ÎPjÕ€5ïÞµðñ}ã)£åÔh°uµEf5Å1×YòšäwÊ8Œ*—o'jæ4b•üQ@ºÿ ·[²|Ã;æ"$\Ô3l‘Òú)›o<-#ÿxƒ‰…4h »aþ®:×ùøj +@Ö² V?bnô¶;½2•Ž .H–§2¨FæU–É«‡æ!LDrÃAöÆ)ÔÚ´:¶:;xñ.xˆ=¶Ã·½™@ïô:<ëálºþÐS+\d'øb’–sr\ÅíéWÃë¹óôrëÃËÐ…-ôŒŠû(9<‡]ò­Šî¹±ýÁ"æY‘…Ó8Ç¥X‘¿ål–‡QÍ«™yMÕÁc>ƤiO—0¿\Ÿn¨’ש®Œ:–Tîœék#IL¸êóPcE(×7Ôºê[¨~)Ø’agD§“ðPþ6®®êq4Åá“ `š\i0ÌÖœÖÕ5'¹ŸÖYŠê;ËL%q­„¦‡„À†8-RHfBX®ªCbI’é ¢óŒ¤4q|;È u+¥úy<,‹Z%®wÅÓ*æ ÒÑBiöÝ£ñŸ®¬pSú`uíƒùœ(’­!Š:âC ç-/&¹hz0Àúm°‘@S÷î:§Š½¼ÚÝŽÐ[àZL?ñœ7l]6·_­ ¦Ë2uÂ÷<­ÑZrP;.ߣéJ‘na¿Þr][O˜ˆŠ´pa™áÉB¿ágÈÔÜoøTÚ4H ‰ªµò>u³¿4ŠÄû½F3¸ŽAü>U‡oÞäå¢ÿ'JµûÎÉ€]ºë“ý±Ï¦³žRGûsS žÔÔXȊ΢ÜtZ¶ÖŸkЇöuÉÿ[~f,ÏZ/ré÷úü¦#ÀžTÚ“ÚG2SLvq¾J£¸sÓn7EjrÇlF‡/¯ë<æŒ7á鿯ÿËéƒÔxž‰éáÁ>sº4b³ì·¦ïýO§®ÿrŠPCGs^c)p1ÐíëÑÎâŽûwÞ¾Ú“~¸ùÙ•è´ïcP¿ù©o¡H'·)"u'?H-G^¹eçæ}P½—@«¶½ÊëÿÔ®NÎíKµMÊï‰Ëꦉ˜Õ#£‡(”úcuÓ®XA®ÏEð™÷¾ ¨e>Cˆ>øA¯]ŠgEŸòRàÁ5ò…@CµÏœ]¾2c P)] ]ÂÖ"ŽÁXt+º'à"Qàw3Ç…ZM%èCn‡†PåÄâÀüý6¿}[ªY0oá²ÄrðyèÑŽ”\&U݃¤hŽqûPsf|žlÆcWØJgšµaUlù¼dpzœ‚¢Þõ7Sy‹Z°t´Ê@½ß¾â17lqÄ>ý~¬©˜[ÊÍÊÝ'Ùÿ¡þj€6güûénÄs|øg¡¹Þà¼;¨ÖVJÄΡB’¾3h£¬ò÷e¬f{‚ºu ?o’³1bE’ß¡c ¢:Riø8ŠÈꪭ) §Ý³lÉ[À#|viî€+Î 34'# iCÌ¢4î~v'ýRºÿ å†xý ]S«FÛP³—’"._pæ&X¢ž- S6O wSÄT«z´t¼IÕFe)ë‡oÛ6‘b³‚܃È*ÎNZ9.¸ºŒš³%|Ò rú¨‰üÞ ôº€`Þ¥ÔKoµ¥Ðs°¯'XpºÉäHçàH@¡æN8t‰-°¼&÷è½ò6÷QRkI‹Œþw†Q•ïwGˆ(Cì§ tà͛ƟçMùòf0E‡9ž€®³9wúN®ÞÃX¥IL«ßYL ©ïHAôæ›—_ו}.y¹ç ^(|–9Óñ£|‰)%½qÍî&=qÔ\ôD]ÞºùSˆ»™s³×ô»5êS;¯*š'¼• jBü–ßÅ?;7ÿ„>lÌJä¹OP»>òƒpæQ”P™Û „ü:½o*­â äjõ\mš!ê„{Ñá*P.Óà.Ë@D fÄ•§ sˆ&‹Œä0WÇ*ÀBï•}цMCM.&Ê·Ailwl‹;j­}·Ésáš q¡ÀðXåÛ¨+5®¼Ñþ økî ʳªÖ_0!ÖhYñ‰GªÑÔ48ˆå/Ólvs7Í~J€Ä ¥Bþdendstream endobj 626 0 obj << /Filter /FlateDecode /Length1 1363 /Length2 5960 /Length3 0 /Length 6889 >> stream xÚvT”kÛ.t#%¼H#1C ‚HƒtJˆ0Î 00ÌC‡t7H(‚JH H¨¤” )"-Ò!õº¿½ÿý³Ö9kÖšyŸû¾îzîëz×ðpê +ÂÐájhF,’”uŒŒdH\#åá1F`ð¿Ì¤<¦pW7%û¿Ê®pkS`°84 ¸ëŽÀâXJ,- b Ì€hWY@â€:"À]4 îFÊ£ŒvövEØÙc°eþóðC°ŒŒ´Ðïp@Ñ îŠ€BP€cwÂV„B€Š€c¼ÿ•‚_΃q–õôô8¹‰ ]ín žŒ=`wƒ»zÀaÀ¯]ˆüÏd"¤<€±=ÂíÝm‹ñ„¸Â¬‰€ÂQnØw î `‹FšÚ€ž3õ¬ý üu7Xüwº¿¢%B ~C P´“3å@Ù¶$ÐSÓÁxa„ ö Aº¡±ñ yˆüî¨)ì€çuE8cÜDÜÈ_#ŠþJƒ½eULíäGaÜHõ§‚p…C±×î-úg³Ž(´'Ê÷¯ƒ-³ý5ÌÝYÔ…pq‡kªüÁšHÿ±ÙÁ1€$º à.Ü j/ú+½±·3ü·üËŒÀß×í Øb‡€û#láØR_7ˆÀ¸ºÃý}ÿ·ãß'R0€! à!Ü"ý';Ö ·ýsÆ.ßáX‚°Ü _Ÿ¿Ÿ¬°ô‚¡QHïà¿÷+ªf¦ªnj|ãÏÄû””Ð^€¯°”8 ,& À 1i@Z øÿ;>ñW b5Q¶h@æO·ØkúOÇ€ÿ/qÿÎ¥‹Æ²ðÿCòû Iûþÿ¦úïÿÃeù‘ü¿RsG"»ùûÿ7Ä ôþ €%­;+4V¨ÿ†Þƒÿ­†pwúo¯&‚‚"Êù÷5"ÜÔ^p˜>µÿÖ?v“_*C"Pp}´â×kƒ@ÿåÃJ êˆ}u¸a)ùÛÇ*çß%UQP4ì—ÄÄ$¥ˆ«+Ä›»dìIðcµƒ{ý&1 *‚Bc°!v<ÀíJúk£7ÅQÃ_&Ò¥…º»ºb•õ{ñØšÿ9ÿ–1~CCo…:¼ m8®Pdõ^ì#š™kŠJ4ÄðŽ?÷µ×&~¢>ä¢d+cêIן( ócÜ:î÷ºß’4¦‘ƒÁQíXPÚ~ñéd¯ÅÎC³Ø H§G-ÐüH2¸FecI`É—roì,LºU|ùõRÞy“Û²…Ì:àRs¦±bâ³›ÖñbÌ9¹ç0Ýæ÷©ãi]-3Ü5MÎñbñGJ ±Ì'Þ –ñ™ÝSS]Y;ÒÅw_jµ•K•…Ó1ÓûÜåÌîIîdfHʺûÖ ‡WIòP¹(EüÇHÎóžn¢¡ r›}æÊj*coÝí-ÆÂ$5&Î*<Æ7qå:¾@ÀšÒ=“‘Šzœp‚ðÕ‘Û[WTi²v ]ÃK«añŽv‹ŒnV—Õ\¸ô8/Dõxóp:”)®•ShÊsÍ679Ò_÷g¯\ Žd, ç+ì^óªýnª:¦ ×l¡®Þª¯þü:8m»Ñ¬PŒw+]—£r Ó¸¶RÔ¨5žÍ\BØïȤK3»])‡²óR”¦ä è—vnl]eܽQQ—«‰+dð½0f†-Ù•ìQ[ÚÐUŰçQbÔ”MB6 ÙÊA´C Æ€ð¶„OŒfhÍyÞMWRQB@,v²c²Q³>í,gjјúù‰µJ3ÏcOþ«íˆS É ܳ² ¿FÛã+Pe¾š‚ý¸ö*±w뺂ju“4ä×üÑÃ÷Hb”]&Õ6BÖ_äõ=sà—p7#ð!Yéž@» ûÖ<¼PA¾fzåäìOYùý˜§äêD=n.¶…g ê oß;ι~§\6~„Ë@hÃãôï–§¸×uUlãfg‘ºï¢$÷mwŠEÀÛ`–eHŽî›àÃ;8¸ii³éL §ÚÖ!Ó3úüSH˜¨I0 õŒnçûð.èÈ(ï{þ3ÂhyҚƱ·Ö-lZfµÅ[è£{UàO/ß«>¼>7{Ò0ún|mKþq9Yß/$èÜEÙ¾Ãø˜´î¦[‰ï¶üXÚ}¦Cœ›˜ÏÓ*N÷4^ÜŒ®žºC±ú¦ÿÎLõ>MÝ)eÒË™h¼@¶·TR÷F’…¯%«ÉŒŠ?dc:/Úg|´Zwõèt“Ƶb¯jbŠÆ‚»i°®dérÑûe÷bê(üºªó\mj9X­¯ûÕʆÓ0½lE¸žý›ŠåS±özÅ ±)’ Çõ¤Ž¹öÔM «Û÷ä#p§?ñ0_Pní¥â“êÑx˜I|ҋΔžÏÐÛY?x¯f†_¾UÝ0uùÁÊWóžF…ö¶ÊKñ:h#cÀˆÝ›øÙ'ëJ“Ë ó|Q$Wóð½>à1P²l,|JÃÐN“Uä…¯æÔ¢ýAoy¸¦À²öì!+Þi~0‰ðÚ©0ÿùa~%:R¡*în½#s0/ù !üÞY”‡´$ž^ZŒ·ðÎm‹%«‚¸ÅWÌ+—fAБ«?½œ?µ;~¥¼AxÁáïÀ¦óáTÁ®``óäö,I”.:‹7µ&µÎq`¸H×Ó?{2™0„‰y¨¹M«Z0ù}gŸj¿|…:åñ,n”Ç…{Ì•Éöqмé‚bΟ}„y Y1ÓDê}ˆ Ç}Ìé¹ÍEì‘7Í, ÛÕkl”üó“  À*Î.ŸÃ²&3Ž6ÌÏ9:×å•RÝØ‘9®mw‡•-SP›„Ûv">u᎗®ì©KÉûôax—»h·ÜÏ‘š uN“£­C­Vð¶#’Þ§Aª¦â»©ü;¥¥âÁ9M¯ÜT\Œæød%ó½b;_~}Çʧ?ãbbß/O¤úHÓ÷aKeÚºQ‚ˆëÍÕdÞä7§1ÉfüœO w‹ï+Ú7yÍ ”Wd_õ銶ùè˜lû âæ©¯ªdL½KaœR\w@ZÁ_æ¼wfn\ß[݌걲sa”°1^glèiø¿§ —Z`°Œëx‚q•ŽLýxà$—oP¨ÌgËΔcY“ߊÏÒ-Êáô!wzlv–¤^j·P“;hjÌ*¼j°g¦Ä[MýÔ\£f‘Ùü¤÷eͨ4['×½Ò„VÅ;8÷J“ÈÜMnp|ØZ©›õËŸS~Jôm~AìMCÔ®±É®(ʰ¡›æ3'ºF×¹¿žK?Š:ø¡ÓQ&§_^–BšàbR†oØ=ÕfÔC>Â4:¬¼>'D,þ !÷{óÕÁ½áÓ|—ˆw#QY>~™ƒbZQE>º +7FXº½[’ÙSžhl¨\,erߦ\ÞQH[&ðÞ/ïÑÈV{7ü&tß# Ò;#:9®©Ð:Ì¡JvéH½Ø/‘ýͯyÎHá¬r ƒ æ÷H¼&_>W ¨¾^Ó``@(ÜÌi:È¡"åô’ÇÕ$-ØË8À)ʤåÇÍôäÜ|öÞƒëã£ÎìGFöŒ.⢇âœ7TSÏ׆¨âÐõ#§ŒîöW;jyF««l[šÒ¸Z7„ñ2loAøŒ¤ W³_ãfѽï{Õ%[¿åþðe¥ÀX°Ùt”£ð¡<. íí@ÐÚU håˆì¦eØÜŠÇŒÂÐ9‹d;Üœö;±l›Ìæ¤(¿ìoasÙÚ9Š-ˆ ò“™ŸûˆZ5uógÇBýˆ­r?ΰârç5ñYYV'ñJm6ƒÅ¶æ<¾L7ý+ïGŠ‹QÁ–ÄÁÒUúŽt)³Tçêè˜ÉRbåØ T£¿­¹Eºý/œwÅÆ/ôaÙ߯Ã-‰JBa¬ä±Ñáu+JÉ2üVë9ÖÉïÇX‘ºàšë¹ÈnQK¶nM¾.ç߬–“ਸÈe¶9ìŒ,¡QlÚª 邢É\Ç L©å &ñWÛ^è¾ÿV †¯édú¸Ì«ew›óðêéãÝßÖGN ÑH ÎÊ@«íùövì(œ^ž¿ŸMw!ÜRñâØ1îë²£R¼çm»E‘z¥›‚^«¤V‹CBõ:3j¦ZYþ•éÀçáXÎFvŽþ2°ž§öçÖÀ÷Û^wÔ^bcôó•»pJª¶"ÂF~¡=ÚøB ™–ÔÆ†è&ªˆvUY»zV¶ÂDüÜ¡›áE¶Êùo‚-ÇÇP@YM‡o¿M4Èú²§&‚µÂ˜E'°wKâéýKšüt\ÛÁ’¯ ‚Ž -ºûÔÞô¹•©»`mŽ4WŽMÝÆÉer”ßûvTþ¬ÙÌõºífš9÷v?Þî ,€ìˆ9¸O„3go€ú„Š>òuU²-4 © q˜5qº‹\!!­›´1®g#Ì”ëåb)LJކ»á< >Â9Ñ AYeÐßb½ÕBF»ã9R/y…C^vžoäj«³ºÇ6ÅT w6{'!‘_ÞSìž¡Wîjš¹¤8÷a.í†ã[GÓ&qÛ¨‚„¤;UÉ6u?òíWqkœGy‚è¸ß.ÞgõŸN_Ïcäñ\¼ÂÙK¸Iæé?ÝÜ”””ª7^Þ>5KÁ+354[9×¼naM i ë,è—ßé6¨¤Ûùä¥L`ý\Œèf"ÿÓy«×Œi?yØ|¡ãŽL¡áÁDƬ!}ÍN­†|¡eÏ÷ýNoŒõ¢D#YCfo½ý¨„\IKÁÂ9Öã[3’-¹Œé“SÍæ›Ò¿‚¼ð¸˜›~5FŒöNŽÇ½¨†'³¡_¹„#®ó—îÇSÓt^=·ág1ð”ð)Ú]:Yë™^C¾ÔD{š×ú2féõº¥ß¬aeó9ÍDKÖ8GG/zµ²'ás:Yú¿ŸIPð§UÔœ»ñ™jðXî»U¡ÄòkɾNü> œ„ã…¢8 =»ªÁ3\q?¥jVÁÍ“\¢±,û\_tõñ?³lÝo¾¯~^·)ùÚBŽLC¿õZzèù@(¡‚e`grO„ñçës×Kë—6UóO§»$¿~Ö¹3Øè§¿ólÿ«u3+wrªJU “ji"ŽÒÏä1Fù€p½‘ꈩH.(ìØ“ÿeI\oÙ“]9ºÛDú1t¤ÉE^¡¤ë -îOÃ<îèî‘)ÉÈ}ÈÔQ³µRôL€¼Øs¥ÿ1÷;Ñ4¥ÞÐ_|ᦘ‚L²ˆfsñBi…O÷Rªëzp¤iIë†üyí ²BR†Ýܱó[ ÷:TÀ󹊎>Ä}%2É(èOãÀ¦åå5ó22_¸ˆoTTëÃ|¤ßøaœ¯ÉZ“BµD6DÀ<ï™KßÐÄ-ºã41¯ W·W„³ëÛŒ%O¢©Dšý.î×úPØ0í|xíûNºçÚcMP’:«†¯&Ô3jgBðìkm«Fv (¼¥ýãU׃Œ²mõë/”ºò¾3}È/ÖÚ‹JÈ*B8êúTïf>ú¹k?X=û=Ý¥øçsu»ž”–ôˆócåÑ’L4žäˆÐÛc4çmËàææNΜS7ù̦‘Dß…gMž™¹Ÿo~xÝrUïÞÕ£+)ÈÔÇ!IJs§D¶èixÖ$À> ¦] ¡Ä+£Ç_ÄÊÎÏ \1j‚B+ùˆ"?CuJ&œ„:îæLÈ·+©_ÄCµg‘÷WÆ'ÈÄ£¬–ƒ”ß}Æsl¤ël³HoÓ¯Üë°Qßïú¨Žòm›{š $A¾)$dz•„V®†û µê@¤ WdêUéx}êePžÛÖN®5BŒ»õêõfj½…9|q–ûðñëGj™‹Ð €æ÷cüƒ˜þX pÑ­¤xÇ"–û†ú>ëk³=ªÃŒ´m-O˜YŽ¿¬7ߎÎãõóy/ðºUÜët­Ž0ÛëùƒªŠíÛѨRbã«ß›ßEŠŒáÏž¬Må|ê“s'Yªžã°ÊÀ¹ž_t }T™ØcŒ|½•õôY€I‡~:S‡­®Öɧrj…j» è aן6©Xߊz}©¤1´×[—§º#ØkcÁí8ï´¬z“öþrRÝlÈø1òùÕE‚É¢bEB†7`ÿôÈÀ9ì§éeæ8fË”°GY«6(‘_ßß*A·ºŸKûÊî^é,ÙÞUÅÐ1Î>ð5víå âöº¥‹:N"þ¦*Çz1Iûƒuó“°h*c¼ˆ ¼`c™q’áÁzép|¾M!¹¾bÞÈYˆ½pfˆ7(õü.ˆJRgeû‰\ᵋàC擎'ê““-_šßò²ñÌ|3æ‰U0U-Ó²–Lç',5O §剞fðœ›hÓÓªnUÍ7Š}·É|g{êÖD®ÁX.±K÷f ‘ÒI—; @—‹#Žyfˆ¢NSçˆ%YƒZ?Yp{;¡E‰tjá–,í"RÚaª‚yº½]¿ø ñ,¿*;Óig­µÞ0NMËçþºÖZ_˜Õ´ÜS+0ÒÒáÌÆáÓè„?ŸsÓXoÌ0‡×—ØVôÒÂ]["yZ×=÷lXº“§&÷"æ8ºàÎY1u¯ò€ÐCFÙÖ/_¢X‹ÑIÈÈ•ùc í|©Ï;"Sèz5k‚ßf*Âz G˯%³C|/Ò×êÓØ³/KiÅ›+—²-šsIhÚ'í;SÛšÑIZö7ÎŒ`O;ÏãÔõjÜêÇÎêx€8ïrï:Š2 }»Àóéž‹ê棲¢õ|¤UÄŒDïr¦ Ü]F.gý\é ´ †ìÞ­y±==!™9  &ˆŠ<z=@‚[åô˜¼v 0ç3z=ܵXr\o5xÃ,WóSêÝC= ùHÂá|^]ÛWz9rM sLÝœ˜©úöå»GþŽŽ VU2çµÔ#ºW¬Üõm‰y%½ˆæõpxi¹ž¢e.}±Õ~œGwC•Æ;l±ûˆíÄÖì}è“s$EµÇ˰µ ha| {WÛN¦õúþi8JX{á®ÑÛ}’û3œ§7Cî^xIA«=ŽÍ@U}àL#¹j’åYÊ.ª£Pnå(\4üG°áÙ7åñ³UÙ]¾»ï‘t§/¿0ëzM·jê‡üAɇd.¼¬Óo6-xAH¨àÑ.¹Ãò&ÉPW3&R£Í8…s¦\÷õÉÉ;Ä&JªFã9þ63¯U†æV/¤ú²pÍ>ý'®•Ï“© «é-ä¹Gúe–CƇ]nþâäZ•—‚b’)ÑhqïLû>ý«-Äv+áä|±ÜÛ ™ ‰·éŽ,9jçà']Ô–.Î.½<¯·P7”ª&.øÚûŽ©ÑÄì0+‡InYãÝ=bGÞKÿÆÚlÜŽµ×Zh,5Nå‰WÅ5ࡵ)´‡º~¸î¼…;|Ž*µ=l/Íé²ÐWøJ‡1ÛßE¾˜ Úë¿5 Gñ½¨Ï“e"¯µEQ"C¸¯XS 1(qó¸ÝþR…öw–ÄII O„“wçê!«#¦ë‘tÝÇ­?8lß>i®yÌiøûY˜A¦šRÏïP†­è†¼º…ç±/šß.FI}|ÔñLNèH¸Y¸endstream endobj 627 0 obj << /Filter /FlateDecode /Length1 2286 /Length2 19182 /Length3 0 /Length 20533 >> stream xÚŒ÷Pœ[Ö #ÁÝ5¡qîîîn  4Ö¸[pOð`Aƒ» îîîîîz9sf&g¾ÿ¯º·ºŠ~ŸåÏÚkí·¡$UVc1%Á¶N ,ŒÌ¼1uf33#33+"%¥:ÈÉø9"¥&ÐÁ¶åý‡…˜ÐÈéM&näôf¨¶È:[XØ,œ¼,\¼ÌÌVffžÿ‚xâF. S€#@l tD¤Û¹;€Ì-œÞòüç@cB `ááá¢ÿ—;@Äè21²(9YmÞ2šYÔÀ&  “ûÿ„ á·pr²ãebruue4²qd;˜ ÒÒ\ANU #ÐÁh ø‹2@ÑÈøojŒˆ”u ãß 5°™“«‘ð&°™mß\œmM€·ì5y€’Ðöocù¿ èÿn€…‘å¿áþíýW í¿œLLÀ6vF¶î [s€ÈP’”gtrs¢Ùšþehdí~ó7r1Y¿ü«t#€¤ˆ Àèá¿ù9š8€ìœAÖqdú+Ì[›%lMÅÀ66@['GÄ¿ê9MÞúîÎôïõ²»Úzþ™lMÍþ¢aêlǤa ²wʈÿÛæM„øGftp033s³r€ö ›‰Ó_ ÔÝí€ÿR²ü%~ãàíi¶˜½ÑzƒÌ€o_ˆžŽF.@€“ƒ3ÐÛóŸŠÿEˆ,,S‰Àh²EüýM 4û¿¿È ð™ùmüXÌ}þû¤÷6a¦`[k÷?æÿ:b&e 59 ºSþ¯RTìðd`ã0°r0XXXÙ\oÞÿGÙôï:þá+ckðü]î[ŸþS²Ë¿g€æß B øßXŠà·Éhþ º.3³ÉÛ–ÿÏãþ/—ÿSþW”ÿ×Aÿ¿I:[[ÿKOó·ÁÿÞÈdíþo‹·ÉuvzÛðÛ.Øþ_S-àß««49Ûü_­Œ“ÑÛ6ˆØš¿M4 ;#3ûßr£$È hª r2±ø{jþ–küµoÖ [ 2Øô× óæÅÌütoKfbõv‹8¾æ¿TÀ·úß¼¶&`Ó¿–•ƒ`äà`äŽøvÖoˆàÉò¶•¦@· 3€‰Ñìôæxãè 0; þu°œ&‘¿D#N“èÄ`ûƒ¸Lâ€I⿈‹À$ù±˜¤þ V“ôÄ`’ùƒØL²Ð[-rÐ[-òÐ[- Ð[-ŠÿEÜoÙ•ÿ ·|ªÐ[>µ?è-Ÿúô–Oãz˧ù½åÓú/âyCFÐ[vã?è­±ƒ‘‰ðí]bæôGÎö_ùß«ð_Å[ëLþ‹8Þ‚™€­ßÎÿ?vö¿$66þ5L¦ÿ€o)ÿ€oŒÍþü þ¡«Äüð-¾ÅŸloM°p·³ÚþÃâMú|coõøV±õ?à›?ðíbúG¨·; ü'Ù›íÛ[ñê·bíþ¨ß|íÞ^L¶ÿÓHv–Kÿ·ìoçe÷v€ÿ4†í-¼½3øm…ÿÇ’…åñ?úÁòFÏñO¿Þ”Žowîõ[à?Îo‹Çää þ‡ú­Îÿ€oÝpù|+Áõd}óþGhÖ7*îÿ€oì=þz‹ätø;Õÿ,¹‰³Ã}§ÝÆo7Àð¿^¯@ Ðq~lÂhYØ|W!Bäʰ=ÂÊŽÒs~¯µ%Aಫâ/ÆÉ–1'Ò6µq¿†yÈZðZo¥Ël¥¿ê•Á‹;_Ó cf¼Iï5†)ðpè(ï̺#×ÚúÉÍÖÔ÷ô—jŸë•ð$-½ýùötÚ¾?Õ¯²ÛR‹S8êº#Fd¨‘¨8|nn6d¨Àß"i¿ËD+E&§Zd(/„GŽãÞKîß'w²rlô,ÑC‚Ö“‰Pìä®Ò¿ïupÊŽ&)·:$ð¿Ñø_5~¡1vR"çK—Ù»¾ØŠ’Q5ÿ%Ý»Ý-¶öìl A$Ã͘zCŸïc«xAcø|‚úO6ꢎâb),I¤®9Éñ£À*Æ 9/ùÊþñX}uÇ„ôÉäŸôƒ©XuÊj—ž³,ã&ƒÑ zÑßï7}U ~DÁYÎZ,û:Ujä6w¢I#Q’¢…Ÿ?~8$÷×Ì%öâ=’âeá$ =25S35ôaÆ2BTžôvš>d‚gX.{º´# ¤B»f;Â~T!»È“ÙA«=$2äãg›ïÖ…x;]4­ {P%ŽéL^§†É x-f;bŒƒÌ&Ÿ6‰Cô^«ù¡Bñ=ž*@¯©‰ÖégZI¯Aï5*‡ÌbÂ‘Š½G³ì£ôM胄K9UÍJ7sy®[·;+ɇ àÌ1/&ûŠ7 }›P¤>L"×m}Éš"“#É!Â\xÈ(JÉ$ë*VlÙ;SÉ\<þÍ×%ÅN‹ŽIÀü‰†bdZÛ…ð£V¤cÔ¡ò»—yÛ2 í >ŸŒÝF$\Ú½Pž>p É»Ò=H­êëh ×–y B~x]ï×S`õ§å-JËòeœp½ÑßÇá6±©ZvéE”ëîÐT¯ÏŽÝù~< ë›c»{bfèá*nd&ü‘q «>Š¥á”̧† !â¥Ûkt!Ñö'ç ¶È|1Lç7Úµ™i È®ŸL+@l§šÉ;dt4Ó¨^Œñª·'цsRŸ‹qÜFçˆx©êz¹ðí)á? ÌÖ]QÆ=g Á{ÄæÈ²IŠP ³ÊŒž Y»œ0eòƒ*Öûa~ÙõÅŸuð¦7_÷1Œr5ÎvT‹&›ÃYw•jbÅ4G!×L«¢Ù©X/é^¦å€•äÊøb¿ðŒ&*Tí¸šŸÒuaY-ÊU¼áó¾Åš¶£”Yõ&å.ZLÏpÙ¸ÅIÿkm´&f™yf9Q2œúèhx–ò;y1ÈæéSªªÏlÙ‹Þ &Þ†‰1¹Ï_’¥ Ëu™,ÆmôfܪyÈ!ÓAx–Þ1cÝ÷[]H(½­7¦…cšëzeu…9:‚gó#cÙGR¡- y͉TÌSrwàœ×ûxÈÈBŠ<§è-jNÃÜpw×Íð(AäJ {º“}KWq½b:ÏeÒÏ$5¦ä@ÔqrrðF ©ù¡;³Ö_C@!`DÓ]ê·t¸à–WE®Îuµ¿h è!k âqû l­Ga/îØCÈ`ü8vùÞ_â¶6ðYÎmʼÐÝÍ5€ÓI#v‹òiÝcõù±àÇ2^§ôÍ­5yÏ¥‘–hr±HÆ-)¿ÝÇ`‰-âõ NÜ™:la´édyt°Å‹ê“‘Ð<.¹Ç •/>8C;Šâ;•±à †“#¾»›z²7ù™¯ùó{ý¡÷Jo—òâ  õ‹ª„ÅRc/ôãâ&?H[R»“oPSk¤µ½4un¬`8ëÃ5jb+|Õ‚ˆÒ¨u\ k1 <—<îùsÑ`Šc 8¢ñQÜéâqßhKî½ßˆo¯÷<úo&…y=³ã&Xíyk³‹†É¯9@§I„å?X¥'­‚‰õ… †³Ÿ²ÝTxÀ¤Ÿ4iª)Š ÿÙ¨#WÖ£ú—t<óWçô-¿Ê1µúEp$“Ž!µ9-ö@Ñ>¯n…¿Z†N¼ƒÔoÒ„wOå´C§¤Iú^Q­¹GQÙ*˜`ô;…p¨7RvI†ênÄ•òU͹–EMÄÜðo=It™¹¬VÅê½ù/21‰ WoÑ´îß?÷Ë˜ËØ¨ì.]‚ØUx{å¾»þ¾¢³›òqi½™qCü¨öçM2ª¦Gq÷'Ñ…#ÐÁç>ù-pÜ®j?-ÇõÁ3là hŽé°Ë°‚§9GŽÙlóÝ· óƒœ÷ÈRäx EÀ$ÌEF¸¤¤`e";†@þ4óÍÏàÌ"¡¤U¥0^æž·,Ì à„‹%±9ÅI­µ‡”Pa#AvL”«ŸzÿRzQ«[â/ Ê†×ó`*Hª³8}ÈÓ¤ªR;’À¤9mZ½^ ¿ÜA÷"º»…S~¯E@ s~ê¿D,sm—.reñ±¡ÐI¯Sѹ‡Atqc€–[¡aU Å:#Eµåd•Gg¡ÉOQh nž/8WçüüîÊăGèT¿fÒý©’†¯$‹µréøàjˆaî·«¯[ýúËðCi>•JÂ,óç–Ôq½fÓÚ;Bunz"@ wÉ;g¶‚§_²—(~=ÓŒ·© Å$3b£±È¿c¬q­­H—¿ìß’‹E1š âÁ•™-Ó"ªÇUIHû>†àSeœ%°ÀB’DæH“ÉíŽÅ`½÷=k°‘¶ cñ¶n*6PfÅõZ6â>úÙï:8dU¥¼~þÏ38Ü A?"ÞØÆÀ‰B¸Lþé’:r…~YÜ¿º8Ì}§Áñ¹Á`õ©}œvÿ +`3°þ0àÏûúü‹e* ݸ E<çÏ{PÒ0z¦µ”ùÖd·~Ë6[u) Mæ&ԮƤ&4äÁaŒ«V3µ¿x^Â_QTÒe59£×s“ÁNOT¬çç‡Ù¸ÍõŸ´F)^ZTx•G›‡ÚtOÚF\ónš˜.]„- Œ¼®È'ÿ¼-ríTœøè-¹dªÍß3~âÑ»s:BÙh¤P`Ò™é{È”}B|nlüÁWŽ'5•Õ~¥ØÌ CÅ?:½Ýæ¢í¶<Ú,˜)<˜Ú5j ¾Dÿ£Vv¼QUÁÏ´Ð0pÝùcøú{Ô„x4ëVÚ* ÖNÝ\MÐm‹ùKNj(ÒókàA i•y еY§}µkS˜Ólš\ö§éG§Ûk*˜q¨Lz~rˆgÚ ïôßï»="ÆZ£`àvòÊ)YHr!z3ë*ªƒµÈìœGŸñ6WFª,«›OOXÂb!4Húéõ(Nu믪úÌyÁÃrN˜§žÓ­hæ¢ÕdÓ«ù·§âfw¤k«^±…*³ˆÐ›¼Oçq4­ŸÃ;} ¤0¢]>Xú&ÄY+#™o2áW ÀΠ]Þ|3ÐÓ€øYמàq@‡¬~JO¡Y8΃a9|²øiµöêë+úûW_,Ž–Õú|§ÀéAû¡²ãùä )+“‘›õÏÜt¯|ÕÆ{¨gyHt¤=¼=l1‹=Š4Ž,wAîCnnðËà].jEQ_XX–Ú€R²ˆ‹PDR|æjÓ4ÔfCŒ¦•£€µ‹ñÊh$w¿WU_§îoJϳ‰‚jA**b8œ´ë T­Íßj ‘¨SͺeˆÉXŠ>qïXäæk©ë§½t €™¼Z€î˜v Œ‘®/axS_T¿¿$㋹EtÂuêg†!×\MçØ”%î‘ÉêxÞ SðRwÀN×¾ïÛÒ¶Í+(bëk÷ Î43ÿ‹Jû5zªÿçrÖ¢z4½°z@Ÿk1ÒËmáAÆIE‘G_ódþîèpúzÙ*ÖDÀ£÷ìÚhë^ÚpÚ/ñ†½ ã q4b Sz^J?‰Ú ^ëUëy|àiwÄ™˜ã£q74>Ï“âF?tT ÕT¹÷B=yúGø%Ä®‡`Ý&¯‡Z±ŸÚ¬i~SƒZ¸m¤®"IGDV}ýÔê üÂjãþQe¿­”¹ÍŠ…Š÷.Kƒ†Ûê¬~rLµë»­r­º(‚«ï£(’¦æûÃgçŽ+åÕQ8:$VhÃzHÉg¹!^ýsÃqSæ• °Še3*P¿°®—x ³ ÒóaÒâu5DžZ£aLù… ðj–ËÎ×5ù2WF8<œ^ lNkA=/¿eCgç*õ]A6í{òƒùY7ë&y õã™V‚±Ò2¥è|GbƒòJƒÇ3¦\ì%é3JéQx³°8=_Ld² uÈŽot<c˜¬ê]pC¿úvÄj΢•>WOc•MÞ¡\L@˜ß „🠯U³Ê³÷è·B·LçÛBéGq¯a³µ߸Éãw¯w;4Ý~R¯É¢q{vt(ZþÚ7]¾£^6õ ™FÓþ1Ûœ<|TjŸõOl’Ü\#MãBT}ù ¡ï³öðwÒüTQ‘ç:<ÅšoºØ-BdéýD‹‰i¹“îJî´þ8™9Òu¨ Þ ûÀ}Uþ$ƒºg­éX8_­ š ãô‘4ŠUß%͆i·—íW¾°Eo{KÝœ“uLPäµ»Õ³s­Õ)ƒ«>É5ªáó»ôÚ Fõ”ºÏðjI¢ÄYº'[úT¾gÔôf þ; ì7ž\8\ú6Òíƒ?;ða!¤¼Ù<(:Gb"*S$ÔV=^ñ“õ‡û„`tBÍ)—àÐýEïDƒ<Ôê!AKIAî×0JŸº2¥„Òm ÇKä{O^wgÏa­•mÊ¿`ÔÁž.Ù ÛÒ»ûv³Ïà;æCðv»)¦Ö¦ãíÈi±’? ÂGC;;¹ÒÔ=Í’¹Bº±ªj6‡~îÍn  6õ,cÝÑK®Ø^ºë™I<ëó)¢ºKkÄÂ0-““Ñ~˜~uú{ÊX8èWØF:š r sûOðÞÓ÷Ù]ìjYÌØ+b¬¿ ½¾)™¯r3 ˪=.>w+ýUîPåâ÷÷-Y#žZe­6ÇœÁøQSñ xméÌ4]ÓÅôXË_Z6·%JÛgjkD ޝœRþC¹*¶î² ‡GɇCpÌ\Xg‘c+Žp¼ƒçyã×l}sMõ;+naÔ§°ò~ä › zTûD‘þޏ%(ñð†}vEÑ"gø‹¶Mw'´1=»’†¾üx²ŸÑ‰ŒBC±ãåSLKÖKŸ­—©Òv± 1ÃT}¾j¹Š’æ\ÅÞ>ÚêõpÓÉp¸êèI»`-UýæÓ ëýNr°©H€ß¾ƒÙpÆ~‘<ºüq¶ëZÀóSú‘çW0<åð²ÀsÅàUSµK†³w±½c…[½ÊF…d¹j‹”QLëÝhpû‡;²ûÓ¡q€Û˜™žü·¯Z*·¹ÂhÁK œeÀÅýù†F:Üêž§3R-3מ“zÅ¡f?ùõ«ÍèçOÓ:ãò‹Jçy¹·î²%*q´ÄmÊЬüÚ½ÍÔbJ*Þ ¦¼VãŠØ~†æm‹ùÊ8͵J0Dzݱµÿp˜ZŒh!ÊyZ­oÙ°¿@ì9)h,ä_%S«ÄF^¹ÚP’-8»Í½©~ÙrHšš‡ã îåþ`ÕðÂ*‚¯žüî„þA%OgA¦áq?°ZTbF¶…Ê¡ù“1î@…’Zß”½$Iù]^±‰IAãLr‹©|o®1sOâ`+FDÊŠE÷§Ù³*ÕlÙü^€àÇ)©"$ɯó›ž|bÔ@km}Ú\göL2ÕF¶„MÒ¥-Á»(FU©Í×a‘``UQ Dowî>k²Ö{/D9¾¤J¸Âq@Š ´Û·šGÒ{œìè^d$…a‘ëä)¾òÛ¹ÞpoTã×M6”–l&Öů¡Ž´´úXKïn@7…‰+i,8ªÝsךQüîÄž²^â¯1¿öHÌÙIƫح™Ú»µU¡éƼdÌŒ=³,F%²Býõ8>ÛÒ§zqë}(ˤÇk†Ôì'û¨èÿóÓT}o’y|ùÊGá§Åopé?•ƒÃÅÄ›~\\ÒÊOKˆ/ w,Mœª©@€ ”ŒÃŠtSàÔ˜æ¯ýûÆ»¯»ÛH"n꜊…Äòª•Í$ñòoR–ŽiÄHçV!ÅۯቇRa% Ýç-)ëwwœÊi=Dz\¤F­$îf1éX9 ·d2òør\Ü»òwª LÔ }½^’ý½Y‘!Ê5 ¾™tu–SÒÂI·_ò•ðœŠÙH'ÔÕ²‰7•duØÄ½¢ŽÒ<ÂL‰{v-T|ÁׇØúá‹!ˆ*=y ÙbÒµ (Ž#v¶2"ÙwŒ?Û ¬KÀ¯ …-ÿ„É-Â/÷IÁ‚(ÑFâVÊNûÇTæÍf¦_á–ó{<&'ªV¤æª2ÝMÿ¤ÌtÁ´×üÔ¸³"W"c=A/Ã×'┡~IÇ]©Û:ñ…©tÏ-±LÜf~»¯ÓD¼g¾xã`}B»Èß$K7µ8–ŠÈ׆Ævï_ßõX†œ³ií´©â½{¼z‘ÈD52Cí×¥õ4lªU7Ãì^ö½ùBcýî\ÐÑ0§Qœ¡êƒ^ÑÖ þ¬ŸpOVMßȱ’ó?,ò;„“G6œX#ùô~%Ȱèôù¬ã¢å0@Õ” éŽ|£ØÎbêýUâÒ¿©I´zÃÉ=|”ap––÷Â!*oNù.˜k¼Ø‘þX€ÊœyZ»/óå0Vï…%ú;ÆA›VFÔ“ÀÈiS Ø#ÜfRc„üÖóe.Øá˜p³Ã8VaÇo‚/™Á×YÜ}˜3‰€ÖW$å8S‚vŸº&Er cZü¦Š4ä‰v‘»œ2+¼7¢Æ CÓ†•Ó®¢æóÀté$E§ëY‹ é`òš(ûs´dûÇBüd%I*Í:=Ù'`%vV+±zÕWŽ˜öŠO£’ t2_s¼:÷fù@&Å·%²—¯Ç噡//Íù ¡rxj"ÏÔuT¿¹¨+9~Æ#TÓ¿üví[§D’üñÐåŽÛò{ã]h ŽkEX¬t4.I!ˆŽb䥩kwWdÄePvØyS?äb <‰´Z»÷˜¦Ó+è6!ÂVpØÖ~¯ÀE· —Wýf1Òb#¥S”Ïž€ÖP÷×ùôø"–^¶¯±Àí:»púlg*H3)ä]ñÝ‘Ÿ1+&Œí˜m9åùóè, Üy¨¢?àD;²Í+ÒÁ¡ØT¨VÐÔø™÷2­ÇWQ*»Üëè¦tØ»p§|Úä?e°¼æœq'É®â¸)]Œ§éFâÔAŽŽ»š‰,I¹:+¼†cþÁx²bM*æ—%ýqµÕÛ’>~Ëøžƒ{½ý0©Y¦…x䂉šÛ3ñ‹Ú;CͦÚ\ ®›Ýñfí§Ô ¤+¡gÓþkìoîÖ—Ÿ¡6#9/vÆf™ÅÄ;^¥ÎÀvè¸Òïé &IïÒîd”ÚœHñˆ^´= àX›Ï+:^7 ïD”ÜÜÜ·AŸ9Ö;¾‰FÞÕ¥.Ñe§ÞcD°Ñyò‰†2ždKUae‡ÜMv•à…æîFshUj{²*]m(Ö¨F\2„®½°icAËßÑØ+´Ï¾šÝÃ<Ã/hލ¦ÀXþ*#iŒ:©×Q¾GÓåˆZ¹ÂÜ{þø¸ÉÏ/g›û!‹)x›˜¢;’ )Æh¬¡“ •)HØüéºh,„ 30õ“>äz£åÖŒ{%•L¾p1ºžJ•!~ùq"è>Ø>!)[ß<ªæ$"ÇãÛ€½yG䲘­èÅßöè)S¨;6šêzÍÆâ…-EÂ!8ÆO¸ú‘éQG6Õ.c…%Lž_¡5V0ÅõÛˆÍIÙÎ};ÄïðÎ)–M”6Zßæz•æ¢{Ø0¶0–³Å ̘ãiˆ|T¹ ÷YvÝ9ó‡Ð–Õõò)·ù}ž±© ICuü§ ©_5ô{‚’gIP¿›ç™¡og¬W™{ºúu2~b¢F–CCšdvrA*…È`‡Ñß@@iì¹Àn¼Ûo‰ÇMúêAö‰Ù6¿·!´b´0àñI,–K©OðkA`™ˆ< f(çßz(ÂH+AP°·*ô¶Ò ]Ñ8\bë<ö<±ÎïæÍ;’à¥~J(³—á}Ãá½érÄ’ÐÂ]‰Òv6Ò‚ êæÉN˜ƒ7£óu%‚ßKHâQê¡nŸ®-UŒ Ù\½¸ÖàŠ×Š­­ŸE¼•ñY+ƒÓ+ôÿ`i5 % 43iv?7ûÙz¨ÁÙÕRg#_(:Âw“†•Õ/Îcάªâ\¾Ñ ‘Æ ‚vžVUqÒjæfšNÍ!Å8x®³':[g_HýRÚ Ê¥­»„¬@œÆÙꜭæK +U ï½EF<ᗱŋӎ'o]és¸µõ)ôˆl9Ç|UبÕI¦?¨š!~àæþ)ò-!VÀ9œÅ×+Vç\·ê@p;§¡áˆÁ®d¼ñ‘„JnHc2¹æû8~žEÄÚ/³W‘8T›ÔIW¶Š6’˜ê*”%;b‘Xq;ñ¨VÀ¤Åâ˜MóÉBµòµàù+ íÉ!k´Ü<à—ú1¹íön’lR;Ž¥¬Z,üeúŸ#Õq« ´ö[ÔÑGeAçŸ8ßÛ½cF!Hæ…®ÀEOAS`œËŽ™àÒ¤½£©0À'­À6dhX†}Hú&6„˜”¸*1ÉÿIÎyÅhË-·ž›®Âi©¿VŸW¦:ÂzäŠæ %Dqéµ²c™„ŒwEèÐ ‡½Ñ[æä:†·¯¬Jñ‹¸Ô'^w|Ý…V=²&¾‰™£›}&KòzR"êÞÛ½›Ì?ñúF‚°iØì¨±9c¤Ü€Ø¦‚…Ò¬ÕgxÔ*h9D¤.XneÆ{ÂŒµ±¿çcPÅßóË¿'³’%g8ì—¼+Èþ~9v–ƒì¢ÜÇóAÜ‘À½Â£ í5‡`rU– mZr¾˜K<—€øS»Rס̺§8bC_ÙÓ Õ²^gþ–†Î<"¿†Ÿ‹,L«>Çaoø&®õn°Zàõmä€[Ý*B¡UyúÂ$–•š ({GÒ»EVÉöÈ’¿ùfoåü·€rX%äÉW²zØlRÍ)„ýáˇV1Ü„¢øÿ[æêqRUr¿êmØÄté‚.'¹‚¤É¬‘`»ênW”’ã®Ç™Ó²S¸{ƒ]Fï5œÜE1ÀX±;mÞÂã½>ußÄç¾ßܯÖYÙJ ¯ ñ“¹cw·Ôå>ÌôÓHž‹™GD?/jœ& ¬Ð9ÕÊi%Ð{ÉÈ÷Ô°4žùÅ^D’l-aˆ¡ýˆ*ž숮ç5uMú+ø³G– ŒL²»±ušÒ¦~;¼3ùqô.åj;‡²)\Éä@ Þ×Ã7yª¾?eEzñÑL_c“ÀiÉr‚×4Lxƒ—8GÏ}³ïKÉxW‰Ñ õÇÜóÛÙ{Ùfž$±IeÒçu´£2Îpk u¶yÞÑxc†“­ 39ÕæÈº®3±R bëðw·ç(ïæk…÷kÄŸ,ópÅø”1ÂWU»‚g®²•f̃¯íÜ pð•o¡T»R¼ö-E-LNs1γ#i3t\"¦¬Yi½¿_ýb &€:z ‰Ã+OÚ*þˆðZ)êÕ¾@½R³¾vHAYkñÒ~8=.dIWŽeqzŸâ—Ðvú[nÏÚ@°IÊ·ºÜœæ‰¨|prU…(畈ҕìéÌN·Ç¿¥,{›—Ð*æ{ûÌ„Ë(~~´ŠRYVθqêØ¾Î4ą̊‡êçž1•gåѼùíÇ»3‚<ÃW“”ˆ¹Œ_/i½úlBÊñ.Zþ(£ÕÜïÈyĵ‹8ÚL){¿Ê…HJš‡csO»‘&SòvÛ´ë—kä öÎ<¿vÑ©™‹!;~¥ùr&ÈcÉ_ASöƒ®4,4ûóèÈx}­îc&u ÛC¿¢Íh8šó¢¬~†«.Öí“oºÄ@æÕ]F¯)¦ýE³(6{O¼¨ð9gÕz¾Ru÷*Ú´h-3À{iüÃ`¨v¼õyæÛ}ÈWCýí362{ÌŸ2Øö'¹@QÄ#ž3¹ªHƯüʲK¿¶EjÀ¦K<²â7ü®0ˆ}=ì6l€Þzõ\š~Jr¹v;‹®”l`TI o&(¹zê#uBþìûm]ÑÐJY?ÙmÒÌyŸ#I/ !ú cn¦‚\ó(ÊË¢æÞs*f™Ñ´LÇBšäé‹Ô|*{”9vÌt¼%Gh2—’,_ÃIßxn“K|¢°l¯V'‹{yWbÃÛ1Á WNÚœ[Ëq›xÖµ¸|b ¹qú/F93äáõö¥ÒјÎí/Ê:ÔIH!ê"Vú4É;ô»“)9©¸{áΑwR9.DÍ,Þ8)’Tu—>þ1Ì(Ýþ#×4xl´¹c‚ŠbÚ¾T¬óOŸk%4ÂØ%Èa‘?ÿ:¾Y|)¬S mÃËš- üÞ˜qqî²Ô0€Ý¹äRV´^”–´s£í7‚¤CeÃX¾"%Ž3&^§»Ù2¿Ûí…¸§ýÝGï ÚM¿†÷³†cE]j¢r¢s_F/vKÛ¨?– Û³,àáœyaúÿYÆ^Glº'ÛmÑ=Y^,%6ü\¤à;?«…§¬?]Ë+»ˆýA¨";èQD9æ¥Ð[}úÙÆÕp6¡%ñ(°>fâ6»@§ßØKwXqT›AòJøK''õûÊíN‡QÓ~s:ŒÑÅaž"Lš«4*ŸÏÜt|á4ËøÇhu vœNàÇ#_©÷Põ¬4-X%ˆS™ò ìï”ü‰”œäœDRÐpnåNT¡ô»±I5ç’VéÁhÌ‚¨$Ÿ’(v“‚x›ml"¹49°‘O}Oe„@èý®µ¨Ð?>›<´Cà•a2Ê”FWL‡dÝçC½™õ¿*<ã|6LîK3<JïºÕ}*&¿ïuI—`Y•V‘¤M-–ï:Í=ÈÆ*¶*%ªes.Äo—Ã/QÕk½Ëp¯l©wd )nŸ¶í\r$lÅôØdïöAb¬õD´¶159}EXxˆÛ)‹¬¤Æ—.ưhÒÛÕׯŸ›¸@€E/ñfIŸçÊ¥öÒ‡Œûþ<'ru–žtj¼½÷kÛ ¶ƒ¿ õ+?hÚ±ü¼*vS‰Ãy{$È1ãÐyãÇ1«¯Qh£Oɾ+#Òc Ò·°ýFö\Ϋ­E{)ÄSª™z¥;m‚¥ÙÝ€Æã±ìýàaú4¶fWQ}¾,ªb)„_ˆþï˜=äкÑ&Y2ó/"°4ëGÚ6P´ë»:ÈN`?§¾“=²m8C{jéR.䥌’FÕÜ‘¶ Ò'WPy†?“ÁšÍäãå†É!ú¢$„Æã’ ‚ò}wߣN‘¾Ü\³4—ÌÝWF8“ZŸÛUƸ¯+2]’7N¸ba!Mò…lsh¶~¥Ž³¿@â£hÕè¯9Åâ†ÌF¿P!.vu¼è€_ñÙï™Jó6oõš5”{½|—! %Üò,sÄ•Ø+;5C’ÌäÿÇ¥}žàéÜJme4Grcاd€_!!b-QgêJ çr)Ì·¥×%Ñ êèÕ™ãMASÚr—Ðé0¸dƒGèúæoNÍj2blÐçHø?" á4m¾£ ¿æs6º—‘¹Œ”MöÄ–Vɵ`Z•å:|­ÓáäÊ›ñrÂÿ*O¡Heh>QØÕøCåaÛ÷¬Û~¹ ²o¾wȲº´ÛŸîŒcó@9j^$mÉç©«Öåj@Šíâ¶ožA>ÇꥵïÌÉþ£!3F9¡ûælam°ÛÌIBÇ«0&m “Z¯§Bõ’÷ë÷Ÿüaqq…©[î AH_Q„^ïKîY‹õu–Ì‚él yÉêñ*ÍV´ZMLï¸nb››Õîó‚²ÙsOÂÓu“7À¿+ãœÝ'UfIk0S³|’Ôñ 2“„ Ñ·‘ uÐö= «MØC¿…3ºÛôš±Z¹¡ø$zX™h4…Æeµï‹òGï Jbçvä[ÂZë;<9Zžƒ·ôŒ¿wFTHÚ—½oÆo3Y4³ V‘Ía> ^ WÉ jœ¥nâè[œ~øDJŒ¸,"ä€Þîq“z‰¦nƒžþ#ÌÁÍ ±–Ø )Œh½ä]!+ ím|Ì'¢!ùš¦Úä¬ý¿³ŸŸê_ɹ\Fö¹ˆ•3²÷&ö¸ãêÏÜÑ5@¤¢Œr´$(¿µ—42:FÙÞ}X°öÝá­ŒTÞYE.cÚÒ-¡Ð=·T Méÿõê{Ê{¼RQônò¢C„š§c!W}¯]­-ºØ ˜p3’еÑÏI\‹êÕ ÒOOg[³Ñ§Ÿ7{L71=ÝÔM]8¨FÜŽg0Êû1ä×pM6[Ú>!R<¢žÀÖ7Øt¢ïc¶U™Ìʯ(Ä: 1ûξŒ¶)u21™Âm /7ò¬á½ÂŒÎs<¬Æ×ÐN[¿|í°€©Ñ€‡ÿ@3%ÿÐÈ{ÅàKÂä ­|¥2Û Kx•êq—s æTÆ®¾™S%Ú…à\Ü_ØþD„¸³B´ßš ™0E¿Ë¨_|ª†Ý)‹_çdJ#0“n¸ºÏ€ŠUÞÝQw—„?²©_·‹,µ¼,눜?'[{ÍB½ßo†„b`ö³«7¦À¾¬Uƽ…¾2ìBíC$®Is¦ZÇŒÃÒnzcÌz­Êjõ‰¯ÕUÚ¬ÿ„-®–mí¹@/j·?ëïµ&j˜G„`H%dÅq*7˜D„Šc¡äø4©äÔU#Ï\†ƒ@YDÎ-ƒ;lÕŽri‰và¬Å‘´°Øè6CwÕ¯WüéÏË NßoEúѺì1R`¥™€²_K1!-â±$ïõ+h¨:ÙÆÓ9¡­{#¨~ŬR%.”%‡m¦»ŽóÒ©yZã-i¶ÿÎí}Ÿ¦km˜q`~ÜHçc8h¯iªØN´üâ+‚{LU;RµÜ¾Ìî­ÿ!ªgù›™ rñ‡õ°¼ã »`¯cüµo¢LNBT á×S[q_¤™øÒ¦#|ŒÀcyðή²Up­÷;ú¢Æ_nœê;©CâÑXñ•àSBV,‡Ç‚,v¹ðCd—H˜d/Œž‡5öp(2Ä⥒–°š ¶€”¼ùYN^dÑAŸo¥ )óSD¾ý×ÛüxDßÈïºB®J"b£’f'¼¾j?y“i%“ ½xhäºõbd¥ç]kòíŸ;¦ 8 ¥¯»•Êë}x†ª=R‰dćé|£gŸµy¾·Å‘xo?UT!T|ƒPÑânŠ¥æ ™Uz¤2pÃ+:W7< ¨Üžä¸~škÿ¶H™ Î2²:¢«­Ï Þ¯ž>XƒÛÍS£Al²å@Õ7MñYÚ^b®…ª¨Á¨Vâ^ÙÌ”–ñ+y™Ís‡*ÉHÏ·Ws™¾aÂçŽôWÏ>ñ•–|ÃÞ¡¸™Ô»!/ß§íÊ@BüíäW‰ ÷ÓTÎýê4sëc4Ï=ù†º9뢑Î<.ZŸCÝ–bèHjaèŠÒÑàËG#·«ØH£ÕÊ„ú¶kÙèî/Ñyã&äk§ÃÀKÝ6æ¸cØm¯6«]«ý†Ì1œ½ ƒ†ýÆ –4m•ØñB‚¡zÙ£)>Ž­Lë6ß­ž¬d“ Åí á÷¤D~Mw«ã3¥XÀÙ°-Ó³àÔ7*cÕ¶é_`"OºAv[¬ŒÇ“ܬ8»¿¯W ‰Pé}òA“Ç ØKˆøÉ]ص±=ðð^Œ=Ðx—T×G”²5t=Ɔ§ç’âP·úV~´<‰ÐÃåh,J¬ÿÖÒùNš¼ÒN_­¸ÕÈÖ´B˜SRPfN·`©QÕ3Ÿfá@BJ¡øèAÔÚÇ%^ëFû(ã×0Äq #žv“–­qVÏ:üròiIª9óìÎ6*d¤Ïe„îÈ;Y/ˆ½¥6ŽÉy‹¾ü‹ÈHÒèÌà½TÕ8—ÌFôF3_l«¥Òn.ãÐ¥VÕtÛ´+SÇCö}Ùˆ8†Uµ1‰^ÝZæ¤åE° Ñ—B0™ÏdDÄ{¹”îÅ:—Hjíkàáë‰òc{Ž.2{yÒ ©À’®y£ª|geoÿí÷AÙùÏÈW°óú¯ÛâÊ ²y(hµÖA ëAØu[^Ö. U énAHŸHóâ†_5—–vd„÷f6S¢Ü2 ì€hY4Iý퀪ÃKüímc©Œ Bmvõq$È â£'â Òwû0; ñ¯åñt;òHyóÈ ‡ ºµ6Åæ ª®¥É#Ô9›Î3”[.Wøp*ÝÃ~*깫VT“ªÉ²iÛ94B'.és? k µ€”¾%>;µ>y.™A%)ž¹@„[³ #4zû÷Àv(}ÊúIÔ ³éôL.¸µ¯"tË]HÇöô•÷þžåyšÝþîQ»ÆéžT僟íh€xˆ¼©ãég"j]>AÝb –åÐb+,JIÖà4‹z¤™ šX0}^öÃ3oÖ,—7¸V¢ŒOuÝIØùg`áŠêìp®ê€À¨7WB!ƒË)¼õ—1ïM®çÄ_iq“JP_,šG.h|?|ÄNž<´,º‘xˆæ†£åÆ•®åâý ¨Æüà,jw?ËĪ¿ E‡¡©umûî…“ÿÑý‘MÚ™½Ü%¬<ÔkPùˆ¤7æÔuH?DÞ¤h(9+gkîpCy:F 0K çÍK:é\ˆ$;Ùÿ®ø¢åÝx5´Çm5îïÍÊòUÏ5Û¸Ø;ø04ãO¼"^§\“hƒ0#íK¤ê²b/vÄù*¾žº³Çü_4 kHK¼qiöÈ…û×_ôMÖŽ#…¶íuÜí°âO^®Fž÷o4 ‘œ,e áKcªîØwßG ìjsê䟡âi£üT 3¼u­NIBSkkjhwm‚¸óê|‘‚üÝíªý³i~÷ÎÙ’P?œ…•6ûŸPGTšj¸m£y¿ÄK+ßÌo³–Ÿö…åœM| À­¤Fpä^¡÷ÊX:w¢sf^ê8x½–„ââµ´}éñJ(bË??48Ù›‡—ér™€zÞÙ.«™«V#Òõö{eÔFõz~kÙÔwë|'_'ÏH~2dzfSÎKz4û‰ßŸ?beà"?`d…`‡Çðuø®,—ÈZ•-ô¥b—TÒbs Õo1î:&pC´¹/`ë$ÒߺÙ0夯!¨® £ü­býIo±è^´©`§ÅZެn}àS›Û½n¿Ò\מs’\\›—­Y%ë¸jA§ø—X“,264Ãñmæ–ÇAÅãêO? æ.x-ê]n®öáÌD¿·{gU¾7ÚÚݺ%JÚC®ärƒ£»PY?ÓÐ˳Šò«Ÿ=Û"K2šƒß½(Ôëölæ>Zø)qI‹üöÿPñÖ¸^M9Ž*ò¢\bãv·„ðÂ…§@ Cf$,!BµûÒ^J%íZôЪÌൠ'Üòq°„“Úðxü®:_ßçÀze8ƒ ‹RV¶àB;ˆ¼­ŠO´3&­´‰G÷gÖ⣉5$)ëåÌâå|ŠvàOìÓ;òmY}$ÏeÚpµHµ œxµí/?:>Æ,qÿTá$ "sͶðXû‰QWe é'jèù ŸCî°À×î9oI¥ïo=¤ºf…-·±˜duE<|õë!ðìÉl>“ìç\+Ö6¥lG¤½Ú[·ðãI¬3\N^ÝŸD4ê<˜r:VýMì²õ4) ø §?žÜ«>aµo#Ám›Pä`VÛ#óª [-»0ÛÍý¤$øî.A¿Úí"†Å¶¢Z uUÆàŠ'RW¤ÍWO¢«b½“×À´U³-ÑiÌî'u‘F£#c(¦Ìœ†3(ø!ÆW¾'€úøÑME]D(Sß7ðrEtÁò|yƒhKÓšTpm&pÃç4΄þ9°àã¸úÐktã—ˆ6ö­i¢Ük74F÷yÒT±'j6+åà:È™“s'ÞS¹êCŽe˜ÒUak$ÇeîÓûa£êžC˜%En ))§Ó=ÉǶÉ·-%RG‚-Iß7”Ô*Ì`ôõ“‹0ÏZ:T´šø^Ál!}þ¾›¤YRºP¨j0+¹½PÀkdËÑë*µL£œôÛÔžoøiõ¼½ ž2õt¬ZÉgÛ Ê„"ªRö=Œóò™ùê!¥û2¶œ’Þ<‘íp)jcPb#ï,£O*yƒˆÌA0Ý6‹E%/ ¡Ôç+¨4”¦kŸydät"Lª®‰ã} R5(^7Ä)ÃÄÏO*.F•úKÐK7ÎuKJücOFþñÂHßÜ š˜ÿ&]J…ñöt³}1÷͡Il’–<¸^Æbã*º6€x{uÜ’œ†7¼Ÿ‚sÍýJ¥oú•Öʦb²Ô‹õ|ç¬]Ûfj§´‘ë+!Èb¡Û–z#Û´ð0 Š›<ö•ß„‚Õ2ÖFÌãš?"N‚ÙnŠk`´$Ò8z·ÅÌIÙ?þêî².îRá9i¡ðªÈ$[YÙ¥«Ê{Íð©RìS2~HNÍ¿úÄgô†Á ƒõP«Îq¬ÝðÅò«ý8ß÷üƒ÷@rý*23 V`ÒUTx6:µ†ðð•jü(±‘jÖ ^Û>ô œkùý/Í3Ya|”™˜à¤Ô‡€_ÜÆar¢Ê 6åF·&2Ô’’e‚["E§Cr‘žŽCžŸÕË"ëUŽ#ÔÍ´Yõ~\ê³”HÔV•Z­)e¼îQ1ÄÖŇgÖü2—_9Ò‹âúb¿2—£ë>&¤u´CŠ>.Ù&Wí`ÜT‘>¢S„-i°¸KBRE•(PûOàlõ!yþÚÚV uIYN´RÔ¾×al·|\qY ¾6‚гӠ ÒH?âŠpZÃêC–Ù?¿§W° ?¡<êEb#õŠx}MÆ÷¦Õ-z›Å1N:|7ƒi^ü퉾jTöT >“À6õDé¸Ð8Öµ6²Òª?ó(ÞR½—¯ sè L´ýií­"„u¾ÒG|¢‚¶,@­¤ÛÕÀÏV»i’LúûƒÏÆ»)sæ„÷¸¾³ÄQ”*)í’WHºENÿ§ë…ZNf%·*r]PšW]ïGiÎÌ·’â !¹£:8Ôvô¾ûN¾c. ¯ìÈ8Aæ!¾èqž€Sí¡+-.®žë"†þ¥¥þöKÈ9=—XJ@!Û•È=0—­ÞZ„«•ßÛØ©Eâ·Ù†¨ðÓìÝ{X²ÃÎxïjÇkÿm»ëzWö1úÖ_±TùA Ð©É‚ï ÎqÐï3=œ ³Ù‰"2o0VIŸå#»+BHÚ{A Yl\ŒÛ Ì;ÖRn8Y\¤ì²ÌµŠ)蕾.4áᤠ¥Ã6´ý†{ëô*qšÓˆ6¾3Kÿÿ' _ñIíÞ_tœœtÛ̺˜Í¢Ð?\{U·êjdÀµÍ_þ%N&ÝÅÁó€ædk.·HCtýŒ!ÅkžŸúÄ}Ú+s…õ¾Öyâá ˜¸Ø>®/¾Ób@…Ñø§³™]¶!Im,ksÓ„L ß²GŠ@Ý4ñ©fÉKÍ7ÉÀNú¹+Ðr˜4¡·[3*Øø?o:®J[¢ÒP à¼÷:UVZ¸<Ñ@z>–‚5‹…å~¶LÅ¥“ì±­“úy$Í€ rÿrǧ1.[J¦²ø &"4‡Ì¿.™„3ò\L'ÜÛç1ư_î æbãìåçœuT^Û5ÓíÅw˺duç^Ò3bZe7º Üäx‰ÉOîMAš%‘^ªq¯í7[Xеä[f;š¼¶”•Ç‘À‹nëœeI:egT¥P~ÂÚB|?Áß‹xË­6u;ºŽÃ¹Ã ³kú×Ê` 9"lMÝW-¸ˆxê0áõˆ¬¢¼w×ñø\% Ej­1_›7ܩ݂@_¿JÝOÏÜ-‡à)¼0ƒºÑÜ”Q½zŒ’`LZMN‡Î|9r×ïJÐ(‹ûÆHTkŠ>›•›‘×¾®ˆ7³ëh;³ýàŒ>S2ØXy¯qQů(YðéÉ“ q›}¥=KÓ¼‰šnMtë܆á8‡l]]N9Ñ ³EägоL›(sÔGå|_ñ„’Å– !™ýœàŒ²|pmÖ’gyíÈŒ…¾Þ´o‰#ožs&NÒÖ ¿gFÍò±2¹’=­$²û›¿ƒ†8—ì»nÃqAªæˆÚ@ #« ŒA6Í¡šYã`³úù›‘¨)ûLcÿÕwÓ˜¢˜Ô-œ› uñŠÆ&R›R)ËbÜ.¢Æ‡å’ˆnâ› ¼9=U~²Xq"ËŒ3 ÜvU§´Î!Ñh£µ];˜gŸæ´¬.½_ä½ ÈÈ>·î6Œ­D–êÆ–æŽ§Î÷~X4«m ²›± ä ;ÇÐ6vËÁË å!”9\cXšrìR¸Û¡Ìö’ÑŽ,p•)?*-âÓ=NPþ”œ‰_ÊtPUÊëð{yðEª¿°e“¯uX®?*i%=ˆ²çøîp½·xG9]1Y'‡£Uò¨ÿä£ÀªH€ª¿4{v!âÎ'lJÎëJc>Þ««)Ø›ëõ©ð`\ðÐ]òžsÑ_M9V—g|ä–‡|bì¢5àtâO¾ÄÌJÒôGuÝ9>(Ÿ ŒlÀIigSvž”c:UIìÒHµþu&íI!5ýäàrÛäLƒWD‡}=5[à‘@žr‰Ó±EÐ}}LvA¯XC öI¨æÇöúàîjŽt‰‰|2É Ëkj¸k7íZriRƒŸ’úò‚™õ©,Áï‘£–BÙ ¬n/IéoFW̋ШðŒv¬®W§dz°Fi'Ú•¼âóâÆÅ ߤ!¸ú˜¼a Þ$üuוÖ4ª|µQ€óçl”ÐuݹìŒE‚Õsý™È1+!ÀÖµ"!Gð©TèáJ˜:œ/é×çÌÑZR¬é¸âX45ì"­"¤$Î¥ZlÒ·ýjGòožaÇo¿Vù¨63 .'™¹­™ñ‰Ôínk(æ.ì vÖ[†ÏÝrÐ'˼_FLœÔÏó‹ˆæøiøZbÚ—†c˜K,Ö8•œm^a•µH+(3~úÚŽ­Ô²¹R}ðŸË!‘>º‚*€ü´ U vܼ¡Ø»J!ýrµiSf@û °ï@Õ&ˆÅò) —Å_ȉïZ›J×_JÚÛð¶Ÿ™,ÂÒDœAþÈë¬Þ31ЃŸ1ʼ7¯ñ»~E:o Z­Ù¯V'{O¬Âb¢ÇeÒ† #¼_¤û¨­Ö¤fÔ…ÂA–™¤ã®&Â`žÏýà…¤ƒz½õ{%›è9~ º¶›c6@%¡WV8öNyt ©0ñË!=^Wè¬2{……檃 ŠŒøV: l"È\„+¬}…DȺÄ$ä=—*G­Ï`ÃqCäzn‚Ø5^CµÍv*#n~Õ¿Ù²ûX;Ðq€QüÚκJ÷cîÌ¢&1R :‘u噕-0ˆF‹¢5HðL¿ |"&[˜V´¤œ#KÞáš( +èy+5œ¶–‰ z}ÉIàWãl„b'¹t×*™¸iäƒ ‰2®ê6_íõÖÃP&rØáS·öÃB@÷ýì„ðj­à cvjz:(:ðÿaБVŽâ«ØÑÜ^ŠU îÄ:y„éIï£À-£…iÀ²Æì ýæøB^î´«Bq¥ÎõŸÔD·+R^æ¶ÕÛŸ¡‰qèzšY~)¬ MD‡«q-ŒÑ¬sÝY]®®2å@|ò6%üòóY£ù¶Ї6ûŸj÷ÅN“ƒºr£§„QZÐä1¤ £ˆHÝkL@‰ß­~—¦”?šõ.ï³eCÅŽe*ë†KȕܳÅ#Aî ÕÄ÷Swžz…".*][- öÚCØJ~h7eFy1K˜tÒÈ6_<§97z6´Åø ‡KP.yj/– 'H ÷rO Õ´·aV¿³l aHâá‹:iæqˆsY¶I©c)€·S2ppScø7~TuÍ5‡$½ÙF“Dµ„Ÿ¢’0}¿¯/Í"`àÈÞ×Ê:oOB_JAÊµŠ˜æ¤ErÕ݃+ê²ÅTÊéÁ|{Ò-<lse(0Á‚*Iqe=𼾤Ä|ž­òA•?ŒHÅ[~³x«:Ké&>{Ócó{‚|uLì±¼×sê÷ú4¡–ã×^GëóÝÁ?~yÇç+ûóYÚÓš~ÓÂÆ < ±çÂ9$kaqN1)œ‰jÏ Ááˆ/Æëzf§3à­`ú$gÏf'}¯¸¼CÌËÌjâ[Ô+r~ ¨óšÃAÞrmwSû"ì"WWiݪb ƒXl4üÐ8b1Ôv,_¯äÔC›2I®Ùp¨Þ_w3#+”ÑD Ï/ïÐ{üm5%{¦÷â(×u.\ä± YÝ@[šQÄ1!¼ÌGý¿f&ZpæMÓu]¶;†D@P³žÑéÁ¤{\ò!¯xá¤U¹dn¯G‰S“6Fií_xÈŠšÿ4ªàÚpœ¡p)ßQþÒIeÚeË}îÂ÷Ú™ñ!"â Bd»Ýà*QÆpB%öò<nÆT›~û¼‡ˆÒY ܵY¾Q)Âûo*‹1HÐG–Ksç­ôúýc{®ª\W ¯Mÿسü‡º-`}ùö‚Ëûa†OAm®ú÷ë*†yáe4ÑcO¿–‡Mõ>JRA_õ(ü•* ·¢à³B:I9×îäd?’´˜››.Ì]HÌnÔáf Eâ—ZÛ¨fEÈqÂ)?åUGê´9Ïj˾ßÁ˜Õ=ʉ¦tBmœ"4èÉIþø,ÏRA ]¼„¡(IÉvô>l²5 jáW.U‚›MÌMÀ-«ê·Â¿ëцÞæÓ¬îÌ$`¦_;¹šñä ßæ½ö×—KÈÔõ,jÑd¿.šÏMìÆfÝ+Ý}à¶uu^¹ppÌ3ù&Úýwú" endstream endobj 628 0 obj << /Filter /FlateDecode /Length1 1690 /Length2 10286 /Length3 0 /Length 11374 >> stream xÚõPÚÒ Á‚wÜÝÝ!¸{pdÁ݃ ¸;$8w‚»»K°#÷žs¿ÿ¯z¯¦Š™Õ½Úö^½¡&WÕ`·p0Ê8€]˜ÙYØ’Jšrì66N66$jjM‹ð?v$jm 3äøCÒhêòj“2uy%*9€ò®vvN;;¯€ƒÿ?Dg€”©È Äw!HÔ’ŽžÎ +k—×:ÿù  3§°óóó2ý·:ƒÌMÁ%Sk ýkEsS;€†ƒ9èâù?)脬]\XYÝÝÝYLí!,ÎV"ôLw‹5@:»-Œ P6µþ= 5@ÓùË¡á`éânê ¼ì@æ@0ä5Ält¼VhÈ)Tà¿ÈŠ˜€…ý¿éþŽþ#üg°©¹¹ƒ½£)ضX‚ì€E&€)Øâ¢©Äá5ÞÔÍdgjöJø³uS€Œ¸Àôu¿烘;ƒ] ,Ý3²þ‘æõ˜¥Á’öö@° éþ¤@Î@ó×s÷dýûrmÁî`ïÿ KØÂò1,\YµÀ 'W œÔßœWÒ?6+  €›ƒt=Ì­Yÿ( ééüÓÉþ‡ùu_oGG€åë@_%ðõ Ébê¸8»}½ÿíø_„Äΰ™»Ì€V 0Ò?Ù_Í@Ë¿ðëý;ƒ<l¯òc°ýñùï/ÃW…Y8€í<ÿ¡ÿyŬ2š*::ïÿù¿N €73'€™ƒ›ÀÎÎÆ àåføþoUSÐß}°ý+¶tðÿÕîë9ý§e·¿5@÷÷‚Ðþ7—²Ã«rº„þ›Íüõûÿg¹ÿòÿOådùúÿíHÆÕÎîO?Ý_„ÿ¿©=ÈÎóoÆ«r]]^·@ÉáuÀÿ—ªüku•€ Wûÿë•s1}Ýq°Õ«¢™Ù¹Xظþ²ƒ 2  …*ÈÅÜú/Õüe×úcßì@` ªôÇ óÅÆö|¯KfnûúŠ@^¥ù§ øºCÿ[Wlî`ñDzqpóLM=‘Ø^ÅÁÍ ðfÝJ  ÇŸb°²€\^C¯3ú,œ‘þ¸X>«ú¦¿€UóÄ `Õù/âE¦ÿ >«Ù?ˆÀjþ_ôǬÿ‚ìVà¿ '€Õê_ðµ¦õ!÷+òt´~}~þa¼Ú@ÿ‚¯¥íþ_kÛÿÙ_kÿ+öuçXþ_Çuü|­íü/øZò/È`uù|=×Á×6Üþ„ÿs!æ®Îί¯ÓŸ›óz[ÿÁ>…@ ÐiiÞÁ\0Ħ6¤í¶ZœÈyoœƒ µÿ"ò QgWšÀí‡Z¤ÐÝ%gAÔ¢x×ì~ÔÝ&æ1GéK£­..›­Ñ†OZ”îR}œ¥Ù“Ï$¦ðý1DÑ•c_¡³Sß„la…{Ú¤>è~%6CÇät¾7—y(+DÓTySa}Š@Ûp‚3…€ÏÇljÒ.žÙ^)Q#>3Û!G¹ÿ™H"sx—Ö7ÂÁ½Ý¿ü… ´•Ftt„ê¨p•y$’zÐÃC¨`2 ˜¡Þí‘ÆøDtÕHgÕjRWcQLô·h=r÷Û•ûäøž“1úGÊy­AðŠ©äöxn}·ã•ûô&­gbít¾¾ùÑe†ÕÔW…ùjkø´ÌÆãmÈ!S SÃûå¦ež/í!7¬ÊÍë¢ ëvƒ³qÝçâ/®k§ö‡toSv"Žø:¿a›çãþ–ú©ÁCõ±Jæœ¯Ó +È“o…Ú9]ò<_*=àGTº@2Ü\GÌ œ¦SîÞ;‰§B™ÍÝH ÛTI„¹ iQëTlÚ×䤻ÀëñÃeÁ·ùõšïÛOT´¹"W½gìÅÈ‹ äC©ŽÄðê"0R‚û;Ðûo´‹§ý1¿QÀS`V ? ˜©•+; Ð*M«ÌÓ7úP!ú‘”y’GˆóºÂ{Ð ´VÈ=i„Éúä˼!D¼T›;#Õ‹ûÒ+œ˜ƒÎO±Ù3 :_e'»m—XGøœ×úÈJ"zî“Ð"ÇÇõþÐù¦xuü'Xs-Ħ€âÆv‘°ÙµšW£Ô 4{¯Š³ÒH6Ú»=«Q' ¿-¦8übM¡œq<´‹C¦ó«æÎ¶žŒRNí:Œ?{É‚¨ìWvǦc)ÁŠ|kb’| ´ æCa%\ÃÈoºLjZJ8¦ R Ž %X1ªÂ>”–Kûh]Š»ÚBOò”ôèúG×,]PTZ_‚èÐKu …?6Ë2 Í*A,E«“»¢;”Îè O]ÂÜžtu,¾µk†Ç‚qlä‹ýfõBI"×bZ›MÑÉU¹”“šoR𦓠ìÔ9\ 4¤#Tm¿À꬙sd˜}xKâU~ æ²r«UÒ³³wpÆ%ÎfE{«ã¿v æ´Û9_y. IB³ ²&¤`M…5*YOÀåvæ ­¦­hĵüx€©§%$Af$"1ß ±ŒAƒÙÃ]€îRꪷ0 %§>â4Žê>…ÊkÁ£?ˆÖ¢=YòcËy‰©©¢Þ®¶aÀLþŒ›! $ïœ}•:¾å«ÌWB––Úã‚6b{äæBÈ&âjt**Û)”#1¬ˆ©ÌÑ7ˆêNm(\Û—³G©õÆXš5 o÷¶s:bxßu7OaY…#oîúb‚šQ·ôc*0óe?hÈÈα¿g=r§O‚dŏà#Ò[3t°pC n|AìË™$·opÔ,cŠX8wÓžÁ“´¿i^=šGû-Šˆ¼íê=jã÷¥²Jd¨Ô;\aõ›„HWRÑj6%z+3ì½Â…•éG áÁÃ%ïõ‹âúàG3ˆÝUƒ ¤`Óv–Bx00Ò$Éù¢ ¬˜ÌñÅ—zˆ36Eã~Mg·vØt߉ ÖË•ãåŠË–~ÚÖSíTPÀ*Yziî=¸€ïLéðwЬ’â“Þ8yÒù­ œSÃÀ §v B+C†EþÚÜËâà²ÕK9H­Ñb-Eqù•Û;LØõ»4‚ZЛEX b©Ê×P<1.äð¾±B „r+üñ÷S!‹@àö¼»Üé 2ŒP`ønÛOT{f’1àh(<:¥|™/þªZyǦ*Ðâ JŽã…bÓM´ú$¿7Aè×ýð’ý™ã¬ü}mýÙQNMñ Ns!A[²-À‡GŠŒþ³¤Z þ°Ü9ØVX Þ/Þzú®!"ß û…“¬W‚¾eTQv®.|K9U.½ç#°²m¾Ð0:гÀÈ­õhƒý€«Iz†~„‚Ü'‚(1à ¶J¯_FÅN+KM.äÖ`?ãP;á¢dôk<‡3”D@n)ǸÈÎpÉì§Þïme þn@OµY‹aœé­›Ub@Á£o7RÛüjçZ1¼¿ÉèðQî‚íxÈÉÛz´ýç㱞֜ς˜)ZÕÏ06ìÔq BÊ~[A0!ùà h[BKmPXÊÐ3ŠnÅ'¿qýtB;Òo?…ÜÊòXï?kÉ1qâ d|&õþšÐÆCëµH›ŸodëaQºŠ©´à?½å2:’_ÔuZñ¾î«`ë·Ü¤(pï»%¶@èQM†^Æ^ÞIã Ê­O_â£x‰í“ž¬„©74‰ïTÌï¶Sæ|þ2ªƒù‹ótëÃ7Š« /±ú¢M„N,uKçø’5ío ®÷Ë’¡Á"ENJ_ê ×iDVÈLzã×ã O¸º[P„“ †Vêgî~ñÐrC ÇÒ6].c¤ßâÇ<ôߌkâ1÷ ×$hìkµµ®kW„åKÒ±#ù›½l]Px£a® Àh¬ÊŒ®8´[fÁÎTšs\ð¼U,+³Xb*åØä­EÖéÓÕ‚g« â )jÞ > ,~BC]†W*‘ &&›ØéKú±2öùºî”TëäÁ‘ìqü:p͵¹Å¶kÎû ,xì]øòZ+\kk ÄW™09ñÖê‘á«Î¥-gáC ëG"®#džÚ®jÜ1ŽŽëœG2Ö"}UonÛ¢ê鵜ûËP²2Çòü°§µlUjQÉÉÑß8©Äoù×ü»Åµ¯½r.·†d1{å¨õuÍ+呎+œI<ú±~=Xé)ç=:[Ö›»îú¥T´K|E”È+…§¡q™*Z5}͉rœ¾?®Ç*”‚z÷$C#7;zá1F¼O§>1Çáìœ"m‡~åž‚ þ|&t“Ö“/É&‰UuM›ž|ŽˆÖ•\ôaHæë||Çó®Wk¿Á²ú×-Ô.8ÃPRáÊà0„Uúi“ü¤ñ‘±ì1¥zräò7E–`|ù¾Ûq°eO” Åa¤D˜„[ ÛÒrïd›«Ì¬² 3&ú¬Ý¨Âx@ˆ2cç›ÿ^¶Á}wXÑko Ëg÷LƒÑà .hBÈäÌ]xƒ.£ŒÖÞ¡U”߆`T÷r]…-IKp‚mø¸:D3si’ùQ'y@;ùâr϶ܞf3r? Qb'Z,7`|"cŒf^g"ž• YÏHå!ª½ó Å ÓQ(²VO–6ޱã!A—9¹Ñשygà/’V}Û©}º´¤bv >;ëϱ2} 饄S.f‡ÙY}ß³ÇòQ2vAé#˜¾ð÷Ư7Á¼0µj¼ä–/¿8¥Ú.XœY’)ú5Ü{ÓðáÆa„9™g·Sn¸ôŠRÝýŒä@ÆÑ¶Óé=™ÅÖÙÃMƒýWÃSý¸j(þÄ:Í„¾/‹Ë‚y9R¹›éþÀÀ `áHJõþr.ï…—ã"Ša†ÁË}W—EH“"¿%’ZÝþ8¢âHË¥Z|€±?ÀëBBŠsjÀ;­lz³V îd\àÚ÷#m„»RâügF×ð̱¯ò¦Sô¸Óo…w hC-QËÔ}³ö oÄ`”·Ûsq½â&çè)²95ŽœµFÈrrD ÒÚ„B¬h¬–ŸÚ×ó+=¿¡Å£ï«À¸¦Ey"°r)Ôß|ù6\1Àw}…‹–µQ‘ø.Ã5=d“‹Ö¥3ª+°SKå¢Hy°ºž•®$”›ÜmÈ¡+zéÎÜê¯@ã‹pôE ¯î­k§7¢p>*þ9|?å¢aŒ¥Í©gÍŸD‘yBU™÷Éô3­}VI;Ë©ïP(?éýŽ^MááJòŒ_*3Hâñ>òó5ã±EÇV@ .žzȱª>âEPtÉ0§ŒL‰òÁ³c $=;Ã݉ºvI-’=¥îÇßur$^üœ4‚ãnÊ„šCÓ GÒE§\£ Å¢yç ^ƒHm•2?:$kÀ cl®dªP[¡:ô-f¢qw4T_¯ôír zèbjn’ UëÌÌöÀ/Åå„Y3v„w ­Ù¿óµdi¨á~Õé¹'×ìWeû 5Õq–£(,½(oÉ´+N¥C_ÍUO-@q¯7!Jùs šÛØ3ëúBùC¤L_Xò¨~hœ»œ —jØÈ,L:JCmï{M¬;ùVJÜ8 \*7¡ À2¡z™\,2pî(}n‚ŠÓàz=r ¬$B&1$Q>‰Ù£"cß¶Ï­ &ì¸îU°1cw·©9q¶JŠR ŒTATû$ÜB±ÎW6€9qfF÷×!~ó_éÓ’sô+wÉL# þqHž Up¢ku ÒÓÙßX‡ô•4X$K›SDez—µlÁ¸rBɃO§Nó“¡®¸£¡{lI]¯* ø¥YÀÑQ8*M(”+$Ù`¼‹HÍøäz52,n&ÏSXqY?âvŠï¼þÁ`YÕàzMsHÝ´¯‹®NÈ¡p²>[Fö‚€ë×NÒì$‘› ½PQ_ØMH'-@Ds¤Ò0|ý4q¿Ïò ­›(¦b>¿b’›_Jßo,_Aèò˜¥g¥þ Žg>7K€Ñ31yhÙ/Ò¦‚‹%é#üí6™¾WÑà—+Fæd!k!¾‡É?s…K‹ETÔꦕ·ãq°n1ìj‹ycªÞl0„Ç7ÒÙ¶ªì}š ¤˜[‚…ØC³5Îæ0»â¥”å[ò„þ=Ú}×LjŽcå|Så$½Ž»ñIxŸn e%~‘˜g[;î»L7Üe8â…üãåe³|bÐ<²I’xoI iœísfH¢Îšxð€ ³´¤ËvUƒÉBé•S¡uºðèF™0°¾¿$i½‹o¹ìàÖ¿‡«>`¤ø%!d€ÇžIÁeÉhT¢?uØø‘d‚܈^Üõ5ïhÜõÉùýôÓ|µ,mqcâ¹Z& åcE»Ôw×NˆÐT-öƒz½ÎŽÝ%"QCŠùøG ¸K}QEÐãA„mûŠ.òÏ0þ;½÷»ˆ‡²÷ÌY'Ä[žë06Êü÷9èÛ ØM¼*¿_Òôã‹Ü}¶E+@Ù~DÆÓ;g=º qÿµø•r ñtf Ñýä&@0¶(ö}€'+ÐGÍNÂÍæ¸cЙ‡b~Jub÷%Fu¬®/ª³rDzÎ>ûÓ—ê‰bKu:bü=Ã,…ÔqîÓØ³LtÄyfGìè×ÊK…²½*=¢î˜ßÕ„kùþ­þ¾cƘ\ÖÖ2¨ü‰’†º´áŽ\>„ƒ#‹ˆ_L%x)x#Gj1À»Ð7GIÇ|uƒ#ì9ÙW™á½s•wÎ.p“+],PëL)¢O½ÞùCÙp˜*á<«l×ÐÃK(Rv 4¡xïØHhÆ’pÖòkÅfW¸´Xãü\ä'«nÖDÊgÂË’,p°ÓD @l$bdRàˆ,ù~?õ¬q“‹X®4hB«¤Û8x€«ÌU=Yàôüú?–kZQ…¾.Còäû´¿<}¿7‘ ¦¼0Èwöz¶FÝ!Sæ¾1ò«’}Áï®;Acéó´ ÿI ãÖØZ"Sü¹Fo7Ç›óçÈ÷è Ë:h^-rŽ:,®¼X°¡“Žü-jIik_j¡ãUw0k“9 ¡óIÞÁ¶‰»;(ç¥Ï^IG­ÇyÎÞ..œûlï¯\X9%Úëh5CRP,yXà‰` Q9£DB•´®Wá õ¨ò;¼¼ýÏ=f0k×LE—Ÿ÷a¡©nfïWy†bÏoúb"3^¡†…Õ&Æ1ZO$·w|ròš;r9À•ŠOZ—A³=uyVC» Ç"V;–°{G×6Ì•¸'².l¸æVátß}#·ÞOÔ%ÅðÈ«Sº²ËèU"[°|)[)²uÝ|ƒ‰>¬ý¤­]J$ 1¶Ýr˜Ïi„]Î £€)o2)¡5AÇ ú†Ð^¯gñ!Êx’jÁ£ŸŠ³w”&}´5®»YáùâÒgp²iµÄÙ`d®=ÏëÐÜñ1_®Y›BÐÞäBx½„¸]ÏÏK1^‰Û’,kRÏ((‰>3ËþíæûGŸøðRd5Þes&tgVŒÄEDüV^ÿf¡ËTïMÄ%L£UÆR6ÀŽcG“­Ú®€¼2_®æm¿@ûøÑü6¨Š`‹ÚB茇Å3ÑBY}IŽ““4§å†ÄrÈ,ÕªJr>V+máÔb­]œb­^Ábi±Vë`åÌéA`·ýusß{â„ ékØ\¥4õ<„Nºÿú¹È…Xcï®(TA£=:Ë%¶ÇÛ{êÎЧò¼:ÝÙ‡À$ÜÂØ†¾Úá:¨…µ¹tgXÉaí…á'daYø^%“JΰcU#uV™b4€æ¦÷­ÿ}ù Ìh -•Fh‹×>»k@ý1t 6œÐ†¾°Ùöw/åT«×,Ç PSñ1ÅÑîƒi~É •6Ü0¦ß°¼œ‡ÙfWºd¨Ý±ç$Æð©Ý¤Ñ$*è>µè­~ÓMö"Ë9ÔÌÙíÒ¸åØSCÞ]’³zkZÀìì¸8±¥júá>ju¸ F|ò £d³Ûõ–Å^jKëÝæª¦œl6XÎ*_ß5Rð–58½N7Âd°m@ ¡Z«7–`°w¼îÌ‘óò2§{¡ñÑœùZEUfRHþ†þzA ™Í#6MeLµOÀS•›Æ©¾&½&§ãw±‰s ö|vÿ½.³UΡPØUâƒé ìĉH GñÛ«Õ÷üB+é®0AêÉîcüáv Fb½7ÍùšÚg°Ù´Vü_l:8d5ðÅDߎÍp8=û¬²£Ïgy½‰cxà2BRpÒTñõ;øís5‡©XQ3»X‰~›\¥ø¡9ö>Âóliþ}в¿œDû”Ô¾cþ)ìǪ6„ÙáÓböÆŠ{©„¸ÿì,SËìeŽi ò|6×}1S z¼ ÕQcçÄ29´FЉ}¿,ü›©_h©üñíbôCÝÜ,Þ»¶š EúqR/2L8ç˜ûcÐ”ÇÆ‰ÿf ¾ýp͸†‹ÌÆ@×A«ÐÅ)ç<:Y-Ç[ƒÒËöì“ý ßßá1>/¼çй†ÖcáÔNÆ¯È¦ŠÆ2úuÜwÓ+©BeS€©;ÚÊ ¾we7Ô0 ÚÔÑÍwñ&œSQ£ú‚-^EˆCÒÃ[´˜-%&®RùTã¹Ôp&iÒU‡0ÈKS7­Ib4É?=Y[l™Îüà¹UÑ{jãyô]$(„–B&†¿# *JÌÅÌ€–~û¡OJ&YtDñ„ÐÒ(“Uîq«÷ T¯f¾.ÖWú“i5y2d¸n`NÅ»•VÕôºž¸õb)Á@ GÆäCð¸=;p'‘Ùö%³’ˆvAâÄäHksk`–>Ýû9mW¤tÌòéNìÂrì>¾Ð¬M2gˆ£á·[–"ˆù8`œò̄׉áRÀœ¹Î|L¼*eJíþ1?ð=Œã!„eµß¬‡2|ÎWUu«B¡¡KûÓ̶ÁÜÖ÷*hÒ˜¼_Þ‘c(Ï´8¤eD Ó o7›áÐZß2¤ÜåÊG/·_d* S~jÆŠwˆëG}›dßöSã/c:ÇŽ6)l»šhó¼„8®›êàš?ŠL‰1ûêò"_Я¼­]ÊÉíiosbèdd¡ÎÊ~.²æ>÷î­ä‡•šyzv›lð Äï¢C—V8*7²,;ÄÙ'u?íÉÔîF­#‹—ûeJP.ô-Ž«1rÂøì6;$Ô£¾{½D½N†‚õ™¢ØÈ¸)Ù]üÆ]o#oO<ýW%?0Ö¦E³$$e%0l$ VíÍç;Œñþ"ZfN ½T/kt»#ôr[«ß/™YB÷6%Ýó)§â++¹íº‰ t5B¡ÛÊÜþ9Wq›ŸYU~Z°Ó™ËúîVõ×òA‘á*S±Æ…‹Q ÅÑDÒËx¢…×soðÒG³~IK:‹?_„XC}Ïg؇×d.èxÊÏem70…Xé ¦1ã§nÅ:DŽ-u¹Gº¤löѨOŠVµ•´ù¶&rUÍÇBZ¥*43Qî6‰\Íw¢/y',èe¾¦!{‹_s¹=(‹2õö9ÝQ²¶Ìnxöa ôgéžß­ë“”¹€t Ér)qa÷Y`Îwºëc ý“mƒš;•òúž&ß®ùVþ§;ÇÛ EÖ0lúÜh‹Ú[7ÖÚïÇзÖÂéd. »ç=Ó4áe?}ðºÃHÜîÛ}07ë ¸ûÜò†æ%qŒÐ¯Tm Gý‹a ÷Ú&’¡ÆÃãâ8}£cåÊefç?øB)VK•×­^2Ùƒ¢ó¤2ØÓݰØU®Ø»Qˆ§AS {5³ H#7xí!ÞË¢îFãøþ}¿Ï<Ìœ›ˆsáy°b¦gˆÆ-š–sˆ{N#¢Òz~´kŒwå¸ÛÑ~cÃ>‰S,rE4Å•Yô®Nã|ðô{\½§Eðõ]…LèS¼>Dâ¶²ZЊùh`’®|Œ” ø†[Peý°‰kÜÃÓš‹ž«–THÊö¤ïñ=-ÐO=T7D(OA5ÒÄ¢„"…‘Ôøý-Qœä'ù5¾k›Á‰ô±#L¸ žÅ‰•"Kò4{Áë1h"#÷¥Táx?F’+d*~Àw/~Ž8³OôÍNºŒDŒénൕ+â×JOæO×1"X\BègŠÔm¢ Ã;×0·)ÂÍ S'Çf,±OÈf\í²#š•üv¹-U±‚8+Ø¿ ݸÊ$XDܲŒ‚uò}áã·ì<ókˆJÏjGUº<Ÿœ]Ío@‚{ ëž6d•L…ì 74Ÿ ÖeôJspË:å "{”ã00÷üP0 ñPÒe¡ð¹ K_#=å¶´*tÍÔ¹D‰¨øîËO+œZÏl»ÿFÁ¼d`ðtnl?ÇÝ%‚ügÕ{]ÉÄÚµ¯y]2R¦{? èux_`Í×”õ$#—ˆ)Ýv†Šß–Eͳ<¬…o r…yÏ—µœôª:)A¨úÄpv%©÷ù”‘A%=$„ýøà{âüŸD(â¹MÙOnäü “xÆ2=MÏðºîBâÝÇ÷rHáôhaoæ3Þª§-}^€ýuÐguGªž»€HFúgò -9‰æš_yUn•›·½òÇŠÁ?¿u¬N€Žø6Ø~¦N}DšOßMÖà>zÎU§ç[RÕ¨Vh@é³1Áø±Büu–Ü!Ö[]Ä/<'»eòéë&0­f*úK€u`€'‡~¯›yXÈj§‰òNs7þô6¥¡†™H¤fVy?'—;>NŠWq2|hNTøxçò)S­1.¥ZB§‹Ì¨F®ö2‡éqƒ@yj'sI¹ 14!mD¹\gÃ'ׄ­æ/ó†v¦4Ô1Ï+‹Ú£µã½M{v»5dvÜLÒU=1“}­UL¬³Õ3ºY‚M/›‡k ³6±Ÿ$áŠÖôHj„ÍqÒW¢3gù®êŸ=y±JBí¡ãõñ–(‹[ɸ• ¿‚ ø‚˜ÖüpB0•è=× yˆm+MCÍ0ò>”ón~YÏA‘cªíðÇzö¦©KaìôþÂÏ}ßwRT/¿ó0¨Û[Ã|χ@¦ŠÎnü¬ÌÌ/Œ¥ÑØÇŒ†Ü^j¯·F PwT\‘C¼l0優]§©¶xJ öýQµ$HÄ¢P µ·ås—: ßÄ>`D@›s «Nf'(J¾g@D¢åYëùŽ0^l'µÐ鯜TëÁ‘ZÍ0(ÈDX ‹8?QŸK„¹ ¥Ú~'cvÅs.aíJÜE-{„‹7ne 6]ܪŽÏGÎïÎ_䌿g|¤2U( R_@Iu¿%›ª1bƒÀ›^îÔ!çëUvÿÔCãf1BE¢L\ÍÊwišù¥-´N^iÝà_؉(Për´t®Z—ÐwGšV¼Õ©1a¯[…o8©æ*vš6ä²ä?hå€t ¸J8 £áyz§ì.)µ(»îDŸÌÞC»›ÄõÏ:Q¨î†,ut⛸µåß—Úø¢D¸~ÅñÔ—ez©Rù’ól‚+VVhN­4ø´°ŒlCÒuJ,ypíˆc%œF švï¬äÈ6ó¥™wÜÅŠ’n\¢àT˵-°¹_eËã"²#)‰8;$RHc ƒ¬ê¶Cÿ-zåþ ?Õ¤©] ã_{p6áûhÞ— œäš‹ƒQãO‹3;RèF{eßùðâµµ˜Ôß®'É…Ý~§Ë »KùÎÑ»^·Œªk|ýÜÎ3“àÃìäæAõ3uìü»]<=“þ\Jpvþ›)û]Ò¨£oËOldë䃘”x/¿åKDßÒ4‘k q~<äØÕἌñ„owþ'Qö¤1#u1o+htÊz( BqÁÐÂXƒƒ·r— ‡ðÀêÕ¢c0œ?ľ‘ c+A¶Á™ß´ÂpÆBÞ[.p3Ó”¥@(^GÖjébŠ>»ðÌíH ôßgÃûd®+†|Üú2‰ þ;ë)¿^h \åç뵚+ì¼›¡º›ÞPd›™’úö.J›„øJ[üecÔbÂ9ýz'⛘¯þŠ.Õ#ô™äyKgUxO1ãò¡êÇpæøö™eÖš™ä1¹œœ5^à{QÖ#ZKùåøöj»bóëm—DO(»)q#‡;±ìZ::u‘Jú_fµ…ëÍ‹ðŸ7¸8¸b ®®ô›âÓÂÑ $ C™S³j¥ƒajYQÈÁ¦}3좑X“ƒºïÉ ÂiR§ÏQñV;~3KêVë'Ò¾x6û¸I\.<ì»Ù\M¸‰NÞIžÇ9$RV}ÀÀî7Úqªà£,ßhÕÛ©‹PmÓ¡R‡ÄOÎy=Mî¶=ž=ª‹%ãlæ°s³Öð”ÈÁwô𑥩à‰8˜‰MÂ66-éíL Ï"œóDÇÏA{[+$`º- %…G6'ÓPâD,p±æ¹wíî; ÷P»äWù¬ÍBP¶‹c1z;6úÊšP)rIȲjO, ÙEQÌóHî\ºä²µ×§°üšQ(¿žWÉV´ñÌ «õÒÜ̆å<¾7ñô÷tZÃgnï,ãlj Z[ª ¢,–âÞûœ˜æ%ZÆ÷©<–™Øî’²sÍÒhŒàøÎG9q ×>‰Ï‘ ÓŸ|Ôu¹Ù%ßþÝ–¶ {Ž&ïËöý#hQ 7q½k(P”[jÆåÀ¤¼iødâyî 0a ) á¶OÈd~à;•7F"á]ùÕDW+X2´]wÚ–í(ØÐfaÖ—m~8=EÕa‡ÏÙóåx²odµËƪiÐ|4-ù»ž…ÎÎ Á=Ôõ@#=Ú»± J¤ƒš?ñá Ôî‘»ó_ŽVZ÷þr“•.§„ŒkêqÃß0dP¿\Ë4Gm¨Ô|ŽQ¥D`giD£870*Äì.9»mPû¢L¢±¸ÆGÁ6í @œå•]ÉAÙÒÈ6)‹ëÝ»f®ÉÃåjÏžõ˜î?“]ârlôE•Wš¼{ 1ù{ÚU{bµ’{gÍÈÇélºOm€n«8˜h³p›/Öai‘ÇY¬·Ž¹¸Òî Q”ÈíTxCóí¯îŠ4€$8ŸpÝÏKÚ;‰ ¤Hö¤ìGÐÜ|6h<¬#ùQT܆åŒwt€`ªÜœŠ¹ñUafX‰™TÄðD¯¾ËÅ×o#j 4]îI_¹ÜøOcÇÎÂ$þKAÈj²ß`m 8/‡Ã›ï6>è~^³ÅmøpÔnöîuOáR¼&?ty"/$C» .÷ 6/·;tiC9¨{%ióãF51–×è’hàÕȉp\••~Vš±Ig͋ͧsLŒÑÝôoŠQÞo†Ò_Á5'\õq&:…ýï¿DÜYS£Œ¡k{¨n½3l:ʤt!?¨Y‘ Q¡ÞÞXJÂË÷˜Í0™/9fë%ãö”0‚Ðã•E®TÙöræ$ô-ïç»Qc.t‹ä=܉͈ Àxüb»;Ðù¬ SC3}—˜©à`Ÿæá~7»G&‘ú¨HÕ»úÎ]adw ñôÍ;›KS¢*\C¤Ÿ›€Œ¾kë®ú·‰#úOQ蹩ÕßšIsô‡[ëôƒÙlÈG]©õ:tL˜Tó߇8НŽÔŽo]<àJ`«ˆ¼;?ãh­ËÞ›è#RÁ¨vŸtä\Þ _…\2Ý‹, ®÷¨s“¥ïÛb!Ž?“ tØùköä6êõŠ1ä­K?¦„Hw=þ|3$]YxÀqµêvŽM¿.Ð×¼ÇË­e@U¼õ¶ŸSÈÐÊ–Ø ÝJ3•[o*Å´b‹…ØQk¢ÅüÔ—·"´ïмêRZf‹jízóÝ´ Q³7!ø#rý’™7 ÖC¶MG)îSJ4éµì>ÝÙyVFÿ:(—8ËN1ÇØ¼Áç³ò×O¨/}efxÖý“OÁš‚!Â1ã*õaÛ) Ú«uæÊŸw}™†í`AeìØi•‰0ߎ8â8J£EzIñ¿ øÅ§Z‹PØ*µÖ´Æ'ÿÆ«t?5zùÙöhõ„úÿó@€endstream endobj 629 0 obj << /Filter /FlateDecode /Length1 1829 /Length2 10460 /Length3 0 /Length 11609 >> stream xÚ´PØ-Š»C‚CCpw'8w‚CÓ4и4î$H€à.Á5¸ÜÝ-@.™™;3÷þ_õ^uUw¯­kŸ³ö¡¥RÓd•0w0Ë:ØCY9Ù8„RÊZZ‚n6.4ZZ-Ôü—Vììq°úW€”3}¶I¡ÏqÊöW['7€“Oˆ“_ˆƒÀÅÁ!øŸ@g!€4Ð bPf(8؃]Ðh¥=!–VÐç6ÿù `18ùYþHHØ!  =@µÛ=wmš êù_%D¬ PG!vvwww6  ›ƒ³åkF€;jл€ÝÀæ€ßT€và?'cC£hYA\þ´k:X@ÝÎ`À³ÁÛ»e{s);;°=Ôí7?iˆ3ô|ìžìÞ¬½ƒ»½÷_Àbonñ{sWGvm{ˆ“+X^ú¯gÚ?6K0ÀËÁÁ!ÀÍ ;À +ößåµ<Á8ÿ0?Oàëíèà°xì ±?ÿ y»ÝÀ¨³+Ø×ûߎÿFhœœs 0[BìÑþ©þl[ü‰Ÿ/ßâ0àxÖ'€ã÷çïFÏò2w°·õü'üûe—RRRPbþsâ¿}’’oV>+77€—‡ À'(ðýï"j@È_$8þÉ”··pþÉõùþÃ×í¯ëgøk5ÿ]KÅáY³`Ã?7äàå=qþ? ý”ÿ?}ÿ®ò“øÿ’uµµýÃÍð‡ÿÿãÚAl=ÿ x–¬+ôYþÊÏK`ÿ¿¡oÁ®¬2Øâj÷¿^y(ðy $ì-mÿ>Fˆ‹,Äl®‚¬þÆŸfíß+f ±«9¸@~¿)VNŽÿñ=ïÈæùÝpyÖã.ðóÚüwG{ƒùïýââåžhÏ2ââåxs>/¢9ØãØÙì Ï)€çé|Îh¿/”À.ùÛôâç°Ëýƒì*#n»æßHÀü=Gšýƒì ¿Ñï©ØÍÿŸ{€ÿ†|¿‘“ëóµÿÀ`·ø|îkù/È`·úä°CþŸ‰ü»Ô3» ç3ûÁçÞÿ‚Ï}ÿ†<ϱŽÏ-Øú•ó/럪þ'÷™¤Óßû™£“«lnö/2œÏVçÁgæ.ÿ‚ÏñOÁçëf‡ºÿ›Üóy»þ >Ïéö/ø<§û?ë9Ûãø_Z¹:?3‡þ±ÌÏBúþãaƒ=À ´…Ypˆõç¶›j RwÖQÑ)Ú·)Œ¬Þ Îí®wXȉŒUAkÎW‰ƒÝ8Ë[2 —â‹”Þß›ëÃZÔ[ï}~™ÄiL촢Ϳü:Vð]¢¶•ŒUK|×çÁÉG'о¶C6ÇÉUK-ÿƽWΣ¶¯tiäÝìŽúnŸ"ú¯ÒIÖhí(ÃÀ¢iÚ\³Ì"j$(+9 Þ©öôåÕ^öØ¥B3šïQ4÷'oýu®˜Û¯•r-.—Nbb}"røK¼‘ :oÉý$Â9ïâ¨5ѹ,F6˜yû®¼SIsã+öOT\¬rsÌ~g…f0üµ•:ÛàGs¸Ë” ZÞÆSn•¦ûoãj5 Ám–zßk‚8^ *}î¸Ú«bV•è2iVË´t:> ¢‚fY­yK2ÿª×m¦[ÎfôwøœŠ‡v_ñ(ÿÓöS¡Ä¶aü®P“>ÀdP™yfªÑÂQ‰¸K2¼#UÏÒ\²pÇmó¯õ¨X9ÝŸQÀd÷)«k2.‡™Ø&ŽR».XôQ†©â— ¼ZÜå‹!ds¶òVíü)Á±›«ÅO¯RŒv¨0“5}ÙÉE­/˨®('ydtD0_§ªg4L!g-ï\µ“&P}¢.°1y?õŽFcbÊŒp&e²ïcÐ5Æ£xJGÙêhZ‰†[ .eé˜`rÁ³‹7£œ€¥ÃzœŸ>|¯… éX¦ D¡Föiê Ôú³ô›™@´3©lç6Êj{MæóÕÅq[èÊM·Q@‚äå9ü޼!_²èt\^ÝaÀXxpc^LÊË…a‚›ŒªíäÏ]5êušL&J£žÛºC–LíT¯$…eÍ <ï1ÝdÙZ<ºéÞ.ŽíM‚" &¾TÜY_T /ÿÄü¼¦•ÁjeÝ”2Ð"4ûùpÄ Ô7•çAzë7nIaC„ÀáŸfœ¯Ÿd4Z\GÅÍmõ“{÷ÐÝŽë¡3ÆQ2*C~$+BÈ/Ö©\ký (ÂUdŘæT^FtŒiBaœ­BßýÝ$è;wV€ôH¯f–ÇZQÂ%Z¸ùÓiok̵騆ñ´'¥”:ŠgkxÌêÖFC?7±k쩺¥,Ú8ñ'7ÛÏj¹?šJªóFº:цÀ{½¢rž¶îhFn-¸‘Hùtw¸‚‹õ6Ǻî¾Õ Od;õigÊKëòðK†ß:µ‘ñ$a\KQ…\öÈÃ*RCú=ù¿oç!·ÅfjÐïhµ#G´†ŽÃ{ƒ3ØOÍŽ"½,\GX-úe\^^Åå—7MU¼2${%&½·ð¢zõPê¶¢ïÚ¶£¿K­Ó£-3˜}ç^qóÀzK#Þê´8€{Ù°lßå™SÐ5qF:jÔ’ž ¿ë¶IøÀíßÉÓ;™O¬#ÀsCõü? ¯X­ãaó6 ~,£‘XFÄT ¾Ç‰à®À˜ï ýJ(]ÒE ¢Å¨išO]ò¬R-ñB<üxLˆ;i¸¥¦~*y¤³ÛÇ]l—úT)HØtš)úÖ±0œyËv6¶Ë~.Œ’Û2§øÿW¡!õ@¢.ñz5¿IÖ#Wñ©é:†¤.š%ñÂÂhÁ •åc˜•ôޱɰgh-žb#±ÆRƒ—xg·ò˜ 4ÞÈéå@§LI0CP° —•2¬i,Ê3Fá=úŽ4‘Ò‘£œV–¿p< ‹fÙ Wo÷ä(OÈ¿vHÔS£¡Ú}]­m½(•O4z¡êÓáÊf¼9¡‚»çzN’ánfz4!ØÂûúsÁÍ*й‚B(Fuï)ÇñŹî‡ÂÓArÇ«lƒQèùÊ:>â ë>¥1í|á™)9ý%‡–.‚¼7*e(Ÿµh.ñ܈{ä<ê`û§ŽÅ”Öá>þwÄ7)_Æ–Žðûn…¼ï J°/³[ÂÄlßÔµ¥2ž%ï ĪVZäÙéÚ³DÖR¤ ¯%cª¥ÁµC óƒFºtX‰Ç’÷Þ$)¼äýåd2_ÂW+¿H“B×÷¼fí‡=s%C)úzé[PfÔmž¨p„Ç¡Ø,9Žs4yât>?z‹yÞøñàD)ðK­§‰ä¥w—HÕ ªíŽÃfvùºzíwûd^[öàÂ:³¾LÃ"ÉÙw݆=Ï%¾X7è‘Þ7ˆè^.›º“LqÄRD Ê[MÁU«ynÑ|¸–6=9¾Ø #’$GûâHíùiùÕŒœèU6óŠB/Ë!Ú¥C"¥pÿ~j£y˜ñ{샥ÌÀ HÃ<Ù¦eïü6›ÅD'=ßÁßuÛ |“àjZ]žô‚Æ¥*iAãGô} NÂð7¶·ïgÍF"™iWòcþš%Ø:¬)¬R‘VZý²Xh‰dPšïAøcû'‰'ÊY$sÈ\ܻ髶ÑÕÆù6•JwBeØèJ” ‹ÓÔJ=ÓOA¢‘×YšÎÖ÷8‰?Ѽá…ìž¼³aÖÔô6¬3°ƒ"Ø/Œy­JÊÇ[ãS_=ÈÕ«5®,ó('7ŽâÁ^V„Çíyšñtèßÿäh5“‚>°lð²`Kè>coÙä‘%¤ÜN+ˆÌ+ø´´†õQ‚ÿþ‚¦ï¢¹=Ÿî&÷v\:mr€x­›]}l rs|c ,£2¿ŠT0¸êa«¯:œ“|Jb¬vÊç£SÓ49Bу/åϾvYØz—³è|EãÓ}ÿ‹ÕÔR¹PªaÉÔH,Gã|X|‘_)_5¤s|òÈè?ßí„ &‹:šcï·‹®D"p÷[Kï<¹ $Uœ/s¢}ý¼AÒ³.:“!  A âëzêœåB+‹TØ“¤„ù5ÛàË.»Ö¶Ãöæ¾Ã·Rxã ë—×;€PÜrœPø1z{2O='ëx¹šuÌ1c\.‡±Œ™ƒªõìrä-ô†õm`ÀgÍeË/Bðª\cËÆ{øiÄRýŸî0FAA¾âãOEw*b€ýNEýÃü·+ðôòÒù°t`ßy©Ã?‡+àJ©‘`]zþGš©l£[xéÛ>ªixÍ,GØë ¤ì&€,æEÀÚ!Û·á®ðœRÌÚΙîÒŠ.¯„_Ÿ‹!©…h›IÐ&¸Ž#ýÏ >Lg»ºñ4422°µ+¤Ûµ"¡ö;Ô-tv«*#l¶qìfËòælç’a½ø•óH»/wøY4˧±æ^õÏqVݤHç¼!qE™T’FÆ5 ™ýV¢W‡7ÄozdE1;Ûã½C–b͆h*I kó¥‚_P |ðE [üÞm§ çøŠ: «½QåGCFÇÕ©€i×mÛ{C£ùIìÕäaEóªêk z¹3Ü|F*Þ&þ[)ú“ K,Iµ¶êap8ã…’ÌpäÞ¸+ÄÓ­]ÜñË#y4.|ÊøR6‹áÇÓêí6í©ŠµØÏµ9 Là¨qŸbÅNµ[ öpœ³€Ö·£™‰™Çi“'xÆÉ+úÛò¬‚ù³}Ñ9jU~øÄ!! ñò§z[›Î”eXªÊ5¼ßpœŸÊ¨ÂÌá³-¿mŒx°ø†°\/½<ÎK“}c/ÓNј¦K!M};…e” û`KC‡‰·>çÖΦ÷Ú7/§ÆLû^žHÓ;u‹Qô'|Éä2†¬dºMÈ*=Zá^ žÍºwÀÿbš}¬JäÅÊ­q¹»Ð¨ÿÍ 99.nrkÐJúñÚ§ZB}MNê @È>²É=¼ÅÕ|å-êóÑaœ.†ã¡y­õ£0ø]%§‘Î(J¨ø¦ #¦Ö4-ç]‚T¯g {ö„RÕÛGÌ=Íàç‚‚ˆqDrÔË_P‘À"¬’”OqMŸe0m›^¥ [TÜY½Xú9Ql+8âó8s@Ð VÚdàÕyßW9ž02óa©WF´Z#¯G‚Oñ|Yº4Q ¨ü™ü»ØÎ 0PRÜR ;ãüï®ÏÉ ˆUó»)k4nÊôÂðß "]&ifhN—òÎdÙ2¿ÆúÓSÓd‹ÍWµ£]©×ò£„¾¢øÖ$Ï‘ù‡hõ/#c!.@‘Y"÷äg7W8ÃÇàØØdª´w•{ö™w—\#ïƒÅÕã˜`ñÝ&|§y½¸íÖçÓÎØ¿^WÕ–g×™`GœûuŒËYœÂÊ•Æ%ð| bùTñþP´÷þ†6w±Ùh[&óM¤…ýàR€Çû¯dugwÙJì”ôÍ~¶ŒÆ­Ÿ`Äë±ö¢Uaa¤ÀI9ßP¢ýnlçϹh~׌eF"4‰ˆ§U\®õ¤"n"gs*jø>y¿äHl FÐÙÕô*¾NLQ¨ ·¶Kjd1V”8”èV÷œj>îŠô¥ûÔ)8£\½8Â{iÉ5Ý`í-…ã¼+Ý.mÊúHOÆ·ýæ#ì‡C‘#:ÄW[Kõ®gšæI*=N ý”tºzg¬­üLe¤g?<GdN Rî–@jNÞ^#‹Z[6Ôõ}ýèÝ‚y³Ë—f\Ü×µ¢éÊJ õGš¥CßT¿ƒ–‚1Føòš0ýºy¯çÄ2Hæ+sêÆúï7ºº‘×l·ÉCÉœÙmë®rRˆ…«W¼àæ ENc°-ÞúŽI¹;á¨:gÆ*›´7aÄ–DV©‘©&ýâ£ÈtÍ–ô½êº4bSº‘twe·"¥(ûNê@^'Öe—â NÿeEuéìú l°¥ºÉ<Úæ Dû{'µªÖ–Æ2†Ëy9RE:»Þh“W÷Á¯ ØRô9Sž"/žÖh~N›æØ.‰Ü‹ =0õ³ãàë0< SÓ4àHóÖ&NÇlaFħ)–ÒCÏ—w»ëëhŠ«N¿½z?HÚ ¤oôžú©Å÷S´µžØÑ‘<ùy’à¥]çϮˉ¡™»í$ÚôhEÇïz^† w¡S¼"a2ÝÅÝ«üëvsïÛ84º ÇöNŽN¤à~z.Ñw’èôÆjµ¾çýöGÈ`ha²ú{lâk옆‹8¾ðvÆ5ouÉ庯V¥zå¹­ƒÁçñáì*ðÙ-Úº¸Ì߉afMÃöã¨#qÔ ï×a‚[¶%t[€$>„¤oì+(mšYHѧÄÐã¢M<¹q»Aßn|}^¡„Xí¨¿¢_ŠÀo sºÅ‹ç®zãÊL–— ccb¤äu±§Éñ3‹a‘šÖO3ówk‘O#¦ †³çeûåsÅçÉ‚w¢"åÓÏy5+qu(ÝT"ëÀÁ ¡¨’“•vžÝ½&œ³<Ð_}?s®§m“9Ü“žÐ¸д6o—Ç¢ñ*Fz Ëa§Ú¼~ÄÄÛ’•†Ñš}Bp|°Ì\¦ä—C!el‡nV¬ëDL¨ä~™ôëW5. KÙ‹šÆ$‡s3,ûåf:f‡Ö®›cÕTüüÚùeM‡P° ˜”SóBEêh´;C‹=BpICÙ]È¢•«ŒÄ9&¥ºòK'œ-šxÓ¯ ǿᚘh‚åí‘™¸Hs$ôJÿ ò…s(¬Ô6ݳ§ÁØGý>+·Zi,ÔAG<þÆ>žqu¬xèvÀÇ LÔC´‚Ùéû+]þ¦Eyì%¯?ñíÌ)63«~ù÷5óÕRO‹Üb;·ét#(ê£09©é"n CÝ<±ÑÇÈ·oÊñª×õàW| éÕTL[4]%-^Ò°dþ˜IœRºšÞ>o½sǶ«å°#ÕAÁ™ÞAM² LE×Rµ‡çóÍ)Sëo‘]:µíHÇXp Ù¹Š‘÷f¥™¤ÅîÚÙ¿1Ý’•˜Ãµ›Lk!F›]®HÆÿÈK‚Ù:±¶°Ñž_Jê‘ÊJoæCÙ£–÷zwÛaÎÜ––çÖÕœÈdhTÔŒMBƒÌo÷Ýjš®Š¨±µ²a¤ >ÅíX…>üxÉ’´SO ûA”ù„o+¢©Í;7øPÔ‘åíד™ï°údØ6D¾hfB2n»’ñgRñg˜ë³ÐGhÇûôL…Qc“#+y©Â”4[“Uf(⯬Ԭ¶¥O4âR‰X¿„T6“hžì¾ÙkC <+Ü™)иG Œ¤*Mf{‰Ræ6¦BHöÙ¾ `:H-‰ Üïæ¥ì~ClîÞ‚|ð–VÏ6â‹ßKB!öº ×•úÅÂàiÙ.o•W9ޓǾCbüž7–hø)VÄš¡yë¦PýBj &â—ûêRtŠ.H®¶CÓ i>8|spUçp™YY]KËÑ/ktnCoLäË kûW”4ˆ6˜bjHÕ»-u«`\ÓtXÆã©KiM>”P ) æq[nþÔ½PâÐÓªßI…ˆ¶33rr¿¦'~£Aàí?â¶ÖLjü~T…IïeÂ0³Äèå„ÝX‰q‹"².’<žÔÎs“Dô<ZÑÎJâ§ïä}Êv0në¹;Ø!꩜SKÒÎëðl—p™aMÙ=+ö€Ø Ù± †ñ5Ÿ&×±BTÀ´«×/"BZ¾I4žÊc=¦ ½ƒjnõ¨‘ûD¬BWè"¢¯gu`®‚í=v*§ë=S{ CŠ:^hîn–ù P4V|P÷Æââ á3Þ‰|ÕÝJ—wî¯8u‰Ð{1fƒ\ÝYñ(0 ›®âä‚™ßD×ñ¡òinbÁ‘ä_´¡{Ù^T¾MR2[)‰ Zˆ\býØ!® lz½ƒBæmgœ^¨ex•hÊAÝEëýäVLJlzPBÅöŬõ<Ù2èD±Üqf–Yë}qn4ö¿4^-ÕpûþIâÄ®Z­!Çã 9Ê-ªæü6ÓwQ_U”$:ÔêºýŠÈ ¤ŒBZÔ±ä|£->þR¼ñaÇ(wdK{÷šR>½¹Ú çɬ"e³t2´&üÜýʸýéP®4<Œ„Bþ­äŽxeÇíœ&æŒó2Žb¥6iZç—ŸA=¬?q0tôñ„·¸¨Bƒû~²(KSÀ&H}ÔOßiQGæDɶҀiîoà5ò÷ëM’¼ÄPROY•t 6G©¢‚OV£ïî@‰¥‘:$ðKÓ ¿Å§°Ï(kñi2Q>¢¬Û3ëáï#KmEãà8ia5à¼b'öZ®½ Ú}ó''ÅØ¡ž•-ò*´o¦xµPãâÕK@ß­¯ÏÌ7œ—…÷¤Ò*k=JDB‰Pù”ºQÑ%¯¸£l¯ õS«S^q­ô&Àtj¿¦’Ò ™üü©:ȧtÙóUfŒ$ÆLFð8£Ÿà¼Õî­DW'9ð¦ƒAùS›E7!¿¾¿P†æ-€-Fb&ý©Q—÷¤ò[v½ûIs1¼!lY,—Bîq̯зOÛ»Ûk¾ß6RÄ>k—´D¤»ðØfÐ ±U$ªl)9Âêo~3?eH¥v܀Ϩ4l&fþÁR´þ¸iWcÉ/Ž@óYé§ð,Çd.MqÕ‘Â/‰,,?I¸áÐUóU²Ívèô[«Ðßc^äëR~bèeðÿ"|Ô÷žDšÏ^øê9ÔÆÀ³sÍ2â•ZQqCàÓJ’þB7é)1V½¬!Žà-¦ì˜\ÁûÑ–êU©víº¹pU±—dÖîDºÕ­áYçâEéd÷,Ê™r µðv$úò®j´ Lú·<*¤XZk†Ò>(RÌ{}¥c€ùhÌĸér=Qþ4ø`­¨H2ÑÍDxé{9ЧîÉGó³§(°ÐàÁ1Ìeh‘b gëæã!´è `ÌåW)òJÍ=¬[Z,O…Ÿq¨`oq¾4¦•쬛é†Ó‰š»´‘{NûcL'¡4l¶(œ•emiׇެ¡æá ,¾7ÑÐür•má%–ÁBV*çxâuqGtê)¡âöÌOH¢Ü…$õö|û ÒÄäÈëùbâ /:³ã]ÚÕ‰+ì;$ö­V¶‰¶¶‘9JÐÎ:Ј6ĵ]×5ÉÇÕÈ;>Dk …苈*| “ôYDò›û©:!¾5íS8eÌMøâ¯­ÆDƨkB)`ŽL°ì9ëjHõ´¿¾÷•‡9r¼zZy©ªƒ‡[ÛÔàžÊm…ÏÜ¡e¼.ôÁ¦=Õ~çÈW³"Gñ>^¼,“e ï» L£mÆ7¦Ð˜§²Á{É[I9ì~BÀÓXUJªM™ÇhbsmÐ$ù“c× BÓù:k6ÔÅúÔ8Öå÷^KÆEaõg-ç}9DýðV½éhÁÁ”ËòÓØÅ‘„þÞY;dØ2û¹úc•Ÿa,$a¿ëêU5û•IwÇIš3+Ï õU¯"lÖ¡s,®NJ#ŒX"`T»¢ï’9¦¿P·H‹ê©æÏW/ªW¼µz}FÚ5Ÿ”&25UB_@ ­à¤Š9È!åpŠ­´ÇØ_h€¤#*È‹2Ôé9f$pžt×óÃ'h*D6ÈҤĞž°v×Á…‘€þ-ú„ͼxñ©¡&^ñ¯„ùÜÃïØÂ(¼…ý$÷ ÷„V/êeÑ…,g1´Q×B?ô8¶íˆeú¥$2ϽA9ýÆuÿn¿Âîû‘h†b3ý%9Y¤±ÃIµPN哸š>Au؄ሷ/Ÿ¾ŸÈd{ôghêT /¸nZŸJú|"(^½PSîÍûá±óÅ/= (s‰UP­O<¥e@Ì%#ü£:„mõ‰ÛdŠâDÓs5~¡˜o±J£hFì¬øÔš} šdø¨•\óª£ÛüÓûeeìŽ)%—¸M³ÉStKùëj.ú²q¡r8L :»@™m31‹üaafTÍ׾Лèàn8j߃t´JXhr²§¯¿*1ž-¿Â{sRÕî:ûnyÌkêF?ð|¶T¸Å3&†YD,%“cêe¬Ï›.°YË,µóyG®UÄ-$ÅYÞÇ|íŸÝŽìµÏÜ"¢oÔ~òÚÜýÅÇxô €Y`ª$’µ$‹'¿ÒQ<ÅÅiœ½|¦Çú^‘^& ss5MŸZ+^`-%Û@“ñÌÞ³½‰)¢‚œRûóVS™"”Äcݷ΃ó ~ °ÄËûx#8ý¹]Kʸ볘ïÕ¬¿F6 º:a·3> Æ4Ðeù±-;ÑáèÐo}7 'ÔyhQ“°#øÀÍ\¨…üš`k…Û\µq…ð£%ï’S\&¾¿¤*i¡ÂÈwLX´-ùª‡}\–»ü!:C¢…N>bܰ«7;Í4ÛÉuÉóÍQðiÐW^ /ª ³ð—§{½?e",§qD|! 9ËtµSx‡é·”uÞ‹´ÀVÛ=‡ªRe Œ;Bî“Í$ÃÃ(ä¼âæèhõÓ£fé¸4¾_„ùž»!ù˜8ýu«‡ïþ¶ ܫԊS‚=9ÍÏÝÈa‰Û¼Ø/6C¡5©â µ¾ß¦:%õ“5Üžúbu9Í_òÔ R}Tíl™¨)m\]z‹Tc]ûË'2H·@^tWLw¸W¿7þ²‘{Óí¢›/ÎP_-¨]¹ÅA±ƒëÿým½t{ãmͺט3¡5„&”ÌÕÙ·\eµ:ð##K¦ªWžõÂ;»w±ÐòXzîÒ DåóHœèU93,Xùà“¹þwzEûâ{=2·ðö+Kª[D* †á¬Õ>ã§ùº©C¾xeXýeü­CËÖRds~ T&žQЬ0 ¡FìölÒLÚ<#Ž ¤Ý²VóÔc4$kïeÇtW§Èø |!SŽ^â}?–iœÉ™õ{vDÄ”jûš{!ä÷ê`]-;c7áÉÞÓ­…Ÿ¢PÎlÞ$Î}ó_2–…þ|øú*Nã­¿¥ËB•„¸áŽÉn¥1uÖÔûétÞi«þ#m[æeÄv¡©´ÓT¬µÎï\ǬÝi”às] žs¢MœÏ5¬5íëýßèÕƒMœf—Á¡_3à®Ëí3ƒ$å*ÐÙ1šoÑ$ôèžv#sÐß^«ÕáN(æPɽ—X–¥ß)ðͰ½n  ûv¹ÍG`fûlUÅóÚ¿LmM¨×+>ß›…’ßÛ-âD}ñqî¨B‹ìŨ1Ù<Ý"éç»mD¶!×Ò#…„Ø,‡ j1Ûr×Å‘' “èz­9Ì€ïõÉ ^GS]bxâ>dˆäW1å‘p|¹r(¶â®ìcùÞAÍù³Ë¾¡™LMâë;Ûö‡ ÉOc·¸^}szîd #}8 FôŠÉ‘JË¥+vÌ­Lª67Ócƒ'$W=çd·q?Uö¦ÅÂT©ž1:‰y©¶yyt!0Vu~º³œÔöa?$ä=Ä5êUúáÒò*Œ*±¾Ï”íuüþ›»¤uluA&v—0¾²_~^1"ƒÆû`JP¤RõCü/6Ÿ½Dãëc‡ƒþЀ¢žbaÜÙyÆI>>H©ª³ÞÍQ $Ÿ¤|ÍüzH—uå•|»ÁT¸PÇ,$ì¢ø3oÛÖ© :T"'ÀpgM9Œ§SEã´ô]ùD#Á%\z´5¼ œ…±Np.ÌéõL~ä$öÇÝi-[8s|Ô7Ëñº<Ò³kàšÔÀû¥`Ãvûð—VÛÖ¯?œ½ü"ŠÃna‡éÅÖƒíhs’ØW•ªß³ˆ0äéøý¶þ,°”d–œ) ¢Ð¶!3[ýº-(¬œ%êú#r =eu¡‹šÁ|;»]È…{3Úëõ–Œçp›{·L®9õ—¨MÓÇÙÌç…:Iz›ëHi»jKK í ?(z‹ƒÒͼùšßb-ÑV,öó๳K¥Ü±‘Ûnœ Ë>ªV¹Pc ’ôN“¦1xdQõ>þhC#A$ÊDgô,FuvÓEÛeÛÉ)+£Ù\šª8XGNþ f»gÍ€¢ÃN|ÕR—°q,Ô;^ãÄ`”#ŽðFõ/½ÐApx¢WÜçS……YÝýUµe C@§{ô~H­s÷¸•³‡}”–w¤â®b¿,&ŽÙÃDÿ,žŽÅc쬚–FÁ+<¤ç‚¨ÎÚÉX®Õ¡0°Pqí‡ÔY×–¼tfV<.zŸõiBOQúÃvW’dÀÌÌ—l•V'Œ_…³DLVø<_V «ÿV¦Åendstream endobj 630 0 obj << /Filter /FlateDecode /Length1 1988 /Length2 3244 /Length3 0 /Length 4440 >> stream xÚµUy#”':™ÿï=îM"Bþ„Å1jõ£ÀI_?ÐÜè§$âø%óé€2ú` gØè†ÁC‰ ¡)M¤aÝ8Bhh SýÀ°ÍÀï'„&€%`èPëCãñáÝœ„#Ú?Ä“ ŸM!«ƒ¦J],™D ° ŽnC¦C-"ûÿ3yÄ2ñ#mÐ> ìÍíŸh1è7ùCõ0È`/kC¦ú ‰`š !ÄÚèüTÿ›ÓÑÐ| IžD*ӆȑ1rD¨·¡ýD`l8@ ¡¦ñµ-Æ›Òh€Ú3JÌÌ¡j0xpS;G[…ÿÞNúÆ$ K y*êšJEq(C=¢¢®„  À‚MÀa$22(~ô0G¦r0 ­àT4Ú8ºþ«n’û°ÿZÚ›:å—ÊOùF3lö¤¶ØìJ[y3²É¡À›Å“Š&ÒÁÀ_ÎÔ è4´LÑ žÿêÊ? _›¨Ýá*뇡c 4 ´ Óà4?ŸoÒŸ(¡º ý—Çïõ²cì´áTþUÀŸË~㌢SÉÞàaúÔmRŠJ%S†& É¡ß?O®¿þµ6YC”TÔ%m ¨Þjêj€¦¦JØo¦˜kwc¨¡FûçÌØy‚Ž^2F7Ö+«>®"ܸ¸«’UZ6{IPÏÙ"eà\W“¨°QákIPÿbTcd®ÌE²•™ŽkxF©ÔY:V€¸6zãìåÎE졃oÐáÖá¢<ÆÈÇN0Çè\ëþÈÊfI¹i‹‚¢#ej/ro¦Ý¿7Ônjùš¬òl}ÇçLI—Ê›ÃXJº üTâÎÀ~>‘Û¢ý]··Ð׿òŸNB·!ä_ºÅ >¶`£´¶ðû¶Ç²23ä\Øfš©ÆB/m5¥Wa¬çÃϧï5ºìøµ}HÈD³Ø:Žº;+9_ôëÕHë"o«ÁÏj¿¼—Úöø îèXå‘¢ƒ[q˜g'I^óØåÞÌ<4òDwm›â’oRÌ7KÌa¼BpØ‚› ×ªþÉüŽkÓ±u@ê­dïð/C W»$ë=Ô¯Éæ°ê² {Ï…ó{™¢z߬-½*Wä?6O‘´T®ÍÏÌGÞÂ$·´ŒÊhÕ»ò­¹=QŸ¹¼±çåàéX-G‰ø woëF ʤ…LuHÌÕ%>‘­Pêå™÷ŸBû»n y4$“O£¿Ãu·©¤øî•jð|äjºO{AoŠûa—¢˜uZ%Ï‘L õïØmÖr¯Ý.ó(ì½Û*öqk =yîu1ǤÎû}«wu–äq7G9Õ]|´ æ}U5•¯Idså^AºëãV/…& &cf÷t½~­g|¯CÄ 3y?CI¶öÄ…vsÍdWöº–¾>ƒáWYZz_ˆ¸úCÙQΦ×çnß³Õåõ­ú»¸_¾H¾sâÀàØµo ÌÓÊøy'íA—ªæ¹Ç;µ3Lž÷U›õu|Sv ¾\Ü®dÀt2Ø»‘µHËkp€Gi>Ý¡#ÐuÇ µÑc]´ðÑ`!Ë"œ YzöT£°`®ˆ4w–´g(5ÁǪû±֙ŠÄ áç—׫¦Z=TëÊbBà ÙRœIAÂÛò(ÏÁ¿C‹5ø„×ÏŒ®¸³é‰d9ü:}LJæž%^•sÛgܸ÷%wó£/£·ïj\¯Î.RI ¿a‚‹z¢E’¦Ä„òŒÊ×æÂæ|ñ×5 U÷åÅÈü=;GÌ€­øìßX]–Z|ÉZ1ç³NWRª¥d)Z,ÄñUj¤'¥)åT§`[»«"BdðÄ‚/`@M-‚7ç“Ýtï®å•Ú#Ž‹;¹¦‹ñKc–ÞeƒJË£ŸÜ.»î7s š<ÓZÅU·ÕÀbwSä’–@²K£¯Ej 6Ú* Ù~CW&kÏÁÊ‚Ù9l€Ø…«ÍƒÚ¢]+öÓOÝŸŸ0¢GÖÔÊ­u>M 8¹RÿÉçE9f•fÞCEæ±Re*ôe?RßËúÊ+7+"ªlVbu¯gT·uÛs­H˜W„©–—ñäÌÃqéBæÒqOŽ[u~ß- ±F‡¾që9,ǬéYêqš-7äT(8Ó¬O‹ßúÄ®¡ó©ðý½[¦×®‘›µ>Éñ¿TüP×ì¥5U,ÿù§˜¶ô-V1~cöüñ^uæIEÖ{F²À±õDñŠ•$LJ‰à¸íœÖ{?>öJÌŸ)iÖdJ-E®°]0?ç>ôÖ»Øó@·Zx¯¹‰³'9S¶ŒNM×Ì<‚7wM“Ïð‡k=Ý/$<)½»vô¡+T¯ÎÝuS{-Æ9ËŸ}Éí‚«ÕýgùYª"žZ“-·Ÿ…9é4¦&n‰Q‰ŽeK”¯q™I±~Ë9Ý…ZÊ1/Os[9+V¸2_]YwôŒ”PmÒIûÞ=N#™ÐŦ³1µš@”j¹©ÄÞö³Ýø?Ô(]%D7hÅ호Åú&²ŠÐ6E7‘K;ë#,çÊz¶¿…{ØQˆojtˆóV˜þVÿÄê¸4šîb14[2SI»˜ã€«!"+/ÍjðiŠ}UΣÆñµ&øÒì£&ý凴Äm š_t&îãUó¾¬ñ—Q«±‰ðò™=üO§™w­ E‘œÅ=þŠ[Wˆ#χyWyÍåEª·½^YÔŒˆ…9NìuP~Kî±8ÿd‹˜è4r­åÔ«àígfDóÞÇ1 G¾å £E#®|°Y[ÑÎøœ³%úˆ+íðšshybè;×ä7×ø¦FͰæʹAìô õº÷=þ.PñBòÛöëÒ§ô¾…‡ï DãSò2Êšö·Î õ\_‘·©{+Â{³ùCå 66C«;!ÌkXŠN©™ö¼ÛøEÌÅLÇc…\VæL©7\ÊûÖ¦üâ¯=À…€7bTõ_RަFjj޳sâÉ<å¯7ovïó<{ÖÚ$﩯œì[ý´¢ŽçJ•(ì¼ôÐÿÃ_g".šëÛ[.h¾“âlʬ~Ngì‚/OÒÅÞÑï9Z-p¦;)ïv¼Ü"“ù¥¥×*;Z>í@¬GÜ—»ž/ÈÌ÷wgŽOÑy7¼_ŽwùpbgM³àž€|`üëxiŽ WBÊço ÁǦóíµÖ&L‰¬*íí»[u:…6ɹ6X~ æõ¤Eå3qÍ¡ÔÅãË´x3Ò$í Œ™\äÉ~ñ‘÷º˜yÒ丨èY™{Rì¯l%©UçOMTgi?[d»¢’<Á¤•Nk~^"Áœ¡ù´;>%,0šUÀ¶ê^ÓqöZ.34ºv|ÿÛð¢c£a;koèõR$rÌÞ9é\mP@žŸjõçiÞ·7fƒj튿¢¨3ûÍEŒ%Íöm6{“›f{Œ¼aüƒ¿3´¨®,iq¯bz?H•t3L1´m(ŽFY6*ès%D„ºgíyã<¹ìj#Ë}ïêÊöõþ’!'Ý-W%ýEÃÔ Ž”Ý‰A ¨c. e}Oü#+œ Â$sf”Q¯]3YïzUCœÉ0·˜ógZ7Yìñ2ç' Ig•QÒÓï–+w×•š°Ÿœ^FÁë:Ÿôï(ÎN.«Ší”d3U)‰àz´ÏçÆ¨Otú€íA­Â¹ÐxבÖ}QúTß’[tþš–l|ôœY‰êÕ&6>çíâÆ7ñ⫵“—OrÃâs²uÔ†«ϱ?$zíÄx‹ÊhÛ¹‹ñ·tyåŠkxóŸ\heYÓÒ ¯ëÿ楛zß½7ºÉûáÉëðS>)‘«Ù¶ý_«¯œ=d~ÚV«ÁÆ8vå#sRÑÊÎGßôÿ¦N°I Ûw¸Ø(, ê¾´£XŒ åŸõÍ—=·kûÉ]õ>H–lg;®!1· öBA¥^fªÛ`å–3rNñwWÆÑúü¶á‡pý¹Ó™¨ Ãï g§«ÐgJâví|ìØÁåQÌ&Ÿ‰wV#ñu§J)sZÛG‡ÝAR¡í¢AÚ6Î!ÍT­þ#¨ªg%È»¢¥áqc­÷­3„kv>ŠúöY·h¡«•çꌩÅ5€õùi*¾°C“2lQ:/áSƒŒî¨^õõ¶Ð䬞_¯˜Ú•fÔq-jpÊ‹Ë+Ø} +4xÞsÌþÓÀÖ«¾¼™’Ïu«F¾˜âåíù½e•8¹|E›ç–Xc—2,µ«mûÞWsM×—uAuàˆeQÆSÛëîÕ¼}WV'¿4SºQií> eà´{CÿŽy¤ªÔ笆CÉOÍùÑ×iîUÝœ/ÙÈT…ìлfÒô]rß.s¶£‘¦_Œ¬ìFØåžœuŠéÄ”˜»³÷زYmcS;›;õðŽíŒ©ÊD›6‰íYùpÄ©Œg7ï?)½ååÊ|"ì¶GÑØ÷ωS™i"eDoZØ‘‚öÎœë ­\Hß½׋N_bå²0g×Á@kO[àQÀe'çrçËúI¸§ZçËÕ"ÕžŠŠ Û£Ùù;rW÷k Œ\=#ð×Öš¤R®~´”V‰v<.!#ÜQÈ:ÙŽ¯á²LähØïå.YpH=™dùÕäSUHÅ(‹Ír­R¯Î°¸÷ã”§âÌË3iÄæˆN è-lÕp´;ßfé×ùâ­Ö^õ€ÔÏšs\ÝéaÄ´Œ¸vÄ“ï­öSÃSÏ,®7ly—"1lÕÕS[˜zs÷û{ðw1‚ ë G±¬õõÕKÔ6ß ÈXnð+q¯¯ÝYpš©³ëŽìžÿHûæ5endstream endobj 631 0 obj << /Filter /FlateDecode /Length1 1686 /Length2 1896 /Length3 0 /Length 2940 >> stream xÚµTygÎy~ë÷ù>ßߣ§ãË6uâaá°†¦LÃxy{CD¤ îRS8B,€pÀ¤™1==†CYÛæR"°áh†Ã8 Cl(zÀFaœôó@xð† ˆ“ 3$]øb"Â4‘n@PØLqÁ¢p$"’Ô075•T’d;Ó€'ÄÂâDQ€Pð¤yÓ€G`€¡ Ž„|€ñlW6p÷_àË6¤‘…Ùâèh ÿŒÅ…Í p7,'Ž+€M€{›#ùçÀ(‰?ÂøpH¿¤(I÷vå8qVúº2é’=&ˆ…q"i; ›>‰ |…F¦òqL(m " "Ú–N‹‹£EˆE Ã#hÑ)>N$"qÈ7 `)1b”GÒIDÂ$‡¼.ŒŠ`I’6á’T’I¤øI!©)˜"þ®M$$’æzùúz!„ ŒB(— $ B,aRùÀ<ê@¸ˆq\ÒÃû‹ ÿ»Íèι³ŸIÉPÜäƒP±(ñn¾ß6CEˆˆMT„Àô"É™!¨ÔæíäãáæÊæ˜z‘ÚCM½1’”FÄÒhI='–—-°`Z&ùHtêŠò\0¡D-¢Hèc!$O†'ÐÿYßQ(‡&ý'Ay|ÉðÄÑô‰Ã¬Ï)¤‰òÕ€àÇs#é’ÆRÝHÌL‰™$$9)‹|H ‚“>L¾(I"(.†““¾u|¿¢[ã!\‚”<96iu”› 3‰ä‹ë³ Ìhä4’#ËÃPAàÁ| Ý#Hiü&nR/7±@à aƒäur0$D ÿ>),– 6ðÁp!$˜äCDnH<ÌóEnäÅö‰JNh„¦L Ã|©Ù„'@2iRÒ䵄H.6`jm=ÉEŠ•…Â"0gJ]0IË$ìäYHº;ËßÛeüÏB’ƺ¢\Œ‡ ÀÌr)€pJ 0Hu˜YZ‚$&)y/• ÓPŒ S@´˜H| §HŽ˜É°tDbû¼´t¡tù=$_ɰJÕÇøŠñó-&]³ ‹‚ƒy‡BâÆ‘ø)&i'_¾B¿k ÷Uõßd;;cñI `jfIîÉÌ‚ ¬,Éßåq'.©dI"¿¬%“ `8æR:Ú0î²köœM?–âZÔR2MφÖW¦aì™9µ#·¥NkëÀc]ØáÐúêÔ<ýC˜×¶¡)»Ö£G‚õ6ª ÆÖä”7ñü»¡ï-eW§›´€´<ïöÔ’ßt {= Wµø3¯6³v!¸ùÂŦ®þý6³?ÆUwëþTR{ÿà´¸Ãw˜UspZ|û¬ùçµÚ[ÎËãïçìøjpê0ºV˜®qÓS>úbýìž²Eª9ì½¥® ã¡h[·°Âè^ú1Ú½Íaµðuý¥I#£gšþüy†g…± ;Íå|i™ƒv©q]“yí1•KLÆ#Ür×m“&Õœe—z4ÇÍîe˜²CÍ5ŒaG[‡Y›ÏíCÇîŒ5ñÞˆ÷´©nŠ/Z’ÍèƒGC¦?Ž ìÞý[â­Ù½‡¢Y€¢þÆeQ>#Ë¥ë¾ù½_’hj—ukeÄhOI¶³’®ÿ…Œ½?÷ÖìëÕÌ\ïôdݼTÃ{¶©è¯ŒŸ.¢ÞÙ¼J£f§¾íëüÚ)mð¿AÕ^ø’¸þÓ5S6EéT®Ù—¤Õ5çj ÞSN<úý“æ´A«ãx¨µúN›n÷síÄ9çóÊCêÖ{s—=@§ï`Iå9®]/‘¶º±à¶G‚©Ãš'žÅ"ÙËçñ‘¥ãSªuGql&䮌\Éço½qÚ’‘ŸÛ^Q`_5ï •Ó]zBåSíSr ]W߬/Oþ8% ƒW¿®˜¡ë8ªµ¶LÖjå’ËÚr2W¦úWØ™´¾{5êÎÅýÖÏë,¿ØÖÅ~j±A¹Ïê€eÉhlµÐánÈžçË\¨¦q]–ØÎvz&K¼aÉ‚Bocàæ•SE¥¦û9©™/Jïžuù覹¿1v:ö`îãvõºMË9Ü_ßÚ4Û}TOõë‹ÅÝûÇ;ûd¹æÜ£’c—çµ9j§™Ú²_ ú5rgöuD@r'j¹³úë ÷W*T¨î!ÆR[£¬ϾêAé.ÛÓ§æû(鵱Γ_ÎÏr»«væ’¹RÖúð£¨O~zVÁé†A•¾”™ ü·«Æ…µ/¶~ÜFYQ2%ÅýÆÙ ؃@ùÂÌÓg»Ï¾ 4§ªY¢*yÔâ Ú–Çû•­Ù|ß~~ÎW3û‡Qgv¬b®ÚtüM©£ïÔ3ûÇU)n[”]ĺöÜ£˜»?ÍŸÒhN{O„r=€Ì9ÿ0vYã…ñpùS»ì²}ŸÆ&".¶¤åˆ{Ÿ^v¤©Ùs»Ì6?ÐÁ¥@aNëÝ[ŠãÝVA¯Ž\ûuÝ¿—)³²ôÛÒÚ[øqìÚökðÃáö³÷^/þ?M?fUwççùkme4™véUÎXÇè[‰NVêŸÓ[ßWs¬;>g!׆Ýï·õ0ßQ§þØ·×nt˜z#v %¤¼ÒÚÊçƒê^³^¹Ö‘” ðáöù+B‡.Ì?ž{¾ÐÜ£â pY#Wtø¬÷_CðÃlŸºS2¦½ïd©ÖOmJ wz]º©×i×Oãæ•´>?òcÃ}ñXYf•ýŠ…áû³F oxL™_˜ãš¬(¾Új27œ¿}^œ1òÈÝs°¸±qw¯æ\¡rÊj»öùàw+…PcÞ™^k|ûj5[=/`ayîÓ™*žíªø¢ó{$J,Ìï?)cì%TÕ«ˆ e/Vó2{×<«·vXgùlyËXÜÀ¤¯)§êÒïGaOv(d¡&Q1\ýF¹s[6ÙÕÚȲlvM>mmüA#ƒÃErUaÃê[Crt¸ŸµøolØ^¬˜½dÑëØ“¡£;­”EÇ?xùéÞW‰i“¸Ñÿä\‡þi-—®º¨l_õ+ñ_Ï8±°«f÷òU»:›ÒÿRbÇQ7¬³ÿ·ÛËyendstream endobj 632 0 obj << /Filter /FlateDecode /Length1 1725 /Length2 2178 /Length3 0 /Length 3258 >> stream xÚµT{àÁ³s€ (ÀBAf”¢xP±ð@$(!”`fæÃb‡ˆ¢Äü`*ÏaB È3É£m‰€3ÈE"$¡|„9€3Ñ•¸!Èð AŒB0³1GD¥ Pa?ˆc8Cì¤b±¼†ë'“ø¯2Ÿ¨Û"ØÎü²0âËa©ä»ôæóm³X— ’™ŒÀå 9{‰üÌø°s¥»99Ø{1 .˜ö`‚+‚u&¢‘¨Â[žÎp±hT3€bnÈujsì¡c-ÁÉÛÇàc}Bqéßõ #°ì¹|˜Ã•ŸG*"±`~˜rbü‚A¸¿±`È@‘lI^X¡9L‘ÃXCbd"DpAŠás!샓IÀp@ÅR(FöOÃç+ÅàðÙ(&yllpŠìN0,g`ŒÉ'ÓŸbÀS‰Ø4a#ËA`AÀ¸8’‚bÒÀÿ&î‹ZRÀ Bøíë—Π/ˆúo÷/ܼ!9k¼"‚‚/l|‰?âxðQ6o¦Å3øL&:,€Å”H6¡Qg,,ù¤ 0Ic×_~±avÊ6L­ìP’H … Âúòyì0äÔ‹ákïá¼öß•¤ðµ‡Ù‡T3ŠÅ`ŽŒÉƒjfÈ(˜æ9P¤B?‰#(ˆ¤h ÀEÄ8ù[P’§R¬¨2@ …Bð/ˆB1Ha-MÍ’DJx äsÚò‰VH”ü÷>þ¼êk/TŒ„BÞ|vÑÿÃÛ›˜¹Œé‹‚áØóéßöÏ èÿ=ÿˆ¶µE"eª%@ ša;'c3knFŽù,’=sç(”µûÓZ>ðEBl\ß-„m’]™xj§ýOíÅÊú–Ä'§¿^ïãœ6·/§½VkãÈ}=hCáîê]¹…ˆË&«í;Ø ŸðÑOÐ|<Ÿy¦mšã¹qÜéºSKÕžÞ\°•ÈŠËuíÝU\¯g4æ\pÌ·È´#·&­æ€Õ»ïê;)õO2ÊtQ%ǧI‡2n¬¿:éШ"Ë ‘F“J<û¯è>j¶;þÖp^Üo'Žþl¤Yîï™æý²¸†ríNN÷úó:iÊ ¶“t"Š2˜Â·±×îYÞusz± mJ¦Ù š”ßœ—µÚ ” ï_ÛØ9ßG쨹ËW6ù›rƒó˜U*kGãpèúÐsBpÝ¡»SZ˜Ü¢R™Þ••?žú#À-/ëöï{˜f©l¸à×cIi$kh§ž$œ?k\aQ0êm½ß'¾ŸëÔ³‰Ðv+¾i(' pË >FÜ=£ø5;JâVÿÚxa„Ëf¾ Þ70«çÍdÞ@eèÖ¸‰’œcoèÀziÁöË…ƒš$úŠ«-“'V½>pI£¸4Ò Lz¿pcÝP £¬oדúóªCé´Ù :-ÑêæiEju}Wgªœ¢ÕsX¬Æk m}Ñ՟ǰo?Õñ¦¡!Irøª{[²Zî½;æUñíïw.+ÏMðšÔ½£¬m™éûÞ÷:Õ‡Mš‹Êo;RãQ»¹ÕäÊW±S¥÷¼Æö†.¡yªþ¤Ûxô¾kwâœÇ=ã´û«¦äUgáíÊ+¶ úÞÍžw‚f’‰^:Ue:ÅNb­Ýí×µO\ˆSíåô»qF!P/=N{ïéÂŒ–¡Ágª² ÏWàrrîšf|ô1_º_i‘¯·z¾æ5e|ƒ”hsDÐ?hC/ð>àÕÓ wá 9;uv²(WM%õŠ&ôç¢t†ÑwÛx†:èñ vç¦} #Ó“}ÂW§Tç­S^¾ZwžY€êx™K´­.=´1#´KmÊ‘g­Œ®¸8g];Ÿó±E{ÿ¢_÷Õ,ÌôÃÃç¯Ä'ErFsõ߯fQFɺ{Hµ €^(úÉÓÉ}wÎæ;¹ˆ'u&7™%¨~µ5íÑž¡ƒ‹–u«m8éëšü³§ëòý1º’@?!Z’ ÷hµ œ¹Œ›Ï²ÆkœÒ0a¥8ñ3Öã'ªM_Ó”l¬íû~4 ¬öÙ¿íÜ×;éþº6z—ísÒÍsŸ·-œïˆ„kÝIÒ~¶îÁ¾ÃÃ,âc5|¬l˜¾âÕs±îk¾×Ív¿È.9ëÝu©3“|(1Û^÷EhîJ9<÷LǽTF6qƯöI\ðÓTÔŽ»ñ¶oÝ¿2I/¯p³+)½T^7ß´ÁCç˜ß±jqÕV¯`ÚtQ^ñ%ï5IoûR*V4³§¿‹}VĆTY…Ûd èzYÙßÙ|(L‹pÜs¨É5ƒbdé·í!8û .Þ)dò{IÜ­ŠÃCC_Ƽyv¯lÀxýT똄¥Ûi˜VÒÐaqÂûiŸ'åÅþéf•r5æ«zý×–sžR¨·×'(£MÓ_´'œ¾©™ ¿+¬ËÿPC¥ßí45l­§Gè.®=Qiüʸxw ×ñ-øD90½Ëlqò½9G®çª¾Ü\æwØðZtÄ×Dó¥Àd6eÖû¬…†bö®·FŒ3cÜ3ù+qî´j­á»™ƒÞa.ÜK´–cÒzõðÆ¸˜á䔎„ü§´÷®Ã;OÞr“Rç83ËÎ6Šw™hIYE$qN””Þï[uoÙçh¿äkZ5´¨uåZN±—?–:þÊ^•3µ)‹f]x¤–ðSjÜhî´Ìª3¬…ŽvLMµŠ”_µ ¦|KÌ£_™Y„,=Ÿ˜™”26¶qcçvû3ï:²^Ý…)ôº ‡ûÒm¿ò‰3ÏQ>7oP§.}hê2Ýmég*»½Ëè$O¥Mï²tÛÁþ“£?Î5ãi <<νt%7º(é°êø ýª«AÙ>㌠öì=W›n•oU/y7½|cå`uWßï=žù² ¸°‚‚ªù×ãsÜ•òOå7íÏN6׈µ¼<·© %³'\µÌüõ¹Ýë> /ExtGState << >> /Font << /F2 502 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 30029 >> stream xœä½K-Av^7ï_q‡ä€WñÊxL%ØØ€E†Ap P-ØÄ7!éï;w|ߊ̺§HQ0à<`woVݪSçdFFÄ^ñ­üã/äÿãÿøÃÿ|ÿß¿úÇû?üëÿæ¯þ~¦”~¼ÿó¯þÍÿtÿÇõã¿üáoþöGúñïÿüåýÿ‡ßðãüÃh?[ú1êÏÖ~üÇu¥Ÿ}¸üõãÇ_ýöuU½ÿ,þrëç,çë._ßPæõ³\ç\¾¾á˯<¯àõ ÿú¯ýþÝ?~óþãßýÃþÕ_î·ã¯ÿÃ\~ú úÕ#ÿLýG?¯òã¯ÿã?Kþã¯ÿþÿÝ_ïŸüÏÿÓ<ú϶^ÿ¶üËÿm™ùçʯÛþåÿ¶Îñ³Ö׿íüÛkýLíÇýå’îwKU«9ÊýnýöõüsR½¾œ¯¿…¯»|}C)íç|¾ÁåûVýÙ_ß òõ µ—¸Tø—¯oð‹æÞÃûýy½)ñz¯Zþ9ú1ήÏôç·Ÿê?û¯óýövþù·ì?ûÏK¾¯ þù·Ÿí?ÿÏãNàŸ÷ÿæ^¯Wµþùüoþç­Þºü¼uúd|+þ¡Ýÿ#Þd ”­µŸ«ßµ?FÊÿíþàb4ú¿|»–û‚¸Æ<Ž}íÿÍŸý¯~VéÇŸýñßýéÿüoüõ_þ ÿÔûÞ/-¯ò³ú'ýÛ?þÝúÓŸþø÷Ç¿øúãüãúÓŸÿø‹zÿìÿü¿ÿç?¿õ?ûw¿Î¯¸ÿœï·¤å¯©ÞÊ}[þé?þ—ÿð_}ïoMÿµÑ—[áþßj>÷©ËúÙ¯¨ëõs•oêù3íºÕýÔ÷•Z]çöMÝbÔ¾ëû­¯ã›ºúõ\%çÏzbQןWû¬óú¹.׳~SÏí¢n{,ø¨ûÏ¡ßwýÌõ›úŠ{á®{Ú—èG}|ûï¹G¡1¿©ï{b¿Þû±S×7uú™sÔ÷ÐoušºEâqq}W÷xÿÚOË>¿©/^³Ä û¬ëϺ߬ñÁ}ּ߳íëô·º®µ‡ï»¾G¼òM}_/ûýžëçXßÔ÷Óxÿ¼ûáœæ7u‹?3ê·Úg]â¾ùõ‡’î;²~S§xRÞõýÁ–òYÏùs-×µS}Þ%ïæg½/“¨×Ïœ¾©ïÛ`F}ßx3SçxQןk~ÖcĤ&êûÂNßÔ÷ïÛ¯÷¾ßVû¦¾oÓx?Ë•~ÖôMâÛTÇçù{Ýg¼Ì¨ÛÏú]ÝvÕ+.ÜϺÅe~×q½×oêÃDÔ÷y}Ö×¾L¢ÞÓg=üóF‰ÿñY·Æ¢^?Ûø¦.ºŸâ™Ÿ×ïu[ñ0»ëµŠŸõˆAü×ê}cÇïû¨«®·×Sú¦No¢žã³®#f‰w]îë­SWÏ?{û¬ïoës×{BóY'}^õOú7õý ›q=·kÆóäÔõûfîyÜy¾¸ŒÇI¼÷mu]Ÿå=Äsß”£|–÷¿jÝCfý,ï2.äu¿ù³ô0|÷ü(³>ÄCæg¹ïŒ]î'Ð×2&—ÊÕ?Ë¡Û/§¤áý÷úúÙ«ëýøú½n1ê©^㛺Ĩu‰ÿ³Nš2å4bœù¨ÓÒí‘Ó~ŽÖCoÔ÷sê³fx¾ÿaIßÔÍÏøÁ×7uÕícš2¾©y¼Üõ=ü~Ö)f-ªûõQÇãEÇû9Üç7õO¨Ûž>êêÇç]ÇðûQ§xªE}ÅöQßO5Mîú~Ž|Öï˜gäoê+žZQß/üú¦n1kR=Ú7uñã÷¾jÓwõ}{îŸwOÒWù¬cÖ°_oÌÃò7uÛKu<^?ê¦ÇG.ûÂý¬«_ï]ÇðòQg^ïîgx½}Ï¿×÷¨¦éë]—ë›zø~*{úõY_ü=ûÂÿ¬+ÏÜÃïG]â2Uíµé×:éñ•ï‘0×Ïú~¼íǾÇÑûÂþ¬Óó«âϺëñžïç@ÏßÔLŸjÛߺøz»ë˜¾}ÔÙOÝóÈú~<Žùã,>ë—QÔ#>øÏºë‘ëžg|Ö¦WuõßÓö<ú³ÎzüGŸçGb˜Š:Ç꣮ÓÓ÷¶§ÏŸ5ãý½v½Ö7õµ73îúž^ôoêæñì®ïyøg<·=Ïú¨ïËH÷CÛ¿ø³~?Û~áŸu÷òàžþÅôø£n±1¡:¦—õ=Þèû³¦¿×YÓרãóü½Î,?ïú^Ç}Ö,?¯½ÿ¬Y~ÞË¿=]ù½nš¾zùøY{zË¿?ê}DÝ÷ôé÷ú~Ìé~¹oÌ|}SOM&¢ŽéõGÝ5=‹úžå|Ö,ßîéX*ßÔgù™â…ÖŒ§w÷ûG}›–§yßÏ¿Õå~ž^ûz¹çñ÷…õYßoÃt}OL>ëÃdÔWìÂ~Ö™ï¿b¶õY'ßO÷À}??ê˜Xêï™11ù¬»ÿÞ{yÐú75ãɽŽ*雺zû Öaå›:û~s¿ÞßëØÄfy>Ë7µ§ÀQ¯ñMÝcÕu×sgŸõf¢ÎñÆ~ÖÅÛ/±ƒ¼¾©³ç+÷Ä¡ÌÏú^uý¼ÿã³f>s¿qñ~~Ô—çƒ÷/¿>ëêÏûþàÚú¦.Z^ÅöÁýƒ?êû6ÐóhíùàgÝÙ>(qc}ÖÍãáÚÛGŸuñólíuþg}ÇûýX]Ž¿ÕÍÛ ù^§ÜË»Ïzøó^{¾÷YW_ïkÏ÷>ëìçi¬Vòg}?&Ë^Þ¦ýàû¬GìÇöEگ磾ôy—¬ûå£ööQÔ÷þYg]¯åXc¯ÿ÷ú~^íù`l¿Ü7Þg=t¿•{>˜ê7õ¥ñ´ÜÆ:¾©«ÿÞûÁÚò7uÖó¶ÜÏóòM­i¶¶Wâç}ÔÝÛMãÙGÝôyÆ?ò7õ=^ì:&VßÔ±ŒÚÏ}cÆÏû¨»î÷¨c¼ù¨k|ŒQ·x>ëÓØþ¨ñ¼þ½ŽËLŸçÚ ¯ÏúRžûÖEÛQß7öG=½œŽ}ˆûyóY7—1ñ¸ÿÞÏ:ÅÇx×qaæÏ:Ö#û÷ÕŸ×G}gûóЉ÷ÊßÔÞž‹…íU?ëûÇìù@ìtÜ ‹úþ<÷ûÝêîEžúc;eíùîÙNqYöÄÙmø½œ^LÇÍ<¿©½7—cV‘¾©yØÝ‹ÕØLø¨³«ûªŸó³¾ÿki±¦öäG=X íÅäg}y2›9×7uófCÜÕó›ºÄ鋽Ï:{°ŒYïú¬“w§¼Øû¬g¬1TÇûùQwOfâ/ßÔ—'ów}_•Ÿugà]Wïýÿ^gc9îúÏ:y3G‹±ßëØ ™ZL 6K¾ÖÃs=>ëËïç½*ŠÅôGÝêáÅø]ÏõMÝã2ùµKÑ;ø¨éMÝuì­ÔUìMÞÏ:{2s¯zKþ¦N¾cV>ë{²§ÉÚ=«¨ó›z¸wâÅÎG}ùz¹3±Øý¨½÷Ìbç£.^ìªwöY'O–ïYQ.Ÿu,VöÃô³n¾îÅÔ¼¾©wKñ×^ìÄÞ÷G½™ÓúYßÿ5µXÑbç£f±Õ÷ýþYwõŽòØO½ÏúŠ?SõœßÔU;Ôyx³å÷šûuìMêÏ:y2?–z¿ÕmúõL]Ïõ ·§ëí£¾˜ _{³â£®ÞìÓdô³Î¾Ÿî#Þ:y³ê~µoêêÅXI» ÷Ywm¦Dï.zƒõkܨwë³®zD]û7uÖç³¢5>ëâÍ*Of?ë¡Íô˜¬ÆfØGÝÝ»*{׿³n±†ŠzìÞÙG]´YQjÙãéG´ØŽ:®‡ßëûyÛU÷½ÙðQï=fõã~ù¨›ÿÞûƒkó›Ú›9±ªhë›:¹·v÷Wú¬½Õ{<½Ú7µ¯×¨ã~ü¨/O–ï/zƒuõd=vM?ëØ¬ØãyéZ ÔîýǪóþ‡ŸµÓ±ªmó›ºÄM“éû~ÖÉ‹ ‘jõäzºëXŒ~Ô—ÆÓØÕ(ßÕUãuìšÄbá£N1MQï²×ÏšçMY{â÷Yw=Ïãïù›ºj³®Þ»{>ùYû÷Å•¾©ï·qqc×þMí÷Û“õÏÚ›Ñ{Wz}Ö—;ˆñ`¸ï×ÏÚ›ñ`ë³¾ÇK-&úsõú¾öb4êØ,ø¨½ØŒãÕ?ë{¼Ø›ѵÈí›Ú÷{@*÷|ø÷z/Æöb$6[óS@tÝX´UËýŸí~× šÖßÃ`(+z9c—û®{tØeS9õÍ{Îs-Wö-¦K%V5{FË®±Ë½û5³°¼¤fÊ,q¹E¹‡¿¹÷è£Ü£å]ý¨ìFò½pŠr¿ª»ìj$/—n3ï'éÓfÞ³§¯¼_Õ]N-“ö²‚F²GɘÍF»whУ‘lžà~/{ßåÆ;X ½HúÊžÑHîºi$ûãdµÖi­ª5|×ãÝ .]KZ¿ÅKùXÍý{·~ÏêN³5·‚cÑ£ÕI¯Ë[i·¢ÖìëYý™ S«¸°µ|×MäÖR+Z­â ¹Þ­áÂV™[Á¥yöãÖo´ ´ZT«÷®5ûrk7ž†Åu×÷gµ^wë6zøÚjÍ"»JõêD­Û¦E¤êýþT¯>Ôº ,q}Yͯ.Õºzðõµv­÷_ɨýú÷V~Ô§õÚTk¶ª=¡½:.®½ZÖVfA"ÛÞ­ÙM¶]®›¾®­û»^i×õ½šŽ­)ÕE¤^ÒÓœÕt¡5­ÖlÔÕt2æðj½F­Ïß«í‰ÆêzùóW+6j¯Îwë5êÑ]ïÕöòì´˜t[^ ¹"rOŸ'«ñ¥á€ÕvöÖ$«ë¼x}ZMÇÛx¹ŽÕó]k·B­Ø]×&ÿ4ÛV«5jÝ^]ßõ¥VåÓ¢Öî‚W×w­VZ­±{1^­Õ¨Õ S+5êòjnD«m­ÎóðçW7ƒ¸V›&/3ãAÝ7vÔºÿcZ¼vÝôúwë4j¿Þ½šÚ¯WcUì¦è÷-}^—¯­î7Š¢Õúþà£öê8éó¼¼Q«4j½ÿ-éó¹¼Ò4>ev7Ô:Ý­6Õ*Zè‹v¢V+Édin^Ý™$Í&ǼuÖê{O‚¼t+·Åj%j¯Þ5Þݵw+önAÓ°ò‹ÝMnêçïÝ€¨ý÷v}¾Õ­JíDí¿¯þw\gý<ï^h|<¨Žv¢Öý§ÖjÔ^Ík<ÌÙ÷›v¢ž|}5‘¤ÚI›³Ç_µZ£¾¨÷çŸý÷©•ºk}½èþÎOïúªªùz¯Ý2í6ìZ«óªë…Ýš«²Û–øzÙzÈÜ}ÿ'ïBê~ÝMˆzP¡Mn7Ýïž\’7ù~€Ü¥u¯Öí&k©ç¥Zÿ¾ëúJ¼ÞQìþ-Z»1‹H­jõF-4H­Ý½[H½IÙEkx·n£nÔq}F­Ÿ·[·MÉ_ìf4VGÞ½ˆú¢®úº[¯z^¤éÏ×dr´–UgíN¯&“ïǺî÷{u×_¾>ÕÊZ÷WߌѮ³ëKߟhÝÆäçžFhÏËï/dõeôg$}~—ï?íöÄŽ¾ÞíîDÝ^­â¨u?hw'vkõ<›ŒZèP¬þ„ºù÷_BåhÝArÿ=j%GmÒ[3Ñ»®ÔqÿÞµÆ÷˜{íw×](ÆÛ¡ñ?™rônRÔÝ¥MŠgv«v+:ê6]/ý<¡j5G­ñ뮋P=¡t1ù×îtáëS$¹î·™õù™4Žz~´JÕªÞ5_ùXJþ<ÔŠŽú¢Þ$»WQOý{½ßSÏäÕ¶[ÕQgZ×›tOšÚG»]ky¾8÷Du“íÙµÉwÝÿsoCE­ûqj7:6½ªëØ=Z‹÷k3?Uû¯³{·–ç¯j…Çî¼îÿ©ÝçXrèç²^ówµÆ£Ö|#zfBµ;éÝ¿5<ž©Uõ¤uÞµÛ¯ç dþðóx>¹ÝÍ'—v¯ïZï·ZéAòëù¾´»¼ºç¯j¥GíÖµH÷åÝ2·Ò£» ù·w'ïÿºhµOu4?Vk}£œìVjµš?ý!Q÷W«}×ïÝËÅzE=ͨµ{®Öû®³ë@-ë—çd‚ÆïvFÍîgZº´)3Þ†÷îç]ïùcô\w·¦ê÷¹5ub7´«{"Þ»£ËÝ®×Iíyw4jvK‹NN\ýdz;µ~_×çgt€ÝÑåû7zλ[“|!tc×I»¥{<îŒv³NÄeU” jý~ï®ÆÉ‹öã Qk÷WhÀ®óg·5.{ý¾¶ß¯I+:ëdÂ]ë$DL$§êæ:P·9½{œ›Pس›»øìš“"ñþÍá÷‡“#û{ÏI‘ÊÉ‘¡î“NrpR¤kýÌ@R7J»‹œñýÛ:±Û9ý»í:y1¿O»ã÷cT(ÌsG¯ß»ãÃó©¨ãýÇö{w|€Ò% tzQÇîõèü<í–dž[smÔÚ?_÷ïèüüžT'V}éçëïá$P÷çw¯v7Ñhplcf$ònÿž¿íº¸ŽÏkUe·þ9i¤ÝùÁɧXÍ]™{üÀ¡¸ÞŸ‡ÇϨc<Í»ámQëz~N.õ/'•ªž›±Z®ñR¨LÔûyŒVR7sQG70зá:ÆïQ8Ù¤ñè®÷ó£\» ¿»¡ÍuŒ×w-4Æ'¡†×kEGŒ¢äîÄÈïîõÃòI+ý}» µÞ?Ÿœék7£{=uŒÏw­ûUÝ‹Ø$V7EÝŠ¨}ÒJèñ=ÖëéšÜõ^ߟ“XÃ÷ká*û$—^ŸºQ«Ûóq}}?oã¤VŒ—ñ«o¦»úœýs²Ëû›,­×û}×1~ x¹Žë¿ûùÏI¯î£2Ñ6ˆñ+þŒËuªï“_Ï¢æû/ý>u…JE÷yQÇýн?aT*êñ>IÖ½énNt§Õ=:uÓÏÛ7þëõû¤Y÷z<Ú.ûýÌšŸ#ZÒ> 0©c¼è^ÿn†TGtýOw­¿gêùß½¾5ªõœ”ãdÛòýªnÓ®«ë®î¸®¯¹–¨uMÝÏ:õžøE­ç›ºOqA'ãb~ìZ×ÛÜݨ5^Ń_ßÿFÇ¢ÖëYºŸ/º¿ê^EínÔ¾±¢Öý¾4?ˆeýûdÞ] ½Sw+ê½u\¿—é&w·v­Ÿ§ûí2Ýõ¦ªž7ÁLg•hê~•XOìnþr´Êåûßè[Ôzÿ}^/E÷lÓ IoÔq^Þïpw-ju»baœvíßßõ÷ƒº¥ÁÑ‹®Ÿ¿7>£Þ0éñ÷6?ߢ®:Ù˜Šë¸ßbXÞ¿/6FLd×û(Æôïã¤ãt70ï…ä®ùúÒIɽžßL}ÙµÞ¼î¨õ~Äü+é臺‡>)Ùùy>)éÏ;º‹I4ÃL?N·1ꋯÇõµ¾¾™Â}tdºÞô„i£†µy=uh^Dã}óz êý~›vŠ3 ûý®þüKÑûkÔ=ê¡“¡uºŽçAÔúýûB‹ºèû›Þÿ¢ù€QǨu½”¦÷—ë1öã‹è NŠÑúû}r´e~ÿØGÓšQÃZtÿ6Ï×ÜÝ'SéÖÆõ~ׯÇý|×z¿¢sgúCÝÙÍÀ׺4Ö˜Ö]WêH¨\ŸuoœF­ÏGèfÐ"™ºŠ&Éêïîoµétƒã¨Hõü<þG¼_Õ¨ðþs×{üÜ?(mÚd©Öó·úy·_Xßu›®ã(Wõó-þÐx¿k÷ëi{`ŽZÝã¶o̪i§ê%šeèëOªQø¨§Ž5ÕÊm©Þ:櫚æª.úy¥¸núy¹»Žh‰h;èßWŽ /íz?/¢ŽõnÔÕuŒW1íÖ÷ï =êV]û¨ÒÞ߈iMªÚ¯ˆ7žwÕÏÇöççõi <ûó+¾Þï:æ¯Qï¿_Ýû¸Œöüq´¢wt=Ä~uÛG¡–Pݪ£ZIû™qÆ-žOÕ4R<8âï)~þùA—ý~þŃ-ÆãâýVÓ¾MTÓ@Ð1,CóÉý`N»ºû³>zU]/ý<]ŸÏIíL=ôýIÝÝïqkºŽñUm8Õ1_)—ækQÇ|2ú½¢ ô¼/^OšVØurÏ·»Öõ-Za×ûýê{¡µiˆý Žag·^ˆÚ'Ï÷Bû ;'ÍݯÙݨ«ŸO#éýg|{c?j=î:ÆïÂx9öƒ3j½_wÝôóô~ÅÄ[ô”îçQôù•“îº^æÞ،ǀh”X—]ëù2uMµ_ïÔýC0曞ò~AÔñú³×ƒ±¯úº^ÿÜ7~Ôº¾§îìùvl ÕºŸb£bìz¯ßªÎ4ÕìõÛÞ‰×Çõ°’ŽÂy~7›k~ž¯ý ‰zÏ×÷Æ×ØGÝt½Ç~šŽ¾i¼Ò® ½ô<^zÞF?k¹nJ Ðõ²ö…õþù{ãzl¬½Pù˜fˆ^‰ùÌ ¶Qù¤çW2=¾%¢Ã„ÒG?oúkßOÑèŒÏ3y?Ï4LÔûþßÛ¼ë}ýîFrßtؾþ£‘×kòóuGØÌ}ômÏwv,ÁØõ~?ò—eøÞ(Ô{|Ý̾i³ýïïñ<è©åä‰Öö™ì¨÷ó£µ½ˆi¬þþ¶¡çhœiž˜ï篓 ûYõâxî?ðáx’®_8Ÿ…ãq· Ž'éaôp<{mgާx)aŽ'Žl4GOñws<ÅGbÌñ^³ÑSSŸ \8ž©kŽÇ w$àx.]p<—þ-OÕãާ|åx²)ss<ùp9âxr!²A—}¦ïeއ#5p<¡‚ãÉD˜ã9æx2} s<§lŽ'-^Ÿ8žÄçcŽ'-¸™Ó—U߯Ošp>âx"bC§PÄñ$¸s<‰ÏÏÏsªDwTêîS˜ã‰åàr½Ô×ôÏÇsú¢æx’çp< ªÝÏ鋚ãI ŽFO‚ÓâÇÙsj¦úýå”LõûÇ©ú¦Ï)˜ëÍñœS0æxR…Ç“¼.?§dà´Ìñœ#ÎÏ©qæxçáxN¤ˆ#Ör_Ñ1(¨ö©šÅ÷ïRôÝ:\ÏRŸN}cq<»/GMŸM¯WkpjçœÊys<»öŽÕu8E ,ïãy@ëœòñ<ÂOÔ‡ÛÉê{éóã”÷·#V³iêÓqÄ× Ƨ~V6gæS>Ë} Nõ¬äñÔ RvÝ@·³û.Ý#&Gì}Jh2>\î³t"Šú8p¢>54é»ú”Ð]'"Š#hŠë¦„³Ië® ‡áSBÓû,œ š^§šãÙ iïSA爽8ž˜>ǵ9&õqfóøêSC³=ÜNVÌ\Ôæx¢ö)¤ÍñD­ÏÓ‘ ®Ë “ç‘#è£Á09µæSIÚŽýu"¦gœJšp>…4 €Š\˜ ne_xQ_¯„ÁÝÓ¿W_x&Ïâx¢/¥××Ý:‘›ã‰¾Ó ¢¡ª/¥ûYÏîSéßoŽgŸ*#r¡¨o$¢»D 8ž½œR­ÁüÁ§ªÏq<;èɵ>q¤9žÝ‡é®ãþïîc›ã‰Ú\P×¾<ã½8žX;âA§¼:ï¿8žÝ‡!"âR_Åß?Õ‡èþüÄñì„=8Ý—€£î ]þ¼Äñìå<K}‘ñŠŒ8}s<;òèÅñìí‚ìÚ‘Hº>Äñì>É‹ãÙÛÕõîK5~ÞÞŒÚÜÍæxv„Ò‹ã‰z91±ä¯çG¯~¿ÄñDýæxö©ÁézŸ,¼>q<üæxzáç‰ã¹o³ ×Ï—Øžys<=ózÄñôÌÏÓó§{_ ާ'~¿ž7=ùú0ÇsbŽ'ú2D^ŒW_Žçò>}8ž ÎÏÏå}y8ž ÈÏED‡9áxîavq©Ïâ„N÷—÷áx.æ‡æx"M®'>ßxLd×S}ÝŸæx."ÁÌñD»¶º께«Ñø{Á¹™ã¹˜ï›ã‰Ìßéº)²Jã‰9ž ÎÕÏE$—9žèÃÀõЇys<—#Èàx\‹9žfîާM÷ÙÍñ4úhæxè›Àñ4ï;ÂñÜõ„ë)꣌÷)GEOÿ:}8ž˜Véëâx‰¤æxè3Àñ´â¾Ÿ9žØ~®}*tÂíøÔgE~x;ü×áxZrßÜÏ=mp;Þ÷¯p=1þÆ4·»ÞûÈÞg㩜â3ÇS'$ާz>ÇSß/Žç®_¯JؼÞÏ"ާnGO…«0ÇS}êŽç^6èëæx*‘æx*‰´œ¥/kŽ'–=âzÄñ”—¢û™CGp°Našã)×óõÁå¾Oœ SØ7V §N/8˜Â>´úÎæx §"Íñßÿp<÷2vÀõ\ÞÖï×xQª?os<Å=O!á×Oñü އ8žÂõiާ$¸%q<÷Ǧ>>§\‘,âxbÙ/NƧ\}ªއs p<ùp@>;<˜ãá\OìÏd×u<ûÀp<º Ž'{>Çû5úyêóg>?s<Ùûúp<™ÏÏOv ç,àx²ûšp<ÙÏW8ökàx2ÜŒ9ökàxröûcŽ'.F}ögàx2÷‡9žìsKp<9ùï1ÇçÇ““¯?s<ÉçŒàxbŸùÍñ$NM›ãIÞ_;§ŒÍñÀµÃñ$"‡ÌñÀ™ŸSÉ NHóµÔ4†ãIpæx‚ó~s< ®ÎOl;¾8žØ‡6ç³9ž¨u}sJÙëUs<;ÂMÿ~sϾøÍñĽï5—pÙ¿’îé4Wõ©× ?hs<›#xåñÄp°àtöùÐî}uq<ûüí‹ã‰Zûþ¨Tè³gŸçõy–£R¡ï!Žg÷Ù/×û|Ÿ)2s<»^]o•ŠÇ¹£N1öR§”WÏ>O©×sT)‹|«RÔdzÏS¾òxöyJq2:…ü¦>oyq<»¯ûâx¢/ë4Z«TàP§Ï€*…¾ júþ¨PŽZes<»¯úÊ㉾ªúP¨QÚ“·³ÏóÑw³ú$Ú™¯<ž¨Íù Ò?/êÝ·…³²ú$λQ/÷QÉ×É>ïF½û¸äX2¸>¬B‰ï—ú$¦Ê¿Q_÷^·êû­>‰uhv½ûxôM­>‰é¸õq{C "Ž'¶ÓÈçÙçÛŠûîæxbx¹îJ-äõìón¨6Ìñ°îƒã¹|¾ŽçšpGâxNŸÎç›àx®ŽJEO¬ÓÞÏõâtöù$ú®æx®“#Ž'ÖaªÅñ\˜ýÌñ\^7ÃñÄãiºê›N'鼑¸:s<Ü‚9žFþ‰9ž6á†ÄñÐç‚ã‰uPv]uþ§Sム÷½áxyFæxÚõ•ãi~@Áñ´‹÷op~g½9žVxœŽZàJÄñ4ÏkáxÔøu8žJº¬9ž hާ¢~2ÇSQ™ã©“<q<•ñÍOEÍbާŽ'¯§«¥ñÈO%OÎOípEâxbÝòæxj÷çaާvslæx*œ 9žJ>œ9žzÁݨ¯SÛ“ß³ÏÇÐç7Çfºézè|‡Ægs<ÌO=ùHâxªçUp<5Ã9‰ã‰aáÍñÔ“7$ާ¦/y<•¼A8µ×~ާxާ¸ïÇSxÞ˜ã)Œ×æxb˜¥ê«©OmާÀI™ãáüÏÉ›3Çs8cs<…¼s<…ëÕOä³Qï>Ðz¾¾û@¨;ÌñÐ÷‚ãɨGÌñäþ¤%ï¾Ðõ•ãɨ²Ìñä‹¿_ã¾ÈÇ“yþ˜ã9\°9žŒzÊÏɳ2Ç“á¤Ìñ¤EþŽÆú6p<Éy p<ép4âx’ûp<Éé¼p<ÇŒjŽ'·æxž|q<‰ëÓÏÉË1ÇÛÏp:ñ~'¸s<‡Cµf-ÏG¬‚Y Dê—'of7Äöö7œOìp>ÁÏîóˆ³ÙOôeNþNìsù£Õ1ë¨\¤ŠY^w£†Yü›ý<‰Úù;ÚG_ÞW4dzû0p;E}™×ëøE~œ8žØî÷ß·9žh˜ÚÏîã¯ëÚ{¶àrb_bsîVѬbn]ÏîóßûÈËëzÔ4+ózöó&ÚÅñ”“FoUÍD=#Žg÷yàrbÝí—ÇõQÙì>˜8ž¨Æ­¾Ù]ëþµÚ&¸ËæzJ]ôÎãÙ}šWOô]ÌáHm3ɃdzÛYú}RÛŒõ¨nšú.íÅñ”Á¹«nâ²×÷õMú“&}µÑá~¤¾çïÙOôiÖ+'jçùH…3È/µúfpýˆã‰>Žó{–ú0Ÿ/Îhp6I}—úp=±7hŽg·“ëÝ—É·ŸóWsq¾ê¨B]ÏÞwV½/Œ¸L׳9ž>\/íC¸¿3Üê© µ9ž¨Ííhï3‹ÃÙOÉ<'¹?_ßûÌ\Ÿ¨¬¸ßÅñD­|q<…üXs<{€ëÙûÒŸ¿9ž’}¾Ü7~ÔºÅñİõÎã)œO5ǵóu6dz‡E}ÿ~cbŸÚê-õÓäß‹+ OÓO9\mÉyØ6q<{˜q<ñ˜0§#Ž'å¯yŒp<‰|s<‰¼,s<)‘·#Ž'9AÝO<œÎ}ýFÉß©]ûâ/Ž'?ÜÐ^èïÇ®¸˜¤}ôéÏ[ÏÞG'Ÿ§j_=¿òxξº9ž˜èy#Ž'j×âxbZ¡ÏSOf~iŽ'Gõ¼v]^O>ùwâxbš¤ç¹8ž˜f‰«ÇÓ¶I}ùávvŸ/£–4Ç“ng?ÿ£Öxduó9s<ù±7ì†GÔþþý…¨ ÜÎ%õÙ׳æ®ÍmŽgO“Åí ÓÓì_p<1 ×óJOÔ\Ï5w­ëÕ*·é#²æx¢Öý©ßÌ9s<{™ñâxòÉSdz—AÝõ½ðŠZŸ8ž¨u=ˆã‰eÕ|q<^¶ý‚ã‰Z}Hq<±ìS^†8žX^/Ž'jq&VÑ sý¨ç†9$s<± ½²ëÖw­óòâx¢.Ô÷ƒÄËØ_p<±ÌUNÏ^‹ëÙO,£u_OÔƒ:î¿>ø~ÝoÝ\¾9ž¨sr=CMGŸZOÔ…ü­ªë_òxbÙ?_y<{Ûàr×S'DOlK8_goĶÅ"ŸgŽ]_p:©ìºQw}&Ÿ'®—îñ×Ol‹¨/,Žg«õÄ¥Hý×Éódz·YàzjÛu}q<±m³^yÄñD­|!q<ù"EOÔúüÅñĶ¢Þq<{ÛñÅñìmÎWÏ®•ß#•bp9ÕuØI.ïo˜ãÙÛ¬/Ž'j僈ã‰mÙ§s_¸ùp:âxv]ß “½­ûâx2ûÏæx¢6Dz9ž¨G³»“QçWOÔâøÄñÄ6²8q<™ýjsq=ïYŸ™ãÉ쿛㉶Ó|åñìZ_ßOÔÎçÙݨ \OŒ''ïIO´½Æ‹ã‰º½òx¢m¦ñKO>ùMâx¢p=1~WçqºÑ—YšãɇCǵžGâx¢m'nECY¢_p<ÑÔ÷‹ãÙmBq7º¿ \Œ8žÝf„ÛIu×/Äñì¶å+ÇmÎ_p<» *H÷G ÓÊÛÙO´Mù;ñ¼.äÓi"˜ Ü«8žÝfݵ8žhÓ^/Ž'Ÿ|%q<Ñæu>Ïæx¢Öõ"Ž'ÚÆâŒÄñDÝ^y<»N®ãý/^›ãÉä%™ã‰¶õ%NG×oqÏÏn{+GϯbðÄO´Í•ï#Ž'Úðó•dzÛòéÇc§ÊÎ5Çmü}ÿšã‰Z?_OÆþjŽ'°/Oö~ÏQëúz]_WÒé=Ñõ®íW—Óé=eB-)½‡/Ò{ Ô‡Ó{ŠgÙ¤÷”“†£ôžâ”XÒ{xJ“ÞCŠ"é=e@ )½§^a W1 ‹…«¼,[Icã•Þ³­zPAKßoªH®rÒwd኷Yß/ W!ý®Ug §m±pAYbáb–€…+>v¨žýy’¦b W9Ö-Y¸HiÄÂU àláb–… p ×±öÙÂU~³p•ß,\å7 W1‹…«˜^ÇÂU*Ô’,\Q'×Sÿ^]f[¸ é¶p•ãÜ–…‹ÓÂX¸Jõø` Wú²…«Ør…K›¿Ž…ëXülá*8Žmá*Ǻ% WɤùÈÂŬ WdÇA9i®‘ö³ïïÌï/dÍ™²‘…+&CPAŸs,\…ç‡-\Q¿Ò{³:,\%}IïÙétÝõ”%ðX¶ry¥ÕÙÂU1Y¸ Ï[¸ ¤-\åeݲôùõÙÂu(*[¸°Ú•¡^máâ´6®¼xæ¶ ¨µ—EЮ Uh W>”–,\™4/[¸ò˺µÓô°êØÂ•',=/²w1±pew°påAzŽ,\ÌŠ±pe(.[¸²W•X¸²!m,\Çúg Wf¼±…‹TP,\ùâçËÂuÒüláÊîbáÊîzaáÊNÆÂ•›)^[¸ŽÅÏ®LÞ®LZœ-\ÇÒg WXú^é=Ûº÷Jï‰ô?Q]¶pe§cáÊP¶pKž-\Ù§-±peïbaáÊܶpeæ7¶pe®o[¸X% ”®…ÕëêǺU…¨;½È.æ X¸-\̰pù´Ú±pa¹Ä•…‹ç?.žÿX¸µb ×45…kòûmáü>[¸Æ—ôžm™Õb סˆlá:Œ-\ã±vM[ç^ÔO,FM5Yö:«K=[QLýìtD( ¦tÄ7õµž'¢~öbʧÉ2§ëSÔÏNOÔëßÔÏNOÔÏÛÔO,¦Ð5®Cõì4Çö…ú‰Ú–´}a£½,kX¸ß±pA½aáš¿Y¸œV{,\Þ<.Ò°pDzekš©›Bš£ÿ½-\çӱp ¨#[¸L} Ô.Ÿ¾:.,X¸<¿:.ÒTœÞ³lI&½gÕ‡rº¢(§÷,Ÿ–&½g9=“ôÒIïY™t ¥÷,¨§÷@͑޳,Q˜‹.¢Ó{”ŒÓ{ÖIRzÏòx{,\ êÈ®Åßc ׂR²…kAÙÂ…õ –,\ÞÕ?.Òr°pA<.QX¸°aá*N‹ÀÂUH×±…«¸ëûX¸Ô¥},\¶V Wãûmá’õæ±p‰ÀÂE ×±t=.j[¸L‰ò¼ßNï^o¿,\¦ŠŽ…ëâë¶péý,\º —ÓŒlá" Ö5,\N'<®CùØÂÕI·±…Ëë³cárzå±paÂÂuaÙ²…ËTó±pjÈ.Ò^°pŠÈ®fj ]},\íIó)ú~QX¸ª»âX¸l)>®ú¤û,¥%úïµ…‹4,\¤›`á*¼~[¸°ÂaáÊ¤ÛØÂ‰…+AÝØÂ•°hÙÂå4Õcá‚J•HÛq:£ÓHïéÞ!½§/¬\oú‚"ÒxÒÝ$½§Ï¯®>¾¦÷ôþ…úy¬WX¸H_ÂÂu‡…뢶…˔±p1>cá‚ÒÀÂU<^aá*¤éØÂU<þaá‚òÄ•±hÙÂåS=Ç•ùý¶pe~¿-\ÙÔ ®„UÌ.Ò˜°p9ïX¸¯±p%,Y¶p%¬]¶pùç±p¥‡ ŠñîÂêg ×¥c ×u(#Y¸H;ÄÂuñüµ…ëòz ×…f ×Õ¾P?û”Uv½ÓÛW ×Õ°jéùOÚá±p9 ùX¸ÊCÂP@;m±`ÉêœÒz§÷D³U÷?®ìñ ÷#.>O,\‰ßo —OQ —) ,\ç©-\mùó¶…«ñyØÂÕæ“Ö×cóú W;”îÏæ´,\m@é~£k…«]îZÚÂÕ–-Y:Ž…É®VIß‘…«UÒsdµ9&[¸ZáçéþlÅ]v[¸š)=,\Í1®¨E ÙÂEš ®d —O i X¸|jéX¸ \láª~cáªÞ/ÁÂU½…«’d WÅrb WuZ®j+*®cQ²…«Ž'­')Q]|[¸jÇ& Wµõ Wõ)G,\µ“f# Wõ©,\¤+bá:–$[¸ª-”X¸ ˜±pUïgb᪶p`áªÇâ% WÔP=;í±úý´…««—,\•4 [¸ŽåÈ®ZHß‘5  WÍ_Ò{ö)·WzÏ>åF]ôýêrÛÂE¿ W%½ éD¶p¡öÀÂU<ÃÂUi?²p•ùÔñ~Ò/ÀÂu¬H¶p,8¶pÒllá* I.Ò-±p¡ÁÂU|ª W9i5²pÅ~ü‹úÙ_oúyú¹O³ÀñÒZÌñï Ãñ0¯ãÁÞÇSœªÇS:_ÇS:¯GO¹HëqŸúrßÅO!eßO!ÍÂÏéÛ›ã‰y_w@“öíÍñ§¼Áñ”ò%½g÷½©‹úØ“z©Oíô]ö'ÀO!EßOô‘õûu#úùômßé=1\œ:8žÌçaŽ'Ã¥˜ãɶáÁñdïÂñd,:æx2V s<'ÍÀOæý6Ç“éë˜ãÉpæx2–s<Ù©—p<ÑÇG#ŽGÛë¿Ç“I»0Ç“Iƒ2Ç“I'1Ç“m›‡ãÉôýÍñdÞs<™´s<9ñúÄñd¸-s<9=i=»ˆ• ×ú’Þ³Jϱ…‹ô,\Ü/X¸i8…>œ>?,\¤·˜ãIŸ/Ž'ñþ›ãI¦ÕáxR}¾¾­jÅœ9žxŽ6×»ÏV°x‰ãI> Ç“2¯Ï.Ÿ.9.ï‹ œ.ú®X¸°ô`árJè±p9íX¸œº{,\N…>.8,\ž· ×Eº-\×ÃùLY¾œ¦c Wsú.Þ_,\Õï®cõ²…‹¾<.Ò³°paáÁÂ…e Ü .Ò¤ —Ó‡lá¢oþOY¸Ö¬cáºàzlᲵɮ§b i!…ëp=¶péõaáºàZÜgq*÷±p‘^€…˧{Ž…‹´,\4[¸NÚŽ-\ nÇ®c 㮊µÌ.¸,,\|žX¸ œ‘-\'Ç.ž'X¸°²`áÊ×3Ôתp=S}«üNï™Þ§<®Ã!Ù•®gÊše.Jé=ã¤ù¸oäÓ¤÷ŒñX·ªÓØÞé=çQI¸õ… –-\Xo°p5§[`áªîûcáây€…«ÂÙÂE.Þo,\ž× Ïk,\¤Ë8½§“ãôRÄIï!5œôžgâôž‡êôžŽUÈé=Ñžx§÷ôñp;1^tÛÒIïé¤9½§cszO'½Ìé=ë W! È.ï[ –?,\>ýLzϵÎ'îß8¨×¯ôžk>Ö­®47qNï¹HïrzÏeû7é=aUš®cà"½Ë®‹ô:[¸.æ¶p]ƒ´Y¸®þ…㩤zcẘOÚÂuaý²…ëÂÒg ×Gj ×å},\Wãßkýj§“Õ1—# )àX¸bzq<Ûò·SÕñ÷ËÂE_ ×Ux}z¾\p™¶p]™÷C®‹ôA[¸.žß¶pô:[¸®¯é=±ÝeK—,\Íöi,\íeÝÚiq¤KÙÂÕà–mᢅ«ÁAÙÂÅi@,\­“Æ£çSëp=²pµW£ñ¾¹/Œ…«‘®f W«ü>ßÍû|X¸ï¯-\ k®-\ÍéX¸4mùu8žÆüÐ}8¬Np^à^ÌñdŸû€ãát-Oü™Éõ¶@Áa˜ã9V#s<±^K®·Å)ûz4ǓݗãÉN'„ãÉîÂñdÒ\Ìñä÷£>xÆúcŽçXÌñ¤…ÕKã)O¢OkŽç¤˜ãI\OæxéæxiæxÒ€SÇ“¼^ãIX­Ìñò Ç“°†™ãa}Ç“ªïs<‰´s<©<éNïY¿¥÷,Æ §÷¬Ã½(½gu¬\JïYX†œÞëKêHïYNƒ$½g¹BzÏjp7Jïa_˜ôžÕü÷8½'¸ÆÇµÓ…”Þ³ ‘Ò{°>“Þþ1é=‹ô§÷,>§÷L,|Nï™>·DzÏdüpzÏì_Ó{¦¹{Ò{¦ûФ÷LžNï™4¥÷Ìæt&§÷LÆS[¸¦-«X¸f{¸H?›î+`á:\¢-\X’±pÍêÏË®éù®IZ‘-\³>é<‘N5ÞŠ…k¸ ¥•M§™bᚌ׶pMÒªlᚤ1ÙÂ5Ö.Y¸†ûX¸é@¶p ®_[¸†ÏmaáÝ׋-\ãpANïs ×pß ×8ܬ'MЮQáldá:œž-\‹ž-\ÃiãX¸†9,\¤×`ᇒµgdsC¶pNÏ®‘àrt?Ä÷ËÂEº ®¾øº,\nÚ®>±|éþŒe£8Y¸° cáºo=?máê¤ØÂÕ±ÊØÂÕ\ŽÒCIóÆÂÕ_V®øûúázdá Ô+½§ö…+Öp?‘× é?²p‘¦ˆ…ë¤Ó`áJü|[¸H;Á•øù¶p‘Vƒ…‹ô [¸®E,–/[¸.Ï—±p]X¾lá Œ…ë"ÝÄ®k˜ƒ±…ë:œŽÒõ.8 [¸.8 [¸®÷# ×åù3® ë-\×åÏÇ®ëz¸ž¬¯'Ò|v:¤÷·°pô[¸.ϰp]‹W!ÝQï¿-\Wåߡw,\•×c WåõØÂUxý¶pÁE`áÊpI¶pe8$[¸ÜŽ;®dK .Ÿ»>.ÇÂÅõ‚…ë¤ãÈÂÕÖ—ôžm±ª®ÃJÓ&Ž,\'Ç.Ö§X¸ÚÀÚ% W£on WóøŠ…«y¾€…«aM²…ëX¥°p]XÂlᲕöX¸à*°p]¤éØÂ÷‡… î Ü.¯ÇŽ… N W# Ç®ö¤ùl }z,\ÞÏ;.ï¯ ×'.¸1,\ÞO?®cͲ… . é*X¸*-\pX¸2‘-\>gz,\X‰°pÁbá"Ý —÷˰pÕõ%½'jqŽ…«¼8ž¨•>óX¸ú+½'êD½-\ÞïzY¸4<®Iš-\â* —9[¸:Ö+[¸úcÝ*²t}µpÁeaáây„…‹ñ Wƒ²…«Á ÙÂÕ°†Ù·……Ëó‡cáj°pë—-\Õ×'®“®c Ï;,\k–-\…´[¸ŠÇC,\>…«:í Wµ… W,[÷ûa Wꇅk>\϶py¿æX¸HÛÂÂõ•ãÙi®ÙuWº«^.[¯…«ÃåtÒ_õ~aárúð±puþ½-\/®g(Öi;²p•§£û§¶f Wi¾lá*^¯`áŠý ê©´× §ÏÛ¨«ëmAƒµ…«ÒzdáâÜ7Oq?äX¸¼Ÿt,\ë«…+ϯOöû Ç“}ÿÀñdó p<Ùö 8878ÒZáx²Ï9Àñd8s<Ùó-8žœ¿r<‹–9aÇ“ÌgÀñ¤ù%½'ÒYõýæxÒE-Ž'9MèÿŽg·NŽg¿³dz8Ÿ§„ãñ6O+Ãñ¤/®ê9(. –Ìñ±òâx¸¡ÌñŸk1ÇSŒ!cáò©-,\nžšãÉîM›ãɪÍñ°Ófއ˜'s<™Ôzs<™¾¦9žLÂO&?©Op<™¾9žLŠ?.Ï“…Ë©]ÇÂEÊûHp<±O·“Ä ®gè|«úX¸<;.öµ±p 8œÄyÐëÅñÔEŸ }-[¸& [¸ærŸÂ®9ÉDZ…˼ä±p9µîX¸:?ß®‹ï·…‹>®J^-\Þ÷:.Ûp±p §ÿr8q<ëŽ9ž `Ž'ó÷›ãÑ0öëp<™ÏßO¦OlŽ'c1Çsò`ÌñäÁß§ñœó p<¹cÓxžÉ·0Çó4¸ž©ó y;YçÌɨ£é߯ÃñdúøæxrÅš%Ž'{Žç䯘ãÉåKOÔº¾ÌñdŸ?…ãÉp*æx2yæxrújáJËã‹9žä”u8žôâvây‘/Ìñ¤N~úÂéXºÄñ$òªÌñ$ïsÃñ$¬9æx×›9žäóøp<ô}àxRz¾î>P¢î²:ùçïçÃæïávv_èpHC}!8q<»O3]7õmõ¥>Œ­`KÖ&¸%q<‡Ç7Çõxq<ÑgÑý#Ž'¶5~÷ywSÅË{ßÞ϶"½òxbû{¾8ž¨ë‹ã)¤ä›ãÙ}åúR_Ä\Íæxv߃¼úp;]}Œç3ÅóÏÇu~åñ<–$[¸Ô>øu,\“ç…-\Ñ~X®c]4É“´…kb¥³…kE®±àHdá:ó#[¸…-\cùóµ…kÀ-ÙÂ5¦óäláäUÙÂ5œg‚…kp?ÙÂ5àtmáäéÙÂ5ȧ²…ktòpdáäÙÙÂ5Ü÷ÅÂE^®Ñøûeáî cáÞ÷ÅÂ\^¯,\«§-\1ÿ{q¾-\ptX¸®Nž,>w}‘׳û ÞÇÆÂuU8 Y¸.ç bẜÿŠ…ë:y6OcÿÅñľ½­U²p1ÆÂÕ°BÙÂÕÜŒút¤Ðcájãár’öíÜNÕ¾ýázšöí+ÜζTõçß/íÃ;_G®vÁùÈÂÕÈ7±…KÓÌ_ÇÂûî—ë¡}usM²pÁ­aáj'¯H®F^®LÞŽ,\•¾£-\̯±p‘¢Ž…«’ç‚…«Â¥ØÂUábláªîcá*p9¶p¿ÿX¸|ÞñX¸ –,[¸Ê—<žmÁzq<ûŸ‰£±…+?V®má" Wr Wâ÷Û•øù²p•ÅÏ—…«ÀØÂÅyo,\îÄ.òg…kÀAÙÂÕá^Ž…«RÛÂ¥ëù±p‰yY¸ÈßÁ·c ×zqkòúdíYóÉß ëÃò¹F,\'ЮE>-\Ëù,X¸Ï[¸8'†…kÙ:‚…kñ¼´…ky{ ׂô…k9¯ ×ò9,\ k-\«ÀõȵÊÃõì¿/»Ïj ù‚X¸V¶Ã®E…-\ˇ•±p-¯X¸–9v,\s=ù;ñ÷²Ž…‹sfX¸¦Ï(cášÎoÅÂ5}n ×tÓ —–!¿Ž…kN¬]²pMÞX¸æt_Ø®y,`²pÍî>¢-\X‚±pÍc“…kb%±…‹skX¸¦­»X¸&[¸bÙV]g}½òõ°pMòPlášÜŒ,\“<[¸f#?ÇÖ¼G# ×$ÏÄ®i‹/.ÖûX¸¦­ÐX¸æá~d1™ä]ØÂ5Ëcå kΤOn ×´ W,³átlÑËp=Eߟ¨/Yóôúláš^bášä÷ØÂ5}œ ×Lp5²pMç­aá ÎG®áöX¸†Ï¡báÞÏÄÂ5ÖW ×8–-Y¸ÆäõÈÂ5¸^máXµláóK϶üQÇû=¦ïW[¸Æ|òyâýXzlá>Wƒ…kŒ‡Û‰÷c ×Àšg × oÈ®ØÏxåñdö7°p ¸'[¸¢Î®›~þá|¶5ÐùÝX¸FçõÊÂ5àlápQ¶pE¥¾. û%X¸ÆÉ’… Ë5®·d ×ðü × Æ.öO°p ÷7±p ò]láîGaá>w‡…k˜›ÇÂ5œOˆ…kp?ØÂ5|î ×€#±…kd¸Y¸F&ÏG®áý6,\äKbáö•`ኺº ׀˴…k¸€…+êâz[&“ï[¸œ‹-\NÊ®îý;,\qîR,\ÝùßX¸°|cáâÜ%®î§ˆ…«ó<°…ë®5¾ÛÂÕ™¿ØÂÕ±ÜÙÂu¸`[¸:yFëX/u?ØÂÕÉw³…«ûúÇÂÕ½ÞÃÂ…Å Ww ×µà~dá‚ÆÂEþ%®Ëã#®Ëë3,\—×ïX¸.syX¸.÷°p]>·Ž…‹üL,\×eŽÈ.ò3±p]ÞÏÅÂg‹…+–¯<ž¨÷ø‹…ëòx‚… Ž W[Z¯üÕñmýÿβ•Öã?Aå?iÙÚ ;ekƒ:Dz•^TÏ)ek/´ËVzQ=Ä>–­“ÆcË–ÓlŽeëÔ¶l%([¶Líd,R¶f,Rêª`Ù:Ö¬cÙÒ.úcÙúBõTϪ^–-uË–ºxeK]ÑDz¥®úcÙÒéöDzÕÞé<Õ§^–-§ÙË–)™cÙJP;YII ʧ(ýÈi@Nçq ÖIçÁJA:”é<¤¹Î³ v”ÎS|äeÙ2%t,[åÎSœòý²lÙu,[¶^Ù²5I—±e J ËÖ$mÆ–­Iz-[P\X¶¦»"X¶°X<–-uË–ºúeKï7–-,.X¶œZ{,[‡ ²e‹ÓßX¶H—À²u…e‹t,[Ã]b,[œDzE—ËÖ ]È–­ådË ,[vËËT–­î®–-ӀDzåUâ±l]P;¶l]¦ö°l]åÓõý•¯/}¿-Z¶l]¼^[¶Üe8–­†Åkn5^é<;ýê•Îuò)²X•W:϶V½Òyv õ³?(@,[X7°lU¬]¶lyVq,[õ¡|†~_zQ=‘¾µ^TOÓâ÷×cÙ*P?¶l(#[¶Š),['mÇ–­Âï·e‹®–-ºÜX¶²OïcÙ‚ÚÀ²åÓfDz•I3rz]U,[‡â°e+=Ö­ªô0§Áز•L­aÙJP0²le,¶låEŽ,[™4[¶2Ô–-[êÌ–-vɱlE å³ôó5~ز•½‹‹eKÃܯcÙz,S²®<–)çy’N#ËVö.–­lºËÖIC³e+OÒpdiÉ«˜-[PgX¶|zûX¶ß°l Ò…lÙü~[¶¿ßim^eËÖx¨ŸmÙ…k*}­¼Òyv­×cËéX¶HS²Õê§É‚¥.:–­NZ-[^¥Ë–WÍDzuAÝØ²Õ ˆlÙj¾ž±lA™`Ù"MËV{Ò{öõE…e«~Iç‰ÚÖ,§µU¬]jÙ”Ž-[PpX¶°laùÁ²U hlÙÊ_¨ž]ëë¶le([¶°šbÙ2v~,[é Õ³Óáºëa땨Y¶ó[¶׿-[t9°l¥ e$ËVÂ*‰e ŠËÖx¨Ÿ©´¹ ¥Se™º^TÏc²ÅõŠe‹ô",[Þ:–-SDz5+×¶*uÒflÙêP)¶lu([¶ºÇ#,[PiX¶¼Kt,[X&±lAuaÙ‚ŠÆ²E…e ë$–­ë¡xª,Wù•γk}¿-[>ýr,[P©X¶ T°lAábÙjX¹lÙâþÁ²ÅóËV…J²e«’>dËÖI²eË]¤cÙrâX¶ ?o‘þ§tI,[å¡xºÒ5~cÙÊþ}X¶ò“Ƴ-[é±níëÁ]¦cÙbþïtžµ n”ÎsÒÎCJ/é•z,[Õ”–-Ÿ’òu¬`¶l]¦Ø±l]å«eëb>aËÖå´,[WöóÚ–­ ÊЖ­‹ç–-¬yX¶è*bÙšP7¶l9úX¶L‰Ë–OµË–(,[Ý]x,[X|°luŸöDzE—Ë–)åcÙrZþ±l9½ôX¶|jäX¶éA‹Soª§žt[¶šÓ“±l5§gaÙj¤ÏزÕ*?O–­VÝ%¶e«w‰mÙj…4Y¶Z&GÏçx¬êë²~´üP<]ßojH–­ææ –­–Hÿ‘e«%¨Y¶Z‚Ò‘e«yþx,[XưlyíX¶HÁ²E –-ºÖX¶¦ÆÿcÙ‚’²5mÍÁ²5ýy`Ùš~?±la²5H÷±eË–ÐcÙÂú‚eËãɱlùTé±l‘v„e«c©²eËëcÙ²%ËÖI±e«6§{زU¡¢lÙ:é¶lÕ $ËV­~}¶lÕÊëXÉÔµ·e«[olÙª¤Ù²U¡šlÙªž?cÙªž`Ùª'mF–­êýc,[ÕJ,[էİlÕLš,[D"`ÙŠš4ž˜¯«™-[Õ§ì±l!!Á²EL–-úyX¶ æ±lÕ%¤ñŠ~–­ŠÅÊ–­Jz–­E-[ ×Ä’æt![¶eË–­ÅcËÖ€ú±e‹4&,[ÞO²Uú—tžm)S-ËV±µËý,[ÅVr,[¥aý’e«vdËViP0²l(#[¶ ׯ-[¤»bÙ*žOaÙâ”/–­R rdÙ*¤ÕزU°.Ú²ue«x=Že«d¬Z²l•C%ɲÅ)b,[…ñ×–­’¡€dÙ*^ÏcÙ*NÛòÃhq]}êÊ'Æ‹Bº—-[%aá²eËÎcÙZ¤ïزÅxŒe Ë#–-ïïcÙÊXòlÙÊ'G÷W&Ë–­|‘¦#ËVæz²e+CyÚ²•ßlÙÊ K–îc-³e+cÁ²e+cí´e+C©Ù²•Œe+Ûîe+SC¶leÆ3[¶2Ÿ¯-[™ñÆ–­l^ËVö~ –­œøý²lå¤ñíX¶ü¼3Õ³ÓtõõKi¼¦¸MõDÝ_T϶)]§)ÝÖÏS=‘Ž[ÒCõì´\}}S=1íJïÑx®m¯Cõìt\Õ¶žyÿÒTOœJ¾Tï‚m {Q=1MÔëw:Ïòþ>é<‘Z"jGé<Ëéo¤ó,ÒwœÎ³œîF:Ïò)sÒy–Óÿ?oÙš?¾X¶^é<‡˜y,[ÆzlÙ’8ëX¶öxúX¶ßËVq<Àe«8ŽÇ–­üJç‰Üe7˜ár‰›˜¤ïlÎaÂÉØ²…%á±l©¯ôX¶ê;§L8ŸÇ }ûDz¥>–­gcËÜ–-úX¶œZ~,[Í},[¤g`Ù¢¯÷X¶Ô§Ç²åqçX¶êÃõtõýuºË–Ç•cÙ"ŽçX²ÌñÀ!Áñ$÷9Ìñœ>¶9žÌips<Ù§õàxò„ûqß–t ,[p%X¶àD°la¡À²ÕIÓ±e«c½r_–4,[X̰lÑ÷Á²UáblÙ"=ËV!íÇ–-Ò%°l9UÿX¶l;?–­ì>–-8,[p]X¶?ß}ZÓ˜p<'}ÂOZX¹Äñĸ׳û<>- Ç—ÜNsŸ³ºÞ}ÀÃ)Ù²u8$[¶œ‹-[œÆÇ²åçö±l]X¸ }8qX¶*Ž-[ôɰl•‡Óqº•¹![¶¼O~,[p|X¶<Ï>–-ïs“ÎÃé)Òyœ–­é÷Ëœ–­“&cËV'½Æ–-¸&,[¤YaÙÂú†eë‚s±eËóœcÙ"} Ë}K,[•´[¶'dËVÁzeËÖárÚéÁédõ‰.Òxª¬YNºNßHµ-[œ¶Ç²…Éé<“´+§óÌÅû£tž»VËœ–-Ò °lu8[¶:i7¶l]OzÏîË\_Óy&–7,[¶HËVƒ;±e NËVÃ’å>K%=Æ–­j®Ëã –­ ‡dËV% Ç–-§®ËV!MÈikpX¶ 0§­¸ [¶L/Ë–-DzÅx…e‹ç–-¬}X¶-[‡“R:Ïàóu:Ïàóu:§}HçXoœÎÃiÒy}d,[ô‘¯Ó7²ÕÊ–­“>cËÖárœææÓDzå}ÛcÙ:ÜŽ-[|‚ë±e«¾9ž 'ðX¶ÜŽ-[ærŽeK}²Ç²enèX¶ÜŽ-[ÇÂUµï.ÎË–O—ËV! HOMüûcÙZ¤ñlË–ŸÇ²åùþ˲¥>–-s°Ç²5à€*é‡Nï±e«ÛšeËãѱlu÷åËÖâû–8^é×±lÁ9`Ùò>ܱlaÝÁ²…ËiGX¶Hc0ÇS|NçX¶¼¾9–-[7e n Ë–OËV…ƒ±e«’>cËVuŸË}t,[îsË–¹¿cÙ"]Ë–-®,[XkÌñäLڎƃ|¸§1&ÒuÄñd¬+æxrz¬ZEÿ>QoËւ˱eËé´Ç²µH²eË}µcÙ"­ËiX¶¾¦óÔô5§Â‰Ë\–-ïKËVûÊñ$¬oX¶ÚÃéì}RÏOŽeË}†cÙªü<[¶êcÑÚ–­Êëqºbåõ8]Ñ©øp<©ð÷‰ãI|žæxR~8¿\ž9žÄçiŽ'¶½ÞëÛcÙ‚Ó²åӉDzåñøX¶¼Ýv,[¤»`ÙrôX¶ÌEË–*,[ã ǵŸ-[p\X¶à*°l‘‚e˧=eË}ñcÙ‚›Ä²å4æcÙò¹Òy–9uÒyHû g‘Æ‚ekÁùزå>Û±lùƱl‘f„e k$–-ï·Ëœ"–­ GdËÖxÒx¶e‹t,[ƒ×kËi,X¶Ì‰ËÖ*,[žïË–ÏEË+,[ýá|ºþ½Ó~lÙ‚£Ã²Õ°xÙ²Õ¾p'–-,SX¶Æo–­ñ›ekÀýزÕùº-[¤Ñ`Ùrúà±l9-ìX¶HÀ²u}Içy,c¶lõöp;—Ó5»ë%ëXƒÛ ‹F·5ËV'ýÈ–­^«VU-ŽÀ–-,ÕX¶ºŸ?X¶:Ü„-[ýp@²luÒŽlÙ"ÝËV‡k°e«Ã5زս¿eëXȰl­Ç¢Ue»^OÁ’},[‹4[¶?Ï–­ 'dËÖĪeËÖ$ÝÇ–-ïïËÖ,[ãIïÙ–­ÃõزÕ«V’µìz¥ól‹Ùr½-[Ý\–-Û°lÅcP\Œ,[×eÎÁ–­Ëû•X¶.®'[¶.81[¶.úضl±žÇ²uUsW¶l]pb¶lÁ bÙºHc±eë"}–­«ðzeÙº^œÎ~¿3i: «™úÚ¶l]ÿ±l]Ùƒ-[W†‹‘eëòþ–­˜æ¶ãôÓIZ­gî'Ò Í–­‹ñË–­ËÏ,[1Í"­§éç¾Ê¢fŽÈ–­åûËéIX¶|®æX¶H_Á²uÒŒ–´ùJçÙé¬âplÙX°lÙê¤éزeŽËÖámÙj¤oÙ²Õ¸ÞlÙjp¶lnÑ–­Ã)Ú²u8E[¶šÓ.±l±¿e«.Gãé¬X¶ZÅ’%ËVƒ3³e«ôYŠiX¶lk™-[Q‹ Òóžý,[Ñ–!½Çi°N’eëXÏlÙj¤ÁÙ²—quãIãú³eëXÑlÙj\OX¶ÖÃõlËÖ"mÇ–­õ›ekýfÙ²ÕûX¶O±lauIJ5á~lÙp3²lUŸk²U}îËVìŸèûuÿIJ“4ž$ëØ|¥ólkÜNÕ×u?زU=_IJU}ÎËV…{µe«rýزU+/Y¶ªÓU±lU÷w±lU÷S°lUÛ°lUÆ[¶à"°lUŸcÀ²õåº)-W¯Ç–­àú6·‚ekbͲe˼–­âs¥X¶ÈyÀ²Uºþ,[ä`ÙŠÇâõã±lÁÕaÙ*î_aÙ*Õ?Ï–-Òg±l÷c±l•¤õ–­âù:OIšË–ÏñÂñäAúŽ8žìý8žlëOöóŽ';‡އ~þÿ#XœÃñì7úÅñäoŽ'}åxö®×Ãñìñ±l­Ç£«Ç²å<.,[f°lMK·.p”/»Áp<>„Ç“NâNú±o},[å³ [;…ekþfÙ¢ŽekÀÅØ²ÕÝÇŲåuç±l]p:¶lÑ7Çs¬X¶¼r,[ôí±l]_óxy X¶ÚËÖ>Ï ·St>×ù>âxR~8$î@ûèX¶Ö—<žª·ø×cÙ*Þ÷·ekòmdÙZôQlÙZ¶mË–yÍcÙò¾Ä±lM÷i°l/y1–-¬8X¶²ûÔ¶lÍ ·$ËÖ„C²E~–-ÎÛcÙò>Ʊlq>Ë–÷…eËûªX¶†Ÿ»X¶Hå;–­dËï?–-ú¦X¶:–+[¶<¯?–­î¾îcÙ²åË–­Ê÷»oKËcÙ:ß¿tþê‚ÛÉ>_õâxötˆz÷qó“ÏcËÖxq–-õYË–Þ[¶ֹDz•^Ïî³-×¶lùßÛ²åó9Dzu‘dËVs_ËVÅÒeËVåï³e+Á)Ù²•àŠlÙòXv,[/‹Ö¶lqËÖx¾é<Æ|s<ÕÏ¡cÙºÈï±e‹¾+–­“ßcË–×aDzEž–­ŒuË–-òjÌñœü,sr¼âxÒpßË÷ –­“_cËV%Æ–-ÏKe Ë–-žÏâxb{Ò¬ ‡ûÇ} s5{õ×û⋼q<»o‘\õ5 \yså±`Ù"Ÿ ËVû’Ç} [Âlق법¿p<{{—z÷52“-[p¥¶lMòÿt,[õ±jí¾ã–-¸A,[åÉÛÙ–­ÃáØ²Ung[¶àÖ°lñ|Á²Åü Ë–-DzÅóÓ–­bËV_OþN—•ʯ_–­HÖß'ËVwŠ7–­jËV‡ ·e«÷§²Vùï—e«Û¶Že«7~ž,[ýäɲÕᦰlù¼Ë±lq}cÙâóÀ²Åü Ëó ,[äkÚ²u-¬Y²æ\X-mÙºæWËÖÅýiËV ³p:—ö™Ó‹ã‰}c?¶l]×Ãíì}MŸODzœÜÎÞ×¼°vɲÅyu,[y†¶l]¶ `ÙºªûVX¶ªûÂX¶°aÙâ¼9–­ŒË–-ï+Ë–óTe+}áxÜþþõX¶¼¯v,[Éç÷mÙj'¨³oÚ_y<N ËVkäËhO¼Õù¥X¶*–[¶êàë²lÕŽ5L–-ö±lU8 ,[™ü[¶øümÙ*?°lŸsÀ²…\ËVáóµe«t¿-[ÅÖ;,[‡{²e«À¥Ø²ù¢ú÷²l¯±l•‹|Y¶Šç‡X¶Jû’dz­PâhdÙ"ïËyŸX¶J%_Ç–­J-[žOËV!¯Ç–­Bþ-[ù dz­O—ë%ë“ò:lÙÊp¶låå>¾-[ÇêdËVÆ*cËVžO>OŒÏœŲ•Ý×ŲÅþ–­L¾—-[1¿§^ÚübÙÊNDzEž#–­Ü¿Z¶'fËV¦ÏnËV¾ø{Ô÷Ï×/ËVnpA²leŸÓÀ²•É{±e+W8[¶ ù5¶lù|é±l¬T¶l8[¶þX¶2?Ï–­Äï·e‹ü(,[ä™ãIXÍñ¤…ÕKO¢hއ|D8ždË O:/Í×’ûZp< NÑÏáÄÌñ®ËOrŽ'ùÜOªX¼V(qŽX¶È»Á²UÈó±e«|åx÷…e+ûzƲ•ÉZX¤œÏ¶l‘†eËg7eËy™Ç²åõÞ±l9ŸàX¶à±l‘ï†e+Áéìñ+³^2dz§/Žg[¤ôóö}L3Þ–­ÌzÈOLcÜNX9ÖÉÇÙxÔ'Ÿ', ÎVO¾×Kã•ǵ9šÍñD]ÈÛ ‹Ì"?IOÔš_ˆã‰Úœ-[ä#aÙ*_òx¢n/Žg[¤¨·e‹|#,[ÎÈ–->O,[æ*Žeëp4¶lùœà±l%òvdÙÂ"…ekò<·ekúœ –­és‚X¶&ÜŸ-[“ü#[¶¦ÏùaÙšÞIJ5±pز5—†ekb‘±ek^XºdÙš ÎG–­Xf ×aY˜ž`Ù:&[¶¦çŸX¶¦?ßcÙªäÿزåù×±lýŸ•ÝOoÓ0Çñ{^…éaZ›Åv{dˆM «Äq([™Šúm ^=±Ÿß÷Y+$Ø.Õ²&N›&ql?~>ƹQ¶ÔßæÊV§Ï‡²E¾”­Ž|7R¶wFÙB™AÙBCÙ"ŸÊŠ Ê–â:Q¶Èχ²•ÉÏ e‹¸6”­,%e+w%eËÕ%)[%_ÒrQ¶2Š‹”­¬ëe++Ne‹¸8”­œQ²ìzÍõÊ”­¬ö ÊV&ŽKÊVF…‘²••¿e+{Ž)%Ùó防•É—#e+'ò ™²Eûe‹ü([9ÇdÊVf\[ÊVލV¦èd¡leƵ¥leƵ¥leƵ¥låž|:R¶Ntþ£liÞ +[êïre«#”-ÍËqeKý±®l©½åʪÊç7ÊÖ„¸)[ÄM líåß©ÊêÊÖa>žGU ek¢ã²…R†²EÜÊ–ê?W¶4OÌ•-©Ð®l‘_e‹q{”­±âTP¶<HÊ–| W¶PœP¶P™¤l1Oe+§&e+‘JÊVÒ¼m”­4Õù/e+©½…²UK,®Æ”­„J&e+).e+©=‹²UòÚú¦l¡‚£lyÜ£”-Tp”­ɯcÊVâú‘²•Èß"e+iž%ÊVŠq=ÙÖ·ß_ÊVB铲•z©IR¶ù\¤l%?)[ä[DÙJ\oR¶’ç2e+iüe ÕÜ•-Å•»²uò¨jMLqêÉÏ3µ÷÷ãxJ7ôŒ8SfÄõT¥JÏ®li<Е-TK”-=Ÿº²¥ö+[û—²Åõ…²5>T¶"õ‹”­Ò?eùvìú‰ÄIÙŠÄIÙŠ¨~R¶¢ü”­H>6)[•RÊVÔ¼/”-æm¢lEÅÍ£lEÿ lц²³Ž”­˜‰Û1e •eËã6¥lŤû»”­¨çY”­¨ö#ÊVT>#”­m<e+ªÿe+öÖ¾qeKý¿®l©¿Ñ•­Že)[Õg®l)_š+[º»²%ÕΕ-ÝO]ÙÒÊ–âz.›Óys|ÿáü4\ß7elcö_ﯷÍñÙp@Ãük˜Ôºdì/¶\ï‘Фù&|jßÂp’µ»ÝÝès˜¿n^Íënþ]NéãªSj {(§½XÞ¬6£0ÿöÄJ­’ë$·ážTJ8ßínØþï/wùòmcõó«6Áò3hqÂeSÚ1”îÑ.”à³Ùþf“:ýÀ7³EmÖÏÊ~R}¿qÙ Ò,Tž¢Ì=1ÜLÅëì5/Îkq‡š­>­FkÛR]ùÿGJE—芡š.GêÍâûz±=ºX®–wO?â”3©Oeõ·ÿ8 ÕØ.W_FC38´ëõ3N8«Õq-ï|¹-Ÿh¨­ÛÅzõ{ø+¥ß„ÛÅf³W틳ùÕèù{˜ÖëæI{ø±Ú,~ßfø÷bXñ¨|¿_«ííÞ~ß7¨Æ]Øendstream endobj 634 0 obj << /Filter /FlateDecode /Length 909 >> stream xÚ­VKoÛ0 ¾çWøè ‹*Y’m è€[‹m(°G€ÖÜÄIØqšG·ößGŠTlgÞ  Z²ø‰&?R-#].¦£ÓK­#%…“NEÓE”«(³™pÚFÓyô1VrüiúêôÒå=T*ÒÔ ¹‘ÊŽU\~…×v¯ ÈÃÓñÄŸ'Zëø U Ånï5iø›QI¨,êrÇ–>ƒÌHÿºþ<þ0¶i\T¤½FKãI’Åst§â_"nµ$ˆïc7‰ßa`#ÉT„öÅt¤ ##©Ä é\¤s)’DG³zt?™”’®W…yð“¢ ÚÏ– þ—˜+`p¢´°Æ)kÄlŠçjeFÉ­ê`Ké/Ðîœ ¯‹u¨ÉÕÞX=åçÊKµ÷U[Ñ«šÓKe“nâÀE _Š]</Råâ{˜ûÅ3Hœßr‡½‘VBƒ"@p5=êo™ûdM9À᳟i{g¬ª'öµÞ 5Äó Mù6¤{óžµ&÷~Y“œ’Ç6¾…Ï„ŠUëæ‚dǵšÝ™3W—ƒø ‡lp×3ÖùÓÅ y$ØíŽ“ ËÖ$†b^r` ;€ÄŸ\ñXãG²”v±°ì(L*’yÁå¤`Ϭ8;ïßhu2dV)é,¶^΄e\MØ:CêŒÕÈB⇕Ÿ‚Ý'(XɼŠ`‡2I2ØÍò_Ór}”Oª‘czì ;>úÿÏŽéÄe˜˱Ù>$0„ê”%#ˆeˆéˆeÖþŠ¡7ÂÙüiáü+5v™„cJ9{È8G¢âXú¶qÌŠd8ñíWXÿ¼ +L“Sçá,¸k0‚å„#5”Ô¯}IùýaE#ÍâGÔ‡qnhS÷»EÅÔ€Æïš[ê“C§ƒ?‡ÃÎ?#ÝQj†o)ÓÛ$’<yjÛ;Q’r¤®w² íTU \K”öÛcÒî>FFpË$ÛŽ-œ=3¡teD¢M0{ç­¢º*ƒ[HÇØŒÉõŽx`¢wGƒï·-lÖ^¸ÊŸÝ¦¾éáJ‰endstream endobj 635 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 636 0 obj << /BBox [ 0 0 504 504 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./flexsurv-haz-1.pdf) /PTEX.InfoDict 511 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 513 0 R >> /ExtGState << >> /Font << /F2 512 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 30273 >> stream xœìI«5Kzç÷Wœ¡4ðqôÍT ì*0Fh $#Ž ’ÿzçz×Z‘±/²Û jP_Ý—Ýœ]DfÄëÉ_ô•¿þòë¯ùO_ýÕ÷wj_³~·öÕrûžå«ÎüÝË×ßüÅ×ùú¿üë¿ýÏÿî¾þð7¿¤ï”Ò×ýïoþð?þò¼5}ýÏ_þøO¾Òןÿ’¿þèùß_þ’ñ†¯ÿðËlß-}­ù]Ò×_ý2×wiª~~Yå;­·êß»¼ÕþžãT»~ôV¿u­ï^Ÿ*§ü]Ö×ÎßkDÙ¿sùÚÏ¿;Êõ½Ç×~Þ¯æò½Ò>³ãÃy|ö…ÕŒº¤ï¶¾ð©±¢nßµ|ác©G½¾óxêçýñz-ØÎœŸ÷ÇŸ«ý{=ßW26õÆåòüüôÜ*ö,¾&Åëm~×çûjúîuÏØF|íŒß×;޾6·¨×÷z¾¯Î﯂&¶o lhn±Ožz&ìüÙï9ÏÈ­}ïØÞçˆ<Ç ·g7Äö­øá¹=*¶ç9*ß·¿_ß8ø™-¾oÇy“{Ñö>Çæùù?ß_žýüalF|¾¤†Ã‘»~yv4ŽÇsflyv4ŽÇHß#>ÿg3S¼ÿ9>8ãÙÖ-ŽÇhú…¿¯Äï{ŽŽÇóûWüž9ãx<õÄñ,Ïñ™ÜÞ8Ës|p<ðûãï?ǧñûVü½çønïŽÏïøaøû uM)Ž~ψºÅñxêÒ£^<ã»b{ës|âx<›Q£<ƒû¯>Ç'óûâ|¬ÏñIü¾•¢ž<Úõ9>ƒû/í¨;ÇÔߎOÉãUŸãÇcâm¨'‡Î§Ú“ÇŒ×{óñX9êÅãñÔñ÷žãÓø}{F=x<¾ö©ŸãÇcñxÖ§Œã±ØÕçøÄñxêøüs|âx¬ï¿ÿ9>ß×K}ŽOá÷µøû»òx¨}ª{ðx,nO{ŽÏâ÷EûÒžã3ø}sD½x<vëS?ǧòû6ëÁãñ4òø}­$ÍßÛJåñØhÅQOÍó§Õè ÐŒDûÓj\H¨küžçøàx8OÍ¿ÿ4,8O‡íI{ŽŽÇSÏxÿs|p>Ûþ ŸÝ¿ÚWýÿÙÖµ¯†?ËÛ4ÝHé¦ ÷i¸Lp„õzt{ºaz_θåjçu•×Êhý•×ô'ý†ûÜ[wmÒ¿º¶´EïõÜs<·jq}ÿçÑßûéüœå3éãç©ô÷~¼ ©íúøßy6ý½¯ÏIõ´|üxý<8ºü~iø…ÃmŒËÖâÖçGo>åÿb#÷ÿ|‰âÞ义ÌqòüÀ?þ½ÿúûÏ[úú½¿øÓ¿ùÛßÿ“¯ßþÑ?rSŸÿ|~îtœþýŸþ¯?ý›?÷Öþî©áwO ¿{jøÝSÃïž~÷Ôð/ô©HN ¨{´Ïq¾° ÉY_Ï>­s\­ìD¢M¯§A[¼ÊéF2Zˆòö#x,`ÓÈŽMc\:êIД±©TWò\н]]És†°kPWòœqª¹+Y[•º’çgDÓ¦®¤¤§EÍoW-äx»’’Ÿ{ýv%åézê~»’RÊw©oWRžÍåëìJÐBÞ]I©Ñ®$ZÌúv%¥Võ¤ìJPÇ¥¢®õœoW¯¯·+)µ±iRW‚:.Mu%ñz~»Ô{¿] ZìhzÔ• fSÉ®ï_ùíJPGÓ¦®¿'ޝº’óûÕ• nãíJÊs¢ëWW‚ý¡®ƒ7Òå9©ÚÛ•àm¥½]Iy® ¸ÔÕ•”2x<Ô•ÄñoW‚:ö¯º|~\] Žÿ»üÞÔÞ®Û;ÆÛ•èg®¤T5ÝêJÊs~óûÙ•àgs°+)Ï­CMoWRZQWÍ®›Å÷³+)­c7ž®¤47ýìJJ‹Ýxº’òÜJÜ]IyZ„hÚÔ•”®®^]IéÏnœoW‚Ý4¯®¤ôÁ[)u%å¹µà÷³+ÁnWWRž[Ýß®¤Œç2¹ºìæ¶Þ®Ïž±ÿÕ•”§+åïcW‚ÃPëÛ•tEãíJ šÞõv%8Lqk£®¤»\«±­ìJpi±©cW‚SwéìJpªñ)„]Iêõv%eé®G] vu¿º’ú4ýÑ+«+©OÓ²¯§œás¼]I}.%6õìJêðßcWRgç©£®¤®Á»u%õÙ,vmìJš­º’–§~»’V:›&u%íiºØµ²+Á§¦º¼^òÛ•´§ieWÉ®¤¡iÍoW‚ïçö³+‰3n½]IsG¯®¤å®ýÁ®¤¥‚:] ®>E°+Áöæ«+©;©ieWRWSÓÇ®¤>—^ºº’úlFu%wQííJê¹ëgW‚>å°ÍF §v%õiªâ®Y]IíºkUWRŸ¦OUìJÐBñ÷±+ÁñK]]I}ÎÇ~u%µé._] .•|u%õiºg~»|¾å·+Á÷ë)„#*ÏŸ©WW‚íYëíJ°ýÑ”©+©¸k­oWR94yº’ú4q+ ®û·^O%8û~»’:‡î¢Ù•ÔçüŒóG] š6•ìJp=±ëaW‚¦ª]O%ø3qþ¨+©ÏeOaêJêÓVŒ»+Ù[]º’í¦[]É.júÕ•<»å£+yvŸ’Ô•,í_w%s³é=]Éàþ;]‰nNWRÕUº+y¾/Ý]IQת®äÙÿq>¹+yþ ŸšÔ•à©b^] žÒÆÕ•<]c¾žJÐÞµqu%]×£º’âóK]IiêÕ•àÖ'Ž¿º]f§+AãÜî§’gÿÇùì§ ßæ·+A³탟JVæSäy*YÜ?ç©dsÿú©äù|œ ëÏ_§Êóo{ÎB …Í8~Ïɼ¢‰ûìþrÆÉˆ®!Îñ§¬+ÊxZxJüŧŒ3òùË1 Õ8,¤§þ§ýÍzêyžoPÆÏ}š¥§ÊÏÞˆ³[ÙŸ‡ ÄãI…2έ§Ï=ž˜¢éZÑ„ ŒNóéR‰2~ó³;¯4ú°cT½SÜ1lþ]4†QòQ÷)yÿþlxÅWoüÔ%~i>oU<Ø`¨ŒÆ³±Ø_%k¨ê©±‡ž::dÔ“¯ëó=žýJÖÐYâßêé×7¿óûzÃü<qè-Åj>ÏK)nPóù-Ek‹šCqÏIÝQWžTأؾ¢‹,vê¦ï{Z—ž¢f§öìÅÂÇOvÊ9ŒPsûpcÄ:Žvd®|\=C•ø½Ã?®þ¨ùù‰« 5ÿs¯’øþžT7¾>âû±#°=S~‰;Ÿ¨·ê¡¡Ê¬znÖ|~}ZÏuåçZÔ¼É)Ú¾å¿×pº¢æþ,Ñšæ§Óçƒøá)êÌÏϸHŸš7)¸¨QOßôÄö¨“Œ/Qóù/äZ-ŠMhãÿ¦ê¥¡×óü½£æMÅs£‰çuÜ´TÕØ^<²ŽÔ¼ âƒ-jÞô=R+×øÂSO~^CÃÜ^üYÞ´Mα6ª¨óŒ:žÇPã|CÝUch¦ÞÇÀEåбoò2¿çOåÐꩺñûÞ¡j~~ûõ÷Wý¾§uFËñ€¬çwÕóêÅ×9tüÇiÓT¾Îöw“ƒ5ß¿ð S ¬µ¦ÆŸz  æßНnžºmÖñ{ŸÞ?³æMüȼ>–®ŒéOOón|=nZQÇþ]jñPÁ÷³}1§=߯ýµ5Õ‚›ÚuõÔÈàëú{q·‹šÇÿ©+_çCÜÐþ9S+±!¨gSþ õTÝù~?>øÇeTT¾¾‡jôW-©ý{j´¯M¨Ñá²ãCRŒÁFÝT?'ZÔgª‡Ÿg{‡»7¾Ÿ×ãäñxjî[¨¹?0éÇ÷7~?.ó®Ç7iü~]?5²f\øÑ $ÕƒßÇöfÆ@êí‡>´gO3‘<5…ëuW½fÔšºêذ¨·êÎ×Ù>õä÷ñzŸ FÍí‰9Ôl¯g<­£^¿Äýš­¤ýUóTጻËÜŠŽ×SÌš¥9úß§nœ:+œj+|HÉ+Q³=^Ú?E××S/~žiT¯h£öC0Ú»¦©0Ô…ïÏ|=ž>PsûŸ{;ô_OÍþiÅ$jÞ¿¬xz‹zªŽýSu<§¶Póóœ lMûcs¼»5õß;æ¢æxnŽþü©5uX8µØt<¶öOãCA~n/köGÏý%Ú§§›àö>%¸žZ×ùþÔqýh<2omOW{‹§~^ƒ;î皦Ês¿çsçù‰zqü?yüýsÓýV "̨£½A½X~_áñ¼þ„¡®~½sêµvÕqþêþ 5Ú÷¦ÛkL d~¾5Õƒ¯wbd~~Õµ¾S»¨;?Ïñᙨ95™¢cD͇ò§Ž©ä¡©Ä4uá÷q{ŸýYO€Ù&´ç}û÷uQ=ôzìç~Ï@µâûwbû,”uì­þ{'^›ÏèQ/^ï;FPóxîÂëAÏ_¨q¿ÈÇП˜4謹½»±½ÓóWŒ¶×@Çøûqÿ—£fÿðÔ8ÿP7Õ‹¨Ï·-ÔH“H5e£hñ÷*ÀŒõæ|wû+<ærÒ"nÜPNZÌhO1žUO¾Þøþ˜ý@݉béïgM*žµD{4<©U+Ïߦó¥hÝS7¾Þ§êMû W¬y>Ô×+j¾mk:þu”“^‹çG×ñ­Á€¡Žö«âÁ›¨!y<8«Žíiq ­¬ª+ÑJÞÈz˜UÇþÑófÑž!¾7N¬¹?žzªæ¤Z‰öi O܈EFÿÑùUãþpxÒ¬w£œôêÇwèøô T‘_¿W¨'fg3Q²TW¾Îó±o£äQFâñ¼ÿG-‘ûkd¢‚z~‰Ù`¡žŒöljû0»ª×ù}D{1lUTã~jhü“ˆh 'Yq?@´°TÕB ùûÇâùªçÌfÕ[5î†ú«˜½å뽩.ýBgáù¹4)9 Û¿%TsÆÄJÔMõdÍIÈÙØ¾ mÄìoã÷q’xv¶_›÷£˜ ¾ÑGÔ•¨£xœÉöIÏG1iÊ×¹?fL\ æö¯Äók«ý^™íƒžPO¢“œd^ѰEM~§½äõˆþ½µ,ª—ÐK~L$E½UoÖlŸWÜx4³.N!â¶,~ÿ F2ꥺÍäöì˜DÍþç© _çù¶9Ë8“ŽÏŽ¥¨® ]~}eÿ³c`'PÐø=›‘Sã{¨7ÑPŸ­íÉÚ‚‘QOÕ¸Ÿ™ÿC]…–r’š(ûúŽ÷§FOëŽåö\ª+¿hñæœët½cà7êª×ê˜dÆxÑf½TO~_?è._ï|ÌüF=Uw¾×3êÍï'J›J´OSýKñ`ƒš“Ò˜íQoÖœ»êo1 ëÏ|YLÊWÖ1©žõ{ Ç¿[Ž :ÞþŸõ ‰ærŸ³Á³=žñüŽaa×?âG[Ž sÒòuB…èö¬ÚŸ%N”¨·êÆ÷sÿηNó`˜¿äçD¹Èˆèt‰ÍÌfõàñ¯† 8¿ Ö¥¨ŽãÝ8þíÓ4ŸV‚ŽÊæõPDÐ8^z)®/=o6‚¢Q½Žå`Ÿ\/~ž<^åüòlâïªöGÄÀ‰Ä6çû9ßlu\OMçOåüú?‰ºðý³¨ÞªÍç%~~%ÕŸçùW¹4cj)BÃ@;¶Gók }+êU£½CM4œó¹xÌ‹ïoœŸœO”Qù:Ï-½˜‚–Pc~qŠ¿løàëüûó·SÏ·ö¨Åv!Ô¾s~vêy¶áAšŸŸFÓã|ÓÒ…ÖÏïåùóôß±§Î®QAÍß7ô÷§ÎïÑy½k|² ý½)^rˆ'Ÿºþç÷æÔñœœ›KÐÍäü×Ôøb›z¿ÖIµÉù®©ñŶ8t —5Ø‹xl‹óOSýYÛœoBs>on/ZÊ05ÿÞv'4“x<{âø¿yÕž8ß±4_Ôç3žz³ñ|ºÌôÄù‹¥ù ž9~¿4^ÖѤ¨ãþ±ޝ£®Qs¼ðLÔ˜HÇçµ4ª·øa¨£þpžXûÕ^ž'¯ž'oNOŠçy±¸šÅó Šç){Ïc4]Q<§)ÏãëÃ<ÏjšŸϳ|>ˆçY†‚Åó¬a¾‡íÿ:ŸÄó,Íg™çYÃ<ÏÒ|yže>A<Ïs›+ÞGûCÏæyÎúñ<;±ý0σaª©íÛNæiÈóð6ùçð(xž˜Vçï pÓèéâybš}¨ž=jý=®ÈÉÕ/â0žÌëtÖìÈó &¯ÅݘvççƒçAM~Œ<¦ÝÙ^çÁZÞÏçAMþ’<jñ:Ú?^/Jž§ä)~rihüO<jòwì(Q¬ºðý‚<j­· žkàÄÿp=æSG;$¾Îù7ò<¨»ùôej>/éxNEçA­è.Á+SóçlXcýíTþ’Ó4?æyŠ×Šçöñcž5çÿÈó æïËÚÿÛ¼Pð-QûõÎ÷sþ˜<jF-ç ŒäâyPsÿ“çÁZ0®ÿ%σº»n|óéäy¢&¿Âí­Z:/žõá{–Ö3³ŽçXÔóâybýó‰Òàziñ@Í룻×G¾øõ¥õßäk‚çy×[“ç‰õÖæwÐÿpØéǼî'ª]‰ç‰zªFû]»æûÉóDM>§óøMíoþaÔÜ_äy€ñ´‹ç‰õ×σš<yüyæ߯çWñ<‘åsñ¯ñGñ<øYâi‚ç)‡o$ÏSßȉ`ÔÙ|Nf->&xÔïw~~˜÷Áým32ô{õü*žõ6ßÓø~žßCÛc^„<j^äyPó=‹¯ëïσZß·y¾˜÷ σšíÑÔþÙj¿ÉóD}ñóÄ–îŸÄóDÍ׃ç‰Û,וß×Íï4~žç3yž¨Íáz[õÚCûºÌ‡çA½.ž'jó;‰ßÇùnò<ÅóaâyPg¾^˜Ïd„<jòäyP3<n ¿ƒëï©ãüÏuÌ÷gý^óäyâ¶1¾<êFÞ'VË2ï@žõb<n+»ëÍ"ò#äyâ¶“òò<¨9IžÃɼBârÓü&ydµçñÔ¡mÙ|ÏQï‹çA^¤øšÊÄl^‡Û‹ÝÄÏσaž/äyPßÑÐcXA¼N¼P=ÿ žÃ¼>Èó æü-y #áÀ4²ó˜×@žõ¼òyjÓýƒxžŠi‡®ÛÓÌ‘çAÍë?Éó`CùCÜ?]ãOây0¬QÍïàúðx¨xžö`Íû…¾œ÷Ìþ¿;¯’ç‰,ÌØßäy0¬“¿ó\¨¶iW>jñ8¼¿]Î_'ÏSýü.ž§.ç•‘çAÖ&Û'ò<¨É[’çÁ°ò{x?¼¦óуç‰aó:è¿—Û_>(£W>êy…â"Û“ü6y„Úvó=Ï ¨É?“çÁ°ûò<6âõGž§n­×ÏSýü&žÃ@<äy0 Äö¨‡ùž§!‰a›®z¡Ö|ˆxÔËüB‰“Ö7‹ç‰aó>Ïù‹ºúýOûŽšóûäyšCaÅó`˜‡óñäyZªVŸÄ->jÎWñF5y ò<jæwꊚóäyPoó;MÆm¶ùžV£fyÔâ…‚çiÉóqäyP‹? ž§%åˉçA­üžàyP/çï@x•œ—ó¶ºxžæç;ñ<Í!»âyš·Åó æñ&ÏÓÌKŠçiæÅó æö‘çi~þσz˜ß©%ê弞Î÷ï+ŸÃdœ_%σšóóäyšïoÅó Û6]ù<¨ÉçÁ0šx¥àyPÓ@žÃjy=>xý·x8õù˜@M‰yžv$ äyš×çŠçAÍëŸyÚý˜çA­ï ðµ>OÛÃþJGö°Ô!xž¶¯<jžäyÚ6@žµòzâ‡¡Þæwp>í-ÿyÔœ&σZ¼Pð<=%«î‚çA}çó`š…yäyºŸ_ÄótÛÿ˜çÁ4ÌÉëY¬û•ÏÓ=#ž§{'xžž­JdG„šç3yžž­*$ÏÓ­σi2ž¯äyP‹Òöhý‚xÔ’‚ÏÓKÒþ$σš¿—<¦Ýx}’çé~~Ð@jñ5q£‹šçyLÓµ‹çAÍë<¦íî|ÔÙumQóø“çA½Í÷L¼Þį‘çAMžˆêuåóô2ÍçÄj©ãÆ¢—i(xÔâ}¬èÅí%yž^_<êqñ<Ý>ñ<ÝÒ$ñ<¨ë•σšç#yž˜uΧZÌÃσZ|Pð<ÝùþâyºŸ_Äó ÖïáöÔöæñàz©Ê'σš× yž^åGÏÓ½~CêéüœßÎßÏÓ«ÖˆçAÍ<ò<½*/KÏí=9¿'VQçõàúêæuÈó æùDž§wñ­âyPßù<¨•¯¼½äyú¨þ¾˜BMŒ<j}Ì'öÑý{ô{»ów<èV‹çéÎóÏÓ­ÏÓÍS‹çéησz:¿ýÛP>·xž~ò¿Èóô“ŸEž§OùQÄó W>O÷üˆxžnÞUOß…óWâyú–ßV<êÉüžèhúVþ•xž¾u<ÄóŒ$I$\Ï6a: ÿ®çß>ú¯ÎlO3=éŸc¢ÎËFy²?WU×]õ×DOðçXêóm©'ösªç¹ìöO¯xUëõÙù¹ªÅ*ءػ®Èû,%N’,YÊÜþ{±wû,eIŠõ1š)Ôg-Íì’ôY êèƒrªÄîPL¯0Ÿ¥³L”ϲ”‰Ï²È‘ŒÏV””WbÏV`»Ÿmßùž§ÜW\ÏöjrÒ=Ûðáž]5÷N¶gm Ú³›I  _¶A‚=»û›cBnwc?ü‘ã}õéö0DPϞΠ¦g«‹Ò³çKð ‘æÕz2¡ç$(¡'™RBžï„žd£™zRÑSBOòŠy%ô$ï%ôø Ð ='AD =I‰æNè1±ç„ž4^â'´t'±‡ =iš¸aBO²!H =8’¬µ?¶#”ГÓgBO¶ñE = äú9 =Ù'z0£³U#¡'W¼¸½Y#†NèÉ6’(¡'7'ð0¡'7kU™P“•x焞ìsC =ÙD—zò°Œ =y|&ôœÄ%ôäi"† =Y+&œÐ“Mà)¡'kÄÖ =Y+8ÐSlȸÕñÃýá'(·º‰'·ºV2ny¶[ÝDŒŒ[Ý›Œ[Ý›Œ[Ý„ŒŒ[XízÒðQ/¢' $hhÜêN’q«+aÔÆ-ÏèÙ¸Õ—‰ íŸCÜиe£‚[C‰Ò6n i2nä÷s{Žæ\Æ­‘ÄÄΣ¹–qkhE™[g†PÆ­á&·l°qkT'êиå'F·Fµ!Љ C z6n ÏPɸufeÜN4‘qk˜øq ‹’êZßE6n“0Ôð?œØS™ð¿®„žH俈žHàïªÃÐý÷hÜ^/ãÖèþ{4n ' È¸5¼"_Æ­Ñ5C)ãÖ°1FÆ­1¼?uʸµ´âÒÆ­ULüи…š„[Ë„”Œ[XAßTkˆ¨¡qk•—øÜÿJСqk¹}–qË+îmÜZ6øÉ¸µL0˸µ4Caã–WäÛ¸bf©ŽóOã 6n½5W&îmÜZz~¶që¬Ø—qkyF_Æ­UmÄ¢qkÕ—ð™|}^DO¾‰ý}YdܺëÉí9 >Ú?ó"zôñsŒ[w]ögÝø÷–{¶^7Á“Çg]õýÑsÕÕ öˉ=}~Ö[ï'QDãÖª6€Ñ¸µ<ÞÏþbB„Œ[Ë„D9OÄ[‡p’që®u¼o¢çªiܺëöñ:[§–që®u~œz×ë÷ɸõÖ4n-'ºÈ¸õÖ4ní•që®7žîóû&zÞý'ãÖÙ¿2n91ÂÆ­·¦që·Îñ“qki|ÂÆ­»®å®iÜ:绌[çzqë\?2n-=Ù¸uˆ7·Vµa«úx*A§ù|b”Œ['CÆ­»ÖñUB[K†·N‡Œ[§½qkéyÏÆ­¥&·ÜÞØ¸åöÉÆ­¥î6n-ImÜZÕ¬âó¹òû›¯yhÜZ"ÞmÜr{iãÖr–Œ[K÷Ç6n­jÂçl‡hÜ:µŒ[Ë G2n¡½¿z¢¾z®šÆ­e£žŒ[«8á‡Æ­¥ço·–VLظµdµqë®+?¯„·P_DÏU/ h4“qko2n-Íwظ…š[î¯mÜrnãÖ21Ç -j²qk¥7‘GÏ;Õžoê•Ð5 šâç%þиµ’· ãÖ2Q"ãÖJ6lѸµd ·qk%¹dÜÚ6vMˆâú8Æ­-ÃÆ-¨Ç¸µE@ظ¥çcÜRÂÀ1nm'òȸ¥ÔcÜ2dãÖ6¡#ãÖvÂŒ1[ç£[Û <2nm½dÜÒÔû1n)‘ì·¶xdÜ’ø·4ÞuŒ[Jì8Æ­¥ëÅÆ­¥ó߯-06n9ÁÉÆ-'<Ù¸¥»Ç¸¥ù€cÜÒxô1n-]6n-%Ù¸å„)·”¨p·Dà㠵׸Åýù·š ·˜Èô·xþ¿Æ-žÿ6ni¾ö·´âæ·† ]2n)1ò·LÚ¸¥ñ¥cÜê"„lÜêNì‘qˉG6n9LÆ­Ùù{mÜš".mÜš‡ðá|ÆÔx´[³±µqk*aÄÆ-J6nÍj‡ãë0ö1±‡ãµS÷W6nM%ÄÙ¸5õ|ÿ›fF'òt£a;ff.Ñ–}Bbt4*FG®51:J*£³x”Éèl=ƒ‘ÑÙÊX&£³uýJ°•4|kÁÖNH°Ut;hÁÖ ‘`«§`«xzV‚­šðÃæ¥JÀlÁ–à-تa$ت]lU]nlUOI°Õ¼ ^‚­¦/luO¿K°Õ8"Á–ÕlfañOoX°eáíl§±`Ël)pð¶ø~[’Y°µ~%ØÚ¯@+†Ã¶¦‹…ïïžZ?ëžîš‚­YŒQ°u×û·;€'­ÏºÕÏ×Ã]Ï÷S°õ~?[oMÔ]Ï|o…Rw­ãÙŒ÷´üYÏqí/ ¶Îþ–`ë¯|ޝ[ç|`kZP%ÁÖ´`%Ÿý_ŒçT~^¬³ÿ‰H°åóÓ‚-?>Z°5=},ÁÖ¾kÁÖÁg$ØšÙ/ ¶^ÜFÛ›XCÁÖôô¹[ÓÂ. ¶f6CÁÖÌš~–`k~òDT¾¿\<§=°`Ëí…[óþP°5u¿dÁÖÌð¡`ˬl€ ¶fòöS°5ø!ÁÖL/®“ùþ~ò æù&Áê¡zðó͸΢@¢9°góóõÂw‚‚(ª+ûâl -¸·` |¾S8«òs[c·áï?lëª;û¯êZý]5®ÓXSð'ÁÖP`›[CCly™[CÏól ¡$Ørà®[ÃÂ) ¶† [°eÁˆ[î¿-Ø¢`khñŠ[Â? ¶†ž?,ØÂÓ-Øòý[¾_²`khA°[ø–[Ã8—[£ 7’`ëÀH°54=gÁ¾v©žÎðz‘`kTæP°5$|·`Ë‚ ¶FùÀwâ~ö äAÝسø:Ïw ¶†Û; ¶†Û7 ¶ÆÁ]´$б`ka[#;p§Yø“¯@ž¸'ÞCaÔP Ÿ[ÃVl ï[°5’(ØIûG‚­aÁœ[^?‚-´Y°¥áó#ز0Ñ‚­m|F‚-=oÁÖ¶€K‚- -ØÚÚþ%Á–L`ki- ¶–…]lY fÁÖ2^$Á–†Ÿ`KÃÏG°¥çÙ#ØšÂÉ,ؚƇ¶ŸçªqÄ×¹-Øš<çùð¶4Ü|[Ã:l9€èlñø^‚­+'.ã ßÁók¿ð‚]øNá(þÏ+Ø2®lÁ–6liÕÝl\G‚->X°e[ÝluOçJ°Õ=½*Á–ñ ¶º…Tlu·X°Õ=}*ÁVWÿnÁ–…sl9àׂ­n¡‘[ÝlyA¸[=¿=½¼ãluI°ÕàoÁ„y¬)ØêÉ¿wzybü8[hf.|'„ÊÄU(Øzš¥å:Ο¬öQ‚­*¼Ä‚­j!£[UKØ-ت¼’`«:K‚­šŒãP°U5¿eÁVµ0L‚­ªåYlÕä@ ¶j²À‹‚­*\­šŒ+Q°U5^fÁ–×l÷?lYp`ÁVÙfQ°UÐgÁVÑ|–[ÅÂ& ¶Êæñ¶`«lž¿l¡&®CÁ–…Þl•í ¶0íÅ¿G™Šâly¹±[EË‘,Ø*hX°U¦c$Ør`”[œµ` ´ÆuBh¯€O ¶Š’,Ø*êÏ,ز0Þ‚­"A«[¥³}²`«(Pß‚- #ðû(Ø*Íø [E¹lõwlœZ°U´΂­Ò^\'ðõÅubþ¯¿¡`«8ÀE‚­RDÁVQiÁVÑõnÁ–—«[°UØlÁ–Æ,Ø*Âá-Ø*Âù-Ø*åßAM\L‚­¢ñ6 ¶ˆlÁVQmÁVÑø•[¥èxK°U²k ¶²ñ$ ¶,<±`+ûz‘`+;F‚­¼…[I°…8€+Ãbû äA­ÍßZ¸&ÁV>x[YËï,ØBük ¯²j$ØÊê?-ØÊÇ¡`+kþË‚­<Œóèï[Ð%ÁVÖrw ¶²žo,Ø2?aÁ–¹-ØÊ ³`+[À7õ~-ï¾S(|Øįˆï`ØS8矲úá;¨¹=ÄwP÷ ß)Yýð ³.â8ÿç°ìÁwŠ…ïİ.xßÁ0°>Ïù‹¤€"á;1ÌÌÀ˜è‹aiâ:_O† ßA÷ÛÂw0,ãqÂw0¬ûãÿßÉ_7¾•ñhõˆïl!¨Äw¶fèˆïÇoíŒ×¨Ü~< <¢ù'Áƒð‹ØÛDxÀL”—áA“VöÊ›´ÐrgEK¬•e¢X« µXkIÄ*Ž»œG#ÇS³Æ)ÄñàqóNäxð¸VÌõ@|Qû@ŽWœ''Ç⟥bã‰ãÁã ç¹Èñ@Ü#.(öÄ;äÈñÔv"~‚ã©g™;9žµÄ÷“ã‰ÛÑ+|§Z4*Ž'ÄNã qÅøÈߨBNp1;!Pð·8t×ÕïGnö¼?9žö'ºë[¬…z9–g'õ_O+ÙQ\p¬Ï:8ßs^”jÅq{й%r<„Ï×7ƒî-6#ǃî”9žèNɹpÔÃåD?€îrºÆöVÇ,ãA½Ìõ̵¸ŸàxÐ6דAøã‰îÕ\NR0þú»Fðtµ‰jr äxšŸ[ÄñDm®AëUÁ¬âxPÎgðóݱ=›ïǃz:–§óû%Ê î¥ù¹KOósš8ÔcUó;æO{E[ñQ_1<íľ4m¿îÅñ‘€8žvbcÚÙŠý‰ ;¶—\ÍÙ¾vÅð æ<<9ÔùŠá‰ãázóøHt¥í5ÇDŽ'DMuˆ³ÑµýÕ±@Ñ/ÇùsÅð VìOçñÖ2q<8ÿúÅñ æñ'ÇÓ÷HŽç=ŸÉñà|×öhÿî(8\a%^æÔÄõsÅð´êÔ3r<¸Þ§â YŠãA]Íí`ÿ.Osß$Ž'nŸ¯Ôõâx¢=p-¹BrŸ9…º9v§°½ÉÇí“_‡ˆ 4ïŸàxPëïǃZ?8Ô<äxð¸ÁþŒO;¢>r[O;±fäxZîæ¨‚ãAÍö‘úO~?9=þþ˜ãÁãqqý“µìI§Åépø¾Xj‰²:Å7ÉOûçp:ÑPq8žxœ7·ƒ`ù´Ü †NLönŸ³j\¿˜žà÷ÇQÒ-Ö ±’¹ˆ%’c›Èñ`øÜ)9ž?ñýÜ?IËÅñà~…ç9ÜÏpÿ“ãAÍûr<¨É•¾b-¶Gk¹½°XËóÂk ÇÎ÷WÇ"¯¬¢Çmq 9žêEq<Îâ<79ž…eÕ%îfQVp<¨Å©ǃº:v'óóùâxp8.Ž'†Û.Ž5çÑÈñ`xŽó¤äxP‹KŠÔÉ1=î옜àxªEÚâxb8p«†hnkÙ–8žj‘·8ÔÚ?ÁñÄý.¿/8•µ5Õ“µDdÁ­„èíâxPwÇò@´jѺc8ÓÜN£X®9–gS<·/ŽçˆèÄñà~óÂäx0œºËñòrÌQ§‹ãÁð,÷9žêeÈâxŽhOO=±äxê‰YÈÚ?I±$äx öã<(9Ôä4Èñ VŒ·wN‹ªâÆ5¿Ÿjräxêô<,9ž:fÏS³ûýÜÞÙýþàxB„hÎÇ{š‹ ǃº]j^_äxª—Õˆã©^F#Ž5Ïwr<ÕËj4€‰é„åXˆM_Ž)&Ô+qƒs<¨“¹ˆhÍQŠã©c[|•(êܯ˜kQty¸žÍÏ—‹ãÁó"¯?N8 ÖçƒãT±@qbq¨8ž˜Î¹8žê iq<˜âù@ާnOL/ùuœ_ýˆ¬âD„•ê~Åð V¬N4T¨O,žG»Ö¡ˆãAÍýMŽõátp¾v­CǃZb°àxP³ý%ÇâWþþb:Î5®_‹cÅñ`zo\1<ÕAäâxð|ÏöD¸<ÿÈñ„X7©FûæyT6/æzp>6-Ûǃº˜Û 1°9>r<1ý™UK¼ÓqlsìÌÐïÍþûÁñ w¾¨ëÃñiN'ÄÁ>ÈñTÏKŠãAÝ/Žuró¥úü ǃšï'ǃºšëAû_-z"ǃñ—~qq<]ëèÌñôâXr<]ã;æxÀ­“Û!ÇÓ³blÄñ˜#7ÇÓ5?aާ'q<ݱQâxšcÄñ4_ÏâxšBNÌñ´¥ëGOÓýƒ9ž6_‘V./GnŽçˆâÄñ8WÀOÓø‘9 ÃÄßÇÓ´ŽßO“ˆÛO«i‘ãiŽÇ¼…\9ž¦as<àœãýâxªbÂÍñÔÃåã©âžÌñpÚûåxª¸xs<¼}9‹ ÍñTñæxjùˆáA]Èùã©_1ÇSô|hާ,~ßoŽBë_–8+Ýâ¬é¹*‰³°¯8+¢v,ÎjŠáᯞ‚{ø÷âî鈳87*qÖ6Ú(϶ ‚$Ïv€ Ažm}9žíiBb<žEÅó”ã‚x¶Xb‹³Š"г,F‘8ËÞ'‰³Šæ¯$ΪþÍgYB#q– P‹³œ) q–†ª,ÎÒ G‹³Ä=Yœ¥q2‹³<í¦ø”,ÃbüN²ÍCñ;IþxÇï$OÃ+~çÄ#ÙžeLÁö¬ƒÅÈžåimÛ³ŒaØž5÷a{–ãIlϲ]Éö,o¼íYŽ+°=KþDÛ³²ÒÿlÏʶ Éž•³ã{hÏÊŽ/‘=Ëöge-±=+7ÇÏpä®ãl{–ãlÏŽó‘=kjZÑö,áÍÇže;ˆíYz,<ö,cV²gilÙ³ŽmJö¬’Þxž°GÙÞ"{VÑ´›íYÅ'¹ìYE~vÛ³Jy1ÁÏO¿ij¥~Äï –½Šö¬"ߢíY¥~`;8ìëŠßÉå`6²g íoÛ³¦°Û³¿b{–ã)lÏÒc›íY'>Hö¬šmÓâþðòÛ³ªãXdϪŽg=«jšÓö¬ªå¯¶gUc²gU-_²=«¶_Ù³º_—=KétÇže¬Äö,ùs=K·ÝÇž5×#{–|¹Çž%|øØ³–1"Ù³–íZ²gÙvf{–ã¸dÏÂi@¬„ö¬æóSö¬f›ìY^e{VÓm”íY-Û>%;SÖù"{Vóõ,{V+ÆfhÏjõ#~çµMÙžÕlÇ’=«Ùþ%{ÖÁpdÏ’ïúسÜÚžå8Û³úGüNÛdL'ìYŽ›²=kؾ%{Öp¼ìYÃñ>²g9žÊö,c§¶gMÇ×hÿë±íس¦± Ó{–ãÞlÏÒòÜcÏZŽÃÑñYÆfdÏZŽ·‘=kk‘=Ëç“íY¶ÍÙž¥tÏcÏÚ¯]+ìYÛv/Ù¡|þÉže¿°íY=9^‡ö¬îóQö¬nû¡íYù#~'{¹ë±gù|³=KÇžeÌÉö,÷/¶gUÇÕÈ%,ãØ³f{–ã±lÏjjßlÏêjmÏêÆ€´ºm\²g)íòس†±ٳƋåÈžuc;aÇòûeÏV${–†©.{±ÔמÅöíµgñü¼ìY¶ƒšßÿÚ³ØþÉžåÇâËžuÇï„]‹µìYÆÆ^{ÏÛ³´œóسò¯ìYž·=KéÌÇž%¬÷سlï°=ËÓĶgc5²g9žÅö,ÇØžuâdÏ:q>²giyͱgc2²gÛ¶do²ýÂö,Û+lϪ¶cÉž%lþسa{V5f${–§­mÏ:v0Ù³Ž Lö,c-¶gÉpìYS’=KÇžÕ¼¿dÏjØÎk ³=˘”íY͘ŒŽŸ§mÏê¶QÉž%Œóسºm[ÚÿݘìY¶!Ùž¥ëñسlG²=«Ûî%{–î—Ž=K6BÛ³<,g{ÖÆ„hÏBMŒåµ…]ØŽº½ŸcÏš¶±=k8~Aö¬! Þö,Ä­dÕU¶±®zÈ6va;QóuÚ³ŽLö¬áøÙ³ŽLö¬a,@ö¬aLKö,ûÅmÏËñB´g[™ìYc£¡}jìl'jÇíà~bhXÍö¬¡å`¶g M£Ùž5„Ûž5i{Ö‹MÛÍx~Ûž¥ç½cÏ:q?²g%ÅMÙž•ŒÅÈžå¸!Û³lS²=Kñ±Çžåø"Û³ò¯ìYŽ?²=ËØžíY¶-ÙžeÛ’íYŽW²=ËqM¶g9ÎÉö,Ç=Ùž•?âw¢Þªín´oÙžeLËö,c0¶g)Þòسd#8ö,ÇÙžU^,§0myã‘ÍM íYÇæ&{Ö´Hö¬éöYö¬i¬Dö¬i[ã8¿—6#Ù³fy±ž¦÷_ñ;¨÷…íDí8ž¡×ñ,½Nlˆö,/C²=Ëq¿¶gÍúÆí Úã„ÍÐ&5«ãnhÏšZf`{Ötÿ"{ÖtÜìY³:î‡ö¬i Jö,`|ŒçÑöiÚÝö¬éx#Ù³Þšö¬ƒÊžu×]ßç8m?kÙ³¦ûÃu¶·^ØN¤w_ØNÔÄlŠm~ªiÏrÚ·íYw½ë]Óž5«m[gºäÏzs{§C{–§ílϺë1ß4rÛ³N-{ÖÔòa۳Ïz¤»¦=ë­iϺëÅí'V´ÏþPÝl;TM{ÖûyÚ³Þß»|þzµ»¦½êLcÊžåýg{ÖÔ2,Û³Î4§ìY>Þ¶gMÛqdÏzëåó˜M:¿:n§ëõ¦zæÏZû‡ØŠìYÓ6Ù³îZ×§-eϺë­ë‹ñ<´gMcD²gÝu/w]ÏõÙU÷ùYëü+¶5ã|¦Ï|a;o-{–Û۳ܞٞ5Èž5‰ÈžåöÑö,·Ÿ¶g¹ýµ=ËíµíYS÷×¶g¹ý·=ë®ãz•ÍÎö,ÔWüNÔÄfhÏBÿâ¸Ä÷ ¢=ËýíYgÚ\ö,ÇSÚžå8OÛ³¦â«mÏrܤíYÓØ—ìYŽ—´=k:.Jö¬yâsŠûbR²gMÅÛž5µ,Åö¬©ñÛ³¦–Ùž5mÑ= Ý1Ú³¦±)Ù³f¶M‹ö¬iŒJö,ÔŽ×É|?÷ŸìY¾Ÿ°=k ‹µ=k ‹µ=kæl'ê+~'OǑȞ5${–í´¶gù~Éö¬™m·*¾ÿb\“ìY3;.‡ö¬™„uÈže;®íY¶çÚž5AÉžu°Ù³¦°SÛ³¦lž¶g9Î×ö,ÜNÕ…¯Ó^&{–ã,mÏòý«íYÓñH²gMÙulÏòý°íYÃ=k:.Iö,ßOÛž5eϱ=kó’=ë`²gM-;´=kj¼Áö,Ç!Ûž5&{ÖØŽÇ¡=Ë÷ÿ¶gá¶j©^ü<‡ìY¨›êÍz\ØNö²Û³†°_۳ƶ­‹ö¬±_C{–—Øž5„Øž54~g{–1Û³üüc{–ãBmÏrµíY8­†ê½^[´íYcÙ¶E{ÖÐø¢íY~^³=khYžíY޵=‹§õϱg¥ý){ÖX¶mÑž5ÖkÛüüôçõü:Œé }ò”Øž…º~l'ê Û‰:}l'†ç×Ávò‹åО…šßG{Öв;Û³§j{Öp|ˆìYCË*lÏòó¶íYÃ6 Ù³ü|o{–ãRmÏ“ûÏö¬¡e¶ga¼àÂv¢Žß+{Ö˜¶]Ñž54¥l{–ãTmϲÝÜö¬1?âw¢æ÷Ñž…úÂvPˆE{Ö˜¶aÑžu°&Ù³†íC²g ǧȞ5†ãthÏrü»íYCvjÛ³0ípa;QóûhÏB¾¶sìï¶gá¸ířٞåxzÛ³Æ0fC{Öög{ÖÂ6dÏrܽíYCËämÏM²¾¶5?O{Ö|¾³=kë·= ¹éë`;1MÃ÷s>×q·¶g -°=kh¼Ûö¬!}†íY£)NJö,Ô|ó·£ “‘=k(NÍö,Ôùë`;1>È¿G›•Ç mÏrü®íYCX¾íYC±¶g Ç;ó÷Ÿ%{ÖÝÔö¬!¬Öö,ëlÏšß²=kèyÐö¬¡ûmÛ³Ïk{ÖÐó·íYC÷·¶g ÅÉÛž5t?g{ÖÁèdÏrÜ®íYCó)¶gy|Üö,`s¶ãñ|óCãI¶g=·Iñ}¶g aW¶g£³=««ÿµ=«ËFg{âsãý²gu×ÙžÕÕÿsÛ³ð›^P'"t ÎDÿ!Pg±µ:ö,~‹íYíuS$PG£˜²guž³u Qy? P¶?Ë(‹üYÅæögmògñ¹äçø³êù<ýYu¼¯ONXsBÈþ,éöìÏBfS Å5ýYÍ9òga\‘5èæu÷ögyÝ¿üYÝ„ýYžp’?k4û¬¤#LÎÅ‘nP:Uû³¦ý(ògM5°ÇŸå Ð|ôŒÌeÀ³ò'ÀƒÓÀÀNè6!€gyYÏžÎÉ!À³§ù³tƒuüYÛÀ}R)¿€¸Û¤¼p<1¯dÀ\'Ûž˜×áçåÏ2ð"V.¯+òÁ4à`VV¥ýYÙ95ògeåý–&Ž?ËûWþ¬¢l+û³J³¯ŠÛËÍøyýYãWþ¬¡ãc–}Aög)ûø³”ÇmVÕ˜ýY^ÇgVUþ±ýYÕ~6ù³ªs<äÏÂõ5U—õæ–}RögÙ7g–û³”?vüYZ7rüYÊ[<þ,ÝðÚŸÕÒ§?«9ÇEþ¬¦˜ãÏr‘ýYÎ ²?«k‚Ùþ,_¿ögMçöÈŸ¥¼þãÏRÞòñg‰k>þ,û¼ìÏwkV7_(Vwî˜üY]ÇŸe_›ýY''Gþ,M –Ïwû³ì[²?ËÀŠýYö!½þ¬}<ࢳsyŸÕýýÇŸ%ß×ñg€ø?ù³ ˜¼þ,,ÇŸu€žÉü}ôguåÔÙŸ…Ú9<‹Ÿovß/à†þ¬>ìï¢?«P“?«+×Îþ,ÞæþVï’èÏêÊ µ?««°?«;Jþ¬.}ºýYÝ׫üYÝ@£üYÝ€¥üYýääПe¿ŒýY=Û7EV·Nþ¬ž>žX÷7Tw®ó›~=îo5afVׄ˜ýYݾ7ù³ºýnògõä¿O¿TÛêuåîwØŸÕ¶ÿýQÍ9MògµmÀ…û§íׯ%ÿ ¯gù³ÚÉí¡?«-¿NV›jåÏj‚íÏj'·‡þ¬fŸ“üYÜÃS¹Ž1]N«íœDÿÍÉá©ôÛL×½¿~û³šžwíÏjÃ@Œ¶w¨}“?«Ùï$Vj/äÏjòÉÚŸÕ|>ËŸ…ڀϦ?GÀýYÍ÷ òg5çÚÈŸe?ŽýYMëîíÏÂ:LÖôgµæ\ú³žší…üYÍÀ­üYöåØŸÕÜ_ÊŸÕ”#k–\ØŸÕÜßÉŸÕ ÉŸÕ °ÉŸÕœC'V³Tþ¬–óCVsÿ"VÓ€±ýYÍÀ¡üYÍëøåÏjž0–?«j@Øþ¬zrzèÏÂ0 kú³ª'åϪË>-ú³° †5ÿ~ÀjV]öwÑŸU—ü2ògUå.ÙŸU£"VÕ‚:û³ªr4íϪSîògUM¸ÙŸU§|)òg¡öëòñ|ø³ŽoGþ¬ªëÍþ¬êÜù³ªs]äϪÊU³?˹ÎögÕîý==ÙŸU5!b–s®íϪö9ÉŸ…y/æôПU«¿þ¬ZóCt°¡?« †þ¬*àÞþ¬Z(ÉŸUueV5°"VÕ‚çîØWïÜã«QîN•й;5Ù¿ÅÜ*¨swœ‹ìÜj”rwŽF¹;E ¸œ»ã\0çî '™¹<ÌÝ)εQîŽsÍ»ãtçîM;w§h:ù;¸­«ª'ëÜ2ìÇbîNÑøŸswÊPîrw³|çîØïâÜœ&|ß?/€'|.Œ¶ý,Ûµü,'—g¬××âÜÒìÃbîNi:ÊÝq.³swJ{û^ ô,úXx})w§Tçø0w§øüVîŽd:wÃü[õ’OåxP°QîNàìÜâ\/åîûü”»S l)w§È—íÜbÀJ¹;EÏÎÝÁc æîØÏâÜ¢ùçîåh:wuSþIÊÝ)bîNIöo1w§èQîN>swðصUOù_îÜ“ã¦Üû_œ»ã½ÎÝÉÎyRîŽ}0ÎÝÉö©)w'¯ÏÜ,ß­sw²ÖÎ;w'O/ÌÝyêâºðõrçîd-qîŽ}0ÎÝATã~5ˇéÜ< 1w'AÌÝÉö©)w';WH¹;Ù×§rwrÿx¢fnsw²Ì8w'÷ÏÜÜ ÄÜì\0åîdû×”»“5þåÜlA¹;Ù9#ÊÝÉö9)w'k|ȹ;¹ÛÅܬöù;Ù¹ÊÝA7É¿ÇܬùRçîdݯ9w'kþ͹;¹úýÌÝÉö3)w'—ÏÜ\œËÃÜlÿ’rw²¼ÎÝÉžÐWîNÖ|¤sw²æ»ãùÎÝÉÉ€ sw²r¶œ»““st²}<ÌRîNÖósw²@çîää\æîdå,9w'9I¹;É9*ÊÝIÛ~+æî$-(tîNÒüswÒVNŠrw’ž‡œ»c?sw’}hÊÝIØœ»“”£çÜÏ:w'ÉsâÜ´ Ø0w'Ùÿ¤Ü¤ùOçî$Ý?:wÃrü>æî$-wîN:9>ÌÝISû_¹;IãÎÝI]@—rw’Æs»“´`Ú¹;É׋rwÒp˜»cß‘swœãîÜtÎß&å´:wǹ‹ÎÝIf”»“ª®?åî$åd;w'iA‰sw’ô;w'éyŹ;IµswŒK8wÇÎÝIΑRîNR‰swCO`‡ócIþAçî$Ý¿àÙòàÙN ðlç| àÙË5ä2ÆïÀ³•Óm€Ç¹õx¶}{xöøxvç÷àÙ: ðìîœ<[ <[÷Sx¶|<[€»ž­ñO<[¹^x¶ ·ÿÿOäàà‰c"€G=:ž­ñ^<¦3ðlÁµ’g%±à’g%™ %ÏJ$ÏêZ('ˆÇñð‚x–b#$ÏJ^-y–W â)fŽ,ÏJÅr+ʳ’å@’g¥¥UÞ’gålÙåY¹;;‡ò¬ìɳJ³Œ‹ò¬bù…äYÕ)’gU˱,ÏÒ žåYMaeGž¥Uw—<«\OȲ.ˆ2ʇ$ÏÚùâÁ½ WÙâQßÿcˆ}ù¾RxЗ+¥'žÞ›;˳²WKž•-O‘<«h«åY–lZžU= .yVõ¤¶äYU“ –gYrkyV/ÔIµœCò,’XžÕ,«’<«u×”gµñ)Ïj„¶<«9Gò¬îóQò¬ž? ´ýéJáA[Ÿ/ˆm9'M%Ïò µåYÝ©’gY2oyV_†t(Ïê–½HžÕ·So(ÏéSž5Ò í@63t“cyÖ0Ô%yÖ(þ½”Eâ¿GyÖ™¤—> žvRH$Ïê ¶<Ëò˳º¡ ɳz´"yÖ‘'JžÕÛ+Ó‚<«ë&Ñò¬^_H§ðõ“ÊyVתD˳º·äYý@2”gu­â³<«r”<«KZkyÚ7B(:Ù)7”guCD’g9lÒò¬îöEò¬îöHò¬¶_H×kÛ/Ô9TÛojÏâûëñà^~¹ÆõÜ|¼%ÏjëMÙªM§üPžÕ¦ßOyV›/Ô³ù~}žò¬f™§äYÍP£äYMr˳ZsªåYžÔ°<«Z•<«iÊò¬– ÝPU½$ϪÛ)8”gUC²’gU­ ²<ë¤fIžåA˳ª÷äY–Ú[žU ÉHžU-§”<«‰û§jÒÓò¬êöZò¬Z_h'dˆEÇ[ò¬ZœºCyVýß•KEF÷þ½´!îztU- "‘@ –XCÆDƒ<3R&AÊ¿§«îw®m±H²©¢ôÃý¬¾uê;.¿2yVD–&y–Ëó$ÏòT6ɳú·õÄ£oñ“˳²TƒxRkA<ãÛ>¨M&'Èeo28Í:Ä3j½ ˆgÈâ€vúû(JaO¯ExŠŽdoí"…gÈà. ž!ò‘üM)7âI@Æ‚xE?A(ˆgÈÇlûâ—‰mŒ–Ëʶ? ž~ÙÙñ0ˆgÈÉ.Rx")é‚xúek€A<ý2Ï´«µ=u§?÷ª¯ âém‡vúóm¯Ô6=xGýƒxúmw™ÂÓÛ‚pÄÓåb–jdO´±ôOdüˆ§¹Ë ž¦”` ž¦ÙË@< èNOÓûˆ§A‚xÚ‚ìË ž¦þ OÓ$8 ž&Ȉ§ âi.Ã2ˆ§å³L«:7¥Fñ0Èă\ˆ§9äcý_ žd&ˆ§Í¬Ï ž6#ßÒïA–'ˆ§‘J$ˆ‡þ1O#µy– w—gI>äò¬¦ó<‹ÔäY¤°â©J9âAž ÄS•ú ÄS•RÄSËY¦Õ!žª÷ OUªOÄS32,ƒxªRÖxªäC@<5#ß2ˆ§ò¼ÄS².ƒxj"EÇ žÊùÄSImÄS5iˆ§j| ˆ§†kyVdÄSñT (A<ÙŸ žJê‘ ž*‹€Ë³©8’gyÊäYžò#y÷#ò¬ª÷ò¬ $$y–ä­.ÏjBžUÙɳô=ãò¬rNåI&?³ç ò,Aã.ÏÒõÄSô~â)™•AOÓíñáéîçéøôáîþæÃñ+Î+[蟄ÚÂï»ug×-Üýµ[Ï÷´ýx:}ý {×(e;ÍLJo¦w7÷÷7Ó›í·/ov_~Ѱ¶:¾ØÆî]­ný½Çgÿ®û¹‰›~Húžº{x·n„}þuóëËS†endstream endobj 637 0 obj << /Filter /FlateDecode /Length 1780 >> stream xÚuXKÛ6¾ï¯r’Z!õVoMÚ¤ ÐM·è!éAk˶š•äZVv7èïø¾>mlx§áßžáŒCÍe³M’8|ïõná'xC™¡ÿާ~…/ïqæ5~OÂW-Î’šµ²àŠ/;úBrö2yÝü}ûîå›$™[™Äe”%‚ì³…nŒK?º½±ðbØ8‹LUIi¢8N‚]wóïMTcXböJSºN^þÒÅÁÃÍïð§S[Õ¹)%.m-mdyTXËÆ¾‘ƒ'ôhÇ-l¿Ùf± ®¿Ô8¼OÀÔzï ßMxÆ¹áØ“Õ};–;ÒÜtfÉ}ëx %OªãP65( Ñ]úv M îNѩŬƦW }Cæ‘Üb“ú^p´'hÞçM\Â"¸mk“(K+öÄe.u‡k®ša;ΛnØláÜhIsïÓ‚LݳÈ'tL#ëz|¹g!Z„‚#'ìÿÄKÍß¶Ó#ÒP´È´3É£,KÙΣ?FV•YxÒc6üýب reuÃfã(ÁN´m’BmxTÈôóíqŠ€ŸhiÂÅKzŒÙQÔ<àó)Ž8‚Ãeš~ðÚ`þœïi@Jøp¿ñon¹û!L¢¦Áÿn²åQ¼'ÀKú´Û£¦í]­…gG½>´|…§µï(´¼ßú‰é ÿxendstream endobj 638 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 639 0 obj << /Filter /FlateDecode /Length 3909 >> stream xÚµ[[s·~÷¯àø¥ÔŒ‰,°Ø›;}HÓ¸M'é´¶ò”äaER$‘«p)+Nûã{n¸­@J“¦“Q¸ `œû9àb¶™³¿¾úóõ«ÏÞ•åLª+:=»¾µzÖTêÊjv½š}7׿ê‡ë¿ö®k“Qµªëæ 1ߺºÒóõ/ð¿ñþw„¿o¯Ö–óϯeYÎÿ MwðןnáÿŽØs¼Ë(ÓÎ{ìì÷ë“Ì´ƒ¿%÷€GZࣴ¼ªêyǽßàLW ÓÌW¸;YÇ6<„žñÑÌß#a¯ aÅ” !qQVª­kGhU kœžùÒ&_£ÊÎóåYþSÕìˆ ñãû§ëYÕZë>¬, “ýñêÚÕÕ¢êìüÝUk™om9_"SFdذ疕>Æ\¼Áa'y#uT!QYªtcTÕ´¿•¬Ò}hÏPôöÑU´±í÷dæ´Gê߇{GÂpÀf'äOÜŸ=à{ßhæ·$uТ ífþˆo§-nl¶0…™ÛÙB—ª²oúÀÊãM×Îoà§ž¯7¤G‡ \l#&±`(ŽÐþÆýþ¾†?”Íkþ$åV©]Æ}ÒhlfjS¨ÖØÜÔ^65*ÄyuO沎yómp-ìCšE?Ö¨”EòÊ‘[©®ò䯤>’µˆŠ;±è+S&Û??†7²~G,\ñ>zç­‡½W»epx>°*ƒï2¶fùHìþר<ìYû S€D×ELLjÇu§íCØ@>"}Ö·€§+ü'KrÕUç|%¯G 1ެJÔ}Ê.ß–ª ðVˆÅÏ~‘å ùžMn[u­Ú¢qSý‡÷á·¥£#.8ˆãY§UåƒÙ’ÈJï¬f8ç¦,Rå½ï$†ÿꚉ[¢œ¶Á=ÙJ§6׃­±óå@"efÿ}ܬ_XãާƒãÞ‘¢ÉrÍ>ׂ©ïN¾+„Ež› z/'nC„³f=P4ÂælŸÚG¯¿4eûIøÄcœ„’xøÑ©SÆõhê?úÈ)ä{ÎÓÁc¿Äu¶²üZ¼¥‚—x©Xž ÈÓ*pª†M¹…g"ê”7Š3Þ/x#”‰Áä㹄ÕÌW;ÑéSš¡¹ůå¥~iSBbj28 ˆ $§‰Zã•x'ˆGÎèé€NF{çÉ%™8` ¥¤ÖZ3ÿüàb£i¢R"etí“4Ÿš(Ë)›FJ‹=¿PÐ8Ÿ¹Î¾Ë¤Üÿ¾øÁ¼Ì&´´zA2baø$nŠg´eCáâäø,šÍHó-?:’ðùÁÕG~w¹1>ß³‚Õ¶­ä«µ·e‰˜Ç§3ç“[Ö’?/¡±nÙ4-íj(ƒïfõ러*„qâX.X–Ê„trˆ÷+^·ý¯Îa¯rj€÷!änó2qä>¿!pÅ­ß9¨kêøM/úÊ’. ä¢Q‹kñêï2Z±*Ž2:^¨û.}ØzŸe¨``ù[rn?‘l(-5†:ŽOôÁ÷ oúéºKRSs&i…)Lè™*Ï=®Ayú$?–™žº9äBupع2 »# 6×­j»2It8WÆ]¤¢âÌ=)/öBÅüUlxØ`>hôYïâ°÷';öQ _B&„=ƒKýàåà*òØI5‹Ì¥d€ñ¥׎›ë•›=ˆÆÈŽ(ÍÄJìí›YØZjРߥ4+$ÅrúB5cÈ%)]Ýð,'g—uãöM½}Áv¿õŸø}6þ’ªõ’‚[H…h²£—5qúIyÑBqóî á€#÷Räë÷÷._¤Í±ÞLØ0ÆiäÎ Õ´òI‚lç1"Ô´¼‡¦¯æ?âêø…¹ª7>që£h >{uð½p‘Z`> ;ø^—öÛòˆ¤ŠóÕkPy‡·âÏ–!Ô£µ½Á‚·àúå>'.RÑó [lÛlsrv2‚°JÍrc]'ƒ…–þÖ9²#7ļRáS¬[¥®æ[ïQj–N"«r,öüF™@üÁW½ É×Ü~†ÍQt!Ã(Ò(?¤QEÛòkÒÕ)DCW%’ƒòb÷é¬ê>S-€“ݤL5J·ÆóN‘fÎDØ´`M‹IÚÝùB²T¡Žüß 9ØHUMsV9ñ+L¡|åì÷DC‚ë…—þ ¸U¶»o!Ù€nŠ Þ…¨BÙ<”ñ‹ÊÎôhÚn?ö^,GnqïT)ciÂ?ywÏ}‰üŒÄQµq½•"†¶3 \ï[Rm·š º\ˆa}ö³ñ*å¬#N£# <3hz©•nª.užú"Ân Ïñ%ñ?ú=9šóxSºy‘ GÊvþÕ!;Á2ð­c‘~5xà÷ZO(JCž»uâæçžÄ[ðO8Üù…n2‰ˆÏ#S¦4Gƒñ5“2÷¶Ž8x”:rŒ9“l:Õµ n´u 8„×1~]êY£º¦à’²S%ØXHÕå€þ§gPÒ.¢á^“×J«1šQƒ3{4—‘ÜÇÞY|iâ:߉Ú{1†»5áOòFåPd”énu­ÓŠÛmCÀTº–=otq‘JxlÙ †Û:Ÿâr¬kD#²{_%„[z–àN¨a³‹N¹\’Žã³é{kÑ)™¦~zq^JLBÁVÜ♉/|\g%J„$¹Äê¬~åp 첡Tèv-ÖPÖµª»6Éú‡gÇ"XèVÕ¿Ujî„òI‚Ìj78‰œÈÃÉYdêuCÚæƒÂs¼Ô]£šÂÄ y9/ Uè¨VåíZ«F7©_F#(ËävpG.+n¤­Ž¿„€Š=ü“WkìYú|k}î0K· „6®f_N)x‘8Å c’ªN¼#î"-R]͵óE*ŒyIÈ#åôšAu¥Ó3Èl¼Su®'1„ZÙbâ÷7¡ >P¶ãNMñ¤‹­`ºÛ*Sxžþ-h´ž2Ï´]Ì<|Í1/®ðqLZTbKtD3È<ìÖœ.ì]™=ß„L5ÛÜöÇ:=ø–xè íùøS$Æ%÷8l¢Jh˜°`$ñNÂÚ™‘…` GÔ3Ä‚ö@Þ˜0•;)U-„ý¯p7ÐÍ+yàB æCäÕ…ég¯W\w eÃá ĨwB&¬y'žÀ=¿s(u"9„C F2| .D<“^ø¶%•ϰÚ.̳9zS#ûÊ{Qvm-å#‰²óNrL Kfº!{¸X;€‡°M{ü…Qã´Ýpù úmç_÷{$3äŠÇSXÎ-›¹)t:Fuçzí­ÏrGÕì\§ ÷Ó‹ÔzË¿>U ú'Ígê R[UÔú9ä“¿èÁàsðùÂsQBâÙæÄPï+Î}[Îæ+U‡Àæ>Ï+Lž Ðõ³¨~¿òÚøàòJBÜÃ`jRL[o#‚¶|>ÊÜŒ Ðׯ@_kŒ+SYÄ_HjÍåŠ}!?Ë9%ÁÒ©E6XÖ…ªëöb=oô…z^«¶ú}êyÈõÚJ·e7ÿfrqkì5½£²“bߣŸ.Ú…_óøkÁeîÝ¿ÐAûOž–*ÜÈ¥´•«¹±áVüT[©²›(ð¾ß¢S•‡U(Æ‹y Ç-ŸœHº“I /”wñѤd—Cdî®<ûy3že¬ŸÐCIUÃiÀÂK{L8ñB|HÚ1 Ve’vÈ]&³ü>7äÌÔ‡JªkkÈ1¬tªèÚ8Óõ%{}õ¹×ç;T2êäô cr¯²9ŸÌ}¤%*C©ïi8FE55gÓAÜq¸OIàfôA§ ­®ÏÍÀ>ϤâLRËþGÐNëEñ}I t/“Yàïqƒs.Ä ¹­ÛÉ©=_¡Ó×\:×ÄÇU!±ÏŨlÂP$®Uåféåc¸ù“óTµ* 类aØ{øûþ¾ÌâœàŽêj²æÑÝ^ lëÀ‡‰eú{[ey¦ä.¾ñï6<©§(ÔpŒš!§#¢Ýº„*»©D½Eˆy™®„* A ÑkÉw³,ÏDû"¹m/ûF!uúƒdÊ0õHw_î#G„­Ç‡ˆlˆƒ#¾»¸O‡Ø®¸+.9àõ¼mb¯Ü-È|ÇøÅ‘˜¢CèYËh=ºéöádDXÛ€öµ“pËŽCügâL“ƒ q®x¢ó„ûûœ‰¡ªm8ÛJfÊ#V…;´+ªmœFæ´ Èîr”gà"g8böÿã/!È–ÌwcUm›èT[V_$±u7BÇXÞ4™ÜJ›V`Ó8¢6m°MøìÞ]F']ì `!ÕM“Œ_þ L½7|/C‘bê?^§%̺”/ŠqÕ­Âð¦êR˜¥sÓ"Î a”Lúöí[zªãéËhzºSÛÐmwÁ?Ôª3Õ,…WÓ1i¬…†8š2œg[XÍ& _rŒ½üÄÕöç®3–\úD~5ãït 1¶¬ž«n¢ ùyYò‘J>â–¥ü«sÖ½ Èö!Kñ£úœž:LMêËëW?¿Ò”=iü'ºè”.÷¯¾û¡˜­ ò5JbiÔ"-DÉÝûÝìëñ¿&Í*LSHµ3 ¸0T…hZXGux[ž4 ‹KÅäõ .cãî$Kl”»ˆÔÀ–IÇ2»AX͈©Jj÷¯¬y’ïÛéõŽäŠM> stream xÚµ[Y#·~ß_!ø%dE7fw;Y±a1â‡ØkäÁ6I£Q¬cÜ-ͬ$¿=uðlQ³»>`̪6Y,Öñ}EºšmfÕì¯/>yýâÃÏ»v&+ÑUœ½¾›ÉN ­Ô¬©Ñézöz5ûvþéýœð·áŸüðÑz¸Yh­æ_Àu¿¼QÍü¸Â6ÇÃK~õ%Ü|…o>Å{=ÿd‹o©›;ÚºNx±¤j÷ÍÁ½<Ý|ÿú‹?×:•R«Vئ…I|Rc£•›–ÿ…¹©ô«…1r¶Ðµh­åw(Œ¸wSÛºg‡¬Ï©µ²­½¤ ~À.–'VŒœt³0Z΄Ëó‘žÂß ¦Wusœ]¿_ãM;?Þñ/¶¹wÏX²(nôt<ð»‡~pŸ³Ä0éÈd³UVRz ¿«”-iÒŠºÑ¾‘@‰ëùkZ[4‘Ç«š¨'Ôò# !naÚ°ߦÁúޗ䬧ykå…Ùp¸‡è ‹À+A‹¶æÏË>/ß±œ`°&Ó÷ëþüÔ´•¶ipjÙÎið)xø06áÁ£{»Z;Ÿ‡Î¼õçÑg#Nôí6uë}^<ÞÔ5Þp4Xü”b$ü†€ƒÃ_â‰0¸÷kl·ï߸1ö(ëÙ…/hå#´. 6|Ki.3{ßîž!ÿ‹Ž¤ ùöè'±O@¢S1*!ß„Æ[‡áòøè§IÕóÛ3gßüŽ/: ¦\QúÊ}@÷ë€qï¹£eÏ`€n8rœ®+Ñ‚e9û¸ Y^Îß8WòÁúÑÛ?Y{!š-|g¤S‡ÍÃR C™ „îyN«L¡ˆxlЯMcã…Ñ`HׄGV³9Sž"¯<ñpË£»…Q·‰ ›JC¡–ÐG<´1üíÇ©Yã 0kˆ¾»³°\FvàWΩZ\ìß™H范r¢9w†*+êÔ—øtËë¯8‚6­œÿ 'üÀ‰Cxx¸Cm›:j2“^8ÉqÅwãÓ=-×O|ó@é¢ßêL˜˜Ÿ£ÊŒ¸Ù5gÂHðû³wç#ê©Ñh ’Yî\œ|¥4Üz8¥€•ÎtBbD­÷›¿!g¬ËX¨õ5ëÚÀKéý1Á¿gm>ëøò_Î?öîÏwø‡Ørä˃KL'¾½KûÑË@W6B©„/¢àÌâ!ÁëÀ{”¢ì’ÝQ€¯Ë¦ëPvâÃØáÕ”ïî\#˜ ÷#%Š=¡Ú­‹ocj^.’±ÍÊQ£h¦l¡è€¶›~ƒylàÆkz—D8jl;÷™’¼~íú½×$8©‚ž\ýŸ8±À@wœ¶1Jæ¬(°¨šñΈE+t¬mw½Jö&Á¬©ˆL¬”@<ßJ'­ŒP:¸Ý+€¶ºHVü7X ‰9Åõ¬…q}Èb›÷ÌA­hÛ ™(6ænÔŸêP­AH>ÞR›J¥b+r²Í½O4ðsKoÍ7Ðàõdu•+§lX¤1$Ü-EŽÊ¡š‚ëhµuq'ÂîãÅø©´®Ê´¢ÓÝ[Vö‚dW‘àâJÔŠ½ž­±ddZ´ªŽ ëÜM4º}…Åv^&¯­hd •6Р©&+ÝSø?‡Œ°ÜF*Ú#¸ª;ºñå´~™Èr”Ü1à£,eRÇe{RUfž1ûÎØ4)xK&ƒüòHAJ€n.™·:•ql&ÕTrq šp‘‹¯ûas¾qAÍÁ•"ãîD£“Õ•À bE$˜€o‘9à5ÙÂøˆ'„ÀÓbµOŽCb7¾3v8å”bœ–1rYçE.Pd݉ÖÊ\£E‰i;œâÕ37üC^NŠÍêNèʾWa-/é9XVè[1ïìûW Ce%¥Ôë”’>²ézñîÅP·î:ÊDÙØg)²³ã\Ó&eÄ .®ÚNT2u×h ¡ºWÜÞQ¾¥“¯ÑGI¥IÆ Ó>Ôç#:tñmD•ó¾ù>ëüCþIKX®åÛ]¯VU9\ü’h9=Ä^¸¤æ EýÉ%$|_4w|‘‡P|R*NŒüŠ@šã#xOü¬©æÇ࿌ÀŒP0ð ô#¿H¼Š¦âH7ÊEñÀã… q'81ä Çat[c.‰Ó–Ó–ŠàÕöà×sé%=#oÌÔ¦%Kh‹8=/wÕ˵Û6èQ®×Ü* X#)ÔžŠ®Ü)ŠãmµážùúO(¹(ÍXÆO­¨uÎÁ8³WFØZfè{ú’-=\Ï÷HÓò—ë$fö®šçÌôìi °ÏãI‘*‹Çc6w7àÞ3]Éxœ2Ñ6†H캀Çß<覫5Aµ ˆ‘:Ï¥hͤ^×HŒ}ȺÈß`xÙ?øÕÿˆóÞ7c’ãFÆÒo~#@æ$ šöü89.)åz•ì/äK[Â¤Ö Ñ‚ß$±Ž»P¦‡^žR‘—gO0½dùra”wae̶>mæA/ІÇÍ‚¦üU#Nw¦‡"Æf![„TáŠo¯2¤­ïÈtcp7Ù¤Ø^s@ =’¼gs¼ ùúá½F¨€9˜IÑ¢6sW@çòŃÞ©t`úÔ4”4êúªiäv-U-º¸­²¦P @6™¢gYyCr C «º|¹Ç4òž …ƒ¦)¯ ¼±¸üZÐçÇýίK ©Z¶éþ^© ÕFMp³©³ #â.á¿‹|MT:å»Vh›ëÄ­xXa²® þÈ" ⃠îw3MífJ,ѨùùçÚü`?ðêZMC¢]´™ÔÅ ôž Ák:€Ît“áÆkÀ »Ô }Ö-çkÜËlÚœœ6ùÞ&ÜEÇ‹¨VcqzÐäN—¨=ë²dÀ¡mR ªŠ ÆJ‡6¿¡æÝ¤†ŠêL)ß&oyU”H*Ñ4ú÷iM”°UèŠ Cˆí´–¹÷0öq²{¸Ú&Çpà¾"âéù'CZýp}w‘›ûíK_`ò'T¶D(,ÀZ×çc"i¿‚–Gnr‡8þï,çúìÏ´—˜Ç6éÁ±ƒ£4ûX]wꃫ]Kzî$+Ópjðm²Bõû0g¿¡#?Þ%‹å&L½,~QRÁû·œÙšNíÚP/ è0Ä»mx_ÑAáøÂ„¾}Ž¿lþŠ@ž_xÑǤ(KSpr>9û|!nUZ0ùgÊT+w„ÑÑ›xøä$'Ÿ§°7¼K¶,©¾áɺãѪɮ‡°Ï÷³#‰ô²ßïû„XËùkÔOªŽW8ôì[úH?G”ÃóÏ^¿øñ…¤Ïå H–4xÉÌ–ûß~_ÍVðô!t×Ξ¨Õ~& ÷ˆ¨v³¯_üƒÏ0Km.6%د…Q€Â4ÀÝN%Ç¡ !€ê@ª5ŒMd³­ºKóÔ6»tGï‰h„é•í¢;Œ×5]ŠRmîVó ®Fs1P-tÜS$·?úgdÁxÞg}~yâœP nE­BGN&è&T||rbŽGÞáØÆ²Í™pð!=/Ë$-nùŽýá^±‚Óó1T¹è6ÀŽ€^x»Ù öŽäEàqôuÝ9Ž©”Ã:®ƒ;û¬ü¿Gš< Чw§…GÛiLì§qQ×&YíÿHAÜ”endstream endobj 641 0 obj << /Filter /FlateDecode /Length 749 >> stream xÚmUMoâ0½çWx•ÚÅ$*B²ó!qض*Õj¯˜n$H¢$úï×3Cð²íh<~3~Ï~î~¼ngºj÷v¦9{³C{îK;Kîºàî.kËóÉ6ã³µ•­¦Ýችöm¹µ#»O7Ù¦©ÇÞ4åñ\Ù õ=ÈØºñ8‡Ý¿Ûß³ò4Ö«Ùþ\Ǻ™qÀ¾×ãÑa¾Ûf.Çnr K~Ù~¨Û扉GιKäM•¶'Ð0ó 6Ÿ˜ê¦ê/dبB²ª.ÇË ¿åÉ]o?‡Ñž6Í¡ ’„ÍßÜæ0öŸÈð!˜¿ô•íëæƒÝß0s;Ûs×-°`1*ÿìú w®VPÆ¡±”<‚XRpE±xAqqH'pˆ#бÏåd¬žRHìI"¢~°Nýzë̯SXçÿà'Lq›œ@ BÁ]ÐÀ¥Š!–„~5p³€5È1¨AfÀUÐ3h¸dS^C¼¤ZÄ 6ž!†Þ -µ‰ô ÒU ž4¥ˆÉ #!&x®ôÚÀ_JzÆ bâ,¡§\7ŒcÂÀ}(:KC­¢³Ô*º;<Ë5à®B„€ sºà¤zFœðÀ-Î(ø˜ðô‰‰?¾±æÄîY ï'-½Ÿ´ò~Ò ï'z?éÈûIÇÞOZ{?iò>ú¢ñ™÷™Îo}¦‹[Ÿ~ë3#¾úÌȯ>3ÊûÌ,¼ÏLè}f"ï3{Ÿ™¥÷™YyŸí}fŒ÷™I½ÏLæ}frï3SxŸ¥Üû,Þg©ô>K×7É€fÌ×ë4,Ï}ï%a€0úêÆ^çt×vP…?ðÓß ¬^Šà/»®> stream xÚíZë“Û¶ÿ~…Æ_JMN4AÙÖI;vœNëií›æC’ÎÐ’îNñéaQwŽæï¾ð¢p§v§Óö%»‹Åîo,&“bòÕÉïÏN?Óz¢Š¼+:59;Ÿ´jbj“wºžœ-&ßfªš~öÇÇϺ6ÕäMÓ ó]¡ê©Ê–?ÂÏp ?{¸n~=U•ξœÎ´ÖÙ_ é ®þp¿[±æy–Qe›õØÙ¯—¡´‚kÎý¯à–&¸‘ö›iÝdý÷þ)Mg¥ÉÈΕL‰ã6<„îñ¶Ì^¢`'…¨âñ3éa&"Ît·MÂ>…·ì‘õ^ÂER¶Ù7ÓV³ý~ðZmà‡f­³säy3‡Ÿ2°Å®Aºð¥íšzþ›ÃÐÃÁ ÿ_?àl €ôûù}Cò_,y‘â¥,Û.W…²«ôŠ&"­"ÑõÒ3m—KQ÷’ÛÖ=ÒϯA«íÁÙ÷Û×Èà çÌìL3¥óºêx>°²ú? @HÌÙgÚ ¾ÇØž~#2Âý@L®¬Ù EÆâ•‰$œ2r«‹¤¸ÅªY&UâûY»IhSe§Ð×¢z&é¨+K}!2ÀФ>’ )É+lÛk²{øÉ§³ºn³gÓ¶B“GݱÒhõø[Ø)/ll›U“«®±ëŠs^öI(òª)í¸ °?tÓñÒvfi3Ñ–A=6-‰ƒÈ,¬U,gȔݛ¢ýåž_øŠlkÇV²—Î3Üý\€å%ËE£¨³!ÜÞ¢f~ØnxØ»•4^2;Dâq°`q«2Ú² lÙºz)Šé‘M^¶µ÷^u‘"Wåe¥í ƒŒ¨Ãܤs‚?¤hè¼ÐÊOT6¿™ÎTcÈ`d|1ok ®Ú¼öóFñ¾iÆŒ†?ê¢*oK‘-SJ9" ŠQèMÛìIŠ `Ö´a HMÞÀ]{ÿÜàcÛ&œû‹ÔŒôü„*mu­Â —?în3„’n%<ÁuLÑTuÞ5&0+•Ú”‘YC¨Ê*;»d¿[š*.9Š`“¦Ä®C——Zà¡,ÕtÔý;í,R€ÉÑ›ùAýÞ _ÜÒjÊ.v¹`=¨‡áHÄ©©rÂVêa tÒ <:»úKy^'—,¹t Ü<[ϱ­*ËÜt5{E7äÒlBðRv% rqM±U¢´Cÿ9ÿ“C'T N )ü½ÃÑ[4]dÏ·ÒdˆsžkO!)!:Ч“ý\â%¾IpÌ&¢d<“„À³M EâÒ­¨Kjãž÷á¯e’I6 Ö(ðØæE```uSËB1Îð,Ó=êè Y0†ª7ÇÛ(gâx«ã䨦æ¦l¤ŽCˆWE]IjËÒ«(1yÓ9Î_¦„ëòV¹d”Á"e8¤bŒ³S §­ Æ;(r]gó~ÃÈ>v6ó}Ï=\ Œt°‚^2Ï76ÛæúÀhnkE0Ô>ðåsG°v肈KÛÚ‚b‡!Çš‘œ†SAŠ&¯UkÚU4j*Œü5—)jÇf ¶¢|8è`Ã=´ T‡#D‰b֌їmjÙ&Øy½G»\pM¢êþ°&L\®ts§ Àmë2ª 2k&œGcrݸÄåo²˜bvÏ[-ÁD ¹Û§hV‚ß«¼©Ì¸6åêYš¶Ì°\0T²ÚÓ¼ë¶#5ð³ÇŠŸBݯ ?î'~ìÙ?EDÿwÁâxGZu{Ë.õ’ÜÔÛú/£ò!Xlÿެo ìO=j¶…iÄz_ù=½så‰Z’HPøø¬’·_Ëf>?Ám@0= Œ[ =pM¾ÁÒ¦ì«9å1Wv‘Jœ7áÆKyp9U[† ýJÄ!B3WQ“q¨5†?°¼ä;éâ‚Ë-¨íÑÈ- uÛ°Ò #%¢‡{Ó¾9ÆmŽV*áŽNxjpç.Ë·EíJe}j%J•wæSUj%Ö£ƒÜsUéöñöúÃYU„ †™oŵ|š±<–Dè‡ ÓÐ"õôe|4PÈym7¶² Ú7:7EG _šs±ƒ+ “]AL=ðC<žÅ%¼xõÞYDHbõ]¡*¤ˆ¢]-}†nÆ{N—y¡Û»N¥j£²?Û‹•ì <ŽêŒÇp–Dì)“u†Cïà¥î†#ðßó› ·ñbDÆøÑyD¦W8$á|[Û Ð{~&„Ø»£˜ÕzëŽ •Ëxv˜šcƒ?C`™6ZËØþ@Ÿ]vµ"§`+PãP—¹¯åŸ‹ìɦL®ªîëà$I#þ…YÈÏQI§ÈvT»ÙGµ3>ê,¢³›ÄáAësÎe‰Ö±F‹,Ö¨êÝV EåOoÀlª{È9J9:G‰É輫¢²¹:ÐùÐ… 'ˆa:ÈQ‚º{‘d£·Z‡G1öHG‡5ì ¼F†êv\BŸXt@e4òö‚éA©6rNá½<Í™&.ÏK~œûS;L}ìrö?dIL+)ÛÒÙhÍg“;ï…RXÇ>w²y4ÛÎÒgµôgo£0»£m>U è|™×’¿”3âÍk{L‚¼z6­ïì<žqX2Õåz”`.®àúþƒÍ»ñq¦’[É!v´¼à¶èh2xÕ¿§ƒãÌ­uÐÚolVI±Â.ŽÈSåý„wÿùD°éèÀdÏÃ3|eÓz©,{aü¸ÒÁR' = ›ZÑñ=Ö-,ì†û9UßÑÉç†i7%ø8&'ì!¼;í-n?, j‰ñeøBÉîäÙ‘žÐz -çÝœ§jD!XØ<¥'ñº/¶vÿ©ÑV5«a påŒýà,Œ+¶XuñêúÔM®Œóy߉©;» (1cz»éÒDXÛÂé}zµTíð Cýö;ƒïÞxe$í@ËʨOå2þ0v‡ ƒõϹ¤q`@6‹>×ïËIÝ Èa/ìll/ƒÒÀñçM«`M®’wK_`AÔ!Äõ'È ñj²Ç/˜øö%~Ȥ¦øV¶*o!ÙÏ÷iÊ·~ÜA‘í Ìæùÿ¬Ù<ÿ¿ÙWC«qÎèéÙÉÛEþLá·¨ª,ò²l&óõÉ·ß“´\wíäZC¶ΟðÿÕäÕÉ_ù£V,XD7¦¡r’ΫrœÝT„Ì“wMS1VǾÎÛBVð,Á„û‘ªÍ[Ó¥¾Á‹)ª&¯ý·%¶ž4ŸB¾ùfZzº°Ñ¢¡¯.;>¶o¸F¿\øo4·ÜîQ/<,lf×ÑËàÛFè•TyO 2‰C°¨‡¤x&o«ô¾öá&%¯†8â¿oú•-ƒgóbi«¥Ñ„«áLJr·ÏM-b‘7E¸„…kážÎ=N¹íÝ¥û˜´GÚÙó9‰=MRLÎt­)³›aè´¡õ…èôEÒL®üÇê\ªZ®Uúz£«^º¢ôÞXƒ¹îè{MèèùÛS"÷aÉèØ•Ôöý4Æû¸ÖûêÚyï>صµ¢Š )½éN?`ÀžSåØ *>@%ï±Æ€—Jc•²G/håC9ˆñ?8ŒB[´@endstream endobj 643 0 obj << /Filter /FlateDecode /Length 2655 >> stream xÚÕkoÛÈñ»…ôƒ„F ÷ÅG¯);4×p‡ ç¢Ò+@Ë”lÄQNìÚß~3³3Ë¥´RœöÚ¢h-¹ÃÙy¿è|²šä“o/¾¾¼xñº®&*Ïê¼V“ËåDÕ&3ZOJWfµq“ËëÉ»é7735ÝÁuÛß=\ݵ»ÙÜ=ýÖÍb¦Ëé{X!L·yî·¾‡›·¸ó Þ›é×·¸KhDtË/ìq± ‚ûˆ7÷³Ÿ.¿{ñÚ˜˜J£«¬(+`‚èS.rfëÅkåt >·VMæÆeUQø7Þæ?ÌæN:ô^¨@âàZÕÁõ™dB®7pýÉ£ø=,ç~yó×ßr—ÃrÓ0âÖC¾ô?ÏžtŒ"¸çÈ&°8W&s¶ö¬üv·`Úò;/ÅèŒÅ@È3¦í†·|´G(êY S! €E w,.…vÄñ!—§pžçjÏ5,EIJä3v,Ñ“Ü «cšW17ç¸åƒ?°Mü[!Ï,v&(~”"È ç–iŸµdóÙ°°Ç* tì‡Ã~>Ž+UÓ)~ͬ\3öæû;ú%hv4ÜùIÎ¥'/’*A8=ÐG?çô3@‘Ÿ/YWÅ‘Ï.#ƒ|`¨{ÖæþmÇôýxÂ¥ö\1ˆmÁÛb61ø •úŸt|Td2ב¿5#õ_1¶“&Û²jë½ü5‚á±Ü5¨éo"ôl3ç#E&mDä32,Úú»ÿù™”‹&ÛÙSþLl<>Z R–ªGid`ò,‡Ä¤*¾EÑZ6y¼*¢Ð¤±|‘PçOg0eV߸ó=kýi2ÿOK÷‹%‹šÏY²o¸K·&IÿW%ü†ï%IüKVlVóZGk›*ÖP^ÞøȪÂ…²L^í5<Îë麛͡dDslïü#®è%„¼iýã¾YØš>Å‘*òLY'µ¢S¥HU%€Ö ²³ºšî¹Ôõ\v»áÄ=Ko‘–æI]Kx–îðÁû k¥D¼!{@F…]B"œÂKû7"kÖ- ^”nzéÅ€Áv®Ê2Óµ‡{ªw^@{®ÖkÛKQ°¦¼DÛ-“T.Ëuu(Á"%A­²Bºh6þÌ+â0’UP›>tíãOØïp©‚€»¾=K¡s™z’†‰¾R@æ»÷º?nDÂÅÈR ¢ÙÅ´õˆí˜„¼ÊªÜf°l“´0•Ù:ÈÇëšThÉŠj¬ÁE‡Ê[w DSk‘ .¯ˆÎ‹‡žŒ}ТõæEl¢ÖS^õI5ÅE©2]D\hÖ²-&Ж9A™+ÍÄdµcŸÎS¬–àó`’˜/]/Y¯^Ãú2Å <¢¾“~wh%wÁj¯ä"±×Ü =k VQ™ê˜ëÝåYùb°”m–ý«ÈL¢Êtîн3—3èË䩌Æ>ùÔZàr>Øæc¸*X(;‘5€Í´ ñôåIK‡°[*¯>üÊ&ø•)õ´ÅשÞ‹/2W¸ÌEne“¬•p”hý¿DžTPH^FTù†ÌÇ,¦­¡–êш%—‘É•‘—æÈŒa»Ù G$L‘uÇH©=Zy¤7Í'Šê×÷Uiu5(´Rˆï’ò„dlŠciÏ –¶n2Sÿªjê•Ë*íFª;wÑÓ©èÄ`¿#ºªÌVvDÖÜ™3† 2 ›±`s—Õ ]¯N´ß{:P†r ÌêóùžoÑ2F/Q²òíT·ÞÊ Ñ VLvFz{'oi©Áê–L,6Ã&/ƒ‘Àzà\1mVüü¯6Rì‡8ΠÆ`b¬ãz®%žG{2×ÚFïôi›Ê!´„3|*Ç0§xÑQ“,¥Â½x!±Î`+l}­éÜ]çS3 ßÛþƇ|‚¤äý‰Üïº÷VÔˆãŸ]#Ù'ñDÜoÖëÆ/S+„1[çÓº}ë$™5û¤hgE°°-S…ä€3v-¯s+ÍAܯ‚“"²›&Yôä™¶!©»}ÇÂ×:+1LÇÂÊr”VnSËõô¯³ÊN[š #Úi6×~Ñ1’ßýÿ^…$¼ó 5f+²¦H’莑‡Êzhè:¼@Á†±Ì‡XùçMDD{Šjö’ÁÈ2®å»È‚gÒôaÙ¹qÉú"íßÉéTŸ—ãBØ0ë¤h8Ä=bDî ³°.1‡þ¸w›.±…¥–ý- Çm”Àj͵¶– ðñ#CllÿW™Ÿ.Ä<¯ÌÄw)W)Ûœ Äü‘1Ï‚Icš5ÆeC™ßŽFÞø ʪ:R¬>-è8IKJc5<û Ÿ8ô±´kéN)òxxú8°Jв&G´ã|oud•ú¨¤„Ø=]Æúó6]*‡1ÚLå­F(‚›ˆ¸Ñ¨µp@ç—¤¿-…°>Šc|¶Ì=øÄŽîW’šß’ •¨­Ÿ)ï_½‡» G¸‰ã¥©“ªÜëØÄ•/žûf±Ûy0–:­%´®Vôí²¬ÜÂ;Qå§0K¿løÕñ{}³  ˆüi¸_7ï…aÁ¸÷ï.ñ°¦—Aú¿ },,Û>2dÓÏÕ‡bÓ˜Sq”…ØNS¹²Ö!©©â,ô¶óÃóBŸeŒÿÊsí3΄ ÓÖ ½õ=d¦BÄ›žB÷ÎGèÚºªbÏÁÛ>ÔÐTÊbùyÕH¨%€ÁÈ<fÎQý§«òÐqð_}^ä@T¥“~:öË·ß^LÞÌ[™ =†ï!LU:ˆy,‡ø+4ã ˜yî$5Õy®^>´êº@ÔUœQÝÉÆŸêöjèÀÊPJ®ÒÝ—«£Û%»*èúmHÿ?¦Ð”™QÕSЄRtÿÕ :¬¼&ŽJ&áSòu)1)ÑкqèÀ\©«a^Œëžš˜ÈF ¶5|9]D-½ÄÖafë-únhßq»éý¿ÝãÞsj£ †…l0nv\†¯¸qŠà—ÌðÁPmø»¤TZõY#°_¤½ÿ¡€ªô( ÊA7Ó§¹UÊ~‘É?|åAÜÁl<Ë«xêëÒBQ&>M «*Œ¦?F_RµY5̱Nˆ®ÊÈK( ªbz‡£ôI–‹ç>û^“Õ¦þ3# gø©ÞY?øco*Lq–ñ‘[¸ÅÞ$>áãÓ­q‰³¢‘bžÖæXðƒðÞ½tZ8sÀó$˜àz¨?ä˜|q\~ÿxyñ ·endstream endobj 644 0 obj << /Filter /FlateDecode /Length 4243 >> stream xÚí\Is#·¾ëW°r¢ÊC¸±5€qMªœÅY*I%öTr°}hI”†.2IÍŒ¦òãóv€h’íl±74€·àá{K«›ÜMºÉï.~õòâÓ/8ŸÐŽ˜ÎÐÉËÛ‰¦%1\N^ÞL¾žÒþòÛ—üô £‹V=é{}Ø6ßtT^Òéüüìàg ož_΄àÓÏ/gœóé_áÖþ†ý-ün°ÅÊ=ñ×¾ÓÓ«ùÞ÷´€¿k÷ü+8µ¼ñ÷ß\Ê~:,ÝÓ?cO—3¦¦78¥Û­ï\{ާlú%vÑyV„ão_^|Aá´›PË Îˆffr½ºøúÛnr÷ÿ8é~¼µ­V!°ýròÕÅßší‰Qz¢'Tx®f3ÛYZ –¿G)#BF&ß¹6Üäm$‘F$1ȮՑ LðÐè«V7ŠpªŸÔÍþ3ߤèG¥c?ïG&¬d6Å?ß°àšDÐ>´üÃÚkaÉ!Nz{»õâF†ZM ºbÕÄ]ßç*aÛ6†6”¹úßµñU‹/L[¹úæ«Õ ɾ‹Œy‚×SËäC}£šh8þp}ë ¡F¹!qõm7÷0pïÖR³Ø ÜâaÓWÃ{¼Â‡7»&¥>.7°¤(ÏÕEÍ5áŒ&Qw]³S ­ãGúdã}þ;ªrRg RÒÄô½ÀÆ3f,&PG$Œ”¦ ¹´OíœSÚ‡`3ƒÀÞàݹkùÊ?x?[4xiìj™À9Uj’½»tc qÑÌ$㨚xøÅeÖ¿?ZÅ€¿_´– í$h¸IkF‹éWÍÒ³L&ŽŠ>ãŠd ýøÖ.õ>-NJeö W¤c¢Øyœô(Ä(Õ;ùÂqÓ3½ßÅZ2„JP¦ÔêYkŽ3£A[D)¹Cöù©òìMÖ)£ÍßÝ'u¤Te ©‚Ý´?\*%åŠÐ^Ÿ&VhNy³«Ê_Œôg‡1[œ,(=èo̪ÏDÇH´Ü<Ã:ùÍòÆÚñ2NÿA†ÄwÓÃŒê²81ÒÔZ"º¬¨œŽšD[vÔHªÉ¬ÙÕm6iu1ml>¢eKΊûãšµïöÆ#‚sÌÙŸ6w3ìms‡&m·˜´a.úŽ(Б§˜4ÒÐÿ›´ÿ&“öçáóõ©ó>îñææ*"ÊÓ† ˆèæ@ ï†ÉìÛnDeœÊ»mëKfÀ5€Ÿùv¦ÂðÞzh#¶«¸ìý_ÿæ ¸h.§Îõî]»ï½k±ñ˜iÕšø‚"_òm ‡^6XsÇœmàʱSËs Ý:ºçC³õ ]”&wÇ9\ƒyéG¿k…™·ƸmPgEu–iPg›u–‘UGŒ,06!ŒßqØ3n\i›”Ü|®fZØsýC\Mè¤%Øq^^j>®’nrC§ì9(§ÔÓÏ—~³Ÿo½² åÖoºéêXøžï¬î/çvó¶wnAWK‡uàċиq½<»ë/¦Ãú&£ÁŒàâÈãRÐÍéÛ»ÙÞøþw1¶uåg’ oMXi>gLeª²hãQÓŠ:ÔT±Ž0Ê ËM§oSÔcÆŒ²üÉCssK‚}dåÚ(uá5{û*4»G>¤^x5ÏØå|«ðÖÈÓ))¢Ž5a3`PhÄ眨]w{êtWÀ·pÁS«·;G¼à ¼KX“N£¸_ù^]»Ó½¼mÑ I(S C€¢ û¡©‘Ìtó-/¯q¯í,î|÷ªxGP¢òÆ™ÜãöÄZý{3ß&`• ´z‘“íÝ$œ~ù»‹É×tú§a…ã_%î=³ÖNaðüË ¶yôÜÛ;E+£ÌÍþgè5¢ ±®3ÅÛ*XHéWé«E>ÚvðÁåóØb“†¡¼ |jɶ‡]~v”A.¢žÈoÐîÁk œÖ„Ÿžãk¢É¯rñ“1p¬õÒžh©ÂÞåçŽÊ¶pn¾H5X±çY.sçÞ¬›Àø¨/Ygíúf¶z›muXË.;ìæÖsþÛ«*Ýø opç%±sM«7`µT¬wž…a,;Yop¸u×êTé=B9Ï”†3ö}·qÃÚ\ǹµfNËJ®P ²$.ׯr ‡g:RaJFï3.¡×8üfŸÅžk¬"M”XÈ0NcW 4óÖ£¹5J·Ð‹ÊÜu=`ô,WÒ\²”;ËYK–`ì€Mÿb½1 ,íúÞØ¥zå¶C{ÃQAæÎ‘0l÷ž¼ùõ<¸;ÿÈ€¯òØ)À]Þ[mÏ(~É.C0cµ›1âS)JwÃãu!ùt¿qÇ+«êswq½ñ˜ ø¸Øóæag£93¡EáèÔoØ9xíÁ—lza—RDðØº ×›xÇOx[”,ä®o$lØ{BrâKAÑsm´4H„èa4à;òÜkï…9 ·Cžoì}ˆìaíÃÃöÈék+Àlå”JÍYO”i¹6<‹`J‚± Jzîã°«E{}ô^ÈÚ}[m¯š}ÂkÜ¢×á]Ó+¤Ȼ%ÓÏwŽr ]¨ÂR<켉7– *D—ô«;7^$7v!=:W"çœmßݦVƒ·ýøF\<Ü'lÓ¬ZèÀ[â¢*[¨Rø°Ñ,JÉd¶q"hw]Ëœ¢¿ž’¶V­âޏaÆ’ó;EG-p¥G]9{Ý„ƒY3“IÛÈ £á‡Zô½;¨pøÌÝliºsŒ•ÖÞÑ+ÕKyø» ¤‹á H³²¿^ÓzJ4¯ò 6<»Ï­Ïn¨c –"˜Øíú§»Ÿï`p¹Y§ó‡¹q×¹n†J+ªnmÚcuÚƒkúÏÔ­ÓH©Hl5l?ÜÅd#¾"io¿Š€{ ;– ½ OÙ„O"ôwŸµ€¥¤ÓB‡ÚÅÉp”s80Ê÷bÄcRÚ4BêÕB¥iìFÆÇ9kõI›ke”etDýKó]k^šô)y6:'úä)±³¦ô¦ÙÓMòZy¸¬ÕY.}“°ñpQé¼67Tîæ=¯¬]ËÚƒ~Kv’ÃM©ó£,^5˜§ò4Ù'´]&i! )ð£RXµÕÚÀ 9S 줪:²ÀoUs¨gªŠÀ‹ƒ×&3Ù@ííký63½­Í|¥TIy‚9>ö][E¹v*ª~ænŽ:©æ"mVUŒ¹Â5†(»þ®Õ/ZèÈꬬ³Â,¶ðÐêêR2„v~“lzeÓ Í”C+ƒ‹é]À_rý >!¤bGdko±‡±~·ºßV6:+\8bDÎò ÎæmX§³x;ï†òà{ бÒÜÉ2$'a¢ŒôF=…¤§ ªz_®ð1ÅÌ~qDG­Ú@jGí§ȱ7ä`³bŽ2B[•Ì?­t阄‹`ÎO+á¡i7¬ÓÌÏ1?WĬÜg"_Œ!tá;·Fé$ßnÐbâc8Z2‰Ù}”Y•ùUi—–ºäÖP5èw‡•‚KÀšx­×|¤ü?²é†¬¤2/¡30û\¨{~$£TñqÓÛag@‡Tžït6…aá:{š—×6Uâ亄ًHåÐv9Uß7 ˆ×ZŽñ>i—‘9Èk/vrÄ0šg2IM]Å]oy7ŽbB$~©S賆e„šþávñÐTtÝ.ÅyQç ü2N”âà¢4%:µED3ÁE#(bøÏ7ëe!r—zkµxC¶+xvm·vÅÎw“Ëú»17YBéÞFÝŽ¨êÃù˜ŽX§D‘wUÙ…ÀÁ†Ô„Œe/¢ÇÄ!ÜÇ+ymÖréÚÖi4ßÃm{…ÀyÊyŸW 0¦‹¸Ü„©\!œkP}ʳ¹M·¸bûe¬µËò¬ØÆ–¦¿w PTqMC _¬Ø!íu Íöjƒ‰6R³ qºL'„·¡iïµÚÕgC /š¶úmlú(Tª”‡,ù/;B»ÓOÊ'§Ëž¹”¾«ùSº‘*3V%‡-}MàCHÁ­Ö„ó›²00|ºkë•®ò$ô­³¡ñÆÍÌgÛŒðI…«±(ò± AжƒÎt'òì¢îBÛ/JüN¬·¶4ÞÖ.–)»mÓºÌh·êÖ»*ïOñ<+0h*>3¦Q‡‰ìÎë0mWÇ #CíùàS@øVÐnînÔEþý!êXb'ó;< Ïw­:È*3xóCª{ILZ9ô©+k-PÊ*ó>|HÐ)Š|ôê¾aj™–eI*\k¼²ÏeX/sw{ŸŠìõ.VuùãµEXƒz48bëeZm ’ÅÝöÍ*D0s¦Š°è¸'YÊB.×^du˜ICòLȦ6œA·6Ïx÷ª%SAÁßâ9èXø¯æ^žå7(¦ökƒ…ÏøÎ½œ÷Ù×Ò£_ʢ͛•`ŸyQióëMb@X´Ã>äÏ;e³Ex<¨´]?½oÕã4CyNMèçä°×ƒ×—–¸ ·^‡\{œž-õiÛzZq<À˜drŒß®ª¡(]€G›zó’·“¼®nÙ›A£ƒ”?ת²]öV£>o[U˜‡‚‰}e¿±EൻnÖ¾dÅš³¾Óî_%øJ |)šlk(ï^…Áœ5~ërƒá[‹GÄr¶JŸÆ NìÄJ,Lin{Ž5鑘H‡U+ÈûôÙ–8f‰ÏÎ+um¼Á½3A÷]ü-r2ðž³éuSEÐhTÿð;S>þ};Hžå…ž¹Q\¹]0é§Êí¢<ër»›Êwÿ÷ƒåŸ|6 ñòŠg«c÷±ÅnT՜ڱvf¡ ‘ðXâcåÝŽû¦| ý ?³þØûÏ• zXý;še¶ñz²N­øÚäT­/cD¦¯šßMÂV*!qª›IwA´0’sOùUy$¿jkÖZ_sÊ^Û8¨Ïèý²µh1æ  9kÖ\¸€p‚ 5Ï~SPÖ‘ê Ÿ%pfï_GÌ…Åu=îú‹ì¦‘Úü »“ìÉéÞïÚé{¦‹r«ç­!{€M¬NñU謣ºpVt»ª•¨ƒñ:EX;Í?žC¯j|‰Jð«a¹ÉÀŒC¹° ü:øK_X‡  šÈ@㻋¥aèú Kÿ5Š9‚¼¨qvÀwöƒ¶.V³QÍHϪÎñ‚ÿoN==ØûÛÚ¯¨ãúä†%« ËM¿õ?žþçœDendstream endobj 645 0 obj << /Filter /FlateDecode /Length 962 >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—Ã’Ç@ îÃþü9ŸÝV±¦>Ôµü–Ó~ž¾)óUk Ý46óNÉZt¨õUÙÓ~£!-1Vûá,Wô;bh¾=Ãánzš“ªRë_ñæé¼¼’Â/ÉúÇ2†e?=«ÛÊâûËñø Béd»UcxŠ£÷ï»CPëÏ ¾Q^AYº6¬j˜Çp:ì¦çTZoUÕ÷Û$Lã÷LÊ-OWn¹Úá'õÙ6©l±ÍQÐÇn¦5\,¤}Ä"NªÜD\x*DœTn iƒ%f”%¦ÀŒ›ŒZ"ŽèhyÙˆ“ª»í¨qRuh鸥CK‡–ž[:´ôhé¹%bØ¿ú4Z_ÿíÉH§%Ôiè·VçÀ–ë©SÆ5ð†qœq\¡sÆ4§dL½ˆÃK39«<Ç®›÷k8Óíûuƒëî7þ•Ó¬gȃI¹‡¸aÈÁXæBŸ!ºÞ“Kñò`[h5œ¡Ç^š‚ëØq/qJÞ âðVwðbÈ›Éàß°¯žøì©!NÇ Ì>h]kø¡‚~kùii ÆðòLNÊ3SpRΨ†žLž4d’1''ëØ/4d=ûÂÌ\3Š–ëàÌo1§`´—ŽsÖÐï cäé,cÌw)côº c<+Žr6yºœ1Í,Çñ>B›ã—„<:ÊÙlàÝqÎäìÆØG×2¦ù’3öÝõŒ¡³dýÖ-Y~Éúé9)Y=%ëÏ©—õçð^²þ‚ø¬?'>ë, ¹dÞ™’u¦ÔË:Sêe¾JÉ^¼ä ^rÆ'ÉKÎÄ‘œ±–—œñ xÉëzÉyzÉ™8’3¼{Éú½ä ^r†w/9#7/9Ó|Éú½ä µäŒukÉüZr¿–œ¡§–œ©Wr†÷Zr&¾äL|~{Âò1õò™£¯Z<«>|äjÙ˜¬ecð€Ö²1´¿05­ù¥²¢–§‘Ì´ó ;z‘hS[æg)þðuæ2Ú÷üÂu¿‹ÅᄃôíØ.ËOD:mé¤Ã·ŸÂÛ|œè¢?:ɯÿ7àêGŸü»•cendstream endobj 646 0 obj << /Filter /FlateDecode /Length 962 >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—ÃRÆ@ îÃþü9ŸÝV±¦>Ôµü–Ó~ž¾)óUk Ý46óNÉZt¨õUÙÓ~£!-1Vûá,Wô;bh¾=Ãánzš“ªRë_ñæé¼¼’Â/ÉúÇ2†e?=«ÛÊâûËñø Béd»UcxŠ£÷ï»CPëÏ ¾Q^AYº6¬j˜Çp:ì¦çTZoUÕ÷Û$Lã÷LÊ-OWn¹Úá'õÙ6©l±ÍQÐÇn¦5\,¤}Ä"NªÜD\x*DœTn iƒ%f”%¦ÀŒ›ŒZ"ŽèhyÙˆ“ª»í¨qRuh鸥CK‡–ž[:´ôhé¹%bØ¿ú4Z_ÿíÉH§%Ôiè·VçÀ–ë©SÆ5ð†qœq\¡sÆ4§dL½ˆÃK39«<Ç®›÷k8Óíûuƒëî7þ•Ó¬gȃI¹‡¸aÈÁXæBŸ!ºÞ“Kñò`[h5œ¡Ç^š‚ëØq/qJÞ âðVwðbÈ›Éàß°¯žøì©!NÇ Ì>h]kø¡‚~kùii ÆðòLNÊ3SpRΨ†žLž4d’1''ëØ/4d=ûÂÌ\3Š–ëàÌo1§`´—ŽsÖÐï cäé,cÌw)côº c<+Žr6yºœ1Í,Çñ>B›ã—„<:ÊÙlàÝqÎäìÆØG×2¦ù’3öÝõŒ¡³dýÖ-Y~Éúé9)Y=%ëÏ©—õçð^²þ‚ø¬?'>ë, ¹dÞ™’u¦ÔË:Sêe¾JÉ^¼ä ^rÆ'ÉKÎÄ‘œ±–—œñ xÉëzÉyzÉ™8’3¼{Éú½ä ^r†w/9#7/9Ó|Éú½ä µäŒukÉüZr¿–œ¡§–œ©Wr†÷Zr&¾äL|~{Âò1õò™£¯Z<«>|äjÙ˜¬ecð€Ö²1´¿05­ù¥²¢–§‘Ì´ó ;z‘hS[æg)þðuæ2Ú÷üÂu¿‹ÅᄃôíØ.ËOD:mé¤Ã·ŸÂÛ|œè¢?:ɯÿ7àêGŸü/êrendstream endobj 647 0 obj << /Filter /FlateDecode /Length 789 >> stream xÚmUMoâ0½çWx•Úʼn B „H¶­JµÚ+ML ”„ÿ~ýf’®Tq zyyžyž›»_¯»IZ6~b¥xó]si ?YÿÞŸ£»»¬).'_÷ÏÞ—¾¿vOâµmŠïÅýz›mëªâm]/¥U·E+ÿYÕÿ%È#îßýßÉñÔ]çá99íû¯î:‘P¿Wý1¨n D`ÅVв?¾íª¦~êQJˆM]®›vÒEÓÁ˜ŽþU]¶ƒ%ñƒ‘Ò¢¬Š~x£gq %Áâݵëýi[šh±Ó·ð±ëÛ+¹|ˆ¦/méÛªþ÷?¼…o»Ëù|ôð!d´\ŠÒBÈPƒçýÉ‹éím~‹Þ¯g/4½+vV4¥ïÎû·ûúÓG )—b‘çËÈ×åoZò’è­\‡‡Öód-”X"fD "!ÂÆ ,"Ms)ˆ/Ñ Oe¼$±‘á@hJ€ÈZÍ J`™p (S1 ÇHá#V'È-eÀÑ""a…F ‹BXÅK`Ìbs–r lÂÄ êaç Ü„ƒ'ç¸@ÈâðÑ!­–Z"…É”v›ºŒª>–×ê±ÜÅ×¾:£µ‚©Èù F¥&œæÚ+Â1ñ9anÁ[—–×Âdo 5’äBf0ª¡“ z(s¶KÍa14ŠkcGÍ›5ðœ5(€–ÜlU+ƈ£5c¬Õì!¦Nθg¤Ÿ3&}ʘô¯…7½a<ææ)x3”W¬5ì3ŒQÀ”WS· ×J®€iš’ÍJ˜âP­Œ!=ïQ›á=JÒ󥨻áA–8 †çOÏžüÇ\MÂzqJø iì%áùŸÁ³å~9ø´Ž1¼YÎëßqÓr^:–óf„7¤OHÏµŠ±7Ì<8ªUjp2ÝP+ÌãZixp1Ï3fÉñ\Ñ)t3®éW> stream xÚíYKÛȾûW‹$Ø¢ÙÝ|Ù»F¼ðÎääÝGâhKÔ,9ãÇòÛSÏfSjgíA‚` a?ŠÕÕÕUÕ_ÓÙf–Î~xòýÅ“ç/ëjfÒ¤Nk3»¸š™Ú%ÎÚY™—IíòÙÅzövþâzaæ=ü¶ü»…ßá‡Ú~±tÎ΄v³ZØrþZHsèžñÔOÐyƒ3/°ïæßoq–Ø4Èh+/ÜbcE¢û['“·‹_.~|þÒ¹PJg«¤(+ØÉgJ$z’ʶž¿ÌlH½´u™¸*›- “µã—~NMμ37ƒÍ–)çI‘U³%º‚ ÿ.Ô!Ï Â"#ÕÏiž »#B üEÐû«<ÉË\)€Y,mYÍ¿n“­˜*)«j$þm[ÈÒ€Ê%¨D8¥1ÁÊÄäe¸Ç§Q‘¨ù¯ÉÄË’ÒMÔ~a“'i™M3ç¶WüǶgÏmÏ=f{n²˜ýºí•é÷‹¥)J~ðˆxÞÒVYR€Y€SA 0üâ=õ=z,ºíf±ÌrˆüأãIÏ×-4w8šÎ?Hü€L†Áàzì")(Ûµ+‰8®øýÕƒÊûE^Ì›^B”v`‚¦oµ£—[aƒ¦ß’ fþ‰IèTáÕÂèr§‚¤ó«;hw*E¯N–PY(vá6[Ð\QÖ°sÐ(ui\’C8 uôêþßôAI'‡~Â¥ÛqDe4÷$ýzŒ‹ ¹¢Ñ`æDÏfžð –“±D¯\Äú+ ´:شͪù^ážv¼„Íj&ᦪ ~1~ßõd‹1«]Yª]È!#ÚÜænß_XP‚}=1Ñ ­ð1ï]l*ÉÀÊ…‚î§#c“,õŒ®DI´¹…îÄBÞKÿFhxãH[Ü&eæ#é ´“±:½îȾeß°×j~·Çÿ—¤è–Ö¥94ªQ×@q«ŽÒe ]-]j窩yáÍÛØS"~îÒÄŒ·Ì>¶î!¯,Üíϲq`¼ÌRVÛÆª™úCjÄåR¼Çàš.ú¶ã¡KÜ º[jYE¨þõ½Ö8ÐöÜùg¿ÿ­ÔÀÈóà è’tn{·mQþü¬]3wr†_fÖI™»©Bu{û-àLž²ûeÞ §‚5A—¦ãöp'¦s£1¦¨ôü§° öA^ ôª¢m){ñˆÆÀ”K¼wªG²ÞDû` Un篺m«0Lá6 çØaçiE^WäŸûà ð¦cÚ7z³Õ$uN·$L >d3A< S/¼38H¼6Ë$Í$x¹¨2¾X«‚A@³×ÈßbSáIÆs&öK‰ö·wt&ÝO‘‰k@» -“b6Y5¨Ž•Ü8²¦M+D[â±[†N™<¥è¶C${ÃF¨£ƒ…á##ÌcƒH>kƒæ¼RÀEœÓ0¸¹¡Ë!S@¦/= Ýbׂ¨:9h—n+fÕ)ûa‚Z|'w£w;Y“Û#Øe! µk]þp§Xç†áîФ¸ùeŰæ A»\†{¡ZÑåÄ}½â`Ñ•Lw2’s€@ªðc#Yêfäƒшªú–—ÂMßM&ùì#1ï)d%Ö'¡VÂ\€zðþ7"ÍÚãfCc$zäöÓs‘U¾côp¥ªóÚ3tˆd30:ÍfŽ »cÏn}ÈI™P²cÿaœ²›¾ñ—Ž.Üì´´€(vB8ka\°”gØB Š-4GÁüpwsNí'©ú‰xå‘Ðf%û£ŸºfïQ®þlô¾ý¦ñT/\÷aߪÏú–ýŸð-~:Î6’wî¥mFAbŽé#ëCÞõUnëuþoóONÉ!ë"šªÂ°˜­­”îWQD³ÓøïíÉ«Û:g@¸×"AÓ3‡^W¾Û5 œ¸•˜ ÍëQ¸M«fÓ7jH÷bÏ4ßìù쨷íxyb²Uþ¹¿ò[Æ8$§ü©6ËØ’q¶Ÿ¹ó»î_ƒw¿B8;¿n¸æÂJÅ‘A+[UŽÞ¨e¯Úš.õÝFQ¢ç‡43ð“ÂJã^+b\¤ß½zÁ QÈÅ¢‚(!õ›/Þ;$<™+b~\~sÍ«H†M9Ú~!¡ùY"~E³æØè3ªf#€ƒp¶Gcœ‰â—!Ä>_³)S_ƒk Ò'Å-=®‰Ú§|›±¸F'Dgµ%›Üwø.!ýyÇ ·`ê(Ú~…J±vbåØw+h³ X†Èï´RfOŸkÎÚ F”5§XbòeÐ/ `±ºPš¤¶žöQ ÍHÅTºÀýU×?”OØàÀ;î««…ÕDK[Á¦êxMãÀ°¶BŸ¾'ÏUåûD"*ŸSžÁÒìñÊ»–Ù{yj…3ªÄÚ$Ya”¨Òx÷k}&Åq¹|qõ/‡[MDz äÂþÄÛ€•˜Öú¬bX‡M–'Í’º(¦§V|É F!Ó¬£ˆæ5ÅQ^++y¼’S¹Ï_ˆî¬w˜*¿€(.rÑZo™˜ljò’Ms]XmwØpcR禑~D†Ãø>f¡$ô-qÙJJ,J¢¨J‡!œXÍ.O¬:eÒ@ÏI8/pÏÀ0}™(͹¦p9råÊt+ ñéûŒÜ±SÐE†ƒw××’ÇãXÃ$QÙ‰à…Ö]°ú¤¦ùÙsÎ$6óÕÞ•D¬çŽÍÚ¤*Š£cà papmµôšIË– úàÓ üò,1Æœ†už¬ÍAYÃÐj§•  2/î"Ç‹žq“£…Mĉüm£Ï?]<ù'qvù¾endstream endobj 649 0 obj << /BBox [ 0 0 504 504 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./flexsurv-splinehaz-1.pdf) /PTEX.InfoDict 567 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 569 0 R >> /ExtGState << >> /Font << /F2 568 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 29905 >> stream xœìýMË5Íš¦‡Í÷¯¸‡Ý=Žï©[¢Á» Œ4úÀ4oÔ=ø×;¯832ïíRÑÆ2hPƒÚµ¯½Ö½žµ2####Ž8üóoòÏ¿ÿùŸÿöùùŸúþ“ÚϬZûi¹ý™å§Îü§—Ÿÿø?þüß~þŸû?ü§ÿëõ_þü›ø[ú“Rúùþç?ü›ÿæù_gÿù_þößþw?éçø[þù·Ïÿýû¿åxÃÏÿùo³ýiégÍ?%ýü‡¿Íõ§4ª¿þ¶ÊŸ´ÞªÿÙå­öŸ9nµëŸ‘ÞjÆw}ª6Ÿ*§ü§<³ÿ¬~Êþ'—Ÿ]þ”|ÊõgŸÝâ=e.VúÙãÏ\§FûÙÏ!¨Q–ô§­>1êö§–§®úùì²þäñÿÄ>^KüÊø7êùûÚÿ¬ö“Ÿ?ÏW«ûÏx>/×?ù|^«ñ5rîÚ8õüSŸÏËóÏØQ÷¿0çç·œÏë=ÎM.™ÏëëÏz>¯<'ëüû£Ä銯9ϯãO>¯ ¨oÿÉíÔ+Î@®éO>ï_9ÎA®™¿ÎÉsâgòúŽóµ¾ß>­&×sz¢žqàrmqÿú[ydŽÏëúû’ZœŒ\ÇŸ4N½âlD½ãû—çìŒø¼çx¨ç|ÔÅûŸóçã©ëyýùáq>žº¨^ç|D¿·J;-.êÓÔÊs~’>ï4®ÒÛ9õ4‹¨×9ñú©ŸóÓõy:Ïùiú¼}¾ßs~â|<_£œÏÎÏ9;kÔSçãùšçø=ç眿þœŸs>ž¿?ßwm§=ŸÏÎOá÷ž÷?ç'ëûöWSÒùà÷Ôçü,}¿”N½|>Vü}}ÎÏ9Sí­>ç'ÎG{Î_ü¾úœŸ8Ïaçóžóç£=Ÿ_O}>(j}Þs~â|4~O}ÎOœžt=Öç‡Äùxj}Þs~â|<§!ïSÏs>ú9,Oý¼1ÎG/ºk?FÔûüžçüÄùè•ßÿœŸ8ÏÛôï=ç'ÎÇS÷óùÏù‰óñ\†¹ŸºžóñÔó|ŸçüÄùèCýE}ÎOœ§>×[}ÎOœþtUçóŸóçãùú÷žóçã©Çù>O¿çãé’k|~{ÎOœ§ÞûÔ휑ôï·tVùO‹¯=ç'ÎÇó³ÎõОóçcÔ?éÔåôÊQŸãßÊù/y<{þþ9?q>ÆóµÏ¿WÏ} º•z^ÎOœ1u}µhxñyKý[{ÎOœ±u=´§aÄùxã9~í9?q>žÛËéZèçó&u{Dœç0Ÿëõâõ¿ÅýGw·ÿðÓÒŽ–¨ò¯ŸŸø»×U©œ—sË꼯S~ÞPÔ÷û ”ß7Ì瘽ÿåç µ•è-üÊÏ~}éû>oø/ÿ‘côßÿ§âý§ÿþ¹…ÿŸž£þóÿÓÓõÿáý‡êç|<ýës1='ûÿÃÏ¿Jÿúçÿýßþÿx>ùŸÿÓÓWÔÏßæÿü¿-Ï}ôùïß–ÿ/þöùÎûûëþßÖè¿ß¹ýçÿm{¾óÚŸ¿íþ[£é0ªjÜIã,ýÝëçÎĈæ}9ºŽô¾NùyCÜòÖûÊï4VºoPùyžß@ùy_Úoøþ†ïñù”ÿâs¬Ú鋟ÅjKþÉÖôÏþõ¹øÏÿÉõÏþù6øÏÿÉ6õÏÿùÓkÿù?Ù¬þÙ?›NòŸÿ“-ëŸýóVÊ{èþ®qÑü­=ÿeºËøËekgtõ—O£ËÿÇúÑÿŸ»‰þ<ýr>ƒœç þ·ÿêÿþ¯Ÿs•~þÕÿøïþãú×ÿÝÏ?þÛÿÌŸúü×ç«Åð‹Ÿú_ÿ»ÿ׿ûÿƒí¿<–üËcÉ¿<–üËcÉ¿<–üËcÉÿ.KtûÈéàsÿxn6Qžß³jô+9q'ˆ;BôÎÜ ösñgu¾q°·ŽÅÓצÓ?Ƕ?/?£€túÂhûãô•çXÇÇ”rú²qúÞ|¾T<˜pëеù´Ý|úÞ烞‹8Î}Ó½bD'ÇZwž§“Ýó õ­q,ëSß;t¯xšÐ:¯·Ó(óê⢩ñ:m!õ|^šPWýü°ýÔ\‹§Q<ÃÒçgVÝ+ztzå¹—¾ôœ”xÝ÷Ž8Ôû<*ìνá9Œ§>Çgk/Þ¿Îç=G»ÇëÅ}Ž‹,þ½Ó¶â‹<$?÷Öyú¢ç…¸6žº~ïûùY§ïJ§ÑÇ-ä\Ëå9Þcœzœ¾ó %½®¾÷9ÞÑŸæÜ›Ës¼£mí®ã}š§>ç7úþ¯7úÞçxÏyêÓöËs¼³^ϪumísKˆ¾ýÜôò3°8×ryŽwŽ×3¯?Ç»ÇëÏa=}ùs¼£í¯§¾¾žú\+Ñ×?'.ãéËÊs¼Ÿ·Ü­¾¼F§ž—¿ßóƸöŸÿyžãÇ;^/:eŸ‹4ÚOOôíÏóJô•ñ ø¼>7}Ñs¼ÏµÆ½£>Ç{êõ¥úù¢ùüýiõ9ÞquEwúªçxÇåõ|ŸÓWD_×W n_žÏï=ß¿j ÇKïŽwÑñîçýíܤãüžë³F§]Ô^ÎëÏñ~.„Rœk¿>Çû¹¾¢ý±E}Ž÷Óð£VßþïçÂ:õyý9ÞC¯ëûÏ3è+O_rÎW}~H×7÷¶çx??$ša9ÿþsâŸë+†$g¬}u\_%©ýG_××sËÓ³BŒCãõ¥ö³ q}=c'õÏÇõU‡ûîu®¯–Ô{ÅãI\_­ëû·çxÇõõt¡ê+cö¼÷¦MßüÜ$Ëso¨‹¾9†þ£Ó×?Çû¹¾âqþ\/­›N 1T?7ÅçúŠf·ÔϘ)O{Ö÷{Ž÷s`bqúæöÜžë+š•þýk>™öОãý\_Ñlôyót”5ÆŠçï£á¬Ÿúü¾^O=ãúªÏ½î´ïöïçB©+iìÔâB¯?q ;÷ŽžÎ½¾?Çãô¿ýù"ωÚÏÿ;í¿ÇÀÿ9Þ]÷¼ÏÍ$z„ª›ÉÎê0“n&-Ÿö6šn&›æ?'.ûrzÃsvãêi,CêlŸÇ§}:sõšå¸çÓYæsÏøô¼?Ÿ^(ú¤óccÄÿ´Ú.=xÔè5¢ÏéçïËÒÇèÁ#ûsÌ—n.3ŽRyVÕÍâtåÞ,žñsTJ\LzÈg~&ñ4ž¨>÷´y>ÿiEOcˆk\¿oœç§sMëõsñÄxìtnçŽ'/óùñ`Ñ~âšÕÍöé¥z;'w4nϨƒAô ωºûæ‘â éÁ'nO««‹ïLhÍ3Ð7þ4–_œÎù9¾ÏÅãÃê›Gš©RÎÈ¡ÖsÏzÆUãÓs<â*ÍñûŸ_ÏͼÆÇž›O;65 âO+O{xnfçb‰«ôtÄñ?ƒ…xPx~xœÝÌžñüðò6ÝüžQÂs K ¤Î÷ç‰"Î÷ÒƒÂéµâb?í+®Ú§×*Åx0ˆÎ­ùæðŒž‹§<Í"éæâ‰&~ÖÒÍã\µåyÔÍpŸ«.î¡ýt¾ÏÍùéeâ0©³}ÊŒº¼7‹§óŽöÍÍâ<”âÎ7ÞXÏçéýqs¦3\Ü,ž‹µTn–Ѱf\™Îüé£s«Eí%n1aT}siç‰)~ßÒ@¿Æ‰{úy0†Sâxä¸j5ПQûûÇvŸºêæpF]Qk`£²tþþ Ö¢zz±èœ«nýt¦ñ u>/fÊù>úýÏ]-n>•s}ÆóEãïÏñnÏ(칫Åóåi¯-£Ò«+g ûôÍaDCöpú“VΨ#ž'©Ÿ^~žþà´ŸVÏ17‹ó cŒ{s¨Ñ?d cà¾öéüõ`ÑÎ@<ÆzÑTY<¸ÄÍ¡åóúLÄÍ!zË4Ø‹›CÜ ¢-nOí•öÐf?¬“ë7nOûÖÍ ÅoO3¯ªÏsN£„öy‚1˜9ßï¹+=7»õ†¢›A‰þòã¯è'â8Ãâ§_­º½÷œÏð®çÎý#w§â™/þ¸qè†ÝtQôç G§ÿ¹£Ä;b.lœÿ\Ï-fÄÎìΈÍsjbî*fãÂíQAÍ<ÿM !ç™ë^ôYñlyæ¼ÎšgX²¦®ïuº§ÅcûSÅ÷Ò;×éÓžyzªNžJ¯‡§:½øS=BÌéøéé¼væ2×y„ß<ˆ?w¿ç;í¢G‘è<êÏ®êKŸêyæ|ª5uc|N| ê2÷Ågt±™/ˆ‰´§}<¦ÃÒ9]ñ$–'uÜ‚ŸºlêyÎ"Óo1Vk§Ö#ÒSÇ3†„~}ÍSW½>Ï?eõºQ½ynðLçq:†ðÑxôH¨é”xdZÜÅcÈŸ<Ý­ñy»v®š>ôô`>½Dü³zä{®â‚'Ž˜ÞÒ뺋æÓ8rbº(çÓzãkèó©ã‘2nv™:¦brîÊù4’øšzd,š¾xj=‚–3 y§'cz3'äsŠúiñçI7S¯~êóH–‹¦#ó¥œgÅÌ4ýýiPgp3©ã|<‡!éõsœÃ¢éVÿÜ5ýõŒ'v¦Sâ‘™éQ‘5}¹KŸGê¬éS½ÿÌÛž'sOÏÆ#³nþŒšê©5J«:_Ïa+ú¼s—9‡íœÿªóUÜÞªÎ×Ó$}þùbQkÔòÔ]¯kÔ¤yÈ3Å0©‡¦ø}gž$j¾ßŽ^6jFm:¬¨Ž)†RiOMçó©ÕÞ›¦oKãx·óluvÇç©‹ëè%£¸ý‡f éê¤Ïž¾.ú¼y§³õ÷:ß1ŒãÑ5ý“Ó×öÞ4]ø4 F©j/…Gø3ÅÑÎLU½O{)™S÷3<ŒfÂ(Vçÿ©uüŸág<¢¦wcŠ$oMwgê3=¾9þÏí6q‹¯§®)‡Â”EÌ>&š™¦LºÚÇSŸ»Ì™÷«§^®»Þ¿õ\g:]íé¹k.ÕÍÓùiœšïÏtxöç­sÓªŒ²Î¼`?ÓïZ®ˆg¥¬éùóï3J‰ú<¢ÅPôWO­§Œqzãwú>éªêóùCçÿ¹,´v2t~«§°†Îo<Âï;ÔT÷£iz¸òýG÷šŽßP^›©c^1×Së|ó”r–õÐrB÷òÆÒßwMq­øâgyA¿—éo÷/SýE<o긾<ŠŒyȸ~j§?{ê¡¿Wÿ0Õ~¢XÔ]Ëú÷žz¶S«=LMYD­)¶z®¯:t÷zèï5E85ýµ¾ß®E­ß7iCË!Qw}ž¦$'íqhÔõÖçé|LÝžZSrO=ô÷ü¾~¦d¢Öç -oLú·I{žUF}– ˜‚Ëó¬[npR/-hyJË}§ÞÔ­žZO‘“ö=iOSýau>Ï@å,7tê¥Oí땽_í7æ ôïé÷Åã–þ^×c,oe-wh9ëLùÜ娽\³©cJ,–ôïµÓ_D½¨Yžâ©vxyIÇ3}õ]މ¹°®åµ—§ž,ßøõµÞ堳ܦ÷×A½ô~õךk<ËA•úô›öõýÔsUŸ¯)ؤóµ^×eKêÏcŠ9ëõ¡úÌüœzPÇ„PóS¹æ¾£žz¿ÎgKžÂþ}š¢NgãW=õ~=eÇøR¯3kqÖ‰Õ]ÇCOñIí¡1…~–Gù<ýûûŒ£Ôƒ¿×,‡ÚCKšÑŠºêß?㡨»þ}–[ó_DݨïïÔƒ÷kJþLÉzQwÞ¿©£?lYÏGQŸ%’[«?lLážY^oÔ1¾øÖ›ÏÓ¿®SO꯶¬þ9ê1¿5í/k<õÔëYǃö˜5¾ŽY¢¢÷gýûgîùÔƒ:î·QkIýÏ·|Þ¢^ùw½õ}5å_hÏ·>SÌÙ³EÅOÝÎý#j-wky>êÓ~Šî§ßºæoMû̺ÿÆtÌiŸŸz¦ßõú¾¿êþy?¯Ò~>u™¿ëQ׫|káߺÎÏï«ZßûÖ>®Û¯÷ßö¤%¢zžíßãWoû)žÕkésüëÛuOŸó[u¿ûÖk~ë¥þàS—oûiôOnOÍñ îqc9õ9ížO]/þÇ×SÓýå^íö?º>›îY•˜•üÕô·?PÕž“î§Q/õŸKøÃ½þ——Äèo=ë§¿b çögóyëvî¿·¿ìß´žãíþ­9<¿–~^§nÔî¿Ïñê÷þ¢þ}œYÅ÷~ãUý{MKx\OI³†1 {Î7K¨å_ú~¥%;Úoò’Þ=>:ÿóö:ÿóLŸ:Qý½Îÿ¼Ç#Ý%Âñ»Þ:¾êŸñ÷7áóê{|4k=§ÆÛÛK’ZžjÏus?xÆgà%j±üÎûõý÷¹ŸÅx`Q3žQ{˜ÛãÕZK¼ã‰˜nìo0k­þ­n/yv78q¤­ù—˜åŸñMLGv½_KÀ1]6×[¯ñAŒÇ²ÆK‹šß¯ñDL¢Û jpÍòÇôþ~Ç_1ýYyÝK´e¼ã·¨Ásj§^ú÷«ðœzúÿÊóéÅwŒ½ã3áMÏx«éuµ·éuµ·éühI{?ÝÿžñØR­ö´Õ}kοú£}>èÔÂ…ÒÔ¥ñAÔ¥ÿ®ÏxÜ)ê!üè´¯š²žÇ–ÚOñ›þ~éï«q.ÍòÇô¡ð+-I§¦ñ+«D±Sõþ¡ÏÓõkü+–¼“Æ÷½Sð°F=÷;Þ¯Œwâyàü^-ÿ\ü,ð§¤ß'¼)s}±ÄKè…ºR}¿¬Ïãzo‹å&Žßÿœå'ý½V%Ê=~Z•)éâZ­8ž<ïÄ*LÒó•Ž?ˆÊ·>Ç{r> Ç›ù³¨3Ÿ¨ëü]÷þ>ÅLyÓëŸJS{5>ó‡å}~‹zëym ãú› e«=ò|«F<ßuáaêýüy–²êóù•ó1uýT=ˆžzPý¾"DþùÚZiï“óÙ8?SãÃØAÀñÕùÓŽ‚Swê¥ï£óÕªçNÿ«ZÌè|4ŽÏç5îÿªu}4pÈÁõø[ý¹Ï÷QO}Þ.·„KB»ÆªY£®Ô[ïÎÖ“žO‡æKÁÈÌ7œï/nîÌO·kžéÆí˜陚ùÕ#éú3.7ÎøÎ—¯ŸZÇ;æ›ôzÖ*íi°êöܯù÷t¼GW{\?cžñTÌçLê­ù]Zn=u§îšÒñKíÃõRóEª‹ž·;ÇwžUîSOjÏ7 9©ºþ¼Š9ÏDÙ©ÏNÿ«dz?ÈJ×ý±s}LÚ{×üàˆCïW§UøS GäøwÝïWœú{õo«Üù³E=ê·í¬jÆý›÷ŸßKOz¿VYŸûuÊßšöÛé/ãþ­Ï+…zõo}ÏŸ&ߟ;×ߢ=³„õæõsýî¤ë—õ‡¨«¾Ÿ£ÕŸ‚ˆE½t¾À3‹ç…ÃnÚ{£¿Ü]í±Ñÿí¡ë—õ ¨»æ+u½Æü‡æ7Õ~|ÿ©‹UbæKuÛKãæÛkàzý´§–„\¢(<”þ¨©½D=4¿:õÖç ­:wµ·‚“¸~˜oUéÓ¾À¹£Þú½Z•Žù ^oÔž¿ÕçåÙSŸUÞ,$-æ{õÒ÷^š9Uß§Þ¼~Vy3ýѧ®ú>B¬rõïתsæzkêÿcwCæõF]y½R÷þ»ž:à´Mý÷­»q÷’¨—ާpØ|Ûí‹~žÔSÿžðØ žÝÀcóm/ÔËÇÿ´ßƒóêü'#càø§¿ ¼÷´ßʪz¡?­šÿiÂ3Î|½p`î'ÌßG}Æ‹Uí±ù~Ì|Ô[¯‹bˆçsÕÃõÒ¿?L!lÕ]¿Ÿõ…¦ß§æx°ÙD9:Q/ý=¸²ðaM @9èïÕ>ÅÑ¿u¬wéuµ¿ÆõQiÏý:ÏßuÕï;㋨9žj­iüÎz\ÔMïõЄo¿5×_ l÷|¨}¶¡öTioþõ¿Cièýj_ý°q§®ÔUÇóôQÞŸ©×úÖY÷ãªþ2ê¥ã¥öÖ‹ú›ªù·@9ߢVÀ·+¸}M÷ó¢û]Ô§=Ú‹ïßêdp?(ºÿµ1½ýDxúà÷Ú× )´¯A{IêdiýKÈbÜŸµÞ¥þn­'ÚÛd; Ô]Ô^OÓç _õoñ<­×E¡L®Ï¢ñh{ú|þ*êÏà(‚rIú÷uþWSU8ÿë/õG«ëþc¼g]ÿ…ó³ï÷î÷§ø=YóAQŸûsVÿ幞³îWÉd­?žùîn~"ês?r³×/Ïùé¹hü˜u>zô—ùÔçø@3õùçøõR5þÈZÏè¥ëùа—©þ3ëú‹zêûžë­7!Õ•ùàÞŠž—˜?ë­êþÀz}oM÷CæÇz¬÷–SŸûoàEçy0©}ýÃËî<çïÃîœÖuÙñ‹Ý9-ù²;g»³4Š»³™ó»xÞNÏH!h›óÚ§nz7±;ælÄîlîlbw6ãØ®V'vç@0d=ðÎaTÖé6Xß9`Œ­g¯ø à ¡šs-"²ëCH0b0ÁSº <ñà÷%xÉÔ1Â+<Á™à17h‚§°¡ÉÏs#ºDO×Ö #¯@<µ²¢ÁSá±LðÜ)žà*½_ðÌðö—è‰ßÛü{ xš¿?OÛ <†–MðtV°Lðtï^„àñ&<;¨ žx2Ñ=ä`†ØÏÚ7Á32„ Ϩ¬0CðŒAÁ3±›à]­ÐÏ€{4Á3`ÑLðLfÄMðLo¢à™ô`&xf1Ñ£Æ;Ç‚gòb‚gz‚g.×:_‹Z< NØÏ*3<«°â Álx¡Úô "‚g5žžÅŸ žçjÕŠ(Ï»©Gçó©µÂ Á³–î8&xÖ¢½Bð¬eBHÏÚœžÅ ¦ žÅ ¯ žL‰ðجˆšàyn,ºž!xvñ÷Á³Mt@ðï§×EðìÁ³™2Á³×[oA÷5"x¶W Eð”KŠà‰Z+Î"xb!¢æ±¬ã-‚'jH"xÞMP"xb¡XßWÏÙÕ¨ƒ޽Jú>‡pˆ…bm¨Á úÞDðœ…ãL}6¥˜ÈÁsŽ]WL<‰à‰…_œ³U.(‚ç,êYOý%x¯×Ïù= Û:Öœ EðD-BFOÔ˛Ƃó~nô"ÆDð°0ü— ž¨—‰Øg}=‰à‰Zý¥ž¨E¬‰à9 Ãúý[û(ª Ó_ÄBpó†æà/q(‚'jˆ—CðD ñ¢ö“¹3BðD ¡S´ÉÇý‰ž³°,BågEý€"nhŸB'ö1d´BtêB}Úço‚çW½yýCð|^§=Ýú l>ÿ>íƒ}.<§ö¦Ï¦×‡êxÏ©EÌœòsüD¸p¾¼Â&‚çœÁsjï ÚúýZ1K÷|jÅ_OÔZ±ÁsêÁµV\EðœÚDNÕ¿Ÿ>Ï©Müœö°XO´ÚÏ©õi‹öL{`… ‚ç´g>]×›d5›dé!Òè¨O-âå¬híPºëýíCðœÚÄÏÖ÷Ó>§L¸8þ™ö´X±ÁsêN½õy5]÷›õ;±Ç"³/ŽŽöÔÚÇEûƒ‡à9ý‰ÞO{¼›†oÅï=K«§¿*Ôq¿Í츀à9ýŸë¡ÏƒÈÑý8j¿¾ÕiŸûpòt@ÅÝ$*âBÏéõyM÷ïÁsú{=ÜO+¶"xN­MÏ´Ï®ë‚çÞ xÎat ÆÒû»ˆîŸÚ<Å›` x¢Öù©´fÀ!xÎiõ>¹¤û±ˆ2M}Üû/OÔjŸ"xNí×›Þ¯ë¿Òž ¢©ýÓ¬*uÕçAì ]ÿ•ë©Ò˜‘„à9{ÉMø 7†ßÆ#ÕÿþRP½öÄŒ$Ϲl*õ9åÝØã÷ñ|Ás.ÃF}úŸÌõÕ¸¿0ãÁsÆ[z?÷‹K¸Ð˜`éô‰ï+‚çt‹ú´ßÄçu®ö]Bðœ:QO}žˆ<ÑMéúÁsj6Í›¦Ç‡à9ãÏN=êótþûP!x¢Î‚'ºM)"x¢ÖýBÏé–EèœÃÓŸ¿ÁsÆÛ‚çÜ´)ëóXÁƒà‰:»Îß'=g¼Ý ¬DðD­ëKOÔÝ.UÏ Ý¯Ÿç·g¿ßD¬žJÁS’‰2<'›BÄË!xÎó¦öÍêzòŽ4ž"Ðå/ÝÏ`¾ÖOÔ"jôû;Lð Lð æóMð v ˜à¬˜àË!e"xÆ2Ñ£ës,7"x¨&xã5<ƒ_I<ñø\Ìí¤ø¼ædÃñœÇéDùˆn†ã‰<ëúIâ‰Çáå䪜µwq<ñ¸Û>Oõ8Ž'O¿I<‘¡ªß+Ž'OÅYˆã‰ZÇ_O]æ¼ÄñT?'ÃñÄã¨þ}q<ñ8š?I<ñ8Êç«}¬îüÊÃñÄã&É>ç"jõâx¢ÖïÇSÎ ÇŸù“Äsbý>§™ã©ž·‚㉚ä³n£ÍÉ;fºÝþÅñTe&ÿeŽçdÌŠ»ÑùßåÇyáJÇ5œÐé?¢V‹8ž¨ájNÿµ8qõY·>õ¤ü½9Ìçgêh?›u8žS8žzµâx¢næv†þþ&ó,ý}5·S²~Ÿ¹œª¿|8žS;ygêó²ÿ~ëóà|Îý§n÷Ÿâxªç•áx¢Vÿ ާîjnFíy›ÓÇuÿpœ,tZÔ$ï¨=vq<'ßù“Äã3qâxbü6?Iâxvw²Ž8žHÈÏf'´9žÍó§9×ÍñlvjšãÙ…ëŽÇëôæxäPøër<Ÿ™ãÙ¬ šãYæVáx–9M8žE’£9ž+/ãYÃÉ8âxÉæx–9D8žÕÍýˆãYæ¬àxb_8 q<^G6dzX×0ÇûrÄÁˆãYˆÛÌñh®î¯ËñÄ󧹞àx–ûWq<Åëªpý‡ã‰Ë˜¤ÏA2%OÔZ§…[$ÂñDþ½¸q<ÅóÜp<§[9ßWOñ¼4OÔZ§Ç¾6’ktüûžàx¢Vœð`'/OÔùÃñD^ÿõ!ÄüßÈæ|ÎFMÇ{0ž‡ã‰nršë9¿Ÿ}~pqPâx¢¾\OpÛuÀA‰ã)NF†ã)OÂñİSI>âx¢^Ÿ$ž¨÷UùC˜/‚ã)Nã‰a­¾Ÿ8ž¨û‡ã)N¦€ãaX|9žâä8ž¨Õ‰ã9Ãrq8‡ã)N‡ã‰z¸¿ú|‰ã‰º¸îzùp<áwQ’8žSëuµßÂ>8žxÌÐýAO)æ\ÄñDÍ¿¯þ¡ ×`â¥X4ÊDéÑê|8ž¨u¿ÇµŽ‡8žxLÚ®—|4â.Åñ?þ^í½ sA‡ã‰Ç0µWq¥ös9ž³/Éœû“¹¬}@:_âxN­ß³´ÏŒñÏÙ÷£ä]¿ÞÇÇs÷éÀñœiýýÐ>¾Ëõè~’é¯àxî¾8ž3mãúìëtR8ž˜öYæzا"«rüœLRùýì[ã9õ'‰çLC}8ž³~;~.ÇôÕåxî¾a8ž3ÍU.ÇÓ`J&ÑDÇÙw².Çsö™èõsã:õ'‰'êå×ãxZÞÇSü| Çsö¡¸Ž}‰dP8ž¨ázt>Ò¶épÏ©?I<%™ÇµŽ·8ž³¾®Zç;M8+qÏõpÉ®•LÙÈ®U À®U_›V‘˜ËÏs‰ÆŠc¢|†ò  ç®çŠçÙŽÅγí]ͳ½Ø¥^j³–gwK¾ʳ;$‚HžÍÄ Ï&ñŽgOk3²½j/Šg ij½Æ%†g[~!„go¿—– ™vi99Ç.­ä¤%ñ$'_Ä“ 1Ä“2I<É+º$ñ$ÔâNâI>Â$ñ$»oHâ¹.1’x#X'ñ¤Î 'I<©CpÄc­“xÒàû’ÄcW¶“x3LNâI¬è8‰'-»®ˆ‘Z&v”Ä“˜1pOBïì$žlwI<7Y„$žœM)‰Ç# 'ñd'‘Äs“EHâ¹I"$ñd%$ñÄ@T .´ Ñ@Oæ ÙI<¹š˜QO6ñ@Oæ ÑI<Ù—I<ÙÄI<—h#‰'û¢!‰çcIâÉßNâ¹É$$ñd¯H“Äs“>Hâ¹I$ñdŸO’x²“dHâqR“x2;Ä“!wíÒÊÛÉ7¸´¼Bo—V‚h²K+™ð‘˨8™ —VÁ½`—V11€K«°bc—V1q€K+ž ôýäÒ*åMæ‰ë¹˜ˆÀ¥u]i¸´JõñÛ£˜HÃ¥uÝi¸´ 3öviôÕviŸo\Z¥s|pi•î$ŸëJ»†Ýè?Š;F\Z7) —V$=áÒ*ß'WDvsÉ¥UØ™a—VqûÀ¥Uí —VqR.-?áÛ¥U– ¹@ÊrÒŒÜ1e™(‘K«¸}Íëb+Ÿ$ž¨oòNôÅ.#\ZÅ„.­²­«]m›zéï!hpi%'ݼ.·E}²ym žçv³KË.J»´’¿.-_vi%»¬pi%'á¼n8×[Ù‰ÉÉ;CÙŠ"LìÒbv]ZÙDÓrÖ!®°ëŠÓýË.-%vieŸíìËü!xnÖäui¹µKËÉhvia¾.­j¢—V5qSõ*‚È.-»åìÒªçÒj&npi9ùÉ.-²•¯KË£»´ì&´KËû´œlg—–Ýqvi™h¶KË÷[»´ì†³KË÷_»œäd—Öàþa—– M»´Ø e—V¿’xnö»]ZΦ·K+n£›·š’ ÒëFñ"÷]viÙe`—VõŠiºî3ˆ™n÷ÁvÝä"¡‚Kˆd»´êöç»'Hê™vOhE—ÖumàÒª$/Ù¥uÝéºÕÆ'‰çÔ~?.’ab'ÉõÁï¹®5%«äëV»î,ÜjÛ„OÇ¥"â庴’k\ZZñ}]ZÙI;¸bŠk\1:Þvi9ÉÃ.-»iìÒrR]ZN±K+9 —–Ý9viÙ=f—–]>vi]—Øu¹á».-~ïëNÒç_÷Quò.-1¯K«›ØÁ¥s]Z:?¯Kk~žSëï¯K‹dœëÒ1òº´ö‡àÉ6‚_—V¡½Ù¥U~<§ÖçáZ2b—Ö%’piyÅÙ.-v_—–“5ìÒª&rpiU»¤h?Õ®+\ZÕn.\DŒg¯K«š°Á½Tm´Ç¥e"Í.-²±¯K Âôº´L´Ù¥UqõإŠëuiá ¾.-ž?¯K«¾DÏÒ¿„K«šh¢=y…ß.-‰vi‘M]Zóc—VûEðD½Lì½¾>In½×{ÿpÏ·®ý[×ûû]—ÏýÊI<ߺþÝëßû™“x|ÿsÏ[+‰ç[¯ö­o{¸uùÜŸÄóÖÓýý­ë¯÷/%·”{=‹`(÷úMß$žÆxÃI.-»2pi»dìÒbOÔuigÞàÒrf.-¯¸|\Zí“ÁsgX?.-Þ]ZùKð4˜õ¯K«RãÒÒŠñëÒªŸ ž´¢ýº´´‚i—–Ýf¯KK+Üvi±躴Èν.-»ªìÒꬨۥeÖÉ.-¯èÙ¥E6äuiùøÛ¥UœyƒK˼—]Zøâ®KËn6»´°#_—ÖøMðL»Y x– »´Š?—–ÝJvi9Ã.-ö¬\—Vg…Ó.­›„K‹庴±]—Ö2¡ƒKk9£—–Ý.<;Û½%‚g;à ‚ÇÙÄ&x¶WÐ!x6Ù«&xváüØ¥åp»´|½Ú¥åöe—–ÝCvi1|]Zì):¶íeL!xNÖ¹ˆ–Cðœ…ÛA½ÅÈÖÁs\.¸´ØÃ|]ZβK뺯piu3¸´Ü~ìÒÎìÁ¥e×]ZË>¸´`B¯KËĘ]Zv—áÒÊ7S· ÙëviÙ}`—VNvQáî`…Ð.­ìŒ\ZÙ.­\œ™#—Vf…Ⱦ.­›™Óì¦À•…[È„˜]Zí%z¦\Å;Y®Kôt¹:æ‡à¹îëÒê´»´&ý›]Z¸N®KËDŸ]Zv=ÎëŽáý¸´–3spi-gö»––3zpÇl¿Wÿ®gšÙ¥µM¼\WQuæNÉï“ëÒÚ&pi9Æ.-²¯KËî"»´ìÂÃ¥U.$÷Q¹DÜ3Å.H\Z%ùûÉ¥Uœi‡K«$»ÁÔ¾K2¡$—Eq†.­¨;u´ïâL\Z%ûûÈ¥å=@vi•lÂF.›âû3.­b7.­§Ö÷Å¥UÜßáÒŠ‰ngîÄù-ÎìÂ¥UŠ3{äf*…þ—Ö%ôpiö|Ú¥UŠÿ}¹“ ™'viì½viÆlvi•bBHn”[ãÒ*åukÕþ­å¶)Î8Â¥ULŒâÒºÿ{¼ï÷Á¥u¿/.­¨õæuD´'²-íҺǗV1Q…K«}i—V)vWq>9?viÅBE£æ|’I#W3íÒ*ÙÄŒ\Zn/vi»hpiïyÇ¥UìâÀ¥UpEÚ¥åök—V±›—VI¿2xØá×O{°«—V¶K«˜`Á¥åëÍ.­r‰ÚC²ëŠöL ÈÃ@-r!•d·•úÃr ¹ŠÝìI/Én+eLxÿë.­Im—Ö‡à9®,½þº´25.-ÜW×¥U>Ϲ¬Îû_—–ŽÏëÒÊ&z–ÜU"Š.-»}ç79“纴ȰQœé„K+ÙÕƒK+mgÚàúÙ¸´<~µK+í×µ5õyùCðœnKŸw]Z|ÜQv]Ù¥µüïãÒZhvi™Ð´K‹íëÒ²+Ï.-vi9È.­Îù³K böº´˜ ¹.­öº³’ÜQ7“'Ë¥þÒ.-2 ¯K«¼„N‘[j8£§jÏà0ÑÓõ<Óý÷[{Û‡à9Ï?‹ºêóÔÙ¥åL&»´ìj³K+›0Â¥•íöÂ¥•!„K‹L¾ëÒÊþ}¸´Ø3w]ZÉ;¸´ ÄMðl§<{CDAðl²ÓMðl´<{›Á³—Ý[ZÑÞŒßMð\WÏf‡ˆ ž½üïmïqüEðl»!x¶Ýl<› Ën,\3 7Ï4!Á3MØAðL~<Î(7Á3Y5Á3§3ppïL/"xæp.ž Á3YÑ2Á.£þóOuvßuiU»­pi‘µx]Zæ¼ìÒ2—h—–Û¿]ZæÄìÒÂp]Zæ>ìÒºÉ1¸´ÜŸÚ¥åä.»´x¼.-žë®K çøuiå7©‡ö¸Ìõ—V‚sµKër7¸´íÉ.-s¡viÝ$ Üp¾pi­ý&ï ]_ÓÉ<¸â†¹èïÍ Û¥µÌ¹áÒZNVÃ¥eºÙ.­5ÍÉ¥µ §íÒZƒã‰Kk1d—Ö´\Zv'Ø¥µn²Ž\ZË®N»´ì³K‹,âëÒºI?j¯“u)»´&ëNviÍé¿—»fú÷âÒšÓIB¸I°Kkúþ€KkòÜd—Ö4׌KkúúÂ¥5Ý~qiE³ßÔ§ÿÏo\Z“$»´fò¿§ö6œ<…Kk°3Ï.­xnÖûåª8ÈíÒdWÚ¥ÏQâvt>ÇoŽ'¦µîŒKkÀ±Û¥÷ãÇsÜ“ânäÒêÝ\Œ\Z½;YGã™N2]ZÝëò¸´º“Cpiu»mpiõâZ®¢î$\Z.Í.­n7.­Î¼Œ]Zæ´íÒêæjpiµýr:Ñš×1qiµõ‹ã©ÞÙh—V›~]ýaÃÕi—ÖMzÀ¥õÔ¼.—Öu7áҺɸ´ãa»´žÇ©bn'ÚS«o2OŒ/ë vi58/»´ZþíÒjÙÜ’ú·f—Vs{Á¥UáíÒªæ piÕéd¹´ª¹\Zõº«Ôÿ8)Ë.­Ú~%ñD}¹ŸpiÕfGí¹šÁ¥Uo2ŽÆkNÎ.-'¿Ù¥UàTíÒ*NbÀ¥U¦9\KvÉàÒ*Œ¯ìÒ*Ì3Û¥å}vi•ür;Ñ~ œ¸]Z‘\øáxb¹Q\.­ËáÒ*ÉÉ>rie'OáÒʸìÒÊ×V´§¼Ìå¨=e²ôíÒºœ.­Ìº]ZŽÛ.­l×.­|“t¿ËΗVfÌ/Û¥U™'·K«®×•uæ;í.Â¥UÙ—d—VuÒ.­ê$&\Zuúó䊪Ӝ\ZÎØ.­Ú $w‡“IíÒªÕœúÃÊóµ]Z× „K«2¿d—Ve>Ç.­ÊL¸]ZÅÜ.­Â>»´ÊÒxÒ.-'Û¥Uœ…K«À‘Ú¥Up'Ú¥UÌAàÒ*¬‹Ù¥üOOÔâ´ÄñwOù¹O Åuˆã9ÃFý=î¡7†Kë9âpiæþíÒ*Åî,¹´Ê‡ÓÉÚW#—.­âóK«ds9¸_à|íÒÊìC´K+Û•„K+“Tf—VfpÝvie’)íÒÊÅ..¹´2Ü„]ZÙ®=\Z¹üvie÷—¸´2É¡vieæ‡ìÒÊî_pi%ægíÒŠnñ“Äs¸îýs9žS8žã~ÑßË¥•®Kí×ûíÒJŸ¤ž%n[í —Vr÷çDÒ€]Z›¸Þz]œ.­Ä¾]»´ÒueÉÝû2ÇÏåx¢®ŽçìãÔëjï‰} vi%æ/ìÒJ î—V"YÓ.­dŽû¯]3vi%Æ¿viÙŒ`—V"9Ô.­Tߤ$·çïr8¸‚x~°K+±¾e—VÔâ~äÒJÙÉ?Ó®%­àÒJìC²KËf»´R²kJ.­dw.­ÄxÑÏ&YØÏf=ÈÏuÏÀñlúks<Û\ ŸÌñlö˜ã‰i's;‡+·»ŽgÜ[gŸôuo‰ã±;×Ïfß9žÍʯ9žmNŽg_×–¸•}“‹Äñì¿KâÙNþ€ãÙæ@àxìÞ5ÇcWŽ9žÍú‰9žÝÍåˆãÙÝ®.qOMò8žM{6ÇcÎÚÏÆmlŽgWs:?æSÍñx¾Ý³'Ìñl·W8žÍ¾@s<žŸ7dzíF‚ã‰ùø/dzÙhŽg›“‚ãÙÙ.+q<ÞoŽg³OÏÏfýÔÏvû‡ãÙ‰ö ǵþ=q<ÓŠ9ž˜Ÿo?/dzÙ×mŽÇ·9žµ_N'8žåödzXŸ4dz¶ÝWâ\÷cs<Ë×Ïòõdz–“{t¾ã1JŸ§ã¿Ø—oŽg ®o8ž…ëÙO<Ö}9žEÿjŽg1¾1dzØ`ŽÇëƒæxVãz…ãYíwÏj¿\Z—›6dzà(Íñ,ö­›ãY¬'›ãY•óÇãõys<«üNâYìS5dzòËõÎÞÜ"Ïb|eŽg™S„ãY¸/Íñ,\÷æx&óæx&&sòjyã>^-çœàÕrÌ ^-§èè±f³˜̳‘!–gÊcë=$Ïn¼9àÇn¬#ŠãÙ\v`<›<*(žÍ$Ï&m †'F¢„g/¿*²Fž}ù"ùËS!|Ç»ð®G‹]¥×£Å.öëÑJN±Á£•Y­µG‹»õõh]-§“|€IáI>†¤ð<µR HáIÝÿžRx»ŽÂ“ú/z'Z¢VûIቧ§òĮĮ§ð$§ŒÂ“Ø¥çžDΙSxÒr*ŽRxÒúEïœÖlZ'vy${…HáIëMÙ‰Þ3ù"…'Ù[E ŸÞœÂ‹ŠJÝÁ£•œªƒG+¿©<‡#tJ)<Ù©öhU{±ðh5Ó0x´šSmðh5þ}{´ìù£•í™Á£©/•:FqMžã‹G+›À£•íy£•§ÿ^Þ¡)<¹yõØ-v±\–S,ìÑj¦mðÊx5ß­ö+…'êáúäêÚ;d–½CöhÙ3dVÿ;^ºëѲÇÇ-VO®G«;%»6®G Úüz´œz`ÖøEïœa‘èôNÔ¿RxºSÌHáéã¥yš^×ñ'…§ÛÛF O÷ý€žÎó‹Sx:«ûNáéìVs Og>Á)<}ØÃ¥žîû )Ý÷Rx:Ï»Náñn%§ð<õø¦ðt§2ÂÓÇoÖ·f×ã/V<&‹®Q Göd)¦§ô(…§óüíž>œ¢£žÝÇÍ)<Ý«¹éžOÑ,¤ðtèe§ðôé”®_žÂÓÉyw OŸ¦{–w‰–o O'EÏ)<Ý©¤ðt¯F“Âó­Ïñc–Õ)D‹‘Âó­ÇúÖôo·¦½»n÷üPßãÛLóœëýS¯ï÷!…ç­ßã%:è=>NÝÉåó{Iáyëéöwë9?Ç‹ž·VjÉ=¾¤ðÜšžŽÐ)<™^§ðÜóG OçùÐ)<ßz¶OM iC§ð¼õÛEÓhuô^_ã¶'¥±ú×;…§OÓAZíì—öQŠÈ[/·Ñ‚¤ð|kÚ)8Jáñn§ðÜþ‚žoMÿ¶ºSæ§ÿ!…çöO¤ð˜¾t O'eÓ)LÏ$÷ê/Iáé7e§øþÝ£—Û“ÂsûkRxÞZ)<}8%G) wLƒ›Þéó ½ãç%Ó;ôÓ;q[Ù?/½ÓÚ½ÓYÕ4½ÓIÁ3½ÓÙ]ez§;Õz§³Hjz§“²ez'êúóÒ;Q‹îuúyéÞÞTžÑ¾5×_sJçÃ)2Ð;zL~éÎü˜énz§›FÞùÖ<Ï¿éóD“@ïôfº‡þõÓ;ú×ôNoÐxÐ;ù@Ó;Ý4ôN'µØôNÔ¢{¸˜ŽÞ馿 wºSÅ wºSÅ w:»oMïôú;…'ê/½Ó’½ÓMCBït<ñ¦wz¥„ÞéNÕÞ願Þé7EGôNg÷¾éÎ|¯énš z§“šoz§›nƒÞ±uÇôN‡®6½Ó±˜ÞñîÓ;3Ó;ÚÚôNÏ¿Sx:,ƒéNJ¯éNŠýMáÉNÙ!…Úí¦ð°ÞsSx’žo óù7…'9U»¥¯G úóz´H»-h·ëÑÚêÿ®G‹Ô°øÿ3™S~¾dN|ƒKæœç÷K朻Ë%s&•ÈGî™Ã: dL´Èœ ±$2g3£-2gC'‹Ì¹ Ù; 릳wâ¦úÉÞ‰Õp­žâÐÊvHáÐÊëp¢wºÎZÙYvhÙéa‡­õ:´˜=¼­êï‹Cëf±lz‡Vñj»Z•ÕT;´†³yph‘©wZαC«úý8´ \‡Ö|ùZ[r6ÏÒì²è;´2«…vh}œZô¦dá\‡–V‡?­ACKôÅÇ¡5©qhiµØ-fÇ>-"Z“Õâס5ŃCKÇÿuhMÓ:8´Äv½-­ö¾-h›ëк4ÏɈœvbáРúuh}²w‚•¼N-ZÊ–°CË´ÁëÐâß»-²}phugó\‡VÿÒ;ëféàК¦i®C+™îÁ¡¥óg‡V2݃C+™®Á¡•L×àÐJvpáÐrÖ‡Zdª_‡{5¯C‹½‰×¡ULáÐrû¶C«ûûàÐ2Ýd‡l¹émGôΆ½-;€ìТ÷¿-î.סeGœZÅY78´LsÙ¡ÅÝÿ:´ª³yphµ—æéÚ›ýƒC‹ÕÁëÐ2½e‡–Û'­ÄÓ³ZÉY#8´¼WÛ­dz‡Vòj9­ ·>Ù;ÇY0©§öÊàÈ’C+‘Yo‡V²ƒÉ-sŠvhÙ±d‡–~vh%è;´ò›¥ƒ#¢¹>{ŸXº­ë#[ ù:´Šé%ZÎ.²CË|£Zì5»­f:‡V3=ƒC«9‡–é=;´ÚëØÚrvLgëàø]h‡{®CËt™Zý¥uŽC«;û‡V7MƒC«;[çLÿEï”K§áÐÊÝ092OÛvhåñ+{§äáã!‡Vf6­<¸^qhefëíÐÊÌÙ¡eÇ‹ZÙ”(­"cø:´œÍÑîýEçÓ-ž¯C ZÒÙ;¾_9{'_gU¶®}èSëýºþóuX;àä"{'Û1DöNvÖÙ;ZÔþëfïøùÞÙ;y½Ž­©½ö¢1ÈÞñýÛÙ;™ gïäéßËøÃ4Ù;yÚ‘¥ìïÕwöNü²w<^röNî/ƒgÇÇÙ%dï\GÙ;:{';ûŠìëŒ#{'²ypØ®oöN¾tÐuÄñý†¶dé(‹"7g){"7;¸p™ž${';+ŒìLöˆ³w2öugïØ±ëìÜLÏ(+$ÆßÊÚQvGfw²iS²w2Ù™ÎÞÉÅt޲wrqV²w2» œ½“‹YÊÞñîgïäbšH{ûívöN6­FöNþdóLý{¢OÉÞÉÅ,®'fΜ½“Ùkéì¨õº²w2Y®ÎÞq²³w²ïwdïd;?ÉÞÉ7ûGÙ0'ƒ³wâ¶/ZgÚÉ·>ôΩ õÐóúo²wr²ãJÙ;'§³wr"«…ì?:{''gÝ(+&';°ÈÞ`/¾³wìÎÞ±óÏÙ;‰ÙXgï$v¿8{'ÙyCöN²Ã‰ì´œ¤ó™Î#Æ;‰þÌÙ;±ˆyþžìg©9{'™¦ {'Í7‹ç8é&1²wÒ°3êuü¹nÊŠÐê:ã‹äÕt²wó§ÎÞIìuuöNd ‘½ãÝbÎÞIìfqöNo¶NÖßZ§v6Oïïü…³wÒ û‚ìÄj°³w«¿ÎÞIýwöN²“ìïŽsöNbõÎÙ;©9;GY$ ÇŒ³wìPwöNªœ_²w’³¢ÈÞI¬9{'Õ_ôΙRÖÍ›u±.½s³/œ½“Øâìg_8{';µ8>Å´²w[Y9¢w6»YLïÄmzÿ¼ôÎv–ôÎvÿb‡euÖèÍê³é]Ó;Û«ÉÐ;û“µ“”M¢Õaè]pä@ïìëÀ"ûƒÝG¦w¶W{¡w¶,Ð;ÛÙÐ;ÛŽèÍîOÓ;›ì'Ó;;;G«ëû:¥²³Pʯìë*ÎBÁ¹Åõ—åCöY‘7{'ÙÁEöN2ýCö޳Rœ½c'•³wÒK÷°¾ò‹ÞÙì.¿Ù;É¿—öÞ,žÂzÌþyém畳w’í%ùø½“œ…ƒ“Ý&¦wî Ó;‹ñéEÿjzg-ŽôŽ—¦wž`zg-ÓCdð|hzÇLÓ;±~%:GÇo‘ÍgzgA«šÞqêƒé5_gVÓz˜² wÖtÖÎÍ~É_zç©Ó—ÞYД¦wÖ0£ëc Ó5¢wã%Ó;‹ñ’ée‡ôÎbüdzg ;²Dï¬ál]‹õ Ó;‹ùwÓ;«;k‡ìÓmífшsöNçû:{‡õ¶›½ÃzÂÍÞév`e¯O×'{§›ö!{ÇÙ7ÎÞ![ûfï%v³wpwÜìú»›½cºÆÙ;ÎfröŽégï;·¶×cqnÑq~Þì÷wÎÞ)\_ÎÞ!Íáfïà8¿Ù;vT9{'Ó8{;ÒÍÞa9gjzSwN{þ8¶¶úëýIá9ý÷'…ç8^TË!©>ŽçLϺŽö]–¹'õ‡OÍñC«øzÀ¡U–XrØØ!c‡VM¶C«˜ƒÅ¡Uܾqh•aG–Ze¼¯‡C«ðe‡VqûÅ¡Up­Û¡UÌ…áÐ*dÛ¡UìpáUÈ̶C«\G—ú¿Â:‘Zå:°äL*vöáÐ*v6îë´ù¦ðœåq9rhe÷ï8´^NHí3;}‡V¬;›ë‰ö–™WµC+;‡–×míÐÊìBµC+;õ ‡V¬£Š³ÑùÌÞåC+sÿ¶C+ÛQ„C+ã´C+¦wÌí„C+—_)WµÓKÜJ̳mêàxÖMñÇól_Žgá,5dzÌ=Âñ,s p<1,·£uØÉó´9žéT+8žéÔ;´ÌÕØ¡E&÷uh±/é:´ªSoph•7uç8´ˆà½­Bb‡VáxÛ¡•_®ç8´?^‡–S˜ìÐ2—h‡V6gƒC‹ñßuh9Åέô+…'~6N.­s;áxó†æxÆöç]‡–>Ï­e9+;´X—¼­aSgìÐú¤ît9·ôûíÐb|vZÝ­þ:µ˜?Ú_Žg48.;´ÌIÙ¡eç¦ZvDÚ¡…sú:´œbg‡–Sîàx†|p<ƒ} æxÎ_s<ƒu{s<#›»g2|?ãæœáx®“Žg\n‡óÏ´¢9žÁxå:´öß9´¼No‡Ö~SzŽC‹ççëвÓÉ­õ+…'êž^ާ³OåÿÝÙÙô¶maø®_±Gé`Dœ]JÚk€Æ@‹m­[Óƒ±}–[ ýõåÌû¾+Ú=8éEɘ"W")~ Ÿ™§9´ÄÕãéy}!ŽG]Äñ¨‹“8Uõ‹ãé¹ÿˆãQU¶8žž×óâxzvéÇÓœ`äxzr\âxzqäxúNŽ*®?ffÅñôäpÅñô8üžz>·Ç£*Uq<½8+r<=9Vq<=ómâxzæsÄñôKq8àxÔ•NOáõ¨8u¹ÇSª¾8•RÅã)tĉã)k>—'ÇSèXÇSÔ%„Oáõ8žR^r<…Žwq<…÷ âxJástrH­ÜœVphec× :´²‰ÃC+wrfq}uâ€àÐòüOIã‰Ëlp=tƱîR­,nŠ­¬ãZ¦íM‡VsÄÑ¡e¼”CËX—$‡–ê˜åÐ2žÏåÐR¾F-cþR-ÏÏäÔ8žpÐiºŸ¿l­.AØ~Æü¥Z¦.fth™¸&:´L]ØèÐò8§ÆñxŒã7Z¶zÁñÜvth»òÉ¡e½¸ 8´ŒÏ¹åÐ2í¯th™ŽGth©rh©rhYslÁ¡eE]}ªœxSŽ'œwât¢®BN:´L]'èÐ2Ö‘Ë¡eêâ@‡–qÿ•CË:uÕY«Î©q;¬YM8žV'#‡–5NgÙêDÖ©q<O8ž¨ó˜p­äxLÖr<Á¯Sãx<׎'8òX>8SþOpÚ±|p<Áa¯Sãx"FW%8y^ÿ‹ã©UÓÁñT>¯Çã\ô”ã©´Fˆã©t^Šã©kq8àxê ÛWO}ÅñTž_ÅñÈé'ާ2Ÿ%ާò~YOeŸ q]/>Žø|¸œwÇtÙï¯ß?€_¨–׌Ÿv¸û{‘ü{ì| ñReþõpþü¿FØÄ3ºá~8û DóÝñðÏø¿q„aŸ>ïN§Ý7üëì_Âo¹endstream endobj 650 0 obj << /Filter /FlateDecode /Length 1620 >> stream xÚÙnÛFð]_A䉂ÍÍ<“¦@šÖE M}hú@K”lDUQÎ…¢ßÞ¹–\Ê Ðµ»³³3³s¯u´tôóâ‡ëÅã+ç"£U¥+]o¢ÒDEV¨ÊeÑõ:ú#6åòÏë__Uå+Wy^ Ây§M¶4qó ~ú{ø9Â÷áÉ2IS?_&ιø5€vðÕ§ üvˆÑòެË–q›uÛœ„Ò|+Þ SbðAà–Y×;Þ}…”–‰-â5г–ˆ·ß2 Íqjã7x±…Uøñ§ë…‰ŽLdl¦tUE®ÔÊZ­ÚÅ_ Uh­#˜Ò–?'€Ç/[ýØ-~ƒ?¿•xšI@tÞ .ËUa køJ®±½G…4pÂÆ4œY¿èZj¯«¾Ã ‹ #ö¸=h¢áÍz¿æÉ¶Ù#MRºGúÒÀÏšOoëé×¼[§h˜É1 Ý"Æuß3tCv-ûv”üMˆ§ëþÄ«…X5dr° h+1NeiÅ Ý % ¬n‰_}ªÙ¾7è@Ÿyã€Gº-îúÓÔ‘¶H«C¢5ñðtZ¢*”)J°—U&KY˜ùßTltZŽqýNgšØ„(6t¯Ä o·•ËuâÞ(ù«AÁ,ø=GLf]Œ |%|)|¸62âg§h¸UÈèà«ÅÄùœ¢çDy-ëŽö“LLž—»âú¡ ¹ˆ›É˜’<”]¦Þ"ÙB¥Ö²HÏ÷˜I2ÒÆ_÷ÓÀo(ž!âOˆ“’Ë#.º„Æ;ãÒ^¼õX{@Fí¢j1⋉|b"í$‰=Ž~æõ `äèθènr͹…è û"Éã“ñù()‰3ëäîöÚå>µ¢“gNΨÉ*OÌ ÄÒ4?‹yÏ M$쇮p_Ò©õƒÌK¡qœfÑîpš£Þ3ÎПyîÂÌ !”–«ÚÛvÇ;‰ ¼mz…°5i_ð'´êóZ7b=º.à6µu­–Iilür?%wÇŠÅ£À½„U ôs¡± E2^Zç ù%é[qHg+r”0ØÔÓÔbTýµÀ›1¹-UVGšÔÆ¿˜áâ2U™?òО1Z:A3F¥n ÜÎú›S¦(Ý‘'βË:§‰%^Üí/H26<çªßbˆÜ祿¸¿¥¼¼“Êâ!‹=¯‰ïJ¢éžbtîÚTeùvíG.9NRÝÐy¦*|ðU¬oB]ø€ÛΩ97Ê7iœKGÈFR¦òªÜŒ¨çÄMU °PÍœsOÚ›áYÕêòÜÈÕ™Ør@¹ l›Yw(Uew@{Rs"F¦Já´Ý£•¾`¤µ@}{tƒSتi=é`yðm¡o>ŽDoî–Ú*Pì7+ÙÌ{ ä§ ’¼ˆŸàóPøá)Ž.àh+UVf² *ßÐY_ÌkÞ(gªËïYC9¶ª ¹’L_ietÅœæêvcAê©N/“Ùóbœ‚®¤÷yˆßsmïň)/¿ƒiÂÓ„'ÚŠ¾m—ΟœÖ§¡yz{†.à£`­¨øð)]2Ó•lï¢SûEXÿðð0øbÜ­—œÑ[™›Q¹iäp1W;04þ³¤í =\s-‡Nœ4ôŒ‡¹¬ ¾Ÿlz_…+…ˆ|ÍÅg€Œ¾­t²sM[à'¿ž¥*¶_- R[_>Kêç2öYxh½öíÖý ‘à} ÜP‰»šwþÆ¡ ¶†x'¬Wò–A`·Ÿéd _ðÊ1ûСÉ5;ôRˆ5GÜúN!18ÜÍåš|AÚN$°Û﫬â&‡ß, <ä@Ç:Ÿ|‘e·§B Xç3Ìy†¹Øò¥æê§Ë•sC!ðk¾Òˆš1g)ö£—“õ+†C=OQ4±¶h3é¼Íq¼a}¬Q5͘ò¥.ÛÌ©´,¦a6˜ €í×GTÖ¥TŸ†ÊC{§;‰É&}Í—s"x[SP×BoxTtœB©#»Z–Žÿ§(ôo‘ºõ®†½&/Äi'\îHpl@ÍÃ’tÆ„©±*5“‚¿8'S&þÐÿhwèa}žö8kÇÒ~ÉréÖÅëæþýò/À>F™endstream endobj 651 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 652 0 obj << /Filter /FlateDecode /Length 2571 >> stream xÚ½ÛŽÛ¸õ=_a}°»1#’’(mn°Ù P ÈNчl4¶Ç6bK®=“ÌìC¿½çÆ‹dyv’Ù#‰<$ÏýÆÉ&ëI6ùþÅ·W/^¿­«‰ÎTÕzru3ѵUÖ˜‰+œªm1¹ZNÞOßlfzz„ßöÿݯ;àÐê8›[k¦?Á{³˜7ýoÓµ¯xêïðñgÞà·~»ÅYÚ¦Á¶²à_ôApÿleòvö﫟^¿µ6ÅÒšJ•®"?]#ЋLÈzýV&Ÿç¹žÌm¡ª²äï`ç¿Îæ…±ÓxÝ!1ð»lî„Þò}D¨Ø_²"ƒÇÏp> ’ô ߸Ó+>t!Ó­ §à°ƒf¨ÿòc-uàáoâl¿½üð]GDΧ'|ƒŒ¦ÍµUE^3s`ãÊVã;›§ïLÛ„¸†Äù¸Ÿ/– ¾Là>é/ü¸‹>ô&uœ8 \”#| #™ýUžˆ'žûÒã8¢¶€®)•-D ?¡]twrÄr6ϳ,Ð{ ÄcÕÎL…Œ³uä Ô¾›Ía1¸ÚñŒ7Íc°«_2#À’®q›~_;/2 8×åô“4ÑŠ ·›ø¾iˆÌ£ì„Pᔎ1ºéŽ²Î öCØài‰ßaôÎÇúqV”p,Ú7½µ8–ë;Ö&|Ç6+~r†¶Ñ­à¬ºñœß=ðq°G[ÊA<öÏLÈdc†iüR,üBéתÈò3äe~âÏ?;‚ùˆ1œDщ?zˆÓ»Ô™ÆáJtÛ™ó!Û·€C¡2çC# ó ÆZD[­3GG߉l‚ûV¼J鸻!·®g¼ŒPsÂŽÐøcdm—±ìoùá\'þÌsñaœQ¿ª2›žswJÚUºx *ƒßð{s~üÈcä°RáqŸä8ïgW‚ì PzÞ;QÁE„Eßö/ߊ‚1ôˆÚ Ê/#ñõû$®&‘À¯2¾¼)ÆŽ3Ãã.È#Ë]ýõ°°Ÿ‹ÅÏ£)Fºujãü|úæwØã1‹gQ˜÷w~‚¢/DÑw¿¯¢'¾$zˆðéÄ*!j#`]’ $ÜýGâ-RoÝ;/K}BÊ‘î"k¬UuñX`¡€T÷â‘¶Niš›"F¥çRM O£tn²ºHÈC)ÏR©°¿ÐçÌ5D`Gߥ轥謧­¬AÛBæWÊ´zLí¾®×š—¦b| ø9yª ’¾¾‘Aôˆ ~]÷vŽ®\rA×£[ö~#œk•‘]fZyæ,òª¹ËXTÏÃÂ^À"ÕŽjœu➇Eþ/ô@/ês^Ôb¥|¿‚2™ÊlEµ|^:Fñj%_s+5LôퟠÆÈíôM·§,íèÓã®åü½»a@žmÈEùœž{4}Jkû-×#»±JCJ C5íwvËX,t¼aZ«\‡âö$5É¢¡<˜m•à—¾iT3‘C8¤ÁýCµ½ŽÀ¢Z]1‹ ò!ŠYòãÞ t•Tg¡¾’BiE©#½¯É…ÿ+çË´vkQ¶ž³)_ä Ó¥j¾œTÃW¾Þ,¸;•£A}VÙÁH‡:,¼>"²ÞW|ðÚ´ ºÂ»‰¤ó,iA¡£T`l<¦K£A‹šý™žÀ4:Çî¸çÝÐ2¾ƒÿH¬jˆ»À üSÅäˆòã×wÄßÓÊAdŸT/½ˆ2ókÄfI w{üŸùãÕ©pBp9=xZ¼¦RL~ÅrÊûy‚6 F2Ÿ]°(ë¼–¡™Ÿ±Õt´Ïmá!Yé±À¯ØXøM~•çü¥Àåòܺ¥À(톘ÿù9s[ڨŽÕÎW¼Ü  –ȬÊ}«ÁÙ~f—«Üi#x$ô²«ÐÝd6B[®A‹‚¨©Åuâ¼,‡$Q×¶¯h·’þ­PË*ïåÐ ÅöF+6]4(ãÜôÓVToÓM+ý)œØ:¡æâ“–lãþlyèŠÔX–k´SÖáY·w„U•UYXÌ­¼£¤Ç‚¯Gçê}gÛìB熈ñ%~T¶¾˜øcâ‹Áf™²uÑà 8Ÿ÷4ÒNÐ1¤Í‰^XÓ.“ Ä±€¾OBc=Z>8§Š²|*c}¨[1³4ª ÆGaª¤Ìƒ"ŒgI#q4îæ’°úPüÑss±Mä»â…è#ËøÁhowþî¢T&Ÿ—}¦‡n*AüO ›0&ÜëóX q¿L’Ï>6Á„–­),&Ì£'{ËýaNf¼@ùzj ³Òµ>”4µ–»5€ý ðY Fý œ¾${Ò˜^Åëa—ž¹·A f Y$«Î§Ë_Ò–‹ÄzƳ1Êê཮6Ñt Ó­ì0 õ=¨V6FŒezõuÁœÝ›ÐÇŒ3B ¥‘‡Ô±pW>©!p‚íx.JW”ÊAŒJ˹hâ%©ŒhJ̲h¦ñM|[°Ï?„$`“Ò"&¥¥\f¤IîÃ`˜ÏÞÇ:g8Á "ѸAŽ+8µ.‘õÝYo\.Áp›­—:"·ŒÞ†f»6’Á— HO¸iÜðÀ‰niv@óH"4Ìí)É»ª\6ý’FòÛ+¡À¾‹ÎR[Í]‘¸ÓcÚ…Hå`¤ÉùËm‡r—‡\û‰nSt–½d?8~ð’[”J—öB˜ËG„dx§Ô\s× oðy±É¥©RÛy§€ñ®*éo $Ÿ! æ4ÜD`Æ@âZ9Ͼ½Åâ/ä `ñ9ΰn ɵÇr<üˆ*•*b´èˆ8ÑóŠÅ@ ƒð‡~ã.½âj=ãAßÌ ©»ìLŒô è%$/øqòwº‡4ÊàLsc›µuº¼¨è°u.Ü‚ïÇî’nn{{ºë¢J¼FÆeá!ñHºmPÔ˜¯ÑnUß p5Açï©§ÎjUE‹Ê/×ÕFú Û½ðlG&»ó–€¤µ¤Oâ!^Ù^“À‡ñºTyeza<õs[e¬Yð<óØu—À\ñÝÂojmx)#)Š›æ-”‘U"œW"Skå2«kÌ=V÷|Óß|–å*+Lêæj“¸öÁŸED¿Î¶„ SÔ}[jv©ãkC}³;î«yÊwýûÕi¼÷ÝÕ‹ÿÒ*wtendstream endobj 653 0 obj << /Filter /FlateDecode /Length 3167 >> stream xÚÕiÛ¸õ{~…[¨µ")êX´Ò"Ù¢hE:E?dóAcËÇÆÇÔòd&Û?ßwñLÏì(‚‰%ò‘ï໩|²šä“ï^ýéúÕ7¨¦äP›Ìx)œ«i‚;£²¢ôÉK¿&ˆŒ,¯¡C©ˆSxa‡;ÈQ:r’D"™”³Ø®• Úžg‰or7²Y?o·ÉxoÝG6\»ç™Eòèk¡}„i4‚ãE¦!C—e¯“©Sa ­¯êáù¤Ý×a(³Â¿‹­”ý¿ÎþÙ»ü­¼Ê¹t¡ðá{0êŠx„º¸@#/²eÙã÷üüTí0”s—r¶VW0Á»ìd¡ê~/èp+¨\àÔš£2 (¡‡sŽ‹ïpàG4,öÑ)‹«À°WPŽûõ.‘ù‚ƒfzï:€ƒžv,¶ô&fzžRö4— ÷œ§äf"8~I 8‡Á*e1Þ/xùå. ”g¤ú>º¯Cý$eç&–z y‚dícЃ´ à_f'GìDñãûó†T‘Õ…OmŠAïJg‘OÿÂJBÕ®kNAqË%aa•ÍjÓü2ùf“éÚo}.1"n3œ”âÝ>JÊí‡bJZ¸ó†¶t„"T¶ºp}(Ä5wyDï› ”¶j GbG}*íŠìGPG*1nŸ• „Åòñ¾h²{¦ ¾.ãÔ¤ã!~¢Áª xÉ5ÓÀ=" ¹RçRU±ß¹çUÃꞆ–dq—¡ë±{Q7^Q¸{°Zó‚{ioÉ‹KGF\I-'á6k,V¥ ¯ôP¬Ì@*ÓT_?7ÓIÇü”òåY®›[&lÖæÛ¼:Ë­$4o1EÂ[G6³s˨£N 'õpFT0âY!]>ã§Tÿ4(77ár¡ Ý‘!å ì¦.}öÆí¾ë‰½ëêmB‡‹À\Õ*®Õ ¯ïÉ?|ñi'n1ûÇÈ/î¨~±V"XÔQÂÅ»Ð^—¨…£¾ÃG-T'Μ*Ÿ‘&b¡Óˆò l3HÕÀYzǹnb]³zº¸PVTÁ︲­åŸá)ìú%G„DÉ䶨ガ@ªÁÍÞI˜"¦””¼‰(ô, ÓüÜ·=)6Ÿ·*†ŠïŸè°.?¿@ÐMV²þ?ûª÷ÞËžb„Á­r.ùoí8”žF!À4ËãðþH™q°rýdÍŠ´;ìãKVÚ+qØÚôLâØ—IaÑÇ%a"Ú©a“ ÏTéU ¯”Ní©MyaÞ-…«nÿT±U€Ô+sÙ™K¬~³—¾I­ .yÊvÁýa‹§"áã@­½c$n½+Zðlh,]<Ä™ð4LI> D-xI *P«§U@¡¨ :P+ýk=h/áÔýº“z^Nkçø:¡ô(ÁfœÉøÈöeûœ¥9R' l>åpáTëBúªÊøFFK]”±áƒ#}rŸõˆ OÞ¦çAºÞØósè#žeG¸öÖiâ© ›:k ü·Þ„)‰HòY<’FÎIR,çáÕ]Q€côÁj,>ª7Œžıq!b _”qƒÍÊmËÆx?¸c)³ZWrÉêê.ºÃʹ¥ŠDFàßÊ×Q6îsœYLº/Tê̪Ÿ¥ÍRV™*â<º—´1ÕêkÖüoš¼¥*éİØSí‚Ïvä^šÜgƦ(2kêóp¹ËLXû±sy \<cѵ"ò7·3Ý‘éôgd»+š‘?Z…è½paQNþÑÈÑn½ã’sOŹü6G©2§O–æ<0îÑàïŽ÷< vðößÂñ~¹6ÕE²\"MÑöš‚ G.:ÄfæQ~ò>ªÉtaõ>uæÏ^ð¤²×ÎúÅ—óehi¹¶P=ìCô-Õ~Å£âÖ ØÙ"]uÄ2mIáWG.J¨4~üóüÛ£õ ®3[ŸÝy>ó^óáñKº‹ãxÿñŸ sºTœ£-²_ykbÊ–øÔ‡ž"H°rÎñ¼/µ¾‹°E÷ƒ;EÝzSq¿o¯_ýS¥tŸendstream endobj 654 0 obj << /Filter /FlateDecode /Length 155 >> stream xÚ31Õ3R0P0U0S01¡C®B.c ˜I$çr9yré‡ù\ú`ÒÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEÿƒý ñÿÿæÿÿ?0°ÿÿÿƒÿÿÿ? òÿÿÿJþÿ!êD‚âÿH"Ð @˜ ¶l%Ør°3À‚8 äH.WO®@.E‡Þendstream endobj 655 0 obj << /Filter /FlateDecode /Length1 1517 /Length2 7857 /Length3 0 /Length 8868 >> stream xÚ´TÔ[6.Ò¥HH*Cƒä 1t×ÐÝ5ÀC 0t—tŠ4H*)ÝÝ"Ý" H§ ò¡Þ÷½÷¾ÿÿZß·f­ßœgïgï³÷9Ï> 4jšì–s˜,ÂÑ•ÈÁ%RÖ‚¸¸¸9¸¸@8 ZpW{Ø_f˜ ŽpüAÊu½³IC]ïxÊG€‚›=È ò Á‚\\—ÀˆA€4Ôn Pæ( aH)„“— ÜÚÆõn›ÿ,Ì, €˜íw8@Âæ·€:”¡®60‡»- öM„æêõ¯ÌÂ6®®N‚œœP$ÂÅZ”… àwµhÀ0w˜%àWèìOg8 -8ò]aåêuî öp ˜#ò.ÂÍÑæ¸Û  Q¨:Áÿ•þØ Èüoº¿¢%‚;þ†ZX œ Ž^pGk€ÜP•Uâpõte@-¡öHÄ]<Ô ·‡šß~WÈJ¨ w þÕÒÂîäŠä@ÂíµÈù+ÍÝ)Ë8ZJ!`Ž®Hœ_õIÃ]`wÇîÅùçfíŽ>+¸£¥Õ¯&,Ýœ8µáÎn0ˆô_”;Îß6k˜+€—‹‹‹Àœ0O Î_éµ¼œ`¿À_æ»ü|œN«»&`~p+ØÝŽê¸º¸Áü|þéø7–p W€9Ìîˆówö;3Ìê¾»|¸'ÀëN{@ׯßWÆwò²D8Ú{ýMÿ}¿œ:rêê*ê¬:þ¯ORá ðaçæ°ƒx¹@ ?|·ðûw5(ü¯2¸þŽ…8Z!ª½;¦ÿTìþ—˜ÿÀ¿s© îT 0ÿ-r#.^.‹»ðÿYê¿Cþÿþ+ËÿMäÿ[¬›½ýo7óoÿÿÇ u€Û{ýE¸­›ëÝ(#îÆÀñ©º°?C« ³„»9ü¯â ½ Gë;1³y8¸xþØáHY¸'ÌR îjaóG2ìÚ¿FÍîSC á¿Þ–»(.®ÿñÝÍ—…ÝÝû¼Óåoìn|þ½¯Œ£ÂòלxùP¨ÎÝMß!^€ðn -až¿• àäpD¸Þ…îzôX!\p~]«À ýeúƒœÿEÀ;ÕqÂþyœð@~§ý?à]¬ÃßðN霈@§Ë?à]*ä? €Óõð.³ûoø¯^-Ü\\îfþ·$ïâ?ø÷ƒyÂ,pæB¡¶5¡mß«$(=Ø¿ŒxðN¢Î°t7dÈÝ·Ôƒ¥„/O¹ ¢ç%ºf6£/W wAÅ·vz¹ìL>ù¦G >^¨kC·2_gó ¹ÚE*¹6;; ̸-­6i zœ‰O³²9™ÍÚ–flª¸xksˆÉÔ°Çw,6“ŒŸŸï~h»DV{…dµÄôL„y">¶ŸôDvû2½Ä»6°XʆÿœN¹³ƒï¤x–µ#šöµ‡BÑl0ͰÑ#CvÀ|ÖÄlŽÑ£ʆlLœÈŸlÄB4,ñC#I˜Nš=À€ŸÛZr¡[”¿—‡±ÔÄmOImÒKãΖñãEòµ´ñç‰|ÃNW»IðʧßÐlšS<6Ùý´íŸ"¥€!&¤ýôSñ®>ۻəò,Pî6žëÏÒ •Vz½ýUX‡„XŠ Jv?mÚù' ;ZÏyÐ:ªZ¥6TÇIsÓ¶ôAƒ϶šôþ¢ÂþBÀ@õ®ÊšÂ7ÕÓT&%î]Ç'1’Ö …–ª+­¯Èo^ãJÎÆ õP»cø|žªÚ®Bë_$kÄD;Ø gàY¤‚¤An#)ÙSËÚ[§(}ôJH†•{±¾=« æYº2«,|¨ª‘­­€W5z£Êúöf5,m*1¯Û]uGœ”{çÉAŸ¥BEÅÇýlÏö(À’™ j“w~—ÛÍÞK *>œ—[06š˜ª˜^öàø¹)Îö²8ŸÍ?2›nâ»P4!Of°Š‡v8…œR¹á;)[`K"×M®8žÛŽ»_TY'ŒÝÌý{|¬ÛɹaXra'ì†iw¸¹[öô†{ƒ÷…jÐײ“0;’ÛXckåu]¿wVhTÀ>"K¤ 䄪ßÛóœn`CÿZF»í»EÏÑ90¦ÙŸ$"1X;ì¶ÿh·äGLùÔG¸ïü>CS>m—–=ãÙa(‰êÈ%ò²Ù ”+\áCWXùù>Ùp„Ï™°«Ò¶ˆ“ð;f=€TùY7Ixl:‘<Å}ã'~ŒµG1”ÔG؋ߔê–Ú¡©ñ{øŸßía§qÖÏ2;µ ßû< ±Ù1\¾š<;k\÷EuOv”@v`aN\–®½@â‘·5m_ˆgϔؕfîKKrÆQ¿5êÐPÎPxôtcmáB¢6uûÖ»lùŒ^|çŠx±ý#†È})ÚbÓ:zã¦NYø0àR¯ IH¶ †ÊeúQMží'ÕÀy¾,É ò¸þˆ™§xzƒÂHKÉ&pìueºÑµè-Ùõ8£ Úð¼óï½OßåÝÿƽM?.L Fõ}žzoògíy“øú6B‹ ³äÚݾ;^¦2ìJ=YÛæ•+ÓZø%Îà»Äî‹×·&ó2Œø5yS-Ú>@*“AeÅÝ=Ë÷äÏFXŒ^{‡4H «ˆ‘ª¸“—׋ù˜åV<̺HMÕ¢[¿-ð¢H2’ÐdY¿Qv¨­”0ÔU×££Þô÷|W+µeÄ4—–ú¬À¢9•>ÛVªuO§êHÝÕÃüy$¨ïeróµ0a´RŽ*+ªqÕ¼Pjs‹âZøÐ>ï­"™"{ÈUA ;dP>D؉ô«Š}ùäÅÓº¶Óh‘Ùjœ€†Ugf²^[KªMR#$Ú0Ê'ýóúéÊÔMr/“b%ýŠˆÑʆª9ù…RU›êÓ}…‚&œ'„%sÜz•@/ðT§aüÕe3…¡É–ôBÒF¶‡)«öµòü„ÃYFz Gõk’EØîj® Ÿ¢mò*ÂM—íÆÖé†ñ:1û¾©"q„µ²u‡ìw¶Eel{*'Þ­¬Ëñ_· 74—ãÁ”+á¸e«µ$n~?¼Õ-fÃÎûüé8ñ·Gú¢V~ÖÇ~`4“¥ÌŒfS«—´ä4ê~fgÄCŠ/ã!úÖÿjÂ,·ÙÇÖì!ZylC )Ûž÷½“K{¤êͨfå‡=T:Û¨|iViû³IP÷b¯+| ´0ÀÖd“9«Ó,byˆ÷LåÒ­€—–^=HIò£!gˆMm︳Z…]ŠQ´x]Yw«`„z©nœS^î « ~átûnV Už¾2Èÿ6°ÕpÜ{˜A}ý oqiù{óæÃ“wteZæåo ½Ud6hÔz'žÆéQ¶î½') Êõ£/àÞÒ{K­gÜoî)Ku”ñ¥];ta ô4x½oˆ®DÕ>}LçÃ×¼-Nþ!À¤à¤†ãÀ÷feбpcˆrVgŽeÐQªÖˆ·m[Œôe³|l÷ÉÜϧª/ÈŒðV`¾Nh%•$ÚÌ¢“í@s6B+j!CûºŠàdr ‘M¯k´Š:–¡úýy‰éD—k2½ËýPçæ;ÿ¡ ²2Ðç-¡œõ|}NÑß®TZÏ«m' ¾|ÕSÄ-½zR˜°ôÙS'³ëÂ÷±×î»úâßÂ{j1¯À¯TxQ±ûªÇáEA{É ãÅù…ñW¸XJ?vô%•mÁ·Â$òìÞLä#[Löž¯Þ°Ľ@OMõê,:b“ ÕÎEýd}cR8±¿Øü0¸j øÃ•Ï–½ˆCFïñ‰«Ÿ?Xùa|ôàÇOÏ!R‡„º’ŸPñ#ˆÓèÈä­TàÃðe,ÜÏÏ0ÇÛ­œâHÖKnÛ+¥ÃÉM B[&ûõPqÛÜÓ–£Û%_ˆéÙe~­®J“ç=$È˾.×(Éó^"+%žY–``ûíêécw™`XlÎTXþ8.–a”¾—ª»‰­‹ ={0áËÞE\•ó oÄm –¶ÑKtnL)ŠN«ID7³¡ÐÛ·- Þ;P,i"!îÉÁY¶°”j=¯G’Fºéf•4ÑÍþPiÉ'aÝêó»þšI¯¬Àë*…=¤®É;ì|ãtMuäŒr!ìc!Œ©Šs o˜ÝA^ò-‚ªÅ7ý:(& ©Xéh1ÕF­q™þò]D†S1%b9d/dZÕ[„N ­p¡÷`[ëÕE1êˆÙå§à!î¦W™&,Kn¼%ƒÃ·‚#σö8¢ç²Pç@4C§¡`$âº,øeêý"X`ÿÍ¥.ÑôzU€KYH¥ýé6jKSíxmï\@egEÜ4™Ví5íì§¢‹Ci!š¸ý(mV‰È¢AË"Ëþ÷CGÒÅÆ®WcÑŒx¦¶J¿î¤Bœ5?œt®N•å ðÕe]¹žŒå(³Q–íåÖìCÚ)ø´±d­ÄÈ]»9î¼6˜ñ°$}³®5Ñga ä=¾›Øº¤ËæÁ¢Bó6ŠÆå@”‹ ,ÁÃá0@5–{§‹UÖóN½àôŸAµ´ôðˆÔfb~h›Ž9䚃råïˆZ°<%‰úÁ¢¿ ~ö–;h·LdƒÞðvÊcŒæ©/1Fô,|U!ž> Ï|‹@}€ ôi×|MoMu#ʱqÊVNp ¬Ô×ÂC MÙXO|r·ƒT±VòŸ ¸vó­­p€dÜ}¦0uÙK=~Mlײ fŸ¹Ÿ§ž£»ð; _ {ô Pªì¤»ÕH¦ØqS¬¼¢8v­E¶áiåoN5èB±]îË_Šöuº´ÆWº³‰\gòXÙgo–xW÷op`á©zG…­†pÅ‘†}ëâòÓ,!Ÿ]ûLåÍpS%aXy@ ÎvÒ;` ÑÆ$G#š3Ã0yµÖ|âr;áØ/Nv$:ÌÙöuh]Û—¤ú'¾©-ÄŸÄËfó=™s²Î–oØŒ:îET¶›Fˆôz·U~Ñy×€’î›kp³ÝRq„|$[Eûé5U}Ɉ4go¾D»,ëLG1V-ö°-ÖŒŠžaðj•ØÏ:Ÿz[¿R–K$c9y¯ßÓ}yá«òCÉý“\Ó[/3½­C}>Y8†Í«f“Êfosù…õŒ“‚Ý´¡-dzÊÅ\M}'}Wf_¹0ÁÌ×#tÓËC†6«8V:iuØ;}Wµ[LÔ¹é*Í÷’œ’­›â&#‚f¦>:—â¸o¤é†¢ÿð_È0)âX‹: Q šˆ#M2vã­¥¹-Z¹0*AÅêõ@!òX‘]~†ržwÖß­ªõ< æ p„µ=ŸÕQ/Ll™÷³”½R(úÌ]¥4¼.­,§mŠF² ¬VQ¿;T •’'˜`ä®N]è`xc]8•ï!×p]¿ð㉷»rkm‹#[ecd³Á¨X~*¾öH” w²j0k@Œtx¯}ÿ%¹©£k±OકÆBŸóg ›Iΰt®n y…lȰ'43‡~h^îKY²É¢°3ˆ´(Ü_z÷‡½¶¿ø5Ä©°³8ÉLΫñqÉþ,ZÆ<8â Oƒ‚؈!ü–;W&Ôžù½(Õ4jå¬Ý±wÁwÌá°_-UpžÀ[ß}f,Áé0a<|±z+¬µß4Ò @` A'~}&û,G 2fÜ“Q`C‰RÕ»R0IÕðؿ܅‘ÆïBRЧâÝSÝÁ:võ<ÐHm/1cÊ‹††‰ÝÓ›©ôéÓ> ñ›ªÎi“Âlïnäò¢ùt©i˜oó¶)zZi:!4¡aµ  ¬^ˆu"`SáØ-ŠgЮºÜFðþ¦sï°âÁc‡ïº˜­Ñ’~¡ ´Ÿu6Kø­Úõ°÷±ûk:#R¹iå:5Ñ‹¸"l„L/ž$pO"x&p}´y†õb[Y§YÓ3ßôŠRXÌZ9IõZð7IwÇx…mg¶1ƒÿÓ·úy…¤‚"¿íô‰YØiÂ.{â*Î.Ï0Ã=çrõ‡ÇHEŽÕ‡»²ê0Àb݉n†ªý¦œÀ‹0RõÁYØNlÍ9ÏU†þõQY$G#d6º«"Ùäxï³l•P Ê÷¤Ú-÷Ò"—Ö% àÒç ¤Þ=­Á>•f`âRÀ{ ªÕ'%òµ@D¯¾ƒL6cOm}åz•(¬c!‚‰gsglºàMÊ^S’÷lòTÎe¹2WL1aÄpë4stÿ›vª«OÕãp†ph F ˜ÇõZû§ºeÌ—ùJŠŠCêbaZþ`o|ô¯vŠâÆ7‡‹äá- a\³|ƒßÐ;3÷‚å;úÕŸÄ"Óß3øŠA1èbbt„±h¤6r3賆} ÞXi1ÆÓ^Yž/!qÓ²ÄÃT2ݺqÓ´%×µú–ÅÔöðWCSF¿åí/‡}\‘%âD­Í†WRZÚG!á,/ÀsõBK“¬¢!ï©<ŽÌß¼Tðäq}¹¦ >¬³H¸ Qÿ@jôóó9–·€ùƒå2NøSþÙäöRM ó·zÖ¹­^I5ÝíðARµø‚ÆØšOÊI<Ï¿ž’TvÔbÍ $χvμ;ßæß¾¥R’niW•}ñ^HXnY\Ò¨`¯*@í{÷\Hùì=šP ·pw¡yE“Y%,/í¶ÕŸooR"GeSÌR=£+y$b &ri\.ÒÛd;ñ+ÛX!c©”óizŠáüÅ eÕ” ]P#˜E$ÚY,IÔûAÕÀŵ‡6È•‹\x`SñÙ;ม¦|¥ÏÉ>9ñøA/߸ôöƒ¨p Û)C_©ËõàôÍ .åQéÁÈü`Œd‚ŒÅBleˆ1YòREj­¼˜öפL*Ìútpñ‹§ª_9ðk:>ÿ{Ú§pž¿¢9SyB£âÃ;<Ì’ñîñ5¥nÌÉ|¬X,÷§ÑSͼÉC4b|”ùçªÄØHM¡K7|ôíŽä_ ùèÜÜê@*Œ¯D?¹Ø1lOGr˜æ‘úº¼˜uÎ MEŒí“Àß½Aí‰?·ü^22Ò׋$¦Å»}m~å’A›´ÛÀ ÅçsøÐŽ7¢™=.“RSÇæ}ÝP aU°ÞR!BòYe_žE™ãiÖ”fHª?\I‘‡‚¨ZAâzÒÅáµ-îî c}5‚˜Ú²L¯CvoJaGèªNÆó<û¬}*{!V;I~†ÿñ‹]À³|•4K5C°P "Û'Šì(oàúõ&5/È`Œ -äÚs£‡hB_/³æ{—]µ‘ ¹ û–ÍO³$KZl÷-Fõz_šÔٮʗò&œ¦yô \eQFÐ7óŒNë:ý¦ê®˜æøÊîn e"YU¾À=H .C(·HJãÅ~Ø4³åN6ðmg±IYòç>ÿ6GˆÐËÁ³©ƒ¡Âd6—‰ü+ ¾×9JÚd{†Ê×ïæ3x~De_C;ÿqøPK´ÿD¿C2w„4rÔ”UOvا Ûu×¾ôö°ƒ6>O*:TÊF;L5Ÿ‡Í•Þ!e»¿»Êgê Ý÷ØÔoH( Õ4Õðj=Ð;Ú"c7»MA¬×ÏëDøïRiàšebKsÇlð»ñZ¿&îÕ-+ÆøudF M`ú,l :kXÈbPœÌIªËð³qX‘'81-¾vÛ7„‘ÜB–cRzÇe»„œŠ“òÒ)õ·*ÛÀ-áh¹­Û£'²Öèg°:<½I"îhå!c ~7ÛÏÇì”D7¾3c6ƒ(%aÏpiÄXhWÚ–®›jí²»×¹¸ÝöcpcER…p™¦Ð¾‰¼ð4cXD—.Ù¯b"LÅ:9”û¤ÿî°øe(>‘ õntã¦ýÁG‚cR£pôÔ´vjÍzJ\Ç¥ZoôT ‰«AG܇@IÇÌ…¨¦-Ó¾£ø÷ô:-ß=fm:R„ÙÅ9[v75¹I}óò;–‹uÈ’]†=¨²žÅŸn†¹fÞMˆiÎdûÚ³mDL¶O¬Õ eP§ö¾ÐRŒ^°0?>÷À1˽¿¯9é©€rÉíö¢òg˜+_ä¦ôG,ªIûQÍ"ìKªx–"ÃÍΨŠÇxx°o¸Õï˜+ %­ÅŽJº¨|«Re=è³€ü÷¿ªªIË Ê5q%1“qÏ‹´õlwæá)Úc( 7ª5wEiZ0ÏÔ O…[¾„@ؘPýì¥*ž0],¤>ùTþÞXü¢¦å’n.0âÞÖ.šÉ yæËGùc²ŽjbÌÙÑ͇»—˜ÖutÔ+“ZÄê³l_ïùæõ²"Ï;¢7Ñ-†sí®¨ÍO€Orù¾^G2 íÝf£•%LÚ­­õòŠØG«„²ªEô°®ÓÄl—Qç«HQ±•…~)}PÐ(ò¤ð{ÚƒÐö£Š{É×8=žÉ'øg­—íùo ð¹tRæÐ Hæ ²Ã{ëÞaj6°D¦XÝRXËããî¢6×ÉÂÄ¡„ýï=&³lR>®9.¾*¹¯¶ÑݼvèöxnŽˆ1Ÿ[ {å¹OùùáϾÑ™nÙ{õ¶ÕÓÎêDd¾uùr>1jecE3éxãR©-l×üߎL³ùY8Å 9%Ì‘mA–‡úIÕPÚ€¾¾üZEdiÙ‰Q€ìçÓ3*íÇÂ1k} … ½”ÜxÒ¸kñß"ßi˜/XR}w}ÛE2ÃTçŠãÂ{Ì‹¨Ñ?¯4Æù©71o›©˜}1Ï纒”ÄÎNÚP¿¯g\e=°$e^ñ5ØZ<ÅïÙ¸G_À™3h9af=1Wë4gÏï:šõºmgWñÌ…¹2Mnò½±Q#߀±øÉ‡ÞÁÈ‚k Xõ|¤þ}…²Ú¯¯9`ÃÆ"Z&_ð-e(ð!ºÔ—uŒïïAz‹V€Ÿö“S&óûÎO¯ó"€8&%p«iÃBOÕ2v$ˆ)qÖÓ3ÜMbÊÐ¦ÒÆðÅ'I¶|O6|KˆÌ×™Œ 7¿mÜ4†òQ5ÿ¹¹W.qà–ž ½{{ ßuª ]Ѝ£ohñ>àœ)ÖN›p•|_QÐ{è'‘¾z4vµüËÔWÇìíƒDoÜžúMN¾>wÓÃÖc9Í/Ý:Ýœô ´j yàjºþk¯²4)7k ~A{bÉ–p¸•x¸Ïä©Ã½DŽ0$<ÿ^I•ÊûÏUÛÀ{2çf™Ô«O‹¢‰âCϪ×È8\`h°xã³+cŽBÒêŠp¥ÑJŠ:?vãØE‚1eJo¶/ßj­ÏÝ?×m5Ý«²îòa œé2H%mû¸÷9¦” w³· è1»»+‰Gz¼í¾a£t. ƒÙ8‘ÙbÄ߇‘ñ‘åënC/w´‘Ý9˜„Ñä¨ÖVÃFœ8tÓ‚Ï9Ëä§¢dŸ± Ç}¨‰õõ'bZ$‡½Wê­£_˜¿t2å¸ö=T­%&ˆ/¶wà os³ó¥'шRGè¤Å™!ÜnÑn½Åi¯àoª¸6C㻪¦úuì |@õ}o”èl5'­H=9L¥Óyá&š`i!ën6˜‘B®‰í= mƒäaÉÅÝÑ‹“{«Ó§[Ý|A¼y‹»¤ë75Is rm{½_ýü ð+7åÖóìÚpî\'k*^á$zg®Ë€E`Ò"³ùzHM.Iƒ!qÝ ×äôœDý§á\¹½Mî+¬¬äHë¯zfxÞÐæü-vFÉ—Í’[ù”È.Ê:6 ÞÜ\çõ€ð8Pëè™:+sFAË~@¯@µI'Øœ8m¸ë#ïB¹/.ÍkÿÍÆÁ)d"ŠÅ'öC¢åð¢èŒ½ÛWv8z$f™X׫¨ã)pÌ¼âØª|B½¶ÇäÃG‘hÙÐO/³Œ¤ ©ú¥w¼ÓÁøËYÉD bÉ¢ ú³Ó·£ôñ¨S ¾D™¡r·³ IÁj°Ê×6c¦LÛÐ_KÖœ¼UÓ)L˼é–QSÕ?î(¡Yä47ÝÖÑÆ‹þv·Eendstream endobj 656 0 obj << /Filter /FlateDecode /Length1 1653 /Length2 13795 /Length3 0 /Length 14827 >> stream xÚµºeT\Ýš5ŠCp—`ÁÝÝÝÝ NáTáî—à ܃»wÜ-¸Ë%yû|Ýçtÿ½£FÕ®õèÜsÍgýØcS’©¨3ŠšƒMR` #+ @AQ loâbTZºÚ™8ؘXX8))Å€&.Ö`„‰ ÀíbP6syK}‹`aáE¤HA@§7§9ÀÔ t1Ñðt²hLþ.TÀÎ.Œ¦&Îon ÈÒ¤}K;x:Y[Z¹ü©ÁÎÈø§ÒŸl1&€œ‰™-ØÝÙÖ`2È1)2”ÀîoFk 0Z™ØYÀ  @S]RM ­¦¬©¢NËôVXÝÕÁìô_XÄÕ54¥¢J’ @ZS]ãϯô†ß’ ¤ñæÿÓç-ðOº¢¤†¨†®Š$+óŸ{°Ü€NÎÖÚþ6ª7d€ÿ†ö–já¶ÿÛ@cåââÀÇÌìîîÎdéêìÂv²dr°û‹OÃÊÚàv²¼]€vÀ¿Ä¸‚Ìßèt±þSàϦ¬Í€ gàŸ$)ð?Nû7*ß’Þì.ÿØ.jÚýpÿ­•‰óß\€½‰5È2™½º˜¸¸:ŒÿÚÞ¾@sêâ®NNz(þËåôÿÚü ºøíÎ>Úyûš¸ÿ玙€\½þ7ÿ~Ûf`³µ³‹ó? k;àôÎöÌôצ(ª$+%©®Á¨ð&<£"ø“‹‡Ëßè?õD%ø<,\V^Ë›H%Aæâ`{û7ÔΈè“°~ãÉìäÉü¿tm »ƒ¼ÿ·ÝÂdnñ‡ysWfMµ£+PVâ¿¢ßLˆÿm³ºX@GÐÃÌŠùO»¿jùcfýc~£Á×Ûì°0±súZ[ß.ˆÞÎ&n@€‹“+Ð×û:þ}…ÈÊ 0·6syúÛ° þ­. ²xÿ1¿!ù—ë¿$@ówPiߦÔ ²ó˜-™•À.o‚ ùÿgÎþ£—”«’‰=æ?)ýÏ8{k;Ï‹ümà¬4J`'{»ÿðY;KY{ÍU¬]̬þ!ö»¬‹É›öEA–vÀ·MùkÒü3Nvoº};{¬ÿ]Fžÿp½)ÒÌtv°³þußXø¼oÔÿA `VדQ—¦ÿ_’ù& 2›[ƒ,lœ\''OD–7°qr¼Yß$môø+3ìò–ppuñX€ÿl&/€ þ1þ³æ0{À ÿHåÏ<þ•Ë#ü¯ƒêïZÝÅ l Ô¶6;¤ÿGˆ¢‰‹“µ‡>Ë›NXßìoŸý3ø·”ÿ-ñÿ‘-&öðfädå0²ñòX¹8¸¬¬lœ¾ÿ–köÏ™ñW£oTþkýg`@ Ð ñç<ØŒÿ“MjCh‰Ÿdþd),%/Óq9®Ž\<ÌÏôÉ6B|‰œMr ð·À¦€ ªo`>¿ä@P¡å'»—Õæ¤Š‰+sU‘-?E?BTIÑ‘l-&Í  ÅÅ€ÒrÚ¹ì<Ý"ŽéŒ–ø€æÈ¡8o[ç} Ûø+ÆE ùÇÒ–•\X÷‚YÖFl';LEô÷í„‹“í.¯÷ØŸ£MzDÒÍç…âŽÈÁ9twbí•Za g=Lá ½`éFôЋқu a-™HhdÃbã@o°q{¼7X@ f¿CÉF•å K*æg†ùŠíFò"®<@φ7˜R<"/YfžRo®ƒrÃsYßÃ:’Sú–O9„›XÑfº¤%6ll~'Û˹†@“ÇŒƒÉ B…zJ/½.^~ ÃßÕè-}k"ãvy•ºs3¼C˜ÄêóYñ¸›eü‡á† Á ±"®¦wh?wX)µÀÁÅʶnaûøOTãæÛ%xœé)æ¨=5è &픹1€†xÈ2Bb™) *‰?;®kÂy’]6j=S@yh¤¡z=ms´û¶©ÄYó¬ s‹„È„±~ôÚªO˜múUÁgì¢ÖAÈ Ë©?£a>š9JÞ²%^ðMVŽC²¤Ãµg/.Œ}¤­ßiË€0{d”¯ˆ4’„ÕâXFq#뾑õ7Ò}çùãëϲ¦e–â¶Ëq n§¨iˆêÒCÝR<<þ5Ö£‡¦Y•m°§0:‘iL,µ^µk ,´M7Ý4ž^GÑ®üߦÄýè3+mp,™Î/x¦Ê>‡ vª™/À<\wOäìà@ÕºBrì%a^WW•u²XK!£“‚½+v•áá²t•Á®ØÃú‘î*ØÆhße* c²o9N%†= B¨"áúŸ•hÅ´Ñ•+º‹Üm&ö XuOð„£•Î$Mµ”Ò™ˆ¨¤$p¥§¸gœqóEÚ ThsìïZdJÇîØZ¨%ûdö(ÇùÔè¥6>k³[°ÂÎóì8ºF‰'; ü*‡ii†qöꉪ`Ê +›ÀßËñÅx´ZŬÿçbL¬ñýÐÇ×›ôGMyNOS|‰,úfÿ ý©ÂWtùÿØ–¼ÕååÊ7Ä:Òg¹è@"¶[nf­¹}Isv•Ö›ÉÂÃòi° £cG}MµlCüD<¢mFd&ïIŠŠ f•ºÌ,áÝ^ *OËeÞ^Ɨ寖2Ý/A™$ÚÊ¢'^ZûKJyPOÖc‡¼#ƒmz}5Ÿ6„ùZäðe¼ÑÃb³ÐÌÛ¬È î@^éÍ-̯ÉR ­IWb jÎÀÂéO‹€ÄGhfGw¹Õže©•dÛiº/£2)õLæü¿àoˆ=oä~|ˆÖ„µ%a¦Æ (k&Ö L `c*sÚ Dtƒem÷§Ë]•|Jý×j#X8Kêõì}ü¾]罡­©õ{„ ØÎïC4×:=%ïÍÒXxEZ^Cèã1Gáý)­‰…¹žÞbßãü £ké;>çƒõ¦”äúP†”CLq-,ÖžŸ§ÞÀ&2%Õ,íâhÏzs…2ZMe&Ög+ñWoÊô9õ¨É`0þ ÊÞqÆ”Ìurˆ”7N·/#2û EüsÃÖ§–¨r͇{Z¼(¯òJbnLc[¿¶áD%e©Ôw…ÒvC¦½RðE+4ŽH*èøA ¨ÈÏ:÷^Éþ÷1úKBBÐ j"zv´GG[›Ù>6®_´Oo™™úøBźfNÀ¾®¶íE#ò­Î…¤>Vz|éªa÷Û ûå¾›{ºåæ—#±Q†õ`ÑïÒ—ç‰8¿}(ú¢ñ•èû8Qœ’í‘™5R9^ëÜšê•(Òg¯8ÂnÞÐ>ŒwùB¢Ì ]ÍØ Ø>±"‰ÒµÁáühS b†·‰¼¬ô« ìÙîFýÁ²†žÞhFȆ©CC\ºDN¤Ý’;BÇnUñ>Âæy[ç":ÜTÞgê¥ä]Õ†¾‚kWš¤ì´Jñâdsë5Ïhw2¿ÇÞÏYÖÜú9ç*¹ànv Ùá ÉZ±ÕöE:d¹Ð3Vÿ$ªž.mÑ`wJ5ÈÊø«(ÿþõŽ|wÓrêÑyVàÿ^xkÛiõFïyÁêâH·Ù7¸n”Ó;nÕa*™"™y"y8¸y ,7eWt 1müÅÍ-–ÍU¨Æ«5!å‹«yæ_+&6+~ÙX»M¦Ñ™ìl&=žÜ.yMg.’fÐÃ[úë®$ÅX" ‚æ°ACN@Ã\++ëÝ%s,‰髴þ¯ø*Üð©Íö–dlƒä)Û¸³—õú·à9r¼G/YiîÅîŽÊtq‡‘Q~ãýÔ¼\ÄÑ䏯© V¤‘%ùÏ3¨‹Ò 6^³ù™Bü£’Þ¸ÏÙyÆv½].hâ¾×çµ&›ePãóõ6õ–Ü8ÑgüÖÊ?à³øXËÇ«> CÔLð‘¾ûi¹M«¡lÍ……ÕsøØ·oH'ƒ=ì×ö+<Y@´çsÖfô,Ùø2t#üŒíPYç̘+]‹V’©í=Ã5 y½ü¼µÌÊf÷™’¹Ó‘QÙ¦dXÕQòÓLg û–å³cßÊÉåDC©~ÕÀÊðá7´ÒÝÙU*ެu:¾UÇ"}=I<¾zÒ% L’Yeà­úæYéõf¨3Ô¶Ï@–ë1›){ô”0V¿î‚é²Iš$C—pø!¦«¯Z7Úe”DN zÕJïÁú¡}Dkü½à¡z¡Û6sÅÚbðŠ22ÿÐÚöBN0åì±â É ú²…ã×—‰íT‰Ç 7Ei{s£P(á}µ#Ê¡†haß¡=ÞŽÇ¥¯Cƒww¦iY€1ÛfÿD‘ïÙÝ^9(õß“Vu9Æ™n°!kÊßýÀ©Åu‹÷Ř/í»×Y6©!.‡`ûVÒž¨¼¯GÕ}EZ!êìä$¡§ïlÔSïQ;q3hºM—¬²„™ÕõÜס2W0S&únLº öø+rg@"Íg_O¼ÒvÄŸÅþ2†âÆ`ﻋ®{†aÙ¾ˆr­VåÊ:Ñ=¬º4 ì6z~¦9„ ù(|†ºVW%øÅ˜yÿ5µÚÏB'Æî8T_—]ö#»+(‹Ð%#~ó€ñ¨¶±T·dp} `c÷1u~w©Ôј Oí’iê·åÙ}±¶vTÚ ÙÆF£þdBˆ³6ÓGzØh"™iÆûèÖî~Ü–C CR™ëŠëñUŽËHÈEnR»;¥ªeNk ¯E-Ì/ &ZiäÔ‡ !‹—@Å链[k§RŽmù\β۞æù¬:È©ç÷£ÛÅWÊ¿îË~ `tø¦r©ïÅ]"Úà̱r\°£]Qœm€Œmý@ËÅdÈÊц|CŽT’=aeWøé9kG¦ûŽßs™³‹1·éa©Suj•‹ø÷%Wµ¡Ï‡ï—[»(«QÉ¡#2hÜ)Z›v6°q ºÉ¢5Ýòû—š­HŠ=ü<'†¯¡óáÌÐ;¼04¤A>Wø’HwU•Á2׺ó4Ön?N9g@áBì¦û8ïy*À…•×A¹ÙV‘Ð]ÖŸï×w‘ß±ÜV*(úm>Åþ˜pUu.ÉDºÂ|fᤗjx´GJõ¾T®=dÉ­(%ÀgðÞ¾¢$ÄËë‡}ÁOž1ˆ7Ô¥°á¡cºÁÂ¥JBC:"`ƒ‡1úÜCõM^!¹8lÔ’æ(èQ—ob0‘¦q_âÔ²[)€¸æûò;ôœ®ˆŠ.væŽùƒÄDW—ºãiR@ÿ}¿Ç$Ð%ñ¨ÉØZo:µc8ÖæØiÆ),<$ØMU4DgVm•[”ÕdlÞ\/Ó·ŽùWœÑý©QI3Ì/yv;”ñÔ¹‡Hãçì¿hèòYAÅdê-øÌþÕúÏcW¢­ºÊëD—ø(¤HX%Ñ]ì_±e(Ýlf‡y”ǘ´êº‰8ù–a³{ýUØy =›x¯î»íÔÐK:TÚá7\à@ˆBéZ’B©”èƒM8¤J?!á’Ö¡.Ó$mßED û‚•ä< ¦Y>ªNˆVx×NÐh‰{µi-7n0©&~˜p˜­ì8vÊ^ z­‘W¦`zÚÅóÀ¦+`Î#¸ºúˆHO É3[ÝÿìâÜë´‡À5ûÃÅGé(de<%+ÝŽ0;ùâw-9„ƒÐu´˜~º/õ8RQx* ËÒgŸEi‘¯:ô¿˜¾/ÎÁ¾º)ÄË+`T}ç Ÿút‘^þ‘ZY+)”Jtð$r…ÎÑb?Ñä³ÑÆøå4ˆ¦=Ÿ³u²ä<Á5*Í–?L婹¥4‚ÔdòGµ+ãåz™¡"JUº£?FKœÆ}£CÇ}UÖ à ¹ƒ©î/‰5à¾7ËÕ'Br¶ù?ÎØ¯#SNþtb­¥vXnÒ$ÏÎoÃÇ[ÊÙ6×ÎøöÎ?¨õ‡Ìb"…taÌdƒZ—÷=6yò+|5rîf³;éVÍ ƒm}| mÁ›wã<%šÕÎýpÇcÑ Fç!EÌQdó2v³ïŽaI K#æ• .0í†ýÍl|†ÉtšÓqÆDtt©vŽk‰“Åèw~¢¡:Û6}.r >aÌ”nºÆÓˆ%<^0¨S_›ÜrF9×Û=¯r•µ^ˆðw?Ð|É£^¼»§{" x éDšÓðïD‹€q(ýø}}þýø¹luQ£0Ó:–Mæ‡ßæd0äãý4½1XŽ'M†ÛPâB3¶&¦g¨[I©`Df‡ed´‘#{Ü4˜ŒÕÊt}.¹.åÌG—ìâ\AÊP™—¬—e8àrˉo!ÃSdßv5æÝ•^øùaèï8öBðb› ~ ¶f’RÜrbO½M‹|Ö3Ÿfºv¼ÏåbÕ GX¿'nqü°ƒspL«û…à¤ý›–mÀ{2›JU«Nâ5¼ô}é˜WÅz¨åÑåy¢‚úMT¢'˜F9‚ì<×Ì ñêD e¹h÷šÅK´çxê jöÂASLâ }x\¢ñgŒëghã§YR¥f¯¾b£ÔX´,Úá…Uv•¥¶YßìTÏ×Nb“e?¦€àQ¢vêÇ´%?7FƒFÌó‹ÑT(?´AÑ2á–ògæDܲ¡fäao w?uŒis`â=P¯Æ•óIH¹€ 3ˆ}¾DîP-‰óë|íÄõñLs’RØÓ+sËaƒ”ïe^`¹ ¥ÉɈžÆuVÛmaJ¹4"±lIÍÎ]'`®RÝåaû[Rj? !ä‰}WU s™.„eD„ÛŽT‚U󹵟cÆódb½±`L‡»û‰yÏØ>d… À`?xãCíwEG*{|ÍÍc»’'³Eô±ˆ==dªd].åàò¨Õ•éÅ“üB-ðHÇ™!¨r.Ú@2Rã‹bòÀÜ¢< ‰¤ì±iíë1dó}/ÃÒZ:èâ­MŸ“êXH É1F›â¾fÆÓ>ˆÕ™<ÚñiPЦ¹z™(©Ïo­Šv¢h'º"›\Lž§µÙ³=–‡(§ýÄîÏT‚5È;bÜÔù½t] ë»íCdÀ<“Œù‡ŒýO¸x)?î¾Î˺®XOîbH[–pšOËQ˰çƒVÚ2ñ½~z|63ð!þ+îžÝ¥µHüÓË\] ™¨tF¤‘[ƒšåëܤŒ\?i¸‡Íd[½È« Ö¹±ðTIK“ ±ál“~Z½ýd®úÔdÚÑj ÌS [+ù‚ïĸÔÀNÒ%¤îweö›òˆ(Ú?¯&VH_îü§«‡™ÞÓxŸ„WI󟦖m³OUëìfž£6¤\pÛš¸@¢nYÛcÐ’2 Ãqf_Cü)3wé\ºýÍ•9c•†>¹>Œêé!¨ £lÚž1𖕇4âÉ«Mƒ Ë§áø–:Þˆ*Ãû©A©ÉšO5Ù+cY úµŸ¡ù·§©FžÎFí­ì‚Xàzö\LNìGpY<‡ÓR†—JOO¢dqˆRc Â3œ³ÃAm ½rç÷ñÉ1_"Lq¡Ÿãˆ× Îxäê¿x4TûZRt¬4Œ €1Ñnº0 0~©ãc½ ÂCŒ;7òà|;„%~ÿ.;_‘j!èß\ãÐqË’‡¤H69f(#}ü$ü-Úäb$‰ŒÁ@Ÿ8 ŽË1o…>«Dk‡ñl6¯=…zf“4æºCã±Û(Íì!&u”{‘2 ¨öÊ[ óš§Ò«rtí_B’ŠŽÃØ4x[)T™q¯y>zªª‚×:Åui 81…ŽXé4´¯'fÇ×[£}bgÔÖsw×(èŒhô|ãø¸|V´:ƒµîeÐãk¢O Åë_DR®ät€ÈZø$Rt–›Ñ %Ò×Ñ|5ñ÷(úOO3h©?o(«GüŸ2ªâ¡ ˜8{èpèÌŽ1P¯š^göéHñ/ÏÍný.ÓŠøN<9W‡Ì+—¥ÉÎÝŸ" ʰrLMÚ- Ô‹˜Ì¤³:×D‹#‚Ùšz”‹]g6!rð¢6X$½{ù¦_¸°=HË!œˆ{ƒxÛ¬b„LFÄ+éÔ– @–©ñ³.mHž¼³ˆùaíCøbšùìFSÐ<ÚM0@‰Nê¯ò⬛m<§aa¿î¾M¡ÜE;ǶŸ‰jþdüÚïK›^®$0Û‘`º½?i°h(c­È»ndHwÊrk¯š?a4ÉjŽÞÒ§ÖU/Qï5Áœ½/$d…ž¸ðɃ¨c[ Íeºa'S;ÛBáÙ¬¾8ßBI凱zVþ´Ï«Òhû¶nÅ"ì2äECÄ=HøPõ7¦î<§x¨Šf¾×3 /ã,öæc›ƒÐMÅô²Öa]¨ì.±¿¾:`YÉÎߡѮ.T<†ÂÂ*Ý9ÏÎ’»aå¼›]÷Œ)˜ý—fÍ»\4ý‹xøoø7¡¿¨ö$Gk¯G?ýEÎk‚ȪˆÇ×-¶ÔWFé=4q8O è½®¡Ñ"7d>`™ wÖ / 6ÜP¬Î¶ÃŸ ÎèÔ¶ªH¢Õ}…†ª%ÿ82ñoöQÌTÒ~²›(öó¨ðóZÓLB¹w![ž)‰ín#é³;¶IÚh@8jÿ­)ÆX¨þY•Ò­`m—ê(˜‘ iBòßC¹± 5œ½,(JvQV6²³Ô£“KJÞðƒÓØH!ÊL>Ã-•‚tÁÞ·wƒ1T3>rÖ\šžÚÄ»`DW1”ŠÎ£­ŠÚH»‚ ¸9íªÂï·ö (>Ì¿¹~1ºv'Áà—ñx²zé„9Mç[ØëÕ^›²1É'évÙyd†,jj¶Pòª³¿CRã• £9= ÎïnJ‘½ü`X—^jPj!ùýáy~JÏP{@‘GkÃ'Lß•uŒ°·\™ìùŠÛ¼ç µ÷ù³Ô&Ö&>­"º>ljSõPTްzSˆ„¤^±S ²§LÍq¨Uð^tf\zÄ2tæ×4ã-œQ= ŽÈ©f“Ñ_¹‹ƒ™· å^Œ äâü.I¹ŒV_ÕöçQ›Î!VRÁàóc hž(Ð¥´§ïuÀ*¢2ÖãåÚmèû¤Û[%žåTF¼f¶ßÇc«‚›µj¤h‹¦ï (Æù¸Ë?ÿ* –ŠXeÞntÍLR¾eM7&]ü¢ª¼œ£gmÉÿ¹wè®ßÂ4ä3Dœ`7ªeAÍ4Iû¥†ÿ ÐHh9cK&µÞÃ… Þ&>#¬7íôŠžêi­ÕÓ é„ÖËQ>ù½FQ—á íFzˆ–÷<»Ë*ÁxoO Ÿ:0¹Fl^Ñ÷jíó±ëÆÁ™¤¶gÐÈs®ÿ— ZÞázF¶ÜIs»†êEK_U,•ÅnÜ]ù[ÿ÷4ôÿóަʆ¤z¶÷²”ù*%IÕ ©±ºÜ¼ÙüõÒÓœ|ì碮ä†/ù P5°á#J//'ãÞ&Æ©± ¯rªiõÙqÊ5.[ýUß±‹“äÉÓŒ4×E•€6wg Àt“3Øþ§œh ÅȽ\Ôû<ížÕf«¯€w”‹Fy¼’tA»b„=©5‰z|J¡OVb™D šIìV%šòÆ¥ïöîß˳Å_eq­×§/!(ºd¢Yâ¸åA’5õ{UKm ÏI‹XOâs†jþƒr÷àƒì5·nhi´ % ä!õÅž)VÝ™l‘^v•­Òøˆ³øOŒl•«5Û¦:RðåK2õ}o1%|J¯0¨Lé • ³æ™\°ð[WnàSÅtÿ;#X†cÈÆ™´ÉÔ–Ñ›¡ ÔŠp fï>Œ“¤ì‘/n³}ñ2yBëBÌcNñI…å÷•ä—øú@“~ÌS@įCMfzŠÝ³,\à+Ë2 .ñ¥b ëœW[áÒ"¦.a×oË –­¼¢o.ð&5ó„CåRû>è_ v–N¨é:?üTäý$]þ¡p[ÏI ØôÔýˆR¸#Á+i6­ö‚FMþXîá-ñ¢îyLköÿ€Ù ù±^ºÑñìl׆.1a|àòü;øfsÊÓ‡g%Õã‹ÉÒ‡ ‡X¤þ<*~OïÙûgÔ³m«Ê”øÌÛÕDvV íWV­Y²¤{Ùêí/pêgx0w)üQw¾CÃOŽv&"+¨¸ 8ý¦:LžuÖrXýs©Špfz©•¦ Ov›݇²ÍówË®`y²yO:e·^þì ÊÈ.ÈÃp¦iºÄÔ,S®[¤UX¹¦«½³õ4b|¶°úÙ]9ÑÆ7 ÁÃá>©)Y-§ñ’‹“QL̬úQЬ×yÌŸrq¡ªƒƒ¼D˜Žé½G6njµV_X 2ˆ¢~™3;:ˆ(0—v¢ßoœÈÂÌÐQóO¿Ž­ÆÌ•ÙÑ'p÷‡¿ÅூÖ•gMé{þAÐgƒÚ•‘¡Qý:¢Íó¯Q©qdï5°çP±\WHstòlðÐõ(¬W¨ÃÀ"œ"4¼ðpï—›m\8µ4Ì9˜Œ6>“É>]uÝŠ—¾‰ >cEš5âY,-æ0.uï;…|3˜D,Ÿìp±sfï„ + ÐÙ×99}g'ÂQŸ×ÿRà«Rr|¥–qß•$Y»íyQ„ã_úÉ·`“ LFÍ…3GÙÑ*湋<ÎR}Ñ¿UÜýK¹Ïx'¹ñi6 ?¦Ï0æôh”Jåc°=ÇoÅcŽ >±  ‰À°ÚRùfꪯع„…m¾Ç›´Ð áÖ–®qŒ7c›eie…Ÿ+¾,\Ežà-Œ K´†´±Þ&'1¸oUxñÛÝâ팉+lô׆7CÞsç¥Ý|dÃÃG‘o/>Ç×-Ÿ3Ûq2œÉÒ;þ„}®hÍ7ðw6ou­ôƒì°&ðâ?¦ÛHœD…RJàð½/ž^ªHæõ–%ª³Æ˜Ñq yW›°ÑÌz¶ 5WÈ›øÒ#…¹ô±Ðð'ë¨!ÚÆE xÙý¦ "·TÎÇPc1¥¢ë±ô"oô/¶‚Žòϲ7Ëg,v'I«Iúz–¿ñ?û/o–TÞBÐQ_œlI~•íqcƒÈ|Î|ü.U☓¸¸åkYüõ;^N…ãŽ9Y~ ]¸ÇÑÚ9<ÊÝ·Mé°¼L½¡_è3­© È M·4 íÐ?Jè ÈÅ“„j÷üìzcNZ›:Ü=m+© ,i²JïÑ ‹~îzÒNˆŠ©­˜b£|úšÜÈ®œÑ<¤X>½Fþ äÃ03wºþ¤w ?xT¨„³ Â‘~Î[íûMô„Ð@ÒA 8·¯E^uì€xw |NE% ê¦óÜݰ©ÊXû¡Æú¬~)„*#)|OÝ*úz¿{;9éËNG¹Á ó”- EOÖ?ÙÔ‘äíçìb+#Ù]ñÓfIëdޤR*CØâÎM%n¯t'+@½©x™„®K‚ä[ä‘áRÌM1‚ß` ˆ>®Ox ãïªÔŸÈdŽ-”ëýq;Î8ù9o‡R€¬“™x–íQàŒš­Úh LÍõŸc³Fû‚Ð)Òõʤ*¼­³þkŸ¥Òèâù=U"*öï`WµT&q×6apˆß‰ “ ¹‰¸8k8ʼnæoÕ:Šzœ/¡£àŸ¹ËspÕÔ,Ñ8ÇBÎ]½Ò9}¾û¡¹·±Ÿù=)vì·§¢W8?`oЫ‘Ô²à³Éã Ñ_¢Æ´‹Š‡®á17‘ÕuŠd VÑÚ208Ò¡GTzûw® ¤âɦÈ7ŒÑ­|Fòµ?¹HeŸWÛFé¿ÕŒÓX‰ƒ w.žsަï-®šK0㌽‹$„Ãà–óB„Ú>2þ—cÐÜÅŒ‹'WFí@›®Té‚k:”ò1¬)#š¸QÍ–àö¬ ã¹ú ò^ºHÖVꘇ 9G­$™Åíã°TÇÇ>‚3`)~ÆN–ÇÅ`Üc‡¼½ ±\#¦²ÐÜ|µ¥ò‹%m@ïû¶Ú R :´ëxïµ<•ÇWý|^,ýPàïbÈ#|×jß5 6XÉãO¬€³];=–ßg}¿B—RcÀþ⣥kÒSt>fPWƒCÙN- vC’Ì­ÈV‰<;ìpø%~¼ú @…Ý •&€M“Vneãµ<èhö Ë´xÜ ¯N¡É¤³„ÚϵºxÀ¦pèËP… É…@J8‹!X[t3€•´AÝÇ„0O’TŠxŽ^HŠsÐ1=ô<±Ê ѾT9O4GçÛ)ž¼ù¡ü•dK7×lÀq- Íc>Q³¸{Òi¥CN«ÃЏÉìFpÝ¿]¡4µ #¼,÷¬üËæ8õ·=Èú )ŽNAL¿Äí°“Ã]—¶†|u=€ô=+„ééÒõ½A@ñ§T² Í»°Ãs©´D¿»h|XåÙãýæ»]Y·Ó‘®7SRr^”TôDÉë¸ΕA¥2ŠYà(‹)]ˆ§<ÐàDÍ•¯çð,{3–¨§×àìÁ':ªùZÁ-×î²ÄEÞeFQ³¯Ð}fÍs‚÷ó²ƒÎ¡GÈ_ÅÓŠªydÌ«d¯…÷úÁA6|Ö³3 ù¥cÜ;ÌýEÕOoi÷0"ñw(â†X'íº>*!Íå0'•šDVû’S<=ì/³ócl«Â1¿ØòDže+Ré¾”jù!z`b±¥LLÔDߎì<P³eä¢@‡]ùŦ„Á¨Dãf‡àýùü1*p²]¨5!ÿÏ{5ã—ÉføA$R³˜|â×zó¬c×ãWÇòž½JªÖtX)ŒèŒ†ƒaªÚE/"¡|È^ˆÿ=±È²\Ì·"ì*Ä” Ô¡þèŸ~U#]c5Z†mç]ƒ~g7IæÝ¸'çªO nYDæ/,‰úÄÙµx&–àRC´¥ã:Ñoà¿ae_ –‚+TœdpÀ»Á¨f-J"-±íUO@mS„*VÃ#!e7?ŸÌ£gôI ƒ\0Z¼¦Ü·ù§¬ ¦ý{RÉC/jÔ:HÕ¶}m¡Œ}¶Êt‡W©0ÊEëÚ­¿50ZÏ9m´¬;xÝ«ŠšFp[Ã4MÁ÷Å2?bÕ´£€l̈d¢Ñ7{ª®á¶ÒÂx^ú¾ÿöé¡‹~[Œ–En%ÒÊÞ’­à}qÄö[ê“éèÁäxCÕq³Æ,Ñ®û‚J™X7œßZO€·À:r—‘]îeÁê(±óRÇtdJ']Iiè:ÊþÛÐw){OÏ;£³\Q¿5mhˆqí%ý¶|=˜\, ÔnaŽïï«l̳&ow&qÙÏ­) ¿BÚÍô–&»f­A ŸÙñ¿W­”Qéž *½y¬ö}´1¥.âËÓļ "üñ˜FÜ_ãQC6½÷•ov ‚f›-%G#ÒÇœ l ”¸©9§-Ö(&™Wýd‹I:0ýž%çÎ×»J]IvŠÛ‰EâÓ8ÿtI_òG·øFºY±ö¥©Ï,˨ŠR©õí¡øsZ_¶æwvF³·ä"ËbšE²ƒà.äð¿jçÔw{4²YWѱ‹ç@Å4ç«d§*‹dç4ºg3Å%®ãþDÛ ¿Y Ê‘3€«î2´Îã½f6,Ž0õ'€°ûÁøU’¸[åY°ßQï¦%ŸkCeù{0–îs³vÂ÷]qâiù׋eSk¡•L=åoE$9Ÿ"Í[Ì¥æÚOÓh1Þ;¶=/Úæ!l¡ßý~GEn¼ý*ÓøE¤­)ŠWZÏÈ GCòS¯âÙ&a)òzè®(êP wɰ‘\íÏÔ-NOŶR@O†ÝåçA-¦Ã¤Y~éÛÊè¢MçÏemd Îïç®ëZ5pU0Ýd =q„cny†#D Pˆ&m”’lÕÝ¢ŒE¯Ü¤v&(ŽŠ>ÈL;N+T•½OM/Ú,}Ž0q?¿E­˜ðƒ÷¿g8Ýôœûœ' }º4²"rÄtÓŸ“[½PT}||DY5Rþp‰U®ÚbfÜwÖÆa ~@W—áb0ñ5náò$ÓÏÖ` Ä¡ŸõkH6SEV3€ÝHNAA­|tGWNg&:Ê_&¡oà¤'’¿«½4MŽ'-¯'\šÕŽ)̪ÖçÎc§[´•8Ž˜f"áŠ)\'„,AâlçJ&&§ÝzÆm$êˆiaÏbâBè ¬Çã—…½ýÂÚ³DŒ˜h;-à\$½^Ã#u ­Ž¨èÂ)¥èä¾Vm"&Û‹«,¡¥B“õjsœáðªìÜ2ß—Z‹ÛÔ|‰h^JOœ¤™Ž}jä„Xë¹D±“þRmJ`¡Ý_=ü‰|£¼tŽ6~ªd'%Ë­}û)ÕØåbþƒ1ÏÖ¥I‰¨¤‡ôãw]¸ä]eßq z|ͤY/‡5; Hã_[ä>Ð[ÝÁ'”Fܤ÷0°²ÄÚ|Œ=Ò%»J¼n´&šëýšhÓ è§-Ò¥‹KWŽxÜÜ:}ŠjκlÝH, irJÜë;žã7–g©ŒqtºÜvä}9ŸdNDüû¾š>F‹Xô¢åÀ+Íó˜rÓ—µœšü¾¤Òï~È!Bíü–ëƒw¡çä¾…{Õ©³;@w@'Tënã~JGb<ú-µUF³§N?•ù<ŸÒédôöáGµÂ0É»²¤órYòº‚ÎÄ;7Ã@Š2ÙÇþ„ˆ~ŸÁ }Á4Œ»X›±ˆ5ë8xÑÏ$lØÌ¸( bt:ŸpÞ‹hÌÃ.®á¶–-ó¦Ðrx´å:ºbK} ÞÍ —ÅX8j){ÚÂ#Òsãiû_È34-z?†ÔÜcº¯‘ð’ÌPÞñðcÌù¦_£¶Ýâ0q㨢uŸ[ªLèüOຖs¹ )5óö7…h\~¯ÿînDL«qj©kÖ¯y;øhkýaƒ ’Ð)#³ƒ”n3£›’I–J ÁžÃv´×u­ìõe¶`x26ó><î¾®ÕëqFt#*=I©ZZë~8poèˆjjä}WŠ×© G@ƒô”#•oÿ\d™â%^;uù¤¬Kø‚š»à÷ ¥CrúËî3“ep…EHLwÁÎÄ7~Hœ[Ûe׃‡‰°LîÜõ˜j¡å±Œ0w?ìadÓ+¤A–×¥@s´¡±vrÉPNÎ3Ÿ‚VžŒÀ óí9¿FÜã…6vUhhõ7E|Ò¯YfæžöOÑ&™û/$§üÙ›Áþ}jhÃQÖNq« †=6=QR­*¼‚ÓÕ‹ùÐø6˰ÉXѨ‚®~1Í ¾_ÈD»–,w:ºDJtjäk‚p°¡œPôܧõ¶ˆä\Û£ýª©É—b"ÄQäξk2¤v¶ÙA˜Ê„™=W{òþ 3@Á+S¨ žw·¥0Ô2[ö½¢ÅZ¾trѨ!¦Ö…,…/–¨¡XxŽVñ­‚îëú}üùcßÂw0OÄÚ±)©xT¡[¤ñç>ãú4¸ÀÍŽReñ=µž_áv5Jëȉãˆ|í„":|Ò‘BåÕÈèö Œh¯çKU+ (i­ÕyÜ-V&M&kX7@DbB¯˜M¤34ßÜÆëoPüT“íÃèƒ-DãÕ^C—ë†Ë»Ë3žÑ7XIÈ“ìG°S)©Zâ¸rmê–ýcÛÍGá€4<åYxË¿à‚³’0¿ÿRÃÿB H¢ö=O*õzø*g±2 [ÇœáÆ|§_JhC•Í“7Ü)ioõr4¢oíèOž£Â yŸ,›Ì¿éH½ÑANFîó~صIrg²ëvQÔ’¥J~û)‘$E3iÍiÜBúJQuÌc!3€é°u8qäÞ ßÿ¢gqCoå'Q*··‡d¶iv-“ÑeCrˆxàùä¤Ã)—ÒŒºûÆÊ•æZýWu ÿf“ ¤_Ñ»MÉ•gBEàíö©ŽeÉ™¤ø—ºôá2)ÉÄ0Z2«×ßÃC©Ç4`– (É Ú+¯•NEpNŒSÄÏZºšè6ÌÑÙfÖ‚ öânô'ìÒ¦*e½Tt÷ßåíSJÊU=äÍPôäc’Ñ4ñ>”¸À_®^‰5­Œ3.QxÌI=óÒÔv|~´!7ìàkSý‚DS?Gñó˜RC\òtßÎaØÌ;-es šïÛvÑZ% l5Íg#‹´cþ{¨&ÚêÖD¥Õ“Ç?š=²h¤`d²_Q2Á­“ñ3å9+÷Àù¨dfíwáû$ ìúúr!Eâ͹ i½~u‰×5åwpaó<8Î4¥éR¸ÆŸ”¤ TÑtƒYÅ¡ŽýçéMCe•èz3_—àµ}n~QA†„ø¶|ˆ¿qù½¨þzà kÚfUáêãȺþ{à!~ú ÌVhN+ó£–sS@•[û˜¬Î†ÅqÚ‹q©:LjYsŒ\øÓû,/aˆM"§;ÍKûÚ8sßr‡ìPkÜöŒ³cP ç>rºM&cÞ¢‹>Mm"—·8ÅnëŽ<ÒX×bù7Ñié2S?QŸÏf]µvm˜²x Õ}˜L9¥“'àÂd÷²ÇGÉ.!IºÓYþ¬…šé#Õ;ƒqK$S±Ã¤nŠÀ.ë¹VÀt½öe« ¦ -v*€kÉnAt^© ö¨Ü@î%už(¹°K3‡nHØŒQSþò é[ȺÊZ¸<µå&WUȼNuU:éLTYr)ëšü~€„ÎF5RbA£òXð¹a©êš‚ËHƒ)Pê¥ý•9ÃŒ‡uÂ9T jÞÑã ýŠ_©Ðu]i××DÏqÉ›‘½-¼¼ßaO$:K]×ÅòdÞ“Z mu 2‘¨_–d-H~Còó󊇸±å;û¨S×~ˆ Ô¨æ¬6HjckýÙÀá¾K+Fg˜iÞ4Ö—eÌÌõ>ûk8­Ûoز=È 7ïA\çRJßÓ™j!GüÏóõ­Üv%çr+Ì‹®ý0DƒBlZv„Q¹Ÿø%ò\0¾Á—¯ÊpN5ui›Êº©ñJ[Ã/X–x»à'¡ëéÒpZœ«ï¹…w*H}³löôN'·/[׬FE8ƈA¿2aç„Tï#Ë.‹ÂD÷‡p^÷³#ÔÀÒ‚°÷3º*'ÌÁWÕ¿¡õíŠö‹HJü~Óe¸UØP-ÞBFke;ñ¶R¨åðJ0–ÿyG\¼ŒªŽ8ÿá*tÿ)™ÇäB=+…vt›4v³ªÝ!Ѥq¶ÝCžó…¹ y‡€x4ψ轗“=5‚½l6°µ"hý3÷8rIÎïOÕL\ưöØ¥ºëŒÇ5ŒœâúïN6 F×ÝBOìOAù»û¬qÞ1xlxӈĘצÙMÐ\X˜áëϰþõ†æR¦¿)m¶†¼Õ) 3è燣i+ÀÝ9P-µi1$ÃèãPvZN0+ÓŠÓã]:ò§ØÈ;SnD/¼+¯·!U"&±™"gžt(Ërÿ›°èžendstream endobj 657 0 obj << /Filter /FlateDecode /Length1 1727 /Length2 15455 /Length3 0 /Length 16542 >> stream xÚµºeT[]×5Œ»»7¸»SÜÝÝ-8‡â^ܵ8ÅŠŠ»»{qw—âðÑë~ô~Ÿ¿ßÈHNÖ\º×žkœ3BIª¬Æ(b2J‚\Y™Xøò ª {^FU ¥›‰3€‰……’RÌhâj r7qò¸]­Jf®®,,¼”) ÐùCi0ýPºš¨q²hLþ”A.®Œ¦&.j ƒ¥µöÃE äøÅÙÚÒÊõo vFÆ¿‘þz‹2dMÌlA.¶Ös€,“@äñZh@S •‰dPj4Ô$TÕRªJÊj´LÕÜAÎÿQ‹˜šº†@\DQ]ÔdHi¨©ÿýT:|ÔoÉPTÿÐÿÍóaø×]AB]D]GY‚•ùï¬w ³‹õß´ÿVÕGe€ÿ.íÃÕÂdÿO•««#3³‡‡“¥›‹+ÈÙ’ÉÑîŸúÔ­¬] g[ÀÇÕhü§1næítµþ+ÀßMÈ[›\€$AÿRÚ´òÃéwý¯Â>áú7¦Ý¿Ì.@àÿJceâò¯¼²²<ÀÞÄÚÁè`â`öaèjâêæ0þûxÍ©ÿU  ææìü7‡Âªœÿ+Í–. úX™¾·¯‰Ç¿ï˜‰ƒ›‹×ÿèÍÿ^¶ÈÁÅÚÅÕå_ k;àßê]þÃ?˜‚ˆ¢Œ¤„š:£üñ@Ýq`rõtýÇúo<qy> €•—ÀòAR s1½ýGÕ.Û'nýÑ'Wóæÿ‡×¶ ïÿ·°v0·øÛys7Gf k'7 ŒøX@ÿY], èifÅü7Ý?lù ³þ…?ÚàëírX˜Ø¹}­-€ow ÀÕÙ èëý?ÿ[B`å˜[›¹~ýcXþ‰.ã`ðþ þ¨ä?UÿAš•öcJÍAv_æ@ fEë!hþÿ™³Ë%éfg§hb¤ù÷–þ»‰½µÝ—ÿeùoZÀ¿µÒ(‚œíMìþMgí"ií 4W¶v5³úWcÿ…˸š|p_ÄÁÒø±)ÿ@ÇÉgõߣ ÀÈÊÎúoºJšÙ:]\ì<ÿ¨€mø·‚?zÿ·\³˜””˜”ýÿÙÌ$Ì@æÖ–6N.€‰³³É–"°qr¼Y?8môü‡)f&ë‡ ÀÑÍÕ`rFø»›¬,¬fà_쑃À røo™•• Àìøßj–Éäc<퀮ÿ²þú¯Íþ/_¶kÏÄÿ½2å¿“ýiYþ{©ÿqäý#«¹:ƒlZÖæÇýÿ0Q0qu¶öÔcù`ëþñúÏoÿ+åËÿðyz3rp°ÙxÙ¬œ—Çãû¿|ÍþuúüÃö=ùOùïè€@O ÂïÙç›´†°~ß§Ê )y™N+pµe ~›j#ÄÏÛ& 6dR‚ä¥ù üRе)C°íÞÖ›“+'oÍU„wLüüQ$DFs5™4‚2–Ê:Èhds tJ8f2[ZH£Çb¼m1lïèשdúe-«ùÐEs¬XÎvžKhí„KSíà®ïXqÑ&="¿éf ÂpFea»;1wÁ£‹„^¢hv3ù0%hÖ—5Ž`õ"\Ú‰Àˆý)ˆÊ,¥ÔIú8ßzpS Ã'QÀ ]:Ü d¦Ä¨s‚ñëѧ—žxÙo|t„ÕW‚Ò$NWzÓl)ø2쥼T3Ã,[…==>§ÐIâ3óOdkŸxÆ3îÜ6_kuíuFÞ¶áêÃE&“˜à¼ºáùŒP–òã5Κò,¯® ”†—ÿØ:„e¿;¡Ó†¹{“#XÙï^¥£p+Fª‡&Üx-›£ßÚ ß@l´A¢nE W™ß+.8{k€GÍÛvÛ®0;ó¸ÙôU|J£Nj”D)ælÒÇ; ûÍÿžŽs‡ø&[\?Y.EdhŠÃÒPt¬ñ¶é¿ê*\ƒ¹Çp\)‚1^NNóÚŸ¢ÝpÅ©뜢³ÄÊtý0£Eæ¾b¸aϽïãCyosXI¨šÁnó­U½Í(¤^{V¯_á)K×ÁEA9äÈ;cÈ#ê8ý ä}âþzªÊɦªÐ3ßO ƒÝvSRö§þî¯qHçÀ…Ñ »(yXœ-+®sb/³½xðKÕù¢©òdï[@¡rbøéŠ&»=øÒŠPÅ®´¬Lø«-jUÊgpÍ€§å§å)æ‰ ôêhݸ]i%ÉÔ%;"ÿC¶Ò8«©÷á1 (BéèÁr÷sÜrÈâ êpaŒñ^}9. æéHd ±#\˜ÊüúÆÁFün$]B=e{s¾×ÛTSq¦WK½T‚kâí÷”g1–þνûc×äQVšÖÄèš}WÍ• f“DßÍô®H‹é¡;YÚvc¨b^ЧF¤ŽDÅê%Ñ™9R*#Ú‹ú”~®±\WgÖçöè$cÂíFÔPŠQŒ6ŽqŽ^J<Ì ŒFSäì½×ï:‘ËpDãX`mË×¢­µN"j·Â[&g.MEóv![m¢á0(›øþý°2Qe¿vøžf2^Á\SÓBÜT—:«V¾0ÛfýÛàFßз­}Ë>X¯ ]õ²ü\³´]‡v×_ÂókX;Sôª^HrM)b[58@½THTtá†Î&ÍÊОñø’3Gΰþz’z×Ûâ`7_†…M(šò³-?ãaÇ æl¯¿øêå´u‹Ëxž œ÷&È^mÉ*ûRW‡m)v„ë[p8ÁÀ‰WöQ<ƒÔš‚yI¤ ÌDÅDd ¿\¸‡ª`x€QüSƒQûšºb¨ _rG„(îú3^'èÃsŒ:Œ¯Fx}B«º©D›Ôö†~Ï5S]÷+ÿå8mEÂ̬«‹h@eÍ©3”t.ÈÞ´;éÿ÷-«Åõ@3÷¶¥&b¨J›hß"®¹bü‰L‚K~ÇœG\¸[À¹_ÍXÿKeøÁ¬çóúÚcczd%ÏËÞÍ#ÖÚ{ÇÝÆƒî6©*«kîK®ŠX2@DÙùÂU¸ëe)9)>ËUÿâ5+—Þv?‰G—öa n­Å¬á±ÏQ©ý­K9 XB¨ó¢4r«É3(\B|G¾is¨(3ŸQük'y0þY©!ýzÌqSÁþK q 4Ô¦S!D9z),“þýnÞUš’Ÿe¤äl¸ˆfWkº…÷‘qׂ—|­˜bu{5¿Ë_ê o#âG(L —³=èÓücÃ.Æßïòc~Mu¢•šÀ›c·ʇ´²,Ûssteè Ö~‚?zé”IO1Ue*ß }ÀhoGÄü‚:âÌΫI O·úÊâQuÑÙ‡é¨$ù0•6Ï÷SÑ’¿¸D&sZÚIy*Õ?xK°µœ];T¤êù°Ÿ¿’ø`çS†ê­²¦ÌH t%HÞ5û‰“Œ0'®býgÈ“ˆã¤)vÆÎÍ &¬s›u?F³‰&XîŽÈ»Î´çæIP™ Ü ü§§rš£v?ZWÐ2ï:¬n9ª©0­zì(äu»Ôµ´H9¾ò YMWtJ%J_š§Ê»——ƒä'5‰TƳÏ?[ˆÑßê3ÅŒøÄCÓ+ØŽ°KxÈçæË6óÈ\ ½Þñ #M$‚~n­¾VT(×MDÿ^&‚ÃÂNs)·EÜølÆéÜ;ˆ¼œï¤3„Mݬ ¼6Ì ým‡pøGpÝ\bˆ×žO¨¥þ¥Ü+Z½ƒ Ȫ7›x6Û…|œMßS QRêV’9¼c7ïø)aÃ.Ð~Á$pÁPì PÜKVÍLÍûVõ¸x©§¦†;PZ½ùëN Æ+ô{c+øb²õ0ZcÉ’M鑸Xd»]Vkæ¿„ÇÝB4R"š©¥ç¹ê¸¡¯rZyÏtA6\&Ô»Åy¦d¡%“¥o»RN‘gÓpƒpÑ 2»Êˇ—Îh‡x<EéfÒø£ïå£3ÍMRì}…*¯Œ’e2.† ü¸ä™`Ër?»)ý·ítve2áÇã0,ŠT^é9Ü_ȵŽ~/Õ¬çÍ¡çY*¢÷"¡¤ÊA8V‰ã2b4¨G¢ÜeY¢åwíµ Û ^ÉA7ty?“!ÐYì÷ 06&Á¤èUœÏ1'd髪Åzmz¦×HiA´•í*Õ†­Õy¹ß2Ǿý A)Á­Vh¯&§C—kT#Xq¢^áCø•5ç"[G^c‘ËÅéøª­£ò*š!ø[üô®‰©Ëu'Ô5ñK“}©òÕŸNü7…›Ö¶‡íEé –îJi…¦WZwY‹Á…ªÃ4ðÔ¯æLŸ¯vo Iÿ$ø²{ÃñÄÖ4“ÊK» ÉD=ç¥ßÌŠ;¯Âƒ¬Ud•µ‡s`F5xŠ‚|_·ÁA.‹Y¼r]ünËÞ.áþõ6¾˜7‹ o*©*õ[«IB¶ø—Æ/ˆeWo8@ÌæÄç‘äkäA0㽬ÌÐKºz— 3Õ-:†ædä`òt®£Á‡Å4·‡Z·Ç¾”c_e~ºë)1ýYmÆx×DÜÏ8v³Ò ·Wøo’ ’ž$M·ï >UºvÕÖU°C3‚О„<¤/j¡%ÔD‘2J×ñ2{EW.¢.%ÖÍ,ÿli± uëgR©ÓPÈ[‡òÄTªhÛmNýÔ_î(>eÙŽa³ONÂ/MÁWpdp ÌHÚ BÞN²¶ÞWÁ·‡ !%–Þ¨'}Åf­·þCšÖ¤îšË_]ˆ`ÃF>71—²@z(c^Ý”)?¯T5Ïc¦=@%Æ}Ó£ÈÐͲ 6‘ÛÅ Îz¶W훚KPPkº¸‘’ô½“8’¸Ùfn…Æ÷œ8ÍØîñÝËn‘Ü—Vêe&pî+@gßK–Ä ýÁÈͨ8û¸âiïç¸ÛrUZ™3XôîNLÛ‹yü龟뼗-q¥Æ #Õ€½g64¿- cr&=? K‘jè]ølù¸u½ù|vg¢/ï‹XkϦÑ{âîuÃPdìö;ŽŸ­ˆùù0a؉µ½'üš“~G¤W® XšóñK.«C?1ðPjîNlGµê©°©Úa˜á2+mã’vE:ÞÇo¢jºÑáWIÞÏ__"ÿˆ .¥¬CqmvF‚Mð'†f˜hx˜˜JîcÏÊœydz:³ëðp8pz¥^HnåˆÛF³¸íeñÖU|£üj]бGh¾9û‹²[Ããi'ó¬VåFñx^8Õwrúã–2¤g3òÁ—’)»µ¸¶¨ø7(—ŒôP€‰nvC%qIe„UŠU*È+¦²ý–‚˜ý‰ ÅŸ&yuK1&wˆÔ„ fÃÝQ‹….åzj®GbÒ=ªrÕ\;I(\‹X#üb²ZRÁ.ìR9¼«™Yi"¿±&Æ®B­W7¥E3ïL`}zÈ]Üã[Lßwq­ `\ŠÞ½Oƒß§53­œ2Å(ûvóö«À‹3t·_[P! Éâ‹Ì(V¨$ÄdÑñö,:£Ø;YŸ3mÛoþhó†Ør¡1Ý îÇo—álØñ‰Pñ}Çœ ÎÈ&Ū×+§9Ôvï“ôÞ¶ü{ðTŠÛïnÃáÓ¾òìO‚m¸t,zN+T>Â犉xQõ*3´¿:t_§#š§i:Áwp!ÊJ­û¢”×i}y7è£.Œ•ÝÎq˜4åå—3ZSâ¤~QFŒ®ÁÇN÷uXÞ;øýðˆìM=p_Jb]â¡üœÎ(ÔP<„-U„N,DûåL*íÂRPD±§?·#KG¦=‹ùUqÛ)¥ƒAÐ,y>t­ºH/p£­Ãâ2.vÂ[ ¬ƒÚÒ“@ÿBäfËÖgTþ)¸‘—åA`ׯ)C`£_+ôP®k7ï³ÈØÆ$ç\°”RD¦‚œÔg’gÔ¨uÕtðdÓ†4õ±_èpêj$›¨Í¿€6ŽŸWW£X·¼Ü8j¾_¹Bz6Û$v¢d€ÇTé†i ÀÙ*·OK¬žöVUá»°iÇúG ÿûú|?%y^¨i.»œfe%ÙìËŸ‚”ÏĬ©Nþ[Lìg5ð.¥È$ ƒ¶^é,¨kêiÇc$’XŒäç+ÚqSŒëyc—(I¤Û§ ;I‡ŒŽì”<ß±ËuõæÔAšvvZÏßÉæs¶EIМԎÊUœ¯¿±èÅ¿€½Ö,Cjpü8¬h)Òq;¾MydÀ€~k­zû³ÈŽï´WÖ2’Èá†h0Q•™˜£¢Þ?ùm*e³=…e#WçEÁa1L|{Úó‰vq̓g}Žœï+¿(æ `œ#4}þMöu‚.7_­gê.µsW€oÓóõsÒ¢A:‹]ÜN0Ož•CC2cȄ껾âM°3æMﻋ¡ƒÆ-û`—ß<¯®*ô‹À{/n ºÏ$Ig6{Û_c¤ÔÖ}d…¶knÊô„þé[|V ÷Ô9'°kYO‚ÏA>Ž@þ©‘ŸCþ,T|NûMic¡SxBL\–Û7zñ½›YMe^ߊ×N•Æá³õY1"EåC¬#t€¯%n´–(vÄ¥vV×Û» µÎ²Äôœyr‘=㊮tœrY”é¯Ó‹P4Fä{äˆ÷ì&?šßBmîã ™—ºÔ%DrLé’Ÿ/ ¸Gïgòà=£sÁ¸­%QxŽûŸ?‚«a^.s¸–x¨¤a¾ÒöŒ¯è/ÖŒ>Ý;²ïá÷:é¿Óõ† åÇéØÑ™Å<ñÑ¡‡ÃÒñçp‰}ò•ßWœ“‘‹<ý òŒHšæ¨üŽ“*h±2ûé}OÒÄ{Y8í¥é¥³ïݬêY³Pè*¬†f;_”àÖÚã'l_ŸŸüD/‡Ž"+)„m%™ßbÞé I+qî>\Lª{Kc¡Ï½e`° ¨Çl×ql&N£sÍ:ÉOD¨y9^Ö‰bݨž¢Wð²F†ø‘õÍ 0xK^†¿ÂmÊê6bÕ /•¾}µ] çȪ“Vá÷ fj¾Ñ£¹ëaeYÎ/9ìm+I¯)¸×\"Ùæ,Š6_EOžÂ§ Ø®vxZÉ”?n¢’yE2²Î¯ÇÔ5@TÆÜš£ a3ÉÔ Y6)Ö¶1r…´Ç9*™»}þ5b¼Ï_oA1hCbzT7Nþž $ó’7 6º©Ÿ1—¯˜qeÊLYYDM2iiü%‡õÛ!.C×Ùìó¹…åYq54ÅÈÛ0“R•É1± cé…2ÓCx#X&qR‚& `î˜NQ!,?•{°0œ‡w§­ß€Ý7ìÌÔ„ Èî·-åÖ“B¿)ô˜t­g²vóÆ5Á· ì’Gp80 –Ï<¶þæ÷^ÚÖ®`˪‘匦ꩀ)úº9Ô8f|6sí—‚ûgåò‚t‰yKh¡u·:€5.”ÜcˆU«ЫËÛÀ|i¹ý¤Í„WqÈ£$w¦ï;|ä9%ïXú6 i 6u4¾0|ÏAx·gAçÌÈ4uµ{&Ï0bïÛläò¼\k9ÐeÓŒ|åœT~!ewVT0$sÑ"}”q" ÷ï_·{•¢d­o¹¤)9êI” syžÓ‚Ë…æãÈÒxEG‡eí´4õE[•˜,ëÌÁ‚\LêàÞV‹À}pökR¸™«¤¯:›³Ÿ!ã«ÁºsËC”@àeÛ-+ü U¢=šÂX,è߆(/硲Ÿ\ósyZcÂâ[8°vBQ]Jkû–mDÞl×¢ØíJ‚oCP>Ñ ZË.9²HhÍöeÖrÄqÙçR -׺ü¤crD#“^ž~µ¦Eo)ô=ë¡;+-íîN´¬Ç\,ìe“(÷C§Z‚R®Æ+‰g§1…sÑaæ?Ï6àY$xýª~rK×xÐS=n6ŒÔ·Èÿƒ~úZ´ëfÃ(—BÈ’U§P@d{¢ˆ³lúß$ÚFF7¸•Ö¥;Ö0Áq¾]È,ѧ©`i~ +×QØc~#‰É^v¶‰HjZÞÉÈŠÔ ¾ý”OtóOJ°Åÿ´q¨{vÖè›ãÌ7és&)³:½Õ!D|C´ ;ƒ^ûôyÃk²?41U3´ùéýx—J‡0eCpªySEèFO zpg©•,¥8ã¦ÿvW¡ÎÝÙ¶‰°¬ ¼å¯6|e4èî凨ìƒ]ˆAÚMO Íã#cÓrÉâ=!» í—?;i%1MïÒRâ¢y±ó ?ô!?³8w§èôS)!'üÀèïZr&p¬»EGbý±lÂ{ÑV@–B‘oPb™\SŒÐ7p)W„Q,ðÖ> %¯ w573¥ï䆵G¾ÙøöýK×dèxÓ({{Ìްɯ2Çe²m%#ßËsÓ—ß^Â9|ßḪ•j€opW¦X–‡w”~ ÙÇ&R‹îÆYÛ+vîÅ1]ªó<¯³ŠÀÚ&ž‡²|¼¯F—<æxÂú~`-ßÄÞb’T’qãî[r525»ÇÔÍC^;ýØÖ_YÃazŸZµ6 Â~°d— ªÏ¼\|%k @H­u¦5ùþÄ[[Œ\ð¾æíŒï¹fN´¥ƒx/¸âw½-K)‡¡>T­áVF±­¿o=¦l퇌gù»@Î.¡Í%ÈE>æíµ’† .Ýpd¶´ +æfüJ<ÐÌÝÉí =%lØÊ<ª9‚Xº$Ñ툮ûòÄ¢ØÔ …7Ù¼ç¸p8è ³¯¦­ÀkÃçE‘3³ªíԆ𠨀Äö{VÒRV/V8•, õV[ot‘fŠ2Uúm5éÊÞˆÄ#†¡rQe2^Tàr'V⺩Å1„h%uû©¼¹4 ;LSa-3P½ïT· Ÿœ]“b5ž;q•ʾÇ0cÌåÕßg—aüÐTᆷ[¹ FjëGn­; 1ÃB›Ã¶E†å;—À—ð˜<ÑâÅKÓÇìì {ºí•ÜÈÞ(]ºÎö|A $ »rÀØØå#× Š¬x¿‚Õ­êïpê*W޶‹\g ~û”—_(ò­>q³Ë1p¸0øû*UÂÊ5 üH©EûÐ@W ‰ žõáÖîÖ/ÔËñúS¶Ìp€@×$,ÝáˆFø™«Û‘¥ú–»Óu€è àš#®%ÜN4Q‹8 ºÔJâõSûIOF¡4]ç¯&=% ß—žººAÿJìòÃGòÚ&Z{\jvÀjöŸ|Œõ‹É¨•OX)Rfz^ß%!Ç:DëmQ»ýœ&°xw’"KÁv³U!tO¸`eŽåz‹= Î<[œ7g-'3‚ bÎ}oGkÊœ(þ鳨º?U*}ÆD’—¸÷Š5ú“fËøf¹ú2ˆ¾u†m±‚°‹"¬wÒ  ®›²>ZäŽ$‘_™«ù`ÕqWirò%†LøãÜ*Öê9^ïX÷¼sŒº\ƒE·®_˜£f‘ÈžSl2m°›Ã¶D»­ ÆXe.}um”tCÈò¸îþf² ¦©í™9º1̹yŒ™÷€ÀÖ-ådW4Òe Sþ(oUìÚ‘ _žqð-ï iÛè)€¸Ò3ÔAÙú>Z®ÿšFÉ·ÂýôU„êš-ª~ÈÔ£ìÙÌ G(%yW,xèwMó*BØ„Ö=f–=½xº1Îõ¯ȇgo¾ü­˜Ä™¡„OWìÔo]¿J¢ãûDL£¢ÂËÿÇÚ5Ч™…ÊŽÕäh—t’rHMõÇk¦‰;B2êñ÷s7]:£Ï÷×(ýb8 åÍ~—Î#ˆ¦öú5M”²ŠwáXY!}pѰ‰˜Áf¨ ö7xqŒè›ò1ä¦$Rzr<ôæ\8ßó²Ødj‘×I¼`G%Õ’JÖ—á~Óe<3þy÷Úsloþ. >ä9DåãpULLŸ0öNxÆÒ6´\ð^ U›É)‡²ÞDÍè¶{0Àq2\3K!Ïô!êW->¥‹t?ôÚ™ÂÕ% ×Z ÑEö+Ø-c´ƒm£uוú˜áº¤œ$ó„©7üQ¶ìíKVN­ÉZ/é‹i„"8&©óL Akz›Ä,ê‰%KäóåÖ½t/+j7c \H~È¿?NLb^8vïÞC¥üSÍ~¸£þH1Â*Ä2Ao¸‹Óë\ÄŠk_Ÿ‹¦æ%…kæÓ¬CË55š©(þöv6ámbœ»ø.«’Q/ "Ö»Çóít‽`cƒ¿aöZb'Œ3Üì<¥ØÖ[;JÄ0[â0I•”Œ¸“€‹xÒmDv±}ÈÀÕ½]J™“ç¡Ü¿yaE ÏêAO5'¸vOí·¤€$7vRöøÐë˪ålUØ”ÂùZí£UK)dÆ|ä¹Vmˆà؃éþ™Àp†g]Îûû7^iYOéhxÐskhÆŒl±–>ÎU ]íCjnæ¢4käD‹b^ùÒVÚ>3¬QÕŠÁÈÄÂØõÏ =Þ›Mo‹õx©¶‰ôô ¯GfZ‹Ñÿãɪ³º3¿‚KNQSh!-3ék[¹Y2Ãh |âB` ÜŠ@Ñè†A)á Ë2³­D\ÇëbæRßÀ>¯ì}xB1t/ÁÆî!¡ëì;Õ¯0gqë¥ë#ƒ[ü]šõ|,¶”šØW%š” %KU½jÍup7IÅmó0DV8õÉsz«Ð<Îcc?œüwá(~OX|˜±³L{ú—?ŒÉG ìüPW©Pù&FiÒ·vå)cè©e³¦}yäb]AÕ“n¾Œt)²™ƒ¨ÂHë¾=\n¤Ýe?鎠ûñö9þ¸ œßåVPD‘’°6 €‘È›û1;ÌÐkIŒwº¸5Ž8ù ff9¸êÐÝ“µŒfBÞcòÊ{6Ñ•ßáW ¶X‹/¾,!Põã`õ•›Æ1j-¨ÓØë30ÆÚPüÅoùùå8”­4•érÅ$ö¼ùjd¢Ó9C™ÏºÄ®¯øÏS; ßD$øª;ÌÄœ´åè|³à½ö\‰’à@Ÿa@ò]¾òk@w$¼ë²:²«–zúš3PeßÙý;z!ÖÚÖ×»’kkkÚ´û™GÛF%C!ð¾×˜Õ˜òHJõb…·ÂK?) b¿p×yX0ŒxW–Á[yØ7} }I9õ[3VœmVžókC(y™7ú}WÊá牜¿HLbt'Gíe³p0Ò̴ͮVÏ’¬Ñ]˜l~A¥¹÷afö©þÍŸT«G ©<ÚyB,0Œ‘ag¸õÝØx v”ü«çó¤ñ¥¡û믰^BÎ’ááÉñBÃvYÊAf!Š`K€oÈ>ëÓßn&Øø¬ðuνšµZ8*iÉ6ø{ƒmÕYf‚ 1~…4Pá*2ó3ü¦Ý“Ë#@HH-ûè_«Ï]®f­Ïp…¢OûWfÃU¤$]¨toÕØuqA)Hµï^ˆ5ý™f±–^J= ìo¸×lð;HÛhh;eCÒ>ßÎLŽËsNƳxã%s¿¿&YƒÕj¯÷øDlçÏ^5³rÚ’˜ÙSÿ¡@|×1¤8_™ ¼ËxJ?z1“ôàd7*à“å=Š„ ¶ •GJwŒ³åË_ç„X{K‚?ylâ«ÉöúbH¿ ½"ºk¡&žsä&Js««q ™ÏVV$§ÛÝ(1"‰þôf9ÓÌ´ÝRÑÓ¦Rz†uŸÿ$nkØ`Ã÷¨§8/C„áüm2ÉêR ×¶ugjUžãÔ‘ˆN£‡Ïi‹²PL9×è¸}ᘧPg¨‰ RÜ8Öæ‡V¤ûo£Ë±…P‚¹ñσ¼ULdcÝtªërzê° ¿}U2$ý-ÝŸÿ\U[†.m]¯…ýv)I$§³6…°ãtDC+Êt¤rÍ9xêèS4»ª±:MLórfÀ‹þ«fOéh‡Ê·8­Úý9ÏUsxqÒôßó,ÚŸˆ„gµF´Û¢÷ÿ‚[—ÃnI‹^Žüz©3*ëõÖ™ãô,ü½è,껇>á —I@ë²ÜTI~ðgüQ±õZµ`‘'`^i°+÷Íh„×ÖúC|#­ˆUoJâ nEÚ!Ö§Ïž4I[f¸œ/þÁ!U¥=ÔlvêJï÷ïú¬Í‚ÂÒ“ã•w¶nÃÅ«Ç_ùëL6ŸÍ»'L›Þ9Ì2H}q¶Šæ~±Y±Õ#Jô#Ç}N`äÀÏN –ãzËt‘‡{C AËó…·ïѲWúÔS¸zÂk[èW´cÖ÷Îe×9®mðR<¿‰ZÇ{ä]3©ñÅîýÎ9tÕ¡X)è¢ß_ti(à&¨¹UDnÅ‘Q&à¢0Œ+õíÂyGã e] f¢º‡Ñ¼$>-•»îÛûè'nÞ2ñÉ*L' °?„[3z‘㢳ԑTZ9G{– ÁðôË›>âMXß‚?D¼Ra#¬ÙgÄ=ðèóRP‡½ ¤®ë[÷½;ºÝˆd÷PÔÕ Ôì|»T+VÃDÓn±²iGrI)ªw\ë¡•è·S•ïI’T2T¡©;Ÿ+ÜVeó†ìïó7J97uCÄ«/ÅCŒp~2¨@kê·Š­Çü®-¸^÷ô»n€‚!ÇëøŽ;kŠú{­ó Z“!(Å‘Kþ*û8ø ,ÚS»ó#»c…h+ò‹XÏi…“ÀLŒW®Ä‘üæ÷ÏÃŽCÛS¤L7-å \5×zg¦Z* ÅS‚Ô…(‡W¸ÑðÉG¼„ÕŒáç>ˆæ9[*°ö»Ë;ëÿã^¦¸P·Ò`\iØT…7Zƒ_“eHÏa˯q7šTuµËŒ¡Zn°öE†á1âï#¿bKñ2ˆò\û1ÛÍÓ^ӡΞp>‰  Ý¿£Ëƒ+—‚‘Þ⑌L%#Ú‰5¥JÁxD¾•W|"Œ´w› &0¯^^zÐKlj·ºDx?OW~^tSiºX¤—6JAŒ’G5¤\ ³Éæv$Bi*ʪæNèÁdyÏ-‰¨=Ðâ (`䚊‹ÿtt‡›¢®{àÛG㨋-òLg4:QöîIH óÂؾ€*¨›…S 눒¨ÅŽ¡QbDÉ…ÎB@¾}q…¥‰\;Öd’? ‹ÍD#m/¨Ø/®¤jû™WN@•• 56ôy=‚ÞþkÈÕ&–åºîW>ñÙu¦0UÝ©ÞáÊn¨N?ÛöÔ„}iöÞÂn‰&.ç£\Ê&,eB ¯ Êãëžœž©4[;{­%µ&íÈôÚg¬†D® 'Ðl°“Ó”¬WýùÆíT»çèIŠˆ‹íü G¶áðœÈEgóJ)Âí^ T(—ùtþ0§6”¾;ÙL/Õ.~?V¨l»Ü2ÌWa“ ú?ŒT=aV“D+ %ÆÑ<_F” ¯'4«Z`$¼R CªÙ ý ØozTM†ç² “Ìޜ݅ðÚ2UŠ8Ò]®Æ§“H­mÊ1˜à[çâéUVÅ`Öòš–}öªD¼NkhŠêžù™LóÏÓR?+‚”õeYGÕ„W×|v]xšÉÕjAHË uk¿}¸1gfÜHÚVl’”CÜrÖ•éx};„å 8:‰É÷CG"¼úeœX©PkÜ¢*,·D9f´¤®öc‘¸ºbÑÕ§Sr÷7IÌÎÃuG…C¿Çx#ÍÏ´Eë¬#胿¡ ž;…ç Œi}[„±b½®¦å`·i|Ô$/çw–Ðz€¦á³3cî~¸J6*Œ ö94iJïab&Éð‚d’ëzìïé¦;p—>p¼Óú«q@{´ö…a°[ÍÄ’6OÅtàO”ú̄Øpc™«Û¤tà…¶3Ú÷BYt%Hú<Ú%€¿‘«¢Ox„Ñ`ˆ:ï18ÆU€üE±®Õ|Ñžœ¢QÈt ” ´œãÎ R‹Êf韇2PA$½Q3ðól:ŸØ7” Añ(neýR”Ðø;Æ#§åÍÍB¾a´ÌÙƒHß %ú,ÑÞ2ÒÓnܦŸP?º3ë¶íer;ÔõDÔ×8PÇJchÓxÉLv< êŸî·ÅÊüqî8Fc_›*ì'L™:o´÷rÁ®>õpú¯2LÄ-œ¸áDó ñ1S´2!"R/³½@jE³°¶b7ØîèG%ÓmaHMÕ•i¿P»Ø)†b{í¦ÄG¹úM%3|ï…jëΡÞndío%Ài̲€Œet! ¼9Sÿ‰sããLžæ{\[ZµòÔþ ÄøÅÈ_ð‰¸£nCý›¯ÀL¤L·gu{_8qu©Pî)šÄ â^M¸—s4ºÆIÓÀ"3þw8³R¥D¶ŒÐk-„ùfa‹‡å×KʽåÅûó óù Ád9ªe>RÍoÞ’Ñè¥v*þa3øo™¬m ±)EΰŠD)·…&×z2B°°,KÛÇ9 g1ÕÚ c2«_º˜jÄ“¸bSõý‰Ž-Àƒ>šÏÞ¾#¸Üøç²Á5×Ι>£éï0nÓ$q4¸;& JÑÿÇÿC»oŠ¢•Ë«ËTOhlö}êáaqAŒ×ià|âYª6•mÌFEJRµÐRy>Ô®S†”œ›úk);/";ÁRUs=ia ¹±úiÊ}Ã@ k»ŠQL³×”œ—âàRþo³Ü·ÎÖ0'ÚqI38~U³â6’¸±FC7¼¹° “½”‘UÞø{FîOŠ½Ôœ°…ªQTdáкÄI&«éJŽoñ«cf~×9|Š|…ân…â¿‹1+³â]Üù²…££†38#QK8v#>$Þg²p T†²6œ¤tÏË¿*iïÿÄâ$ˆ)ßÏ¥JTë2K;B—в|x`)ñýjAúIŒ¿€úI> âù¾TšÂ™Ög«ÈÚÏu“³ƒ^ÊCòe¯leNfà,¢QOªVÂj–É ?>hu.?rÚ+GZš¢ñ Éœä,l˜F £žy.Þ©-™,݉‘Yº`ÇÔ¦`Š(ß›¨<,¨†“—Ê0¶^ïÞ-©Ö` Æ¡AP Ëõoög¸L­#AxðÌâƒåCÛ»³µýôù±w¬ëðõôŽI‹¡·¼|5Ÿè›Å÷Ù65´Ð÷רª» Úžï… êTÊ("Ž>$+ Ž|DxÁêÖš¸ÕškùÏýö¡ 8b-Ÿ— â¼äd¿ _¼ 0]V3í‹tF“¼$³¿Ó÷Ú*´B¨4°H ¹Ÿ‚kø[%œ¨»5w½²HPS!ä©Oo)Ä‘^õ¼Æê°Ü*صY~ÊH¢ Ósk6†ïÑ\6½j× ‘¾çÁ dÌ逷߉Â=á5 lp‡L©—=ôÇî¾/éÙ-ÓYèò«ÔÏWQÇlŽp§¶œXó¸ ”Æ 2ï—¬¹G¥+¿i -B@¯ÐohIus¨Z`±aU4ÍÆŒ»‘‘ïÛ&ý|g½ÑêC aˆ×ã¬6à·+®ûó=¦¬~;°Cö†õ<í-³ay¾ó¢am`ƒ_´w=w—‹UÄDÈ’DƒîrüÇÇ–lm>þœ|±’Ÿ¹Åç'‡Ó®¤œÓRž%ýæ<#ºTîÄ}œfÐ)8ÔÅà舿âËÔ0¶{ª›i¼ôþ»Uåç½–ùJNªâTŽ’–ÊJ°xÑ»Ÿ—PÙ™iî; 1q¹Ríº~]º¬²}asÿ.¸€\6ÓépãæI¡+»Úi}ݦf™€þœ„ð+¢NÄ•£•˰KÁ'7~¹¦¦} ’•þ[ëý¼ zùªìËcÎÉ"ƒcÚûn¼DObb>ˆ÷‘½(AθèãÎn3ºCkyµŽ“5ìÞoö1ýgŽP <Æt'ê÷æ%Rš¡Ùœµ~wÔ´‰M˜Ã^=‰¾Ü¹=BÑ(ˆÐB ¡â\äñ„iœ]ü™þ•\ ðP‡+ä’àŒÓÈYö„ «@QŒ ä×5ú2ãêôÑ8š”‘œmÌÁÁfái /hÎwDølµcK\Z_‘Ë** ã"ŒÃĤ ³³¼ñCô¬U"Ï+­@êE餦glŽXãVtº¼Â°‚[q±™ß€Å5ñÊ;M­ÖÍÁyYD*ÓF¨7¡Zð§š/téBnr,àÔé>®½€*¹HГsœa’þ{ìÂûD$ÐbA”7?ÑÍF©øÍOZàËEb¯d€‚~?Èì¿`Wg z[Ó%ºiÿôS^BìNµÏÇ…$!hp žáÉ==Ë":ç`Ørái\ºG$›Bt+`·–Å#"oy,oJíR´‘ £ ÿ|¦ðøÍ¥9¼•9½½·‘t…cnÏA¿v/íâ»1¿Ý$~_dœæ Lz}e(C{Ð`à*/úm…ø“šv°¿ÏÀY˜êØÞ}¼©6Qs–•6vRñDËÛ·®Þ²M§Ÿœ‰‹‚®æÆ’d*Ù¾v@ª ²n{ùŠü:®vž ½ßq£ÎH‡®á˜k÷ÛÕy¤Åõ'!S¡ðêeoa£Ú]\¸VßÅè‹­îX°5FýÓv—ªSØ ·àâ뇲ôº¼Žó|õÿ•ƒˆ‰¯ñI™v¯ö[ýLI¹ì| iý’þæcfÌýÍgdОW ឤÞ)‡©rŠš˜ÝöùSˆZi놵ȶÉ<¹†SU%@ V/0)×SÈJÌï^$% ¨Ù©bl+¹ÝX·ê`yXªŠÖ?/9»ßްìªU«Ø\>·€g®›Pt#,ô¶ –ƒ‹_ï¡Â“€¥W›|>˜G!-²­¨œ†Œ^(Øæ-J-ºUÜ/“*ñè_¼`W¹$³J/cIv[–‘6‚ªž[=•¸,ž•$ŽfF’ì¶4áý4Êf ¡ÕË—ª‚Ç­¸  Ì¯9Äñ}Ú²8¦òQ÷iðb|qmå/kf‘ë”÷åvDIð8xíê(Mp 'xç®Ñ§|Ñ£²a`§Áøým?™³ˆù«ívº‹ªs>ãoAr1Ý׈ѻ_çÄñ?ùsýÝ•xmÑ®öç.dqÆ ½«'ìk>£ORúÞýªLX§W±j!º#©/–«è»¤µ‰¥‹·âG5!ÿJâv}Ýý•Œ?òÌ¿Ô/áV¡ªÓöÔZŒ?‘öî$ͱ`3Õ#ãsàn7¼¹a],ÒrG^y'cêÏòzY+äc±Î'BâËÀ@7Ÿ| öïV¥V#vzp¦…4³~º÷Í+tl£"L(¼Ý;š§ÉóÆy°ë°%³ôî¯ËHøw|Z…¢ý ¢@ÿœamGüq‹;§xî@U´¢5w/ï<> ª.ÝɈáŸ_#žÔBó±È¼|Ù("èn¨ñ®Àg‚äÞ‹ÎÃñܵŠËÚ…9÷âD±[h¹EL5nÜb–_e.¦'œFïš?kfoAš5õtþAðïñ5‚øÙ_[ˆº…–Qs éƒÞ‘`+r|'æ.À¯Þ QÂ>´j¾Ì²V"[ž“ßåŶX¬×Â9…öŦÀÁœÊ>Ö‡#[O7Úë½ï²9X z–œzçÒî„ó­g¶0ƒðæ¼ë6ÚkEV˜–º¥çJ˼üÿGq¹endstream endobj 658 0 obj << /Filter /FlateDecode /Length1 1684 /Length2 1600 /Length3 0 /Length 2642 >> stream xÚµT{8TéÚB›¢ëºõR¢2W¹ïfCän&±”cæq2ÎsÎÖ%BÒ•µÒ…Ze)­vEmy)Q©”~ºØÒ]—ÕïœQ[yvÿÜgž™3ï÷ú9Ÿïçûš›ú1xb<ºãÉà0ÙŽÀÛÇ!£‚b"qáÀ„R¥ Q“Ëf똛»* B¢8æ†ÐplÉ(å$Œ‰„ @…8蘈AåƒÈàID ‡`‰¨þ8A2"‚rCLŠbp>•âŠË¨4ФkX3t%:Û… ¼Q4®"¢Q€`bàÅôa_\EQ`‰c F!2 À%@—a?0xú ýƒæ3©ÂAJ¹W¼Çâ$zX7ž¯€à2+à! пˆQø¥VÀW@ùé>T îÃð!þ|‹~ÀqPA tÛQØæQÈÀGhTªDǨË(’”;²X*•Š)U$WH™r™Ÿ %€ WDê©€2¨&F‰‰):É(8R€žðFE# äŽ8c(*©$ÊNþ Œ"‚¤kÊFÂágm¢Bëíïï b#!†`"*DH%"Ô6ê Å#!pU*tŸ.Åßm>@wÁ©7 “%&#ªÑC0%ñý'Ü|þÚ"#P‚$F*B AeFOÐ3C1µÍ‡çëéÎ0¼)ía œbc’ñ¤:š®Çsóv¶\À±³´Nù˜Ø‰¡P:4}n(ʼn+Xÿ"ðh Wa‰ÿæ• ˜XBOA¬”³„«„žnïs(“ÎG›’€ `,€ñ¢(ÝZ­ÚÌ¡Í%ɉr\$ˆŒ€É¨RD‰ƒ€T(arâ§ŽÏO:; FE$%zjqtÔÕ=1 FÌ’®÷r°ä2©}šO-­Çd @ %:,_œ¤Äaùßìܨ^îJ™Ì‰–ÿLìèh$•%üCü¨¸`Hã¶ôÅ1ˆl”%ÜÑx(öGIQÔÉ#vO¡v‚‡Ie08‹˜lk[îˆGHo›Œ’5u5¡ôåFù­9£|”bEÑ$`m¯vAŠ™Qè©qÐØËËEÈç{,ü1©ƒù˜£˜pml¢P :lJ!\È¡„/†ñj ÃI*È•d2à zÌ;kÀŠA©Õ¢í:Ÿñ§÷T-;öGdï/0õ9ˆTàÑ0S×÷'!Zÿ›Ò ‡²SŸÿÂ?k`þQîŸd»¸àñ‰ k6`8ØØg‘-°³³Kþ,S4r“¨ÕJøáL¯1€0Štº;q‘Sƪíµk+Røemû¾0w`üÛe¦5OóÞº¾[5 ;2ªµùãiM³ñçd‹éÇšÆ$ß}ãlÌ›VæfŒ¤¸^ðN½Ú×*¬µ×k#19ÙrÙtý”Ì´yÓ§Õ¨nHŸ¸3ãMœ—Å!!/Ž/Q=Mʽ&ïnwHOŽprÌDÖOû:-¤Ã¾®ºg0ôdL¯[Ð|?3´³õ^Û›ñ‰3O´(KZöþuóì bÞsv’µ_Áea{ðƒÍ;~Yb¼Ý´“e\¹>ÐêÜ®ÒÍRƒ/ o•–›3²쾓øOÐÐ’Ð#ÔÎÌ2I’Ö͈µ-eO\™W÷.¸40½fV­ÑX1>j¬¶O³©‡+¨xèe™ž±#©…[Ýü¶F/vÀÕVþ8£A=}vLWÎñeYŸ ŒJ‰^çØÙ}s5œl'e-Ïuº^¾¨¬êSSÞ Hš¶ÎÙÏ›Ë2ÎÇ:2\]û yƒUvJõ¦¶¾§‹º·pMÙÍ¢UÛn‡‹°:Άޫè>œùêJ˜j¥ÆÝo¶÷Ï»q·xxzdë8eNÍ–à£ËMJb{gäu¦ÄÝçéîUu 38¸Ü:VbK›ò×ÇþøEÓÕcŒî€ýÃ>wn¬™lä›ÝKLn²Ÿ’[W;©NŸÛçî«YÐØlx²?ãŽãô¤€MSCå¯ÖKâó[ü¥Á½ô,7|±íŒU³Ø@ó—4â\ßЊ¯›<¾¿7 ænœ+›uÂèiš½SÏ9ÍÕ&Úzíz!í›¶–-ª7×þú]ývª©éø‹âªám²îZÝ8›ò®ò;é¿&Ùlv´¹¡uXÿDeß «ƒEómþ‡ÍÚ›>Q©ù.; öª¬—uÁ¡G†ƒŒJ»jÖjìJÚ;]xl®ŸI××Fl™ÃKgeß ¸"^U>ÐúpÌõæÚ?Ÿ gLpsÇlC:9éÃCW7Ÿ¼ ¾°+zÝ™bYÄô»o«Æ|ߨë©S´ý¦é¡ŸU¦Ûc+/7…]`ËmÞ1´ÀßwÙ®?³>êŒ0KÍdOÊ]:[שà¶ôT<”,=YÓÔ%ZÖî×ÄÔÊpÂDXÙ4Ù¢uOZUF³+gˆÇÕìÑí .™tú¥‘M«³…VÛä@¯—Ùva½¿Éœ¹bÍ£2n¾{Î`EÞݹ¹9¯¹k+¯¢Oì«2wªÖ!¿<û«¯T¶³W؉Ñ'O®Äíö{^RøˆuN endstream endobj 659 0 obj << /Type /XRef /Length 416 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 94 0 R /Root 93 0 R /Size 660 /ID [<5d2e5dc68208b3e93cc372c7da825a0d><888ed7246c7ee1406aee47b3a4aaf360>] >> stream xœí–;KAÄwï¹Ä˜hQPH@‚&E#*Á€`eA ÏO VÆR,Äj+ >ƒ¯/`a¥©µSEA +Ñ›Q’Tz`Süv÷fï`Èü5Ÿ&…ð‘oBÂTTü‡_"8–³µ¯ɹÚWÉQtšœø4’ãjAfôFɲt8ª²¤è4Ki YÒÈŒËdŠÖÉáÒJÀ >åºEí¡Þµ5°gϦé‚nØëó`_ÖûÏ¡#\¯¥³÷´6°;x]ñÀõˆáÏ›I•aE‡Ö#39;3—*3Šå$~´eçälIåDÑif’g­¶žts¾ò'ÙVÛ$wõè áöà=[o–-ùQœÓd †zµl~+g·¼S?SëÔìèª XÙMO:¸8ûùžø&èSÑ8ÇÛÙ¡©Gܘh…îë†À4ºXFÙ±~Ñ1ßÿ…>Í`f™þü_ugq~bÚà·›YÞ»@Vód¹»KÏëÒñ;]°ýÍW¸‡é¶Rôæø¬äT ‚xJ¦ü<“ߺ›Vc endstream endobj startxref 598797 %%EOF flexsurv/inst/doc/distributions.Rnw0000644000176200001440000002177214500354432017255 0ustar liggesusers%\VignetteIndexEntry{Distributions reference} \documentclass[nojss,nofooter]{jss} \usepackage{bm} \usepackage{tabularx} \usepackage{graphics} \usepackage{listings} \newcommand{\bbeta}{{\bm\beta}} \newcommand{\x}{{\mathbf{x}}} \newcommand{\z}{{\mathbf{z}}} \newcommand{\btheta}{{\bm{\theta}}} %\newcommand{\code}[1]{\texttt{\detokenize{#1}}} %\newcommand{\code}[1]{\texttt\lstinline|#1|} \author{Christopher H. Jackson \\ MRC Biostatistics Unit, Cambridge, UK \\ \email{chris.jackson@mrc-bsu.cam.ac.uk}} \title{flexsurv: Distributions reference} \Plainauthor{Christopher Jackson, MRC Biostatistics Unit} \Abstract{ A reference guide for the distributions built into flexsurv } \Keywords{survival} \begin{document} This document lists the following information for each of the built-in distributions in \code{flexsurvreg}. \begin{itemize} \item How the distribution is identified in the \code{dist} argument to \code{flexsurvreg}. \item Name of the \code{d} function in R for the probability density, showing how names of the arguments in the R function correspond to the symbols in the formula for the survivor function. In each case, there are corresponding R functions with names beginning with \code{p},\code{q} and \code{r} instead of \code{d}, for the cumulative distribution, quantiles and random number generation. The R \code{help} page for the function named here will contain more information about the distribution, e.g. the probability density function, and how particular distributions are defined as special cases of other distributions. \item The survivor function $S(t|\btheta)$ as a function of time $t$ and the parameters of the distribution $\btheta$. Any restrictions on the allowed values of the parameters are noted. \item The location parameter of the distribution, now indexed by $j$, and a function describing how the location parameter depends on covariate values $\z_j$ and covariate effects $\bbeta$. $\bbeta$ are the covariate effects indicated when printing a \code{flexsurvreg} object, which can take any real value. \item A more interpretable covariate effect measure, defined as a function of $\bbeta$. \end{itemize} In a \emph{proportional hazards} model, the ``more interpretable'' effect measure presented is the hazard ratio (HR) for one unit of the covariate. In an \emph{accelerated failure time model}, the time acceleration factor (TAF) for one unit of the covariate is presented. The survivor function is of the form $S(t) = S^*(ct)$ where $c$ is some constant that depends on the parameters. Multiplying $c$ by 2 has the same effect on survival as multiplying $t$ by 2, doubling the speed of time and halving the expected survival time. An alternative way of presenting effects from an accelerated failure time model is the ratio of expected times to the event between covariate values of 1 and 0. This equals 1/TAF, and may be easier to interpret if the time to the event is of direct interest. A HR below 1 and a TAF above 1 both indicate that higher covariate values are associated with a higher risk of the event, or shorter times to the event. % So the comparable parameters are exp(-beta) for the lognormal and gengamma 1/exp(beta) = exp(-beta) for the weibull exp(beta) for the gamma and exponential \subsection*{Weibull (accelerated failure time)} \verb+flexsurvreg(..., dist="weibull")+\\ \code{dweibull(..., shape=a, scale=mu)} \[ S(t | \mu, a) = \exp(- (t/\mu)^ a), \qquad \mu>0, a>0 \] \[ \mu_j = \exp(\z_j \bbeta), \quad TAF = \exp(-\bbeta) \] \subsection*{Weibull (proportional hazards)} \verb+flexsurvreg(..., dist="weibullPH")+\\ \code{dweibullPH(..., shape=a, scale=lambda)} \[ S(t | \lambda, a) = \exp(- \lambda t^ a), \qquad \lambda>0, a>0 \] \[ \lambda_j = \exp(\z_j \bbeta), \quad HR = \exp(\bbeta) \] (Note the argument ``scale'' to \code{dweibullPH} would perhaps better have been called ``rate'', given the analogy with the rate of the exponential model). \subsection*{Gamma} \verb+flexsurvreg(..., dist="gamma")+\\ \code{dgamma(..., shape=a, scale=mu)} \[ S(t | a, \mu) = 1 - \int_{0}^t \frac{x^{a-1} \exp{-(x/\mu)}}{\mu^a \Gamma(a)} dx, \qquad \mu>0, a>0 \] \[ \mu_j = \exp(\z_j \bbeta), \quad TAF = \exp(\bbeta) \] \subsection*{Exponential} \verb+flexsurvreg(..., dist="exp")+\\ \code{dexp(..., rate=lambda)} \[ S(t | \lambda) = \exp(-\lambda t), \qquad \lambda > 0 \] \[ \lambda_j = \exp(\z_j \bbeta), \quad HR = \exp(\bbeta), \quad TAF = \exp(\bbeta) \] \subsection*{Log-logistic} \verb+flexsurvreg(..., dist="llogis")+\\ \code{dllogis(..., shape=a, scale=b)} \[ S(t | a, b) = 1/ (1 + (t/b)^a), \qquad a>0, b>0 \] \[ b_j = \exp(\z_j \bbeta), \quad TAF = \exp(-\bbeta) \] \subsection*{Log-normal} \verb+flexsurvreg(..., dist="lnorm")+\\ \code{dlnorm(..., meanlog=mu, sdlog=sigma)} \[ S(t | \mu, \sigma) = 1 - \int_0^t \frac{1}{x\sigma\sqrt{2 \pi}} \exp{\left\{-\frac{(\log x - \mu)^2}{2 \sigma^2}\right\}} dx, \qquad \sigma > 0 \] \[ \mu_j = z_j \bbeta , \quad TAF = \exp(-\bbeta) \] \subsection*{Gompertz} \verb+flexsurvreg(..., dist="gompertz")+\\ \code{dgompertz(..., shape=a, rate=b)} \[ S(t | a, b) = \exp(-(b/a) (\exp(at) - 1)), b > 0 \] Note that $a<0$ is permitted, in which case $S(t|)$ tends to a non-zero probability as $t$ increases, i.e. a probability of living forever. \[ b_j = \exp(\z_j \bbeta), \quad HR = \exp(\bbeta) \] \subsection*{Generalised gamma (Prentice)} \verb+flexsurvreg(..., dist="gengamma")+\\ \code{dgengamma(..., mu, sigma, Q)} \[ S(t|\mu,\sigma,Q) = \begin{array}{ll} S_G(\frac{\exp(Qw)}{Q^2} ~ | ~ \frac{1}{Q^2}, 1) & (Q > 0 )\\ 1 - S_G(\frac{\exp(Qw)}{Q^2} ~ | ~ \frac{1}{Q^2}, 1) & (Q < 0)\\ S_L(t ~ | ~ \mu, \sigma) & (Q = 0)\\ \end{array} \] where $w = (\log(t) - \mu)/\sigma$, $S_G(t | a,1)$ is the survivor function of the gamma distribution with shape $a$ and scale $1$, $S_L(t |\mu,\sigma)$ is the survivor function of the log-normal distribution with log-scale mean $\mu$ and standard deviation $\sigma$, $\mu,Q$ are unrestricted, and $\sigma$ is positive. \[ \mu_j = z_j \bbeta, \quad TAF = \exp(-\bbeta) \] \subsection*{Generalised gamma (Stacy)} \verb+flexsurvreg(..., dist="gengamma.orig")+\\ \code{dgengamma.orig(..., shape=b, scale=a, k=k)} \[ S(t|a, b, k) = 1 - \int_0^t \frac{ b x^{bk -1}}{ \Gamma(k) a^{bk} }\exp(-(x/a)^b) dx \] \[ a_j = \exp(z_j \bbeta), \quad TAF = \exp(-\bbeta) \] \subsection*{Generalised F (Prentice)} \verb+flexsurvreg(..., dist="genf")+\\ \code{dgenf(..., mu, sigma, Q, P)} \[ S(t | \mu, \sigma, Q, P) = 1 - \int_0^t \frac{\delta (s_1/s_2)^{s_1} e^{s_1 w}}{\sigma x (1 + s_1 e^w/s_2) ^ {(s_1 + s_2)} B(s_1, s_2)}, \qquad \sigma>0, P>0 \] where $s_1 = 2(Q^2 + 2P + Q\delta)^{-1}$, $s_2 = 2(Q^2 + 2P -Q\delta)^{-1}$, ${\delta = (Q^2 + 2P)^{1/2}}$ and $w = (\log(x) - \mu)\delta /\sigma$ \[ \mu_j = x_j \bbeta, \quad TAF = \exp(-\bbeta) \] \subsection*{Generalised F (original)} \verb+flexsurvreg(..., dist="genf.orig")+\\ \code{dgenf.orig(..., mu, sigma, s1, s2)} \[ S(t | \mu, \sigma, s_1, s_2) = 1 - \int_0^t \frac{(s_1/s_2)^{s_1} e^{s_1 w}}{\sigma x (1 + s_1 e^w/s_2) ^ {s_1 + s_2} B(s_1, s_2)} dx, \qquad \sigma>0, s_1>0, s_2>0 \] where $w = (\log(x) - \mu)/\sigma$, and $B(s_1,s_2) =\frac{\Gamma(s_1)\Gamma(s_2)}{\Gamma(s_1+s_2)}$ is the beta function. \[ \mu_j = z_j \bbeta , \quad TAF = \exp(-\bbeta) \] \subsection*{Spline (Royston/Parmar)} \verb+flexsurvspline(...,scale="hazard")+\\ \verb+flexsurvspline(...,scale="odds")+\\ \verb+flexsurvspline(...,scale="normal")+\\ \code{dsurvspline(..., gamma)} where the argument \texttt{gamma} collects together all parameters,\\ ~\\ or the alternative forms for the density/distribution functions (flexsurv versions 2.0 and later) where different parameters are in separate arguments:\\ \code{dsurvspline0(..., gamma0, gamma1)} (no internal knots)\\ \code{dsurvspline1(..., gamma0, gamma1, gamma2)} (1 internal knot)\\ \code{dsurvspline2(..., gamma0, gamma1, gamma2, gamma3)} (2 internal knots)\\ etc., all the way up to \code{dsurvspline7}. \[ g(S(t)) = s(x, \bm{\gamma}) \] where $x=\log(t)$ and $s()$ is a natural cubic spline function with $m$ internal knots: \[ s(x,\bm{\gamma}) = \gamma_0 + \gamma_1 x + \gamma_2 v_1(x) + \ldots + \gamma_{m+1} v_m(x) \] where $v_j(x)$ is the $j$th \emph{basis} function, \[v_j(x) = (x - k_j)^3_+ - \lambda_j(x - k_{min})^3_+ - (1 - \lambda_j) (x - k_{max})^3_+, \qquad \lambda_j = \frac{k_{max} - k_j}{k_{max} - k_{min}} \] and $(x - a)_+ = max(0, x - a)$. The link function relating the survivor function to the spline is: \[ g(S(t)) = \begin{array}{ll} \log(-\log(S(t))) &\verb+(scale="hazard")+ \\ \log(S(t)^{-1} - 1) & \verb+(scale="odds")+ \\ \Phi^{-1}(S(t)) & \verb+(scale="normal")+ \\ \end{array} \] For more details, see the main \code{flexsurv} vignette. The location parameter is \[ \gamma_{0j} = z_j \bbeta \] For \verb+scale="hazard"+, the hazard ratio is $\exp(\bbeta)$. \end{document} flexsurv/inst/doc/standsurv.R0000644000176200001440000003405314657635411016047 0ustar liggesusers## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( fig.dim = c(8, 6), collapse = TRUE, comment = "#>" ) ## ----message = FALSE, warning = FALSE----------------------------------------- library(flexsurv) library(flexsurvcure) library(ggplot2) library(dplyr) library(survminer) ## ----------------------------------------------------------------------------- data(bc) set.seed(236236) ## Age at diagnosis is correlated with survival time. A longer survival time ## gives a younger mean age bc$age <- rnorm(dim(bc)[1], mean = 65 - scale(bc$recyrs, scale=F), sd = 5) ## Create age at diagnosis in days - used later for matching to expected rates bc$agedays <- floor(bc$age * 365.25) ## Create some random diagnosis dates between 01/01/1984 and 31/12/1989 bc$diag <- as.Date(floor(runif(dim(bc)[1], as.Date("01/01/1984", "%d/%m/%Y"), as.Date("31/12/1989", "%d/%m/%Y"))), origin="1970-01-01") ## Create sex (assume all are female) bc$sex <- factor("female") ## 2-level prognostic variable bc$group2 <- ifelse(bc$group=="Good", "Good", "Medium/Poor") head(bc) ## ----------------------------------------------------------------------------- km <- survfit(Surv(recyrs, censrec)~group2, data=bc) kmsurvplot <- ggsurvplot(km) kmsurvplot + xlab("Time from diagnosis (years)") ## ----------------------------------------------------------------------------- model.weibull.sep <- flexsurvreg(Surv(recyrs, censrec)~group2, anc = list(shape = ~ group2), data=bc, dist="weibullPH") model.weibull.sep ## ----------------------------------------------------------------------------- predictions <- summary(model.weibull.sep, type = "survival", tidy=T) ggplot() + geom_line(aes(x=time, y=est, color = group2), data=predictions) + geom_step(aes(x=time, y=surv, group=strata), data=kmsurvplot$data.survplot) ## ----------------------------------------------------------------------------- ss.weibull.sep.surv <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) ss.weibull.sep.surv ## ----------------------------------------------------------------------------- plot(ss.weibull.sep.surv) ## ----------------------------------------------------------------------------- plot(ss.weibull.sep.surv) + xlab("Time since diagnosis (years)") + geom_step(aes(x=time, y=surv, group=strata), data=kmsurvplot$data.survplot) ## ----------------------------------------------------------------------------- ss.weibull.sep.haz <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) plot(ss.weibull.sep.haz) + xlab("Time since diagnosis (years)") ## ----------------------------------------------------------------------------- ss.weibull.sep.rmst <- standsurv(model.weibull.sep, type = "rmst", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor"))) plot(ss.weibull.sep.rmst) + xlab("Time since diagnosis (years)") ## ----------------------------------------------------------------------------- ss.weibull.sep.3 <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), contrast = "difference") plot(ss.weibull.sep.3, contrast=TRUE) + xlab("Time since diagnosis (years)") + ylab("Difference in survival probabilities") + geom_hline(yintercept = 0) ## ----------------------------------------------------------------------------- ss.weibull.sep.4 <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), contrast = "ratio") plot(ss.weibull.sep.4, contrast=TRUE) + xlab("Time since diagnosis (years)") + ylab("Hazard ratio") + geom_hline(yintercept = 1) ## ----------------------------------------------------------------------------- ss.weibull.sep.boot <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=10), ci = TRUE, boot = TRUE, B = 100, seed = 2367) ss.weibull.sep.deltam <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=10), ci = TRUE, boot = FALSE) plot(ss.weibull.sep.boot, ci = TRUE) + geom_ribbon(aes(x=time, ymin=survival_lci, ymax=survival_uci, color=at, linetype = "Delta method"), fill=NA, data=attr(ss.weibull.sep.deltam,"standpred_at")) + scale_linetype_manual(values = c("Bootstrap" = "solid", "Delta method"= "dashed")) + ggtitle("Comparison of bootstrap and delta method confidence intervals") ## ----------------------------------------------------------------------------- model.weibull.age.sep <- flexsurvreg(Surv(recyrs, censrec)~group2 + age, anc = list(shape = ~ group2 + age), data=bc, dist="weibullPH") ## Marginal survival standardized to age distribution of study population ss.weibull.age.sep.surv <- standsurv(model.weibull.age.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50) ) ## Marginal survival standardized to an older population # create a new prediction dataset as a copy of the bc data but whose ages are drawn from # a normal distribution with mean age 75, sd 5. newpred.data <- bc set.seed(247) newpred.data$age = rnorm(dim(bc)[1], 75, 5) ss.weibull.age2.sep.surv <- standsurv(model.weibull.age.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), newdata=newpred.data) ## Overlay both marginal survival curves plot(ss.weibull.age.sep.surv) + geom_line(aes(x=time, y=survival, color=at, linetype = "Older population"), data = attr(ss.weibull.age2.sep.surv, "standpred_at") ) + scale_linetype_manual(values = c("Study" = "solid", "Older population"= "dashed")) ## ----------------------------------------------------------------------------- summary(survexp.us) ## ----------------------------------------------------------------------------- ss.weibull.sep.expected <- standsurv(model.weibull.sep, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.expected, expected = T) ## ----------------------------------------------------------------------------- ss.weibull.sep.expectedh <- standsurv(model.weibull.sep, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,7,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.expectedh, expected = T) ## ----------------------------------------------------------------------------- ## reshape US lifetable to be a tidy data.frame, and convert rates to per person-year as flexsurv regression is in years survexp.us.df <- as.data.frame.table(survexp.us, responseName = "exprate") %>% mutate(exprate = 365.25 * exprate) survexp.us.df$age <- as.numeric(as.character(survexp.us.df$age)) survexp.us.df$year <- as.numeric(as.character(survexp.us.df$year)) ## Obtain attained age and attained calendar year in (whole) years bc <- bc %>% mutate(attained.age.yr = floor(age + recyrs), attained.year = lubridate::year(diag + rectime)) ## merge in (left join) expected rates at event time bc <- bc %>% left_join(survexp.us.df, by = c("attained.age.yr"="age", "attained.year"="year", "sex"="sex")) # A stratified relative survival mixture-cure model model.weibull.sep.rs <- flexsurvcure(Surv(recyrs, censrec)~group2, anc = list(shape = ~ group2, scale = ~ group2), data=bc, dist="weibullPH", bhazard=exprate) model.weibull.sep.rs ## ----------------------------------------------------------------------------- ## All-cause survival ss.weibull.sep.rs.surv <- standsurv(model.weibull.sep.rs, type = "survival", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.surv, expected = T) # All-cause hazard ss.weibull.sep.rs.haz <- standsurv(model.weibull.sep.rs, type = "hazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.haz, expected = T) ## ----------------------------------------------------------------------------- # Excess hazard ss.weibull.sep.rs.excesshaz <- standsurv(model.weibull.sep.rs, type = "excesshazard", at = list(list(group2 = "Good"), list(group2 = "Medium/Poor")), t = seq(0,30,length=50), rmap=list(sex = sex, year = diag, age = agedays ), ratetable = survexp.us, scale.ratetable = 365.25, newdata = bc ) plot(ss.weibull.sep.rs.excesshaz) flexsurv/inst/doc/standsurv.html0000644000176200001440000106505314657635413016621 0ustar liggesusers Calculating standardized survival measures in flexsurv

Calculating standardized survival measures in flexsurv

Michael Sweeting1

Background

Standardized survival measures

standsurv is a post-estimation command that takes a flexsurvreg object and calculates standardized survival measures. After fitting a parametric survival model in flexsurv it is often useful to compute and visualise the marginal (or standardized) survival. For example, suppose a survival model is fitted adjusted for treatment group, age, and sex. A separate predicted survival curve can be obtained for each individual based on their covariate pattern or a prediction can be obtained by setting covariates to their mean values (both can be obtained using summary.flexsurvreg), but it may be more useful to obtain the marginal survival for each treatment group. Regression standardization achieves this by fitting a regression model including the treatment group \(Z\), covariates \(X\) and possible interactions between \(X\) and \(Z\). The standardized survival can be estimated by obtaining predictions for every individual in the study under each fixed treatment arm and averaging these individual-specific estimates. The marginal survival over the distribution of covariates in the study assuming all participants were assigned to arm \(Z=z\) is: \[\begin{equation} S_s(t|Z=z) = E[S(t | Z=z, X)] = \frac{1}{N} \sum_{i=1}^{N} S(t | Z=z, X=x_i) \end{equation}\] for covariate values (vectors) \(x_1,...,x_{N}\). Here standarization is done over all \(N\) patients in the study and provides a counterfactual marginal estimate when setting \(Z=z\). The standardized survival is therefore an estimate of the marginal survival if all study patients had been assigned to group \(z\). Under certain assumptions, differences in marginal survival provide estimates of causal effects (Syriopoulou, Rutherford, and Lambert (2021)) and certain estimands such as the average treatment effect (ATE) can be targeted: \[ ATE = S_s(t|Z=z_1) - S_s(t|Z=z_0)]\] Alternatively, an average treatment effect in the treated (ATET) estimand can be targeted by averaging over only patients who were in the intervention treatment arm \(Z=z_1\). Standardization estimates can also be obtained for other target populations of interest. For example it may be important to predict survival in an external population with different characteristics to the study population.

The hazard function for the standardized survival can be obtained to understand how the shape of the hazard changes over time. This provides an estimate of the marginal hazard. It can be shown (Rutherford et al. (2020), Appendix I) that the hazard of the standardized survival can be calculated as \[\begin{equation} h_s(t|Z=z) = \frac{\sum_{i=1}^{N} S(t|Z=z,X=x_i)h(t|Z=z,X=x_i)}{\sum_{i=1}^{N} S(t | Z=z, X=x_i)} \end{equation}\] This is a weighted average of the \(N\) individual hazard functions, weighted by the probability of survival at time \(t\). Patients who are unlikely to have survived to \(t\) will contribute less weight to this hazard function.

Calculating marginal expected survival and hazard

In economic evaluations parametric survival models are used to extrapolate clinical trial data to estimate lifetime benefits. In this context it is often useful to plot marginal ‘expected’ (general population) survival alongside parametric models fitted and extrapolated from trial data in order to aid interpretation and for a visual comparison between the trial subjects and the population at large. Displaying expected survival and hazard functions can aid understanding of whether the assumed hazard and survival functions are credible (Rutherford et al. (2020)). Expected survival is defined as the all-cause survival in a general population with the same key characteristics as the study subjects. General population mortality rates are often taken from national lifetables that are stratified by age, sex, calendar year and occasionally other prognostic factors (e.g. deprivation indices).

The Ederer or “exact†method for estimating expected survival assumes subjects in the trial population are not censored before the end of a stated follow-up time (Ederer, Axtell, and Cutler 1961). The expected survival is then the survival we would expect to see in an age-sex matched general population if all patients are continuously followed-up. This is the approach used by standsurv to calculate expected survival and is the “most appropriate when doing forcasting, sample size calculations or other predictions of the ‘future’ where censoring is not an issue†(Therneau 1999).

Based on the exact method, the marginal expected survival using background mortality rates is calculated using all \(N\) patients in the trial at any time point \(t\):

\[\begin{equation} S^*(t) = \frac{1}{N} \sum_{i=1}^N S_i^*(t) \end{equation}\] where \(S_i^*(t)\) is the expected survival for the \(i\)th subject at time \(t\). It follows that the marginal expected hazard is a weighted average of the expected hazard rates: \[\begin{equation} h^*(t) = \frac{ \sum_{i=1}^N S_i^*(t) h_i^*(t)}{\sum_{i=1}^N S_i^*(t)} \end{equation}\]

The expected survival for the \(i\)th subject at follow-up time \(t\) is calculated based on matching to the general population hazard rates. If lifetables are utilised these often provide mortality rates by sex (\(s\)), age (\(a\)) and calendar year (\(y\)), in yearly or 5-yearly categories. In practice the expected survival at time \(t\) for a given subject is calculated from the cumulative hazard. At a given follow-up time \(t\) this is the sum of \(h^*_{asy} \times \textrm{Number of days in state } (a,s,y)\) in the follow-up where \(h^*_{asy}\) is the expected hazard for age \(a\), sex \(s\), year \(y\). This requires follow-up time for each individual in the study dataset to be split by multiple timescales (e.g. age and year) into time epochs, which can be visualised as a Lexis diagram. Each epoch can then be matched to a corresponding expected mortality rate.

Incorporation of background mortality into survival models

Incorporating background mortality into survival models directly is recommended as it helps avoid extremely implausible projections (Rutherford et al. (2020)). This can be done using an excess mortality / relative survival model where population based ‘expected’ rates, often from life tables, are introduced to explain background mortality. The concept behind these models is to partition the all-cause mortality into excess mortality caused by the disease of interest and that due to other causes. A parametric model can then be applied to the isolated excess mortality. This may be particularly useful when making long-term extrapolations as the pattern of disease-specific mortality and other cause mortality are likely to be very different over time. Alternatively, if cause of death information is available and reliable, a separate cause-specific model can be fitted to the disease-specific mortality and other cause mortality.

The all-cause mortality rate at time \(t\) for individual \(i\) can be partitioned into two constituent parts: \[\begin{equation} h_i(t) = h^*_i(t) + \lambda_i(t) \end{equation}\] where \(h_i(t)\) is the all-cause mortality rate (hazard), \(h^*_i(t)\) is the expected or background mortality rate and \(\lambda_i(t)\) is the excess mortality rate. Equivalently, the hazard rates can be transformed to the survival scale which gives the all-cause survival at time \(t\) as the product of the expected survival and the relative survival: \[\begin{equation} S_i(t) = S^*_i(t) R_i(t) \end{equation}\] The relative survival, \(R_i(t)\), is therefore the ratio of all-cause survival and the expected survival in the background population. Typically, \(h_i^*(t)\) (and hence \(S_i^*(t)\)) are obtained from population lifetables. The expected mortality rates are assumed to be fixed and known and a parametric model is then used to estimate the relative survival (or equivalently excess hazard).

standsurv

standsurv is a post-estimation command that takes a flexsurv regression and calculates standardized survival measures and contrasts. Expected mortality rates and survival can also be obtained. The main features of the command are that it enables the calculation and plotting over any specified follow-up times of

  1. Marginal survival, hazard and restricted mean survival time (RMST) metrics
  2. Marginal expected (population) survival and hazard functions matched to the study population
  3. Marginal all-cause survival and all-cause hazard after fitting relative survival models
  4. Contrasts in survival, hazard and RMST metrics (e.g. marginal hazard ratio, differences in marginal RMST)
  5. Confidence intervals and standard errors for all measures and contrasts using either the delta method or bootstrapping

Through a simple syntax the user can specify the groups that they wish to calculate the marginal metrics. These groups can be formed by any combination of covariate values.

A worked example: the pbc dataset

For this example we will use data from the German Breast Cancer Study Group 1984-1989, which is the R dataset bc found in the flexsurv package. This dataset has death, or censoring times for 686 primary node positive breast cancer patients together with a 3-level prognostic group variable with levels “Goodâ€, “Medium†and “Poorâ€. For this demonstration we collapse the prognostic variable into 2 levels: “Good†and “Medium/Poorâ€. We also create some artificial ages and diagnosis dates for the patients, along with assuming all patients are female. We allow a correlation between the age at diagnosis for a patient and their survival time so that age is a prognostic variable. The mean age is 65 with a standard deviation of 5. We load this dataset and create these additional variables.

library(flexsurv)
library(flexsurvcure)
library(ggplot2)
library(dplyr)
library(survminer)
data(bc)
set.seed(236236)
## Age at diagnosis is correlated with survival time. A longer survival time 
## gives a younger mean age
bc$age <- rnorm(dim(bc)[1], mean = 65 - scale(bc$recyrs, scale=F), sd = 5)
## Create age at diagnosis in days - used later for matching to expected rates
bc$agedays <- floor(bc$age * 365.25)
## Create some random diagnosis dates between 01/01/1984 and 31/12/1989
bc$diag <- as.Date(floor(runif(dim(bc)[1], as.Date("01/01/1984", "%d/%m/%Y"), 
                               as.Date("31/12/1989", "%d/%m/%Y"))), 
                   origin="1970-01-01")
## Create sex (assume all are female)
bc$sex <- factor("female")
## 2-level prognostic variable
bc$group2 <- ifelse(bc$group=="Good", "Good", "Medium/Poor")
head(bc)
#>   censrec rectime group   recyrs      age agedays       diag    sex group2
#> 1       0    1342  Good 3.676712 64.38839   23517 1986-09-15 female   Good
#> 2       0    1578  Good 4.323288 67.31488   24586 1986-08-12 female   Good
#> 3       0    1760  Good 4.821918 61.77993   22565 1985-11-10 female   Good
#> 4       0    1152  Good 3.156164 65.20415   23815 1987-02-28 female   Good
#> 5       0     967  Good 2.649315 68.74975   25110 1986-05-18 female   Good
#> 6       0     629  Good 1.723288 64.53328   23570 1987-03-07 female   Good

A plot of the Kaplan-Meier shows a clear separation in the survival curves between the two prognostic groups.

km <- survfit(Surv(recyrs, censrec)~group2, data=bc)
kmsurvplot <- ggsurvplot(km) 
kmsurvplot + xlab("Time from diagnosis (years)")

A stratified Weibull model

We start by fitting a Weibull model to each group separately. One way to do this is to fit a single saturated model whereby group affects both the scale and shape parameters of the Weibull distribution. This effectively means we have a separate scale and shape parameter for each group, which is equivalent to fitting two separate models. Such a model does not make a proportional hazards assumption and hence the hazard ratio will change over time. The saturated model approach has advantages as we can use the model to easily investigate treatment effects using standsurv as we shall see later. Including group in the main formula of flexsurvreg allows group to affect the scale parameter of the Weibull distribution whilst we use the anc argument in flexsurvreg to additionally allow group to affect the shape parameter.

model.weibull.sep <- flexsurvreg(Surv(recyrs, censrec)~group2, 
                                 anc = list(shape = ~ group2), 
                                 data=bc, dist="weibullPH")
model.weibull.sep
#> Call:
#> flexsurvreg(formula = Surv(recyrs, censrec) ~ group2, anc = list(shape = ~group2), 
#>     data = bc, dist = "weibullPH")
#> 
#> Estimates: 
#>                           data mean  est       L95%      U95%      se      
#> shape                           NA    1.68681   1.32989   2.13952   0.20461
#> scale                           NA    0.02187   0.01119   0.04274   0.00748
#> group2Medium/Poor          0.66618    1.84846   1.14534   2.55157   0.35874
#> shape(group2Medium/Poor)   0.66618   -0.28237  -0.54219  -0.02254   0.13257
#>                           exp(est)  L95%      U95%    
#> shape                           NA        NA        NA
#> scale                           NA        NA        NA
#> group2Medium/Poor          6.35001   3.14351  12.82725
#> shape(group2Medium/Poor)   0.75400   0.58147   0.97771
#> 
#> N = 686,  Events: 299,  Censored: 387
#> Total time at risk: 2113.425
#> Log-likelihood = -830.4043, df = 4
#> AIC = 1668.809

Given that the model only contains group2 and no other covariates we can obtain the predicted (fitted) survival for each of the two groups using the summary function and storing these predictions in a tidy data.frame with the argument tidy=T.

predictions <- summary(model.weibull.sep, type = "survival", tidy=T)
ggplot() + geom_line(aes(x=time, y=est, color = group2), data=predictions) + 
  geom_step(aes(x=time, y=surv, group=strata), data=kmsurvplot$data.survplot)

The Weibull model does not appear to fit the data very well and so we should try other parametric distributions. However, for illustration purposes we shall continue using the Weibull model. We will now show that the same predictions can be obtained from standsurv but with the benefit of addition flexibility.

Using standsurv to calculate marginal survival

standsurv works similarly to the margins command in R and standsurv in Stata by allowing the user to specify a list of scenarios in which specific covariates are fixed to certain values. This is done using the at argument of standsurv to provide the list of scenarios where each scenario is itself a list containing covariates that are to be fixed. In our worked example the two scenarios are list(group2 = "Good") and list(group2 = "Medium/Poor"). Any covariates not specified in the at scenarios are averaged over, hence creating marginal, or standardized, estimates of the metric of interest. In the example above, there are no other covariates in the model so we will get the same answer as obtained from summary. But the later worked example extends this to models containing other covariates. The default is to calculate survival probabilities at the event times in the data but this can be changed with the type and t arguments, respectively. The returned object is a tidy data.frame with columns named at1 up to atn for the n scenarios specified in the at argument.

ss.weibull.sep.surv <- standsurv(model.weibull.sep,
                                             type = "survival",
                                             at = list(list(group2 = "Good"),
                                                       list(group2 = "Medium/Poor")))
ss.weibull.sep.surv
#> # A tibble: 574 × 3
#>      time   at1   at2
#>     <dbl> <dbl> <dbl>
#>  1 0.0219 1.00  0.999
#>  2 0.0411 1.00  0.998
#>  3 0.0438 1.00  0.997
#>  4 0.0466 1.00  0.997
#>  5 0.0493 1.00  0.997
#>  6 0.0795 1.00  0.994
#>  7 0.115  0.999 0.991
#>  8 0.126  0.999 0.990
#>  9 0.156  0.999 0.987
#> 10 0.173  0.999 0.985
#> # ℹ 564 more rows

Further details such as labels for the at scenarios are stored in attributes of the standsurv object. These are utilised by the plot function. A plot of the marginal estimates can be easily produced using the plot function, which produces a ggplot object.

plot(ss.weibull.sep.surv)

The plot can be easily further manipulated, for example by changing axis labels and adding further plots.

plot(ss.weibull.sep.surv) + xlab("Time since diagnosis (years)") +
  geom_step(aes(x=time, y=surv, group=strata), data=kmsurvplot$data.survplot)

Other metrics: marginal hazards and marginal RMST

We can use the type argument to calculate marginal hazards or restricted mean survival time (RMST). For example a plot of the hazard functions for the two groups is obtained as follows:

ss.weibull.sep.haz <- standsurv(model.weibull.sep,
                                            type = "hazard",
                                            at = list(list(group2 = "Good"),
                                                      list(group2 = "Medium/Poor")))
plot(ss.weibull.sep.haz) + xlab("Time since diagnosis (years)")

Whilst a plot of RMST is given by

ss.weibull.sep.rmst <- standsurv(model.weibull.sep,
                                             type = "rmst",
                                             at = list(list(group2 = "Good"),
                                                       list(group2 = "Medium/Poor")))
plot(ss.weibull.sep.rmst) + xlab("Time since diagnosis (years)")

Calculating contrasts

The advantage of fitting a saturated model now becomes clear as we can calculate contrasts between our at scenarios. Suppose we are interested in the difference in the survival functions between the two groups. This is easily calculated using the contrast = "difference" argument, and a plot of the contrast can be obtained using contrast = TRUE argument in the plot function.

ss.weibull.sep.3 <- standsurv(model.weibull.sep,
                                          type = "survival",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                          contrast = "difference")
plot(ss.weibull.sep.3, contrast=TRUE) + xlab("Time since diagnosis (years)") +
  ylab("Difference in survival probabilities")  + geom_hline(yintercept = 0)

Alternatively, we may wish to visualise the implied hazard ratio from fitting separate Weibull models to the two groups. In the breast cancer example we see that the hazard ratio (treatment effect) starts very high before decreasing, suggesting that those with Medium/Poor prognosis start with a high elevated risk but have a continued excess risk up to the end of follow-up, compared to those with Good prognosis.

ss.weibull.sep.4 <- standsurv(model.weibull.sep,
                                          type = "hazard",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                          contrast = "ratio")
plot(ss.weibull.sep.4, contrast=TRUE) + xlab("Time since diagnosis (years)") +
  ylab("Hazard ratio") + geom_hline(yintercept = 1)

Confidence intervals and standard errors

Confidence intervals and standard errors for both the metric of interest and contrasts can be obtained either through bootstrapping or using the delta method. Bootstrap confidence intervals are calculated by specifying ci = TRUE, boot = TRUE, and providing the number of bootstrap samples using B. We can also set the seed using the seed argument to allow reproducibility.

If instead the delta method is to be used to obtain confidence intervals then we specify ci = TRUE, boot = FALSE. The delta method obtains confidence intervals by calculating standard errors for a given transformation of the metric of interest and then assuming normality. The default is to use a log transformation; hence if type = "survival" the confidence intervals are symmetric for the log survival probabilities. Alternative transformations can be specified using the trans argument.

The code below shows confidence intervals for marginal survival calculated through a bootstrap method (with B = 100) compared to a delta method. For computational efficiency here we only predict for 10 time points.

ss.weibull.sep.boot <- standsurv(model.weibull.sep,
                                          type = "survival",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                          t = seq(0,7,length=10),
                                          ci = TRUE,
                                          boot = TRUE,
                                          B = 100,
                                          seed = 2367)
#> Calculating bootstrap standard errors / confidence intervals

ss.weibull.sep.deltam <- standsurv(model.weibull.sep,
                                          type = "survival",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                          t = seq(0,7,length=10),
                                          ci = TRUE,
                                          boot = FALSE)
#> Calculating standard errors / confidence intervals using delta method

plot(ss.weibull.sep.boot, ci = TRUE) +  
  geom_ribbon(aes(x=time, ymin=survival_lci, ymax=survival_uci, color=at, linetype = "Delta method"), fill=NA,
              data=attr(ss.weibull.sep.deltam,"standpred_at")) +
  scale_linetype_manual(values = c("Bootstrap" = "solid", "Delta method"= "dashed")) +
  ggtitle("Comparison of bootstrap and delta method confidence intervals")
#> Scale for linetype is already present.
#> Adding another scale for linetype, which will replace the existing scale.

Adding age as a covariate

Suppose age has been added as a covariate to the survival model. If age is not included in our at scenarios standsurv will by default produce standardized estimates of survival averaged over the age distribution in our study population. Alternatively we could pass a new prediction dataset to standsurv and obtain standardized estimates for this population. As an example, we obtain marginal survival estimates after fitting a stratified Weibull model, firstly standardized to the age-distribution of our study population and secondly standardized to an older population with mean age of 75 and standard deviation 5.

model.weibull.age.sep <- flexsurvreg(Surv(recyrs, censrec)~group2 + age, 
                                 anc = list(shape = ~ group2 + age), 
                                 data=bc, dist="weibullPH")

## Marginal survival standardized to age distribution of study population
ss.weibull.age.sep.surv <- standsurv(model.weibull.age.sep,
                                             type = "survival",
                                             at = list(list(group2 = "Good"),
                                                       list(group2 = "Medium/Poor")),
                                             t = seq(0,7,length=50)
)

## Marginal survival standardized to an older population
# create a new prediction dataset as a copy of the bc data but whose ages are drawn from
# a normal distribution with mean age 75, sd 5.
newpred.data <- bc
set.seed(247)
newpred.data$age = rnorm(dim(bc)[1], 75, 5)
ss.weibull.age2.sep.surv <- standsurv(model.weibull.age.sep,
                                             type = "survival",
                                             at = list(list(group2 = "Good"),
                                                       list(group2 = "Medium/Poor")),
                                             t = seq(0,7,length=50),
                                             newdata=newpred.data)

## Overlay both marginal survival curves
plot(ss.weibull.age.sep.surv) + 
  geom_line(aes(x=time, y=survival, color=at, linetype = "Older population"),
            data = attr(ss.weibull.age2.sep.surv, "standpred_at") ) +
  scale_linetype_manual(values = c("Study" = "solid", "Older population"= "dashed"))
#> Scale for linetype is already present.
#> Adding another scale for linetype, which will replace the existing scale.

Calculating expected survival and hazard in standsurv

To overlay marginal expected survival or hazard curves we require a lifetable of population hazard rates. To demonstrate we use the US lifetable that comes with the survival package, called survexp.us. Other lifetables can be obtained directly from the Human Mortality Database (HMD) using the HMDHFDplus package.

The survexp.us lifetable is a ratetable object with stratification factors age, sex and year. It gives rates of mortality per person-day for combinations of the stratification factors. A summary of the survexp.us object shows that the time-scale is in days.

summary(survexp.us)
#>  Rate table with 3 dimensions:
#>  age ranges from 0 to 39812.25; with 110 categories
#>  sex has levels of: male female
#>  year ranges from 1940-01-01 to 2020-01-01; with 81 categories

To use the lifetable to get expected rates for our trial population we need to match age, sex and year variables in our dataset to those in the ratetable. We can use the rmap argument to do this. standsurv utilises the survexp function in the survival package to calculate expected survival over the times specified in t using the ‘exact’ method of Ederer. We note that sex in our data is coded the same as in the ratetable (“male†and “femaleâ€) and importantly that we have variables that record both age at diagnosis and diagnosis date in days. It is important that the user ensures that the study data are correctly coded and have variables on the same timescale as in the ratetable so that matching is successful. The code below demonstrates that for our data we therefore need to match the year variable in the ratetable to the diag variable in our study data, and the age variable in the ratetable to the agedays variable in our study data.

We need to specify three more arguments in standsurv. First, the lifetable, which must be a ratetable object and is specified using the ratetable argument. Second, we may need to pass our trial dataset to standsurv if the stratifying factors do not appear as covariates in the flexsurv model. Finally, we need to be careful to tell standsurv what the time scale transformation is between the fitted flexsurv model and the time scale in ratetable. We can use the scale.ratetable argument to do this. Typically ratetable objects are expressed in days (e.g. rates per person-day). The default is therefore scale.ratetable = 365.25, which indicates that the survival model was fitted in years but the ratetable is in days.

After running standsurv we can plot the expected survival (or hazard) by using the argument expected = TRUE in the plot() function.

ss.weibull.sep.expected <- standsurv(model.weibull.sep,
                                                 type = "survival",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                                 t = seq(0,7,length=50),
                                                 rmap=list(sex = sex,
                                                           year = diag,
                                                           age = agedays
                                                 ),
                                                 ratetable = survexp.us,
                                                 scale.ratetable = 365.25,
                                                 newdata = bc
)
#> Calculating marginal expected survival and hazard
plot(ss.weibull.sep.expected, expected = T)

We can see that the marginal expected survival is much higher than the marginal (predicted) survival for our breast cancer population. We can also obtain the expected hazards:

ss.weibull.sep.expectedh <- standsurv(model.weibull.sep,
                                                 type = "hazard",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                                 t = seq(0,7,length=50),
                                                 rmap=list(sex = sex,
                                                           year = diag,
                                                           age = agedays
                                                 ),
                                                 ratetable = survexp.us,
                                                 scale.ratetable = 365.25,
                                                 newdata = bc
)
#> Calculating marginal expected survival and hazard
plot(ss.weibull.sep.expectedh, expected = T)

The hazard plot shows that our model is predicting an increasing hazard over time for the cancer population, which remains significantly higher than the expected hazard in the general population. The monotonically increasing hazard imposed by the Weibull distribution may be implausible and this may make us question the suitability of a Weibull model if we wish to extrapolate.

Incorporation of background mortality

A relative survival model can be fitted using flexsurv by incorporating background mortality rates. The model then estimates excess hazard rates and relative survival measures. For prediction purposes, following the fitting of a relative survival model, standsurv allows the user to either obtain marginal predictions of relative survival / excess hazard or of all-cause survival / all-cause hazard. The latter are calculated by multiplying relative survival estimates with expected survival to get all-cause survival, or by adding excess hazard rates to expected hazard to get all-cause hazard.

We demonstrate this by fitting a relative survival cure model to the breast cancer data and obtaining predicted all-cause survival and all-cause hazard up to 30-years after diagnosis. A mixture cure model makes the assumption that a proportion of the study population will never experience the event. In a relative survival framework the cure model assumes that the excess mortality rate approaches zero (or equivalently the relative survival reaches an asymptote determined by the cure fraction). We fit a relative survival cure model with a Weibull distribution assumed for the uncured.

The relative survival mixture-cure model is fitted below. We must pass to flexsurvcure the expected hazard rates at the event / censoring time for each individual, as it is the expected rates at the event times that are used in the likelihood function for a parametric relative survival model. For this we need to initally do some data wrangling. Firstly, we calculate attained age and attained year (in whole years) at the event time for all study subjects. Secondly, we join the data with the expected rates using the matching variables attained age, attained year and sex. In the example, we express the expected rate as per person-year as this is the timescale used in the flexsurv regression model.

## reshape US lifetable to be a tidy data.frame, and convert rates to per person-year as flexsurv regression is in years
survexp.us.df <- as.data.frame.table(survexp.us, responseName = "exprate") %>%
  mutate(exprate = 365.25 * exprate)
survexp.us.df$age <- as.numeric(as.character(survexp.us.df$age))
survexp.us.df$year <- as.numeric(as.character(survexp.us.df$year))

## Obtain attained age and attained calendar year in (whole) years
bc <- bc %>% mutate(attained.age.yr = floor(age + recyrs),
                    attained.year = lubridate::year(diag + rectime))

## merge in (left join) expected rates at event time
bc <- bc %>% left_join(survexp.us.df, by = c("attained.age.yr"="age", 
                                        "attained.year"="year", 
                                        "sex"="sex")) 

# A stratified relative survival mixture-cure model
model.weibull.sep.rs <- flexsurvcure(Surv(recyrs, censrec)~group2, 
                                 anc = list(shape = ~ group2,
                                            scale = ~ group2), 
                                 data=bc, dist="weibullPH",
                                 bhazard=exprate)

model.weibull.sep.rs
#> Call:
#> flexsurvcure(formula = Surv(recyrs, censrec) ~ group2, data = bc, 
#>     bhazard = exprate, dist = "weibullPH", anc = list(shape = ~group2, 
#>         scale = ~group2))
#> 
#> Estimates: 
#>                           data mean  est       L95%      U95%      se      
#> theta                           NA    0.73277   0.60988   0.82787        NA
#> shape                           NA    2.62590   1.88756   3.65306   0.44231
#> scale                           NA    0.02973   0.00993   0.08896   0.01663
#> group2Medium/Poor          0.66618   -1.76733  -2.48411  -1.05055   0.36571
#> shape(group2Medium/Poor)   0.66618   -0.52951  -0.88563  -0.17340   0.18170
#> scale(group2Medium/Poor)   0.66618    1.81159   0.68352   2.93965   0.57555
#>                           exp(est)  L95%      U95%    
#> theta                           NA        NA        NA
#> shape                           NA        NA        NA
#> scale                           NA        NA        NA
#> group2Medium/Poor          0.17079   0.08340   0.34974
#> shape(group2Medium/Poor)   0.58889   0.41245   0.84080
#> scale(group2Medium/Poor)   6.12014   1.98084  18.90922
#> 
#> N = 686,  Events: 299,  Censored: 387
#> Total time at risk: 2113.425
#> Log-likelihood = -784.3236, df = 6
#> AIC = 1580.647

We can now use standsurv to obtain all-cause survival and hazard predictions using type = "survival" and type = "hazard". If instead we had wanted predictions of relative survival or excess hazards we would use type = "relsurvival" and type = "excesshazard", respectively.

## All-cause survival
ss.weibull.sep.rs.surv <- standsurv(model.weibull.sep.rs,
                                                 type = "survival",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                                 t = seq(0,30,length=50),
                                                 rmap=list(sex = sex,
                                                           year = diag,
                                                           age = agedays
                                                 ),
                                                 ratetable = survexp.us,
                                                 scale.ratetable = 365.25,
                                                 newdata = bc
)
#> Marginal all-cause survival will be calculated
#> Calculating marginal expected survival and hazard
plot(ss.weibull.sep.rs.surv, expected = T)


# All-cause hazard
ss.weibull.sep.rs.haz <- standsurv(model.weibull.sep.rs,
                                                 type = "hazard",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                                 t = seq(0,30,length=50),
                                                 rmap=list(sex = sex,
                                                           year = diag,
                                                           age = agedays
                                                 ),
                                                 ratetable = survexp.us,
                                                 scale.ratetable = 365.25,
                                                 newdata = bc
)
#> Marginal all-cause hazard will be calculated
#> Calculating marginal expected survival and hazard
plot(ss.weibull.sep.rs.haz, expected = T)

The marginal excess hazard is now unimodal since the cure model is forcing the initially increasing excess hazard to tend to zero in the long-term where only ‘cured’ subjects remain. The marginal all-cause hazard tends to the expected hazard and follows it thereafter.

A plot of the excess hazard confirms this.

# Excess hazard
ss.weibull.sep.rs.excesshaz <- standsurv(model.weibull.sep.rs,
                                                 type = "excesshazard",
                                                 at = list(list(group2 = "Good"),
                                                           list(group2 = "Medium/Poor")),
                                                 t = seq(0,30,length=50),
                                                 rmap=list(sex = sex,
                                                           year = diag,
                                                           age = agedays
                                                 ),
                                                 ratetable = survexp.us,
                                                 scale.ratetable = 365.25,
                                                 newdata = bc
)
#> Calculating marginal expected survival and hazard
plot(ss.weibull.sep.rs.excesshaz)

Conclusions

standsurv is a powerful post-estimation command that allows easy calculation of a number of useful prediction metrics. Contrasts can be made between any counterfactual populations of interest and, through regression standardisation, allows the targeting of marginal estimands. Confidence intervals, via the delta method or bootstrapping, are available and benchmarking against or incorporating background mortality rates is also supported.

References

Ederer, F., L. M. Axtell, and S. J. Cutler. 1961. “The Relative Survival Rate: A Statistical Methodology.†National Cancer Institute Monograph 6 (September): 101–21.
Rutherford, Mark J, Paul C Lambert, Michael J Sweeting, Becky Pennington, Michael J Crowther, Keith R Abrams, and Nicholas R. Latimer. 2020. “NICE DSU Technical Support Document 21: Flexible Methods for Survival Analysis.â€
Syriopoulou, Elisavet, Mark J. Rutherford, and Paul C. Lambert. 2021. “Inverse Probability Weighting and Doubly Robust Standardization in the Relative Survival Framework.†Statistics in Medicine 40 (27): 6069–92. https://onlinelibrary.wiley.com/doi/abs/10.1002/sim.9171.
Therneau, Terry M. 1999. “A Package for Survival Analysis in S.†https://www.mayo.edu/research/documents/tr53pdf/doc-10027379.
flexsurv/inst/doc/flexsurv-examples.Rnw0000644000176200001440000002630214144502574020045 0ustar liggesusers%\VignetteIndexEntry{Supplementary examples of using flexsurv} \documentclass[nojss,nofooter]{jss} \usepackage{bm} \usepackage{tabularx} \usepackage{graphics} \author{Christopher H. Jackson \\ MRC Biostatistics Unit, Cambridge, UK \\ \email{chris.jackson@mrc-bsu.cam.ac.uk}} \title{flexsurv: flexible parametric survival modelling in R. Supplementary examples} \Plainauthor{Christopher Jackson, MRC Biostatistics Unit} \Abstract{ This vignette of examples supplements the main \pkg{flexsurv} user guide. } \Keywords{survival} \begin{document} \section{Examples of custom distributions} \subsection{Proportional hazards generalized gamma model} \citet{stgenreg} discuss using the \pkg{stgenreg} Stata package to construct a proportional hazards parameterisation of the three-parameter generalised gamma distribution. A similar trick can be used in \pkg{flexsurv}. A four-parameter custom distribution is created by defining its hazard (and cumulative hazard) functions. These are obtained by multiplying the built-in functions \code{hgengamma} and \code{Hgengamma} by an extra dummy parameter, which is used as the location parameter of the new distribution. The intercept of this parameter is fixed at 1 when calling \code{flexsurvreg}, so that the new model is no more complex than the generalized gamma AFT model \code{fs3}, but covariate effects on the dummy parameter are now interpreted as hazard ratios. <<>>= library(flexsurv) hgengammaPH <- function(x, dummy, mu=0, sigma=1, Q){ dummy * hgengamma(x=x, mu=mu, sigma=sigma, Q=Q) } HgengammaPH <- function(x, dummy, mu=0, sigma=1, Q){ dummy * Hgengamma(x=x, mu=mu, sigma=sigma, Q=Q) } custom.gengammaPH <- list(name="gengammaPH", pars=c("dummy","mu","sigma","Q"), location="dummy", transforms=c(log, identity, log, identity), inv.transforms=c(exp, identity, exp, identity), inits=function(t){ lt <- log(t[t>0]) c(1, mean(lt), sd(lt), 0) }) fs7 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist=custom.gengammaPH, fixedpars=1) @ \section{Examples of custom model summaries} \subsection{Plotting a hazard ratio against time} The following code plots the hazard ratio (Medium versus Good prognostic group) against time for both the proportional hazards model \code{fs7} and the better-fitting accelerated failure time model \code{fs2}. It illustrates the use of the following functions. \begin{description} \item[\code{summary.flexsurvreg}] for generating the estimated hazard at a series of times, for particular covariate categories. \item[\code{normboot.flexsurvreg}] for generating a bootstrap-style sample from the sampling distribution of the parameter estimates, for particular covariate categories. \item[\code{do.call}] for constructing a function call by supplying a list containing the function's arguments. This is used throughout the source of \pkg{flexsurv}. \end{description} <>= fs2 <- flexsurvreg(Surv(recyrs, censrec) ~ group + sigma(group), data=bc, dist="gengamma") B <- 5000 t <- seq(0.1, 8, by=0.1) hrAFT.est <- summary(fs2, t=t, type="hazard", newdata=data.frame(group="Medium"),ci=FALSE)[[1]][,"est"] / summary(fs2, t=t, type="hazard", newdata=data.frame(group="Good"),ci=FALSE)[[1]][,"est"] pars <- normboot.flexsurvreg(fs2, B=B, newdata=data.frame(group=c("Good","Medium"))) hrAFT <- matrix(nrow=B, ncol=length(t)) for (i in seq_along(t)){ haz.medium.rep <- do.call(hgengamma, c(list(t[i]), as.data.frame(pars[[2]]))) haz.good.rep <- do.call(hgengamma, c(list(t[i]), as.data.frame(pars[[1]]))) hrAFT[,i] <- haz.medium.rep / haz.good.rep } hrAFT <- apply(hrAFT, 2, quantile, c(0.025, 0.975)) hrPH.est <- summary(fs7, t=t, type="hazard", newdata=data.frame(group="Medium"),ci=FALSE)[[1]][,"est"] / summary(fs7, t=t, type="hazard", newdata=data.frame(group="Good"),ci=FALSE)[[1]][,"est"] pars <- normboot.flexsurvreg(fs7, B=B, newdata=data.frame(group=c("Good","Medium"))) hrPH <- matrix(nrow=B, ncol=length(t)) for (i in seq_along(t)){ haz.medium.rep <- do.call(hgengammaPH, c(list(t[i]), as.data.frame(pars[[2]]))) haz.good.rep <- do.call(hgengammaPH, c(list(t[i]), as.data.frame(pars[[1]]))) hrPH[,i] <- haz.medium.rep / haz.good.rep } hrPH <- apply(hrPH, 2, quantile, c(0.025, 0.975)) plot(t, hrAFT[1,], type="l", ylim=c(0, 10), col="red", xlab="Years", ylab="Hazard ratio (Medium / Good)", lwd=1, lty=2) lines(t, hrAFT[2,], col="red", lwd=1, lty=2) lines(t, hrPH[1,], col="darkgray", lwd=1, lty=2) lines(t, hrPH[2,], col="darkgray", lwd=1, lty=2) lines(t, hrAFT.est, col="red", lwd=2) lines(t, hrPH.est, col="darkgray", lwd=2) legend("topright", lwd=c(2,2), col=c("red","darkgray"), bty="n", c("Generalized gamma: standard AFT", "Generalized gamma: proportional hazards")) @ Since version 2.2 of \pkg{flexsurv}, however, the code above is obsolete, since the function \code{hr_flexsurvreg} can simply be used to calculate hazard ratios and their confidence intervals against time. <>= nd <- data.frame(group=c("Good","Medium")) hr_aft <- hr_flexsurvreg(fs2, t=t, newdata=nd) hr_ph <- hr_flexsurvreg(fs7, t=t, newdata=nd) plot(t, hr_aft$lcl, type="l", ylim=c(0, 10), col="red", xlab="Years", ylab="Hazard ratio (Medium / Good)", lwd=1, lty=2) lines(t, hr_aft$ucl, col="red", lwd=1, lty=2) lines(t, hr_aft$est, col="red", lwd=2) lines(t, hr_ph$lcl, col="darkgray", lwd=1, lty=2) lines(t, hr_ph$ucl, col="darkgray", lwd=1, lty=2) lines(t, hr_ph$est, col="darkgray", lwd=2) legend("topright", lwd=c(2,2), col=c("red","darkgray"), bty="n", c("Generalized gamma: standard AFT", "Generalized gamma: proportional hazards")) @ \subsection{Restricted mean survival} The expected survival up to time $t$, from a model with cumulative distribution $F(t|\alpha)$, is \[ E(T|T>= summary(fs2, type="rmst", t=100, tidy=TRUE) summary(fs2, fn=rmst_gengamma, t=100, tidy=TRUE) @ Or for the baseline category of "Good": <<>>= est <- fs2$res[,"est"] rmst_gengamma(t=100, mu=est[1], sigma=est[2], Q=est[3]) @ Note that the (unrestricted) median is more stable, and less than the restricted mean due to the skewness of this distribution. <<>>= summary(fs2, type="median") @ Note also that the custom function \code{fn} supplied to \code{summary.flexsurvreg} must be vectorised - previous versions of this example used an unvectorised custom function called \code{mean.gengamma} which will not work in version 2.2 or later. %\subsection{Custom summary functions with spline models} \section{Spline models} \subsection{Prognostic model for the German breast cancer data} The regression model III in \citet{sauerbrei1999building} used to create the prognostic group from the breast cancer data (supplied as \code{bc} in \pkg{flexsurv} and \code{GBSG2} in \pkg{TH.data}) can be reproduced as follows. Firstly, the required fractional polynomial transformations of the covariates are constructed. \code{progc} implements the Cox model used by \citet{sauerbrei1999building}, and \code{prog3} is a flexible fully-parametric alternative, implemented as a spline with three internal knots. The number of knots was chosen to minimise AIC. The covariate effects are very similar. After fitting the model, the prognostic index can then be derived from categorising observations in three groups according to the tertiles of the linear predictor in each model. The indices produced by the Cox model (\code{progc}) and the spline-based model (\code{progf}) agree exactly. <<>>= if (require("TH.data")){ GBSG2 <- transform(GBSG2, X1a=(age/50)^-2, X1b=(age/50)^-0.5, X4=tgrade %in% c("II","III"), X5=exp(-0.12*pnodes), X6=(progrec+1)^0.5 ) (progc <- coxph(Surv(time, cens) ~ horTh + X1a + X1b + X4 + X5 + X6, data=GBSG2)) (prog3 <- flexsurvspline(Surv(time, cens) ~ horTh + X1a + X1b + X4 + X5 + X6, k=3, data=GBSG2)) predc <- predict(progc, type="lp") progc <- cut(predc, quantile(predc, 0:3/3)) predf <- model.matrix(prog3) %*% prog3$res[-(1:5),"est"] progf <- cut(predf, quantile(predf, 0:3/3)) table(progc, progf) } @ \section{Right truncation: retrospective ascertainment} Suppose we want to estimate the distribution of the time from onset of a disease to death, but have only observed cases known to have died by the current date. In this case, times from onset to death for individuals in the data are \emph{right-truncated} by the current date minus the onset date. Predicted survival times for new cases can then be described by an un-truncated version of the fitted distribution. Denote the time from onset to death as the \emph{delay} time. This is illustrated in the following simulated example. Suppose individual onset times are uniformly distributed between 0 and 30 days. Their delay times are generated from a Gamma distribution. <<>>= set.seed(1) nsim <- 10000 onsetday <- runif(nsim, 0, 30) deathday <- onsetday + rgamma(nsim, shape=1.5, rate=1/10) @ The data are examined at 40 days. Therefore we do not observe people who have died after this time. For each individual in the observed data, their delay time is right-truncated by 40 days minus their onset day, since their delay times cannot be greater than this if they are included in the data. The right-truncation point is specified by the variable \code{rtrunc} in the data. <<>>= datt <- data.frame(delay = deathday - onsetday, event = rep(1, nsim), rtrunc = 40 - onsetday) datt <- datt[datt$delay < datt$rtrunc, ] @ The truncated Gamma model is fitted with \code{flexsurvreg} by specifying individual-specific truncation points in the argument \code{rtrunc}. The fitted model reproduces the gamma parameters that were used to simulate the data. After fitting the model, we can use the fitted model to predict the mean time to death - this is approximately the shape / rate of the untruncated gamma distribution. <<>>= fitt <- flexsurvreg(Surv(delay, event) ~ 1, data=datt, rtrunc = rtrunc, dist="gamma") fitt summary(fitt, t=1, fn = mean_gamma) @ \bibliography{flexsurv} \end{document} flexsurv/inst/doc/multistate.pdf0000644000176200001440000135752514660035012016557 0ustar liggesusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 6027 /Filter /FlateDecode /N 98 /First 802 >> stream xœí€¾…â6Cï«è¡Bæ3no%öÃb2À†šËêël>)ï@0|æÁ7€Í,:Eo2ƒ&*çߌ"ç±ÀΓ90f·Âî»Ø02Ø{0~²™FW¦C¹-ÚEë}ÀûãèV!ªÈ88ñÑ|8©ßN1-÷ÀóÀàûG¯_íÿðä`Ý=l…T0ÃRx~Ò Y…˜ßüÍȉ$ÓVcG!™SwÁîj>›•“‡—ÓY1»Kà#!Kn™‚à‘{û߀™’á’Bš‚ òÌ¡FÆŠ*˜Q«dÈö”ÂE¨T§… XסRêºÂE©T׸”ê´h”ê˜ÀÕuZ$Jõ€ L±ŽË)uŒæj|<-JÅ:®-ÔVÌßd<8*‘ùÛÝ=˜cùu¶ŒÜK2™Úˆ°ŒãÉ8”ŒXÉ8X²·Ò×fw±æ j;û5Ú¦{ÝU=~¿{ü󸪣W­(jÝÓ»°æªø&W¥¸ëuU6t»Î¿¾úð²J:¨Ž¨„¯»Õ5\yØŒ«ïÇÕwãúìÙëã·/¸îŒ‡§%‚µ1Õ7‹MÁõcêz0}}xôáy  Ž¾]žŒ‡ÓnÚê6Ê뇵`šoŒX”èÏ5lO®ñáàè×Ç/VîŒP·Á·aAȵÝþ\Äöä"ÇOùðë {TŒz»& ¾SÑÆt³~‰þ,Å®ýADT¯LÕ¸*éôÍ¢FÄüêøÅñîJ„o·ŠðMXW¨µ\XlL>•èÏlO„¿¿÷SóˆïÓ¯`²§Õ¸Û\™°¹2mÎo¶V¢?‰²+I@ÓåjLß".¨²zásÿÿÛô­øÆê»øÙüý›“ßQüpBû—‚)Q+ä2é©ýg=̳Éx~…oƒîèMuïþСÝòs5(Ÿí ŽÌ&ó’4ëÝìÁB|[ôöâü¦ø†ˆ .EŵEE%ñÞ‰(Hç4½*úÛAü&M&ã"f ËÚǦ@´•¿..Ë$ ‰!Rm‚ï_Âüv(´iÉ¡ê:ÓcÇï¿{¿wŒáÅq{‘¦C ÚæïºøBôǦÇR?{óáxçÅ;kÉùzÄãÛk×$çJôGfeÝèɤ,pYrÂrvo÷¡äBs/´ÐF óÿâü_÷S?ÀäÞ»ò=\ŒO¯{âí»§ï³½ùpxRŒF%>yQMü»:= ÿË~D Ff*ƒ‡MöÈ4ÏÀxAŽË~Ñثê3-쓪ývŸ}ºS7- ö9=o2µû$;§óŽG¨ÁÝ'ù¿º*!&Ú+†Óå ¯ùì¦ôãYyv>DqH\9w0œ ð ×P庀kÈ,Þ?‰íúÛòÑ5äÓëä«ÇÒi€ëÜ£îu‡ADÂÊÔÑ@jÓ_H™ˆ¤BdKø5ng ‘ïcüï‡Ç“ª¼ÛÒ˜5¹4M±„£6%³?jü7søþb1éhŽ¥¿ºŽ¿BR¬c×èS·/S é­gà€Ï“âêyY_Ìðµ•C¢Ä›$­‹s0ª+æíËö÷6@ZéâcÉÐíUÃR‚kJǦhÍÚd‹ÁÃãÑù°DÂÍÊË_(ŽZN¼AÈž×Q˜,?\^Üi™A¡K©¡wÒ©Lù,þnû£N(MZžK¡¿LµL¡ªL L‘ŒL®W&÷¸’WÖžíy¥XY‚lºÂÝêì¬D/§ôê—å§åpV`‘Ï.J¨á:ö°¸<9-0ί*tƒ9Ä¢ÕìÄ`|yY@‡r:eùtXL/X~Ž: Tâå;¸Æ™ïáJq¤¶/ñõG~@\~ËòŸ×¨o¸Ø›¿Ç9=¡÷ø9ŒHŸ1ò‚¾bùï, Y~Éò„‹àþ`9q€¨ÉœåŸ£/úÊòoHš8ñ…߆É`:ÿüýçÿ>íµÖ™¦š4)Ãÿïÿ5è"Lg]£0, À"ãpZžÅЮÀ²S2ÝUiYŠ(¹’ ®Ž‚ÐO&Å –g³êüœTk:ÝD§;Ãh<¿"×9‹4žOŠ!]¡Ö-:ŸVÓ«añmÑ¿¾îÑ"ÏMf;JY|ýã…ÈD]‚ À?ðM™»¦ôÞga«2õO°cЈ±ôJe ºÐc'cÕØ$LüÙtÅéÒkˆµ¯šº&* ¼+‚ÅMnˆ÷²f‡©a ò’^aKðwF€ÝÄVŸƒkÐ'íV^à48è@[š¦4ŽCh a:ÜÁTÂí[¯ RÌ©H-29 ÏpO"‡¸Úl†;ÈpÃC¦VJ!%!ýáºu˜þZ"®è\9G|9Þs„®Æ}N ÉkÉõ¢ªÄÙœ¼³ qÂC§Æ¡.P̆ºªŠjð]èÕp>ŃùŸådÌòñzöeŒÎnR–¸^‘Ÿa(ïDË?æÅ09)R…’ßIî…ÖþþìSŽÈØ.,ááËj¸À€‚7~ý» ¤¦˜LÆ_"Îçå Õ—èØ!!ÉGå9iitµÑ·Òò²¿aRu’Â908'uöé0ñXB@!RÝ€T¨Žú6%ŒF|¢ÇnúðV ÓOÿæØ«wV]m³%:–’`ndÝä8êf,£Uˆe Ð8"Aeìr “:•Í)Ä‘½F½¶A£Ã`¤ :Gý7Ç*Ði®QãphGÎq‚«P= íE4¼EõÃBMfÉ¢ênÑààF?2JŽÌS4R±éÒZm›¬§GnöØ@©èn­Ç[¶4:/¯›Î ³«Ä ·Ô³Ç[ÉÄ2ö ©’LeÉ8š dÁàâr4ÁΡq5’z 4ü& Ùô$>†JáX >S9ÚGÜÁâdy\Aˆ‚Å…‡Èû"Ühn eðq(kIj¥¾Öÿ6Ic¶õ²¦¾"ÅréïÀÖÓ_t äýLƒöX*òšr!xÛþÉŒ¦GËÄÜ&µ62Ë*TωAH)ç‘.ØOYÄÙì‘Ø‰›Ÿ‰Ú'¶Ñ³ ºB® p˜>mKG1“‹áM-‹²F²1åæ$hz,ÆͺâX_öHŒ­r #"Hø(³ÍðdùŒí$«Çý| 67寗¤a µÑ-k+Üþ/•{I°k’`·—„åú$aÁF½Á?j]áêš$$ûµè{¨€NF‚Ò¸'ëÿIÿ¾´ 0-1DÐÖÑž|ꀴrêhìñÈ & Vâ¶`o+ðit ‚BpTA5…ŠBpCñv ÿc1”ÐBaÊà½\@ˆRbƒ\ ¤VbXËf\v—² ³/`54Ðú˜Ê‡}Jºsès­“~9t«U^Óœ (2´‡¨º”ZQC ¡8Ú)2¦”r_†€&]º§: 4Š#ó" égZïå*Ý´‚™Xr³†ÒM‹ƒm‰'˜ÁÉ.S$B|G3åH>0õB˜JÄäASP c™xÜøOðÉS@ª)J9KI×L nUûnœlò°ÉÉåò†™áq0GØY¢A@ûd’†äÝx h8Q,èÔrD˜'f‰ÈwlCÊÅpÜDã³4x×JzÖZº+H<{<‡2aiÞ­ˆ‘Š5 }KGÕs…Á^ô=:Ü‹²ê”'S”Ö[Z†@šj(6¥Ø?¦3ä’‚‹ rÞÅ9ipH¤ÙÎP?’@ã‘îÖcHÙ@œ@ŠÒ :ƒeÓuÇrIMnÑHŠ$Ú ­"®Ú’çÂã y.ñQÅ%ð…±x1ˆ™Qk<-à‰’^®(µ¤Û-jrrÐŽxݶ0$%‚$ƒ×1%OFÁ°÷¨->ú<Ž8+—1¢³ï.¥-rȦql*Sn¤5öäIãF=EŒì);KuŸúhîi„¼pÌw•‰Þ=BÛ„é6e‚Ù(ãXÍ>±%æŽSçl0G¡„4†Kdc?åcô€4 ?!QÁ¢.!ŃžO#HÔîÈ¡4BìI%.ƒ…•KÉL“®Mª4ç[gÄ·ÅU¢÷¢­ù ¶FÎE%ÉiÐ…àQry•¤GÕOÛh½)¬ÔDØäÐ7b±Çåhþ‰Êÿ‰Ê—Qy,—2A†x™ôÝFÄšÓ¢PjMÌhñœGr7…d±¡ÿVA‹xô Z´Ûdá’¨‘EŠ+;‘ÂÞ’‡%;(Šˆ³MQå…®Hj5gb F°ˆŽb—8ªà‘&™Q àHàœK÷ÆÉH2BÃÛèc­]«G;÷<л…ÎMùûDL wkãÆµÕ*µwVè½™¿jQýçü—ü×í‡@«6ÊËÓbz‘—#ú~à¿j3[~ïaLýj¦ñf¹…³irm<+OO†Ô±¾ˆ}é*V¯gé·1Uóš© =XE9£NW„QèÒ¿Ü ­R(mŠ /ã¹mÖÒˆþCÅßѯ\O"Å­gmÈãH˜u Y·NµF÷~ߥsÒÎÞ] èr1é·[N ³<Ô,p!ŒnMl-’î=mÛ=±[,ƒlNöÀ,÷TâNÈ¥‡m쓌;2W·X~ÔB­ÅÄ×ïþ޹ÆfʬХ¹µÞti²¥›¹Æà§Np?TX¥‚^ ¯93ÞG„›Èý«ê²¢9÷vǃG³bqн£ú{qÙÁ|8«Ðñ!v9û?ÄM±ó)–é³hSüìËÇx³ )ß¹·˜a7‘vìlj ©G=$ÏÞ|.'Ÿ«ò õOŸ­ZÜ1óiù`zUª³jÀ.Š?‹Éé4j³ýÔÄâû™‰féëC!zk‘>Ì Òg£D:ó.ÒWD:­ÿ±Ø}›[Ï$xq<­Üf¸ÓùÉâKq™mÀ‘€Þaå€kd^H&÷ÍU9zL2•úåoæ3 ®S<&u€GñòŸ§åâvú¢Rë3KO ÖñâøÆõ&އ#÷ð|"Þß|îRŸSÎŒ°é:Á&˜5|‘~›c¦óõ¡Mc"\ê£;jJ<¨i!oR¦ã æ½Wž?ýRÍ.d¼ådRžÁí—å·/cΚðu8Ö`‰‡<íÀ5ÓÄþ4çÔFÏ©åü»àÝVMßÓÄÓ ÒÆÅ~MþE¾ê:¨üüóîjendstream endobj 100 0 obj << /Filter /FlateDecode /Length 3311 >> stream xÚ¥ZIsÛF¾ëW r"«Ât£±tæ”xâL–Ùbådç’ȱH0eÅ©ùñó¶^B²§¦T€î×Û[¾·´òì>˳ïnòÉó›Û›?½®šL×ÊèÒf·w™Óª©uV­´uÙí6{»x½Ô‹øí~‡?{ø]cC·\…Yœà½=ãŸC/g¡Ù`w±8,M½x” .رð­½ÈøC¿\ÉçG²„ß{žã ¿/;¦—ë q/NŒ ~XþzûE+W–ûW…-³•5ª²ŸåÕN†ìi=n×QMÿWÅÏðDÜü{\¨?ò E‘é\¹Üi\aU”*/šl¥ Uzný èƯx÷ßàî{9´޾ð}CD÷ËQ:/_ò^Sq¦µg*r龓þ_~Ä=Ý|{{óÛyæ™ÎU…S¹Ë6‡›·¿æÙšÈrU¸&{"¢Cf-’?donþõ¬J8å*Sá!McTQÕY¥+U×–ù5jÁàåÝn.´•édį8ÓJ—NiˆvʘÚÏDŒmª„„X5%LAX4ˆÕdz4ÈŽúûe Ü! ‚Šó5¹jL˜wÜ¡ÜÏH?t¤lÀå ˳ØõØð„Å¢=r#iåV$ñŸ[ÙYûÀ”¼ùÿt~¾ feªEwYšf•¾Næ½6‘“78u'™’mÎ ìÌkeÁ|W¬ü|Ê ¨,¬v æ$‹ô¢r΄N²\PüJ»Å<ÓÙŸžeE',œF^àq?Šö7ïýœÐÉáÄGÞì…?؈ÚÞ°U£ùñwdN/S`g<6h½iòÅ;]Øö7º/pŠ7¶åw$!]h·_,µ)áh×:–Ù…ÆÖˆ÷%/H’8"YPoµ„3*V`$…W1D<§®‰!ºZÜVñy¡ïÌ­­¸ˆÌ‚®M‹dì –'¦Mf’6`ÂY^Æ*…‚JT G“$Hº‡ôwüdÆÑì²´_©½°ºÉQ™}«{‘âR”uÔX†g¿ ÏÑ¢(¦6/DqÍâñ!yòû'¯ƒ<#TÈ#%}t‚!¬@öEý‰^ ¤÷x*m•³ºÝ¸^ Vï÷tº‹ì«ãò^ÃÆ»1w$å?=7¶YÜáÞpÜA (ðy-ErŸ)׈üÌÏ ©ðÉCMd7v—÷>žÇ»ÞN–H÷ Àj¡™É9­•c b:0À u(Ôª‰ 5ñ1 øQW{ëAïÃ!ÂѵÑV÷•Q€_e™~u›Dæì˜àG•Ùù>ó¯?w“½¥M™‘ï’FV¢Í9D<^¢Ø™Æ,Â8l^³ÅÊY}È0öl5D•ßòfY1CA9òn'lîðŠtì°M5 ˆå¶'èÛÎÁ+”)–芦P•+Dzûßødá@Å”Oö%>ag‹Ǹ3ˆë‚æM OyÄt%«G2ðt[ê9ÛqûšˆPÍrØÔõb‡ýïb>gfìÊ6ú*j˜‡õªRe¢` (Ø«6ìv%üµ¥j&ì þOã…ècéŠÛ›æÊ1òvå(mžGÓÃ;b‹÷”ç+b\\xmåwÒ&‹ Lá˜4®3 )ùŠë!cf‹;âÑÄÛΙý¼À¦öÉiÀÈiðUÂA\ãtö˜=}¦ÈojðX䔼…e~Ô¿§~jQÉh[Ap¥½|%YËuZ³G,âÄh×d–Àx†ŒG›k.ÉÐ*>l˜ºVoŒa½šÍ,jvSnš2E@\[Qze*£\Ód6sq"X Fbm±øgiÙ=ͦPºÑ4 xe¾ö¼6oÂWÎ;·^F(ão ¹&ViP 4õœNbóºW|Ùzé´<ç("C‚KH%¥¡=ÇM¶Ü4t~̶„ÏŽ9&Š& á¹è¦5)÷rN=…ù!ɳZ¹:'ŠB¹Â•ª ÕôÜDVÕ(—HõçåJW5ª»†ˆú«ä«æ¾*,W$Ë™F@GëÍfÎNÕÕh= ‚VEÝPÂ…O_Øî5ÚJÂņÔ8{Îg¯%[Þû:BÝ ©qAoJäÕk–’ó +`À­à<´¼ŽFéBu U½|äï,ñÉu¸@^=. ôkšåRAÿ^€r‘ûGÀÕ†2ØØà}( qÆ{"ÈöaZ‡ùžµ‹¿÷ÒSÜ4ºQ.æÍ”µGv—àEÀòÄf\Z01I‡p[Èò^6³!1Ôo;ï/ä´Á’ðã?<ö"iµIÊAltþ•/ðsØì¿?fóÔáç^ £¥'±n||ƒí´CFzŒÏóÚ—vpqã#w h £U —˜½ló]^æ/†gš¼Yû°æ@ƒ‚gb«¹ìÊðþSËõ *ãÝ0)ßÌ.“Ù«]SN"BÜ©f›±E¾øÎo\Á¡„×lˆPŠ6œkL‡Jg°³ççµÄ8³ ‘Ù'%{ñ»™ð½À„¯Ù`ÛÅ'\®Ha”¾)½‚gJ|»HHOÐJJJJÍ9×±lY´25°7ˆ. D= ÇâüT;Ibo‰€š -Ò©©hÐ2R+e“€Zwo¤øÄóB䆲³ ÚV–!M­OxÈ:‰+B¹ª‹«·<”„º?§Ûn¼ÉáJS“ãP/§ éã³9m¸ç£EãBÞLï1guõ „ÅÞŒü¸qb]:€„Ø1ôüAi(V8iökG7M&@íž•ÞøóŠ!÷É1ÒB*\q›f!¸}Ó I>F^õ$’@¯pì=Ôï“+•Ô“Á§è¸p°Éæ )$r¥A‚»íú!´&yGVÎdÎq±´¼3­Ý]•¤$åyÚ…k%šuÎ"ÊB5Ff)}5d‡ÁB6í1\4y+õuW*ŒmkUÙ:ITf Ô1üÿ»›{%†ò¾¿ò2¸°ÈMãSæ{ª"P(Dê4wñÎŽ‹‘øý^& ¤ç:Ï-AÎå¹ø.ñÔØ6W%¤™XI, ±nbÞ8-.¹tÛ²Í0-*­¤¿,çbÇ÷ª‡.9“âýÒHÝH‚chHJG#™U)°Í”ç†xCàËs±¸ƒ5©g*t)2æjÊ”ÿÁŽž­Þbç¸zëÕÑÆêIЛfξX2„ê:Û¶/Ñt!Îñ¥qöãIqžî»¸T{¦×CePª©Œ.s¿œùMº;MVž–°ªK¨ŽLÅUËD?Yà…AÓïbª‘³d°lã¨BŒ4³ù5îÃIÀêOGo{ ™æ$':S“qh—euRÏ,\õŒRj»3Ũ¢‰÷ß㊦.§ÍYå«ÒI=ÒïÅëec%·ä°|Áá䓪ŠàOѱ býnæ*Ê…Ú»¦Ò€Y™ë`xç/añóÁ+`—eË<¹0ò…ëbÜg-× °ñµž‚_'¡ç´0bJÀc—ÜÏZ´Ò&Ý>éÇ-üupãÏè˲%§ÂÁA5äÿ$Ò>½¶Žfe¥•5Å<+éBYÉ„(Yòèä¡ÏäãòiÏm4Il¶ U:ÿTQt‰3^£ö”º/£âzZ* ›ŸÍŠ#ç{ôû†S­=[õ¸ðl& {è—wѨ³D•Ô–ŠeÎj§Êêš±=€tµ¸•)‹²ŽÞwÝúÌþ!ÍèÈ—r§ZÖãLÉá¸ä„@Y%@YŽîñó:0Œ.†£õ'£Gaf)%, ÷\IªÉBÝÏde]5klz’£\FcW7$x}h}ʃ]ÿƹ÷é?`p^ˆ„ö’ºMËj8ä7õøÊGá²1â¬) ž¦¾RDC74µãȆŠ|±ýë ØýR|Ë$kÎŒ_ö˜@÷SÌ…«•2þ/ ,3F÷¦õgÕª^,Íðõ{ NÞt>?û\ÇucIÿMæ]´¤0¿Ç #Æ»¤ž4sý½ã!ù÷¡¬Èëã0¹˜™dôÎ> stream xœÕZmsÛ¸þÞ_V§ï ç&3‰Ýä2½\2I:½¶“”DÙŒ%Q%)'×_ßgAJ&-ئã´7L†°Xì>xv¥)É&Å4=4óĤ§eÂJ<“ ==“Zã™2é!#¦¤ÃS0eS<%Óh mFá©™N!/ 3 º„eÆy<³Ë Ï,é)sXZ ÏiÖö¤_J–JêW,µô¤µƒ !#¡AZ²†¦º$é÷ÔHI~)’s˜¥`š¢u†•Å,#µ _Ö†„¡ÙÐd¯¡%4ZBaØÒ š­Ç/‚̵:Ðpè¦aOÖiôz‡nÂ+…ÃP-A¦) ¬¤Cׄ€×6ø„…¥°´²`chH40.¬”)fͤ"ŸŒAÃaec±?_hÖ†„¡Ù$$ ͖ܱÐìh³,4{‘„–)yiS á¬UB®XÃí‚XJz¸›”&W¬Çž‚¤L92Õ >¥†™‚|zA‚Û ¥¡ƒmгL+C Ò€! Ñ–h@µ'è|>øo0F&¯˜!ž gÈKá‰l~°-ì©wÌB {fmŠO™ñ´q赆„S ‘Jp0l‘bÎ%4¤™KÉÔÔ0/‰ß`ƒW´ÝðÖf§žy‹©ØXPW›?üø#›ž³2Š®÷lúëßÿA‘¥¥â°‰mv«ûÄž=;Ȥ}A°Š' `8ºÇrf¸²M‡Ë J›pÄß±œDˆõ"-H:fIAEF^?3âöÁé °;2ŠIÌo8Îø‘jcybc ŠwöÐ&Ч*jHDÚ(Á“襉ñœ®[ã¤%Á­£>8_î˃ãå^Át¤ ©1ê¿ÜƵš±Ë»±‚còc!Â-c¤àXgÒ'¤3c‘$£™Ž8'ž³Vü¤ÞÍê|Þå†Kn'lúM_•Ëp$½(«E^Agþ}bÓ32gÿã'6}ͦï1=Ü£RîqÎiº?!á¢ÎéZl®†’Ä?ìfÍoÛœM.6W8ßBûùfS6Çç-Õhzàö_x¢ÄcÎÏé¯ogŸÉDÒûz ‹”ßÏ 6‚YgUžTçY“³“óSTŽEõ¡4ÊŠ¼Ç7åâNA»ØÍs’dškž ïcѬrêxUeÛËb^³·»f»k&ûå_du šþ”¯®ó¦˜glúçͼ\›‹PÞ~ÉÖö¥ì!NX‹=äAT¨×gg¤tPZŠ}:,tÐ;ý[±y¾©‹›Žób¹Ì«|3Ïk:> ›®‹Í®&°Û¢·Ù6/šœ/‹MN•â¶*·eExf«QÄKõnO¥†£hbNÐu´±)·(ër3Õ«£˜÷_µP;\Á@Öƒ…©åJ<ÅÀU¶žåU#á–«ük1[åO°6·*¼¬àE J".%N ¸B™ø»HÕ Ger0Ð WùGxÇe¾w¿ëÒ~“sÆçôNnå™3XošC] {“/ŠìEùµƒÁ€ÊÒ¡ Ç ‹Bé» qÖàLélyŸ×客Àû#»uõ]v‘ß]àü_æ³ý¥à›ò™–ÿ³|¶)æå*+r=¹éáÆ“òNz½h½ã)xªqIO$½ÇAÑ-¾)]|g µP<1îÆBe¹·þqÆÃYHÉXmm€Ëè0ÔÙ×ÖÁ.Úzz1HSè½`ûtݳUEoõÚgÛÿiÓêé1íüý1=òR-'œáôsd n®—Qݱ Ë9Üý¢WLpì¯ï_nšm×ÉeÓlO§Ó/_¾ðÏu“5u¹lxY]L¯•šI:y€˜â˜˜T`…šYsoRÔÓ’§8/4ˆj} 1IºÇ½Ü¹! o× w»ÇÓ#½¾M°}mrL°ßa»RÐ׈P"X-‘è<×Nñ‘{uVîÈQ6ýK±¨{ä¼A%G×ûÙ?ë"À~ò¡+?+×Û¬*j¸].Ù²ÂÙ󥬮j¶Ä1ˆünªbÎÖ»USü@8äl].òÕ çèêWTš¿«°]-ŽËª\ß«£f_Šæ’ͳ]ÿPoóy±„Øeöï¬ZÔ\NÈ/: ¿·Í¢{o9´=áïóm•×€‘ξþìEÖd,«Y½«®‹ël:È@úSÛ±&ÁßÜ^š­Š«|U\–åâ!§E·…C’¿,š`Ø“¥BóX¹âogMVlHý|­¸&]笩2\Hæ].¢ë;S@tæS„Åýe ÿ9¦SBf–ÍŠlσ–¾¬êa¹.¾6»*gsP*=à˜ÔÚvDÁñ ÒW±±ü¼¨ÄlÐ{›KÀ\àÂ×”¡½¡Dt-"‰hq½Ý, …bÙf4ÖP‰_ Å›Í겚ьžrq¤~žcJØõÖ¡"b‚ŸSLPÄ=Œ¡ÇQò¸]ÝÁt? þݯnÙ÷°òöÒÜò Áç–£v!Ž#— þ²¬Ö$ŸtG;ý8ÈÈ÷ ™d“×uHEÃæ—ùüŠò[˜ÓÆLçX¶Ê7§ŸËK3¹G_¾= Ἤ'áá½Á&¢+á"0<½Ê *&÷¾Zè#|Çt¡ú†ÌËòêt•}YuFÊÁØW‘š4ƒæßê" ûáðéºX­òj¾¸YäJÔa“ð)ÀMwÜdáï`Y”óyyºÛ‡cd19¼¨pR‰Ô›nŸ#îG&‹î~Ý cƒæÙi½^GLoô2ß\œn³mpQö¿ÊV³å*/êùe>©{"ÑWô—ù¾È‘ ôyÃ}p¬ëõgZ«ýÕÍ:ÛœnÊÍe¹./"ìåé››…[@Nçëíl>ó8j'©¾CñêOøþl”åM^u€OÂ7%7ƒGÖ uç”ÿk—íO}x»Å}‹ 1tp(#º‚ïdY\ÊÐ%ÓA…°ê‚´Õ8 _Óô:’Iø&¥×C2úÎ,ÙÊȃ‰nhâa˜>ké)U“ð}K¯GOÂ÷-½3 ºôzì$|ñÒëq“ðé˽Æù½qRÆŒó“ðÑLOi: _ÏÜôý²o­$˜Œé÷Lf C³lr¯mRím3ÓhT¸¾¿’Pò}L$&jÕïÁ$ôýÑÔÑw‡¦Ü¾ýì/þiW8¥]Ÿv•z÷ZŸ¾d¡§V{Ðï ÐîPùc{ÙÁ2ÿܧîÿendstream endobj 200 0 obj << /Filter /FlateDecode /Length 739 >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©[Á'Ûs³švÂÁ}o†½å|7ÍlÝÔ˜[òËô§¦kŸ˜xäœÛBÑÖYw€‡S0½è`ÓQÙ®iëþ"†m!-’ÕM5\Fî»:ØÃÀâõçi0‡U»ë‚4eÓ7;yúO§ð!˜¾ôµé›öƒÝß(³3ëóñ¸7PÁx°\²ÚìlCëýys0lúÁ+åýóh˜tcAªª®6§ã¦2ý¦ý0AÊù’¥e¹ L[ÿ7—Њín¤&–Êçø U´ RZ,c¸Å¶€ÉPSan aiqD‹ƒ4'Ê,Ò“I†F\ ‡Bµ¸îbu ’ù¨¨ú³é/Úy¸À2ŽÆRòXR xHXÏÀíÀc®Ïeg·:¥®'™ˆc|0ÎüxqîÇÆÅ?ü‘SÞÖÀ΃qìI&À’¸Ð'œ®gÀ΃ÌÇy9´ º…C ÕðœÖ:ŽóÆsÇ¡;(àE8o"‚A¾JÇ'O™ãÄ‘ÀäÃí+Ý6ôKIט'„á;¤ž œz†à„tFz¢Kp&q"p¢‚üBCT’/ôŒ9ñ¡!É©~Bü}ÒéîRqÒ‰óTÂçFIŸúܨ™ÏŠ|nTìs£Ÿ¥|neEAºxwüÜçI·yRåmž4¿Í“_ó¤å×<éÐçIÏ|žtäó¤cŸ'ø<é¹Ï“^øO™ôyÊf×;s¿|÷KÇÛ„wôúêUç¾·¢{lÝC‡'®iÍõ=>vG¬r÷½”Á_$Ô¨endstream endobj 201 0 obj << /Filter /FlateDecode /Length 739 >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©½à“í¹ÙM;áà¾7ÃÞr¾›f¶ÆnjÌ-ùeúSÓµOLg~¼À8÷ã ãâþÈ)okà çA„8 ö$`I\èÎ×3`çAfŽã<ÈZ]ƒÂ!‹„ê xNkÇyã¹ãÐð"œ7Á¿ _¥ã“§Ìq âH`òáö•‚nú¥¤kÌÂðRONH=CpB:# =Ñ%8“ˆ88QA~¡!*ÉzÆœøÐäT?!~Ž> étw©8éÄy*ás£¤Ï }nÔÌçFE>7*ö¹Q‰ÏR>7в¢ G]¼;~îó¤ŠÛ<©ò6OšßæI‹¯yÒòkžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçIg>O:÷yÒ…Ï“.}ž2îó” Ÿ§Lú> stream xÚmUMoâ0½çWx•ÚÅ$*B²ó!qض*Õj¯˜n$H¢$úï×3Cð²íh<~3~Ï~î~¼ngºj÷v¦9{³C{îK;Kîºàî.kËóÉ6ã³µ•­¦Ýችöm¹µ#»O7Ù¦©ÇÞ4åñ\Ù õ=ÈØºñ8‡Ý¿Ûß³ò4Ö‚Ïöçú8ÖÍŒø½ôí>sIv›dXôËöCÝ6OL xû9Œö´im$lþæ6‡±ÿDŽÁü¥¯l_7ìþ–šÛÚž»îhãÁzÍ*{pþçÝɲù·¯˜÷ÏÎ2‰kA¼Ê¶²C·+m¿k>lp¾fIQ¬ÛTÿíÅT±?LÐØAù>J‡ë ‘¡‹e .1›ÊPbéªpqH I$\kL¸8HbØŒShÄ…r =ôêzŠã51Xò‰Qùg×_¸sµ‚2¥äÄ’òÀ€+Š Ä ŠsˆC:CQŒ}.'c-ð”BbOEðƒuê×+Xg~Â:ÿ?aŠÛàj îB€.U ±$,ð¨›ĨA¦ˆA 2®‚žAÃ%‹˜òâ%Õ"µñ 1ô9h¨M„ _®ñ¤)ELN 1éÀs¥ ×þRÒ3fg =傸aîCÑYj¥ VÑÝà^¬w&L˜Ó=·° ½Ð3â„nqFyÀDŽϠOLüñ5'žpÏZx?iéý¤•÷“^x?éÐûIGÞO:ö~ÒÚûI“‡4ðÑíˆÏ¼Ït~ë3]ÜúÌð[ŸñÕgF~õ™QÞgfá}fBï3yŸ™ØûÌ,½ÏÌÊûÌhï3c¼ÏLê}f2ï3“{Ÿ™Âû,åÞg©ð>K¥÷Yº¸¾Nœ0³`Â^Çayî{7)q ã„ÑW7ö:©»¶ƒ*üሟþS`õRé̯endstream endobj 203 0 obj << /Filter /FlateDecode /Length 600 >> stream xÚuTËnâ@¼û+fHä@˜Æ!BHØÆ‡M¢€V{5ö@,á‡lsàïwª m˜ššêîê6Íè×Çn²Î냘g)>mW_ÚÌN¢ßiãFq]J[õoÖæ6n»WñÑÖÙÎöbmãmUôON¼­²ó%·ƒêÿ¢ÐžŠê[‚:b¼·'ç²,”t_“2í¿Š~"!ßýÙÉ~PG‹GZPàÛvE]½ õ,¥tĦʣºD37½ÓÁⱨòöæJàÑSZäEÖßNôÌJ7ï®]oËmu¬½åRL?Ýe×·WòùäMßÛܶEuãGsîrwiš³…!½ÕJäöèrº9¼¥¥Ó:½«öׯ MgÅÞ²:·]“f¶M«“õ–R®Ä2IVž­ò‡;e8äp´ÓÊ<ÌÚ_9"Þ*G(dS>sQÆ  ÖDDr¨˜ "qX+&Gh„ë±aá:$‚r”5PHi@ÌîS9ƒ1jUô|s(V8Œö‡>Ílè;ûJÛÛˆ¤YÀœD˜Ö½IÍü °aÏo€yk˜rA„)Ï‚1ÅR;JS΄øÓU¤—!ar ¬¹.ñšëÆèQsÝy4×Mˆçº‘“9µÒŒiè~½á©hø7!cŒÝD<`Â1ó ð†yÒSMùg’g…º>Õ2½û cðsÒ(> ZÊÀC@µ´· f fP·7Fo?],Û}/²KÛº•¡¤=À•½/mS7ˆ¢mûð'ƒÓ{âý¨ØL:endstream endobj 204 0 obj << /Filter /FlateDecode /Length 962 >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—Ãââ ÷a~‰œÏn«XSjŠZþ Ëi?Oß”ùªµŽ…n›ù§d-:Ôúªìi?‹ˆQ–«Æýp–+ú1 4ß¿žÎáp7=ÍIU©õ¯xót^^Iá—dýcòŸžÕíeñÎýåx| P¡t²Ýª1<ÅÑû÷Ý!¨õgß(¯Ç ,]V5Ìc8wCXvÓsH*­·ªêûm¦ñ{&å–ǧ+·ˆ\íð“úl›T6Øæ(èˆc7Óš .Ò>⌠'Un".<"Nª7‹ƒ´ÁŒ3Ê S`F‰MF-Çt´¼lÄIÕ‚ÝvTˆ8©:´tÜÒ¡¥CKÏ-Zz´ôÜ1ì_}­¯Æ‡ÿv‹d¤Óê4ô[«s`ËuˆÔ)ãxøÎ8.ˆÐ9cšS2¦^Äa¥™œUžã×Íû5œéöýºÁu÷ÿÊé?ÖÀ3äÁ¤ˆÜÀCÜ0ä`,s¡Ï]o€Éƒ¥x y°-´ÎÐc/MÁu츗8%ïqx«;x1äÍdðoØWO|öÔ§cŽf´®5üPA¿µü´´ÀcøNy¦'å™)8)gTCO&O2ɘ““u첞}af®™ EËuð æ·˜S°NÚKÇ9kèw†1òt–1æ»”1z݆1žG9ƒ<]ΘfŒ‰ãx¡ÍñKBål6ðî8ç rv cì£kÓ|ÉûîzÆÐY²þ ë–¬?¿dýôœ”¬?ƒž’õçÔËúsx/YA|ÖŸŸuÐ\²ÎïLÉ:Sêe)õ²N_¥ä /^r†G/9ã“ä%gâHÎXËKÎx¼äŒu½äŒ<½äLÉÞ½ä ý^r†N/9û—œ‘›—œi¾ä ý^r†ÎZrƺµä ~-9ƒ_KÎÐSKÎÔ+9Ã{-9_r&>¿=aù˜zùÌÑW-žU>rµl LÖ²1x@kÙZŒ_˜áÖüRYQËÆ€ÓÈfÚ‚ù„½H´©-ó³ø:sí{~áºßÅâpÂAúvì —e‰'"¶tÒáŒÛOáí@>ÎGtÑä×ÿpõ£Oþ (mendstream endobj 205 0 obj << /Filter /FlateDecode /Length 599 >> stream xÚmTM¢@½ó+z&ÎÁ±?DtbL$ñ°3“ÑlöŠÐ:$òÀƒÿ~ûUÉlbÛ:ÛÛ^Œ£]¼«ŠþʼnwUv¹ævP=…ö\Tÿ%¨#Æûwr)Ëbáž“2í¿‹~"¡>ýÅ©ž „cÅ+(ìm»¢®Þ„z•R:b[åQ]¢“ΛÞ݈éàïTTy{·$Ž0è)-ò"ëï'zf¥ ‚÷·®·å®:ÕÞj%¦_î²ëÛ¹|ñ¦mnÛ¢:‹ñƒ7w·¿6ÍŇÞz-r{r)Ý ÞÓÒŠéó6D‡[c…¦³bgYÛ®I3Û¦ÕÙz+)×b•$kÏVùÃ2r< ÚÀiå³ñ׎·D„Ê Ù”ÏÄB‡„1ˆ%ˆ ‘*f€HÖŠ‰ÀázIl@¸‰ e R3„ûTEÎ`̇ÚG=ŸÃÇŠ€£ý¡O3úξÓö>"i–0'¦µDoR3¿6ŒCàã-0ÏbS.ˆ0åY2¦XjGiÊ™Ÿ`ºŠô2$ÌCŽ5×%^sÝ=j®#æº ñ\7ÒÀcÒ §öCš1 Ý 7< ÿ&dŒ±›ˆL8f>Þ2OzÊ£)ÿLò¬P×§ZF£w?a ~N¥ÀTKx¨–6ðĬÁ¬Ê#ãàþÆè ᯋUûY‹ìÚ¶nchi°EeV¶©DÑv}ø¾àô‘xÿæzKmendstream endobj 206 0 obj << /Filter /FlateDecode /Length 672 >> stream xÚmTÁn£0½óÞC¥öÆ6’*ŠdrضjªÕ^pºH‰A@ýûõŒCf»êô¿™yã'æîÇën¦êö`gñ#govh/}egæç¾‹îîò¶ºœ­Ÿ­­m=Oìµo«Ù½Ùæ[׌ž¼uÕéRÛ‰õ=IÛÆú°ûwû{VÇQðÙáÒœÆÆÍ8ß›ñäIßž3d_ƒ “~Ù~hZ÷ÄÄ#çÜ W›ö c Ñü*…Í'qÇÆÕýU;€ºHHV7ÕxýÂwuö÷É»Ïa´ç­;¶ÑzÍæoþpûOÔøÍ_úÚöû`÷_¥ù£Ý¥ëNd0m6¬¶G_ÑÏÿ¼?[6ÿvÆçý³³Lâ·ºª¶¶C·¯l¿w6Zs¾aë²ÜDÖÕÿ%!ãpœ¨™§ò%¼b•l¢µËÜc€Ã¤ ¥¤ÀÈ ¤ÀPÀP«[ ßuªŸñ©_õgß_•ñxû4Ž$Oˇú<X^\NB8 ë\;c®‚šBbMx¹ ùy˜%ÆPÈ 3jok:E q:¹Œ/d4ˆ8ð€Q§4ÈA2="\¤ÂšYˆ+ÀË‹ÔÏsä(Äè5$ YŒ—Èú rŠÀ‘€ƒ~ì+A¿\HÈ•ÐWr߯{ÇNøxoËøŠ‡û• ¿”$¿TL~©ù¥òK¥ä—ÊÈ/¥È/¥ƒ†p˜1ðsòQä£*ÉGÍÉG-ÈG-ÉG“zA>ê„|Ô)ù¨3òQ/ÉG½"µ"µ&µ!uN>ê‚|Ô%ùh8ùhùh$ùhbòÅ,n~á†üá°nË£ºô½ß+¸´p]À¢hœ½íµ®í \ˆÓ†¯—2ú ¯M„Çendstream endobj 207 0 obj << /Type /ObjStm /Length 2831 /Filter /FlateDecode /N 98 /First 905 >> stream xœÕ[[sÓH~ß_ÑPS´ûô½SSS’Í@-, ag©¢x¶ ÛÊÚÊ,óï÷;rËqbËIf‹ÂjI}ùúÜÏiE«(”Ð* ²NhB;\IXqÕÂ+‹«Á®V$ò¸:A*h4¼ ­1Šf°Ü5 ò”ÐÀœ!à^SÒÍÿO«yd@m„6w#mÄ o°„Æÿyð¤ÈóDaˆïtï0T cq§ ã"F`.l;«01afc…Uó',¿×˜ÝšÄv™xž(¬ç•M6€$Ú*40½ÆH™,V ›<ú`vG¼eìÖµÔåœUXÂzá),ᜊ¡:/O¦]Á$EpL—È Òy%BtL?QÚk‰göFDÍ£¼Ñ:~âDô¼/ïE øÑ>ˆØ²ÉG‘Zæú$’f¦€‹É2‹‰ä™ix‚ç†)2Y‚…H(â 1éP Pˆ‡g˜§hµT‡ro± Ržñá,Þ1¨Gª%h„V2`!41sÄÔÊhJdXZ"ÖÀn1sÄ䘶˜(€¿:a Š,˜‰(¸†|dœß–cfT Â:&ó3–r Ú1» ìáÖñxlâöe€ A2à"Zèg¯·xà¹Åk$Ï#°†¡dþöóÏbð´˜—'õ´ƒ¿¾{vøûOG/OOÁ£ÁI5›7GgÅ \ĺ—óá¬:oêY;¯oÄàE±Òéôâcóçy)oñK¸ÔÿšVÃzTBäÝ¢ÿÛöýbÁW£ælÞ¢åw¿üÒ:ü{, «¦”“yS4åÁprþñ1ƒ_ë·5ºx=•3ñcùß18johqóL ž‹Á›rØà)h!ABá½’­®¤(TÒ#¡ZV ¿¨¦_;˜‡ÓiÝ|×—ù¼,PQzX³ Œ´06»Ã*¦X|^N¾–Õ¨š~î,!ɤòlU¢’Pa‰$lÂÃbc0jÕƒpK¶0»ƒû4+¦CÈwq0ŸLf}xjƒ$X ¸©à`ô% œ JF°ø!¡Á]HÐ%4« 0`»a+ÿsQ4U=•ZÒ­@Qws•^ÞK£.Ù¶\{–ˆç·ÄÔš“¶LÙÒœöع ×J±kÃ8†®þ©kƒYË>` íÚ0™Ë>˜3[¾×ùv•ºì|ׯÊmö?ª[\«l÷Äàõ¬ž–LÁëãl²üÖ`ïy—6úÝëW¿ýöëO/^¾,š³çM1®†¤ž<­Ç#Øï)L-ôJ¸áÒ‚cï7-¸½fÁ¹Ó÷,¸ÿާZð~–¾]FögÎJÂS$ià߇¶¹3àT–V^F½¬KáE8"ìRzW$yUbo%h[ÈV‹eÎ65+ˆÎ Á´rŠ·Öæå_–£ªxZËäqÉI¸â°¯À×Å #0É¢ÿ›r^_Ì`½Úˆ|E~^ŸË;õøàŽ£-<oVre\l/—ßX„ÑMK\F%é¡>ýqõ EÞÞ¯à2Azƹ®OÕç‹Y)u¿€¤L&|›$GíH®¤áÈÚkÄ!aoºµµ—ØàVõa¹½Õ ¨œÃ.®6_ÝýuöŠÍ߬³ÃúÛÁ¤Ë>á Oˆ Èn !Ȥ ¢Ç5‚ØÇ;hÆ^`-a9/“Ö}`5U3)¦ÓzzVOê^1ºŠ’,§‡Â8µLBÜ‹H/=08§%gžKpÁKÇyúîàFåi=þ£ìŠÍŠq-å˜}ÈÉŠ“i’ÎìdûƒÒJI£/AA­%¿¨U[§ìjëVìÛÞbÁ»W¿ð^ßó‰æX7æ¦Ëqˆ^tá‚ÛâJùšm`įØ<§¶´yVŒ^·ý›F慨À/ÿ¨F-T³ ¬ÎÖžkh‹kÞ‚Ïý2¤Êër æÚ"óå*³²M¬ŽáÕţ㭴U‘,Z΋Tbz8W—Ž«OŸJ‹yòž}÷`RM/æLÄÅ Ë®ë« Å¸œœCË~QJR! ¥±D8‰ÄYC0½»iöÍÂ9®ÍvÐ"̈ÛAÛ"Q[ÞKÀ´!HÚ5ZQvÝ_٭٨ìȉɼ-±¶.µ u;Z¦ØÉ/hùt„”ÀÔ0]Î3~ƒ”}Vµ ‘3.‚ÞËÖ‡•Dœ§ÊêÅlX˸®Sçù Ÿ¶ô¹¦‹fm²ÎEäÉzW£ëãÌI(¬ásÉ\Ç„L,ÇÄØ«ªÙU"ä3´DejŒ ¤ªa]=ÿ÷ÔâÄ™*Ÿ1B-Â¥”ø¸È´5…‡CÆÑ¤…Þ[…‰ Þ©˜f¤°3tÿ)!QBèm¸” Û¸2H¨Í ­Ù­ê[ÕÃa}°È Ïgå¨W ªð!KNXM€Ãå¥mÖ;„ øSfx\ Vœ:ü•òi®MÿÈmì5Ÿ¶9@³9¦ÌENë]:çÐ|&º¸Ï1iŽ3uhtvEWcQÓß=¹îéN4ž¡²— o’t»*üSòñ€é¡ñ‰Xãø< žÐ"°áôÖE/µò ™½9u~|Ù=ÈWø¡|Í/>v¬ÔÒ÷`¦S0ˆŽÂ¨å¦csÇg¸ˆïÙÝE–{“kk*éÙ’ôâšÿq)}o\ãz/aµiÃtk¬±’?üØÁ­‹Ù¼žRŠnR}kô‰ž`¢¸f4äeôdL”œ~?0¼h[§kHÃŽQ[àQ-Zp›v* ëo”\*¦ÅøÏyÕÇØ;¥%úxG’?¾êHçÄÆ–éæMÊ-Éæ»Ä­Ï÷¯¨Bè’‘žó°8<¾Âé]òm+ºôó–ÖlÛ“ë{§|Ž£|>Ÿðvô{°€q“Ü@ßÿc’æÐÓçÐÔ‡5$Ýöx6è$ ʲgÈQoÈÐBŽ–CŽŽc~—Ú[”=×é«‘®Wôh$ª·¬ÁWÀï\»ºÞåQý ¿·=Ú[Çïeî-¿HXU›þâÖUõÓ¶»ñ(óÛíϱ.dëµ…[½ [Øoé5lôÚNÜhpî‡#ÛV×mA÷ØÂ&7´gNm[…ˆ7½m¼ý‰XÌ.!åIÊAZ쎲—¡°Í‰Øºã“/õY1íW¦ÀÑåʱkð’?Äçc×>';{€WŠœ˜–Ќ☜¶‚vOFáÒtÇÄxÓ„ûm‹ëÄ0íÉcÝÕ¹¶Á>]7æ¦&n÷®!A¢šøScëoyjÜv¼‹Sã”·²Ó©qñÞÍ©q'¾äÖ‰í¶ÖMž‘[+¶çeŠyWWaó`‘üfÐüÒúî Ìå<€`®÷È‘ìf=œ”O{*Ο•Õç³îö¬˜±@?°8ðwÁÜó ñ»“qñ{¿ržùÿ —½#¸ÔjžT ÛåüdÁâkL²øTùpú½q{Ú”“ßâ™¶¯|›> stream xÚí[K“㸑¾÷¯±ªp‹C$Ú1‡™÷ØÞ‰q6³¶DUÉ]’jH©«{Â?~ó…UUÛû²‡*ñ‘‰||™ËÅí¢\|óêë·¯¾x£õB•EWvjñv»°jÑ6mÑéfñv³øË²ºùß·úâíb¢®.”j  "ys£–÷ð7|„;ø{Gw7+­õò.ûÿíø…fͯ÷7•]ž‘þ$/VÞô'×EµÜoVU»Üà“{ )·ÜÇãNšß1ý¥jp¬ØÓü€“xUʬ¿xcìBÕ…®M…³YÕåb¥›Â#s.nVu­—߯VðoЏBÎÕR„©9cglDàOž­{z:¸™>Px»FJà½Ò¹C¹ýLâÃÙO¼é‚­^ŒU¥ S˪}#œ|¸‘Î8#‘ÌnÊe/wé÷Ašá͹¿g²Ý$d¡› ûaKu³¤lY”qúñ?ÂvªB…íjGñcÙ”¹Žê¢‚BtÊu£AS»¨•QW”žž|P·}vuY4e;Y_ù5tj¬(!H{y ƒ³ 8Voåö‡ ûtÇ6c‘îÛh‰mXôF¦m+¥‹F‹NªCz7¼f³ 5å½="Í4¾Zu¢{‡¯>I&'u=ñ#à‚=‚I–¼1À‡w `æ ´>L2…þ;‚öè¦eE:‘V&ï‡k*®Ê*îü8f9Ð…nô‹¸ëf¯$›)·þ+Õ©Âê \me¹ÓŸ„T/ÀA¶¥¨¨EéF·LË^u~‰²Ú¢néSjfò;!™uÕZëH~Î ÖMÙËFú {¢Ço“RØÚ†€q)ÇT"È+ì4™ÉP¡ µË/Á:l»¼ßí3Ý+X·Xµ…êŒk© èCëªMÂŽ*½{ú•”¬¥ñÙª²Œy5EÙT‹hÄïs32Ðåg-ÓUwªÿñÕ6…6~Ú¿Éúvº #‘ m¾·®¨@XååBecF¬ÑSN‡ˆsžý¿æ:ÑE©Õ¿(ìÔ×ÄFt¹Y‹î@¡Úÿ·è²ôå…æ¥ H× 8Ûü·-45Úb ÿ¬MC˜l¨m¡U7[¶•2mÞµÃ*«}Ài¢Ùi¨¶h” ¢¥>‹?†Z÷ó;~øC}@DTúЦ[>bÌß­‘Õ;žäÖͶ—I#ö?xpؘ%¢<|•‚lx„ràwÃOˆC«[)Á•UKÈèOG&|B× ‚ÍH̦(­×û»¼Sªì/§÷©\“n hñ¼½s@R„]·vA ":IU¢Ax‰ÉÐ88üïMHRôÈ·ËYM¸¦|… giá’©é=‚ŸïÞ9ÐNÙGÕi²€ñ¸gªI’›ë@^—0Íè9‰A Tu<'E0Ô zï UÍ]~Ú9ºü:Vó²dT»éý<ÐÜÂóí\ª´€€ªj¯ s §^ Á‹x^T-e@ô‹`6³q³l“bF.¯„‹fâ"Û!ÿtºª­$¶æsõåò¸Œ˜òÒÔ°\,Ò•+Và¥Ì Z, ¬þQ`í§*¨„C|…³!ÎGqýI*)–<³é6*ÈÞ§µ‡ùüU¸ë¼§ûãAš {Wóú–òÑ÷8†¸¢ ÓUànP×÷Aµæ=6ݸ2õk n …öóÊÙiÖ ¤‚ËAöß“èþÝAR¬ÖÆ.bâu¢yKEÍU8ðy?±xz¾Ý"´9¬]©ü²8 ÎI'±žL¾‰<œ\_¯$A¸iZýŒ‡k½¯®¥ûÁÿQŒ &˜ýI£bß…$kÂzã§Á›42cäêÌò+FºŸŽ[†/vùˆ  Ê\|‰r:”:ëYÂÛK%dþú_$^ÙÔ…Ö6µzYA±ì“wÈìÞ;”³ñõ)®#ãggÍ¡²œ—qgܹb™ô U3~:ºR/Yêc\ðņu<—DÆ ©ª¢3½ïÝ‚“wBw¤ ˜š ¾ýn/`ˆ‘¡ãþx;8½&@ˆdߺj{âJðÍå<³¹‰-ºç”µ®ªŸµq”­÷àªã@áÕ=‰Än„Zí“Ð!®¥CÐ÷ØG­ ÒLº¥¬RÍ• ]l(ŒëÚ ÞcE«BQivÀ~ÝSÌiå#J¼7䆩 öâ"ô+8²f­œ† •ûÁ£ù±«œ…?§º½–aœØbsY•-  õÓîܼȫ-ü²2BíÑëÆ |éŽ'¾Ø°ö‘ŽHN€·ÎùÀ?ò vìsPZSÚ¶©Zü3±zت^~uÛ“¦ÃbW¶õ™ð-é1LÒ\KÑñUvÌ%wm›ñÚ’L¶-%èCðZÌŠ;%øFºH|Ùd7 œ"âut›]´[w<8îh0_(pqgïÂ[ ‚ä¹ÍCn2>[¢ZÓ¯ã¯)ƒ¢x7Ìàßum…¡•‹’gò(}’Çñ•ƒ·P|²Æ]#A‚“óí5¤´]p¼i“ ‚§²ˆÏV7':LÌôhè“>Þñ(Uj¨y—V<Ê¢ yï$BuÖÉö6›•E™¦Ì0ž/|Ynù‘öc)üød ¡­!—oÒå™Ù„2”íQ‚ñÚñ5&¾ß¥ZJN§af£WZ&o|ZB8½¬ÈHÌz¦~ô{ ¯=ŠïCÕsVÕ®(ñe<0itß•e‡MØîìJŽ£»DièŸßhØÊÅ0a±Ê›cƒÞ9ñЪ«›ô$‘ 6UÀñ|’÷‹~ØT¢<¶r™õy#Ã~ñÎç(¯J˜pY4‹Oañåß¼Zü…èþ0°½gðÙJÄ•(žsK¸·u_ÌŽw¥Ò®Á_Tï²£–ªëlÒ£ËUAy£–? (ÿ݃›¬×sR«Nj–WÑþê¢Ø>9÷I¬­ÔZèÂ)rLjd¢¼žÞñeŒäl;WŸð0Az=¾‹Ÿ£Ë=„áé“ ÔÛÞ.bÑÅDò寿ƒ,EÖ£!kÅsÉM®‡ÏÝû,“­²‘]×!dáå½Ã÷·Übëñ~GëÚׯH H¨Ú0…-ÿƒ/øh•çâ}m  ü&@Ëó5¬‘›©.wde“¸)xC¶ú¯kðî^!îd} ÁöZÑI:»ªT´/¹'äíǾ´†ˆ…Žì ø 0 ͪwà8™yœnBIÈCy¶Žé¹¸ ýn3“²µ-?ÜðvFRÀC”öâ{VÅ×ÜÈ1«’ÝѤÃO鯍¶•SÂYq¬þ%?kù5\~÷g‰ÃVùíI¼ÎNO¬Øªt†"ÛŒúm0ÛU ˆ‹†ÄIãê6¥3Fz'Á /{‚gBì¦t&AÅ&ƾնvܱÀtÏ*¢¯—æY ] ÜÀw.quĤfb8ä&tÔ.ªËK¶=ø¤7²¬·çÑÙæõ ƒQ_]ñò‚<¢TJÀÇ.:eÜËöÒ.€œˆ_©¥Ãû­ú‘ÊÕìJSû¹;0˜~>]²kÿå»ÀLÂýʆYWˆ’êÐRY¸…« ‡’Lê‡A*£+­ˆç˜ žöåd6J]0è†k-‚4§Pš¿²Go¹BÓ?¡2óƒ Ve8&ÿÕÁÃ0áú­ƒ3€ëÿíßmBz“ꑽ TeYeU—g|Ø<¯úߟŬįdëb]a¿ùæWcÙpŸ]6ìɽlNíõ9ñv …6ŸÔä}\8Ç{·;—”ý0ôݧI|ýÜ7²ýÜ­NÏUç6²LÎKéÏÁCÒPÜþš4ù56*ò½û­§jÝóé¸ÞbaZ)ÿìã¾¾zÜ«}ú› Õ’Å7ËY°vù7æ¦?äñìT¹yxdl° €æ6ì© & ¡D0‹Ï‹E¾h¥šƒÔû]¬Èù3f%zÎjvŠ)ݰEÕ4óó¾Õì|y´=]9 og_?SÚɯ,0­g?†!|˜~s‚±J•Ñ^‡ÐídÓ«ÒMÑ”Ý Q ›åúèS|)}±Ðí+à÷4 sîSŽân—VñF—¨Ìu\Dá¥Ø5pùˆæ5guÉG=@™$¤'ctNŠ$À[rP|þîê>€¯B‡½¦—î“=tÍ¿!讥#£Ac—3‹%žfŸtzðe…¸$T™zùx‡+bš´|#‡*šg¿ýQ H¬{æÈ  {Èý‰û}ú…pdæä$ Åæã¿æ… =F¯ùì¶7 ÝÈb Ôí£È$Õ`â·?åøìš¢>ƒù>“Ï tam8ˆŸ]~믒“Ó»°JdNh Îð¡‚·;lj2†Öz”`Føõ̃]‹5…-õeF‡ËFûŒxã·8¬‘¼ÇÂP-¢Wëã>©Y& Ðò³èã6_BÉidWÚ\|ZK›¿,ˆ×äÊ ôV'ºó‚ÓÛSFª®óLÆs)A ¼tmk„+< ãwæ kª Ó´‹ úÒÞˆoï\¼µÆ]…•ÝEúl{¹W…ë2^1í®ýFé!33Š`g9JÖ´­Ž)‘È• d¯pŒü&ecÓšÔïŽî<ΩK“Ãlà=Jª]QdÞ=pYÕ°HáÐú˜?¹\UMüy`Õ¸l€{´ ¦©Œ(„ ÈYvɧBé7L—#H ŒJÁL5ûŠÄ[mS½h©Ì“KÕuMÓ®H4‚~òíc)ne%æÇI³ßatöårEM7…‡¤p¸È§á­/‹Àè—emÖ&¬pjs¥(íåõãÕ#̦(ƒw9d¼Ë¥¤U.äã1@KúKŽLUVTñgcâ†rcÓ‰ “ ^}ÎàÙȉ¯)C?\ý¸CÑ·oŸ%ý9Ü•Ïs—?®v‹òÝŸÛÛºû^ʧu:VR-ªBöM÷šïÙ§IÂW’ªâ§«gµûýýÛWÿÍç×£endstream endobj 307 0 obj << /Filter /FlateDecode /Length 740 >> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qض*Õj¯˜n$HPý÷ëñ#xÙö?ŸgìÁÜýxÝLTÕîÌ$|äìÍôí¹+Í$ý¹=wwY[ž¦ž©L5ÎöOìµkËØ}ºÎÖM=Ƈ`úÒU¦«›v+ÍNmΧÓÁ@ãÁjÅ*³·­ÿçíѰé·¯œ÷Ï“aÒé*ÛÊô§miºmóa‚%ç+¶,ŠU`šê¿¹„Vìö#5±T>ÇW¨¢U°”¡Å2F[l ˜ 5æ¶GT°8XÆÂâD¹‚ÅÁ2Ád’¢è¡ÐC-®»X]£‚d>**ÿl»‹v.°Œ£±”<–T‡ÖÀ3Â9pD;pà˜°ësÙÙ­…N)¤ëI&âŒS?^`œùqŠqþä·5ð„ó Bœ…€{’ °$.ô çë°ó SÇqd­‚®AáEBu<§µŽã¼ñÌqèrxΛˆà_¯ÂñÉSê89q$0ùpûJA· ýRÒ5fÀ aø©§'¤ž!8!‘†žèœIDœœ('¿Ðä =cN|hH2ªƒŸ?CŸ„tº»Tœtâ<•ð¹QÒçF…>7jæs£"ŸûܨÄçF)ŸEYQУ.Þ?óyRùmžTq›'Íoó¤Å×Ozîó¤>OZùO)÷yJ…ÏS*}žÒÙõÎÜ/ßýÒñ6á%½>{å¹ëì‹èž[÷Ðቫs}‘Oí «ÜÇ=åãF/EðÑhªqendstream endobj 308 0 obj << /Filter /FlateDecode /Length 962 >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—ÃbtüÖ ?ìÏ/‘ôé}‹êcQQÓ?a9íçé›2_µÖ±ÐMc3`㔬EŠZ_Å=í§q=êêcÕ¸ÎrE¿Ã!ææû×Ó99©*µþožÎË+iü’¬,cXöÓ³ºý(-Þº¿/2”N¶[5†§81úÿ¾;µþÔãçáõ”¥kú†y §ãnËnzI¥õVU}¿MÂ4þqϤÜòøtå‘«~RŸm“ʦÛq,àfZsÁÅBÚGœq!â¤ÊMÄ…§BÄIUàfÑ`6˜QbFY‚a Ìh ±É¨%âX€Ž–—8©Z°ÛŽ 'U‡–Ž[:´thé¹¥CK–ž["†ý«O£õÕøðßn‘ŒtZB†~kul¹‘:e\owÀÇ:gLsJÆÔ‹8¬±4“³Êsüáºy¿†3ݾ_7¸î~ã_9ýÇx†<˜‘xˆ†Œe.ôò ë 0y°¯!¶…VÃzì¥)¸î÷§ä ou/†¼™ þ ûê‰ÏžâṯÀìƒÖµ†*è·–Ÿ–¸` ß)Ïôà¤<3'åŒjèÉäIC&s2p²ŽýBCÖ³/ÌÌ5ó¡¡h¹~Áüs ÖI{é8g ýÎ0FžÎ2Æ|—2F¯Û0Ƴâ(gc§ËÓÌ‚1qï#´9~IÈ££œÍÞç¼AήaŒ}t-cš/9cß]Ï:KÖŸaÝ’õgà—¬Ÿž“’õgÐS²þœzYï%ë/ˆÏúsâ³ÎšKÖYà)YgJ½¬3¥^Öià«”œáÅKÎðè%g|’¼äLÉkyÉÏ€—œ±®—œ‘§—œ‰#9û—œ¡ßKÎÐé%gx÷’3ró’3Í—œ¡ßKÎÐYKÎX·–œÁ¯%gðkÉzjÉ™z%gx¯%gâKÎÄç÷±',S/Ÿ9úªÅÓêÃG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–â_gî!£}Ï/\÷»XN8Jßνá²,ñH¤ó–N:œqû)¼ÉÇùˆ.ú£³üúÏ®~ôÉÿÚ~:endstream endobj 309 0 obj << /Filter /FlateDecode /Length 963 >> stream xÚmVËnÛ0¼ë+ØC€ôàš¤,‰*Ô È¡4AÑ«#1©X6dhþ¾œÝuÒ9ÈR³Ë™¡$æêÃ÷Û…÷÷a‘~ÒêG8îÏóÍ—Í!¹ºj÷Ãy¦Óׯ0^î?«ïó~¸ 'uÝÜ´7Óöô1’o¦áé<† ë}R·Ó+ë¨ë»ðk1ïO»û?FÇ?h°ï¶§§ÈzŸ â¬z3«¨ìg˜ÛýôY™OZë8ÑMc³ßÁÉ1Yе¼è{ØNã,’Ô=&ƪq;œdD¿Ã.F‚âÛçã)ìn¦‡}RUjù#Þ<žægRù1Y~›Ç0o§GuýF[¼w{>žt(¬×j ±eÌàëfÔò}›/¤»çCP–Ɔ• û1›!Ì›é1$•ÖkUõý: ÓøæžI¹äþáÂ-"W;ü¤>['•M#¶9&tÄq7Óš'\œHûˆ3žˆ8©rqái"â¤*p³hÐHô(Ñ£,Á0z4ØdTqœ€Ž–—8©Z°ÛŽ&"Nª%—t(éPÒsI‡’%=—D ûŸFë‹ñá÷f–ŒtZB†~kuly"uʸ^1î€3Ž "tΘú”Œ©qXc©'g•ç¸0n^Çp¦Û×qƒq÷ÿÂéÿŸÏ“"rqñ̅>Ct½&–â5äÁ¶Ðj8C½4Ï{`ǵÄ)y'ˆÃ[ÝÁ‹!o&ƒþzâ³§†8s,0û u­á‡ ú­å§¥.ÃwÊ==8)÷LÁI9£z2yÒIÆœ œ¬c¿Ðõì =sÍ|h(Zž¿`~‹>뤽tœ³†~g#Og£¿K£Ö­ãYq”³1ÈÓ匩gÁ˜8Ž÷Ú¿$äÑQÎfïŽs^!g×0Æ>º–1õ—œ±ï®g %ëϰnÉú3ðKÖOÏIÉú3è)YNµ¬?‡÷’õÄgý9ñYgÍ%ë,ðΔ¬3¥ZÖ™R-ë4ðUJÎðâ%gxô’3>I^r&ŽäŒµ¼äŒgÀKÎX×KÎÈÓKÎÄ‘œáÝKÎÐï%gèô’3¼{ɹyÉ™úKÎÐï%gè¬%g¬[KÎà×’3øµä =µäLµ’3¼×’3ñ%gâóûØ–©—Ï}ÕâyõßG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–âÂ×™kÈhßó ×ý+‡Ó—ƒo8Ïs<éÄ¥“gÜv /‡òa@]tš_þƒÀè[ŸüA"Bendstream endobj 310 0 obj << /Filter /FlateDecode /Length 790 >> stream xÚuUMoâ0½çWx•Úʼn B „H¶­JµÚ+ML ”„ÿ~ýf’Vª¶àååyæyfln~=ï&iÙ¼ù‰¹—âÅwÍ¥-üdý{Žnn²¦¸œ|Ý?z_úr|Û=ˆç¶)v¾·ëm¶­«þ.ˆ·uq¼”~Tý_´òïUý%AqûêÿNާîªdø™œöýGwHÈ_«þd?(D ÅwZÐÂ?¾íª¦~ê^JˆM]®›6ÓEÓÁ˜ŽU]¶ƒ+ñ‘Ò¢¬Š~x¢ï⪂Żk×ûÓ¶>4Ñb!¦/áe×·WòyMŸÚÒ·Uý.n¿› /w—óùèaDÈh¹¥?„˜¡û“Óvú©z½ž½Ðô¬Ø[Ñ”¾;ï ßîëw-¤\ŠEž/#_—ßÞiÉKÞ£v´r¾´ž'Ëh¡tÀÊ1³ b 6aA8išƒHA¬x‰x*ã%)ˆ ˆœBSDÖjn@PË„AñȘʠ0ˆa8F ± 8An)Ž  +4bXÂ*^c›³”ÛHø°°`&f P;á6 <9ÇB‡—iµÔ2)L¦´ÛÔeTõ±¼Vå.>öíЭ¼HEÎW0*5áŒ0×^Ž‰Ï s ÖØº´¼~${S¨‘$2Ë€Q lÐC™³]j{ˆ¡Q\‹8jFجç¬A´ä¦`«Z1F­c­f1urÆ=#ýœ1éSƤÏx-¼é ã907OÁ›¡¼Ò`­aŸaŒ¦¼šºe¸VrLÓ”¬hVƇje éyÞ ïQ’ž§(ÅÞ ²Äa0<Šxö¬à?æšhÖkŒSÂIc/ Ïÿ ž-÷ËÁ§uŒáÍr^‡øvˆƒ˜–óÒ´œ7#¼!}Bz®UŒ½¸a®àÁQ­Rƒ“é†Za~×JËyž1KŽçŠN¡›qH¿âCù±–4côÅmÓ¹ÈËáÐÄãÂùy½—¶ 7]¬tá"«jÿy÷ž›3Vч.íñ¿OOyôâ§/endstream endobj 311 0 obj << /Filter /FlateDecode /Length 789 >> stream xÚmUMoâ0½çWx•Úʼn*„‘8l[•jµWš˜6$( þýúÍ„®Tq zyyžyž›»_¯ÛIVµ~b¥xó}{îJ?YýÞ¢»»¼-ÏGß ÏÞW¾º~íŸÄk×–[?ˆûÕ&ß4õðÄ›¦<œ+UÝ-ýgÝü— ¸÷'‡cIÃsrÜ _ýe"¡~¯‡CP݈ÀЬ e|××mó$Ô£”2ë¦ZµG줦£1½úÛ×MÕ–Ä FJ‹ª.‡ñžå1”‹·—~ðÇM³o£ù\LßÂÇ~è.äò!š¾t•ïêæSÜÿð¾mϧÓÁÇÑb!*¿!C žwG/¦··ù-z¿œ¼Ðô®ØYÙV¾?íJßíšOÍ¥\ˆyQ,"ßT?¾iÉK>öWm´rZÏ’E4W:`eˆH-ˆDB„AXD– 2K^¢A žÊyIb ¢ ÂД‘µš”À2á@P<2¦r( bŽ‘ÁG¬N[Ê€£yE …°Š—À˜Åæ,å6>,,Ø„‰êag Ü„ƒ'ç¸@ÈâðÑ!­–Z"ƒÉŒv›¹œª~-¯Õ×r—_»nìŒÖ ^¤"çK•špN˜k¯ÇÄ„¹+l]Z^ ?’½)ÔH’ ™çÀ¨†NÖè¡,Ø.5‡=ÄÐ(®E•6+àkP-¹)تVŒGkÆX«ÙCLL¹g¤Ÿ1&}Ƙô9¯…7½f<ææ)x3”W¬5ì3ŒQÀ”WS· ×J.iš’%ÍJ˜âP­Œ!=ïQ›á=JÒóeØ»áA–8 †çOÏžüÇ\MÂzqJø iì%áùOáÙr¿|ZÇÞ,çuˆoÇ8ˆi9/HËysÂkÒ'¤çZÅØ‹ç Õ*38™n¬æÇq­4<¸˜ç³äx®èº”ë@ú%Ïzäȵ¤É£/n͘ÎEÁXŽ'€&7nÌïÛ­> stream xÚmVMoÛ8¼ëWpÒƒk’²$ª P_@ÛM°Ø«#1Y±dÈö!ÿ~9ï='mƒœ!5ïqf(‰¹ùëçýÊócX¥_µúNóeªù{wLnnÚy¸ÂtþÂÆëÝÓ7õs™‡ûpV·Í]{7íÏ_"ùn^.c¸²>'Õáy?½S°Žº}ÿ®–Ãêåp:ÿ` Á~ØŸ_"ës‚гê좲ÂrÚÏÓ7e¾j­ãD7Í|€“S²5j}Õ÷´ŸÆE$©GLŒUã~8ˈ~‡CŒÅ÷¯§s8ÜMOsRUjý+Þ<—WRù%YÿXưì§guûA[¼w9_t(l·j O±eÌàûîÔús›o¤‡×cP–Ɔ• óNÇÝ–Ýô’Jë­ªú~›„iüpϤ\òøtå‘«~RŸm“ʦÛ:â8›iÍ.N¤}ÄODœT¹‰¸ð4qR¸Y4h¤ z”èQ–`˜=Hl2*‰8N@GËËFœT-ØmG'U‡’ŽK:”t(鹤CI’žK"†ý«O£õÕøðßn‘ŒtZB†~kuly"uʸÞ0î€3Ž "tΘú”Œ©qXc©'g•ç¸0nÞÇp¦Û÷qƒq÷ÿÊéÿœÏ“"rqñ̅>Ct½&–â5äÁ¶Ðj8C½4Ï{`ǵÄ)y'ˆÃ[ÝÁ‹!o&ƒþzâ³§†8s,0û u­á‡ ú­å§¥.ÃwÊ==8)÷LÁI9£z2yÒIÆœ œ¬c¿Ðõì =sÍ|h(Zž¿`~‹>뤽tœ³†~g#Og£¿K£ÖmãYq”³1ÈÓ匩gÁ˜8Ž÷Ú¿$äÑQÎfïŽsÞ g×0Æ>º–1õ—œ±ï®g %ëϰnÉú3ðKÖOÏIÉú3è)YNµ¬?‡÷’õÄgý9ñYgÍ%ë,ðΔ¬3¥ZÖ™R-ë4ðUJÎðâ%gxô’3>I^r&ŽäŒµ¼äŒgÀKÎX×KÎÈÓKÎÄ‘œáÝKÎÐï%gèô’3¼{ɹyÉ™úKÎÐï%gè¬%g¬[KÎà×’3øµä =µäLµ’3¼×’3ñ%gâóûØ–©—Ï}ÕâyõÇG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–âÂ×™kÈhßó ×ý.‡Ó·ƒo¸,K<éÄ¥“gÜ~ o‡òq>¢Š.:ͯÿA`ô£Oþ~endstream endobj 313 0 obj << /Filter /FlateDecode /Length 598 >> stream xÚmTM¢@½ó+z&ÎÁ±?DƉ1ÄÃÎLF³Ù+BëÈGþûíW%nbÒÒŠéó6ï¢ýµ±BÓY±³¬Îmפ™mÓêd½¥”+±L’•g«üáN9mà´ò ³öWŽ7D„Ê Ù”ÏÄB‡„1ˆˆ5‘*f€HÖŠ‰ÀázAl@¸‰ e R3„ûTEÎ`̇ÚG=ŸÃÇŠ€£ý¡O3úÎ~Òö6"i0'¦µDoR3ÿl‡À3Æ`žÅ¦\aʳ`L±ÔŽÒ”3!>ÁtéeH˜‡k®K¼æº1zÔ\7FÍuâ¹n¤ƤANí‡4cºAox*þMÈc7˜pÌ|¼ažô”GSþ™äY¡®OµŒFï~Âüœ4J¨–2ðP-mà-ˆYƒY”GÆÁíÑÂ_«v_‹ìÒ¶nchi°Eeï+ÛÔ ¢èG»>|_púL¼¿zKcendstream endobj 314 0 obj << /Filter /FlateDecode /Length 430 >> stream xÚu’Ín«0…÷~й‹Hé‚b·M+„” eÑ5QÕ-±')R°‘©yûzlH¥¨]ŸgÎàãñLþ½nƒ…Ô{ f·Þ°Õ½äOeÃ&“•}ª{F”(Çlû¯F‹-v0Í7«ªº+Þ(qê%ŽªßEK> >> /Subtype /Form /Type /XObject /Length 37 >> stream xÚ+ä2T0BC] 6µ´PHÎåÒ÷Ì5TpÉç äg.endstream endobj 316 0 obj << /Filter /FlateDecode /Length 2773 >> stream xÚÅks·ñ»~Ó/%§"|xÜp&ÍÔIÜqf:™¦j¿Äù@ñ!2–x*¶õï»»XàGP’w2š^ `±ïXnFÕèﯮ.^¼v~$+á+/GW«‘ôZh¥F¶¶Âëztµý2þn=‘ã|›=ü;À×Þc×r7™j­Æ?B}6Ÿ(;~5„i·—aèÐøG¾Ã¶¿Úà(-3Ã…6<ပ95îß[©Åd Š6~³ v >ššÊ]™\IL,jï±ÄÆ% beQ]A[Yö¡ëІò -•J‰Z7C‰Ò%‰²–mþ»Ò9 *¡G•ªÓƒŠµ‡ì.Šú¦§=Ë•KÕÙ-é:Ílyœ?<8(SZd¼5uí—¤\9‹ž úKRƒ ‡ãuX†ø#µ‚öÔ…@ˆ»¥è9½MçY 6©åH¤…íñžÍᢕY¿ÌÜ͋פ¤ÏÇFh_ƒ «Á}³œ½U²Ìˆf%\–°ŸKÎՋ‚ˆwGî$¢ß;”8;ªN\¹II"ÀõMt®†Ag÷ÞdQ´z@íF&G±(©«WRWÅ‹VÔìëâ7eÇ*šÆµÀ@„ãêLßöå]íù]÷U$Oæ¿•Ú :î¢U¥²—qû§r0E©^²-Âè3jï#‘™Í4kWb½ª®#ÄWe'E>¨zî¹Ï›×¡±áˆ !Aí¨;r†«;Öº“è÷ÄM•’ÂÀq "Œþ2©Òçé*œe»¦`´½A|¶K²Ÿû0¬Ô;ƒd¢*uÎDU* ó*ÝEb»CŸm™JP߇Œ²›Èö¬`n”÷Â(Ÿ¨Œ)£ž§ÚMnnËh§úQ<Çt¥Apœ+.ùtxãOÂ×ß•¨ZU0±éogL|Ãþ4ÏIÀ | ³Cöî/{!ÂÙH™¾DŒ`¾XˆP¸kÛtÊ+›ÇKÀ´õ-sØ8¥mŽATA©ð.ŠE ½פ3RÞ¥{Y£VOƤp@kŸà¼«íyÎcÔ`pm0/äT.g~/1¤8H.OOМúµwËx¹Š;6ArBÇ}ºhî0Í2É“åùf’@ú·‹Øæ\—ˆ"«ŒU~²Ÿð¯“i­ô8^”Æ»ÕY"–ìe‘çÙfì} ­ŒU®<½]®Ém…©w\jø~/X|/áSü]†i¿†Ãx?<‹u 4ÿ…à-Ÿã7Fv¬uZ…êœ3ËÍÿ0É® ‘Ɇü¹„ h…LZµà¥cJKkÓPŠ+O¥©…W`”•g‚~Ÿ-CªKˆ_Œ?½FZ„ã®â¥y¸fÆ®DT¾_õî`#ïÑÃAžµÑ9AÿÓ7Âïòýe,#ûnÇ(]ÛÞKõ S ™[FRr[…Õ*R\IeùËÀpÅ>Ÿ…ÏpÛ>LKp[’O_”uIËXë?늱V%¬UØ6ÃZ•±~&: +pÃþúÌp·ç¯fà´Ö}¬ëéHZ÷»Ä Î&ÍŸz6XFjyŽÔê ÖúÄZödèM¶ö‡ôšº¦Ù«cã7Ð,àõÞŽ"ëÜ¥ñÖu¼ÝGÀpÍù6=ÿĬ9·‡²Q¢ilî—-Í7¡(æ5˜›F÷2t£(çqÓ#ñ.!eÎ"Õx°^Ÿ€Su'sŠÓ z‹ïнÉ~øÚxQ"ÓV2>J<Ò¹Œ8›ÂU:)e¡Evíta,±iÒKnR¹dºk®À#-a×k\à!Ç€7OOxË›6æ³sÊ–œåË:êž]§x¤ä“áüx52 ‚ûŽçôÍ^8©WQs¾M'àk ÀhÆô¶ ~ðг"=9Ä81½"O hûÕ†ƒ šîBÇ$0<vå–"B d~ÐÔ€h~@Xç—zË0i6Û/c´·íF2I‚vŠN™#.>oâC&ÀÑÛèG~âoÈšÃØ~®wjÊs!¿¿ ïô¼Ëêjü¼Ó¥÷¡ã’߉IqÉL@Ðæ¼û4ækH¼RÒD̰¾šš¬$• M4vóë.!_w8”Þƒò´W9^/=Ô^ØÎ}uæ. ª$ý*á2 Óߪ?·i¨ƒû„]HîgA|h¾ Òî•j$Ÿ?£R@[ó¹›k`|ÿ!}9ï=Ã'“tÛ»÷¯½_Qªäôà§iµä± ½IW4óì‰Ñuú3;ôÚ¼ò}îgn¼gÙU(o ÿO”ØtÏ_jÔt$—bÙ8ÍÏáá×& égؤÏè ”ðƪÀWíܶ Íü7/Ð¥;‘®‡¿W ª[‡äçw“‘pXVBÚø@Î>˜,–bcÉ2ñµZ+28ñ :Þå®ùw?ØŽåìvQ7Èd¶(t­–”x­Š0³8ñÜϵþp3»ôendstream endobj 317 0 obj << /Filter /FlateDecode /Length 900 >> stream xÚmUMoÛ:¼ëW°‡éÁ5?$R. ¤d9ôMðð®ŽÄä ˆeC¶ù÷³k›m‘CŒÕp¹;;†wŸ~>Î|¿Ž3óEŠ_ñ¸?O]œ5ß¶‡âî®Ýwç]Oßcìc]=~?§}÷Oâ¾yhÆáô9%?ŒÝ۹׬“B|Æœ‚>âþ)þ;ëvÇw%gÏçáí4Œ3‰ä§áô–’>\ ‚‚6ý§ã°¿ õEJ™€õØ7ûÆ8ó 1¿’{Æ~ºðÏ`W(-ú¡;]¾è·Û%=°ùñýxŠ»‡ñe_,—bþ+-OÓ;qü\ÌL}œ†ñUÜÿI--=ž‡·B«•èãKª˜æÿ¾ÝE1ÿpÆ[ÎÓû! Mߊyuû>Û.NÛñ5K)Wb¹Ù¬Š8ö­iÇ[ž_®¹uÊ•MúÑzQ­Š¥Ò)V†€Ú(TØ€àx¿àÞ¢ žjy‹°°!ÀÐÔ•µZÔÀ2àP="¦ZdÔ0\ÃG©R\¡·”).–2*ÎШa!„U¼Ä,†³ÔÛHð° `+jÐÃ.¸5Nα@èâ°èÐVK-àxŸ%ô˜Ü3š% A°YÓ€z¡ÎšÔ>kP#¬³¦õ™5m0W£oš¦Ã¾žj­®§Üý·.†ÐZ¡ŽT$X/©)n)æ#W—„o(æ“oÀRZÞ $K¢p4’ŽZ¶-bâ\­1¦Ü°Jä æP"Gñ‘XÔQ¬‚i/8ºkÉ^€ÂZqŒ:ZsŒ½š9”d š­Bù Ž)ßsLù-ï7½æx˜ÏJ›¡¾Ò`¯ažÉ½)f¥É$†µ’1™¸ dÑŠcªCZCù<£7Ã3JÊgózÌnøþHȰíáÌYÉšäTœ¯a…Šï¯Æ,_»œ-Ÿ—Oë87Ë}êÛKÔ´Ü—Ll¹oKñšò+Êg­JÌâ.¾GZyóº‹Vðc­48¸’ï¼äØWtù]Í:P~`áŒñ±–rZŽq.nÍ1]Ç ÇàSÿæ/©ßP•ýïuö¿7Ùÿ¾Ìþ÷Uö¿·ÙÿÞeÿû:û?Èìÿ ²ÿƒÎþ&û?”Ùÿ!dÿ‡&û¿1y–¦¼ÍH·œn5þ¹ã)º½ÝyšÒ“Bï½x#†1Þž´Ãþ€]ôGoáõñÅ×Mñ?®Xêendstream endobj 318 0 obj << /Filter /FlateDecode /Length 675 >> stream xÚu”Ao£0…ïü ï¡R{Hc›IE² H9l[5Õj¯ 8]¤Ä ‡þûõŒCfUm‰óçÙŸ˜»¯»™ªÛƒÅœ½Ù¡½ô•™Ÿû.º»ËÛêr¶n|¶¶¶õôvxb¯}[íìÈîÍ6ߺf|ðæ­«N—ÚN®ÿ›´ýhY »·¿gÕy8£à³Ã¥9›q°¿7ãÉÛ¾q0_f_Ë þ²ýдGι/®6í3Dók 6Ÿ"W÷×Tì#!YÝTãõ ÿ«³¿X¼ûF{Þºc­×lþæ_cÿ‰9¢ùK_Û¾qìþk8ÿrw麓… ŒG› «íÑïéïáy¶lþÍIo®÷ÏÎ2‰Ï"d«ÚÚݾ²ýÞ}ØhÍù†­ËrYWy—„‡ãdͼ•/á/VÉ&ZKáµL¡À½öx™”¡°ô…Y… juÛÃwöÏøÔ¯ú³ï¯Éx¼Šý2Ž$OAËP‡ýy´½º„t4îsíŒkì)$î©Q¯ "7A£?gÉ@‡c(ô„3jok9E u9¹ŒÁ/d86dqð/@cNiЃ9eyD¸H…{f¡®@/ÃZô`~ž£G¡. ¿Ð˜!ÌÂ`½DÈoÐSòc_ ùåBÂZ }%÷m<;4x²àÇ{[þãW<ÜœQ â¥$ñR1ñR â¥â¥Râ¥2â¥ñR:dÈA‡3NUAUI5'ŽZG-‰£Ž‰£^GGGG½$ŽzEµ"ŽZGmˆ£Î‰£.ˆ£.‰£áÄÑâh$q41q1‹/üÂð‹‚/fÒm|T—¾÷“Ž ³·ÙÖµ¬ÂÅiÃÓKýõN‰"endstream endobj 319 0 obj << /Filter /FlateDecode /Length 291 >> stream xœ]‘Ënƒ0E÷þ /ÓEÄ;I%„DIXô¡’~€±j©Ë8 þ¾ö8m¥.@gfîµÆ×QÓ;%môfÞƒ¥£TÂÀºÜ :À$IR*$·÷ ÿ|fšDÎÛo«…¹SãR–$zw³Õšîj± ð@¢W#ÀH5ÑÝGÓ»º¿iý3(KcRUTÀèÎyfú…Í¡kß 7–vÛ;ËŸàºi )ÖIX…/VÍ8¦& eW´lÛŠ€ÿfI,ÃÈ?™qÒÄIã¸È*Ç)ò1÷œ!ÏyàÂsœÆžÈjŽkÏ'äüâù1x[Ïuè§žŸc¿ ^ìŸã>— Á}ÚpÎ /ußÞ_Ïçÿå7c\døH˜•OI*ø}G½hïÂïä6Žbendstream endobj 320 0 obj << /Filter /FlateDecode /Length1 21760 /Length 10750 >> stream xœí|y\[ÇÕ虹Wº X$.a0‹ ØÄ³8Á+vÀ11B K˜4 Nb;!kÓÆmÒ4ÎÖ¬M"㥘¤µ³´I8N›|é—¤ÍV§IÚºvûR§ibôÎ̽,Ž~ý¾÷þx¿ß³®ÏÌ™™3çœ9çÌ™Ñ5 ô{!†@—§ÇÝW’-À+$Þ³9$ßñÛÐÛˆ¿ ÓÑ×ÙsÉý¹&@îììøéc/üÀp nC—×ÝþZÕ‰X€ô<ä1¯ ;Ö_#a»ÛY]=¡-HÕ‹°}=¶]Ý~Û(Ò±ý¶gô¸·ôuEõ‹Øþ3¶å^wwù‹GnȈpþªÏ í„ÜÀ’÷Ùx_ÀÛ÷ÃÁ{R.ÂfÔi,>ìƒôDËÚT5ZI§ŠŽ1ÄÆÁÿwͤ ¤j†ÑÉ‘>aõ¸/ò g5ý#ªðŒ¥ûàÒ^WÁ˜IräS¸¶ ¯ã¬m`€PËÁ7“‹#ý°Þ¯…R¸z¡ Eš"·Dn<?‚ÂK‘Ó ©àÁçHä/šÿŒüfãŒ;àNxÜ®ß.”2„”?„Ü%´ˆ$Òù'j ¨ƒ p„¢Näî…I2¹B¨F.D‘Ê -ÐwÁ™KÓLͺHCä˜QÆäz'ŒÀ~|Fá§ð6‰ÑœŒ<9 )Kp={áUrH?½u¼’­4 ÊqÄ?ƒá5b'ÏR¿&FS¤qi.¼‰P«QÛ‡qæÈçô*|®~!ÖEA,ÚåÛÌÚðsø€¤’²Œ¬¡³¨ŸÞ#@‡ ñiÚûûÈý]â$ûi =*< >.~©M?‹qÀà‡ð,1àJe$×7Éïi5]O@?¾+>*þZrãª/ƒ¸‡ÏI<)#+È¥¤‹\Avo“;Éòù„VÑFº‘žº„MÂOÅEø¬ƒâµšíšµŸŒ7¿0þ«ñÏ#E‘í°ãa+j܃+;Gá-|Þƒ‰†D“X|d’IV“oás¹™ÜO!’½(å5ò!ù”üü|I-M£™t>v ô»ônzŸ×èŸé‚E˜!8…¹B…Ð,øQ«Âmøì>SÅ£bí\¤Ù©Ù¥yDó¸æ9ÍImŒtt¯|õÀéÜÓïŽÃøõã;ÇGÆ÷F>€$ôa*ZÁ¨½Ÿ èïqOÁë$m—JrÉBr1Zf=Ù@6‘-hÉëÈ]äG\÷'É3h¥ß¨³Z¹Îùt.]D—ásõÒMô6z;ÝKߤÿ$!Zˆ’„\a±Ð"x…0(ìÂÂ+Âï„…SÂWøDÄ(Ñ&΢S\,®ûÅ{ÄÅ5ë4/k>ÒFi{´Ûµ£Ú¿Jó¤…Òri…Ô"Ý*í—Þеbt>ûà'Ó÷“Ò…”_£t)”®IJb”+ bvž\k—ÃGjìò(Y»¢ ñ›kìÍrø8Ç8~Ç ˆgfâ¹6¹«F“V¹6\·¹k¸¶µÙ펎ª¶W{£fçÁî¨hD£ [ì}»‰e!áµÔÎßMAg@¥Â©öšÚpн†i²kÝíáå+šjkÒ23›gç…IµÇÞû¢pœ““@5ÖV‡%.Fö±ÕÀòî¼CÃ7¡­ÕÓnow¯k îf&ÃäD¹5aËåÇ’§šÈ<¾ºiÇôÑ4a¸6Ù'³æðð9|飙¬lnF8—f×µסè›Ðˆõ«d”F·57…É6)³•°U)ëóÚkYOë9¬·/²w ohEפ‡aå`æHjªë@ä}H­•‡›ì™áÊ4{³»Æº;†WîIqÉ)gŽÌÎÛm4)†Ý§"1†éˆwrŒcœœaõ+'-K˜Fö%aÙ#£&Mv\S+¼e0ì)C2ü4œnGøÂúêÖaã|ÖÏæ‡5ÙF»<üwÀ°ÿó™=nµG›mü;0”ÅÉd¨áøv:ù¹,D¤jô)긷çÎÎÛ£Œš–£mÝÍó Ðü™™ÌÁ7Žº  á¡MJ[†¶´p8›Ã´•šIZÍF†&F&§·Ú1’÷òËoRXç˜üg4'ÔvÍó¿ö*ãõ«ìõ+Ö6ɵíªmëÏh)ãe“c*N¨nÒ¨ŠÑ4bP®›$f¦˜°˜ÿ´<¨ÛG%F%ï!r]ØØz¡R6Gefþ›“F#'Ù,^MMSÕ ÏwžÙ^pFû õb†TÁúƵÃÃQgŒa¨)—¨F<46eÊÕaX;3ÿF•1hN »ÐdÕŒãOéR›g¦©x3~XtÎΫÃD7<\g—ë†[‡Ý£‘¡6»l´ ÏÑç†ûj['g42vcZ¸î¦f´U™?(á—O àmV‚E{)9¦•Fé®ЈÇˆ’ÄcRtZÍ1*<ƒ‡º¯xùì4žª8]±ÔøYEÃé ¨DÜø…s2M™¦l,i_É¡¯\ødñûvµ.ò±ø'Íë0Æ]w{B¢˜3W(·V K¤‹Ókm5Yu9«„fi]ú%3oHˆipdÑ,!'{^\‰½&»¶`­¼Æ¾:»;zƒaclG¢7y0úrÃåqWû³‚ÙÛ…áè Ãq7·e]›}»agÜΤŒì¬XC´&Óšž‘†‡ ž1Z’5û´šŒ´Ù·¦’Ôãxc7â5s9nÎ>rÑ’QveÏÎÈ0 šŒÙú4GêEzÌ"³R‹2ñÄß(ãjR =—&;Ñ- ÇŽ/5žji8þÙq¨<^yÜxºåÂg¦xK¹ ÿÅ——D ç@Ë&Ò²)¡4ƒÍ›7·Ä‘ãÈÊq8æ–Ì›W\d6[$‡Ã>C›”h1‹3‘Z­}F–cÝO ë_ºÒÿتåëŒw¯ðu^õ·ï>ðÅvÍX܆ï+/#o5 ]¾ý˾8þ¿î$¿1öÞ|É¢`Mm§Ýâv–>àõ?Ûî{ekì·l½tYqñÆ™ ömî? }ŠkÈŠüæjîÄo[C *rhÝQ¢ÇØrU!2”‚_ˆc QD³QҚ­BtœqÌ †øì‘tµúÚV©O’n“Ddé^),’^“´ÒÝÉdÞî,-›>;f<ÎÂäØgÌBˆšÊãËMÅÅÆ_Î!-Ng¶—Š–0Ùç›JMÅIvS¢Ù\\D©W´uç]wÝž}ûœ33îÛe\轟zn"R÷øÍ7þNC~‰§pQäÑ*.ÄûK)IwÝ¢7èsS ©¹³ ¹¹å†yI¥iós—ä¶Zr7|¹­s† ÛgÝeþA꣆¤‡R›¹?åé™/¤ùë¤ßÍÔÕ˜‰ÍbKvæå–”‹åyKÄ óÖèš:ŸssÌŽ˜_Æ|aøÂi*-‰%¢± «ÄR”™˜¼~–e-ˆ­Œ½5vWl$V³+ö©Ø±Bl¬U°ŒÒÇ\æä;­V js¢ŠÐ³ÜF7dgfÒK]Æ8ŒÙ1Çñ”Cã(,g>°eØKæ”*§÷–“rKvòŒ‚¬ƒÚ£ZjÓVj©¶°Œ™ÎزÉyªåøg§?úˆ™öXåñÓÇ0â ptÖ<øLjô‘M-°)›E¹RþÌ-ÉaQ'å,¤<ÍII‰f‹Ý!h¥XŠ(†* í6<õÌâà…s7¾ÝIŠk¯¿z0=œÜûÚ ×?¶Ü¨·ÌxÆji{Á¿®¨Ç×u¿#ýÚÕuo[ºuib¬!5+;ªwöÍ›’7ÝXïr_”¿åä—Û.(#¿›i5Îl(¸°õÒe  ëуèÁ$H‡w]í6°&ÑÕB‹¦E¿:Ú+lÔøõÞhŒÄHsâßÒü3ñTªT??¥ÐZßZe]¿.e¥Õß“ê¶nÑnI:EO%ÁLâ Ërs«¹Ï,˜­q·ï5R£QL³FIÀü¢'w$XÅh‹ËÀ¬®ÏÉ- ˆ!Õ†­=ÙŽV»Ò™/lÄf.6fI®¬Ü›T)-“)%£¤TÉΆÓÇ–79§69X8ž`n¨8½©‚0/Ä—³PgN ó˜ŒP\¦D)“…ú<’éàž.ËûËOÇOÄßþ~þꓨ‘mž›N¿MWÄ”­¹áŠGÉË{‰ø}sæø»ã_å§ÆºÈÛ«»b™ö=Ü_jA]²à2˜J6ŠWÓ[é:ñÇ"уVC½†ÄPr8 Øúâ3q}@X^KѸ q%Ö˺5DÖ¸4T“=F*È6`Ë=†AÇ÷µS9*-cêòœ™v“V+ÍÅð*¦_î­z½ñ{„Äo-¼ÂöäâÃëÙ^=€JnüÔ)sÉ¢´’žj+D¡‚hÅ(ZQ•@™6÷éîû>fÏ0˜Q æYÕ’(+anq’€pàÈ‘#Bó‘#_=|äθO4›f ôðÇÝñÑls’JtTdI—(I:* ‚N/Rª—t¢ kµš9šÈÑË£[£û¢‡¢5Ñ:½L¸Ybp&Ó¢%jA3ÏcN–Ã0›Uù¹WYÁ7Wyù1ß¹ãÊÐN¼wìÕ¹êÊd°¿®\ç*RТriFJ9¼»?Ñ"e½vŽº¢íåRl"Bk¶?ÑtMG4‰¡ÿØTîT>D©€ÍŦbb*6Ù‰éî:öâWãš±/·ŠWÿ³Núr-^ƒ{+÷–RàYWK¼•³X{¡n¶Yשõét%ÆùñóÍs“kõñõæÚäušuú•Æ–øóÊäM¾ÝØßcnO Iz­Æp©Ð¨iŒº4¦[ðj¼QÝ1Q«(™¬ÑщY³\BVvɉ€dÄSA ßK#i¬?…m$Äc³À…$6æg(Le›ˆ™÷8n –S-ˆðsíÉšÔ¥_¥Y¥oÓ´éEÒÒœ`,Åó”óxŠÂ÷N̓7üübþÖŸn|oüø‘ÛGölÛ1‚_ñsnÙ<þÁé#º†dÃ+/¿ò«Ÿ¿|ão'~¿þ£Å„9'¶º–‹b}½ÃÔ_§×úRû5}ú`ôµšk£µ9f½œ“›aN×ëâ3rsgͼVPBm&Ð%;´ÙŽ˜Ô¼ô ™ï¤ç‚u|Yü®tJ¹ ΋¡òKÐÊå€mžbSf?ø%VÆR;É,*å7‡ïUE¥ ©‚癩G^vtn»õ’¡goÿ¹`kÙEõu×Ü3þé¹ÌQ½v~ã7?¡k>à½ì¡âœg†:w· +M掆%þY_Þ+Å”m¬[9XÈö£'ò±æwš7 ÒàjWkjI4&&¦YÒÒDÑ(&F[¢ÓÄG-ûc+X,ÉiTNw™–%,³¸R›4MúKŒ«MëÖZÖ'¯I½$íFËÔ˜’!ñÑú$‡,)u(¤Ç9ø­ÉêY§ÞšðÊÔÂîLžnÙ--x92Bf‘Ÿ”HE¼ûÐR%E–Pô.xÈõdÞˤîñ½ãû{ä%’þ›wHÚà§ß~uü7ô0é!?|nüG¿}oüÞ}/‘µ?ÿ|ü()!i{HôwÆ?b™±ý-afÌ€]óhhŸÖÔ>-½¨û¥UZÓÓ»1¦=öòøËnˆ&þ£ÔÒN¦ÆŒþIM3ZéÆ £ög‘“ áwUÖúÈIWjF”Q§Õ¶¦âñžª³¦ „êR­‚!Ã8JܳÌDL£$yŸ!#Q£ôiW¡1QAËë¨ ,yšnµ2WŒi_%]Oýôj*Ò1š6rëîy áAÊYaœ¡ãxÃd‡:?ÙwÄæ;c¯4¾Àr#žòeø!¬À£¦%”é(eG½ºC¤~×d{G¢ôU)µd?p׉GîüÖ5w“ ÿøÕë§.|ø¹û×e<ñDU…çÐU/|Ô±ñ;w'}ëO4=ö̃׻ Ñ’k"ÍhI'¼îš©1˜ µ†í±Öt‰isš°ÒÜmÜØnî7 &n7 'Þö#C”FÆDø¾+šýoŠ(»!†0¹ÙÓ„½7¹{cb’Ää1ú ¤Ð.WVR†U#fÌ2Ä×Ë~™ÊCRÐÁl6ÇAØ…‰:n›:8º}ƒï¦Ä½™|rËáí×Ü6þÉ›ÏFȵÉwî_sÅ}‰÷Ð-Wz®¹î:yß‹#íëïÎÏøé-‡ÆÿþÔø<»Öb6ŠÃltË!ÛHµNI1&cFè,YOô©¶t£ša2¦2 –Sé¥pNõ kž&é´:NÔ‰Ú”äÔdªŽŠ‰2D Ú$s¢9Á,hÓK&‰Å"YgÍ$æ(S&ð£%?[ OG¼²íˆÉ(;³H $¼§dÞC¾x|íUÍ¡àÒË¿}dÛønRþíÖ6|¯{éã¯hÆ’Ò/n?úÂÃã㺋ž˜WXûéCø<7ƒíÂø…“ýïQ"ì>ftš!ÉR’-Îj…1ƒÈ£$Ë’RbÑ™bL‰‚†@œU#%¢òÙzWñ¼’ˆžB;,5³ÅR2¯$l>i¦}æ{ÍasÄ,šib¶r~'!ñIöæB†×à}üNº4iñòdõâÂOrçg,&ØQ~¼S1fârn»Xm¬”«I#]\f“­àl!N/Š·>+–èT\€ËˆYÅEˆ"!×àׯ«T\‹ô;U\‚ȃ*®íRq= Ó[TJþ•Š£’ßQqôQò§*Ž>JY¬â裔*Ž>Jñ©8ú(e@ÅÑG© T}”êVqôQêŸT}d{BÅÑGrœŠ£ä~GåÌâx[WÎ6ŽG³µä|›ã1¼ÿ>ŽÇr\áidkÉ9ÀñÄãs^äx"§y‹ãIœÏG7óþ¿s<…ÍI8žÆhf*º¥3š™6ŽÛ8îäx§/åx.Çk9>›íŒ™«®ãú«8—5s=Ãc”þçk™90}à…pƒkEh„.Ž7€zB*•ŒÙÁÄYéÆ~§±§çç#VÃûÝÿ‡œ &5“aŽtCÿ$Mû–`­È+„r|æÀl+â½U8£ë•8§uñY+‘_!›±lGªŽ»‘’t¢ŒnlÎÒvþ4Jùk´óa çœ\Ó  Kf"'êÀ‘ Brœ5×7Íœ¢h@;LµžäeöjÇ™=\þFìcœÿç¶–±—­È‡š„¸FÌ62¶MHåºý Ãr>_—×€å2”ÝÁmîFz6Ï‹\™•øLÆ-ÿ:)þõ£\¦SÒ~#•—Ç£àZuNÊõ©Q;›ûÅmªÖKùH7j“7©{€øx„®Â²Ÿk­øA‰&æj®Iˆ[yÂnÔEF*·ƒJ$ù¸íÛyd±Xë岦NjGååæº±™=œ#Ó» å÷pŽŠõe®µ›Ëó¨ÞPF˜ÖAÕn¾FeÞà¤ÿ}j”÷©ôrÛyä)«›ð[Õ¿ŸK“¹„éZMxžÙ†µ8ï®iÑÀhýœ—"{¢_±vHµˆGÔàYt!äéåVña­ðö¨=ýÜÒ,¢¦bÚÏwl€[´›Ïgš2ö¨³&$xøüͪTŸºReï1SVèà{¸[í²«Oµ®_]‰Ó÷óÖ”Wƒž¥È—=ùœjz†ÍçÙ©)ºø^êF¬±^î!/oa=Åãù“”ÿw% ðˆQh½Ó¤,ÅL߈ç}B5F×a/;ê°¼˜÷×bÏ*,Yl.Æ“ ŸÞÛüfÀ ‘GSð±&Oö+ûD±hŸjó©ý÷N±)ÏLdä ?·ñÑA¤ïŸ”é™ÌmJ ^ ÅlÖ<˜‹ß0îÿ½³î~2NŒ|Íz“çaã`Ÿ·ÃíñÊÊ]^¹Áßëa—\íôùîÏß+÷u{òåwÈý_0fò*w?ë ÊKzq^ayùœÙXåËUÝÝòJ_gW((¯ô½ÍÞöª€ÏݽÒÛÙßíL°Ï;eµwþo Èå—É3|ž€?èïÍâTÓyGC#¯‘îvo;°QöwüK­å€·Ó yÞvÙ×+‡tõ*y¹;$;äÆyYGG¾ìîm—½ÝAï@’åOrÂõú;î¾®Áé]^¹&àðõv²¹>4íly¥¿ Y/õyºüÝî`ãðy|ny•»¿·×€f*+ªö÷†¼=L·À t£ÑH¾¹ÝôuöæÉŠ]/R{é æËÜÒþÍÞ€} xÝ¡b<ýèï Ƽç p:ú»»庢ø? ñõ¶÷C|©ÁÐ`·wº%X¤™o Ç×Ë)þÈÖú{úQâÀvŸ»ÓÏÆºÐær—·»-â—;}›½œ€‡¼[îFsÈ=^´]¯Ïƒäî¾>/š±×ãE!й}ÌX²w .¦ÇÛ=(ãÚ‚;ÝŒG¯››7¤n¢ *σ3Ú¼rCŠ[Ó»©Ÿ)Ûïaö—;ü¸d䈋 …XœàÒ^ô{CÝD“ñðÄf»Ó}¹¯Y{Cž<Åh8½Ýìëv2lv¯w ØçîCÕ¤U ù‚Œ1#ï ø{üœ[~W(Ô7¿ ``` ¿G Ø|¿§ +ÔÓ]Ðb¿{TÐ\ïf Ïgÿæ„o7özù”¥Ë—Ô-©®j\²l©¼¬N¾xIuíÒUµrÕ╵µ µK Q†¨Æ.4ë„Õ˜‰™OPQ\Aˆ[ô[Œ/†2[sÛ <èïg3=,ÚÐÎ|)a‰ÁÁcý‹Û¯Éݯ—Eb¾ÜŒÓºÜþ6¶pfè eXt°pò¢ã¼ÌÒ¯'„~î@;NéÅ\èïôrîâÉyèŒÞ¶þ²F5ý¸£¦-('8¡ò¤)&'³h“7»»ûÝmaî FÈôÙùòê^³ƒ«À5©™ ÃÛ-û¼&³W.£{y´±¹îöv‹ ŒÊÏÈy¬;ÀmËw÷×”êöõøØ‚P§ð6• åñÈ;ý˜PûÛº}Á.&y)æîÁ@EýÑU}ƒ²¼ª…ÎÄí±¤cjq,{mê÷¹Ì{o W]A@Õ›»üýÝí¸‡6û¼Jº:kùŒ=éÅ Ð>•â&׈jñÄê Mù˜-Ì­jÝqn¶\åÉ ê¾W¡wh>#X½ª ™e%¥³äÒ²ÙsJæÌÑëW×cçœÂÂ’,K‹KåÒysËç–¢¾a×ýËÍÈZªz|âWU?ÿ’Ç.åì+Ú 1àÁ¿/ŸòkÃÄØ*~ b_Ù¥­]¸KØ-üT8ˆp@~|þ•þùWúpþ•þùWúç_韥þ•þùWúç_韥þ•þùWúç_韥þ•þÿƒ¯ôÏøæ?…»9ý¹Æ>øÚïïø[oàÙÍ#|Z[Ì Åzq±x–ågH`9ø›¸,å{†åeõ]$Lî€ï‹ožsn|ògy!’Ã~OæìO•â œ@ˆ `òaÂz„[v!h9ëñ#\pá$q –‘Û‹]£XÝÈ«=º‹xÓ­4×µðæžKš•ºa…R×,QÈæ+d…%Jwþ"¥ÎÉSêøì¢!VGŠU™3¼&°¾ìÃ’Ð Ž°Á½B„¨ U{\Büž,GÑ®ƒ‚D A›Ú"‡2b0UEÑ=ñ`£¡Ç•z|O¬©hWÕEôCx á ‚@?Äçú\MßqXV"ìB8ˆpá‚–¾Ï{ø¼KßEªßAB%Âz„]N HôwXéoÙOó’á•”þK#}—õ–qômÄÞ¦o£j¯”–àˆ³@ElÙ*bIS‘xsÑ(ýõȳl£ô÷{d§íÞª9ô #Pö2d„å­}ZÄÞDìMB¸ á^„0‚缉sÞÄ9‡^Axæ ¸–#èèk#(f”q,²U™é«ôE° QЗxý ý¯_¦?çõ/±ÎÀú0ýÅH† ª¢qpŽk#Ö8®¡ÏîÉŠ·EªLô šÇ†eB%Â2„õ·"héA:c¤ÝLž†Ã:@Êø”×Áý:pm°¹Õc2+ó/@ ‹]ò.u9vÞ‰MV8n¹1V8®» 1V8.ߊ+Ý›c…£}b¬p¬]+ËÃb”Þó“¬[é²D®Š£h¥´ÒZiD:ÀøBdºý`$7-v—Ë9+×64F†ž!C+ÉÐýdÈK†®"C[ÉPºŒ 9É• e!zš”¡)†ˆkïÍrW2:L†ž CA2ä CÙd(‹ ɤÔ5J3G–óª–W{ªØ¾Âú‚…Eq¨c&Z4Ã:·ýA,"DxË…Dò …8%ƒÕ3öäV*íüùEþª éó8ñytÃóð‚ˆzÃèydÂ~:=ËJ„õ‡N D´H=¿•—qX T"¬G¸á‚–«s‚_Uñ)®Xªô2Ö¢ÏãÃþZT&Ít¥­F§ñBáV+‰Ë Ë2"´Ìì·âM:Ó(1ìÿÜðÏ  ¯ÒÓ[è­ŽŽ¸M­où"Ý6J¾?âxÚV•D¾"F)ÉÆº ‚¼=¬:V—€•>Žuшu N‹qäÙÆH,›µßö…õ˜íSë(EôëÓ¶ßÈ£"±ýö<¾ßö†õÛ/ FuØóŒc”`5&sÒÖ2Û‡9éV¸kÄv«öÛ®´.¶m´ò¯2pY[®8ÛJÇZۅȯÆÚfs‘ç~[¥õ2[…B5—ÍÙo›ƒ*84•eåBíœáêÒQÒåÊ“vJMÒ2ižT$åI™’MJ—Ò¤D]¼Î¨‹ÕÅè¢t:V'ê¨t‰ì×zœì—+µFViEVŠ7RVRå÷L(ÑQ¸ B=­_µˆÔ‡y ¾MŸZe%Q+Ö†5öE$_õ‹ÂeÎúQ)²2\ê¬KË/mÚMÈ-ÍØ¦×hl%Öµ-ý©›@ˆiÛÍi¬ž¹íææfH6o®L®Œ_h*¯«9GѪ–ΩOòxzxgýª¦ðcéÍá"†DÒ›ëÃßa çù9Y[s€ü•UÍM„…äoµ+Y¿°°¦¹¹~”¬át “¿"FÌ_9.dF².C¡»K¡ËÆùH—Å*¤Óë!›ÓeëõœN$Œnw0«¶fwV§±àÕ“Ó-òtšÃÙH“ÍiÌCp˜Ó61šðBNbµ"I†•“T°r+Iå$k¦H T’&Inà’2EcUh ïOÐÞGç¿ûñ.r:ɞ͞uìïµÚk½­á7w%‡‡Údy·§YýCŽÖ6O«ÝÞp³Ý[öØkäÝ Öcx^`¯Ù ëj›v¯sykF¸ÔÚÝ5Í{//)=CÖ “²J–ŸƒÙrƬ„ÉZ\zŽáR6¼˜É*e²J™¬Å®Å\ð_Þ´[‹š«×)õ…ñÚš–Ù¼Èlì[ȃwAfòUicx!y¢Íáû¢° Í®š]ņpO±¡XöÇ¢Ô¡ä«d¦‘GÔ!#v›ì‹ÀêöCr­¯FùÄv…ú™Á•Òü¦ŽÕ†]îš` >œ»ª>\¹bmÓnIÂÞV¶¤ðü‰¾èèÚÑÈ!¥3;ç³NA˜$d}¬O¯W Ïö¿ZW³]0DŸÞC\¿Ô5 áŒúFŠ© Qý«> stream xÚÝ[YãÈ‘~ï_Që'Ðâ0’I~ðncmöz 0 ÛlIU%·Ž²¨šê1öÇoœÉL*¥®Ùõ“ÑèâyEFF|q¨¾{º«ï~ýáû‡ß}rîÎÔU_÷æîáñ.˜»®éªÞ5w뻿,üýß~óݧЧD½¯Œi  "ùto;ø¿ù ¶ðÿ3=Ý/s‹¸Nøg¿¿ç“ЬøóþÞ†Å+ÒŸåÃrćá¬]ØÅþx¿´Ýbov2Rž¸·­4fú¿Ö¦Á±¾bO¯8จµ¬z¾ä¥,géš*´-/j…=°‡#ö°Yß/=ô­³„ÅÐóñ¯¸ ¼‡Yþ@3ƒÿOüánOÇ=SØ\—†/ ©5ÝŽ²–‰Ê-ÜG¸6ðriÛÅ‘¾q:›aÇÝ­7Úò™[~¦øö‘—Átßÿîÿ[V@‹Ü`£ê~Ùy·xÀöØíˆl–-«ß3c^tˆ-q×|¾·<›g~ Ï=mØ–yg°×…ÅÓ–¶æ¾ªÏøð#ßóÌyãõàÔ×ü~ãçdóIPûLP­íªÎFIÌ•ë«.r..TÎvÚÌðPÈÂÒmÕ´Jz–Ù"åÞmÕ£M°½iì⸪A·tÎÜ€ü«Sž ÷hƒ£œÒ–-m*k]¾sÓ®×鮓pùÅ™’¡q¡í¦F¡‚w–ßýH{H'{ä7qóxǨŠ\–ØiA©ÐÖåiÑÓvê|Å2ÏÉq¬á¨75ÍöUøeß$’TFÚËxãÏ%éž/õ )ž!Q0ÓEIé*°Ì_?ÊV–úµê(š8¨*ÿ˜j/w9í*γ«jUOϺÙß}jC.ò•Ÿ$~/ÚTHûŒô]ï¢þ±$ªpÛ†xèì¯pr_î›v1<Ñâ=¯†U,ü«š»jZ¾ýã¯?@˵ªs¿øÓ}ð‹ÓFƒÌ,´™ •é­K†7„¦ÊtyyÀù*@ „Ϩ­Muï>Þœ>Íš™y3Ú"úŠû1Œ|?à¥!aWƒufUWÐ!Æô•÷‘Ï{ CüÖùRÔ$`©Atåsä±µ¥˜NœÊJø¿&>ðØ/V­Óñahò³°±+:a‰]3>,þjœCJÚÐeÔ{:5?c¢µŽa$½3rGoj5ð$á0'–~”å…˜0&v¾md`Ü„Ãøð: ¿G8ím`*1Þqx4àxUÅ 'Ò±”‘ JbÃG9Uh¨¦ ˆç íò|ÃÀ‡^ÃDéš ÂKž´¼7ÝbuĹ¿î{T¥nºŠÀdG|_’ûÚEéP õ¦G ÅùŒÄ­`*-Éí6Z7ä¶®«nBåvOvõ!«ÚˆÁæ3lêÊ‚N’æbÅh/‰ôb/h¶Š«L D~Ûʸ.ß'ÚÆÈ¶j7PýòH{~PLÒ-¼€Ƶi<âÀ«JR å†ÉIšÉ1~ù8iöM<ÒcfáÎ69¢±Å| ÆU>ÎÅÃT=€ä)«3UÝÉ)¶d´cx€v¿c¨]ÂÙŠa‰ãÚ}š Áx‰g&Ô "J†bb#W«Ž4Š•œ?y$šÿNÂä"h‚eY{lxY¿T³ Ìžû¸¥“o€oG?UÌÊ»‡Ã(/I5 °È“aK¿"~dœO!%CÇɆ™Žd-ú3¨ 3ÐÝäþ ½ÂASÑýgá=ŸÎºØµÒ0h¦îõ»è$Ë’Êšü¥Zq:ÝG¡;¬ÕQ[Ë—2çðÓlÎö‹±”D‰â”HI„lOÛD‰Ò‡áœLO¥ÒL3< @˜øx¹Üù4DAaºÆ§ ýCuWsq.sÞT¶qÚNyñtØè–lH”]RÞf®¥ë›ÊŸoÆNÆÊT©«&û¯xê»OMÖ¯¬·‘µ2f“µÐQìéïB1ªž`ß×ÒdZ@}M2ƒ;¿ÞÂ]_õ­mÉ„ª áü¬Z–÷_BåàeßÕ è*Ÿ—0„oŠda à¾þÎV겄WYgvÜuSµ®ÍúšsÔè|¢ú³5ÌÙjçlq5›v[Y÷Îi›Ù´MQ:aÚq@ÔD½Y¼%^\iç»Ê´Ý|ë³^ûª‹HYlz*ñqs4°UœU`KÂ䛩˘mœWŠCâáãP¤ºÖz`7Ó”.Õí‹F¢˜@¬g àü%têHq‡ F:MRÔ©À kÑκ‚n]GE)0ø•\\¶ÒàviX 4ZÈß0^Eàn¦ˆ =¼"ý¯M¤éJ`éÌj¬Øöžø¥èÍÂf;ª¦»õÛ’€ÂÚ]IQ'p&ZÒ ©þP8Ð%R±RPÄV˜S[¹Î¥:áP<\ LW—õ•K4ùO¨bÀ†Õv&% åªPGmñ¥,ΠC’ƒéLýÜ® »LF¨üÜdì‹:µéhÉ]n̦¯l ÎõDuT–ø¬·íLõ]Žá¦(‰°†c‚íIXÔT:åz‹Y·ßdµKý_„ŸŠÎ¼§¸Ðmr– ¶[ø CæP ?¤+ÆZ„¥·oê í´“H%îAcÕ?2Eæ/òa$bàÈ…Ö^u½/Càôj¯BÜU™OÇS2ã¢p³õ#Æ„èãÿp¤'ÅÈ ˜cÅ; ÀzÙ±#N ·“·4kpPm­® áþt »mš¾räÞ…ªmº¨”Xkia.}¦_3å¹ÄHŒÃK„ìÏ…Îà܃Ӌ& œ¢>;"¾Nè|ÕÚ¸‚_˜’v`Ót5`§C®n<²¾ëZVV ÃúºÉ‡ËfßU7fUû³†Ž\ºÊ=Û€:ƒz!ø‹ÙçrìÄ-»÷€Æ®ëts LI€|չ̓)ú¾ S,øç÷K@ú|iáRèÕxÀÍL.›«.M²W\Bèo€ÆPY:Q‘ê–W“§®N\Áøá`)4ǽ$I—t 9˜:d ԑ㱦PÆ3Ó1õ |XREΑ ïG, !zr»LoW¾‹½QÄ1qølÑR9ú±Š¾]éç>€›ùh,ê™t}ÜUœEÜÔí²jÛ™5¾L«ÔØá ^9ѳÈÓQât´æ‘I¿™£2‹_Ò´Õ_ÑÙ²ˆ°k¾ù­&ךýv2êî/4¾­k[L±ƒhLĤHý(;µÛñÐï -B³yhá ËHÓóH=MæÇ›®Ó ¢èy :zñâáëVbýÛ1 »âçé áILn'ùäôAÙ¸ÞdâÃ:; Œ¡´䢆WŸ¸^¬o*79$e í7Åö¡ŠMÒÊ #¨špü8-+5ŒçŠK#ˆ1TÚprÛܨ]Ñ©ÜÛ“œÈ<íÿ!GÍœøÙÁWîöÑHå™™€ Ù¥™•lm {ƸȔd|*j,ðOâQǑڲ¬j~&AR†y›×¥×ìrp—éXG¿¦¹^s,,Æ}•„O2ÆE(_^Dv®| 0Ù]Iò£t‹¿y$ÑTÖÝR+©¶vª ™!¸¯;óˆ‚PM¨²:&Ëž\&QßMsÆó*%;Þ׋Ox<Ø€Yu×b0ì[¹mëÿ¹á*åâM³4ažŒ÷OFuY\l/µ:Øbp¾œe‡¥½ŽŒÎ Aþ&TMh‹1þ›)HoÀopózd1I‘7èüô¹‘ãÝKyǵp[Êk…™Ö¦¬Û\kcÞ}˜Õ´……5LJ#” èÈtd«ð&øòô6'…<}Œ{"}’Ô’7®þX×5Sæ‘Ôb†©”ŸDxcJo#ª²˜,ÅZ§‘VG’Õ\'ÏB(–íÅž‚ÃJ9**š¾“ÖcsCxÂqFÛŸ|§$¹])ó€C³•“ÝÑl“‰ž'¸ö¥`I5‘ø*ñ‰áì£zMÊcU‡KLä)zZ{þÄâæxU¹D¼–ˆ]źIãP,:ú½|ê„»pŒúôÄ/žä­‘uˆn`` ·ÙTÛÜ Œ¸KOÒý*ŠõT’“VLj9àÞÔ:l’yÎØ¥Kowƒyò§Š!Æö‘'ø<ü“ÎÏ:Ÿ×•²ÈÓQœS6Ig×ܘ(|¼z°¥–Å…–ϪЪý‚Ç–“¬Ô—”"…kúÛNŠGÛÅQ&pµfšÞ > oX6½ŸFVEZ8•$–UÅ|QZ#ýþ2ìwÖ†Èæ¸yÕ*òQ«À®xnH©' µÄX²ç5‚;Éÿæbëúþ}µ)›šª1‚²$ðîu²Ú±&ýÂj÷“ÕNøáëš—$$iõÆFò?}ˆ:÷ÕáK¬"…û5çWùxºMžY rèî÷ÿ2¸?uõQVv³8Š,ï¤%;¬H½´'ñ ùrd­ZÍö°ì°®ès¦é\¢‰©\—:¡Ôšƒ¼]äqל’•yèbx«i“¦>2 KvæN/MÝQýãjg-² 7SÝ"B^Bô¶ \{4ì6SuW¾Ó¯lÁø*Ù̯W‹D %f9} ·¥í¥ 0ÍK1ÿ–Tõ’¶c|"×ÿ_¥ƒßéþÂL"K_ºÙá â´4‡ßM¯›?ú¼çÎòhÜ&þXa G»³f†ÔõHÖ>EŒRD›€±?«"8¾>=Oð!VŒ˜é9S¯ˆŠ–êÜÐ f) C„lŒ~µÖª–Óe»°ø²TÐ9ªßTc4›9XÚj4%+µgzÁ6Wmsöã–ÖD=ÕÆÐ ½N³{ø|QKo58Ð ±@£Céw‚—ZÓí‘<£x˜¥ï¾¤îßTžùyà)ß.¶mÏœ¯%Ÿ]po—cóBèÛW˜ÂJÂò¨xúrù"òÎmB«]‘C\Uÿ,ʶ¶àqûËÍ)¢±øuU³Ô­.)ׯº¶ùI?U±èU›)øSŠ4%¹ÕGo²]Û+?ÉCÇ(ÄMG¦.$é„â–¬_È8¨rÁµÎýexõ6•Þ3Ä;iº‹¢o}wä|·jtá Zý] æ€ÒßTIHÉÃügñºÜñëB3™s¸ ¡Í´…<ê¹CÒX[?ïcúy >é* ‡ü'*8ÚnÇ7ä‹M¾=“ÓO0h>'qf$×C3ÆPžÀ×ï#gúYŒÇ,˜7êO`ÔýSƶšf÷KžÐ((›ðó¤çøc XÀÇ$MOWë=ä3…®e ¢[ÜÕ)·"õÛ‚ÜôsÊà <Ý¢ˆ?ŽH¬ÀGvœÈÊ­-Š»¶êûY{鈀™ÓHŽðƒøP{ö á:¹ïò{œMÔ´ZÓRû‹àõÏAYÙ>k\LWÚº­º)qøWBŸp’ƒ½%gî‹=»¦2Öÿ„Žwv=*R\èȯŪúܺ7êà øL–$‚øú«‡ÿ Hâæõendstream endobj 322 0 obj << /Filter /FlateDecode /Length 155 >> stream xÚ31Õ3R0P0U0S01¡C®B.c ˜I$çr9yré‡ù\ú`ÒÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEÿƒý ñÿÿæÿÿ?0°ÿÿÿƒÿÿÿ? òÿÿÿJþÿ!êD‚âÿH"Ð @˜ ¶l%Ør°3À‚8 äH.WO®@.E‡Þendstream endobj 323 0 obj << /Filter /FlateDecode /Length 101 >> stream xÚ32Õ34R0P°P06T04W03QH1ä*䲊(C$’s¹œ<¹ôÃ,¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. uÿ¡ là@¸\=¹¹ôd!kendstream endobj 324 0 obj << /Filter /FlateDecode /Length1 2191 /Length2 15561 /Length3 0 /Length 16867 >> stream xÚŒ÷PœÛ¶ ãÁÝ%4Np÷àîî 4îÁ%‚»»—àînÁÝ-¸Ãcï}îɾ÷ÿ«Þ«®êþÆô±æœ«»)HUè…LíŒâv¶ÎôÌ L<9af&+ <…*ÈÙø1<…:ÐÑ dgËó/G ‘ó»LÔÈùÝNÎÎ íb `f0sð0sò01X˜˜¸ÿÇÐΑ jä 2È1¤ílNð"vöŽ s ç÷4ÿó 6ù`æææ¤ûÛ dt™Ù䌜-€6ïMŒ¬*v&  ³Çÿ AÍgáìlÏÃÈèææÆ`dãÄ`çhÎÿ‰àr¶(€Ž®@SÀ_„òF6À˜1ÀST-@NÿÈUì̜݌€w5Èhëôîábk t¼'¨HÉì¶ÿËþc@øÏÙ˜˜ÿî?ÞÙþíldbbgcodë²5˜¬qYgwg:€‘­é_†FÖNvïþF®F k#ãwƒ¿+7ˆ )ŒÞ þ‡ž“‰#ÈÞÙ‰Á dýEƿ¼Ÿ²˜­©ˆ ÐÖÙ þ¯úDAŽ@“÷c÷`ü§³V¶vn¶^ÿf [S³¿H˜ºØ3ªÙ‚\€R¢ÿ1yÁÿ‘™ìLLLœÌ ènbÁøWxU{àßÊ¿Åï |¼ìíìfï$€> 3àû¼—“‘+àìèôñú·â#xff€)ÈÄ` 4ÙÂÿ‰þ.šýƒß›ïrè0½Ï3€é¯×ŸôÞÇËÔÎÖÚãùßýeT–R‘—•¢ý‡ñuÂÂvî/z= ;€™é==çûƒÏÿ£húOÿò•²5³pÿSíû1ýOÅ®ÿêÿ,Ç'ÀÿŽ%o÷>µ@õŸ!×ebg2ycþÿ<ê»üÿ›ð¿¢ü¿ ùÿ-HÜÅÚúo5õßúÿµ‘ ÈÚã?ïCëâü¾rvïk`ûM5€ÿ,­°µéÿÕI9½¯­¹õä$rš*‚œM,þ™•äjí˜5ȨhçúëRÐ331ýÝûb™X½_Nïù· ø¾7ÿ;¥˜­‰é_ ÆÂÎ0rt4ò€oñ;bx1¿o¢)Ðýï02ØÚ9¿»ÞÉùÌìáÿê';€Qè/Ñ?ˆÀ(òqEÿ n£Ø'€Qüb0JüA,FÉ?ˆ À(ý½gûƒÞ3ÈÿAïþ‹¸Þ3(þAï1•ÿ V£ÊôžAõ¿ˆû=ƒÑôžÁøzÏ`ò_Äöî÷~CÙü±þ«Œ¦ÿ‚ï¼€ÿ…ïÌøOóÿ¼—eöþ…@ìYÿ‚®0ÿ%°þ£ÿËÜÎÅñ_áÞ Ìÿß ´øSî{«,<ì-Þoã?ï2пà;w«ÁwòÖÿ‚ïìmþÀ÷+‚ñO(öwWÛ÷‘û—þ¼ÝŸìïÎvÿKý^½ýõûÙØ¿/³Ý¿Nï/ºæç/ätú{ÖÿؼSü×0¿óqúSÓ_èú/ÂìïæNï×â‡÷¼úñ~»0:[8ÿÕ³w’Învÿrxçéò/ø~D®ÿ‚ï,ÝþÕÏwï%cy§ìù‡ò»«'ÐñŸØÿk)M\ß¿•þ¾4ß7öðß_@ ;Ð~qÞ΄7Ȳ&¨õ¾JˆÀ~wüó Å®Fò'z¯EÇ6—Gä Ÿ~¤¬;Þ % u£®l‹Qß.¿x7×}ý§Ôòäýl£<µÛÿk»"ÿX¨¶Ž^UpÏûÅÁ[Ýß ²¼Cš"ÛÁ… Y1ãÞ­W½¶¯ty4d~Wiï‡ Âsé4}¤Z„®Ñ,EŽqÆ.)Œ3=, úow”Ù›Ûô¬‰7béZxŸ“HÖ/í –¨‡9ÏÕrU§Nvžœ©uÐ2¢<ˆ Mª\!6P¢&Ìj«úu‰¬ðefš=®â?q½,‚SñŽBM9óda(ˆZ÷7²Àn”T½5r»ÎÞSV?¦Ëºœ£–³x‡¤#€ï[ÿ4nf¥"‚Ú…Ü 6Äé>ûª³^ðñBÏ—“oaÊ6¤ ûaU¿D½é,‘™Cµ²*’±ÀýY{ËFm0ôz¸½É7ù4QfÕŒ5쮢,·ž†êHφ„øì¡°\8å¹ã¢açºzÚ|DjáJÎ[±9»g˜ŸÝ¶Q-ÖÕ_¸öN·£$Íßü ¾†+(Ÿp\¢ûÀú­aƒÏ*©‡Ô*Šáì‘€.ü(slÃtÁÿMË߇„t³{­Ì …jV‘uîâѬÈ!³àP’Å¿x–+ÜÕ¦û¡©¨=_Ë!‰–ãÊT¢ð; å€B XtH=±Š¸D¸ð{ã0.ÂVfr™‰ôÞÓÚ'E¥ó§•àÙI‹zŒæîqQ Šœ#ÆòP;jØæL.rPܨ…è6ty¼£ýd«HUÊâöl ƒÈË<†¿°+M#÷q9*ë8íC,tÎõ±Bs#üun\Òù,ª:§ì½šw VZTÈvBCVHϼg„ƒ=  ÄaBXß¹.:^WºàËý%­y±…VÕžÆl•”dP–‹oø!¥ÒÌž´­Sqk1B;) ʹ± EÕ¼0Û…bÎC]ú Ú7ëUX[%uŠÞÿ =zësÑŮϡGq_.Ü¡8ŽÝôÈ”’EW rýœ_h]Î8'…lØ0'âÝw‘J¤K–\Êz—},mT yÀùýÇÈÂS¤ß¢Å®ó)²\&笒B;fžŠ¯¤uk`2{h¾§ä¶DpÂ2ë9ÿ¦€dLÊŸ¿%$‹xR¬ìVÈe{-`MéMwáBEqJÚ+ùrˆÆá™Ð|ÐÚÂyÂ? óûiu&Ö–?à˜g¨{÷K~ÊÕ‰ø@âxŽ;2ùSÄ ¹™XÎîåú»ï1ÕáŸX_»â˜8Àc'lñxdaíÈîç§]É rÂf>Þ*E2ÒCc]Ç"¥ò$ÿ‚;µ(BhÖæ˜Ä ³¡[›²0Hó¾½"æ¡D~ …ÀÿÚ%@u­aV«±R9éþ=f@Úö¹uU÷z"syÀ”.:ËÅÂá Y¹j”ÛWO:ìØº­±L"ÃÌä”pÇÑ0%ùǼy¶ËJI´'ùÀ:MðÎ6Ã!ÈgÔŽu£ BäS!ݽ®‰%€÷Ôç3’é2àxu).˜œôa]ãëo+—-/ îJ¨ÆØÉO±áx«ÉüÝâÌÞ5°Hx½áŠöT¢Îªêu°s¤Qí† ;ÖJe‹ßê?~ò:·-ÿ½;äÀwma„–ª/Á¸ç^Y©¦Žÿ°¤°g¼Ä,(}&‹¨”Ê!êU'¾sPU=´Iñà°draf,ÕÀÿVóé¬Î¡p9¯ ¼^’£“¼¡Ï›ÇhêÂ2Þ¤ ïã©0¿åÓôg2t·™³QògŠ‹=Ýùå o5•Ö×[èpNŽÓÈ,šRÜx‹ÝV¶+dɤÙHCråý¦`%B›âCåÊFÊq¾]¯Œ?\šs³š3 _×J[µ±L‰“›4dSÒ 74ýÂrc¾Í]"uy].£%+ÂÝà³éÊ›Ó6Rh¢…ÍËQÓ½=›a» ônÐéˆF†cÝú· >&@Q,_-{j\.aÄõ[k7®rËîCÖ$}:€ÃrÚrM­ho\{l~.BXä:–œfaik”ŒOUP[ƒÞÇÅAÝzf’Nk´:°cë÷ɯýÜ_•Ê"õüt×›È4ŽÞ쇜EÖw °Ó4YÅ’‚1u ÆäoV5^Å~7³°¨³ì®î,×ûæTÆK_ºC’{£UoIƤV <…e¥ÑÆcP Â&4æß¬‚Î*ϧ¢—rùÐÔ%Çw\VM+¾¿&ߤ|›¹f”üÙƒÒ›¬:ÿE¡3–kôÛÎXÛ‰E¸G¸Ñ¦ã -¯vJàÊS4¶É…ÓNé·z ›ƒ“Û\¶ _7¼®$)ÄÃ[[2þî:ÅDÃø/øÊØ!Rf²š‘·:?:‘åÖ¡’Z迵^ŠB)Zë«Ós|én9hBŇ ŠižÑqôßK,LïÔüpïÎÎ ©O"Ü|ÃS•ºù&¸-{C¼Ž{ä“ eF0î?j¿ª~Œ£e‡ÕÓc©k¬ÇÎîÇ #AZ)™é}îîw úŒÌ]š¶÷Å*è‰Á>–%Çpj !é5ºõæƒq%¶§Ç0Uqàe_ÌÉ‘k3~ù~òa£hžpõf|,³£}¦•Þb,tõìü– k†ÞCÝ8+Iõñ"Œ¡N€7íc€¯(¡ªZë‹^øzÎ]âê‹9H”†l^'w­Ü)39•þÅg1ô¼])ÆIw«Û:ä^5–ö¯J.´é)¿ÄÕ £ÄcÖg~rmàUáôš …Õìs® Çí@µÝå^(ú™-Ø϶e˯ű@f‚atRHp͵ªøÅ¾M=ÙãÁís£[ƒ‚Õ¼ö›1„ò²®¤ õ½Jf¾‚Ù»dÂÖéƒùrÔ9¶`nJÇ’B—Ú/b ϱÎùŠ‚¢zú¸gMQŽ%ôØW\îÉòé|“Šaúö»Áñafü|å0hc÷‹ðÈ_Ÿ!TOäQ´VÇEÓÿúUú<¹°ˆ­í…¿ÒÅ¡ÿñZâ{Ž£‰žgý<«=3 Ìîå—Rêï$†§ÞñL:n6ÓËÞ™õÅñ£:Ihý÷Ý&Y±ãI³á´«˜ìd6÷$§*Bcí2£š­¥:b$2—ªðÈ,© óÕ{°òïÜõï˜E,lÈî8ÔÜìÄ Å <Ú5ßLî,+û‹z¥ †<Ù„ ,ppg6ý¸”¥•èïܪ&´ñû|Ÿ¹.9ýÑ^–‡¬œ¯>Xz@LŸÿjD²ûM"Q†}x¼*¥Çï–†¿$ë>'SP玻bÀ1&š ¢d¶8ÿ¹#ðÀךÑÐ7¸EMM–ÂÙþÆS"‘u’Ø܉÷Yê÷ ÿ(Td>üR‚—棿k‹• A, RåA?Ü$¿¦×ÀÏ"î"d`1„#‰¼Yä+íoŽ„Ÿ°&Òw¶Ð!˜ð$eëyÇÞßà^Ä” }¢`#ó /`Úu£:–pØI/·“Ñ=‰:Óãa¥¨áÉ$CÆæF³.R.5%ªÑà_†›RcÕö}UÔ…c-ø‘xD~½.=–eR)A«µS|qéUðÓKtˆÉbð‡ßÊüqN©þ%ûäL3HÐÁI>3dã¤ô‚QòôK_:ñ?nÞé¨ Zܖ嵤Y?È~ ô 9Šãó*„?J¿¸»e¹¹1ÊñVáeÉøIßæ~™ðä Ã\þ;´qß­Ãí„[îLg»!•ªš”5ùÓ•ÿ"£ðI8ëj¢ÂârëCP-ïºa}¿!ŽÏ\ÞdKAÿG|7ÎÝ;‡LºZgMŽq-t»7%Þ—ßãáxqt“©fÅZY&e…wÚ¿†à| ½þÔÓÓu«h}*¾öÁù}¡#Þņ«¸ÚÖzŸ¸3§;[ÙR ¾¨É >q³6d†£kxsøõl´”0ÎÈTïÑs%SR¥Õ­ÏóþÁzòÉ[hŽRmÐnÞª(E`G÷Û$LsâóI1¤ENï*ÓÖ™²Ñ\KºŠI¦î—Øsö7’¼s?>¤Ù#­ˆQ˽ïs’Í7Ûñ ¶ mK§A÷$ü+ƒò ´ÅàÓ(Ý7:ÇtˆŠ_Ñ&fmb€ê…S6:‘øi©9§Ó£sI‰ÂFD’Óuw¬K¿Y-¢•0Â*žñÃÀ§µDuš´V\ ›SU4åšÅÖšÚ¿YÏ2r/ªGŒg…»ccŠØ‡iJkœ‡Éš ?Íì‡Ê ?øFÑŸ‘0•Ý"ÍÃ"•¾¹m…¹XÓ ·†mÎyVç*¸—”!à 70$µ˜Ù»9ûú†Ýþc+š@ÙE\;¤”ÝëâŒ{êk ’»ÜÎh ‘D똗1Éu¶3ÁÊ}Óq!0ñ[V7-­zc虲xnï¬*¡¦p2íŠc”¦·VÏ ²‘9Y­jöðë·„•K¯Noâ;%äÂF¸ÜÇ[ô±;‡®‡“K x¬¸ÈâóXõˉ”f%”k\ºw×#1H LJ™'=ÓÄ-Ò^/ïH§Xû×>‚Õ@¨²¡@Û ܈r Ã3¿©AŠ„¢+mwúÚÎŒÚöå軄œ¦¾ Å8BI·Jø¾Hxhm¸$¼wmz›!Q*ºàW|ž˜êw\Ê *Y7ô}ñý£$Tµg*¬dÜeqqêmã³\üteÅŠdÍeÌ êË.n9®›)rL¢;È|‡vÐX ¿À×ÊD`-æÿ”åN‹WR‚Ø£'>Æžˆ>B¹öi¡‚v¯¯PØÏq×8áÍzAíÏ¡y3œý-ÎO•мOƒæâ<Ãê|ö¯¬µºHö2Ñ¿²ýor?޽"ú!NlE‡”ã¿ðgñpöSªã2~/¦]I³ñÿÞçFEX}‹L“#L+­œ§Ê6§!È…B a󌇘Õt9z8ßýÜn;>ñÕ]ð:+Ì KLÎÎmXÉí᪞}‘¨²ÛùJ`úy¤òuß¹ÈÄÎçÓK£Wä³ú“HW£|'F<'ó@ Dèâ.•›K.tUÆ@Z-ü¸x{b'—µÆ±I»`°]Zˆi°º=ž7ûVÇ®ˆ7²9AÖC§Kê¥!ª_Ûä1ýŒäÞÚ¸‰Ý…¥å_ÝHjP—°ë%¼FuaY´®Åil^XAÀb¾ž\%ÎRYëìþp™‹Qž¬9CC¶dT_惻Ýÿí2ë–ËIJÇë­ðhFø[øxQ³Éô»ТɄãêÆsE–b¸öÀ§þøv-ÂVpü Ã:”×5Vßö8%]š|óêø|! g† skŠNVÙþ;ä±…VíA˜ëÞYÒL1Æ¥‰2óÃÐgS†–[³ÓÝ&ÌV!>àm¢æÌîœù\ðŠ\‚Wlg¡Û´+Ví©"߄귋ÀÌ8íýM&J%ºô–BÃyz¼™™vü=šËƒ”ô¥ý]»wžÌ,…(Ì¿G°|Ê4WªDž¾±<íDF‰Œ:í`/ñ MhS÷cÚãYXaö¶3jNåî׉› ÃÉù% ž{þHaC§q—ûí-`v{gœ… š£PXÔ"·@WÝóNÅd å@ê'´ÄLȶXî"ôP*rÓß}ÃCÀ\à†hžÙ°1lbÞY‚¥ŸT"mÜ#j`ûÆP™^J¢-@„ ‚FraºÑáí Æñ„9[dE¥CÔÜãœKe¬0$ºå—ÍlûØ­ãÝì‚§?X#)FŸ×] õĨ'dÕÀåM‹\eLV›ÖÜAÒð!˜týê+2ù·$Ö‰¤iÌ«ìÉ@„9Ò‚PåaXbÔ•ø&ß6>RY5§ø™œ;%“ýwA6Í©}¢ñ¼°Ô¥SøaÌhY˜sâU:í1epS'µ1ÏTCŽ‹Æ3÷\-¶ƒI·²£"â¼Ñ±›Ü^‹ºHØv*6;üõ²^CÐUm{ùï¯<Åùc‚=M«ØÞûæ)RB‡ ë¯?½½Æàá4ÞdNê5Ùˆe/EÃIÑ•ßV…¾Ø÷K]+¦àE9éå#ÃD]¶N'|©I.±É-™u§gÄŸ>& FæAí®D Ÿ]j¬ºbûŠÿX)Ù¶±iÅlPÈ,1S|j/´Å™8L‹øïPç…ëøõ@üLÁ š7ÇRSÌ~r%ŠŽÿ0ÄÝRT½µºRÓŠîG(5†€êÝ@o„7DÒ_cr\«ÁcW±”Ûxî›è½Œ³ ,{‰Ö7ÜW˜‚LKu¤Vƒobñ¡Á²é?Ââý0Ü[Åbkˆà)}Ê&ºVô…Ù ]ZbDêt¸ø#=Uî.’HÎsêKHÑ•¼äBÍ€wn„ J„¼ªúÓh±ÛZP5[QÅs|w©Ž¼ÿmð|+ïÃI @•ž+ðí&¼cÍ·"íÉj×´TÝÛˆi‡3œ·D¼ËÛ#Fº‘·àF \´UÛ´µtìE§r#›ÂdÃt˜L•ß4ÀùÉÓBé帉ò‚žôMuµÎ¯7×Í;ð|,^ZJL ?-ïiðìt 5?-¢B–dßBJã‘@NoIã¼=žÎMQÆâ,QÌ¿mWQFSÇ,±¼ÑÚ;ˆ‘‚'¼žQº¡ïíŹÐm× ®S˜«'dÇè¨s3y¼ÿÞCЏ¨)Üã¶ ÛÏ3¼Á›Ì›1ÿâÿ–’“ŽÌ1Pøõ˜{”|)¼N{ƨ/rlKoŽ‘0òGŠÑ©{T µFñ«žð@Îm Ëo® Äþ_”¢ƒ­Fòúk÷<`¿n‹£¬³vö9vsƒÏ²ò®dÎ-ÜýËDCC6¯ ò€fæ<¤ÆV?û^]]\?aaØ&ë±r]Ó¾©Ý‚žöœ“M¦)@Ü›òbŠRşߕȦn›s Ñqõ>â’¼ðù8¸v«Í’î³%*T°’¹•„åÑ×DâV‚Ðv´N}صŒ »Æ~/â¹¼s]ZýÈÝwëÆdbö„h$ìÆI´ó4d<¨À›w<–Z³\§.€ÄO¡†žêùúk? 6µcÁvÔ~þZ°Ïcÿ2¶åëBŠÞK§»j-|yÒÜgº A×'Š.£N¼É1ŒE:6“`ê“Ñ¡i0Íæ©Ðudyï(‚ï(…ë(¼î°YxT2á5û¥©ÙColr O¬uF›Fì,¢V´æ´Ë3zÅÈÔ·¿ƒãæµè÷f¿b°!«ÞoŸ þ‰4V±1F‰`Xðê)OÇpg&ò®ˆ×Y²]¨ *ßk0¸ºKf8E¦¡¨ GªË3§/ £ eöÑ'< *QmÄðñìx,ÇH¥Ì"ÛH=É”Ëè».DæSÉ´ÁŒ¤Õ²jA{J?e^1Â9·˜V>“Ì— –Pl>”D ×8Â}WJ…TÿÜÛ·1 GË­ÿÙÔ y^°jP?pÀ‹v õLåJ~¹§Åؤ–D8àï(Ie§O,f˜ßiäÀ(uÒÕà gFs¹D½]Vñfêª ë RýÂð¦†ÑÐuB§¤Ë®v¯¹ð‰ß©R׉ñ2o`vÞ¬1ºhàjxpò¬ý)¿yŠÜùi€ÂªRœµ²òe!Ó ŽgÞ¨ŽÖTìí_4îçP‰í〉BÙE´ï“MjçæöTã¢kÙ QãkŸâ‡KŽ ½?é£ÜnSóÙæ±EmÖÐuгa%ã?äŸãáeØ¥~ä¯ò„ÓE”$y+ËoŽÎ﹚Â]ùl?}'ÑI+Íoó¬” šY1 b)°0EZ©âg¸ ¯máL“A?ÛwzTD:Œ,ñyÁNˆrLªMr%Œ™2.Ú€Kg­GL}å%ªºBúiö$ehrÄnQ¥9‚{η‘~fP§F‹_Ý™%Àè”âDÜ‹Y ŒtLì:÷ï†\…ÛBŸ€ ±ƒ>ÐUX…Ñ›¶­š§ÿÂÂÄÂHAB[àïnQκaA8å’:‡†"ÂYÞ½®ïñ  ‘©DÀä•á±íÇšCã(SË9láØÑçnVgú§TMÚÚ¥©Fº\¹¿«DéžÓɽŸZѯ]gì£þ«ŠÔdeךÅêêd¨k'‰¬ÙÊzà…|m&ZwXiŰpÒü»½GþצkÆÈƯç¿ÀèÅ <#M« ‚¥7þ H²T©9×v‘Êè 6]ÇÆ‡ßŠtDdj–†mÛ ä°l‡|1Bëµa:0&f¢æÄU´P¹iMQ¬=6µ‘ž?éðd׆‡M†W%!éºß_‰§TÁc‚s‘ï’NÃì—qc åë>òÒÆß|ÁjÃøå²ðªVW¹h¥.,¿J$p޲p’Õ«å }L’X*@-‘›å—}ÂeÖöSå«È'òŽü]¹˜Y%˜æH1=Éc¯$k9c=šãj¡‹âÁá\f^\D›8 ÅŸc‚™m'®ïör%£«ûyTš(ø:…#BšÂ˜ n¢÷løJ—ßÀè1Ê\W­J쑨” ‚Êi»ä”JöU!"ô%ûס!‡™¸i?çNYª‹AÁ·+Zz0§ÑÀ—³ŸŰç°ñow "68:>Þ|ž¨ÆCYÒœmŸP‘åðò6i-FIDH/qî ÐìgõM:ñvs6wâ@]êÒŽd—ˆU4¼TK’ó˜æ !ùœ}ìÏl ÿ@õ|<ëô‚E…(Ã(È“€‹³þr Ðiïm%¯ÿhØó°Ã0-ŽZc«¬ÅJWºúQ»–:gÁ…ý"gê,4ïwsmªQ—~©ü,~ð7ÉäÀQ>ÉoÒ‚d^§"J’ofj4…”Ý©¤­im æ+•iµØ¡‹$}36a ‚þíKÈnéáA ªàËòˆ“ußH¼Úvݘà£ÏÝû^G¾vó`6?ǺEXW#%rØÏHCämhâ„v&i&5o’.àéýÁ4TfG Äèhe 4!î=ˆàóÔ¯¹"0ÉïU è“(sÜ€ÏK¿Å%è‰GQްÚ@nl·ðÙ LœÀGÍKĘ8Dû9D½‘% ¤(=w¬]@9¶žBŠÔÜiu­ÛyCb¡'1èöñÆfg÷\wâ8³. šz’½4žY¸?8±ïð ±AÛ •0J°PGP¯Lz/âš5,æÕèTçHœx5™ÆÍÄìøQp7èiÇq$™$õœsÚ†vyK+ˆÈA£½A½:ЇÎÞN_)|}˜e”ùÌiÃÒ‡¬W²Y;ђ쬯»e·sâ6{ˆ¢ÅüàN»,@FŒâ·…ìMoXûÏŽṲ̀”*k–G+ì(Ú¯õ÷qÄe¦[‡Ã‘@Ð,ú—ö9‘ô¥5oo…šúâŠaÔß­U÷_õ}1{q™}zšÕãõçshVvvÍu{E§ëúDëQÍM:¾6ãÐÏËØÂà‹´Ð?Í `õ×® U â×"‘ÎßÀãU|ÀŠ&£9­™þE°xÔ¡ÌSÌ¢¾¼¯lA¿•P¢6h64g3ˆÈSÆŽü/Ä6Í&œXÞløÀ гtNÏ´ƒ9%º•¸^gˆãC££õf'…›Q©šÿ„r®iAq+T´šäªUTÁæS- ·qH­· R»à­þ xP_ ŽX ‹‘OTÇ÷ÙgýøÎÏ‹W{Î@¼PIH;‚I#&ªtæ2JÆîiéx)¬c4¢ÁÚ»Ýï Ç(ÌèŽ9`åΡ¶Ä'Æ!Ðþ1Í®¹<ǰ8Ñ´ ·[|tT!¾Ý©w£²¢?Ũ^4Û$(zÉ#>WIÖ÷ã\Å7–\½Å&Í· PÂ5šÔ±7ÎU]„49Ñm!¤ÔX?áCѸ®ûª(‹Õ™9òÇ@#wñN î–Gó÷²M‚|ecÙÛ±ä±.)¥¹#öTÍ­BLi[ú^»ÀÖh£F…`­Ój\TÔÀCqæ¦óûÂ=Ýü9¼ãZetª\½7Ñ59ýÃï¸_ðKø§ð~~R3w¨ jqcøü1¦ÐsKŸÔqÛËÑÔ%@îý »3tÔñ˜Ò;gHL%-+öäJÙο'îXƒlËS²mîèQ¨hÈéÞ ë7Á¸9º:é ?ê‰8GîOûÑf„irþ-X¢Ù(¸²9ÚgŸeã7lñ±ŽÕΆTîã·ÃKµªçÐN5ë*¸æÆ”ºÓ!Èçá î'Ô-·Jîu™ú†`ãfA?ŠeA4¯4 <N®aUáËñϰðu»|;˜N«J­u&W Ä‹i'U•³ëÅ`íÈS†lþ-Hí ÊÐèïuîŒo³ù„Ms1Yi]PùÝU`.‰¹è‡LÔC}š‰ŽþÎÏ uû±4.Ï÷$ •C{¶Îª0ä×j¤¬9]ºëÈãx>Ž˜cÏÃ~yd‰¶0GÚ¸y [ÇR°eÊãzmß±&³4ÁÄ”Æ#Vn˜¬#|ó]ºÔ×Ôý’ÊòuóŽ6³TÉÈ ƒNÍ,V@óu¾«<8­ŸPÇéG³Û6t¢P#ª‡xÌÂÝr…“íÅö##ˆ_‰Ž¼ 1óSük^;Pkˆ'öËD;.Øwuƽ ­lº½Üã>ÌHöy]jn(ÉT8‚gñŒ±Ó}®âø*WbÞã/Œ“©¸–Î(ÑY?ìÁªu5+A2”½"®á—Y]vˆ˜PJQ°#!„³Áö3Ë–ÙÕëôPrÄš{5©ò6ïp¢¤òÁz'#’[éºÔù\´Š¥ðî5Ѻ ¥eúPNþJþkÛšqêçB#P~Èoª ǪpgˆÜ9P`¬hÈ;àÌ6·‚Èæõl^~éÇß«€M¹)Øæê¿—1¦˜ä_ÔÏ2¦9²†‹Î0#’¬ÍãγÃ"õ×¢ád)‡ Z¸{x×®œåãÜ'»Àh@”аkM)áß{«0.ñÚbå~8^wãBÅñ|å%bÐ_²`êÛ°PA‹ò¯|Å—Ê £–cÄ€4>j].l Uœ µŒ™¦w H´]-Âtd±k‰Y°Ö˜0]„”u.» üuY‘ù½ÝÜC£¼µŠ¹G†¦ÄBŒñÔÙºÔ!¦ãÃ>ÿ‘†S×2(J ;'HèñäÑÛÖè¤ —O+¨Ê _i† ö3 j4Ìmöc*ÕãBØ*¦kåB Éo#ñßWK$í·C^?66îÈ&|ÈG¥ÕÙPãà:¬ÉPmVÅ )Jî„$ p2é6šøÝ†€DérÀ£s‚>œP]‘B¼ŧ’jÖÔ%T\ÄC?o…®w‰™ñ9# w޾õ)9§ä˜8ÞrB.šPÈ£;x‚ÆÄ³ß3õ2íÛ´7£šéâ}<ËÏ3'³vþ.tI¬Ž–*ϭƇ¤o’ÀÈ£,¨ŸZÌÛ÷{¼¸úö·½ã {§¨nEȉEF—dÄ8¬µ®ùS›ÁlÚûµpÛÇ#1D¢G„/0•Z¢¯ÞŠõ­¼ö®Ù¼|Ÿpø Ó4ö[xR±èá3æAAãÈC4CP„»\Œ—ÑF2Οu±`¯¦%&²×Áš©W´ÉûIDk²v-Kî¢ÆhçÇúY+{iIÔoÇljšùüYü_&º(®ãÍzFXúøÔe˜©ô>*.xæ'`çß&é.Ëï–¡@¿=yñ#†ð€ÊLžåø ÐQù7+tÖ¯ZØSxνҌَÏío¿xáå=™ÞLXµ˜‡œsSY‡àªÓPU‡·7‰®|Ò9¶TÉ9¶fkö%Ê<¦íkäÔj"õ7ÊÀóqÀ¾qW½Nd}•¢wPE+W'Vø„N÷Fð!Ž÷œ„;L­ã#ŽÆ çý¾93óaÇÂ7¯ã’ÜÏǶ!Rµ²XcÁ¸ákK”_ÇÆeÝ4²J®-õ¨Àª‰a'¿^¼¼Â¾Ó u/Æm–™™­8œ“VLGzòós´ÙÐÁ¢=*• Ó9„eg¶œÔ¬Ç¡‚r8†˜a?7.ç0B„âN6èò33sM/Žû²Š»¬W=¦ïh\S“àM¼èë¶ð…¹ùíQ÷rع*üfÚšùú÷uóe§«ÒMQèÇýö1-×ÂñÁi<ŽüèÐ/[c&#M°ªˆjŸß\L¦áÇ üPšoÚÝ ä{ò»r¾âKÍAêšF®-™3¶âi'méïÐas€6êæ><–yýj=‘Ý@P1ཛྷ§ßÁé¦'‘³ÄëD ùÉ˲J‹ òŠ9‰³¡?zɈV/ÐW›*çWºð¹²À‹ «>­##„ŠPâXrÉV£ÚºdÌÛež]¾=ó|KZno›2úµ.Xf‰Õo–ðw6âÖ½Váþ;ÀCÞÃö®º=ðÊ2¾dhOD ƒ¥¼3¼©‹7µ ƒxq¢Ü5B—­ºtˆË÷éy,Õþ àknÏföÆã“ p1+{.Û[ ¹ z«Ú©¶{..CÕŸ…Ÿ­'ijQ誫îÔòÒ ¬,jG\:”UìÜ©ãÍçŠBŽº@ÿûÏéYµÚ±AŠâåêWTFË|Òæ YAÎbϦœxæºd^÷¬CAŠã…Òžyzi¼™24y®OèÅsè9DOsU…ÙqqTÐ_µ¢é·=Nܾîª`ÕàÈOi àæ‘ 5j¿öµÂDTOßîëBÕè°±.ƒH¼FÞ(A-f‹2þ§hšÌcJ[c_²'~†öÐP]J“œv$a2C-A–Þ©ÚôÀSñ6ÉUô¿,†ù^Ÿâ¨oâ ë4¸)KÁ02Ó¹[HûC²å¾h(+H\>~ˆ5Xq¨Šºnvß· Oî&{Ñé5‡PÍÊåÆ2ŒžwÁuMŸ„ÖP¢‚ñ†Æ.¥ö fÜ:öÁ. P{EèµhLÃ[êouq„+P>|û0ä9¾B>ˆiÇå+–梦”½é¢QybI•.ŒaO}¿¥qtXùSò”a¿»ê´Û"¿k$WÔúÌÖ² Çð$)×Ã!f?ué|¸„¦(…Xräk£?6FFÑoX{¡/³ÔúSznà6äŠP”»¡7V4ƹNAr??©ŸHýäxÀKª8y%˜NQj"u~2ؽ_”=cFÂÚÖðÖuÀ™ç¬ÇuÒk@ü¶ñm¾ãnwû5ºm¼XA{ua-ìÚ±¸nDÊæ7NŠ*Ò—úÄqlfáææµ,/ny Á$ó…ôå~ª,]¤!ÄŸű 97ΆÀf”Ñq‘c™å9ÇËýì¾ÄI@BÓóµü×XÎ>º­E?‚ú ô"—Üd!‡$i¸_ᆋ[$Eq-ñÁHtßQ—õKÕë+QÝ×µ–ŸZú\¥KûÆm¹ë~®¥ëWêÉ ¬_oˆ¢?rëWÉìõ#ä4ÕA,ClÑòÃ2pû%C"éRçÜ©µÝÖ‡_S¬¸y½Ïgšb²ÕrÀ/÷½ò%‹›àJà‰íï)ÂãYr9Dû@Û 6”­*ƒ–aƒpE–á%(_ºÊÆQ‚GóˆÎí¸@zÍÍF—(*¬lµ]>ÚàÛÎ~Bl£” ÀÝv8aÕf(l%Ö37“7Öè©u3Øž%±I,&¡Õ=tö‹é\óÉ 4ºËöΣÈ2Ï{Ó¥ïSTpÕ4‹‹qí|z^¥Oè5ç‰ÓžÂEð P´ÜS·µÅ~É^ºŠùˆ8(_µ¾NáÈ4s[•ôœª³#…ŽKœn“7Ñ^yÆxs.|£Ñ][a-u1{»èç’–„‚¡úѡ̾[³qˉŽ/K6›ñçWc°—W·Mw÷1yÅ#¹äcˆæ‡Îo†Ì«k»eX8–ûpø…ëÈg¶FGÞÏk=ˆZ5üœÊµÐ3ÍB˜S²ÜL‡"287ã÷^Á¢ÒIV¦e»`E©‚t‡wøzÉ5Ø@Báßuøm¼ÆZºð2§Ó-žpûÓS†“KCØÉLñ§Æ¼Öײ¬P_eDªÃ)?Gq¬³·|[)äjú" ¢ÌyŠîÓìáue±Ö¾ÏÐÚÆ$LÝ]5ý4Z½Ý—R¼=;½å+ÝÈÞÞÞþ8=_ºo©© r°¥‘hÎOÝ©h¿ËÔE¦lË [´ “æÑµ‡÷ƒ×;]”d]÷Ž;Ô¼cãSѺ¢7©/1šVŒ¾>Mž[ðÁní°4ƒ²–9º—H!e «¿‹xR½ò‹Ñ Çg»x¬”ÑgJþ§ÔËÔ í6Ùa¤¨•ÔЙcà‹Óa‹J̓î[Ù>âMÎ^d ú!‰1Î+Ý‹ÀH²aœÅ‚«nÚÖ¬RÒMÿ@,sWâã‡u+€ìV$ 1V¹€cŠž4ê~éXJˆSÚƒ-A_Pý ¢ hêa“@Ç‹º³˜±1+9\üÄµÊØc{»?nm•¸ueŸeâÀ}àÄÞÎ"yþ¶6¶$ey~ÑXU>ˆ2*.dĹG9Ðÿ­»3âtÀë÷ÊøÒP_Xán_а*Êï_îŸi¿ ,è„q\[5k–MæÃ}æ`³BÍãi‹D8Õc9èŪ˜žB,:ôä˜bØ\%èÝÞº† #ê–÷™a+(5U-9‰' Ñ“íCL§ä²©ç»È|è·qáa(2—ay™uœ2ã®SlYfIYˆ•)ÅjýÜ»H ˆyÒ*ë°TkR~BŸMn¥H±d¼t%gæì$B(;óÂ’ËcÕ‡‚eW$7HèŠøh*t”øvü[Å6Ú=?ahûEÇçÞ;„Ì,‡¹„¥v+‹+»pðþ.› VÖ·ÅF]Ç'ÑBÍlÁ¢šÍ[-[•¿Mð.v>†¡–eó†aÓ …ÝÇÁ}/èt¡"=…ÕÚg9!%™¬ Ï'´tìà¬}×ÑÕɆþu„¢'{&1;5/»=ö+’÷0¾DµBTµÛéB°¢µ¾5”‘‡”­Sp«‡,ïÕ…Áé1ÑxÄ>Â^L›œZÎá–ÝDž˜÷„³§”sö` *<ê¶‹ä6|©>êîw© ]dSF3ô;tŠûÁýœ ‹_ y+O°Ž=‘–œêŒ‹­1»ºß«Ž"lµO–ôXVƒXƒ£CŒFK8¥¬t‚ f^Š´ËUò^ÑŠ‘ÃÏýèÞ¸?ŒgíDìPÏÉkSú)«½Žz³õHì]š¥e•ýj|©¢›QjÑšá½1zÍ ±à¹ð-s¨+ç $Àyë…r˜®N¼(¨§üFunâ˜x©¶Œ+OõSÛ;îÛNáàL`xÌ'í£?½8ËôE-N»fdÜMmCð-›¢›@k¼ ,ªI׬òI a(Åå .èÞϼá 2”ePôÝ‘¦£ ŸDÒÑ@»‹‰S”‡cñjŒbnÕ·Õ]æ\$ý¶*ó{D™VéÐa½ÉE ÍÏ”ˆ-¾^ßÞX^òÈŒâ«O Ú ËŒ=dæˆçjÆ#¨K­ßŽŠO[꼊Båà‡³ùµo¤Ì!J¨!DPÆñ±ÑO®œçCÕ¦ÜÅ_JQæŠÝ΢6¢–Ÿ©ð›- ÄX R”3\XQo‡‡D´„í ¡0|Y;ÖBíõ ':7aåðÖç1¦_s¯IŠ'±½É}X”ß6œmù¿R÷3ø†{¤v<€ãüPÞÔúŠ*¶oï,˜ï'®£ÀõJp4›!TíÒ–U¹€ÿî’In¬8íf‘²º k3Õ +Í]8‚Þä7Ì â*ÒŠB©<‰DŒ|ág8OÃoäÝÿ"Óç¿•g)5*)L_+(õ eo#kÚ‹‡?u[¼{TÓÍË j(l÷àJÑ9ªÝ{L-íµæï¸N*UÔÍ»)PG€gšã4~(HÊ_ÿ^Üuö#p:¶ì;…‘«Apíòðef3”ßÀÐê ÔM/þP'â\Šñ5ÁT¬±ú©G¼°ß§ÁÔ²½¾†‹TÐ04)è•ϨôØóG&ßV›ðvÀ1&þê#.KŸ\ŽlEDx¦b)韛ÒÛ’[¹+ÿ9—‘PON…%mÝïýMJ½…É‹‡ððdõK°å¨ÆÐ#ƒ%„ˆµÜàãm„=!Õ"‘´yq­$ E NÞÄåÛ&Dé8mèPØG°`ìm¶—ÒÐAza÷Ý ‘L`DHº‚½oîÞö#~8.ÖÖ ¶´Ï¶¥K'蘭dØtRŠXs©ûѳ5±%÷Ô›–דÄhÛñ~aëÌÕ‡]]>ˆïD“ŠD&óÝ[9Á˜É⨠3w2, Ãõ˜ý¼ãÎ4³šà©ßðs•ð§bàauÆþ¹ÝìmfÌD(„¼ÎH:;›¯œS®Ký^c¡ÃsÏGªzÃ\.ƒÃ‚»Ä*Ùþ¤Kýy`²¨ã°'Õj£‘×ÌÒa’*•ú’ÆÇ.Š¿ÒI—ùU“Æ ®Ì+$†Èâ*úˆýäâÕÇ@cï™ðþN±ÿcë&)tšþÊ>£©çb¢‰\“Î?Lˆž¾k‹B(€‹•>ÙzT)u+ˆ{lÄ ¹}-2ܧ3ºX Åqm9ÈààŸ˜ þ7œ-¹™öl"ö^endstream endobj 325 0 obj << /Filter /FlateDecode /Length1 2528 /Length2 22112 /Length3 0 /Length 23552 >> stream xÚŒ·P\ݶ¨‹Cp®»»»»»ÓXp÷@€à$¸»Kp îÜ]‚;ÁogÿûìdŸ÷ªî-ª ¿ácÌ1×j(H”ÕDÌL’ö® ,ŒÌ¼1Uf33#33+<…ºµ«-ðßbx M ³‹µƒ=ï_bÎ@WLÜÄd§à`u³°°X8yY¸x™™¬ÌÌ<ÿcèàÌ 7q·6(0dì.ðbŽ^ÎÖ–V® 4ÿó@mF`ááá¢ÿ—;@ÄèlmfbP0qµÚ2š™ØÔ̬®^ÿ‚šßÊÕÕ‘—‰ÉÃÃÑÄÎ…ÑÁÙR†àaíjPºÝæ€ß Mì€ÿtÆOP·²vùG®æ`áêaâ €¶Öf@{‡›½9ÐJP“‘(9íÿ1–ÿÇ€ðïÙXYþîßÞ¿YÛÿËÙÄÌÌÁÎÑÄÞËÚÞ`am (IÊ3ºzºÒLì͚غ8€üMÜM¬mMLAÿªÜ )¢05øïö\Ìœ­]]]¬m·Èô; hÊöæbvv@{Wøßõ‰[;Í@c÷búçd?Ø;xØûü,¬íÍ-~7aîæÈ¤aoíä”ÿ· HÿGf tp033sñ°€N §™Óïðê^ŽÀ)Y~‹Aøù8:8,@Mý¬-€ ?ð>.&î@€«³ÐÏçoÅ< ÀÜÚÌ` ´´¶‡ÿ$ZüàÃw¶öè1ƒvÀüûç?Ÿ @ëeî`oëõÇü_çË$.®£¢,F÷OÇÿщŠ:x|Ø™ ¬Ì–ßKÆúà÷ßa”M¬ÿ]Æ_¾2öžªé*vÿ÷PÿûrÐþ;–¢hkê?K®ÏÌÁlúÅòÿ¼êÿrùÿÛðßQþoKþ¿ ’t³µý—šú_úÿÚÄÎÚÖëß ¥us]Ð5°ÿߦZÀ.­ÐÜÚÍîke\M@AÄÞÒö?c´v‘´öš+[»šYý³-ÿÈ5~ß2[k{ ²ƒ‹õïÇ €t4ÿKºZf@ÐJþKÝœÿN)aoæ`þûбrpLœM¼àA‡ "€ è.š=ÿµÄ&F{W ÔžÀÂÁþ÷‰rr˜D~‹þ!N“èâ0‰ý!nІý!“Ĉ‹À$ù‡XLRˆÀ$ý‡ØL2ˆÀ$û‡@µÈý!P-òT‹ÂÕ¢ø‡@µ(ý‡¸Aµ(ÿ!PvÕ?Ê®ö‡@ÙÕÿ(»Æe×üC ìZÿ!™ü!P-¦T‹Ùˆ¤3s°îÿHØÙKììþøÿ>u&ó¿4=àŸ :þY¹ÿ°‚BíÌM\¬þ’íÆɘA­[üAPX‹¿ý7Zÿăí7ºÿ©ƒå·Àöþ·¹ƒ›ó_Ù@–!(þŸZØA³µòr´Úÿe’ý•ŸÔ¨Í_šñ‡¿4HÛ¿4e»¿ZMðOd«=èòü¥õîð§³Ã©AÍ8þQƒ‚9‚Þ‰ö¶@‹?Sggù·Ôù¿ƒ ”Ëè z÷ýeÊù/™µÃ_‡ú{|N–”ÐÉÍÁhnjû_YØØÿ(þW"žkþ[Ìòûÿ:ÐP]þLâ7Ýÿš:ÈÜôbùã*öO8Ðó™ÉÕÊø×þ¦áêáð—¨c·¿t0î!¨L¿– äýW2VPx¯¿4ï?cEò:ÿ“꿞qfnΠÁ»þë-Zòÿá}§=fðKóf|Á6ß‚ÛÕˆà{0ìMÌPìi¥Ð0ø,9w¸="Ã~¥©Îø´á|'òu¸uuG‚úVx™øÅ縥6´5A¥íÉ÷Ù(Nuz¯ ~q k`²àX¤®Ÿðƒºð¾ï‹“¯fàÈðï²9NnÜÈÊyïyôIyÖõ—­Œ}žßSÙ¯æ”Cx.ûÁ­¥X6Mé#z˜$‹½àSR¸:°èÙÂ_HœDŸ¼Ê€ÊxÈš^m­ißÔ[ë>¶Ôɲ›óL…?ð~7¡¶´ ÃÈ™T ³ºÍ(ò½k-Û áa§…èZûf·…M2Á2Ϻ7À,’ŽÕq@s·ÏS½ÓÚðÈÃýçäÖ_ÃM#;Ý~ZÅBýB–,´Vz«+¼é„ÉÐe®ã]Z@ Túe÷¯ÜÏÐ&!ü>Ÿ.EñX¶ ˜™u¹¡{ÁÇÎ8r|/cü*.;7gÑl=Ð ‚Þ‚8ßL¿'_\àZ±Ig|¦ÎM—èÏ]¥Ráûl˜ *cºØ¬Äb/õ"–ßæX¼$/d—‘êÝ[¨ŽÐÿäeóÀ“Ïx¦Y©Ñö…#_…d÷$’aü°!pH4(¤çÎüpû®¼\Ôó§ƒæÃE¥G˜èpÌ–:Wpnx§j@v—‹Rª”H$DÑýÎ\ï;S²SuQw»¦X-uÇñ®¢gú2q ªÂ%…~¹Ÿü¡¾K‹â…½¸5ÂXá·M¬ß:”~Qƒ!f ®ÅPdì¯@’u 7i^¾â‰â«©ÿÊ#óÞë]ø1¾C2:½Cîc[©_ÌÞ× àãˆJ…´£$YØ H»Þ ŽŠxµˆh^×ð©_&¨MŸnœ A‰’Áv°1cNœH J©2Öå é0Þæ²l¶½3…‰c›ª\ô¿­cÜò‡” èw逓oˆ …i½›ÚæüšýÃS*WÅ~°?-w׺šb>1‹da^ž »V/+ íf§ð# I”Eˆö'8³C´H8°þ9*Œ¡o±I—ªï•Ù$rI‚xkѨÐ6_§DeQª¡—ú¾‰ÉN€Éº–QöúpÁ|ᬅ' Ôœêê:ž›—žÃO¸Žd*A–\°ô •äHŒõ¸T #÷­~ tPáŸ8˜HF@˜6öoäÏ$ba.õ…K}ãoûiw^ßô°˜±>lu±ž¼Qù3®¡¡¦&]h×Xèš+é Áh,Zïkç5·§2?;Ëáµ€ëä/i°e$>ÎÔ–f?g97–ŸlOib`ÐÖiXõÒ®•ߦgüî¼pˆæ_ý͈(ô7œÎô[[÷Ù•ØÝIôÒîeZójÎ몟1öÍ"ñ˜7˯d²u˜+ÆbÝ}87pçõõ œ³†ÓHÙpî!3ÕèÈ1®Êá ÓtÓcKÈù˜„‰éŠJeuÀz­P#GÈQ}îeUbžÑL®â”Q&'·}úùXÑÌ€½©×…s< Žü5ˆ‡+7¶@ÉJa™hZíz/;†›Jïæà¯PÁÚ‡ã½îŸš:ËI›ÖF[„Ô߃T>ýÆó}¢dC¨/_.ËŒgtò~KÿÂ2Ûµ’R¨t'f²ïæÉFýØ£#a¿<Ç\Q_¬9½`bYén~R¸P‹Õ“øÛ‰DÞüGվñÿ.‹&SÔ¨€píÍã) s|·N®ƒ÷ùéÃÔý`E_å÷éaL­õ-V‡²Þ @•Ñ‹ŒÕ(ŠÛa®¨Ý™$ 6o 2Üb’9\éçý§®åu¡$RI0޼=‡Ú•e)ÃñLMu–”÷¯ž#!ªø]ê±—v™g+ÅÇúyŸ]%tr ¤¼»Ùœ&´uCQå©ÂÉ‘]Ÿp“ÖÜçJœ‚J»US æ¥hÚGã´cؾ܄&‹ÛÞLÛ e Ö\^"M5Qy¦}þ2¬3Ž÷ebY"ù÷™¶|U>£]Ôd­‹ÚÐö’0ñ¤p‘`)`ÁÜ>ª‹ñhÝ}êØÔ»FZ¦"¯å|ŒÞÏÏ$k¡m¼Äu yí*¾q”çÔvÜ›¸fà +±ç2e‚I^'6²y‘¥î˜¡((,LIõ뾬éAÚU¼µzOFI~„y‡n[öPNÚ#+X„ZÔÕ%ð;Фùµª6´bKŸ{¸^|®ŠŽÕŒUØÑ&=YÖ¡œÉxØ!5àù ªÇHoB[3 {ðúF%§I]ùíÖ=(ç8BïøºŒäüÑ*á±9Á ëòKp”1­Ü=På~þ‹‘°6'žô†²‰û´7®Æ8¦QMö8Æ€n9 mÙî`4zu¬Ý ©cÀg>Ÿµ²±w•*lX‡šš|‹¹íãa3ÈHèUJŒJY›ÖôíÜÜåóDA'½ŸC,³ô6…I%7å$©çš>¥ÄujÆØRÛZVug.›þ¨Œ^#i>,›KšÕßzy0aWaÁ®ó”ól;i6â] ?œæ¹˜Ç¤Û#{ÇuÃÁVæðÎÈgyãÄ ]”9#D敹+ŠwF*HqñËÈ[¿R&ˆ,ZâoÙÛrz‡Ê¾‹•Tj¸â—{·w¬<^ #"‚3âþ9áãúÛ<ʃ†_:{ õTK`ZËS{A”]yÌr€W\Ì4&ëwÖK?ÜÞ™fáõˆÁsöy‹HÎe³Ã{1^éåx¶l¯¹²ˆ¸U–e":ŠL2ê±ç«-²šz$Ò™\K Îx8VâcßÖúISIˆüwËùè¸õ <c1^åvc¼v£;ÛY"}¼ä» ÿè=\?MïÐV½‘ã 9Äœâò m~]‹EÒsòlö0y`ùjÝà©éuÛ°Œ6Ij@æí“\ìè~Õ”Iø9.õn±¿„ÑY”'œÓ¾YG¬RŒå±ÏµÌ\˜ì¾„lêƒbèl¤\ xÎ _~×Ñl‚m ä#5 Âb”âuD8ßæV¡ùkEÏÓ)x|%êóm{ÿ@Qî×þ÷ÁïË ]ºŠxø¤b‘Ä$ŒC4æYmv ÷Q`ª$LH:(wômO£}$/ûÒA:ÍÆÖ~¯Ì³Às¢í Ne¼SI„t⼬õÀ«˜Xx2ä2s;˜ØD, c„˜aH¨µBÉÊî^jë°O>˪uþþ›ÇZÈÀ‰é[þ©RQöû‘q­^ZItƒ5¦"c¯²(•ÚwaÉú*_{ð%iËV­Õ±.£ wæFù ÆAŸÕ(Ôë[å¸b«áèTSçOôœ ÓŸ‡tnûߟê8ýÚk  #ïuB•oà'$Á5$òN®_£.f䂺æP¤£¨¾5‚ëªO È,mºRäï¾%eté•ÐpõQv>çXMØg"ÖâþÔ¡š]1éiT、Òvþ8»‘ÊdodÿRV> Ž:IþÛAÎèT|eƒ"¡œdÃÆÊ…á‡tÓõû#¬Scùê|¸“\ð–~Ÿç0t÷ísùÕÖý<ö„–òïíDÞÎ\¾bô \_Ùën@Ò¦¶ ”Þ¸Ü^8¤c˜ ûÄyÍ#À‘ˆ‰Gú`›Á1j}Ôm<9'ÚgƶGØ4u ±tQN1'g˜Ö¿«ž˜M§”çwü…ÞŒbûÑ·Å?½žûð‘q¸/©‘ÎbbÐÛ«Ä=ˆxË蛨wÕHhöçV!÷Ùv8ˆ£ëöÛ…Ð^mp“|nܹ;ø¤•PK%Xx¸_\{’ït„½Ô ü/C²!R+lDçV$¼#NÊt'a~8lŠLü„¸¶ñxV*±a¢öÉâ—²'{€tH¦ï¬Ös=ߊÑ<ªÎ{R6ÑŽ¥ëçý_[Òú¤3åz0¿X’&ROÍ8ñ”9 ²rɶ‰¾\7¸0AžE4ZRß”zbªÐ#» êUms'H¹ô7ò«’ópbP†=ÚyUÑX7àF¸ÿ´é¹Ó*‰”ïS5$T5±ý~ìYg”³ “ÉûC¡¸jcÿlã<ö}L[%JþÇ’'&›‚Íþ¥\¿uãijcqJ-‚€¡²Ýyíréâ”1W™‚Êöw‡æ—t.…í1Ë“PnNìW{à:•žw\E¡ä‘ì“"“… Ö± BV,1âü³°bù¢‰j¦NKäDC×/8}Ý«ÄÕqÍð‚‰‡¶ßUã>ã•ç}œ¡éúܘùÐPxÅÍ«†K…hØrË»ë %[k#|„áY^$AÍ,5Â7ÑŠ¹¢âS:˜øAªå" •/‹ÿ‹¾ýâ®[ «­¼K‚v€c/Þ)n¡ÏéGa Ðnä”7‹˜]A¾2K¯?pBu­\6Iay$ø«-õåL9Q+pXeÉÎQ‘CŽ \ëáKÓ»²¸n!T¹©Û2SÍî­á÷½¿ï ÷¦C0M2š¤óõäìd\nVg¯d&WŽâЬP¢ºù„è)]@tiLÆ?@ †å@v=ÓŠf…<¦§òYÞªL‡aï“¿šó«— @AYGªtnŠˆ*šÀªt[ +2D˜# ~mcšþWFœ BfoPÓ°¸´MhêŽ ¦3æ'ÏÕ$ø}ÆÁå©ùêêÜÉÉU˶}|”IÕdüËi5WÀ/4Ó»’ÞéÆMƒMBy;2f`ÂjÒ”IüoÐíñgP@w{0î÷™’Ÿôw4kËØú¯M*EH¼¼Úwx/gè0²ÌHò=/ “>™N*¼Î‡o1Yø±m$¥ îJ•&¡UPY(¸LÃÎkki¼ø=ß545ëô5D"Ì.PØŒ’HwžG*I¿Á Ç=4Fò†~›¸ú·-Ûìž‹ü-Ð`• ž| ¶ e…JÌJ(#•?X ç…°ít´¦ûR8¡'ó]šIE}FªÈG³ˆÏ?m´À먯baœÁšŠÉVŒ¦ìu|lVŒÙ|m!Ü «Œ[©dls^>nÖ’ìÕ?çÞÎ(÷Œœø$æÁHT§œ L8š".Z+}€4Îl:KßqüõˆXÉíæµJî|•´výÕ ÞÂÏÌ©—Ž£ÛËŸäeÍ`.óÿW× ²}%x§k;5¯ôUN§RHß u•P)ð'¡¤fç«Ó –`…ÛáfƒoØÖeŸwPVHº´®>E¬Æ©ûbÒ”÷Ž!Îæ¨h´E€¢úvs#›N•öñ¦P»†lü/,†¶à{BëiáÕ/“A/šUÓo_Ü©íÑ©ÆÕvzÄÛÆ–l½ž‰q¸°òunçÅê*ûí~66VK¹qI¥ÃþjXb)zBqeŠšEx݌۾€ßd¯e©´3zôs„¡Û·(³ä±"'|,é7>Wx0^4üÑ"%wÇÇQSà1xܵ+ãìt.RÂf!òiCÍÚ­" gm·÷ªcúü于3êOBñÛ;ÞØèes"XÕBÈ5@‚ˆ+â1CÙz šíV“²‚áV«íI½Ùb·78µ¹xÜ`´>u¹Rmò]Ëá„F¥ ½mÏH|§Á |/(ꤷvTùâ2™.³?_+¢.ò8oñí÷“=_<Út¢é:^*ty'Îú& ú3X¾_5Ø~\vá‚»ý†Àó…ª8!Æœ_ ;¬O0\æÄ?cÊòš~26¹ÈE/BŠÐ«žˆ@5þÑ9&‘•ßã× }bB„˜ë½o}%oŒîg3Rs0,ü”±ç×ÿÑeÿ\«6uÏ>Ô%&…ÙžÙ¹ÚVH·Ôû:òëz¤`ó÷)±#ƒü4åPþ乜± À¸¾„¢Ç8)ïlíû°K™P«ûhÛ€¡þs8m<æü‹ÊÈV‰¢©EÝJ{çzp–é»è¥bwíÞÓ×–G–ã&»1_Üê%s¦Sù{ßk?z­5—ULA<Ò¶C YÞ½± i³ô|a/‘NÏK_¸J3ìžr’:|ËHÑ8½öG¼/ŒŸâ<¡(¸N•¶ÿ’ÑZR)ÂEúÓGü³*?«ë‹Bÿà̓Ë^QÀÓí›x‹üÒŒiÈí·É—'º÷KEÚ'ÅI¨CŒG[$]S½¤´²+j\È]Ë:DÕp‡Ðç6+H„”?–DeéÊ÷þ·´Á¡/£ Ü&)æî‘sºSÃS×A '[Á©’O~cŸ(>;J›¤º;¹ï}ø(‰m®)%?OOw€å‚Y!õZ°iÈÔ\êTß 5|nÕRñð KTá,^ê*ŒÈvDOKÏ>TX´¡áײ2ÞUh|[È~óßnžjŠËÎù&·¶j£øM‹9G a¨‰ "Xà¼@¤äÇ'*ûñAGδËÝÍMÄ©ç4!KÞ?êà½ÜÎ&@âA"ð¥¾ëò=Rˆë÷}B’v›å|Sé™J¡ÊTa2åó$kŽ!f»&Vã-³1E;]¡hv•ƒeÉUz;Ë tÖ\ìÁõ4¨ii¤Ù>Ïîn0°Í|€äpèDÕ;È’äC¥W¤,¡zo]¡_«¨Ò-s%=;~3EÜ%¤Î{*¼(yŽ} ø†«¦Ý½Æ\Ë_AÓfµ©5ØÁnÑ")Þd»Â¸X§Ac¨=Í@bïá÷B¦«Ø,9%~S} ƒ­ lð»`kÿ¡߸èzúúª³Åa‹-éo”îÙ©‘åI¥ß0,%Œ¢1Ê)ƒ Oœ|°z'øÌ;¬iô1,8WÄC+Ãì‡5Ó O곈 wΦ±ì=p9ì¶+™a9¶Tr«¼Q2B#ñ%ŒåÓ³FaÆ£MÕ…åûˆQL§YÞMs²Â–êUÌ0+X§A„ÂŒv$†áxx9H)®ØÒJ_•©Pˆý²Ç=€î•·‹oÈ'¿ü>ù¹zµ÷…¼esvíÅ="lç±ój¬}¸qózuæM‹ ϲú«uXD•WXf'Ë8Ï(¾0£®6,Óé"ί˜U]ÓU¯¸c²î=ôrľàï®êC&¿j®ù’Ÿòœ®\¯·ºÎ¯Ñ­ÍKõiyEÈŒîŽb³öÝ©bÛª¨Ïç_AÝuàÑeY¤½ó}u–‡ê?Û×v MKµúá`V¨¿Ñ’¢<`*~Ò`FD%ì„b(’8Wöêxò~¦ÄvNæ1—Ã7f ôƒg°€szëÚ^¡Œ½DdȱãÑŽÊ1à.¬iªí)GŽW‰”IQõaõ­>b×Mý“8g]œ’VæêÆ®&:ÕÙÕfø&9Œ.¡·`6$¾MŽfpÉJÁ¯Ò²¿í¿ie¸E´ósì¤æcþ Ùò y‘£Çt0!˜õ£õ±s¸†½÷¨§šÁµ€²ÑÎ)V`xƒ: ]EÝQ¥PQU¯8â^É¡àEK‰³ŒÑ|`«O˜ä`!ùPį û@¡jU¬‰Âuul>¤ z_®Y«I¯ù}.éñÄ´(™é 3<±¿Ô‚_LÑP*”bòÉvÌ®›]s‡_Výâ‹^àbMÒl*öÛ{ðc»ôcÈVzXb”Hïû³Á¬³}__¯?ë]7‚ÂÉØ"ɪ¶ˆªÃ¶ËæE£Î2dÛÅ “¢È ¤mÎó.ÎæÆ¦ïPf–{a’ð#Õw„mš ŒmU¢”¹µ¾ˆ ºG5¥@èÖÑŽut4±&ל½¯8Óò@Mágê¶½Þ/i5Pz Qj ŽŠk_C–mºõê–˳ç ÿž™C¹ê= kÍFº¿{ˆ.ß]u¼p‰™ù},©Sß-e~ cÚd‹µ_Mƒ¢ ÜoÐ#8iº)-΀6öÈ›•½ÔìþnPžü’uE²¦ü؃Ñx»d“‹¹¢Ü¨w ‘9Cfêú|Q7¨ÍÖ¢%¥z£ó|SÿðÔõÌ_Si¤r?6ÿcû›fúæ¼D䎻Ä>ÙO.Ï'Ð7Ûó¯xÔ ÄzA¿¬¾&`GTG_ååüªýÅc°ƒÝ§õàô!$Ogz&íêø~±8²Ã:Ÿ“v>×Rì»æ› 7‹ÉJTå°^MΆ š Hûqa[‹ ß¿ŽKˆkUN© ð¯æ Ûs3w±-òPÃZ¢ Ml‘žt3›Ïh+¸Â2Þ,Õ &,ˆŒÇM&{(EÕB^}ÖF‚|¤,ª°õÿÂv”|Oˆ13ÛmQ„'U[žøa£"ì;ƨxêwq g¢6,,¿ƒ´Æc’G;=¤‘²0GCˆ£-Ò àû4Z‰É’úZ}­vý¸ñ.a¢½ô§2*Hß&tOXd6×U¨ðSÔ³êÙƒMÐÛßMmEŸh~º“|Ço{}ÿÑRº‘ÑN#•”âQÚhLÌV'¨žt¦t’ÔK5¾á³héB¦}aè m"F‰M/âBܾ`Mű‰ã¨¼/¦ÒXÿ§à¦›>)y5µ–hûÚÕ•H9¥ï’I1‚Â:îFÆ<¦ÍÎnÍ+vhNuË}iŸŒ„Þ,ôø´v‘¢¯ßçû„Òê‚Ù²ñªymyø@­}ß{‹¼Õãö“=V˜òxm/¹7O»*CzR‰\+…ëCŸvÌÊÀ ¡c`M÷n‘Ü+'×ìÅÖ‰ ûô<ñJÀ Ç+Ξ~,ýEŒzíÈ»üúÑç[ ¥èj3ÅM’B–3ž, B^ »nœØÎP„Ò}FƒêæžÔ{ÉÆúíNúû÷\ÿ¹a1µ=¸ÏÉé(Vu®û=ƒnÅÁ¨®æ06ZËËtyÈâבn\¢35MÝq­1®C–ì£ÔC¹i‘Å"ù¤±Ÿ½ˆŠì2FÞM3?¼2ñ%`= Y¾ök‰I·BFá_RÔÃí±ó7´ð¹È ™ªÉ‘€w%BCý •c&·ª=g›¾‡Î€­¥®ˆG”lË-‚¹ÿž¤YÅ^ú3ä@D„á†XžJÙr4g5¸ Fj–šò‰¨: ú•gIãU¤$AÔ½\Ö`q˜òk`d‡}’Å;‚ªŠh/¹lnö— =¶paNŒŸ°ë#àAØ]ªá؇¬›k!\¿øÆ¤Q'ê»ðm÷ÉÑ‹èùVˆŒ½cÀÜ™¢ä_V`?–îWæÝÇ-å0à”QIû"O!Õù é¥ÿžÓ9„š~DI1˜¦ÈØÝn#yîü–èË; tF‡!=ÄŽÂh©áÊ-ÆõŠäeðÙ&ËHo´ªa[m¥²¼Ý¢-pºba™Ó°wŸ–V5B¿„Í«½¡8ûÑp/6¢ÃwR™î~»§¿ 9NAúlµHñqùèX0öŠÂuêû#ÒöM3R‘.kË  ›&=¼ÿÕ9 ÂípˆØI¥j¡þ‹Äac§hó4è1ºrí£²"–0l~°”w Qd=CS©™.ÕÆfe ¹ÍåcZ>…¿yÿŒ2ôÉe@¿i)K¹G6_ þÚЃWsJ¾ÁÝwfˆÙA€£Áæ>Òøv»ËorÚæ‰m¦¬zô3ôÄßÖ_̯­3˜!k0¨O_H»9ˆÐ%ûy™3Áñ¤I~¨Iˆ”.-çx¬ÏÁ t&j2>‰°V>òŒHzüò‰Úe¤!z!±µ3( ˆ(Îí?EþŒ·fÆdïŽiíRHpÍqÿ¦Üž¢š9(Ÿˆ5'ÚËø;™Ž²ŒÝ¶Ñ8‹!ݪr! Q–²tιð¾gË2âW^§·z Þ²eo_üÖÉV\W 9Y§N”«·LY³eöÎâa.¬öd¶þþ÷ɼês²_Tã—š`£×†«’ºX¼Ï™5¾u£4{ænìNh28-è\ 듘»ñ`ßæ ±]i“¯Ñj)Îøfl(M²c"‚ ŽIí~™µ¦ì,"ž0zœ’Îtúr¾ÀÄMg ÷«z9A/“H}^™í.€HjKlHìæ(ùÉHQàRðNOÌe·'ڥџ§Ó÷kº§)‰‡,Õ)®„³J[4oìÒ£–FnÆ5 ∖AkÌÏà ²J¨Ç?4´š¾ð®K­‚Ç…C@ ò-´´–c ãÎqcÌ·FZA¬C ææ } +ÏqåYÿEÔòÎÙ¤j9ǧƒ8|0g°’6ŽVHvéT³,’ùh8¿\Eöb^êldúwÁx&!mj7š3†¢"Í’6Üf¡{ÏŪÀJAe\¡Âg"¢’%~%æ£O½IC®¶ýi°1IÑüôúo²—gæ#n"nðê%øˆ)±®ÝBÜ­”UÂ$Tº—ZO‹ä:`=¼–3m‰(Y½Å:ÑÀCŒ Ó&•J>'=3A9(gwô^ãEŒ@l?Æ@Mæ3 { “Ê984)Ò á%§`Tʦð%¢á;÷LUIÊÈgù}Ú~éãßl@¶²^ÿnÁChÂÃ8–eÞ|ø|òZHü|ã(™—æ£b±ëÈ“íc|ðötÒä…mÕéÙ¯ï¼ð#í骱vâ²i~MµùÛî~òœ¯…cÄÙä.£]>½Ã•*“.îX,f¨Æ‚L,ø€¾Ûyßuž»ÇåwžÚêŒ+Oÿ­¦Ó"†Œ-E¾¬_‰8A`Û S’¡@›aÌ׬]£ËÁHø³/þ¶-–ÑÚ©ø/ÄѶ‰šo%ÚdX™.Ë c ý8ÌMäu<÷|Ýõ­jÔ:ªa­u{ŒœÈO†È“ðPœ:¼ïœªtk®Dò{Wrn ÈB¶Ý&ƒšpr`$"Tc »s¢Ð”3©Ú"Qô8FM ·ËaJóľ¤Ìލ®×F½ËO—.Ê¿IMå #†e÷i’•;Œ±„H*Œ~Obô*é´Æ€²ÿó»Oï)æ!qƒ\PlP\±ÖaQùGŒ-›Ó X¶â+P®IÄüXøBÓZƨ´ªç‚³ô7‘¼…ݨlC—ö¬âf•/˜ž;1¨9*Ù`‘È®J4h‘¤?=i]¤fÅàa9IÕ8p8ØT„Ö?§ñîi&(òÞ9§éœ¶.(Á|’E{FèfèDè='e˜U@md°ö)Û·ˆp[ƒP >tÖ)‘DÓ¦°–™T/ÇGK^óÁò†2·‹hpŒ«Š6@:ÃÕBw&@Ó™. =0" (À`±¨±T¤Ö¿Ï/,ÎEâ8†ñîHïŒ>,I„òlÏjçá¶ŽþBÊ_㿾=LÑ» H4ïN¦CPºOs–Në-aÇÇ «è'V7ó óSÿƒGñ+-/‡È‡áB‘«Œ&Cw³Ë—™ƒÔ"áÄa”—}ªû~ñ©êØ™¬Ë±?r¬5ÈÔVbÆÍïÁÍ}¾Z+A”E]˜ ·KŸÕBû5¢;9¬~&¯6«È×ö,pðì;»»¥â|?Ùi|eEzjšústÆLù D©ö1Œãª¿‘#Zìœäì„£uaþ ŽÉ›íiúÎÆÊ2S1ýss±{¶œ-Ûëålj">—& U¸lõ£9\p„:}q¯SÙL)øL¹ØÇŠº­‚éáR^ð‘ý;þ镆]—%J{‹™*"ÉÏYÁ©ûeÍ%~qðÖ YÉ% qÕЊ·b›W¾÷œ¡áFUý÷Åᆘ­Ù¸óZ"üXÃ’›îû_.Â?Wï.˜ §KĆÏÝ®6ÒYÊí]\UåíÏx…møÏ-ì¸Ê>YÙn^ž^sã›¶ÌŽÐÅ\›¶ y'e}E ºOþmÉþîè¥}RqüCê­©Eüû¦…o¿XœâÓ¬œA†£M#ä’ Q±âzܾÀ‡ú,þ6¯Y|˜û}yïÆÅlØ 0 ? üè~­oŒYh³As9a®¡VhÚoÀªÁy«pT‚F}£ÖŽ-'' 0û$7Zª>¾ÕÍCûÜS‰ˆd­È8´”³<“°oi£þ bµ÷ØêÅ#ÅûYnH sMbûWmY(ÂñªHÙAœAÚWIÝÉN]:ôy«×÷go¦Zpõ¶A¾™¢BŸæäÅ?ŸÁIkq…Ò‰uæ®öêH”X¹v7FÕi«!èW:1Bïý-ÞIä‡q"²žN<ÈÅ1,Òô†r8W“n®²í³|m÷ókÃeˆÊ>4§²Ýra Ö! гh%xCtoö«ò¶<;[ ¿ðfw/†):R‘Ñ…á³dÉ„sÙôzZÈ&iy¥J—‡Ö=¡¢+rúõ}ùY¥ãínÇê3eD“¸RM²Ë”+cר*Ep¶g»k¦Jz8× QJmÚ±>9üón‡%Ï&É+,(ƒc7¢JtG§y‘-eŲ‹ýÆ‘°„ŸN)ŽŠç)OA ‘'Tœ¨lM›Z\¢¡I °Û…­9íÆ¥¸¯v¬'ŠòÜmɹI{k¬@¾=¬¼=RQ:vògƒ§„‰°v($:Õúµ“A_¬ïC°¤ž—z‡<¸ÅŸÂSò² ÛÑiÊÆ€y’¢œÏÑ9}árö‹ªIÛE/²‘Îo,Þ9rΖlJ*©^‡Nb€wt%ñÐ2ì(*æ8¬‹ÿÚ±³Þíšg}ހĉXï”k9ÚÅ·'`+ÒÄIŽŽ†\´a˜Ñ0tHM~¬ì<¹zÞ8Àÿˆ­9ðyi  ¶ »è jÏ¡…ijgŸ…ÓKiÆÁO[¿ÊS+ž2­@Ê@™¿™M#GÏ›F¯(dÒ“º&%û$Mq\÷æ;O¤ñ6gåD" Z#Šá0ˆ¶n ‚¬?R»é$êB⋇Þx á Gé '†q¥­À]‡¡’÷ú/h â\XÝ”úe]p¾µ=£TõÔ8‚æ]ížF²†E­§hedøzCÁǺô‚Õ7ÄXsý#a6ò%á+ü¼›](€PÎW¹TaM–b˜;èdýj§É³fØ\´Ðz¼ÚàLÙ/™™|ãÑ5¬_/ >³þÀ&µ‡¯H¦‡Jp¯3±‚åô Õ§¶†@’+>Ÿ¢,I@Òj(–×Ý¥Ûü&¥€ê‰¨º¾t½  =Ù~ÆBö=²S¸LÆ•؈ª0úÎ>71wµ9¬ÿ8fY;è«^XmÖàòG• IÌÒ/Ïuü°Q_4ïö\GÑÀŠY”Þ^•ÎÖßj(äv5ñi$Uä§Æ@K¤PW ê ׫ß^ØtS Æh)ü¹$¾' A[±Ôƒðžuê·E8jâ1e0ŽRd/̓²ø.Ìò4› ŠGs¥~\Ø-­]w3°Gßk—\A°áô¨=Á ݬgCN$^ofhõ_eT$ŸÐ—:=*ô[âMQ²…«76¶u¤ŽÅ%Zx„¿F“ѺS¸`u²@'UïãZª¯ ãl|hË)h‰ƒ@ŸU«ÒÞ›•¹Ðo° czìÏ)±…þåüèY’`,ÊÃQ7Ã|ó‰—Kð ìÔò~Ê™B| ªÛ2!k¬•X|ÃæWÔ%ØÙ~º‘2n1^U`aç}¶öäºõÝ>¡Q ˆöCH:nÊå•ãBéD@GÞ…ŠñFgTÌŠ™µ|‰FM¯Ç¼GrííÖÆF E †Ê€ô+\úî)¿ü–äû»çoc±ŸÞ`¢YÉŽ!;  «´ö²¸_÷—”ƒ¥žOæOѼ9á-H£XìU½Cè9>Ú95dmžUéYR¸}y[ŽÔtúÁR«[ôÒÇtº8sH†ÊÁD£O `{“{0àEi“J¬óô8ää{ËIšjqnŠûN¼‹ú´i1aB׫óñ Cá+­Nþ‡‚øC!mæÙÇ|˜ìÖ€;€]+1Õ ò&IŠKf5Æzí˜ëÆJ ˆÉêÓ¾£O„]`ņ¤ôáDÛOÇô’_ýzX/_É”R‚?×_cÀõ3‰„&Ó¬Í]‡ïhÕYq6CcµÏ° ¸OÎ(k¶Za[4‹õñâyIõÇÌXbྱvîoÍ¢Žã^ÙE_ôjeGd¬<©L.»jÛнjÌYìé†ó¥ûp5õ±TZO£'ö$+?@Ö\CŸè=T&h«™±¥›Ò9Z~+æ ¡=¿D­Éà5ÖžóÙÂßêe˜1¬à ‚s¹ i¶Úp£NŒéúèt?½y‡—Î 'ZÊñ¹DÌRœ÷‡Ü)ö'ƒ éwI™÷€ÄCÞôTm›=ºæ¹N[ðmòL“B3ŠóF¾²nOGxo-ëP ð\Aýàã>j vаLÕÐô­Ùv›s+ÃͶBýæµ>4Ñ;E½šèâ&š›UegIËqÞG“!þ.põVÞ%ŠºÔï.$ñK!ƒ<%ÊVûÌöwÓ¤§‡žÅ2¦’î-2Öêà×!ñÅ ·q‰}-n‚w°‰¤¾¼ÑÚ‹=HßtãìÍ…Q§ÙêŠ`(2ÐW]¤mliN%½]-í7O°³¨`Êxvè°˜ÌÑ|’TËÆújv´šØ¸F¼\á=& .«`ÖŽý‚(}†Içø&ô«þgpµŽס²]¤Å#€2|}•žnx.Ò ·QȨkòNþ·òQó¦’‰úíb 8³5‡Üæü©,rјÅ\yõžp–=?ñ¥lì§#fƒÅÉá…ä*žn}€V_¾ÐxºXáФì‡1/'ƒkS†nç“‚Yy¿Ž^áŠxM&¶@ͦ,KÌå]ŽxvçK,lLuXƒ5À1;åÕÜ]áœÉ¸z´¥ª+Ví¨8h¦Ÿ8;!^mcªaZÏ•šX9Ö›ÀJÙá7ÿÄN…Ë•G-+ʪVJî>®Gâ9HØmÛÅC:tÐhG!8Ýy´8âbꯊɞü1¨"{Êf«Æ/±„v²YË`¹¹:A;ebc¯éaypÐ)ÊpK}8[FÜ÷öÀJÑ4Æì9•kɳ(A]ruàÛ !üClÄ“0Ú"ñhþ‡îªƒL7$~(Ü̓ôÈ¢& .wúÈ´T¤“ij;è¹®RD*øˆ`/Kkz,,ÉK4/ëëÅ^€Sk÷z d³¨\Î0»®ÉMPßw柹4EDø›uu{­K4zŒï´à6‹91xšÇÉ“®­yópõŠÀº‡/Áô¿ƒûò€ú©°Í?`ˆ\ÖãÞFÙÕï¶+“§±-% K hÊm›ÎorSšëŽMNŸýƒ_´Àµ‚ȃ…I%p¼¤jò–¦SµÞO)¨É’²?EÉ!ÂÓÞÀ[ ?šcXΦvéd‹÷Ã[îÚÁô ·CÑ³Ž¥úa{ }Ùê Û¹ÿTšˆÂ áÍaxšnZ<ád8TTÓƒ˜Ó¥¡ÁüGOƒ@¾L.Ñ_ ¨¦vnûÀò0c  ‰±1{7‚Eö#¯6¯[¡u¤Ùò¹€Ä¤GÈ®‡L‹v÷ Ĭ û…+–4\ßžI“øÓÎ w”«4fjkÍžƒã<¶é'ªî¬”`•(Ÿ g=¤LçѬd±ôcmXQ20¦ÃœªÝ5ì [U=¿béiõ²´õ¼£vvôa’\Jƒö®nè˜ñÍ•ÄPÚ¨bFÍ'TrßøƒŒ’4wˆ#¥Š¥eEØ8Æ]6ÔHKO²iEL/–Øå/«ÎrGzÂh2ˆ« ÝîÛöÜ%"&8žbu©£Xè›° ÇNàps´³ÆÇ•`Û"[–˜`ÕùÍ‘.¯Èô?ïŸÙ;îÆ¤§X,‹Vu»6MQxÔ ú[²Èury(ßòÏ´B‰ö,‡zqë_™>.ÊÌ9ºd¤ &ÌðNré =\Þè£ØϱxbxÎW¸½>+ 6µrÛZ´Ùƒ{Æ•íò¿ ¤‹y•vjáªE"Ǧ·Ÿš/ï–ÐOÈjFñœý ÞÑìñbxQÅ4ò˜øa¬×Óyî{yåon¬ýÒaD Ù¥ žž†x©¤Ðx&Ï^ )–Ô³áæÞ¯D£cô€ ,=Ÿ»Pæpœâº`çáylë‡ÕaûÓ};£Ky ŒC¿7cN5RÁ„Ø©·ñhCàkc -y/µãæ,sÏò¥ dîSWq×h:êíáÞW ïƒm—sIë‹õ½Õ”ä«éšÀ¸%âPF„M|~é±§Éæ”äKt: M. &›' ãù.!YgLì°·}1Tk¯#ˆ_ mì'%[»@t´Í‡iþ¶îíù‚$Ì ìÝ!Ç—ø$5C}.\-ˆtOóœ`Ú#Ý<7q\—r‡z´?È]™ŸÛí?éÓoÃü`BúÝÒÍ 'À`–KÜHšÓWºHMÒ†‡<šËò‡ÚixéÎõéaZ¦Ô¹ów@ŒÅûZë º‰÷Ú›ñkNÖ3å˜5¯P¢Ág§„Þ-Rɘ×BŽGßÊ»`—B ?[‘—µÌ~&wÝR«922¯~{Ä»ù=è/k¾ê5LäêR×Ζ´r‹=Sß>ßøÉ·  uÄcñqµàm8ô¦=YC®E,ÌèäÒEÓÉÐÕÝaäãÊE3‰Æ';‡x¸C†W¤yÎŽæOz €ç%*ý% £ÞïYžwh–aùñG{4ÃŽ1ÌíïnÈ1êÚäž¡kig±§p ödW¤­:9¹ëš‚ "žzí&éŸU>ð2é~ .c‚¦ˆ åŽ0ø‰ÖerÄ«tGóöúnãêbÂö¤dŽ+š‹[¿pÄYgL%':[@Ôÿ•ÎÈôg¾’­LinÃHÈ÷_¨Ë½3[»bîÚéÒZÆfÝê1ÀKº›Èèç©"ž¼.Ržƒ~³¨V6~ Gn|=ÖœúÅ};EUc¾¥Ø?V'ÊM›îWbq‹‹À)f”.Œiuès4êNİ({OÈgå#3j_ðà¤-À‹­e‚뼿ææßz¯¹}„9^xN4‚xQs<ˆÊ1HëÇ¿­¡ï--Ü:ö‡MGfÝð'åûúícÇö¶ •«³¶€¡Ûµ{Ö7£5 á²!é³rDbi¦œ°(z>¿ñ}†Ri×+·Ù2u35HŒa·¢j_Y² Õñ%Pø®|Í„sé‚}¹ &Èz'¹f©žYHë©M=†ÚyŸ°¯‚³sÙÂ|?ºµŒÛh—nlQÔ¢Æ=&NÓÄ.êI/î Ô©ã„.)Øh¿ «Ø.<€’Á´(et˜\é3 fx0fžÛ%Ñt“³Ì¹wTü5v^*¹0|æF4Eýõs*D¿PøçâèX©e½'ºB1FÁkG4HC¾¾Ü´J¼Û0ð7üîÛ²ŸÑ+­:®EéßQóXßÒ+³ kMŸ3IG_n¨´-¹)ÎïBÜX°¥Mü÷„’–‘E[×=a­í˜Ï9´r¿ÞÃüvƒÑN•µW˜ÆÊw1•Ïî•>ÃB0Щp Ë_4Ÿ;÷ÒM¬ƒÿTÿ¢:I ƒ0YnMÃÚ)ÔùH¿"tOïWʬíñºû”¦dq±¹†Ïƒ4‘˜0ÂU}ÊZd „áÿ B½å]‚¼A[……ÚnqÝiPc¹ÿ­Û…Dl›ò qf•_bºÊœ¿¢I’’liJj|™›ˆXŽ;y„¤jŠTTÓ$œï¦? ½I]ޑΖÜᾞ-Ñ;s}ÁmÜùâ[…o­š\\ÊÐyÕp²¸ÿl}ݰmL6~“­Ž·Àrp¾¡|KÍNùÖ8ïÇåƒÊ–‹Ï\gWíz,ý.*¯5Vš_Þˆ)uu±S–4A^cÿJýiT`š&ˆz‚ÈìãYð|Øcd£Ò'mà–T[įpvl"ÑÆãCÕØÆY{g®Æ¬æ°¼ð["åý†xsT,fÄ&a;æ£ßCâ Š®s¹%ÉÁ²éóÏ”Š0ªX{¾?'úV&OyŒÜŠÇŒ'Å+GgÐ+îKÓææ¢|eslôÞOµ ¦é­xÑ%¸–ô€ŽÇ¿Æº›ß§•¶Êµéßš'ˆ`N±Ò½q¿+ñ“9n’ˆG*¬W=ãüuĪÜbs<¬ë@vçÿŒ"yS%ÀUuu:y¡-xuz‡ê[®w;lzá‰90ã´me9¿²ùØ#ÅÂ=Cm›Þ†´ã–Ê\ ” ûžú?}­›÷b¹7Bç”5Hogâ¯9w¡ô\Ûè\’§°«A²¾ ä}«Ñ¦ìüíÊP˜ºGoER(?¹u˜i0o0 ´ÐÝ…>à c³HÉÍRPÍÌã‘"å[¿üØÕ BÕµ†u'WB\ù|oÆóc¿WXÆKócיּ¼ÈP5ÊíHï(ÞjŠŸ™å$:H«ŸÄñì†ð7N0uå‡Vœ`Â)¢®x•ÒûŽtfL8ΕHΦPº«tÀgáfýñQˆº®C”ØÒK!§I¥îûnvQÎ_ @~ÖC‚wIž VÜA•¢O]vÎú 9Y á¡p7*ŒŸwÜ••´ ‡)S?âñEbksú½ÆlL-.íh=dˆuYÀpæÒL $÷²qÑŒ¡¤K8‘0‚‹‡ú¬‚æÍî„oC]˜Ñ’UpáüÄL3“ù½Èé¼Vû0Wÿäù¬CÏIüJ¥ ýPwá‡×]-YW*cný¿ãs ×K²)³® mR/|¢‚JkÏôÄ:½ìïoqÐU'¶ã>õrmvA¤¶Ý¦[ê·pD·è"CK`fqØ*>ÿ–þÅ9Õ‹ñ¿‚€ä2PÀ_÷(—”± s–‚Ýì¡k—²sEªƒ²­°x„  _ãÛ/Á/3òCÛüeÁ€6X |;¹WV@Žº³ý(ÇC4Ká=dä¶ÒÈÐv‚µ±Š<¦?®€¹IlÍEúù?_g>/SĨÇ}U¯w”Î…$ˆ"ŽèÌG•Þv€ò¹çuÑ„ƒuºoÞ,tÚw)­:—Îè <ªôP³>6pøáÄÃ%·ºšÈØm¾v®Ìô²ôR6`ä¤D\'û÷àâz€¿¨­’,+¼RHO©¢žW¸²{)`¼7jž/ØCLSÊdv­Â7É\övç8#"kbkƒ´üÊÊM®—%˜VD„ŸV|%=Ö«%ê\ç7ô’Ž/ÆDæO7„Ò¯& MÀ*)7fÀdÿàê ™8lüÔÎq—a‘’EÞ"2v!«€~>áaÔ,uÒJõQÞ“Ð>×I·¤ÄDùn…PAúöÄE†ÜlîkŠEÍny>i‡5>dµbÜ?§|ös±8ýþÖ7½™÷­UªzÜOŸÞR/–MX¿Æ_yÑÙLæbÅO+›åM6œ(]×"~][çBÕXíC ð;Z\>‹7zl1mi_=ôû`=$gM³A/7uùXNÆ“}%Jfkå—FäƒÜƒsÝ3„ÿ=íAâå°‹O4½+ø¤[K5¬³²|šJÛØÑmÅl[ØM Þ'S®Žâþ¿)Jk.¢ thÓwš+Ns@6¸¯°ÜJ6jÄü÷”Iä{Å%lqÂbH¼TÙtÁÍÕŽk§ )1«‚®Ý Ú¿½"1"Æ|±Ó‚÷Û—£,¬6:+¸¹þ´#ãðâxn4lÞ9ãÓäŽwÞÙÿz¹&ŸsÄ8Á§ûú5wñ4Iõ_9¢bÎæä Ÿ˜é^×D°Ï…0/»ë2 ^#ïÎHü΃ÆÒÒ0ˆgä›HW ÉÓçIµÜÍÇaɉ7ÂOSFï›Õ#Š: /ºçèþ×¶=ìÕH—£Ö½µj¿ „:aÔ›§ë/ÒT׿íz6}Y€=bÖiiû¦›,¦Ö˜þ_¼`ïÃ"H̦ËLù€Œ>Xöðlùz >ZÅìyd¶–/xÑ!µm wv¦&&¼–gg¢o†7H¹[öðµg]ƒ%ÍîÇ=7I+ƒ»86ni4^Eðûy³íœP }t]º’vùð·}Ã`~J›ÜO.U ê’‘Ù2¯ ë3ÝD(¾½Xa„LSOƒaÀ õÂnÏ+mùNb@Ž$«xƒâv›Þ–¢9*­<ÌCȲóÇqàlJÏ7¹‡ô HM ÄÈ„íŸôPÞöoDŒVoVÀäà $ƒ/wõ”—^`G-èÁlÐäsvU3dÇRбøÜ½ÂÞ9fnè J˜˜²SÎ*’K€;}ÁG6Å]VµÆ“¨Ý":ˆ®ÁR ~k35JƒÎÍ’·à aZG¹’MÕÞp†JXV¹,© ò°À?>㺠+2ÊéC¯¦.wêob¨x¹b…gP`I¢yÊûpïi€ñLÃôžyü·Zæk”G¶à§&ñæàä’÷y¹ÊˆúòúKÊXªhË¿ìÉE¢Á HA88nY°¼¼ð°1ž®ù¢à—¬dÏ e`)£û,iÞk¬Â_¸ü} Ì ?ªñxá¶ÀÇ%ä“1z^Œétç¶%ðÝvP•]Ó]]ñ|ºsô{lf¿z§hEüÁËT8ß £û˜Ø“4y¥€Ÿ ±!M¢Ô–Î+ã`!ˆm~„T.bw{ƒÊuhá÷–àŸI–ô¨Â­•{qyÄÀR Ÿ­( ü³£pS€î ŠìᙯÇMÂuu¢)Ô•­¬fS³Ð©á«?0m?~c<œ)™x•Ïî´_{‹%žGßR×Í cÝÊ¿khsïøqœÔŠÙ³³í©ÏXÒ“RLJAúE í0ÕA0Ä–O˜Ó>ø›@y䃮ˆ¬u‹¨ã—„€Wk¶ŸX­ÇÿL8Ô¥Åì3˜Á‡Ò xω—öƒ+Y,¼˜ Æc20@¥L€&Cö’ÎF á™â0÷—ò¨…5Áé4´3èjN_ïyõî­*è~(t ]‹ôìá«|i¥äE6ni ¨Õè\qZ÷9ý±âh¤`³ç[ÞqLÌŸ°É©Œ°×+ÉÒÍ׆À%1×5AAè}Ÿôúxò)F}UknB$Áì§ûœÚóA×Z¸øŽœ·ÁXÿi+N§d Æ=¦åƒ–Å€ ËS7 »n(n„ ¼|&¶?ŒT¿ŒÜ0–Þ–$ë­Hg¸®[å'&m*y=Ã5,ç—þ#Ç6ìôf.Ë~…å8fa fNy‚:Q JY°ž•J\kRõÜLÄäW)µâcù å7P9Ò&_êìŒÕÍ ‹ãêÒÍ•"öUPó¿<ìBrž@ÍKKÀ;Ò¾Aµ¶Ê©ïeÅ%ü&²%·Ï (!4ì5}=o: hÒl“/îÆÁ¿=èÑ“ÊêÔPRá2¬‡1°öb,É¡½à ûdø ¯[žŸ*–Ávf¾_Ä«³/iTǸõUy´3yÆCYÕ$¿‹‡/màX“ÕÄ»ªãÌoφHéKöÄu¡¬¥ëXÿ÷ßOI˜ÚôÂn«žÆ^P`?ès<œì̈k;ô¼‹:Óô!kSk"ÊÊ'f“ÇhÍtÙÖu– f´€}O Æ`¾_"d¶½†—Ûzusµ:’n7ë³%µ} 8’ÍîdÖœ”†@ù{nfТõŬ.Ð88©÷ó…Ðguš®GÏKË,µßKgŠ€ÍXS  ;TûÖGU•ØÓqÿóŒD§ ÷Zè•ö&6"¯K^-6V_¶£*ª'iºÒÀ%´™ð@ ²&Ž–°Õ-¬”8ûH—ÁΧÄ+°Gñ¬µEmÓ6üøá¥Yã‘åµñìOè´ƒ¯ÜÜ•êF+ÎBø6f¦ÇÖ(-Šû”ªÑál¬å+:âÒ(ãj?u’š$g^V©âýݵÛ\œô©¾Þ7ñºPš‰@LÝ ;Lqµ¢Ë¬ö‹„oêѬ:¬¸úðÛ›x8F±(—JKn’YRQHëÉ GF%âd @6Û „¬zw=ØHVœÂýñp]ôˆMe߀.3ã'»…Cš"„1WÒ¶ˆ"ŠióÔŠ`ùá ù¯2o ˆŸìyF#­ÿÞ¹BåÄp½è‰}¥ÍñlµÀpŽçÏîkV¼eŒîtdÚý,¥5mÒÒbÕžKÏ{È'å,Ì€].‚²|”რ‰ñýJ%¿Sã<)RÚü¨gèkQºiü…=8„ÞÖ`PÅ«:™³ødʀ˞qýËF½Ö` E€’ÓbºIíÞÞ¨1Þž`¢âгX§î¿8¹7æv´2f=‡“éþ?9êŽ"Oxkrp‰wy4tQó'ËVÕM1÷nž× =2‚–”ekݨcKOëåºqðwõö½e{¹–ðwuw›ò#—.Î{ôÝWq5gùÑý‹„Ê…›‰] JM ¿‚!hÍÂ{ &_ãCRÅ!¾õ¨9¿.oÖ2±Û¶bnv:)Ȳh“€Žä¸ uÞ‘[<žpHq÷`¥8ð¾<$ïìÊbÝà…÷°ùßö¯s‡nŽÏÅbânScåƒø ’`3vD¬0zÀáÛX|‹-Ú&p·bêùE @éQÆž[ÇšÞª8'ÁPäüuìºÍÌ}sø’mLƒº¬,ý¨ª… ä\\ŽVóPßìôà=9@rß_‰ßÄíÌê0ñ¡vÊ $dLn"»øˆfÝÍh¿LõEÝôƒ9Æ^zÁ¢ÿÞ$ ÉÙ„a.ZÝÖúeA~ö»”…½5ho / ØY®núÊ_çˆp¶’RŠÿ+\~˜~Ø`QÀ‚d<;ï5ÚtP<Ïa\±ñw;°î žRgX)8’:øóªÄ‰ªûu!\Ë¿8* zþq)/Ô£Rù“Ê9_8Ž& ]2N.kVT’¾3ûü²í¸7×T¹ØlïéÀFŸxÞŸ-!dÿй!QÙ½·<_µãdÙÕ‹îôXõ½[ól’}t»HL[,ó‰t®êÅK4q§€ÔÔ;±ÝµpÅe=õÃq§Êæ1Ú¢ª¢ñþ…€9éÙèÎD=­âóÂå ž|¸†FW»íŽÚp#ÐO›³¤òÚDËq,$S7:ÆÂ•ØP_ Ã$'Çdîëzsm9§8)ìmƽ×èa0(9BÆØæ|5*‡|:û‰02ˆeçÃ/íëi%€=ËŒÜÃB½D!¨‹Ü—¥*¼Ñ¾9c×4zíÈ&ƒµäc(dÏ£?·ñþv'  h/nñIe[褾Ӷî‚Ë Ÿí±Ã±˜) @ÎÕþKs˜sµAg_Z?¶QcÄ5ÆS/°™†gw‰*ÛâÙS ßS‚BÔÒA<$˜Æò˜s²ŸDÜŽbú5aùø7ŽI똞ѾW‚¢öóŠm?ã] ™¨ñSoés4pn¾Ÿîñ±vƒï&S&²Óµ`Õá±5g®3ô#7¶ÊiKN·ÙšÚ`‘éw.– Õó´Ñ޶"¾è;‰€{ôÌÛu݉l߸jf“Ì,¶[ØÙ£¿pOÓeOãˆwJO”ŒÈ¶ÐY…V dLáÈ!pKf#­´Ù”¬E…{¿8¹Ü`Góûýáô†Íº1>àØ³æü_¦e°c”(ÃW-tÔÚ®èàû¨=J®Ø²b›2ÁÇ(,ÑþÐÍ¥©»j.‹¾”;*<ó´!Ù¹UlM:Óƒ4³ý=㇬I|[j÷^’ÎYíaÝ0ots_?Løg.ð¬OÚZ³vA‘åøZü¤¤#9‘qDaúïY‘5#°Ñh“¼žæ~ßa•¯Ÿ!Ö(Â<ßã`#Uaó^›¡A¢Mšêå(DÙ>õ7ü~û™ ½ùcé‘Z‚vÖòºû amÈ’ÁÄîõ‘ãfñFA´p1íºóÁž£à¯¥n`˧¹xê¹e¿ºuHVI²åá)¨Cº}Õ°óÕ"䀧ʿv±ËŠ¿™‹¼µïøÄ¡/øUpÂOÃ΄CÜ*f­X0@4ìÄDÿäÕ+ήt‡Jmv9ºá–z“ºuÕ;l'Þ'ÙÜ‚…@ò¢äu~p¨Un:D_Êü5ã ô\H*ŒDO|¸¿™Or@–ïB–Àäoz<™«Ê2GäÐCïTñôj]ÒMßIª|M³ÂÉ _DÐòî0àH~oPž·”Ò7x?ßg÷™æÒ[>½ÌT–Ç‹÷cÕß»j8€Qè.‹ðÜÞ¦d®m.àæßfHãé³À¨ëð'7¤…ƒØöŸM,@«êuBÿ _É©ÕÖGëÖY¯j†ŸÚ]‹®ÛOÂXM¦0èŒzmñó…ã=àT>£õr(^—¡Ò¸FêYt*Ø6‘ÌÉŠ‚A´`ŠJ~ªÔ.*Ôç61gÏJé"76_£¥’˜úÚÛÚ¸zÞ´=XJÕò—ÑÍŸ›IsFzšo×´s’6[Ɖùd†Ì&ãó­ÇoOor˜nêRa nŒ|DrÙœ{ý3ÖhéÈÆ[Äà;¨Ý¦™4H¡¾Š@ÕǸ£Mdˆ¢·h+t½DÖFUï:ýûãÁ ¡¾ªÙªhOw7~Æ–E8çéÊdÛ+¿!T¤ã‘N{šðþ¤µPÛþË 'Gå¦ÕZ¸÷sš‹°É²È¤jê0O ‰âé¤T™hý;Ÿ~Ncê%²û÷ÇAT›J¥òŸ*ªôXfØÖ7 #ÍßÀ€‚z1³ÿ6‰7k!à`×#ßè×Ç–9"oŽÖÕêxápk÷Î!t…ôñøm °+ÙVŒe=Eè5¯jMô 'rbÕm"~7Á+<>Zõ¾ÌaHФ†A-kÀ·Â%„·Õ"u=ì°‰ ?lãOôßW™Å&Çø IÓÐnqÓ ?:wÝ’×Gæõb¶¿›¸{TÕåu¨ŠÎ7¾¶"·vÆD3²[ãpÎN„9êAûÏ÷.›£ÝÛŠb ˜7§äñMiqŠj™¼ò|xw~­Ÿµ*í˽¿Í×ÝÊo='”©¤NQ£Ápņ›#P¬UËĸ¾è•Ý5Ô¶Ãþèܾ‹'-àûŽð’È,;XªJ'®;75 @Ó~M"Rãìt!;F óøü‘Ú :C™µøÜCYÝøN@Urȸ?!0Rêã"¸ü€"¯#á+’¦ËÖÞ µÐYNX&q:¤ž"­“=…l2y‘Oã¦â·ô®ÂÓÁ’K<ð€•Æß1 ·²¤µp<êVsó=y’!›þu{•èѱ¦¥­wu}(2ÁÇ/c0Âa9nß{§üTôܽ’«W6$¬ê®?ºvE«W–|ÝC~i ÎÙ_@ß:­«ÙVeìIØ?øä)u´`ë}Y»ö¤/, A²}|©Hâ7 Øþ._o…§Ø¸ŠÓ‡æÕíxIlïcýÎy†ù“p¡ƒ¸gаYþ‘T#àc=€9A½ÞºX¸æ]*MFhpLÕf0 $ºµ·ZÞðÊžÚ rQ×:ö’/û•jA;Cñ2MØÆ¬ ‰d$}¶­^§©ÐýÁõÖ¶bÁCX”Óîÿàb÷#:p•*#|ÍqÄOl GÔ÷c~º’‰ áɵ¬7ÉLIq3ºéì–ÿÅCeü¶r%.A~/ÅOíÆ¯ ®V} ‡ð·ãÔyGÊb&;¾q÷÷S‹—ù_V¦)‡ f9©/Ñk^!.endstream endobj 326 0 obj << /Filter /FlateDecode /Length1 1823 /Length2 12622 /Length3 0 /Length 13764 >> stream xÚ÷PœÛÒ #ÁÝ%Èàîîîîî înÁ5¸»Cp'¸÷àîî‚óqäÞsîûÿUßWS5ó¬îÕ½»÷^½ë2"E:!S{c ¸½ =#7@DNE–‰ÀÈÈBÏÈÈ KF¦jébü–LèälioÇý/†ˆÐÈåÃ&jäòA”³·H»Ú˜XLìÜLÜŒŒfFF®ÿí¸¢Fn–¦9z€´½Ð–LÄÞÁÓÉÒÜÂåcÿ<(M¨L\\´†„lN–&Fv9#  íÇŠ&F6{K ‹çÿ¤ äµpqqàf`pww§7²u¦·w2ç§¢¸[ºX”Î@'7 )à–òF¶À¿[£‡%¨ZX:ÿåP±7sq7r> 6–&@;çW;S àcu€Š”,@Áh÷Yö/-àïÍ0Ñ3ý7ÝßÑ$²´û3ØÈÄÄÞÖÁÈÎÓÒÎ`fi(ˆËÒ»x¸ÐŒìLÿ Ù8ÛĹYÚþ,Ý .¤0úèðïþœMœ,\œé-mþè‘á4Û,fg*bok ´sq†ý£>QK' ÉǾ{2ü}¸ÖvöîvÞÿAf–v¦f´aêêÀ fgéè ”ý›óa‚ýÇft°122rpq€Ž ‡‰Ã ¨z:ÿt2ýaþèá‹·ƒ½Àì£ àK3àǬ·³‘àâä üâýoÇÿ"X&&€©¥‰ ÀhniûOö3Ðì/üqþN–Æù1ÿøü÷IïCa¦öv6žÿÐÿ¾üoE#Ë¿ëøW¬”™=€ë¯r?öé?%»ý­Ê¿„ ð¿¹äí?” Pþ#t]F6F“/¦ÿÏrÿ3äÿŸÊÿÈòÿ*ôÿ[‘¸«ÍŸ~Ê¿ÿ?~#[KÏ¿Êuuù˜9ûY°û¿T à_£+4µtµý¿^)£i²3ÿP4=+û_fKgqK ©¢¥‹‰Å_¢ùË®öǸÙXÚí-ÿ¸`tLŒŒÿÇ÷1c&Ö—ˆó‡2ÿt?Fè—³3±7ýcÖ˜ÙØFNNFž°GýØÞLCi ôøSËz;{—ÀG‹_föN°œ+;;€AøÓ_ˆÀ ò_ÄÁ`ÿ±¤ÿAL¹ÿ"Nfƒò?ˆ À ö_ÄõÁ4úqŒÿA\“ÿ"Ö>.ÛØìƒé¿ €ød0˜ÙüËûÍÿ?ÒYü“ü£( O‹kíƇÍò_ð£RëÁRÿý£VÛàÇ 1ü+ÕÇh3Øÿ ~lˆÃ¿àG)Nÿ‚ë:ÿ ~œË¿àG®ÿ‚e¸ý ~”áþdþ(ÃãOø?²0qurú¸"ÿßÍüÿy@Øå{ž`«úàŽ‡Z¡Ïîtû“̬ƒ7_ï 5öÄpÜ•ExoY #—„zæ"·PO™Kß›­51­õ7}Ò#¹1—; ÌŒwi}¦PùžNe]™dº»µ YìLÍ1/[”‡Ýïg©°h¯÷糎%xÉ[ªWY\BQ4ÑÃMFGBasr²Àƒw euV × ÍÎuI‘:ßNž'â‹?¦Œ1³í ®”Ó‚Zn§>9Ap¹Ë:áO;êeÇ•1œÌ’íõŠa?ÇQÞuP;«ðdKíMÝHÞ\dk6"¿Odž=ÊÒ"Ã5rQèÛ-´k*È ÷°ìÉ ÄËYG^þÆ’dmµU6œÿ­p¯¦Õ%¸Îmu~ë¢× îÃ2wÙÖ/€¥­TÃD¡Ø4³Z©893)$WUj™ú•a!¤„i)K‹·j¤L÷´ÕnÈ>®úÞÐYGÊy…o ‡ÿþÃ&BÚÁ² ·!½D¾)9…ŒÔ$J|ðÎŒJ2„èǘ“ªp~qȳ©A¯žn3×8­[ÖØFIî€Ú?èÛhÐ<í´äjïhÃ0(ÔoYo\ÛZ°µj¥üÞ‹tRº;Ô Ñånt×rõí½ÇQn6÷ˆq}¸X£+Ù»UŸ3? å›í! ÷få+ü.ïâ”;”åøš¡¬ˆÐfÃr©TaìÇ*8Óæ€ÀÀáPlÀͪbmóÝy&ç‹7ï«“ÐÌ%.•ÑØCl9¸`•u}FrìPÁö§P¢æœÎ~°µ_´O¦QXFÐbf_Tñï7A±„Ï®­nÀªJß0¹¸ezWPCÝ àGsÏz­ŸW½¼š6x×x`ΊG½è: dfý,{ÜÆ#mó>Nhcè¬SõÒÖeÆÂe2̦ż*[œv•É´)#ŒC<.’bÜ£Ââ.ÎjEŽ4 ûʆA­Sba¶c˜!®Þ×BùÛÖ?s=Ç–ºSRZÊ+EºÄÁŠÚ€‡¾w BJwáîäì+¿Ûúbg{‰£»Ã ~z×_Î0HZ9è(“Æ “Ç¢ÛŽàc~aÕÇîÔòd7Α—„U ×gUÉãÌ ˆÆŒU¬˜‚ áwvˆ‚Ñ(§K<Šã¼Í B¾tÆüz¿(0„Õ/¦ë.ÿj5èÜÌ #Òúiþ=îv¯Ø®\Ä4Áì¡zä“™è·oÙД³öd£—£áUDœé(߆׵Óga-iÒæU³—L瓇Òų/Á‹NÃKÅW/ìšr°õDæ¢)IwìŒCÃo°½QŠŸ„§ö6wïÎE}7e-® ÓZ&±ÿ!v‘q—WXFЭÀz( ·D=³Ø÷s‹Ðߌ‡ž[c+P&³ëñ­AØ$ý2“§ ®|zý§5†ãpgnf'ØGcÎv9èìͦñ Rçλq”µ¼ªÖo  p:ÜKó3ÒÁ1óK×%?ˆ‡ÂÅ”ý­ÉŽª4˜ÂhûÅø^e™ í¦˜ÎB_fñ,nƒOã°hœWÀM!Hƒói ¾º8ÚÃ8á|õÜX¥ŽëÐ'~´Àâ¿úN~®}¾.4m¨<üÁ꾜eq]Mg˜µH7}á¥qnP­£‡®h=6EмÆûî[‡ VMhT'’d5YðÕ½—X°Îþ’ q¥Ò¸ŽÂä÷cÒâ…»ˆGœæÕ=íìõ€7/äbùôŒP”°Ç/«^q,°’¦P¹ ¥âT<‰œ:AÓ\«Tèp;*òWÞ ¨¾¥õ¼ÐO_Ì7“â,—ÏâÛ§©òðtkćæ2ÑÈ-•|¼©üPO$ÕRÔ8޼'À"y'ì ÷·`4Zoºç˜]ŒdË“O'tè°­HVÂÚØ2ÚðÎÚÃ2ßÙ8’b€¥¢^âmShtø§0Ÿa¼[òxì¼Hõ¶š™ÂÅã+ue£:D(gÛ›³¦—4á= Z£KÎ⨔U4x•iݾ?L“F‚QÒõɧ—Ñã”piÎ~½šz¢u“rˆUH-“«È#[Ï™%3»Ø’½O]?̨Ø[´<ÿmÛ {ŸáFNW°]P/:ÔãòŽdÀÎBŠÃʤÝý¡‡âÀÑCˆøÇ¦ßr³J"¹ˆw›uêidËCÕ¯Áh z”|Y*ÝÈ:à7™|+²ÿéF?¥³áÑ)Y£È?š T«¥ÎÕ3hàõ¦p߈«_^7XÃÉ2‘º—Þ¶Ù¢â±EЉjj@Ô\ NY/é¤ðÐ0I×tXÇ™QlÓ·Øž—  Q÷Wú¼¥ïM\Ù®s£’›·™±Ò3¹paÒÜtÙ«Ô´7‰n œÊ E^lUÏ<~ä¥l ôáJ*œÞL 'Û€uêAJkvÉáŒˆÚ q™Ì, Wïã´vÀhõSžmüìnI%}žâ‚¯Y¶˜o%kÅ#q«ëæÅÐ׸xp•|ùu9òSËGÚ^ÞÑ;rÏÕ»C êÌpÒä!.;„{Eemîl~\›p4A†oþÌüvšš@}}+ÆEËA++‰[¸oc'¿ŒwY ½/œàµ¨§[|§“·àøûþ€K"„›÷8ÉôSZá5¿¬cSxoÏ’b‹éT¿)£qÞk"¯ߪ]¶Æ<‡qêš«M!ã­h$\Í-Q ¡Qk“xÏÛK(xCT"IÌÔ hDGçɨHÌÍÃÓùF0É{Õ˜(6›Ñù€k¾ ÷C–NÈM!¦aQ uMEzbG­{á.,Ë€tÔ‚w²!÷æ¶Š Ëé© ó¯«““‰ãSú sÈ$)ß½ÆÍŒÒ \oûæ²'1&<îqË; ¯|È(ž¨ŒC;vÄdûÃ#¦ïRPŸ†ù‚&'à%ÛØ\úD¬p¦ÛLUµÅ ²Ô¾d3°¯*øÁ }³Éþ™J_‘þûÝó ŒÆÛ³œ^ÁÈ¥¦Ûãrª gÑNj ­ iI“.\á7ûËöûiÚ!Ź ìfÐÕh=Í.WâÂP+úCÌ/·ÕÞöÖ+9Û·göX–¨ ”`Öp:k@ˆ°®^ ‚`ª£œ¾ôHÍšK2,|…l£ÈcÆýî‰Í%­.PÆS@?3ÿ»uÿïNƒŽ¢VέJúØÈ¥@m½œø*‘ŸX«X?v.~ï©ñP fF”qûC‚zrp±ù€4jJÁmBÎ~ϽXî§ëß|ŠˆŒs›à€ñrçW£ñj’9!à~GÈþmàãÒйX`‰Ùîúm±ÄèÜè¤Ò7ÑvÖ[õQ#zÏéø¤QÌ%ß4å‘ ZýË0#j –#{“¹‚¯¦wù>Z­ñ¯‰^="ÿÁ ™óßor‰y¾‰þO,¯Ã($ñ±fÝ"ÕÃrÉñ|Ï+òŒ…ËNd£[ª×¯o§wH¥¬aL¢ãFPÚ³×°@Ûò©|*ÿx²+IM…=Å«N»&¹“`uÐå½Õºq¦Qåw,qÈþ×…¤Lß:ñaGTbçD”ui¬D©¿~î*—ÔVìç©xŸiþÞÁ†ô6^—üâ‰æ†ŠU®«ú$)ŽŸ(ûÞKî<]rÖhãïaÜû´Õ;rÅÞ££+fSب'ÄÍTd7¯½ò8ÛÅq jøýïiW¡µbMé=žðï…ðLS†¬dìuKÁ,øD;ø~9;Ùu ÙŸ.Ñ¥W© 7¦±VRP¦÷Õê–ÔÕõ¼öÓY⯰nmÓ« ѽn¹»±UoµB¿â›çéïÙ)³p¶ ÅN<î{¡ $,šÙÜãÉ@vr–Ã¥ÄEª yîÂŒä¸ØÚ žæˆÔD&0¼UÁã2uÖuñà çXQÂ’¸D>3&ÔŠË ÊÍ"¡ãIoÇ@éQ¶Ø'Yžžt&i¤8º·Êÿ$Æf|Ê쟭7êñéÛµ`2ecÿ×@¿mÖ5Ri­eëÓ„øÄfõÌaɾúœr+‘^iáÑ”Ð.ã7Û¢IþBŠ,•‡þ³Hl¿j®»/^w|úiÍ}ã\ÌSüÜO9"?öUÑÕ"ùÐp*Y\ršqL¦í¬[»#Ê1&  F&|ˆ«çãºMÖ”Gó´ Œxc”˜x0ÒéIÖ.kyQÕsÓDWç?®É¯&¯y³Â˜P·xqÈû sP¦"4¡óæúÜôk7& ¼H¹Ã_É)YºûèÑ`5§V0ÛÑø—ø!7:h°`.ÈÆô#‰”fíé ãÜšÚGÐѦ¿ ÆŸ¯•á¢ÕHÉ<;G¾FÍÜŒÁ™sÜM°cÙ:7 E{ ÐÞ yß÷K:¦}Ê4„4ÄýmoQÔI ×Û¬©·ãÌKÐGÁ»Èr²ßÇ…Ä •×{NR¯ ßžQh îCºŽœ5»’!;mLZ p¬”a§fp‰…Ú~#«NR&RŸ÷–ynH/¾ía[–4¼œŸ˜U-`ç "8†°Ø±â"1 Z™Á'¶CÆ×TéËKÕ”ÓdWí l{åÆOWš$©árìyâ6–ÈÏG X!Úf<œ“ﲟ÷WªSärg_Ž:¿_«x¢„– À¬©îÂÈŒöÔÿ ký&ÇsDIÙàþŒÜÉfõpÂØvD·Ã¶>•ÁEÜø± âhÀS||’Ú¦-ÃÓi3Öëõ.ž^q²¡ÆÞËmj>ádê–åÂ>­Çµe|®Ç¬zï Ùûm¢ÑòˆE’øtnõNJ¿2¿ ˃OÁÝæ~)jÃæ½D.xüÚ=Q6ä9 ^”Å¡3ŽÈÉ29‹×ÇëDUíëºä-'ЙޯßîOW9+ˬd=°È%Sà–¶zµ…Â"#BxéÊócÐ ï«Òj7=ØÞwÉ…@NòþðLùZ)]RÌ–&6rØiáð9­ŽGºØ—3ñ8M¡Ôí)Ř\˜Ãvuî­Àñ¡”Vh…¼ß™õSmD oUÈ4â,÷™ú¾€)ŽDø ‚‚…òÚ®©…l…6T…ÚlË@feŠýNãƒá½ÌÏŸph¸¶Ó¢žÁ¾}‚tVM¶ö’.ò`Ú1qܧÃ?5dêòœi‚a•¬L;©—£Ê±cQð~-†›ZhqPŒUV+Á©ìaîïÇðöþ]hfÔTN×´ÆBüþ(tÆ¿2yoûóÖßvâ³¼¥}áhš^GQ×}Ǧw­¨ø,¶¿‰%­Î^û·8æÐ²™¶§]eÍ‚§æ)D:jÑ’(÷˜êßÓûgÉmG\–&cøJ}mˆk*Â@ÔuÁªCÂ\¡±È'gÄ¥ÈIÌ}j+_où3•fuá:r0h!ý‰Ï7@`ö”zº¦bU¹8dû@{AË´‹·fɵq ;‚‹jó¼|,§³qÆR9xdÑHl:†¾Æ&Ž»>ÂÇGPy_ì’ÐVÞ„úÚ‹Ó~’éE( 9Ÿ„0˜5B‚VWnƒÀòp*²-D¾öAmK9Ž¢J³FŸóÒMTëwžøíݶn¸Õ4üÕÎ’ÈY¹”™ÔHõød­K@~bñ~’úM|èI:^ÕQ€~©÷*£ÿ(¯8üUn$Ñ·ì½& ÊË[ÐIÀÚà¡÷35†“Ž?ì½µ(«þ}Q ùاęø}’38ÉgÔ²/R0AX@ÌÞ ¿ùËzÏ2ð”È =(bHã1û‘%ÍÐÂÔØ¡;j‰Ä¹ Q± ºÛÌÝÎl2îm5Ãþ) Ü_i—Ù[¿\*Fë:hŒFË>D劗Ë¢¡Å—(a›ë`í¼›+|'±ðѧÏÃÆT)(k_;£;²S“Ni烘l!¸¬õd€RëCcZ½ówƒ«i¨dg|¿¾‘–ܰÑQhqú5>ïñrØ; A40§{–á1^¢”G7@=xCî&ÀV_´9bһ梥ëŠÔ¡“`&Qv·_­¯à0šYb4„Ësí]¿ ±öÀL ë#N.Q[$Ò”­ŒU‰;Ï0·Ÿ¥òvy)œvHb1&sϰÐx2 g¢ðIJʬ¶ði³n»{†«¦AÏÀ_ˆ‹†¾œBZa’h4m8óË”P®ßÉ×:+‘ ˆ¿”+nHð$iU£ Ù p¥>â©@½ì‘Ú豫ïo † ¯Â¾È|à€•‘βAã…˜¯–lO×£ŸDk:c5gÜî­ÚíI²¼|N4;wÉô¼ÿ=Hƒ¥`0f4¦`¼¢äÂdI¿ý„’ÌÜ&_І’Ê’«ÿ ûpö%Y4RÎ@¶† &4$ûí L/~™£vÍ¥¼×Еƒ$#…Tϯ‰pæÌ³š|‡")À2_ØÔš«`oT4¯r"å*tjg‡gòÂmáYkƒè÷^ÖÞ9“=E”ù^·Ð1ZÄ<®Adp3›¶Êsg‹Ýv^°Ä¥:ßÇI6Ïê×ÉÊ>Äò%tàUŽ~ŽøHýÄQ°5¯¦=ÐÙ;÷·¿ÿèÓõKy*‚ØD…r‹ù¡œÈ}ß÷øg—¸œíü—ÛŠºûvs¡¶èZª¡|¡fº ’:GfjR ³Ie§_£¦va~¦§’nK'™}y€ÇLÑ¥#ÎLuc×Òt ÍÙ¬¾k°xÏ!¿3§ògÕËDñe8ªœ®”e-5¥·iõ³q—碸Y¦yê³ØŽˆ©ùr÷©AF¸5äM+9]¬ôŒ Y¶¹Ö6‰+|j½ta/ ѺÃÂ*‡+YØÝ¿¼ ›’ÓÚ [ç«­Ä’«3ŸWú÷¤il«!¹Àq`,½4>/­2u-ý¾X³a’ªÎ#OyôÔ¨z#ÙÐ4²|— ªÔÉæÆW=ÄpPâ1#èq¡æœžx`jàa^*œ°xþk-O_ 5)Sý´jøÓ þú枊6)=,f –Ô\}§"‘³˜Di˜UQ^&Ìä'{ŠÇ¼h¾šØõÃrŠwjÕÍú§+jœÁ `´–kØÞ0l¿Z‚È3ÕÏ{8}†IMÍPœ1ùZ¶WCú_WIT_I‚ÛŸ9.Ã|‰ÇBÁ`uz>Õ®K¦À|Å^Íd°CØ…ï³öǧ‚õh*ñßm©n¾ðY;k\;˜|.:fu‹“éwôå"HPR#¼1aJFÀ3›$ Á¹¡S)ý6c?ï¿D‡ÀضCø;ZþxµŽ @ÏçÚH+·+7r:»8·aËF¼UÚ}ÌX\DþQE9_sΧ¤‡wð¼Ÿ72r8jcíî!¶áií°G@˜¸%á×ÁCäÍ…àN‹+ýôiSjHkó># ‘CzEØb¶+7êÛÜ“Àf¶l™ÕfùRK+WOA¢ú ™åÛ(‚YëtBOôa K:舜ÀcHH˜ùïÈ0r‰cLéÄÞ,_9sY™3-ÂÌ!Ï c‚¢â†ipó²Öê½ O§àCnmAz_¦Ë…=@ÌÍm(È猊©¬©ÁóŒ‰]> 6Éé‚õ?¢4ˆ·œ¥ äÔÓ=>ÿø’Õ’dðB4\Öeú5ÀÒ{c/ø*X¶SàjðìKð× ðû)©eí…–=¥ÖqyŸMÌa¦›‰,¹|øk^O&ÊsVrp SS47¬Ì`ÜŒœz6TRµÊ’ÉK¾Þ’|­qÀçhZ¬zî F{Ø)\vLe'Ä ¥6Ü'ä}N¡rP j¦><ƒ[Éà GP†Öl·(&ÁNÛ¯á§ü’hr,ǯEeKÖ/Ñ2ãl1rx¿³¼ŸÊ›x‡ýFPõJñº6Ý‹‡5*ÙØ°T©ézs#ÀâdÓ•å3iˆ#Tã¬_ó³ÆY ܘ~ ¢i®š˜ Ü•ÿ’=ªä–æ^$&'IÑÓ‘ ¶&X’ÅÔ*ì÷^IvMà›CŸ±kÜëú*ŽvCÅ]0̸•AzB•^ílANdeH­¦7Äl”­­HŠÆŽ+HýÍ¢Pß¼Ÿ£Ö´Í:&ÊH¬¨3Áÿ}«ê5½³¯ seq™J”Y#n8©bÃ~Å\`mÄê݈hZ٭߬6ÞzðÔzDÛÇ÷@R‹Ô’„âYÁO[¢qYhȬ8ÄKÈßÄù-(#§)­Ézú†T)цH!E §Ž?¿Ë,Ôo§ì‘â¶¡VVÙý²TìÂÌ€ÇQÐ õ9ׯkyù8E# LœïDürœyØÄ+‹ ËÑDu¼ï«e|'‡c ¢…Ñ ˜XøE°i ën‡!õ°`ܦuŸ°zZï÷©nõ¿+ÅÊs¶ÿŒ›'ã÷T5­€Q˜.îz3µnš¿~èVŽíkBf|=SÎ;“4. 9H_DµÞ¤ Ý•ö¹ŽˆO þŽ×úY-@ oÙòËMþTu6ܲ‰ 1÷gôQJ>=¿h…0б—¶—J<þãçÎãßa²ÞSpÕPGgÁò ^3’Öë(íi”7k÷0'#×Ô‹°ŸhˆAd`I]˜ï¼vo· }#âOÉärÂÕpïã/•=™:¤x+Iú^F·_Ï"äʯ¯ÇÎ[NI|[t ‘\òI¶Ph=ÄÉGكٵÌÛ—!6lQßÖ¹ûÉX™âÆÆ¨5ˆN6«ß;õLÞ`—»"Iê‹¢&pd\ H%sʼ¶ñ@‡ºlÍŽ“zoì–^v9B&ìÅFi"É­zˆ¥Â]¡÷æºQÒék%¯;…ünP CËc@1’ºù1êú6ú(ý8œåÕ¦\UÍ‹G‰óy»‘³¤j/ R`ÇA&Ù£×=õºàµcë·OXÆi™ÝÝî[þÛÍRs7'•o[1àà7سöЧc¡ú¤³vÕIÀêµ_A4€å«m·ì6Œrüö8ï)4Z¸òvXglJ0¹«èðÛœ»À`é3BNÓBJ®¢ºŠ*ÆO`€+ó…³C‹R ¦ŒúdÙ²k’‰}ΉCÞÏ $Dž YÄ\±#9EÁTïY8›ek¼~G<‰¾‚ZjªzXÛm‡8 z# µõ)±š½¨vjiŒ™""ƒcˆyUTÈé) ) ¢ ±ä¡I6§éÞÊ`lËúº e®’Ä’Có’Ù·`ˆÎ÷ÕŠkŸGkÓ"3¾RLd íM€u3Hs£U£§½yTÙuœÒW¤íðæ¨¼g¸G»r§€^]—Ý~sÉ6ÖþâË=;“¸ ¥¡|ºG–ÝàÁh.?wÆšÄ{F{.vÙ+CãTì“~.bø›ôF¯aÒ ™Kè†Ùš¸Gš›K,zt쪴×8GÞlƒs,çpWEk…מ2‘¿~¢>¥Ù•Û‚¤os¨êIçņ'”}NZˆ“B¨âBV(®«”ÝL’…·y¯Õ‘#âå.x Ôn%ú+¤Õ4¸Ð¬î4f1Ê×UÎp`¼:þÚg°ª¢¬Ðnÿ ø»Èm1e(ùµtIiÅRü„@|MΨò •öxÙ×;¾#¨ mÎm³9ò@W'Õ–;ü,Ïç#EÐg~‡s¡ozk»PT!=k9—f8wM# S™q¥çjŸ¹îñˆ8S(§3çÔÐXew\HSö­-”¬ûTE`Q+-Ú-c`¨WîVov#zŽùé(®9ÌåÐÀ–ÝN.¿f„ H´ŸôÈëzû•ÔK"4%ZÓ·´V`º~ÊÊ‘'g` É3õ`¸IòФOeµ‰øYg/O.™],ÃÁ޹ýœ—lÈLËØ‚±þ•ìå Ag1¼Ô$ËL9€çYÆp‘㤢ó6Aú7—·Œ¢_C#‡7r_,Iá7lØ¡© Ôó8Oµ…>oÀ5ì:ˆÃ †ÖLüžÕª@ƶißÑÚcu׌à®O[æ­è–*¡zôtžŽOн§±$8ef™ºÓ9F1È Ô¡ðôêZ×q¨ÙdL9ÕÞ³^ž…À ŸÃÌR™‚ôl¥Ò˜Gƒ]eKÄ«&D´d–bæÙaÆÐ0þŬÂî`a>a/ &ûÿ“ý ?[¬él`’÷HÁ¬‹m­’¢4Õ%Ÿ`Gq¬„]P:Ãk)9è1aŠÔ3ßZ úð’×<_¿ÃÜ+^;Sqî-ze-ºˆ2‡‚º÷XP`{ß¶§ªûhX7YÛçŸêß›jýÔçÎ( 1=;d42ÒÞ¼×O Õ}ÄXÅÈÇ(éðØZÓ0”…òò•óÛ@FŸ©8tž´*MJ1"éš÷ýï„· €"¯¬rn£Õ0 &!ÊÈdþ§›Ä‚亾›êç¤Ý»•¨óýÜt¹˜:0 ×ÈZž$uƒ ü)i‰«Î!¦¬ða¿ž‚ß3ЍÈ0ðKɆŒ —Vœ«Š(Çbávº ö5 É¼qœ èÝážDIêÜGï1Jô7Àø‹Ð$[KY@¦2”^>µ±ÝËI ºû‰±ØéšE ÄQ™‰µ4pGÑ•ÖKäfß`™€Ÿ%Úä±7¤¢üV!M/#­¿öö ÂV¬°Ë_Ÿ{i–­X’íèôÀ1CõâKó9 dGó,f]g~f¹‘Ê×ü¹0ÊZÿy-z[¥IÔvËœw¾¦•Ô§œÿÐ…õ(bŒGàë3c*mnÍjɇ$ ‚ïHáÉšKZóÐÞ3²*Ecëƒ6*­9êÈÇɇ¾î~|qdҢ斩¬ íßÖ£n 8Dz¬&­}~H ÍŠ[ô˜ Êål°°–)ãÑGÒš‰ñ~²£*DBÄ´‚RÑþ¹öŠòÆze Z}î|¢XP9mŒC4CŽô¦fû‚ìèŒ0ê!ÂßÒê§4þ6 ]òPtxÒ7(–°`$m:†±îõà‘“ƒOäÇ[àÅ_H\xÜÉgG÷;\bJ À9‹×˜ j]©Øã—#i‹‚Aň­“`èôAk1t˳7‚:õA‡‰qºÈÓ€ÈIM gXI@Ê· \Ö,©M8uXÅç%Ctø„[À5V~$µÆà#6¸$çuÛ£—$Qeøo òÓÇ3à÷ßP82½Cá_‹Ä®q°Xšmż¸%»ý… °'Ê0l5dJMe†„eåÐÑôÔIb‘tY‚gI½;Ñ“ù°_FÜ—ÀåvW¨±¦’<<¬8t9&ýúµ SB؉zM¡|±®-Àõðö €»<’ÏõÙ©f/ðÐ,¡’DÇ ÛÛ¥lIO¯ñ—¾£'Ì5é©B دØóþ®„àc’à\äèòk[±WqÚñã(Ù4+÷g̬ãåoÖª(â%/òL­N—`»§Óˆ³1ºj¿ýÓ—®p‰× õÞ‹@AÇû¸ù[(êw#àõAG_zl±2B·õ¾:„B†¹ÈÛÑ÷ê†n QŠÄHä–•ã–W7ÂÉ’›Á¹ãòäŽßÇüÑÑMÐ¥p㪠¢±Å$KAjÄ×HUÎüô¨oý…«ûSG¡S P2êvrG¨øØYWÁö€ð&GÐòNЩ£¡ómÖ<‚íÎ>ŠÝ ˜Ë·„/4B4`*6<ëÐÐòÞ Õ.„¡×˜µò½º)¤ûŤ½Æšà~<®s†tN驨À*æ8“ÖY(t-hò1|, _Zašmã’BA8”LàXeðñÉqk¹bÿzÆ–{™ ºEN&pâŽ>ÒÛ¡4óJ”{I©œ­«§Áœ÷•Ó0‰^måvî7TÓÍzÕâÉê 0Å*`·ùÖ—È.]™Îi…8N•¼!™|¬ha*°%í>Ð'÷+á¤ÒJÉDØO²Ý#t]²Ë^ ö™y#jª¦ Ù½Cì½gõStW¹h =_íT«µ òƱ†w…>~‹ˆ{çâØçþ÷ï0fÅK™›^¡÷ 4×õ¨dBƒÉ+è†ÍIÛoåôYçŒ~¬wÞrѸó•èõËdÐÉUo­ŒI³L›ey¶ýV¥ £0}êé$Öý ð˜Sʈª–DÐÌ<íU_Z¼YhGBFŒÓ[šƒŸæ¹I…ïkÂýgD¢ÚúIâS$éBŠ4DÍžb ¯‡ªòE®aæŒNˆÝ”M–db^AK“e¢Aà*¯x$”y‹ƒØåøÒ¬^ÇÅ þTYÒ¡r-Ú^Ò¿åQ¬%ÁM“¡ñæÝQ÷)ÏZyjpì²3m<1íº€€=NÅ9\¤)¸ã†Ï¿óÔeüÁ2 ):Qm¬‰À幄÷Y¨2¿4¦µ$Œë$¿lã8“Y«L•Ö¦˜¦¼ãÑæ°{s©ú%3ï“Ëi]€N²³ HÅûv˜-¹¥s€ª1¢)oLcþÐõ®Îé\ÂK=2Å»‰WL%,âu°´ñ°Gió—Ìžáà%g~¤o`y4HŽc¹Ó«Ücq@ó²†HCIjºšÞG¶64«z䪗ëÛWÔ(fm£jÖ¦îYŸ¶fÆï\§X³Â¬i> stream xÚŒ·stëö5v›4ÎjÒØ¶Æ¶Vl[mÛjذAÓØ¶mÛwí½ÏÙíùÝûÇkŒ¬õÌ9ßgúý¾|’S¤0²1ŠÚX;Ò0ÐÒs„¾(J+)1Ðèé™hééáIH”Ì-¿5ð$*@{3kÎ?l„ìúŽ ™°¾#Èô‹5@ÒÉÀÀ``åd`㤧0ÒÓsü×ÐÆž ¬ïlføB ´±:À“ÙØºÙ›™˜:‚<ý÷'€ÜÀÀÁÁFý÷q€€ÐÞÌPßðEßÑhòh¨o P´14:ºý9·©££-'‹‹ ­¾•­½ /5ÀÅÌÑ tÚ;¥ Ñ·þ›-< @ÉÔÌá•¢±£‹¾=Xš­@‡œ¬€ö€¢„4@Öhý±ô?Ô€ÿ”À@Ëð/ÝNÿEdfý÷a}CC+[}k73k€±™% +*MëèêH з6úËPßÒÁt^ßYßÌRßdðwðúQy€>(Çÿdè`hofëè@ë`fùW–tÑ€ -bm$dce´vt€ÿ+>a3{ !¨òntÿ¶ØÂÚÆÅÚã766³62þ+#'[:ek3;' „ð¬@"øß2 #€…žžžÔX èjhJ÷—%7[àßJ†¿Ä <¼h-¬M@£MÃAËÌúØÌAÔÌh$gæhhú÷˜ü#Vþkí,ͬr6f]5zúÿ£íš¡è:qMçß* h•þ׫ˆµ¡Ñ_;ÇÈ з·×wƒ§ # Àƒ´œF@׿ç@Gkmã:eè0¶±‡ÿ«µ¬,:¿Dÿ VàoÄ úØt¿€Nä_ÄÆ ÿ@,Ò¿ˆåËob‘ù@,²ÿ"vzÜoâTø˜tŠ¿3€Né7å ü8ÕÿE ïúÿ"&w}+[Ðÿu'ýWÊÀ XßÁÐ ÔK#àï³ kƒßˆ„ìõ -€ Ç‡±ão9Ó¿ò†þ_(à ˆÌÐÆÔçÿJ˜™ÿ’XYýﯠû(,#KK}û?,@QüŽÔr:àÿ8eýKoçZ¨Y@ñÀRßêPm³€,ŒÍœÿ ýKmãô§[‰Éo' ½É_>àŸ& tL'ꉩ›­)Ðú Ìì Þüê”ÅT¯ßI°‚ cù×üÖƒªûGF ›î·+—5hþЃêbó;:Ða›ÿQƒ2²ý­‘Ù‚ž“ÖÿÓhf†ÿHÿ·ÍL _ ‰=ÿ0eý[ffó»™Ì  ÚZ:ý‘èm‚Îî7 ¨|vN6Ž@#Ë?l@Ò?j̪ào–¿Ðù³€Ì@‚bs°Ôw0ýƒÚï@A73£©=ðÞƒrwt±ùãˆÃé÷Pƒ|þýÆà`hcÿgAírþ‚ ìòÇ‚H]ÿ€ ¯n@PñÝÇ brÚÿÁÿÜu†Nö ê;þýX]„ÿÅ¿l®@Cø…YC®óÚ€Öûj\šQ¦.VåÛ7'BføHKð-Zˆ_2X¥¸Ì¹7쉙ÂrC¦¼•š_ ÁƒbpE"Ù\,8ÛhaÐߢCˆ‡âÓÖqËp"žÃ’_ÐwáÄF`%g¹õŠŸ}*¿U'áAW ²ÁðÁ¿×ØÛ·“…Æ%(Ïÿ'»?KÁùè*+né-Ï ==Ð.Lo ÙÑ0ñ@&©Ðp|÷þ[ºÞÌl· ‹Ït¼cí¹®z)gûHã£i›;øOê°²½+ê»iÈ8oâÏ<ölò˜?ÂN¿Š„EgOF[n$"eµm]xǦ)8gSÌáŒ]üŽ MÅO£Ü³ØJ|Y§ÄÉϲÑ';Ì&‡õˆw ²e¹1ƒr%> Í«†™ˆ 47cß¾YÆîˆ²Æêè~džSžIès\G†ï÷U’T)ßC;R#¼³‡”îœÒ“Ò×ÌÇ;ñ¤'OÚ—Ú˜ýà-"ª¤ÉÞÊЬE¶?ÃiØ=鬭qÞY±[éT7öe‚*¶TÍýxâ»ó“¶¿À7ìןyâP´ÇçÁ÷°§ó/¦$)€ß:>!£b˜í‡Ôov)1œ!öL‰ƒ{5kt‚½• “»µBñV"&WÀSñí>LB-‘‘Îk~ÐÂ1Zy =@UûšÌ®7:F¯†[ºH?ƒv™ºàb·vDKŒéI{²^(Zy–;†Y‹„\O‹õfwò=’Û¡’ç§ê W­äÞï„m_i( ?Õ“á-…x~ßAå@íDFã„Çïu@E°~x-()„ï?d¨:Y&äk=>‹mÀ'‹ç˲¦´€~¶µ+‘[»8%èâÅ®5¿9öAÖª®¯±}yüÊu†òC¥„ö¡ O"ªáOå:í©é~Zl,EZ£iK‡>éÏ)ííiÌÈô¯glŸʇ(BnŠ‚hÐwÖÝMÞ;1±œµ™0ãØrÅ)ÇáÚwùÞÖ^ùì$WB{@²`ÁU6?ƒÑ‰õ$rjh)=Êk }aDÎñ€ÎH.„’MÏ`³5Ë)s‚%oA†¶hÀ! øB‹¬}ßY§ ®3Ej¾æZ‰~§ô4-#t‡á¼ÕÚ% )èPÜí?×Õ@ÛÒq‚‹Í[y£‚wLÆHQ:òMdíò78'îM°ºÓ |‰/1ª UÅjs®ÅÇ éÊUÊosó Ó¿›ÝíKz•wQóêÙ¼Šu«¼'€v®2,½l™Œ¨“ïkO 5‹.FHUô;Ûm0?).}»’iknÅËàkx-ëd- ‰p N±ç¡Ë×2n³6 G¶×™2Z™³~FyU[÷]‰>2€ƒšò$WRNßöÌ—'y1 ÂDÚø Þ÷èV>àrâ¼ǦѿƒöbÏbC' Æ=º“1õÁûDpDýz»6컌,§ÂŠ>kjú“iùíÛé4Ä3 “½Œè 'Õ 9óˣߤ¹õëÝ.§ J|¢·ÑãÜ…¹ ­‡Q@“wªßqI\#¢û˜[¦¤y`ÖŠj«daìåLíN[ž•'Á/¥3QÛ®û£Ä±‡¹F¬Ñ°õyó«ô«JGüá3íIñ·Ó}ÃÎÏÙ ±Îa±+"mF°ýrè~_[1³ó[‘M§X¹ñ½õ7éíFÌu±ëyž!z<1mÃHp´¬SåƒDÉöT™cX~È’a`]ƒe<âdH‡ŽìbÐ.Uy{p‚}[P/¾ Áì$€ï¸XêÆeóï;óÿL?ÿêWù|"#J>eU0õ0 ö+­†ÞýÒï¬`Â*)l¢SSЬæ^©€¶¶é'†n!ß~¤Kúƒx;áÈ— ¶ˆ¦«,’ïg3½‚–»´É3TÌíP#¤ïÏßÚœ[ÎpÃ×ã- =«êŸÏZȆ44"IÈ|ôÒIöL8,öLIynV’Òaœ¥L?ÖÝBÍjµ%Á¨6(ÓÅêýLVçìú¢ðÀ„TEýá»®2jã¶5 ½OÈ̳“µâ§ ËZ· Ûu×N "š"íE·NžÊ[íeƒ¨y)ÈE4÷/²ZVõBj¾.KÓÑ;ê 5+NRž¬J7 N«¤I„<µËŽRRçóé¹[;´a ÔóHÃ~öº“ó¸atC~RÝ ûBV™7Ž%UË©zÙi\èÇ«tØx••\Š8«RøÙf9Tö²ˆ±ÖüÓC©'U¸ëƒŸÈÕÐXç·0øŸu’Åy7~¡ô3‹õÝöòÚ»jõîî¹àó²ãX)„=”Y#í™QW¼D kâÂ<•ŒûÊÔó"~Ÿ6~Ê–C+\èàq,ïǽol¡è/ò¹üäÐ"–ã©I¿öL•DäÀSºp(²Ñ€’‹ª†Vâ;Do¼Z‘v@<ŸÅ¡ÊšÎ4¥S™{ò¥HýµÊz40 ™ZK‘{?® µzŒ—–é;Äî*ôÊ¿góšÞÚ WƒN£ ïTªÑ%æõØ™Rp‚׋VôñK;èF´eãÙAO’Hþ­BÒY5¹1Ôm¾w=d˜¯.µb“kf™Î±¹Î©z娆¦o{i[[ёڨ}>fÙyK(&¨ßYÒÄdðzÍtÝ+KuK2ë¿€KqŒé¡«A‹¦Ñ×(.ØkªBKp#`úKZ „µw“ßgŠÏt$* ? œ QD{ÓdÞÀ[ùX}mÙ>D¦Š×e)oƒì«¥6ÇÂrÑÇ| ×4ÕÑÕ²#3(/èHjM¸^ÁÙcŽA“„û„´h_º].—jPªÀxãÏu”YÞÙ”IÇL˜µ6³¢‰ÆD‡e~W.gB•¿ù89/¯føÅ!9’/Ö—‘‰ ^•)"…Þdgp¯øéþ2ÔhŠGD·ë¦vº¶Iì $°Ç÷ûùÆ"(~¼úê’ ÅÖê´]sÈ7è—C*±µ¼-±–ãqL2Eµdx É÷**êÈû2à†`“‘ûNKÐl¤ŒÁƒ\t°¤ûža“…Þ9O<þG€ÿ9Ò¡^4ÚG‰Í¡Ù-®À¯÷œÇZÀ‚ù×NŽËxiÓ{5µÆwYîÃÀí§£üâoŠPéã#'*&o¼p-UHZP<½­N¨7Lý…ÁªYÊ3Ç7OÖÐJGÄY2Þ”h^šExM¶«ãÝ÷¦ÕóñEÀL>éè½ÇÊÏæ5à¼êM¥hX˜¦cT0ˆ<àOo8ïøÂ|Xëçã%Ææº÷Vü>O%‘ì&É]$Tঌ¼h\‚çwÏ·D6jo6ÊK¾(eìWi[÷:•u›Täô±ß1,]/æ»úLó~ 7$ œé Ó|+YÿJÝ<öd'¿ ¨G£âä':o<[™DŠj4â3X³A}ÛiÄÈ$äÇÔ+Ôó³+cÖ‹PeI|¦:ð®aer„i÷Ãþ}dåª1?ѦåÞÉlql¿ªñSúZ[ù k˜úiøNï]w[AyÞº©fá\#ëJÓj¨ô섺áCíu9£ÑÆÅÔf±KÊ:3<´SìâWšglMÝ×6 ×Ù¬«Ú=Í–Ø«§¬M 4ÃÌìò–„+×MÜšL­ê‘®o~ëy0çóñkH4¯!Ò'dçÉAn¥×œÓß-_G…J÷…ÒS¶ˆ¿ ¬%~ªtòÌ“G3M¬Ô)¨êY«î`/:½ …9Ý€m..Às“¯—‰”#έqU™®%ª £œÖw¼¢’šøÁ›å/NlØæ¬®Z— "gl>’Ç­u@ú-“ºçÏá‚í¢nåxhQª]pØ]ËQõ`¸Û ÌákeÌ»`XU½QÎiçuªÐ ¾£¶ðâ²è»SJ ×±æ…ÅfûöÛþ­®.רnFvC$Fë«ì‡ö¸ãõ…A-»óéÑ8{!ç,ö}ä‹x*Ü/·ÎR‘÷V|W–N©ekqå5õ‘övä_äÛÁúÛ¢Ëmw:rùŒwyËÙ:°dÂïr4$  è©W(® Ë[8>€7ñ¬ÖJªs›-v®\Ù €Q ^Ã0[<"ö ¾V„êøÄ±0ûº"ó€×ÅC£qû,í]ɾ–݈‘Ó_ÛÀW·’Jy¶þ±á*%1[©Ppé>¬íæøÎ‘c€oª‚´kTë7õ#ÚÚã^–—¡Û”ú|ë|Z†ï¥Ÿá9M™R Kò³ŒL±oÛ5‚ç Ξ²íÜâwhý²º«6zl"høÍÂV}!)«4±´ÐvÑn ÀˆkÐÓÇ€Ygö#®W ÔTȃ¸uÓqŠš‚Ašj.qÊ2lïE{¬cá£ìË´%›Ì/Þ¯ì)3SøÝ¿¨V%ëm‚—9ß´3-hŒd0³iÚF=L$xª†ò¸¾ˆŸ“hrÐðZ^Hâ;O‰×gWò ¬ÑaƒíBÉõ©ÎhÒÃxf飿4T#³3:A’…]4rdƪåz/¨ËÉð²t2¤­r¼„",˜Ã†8z'àÒãÏ®†ûe;¾YdzÞ¤®lngi8‘iΕ„šœÿÔTv¿vˆc]=1y.²3{ŽqP+Ðv„+J ޾hJŠ_]vˆƒ]†­×o»”QŸ ØX!÷}·aÊ z†Ï"ļz«Áݸqãúö†ûÄL$廯QAQ‘Vñë`qß=DP½efGä8žiíÁ7_Z…-ŽØ 68K6bÃÅ— O˜BD#Oe.øI⇥l˜ÿ'~ïÁhðð;Çá†àÝGjj®N «~€¹"¿¼eÓU+ì!aʸ£`Ãê~éLuÍ#IËÄ…­<µÛ}gLÌFÂO´fT‡r,Žy~¶_eu7EÙR)Qè“Ët´ &–xíNõA§ûj{CRhD2A°ô·×.(­OÑlöNú%zj/·ŽQì6â'›‘~ÓÉô#‡Ì~p£ç»nqÒe€câ(n-ÔÓØn(º“ í«*rºoÀ&¼èžíSÍ4„õ|…¨™µå¡Eš÷ž[©9Fmt!׎ȫFü˜™wë2&g„ˆ‹Õpç0ë|c#56ª©x.ðv½)Û¢áÞºùNLîÝܯwóü?ªA¸ Å( |+BU,Pì~(VêÃ犅TqA(ª‚þĤ֥§Fç×Þš¸»ø-˜Ãƒ]4Çë±g9z…‘ÁŸEg Ô¹×oSZÏNy8 ôvYþU~w„'Ïå\Üw­’f¯ã=V(L»£[½·+;Å é11 +rðG#L¾f"Ýr|"ŒujÈ6½*‰šëE•mßä´ /g‡‘Ì­H.-àšqd ÔFúÒxªÐð¾$xµ,|«¡úQ…Ð6‰4S⊆ÖÃL–Û ae$IRû¨ñc„‰%‰i)*~"%øºÝ­ZÓVÐq_¶ -Êažå‹ÅVûÞ¬mˆx`[ÛÍìë–åŒB…=þ›¦!ýI©µ¼äË|¿™ÖŒÛ ìÆ&yϤ)+‰§|-GÛ·Boë—Á4F(@_g–›?æ[È·‚p»ž¯£tGY¦æÃb“ëaÂ8î!í‚lí„9ˆ¢ß¾Aç 9]CÜ~ÚYä²vYW£YqI•† §1’¿e¤ÎŒžÞÊ3¢çIJæ‡*³ÜÁÞA„æn¼ì>öò¿ùúHƒiLå@cöÀ{á#ç£cN{¬•¤ØÉ±wœ&JɳÓÚ7E~ìœ-%ÍW{\’ÇC g¨ÎØò¨¶ÓnCô÷×½¤Š¢Ýà)óýôsi [ð…¾OÀ} ð'Ü3 ïÌ Ò•â6<{\(ÄS|ó¶‰ADt¹âìµ¼Cïø£ âS©Ð]Åâå8$¤ÌÃ’ð.g¿¾rßè2žÌbå³í¡keBúˆòã™öihSUkDz ó‘[Â"§Õ8×ç(o'ðÖí¯ˆ6ãµ£Gí ˜\% üf­btÊN5¬Ç&¿ÆU%äƒÄÍ^ õÊHݼ¾ýÐzý*Ñ£ë&•h@ýà›:v`d¾¹¹æ·éú9±RÃhkî šéÇ;.uïåÅd£ëÎxÿË&óYùA*ð¥ÐÔ²MCu‰ddÕ†Ì ˜[ÿ…e]ö™!1a°WHÅÜ–H-ñuãuÊÆ«ëDºÒªiÇè©é-ÕnREaVÊú>0¬ÍÄ1CpF9èk0æbò/<'Vwâ\L*$!eß–ÞÈÍ¢ÀØo¢ÔÑÚW˜P¾Ø2U°Ñ’ô„ú…ŽèþyÒ Sw¥(©Xäãn?ï‰.šIî×®8AÖó9ÿ9W¦(ÏC÷1½½£,wÛso+Sˆîˆ›´§ÄÓù°#4V‹öäÆç_pù컺Q­ÂÒ">'”²SynÑ÷ ø¶+¾ð+ÔòæBr“I­Øºša+ è)Ô‹$^<œÜí›Ü,J§ór“êÌßYÌ6÷ŒÃ‘áôP~!¼Ç¶;xfd·†bÄ;<³›ïó)í½ÂèöDÍ"~'œ1KÖb¯Sdl”޹ŸzØødòÙî9lj<1öÖ‚j4@Q˜€;h廞çÏ´\&湑þ7•tÞ,›Änü“:7d-–ÛqîwÆ€_Z) ýu6bY2×\®ªòßöÛå¬[6V|§ªâø‰ßÜð^u`Ô3.+  ;SOý 5Üq§rƒz³ïÁùœ ´Oåõ—Úáê} nê?r¢k ‹:0Ò£—$õ~Õ i ?cl¥óí`¶Ž„ЇSØœÂGg(hö¬'µ²â𿽆î£jÝ“WT; ˆÚ37«b—$¦Þ[CM­± ùãcÀ®l§Ö·x¬ëêà~á‰Ú¦üFÍF*§0ÿ-sƒOØºŠª}[5uq„Öe&™w€O}Ò"ÎÝw‘y¢MVqT¾fÖlÇ)m5|# ›•WpѰ§ÄXZ©,4kTÔyþÊ]" ž)(çSß©ÐЀy=0Q° ‘j•M?›#WΘX‹Ã¿×+xs­o©m6©õ~HaåËQ*dÒ|!ö‡ÚЬr]íkÞÞü”e¥ÏEÞñw¬n bŠyŸ=¼¿è}ÃZŠáÏÏ2F¤*à©£³ª’ẙԤÈk“w÷W·ðÅ/îIï\V5~5ƒºÚpŠû…C\6z‹ºvkwÕö9«Á´×Ȫ³”¨V‡=LÕŠ ã¾;På8`§¿y‰GÜx"|È”§´Ó´¯‹¯ú!ô±IÅÖF²Je¬õdap¯±-½ÎègWdkç<ù\¹y‹w¤?· ${ v«P‘ÆxÚ¾EŒMK?‚«È,«KÊj§YòX”6Q&~Ç^cÅ¡]ÙÆûG ǪBü¶T—Â뾜X‚1BU¢cŠ9DÔ²deÙ‹‘=àøŠaLDß6ºÓÌ+‰u|‚ªd)!‚c€Ç㞺ÏÉëwpG.×7©f8I€(G½“ZŸÁä­J«É“||ñ&—è·ÈpÔh£Ï’c$ýY¯­nA³½/+ñŒ‰Ë2óV™ð£’Ó™fX3’{aìíºbo›ò1vúœ)S“âÁ$†:ÚFÖ½³ï$*³K~^ªc`ŒÜw)P‘z‚Ÿoe™EÑ(édBZ~b†oñÓÚÒ{ =Xÿ’ 5ýUìç‹ñ‡¨ÖY†¹Ã¨s|×ý¯Ô¾*p¢8,½ƒ x¯+·ÚºýaX¼øöa-Z<ýRO×ÛÕ¤‘NÞÝf.ë\ ÈÓ)âÆ]†ÞJWZN°>V GCólK‡ëò*6³9.ÚlÜ_n€M}AÁ?%ï{Ìu‰¬= Ôa¿qÉËòz"!ëx½8h²Ú˜wP–1i[/ñ¢Þgäò~7”NI›ø¬›AÖÝÈ=V~6Ò›ãå°ÌwO‘{lg’«NZR8žMÛÀllÅÉF—ìNRÆ<"ûæ­€sH4†M®S)•Ûèù _µz{ª +¾JËôNª±ïê#’8Ù¢¯#+Rã"-`î)\=¤- NcŒjûê¦÷Ê—7¾Š5 ©_ ߥ§ú¥)…±¤d¿Œµ…-xMA„  dÆN•ÛCeÒ%Ž'VN> d4ª Xñš9×q}yý¤#Nÿ­þùèÔ{¢:[.Èg2ãE`ŸhóÍ?å5œa ;ÇíqnöÆ^==UŸdªù›§š¦VÚrr}¾Á!ƒÛút)Ä&¡aÇ$*ñ û"B¥Ñó—ùqÌ€æ=©8ÜÄ®*¥GïÚtö_ŠMŠ¥xþÚqÆÛ‘µž Pføoëdøõã¾Ì^ЍT½8àŸQjÈaXFù…l§5Ýhé{_ÃV¿üÐÛznny—ÔûTÅ«ºLµ¬~‚õµ_°¾þ»SØí¾SÈй{ϳ}3;”šià©|â`óA¤"aó2ÃÂK’lIŸ—< Õ•.ž êU+©½&\×G¤…aGrH Ë9¸QŸõ¼ %©ßȪ‘âýY‡¯e’¹ Iµçk9“¨P‰Wê°7‡ÍêY³y9 :÷l˜Ê4ë›Ú…ÊÁaï1¤G†I‘+÷\N“’͹Ã}j>¥†&úH_v4çw„ +VÎSâHãR)\šxˆXÆj D–ž:Õ±4‚÷'W“â¡pM÷ZbìroŒ]i¦ó×´Í„Grž¿`=ªuÔ:[å L.xMtÏbâŸ,}¸pÐvbhC:ÓO}»4 qóùëuž@Z®ˆ;¥«™Î¶×wÀc¡žAJqkœ/´7äµ›Xˆ;Ë#Ý•àU~5{ormc?–:Õçð0 YÛ‚rm3‰íÛš[eáíÉ?Ø| ºµ}küb3½bî†jwôÓ’W«¥9ë« #í5Ôhûyū¯Öl•¢k‡³|Ó¸N!“šý åÏþF`yótrF¡i×.B1F»]#-â?|ö{2íý²èÉ¥mæ8†&ÿà×›Äðó(묶$(0¼lº.:¤½—Úãb_hµ¶-ûÔ£Þv}§>£©ÁÍœ·Çb9ÿBüú=íÆ.¾0nA;”ÿáV_Ô2³q$z jB*jšKh؇©1åe6Í>€Zò‹·:KZhúÐòÚJˆü½l¹½¤PÁlY·œu%ŒÒ(ƒùØÍä¶Ųö¤ß‡<¿ÕM\Ãhçob}©¯¼ÙI²ô.84×F¢éñ²A®ÑpœNwŠˆ=üÍ•a‡7šàBa…ólÌÖ‰ºç‹Õw* øó%‘íÅÅÝaOÓŠçóÕ¢ðë£È‹<¼}G§Q§½Ä‹™k›Aý9’°ÃtÌØP;âý\u\¢r¾}–ÖÉ®»G0I"‚\S« Ï,íBM(K˜oþ«Ü€Û •–ûU›Œ‰RWÍ14âsÜínQX‡›;ä'j@¡b­^ÃæÝ¾=­D·B‘v„ÝÒüyv. of£&sXŒ} c|¥ŠyåÕI¦1‘eb‚(SÑŽÐ_µdMümQc‘^g}·Ýb -?ÚàfÁ-lþס»I%›npklý‚9‰d‹‘š¨§‘‹.õ÷›rön“¥Á=ÎˆŠ“Õ 2pýŒ;ˆ¤/@?µP‚ÁÏ…ªãÎ'ôÄ3§*S,OH-Àû÷%º_£KÜÐÐtVí¾×;× /:IËÒŽ€©n‡ ‰²c”X'‡Tä3ñª@êÝ}^¼|¼²KZ6óG0¡Óx<1†Š•…o^—Òðß+ D„“ ëýuHe$ëÌìcÏÙhG i·ËÊa=iG¬$²B•ÁÓþA¬v”zvÛ^×57¼oš™ý[nc”Ý~U;2¤a%÷yoLÖáu~šÕ ûzžì_¡VjO¶7=:³mB¬EzNÌä9xgZ¢fáKÏ=ùJ†là•Œì®³ë9ƒ ³ó]y¡¯«ÏMÑ™Ôw†¿Ý[h;Ã}îf2vÍÒ ?KR$úÙlžC\èÏ)‡ Å)†ÏTêy__=›9SÉ‚Ñæëá)=‰ýÞ¿¢æ{½½<á = •hÓÕ]›òAæÍ%-öÄè,:§¾1/óáÄc4¢jw²$Ë|s|ýNÃàZ‡¤FW‰ µ,mŒo'Á·*^> a=½9“û„ê(¨7l¢Ç!ǘÉŒó: ¹V¹y´ŒôBº´z‰Cllê†þíì²Úòk|V }÷0M[>Æ[’èFG%k¶³,£‚ ·Ó`30T¸>yµ©â‘à ö³í“¹˜, äo`^v׊÷Î†ÑØ¨™òTÙ…Ð–Í ®XE"9~•ŒGŸ¬J’ rP”æK:ðju†k/§w(«ákqyŸÓÕlìuBîõ½Ñ»;ëôžQÖ]Ø#•|#Ñ9[é›í†o)Ô '¹ï•ÕÙf ª+‹GiHß?–qؾr‘4k¹¯nÓ9F†aÜé£aåmPFW£Mü2·ñá×>¿6B.·dfÐÔ<‚ÑŠB½/Ú€ÞSdwSòâgEg¬øD¨liØÚÌʈjÅ0ÛôåG¯ÑV-gîÜTñ9õãT4æö{6úéèÒýîF~üÚlÿ>ÿ44³À*Â…œ9gÖ«<ÎJè§O[ô%)ŒðÇÛfÎ>3ù?Nsºû´”«²¢ùøƒ•æîøU¸'׳ö -Ø!@Ç êWUÔIµuUÕÿHÀ%p»“a®ú@®öŽØÛ-]eU¢ªõV¾`¢&$ó@|··ƒøx‡T´HÞ‹vXÌH Ÿ(Ý3'IÑH†~íÇÓß–ü(nÀ+¸Ðë´ÐA^ž×=¬e§O@A}áfë.#t4€ú˜9R@sHŽãCÀZ4X?—¡/©“¨Ã…›;̧ÑåF‘Ì&.·®óý=.õ/%eTŠ—öƒœc8úìQ €22[ß%¦ªÛˆ…-ú–›~ö4‡ÝšBË©ôáhøv:uΦ"*‚ÕÔ²xµ0²ß\?¯Š,Äé•<îÕm•‹Ù‰ZXRñü·nˆÞÑû©]Sч/t6ºjíùÐÎã¡Õ10ò%K¿ð< „läœ9ˆ³¡ºÙÆ­VHï¯*±q­[ÀìÍMò¶Eí˜ôw9OÛh<•4L¥³qégFJµ<í×Öa£cnÊ>>¨ÝFë}…’‘ƒõ–ÈËHçÝwM.jÎìMO‡~Å:_HO§øËÙTù5R1j;²~´ËÏ8Ö¶ž-C¤„ÌÇû"*sÝ1ù¶59sqz³!Ó´ÈÈìµ–s)½O)´ŒµÉ±1ÇŸP'À›Ièàѽ 1t©ÛÛ4ÜʤäR˜ù›-ŠMòæ ìY?CŽ ßx|á!²~3I¾æn*qc ÝAÖñÓLWCä·ƒØ ·stXR3ͼâ÷ænà~¯º²Æ´´‚„ÁscÕ€žßx£KÃÌìùH* k°áo{Ø}DWxü™Ÿú(ÿ~ͱûVp®—H`µÀùIæT”½žvÕ³Œ±#S‹Âͽdrk, ñ†ËUÑþ4ÿ磙QdÝKçìH WùÏæD:¤òÓ«ÆSéÝhyÝ$Ý£åKÒËOf/·ùvyZ?ˆÈúí6P¥û^cš ¶ò®3uº’Rèø–‚ ‘¬ý¥©ñeÑ'íÐcp-¥†a[ž†×9¯¶Æ“ öÙ¢D$Mw+#á^xİS\‡=Ï(Qµdhi£äë·Ñ[ÖÀ…÷v‚¼=Uâþ:ÒÁO¸ã=ÚØæÓjÊiØ_m.o·äͽg%ÖÊ Ú”;^c™bnÖ‡…+gï:<–Ž’Ésw %p‘—ÁÕßþ‚àÜ+ò¢ÎTQôh ê5Vd¨®‹F H"Ÿ¤¼о ÐÒ¾ÈTÁd}e6Ų‰ÙÔ|kgõT¾ÛDj!Qó¼‚cŸI­ÊœªŸ/»ƒÌ£êpPïåŽôÓQ7ìŠNÔïäPÐpY¢òy·ÿ‚Œe2Bó‘FÂÒÛ‹@Æï- ÞÍr¡Ñ!d°˜\¥¢Y˜óQзœ”­}´ÄŽj¸rE>pYÌFaØpfRiyÛ1vLJf{EÍÆŸ“îh±úk—³ƒjƒð©". £5 E±œ«¸òíl ÇäúÄ<“’ðàcvò;·ò¦Œíœ+“¨,µnþô´äáòÌBÁ.5•ü¬¦`éðD¦tŒÀ£‡™°2EݪᥠÝò烣¶["Ùqvê¥-Êrže±ƒTu‚ݧQ¡ùúÚûeÔ¨lëi?p£ümU'ÚýùzeÑ‚Âî·ƒsì¯)K„dê7Ez£Ùœ¶³qW‹ŽÕj?c‡‹0?qŽ`sv¼6´hcyÿ¼1I•|W#ˆ&úõŠ<™å'r”$aÚ¬.iáØ~uIÔ¿i3â#]Ò¶7ž1® ˆ»Ü.2×9¦JÃß ;NÎ¥k%¶XtªJ…ÑâEÅœ+t+Â’ÿdBhjJsùš"L¾ÌíuýÚL#x–ºSðEùÈ/¹wzà ~­„4iˆƒät_gÛK•‚ÅâMBØ!3Æõ{OP·IÒZ¦Ä˜xž"­n×]öŒs”më;ñóüwÖ ç9÷†ëœë=Âæ¤ºYÎlÃÞ|_’ÜðÃÑzÊõÓ¹XB£RÆl!k_\fÑ…1.ÞíóO{ujšlïdÚuä:É Þ®0/´ H³ô†éñeªæ6ˆC镉©¦Ú;ǼÚäý@Nfßë‹_Nš„ÖãjG@—¶Zð:§.ÕÝå]¸KšˆîîP³C.mпÍz^LÂ*òqRóÒ¨ÛËAÿ0)°vdûopy p$^—#ØÒ†w¼/zÏ»A挸¹çj&þº­~&y$÷²<ÇGKîƒ¿ÍØ%ùSw™îwdЬÓ²FéK zØ8*yÖ¶¯jÄÒªgBŸrûL;3i³rõš{ªP]¯À7MYïg¯=B~g·aÀ·¯Ë8Ê0e+ÊîTšvÈèÐ;'cTímÔ+tè î‰,o³Kòõº±¯Ë„–8Z]ðì—'òóMêL’ê+dúÊ1i¥4Uœ˜×²»‘;½¿øØßÖš§û4kÓiÄ÷5Ñ#ƹ#;•n©®©ŒçH{, iÇâŽÈœÿ7j !ª=f’›ÅŠ}"o1‰¦æÏXÇá‘wG°NAã-Ì þÒÞnªä¬Qî"—|Žø—°ëFÇ8Ò‰¤’‰‚厒Ëù“¸øÉ?Da•S’¹ËžÙƒwç¼üÝ$õІhÎÄñe?˜&vútêol±æ©0½P]í³XN½=Gæa§|¢úN1ѧ|ÅUîÐS>"ç0æÑ<§%£MØÈÑ¥¼Öç#4㸪֩˜-:é'¹y ÞÑ8lùèK‘O^á};Õú:2HM<Ì:6²ðƒº¬¤z11°Âp°dÊÐ|º|h ›;'ÓÆµ•Á+ÆpkÐË g®Ïѽ4¦¨É¦×\æ“ÑZ,hX5°,ŠK8¸\~&°ºì{xŸLy'Œ¤ƒ7Î,Ý+Òr»:;×ö1”OÀªUóD—wÏœÿš$B£°¥:=) ŽöœMØXt–L`²”W¦åzß›[Dë…ðq½ˆ×'MÙ†Ô³a'úÍ4l5ƒ©ãìלaǜܼûZÐä³` „.›¯IPª”i9Ñ\PØ7»Œ³É×J Õ ö3õÐé/&N¬‡Ó–®Oºá‚eßæ jðƒz“^€S}ûŒÌJbg?6šœ,„ø8趇nËÏ;Ø’²8|B–|oûÞýîórŠËµí¨ ‹¢å nSÉÞ§[* ,¸¶…ì-b¾b_޳藃–•$5ðõŠgƒÓi™s_‘Ï{y¡=»w3Ì`»Y°dŠÓ%¡Üµ’CK0?Zk‹ðç. Ööú.VwºáT¦% ³Àø¢ofŽŽLì{¡{±ê$Ĥrdçt¶àYDÑ÷\¾åžU´qß᳨’Ëp!,ÛÑ7ìväñÈ)ÝMŽ8ŠÉáêÒ/Ž˜"Ù1 >A¸§%JžC9-83^šüªç¯ œKö(¶–5*‹ª$NB•&1͉ÌrZF¿Á”rZrz¥³-ôV¨M"}3¿Êev bù£œŸ±*2ë¶:Ѫd±»ëÇi\ŒOôpšvãú7ãÊåÎÁÀ#Ž&C+G8]A¿®³ µ"ËÍ­£[â§åù@@ í*Á¦ñÜÝ%ÂÞFq^tÆÕ²nk]z y:ý+V›Ô¡€FÏéf¸†âç3n·å×¥’”¨ø’ñ5ã$ïµøyp¥dE&°O¶ÐIÉ5óȳ̬< Z(_ý”?…=û ü,¢‚yCEÉsÆ£ø™H3T±÷*5yÖiÀo¹óF.©(;§¦×ÜÍü3Ã+CΛ¥ä>3HÀò‰W‰ej%V4ˆ8x{9ôuðŒ¤½Í.Mx%ЮÍöý¶«¯ïîû'Ç_ÕÈTÕ7z¦_7…²DvÊIä×àáÂ¥„pô(°øW³éôH¡/Zo³˜Iͺ¤.`D|Ƽ]6œòcÕ¼õ9iXð:ܘdyÅŒ]2UäˆT‡îÛÄpÒ“ëË/•?~ðÖ¡¥AÔ,c]¯OÞ“ýLmÝ8>+D£Cü‹\3DPxJ/AEIZp·0)>j•:¿»(sÕ«uj?÷¬±§/±‚N2®#bõ# íÖýœì‡0'7«j7ƒ^ÁøšúÏçy¤¤É°ðY±ñ’Ñý‹øª³ÐJéwÄôÜe/±3G£°T¡®¬ã·fÇÔIª-«>xÛ–ˆÈ–ľÊɉÞÂÊ}T)ïüëªà.‘žD&$Zg¶‡È̯S(~°ÏO†dÞ ŽlŸÒÿ¨{ ÂV¢- Û Ú@-¡[RŽMg™Kj½¶ü\®Ê_QŸuc¯ŽV>–5t5ŒÄÞé}+öéÃÙ‹ïáÂ, D 9ë[ILYb¡i‘^SƒâjÈuÕà¿ÚnIÐã¦GxÖ$™ã‰«Í@±p¥Ö>ÀÑiM€©¤·º@ì‡tçU(šª– Ó¹ð/ý5Yh×{,þtO½g6·DþR†9 “ëèÛ™°îT®¿$‰qâë˜ÛŠê›V¹^JŠ0²4xk(0Þ;júë!†©“ºAñÕ2cÏmBÊô•.(N·¨ýb*~¦¯¼e:W¢ql6ìö:NT¢HcfÐ6æ0aœ”öQ˜LC7Æ>?`¹3µe‘»`$H6¯.dDÒXƒŠh¿nÝíYh áÜøWP ?/(q‹ÀB¥SY M:|A¨®WV`^j¶ë„Üóeì«…»Ý’ÍÄÇ8<Ö*g¿µuú0bÐ%ÕÔ«ˆûáç‹”ÜÏu¢Ì#¾7ûRœ©H³÷Tu#Õ?, „bP .zFô#1É]ßž>:šºË÷:aä¢N¡c"Üd˜ ~à0PÒIGÁv¯˜£èŒœØtþ¤Xt;6,dúÉòýÜšn8¬¦árǰ v4˜Q©&Õ‹éäGÓxmÂíTxVÛEsyܛپÐÊ|9à£y—ä{÷£˜ŸqD¼^"Á™I^Xkj‘áX!®å¤ì»l-SK@ß›Ûüwu9LZÒAÁ-è´„*­lî•EÝ?n&¾Ÿ=—–N—ëá2ûênè£wš¡fïa ‡[(âÙv‘5^sáÐÍÐ^ß³†0êëë»ÍV:å·Ssø†•ÍÛ üIhõKDoŽ:Ç& ]CкW¨ÊdÓmŽ– ] ©ÓV–³j2 •ãÁ¯[s«=ž¡î]D¹¼ov±Ã_0N0íôæEîñõ¹a<Üþ võ‡¦‚‘a±¡®aÆ3 [[Y“‘ 5¬Íñ^zÅ@´Ò‰z×L  ]‚­hK^Œwéhè óvm¶Öײ`òqû: e³¦ÅÁyM+¿ûœÐl¦¥Œ÷Á”³YÀžé5Ò÷x ñü£¶è·!¯^E¥É~çUu†¹þWfrzçHËL8æ[QØ?Á%ìyô±R/7ã©XUñY8a+ܧ>y;,dž ìÜWâˆäúVY½VàzîíŒ% Âç‡Õìyè¶MJ¶ÁÜ-ð„ ûßÜoÚeù9jƒ ¬i“…Žá”Ø$“ºÂ¶^GÙ é8{WŒqêw’~¦Í — ‰‚cc\¹%¥åÊ3œ<‡ðÝ ÃqæÌÏ_{ùF¨Þ”$´RsÚ+™pÐàÍîØõ9Ðc×ì¶GÛ”hd3Ê㙋ϱ½ƒPÆðg2³8Oߥm®ûAÿ”C¥IyÍI¶xùX fLiÅô«,:º©[rá•3h¹µg^òºŒhj]0RˆÀ r™#æ#Z5“œñÖРݥ¢¦gý9ºrwß9±Ô¾|é¡K,‡¯qã»Jðd@sÛf¼Ò¯ÎÛÆˆÃׂí–;rÈï^ô¥![R8¦ïQ³VÕ´ø!,UÚ€ÏóÌ_™ñåôŸ]ɾ#u™S›Þã lª¿ÐÐåµÐíir¾,,WðÓZðx1íÖÓ -'¼‘9{>èʾ•È·m·Kú‡xûiûÎ1 j—soù¢úˆ¯ô,TQlîµ hœ¢Af.|;†^°|•‹º¼V“pwß ªÛT±LdëIët®SM5ëæŽþ…=eãò§‘Ž"G|¥LOø­3è_JÒ„ŽÂÀ´Kí†v-:r›ƒÏüH»û.>üKÅyœŒ´ÂÅeGÑ:©)öÝ!ËãÈ”?•†LóÊ]7>Æx£²YZ?»ÊÙ ¬ÔŽšh…[@X:­ã:§ìÞߨx©ÿ+&UüÊ—ÐÞ[K›bRNï¾*¦®”½fÜO—O|#ÅÖïjoÛ`Õ.MrkÙ3½M'Ë· ó°™rDÒ2˜‰'wg,}\~в?<Óœ˜ ]6á® ÒŽ…(Rÿ:%¯Bô(Ä’¸1ªÿÇRÒ®®sIL‘1ÆÎu¯rÅæÈ<åñ! 8z Y WDðº.I "x’Pûà‘2ÿVŒ¿^|ƒ…Ðs7—&†Z§SúÞ›äs!³s´MóåY—]tSŒ_“$iˆåó¡îæÿ%X§$[šV7nºµðþàÁ½;#»•{®x}Ù›ÕÈ9•”-ÏŠv‰1³¼‡y¹YÑÜ Bízσ†æÆ… qèŠ+¤$ld%€þ‰ñèX¯WDA–vNPPJÔêÆOµÃoµÛ š?«àa|ÀBvî­j—¼§ \8æÏC¥p¤W–_…M•­JÝ€õF‡×XÍ¡ƒv!º,hW@xQ¿ÚÉÁ}|jÕ≨{¬-ÑÿxÊýøÕ¨Ûh·Qgˆ@¼§ÁŽ’¶!è=ºØØtLŸEí¡Ù›È¸…À4ÎÄgbhXg&ƒ¤âÿZ91‡Ó¶S&·F£_ðbâ5éþ¿ÃþÕRN0k…* Ç77±ºŽé¥£u‘Öû/p„Råa¦0|ºJ¸i²¸8N ZËà8ÔPÏuÓâñN.+¤ôÊbY üz޲óo\¹ Åe5·¾ѽ§³Òɱ§1}xM^:‹î¯â¸x¹²-\c´Kw»¹4Þþõro˧Â/ ¢¿‘!ê®êµçE^ Fq|€×6š±üRÈH†¼BÚ/D&}Ý´mÿÓôBLg4f^ÕО(tÅÿ¹t8Ø+yÿ]á?‘ø§@ [ÞG`QXOL7´Ž£gê_÷ËRYVÝWö®Àup>òG÷m¾ì39XkÅ&¢Îó׌¨ªö éŠjÝgf3ãöR,dkÈÙ Û™L_X$;{¬–¸q?åöjºÀ#G ͘Èy¼gÓ*²qb9ÊûÕË¢0újµeM¢Cåz³Ž¨A^û«‹¨œ*‚œW 8áøœù_šJòalþà #½X _Økùºí¨`Ks?^O8²#—Ù‡Ïß"ðY-Ù$+g1 öžE/µº¡Ë€º‘ä;µ øœ(F¸$f;Œ`V5Û¶âZD†¡ªé±âÔõ-D—L& 5–w<·q‘е*a u{r8Å“÷/DåûZkû?Íendstream endobj 328 0 obj << /Filter /FlateDecode /Length1 1383 /Length2 6042 /Length3 0 /Length 6994 >> stream xÚxTSÛº5"Aºé5é½Iï RBH $¡„"Ušô&Aé( E@ŠR¥7éÒ¤é"è‹Ͻ÷Üÿ㽑1vöú¾ùµµæÜÉØ\ìÆBJ({¨: ‰ ¥*ºÆ– EI¹¸Làôo;)—Ô G!¥ÿ¡âcp6U0ÔE!÷<$! ’”¢@ Ôß@”»4@ì wè î¡P4)— Ê ëwtÂàêü} à…ð@RR’‚¿ÃJ®Pw8Œè‚1NPW\E0FAàP ö)xe07i///a°+Zåî(Ï'ð‚cœFP4ÔÝêø52@ì ý3š0)ÀÄ ŽþËaŒ‚a¼ÀîP΀€C H4.ÄéuઌµtúnPä_`¿‚€?› ƒþ•îOô¯Dpäï`0‚ru#±p¤#G@úê:ÂoŒ Œtø#Ð(\<Ø G€íq€ß­ƒêJ†0nÂ?ó¡!îp7 Z GüšQäWÜ6«!TP®®P$Mú«?U¸;‚Ûw¬ÈŸÃuA¢¼¾¯`p¤ì×n"¦HøC¨–ê ÎDúo›#JIHˆƒÐ‡¨7ÄIäW¬ô·ó·7ƒ¿¯Ê Ãõ‡Ã ¸/R_4Ø À¸{@ý}ÿÓñÏ)p€C0{¨#Iúïì83ö×wþîpo€G?øëó¯;kÃPHößðßG,¢¤eb¡n)ðgä9••QÞ_!Q)€”$’’âÿæ1Ãÿôñ±ZH õW»¸}ú»eÏ?àý#>À?sé¡pÌ…xÿMô@q wýŸéþ;äÿÇò_YþW¢ÿwGêÄo?ï_€ÿÇv…#°8æz`p*ÐEá´€üo¨9ô/éêBà®ÿíÕ€qjPB:â-º# ¼ó—ŽV‡{C àˆÓ_¬ùËnúKo8j€BÃ=apQ@àùp"ƒ¸àž"h5» 8 ý³®‚rø%6Qq ØÝŒ%Å5n%ðáTéõþMf€ˆ0…Á…p3ú`(wÒ_ DÐ8 ýêç!ýGvˆ‡»;Nj¿i€+ý÷ú·®¡Po(„tz‘ u~ÚtV©Äì%´:@´°ØoÙ!Žáž|æë¤Cœ¡1úPÙÎá%CßSƒ©’°‘ ?fþݳAïﳂæS5s1xjËÊûBy=ßß;BÙPLŽC’O#—©÷ Y)í¬­x’Ì'.K¶‰­½úòâ²½v_j à (<¡bOeÆÄ(å´lá?±dç\ÄôZ> Š¥q·Jó0Ñ2ºÄ=UnŠfü†]¶ŠMï›ûÕÕùTì _»½Bâe-ã Ÿ{ì9}‰ÝŒt Y÷Þ ñ¸•ÅOTJRâ9 \øç ì$ç¿åw½Mèó¨uÔS º®ÿ¨¿Î£%>!—Ó6Àb»’iòM„œ¡>1ÒI°ò)§2W…ÞIoÚ^…"·ž @TÝ2ûSw UT|j©ƒ?SMü(DÌæË0Ù]LFHÔ:Eq·ûóse ›[Ì|æB6@ËÄEk E Çî¼èÑw[Pøøy'¼ÌâVòh½þCSo[ø>Šs—•n4(Þ¢9c«c3á–øÉGj3~5 L•ö$ªÕ–/.'n,À(7‡Ðàm‹†Ì}E©©aŽ831Ê<êI5¼4½k–Ò•Ǩ(h]vKX_Í”Kô?“ ®—K¹|4;¼EÕp;ŽªjùºaÛ·«6ñöîû"¢$6Ú¹-÷ìŠôxîaîÄÃë¶â/Ö•-Gƒö%'æs•˜ØÒ?z ‹ù{¼vT»—k¡Tq™Ü:°lû¼Ÿµù~W,KÚ»áíöfž”5oÍÚóÂ}Zû^ énŽÐDY]œx£Ê\]¤©UX§é¨žÄ½­Vwô du*sg%ÈÍf½VoÏí{éCeU %ÏÔc)±å—ºÜR¾„dfªäÇwiÈÁõÁ¢Ha<'Xé BA{†>ËŠóI}uõ¹†ÛþI;Ëmc‹È½nÈ)AA°úÝïžbŸ>‹XèK|À*¡Z«vm­Y›?dV Öm а¼³PtVOo7ÞŸoa ¶¯s)ºl+ÚpýeC J3Å—tÓ{”ñFÏ&Ok“£ß[ùÙɹ¹Þ-V£ µäƒÂô†¸1ü£ïÜÉËiˆ[ê?éèPã9^±©çØ-|9ä/Ž W9³̶ñ’„²xÂÆQ!°!†,Ý­[Õþ§ÿ|ÇîK›£ò/Ö¥®a+TáE¡Ú¥ú=£±ìZ×£_½þ¾ÆplDýÃ3f.“ÞÚÿ5­ÛC‘÷v)†¿¿ˆvìºé³,_¿åãcC°Øªz1‚ ¥åð®7a93ñ‹QL¢¦¹RqÛË%™jö³ùáä*½7BÌPÕOg=s¶Úª“oÉ$gUÉõ}’ íZ.*kyÀQö­.%ãæˆÑÎUO#•”©Â,CU'RFŠ1E[Áœnú¾,Êfú{bMIëÌÀ¿´:Ýk:ƒ¶ÐA«GÓÇ…r*âý=ž-ª'hÛ¸×Ô@«æ«=X2€fzL¶;`YÑ”·#²íù>nÈ*¯áû[½—~žâVºfHXì¼Oì½ç}³ž ã‚]œ5N¦Eº GÕ[ ‹Inü¡’ž“7åf @hÿe Ê$Åz‰â6ûb)‘&«Õwaa&¬aaxHƒ>_h y9PrìË(Åãk¡d/Î|žÓÂ6|Çm¨U>É®äû¦§/)§ômNøŸ¿ëšÎA‹ÂxT±óK•¶Ý¯Æ^)ZCØî&U!™$ò„0~¹¢qqÇE_îæÎ2Å S@bñ'„àœJíÉüÍ/.øÓù)$IXͰmŸž¿œZ{€zl3Éù†;zõðÀšú."%nå º;4ô½HüÒ’ _»ÉjG ˜ü±|wz¸z‘>¨Ù˜#O&n=åÂÃÏ8’TIü ]BYŽz6ß9›n²Lò2=®j¨‰ãñÈi ­µÑ€P€¿oÄHWbîXªÀ– 8Å•ËxÐ Ù3»\3öyÜ·”\¯$oω ý­tc?€×0¹¨÷‚>xeµÜlfe°;¤\’a}´®0.H†¿s`ÉC$¥9QI$üÔðl³-"2Ú诖Š7Øì°º^{Ï|Úà.qÚô^¦ ú~êzk׊ç›” –:–¾V3ë&äÚ3¹ HrfÜe Kï…Z—ÏeÚûh¨(ppûAç ¼Ø×«R$bú Œ Ö9¿¼iþÙü‘¯§9VíöÔzOyûj+³PCÙQ<æN××XÿðéVæè©O7É\ûWÜ¿`êÈס¸;ôîh:ÒwX;„º1_•©£Yð±QûÓÑa]_Ú1ñÃÉYˆ%6¥sàmAnæRZ[ÝþèK;!Åjb Ñ%3ÏQÖPÕðI Ƹ¸ç¥ƒÂ\•!-oˆeÈãŽS=óZËw;êS²ëÊþÕ©.Õ³íÄ F;¼3ãC6¢S\T@|¥‹Ëm×зxу”?×ÔØ‡í’;Œ†«t/Có°Ù´~Iq3ž·höÅ¿ÈeëHV«…Ä~|=M¨Ûµ5)òò„•~ 3õ˜àBš6m R³á©·»Æ¡!áOV¸M¾Kœ›c] ÊSºÿ.:YÀo­’w¥ÁlüëB”Fq9B2XÆl~ÃgÞ=×vG/Oé¾0 ]@!o+C{JUأȧêºiŸQöû¡~ ‘ªWغîQ~[ªí¸ÕE1Ý7>¯?Tê^ /'‰¨þ°È8U¯´’Üð¾ƒh©Լ̳Â3 òFêæ³>6ˆä¯y…–Ä [ð¼\fÂØÎ4A|’$ÅqpŽ˜áö½`N ëÔ š²v3x+ M¤ÏáÚÝ®N¿Öy‡ŸÎX“Œ˜ öZ3×î/Oõ;ªô2&&ìM½k̸"åsõíªI„Ê|€HæQcBgZØÕ"+ÿÎS©è.÷¡q­'y(ç ÓíZoç¼Fák‚Dgö Ê‰×_ÉÚµ2ª:{†÷ Ä‚Në „¨£¦ƒfÙaËæ"¨Ð6HäŒ":W2(š_MüöS‡ð¯/P±©¾Ö*¥òœ?Ô¯ù8²Gð?G5â]uŽú(¤÷=hg `à%êàn\§¶—¡ã\Œ[?Ȇ–"Xx"*"{°m«ŠLÇ,òÑчŸg®ä7àArk®ÛÂ…vñoKl_¾³0­¸½;éŒeë%&F'â‹c…-BâXF^ñ}ýÂ’o’·ƒWxâÒÎÍw)+ërž (Ë'aF}n–j¼b]¼õ0òMܸÄÜpƒË'tŒáÞë†)‹Lùmb-,°£å¹0áØíÈN«¤Û/XCTo«} Nts«Pç/+>®šOóÜs×sDJ"¯¿ %€I…ðW0o[H·¬Éw7eHóÌë°ÂðbèÚ¥¹Á‰Î2¬¾toá×ø†g”Û+µù7ƒ,´ÛðgÍêx|¦ïö+±Îð]Cîž ]¯7iJ¦nOŸÕ\ ¸·µw°a£ /¾´*Ü—FËfªmcÿzcÞ4üÜ//õ6Ñ7q³Ð-؈iÔæCƒ ÿÓ‹Q?¹ŸÑ¸ÿ3mâú~íDëè ©¯El±þ+«Iü¤¬ŽnJ‚•‚ïåüœËDÅ©Uz‚%3ÇÉ÷R+jŸN±Poˆ¨33÷4ôóS1FY‹QøÂ,^P2'&ÆV ƒÀgЕ W·ƒÝ{á¨Åʪ¥Ô Ÿ¶û›J£bEK†t­ÊlfG8÷¥ÔòéãåHŸX+ÊÖ³}½®VØRŠ‹¨ï:޵VßÉVN__ÉÜV*.£Yl~øzh¿òÖ»ù‘;µÄQlá/â‡wA¯ ` ¯• NwæJ-7]eyæþ¢È*aî½§Ýg²¦Úªï17Z¼O58æ2‡l ûç5 ^ïO~S|óÓP‹ú@z2¤²*#!XŽáå{ûÍ+·øûšK…‰DÖ¼ˆ:"î6ò*NO?Éð!‡Ô7+¶ëqk¹>Í™{.oÁþÁ5úµWqAOaþ“cÔLEsý,ûîG—›ã We±gYzäàdâÍ‚âæNá®=|Œ^MAGBô5U½‹’–u8ßMÝ3Ê€:ãü/?-S§‘µLÁ1DDéqãÜÅü6±¬Ý <E<Ê%† î7=~² ƒ/žž¶°0íTÒüÜœ.H†P¼ ¬“Í{„åqÝF˦›nI¹±Û¶à6ͯðêejÔì-^M“§Àï,xçl]Cƒ<³¿—ç£0­º(§wöøJ³=’œ5Æ÷áM{K^yŽé»üëOZz\бbg¨¥¨3¼O€ÀÃHÍå6ò8U¯¥†3ëdÍÌñt[Ï|Õéz ÚŸxM3.¦S sÒ™-®91a²N|\8]\8­ïlUÐîC`õyçToUÍSú¿‹eŸyZ¥~lzfÀñV{0,L ¬iÔ²*I«,ãM9!;03gèÔÈ8ºK½§áµÔŠFؽ:Þ•±§[û¢4L¢)]óêÙ¢¥&«=(©vé­f·o½WH·‘åH#… é3Nõ⩚ªÓfL nÄØ‘§ 7 æ¹ÔåÞ·uw)‡LŸäihO8U?Ò«±ª'ÔêµÝŒT!Ù7¡÷™…][»&;–š}tÅîîWY 4q§érqŽÓÎßèe0ñLÀƒâ@ê%=QX>øåqOR,;€j³æÀsq³õ(@{ÖÜ7Kwl^La2.¦D÷Àú›´9£Ì jÏ[ñ©Ò®Z,É\ U¾•x-²È‚6NØ`QKF!—ÝäE@øú4ý6Á‰©õÊ«D¹‹¨×/ÅkÞEºêbä±raüËAö*-lÈ›1ÌJîUyžº³Î”‹Ã+ŽN§r{Xt‚ð·Bò ’¸%1Jü mÇ;3‡#1l2o<ø86ªeÎ?§¤¶y6÷í_«<ªVh½òV$QCÂT¸(¿F„$ðIÛp,ÈÈÑ;V6"·ô½1¿âºg½8YÊÞïu!¡?'ìÿ$'³Õ N½Ÿo¶ÔWR-PN]ð¦üå» VɨjStpÆ«‰’.ìÚjoG±In´Šø…†»ã’)Q•x?g\øÓhn¿Ê¸ÚÖ(’G)s¥+Swsžn’çUéz®.ð:ßÄ…,/È¿å#¿îdZZwâ÷›3<ÖŸJ`Šp¥Ž~ûrÿš‘UËÍá4”ž¬óí/$?x‚×:š@/i§(ÞɸߢÜü@7 2Á+=«R8y¶L{?ý›v„c8aIçú‹¶’5JZÅè,“òdÀ8ø„ƒ«KÛÏÎPÛÿsþ‡åÕ°¬¤H ÿCîÀËŽ»R—Eo×ì™<•!j­ d=â…Ü©#‹ùa¤ãÑ5-õ5i…6LòT<‘±©þ ¤‹ÂYTÅÕªàs™¾¤|‹ù¹KA~I3~ŸEOÈë]ÖBú,Jº6YӢדz³wuPγèI 1ªpy²ôÛÌL_SG0<)tRj’Uûz+D$éÑw};­¢]²E¯w}¥Êy;KWàÀäÉøÄ?ŒÈ2õäÇ-/”íÑF:{ºZ‡A¶¤ºŠa¨ÃÙ€Rjéà%Gæ{Ç$å¨ìèÁÎiƒÝØ#eÃ8ý’$±o­üÊ×ŪC·²>V¯ŸÏ¼ÊMþˆ#tE-I~ ̯NÆŽ²“Ìó;×Ù­™ «È‘õ^0?ŠCã©)“sÌBQ(6jãé=.íá`˜@ïqk{㵉GRés{µ÷úaÖSˆ ïÏ<^˯U¨ZUµÙô‰߇Ã2y½¬a…fé}mV›¶¢Aêß6Øl(•Ä<˯u/égzŽV°Ô‰^ñ$#õ9_5©Ÿ?ïNÏݰ¿}’yÅ*Ó;”8ÎI•ϺŒ‹?u0RÚ¶ãí|¬è/wk.ߺ±"žP±†UüÒù³Átñœä÷+…vM™nˆoê¾,VÙ^²ÁÎí׸U±$üã^ ‰Cál³ÇÊæ¼¶ü/i§<»½~tìò³bß517Û›žÛŒ¿JfàOò}£×P©?q.JeTÜVCéýa}‹äV„a'É‘—²ãpÂRÓ¥ñåÛœLŽÉRD¦ýþ‰LCUšvüÚäÕ÷}›‘nîÅ.ºdo‰Û Ü¥¤!Ú{#1Ƨ_:¸XƒvøÖEÜŒºÏæ§ß•r0ˆÖz¦©AÅÏ:¦+ÑE÷x˜HnT5§}^³0|Ít´_iŒ Éuî<Ä32ù{2âQÍ.=â¦Õöy w#/*tíbù”^m“Xpj&:J-§{EËwC(è¤Ûìó éQ&ÓiÑ‘zùPÄä‡$ÊVCóÆg!ú—Ç# wøõ}¾7 Cê!Ée–Ü Ÿ¦¦†hã¶7å¶$i’-ÒkNÎ>ìo *‰#{µÔ£RD².ú£ÒÉ­Áhá=þµ×&Õ€©øŸu r&l£LŸ9Ö]låŽWž¹—x:Ìéyc:VxUç³3o´Ù·­{’`¿²Ð.¦Ù lL›+ dË^±Ôqçà}(SÊÖj·s¡®:;Bb½¼3wC:›Ä[;b Ç„>Ž h *±Ù?ÒÎÉÎŒi®2Þÿ¶‘8Ó@¼É9f€~©¤9È>“+]u‘ˆis¶ P½ÜøÖE ;ލZRzGqÄ~Ì%^ÿÄï%5óPŠ“?ØÝÍ8ŸÜ}/—}60K:–V!íq æ¸myº8À¾qÝ{}ñN™­¡ œ¬R˜d 2l¦ãu6 ·ð9\Ñ´r”mÂ^âk‰¦d^º3ÞM?̉‡Ýf»î^:ûªlvÁ?þ€ˆ*¬“£vÀ» [OϳçÂæâÁÏGõ´D5¸ÉgæQô'µ©8ÊbaÇÆþ.ÆþÛ"È ~ëÌ 2;AQ^QZu‚'äõÉe_éuDøq”ÐèƒÔóH­V6{›ù=í«üÀÚðP£Îª$ÖÕ¤¯Êb·ºœ¶ZtI3®ïu¿jÎWKº&Cã2%°tï=Yzñ·ÕîÓ8þnU;ÓšãÜ÷ýRÆZ0ÄÄÄÿ0R‘xendstream endobj 329 0 obj << /Filter /FlateDecode /Length1 2045 /Length2 16304 /Length3 0 /Length 17546 >> stream xÚŒ÷P\ÛÖ€‹¢A‚»Ó8ww÷à„àÐ@ãîîN€àîîÁÝÝ]ƒ%¸»_¶œ³÷ùß«º·ºŠ^ßð1ç« ’Ï*ôÂÆ6†@ kGzf&€¨¼ª43€‰‰•‰‰ž‚Bäh üžBhï²±æù—…¨=ÐÀñ]&fàøn(oc q²0³˜9x˜9y˜˜,LLÜÿ1´±çˆ8ƒŒò k <…¨­›=ÈÔÌñ=ÏÔF4fnnNº?ÝÂV@{‘5@ÞÀÑ hõžÑÈÀ bc:ºýOj>3GG[FF+{S:€ ÈÑ   tÚ;´ P0°þÝ<@Õ äð—BÅÆÄÑÅÀxX‚Œ€Öï.NÖÆ@{À{v€Š´@Ñhý—±Ü_t€¿ÀÌÀüßp{ÿdý§³‘‘•­µÈÚ`²%ä]éÖÆX:ؼû8€, ß þ,Ý !¬0xïðïþŒìA¶Ž  Ë?zdü#Ìû1‹[‹ÚXY­àÿ¨O d4z?w7Æ¿/×ÂÚÆÅÚã?d²66ù£ c'[F5kPZìo›wü?2S #€‰‰‰‹… ´]ÌÿH êf üSÉü‡ø½/[[€É{@/ ðý ÞÃÁÀp´wzyü[ñ¿ÏÌ 09 ¦ kø¢¿‹&ñûýÛƒ\_™ÞÇÀôÇç¿O:ïflcméöùŸWÌ(%),¢,LûwËÿUŠˆØ¸<èYÙô,ìLff6çûƒ×ÿÆùlú»ŽùJ[›Ø¸ÿ*÷ýœþS²óß3@ý÷‚Ðþ7–‚ÍûäÔÿ º6;“ÑûæÿÏãþ§Ëÿ¿)ÿ#Êÿë ÿߊ$œ,-ÿÔSÿeðÿ£7°Yºýmñ>¹NŽï[ oó¾ Öÿ×Tø×êÊANVÿW+íhð¾ ÂÖ¦ïMÏÌÆÀÄö—ä r9™ý55ÉÕþØ7K5ð³è7Ì»Óÿѽ/™‘Åû[Äá}4ÿTßwèóŠ[Ùÿ±l,ì{{7ø÷»~'v€óûV]ÿf#ƒµã» à½G/€‰=üËÁ`þCôqEþ!N£è?Ä `ÿ/q²¼ÏÝ?Ä`”ù‡ÞcÊþCï1åþ¡÷˜òÿÐ{LÅÿ€ñó?ôžAùb0ªüCïùTÿ¡÷ êÿ%î÷ ÿ€ÑðzÏgô_b×ÙX¾ý$Ü£ñ¿Àü¾—dòþA ißK4ý¾×hö_d{?37[3à¿“½Ëþíÿ^¸Å¿ð½:Ëá{éVÿàû¢3þ+Ôû«…Ñæ_ø^ší?¹ßmmßß÷Ö–@ǤÌKÿZÔÿŠßÓö}=mþu Ìï­Øÿ ßëvø¾{8þ ßÛpú¾·áü/|oÃå_Gø^šë¿ð½&·á{îâÿ̼‘“ý{ÙŽ¾œÞâ?üç¯ è 4‚_^°1â 4¯ l»¯Æw¡ÿ5Á†8p~ «±+Žë¼§ä/Ê÷pÅš±$Ü5÷;âa툥ø­ÑB‹ÉB÷§gJÖò6hÃ:Ï)4þÇ#9'–ß²Zú¬ÖƦXgMÊC.×B³4Øtv¿æÓ$ù(›*ï*ÌÎ`¨Ž &¢"`p¸¸X Û…ÓÛ+Ej„gç:¤É.…&Nâ %RúGYØ·VJéÀA[)ø‡‡ˆ¶²×é‡Éû=x²úS€YŠÝqœ§oÔþ×m~Ô†c*‚d¼Ò»S—R—»QÒʦMRƒ›ýI¢›ßHÏ7ᄳ\ ©¶uy?uŠ·„/'¨¸³²S•ö”•I¢óKÀ}ì[‚“˜>¬eÈB•õ”«žŽÓUuHȘM) MCoø¬rå±Èû).£ÒY[ÚWç|Cþ½îTGJ~Q« Ÿ›Jœ¥¾¬+x¶¾ËvYVÎÊQê”^<:¡ï…VëäWÛ¶MT±“—È}Óù«·†l\ž¿Æ„Áírv¨lϧQ’h¡ñ¨äx×/gŽT–8må1«4` ¢­P÷©cÿ\){õä$oŸ$Þ 4\&-jò‰ƒyMg¼O‘QGŸ¡^—­+áÌ4_Õxñ ú ˆ95gØ!<¼aäSÜ÷¤>vªn!'ܘ&úb÷=n¥~Ð…Ÿ—3«¨,|’vÄòB!NÃì`PvìÑ n¸GV¾9?VpãørËoíLí틚 „+¹’ñEƯüôV0«§`:Ó_ «øµImwz±bÀËxq«YŸ]œ.Ö†à¢e\ b=ëQHùMJKNÍ>äÉð]ùî4ZIòk¦ëä<·eà 'Žì'þņkŠø—,dX÷¸<V aŠ#¡oÙÑ3Ä›W3ÆŒ¾e:™¦W}~þ,£·ƒ…|ÚOa?ã­'5¨0ؤ±~RÎlçIÃå›hT·9–é$=è@w²²ß@^”dB«#AÔO«xû*Þ”TÖ#îS~×90ÛÔt&­Û¡ØCŽO"6;må{«VçäD«4#ËN ÃOQœ ÏqD€’'2͘kQV~aÍ]õ’7òÒï¹LŒÍñK‘,©Òf4›¶¶×Yp­ã&Ïa›{ÅNõ“?díö}Dì¼5.™RßÒ©l(ÉûR,pþ©(2Žm" bÔLŸÇ_É45ÏÆQa3qˆ›´™¬\ìÓù`i[:Ú¶››v ˜[,_ÅÃô[†’°Ë5ãÅt!(n!©%5¬ƒƒ'ZPÅÅžŒ¥ñ <5šöJ礣Ä«<¸6òçÑR_÷«:¿‚6—÷ØÄîV`õòž-„Ú—}—ð «³™×|iG&à•ö~©Ù&ƒ$b¯´ˆÆ-ŽA—vú0ëmN×TÁRçâ0PêãÚ#u>Æ#ñ´99÷‡XtÑUìa™{cû]Ô®/9î=¬ßÇÅðtI‰©ŸÖKÝâJK«VÊÀ‚Äq+ÙˆØ `d îïçžíŒ r‹Ô ’¼6û>¯ŽJS½*‹›­µ B>´ú‚[“ØžæyZ;#-í¤¨òãÂ!Xo;akW„'-ãYÊUùdñ¾¶â¦:tÛä"Àµ<‰9^>ìÊúNø$ñx-£´s3Ê/똜´~Ð\¶4¹Ì£”˜ð\ô~|f¾Ä VH@®fdyå¨`¤þj-9dÔMš5VA€ýj0Œš/ã^×$õ)Æ)cÓ·fJ¥qÕ&’ñ‹> •) ;ÆHévµ¿rÖ—ïö’í$ Ínîšyû^3p£Œýõ¦î¥•?mp'“É…Bu¸>æ–g)ï5ˆ_¾þq¡aö£li¼Ý]GSz)§Ó}µnÿ·Ü„'©¨xµ‹—Èïôþö‚ƒJ¦JVJÛ+ç 6%§AÙd—ökZkÑ9oçÎÛG°Ì:ž$ƒ::D7bmÜ/8\§ír‡_µÝç““UXÞØÆ£]èm±=¶…üÖ#‚Ĩ/bwùº|¦­Â|Á—ÝsØŸCáÐðòf®èFÉYIOÀ1®L|в8rˆ)h”)F ×¹–ÍK²8`∭Î0Óêí`GÅ•èE‰ÇeçÞÄü*.ëµËýù•Y±‡1H¾¬NDq·Ê‡*Õ~˜H`TŸ7®Ûª‡]ï¡}Ù[ƒÀ¬zÐÀ¥ ¾8ó_#¾±Í¾)B7ûÔ\è¥Ó€®îÝGÅ¿¼ÕCίFU³(Ö`Y¤üåhQHk¦ÎG^¢§jZ$w´ÔàôumäÎ-x¦ûcÖí¹†š·<‡¥fíäðzŒ~éÞ›³»_åÆoüо¢ˆR)a‘ékGÚ´°¼N¦É¼æoÁW¢Pó}Êïsk5Ç3¿Ü5Š‘¦êé.UÁXÜ€”q Df9(†. c ƒà  ©Š²×ƒ;2Ñ(z}S~ëðÁmYßÍÖÌÝÃ[j÷‰>/ùnòä%lE¦SyÒÏ:ø»a.°ƒwFÅŠ¾QŸÄÃ&ÇkYW’ s îû˜rÙ¬‰[J|+b>‘?€?Û6в@ŒyožMvÚÓðÊð6§N‡nʰÔθé00?Àî€Qs#©˜ööÀ´‹ÑäÛybüL»~ ìKÐZùÚg]Àª-ù„áè¨)‹ï¤ )Gœ ½€rä?Z\Ð/2Çþ *zì³JFŸYÐr÷µók…!÷HÓÆƒ‚r‰}`+,“,ÞæÙ ÃN[ô±!WŸjnЍG8ÝgL§îP¤ðiÌhã}K-¨×ºþ²j¨Ò«îÍÅYË»&[µ{X`T%) IJ–Ã\1>Íä›)©‰»NHç¹YÿËšIlÁ—8øýs”[¤Ž:Îj¬—Ãv9Í=߀›Zq†D,>çÍVRæaÌ^v/­ezŸY°<× ¸Ž †½CGÇ,j?oݲÙ<êí… lóóÿBÅŒ‚»J)pN›‹ ¹ŠB¹*þ¹:Îu¯ÆþµYoéðc÷4ÍÁ5ð¿ÕÈÖãˆ?ÏÛKó\Ša#¢X!÷ ¶×¨„~äBgÓÑ^ã®u®òZ@—ôm¨í7Šà˜;»0¾NÅØîò x CTÊQçˆÞÊO°q|f§d¹¸8ÊÅjkÔÒ˜$í”Wâù<Ù6Ö¥}Ú5áRxÛÊxå,dÞÄ?ñ¶©'— \pWêÒ«0Óô!ÐKbÍX“¶9v$üÔ%bð÷ÙE‹|±Qo¶Ïcî)Á…¡!‘,-fZ‹ÝF™‰ ª’t J·>4)¼õ>†ò¢ cx0•KÔÞGØrÝOè¹ß j‹ ÒCÃl.žÂ·‘¾#[ž²àÒü ¢?bÐ.ýºë0}ÍK ýøòxØARkúїʤWЮΥ5Ìq1]6WkþÉñî†z"›Ž ì…fûK2{òC¿{ÄTg4ÌïÂ* f’„|°Áì†êº` R[§ÉgÀw«ke{æâŸ;öÏÏÕèB¢!Ôu3¶Þ”u™ ƒ#ÆeÑÎ<æ;‘MEêžHç݉™Ü“lþä÷Œˆ+QZ„‡Üáy¾ˆ§î„ûÞë],‰åàLdî“2oQöù£)Áã9Nÿ‡ä«Ûoz:j`DÙ Ý î‡Äñªgtäê%Óܨæã§«Z?ë¯cÞPß|ÐÙ·;~69Î*ÙUž,§ÌHZMÜnzägÀy)·<@¼È£|ÜÇÐÁp6Û'@¦fÏqãà:æâ²9Df½ÏGª. ËQQBvŒHúžý³ub§9VÝÂßÒÙpc2‚kسv¨W»]Âã|¦¸N€’Ò@3ý¦IãQ½]å¤&u¦žG»6G>$æ‡Ðv#yó¼Ÿä7‘óDОÐlÚ DdèŠëß6–6¬I;Ç¡íâŸržùš Ê¶ÕÑ:´æˆ¹g³8\ôC¿6²Ñvøtt„ýâ¶ö±}Te\Xn¢Ô|‹ž.XÏYU¦R âu)ûøzW2‡›uZ]ê>Ô6[´‰5y蜿ƒ…\·ˆ3âw<¿1Ø}ÒŸ×'ÇN¼eëC}D†ŸŒØD“Z–ÔMg¤r„ÕxÓx™yÞ›p"`ÿdØ ƒÃý¬°= õƒr®Êk¥‘,ãìüçc0ÿ^£çc½h&KºïܨV‰‹pÒ1¾ÅÐ0•ª<ŸÊ´`Te»Åg.ܲfÁ²ý«Š 1À/U0_YÆú­½NÙNmDŸ„QäIsËÃá‹K'5r* ˆì=ü4a$d‹\à@Ïá¥ñø9Óš„z • JMè7k›H`ݦŽÂ­1œ$R‹’,ý3ì¾%Kû ^⊷lNqÒ4ý夿çLVã%Žù2-j#q/‡ñ‹…£PG6·ûåƒ _¯ì#½‘ ¤çkŠ¿ X•“š^̘Qq_o. ŒT÷o9Ïᙨ•T nC=«Xky.~UüÒ$õôœ˜GßJ ®Žî4Øn¦ª’Ôì¡D‡Qߊ‚¦èùƈøÀ!~ú|'°!§6b²J K˜ãûwY-y3üD+ñ;I[Í̹ìÛl=ÞV¼]'BlFG=ÊÎmµ•Ú;þIÙéo8iñ¯&¥.ø†:žúoÏ©cÃ{’w b+s»îSÙXm|¶1óø<ç>ìØÓ6Fºx¶‘íÄk·Ûõ˜æ 7ú†Û¶„oPæá¬¿»”±¡ž®_ų‘ ƒL†µi<ô[ëUM0Áû×}ný¨-¡2a‚2'ÃD0OëE:gør `ž-Z¿‘aȧ­ò9R&¶Y"yuš¤™u¦õ†¼·°ópé!~TŽ jO|#ÿ•Ã5ØTî<¼£Žÿó>–ƒk) å(Mï$!$牉_Õ–2‘,o¸Ú“ñTŒÄ•œ}V íw§óÊœ™ŒzØe«ÑŒõÌ?qÖZnãn5«6Avçñ€¸l‚·Óc˜ûAþ·ï o ½“˜Û8G.3–pêI¶8ÍäTeðMÔy±Û~’,òeþzê¢Ðþ„ 4uz^g¸’Š÷#}ôÇ+GIZmúààöFoE2“å¿2W¾Ï¶R§aSoÑ‘jk0‚ør: TkcØc»«µ&ù%h¥cò¹)ŒÒÎd¡ðí)±~¸Œ½*Ê <ŽÜ£Î¼`‘Ñ8H 0Ó­t[f›”IçmlèCg)ÄføÒ\ÓÉõªlŠ{ïÞ£Ï=+ö-uñYüç+d¤gF¤èDØmpœt7=§2é*Ù1ã”ê1®ÉøRÈû¸À­qÜ–mZ‡}çvÅA˜µßŸÍ©áôC§RZÁû%  Ô Á£,º§1·^ëaé1FÚ]0;hÀ 6Nµ~g~´Šþ¦~G³Ž€ÝÑÿDO›ÿð-bã¡tÂcÑ‚_†\gP|Þ·)ìž—¯ìKb!SªQG ò½­õ=5-áG„ðŽl¶Ê$.M¦ª¼Çv—¤û‰–öeá&'ƒìQªù­Ô ç$ö§`M}…¢›ñÔBšdÛõbÆGíî_ é+ÂÏ. Ñ}FT݆®G+¢¤¦lD©/zÖhSyUÆ€ <ðc9f¿ŒŠÀ‚üyúFKǃß[#G=sÖ¬ßðƒ)4îñæÕψmxb„ž‹É¯{$ïÆy £_8§°W®W_ûÒe¨óʵÝçÙb`ªêïr=i£¤r$†µSÈ¡mX7lh8´4ÄÁé"?ãÝ,Ë}=ÓÒL–d¹lñ×,©ª™Ìq·çùI,XÇ4y†DJWCp:Xu½bhé› Ù~U„ëé!; VRa™ÂÉ[^?ïÏ,ÝäÈÜ,ßñËÖT'âa²Ž÷tøºqvQñY$¥µð–T<#ºñ-º‚.$¤Ïy©€ÂÏW Ù†Œ9Â_УI׎fGÄ“E6‡báGzt&Ä} ÝÌáæK±ë‰,mu€3šS:!]\Æ|QgûºFÿ·éévÕÓîF€æ†iúÊìzŒý3I#¦ŒWé®·ELu–š«êÐ)ŽÄuÏ¢e2¯XˆÁ'˜‡¯s ­NN6/1ÚžÝú¿[o]HByk}9æÞÈÃùFëÌzYû Ú²Mf‹Ê†á ¶ö~ê›߲̓ŽLðµþÊÉÑÞíL8-ÕÃïM#Sì˜F@ez$²ÍΈÑ2l¿;]¾%îIâãÑLuöÄvŽþ9¹øRAt•-¢à/?·•h‘à—\ ¿¹©²F.ÊXã­£õ Øå¥(î­¡‚ƒ'x!šbið ž0Æ÷†W¬ºäm2E˜‹®ú´{æº÷Ké¦}•fH¾ Bbk¶‹´º›xg,¹sÉ=XÂQŠ¿e¶µnB EÚ¡5ó©)èhnJ¦ = Æ!Pô™ó‚´7sÉÊ…6NÌmZ¢vL8S<ŒN¢öd—I“P8»‡~r\=?]ÑÜ&à$‡g6s7U³zN{ÖZÌlŸÚÝhæLÈ3¯vÕ2øŒiñ‹°Åía‰Qm᪳´“í0¬ÁÕñëSSÜÆèÖÁ¤jŒš‚zè<¹ÉV_Ç/Ý:C›Pº›`åcŠËæÛ!ÛÌiê%#ÐÞ/7Ÿ43-r¢@3½hçYežÔz¹!íÒ‘š·¾ ®+‡Ïw׋è=I~]“x1u‡^Å åÖ|5^Úkåz%ëÄÓó5V`aMðþ~NÌ_.Ô¢¥ò—“»ZŽ!éäЩ8ˆ3ÕXCŸÛ}Wž0È|ªLh‹-ƒµÄg‡š ®õ‹²o"G0\ëÊ(ê!_–1w÷íI¿DyDµF޽Õ R,ÝÑôÏA$x¿Ë#<• =œGy) XËR^˵ +W²)%HWúhƒ“lBû¥Æâ±T–ö/pË.-º¾”ã}-S]BzZ3ÿœ/—?hÏ’ç«: ³™ê¼Æš²JÔSŽq¤:QÀ½£æÐD—{ã—g~ÂŒÊ~d›çƒ°ï[!5cØþuSY~Ü…°„Ü¥±áX§4“3äd=4®òä/g,ƒ¯ã` nVapZžÎTiïÅû¨±^ù´£±’ž¸»$³©èŒŠ«M)É=Qo¯L¼Р¹NôÑJLõõ3ßëÓëLjBPVc|d¹X£ì[ˆ6ÒŽaäHÍHxÿÍ:ƒ¿*IžÇ;5œ“Â&'sŽ ÛžÄÑŸaÀ BmÌ2g¤Çþ„Ûd0·´ç…:®ñùGF8KûÒe+¸ –Ü ‹,izr˃&ÑG`IKþÔÔÕÍÅ´ïV*tD'¯Ö›rάÌ]ŠŒè”@wf[@>Çk¿–øÍв¸§#ð¶©¢–LßÅ!lÕ€‹LšÌ’ã4­&DmXÕæ‡/‹¦Xö[¡< V9ÿ˜·yXþE{+t¸…%öD/•ÛR§'![f’|‘„ük2y•je±¬—„ BÞñz=v[Â,sTLù£<¤Òw2 x·%[SvW&Oí#~crÁÄl„½ 2†bÓM?dÿבüɈžÑþŠœRHÌ8JbØ'¨p\þƒÇÀ¦p“Ïı9åèì…æ@yÊi Ó„9ÿ´½}7]0wndÉ\jòÙÛ¬ïT|àòm{Î|Ò×»¢åÒc(µ½~B-çr&Öhëvt_ pyx¦0½fëçÝÛìU.,™¸Œ ”ñV4ÁW‰Ê +o¿:yÓHÓ™Ö!ê@ƒ‚ç è|d§[”¡NIþÜ*DÍÔ`%žýͺ3óheœàY0öæ;¢@š/¸O ,|¬!TPŽìËø…ï .chІŸ"o®· ™ã¯ËÃ}{pÂfyt€‚!d“Š—/òcï^y¨Ó±Wi¼U¯·;oÔe¨;£«ëBa(¤üpSâ|\H`áØYk‚Õïû—/õ€Oø¿NÄZS‰‡¥gJ;"·§~âl(°( )×XýýÍ^ݱે º;FC¿OöDWÈèä1ezœïÕ MÕ¡Õ`(Ÿ{ÓÜ~‚º® šA±Ž{,ƒÒ´t ¸ŒS~ˆ¼›[œ®¾l©ÝÊá[Ú_°v‡·êE›Üüð=äçÎ cñÓ½ÍÚ÷ëÓÖoâ/£&uÐB$åˆ/Y ž£ÞèM䮯høÓ=¹5O:«a†ëÞ,™WÞ•Ù!£ ;Á´w"Âkœ¼È…ÒF[ª5Ï×€&‹‘BÚ`Ñ’œ°bYÊÏšëù Õ/Eü:ùàà •uüÉ4ä'¥ÌC¯‹øØ—@›ÞÛnyZéNhm]žÕ΋–z¦ÃE3?õZTøÑj;õ-œÈ@Ò[ª <šÎ³ÁÎÊÈ~bzµ÷ÀÒù£+C.4‚¥\=Î #J¨üôR[㫃ÜÏ$lª£=µü_, :“'Ô–”Ýl‘;×åbì³Ämtá$Åxi~tŽt/÷~… M¯Ý™Á›V݇±Jb?e£n½Âê(Û:¯?}Â]Ð5ö|3šúöÌ^tÅhï×üÒa:4!+Ã;7D:Šn¾Ø€%@8— ®s&Ÿ»uCœ?èížPŸ™œZü@¦›ˆW}˜YXmõ©6§¤$TˆEv®鋉^ ;Õ^z<$ÍãF <ù£^  %‚•NR!‹lߦ•Šé,ó^V‡‘¤00—³‡òfE‘΀ïÃà°pOÊWÍ3yaâåaAöëoߎÞ¤•GØÊZ [÷|FK žHa·êb °õÛ-²ÍN“Br¹"úpV_VÑ6•…fÁšn^t+5ØÑá×LŒ}s¬w„g³_Rý6W2ÔQ̘©iÿ\œäÂ/±g±6j?Ž@Ïä›,WfFís/¦m¯Ñ÷(3R¦äø0qT—¹A*æ~[,G ìÒéçVd/£ºÁÂä¤’îæ›øg­ŠºYŽÞàÙùô•ámú“õ„U‚ùWÿ’€’x â>Aoñ×WYaMûÎŽœèÿÚÛ'Øè^Ín¸ýBuA+gÀ4¥ïsåú‚/ª”®b¸rB\c¡ÚÙÇ›À‡ÅíÛn8ñhÞÖ] ÷IͰ6˜DñT)ª•,OQâñ…íK{­N‘Ñs‡l! S:ÖÜoX "ß,9¾Õï`Pºf8ž×Ų‚qê[¬“9fzV*U4š‹ÛíV°Ap°_Ã=‰ÊÙ†*|ÁÔ'_ìcô ª+a{Ü©(ŠÛŸÍSèhÍÙ'/˜­ÈW‘µ¾oÛ@ÁÜí Eΰû¹” Ï/\QêÔß^Yl#—ÛI×òÚ+=PBèÇòkõ¼ |èønâ›L@rÙžÄÑÙ_ùŒš?oF¥`ÿ”a.b6³Ø6‘y®^ï„ÖØˆÙ't¹ü•}À¶p²\å`÷õâçoÞ!§­Z7_XÍ;\°ï0@n;f<,D¤²[Ý{HÎó¾Y¤hô þ\§;ÉjŸ¼Â0ã;Št>Ñæíc¸Ü=²¬dýÚ|b4òØRæp‡£‰ÞÊqÛîú|\£)C8N迟Úr-yÃÊQZÎ÷óçBÃ1çåÙ~ªPr ¬ÌöÔ‰„MY Æ(•­ÒŽ~£ó6:Z”ÃÉ%‹¦¥8¬7¦Aœ‰P Í‹é—c"3˪½²¸ŸÃQÁåF¼Ÿ|¼¾Õ!­>e~ìζקÖa²^þAk¡ˆÛï3Œæµ\u%Lµ;ÉÅEÖQ§;nß¶Ÿ‰}4¬²ËiJ©ŠbÔž"ï6ë1÷£5mƒŸVl?7â»+Déy¹÷"mÜ®::Apd€Þ×ïi“=i(iH³§QyßÖaÜôÓŽã·-ÍŸRDñˆ-•£Ý'¹+C«F~æÃc;|¾r ñ¼Nh­,¢ix@‚IúôtA~–0àChnûY‘¹ý›#묹¡Ò‚Çã†Ãåã'«ÁxsÌJôÞÍ:È…ÔV•gÅÃÝ!º¥ùÖŸÓÙØé®J‚Úâàæ3SÝßûX™S92öÒO£ âæAiÏŸ-«_ù‚?ý|i¶&ÿV!Ç99ŸoŒ°n³.‡ldWeGI'bây=¾\¬Y /×~°wFp›úÒ5D†m@¨$'ûÚGQx¹4î>Ë«ÜðÆ áeï±"<ѯ|þwP½Ôô—VQæ Q` `¾ï½\G¢£“}ÖH`ù©%É ÛrWF?ó±¨4u‡©d„Žú ”5ê–Šz¶ðaµ°!çEQj™¨K ºjdPŠM*¸¿L·;(‘Š6BˆßïS=»Tÿxa¦ÂJ0í(ý\Õ,Âã—x_;ÄÝ{¬€¤_ñ%ZãßÌÕºiâÔ·¦wO0¹I¢•®n© ô¨VððÕÍ\$+=¬:‰øbØ(cLçÒjŠð‘àwZ³¦£ÚV‘k`'}ÛbÓñ¯ØÚíC!†ùÌ~¼5Oô‚¦¤¥]ŒÐ²ä’þzÙ塵˜¥*¤Hœ‰·qŽŸ5d<Êc²Õܦq¿j‡!e„,nÕ;çŸîZ³M½¢ŽÛ/±ŽÌMÙ0…VG+à¡‘@àGISxi/IɪkT"Fßð‹3~‹¯Ï”œ# Ã+<£Âv..5Ùø† ¶ô¡<+f\ý¨[‡ŽhiÚÞz†§–©û‚¢ä:.¤¿‘¼ž²«;Õ†}Xáé\U‡¥KÅH]#VÓÎ8²å¾ts‹ã­ÿþ/µV{ŸSHÇõ˜º76áæ)›`R ¾W5ƒü¶Z¯xÌdßV¬É-•O Ô°Ê%7K¢øâpxAn«£¶<ÕÏûnP¨ªœV†›ÅGymÌö.ŸÃ¿èøã#¶¾$à=êI @SöÙ:™ÝY äß|©²îë|#¦Ô‹-µ¸Ô¢6; Â+‚߯ÿ ?Ô Æ´¬ÌGuWx%Š}\Úgð¢s©Þ¥aüb¼ Õ*Evùóµ¾DT>8 ŸéLiÙn+h°º”ÎþÁó÷‡è(3Ôfg’׌‚HºoĪtŠ»ö̪*mÀu£ÑM‘‰Ë]&‚xÔÖ ^¥mb‰š4‚´+¬'+}ºïÏQ"ôOâtÉ)àfZtçzŽö›zgbß0x„…h…æg]]‹]o¬Ì ®[ Ûë³ÜøM´Ûž¬Ça]Ø+qàŸˆgvýL^I>mP6àøž–Í®ÚLšàcÆw¹Ô¹M_ˆ!È<àxÝ®¼ÿÉùMKGQ†V@©›8!ÃYJSÍÉSYX¸ÞYGñ0)±õ")<+Wë­+a¢à7R!7>Ô6Ç768%žvÛ/­%‰žã`é@=Ï q%ÆØÑÖ^o€* ~®߈‹»âÜÍ Š$&¸µãBÈ`Ê1­(N˜°×éGÀ¥À½\¯\¤Û·aìÝiÛå+2G§~íN“2xv»€yIŸžøÅzgYá.'åµÙ³¿@ k7y¢Ã,{ê¡Æ wÄc¥%õ{¢9˜ ¹ÙÕäAGRðŠvm³cYˆît–°’>µ{—›žèÛöëƒ*é:Ü~„ùÛX™eËÒ‰ß0¦<‹ß  el{´°Dµ´øiÖ.ò õeG™ Ö4Ö UÜîиayÙú6mŸ†ÁâáKÖ~žÜb¿Nz5µNŸüWrTŽqÙ+Çû(lp_¯™%]&?{Ü/ƒRTUm%àzD0T§'–2t¶T“™¤Ã…°WÝCñ,tmaôèï†WtÓ‘˜Üá±U±ï+ø7ÍÐ1xµÉQÓ¤÷¨qbd5Ö§ÏnfYù=¿èbÏœîhqÛ[ý8Šh—X-VŠ‘+û šÏè²êœ}¸“zu„u",E>?qä\ †s¾rO&õ—N`RÛ‚g4eÓfomÀX䑇ëFÅzqÛš›b®ÖœÕÉÄå·N…¶xžRÎV£Ùy‚¶ú—>Ñà@$÷<.|þQìø‘ê‚öПIZ@Ñô,ïçG2óò¿q¼oǺ.öãGʈ@X²‚ B&Ü»Ùd…ý®þZx–\É»ÒAq&¦Î:Áâ2Õ™¦±Ë`¾ž"µZ’Ág 䢸á); ®zEˆÙCTJ $øª6‚*y¨%Ù"¨ò¾á^õ‚ÜŒ{Bìozß%šò${ʼÁ¥Æ›‹gKegp7 ÷†gwoÊø’ž»Â­M“(Ø#í¦ÇøÈw±4B¸Ð´Dk8p‚°¶pKœV‰­g|hfó¦á\»F¤.‡ñó®?JßúŽèÜUÓ‘3¼$§)ühðÝÜ7©a'“#¼2e3>*JO#m'käbÒögè%ÔˆÇÈÂ6y#¹\|r¾ÔçM<èx¼ƒPýê°)¦xÅ)… Ïã¶°etð΀ÚÉrÛ°8EÈÃó l‚aEˬ‚{ ÑFDfÂŽa¶µ¶Þä´uÏÐËÕm$\:;ÑÛ™2œ·‰­£´]ü†:cè €cR“óEßlq§OCJ LÁ’8PQÜT+礓‰¡×]tÈOê©zvö¹V’v÷„tˆ#¨¦‹×?û62^-wîrt{¨Qî‡ÏIž ¯}f‘=ë+›ûán§Õaþc›"S@¼ç‡ú°ä\zÍÆH¨Ûù:²uƒ¯üßÂùyS¿çOcÁ—ZΙÓÒ ÚDF@²G(—ƒ £¢ª¥õßÞ?Ï"Nº^ê À9ˆÐáÊÅØ@Ìn&Ф‹o¸– @òH°¦¥È·Aô¥'Ã]{’";Ÿ‰C#¤,Àœð·â?ôY`¹¦›÷yÔ+´¡š¯щWå<õÙu5 V ±ÎµdÐmþª?Rƒö «Þè¾¹ô4ñÁº‡~ŒíA<ˆèr1æ¿ ‰¬)è{‚çaTŠ¿U‚ÎrÈqÁ!¿îm7±p–é¬@[)`Oýll¾­†3\™w <Žv ;Ÿ{ÉÕºX–\¹#Åýz¼NðèæD^Ÿ_1B0J©¹¿"®¥DK¹·÷èi™^!ìÁ}1šê!ÆÅÛë!Z*?hecóe_´Ñ_+Œ…Œ"Ú³d mÜpbðø:JpnîX6²âhtüÖ¿„}AÿZ•пdÄ è¦ºa4ö°BÞG=1YäÕázì}éJ*ŒÓ·°ý2¡K‡ÌjøD±Éá•ÖluÀî~‚[ó‰Å1á\Ì"üËÍÔ°fW)ðÃÐ½ÛÆÒ`³cŒ'øùŒÝ„Þ°ögôîD¯Ìq§ö+„3sÊ*Ùä4©.ó}‹Ä‚ª ")©9Zî bóÖãP0É<ÁUž&9“»NRäã ÈCã(£î±>žUíWMêÊzÂ_É:†(ÑåÅxÙ_ø`$Û tx ´´ÖÌ´NÙ×Á%¥'[ê-¥g« DRË)bá kR .°Žcs±CalÅ::7vyýö—ñv¡ËÖ¦¸ãš¾’ЇN<âA{݆0œd®'e5xxØ=:7ŸåŸéÈÏÝ•+0P0ËÚE ³\;¤të áÐ*ÒLȺ•ânúƒ_N¤—3}4ds>jt, µTøwÆö­äŸcÖë ÙÏpˆžàVªjÒ,wÞ_A¿6mS‹“(ØÑNÿƹe Sï»LósywÖ×=[ü ”% 3žëÛÏXv//AµÞ´ôFSmßÕ­âîMd5Ϥ~ÈÍÄqôºjNGz¸¹¦æúÜ¡’–b2?:üãÏM,åô8ñ€ž ¯Ñ²XãÈù‘©™p2ãÝb?hF•0]•"žoÛp­eèîµwMkeg]žý=£ºìžÍoüŠ·4æÜµ1ùÃ9›Ûè@Vª²¥æÔ8XÁÝ”×H6ÞG2³ÈL«EªMD–ä·ßÀÉc¥;±¬l Ô¾áÙ-¢áJ+£5ZGSw˜*@çXüpàŸ"Üíîöƒøu™Y>µ‚MбC~,¨#N 6yA¯R5¬úò5ñAlhv¨R* ,ÅÜ“ŠF-†Af𥼵jm=,}u׸ÆZú‰8_[êdkÙm Ksž„¦PCEeA'ÙF`‰# ™Ìмܜ OÙV½8™ Ô‚°f'ø0/Žu>¬ÔbšìÂF"ÅŸÀ/ ¹?µ!ómä·ÏÒö ˜ Âr^ ÀG†O³Þ9yrcÖŸuõ—)ÑÒ_ hx£r&†K-ûª‚ÉR(âG›è­sV~¼ËȤ:?Õ•Ó³î¬Ö–§âc«¥J–‡óá;8;g¾d4²}ŽO‡ÿãïþÅu£õ^-ºüh¬=˜áÖóDÝõ±ÃWÔXkgæ&Ò71ßæ|/p¢¦ÑHÖ7&ÔAƒÅ¨)#ã)fèLm«mŠ •JµÖØSûK‡XšØ ÐZbô/³ Õäo%†®¹ŸsÌ¡Ôø3B 9…aM´v¶±N†”@ÖKm9ª5œÕ=fT¿j½SÀoÃcâ_{éNªº«ì³'ý.£-èÆèN{º3¬†Z@΄5‚]×°aÅSyáTŠXÝR»*ìN”¯šSõ1»_MxSÛp¿ã$ ÆvEXù¥¥y€¦ªŸÑ¼{VD,Þ(úвŠm€W R넪c¿ÂzUÔ)^æÍ€ä¬ãÙÉ:Ø`”ÆÌ Ñ[ÿ@•£@¿_"€$å%}3²ÖÓÖj!ÎÔíd(2¨#jã‡M¦M¦¥ÂÌb'©Ä8Òe Ks9xíSZg@0WÒq«u¯ŽpéïСdeˆ‘(È„ã98©_°wô‰ëÒb‰ŠižäŒÞæ]f“sa’‰æèÓÓNá”ÊiÊ4£Ð†k ¹!¿âB­·ÓÚ¸ùÕ¼k5íHßgžx ÆY­ûÇ!É´Y^½o²iÖïå íz»íðC¸C§¸‘Èb‰‡‰¿£‹&î¼5ÙʬàkañÓjàváy1§8œG»G‘|çÖ6ÒLŶ?VnZͻŋ›Ž¦³M üD¿=Ë®ðùõ{zŽÞˆã絑£s·sqèÒÎj`|• ¬fe† Ñ'híÞý©m{£«$·óTª¨â<µËâ·Ý¼®R)_ÔÒN6g’mì *K™‰#™ # ´2ü2𥴣›’s}mˆó)ËL( ‡i=ynuŸ$S‚ Ï]´DhìOC¿˜ã\öŒMÇmÅŽ¾1™™kI§õÜÔYˆ‘–]Ò S"çÌïF mÛWÛýˆ?óIš“‰Û à6pÉŸ ØJ=ë•|¯ö,¿O9­7GŠûÏ;¼¤ 1Ó’t-Ô“’Hž—¨îoÉ$ó¤3,‚íMk)—à5mk²±“FU¢æC’#MhA[Î4¾˜K^Úd Útª?ƒs°¨Rš+R.ÂæN¬-¨±~3Ã9/Äø} ž\·‡Æœ¢ÅiÓ“KŸ‹™¼Šˆ ý}º×2\I 6J–¥[àJH·ÒE6H¨ÿ&EKÍŠîý¸]1W‹Þ¬Œïuž5J+ÐâÿÉ÷ù6œZ¶óZ[ÎR« IÆ‹}=HÅDè ¾úŒXh…2´ÿ’æcR¿ÞPØ™VšÌ¢žÌÊêyCV ] ÖŒXºðëñQù+3úT@óHgÕE+†·8 ¼VÅr•:‡bya.ø 4p&¬M/ÿ©¸‚`Á/ßu/¨ÇO8&+%§’²G?sòe3(?À½§ýƃ"mŸÛ¡¥!͈\ˆ"GCëVÁͱ„ ög”„_Wc¿œÅ-(èw)t@vxä½:ÀƒtH;¶Ü+Hl¨¥|—?é“dŤ>D¯è®»µ?Ö»®hý¸ó'2kïùÎå÷×ä²óUz^Ážh‘¹3:Ë¢dV†ã‰uú•’@Ï*‘Ë.u.׉àIJù=SýG¾O:YŒìÆV*õGLÚ}7Zötâ†Ä°î^ÃÒ›à;–P†T1ÍŽÈ‹ŸRš@»pa,•‡z'7 ½Ÿ)í¡–¶To{E„î^ŽÏÍ+6ጜÍÝy¨yÎß ¦bÕÁ£·Ë–¦×tÃÕ¡NûxܤñÎòºèó`ƒ@]µÇ€—ß÷"º§?ˆËDì &n²æÄi•u‘~ƒCBA6 Í¯få„Ùí»§~ñ¦)‡Ã• )³£œ.wÀ\ÿ¢SYÉñKÈó’ƒâãòêKÞCAx_†¸¬Bo¬áG¹vÌŒ§”'*¦†ìq+œØ¹S!¶E<±¤©ªÊB»Í離㙆!Ÿy4lB«Ý´Í –Ï}ˆ’PÄ(j¸Wú)…mK£ÂÛŽ¬}—ESšúŒ¨',}1Ƨyý¸Ç ׯi(§ãc廆ž¯¾üo´ú5x#Ÿ’z¥—«É2NÃäÅ䃸8¾äëû´K¾ô8W;þK8²»ó!@d„j¥–ÕýÖûjyã°03ßvE¤Ž_A¥)?ëåH½cgîpùyºî–kb¿‡ žy­¢ŠµÄË÷ò.1˜orµÏÅ&í÷é&ÜËA9vÍcÃEêõ±BÒÖ¯ÇñRg´ ‰ýL^MÛŠiØ^(‡ƒª –%’.PF¼g¥¨_ÜÖvÌêË7È™6;]èÐ ¬K™”òƒód³L>ާ,hó»~…øŒû<ì¢@%­©]æ|tø¼PT©u< <9¡°Ÿ„ÞIP…ß‘SoÎꀢýÑh°ÀO(GÁ>²C kuýd§Ùó}w*.™îèA¤ Ÿt¾Ògß®ˆ.Éx›s%Ü`™1e“g†8ôøŠ¸9Ý9~ôß#„È~fp3gLPIÁþ?âü ÷rO Õ´·aV¿³l aHâá‹:iæqˆsY¶I©c)€·S2ppScø7~TuÍ5‡$½ÙF“Dµ„Ÿ¢’0}¿¯/Í"`àÈÞ×Ê:oOB_JAÊµŠ˜æ¤ErÕ݃+ê²ÅTÊéÁ|{Ò-<lse(0Á‚*Iqe=𼾤Ä|ž­òA•?ŒHÅ[~³x«:Ké&>{Ócó{‚|uLì±¼×sê÷ú4¡–ã×^GëóÝÁ?~yÇç+ûóYÚÓš~ÓÂÆ < ±çÂ9$kaqN1)œ‰jÏ Ááˆ/Æëzf§3à­`ú$gÏf'}¯¸¼CÌËÌjâ[Ô+r~ ¨óšÃAÞrmwSû"ì"WWiݪb ƒXl4üÐ8b1Ôv,_¯äÔC›2I®Ùp¨Þ_w3#+”ÑD Ï/ïÐ{üm5%{¦÷â(×u.\ä± YÝ@[šQÄ1!¼ÌGý¿f&ZpæMÓu]¶;†D@P³žÑéÁ¤{\ò!¯xá¤U¹dn¯G‰S“6Fií_xÈŠšÿ4ªàÚpœ¡p)ßQþÒIeÚeË}îÂ÷Ú™ñ!"â Bd»Ýà*QÆpB%öò<nÆT›~û¼‡ˆÒY ܵY¾Q)Âûo*‹1HÐG–Ksç­ôúýc{®ª\W ¯Mÿسü‡º-`}ùö‚Ëûa†OAm®ú÷ë*†yáe4ÑcO¿–‡Mõ>JRA_õ(ü•* ·¢à³B:I9×îäd?’´˜››.Ì]HÌnÔáf Eâ—ZÛ¨fEÈqÂ)?åUGê´9Ïj˾ßÁ˜Õ=ʉ¦tBmœ"4èÉIþø,ÏRA ]¼„¡(IÉvô>l²5 jáW.U‚›MÌMÀ-«ê·Â¿ëцÞæÓ¬îÌ$`¦_;¹šñä ßæ½ö×—KÈÔõ,jÑd¿.šÏMìÆfÝ+Ý}à¶uu^¹ppÌ3ù&Úý4œ?œendstream endobj 330 0 obj << /Filter /FlateDecode /Length1 2478 /Length2 17349 /Length3 0 /Length 18810 >> stream xÚŒ÷PhÚŠbÁÝÆÝÝÝÝ-8ww‡Ü]‚{ ¸»Cp‚{ÐÜOÏìì$ûß[uNQý¼î_CIª¢Î(jî` ”r°wedebáˆ+jh°²XXØ™XXØà))5¬]mÿ¥ÃSj]¬ìùþwš¸‚h&® AE{€œ›-€•ÀÊÅÇÊÍÇÂ`caáý¯ ƒ3@ÂÄÝÚ Ès°ºÀSŠ;8z9[[Z¹‚üü÷#€ÆŒÀÊËËÍð·:@ÔèlmfbP4qµÚ<š™ØÔ̬®^ÿc‚FÀÊÕÕ‘™ÙÃÃÉÄÎ…ÉÁÙRˆ–àaíjPºÝ怿R(™ØÿI ž aeíò†ºƒ…«‡‰3"ØZ›í]@*nöæ@gÈ;@]V ì´ÿ°ÂÿÀÊÄú¯¹´ÿ2dmÿ·²‰™™ƒ£‰½—µ½%ÀÂÚP–R`rõte˜Ø›ÿ%hbëâÒ7q7±¶51 üº @JT`ÊðŸü\Ìœ­]]˜\¬mÿÊ‘ù/3 2KÚ›‹;ØÙí]]àÿŠOÂÚhª»ó?͵±wð°÷ù/²°¶7·ø+ s7GfM{k'7 ¬Ä?2 üoš%ÐÀÉÂÂÂÃÎ:€žfVÌ9ÐðrþÍdý‹ ÊÁÏÇÑÁ`Jègmý÷q1q\Ý€~>2þÁ³²Ì­Í\¦@Kk{øßÖAd Å0¨ÿÎÖž}Ðø±Xþúù÷“hÂÌìm½~‹ÿÝbf)Yu5EúRþ—)&æà ðaä0²±³8Ù¹\¼\¿ÿµ¢bbýOhÊÚ[8xÿ,¨Jÿ ØýŸ  ùg=hÿkKÉ4·@Íï1ÏÂÉbúÅúÿyØÿVùÿ7ãYùóÿ‘”›­íß|šÿüÿðMì¬m½þ‘Í­›+h@›`ÿEµÿY\E ¹µ›Ýÿåʺš€vAÔÞÒößBZ»HY{ÍU¬]ͬþžÿ5ÿÚ3[k{ Šƒ‹õ_—ÀÈÊÂòx å2³]ÐHþÍ‚vç=JÚ›9˜ÿµdlœ\gg/xÐ$±qr|XAÛhôü{ˆÌLö® (;?€…ƒ3ü_-åâ0‹þEúâ0‹ýFÜfñ߈À,ññ˜%ÿEÜìfÙßdEá7YQü@V”~#å€Yí7ÙTÿ8Ì¿(jÍ/ȃɿˆ• äÞÄÅÌTU[sào)gÓ߈„œMÌl€ Ëoáú›Îþ/ý?£û/ªÙ¿ˆdÌÌÁÔµÿR88þ¢ØÙý¨ÌæÿBvPXæ¶¶&ÎH€¢ø!¨ÌÀÿqÊõßÉ ´¿U@E²ø­ ×ÂÚý±Üþô±ümÄ·üë‰þ)ŠÝêw& âZy9ZíÿѬÿ€ H?üA °ù‚Šó;b.Plÿáß|P)í~CЭbþíŠdË4ú¿ërmïfgú×ѱü#$Ðevø4ȦÃZ¬¬ D³A>AOýÿ4›ƒõêÿ¶t!™Π'íQ®¿iÖæ¸UÖé·¨ˆNn®@sÓ?ÚÅ ¢þQiVP2¿+ÁùºÿQhN¸ èðÿ늋­‰‹Õ&@‘üŽ tR™]­œL(UW‡?@6Ü~Ï1Èçßo¼‹™ƒóŸõ5Íýª§Ç;2êùyõú‚jíý;f%o ó"øŸceææ *¶ëßï è’ýÿýõôšÁ¯,:˜ñ‡~hí¸¯%ð`ÜŸœ£Ü×N§eôYqît{D†I¡­ÍÞt¾MíC]Û•¤¹Y%yñ9im„‰hKRmò}6JP›Ýo‡_žÁš.>ý2HGȨ!ràûâä«dÙ Þ-G™ïäÆƒ¬Rˆqï1 íùe°âûDøâ¾êA-—<ÂsÅ7ÆXÍïƒJç) LspÉ ]‰`éÐz¢ÌßÜΡçM¿‘È%ÐÃûƲöÑÛbûô°à½^¥ÁæÒƒG§‡Kyƒ>1Kå#v”*‡³äSVòqSp)—…– lsbÄw¼›ôŒO_A‡ÅÖy…Wz‚¯ý sN?"\ö¾º±#]ƒã ò.½…‡‡”t¡rKÉ€áÁHÜ]¤3½¹¢{Œ’—ÏÁö ÔîÉüÉYô¾÷˜¾ÅüÖZ³ØºÄK„“¦"4áõOoñ‡¬rŠzŸþÓ§ŽsžžêC•’çnÈð0Å)(¨Å™_¹)Gnê18ÞÃÕò¶›‚Á½ï¥ÕÅ[•ÒüÎätyðÊqV0¡—Î#ÿäíáAØäe›<]"ËiŠÞLòÁ,áL« 9#š!‰;¯xq´B¾žïž\Dî»yÈl»Ô)ø¤bÄá]¯QEÁ“9¹%}Ãã‰`ó‘ÐI4Ô¼^N„I@Ksš6a´Ò f´ §.óꮀ^ÃPñQqAÄ`86äägýñ)ªüXY„>Ž£…»[¤{Щ(¸VŽ6Í‘JúÕÙ”ØbÏ£c¿j¥ú„-Õ2äË¿DMÆ ¨Ï©·ô¼¡ÄU}¼©ØÑŸ ìOZ1¨#÷OŸÐ›ëÕ[öó©ýØQ?¤M%¡Ÿ0÷,‹ ½i¿mŸŒ—°=LÅïÁ¯+a³»Öäfñ“ÑËTlþê¸ IÓºýA¬áñýGÜèœbó§]ËönMæ„Ðé“ó>FU¼£…‹D/—HåaÞ~ƒcæÚ.+ßé¦ûR5Q¨Ñ:ùyH»lÛ[Ã5*íµ@œ˜õaâæÂŸ/vRøë•D9iÝ« £ìñRòþ²ØáŸ¹E°5¸Eן”U£™ø?­Ç”£·שÏå÷kH¼ÏÅ<ø0¨«s#¹äVIÒQÄ9Üîø=^L¶£d» Z€ý\žÏí¨ÚËÁb.“1¿ÀñÓMÿÉC·³?53w?‡­CßuæÛèXêjÑÇÆla«ëŒèÓìíWº"Š@xó¡ÏÆÑ•0ݬ(¾ T²àüËrÚO徚³Cå'-p *1$šŠ]ïQçÍÓúJó«²²9'¯:è ¾Ÿàî¥<±yKÃÞÁA£ÅŸ×`›qŠÄ×\›‘úQßÊšì*9ü­y½Pi¶0‡¯¿¨AÊPM8•1'%çW_‰v(Œa6éÓG:VK»C¶žæ’ü¼ön‘Ê÷uÜÞßM¼gY ÐF53meü¼ Š‘ô Ö¥n©¸;挔2 ´ÿÐŶӹ½h†yïÁŠû|?qÄhš'k‘ÝëÕÒÀ÷ibÉb± |í8&iÿø²ä©ÌÂò”²Û±àIÀú’D™˜†Ú§K°ó…mzªçÀøNª:Pl¡Ìa.¶-á Ã*¤7í\¯$ádå:%¾:\ÙgV*=ªßd;K{$èé~šŸs=»XÅNt~„>_kiÌ{}¬(1Ë ›$טÝP>OÅž ¿®n·÷¸*ÁàNM-«Bü³8”a-ç /ùµèÙ6½ð°Ø ÅáÚ0í±Hb_)6õdثؠt"£sâ„FAxʶ®u J¨ƒMdÙ!jÀT¥$Y–ÛeûŠîÖc¹ñ…Ú¬¡11X#MJõ5´]Æ#‚<5ŠüεPZ¶ä–ŠŸâ‘O´:»4›²×û¼-aÆŸ †Ø:±Ôßn¤°™œ¬ÒûßÝéäýz² 6©(ó˜XQªÑtœ,5®®¾ÞÉTä­‡Þ3”³üfêAº“†8Ñá24¦ñ-¬Z¢Ò4x”OÛ‰Ô Àz¨À£=Éøí¨¸ æ#õ~Ÿñ–•!t¢†Fœl¥½LÐvïk!Zçdâ¯OwýùÆèë·‹»Aé·Këê2bÇÈMdA¨J]ÖÖƒÛʨ|ÍîÙª2æSåÇwð”ÆT§„>¡4¸òƒ|Lâ§Ö“ò¼…Ýž2ƒŒî;’ÏóžFœÄ‘ûqù+mÏÑ™ ×¹¥æ;¶œÔ¦ã¦ëN ©2·L夺#žÁm8%%û;½é_ï`œÜ&‰›‡ë“!º®{-Ÿ~Ì›3CB0Á8œùÓ t¦¢o·u¡Œu1ïÇ›àYÏüPåÁNiR/|Dñg\w‰Œ…hˆ¹Mã~x¨¾è¿²ÑÁÐË ¿­–Ò<­²v»ç)‚ë õ} ¨6¡«™4?ÔDˆ‡‚¡er•%´rJXz$¦cÌw:l«¬: UÂÖ„d"‰ÛâFäUvýªÏîû“Ó™òªÕqhùõi™f3E;ÐIBa°³ã“ÏÚ™qfÒˆ¹G2ïR(’´Ü›7ssö‘ u—EhÔ XƲâT1OlñÖ§¸!=Ô‰ÈOàŰÜ›>µ ŽhýwZ´”èÛG6ckì!¡§ÅÏâö~BÍzoÎ#u>íÎ8½šzo¼’y‹óÒ5Ûn ¼«B[ÆxN]“ÌÁÅÛþ?=wRãÔÃ|³-xI–ª„{t.™ÜFÄ<-¤M%Ÿ™<´ùŸÂ2zàp>‹)ØØÈ7ùÀðZÀZZ>3€Ûþð­¤ê ü†‹¬8bBW4OqEÔíN¾öUè”[óÔìGÀdÿW˜J0êfÌû%”™Œ)Ö™‡%ÚC•¯0e+oZkˆåéJnÐô¼o«(Üh1^Ò(4³}¯››HeAH}=ÑdÕÞc;ÈÊ}FɾUfz¯„ÞbÅ!"Íz¢$ë]["&E@ÏÔ}SáøC!²)¬ð·QÝž°‹óìEœ¨%–b¶P+±¼š/RÇrµÂdèúŽ}«ïƧ¬>.÷æOõ$–]†kBðN/$ynt)„  |„HÂyæ#–᯹y,Ð~£œÐI½¢XŽàÃ1åuÜm”24Ï›"^”S£çÒgÔ ;ã ÍŽõÒ3¦Vlz¡D¨†­=SĨT%²HÔ ³ üH% ¼K{Õ)¥JTë>A0(cS<ã‚B¼¶¢å¡šÀb3Aµ¹MM"Åic‰lúéŠÚ¬(0©ÃîÝɺIÁEÕì÷¤-°Éúaßz‡›ëð…¢‹£^×øpX®°Ïà>U á¦zäÐÊ·þKðÒ¨I²q¼ŒfW}l|’…)©»öë-‚ùvLùÕ˜,ô${ ŠzçhÓe+¶x÷kÊóQJ›,$C2ÙˆpVNRÐí®©XÞôÔÈóïÚwééÜõ‹÷üm2ˆðöCÛÐfl‘›µž$:SИù¬¤Â|[XÛh­©û¨Ø®äÄý[ØÂ”­³w)–¡ÑêÝ@}ïÌ<à$X˜`lÓŠ6íQâòãclèÀ©r(—û·[q¼ˆi\Ì œµg£Ùк±ówt*çžCB$dÙÓchô8¼¸ÕV#!4Ø $Võcuów×`¸ûºçaÆ´Å}Õ7³¸K|ϻSÐ îÕÐ f¤dk4l<f}°4Í•I2‡e¢áƒïݹ¨Ì&dú8‘FYìèÔ]q-„P%døÃÛ“aÕÇ0qÒÌÀ9k‡Ë¡¦9¼©õ¦`d£ÊU&IcMüez ¢Ì?ã´dÀó@éÕÒ,é àŒè#hÑ󵊂 u?èGwBù@ƒŒþXñèjîRˆ%®ämöµ=³ô)˜SÚ2`¹¯%8f‹!š7¯$DÞ50uñ¦îáÛŸ6Ñm¬ÈâÀ¥‡(átÛ”#ÖøõX$‰ÎS¦»ÝŒmß‚13íó\Ï„Òqÿ›ëúöÍOåù4Ùu«°TÎóK ÏÒÈœá÷m&œ÷>cÆnëoúX‘$M¥×”?ZÙ{#ãžÃ¸ûÞ/8Û‡+É‘4¿ÆLÿÊxÉ—ª¶©j@øòîW—ò‡î´NüšÍÕúFm þÂŒK¹â‚VZ mÅ}zêUïL…Ü¥®ÖåxOãikï ´9¹œ+¶0†bãˆ0Ù`–ié„j/2áEW«…YóÌ\žscg-‚€¥­ìEZ§n­ü´`úþ¥Á‰9¼Hdq  炌ËVðÓÍÖÐ1󯶘 -Âu·˽€ä—‚˜ÅsT?jÛ”™ä}‘‡Ún#eÙÍVn¼¬ifŸxC(o/FsçI\O$ ‚‚Î ’Gtn¹ÍÙÅËûÐ¥¹ž»Fõœò]ê<|o¼ÖÓ¦Ïsf6*¦°þCA`Ëð,õ}ý÷%“Þ»²sÕ¤¡H!-1js Ÿ‰ƒËN™óÄÀŠOw‚¨$Ó¡yz¿d ?+ÂyhÞeŸr¤-¯0doY—Dèo¶Ò— téc®ŠéšsüÛz¼×Ú6¼‚4ÄgDÂÓt‹Â ò$ ÚÆ7íÜr§¸žü”àI2i˜6é¡-´úg¢±Gk6žãåC7p¨ý ‹#Â.n˜i:þ¹ŒŒTî.—öI»—ª«ÕW[æ!ôxFFnTä bŠÛ\¹¿è`,ÔI;&Ü$á^íZ5N.Ÿ %Œ;1™¢À4qº×¥¼J²ïߥqÆZ-¬£0¾OŠ~ØS 6Çêe¨µT¶§æÁ}©¨®!ÅÁ—œ§æ'z cÅDì†gPã]™è l Ëæªn¹È ¦L5¾‰¤’©${8N}ÈÂJZ°Òa½ûÂO}S6ó®Ñ°Ä E`šæâ*à±—Sº!ȃjo2eˆ@@bgžFo[©AæClÍUgäü»0<Þ:õ0/¸Â*dÓ’9ó½ NiölhN“Mø—¥ø9¦jP%&¹#¼Ÿ®,Œ¼~ðÃ`$C×Ühú…šÊ ŒŠµÀ¶ø~Rq<ÒÖ‰q¤ë”rd¢ÊP¦íDÜ­†Ý{ „IbʱÕý|¥|Äáw,ÉiŽxog¯ ?“uë‘V7$’M” ÷…L‚Ð;8–’DðÌ»*Òz“Ýk91¿@·es±$,Ôè›ÍU¬!Þ\*¿ë$ð½fÎÏØÙÅf~ç—¬®U80È–ñ­VOê««hߌtÃt—þ¼'j,Ý?¬ëiB©°=D¾i xÈØŒÜ•ý UçBÆ~ˆ>ø ,>ïí&e„ÓÕ°DM‡‚^…®÷ÃÖ(Ð0IŸŠ ŽÌ«œ†°ÀÊš·Ì+iŸý©SbDïšÌZÀF+ºˆì³Yv±k²T—ŸPYæ­B§:^ž¦¾¤¶oNGrh«t†³gŠña4¢£ÓÍh°—e—ý³Q·]¿ $óÑf€êåõ7‹ëBøKjY8%¨ÂöáQ §—´ðcŸN2çès¿ˆ¢ÏÍ8î´—sQÉÌ$‹ó.Ú9¿óíçvn@¿’~ ä‹ø%çüúU`ƒ¦ÒRÚ°o ñ‹­§ÊhÃ@ùy<œÞ-ÝGÝ0‰ñ$²û–d La‹fnâ´ÕÌM?´ÖDñ=‡£ÈCöçlêz0 /÷žç=¯TWâ"ôX Ó ~â"=ÙzÖ žWÉ (1Œ7¸ÝÍÚìÀerO.ÐÞLÏ÷k/æ; ñýYbëè%àÏ„odw`O []Cüøì¾¢ ÞRÛº·Ú0Ëê„2cérÛ¥¹?hýß0)³KMõ»Ñ”…û/ù±òÔ<"6[‡%«9‹„Érµ÷}ùjd¹Îc!’u ¨ß›GÉ?\»ø±}ÄóQ¥õÀ—;v…ÑÙú„eÍîöQ B#ˉ3ÁÔ—Øÿä1QàÛS7ž©¨_XP^þgye®Ã'fTjc>’éùËNˆÆîÆ„2â6p¬K˲à7Ò )oŠÆ^~ÒÇ%Ù8c´f‰kï6®R3߸·åHyÄÆ:?Ù‚2­!B8ÜOc7-¸EºÃË7‡ª O²è TuüR4Ìu„Ø^¼HFЉ47Ê#úo5ÒÑ"wm ØI·ºÇzY²ð •6’³þ(9{_ œª’ýЍî‚6*&«ÑüqaÞýú 𨩀N­ÝÆÝ–·Úúî”ÅÉñg'¼ª'ج³Ã®Ì£jä— wïËìÁŸÀÈ•KŽ8ã²á `¹é]z›p¥u­‰çO,bÄ>ºíIl¸áðvÿÅ}qñ먚ä–odΙ.YSêâ5‚}߼ƟôçŸæ HKX)ê8’7ÑÐd…^±’eÏÁX#ÌɳÑåxÏ©2dã ÃÈëÓƒ–Ÿ6¿šÑµ‹¡Ó—Uc­IiÛ›‡+úM«éºe˜ª@6W»gš Y*Úpê9 8¬cî–å} ùf‘é³y&Ý'4ÿ¼Üt2ɇš_•¾ki3j!ɃÑ, ™ž·ll©Älì]Šr8µóƒÍ²ìÑuކY@d×—_¼dÌÀÄ™kwAç)T»…¢C<& Lû6Jõ4J׸ìÐXÎH¬v‹ØªtÞéò")ÿ(Ó¯éa‚nºnÅ»ªá‹Ã,ÓîäEy¼4Sù,ÙûYÍP‡K¢_쉽 ±¾ j]NDÂh?+©ËQÀÕdµÞÀ|7°^Ô°‰‰Õ7ÚÔk2:ýNXSôšÌY\[F­Äã¢I C/Éçþ>zŒ,²e®â¢<`;ɤÄ›Zñ“ñ;Ä»ú©!`쯋‹r2S—-k'!†|=û1¢þ²,öƒ¾À™ šÏõ–CËO%XAŠSµ‡æ·¼¦×µªÇwµyÔ;r|f*ØK‚-Øà•›øØÅÅãù•QÇÜɰG¾ˆ ó vÏG˜$ÎáŽø`>>*Ž·G½¥òS8°wË) ÀýÌñ=OKb‹ž©Ð(Ìô¸ŒÂõ¶2žõ˜é«ßèâð\¯Ùìs­Ï^¥€@–ûéÝZË&ö„÷âu„À#Â$ØeêÈLÑ:ï„3ônSY¶i°ë׌±t ¯3‹Z§íTܾÅoóBEë»,¹h7$*Åb‰ÍÚtDzâ£CYÑʹÇêAp',_~.˜Äá´O-ö´A難ÖsN¥Ü1úqGÃÎa¯0öfÑá´ÈŠ×Äù°Ž´†‹F§oê ~Ùƒ©ÁsVN ‘†EÀ·OGçÚ%Áìˆ+äµÞåÜ4E“xQºk !¦öPèCBßg@oø@–òLÛý‹—┩…{Vkñ!ÃB¸ LMxêì×iý`‹°³,ª¤r•Ï–F*YtÜÌŒ·“â8kA”ñ´ü#o¾`}?@&Åñ£Ð"Ô¬AcÁ¡¬­{—ÊõʳùÇ9}bÈ`W´6ïY=þY+0³Ï¼©µ?tÕyNÑ}rrt«ä8l°\ZRS8Óg¹f¾DpÓ†ÒnÚQÅ(hO¨Î#í*p'ÑV±¼ l _ºJ˜LøJÆÙÓñfˆD•Ìz¡ÛG©ÃQ» æã&¬½ù€o—•‰XAÚD]ÕÉÞê‰9@  ï 8ß«„:ÊÇ;±_7ÌpiåË3LSôéç•LlÆœ%„˜à™]ÛuXÕ&?ù¢íòŽ=ѯ5èÀß`ZIôeÖÿâÓÈ“T{ÍÛìì»Ó`$å‹pÃEøñZÓ¾¿„ª^s~k®y’VG2)è%ƒÉ1ûÔºÏ$ŒÉöS=/q r:fåíÐèϵÒJ JtúA!4ˆW”ÒGrðŸfzé5OI[W¨%ãe{2—ô¨æ´6V»:¡ M®i¿ÛT]™Ooµ!xp«·kœ4³o£Òo®„ݧÕRPçL yTÜ5Õo˼›ó½0qnxç:vÒBæ~!}½8gÿÕK¾=þ骧 ,羺£@íf­²jÜÕ|SÝ“&‹,ˆô ¢dô.DÃp!5à ÿ§OσKÚòÙú×-K~$Ñ•ÙA=Ív‰ðIûU«l—Å/›(ØÍ4HEg¸%~Ívõhû È3ÑsÖ"EOÚ´?2›É¨±qdT -’øI³ûvm/Ž+Ã.?Š}><]'¬0øÅ—>Â%·]†wtÝ{êÙǾ‹;·Dý›ûa«7ñuOr°T…¼3ëefT$†ç“”¬ b)»w²Š.Y’.Ûœ?`Žš®sÊârКg?vƒ~^ùsÖ/Mî9zël®¡ý‡/jªç›ü„iâáhé¨[Š…“_k%¥?­Q¯qPLpÀÊ;ŒÃÏ"~¼G[¹f>tμ‹hÇ´™-«Þ#ös›Ú MjX$‰S©çð=¿Âð à—VS¡ÿ†¨%Œö°3ªd‰:Ýv70{{ùŽy\¿`ü}÷Ù q\HIÿg*ÔËJžã[‹e¤º?ש±äbÏD ›Tkƒ’Ö¬.øPþBã"i+&ˆÆõõ£Ø7Ýø¸„º‘j õ9”Š”œ ݹˆ»ÁN-Kc.jÝyůêþ8h&®ÍRɰõt¤’Ú¢ÑX4mÖÆ¬>ì’Aï†ùë—ìüK9“+>ütk"ªšsz²pxØØ…bu÷ñeOޱב´QQ#ä|Ôüª>’Ü\D»‡œ0;^³)˜ŠªÛ[»+ÁÝ£žN Íù©kæç@¡ÛosñÛà˜JME-ua0Z€˜A;úŸòê¿?þ5‹i)C|Rغëëôz>Y~dJrñ,Á»y ´òœ—“‚hY‰ý9W€ê¸JSÚ››é½a®#¼…s„Ü3q¬œ-eeâK¹'d+L|'óA3w®ê."¼€P¾å~qþ±ïê²m|»a ù ·ÃǺ>Kýg·dÎÊoÝoxª”—p.”uVÿE£¨Ð”‹Sü§âþ×[45¤bk‡v—«qG›@¿ÑT5¥s©ËéŽDLo+èz+I¹jB«= †[×j†[®<èW-±¬t#ò“üÑ(¶ëxÍÏÉI‡Ž™ºþc{°“Ô"^KàíݬØáp·dÜÝ‹ëcEÑïV‰ýP¢+K0zxQ1R»áÙ{Þi‹ìò/vþÙ/š^ÿ\J‰zf¢WQ½Êj;ø}BÌíà€ÿ%¾fõ-A³ì‰ˆÍÇU<;X(ö{³”b š°KùÔRvÙLíúh¨Ø=ˆ9:´·cq¼_ŽX…1 6ÂOmêQòѾÃO)㌿ÏU-çCùŽ¿¶s;}É´ï!ï…º¹¨¾ÚRp¯•y½†¸ä"Pç:Ø™T«ºœ'вø2ß ­žm-q5‰´(w¾ˆ1H>fžCF9GO¦ýbÐ5‘“ª³ ` ì×b´ÞaY]òËÅiøf9¯é~¤×CW?÷3æ×´Âû¶:ÂÆ üƒÖ³&XN'èFcÝOâ_"DÞ»ë’Õ9AÒŠœ‹ ùô©¹ž|J;–»¯âŽ…¥ìí‹ÅŽÒy!2Ê“~¥z(ð¿VõOL삾á¬ãÆ¢_M `ضP¨æø.ßÄ÷-5L[c4«Íô<¼ 9m¸iÓ!y‡Ÿ™½ÑÜÐ(-‚ÓàÍк¥œ¾ CˆgoÏwÁ¼C<éVŒô׎@ý fj¿á%×IJì%ßU©^ƒ-&˜éTšn=0Š1a·A°ËÓ õ×Kù¨§Ð0 ).–ø©ÎqK8·)Ýu‚Utã[_Ìç+–ï¯gbƒ±þêÕÛ¸­ˆ;³E‰§»»¥°E?}‡IÆU‚j Vœ¾g„`¶ÄÌÁ°Ùí͇æœÁãH)f|±ÂýæN¥ ’Ž8$aÜËöžW?b»~P-,ÕŸ+ø—ÒÉŒnîˆFSäÉÃ9dô¯{Í„Kum?gK™mõ5´ÑBf³ïU*ΙêñÕšà± ”µ|7óîýž¹gf ‚$7ÐÖ_f\ê[u†€§¸U‘Á ]œ»^‰\e[¨m“ò”Ž"5õ™ãGadÌZØ(Õ¾µ 'R²ª3Xœ¾ÚcÈmˆ¬Ue[ïZY/›w²»æ¸`øl?3c„17;B7Þje¬ìmÔä3ÓÓ3gv ª®7°‡ª}©(¥yev}ŠË'cÞòè6ÿV O´rÚÓÆÖ… ŸÌé¼RF•̲Ù…BšÐ`W$!Æ3ÑSœ¬¼NèUsÎJ¾”j”™‹_S6Ó¾;6¡:Ã\‘ÝòI¥' CÔx~îF:DFMO÷JX,¿«¶‰Èˆ€œÆ …Yâul?–Ò+S©‡ÖRe¹hŽ×Î㫞GÙ…¬„—&“-›…Šxì`^B¥S²Û(Çákw]éŽm(…¯‚Ò³vƼe¤»*§{h4z&åDËéÜÞé”Õ²Nz»“¢”RðA{iõPjç)¾ÝôÍë‹´Jc[—1…ª[°Ð¥‚…¹Àˆk/D,%ÓxOgÑ‚i}5Ùl½¬Xûµ‹.è!"&@¸ºaI²N»Òø°7Évk¸_fnÔÓ‡kññf(,į7Üw4¶„íË ¡…B!Oô²¢1ÓÜ„ø0åZAý|!õš‹bò5R%õi<©IÚì­Jr´C‹j†Û¯Ñ‚Ÿîâ¨Y¥(:kËßhØ[ †að&ž#Ú äæœÚCEý$EÆ\¨e/ž–]áô«±m›PÕ„x‹Z_.°VIj„´Þk[ª”‘áø)l1üs3’åûYñ<åD\a—•ÆpÚȉ2 ¬´€®Ôõà¤]·ªç¦Afž·*10ú—:Äc£9kŠŒ&&ãÎCÕµsw„Ó0]¤MpiùÅ–"4ß"Q·ˆŠà(‡<°Æœ˜g;r߃é NtŽëP¿h9øl;²_*°ÁæÇƒó"œD¬€Ý=¼ê«ãO7rUÙÒðâ„`=¯Y‰º*,e©÷ÕÿEÈÊ\Çô˜q½hxámR=UPi‰¢êW1£Ã€¢8jÖ—ÎŽ•½ pn46„“ðkQÕ9ªÌFÛ~\:éþKï¡Äk6j_´Š ûáë¡æÍ’Çsûû`ë´~^Ãxc=‚W ä8½Œ`ˆ‚Å‚¶´¹!“«ZÓK—w6Ãa0Ô£z^§ä4ÍGØ Îû<Ü…_QË#ºUúëvýåmFõÌuJ«‚&Í9£v®Šá%eÌÂG¨ l #‚•ï*Žfú†V0gÙM‚ñ¸`>‰ê$cÁ%îç1‘*®L=™è ÷|öl)øºNìQúíëé3‡sä J=óy@M;Q³TN0 0ƪù€\ÃD¤…AÅ6ùgã’mìø‰mÁëAR%‹Ñr»(^«pdOôoí|ôGàt}ühÌûqz;fõ>ê“’# —ù.öfa䨰sÆñÂ3™Œnçñ; ìúä[ Gˆª™s?8Ï éWFàG8TFxt¹½K ´gßLøz¨Œa¹KƒÀY{´8½îða.ÂÒÃys¯w}«R\‰×÷«ÖŠC^ì–YÒÞAû\‰ Q.3‚5å,h¹c¢0dzpqç2Þ¸ç FipSñ傲¸ëEB©¹k¹ª# ÈÚ7iæbí»ö¾Fѯ¿×k«LY1<:õœNjIS°ä\´Z ˜=P?½b$Y‡”°×[s@»’NpþHOÍpmÒ”ºKó.V´œ.}¤ÙM/ž®–("ô; )ŒÈ†Ú}ÜGv†ÈÝÆ‰‰X Äv5tá÷E멟§ÌÃ¶Í ÷-"h†T).*çs«ÒÒ™°à‘×áè¤óu–ß 8ÍøY@Ê(ž-asìKà~rB-•N'!•j„OÊ<+\?«xO+ȳ¨‹0˜/û†»Šƒÿ1•†°ªôüô¯GIó{g/Sív"‚áÆÇìÍ]Ÿˆ Oô€ªoùu<˜ eØeß߯Ŷ…xÛ?-uœl_µKʧN¿_H‹DýǓ…ÄXçãFSÅ¥)ÅÊ0ŒyÒh$JQ1­¸Ý+ö×Ù´_¹„¯T‹²mFÛУô§ª4×(‚tÆ–õMwµÜ "ÒöƧEg€ël¤ÚN {ÕYöÅõ©3Z¯ÍÌ?¤h1ÍS—oŒX#,€RÿužäSÊÔ L¡ZëàœwþÚÞD&²(„wªÀƒOά8‘e/à1޹.°ÙAÏŸ ¾‹‰®=ú­O¾æJ½®—¸öz^:K’hTqO¨½à¹d™ì|‹ƒðSó;/ʇÓïÖÓ›M²5Sf „ÒÖú,ôPKˆË¥@hIàe®&$Ä.'yN–òª ª•SXû”V¾~ÿ9rñ­™õîF$.ÆOjùV”öm·³Nâûª;íÃû¬ Rr%ŠžypÈ–¾ïç阾 ‡F§úÙ(Ó/­¡¸ò1…ÏÑ ²íâ"$û÷$ˆoƤ¬é&N^&–«SŸ:)× ½+šÖˆ§ÇÔ½µ±IêúIÁ{¯žëlÏ~;?øŽ¹HÍ8$éÕ;s÷#8S`ÙÎ2Á$žg% ìÉ ø&E{{ù™“æÂM1w| C€aSß=ý$•z‹ïŠ|Rx¢=þ²“ƒJôþP€ÜÝÆgëq§ëï÷²×ª·Žm*#xßk•ø‡¥çÅÐ÷²Ó™Êo±íWi¹U' ©ãP9apåý¹’TeÄúYmo;"è1›šgeœ˜Î±4^Œ"À*4¨*ÊÁ#gC7`rq7ݽRr¯ï•ÑnÓZbÙCÛž\Ôzî âo™MkSÌL+…m•—ׯ“O5Ãy:Ò -Câtm-¨üg«B Y"Ç)W %˜ðV)ÅŒ¾VW‰Is!Ìpµ[WË~3{™ŠßÁµh«¦vå Ï””îazä’€ ˆ,HR´KßèÛ5'©R6}·tõÊNÔëÖÊï­E)–¨¦ oßB]V@sMwCÐ'É'÷i`—”7 'c½O :²¼t}ë§{F™+«¿Ç‡¯åĊŠï‘.›B3/£ìj£<Ã~dtëέ¹ª1²–ðè%`ÿY<™pYRW¤ÚuO®ùÂÃ÷2Ê7QµÑ@{b®Ä'îm£jpq´Öø¥×<àCÔPJúùáÛ¸ß&“»ž·Ækô‚ V½§™å•†M9•ø·k…¥Ê9²L2çfT½Rþ!_ù+‡j*ú[=UQï –ü¯oÁ£9T~Á)^š…E“ôË.¸Çʧ.”¾RU¾ ’Ã_4”×®4!=">CSZ,ŽÏ|¸˜a)yçj8•ùœŽÜ4•¬iyï¤ÚÊÏÔYõÈc]¥­µþ˜ë$3& ÚÊåËuýÝ"$,HxLõ¼¿Pš-¾qú©"%=ÙŠIJ`9éz§®=i»·«òž" ¿\q:káÆ'udf§;G<h+xUMG{ÔU=5/ÿ—lÓ Ñ!ûXL½ ¦Ô¥Ÿ¥¯OU«y‹I´{¹*m˜Ð°hJåSÇäÍ]+¥R"à{%\¢µ:#A 5ÿ@5Еa@¯¨,s¨pãÚÖÊ%Y¥ƒÔ´5í×`øþsYŒ‘ï<ïÎÍÔ•±¸Sga©êŸŽÎ ¼‰NùXœ qªç”‚bÔ'EVcqg¸äçŒ@vì»Cû…÷<7ÂÉë¿·øV¤Šãß•ó@¯}´U·úzDû Ï•´]Ö`kùØŽn]lŠ“Θ&J•az;Y4½s˜÷\Eå÷9–X#užh-ñé]ÛI•¬ñî‘Þ\U8i¬ø›·¬ä›æJû /›ô<§ßi‡â#ÿ= -¶|õã´dÂÔ`àú³Ç¾¢‚«ì6 ±²H÷ÈÒéXêÊã­NÚ¶'q\‰¼éû^Hù ŽÉôRø›BÕpŸ–;X1éÇîš >¡@~src’ÒF!°€þ<Õê'ÀÛÄ]Š’ÌÛt‡EÒë¼²i²áÝv¿¶¹ÌËK«×1¹òVá®Ńʅ¸7«ýù±W5¢xz½®]&ù£C'xeñÈÝüìæMXÒx¸K×a ³{Njbµ ¸E‰å4!°Ò—iLD+~ÝÂ[¢x&â{Ù œo){ÿòG{‘g‡ÔÔxÛ3>¦ Xèõ>_û™qäÞ‘ýš-S®è.!´''Ng×¼¹OKgU„~6.¦Óè5k’€ŠŸ&0ãªùæRzr. äË•ÈÆ,¾–мÕJ¯1Hkg×Ö?H΋¯˜À2^é¾ñãá;ÞÇyµ«{”B]U\5äùüàõâØÆ0ÝWxÿ]èIª=¶÷â="çÕãŠÓ1Ï9‚lß:‚þû•UÓ–»¾©A½E‚¨ÙšÉ/\- ˆ)Œ- yº@XßSÁ~kn(²-2]ÂÛ´Ÿ_ÉÇØÁ‘ ‘4¤{`2Ëx]U­EKˆìƒÈ_Ä„gèÇÛ•ß.®Œì„ÑsnÓäYµŽoqhöy'â⹸œÇÆþØL@£X䪼 ×¥Ä5…¤sÝ £«‘×¶ÒBƒÏèºA—‘/à¬WZ¾v?ùB¨™¬ ü£á‹)U£ðC-œˆµ—ÀÂè~ ç€yL˜fz·^ ÑÖì*oyñ1’[3i4ˆGŸ¤ïÿôílˆøÞ+ëa±c~KzÅÀ1$”庙Â1øîy ëµvþLþ‰ÂI¤%‚€Ï+‡™W‹MÔ‹ö+æS‰™ÖC!ÕWKãkc5Ř è0ñP†újdZ ³ÏÂì«]c¤q+<~;‘ RV3æa”ä4žÝ5Ç3ɨP3}Çfi°~¿Â<²hP»[e–ÝlÍCìjÓxy(¨ÓóUP¯tŒl%~¡u‹6C²al¼gSI\öø©ÇÏýh2b“Š’§?5ùÙi~vC°šx î¯}Æ1‚bKnO¶qî×!#íí˜÷ðX˜NH(–Té S\u%¼í:ö4E0dÛºKlÔ¬‰Ï˜¬X¶B’E>› g¡ ¾¸Ð»­uôŸäwøÇ0H{Íað€ [iïºdŠ´)Óµ¦Mê øwŸ¤h+îwQpZlÓ’#qf“¢ÆšggÏHÐ;™ô9•« ¼šsÃ(ÝH\V©­_¯'#¾uâ ˆ>Øß~Þ{Ö(üVJMûy0¤Ü‰0³§îV güñK¬„íÖ"ÐDK‚÷ƒûóüÅ ½V…òÔ}rÅço_*|LÊL lª±Í#Y¢´Ïƒ›Ð XÉE9ÊR¤:>\Ÿ¡¥$Ç•S„Ç}º·% Y¤¥Ë÷¨Ð¶-˺ó:‚K€NTå}çåÃDÑø*s]ÄÓ+ŸöKúßæ­L}z1Ô‰Ž<ãÓ–“n”ô6átÐ’‘kOaÁ¢hçõNT ‚®—M@9½…;TàÙ:Ôa 7ʇ(laå=ÚŒ/Ù"ÂVõŸÞa:qK¬v4ZÉñ;-³êfTùÇX}S× ?ÀÉ@DY&¥~Z””kºòÓläe<Ê,Øj¤]¢p=™áx!yIBä§àužZîÌÍ,‡˜<’¶îÚ§øqÿ·ÕâLWAQ¶Œkˤú —_Xf1R;·|…ÞnfñnÓÌã+T’ð‰>œNF7u_„ MC†5©ÆðWzÿ‘̘F=Ë×:¢òÖͽL'œ™뚎/™ºP…Û—ÝÎé^§‘k4E`ÃÊ¢é1›?žÌöÑ£lÚ"n3rG¤cÌ “ ËIW#—-ÞCœ!í3´‚¡²\—0œ2kAÓž?~#z ÏÚÔÊ0l¾–ã|œ™c.#åIØ¿qÒNîPïùÊà_sÄÑÅù^7t¦È8ò ÑÅ­$·Æ¬‰¶ïxõUW³*ÔhýŽ‚)¯`+ÑŒº»×ÏO ü±äÊÑÞñƒ8Ó ±³µ›ÅŽX[ð”K$`u£wFÖ¯T‚‰<²Þ».=mÅ~‰üugãC U"†Ð~ý¥•ÁÂ>ºþ\ž†ÓH¢‰R¿Ý»H±/.R<Ó80½' TÚ}ß… ðÕÖòGlÒ¾ðæe¤šû |oCÆ«EÇïuÀ^B7Ú¶íIÜÔÓ¹[Ç.ªŒìü‰ÑO,;ÍsŽ™êmFïäÔc?õè|AR8ù;AÐ/5üTü‰iDТlþ®ÒÄ¢ýàJ”ÑH9q%?Ÿa¦…¶~×[뛥ҥť__V¼­RyøQªüci(SÚåÚ'¿È5­Â³oÆËxÁ¯è;®À6i4pZK¿tjxºC=Á­õêXa%,‚.^÷&¶´(Ø{s᢮ˆX®'µóqˆ¸¤gnUìŠtrê÷lxªApU¹†óÖÓ…ñÃã! ýÞø€˜‚o½7iðËIÃÃø%¥CÈ’[ù̲ÁÀMdïýÍÂ÷|ù+ëIæSÄ„ˆ‡•å9oÊÅÙ³ÜÓV'Ñ„´¥«/i" ltR0£p@Í}õ#ò,Ã×ÃÒ1cQÂ!¬Vñ™ì‘ïJ. ¯5 ¿_#yª³žKV® ™— ¾Ú¹â30ì™3j­ ¨QÌÀœ! ïnëZ?Æ ‘É v j®lZ¥ffP ™Ù)ægƒ†_±Q¿|ê«x³{Òë V£‚í'N-2­4Ù‹éš¼4š—ØÔ}nž­UÑf‡l‹}ɽFáMì-ä/(ù˜³Æ§lÏD¨]Á°ï;Aîé!ðMÁ)ÜÍÒ»ìø€0µàƹ™¾“ñر¦G´ÄMrÚÆûÍï c§­ÜI˜¢´ñ§ß¢â.*ˆŸº7úz¿|ßý "ò*Wð84tÉWQ´+*C|]:ÿnJr?‰¨ðKâ.¼…W8 *M‰¿Çtÿa¿Ú)EÁÀ…8¸ÁE»ySþ{¿Þ(Q‡¢sdޤõbÌ—+ ˆ‹·ØŒfà/ñÏýÒaþÛ1Iº*²wÊÒîŠÔ´wÆ(V…0ñJ}d\7¶šþÖ¶>£_ý)¡}ø§[[›cÝ? õçÔ\Ó7g×µ>}"~XÝÒc/A´¶”TqÒ`ÊuE»k.î¹YåþXŽxPŒÅªäBêÈ „(Nnƒ1f'ψÝEê8Ð׌Ä.úÅE·uOß(zL‚û=\˜õé=…Ø+CëúðÚLä$މÃï~Àa<Ã×v]àÐL|Upd¥ÿ"`n¹³—{pÓäuâãÓªÝ{Kå‰C"aY"Ühô¸&I×{úì6%åôboR7ïXýáph¢bãì S Ô¹¯ÃF¸À«bŒ8ŒiR ºsU‘Ê®ßlŒ÷Íɼï•ÛÆjKpöÇ¢ ©:Ã.ß×3½ŸKw§o-Žhâ›:Mü¤{µb¿-d G¹êÌš_P§…öì¨öÓ’ùdî.Y9 k釲ۂ 1‚ÌRÜ\ ´ã¾Ü…»CN*Ìu2ßlF2ÀA9MFs¯a•t#04%®s»™UŸkÅçÌ$"[4‘ ëõÒt³I"ð:~kK3Ä\íºmÔ\`Ô¿¥<¦hM˱ iJ‰ó}3ã$ÖeäÙÒÊ[«ÅÖޥʤKùBØW1B‘EP (Ê)¦ðžCwã¬nñxõ9Gzt, :€Cy¹ªt2JR„©Þ±s;Ž8˜xSÙF© .êÎYñËDzÓœ˜Áƒ›ÿ•lþ‰ûŠZˆ)7úòüFmí€Gª_{E£­1õõjU7AŽ[}n!+”¹|î¡ã °\: ï¶û‡¦»7œå^ñHGs’R$Móö}O&¿AÕýI fr±ñD¹&Ôº™¿7-¿³¤ŠºabôS@YHî¶_̃L¬¯°öóœ94DÛîBÅ£²]9±s­ég4¿1²æv|ª×Q§½N„{Xì§»9y§¤•6êÎGü/—F®©«ÕbÅÊvîOM(ŠœŠf~hqÇNºLŒ‡ üµUY>¯ù‡ _ ‘-Ù\ÒJG¯iùYÈ,ÅzQ¨VU½øXÅÐøs–dµ‡„|¸˜  :«H`ÏšpVú‰X&¸®:?1®¸ ú.éÓÔYªËº¦îßzŒEÈp´@Å‘t6»+ø…9¦ÿR§Øª¬p.ô²ŒTI#žTGÁ1áqÔþ°ŒTÅW·X3Æ›ðÿºEø€MýÚ™@›ÁY1k#ŠleY~=Ä™û Ói+àØ:¿9ôuºVÿý‹€=–þ¢6c3…Ž,õÎ2¶(ŒJWÉ_0N¬#L±¡ð©”ÀÝÐÒ^Ïe;$½òvÜ׳a(2o¯ Õ:L7lïcCþVÑcv• ¯]LµÈgâmW £Ú×DÀ7´š«ŒjšgÁ¶ŠÚlÿ>ûùŸVš %/ò˜¥"‘­P3ÐU«!ÛÏ¡«®º03EMâ Áv”d1T>XqU™žÉk?ˆ‚² Ó–q!$6‘ч›tÑãXbÑmf¢NFpÌóç´wæºò=æÞRØt¾PŒÐtìuc(C4›Ü'öbߺÚ&á|Y´˜…ôÛ÷}¦}ÑÜ1¿€éN–¦¿ê^Ê(k!³WØÕºw«ŠÔ—²ht<;'¸?ù¢I#wY6c€€¥d@+Ø“é N†¿¤°´å»ƒîlÉÙâéÇ8¦.³"¶q¶¨<«auœ'÷Ò'ÚjÎw‚ïT(ÒœÅÔ3“”=‘ûþRÞÈn?‡¤bª…7u0ÚÍ%ª­‚y»¦ÚøÒMçNorµZKŽ€3Z Œå‹¿G¹ýò•82Èâ­ëú;Œ|_‹,w29ůwÿDbæ ȶñL–†Ìv¹ìŸ|t ™uÄ Í”#ߥŒsM=(âeÁÙ©ëÅG¸3„'x*ãi (aûWÁºƒèàºüŸ¨LÚâëïШYG;§ÄªüÂö$?S ƒ¤Ú¨E“0ÙAÔ[«è^å6cB VxBâ)ÊÞÃÔøĺ|Ó¤ì0øœ³!±'•¬KDÇ5BiÊÂ2g檯 sû`ü28Ô {îŠrë 7÷Û\ ’ƒWC&É5ôwÚòô4½ ótHq%´7¾]`NdßùÊJ¸(ð&¼Ëiï8Åð~0mv!I]8¼ÚºÊi¬¤×“‹¸¥³%3\ °¥«Ý›ÊŒ‘ï­ú*Gv¶‹Ÿÿ!j)Áa®â2ž˜-v8 ªêêï—C3I3€Áüi”HB¯{íb…½ù‰¼ŠVCðF2º“åI3Ø(õþFÀGZ·+…’ޣɦ:Ç.N,…´2ÊÑúÌÅ•_È\|àÀŽùúÈêijˆqnX½{ˆþ|2ñlc¼Ë0|‹ë…æ+­kè¿NýûÜ«;!0¦Æ˜]âãu÷sbºË 9 uã\°Ø£ì®³BX`€NX =~ â” ±ÎøG\‚ÑdŠúþ¶kQû·¼±7ÎË>X0‰)º×k5ô=“ÝVC.Ã#‚ÈÞm‹‹ü`A#E½œºA!’èæ+©Ë†MÏñD¬{>ç ¿¹µÑ ïFg)èÏ$dx6s`F·ÒŒqA¹EÁrØéY‡ÎÛüÿdCaA@N_Ó¬'™Ükg½ ‘²[y{_VͪÊÙÏȽ?½rÃGî‹5œsè/ä|¼Öô.‚$؉r(ݱ)1OW ´gÆ&–¹u¸ô4ázéVQ`‰\$–ølVúGÈŸÙ•ˆ6Â8" ÖIˆŒ*P–D#Õ Ÿ›ÞS8êÖò´SŒ»ÓžÉìC‘øOÙ~íÂg câ  èWqq3$„&·Ì×Á€«ÀúšÒÛe­Ú¥6ȺOñÄøñšf#€pjpnÌ`’=CÔ Ms…rZ…§Sfš^95mþÃzzè³Pmâ“2ͦ¡ˆ€ Ÿ.q3#f„µ&­]I™ÅŠ$ì¦ w‡Ä¿–Zÿº2dzFéãûC(X¢LgE¡Ñ‰}ÙV¬Ñ3JNžbz^¨® i•!Eõª×JÞr/0¿!0Ù$š’I6›Ýjë ˜“ªVOÕvpj1çÿ“?CãŽ5f9ë¡õäJÛ ´ìnôº¤·Öë¶:=v¹v¨ì7üx5À×Äm>¾µ]V0ØÌ@€yZ³£2Ø(Á‰fúRþ$ 9:!–¸\ôè™Ü÷´$rg•-[<%(²ëúKÐ9¨»‹ó¤ÑŸ>sfØ,ªCŶ>è;È>ûh냆¼{endstream endobj 331 0 obj << /Filter /FlateDecode /Length1 1640 /Length2 13652 /Length3 0 /Length 14720 >> stream xÚµ¸uT[ݺ= w-ÁÝÝÝÝ])Üâ.EŠ»K‘bÅ¥¸»;Å ×¾çÞß½çŒûï72’õèÜsÍõŒdS‘©j0‰Y8˜¤À®Ll̬üE%u{ ˜•IÜÁÎÀÎÌÊʉHE%á ºÚ8€%® ~«5@ÅÜõ=ÑÀÎÊʇHAÎïN €™@ ä Ôôr±hÿ,T\\™Ì€.ïnØÊ ¢{O‘ppôr¶±²vý[ƒƒ‰éo¥¿ÙâÌy ¹­ƒ‡‹­ ¶È3+1”<Þ6Z0À d ´³8X4Aº- )u €ŒºŠ–ªó{a 7GGçÿÂ"¡¡©%ÃSÖ”€´2Zš?5AàwüVŒeÍwÿß>ïÓ•¤4Å4õT¥ØXþÞ€ àrv±ùÛö?°Q¿#ü´÷TKgûh­]]ùYX<<<˜­Ü\\™œ­˜íþÁ§imãðpp¶¼_Av ˆq[¼Óéj úW¿[P´1]@“¤þå´§ò=éÝîúÿ€½áú·¦Ý¿Â. пµ±ºü“«¨ªª°Ú€]A` Øü=Ðèêæ0ýÇöþYÐü  áæìü·‡Ò»œÿ_›ÿ†.îð~g†v>~@ÿÜ1 ØÍÅûqóï·mîv±qquùWEÀÒÆô½Ëß=³ÿcSS–“–ÒÐdR|˜IÉá0³«§ë?Ñë‰I*òxY¹l|œÖw‘J-$ìíßQ» þ¥OÒæ'Wg/–ÿPµ-ØÁìóŸVK°…å_Ö-ÜY´À6Nn 9ÉÿŠ}7!þÍ ä `€œ Osk–¿­þQÊ_3Û_ó;~>ŽŽK  ÈÏÆô~Aôqºƒ®În ?Ÿÿíø÷"ÀÂÆÜõ]äïñŸêr`Kß¿ÌïHþÛõ_ÛOûÏ!¥{?¡`;/€È‘EÙÁõ] ´ÿÿœ±ÿè%ífg§ ´Ñþ;¡ÿ´·±óú÷¸ÿÑý…Jû$Û¸HÛx‚,Tm\Í­ÿÅê¿ìr®ÀwÑ‹­ì@ï;òIëï9²{ìûбù;³LlœÜÿá{×¢¹-äâàþWèƒÿÀûNü_´e=Uy†ÿË?AR`s °€‹tvz!²¾k€‹ àÃö.e ç?"°0ƒ\ßSŽn®~KgÄ¿ÉÆÎ `ñükû¯%;€ÅûŸå¿cQý{ÿÑëÿ€û¯éôÏZÃÕÙÁ¤ccñ>™ÿWˆÐÕÙÆÓ€õ] lïö÷×3ú·Tÿ£íÿ•-.îàéÃÄÉË `bçã°q³òØØ88üþ-×ü_ƒâq¾³øßë¿§y‚Ì—ÌB>¥5…•ûKNUÀPñ1ŸV}Ö•O„^Θj'Ä“ÌÛ!‰µfR9(Êòù§Kt©Bpì^7Z¿TO^[¨‰îý•ü Q¥ÄFsµ™µ‚3•–+:ÉéŽäs ôJ9g2ÛÛHZ£Ç|í]±ìoW©ä†mkù0ÅslÍØÎv˜žKè„KS®oØñ1À^±eúYÓ‚°£ò°Ž=]èú iš&5 ‡°1µ=D„ö´`d-Ï Ú[œÌ¥Õr$œIÎýâ(Ì䮑S¢ãì¡e™Š÷ôFv« …Öþ°3Ún¾EV'sÄŸûa£Mt×5â||hiOx;ÍHƒqMi™|P®ã[½FzÉ-tþŸ€\QÆ¢ÿøG!Ú™sþüA!·ÈX¹|%¶] èa§/G†cŽà,#½»Ø£‹%,ÅŻЅÜ#„HÑ|+Õ®;9LJQ«x>í:#s¬8Eb˜‚ùkt`ndW…îçSK f!U©Coø7y¸Ù…©xéè7”Åð{kYËhlÛ÷&¬_$è úÜÇð—z$oS"†+û¿¤ä2»ÆúÆkó,/^è´#zO&¶y"@+ùÒôu7d¿ð’4FÓbÖGr+d,EÜ~bðºû!õµÀ½l–ðhýƒá¢·g4Y”³êéR—ƒà:Üß=¢|°MkLþMÆ0£J´xÉÞ¸á5:×ÐxWôuQs ×%ÿé¥ükc}r"¥šh:v±fúö¢ãGßOÆÌ_yJ%áí©^eÑÖ{ªï7ÙcF·ëÐi¶ôtŽÅú/ºoåÄò`%<§ý4¡¡ ÇÉZ탓{ÈÍ%/ñËäɳ¼¹â¹*À²¹Òà|±z\S « 5ºúšã´ŽÏi»/Õ„jІÎÍÌÁ%;ö,½ÔÚ{ª‚ÝíƒÅ ¹Vn¡æÔŽÉƒÞaÕO¦" eCHÒúWWóA˜/Û­Ep9È ¡†j”¹Œä¢M§„Ƭȼ!°{?¥¾$ìÝŽ´}g;eS'67ÀÆá½Lš%¡<š‰¸æO‹DÈöÆù4ôÇ÷¹ö¯©žiûÜsþ…–O팉0Í¢¢pf¥íšZ¸0´¤…«ÇL®>×§¤ÛRḨÖÛØ/^ïÈ‚Òî-6íà˜¯q°³Ef¸s¯ïŒ9ˆYÝäÔZ0º¨Zl ¨û‚t4ˆ)Khhð5óŲcLòhRPVyq`xɈºÜÒtì|âÍ~˜ŸA#¢3—=Ûª7 ±ÏÇ[ÀPüÍ}ömê ð2ÍòHîZ’ ÅàˆŽ’üJ@…5â×C—Jp–Òáy¥#'ò#Z³$¶–×,·î˜N3S¦m­Ðu±®øb ¡ÕÚ®+*Dòåé— ɬÆ=ä î( ¸v‚RWå0ÎLR×,Í_¨$³Î!ë ÆÁ´g27\àa–rt ¨¶óC<·Õ=FŠ}`ˆÚGÍl–+Ú¢ 94‚Þ™LTÉ>ĸ?^Љ Oº@•ŠèMa~$Ïyç¤àË56¶ØM˜.ñËãÐÊš²V"^€K”cÕÇ4åYqybƒâÊÖ(# ½a½à‚v4O±ˆUùÈ΀›ì‹ ³®Ö÷ò{#iˆØB[¿óô²9)¬4ØÛà°”ÜBÜ9£‡>ÃM›ß™r#¥Ž¢³^Á”èÓêBÄÒ%ëó„‚fx1–‹ÓŒ;"rš wsºõ&FŸî®P$>&VFý&º_Õ/È6­§n g\Þ7`æßm# †í ØÕ†¼ÆMŸ=Å©¯ÎfñZƒwãá(WÞ㩞©»@—UÛjf™&•‹?é5Ø‹f¶²dgj‡’üæ×E]q-˹b"0ÆJ·Ê‡` á ÍŸókØjáqÜpºW,›R|;p¯žÕQ@ŠDÅÛ¢Ù¿Påkˆ oÔüï¤dÆ–D¥f™ù aÈ>t§€¥i$\[[`õ4œæ¼Y¹/™rÄÚE<-oÍË5˜‘¿ f̸(’´³“ÐÜiŒUôÔŒújÁÃçKT¶Ò“ƒé⚃“´ön`ã° 4¿’¿ìÍJ…JZ2ö—)­DŠ=gG+£.‘D‘ÀôÆïà{'!;ÐÛýÞgHVý:/Û›Ôzg:Óûdêl/õV~úÏ…*Pv|øzpäbs¥Ýbß€ÎøÑìÙº;„ˆž¬êGŽ›&TÜŸ–ºæUï' æÑT5ànœ¨ÔìGB2f]må¸+ãÃÓ´ÝZ7-^Š&fd·¢_ÂË1¦“Ø¡ÍΑbÇD´É²nÓßfÛ#»_Œ|ü%ZËΡU÷ú¥+aÀ#§ÐšjéÈóI¢<ž¾ÞYFÖÞº·xOÒ½°‘ +ê’F„n´Pq0Oß÷sR³ôä¤/q¿SzðG|šÈwÁʪ³íáTÙ\ð2ÍGEÛó}¯ËW^Ñ"BUT7öoÁwßù©Æ¯Mµ50íÕ©W|' W)khmãØÿV GÙz:/9º³øóù·˜Ä>ZF‚×:Ëckj9­V@zTP¥ ">þ¹ÎØY0F"ª­!ðKi¢Q£…d½ÏõM–·Žž¨Ð‚n5ÁN‚o††ö×ÔR-ºŸÁ›+ W½3h¼ÛI¸úžÞvd*~B¦ l ~â8X&u¸ùÝøÑóvù¥)ú=‰w‰iŽ1Ë.´ švªíñ=9/D…P$Û8¶S¼fvóJ™ó|Q/#4œ } q¤Ÿ«zlò[Ï[AåëJÑá“Â"ðˆ§"ˆù*S;‹K™ Œ<ãÄvZš’¦+*Á’õvÉü­8É”m%Ñ¢³äYxo ¬Û•C£¸<¿.4ßÃZ©öš88rÈ6ŸÝœ=$J¾:¿V©HYßÈü±O–ÃU6Bº6mÌ×âõoõÕ‹T¼¡«C2çkÜ!˜€‘™ûÆlN*¸gÕ€ 'v¢\;>$ŒóáèNÅV´Ù÷ÈhÆ¥Ë^t“bâãÚ˜ok˜A<¹½Õ”5viгpQþ«êO1ØØ:$þÈÚm¡-éŠKᆰ¢D¥?ûöºTš®ìÑÞ‹ôœ¡“7®ÎW>ÝÓ²ŒÆ”pR±´|lë<ÜÙS_< C<(•ÃRšV.¼Ú‹&WHÔ‰ñ}5z3âNh­")l-™í_kžgñ{”Ç‚–,E½’T¿x-ÃŽí®ÛS‹'’~ÇrK{°ñá|1ÞPÁ„õ-¦ Ít9xQY‹×éi"ù×ÉL´¤qYøoëI(óßêÆË¼¥1\]‚}PuŒª¼?P&äüùM¯è=$Å®tmÝ)N4Àv¼×0Né2ì5M„Ñ<ØT”¦!ÁÛm4V2*rºŒýÅ .ë›áÊ,'l~ñdDš³ÜD<ûÃ!ªM5fkÔ‡|âJ&«ëO-ïÄöŒÇ ƒr¯iJSùâÜœ(ù8©æh;³åT­Û¢LJþ¾@É+ÏýÍÁr…þĆ·¹+õSGuÈHX×ɬ[&¯\d˜ØùÍFóN¯ÆTª÷Ø«¬Ù™¸— EÑ–±Ð3¸®ný^"±Äk¯ísk6lFBY­몈g©¿‰îl® JÖ?}B1O !‰ÅÅ;uoÄ´%þÝ7øÐZ±¶™©_ã’§ŒñeüdÁ¥ƒ‘êVTÅ+/m‡pÒÚÞy<{÷æyœoTRíl¾´îùƒSjYóN©)]’^šÎEâp·D™%;î¬ áBš¾ì‘þ”vçì2 ™c‘‡®¹$ߥ¾žè>°;oÕ˜72δÛ$žÛ|âÄ`ËltòX]õ©ŸÕ &•I±›À53öã– à¿~SàëK”áQ/µdýœB½_0O—˜Šo¯Ý¢W©|ÍÁjiG“our9¼ù,Mð­•!´™OüX‹¿¬0 á-¦K톬kkK![Z1¦×g¦˜íí©Í`¾ÒóÍE’áW~Ù€…Ù`•ûå]’G³‡wÆãAé8h0îNAQGBeâþ—^^PýôÜDëÚãÏ–Ïn¢M…‡ï}Reü×%¦¡:_“h‡öãHN9ÁNF¹yúÝŒ ‰©;kšÑ¤"¡M‹žÉ¤)|‰1PäÑ1˜äÌT-x ­÷o¯Ää't>²ä¦Ṉš€Y˃û+8OëùÃ̰Év¾mðs›|•ÍÇ¡Èm±«,Ž>:qBFÓM‰Ypô:Îñ!ï¶*ÇL³³—¸‹œ óê‹ñ÷åË m^Õ.‹Õ„ZÒq u< ä®×ê’ݾ»Ve“ÛWSHÌDö‹Auyy~$ŸÂ«"Õ‹Ò•˜Y(ièø³Ì¿&ŽŽïIv<†qg"q=c”UN«jí0E*d,Y¤O|`ÿŒ¯Xº¯Ýˆ¾‹.pf¦,÷}ØñŸµ'JbAîœ1¦feÅU_$ìb»ÏÌ® 1 Q.¿¸ìq9ÿÆÈQ7pšðº ï#ÜaéÚÚ¹r±åe…Oâ a~Æ:¶GbÐQ.HXÑGúøFA݈J³Å¹æöëWÚw¡Íœ¡©3ô©Ò†GLKý5ŽÏÄb"fJ¯®CŒà2œmÕ 8¾k,Y2'uûe(á€/ì_·aúº:žá£bôoÇLýWs¼¨ù¢ˆõgîUP±ø ¢Dôòê»™¸a=1m»ÃÞÞxâ+àðJRîÅ`Ù÷UbF,Õ²:øCá’õSëÄ`ØÅÅ&S¢‰7ÂâÙ‚å#ç'ðb«EaѾ5}˜-ÐbZèÊ”'¢Rñ¡±ÎÉÑÿÚÛ-GS=l{0îšÁ«¹¼/ýÄíS,Lq†:~¥ M~áZZ6i]Á²šP*2 ©ýÒ?Á7ãr°zððM«ó¼Ý)ö!ÈÖf;×…zOdèŒ4å¹NMOq!¬%q8Þ-´xÕW¨ ¢Ê„ªUÀ&½a9õõ†®ZŒ1*hºÌ©G¡z>ýö4 "†û¥Bû㇬ŸW.nA8ùúu”Zð[|³¡œÊ´îgC}¼¦³ª¢ÜCñ¶þ‹ö°’”Ô%ü8 < ÉèÖR×±¹Ùðà+ÈÌü•S5f¡ÚB«Ìšõ4y=±eEü«nÉGqÆÈnøNhèæßrcÓ+"•wé•XV|Bl×åPK%«W¦¼%cL‰¿¶~sòcÐQ?èF’jæ²qé}ª|)·3]ádÀî¤[BÁ\[í^ Þ<–°?‘ùRµD1… á¾æ$o§s·'›ºTÎøƒ³´Q¾d«¢»—÷hÖ"²m6”][È…ƒµ_djlœÏ4£‡­Sn µÏû |ðöeš½¿­Šü-w[’iw²Ÿ«¼‚X»' å¶ž0ÎÏÖÏ0é]„šÐPꔸ¡,*$m^bA¼[§&p0Ï™c G}–±Êß²˜5SD^« m¶^‚ódôæ>âuYñaT%xÃ_™cæÁH5Ö²h ÆF3Úþ€3]6 äd:ø¾»b¥–™ú«Øáôw$WÔ\à‘HðŒ7ÚŸ…{÷ù]X…Ó^$ñ¾lú}W«Oyz,"0ÌN‡»‹â¾Û¥º§h1“Í[¦ÏÎ âŠ>|¹ßDÇc­’˜ND ×ÇÅ<¡›Ù÷ ó…À×ïИXÔ?? «žYZÍÌ!ÚÚ§)~ÇóV³Ä~Ë ƒõknYÌiLpxÿ#…ûFPŒá½#ÆcÔÌ0«ŒES<–;‰FÆÊ] õîEš·Ót`Ìê°ŒgdJe¸ÁŠjbhø…ÿ‡ÃÞ¡¾‡Ú'çLB:§Õ—æ’Ôbê]Ú²ké~ô2ñùÍÇ`Šo¼ÂjÃ/,äæÈrBhÛ¢ñ*‰•[ìŠs”ЄÂkÍ3µþòüþâôÈr©wtLÜsMÓ|?s²M¨ãâ„(«q#FêÚæú]{Ä_!°ªzé ¿£¨}"¢3wŒ=œs¶’ ¶'Š¥„+¾.v«9qKy¸ö[üY‡EPîkYÆi Heä”LزliÖúE|Ä*#À5ß#óQéQXxÃkðÆüŠÉêŒ;SÀÑç oPX³ëEåÊ›S5&ÕjVâÁ6øi8Ìó»2˜]¸õÎ…geœª¢:ØëGÿóì÷Užä_ÏîR™¹QõŠÞ‰°‘êlÄ©N‘TøâzÚmaX:TŸ)ÉÄ>/ y)‹Ÿ"zÙŽÞN¿ÞZy ð%È÷ç硼m†Ïèë_äem–œl<@ùûBÍõ‡StßÓÊ ª^HÆU9V?k}@E«¡wÍ?"Z/Ùv3{£õá¿}¤ Íhþý 2’¿dy¯Y—~ܵJºS8¸ñ 7Øÿ¥ôüÞVKX¢–wjîÀª Òrc/6Ø959ˆo¹¶ÞmÖ†Ê_¼Â!=Ô€ÂÀ¢®€?ÜóÌ’ëOÓù6±Œ,Ñ:LàaߨHçq¬‹¸ÊPB_õ(ìhŸ]лW±~ך+ „Iwúh°è<¦(¼tÜuEcõ5ZG*ødùQOùákßkåWÓó]a Õ¼7qª“¶#Õ· #êºuç(W&Tµ…,—À¤aŒ~Lk¶®šCûp°ÊKÞñÍçrá;Jµ†R䬰#ó â½:“ÊNõùyj¯\Ž’¡èÆïÖó¡P†¶S}ª@Ù^žûð"’¼éI*äÃJ¨_}ZTBÐ"ÔÓp ýxÒ¤ú”3Ð_)ÊEØÚ¨sG•Oÿà²b16#£”RCT DKv‘ϘLùW§)bnÞg^ZI–\-û¼(âê»Nš¹ØàŽÜz®V$ðVÅ¡­|YALùZƒ¯dU¿…“à¶æ°.TvàÙé2岯V,ä¥kÆH©÷í:L \#Îð‹o°³&~£äDX¢˜fáî ˜àœ§ ¨11]§`æŸC 0Z>ËÕçÏý˜”~äÿµ~¿mó¨ŒZÆ!³Ñ Å'Ý<Ô?;köËqæŸô=“–[›^ShÀØù¨fÇ’°SâgLø“œ.ÙÃ{ ½£è|ãóúˆÖ¦í~Ìuðª33Ïô@üP€‹«\X±|ëÙPðàì8I_vZ;˜ùcÕr‚ˆ@üÇæ öa²p’b—¹Ó¡”¨¬/qäŸ$p «ëø‘Øw`É{›ûŒ•ÙÌd^+ѾýBHxÉòó.2Gó÷v«ÊW/ã‚›½ö¬ ÉÓ×°{™«ÀÄ·Kýuª?÷ņÛTZŸ=™qb³6qDѸî"Ç8R/v婘Á€›_œÇL÷ãïJú2'aCµ¦7 Dû}Ê®2³™f÷LvAGeí\2–Ž>>Êrý GiÏ"yú‘ÖJ=ŒÒ7;0.` ƒU,:5¨c¤ jrávýà¸gN$¥§MÍÉì:ó±Î[9ò»5€Å àFÊ¿øt‘½?òB±àFg’˅ʦ/ ­Šò†–ÐߣRü#Í5ñ¨]ÄÎ]µó/:Œžwó 4hا]^›ŸM•wc„'ì{"#özÃ|ÏeIOûºÚš¿Œ‹bßßÉÃe‡ÚpC…%çCsT£$dk®G=ª§¬>>ú­+åYAä“R3þÞëjé}0ŒBÞÁwÚk2-ŠÇÏ9aðÕæt ’ù^ŧ…÷8æá™ºŒ@HogHà1ã~;âÛðÙF|èèj›jôÆPW†×õ&ÚçyöáXYîÂêR–\*¿ÈÝ…â¯célv_<¤šÌfš=z„~Wfv=7¼¦‰þ\~‹ 5AÁ¡>ŽFp»W¤dÐ4¡¶Æ‚ ¿¶’Øh0*á§\"ÖO‡>Ê0#*T*`øè3¡¯rÉêË—ŽPª)Sî¶un6G‚È©Ä'‚®ÆÕ½c6ìØ,2É"µ”6¶}G· ›óóºÓÕ%‹2[õð|0˜¹ñªFfÝ ÞhL›aŸAU£v›£Õ9å^ò @êü¯yÞ츱/üµî¸˜êÖÐàRŒï{cŒ2??ø3VµmtjðjÀ C§ŸÉì3ðìuš•‚­;7¦Ä¥ëå¨Õ×gg·Ø9üt÷¹ÍÅI°´E®qcŠVσÜÅ # !am mñ»~Èx…§[É´ñ–·ÝÙw}÷jè¾]@åìÔS-~h¦dhçr3¤ØZ¼?˜bªL«*šn`(€`еm0™Âð¦\#r:Q1EÒúã™)WÊV—‰³}:­ å(L.5‰1¢Q Õ ‘ï05£³?*„×ûbòòÀÌÎZ4øÁZX*:\Ôl<Á*xô†lW9 ÷Ú>¼¥ÉÄ‘ÖE öU\ኜúa]](âB¥G %è› 2gýîÍÀu>àðQÇV$'ÙIx‚AK’c4×3·û}Ñ9ѳjïß‚™†MSêË‹_‡ÓÿСz<çghD_q/èdÓC!\Ö.lTøùÛ‚6À¿6§5-%r#ËIf,¨AÒjÇ»·à•{`DgUÓ Ocõ„&ü§v@s…Ü‹Œ}áGŒÙè$ükü¯Þ:%.Pã^B‚{YK40dÁXd½áI7Bõ½ÑZ÷^î”t´uàÝ}1?BñuZdÒ‡²0íBÿ¡›ª”ؘݻŸö¦6AˆŽèÁ/ݘªB×ßí‡õ6‚¤}Ó© ¸ Ÿ¬j)¯ûÌÌHª¾kúh§K3§q ¡EAÆ=Y@C$¾Öj(Óî/Ž„ZFŠh×ã!hEàOir]JºÏp0 ‡ôº‘¸î†ý´ûæãÝkp¿‘ˆòK4³>“¼›Ê‡ øo ©¼’ÉźrÐMCÿ8[n÷>?'ùOÓÙ§.“6ßg2ëZÊ«µŽëžÊ8 /8³1?ø5]¼<f¯Œ‡ì³Ë'^k­­T³>QùJ­Lg¸Þ³S.ßÚPü‚Vgù\3"=”á‡ð¼Á3½kÍ(êWŸ””…æà• ñ9Âö/H{ÇåVG6!¾ŽN®Ú…ÒÂu·KOæ Ð ¶D}û¹ë*°¶ñ.cQSg¤²› 8žŸ ìJf×ö-õ0P2i†Çe™AlÐÐ`‘'Ù…NeFHéŸÉ…dP{¾¬FQ/Ãî/êT{a’®xs1nÄýI³ s#ÞÁªÄ„›ÞÖì3TÙ×§êõ‡B¬ffD´Åp4Å;ÀL]+ÒÞv‡`°Æ–Ð?2xmïMÚâ4ìíùŠ3ã]J¤OÎpˆÑØ’Ç; ‘!ôSo0%e¹˜%0ÊÊ#£ +´p‰ì>E/T ‹ì- ’z¼¬K1;v Š—wónÒ ýl¬šL’Çê’ÃÛv°«BF˜qƒKhQBàg¹Õ¸Ñk¡zìTšÕ*‘¶w‹ ëi+ †H§¨OµÍ^œŠÄ'iÓ~~;Õ«âVµ… Éê%»¦ò ûoÝsÉ´˜!ºÈkì‘ݲöt¸åÙ&wçð¨8ÌñV üåúŠ‚Y?¥Û†\^ÂGÙ4‹ê““}Kk´CŒžmTcÛEkû…<Ù@£È›¿ÂÕÁé0ÕËè7—²rö "–OÎ} WeßÖ;¬&:Ðö J¦©ðbÒ¦ëƒ÷hüà‰£°;¶ÊBÀòq8^Än4 ”Üò¡hLd¿þ™Œ/ø»ìãR<²’Qa ¸ju)ï£M¡¥M:â&”9&ŒË°€Œ¦ G*¤sj?«­«Ð8ÄÖªn>Ž©²ÁMl3:‹”vnYvßdë9@Z‰Iø®ú΂°×ò£û×ör”þ¡9SŠâ.ЉsÆÌ€îq.¤[ 4i%oê1 ‰³xßøæGÛ'Á‰ÜõŸ¡h–¿| r7Ÿô¡íƒâÛèÔ4ÆD.Šžê¯>Ã`Kîzy˜B2c±­|“Í‘‰Ö 8WöÁvöw Ù —üF9ˆ#þ#¯©Ýݹ1mläÃþ9í‡ÎË¡—g¡³,fo™Z&µ¶8O†Ð8+Ôp%b[B‰U2K¿ 2Þçú!ß¾,¾üݦOæ£qpø–š{GލþÛ.AUkot¨ø¯dF³Á`)¹Éç~K[(xä$t3+Ï3 õqc->!”´ÊNfÚƒV‚3j(“æW1„QÁYïê!Hs?ºîzÆÕÔ㹕#"„uJ§Oxû­À¦hØÖdø82äDšŒj=òBMÚ?¤,D×A¢Zé £v¸)¾ îX¯K&.? )“Ì7æÁ§çû´(i‰/Çaߟ@UÛºÆñÑú[¡=äÈ´GÄš—Üoæ ^ÊJš9Ç £……êy§&ÞÕ®Ì@Ã9ÄLR ;£Z²½˜l`_÷:¬}=hT‰L—#/åéµݘtÊ­Öµœwý`m³¯ˆµ>eZõ«Å¹‘‡?þ4n©Íc|²(¢p~ò.r÷µòVô‚¿¿ÿš½{ÿ§:rëF,¾ó%”¾Ö„«9f‰B›£ ·jÙ>2²áÐ:–Þõhø¡¸,< N csç T»Â —däWëö¾ø-äìðÚ†¶žy:U•§)ý”§ÚÒkæHJ!Ë9áÅу>#‹Ô„3SQ¬€!‰Z©B¢ Ã){a3ø{ÿOô–Q‘&ïÜ1®öš¸›Ç£Ñ¼½ã`ïÆî-áÉ5ŽC|¸à\þ1‹Õš?/ãüÝ•I›„(ªD•éuû†KK~ÐK0–O\ÚÜ—`O‘•+nÒb5õnHÒ­.'EišÑnÕñIÌv1M6pÊ2|ÂuÉg™3°õ ñš º“ês´têü ”ž7—Pj¿j‰Ë8ŸîâË "I~ý !‘‡³‰P ŸnŸäa{—PÕ1eé´< ¹X¥Ü/¬ÑJ÷¹¢ð\?iÒÈ™µµgÏh¯®Í:¡ÛÊðbæÀW”Â'¤ï>‰ÙÇ*¹ ®ª ÑebCìéîáVJyûG,ËIe±ì‚Šƒ"K;ŽëgéÁÒò5 ªú×·v_x|¶PxXϯ^ÑqÇ1·¹Ìbˆ©rGÆ/Æ.™e£DÈoþg¤Y6'›j¾dcm³ûÖ«d› ú.·,úd‡ÝiNä]7³DYvh7™B—©<<$lÚÀ¥KS8Ÿ£òÏ¡}‰bqÃÅÁIkÌî {ºd¬„¯…ã…/{E])‡bçJ†Zèèa{œh -:”ÛHÈ9áDšÀŽœ~km\3©Cuž‰uÈÏݲ…Ád¾ µJþ^ÃkÐMP4v2&j…(£ˆwÕT—ôáÓÛj,wÄ„4ªún Õ ?g€·SßÃØQC'e쑇Y)øÕ¢e¡QDG”˶î.–œŠ+Ú$ʘajº¯)Ò”c¶àù K–­± #pP‚ÏË5Pð õ!äïQ$Ös“*ˆ'mQ•F™v:º S:P×QK|þç¼E3¢²Å=½ÏiŸVónŠ(Bw„ý!°í§)ëù }¸˜Dì¶Zt'vIùT%ó”¡i2*4‰©ÝPC¸)w?ž)ϠͲäÍj‰+‘´èDþ†4bÄùÅE­‰U7jv#ÙçEÂrÀð!äíDvuaç)‡—Ç\}1t˜·ìÃàÊw-ýܶ’´e.ƒTÈ/A²«ás@ZUåsvt[aYƒ¯ÒkÔ#ÝQ6AŒ/½(Wø`aþJüæ,~O{­üìüKÊËS S¡¯ ‚mB\¤<‡’45Ë6Jâp9¦¤ÃdsªIztæk=#8ÍzÇG_<Á_zJFº1Õý eÇ5çˆ=g×k,4ªç_ Êí7åœ/Å—œkŽåµqèU±l^ænÚO¶Ù6`ѹþ„lz¤“!î“Å~Êß.Æ1|:Vç­dw*n6žH#Û ©)Ûx¤÷°·Â<-uc†ö ø¢_6Âz:ô ópTäôÐqG†šŸÌ¥‹sz4Ñó"Hn˜›¾E›]é 3ßCßêbÉf“öHþ?ž4¸§ˆ{Œ™tSúaÄÙ€Õù€GѼ¿s%™•èHûÉ¿ÏØüDTãÚØì©qÝaû"«åZïaìySÆ¿,fCT¸§# Ú(XâCˆŽ¿h5#†o]±äœ O¶ð/¢·wÒkmëÌëV"]㛡pOÛFdÆ;£â{ÂŽà¤Of'Ì®Å[jì;†ÕÚóÉK/ Ùp%°ÔÖS|Ö¸1pëØõ{zÚ_%|¨V`^'“Ö‡7R:Ë?PŽGøÈÑ·ŸßÓ6ù<¹*[‚S[#"H„dÞ_vn¦¨ )QÄ1UˆÜ[ϔۻ³óÙ5Ì#UÈý†˜:ì$iäBüÐÂïÁ]>.ã%å!¸Ë›W>Ÿ,Íø@DÜ7CÛ~w”›üÜ w#A”&9,÷¸d½2Ç¡PËúâU39}Çð†Y q‹ö5pT /ðUï2Ck<ëú#,Ê‚ ⋸Iòˆ0Á\6Zão¡®6éÙ|þª(èÕ“BVF>‡^Ï[õˆY?øT²yq²B?Ž(fYe¼r¡BZo3Lmreë=¢+ö%Øh»gDëK |¼6æžzj†Yý°¸]Õ]Çèøv†‹!Õ¶Ì"P yÊ O¤Ñæû¹acñÇÔ7á£=Fov; mùo€s}Š_z>ƒŸ¨óÙ¬øná ‰8_½#}b<Íi>3k1E†d¦õÓH£ÿIœeN6UûìnÂôdñÅtî[”$Í7H‹Ò +x 3ˆŸ¿oØ…Ȥ©STKò<÷ÁzšÁRí“ë[žº˜^“WÀÁ9ŽúÊìÔ}gÔœ)C£Ááõ€amÁ-æìîh=×ðQ>¤mK´_ÕžôÕ4•ÍlUáí³µmnk¶r§´du)}†^ë|­áÐqñœùz |¤¡C)Ô³öP$s :¸ù§2-¤6šZ:v]«ðûµšdq]â[.Æ+ðì8¥*¤Ä 廓{š?~ü¦”Ü…2ñ7Û‰^æeMm´»ü4¾UÌ?–a»„–K=‹‡+%ò5FÛ¼‡…ØCZ¸µ~ˆÀŸ–³ó÷ûÔ.wø%SÊ ¦çóØŒ^T8'rHOY©ÆÄ8!š;IZ‡!Ÿê*s$‚« Pö”§©Ë~¨LåÜ£2ªú=ή c9‡Úº©à‡zá2°ùÿvÁ\AëÀÑÌ¿48|µ§ÏW ºN*¶ÑLŸ —9®!g Ö‚ÂêÌ3·à³§ù„K“ã¼Ù­à,¨EcÕ],Qôر2î+³µãò=ÎU´ Bï]ß´ñ|ŸvrªKK¢):ª›Çï(‹Ìž¨´»`ÂÆ#ú‹V<*DÓÒ$>¾u'&Ã7àUEc–õ ú^iV†F×àQG S0Ûßéô#_·”«:ìPÁü."Íúx®Äžoú“BÒ)ÌÓDZ–=‹üACŠò2ÐìéIz«éa=ÏÐø»ÚŠs~W<5Íw~«‘^ßÚWöC,ºATƈ—%¢ª2ˆ†R뜬tY×™ÚïQÃ9}qƒ¦ÏüÛ¶MȦ/`kÒÃEx® ÅI‹í±@¤—p€A*@#T'ƒŒ±}«~ÒTV£ô@YÎR!8GJßF‚ ¼Ü–ÿ®š5ä5áM1ˆoþÌ?Þ9.ëZRO =+kmµK{y¯¬rÖÖ@ˆ›iCüÜt+®ðhTªÜ­Ô”4ÀÈ`˜$ '8 8/•±ø.¢0p§˜Ó™#ò )¤8¥E¨Gi·ûö­§oÖ‰e«ül~PßdW–;Ž~i­úC×ÕØ‡@Þñ+D§ÔØ0K!@àÒYÅ7îÆ0" 1pyÂp¿z-¹wï4GúRý;GÉ«Q4ÃÜ0ü*…*†ÖWÙoø2ôbX2þúÔÞÆH‰\ÿVDõÌã«iÆ¡ÓÊÞý7IÃ×§íRÑ»˜F¦z~a[û:ꊈP‡Zâù]޲e¶Eº´1z6+âl.xDgK—<8ú¬?{ô)ÒÆÕ ñ,ÃmOÛè•ôü’u'6Ý>£»eXÈ–çégÄ­o‚Sc§Oé5 ÜŸSßú-"Žž¨! _<„Üu>SIÜË9 \±qÛËåšþúÙ­tÔƒËi¨¬æËo¨Õ–P =YŒÛ‡T·ƒ˜‡ö!$Å@Ù3ÙiìB]ª¿ÆùÏר4ÑŸQF«uÓF_e4ÌÏXšƒ¾VÒç²»ºh»›”2‹¹O·¾Ò÷ùÆ ö µæ²·¦™mì_ž$²Ç_=K‹dÒ7O»Í+±AŸ”|æd`µãNì’B¤¬d·_jŠ ‡àEæ0z^F1ì«ÉF€ÕôÌ ÜëÑ›0¤¨ñwHØ2Dã$¢~ªœ’aB‰ #¤ŸÐ©¤Ó;}vuî‹][©q“ùÇòãõìèÍcùéQE#àès¸%…P±B8ÇïÁÁ98²‚I4ëËp3[:nQõ W’Å `§î˜ïühy ò%}”fÉð‹ûIk7Ts®µÔ̯\iqnˆ#çhß»›Cm—½–þkÊù/¯”Í39.eªNZQhîHb•Z_ƒ©)(0W[/_¡• ½=9ËM¶Yý4Ê$,a§¨SÔê2+B•7¼¯"{æ§Ø†aeÉ—šhîx°7ßDšXâÜêÞlÂ{ÿ´YZãqÏÑ+®²½æžSý0ÖÛ+šðW€ÁÖ¼†hg¥ÞP—+ñWýV7 aSÞ§Dà~ó”´.–¾:Ñ@‰Œ.£ÍŸ;ýý&}^i =Yv= Sè}ÛFüdެbB +W43n—‘¥ñ$ìõ¡Ùp3GÓ÷ÍñNÖŠrœ쯶M[h»””•ù”`¦*P§`¿|³ ˆÏP-ÖŸf«MÉô‰/|VÄP]²=ÉÜO•°?I6‘k]½À6?àGy1ðkÄv«úÚÏ 4½È;f¨Ü ‘ÃKâ+ßKû䪜'mÛ_Cò*b)A´ãÏUG¶–v­²ñ–qO.£*ß«³¨ûðØ6ê„%bž»@Cp4b&¢}+Áå£Öµ’ ¼†­? {±ŒÜ(*µõãMð˜=›~b"Ã:UÔÝÝÆoÉ^ÉGy[“Qß ²o+Öÿíum>^k",=á‹ü ! ‘ÓÙ7j†+yÇ›!Òá}ø¬XU9–Ðñë¢íx ýôGtàæÈÔÍÑAº…açu1ÛÇ1Y/½‘óuðW„ÓÖAY£ mùtþçÈ> stream xÚµUy‡ÂþÅÇذB@š ¦2稞³ÛÃd>,!DÚ4krÑ6²ŸX¢  qø_|ˆl©(s0!æ—Ê‘nˆê°ˆdìµÿ]N³ñÖ•KcA @ÏPø|J¨¤.¢=CC ‡ ™€Å@\“a>7ôdÑ•Bþø¬]DÄ8ÄŽ|¾ÿòûéÔ?ó÷š@à†„£õ ´ž ¡ÖÀÐ02Ò‹ü JÛp³óƒôôû³h½ R%Û[¹Ô{ÒËö]Œ²ÎiÌ_ˆ2Á \R0÷rH^Ð~¢ñ޲"1³G´È¹±û¤z.×ÉÎÔ/êX tÞ µg{ºëfjá“QšëæW”(R”²¬µeýYŒ{ìIÒ³ÝùåªZïÎf{_0xzòVò­µ€{}Ÿ•É{‰zg–}JSõÍ¿õ{yÈ39¥»ÊÏïŠÃ3òG(•–íšwfïS¨wXÄ«¸'çóuµc~Zø‰È/ó¶ø‘V9ÁÔáVíE@”3l(e±Ð}¢ªs¥QiUzâiå‰ú»IÙNŸ ð¿ô©IÔ¿¢o{‘ï½y>Úþ!u{‚ê5ÿßv–Ïëü³a㴄ΘÚÒ„¸¯ŽTO¦vXäÈ…€)‹§÷âݧßï)’n'F}é¹Ú¨ZæåoxMóøÂ‹»£älÉ­¯¦ØŽíù“>xÚu§ êî||èªÖŽõÎa7$–6Ë”×}éº[/)ÊÈÖ;uÓ†³²ÁBñâ"d»6`Ç#ƒ˜%øLýõ§âÔ? ²a&9¿…]HʹDÒ9þÉ´1!ÜFF;*笔œPûóÃwÇ?Q¨¬òÓÁ)uì ü¤lì3rš¡5ÕŽ—‹'‰+js—K¿Ïa޽p ¼ÐïÞQè§açúúhEté|‚ê;»ÇŒW$úÞrHŠ£Å:EZVÝܨž¾zsþÙAZ𚬫å&þÊ“[ëSâïõáÝ¥„b­é'’ƒL– sžæQ§öð-O-rÕË Zì]ÖºðeÀÉôè˜ *Së1-¤Ê&ãݘ€h[ãë×ý»Q™óÎw3$o— ¿9Xù,Œx…‘ 3w›6w4—²OM·w€Ìîb ´GÑxç𻟡ÖŽ©ú}l讜ÒÇǪo?æ%¨gdç¼ÖH¬PqóHy±ïtUñxÙe¤sEM›$ j¨íÒv;ã'Ðô;çWe½¦…<¯¢5|ŽÐo÷»ÍÁ£*-»*×Ä–ú³Äa™kOý¤T¼ïAÛcv»÷Z%ÈYbN)Gơք˜Hz >qZR²ÒÃnM؈=û|uN½l¤ÑèÈײèÏ÷爫oÕ ×Vç½k×h.}©'ÍÐXQ6ùØÝùxú´îˆxsy_ÙD¿°_æö#Áíß¶C ‹¬dxý£qÉU¯¼¿L›OZtêñ{øì‚íûV´Yy–¤å-ê[žsõÃhˆÓ5ãëëÖÉ©¼4,h¿¢R1tyÕ¤´O·¼“ Qëá˳o>¦H$î¾|º’#vûíîØ:|ÎmƒˆiŒiAIãeÿ½f»[ö×$W}Ê¿•"“F ›È(²*U¥óå;ÿsôãÅê胧ð:éóÇ!©gf'*¥J'%x§œ›«±jÝHä€Q»ñ±ž£óŽ•/?=´AÞkóc©§kÅ‚œ¥5—;ÅU²¾:2V ²éåÄ3 %3²ÙcŸjeé×dZ7ÐòÒCúVee˜Ì¤6ÁÛ¾øäxÑçøæj ä¸nâ:Ú¼±¯°jݺ®¸'Å}äõ #Úm­ûdi©fÃ.—l“ XM×·Œú½{ØÞlô"©ÑX«È°GO-âá%¢ÑåÔ>ñšQöe–ÕþdñÓ´'ª7§=+˜þô‡í–WÕã0¼ óFq“¸±üGÌ­ÉbÏ~#yÓ•§¶NÐ<¿¥5É‹…òycgjšµqìè=°¼™« +ÞýbAeí·m¨´oåÑýv´¥ 2«Wò¯É¦Ì ÄJv¹r—fô}§€«4éÅä¹Y¼÷#¼¥|ìÑúÝZóìÑUl×g}†eÑDKÝfÚ†* ‰}ÕËßbTpý᫤±ÆKv¹vó®Ã®™6-æàxß¶ÀÛq%aòg¼sç½KŇžˆVò\v…šö_Ûë¬ygÍÒöÓæ=Ê®U„-Ò4ê+5 cþ’mú^{â,Iì=' Y ÕPr"sÄpWºmÄà7šJòmWkJÅô´Ù¤£/rÙö˜ôFUhÞµ¢)Õ-Àh± ‰åÆKì—vo½J2/s@³ÞíwªMλIÚÛ›Iûæ{æ+]s†ã(»H8·cÇǬÌܺâ‚ÎÓcÆ2þ§Ùû/òН<˜¼û¦éy_whÄT!,1çgË‘;¼my&å7³–? †Þ›`r]÷&¹ëõG—Ì”ìßÄ‘© ½´)ÃÈ¿ïÙ¹ 7Ï7Ót'ºÿèV¿ûq·\ ºË±ÎÇÿ»8îGûÆÆkTmXÀÙrª7»ë+ó³ØÍ>Ÿ³w‡%¢âÕ£Tdû”)¾g&¤¿·òy¬©kzXfìö¨«ÍM5õºÛM{ ýYNÖendstream endobj 333 0 obj << /Filter /FlateDecode /Length1 2297 /Length2 9884 /Length3 0 /Length 11260 >> stream xÚµvuX”ßÖ6Ý€ôÐÝ% ÝÝÝ1ÀÈ0C -Ò J#€t‰€tƒ„4(-)¥À7ø{ÏÑs®÷ýó»æzæ™{å½×^{ía¢ÓÖã’±‡Ú¡7¯@]CÃæ¤³ƒìøx¹tŽž`w7?//“œ;ЂBäm`@1Ÿ0Ì  t…]l(@ ºÃõö[_€f£ïë ä°ÚüÚP—­\ „8‚ @6¸‹ÔÕ×äè{ˆ!ÀÅõéÁ[– jcç õöpl öUn n€&Ô.X¡€-ÐÉì€:ôÆ=]=€’®–¶7<°ž§«+Ôý¸Èéé(qäe4õ@CN€’žþ÷>çïÈ ÐÔ‡ëòÀ Ü5ôeôM´øxÖàxÝ=@iÿ‹3œà5¸«ƒ;Ôåw« æ*ÆÃãííÍíèéㆺ;r»‚óÓwy¼¡îÎøÛþ.Œ'Ä^N˜ðŸ»PÙ!À'Eè?Jx)áNp9ìßÄà…€=Äÿcðÿ#“Ço_ummu€‹ Bl vpC˜ ÌÓ`ý[€ö,ÿä<ÝÝrhüKåþï4ÿ¢. …¯Ìì`ãýß;fñôðû«6ÿ¹l;(Ääóø'"àØ{<ìò[¦!£©¢¨ §Ï¥ï=—^7ÌöÛú!žŒ¼º@XTÀúTb/uq³öÀz(Ÿ<^'ÔÝ—çÿhpgÔâÿi@{‡‡]°÷tå1€€Ü<*òÿãaý‘9a^Ð ô±sâyHý»sÄ|bxIü]¡®°0ä„¿°ü=l¼€˜»'0ÀÿoÅ",>€=ÈozøÁÁú]âˆþ#†3ù—êÚ•Ÿ~žØà‡Ö ûìX<šP¼9Xÿÿœ¹ÿÊ¥è kÚ¸Yÿ÷Âþ·µ ìû¿Øÿ—ð7«&ÔÝÅü_:‡"Èh¯ ‚Ù9ýSääÿ„’8‚.>An^aþ4§ okøh= ·½ðéàkç zxy«€ðÊü{øvˆ~#^âÄàQþƒ<*œÝ$àÑø7z¢ýñxtþ xLÝ?SïðèÿAO<ÆÿF¢ð 6\gûo$÷³ƒÒ?z>^8ûC~>8{ ö·\ü Ây9üÂw”ÇñᆂO¨?&ð4NAx@Ax!Ÿýá|ÿ‚pÂà¿ø<@[û?„„áŒÁmñÇGÀãòòÁ Ö Oç tAÿZ%?œµë_”øàÕuû Âùÿµ>8ÿ?Ùá|=À6-žög¸=|ˆþ]Cøáñü ÂWåõòà ûüá÷ý ÿ³Ûµ.ƒß³÷OûÿÏ-ùëÁÜ¡Î@#=ü?Â_&ð#áò1ã…&>¸þù×/‹ÿHÀôg¦þå-+ õñçàpñ ñ>ìíxKóü‡§Ý?×Õï‘?¥ÿÂwôÚa-|†Ú‰‡?ËhŒ, T(œ(Geå>¨$•4VMFYÈžh§|,Ÿ·A”* iÎa.‚ª+‹Y¦…@JŒ™ÂIÀw+-©Uãçö:Ò›6”x 2ù†Ü¡9óÁåôl»ª¹&o§rZ“[iÃ{r¢í]×ñüc÷„§éôæå­Kù¨ÞÅ3|MÜÁD>ó”óˆ°ûëG‰q6eا­ "I‡UÑ\»»ˆ·㊥~Ųnåðî Å9™'Þ|ŠÇQãÆ•­¶ƒ y2ø£He™kTå)1â1õ;îNí¸³îï™äÁF±ré?ù|Ͻ¨™ñ‡ì¶5—Æ0¶:°õuÒÎx¢©²îžx¯Š*-nt¼üvŒÙW™ ªº}A¯éc%©ú–^Þ®$øR×~»y¼ÖR'ûÄÉ—cÛgáÚ•±ßxâî§›X6®ƒÎ\\â B‰DúÀ½…ÃúÜ‚]“a ~³×Ô=×É/Šy$Å-âi‘·A¹Û(Ê¿FÕLçø£æûYº¥Kêº/EEŸdÌ*~ºb$¤¥¾ËÉä@QÝ-|º•^1;wéLÕ>Í—ç2#ò6DAl³¶ÂÁ~¼#¥%“ŒoZÅìƒ"kz +öX9KŒ Éä›V²†ä$ëžlµr;Ù^h*#YÈ6ªmÖø®xVjºŒ}8ÅsIE˜ÊXhç9Y‹O@ÂèØÃ(Œ±Lz vè:¢·95TÇžP6v€µÈ&qw7q‚,˜°ü¼åg4âp Dô¥•ž¥`ÀÎ%:š””—w ¸áS}Ï—qy®EßÛ¥®qYÙ´ý©V7Smí~™ìQEËX˜šI³ÉU àFçE¼aƆyûUðK’èÇÖ [©ô “Å 2íHûr„Ÿη,ÌOQ‰Y~–sE7N*ùœ?~|pŽ3]EöZ¨ª|¹SƒÇ¢X:kгv1Ó»O­¶Öh¦ƒ–#Îâ´ådôä¬ñâjN§1†E­ÔßT¥?}PÈI¶&êRÁäþü²Ž²^ËÁV¾ª’‡ý]Y)aÉÔçH%åªäa{ûõIu1V «á6”¹€Þ4ËpÒÄìO{ÜL}Þk{{Æa¨¸ø 1±rÏ_e-#aìbn/TàFdNtüš1À¥ ~_îŸx×D¾÷³/çXZUø‹*ú«kö»)“ÌÛÉM%ÎÃeÍjËׄUÊÊWS_C¤ö*«pú_¶m9®žªxd΢f:T‘'Þ…Ô°t /¶;²È"éÇJ*´³¨ìÏ¿‰ñ…ª|ñ'œ& ò{L£þýB.ß.Ÿäëa½öšyw¶·²ò+„žÁŽ£Ëú âª\.NñIÓϲ!xMmÛÊÂ;D‡K¾T©¢™Ha;? >Ù¨a˜®Hu˜¥Fû¸‡­vѹ~H޼PÜm†•-4<ÜvÆ PF(‡ywf°3¾ÇgÏ»cȺÒFñîbÿ”ó;»sW$¦ŸÉ,Rß ;õu°Ed™óëªø/îðóûŒ{—-îÌ¿ÐèhÉØýÒYà;nçÖç\€:½õ®ƒ›¤&;‰'éeqø›zr¯Á¯.yŰ³9t[a>Ô1ZËi,u&Ÿc—}&ìw ÞÝÀƒË»ä·-º­>Ž)aÂ1 @Á§,Oo­<ä¾ê1“âÒT¤â’%ûóó°§ãq(^êêDwSÕm°¿‚iM Ü+nïÈäµD*zj+uAšPåz¬¯f[oo%*M]´é†–ß"ÒÈ×鯅iwTSãŠw sÒ®Š];o›r¯§}×ÄŽøü Ä“v%]ö±l†XÐ]2™Ñ<´§Ågq %õózýêâ²v§úù2lHºv›Ñ"‡à¶&½k;Õ×QµO‚A)·F§™”,Î…A[iô™÷äRÖÏä´Âk5á³ûf»yºì׫„üG¦z”Ò<´Ûfw.®XbL¾Š Üéön$õpstq2Ù̧×Õ±æÃ^J~AìgY|/@¤VXþh.mÅÇ"®úæ¾7µñÞ_¦EùÄ Vg:!¸ðõû =÷„þÅ7–FÙ” ™D^Ñâ"Ñ$ÏXÒ 録 dò^6Ú0[HÓñ* ,OoÕ%=uD”rŒNÚ<´PM|™²ç¢guެ.;»0šc‰¿D¹bŠô,ª‰²'®íW}D$y5Ì\\ÍþµûLkÌýÒ”ÈU“FºåpÝE—CÜp.¨j©“`©ý1Zg‰Äì#~C†F°³túvŠ„ßäè'ž2½=fâÜÞË6»êȤdTËÙ¡á.¿-‚‚VOé9û";ó¼5Ø~˜ÛJÈSú9•S×°[ý@B‡6ö£ "Bç»v3Dõâô#+5ú©âø_š`,=-Ö¨°û}7ñY¦ßýyùT ˜‘ê¹öKâ÷=k¶ {Ç\ÖðÓ ´Íòb,ÆwëM˜+uDCÍF‹Í5/Ý‘³34‰çãìhúÏlÒÔ1Œß'–÷–7_ ª)2úm¥¸{XmÈ,ø—°¦W±Ý³%yÆ=|A‘DG^/Â"ŸÞw.úì.ú¾°¶Tþ*›œ¨%ÈÛ¯`ï‹Àb›{n‡5!„ó¼¬!»ú¢°˜°PäYÀþÓô—â£U™2MœÅ*ûº$ïÔ~îšì…;[’ÄèxüÃ]ÈsyW?ûÃõNágIyÒ"ʆÁÏMkÕ™F©÷t«G@VÇ£˜ޗ¥©ƒ5)®}â–ž¥MÍ Dq®â„A6PH®™œóË ÈD5Å3L‹ÛÐ0ìv@sÈÚ"$ý¶xÿ‚«šuyÀî„Î>ïwñ®Ãaó|ZÓpîúòÊòáúÑ7àî|¡=¶MI©[o‡¶ Â@Þt°6-E=‰Ùö’Ïhkƒ‡ÄÛž»ä±ýÆÊþ½xä(Ïã+%ñQ·!_ì}Ö‚|µå…Zwëž{ó©–C’W>ºº«‡ ì$“ É)FÝï=Eº^rù Ýõ±"YݘÁBPñ ™ XÇ'¨(]rLv ß¿H”õò%_0¹RœÜw­kP8¶7÷1†g!4bd›­È/í0wrå23$òxL<Õ §žØ¥ÌÃq$¨G_êoFË'>èR[¦yf `Ú rÛræqPs=ùøm‹#1ЂvDÚ12ܸeu¶™å@cмº€_½Nñ‰™y?rb”—3Aœß€YGÞ›®-”ëi‘àªßÃØZПü*°r,ñéåxÃ~áý•-¹Ýé}â¥äQã#§ËYÈb» AÇ=¯ŸÔÇÑ’uÀVèUE»Û©9 &µ 7®ï¦„è ® ¬‰ªy¡tŽ6¿ 3ÑûàÄÞB*ñKÛØ‘(ÐysÅ*…¶p&$ÂÇ xkÉTøì‹?;åll÷T›aADÓp~›_ïjòhâ>t¼Rý¦´q¿ ýæZ©'Ûùû #mܪåq…UO­è ÿlE›ëå¶éøÖDÝÙÎø*]-ØK¶kÒ '®1¢b²(ò¹]î3è˜ov™ž1d·Ÿ½µñ9¡£(±C·˜ÑõŠ’ò#y|UÑõ¾tVgÉOfü(hM¡ý,"zÌÊΈe{¥'Ñ»"÷®’‹y¨æµ,%¨xöfº`Ð¥ñðTж¦"þ~ÓûdzÛà9_Òp˦…T‰ºë?”ó…•«æ¸+=÷ЗL\Ë+3§¡|?nïž5Õ¤çÔÄäDç£vëó”M¡aå,#Cä7Ì{žã_{}WŸTü5ˬÈõ ¯Qbh±ÞeKÑæè¬H¢½µÅÃ!y'kN™¦P|8±Y-»A2ZEÓŽ2z£êˆ…oûÌäZAšt§×d@òã—3qùÄP¯äÍGˆ£CEœf¶þWODXùÀ$À:&þ«–Þ‚û×ô»‡^±ONðf6¨ÃØVÓDùÎg䮎¼Òý4ôJ¤ÉwGÆbg› Uû•SP˜L?¹ Ì`)HÞ´#!±yíT‚Ñ\: ) §µ–CuWÂ&D  ©(dÈNYÇ(†2ç‘Ìtʳ·Ô/ðŽò}–\n`ÿ)!Íöéküª]:!³™,$?\ ‘¹ð>é°f¼‰·*×ô ð@ÐdÀµâÃшñ")qã…SÔ)PóˆÒ¦Oi1oÄŸÙõeà~¶†öÓYÿϵƒÞÖöèºU_Áj“˜æPê^M-à]í;‡pƒènT"¾Ü[bäuËÑŠšÎ¶ù£yÒ~ˆ¡ˆÑP _ŒìKÀMvÍÜXdb`ÿ1ŒÈAßão©ÑÜ….Ÿvö¦¼å뤊ªañOŽ)›+ALùNe|¦ç:TÁ¿I-îMì Wf‘^mú±>&ΚXïïc–p°K\Üž€?èâ@“9†Y+-éu:SEjðCÅeFÄVÚè¶ËËGú±¼N2›øÎP“‰ÆU¼Âˆ)Ec3D2‹{©À¼äõÆ,K®ç_pü‹Žƒª‹Äq)žÐB€ËûNïdgÎòY²© F‰Üš9b=§‚¸pIÑ|fÄQí»-XÇX¼-¶¢Z[J17*Ë$BŒ¢©–µ+¼3Ú7DˆÃ}]•ô1²ô»²0gÚM]uSνCÀÓù§jNù-ö½Q›Ç—€r»‹°µG bÉ‚ùO9 zYfÌt:5ððFê,Ô'LÎBÎÅ R?ƒêÖ^…t. fÚÙEG[î*Ÿ¢æ#u%t”ÍGsšNô–\.÷œä(8D®íZ97Z}bîeᬙF4µàzBÄ£òÎ@Ó¸Rµ‚û+]hcžîñd¨U¸óæí¬>'qŠM²íÔ­ßSÚ’õâXǶá®s󙆅'~dÖ‹×ûKMšS}Áh÷¨Gª‡>©ŸSç';@,òÄC—g’1-,§ë¦5×»}EµýúB“ÒUV,V†{ÔÉ{•ö‡Y)ïÎö}ú­…52cnN¯’˜XÒ„C¤åÏ1ä“õØN©*¦?.ÔXKŠ X¨_¯‘ji±–Z¬à.ªe!üPµ³šEŸ:¬ó”+q’Qæž‘üš(xVûšìѶVçÅÔyQ†(¼nÏEŸà¼ºrª®ßî9Xk¥ýiÚÔw¥â{“q  ^që›Ç_:ôž:á$«™b§«\#´íØ>—¡ø WwHõÏv|Œ-ãOÀiÌp; ÞàZDèÀdßäz(½Ää2.ÇæMÃÆ·{ãŽñQÏž:¦Ç} Q0PÇÅN6¨£öÂÑ•+™X‘ÉkO³öLhb`uHˆ®SókZ§s¯ï` u¼+E†uÔRIßY{]Iƒ%gJSòHÊ1Ú×ùçTo½:¼üÙójŸ·C õ.Ÿ¨Òva§½ŠíÏmúYåÀ~®ô‰ö:èºÓ×!ΰ×ÉT ¡ ’T YM½©€¨ˆ¢†i½ÒÞ/ã ö{¼üúâPîBäûçÙÌõ_ü_¹Òë´Õñ+Gf³é…xx²,êŒoºðLª"ÛWP8Ú®9n$K2ÆeMдLT0Í­HÖ߈8µã gÚ|¦cç>H'c ÜxÜ£Œ°` ™ŒÇ©<*Üüù:aÆzˆ›¿Õº•z4°Û ÍvgŸr=|)p]iq«ð¼5ø@üómåÎH¸Ç›‹ÅÚÄgéù 9›‚ ¾aßSÖ»B4ü0¤ÉËÅki3•‰Y 1ð“b„/—Ç6Tb¯Ñ€›'‘H»'z¯4dV½Y íØ |iÆI^º¶ _ñÆÉzª˜ ƒ%uÔtc?nr—$7HøsR¹…¾‘Nh¥5§;1^¶Ø+ó§Jԣǫ_YT¥Í×&e\Ù̹0lØY›~M%Aõ9èE7 ÓMíCÝîhà NÍ=ŒG&Nà^’¶?Æ‹íÁÄÙ¥?+H¹t!E Y2b•ä†ü(¬ozdöûNÝãfÊNÊ4#¦Á µDs—¥ä¤Û¸†0 -×å»>™âý&÷Q"ZÇÇ]LÁUIh”lL8ÑY¬’Ê}©ØÕÜžÅÓ/ÒNyuÒJDRßùSO£@?ëƒ0úi¨Ø’ǰÊj„ðbzŒ¶ýZx[Ÿ+µi…9ù{\½)è#OìL{á:º›A„&$`(~ÚCUð˜VbìŒF˜v&)œ¿FöT‡M¬¾ë]º¥  ¶¨›Hœâ\‘¹ôEšÆ Ž–ÒS¬¹_HNY„v–ï8v/½¥cw¢ hVÌ KWrp‰jRæÈ]‰9³ŠVÅ7Òõ{åùM…`òãk’J]4¬S†—MÄuq‚¡ä0 ;2]ðàïÜÊ ÷p™°@©ó vˆI>Þ*ï.Çjý]SNæ'-S SÌQ¾‰çiR‰éŠF›7ÆGIõo‡°õ<Çn¸n$‹m(À}ÏìŸZÞÑQ5hm>D<ÿuí2Å.髺ä¤hšºë…é˜Õ1ÉŠ‹kï|cÝ^4ÉHÎK–²k8þ_P@R }ÈÊ¢±;”©  ¯´ßâûœ®ŠB5’UYICP¶.ÉØ­áW¡áD‡¾ÅFûNÇÃøVÔÞ`¤Úp逦™P"xý¤ä½®Ð”ÊVÀEñhKÓLóÊ¥¯÷'óÄ}?nOkS$®*bˆ¡®^~KiSAL†ÿ"4È6·¤Ñù—Ó3”×gÓ+?ÑIÄœhŠ“"‘6Æjë´¶'¢r?5Ð!|ï01ìVæÑõüô››Æ=YOó¡[•î·2l FŪKÇâ«+Y²|†¯V'DóÊJIÝr[âŽ]y“’{ª}ʬ4~-™ðé7×XñXÖZ õø ø¨|ÒrEF±/g¡v8QÕw×ëæ+…é £nð/„¿wî²ð^EÔ?¥ê%N¥ÄU>=çÉxc‘ÁJ\ÿ£!79=ÑÚ¨æä*ú§í€\~²û§¹‘ ÷èAôÃ×Ô¯ ìdDuÞo*v^N±P:܈oiQ¶õß›|ÄÏK¸ê278ey?3&}ñ…R?ÁõB´í›¯/oŠ/Â.—µŒ&ç¯Ïï]jXQ¾¬õÌJ9_Vªl’=vV}Œ?¶ßÙoSåt#‹<X?„”¿ôzZ‰Mx…˜Á1F‹ì×E‘ý@UÔÕ´Nêýü*ÙŽHãcÕê41hvÇ=ÅÛ 7Ý™ÿª¶ Íˆ< \8CBg1j£u­j²Ü´ÙªÒ>–zî_=åf„VÐÁç[j(ˆy,V²µâ»ùcEˬ± °¯èJæ«QD“»'ND†€ÈÖgáo6&§OÐFÍ™°w´n`ßy;„Ñc&£q—v‚òV)fNËý"ûžFÔ,Ò•áIµ‘ibŽ›…QôÜJúOæLV‹5’1oq¯TâÞ"j” {„§Kn(x²êE8fr+…}#wW0óí4|.Wвð”jî4ÞÞwBÁ“Œ]õ‚Õþ»H¸¾±ÑÛ#šîQl‰½bt+ù£lŒ‚eE˜ ÿÁ‡XŽsœ¸¥RUòkB5F¤³ÎaØyü³®ÔU¢xš]’­ÃåÁÀ¬@ÝŒGË#®ɦ¾¿4ÆTÒYlhBÉÙŸ4D9ÈS=•!Ìq]g¢ÇU¢nõ8}2ám àŒè½®¯>j38EÜ!¡“$%o›Ö@8g+÷S)²’¿”8@Óó'ê'…{Ç-éöç8ˆAÆiU§€ `ƒQZ…”ôÐ,ÀBÄç‘•vÂR¦O ÿYl0ª\0ƒ’lPÕ›Ü3<,t»õÈ.Ÿ‰ãH §ìU?Þg´¼®]pèÙ`‘Òw¼fúyê§+RN娜R–³V‘04\X”wºO÷’„K^îs&’x¥SXC`ÀkIÈØ{»C=²Þy—ò­Ö–… êÏußojÙ]ÇÙpÈ@jLT” ƒG®]’Jo(<½LÒ%¸Ï Še½(¢ßÐW”_اEhg³Õzþ§lè±N×Ña/ü"»K½—ØñïßœH‰»²}ëóùÁayyºo…üM¹ìÄ^y’e3†™Ê<[[t¨•µž«·ìÜÐ8ÂîÀ8Þ™cžucÀÁ¤ðÿQ»–"DmݾÅÉ=‹ŠKø)óÊ-Íúþ+ÆD-ÂSË´ÿS÷\ø´Œˆ/Dˆ'ØþÁF 0=Àç—ˆ¯$ë+³~³{•øNóc1ÄÆñü,æ¤ÜKñÞªk¼’4¯ÜüÜ-Ž[/ÚyIÞ%n[oñõ¯kw=Í'LEá"û ÇØå·ûïÛ‡ÅIÑuÂa+rJãW½èh?ÞÈöŠ™úY¯6kð€r•Y÷ë.6}.µcÏ&ŽÍïÝh®ß‹€EXÌ+8îêc"ÌÛB…Nʇ»bõ÷O6)æ¯PÉ(Ǻû½i ?êà44|B"£ù}ÊQé™tLíðÇó´pê#(¿¼=z·‘l ´Òv˜öî€Sè½uö-n}²‚ ãk‹/18ha“c­›úr›dYÔ¹¾/i™e&ƒ33EŸ§b1$П§5Éé-²4L+H¥Ãqì¼³ÖŠsp#ý€V˜úIãËÔté(<¤w7-\cç„þâÕ)õßåð\§¸Ú³Hu–ŠfÉÌ?°7q?.~õ1ÖyÈêG4¦>   [K,ôM6yÛ([éªDU°ÓíF 3Ëþ­Q±:Å—j}‰p?fC·*FŒæ€uÝqêÉŸÅë¹4Ë9”ÐøÁ`ÑÆež%?ŠÖÐOœ ê`1ŠQŽñås®è¯+ï­Ô¯§å*™Ñ©¦í¯}J—ÿ´SÞþþ¹£PY¦ÜëtDÐh‰%ç›^ýDâ0Ð|WÝé|WÃ^Ò˜&ÝœY6ĹßµQÍHᕆë«þé°SÝo6wZ˜”–Åâ ±ÃI@L‹Ü:{š&z݉L“æª&w>Ú)Gó6´¸ÈÏm~8²Å5¸æ—¡XÕÜ*»ÙK+ò…(ŽãrË‹äð‡À[r„CØ{ðÝ4¹þëoèB´ªmØò ú6kÒ ;ÔuÙñüÄV"̈ÔMåAB–‘Ôƒ($‰‹_誅-ß)è}@nFI{u¥ÅRî|V??;Ðc‹£sëbHå¦(ûj´»<>ÃaÛõyáËʨÌ6õ»R€vc3’Qü“”“â$Ñ×î§Šc‰œïÄô–ÒÐÍü̱û™Õu° Ÿ>ä»A!.%×a72X)'j7hMjA&!Ž(O’Êð cÊ£›K)`¯Fj6¡@¼¤Œ cÙ4ô:_(eðH-ãȼïö6„½5{¦¦ïù–ˆãBC•–ÂÒ YÛWN!É\ïúÒsT¤¾@í8i‹ÍÑÖ¯J#ÏáV?<ƒ\ ¿F®©vJÔ iæu>1Í~ûê¶uÃÑŠKoË1ï"£°8~åYpaÝÀ˜f¡•AT£¶ˆBо@܈¬Þ;#^òx+Õ=÷^íô^K½J¦•ý@Dÿ¼)]~-LL‚yÿ­ú»zõÄ„ÒàÝ¡$”GÖ 2»¢>jÇ´²ôÓ˜úE”¿ôâÒr¾níxnØ[ºêl½¾c– ¢;UÙjz2ç7MäKJ(0þv†ÓU!`:P–¦BãqmL_ÊFø”ÿûóÈ®5S톸“ä¶B­H»z} o• 1û9c„šÏó§»ß 3B©‚ª öäéÖ¤W{ªI}i,ÓãXËÎXp&ÓcBEyµ)ÅgäçÉ#î(Æ^b×IIOvbL¯ŠØ)ÃÀÍhmé#?ûP‰5»»‹vúµÿ?+STendstream endobj 334 0 obj << /Filter /FlateDecode /Length1 1734 /Length2 2462 /Length3 0 /Length 3537 >> stream xÚµT{àèåÉþ3 Ǭи]Zw”†»Ú3l>nöTŠ´€ D@(Ÿ--û6mð„"Ü©€N†ñ,(”ÈÈHr°€‘4˜ÌãLác„°ù@$‚†ø…8ÐÔ`0 'M'àÂfB0’9 ÓF.>J<×cÿÃIsr¦Ý>}S&äOꏹ¹\ c ÂLÜ1˜ÒáÄ"N„[ŠJk¸~6¡ÿ”ù †àmåˆbÀÈïO „üè¯fómÛLæ³ù:#±9=_zflxJçjCwr°÷d\pîÁ$WŸLƄؔ·4Ÿ‹`L5¨ø#å©=̲E¸\5Ÿ ŸŸ† Q”çwŒD¢ÿa bì é°<ŠÌ@Nv‡à*Â]0„@BfEZxŠ7R5UªÆ#â!< äð¡v„¿">*€bD_¾•xk,6Ã)¯ a*»„k¦Õ8’Ϧ¿É cHÆ·I_Ys¢D Ð §†Îÿg㾫å àpè Òù×¹~ï rÙœ¨ÿvÿÎm $E­CGP.ÈùÎÆæ;°…Ë1C¦G<­ŸÎds €D5&™N[¼¤›ÆÁ)_KléÅÌÍ¿3áde†ÁŸQ§L>–ï°ãg!EP\|œ}ìVÿ;‘¦|ía&ÂbÃÁ€¡‰)¢(E0ÀÙahbˆ¨8åYpŠ>… #ðX „ é&NmPªžÒP L û+Ñ „~%š”°/"G§Äo[p“.÷[ ¾ôô÷­7%{b(ma³ð;ÿ+¼O”-ô3À©FÅõøïó—ÿ7´¾lÉWÑ4"$C|†ÆTÀÌÄ æ›8æôå3Eq|ðŸeéæ$„˜„Ž6„¹vwhÆåøó±ö9ÍùrZkÈ/ •Öy;§Évo®PU¶;ýt%dW¶ó„v.â²ÁÂ?öp|Î[k·"gò‘øPQÓ–ûún0Ö5VUÞÞ¦!k3Ùk× ×öù×Vê8geûäß=QžV®x5<·]SQ5žbxçÓ¢‘#+·æ—ÿyF.ò¬„ze)ÊY,l_¸¬Rµ½¹r&öi|ij2XmӡׯÔà<›÷{Õ’¾ÂŸB[ŸšhQœ«î<Ï¢B­X¯3þ<¹so@9T¯m*z7q©ñnÂ|çâÕkœ]Ph½¢`uE£Qùy…Tƒ'¨ÉáVýÆE‡ÖÞèSùdØ™h”k )­†Ö[X/<Ótõ$<)™lÌa 2Út÷sÞ,b )#y~sž†ût¹ݲd —m‡mÕ3YvV&~åðíRT3šdy°å$á^F~:퇕×e% ˆO¨¤ù mžíP~NÔí|Ÿ¢ í#œÃ'Jöú*‰h[¼Ê,ŸÕ½®h²5#S=æ¨Ä>j ËÑ( =)RíZz+í+½¹ýQEnÄìêo®x`M·ãU6¹ä*­Ã¨4÷í"óàcÇ×>„7ÏâJQÑ!û®Av[Å;;ly«SÉ:4ʆe¼‘?³¦2ÙmþA zªdÞäÐQž}33(…?l“”˜žy¼½8kÝå3f6÷)Q¥=+^^”ÉrŠêº5–',Šù0Ë+‘Uµãƒ•ë'T·Î4óѬY!3㦬G±¥þ½±Á° G&ê§ü è÷¶.ÏãŸå_˜V"hND”q­ïûeô[mT[¬T?ÛO½TèÞâWW6¨ÜnÙí¥µ*k¾Â[ÍE])Þé×Ó«N?wz¢;3½%mKa›FTøìÚ&ê*U/ΕʂKé»N»Ov6å•évŽ}±d|-‘ÈoòæzÅъϯê¹ôYû%šŒúׯ˦/>1œ²m=ñ‡¸…þ³ùrþ…DÕùúöÇh;#fùÉgÌWƒ¿”2ö5*6tùô9¡†¡íÇ;âüÔO˜ÚÊÛßLuHk¦¾{@Õý¢ ìG1'/”ËpÉò´RÍB#oþ»Ž…{ôuÕ"·Ýµ”Â3²Ün玲…kòÆTF…Ôw·]öoS¿d+sæHëGmÖÖ¬aèm…Åü*1åÏ£½¾£ß\šè[ïU¾å'Òö ù-œ«s[erŠÏï»~p™"š¤ç1lÏýùîÝ.Ù݃y— 9¢2”â:¿ßžñÌBÐsJÙÛýÊu÷œ, ž±R]DI3ú¼üJ÷Õ÷øð²6;‚ŽŽO'K­c|ý¤M(7§—×Û²¶vù̉ÉVI„†BÑiwÌ’Dutߨßê87Ų"9é^¼8ÍqwfáèèøõY¼£wà½z"ŽÚ§65¹²ß€’ÑÓWè>ªE9Êtý·©ø.³{šnqãÀ²¨§Vüþ:é´Pc¿¼º–Y»ÒEõp‡Ì¹óá”àßÛeí”<̵ÈêÞôlâ’Ýú¢‚œt†ÃŸ7wݪ¼ÜJJPR‘ÛÕ}-G?2°ØÊ³i£Bƒkû²ulÅ……“Ûlšdý9森TU«vºóD¸Üö¿˜c;Fy Jë¬ K-&Bï¶ çXÊwrï÷ŸzS[¬½Ñ<ð8z -+õÙ§B¯l›\ ÃôI>2è”átºûéãMÏkÛÎk Ÿèƒ²wl½ìÍžoHÆ÷Tê=ë½c²¡Á嬗Æ9 Y‰œ9Ê¿keAgW²#ŠŽ^ËHVX¯YÓ9lî?¨1Ø9Í\ñ†Ñ¨çÇÇÇTœeÕcÒĽ¯ºK|Z"ˆÃâû\«º÷ÓÒ³ªTAÓNRØ’žÑ/3šÔÎ 8²&%e¡{dnžPÁiùîâ?ÃГ•&i³çM>6ª¨‘]%èÝ£ñi?ÀI6 – R÷ª¹¡=0tQó~xxqÄm2~Ëñœóë~¥{ʬ kz9äž‹š9Þ›p?vÛ£êz©BÕ÷ëåwIäç[˜?š,¹Å{ÙsÇ—¶”ø0ü‡eo›Õuà¡Üjãm ‰ØG±wêÒ®Jíß¶ö7 *ŸÖzt^öË9œ0ª8!ž°ÔŒ-,{ûã{ê¬ñ‡L›Ê#ië·Ïø€7è\·D‡É%­î9º¿s ¹„Ôn[sTËøæƒ“¯¹åÉÄsû—»[Çjól/È{Üsz±w`åÈâ;{üKä.Þ>y­Ø¸!ÞFqCœ_sæ¡çÄt‡‘WI‹@ý¤üwm]­T±áòý w•?Ò®ï-ødÕu|•©Þ½SÌê?TëŸOhÒý1V¥KV(ܵî7Ý– /¯;æ:†÷7>°dÉ„Z2™7ßס}±÷cñÆ*Z•èΈÜä'gŸ½²¦¿ÔÓÞi›]nÏߎè®OKÊ^·ø²¾miâ¦ÍÏ+ ÉZë&h[–¿pQò5bØ’½žÒ³GÖÅL‰[MúöÔÍñzZ´…ë/Jz6¹F…ñ¶ug®mKñ¨ëÛ#ïÛviÆåXŒOžÛt-:büÐ+šÏ‹—ån]SáP’e/J½j÷/¥õ-·å$#‡·<£Éª»óëŠî«ÓÑeO-Ÿ&SÜ•÷ÞkN)ÙíkAßæGò…¾Õ§SM¼ûöPG–Œ8:¸kZwi•k-ÅûÈ}ÝhüDÜëàÚÚ‚4Yú,²˜+EڌØ—ß“•Dqéæ'ŒnõÕåÒj’NQÿb<z=™)Ù¾jEÝå‹*ºNcƒ9‘VÁ<º§ìþ }Ù0† šJ¾ rÝèYjHþ•mµMî5¿„}Î1¤è‡À×—[ò’÷!ï‰ü‚^¦^`¯Çõ!rɳԕÍÕôhÍñýýOµÀÐ7Hÿä5h_Ä S~« }+V@n§âŸ·R‹ü®Š‡FÚï‚gD¿Zo¶Ûyï¬Du”h‡¿Z`Š’s•æ>ËwœñÀ×Jò˦ÜÐÿ·­ &endstream endobj 335 0 obj << /Filter /FlateDecode /Length1 1845 /Length2 4393 /Length3 0 /Length 5546 >> stream xÚµUy<”ëۧ좈$KOj쌱U²ïûBÖ1ó`3Ì c9Öì)²gß²'[’=JÙ’­B*»pH$Þó;uÞßûçû™ÏÌ3×~Ýßë{Ý䜱©˜ ëjb11˜¸„ o`'¸èàhâ’ØUÐÙ Ç0qI D  (,FNå˜,Á0= »#ˆH.— €ˆq$;pô @ÜÌׄ‚ðCÁ‹'ˆ9Âñ$3ˆqFa@!RˆÖÇrv!sH‰‰‘3‘£UÅ]8 KÄ»¡8 芈†X"I‰±Àt£¬`Zæ¦WM­«FæÆ¦Bâ¤Ä¦^XÜ_½¨™š™k‰ê*†fxMÐ275#ÿšRÿ΢€¡ÉN®Cr$‡h˜©˜YkÀ ä30ÀÄáQä²ÿêŸÔðOk¤P'Öý° èB xÈA¡D"QÜÙ OÇâœÅ=Їý™¹ ð‹sHOˆñ Ip\ÀŸ ÈÃôQƒÉAšØŸFw”¤ ’žðŸÆH@È9Ñ?Ý<þVÆŽ?ŒÕ76ÖÜá( ÄÀ1’#Nð‡:ÒD ülÔ¼p8r ƒ¿M¸ÿ”ù»uU,éd6hÿ8ñ߃c¼ð~¿`óû±X …'àf'$w'Ï …9Ô¨êhj˜š‰é“¸‡3À’ÐÁˆ|‡Þä|*êúr€ŒŒ,#}É<ÕÀ Õ°îñ døÔQ$œXœ/ô¿óÛ ƒ%büÿ£ ƒt"Ïéå5Ç <½@õ¿BH*†tÎ @OôA¸@É…yCVÃÈj þXÀ ŽÆƒ('ô`ðÇýA€€óü5ü.1À.H‚@¢Nº?°‰4Qž…r1k¨ôæ\7Í0x\ÖÊ'´ ›“oU,=”Ñx§‘0ï]T»ÜܶsKòåËF ŸMYã»ìŠ<¦[)rÙ4Tí=My…O¹Hs¿TcéñN˜Ä4N&yX´Ÿ%éJççäD´T¡¹öéŒ@ÇJˆµÄŒK´zhEã7¾a/ˆV˜lß“iDHÓ|Jd»ä6oO¾0¢ 1ŸyG±wš†òõ÷óY[Y¢«ÞΛ}zœ/|•Ù AÄ)Ï÷­Ûz¸ņÅö³žðøvõ³Ë2K6Užºt«obi¯n˜ô2®µ»ÏËŒª¾¾eR6B“æ¹aQN”ú¶Ø‚?»S5{IÁØß´4ƒêv–¨³aÓˆSM¼‹I­ •ù´0ÕÑÒ,ÔÙî‘zæÜFtj¹ì@óLÖ€ï/}DôÛ©¤£­¶“ÕÛoîY_™_³¤çsŸö|ø¦‚¿a,¸=ò¼k^së´7m^vø EQÌÈŸ»±ìõöƒÍvJûR÷åyZõ8¤<|¥¨og¾W½9ÃvSïV‰—sZmÏé³E RÁXÄxy­6íôóÞGªc_ñ|îvÕ»Z÷› 4;®Ûh †(È&5é ›@T^ÔÝe64fÞl1†Z#–ǪïÑ f€Šüñ?´k®¶-Oˆ"»±bͧEêÄÒ°0ޔؗ¼f<ºQëo²,«×‘w^injÿ8E¥…æõ Ê;µ·Øæ“NîõK÷*é·Ò•ld Û—x8BͧxTï;þ SkÒ²ÔP<2ñ¸Ë‚=OÆþÅP§y“†˜úƒ©@ˆ3Vc[ßd{qÆŽË6”«:NžëÒÙÒ‡úO9ÇÌ­Kî.5°/ùHR•Î6iÅr¹®oã2'8 gŽó•ç±[¹<~@“­ØÛ®þФ=×¶Pu}ìŸe5¼„âÇnðçx<Åäë{cš.zvo†®YC²qÊÍ™V…oµ<~H/2£g^Ô?Ý[[zô-§¼ØäÖ?½šl Î)^cßïOýÈ·¬š«‘«Ùç(Xg>?ƒF}¦ýt:%=¸w‹E×»gàôB°3ï”QÍ^'ªB'¥ÔÖluÅF‰í1üVV¾B+¥XúÎ*dúóù˜sѦÙó1%ƃz#…”Ôã{¶7 ÅöâÇ>Ø¿Gf6Ë–û$xcÑŸ×ÜF–²‡DñºØ'ŸYpŒ•ŠGïøe½½èÇp£Ÿ6ŠAãKãfzb§5¶ˆ6q›ûË¢7ˆ<êsTN|÷ÅSg]`Sø@iÝdåÉîO̼ÍZç8ÖÖTʵ}»’cBT?¥bšòustxÒÉÍÆÕM¯¾íº\{™}Y`2Cå“@KÑ”Põ¾-Š“qb:ôíYOƒf·»DÁ£ q³qR)ÞošÒwŒZY˜EÔn=**ê°…ÕI×6³Ø *|ðPÙý'@æç­WцÝUŠf¯Õ_ˆ¶AW¾¦µhi§"î5}¹S+]4V¹§ýÃõTEmýìrp”ùëQg>Å©Ê^`¤^Þõ2V”Ö:²òë¾Ì³k”;w²–а=UùxŠiÌ ¯¨^³,7Ëi­Ü‚&sù\é$ê¼Y٬堌j¤á‹ÝØÞ”7HäÞ"æèé{óKúÊdx¼N‹Hêsm›DÑt %'[?:™üT*^'pØ;6Pþ2]Ýíšõý((Ÿ¿pTu‰CXóöä÷Ìe^.iîöÛDêYî¬Jé’ïJ'? J ³UyXµnÕ0sS sÆÊ/ÛLø+¤DÿùëÙ#AâÒX»•ºÉÍà9Ù‰üÕ†‹e:ÂŒ[¡âªêæ”´eì‘¡úøþÍþVùÊ#lŠF²uîøo7ü1Þ-X±5—sÊ}cß$80‘‰ß!Ç‹±uEÞΦíÃæš‘BJíøØ]5FjfôÕ•òÌNuƤã©!=}¼‚’Ö¥»lö0*|^aÑY{-·GGΪJk¼ü¼¸ ·WéÍ¡qºSuê{——ÐÑípÓ傼szOjlöüýzÎy8¾²\ê63þzx½îa@¹½ ÿ‡Ž«#zm/y÷š}φ´î¬/²%sñ+饙°q,[%*Ê^‡Cº¶ò“fŽ4´¨eÁ~ì†ë(óÑ~áéÃûR¤|íüԦ閿D2nødì>{£.¾ÍêðÈ{,ãÑòÂZeôXËÂɶ0%ÅÁ&°<)âÃøwñ²ÄhÐWpŽ'…¿Û˼FKü³’ÎIOî6 úyä«´R§ÔKùø¹ô];ù%+ßôÈ=CŒröŽþô-בÍÅ“OÏç??I9}Šz™ìS^… šr½xw;AתÎ׿E¡Æ|Pi(¤;a\•º?Ùï)AÕâñã¨â÷Ä€Fs¨îöër7.Yö¼îÖ£WÄ0ù0•@”c÷LIÑ/"øº%¦ »Šû>4ïz@kIæoÎdÝr´8*yÖNÁòmrv^DNd7EF*KæÑìÙL¢‡êãØ Û½ØÖ!fÛñ±‰j #ŸÜáýèsšô²,*I†"cîjÑݱª„‘,Ýœæîw»vŸ¦ù•jó…Î]ò­þb¥ºo5æ29¡-úÈ%è±PhîT«€Œ/¬ S_s2¶ðÉ(t¼'!ÖïÙ»r}Ìt>ïl'«x@ÙM_§ùo«Åö¡'‹ß)Ä­oW#+©º6=Ú× !º„q\ïE™'Â[`Ðw¯ Õ3-Ú·[rdkÇUrMÓåùh¢‰Ê‰CM'ܯۡŸÉæ– ¡‰Ø_Œ¹>^_ˆ*ãI^l?•»Â2Ìù`S .˜KÓt¥‡¸ë)ƒ¦~}Ñ‘9u_帿Û4ÝÜÝYúü™·EÀgw¡5!».Ϻ  ×›·!åEA ž¼«2ÉTm©5,•ŠìUíÅ÷ï?ê0]~æÜ={ÓíQã 2ÆñMÖAy³u‡Ð]ÉȘÄ.óšÍ«ÜZìÓUü±Ns^Û{n~·Ó»Ùc÷å°ôI„¯ÂµKuÇ‘n]ÓÔhj…iÝÃí ½êùŒ‹vŠ GŸÂ[ùíN÷5Wº«™(¹U#ØNNÕ¨äg÷*K´© gˆ*Ñ|?4¤kìð„âlÝ}qlþcŸKA§„´Ì¿¼‰9.Š£ –ºúCÇYWóŽ»/çÒä¦Þ9Ø8%mð£öÆ1JfkœÔ¦‘¥&%;ÈÑ>tïqö]þ¹™dØUƒu&»-¢ŽìùµaôŸ¡)»É%÷Qƒ}™rS_Ïríízf‚¹´I«þþY³¦HF 5+A[i£úžgž)´øQU&QðÜÊo_t j}ËjöÙߥ¨_{¸7[Í ¡lê|{çÊŸnA—Þ1Gåšxß÷ÒÂÔç9Mæ®Q#­ÇZøNäå]†D>Q÷£]ò¼ß×£“|Ñ–qa(šénþ;§Û^.iŒ'ƒ°Ìov™W&íäq™#êÎ&î:bGÈn7Ó3eÓ;úWoû*wîkSå–‡4KúÞu’§n³<þμ¸ý´)}k@Òúþzjé%ö – Ýr~ 7ø?±&2Kà†C?@RëÅ|îÛ“mTMtíÔ†|ÅTW$BSzn(:"W¶  ›C +JóÑìQýÕŽÖy¢ `-žåÙM#–Ð)˜þrg§F N)÷zDqÌyÄBôÚlÊbMŒvÙ1BÁ×T–ËÌ‹O&v'h’'wrusóó§Æ/³|ýxªeüÆþñ½¦?Jî¦ysÚuC?Ê~Žy/õâ‰Cösºò¥S\ʶNiše[eóB,cØp8QÌÛOÌñ’Xƒù”"éENSN•Z—Ç×mžz'§^ŸóÂ㛦¶7-Ln$(Øþyká\¿ßxï ¢ûñ{m>Ï@“Ñj‰£çût±í?Á S®m½‹Dž{üÃhùÙ‘Ëø „øŒw}·Àþ¬ß»!¦z:Ç4Ï©Ñs­wå OïÓÑS÷¨fpmŠï¡%g¿çf(v–i'´>†\õ“¯9o’óG©×ÌG8î½?é*¶ Ö…“¹7…ú·ôíÙÒw£Kž (uµí™× š¶ìÔ¤f»óšz¦ºð>‘±/'dþ|ªŒö O³V6ŽsaSž˜äàü3+%iÝúÖÙçݱ[%_ÜÏœW¿µÓjG컣©íØñ]«eu–×&m`Ù@)œ«î¢¸$Ñc# _ûdÿ E¸Iqâ Áe‹Û{s_uJÃY#xvæÇç®PeâRÐR²­ºªóŽÝ{KZzg-vü¥Z0ÌXlIeí«]ua KUŸ‡;±ÆäðHðoßŒŽæx2œUJ¤ùÎì>ê*ø¬Œ>Ñ8Ÿªny*LælíiRBï\ë;ÎxëöwÊÄà£Ú ƒŒ ÖÜ×§½˜â²b"îå4èúŸP”ìTù>:(x³[s82nVÍàåŸQRÑc"“öÏŽ|Ü­ÐøœEgÄÿœójx+Ïó¬úW“òó~27Y Ç*ÃuY ¸µGÎXK¿š½úÆzÍPxéVØ·k=Õo€?î[ã{†a*îuRËc›YsŸí¤l—úøÍ¯:íyZåB.ý)úXþ¥”ÇN˜AÝg›ÔùõEºrA¸OˆÒÍØ=b¦D¼å+%!Qµƒ¤ÖÁ]Ï=Uã­v‰¥Ž/6˜¿­ËM2ê0Iyþƒ…ãendstream endobj 336 0 obj << /Filter /FlateDecode /Length1 1836 /Length2 21805 /Length3 0 /Length 22965 >> stream xÚ´xeX›Ý¶-îîE”"ÅÝÝÝ‹S$HñÅÝ)îîn…RÜÝÝÝÝÝáÒïÛûl9çï}ò$oÖ˜úŽ5æŠP*ªÐ ÛÅm¬è˜è¹²rÊ6VÖLŒtÊ@SGK€™ž‘‘‚B4p0·±5pr8Ì Fï±ïŒŒ\  5ôn4ºä€ª.¶@&•Á_ E{:Cûw3ÐÚÔÜHý"bcë275sø“ƒ…ŽîO¦?ÑÂôi# '{ s€µ1@š^Ž oãôš¨l¬†@3K€ @¨PSSVH(+¨)ªPÓ¿'Vq´µµý£U5 Z€¨¼ª¨N PSQýóª ´~ïß” ¯únÿSçÝñO¸œ˜ªª¦¢ß{0¾AöæÊþWoŸÞ;ü«µ÷PÕ_Tf¶Ü NNNô¦Žöô6 Sz[Ë¿úS53·8Ù€,ïWÐø1ŽÖÆït:˜ÿNðgW²æF@k{àŸ q›¿VïT¾½ãÿÓØ;rZþí°ÿ£Œ™ý_±²ŠŠ²+sk µµÑ»£ƒƒ£=àë_ØûhLùwƒ@€ˆ#ô§†Ü?M ÿ)óÏÖ…mÞïLÇÒÍÃÀé¿wÌÀÚÑÞõ߸ùÏÛ6²±¶7·w°ÿ;#`bn üÓ½ýŸ=3·þ “’—SQ¥“}ž5œÍ;;ÖôÎyÿÉ'$*Ë àdd0q±ßE*fm,bceõÞµ=ÂúDÍßyr°¹0üoa[XÛ8Y»ýskc“?Ü;Ú2¨Y›Û9¥Dÿáþ!ü 3:@;ÐÙÈŒáOÁ¿ôòfú¿ááfkc 01°´z˜›ß/nöß#ÐÃíß ÿ¹B`â›9¼Ký}\þÊ.embàú~ï䟦ˆ€ê¯Q¥~ŸSckK€1ÐAÞÆá]Tÿ&í¿j‰;ZZÊX©þ§ÿíh`enéòŸ®ÿåòø§[*y•åÙÌíÅÍÆŠæFfSû7.å`ð®!kSKàû¶ü©ý)Ëwí¾Ÿ?æŽ/+ûÙÞeida ´·°þ|'â¿:~gÿO¿aé/²Z2Ÿÿ·lþò³6²16·60³± @ Æw-0³±ܘޅm tþK,zk‡÷€­£ƒÀÄ„ðgCÙ™ @;GË?ð_ €ÁÄü]/ÿ˜Ù æÿ¶ä0XþÛ’ À`õ?KÖ÷•õ¿‚ßïÁÖà}ª-&ÿB™þþ­ÿßKÛZ¾ÿÓË»Ÿƒø¯|lïùœlþòÞŒ+ô7ðŸ *þ9EþÆQúãõ¯µŠÈÆøÅÜøý£åß\ä @æÎÚŒïÚfzÇßÿ|§û(þ5–ÿ-,lãìFÇÊ cæzß Ö÷©bbbæðøX£¿Oº¿æê}ïÿ¹þsÌ€@g ¬ÿ·ÄÚÀbO±Üñh .úã2~ éh¨…”ñf<ѬM2 @žO½wê§<YIn]Ïxë lË×Õ†¸ò±kc%Á-O9O1¡¡Luz5ßT¹yï’V2êéÌÍBÖÉÔÆèFb€ÚСWsÛC8óèúe™NIãr6´Sþ4SÈÃy ¿…`~¼Üáí+2Ì ShfêkN Î4ŒmGæ6xX¾ÀóªíTî{L1ª»ÕEµXíûDB0"¯„%¦ÊX§”.9ÜxÈà1ðè<ûVGŸ©qÊ ¿Ã5èó\,Wîš‚ªK¾‰bÇKû‰¹“­$\•SM›êœùxâiÄQ©ÙGÒ¿å8GRioï×_~íkYi!¼nÂÝ×,|… #¶N=j£‡Ê |9eFãN@ö®VX'¸c0EÓƒD—Ã#úÆ©Å~Qv&¾ï_„Ç‘†IŸ ÖN¬”˜Rh‰­ÞÁÕì€í‘”Ührv ¬³ƒ_ 54X7£jÌÄUÒ8‘ø{‹Û,;pŠˆ#r¿á™²{+ânX 6ã¥'ë–B“–Ÿ|lf1û¼­§‹‡¹É#5¯¼DÓGç(rÎÚ¿™ìq^Ã.‹ý”g$êk-‡êzÿÎñüˆ–J–:þ qT™®õZaÕØð@x=uǯC TùÙµªê ¡ÏS1׋R¯™iÏq˜îlöÂQcr`€0Æ ŸÐßäM+c>âÚ}Ú^לë,Ê"˜w|-§ ”$ZU/°{êRÂwÙ9Àæÿ¤?/(!cRÏ8¨/¦“ý³µêã °ÜWvi·2‚[‚Šv ÞdúÈwHR®wYײ՚0±êºÈQl{vêØ“±Mùþ.%Èç6µI/VYñð5¡í[û¥SQî—ïxìÛÉ—¤+eåãgÑL¿¬E˜™IfÒ”j°Uñ«\®2¬ãv$¯  _jˆZÃ< ùôï"ŠÁ¯F­‰#¾èíwú2HÕñ¥ó§uwéÉææøþ û1R&u]ñh­Iú “C u—ábiö)C='$Rš4œ­×šk°uDŸ½TDY*¥èøö•*ÍŠ®€?¶Ý ¥ì¥kLŽ$Šãœr—G™V¨¹ãë‘‹¨ÚЉ,TƬ#„B(!ý¾J½[2Ú8\ýšq×"±x4UØBÇÎ×zå{ÛÝaxòŸ»ÙÂYö%Ëx¿è° ”ièäêЊ!jR;óe•]9Øó9H@cš42a€Fp|ëR2Æ,Í2ó–mÅ ‚œH,Üú8y©9ÝM|LBäê ÎËl’ÇRâiËIhÝBBêkës~âH>Öã‚êagÛ°]GÒ–0åŠÕC„Á߆øÐÈîl7ÕG•ñà `ñ)*Laš\P’tæ¹ ë`?‰ç‡b~äòŒ_¸{Ð`Av—Õ-ïÚ ±É,W–÷- þ¬îŒnꎪ”AÊ*6ß&€z4Ìøl"eBÒ†£ž¼9ƒËŠY¬åÑð»ÇÒ÷ýTžúêmÊÍwK¼š¸˜ÐÓÍÛË‹uæþOVAµñVH ª xY0þ»?ÁçOM…Èc¬è„*;m  5‹ªýÆžú{w0/?ûÐKœˆï: aI+£z™ÔJÇx!˜6)¶ÁkâúÞ³è›6¬lY5ºð÷yêúßn&u_S¸•Ÿ:R'6Æ2Ù8f⃩Ô| {àI4j´ísõ­$üŒ+‘þ¦1Hk Þ=µ•ìÁpv¿(I#Ÿœ—K‘ÊЬŒAïâàŸ>•Ô.:Äü  ˆXÜ6—ÓØ] CÏQ>(ˆñ±Üq9US|á“5ìЭŽÂásGj­0ä5æ—íÄUÙ¯(hYL†f©›—ç¢VNÕ”P½– dMèúòÄêØ4Ùb•zéšýPá*žã &6Þä’aoòøQ*înöô…ùØSR¹R¶Å`®*B@ —®v\Œ; «sFÕîU–›“Y«^aíü…‰ìúJ¤È°fkM:ö"(æÅ¯v‡>Y7Í’WܽÈô{Jcló&ù•.iõ—ùüUâ(‘9'dæÞý³Ì ~êe^[{D u×”ì¤'G®޶$…XY“$Kúƒ|´\¬òD"ßgâÝÀÈ­ñ¯+nZ…&Ýk*‚ޏc6ÂyÉE1- BQ1´P܉q·® —}¤|«ò !÷“K²RÉ ×0WQ˜vÖ„TnÅa}®,‘ݹCMÿp“’ÀŸu]$Àá&r —{Å”˜N¢Äái^ë߇’ùý*³ÏUü)¿Ð«Ë GßÊ]kÍœH‡Ó¯‰:Î÷[Üp”µÐo l¼› ¨ 霗ñ•ó¼Œú+{\‹ç€/ƒ‹mmÂâwR1 ¸Eë æHj ï{7Üij,AjqÑìι~ìì÷Õ†H‹º96¥S–9HC0ZÇÒ9˜7CÐñ /%Ú%º}Œ1Êkyî¢ðmýHÛY„Ó¸êDõðëî#}Wñ‰3u…tiX7µ‹}X$qe-ýÖïny:2x¥¹4ürëWäßÐaF¯-/BùLó¾Äià™jÕ±|Iß/Ù‡ë¶þ­]"ù-`©óZÍ„Ì*#ë‡$;-é‡Hÿ+Ñkx«Ð]æ'úfä•W㨭yÕÅÆ¡~ Ã[’ÿê¬:Ek¥¼/ð±(ªA×'#õ>»lW}rŽYÚŠaäú­û‰³bä0šçÊ74Î{7!J$lá²­Ò²«<–~ ɯD7 t˜Fµ•å=D,j4µêO8_àâ´€tdæÝ-1Á™lÔMøT†žO<‹µÞ÷ÔÇ¢îp0.½ï>шÉå°ÑÀÔË_…IàÔ®|«eÕ¶SÓv+ßN  OäíZs;!áÑÕÔ}­IøiœÁ;0~@¢%ñfËOzþ”ùÄLz(Ñ`ü2†9\Š©’ƒ´iD¡*ýPÊ‘ëÇ€Z°]| |Õ[ar’ƒ×;ùõ›Œ;:CÕVˆ‹ñ¦‰›ì,¦®¯ùÊÍ¥êV…ë“Ï2åHr™‡CØ QgÔˆZÔ?˜0âÒ³£ÈळS¶io—õÃWóÝJ4å˜ÉêÐo\€êë°oæÅ/ÉPÛ ûp,Ú¢+ìu5Ú—eQúW¨œt¾sbçý(³Ü¡g;"._jŽ…& ®¯™¿‹Êä&*Gÿ¸Œ/72ÇAncô ð‚T^úÅE úµ8Vf°ÏB/â®SÊì· ´†»•Ò©×î‘"£ÃZšMiáÕâÆ>rœ ²Ë2ÿ®žM£>½"qůÔ7I3ìl$o£šÉñvþ'ò¹dÖ¢óoöëFzw›Ê„4ÔBAÆÛ;ù Ç3¢C›s½ÏgB";¨)Q.+ oõóRIUU8òÕ[ö®íqD¤f>¬-µ¬ß‘ϰ½eÊë§+„¤±Ð‚­ßÂU½~°WsôÆè!Õ´$ðÖEo†ÕÈpõ¤37‡e‰ða„d³ªc«Ù ×$‚²ò­¾f C›a kš5 õS÷‰ÎºYµEŸÆ}>=Z_—êôÍÂËÍ¡{à݉µ>zÄj)ÌY¹¦{oÉ}ð³)ÕÌœŠúg ’JÉßvŽ7 §©2ÜT_°ÝÜÿ¼ 芴PÇ =JÄ/ÂËUÓaZâܶ×ë ö‚)Ý>2Óv¦BÏ™>3ˆMMHQ{iîûPö{5´Jâ?xõÉê7¶w©Ž¢´x»(ßÀæÛœ%~ÉýšˆÎ§a4*$B­Ðém"®"UP •óC)Ÿ?‡õÉ´Ó6 ‚‡]ºÑRm§‡fz)ä¿]æ`­eXÇ©.ù•Í¡–!!Û©ñunlâr ×ë·Ê€|K(ÕÕ§ìRHM†XÐD™®¾<«…_%`NÜ2ý)ê%7FÁÎÛr8I*«ŠÃ6RöÌ\U5AcÎ^è“tØq¦8ýÆ[÷ªÔ7FÓq#¸z‘îo½Yc¾=ÒÒRþž^›Ð,x—RdÆŠPËf„² Ò}.¸ xm9jt…f=Ë3šu_£xÔ>ÀD`•—kªT 2ÿêÔ "õ²öcIJ×:šUíX"Ì·‡BÆÍ!hÙ&غV÷ãÌÃöG¡‚ŽñxV·ÅµtiÎè›Èç©r`òð¿Š5£=VÞrÈÕ‘T¶;=„Yåx^-“N>¶¢.lÖ¶Ë«QöÈå›Ù÷O?×ù²£0âÐà`#)0?*>¨"ß‹„Â;PJèb”¶ã˜•vý DUÔ¡Û^¸*WÌ-G^§U÷¯dÙh,5¤‚ÈDt¿¿e÷ª>ÞΗûŒÎ†yfŒ)lÃ’Gû(üEo~s‹qóU ¢îz_áœßp€<™fï~¼Ç(K¯å æ}gXÝ>á³.®Ü^åá±ÇÇp¶èÅuj™ni‘á%¦’B:å¬8,y99I³×Ö§ 5iCÔ72ø8F¹G‚Ââ''¡Þã^JÀ/W¦»ôÝ©ÁŒ^­ž•–Ú g­`êœû[× øSœ<«Ëoaª¸Ä,.E`.§õßt£$¹›K­9W"rd¹®Ê8¯#(Ž®Ýd¦PÂQ`»çÑrO裒d´I=ÞmGçf„o’U°—V²ULúoûö¯–‘ ¬-Œ³Â²¸M}ÅK# 2·¶[Æ šG;Ò={Ÿ2UpÇ™òÀNäÇÙÞ~^/No|¯Anðꟾ"t/DÊ"â®&‡4.•ÝéHˆ~R?øQHg*3¥©nK›Q1;ºéÝHm`Æã«Áìø‘ǶÒÕ+d'O³Ç/ĵ°¡³p›ýÛ‹mù—m0`Ä© s–_åQó…ÎBÅQ¤w+Ã÷Ó+ ¦op½ÈM7½–S z,ù‡¿Ë·é cC¨±¢U.9p]IýŽ6¬Z ùßÂrô u¯SMHò0;Ñtõ±ø¢‰ÏŸ>[}þdSǪ]Xøä¤ÁN†–ð™¬iíËGú¢ÂÅhÕlt'‰¶´!ç‡ûÜ›iQÍ6Ÿd¯ gqêPK’NÂÖq˜&|ë²Î¤¢à–K/¦qûoO5Na_·×ˆÕRÊÁµøˆV©Ä´ñÛbx{pŽ!288.‚g‚Úʬ Ýo[ÏmáÍæÆ6«5,êêa}ôÛªŽªüŠ£x›‹¹TÎóËažô(Âsí }éÁ"ɶ\(0;+ºò´¿ÏÄ_„ ‡0Ñ;<¦Q¥¨{ÖÎÙk$R]Lráémäºuûòù‚ûsOCŸ’ùèŽ^HÄÍ/·yŒUW‘ç)-Tt°{_÷Ñø yt?¿•{¹Cd`lDí2…«·’QÑWDQRx‘ŽÙYš)9: Ûù ÌÚèC—œH’Ä)ï,o ˆk=—D}Ýö"Ò×$:”fËe9¬Áô\Û^$Y†ªüè!ö÷E=4ý¼¤]œ3P˜ÂM#÷GÉ lc .¹âWúU–ö×~å/h~sÏ ©ïê^„ãôÕF’_0•d?ã3Kíó¦òT¦éo…¹ö$¦CKvˆ»;€¶qž™g>RÊß¡ôê}€Phø _ù¯÷à÷ÕFWãÉâåÞBp¥ŒšI†Úžoì9[«kX­é¡j–Ù¡I’Y]ÐF>P\&Þ¬ªŸF@5viì3Q ¾:•U»:îâ:;ÁÙX uBöäšÉ2UŽõJª!R¶ž@ä{;)Ûi{#1eµ]é2]¢ýIÅ:t—Æéóo²T$vÊóŸ(ìaR5ûM9É$r¯ç=éñÚzX’ü&(”h^ðsZõí8¯B’æâM™o=€åºm÷„ûÇš‡¡îîcÅå¤p ᮜÞĨÃ%“Àø:tŽ0äPÏþ@n3Ì‘“¨P p=kÚÖ©¤úÔC-Õ*/ÿåâ|–ç™!ÔݦÔگݘQÇyÒw HðúS±²ðê"í3ZrÕ€µÌ*öHñň‚ÐÄãšÍ4¸MÓŽîu„Æh*r)þ*L·ÆcWÍ5¹¦×u™ß½÷®}ĜЫ„•¼aSþ<^~±Ÿ°Y­MQþ¬6\Q85IŸü(k¶vøw¾kûhñÄe$i,l¯mÖ1/˜¯ £ÆfG”$Ö)ír$â¸ÿ`5hÿHú£(€­Ë ô:^ÅlŠº®"ðYMnÏø­þQ ‡Ý°6/èB&=EFÑ%·ÀtQ+¯Ë÷ŠJ]¬j~ýƒóh‹§ªNüÍÖydÂâ©ÞO%¬•·_*ˆG$´Ïª¥0íð$ªÐ úM!këÓÞe…Ua)4 ÿ´M¥ÊQ­[:‡5s$nŸÑ¢{ä-É D½ÏÈÐpí-YJ&yO £8X’Ž,? Ð볿yþZwÉxG…pQwŸivI²òúqƒ1¹Y<ï=Ò‡ŸUHÄòуú®ª3×,[ÝFÒ‡Šìf@Ø_{…ýR—Þ}mâÛ’ÇÌÚOR‘1ÁÓM{_J …öì]:oØ ö[ð̱—²<Ý‹Ýèù*š¶Â"Â=IÆ…õšZñ6ïÊ˯€òçR—$¼l! Î=I"ƒ¡èÅñh•EuU»ªýeüá&¡E="4«GpÑŸµ]ô7ž"®Áœ—JÌyÉ9Gž7®†PœöR cªÙ†ÂA‰þð¹´Ù‹ÇõÜg¡C0}‰^ÚÏâKð XvÈ%ÖþnFê,id)\zøILIã—‹eJµ/_]K¾Í¤t’tª©Ëðliƒ6±e>Sê,§U¸)º#=É}GÊþL›Ý“Í#q3¢Ç—"†¿«îâKYâÂÔ¯NÝçôÒ[ši«ŸÜlË`R^œ˜þV++(IÑE…žýQ£#Aû¾uº$ÀÓ°®,|AÒõwwïí®ªmó <ˆÂ¾È~«g¢éö­ëG9ÅÒ(B+Ä/Š7¥®ÁÊ¢ÖÓ7 C§Ézmyg2nè)OŠÔœI0ú÷šgÚçèˆwëKñÇ{‰î·,Ü:¨jXyÃÀÎ/ÇÒ–¨¬Bƒ C8{“ê©!¿„SO }êü/¼Ëi#­BBt5ŽMü¬[Ý8ØÙœUx­Ô`ÑóÅçÑyeß°AîX9ìOD³"ú½… ¦ 9|™A:`ÄßOÄ©Jµ_’Êî‘5)³<ŠrK’\C2¨Žs¿‘…sãH#Tt&{TÒð¸çÖL¶çš1¸D˜¨aµŽÃíͶJl¿…­¿†ðu’±ö>¸ÔT¯òä„qt0EIð/OwÕ‰aóMÞÍ QÀת‘W¹MõÚAfÎÓ›¸‚ ÚŽ„4µý òŒˆ™Æç+Bt§C»E þgjC—^äT Í¡ÎdÝJÀ“6E^¿Ûø~d}[ˆ ôSo«n@Ô÷š’ý„Ä ÄYÓ£a§]Å{z°eS¶aÙ½xçè\’4Ìô>lQØ êÂà>ÃO”JmøIæõÎôrÅé ®À¹"À¸ÀS󼲬œ6ô3Ë=GÔñËw¡5áÍ<ǼKÊ»YS$Ñê?å¾ï¢tÆ¢_š–O¬³ŠGö€»Þ2™‰á±Ž§a‰„ây¿¢4ü‰’HçÔ¦|e«…÷g븆¾…UÃ{ZFÀèùÈ]¸&@T#¤ÙuòçlABtbíÍÞíÒâ»Ò ¿v0qÐÐ9æ•â•_Ÿ| VÎ ëŸô÷€<±ÒT€•ÅBòЛýYÍ _à6TåÐ’†ä„^h©­ûåJý˜‚&ÕäÑn³“‰ Õ×dšXöf½–k€ÃEZ©xë.NDÅdåqÌ-#²z˜½ƒi¾òÔÑáÃÃÏoÆéãw;ãh„…g¢~ëæ2áR|¦/4¬è ~Y½}7˜Œ¢È­íGø"w”ÐŽ½í¥LŒ—U¢@Ù™Âkº¼Þø´–‘í¥O™(÷?˜û®Ô´iGh¸l‹šKÌ£®t:p7ñó¶òh=Í-Æq]ª† sø|LQ§1¹¼Ëª·Ó¹Û®*¤^ÇÈñÝ$yù?]Á­xø¡ 1J WŽzÐb—¨îf 2w•Ja8àÚÚ8¨w±y¸ Qw_.¯¶B3£Üc›¾ú7·âϨ'mÍïÒî gnI‡–C—DȈcÐ/z Ùv®~§xþ*±'$Œ7Ê‘´9#Ú³Qu:-pÿÂÿ“S1*ŸÑо…;kÂS2ç,Tä´ì«¼n… ‡­¬¿¥&âåY°ö®VæZO{†áùÁËWï4ÝšùºNŒfLe€„ûr÷xHÖAÙ"Ÿ² ÇƵ;|1°s"ÔMI&å"ÚîÝz×Þ˜‘vÍYK™:ãÑ©'ˆœ·š#ž>›û¶}ÊÂCô|ýª-eåd´à€%»¹·Z‹×H­ ‚ t—ñS³eªc~ˆ´°99D"GÓOY•Ú»]êC,-nŸzQ4ìPÇ+J#¿r Ä58ºL)Í‘J+;’RTjˆm˜pÿœd™ÿ¸×‡?mÿ¸nZÿŒ¾¼(DÓŠºÞßh…»R$BÑÝ‚KG¨òƒ†)€§mÞ}=/8ˆÜŽ£‡áÙ^±Šºsk¸ÄZÏ»™µà#Þ YÀ½ÂJ¬'5„>–\þ¹M”´A‡Dëõ¥ykYösÆkƒ]¬² ªQÈõ͉eÝFû³ÁØÒ´¯¿Í-°ëtÅIL¢ÙCgŠB|ñÖk(Œƒ‡›ÕÇ qrö6ÅnnF®èìéçP©ÈŸGŠÉz^¶ÍÃu­Ù?™Ñ%[ó:5uûG´N2îx¨ïRð†ÄËÙ€suÈŸ9+Ix8ç ¦'âÎí&áÚéå€ô:ÓòëÜ^H;ÅU“̲™õ8pr0z‹ k%ÀÓ»‹ƒûZƒÝMäûCÒ¦ÚêHLÅO¾r$Zø‘€âé9bÈæ!ÁD3ð¤ì h¶ZšÈyo/›<)O˾]ƒ_´+yà³×¯÷¬¾³–&⸂|ç66š>˜±.zèwL²LZéGsnZ©Åú„è–{8ÔãÑÕJ>ƒ¯¢·_’6‡óx\Ÿ=,¦‹+šá1²3Á„= å¸a“Õ{­ Ö´¿{¤oÿ‘Ï|ö(÷|×\ˆÛ‘}%IàM~¶—4t¼Åý‡x“Ä.ï n*j¬àm_ÄWʇ[Å;Ó|n߇y¨×á¤Řpì]H'·‚ïÒŒ IX<€4y?š¶¦áï°²Êæ0†¨ÑN›«ñ`Ûð”s/*J»ýÉ@r1·göqÏtѱqì#´š`ª)÷Ä’ …Wå‡(§…k1©aKÔ\´,s þ‡Ææ‘;;ÁØpr™_«±`q Ÿ+’ûR¿;˜R`™…‚í¢àF)Ç!Ë ˆÇj^ŸƒõXöþ5@јzK ù±'“ÑÇâc83œò]9]ø2¸è^GN%´Ùú×r·KRæC§›EP±cœ~“±ÏS÷¥FÈðˆÿSbh™ÎóF 6 o¡²,ÿæ´^#73»=ÞÉ*Ýbȃ¥Ð¨ÑÜÆ‘ìèò¹¬ÔL97vþ‹Ewf‹ñ]1[<”"ž¯, ҋƃk¼×C¸ö"??Dj³Ó vT`x= •Ç.uà=†æcÍMð衞ýs•ðæøÒ›ñÆ„,7•¤ðkþÂ!ƒÂRÊž£9lvSºiâ’ Š¹LµÖ}5ðdôÞ@T¯~[ìl5jÌØÖÖœþÛÔáe“‹6Hó5¤l‘l ^ÌáÞ:Ëߢ:hP1¶4N—QùÏ^r¿k©$ ØÅ)âK©L¡ÏIR,¤ •~Ñ¥‚ö¹[ˆƒÃÌ’›æÐoEX¦O‡Ð+ æåüÃÔ×¹5²vô`ÖD ±&!É]%l²ˆÃ2Ë¥™•º¿³›}ác¬L#L2}êì`ǵFæé%Z´ Ùó>¢Bg)‡rÉh¸àž¼æàYÄö ¯„$¬A ú A0XÙˆ÷ z4Ï)Ñ\‘J…®§RÁxÒä4û|ùŠC;QíY2=#ò;Ihj0¯Ãzÿò¡pfMãΓ·Š%š$>¦§ïþÕÂÍ(RðGÄð z¿ðCw;×ý¡6fn±š¼‚sÚ+_-ö/’›¦òyçË2.4¶¸c%ÞÚãeq³êÄëÝÖˆœÐ'û äÔã8#†ø×oáÊõbØûÚýŽSÆê*ƒ§Éþ”01Ûß7}ʬ96ÛÄŠ=o7ÙÕcYYVÕ\È:‘Èd:®D‡ÎØÁdC°O0¾ÇÏ>Ãæ| úüúKAA­ÇGqŒ$I>‘Þ0 ϺwÏeÌ/cdæmç>þm„¡¹±/+ %d€Ûö[é`d@‚wÔçT­àáLÞèŽ2³v£üòêmA >eûµ‚ÅK²ã¡A•sì)=bÇ) 3/uÉG²©ï ¶“ÈžáÅëgŒ;/–¶ÓLFní#r@L½Éθ.%âíÞ’.µƒøbÃ…'bþ఻˭©J .(I¿¼aËôÒ@ä”E‹VÁ¤&‰Qˆó*bŒW›0ænø2*¶3ŸjøEïN«…À”‚Е­ rÊWm>åY6Ϊ‡¤ƒ×@Ž,Ÿö[æê3’ Áq›VÀ/8îš:zj}q£¸>ê÷)ùäÑ»6Æ”Í+Q˜ž$~ß¹N뀗w]XìÙòþ-fÿÏXõ 3Jó‘êšdMÿ{ p™ÚONå#dî¬sƨŠ8û¯¡­|mnVÄó&wRUÞü¼Ä×t±zOÒG½êÒKrÎIúEu€KQW• Í•Œ‡gBk½HúÐmÝRII1Wal†Ô1wi=Ï¢»¡C®ÈÄŠð~,£Ú£ïHKÛ¯Ý}'¬µø ’õ æ a©+NN¶ !¬7WI¦H~c˜Ý(ÙX¹54Šñ¾e ¥"Üi´f$~ŠYÉ_ÂõDW÷Îe6Ï18YÖ-TÝyæ·,ùa`!#ÍNÞšê5KÁ óú#úUÙ„¾)Ü“ÄB¡\ÂŽ®L„íðRO~ƒÂ ˆÌüƒW·’o¸yßµûz©BºžtÃ1íNêõ·!Dø§¬ïzƒì&ÛoÊÀ±îµ§Nâ¦pÖ¶Ó€`•äRš¤çÇÄm;ûšƒÒ0ö¤ ÷äl\ÏjL]ek*VÇçÎÐ÷ü&–ÌbaÕé“.ÊÞ¡¬Üs«0 ôó]´- õBíK§úzŠÆ´†æ³ÏõåUä+4¤}Ð$Í6Yûµ±™Û9®²V`â[dx/–êXÉ /ãè¨ÂÜXÁv ʸUÝS­D b2Ÿ–°å`6ጶ©}*¥Ý ¬~:øýYIÂËú m¥û?gNšX­È˜­nKÇc¸E¸B^Þf©*‚mòo×*h¹ÌC2iÅØC£1=„:ØoÛF Û¬ªpáà5m« :²ãïòEx|ƒ ê{êƒ+\ëQ¡<ÓQ_u®7HÏó(TC,‰4êí,”þÁ/AßéÔʤÇDûã ž£k[„ÏNpbJS„»*‚õm{]¡0¥˜ÐG¯t²GÇÏMý>òp—zu®Ùã¾zƒÊ>‹¼^óºzv$›Síd[äò§9ÏâF„“´½ÍŸD` '¤[ õ˜_J¶77/· B+ ™Œw£òÕ¼~p7Äí˜PŒ¼1ã¯Í`ýj$0Ù[Šà±hÖ“ä^ùË>‘sòæ#ajÚ]zÒ8/ilÏÿPß}­0xªWìJâpýÁOO:’<à[›ë?¥*è­™¦®S‘çuøM&@e$ã³Ñƒ˜¢\<f5aÝo—qÅÅ›cev %Ù‹ëá8™¹_ÍòÅ2.̶(‰ w:šžçyÊG?pÕm~Ó«•Ã@zn"Œ]œIC÷l¢à'Á¯òç!aÊqóêŸMö  ·bm"`rP#¨Ó\[î¹d•üøeíc—ã þaؔǿLS[ž›¶Ô/ :†õËÄdÿNÛ¢—3Ã5àå¨}6Îõ¨ˆù(YrÊúÔ>°0pÛ÷Xk)~ˆ¡û5ÐFƒ= gqÏé£o 4.ÆÑ ÿ• ’‰#­mÃK‘¯ã'É›×ÜξÝ4ëwï³Ðˆ%aeåveóPÏÊèDªi,T,6¥s¡øùte¶ûZ ”–7p»÷~1­K¨V! té£ðÌ…zÈÅ…°Ü|Ôd€ð3™‡Vîƒ*¥ª†Üû¸àuêºeõmAºÒ+†!jÊwQ«ÒKu^U½]ÙéËÚþãd‚žº¿C/nÒÙØø[ZÕpntkºýbXkçî˜COìoÊ¢¨•Í‹ãmðvé^6FKèÏWŽøºÞEþ‰¤:ÂAí­eå×Rø÷jéÌfXÙ\áý°’æ ×'ê½=c?|dâêZô?iH¨ï|Ë„Q7rš\ejGŽzÓ]RÌü!æö`øð¥#ù™ÿˆ€ög?SFˆŒjÃo‘Õ¯¡y48ÎÎV¬}à%pìLz!µ„¸k#šæ;)¨Ú[÷~zpzMÞ'ªÅ³„–™xâ#ð!œ×f%ë矉oÄÔÞŸÆÃ›5ú¹œ6ÑO0víð¦¨:…¯Ð#õ}ø–ÏÙÚ•HªúdYB§ðy¢ÆÍ2ŒZ”ʱýö8ƒr†Ü2ÐöÙç8yÿÀä'KÔÖÓÈ®Y¯o£­ÆÛg%ëÝì[š¹à¹|+ßÔjÄöQÝ›p‚öêgŒE:ÌëÖÄnb‰ªßίTcɺýŽ RûÇŸ¦Ê_>¬’5^ ÖÒiuÁ©ßÃ*¥9pmƳâë’jŰ͵ŠvêNžýlwÁ#ˆ3 ‚ØÐ»\|hâýÐ pb/!FìYkH7u«®†pbtÔ íym4DúC‚ÿ¢À ç›´O?^9‰H-ä¿÷ûQÍ”àÒµÚÄÏù¹WÌMY‰¢ö¡‡)CH³+pmn=3'l¤öÂUÖÿñ?ùÓ·WÄÎÝchÞËÆq„P©ÀÓ§A¯­G 1Sg©ÖÿãNJ°ž¡¹ò;tº:„3³7ž {ÿÈ,CQ6&»zäŠPŸÔ9¡z®oá?ûë²¹„ ôí+•ZXx“Â(š&ÀSe×~÷šUUaç¥Z‹ÏbPähfcpü¥ÞÖÌÚ¾ÛÒ\ï‰(¦Ê%¡ówVcùïŽÅèôšý‘ãë´òoÍ5šM__=ŽLiÏÕÄ%Áò¡Q+S€¥æÜ…ŸA“óujÞnÑœ+Äžñ£š™U ±ÓJÓ$q‹ EÅɯÂÃGþÐ& «k>w¶¼›%Õ1*èPåx¡&wád"Ô11jâã—M"¥ME:d+<_âe‹­—¤ž3¸ò•Û¤¨'ו®4E8>kSoÞ•-­²Ët7ÖœšõZ"—µë"ÄŸgä…שČà2 Ž`dÐ-×éۿŇvÍÊgŒM'‰”CœªâNùC¹—ÔÁÁaJÈ?°½è(]Tœ~¡”fHÍ¡¡c`6ÞYi…zVG DWÛ–4—tš vøø…?¬ŸáÒ‚Ê2Љg¡$r?øÜ?ÚM?›ÒN€}¼bzÍ€YèT‡¹I©ÄOaíy{¬‘0K̸B­©^«+ fU°&›Ì§ôà2µ³ät!‹ö&ôgŽìFK“òw~ɺ¹FVôŸë©6,±wGÍãr$~…¿…CçÔ»Œ{U³òÈ?”R4Ï^¹ ê ™< ÄÆêtISOö™°û\øA Ž´)èÄ9L#­ÞG».»Û‘³7Í[íp ½˜pª2§®DŽ»ô]f¢± oÓÎÓmQ0ñ¹þ¹–­ûìrÙ¼»ûv^Y9[Òö·ÂÍ™N#›—Ái­R"*JÑ©©¯&MGxð×~8åwükIO‡øBùt¾]äx“†ßð ¯´qU÷T)Ú[Ä ûµ®ÿOáÞà”\g—ÝÉû›Q ¯dZd”Ð>ÍOµü,µ{ËI™è\ù‡xñ+©tÂ^OœØË¤™ÕvoÐqª‘\RˆãûÐ^í¡å‘¼¹xî}º¹÷ kÆ5)pô[1æÉ—”íí_ :¿€îKòÅÁNôç=R¥×þ=¨Z’'ƒ(ú‚G †W¤<énÒÜÖ¯,&*.æšÈ¥ç]Ùàœ±Œ½Š_^»Ù³Íæ¦b1zl²«ø}*æHCûª¿±¿ŠEÍìí µ9–,™Ð¯æÿâ8Ä~É‹x¨£VNV4£4tÂ)nX5Ú¼5ÎÙó¡©½ÓÖíHòMnGgªÑäB¡Êäèi ê·=¼Ç°0}@ Xß²ªxܦ>E*d¼Æ"“—\—dZW`íŒ^³ÝÀ…©Šý=焹i¡¯_5…ÑfOfYq$`•œnk¸—kJór¿`Y¯¡vaê÷ØõˆÀ$L9ÑZ¾?ºhðtgÆËO.£³…„±ÄÙ§F÷¨øµk·h=®¾ZEÄ]†ûă¿h5²M#ŠÙo½åŸoû—¢Þ:iî™ìÈXJÈ“*;ëË“Ut’^>˰ӥ/áð€ß"=YA%F\‡¡^d;ãl~².[¨‰n b 6?op êv-#^ò/tm/o5×g×`ÛêyРçYˆ´Äk2/­)³³w' “Ѻes¥¹ æQ’xÂÞØÑHD–šu£¤‰ŸØ_GÀVè2|°nqÀ®°¿D[^ N-œ.wBN2A OÔ)5ñU7èsåÑ#ù—N¾Í)˜¹G¥ýº?cÔúLw¼ágΡ)To|l©ß:-‰Fê:ù×&Ò˜íXk »Ñ·v>?qô»5<„”™”Ö³\J“Ó.#‘@ðöÆkœ„£B ü>>/_à÷”9×|Ô“7³\ün¿6¢iEzJø½>ëP•"íæ—†ìð•P˜uz(–O4R¼øiŒ”›`í(qÍ©k¦‘ ”e§db)Ì4"†ÉŒò²9¡ó&¿Íb‹¥â“ä}ÁæÕºâÞ­›í¥É ^N½eÑcÇ“‡EÈ ä]‹Zþ^{)‰&Ÿ\hPFÃå4TÎ=ØgÌͼÇÌk ÉžÕC= }DQm Ìø5®I±½$FTþPÞj©ÈêºAâ{W¼€‰[™s㛑žQG«[%ühaŒFNíÆ~V˜<ˆ«"Ñd¼Óˆp™–3öæõEo5ŸdӾт·F­lkØ‹MH`õÉlOàMûóa>6-^·ú7pÌ þ¯¢ÆÙí(Ú&Οr^ä´cÒ-¨âöðxyCTQOé%"ø`ø.(¿•$w³K£Fø«3mވ眱òs¹¥–o6\!Y˜ME‰È‘ÇS® å~k‹ïŬ… iÚd,¾aƒ/È ªc…÷ì~V-~R1†Ëi¡ÐmOti[JŽæ1‘ÊXßvɉŽÔÏÅÈQlG³Ýîæî„öȸs¯É*¥) s©Ñ5–-¥VS gz1y¢óyÓqxˆ) ‚„ÃU}®~¢…ÓÑÙ"¹Pl^V¥<Ÿ^(A¹Í)ò†_ƒ`xv¼!놃õÌÌuLJK[¼ê\é°™`껂Èyx—‹ãDÅŸ•#o*)Táq}sMãS¼Ö-¬+ó_;Ë n(ñ«øÝÞ ±´Ë,‘dÙõ+5‘#x8™À ¬¶ÜÙh årõøyfý§ §øí|E•Pýë²ß\ä‡>Ü'º\”tI †Òp5Þ‚z²\ÿðªÎ¶qT!Tî0´™Í™W1•ò|­ýS’Б8ñ„؃~½Ö¥׈ùéçñ[RÊ ww¤Ö]/SMÉG•ôFºCTT=¦ÃeJ™f>Ò‹·Z×ë/JE2\= {Ò_f敎ŽúESÚ_:.^HØs‹ÜÀ2”Ñ ¦§Ó"¸vÀ\ÖM#žáÑ4é,ϼ‘Mü5Ôe‘rµ :>ªf;ÚüˆÁØDhbr)# Óµá2€íNÐvÐÁøÁg˜9YªÐ¤™bêT ì¾þ'#{µ16EÖ’†R¾Ff¶­QÌ:%Û¡I®„²¤ý*ÀÎÓôk†ó=üx8±,¯+êœ`¥ÿ’g,N] õ€Wškª8ïìU˜ž¹_kƒÝí(=÷d9è#uã0"0ÊÆ^ ¿Zq.­ÜûÂÌã¾~r&ö4^ ®šˆòÙ÷R1a>R®èÓb¥McÉ=% TgBþöO*{ÅJCƒÁŠ6ÌT4_&6-‡®ùÚik/Õ4ìÁ^Dxyä2¯D_µT6ãoéGY6Ÿ|EÈðéC«†›ØåN:ôz›lÑ›[uuàú•óë¼>,2™Ç@GvY’Gx)ê# 0}÷.àï×"5Æa´Lµ$m1³3fðˆ±,Ô,*aß:ÉÓqÕâÕ *Ð)tæ8Ç^LÊr¯Ó5{ž 4\ºÏ8Ì'&= ¹ã­…깑÷v& bÿ¬ŠÈ„»"÷¨ÈPg—Tµ–& †( 4UXœûÖ?K!Ç‚s ^¸7†ø¯ç…je¿[\Ôc“šZ÷Ÿf’©[ÊŽÞª‹u¾WIi”…í³(í›§Û§3éê‘ÈîA­ÓWtFUò‰¤ÉFýµÖíHÿTÞg‡"”úéGˆ§}=Õ‰ùŒ€fY¶ÅÎyœ¬MðžÍÓÕ…0‰éxš*sa “.x†öámÈ#[>r ›še D¯L~Y ‘AX5úšÑG96ï"`›Å_‰ú¦×X:I‚=b!%|)—‹„ßÁêÞðº€ßÜý— Zbñ|“pÏŒÕEÑLƒ†gÁÌ <šçû¥ôÊ^hyìwâtª–—åÓxÓ¦y1ÑÎü÷R¡7ͲK0hÝg¸#ЧØbÞͦœTwס%­´ÝihÇxÈx„^åŒÉ»ºðÇRïh ቑwvm`Í/€£Z,RÏuåêRlæPQg1™v ­“"øjòß>»d² ÎF׆ —ü2okjÍKJŽjú)o†³+ŒµÛ ô×øšŽZ­îùemŠß›æ(ËûËÕ€ÖM;]÷uÖ£´†å¿ìµ5ÎLtúYdßì(Š2¤öÏÛóœ‚ipG»LŠÉ_ác­\ÃW…ñ§ÀQeº×òÖ ?S0VÆìþy° H„•ŸS¿SÚ…-«.„ b†™ŠuáÖbÿ/š’mÞibÿ`_›ßÝ€=2OÒšû"ˆEdýRG_V–”OÛh|}«¡ð<›™W$šä<ÿ‰ƒzc$*&¦ .[#xß6 ©Çüq‡×¨iÚ»~ oq+¿yûÚBX_Q„WÑÇ Õvbª¯ˆ—À‘b.”좈Ši\¦ËZ}f¼£íla`8ÔÞƒä£g¯º<CÜO.–ý¶©—ÜúçkWõ×àU´ÊC`{§´Ú¸(Cä+Ê ¨¢S¸†”÷UVÀ[«Ó÷ Ùg}u8\,7ЋáhÊ©.ôQDäÚ7wŽ¡'¡¬µî$ Ç8ío“yZƒ°®àG6gšì³hÝÃüðõöõ¡“˜1ƒgXk™wy&`B¥àPó{‹¢õ±a$z$M͹Úí¦oܳ>ÕôŠ•—ÝßqxC$å?j6o|–ý,YqnÃÓ¾º0M,.GãOmÃ+ÎÏZG¨$¿¹]ºÀóû²ÿ©  ÅÁ^_­ØäÜûP– ×7Æ·KFkiÒF óL‰ дº›øÊCßÿ¬]³}˜û¸ZÝb_'ŒGú³:ŒÎõõÌ/SS[CYŸÿW¨ÏWIëT„pØi®æÉnÆ:{ ¡±EBåÚ?YÛùc\É@AÇ~}ô´ŽHâhXlˆM’E%<õØ2dV{ÇŽÅj»5ž|?zmûWÔÓ¡K›, ÓWÕ„Îãf#kzçZѳêaMœ^öc <äàßmæCí J_=å¡…¸ÂöôßÊ$ÌeÛÿþaå 9ó©?1 ‹9¢²xaçÔ;òº(¤V‰œšªi#×jG÷ °ÑËO´ø:ürûªëÁD™íÈe^‚g™êS`ÆÕ¬±?'׉‘MÕõ‹ÍÒàÊyÿ}>ÇÙ‡Û3Mö0žÒT8ÌQÃÚEê9'Ã/ü;ùß7}¼aÊw´Ö„âÆ½‹ú˜ØÛ7wþQ¦|B Á ¨ô^\&K¸Y;Ðã>Ñà'¦öÏÀë÷ãѹ =“– ÷gûHÇudÿ:I*ÛB^äiÕIôÄ‹,´HcCæ°óÖRÚ)&üJúF³‘?X‹—¡^+“ûÖr½î(Üýðz»i>ùÃtý<À ªõòBva/ä÷﨔ém‘©ó”q27«œŒÎö#ÊúfOW U‰1iZÓ)ë,ž¤ášyŽìÖÃõr¹¹øNø¥äHÇIMçÑ¥èW éÀr¶;¸Ðއ\¶NáÀ—м]\Ë>‘EÑõ\ÅaÔ&»/µv”¶ôœr†Ö~‹mOã¡ÃW„àüÌò¦r ¡T÷áp~bØ×‹–I¦nÍWæþQ–½æ=ƒòÒùš¯ÇUÐÙg| mɵÚñ”Ð(茺$"LüE*V¨UÍã»;í~´{‘Û¹p™·mðˆÎÁGwx-Á Ù ¤HïÇ%ÎîÎd=´Î£TÁGÁ'¹1­Ç“º5Úì㎠¤ÿI٭ĸ^¦GÞ· 1¥²žÝÞ¼™4>ñºë5 ‰ZGØoOxøÀoLÖ°”8‰ü0L}ýEúSôjp›>wºthfÓÇ$ üÙÙó3Ú{,ÿ!é8p¢îLú ú[¥Ïh-–I–ëž”â×?SôßâYSºÕ8•06»gn‡ÔÜ HHð6Üœ®tiƒi1ÅÙ …`MV?Ñ ˜ÍCçYQß$Öwœ Êá &ÁÙ’•Ëÿhäùè}Ÿ:ªt…h3TNj'è-#ÜÕ|Žõj sŽ@;Õ z>÷á£ÚD•RÁφ¤òw.í,æ…>Î÷³`Sæ‘Ã)5ó73CGI޼Tºàɤ“!*zX“.=âg»7ÀÓ€\h«ÅÇÏE¢z%0„& ‚m°bKCô…{˜QŠWæt®ÞMís_¿_³÷¦ÉR³ðEë:¡ŽÜºã«,².ÎM¼×¢ŠJŒÚ«‡ »8WƒXt«,îŽÜÒL ¬¥¢,V퉗íjè˜K*m4¹¸$Õ‡æ¤oq=›HÓCgqДNüV·¡þÍ¥ÏN_`pßLæ½áëÖʲäšÍ씈ùKÿcÉxÂùÕa ·2]^Øœ&NÙFC’"ÌZd—Ùž"iÅô[£r±wT“(oPS¼Óƒ‚æùeîNÖ†~Í%.¢/g¸Bwú’vÂP:ŸÚOòÕŽ‘s0zªZ¼¨IÕp;È?Z2HOTº”É¥Û²gG‚fétEg|N=S![®ü!–f³òž™¾1‰,yÃÛst.o]«û{üP¡0¯Ó;U­'â)BÉçÐĤ£Ó8’*p L_|ÿþä¨2ÊúW u€Ží âs—<ƒ"Â÷°n¬íd ƒ²Uø !Ó0çüœ|fžúe+ œå§bÍŠ~¿¹Æĺ­Š?øEîZˆ Ë¿]÷tbâÚ/Äi3ä›u–.# >X%ƒK°ÂÚùpšÏ×È;ŽÈâì¸Ñ…Æg«ùŠãoþ{¦NZ:Y,Y¯¶ Ú(1•ü½¯^2$ì<ŽÔ©X!n\¯L«EÊìËìô¾Sr/p1[ä;i`ÌTÂ{ª1vÔœÏÓ8ïì‹ù–`™ó„eL(4ÃÊÌÚfüú5©c޵-İU(¡Žœ…O%SLt]5éÓǪ³“›÷MY¶(&Zн\N¾§v~-[oc”°UB  ´š$"3P±¶~ÄÄh½OÁ /çËöâ"—‰[ÕÐXž‘Ä€©§ñÈmBý‰ʻS¿û4 SÛ©O”Ë£TØÄ,º‰a³ Dì]ýøÞu%“ã ‚ùz”JJ±†—é­\˜¬3r>cˆ4¢º0bvæ;P†ÛcÏôé<ëiž'@—ËžMƒíF楡Û_1é ø•-Õx?ö”¼dláßl©z‚o¦J<PU‘Ü4ì” ¢<Ï|Ë»ì_—²IæGðñ¿«ðNõbqÖÚÙx'sûÙ@\ÃL¦ô9¬{[†Aùëx #.]çË©^±­š­Zä&‰4*4=‰LÛà˞ѧ‡–Ì„9…"µÀWÀíÅ2µéпÈRRç.Ôm‡’rBÑc0zm§7´ê/U:TU¡aPñˆ”÷§’ägQ%BE*‘Ož Ì_UÅNùH'Š)wYÇ'%LÝpäYã슦1ß­ï"࿌äð*»Q$@¨‹ž½^÷‰“ölW…]è½Ó¼ï†Iï!x™2öõP:úçS‹ã%:…•~þ„zîaΆaÌ]!çªeÜ‹z fžNŠ—<\¤Ç¥„×6³ÃŠ_mµÐ=DÉS~'æ'†{æïvOÇÀ/ؼlÌþ6O¹¨~D§žA Èq`FŒ†MXô˜|¼7„¿£¸bA¦ìûzZ;"ÔŒáB¶Zv§A5T[lš ’W"{–# ÂŒàãëàr±ð”dBæOi.hoç–Iý´èMBΛ:L_·WZ›…nCbXÖ˜pãæ+€ÿ/Ê=‡Ø$È·ÿ0‹é¥>)"ö^¨Šƒ'óSW®–Ed?7sØ t0-Ó•¬ã­6Ûrwp”w’>Ä? 3DNã«HG®¡ùGëõ%`\ÊŸWt}$¬8Tñ(ƒ.m€ò¹Ný‹vå$¬k+2 "HqþÏ“^§Å¤n‹‘•øDØ2iÜæ¢Áî!Y:Nfm_2ørÊ6²™˜Ââx´É–úWNƒ2Gl1KVd|èÀ@š©sJ¼69W,Ê0™ˆY”™´:qïåó¯93óñM“·pèê]W3~¯ŽCáN\GÓÔ´,ÃÉœ]+‚Qø1•ñ[»™_|Ò¤ã¢9î2pƒÇA‡>w¦£ ®e$•rF]BºUã j–íbÉÎE~eÏé`¦äæ¼Õ.º²ñø¥½®Kÿô9*N˜Î“¸½ž_WŒŸÕÏÄË?;KU­zÛ`×4tšÏ‰¬¢ tŸjn8ŸGÓr•†JËS {`E&ÿ]²ÚtêFjr¸ézæîp–Š7r7&îIÀ ¨åî³…V ð¼ÍÚ]T0ìkõ¦‹'¬Â“ÐìgyÓý\뀘× |Üõçr(€dFE.ê^Ùû?wDEÿR;g¤ðÄÀ‡ôÙ¹ Í>—EDÕ0\WÊ/èÖUùVWËÖ»£¼m´Lº0ÒÙÙV–è[kŽ?Cyòªe,ÈÙÊ ¡>¡ÒÉ=ú+La¯óMƒÒP$Î=¦ëÍ߯½í'[êJ?uY.aÍfÜËü¶(š¡›önh¼yöÕ§uÊFdðìšå ÌÑùu ¨ÓœfÞ)H0Bzzm|SÒí5•Ü+Qè‚ð!žžKË“ e¨›Ë)Þ=PÓ¦šwÒÚ!TQQš ‡Y<}X‡Ñ»Rš®ÊÎÂO±‹8Q]•èÚÇ yíª¿­0äù´µÍ¸×YgB¬xüÃPIÙc.^µÒÈ_ÿ*Ü”¹ð+:€6åÞ±¦S¿ì&Væ¦VgBÑâiä˜í‰» 0_°Àr¿Íœð¹ÌGŸí¯/žz­ZˆÅlÄ2á–ƒÔ`§1éë¹ÿh?¥ÑÁLrŠsÌ2ë’œ[¥àã.ÚêÊV>>[÷¿àIf-²tašîÙD𧻨6¸áÖ¡‘J×$o<™Ë6¡îªóÍiÑ}Eâ>1ŠFϼÅD'™§š}Š|o—ëÌ)Âü\©¿9bü£Í£­ìÎX좳„ å'ÿÁÎ}BÇ üõoCð-HKú¥/°zÁb–ç|ŒT’ (d<ºÏÛ&r£’P”öÚÐDT°˜3“r¶œ¹oŒ(ŠNp²ú^ÐuþÙ5¦Y_Ç­åA±!»— ÜJîê» ;«˜{!pÍÃh'IfõÖƒ€þèjæ2­ž‡Fô׺·_ª±å6‚15 „³L¿-p¬&äÕü°"ï`‘QÍ„TÖ‰íTWH9D|[á¬;{ÃÓ[ï8‡÷{5¥”rϣ݉;Ýoâ>g!~y”ÌEvy1E„6I¤[¥ Ë$#±©äªBö}Ù‰Øé’ùB +Û»Îø©Xßô+èÑÖ-qE²0nÛP¼ÏÅmé×»ÐMűß|ÃYa#øêÅ3ÒúkR7*/•×Qþº%"~êè?_“cq÷‘0ÓÔ"_ÊÃ…¤)×\/eŸQ…#u­b9ãI6”Ñ@.ûÉKJš¡4§½jHÛ¡ššÑaå}rŽ-NøÛ2n‹•?ÝùHR 6šþØk·°Äy{±{w·õO_bó½yîˆÑK{…æ\Dm‡5²„ 7ùÍñ–‹Mï… ˆŽØÛŸ4`Û½Þ^k°¦Ík³XѹRF«]™å-^"9þUº!˜PN tJ¼„æ°©Ìï!®Í1ÿdQÒ hw“öÜíM¼¸À'ì…ì"¥AçšÌ­•{=ýz§º6æ¿=Ó¾ÝqÑ5·^‹ÌÈ8X׈býöb+O¤+äm¨Ðë_­°¾DŸn¢'ÕA-ßž"Ì]b$0ãH#L ù.u¼ðÿ…:s¯mì”öŠÐ‘î˜å½"7z—ÑαÉêEŠš÷‡bt¡ß˜ÓþSo¢0ÝV1Õ¸¾l³Í˜ÐA^`4M)ÊV{2´‘ø.‰&rç¬ðŸËCò×ãÖYK$’vïãÖØ¡#ôb̵ùª+5Ì\ëã²ökÑ@>ˆ^:†“¢o»ÊD ЧDsG]²eï™e–ƒ3&<Å( ¢Å)I ±ÓŸ¹ö;u±þ÷|ø«_’‹pïQb]¾­Ë]ròÔvoê’(xƒN ¨<7mçf)OÈÁ@K™”BÚÆ"2ÏÎ9ôMe‰Æ|%ÛÀ€U+A‘Áζ¸X>¹T~ );Ø{¹„Ö•N:D«/¸¬Êrž¡ˆèßÉ|NÛ„ÛÛálÅ?‹t~kGûôÍÜE²#Í,kÏ"÷C¤Õ šXsHÊÎ],È@a_2Î7/ÞãÛ}Øo)_ Ë ªUÂXÄØ…k[ŠŒ¾±éÞÞ(Öß)ÅøTþ wêow½­?IÜD†6*Y5Ò¢¤]õíuÕ:U!8Íá8]Hå"*^ë¨"…tž-£ŽÃ>ŸlŠº€9¥üU•·K¨tá²ö*¾Ûqc}å^$ÁÒ_!ëÐ'ãs&©OÓ¾mÞyª&‘ª/²ó²ÛL'üxaØqoH¾}nµ<Z÷±.Ǹ¼jnðbî÷3ë—¸Î-Û¹^?«'ßðN¸%Ûg=Ñéút]£yŠ8”n³e=#à¾HxÒ]ÊD’Àš_Í5ýþ²ý”f/çí‹CÇã†Aµ¤€Ýâì ®h˜ÐOá ¶ÊήQfã I-…ïf{â„·>‚/+E…%zÙxÈžZ¢ŒZ$Ý'V $ùL œÌ¿ˆá&Ôµ±]”Ô“bôÎT@t°`F¼ü¶èd)Âö1BS ìÿi:×È-;èšÚ£NM€s‘º´û~X¿³P?¸²?áç.“á6ƒ<7jµ¿øÕÈâ˜^óQ€¯/~Û€#{f±“ì> ˜/{Ž4Žðíqµ‚¼}ÄøÃlóM+DÑÖý|3·WÄêÖÁÓRõ§ÁרR&B–ØÄåÉê¨Qµ<.J¸ûŒa~å!ƒ‚û©*?V{ºý(¿Å½ß±Œ,¯‡H[íãe|¹/ûÀ8B”ÅKÖ—£µ©M4ö”¤'_Ly§Ð£¹)Ö;âz‚Q€Ì·$ ‚ï~~AóËOeÝRÉñºg¢2ñÜšlIaÆ),OУãeŽºêÝJ]DZ%=â*Ê·/³.³b&ލy! AãÜ[S£qõ4b°rϘ‹ ø%s$m€¾†ŸÈ kD0õn†$Aë ^] ÕNÞuº…±Œ.ú„ãr¡$<)•²äÃ2‚0ÇfœêI} ”èƒ4³«yAKðu­³¾ÊÀα‰  ±Æàk¤]V*÷eèÉÿÓвendstream endobj 337 0 obj << /Filter /FlateDecode /Length1 1723 /Length2 20852 /Length3 0 /Length 22015 >> stream xÚ´¹ePœÝº-Jpw'@Cp'¸»»»ÓX !4®Áàn‚www .ÁÝÝ9ä[{Ÿ½×:÷ï­®–9cŽgÖ[Õ”dÊjŒ"æö¦@I{#+ /@^AÕÞÎÄͨ ´t¶5q|fbaaG¤¤sš8YÛƒÄMœ€¼.'+€’™Ó{è» "%@ :¾Í¦î “‰º»@còÏBÙìÄhj~7A–Ö í{ˆ˜½ƒ»£µ¥•ÓßlŒŒ3ýeÈš˜}±w±˜€Ì²L LE{×wÐ@c˜­Ll-öu 6@CMBU ¥ª¤¡¬FËôžXÍÙÁÁÞñ¿zSS×bˆ‹(ªK€š ) 5õ¿Ÿê@Ð{ÿ– Eõwûß:ïŽÃ$ÔEÔu”%X™ÿîÀ p:‚­ÿ–ýÞ¨Þ;üOkövÿÐX999ð23»ºº2Y:ƒ˜ì-™lÿéOÝÊ pµwüxÿvÚÿ!ÆdþN§“ð_ þ @ÞÚ ÿIÚÿËh÷Nå{Ð;îô{'ÂéoNÛ¹À@à¿•±2ÿ+¯¬,°3±9A& ³wG''g0Àøìý 4§þWƒ@€˜³£ãß ÿmrü¿eþ»uQû÷éÛzz›¸þ牙€œÁÿ‹›ß¶™=l vÿ+#`am üÛ=øï™YƒþÁDe$%ÔÔåß…bT°gÄääæô÷ß|"âò¼nN+;€å]¤ s1{;»÷®Áˆé·~çÉÉÞÑùÿÑõ½+ÈóÿÅ-¬Aæ™7wv`ÖYuʈÿ—÷;„ø?˜%Ð À~Ý̬˜ÿ–ûG-aÖ¿ð; Þžö [0ÐÛÚøþ…è 6qœÞžÿÛðï+DV.€¹µ™Ó»Ð߇ñŸì2 {Ï¿à÷NþÛô_ ùgPiß§ÔÜdë0Z 2+Ú;½ ‚æÿŸ9ûZ’ζ¶Š&v@šÿ¤ô?ýLì¬mÝÿÍó?<´€{¥Q´w´3±ý›5XÒÚ h®lídfõ/bÿ…Ë8™¼k_di |?” ¿ãdû®Û÷»ÇúïÕ`dýKë¿ÙÞ%iöƒlœÿ˜€ï4üGÃïÜÿmÀ,®¨ª ªJÿÿhæ7 ™½¹5Èð™ƒ`âèhâŽÈò.„ÏOÖwM›ÝþQ €™ dïôppvòXØ;"þ=MNV3𫳉í_ø„ÀlþÏš Àì`û>¬ÿ p¼‡8Y9ÿÇ…ƒåqµÿŸn³Ðñ_À¿ïJùïTÿ#X–ÿÙæ]wÿ¬Õœí¿µ¬Í߯úÿå¢`âähí¦Çò®6Öwüýõß¿ þ­åÿ Êÿеwóddgˆñ3Ïg+;€•õ3‡÷¿ÅšýëæùGéïçñßë¿cÝ€fˆ‹söf|6ÉõÁÅ>y“%0”‰~ mÊ@Û×µ¦„²‰ksá-"T ‘‘lM& ÿt……o%íä´²Ù¹:…ìÓéͱÍ$‘C1žÖއ¨Ïão—Iäú%Í+?`\þfmÀv´Åt[@'l#Z˜lûàôö€ý=Ò¤[d‘nÆ87wDÖ¡«k¯ÔÐ S(óq íK'¬›^„Þ¬}kÉD\=w€jã3—¡Áì¢êQVVÿŠ2’ÑÏÑ)8ÆzÛ¨â¨J\È …m†…„‹¶‹ò­µÕ—?KKÍGôpÝ[­¯ÒË×sÍUÙé쨃Í[ùUf;ŠJ=F¹Œ&a½“X+<Ùu_…¾e™“:ÚŸÙ ljÌï6ñZ |ó\‚¬d &ìp#UĬ_æZ  ¯hf€Ó»KµYÔF¨ö¥™Ý•Ò͈ ]§¢âßî:W@qtñÙ{%b,aœØ(vÅ ÷Ô ÎÊ5ßÇf°69ǸL¡\MsV}½ªµnBv4LÈl÷Éùßò4£Ñ öù[Êf ^“òÞøÈÂHS¡õÓÜÉÈïÁEp{±­ÏGúQ×èá̬ ¨zöÅ5ó O¹{»ÈD&È®JxlDÈC¨™Þr±qˆ.€ÂÜ \ô£Ël-Øäĸ鑽 å»é¡¼®¶B²F ‚<^4’ÛH“„(Ü0üC£‡årŠÝÎ’ßš±¨àë.$ÚK°Ǻ©2Ü9Æþ¦Ýíù|“€Ø&­ßÃUèfƒÂšyªXŒ†EIðk “%šÚžÍgE†ïÇ ÿH{§ò]Ë/_Ã@}%îF2±K;|xÒ ºE3ÓŽ¦îF¦ÕѸš7: Ÿûµs°4ùøàUò‘ÁïÎP°psѨs"ùJ˜Jûb@?ׂ_õ÷:“?ÅEò޶€&7Áá*¹tW4äÆ÷­•[Š-ŸÅx~ï_0‰YÖ gFq ˆ‡ÝÚÇÚLæG’ Üú:Mu¶?m> àOôoì?,‰ú'½!Ç »Ë>mÂzIR)žVþBë`Z" œe‰i ˆ_G¶2³ï0õ0†F‚¿Ú;¾(}Ûó~ñùpðYuY—L |ªè‰íè oO½-,8CÙÆê¬ênY¯œü¬±<h”ö ƒòní†ö6A2íF;Ú2Ä„ZUÊ?k‚ïŽGQ÷·pó8[Z²}«íòÄE¹GÙ6Ý?þêZ™ìèáb"ÞcŒ¯˜Ü4Ó5 ¯¤ØÇ’œâw=:ëØqQ9Oˆ}Ò"¯Cv‹”… ö²j‹6:È×Tk© 3ÖD©k߃Qj¬üÁ[—ÒÒë—G­<%Áû± F¶É´a3ÜŽDõg†ñ°™V𴤨S8Ѽ…d SF;’8ü÷ú9óFÙ•^pz5ú¶¬^h|yœÕŠšó9a½Ë.„¿Ð1M 9|‘Õ1ʇ*i °}æ)䤻º+­8ÓXrLJÆ _ϾžËS„ðùÒÚNi[‹‹ËËéÎ)ªœ¿ü&+D+ü °-O’ŇïwòüÅæ ‘†ï‘MSàÍŽ¡>føÊAŒ”[ôGåð‹â¸/ÊàfÁœøpGþ¹DsÆQ=õ×ïAQ*ÛíÖ JȼM=­üýh*~A¾ø‡KÚ襞Έ°T‚tcQsƒRÆaV,fS5p`¸Ü2›ÞK»=aäy|¦‰‡ÏÿhîìB==kâ»z’üâ•^S°Sœq8+©ÝafÙÑ‹¡åX ÙCÙ?yõþÆßT{?–Ò}ò%~Âôþ ¶A=,cûK Ê¿®öá2Kë[^!É¥ÖKÅ•h,›ð®tÒ¨Ý!šïuOÖönx~Xžã9¹Å+ð×X ‹¿öóê”ÀHU´$½æƒf“üOÈòœ|Û‰¹Zœˆu[—Hð9—×Ö% œ4~†_¶é °;žeÔ#cŸÍœN7¿ÞÃ7âð €ÖCNŠY÷²ŽŽÒò„ª9\”*ƒó¥ƒ[Ç‹èkJ “×|§eÐO~¯Ê%-ÚÛ\ü#PÏMÏ\6—kÈd\!Öq„ŽÛÀ°QøÃÓ‰?œ•`Ø^iׯf…ŸŠ÷H•~þ–ªØŸX^øö( y-SëÚ®Éiyê“J‡§hô’:­ Dü”@䯕ûóXÈìÅt! MáŠ÷Ç”Kñx´œ­(ÆÈóƒCZn¬øU>ć_)í~¥ê\jIi}uÂ'<;¤ÚÖ)ìTÁ.„^p¨…*ÂlÄ(³`RT]ÛJM÷c;SfO¯~§Q¡NªôncÒîY åm5DÌö ²j€³bk-=wÉ{Åzu·Œu%‚Ÿ w ž&t‹ª±Zi_ç›)lu"¼òŽ‹V“1J¡Qãl%JC³ÛÓ³^â†eÿDS.µ Íê¸éΗŽi­ÃƒLSgŽûÒÚü™ÝÅi¥ŒÕìoQ\C#–¹Q"ûî)àTÚÕ²|¬SŽ0Y=ì‘*NõH9ˆmßB×Ïˇa¨)Ã'Êkƒ¿(9ó¥î~ÛÉ›ÇbŸM³²m>ù‹‘2…W„1îᳫK@þRµ»Ž€3­ó ¯`ÂD1s˜®Mi æ—XT´]…Ya…©~vž Àà-ùƒKɦ ›9ÕvFž…».?ÚÊê)Õ.Ê!I}ìÚ„cžÃþÆÌg¬ì§^æWOÇ”ê´~oÃ[êRõ øYÄÌ|÷qÊ>O’£ŽŠÊˆÐLUÝ™çÖ¹œÌíWósNôÇRòxØC®¦? ¨£¶ôkC»‡«g ÔViò0|â° §‡T=á>£V¿—àr'ò;óÞìƒÚ4ô0Ö­8 µóåZ/· wÃäŸ\çX­ôÁmyŒcºA–Ø¥³Ó-)•@$:ƒˆPb+õ%.>ú\÷~X“ˆÍŪ ”ãb4‹ó°íùþxÜ禔&#¹¡ú½ÒÊ›*ùgý_°£¡lž|Ïá.ÂÉ—0œÔ(¯¨gCXsE6°­Z~|É“‘Uüö†+ô†÷C\Ž'‰ÒSÁ<‚Acltº5Ó×Ý”ùˆ×ÒŸ¤LËüøI‰|‰t®€ÓÒƒáÆ©p3,Í–Ýî¢~¿N›*«i»:h1fóñf Î>¡†pûdÿ“#þFÃÌÓ¦#*¯ƒ¬3áB] ßİÜ3›&ýrÒ*eXåÇÉ®(MÅzB*|̼“aJÑ62 ‘­|·óxÁ*ÚÃmñÀõÀ¶5o†Ó›E†vì\4Í\O‡¦•öxˆª3F÷Ðégã×D>åYûèµñ ð½Šá‚+e¾h2 aì qÐxH›Í¿!dù»à ˆs–ÂB|Î0öt&«êê¼q¾.vƒ¾¨ér3l¢wý3iµÃ?„AB K±ÂóäþúØéÍX¸6dN•PZ–‘‚Öù¥U.¥-‰bÁ2j]$¤1|y-’îöÆÓDkêDÓS¶ qecøà‘€Ñ§°¾HQ¹ÑŒ °ýÃÆ—´5‚·þRe9©[lï˜íåÀ³gUßwöøHä¬y*Â,ξK—û¡lŠ2,±q$e¨*Žã•c}Ùž´ƒõ×µô‘sI=¦ñÚ=¨ÍúÒÎ5‰²AAžD¥Dé*Er7v6ÒüÖ?Ä{ÿÊíÀí©D”‹‘M±^Š=7˜i¼¼¹á¦üzRÈÊpiU$eëÂvF\È5!Üwáp²RS§M3ôõèIlA4u†ü§R#“n‡;xãò‘õ`ˆ+›ž]¸¼‘ƒG,¢‘ÃlÕä‘§þ‹ÂÊV¶ ü'äù½öí“îËãªÝ@ˆ~;Ú?HÃDúæ—K.—Þ¸ªæÁi †}No·Â./_6Ññ´öí"ÀP‚ðîn‚š‚F¿é™Ty´ü*-f ôÊe+¹á}„)½Hw¯ˆÁ!¹tÖÃ3oÅå™,bó˜þ‹'ìBæýÃýþø{†c…´thÌ-²ÆÏ”ML«ÚÉ‚Ë5öYô™¯4Ÿñ6©dxí›ýËOHÕzU¼˜‘Çg™ *$·ëÈÍ8!¥bªGmÂA£4É}¡9ÙËØæ¾ZHí;—åS?°”~‡G~[ÄòåÈ2 éãLRÎ1'Bâ£-½bX©ý¡ÛTyO ߃\¿ÌÓ‚Þu=%Ãbh'Îä¡ ‰øa0¯Þ!Ÿ”©’å²<¼Àf¼/sPÒ†·Ø1™gl'zÖV&Þ’R( wœ˜üáij·Z4s”%Ð4¾ƒÅø`xGÖoš°‚ï±ùÕUA/6çÁ؇r…•‹Övca³ñ å¶îÉN_D=ÑLïÏ]Jå7‘>‹ b7Á*=1–<ß¡®ŽOãgR¤Ž;40‚"[Ilü1ÒÈþ—¨N(º##ðþWºûy[U¯\¹¢}ë/·ã-°dEe{üÃ\”O>‹ª IõÞ¯t?émPäm]¿h¢'ʂԿÞ/°ËÃ-GK´³#[ý|ʬý-Ô)ò-m,_£ŸÎ¥ŽŒ)×ß`޶]ÜŒ*ä€Å¦·ù©ô§4F™s –îKÒ¾Ó²JSl"H+³?Bõo"òF[•†ôð‚»3YÊU.6)‘ëÊtÃJÀ®iWæš*\é! ²ÛH‰‡TßÕä€}è깡?®ÿþ¬SƒßmT³m•sùi¸Ë·JâRt.éa¢N) ô§Â€Œrñ$ùd%øeù_8%=Nñ¡øùK‡öÔRÄgAÀyËŸÈ¡=¨™WZª™©m8ææ}sг퉛‚˜né«éxUÚ[RÖÌæ\ý)JË÷2ýøM›l¼¦)<¨²ÕJu¶öƒ[ÕpiƲ—Bðý8jæÆÑú¹Š.OåaRQ«YEMa\4ˆ{¤Z«Y ŒFZ ç½{ q¿§õ2QöD„sÖpõÇ"×µ%ñ7ÄnFÖÉq 2{Z/n÷©¦óõ-5?AI³a×5Á Ü÷¥LS‘ûu¹u¡Ää^Ú˜eœã6Š•îÖ¨æ4ê”áü¤€zš5Â+AW°þ 8<)À@ÜI¦Š‰äyãí—›™áŒgJUåhí>½ êÌ•ÑlIËà{»ø¬é©"þÉñ.mïÕë@¦íkxLqy{4…âÄÁNVS.Ý3½¶/=Õʦ†rúôô!ÙAìÆligJ£Ú‡<æ¬mJ‰mFvyÄ+X Æôå}Gúd¾ýA¶ºÛRC±XÎjŠ/khž-Bå™`ßìUëÚ“²Z—;¡Eƒ2iaxÃÕB­˜J‹,IS5Àõ­IÞÖ¼ëÛîeu+fÇ? »À3Î噯áôWæý*/=?†Çs ‚;¸Ó%m+vದ&\,vJ¹æ›ÉeIíw¢DQŒ Dî¹ášÖ9k/ÍîLÓ<ʯ Bû=+2:IB¸Gsul*µµ¶æ¬ ¯>·ñ•dí¨äW‰®vqB°~—Ùh!!O|œõŸ©æ¨ÕÎnÀòg6“MꛊãB_–K©4{„ûù¶iÊ>€v{f›[¤öŠæò‹d¶ÉÝxŠãºTüQM;À׫ÿ$Xmtç.8_Ïs->±_ÊÌ|mWݤ*Õæor•þƒnvšíLÅsòz@¨]»(Æç7Ÿ<¶ÜR^ïn{×sÄÌ‚©V;‘ç^š¸ûQ1Óå©¢'x•VÕiã7î]˜û‰7oâ(‹-ú|¾òÑ‘Ø#Nù]Òû3‹ E#w¹{¿Uœ³µ#%nʯ¿a…ë}Od‘d´‰å×Ý!v÷Ê?B¬Æ‡º»ŽYÃv$QñæU­%ÈÍÎ(ˆ}lˆ8öÍ<ÐÓ‚ú½Ukü‡H¨û©›¬ÖªÊ/&(U•4ÓÙáªå=ÍÅþšýy°¥«ÁåöJtÏ;z—ÏI‹¼Û.¿p>‹È@ ~ýlb‰Ï±zav%P8B ƒ½vÜMÉ‚µ}¼;V™#J }m73|Ž¥”Eðç»n[ðZä*/L63;Ù[jk)£:Ôœ'ÊlÙ³‰Ó¬ŽšˆF>³UÁÞÄ ÌÓ[ žeZs${-¨dÌ»ðâÚä\‘ôUÒxÀ¹z:†Õ‘w¡ä7 Q”v(Ýz7¼%² 2–Fƒ­~Î_¦‚¯ÏŽiÏ$®áü°tAÝ4ô=ZD¿•µ^àµX¬u×ÞÂèÅàZpy)¾§TG¾ad 1½ŽN0@׉?£àè“@ÃØû•ŠÂW]d°l»ŸÛî™&àpo¸Â#Uºxæip—"L¶±Nòl¾îÕc W”š0 Z>¸ï95gxh£ëÐÎÍÇä zÏ«L¨\(„U[ âUÖCÍäd|äÌÑpð€5Ûžg·ÝX…@Rù%ëgt|;³>m Ø}Xöo¯¹ Ò¶¬n Ü.ÎcoMÔˆ–'ÌDŠ?(ê\ào䳿p´oç(Jʹ*ØÖjGm Tdû¨ÛÛ¼š.FQ>Bð°ÛÇjú[2îëîSªPƒCÛúw_ª¤a–-ÀwÆÙ]tAþú©#¯º!lÂuˆ§ì\DÄ^1uxx‘™¯:ãP >XONE4×»îÔ_4¯”`*ÈŸ¡º¶ÓeüC®Œï:î¾âó±0ßhZò ^na·F£^À@×™|J”ÄUݪž«i2°N$§^» žoYÊÍ3¬šrq磗͂­èÒ‹ ñâ`ïð³#È¡»Øh7\5¨P V•%†ë Ž]KÅÌú>¹šK¤¿™,Å/}pn𬠸‘ðƒ¡·˜ÑÌŽT9·ÃsÍ<Ô¦ÞΆ8œÛö? á@ Š…7.6ØFG¡K/ƦXšúÆÌ4húôCl¾:•\pAU²‡ÈÊ—ËD«õ³ÅEsD¬.ª¹r*ä¼ÑùQEl¢eñŸJ'öÆ0ièÃ:¾Í ǬW]½ ݽl§í¬=rÝùþŽjw G…2F/´a_¿Ó©ïLâ”®‰} £+!ýª ¨ä¨/O–÷sžԊ‡7¡›Â"‹ƒK•/‘üZPì¹ÐÿÍ‹ŒYÈUôÚ«•ÑéŒL §1]— `„`gæB—Ž}i9Å%mxÍuz…úKÚäQÍr4Úã“Pûûw“ͱl6\ é;›‰^X3¦£½Þ‡1-œ~1 Õãcè¨1l?E©Lª»Oã”~Š,!涆ßCîäŸÂ†SÉ2(¥¢Íî¾³Ÿü¾•S Ó´@läGžjb8_-öïQÅ‹”VWq-I’ìÌdnLò×TØ&Xt o’´)m6GЗy1["-Âû:³Ê@#L2 „´Ã1g@ˆh3J$¤GòºÃRV-×\3!BkNA•ùÅû‘çnÈ+ ‚ó©âëá | ¬·Á+Z¶ëÀÏRYÒ{0O†ß³{VŒ(¿ouE;™W´ Ái1)Š…3*r­Ç$S´Í2+È¥ô–Eâд‰+LUž-¹<ç ü¹ qœmÎÓ[ªUléø(ô[ˆl¹?FöTîÃ%tL¾¸–øëƒa÷ÂäžüKâ8 Üç`äáîºõõn¸Bä¾XA|™tÌÈšË ¬Ž¬ÝÕW_«42#Ž(Œ U•Ï£¿ëag}OžÖähŠNWyÕ‚§04§µÄÖñpú€¦Ãe_UÞÀ@»a†èª¼†%ÿ¥KP·"´xW´³Ø>Ñ.¸.‡b<)¾L[Ôøá3õ óvüK.†¦¸[¤NTéïE½.ã ø.*m^!’v#hŸ]ÿÐ rƒ”4¾ÅíDÖH9÷0)ŸÚ葆VÜÚN S<ì~K»Ì¼Ð#’íÌZzWîÊ»(ÿ±_­0æ^ʤX!p«Xpg¯Ð{-…8ÙY^Ð6¨KœŽ7¹§ä§êñA¨½wлÚü€¯eú\é<‹Ùu Žq~3y*œbÐÙÊ4ªÆÕÆšZÏ4S·}:µ‰d:êÚ~3ù9mо½>HUÓv„F2<Ífñ¡|¨…ÿ|OD‡Ó‘b­þ>ƒ®äwôO³ô˜{ù¤Š ‚Ga÷!3•´òâ¦ÁßÍ`ö¯Êõ é[™¿1CÔìm44QÓ%B%¨…gÉKEQ .ßÄM ¸Ù.$øÎºÙHCŽh§7±&ùÉÌŠ eÙžÙ÷?GôHõÈ ‚ä ¹0n•oV9½40ž%¼ „W_:"Fïñ%d†ÖIµÙçÇpV鱄æ1ñ8B>|RCÄÔl¡ ŽÇqÓÕM ØZ,owj¡… åÁqãÔ_D%refë¿Ù‚»<Ä`|ø9ƹE(9LV*ŒÍ2:CÜr@ªùE‡}ѨJ¸ãî@^ž éí-3Éž\¶à9Ln©ZML–šÅš·D¢’Gàn)¼{vHñÐ:ï4)GH¯Êhù\®ãì/vÞ S€`”[ œozѼ\­ <ƒ‰ºC}q9J&¨ý!¡Ò¢dàuGªŒ{-b²5éwÛPµï‰JIºi‡…ÏÒ˜ Iy‚³JÎ=Tì‚G-¿ßÎþH ñ…ö«ê(‚ÍSÛ¢†b_…»ƒx&5>r]J—«þx*Ê#¥)uœã,OŠÓ\‰MQÆáO}zãPK7ä?uùóº¼+‰¨ˆÉm@ÒMŒÏÚåú8@:««3+z(ß°ËAÿ! µF[Z¡ý‰ Àð“p´ˆü&mÆoËÀÝÂòX24m`¯7[ì€^U¤üü&è|¨*Y8º¶Ø7.å· àFÞJ¯Pç5ï$ª|Ô[fª÷+)$÷ÜÚ^ß^‚ŒðØnÐÌl䨴¥1—ÌêΫ¶!l{}ø'Bâ½ÚgÕ‘†p­“Ý騉j7&wß.ÚLÿƦ‡í©‰­5€øC½“ï—‡è¥êá+ôn­^ÌNÛYÈæÀúàìö(Ü áÅÙ‘/™ÓáåXz9Ã$·aN+¬7ºÿάb%cj(vN»&å÷`¶ö º:¶©°#ITÙJÇXÄ# UáÚ’ýz¶wOv6㮲U8×ÖðW7üÊE!6›Îý)õ/RNžÚ¡äšW`¾©WFÍ6A½¸““x mõ„û¾°e[gº?BNe"ú$ô“m…û7>eO šá Ë‹D`ê Q ư’ÈY} ^˜žuÚË8åÙ,Œb68´‰ ½]íHŽ’î¹òroú>TˆÒ±òI­{|H†Y×íÃf#õˆ­½“NÙ|œ’p¹'"¶ŠZ¸%"WîJ˜~ü®˜SCÔOå쪋•®ž„ µ¬Í¡x¦¨²©—RâBó5Ègùõ ê™LOƒ?‚˜ÛöЬêæzTëB…ì'•®«õ‡]b$¬‘Î#>¨͵¦´Þ~¤ZëR†-IÜm„É «¨£N:$ê :‰HwØ ú3Í[ëIåæÚ]é~"÷ã•E“Õ^Ú ðzÊç ~ 9µÞã?~• íþözy6|Œû,ÂU_ÞZŽÀA¨d©Sõ›/ܵýÆ;|ZùXJÃð+Óð¹¾Â‚F/1…aò„ݲØkŽDüþj†d¦hRÄý™P€ê˜þGU&R_šs(YÇgÔÖ0_Œ¯ ºÞÎ$±¤Ì8"Yëo·ÕÌ[ fZ£åpY3Ò\u9Ñ»¬ébêôÙ@ˆ1ÚZ=y×iÝ­²Îm‘>•ÔäKQa¢"âö0/5~FØŠ$OŒÂˆ“”eމ³¬nÞ Š9Ù8z/_ëò'KÑös£ ýÝå~ý^ð“S 6„êìœ[óÄ}UÏ-ÿùXo-k^Ã>âŒTŸ?ù që¨Cw@‹έó`ZM{ ¶åÇ5BNêWê?i÷ƒÚ??ŒŽj( (¾t#4ÎºßæhåzœQðËqgLÄû7«ˆÍqdòåž;¦Ö m™t†çjr Žù_ÕDÌ@¯Õl3{µ÷Xì"ã‹|I´5s]§{iuÛ6õ™OÇ fŒÏæe¦u*ïA CT÷jÍ}®@#žxiÛó:¶’8þ|Üû¤ w̳5º¯íÜX•žIN=`ËvlãA·—¿›Ö¾ †‘iþéð —\ŽÔçY-^ô¦¼JAyÊ—Ž«žÇíÚR#ÙA¡Á‘­Ñ³Ý™å„ÊCÅÇW!nà—= ÏѤÕëÀdîÃðx´L7Î/“aG÷;'[dÌý…[ÃÛ䓂Ÿù’J ð1–`PÙ~ü4ó*„ƒèìpÓΜX¦!O ¡·qÊýÏŽcxžóóýi2JçQ¾ƒ"±öe¶Ï…´¯úѧãˆ#.Ñ —o0òÚ«‚³3 ‚7„"Ùd¢4žàO!!ú|¾ÞwåƒmQ&€š]£6COdºPû7N¹åЬᖠ?w¨¨•£à­Q»ÎŽ²éº‚ºx)ÏPsŸTme­ñƒRçÃÆ‰¿&S|…¸ý~ìlïñ½šnëK"¾³>s)Ç~ÚFÜþ(—ËZÑ÷E‹o„ɘMß¿[ÎsbW Œf™_#*£AëR=žØÑ4YìýŽ­û&¨øyZi ÉKL«Uʱ7žÛUÑ? ¥ÊÙ<¿ÄþDH­ÍY@þɰìTI3/”'‚„/únñ}|#¬Û¶ä.ÞÿBFƒnäý#r„pņ”[ YºNMK*ì—±å¹b”²—.|¶!öcEq[×s˜…äEqJ\ˆ½‚èU—õгd8Ÿ5ªlÍëCŒëÞjf º’JÒx“$oØOè_Z=®-° äÃP»ÒúPú¦R¸&ps]ùå’­·Rz"É¢‚k©:£úk0Ãé±J!2ÆþÒæX*ܲ ¨wì^\„óqŨÜôùs[¶ºóuö²È÷¯dIEx dd}6 s Ã6+z:m_n‰0ñœ-‡°‚yŸ›b–GØ…ÓQ¥iä›4z)2›—ªu¨› Hl–~7¡W¤¹ê×°Øüóþ$&|%-žña_¥lF6÷g€Å»âõÑ¥JÒÒ‘uf©"é•vú<¢ÒUÌß%¦Ã$Q{o)kŸëp!'#~é"¢Vñ  Ž«2é­÷©]iÐfÿR9,a“BîêÝû®/é´¸âË$¥ç~½×½wéÄŸŠ<–Xgò#¿ÆÔã3½‘ÌóÑz]Ùý+"ÁA÷¨¸| f=ßM¯S|¡VÇãñ iFÔÏ–p[ )hd{rcäÕí왦“Ûx9²­Çì2ãn¨ÔâÖ?›—“/8çÈîˆ_¨eXûÄ·&… ¹ +Uò"^%l¤¡*/ü„ç+ZuÙ*sðQˆ¤¨‡žïÁb Á‘CK®$Ô}ð–Uoãö`'ŒØ7ˆp¢›Ë¨ÉHjyÙ£}HBØ”Äù÷ÒŠ=¶ýÊd«V‚Ú3Ër¬Ü¥üèiôa ýaE)tc×ñy4üú8{†5¿Ý’c8ªNÍÓÙeÂxˆ^¤ò)îµä×럷¹éòZÖ‡LQ'ÛS°ÛðåÐø «gÊ69¢¨©èÄ 1¸D¨p;ØPI0ÊJ1í½¤º±$_©Ú‚Îd²øg6Y¿+ëdíæüÎXâ”ïZ±™N\†úe†‹£×õ)½ãò(&*¶Z£TÕç©&ÌV<Ó‘Ö½eN‡ ˆYˆ÷€sL]:›É̱:ùAs;j {þl_çšdÚ‚ôõU=þéШjÚRLä‹ ÙÏ£6ÃBƒáîõ~(ƒ¶&f£«¤1P“aÙø!ž ³]g¿÷PN*/3|˜ôzéGÊÙÂæ­˜É=#(¹u—M?Äè÷±©&î+óSûÂJ£KŸ[nD/{…|’ ´WaÂåÀ¾Ä3<”¢1bà¤|×xTØÝOøúÑw6zôvÄ7V~%)ŒñHs×TèxK´h/úSöqJhûºÍhÓšWç©ß@ßè|“¶I?P¼–08?É»f`×IÉ»uv²¡kaòz¯]©NÑÙGÔ³¸Ã‹ã¥‡¥ë Aná–è4œ¹•1—¾ZëàëÉàïŒÛUP¯öä¤uªu¦OåD'?Õâ†c§Pohø+‡Ù˜;+áÞ¦ä²á` §Jë¾Ý¢·\ÍR<’Y¯šÎ¯6¯TÉÊ< DjŒ;(…Ðߢ<áÝrÒ/V É‚dkʬ{#”WŒi½yþÐ;Dœ+;ŸbÎ;KóoSœŽ"3GVITJ±Ôîºòi*¤áe: =O~— ù^ýP¹ÆŽq·½ÒƒÜŠxâ¹ÜœgïƒIY[Sàs»¿"Ô+;¾Ý»r°‘ƒGÆûÙ6‹"½tú02#Ö8Í‚Wêuä~åXG)(|6qѹ‘-f]F…Tè«…SŒ>Ÿ9ãl–™ù¬¿ðÚ{—;±[ÆwßèžO9>£Ä²ø¹b…i€jz嚤¤ú¼¹;%ÑGÄñâÃú¾K°,ZàmoRj»š»¿î^c¾¤«txY/ù±à7åbGîûPê=Cf¶ì2-—‘ç² 4zÒÞ­ ø0æO¯OúF$P”­¥/›”Xù7ÆT)næ¸kªë Z: BžpczŸ¬Ø´î;Ÿp6@Ïd)^vê»Ò³#Å`"*Ü‘U+ùõýªÂ² 8çÇOzó²Û>{ËmÐÆñ<ïÅ銚rì|/¤Ufípxô§\Xdõ¯ɺ²åV¨;šd ¿Þ°÷ÆuJs7âÓ²Ò}̱†——|p×92†¹ê„ÒØ¡;ö;üEɸ€'á&»¤Zø­—…˜,á䃌_3ÁgV·“2þªC ÇkªÖ§î¯V }OŸnðË„BÅZ†´åœ“ÅdXà`›\˜ Oí Ík$Bágöº¸–ßY#RŦ¥›k<ê8ãF”Ár2ê˜Ëì@¥mW@L_.„‡Hzæûï"“ y¬Ž\++[–«aÌfR;ÏTøþÁÚoÊ[i?®º@sºly`º%2µ(!f<½;˜ßwðéL¯bôlž.êì½aÞ*xMšTfTK8JÌý퇙¯ˆ·ËØÌ™ 2Uiú¢0Ÿý7¸‹ão}S¾ßKäþ–ÑÂv̨(,¬ ×OêÒ T~œ7ƒþÚ«G°R¾#¡Ø"î©ržIEYRr™¶(OÉ¿²GÍØõëùöËâJUš¶5{Ð3°ÉÏ3æwìO}ʽÏt;Wã1ú¯Q/{w 7K!|7ìC°³BLi«çÓñ.g~õ0Ñ_®1Œï6/!Ö…”A»ÍU&T)µ·G@-ò4áúU/@DCΛöß´.ôFY;Ĭ6Ntµ?uØt³GH¶(³æVX.X9k>¯dºÚ‡âÆw>º·â³ˆ–q#§­êx†ÞEl‰ Á!G¶É´‚ñJÉ}qk)èÇšÔ JšwÊäï©õ=)¨u˩ϬïfyfNèkñÄp bš·ÔÙýnn•8+wŽK(hé'–iÂÇ¥Ss¦8ìö¼Ÿ˜ŸÀ|E<ÔÕâ©F‡ˆ§b¡Ó¯™ô&ø`L±I¬é'êÇ'O2úB*^OE9óC.7” 樄ÎÏí_ÏèŒþì3IÝHR%i¶'˜«v+ÓÕNjÖ›ö¡AUÇŽÃep)5: )W¬\Ö½+aôi­üwl$û‚õkG'*br­ÐRÈøB±*Š…ÇƒE+šàoLE]½†Üèà˯ۃÓ›TZ¹#³„þáovf”q‡g†±ƒª³f¡·Œc˜a¿•"hé…/”‰À ë’™ã²Û¦Û~’÷rêV…¾£Ñ檵­·¨Á±³–·´ï]ÕíNi€µ}rüÖæØ˜r¨Ë&ÄUUÿ3¼[ï–ÞCc>+~hÅHðá#ö‡ŸK8¸{=FààÕpõMºNÞ  ŽLÙ›A ™Ê‰K¿àÝáçžÜÝ­íG–zëN_@ö4É+踗óÊL±/÷a4wøã盇’$NÓ¢ˆK£RÔdÙøº{,’oiŽŸ¨ ᙤç.¨çl§sqåiq,'ý~ßY×ñœ2²c«û[;°ÐqQCýp^ê<ä/-‘‚t¿ža²”#çÚ%,+ÞÀDøæu¨RÙjŠ oU17k}Ï”ÛäÎft'h/;rƒJøK¡*ÄÝÛïÏ—è/f è¨Áú'Nv”,ŒÂFÐqmK.1::JÖtÕ~)Š»?ÍÑÑq\j3ön0^<1Å»PÑjÄë-fŽ޳©õsó´b’”Û Ûqyx #Ï8ò•Íú¶½ÃnçA˜É [R 5Ûƒ*0 î HÃaÄ!°d4Ò,Šx(Ô`–܌׈JËŸO]/­{Y>êÎd“6Ú Çä²JŒyÝRKÖR tÒq˜Ã‘ª:‰Ý°DbÞ0ÌÒïÚ{I_an uX:QõOžFãÏÊÚ.pïpï1€x;ðÌFmDUdUÓeQ*Æ·š‹‚ÕØÐç1ʵ<+¬ãa¬,ƒ`~íWZ•^åOá,µ¸ëìûQú6) §§V}}4ÏÔ¾P†‘¶ªQ•³Yÿêéæ4îçx>Ó09ð %ÝîúnÆñôƒ£½‡–Sí—|æ`?ns6a.ƒ£;bò¸o‰m7«ZÕKHÁÎÿ Á>ëGCéÌÞ†EÚéLCÀH¨ šiš"Ì®eBu}mAp––Y¶›#¿Òhªiøô{š©®°"ïZ6ðíÌu¯%Y.·ç‚žNúãÆºÐÕþâ¥ó|„ÑCÞÜû§)€³ŒáO±W5uÑŽ,!I'øÁ9ðfÌnv¸‰¯ŒîCMÔ²w­sfkÀªËƒ®ðždgã ~ ‘m3›jt!z‰lzÊ^…{½VWøq"âZÆÚŽ?óßÜOg^ãå•ÍRÏ™Áž—îÓøxeèç}‰VÙmœy γ0ª¥uuâ²døÒÊÀEÒ–ü" d‡•ê&'Ú~Æ©x¼ß~¹j.l"—ë†V垂ظØÙÃ鉠*”Žˆ³³#àÝ~["š‡SάÄa|G¦:Û7FMbò #WK8¢ä©YNSÏ£¸Ü7çÇÀÊMµÃ™?èÁÄ©'[GÕbnùçPÇy z:»±ZPK„x—v~0š¾l¤PgïÆ’:_Κ›ñ÷ê)Ú4Cì(Ó™ üý6òë«U:3šrÝFï\ùD¯7ÌZC¯ú­Ý½ ø¼?[î²ä¥'$ç)Âwé]¶³x¹ L7ÄæÉp÷ÔêMƒ3Ų|®±ÅL\Jš Ò©r[!odc>ÜAþS¶ ˜ˆG¼µ°õà;ÒC—¹AÈÁ$M:‡Eš· NÌÐ ò1ŒŸn-o|òMç•fi[ä9£7È4ìkìë/Dº¶ð óÚ½ˆ¶ÜqÈO¹*dppi.jëêØ#ª¦Åÿ¼mð F_—‡NÎÅÈh;UŠþØ 8t6à^âûÏù¶x+Gƒ£1UiáVAÃ)I Ý×\©Ë¯!Üü$.릥®EBRª4w¶ÑJHi¦æ-qÁ¼ä…aÀ°NˆhQäÎ~ þÇHÜØ€FÍJd;Í_Q|ÅÆ/¸Í±Gè[jyGZüýÕz9yæý•È)º$s:l® èûiäµ= šxÓŠÂs½tÐWÀfµ1ŠìÔ£þN îóó‡Õ‰—’‡VlÆLØ£  ëþß1—¥yj#¹'"~QïÅÖ ×ªÇ*™óQØ$øm3̉½pÝAñ¢AüUûÞÿ4(côÀkºyí t0³ U¥ËiC6s%4iJE9R”Åâ1ŒÕ29_ÓÜ6›©¼S¨v›É²Ãɪ¾~Ê¥p %u¯Š…–%N”"KÌBlY¢-óƒ‰ÑƒÖN¦ë‹½LÚ†‹ÆLQ;¿hŒî¾O‚é‚™’‡AÝ\x„‚"" c`_ \ [5ß’ÁE®Üå‚c" _øÜNKy±`±öŸÍñN,©µê>–ù›14 ÆÔ`+ܳ„qiÁÃsâhïšÂ¶gáJbC£› UÓþY˜)®#™m¬Z5EQTÕ[94o‘V‚gP§yÞÀvçÑ%ª3wÙVP¸Ÿ^¥Oš3 —)X7öÓ Œ»½vRK@„ÕÛá“F(R‰‡í™*„ ß"iå/3 KÅKÓ¨÷å Ù™¸Yí#ÍØûßû'`5¤(å1ÔQ„ͳš–×ýç:F~S~|o]°™näŒ&/¼+åäKʳ¡ èæ†užªá)‹2â& !Ͼ=âÆÛû ²[±<ðÝ]?¨'ì Ä¥tWC‰!·"E»—1öÚ$p¨¶8¬wA':äŒRt¨ƒçËDôÐwt)?òŠÞþwÍ>zþ+˹¾ó´º­qŒÅæÍlæÖÕòBõí…çãY‰ÆrªSÒ"ØL¼ž¹¼ŽÐ?\'ªþQE“ó–²¢l›”¼U“©x¦ `6üó§¥û­«OÊ…ÑàéžcˆE'ú„0$(+†0L¯+Ït¶&Ô¸È9Vm{Ècð"~†$'æÛÛdUeüýó#§‰š¦”£ wOÇp3ŸSòW6UÔªÁÎ0>¼Ç;µôOøaGÑ+€¶¡M.H¤}ÜE«”¾ŸÎÙ5¬¶è]ä²±[“·ºËy¬%ózNM¬€rY]“ä +]%Åh¦ŸŸþÖû3^ò0DŒ :sõ~Jç’Fg;/æA¿Œü”3ÿ+ÃkM»Q¶0G?t ðCmøº¿0ˆ“|ŽšA”¬×à|taQpC}Ù¹’ÿ0’ÊÎj3ø_x#4$Kv~·eð·è¯ËXe\j|ÒÅ…E±{‚–†Â=:( <&bZlLÂ-à„µ¨„BP…§6ȺÑyÀ" ¤—YXˆLh‚n4e}±^)²ì+ŽîJ‚d-0}BΈ¥¥Çy-Šë:ŸPOK©]Ôý:´ÃŒΫúÀ8êšþà¬ÙQ¯Dá!i[ô s,XÃWðÏJØ!E½û–Ó~–K¾Ðu²€¶C}—«Bºû—²â•.†ÈŽ”ºp&ƒ”zêÖÙg Ù–ªŸäÔ&Š?Ûøñ©žÄ#ƒpç«SÑ­XvÀy qPÔ‰wLôhkûÖhyv–P šló\66ùœ™W&è‰pÊÝŦ-¬01áç«Èøs…J^Qç6R¹dµ øÌ"åÅΩnÞåñë‘è2òúêF?›*·ÑuÕO©LRtïœ2^X ÓÉï‚l,«ë†o«…ŸGysPp'î2pÙ^Ç»•5¶ƒUÄÕËD¦Ý+Q lFÑ|øJ"2TéD¶Ðö0ê5†™*"ù×Cö†j?o‡Ñ¤s¤ >ß‹|Òói“9æl¤çjRQ¶ùÅ1žAYÆß×à‰ p:-pužÀ_Ù‡ U·™qb´þ=¶–¥q_÷ˆIÆ»ý šÈ°ú|ÔÕézðÜóm‰MŸ²ÿÔ-… Ó‹Lv±Ì‹°†}çÊUÅM²Ö²Ê/þ¶å ójuH*°%ÿß6qâB:Ü2ßX·\ ü:T³ —â<Ó ‚U÷Å™ݘ–>¤p(tÞ¯\†]êPÅ6*K»áØUÃÏMáþl-ë7«YM*—ÖF>ÝÍÀ6J(’"æÔ%ô¯»1-#‡Ž€zàÕ#ù’Tw˜)¨ûSC„ à)dñ{Pf&Ü3  oí®ú¿©åµn)ÇŒP&®rà’!n¬ØÙ6Åys=rp$<6zû·`ã1Æn=Ç>µ]ÞMd°|PA½¹{«€CsIbOªKòµü£D6 Õ¸ù„íßDÕp§D†?ØêpX‰ ż/ Œyu:ÿ’«áNypSo°Û2_qáCÁr“o o ¬« 8+%2×cð'Gkb;c1nŽ=-îšøøîÆÂŦЮPׯeuîÏþ.i%–.ß•Ž|Lƒé¼ãa*Ŷ>@ЬÚ@âyÙ¸y/î–‡þR ¶TåÀŸžI“F²êÁS:úYıÒln®ŽN"b!œi>zõ·³É8ÐÇÅ–Bv¯ˆ4à©ÑcRO"¼/oºAØ%vÊžÀ¥Ë€tÛ–)XÀ~W>ð*«k…—²ÞFõ¬v͈©•Çió[ÐÊEB‚KC)Ð^Wj#;~™œf‰ ?_dOŠüÆT ^K‰–0oøsDS-J‡:'} èŃ _¾B23ÚŽÌØˆB{-+’î$ÙP¦(e[Ä›£Èœ*¡œÂvýB}c„'Þä3Ø©Š½­áÈMþÉ >BÄé&4Ô¬üVÞ•¿üW|ëã*BJŸÚc\ì¸D!wF‹JiâiH@ÐwéÆ4ôó³7/e{|+ÃØ¨å‰Ä¤Å+ <†˜óˆNÿŽ‹tùüÙŒ¯É. ¶»å:Ü•K›2ò’âú#Y{ÿ×ß\âqg1~â±R‡÷§mÖ~]d ‡ÿ \¤2ëL§a­Öìc4 aÅY-Ð~ãÿÜîŠJ?jM·äþÛ§ø‚K æµ(ô!9«ZqÁŽ…á~h Õçö±Æ8š"xá×nÔÀlýŸgV|vöôJúK`äS¯Â„”n8ç¶‚¥M) Ì|c—¼óÉH•®£“édqˆEr¶³fóƒvá­}XÃ’Úÿzmç^Î^­ô ³.{w ¦Šp°"j¢ÀûËc¹N5Š{ÖXkyZùâºõ´ÂÈÅ‚á=9cËÎâ#Ó2H»}AD!ûzb XÉ‹&I%” /õyúF-¸¥xåƒåGÛ¾1|vü&=:<ÄØˆµlD0§töDc€1«€Æe‰yò!9x¬Ä=ãä·É»…C\TóÕ‹z¥¤Ãqv‹pgfspuendstream endobj 338 0 obj << /Filter /FlateDecode /Length1 1635 /Length2 9240 /Length3 0 /Length 10319 >> stream xÚµveXTíÚ6Ò-"ÂÐÝÒÝÝ5ÀÃÌÀ ]‚H§4’’ÒÝ H H(Ò’"H½è³÷»÷ó¼ßßï˜cfÍ}å¹Îû¼îµ˜ètô¹día¶ %ÉÅÇÍ+ÐÐÔB|¼\z GÐÀÏÍË+ˆÃÄ$ï"Á0¨ ˆ ÚvÈûÔû^^1&€2 r¿wÚl}š $ÐÀâ°ÿ,t`$—-qïAÁPÛ}Š< îãvtBþ®!ÀÅõ»Òïl9n€ÐÎæ…p€P{€·&7@ æuoXaP€-È qÀ €¡¾¢ž>@YOÛPGŸû¾°¾sÿy}CeN€‚¬–"dÄ P6Ô7øýk‚ÞãwähÜû÷¹ü®©h k`ª£ÈÇóû|O;ü»í?°1ß#üÚ}ªƒ;ÌõO« çáñòòâvô@ ¹aîŽÜpÈ|N`À æî¸¿ºƒ  ?Äx@íïéD:þ*ð{S`;ú¤ûËézOå}Ò½ù¿Àî‰@þ® ù+€þÖÆ ˆø“«¡££p‚¡Hµ»D‘€ÍÛýdÏò@@ÞÃÝýwÍ»Üÿ·Í¿¡ËÁîïÌâôú玡ßÿâæï·mƒ"À$⯊ €úñ{ÏÀÐ?6MY-U%E}.{áA¹4a÷ì@¹‘ÞÈ?Ñ¿ëÉ*hˆDy…|b‚Þ{‘*Bíåa®®÷¨8¿éSßó„„¹ûðü]»@a^P¿ÿkwCí~3oïç1„‚Ý<@ª ÿо7áüÇæBx 7ÈÛΉçw»?jùmæûm¾§!Àƒ€(캿àø!€ž ÒÝà÷ߎ¿¯pøDö`;ä½Ðï‡çOuU¨ ö—ùÉ¿]ÿ’ëŸAe»ŸR{â°9àðhÁ÷‚`ýÿ3gÿè¥äh]A¬ÿ¤ôŸq@W0Äço‘ÿˆ0ýÆÊªswBþá#”ÀÞ {0ÒÎé/bÿ²«"÷Ú—…:B@÷›òÇdø{œ ÷º½?{À¿.Ÿ ð?|÷’´s‚€à_i {þøžûßp<¦ŠFfÆšÿG3¡v0{0ÔÀ/$ º»}pxï…À/$ðã»×´=ÈûR<ÜPò>÷@`î8¿wS”À£óÛ„ó÷î:¿§ï°xÿç_ÇÒŸµ>Òæ2ÛßÉÿ¢ Dºƒ½ÍyïUÁwo¿ÿüûŸåß0ýGÐÿ•-'óöãäçp Ük…OP€ÀÇ'$ð·\»¿Nˆ?мçíßëßã ¼Av8ó30;‰Pç´Æ°Ò@Å‚‰2L&1îý )µDŒù̉ö'” y«ô éÂàæç¯™ a*â–)ÁÐb¦PrÈíbKråø™½®Ì0P3ð ¢ìÇ\#nÃךsÏË:éÙvÔrߘ¾œ|ÝšØJ0ü¸+/ÖÞuË?vG|’JoQÖºéU4Í×Dæ!ñž#¢êx27ÑŠ¼»$‹öÊγOÙ¼ £ø¨†ïé"]G)’¾š+zt`Iו-~Ë´Ïöª*ü$lÏ¢½©ÜÀà• þ¶Ëà‚ýnV•ÐS·‹ú<ÅG)¨ºVÃ?Ç3î´&SøÛûßÌ¿7rÐ_À½|mR‡^O}s½€[ÿ1w‰÷2DøÇ›0é©ÕçéB¸‰~ìÛ?n[bOà[Ù¥ó#óÅjí¢ 21ìg6›¢½Úã“ &by|Fc {§fEõ£-nC²áX~® É·§%õݯ=«Òì—fúh°ÅÍ£) k`!ƒÏ~j _X@Žá˜Ôh„WŸÏyï•ÝXN÷òyÕ³€•€÷½ëuU‡gÕ@{S—€ãÇdþ¦eìT± qµk".哯5‘úlÌÖÙ¬4§ür&—vŸ m&b»nºÊô ª§—Ñ·Tº4Ë’^¨?°ºQ éj× !_"ÊìËÁ%a œYB{ߘUŽ+à1ôJÆ­$Ó'óW…Ô**nün¹öŽ#º¡%÷É žΩ`•LæõÖmŽÎä+åÝÁf_³Õq‚Ô3 Æß¼ »ÒÌ^%onOV¨Û|q]–2q¬‡ãærÂoµåHÑfaÙ`ƒã_I|ô¸Ò\ ÔH–<ÉZ Ìo´Þ\Ë}pdXö8'.·¶ñHµÏA3åÖÿ…}ºB’ŒA{5T¡@š%:Šžü'œ²Óƒ#¾D©D=^<‚ó‹½p¬ ¨.;Lyxί¯í,iàþuîÙ«æŽ/ãÝ]×ÀÔô(6÷e‡B ¿ûV‰]ß^±‚•¼Ûª©Ÿï†ÆøSó sº7£%‚jܤZ¬–NÌ*©à"A©Æ½Ô+¹ct¡o2bN}Û¦Z\ýËñø”±vÖ/àïjÈôoÁy__È¢çî‚Ôãgù¥ …WxaÉ÷ ~\j^>^î™Ç–äÏÈcöÙH9—eí}&˜yn8RêáÍ>ä0î|¾-…‡ùií,N/yÐØß}úÆ(pä¦=×#ª7 º£ÔØ—Ë“úækÑ/sè‚IÛövwýsj`Ÿ=ÌÀÿIÂQÙʳÌX§„³Õ£Tþ›b’:uÒJꦡ‚¾ä™NÁn†G¿¬$ã÷üÅQB/9`íý²º¦ýoØ_’3~rÛÿµF­ÒT!8¯ 8q­,LcÈ- ííMàät#$j&l<[?_Eí3â7W0zD¹xÄh_€×ýVç¹Î—è׫ã«_Kìä[¿XD ™…ÐF…ï»…L×?¦±ÞZŽâ\P\'°lMèDåàÁúøt'ªpóEˆ|Ë7á ͨۄ^8’Ö9ãAÖëb•œœï,zÜ”\å¬àQNB1Th“7¡°^XoGõ§éàóÁ”çü̞߀’,X€eN¿®mŨò”»Ïb}ê…®f4²åÚk"7OîÔ…PÚæÈ<¸°åñ8?¦<ÌÃÃà ®yðõY=õÇ%ËÒáüȧs G]Ç)ÛLÚÃ%‡…EÙG.h´/ó‰Q³u|%£>ÎÞŠ9cÔ­¬Â·úâcËÛt¸û[l‘¬lû~Èãíð—rÌ÷2Åa¢-½ ´Y룽ªÄǦüÑ¢íƒb˜ ÆU-æªü¾M˜Qñnbâ•K¼¸ÚØ”p±s]'ÐcæuÕs2ÍÏó Læ¬Æùo–$ªŽI;PŠÉ\wwá™gVl<RÔj‰ÏB|Þýâ8÷Ù ÷CÅæVç·$Ê7Ê xฺOu¯)*±^Û7oqÿª¨­&裄·ÊÓ¦‘³\ì²¢©é'¤ôt±m–|Y>éÿhøµ¿¼ß`"H«q¢]|Ô2V°Ä »¿™ðm=}2Ȫ}«ÆæYoC⃇2Ðzc$¯üÞ.uzº™wI­ßdX¶©WdÆ—ÏFzãÑÏüÌ(^¿ S5+âÙœñ•àÇ®íÏ#óºÑE!N—Þ9÷%{ý’ñŠKÏ ’=©¦§w/÷T@q¤ž¡ÅhŸwØ@biqà|¿4µùD–®UêÄdºÞ‹ñÄd×'IŽ¡Bù¨îjºak¸—7Deë)ŽÖ=ÁòÂrMŽL„ZQ¶ÑÞêq¬¼[¢Ë¥ ôžË¥œD¶m‰ôhÊÒv …`,ìfÔÀªC:Š{ñ°^$u²aýóä™>z“Abt@TðϪA˜dmd̆ôf™ T  ŒÑl ¨RꊀxY~ä±$"twµí4‚uïÀ¤ìMÍeé0]<ÓÄÝЈ"Æ•˜ÁrÏï¤Æ‹êøleU ²`¯â¯wœ L€}œ«´™ïÖvŽUºŸuúWp¶}æiyb^È]¬]éP¤Ðcá%ñðrÃÑŠZMùM„ÃÖ¯•”¬¯·íUœä¯ é’“Ñe‹£~§ÉVñx«ßÙוÆlíÏÕÍ‘:øy÷yhŒ×‡:Œ2Ô0[Þíàm©ÃÂÏ:Œ:å_*u_!IÑ×q…'Oß´èÒtn}ÞÔmì ¥˜1]zºð»I ‘½ë¹ËG Z½ëÛfNMãÉõviÌ]?¼Ék bÙ¾—cbÂÔiCLä{bv\ô„=íIÝþY¦T=¶ª ï\›34§¿â+ro‚qb­<1ØV8'wª+NËÑÎðPwiôÁšÜWÄ‹q’Nœ©]xÔ„Ø´›Œ™ïÈK/ÝÃØ’¨Ф’¥÷í|S¤ó©Ü„†¦ìí¨*¸ÿ©\îDazÒ‚K1Ä9äY…5û±ÁÁ¯áëDI\üjÑs¯£§{û}³ß“p&{V´0Yú3<îÏ—“ÊGk‹!ò΢ŸWFk+ãý¡›v8ؘz˜îcí²ÄU 1ú8÷seœ×šOõý¼=8å }ïmë éR‚ϸ¾¶ƒë”u$oŽY«LêèeNÙ—Ò£:a!Ïѧšå„ÚŸ\j,Ñžðh>ªI—: É#\7¢B 1ùc “4̘³3^üjfܨBÓÕ¾@Ó`=§b?Y?7]¯{'ùuï1㮊qÐ÷ùÅjÕóä=â$ºD« 36© ¥½€-—å)4Øã7Ç}2vw#=Ј,“V ˜gÅžIG芋P¿ÌÙk€Æðm.íG^„&lã\·‘Êô3 ®*³ˆ`TYÏ—ƒ1gcœÇ)V»¢¦dÄ…\Ñ7˜2 íïá^|ŠPŒ”6¥'#êñ™i9õhܬK±Ÿz+oìqGpÂà^â”Ö›RU^NÕ$ˆ‹<ÇÄgÄrgµ± Mäc ¼~Žo,rûÃç[FŒŸ,„.¡ÂûÊ_–ýaD?[¨[ãÁ€‡Ç7DuÍëOòiŸÐk S3DøŒsºÁ*(d/Rk°ãEg”l2âNòRfO[Hð´_riGw>ÐjwAÒÞ5_[> ›Æ&uvvÚ“YaM:¿îÔ[¹¨0Õ¤mñ€…ßJ~Ú¾Mæïµ+  £™81S0ìkŸ6ÞcªýyùŠ2^Ò*ÇLè³|)»±( kš+d t®Œ‚ÅR¿Œ÷‚³ÌÑù§Ðƒ¸&uí:Y¼€‹Û"¢eÜŸ†i(îUZ’lÉK~9WqRè8ÿ]½gsƒ¶5cæô™`øùS’_c}aX ï_áõ6/•Y–”b›à˜õ‹ãèwªè%óì—Fvô:PÕ¬R3[ôètñJÂÆý3P÷ŒgI®ìkp­ÉŽZ•ùD¾gúìK›„Û¸¦Û4Nÿ ”Zi 3”]+ô>J’ªaÛ]W]íX `Ó$=+‹µÞßýð=âà \=è<³¦¶‘ñ˜Añæ›óŸDƒijßj´O.Ÿ¸§¥ 1ßE:Ö…zßd’‰?…éÓô…ÅRz­Ù¢7™Ÿâ2 ½­ÎòV-’0Þcص·¯ûÚç%Õô.K&.kc?R¤÷ÿõx/)V¯9CŠJ>ßâÖ¾ÊJÞש&‰yÚtჯ§½j·3{Æ' ¬ŸcïŽp'»ö_OcqA¸UGÏ>—裶T‰,;îv•Ë"©Ê/ÙG|šŸê¿wæ¿ <”ûA¨4ã«9\à´e1⽪U£¯wT§û‰ØVø¹I@²~xV–ÉÕm2àÅ?ü4&žìÜB0Pyß‘FOâ#ÕvKm…X|½½{þZÞJüyjv÷ùK¾ì¨ø1 D7ÚÚoX¥ _ªKàóòÐíƒv›Ø+=¨•7î„øÏ'ð&8 šØ3qùQ1 –VÃ]¬DŽ™Bõeðe‚‰.ý°ˆ¹–ä‹'biÔ’˜G·EíÙœ÷=™!æ Ÿè€ü‘J–ÔüvÁº+xc6Œ|é_ y(ßdÍŒ°Ë‘h{¬¤&Ú¬Ã_gÏÓ‹R&BRÀÕd„Jk¾ƒG9Ѳóæ~îÔ‚Q~n$ÞNĤÍF:%±@±iˆ(z6áèoèu®¨*Pø K;’Œ^l›1÷œq|¯” eZÉ6Óð”êÍwg¡œê®]HûApÿ¸5X ¼åšå™å¾°ïXYŒ»Lõ>–¹òH|Ѽs"…5»àcJýŒ[ÄE_áòW–Ärþáv骢hÈs5Õ“â’Å¢„=Â)AÁÓÈž· ×@Ññ³ñOÎ&ö”^„‘=ÕQ„¹$Ïpúˆ>݈7R æ0†ç¢•Öö¾Ò˜ß¡kÖȱ¢•;òŒbÚI'D»ÖU„no_‚ZÃÙæÁ,Q¾I­xQïUô­.òú×óô8kÝ!ʪÓú×k~ˆc\ù¹Xš|‹èz Ç$õÖ ŽZ½£zèÄÌ»”Z8%õ°^³á#á:éÓ&¬qmßÇ#’Å-ï§—¬‚F€]_#˜&Ò‚€sÂÝm´Ó*uv}°t^´ 9ÕGjo„ý—ò\Ÿ?!(²˜»ê¯ÉÏJæ'Û¿’i£Œi:äsõí¸Æ"ìÕI–Å„´;ÆŸõ^ '£äÒÕCÒ0^·0Úk¿ZSL︠*&ËÑ$²£´áÃ@Z}³KaxíOݯW¼Ïå¹í»6A~I´¸vJ]={Ð,3}•¶RËÊ:jJ4Ê«Þy»Û’7)bÔBUd¶tqJº'A,<WŒZGÞD~ÒïÇ·e]öã<œk—§wªàªìMÙ×$6ƒ˜oÌÓ1̺Aæ°Xtžvê,r„t˜Ì&­*†Þ¡Skî;8=Ô¤-Ñ6-Óäh à<ì,-ÖÂm/A1ܼ8â5Ô«ÞoÖÕlOì÷’`µ=¯·|KÁtãk²‹ç+¶Xv‡< ³èÈ>mÎÀ•^ §ëæ[+5dëÁd.Š4»ÈsØ3ïF O-H³Z;´¯W9›9š#AÍ“ìÕjîš,y6[i=mð·|¦‰v„Yj6Hm&¥k4‘©´U|R„¯oÍŒ@ÒW5ñÊaѬ•Š.À;ž:™Ìœú™ bµ|}µä“Òs{Y C»‰~àöà.+l[¸é®é”‰ýy˜©L>ËÙëɆŠñÀ9¼CíØ®ÜÀë¡uÐÛH.Ëu&¢¬ò9jÅ5­òtÎSŒka%¯·ßn«¥Š¯>9úº‡~fÁöu q‘q›ÎWvä9&zÅíîqµ¯ÌpO?Í(ñÜô=Jäd–ö¤¬“¡šÄôhêÙ£ÛÜÛN¢Ó;¿]· x ñ~n¸ –bP%å7ßÉäAêêÆ«ÐQaœ±Ú¿‰M²Q"º|ýP-¦Yâ‹"ݨ‡ºn¨VЊW7{œÌæ›âì<%ö7;ÑGç\«ásô˜›2"fYezŠ˜þ)'Ã)R±H³vWŸÛþ‚NÒ —¾ýƒ¡âïS¿¿üj@úƒßøX¾&m:^Z:½(0êüŒÇmQòr’кÐrar¨y5eø6¦MSf%žvįÂ:\u[¼W”5†Ä¯3/dQàWxɳòa¼²%[ÚŽP IÒb]Ö Mäð$-GÁ ëà‹^åá.?ÑØWVÓ¸ðϩ䛼 iv½„l­E!Ôãjë)ÖžäÓl¯Œè*´6ž¦Ö`ñ|ÒD`ª;R{FÝQ?Wz©»Í”D—Y÷ú-¬Ä_ô}kí7Œš·bö<~) à>X:Œa©ÙêœzÙŠ?Šç<–»,ÎêÏ÷ýWhÑXÇ÷ 7ࢪ‹æ¯L§»œ6 ˜¿&Š­t”?[åÕwùi9ýêlCYr)Žٱآ~‚œ¥&åÆÉñÂýClö fÄ3)ËÜöVm:‡æQÂ[;ÈÛY£•HdUBá-¾®ûD’zklç¼S'µ¾À¤Íð;¯beÒ¨§ÈU©Ïr?ôÎ0Ñ;‚¤0«#}ܳ5œ¥ÎNZ”ÌXú¥K*Qøá^ȯ({‰ÖÞF¿8cˆÎÇŸGÆ—«WÞî cüÒ…­¾Xë–cYúiRì"É€æv‰0SÆøÚá(í3ò´÷ Kù/ý³wܶ<ßhÆQ?#OÞÊâiCyz'+«ª DÄßT+â“Wä=ÃÞþgL©û,=ýŠô…!§«á)e<ñ²F,ƒ-­{FCy©Ü-a u¯ëѱXµ[ ºax¡®ß7õl ØfG¥²ˆa´×4”Ô6ñ³—p¡¢*Ãt}m˜G.±„:©¤É,ÅdNüì¿ísÏc*•‘Ði÷\†mª”7%düÏ è Wö±­š§kx×FÆŠÕ“ä7KW‹a¯¨Ç{ZU´|7¬‘§h¥ýªÐ/7á²ÖâS)˜»&Qâ½kW/‚º“"1,ß}ùµ ä k±w#äh\Ð4ù°J ?Ú™NबBËÍ­Lyý&ÿËûìCoÚbÏYÑzüÖ-[B–¾ü§³}¨ª »«ÎÆ^¸*Õõ‹E<’©üå`\Ô~ƒ›¶¸ËçÚÜï¼ó9$¾iw¤Ø@¨ fžo‹#p”䯴cöט)ާ ÝÀKMjÙ¸˜ÝY—vJid7õüg ›‡‹˜™fŠ ž‘RZv ‰6Ô˜v_QgªKòÌ;3d&µl÷ßzXhDh„*V¹¢¹Öµ^ñ]JÞ=ƒ<ÁŒÍÚŒé"7®V¹Z‡ÑIxg‰ 7¬ ayEZ¬Ñ8;gn­y±D Ö9,ØzZ4ÓÙv°í0çcpT¥2÷ÏŒ m}V"82§Òç|ºXC6ºÎgCNÚÒ+‰ü¶òß6ϲÀÏÄŠ÷»pâLn“_8‘•ok¹Šæ4€JM[-ŽE½’_+ûî~0´l3¬YWPÐo+ÑmQú­ÄZXRjÄe~fQ m’þ”‡ž¶­’€~¡ª»ÐXÞhòŽFÀõöýƶûJ¼N(M†cl‘õ8:†Ò ²v¡nkGõíÂÓ»žóF»­?瞬_zomèþhsô½„•%Ŧ_³¼,ù@ˆpž¢ ÄQí²Âvð¸_8÷`·Gˆ èxØÜöí®á–Ëä;†3š%"à»gÌ8ਟ’ε Ù€'rßXñh/KÂŒ ?ü¨H‰0exòaÑj¸”J4ÒhU Cs í)‘çj1%‹mè8.6ã™G%ÁÃÉlkŠäaê§;lK¬qOjÚÇ"æ2õÖ‚b\㿬g»9B¼öV'(VÊÝfGÓëŠ&˜7cöA½ÉÂ81Ùcz¥ÓwKô¶=\!†|*irtbß,êtÍ.]N0a è¯S3—WõE%GÞ–{A‰^ï–æ\’ãÆŠ-:1-¼Ô ^˜ú¼v\šj»¸ ½dY¥Ã$Q“)Ç>:H?¾ÉOð‹ý¡ŠÁˆ¢ú ÔîY-@j¾+—ìKðOï¹ç,Á•Rº¡Óo`M+Ý9Ó ßrêtfFÄÕé1ìCHfY¡*)Ì#] ú±!kÕÚê¡¶—Æ“*BÐÆõÉ´ ~S|ëÆ?1<ÓÔðëÛ³•i$Àájã_²gĽÕf Aë¦;ú ¨êšÕà_µKèûKÐ'iõé–\ŽšnCÝK(Að£½á¼‘áÙ[¥/ç´A|ªë0ï6çO·vµ_Ç×zœÊT§€ÂÚ º=ý¨Õ8[!ú ±´1ï«C/öo.SåÚ¬ë ÙçFƒ‚Žg…[ÖqÛ†µˆ€tr+=#"ÚÌéyiLiNæ?2ÛξY‰*ÈIgjŸÆñÓ™L¼ß¸lŒÑËVÖTFï§áaiýÖѨ1®7Š~k+œÓDB[LRoŒSR}56m@VIÿ²|,@ˆ§cs†Ðº?}HÝ<~©Ã‚ßS.ÁfŸ_ªL/øþ6ÒRèçšÝ!?dzIqã25Ó~ßap¹*a²`™A;Ð[GÕÖw´÷f›6×¢3Yª?a 5½ÔÅ4Þ-Ŧº ”ë)UÓsÉõÒÈÅÔØü¡]+ßq| ¯á~Š!¬éÿ£–=Žé”¯€šÍ ¬WéáõaO}$¢¢ÝÌv—S3F.—‘».M0[~âD0äuT®ØAªŽ4}v©iø¡4žÛþYmàah´ 9fzh™ÜHø%ò¥tŒÕ¥Ø;HÕŒ¬"5e³…•ÖnIg½22ÇÑX[êîÑÔ#oƒxŸ‘´¸ˆïyÃð³×º>ˆD§Ð¦Ä¯"ÜZíï^³[é¿ã=hóš¹>¹¥àüTç©!|›‰Ðxp‹J”&ðÐµ×Ø™þ¥ÆÇGúYU®-OΩìhªôìó£VSI=JLµ¬*»Ý.Gl¾¤hpÓbÙI(‹fV e|ÃÚÙc»ç´ëZ£§´]b |,˲Фª+ØÊÀŒÓ²ÙùèQ¾RD\L!_Œ=úI÷"uý„HmË-‚…Jno.kÿÆèö˜®j)æZ½Áß§:óý‰+¢ŠYøù$™„pÑ£³ŠõöꮈuHÆClhðµ“ÜYñܾ**ø„V†yiü¥‹—crjÌ4lUÔàNãúQñeÅxãO%ùmÌD8GbwË‹1ä&QSöˆ™Õcåü,¹-A>…DS°ëÙTé öµ ,°—~&HÑcZ9?LyR„ø×1ʹ*SëRÚKO&U^#ßpÿx‡Pú¨…0Ë%ù©aù׊X#· 'Zs¤yŽG¡CE}§¼¬ug‹G#u"=Úø<ÛÒ62’¦ñqÂ87þâÒ"[^Ú{Ž*kÃo‹1ÎŽÌðð™JcI—e-Ö «ÄLXXÐ7Y!î³}÷ 9ÿ²ª[.³”u`Ã…yþ¬D}– dÓWú‹O®ÌÙ;®£­Êû×'Úo®f¨o¿S‚œ+ž!šu?«ñ™Ø~ Ä££$†·aŽpVÙ¾ÀãÔ9œÒÐ:2Ý9âÀP¾ªî+È·Z€„ YXûLJ°GñFRÄŒuEʧú \âÕ¡ydb]Æ%ÏqžV';>JÃh9RwôÍKH¤>]S™T@¼mìÚᓸ¸ÒÒuW½r£#7'=0t6Ól¶8º¬‘“ñ5~+óme°öË­ð¨—@Øší~ ±Ý§McËl-§çÊW€¸ãôч›Qæ„Æ»Ë&Ö ØÕyÈúû\[v…zžc ÙKÉü.jƒÚx¡Äžj³ñgJ)l{<ŠÂ§´þ?çwÛ[Rq§û™=]Æ|<†ìš)$Dy‡"—d.H8V&ž%±Ö•…Ám™ÙõqyßWÙ‰,Ãí¨¦ÕÑz|bOu¿ËÜ}w€óóxC ti,—ªwã%ŠÕ\Å8£ø_÷€HPz‚6&»Îaè§÷Û‡ƒî.Ê(Ô‹×s?6YRZ¾Z£ú’„XàÛ³À±ŸõtéRÀ •în[€Ë´ýÎ'WîöÙJ^ÍhóðdBÚa†å£ÓãGód(ÝÄ·£¨ÔwëcVÅ7)~ÃkÌ-xÜþy˜O‰Þ©1Þ¶‡§¤Î=¶§$VHÁhy‹™i¬±¸PxáW©©uéE¡Ç}üEÝ@ȇÉ!”44‘+Å<7f}A&² æBdê÷ˆTiø`áÜTåã—5ø›.÷Héó“~…A³}˜³[*üߨKZ‡fP(ü6äÌ÷®M0P·ˆ8œŒ1½OÇ;?{u |uÞΠݱ‚Ò¬³2Œ<²)Nóª§_ú%˜Q×™!Lƒ£ÌÞ½¤–¤WûTNÊê²ïÀ8€Ê=Ÿ*ØÞaHõº9Šn;Ò+|„Åí«wÃê×!ÙA/J Ï÷ä»TSd±v‘yññþ'´Ð’OÌÅñ¶ƒñÆÍ®o çÈÖí„bá‹~­·£"~*vÏP1?MŠ*ÒÄÍg…¦|{2vÛ¾Î_,{i±F.žŽ›ï˜B~„O'ã§“íòN”wóÑ=_%š?Zñp&ü©¤±töâ ïŽë§ÇL¿ª£ïtß)rxêmªw#jr÷ÓW‚è,Ä"ß³vȇˆV†‡µKZ·òpRdÙ¦—wF¿Ÿ¸ÞEªãŒ‚¨û Lø~”£0µcK?r´ °¸y[§Èš *JBﱇ<ÉA%Íï&i‰£?¡ìÅñdy_wè ¹%Jùþ†o':TæxÌÎ~¦·NKž¼F#ä‚Sb{nø˜hÚi¥žòX/ŽÍÊ£\df0E}›}Ön+‚ÅvZx(ÔFfîü 2´æ=O>(Ñ:°6KdàÝàãÉUæ,C¥Gb®èy]-eã÷?–!$jendstream endobj 339 0 obj << /Filter /FlateDecode /Length1 1833 /Length2 2774 /Length3 0 /Length 3904 >> stream xÚµUy8”ûû®l5-¶B¶^"ëŒk¶köaF–² óÃ̼ÓÌ0ƾEGQЍ¤()D¤¢rœ”l¡E–£¤Í•ï;´_¿óçïšk–Ïýl÷{?Ïóe‰%A  Dg#1(´àèäDdã¹´ˆÊ ‘n 9ŒJd”6PV¶d‚D6¢[Ù €ÑgxÁi €] Ê€-H™°p'M$p P%.p‹ ²`3H'Sè b 1¸L 9˜ÍË¡ƒDò2ñ¢-P€=10â°B)‘NìQN(ÀâÀ P…è@L¤P@=w¼µ°usqÇáÕPpb|ƒ1¿r±ÄÜm5+¬3Áwi¶îxï“ÒaþdMÀ™Ûyu`G^¸“5KðÂYc´xÏ`€pÉ¢ðÊþÆmÌ øA  bB´¥€j0›Í0ÒÒâp8(r‹‚˜dƒºÄLaˆ ÀßL . F'Ár²ƒÁå¼öŽ”@ÎyA6в‘K Á8û;1X6/'uÙ`à/e‚‰¬¥XGΠ)t6H'ÒaG6‘Æü—0ø ’T– ‚€e“É«áôÍÄü^æu ~²=Ô¨"ç÷Žéa¬ÈŸ´ùõ±!:‹Âb³–3‚@… òسx=£Ð—0'¬³5ž€t„gŽt‚`uè(v{É›—kåhèêøÍ›Sk:É¢Ñ`Ö,O>+ ¬brµþkÂCé‡õŸæ Äë)Œ¡åN§ì í¬¾ÁâFÙ÷`D`°¯øÒìð` †E‰‰b@ ˆHe1” þBD±ˆá Àf†1Q?~=!0‰ȆÇ^ÄRv;z.Ã0“o¦¯¡ª‚7J ^[D§r„Ðr†Øðx¨þÿlÝoµl¨Tg" Týew'Ò(Tîÿð›£Èc®ê 1iDêo6 ˆ’pv`ð²Ì˸›ï–N¦‚£‹Bëèk/[ÜyG…G¾ž(¼ Žg×ÿÍOm`(d±]ô’ „µù>Üy@ËÖÙ ï½Sã¿æiÉÛš‘(t2 ­§™L"†‡D[OˆÂÀÓO#–¦ÐBÑ!60ÂØ1@ÄDð:m€´lxÐÒi» …ÿ~ÂÂF8%ÄYîðw\[Ð € üà¸&1¾|‚~öÓû ÿo»Ó(ðN‡´1@‹’—þXT"+xÉô«08Þݱ´èJ}½T—Îx6 =($ø/å'X=&%b7žb ŒÃ¯o¿|~) ücж°€"¢Ú†ÒPVƒÑ ôb~‰ \¾Ý–önè·3ïj@0 D <„“CŽÔ¦œµ>ùàœ€²!êu…ÄOû,þü2RV'FA³S uñÛNAŽ;|bs襞ÊÉ›¨_ëŸï˜&¹šcbe6XcïíB¹'8õÇŸkRT{i_TâuF·«àjÖUyÀýî„¥aãõÚ÷E§r÷œ»ú¤X€sºse#“*Ñ/"}M¦ÿÁµ•ìÅ3Ó‰ÍØõnÿ’‰»ö‚Œ›×EvÏË:œË }‘Ù5+Õ|@oälyeÇÍ5ëÌ.ts»%}¡;žÐÉY™­<‚[;æ¿¿0OlåKÿžõŠá…OcY£tƒ±Ï/„®Yܸ¡díT2køA=—Æ9í;Óq7BEc¦H॓¸O†[â¤vz‘EÉ7ŒJ¿ã;›e[vÝ;77©óÓáÅ WŒ|‘¦Ø¥Ìw­'Ù¸µKƒi–¹PxAZ߯÷ˆ“^˜>Î×°çBMóõÙ}‡×ÝÎó9|ý¬`jódÀ¹FùØûã±whqçno¼ç!ªzÇᤌ)M~$ßs î&ùál†˜œÒK‹å§I£m’!vW«éø ½Í(}ªBE KϨÄ x 5Aº£ïXk‡ÚöѶ"W-hŠ:fȧ¼2Èa‹àÎÜ'çNC„<]§‹Ræx±KŠ)›w(9æ·LõNãw°ßtzž›²†ºžô åö~<ó9Ek ë@ÝptoÚ„¦ «h`³a—Š»Ñ9Ê'.º7ò"¢×Ô¤ Òg4Ü'i¡`ût/2 p9pú²­Ín¼vd¶Ò§&$X$•ºµ¸PôÖÐúlFÍzS‚•¹ýj YÙ^ˆuýn%žæ÷· ·Ï<=cÇ)Œ”3ÌŽ®ŸT‘—^ÐÜlð‡|¦=r3î!Rc§‹¹À~€\"Š^ŽŠ’52A†ÿ\6Ü+?¹Ê1ä’ïùýŸæÒN0sÒÃf%öþ3.zTgºél¿lë%ùAª»ö ßµˆ©» AÁÂÁ#><¿c¶UmŠüÔ‘Ì}¨Éÿ&µ,ÇMé¨aEÁ:F°+3ýéœBIŽÖ»ö‘²Mo”ì#!d~Ì÷-¹G‘cÅ[±9•`÷–)Á´Eæ¥Æ£ä¶&)¼>žÍZ‘³þrßä™*h,£28ΑZ˜<ëTźrÛÔu2=ÂX}leì\ !F|ŸÐ¡Ô]GG‰cJ·û7^³µi_´š,f”…Õ*í–L‘W}­Ú+\Å+¢§/+rHKéë—y^;™¢õ\Bj¼ÆÃϯJ—¸À­f•½Û“à½9@ºàvU+_¹R{ÈÉ܇4ò$ç3m g\ðxßñ‘ä ¹|ÅÓ«ß–Ù¹DõìÎû©žÙ‘JîÕòÑ—ûïØR²\83­%^¹Îü óå[±ª]V Ì#>¨D|#=S=¼nõ‘)1ü½­ó­#uô·júO>C†›2Œ÷›µ‰DößÑy݈j­ñ³‰k 6øR®ÚóWIUŠpˆ"£R©Æoœ…jßošÂ&z_K΋¥dhÐý¸§Ês°9¡ÍX;hbd3ÙPÑ£8×ÜeŸy¯ï:ë´~$:æâ@Ò%Û‰ ×ó®Ý¯®×èÓ"Œ¾÷¶Ê,pÛpz÷܃Ñãòm„:¾›Ç{fjÒ±!ç@aWßœ”üºE³5zSSiEge0ûM³õ™†û/í3ïⳞ÷èvXìÛ^GMXÙ)-´úŸÕ<1µÎDΞÂÇ5»å5¹¯HÒ®-/ÃóCïIqo‹[tÄSt°*÷ˤ…3ÿ¶º\u\Qm­Cg»àº?§îã±û|3Ί#UØ^lÜ­±P°ªvNe´¢¨6z6fh*§5<ªLü÷Ÿ;ý—¶ÓÝÚÇ×užŽ-×Ç7ðyç‹ÜÎ߈ÞrwÑßûrŠÁ¡QäÛ8ò§7·RÛeJ“çû¬ž ‘ëûÖ–ªJï·lI”ì98?!– xß Å ‘-üKÕùưMé-¹v‹RÔ®Ò6 "ŠÇÍóÕIß´Z;D¨™{p²Zh« ç>5TýæV½-NW‹ÎØøÕ>²ôc û ª²zŸ¯í±IVˆkôbøß,Z6¬ÝÇ ý—¿°ïÁ,y·¯"¸R»öËÍè&pj.‹ppðÄ£hÂú¤øœ â¾áåúaŸDý2¯‹Õ–y4VVGk51@¡er“µ\mzo³)íXè¸P¥?+§L¸ãPúÖî"%-¹&ïCåÝùŸÊɉMry›O§zeâÛ½Ú̘«8(|ëŒÁg/¡Í_4µâXöSù‚Õ&–cµ*™Êâi¸Þ¿éu+:Éַǵ&PÇ> FÚZ’ž]ˆ‰uí¨ÑPД..cöïŠà“è”Û1[0Ü‹iuzú2áØ®ügk™T÷­¢C‚šXÚ<„hÞƒ6’ßfÀJœÓ{°£Äµ ½‘›ýþÈꆔ©öÍ7[y3mÓÿÞe±Êendstream endobj 340 0 obj << /Filter /FlateDecode /Length1 1769 /Length2 2302 /Length3 0 /Length 3410 >> stream xÚµTy<”ù¯ˆŒ åˆÒ>IærŸi4C˜AfHb3fžaš™ç3ϸϒN¥rSŠ­åH¢au—#¡Õ!T›¶TÛï™±m[¯Ý?/¯1óýœïïûóþ| –yѱ$6 :Â%â¶•Fc"¡ô(A0Ì[c½Á Ÿ)ˆ8Sc`°V2. ‘™h -‘P€ P Š4Äc¸€(Býl 8  “%‰€Svð‚Å6˜)FÝ Â…À•hÊZX%ↄ"ÒfX¬´’4Û ¸1Y<8BÌãLˆ ¸áh8ÀŽ@\À†€`0”Éç0`€~€âM\¼=}¼è+qhaºD(„EaYKgø¸˜d’ƒ€¾&€‹!ýÏ!ˆ àÁ@ýÒ>h 4Fa½(D¼ôEb®´íØ QdÀ7hh*G d £PÚâñ¸‰ÁÁ¢œ/ÃÇåŠXÄÐoÈeÄH 6J' NN rY $¥IÎð´S€R‰&¡väo`(ˆ´&:ƒàwmB™bY.ÕË‹ ˜\!&ÄB&"A2úÙ+¦‚ÀZ‰H$íAûêýÝæ+t'½Y?&ŽñãĘDýn¾¿6 †Ä\1"ž®.”¢KgÆ…d6ÉÃÕ™Bg`©¨ö , FÙpH$"‹–Ö#‘©¶€……%@D?RR öZX @Q‹1RúÈ\”'EáÿCà<Ž€bþËËáBlŽt l‰ïqÃ$ +ù¯Ô„ùf €€aÉ ÅK[Ë”#5¥f”’¸!,8L¾Œãr@ô #f†ƒ"’€q1ÿt|­6—… ¢G#«î q`ÀfÚŒ"ùêúKF¦8tŸV¢Kˆ!~À9¼Œ â0úÿìܽœ%|¾Sý;±?F3\~Ô¿Äÿ·”â6ò€E&ÿWìÌÙ^\„:Mò´Ýa¢;A‚Bø €%šãf–¦Óé¶ñQY£OWú¸¡~)ÓßùPŲx(f–2ˆ2óztRìÞŸFß@r[õb’S ÌæB!€)ªX¦HÄŒÂP…˜ZX1DTøl0R&!ƒ`M„$àÀ"ŒtÌÖfž.5ÉND€G‹ÀÓýÛŽÖÆ3ÑUqÅ<Šåo)Á À£ÏtC¾…[¡U\t_e¦ïoç%]~™– ß®û׫(;ÓÌ7pÙh›„ ˆ¸‘›¨‰¨ýûú+ð»ßvèÙNNpd ÖŒ`mPfˆDk ÀÊÊ&î»LÖôó$[t*_ÏÒ·ÁH…é¿ ³ì’·dK)‰§u”Î6°Á½8¥¹ÚÏí€|nGÃâEä£õ@Ç_’êó ©ëlã3’ ~Éü?œO?}{‚½~Í3ž¿x>…t½Àç³5Ö—XzQoåïn…Ošwå]8pa)àsýùZ›†¦ÉTÓ[_ÔÞdê”^86;âøb­ºˆ¿ ²OU§qq_GãLäˤúþ½ÌR¿qwPaŠæu7á¥&ÕMSKÜK3yO÷w½[Ô²ÇâqIYÅíKJs+Ó¼½ÛtÊ»3¼Ýâ¥<´óH΂™<ó‚æé…`Œ‚¬F>?Ultjn^N¡¾³yoœë»*@×´}"¡™§—–¢I×Ù50(ü)aѺLlAòäü!WQÙ J¸ß$ô|ø0f!‘=Úô¸uÅ,•çCZËÛ’OÍí¾T–?î£l< ˯sM2|(n’¦©UÍ8˜­‘èÚÓøŒ¹¶v\`©o«`ù0¨ûW?Í3•Õ$Uã±´Þ;0áj†&7-á*óŸiùî4ÔX¨È Ú¯‰Éj\Åyü¸8¿I %·ÝU£ìù”RØþ!ëƒîþ¯?¾²RÊ+g¶î6‰öñ ¼Ò1«‡•ã+ãË.€ËcßcU"K–ËíâÜZàž¾N´õÜa^sÍ BºçCÚDç¯\Ù;ûS…í)ÁÅúÝ•D{*ðÓvÝóü’QW‹X{Zǹ…jssœý¯Œõ5;†]5yÓ±­[·°{×Å?ãç} ÿtRQ¾¦qäÙÙ´ó•‡;tHz'R*êηJºÒ*7Yt.C¯ÝÙëäêú‘ù«ÊYQ¼Ýt·^Ò^-IJ¬-íºÝ“¡£ï‡q Ì±ßÊpèŽ>›5û¼M"uÁÆ)ñÊûac~nõXQø­%ËÆnû³c{)W5ºɹ1/|t¸4NXf¾¿8¶äØŒ9êmS9gG[ýge—®ôµ“STÞÿå}Sy¬ÛŒ¦êƒOó¢&>‰¬T-Î<pfñïkަ+¬1´ÿƒÂ1õÓÝŸêm<ÃoDÜOÉw~ðØ–Ÿ‹o—¬Œ¹­Ÿjf¥ý6=îNkÞ>GÅùÜÓ±é1$fM¸Œ9ì^¸oÙ&«Œ N— ?i»ÞjÏW3C8^£†Í¿ß´. Pt>º&ßes›¾±u߸ê&• Ï…ú‘÷ô?Í$á;&]¶é-û¹`ã“C™­þmJ±®ç”'úª+:ŽÎª>1<¥F"’æùúåä¥<¼O˜=^Þ9µ_1ºóM|¡«žÆv¡#ðQ8mØÞúfp&×>¹ lÚ5]t ³æå>×›ugti;$Ê=¸5Ù ß+²Ó)¹5pf‰±Ýl$¡ºì·~ùsЋ [])ˆÓÛ?É>;F÷œ2×Sí©üÃÇ«­†¤t¬¦›ËT;F‰y’Qt['@sG*ù¢µj¼i|FѸŸ[ia{óEÍÖKJ~›·¦…K„ †ïb⻫òÁ"bþ>Ó!{Kgmù“»Ó‚>˜0k¦”ûËíÖ8^»fÓì˜GQ0)úâ rªùÙÚy?'èùž‡/x _:ÙLšl¡¦>#%Ù&1Ÿ+´=ãn²S÷«7tŽ8×°j‹SÁÀ€f!îÝ`OÁ’¶-ò/~ÆTÈ7m‘y³Ì/¾ªñ­î»§8™:@i; jÇÇRÕmì2:ñW'ºa_[zìNà^²iŧ&«wi3vÜŸçΘӤº¥™õ¸îå±#­§G–Þ]¼üdhSx­SEkáj96% Ç^ÔGóldü|XRùÀÎ×a ¡øÜÂE/†æ®&rS8~yŸAyL»wF×Þ­¯ 6¿¢\çþf 6jÍIMð äeßM*—} ‚ªá› ÷=½™O&X¬×ã1*o÷Œ™–üþR¹Ëz©ßœ3 ÷7¸åÎ&ßÔ¥²âMè{—ÖATÏŽÉö?o,ðÄfu²|·Æ¼\´œbð¨x3ð }Öýi¬êjÈä“~áø ïŠ½Ä«ŽOL›Õ+øŸ<4^¤½ËáËgöoÃd%‡–‘»Æí¾•ƒ5qãÚ‰’Zív‚îÚ[õA5Íñò‘§VWÎoíÕ¼¿13@?6ÓªÁÖ¯7¨Èþ•öÇãä‚G5+¨­‘óú6§>¿›åPuÙoË''¹®ä°‰@¯¤2õ¸ª¯½û—¬¿ö©šÄ'¿&ø#•ÑrÜUJ ÷€]ú6Lb¨\JÂ¥… ñS¯D"•AW¯5”äEKzÒv™í)gf-)β0Î d‹°ƒ-ާûŸÆÔ˜{‚þî€Û lû/}‡#/j/Ê/­&È9·`ët§6¿P1[qY§ežF»o‹ªúúãiDÃÏ4g»ùû”{ïx.›ÌÇßW+Óå>NYÿV5ÈwÓÝÅvŽ wÝý’´t3 £q µZý§1–Úî~QÖê}¦òû{Zô™ÎGüv)Ö¼èé1=j}ð ãgõ•·gÕîÅ´ /…ªžÎë˹õ&8²F¾›y‰}Ä/P¥«Ç“b»u®UšöeO#.÷·¾+a´ õtîã»!åkïõ˜SS—]0ö9Ã_ëÚÔ$ýãm€sfÝ2!VåÐÇ·;> *ó“Ó­J'rÍÜŽO6* _õ„®­¯—èäEœ²Í¸”7x9q¯üÕ¬³Ù´¤š'GÃ_ß(ξrýžJ¶C·lÆ•ºuì:iŽœk{@áCûΰ¼}N/Väu$8Ô±#‚ê?VÈK3¤‰iïÖé^0óöß0²*gÿè9Ÿpê–Ÿ1õ µ¶¶?¬_vqÃ¥ÚW·6,uUŽh¾È™WÕä×ký+uë«C_~mÆÏh¹ªb…ÉÐeúU4.!*êugbŠ…­ò¸=´åhò;ÿ› •/ìå—T¹SµO~žZ“tçOŸ+¯R˜T9©[íU²=#⣸›·ÁS]×U"–]Û³;An´«ßž£›x¹sd®€/.)Š|šºÞóÖÿÄ$Á endstream endobj 341 0 obj << /Type /ObjStm /Length 2233 /Filter /FlateDecode /N 96 /First 850 >> stream xœåZMãÆ½çWôqd9ýý ^¬q¼†íCbÃΈò+"5ëä×çU«)±É–F;±7rа٬®®z¯º»jH¥%ãLiÅ´ÀE3Á®† ­ÓUìpêDÊþ¶K¼HÄÉwÍã®é Q±Ñ´¬ûšÕëöˆ£§z;*YfÅá62ƒû] `Ã'™"‡'ƒGŽ0èHŸJʸO¤>qd¨ø(šãUæ˜ë(Zu¶n?4ëö~»]²m.àËБAkÊЦH9ÐêwˆäØ?Dóí(ÂCоÕiLÖ%0õáùçŽpY½kûÜõ®Þ4ýo¦u/aFgÌøKÌ Kb`ÆN™±'”JáîøÈ[‘˜1I^Nú X>.‹ÿ1{ªzÛ×íC<'ö ­îÛ§†õ»ú¡kIæj²Ü˜,+.’er²Báô³ò摬ÂF‰rØ_ G"EÚóÔøj~? uß—m¼e«Ývó›/›ÉV_dÀg X9=1F'…Õ'Ïghñ2Qvu`âÿy9™ŠÐOL>î¶·õm»Æ:jÎ’¦2ÒÜ%Òlž4Z3]6MÙ¸â1HK-’4s7Yæ¼Ã¶zÛvˆáÛ} ìíŠõ÷Ø>Ú þlcû<‹€œƒÀf©$¿Î!ðS†•¯&±&ÿ¥ø]xv‰Èùh׈òËIߪ,o§ðe(Ýh+ÎB¨þ…ÕËk\qÇVíRÆú¶ÛîniÄE„ÃEL]†©/Ü?=¤&øÉOÚ¡ ΄ƒãZxö££mãì2Ù÷€U²Uü¸Àב¬KõÖ¦ýµß#ç?Sa9™UXöXa9;®°B–—†|;ŸVXyàfåäç®°–‰î´ †ÄÿüN¢P)½mÔ1é8·[:“m“°vyéfuæàÍ8@ )À9 Eõ–J¶Õv7PÌî¶›Ç&&¿»¶ûÐ¥ÃûœõYçeÙú£.gÔOK:]*·ì)°Ÿcáx0¦C{8‹¹±JÎawª^σ7¡Ë‹4?+Òž)þH°©QÖØÒÆ—á—•RÞ_ÂÏ祔Ÿ–R׿†G ùá c]½Ûî6d}w–ŸÃ5«z‚¸ˆk^õøYÕ3Z¾>Y\Š+±û¯7û2N¦új»]>4%$È?zvwßÜ}pgÀ ü"y ¦%ˆv<û_Ç1µR…ÔatìiW ¡”šÙ'HgGºª¾Ä‚ª±–i슊³ÛVmø—Š5:úÏœõáâ?F'V˜%ôÓU &&‹=®¸qååFÑu›¯Îñ¡ñ¹+·<­hù‰¥M§ûy†ìHàÿü‘Ñ»‰Õ†=ì×k É)ž :…TCú‚ Òä$©B¨´‘Ï«4ÆW;Á³‚J…*\¡PJ_!6ærZŒä8§¶‘¹œ‘/ÌrW_šx"(-¯¤¸BNòÊéÒÌR^éJ.°ÑEþ&’JÙŠ [”t×Nî&Ló*ðâäÊ\©2„•ÜWJ_!÷*Šs§×GÏÏ Ò;QYÉ+T &­…¢™æÚɇÿ9 Áftem‘›i 2¥µ=]²Ÿ°¸­®\QÐå“K–¥E+]NÐXµ²h¦Ï%0•w¥ Cú|vá\%li¥ÉÀg’R”ìn²»hpéKÀ‹”ë]äòP¶êÓ{A•U­Ã?hþõذ›÷û‡cÓ c¿n7mßa¦Wõ/MeìUÊ/þL96úojúÇH€^5“ÆC‡[Ä7ͧ¿ˆï—Oaß*ÇŽ£nÎôV<ø†œ:žxSc#}näXˆÞ›çèE|užwšE|žwF?ͤ3ú:ÕýõÏMþ¾ê²—4E»IŽ>$OA¢ôMAÖ§ñ󂬼“C_ö†n?8˜?ˆ€›³¶g¯%¦LŸÓ× ó ÉDQ²$’  ˆÉ ˆŒt¾Ì £OžwJMYQ4Û§¢0}ù0PEåÜva¦ð 2å 9N`˜DÙßÚ%YIMP?}3q¸štµIþì"š¹ÍÿAÀË–endstream endobj 438 0 obj << /BBox [ 0 0 504 216 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./flexsurv-unnamed-chunk-30-2.pdf) /PTEX.InfoDict 161 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 163 0 R >> /ExtGState << >> /Font << /F2 162 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 3262 >> stream xœµZI·½Ï¯àQ:¸ÃâÚŒíQ,C#%Òdû÷y¯ªºÉO–ä/‡éÁ’ÝÅbÕ{Er$|$|þyõ¹ÿüêí_~ÿ$|ýöJ¶cXŸo¿~åÍŸ>}OóÓOÿÈ¿öðŸ«/¾ 1|s%á3ü|w%®ô—>j,ü•¤ñ×››«ðä° ”¸=dÙ†„œûÖz¾oMÐ/ü5¼š&¢cJa}ÒÄ¿ Ïh q«yN!¾3{y‹[Îáö*ó½ÕáË«§Þ,‘ÖÌvÇK‡"[•¥ƒá¥Ãž6Y;f‡Q¶Ú}z·ŽÌ«öé˜J=Û.RéœáÑÁáÒ!'¬œ®Ÿ¸Xd3ϸxÄàœÏ·¶8Äà2Ý$[ZfxéÐdÛWžRL[‰³ƒcv¨«sLÇÐ:›œøªÓaW‡Å±¥1fpí°×­Ï%q¸z´¥-Í5q¸tÀzF—¦ÏÔ5ë`Pžjñt,æŸÛDyKXa¬+‚wKÞ2=Ôʶ÷PÊ6*QÛÞÙ¶: eŒÛ·¤oÙ·}„2ØhleÕ¨G:·æMº!Äà‰4<*¾Êïõ¬éÞl¦@ß‹†ö0¯}'RFÀ¼ªŽÓ'êL_ÎRÑΈm>£>µ­ >n3ÉŠ*cöÅFÔ¶ìëüÞŽ8iÁ,Â[ö Íö^·Ô •`ƒúzÿ :=80¿Äx®ÍÖ¹ªt0*×hǼ´'Æ—‹öfvîÝò`À–<Ñà¬aQqÔSàW9#R ò™Ÿm WyÂÊ €†(lôØ ñÊ ;g¹B,îh¶ü÷mäŽm” EèuØ=¢Â²I2žËŠë&9кÑ#ì¬?†bH—pŽ’"cÁ‰–.¸Ò6!Åq+ˆØ Iê¤Çcyð~É[Q{œYœ#CpÁ‰ @3»ú"W¿Hw{s5ZŠ\_bøöÁLOɃ¡–8*ŒJŠM«~2´vÆ;Q2÷Õf˜‡…n‡'1µ¢Ð&صÖi,‰.U¨K¦'€É×kG«¼¶IXè¡P“>a}£iÞ&rÒ T½ÍQ»Q…ªÂB=©Ã¦Ÿ£VqU+@žŒ(ÔÝ^5¯:Ùd¤RW¨ )©ƒG *d¤Û¡P뀌õEˆ$Ú­0XÔ °@Ru,H‚V72ïjU±Ê6³v<çÐÄÎÜé!ˆH•Òng"Úú q¨ž¹jiËÜVoÐx…¢jZlT%äS"xØr½w³ Aº!ÜaSžBPv«MªoNMXtÊ©-Zð˜´bE‡i@óÂ$ý5SLп÷Sº/˜ñ?úÛ†Ò?ú+ßûï^9ùèœ`ÜFÝFýÃËcgþá‰|?‰c_ˆ‘eÂáÄ=µ⾇<ˆ¯9Ïšs+ ñ#Úì Éá–ä’øµ‚8ˆüâgFü©ZPÄoŸ™Äˆ´v'þìg^ñã³FìNü¹úI?„Έ݉Aë‰>Þ‰,ë$~šiöóShmOoÔO³ý @¹ŸÂl´‘?§aBjìO!qÒ?§eëeüÏ Œ ½ ë€Ñ§p7¤ÂêÀ²ÁØÖ4@ݦ°°Uårà^kÈ”ºj뀜äfB G°»°ð•ã at=S8µ€nµòÒÄ@Ý<¦è¶1N9vØgzpn:]¸,Ê ®ºGS„;è15ø¬Iy2Î -MUàX !—áÛ|Mˆ{›Â è2• ÍפXãɵû(±­Ÿ©æ.ò F§>kv»@°þLu*qß§D0ìŒÉM#ˆµPr‘г„1U‚X)Ée‚ån*S'ˆUë\(ƦA¦Ö§Të®Æµ‚{<¦X›½¦7h!érA\ËÔ bO =8éS14dJ±V ®Ü\¥}Šq‹S5tóe7#Ÿ/×z÷ýyòl½^Ë‘kó©7€¿Ã¶2<{Æy›§aÖr²YkÝg·á[‡gß]ýö™¾ú‡Çvu¯Mõacõ¼v÷Áõ&±Ôcpè—yìÖu°,S¾¼Tý”Jžtô|~ÿÖôÝ+GÄøÐùõºMï–´õ¸_[oÛfëy½vqÛ¶´·k—m³ýÜn^ܵ=$Ä~’|Ï«¾½¸Î[îïŽæ‹ë¼åúîh¿¸Í[nïÎöõ2o¹¼;Ú/îòVüÄÌáù]ËšÏ3çÞ!˜”²æXz÷›°OŒe[ïÿ]Uˆ´Œí÷ÿn®z<ÇÊ2á‡Uô—Ï w‹\`˜ù!ï$]ðÅ£¿=f±Ý\¿y®Ÿßݼ woð7üéúÕÛ¼¼~u÷øËðì³ÕÂX±|ú“Å"QÎ…Eššñç7¯¿ºþêÅËwÿ ¯Ÿ‡o¯ÃKáÑ¿_¼ú{¸} {*þ†_7ß„»×áíÝõÝÍ÷,ûx&~ðÿ;²ÉžsFî±PKóÞ!ù?OülîÏ,†–36óG6÷2çÿ×ãxK±ÓÛnŸ—æ.üó±Ó¶ð°Û0Ì·¡ ¡•¿ áéC͵{¼{™û¾ßýÌ-zB<Í5|aîVñ}I\`;·DUw\Ã'zúî þLßÈýPçßÜ\ß}û1ª¸_ˆ×bWÌZŽý¢!ŽÂIKÓo_sóòÇ…x÷jþÞ!3Ÿ÷³§1D|ÛÁøO¶õݳïXÝ´;­6ø „9o)­2ýõõË›WŸ|öú[èÂÍ«_&à± ÍâŠð8P—®1º½¡.}B!xñu¸}ñß»½¹¿<øçêÿ•­°endstream endobj 439 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 440 0 obj << /BBox [ 0 0 504 504 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./flexsurv-unnamed-chunk-31-1.pdf) /PTEX.InfoDict 172 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 174 0 R >> /ExtGState << >> /Font << /F2 173 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 7108 >> stream xœµ\MÓÞÆq¼óWà(üû=FÊG•ªâÄ‘ªR)—´DÅr‰¤#Òùúõ™žžÙ¼’hR²"ÕðXÌNwÏ,ŽÏŽtüñøÏg¿±ÿþæÍ¿þã'Ç—ož¥ÇyžGüóÍ—¯ló§ŸÿÀæÏ?ý5þuÿýì·¿;Îã«géøLþûã³tÊÇ?=Ó¿ôvÖð×w/žŸøõ|Ìë(é1“ü9W9jïžd¿ãߎWûeÇœø'.ñ]Ç?;¾þK·p>ZÙ·p>¹þx:û#Õãå³ÒÏÇ•ûìsÛ!§üHsï`xïPÒõÈá ïj®~Á0v˜õѦÝàKCu^–usù1êÚn0ì›üâµv0v(y>μv0Oq{̼àV)ïë%Ü÷“Ú|¤†Œ8 Yo~Àp²‘¹‡!#C6Æ£¤0dÄØ¡5\ºßQ¼ŸR½ï!#ŒC–Ÿ’ aÜášÙö„a¹ÂQ$Jk×?óÐ`k7}  \ÖÈ ê}£qÛ6µEt]·=¯Ç56š·=å"ëB2hçÑ(ḊýeýMG2Xm#™Ñ)" Ú…Úm[Óó9êš6J-"‰„€ÚmÏY6^7ºEF°?M¥ʯ\È‚2b8 œ"¯ltµÊ£õê ÉÝPg;*ÕÑ{Ê“>7’{¨Õ+"‰&y6òoŠäWºêB׉ߔçV&QŸÉäY(=Fß(ãùËS,™¨¦O£á8Gåq¶ˆ$ívDEØÓQÕ38j216’QJ74#Ê=¢Ž³F”ÂùäïQ\W¦Žk¦ ¯bŸ®~¸"¯’êô~)ÉkQ=êš¼–Æ!¥(¯’žÛVåUr¹eyçx!þ¨Ëk¾•.ÌkîŒF*ó*dÕ0V”æUXqœ‡kó*ŒªIq^%’ϭΫ0yÒ­*Ï«ˆ‚²õy…‚P  Y©JV%Hª¨}(”èJPD8°så-P¥W¨-ݪ2=B¡Ã"³´¶Ã…z‘´­±A¥¡dó©Õ‹Dxõá…%?¨Î¢\/ScÂõz‘l£ÃNÁ^®Î[ b/’»¦nUÉ¡pvÁ¿æÃE{‘œx¾Tíªl/cr4¨ÛopÞ dí2†«Ò½àalíaºT /ò˜ç<\¾GØqÞ“†¾Hx]ØJ_º±%%ü†ªá ˜ ÃNaÁΖÐ(ã7ÜyC 7”4€©ä#Dí@R@ÅÀRËäš-æ‹puj‡«ù"Ä®³Ûä|©ZÇZz¾ˆJèíX‚>`Uô…cIúR8©é‘/Obõ¥Øì2U_Jg¸™¬Xu})š| û"‰?)1QÙ£d¤!gÒ¾ˆ ì¾]6‘ž<žâ¾–º/ùôãUÞ£à2Ρ @ ªtW Fªš®90 ›UôÂM§9±ˆ|³ ’%õ¹Ó@Í´m¤ÀCQ+EÎʳÐ@¹œ¶Uj˜.ϬDX‚§€ŒPþ €Š`Uœe ú´ 8Z%/ @„uÞ Jùdæ¡H’غnUa…ŸÖŸp¡þÔ†WÝ Â>oí´lj’´ªù… B”Iı"ÖÔÑD(Ô¡î\©Si6T:Ö袸ÁyƒÇ^v¬€$¦M€‘qT‡³/»~aG "«¸PÝ%ü Õl¨ u뤈°0q(Ñl¨ Bdq’±€µãY™hÀ´J4ζ¡€€¶ö©€€Õ¤n•3©ºK3ʳăØ" @A–‚X À Ë]%ïF˜ÏöPÛÁLß.ó6IžO¡ºÞµãÕ€W;w!-¬¼jA x4ŸÇ27¿°ðjs q'a›aP$É™AQÞµýÕ¬‰è†u»UBÌœ¾‡aN›…n$²±b€m€ÓÈcê¡è¯ BÕ?˰i±É R¤c¦i"ÖýðÝÈeäh$1^éØ`c9¬P`ÓÀ@ŽcÉJVµ§ؘ b€ÒÜPÐD A'»].è!Ð#†¨')Õ À πݬ‚áò›Xx¥Û` ›è&ˆÝ,LP§Í73ÓD ¿1 Óû7 ÀÆ4ÓD °°€id7*33bƧä/æ3ÓÈ_™¿O°°‘<¿€…ÍlL°1 ÀÆj`pkè \ŸlWÃlÇ«ȤÓeV°1 @ÀjV]ÌùH°°€€' Ži6¦X ÀÆ4ÓlL°€inñ¾±æÆ4Óüäþh60ãÉñ­Ìñ%NÓ­üÁÅN\;´Vì\xø«PŸÃd‚iæÇª 1 ÍïÐÕ {œ¶ÆCMˆhV¹‰x5”2a!ìu›ª ªÖwÄľv$°^¡™öÑÄ Ù­"ã´Uzv‘:2©ÀÙ¶&A®W"ZK0Â<2€r jT?¤c4k4šžb—¿h[ŸâBÈZDÒuZ\ÜÑ^ï^K“»¼ E ˜­êj‰&«e¿ºw®»zËê"¢oÅÉd`Ù¯¨Ê™¶â *TF,ç˰B±)åTUÌÂØdT‰Py´Ó F@Æd^¾uâTfyþ„^:“ývÓ~‡v›å?H=™VÔ#];ÄêN¼àé{OyðPä2p,x¡› âóUþd'‘µ¡Â& ?s~õ‰*{ªå'í,6Fòv»/õ—{t¦ò­Ê₪´= `ºÈ è1áoõ*DØùkÌzb5:ĺpQe…î/7’è|;UAOä˜y¾ SõU¶7„äƒÑÏYÝ3€¿—u áRx>l€k)Ô7¹èƒA„häƒØáŠÄA¼r#ZPEþ‚S£ŒîêEE&œÜ>õþËÅ®ˆ2ÃÚL»‰qõˆ95¹i#Ne I B‚u^fÖ``¬@ÒÕfá2ô|][î ‰úÛZm<$>,Nã¼Éð’45ªÿ3f=÷—øè8ÿðN뀾Íagi(V¾ÍS‰Ó"s{×Î=úûS7Àùh|£Ò­À2k'Ne ·_Ð/˜V:?P‰—¤Ütÿ¤ú.µÂ‰Êþ<Ûö©æ˜2F0ôí¥X›+è$hÁ§ñy‰Þk˯H|À VÿÎî¿u&‹R­,Uë:=èœÀØ n׿àùÎÎ2טú’TEí¶òˆLQÝk’*j1D®@{T§<É-Α[ /©Iº(Óî‡|Q.ë_0ʸŒ#*d“Ç’2Š\MÛœQšMu’ZI£.Ö@§H´Q|žo ‘c"pxœôd4Z¦7~Ð`; ÕÆ·é>,³±ÁßcÂB8ÓÇ’>þË·œé°é²dë@2¦ãÈ›B KIeäúS ¤6ÊÈ"¹&/Ü+d/q 5/ÄC—eãc㤷:6ää„GA!›K{È#êÛ¼ÐXÈfc„<‚Â4·ÌaBã,QG0ÝSàÈÑxDØÚ Õä‘17È#£Ûx ×áÆ#ã4Š6é¶zÀy…Ç3ðnû <‚‰RȰqE‰ñH³F•óH;½M‘<§¼é<"Ñ«¼íϰ¶—•1VF1Ñ90F²–‡3F²Ê¹3†DD–»ûºÔ‹­Q2Ž1†üuc (Å#íÊ2Fs!cÈPÖ30Fs»dŒ!ÊfxkŒÑ<£c tÆè–‘œ1z·û3ÆD`•2ÆHæåÈyTo•*cdx½¼†œ EÆ@bàï“1òåŒOÆÀÒ2c/= c Qœ1°”K]ÈHÌpL%XúÀŒMÆÀÒˆ^6c “èl5Æ(’q˜ÁÉH-clÆÀRÛriG3F!c`é3(ÉǶ+c”d©ÄÙHsÆHGV)QÆÀR”è< t\ÙŒ¡ùjlÆÀR— Œ GÆÀÒUÆå c Ãq|ÈªÈÆfŒ’«ce ¤@2£d«,coõc G’áÈXêC'c@¦à<€gÝŒQŠÅŸ1–‘AÉ¥˜Ó6Æ(¾TÁ(YXqFñ‰FXª¤¹ÉXC—.ç´]ÎÍÀt$Üvnæ(X96u3á“;÷•< ÓÀb Hj¤`Û®üQD‘¤à<€õùƒà¯38àw¾S¶*WU ]ï¬\aÙ̹¸E2ÃÌ‹[.Sfäפ<б™E¦Lð"ªIÒf–lÖ͘¥$*4cNÜÆ,¸É¶™¥Ùºc–fcoÌÒ{ÍÎ,ɼ…1ËðEÆ,×ZGfÁ›¡Œ•\Q³ ”ÚJd–b=$c¹í½HJû] 0K2çÌ‚„Ó³øêig–<ŒYNËÄÆ,¥Z¦4f)ÞƒqfñšŽ1K-¶¿1‹;9gz¨ié‹ -0K³6¿3K3åãÌ"Ì4BMKYÍÀ,Ýj6Î,`ª+0Koli;³,¯fÌÒ½FgÌ2|Ñ™1ËHwf9³ [ËéÌ2l3Ë5Î,Þ·3 JÑc3 jøôd$†9ö>&·‘AºÕuÈ =3sYïÃjÖûð•àì}t^³õ>†-tgïܹCÎÓ¯EÜ—õ>Š-aï÷õ>º¥Që}Xåt÷>†¯T¶ÞÇÜœq%ë2XïÃfŒ÷>Ê~ïÔ—Úrp"\³èb-ñ#[\e”÷>|ý…õ>|¹‡õ>²1›õ>Š5¬÷Q}±ê´[)ÐÄþŽ—²Ä4¹g$1}¡´÷=NïƒXßÃrâê{x_Ùú¡3pÆø aËSv½ê\œÀzÕikˆ¼^uš:^}ÓÂûÉ9õªä …­^•¼ïeõ*¨õº9}–û©{_„õ*yÎtV¯JVJðzÕRïÞ÷°eM«ï‘ü,Ö«r¶œjõ*DJàS#€gÞúRäíÃäͨGu£«Ú:²¹9õ+Öo¼ïqZÎô¾‡¿QfõªbšËëUÅÝ–Õ«P/;7G$qÀëUÅësV¯*Voõz•`r˜Õ«Êð7ÌX¯*—÷5X¯ârŽ]¯’Û>G“³½ïaõÚÕ÷°u7«ïQìz¬ï!ø:7GèrŽº9Bëcs0kXÖ÷ais„öeòæZ4ùxߣZŸÌû˜²Á} þ™G¤fËWßÃÜáê{dÆÛê{¬•õ=Š•Ñ¼ïQC¬ïQ)õß]Áú^ßú¼Ö÷X/º±ï1ÜN¯”©¬³¾ük^LW»tgRE•|r…¾Ç´ék}ɰ¥,¶(rL+Çî{XÏûV.³¾GKIë{ÈEêD𾇿‚ë}yóx\Wè˜ãñÚú3ë{Lë“7ÐéÑkÌå-è5¦{ó—½vè^Ã_Ìr¯1¼ûm^¯H›>0ýìz /á¹×hÝ^0¯!qÒŸV±Bÿï<o\"¸wp1‘¸xÄÁ/©T­‘GÎÈ#Ù½…ñH"¯/9ŸÎ#ezœ<âmXç¼¥Úº¾¡)Þ7)Õ½y¤xßÂx¤Ø fÎ#‚Y…2)¶Çy¤,/AÉæGòuk„'¾€ñ›ðõ±÷ýï“/âWÀd ø§~¨ìdP/¾>æúè˜þ1¹z1\5Ä¿xy|„-_üñÙß¡?ý—ÕõÕÎíÃFLKÌòàögVÖ*vðøÀ3סµ8œÂ=ß?þö)¸=ëÑûÏïÝíé§ÑŠ&2w‡ñ£`úM1kïÚWÀnÛÛ×GÀnßÛÛ×7ÀnŸÛÛ—î¸}ìC¢ìg ÅO¶{Œ _óÍ·Ž…ŒùöÛ7ÇÂ7ÆÖöøÉ±x‹?sr4e.‘rñeïbr)(“¬#Ëû‰žDÁ:²¿÷‘—®#çÓ˜~ÿ4rÚ/ûŸ·‘BÚg'mˆ(È•röß~ôï#u½xþÝ›ãù×o_|w¼ýNþMþéù«7úöù«·ÿîøâ³x…páÔ¿ W„Ï\ªjæuüËw¯ÿü÷ß|ûÍÛÿ=^}üáùÇ2FÇGÿõÍ«ÿ8^¾– jäßä¯_o_oÞ>ûâ{—öîYò£_‰Ä¼Ä"í¡ŸpPÚ*~ƒñ¯öðQ| è*sÀË×_½øö‡Û~2Ò%ñeË¡ ­Þ/7$‡§×úùŸ¬ºØÏ“ù«ßpÐ~"×"Ççx¹*5ÚϿܧKœìÂñÎä NüS.|èbÅŸáO:\?rá™+ Ö…¾]øâ¥!|øŸ=HúP„áß>ÿöÅ«_}öú2í_¼zÓi¹ëé>}þç7/Ž7zñå7_ó¥Ì÷ÿ{þÝWo~¡ÓŠDn—噤»çžã^¾@ºûÒ‹\ÆËoþç퟿{wZy¿TÛ†:q÷—_©L‚&™\=Æ”)ñ'e}‹âz¿W÷Ýq5Ó9Ä5ñO™¨Êž2!ï÷»Ü¤ßÄØ—Kü.fY×"¾ÇåþPê½.W×õ}¹†¬ZG£ùäŸ?ÿ…æ,Îñw/ž¿ýÃ/s¼œdÞäׯ¸™¿ÚÏþœßendstream endobj 441 0 obj << /Filter /FlateDecode /Length 1252 >> stream xÚWKoã6¾ûWè(+E$õú ¾ü'øÝ„o/xJfj4t…  }!¹NûïïÞ³¼¥Ñeœ%A÷Ó…v‰„õóa§`‘*(U +'ZM»û´‹Ë"K4.–täTdãî×6 ~êw¿Ã;ŠÀ\´°Gøåe Òؤ¹Æ›UIœ«4Ð&ø ¾^ï£45áCß^©ÁÅÝw Ræ ÏsÝZøü‚°õøý㌠Šô¯½1–ŸœÝ†Û½.ÃÛ³7B# ºu`k—ê?Ë/ w[°Gé4ÎŒâàîáb©NˆO–×­XùŠ›7 ŠÎÔk§¤Á4 å eG¤Â€»GÍC{âÃ#ÆômáÑNÂ+:éÇñ²ű̊}›þ¢èhQëó>ËA •Ę¥]¸$.:\Ló käæió„tËÞ@`M¤Lœ¥ƒ5qðižyÅ~DÕ< ígŒÍvøIΠ‚ÒªHÄ¡˱'/_ÐD-Ƕ]¬ï,ü]8°m%!˜%]ND7«¹ @sQß-"Ñ•SÒ É¿•2åPñ©þNœ<Ím_0,ÞÂåOtè’^uU­ÒU~Â+ÔŸ‹O,;CŽIöHNE±áº» K¸}£42+r!µ~^Å&D»Ž…)ß©O#Ûw‘£Œ ;b’¹BQHcÔ$  v "½Ÿ8MˆÊÖ®h¿a…Û¯rÍe• Ó¸¤ŠWo´Hgtöì;pßQf¢Ô”á}DzõÉW†/€úQ QÇR>Z7¼‰çˆ8@°{n­‘¢-¡º÷7*Ŭ/ÀÉæ²²\”¾Q õqéÉ€½h=N‹éÅ’ÔîÊ|5 hæ0eÊ` ›Ó¨Š‹L;)™{xÿó|“§¹ëN®Éwã²CQ ~ij†¾d”„Zκ–KÎDwwéHiÁÓL$¤Â·}™JmF b3e‹"ŒïQ©÷äEì¤5`u‘ÙÉÈuïq1½òìU‹qçixÞž~¤+þIŽh|uý¢]5iËÍUäÂàÌýÓPû¥Ah»‡GýÌuD’¤tvêƒÓ·Ô׬ÇM ™8OSÇQºÐqŸéðäS2ç¤CI=nð¬0°ôt\Ö\ êt]„ ÑÍŠð_³ã¸Êýe<PRN¨þl~®ø§Úž¢¨ÌEܬ9­15W—\+×s™«’€“Å莘‚eAoÕñü²5Õâ©n’Jž †p»º{Š)~^HYæ†AêÔ8Бw¸ñ$Þak95©^¦F'U¬´oÛÖ¸J—]B1ÍêUM©ùIQwó÷~}dùëªãþ¸s@«ÁL> Oü¢'À5 Àv…8UWíšj(õü·qôÈ—ô°|hºä‰”çñJˆ‚œo[¨Sn”âʱ¥rO—¹¼‡«+J1åÚ"JAˆ7\ð¸?Bè<Óþ÷hG÷«B[þŸ±øã?–u,ãendstream endobj 442 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 443 0 obj << /Filter /FlateDecode /Length 3384 >> stream xÚ½Z[SÛÈ~ϯpí“\…µš«¤ó$„$¥0µça÷<à[”eC8üùÓ—™‘dKàìnJgF£™î¯»¿îq2º%£ï.Þýz¤ÔH$qžäbtq3ÊÄ(5iœ+3º¸ýI=þÏÅç_²¼=+Ïc“Â4åh,¢{ø_þ€?3øI߯¥dôP,áK1/áïjé&\ᘊæc™Ekœ¼r“¿«æùy5žÈ4ºÆž{÷"œ¹¸å5žfîñ;žÿg" ¾ ÷R¯áÏòð.qGÞ<ï„2Q&άåÑŽiKî'OÒ,.îxWZg;üö¨;ŠšÛ—0`£'.¸w:À3`çœGàa:-­F5 áÌŽàð,8èºG<óü?“¸óÁ¿ØŒ–xLnž|7úCDG$®fï¶Ý†?âÂnâ¹#¥¡Õè"ÏóÎlìCðŽŠÅ5ÂÀD¨ØèœeŠç.–Å÷AÇAñòqP"Ï^{oç¤ Ø\’ÜQ8Ë•C¨mëUH'R{Œ²AË)¿0ÞḛP‘iœ¿ LDÚ+·6œ^gq–jhØ8Ë$?¶Û΢˜¶æ½ BM¹Ä”œÞŸð˜Õò;,I"º¡#/dpdåQ˜ö„1 ¥Ç|¼Õ¡´á)¯Ù.õ¦&¢¯~Í꾘ÑîzÔ ++7ÕØ¿¡5zHúÁˆ§`èƒI¾ò¿â>êFÅ Ñ»§zÂÿ'Fuì…¤“< Úã¯ßp‘YcÖЙ‘„guÛˆ/Qù^)Õ‚§U7¼Fö|CÍ#Ána¶›EGsï¡ɼüüš¢eWzYœ$A!g ?šÖËí8Y:[&{Fĸ8IŽ…ÝïÙ>ûŸ]× ›)›ÆVØF9rH9BEåìõæ¾²¿ã ¸t`<—¿w¼mÌyÅ<Ãf#¡c¥ÁŸsQ±„NT «yæ9jòÆÅ ‚bàŠý]××ð!‘ÙXƒHå¹[vŸ¼5¬œFG¿A{›ä7o QÑo{üùñ# ÞêÙÆk¢c~Õ!“$k‡Ì­ž¥±lBøtíŽôˆÐ~dê0‘¹"Ê }p£ä>WÜwL-† ÿ̽ûc g :ÕsíÝ>üÿ[ç>Ï:[Ž!TVcƒZ¥›Uó{ÏØÙ¯\¼{UiÚµWtëè÷™ÛÖSŸ²•MÒÒ6)M®p˜NIR­Ù^µ#Tø6.óÊ›O]-Û×$F"¨¶hÃÙ‚ˆ~é…3Ø«²!¤L Q]tÔ…Ç5Z†ÔA~A2„.¥)'HL*¼ ë>\ ºo|ÍžKÉX}ØZ¼“ aHûˆ²ÜȈá±öxÒ`,_˜ }@#· ´ 0ƒÌ8f èûùûfìKé$yÝrøüWþ@Bò¡^sÒ&à ÑAV$%OÀf,u|¹M£S¢ÎÆæ¾æÞÎâÐ^a.jÝft„7 z Z˜ ¿Ôy¬ vÀ6ì>DTéLƒç·ùÏû<ç /0&ÅßT£É!”ŠÈk¾b³$´   Nlp àËeãTnÉ1œ®—jòû•Ï­K^f3©¹;˜¿é¡ÄÐ ¹6¹ìÀÛŸy.¹vëÞ×Ôƒ©rëܼ‰¦c™Š­Þ c§N“«;†QÍ:s`1©›8bKõ胡ó6&h¸1Ãæ|×kÎ ÉXÖ˜s`ÍHŽL™¢—Zp³CŒ@N{ÎGäà„‚$×YO‡¬É H¥Îetþ™WÃö •ž|飮¹gq3ÀHèFiÎñeêÒr{>¥EYâóŸj_ï)ÝⳞ¶Š4c!…ƒáû%Ç!Ò7u½÷| $GPºõ\!âþ!…J‚Ýj0ÒøM¯¯Ýrå05Æÿ×pè좃¬vjf¥óš-gÓ§~à™ÊwG‘í[Åĺ“ø;èbHÈôEX1¢ ¸ì„@OÀ$DTÃ96MÃ>LÞ C¤ŠÐáër8±eþ «£ ž¸*)¨6W-:iö,£M„Ù×ÁÉxç{¹vZ¡ò Lñ€¢ÂÌÄ/4/kn×'ñû }g`¼1êxv›JCe¢µeªPPÌ$\¾J2ZHt\føäÂ2ƒo‡-ssuçݱEŸ³Ÿ[§\‘ ,zËM} Äã>#“7=õ‰È¬lP|ÀN­›N·vOÍÛP¹â÷‰ÁtI³²©ÞÔò/»F-Ä‹–ƒ°"'™6.@Àv‹6tˆ‹€Øyü¾U EØ[ójž™Z0Å „šSæÅ]É4ð¼É!ƒÊ^iðŒTfÄÏR,¤éu9$¶ý0çÌ‚ˆµ¯daû8˜Ü @ÈsÓ®<¯É§Yôïq¦9Ó-[½'{\<òN’ŒëêÊ73’ü7Ïœi!nWŒWzø˜‡›Ø”´r°Ú–÷é›”*Ö*(fî®6Ê^ø`¢©fÀâ¥*ß)ø-›Zeå6÷!„‡ys]±pu`'`8—¾¸PÒJ¾wMI²ÛeNXTôµZLŠð}î(&¼SW°n»É+œªIÈÄìÄò’gµ?¬æìKÿˆ/ÀÄsòBß‹„Ù§›ìq˜ëi‡ pÛÃzj%ðR»å‹<ÔÑ®qŽŒ¨î€.°k0·ü <ÖüõÀ=w †Ó Mé…di±LÒݽ_ÐìäÝT×»I+^dª‡™_´ßuj{¬Q§&:9Ü㙣³EDIÅO9[Äg¾8ÞR N9æáƉl I„‰†Øk‚*‰¥Q»™ /„Ñ+•9æH45Ϻ—±ÆzÞ+iXLÚWíåíO¶rŽÛû©ŸÃÕÜ Î› ò%EŒáxoÞªþv §ë‚!u²4L+§, §leià{íLBÛ4•Ëò¢½§áè]u¹E…"Z=Ñå!Ç¡^óPÀzì›æ|±ÊÞ6Ob_Ôpu$“qšç]c8j,KøÑç34‰=þÒ¾o¥È’è3„ú¼ÅpµÎ¹¾†sÒè2Ç]—^ËU,,sWü—Duí4 OÍ›ü§t‚u÷Œ”_ÃCyØjXóÕµÏ[ú{éãd(Ý¥ŽQ`ÌáаóÉVZdü5p×·;|†›·ï¯‘[ b¶Ù6´š"Ù ¯ÝKC¢(›ê$•ßv$¹ûžÿTØKÞ:„Ü(Iiâ´¹öÜÁaë¶ÖvƒæöÅ$ù JE'º¤žU\`;õµ8ðÃyb Ç®P÷86&òŽcP‚ÏiaÁ÷”~ÆaS¿ãZQ«ˆ¬ 'ùç0Öt[­ÉÒ×¢¿»¡æ^?¾hþÐu^NSôÛeç–‚­EãuM)™Ã£y'Ô[¦=.W> stream xÚ­XIWG¾ó+ôr½‡šÞgÆ7À‚“'ÉÉ!Îa(Ö-Æ6>µtf`Dd'‡‘z©Þª¾úºªeç®#;ç'ã³,ï()r™«Îð¶£r#ŒÖÔ¥"7®3¼éü‘œÞwU²„o¼‚Ÿ5|ó6•ËnÏ\B¹uuš|‚ÊÌg‡Üu•>öœbÝ$'cì¥i œh¬±0¢ É}˜…Îu÷ÏáåÑ™1õ] ŸfpÚŸv(t ñžþwzÖªNÏ8‘yÏ#Úv [ ûTÉ?J'¡¦¥RPTPØ‘'•±W¨O‚:Æ=ø`‰U¢˜¡³Ï»=Xä¦Dá7ßbó’Ë¿â 1B+Ý£a2ÒÓ!ßh·”/WÁ]‘—ø—Ò>Tž¹\A×€"šãxFë}Åáã8GÆ*†ÿ§˜Ìj˜äú; ÓKn(xømù §˜ãÏç°$íM=]DŸ™Ïh‹»"EfÓ&¶x™±ÒÀ踎Jn¹¸Ž§,wµwÀ: ØBeÆ¢¦ 'üSa)…ñܳšc+RÓ¸ˆûnó1íDêõþ¸ÊäÞ¸2¹ ¬šyó˜¥jδ³B¥:à,ø»bйBòÈÜh°{«äôË¿ÖD#–à\ý „¹$ë> Bª›º—\ܲgZƒ£ËŽgaòKXðzñé“a¨˜–)tóŒ¸o•ÑÉ“àøÙ÷3ˆ=»ó ÄÌ §ëÅÔ±´³Z°^Fa>ðE;be¶x\¢üêÚúŒZòuE[@a6GµÐ‹¤„cg£=±Ÿ+aóŠoœÇº`£Êyaìi°zïÒñl'J㿃ýÞPÍ›@UVç@y~T!Ö9ÞÎM¨.Éñà`V1­œóœX}MÎF¥6ì~ÃŰ‘& ÂíE¸;f™)ŽÿÔ¹Y2ô¨£/hÊ’[¼«±!…rËÀ+wKr¢QÞ.ászÅ!ˆLüGÃ̧nëÚYîža3òÞ2JŸ‚á3›Ü0!ïćØ`{!?gN+-oI Í’ ý®¹¯5‘i’æ8&º ¹,އàÅ9“ Êè¿¡sÅ£Ny½`«ãÅ‚ü˜Ñæåhêy|HFm‹ F½LÀ©0ÎT¨¶»P­žòoj P,ØFÃJuþš{Ôj'#G«ÖQþžŽ4Ç“ã-û]Í:à ÎfÜzÖCœLú"Ô”3¿ˆŽ|¾YpW—´ç¨6­ñ²¬órJþñ[73ñrDC÷a óV°Å85 ±7™­Z:lŽnxp#ÚV´8Åeæ¥Þ3—Tq30j»Ýqç3w¶é“X¼Rß $œ ¥ë$L0üÞÆïm<ìöçaïÍÃUʉXåòQiév1ÆøÍд‰$¤A+“ ¤a«’³ eÖêhÄEk9ç Bç1NESlVÜØ?áÿ ‰²!xìÀ€‘¸‰é&™”(vÔS„t²Ê¼Èì±@tz/“Ó -‘L˜riÃýx»ÀàÌÅìf'Bñ€›*÷ðb*Uúgž§8÷ á.²—úÐöŸ VIhÿÝYO@š6Yþ¨­‘;£SHÄÓ§PTÊ"w.b€j!%~ñd9w%‰o8`r³•œ©’`ÐâŦ”‚è–$ZЇ¼~@„ü¹F)8äõ6,4Äk%¶!Àà4É›¿ÉÛ@oÅ“°áZÒk“eBúô_óë*d{Åkq¦F™"dòŽ2ùÃb¼ ´óM‘“Ú'Û`¶í^õBË=2{%¼Îwföp Ȝ˗’xì I<'“;óxkê³Ñžù¡Â9¸×4ñÒO~ ¾Þc»K”³Y/n úïð´¨ì,ï¡Ø??“7ßÙ\&RU©õ>ø9~ ŸTr¾‡Ú'‰O…NMÓ ÅP‰uþ§—-ʹ.B}IäÇó#ÖMøŽšI ÿ}¦:-…´f‹‹]OÀŸyÓׇ㰛)F7Vb®Í/„Xn}us&ßæeÞÇ×1‹ä‘ïÉÙîçÓù¹gI ¤ˆªø0‘U8¦FÒ1°YqÇýÒ?yÁ–_0a]1½D×¹áQÛ§’ïzÙ8‰—i|°X/·¢-Àu Ô©÷§sŸîÿØÐ¤ó4“i–¶Û÷ÍðàË-(endstream endobj 445 0 obj << /Filter /FlateDecode /Length 740 >> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qض*Õj¯˜n$HPý÷ëñ#xÙö?ŸgìÁÜýxÝLTÕîÌ$|äìÍôí¹+Í$ý¹=wwY[ž¦ž©L5ÎöOìµkËØ}ºÎÖM=ÙëÃP7ò{=,éÛyf‹ì¶ÈÜ¢_¦ëë¶ybâ‘sn yS¥í6ú`z‘¦£¸}ÝTÝEÛA] $«êr¸ŒÜwy´çÅ›Ï~0Çu³oƒå’Mßìd?tŸNãC0}é*ÓÕÍ»¿•f§6çÓé` ƒñ`µb•ÙÛŽÖÿóöhØô[WÎûçÉ0鯂t•meúÓ¶4ݶù0Á’ó[Å*0Mõß\B+vû‘šX*Ÿã+TÑ*XÊÐb£À-¶L†š s[ ‹#*X,caq¢\Áâ`™`2Iш ôPè¡×]¬®QA2•¶ÝE;XÆÑXJKªC kàá8¢8pLØõ¹ììÖB§Òõ$qŒÆ©/0Îü8Å8ÿ‡?rŠÛxÂy!ÎBÀƒ=ÉXú„óÀõ Øy©ã82ƒVA× pÈ"¡ºžÓZÇqÞxæ8t9¼çMDð/ÈWáøä)uœœ8˜|¸}¥ Û†~)é3à„0|‡ÔSRÏœÎHCOt‰Î$"NN”“_hˆ ò…ž1'>4$ÕÁOˆŸ¡OB:Ý]*N:qžJøÜ(és£BŸ5ó¹Q‘ÏŠ}nTâs£”Ï¢¬(èQù<©ü6Oª¸Í“æ·yÒâkž´üš'ú<é™Ï“Ž|žtìó¤Ÿ'=÷yÒ Ÿ'­|ž´öyÒ©Ï“Î|žtîó¤ Ÿ§”û<¥Âç)•>Oéìzgî—ï~éx›ð’^Ÿ½òÜuöEtÏ­{èðÄÕ¹¾È§ö„Uîãžòñ¿£—"ø ›tª”endstream endobj 446 0 obj << /Filter /FlateDecode /Length 602 >> stream xÚuTËnâ@¼û+fHäà0ŒC„°%›D­öjìXÂÙæ¿ß©nÌJ›ÍSSSÝ]ݦ™üxÛû›¢9ZßÊÁ—ÐÊáâtßI„ãÅ^Pè/ÛõeS? õ(¥tĶ.â¦B?½7»y³Ñ婬‹îfLaÓSZe>ÜNôÌ+7ï?ûÁV»úÔx«•˜½»Ë~è>Ééƒ7{í Û•õYL¿¸s·ûkÛ^,œé­×¢°'—ÔÍâ%«¬˜}×ì]vøl­ÐtVì.o Û·Yn»¬>[o%åZ¬ÒtíÙºøçN9žFmè´ò ³ ÖŽˆ€·DDÊ ÙTÀÄB‡D ˆ%ˆ ±*a€HÖŠ‰ÐázIlƒ@¸Žˆ e Rs„TEÎa,€:@½XÀÇŠ£ý±O3ûÎ?²î6"i–0'¦µDoR3ÿlGÀsÆ[`žÅ¦\aʳdL±ÔŽÒ”3%>ÅtéeD˜‡œk®K¼æº zÔ\7AÍuSâ¹n¬CƤAND4czCox*þMÄc71˜pÂ| ¼ežô”GSþ¹äY¡n@µŒFïAÊü‚4J©–2ðR-mà-LXƒY…”G&áíÑÂOëv_ŒüÚungh'i°emïkÛ6-¢èCû>þÓàôšzÍyN$endstream endobj 447 0 obj << /Filter /FlateDecode /Length 2717 >> stream xÚíZ[Û¸~Ÿ_aôIƒ­‘uA›IÐ,º@·@vŠ>¤ÅB#Ëcu}[ËÎdŠ¢¿½<R”LOf‚"Í¢}˜‘Hñrx®ß9t:»›¥³o¯^ß\½x[V3™Š*­äìf9“•Z©Ya Qi3»YÌÞ'oV×29Ø¿®·ÿŽöo·‡®öp=×Z%ßÙ÷º¹VEò“}ƒ1»í¯éÓmã|ym¼îà+.SÃBO8ÂKƒ ÷ç-<^ÿíæ»oµ©ÔªyQÚC }Æ\¥|ªÙ<Ëäl®(óœÀNH°]\ßìàL è˰]÷ô½¦Ç‚Iøk*u{Àé2ÙÂaŽ4§£v‰ âˆ=ƒ¦?ÝNÜPy¯;Xà> ¤¥ÅÜøMK'.óðÄÊ‘…;ñbìj;;+“Ûk£€~"r”µ1Öå¹(Ρ,‡Ó¶5± ºïXØÜ~ý'ûþ ¸•YnÙm,¿•–ÊÙ\ja²ŠÖÿËu™%-,tkÿNk cá%Gñ#F\t™ŽX‘ÎæVü2/h‹wvàï®çFiÔ'§ êþ­}Óë F'žõ!˜}‡b7)žx<„»xdÍŸz’2lâNUóóÄŸíLI#þE#Ï­QFk,‚ù5u½¤Ç-ŠŒoø©q"ˆ!óÿ›ë¹”Æ*Ü"´µÑz¿1Lb),áõ=Oï~q¼Æîo†eVüuÏ»ñæ1!áêOaùsEèeYVÃÙd˜ÍëçÉnù…dw˜¹“ßq8køyÇÌÿêDk¾.ɾx›—‡hƒ]ž–D&¢…Í»9¹Æn\\:P +£“ögÞ¥C™ƒ§Z·>¬õ±"3ØL¹rÃU™ ©ÿ9X0Oêu4aÓ7?RcCñxŠq«§îúÐò œ½ßÑê6gÌõcK‘ºQ/:áQ\@R™HÓÊQܰœÇ[E!†ÚèQ¼…X DqÔŽHbž¥¶‘gcËëC³è˜-±=3)T™¹=÷ª‚)w­°ºbÃüÍ NßnÈ+Ô¥=²z`Äò>•ˆcŠô8ÆŽ»%à°æq[^­æµI¶ذ;Ð{ ´•l U«Þ:Qaœ?Û¡¥~’ƒ–»ÓÝŠ€saÄB8IV$Ë‹¹ 6ˆÜ(‘^xýÄÔÉlc2/EjaO#•Â}Cüdìhßö$ÎFk@x&E]…!°g‡”âœ<9®FäEêà}Ë0̾îX»€\ìhÐ^Hk|j„imÏ{zêh«på¶'UñçЯ<ëTHS\´ ý,qtû7V³,M¾Gj'¨º>€Ö™ÉX<2«¬=æÏ—O!Êld“§©2.gdЧ`j4B䌇ìkÄøZ´`½_bïD£n‡Ñ#UVk Òö´ø9¦5Z‹oÕØþ ².‡ŒÁ¾ŸœhÔÞÀ¹N[ £GF"ÉØö0ÏYzãlÕq‚(´Bšb,}§À¨w¹Nº% ª·´‡…úø% ´õ†P.±¢Æp†‚Tê‚ßÀãNü†t[`öaG•F$2?çx5Ây›W˜ÒG¶xú1çA”„äñe¦àê<þ| ·²§a¡ÏLI¦PÔ\D¢ÿIf}Äù_äåTeÓ±"þa Űƒ§÷¦F/f«,@„_ò!r†3Ö@ÀÐ|GΉË=¸ž«bdœ%:¤õ…£¸„óv.Z.¨M~³ülwk¹#†Bèše±h‡¹4Í0{ (iP,`‹X’tCžŒ´¢k‚HIÎ-+ôãLJ¸h’¡– M=u¢\¯¡‘s‚¯\mvp®,Ë•Úö¾0fŸà'ità'-÷˜T@#~1ðéШyÎyõªER7±%ÞE¸ÐCÝFÈ*+Mc›ˆÖõ„©¼ÿEM uFçªÈ‚ŽÐð€V°X7š‹}~ØmXŒKŒÙadŸ»JiJƒÖáÛMØ0+,,uH9‚ÛšÜQ³míb¾£åPkPoG0»pÒln Q”åÈ[nj¢ª*ÏÁ Ó:øˆZM§uÐYoôÒ…QCÝL"®ªªáëÆ­Q§î¨¯fŠÚÚ)äúYÛMj¢°šõíÚ\%.ý¬GØ”uWg‡Š¦B+>U?PKVQÏqþ¢2eì Ú'4ð1Ä«™ Õkâ^“@ßo®ç2/âZ, ¡Tu¦ød¹£'@ÓR'¯ÖžùÛ°‚ü6lÉE¢Šdž­Í×u7\a–€u&*出R.°£&Nø*ìš(FyÄÒ¬R¨Ì¸…Â"¢³r²Æ!¾¸dù¹FMËÒ@®ºw qÁµæ*™‰äˆ:Oœ:nïXÓ´6—í>ºDOyMñš4,<øË 6lÔµ[ëÄݵ5‘HÆÎ¥†V # |]aó-@H·Or~!1ºn¡”yj,ÎÒZgMW©’ 3;Àµ ½¾ûöjöïgŽ}šjü¸ ù¾ØõEaµ3W¡¦p‚áUŒîoâûžAu› Ÿo©TÊñ%ÐûÁ¸b…™ja½%WÎ|ô/u2IH¼­>.6¥ÓdãrE®¥ÄƒÖ"œ â5=äð{]ÛÕo~„QUÒ~ÄDÌ%ˆð*ÌýiÎßw à<¼ úÉ{ŽÇO’[˜Û K·S|ˆÅCÁ¶°w·q€ݤºï r è±ë-IwpXÉ>9èr¢¤¿b •%_ñÑÂZÔÑ]ÖöÇ „ÃFáWÁŸa%È•¡d¹.+ÿ`õ|»´¤/ãDáŽÊúôéáaM„¥N…ªôÓ3áRhŸÔ ÷.îb€ éc[éJ ?wŠë kUxYÇgզ˪J¤EõèºZf”‰®†u/”àèŽÒä½/=v¸ ÷Œ‚B&Léõoý$v`ãUÝÇŒ#³ ’ö—Éß[R^E×–"ÓÁU)Ngš°n·•Èr=Ö5t õ"ÁšÜE´Ù—ûÑ­'ƒÏ‹Â‘Ò„ÒyŠz)©?]h™"à…ËdUó/ò EZ\üÕæ6ªR6c”–±ç(tì}¦ñéÀ´ #ìþ›á•¤ä}sFÔÙÂåi“¦þü©®ÉÓŸñ³°åEœ½ bñ|ï)ü|xxq‰gL½ðË£—1ØT:èùû›«Õ§tendstream endobj 448 0 obj << /Filter /FlateDecode /Length 3576 >> stream xÚÍZ[ã¶~ß_áîK=@̈º«h$A7IÑ"@:@’>hlÙãvl9–½3»¿¾çJ‘2=;Û,Òb0–DÞÏå;‡Lf›Y2ûöÕ×·¯>“e3›˜&iììv=«í¬**ÓdÅìv5ûi^Þüóö/Ÿ¿©Ÿ¨ÉµtA$onìüþ»'øÙÂÿ}Ý,²,›àµ=âÏ®ƒßÓQh–\½»IëùéOR±ð£=ié|×ß,Òj¾Â’ )÷îãq+Íï™þçÄ8ÖötÆßâ"^%²êé’²œEV˜º,yQ·÷<´Î¥o;?va-k£luöý«³‹9ÜŠ81éµÛó÷ëú3ü¨-¶Iû ñZ ågPÕd0~Hvÿò)XôÄ%[o¢'ái»¼¹P¯+8 \\ØÌyüÂ9º#iQðD:–œ&œ¼0E£‚³²‰O¢w&-LYä>ù—»ô–bçæf‘Ûš7LWsXRå L8/eAT]"߈ìG~ôw7‹"Ÿÿ«Óî?‹ÍÞÖ©É+7ÿ¥ô½¦ncóOA œžàŽU 3ø ãæóõYúá¬pÃRw¦•–ónøJï—šCkÅÁ]‚ÑJSÔu¸YSÉ4nGKSUU ý¤™)«òå;X™ª¬”|ÂåEž×ó%îDž7ºTþXà_µÄèO=SxÂŽŸýù$-ÎÒ±jÖT{WÛ‰üP5Iʯ É–…‡k‰U¸Â%/§ëœ$ß›”p¿°&ϳù´¬;ìºûEÆõ‡„9gUF|ìBñ@l2QNRdÚàvÅ ú5?[|äÔžñáÚÚÆšÊJÅ´hx'Ï"×oå‰u›Øî–¥iŠòÊî’fe1ÿ®Gòˆ?Ý[\,eYº¢¹¸ˆö ;yìÑúÔd×aÛŸÈ•þ$"^Ô !“´Aý0l…ÙâŽÒ†Yã3ñì¨T´ÞûÄt´¼Á0}µ¹ÕMÇW§•¹ ÜÝIXw”&­Ú ˜ÚØòHr:l=Evûž¢ b„iêí ³ÜíÔœÓ'Ò¼½AÛFrêY‚‰½îÀCf$i8èpaÄ~E’ v)Ï’‹…y~«W¾ 5aARuZäi#ÊžúÊ»*:­áÉÈŠ U¹€¬åG 2x–ZMð2GÑ”9 '&CVb—¨ý‘˸¯ýJ×»ò9Xxj¬²ež?€p‚ºpü(ç©õAJL)“ÜTEúi”œN­=¡sÌšùßE£˜ ­lƒ)TŒ‹ç­ ï–êzþp[‡ I¹,ì$&‹?°Ú&1™­^ºÚA'¯Æm4m욘$mFwK"ÏÍV'è|CQ‘IÀ'Z„ö½ì9ÿ¢vv)Ú¦¶SoEÒg±8ø~r ܪàÕµšKÚ„=¥KZ37ïÔùhß„úx›-ñ‚l'Õ‘½Øm…+í‘Ki®ƒBŠÓ¸ ×U廨‰Yø†´ï At ‹¼´$H[õ”² elBeêѽ ×Ð „ãÓÍË­Ér׎×zTˈög•øHP¥r±9jÊŽ+Òƒu(œZrݺÅ=Ü:h!’Ÿ‰B’QÊ¡”l†ŠwÖ8{„„(pb q$}6mŒ-&Òw˜‹½€ FýbÞHX#–#žŽöÜMÿÈ—<»ìN¢² kâ“ÊÒ;.$mX{.¾“ЄÊσ†f” ,ì(ˆWŠžŠ;¡½ËQŽòlþÙÙí>ˆåÒùòLHÆ O6}«‚OsaÆ9—éVº˜-eOò1мÐÓÄTÓ„ÿ†òú\hšDí'‹%>»’¹‹¤X2 "uêGGñÂVbz³dܸ- w42I ÀÉ3´²< `8Z\gpBRzk ªPŠßÅ:nœ‚FX›*uNì9)w›µ”Rܬ%¯î¾}ú^ôŸ&­'(ïJ48Äfž—Æfnqß I6CÏpFÃ$%j©)³R™Òë–Ù„ËÌ+;óhNŠ$:®IaÇHWÀÒ¬eaQ`êùÒ[ kJÔ >A4kܧ2eú# )M sXd`uŠ`Ü<ñ¨`¡ ÈÃVb3&‹. ?ma’Y"+ý%2dnho>=ëœ(c]•@Q¬ûЬÎ1¡E‹•f>`÷æ¦ÎÑÄsò« t©vT£°ÿ ‡² ¤Rôé\ŒlõŠL jLÙ¸µz}Ò^„‹ù‹Ûd4>8ƒdP4u£ $ þËSSÖOkô‚Åc›I`_›¢NƒÔ†õ¼ C/Û-_ ·±LQ :ïq…ñÃZÚœbsʬ[°»Œ›‚P;ÁÙ‰Mʬ0…­=K$‘¦˜1ŸÈ¯?~ûjö»Ü ¦šÿ%ˆPI·±R(JD[…%F*`í Æ-5AÖ2>h$ß’ŒF:Mlt¢°øê`ê%6³Ófb› –#s6y3V pÙ%k[T¹F+ ‰zìTÀ Ô²”ß'X½2ŽÞѯ/5j„(¬ÈW²4¬U“CãЀåjªº…ê#l[õ¶íš[È/MÛ0û½¬R³E¬™`>Þ§1󡌊áů¸AìOU+Ú V¤6 $/0µÄÄŒ±I¥~ÊÎÿt³(ÒÌE®šýÚzÑ,±ËÎ_{9EÉ3g¯™ÌÆ ¢7عR„ä¯bÅZA|9n><‘“¤5ŠØ¿å}#$`’ø13Ÿ”Ôüž3D\þH28è(ÄÇ^¥h“& ‹i6KEcçéÊ‘Bù%§¯Æû÷ôô@Â.ÐÑ×¢Ø:‡{™Ãû ‹=+YîE¥”£µãQ ) +˜ä%rØ­]ç'ã]ØÇéâÊG}ÕõÕàìF<Ålx®1Xøò˸b™´i<¯[¥µ;+Îá}5´÷ ‰a+€I×n¯ÚG .“y5þ™ÛóˆQ³Rþ>Ìèv.§$rO5zðbëñd?‚„ •têé¶;§IÒ’¶öð!ÆT•ŒŽ`»Õ¸\¶0øŽ?6Ggxi~tÂ%“#|ØQ~¨Y‘P :VMÚòEbdCÍ@•A²:uJôöFÎ瘈æõ+år»+ñ,^äðkÏ_’`¤ÃŽ^I|ØýqúdÓ…£LˆVº-æú9Ü‹Nv^é'´{T¤B”kÍzi2ª%—ºˆe§ V>öƒHàÖÍQî=l8s.IÚ˜g„ÐÌæ.Ý ·Å ·hÅÜ8ÀáÄ©7Ëcíç+áCó•|žº÷ …``otZéŽ@¬ç• Áý J4®•QlìáÁ˜ÁAJñâ„nr\o!ÌòI¬³lûnúã;„÷h'“ÄKcæˆëÊù®ºº8X…"BCíî0‰ú„zŠe­÷¾ðP×A°…‹Øv .…©%fŽå¬Ý?j×ÑzoàŽ\? RRB+g»‰I¢»²Sñ¤i3ñŸþýøW·vÉXrÏš„«®†–§± â·šü¥CLg`&o2æswr*dIœ[§L¤•jw‡¥N´±†ïK¸S2Mýx‹>ª \‚ü msyçÅTeæ#É·bÄ|ziòÆy ˆÞžÀ˜ÒgˆuRA• ¾ºñÜã46¼&BA!ìºõß•ë;ÏWn-¯ÕpÁB–˜}IL2fL<øM+4 Ž×¢ß“€,ÏÅMB¨Á KE>“‚YÜ«+zägýMùÓ+!Diz?®…ïî´.8šHcA0.ܹK?a°ãÞÿÚõ" {Šâ¯ÝüKúb¡Çrþu¯7zã·i±ØEÏxÿA±œà4w1…)W.×çFzP4å/HŽÛ¡IpåBAÝÖÿäÛ¶âëiIO.ÞK®œø3tìƒü fÅiqÐÚ]†yO~$)¹‚¯HQõÀ%zÃdÏß>îÈ/Hàï»Âö“ ïÁm÷ÐÑ1X:¿Õ«mPMt }ç.­rÍòÁ•tÆÉÒÅÑ)Ô‰©ÂM¼D!pêÀ½\ùCÙðsrr{pÅd_}ÿ 2Ÿ[Ðn¹XèK°×DE„‰nÎiïÊ à½{r8¬ß_dè¾W•ÅîÉeé%â«lНÂTn­)Ç[Kiìl¾1if'góÙäÏ”µƒ'YÌâAœ[€D/¿‹BWÌ“Â6ñÝv 1œŽŠ?© ŒkWǤ¤j¢çšPh# zûôU¶EV¬½È¸«AX¦6°dô) €úã Ö^V7LOãøùçÛWÿºx‡endstream endobj 449 0 obj << /BBox [ 0 0 504 504 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./flexsurv-cumhaz-1.pdf) /PTEX.InfoDict 237 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 239 0 R >> /ExtGState << >> /Font << /F2 238 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 10128 >> stream xœíK¯-Çq¥ç÷Wì!9àq¾“Xp7   ¸IÀ0d ®) ¦|IÙ¤Ôjô¯ïŒX+êÔ®Ú‘æEÛ3tt?îWíʪ̕+bÇǯññ‡Ç¿}ø»Ç¿=ê| åÑó[)Ë[OÜã[MŸ¾{üýãÇõóÿúýøÕ×Â[áqþûõ¯þöCzKõñ—¿ùí#<~÷!>~½þ÷‡QžðøŸzy+á1ú[ë”&é“Ñx‹E¨¾…v¥ul4Òjjo1\hùNJµßi}·E]>éBQŽZiÎ;­£]4ßR¼Ó õm/”ÞfÕy¥uÖ…F³£Iª.Å·<}êÍ£ü‡O©_©ðÈÊ[ŽwšÔ¦O}\©¾•.Õ·Øî4åÌ5ÒñJk„(…+õ· #½®¾’ïT ¨¥+ ¹•z¼SÕO_ÿu^i¾ÅÊݧVï´þ.ZWOô©… ÅÞ¢|üº¤×iÚàúr.¦·¼Å|\—ÊØaé>–ç¯p`Ï‚ë¨wŒòŠ­¼Â¡OnrƒÞp}±\·ñ œrL½8n˜qYÉe²Á!“Í{½cÁÅ5u°oXå2Vìáv¹¹ä›¶ñ‚Û[nÊ:aß™½p);^3C}Áœ¸å¨cÞ1G`Ãuî¸ãxïÜñ}†ÌÚ[NóO™<Á½íxÊoyÌ;Ë‚˜ÉsÇ1Ê?¶,çë·A^×Ô–×,¼áuµÇç·Ñ^p”©B¸¼¥ü‚&\áµâ¾âÈ2«ø\eµÚp“äΙãû[®/¸ˆpËŒèóR!õ%H–YbÇ#l8Y]7¼îׇKÝóH;.ÏÇk\y¿'ŽÇ•›áñ6ú î¼^϶ã©óè z¾sЕãÆ:Á Govœ¶œdbÜòÌ;.:_ÞxÊÂ/\u>Ùñ¨wN\c:Ÿû¼Ô@~Ák‰dïËýîr º’½à¡×C‰:îXæÃ'l bI¢òïœ!ÔcÁùôYÕâ ï÷Å­¿àÊëu±¬g7n"£„›^ï7îX¬cé²yų“åz¹ñijq r`[Öã¹²£ðºžË×m‚õ®êÞnËKÙn8ëzäsÑùæÆâ-Ö*J}ËK¸Ü97|Ÿ+çwÖïsåµéÐë­®õ|¾à*ÿ'¼qÇ~ ‰ð¨wîÔ#i-ür¿ïXÖË'là“,ÜaÇUן×ñÖ\å6Y¼ô”èm—×ÄUÒ ^óAR®ò½Ì„»œø;7è‘T¦D}®ØÏº¼¾¼à¡WÒZd=ò¹ªñyè|¾c™O]–ÈîŽös>ѸËŒÀ²nðu?=__5Uaú°,íëˆíqâé )F¹¥ì Äó$žÞŸ<=!ÝÙˆ§'<ôñNOøëox޾ýùÅ9úùÛ?üÕ_wÅã›ß?$Rð¼æ§5l"îÓã›_„/ßüáÃß|£ï¼©h¯ØO¯M¿üµIâ^ùôÚò¯]RdÝjï¯m¿üµyé¥PN¯¿üµe pk§×Æãd!ù´–ø%A~`**¯Q“¼‹ ÓåqÝ3‚NË\º–{œxz‚|ñµ°'OOàGÚÎGpþz§ïôÕé«Í­ ƒ¹—Âöµ*ò2ÎÍg¿8!Çæ^HÛç%;? ïeý£ÛÝúɰ¬m·&ˆðäÿù èÿûþJW”uOÔ×:¼ß|ñ_Ê®ãñÅwúùññ÷úî§Ç?}üù»OßÿøÝ—¿}|óë_ø½£fàâ³úÆ¿úóë­×;ÿùÓÇ?}ÿ¿¿|¤º>åñÏÿïÇŸ~w¼õçæJÇZÂZãåo[×ãgäJåbÏ•j”ÿBÈŽz$ÙÑׄ\©Gµ{¤ÙQ—æôH³£.•àS!;êR}AFvÔ¥Þ<Òì¨K©{¤ÙQ—Úô©Ÿ†KšuH³£.¥à‘f¼\jɧ=Òì¨K¹û´6¬i†Ì¥BnÔ¥ÓÕCz /êÒÒ‹iNÔ¥5K8¤ùÐuæ;Kõ©4ïæœ¯WGÕ% ˆ»Ô«GMzpˆ‰Ou.Þ`)>jÊÓEMx^q"ÃÌtçg€Ó„ÉN5Õé¢n7˜æÅrÃf)JXež0JÜâ“%878}DróŽ3i®q°†Îî£&5]T)ç¢&47¸äÀgðQ·º.j"ÓEMcn°5…¹Á’w8 /$/]ÔÔå×T¶Á%l\Ô¤ågðQ–œÍGMVzˆT¥‹š¨¼bfiJ5IyÅÄå'„š@sQÓ“ÕGMMº¨‰É Ê€ú8£‹HIº¨ É Žé£&#]|>uÄ*³Ç'KDn°õ®%ÆEMAº¨ È ÊÅà ’Wl\ÚztQ”‰ÑÇ}Ô”ã»%ô4á袦7Ø»?Ú`M>jšÑEM2zˆXþ[Úaß †J®h©e¤7¸¶¸.jZÑEM*º¨)E5¡¸Á§¯pAM&îpú¨‰D‘Ft1?}Ð5…¸Á<}Ôô¡‹š<ô©C5qxA1a&0ò†>#oè3ò†7Žô-2oè3ò†7f^Ëò†7.ÌÛ2oè2ó†>#oè3ò†>ó|:Œ¼áŽ%oè±å w,yƒ7äÝ-oè3ò†.3oxãs¼å ]fÞÐgä w,yCŸ‘7¼òÚ(è†ßò†>#oè2ó†7.Ì‹2oè3ò†>#oè3ò†.3oè2ó†>#oè3ò†>#o¸ã26̼¡ËÌúŒ¼á•w¹–7¼qÃõbyC—™7t™yÃ+熼¿å ]fÞðÊë2¢>-oè2ó†–Ë0#(•1õÖ¬•ÖßR§†°ÿ+HýŸ¤NOaé3 dv–~&Íaé'’pfz%<¯ %<µy¥(rù(áñhÜ(‘PÂóšPÂãQ unî_SK>õx¥Ì3ˆr¿R‘Åé(áyM(áy&q° ç%!,}!º«–vHÃÒêpí ,}¡ ÂÒš²¸YXú™D©U÷½jç%E<¶â#kD\,ÓGVí¸X_`„yÖªv.˜0e[ÕŽƒ¬ÚqQ«v.Xh*¶¢—Y´³a-Ú¹2M[GÑŽË,Úq™#°a-Ú¹r£)ÞŠv\fÑΕ;M¡V´³a-Úq™E;sÏóOšNY´³c=_–¢+/ ¢€÷¢gŽ2Iz/Ú¹r¶¢!í¸Ì¢ kÑΆµ(äÊfº‡{f+Z³¢—Y´³a-Ú¹rãͧ÷¢ —ü‚MËV´ã±í\8±ÙŠvnišeÑÎ3¯íܸ<¼·¬bÔeíìXŠvnÜh gÑŽË,ÚñE;;N¯ØLõ,ÚÙñÌ;fQ‰Ë(Ú¹ñ´¢$í¸Ì¢ ¯¯¢íìXÆûƦR+Ú¹qµ¢íøŒ¢wš–Y´ã3Šv|ÆùôE;;–¢Ëzæ3Šv|FÑÎŽåzq™E;;~:ž³hgÃ5½àÉ¢+Ú¹°x¾PÔ‚¢ŸQ´ã3ŠvnÌŠe+ÚñE;;–ïã3Šv|FÑÎÙÀŠvv,ÁŒ÷-£hgÇ¢o³hgÃyî˜E;nãÅ¢gt0±¢7!l÷ÁvŸl÷ÁöËõè3‚í>#Øî3‚Y7V3ê§#Ø~å5Œ(je°ÝgÛoÜdþtÛ}F°ýÊk˜x<¶ß˜zÈ‚í;Ö" —l÷Áv—l÷Áv—l÷ÁöOèe ¶ûŒ`»Ï¶_YºÒœ‹v\f°ÝeÛ}F°ÝgÛ}F°ýÆzÞ‚í–a§¢ k°ýÆk›×Àl¿ñÌF°ýÎE‹ ¶ßxF „0Ø~ã¢Ò#Ø~cYf5„`»Ï¶»Ì`û×ý˜OE;WÎÆ8Û7¬óÑsÅx2Øî2ƒíW.²M‘óÁ`»Ë^ÝΚGYO r7ý M¨Ôj…×¶s¾,jÉúñ2 _ö*ÔÏ—4/þÇÑhÜj½§ìã*Ê_ý·ÇgÔÃØ;Ä(3õñù³ß!K`ïžÞáõHh<æ/~ó(ò%Ã<ý¨†:Ò#]>aPÅI@ýšƒø1»×zEVë‚®AÝ!íðû&ÍékÁêÔÂÊ5s ‹ FD,±\—¬¦¡3zfiä ‘;”#K±ÕÐÈÛ—Ù$ ŸÆ³%²ÔÑþ#¢=HâN}4rc;YYåbÂN¹’J$º1r•dKÀü‘e<›¦¥uþÒ¼*ô{Ì2žòxC$<€4öàÊ-ãYU‰èü‘e<×ãRè§Ç;µ6ÕŒù#K~n¯u¿éü!˺pÓºßtþå/Èã;¿"ã¹_;=mgS‚æ–UU]ù£ Ljì™(UcC” Ór¬L¥óG‘ñ”Ç'æ’tg•:m$EÆsÏÎÎqEÆS¯PBENt×G?ŠŒ§<>¨Dd<›*#?ŠŒç:ŸRŽ®Ç+ã)ÌEÆSo˜?JÕ¥Zn‹ ÖÌUZkœš1‹Œçz|‰í…Xd<×ã’*Ôã•ñ”Ç+æ)'ågý‹Œç:Ÿb;Óã9Ë’ Óã•ñ¥–XŽ(K-”ZÒãŸÚ$0¯ûM#?eª„¨óG‘ñ”Ç'æ*ã¹ìçYƒf2²´ ÊúEs¬˜?ªB» Xô¡m¤Õ˜Ú†×ö¡m-”¦m[§QÛ¬¹Z‡Ú&GfMÛdŒÍ¡m*µ‹i›†{ãÐ6ƒZÇ´e¨m––AÖдM2 $µMÁ½ph›Æ(—i›NífÚfRK¾kDßµM„v¡¶ÉÔïÚ&‚‡µziOÚfðõÔ6ë44X ©m"Ö¢CÛ$¬ ‡¶)8þCÛTjj›Öh¤¶i\›MÛ`tÒ6ì4zh›„µîÐ6…߇ڦWœ/Ó6ZÖ´Íš›µlôMgë®CÛDŒ§i›Á=ƒi›5Wëõ`Úfm¶ ´ ´Íš»ÇYÛH!vÝÐ6°›ÚF†ÚÚF´S>i ¦éZ m#Ú)b^…1íÀ¬ýz™ž?jÑRÔ:Ð6!p-§¶Yo;ÏÚ&Pk›¶YCím#Á1hh›Ð ¶ k±i›`Z€ÚFZUêû•÷¨‰>ŸÚfÍ´èAÛD®µ¦mlþ0mc{Ó6qòø©mdmÐϧ¶I¦¨mÖ|¢ãcÚ&j'j›DmmÚf­ m“hÝ1m“&´­i›q?˜¶‘äèYÛ¬ùFϯi›\°74m“£Ô6KËéx›¶YóO?k› =MÛÈü£ŸGm#­Àôý©mJÆ|iÚ¦T¶:¡¶Yó‘^ߦm ktMÛ”uÈ´´â‚ö¶©\ëMÛTjKÓ6•{Ó6k~JgmSæ{Ó6²Ó÷£¶A—€wmÓØ Ì´Íš¯*´‹jÑŠx=´M²ùŠÚF‚wø|h™ôz ¶I­óø¡mD;b퇶‘iC×CjÑ’Eµ´M²ù‹ÚF¦©mD[ªö£¶‘iF×[jÑš ZG>Ñšº¾RÛÈ4 ]TÛ¤Á¨µjO}=´LSÚZ‹ÚF´¨ÞßÔ6ªE¡uTÛÈ4†ã¶‘`âYÛˆ6Ð6¯ÃcŸËé8WP<2“¾Çr¤ä÷=–3¸ƒâ߉±œ€Ý.c9Ö*zGªaO¡œ­XÕΚŒÏ Œžâ8kjΧ0ÎB4„Ò™GЦ²«;ZpBçL3kAæE_P9³Y?R9óÐ4ªqfï¦9µÚ Ñ(œ9(Ð p¦Åš oć$µž£…‘¨›0›™º Üšº ™¡º ‘ž ª› £º‘úYÝXnS7Òu‘¨›ÀÙ×ÔÍZmÂYÝ,®guY2u#;PÝ65u¨¦LÝîMÝv•7u¨¶LÝSCT7‘†]S7ÑbüT71RP݈Gì¬nbbdƒêFVC=^ª›h‘$ª›Å, €º‰…Û¨n¤MŠ/ÕM¤:6u#-ä n¤qðYÝ,îgu;vz¦n"g?S7ë´éícê&r52u'ÕÕD&õx©n#G¦n³ºI¦¨nl7`êÆvzT7jÍR5u£‘NËIˆg!eìL©n´1- TÝë½Du#÷®ÞLT7ÂPP7²ÛP5Iu£‘Ó“ºÏ"EP7êaÒã­ô Dæ¨nhí:Ôx– ÔLÆnhRAݨ•ë¤nd7NêF¸žÔÌ6á¤n„©v2vCôRݨ§é¤n$²‹ÈÔ0Ô$Ôî–T@ÝDœ¶CÝh$XW_¨ÝMÔD†UÝRÝCAÝÈn+BÍèD­V.]Ý¡n´ÙÔÏ€G‰‘eª±^Õ°n†©nÔz¥Ç u#¬9=ª™€¡Æ n„u…¢ºÑH5ÔŒªa]¥¨nd·§ëÕ°®TT72£ëZEu# uu#»C¨¨aD‚ nd·˜NêFXW,ª‰Œ#ru#LÃD+Ò¥†a4÷Ð0œ “q¦Pc˜†áŽãÐ0ü•CÃ4®éïF‰Ö–f\4 45L Œ¸˜†±ìŠiF c¾Ó0×ï¡a ³I¦aØ úÐ0Ô¶‡†i˜s Ó!2 Ã9êÐ0ÌV†k i˜Ì “à4 “¸Æ™†Iü1 Ó0ÉŽŸF²¡ª‰¨aÖšà‹€†I ãyhîH 3p¾ Èi˜Ìl¤i˜™ý †‘ÁYÃä#"­™:"Ô0k˜tüLÃØkf­¡ª‘MÃäA@ “MsPÃdî LÃHvHŸO Sxý›†)–Ý¢†)™Œf­qã¡‘» Sèû2 #kÖ)û¤k”~5Œd—ôx¨aÄÎ{Ö0kÍADˆ¦rb¦‹È@ÃTjÓ0ëk ›C SY—`¦ËNA쯙Ϧqv5 Ó"³'Ô0×£i˜uZ ¨aZ¡æ †iœMôfh˜Öq?˜†‘ˆ4 4L¦Y a:#¦aÄÎ  #§ý¡‘+އ¤ïÃò®a:'_Ó0R䩇fËNAÃŒÈl5Ì0ME 3¨ÙMà FäMÃŒÆì5ÌàöØ4Ìàƒ˜†tG˜†™Ü㚆‘™h>µ|ŠÐÈ´^ÁÐ0²P!Û #K²MÐ0²éçSÃL¶#³dÛTó0Bc¿žešÀŒŠEh$ûvÊ>%Û[„FÖ ýc||î—Ï»2š§í¸·£yÚŽÇÜ0›£íøéûÜÍË|Fó²×´c4»qzú­ £¹ØŽGØpÒXä륹׆gØ1›{¹Ìæ][ó.—£×\®ñþqfs´ g3E°¹×ŽgÞ1›OmxÄÌuD­Õr¶æ_>³yÔ•i:8šylÍ»\fs.—ÙœËåŒÀÉ… CÞÖ¼Ëg4ïÚqë{fŠÊa4ïòÍ»vLSÃúÅïÌ…HKjL»2MÖükdzîÍ¿|N0A\™Ý]æ^.³¹—ËlÞå2›wmX›wm¸½âÃÎæ^·€æc¶2kîµã–öÜ·œ$"zgš’¬ù—ÏlÞå2›s¹Ìæ\~þ¼+³9×Žç ® [s.{2SË3wþòÃ{ó.‡æ]kâ×Àk¼³â¸Eó¯ç¹g5½\9±Ášƒ]¹Ð2`ͽ\fs/—ÙÜËe6÷Úp¯;>L@.kÊþÊ4 žš½f6ïòY#Fwôj²y—ÏãyáN£µÖÆœhrdó®—°ã “Ó•Ù"š{ùŒæ^>3E=³µô`ó/Ÿš«]™&WuÿÝÙLÄÍË®“•Q«7èÎ-aØ\Íç¡e¶7žV†­‰¶§l-hªžï³°$á—Ão,ÍÀ`™©ZÆ{c²Xó4—Ù<ÍgÝÜxé]¶¼Ñ^Fw®,d q¾±Xr`Ö ‚;31ª‰§tçÆvÒûB›¿]¸ó—£$5ë f©‚$¦d<¯<𙆵ù›ÏR›ï<»Bió·-Ëç]XòsHÜ uKß831&±Œ\¹šÅ"j½îå2ÑÄšËùŒÆnW>ŸiQ`cÚ/#l´(d¤rhQ`‘- i%ZØžÅÜ—ôÿæ B£45°¾ïGG§ngÑ:j˜GÁ ;Ì£0¬¢„îË`ÝÏèQ°PŒyªmÍéQ`•ðá¾äÐv¨8yæ“G¡³æõÝ£wè»G[%z ë|Í£Àš+ó(z[Bb(Ë< ¬ù:< ¬±4BµîmæQHÖýŒ…ÂrzZö(XãÀ–y:; ˜G¡ób8< ì£{xÒ³GAîÔŸÀ£0:kRÍ£8ušûÒ–Ö›ˆ;óÜd²»Ñá¾ ”.æ¾ä…l…`ÝÃèQôlîË@ébîËl}?áQ°îyæQˆt‡îKëæfîËüTo"ŠîHz¤o'< t_Fä`÷ea½ = ùXzàQX_³Ÿ»•„­Ûá¾d ´yJg÷0s_«‘¥û’nÒÃ}iÝËèQ¨Ö]ÌÜ—žs_æÓÒ0ß»g™G¡={dÆóÍ}Yli û²™gîËÎ¥ûp_2}¸/ÍCaîK^_'÷e¾¸/ÃÉ£ +j?w±×9Ü—¬É>¹/Ñ1ÅÜ—5¯æ¾´înæ¾<êKè¾dŽýp_Òmn…ÄŽ ‡û’(÷e…Gép_õ%ð(dÖ'îËL€¹/Û³G!ÏgBáõx¸/Yv¸/éa2÷eµ"t_Vë˜aîKÖîKÖ€›ûÒ<7æ¾w%< t_²ûá¾´úº/{BæÎÜ—ý¨‘¥û’µ~æ¾á©fV†%œºéR‹Zº/YGiîK©w<»/'ÝŒæ¾ö侜<ô(vì1B`hÐ< 2lšó§G!rëkYÕ3@÷¥Õä›û2Z‡º/óˆæ¾L¬Á6÷ebhÏÜ—¶šû23tjîËL)bîËÌîŽæ¾,ìÀdîËB¢¹/ =0æ¾,ô8šû²²:âë‹ë”ÞÅïo‰GÇÛ_ÖN%_ßüðø ûÉ>þñ‹o?ýñÛùê÷_®øñÅúË—ke}|ññ§ßýã—_þöñͯýv³š1¼fÔ8Æq˜@=L¯^†/ Ú’áx!ðù…¥‡&tÕ´?óÄD­¤Ñó·üñ«ýøÓ: ë||üá»?­~%§äûoóñËß8è\( |ÿæÿüëüîÇ?}ÿñÓg÷™x|‘úîûúr­é/þüéÓq\÷áÿ9&½endstream endobj 450 0 obj << /Filter /FlateDecode /Length 1962 >> stream xÚÍY[oÛ6~÷¯ÐÞd bx—´¡{h·ÝP¬m2t@×ÅVl¯¶å:qÓö×ïœCR·Òi´Ã8&ÅãsùÎ…4O OžLONN‹2œ•¼Éùe"JÅ””InrV*“œÏ“×éãåT¤{ø¬®àß5|š>ª÷ÓL)™þãj6•yúFHÓl¸¥g0y‰+q®ÒG+\%62Zù ×8˜Ñ„èþÜúÅëé›óßNN•êK©dÁl^€$_Ž4îµ ß¿žO x"’B$ªàLJ•Ì6“w–sÎÝboHKa‹pòt#“_šÉ ø K°ËzüÈŒCñ…Ʋ\'á©×fq@3ÖÓLÛ"•?N³\˜ôñžmÐH8X·vy?•E ]VŸÐÈû¹3>ºlön€ô䡺ã}ï©ÐˆW+ï3²üÖoÆÉ¶·Ýo{ôLÎܸ“(0ÈŽHD¿eÓL3 œ×DIþ憣;q£[mÁ‘¡«ÀŠ™PÌèÒY‡l‚(¨‘/ìð…2‚ØÎØtžnIlGæÀ|3éK¢}<­?ÀdG/opK½Ek;TkǬÖ4x5-tZãÒ|k§ ®ý>¾b dQ€KaGã… .¨=Z1¥´†˜Ò­ÒÑh3 ƒˆ ?ĸͤDÅ¢dÒ‚k²Õ »êЙàÎÈTnÁjè“*x½F.ÛÏ@‰A:óàûøŸíoK‰àjæÌ.ÂæUì(á²Áí7[Gí8¸Õζ4Ý-²]ßÿ¨®Ë!ÄÀ9G +ÇöÓÈÉ©-!XiŒDãf•dRIïE[ bA«ô9!x H¶jzªì››‘Ö µ^ä.Þ‚­3lõÝã ð¥›Ì*äpUÓn„¿Mq<[Q` ,¤È¤Õ'’Ç%• @gÉ!‹yLœ÷ ^Ø>¡”¬0m>†`42 /$w²GiÒ-6Drá)Ö-Y}L¾eÞÑ\»\ÐÓ;$-"˜)@jí!"ÝÎû¨¹‰ê'õ•£sÒ¨ ˆõÃñÿ ­ GX»:¹t‘'”fâž"ÏÛ¾¬.QÈ¥-³e›K¢–‚\¢m NŒ ñ&ÊUL¨Î¨E‘þì¾|Ö<– çÁß2Z&˜UÖmâ1Q4Ë!`zT¾-XøT’“¿·Ã@ôØ_…2@W´‡jÝ-ûpXù¸û‚E^°²PAå}ÜE—”ïgÈÏM§ ¯*ïa9{]†ý—ÀOBßf´#}«3¢Œ*t„Ô­î%ý˜OŽêtT?M3aó¶›I–yO2áp÷ÐÑ Î~Cê6 D5µ¬´åWiúWŒMÉŠ.Ðnc#GU6à2Tn„IÔ­Åö°O0Lˆ–Ý?Q2þô!ÿå­(þ* ìc, ´Ýf`P"ÂbÝ‹ Yj¦9H¨+|þŒŠÝ[LËÔl¼ÇòÈ#e5– hÒ‚´íýp…_¾$PaÏ\s= ΛEM hspI ‰Ÿ…îu$ žB?å;jj×dnºJÕݽ؟%pÛ>Hï2ÞÜQ\{f^¼eG¼=¤ÂäÕt„N+éš]JÛƒú^wýÜûÐe÷òºÏã¿7ë©WrÑìƒâ]Ë7lëwSw¨BKÃŒ5 -ã¥uþüH-Êü¿LòkR`15ž`»©ÔÔN¾:Çcçë7<™Ã§˜*‹ä†7‰æLP쮓38µÒétÜC€X™‚ip³³YT0Y2Á-h¯¡V]> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 452 0 obj << /Filter /FlateDecode /Length 2740 >> stream xÚÕZëo¹ÿž¿B8ôƒD¼åkwÙâ ÜM‡¦=KT–dK®Vr’âþøÎ‹\îŠvÍ—°µ+‡Ã™áÌo†®&÷“jò§?ݼøþ•µ]©P=¹¹›´zÒøFë'7«É›i;{{óçï_µ!' Ni푼šéé~×àÏ~oém6·ÖNàqqÂ?û5ü=Ÿ„fÉÃû™i§¤?ËÀ¼Ã—Å9²0Óýq67Ít…ßìd-¤<Ü3÷[™¾aúTÚãZÓ|ÄM¼¨d×ã-Ïe;sëU[×¼)æÇ28MÛ8oq·ÛL†3ÊÿiªéñŽiqÅõI·‡\TZÄy8Ox/jÅÏw3™/c̳šþôWøò~Æù¯»¨9Z”¶b*x¡ÏJYYF¾ðüú‘$ Ót2ã°ŠSàË*à‹Ái žXª;QÙnÇÂ’‹$Ã’(p5[M”mÄ=nwŒ‘i±!ÏÊ \Ø-h¬Q>Œ¢YWv¶“çn°³Â–¼W&¤=EtéÍôü -ù(²¬¢Â(¯Eë. »OÀ](6ý+ÕìùKr3#míø‹jæšAàê -­%|;áÙÓ9<,K‰d¤grs(’ŠJjUðÉ·.¼‘^ ”…œöÊÖƒœ–‰ZX×8ÕêÄô\Zlܘ+wà½èË+¶¡%žŽ‡¢ö ÷CYD6"¤~žÒø“JÒˆ›TôŠž¤ŒI/™-¹ ÆÌC47|¹»vT¨MM³q³ hÚÔ& LeA¡©hZÕ ØÜ*í]¦8P;­ÍdÞÂù´ÑL<½Ê¦;ÖF¨Š;ÞÀÉ*[‰_ËfÃÐ#¼‘F—"³ êÐDªßÍæºn¢\Cvš·÷ütaóŽ’lµ¶u´”WÑe‡Kƒ&šIFºº”lë“ÖULRðÜÜBWyP®m”±"‰eîv~&Ïz7£pNcîLE¡VÂ{ Æ]Y gG÷-…Ö‘«#gî©7ð3¹0%‘Á*£AÇžs&¥A$û ³#‘î§œ®ðoŒ¼ƒ´Š#+f½æ#ã  U4ºÀó÷€K~D‰_Š'Êf¡¹Û 8AÈàBÛK&ÏT†ºÔX€O†]0áŽ.o> Þ>›•üº÷ÑÉÔ+;um\îÔ%Fè…f¶l¬ îÚ•G™TÕ­eë—wl=½_Ÿx› þ g"eœ¢o¶ø ²Aºb6¥H&¥ˆ\A&¨Ü³!9ßvl˜ÞVê³@ãü c¦,£¯qŒ¬àóý†í /6Â+ùE¶ Žàȃ#ÿòB¤ô• Kr÷3ñÞõ¡gùLJòNU)`AiÿyªÊùÒ@âʨ¤ËUZó³tnC£àdWÓ×'N(e{݈bÞ–MoÖ’ëDCMT2ÁÁZ¦ZYSÏn‚âÁ¡x² ˆÉlz±7Ðß]â¹ÐiUsãztÞöâáûbî…ŠÚ¤L¥”æj£CÞóš{?ý×:Êv¤è!‘Î7,)à=ïåæÑfÉÃ]9!¤Pͱôë«Ql¼Žß„­’Úáù$pþ!…ãÅ™À(_ˆ÷t¸($¤8N×k,š ŒõÌÚ1å!v¶…žù<ö18+Àü’‚ŒüyZÆ2f‚w‚Z_2ôK»],qÿ›uÌ™ãj ÛYìH#Yï6²¾Ç¡!¦#ZÊ©–lOã.·Õ©!á’NM—Ü#cžEòü"áÍ&Fr+lJ«ÛØÖ–‘LÇÈé¡Îêj’÷n ïSÕÑX5ÑœM}åhƒÆOOÄ»ì…N¶ÐØò»SF™{¼ÆNIéÄþ˜9Ì~Èo@(ž#'èòã$Ù$ó+XäW¦æ=<Ä2 †P)‹î,‚²¥2øÃÄñ²ež°¿Æ(úœCwÊU[vMžŒdÜÕð½FNxŒ‹F -0U#ta“³ŽuÂ0Tš¶U0Ú—"ÃKؼ໢B¨t¡­AÞQym-$Â]ÓןjäAûÉr»­ Ý¥Õ—Ô"Â\5 ÔØ(ÈüÌ[RðÁ \°ßR@H·T%z¨%²Ì4%ÆX|¾D¾|ÈKš¯Û,ø2”“ Ó ;­åa×I­…Ì‚36ÀƒÔ½"§Ú 1s-¡Hï¦I·ßäÀ4NÙ¾ly‰¯¥®‰}`‰%E'dƒß-Ôò¼¤PR%æYœ½<’Ež ¢¬½òm¸N+›þnûª¡•$Ǿ›e¹ýIyè>»§¦~–D½3iü#dMMœ1p÷HÙņ›¬“±½za30W°›­œrÖOf¹øY6ƒ8áC= ±£›aÈWVUˆ¿ö‚øZ’Áeñé©Ëâ/¹ò-Þ0ûgîþäÜ…>Õ°Óó:‚ïÕVDëïê:À¿îÅK×å>WÚ¥ ðã.¯ã)Þ=¦ké«€<®‡‰+† ct‹§¢žûK”j±’³@#RXÀ3aެ“!·zõý¥|#ÿÎ!ÝÞâ¸üT?ýëSIe¸ûB«˜Xª:‚† ÔZ…)ÙÔxYµÏÀ1Yße]§˜ÈwbôBs‘=©ˆ¥ úŽ‚åýZ þ;(~þñæÅê€6endstream endobj 453 0 obj << /Filter /FlateDecode /Length 3469 >> stream xÚÝ[YÜÆ~ׯ1À…54ûàGl!Šå$H¢lÅÜîìDs¬‡³­óçSWäö¬dÉ~p ̒쮾ªëøªºUÌV³böÇ'ß\>ùòEÓÎT‘·E«f—×3ÕšÜh=«Ë:oM9»\Î^gÏo.Tv€ßz€?Gøío±¨?\ÌÑÙwðÞ-.t½7¤ÙïžrÕ_àãÖ<Ço“}³ÆZê¦ÃŽÖÒàˆ/ ú ºî¤òxñýåw_¾0&ž¥ÑM^Õ ,‚æ×"Í“BV5›[«fsSæMU1Á‹‹Æf{˜­n*šR‡«yƒóÚ㟷XSfÛ=<ël‰KÛà\`º-iÅ´^î`Øcå°‚´ãb ¾ÖÓ6Âl¶Ý¯ö"sãVYÿƒô×M;üwQØIVøç©,þååì€+æ×W°ð×ÔæëÇéw̸¦1ζÀ¸Ö1®§5̲5ÊGŒL2Ý ]åMm]º(šñn¼ÆE(f0ÈMq…k|{¡™&ìV]åeifseòÒ¶ÜÙRܳ@tü¸I”B¦-Ž,jØç[ ûRÑ¢žrËnK´¼á6‹nÇ/WÐ_…›Ecá(·~—Þɦli{ú%·èf°Õ#ý)MÞV°›·æeüMDx¤hM^*¿´Í‰Þl®­qD¢ ¶˜jÖï'(i LË+S3Õ™~jê«‹¹ªj¯\“™ÕMÍ ÷®n²gÒ±‰†WL«t^É–m…ªŠ¨êÜBϾâH,v$Uh”4³˜©+$˜+•ƒèÌæ+ƒý+1¥y‘Û¦2EbItëÄ€:oÏÚgnJåh/a‘:WµaÂëwËÜ–¥ëêeš¥EíW÷ERnèÕ‘ü=ÝI¥íGIŒyTbÖ©ÁÀ 4*–„÷ ¸<¦ø&GÕŽd•²ç`@IzS7Âì“ø2¢Öh¬ia*ÊîB)i:êç’«÷×\îléIÓÊj`k­úålÔ%ëLÜ¥:×¥Itù[|Tü¨Ýã+.Lm8¸J[·Mí8ˆy[Çã=K³,·U5áØx3a}Æo7ûwÚÚæòý`õi«Ä_bí€6·‹Êoz~¿e€í]³±«Åê³ÃE²ÃÛ‹²ò–&‹½¢p$VV¢Î+4±Ûùµkßx;pÇl5ÙSª¡à'38LüÞò.‘7…ê"[ïø9iµ¸# þãËÆcvîÜä¦û‘ ×’?Ù:¥}Ç…WäÏ@ËöØ÷4%?YRæž`…Q>Tæãþˆcu®GÌ?/?àdL«?jÈóÎè •ÜF CÔQžšQ¾HO݈™è¹-ý`Û9}Ï ÌÂzŠÂ²6ö'En™*["÷oýVí–X\2Z…ê½è-î.,å¢Bº gEк,Eå†UP.~×¾Ü‹Û XÚ`WòòFD–F9É$XŽ™pI0Gß-FÏ­RÙKÁÆU3ÆÆ%lVàŒ)}:Éu€Ñ²–0W™ßBL¾;€)h·Óc³³ Vc›;¯G6AóÓúÂ),}-¤Éµ#ëÑ‚W 7 f“à^ ó†ÔúJ›«ÂkœÓnb}ɼê :º½Õ_G3v¡µ£P>i…[Ôò°Î0 ’w?’Ì,Ùba)Y¦£ÄJø±ëÙíã€W^§üЕç÷VBÎëÇ"LðšeãI.úaPe›ñ¶ùØÒè2{.|؇á¤#ºòÛD¦š­f°ÒÙkxÝ9fÑêIXðwϵ4 "#ÙÖ^:ð1”¶£Q÷( ƒ8Lb¼spì}Ë–œÝ©ïç-fµ~{üÇ*Z¡“Pàãˆg>DUÙ“{Ú]ùpE^Èd« ï}φÁ*ûz·tØq`/’†UƒÈ¾šÃV·Ÿ ·q¬£ÚÖ$ƒaì|^APõmïÐ bîUYà5÷ª»FlÖÎCÞ3/ì*¦ë·Ûz®¸ªÛŒŒDYƒ?©ª ðGG1ðµ ÞKLŒaØûÍ_¡ð!â–|Mï2Cëml»(P–ø¼“)ñµ””üyïä¯; Òd·tm XMš©Â·«¥NDü!Ú­hG .r-¡ø+ üýżԜI8’Á¥Ïß¡,†šÇ-¦r‰™­Ø‘…¿ãŒ{éņ¹ø?Š@¸”íqÄ‹8±ÄÎ,jø™Œ¸—'™˜3•ŸñäPÆ^Ëß¿§_B#ޏ5ßÉ:—aYÜå"Taïüʰ",jágÂ\žÊ„ÂפÌ5š^ðFA‘uÐ*ŠåÐuòìi>VëÇ« ReÍuÒÛè[O¾¨“Ì9æl` hIë™1üãž )×ð«£ÄåHo'åVl‚@aq!Åuº¸}Xlé™°Ô¦•6Í™‰*)ŸN4Œ1.¯¥¯êÜ”ë°Sê2åÄ‹±O]×Ù-nÛ;çÔ Õ9ÇÝ‹‹E°jÀ+CdZÃQRƒ³{d¢;Áéõ°pš}Ä?ó‘¿:ÆO!Ûèä¼;º8©("BTŒä¡W«~8zCgÿhŠÛ?çîߤ¶=x›ý™ÂƒÓÆ!ðaâ΀¨ü¬˜œõ„Ö6Ù¥KÏZvðÎå¯#ŒÚ¸ ÐâàˆWŠšIêÌK’(Àð@›9½è@ôkNþùä'Š‚Èú+eóf\ bE¤2’A3ÊXÆØ*F×TÀÐ;«ØDqÖn•ÜýJç¦j~Qylk@ÍÍ(4z€º nƒ/ÕžE_§Ÿ}dºëÿsôu’.ãïßDóÐÑçQDö9E˜m‚ÕŠÃi:oªòW†ÓdÎñ”Ü\WªE¬6Â(F¸S$@Yy”Ù4¦1Lž*> á΀²"Z°JÌ®dÕ&šJ”×ôtr’g˜r³Žåâ¼$ Œ-r0ÁÎÀü7%{£#·ó2’êÜæºõþ±“Ó%Ó‚}¥ä _’¿2íØzC ú‡g'à;Bn§ ÈœK7Òhœô^ô‚nZã ÏqšÔÂf%µ€Žy°ÖÒëÁâ§=XóÊD®¹Ò:» ™›¹Å„±R#ô±twAÚÊÑ |¢›µmvM<Ù&N Šìy8Vçã€pšÏx›zÀ›øÜî¡)-ðð&NWA)¥€”ÒðÍéÎ pÍéÆŸ$<˜ÎÒ¡…Nz‹ÇóƒC'|@uÎå´Ä´¾ƯîŽò<·¥5:‹‹›Be_<.%’\džqߣsPø¦ˆaïŽe¤Ðc,ü8`o?ÜÅpúÞók„¾‘Àei©Š¢¶Œu2½M Þ`‰â\÷(Gz½ÇLˆú„Ñ-ê0Þ´qR›ðYÎñý–8´n“PqHp…› .Š×gˆ¬õDI¡A*È(@!Š™*È^m¼á DÖ w"«2/*ºy²²¥LB[PNïg1 62 ¨oy¦s1 E“›Iö°÷yäÃS—Æ“çRaÜíœn²Š)[”¹*šO bBQ¢Ò³P’‰BsÈ+Ç TLyÙÃþzÀ ’c­2ë¼ØãÌ6R ‡1rîMyÊ[ŽVëNȤ¢ÛÈórš§°`H¹æñŵÆ_ C¢ôIC*fÓ6WeóaA[E‡ñ&ȘÎÌ Ð¼Ø[–+’a¥÷»ô.Û¼nÍ4Vdg·t7á˜kâÉ[ÑUö×ÖßÜ ÄœWr̼—“4Çßõä4ªwç½blð~NÒƒR*¡w'c´ëkñí¶®8mëRbVÖõäÞ Ò1s¯HŒÖQç3ý@“FXã½-~ÐqG,/#aÁ¹¤²[¥RtŒ# ,Óò×0êj|3O9ÀmÄ;h¢iUk—géOîªg?'øóM®o@õÞÃAì7>¸Ù¤ ^ø W¿XìSGBºªrbz$Ô”$dŠ<$SÎ^䈫¨’#ž† ßCu*r£Ò!§1y­½1éMt Æ/ÞM¶ú—Ï+  ©CˆY¡ÂV!ŸçlzUƯ«~çþF'¤•Eã dB×S`«ª…ÓX'„Hù7 ïMa>ÔÍQH|ÖåÖ67JÇ 2[d/Ä‹x†ý;¯…sÓhi&Wg»­·t;¡x\x¡e ËõbE°”üöÛ¤hi“+]¼¥°®„­F‡ýæ´‚*FMZ.„üñ:r,DÛO,ßÄDQwGçùñÃ9tì?†¤Çû¨Zå¶²‰Ì+&eã[Š/HYÍÝîï\ÝÊ!f¡HÕÆ)‚|11%wx“܃FÅ—H>©3±ÆY¼~Ð{?(ÓòWðkçÁö²Z§zÀt  \0!So]Äàn‰k€l¦iÇr> stream xÚíkÛÆñ»…`ôƒ„Z4÷ÁWP¨Ñ:M‹¤Ez@ 8AÁÓãNõI¼’Ï·þöÎk—»ÒêN6EƒäîìÌÎ켩|r3É'_>{}õìåc&*Ïš¼Q“«õ¤V“ª¨²Æ“«åäíTå³ï¯þôòMÝ„PM“  735½ƒkõþm຦·ÙÜ=½o{xi·+ø¿ï`sfºézz@à½LÌ|i÷ãúm7›ëjºÄ‘;!„»Æñ°‘å· ÿ]® ¤…{ð¯ <Ë…å—oT^†¬Ì™—¹)²º,™£oaÝogóBã\-\ø~ï†ë»¼Èe¸'ÎÔ´ò¿‚ë²ìG¸^0ƽ€âðŽ0Óð«qv+³ûqÑBHvBã]´è¹ \ÉFW²øùˆàëh‚‰<¸^ Œ@>se²Â6,…_lC˜Þ ÖE„f1  I9ä0£Ü-þó…ü Û_„|,ä—oÊz¢TÖ…FíjVgVY¦¦3€-³ÙÜZ3ý†ìdOf‡ÿÛ½³Yä´»Æ!ü·q6·ßxö‰Tì9€”V™Ö5“újTòd ·m½JÙº£‹ ƒ³åâ['XpùŠQµ| ô|pfÞ:çð‘'ÈG !_B+†½l‚zr ‚ò^ι»fîÓÙ#¶›¼¥…& ðÀ¾øDbÞÛ6h™Ðný^5IøÃ}W,ø4BE¨¶oQ¯WÞ© (3íÖ|÷~Ä1[â©Ü+[L¿h¸ÆŠ¼dÄõ1G>ñÅ"Ã!ÞçWΖú‹OKºv~ žíg"þÂ1.cÁ`¤À?æåp.ryË\Ø`¯I¶± Dºg½&aaÊæåϽËëÚÀ9‘d7>ÞŽKâÍe‚ ê¶ùÔº?ã<’Úv7dSâS [¹ÆÌëP·½í’ϼ0ªL•X¯fµ¡ýª’E@§'¾Giá?RÍÚ»+ Ìq7¥¥øàh)¿®%@Þݱ~?™E#̱¹A\äÎXöÒ4ÚÌ9”(e³¢vIÿbVè©8ùB’!Ÿ—Ûœv3PÅo9 ®%÷êp[ƹŒBi“™Æ“dÁƒ‚ByRÕ±2^Ýú0´Êjº²ðØídl¤$޲$ ÜQ»Àƒ¹W…¶ˆc(´²>‰÷ˆhÑîƧ þP}FƒÓk—flù]ÜŸ‹ª8™¥.x$„<êV‡Ráyý¨ÉbÄ·'µ•øMtTªâ` PG‹\è°„†XÔÚÚrô¸ýŠá6ßé$ɹ“@ DIÚ$Š–òùM ïdø²v2Å—d+ Å×ðÈ;OÈEdÕ’:ç N6ÚñÙèVN}V¢Z47BÿzÒ* K0´÷%?Ï­ãe^AãA#„¢Üß;7Aïõq€a´N|ÌÀè9àuðýn¢Š •¶pW¸´ wˆ Çöà¼z® È¢òúÔA¤•ôî‰Ò(%‹¼È”õ¬þU„5“ê¬P^îdŠ D6ÓÖËô)4MV7ö4ÚíShLaQh`5Ôâ)æê¬ªë£ƒ¶EÜ+¿í¥˜,7êçaÌæ •ùÈ×\e¥‘&Wž¢e³ÊÞê“DЧP™ÖE$Ñ„ADÛ?x`gÉE%ª_”9/çaÎ{AYÆJ퇯ÁMßSL6&ÓUñ¨kˆ¸8§€<¯•ÌEéÌYÜ{Ü eÙ«R2Ü߬ÆÌv³=·±ªÈ¬)ŽÕÙœS猚èxª¬.=Šû£Æ˜‹iÈ“+kÒ¡•yV5eìÑ`û£ƒÀÀ¥‡dÖþ€‚D}íBÜ¥U¶C)' O0sÒBåœ Ä(#£Rj]‚ÿ>ÅKÎÖ- 埋p+á½’ËȽd&p-wMÓ|·gÚß´K¶¿w†C?>¿¥"¢»Y¹4®; û5µÞaDp½ >.Ӱʾ7²Ë6O‹|ú–ÀŽæmüJíM)qÌçóHgx< Ûd6O$È¥Ã_¹~ ³UY¡ŸÈ—}ˆj¥é/ÁòÙÂÄN*×kÉZš¿,‰ð›©ìt¹q}7g×Q* [•ˆwOà66oöœhp‹Wô²®u™å¹Ó#]˜ r·23¥‰’7ŒœyZV5T*Lá0©‹({‚-§rù°“{§%í>x×ïÜ_™Žk-ÍÚÉ.Yn͵ͳ#zx`}š£F——”]ùãZTgµ*b<4œR+‹•!¥¢EÖæ‚c²ÇǤ›ôvñ˜ÂSréu ÊÞ”À/åfºBUÞDõSDõ^¡óÌ‚õÜ!™-BŠ:ÑY…_?UÙ€‹CÚ0mQ+›=rFÆÄ¹»‘Ü}ËÏÁI‘¤F܇¯zê:¢0(†KÏbÝÃpòãƒ&ÖQS‡::ðÈ£ Zgª./Oûñ;I©§ŸÕV¾^W‚Ó«›XÉ}z,mFjï‡ï‚n¶äÿýÊ}à¼sl˜°u˜ˆ™JGÅÔO”Ò·7t˜A?þåÅQÿÅ™,¾. ‹¯Ïfñaç>QÞ_œ¦2Ì»Ó ó^¾µ»¯ù7³èëS"ãS-ïôƒo×>$ˆ_ìƒ5®x Jðj¤xšˆò´KÛR…Eáë U醥Øúí…‰l(C—ƒ›qKwŒ¬sG?‚¦“í­äîC«ˆþùå?ùÔs?Íâÿ_Îÿ‚ÂRÕèÿþwàg+!?Ý‹$ËÉÏWÊGJK>Í_ŠÊÿfQiÒ¢²^ÑBªq줨T2] xAãá¯ÜýWÏþ T{Zendstream endobj 455 0 obj << /Filter /FlateDecode /Length 2901 >> stream xÚÅkÛÆñûý ¡TBO4w—ä’­c Nb#ÒÎýà%QwjN¢"J>»èï¼v¹¤ö”sâ¢x·ÏÙÙyϬÒÉí$¼¾zysõìUYMTšTi¥&7뉪Lb´žØÜ&•É'7«ÉÛé—w35=À·éàϾvCÍa67FO¿…v½œi;ýZ¸¦Ý]óÔwÐyƒ3_bßL_np–ÀÔh#ŽØXR‡Öý}'“ÇÙ»›oŸ½2&ÄÒè2)l — ü”ÂEW©\ëÙ+•áòy–©ÉÜäIY¼ã @~1›çÚнj¹VŸ‚OóÔshι¹E´á[ɪðíáû'|;™[ÈÿNÆÃþï„‚ôßÂ÷ ODZkùïÖ¥ÿo 7œ+“äYõ¤›˜Ïr·ÖA¿û?ÞHxóŒÿýæiäPY¨ÒÌNÿx‰: !(–±j  €•®’¬È«·²åCÃCø,|%|)¨¦|È¢œ(•Ty®df• HM’ˆ§™~å5 9przÑîX)Ú5+Õ‘”OÚ¸`ë:-/ ì“<'º×Äô ï =«ARÂUCô›*eÞ7Ü^Öˆ_‡³ón?›ëbÚ,EiHU¶äeˆIýï/µêxh X‚E ¡º'é˜gi6îLÃVú§ÝL—~ôþÄ´q·„~» äðØ÷¸µYõ{HpC·yØ…ñRÜ‘CiX¸‰'\ØÌ‘CN.P’“¡•¡\2$t\´2F9ƒöq>Ý;™!Á—S†!Å;ñT×,ßêÆihUNW¤úîžØYœ‚CX6KÖþеàn#®RúÌ:îodœŒù‘Û·ÍÎÉi}O¤¦y ]ö®Å«=ÈA¤5/4–~ãÇY™‘ƪlz»ñêå¶â¿ŠlLs¢>†È]o›ð®ËPÁ$àX…±Æa#éP„nŸ#®‘¾Üò„ã¶C±èÈß±jÃéCÉÈŠ‘dÀ9` Kàþ+¼8Š7$›Z#Ñ÷÷"ÑH“*'ÖÞ<ðØ:8"ùh´\Û­H표vÄü¸kš* ô²×*˜0Ó†3 IH%Ó3”VIYZgQndM:€Ð¦´¤HŒÍ¥¤0O©¨iJ¬ÐýªëØy6É>õ4;­JRö°ñÁ ꉦVŽ€G/Èd#FVÕÓù5 ǶL‘…Ît’B„*w¦&B˜,…nQ!LžØÂÆØ0†3bß!0*, ²Jrel5†8 uC yR‚ÌzßDfeÅ–>Ó&ÉŒŠõ?PÃOY¶S‘ã H„ú_OvòéÇȧŸB>›˜Ô“ïÀ^i`¼œ6³ª³Åfó¬1Ö¹cw Ë+ou™öq ïÍ ¶ígO9üø âŽîèÐ0 çÞÄpíîk‰a+Y°rqÇ©Zhn›p-ìþÈí>@¢.ÇYlçV'…JÌj“š›²xL[ƒˆš–‚ƒŠ™Ae“R©'&;Ô¿<ÎnYõ¯ØyÌ×/Ͳ𬿞dgø_sdDá*‡=£²û?I\¶BâþAR˜%w„+ÞSìÀƒ5ÿ£¨‘¹áCY^£ˆcËÁç\Cš«¡ò|³sagS¯‚h—5Ç÷ûüÒô鴽л Œ[FfN.QÂÓn%%˜MËë^+¥pôžƒXb®Á¤EåøÞ9%#_K»{4cÃï¥Fèc@Û-Ñ-$6'¹Â207äŠ"IsÃmíâS©CÜKmågñµ%¸Jñ"è}¼ 7Hšâ—“B¿ÌSV2YcKÚA)è¶vq{'” L6®\¹éËùŒå„4` sÖåÓ,ź*©BƒYfIšTe(í'ÑÇÖÆ ]!ù<­Hq’þ×<ßËããÙ.;/^ ­`OµÚ ï‰þÈ¥ZpݼèKhõ‘Ç»ñ!|*Õ’\ï!Û+Påô›5o¤ƒ…«¨F²’JW6¾\QùrE•:mV%ò*Q&s"±œå¢œõü(Ùúé Jü£`¤ ž…È^‹û$xˆH ‚ÀPeþ<1d„Þˆ±PMƒ¦˜>`Šº2Óg\©¨Z‚u©Ð"ѵ泑Üð2Ç ¾E[vÀÊFnß'Û¸w/$’ýxØÒgb à<šð°âô# l²R\öKÕåò’…€¸¿zPŒPIg‰Òž CñL(ŽŽ¤îÚ‘ïžû1mI­7L»ep‰L¨Æ¡ï€ë¥ ãõdJαé›Å˜_å`¨G6ƒœ—@Ò#â˼t2×NM½G¸„h㭜⬄G@V=é¯1/ÿ3ß#7 ÷¢0ªmÁI”‡ieo´ÂÝÛ}á°…Q…w¬FD²veŠðø |C»–ÿ‡¸.|*¸nNH‹(!‡ÞžåYÑÀÉkq餃}ÜÈ­º6R—#óÕ«4›¯Ží_Ó|Úz‰Ç)²³ÎD6ÜÞ“D=¯1ì=%ôûÊQ1ù #8š*%s#/ _ß €Z0{Oé\œýÀ}±r¸ìûæ<ò»J8i’OøêÈÍ7¯¯&oi½íƒgIW ß è¶™SHlJØ’¶¡0y!”¢Ø(gWthx±B ʱöÉ… °è½3W±èQYm>îE{Ü«™‹B>ádµE6QEÖ£y^”Ó¿¶ÎƒØà­Ú¤ó§-þíåùÀs#fÑŒA‚G²ÝÊCà¿Ïú>ZäO«’tTú.‰î‹MK2\i¯yб>4[’Ö`†SÞ4AÛs ;uÝ‘tûººÎÁެø”vßË\X·Ç¹ãÝcÞB[|rô8¿Œ^Ë$ºOÈÆÞž¶a‘tù¶}¾‡²…{Ül$ßÙ \7 ñØ(š!•'-ÝÈ Î#¼å[c¶ðÅåi£ç^1ºBÑÔfè>z-?* k¶§]ÿæ>ï4ÝÈzqñŸˆ7úAÁèm8x±^ C×Áëùù«úøM~˜˜)ç§ú§þÐàúü•ÿS_öÄ1xWßõhÑφÆá±C\móÂ+ÿ§gÉžBO#·¿R~óôðJË®{ÞÇ'ý¼ßï†#CV†ÅáÊ,þüå ùå@:ú~ õ[†ô—žì®šÙ;5ýOó9ÔüÀÿ _EΪ/÷Q§ÿM­ÿÉN¡äÑûe²<*·lak—Áû\Øâ~3ô¢—öѰN«œÆWÁe^Hèª(•@V é%¬’ˆ°q<ú=f›YÏ‘R~àQİÔqX¹ðÆÁÒË#pLŽá” œŠÆÏ«,fh'†"…ª'ƒ&†R‡5”}† ¯r¿ZÃ+ÞWg–‚†ÇÔ)¦càìEpc8Â+/‚óÁ|P>T¡ÅØ‘HH²›'"†‘èz½|ö%öh‘f=ˆ'Ýÿ¯o®þ 0h#âendstream endobj 456 0 obj << /Filter /FlateDecode /Length 2835 >> stream xÚ½ioÇõ»Ñ¢ ˜ã¹g7­ $H8¨‘"Ö·¸(xI""Š Ùî¯ï;fvg–C‰NwwÞ¼y÷µ”£›‘ýð⻫¯Þ3RR´²U£«ëQ£FÁÑ7ºZŽ~+=ùÇÕ¯Þ6mÕ¶Â@A o'j|ŸÕgø·†Ïœî&Scôøa¶ƒ›Ùfÿ»°À53ÞLt3>"ð!.L÷x3;ôû7ÛÉT‡ñŸÜŃòþ†q|ZÇí· ÿQ*‡g!-û#üÛ="/ddùÕ[ߌ”­s9™2+SãDã=3¤ìkÄdj­ÿ4Gì³õ}q00†Ìlç¸6_g„ÖD<œÎn¯áú%_ÏÉ’÷Ü&Äc¶ ¿€‹Gâ!w¼m6Gmñp:×¢(öIp¤°R­r4Õpçsø-žiM nP^HÒcdf{Œ€xèj‘4µ½Ç§šÉ¿Ÿ€~’·HÏjI,ma7*(¡•K–³»6ð¹NòEf£<ÿŸoHJø]a-4Bºåbi›ƒÝøÄØìá!SÑjÉ $q¼´¨°Å/‘-äè7ž¦HÙÁ¡—Viš@ÈØ¶Bƒ5)#œm™¢ÜBµnñ(øn@“ˆôD“’H©¸¸Ú'5l2‚p%Ó&Þ.×Qlø|GŽ Ÿc¦*¢ ´¶;mâ=êa·Ýð‚ érô?cœ9\†D¶ ³ß÷mI|²\NP…¼¶$/XêH a ãj=~‡4ø6ÑÔg¸Ò5¬÷ÚN,“­ÄÕ‹N%vPSMŒ¼—l‘ܾYí;ÑvÊóíÛ‡HðvNP„aÔd§™¸\)-À9µªÉñám²02ŠäÞËcŒ,A¾¼äx„÷G’D¶.Ãx5[ ·¼Àî÷m y ±™.i¯¿û n>ðŽMgK<ð¤fM“))îY÷„lïQ|_ø9ŸÈ õXX±¤Üu)[ýv–ÄD=)É´º#¯ÑòQ÷eükc¬Ä'Ç]<~Ï[füu6G É}aè*«²ƒ£óûHË-¥C/áù”¸cHã°^Äè¨p†üÂË_Öd×ç,ÎÇ Y.¥ò2ÍqZK‚ƒë>¥Ä€Œ·–É(Þ¦„`×$ÌM¿H…Å=â¸£Ë EœŽŒ-ƒ’±žç%ý07z¡›ÈðÏùf2uÚüŽü¤ g;I%x—^2ÆÎ­£0öüø5-úýøÁ2DÃÇõûÓãÊ£Õ¯¾‡Ë×ðQgþ!ÈJ–F´<ŒòGÆô-2UÎSåŸoxÙñ×gþ2dQPnYÈÙy´êbgü+Ôø·d£QÒ‡ÎcÈ\ æ±Ó@Å\ÿeý&nª<ײuô|™±ò†yNrB­˜§§¤3«ô•ôõ'0>ïDŽ’'‘ŽNÀ¡Â©WB•m œÚR‰•Ьª¶Ô Ja¿Zžä½›U– ³¼úLe™¥dÍÕ^H½õSÆÅ è Ì¢VvÏ›YÚ܊ßp£vä|ùó/F¿¸æ8‘·ì¤v’¶îVë©uo­Ã˜šF@ýÃ^lÚßV)¬º‚©)@½õ&iðpÜuý}GS>NˆDa\Óñ?RöýŠ/÷õݼ€Ýê’ÆÒ„ÂÊX 6ŸSš:÷?0À%‘ÆÖ#·Dߎá l™X^ô…\2‚%ƒÿáÅ‚ª´‘Déj[‰@2ö :ïzó6ƒÛÿFÑvO -ܦŠQ|Ÿùù~UšÕ QáõÔY Ä¶qCÓ¤"ª³ðX 'ûT®£/sOèÊXêz6ƒÑ7ƒ¡•’¶ˆ¡^˜Ö•Yï£Vr°«4%¸lB“"L-*Ô[•¨ƒWo­.¤¶ñ ÝGib-iÍ(ˆ6HŽiB}S%¼ )“N¬ÛºÒ‚øì‹nè´E¸OSÇéN¦‡³ëNÂ}“9A…-e½Ú÷‰¿Bh#š~ü™©=ŸTPCPð6ôï'U ºEáy¸0B†ðŸ+Ù^2B°¢!Ë»±ÍY¡+´î²×UÕLpl ¾³±`=îÆOHàóZt:7ÎsJìt±Š½#ûë>¥Ë¥¶œ•Ó|#œñ…bOO ®=w\cR¶¼Y—m{GHá™J3à d«„ñæüüãÄ/ÎHÏýŸ<`ˆÙæM_îq7f€)[†»wizÍ÷øUÝ»eœÉU* rx°Î#ÖùÀ„ÔÁúúhê³A}ŠòsžñԜňÞÀŽ+÷–Ùù­â2-ô¼Ç´¥B@®hÊfÃÃÁO­éÃC“b¶íÃ:f7šñ눭µPŽ@€DNÀª¨‚ÐÁ<}.˜£”ÈÇT%Ï>ãÙA1§×¥ei*²™J¡M=”[î"騑¾½@<ú9ñØB:µðh¤ËÝãºv²éb滪 ¸´€ IA¸ÆåÊ]Õ€‚ÞÁ }¯@4õ­ðÒ•ÁCÖ84NÝü9„øó‡¾F¾L'}ÿ¦Ì¹Òå\Ž×ü‡BÇî\ð/6Ò_Èdx2¦¶!äÕOšK‡]-ާïò+M­´Ð/ÒÓ›m÷Š•Æú°ò8qŽßw¬©¸‹ï6iñÊî)”%)…ÂUOƧ[~}ßD;ª¸÷ë¬ÚÇXJ²©4ÞÓqE!ïÓ[ۘȰ ƒV÷šÇýÔš§y^[T_lD„|&‰CÛ$š¦}2íAtÒ arña|'< 2’ûØ!‘ó”3¼|¢ÂŽã÷}=n*¡/*³Û…A•ý窗ƒD›Öä†V÷ upÇìßëa§ò+2Î9÷pU÷&[wÕþÉ(WTçBxAuÔtö&÷4b2‡Ž?ˆ ›Bd¯p‚Ãø‚iЫ‚È" B–QúC„°@;Ä1…`1¶í t–µ)¤> øBßç^Ü©¡ M¦j|±AIãÆUyN-¸—ÓÅ<¹pœ©U6{kèÆ<©£ò®¯—×Ý KWt¸ùÔ¿]™”`ÕŸª2ð²žoM™Õd™f×i`½cÒ.hPÐÀÜåÁ†Þ±J|F=QÆâr,cYn«,BŸkè”׭骟sÕ™¾´:ÓÃê,ëûuöµÅk½ fм ÄŠR>Fq|ÞÏ¡p°×BmçÏþRÁ(¸œý‹~I@Éñõ1¶‹¢ÓPñݯ♵Š/wãÏ¥òÉñ‚¡S’ëÆïëyœüõ/¥UœÁS«7'ÉiŸEr³­µòÆxˆ0ÏxMÓ^ÜÙ+úUµ³WêÇQPS>לö6×ÊC°>£?eº;}¡ýD±Óý‚ëâ9L̳½°í“ÿÏ—ÑÝ»â&«‚ÒøÀCl ÎÃUj\]÷ ~¾Š$'§x†Êa¥ãЅ̶àf‹€‹‰Ó4ó=FWÑR‹P4õÝ+}ÿõêÅ¿P-Yœendstream endobj 457 0 obj << /Filter /FlateDecode /Length 3623 >> stream xÚÍ[ÝÛÆ÷_!ô%: ¢¹»är™ S· PH®h¸´¤»Sr’.âíË_ßù$w©•u¾:hÄ"¹_³³óñ›™½rv=+gyñÍå‹—¯C;3eÑ–­™]^ÍLë gí¬©›¢uõìr5ûiþêæÂÌðÿ¦‡îáÿý~Z.ÎÙù÷ðÜ-/l3ÿž°Ï~÷%7ý ^~À–Wøîæßl°•¦ép¢ ¸Ç‡%½P¿ì¤ñþâß—ß¿|í\L¥³¡ðM€M}Æa§¥lk¶¨*3[¸ºÞsK"¦®ý|‹Ó~À©d[Ú°¿X¥«5|ºåO+lí—ºý·ÐÁÃnìdضæ7’Üo¹á½ðHhˆs!øz QýFøJÜÙÍ7À$x©áá^ïxýð ¦Üè£Ðz¯KÒ.±ãz…Ì™-Lá|?®¨«–¹òÆ¸Š»ÁÕ¼ÃÞ]ÀjDÔùðXѶs&£hÜ®ùý7]nç]·ñž»žûD+$ ¨æËO Çu½ìm)+¼)Mµän8¢û­ÃIWºÝj8-œîþ&KˆA¿ŒÃöWøëæ+YÄáê‡5Ñh·Y†WëwxÈQ?šÑú’¸¸Üo…~:aœ7ó÷z²7°l¨+¤'ò¶¨=ðâYð)Ÿá;þ7Œ Z¯‰ÅÅ—fþ×=Nùÿ*Â6 ܇IïDŒ»¥NOGLÛ9Ëö>¢uÊa¡ A>•)èØï”Ÿ}ĬEeÂ(åxê¬ý{åÊ´©ºà•`:ªwBòŠߎÖ@ M¿þ ÒРËqJè üyäüD†&DqÞŽ)³v×Üž“8‰Nâ»]4ã:f‘XÒÑö t¯.+ÍÈÖ{^ ºÔsâ¶=òDc®Æïw_©5º­³^9O½qàþÀÏBöð¬ˆÓ‘Õ—¦›‘na±ULuð‰©®}á«JMõ=Y´ª.Ñ¢Ý]Ô¬,»ž¿¡Ò#µý)ÿÐé¹ë¶Ä8W™aø<ž¥¨¦$6”CdP * ²Â‡r¾Ús/œyÏÏ[fBì$*ÞÁ» ‘–Ø: Ô°¼Ë´8á´Aê0jõ’üQ'æê¥?QˆÍ½*ÕŠG¾eYf×ÿõì€Gøõ{EöáCê#'ªû¦¬ËÎd榭ÛtfXZm`K…Û±±Né+KÓBÄâH §(»Â ²Þ$¶‘sdà “v‡54A»=j[îjÈì‰áx1Øë-‚?l¼Rc¹]“îŠmd³Ãw“?æL#Y)Üd%üB´ÝÄoôªKÔ6È2,Ø35ü¢¶\¤gÝ‹ªÛfþš|éÖ-UéÅbË >å7¼®LÌÂþïqü­=PFæý§mYœäú懤ºïåHpè&ë<~ÄËèœ?.×e9·tl¦"‰ô—Íüz“j%|4„ØJC\!810åá–?ѼÜÜmO¸µ]‘8myµØ S÷ë{~'œ¿OÁ8%ZÃßhÕ•š¢Ò‡?]æ>v-±Æµ%óУÄü+È´¡¶€CÆ2vÜS4Ö©ߪ-ÝleÚmÎ^Wm'®ƒ'¸¨n ŸïF}HÌç†Ý<õÉX ™E<ó̶!áôÙïÖÑ’Œâ¡»L´Ãì/={S˜Ò§"Kª“Øs¯ ¾æ—{¤†`”§{+ë­Q]œŸ_êCçm§` G®x[ƒîZúXùÈ0ศ †TÐ'|•z&iÒÇž§š°\¦º!¯ø>£Ñc,Òs0HÄCp÷«bÀä´õw-½Çø^ˆPf¦pס¯æ_5/ÀæHÌI¢OlXÊ–œ{YŽð¡šPÚY7žbØKS”eའ²sÖ'á…õ'Xo}6:Œ-w鸺dçÉöÖrp Mƒ©Ë?h2…ÊÔë¼·¤nIb%TŒOÅ/_W6o•/ÊШþ^I7kŠð.v© ‡Á¶)¼ó¸rþu/æ Í.”…«a…±³â˜µN Ga«Ánüœ¥­(‡oJk³´›£íbL;EŸ›Ðgr†­)B¼Íü&ë3X—öȺ¸²žÛ¬ui@÷Ì'™¬ã¤E¶ªå °:[=øBS´- ^Ͱv/ `ÛzU*,Rl4‚çQÚ—?¨’`Ҥ̆Ô> ™úœVU% ™³Ze“(á¬V5#÷ÚÀæ(ÔgìDÞÛ'ºÜæœ ÖÇ”¤†Kdƒ!°eì…ÌMa¤ ” ñqÀø‡>¢iOÏÑ¢å!¦Riëv’ÙÀ±ÃÀ»ÐD’ƒ<›³í“áûİjÒ;bèñ€T$ǰ!$àfÁÌ1€ qy›ÆKd¤ <.HÂ$ÞÅ2 ¼™I±QÒ4ÁÆúhaÜE`o©BnÏ ¹'ç}sÎ}»gùaÁ†¸GI·öE±|ÖèUE8…)'FÃ;5z€ƒ²q8½Ð$&­­¢¤¿%K³!YÀLßnYhމÁˆ…kêIÙa?zõl PScrí¢W)¿ãØ5·*ð³-ð`—id·–!⨟ŒB›”e¹…!L6~<'g2‹úš0Iùp¯ ä¨m`$-°Ý´¦žºÆx¶P‡¨ièÖg'k?1ÙÄÏ:WÍ2šO˧å7`ž¸oàëÜ€i>ägKOêhQúÎNÓwö¹€§þ¨NÎdàÿ5c³ca[[4¿S/ùÃP±‰¯Ûùþ­¦çÃmžIñ4iX8;É·Nké’JŽ«§œ¯oÔÆ,–SÀ,eùš®e“nÄýg‰q²æß§I]~â‹VaÚyšUÄ.ïÞrŸ­"GM”é=¤½0`Šä~{ó²‹5£C–Zb(#BååTÉhØ¡÷Pà– É\Fx©‰<ž¾ãÏïo†r„^jšP«€Édî£`µâa’ùËÂ`_”cåñ9EˆÔçVE]úXN&gRÙdòéˆNîê è°n&"âQ+µÐóxH‰ÃF‚1¹ØÄŽŸÇч›¡ä¯¾Ÿ¦W7?°õ¨”^dõ=Zs,2à ÷‘[ŽÍ‰J6LîÄ|yª8Ôg+ 8ͰfZ†!!`J†ZŒ3©¦ ªl€ÈÚ‚2ð‡ñ®•"Ò·Z±C3D5^4Rt…çÈ¢c™i¸1©Ê¿ÀØôƤLstK8c¸ÀXDºô:~e«¹^|ûõA&?ÈݒʺùJ)ÇžCjcKwH¡y(ÛñF >ç¯ÙÚ£1øIÜ".Ðsh=æ/¢UÖøæïðò£UEqÌfWÒ¡'€ä?·Sˆ[m›©bªó|K–³0[Ù˜ËAÚð± âMן«‚°–“ôR&›~Tœ²éf¬G‰޲ôi6 ž×ßÜÈý ·½æ± Hñ5½d<À\göä«> stream xÚíZIÛȾûW(F&¡€§6nAf;3=HH:§ñd-ÝŠ[bC”ºíüú¼µ¸ˆê–A’CɪW¯Þ^_e&·3ùáÕÛ›W__{?±&­Le'7ëIi'EV¤•Ï&7Ëɉ ÓŸnþðõuYu©ª*Í `A$×S›Üõú?¸ÞÓÛtæ½Kæ{x™oWð{Ø Áû|²º29"ñA:f ¾Ìíøm=¹"Yb˽L„”»[æñ´‘áwLÿÎØ çBYš#üìQWFTê;cUf>KË­vhÛC_zt1‡ç#θ"{?…Igd žânþOÔg¿$ ip×hŸ+h.=èÙÁµ$g¢>“™Í<¨àÁ§Y¨X“GqãUKÏ\È“wÖ‡rÝ¡Xõ—¯±¯Ë·‘EÖ ®ge—¥®ÊÕ^‡1‹BpW1vµ 9£_ŽQlh˺9ꯧ û¿³®ôØ3°;‰„2ïÉŠÔÛJ%X“ª0°r0>sÉ|AÜF$>ue ¡zÝZ„cxDmVQ§¦/Ÿq‹²ßÞ19É;Ÿ–`¸ž“hjü8¥™ùP%ìÿÅâ(&c/A_f’ùZM·óN•§Æ–Ï:ÇC剦I§³PeÉšf@Ón B=OBq+½k‘©Þަ É€»;—‚ŸIAÛúk#f…éȬdS°Kô£v pM+ù†òB¢÷q#/Gª2Hv5*2ÌUþ߹Ʃï?±§ƒ3iáFÝŒ+TÇ,o­ÆfsâRiziU—}5s¶äW·5õžÓÌ&˜å¶ê×a°Pe®§PqÈÖÁ'ZìçÛÔrE¦„ž¿3™AiÊw5f3d–ái÷˜ôæPv¯ ?‚,±´=©‚ç3gÊó«®!2ì.pÀ£H'Q"M±ú0ª+íœ €zqSïx"ªàP¾é¥k,J£•v‚~ U HÖ³cöR¤tÊÒAùŒ,ÓÌwÊ óEæ€b,3ÔÉU€ž¸àÑ¢ˆ£›†Û1OñN ³¶bYÁ*Á0Ã$›?Í>»ª 3(z-»š :¦ÇWtÐæ£X\—ïÕs¼¤@"Js'ñKáýèŽ]é˜þ„3vþƒl\îzU»%Í]îYÂõ½Â 3ª%4T×SD 8µwkë®›«oHÒ‰)è®Èñªhµ®Ú¼`ÉÒ€¢©jÎ-M¬QQ9Ÿ ;qüˆ‰ªbÁÉmò= APˆ67Um…wˆ±ÐP•iáó1CÇØ¡Ä,Áì5\–ën @’˜bÁeiáDoDoMô¨Ü¦Ü!SÑhQßKpnuâ¹nû(ŒhëòVYÄ:++ñÅ8ÊtÀÂAÎk·÷i^öý²ØÇ²—…’CýŽ÷²àôÄ 'ÉQä¥íCAI’óÖ ç½D‘¬ ä´LBG‹%áeÓ,fIýUÓ!×G¡˜[+‹ì©°¿# &Þ8äC>ôV'Må Æ8ßFÂñL• ÙhÉ7q|~œf9ƒ¸ãjÌE‘BÁUŸüyŠÑ1â9ØE—Æw]·cþ .\23ƒ${&ûˆäé.n!˜¶cR~?X¥¤pDÝ£1,h±›a¼ñЫß;ždÓʈa²û îâ¬ÞqñœU.-³Ðÿë&ó°®EiÖr˜Æ+¶P™Ä‡è+WBmÜÙ¯Dk¹â‘mkÙ –< BÉÒ$¿G!Ö¼®Åú*¨Ž„DÁç’÷­ì †örc$Ψ0ÿ{-@îL) 6Íüg—›é¹âD„Z¨óR7ÞwaÅH¢zŸX¶˜hþdÁIYkz»®YáÓ"d“™s S) ÿv:Ëœ?szd“ñðíLß/u75YŠä«¨þŠÙ.¦Ê{ ;¥ˆ„ðõ§1#›¾œo8Ú‘a-òüC¬ÎŽ]ëvZŠ‘¶Q›„þî½LóX ~=&ˆOMë:Õ})œ;ç1Î>¤®*Ÿå<³!K+çAS¨S•Dâw=Ö6ù …«-R ±Ú‹Y1/'Ö¦U–9‰nŸ§¦ô<µGÆö€Éµž˜ºÕèŸ?ïÛ3øöKÏpˆÚ4Úþð!ÍØ6íR¥r^?vzèÒPfÝoñ÷bç’'ÇøaˆËŸŒL™çiÖûª¤OÓ݃#ŒžáÇ/T†Îá6z0CñƒžÍ`«ž>À#Ÿ|,»åÎÓ9í§“Ø @~QØn­ø÷|N»Å£ =è¤)åße•š"ë'Aÿ£‹9så;QM?PâXïÀt:ÙÙÿ¸!ô\½ƒ¸Cç<±ÏˆÜ¿jü Ïå9ën\êßþuÄÄ“¯î_”ôþýÍ«+U~qendstream endobj 459 0 obj << /Filter /FlateDecode /Length 2410 >> stream xÚíËŽÛÈñ$dÄe7ßAÀvÖAÙp&ÈÁö#Q­Eq@jìñ%ß¾õêÕ3ëØ‹\,dvwUW×»»j6]ìéâÏÏ^^?ûîuÝ,Tš4i£×»…j²$ÓzQUÒdÅâz»x»|u»RË~‡ þ9Ão¸Ã¥n\­³L/€q»YéjùFˆ3œ®ô#LÞ äγåËB‰L‹„²áŒƒ MïŸ'žWï¯øîu–ù\fºNʪ!ˆ?U Ò³TÄZ¬ó\-ÖY‘ÔeÉ=²päŽ"ÀagáˆØèàÔ&ãô~#x÷8ë’ÕºÔÅòÆ·‚Ú«5ÐÜ"ø(|Ãr;j9í'5¶GØpKÀQ°Ùâ ûNN¼íˆÚñ.-R˜ý—6F]ÃI¤…ÿ’b1¢Ð<|²¿¥Yˆ3­¼ErŠ Ó‘|ú‡ÈY?ãÚIqG¤”Ö*Kмùr½‚5{>õÕ rbÉU‰ª“»–ƒs/{”õ!0ƒÍÃRfd °èÖ»+]£þáß3ƒ õ(L Èþ'<è´w»Çoº$˜Ö™)ŠE^þÍÂ[øàŒEkY}¸aC3sÂüK˜ÐÞ+Þä¸Í— u§cj&†Ð[ê°2TKã«íi2±"îÁÞ¸‡}›Â”­fM¿µ ìö,8´0ŠñÉ÷p0¢ŒâFHßõ.UùYˆtÂj+0Ö¹SøDö_—i±|ÁÿZÕù²Cr7Æ›Ž Ùúig$ ä% †¹¾,_i„¯Ôº ŽÕ8…ô<46Çñq>¢0¨Ó%[¡Ãí˜ 4“œÞ :î|àd@ØÆM…¯šåö`¢i¾H=žðDÉŠ«H\ÁˆHQ•'ž5üf>ðÎú7,%P„ÁJ}‰„€;ņìÈ}ISàU© t¤I>mŸ¬+94¦+ú®UQ9f ¬$ÆCf•Àfåi‘¯Ïÿ ¯Ú³jé¬ðÚ¯¬àK^ SÃÏ[³f~+x¿*½Ü´–£SÑ—qfí±í¥Ó]°9)ö ý~¯ÔÚóĪ‚×òØ{yv›®†nÊåyÖKSÁ½–HÕõD.&9W(¢Š|ù“4hB„‹iƒXùï\Ä9cÍAïÛáÒ q‡3G&=Ü´7©Þ8JçÞ¹ö¥Ôu™hݘ²à]š)AËUÒT)׉V˜!á1/½¸Ï×O ê§´ZxÈòŒgy¤fjJSÓ&_Çă~–iÆU¸¥æ2y–æ‰*fw:ª¦¹<;s¿“• YuØá·v\Añ >MÕ̺ójdîB!æeQk’ Ñ0=D5(šÀÀ0¥:Œî̓é–bË€Dv¬8U휠}û`o]éßõ !Ë0nrtñ·½âS?8]p•së;ZqQŽjFÁw3˜B°W®ªL eýÊ]Ã1‡á XPÑÆZlŒ'u¶³ÜKk‹û$ZsëDÓk§ò˜rí̳ S,I)a]ë 6‡=·§iFÝ$-MÅ=ÓôZ‰®ÇÚ k]GóŽÈ²¤,ëYÓot5«­fµQ_ÿXá_6yòKí™GLD‹ºNŠZùZÄÊøànS6ÓûúD¯íQ:’?cÇш( üAØ5ñaÆqP42—9"¡Î!AT•áwrœ‹l’g¶“H iRåyØw~E±òqU”,ØÁwÝÀƒ»=ñ@Z ©v²ÏIzK—á$ÙçÖÞ˜§‹”ëç°Q^]ó»Èš:̸ÆeÝýË&¼—lö¦È¸![Žü^Œ—§‰†§WêÞ.aÕg[^q>??oÎT3/z¡P|À;>¯ÂW®×¦šDRsé˜y'~/||EÓkÞ¦y¸h¶ŽæÒö4-ç<•|rËÑ—6Æ•¼ü¯¾Žã|ïþÇÚÂø[øWh _EºF¤»/îÊ•¾Åýÿ›À|¿¿~ö34̈endstream endobj 460 0 obj << /Filter /FlateDecode /Length 1409 >> stream xÚÝËŽÛ6ð¾_a,zÑJ+’¢$md› R-Ðø–ä øµBýXÈö&¹äÛ;ÃJ”Lo³»y9Ð25ÃyÏpFéh9JGÏÏžNÎ.®”‰41©£ÉbTŠQ¡‹Ä(=šÌF¯"‘ßLþ¸¸*eL¢ aQ®Æ"ZÁš¿‡ŸÖ[»ÇJÉè¦j`S­çð»oaŠ0­Ç²Œˆ¼g@¼ÃMµïί·ãXÑ ß¬˜bn–Dã]Íǯ ÿu*4òBYvøinQ³”U¾¸2=MbR%V:)óœºD‰™®Ÿ‘œŽ…Jtfiá´vÌ`Y~°na­YP„½Nu <²e”5£¯,¯XKýJ—B|øóª„ü~¢;6AÅσᤠŒôÝ™™‡ßçÿ–¥Ü±”¨€‚õ ={ök×0|í( Xh<)Á¼ºoAOš7Ýß9«ÏÐîÚÓ¨fÙööéœv–| ëoX/{çðæS®YÕƒç§ß=Wpè ¹ ¸a{l"×^„;O!ý@ Ý|rä|ìÂMXJ±3»,’Ô0½gžj¦ç4™3Œ"^‰)zÒL[ŸÒ.Î ¡Þˆe.LËÁiR"S-WÄKöö"JìÓ*â;¦çS“)Í#zð„.D”2I «äà-@Œ å§}ß^0x¨½SpSáC¶—­#„„àÅ– 8ÝÎKs04¤Ê–Ž»ÄžÕ®Ü;!»ÂP퉦s¯æMk›NÚ^}öгõ$R¬šÎÁK1Áòµű8./àÜÝžx†J«WS¬²¾å볈zÕrg›ˆû•™Õ ¾V] §¥ñ¾ðG™»æ'Âý ^à#ÏW®lú;+lGÝ_¯Mþ¦Ÿ ¿UÂÜÿ{å©oË–¯ý%søõ‘Ÿ-!ò|ÄüL_Û/öîùlröetÜendstream endobj 461 0 obj << /Filter /FlateDecode /Length 2054 >> stream xÚ½YKsÛ6¾çWh:=PS‹Æƒà£3îLâÆm2}Mâž’h™²ÕX’«‡í\òÛ‹})0v§ˆ b¿]ì.€Obt1£_ž<;}rxRV#)ÒJTrt:ÉJ§Z©QaŠ´Òftz>z“_Že²¶e¾±?[[V×ÐԬǭUòÒÖëéXÉ{[ƒ1«åuýn_^AÏ1¼ëäÙzqš&šó[¨LñÇý½äÎíøÝéËíC”Z•i^”V Ä' ôD°Z‡'UG§I¦tZ9šh“–yN°•- [®¹B~nÇ“¬&9QŽ'Rdš a›,´Ì4¶ñ8%*¼Ë$åö\VØÖæÑD©Ì*ûÔ©±OÒÇŠ–•LžÙaÚòz<)JS!Ì5C=³ÅŽ“¦‰àé-•->':Ï‹ä[Êb©bEW bü?³^5c¾¬z‚³1ÕƒMÆm¿f`9‚£~×§¸1`zßô–ÎÐΖ+,4ùÁ“"×8–K*TÏ®2®/ÇÒ+}–£$û ¬SÆz`U,3gœW¸‹ŒZ²uk}ÚÏ‹ýw‘ÕùÀþ¤™»%NmwƒáKJÔli°Ú:˜£‰¬zéݸUB±¥lqa‰cX U¤¢*I‰ßÜ…-¶&{Ï`Ýû%ƒr>ž¥“#zL‚“Ý2. þ€†B²šu>6O}jG½°å¸3²äiU UÉ%‹eaPÔæa£xÖ¥M3:Oj0ó8΢YŽUéRx7)ç™]çÌeðšWm“#«´P…J¹%í0žÃ‹I¶+j„¶xÄ5XöuNW°ÝŒ Û×.…óT+Q̽×[‡Yó×øe½hœ­ÛÏß «Ó€Ý.Rˆ-Jü—õ5ä^ð6ŸÂ~LËŠB™¥ªõ:½ô{Ð$Ë2»åX«îx£Él€œ9!ðRÓ çW³šÑóÊɇ4Â&Vo§0ïåœ×â‚æÙ²oòìK0$..TXðº+·Ökî1˜²¹A©ŠvÓÍl·"ijÁ­hw¶+dA´ÕO E]À!€%౬ì'Z[»›9ô6¬ªÂë ÔX“i¨ôÞ4 íˆàã&æêÊ:°*ªùºi)¼¯s(-Í̱¨’aTÍüŽByrà f½ágƒËA’«´lAƒO‘¼˜õ,µnÍUõ%&2ôg ‘.z'œ½x$#Ûïá(eOÞ²¶^ÓãƒÑ¥vð±Å't—à+äqGĄ́s“ü³ãX€±•ë³ÔÎ’¼»ÏvÍVkçô®FçSŒ`ÀúÕ }vêÔÂSï2Ôƒ|’“@Ä9£Ô|fï¾B»Ú™obËoìò+íÖ¬»ÝI›çeò“|d¹3‘ é='LI‡'RäóteÅ肳¿¦/^Ùá?ÑFrŸÛ-Ø ÐÇj¾î áæÁÆ¿æ™x§sÇj§àŽ»9ŽøH‰ßD,üÃx’—’ÜôNGãx{°ÍÖ€#>-­Ä‚µƒÃ›Oô}Ûu{¶^ð\G¼Øòî>üÝ nÁ®>m­ÙžõHÂw¶ Ÿ÷¨ŸÞ?µS<üFãÙ·"§R›"CU®zЍ50lÿJÐFÄݬÀÔR™Â Úa@æpzyá#Ñ¢eÇ-¡üCûñ7ãµsÚ Å ðÍ£4\¡üÇ 1žVŒ§ì>—›þÜ£y×V÷Bîžtñ™øª8íOôÑêÌô…aú€Á‘û{ðÑ^È>@÷Eh_ÈpœÚ°d¿Á»äy `ÎŽÆÿƇlŒöùBF ©#…íߎ‘ª2-£ŒTx36|¤ëÿã0RQÁª'8 È5ÀHåüÔ‘ë<ÑÃHy÷)2R™'Dö¹‰,`€bŒ”xFÊcí3R 3äBr~F*ó´Þ>VóˆŒÔÕçƒÛçˆ. Á0ˆCÙ7uØ3õ·æªpž>WÕW àÈ*¸*çKÕ€sçÿW¥Ø- ü0®Êöad•ñæ`&ùð$/GR¦•~ R™J•`²Jc’H‰føkMü)7ÅåÀ[$_¾üùaAï wzÚîü-ÿíðwÐÆý¥AT-'æì÷nZ•,è’xî,»"ÙDZ–ÒYc’‰,™5x& :€XN?Z-7ÔEq7m$\°ñ ¥6tIÆ––2$s^ìsêÄ¿{ j¼CÓºžò–dÇ4t·æMÏ_ä¡ 5ž 7¸å[{ÏÓµ¥ÁÓ㚇|îeÄ\1ñª2+ŽNñ Ü+åVŸqFS¥Nþå|Rû‰æ>ȪJ{ÉðÕÅz`Q` K5H/b§m6¤ÅÎM ~g?øÕÑ'0ë-/ÔoeügmK5þ2â¤}YóÏ.£²ÚmèË’ÄRÌ ÷w O½äÙ'xbUÚÚ9òÆ~eÑD®2R”iÕþiwÇ÷!¥Ádj/\ž#ŠRk©ÑUÊ(ÁÁÇš–Ï2ºLN‰³AV¡ ±y¡µ^sw{ì³ÌŸS¯£á zà]fË/˜Fˆ÷‰ëb î:÷1iÖs·P¤(­Û–»ÆÓ\&D*ûô›ç‹!5mvù×.½Uª<ùÔò¢Ø•HEuÃ÷•îE.Æ9é4Ïî!;û€"âÛн+Ž’U™‘i-ÿw±{>?}òIàÞendstream endobj 462 0 obj << /Filter /FlateDecode /Length 1912 >> stream xÚ­YYoÛF~÷¯Ð ˆ˜=¸<Š$@Œ6úR õ[S´$ÛB­£”èïÎìÌr–¤d;ÎMr9»3óíßÊjr=Q“_ÎÎ/ÎÞ~²v¢UV«ZO.®&•ž”®Ìjë&ËÉŸS]Íþºøõí§ª–Ru¹Ò/"Ÿfzzë¯Õÿgí¯K|›Í­5Ó}Óú—f³òïZXÀ7;ÝÌL5½á;ú0?ÀKs×ÍßìfsSN—0rKŠ@r{Öx\Óô› ÿYiºÀ–ýÿÓ>€gŠ\îû;®Ì­Ëª¢]Ü~•Ãz9˜†…!ôT¢g xÚµáÓ•¥Û;µÛüê?mmfjËîi±€GÊþö×#ËÑò û௠ñ%èH=ÓJe¹WK:®×8É#¾:c5á&™Œà/ÉÕ8g  4w†6—dÁíZìâ ì|ãeµòîøy_¬æ­žÌÇ¢¬Íd®mæò:XÛl½¬7ÂÔfº@d|<Ìœ›6D% â¿Ó º%Ùlž[5½׈JÅG?y¿ç`Zušpß[^Ö;´ ã!¾¢¶°@: Õ‘]7U‘é.o.iÇ´Ópßí¤-³¼Êyãý^Z‹[ŠŽ¥ð¨y„¸ ÖØ¬Èuº >zý|• G„öÂ!,Ö"U»°€}1õôcHätå/¯¦Wƒ¢} âÍ?¨š6’,DŸ®aâFDW¬rY̺ó1¬«¬ª –x¼‰Ëcw4öþ^LW úѰÞtŽlaÚ—a^Kxë<Ó^UŠ÷Dn…fÃ! £XiÂ#,zX…ç+*@ò L‚Å=ÍÄ ^~×AöC4êî.Ö5ŸÏ h›óž1Ä0g@AÁ…{C_yƆ·šŒý/ÜÖ,ÞÂĆmæm_w:7BaÛµ!2U€ˆúQ³€Åî[Q  ŒXe7X«Bî°_Ïú·‚ ÿÝ ~˜Í±Sª9ðøÀ˜ÍµÊCB7´lƒËc[zßP…þ¬œ¢Býc&)¬‡zªÃP¼ ÷ò¡9¯ï Ñ€ñRƒEš‡Õ€ÔÛ÷T^–ø9 ;r}ég!]Ï~“?†…KºØ¡Ãç<ܾ„›C¤lî{f•ÂE+r}EÆúŠä mkB±±[‚á‘DÛ0|OhìãphLÆS—ê{GH°ÉºpYPH·éðég £Zg¹¯Q2 4T]{ðã~üæ¯?ÈkEA ûSù‹ÀäᜆM:\а K“jü‰j:òÕ× qÉdØ¢RÍ‹H35*QlI±>íjAkØ¡!õ‚†‹1yªñ W-¡V‡ÕP1gLT,òc#m¿¬}¯s±Û°Vàž7E蟑§COåë YWrÿO«†["¾ i¢ }c))Ž4·àÒ× ´º˜Õà’a=Ä”¼dh\ nqí<¤yšlc o {n޵tã_ª"!4þD*Q9lÂpg\àº_ä{D¯hl;06G|æF™oª< qà-ÀâwŸ`““F—þ4FÛø/E@+p2ìõÇíÙf^œ =W6SU0 \m©‚µ …0"¯¨ië“@[2;ˆ€]’w1’pÈ(}˜@n]{vé\Þ7!Ðc2É}0ª€‡âèæöz “‰±ÀâÛš{^ÁÏÁSçfIöa1SÇÁò&bÚõȹŠÎPþ|K$‡9ÊVÛðqÍzý@ó—èë-Ùì•0Ëñ;q>Â÷5³™“Ì©0•ו®“,åîå,åá~.Ùßq Þa‹¢üaÀz­X4¦Pðw4¢ðÔþ¸eŒvMžê>xÓ´ZFmE‘&îðõ©VÞ³X÷,æ®h­£Ú<Ëb^¾ËjÃ]îeQ÷}Kás£°O~¿Bqû‘CCF(¹n¦¤½¡’†{GŒÁ!˜xôy`Tí¼œ¹®>íϯ£„c룖 ¾ËÌ´AþHç“”’ÞV"‚,©îɹ]S–«I®Ë8Êž"ˆæÙ&ë“óÄTΫTŽikMÏ.2Ê¡ÉFÈN¢Ue¼ZIzš Í3á\ ŠX*gϯ¢Œ”KãlvyüäñRÓuϤR$£ªäÍ2žºÀ2#µ<.†y'P7§M/‡1n{m#§«¤w5R¬ygœ@¶$¹¼·‹E<‰ÁûðWóbËuÏr+¶q‘ÄqPÄ J-¯I¶›xtK'Ä'Îoæ8ø¥è‚ ðX(—ñ¬×ÅM)RÉS§£oÜYÍ©¹ c¦iª*ÖÌaŠ(nWXÒ](D•ñùdÁy9ZjAo´ÈÝK΢÷c‚ëy£‡Œ©çt.mO” otF)Ó°î~¨IàÖ¹=UçŒAÀu´ûe˜ÙRþù¾¤%ŠuWboŒhW]me©2å«h:в™¨ŠîåqBûJ—ô¸ý¾QˆN] V„g'ý‘5Ú‰2Ã-þo’ï?_œýò_R¸endstream endobj 463 0 obj << /Filter /FlateDecode /Length 3259 >> stream xÚZ[oÛÈ~ϯ0Ò>ÈhÄp†Ã[ÛØl7ØØxчÍ" %ÚV#‰^IŽc´èoï¹gÈqŒäç~æœ3çò ó³ë³üìÏ^_<{ù¦iÏLžµykÎ.®ÎL[d…µguYgmQž]¬Ï~]|snx6Gø9Á3ÜbU8_…]üïÝêÜÖ‹ð†}†ý nú ?cË÷X.¯7ØJÓt8ÑFœðeEê÷Ë^Oç¿]üøòMQ„T¶ÉªºM}¦ÅNÏrÙÖË7m´§¥sælY”YSU<à&þÏ<[Ü<Ÿ…’;Ùë'xvBÄçu›m©4ôŸ…5bƉ·âª’*oz~¿ÅÖá»\ndqÞ¥mاZ WÜ÷ò|i«EÍÈŒknå"½öží7<‚GV¼"m‹ªX&n÷BøìóîzÞ§³1³‹Ì¶N7šH›å 4ÒÓ{g2`HÁ˜¬6 Sd¥k¹/Jàî¤lÇ¡âT5‰âfÀÍÝï±&§®Ã!EaSe¦j¦F:Pg®ö²zZ·(Ssìé7û—Ô\.k€|Õ½<Ń} í#g~²óe B½ðl™êji2×T:P['zu]èD7ûÔÚe™Ñ):w}G½÷¨e'ææ~{è *¶tÂo£0–óÇõ ¥ç>DÌN dXÖ¶¨á€V±¬µ´y³xo Ǫ©[£¯Ÿs³ßû‰‡ U PyÑ´ÓaÛŽV_mëžv•ன@Q—î% ác¥†(ioÐz–®‰Y+µ‰rN#U‡ùrÜÛö£mÃ¥Ò›ñb&¯"{eó*kA]—Öe¥˜¬Ÿ¡ûßP{Šo°^fñ>/søKï˜ÎŒ¯¯Äˈrl5ðšs‹k_Ëm•ê§U—‡=‡ç-‹Ngû'<契ÖJH2˜óüݸ‹lö2àÑŸ¹¹â¿ÏZB…-˜¸fª® WÓjÇpC'Õâ¶$Nw´ uÛ ‡ïeÑWÓi“‡«ùœXpJe¼î_¡y.RÿBõJN«Mîêo˜%®&òÀb;8 yFØRÊÎ3$eHÅœÝ, x*R’Y5êNW;©&飸‘‰Glš„`]’ŒNUzíœ­àˆ¦¨º”§ ÖÍé•ÿ.RUݸ!èœFö9¡@ŒW7Ä‘N6'ú:à –žYµ›Óa=ït”Óñ%94óeÊ´TBA•Z½z|õ§da=f<¨çÚ`CY¼|Qœ‰¶,­¡¢ÉL®ÊA»ï\±xsÞâ9ÑI‡æ¿¥¦ù¤6Û;2ðÒw[ Š—h¦O¡L{ºØc¡}Ì3Ûȉù×yã(Ì­x~|È0F‘¶‡Ñ#G:ѽ‚¡k¶Xe4DKMÓÂ%¢…¨÷V,‡z¡÷Ç Ãâ˜öÌ—‹Â½SoA”ÜoFñã NæìWäŒ×)¥Š7”p:……ˆ¿ýrôÀ®ylKȦʳ&¯uåYQ¸8¤q¤Æ!Û‚øaØN˜¦úå¯åìaWäÕdÒÁ—cPEIËþ¨‘ ¡ùaNÃ{j[“›Ûªÿ]NB8r)_Bxó%ÆûOR‘/¾Ûª(œþ$j[Y›ÓG*¯ïsãNÞM£g£jÖ‰›d`XÛ¬®ŠP&ßœVàÓ}2‚ÙLnÏ9r vâ‚ÜDåžÛn)¼$©©\xñnË©/P*GÊîJy¡Qä•›øõ×v½@a¸Åý¬£&V*ÍðJÒêtc8¨Ts~žRÚñžÉ…=âë‰ð ÿ¿‘ÁGÙ”Q‚B´ôèø7‡ó­)mXKµÚ¦O>I)Kæ¬6±TXE‹‰UNôºÌòñ¨?¥i»~Lj?U&É0¦5FœUVÚ†Û.4;jrFî‘õWÎy;ÌÙ2l¥ž#÷ïTÕ  §á{.¼Ó̯_K—áº×s&q+V‡|º¨C‚g¶i²¼¶!Ï d'|Û¥xäŠ,¯"vßáš«(}BksQÌòç†iRö{Oº?2—‹ÂdÆ™(x¤ô6Ï…Y–¬yýŠŽ°fðzÛ‘™ M+Œ9©…÷žš€ñJãalKØBòâ¡%ÅnÉ‘±¨"CÝ$É^'™ÞBªXÙÇ|Ò •˳ܔ£b‚RZÖÁÍ‘ùA<*…G|:‘ ö¡º÷N™ä™ŽÙk[—îÀc›KQáS/úêšÅvøP¯q®`èwK<Ô¶G" O}„Ñ7ä ñ§ÃŸ‡q9%Xˆ Q'°’v²V²‘¤èާ­+íGÛþHž9¦‘à½;rQº†RÞN£x8S-.ôÐûT\òÄn SøÃ^¶Ñë™·@‹*¾èF Dç±×n+>¨0T‰– Þ¬áa0q°EšFô+ yšÙYÓf娃_k3\ᇆŸ.P·%È•‘š-÷®D_Á@·å£PUXT|rGÉ•71[äõÔå`ëÇÕÁ£6’ ã Œça#èr¥úµãòñ¯2Ù„¤IQ<éíO‚¶”T B…$è[`²ªz %cž·75ÅœéfÐY^F<0`ùC|;`›Æ½Ï¡üV·_smÄŽ’h÷9uxÍ“Ñ_A–}2’ñ’®¼¼ú8>ÃòN 7éŠjï#åò·‘Š^›0xí%(éå¸>rƒ’ÙøÜñÅ W:Èù_êûÝmp]5Û1KÙŽg$´kåÐ-Dzý:ö¦èg™sd„ø^ÙÎÐÏK1oœß{ôj9¶Þj°Aäå× ø¶ýQôú í;&_Iþÿžß2y”(žr.‡)±W2b¥·jBDÖ>=éÈʩߘÐ÷t®š¢ï+æw“.Rý€2™éEW½“fÎå±Çÿ°õcR\xõwdHÈÈNºOü"ÅÅ?AqƱ½ cá×+þ ó95BÝÊÊ[aú~BíÆ£ÉþýM"…“kÚËú-<Ê¿zú*»}Ͱ“¶Ñ>Ì­øËؙƎVµaqP¤õ·š¬7œS@-†i'9zÃŽÌ}cýÍ BÏÑ0×(¤ßrsÓÍñŽ^ú dð¦Ã»¿Ö2œ±,qìG™Ï1ØàpøÈ-¡tó4Ò×wkŒàtüGm‡k±ÒW£bÆ£†½GWÜ‘bs: šlk,ÖßÅ>Qq-fè%ç=Ðâ#Nñ=ÙGaq*Lqx1í¯å~š\DÏc¹ Qš‚Qò{åBc] ×úî8X  øùt¼ˆ‰“[qE((¼Ðn14ÃB·Z)NÑ­’¨›/®ä +½ Çlq€p àúéýüÄû·eV·ÕxýbC*h!sá¥ý‘—I2¼ŠåñšX2ÜÌiyá]O’ß.àp¢µªU7îK‚ Á¥\¦·pš­Ééìô~Ú+jOÅvŒ2n('ú$IÅ zÒàýFèŒz„áèf‡èH¨ýe„Ú»E|¶ ´·Åp––7»qÞÿ'g¥Ö¨;öéÑ9h{U{b…Tx­¥=ƒGG…ýŒ7XûÕ4›@e¥^úeÑ„Tåw™d£€S›'§V¯ÿiij(l§dþ·þDIňvš™Äja· #$¨[÷°´©JÊVn¬¶Êç)vMQlìÌ(Îôøsx¬‰ÁÝ*º%“€õЮ$ |âPWef¬Ïõæ8Œ(>Ìüüùr]gm寈\%ú¯ÊøH”´,´Ô©@¶ÌUõ `öS·9z„JºÏƒA¡ox Û¡>s^Ê%5‚‡­Å;GIJžê†!¹Hðµ=¿OU}¶©ñ2Ïqj¤ýÅÖc™Bºnç/Ôè&+v9TVpvûx0ù#þ~ÚüM¼_Žœ2WÊV†¶Fð¨DY{Л…ÚSŠål‘5¥wšŸÅ[$=ÄR;ÇPŸºi²ÊºéÔÉ0ÎÔ™q(¾,+ŽûSø1Ðcø¼ƒáy5o‚ïK¶²ò}|h¿ÀóCš7™qŽîúšNŵÿV®¨Í¨µ#qê˜ožž•ð# Ò:Ñô#@ª^û›Î¤Wòè ú»Í°’&“ÔVλr|§½È—Šñ^øÜÛŠ4êÛûˆ0˜l³çNtꪯœB£ÕxÉ•Ft«"b ˜c©²É{u¦þÚ Fž]ÉUç&¸&RÄ3á Œ8㹟\õ*ôãW~2Z5ËQÑþÚÇ*XJáÕá2 Ì‹ä7ol'-Gˬ|Yô¹«þÿpñìÿ—Ópendstream endobj 464 0 obj << /Filter /FlateDecode /Length 1969 >> stream xÚÍYÝoÛ6Ï_á—6P«üDñaZ¬-Ї ؼ§vGqŒÚ–kÙIóß÷AédËi¶dkaЩÓñîø»#ï¤F‹‘½»x=»xùÖÚ‘V‰W^f×£B\æo³ÑìjôalÔäÏÙû—o /©¼O2X ÉÛ‰¯B«¾„¿eh—Ø›L­5ãm¹ r]…ÿýŽ æðÌŽ×SŒ@¼çÓ:å¾{]O¦Æ¯`dÅåfA<î–üú ÑT:ƒ¹@–æþv· À…b•_¾Õ*—ªLI—©Í’"ÏI£ßÂ{?M¦™±ãm¸…V¶Óèñ_¡]‡¶fY¾ð}Ã×*S`†Ðj>&AÜ_‡ÛC3¡)zS“½}ÏÞZ'iX§©)’F@Èëh –n…,ý‰´wÜ¿Ês7¾íèM®=Z´f:°ÜŽÇ¬ù¶‚¦Qm“,õ$Š&m~fÊnvþ'hõý5´ßa­C;îŸá¦IBËBó¡éÐ\hßg§d–Á5erß'Ë™ƒáÇyû(ªú*š³*¢±Ðñ+:¥¼ôQÍ÷G:Y¡¶á~~ªS*ôÊÙ&êt‚}ÕGÔ7ƒ=Ÿ"šÈf¡l„öæ±^ò“H€î€ Àð#< ûšèÌõ %Ý¥ïG^Õ|6), *u²lbˆ\Ç蘺”&á{ ±å¦{°\G ûõé;!Z¦hšõ{áÀ~õŽîÑŽW,Æ-üAçP®p±‰¼Ž1ºž„¨}M¿`EÊ9„ü"Þ–d£0rÔ%üÝOŠñ Ú¿©†VúÈ9×Âî†Ý1FïÀzx—hWÄM.ˆ”AË ª=Mƒx­m”o}¤¢GŸÁ0´A§¸t¸-6ôB}-^¬è>Ú×÷ÊKæƒêÍÀ«ñš· sÄU¸ W,h4Ë."“_À!κKˆ·Þ˜ÝÃlA^°ùuy`Õö4Ú3…¢Dµ›a¤Ü ƒ1Á¦jì³èÉÆ«hïÎr }#EšêaR„#@\¶ÏÏ…†B%ÊøÈ6™L²â1BÛûð²å&qÞF‹v¢Lma“º¾«©õ-¦ÐD8p öÚÌÅA«Þ4ôÏHëufMÅhRJ®$®«RLaûµx‡‡!ºÀÄ]p.€ ,¥ÎÉë#DóEŘ øRT.åŠÙm!šŽkd¶¢(V˜o`߯™o04‰ˆƒ Û¿ã%Xj^p ÖÔš´gÞ1w58l ËxPݳÃXcÐs-otõj0LÆInêFðŽ”Anv‹ÜB_-ÊÈê¼™çqò¤Ý²5?qîì@ÁiÀps\öp¶¾DƒWtðnÚÝ1jÉ"­6Ú®•O¬n#ì†þŽ7–¸‰–C>Ú$OÛ Ñ»8¬H’kº"kŒCø— †ÂVmŸggÏDOßeþÍI£Ô@ùì{O ´Jžrq .Ø^OÃÈ:c/ùŠÏÒŽÙ8¦)Žr:kÿ Aœ1aéßS–ŠOúžIú¹B<ñ·œ¤ÎŽûºÍ!þY2ðù»{ØA‹¢wN~Ò1Ùñü—ñœäµDºÕé`€ãgÎrœfÏ—ë*^ãŒÇåbz{{D—sKÅÂ+‚Qη‰$ñuÜÔ ÞŒžÀNRe›KÓ]'èRa¼­Èœ·¼°@Ñ ZÚçÖ²sÂÖ?X&Å zniß•s/VÝ´a I ¿™ˆÇ1F dCê¦O®aœÃª85½ØÜ§3'««2§ü¼¨ý¤mìP+{²ZÇàŒ¡W ·Rý…èÎ@zquÝÚjaA}b%è Í8ÔäOVì©À£ÛI!öA–ÙŠM*å5#Êly·ëÊ]Õøf­Ú‰¾³ØQ¥:`Ãíç12¶™xtb·ÉºÓ” 2b-ÉOù¶!›äÂg™áOM’æl‹ð¤ƎßÑþ³„¦¡£=¦TÖÆ\sO½9¤<7LŠOÝwƒ3µ·ÐÓ<ÿ¬Íz2®>§¹Âвç¤ii ʶ֔—V{±¦ zŽI6 îçœalM^ ºUŒ¦¦ãF·ÃÔËE‘¨ˆ&Tƒù*rº t50ß¶¹½ÏEULpç]Y NïZm÷mw‡š½L&UÁj`òYbÕážž§È îR% 6t1 Ç®#9ÑÚ;V• „¬ìPH»ÄyL·"0¬_ØûãÞö¢ÀH\ÒUY¢{£|½OPAª µço_m=¿}¢ªŠsM—‹oÆ›Dù¢ï¶Tô5.ÀVË^ ¯¢”ƒ&¥ï`á—d£|£ÛßÞ]Œ>èñ+,T\âÁ"ܼmn°î‰µ¡MïsÚ9v8©ö®èQG³aÁ"O3Œ™7ËNLq‹P\x ßtµ6,ûìb‘kE]5Vø׺äB.Ô`ÅC–LbQiZ8‘- yOk,íYæÃË|éw¸¢1„qT|dÉ êßF·Ž–¸Ç`Ô›Ó[Û]4ɰS’RLÂѪÜu†„aa¥þJÓõÍìâo5–¢îendstream endobj 465 0 obj << /BBox [ 0 0 504 216 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./flexsurv-unnamed-chunk-30-1.pdf) /PTEX.InfoDict 293 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 295 0 R >> /ExtGState << >> /Font << /F2 294 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 5250 >> stream xœµ›K“ÇqF÷ó+zI,xÝõ®Zš´¥FH~‡B‹94ÁÀà ?þ½óË/«*¨R\pÝ÷vu=2Oe÷ Ç7G8~<þëî_ì¿¿{ÿ¯¿ýêøöý]¸çyø¿ï¿}c‡¿~þ‰ÃÏ¿þ=þµÿs÷‡?çñÝ]8¾‘ÿ~¼ §œpüîNÿ§Ê™ñ¿*þ÷îáîøj¶àÈçmô#…ÛGJíVÛZ¿Õ çÿv¼ÙM”c<ü_4ñ§>w|ÿ×nἕ´oáüèøåõ¼¥t¼¾KøÞbøêî¹'Z³»r¸•àN »z¼'Œv+óö^Ei^áB—–îã†î„Xã­Œu‚¡;!år;÷ †þ—Afƒåïéz„¸ïGZQ]‡ÝíÆp‹¾ÃÈî„nÝ÷yŸÏxËç>Á'”ŠÑ™·Còw“ú­ïㆾä1)ï#ú;Ó­ï Ý Ò–d†æªcÓ‰VÚí «ã@}õ›PÉ›ú-\(UOÍ·0<õ¶Hfiß#S1ã=…Ë1éGCÏlJ³ÁÑ›Ê-OÅ‘ô{ñ”㦆±rTЧš< GÒ}“Ü{òÔåX¸ePK· ׋8C©ŸžFÙ”µ-›põIE¯7©â»º©é8LêÚg›róÔ ÌûIýÔ^ÚTº§¦W—1UêÝïˆµÕ ŸVˆMJ·èHÆ6{ÂÕó-ER’XPAÿêilªz… T(µMíÏMÒÝúzS rg]9›ê…Z]4¤_Ʀ ³`SÜ-!iQÒ{¨·Š2жeRÕœÔ.g6]“†Îd#d „Ã|=Z¯G‡Ç Ã½0ޢܥ¬› (Í•ëøK¬ÒŠ8 ÌÚ ‹Þ÷BIÁÑáÐ9à°¹ÏJLëù‚Ãe¤XuRæ¾Ò­D8Z˜5þ9DZX4æ9¬Æ®œ˜#ÀŽxL§Ci^¹ tl øBÁ(7XܯGú£í±ø£ ý¼1ßÂey”ÎÙ(3®8ÔàéQV¨Çê6ÌmªJÂóØÝÑ$“p8 ˜ c¹`ñ1dÑÏ«?Z09=Ê¢ÝXµ'v„ùÙiaÖ¼1"W–´QæäÆܨAÍ£Dµ’©#!,]0]QRC)¸/`Õ[p(3Vô¢éä—Å8òF™o7JÇv‡Q/´0!¾mlÚ“ ;2ÍÆ3”s†®}¸èpà=Žæ0é$tØüÑ‚`íQbc4³€Þ7¶€.õ8üѨ÷ëPæêƤ3Ö¡ÄœYïh¡Lþåf·KÆ”ÞX(éMNÛØ`@¢¸Qã$RŹqhÖÜ0ú%ºnÔÙ¾QÂWt˜‘r7Vì"6¶ë…|`b”P_<Ö[¨îhÐØ¾QRhÞ(«[FP¬¬`nD¬_9Úñ€ g!äè܈y^6B}úÆ®³tAé:¹„œ“aÍ#Fb’”‰´QšçQ3½G P á¾î«0cÏßV=×-%ö”M‡\%žN­#’fXn <ÑK”kŒBUT»£3›P¯Ñ°áh£ÌS°1¾}60lÅâ y;6æÆ™)Ù˜9ÉP¾óª–cj6fÞ= %ó`ÆE5mÌçnXˆAQÓE€^JÌÃZhŠjÛÀÓ°àdýÌôí JW 0[«Ô¸l•*w‹,†{Wm¥;ô€):­;ttj·îO·wc9«nR¼mß>Í;ˆVEUo`<éÞANÒœNùžŠjßs»`fŒúp¨± Üc銺Üx+ˆuå<¦„{Ä .Œ¼…“q›¾QE¨½AÒ¡2ÌSŃô¾ö3]<ÈØPyUÆÎÆ7ªŽ#\§íãæü*íÂjäAf[ÇTr²ž.È“OÝ!¨•#‰èÜ –{/_H1¸2nŸfî16ÝäW\ˆnŽÔ6T«ïèÄg¦oT=GZÔ‰D?¿ \WVµ.gúBSô go¸Ä’ô £:!ɸci:ØôY==ˆ$Du3ŠzP«ÂL ¿òûTÕá͹ºc•uèÃàçÕÖÁç8–®Ã6´—Í׃˜27 vÈIÑöÐØ«²‡<ïήnSŽ%í0¡¡×£µƒƒÓvhï—Þ ÓbŒ‰»)Û2w]uêdßñÜH¡¼_ýæ–ƒú ú}ô÷ cr¤Æueýdû¨ð°ÓBV‡w¬a,½”—Æ;VwÌÈœTJ—ÉÕ[>–ÊC´yÿtyXzïÇ’ù ã~ãÜ QçCTE\>ÖÌgBiì7£w¬’saôœó™RÛ Îêµ[â±´Þ±z=ºQó£‰=º9èýÒì1,š¸LíëDÁ°.Æü þvï˜R¦VKÍï1ÍNJº ~@Ù9Ëð/Œ,$Óx8Ç¿0æ·,ƒÁýƒZþfj¾cõ|,«¦ãAÑw¬¦eÈõOÕw¬‰eËxAÙÇ2çú¢í;VÝ¿°ø~§:)í*ü#ÁÍø«ò_¸ãûæ|§ôo¦õ_XëßÙÆ—Þa¬ÿÍjþ“Œ7TÇ™÷ì~(ÿµ;/§ò?4H,ùߨò?æF‰ò¿ò¿Qå̉Mùߨëb£Ê?DNG…ò?s¨ÉÿF•ÿ*ÿMþ7ªüKSó8–ü/¤üoTù_Hù—»Öµ`òß3EÎä!å!å!å!å¿[Q~ÊÛ{ÈÿBÊ¿á”ÿ…”ÿ…”‡ÿ‰&ÿ)ÿ0ò)ÿ©Cþ+Üa=ÀYuõæêêqaÕÕ#†oÕÕŸ½X]=Óí¬®ž)œVW/,X]½ržY]½ÁõW]½cÞ®ºú`z¶ºúà⪳ZFRß/'Ç’º/Ñ#(«3u£¢µM)t}‰#шå MÏ4} ­ª7ÅZ¦žQ1,@(©åK_±-\ÑWF2›'Qñ…ºQ×€öJIý¾ÚŒz/ÔTöÕî!»®^“¯«cG«[ U{ô‡’š½#‘GGMi`ySëÙÓêI–{Ö”E§wÔ/ÇpG“TèɈ-Rêæë’^¤çÊ–yGÍ‘ª¼ìt‡H“_¤"ïH2Ä[HÔøEjñB½SâaÁ9’3#ΘßLÖ(ðŽ$eM¢¾Ë(ªVÑÞE- ¨‚ÐÝ[ᚥº/Rs_¤âŽû£·{zï´öI&íÅÙeü© TvCqP¨UØ›-Bóõªëe%mTYŸÏ2ÍÕ7ªªcóëêê˜3áX¢.Ó$8OïijµjzÏ,2˜¥oTIß¨ŽŽ û8–¢Ëô`º¡¡ËüÈNÐeØ#}[ýuƒ|,='C™ÙùF•s };–›Ëh7§æ[ÚH1çdX^îQ†~X 6+—¬š'ÍÅÉ9ùFUr²‚d.±ÔF!ߨsm£ÏaÓl\üátuuÔ…èîêâ%û{Ä ÖI¦ˆŸ¶e"~Úº›".ó­O1/¦ˆ{†ˆŸÉ枉¸LAꋉøikiŠøfŠ8ÄŽâM?‹1SÄ‘ŽY릈o¦ˆ{ÏæE|³‰øi¢;E|±‰x0“›"îXE|±‰¸ã~9ßD|òñÅKĹqÞ"nl"žm#=E|±‰øÜÈ›ˆ/6ßL÷ —†‰4E<Ìþ7ßL÷ ßL_l"î"ŽM™"î"¾™"í…)â›)â1ØFˆ"îXMk3»:¼cuqÇ* ›iãŽUÇu£™åãŽm£ºXK–a*96¾Æ®Nî¸ñz‹UÑ›–;V/DzÖùkb¾™fîXÕ|3Ý|3åܱÚùfêùfúùf úfúf*ú…«ÿ~Júb³tǪéŽYúóÜ]˜©o¦ª/þÜ;0óU¢CßjÀ¾TÄ·tÖ»1Cß´°÷ðÂR‚oëfD<Ö Fb\MŸØÑ9Õ·Q¬3•"¢aW'³¨¤é OF‚9ÒþioZ¨X ¬>sb`›=õCÊʰ µo™dÒÉ ¥X œì‘â‹å8‰ÌÒÔäi Ôƒs˜â¥=2éûLÓÒ Îq˼)_aÖ,Æ¥Õ•Çའ1Ù+hÔ 3Mb&aI/- ËX9g±Í-¡0s̪–)XR’H¬™l +ƒ‡–¸P²˜Ï6QBÝ% -5k d–8Ð>XÌŒ”hŸD^ã¬3Mº€=…­JÕHZg¤;«F¾2KX©è#–XB Óqdx™™Y(3òñû`NU#›Œ5RUé†Ön %t†ÎÈÇç“£ÏHØ9¢¶^Â~Ñö «FEéH”£î9‚f®Xh Q:Ï+¢Õï#n”¬™=¢áMKv‘†™D¸+#¯=ƨ6lºFyN²Õ ª–8QBÔö¤ÁöÙ£ˆ(™?‘ ¹°}ÃîµdFžÀÊBÐöAˆN‹d©¬òÀHœNοXYR—©%¼XYbÖù±HÉEY–i$7rÒ>߯3SB¨ôû%SYÉ52rÒ¤„Õc/l_´g¨âÊÝJ´,~0³ s|Faû"E0ÝcYéN0¡vEÖ—sY91’ê6¬ë%fáB¶Ìb%ãt“f¤•‰ÜÉÚžifÂ:Þ)ê%h-¦È'˜ÂšùS²¸íÞRâã£dø’˜b&ëüKxUÕXÏÏ«ä­Où’æn%pýþ¢ ¬¬ßWôÍ_°Æƒ$㌙9,eƇ•Iò®ú|ò‘ï§2†íÅ,cFbf !}XÈŒI]VÆ€ÜÆ•1²9 3F¶‡¹Ì9¯]<^À2aÆÈ3GhÆÈ•ñ#׵界\ÖWÆ`®ŒRÒÜ_E¦ˆõ¢V*;cä1Ôðu›sÕŒQN;ÊŒQ‚…HfŒ,C0c”¹UeÂÀ#(—/J²pÏt!È}³E±"š% ÈKÛ¹B2€UëµñH}gŠ2kñL¥ZZcž(Sð˜&dò$—%Êì:& ùHt9ßPwŠ9‡Ì‚Ts&ˆ2©0?ÌW¼-=ò~™jØZÚ­Ö«AîŸwjÙ¨Ýn™A‹‰¡Zܰ¼ ¨­²´ ØûÎ Õž³YR¬yç™ègØ)A0µ›K²¡.`Qw:T¿²l€Üv2¨–{-Ôf¡‘©@VX¬í‚†{láUÏïQÐ΀‚BŽ+âã €´7 (Oäºc>Ê´Q}}à~ç;¶hÙ|ëÝâ>Ê;q½üZôõ˜•¶l ]è‡-å¼c?l.Íʈ-Üs·g¹Ív a¸›°ÝBœÐv ¨Î¨Ø-„Yc›»…jµ¾¹[ÈV÷š»…y¿s·`Ëuí¬*>w gŸ/-r· ‹­Î”°ñÓžÝÌÝ‚tóéw çÜjÙnA†…ýe»…3ÌdÁÝÂivkù@FÕž j>XO$™d§f¨ù@fDŠ;Œ¹`>ÙâóÁ°M°åƒ1­”ù`Ø#"Ë(¢ôdbRᙤ© —Ì|°òA·²|Ð-ÑZ>Û®mçAfæƒ^ìdæ<âH;Ò왺U}-t«ÈY>@Á¼î|Эžgù ÛsaËóÕ2Ë‚Ì%–ãÔÌöBéÌÝ>kù Ïíó‰ÅÌÍ6s–ªí5,T2Ë•/SÌ|P¸´g>(ó½Ç™TÂ\>H—|À¯²|°öÌéšâe héù Úu-ØÌ™ùÀÖïÌöäwæÛ«Í|`‘næ{ùÈòAµwu,òö™ª­Ë‚§{ϳvæ¿çëç‰Oùï«þ§‚éÄ÷_ý5ão$»/¾?Æúe¢þQ **2ßåž^¼>¾À‘gÇ‹ïþñ…~õ_ÿ,¦É°ÏÆò´Ï¢ !S‹.O¼°¾À6?Üžze”Žš~8¸[¾þ@ôk¤è¨ŸÞÿò ÿ|2éOTæ.ÍÿtPH§Gçoý/÷ÑõSÁË/ÝñùKÁË÷ñ%—ß >eŠý¢0ƒÑ~}ùi¢û-â<|ùi¢û)â<~ùe¢û%â<~ùa¢¿Å_¸2d·‡Vªnë{ôK&pó“鱟DAýrÍúØO"ì¢ÏÖ'ÇÇ3úñ1ä´ož/=Âõêd,EI¤ ¡P®þ‡/þýtíøâáþÝûãþûïŽïäßäŸîß¼ÿÏW÷o><ûãñâßÂ'´Â]úK×¢ )0éS9mÆ?¿{û§û?½|õòÃÿo¿?~¸&]t|ñß/ßüÇñú­´§È¿Éÿ¾;>¼=Þ¸ÿðð-ûéEòÙŸ‘'{;˜(»K<„ïp4þFûoÖýi诗ñ> stream xÚíX[ÛD~ϯ°úä¨×co‹Ô ET¢@»< ŠVNâ\h‡Ä»m$Äoç\íqÖ+V â¡ÊõxæÌ¹|ç;gfzK/ô¾½¸={ž ƒ",ŒwµðLqyY’EœxWsïgÿåjlü<ë#ü×ÀSïqª:Œ'qùo`\ÎÆQæ„ÊÔ» ^ú>ÞáÊKüŽýk\%5%*Zˆ3ú ¹w²ØŒ¹zóìu»^ÆQ¤YA‘A¡Q(ayk7‰“ OS–86AkôChlïùxE±¿«Ñà¾$™-Ʀ;Ö3–¨4vܽ%=4õ!L ¼‚ñĆ™E¸àë/`xÏn¦‚Цèa§°–hJüžE‹€ñ¯å{CÚÿY`»'oÑ'‘ÿ<„XQ©)ÔÄœ“Çò·˜žŠ¡G·ÑÞJ£«4ø³ÈIì̱ ²Äz‰-Øúz¨·Ë<ñ§ #õkÖK3­ þÜ®%¤FC¢ëokØšùóŠB'ÙrÇIÃåÆÑñ¼$lpu‚|¬q„0ÉÚ*µ+ja„4-rGkB,¬7Šô¬RºnK`è¶è.ñ•¶ü@Õ'Â'ì3W–Ìó®âj9 År~â/±>°Ü^’O(’ôx)UVø´±ÿII³â­ØÄ‹4ïqϘ „*b,—dˆ¬Dƒ•—YnT|ï~’úå!RD¶r›Á lž³t[i>œò(ÍÚ”£èFH òX®$M_Úf•Àrâù•òºB,"ã?ª7“‡HkZ×¥ÔÒpÇ1A¶0Q›XÞl™qQ®~­ÕáÌ?bP{MÛZ[MšsÿäáRê/WX€‡´›²Ëùß¶]ËD¥%ÀĘC*³ì¬ÅXl…½Û˜ÊX¢.¦ÝbCÒ½¡·«¡GÈ#‡þÛº‘ЉOÜWhL€éÎ>û¶w¼ÖšÀ}õ"eI²ANìR½àlåi/[ID¶í¨ÓqQ1“1´ÄäÙFAhò®3Zæ@Ãi¤÷ 0)¾ 9uJ)8õ . °õl˜kpò¶­+<±þTÊ¡IÂ^…OBªž2'Àú¦=:©â¤Œ±Abbµ¶*o]˜²ˆN•r^ ù™ÚÀv5Ñ‘£à>vÜ3=gšiå¯ph;ôÚ!C½c‰ßùÕ•4·¬‚qéÌÏPùŠ:¶^D$ .Ž0ƒÛÀ@¦Eh”³ƒÝSÿ©zm–×õÀ<~ìî)t#æ} ×éZ!úˆ»µC¼7²&ì¥N< àdbGßà—ãI'1ßhøžuîìß¹3ÐE&„×”:‹.ä}ÁVîvJã_Âóž·ÜhPì ¿ƒç½,Ñ ià,t¢2zÝsæ<âGDöþLD¦O¢E£º'`=¨Ú;IüÁ/Óí©D{%MAš—-sÇD)âS¹E”­è‚OÇceÚµWé¯K~ͺ`_9Á*ý5… å^@ßy»–}7¯J¯Ò3ú·‰{}6ÿ"ÿ{“;Ñi·jO“÷©óm)O{jŠÑèaøÝ·]´+ˆ¦UÇÔP`ºtÿ~Ùq’å['Ã]ps);káfÕÉÒFDÏ«§:ã mzz¯“Œc®DëVÒ¹q. Uá5~ ¥äKvc¢ºÓZ4Nžnœdï$ؽ£\‹æÉ™o-Þ÷xñ½^zdIEÖNèœÒT“w4\‰ômÿV…Kš4í?ó.†z¸ÓUgì}u5Âkèîÿü3AâͶ£ßFAž%aD‹Î–t‹L<ûf{¯êÑðO—& nâè£%ÎŽC´§"´-è¿Xÿ“ùdþ绎ûÛ“¾¡\þà°hendstream endobj 467 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 468 0 obj << /Filter /FlateDecode /Length 1089 >> stream xÚ­WYoÛF~ׯ  &¹<º@“ÔAóÐæPiaÐE+µ¼*I©v~}æZriI­ ärfvŽo®§qçíìÕbvy­”~¡³X9yèdIæ*qKç³Eó?ï.¯ó–* ?É@‰\ÏC÷®únk¸némî)¹Û²…—rSýoE Bžr7ó(ww(Ü Ãëð¥ìÇý=÷¢Ì]"å^ ¡äCÃ:þYËö;–ÿ#´…¾t;¸µ{ `HÈ?-f!,'ÄP“8öƒ(qªÍìgIÓZËlÂåÏ›Øy£gàgX¨ó,}DZ å§‘bà^ßaT¢ðÅ„©À-›ÒPºHQáþX¬HòÞÁMãî’$€H"5‹3B†±cRdIz:͆ðÝn[xO]Ý2ö! NÂ+Ýò¢Bk;¯)K[Ê JV¨p9³¨•\ûJ©_Ša nÐkNg-©ì09€Ÿ*?‘’ãl‚<Î#·lk^4­Þ žÖK&¢´nj³©n™Œ‚ p1)à0…<„C ¯/rŸ$?M]ùyšqîå…rwTÀ`œC1Î r ‚ÔðB£fåKÊœ‡w‰è(y$R)ëK‚Î óÔ#ìàf--€°ìZÓNÅA;uL¶!ÇwZc0{‰‰·ìeMuIôµ+R3FØQq0(Z-ÙÜÌ8Uîoó<6bKm¹µÝ”ê¨8•ÊY°>–h•'~%ç':õ“´0âbNb÷ •yL¿‡¡ŸÆñL0ú¹S7Ò˧£<»cæÓÀÏŠ¡ÎªV€-û^Åã§Ý'qŒ;^?ȨƒŸŸ8mã˜åÇ·3ç3íˆüt2©šÉ‘0H'‰+^æ~šeìÑG0ó`©aßJ¬¥<Ÿ¨ˆ“@Jv+þ$l`…vÓÈXóI™D_àRüú=ŽÂ)g%Nõú4߃cçåGœ%ß‘!<Ö‹¹&ÙhüÞj‰v4ºÅKa¡Ø•\p½·@,E¾Uã—“eÿÃ1ƒñ UíDUiywÒ3R}Å´÷Z6Y$¸×ÖV *¹“_­è–¢åÿ¤;`Ù‘¬„S WOÔÑûr,öRŠcüvqîªQô O?Üõ –¿ÂõIX/åyŠþÆ´ûp¦±0š>ÎGl%ˆ™ÓÓ´Š6'©Ñ}ÓEg÷hrТ aƶ×Ê3 j„¶” »QêQŽ2Ód< {/ ï§yêeÚ\è9­„eÚ°;^USÄ_üҢ͊U¿[™mùƒfb_M¦‘{k <ˆk[Kùƒl¹xæÛ€Î /Þ‹^3æŒÈÚ:X3z¤I“w“.Þ[EÓ0Ë@¼&=N‰çÈ^œk#[´äóÆþ0mS¸ÃçÍ:ö›6é}endstream endobj 469 0 obj << /Filter /FlateDecode /Length 131 >> stream xÚ31Ó³´P0P04P01V06P05SH1ä*ä2´ŠÅ¡Rɹ\Nž\úá †–\ú@q.}O_…’¢ÒT.}§gC.}…hCƒX.O… † ÿèÃÿ õäÿ3°ÿ?ÀøÿCýù ì¸\=¹¹ >"„endstream endobj 470 0 obj << /Filter /FlateDecode /Length1 1370 /Length2 5960 /Length3 0 /Length 6892 >> stream xÚwT”ëÚ6R H‡ÀK7 ‚¤tw0À3À ]Ò !Ò-©”´€4‚()%!ÒݺÝçœ}þ­ï[³ÖÌûÜ÷uçs]ïZÃD§©Ã%m·‚(ÀaH.^n «¦£Ã @ ~nˆ‡‰IŠt‚ümÇaÒ‡¸! p˜Ø dÝ `ä­MŒ¼ªÁa€²»ÀËð ‰ñ ‹@$ú7î&È= 6€7  ‡A8L²po7¨=ò¶Îß«5À+**Ìù;v†¸A­Á0@ Œ´‡8ßV´;:pk(éý¬öH¤‹§§'7ØÁ w³“dã<¡H{@‚€¸y@l€_#ê`gȟѸq˜]{(â/‡Üé vƒ·'¨5†¸ q‡Ù@Ü€Ûꀎ’* áýVý À üYÀËÍû¯t¢%‚Â~ƒ­­áÎ.`˜7fØB €†‚*7Ò É €a6¿€`'ü6ì†:­n¿[ ÒZøvÂ?ó!¬Ý .H7êôkFž_in×,³‘…;;C`Hίþä nëÛ½{óü¹\GÜæû÷É ³±ý5†»  êêQ’ûƒ¹5áüÛfA‚ HÄ@\ˆ—µ=ϯºÞ.ßNÞ_æÛü}]à.€íí¨-äöÇö€H7wˆ¿ï:þyÂáål ÖHÀ b…áü;û­bû×ùöþÝ ^€ è–~¼è×ç_Of· ³Ãœ¼ÿ ÿ}Å<òÒ†ŠÒúFþ—SFîør ñ\|‚ @TTüÿ™F ýÓÆ„*Álá€è_ÝÞ®éïŽ=þP€õ>Ø€æR‡ß°þ›ç¦ Aõíïÿ™í¿Cþ$ÿ•ååùw¤àîäôÛÏúàÿñƒ¡NÞ·ÄuGÞŠ@ ~+ØC )W buwþo¯|+i˜Ó¿ E(@½ 6šP¤µý_|ùË®÷KiNPDŽ€þz·\¼ Ðùnåeíxûþ@Ü’ò· r«ž–”‡YÃm~ÉŒOP»¹½q@·\â|yoõhñúMc€‡GÞ†·ãù¶p7œ_w*Âðhÿ2áü#­µ»›Û­º~_ýmͿϿ¥ xA¬q¦&àÖâ¡Õ¡-gUÒTž\ËŸ0ç[£âz"‘Ì_s}íUï¦?q•±´)'HÑœ, žð£bß9ò2íÈ šKVÌA¢È÷,ÉìqåõŸvØAhlà”vŸ…S¢–ì&hQã[š ›°$L\… wò¯V¬\·"VE7g è„€.™ +ݺ‰mDǸˆühdJGèf’ꮫ¤÷ù5w*ÓCqî½d—öñÛ·¾ÌÞžþƒ|•®J¡òp" beºì(H2•(Ì2‚'²¥‰ü»c](¹1G¶îù[iuie¥x E¡Ý}gmˆF¹©_Ÿ´C«ÚƒE)"W`ó|dÅ}ƒêhF/éjŠ«N~0(.Ð5IÃÒªSPbEè÷,fì´—oCÁõ!Èvv5!}Y¾ôßw·_þ,a!o.ÅoqÙ‡ÀWØèG[ýÇåU,JLÙ‚dÙOÎí¯h‹BƒSŽ+B¦>ÈÚ¬ª1¯‰| ‘Öëã3î^iÝAàÖK£‚ ¶ c°À©í݇½'áEüB©ÔÕ/ï=$“{¸Ö&²³Qšç%:(Ÿw„DóÝÄq÷»ë"FÍÛ4g]æóLð˜2Ñ<óB±ÿi _”•iU]ÿæ«ÇKS}°íÂHç‚§Ìæ1@Ìœ÷†­î̶hWÌÒ§ ïÁ-=§&ômílë%UÕL'‹s¤H3‘vÄŒ€˧W¯‹ñ&S)¿¡Ô GTÖ±íP݈2~Ïøa·‘Õ”o=Ê9z¼Ø×¶æj±sÀ©ÈŸ÷ê°&\×:‰áï²#ÄÆdÉÔçõÄ7Äj\uÚ´Mzßl=«J×/ªº­‡¾bAU‚e½ iu±OÙ£6•UýÐç 1õ³›m哽÷]·`ެ×¼o\ïä¡x+UïÞ¦ ¬O8|V“Nå8wÔŸdß­é°|¯&é'g½eDº±éqÿê³%.ŽVÏïSÓkî5$=6&tþ AZ0µýóÄÄ­xwÑq”¢:”æ× ‘Ê%µkŽÛ¯Ù m‚Ätê#ÙþØEíØT°àÃØŸÁTg˜×õgD¨Òð{}<¥Ž[^m€üw;g˜dɳ躉¡A7Léâ).|ZÒ*¡®Â'Bĵ9¶ÓRr™wÙ«„|žwBêœÓwB%±Ä+ÂS—© T”6OÌlË; Xš—$‹iQ¥1oH©ë„RÅ‘¡>«1Í~b¤ŸÊyô*WÂHýÔ 4‹£:t8|ýÊ-³0BÄÎÐÄ ùˆj™ú±¢ßãaµ)õÞÉåË-9'VuÙjú:óû‡0ó ò@{<½=Ù- ®¨¹²mE ©ŽŠÝ–J¤6¦‹ÜÍürÊÜJÂÅeCÞ–7éîÂF×c´sšC;Û«MAUµŽ-gi×ÕÂõ@1ç ELCӳВéeÇ # ™ÙÛúë°é'é%•ÏýEúÓÑIP?I{ñæpC2bÿØÆèo7j½9Çø»>Bᆠ]“ƒMÊÁþbëe„FtÄs»Wc ?ËÂmO9uJ˜êКÛoDûŽ^Â):¾©è4$Fչݣ á9ÑÐx)&UTǾiª‰—¦ßÍã1à Š×˜µëmJrHÆ‘H´)z!ºÖë¦%_B 2ú~Ÿ®Xrz]Z^ûêÍ|Œ.ÃæÞÌ£8*÷oX“Œì¾Ô!YÊI:4DúºF:É¢˜8ƒ›Î5éµ£Ÿæv»]áÀE+ Ž%¤©r$ÛsÛ±Èõ«ƒ¬‘Ôsóº(e÷3Cé$vŒoˆl6 Gkч ÅÓAI9â¹*®4‰©G¢v;?+°$¥ºG“ƒ‡ævÇo…ù¼ÒÜîK-Áø$YÖ-^a›yr+×ç!°“Ó@ÚYÎg)ëÇ¡¶ï%,„gA‡ÒÐt\ZòM«~™šÔ´ÂzÅg³™vQIÍ0òÔl›¶ÊŠ7µ2ÊŽé_9¯ LQ¥ù‰Ï`ÛÄgÇYÏSû˜7Þ´˜Fwt~žnˆñ0€Çö#7W&DX%Þ/KR€ìT¢Ž«•ÉüøH#œP7‚1¶® v’´¹ßñÄ,3‚V\hæj$ˆ‹\Ûºd½ï`8Õ §Xúd×ô¨M옆:$ów*ø®›@Ý^EW§´k'²éгü#äÃ]ªÐ, j¢LØ|1Ü‹®3š£Œ³’iwcݹ7™^݈’n/”Hn>Ë}0X’°ßy'A’ `?-ÄÑ>òîëP«‡*ˆæ¨ôàæðt.WtÆPÖDõ:•ÒxXˆ-š¨›dL.Z¢œ{ú|ÐýJ› DýrŒ^x¦‘’ð@Ý»òã@¹‰Pg Ñ]h9úÖÞÆsÄ“S¢ŸIa/ IÜúãdô?Až9[ºI‹Péë >=ñ~øfÈM‹k0ÛüôÌ#(Ïí3uüV£Hܹ‰w¼ BGó±þfo`¾’‰3»öÎÂZHÚ¼)ÍïÛR†±»«±‘ñ*c9£×÷kG¥«Ö{ª?ìLFOÜoŸk±w-q…¿aK´P_ûз Áâ ßf‹¯ž¹™Vdšÿ=ÑŸ°¢°o¬¸K·#¡Â3dÊÒfö˜Â½Ú¥Ì­Ò eÔœ—Cšõ Û‚.¬ÇpØjRUòpYË»›àœ£ÒLÙX¾¤kPä³~+Üh;œ²+Žӱð<wû‚E¶&±\èÈÇ«æ8ôÐÅ{Xá›ÍpNX¬]¿ý€óìèŠê›ƒW¡ û.»ï°s ©ô¸ØÅKªŠÅe6äÈ@æFq˜½OÜ ã›5­YHÈ× ñaQCs;åæN)v xèŠ8ôa†N¶¤Ë•ÒSdCò‚ЭÃþuŠ÷o›·p,òaï÷2âj¶ª™ÞL @üÕú…¨G“øR+=¨Ÿ‰_v7eœ2t=3h1¬‹8P .ÍQåÌ›dݲ:å#cAíN«µ([õߦ¬VVÀÉ=>EN’]ÏZy¸Z‹L.Ód©k*Æ­Ù—µ¼¨ †d:†„ep®—›ó9éxBr¹û»“;Ö‹p»÷3ûÆVŒ´? ÊÀOÄ&Þ-â½& |ga´îê0$_î/ŽcYÙ##LìçŸÃo£z#Ç< aÀ~ôåÉ ¿?IU¹úçD¡ý|G‡ôÖ±™ærw½E ˜¸"ô„ºY„[ËÙÚ7@føò‹ÖË|¥é,ËL‡z2ÒÍœŸ‡¥ßªP‰ d×Ξ^­íhBçOhggs$t8’@6\AuºbTÀÝWj<,Ue¦ç_îÛÞ´Í»#ŸÎpÖ_É‚ó³jã÷½þÃò»Í¥Ö¾¯3Nï°*éCéÏìÓÅ&²F:Ì9„ÕßÞ‹:¦‹D‘ßë-ýä§X‚WÙ`/ûþqî.R.+DWêzJžÎRÂ̾i³}ù.z­v:~÷ØöP/Œã†¸–¶ÙÛF !-r®ì™M»Nçí Ò*,²P~¸æ ˆÖߞΠ«jú™V­‚ò®§_ü Yçb‡4Ñ%®7Ëû¢håÉ|§£}žüZ^OÜ/=+ÊŠ“Û×Ù«¹O9XœÓ•negM^Э2ÒîKðYòªTàÓåruÛ`àÂÎT§Û;¾˜àå e ³áŒ¨›ÒU•ýìÕ"o“6²o)„c¢S”h4&ïl&ò”Ø"7Í%"a ‚wØÃ£:mƒ½½‹¿¹½L*êñ‘ylý¼o—ñIkàeÝÔw…Íš¬þ“XU@fù)Î)‡oŽ,Ë].Ê`º gmŒcô°;u«úM’¥)­ _åã0vò¢!¾¼…—× îëKÒœ¦%´G ¹áÇZ\ŒÝ¯7Gž¨JL|¤ÇpuÙó+©!¦y]ó>ÓäK½˜´”RÜ,IyäC’šUªrUMÓþº‘m²3[膌úå Ë²ü®cV-«ÿòCRŸüJ V¿>ÔŠè D‚yÿ>mtÿU² í>ŸCH:\†’™˜ÍwX}s-”ò#5¥{ûª(^cÒÓì+Àü¢)àç¨RíE¹¸;}tw´¿­o$P$‡$äZÚ¶šÐ膔E‹‹”¾0Zöq£“ÕïÐ?Œ™ Œ2Á›â¦“L8uÊRI–1mgž2ž¸äœ1™ãîo–ÜL)Ë´ËRâ|£ÐÀîÄ÷rC+î`Œ2?¾,ûƒÉKâDIl’ØãK-9©.hïq,Ü©}fû’¥ì®Ñjs˨{sýû½ãS™<*{çÛŸ¯Ž:#±ÐAZÑØDrZ+޹÷ónžt$­%à œ0¡ÒPÂÙe+ž4ÍMšéÆ+?q½õbdÐíJѦÍhi#àIXÔ¹> èýý¦&´›ØCPö8vI“!­CuÌ3\CÆVÝ·.¢ØÏУ&%ÍÕB]°Ï“'–>®Â‚^ëÕÉ &s²áæ¬àš„—ËFt¾'ˆö¤:çz\͵Êàsè·rKOï̺o(÷JÜ|îm=I!ÕñJ¡t¤¾ ´Ð.e6÷ ŸŸŽšŸnã"‹ÿVÎ'äGìqô*OR{8ñÂO`¼þÌšðìòA¨çYÀº¢®rVD0úE÷‰ÆW1¾¥l“L·þÀ×'K¤½£V”T,IJêò®Dö¢Ýòìéõlε¬Q§Nººx3•Óetr 8z ;I9k§yW++“—÷mÍËC\+iy63b¹6 =§‚ ] ì¡¯{÷›xŽl´ ˜¥PÐǽ“ l‘+Kôz¶|—,GêðÁ^cþ ÔŸ–2.j8½$Åôóh­F©$¿™¾®\8úË!ö —ÛøåÌÂüd)/¸dæe“¤œ[ o ¡³r„Ã! èmp ëŰ\×ï2PÍÖfÎÉêøÝŸ4ãŠ,ªÊâ*8F¤é|Yô_…ŒW‚m†ÚdðL|ù¡;+Ç™fñVlˆlð]’³«¹W»cÝb$Æ*‘áäF/Íjd‹‡Z”%Ì„«j,¢‹ÌÎÕ*õeÉãHçñìF¥oTâlžáÖ™öÆ.‡6ƃŸÉé­<@ß;zÊÙB~t…ÚÞPü“V†¿ A>ˆ/zšÑõüMÀ½òY…@i.®ä[ö•ª>ç¾wÓñWÍ/üŒ×ìûÒ³‡»¯+©QâȾŽÑ:ì ºú›˜Ê3𨟿$r bj`ÞDz0T¹Œ› q_~0ŽÕ=T$rÿ ¡êõÞ³7á êæ}?@òLißå‡ ø«¡eb % õ:¥±{ó—&ô22ÎJG{Æè‹µŸj:õ&_QõÆÉ:Ú>/`±àÄàüñ¨ ¯‚5ýu±P]̰qé>`Ê}ìÁ·®ÖŠ*ÁŸH¯mƒ½#PãjíV;¹?M2/&~N6Îò”fX‡HJcÝtF»CêMÖÊ»,n(Z²R…D×Ì^H¤™ä3¤´¿¸_…hÛI²ê(Nþ©Yá½3ðˆs€a^Ž=Ùñ½™n©qµ¬ƒî0îšÞFÔpûhOLÿZIâüL&5‚«íûRïî§pãÐv]3S+7Ùå³ÅÅa/~¦MÉgØ%™ôSò‡?ŸQ]÷);•¢"J^…(ð¾S—JȺT¼ü0°ìV‘Úé †¾H³H}Ìø<Ï—ØÞ4ãMg@ÞÏñüZûÓ/ÊýÛ:Ë.{,nî5ëܘU ?4î›\»0PbÆ{2# Œ¬G::6 >[d´b A¶¨N;zá¯v#•àÁ&]Ñì†÷ÕzU>Ëæ÷ Øµ> '^˜ ™HD¦J~F`š7 Òª!³gìÐü¤C?êÊ׺Bì7óÇ­F¬¶÷èL‹…Z —žÛÇGo÷Šæë`2*N£Zá[*ê&Oö±Ø4J­‹_´»¼ç3£Ò‘ÔÖ¢­pØ–…’pûà‹]c¤òF+‹½ ajƼc¯ãþuXÂÃaßmeÄ‘ƒMùAlÿ˜]Ÿ5vÿú]–»2I?‰T6ïäWåTßa!+kY7®ìl•H¶Û "|û~1-f˜vÇÖ«‰Ì€.­b9(ºñ&ìÙ#<ªýX“ ±°%b6híf«#ÌîÀ¡OäÉ!n¹¶ƒxþVJªhCŒÏèÚ"ÇJo‡}<ÏxÑ„¡ÎåzÌT³Ïj .öœ…¹ ‹‰SIÐâ¢õç™Ñ»ô¢Ù¬õ9F =?šk˜ˆ*ÓýyŽ.$ù®Ãq6ÆÖ¶d)­Ãÿаxùõ~9ö‚ƒI ÔËæ))VÎõiv¥Å;Orîàp‹Q˺ÿ¯UVendstream endobj 471 0 obj << /Filter /FlateDecode /Length1 1667 /Length2 1318 /Length3 0 /Length 2332 >> stream xÚµT{\LÛq5Å¡"±Ä¤hž*¦ˆéýšÍ Ea7³ff×´÷˜ÙcfJ]¥º:]%tqåu„ãÑUÇ[Žä‘r)…×ãxu?)9ܵ'úø÷~æ³gïõ{~×w}‹9V,a d" & ŠÅcs}@¤H„Qê0 Óàr—åOj€Çæs¹ &3@1 '‰@Œ‚>€çM©j)˜’u…L ¨C~H4¤0©Y yÀ ³,Ĥžb%bz䆄 ' ;J µf®RStÉ,]‰ÎögƒpLžLõÉ8Àg‹Ø Š4"#ÜH$B5¦QR ¤0È$A1-KÜÙ¨°Ä Õ’ºOX$RYˆFIƒœíBd)ý/…¯òQRä§û @:]$JãÄA<½À‹¡NÓm{`sEÈÀh(U©#S, €›š¢´>ŽÑhd« zŠMêTl­Æ‚OªÆõÀHê’zë Zˆ1 D'¥†Ý裑¸zH'“ÝÎD%JBvêO`ˆŠ®©éz¿i£Æô–ÜH±8¤`8AA#ä(Â(ƒ,´ØÐºB`Ðéè¢Ï.ÝŸm>C÷'ÑÎâ5i阱ç‰a„AŸú7ßn[Nz\Oé»+B Ä5F¯§Ï ',6‘0*,8H"eE"í,‰Ø!Ø”‰²DÓõ„‘>À[à xè¡uD(È”„ZÏ é ÄO©3s¾§îd‚4ißu)qB¡¤ùW´/2À°ÀO ÈÄøbSA p\ I®æÐM-š¡Í<ÚŒÈHOÓ’Z Ä4z˜Ž+!z1ÒôØb(¦§}íøvÅàM \N!¹£‘aXª‡JºÍÉg×'!¸ñÙh’ÜѸ*HBc ¨dp¢H ÉÂíÿ3m=z4š(,º}‡Õž¡X ®1'¸GÜHƒvûN\Œ› BŒSru7¿ÝöîBBB¥€Åóds'{ó»=2zÄ4HËè>Âéö{÷ð!™Ê“ ¨×o®Å)=°£“ ‘N¬8zÖ¬Iß‘%2ˆ“ œP¾—7Àt:ÌÌà"eð½¼@I]Mé› )”´*(Iƒ>^>Ï pÐ4Pmg|‹BLO¦EnÜ/°>]Y–µ„Ò‘Ép®@öW!ª7Íã"­ðý>%|Ó€ùEæ_eûû“¦4ÂÅâ{¡­ðyÞ`Š7ý›Ly÷ÝaQ)bïóš\¡ ÊM7H¹ovRIe ­uå}™ö³=ö~±á…ÖMê~qr üç=8c[æá¥¥®ÛÈÈPŸ„ŒâLbG,3{¸æÃ#E{¯¾VÌšyËe8 ÖnžÍ–e•Š—–Ÿpqÿ=|sYÜNÏúÒ£…GGYí“Á/';Wò¯|òr­K|ùÑ–-}Û¯óª†é4CMv#;5Ö·¢>v[•6MlXX–k_ÞO{ú¤]üò'cR§ívtò|ò.É@áEàñæi×òåÅZ×ò~¿Æ>ŸqÓob§º¡xÍrBìøÇÔȃó~;žúvÒÊ(Çg¢$?í •ª¤mÓÇºŠæ-;bô1EÖL¥2¬:Ro®\|Yt®i´Èþ>„±SèÐ8q£œÊâ÷ìÝæ¬àËŽ|êi~4¿fmÞØæ“*¶xnJmߥ¼y}~çÑ¥uöõ™/î‚óiMÖ­×Þ¿¢Z6í(åϵæ_=Po k˜[Óºµm˜Ík‡´Œה|³ÆÕÍ®4´bQö#š”+úøÝ¨ì3ê~Äfqí”ò´9ýjŠBÿxµ¨Òì[fU4/—¿d"Ó á|ŠSö`ínçVCùè>?9Ïîʈh—5Üà8Í06¯yK®Þè§‘gļZ( |ì6mŒêzv+âE™päMsÑ9,âAæˆ÷‹Bu[ÞÍÛ·æöÙE£Zìª=}7œ:|%ºµklpºWÀ-›ûí‹Î¬oYX¼TÚVðëÔñ/½ÖV÷‹³_ØøCN{òÞÕv!obÛ.ÇòµEcö_0J]Ê}+sü5Óúço.$¾òk^SóxÀYÀæòwÞǧ/ù)ûàâûÞ%·zX-4Ûîo¯ÒÇ“yÁ {9î™:ˆHc:NÖ Rª¬ÇŸïšÆ´]pf«_ICÒáwóÆ¥§ÖT‹µ\Û2¹""« øîï5²Ú2œ²½³r2c|EÞk'$|xüÔzEßéÊûcÊKƒ6o4ßÞ•hî•uu›Àwî@öî{÷³\d.ÃW] ¨Žåf^1{ɲ+‰îª D¬@»jS™cBî€^uuîœ[}-oú±«ë£d…™[Zïù:1¯/ùíÃf¶ç8>Џ—ÜH¦ÜõÜ£eÆ‘có*®·TÕw-#@ÆÃÕŠ™YÞƒsòe­]·§WÛös„ö/õíG\ Kœ}ƒ†¿®Y](’½´~Ì!I_hZ·îpGoÞݬßEÏš—„ˆŸ5_;ÐÄéR§®™C[m}ìZq=Ûžbœt-§óñc¦®\|ˆÛò<óôGS’®­_U’óßÚ}ý“ÃÞ:Í´æÄ‚粬ÙM»Ó'½zXšž!ñ?þvÛæó3ºÜ’à©å†¼áVT‚`°»ÃÔHÑδ;%BO™ÎÖdÙ°îÝÿ> /ProcSet [ /PDF /Text /ImageC /ImageI /ImageB ] /XObject << /Im4 473 0 R /Im5 474 0 R /Im6 475 0 R >> >> /Subtype /Form /Type /XObject /Length 503 >> stream xœµTMO1 ½çWøŒÔ`'“/i5[ *·-#q¨zj í¶‚ ¿v’‰æc©à°Z&Þ<¿?{‚šàU=òÊ%§ ÄŽt„—{uwü^ò†ƒAö5AR÷•BÞeï·z8S¨#Qð¼•ÐÅ(o! «=tºcÖHœ\‚=”À›ÌGÞ¯£œq4E‡”Dqþþö%—ùÊÏ ôtý[µ+fòKÜ*Ø  ¿àüšÍŒ0s š ¢Ð½Õ„ Üf–wz‘‰\ŠZ¾£2I%çÊ»N§æÃ<ªÈˇ½?É ÖÞSŒð×–Ñh|ïÇt²txùv (vÜKOÈŠ ¾«’.}¼žt!'sýõ{µ2-> stream xœí]Ñqã: T ©!%¤†”RBzH ©!%¸†”p5¤=ÁårY®øøøÕ¢ ÷áëëkT&j!V{{{Û¢ÍpO”Cìõúú:º/ÿƒhÃýyÝ—‰=HÌ!µs±J{Ezt_&¶A ™mD2•ôêèîÜàåå…û6õóAq†8sXñä‹A$݉Â9ˆH¾c‡J©¤%$aeØ…bÝ"ÐŽÏð³Ag„Œ„%ÌŒÏ಻:Q Ñ¢ôÞ¸67#Ùhž$'Ê!B‚p¹\àíK•Fl#MÍÊÏ@èVFØ!ðê*m14!VR8´2ÂŽŽ È*ƒnö eð³A› )ìÈê*œ¢RsN¢ýÄ>tØIZ¶† ÃgðmÓ¤i‹Ìã2â›VSSùô„ždåÜ2@?œvõ„vÛ$Í'xFÏšOhÁ@Sõ¤»xÁ·¯N‹s·ah³æå,Y‡bP¬ƒßB?HÒ„qÂ@ ƒ©kÂN†,Ñ!tf®0ž4O1wYÒÖ1û8ÂC¯qg¤—Ô° “cs &bÓµ4LEú@ÝÙrFߧ8©G;o†ÛAð0´ì©ÿÄgº\Ç®ç+䯛åGñ‹î Ñ6ÄyòM=ìÍ F"ÛJMA <¾™ØH,Ò×R³<•£?õ¿ëâÒÙ$–Ù] ¼qÚ@ºaª=%Ñ€.ÑÑÐCƒ¿&ñG^-Y2céa¡'è;Ôyëû̪ÄrÍ÷W¹:þ™ˆ‰¨úûÊ$Îbt•ñ»Ö´õbt^y°›àñ·Û¿—Éq%+ª| 5k<â„‚G«Á¼ªš;I7bÈÆTƽ¯™êA9¥7¥ÝÙÏzkÖ$›v«ðÌ:ÈfåÊ÷ª¼Àå×YN(xŒ¶L:: […G`„ܦü6»a«žÝ¯ðžPðïKªÇv<«3®.“×jÅžZ',eë™æÒe½ “šy‰*>nÔž–àcé ÷ž™ÜñÆwÁ³ºtlfß^îÖ¦QK#³Tb2ö¬Âžx û~óÖ¶Æ žõ–<”\Œ›,M;ß|Ѧ¹{Ál&å54ˆ˜F€¼±‚Çï.övo¨u+lòȾ}ÎËåB øsßK3Ú!dý„tnÖ W­½€åµW$lƒ©Z´-8>Bƒàaë@tµß§ä}­ÖS¼j¾\Ö“<Àc!u#¨UË6ÁòÖ$M>mÞt©V"𲯫©$ð "PGù5”a…oidƇÇ'ª¸á½58V£Èƒ=V§?T)¦a‡0k$TèÓQBîn­*òø°Œ£ÈcÜ*¸½Ê´é¡ê?TªJ¹y4Ñðåšg³À<cyLøÿÚ‚y H©Çˆù?”m ÀM»˜¡+,©ù ñ²!ä1ë}… ŸRê1>¾?2ú€/«’hw¨ÍÑ÷˜ïmò˜TŽ*ë!…¨3µÙ¶ö7(Åõ™iྦྷèŸQ6ä‰O ;“G«PŠóÀÑ6-ÇÜmJ Vƨ¥ÇË-M­{¤%% Áóû Cžx‡{’G“Ÿ»ümÒ¸Î\›A>ï4-­–7bø£;@\’¡–ýä¾:ïd7òhæd¼}`æþ8@mj#ÊÔ†¬ÃÇ÷-Ð̫﫟å^ûÔ £êMI\GK³þ‘g}ÈÓáÇDÖ[5…:îÀ·e D^ñ¦OÕQ]D-ê†>µ’:l9é7ž:G˜“᤺”}/FIŸUH£ÞXÜ„N—V^@‘9›<œ#ò€ÐÏò¸?S®Ÿ"c¥ciÂTòHŸKÖP(nÄÝî³ý¡sªpÙ½à‘GaN¡áäá®ÖN¬ø*”­uðy¬Ó®dB̹I‚gE“G˜Sn2>µëkZù<Ð!ºÔ¬†™° y|x¬°È¯§]r¶°®#¡ÚÌ<«Û#ÔLË8shŠÑËš1g׆êü ÁÃb7Ï£ÛÑý^ÑÜÃ6Ê@›ãøÊG ͳ~ñ«¡‘Íwä˱“Î6j@ÆA2tÿ¥NYòŽoªÔð¦i‡<òÜÛ¨V‹ŒiµN^‡=¡Z›µ€Üœ6ÉàÍ"‡Csû˜ƒ&›%‚Bú³ Kð@³Ñ!¨Zbë TßšeçÇäh™û¡M¢b\’Qžâ‰û¸âóН+x*æçïð—?•8D> stream xœí]íQì: M Ô@ Ô@ Ô@ ô@ Ô@ [%Ü(!Oo5£GÙ¬mIvvâóãp7¶cKGòÇ®ëÄ!ðùùùûû{¶ª'œøùùy~~^–åûû»íÿþý£ªŸžž†Ô>áÁårY®øøøÕ¢ ·áëëkT&j!£ööö6¶%D›áž(‡Œ×ëëëè¶ü¢ ·çýý}t[&ö 6‡ÔÎqÄ*@nIèÑm™Ø)d#’©¤WG7ç^^^¸mS?dgˆ3‡ ¾DòÑÍ™øR8É· bìP.u‚´„8¬Œq![AUø Úñ~6há°„™þ.»©µ-J?„®‡›á´l°§ɉrˆ \.—ðò%K#pH„‘¢fæg t„•av¼:å¶šGK)œz2ÌŽ¶ŒU]ìAÒàgƒ‚$³#««á•œsí'ö¡ÍNÒ²u¸àH2|Ÿ!Ðcš¶H—aß´ššÊ§'t•—pË<ý 3ìê =m“4Cžàa€Ÿ9Ÿ>ЂBõ¤Z¬à _íçnÃ>ÐÚç³dŠA¶.¼ ý"Iã@ƒ©ÌN†,Ñ&tz®€OŠS –%m³ÏD˜`è5î WbkI5 Ú96»`"6=K½ÁT¤è×-gôyúÌ ““º·ó"Ü‚‡¡eO­ø'>ÓãÚv=_!¿n¦e^œpOˆS§¹©»½Tˆg[)$ÊíØFb‘~–ŠåPŽþÕ×É¥³I,Ø]ã1¼~Ú„4²=%Ö€цè¡Áû#GK–L[zXè‰ãœ;TÍÖ÷-ÀªÄrõ·àW¹ÚÞuÄDTýù»2‰½=óî„9m½—ì&xluûu+YQåG¨X˜'ÙƒrJoJ»³ žõï°&i· ÖA63W¶Uå .»ÎrBÁÚ2éê€n¹Mù »a«ÞÝ®ðžPðÀìKÊÇv<«\û^à×jÅžµZ'LeëHsé²^Ðg’BVÅÚÚÛ¬-=áÞ3ðÝ'¾û žÕ¸cˆ¾­Ü­u£`K=Q*19ö®<ê^ÎÈkÒ¼¼B’¬wÆôé/xºFEÚö4¬ýšWÐdòú½/¬èVa^¯€ÖRo„Ì_äI"TÑ-*¹Ekvj{Òžx­zhzD·ÄyËÎs’A°„Ú †b'‹^Ù ›Ð_ð06 Q£¶d[ÈÝIGKŸae“íNòˆ„£¾ÝAÎ;—Àw‡“ÇNÒniXMZÑ$ž/M‡t`Æí ø°<=ßLQw…%€×ö8˜ÍåÜBÃ$‚%•îm£V%x„<ôõ6ž>ñ5“GtÑ 0UåïF6yª&i,ÀȬ[R¹Ì~ÁÈ"0¹„?Qi·lòDE% °ä±b£Ìk #Š<И&XOÚVuªæ‰š¤m·e/Xh#s”-H»ŽIž‚gýKÞ]lÉÓ@f°¥Í‡â£Èd.)½y+Ej¨>Pð¬&Tß Òk3êÖ–6zyhÈx÷/¡P0G%OR3ÌÏj’„›j¹¶LËÀæ(òÔÂò¿yÇoÞÚÖXÁ³þ%jëèÌu”Ô\Ç‘Fܳý¦R`o¬à±»‹í¸7˜ë(Á³"¾3Ð?(w÷½4£MðP†¬_@>‹òÔŽ—Í1†¬)ô$ Šóˆ"ÌÐÀWh<<:!ºÚîS²GkgŠUM‡Ë:GOçÉ8~…¨UË6ÁÃ!dÈVXpš|Û<4©vÞA„»ørª=É#Ç4‘£Âjm"¢®òkHà ßB¤Øê+ëtª¦žÍ1:û*<ÔùD>%míì~?ÍɨTLÃavÇQ¦O[ ©F¿ÊòX³ã´yäÙ\Çgðâi`ä“4¤Lè껓TÌB”9ݼšzµ\ól&j³›Ûâ­DT>ôI…à-BÌ,AÞ¤ü^¸9.๠“–և̲!ÑŠJu»[÷ÉoxXH¢§C­¾Åk’$ôëÝ¥!ªB›žáщýJqý_îÏý5Ê@H8Š+*qÒ(Ê,ûÉcY]n-yœKu}¾»$ZbEqÐÉQ«o~òØ“DåSÞÏ¿IX·çá<—V¶Qä·‚'Š“ä)/Ä.žúßK¿Qçýê~h¼ä}Ç“Ÿ<–åÏ^R[û&4Ÿë¶+}—QT™I‚g ¼rO»ŸöVÉtI£V€;±¡“;$$Úâìe­H½"RÛÃG¹[Xç‘¢ÊÌ<«‰wÚh)3½œ?P/Än¨úô²æCÄìºCu~†àá ±dg¬ê êè¿~¯(/PΧb÷? Ì¡G2”‰®åøÊGߨX¬]üj(dóŒ|9JÜ™^§£Fò@À@jx«Ô€HÚsðoê”%ïX lUe[?t ƒ÷½Ãã|†þH,ÊÎÃhçuتõGm ‡Û&e ìŒ>¸ñö*]ú•L ýW·öë`ð˜&›%<Á&1ÐÞUX‚ŠF‡@DcÔ‘®@DµÍ ãB°OމÜ5ÑÄ*ú%ßQLø¸âóН+x*ÿÌçÏð‡J¢Ä:ïYºQ¡áiЉ †ŸÍwÙø7™ó(ÿ5pÁ]¶Fûo¿Ÿè NªÄ³ª3g*ÕŸ}ˆ=iUvXmºë?د¢ëendstream endobj 475 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /FlateDecode /Height 83 /Subtype /Image /Type /XObject /Width 191 /Length 2448 >> stream xœí]íQì: M Ô@ Ô@ Ô@ ô@ Ô@ Ô@ ÔpKØwÞjF£•¯lKNvâóã\²¶cKÇòÇ^.‡Àççç¿ÿÎVõD'~ŸŸŸ—eùþþ_ûßߪ~zzÚ¥ö‰üüü,W|||ìÕІÚðõõµW&jÁV{{{Û·% Íîžðƒíõúúºw[þhCíyß»-%°ÏÚ9ŽX…¤VABïÝ–‰u@!“ S¡W÷nÎ ^^^¨mS?ð3àÌa D“/H¾ws&n…s‘¼c‡ ©Ð°2ì_*úÚñ~6Ȉ°˜™ý3¸ì¦NÔ‚µ(~/\š›ÐéÙ0aOu’~°~~~ÂËç, £³@†‹š™Ÿ!gXn Õ±¨°E„n¡_åJx7ƒ¨òù»2‰¢>¥ÆÝ sÚr1:/=8LðØêÊu©çYQ¥ X5"N(x¤Ì˪Y·“T7¦¶SÙ?¥W¥ÝÙÏåÖ¬I6–áa¨uÕÌ•m•?Áe×YN(x”¶Lº:`X†‡¡„ܪüV»a«ÞÝ®ðžPð¨Ñ—”,x.Ƹö½T\«{Ök0•-gšËõ‚1ƒT̓”W±~£ö¶ëKO¸÷LÅîŒßãÏÅ„c5û¶r·6Œ*_êw\à-%.¸ 4kƒ!¢ºå¨*ð-¯€ó$WÞ;cøŒ<Y£œEÚö4¬)úyJ@½žô;,ÒfZX‘E0¯W¨zÑ!D•Iž$ò¨*†ÍJ¶Èc-XÛ“öÄkYðàyçø,¢#€`q%Ý—ú0*󜠟 ¨K9ŠBÝ eÙ Ÿ0^ðV«fa„Ú’m!…AÇQm(/Ê«Žòa ‡¾-[PIˆÎ;—Tì'¤ÃÒ°Ò¬Iìo8¤£F\Aðàõ©ž¸ÆWµÕÓY©¨ÝT‚½¹œ-T ÒXXòXéîïó­’ËÄàUxgɶ…w›Ç:4p¦ªú{€Mÿ ‡r2—5©Ü@f¿àá4H•?·¹ër “=ü‰J»e“§aVK»²ß@f•+—lTûʵgùÕÃ&¨Ýl÷TÍS;+‰… [Ö(mdvúRU]Õ4¡*‰Ô@5í:&yv<—[òÐîbKž2;5mƒzaTeÆ™=µ(£7o¥Hªï(x.fª¾:I¯Í¨[_ºe,Ýü6²M-´&£Ý¿€S0G%OR3Ì; ž‹I®ªåÚ2ýfµžÇÿú–x‡2,ÿ› Ï[ÛÚWð\nÉGm}ƒ»®’šJ±û\Už§Êâ=ÛÿT;3xû »»ØÚ½Á]W%ñxS=M-y'úåýF¹»ï¥m‚Á%dýBE *VY¤69Ö£« R «Ê(ÑPÐÀÞh> /W [ 1 3 1 ] /Info 99 0 R /Root 98 0 R /Size 477 /ID [<8b35177a0e45497be00707df64375549><888ed7246c7ee1406aee47b3a4aaf360>] >> stream xœí“½KBQÆÏ¹Þ[éõj.%˜´f™´‰NeØÐ”‹Dô1äàAµ7´„„ƒI»4éÔbXsƒ DµTР}ÜçYç?^žçðr‡ß« |šÂO~ TTì‹"(Jöl%àUkFy¥8¯æjðÊãdÔMP;eò÷j¯Ê=ÅÁ¸—)½À!M›u|Ó½ôm‹Üdbq.ÑÆoP.€æ$Û{¶olwÀéU0°È—ÏdŦLe1¯€qz¾t‹|âsú\~“Ÿ ¿Š6ºË9Ž…Àµ)0»6r‰yô´ì=²û˜W7¢Øó]è±jÙž}ã°ÈSÃaЈÑy&¾#p8Góy;®3¶m¶t5òŽ|9{Ì_¶ðÖ¼a›òn0ßc2º/À¡&7¬W4ÜàÜá-´ø¦áì7Nxkw`ˆ;=EþÛ6w3©“Iñ ZCŠ endstream endobj startxref 384237 %%EOF flexsurv/inst/doc/flexsurv-examples.pdf0000644000176200001440000062432114657665167020076 0ustar liggesusers%PDF-1.5 %ÐÔÅØ 1 0 obj << /S /GoTo /D (Section.0.Examples\040of\040custom\040distributions.1) >> endobj 4 0 obj (\376\377\000E\000x\000a\000m\000p\000l\000e\000s\000\040\000o\000f\000\040\000c\000u\000s\000t\000o\000m\000\040\000d\000i\000s\000t\000r\000i\000b\000u\000t\000i\000o\000n\000s) endobj 5 0 obj << /S /GoTo /D (Subsection.1.0.Proportional\040hazards\040generalized\040gamma\040model.2) >> endobj 8 0 obj (\376\377\000P\000r\000o\000p\000o\000r\000t\000i\000o\000n\000a\000l\000\040\000h\000a\000z\000a\000r\000d\000s\000\040\000g\000e\000n\000e\000r\000a\000l\000i\000z\000e\000d\000\040\000g\000a\000m\000m\000a\000\040\000m\000o\000d\000e\000l) endobj 9 0 obj << /S /GoTo /D (Section.1.Examples\040of\040custom\040model\040summaries.1) >> endobj 12 0 obj (\376\377\000E\000x\000a\000m\000p\000l\000e\000s\000\040\000o\000f\000\040\000c\000u\000s\000t\000o\000m\000\040\000m\000o\000d\000e\000l\000\040\000s\000u\000m\000m\000a\000r\000i\000e\000s) endobj 13 0 obj << /S /GoTo /D (Subsection.2.0.Plotting\040a\040hazard\040ratio\040against\040time.2) >> endobj 16 0 obj (\376\377\000P\000l\000o\000t\000t\000i\000n\000g\000\040\000a\000\040\000h\000a\000z\000a\000r\000d\000\040\000r\000a\000t\000i\000o\000\040\000a\000g\000a\000i\000n\000s\000t\000\040\000t\000i\000m\000e) endobj 17 0 obj << /S /GoTo /D (Subsection.2.1.Restricted\040mean\040survival.2) >> endobj 20 0 obj (\376\377\000R\000e\000s\000t\000r\000i\000c\000t\000e\000d\000\040\000m\000e\000a\000n\000\040\000s\000u\000r\000v\000i\000v\000a\000l) endobj 21 0 obj << /S /GoTo /D (Section.2.Spline\040models.1) >> endobj 24 0 obj (\376\377\000S\000p\000l\000i\000n\000e\000\040\000m\000o\000d\000e\000l\000s) endobj 25 0 obj << /S /GoTo /D (Subsection.3.0.Prognostic\040model\040for\040the\040German\040breast\040cancer\040data.2) >> endobj 28 0 obj (\376\377\000P\000r\000o\000g\000n\000o\000s\000t\000i\000c\000\040\000m\000o\000d\000e\000l\000\040\000f\000o\000r\000\040\000t\000h\000e\000\040\000G\000e\000r\000m\000a\000n\000\040\000b\000r\000e\000a\000s\000t\000\040\000c\000a\000n\000c\000e\000r\000\040\000d\000a\000t\000a) endobj 29 0 obj << /S /GoTo /D (Section.3.Right\040truncation:\040retrospective\040ascertainment.1) >> endobj 32 0 obj (\376\377\000R\000i\000g\000h\000t\000\040\000t\000r\000u\000n\000c\000a\000t\000i\000o\000n\000:\000\040\000r\000e\000t\000r\000o\000s\000p\000e\000c\000t\000i\000v\000e\000\040\000a\000s\000c\000e\000r\000t\000a\000i\000n\000m\000e\000n\000t) endobj 33 0 obj << /S /GoTo /D [34 0 R /Fit] >> endobj 39 0 obj << /Length 1991 /Filter /FlateDecode >> stream xÚíXKsÛ6¾ûWpr¢[ %ð•i2M t©Â$Ak¥mŒ§Áqø{¤“]Vßào ¿Í þ.á÷|wd­¡õ ^qý~'H½;2&—%—sœiào…^[opâRv]î&iX^ðÒ|±;гpŠÛÛ…Õ3\7dÿ 5AÑ>ÍÏ;«hŽx(~¾Ç#&» ÙWd¿¨ùc@vUD…ÆF&Q‘Ƀ‘6*Iø€ß€ü÷í³þ¯Ñ :¬lÄ6ô†ã ½ÝçZ›=–`Ÿ•N'+YB#Ï*YÿüEÚ‰T!+ˆ½ƒhÉ _Ò\%+$§‹<»5†¥à÷žK®×¬;ÊO~Ðá/èÙƒë#Œ!k²"ûçòîx)¡ùÊbKd¿ïü¹£Ilä:H#£ÒØ“ùÎñ—(˜Âü{PÌypETóÀZ¤¿>íÞ™(…*Ò8EÍã R”MÉb,½„!?«xž"‹¥š·]1Y¡à€dd›’)–"ÄbDeÜXpÝõ Á’ì¼X¹êÔRÒºìÈFIÛ(8€«ÚrZz,h7&>=Ôj_É8ÈcDª®ºÎcb#V]˜Me±œc€"»ÖmÛ‚5iÓÓ‡ûލ¯ù+°RšRn"áü\ú—ƒ2Mº„?À¤ 'eÍ«ŸÌƒRb=Lö|®m@› ‚r×®  ¢2´0²ò?±Ú‰Š:ÒV±${§‘à]¶p fpiËl¬‰`œ4q1MŽ®¦ÎP¢®9Àtž¨Të¾™ 9@W‹IåeVœ[îxø|õà g g9LÖòNz>lœ·HâK”¢bš³òÆbÊ鎳h§M-݈‡¾ˆ¦Ànì:Áµp)W2XœP÷æ$¯DÑ›Æ@Î|K‘îzKá†ñ¢Q Œï"©F®u΋ðt#\&{¤ll5z)Ý $PÎè\ŽƒZÆ®7£Öa(Ö’ÄdÏuÛ`üû£œAQáR§Üh\±‚¹"¢xÚÌ]ȆÑá„ ¯Îü<>ã .®a¸Y³[#ã.T¶Â%RêÖ{4¾`$Ž“ðáÚFÒÃM„àÖZN˜t<“ï–ÛáÅŒùé<ãÏ ¹Á_?”§DØ^g……÷r;ô_<(Ñ}ª6š×"ã©p_ §8¡fœîk®s“³é'ßv¶ö¸Ow'¹”{¢b®t-¿[±'ìü.źk% ýHHl.¹u[#W´¡tÞòËó¥ è—ûkŸàYY÷á¬òüäXs+ÖbÐ{‰"O˜[Àߌwþþ<t endstream endobj 34 0 obj << /Type /Page /Contents 39 0 R /Resources 38 0 R /MediaBox [0 0 595.276 841.89] /Parent 49 0 R /Annots [ 35 0 R 36 0 R 37 0 R ] >> endobj 35 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [213.717 624.426 392.916 639.968] /Subtype/Link/A<> >> endobj 36 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] /Rect [80.004 410.477 193.102 423.275] /A << /S /GoTo /D (cite.stgenreg) >> >> endobj 37 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] /Rect [199.449 410.477 223.26 423.275] /A << /S /GoTo /D (cite.stgenreg) >> >> endobj 40 0 obj << /D [34 0 R /XYZ 80 770.89 null] >> endobj 41 0 obj << /D [34 0 R /XYZ 81 733.028 null] >> endobj 2 0 obj << /D [34 0 R /XYZ 81 486.683 null] >> endobj 46 0 obj << /D [34 0 R /XYZ 81 486.683 null] >> endobj 6 0 obj << /D [34 0 R /XYZ 81 449.591 null] >> endobj 47 0 obj << /D [34 0 R /XYZ 81 449.591 null] >> endobj 38 0 obj << /Font << /F67 42 0 R /F33 43 0 R /F79 44 0 R /F87 45 0 R /F96 48 0 R >> /ProcSet [ /PDF /Text ] >> endobj 53 0 obj << /Length 1789 /Filter /FlateDecode >> stream xÚíYYoÛF~÷¯üR iîò.š5§- HôæMQ ‰ I9qŠô·wçXrIQªŒHÒ<ÐäîÎÎÌÎ|s¬ìŽæ#wôôìrrvqåy#á:‰›ˆÑd6ŠÅ( "'ñ‚Ñd:º¶äøfòÇÅU›D^â7R,ä•+‚±°ò·êOµSJõÜý4¶}ßë,.Õs»‚ÑØö ÈhÝñ®»qZ銖ÖÅØ–‘5…mÀmõÌaݳhˆŸ/ÚòRMí¶ê<+؈B7cÅ$£"÷D‹ª¦ë-sÏ+°À™Ë&»¸JBÓ6ÛÂö'C²Èc[øÂ¬÷ŠÁ+7ÀBm·…ç~BD/ÔÚ/c;ž5Ë©'¢áÏêÓnWÈbÂzËT‰ùãÑQ«^/{$<­)3<)Û#”ñò†§Mr<RýC¯9,jÛò™‚ñØŸð~ >g>†Ì¶rý(ÁK–^óÎŒè9¸VÃGÎÏ“´5?ðý\=¿µŠÍ˜ý[Þ6e½Sà R.»¸ £‘ðÏ%8;ŽÄ#;PïÐãqèO6ÀU;¬"3V†'Ác¬iE#èÜè`<brÙ tN¨‹­•ñ"'p“FuÖè9èQÔu/ߊœ«`Ë×0¿P¨À†®ñ€¯™¬!&š%}Ü*¹!}3Ò<: ·:ü¶¤gi¨Tl0M&¢k c"{C7F‰éF)'ô¥Nîmjp¹ò·/MšnKûÓ‘òšo”6šKøµ¡½†©Ú’f™NðyãÙ|ʶBÛ®t¦C<*øù‘ãª(9lfˆ¹Æ¿\@l   tþ ä Dä%ŠI9ò~¯)¢PI­%F~{’ŠHÐP\w•®mÒ¨m½œQ á ŒÐbÕ3–²É´9 LåN¯zujG*¹2]âÄ W¯ª “6™–\5 ¿œ^“º¢{†SyÕ ÓÈ2 ¬y¾éx]ŸÖ `Á0¯ÿ¦u“Ùq©› `FQ¨·PF!êIiÀîZÎR÷ •ª!2;Jbí(›L°c£(yˆÅ8t¢Dv¡˜¡Û¨—ÑrYkôaÖaŽ1½ÌOð TX<õV‚\®I.•%{ð–Çcãcz1q"Õ3ö¼èIð"¸ C=íÇ·ZNéÅÉŽYÝ “­M¹Seé{jÛÔߪÌ"‹C‹äFq팺;uÏîÏ _-˜é;ƒù”×à#Œùø¼aú>Túsºú—òã(Õ*>3.ÏKÃç&’ ˜KÞvŦÿ“ƒóIKzÍ|ßðsÍ,Î;¢ñ Ùïâëð’¡ÙçvÓS£ß›~F÷Äî¯-ý”ðq{Öcξä£_¶SŸÉ7YKrÈMN4óõÐØ·þÚ8`iüRÆÚnŒ½6_ÆË+^^õ*î ˜c}øÃa‡ÌbI#þ¹·_Vþ2zÕÂÐã€|aý},­˜Qïï»Ç1P¸Ý³òá^ºÑkqBÑ6šÞµê•ã×¼tcæÜŸ6çƒÞÿáT§ i¤ŠÓPzÈÀó^lüÏ +>ȰýöGgñe[T c~Ö/†9wæ°òÀçýñ´ðßi-Õ·Avå}}»°ÿŒZñšÏ›2jôuOg·}ÄèîÔåpZ*½”àï©´ôð$®ÿ¯ñ‰{Øè›í޾©&6úÞÄ~º&6ø²zØè{«Óß—Ø¿6?†ê÷“ÉÙ¿£ wÍ endstream endobj 52 0 obj << /Type /Page /Contents 53 0 R /Resources 51 0 R /MediaBox [0 0 595.276 841.89] /Parent 49 0 R >> endobj 54 0 obj << /D [52 0 R /XYZ 80 770.89 null] >> endobj 10 0 obj << /D [52 0 R /XYZ 81 654.635 null] >> endobj 56 0 obj << /D [52 0 R /XYZ 81 654.635 null] >> endobj 14 0 obj << /D [52 0 R /XYZ 81 620.168 null] >> endobj 57 0 obj << /D [52 0 R /XYZ 81 620.168 null] >> endobj 51 0 obj << /Font << /F33 43 0 R /F88 55 0 R /F96 48 0 R /F67 42 0 R /F79 44 0 R >> /ProcSet [ /PDF /Text ] >> endobj 61 0 obj << /Length 1186 /Filter /FlateDecode >> stream xÚíXmoÛ6þî_!ø“„E´Hêu¨¬Ý’¶@€®ó> iP(’ìµ%Ç–“&Ãþ{ùr´N/kc¸Šbóõø)¬H¡oœRį¡{". 0Øè²§eõs€¢ ² Àý¯`UèQ Þ Ž §ÞUè~?–ðyƒ"àÁ·óï'"Ú´º4RPåLøÐö‡Mßæ¬©ÞÏ<ÆDÄ% î{‰¼<8 A3Ë %¢D0ôË!–kÐ:îwÒÖŠ2CsSkPÄxLEÃãfÚrûLëp…™šmïÏïm±An„¶úÓ¤¦¯Ðô¿a:> zÙ°£sê7¸»Â^"‡4s½ÿNu¶î›óAßǾ~ÖñmPb(ÝÃèto–ý1Éç .aLSºíAnÁúnq€½ŽdI‡0ú4"92úˆFÆêß—©0;öñÎHЊú«8â75Èp0ȊΓ&ohŒM*q~ŒpóÕŸâ¼qAöÅŸµ·ï›ìéºiotÕqÌ1ðí]ÍÓÁ§IÐRU65Þð¸¬vz þÜä5zäý+û9Rô×Åa,k¬\A»¹Çô.ZzïYÖ@n®ÖΛdôûlD…z=‹Z1µh[Ùjt;"1 #=†ªjȬ€ŽÉ«µ~«Fˆ?3ä in#N%»í4Rnç'$#mÕ?%)É&+Ä“–QûÎa±ÌrxE¶ÔÝŒ0Yav5×Ù©€Ä& ©ÉMßyT>ÄŠ ”v7˜ÔF$ôC³NX“‰§Æu%“ç{ù¯p0 5î+;¨T\ÒÆ³s ^©¦£Wë~‘Ê«ßêJåëê°Kal¼5ÑËè¢FÛÌáRfÆ„j¥(Á”X“8ð 'îÞCfb"Ì^70~‡ÎöbHU.#Bi;tei©¿9lÍ{r­äªS«¡ÐJçsÝÐAL}uÈR¹"Û™÷]­)Ë!åÕ)œ?Ù³13à“†êLK3Ænô×Ù‘U¥r|êËI…Q ì .@ÖæÔÞ9Ah+H[- ]¤Ê?·u]‘-Ôå¡4Õþø!Âã$ y/¼—Íù魯$‘ v"u÷õŠƒõùä}ãƒÒìZ)`®sÎÃpOeÓX;Ó™¶oktïròiû¥­WæWÄOƒˆCþ endstream endobj 60 0 obj << /Type /Page /Contents 61 0 R /Resources 59 0 R /MediaBox [0 0 595.276 841.89] /Parent 49 0 R >> endobj 58 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./flexsurv-examples-002.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 63 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 64 0 R>> /ExtGState << >>/ColorSpace << /sRGB 65 0 R >>>> /Length 2770 /Filter /FlateDecode >> stream xœ½™K‹Ç†÷߯¨¥´p»î—ìb+p4‚íÅà™Ä-)üësî§Úh&l²Ð ‡¯»º»ªëé÷T¥ð2¤ð&ü|ù&üÚ:b £µ†Ró1rÈk-‡÷·áoáÝåó}ñEøòÕ%1Æ·¿¯¾üË%£…_¾ ùÈ- ïC 7—^¿7—„‡†¯/#£„Y•ÂÝe4<-ÅxÌÞ^Æ:Æ)§£GÀ ÍÌJ;ÖBÇŒ!Õv´ ¸Ò13à:rFlÇ,!µx¤„¸°IÄ8S,ÇttiÄÐØžG¢ßS:6Þ¶ˆá¢Øz=j"^ǪÀù˜Ä¹ Ú¯ñ(™x Ú/“/ŸJ›Æ{ŸÔ~éøü©ÐiÀpb„öKÆG®Øÿ©D| äyDh?ÃÓÑý´Œ’²¶ß =h?wi¯ÃsCû:”ÚëõHÐ~®Êp"´Ÿõú#©gú}t숔á~:ò„ö ߌXNÄ‰ŽŸ»=刯ðÊØtr?r'®ø{†!ÎÐ~šÇ*Ä ™ž?Çy”DqèsÊØ±) ~rêG©ÄÔ.\°ýŽÃ†\2ˆÿí-bz;2v4¶ã1‰ûQ q§ëÃxÔJ\˜+vr¢öa<*¼‹©û'ÃxÔEÌ÷ãÑ1½/Æ£bêß ãÑ*qdžGÃöáµ$†ñh“¸Sûƒ¹Qû0=—A .Ä™úÆ£WâHÏãѱýŒ¯1r?ú$¦ë‰G&†%ÓóQˆ+¶WðÀFLó§@ÇnŸ®_`<·OýU`Ûúª&´Ð¤Iýàûðè¹øaQ>øB<~2X6•‡ßˆGOΕ¾m¾ž\ ÏÄ~~'ž~rkøqÇ“S<¿Q2w/5Ò‘¢Å_©…Ÿ';Åûí7Ïï ßÛÚœ8Uáþ¾}ö÷çø^†g·×ï?<ÿ>\½|â“&ºµT ~&¨¥?_ÿrýþ&¼‡¡½ë¯ïÃwϾ¾½yý¯»ðyxqóÝs»Âÿ3¯ˆ™#c„ÃÙhÁ®LÙ‹“í„; èÄɶµ)É““m…dÆÉ“-~ 9ér²Íkb€°d‹$O¶š/[²Eå•âÉV™%ÛåˬÉvA{sK¶Hâžl!Ì s²0Æ{²…R€ïW’-¢¸%Û®ÉR’-|à8™J²…Ï ß¿$[ \kK¶]ÞUM¶ š^·dÛ)Pz²…ÑomK¶Ðß=oɶ IŽ’l[çd£É8íɶI٢ɶQñdÛª$;I¶­HÒ”d œÛ–l¡Û()i²Ån\[²m2>šlsß’-¨z¬-Ùóõ%ÙB¥´öd ÌíI²ÅJjlɶ®s²…f)Ùi²ÅËŒ-Ùâk0·d‹6\[².qK¶À±mÉ*µ1¶d ÌÉQ’-rÚ’-pž[²ŽmK¶PVrr“d‹efÛ’m•Ê@“-0õ·&[ ¨cK¶Àô~h²ÅnÏ[²­ôÚy²ÅiÒ·d‹æÚ“-ðÜ“-0=¿&[àÞ¶d[EÝšl«T šlOÉ+Û¹%Ûª•$[à¶'[ôE¤d ã¶ÿEûq¡mÙ*}F«ôµÒWäJ_Q„hÈ•¾!WúŠZé;s¥o,•¾3WúÎ\éK¥ï,•¾²VúÆRé+k¥ol•¾0ûÐX|èÌ>4:³Ù‡ÆâCgö¡±øÐ™}èÌ>4:³•Õ‡ÎìCgö¡±øÐ™}h,>tf:³ŇÎìCcñ¡3ûЙ}h,>tf‹Ù‡ÎìCcñ¡3ûÐX|èÌ>tf‹Ù‡ÊêCgö¡óÜ&ªûЙ}h,>t®§Éª>4:÷Ó|U:³çi¾ªÙ‡ÆâCçzš¯êCcñ¡ó8ÍWõ¡s;ÍWõ¡ò+5´ ÊÌÇhæSó²ùÅ|†l>C6Ÿ¢šÏ™Íg,æsfó9³ùŒÅ|Îl>c1Ÿ3›ÏXÌçÌæs–$¨¬IÐX’ ²˜Ï™ÍçÌæ3ó9³ùŒÅ|Îl>g6Ÿ±˜Ï™Í§¬æsfó9³ùŒÅ|Îl>c1Ÿ3›Ï™Íg,æsfó‹ùœÙ|Îl>c1Ÿ3›ÏXÌçÌæsfó‹ùœÙ|Æb>g6Ÿ3›ÏXÌçÌæSVó9³ùœç6QÝ|Îl>c1Ÿs=MV5Ÿ±˜Ï¹Ÿæ«šÏ™Íç„FOIpfÝ6| ݇X‰¶Í‡½qe¦>ì²æ¬>„J‘ÖàÕ‡P Æ= 6YcWB%F•šú+ù¸ù÷¨úæCh†öÇÔ‡ì©ÒTjRWVÝÃâmÍ͇eÉ“&ÁÉ•Š%Á‹°[ìçÊ÷ëâæC`ÞÑ$XùxK‚º'¢IP÷<4 f~>K‚2~–³T†š“´¯I0é%Á¹û¸î•1pÊ›ó’JY|Ì•¬ø8͇¨¹ù˜÷ˆÄ‡x›ûž0WîâCx­xOH|Ü÷$\ÖæC`¾¾ø÷÷Ê8K¥¬>ncó!0óžãîÃ,{šêCÜsÜ÷|²UÎìCà7f™/êCà´'Á,+#êClv÷!îiÆÍ‡Àü<âCàÚ6âk²û0kå->æ=+ñ!NóµùøTç"{VâCà>7f™ÿ¥2®´€gù°ÊzžäCEɇ†².¨K…Šœ 9ÖóJáÆ¶ά{àÆ²n,{àʺ>Ï{àÆâCgö¡±øÐ™}èÌ>4Þ|˜w*«ŇÆâCeõ¡±øPY|èÌ>tf‹Ù‡ÊêCgö¡3ûÐX|èÌ>4:³Ù‡ÆâCgö¡±øÐ™}èÌ>4Ö•BcY)TÖ•BcY)4¶•Bf_)¶•Bf])4–•BcY)TÖ•BcY)¶•BcY)4žÛDÝV e¥PYW ëi²ÚJ¡²®÷Ó|µ•BcY)4ž§ùj+…ƲR¨¬+…Æõ4_m¥PYW Çi¾ÚJ¡q;ÍW[)~0Bàè+”F¯Ã(aÚ ü´HõDè—´ŸÈüûì8£$"ÞLÅm$½¸}w«»Ho_ÿÿkáÙíMøçõÝÝõ‡×ïnp§é_]}rÇêñ ’öS.ôÓûûŸîá÷Ïpìãëûw×oôÉå;eß\þNkló endstream endobj 63 0 obj << /CreationDate (D:20240816160402) /ModDate (D:20240816160402) /Title (R Graphics Output) /Producer (R 4.4.0) /Creator (R) >> endobj 64 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 66 0 R >> endobj 65 0 obj [/ICCBased 67 0 R] endobj 66 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 67 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 62 0 obj << /D [60 0 R /XYZ 80 770.89 null] >> endobj 59 0 obj << /Font << /F88 55 0 R /F33 43 0 R /F96 48 0 R /F67 42 0 R /F79 44 0 R >> /XObject << /Im1 58 0 R >> /ProcSet [ /PDF /Text ] >> endobj 70 0 obj << /Length 1960 /Filter /FlateDecode >> stream xÚÝYÝÛ6 ¿¿"(ú`Î’lË.ÖлnÀ°­Ë¶®(œÄw—-‡|ôzýëGŠ”M;Î]n½ÃÛE‘?‘ÅD½Ë^Ô;?ùntrzfmOG*rÝ]ô2Ýs‰S¹Mz£iïM?¼ýpz–e’ÈæJGXx’?# t¿ü?›ü¬¡½>Ʊm Πçø5Zkú×R‹~·8 &4FŒÞó¬÷ƒ$ísZ¬CãúSœ†ÜæH±„v‰ã¶OŸþõµ¢)¿B×î~°Íq¢_t9>¸²ä–h½¨Åâš¹—Dà$bÈNÏòTB1d,†6QYš"¯aÞ7ƒablÿŠñxÇ‹_Q÷×ð:ܧ¸‹Bóp¢ÜQ~–^S È&OA2íqD^0¦Üµä‰7Ц¨Lºä~`ªQ_Ðu¨­Jâ|O£ÌŠY°b1©QÁ"âðSž9á§÷–á)Yž'Lò¤&»å.ÜÞ“Mêõ£šRó§W¦ê°Ìs±DÀsÚ\ê“¡ðcAþ;“ƒBaÖöQúlû@aé {v‰<6û7Ç£`´·ÿ=K“îþ÷ivŸ áÔ§UÙ±2±ia'1ù«‹‡U‘\HÛ.iœŠt.¤Ñ]ø7¤aü ŽeÁbb; 7 ÑXšõ²Š43Ç@aѨ §²û‘¨9@spŸ3q•¹5Ä2©².i€Ä„Iâõr•§&õæ›)‡wM«\îhÂLfA°ÜEž%N°€ˆÒ!ž†MÕ€3„Ý\ÅuI˜«,2_k¢Òpqbo£Nxéõ^‹}Ð.íº¤I"9z›h¯w3Ýu™ôÐdF¹¶Ä¨(e¬¿Å(ªM¿Š¹>lùèPÒH±äØ«á$\-}P×1Æú?&LF¹É(j®A†1ç^­é}ËɃ÷'ô-ô/hPû¸4‡g¸`ˆÅ^ ŒYÄ>$$Ŷ¤A^ã\ɼ'Å’ÆÆ>P–‹¯ì¶Õ1Ù‘)  ^üyu«.7UMHÁ Mø–Š£ÃjF0l8tbìðC«‹úD¶’+w ^Sp] 73LhvyHßMG. ›ÖŽàxR•7¸ÊÂÌÖ Æø]ñdÌ'@vÞ>ÄéáGüIêë#å,ܘ†Uï˜ÔÁ[ò¡ÔÑ{pzŒ+äJæXÔNîW,ÆÕ~Vy߬Š@0¡ÃБN+ßóïá.iÇ j§¿*%ß›JLJ¤ f¼¬B›O¥yC95¼â÷ÖV{‰¦/zwç¶ó:Yݱ?0\íj´=u¥t-tò£·P(k—M1SΕÕû—Æ»<¯Uò4÷××Ìe³ŸÜŠëz«€,k*.txIB1ƒö²qûhƈ&1¸;©—…ä¤.[âN¥©·tú®+/ô]×)À¯bW]AWŒÏ5û/'®–šgÔŠy¥ ëŠ&›ðP 15vYA†ï9×—5Y;’YÁÍ1™á'~§ Dât«Ùq šni5óSbw‚¤ ‰á§e-ÍãÆ·Š•¢f‚óÍ“u—U;$¶ûûï¤5ÍÏ”i¬#4Nðəư¬ÞëÏÖõ]–=’ƒ]ðIñ¢Ã©Þµj<]Õ€/ètùuº`çuº±ßDšî{]Ædµ‰‘W|i¯Ë„¨±—©Óëb!j\kt¯×%ëtAÒÚùššXì•;ìtûõát?y:ÊuVëýÓz\ -–Uµ—»'E¸6\®Öü§$äõþ ç—IúçT•áÚ kÐýüP €»¢6{@8Cë/IéÿOE6‹}oD™´l¬oï)ÿ›À!êÞÇ‚ÍæEK¢7Lþ¶&݈óBüýÙžfšÓ~9@f™ìPXje9µ@G„ù§sx¾ü«‰õ2 endstream endobj 69 0 obj << /Type /Page /Contents 70 0 R /Resources 68 0 R /MediaBox [0 0 595.276 841.89] /Parent 49 0 R >> endobj 71 0 obj << /D [69 0 R /XYZ 80 770.89 null] >> endobj 18 0 obj << /D [69 0 R /XYZ 81 571.617 null] >> endobj 72 0 obj << /D [69 0 R /XYZ 81 571.617 null] >> endobj 68 0 obj << /Font << /F33 43 0 R /F88 55 0 R /F96 48 0 R /F67 42 0 R /F42 73 0 R /F39 74 0 R /F45 75 0 R /F48 76 0 R /F43 77 0 R /F40 78 0 R /F79 44 0 R >> /ProcSet [ /PDF /Text ] >> endobj 85 0 obj << /Length 2192 /Filter /FlateDecode >> stream xÚ½iÛÆõ»… €¶¶hÎ O -µë){HZ€’(™0E*¢”Í¢¾ï%z·hap5Ç›w_3ŽûE¼xûìÕý³—oŠba⨌K³¸ß-Lé"gí"Oó¨téâ~»øiùúãYžàkøs†¯?âR}º[9g—߸ÚÜÙ|ù FÓw/xë;˜¼Ç×8wËW îš 5ràŒƒ Mî‡N6Ïw¿ÿöåçB.-¢,/@â/E˜g±HµX%‰Y¬\YÆë‘V ¨mFü#÷@æ)Ïkÿ§1L/HýT#;gù#,[øp†Oj‹»UÇ+H¤ýi¤«º«Ö-.¾àÕªÛò1ZƳžÍn:l''Gî!ŽSej{™* G•ºVÆEiR²šB`ƒáÓ-ãCGºئýŽ÷¼Ͷ „¸Z£:ÕÒ=ê5b‹–YhQàÄfQ–ÌÉ{€ûóÝ*µŽÔ†Ìä«Ä l4×NœÈÂ÷‚Oâ(:ù|_ Ös„Ø:Ù#£oyyÍ[e¼í…^; ú·²ÖzToG±I¦:®ÕáAa&qdvôûVæ?G «9†E,I—f™ÃçàËàKýG ¹€Ä† Jd^2ˆ‘%3‚Å ˆQ'±y—åÓâw¥Y¶Ùÿ^ I #¿ø$ 8)ES±ÈXМ@R)$ °ä_¢†ï/8ýķ¸Ê‹<÷&VñóÀar2ýKæEÇå\¾Š Ÿ`mæ–U«U€ç”'0ÛÚ̆9÷6M²ýv ÉM5f¢ÒdYds£5`G§f85Iäb«`ƒÚêØ vÈçž±~ŽPšD…Í=‚'ÒQ$¹¨•PøMôp˜_å÷ö³¼%@]h°pŠ‚ˆÇ5þ¨ê~ÕìLŠê}}VVì;.É¢pNœç¨õ Yjú gp›%#ÖÓàÕ?0AÌûr•÷q©FQ«ƒêµæUB+‰£×;”íin½Ã‰wl¤ÂˆwR\«ÚÖg¡K:p™¬(Fõ2¬Ö€ˆÌÂkŒ«‰©gL¶R¤ý>¨~¨+úÈuóÚ–'H ?Ë‘ôŸx¡éø—õƒƒŠŠË–ž*nâß–;ÃàRc³œÜ?É,GLY…•+¢Ô§.ºƒ~É-?Åq‘PW3¡FpN)•Ò#Z•iJhW#Þ—È dWaû^(&¥eÜ{ßhyà^¨™—Ìò­ø¿ÕhR‚æþEéâ„=*ßC«ú}@ö.į—©a $Ê–Çï{ô“G_:43Ž/££®è)¢`˜²,¯ŽJO‹¸Å9§F²z‰¿ê<**Èé8=N¬ía¦á$åö—#œ39¥ÎzbŠ N˜z½TR6q‘m½‘›¢PCÓ¶t‡”’öÛfl’¦æ……ËCœù<¼Vþoòu•¥S°f,A!˜‹2—)ØÏ±Áî‚Ræ0–†ô‰…¸ò•G\aŽ]›(ö¡¯àû =©½A¹È$ö÷qî9¸ÿ«dÉ-Y6ž°UIYɧÀ2›ª“^”V¤WÍŒ/l.O¸0±ù »l¤,¸Ü¡Ñp×·’´(2bo•fùòM#Š¥êÑR.¼¸"™\t A*zJ)íNtµÜ_ª–O‰gbᑲù¡ñ»ÜôœÈdÃNkÛ¡:‡5Áè.•'z ‰‘MÏ•2…»¢^D9øE\òjÍãà– Øer-ŒfÛ(ã›ø´µûϹ½Ã䟄ÎsÐêQj-îg¹[¡¾aúšDú 'Åu&Å¥0ÿ üËàãÓyá8j \kE”šG,È£sIê™J|BÍðß$Uº•Ú¬x"„Ó,JÓìsVpŸ±‚sEhlÆR¨øã&y†nâÚ™¥Òdkð<®0ÞÈ*2ßø¤ [Y$½vÞ‹¹=Ù®Üÿt¸Ö~M9®{Ü{h„ØGžÓPËôšñÝ1¾WwÄ_Ø7“æhöaº“8²I.ï=îæ}¶!Fh( ·&ë_Ä´M°& øÜŠnãJ¹jŸå×?ÇúŸÎÅáó§{μÜvÁ´üG iÿD| ®ÿƒ¼Þô²~Ù½E†%}–¡•‰“¼\þ(¯‘•< ¢*xbx)ÏŒñ(ä?ˆ»/Á¿þðÇ¢öôwÑI„ÆY«ÒøY€tùuàõ_óÒfjíwò}E$§kï¦ÿ÷¥Â‘>²GZ¡xFTùéüë¼ñ/°s4Ó’ÙTÑס¨þR?ÒÒG…?%šþ„o õ÷/÷ÏþÝ*U5 endstream endobj 84 0 obj << /Type /Page /Contents 85 0 R /Resources 83 0 R /MediaBox [0 0 595.276 841.89] /Parent 49 0 R /Annots [ 79 0 R 80 0 R 81 0 R 82 0 R ] >> endobj 79 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] /Rect [222.667 358.716 336.801 371.514] /A << /S /GoTo /D (cite.sauerbrei1999building) >> >> endobj 80 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] /Rect [344.412 358.716 368.222 371.514] /A << /S /GoTo /D (cite.sauerbrei1999building) >> >> endobj 81 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] /Rect [412.86 318.374 522.996 330.359] /A << /S /GoTo /D (cite.sauerbrei1999building) >> >> endobj 82 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[0 1 0] /Rect [84.236 304.519 108.047 317.317] /A << /S /GoTo /D (cite.sauerbrei1999building) >> >> endobj 86 0 obj << /D [84 0 R /XYZ 80 770.89 null] >> endobj 22 0 obj << /D [84 0 R /XYZ 81 434.514 null] >> endobj 87 0 obj << /D [84 0 R /XYZ 81 434.514 null] >> endobj 26 0 obj << /D [84 0 R /XYZ 81 397.626 null] >> endobj 88 0 obj << /D [84 0 R /XYZ 81 397.626 null] >> endobj 83 0 obj << /Font << /F88 55 0 R /F33 43 0 R /F96 48 0 R /F79 44 0 R /F67 42 0 R >> /ProcSet [ /PDF /Text ] >> endobj 92 0 obj << /Length 2121 /Filter /FlateDecode >> stream xÚÝÉŽãDôÞ_!HÜÞ—p@0#8¡!¤¡îÄéD$qc;=ÓøvÞZUvœžsâà¸\õ¶z{UüÉÃÄŸ¼¹ùnysû:Š&ï~L–›IL²$óŠ(™,דwÓtv·üéöuž»@Qá~$ä7?HfÁ´ú?í ~xž^ÍqõwðÜïñk¶ˆ¢púX"dy¨à·C<Xñz¬§Y’NË=/êÙ"̦kDCj{„8Âó€ëÑ”?iøÖc”_`êô?øì‘˜g@9“ Ï K¢–‡G¡^µ¨_TvûºH]U,D‹(ñò4e|5[$!î=ñ…'Ò¯IDÚ!®~ ÃW²úA ·ð2I®:µÓ(æ@Ú ¦sK¨m´ ðÊ_üÚ '$·$N4-ÿ 3î~töþl6ÖÐhgD^FE‘$—œa¦Væ51ä-áûxÞÀóìÇ¡îE^ãü^Ðyt¦óÚWôÞݪ·ˆ¦û?°K§YðqÃü.ƈ>™­’ž©ÔF¨˜õh\ !8?0û‹Áe„í(¦¤a?‹>Êø#Þt]èžÆE²û2"ý!Ð¥ø‚ºË¾ï\/PÀåWb”[y_C¢›³½d§kB©2V½Å6„8¦„¦>µ+I ¥ðÝIî­Ê¶ÈÎRU¥2›dL]§µSL‰JxB}µ0÷™ûžûrªï‰7\¶æù Útú¦åX#­÷Gž©ä(U Ò»Çµg‹»­„¶{st êŠÈBè¦a2ýÑa½e=¹¢B: ßÕ=C€0̓‡±¨s ’úFÝiÀg!Q7M ºá±v¯ëôªø^SéÚ3g EC×GxÉå†>J®e|(ÌÜ8CHp8’S!¹"¦òm' ©ã8]Í’PÔ…£õXLe±W$…’R‹ŒÈ6nÔŽ5 Cv p²›¶Ô¨2…EêÅà —”®°±uìOVæ¤ÞUgJ=€Ç|ªh½ÃI6ᓬ”q×cCfƒE:p¼çI,âf-¯¬Ê£ào95Ñ”v äíJÕ²¶VHÐÂ3™T<ÕºÐ4r’„jö3âFÝJÞ¥,J™Br³Ú*¢«€XÒR'ñ†Ð&‘t&{qjàR?é:ž~¯Ç¨º³·£4¶g/biÓŠu¤èë,ZÍPý色í‘qö( ¼ª“x¨¹‹(ŸÇÜ9Ì¡2 l­î±Ûžï¥XA‚Ìó㌡–[Mì°÷ ÷òœ´ýmS¨#s£"ojEå,é\ž VË”0¡-u†hÞ»©Ø0™g¿“tžýrgÄXï‡÷Zç=Ó´vQYY;-O”M5R>È_w3Íthó=%m©ˆ­{§t¯½ì$Ì2 ‰]XJ2Ç’ðñE•ÙÀG>¿×ZCž[qLHød¬jG¡Ã2‡XCÔ³„s¸;Âx¨ŽZÞÊΔ£Ì­ŒÀ¯7僱°¼ €AD‘Ÿö/³ü~ÿŽÝÖ·Ü·â[4xú­§ç¨véèâPÓköµá1,ÆÒ>çæwˆÕÎ½ŠŠ¨÷ÏgÄq…£°ßXáûRõNi2ŒD¢+¶¨gh=7o_”êŠ=|e啃s6y­HP®C1gbAGhìVÞîþ‡ynà?KMþqnëfÉßÒGÐX¯àJ®ÑZ> “uœMcŸßk 'Ø$F^žJØœ *†4]6bÕL •S Åúžªºí&äQŠ(>î­„ïQB嬉Ôíi‰ä˦›fÌQÔ#vTÑ“^I ®âõ,¸ƒUò£²ÜòÄyNu:: ôW…ae¬ÆyéòæR%”E Îi¥iâ~¹¬¶1 §=©½ÔV¢éð3‹w7ëB½Ì‰ëŽeÒÎá$÷C¸ÒàDæ–?wˆÌà<3ÇÔq´å¢k–_X•Éî¹r3:Ò·  VT2ÔÑpÆ´eøñИV£ºÊ 1ó½³{â$Õ­žùÛöâCÿÚq£--ÂZ³°ŽQô‚ði#|0…CûÒYl܃÷¸9MàFõÎíÉ‹Øø@´i(äN:C–1¶ý)ŒMw8ü/‰RÚ›¯‘˨(ƒ£xš»G#°^Œå¯(÷Ò T´QUqÄ^œŸ]Uß?*­îzwV†7îžÔ¬Æ©ÎíŸ{uëo®.JW¤Á‰Þýkúׂ0žœ¿<ºžzúØïæc½sã;ú?ó7°Ë3žñåÓõ;¼²Æ_g¹Nnµ‡sŸ_6Ù×ãTô®ü|»Fƒw½?,õýÃòæoàUÄ endstream endobj 91 0 obj << /Type /Page /Contents 92 0 R /Resources 90 0 R /MediaBox [0 0 595.276 841.89] /Parent 49 0 R >> endobj 93 0 obj << /D [91 0 R /XYZ 80 770.89 null] >> endobj 30 0 obj << /D [91 0 R /XYZ 81 460.889 null] >> endobj 94 0 obj << /D [91 0 R /XYZ 81 460.889 null] >> endobj 90 0 obj << /Font << /F33 43 0 R /F88 55 0 R /F96 48 0 R /F79 44 0 R /F67 42 0 R /F87 45 0 R >> /ProcSet [ /PDF /Text ] >> endobj 97 0 obj << /Length 1780 /Filter /FlateDecode >> stream xÚ½Xë‹7ÿ~ÅR(¬áVY­¤}”¦p¹&!!)áâÐm){öÚgâÇa¯“þí—vµö&¤…öƒ-­f4ýæ!Òh¥Ñó‹'Ó‹GÏÊ2Ò©ªÒJGÓE¤+£L–E…+Te\4G¿Å×wïá·:À_ ¿Ý=5ûIbL¿„~=›dEüzȳÛ^2é5|Ü å¿Müd…TS£ •Lh±3£â{·b;ùcúòÑ3cB-MVª¼(a¤_<©ì*J¬ÕQbœ*󜦤í$±.%õ÷GøÃf¤D3’­âçõ¾653nv“Ÿ#Ú‡X[êþžj+`t"`ø#ªw¬wQ…zgºRN;¯÷øÖ¤™Ž? Gúƒ´H[Žaª¨Œu;ÉÊøu8܃â9Íœ¡Æ‹ÁrK²€§ÿœ¯d-lç¸x%^ÆLH¸Ýª%YY(“–Q¢r¶âõ[Q÷Ø£J–Þ‚9u³´¯  ¶bi ñts½kx¸FiKThÓlqsí :wÊÚÎöb½IÊŒ:UYÕMS€‰);/ÁåCó"sFÿ·hÈx4Jvº—u…ŒËÏš~›áÞ–Ÿ6´ÕzƒÌ C¬«J6?‡¸Ù‹ÄÔ°DœÙò÷G…ì@^y™°Ã®%OCà78ùÖCÉò9'ZM(™øjá]~Ïä“H {.A"å:Liéµ&–YŽfññp¢L3ºT3M ¦çè!O…ÎH‰óÏHÀÿdÓØß4¨ z¬žH¢ÜP3\Ä›ô,w]v£¡®›Çõ}ï+ ó'.øsBxŠ‘…”»þîi¯¢è#&î½ql·8ßÐQ¢h,ûxIÊETkÎÆÔÁG~Üsï¶Šƒ¬Êà K1W@’Ò,ò8š$.3”øV!ièGòþŽúmió’K¡y{Â"ÃóÓšpÕñ%/Òg#X´’I½±29òEüZ~?ŒÉÿ†Z×3i#ìlŸÿÛœáÚÿQº,ƒëˆâ7´s(뛬x™Y¡R8ÍHæÓÀoVÁLŸ^1mª ¢¾é•1Úšøô+ø9ø}G¸®âw#cœ®I§PªßçÁŸT”»(#éÔd%¢Ð¾¥üòºž‚hÈ{>ǵ¨f…ž ÛLx˜oÄ™÷ í Ý Ð"$ÅÈ•(j¨?¤ûù…ÐÇæ§B3¡‚¡exH!â2ÁìRD> ¶ùW§]SAŒ6v2=9*¦ÂÞv)ƒXClx¨îý|¸þû^~)ª¥ŠJZ7fµW²ø’ŽN +‘Ùßw·ãëPd"KYi´Þnù0i,“³1®€íü®¬¶ÛFïìJìý³ãÓçÙ03ì%yvužÅüidÂß¿M7‚]-þðç’‘ODg—r­à¢8@ä•zØúRÏäèÙ¤ßñ¬åhà·àðÏEØwqg“Òòʳà‡‡ÅÃäÝZœí•Z‘×£$5êìÆ@ö†lyæíà²â½”P¤R½ôïݳPPz9à”·Äpð}Ž¡ƒÂñA²’\Õ>0åjÌ­+§Jm¿=8tžFG®LÞ1y÷”`)ôgH£Ñòtzñ7ŠÉÛË endstream endobj 96 0 obj << /Type /Page /Contents 97 0 R /Resources 95 0 R /MediaBox [0 0 595.276 841.89] /Parent 100 0 R >> endobj 98 0 obj << /D [96 0 R /XYZ 80 770.89 null] >> endobj 50 0 obj << /D [96 0 R /XYZ 53.727 291.108 null] >> endobj 89 0 obj << /D [96 0 R /XYZ 53.727 255.043 null] >> endobj 95 0 obj << /Font << /F88 55 0 R /F33 43 0 R /F79 44 0 R /F96 48 0 R /F67 42 0 R /F99 99 0 R /F87 45 0 R >> /ProcSet [ /PDF /Text ] >> endobj 101 0 obj [555.6 680.6 687.5 666.7 944.4 666.7 666.7 611.1 288.9 500 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1] endobj 103 0 obj [531.3] endobj 105 0 obj [383.7] endobj 107 0 obj [555.6] endobj 109 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8] endobj 110 0 obj [388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8] endobj 111 0 obj [639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.5 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5] endobj 112 0 obj [555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 808.6 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8] endobj 113 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 114 0 obj [357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6] endobj 115 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 116 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500] endobj 117 0 obj [555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 755.6 444.4 559.7 722.2 777.8 500 905.6 1016.7 777.8 277.8 305.6 544.4 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 305.6 777.8 472.2 472.2 777.8 755.6 711.1 722.2 766.7 655.6 627.8 786.1 783.3 397.2 516.7 783.3 600 950 783.3 750 683.3 750 759.7 555.6 694.4 769.4 755.6 1033.3 755.6 755.6 611.1 280 544.4 280 500 277.8 277.8 486.1 555.6 444.4 555.6 466.7 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 427.8 394.4 390.3 555.6 527.8 722.2 527.8 527.8 444.4] endobj 118 0 obj << /Length1 1981 /Length2 13249 /Length3 0 /Length 14460 /Filter /FlateDecode >> stream xÚ·PœÝÒ- Áàwww ÁÝ}pÜ ÁÝ5¸Kp÷ ‚[pww×Ë+ßIÎ÷ÿU÷ÖTÍ<«WwïÕ{wï™!'VP¦6%@¶NôÌ L<QYf&+ <9¹Š…“5ð_3<¹ÐÁÑdË󇃨ÐÐéÍ&fèôæ' ²H;[˜YÌ<Ìœ÷?à›x¿áµ°±³ƒÃÛþ÷óÖßÿƒÿþÂÝ€Æðó3 cÞËš€¶»*a|WúíQþ)òmõjzÏy‡vçd˜DêÊt¿U‡áğݨK›âT×B DÏž‡Íu0Á-ñŠ­^Oú±JÛ­ðsãX}cù‡Âµ?áèU„v¼ží½Ô|­ šÁ;¤É³í¹rÑï\{%Ýj|[šÙVܩ丄ðôm’>R5BÇ·hš<Ç(ã ´=!, Ú™ÊôõÍZÖØ+‘t,-¼÷Q$k§ÖKÔý/å2ÇN\2\-Bˆk´á O‘½$iìYÏâˆUþÙLÎÐè…€Þ¸_ŸÔpI>+à8”Ðó§}‘é@'ëÌr5Ns°V3“PPÕÂz’KšÆWþ,ÖÏ °ð¹&%TŽÓ7¡mïúÐyt¢ÚAˈr/!<®|‰Ø@š8­¥ò¥K¬`‰/3Óôaï‘ëyœ’wr‰' ]^ÌÒ€¨¯‘v­¤êµÙ€Û­púŽr¸úÉ?]Æù䵌Å+(ÑP|׺ÅD¤™•’rb=лû$L{µàùîgN¾Ù Û ¦÷Ü÷Ëz%jM'IÌ*U‘ŒÖhOZ6ªÁWƒß›\pü‘¯,ÆJ­š1Ý”•áVÓPèÙŸ|#ä '>Gn9«ƒ\–[H­\)yK6'w 3Ó›6*Å:z³W^éæ!øþbùë0+ÈqBr‰‡%:÷¬á k|ÞÉ=$VQ w`øt¡™#k&³¾¯š¾ÞÄ$ëÝ+¥ö˜(”“À®wY§Îî}ÀòRsÕŸ’ÁxçƒÒâÅþÛZt• Z3µqRïs\˜JäÏ’QöÈUEûTcˈ ³gk•ÀøÛOã‹´H$wÖ¶Ø_•;±ÛðŸUÙ¸¨FhnÏÇ«8À9bÝ öµ¢mNd#'Åšˆ®?ï0Ž˜·´m(¿±¸>éÃBãùó2àÍnK“BË~XŒÊ:Lƒ‰ƒÊ¹:”on„¿Ê̓K>FU㔹Sõjå1ÇL‹ ÚLlÈ ê™ñˆ°·£Ù‰è9ÕÅ$ˆáHøÜ]К›kVí¨OW}” ÈfùºO¡8µcÈe+ÈTÜVŒð’„åÔH™¼jF„í\!ç¾.}à}¸õ2¬­¢yo¿ï˜.½õ©Ø|pÆA¼Ï¹$Ç¡«.™BªèR^¶Ó‡Öù„s\؆ c,Ám©DºdÁ¹´w`ÑÛÒFY_ˆ\Àw¤4ô«ôkŒøc>y–óøLƒUrpÇÔcñ¥´N tfMô×ÜvüN8f]§3rÆäü™;1‚ÒˆG…Šnù\¶—Ö¯½éÎ\¨(ŽÉ;%>ûï™Þy¤4îý47°ÑCCB¾´Xˆ·ç÷;äèÜÎÉM¸8íIþÀŠL¡Ž˜"3ÏÙ¾ð¡¿MôQlÁ ëŠg>à³Åå‘‘Þ=ÌLºBæ„L}¸Q Œd¤‡Â<'ŠC.Nžs¦@u›z2¦ð“ŸïèÌ,®y©*·½Ü@…rrGfÑ|ÃI0ßncóÓ¾D–Jž.0 SÚ-pg T$°)ÞWªh¤åÛöÌú‚CsjZsäëZj¯ö6úTâè* Ñ”<Í E?»Ø˜os›DUV—ËhÉŠp{-ô$L²ô급œdnó|ÐtgÇfÅþ j;à'Éz†CÝjø”²:“±6 (ޝ–‰=5¾/— âÖúµ‰µG©uû>kœ¾ Àa9i¹¢Z´3„ ®52³û.BDô*ŽŒfvac˜”OUHKÞÛÙ^ÍzjœNs¸Ú¿cãl„xnJ/w®BiM´žC€îj™ÆÁ‹}Ÿó¡Èú–b’&«XJ(¶.шìÕ ¿Æ³XÿËõ4,ê4»‹ ÇÕ®¥Ñ‚OwPJoŒÊ ñÈÇ¥Äé÷£±(ïBÆ4fáÖ†ý'§Q ¹|h‚jRó£[‚ÎËÆBåѯÇ)×_ç®?Aù·´C#õ¦hÏøÈwÆq ŸbŒä°YDzDmêÐ}xlyµ¾ú/=Æ`Ÿk3m}«t­'·Ù;ºÉeûìŠÛ•üqÿÆ–ÔF »N!É æO +裩ŒFävKg"²ì*drb+}øHÛyQ¡¤‚µž=‡Owë^*l@ló”¶+†ÝNRaz§Ì%¼;#x0„±Hó5OUêú«Ð¦Ì5Ñ*Îw6¤)þ¨ï°Ý²Ú!¶&³§Ç0RÇH—ý 3´$I…T¦×©Û—C ~¤@îo_CÖp}¬ÜèãXr &ú’_bÚ®a܉*ðá°<Ü)ˆü/~ĸ4ã•í¦ì7Šå‰ôX¯gÀÇ1;ØeZéÎÇAU¿ÂÎl(³fèÞײWÎChûyÑ>ø}#PQm{Ö ½V˹MZ~6³Xƒ&ÑNÁY)sÌLI¥öž>ý®˜mޤ³Ñm p«I{„W!^÷½[àê„Vä5ýavt¥ïYîø’ …ÕøáTŠÓjnq›{®ðÅt8Ýž-·Ï‘þšÑQ>Ñ%ת|Ž}“j¼ÇÛûZ§³yåŒ1ˆâ¢®¤ †^93@OÞþÄM*qcäÞl1 òK(÷kÇ‚|—êºÇHçLyAQ=}ü“†G,€j$ ‡{¼l2߸|þ{ÿíÀè 3^¾R”‹[yhäÿ;•#9ÔDÍåQ±4ÿ¿~N>ÏÎciyâ-uqè}8‚’ŒÎq0Öõ¨Ÿa¦g‚žçSÏ’ú{?$0i»JžÃ¬§—¾"3ëIàEuÓú³b%dÁiU1d×w¤&ʃã@™ó1³ÍÖ;b%3ï«pI-) óUz0óoûÝôn™EÍmHo9T]íÄ Ä ôÝ¿kÃo-+úŠz?"ütdXdƒ;±éÅ]XЉŽàV1¦MØåãçºàü’ôþyñ§•Ó%µŸ¥;„ß8ü‘Ñ\#’ رd)ÖâáòG]×d¿4¼É8·É<ÙØ‚:7œ%}ޱl fÛ±Ó–-Á{¾¶¼w }·TT¤_Y#¿¿ò”Hæc%uvâò|¥ÃyÄ;V#ž ½ä¥ùàëÒj%„IƒT±×7. áÊÕßRÄCˆ ô#zç€M,gùB{&Ê‘Øk,}k „O\ºšwè‡ô,®´ŸXè;™q6a-æJy(é$¸•^ú¤su¢ËÃG^ÓIŠˆÅýÞºHé› aºÀ"Ü„*«ÖçýTAÞµÄò#VM²—üF"w”`ÄrA«›6|òîPßÈí•Ûƒùê‡6É#Øül0 JlÈPÚeÅËÂOpÌþtè˜×~”²Òë^¬2Jen˶þågPÏk`š)Y05eGƒ˜U fA˜B#ÏÝj1Š‚”ªu«Â‡WTäcŸª€úÎ4ôKk½ Ü'Ãüñ§÷•Ñ[?ú8Ý;ÙßG|ä’÷‹¡’zGÐ­Û ñ€»­ÂÁ=È]l ú… Ή*ìý"%FîûW”€Ùü¨Ÿk‚ìñm¢Š*ʺÖ傉5å3¸Rxét³óÕÑÉæ)‚ð‘@"´>ºÃ%Ǫcr`ï@~»—£ heÆf±º©?ÓØA,—¨c†Ynˆó°æÁø.´eÑ÷#ׂð)!i iÇL#ù)áÿÓÀƒØ@i‚!kœjÉsR †6žOSãv®…¢'@u,U æä&i½ÉwGR¥rÑÀ?اýã´Ý3”²IFÕ«gÄ€õT•æ—]Ý`qÌÞ"?¾}²ýÝòóŸv…£d'¢»IÉà'ºú0× q%%—`Ëþ÷ùM#»|h?Œ¡c§Ô/”Á¢Ä+è%I]ö¢˜ÈLE _™Yîí'p¯úî!J·×ëÆð¶!'¶ê;t‚6XêH!àÓjå[Ròp,ÁéS~Xp†¦Ší°Tía›¹©H-¼}{^Ú85h}< „»˺ñÛªe*³“®å6±£á¡éfyPÏD½qòáˆÃñ÷£èÐÖBˆ†äVëÒãÈP–!5Q;%Vg^„¨Ÿ¡‚‰çaΔâS}Kvɘ¦ “½§HGIè…¢äè|:æñ>¬ßj+#Zܔ浦YßËPû{Äóy¤ŸßÞ°\_æ¹*ó²@g„EÒ· ½H|ü Í\vܸëÚázÄ-{¢½ÙJYMšB}©)0Ï(òJIκœ$Ž0¿ØvPËÅ»jPßg ãý+o¼µ ïž+çö­}&]¥æI“C|k?Âöu‰×EôÜ(.¶'ç^7©JVœ•erVh'èð%;ÜO슺§§ëFÁúXbÆém¶#ÁÙ†«¸ú >¬õ.Q;gv!w¶ÒÁú¢&WøD>Ä!ŒÚ )Ž®ÁõÁ—“áoñ†&ª|K™*Êm®?<îî­Ç½„Q(¼ÍX}ÜÒ ‡nî@|š%.†0Ïé]f:Áð8Jç•Î!ý] ù\cŒ±i»8 _­pÂF;/-5çxrøWrG’ ˆ!¡ÔÞdÝ-ë«yŒ"zHù^ø¤¦Ø¾v“æ’ ¾Có~ª²†l³øJSâ÷pëiFîyµˆÑ¬P7, Q» iõÓc´Ç©Ý`‘ûÏQô'ÄL¥7H3ðü$Ò×7mÐç+š!¢?ÁAƒ°Íy¢Oj\w>‘EðN‡ê˜Oí\Ÿ„=ƒa}¯ÜˆÁWGv–Ð úÆîyúî„{"¬ÉMv{8–P²mÄÓˆø*Û 鮃é°˜t%£“–V½†þ󞙢x€nwç¤*¡¦p<í’c˜¦·V× ¢‘9Eþ}Õô~XxâÒ½¥g§Ñ­"ra#\îà ÚÈ­¶}×–ýÑ 5ÆèbÚ¥4ßè¶xWJ‚ú«dšZi¥<¶_êB\(Tïlžp³š.fàƒ÷gº›â‡Ç±ÞÃ:³ž'…tI)Ù¹­‚K¹=\ÕÓÏ’U ­0|þ¡Š—]§"c7õs£gä“Ú£«…ŽzÙV:DNæž`‰ðùm*7—l:¢Åe)IµÈÃüÍH6k…cvÖ`»0ÛÚoýóæpÆ4¼Ž]nh}Œ´‡N‡&ØS]L¯¶É}ò)É­­q« SÓ÷®º‘D¿.q-ÎSd…òܲhU“ÓȬ°œ3Èl<¥ê$8KE­ÓçÐû‹\ô² °@)ÒÃúRoœÕ˜¾ð‹¬.c$=‹`:^ïE¿ )Á™Èá¼F“I´6’¼É˜ãòÚcI†çÝ`ìžwýáÍJ„­Ðè^#º/T0¯Kœž>ìá×ti²õËÃÓÙ4ì)üÎ :%»hˆ"sÍÚ{ü}—“ä©bô c%æûŸü& ­7¦ÇÛMmÂ|Ú›„Í™Ý93A8àýå¹ø/XNÂ5¶h—¬¾§Š† ×o™rÚù!'~C”ìÒ]åéñbfÚò= x0“³PÔûˆè›äÒ½õhj)LÞoæsÁBi¦Xdy܉ŒuÜ×Ï^0ä+H8œØ®ö…i‡gv‰Ù dØœÊݧ?î‚“%“ ž{Žþ@nC§~›þê7½¹5J‚B ÅQ("fž[ £æq«lÜߺ÷±Jr*ȇ­–»-˜’ÌäìÇ äO`.pM,ÏtÐ6©÷$ÑòËÇWìWˆšyóæ÷wŠì‘N^6*Í:_0’š7ØKñS‰˜ÓŽÈYN=+ ¼îW{!µ²ŸVáÞ#ÙkãËxXq™˜n£CI‚¼”Ü«“ˆ™+‰Û1×èj®¶Þ]+a•ê©oæ»Å T—„©¢Š œ9ú5Èg§tÎ¥$¢¯\T¹[¿ç'Á¤í*Výöë*ëši¿¦±Yz­«B$ÇÕNÙuišÀ¶+c@LØ“k5Ã5¯¯Ü…6ë+è`_{®òˆ²RL×P$ÒœåõŒIP¡•JZ×7-ÞÒœZÔ­ñÖ"ð€XõßyÚ\±¸¢|hŒðî¥áëžÈÍ€Az¶83NÍ´1¥q<»y×~ëoÊ#dlC¾Ÿ4܆ÇT “‚bq¨ˆ5äU¦hqb«’¸£îEò< ®XÅØwçÑÔ†Yñ<{"…É7ßltG0ôu£ïÊÖ¡pidV†a{Rã:"Ȱ‚DtÊy’¡?7îdà[<û„÷è›÷ßKî*Xü¨Ãì„crHŽ 3Gu +ÜuWÍ#8h’¿ß.8‹z‰çÚ¢KFÜÃd¤ÑBI§½ …œìÚMýøþëŽì©ÖâÈeíEÓ~)×Àâm°C²ii)(BÜ+@ŒÍ\ÝÐøQ=_Ô(;q­µ¨¸d@ú‰6…èœ0â‹V=*á‰ä…ÀÍ6 ý XRð‹ AÅgȧì»ìǸíì½Q}*ÍaÚJ–çq>á*­îÝK|¿kMº£pÿÚäÆóo‚Ô’‡ËŽ™6#˜í ÉŠs¬6âÚ.ºó…H„HŠƒ2Áwήêef%h˜”KàÅŒÐ7ëCŒdÈÛ0â³0”bqrYõÃ.X:Z´¾Gõ‰ÞGŒ.q­…ÑWJ±íUË/àA/±Ÿ+ ´Nv¸›)rέcIO(ܽizC›òöú,@¢g "ÍÔYBêŬŒXQ¬€KOQñâ,Øg6{†SëPÈG¸‘=¢MèêáÚãW%·<Ò­®"FQ_©ú^#›¹šì‹_ÉØi˜ybI•_¦*ò·öÚ±ÀªùçOÝ¿&¦l;- ìà?Ÿ—xe&¹;Ëu9í J‚¯Q‡ŒzÛBÓuŸQ¢o}6»v¯Æhž Û‘3›ÿU:ü{§\RÞ\#ìšè‡0¦ŠeŽ—¿Í‹Ø{eþ3!¿½²é*„ô΀/Œê༮$5yj’fB,¾&í<2„¥g.é€@œ”NÍG¦kgÀøEŸ³ò@°ó hˆ¾;s!*—¢‡úœÏ3!):–ä;­H%‹Áàm –‚AE €†7áëøe¥Û9±V–®°VÊvªÐhŒâóÚÒM«éóñ'^fú2}{>4½ãœ2å©c)„á_º›à%‚_i‚û„À¶`íœLègº? °I,¤ä¬œ°`ôPšøô%¸›À ·ºòÆX¦ŽÅEÚip÷f–¢i:rGÏá”+€š.rÂÙŸ4×å³@;§ÓÓ\h²Vœ—2–ÄViäÁõÍío.™AÍß|-â¨ê³CGð­Û{çíT@À–q¹R–ÔÿêLB­@rÞ= Gt¿,!|°Ûûp/‹d]¼wÙí ÅÕ¸¥çí/ÍhkêÔÂèÈç$¡°”O¥—5àî8‚4¯ͪg.¿»¬ƒB¼Ö“ƒ7^s¾} 8·=æt˜ÍÕt;­*§}ª%Jð#9íŒõDX~€…“ ž4²ÐhÆÂyõeÊ%óV(ÃVö!LˆÉ‹[‹üv‡©*5éƒ×ÞvNf¨!8ÚrÙ j}Drdè o¨o'%„U{ìùìÄÇ£ŽÈ‚Ûl%òuö+PïéëM~ýy&DOÚŠJ%ð+0åàh-ò½zÙtALìσ@Š(\.zœ^ÙœrDž×¹"©ÓÓ·ŒÙ6M˜‰ÿØc+˜\æaÀÇé¹1?ÁÅí@ª ‰2Ù£7™ ͘ÏàL"ǧ„õ‰TTIÆÄ(¸¶¡?!!hbY‘ ˆ*H­.}Ÿ¼ØÍFÙ*-l8ðgâÏÓžAsÓ‚A­eˆÅëÚM=¢©5¹^û‹®>ôË¥¿®Uz®yIÈAôµâx“–_Àïíƒ2î¿Ráx ÐJ¬‰—?ºjÙ5O,R¼ç›Y`‚KŸö¦jk-yígëÐɑؚǥÅœâP10q"Ÿ·&èÙƒ‘/ÈÁ©Þu®G“ Õ¾y–NäÑ]S2H4¿KÉD3…y‚é=—ÅZܰÿY&ÆY‘p vÛ³¦ˆî÷“Þ2LHëŠm‰tÎÀªsë‘¿–~ÈÙÇçâ}6")L÷ÝO\°ž«„ Ôxí¼Z·Æ‚_W&îš&Ïc?üoð„NkjZã… ’ 3mäøxÆ`_³Ñ:禞MûH/žn4‡BÐa•n¥»‹†Ï0øеזrÜ 9ÆøÛDϾ™ûä1ŒŒéµ³º¨zÈäf™¾ñvÛÎTL«üÌÃi&†Â„²ø2ô¶ß¬*³r#Y1K~hÎIÏáÜp«ÏÖ°Û ”biíî‚c”¿ç—ñ“˜KPõꑆ¹lhÜt{hÀÉò º'wQ-;Õ>Ô0œ~Øž«ïž¡'dôqŒ!v&Z ýVÌg?6 ò‰=õS™O‚nm0ÞݹõÕ§ø{æŒ×ö^‘P}ÆŠV:…¼–䊪TcwåSŸN–&¼çj#?WÌ,%²±awjŒÏ2(’uðs«ãâ²IŒ§x™ˆåú>©[æ4âºÜFŸ!ݤ‚ª.³@MDÖljÜ=°ãÔÑÏߎÑÞÑËÛ(LùßZ,¦åé¼Ã« ,c‘E¯Épï ¬D%-:×_9n¶cn¿oƒxõÛtcq–šöŠ^* èK÷Eš¡Ùo]<î=b›%ŽÍ <+´ þᩊ[K!ó±0纙HFž‰PDbcEŠúI *¤°´Ùóèö«hÞâØQf¾°õ3É”¨«¶"”?X+$”ÊÂwDšV{GK3Êwøƒ|ŒÐ d§S·Å‚#¨ŒM§v`÷rMÓÏÜü‘55Ÿjò*KÀÁ2[\nµ\,½{oµ½Y`+Çm[.!Ù€øsö~NÌ6|J’‘-#¸- Ý§pŽ><Éj”;ÜoP‰¢‘wM8Oñ¢Z‡§çQÃ!3ÝšL‘­Q÷©ÝÈ3÷šæÔrô,—¨g(/'7‰/SQÀÐ_øù6æÂ­½' ´³"¿7žBs³Ðå8\ï°~“Îß›yêí0+aÜS?Ä­[yW…ƒŒ¹WŽäÓC7‡SR„º¿‚9n» ßâçr1á¨{x›qèðG»"&ÄÆžÔË\‹ í»âhwêJØ%YÖT?!ÒRÿæ[Y-xwEµ>½–ÇÐrh}ovÑ/"Êt:Q»•ónx*¬Ü¥jøÕŽÆP8þdšðÍr­®±øýx¦?x.Ív0RŽá:gôzW¸rÀ«ŸøêS³±°G&Õ°¾´ñHbÆvˆV¼g8kÍ3HôU~€s™ÊRO·ã¿ ‡;VÀ:.§Æä&¬z„¯ö÷Ä+(hb8||ŸLÄe&Ò@ëÿH”’Þ›á[©áµ.—ø®žsqB!ÛýNÊüš²Ä;ŸMiAši~…Ò¨uŒ°Ôᯣ)šÿëƒæHŸ“)õûÐCÈ ¸èL•\¶ã×ÎÅÒº$]ºŠ{¬&nÔKP¡Ô²ÑŇ9e"ä;~ëðÊf÷ß-ÄÉ2ÑF0¸? M(ôÓFŽoGâÍ®ëR–7W®ðôÙ™'Ê…‡œYè¾8 `¸à´–À»[§¤<òwCáaáAŸˆ°q‹·joˆð뎼ã³ç ³hr›`-YϘYñ÷¬Ó ù¹0ˆ‘›z­Ü+à˜–”sfH¥®±VÙ@ZÄó¢OH ÃcÍ>JU†è‚¶_8„“(þkYÀLôy™ðš‰«·„¹êÐÇË9œ[Åc'“õ6ABO´6Å(ØØ…°øRÄdɃuÑœ—¼&þ,b´áë¥Ü§Ô_Æ6(»ð£å‹R$ ™±B¯ñߦOÑ–»Ò.øbv;ß±(šµë§{Ò‹û=-Öp„«“‘}+ã^¥ìÁ¼@Ý^uµâ¸È 75(0‡ÍȬóÝímlñúÖ{ùÏzÙ†‰A¶eD÷ØüÚÄüdKÃS9fާ$ƒ~@“®Ï»‡:PKg”t|IÇ ý7Mœä{Uó&qA)Býª¥Sp2ˆØ6ˆB¯%çÒVü¶a,ÇVž“Ÿ#œE™3´ q´¯†¸ò\Yîn— mS·SÛ ~HR|¤‰ÏÕÚú€È/œT˜¼r…Ó‚Û [<ðc‘ú`Dº’®ŒŽôÃN¦ŒUzXŠ\v¼å÷My¯ÂaݳYk`¡Nãýzäíè^õjU²IM!쪞wR—©­ܪs¬sÜæ@Kôxª“î; žŽ¼_¥NB”뜎÷÷Û9ÁŠ‹Ô¤ÃŒ:Û¸£~&å8ª2Óê/Š3¶ê°ÉÄÇ¿ !@Lüx}–Ýqn,JŒt„açb›„eÄ8ç©ôuì( BÐU´¶B-mç_ÏöÒŽ'Ií%ÇfÓ|“ÓE‚¦Ä¾ÈÆZ U?ÐkÕXSi± èÀù†»ÞÖ¿€³.pÏÉwx'º³Vàaéƒs-\kYŒ‹qÊ´oTÿ.u^¯†G`‹žçíµ©„°Wö“¨@GóÔ!O'œÀ‰¢\ä¦ÎØ”@.‡ÆK‚¿éL¬v,ýI­ïÏ„Ym¾,£ú‘¹¨Ü‹ÏgZÑ$“zrJ*Œ³,q…Äjç-¢? •¦h8Îîª Õ« `uо|>˜œS_Æß–‡KŠ«ÎÊ&ß¶Ðu|)¨¯t2ÓùþÐ['07W?“zÁÐzò3«¢Å244õP~sUŠBј;èU3ŸÑ0ä#‚ÃB(‘|~Ï03g¯(;Ëܾ(ô ¸œÏޱøP€åOj“§zk;t=7AolTÅ,èøÝs°Ÿ`§ŽA“Æ1=kðËòÞAåðÏú~BؘBŽÛÖ#Åž86–,L´:8éPPq¿7ÙÜŒ=Ztù³å8 œ*2½iT©ÈULw.dú”z*8*´SVlPF§ªxT L㜕’z¸Šv6óP#{ÓÜÌÁÙzìõùT²NQ";X˜)ñã`ÿI'O?µîŽG»]µ¡' Ps6>’öBÌ^'rÔwD3bCOö•ºE†^´ÿ„nä÷:ÊBIˆEåS¤)/+òaÍÆdÞÑe4«9EÅá©Ræccü‚½gÃÙ1ìû ŠåDr„f¤X¨O™ðŸ5ʶ¼•ð©šI˜Hµn?/ßk>¡Z~_ìÔò<øÉ=ë—ãÐïLÇ›vµ±e>”ͨ¾Å0¡X ‰PÿQt$Døzó¢ ”›cçë+§mó˜ÇÒ û¾_Á™ðjã…CfœÀßå«%¦Õ ¡ð²K›'k½‡¬+ýU¾ÿ«)o>X£v Úäk›ã@=i™ ×ÛÄîS=0ÉgÆ#èüZyᯤ ÑUتý6¶ŠJ¡ï—U/ Ošà¼ “ó½8ÀÑçøW?È!Ái¦Ê0hÀıq¨6¥XrÊD_Âe\_¾KtªIKljààx¸YÒ¡‘IFåiÈ3Í9î#,/ˆXY(qæÈ=2a,¼õí ÎþNrgŠMeÁ¥f¾\ª`–3ÄÄ,† ƒð‘`açjT£šnò32ôMM'ÚWä© =4l´Ë’f×éŧ¼wn)ú«“=¸‚ä¹õcü¤;ïG†’Úgba« íH—¦ÀpFedËx) ŸK™m¹\Gõý>3alšaGÌT„ @_Á ð¦Æ#¿ô~(!H4ï|îí4.˜#*ž;/Œ¼>ˆèZÊ鈉ôµmœ]SéÞ“hÜp‰ùqkíñC'ÇxW#6þç€.„ gÐrj©Y=œ0©2mÌ,†ƒâ“í\§¤SåË/¼÷ ›‹òv@[µ ;CÆûQ§á˜_{ÜΙÜ3&›>„>“²$½Žh?Ý/­{%ü™¶ûA~üÔS {`®¯fâ7ÐÂÊâ"j6§|~õ'¬üÀWÖk‚ˆÁ”6]ñ_¤#|+8Ń™œ_éNØhÅ^Ñž´®±^¾ ‹m(Y_«… À{ä­´âºý Bz ¦ïøçeP] _%9+ Ø¥óOqV,0w~LÆgnE[h¿éO Ç†ˆ‚ì`¸7½&Þì¼10újè%p­Êû*;¹.O$¤½9©+•w‘D¤“Cz·ÄáJ¦Ë²¦Í@~æúZ&d»4¶¢þ0ƒ›,bDSn鉴ÀÎÉ'ËUþ©£˜S‚ñ^4äÈ1)$¤¾QõŠöB…¸qµè•=gÁU)…4|êÿý*\BUl¤¼HŠ=\fØâkõ*ù5 3P`Ø›É$†~©³9U[é`íâ®·^¹šëØE®’Ø{€”í%š@›$=¸}Ú¨,òY;^‚}cK…t͵ÇhÎgŒ¶}eßNâ?sYˆÜž Tóžk{™uÂÌ.g*©¸ñ»+äŽI  ‰À€0\µ©^N®T_Ó¶¯V_rVÔr8¬LJ4牤wBmï*½¡™¸#dôÈ»í¤Oý¼¢KËríìeÙ‡ÌÖ?zŸ<9WZîÆÆùÎÅÂ2ËCÃ_–Å@Ÿ<Ü J;+—_§akvº¶±¤¸–a(Ò’Åy…-Ç»CН•M‚T´õÜq»Þ•(º{üøfö˜ûEé[ÝçÇ|ŸKHc‡hBï+G;LñÂ§î²øÌ¼8ÊRmyá£O£¢{B„kè?+ÂãxYZ{®n°AÿÐõ¼t&ÑÏÓ'"²Ý„Ž(¯X»½‘û¤µ¦s à ã¸Ãﬧþ}ò×(Œ3Wó iÔ•ŽMÊGÒ,»¨Óñ¾Ž”+k\ðˆp÷ó2Ï <Þ'–ãËj†yì?UÔmû¯ã¯¾&P—Uç~0øº0%ÒX¿WÃa¥bЉnš’þË>ùÓ/?ÌIÝO„—W1!Ÿo”1¿¦xÆß¦žŠ¶=Ø$£Ñ‹ö‰_ ¬$ô”ƒÎX_ºöy›ê½O¹¦Æ»ô Sᨧ«³üÇÌã€Íý+âgv\¶"?L”³b¶w´¢î—‹‰½U†Ô ±bg…I?K¨¡æç÷²­ŸzC=´Ád+¿TºKN>¦Tþ0iîAÏ#°ó_O¨0Ï}°0w‡ÝG*ßÀ̾­¨™µ,\´óà`™©QèeG@é…ØDZìÛb=~Nɹ­>¸_„“ÂÿFðiÚïÂÇqÜyCxòë­9Õ‹åzòm7Ù³[t]Ÿ{©÷öš~p\>ÝÒKPÉ×6A;óç㪟hê+’ÁOQ}S`ëüš¥QSH ­,¬32¸)Ò3J3`þЏ 4™_:¹®”ÀEQ1ˆœi‹/_£ÁâÎ1<GœÏFYü G›UnÃu ïˆ"ä½1­ÈYöpä…lb ®žqëM*oO/.òå¥EžÊI®³é˜ÓÙZ®Ÿ ·yf£„K¼‡ã”¸ò ,© R˜%ý"cü|!R?µÅMuñ†jÖÜ¡÷4|ŸY«;ûþ£Y`¨€F²šd å9¾ý²¤.L|æ & ¨Ï5KIw¦©3´1Ý‚L­d7©íÓ3 —£8ˆ¸ä†ßøUqÀ1°(~G¢üR×)õÉb{¡%½u£)4>Èz¶¿*Ÿ¬?èâ\ŠA °:-¨ÝÐ2މâÓgáÙIp ®'oËHÈ:úÒt?îî•/DpŒíÑ­¿õêõ¥}{W,\çb7*€®AÿåJ5-ŒgŠÆ·¥ÈÉ^Ur`î€mhˆ@4IE¢|¬$ÂT(îÿ‹Ð? endstream endobj 119 0 obj << /Type /FontDescriptor /FontName /XFGDSW+CMB10 /Flags 4 /FontBBox [-62 -250 1011 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 108 /XHeight 444 /CharSet (/A/C/E/G/H/J/P/R/S/T/a/b/c/colon/d/e/f/five/fl/four/g/h/i/k/l/m/n/o/one/p/period/r/s/six/t/three/two/u/v/x/y/z) /FontFile 118 0 R >> endobj 120 0 obj << /Length1 2429 /Length2 20799 /Length3 0 /Length 22203 /Filter /FlateDecode >> stream xÚŒ·Pض¨w— »»»»kðÆÆCpww 4HðÁÝÝÝÜ™™{2çþÕ{EUèoùZ{íÝ„‚DYAÄÌÁ(é`b`adæˆ)¨²0˜™Ù™™Yá)(Ô­@¶ÀÄðš@g+{Þˆ9Ao2qcЛ‚ƒ=@ÖÕÀÂ`áäeáâef°23óü¡ƒ3/@ÜØÍÊ  Àu°ºÀSˆ98z:[YX‚ÞÒüÏGµ) €…‡‡‹þ/w€ˆÐÙÊÔØ ` ²Ú½e45¶¨9˜ZAžÿ‚šßräebrwwg4¶satp¶¤¡¸[,ª@ ³Ð ð»a€¢±ðïÎá)ê–V.ËÕÌAîÆÎ@À›ÀÖÊhïòæájot¼%¨ÉÈ”öËÿm@øg6F–ÿ„ûÇûw +û¿œMMìí=­ì-æV¶@€’¤<#ÈD0¶7ûmhlëâðæoìfleklòfðWåÆI€ñ[ƒÿ´çbêlårat±²ýÝ"Óï0oS–°7s°³Úƒ\à×'nå 4}»'Óß'kcïànïý˜[Ù›™ÿnÂÌÕ‘IÃÞÊÉ(#þÉ›þÌp033sñ°€N ‡©%ÓïðꞎÀ¿”,¿Åoøx;:8ÌßšúX™ß~Á{»» gW ÷¿ÿMð,,3+SÀhaeÿ'ú›hþ7¿¾³•@ùm÷XÌ¿þóéÃÛz™9ØÛzþ1ÿë|™¤TuÕåÕéþîø?:QQ€7;3€•ƒÀò{ɸÞ>øüwec«Êø—¯Œ½¹€çïj߯ô?»ý³Ôÿ\ÀÇRtxÛZ €úÏ’ë3s0›¾ýÃòÿ¼ê¹üÿmøï(ÿ·%ÿßIºÚÚþ¥¦þKÿÿQÛYÙzþcð¶´® ·  àðv ìÿ·©ðïK«4³rµûßZñÛE±·°ýÏ­\$­<€fÊV SË¿·åo¹Æï[fkeTvp±úý¬ÞŽæéÞ®–©ÍÛÓáò¶’©€o7ç¿SJØ›:˜ý¾b¬œcggcOø·C~#€7ËÛ]4züµÄ&F{Л à­=€¹ƒ3üïåä0‰üýMœ&Ñ?Ä`ûCÜ&ñÿ3€Iò±¼mßb0Iÿ!6“Ìb0Éþ¡·ìrè-»üzË®ð‡Þ²+þ!“Òˆû­å?ô–]õ½eWûCoÙÕÿÐ[v?ô–Oë?ÄóFÆè-»ÉzËnúâxÓ™:ؾàÿHØÙKììþøÿ>Y&³áÛ¼€õ­È·“5v±ü—É[æðÍÁü_ø[iõ§¶ßèö¯ˆ¿¶ô¿Í\ÿýÍÀâ_øVñŸÜìos±ôt´ÚÿËâMfõ/|Í¿ðm¶ÿ·Ùý«ö·æÿ„âxsµÛíéßšsø“ýÍÙá¿ÔoÕ;þQ¿s|ûʲ·šƒþHYþ‘þýÜüGü¶QŽoŒÃ¿fÿ{6NÎò-¸“«hfbû_ÙØÿ(þ;(Ï?šÿ³°¼yükÄ,osùÓõoºýk¤oæ.ooüj}›‹‹ííË[ù¼=žL KgàŸÑ¼= L w‡9¼Åpý¾‹Û¿ð­p÷íЛ·Ç¿ð-¼ç¿ðm0^Š{‹ätþ;Õ=@¦®Îocýõñ¶ÃÿÃ}á@SøÅ9S¾ ëÚ Ö»j‘÷î »cÓ»Zi4 Þ‹Îm®È0É4UYëÎ7"Ƀ]¨+ÛÔ×ÂKÄÏÞ‡Íu0¡-‰*ß?>Æ«Nî~‡_˜Àî/<ùÖKGÀ .¼÷ñÙ飦¿ d3øYŠ<'WndåÏwî=RßzË–GBævUöª8åžÊ¦¢5¢ôý¿ÌPä›dÏâ’BƒaiÑÏZ_„z…,ÜYh%,õ"V–y3 S¡Ê@£Z@LTú%·dî'(ã`~ï€sÑ|–­Bff]n¨nð‚޼ç1>•õgŠí3hó¶îè_9_M~¤žâY²Ie…PçgJt†ç¯ÅR©ðÕëg˘Î6*±ÅK=‰å¶8ÎûÉ‹Øe¤ºwç¿FèxZßó0žhVj|ã(P!Ù9Šd=¨÷ îá¹1;غ)/5Àúé yVé&:³©Î”Þ®ê—Ûᢔ.% Q|»=Û gBv¬.êFb׋¢¥.ð°=ÚQüäN_&#NAU´¨Ð+÷“?ôãâ‡ñ¢n¼j?aìðëF?ÖÚ6¥;j0Ä,ÔÕЬ½eH2öÁFÍó|Ñ÷jêwŸÉ¼6Àºç§F·I†'·É½m+õ¿°÷4ø8¢Ò!mã)Iæ·ý2.ר£"^Ì#šÖ4ÜEê–j2gú€ëG#ïDÉ`ÚØ˜1ÇŽ¤…¥TYkòEt˜¯s‰9Ö[^ÙÂıM_]ôk×0¯ùƒËô;tÀÉ×Å…Â4~ÁMì=q&çNyH嫨÷—¿ÏˆÀÛ±ª¢˜KÊ!™Ÿ„—géÑËÉ@»Ú.ò¥!‰2Ö€5=@‹„ÛæŸ¥Â¨M9WÅPf“È' bà­A£BÛx™A–E©b„Zì©““•Qv{sAÇqÖÀ“ùkNtOtÎÎIϾO¼Œd*B–œ·p'•äHŠu?W #ÿXõêï Â?¶?–Š€0iô©?›ˆ…¹ô#lú+ÿ÷Ÿv§u÷ Ykƒ–gkyAë•?ý`ëë««3…ñŒ„.¹R± Gò ô’Û/¹=”ùÙYf /@ãwÒ`K(H|œéÍM>Îr®,?Ù34ÄÀ ¬2°ë¤A•µ“Ó>7ž¸Ds/ŸL‰(ô×Nýô[ZöØ•ØÝHô2 oeZ>WŸ~«zÂêÛ3Äg^',¿P½WÈÕa®‰uóæ\ÇMšÓ¿ë@8ç: f²á ÜB&e«OéÈ1®Èáþ¤é¤Ç‘’ó6Ó•Êiƒ'"ô\¦FŽ£ éfUbžÖLýÊ)£LNnûøó¡¢‰!gC¯÷p8:y׋'72OÉJa‘dRåz+;‚—NïêðI¡‚µ×kÍ5!=/t†“6ã;m1RoRùä+ϱ’u¡ž¹$lSÜáñÛMý3‹\P%¥PévÌxÏÕ£=´ú¡{[â^+yž™¢¾XSfáØ’ÒÍܸp‘«ñ·‰¼ÙÔ×í÷‡ŸvX4™¢D„k®ŽI˜:uò¼îÉï'nûý(z*Lb¹o®m²~p(ë^|5|’±Fq=ȵ;‘„Æá­gA†]H1ƒ-ðä¼ èXZJ"•áÊÛs¨]¸S–2NWWåHyÝ•ðü JØ¡yn•y²T|¨›óÞQB §±@Ê»™ÎÚaAYÕwP*ý²ënÔš ©Ä-¬´[1¡`^Lƒ¢}0Ê8„éÉO\Od2¿îζm£P–`Íç%Ò¡Q•gÚã/Ã>áÀ(Ë)X¿Í¶åûê=Ü@MÖ²  e/ @  –Äí­ºà€ÖÙ£ŽC½c¨ua"òâ+÷ÑAÁcn:U mý… ¾ ÉsGáà•Ó¯<¯Æ íÖ”C +¬Är˜Ï” &yNœÔÀæID–¾mŠ¢ 0?!Õ«û¼ªiWñÚâ5%é ‡n[v_NÚ%+øønAS4VK”Àg_“&îÝŠÚÀ²}þ©ÿÚ—SUtì&좶ï’ÑýemÊÙŒmòï&ý<îÞãêik†¡áô_^©äU!©+¿^»æÝÇè_–ð}-š]±Ïã‚¢Œèl½ñao*·sq†Âæ8œløÒëÊÆn“^x£X†Õ¹£˜}ºå,D´e;ýÑèU± tý&Ž~!|Þ«e#pþ•*lØšš| ù­£aÓÈHè_••r6¬è[¹¹Ë爺C‚-rô6„I%7ä$ïÔóMÓâÛ5ýcl©m-¾vf/™LUF¯’4”ͦÌëo>ß³«°àT|”ól9i5})$¸Øv1‹É´GöŠï„…©,Ø/ä#ÏñÂûƒvVæŒQô¹,ÐMQ¼=RAŠ‹‡\FÞê…2QdÁâý¦½-§'x¨,\¬¤Rý¿Üî¡òh¡RŒˆî[H¢ïÚ”ígÊýú;Ýù:ªÅ10­¥‰Ý@ÊŽÏÌþr€<¬ &+8«Å)W8“ü.1xîþ/é¢Ù\6pxOÆ ½<æ­U‹ˆkeY6¢£È8£{Ú«‰{)TZx¢Äǵ$©]Eè%M'!ú´SÎGÇå¨_è³%o°Ê!ñutå  ×p¥9Eªþvóì§5‘¢m#Æä ‹Ñ ·+ã¥+ÝÉö"éÃ¥ ß½¯×`Ý$¼Ã÷ªõ<Èæ4—´¹RV>–:E¾v?ox"¾²^‘Ð[N²~}ùÌÀ&Ód­Ëþ×'ìc#ùª‚°ËÆ…ùàͽÞOaèn[§òë+-{ŸÙ¯XÒÈ}1œíD^O\’1»ú./ìu×!iÓ¿ ”Þ¹\Ÿ9dbš{Ç{Î!À’ˆ‰Gzã˜Â2jùê6í1ãØ#l˜8[¸(§™‘3LêßTÍdRÊó;þx‡Þ„b‹ø±ùSf÷Áã`OJùX¿—g‰[ ñ¦a­¨×סÐÜ+V!·™VXhˆ_—­×ó¡ÝÚàÆ$Üx³…vð)Ë¡¸î‹$0ð°w\»’p:žj>çB¤WÞÛ:ˆÎý¬H„#NÉv#a¾?hŒL @\]8)•X7Ö 0¿Sö`÷“ÎÃúø F멎oYŠhUƒ”MôŠcñòiïnSZŸtº\úŽ%e,ýØ”CñާÌQ•Kö»èóe½ äIDƒõU©– =2HPïë÷h¢”Ko“?/±*9ÏNLʰ;ϯ4Võxnƒ?­»n´J"å{TE UEmz|3Ì›×Éæ­åPøRõn}ïdó4#æ{%Jý{ß’G&ëÂàÞÅ|Ÿ5£¤“CqJ-¿²9ífrhéõ/û(# ™ÂÊV8ßYÆE‚sá{¬rçTë#ûÿ.X¤v¥§mˆ"ƒ<’}Jdª”á¶að²fBý§ì¾X¾h#¢ê‰ã9Ñе3N`OCç qU|¼`ÒíÇøüòϾÓ4! Ù÷õELÑ|0jxTˆÍ×¼; w²5Ö¿0=Ê¿JP3K ñµ`-«8AÄ”ö'Ù¨S5Ÿå òåðÇ9½·_ØqõÙÊ‹±$j÷8FñSáâç{œ¦Šü…v"'¼XÄÔè: ”Yº?!ÔXGØÊeS–†‚’m©Ï§ëÉa‰Z€ƒ*»LvŽŠr\àZÏÀˆ4ÝË kÆÒ)•ºÍÓUì®Ñ>?z{ö»¯J 15“$Ã):ÉG¿ÀîIfÀe`gtvK¦sñä(L‹$ªšŽˆ3DGd>¼÷Sƒf¹]N· Y"è©„È[–é0ì|Rs~ñ4æ((ëH•ÎNðñ¼‹&øð®tG ;2X˜Ã/au}’þ.+^!»;°qP\Ú:ô3ê¶ –3V€ÇJ üc—àÒÄ\UUþ¸Mê×%Û>Ê”*2þý¥Œê `ù䎤W¦Qc£ÐçmS0a5iÊþW¨Ö„“w@7{0n ÿlÉýmÍš2¶ÞKãJOÏÖmÞói:ÌS’3¨”“q…—¹ðM&s¶õ”ÌÃáâþmR©Ò´Ê}*s—I˜bm-gŸ§›úÆ&žúh¿™y ëÑ~éöÓH%éWØÁÑbÃû†H¾ƒÐÚ± ßø-Ù&·|äZÿ+dðä‹0e(ËTb–BþéüAj¸Ï„߇«;Ï…+q³á2Œ+êü0ÓE|M#B~Ú:h×)P_ÄB;ƒ5~![6šŸ°×ñ¶^6bûh áFøÕ¨…JÆ6ïÙw£†d·î)ÿzZ¹kèÈ;é3´DUÚ©À˜£ñ‚ÿ‚å¡’ ¤QvãIæ¶ãÝb%·«ç ¹óEÊêe²+¼¹©S7G§ç'’çÕ³Ùïï:Ž5è+ÁÛAy4{V¼ÒyíJÁ=ËÔ_ Jþ? %5Û_œ& ±+\6z¤xÃ6Ï{¼s‚3¥uõ)b5ŽÝ:Àˆ&¼¶ p7†E£=)üÕ·šØp¿jnµÚaÊ&Üa3L³ÝZmÏK ¯Äù›>Û4©2f^?»QùõÛ1¢Sªmw‰Y´õ|"ÆåJÄþŒ¨s='ö­²×îg½AC•”+‡¡T&Ì]ý"Kñ# ˆ)jáe#zdë ~ƒ=¼†¥Ò>ÌðQ\ÐÇšnϼ̂ǒœð¡¤üƒð©Â½Ñ‚ÁT³”Ü G9t¡{ÿá÷w;2ÎN§"%læ"ë:hV®~]«;Ým“§GSè:Ψ? ůoxc£—̈`T‹ W‰" 4ÄC†²8zLš­ã²ÂÁË­q½™/®¯°jû¸Ÿ¬þt)jqþÞg ÿN›€5÷¬2´Y¢hbL·ÜÚ¾”ã@ ½øE®ÕkòÒâ—ŨñNLœkdÞd:7†öƒçjSYÅÄm+Ä€ÅÍ+»6뇮8öéŒÑÏ™óNò@‡Ú¬4ãËOˆ·E \‚G4}…—éÒöq9-%•"\¤?½ÅCTù™XAÏ ½ýW÷.»Å~6<2ÚW æ¥Y“[¯ãÏt‹ÅÚG_RPm’tLt“ÒÊ.«q!w,éUÁ@Z/#RN-ŠÈ"Ò•ï…ýhþ‹¾„.p¢˜¿KÎéV«†¯®ƒN¶ŒûU>õ•}ìËɾP&Ø8ÕÍÑm÷½¯$Ž™¦”ü=Ý>¶ V…ÔKá†SS©S]÷»Áp˨^”Šû{]¢ ¯ ñR0"Û-=#3÷@aAXК†_ËÒhG¡5Lðuþóàë§MàÆ±¦¸ììÇÔ–mŸÉ/bÎ8}ê"æ¸Ïi IÊ>|P¤Ó­r7ÓdcñêyÈ’·úûøÏ·3‰„ø|ép©Äõ{¤]g8_UzŸ'Ò¨²UØLø<ÈšbˆÙ.‰ÕFxˬMÐŽ—)š@²ñ0L‚CùJ¯'Y„Κkþ]xª›¡[i¶Ns;ë?øÙfßCr8´£êíçOHò¡Ò+R–PaX•Fè×(ªtÊ\HÏŒ^Mw©ó /Hžâì+¾"À¨iw®2×ðWÐ|·ÜКƒöoc7o–o´Œ]f\ø¦Ac 5É@lïîóL¦«Ø$5!~Uu‹ ƒ­ ¬÷êš¹9ckÒ‡oX¿¼èlrÅâH~2Ìô茄ÔÈùI¥Pß$%Œ¢1‡Ê)ƒ Oœ´¿r#øÄ;¨iø1(8[ÌC+Ãìƒ=]¯Oê½€{ʦ±äÕw>èº#™e9²X|­¼^2D#Æð¤Q”õàNóõÌ#bËi†wÃÌš¬¨¹j+ÌÆ©¡(«Õʼn¡Y8^RŠ+v›´ò£ÊD(Ä^ÙÃ.@÷ÂËåcp€OAülFD¯ŸyÙ¬]ë—.¶Óع35Ö¼ø9½of ‰O²Yú+ß°‰* .°M–pýžîQ>BƒÚ­Y&û2Eö_"°¾vL~}Á‘u뢗#þwQ<ž¬¹—Ÿö”©T§·²Æ¯Ñ©ÍKð.`iYÈ”î†b£îXñûЍOÈ]`ç7ðè²Ò¬oê?[Ww LJµza¡—©kiÉQîÐw4XQ‰ÛÁ˜Š$ΕÝ:^EüE!”8Ω|"f2bï˜Âü}à¬àœ^úö(#ÏYrìø´£þr xó«ZEj»Ê‘£_Eʤ¨{°{Vp¾MLHœ².LH+suâTëìh 2ÔJ¢K(ÄÏÈ ßÊ%GûpÎJÁ¯Ò¼·õiÒÒ`“hûçÈQµoA?ÙR¿·Y±£ûd!˜ÕƒÕ/bXçÄQ o{¯aNµ—ʆÛÇØþáõê€VuG•"EU½/·J…ÏZJœeŒf}›•øÂ$ûó©"ø_qöå¾®ˆ5òQ€VFæ‚¿3Aí©Ñ5iu"é5aämƤEÉL¦™á‰?IÝ#HðÅ” ¤¿SL’lÅê¸Ú1s¸»·ì_ðk”fS±ßÚ…ñÛ¡A¶ÔãD‚kèͳÊýøòr üYZ 'cgˆ$û¶IT¶U6'mx’%û=Ñ_ì€0%Šœ@ÚúôóÙIýìÈä ÊôR7tÊûHõmaë¦B#[•(en­„Ð"ýnQiºõiþˆ\\ve&È`¸;7²Ôùò þÕÝtcy웤ëúÉ ‘ÛDž`¯DCfíòX¼ƒ˜*ç¤m³ýäÃ~d\º§A,*©‚¥m¾RÌ›9’}øð×7sµG87EÆ:ÇiuÊ~öƒ¨ð"aó[Št¸HºÞeM ¬©ƒc+€{sJc8ò¶• 1£4Gní:üÒ'bÛTÕ}û_±Mœ;{N»a›8`)sszʰ:$ˆH÷‚Þ ï¹"D²±®ÖØVùT.›Ã‚YOr'ó‰ʕƸZþNç4£ð`Da ¹AC7¢TÔÚ±4UTå½·iõm£8æPç?C.BNAT{ô‰É†…Ìâø9·5%⺰ž÷±«o‰ËV3·Ij†a—N³Ùäí˜|-ØOPLmk#S²XÕ3«)оC,Ìî® G~áÇ@ räõ¿™ÛûBwç.¶¯=Í©˜ð€Ðþª§Ñou¬NkÖA0…¯å}wh¦Ï,YœÆò€‰¿½ñùÌ­ö¾üe¤“•B‘õ§ð|mÝBœ©\úÌï«É拚ñöû[dF”u¶–m¬Îw!ÑM´š ÊM×:ÎÝ(qY»äƒ)‚´ý9)áԉɋSþ™°¤¶”bè×·bªÖ?p¼§<ô½½z$žlöoµ6Ƭ}2\»¯»ú¥Å]sÉiÆÎ)j_½7—d|•ÿX^Ñ߯OÃ:ì46ûôNúf)Fš3—é¾PG6o@®çc-.Ä ¶'M«täö!á~Öº_meŠA„®àØa[¿—0ÃVT¯²NãK}J=ó$Hq0¦Ÿ Éäv‘‘ª§žÂFÍöÕ¡|>$¿ˆ¡ÂýN0Mç,ÍG¨C]ï½Vh††MÄæ¤Öä¯{çíd‘Ôwžý¾²úж¾¬‘¯Šk¸G~ë´ê$H©<ÔFý,ö•ã» ´ÙˆòIÃŽÆ€úk3‚5¢}çNˆ.z?>WÝ ÏÄ©Ñ M¨ÔÚ¥kPÔ I×k¥ªíב:µ Ó:ÂL;]N«Ä÷ôa/'RD)^G»åÏ”\-Çk"wìUÍì+ü)°"2¹¹ýÐT°Â~â?[“üevåØ¢ÛŸµo¨jÌŠ÷£šóVy¯ Â, .j„Êñè};Îqº˜a¹×ê|µêϱ•ÊI‹ãZÏÀ¹úª´…!0È4ôSêG=h™†J¥Ô0L L_ù¸AFs6aÙ¼©ie°‘£ÖôÔi.ýÇžºC9»,RãÞ¬1Ëì{þ³Õ§wàb"Wî¶|"+ÅfBÛ.vš1$Ž„Žºt =Å_btº£”³Ì¨¼2žÉxÚ*ˆ]´B—{-$Sãã=ŸÖT–~ ÃW…¬ùàÝãæÑIË™–|Q¼['®rÖN£Ñt’UJ;”{Ãá»V5·Äo1ÉËMNÍû!¨Ìý«| G¯¾ƒÝn”JÚ)5ávt"7—x–_¬Qu¿Ú+É9ES6¥aA‹úžbȲ–^‡È‹ÚœvAPҙ°_§ó)jiX§’¼ý¡OÕq«îˆ£ÖšÀ@çÌAïëA|æÇ¡óò .Ö_uéD‰3Ûp9ì|˹¼¶ðCYÄ¥:ü© rŸ15öÏnœZpÓaÚd2Æú£ Š#Ägë4ÃÇ¡•SX¬3·3AWüÖ÷öþÎ| 6òüy]HIxA`«´Ù .öÇ}•_’£ðz•%¾ÂOæÛM‰zªÝÅ£&Ý qĘ´éÁšHne/wÍüfyy^®÷Å" ‹ã*B¹J®u$ßxåÅ7ÙXíèÁT"ZV|C©à?/+q¬—€Äò¯y°Ø ê&lsy'l§A§D—¬:]h쿎!èmíõ1llˆC‘ÍV]»fÙ¿Z¨F*1ÎÎ:ó³;gŽ®×ÇX¢»Ê öã/yy²Ó4³zÙ':Ÿwk§ë\ØŽõ{·cý»&{Û–¥ýôÅTXYÎuú´¡{B¸zˆ’B­u‡åj“HBùÓ¼í ÆK¿“¸-ö,ÍÃ\ŹH¿\·§Àü(ÒT,Ÿ¡n`wŸG4…¶Ú_YÑ “)I”Ó¶KðˆQ ˆ‰–B_áž7®ÄÂ@‚®dÇÛÔÆf`½hTlcB5]œ×¸Ô™°=lÔ¨ÑÂØÃ¡ªU„¸ÀnäE»ã3áh¥)#ÍT&êiTë6æï‹ LÍK†"ü¤Ã/>B9]°q¥Ü)‹%÷ƒêT§TáÙ&+:ù¢Aϧ&ù“T˜.’ÅŽšOÞƒ÷½“´Ùy×õ–Íx8¨Ko)GÝÃÜÛ"ÌôRëø:j5¤⽎ٞvÒf󲨩Ç=CôçÔ€|˜upÀµ\ëløÃÏz]d¥îa¹ ì”+möô´ûT*Ü!˜b'%-’×í{Ôk‘?6‡ ,¸zôœ’0…i¨µÖº‰m<–T\Tâà3TÔDøÃ6 .OUפbˆKk,]¯Xm¥|­¡v úÅQ“•hD_"q¾ ú[ñc›óO*ÑÁbÁëa\zjŽ@p–=k0U(–TÇ\Ì2Щ¨Fâåã²òyÜÕR•‡û}-QÓª0+:‘³G(ÚZ-Š)'sÁòG\%¸¨¦¢yIÝ:T>c¡½?£s¡Öà:Ê)b¼;÷§’#‘ ­Z–eXW¨§SâL'b<]¦˜cݪ€ž­{#bgÖ¼²ùÐXlÞæ™XÖ^”Ø“O^®‰*%œú_¤ÃF¯bŠM*dVÙ… “vk‡H¥õP¸'û"®„>Ý^lÕQn[LZ½wÉ€É"¿­çý>(6úNÖ%¶;B—Ö€˜Z£-÷ ,ÿÝcc0ü³ê&jv¸ðæ‚ÙÝÝÅãUCœîùƸøOWØ{ùÍ3~‘…«—§EFÔPöq?Üi ÌïÙÉIºêýÑH‰!å\Ì~EØxïãïÆOGß°¾…\&’0|óùÑ2?L~á¹UZÀ?<õ!¢ZÐÿp|eOD?Hè¨ÆË)$‚ÂÉå‰yC,¥GÛç"Õrï’()ÐN¤µÄW”¿\n…ʈ?TÕT¤}Œ¥$4 9ïÕøóbnøº÷Ž‘‚wåNFÄPt*¿~Ñz€õÜÓ’Ü+ý8§÷Èc¨2e6ÑUdEˆý©æ`ÕÔ¯/[ï—…dnk~QxÞ õUã7P¤ïÊ›sh/-æ\¸áÚ¢öþk[™å5iæ[F%Æ’3°2ÄEA·CRzl¿·úðNèpjü˜\l<ÃnD &œoð$>mõ#úËŠ˜¡oÅ 1/„?c/›7|ˆ–ÜÚÿ¹™Ñòþío1kó)Ê@]·sxçc6ì2Å´ Œ2¨X+[þö2>žYY*ëÕ—IJ)îOò©‹vŸØƒ$T…®8Nü†eS\ÛYàÛЛ`Í×(,»ã+‡Üž-PÈm=~VÐî©4!H¥´º;.¦5R «b¨ïΣôv*º¹«T©xêù@'ãÃvÝ|@h;³UD}ß<©Ô-WÄ“‹ìsKÊlåD]#›.©¶ÜŠ´ :Åj[s²]¯ž‹±í~wVÐ9é2 'ÂÊ‘ÞOo½œ#¼@Üe*MþÖ>ÄVzJ+í¦;Q'ú=C«ãgßsŒ>åâ+Zzl™Qs w—Á81+i´4PŸbé\~![]zƒs[opÈû‡„§ÉÙ€Îü—¿H¿¦~„7œRšgÅ«÷øÑ‰¼Yf>n`Óüc;óWžPâÞõç Óbj퀓•î–À)¶°\(«ôÒc ãvz\¸c#šÒQ#èçQ!ùÒ›3"ãÝx‡¯³’ÍÀËî‹%ßà”bÛsHÉ&F¤ŸW¶êc¼Òò‰ÆùÓ2CîϾ°@¿ –h–ÓÂCÕà•ñØ:c”&Eas®•Zýš å=Ëí9¦‰]øùKë·;xŒáéÓ_üúV'—Î`ìŒf,hr´I™ÎFs‘ ZÐ$ö^Góõ‡°Ú‹8åR‡’EÔ,Ê5›æ/pŒŸrÇÞBõßQZî—6eD.|¡7,ŸÒ˜OÔ¢]PÝ2RÍüš¦U)ĉD~Ö52BX1ñ*ŒIœ³[)30°!Ì,¤IþkmqìÖ ’Zt:¾´X°=Óµghÿš†˜Ù¸í&Ö+ça²i9¯Ù é‚€‹›Ïc*c'¯R)²c;h0Œöî{¸®"M>"P¾N£ºÔÈ v„qHsý8ŽÚ‡árðcc ±G–,+ÿÚEI¬€ÍDHÎÉö±†è[Ô¥Z‰4ÕÉ$„{è–`~Äh',WQ5W–“ÅØÉâ8 j-„DâQÄ,³«µª㙉<䊖ÏKP†êC“ºe¨²m7}XM½V—ÂÝùú"$ ð´ú|Mß–IüG £Bí³—ó+DíW{¹‘¾”eïzÂtuTq$¡fëJƒüÕÎЖ.s©"E>8_˜E ü OhòþTâ0õYã\ø›r<¿&ö‹Osg’éø0X½è¸'FY'kþ;2¦„–æ,Wã~Šý;ŽìSçA±+@ôM±˜ï­Ñ\§ó«Ã¶½ïˆ[Ù¼d:"~ún_DáÚZn¸í.=­‚Õ·Ö@$4°&b¼˜£ ±_9š)k<Ï/av\óY¼ä‡d"|좰VÍã'mkœ·È”6c†Ç{2Ê¡*ÿ¸Z Œl/÷ð©f%¬{*óø>E×¼5¿±èvuo•"aÓTbfÝêφ~y@:œw¯D\L~8¼ÒÿƒAJDG6ü‰„éJ1ºׯNÓvûyÂ#ç䌤[È0éKÕØêã¦;“”±¦EÑh3fw !âÇø—FÒ—^GÿÚ•oÌH¬ÝѨ´é6Ñöp[? ®ÒÕ܆‹»XS²Kh&¥ˆ-¼½ÕeîVÀͱóBÎý'°]cŒ0+p˜¾Žéë©ÌiŒ~?qÔ‹^Üé1l¨‘IÎ&si&sN¨h[~$i6cúÜ~ÍC"÷ÜBQüp×ÔgZúaЙ]„Ú£`ƒ‚ „QñÒð`ŸjQ}j¦ã0ü˜GpŸ]½7+† wîÚ *´æuñ F“³5»!N?‰ð@x½òÿÑÖ^›[x¾Wͳ'¾äε›ò2ÓB4§k:þS\©ã‡éÌ£üiáføiÿ¾ÅsF`Gn¼¸>wÛ@à#ÙlÉnUN[ògI[)Ó"|Ÿïað3¤Ç;ðgÑ…LÒ½¼gñPW¥ßïXY;‡¾_ª%ÙéRå†G®LïÆœz÷Ë$d`BçŒEÛ!“ÁV ü’  AgÇJ›h¥=„ŠûoÁEByÂ%sƒoãGt.Ñ¥>Fvõc¡lê8ϨDj×ëL/©ÞGÉqÁI]ûT}Â!ñ6f·¼kZ›•ÁÛ êe“b#¨°KÉðBb¾½8x°¦){.&„ZQÍcd«>²½Ú$ݺUd–ª‚(EGp-áÄ­2‰l¤ŠŒXHK§è‘‡û†D޼‰°ºúó½·Z;rú•“Ó籡ñY˜åÝ]S]µÇ®ÍϹj¦ßÏ.ˆéaOáø¸¤@ÝC.ýÐLØT4õb1a <Dt2à­²g>.•Ȫĩ.@ƒ‚àÉU»73Õ%ÿm¸Ã%¹Ù&4;ÎöHã0uÑm‘‹«¯øjé7ÁV½o6»ž‰[ë{ëÑrT¦©V;Ý^uQ‘WÂ墷œ¼ô¡|›ãŸy6ûvØbz‹b858䛺2Å<Æ\™xêEÐvŒ!…¢·¯Ô0µub\ßl¢‚­ï¯ŠZΨx篰DÔ•'9¦g~¼0 LÂßz.òǰ·e““{BEBö´Þ\‹¿¤&iûï$+ C—ëô>Çw UÞÅ·h>emœ#ÅÀÝùhyxN;š6µÖºÜ`îñr/ èk<1ËH¯À]o…³+M%ïv›í ï\úúäò0¤1¯ÊgXn!Yº²0¸)¿ó«)ñÇì~$½|é0JÍB™{j?4àý{Øsò.U‡-ºÛ¯IqÅÖ+FÃè´ñêiwZ„Æï'Nhº%µa%„”`”`z|Är(…Ll‹U`‘ÛèÆùöÑùå£óôþ-•”pGÇFa Œ‰[‘ô†¡ÙÐ5Û‡`+^ÌŒûg!FÓä¾qGãá &—d6‚‘ù3˜ÃkJ=äuQ‚$œÁ%)³>ÚÐò—Á®ž›;“8P!󳈃M)»‰îgŽÙEÉŒsX6 ”Hc-w¶©¤B&²7Â]‹={k.‚Ú—øŒ™[Ü T˜õ9ç§f¬E¥(47rÁðXrÑ*¾©ÏTÚ~Ù…1Åc±~±³é1#®½ØÆõ¤U1ËXxN™y ý•ÔHQ|LEmŽÕãWPCŸº‚Nœ(üºø©îÚÇn! D<£-e^‹Š”<©M‹ðfì kz*Iq•:Õ‘-¿@8>zñ÷jÆ#Ф…›`6ˆÄ&ÚFÀ®gŒÊ"C™þUßøƒúU—= `ðavø—VoéµYß Ûñq©b¯¢ð¨Š†F^GŘJO;_yÜhGê!ÝþQ2’ö.y¦¦PÐ<1ã..,†. Qâ“ÙZšgÖÉæË7ÿÔ‘†áOû&ëçg€„}ÍÆ±MTËOH\6vbuLËwöåL®Ê£üQ]õ!ÞèŒ ZÁhÙš¿Ê"µµ‘¹ÒüÛ[#6¢gÊ&„°­i² rYµÑUJŸ^¨*û{•Í{pÑåp&|‚wÎìÅ~V±¿ /_Vô™°¯Ó7˜QÐÁå¨IJ'ÛtÓ=ųÝQµ¿-ÔáZ”ÊxwýÍ¿y5æ¼r)Em2\ú’‹6©5Y~,s^f YRº„E`áçó–)Vë2`¬Øz!®7Â5M¡«Ì#Ã=…$j­óˆŠ¨,ïZ2&Ÿ`WÚjƒs'’Æ”êòS`a×d_‡n€ýð‘Ì&«…`Ú|”¦Ûõд<Æmïšwö(zN'µ\!ÖìÙ·¾+š4OøÈM¡ªoÜtö=_„~›c¹ÿñÙ—PºÈµ¬a4Êå@ zÔ-Í$ﬧ¡ýT&06 œ½yבR90œZQ‰6.Ë6}ˆ°Ò¯7!v-ç[2!/.ð ö$úm8õGèl!¨jREâiãY9?t¾ Ú¯þYK?íaN_x¶³Ž.‹¿â„G&€åßCXãûÑJ¼įÔ¸0ãwŘº ¸ÉëCu¤Ò™ñÄBäæÕ¥wÅ~¸Y³{çþ°RÿÚµ¢æØ’—RâÉ®Ã|¡;õm÷ ä¶„}¿;Ÿ¡ÁrÎ7Rš±/Åï Ðlz¼ˆXøÖ{ ÉEÎÔýo]5»B›»ª Û/KüÌI-Þ@Xwš‰!ª§ý:Ï„!0Ów;[ÓÑö4aÕ7û;béÙcaéqGîâÛ{ºT¹„Þ•üÅáÁCƒÍïƒìS‚7ìÍeg?î>Xwñ^2Ì4 »DÉÈûw¶â’;n&£"¶ü+!–iÀ%7¹¾åýtPä‘#ågŒzN¦ ¤¥p')Þ2>«5õàBÔZ“ Y`ª£%æÿlzÏ›ñ3L”îÊVxüøã3<Û §ô¹“¯BÔ¬$Õ ÿõ©C*ŒÝZ•RMX|ЇïÅ‘[²ªú> *ï匢Y9Ö¯Õ(ˆg˜ÚàY]Öx\œX´°…êãv0æa>½ƒ,'ÖD¡ë—$‹ ÒÖ2Œq\B×0ÎPè‹"KÚpFÕl͖ËÒÀ€Lc¬ëÕ®xêý¼ñ;5ÑpÞWy‹¢Wo~툻@‡…ìk[Uµ}Ó~-"ÿ]7]Æ *½› åiÁ-ÜåÃ8èL½º)*íµÊüÔd!ÿ‘nŸ ¿qA=ÞqY(™tfÌÈþæ|IZbsدžœ_œÑuý¤Ÿ>kÁi÷ð–+f´¥¯ÊÊLåàÌIÇdÜÑwseñ+&ÂpàSƒ’ìIzfq9~ÕµI•òÇŒ\#¯©‡Õ‡s¼PcaÃòBKgwaªçšWÚ4tb·hÈ‹§âdyÈU(ù©}ÅÚ]´õá[D&@’&WN‡[^FjÉŠ¾Äñ!ÛbúóöÁçáÔÞãJù„Y2ÿÒkÄ\ ¨,¾ä wïù%–ð9a‡”½Ë÷ËܺÍï:œ¾·äC8ŠiÓH½ûFÀÁ’Cr‚¿ô9BÃÇ_špòhô¾ŽE%ãv3Z“%šUY§îi}"¯ô—åXêÒvN'ÂÎíz)±Ò‘½^µ—µÿ`OŸìfˬÕN5É[»LŒl™*¢M1?áÈi¸ú²!ÿƼôL@·Vç¼?×ëU”Å“^÷Æáµ*´eÐéݦ: Aðî%®™ˆm|µT”Yú{oŸä”8÷lß²x]#g˜äk€{9}Aƒ«ëð½˜NB¹FŒÕX€N9Á^¯†-!c4Ë2{u<-ίáa!*'ŸæPTØÐ«æ31Ù”O\f¾øÊ7 깎Ð ÿÃx‚ÇA–~ Îb´fÑ Œ–*$oIŽÝv ¦ÝæFSLòËuŒ)Ç3ö.¡zª‡úéȂϣÃIr-¼³ý;ˆfÑVO|êwLn›¿äH½ñ¨m¾×ì{-ô!÷Ô@…Ùq©©pkí¿‡)Ë]µú•{³êó´–Þ„á÷ŒvÚ€±]32­GFIÎ@äÜ ¾i‰{Rçj²×¡úáË«ÿOíˆeÓ¶öùpÚ˜c+ÔÜuO"¯À£± Æè©~%ž0zg!»h­o£íYÆ–›½î¬àÎéâc¹_‡]¥ÒŸ/k;°¸1}ȈUó¼ì'®ŸOÍæ»l‹!L¾¥ûê·z],{ É·˜ýØ Ã2~‡WÅâe{¨4Õü…wòn²eîËUý²¹л<÷=uο|Íë†Éõ¾j•ÁWo²zýB£Ô,›üeݱ=³êö«¢#”£Ó*ÁF4!@%5¶,Ýß…?,pg0س í Jô¶ðÉWy&N”ÆX,d«¸f±¯P'5Ê$¤st˜1-ˆês@(Žs| ƒ¿*v˜çÜ`Ý(‡˜œj¯¢@i.œ'œ±¬ôJ$ÑQV«Ÿ¦2¤ù~Ï“=˜kÍÊá‘7¶Ô{9ï+˜!H7¬3nŽm"¥dá/a+€ç%¡²ÉBÒùjù’¬*Æ+4<‰‘ Fà?àã†H'=Rfü.cÉOÝR¡€,?Á¹$xx ý+'H¡àúÓ©§)lÏ) Cg4¾:[|Ù5øFÔO=q}É>ÛóÆnöŽîf]I_ôîÎ碦«$Ϭ|ƒÇ,o{ï’øp„ÏD\ãĨÕ‰‚Ò+.îÖü æ>€EۮŹÁœËÝ*O9WXam!ƒÂy™1[ê˜á~8°ia% “À`“zðôATç6uôÕ’í÷/aöµ 4”Fús´u+nbœ?{eÈ Å…Œ´Ì¸QHDü8,æý$oý¸O¨„gÂI£Rо AׯL/ã4cIJh]ôcTm[!:~!§£×s†Ñ^Xø>äß»«ŒMÉ.¦ôšÅ%•DÏtûgh‹“JWL}I :m¦'jEñŸÕÍH½bü!oÙ âáTTSu`=m:1a!11†kÕk<P}_òTŸÐ•/~‚MmSÅÅægüPÕÚPŒÎ½.´Œõ!sפÈòt‚Á¢7¹•§Õ^<;NFó¶Àsm«IÞÈàÄÝ)a Œåtšª´Š;{×&w–ƒïðiªÌ(±IIÁÙÀ)E¹_õ¤NÒùJ`ô)Ý–CÕÓw^ÍݲLÏ1˜ž,سǘ øÔ±)²«VYæ‹ÓðxÛ*üu©È,§ñ:þÔ¼xÆ%kùÔ¡§Ï‰4N{Öè¸YaÉûô•ÍŒ Èâ[Ÿq m¼£Îe”’^ƒèªkRÁòÃ,vB‰ìcįGS´‰ê˼îô.YšF ãÎc{AÃcJ-(]8½— jsé¥îñî/o ÷ìzÓ2däCxãW.²wDŠ_Ïí› ­ñš«ÍËdßC¼3ºÿuY Â_)>ˆ|­M‡Ú'>ö‚6ìCÏÀžìöß$¹{ïOö¥Y³î±h??÷iø8÷áC7ös¨†ÒÁÊp£Ö< .géÚiÕ8‹Å½²ö “˜AèeV êàaT’WØÒ’Û©·ÿíïæs‰ÒÉa=òRfÜõ50¥ÂT šÔAÞ>˜çdóÊüÜQ"¾›á?uÞX<¶»ÔmÇ“pÞò7-z²?¨ VT¾ŠiØL¡ T¢?¼çUBýÂźt€Ü0ô(²™¤~‰¾"ƒTkE±|­ª””Q€øI‰ÖÇè>$w«°b±+[è»X£3˜f!9eî“`ç8†‚~êâüâ¦;Ýþ6"$,þ” ÿœ@B-˜`ÅŸ’43¤®]6Ö]°,$é«ÍÙ6 WÈþQ›ïL¾Ô7úk;S††ý·1YþZnw¿£ÄCPC8œÚ¥†%)êóáÒ“ ?f(v¶Ø8ý¡¢Ëë^ß¼ ±à_œÕŸšv0ßéåHRu£ ‰ÐIP™ ûúêæÛ,~­› d“*Þ¥[5 {¯ql*д“-ïˆÉ<‚zek#Ǥ&Ú¤›ªF—!í_RìÎU9¼ªCOŒÑ‡ÈLX²ú~¢À'àèM jF¯†j æ úÕÛ~¸Mº”HIÞ—ª2œ±––m¹ýóÿ öꥫJ¾ý£x½ ¶çö•ƒajÓ•óU¸Ìò$pB®Ä+¬Yæâ×ÕcÐŒaì¶Zé¨ G4KJ×Üwö*ëLÞáª:šbõï0÷Ю^X'攪뚔#’’ËV=I æz¸Â<ÏoV¢Ðî‰*ë$B–‰Èié|ÅënEø“«»2åsÛ‘cO6gÊ øTEzJ.µ¥oLO‹†çcÀŒ¯‘Ì”r<%g ±`ʼn᪜=l±¯]%; E»Çdñ‚¡sË#-äžzõ¸³8PøÐ¬j›6•œ½CÇL”ħE¼û*xâÛÿf¹àiÜåãô¡«¤V›ÒëVE‹„þ*í÷ƒ?¸aIÛ«q«ZÞùP¼3’d?ð¨›WS·laX/4W›Á?poí' ÿÙÎ)D¾¶Ñx—úëLjJûÁôšqÕ¯Ð;c‘+6C ‰Š+àV §Û»&ngÒäÀ¡âjŒÅí™;‹ì¶Oˆ¡H|KÛ›¸nvaD}¼u×ÏŸïsÒÞ‡Š3g¤3*ioÝÓT€ ÁKMlä¼4tdäœ$¸ôÎó£i»Sˆ ½Å@.ê#ãsÆwlQÂHãÐÈ5}MÔøfë NénÐ f‹dRCÖÆ=˜£f›`Ø|E<8ÔcùESfáýŠÇµœv™Kää\ï8d¤¯ÚË”-£Äil2¼î#—Þe<ðèÖD)~üØvÔÛÞõ¨X}´;FÕ;P›ª~´¡)­„[´Å›ê~æ·Øv?',6. h¼®,Kªáý±B& ùß„VÈRîÌ$!™(°xÆü£1jçú6°;y€&ІZÝxvM=ßníM*EMÏTD.-åxªË¬0Äfõ_ëƒúabr¢Þ“×€ _ïÕ׵ΔõŸ‰þž]L¾W*‹u||•µe),ä(¿€§‡ ŸŠaªVLìý4ÛgŠ¢†z´5#’g)mÑ\¥ÊåÆD›¤A@¸ê]–•œ»Fi—'I¹ŸpGBõg†atn©Â®·þ×?“j «ý@‹¹NÍ ¡·Yº+4ÙM¨õorì1ëôx¡r<³h±¹± ó¸èx@]öÕÔº ¯2^aÔ­´•]MSÜ×*õ·„_Mš,ÞÔE•‹Š,¬£î¸–Ömíj™¤kt@Íý볈\õ1±‰~õš•²?0vbeÛ«PA—-¶¬P¥J ,qæäb*räð<5ô{ˆ3Fx_ø0X ·#ª=„·GÞ«Ö`0hm’Äø‰ò/èè‚xÖ±.ÊÁÃs'ó“'›]^B) z4P;¶YÛ“ŒˆPLGO8~÷úTؘÝyb6üXÃò#A ÐDZSò–gKÙ¥;„?é‚®yÈs “|çx‹†p)ºjªø}óJ(!wsd… ˜@ҸȺH–ryNÄ"±²S?òŒ…-^¤RE±ÓZ•Þ³º°º¶'¼á-"^ò~’ –Z™S>(N½5ft6&®ÜÁHs&ùƒgxhäpC4÷¦˜VÀ#‰ÛëuÒèù(㬀B«Îæ6ˠ˯(»Nçàý^„”ª¯¯j&ˆyÖ$Ðî=þ‰KsžK,IÖÛÍV»+ˆ ãð©qÓiKWcÙ„’hçª><Ä ýø@¹ryÔjðæ2“.}cn }šûÄ¿`L·†È#÷Ç j³ vˆÒT8_d,êñ£;ÉÑzœô°)®'3"=_iIß„T¼ ¢ë¯SöRìU&3Ûb6ÛœHZŒ‡EÓl|Âniÿ§ «…®»fü8Pz w«q_“i¬Øå~Æ´TTKÊ¡ËLi¶x>5Q€Îi.mPÑ‚8Åü~èü§õ­™†»!ŽäôGEš6ØöCA¥:¡°)ÿ ÛÓCAkô°èªÅAÙ ˜‘-¯m]IÈ;Á!C¶Ç£úà]€ÔšÄJeI˜lí*ß—ÜÓé†În@ScΤòµü·×CäwIƒ”ü~~óš ±íË}Þaí!n C¢ÙIm2Åf÷“|-oyžÌÉdò§JJNžY¶%{8¡óWVgž Èë8ªqÝì“úæy`^æ‰ñi©*C.ëiYYl!qwñ à¼=\­9±ŽN…™yáÙM0J’ÒrW·ÃÍφ².¿Øeü‘ûP¯è!’P,½ôƒæ‰w€¾u”·Õ!õ-Éé‹×γ¥ Tð¦œiôf•>ÇÍf}s»õAü jQt0]ÁK£ÂTCF£?ÌùƒÇ##YŽY™žðœóð<À¸K¤{– ˆyPžJJzdhîhWÇBÞÒ[ðüÞŠ“|) )KBГbIÊwER”ªXe;óÄo´œ6XzÌn¢dŒ’é“°þ.r}À6íÆ!b€pY°»¢žÐŸ6–9}ųo{o«·yGSØ LÊê÷bþÙd!XãcÞö¾jOµnðRBË„¥ŸYNë~ŶÀH|’MqK—LN뢰W<F»gÝŸ°|7 žK7s~¨ ŸáZSË]_ÉX¾I7‹M§Ø{®Y$°W:éæÿÕ9¾——GÑý°kïëï+¿«B'Œ#È}˜ ´ÒÞE´ÕÎ g(Í¢¼š8ѵ:0²ö-}g•‚ÕØ„$^íšàE`ñeä‹QA\ÖiO ‘rxQpk±­€z)ÿ0–•¢Í!âöT¨ÌêÁ’­œ4ÃKëi+÷ëÓÓ…ƒìB(ÿÚ€Þ̤8šÉ9XYcˆáŠE cd…x¤ºÓõ`íÊ Jí›kk§gp¢6ùʹ¿ƒÿ€!)àò¤·0 0©]‰Œ»ÉêÕ¨šCpËÌj;`D¨;ñ±m-j«[=L³2f?úoW\ºkã$#Mt0¸5ëËíåü De£e¦zÚÿkª{ð­>Ó0žørÁ½®èUˆpnš§‡&šÚ!˜Í“ÈÎV…Vó£IÏ!ìÑŠ o‚âÚßV#gˆvðoágÀÏÁneÊhà‹aÃ…ôDÍæ3Ë®§úÆÙ#ðmã)ƒò¥`A‰ñûpçhD:”7g#‘Tzý-Rù!bçé-e=»ûw!2³—1WE4sÄ¥¤ˆ–Ú4Hp<ƒ!s¹b§LZ’Yñ[ÁŽ^u¨][S\>¥¹WwL磹ãV˜ÄUã>é}û,cð˜0`‚rj¤òxäàÝ35[F¡ÎeezDqèR³D ©k̇‡; J¸ë¤^îí?›[ŒÕUüŒ?:)Sy@feš-:u>›f@ÿm ±Ý¶ÍçØHI³Í%Ì6ÂH³ÍdÚÂIQoNcü*é¹4¤Ö­ `>ö溆á‹EìuÖ'ô;ÎüÖTK0æüggÞŸxŒ‰Ö,{óÿÌô|ßDW Dùª˜ÈG7#íù ׺5Lß `@v "»!Ž#Áƒæ(»'ß8[±^€µáÇ´òÁ#ŸTôÍéÉÞ߆BºôÕacc¡b®\ÿ ݤÑé,Vù³7²&€% ÿù¬Î;yGË´ùÌÔÔçêmÑë=-Z“hÙ…Üúó¨Pæ!§(¬;d•AâQñ¹Ìcé@.[ü¢6NEßfd4€:eñˆÁ¦¯~Ð.¤JºÖYƤ³¨sìݦýHa JZøêsk[¯ƒFdžÈ}Ž™„ù±¦¨œJíŽs( :ùõ 14¥Îz£ÙÜ)×0¶²»[„æë¶JÇðR4©ÌPãÝ! ƒD |Aµ·œ­­Â]xx¬Ü9œƒ(0¥1f-~GpQ {s ˜êº—;µ–{•…y’[¡,ùSf°,¥J¥>ŽZ …°Ÿ eÑxˆ^þŠcÀìk$má6ù+#Ôê$¬¡ÿª¥‘ôì# „ñ6³] €Î9†ƒ˜”;³m'òMÞ‰oyhÌ0&è\§z®Î-êK•á™Å!—^Å ½"Ú õNô‹+ºÚyú§´¸Fu|°ÿ˜‚´ËpUµJ@îSÒ3­b›58iòi8ÓÖâx -âV˜j£šžb,îíÌ÷E¬±ÒÜî*”s¿!]Àœ•É8œ £ƒ7üÎRÊ8è¸#›ä‹¾+«²Ò«Ðˆ>  ²ÐybBo?ÍjÖ;ocæÍ\¥”m Ü%ĺøž©íîijTÀyM^¯aöøu‰ÞM†C0ñšºOl÷‘„®ý¼5¡rϳcP—ŒÐ÷‚Cy`P£kåÅÍ9Ç¢xx…U:Ý)mœ:O‹^vàø&¿ïAUD”ªt¢ÐˆG‡½7Î%®¼ª Ûš‘ik ÞrÀÒÛw×Sâ󉻱ót(ØG5/©Ç; Ëtu&Ìiª^Tš'1ŸYÉN`²Ý¥ßC –sŒÌÔ×yð2^~šæ'Ò6£–‹Å\C ÞÕÉ@ž3Ø£¤3 l­‘d€ÙŸØõüþ9ê±ÂéÛeçØ¾4´8Ý1T-ø9zÆþ¢¶Šhyl+ ùVŒ†{"ˆ‚+ëøìcîMåö×FKNT³””Qˆ9?ÛŽï,¿Ó.Ùòkâ§*ŸÁB8Œf$á©>L¤ÛºâµUß‹õ)µyx˜©7«²wq¸r'Njà ‚PIðeæÄ L©}WË]}7düZú+{ƒ} þyjýì^ Z^¼‰ën%KgÑÝô§ÐM°|硉(2úpšY˜Â°ÉFÓíhÐÇ&zÔ;«áŽKÄâžwÄïÑi^}O(¢V†“ÎÝ"û¤l<ø1ƒÞµŸ†úäóð²Ù1C;ròŽÊ+ÌCOoÑ] ²Tш°hƒWÈ?lJÙÒpLöÛ•°¤.™$ïv´”Y° eŠ+€\En¶8}Ü1‰óÎö^8±jJ%‰yæŽUchjGƒ¿["b%yX:~NÁ=|9rˆ…)Ûk¬ódÏà/Ze ™s#õY^Jˆ“™"=Ôs©;ˆ —ó %?%£rº‡Ž©•Å °oÊW?Z¶ŒGÖ¿‚BïL#ÌXî4î}UËÄ} åïŽÝµV¤íkf\9€ohïVð›õ+V/U(L¢Z¬)+–ÊÁWF_DÄwÀ,í”&á)¥ÚÕa¨DMƃµøzÈÐŒ.¢äiÃ-ÎSE€rÂãëàñjˆj NV×0zŸ¡|3Ðê}r~´†“±áMµp­‰ dO€i;îïH1u‚z–û{³=IyR\;jÛX^¼Þž’E”:#Ρ&º1ìÛŒpãШ?˜…¾=ýqXbj4”µ'~TÝFÄ~D±pÃ2Iß• µøP6ìp¿ ¬_\Õ¿Ò?êN¼T™ìaj´y¯åÖ~)ô¢™]ª]Yëà¥ãÔ3C·5ºsï…Ñ7lC#ô™VP ÆYÕʠ׌˜Ý©ürþ. Ó3„t%Æ«Í9˜æ º°¯à›†&@?hñå›Zñs‡¡Î_¥îînéÕíõ¿ üÛújr…¨ÈÁžâ÷ËGFhËWeX–ÕÍë)öØ$¢é~–щ­²·[úz–¼5é{èl‡­k¢mµ endstream endobj 121 0 obj << /Type /FontDescriptor /FontName /GRZTLT+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/W/a/b/c/colon/comma/d/e/endash/f/ff/fi/five/fl/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quotedblleft/quotedblright/quoteright/r/s/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) /FontFile 120 0 R >> endobj 122 0 obj << /Length1 1841 /Length2 12685 /Length3 0 /Length 13834 /Filter /FlateDecode >> stream xÚ÷t¤ëÖ Ûè ’tlÛèŽm£âTlÛFÇFÇìØvǶ;FwŒ›sö>ßÿqï¨1Rï\zæZÏ\﨓((Ó ›Ø%lANôÌ L<QYef&+ <9¹Š…“5ð?vxr5 ƒ£…-ˆç_¢@C§w›˜¡Ó{ ¬- ål `f0sð0sò01X˜˜¸ÿhëÀ3t±0È2¤lA@GxrQ[;w 3s§÷sþó 2¦0sssÒý™¶:X‚²†Næ@›÷ ­ʶÆ@'÷ÿ)AÅgîädÇÃÈèêêÊ`hãÈ`ë`&@Mpµp2(.@À-ä m€·ÆOP1·püË¡lkêäj輬-Œ Ç÷g Ðð~:@YR oý,óWàïᘘÿ[îïì? Y€þL646¶µ±3¹[€Ì¦Ö@€¼„ ƒ“›ÀdòG ¡µ£í{¾¡‹¡…µ¡Ñ{ÀŸÔ ŠÃ÷ÿîÏÑØÁÂÎÉ‘ÁÑÂúÿ(ó>fq‰¨­ ääÿ?1  ñûÜÝÿ¾\+­+Èó?ÈÔdbúG&ÎvŒª {g ¤Øß1ï&ølf@';'7hº›3þq€Š»ðO'óæ÷¼=ílí¦ïm½-Lï_𞎆.@€“ƒ3ÐÛóߎÿEðÌÌ c'€ÐÌÿOõw3Ðô/ü~ÿnm¦wù1˜þøü÷I÷]a&¶ k÷Âÿ¼bFY iÚ¿[þ¯SDÄÖ àIÏÁ gag03³°8ß¼ÿ·Ž‚¡Åß<þ•+ 2µpÿE÷}Nÿ¡ìò·¨þ^jÀÿÖ’³}W.@õÐu˜Ø™Œßÿ0ÿ–ûŸ)ÿÿTþG•ÿW¡ÿ_FÎÖÖú©þ øÿñÚXX»ÿñ®\g§÷-µ}ßÐÿ Uþµº²@ g›ÿë•t2|ßaÙ»¢é¹Ø8þ2[8JX¸M,œŒÍÿÍ_vÕ?ÖÍÚT°u´øã gfbú?¾÷3¶z‰8¾+óOð}…þ÷Xq±­É»ÆÂÎ0tp0t‡¿êwÄðd~_J ÛŸZ02€lÞSï-zLmàÿ¸W£È¦¿'€Qô¿ˆ“ À(õz÷Éþq±•þA¬Få;€Qõ¿ˆû=ÏðÄ`4úqÿ‹Øß}ƶÖï£ø…í‹Í?ù̈Ñä_Àü¾ó0µþ—÷›ý ¾—3ÿ|çiñ/øNÔê_ðÍ¿K½Sµù¾ï#è_ð†í¿àûtìþéâ}Ævï‚·ýoæw*ÿ‚ïTÿß3œþß™9ÿ ¾3sù²¼Sqû|§âþ'ü¡;;8¼¿4ÿ\èwýÿù†Ý€ÆðË ¶Æ¼A–uAí÷5Â]é÷'Yد#~Áªï‰ã¹*ˆò=ܰD. wÏD>l¡Ÿ°|{k²ÒÀf²ÒÛôJ‹äÁ^nh‡25Ú¥óšBçÈС"4pSêÚ4ä¥1»Y÷dâe­"/î°†¾°µØ(Ì€•¿UÕlZç±üvã¤ÛéÅ:‚pÑÚ/ˆ£¥XÍL©Ð8³Z¡093),[ùÍâkã#>$Rp óR¦&_åH©ÎI hÈ6®êÖÐQû‰ë’P_—ð­Ç:\ ÖÉ¢¿)­D®19 â“q”Äà/Sê/Á$=c*ÚÀùÅ!÷ÆzÝ.DúÍ3Tà´NiC+14i˜zÿ O[€~Ó´ÃB’³­½5ã p¿EQM+xþÖª¥Ò[/Êñ·ÝA :­Oƒ«¦³Oï-žR“™[ŒóýùõXÉîØÚœÙP8Ït?E¤73Oþ®¬“KöP†3"]I׿՚õ$R±ÜÈ—Mh¦Õ‰ÝŸÓ®ÈÄŸ‡MÙÊú»ãL¶·/ß‹ƒðÌ>µ$ÉØ}l¤P¥U]z:j üPþö‡’¦ìŽgˆµßtŸM¢p aÅM?{«üد?"9b ›][Ý@µØåÑƵ¢I–“EÑþ®ø¤B­ô¶ÌÈ+Fµ”ÆwI‹ç®¢nq—·t³Wž|ЋeÓ3¦@1ân;‚Ì.D…±€ Ú¥R´ò9È$Hš _HÍo‡ÛQ‘¿sŸÁõ,„iæ…ø`¿e:}”èèØ>8ù*‡H¿Fzh&ÚÞ\Á/Â÷U摬JòaƒÏžïX(瀻Béú„AçIÿ³K„ÕŒjqüᘠ¾ÅRD WZ ÑQkXúûokûOX©à˜—øZåì~Ä©F#ͧ‡í–<üt\¤~]ÍHa†áõ‚—¼´Vb@‹³éM„[ÓMšð+ÇÓ¡cµWÌ,¼ŒÊ°†mÛ¦ŽI%à /éüàÕËävB¼4Ž`»^E3ѲI5€D* ‘ÎQà•©ãÊ”ž]lÎÚ§©fRè-\ž/ÞvÁÝg¼V@ÐEÂjR!ˆqû€ºóÅg!Ånmt{覰p³ç&íÙô]nRN¤õlµªD?‰l¾¤þ]/ ÄŒ’ëã&!ÿŠG?²xÃO¦ØŠ¬!|¼ÖK)À®pHV/F…h6—!8»¼\ìr÷Ëé©c9X$²Á–ã3Ø4™—?4ëÁ0SO ˆ™I"#(é&ê'©âk¹Ò‹¬ûÛr“´j~Š·ô;½Í>•â µl¯["Y+}I™¸¿ò©žÞ&ˆÑôÝ„RÈ€¨Æ‹‰)jÛÛ³¯Õ¾u¯]Ϧ³4ly)ônÑCIÚk™,vg´lÜ,y{|yÃ&HB¢õ;}Û˜þå&zæ©É½Ø&\‚”«y©×↑Wqž'õLKyªgΪƒ¦wÛo?á5–¬á°|,èr/Ó?ú¬ö\¯°ì;êrS¸åWŽ×ÅÕ¯À#ìÙRàw½ù™P>æ¡Ø~âôMô+šÛ^(«sBÙ"Ç!ûõ78Z¶Pý’ÛÌÓ+ÃRâ“Îò4>= Q ðà2ù,2b9ò [ÓKÊQÑÞ7rÏÙ³]æÔp Öè&!3„Imeæhö³> éh‚œÐì‰åõäkIôÕ87'Ìü‚}kƒ8¹e‚sè|­}‘·È¨E]¢_Ú¹ w·Ï|2a4þØÜbÒ$“©Wðöa½Ýç( Í&Sý&LFµŒl‰H¿7îT:mŒxÏÏãÔ4VƒÇ[0ȸ›xÙÃAÏܰ%ÛƒE:˜žÂ˜ªJ¤™ë}ÏcÇ+¢ "ÎVÙJSؤ¨ë¨Ê‚›x[Ò4±…=¶Æ'ç\x(‘ bfÀ¥ÏE0ñW— ·¨Õ&[”Ê;-´6îÑçÌ`´4@6Ÿ…¯Ýú…Zæšû!·á (~–ÄšKÍ|Р¥w*37íĸi§%HðÓ˜Ãc„+%ËÛ 4wy9ð*)‰MMÄg¨Ë]ïÿäi­iYí „©cåö·å-þœdqþ…m¨. +¢Rå3©M!Ù"w¯õf”d‰Áùu4@"bw1Vù%øQSÊã$i’´‡Hp“÷•È“CxÙ9U@ß,á˜]1¹ÚËky7Þ¹ñ0€%¡ýü:}¾ÔÐWcÅšÎï¼çúÏå=´“ŽM®Å}°°(u6Wp#²üÜ”äjå*¯&Ê~G3‹‰Rè{ÕÄ–®H'$a ×êð5ñ× îp†¤¯•"—ÇR ×–ˆ´×aY^"fs¨TÊ—LþY£ l‹™’ŒóGK4Â4Zdžó¶Ÿå=¡*P>ÏTê«GGåJ+ž›F¤÷‰`–ó¨6Vh2¥÷‚×xé‡þ6!’/;…œŠCu0Ô9iéQ€µîAp¸°, 1æßé_ÙÁŽÚ›Ó"4(c !λ¬JN&OéƒNÌ&GúBõæ1nj˜–ï|Ó7—5‰5áök¿¬ƒøÒÇœòÑþ€Ú(¤}G\¦?ô0|úW úã0àäâgâVv§>Q+¼éV- ýLUï,FŽ1£Uy_¡¡bë¬_Éâë°ÒîÞ\±Q!h=ÝËä mЪ»Ü.¦Z¡ñAzSK¥(KtaòwÏ ¸o'©‡”{B2›—£u´=ÜòÎnE!– ‡ØÞ7Už¶V+ÙÛ7§¼.CW.=¨0|xiå €Jœ¸—ŒÑL§†"–£™b¿š X»º‚ɉ¢°Ûë/âì·{›d$š7䃬ڎò˘dq0Ÿ&¿x0òRñìj¸e¼ÿãÿ•§l×ç;#"ˆe:ì!·OP½*¶h9ÖҨΞØJdÌ”Åu¾Å©1è9.(1!âå2`, çxbŒ—ßWwúâcßš¤æóD&³R®WO6ÉÉwˆá “ ,™óúÌGÝë…24 q»gg’d8?¡ùg~E­ñ_GW/Û¤>š( kÁÂÈÓˆ®€Šêðy¸çË®=úàÞN™§FSKؼ±®â¿KÂlÿøšemå;FH«5Í›UfMn{àbóöõWk€mm/ÌW‡r,« · ·êÕŽ-w#ÙËEw¬]Äc}™¿@ìÈY’zàa/¨Aj_¿a»aê$W ¯PϘ$˜Ó˜Ñ­ÚtÚagaíèÒºYè¶Ñ=P%‘@5ê äÙ´Û‡V±ä!úH’T-Ó;öR£OÖNà¦÷Ž·&ÎKÇxé2K~P†î14§)d¤õæð|vÚEZ° }½5½PÒ™y8I¨ºñ²Å±@_8§‚°BÐ^B…vVsòi‘„¾ÚËêIT¯9%Ã#–Ë4ˆ>¤ßî[_ÐéÕ­¹Õ2ò¾[õßÍpé·¶pmU0ÄF6+hÉëfÇWŠþÀYÅIïÙA:¿ÛS+ä¥DÏ /åñƒ!wçäf÷k×DØ„žýžs¾ÜFß¿5x/ç2Á çá* JëÑ(}LÄ üŽ”u§oãTß±˜oAxÑæ\¼Xbxfx\a‹Ÿh3ë©ò ½gòó¸AÜ)Ï$åVÍ{˜ =Çž‘£ÑLÞGóì£Æè÷Ä Ÿ.‰ß`à̽ÙÝ«lbnƒO¢_þ#+ÖË0Y|¬i—hÕ°lr<ÇÓŠSÁ²ùè–ÊÕËëÉ/”ol”¡Ìbã†0Z³Wðv@›²©\üÄ”Z¥1ؘÆYIA—ŸÞW­]RSÓõØOc¿Ä•¿±I«4Àô¸áéÂU¹Ñ ‰ 4ËÕÛ)±r µÅN<컓 ¡%ä/šZ߃eC¡:8ÊâSá£T?ubÇNržoíMsFj Ü(ð ™8ê8¹ñ…q®(â|¾@=Õ!ÖŠË ÌÉ$£çMkÃBëV2ß'[žžt$k <ºµÌû ÎntÂâ—¥;êöá×92ecÿ÷@¿Mæ=Ê·‹–Ç ‰‰Íª™Ã’}µ9¥Ýo—¼$SÂSøLÅ6…“”™Ê÷ý§‘¸¾UÄ¿¼=~ñë¥6õs³L ð ¯·ZÑlÇ™•øÛaŽBv‘gg½ ‹(­÷$_ŠŸÐèzÐ÷¡GN›œÉQ6&͇F8WJq¿¦ó‰‡Ø“W%)‘¨Í{J?Õ§Ýt³/Ñ<›V.àæ!Ù³‚؉QÑ-M“GÛ ã«+õä$«Ëh³*w6ŠF‚•ˆÓþº=¥“—oЦƳ0>”Òb+Ÿ{—%X7ÕJ’ðZ‰J+qŸÏŠu›¡ç˜âLDL'Ê_(«éœZÈ’oE—¯™ĵpbQ¢Üï 2:ÞËøøÎÞŸ{;5ê ¢ø´£J²•‡TP¡;ÎŒ±ý>=á‰s§ûL#âØÛ—ŠÔã:Yêl«¼çKÂüÐB³B¬’j ^E7KŸD?–§ç]©ag`}ã:`ùûƒð©ÀÊä­Í?›‰r¶£©ºí…·í›ž5b³¸~ÆtÚ{mÅqn,!¥3­ûŒ*þ†¢mzX¿6}ò¶Ã?±d~F*Ȉ±˜»ß%Õí%E­qo´eC∰‚í8¬Y«Þœ9wb•EøV¦x0”¬I|+Q ª€1î( fkÚ Á1'‚7•% ÝÁ[duH™ÜF 4Š“7bì¥P{SêJéoÚŸ¸Ç—¦_,Q|À݆I؃³×.Ñ©B€ÿ16ØžN½ùMl°V×RL—8Ô…½‹Ô¤o†E“¥ð¸-|íìM"–=°ˆñ³’GšâoÅ@mN°¡ DÄ7û¾šh,M;Õ}ª¬è©9’ÍîYÌXÁa°¨Ý„çßSXàÐZÅ(si¡Ž¹É¹=/, í3Tà¨(Ÿ#$ô}Ñ–¿<ÅiQáÒÀ™@ÊèÚ~„ ‡»ÖîpYAZÈW‘òê ¦f!u—ÑëP"Êæ9—¨çáhÛÞ¤*›Í*¡ÊñMÜj”¡¤¨àK»zÚ8äÌÀ0U¯C y’¹  •L,ÒøHØÅ9…É03Jê31ÉDLFß·XéPýò ½áüÉí­?`xǦ[¶°&¨=[f¿õEÛF1h=×ò¨ «ˆ'tçFêc‘ÃÇÄX6(a KîSÀˆ9Š:ì½üA᣽l¯ª²u V,ðǶï)鎗vó%ym#PŽDß—Q}££0qYóMºáG±'›GºŠ+ks:ZyÐàâÃÖ‡¹ñiÝÈçQ@¹-*ï 'iV,Ÿûä/×|Ï"Xƒ³+¹¾‡ øR÷C)Åw}Âø&j›¹³&k?låwa¿óŽ ŒäåðÝGvŽœ· /ÆI©Gõ"„ÄéIÍæë7R_+;ÔI‡¤©7—+ž³½·_“»Q û»VcÜï4¿OÙÔ™íõ V¾=ˆîÉ]h·ËU_Hë¢@Õ`²ÄjµóÖf é•5oj•('/è7¤ŠŠ}MyªoçáûàY(2¢"¦¤ÇÜD²2O½ ‹À€£žÕ¯Thž( ÃQÃý*’¼¡B‡ê9ØÂ*Φ 6=’Î!évÈçç©`€‹Ç9ØÁ”mâN}¨Mý#Ì>Ö–17Ç‚d+ÎU«Û\²Áü¾in0{ÔQDÌw#q45K‡é"a÷»Ž(‹3_RPžÞfQ4îÙ„*– Ü–PŽÏA€'ŠÒ§œî_dÜ ~¼s4ñ=M60’’Ž¿?eÐWÐa?—rã^U;gãyü¡}ÊŠ&Ø ¤<6ÖUÆF½eü-t.Ì3ùÔéü‰‡„©V=’žõÇs¹†pI­‹úÃÑ6²èð™t:%ÖåÌÀÿ‘ Ÿ5相Ñ]:¾ÂÀ!y¤fc¹%{k5µSY¡Õ6ï³°‹{q¦àÆRþG¬fÓø8~ðÃL˜˜„Ÿº)ì¨) cŸ*Jn…^=G¦»~öäWÄôS‹ß±Îï·åk°»)mê¬ÂwW)÷Î6D#ÉÜGÝ·×fhäÖå_Ej2 G·Öu­í6ÖÅâ§?zjU¯¨í:[þÚËü-‚·* n,Jn€Ý©iëA˜rþ(ò)—û3§¬—ðÚÞ9X;$ºióÈm»ÛÚp4bN3dLŠ Ý¢õN>úqÒ¨Û<¶n·½[k¼FöêÁ`v¨”;1gg‡õ——Z`Nk5á,ª¸[ Ñp+Ž=n˜¶õ•†’¸ú4³¤fÊa¯ÉþŽB?ͦhâÎl·Àg}ègÔéÜ«ûùû¦•šfl&¥›®7ì@Ë9$GŠXîiBô±õ"70‹âž©XǵçÏø«iŽŠ¿}`%‰!¯’(“.Z¹FbÔ˜"‰ðîY·qæê(i {¨[ÕÍm÷-]4šðæ¹”×BlBÜZ©‚é¯M¿ù‡I‚\©&½…‡É!!{„æÇ×Ýòf>‚Rö'9ø´‹ïLñšÉBƒ¿³Ó­‚D>M`0xt‚n§úê:ÐmnêÇìm¯,Á€$ cËw•/£Æ3‹¸¶UãÔ¬²qýLhèv¬wÅCò]n±úŒi?Tm¶Uþ” 2,…­•¡Z”ÅšXQ<Ý@øÆc1Ÿêa#Âî»È¶Á™š’’p±}\¤ÎIœL<:?JTE[¡j13NB;* §Š.Žn½H5~M*…üä$ì€óü•”—V¾ÔвÐö¡óí'jUþ­aŠ*ziI£³ÜY(U¬ö×-¢ØÊŒ¥Éœ®vŽé+ÃY’†T¥©“{i#y8ÖJ@Mñý˜ÉÛ‚ ¡¸öâüþt|$‡v_›CÃ8VëßÇ_òJ%‘P)ȃñ ›Ã:Î%« ÖþÑ‘ÿ;ɸ4O]„Q¾g,7@ÆÐ-q9·#öy{~::ÖFŽB>B4-Й#PtÏ1:e_³þáKB-¼$ ÷M&ÅâøØ*©Õ¿rÿ÷¢V¶ÖPpÿ31…Û§2¦Å0ÖR9;›„qÂÈ\•‚ånRódqZÚ7‘ïîncÑß‚"A¶Nü#yÐI܉¾9‡U” Òöq`dð×w*)HøBqósL•˜$b€u^_9ûCÍ0Èu§-пƒÇc’ir’ùç½á¦Mct‹¬»9Ü ­«Ã(í +S|ÙÏæ‘‘NyÏ $¸’Þ¶²¥ÙGž…¬îÕ1á24Æ\D£Ÿ3ó’ ™c½Ç—·…'ƒ;Jk8ƒÃ“A„Í3@ÿÕæ¥lHH ùdÙ’c¡q7XgþêWâmÞvýs†ˆyqâX¿¯åxS¥Uhle ¯+[yú.t•9œP4¢ x3§º´»à”˜»§Áß¹8nG?#õX +êOkÙ¢Æû¹a<‡~ØFƒ^Ê W_ÙeÑÚ;2X£ÂÙGÁ¹-{CÚo+ŠYƪ’äÓ²L*[¾C¬8Úœ¡•–Ë­d„!¡YôÒ˜÷Pä_c1&¬|õ3ÁÂ4‡’úC¶ ÙD"ætŸÜèrw]7°£èÓxÒ±}(&œ£Ç„Z;¡ æ«Þ›$ §(÷ çkÈ´÷0â1‹”¾û* ùð%Ùs5þñL¯Ž¼P¦¡jÔØÍ/.©C?ìR8ûhw›'„™Vft&ÐßîØÊ¼OÝiV¡…|!v« ¯k"š×5MBì7ÀBâ åÚkÉïÓìs†Ï }àhG+àjS³²,Ö¡2ÐÿæDzg[•·Vö5†Œ+Q7E ‹úô;Ò>äEP%Ò£´•?áñ…ŠuˆÊ'­ÅŸ¬[ g¡˜×Á8å””ó¬T‰Õ.ñh(¯:r|¶IÚfbÆŒX, KÅ‹Ù)#38ºÈõ³µnM ×PœU÷@H¬O¸lÆäÖôTæô){Ù3°Ä󙃂t.êuëô˜ŽNš±­[•ûKkÑÜe©¥AŒHÃ|¶Wüõ<ŒÓ~¯H%«bfÅjÒmH0_[/Fð7Ä3oo7Úy€’4þ²y¨:Ѓqà­JM@2n‚î¯E©‹¾°C´ý( º#ëOtîÔì+ÓðOÞÜçfl™¼äÀ™úš2¶fžø³¬ùÀ"h¡i@`aï# U±*÷Ãs½r*Áoµ|$´^5æ‘´³Ü{ª¨F1Égg¢ä¾8ý‰!án0ƒà%QHŽ%] L¦Nûž=0D°6\™Œ½ï–³ð÷fŠ$B1y[újÙoÖ0×>F!tÄœäù ‚Ûº³•¤Ožé]\YO¿xGÔxµ"žª0D¾äP‹•—GTts¯$lç=„çˆÆ`&ø]NÖy ”5ó4Ù*3b^vnFÛ6¯‚‹Ì’¬äèdJäÆ ]§Ä¸±L xÀÅÛ”íæqßt-6Ó¦í[býdÞéiJÁØ‚Ðòc/í",¸¿»äSDIÄ8$H8®¤°w^ÖOÄ·W… ‡¾¡Â¦dýásMùZ0æ«"÷í‹Òn ¤AJ8OÏÞÉptòF)]þ€È×0=ø® ß@Ü`ŒÀà“q©Ð¶IîRd·߸ ×k7á±õ®eÛ —ƒÂá(SˆuÄ^Ôú»ßäýOCšeZoa5}aá¼ÜæO HÄ|{taFC¼r8¿™™2Œ¯~Àä‡ÜÛš 5¹ån§Ø°%ñ¾~ÜŽêñ qûofãÆgõ<ð2ƒñßs”%>Û‹äÓG~ËüGîà¢jå`D¹m*?´Y›ž†eÆ ßiö='Éfh©ñJ?{ùóo%Òe/$‚´k4µëèšð_;+f?÷˜£úÛ‡–tä3T(ÉIË욦6¹¶ÍŒU‘$¨æ÷üêÆ6£¤)¢û\+u Y.p·JYøsV§ô‚0DÅäH¡m6iÍñP_^žê1¸Ö Ä£áXûÈü”nÜqùQµ„Hæ²Ü‘õ¹¼î\¡Á3ªd#f¬l)Š!6ÿÆ”/§T›úÅìNyõ´Ï6†[ʾì3S'Å BÊ ¼ÈgEØdßòêþl%ú…3½ð9f‘3mÿò'æù´CÄòÖéo½ÓµY‡†E¢Ç‘¬ªXnfÍÎ L,·¡ e†CÚ™;ǪꎋÇ×îG¿áÌ §¦cˆ2vtß[wä5‰ AmËhÊS!P”% ºá$fÑÝ;ïG`kA-ÌÙIGØaóðúSÊU“ ‹²†—R VKÿÞ9hÒ2UÚ—&û™¤`B*ó€’š8@zƒxãQ‡”¼ª¹KÉ ›ö-=·@óÙ#ޤMì|/Ù't”¹O¿¯òl‚Ôу!ƒƒO©¿mPMœóç1x!SˆJèeÕM%:ôc?ïÜüp€º47ð1›ÿ Ž7òû!yCg>ÓtÇ1©r†‡=ØÞÖçð2\ ¨¯´¶¤(¹ÂÃþRÅu+Ä3î HJÝÿ”}Œm8[ŠT•ÖŒŽ +BŸŒïBë‡ûU¹­cÕzú{â+ûQÊ #`ù}üÞ8ÝÅË4â‰ãhš÷[‡…§ý”³³€ÒWxðàæˆ9ý1ã}šh˜°}ƒr¹C E5QÌðC-®Â%Ï¥ªƒÍÕB® DY>ZZᯛh¯Ïø—Ÿ¶$VОzº©8@»žfpNXØûd<Û_Ç‘cÖ¾FƘyDZÖ·Œð-«ƒ‚3écQ- Ÿ\ë2¼ ˜çM „4 •_ÙŒ³ZU ö¤4AÕ.Ä©R7¡š„}Tÿ…’BoÙ<x§ÂÖtø«†ôAî»Çø"{TäEÈ+…Ö>S]Þè œfv,uV$—”ûÆšq~}˜—öÕ'xÅKú%ƒßãî‰ÙêüÕYp†bvôÏK&#©ñóšŽz€‰â ٠€ƒ—€‰)¯Ù!)óñ™0äX8;þ@HI¥‚O -üŒø@&Š¢àÒxºm;É&ù'Þƒ6À™%Ç"¨”Ђ`hw¡¦ठ%åÖt}œ{Ôtaò: Éìò<<ËÌúIë¯A;$öNóý€µ yà$E9í½ÌañÁÌÙ=ÁùvÍ 8žy ÛMÅó"œ§ÄCHõÿšä´%¼^[@Eò¦hž’ÓqPº4+ Pí×°ƒ­'þB€¹ž:Ah8SÿXnÏm\éf­«Ï#`Ó"+2ó%ÌW+†¬¹š³y·S"¢ö3WÆ¢Íé}³ŸŠ jë4m{Èýz,•H.J:ú¡¬A-G×§£v„Dò¦ïŒvåàŸh¶~[÷—U ¡Ùñ_e ä°pè ʤÃê¨HEŽayÏh-Òl¹%B¨ÁîïìóM’n_X„…·÷/Ýd £H§Qz‚\Å®2A-’õÅ›Ú&•™#ÇleZÎÉÙoœiß3€rœ§4Äðà‘64ÈÒ%äv²$²c÷*¼!¬Ö¹–ú Í\Í«¥'`ê6\¨¦Y;ã/¿De*&X€Ô@u,{LT£»æráWíœÃLçÚô¹M …wéƒ6ÆXÊã¨Ñ\Û¶¥{GngàxÅ÷ ¿_¢Y·^ç±°¼4u ýsËù#&Í LÒ&[a>dšäç=ô¼±‡»†Iwø1dT6 u320Ÿ>£œâs†7÷~XÚF¼’nêÍ—ô<ç/"lD[‹fw¶N®y|\qFvçš§ï~$pzQÚ⃠M;wë Q4½¼ëAÏJµÂô §jr+%ítn'׆}ýõ(ˆšï ê(ê„«"—,ÉÕÒâó¯ÀÎmˆ Û^EhW29MQ×bÅõ,ó–Bë \·© S ëY|ny?_+ #s*~6Bc:¢}hæX{PYCK ™hšé$M¢áIÆ`óM·Ã ¦.né5'èÑ~!î+›Á½Y&3g„²œ/MKÀS}8ûDÞò©jgzîŸù©kÙõï+][°aMò)Ï…6"¢ÃEé‡rдû<ÇûÄI;&óÔó à,Sô~­ã©û ÖØ¤ôÅåKT¿ Ð*vÝÛÙº,þ0m6é¢âcå(å}jªð3®©­TÇ9[Uì>áÐͰ@"bD©¼Mê?è–õÏ€_-6@f}\gH¤K¬R¼zy&„’þ½”‡ tç’%†²®ù¦)xÓ‰˜×ýj CæäŽg W¼ÏºwKWν“e)€‹íâ9¿mïæ|/Åœè>ûy;„Kœ(µ€ $ŒFO&«¤›É'Ž>8ËMR<¦mJGw5À*ÌU›Yºh”|û&}HWqâsßW‘vÆå_ùÔÆ Þ<Òݯþ'áV*›b77سƑ‹VMœsdÌq§‡4´lüô­Qßæaí‚·+ßý²ÌÁ¨¹Ë‰2½Ämæ×—gœÔÏóó˜´Ô8ÀxÔˆòþ¤ù¦5ë^8ˆíznoG¿PF›ôûÜØ{?0ñkzŽ'ï¹ESÙFMˆ/ܰËkÛÉõÏd¬µ°[µÖÖ[–gDÈ $Ž¥æìvôçþŒ(OdÖ™á¬Æ,õÑ¥Çù"=„¥‘^æ<6I&å+M@ž-ÚT²T`ÎuW°gfwQÞUm MÞ"€×÷˜¤_o,ÉEµºÈ¯mG ÄpâürìigC°»¥4–ÊèTáñ€(¢uÕ Æ(˜wÊ“DÍì!c¦]Åšë¬c…Ë«ÿxOw‘\NâZTgoH…GÕ¢ñÉ%”=yi¿wQ(Sú¥(ù¸$J¿ŸšÏzk¼ I&¬jbsåZ8µÌxÊx,Æo˜Ì@r¿$|yõgœhE5p’þë" Ë'ä®ñöp kÿ©@B·G¼€ºvmckmgÇìpº&§Èx®ÂÄø…‡fG‡ÚôsžY´˜1ÕF¯·LT‘W]õbo²PZH¸­m$÷’úߟæÛ]Œ²:e™[ä›’GS¿û8Fç—(Ã~@GCNõ0è`¸|Ü?o¿ïÄ }éGTž¯€OEô¤øFïúþÓøté"Â(¹nÚ‘]Ël8ÔÝ.œ/Ž ÚÍ+ŠÁ²úc œÒþ9±ï@ïL£êc!RífËãõµdYÌ‹œçÝcwÑÇ]5+¬y^·“Ψ¬YºK5‚/‰½4¡IëÀn:.´SBºv’©kùL]Bå¦ö’ÅXþQ—3Ê÷k#!y%õÙÁmƒME C?º3¼ýºªÁ«÷óW/aØÞsÇ!¿äˆùÄ‹GÂrL¹Ryüí PPÛʱÈ\ÂS~`ö†"œÇƒksý¾x°vT<#34>²/%«¢{)ÑÃ{| 1þéCðóÑMœkL1iþKœ +>Œ@éÔm½„F 4ë[ƒTÛ jö·ÁÝÝœÒô'B¯ºlñ⪠(2O8Û.ý”’·Fœ™GëJ Õ7ªŸ$)·õg~^”¯X^¬¿$½—5búàoÌ Éã´±gQ«~la)l×G ëJH'Ðù!ž’°™M t¼vnDûG!ô° lÚÙŽ–Pyo„OU„øôLßi‹C¸^ý,„°\6l5^=}«KŽV°Ã¼w9 kMÈë«àžéµµ¶™rQ¶ŸH ©uxc:A:y’vÏ‹ Np”ýAÝÜ‘Dùh³¤2±Á a߇®øW#Ú£Î)¦®ï4°Ÿ§Æ„H{ôç9“\;áAÑží CR6ªë.Ó¸n†^ öa¶LE7 ÎZ"kMÖ^q7Ÿ¶1^|¶Ê»ÃIb³„ý% »hDRq~£i­|vB¾\J„EMèÈñp ¸[b9ñ¤*ôÑ@ãs‹{6ó* ŠáªE[‡çUi+t@Ê̾ÌÀ˜†òq%ÖJ”Ú4ES*Wór JÊœ?8ÍÊQ1˜IYzFûEÃV­PÜ"*|%ßl\d¨àFøÍˆ0¼ïß½1kTú¹|¯B£ÏiRÆFGs~¢ëø¢­í$ÏYÚcËûÁ-k×oF#v1‡Ú1"„ïè|Ö…½eHô3I>ãÂ8‡ƒyÞß."Š£ ];«ÏÛÑØO2^ÙŠ|‡miwh—¿›˜N‰3ðfÉÉ·Ì¢@è/"uƬcNOØÒÈî)Õ0Å?K“†˜ Õ‹šêX (ßUŠ6}8Z¿<ÿnkQ;âM¶© ¸µ¬JuR¾×ób*2²Aã²>w¯¨Ç>,/# ý ±(0S0  I"ZŒÑ½›¹ñ9j÷8v³£‡§i/7?èß)hΟ–#p0ês¤¶Áäx“ð§·`ªL¾ dyŸZ±ãKÚOÓû“&®õføë<(7ÒÔƒ¼5Ö°]òŒDÎÄþ‡šüÂwÁr8¦¶_@Þ= L8ø×6\¥“‹“sCtûdiº‹Œû·ÚH£,è©YEզѮp wæ¶´6£˜÷ÇöÞÇ)Ÿ)ìðÞfZOk¬¿S„®$=…W) 7kX…Æ(ºš—*‚ËféµV#ûØ'þü]¶ endstream endobj 123 0 obj << /Type /FontDescriptor /FontName /TPMBXK+CMSL10 /Flags 4 /FontBBox [-62 -250 1123 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -9 /StemV 79 /XHeight 431 /CharSet (/B/C/J/M/R/S/U/a/b/c/colon/comma/d/e/fl/g/h/i/k/l/m/n/o/p/period/r/s/t/u/v/x/y) /FontFile 122 0 R >> endobj 124 0 obj << /Length1 2612 /Length2 16979 /Length3 0 /Length 18487 /Filter /FlateDecode >> stream xÚŒvuTÕ[×.ÝÝͦ‘îîéîÞt³éî)i¤‘”i)) Ié’Ï9ïwôýîýãÆžÏŒ5çú- U fqKgs Œ³ˆ™…M ©¤¡¨©ÉÎ`cãdacã@¢¡Ñ´9kh´nî¶ÎNØHºÍ@`™”lªäìPðp°sØyØyØØllüÿcèì&2ó´µ(±œ€îH4’Î.>n¶Ö6 p¤ÿù@oñÀÎÏÏËô·;@ÜèfkaæP2ÙÁ-Ìζ@ÏQÐ Ù€@.¬¬^^^,fŽî,ÎnÖ"o˜^¶ €:Ðèæ ´üU6@ÙÌøoq,H4M[÷TÎV /37 ,p°µ:¹ƒ<œ,np|€†¼"@Åèô±â?L€ÿ´ÀÎÂþ/ݼÿ"²uúÛÙÌÂÂÙÑÅÌÉÇÖÉ`eë¨È(²€¼AL3'Ë¿ ÍÜÁþfžf¶fæ`ƒ¿“7Ȉ«ÌÀ5þ§Bw 7[;‹»­Ã_U²þEn´´“¥¤³£#Ð äŽôW~R¶n@ pç}Xÿ=b{'g/'¿ßØÊÖÉÒê¯R,=\Xµœl]=€òRÿ±‹~ˬ 7ø`® ·… ë_A4}\€+ÙÿƒëðsqvXKØZÁüÜÍ<›0ÀïOÅ#$vv€¥­`´¶uBúÍ­þÁà)p³õ°‡Àö×Ï¿ÿçÌÒÙÉÁç·ùßͪ+%¯¬¢ÈøoÑÿª%$œ½~ÌlfNN;/€‡ŸðßDªf¶ÿIäWy'+gÿ?ù‚õ?9{þgèÿ³'oÿÍ¥ì ` €þ÷¼²q³Y€±ÿOýß.ÿ¯aÿ‹åÿcÞÿwN2[ÐÿÉÿeaæhëàóð{€Àë ä ^ §ÿmªüg‹•€–¶Žÿ[+2¯…¸“5x´™ùY¸xþÛºËØz-UmA6É?b­¿ÖÎÁÖ ¨êìnû×U`fgcû_:ð®Y؃¯wðtþ­‚Wé¿£J;Y8[þµsÜ<3773$6ðPqpsüØÁËi ôþ{ž¬,NÎ ° \aÀÊ٠鯣åá°Šÿ%úñX%~#~«ô¿ˆ— À*ó±Xe#«ÜoÄ `•ÿÀœŠ¿/€Ué_ÄæTýÀœj¿˜Sý7sjüF\VÍß\ƒÖoÄ^Šß\ƒÞ¿ˆÝì7³˜¹[ØÚZغYx8þ+gçàùdë` üWÎÅñ—<¶îö¿IÀáÌÿpçiîfftZþsÿGüÏ^üëÌþØú/{~ÎåÿË\ŽÅ¿ˆÛÂÙ<;ÿ¦Èõ—ÄÑñw‘ «å¿\š¥³ƒƒ™Ûà,~W #VàåùKïê^Òß.àVXýv§keëùÇ_jg?c€M¬3‚õÖ}9š€s·ù] ¸c6>.6@§?,À2Û? ø4íÿ€ànüN‘\¶Ã_›ó[î݇ ¾+Yssƒ¹œÀ÷‡\µóïtÀÎÎÿ¥—àò[ &sYþë¹Øÿ#ýïCäÇrº¿ ˜òü-³uþ}T\à–¹8xüQøýÁêú›Ü/WgÐÒü“aKÿh*;¸e¿¸ÿB@Ï?zÊ 6wtþ ÎÍÝÁÌÝæ pj¿ßå¬ 7à‡ ®äåü‡˜Ãã÷È‚cþýÆp·pvû³àãòü‚ìõÇ€I½ÿ€à¨>@pó}ç fòºý“ÁÝŽnàîƒþþ¯ÎÿÁ?O€@o Òâ¼³…`¸]Cxç]8±óÎg?ÖÍ«9R‚ä Ôeû b®Âk¾ô<)Õ1‘Zh%hÈÈwÄÒ ¼^öü],ðXØXPr1DG,BÊ(gôSçlýDÉñ$}¾ÊRTÝèшHŽciD:ã‘Þéïí»ªÀ“U× ªìÏ¿áÇ{=Q‘sT€›é–b³ Ê@Vèi™¾§SÐGn9ºÅ®éÂ2›@åš”E5œ™ëUð t÷p<Øt½ë†ìe*- Û»d*¹]T„N ¤¢vãUÃëˆx|I+“’™?çø|-Ÿ bäâ%29Ë.0’i‡hårXj#w’è›Ï[q8Ì3#Gúë{í÷o¦T;0”ã„ð" å©£$tb'­ä"ÄÛ[o^’wdx’MšõžæÒ†@ëhHÃÁš ÚU{˜Ç@&dX7h©¾Ó·fÅ$ÇþŒSôÙcûo7æq¥e4 ø:ÙÛͼӶè‹ç,¾{éŸõUïÖúD6N*M³3&WèúM7‘yNr…Š×¾tP §`ˆM-@îΑ=œÏ(¼ÖôP aàÚîG7oök²Ÿ¢ ÎÈA´ë÷A¼VŠ£÷é„©E¶È¨Fbݽÿc¹LGk±`€cHd¹ús€¡–Ág:1ɦK\±Ä6‡y“µèåºvÈB…çO—|¼ Y*ó ú´p¯­™…~÷;6ªÏ/MŠºjoÃŒ¯Mä]aÌ ¥Ít$ËÑþM;ü}hh#ªHDS1^㸱xì+ IR/¤1 ï•’>ÉNS󄿢*$ÁÜkš‹X§[»ò… K3^üq†£H›c±8*ŽC­Ý+S°ÚW¹ªh÷µòF¿œ…Ó1,zµ®Yff‡Yi4X,g܇©3»»³¹ÐØ^Ny)ȪÆÞD_—E2cí¬ûZc{prŸvRZs¹¦h¥»õ[Ü4\ídÔ•ûAs Ö¶=A°Ê¦ èëÓi>¨I*q øÁåf”¨ääòºØ¾«tC ÿŒgß&NDöF‰Í讯Q]Ïx†ÖnÍ»ëÖèý㬲ä-®çVg¿¸„{ù@èþVæ–±brÑê+#(7Só08§?Ôà™¾7ÍãË"6—,÷Ѳ2!F‡ Ë³”0(ird¡Ô®º),.Íi²½‹ÜW¨êg1u~‘±Ð=Æ&ƒó}úd_.ƒ•”èþߨ6ÔÆb›TŽœ¥rºÛbw\^ñz©ÜÕÞI’+ÚòRÙÇPïN•é&ÌZihÕåøÍ&ÍÍ`|Ærõ‡Óú·hìˆÆ&M¶„p~&†ãrbU3—Ó`ጥ"(w]&8«ƒÔàõð‹éÈ2"çÖЖó=û u¢|xߤ>ެ_ìÇãzWÛ ±MÊjèi¬˜ÕO‰—û–òìè‰ûñÖ^úÐ&‹ªâjíFÈâY"ÚœV]Y5C©Tw2¼ åkfòÔ¢Z’>ÂQè}-0úihü²Šì:W”ÆEå„pð7ìT¿ ÑE1ðãdôÝ.?».–t ù_Öî¾6mdª¬td•{fåR3/q½A›Ö»=dñg šÃ*„ z÷õaÁÓBw?é^K[+q’…ÌSÓ w÷´2a]^µè|¾8AÕš\téùãæª‚ ×QC“6ŒkÊa†Ú5fž²D«@ÎGo²i²—Çæ_.¸ç[~%‰"Wc,¡¸õñ1_É÷ÏŒF7\ÜyÞ|tÇŸ¾Tý¼ z„©gsG¹ürâïàÒMBࣺü>°/Û3½ËS íeÌÂN†œu¬á~% AæÉÀ ”Î0dßÕ¸å=;yÙó¸‰Ôûú_’”žbjX×Ù>Ã&e7+™t£òlΦ»ðç´Íðê˜j>’Õr;^ék”¬ø…•š–ÉšñV¡‰ÁQd|Yªò‹äÅäaŒ§ºM:>‚š‰¸êe»8ÜÉ;Ÿ6Ã_$Ñ«ùSr±—לì[”ˆ÷QóOPOöŒM^•îê³DVÅ ëÄûPÜÚ‰f3Ã#D:h¶Éæ:ngAØ,rÿ5èç"ÎKCd蔥)C·§ÃõŽ»CÕ‚—à âÙQ®bÌø.îËò§@?ˆšE½ò‹h¼á2¤žóåbÞСÓPj6Ò…—Ú§ceÉúÇ’™ûo_²ëÙ|/BNK¦ßÇN÷HØÖ?!i–°4´uàš”Šî'xåÜËu“H+åòÆ·]æÓ4Î}•pØeÉè›clåꆧÅ>{íòüÌÑ;'„ÔL²Le>ö¤cv6o¯Ý6yЊª8¢Œ`$áŸö«ä›f¶ôS»¦ê˜1ÇÓ.ëÞ}òÜ”ÌeæFK>} %.F+æ‰ o¡—0}•TÌ ±¹ÐL£ëÃVYÙ@f’í³£LÔß?åØDe×2§CŸ¸~HÔÔ™ ¼]ûåÌaá—Mˆ}ú²ATð°ayM\7…ðLW[4Eð¶A@+æ¢Ïª4DDóW[Äe~Fʼv)µóJŒÊEG3‚5$Å} &­?cœ÷}ˆôåØd_M,R/n£ByÑ5Hu [ÉÜRó€Û¹šÑ®n³ï´on!ä‚ÊA&ù Cþxwn^â¥eÚšœ”p-GϾ9¿Ó‚tÅF¯Jœú¹1 ÿÊ~ vkçܛᲠ ÷ϲþlkOŒïY#Ý…ëcIo´ bèb~ #+JµZi„Ê= ZÈ×áÉáœ1þ˜Px¬4d «€qšˆH @c2"Р$ÜO©Äè›aál¢ƒº$þ ·~*æß~Šiº6*ØbJÔ*!2“eyÁjp5yªU†ðl˜tôÜ ~ÓÈ|ÞxrC6U€¦T{­VðÔÉhñYøºýW´1«zSpn…ÔÞˆZ·zäÌ<´O¸¼m¤b²ì^x·â¹%ù.‡rØSÁÚzôjÍf= _gK!ÿ€´DPc’ó¾¿Å¾5Ø2%*`¦ÚPb7|ö,iÏÃÔ‰o{’ÆÒû"„ß šLö¨ïÍæg<¹%ïŠ=-ä^.–f}njS[þgrQ\ä5Øï~øØyrs=éêh÷ȧcoާ˜ó®‘ƒÃ>oÿBcL‘3á¯ê‚j`²Y ó–6Ã{3°161t¥3¯*éyß.“vµJün{d’림,ê’[Åv•j–y…:Çu¨àa^U_[#"yþbaìܪ&{$+Ým•ª:cñæÃ÷5] %rF´h²51/'/’g2T&›õÎè^ùêÝEŒåŒ°´IU–WLÚÌOˆþ €ÂXÏ"}‘ñRij§¢`PYª…PçÎÝü ÷OYòн™ž7ZÌkзSݬï[õ{0•ŠUŽ4±¯…a{_°£hYB,F^ÌoÊA¤í±È( afo2¾¨Ä“ùu´B’¹Ío"¦/dgžý†§y­,r:-7]»È$ß Òì-gº>Æàõ«‡¼\ÛDeeÌÊ IuTÉ‘E¥Åá¤o1… ~ ±®­øbž$¸ËyR"*¢¸Ò»èyq‡Y,ú™ýdصìä=_çldD "ê¼²—}ÁØ–Š „¤òÞÃ)Þ‡™ 5ÿˆ0¼*uë ôÝ%ˆ¦ŠN_¤¥õ¬;ÂzÒÌ~Y„hoøéF§rò‚§FÞeFú¢<™ûx°ï·>Óóù‰8þû¬b5si&y–HN—\&®-QÍê‡ÈƱ®ÃWâ‘øh¿U-ÒëZ··_ZÃ6…éÞÏ©ãǘ§"©h?ˆ|Þ¦9¢ªg…äæLÑø„†z%ò6«Æaµgg*~öýÞ„2Š"ðJ^=™dõywÉï §ñ¥—'#kà_†yeÁðvzl×ÿ) •ßZÙ–_+ð;¢™a\¶8C:ȃæKy‘‘q'Ä$?¸CÅ";çÂJØŽW²ûÑËŒ~¸cßäfó,’Kí=Cýeš„‰/¿y 9¿%v'pd,Yxé3î¹HU´¹ÓÕm…Í÷õûÜ~<,.¯Ñ€Éù61~¯mýz.‚øùª!Œ°þ×Nd äkÎáÒ(|­¹#ýëG'8ÍCª|å@̃2’¶s—ŸSwâ6øzÀ…ÖÔ2`ž¨bÒÞÃF-µ]=¤ˆ^[æžÍä9#<Š0äcÉ«=¬hlOãÒBªüä½Õê™tJš]ò÷ªçiÕÄ™ãÏúa b¾Åh–ÝíVcEçÃÚ]ë'*> An;ëå¢r¯—8QÌØ³0ÄщœXv[fÏ0zvÉÇ;Å% S²m™«ùÚ÷¬1–ãA£õL7}Ö‘œ’!œ_%{; 2qçȵ—åæê"n[V·чD ¶ˆnçXã«—­Å)—´­ÎŸïe­:d…Ö·ø1Ä.ÆVŸ!ƒî9¿ëe”*ã ®×/*Wñ¤†¹ >㸎Ÿ^æ) û´Y%`ŸEˆ¹Í|ÞJ5òQ‹ òâ@4º½66Z¹Î©ìaáJ¿3„õáQÁqïN9Z_õ3t=›Hq“dÖ¯÷ÌçÛG;Oe$Vºò|›pç(z)îà‘U¹–REVßœàæJ¯¤Ö 1|ØÎ€Ù}ÿÅÀ,Ÿ¨¬÷)%˦:Øf‡jÕäb¨¿ýõÉܰLf©…éµÙoÂYZT0 0ÑÇX–ümIBý¦b ý|ÔØÖ½ø†ÝÞ÷÷EÃ9­œ]ÇӬ䱹0øXªÛ} Áàð©þ@Uwîü) Ò~MÜýhø`³zy}DlÑâÑ’µáûFŸùrÏÚÕ7ðšQk¸¶K‡T~LwQ0=ü‹ °pÕy"^~’¸­‹„§Ù°÷ ]Ç-=þÚÑÆÕ,†Óuü–ËÌôwD„𥣍w±]×G· *Üvv’™jÚþ Ã+â,|ö5݇1 ’¼‹û€ ÓÙÖÙ¬²èó0ûS¶ƒx¿µ²rypײÿ3ÑžúŠË¥&8³ÊÆ9Çk^6"eBJ(8¤ÍÒN3Ié·ŽÙ²Ù1Ý2ú€qïÈGüðyO¾CÁzo{Œ,¿„ƒ”u›©7õ%Ÿ% ˜ëÌå* õ›ÊöxZs'ã&ùVX>nr=¾ðeÎÍö |aü©ÐÚìµ!ðj”g¿Èl©Œ÷¹kÂÏF\^øÓX‘ ’Ü?³ˆÃ¹©çŒ\ó‡ºRQñ5VBˆ]Õ!96xÿ|3¬ç–:4>hºØóÖRþ¼dÈÂÀE=5Keî>öìŸü¯æ1È‹vÑ À4Ò6ÒùŸq!ÜËÆi_ð9Ÿ6™jÛ»¹[Ž•Û `¾/P´U¦®ý"rª›þ~&½3‰{Ð ÞuH,C ”J:o{ŸúsÅ=aᓜY×…²ÞLø0Üm¨É™³P&"ò )ŸïòµžxãÚcR°æ•ø‘‹òmðÔ›êìê/Kû¾Ñ’€º-{WJÐTž“ŸèBÅ'·(­É£óL±ãÎ|00¢È3)™¥Sí$(äoˆ¸+¿‰õ’~=˜(þjâÿµ!q‹ÏÄ$Xà%ô6 ·ÓSsh»ì¤¤DøEž9åáØp¼[>ÕÁô{ohíÅ[•5à»3)ë,"S?aÌ0™Â‚̵ˆ4?¬ýs7]ËA3]’Âk6É@®a§î Ï÷ç _>ûû˜÷PdQŠ5/ý0†I¼nfMuŸo@‰Óî|ÎrÇ› !³l㿸B'Îv}R+GAÎT‰B†Ì'É0¬ÇçF—ŸÜƒèYk€m$IƒÛ'ð~ï ²‘׋ÕçÖVÆ–˜±ý‘·² ,»X£¯@h?-ÅðòZoו­O§ûÈQ–FêÏà×D«'Çëu²H¼ \¿fnËÄš{pú½Üæ.à„âëBy½Ó(A®)ÃÐ(ˆ¿ÙÅ)×ü:I*˜ ­í…\•ø Ž‚S·ß0E—5¤»/&}w©&ŠßO¦ àap%i•—…=”Ûx$ÆókȦ¢©«Ö·|ðë²*Lmw\8ÄëL 2x­–y¯› ¾dÊÛèÍ÷æ™öˆŠ›- ßL´Ò¤Š”Ò w]œ ºËô“|ýÕ’ö6 ™ý44)¼ŒuÆl„š’²s÷³ÕŽ(-bYúݽŒ ¢‘lP »ªùÃÅü7T;Gš {Ä6@ Ý"“¥™" Î'L¥´ƒ€Ï‹5õÒŒŸ»¾£Î•G{cbrÑ~Ððpм×Å×ïçä~Ϲœ˜:uÕíSgà"ÚWiÃLtß_cãV²ßêÞ›w‰–„Œè꺞'p˜S¯v#}5°`;®pRSx^Ö§3œó§AØØ¤þnÃCGã¯ÖÀßÕñZèô<ú“0Ô—¯þJ‡wÈ]SçZ"6ÁÞw?mc÷Möûz¬‘ot·o7yŠŒxM \јÇÔm)ÅÎ’ “׺.ÛóªWºŒ"=³¥Ú S^ÒìV‘%›½”L¥ÃáÊ/Í”«0‘<â– »1L_«ßÉç§ÔÍ—f<+ªDwfÛ{‘‹ø Õ £wv,G†Å¨}¢ñ{çQÙ2 Â;C3ôGžÞ*ò§|B8.+Ê‘`ı×ånùÕ¹BuÊ¢„†š\0&²lŒWS<#Á_X!”àps#" ‰ûŽ”ö">¡‹Ì­¢^jl#ñ¥Ä@2r6ª¥pZ›×ûA%UiÌŸ3‰#¹zÐFDy¬¼­^º˜‚†V¾_–Ú6Óº•Y!Q^ª}rùåÈS›–3®õpjt3Üö©3>çסOÚ’€ã” ub dçvJ‰óTÃÄa7;žàGu1ÛNYV-zž#ë/áS:òj‘r¶/¦•´¾5†/aòƒ&>oÓ͙&,í67×B6½©Ókõ-·~\ÂqvÀ êA!®,eX^;õ¥†^´ÙÍ«2B.Çd¥‘WnZèÉg é´DçMÃß„.®h›ðÍÉJAà\¢– 9 ~NmÔŸjÔ²ú¹NYm¢¨“}„••ó¹Ê_=K~µr‡}m.… J ÑÝLŸ£Olñ)½®è|–¢”†–o[q£0ÿ lc¹Í[ì8Îüòc®ìwÊÍB­{ê<¿Á°D]Ë…áÈÍ”«µÑ‰5‘O"ï«ø|ТÞ1¼ŽËÿEˆ¥š|³2kí’Ž†É ¢}ýð@#›5ez¸ð ñði'¾24®0s•ê1Xü£{LG‡³¿´Õ¼~6 ñîÀ] ÎN‰ ùûÚ,|¡âŒ@£Ü÷3¡M±p”Yʧì'¹>Ûçª++f.†lÌÍÁt¾Ž(oß:É]?î¸f÷‹ª¬&jì fˆj{y<œBت#+äø¬K·ÆbÞ½0Šà}›½ÅÁ6/fVÄ _Ž<²`0ꞇ}NBä7Ó…mFƒ˜—Wz9­tiNç”ÖN‚Ú˜ÇuG©Ú;½Ôl…{Ü!FkçjÁr8,⹎w XWú{]¢¼t65îÙÜ4p=ÚÓúæEÝå„"=›{•>BÇ«˜ð¶™i÷§}%U»ù7JÂ;v×¶Í ‹ÏÓÚì#wô…£åÀ¨‡ÜC·&Çמ£È+q“^Ûê5†Ž«h}¬Ç濹]µUI]øfcE¼[(*²ˆ«Ž‡^£î‡–>ýÌÓmHÐ3ý}½ØFÚRÀTFžù¶&`¸Ošà¯ÒÖì’ r8A¯¶lŽ=ºK„¤‘X×Å2ÞgSÆw%}ÝÿÀ' ĉ÷¬õàÚƒtšŽè˜ài{Û¡þ±‘›´R;<žr›Ô»ú Y'ž=™‰G½ñèÉê8^Œ+zÞU’yøÅu2xÇZcÖÀ¶ÖùàM©û?×@ÑÖŠtQŸ&·‰e!¥±U¿™Ô‰‚<,ßà~ñ ìDŒø&ò+¡ …æ+T|g“gŽÅš@.sµ­)}¦¸ÈC}?¿Ä1¾ÐœÅ£•UD‹UëîÃ<-á—¯ÕÌ Ë5â)rÏ’†/N×9´ûýoÆÑvž m¬¾peJ]ã’4d)óB¯ ¯$…ïÞØ¡Ž G©—t4ì ›@~öáˆÑHOçh×0²8T' k…ü¹à-UìkÁ¤fÔËtÑÛþ©C©îµûÈC¥­D_üåh¤K”]=1<íÅÜ}^†;çy–Ùä¡TÚµW14ž9ɸP¦ú-âG0Ý)®|#ƒ>í"¯÷'ývëµmo:£”J¢¡øê§¯ðšJL!ÄSÛÖ3&" GReÇf- yCjâ³1Q&úÛc÷¨3¤¢Ðê’ºn¼Rü͘…xûaܺÝó_Ô–+¶½ŸäD”waš~¬ù'sʺà1øÒ˨<¹`ª25,2Ø*lA:A™ß3…¹‹øªï@´âPÚ¾±÷è¾~‹0ü±¸6cµ×J£œÅB6¯‡½|ໜz'5U'ßí…}g´ߊ¾ë AÖûcŠ–û*<è­½H|í§‘8Uï„æ·‘ìsæì>ÈgÖGMÇÍ{.,¼îqù,*\/½ºiïÏ59!•ÛBÖ,µvCõôMñ>½^ D‘›]¡uxœ Cl©Ñ£1gšlû)9î×\FÐdk9cÊÀfKˆ¥š®\˜Ž ‚6ƒµ©›ß·íC¡é÷å1eÒ¦µCΚ™tüÒ}~~Fùr#A"„‡vbUa‹|Á×^$‡þkTØm ô0"5-•.3Búù³.DÜx*o¦2ýå,gì*™]Vý[c· ƒr. aÌMl¤¼ØlNreNWƤ?ïrúBZPo½©wÏôfÝ«½{ËÒ$›ºžaHÒ<²ŠkzÜk–Ƕ†ý†ƒ£+÷l¤½†oSÞ.×{HåàÍŽ&TÁØj÷¼Z–8X%zŒÍ«¿…<€¡Ì-Y÷Þ,³· : $?TÈw8°'·‚xªa, z^™«?Ä…$©þ˜«}suŽ—À¬ôCšWCzˆ¹ð9Û¹ë;A›ö|ð´GüÔ'–>/M Ã*œ”Tÿ-Á[˜z{‰Íýåeg¾öRw††-ô§èY-)À>·PÄÄÿ‰0' E+)<Ó@Ñ#½¼Zmº Kšõ>¶ŽLfýÓ™;2“‚;ì­yyƒJnª÷õɤ¯” cRä•Ujëó=/ìäý©LAŒŠ†ÇꨞˆIÄu:‹ÄŸŸ$r?¦R^¸IËÕÖ|,=³Á…o¶$“K :ãž5ÄÐ÷Ý?åx2³UPWß*ˆ3“n¤4’~Ž³Ì† 1W_èšÎ@ª.JS¢r“*¸nE“º vÔ`]oaøÙ  2B·áná§ÔçÉ$”û{9iæR|XüŽ;1#ÏvG K‰ÐŒÐšûy(Ø1íËCë;|Öìe7®X;|ØŒU•[êôkûuvî wR>õFøéôí÷’ãÛö.ÝÔ4.37c5p—]ƒæuÑ8>ÕdBÃðC] š,¶bHÔÕûS+š¨m¦¤{0¡ùéŠQbçšÅ<‡?¥ó;fíâ²òÇÓTÚÃaA;ËêÌTc• ^¢R&¼tnˆmE`‚b®TÏ¢÷#’ظžŒôU°:‰¿†ÍL0»öRT$iÔ^ þzG€YØâ€½>¾ì]B¾ŸÁÙ,.kŽ,¿;5ÕÑDÛ}9úS}Ïþ++^ ‹¼aîe9uóóÖ÷\AŠÍÝ¥3é½eÜpL¾ªj"ú‰}õéf¦ðu?ÛG CÓáq•›qŸÏÞл±RN®«ÈVy)Ÿ+O¿÷X1m­§ÅÁ_K’dÅŒÄ-D8°Á÷¡4!w& F›ÿÔÈÜNgJMO-™d4‘ŽLä è\3¶u”2ñîÃÝ3_%Óu½ðgpUe%EñF»Ë;À.ƒ’!<ŒFrŸ`êÌ é„÷—a”çûÊ4d„ß·Ó].^É_Ýõ€òäåÆÏ¾ ¤uÌ•û&ú*L›Š‡×"«¿ik(O 1ʤ¾ê?kú®0+‡†7z£QŸ+ËærHo6¹F[È@w$T´'¡KÇ„.†Xž½ É‹íÖX¨ÙM­*–‡c:1Ƴ¨ï9Ò’ØL½×a¡”ŸF–¡ÚIésê0„mvR}«é¢rãÑAB‰hm½Ö†Eùcîšµ1äÜc}GH4^0:ê%'@óûäAÂ/.$ñŒSOÚzçv$šŠ+ÂÖ\Ú5/½ì:~hÞ4ðÓ¼¸<…ʧچSëpì!†Âë+2æÇÌ„J´†XÉR D™[¬O€ç&3Ûü˜»þ*aòz‰peÝç‹F›ð6ÏS‘ê¢Î;›,gé>ÏqZRm”þÛ…p®Æ| ó˜ÜâžT÷Êüm{Ý"_¾êZ6äÖU±ñOf•§•ÅG¥åÎ b"C1Ç>Tg6>ó”Ö¢ ¸€P\¼¯îò,JØ¢tu%ŠK :KšŒ·;d±Þº èÔ¦E«r” ±È¼@ÌÜØªþ„‡öEu’äü@ú”c)´¡Ù6úX„²‹»øì2z–„jª©Xò5îrH:P_M²ì|SíW´L¨QŽÎþOì#ˆ… XZkÓxê3¯V 5Ðçh~îªJØ 2…h\(™2éb®§œýÐÛÌ"ýÀø†° «‹wÆ¿êÎÕÌð&»ÄªFlåa°•œp¯•ÉÐ[â´ÛLh;·½¹ÊêÆ7Äc€S?ËÁ*,—8$b­‘éÉ94ÐNF'¤ˆgÏžÿ1;¼dî+å¿*djHL¼sÚGì™ ŠL\Ƚ<.Uô°ŠÂR Ói#X(tn¢Õ«ÊfƒFpZOŸmâ’œ¥F•0¥BleQ1G…ëŒüÁª7>;Å^Î*[go™}@AÀ«Î˜aq>¾ØjÏŠÿ;û*,:S‡Â+þo×þd]ý»cj±êÎŒE¼ÖBÂwÓ Â/"Çì63(ªÍ=íz1M:ü£›ñ8©ÙYõ½ãwO¯Ÿ‰ÃF±Ç ßA–%•0ŒÎˆVŸöBv¦¹FD$ÕSõ ksOrÔЗ:~ð6Mû€eQ€¡úÃxœæ9L? Éñõœ™ÀLUºº¢ò=²tÆC¸3ä U:³Ï0èÅiöäp¢k¦±èpòìXÒ.k2Ò€†çô9;¶ÏFÃÞÚè¸ôáèj[„c&û/y1´¡\\FõX¾ «Þb‡æÊK‹´vÇßæ€2öRksú´{PZ1å•ÙÃ-©Hü¬È°¯ÉÂÛ2Ø#c=OßÔ/`ÔÐÆC<{)êç@öeK¿žsÅW>Ðd óY嫊k‡âOø¤\çZXw¶iù™?.6ÑØð¡9}³Øš„£cþI(o¤…~MžR=ÁŒ*ÛnvÄ›¢x³ØOk:]wp÷‘g­0”YÛ¤?ËŒGR°" ËÛê¾|K6âÈ7ÚVYPeŠÀ,qŒÒ¦«m WÅ%ñ¡•™sÞêûâµôV¥7Ï÷(í!‚ÌkÓx»DnÎôØf$4{¦Œe[7È™}(7ìôªé2¨«ÉDêçΧº*••¦s˜ïަ{‡¨ôL]Ùh[·ø1Bˆ0U÷-QÛÓÇçPÌÚð%´?Ä Åé.@F¹ÔO,rí0ðõaïF1‡¤í4¢XnéîÞÚ>o*°’!‡ ¸äÝOŽew‹/Óàß6â~nr÷£ tŸ:wëÑó+ÛÉ®pˆ,µëVÎSÊË Å¡·TXœð%ùè’i膎Z›LðœÓ×LœE*’ÝxU•ì7°Žd‰Nkû çË]Úµ@Oµ9 8;BŸÄtœ¶;1Ó/tŸé ù™ï, qZÕSR¹ÑJF?ÓåÔWUœ©¼ËS„§;B>ž8Ü€¤5 'Bï1fFpfÇÅèvŠüuͦÀdiå·C¼ à}4T°dü©û*PØÅQg7øÂ¤2â„´7UPYiTÌ®øp“_XHøcÍ‚ÔpÕØï¾ª}‹>lÝLvö¾ßÍbæÏŸ1íý8*¹2:2Óg#?7¦;§‡ûƒ3 Žor&´òGo¦ÆoúнÚ³‘ùk6õs.AüôB”š3ñu1cŒåGŒê‰½u^¿0Äùâßu uÎØ\„xwœ¹"[– xq…"$ßëŠ+Θ4­µ“¢ÚÏ]݇örä‹Â6;œ‹ ÅW´mòÊ45Üùr“¯š©ušLB™ Òo J`.eäj‚™ÝñåÒ#Ö ×H‰ñß禤™l~‰ z[î¹Ñ¡Â×èøÈC~Æ÷Å2Ôј ðE¾â…«ºþ1~N~N}¯Gë‘øþÆÖä׊^ä<¢Ñ=–D i”â[±AqA$EéTõ;œÜËù•Ö§žÌŠŸêaîC+á“ùø'ÏD|zÃÍ_Å­ãò*n¾Š VxõsÅ*”†â‘'®ld=FïMzì5•(éøuÊÕ}>¦wë¦ïš¸YŒÄs_‘(P½ç¦šk!¹”§l6p²Š“¢Œ—fÐ`”AO°ýxyï}EOd<嘂ÐòN8µ6²(qñKÙÏUÊ)Mç^V2ÜÃA€Ô%PñŒWÑvÊ+SîÑ .O´®Øíf!2 ‚ˆÔ³&¸óñtT DÛ$Ø;áJ®ChŸ Û™þ’”ˆ¾{êÙ);VR FP¿K;ŸYã›z: —|2ù3~šuÐõòY7‹³î#®zbafÎÚdûΠ㻲õ9; ç†8F¿z!V¬B4ŸN™tF½"fyÔ`¯x¯)©Úô¦úâzéd>×UlH©Ï7ôŸ—ai‹Q*-24ùdÍ̸œùò‹æ gÌw–‘Š’#;{½Ý†*´gû/‚¢RÓƒÔ¡hÄn«H ˜IkÓ¹,)Éä @þ?ü]Üɸèc®t9«¹^󯶜ð qñâÌŒHÖò‰ˆ×Né·«ð¼N·V \œJmxR_·ål±Õ°mm!}‚:Öw÷¨½qz ¼+}biÛÃm=Õ¿¡ -£è­d5ÌO8æ:…Å 8b 5Á‡œ8'-ýQªšïÕ_†nùy‹pÆ,ܦÉ,€×Ó‰~çÝʨ™n-¡zÙà!žÕ™ÛØÆ[à }Ô‚ø<ïÌÖ= Ç^j¯Àu¹e}CXÁ˼þöƒP¥¾|„z‘šÍZ½•Dg–ý·c ƨeî’¼(Þ ¹zân ~´ü+zp|ën2ZÊòfYê–¹ñ7!‰oØåÌ©î½NuÈ1ɔɭ “N¥x>ÈÍ1mPKBõ~Ñ[Ô­ ȳøš„ªô6ϵõn½Ö[Z–y(±äLS®lAvÒŠpÿi)oG‡ò[ÕRÛƒ‹ÞÈ,žaõ7Ä<Ôe†`·˜ø˜zâN›^ÔëÒŠ+èšZ#¸ºÕ-²Ü¢­Ñ¥ÞýëO,ïÞå«ßð}Ho­]WË–Ïs£´I¢ïø ŒÔ¯àÛXDÒ=M)îO“ü ê«oD` ßÒCŒÇv5Ëéä9bã G¡<÷¦‰¾½¥$n<3ä*^œ]ñ„Tásζòc•#ë3Ã1SËUin÷7Š(o˜,Ú¢a¸—3íØÖȱ»kRýêÉÇ—W;ÉŠbïÌqOªÈ`WÌì{¹k¹L’ “O›4Ÿ 1bà^¥ŒýB#{·Kܸ’Hë`6pqJÒÝñ†ÜûËSÞùIÛo¿ Š!}l5v¬F輫*j;Ó3}š±éÚy%e:7‹Õ‚Ú©·´Ÿ~‰Ç¦l{µéíϸXø'Á«U줰O¸q/bG<¼V¬yyÊsR)æYÈT)ŒRÜ¡i¦M§&ßÇV(ü¼ Öýù•ÂÒRðF{AÍSñlˆW‰[ƒB?y>šu±ðÑò»T2Ée«E¡»ÆðtÒiá-Ó~©Ñåyo¾y2ÁÅ¥ÿy÷tY}ÄwLÿVZÙ•ŸI¯I‰ÅŸ{ÿ¡ÑÇøµç&â~;&涬օ A¨¦ ñâ^uèû©Ž¬´§û4ü̯{,]’ø/ïô9Qúß9¨ËèˆÀ{jaOþº›eßq¹0ìŒ3›!2Rh/4þ|ñ¤QèZK1šb¥$ ÷Y )ÔÍéó–vÇH×&|˜šøñƒí--ײÈñÎ6Î Îf5¹U¨šv\ßÏ(‰òøNÍŽ‹ùíí„9„Ánb}¹_Öצò]øªê×*Ž#2i óØÙSFª£ñCê‰ûćh«z2`Ÿf%üäÙ‚¼õ3<ý°ŸÓOTçì"| #ÓP¼Uáå›é”´'É¢0=âŒÚèÕŒ½„…®ÛoŠðÉ¢JÎ f5È”&4¯æÙ×âl¾ôbšÀ¥͉?‚xÞfJX(Ú°…ö3·2Ò´«'%ÅékI³ÁÕÅs& ;K»²¤.ÑkhVÞYz£¯B¤× ²s3»“x×úa jTÿ¬îYñAB¤“Ó£eiÿå°.ùÕ‡i9ª`~©•fð£ÍF÷ÅÚk~ Ô„Î?ï×—ÀzåiÊ®{»ÇšòS@â+G‡¢ ~5Ù £ESRÈ-SD‡#»ÖTîÆ«ú7£v-æöÑù{( ÞÚÌ /0¬ˆž TdIÐçl FÌAE–šg—1÷…élBŽñ:<ïOͲé…@´CúPó"E)®t¨ÍÓ!ÝíÙÏd^[öŸU}É–±ñðT\]g [¦)‘”¤Æ¦1fë&!|êüèÖEZ4î2«êº–£{üÃÕÝʿᙶÕ\ç±N&œñÉšm|Êý ©­ŸaP•¿Gfiñ„šyö ?PT±¬= ‰wôå)øX“‘“8ÆjòöªK%E§OÂåFòÖFSW.8¨¸é#·b+R{ˆ`.ä,H9µ–XˆA¢ö|SzFµ)㪠eáY™=ÂÞC§y]Ú‹Š¼-·y—‘êtMŠúË[€ºà&EbÉéõ¼T@+q—"I^Jt¶Á·Zmþœ¥Q õ­¡Þ¶¼Ãv>2®fÁ•y%_¥Ìäí¡K:ÅîO?ž“ñwxß¾–•é•_vè?ñ´'CU|: Ê– *l–ñ4ù¥úÍ#Æõn¸QˆØ¥F Îs¿PA¬¶“<¼ÝéÙ8è|v%hlvnÿ¦D©$ëB).Þ¢7Úf±%7šdç!³ÞWµB,†6.„›1) Á†`†ÚÎ9£°3bIûzB™]²z:ìbå´gN•ËËEÀJØK;üa»d­Óq澆™v ²ZE˜DR!{”ùaÌ•^ibã"t³çDf—Nü-åé ¦Ëbί“€³ðDuäõþn!ï;Š£¤ý؇wâscßD·‘g®d§_Yˆk¦ûHü„رFˆßí5¦þ•!"Ó™{ãRó…NºêýWk’A]KžŸâ I–/;–G?‰¼uã­”àhkýO´BHâ–pZšd“R1¨dů¿6š}Ä­wŽþÚAîWßðTØž‚.~&è-墋/–gîËÂNdÊǦøùâ¼Gïö¿šZ/)NÕP‹S …É= S õQâõÒp…Qª5±"î“¥Á¡Ãã3wãœ.«l©Ì=ï×_½¢‘3Ã)XùìåÂçݶØx²­‡±ýЄù¨ÉåÕCT#Dˆ™KHûÕWÝÞ£Xë0`¸6}—p¨.ÌTΣîÔª§.χ9´5¡…·É!”ÑL:]ªçvÕ‡ô~ i Ù‰Ö8:” ¤™NŽÊR¶1&‹Î^Ýtð"¿Zϊϱh3egþQ5­'—UèCl§½"?§­.ÿû}Ì|ýMþ–¶mY-ó¥´û²üƒ~˜Èby„d¼v¬í\ÒŽykpá?0Xy¤tsØéµeAËfÃ*Þ(ª‡¨<´QºЯ88G`À!LQ÷¸WEµÛ“ø5¿`€h{èc+~ÞÓín‹ÙÇí¯,¸Ê Ý!¾«±:­!ÕgÆt6=  N™>Èû8Ÿ2‡ 2¾Kû–K˜4ôû'‰o.ZþÜmö‰EÆ´,HŸ¾e¡xÊàSÈóïÍD—‚.~†p¿ó£”Åy¼¼˜C×Exø5ƒþÏ¥^n"ÔÕì5 Ñõ ºûÁ«ËÛ9kY«>|X¤÷Í )ˆ0Öôãݧ1ó“aªZ®™8}\Ï=a™ó3–¾“´CMqMÿ=í÷ŸJ”Î;ÏÏ÷p;mœ™v®vÚr$éü®B¨"ý ÷jÜªÚØ º—½5döM•=BÀžì”2-ÛPëLñزˆ:)]%Ló'»S%²šÌ¢šêµ÷á9y9sQ žÎ4~ï¦Ïê†Zº?Šw¡¶7 ¶ öè,¼I‚TzØGÝ"ªþ̸NöŠKd-Ãì›j(EòM¥¯\/%O·¼u/ûD]DÃ=rz©+úÐpH ç-#Á`×äyýÓðCÄÃnò«~lùí4?n뛦’8»3#@w&ª’E— r¯ÌÙWH“(ž–Hµ,Í–chr˜vMæ/ŽÓ c•n‚ðœP«éú–üò»áÌì´”ëqõ{‰!¹+iþ%i[m† ´š•Xù+„ð~yw­k¯Ãå|ý6SÓÑ x ²^®#ELsµi¬ï÷ØUTÓ cÊ=.0¾Ë bŸÒÐ}}ŸÌOA¶ 8“y„§m@f FË[öœ”,ÁHOgÕéÿî‹ÒG‘¹†O®5y‚Ü·Õ¶¶¢Ytv’RNpç–Ý­Ãç6óŒ:©Ü'LמƒÖÒΠ#Å!=²+gi¥.mÄï3Èï›YZ™Òßýé56Î-Ó¶›M:šø{žµ¦Ä‰ÇwÅø+ëœr£cév„ý±”))Ù©cšAL(·µ"o1?™¸àÞÊÕ"ÜÒ!åÔZ×Çd±KþÁ¹—O#¥lF±ºÑœ¶|?žÐê…Reù–ç”KN袸‹G÷£Ãg,bKïà1˜àl<=Bá>"R6>œd ¡ðßc¶aM@Ó‚ðŒ(ÌÜIIH:ð6nñЦú!íp®i`øei¬~4œþÎ`[¶£àFÏNO]8a[+Ðé'ôK×QôŠ«¹•ë9“Ä•º$ÏH«­Ãl…$“žÜ#UäzO]”–çdéã~gO:æ¬üá—Ý…¢¾RKdâÞ&+7[üth¡Ø_ÐJs¾Owc³¬ zwðÈ6+v3³>qh«‡bŸ!hti£Ô;Z޺ᾔ%­-ÔzodqÞ(×&馟=<}"¶äG`Pó–Jì"§¦’eÅ« ]•šz¸}˲ „íËÞ‘¦,0zhˆ™´kÿ‰IkòQ…¾oà¬D,Æðõ”×>$¯"µúò«Ý®w«gNi>l˜ÐÑ÷ ú®W_𠉊¶qgz»,ʆ®˜ â£%Ãeú§ñ›¶€V'é>×Ù…ŠPlr±b?Û[lf†ýXº‰Eö¶S”¬Õ§ž¸¥Re¨j (ËÇÙ·í¦b vÑ !ÌwNfô3¡ºæÍ¶N¥äÖ0?D!D¬èõL’ ¾"8ˆB`—hm¿–ùHqH7ŽÜŠ´%•X…Œ(Ûàv¢¾¢œÕ'q_HZÛw°†B– {’ຄ/Ö-Û*«›Óš í5 ßwTý1ýØCOzÆ%¥ê®âºË’1ˆµk “ËizêMðjqÖ¤ŒsötKaÉå#”àbØq_rä´ø«_¶BÈ¡¼üÂiÞþy/Ž^2©¤«–¼Íʱ: ­Ø³BÐeWøù{AŽ«NQà*ü¼Á»¨-¡×ÕΛ³Ì _aÕýFgUò;‰Œ5O³õ~­n•çã+ nè¨$oÿ ºrMà˜§+LÅ‹bµÊÊcb>˜¦š2ÌïÝgnh[uÛ­Fª¼ ·sÇRDä¾ï†¥€ŠØ^¶ÉÌe¬FÉÙè…à}ŸñTË€ÿé¿2â€æÝê˜x«¿HD@…<9$ùlêëïîÀ¡e¦!]>€Éà›–Vë…}ÕÆ‘8 @¿_XŒ9·“0+w á H‘äScb’é|Äó  ƒ5Go‡gòY7~/C¨|cM6ì6Fq…k^,É÷©vA@eÂW21ù ý™»¨g…˜7‡X’þH`? »óQËðgPE÷]4–±Y `FoÙq[²u:8³×û.øƒ^ÁÏŽÉMeJåÕ‚˜OÅØb¦¹cÅ£ÄP™V®°Ê<ž¯Þ†P±.‰H¸Z³–'Æ×5âk¢uS(Ãx‰™Ò…ÊY¶ð¹|Q\ïÈèå‰xnÑ1ÑÌ©Î&žZ"s8)GÞÔÉcóE¬í îï„ß„+M#â É6B jÞ¢»Á룸½ˆ7’f’j¹N® k3©ç@LšöÀà©ùœž’*C³`ð»d«{˜äùãq$°À»ŽœF[­f^ô”š×ÛqÀ»Q¤ÐV÷)D“‰ ‘Ò·žKZ7ß˽~µ ¬¡¨ÿ?i–ùôçûãxýD·…ƒÝœãjÀlâôa#Q?ýè–±"!ít§%ÖŸ’ÂbôQ;±%É…Pìƒÿ¢Æ±›1ˆuèÝàQrRàXAWx3L§ŠÖÕD>®ÖñÄö9&¾bñ9¶êu–h0e|sæ+‡Êù¢R(<‘Ï®r·2S‹\šXˆºðë?Ü>s!B¯¬ÖòRE17kÀdº¼ÆJÖæE$$³NÇv„‚ѹ\i ƵÛ{»õöª0³Þ©¿bvIdÞ@Rh¹×n–Ç+^Öc»’h±~Z°úµ_–×hCy[jªïDzؿj@¢”äºe¥þ±¼ægš¥ÐC:„õ¸O£xKOY€¥Œˆè|nšý‘£°ñybÀ,£õ–óNÔÍ!×-èsÔ 7ÑÙå“ÐF=:T1#Æ013KŸ“)½‹f Q¯EÛ•‹d®–ðiŸÁù?@ïÊ…Lç…<àÿ Fp‰_ÇÂATïðñ¦{¶Ií¤ |RAm”¥C*uÐŒ§,Â&ÄôŸæR hô(‹¤RK±†_olœ&5™ÏÜÕ[.>–zåãjÍ“ójéif{ÍÈ †0:s*ª]fO/úç9¶©±ÔÃs$Í^¬Ê_PÀÎÎô„µªTãòYWœçÉŒ1eÞËäey~%Ĺæ•–d3âkü>ÉO³™÷ý!ŒNXø©ÉwÂTM²>qŒ2“)œÛL´ X«…JÁ—ÉÜåÎ0q¬”¡¹°dÙ„Û}îŽ0Ѷx¼ç§»ãVrêê',\+ Ï3deAu&D3]8SÐÒŒS#Èmt¶ÔœÕ]”Ƈ¥ ÜŲNÕX†Ðäy|1+~“ƒaÙßȶ*dbç4 ¶3—Ðè¥ úrûD×+µ ;êvÅ6Á)@ÒT@ˆ >Z.1«Tõì® ÃÏ%òÈ;é3ÓîŠ"ûÀÆè…îÜÍw>Å5+TD±)vyF [›|;3UMÂÌvŽ Ñ‰UØÜk€uÊSXÊ.®¼«r_`‹ÁžÔ“y™h-V(K©w®7Ž5cÐ'2‘#ðR&T,¹®îàuzpPñô myLÖ]kiÕ(´¶ùî‹V/ýs¢ý| ˆ~WŠ ¬¨)¹n¡Ö5ñcó<ÆiÅ>¬¾âú€ š{ ü_Žä^ƒg‚ƈª 9 5c§Óò.‹:^ÜšºfÚb›>6ɽºke®ñÜ¢±¡L6#SBø‚Ü-ûÀn嫜·G~d”º6_»Eú§Xuùáyk[„;âÒI`vC¬é¯…-ÌŸ±üç%œÜµ,2º;"!B¶a,µ)4l]Eš¿VG1…½ŽÕÜoi§5ª—ŵ,H9ƒzÙ!ˆGÒ?wRÅLçkÝÖˆŒõ'OÃv,ƒÏ.²Ëwð ÎkÓÁ) þöÈ/¸_ülÉ{ßå£' 6®âæ ZŠR鵉’éÇÅTIšJ¢±c°¬¤ê¢±±ÅI6MsÛ ÉdÓ&ÄŠï¼×ð!C/ 3††¢÷ÝÛ=4çF›¼-ô² Ì Ç/Šî‹^ª8U ¬>÷@ÝŽQ¸?c¼ø¤cR¤YÜÉnªñ7ÂúÖžŽ¼E‚hsæ2CÊAöb¢½DG,®éor°oyÄÖ†@4íVb@b *f/W.ÜÛœàÉ‹ï±ÈNÒ‚ðTAA\±l@­.¬5ŠÙg÷¥“×­ð¢ëwx6ÑN¦wwа5ï™ý—ŠCšÞ©|w³´“P¾ú¾YnHêò‰ Ò:ï}¯•³ªLDÒ´ãÿW[Ц!±ˆ_’ÆP„Ma,ÔlOáRÒ>߬¥3ì)W§½‘ò†ƒ€p¿‹q9­÷~8ó,~/„çf„uãeWËDnŽè÷2^—R¾F»YEc’‘/ú2îfŸ× ¿7B¾|4çÁã‹ZI=ƒu>{ 2ѹ_;ŸÎ¢ „E ^ƒSjiãl‹Ú¼¨–qàÄ‚Ùfª-‰M»³ðdÂRÀt‰`ôÚqßw£e„õ Èü‡½§´wmê•c—’EyoJOwÏž\Ú¶»ÅþÆ 7M©†"8óçzkoãžÓºƒ—9?Ô úýI ˆ>m‘;•]ß.A9Uv^ endstream endobj 125 0 obj << /Type /FontDescriptor /FontName /XDINOL+CMSLTT10 /Flags 4 /FontBBox [-20 -233 617 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet (/A/B/E/F/G/H/I/L/M/P/Q/R/S/T/U/X/Y/a/asciicircum/asciitilde/asterisk/b/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/dollar/e/eight/equal/f/five/four/g/greater/h/hyphen/i/k/l/less/m/n/nine/o/one/p/parenleft/parenright/percent/period/plus/q/quotedbl/r/s/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 124 0 R >> endobj 126 0 obj << /Length1 1399 /Length2 6235 /Length3 0 /Length 7187 /Filter /FlateDecode >> stream xÚwT”íÖ6" ‚„HçC7 Ý ©tw0 CÌÀÌÐ% ‚ Š„RŠ„€4‚”t#Ý) ~èë{ÎyÏÿ¯õ}kÖšyöÞ×®û¾®g­aeÔÑç•·GØBTp4¯HPÔÔ× $ˆÇÊjC»@þöã±A(.ùE$Œ¾ö)Ñ×@MPóp„QI1I$þ"’€Øfhòj8…ǪˆpóA Žèë>?vœ€€„„Ïït@Þ‚„Ùá€&íq½îhvôv0Úç%8¤Ñh7I~~///>°+Š„Êrò^0´# AAž{à×Ê€Øòg5>( ˆ€@ qq ÞvŽü¿ø¸A~~¹¯wðsC¸×k@`ëK\ÈŸKõ_ìcó%ösº·Ü\óie —G± Eñ³kË z–°Ôoå¡“‰Œ×4ÙÖ%Œ?*G‡*Š5 ™7D.uo ðkä1AGÆÛ&±XøÔám×ID¡hÝÛgwh)”h×›Åw7Kò½%F‚”óÑ7ý¶ð<üo¹IÒ ÔÏÙÕœù>ùFd•uþ°çQ¬`´­7yeuÏÖ‹ûÖK÷Ó|oCÃÉçB&-现Al=гãm„:á•?Ÿ÷n¶#Ù0z4…à¶+ŸÌÉjÃÜ ‘ð"2Á­[sÙrHþÐ`7£ÁØ#¡±£MˆµjMSŒk·irsLݧ³PÔøØí¤=ù³ƒsõ³£Ï-dwv£{þ,ï{eáj¥ôû7©½cN*áòiÜßÝúŒ&¸öªZm>è‡Ëú+Ùm›’ony|Æ|¼ÄËÝäõurjÝ£Š¬ÓÞœ1`!X®yð=)i;ÁC¢Q £°£!ôUm”“Zñ»uçW\/íƒ%…õ]ªQÃ9A· [ÎoÓÀCŽâ~†Ðx~šVaÛ0š1§sJ'êòõ’ûÖøb°×4sÌŠ¦H™Á2H ¾bÍJuÔ•7Vs;%}ç”ë@5%§”u‹«RÔ÷I¤æØ5c7LW*©<"m…¦@ÃIuëÄÒ¡¬ín¯UqФnÑM:۱챖~M<æãªa‹œ¦Fi<Ç/òÄÁ¡,t\@3xýGC?^øÝÌz)51G¢ehVèîû£z¤Kþ9@~I} §Ðh*&æ/ë(Õ¡}DALW3{¥iÝ•ûhÏW4ÂD¥}¢Ïº^­ ($ Ur£”$Ò”‘{nïrdági„Ãé7ýâDÖê› -WÝÇÏfT­³êúµI/£«Ý ïP‡òŸˆ‹kk?“”+¬æÚ²0Œ"L7ª Žá÷Œìõ%hÏ@»ê“Rð¤“ì ŸJ¬w!u•‹ÉA¦_ ‹d§6ä•õ._/at£ Ÿ{=á¬Ö³iGA<¸÷LŸléù3òþ~òWUòÉÖE¤™|Œîɯœ%u.o·@_öž7ѰãÙ@ê+†s¼vœ ÝÇMåžXU¯Â¨;›È'saÏ¢r8©œí$h‹¦‚“s¥òÔÝé“ÒŽ% »?EÊqeå:¾¤„ô£­ ßÞˆ z§# ä–à‚Ò"µÖ/n[zñ©Õä£n§Ü§‡´°Ÿ¡®…9|H’¶›ÉÃ2ð(·l{H¦«ÒÒ_ÖÀ©,§[$duÂ)Órì›+†©^¿SèUsÎçùQhμˆ)/Dz¶ß9'=û–ý°pŒ}íÀczCÿçé¦$?3xä jkuLœýHúÊ,¨NªýímŸ…¿ y¤ æföö% *Ë÷•PÒ&3x-Ð~®Jö˜´Ð½¹]Ñç¶Ë;±Œ^ßœªN­{Ç“'{–Ç߃">Q¸|5H¤k©d¬VݳˆW>ÙrÇ[Yýx‹f4èÀ‰™¤>_NŠðfl‹á.å©`íÇÁßÜpíJaÒ2%†d8Šf‘GXÍðö'ÅnµÆËãG’% ;N‰r· ¿ïoòÔ Ñ—^ÎåI ÙKëi^åcR› ‰ræÓÝë QŠ‘.ã›ú¾Nâq©Gªu1Âxy®šxW˧âÓ¡p&¥±¹h[$ý½[°2¬íýÍ'¨§÷~&‡?M|I†ì‰W0ú yìjƒ”}ùMœÆH¿ïÑ‘¸Ÿíëþ€›FÛ¼}y·­NÏ<ƒó‘t Ûù,âñ»”æ> "(}ûF[]AÏUÍ]¹ôvÖCÓçí-èo|Ýi“3‰ÃÞ[‹‹J@ј)™¾"x÷E¾r£—¥óí§‚Ý‰˜1‚–¹Zq@†«}éŒ7â5g’µÖúÇîmv'å„f"­¬MœôB‹ç_“„úÊ_vµ´&–{…NÚØÏ|£òxë‡QЬ0Nýb%À-ÏÅ1HÌϹ`Œï4²Ð=ZÑõé þÎ]a©f¦\ÜÞ'>`Ô„0݉ nÀÀqn5) Äß9gW¬J*=öõ®úvDâæ3¤2k%–íqìõÅc›ù²ªñúðEóÁÝ‹Ž\<¢êÄnй/Z}’ñÙ$µyÄ 9•/xl>I'& " :vìd”/‰àÑýs ~eV.©ÐZB¬‡žxLuá&.ä+ò“ýÊ"°í£ž ªo¶ñ¬ŸÃ±ß÷ígÆWm¿e}=† Ðì¥û’,dšVáI÷Xꢣ>󔹕âI¼q£IuäáÃ’\Õ/<ùc²Û¶§‚ì˜éï¬K×v¨«¥ÄÔTðžK…};E‰L½¤ø1cëén'>±BŸ­¥ûòaüºcIpãÓªH–shx&ÏF騕 ‹¾ÏH_OGJëFÑ!~ÇAV÷Ȫ©Þç>¥aĉäØû%ÂWdAï"M7Üú•ˤðl*:ÄHýýsDÍ4¯•ØÆð!ÌØb2Ÿ0Þk’õU–i $‰<pv ½Âj™nX ô0\BHËÃNèjÐ…øïxšº{)Lž ê>{®:•m“åTCA^ “[å{÷¨$h¶“´®@qýìÑåú®lþ„aše&WZŸ;e²éª6„¤„o½Ðäg¯,µøÞ:HàpÕ<ï~4ÍSs©~ž]”p€ê ÈR&Þkk(±óÓ~•yzƒCÕÆtæ˜!9–=ÜjÅ-¦uŒž]¤½ü=„1 EfzLy§«ä³¿ZP1auT­£â‡¤ÕÇøh¥ìP¹“ÊŒ6Ò–Žõó8-+·°ÞéeøŒìÜóÆþÖËßøÑ!gÇt!ô¾uî¥#›Eû)Ë<Ô8½Ü:cÙ=OXjÀhg*“r¤rH´þgú[uŒ÷=RïE(" ™?§’â9¥K,ñ¾^9¸Y–"xxú¥ÛKH÷î«1‚’³Âìx¥ýý*ê¾¢Üö [¨eA‡úp‹ñ€ 7„–¦DøóÅ$zmÓ‡¸÷<`ÎB¿Ã'¡àf` sâhY1V–þìÒ¥l–7 vl,Eà`Qj×¥ìn%ñԷůŠÅÃkEnrED·9„xß-|ŸpE³B.áù‰mdã{÷˃¦ ‹êɯ*[UÙ=©úæ½q€Â¦k}¼K.eÜæ¢âxyË6áØÙÿ×+¦{wÌèE-Ø‚U®Xù;ÈFSå¨ceÒ{©mUbY˜Ûz?\}_Û”¹—  ΚYF˜à7ª×ŒêeKR›Ç•Hâ±wóc ~m´b+ë‹ÆF²ô§é‰-1£ƒ¡WB¸‹‹q5Vè é±OLØînûþ…ÃU¤ô¯ª>Äá˜ÖHÊË©¶",“Õ†?&kÚ¦ù£×4uL˜~ÔqN´åˆ^‘ƒo† žŒÙ6_õ-ß*=û˜Ü­¼‹*d³½7ˆ QƒàÈ1Äô\¦ˆ0:…vc!¨ÙH9ýÖIõ±¶úo† @–ó0S;vaÅÁëÌÊ@Fºc9XH"üS®¥0·›ñ†ÞìÆfJ UJhbž-Ø¥y»þ&c¿š¸sQ¡ê ‹M7EÍ^ð0Óƒ¾Ø‰ hsÂI>FÙÄCE—lõ‹F)±I³‰#wJqU¡™ty©Õ41.1Á¥ãN¾38ã"ˆê¬,?C©”R’ÄMt ÞýâïÛ-Fû^L©Nð$^Þí³;ã³-<ÏñÝñr# iÀo^lâÏa*î!÷¥S,%Vïìë¬ãiDîæÝ´Þ ŸätŽä&¸qºvÆzó)ßkÏ;µÔì¿ÈöÒ•çZÆU³Ý‰¬¿Å™<¢{'d +kî,µAbX.éQ“Ÿœ>«0qæ9ÓÒ›—w 6‹–4¼–ÜuJÆ€O\5&)¶ÄSiLEhÀÒªÞÅð~+šË–ê,åsc|“·"˜‘¸w%K6*Ã}jìQÕöÄìB›æP'=Åâ³Ì3$¡fX,¨kWmðHQ~#5r:š“mk0œ0hfu~6^RHzlæbíÇAi\y Ë7î»#·XGkfº’Ö£,« 4j)׳%‘"8§­JµŽ'¹G°èÁÑ#Ne·#Ë£‘ç*·k ¨¤½Ö½ü!Û“‘²­E'£äׯ–R¼ bNžè3–}— _^Ä_Ÿ`ícwõ©ƒö!‚{–«ÙGûòCq:L7Sˆ²“µï„KH’¨pD.äû„þiMŽÃæ¦ðÆ'¾-ð< rN ,ú¦w•Ù‘ëšns‡¤66ùrKš|ÂirÇ2ªDçhò´‚ÿ'•úÖjz·sió }à¥êJÂë†ù%Ò%M]”ÄÛ숌d×] 6ªP§:ÖÑ\—Ña¶Çå­òòlfü.·~G„zÁÐ*µ×üxàð‚gÚ|ޝm´Av+µ4 š­Êó,V¥–ŸË(XprÅ åd†1?º¢¸Ìê-}¢*9Aêy…«™’\ ´t:—ÝoÓ;sxÉVóÐn²'Ø6íØ:Àúzèè|èRªŒÉUÎóæç‹ã¶(\,nÌm‰Àܦòo|ùWZ“× {O„Y1é©\½èÒU/zë†z* ³ÕŸø>†± XŽ%7§,"ɸty¾*X==æ [·û! œÑÛ¹d™¬& Nocã›°„r¼q“¸ý+zBÖJ3Ìíö÷”±¥OkðàW†ÕŠ")<œø¹«øæeŠ‘mˆc¼h¾ó>.皈¸šøä§vg<6ÕºH¤¯ºšNÈõ½S©éΩÄõJج¼"æ§¢ç§Â…‚)"•gËEýI=_äËê %û – Û‘œ]Ü ó: ÜxˆÄWËŽ Á:ïX Ó—\Ê1ÏB »?X"ïúbKMÃNªè¤¥ìÞ{ÏQ¢C™+£†ÓõGô)Ї±ú)átÅT)£’ ž¡ÊnrîúiþåêêÄ7ƒUY¨{ÿVfmè„è9Æ>Ö†O¹×ðf#†e*Sü{¥ –a¥Ò$ïÇ+·8ÀJäNµçS@=é©£&SKòѬ?׫´X‹Ÿ70U—‰ÅÜ`?º½Ê«Ë9z1½0?Q".ž~V/«„,H\%qU‹Ôd>½ ‰å8Rêä]¤5ÓooU韬Þzù“~ô!»†š”:ž)y†`6Ó¸èÝÑ °}³B/¡Åòà²!ü¬ G|ŠÝçamT­ß’´êλ]SØ6 )n±VYXvWx̺4q:BCoxK|>hîʽîle<ù|þ½èŒÍ ¼­3¢’j‹®¸•°ºðc%ÃÕ»XûÇx)/1[j‹~2(U¢(ûˆ”1O3ÛŸœÜö¨ƒ ¨«ÎÅÏæ\jñøÔ×b±ÆþáÉu ?Óv´÷ª‚#žb|„ÁiÕÎÜSÏZ–IH÷äÙ=þ`ÖZ¶\»^õ‹ø1z•»£¸ý…⇉•¯ö¿ŽHÔ²ê^)³R¥Uî7úö&]*Y«] ÒªV¹3aΤ àª*}\·o†µØúîüsU›¡JàÄ·4]ñŠÎO Ø­y°„PæÂ‹\L7ËÛøŒŸq”fqªˆìÞêFãƒOä×w@2ï‰5y›z‡ÍKˆxĵïÕ¦ÜY9¯®DÄu—¯j·DMè/ªo‹¶µxIf¾m¶¯+Æ¿D™y Ié#9Ž{"'dØšXXÒÛtí³Ü/ ²š˜ ©ßNäí.#ê+‹9“ÔØt'X) ¬£…?÷Ðë1=\ 0½c>T5¦_"úcÊ*îùͦbÀ6/s•‹4®¯'ÇY¨rRò¶8Û9íÙ‹ç†;â{³[œÊ"yQz: ۹ث_ޝÿa[f˜Ñ%MB]¼}ÛåcßNÚn/RW—l*g÷#JcÁ Iû:Ø*x;iì½ñ#®yvDߘé·Öš?&ß$ŽáŒo–ÜÚ¤èzi‰tà‘Uä÷gÜxÀ˜YÂãƒ7§zGÑ=^v|p˜ò+GfXê~Ú›–0½ð¨yá’3J¶“™>ìGÉVE¤O(FÙqÒéß“ÓÞ°˜Ö«AÅ’ûP4 ¬H™H¯V¢±tr’è'M¨Ï *Qͻɶ­E‰òaS?uÊ}v{exz™ç¥·'Z¿60.Õ­•¶2Åÿ`²—0Ù9Þ—4ú¡É*ýýL!-’·ùëR×9þç³°K [¤âÊÙââ·ë–ì‰+ü‚—Bþ%íÏÇ4?ºÕ\J0QÅ/BUÞkÉ¥íêÞþظÐUr¨~_Øátë´ûüAOòýH-2_·æ/{>çx:x·, %°­¯ô¢Óšvk¿AÿʲBŒÖ¬udbýܪW•ðÁ´@ö…x#ÊÙ¹Nøèñ"‹-3=º…XcÊÙË”hͤ­Š  ‘™p¿ :ÐìÒHP|Þ‰mzAº°š°’‰O–,üŒÄ±jaÐDçL;Þô—ûd <úÎâ´õ|ÔvÀÃmþ€ÅºØúR7ñÂkçÛñ›ýÂùj¸Âf›ºË݈mu]½×ÈÝÛôªM‹›ƒzí>óY1´Lƒ²zº åN;Š—d|¾D’?pÓbÔ$ß„²6àÜpÔw‰’öt:@®»F-OLçR$åÝ•¾µw·q®úR­‰kþ¤tà@ö¶r¸ï¬‡TÐ|AÑp»²mã=çp‚ÏÖWuZ¸ár$•ê³2Ë{°2œÝ]ìqN•€ÀdòáÕöG2<òa¶Çã¨k´¯LéÔsêN¤"ŠFJÏ‹nø³Ç8oPÉÐxªêC!*>ÕÆ–¥?âfÝŽI"„|í>?ðlûcÙ,(Ut5¦¹·ò“Þ$­´‹nY> ‚dªÒ~ZÈ}™2Ž<Ø.[š+‡ï¹-'ŸðŠÐŽYûøË`R鲆?ð`'åÇJº •dÐÊI=l9*?+Z¶¨ê«hxü 6ÎmŸµVê;šèÖž¯šYSó3Ñ×—xaCÕ?™Š<‹á:Ô!Íp¶}…)†»í«µæ3(ÞXî–nð`Óó¹ Ýñ‹1¯O=X+Ù„c ¨Ÿa¥*ÐÉ’³nj­¨ªåŸÅ™†!6ƒ-:5 ¼MÚŠcÄ¢•¹ÆT[õJ<;Š,\RÅ…¯ê¦8JÛóvwÕ^yƒäV«Ó!zÑ]ï®vK”óÜKÝNe5Ÿþ<±‚—œØÁD6ÚÔÍ•Võ÷œ.¥ÛººkÜŸ4϶a½¢èBžÎ´Æ=(’Îsz< þõK²´å¢u[èøû ‹¬^¨ n| ó¬ Gà9I£ÞÓ`i¦ÿºäíÚ endstream endobj 127 0 obj << /Type /FontDescriptor /FontName /RCBBTH+CMSS10 /Flags 4 /FontBBox [-61 -250 999 759] /Ascent 694 /CapHeight 694 /Descent -194 /ItalicAngle 0 /StemV 78 /XHeight 444 /CharSet (/S/a/t) /FontFile 126 0 R >> endobj 128 0 obj << /Length1 1704 /Length2 11584 /Length3 0 /Length 12679 /Filter /FlateDecode >> stream xÚ÷PÚÒ ãîn ƒ;ƒ»w‡@pœÁ×à„àÜ=¸»»w$X‚»>ŽÜ{Îýþ¿ê½šª™½ºW÷îÞ»×® U qsS´ÂÂÎÊ&PÒ”cg°±q²²±q ÐÐhZCì@ÿ±£Ðhƒœ]¬ÀÿbH8ƒL ¯6IÈ+QÉ wµ°sØyØyØØllüÿ!:8 $MܬÍJ¬y0È…FÂÁÑÓÙÚÒ òºÏ–z3;??/óŸáq{³µ™  d±Ù¿îhfbÐp0³A<ÿ'½â(º»»³šØ»°:8[Š00Ü­!Vu ÈÙ dø£e€²‰=èïÖXQhšVÖ.94, î&Î À«ÁÎÚ vy q›ƒœ¯»4ä*Ž ð_dſ̀¿ÀÎÊþßtGÿ‘Èüg°‰™™ƒ½£ ØÓl °°¶T¤Y!f€ Øü¢‰‹Ãk¼‰›‰µ‰é+áÏÒMÒâj“×ÿîÏÅÌÙÚâÂêbm÷GÀ?Ò¼³Ø\ÂÁÞ†¸ üQŸ¤µ3ÈìõÜ=_®-ØÁìýda 6·ø£ sWG ØÚÉ$'ù7çÕ„òÍp³±±ñqð@N‡™ð 4=A:Ùÿ0¿öàëíèà°xmäkmzýAñv1q ή _ï;þ¡°³Ì­Í S¥5åŸì¯fÅ_øõþ­=Ø^ÇÀöÇç¿+ƒ× 3wÛyþCÿóŠï4Uädß1ýÝòïÞ9x¼Y8¹,Ülvv.ïëÂ÷ó¨šXÿ]Ç¿båÀþ¿Ê}=§ÿ”ìö÷ Ðÿ-ÀÿæRvx\€þŸA×gãf3{ýbÿÿ<î†üÿ›ò?²ü¿úÿ­HÚÕÎîO?ý_„ÿ¿‰½µçߌ×Éu…¼ª@ÉáU àÿKÕý%]%¹µ«ýÿõÊAL^Õ ¶|hv.V6®¿ìÖ.ÒÖ sUkˆ™Õ_Só—]ë½ÙYƒAª.Ö¼0¯QllÿÇ÷*23Û×WÄåu4ÿt^5ô¿ûJÍÌÿ7ÀÄÙÙÄåõ®_7À›ýU•æ ?‡d;@^C¯=ú,œQþ¸XnPüÓŸˆ— ”ÿ½úþ‹ø8@õ'¨ñ_ÄÏ šüƒø@³ÿ¢?ºšÿ ²€ Á×´ÿ‚¯y-ÿ_ ²ú/äz-ÈÊÓÑêõmú‡ñj³þäíþ¯zþ‹üª@ Ã¿àkvçÁ×T.ÿ‚< ä_ðµG×Á×&Ýÿ¯™=ÿ„ÿs=f®ÎίoÕŸ:z½»ÿà?FÈd†²¼à`&lSÜ~[-NêÎòc’ƒ }ðüÓ%’ή±ÛžZ „ÐÝg~ä’x÷ÜÏÈ»-œ#Ž’—&Û÷l¶†›>©‘Ëõíð¦;Ì>Ó8Â÷G.Š®?ººôŒ9Áæ–'ÍêÃî—b³ „ÌNg?æ3d„h›+o*¬Né±¢ÁLFE"ññq¢ÁwˆgtT¾«Ÿë”£v9›üðFúà.u`ŒƒûûàJ3´õv*éá!º£Âeơȗý^ãiÀ,Ín¯ÑC,}àe{ðGzS—q Q*ÁL¹ÝésÙóÝ(9uËfÙ¡-ØX‰­XÊÓ-dñlSºï†‚Œ]’%­Ÿ–“4 ½8¹éÊzËËep…¥‘Qû—¥g~ײfc+ø(ÖŒÌÄjº$eΦ2¥ã6ªj\x/²Ï˜!E9G[3¿ëx³ã¯•…h³hg´8©Ñ*hïÔE¥¡Àütöðöˆ*P»€Ì‡gêx\†ß:?eüØNlƉAÕõ™ßç8,°_ öëŒEÉ„÷/ ôFdÕ˜ ¹)R:šÀjÜ'³”åYî5†ùBÎ۶ż‰i“J§ug¯2#äP‚|Vó\°g¬-fŸZvÈÆÂ ^‚ë„`‰¼k~Y¿¤'Ûežê¤¼„¼Ñª·ˆû„Zî;•ëehÆ"ö5É;¼nŒ§×ïdSô“¼FWmYÛubÝ¥u%õY­Êg”¼4òlíeµ8Ñ#¨õ}$¨óò¯œ)ÎÊ}vY*ÀD.U_¹Ž±sÿT-gõ7#,ž`¿  1›=õäÁü{7FÏ.QGªpÏËàJd«÷ÏZ‚$…¬&ä¼ï‡¾qÃxû!*¥zíÉ¢vinc&]Ù%‰ö?¼ÙNC0D™W´ª¨,zƒøb½Í îàÑvî1‹«6Þbª_þRöð+mïLïíKX`}Ró 4úœ°²é§lUñ‰†íÄx%L²âÇSX´ÓñÙ M0xvý¾!§$C ª Í]ϼښó¤W;2õ'%5=÷<†k¢úÍq´ñ’̇r|©%2%~ÚÆ!^"'$FáÅÆKš„§lL$¯ø|yNiqš#±XÛœèoä[ßÌ0åY–ý9Æ®‡Š„ô"h6ÀS:ôAxÜ®r›´ß6Ìóå ,tªÛ!å)wð‡œäW0¦ç¥YðÚ0 3~*W¥• èû´‰ÆOV[ï]dÄ)ëvhö0ã'R(g¬ŽÛ„^¢µyyq*­¨r’¨HS5§¦>åBÐà% ßZf媫?qæ­ú*™ù÷ž'Ç<}L•)­ÒZÍ€ <êø© 3­ m|㦨ï²wûQчº®ÍK§µ· *KóuKDN‹?ÇsM¦ÃŒY X’ªY¦ì™ B”·’‡ù)[¨ ¡%Ϩ‡ÊÚ3p¾{zêçJøU  ¤°¼=)c3ÕÄÝ/g3EÖ9$Ì )­iùP<<ÜÑ¢XÎTMWPÐ!ÈØÑL¿;Fݾ†Ö~ÞK€>]ª8û9Q¨Ú`f5ã™ ö£­ôh˜2k®ý éƒÉv¼W]³l"[Œkæ.~@Í´FÓªÃg ®1"%7ÞhÙ€~u f¶n¢³LER‹'€¿fÞ¹Ï Ú,s¿Þ¤ÁÒ«¬rÓxê µX¸jÞ×lõ½F©KÕËú3«ú~¨¥‰/i,|¹¥Ü.¯ÕºýŸŠ“>”RÕî¾ï~f tT²UrÒ:^¸…p© ¸)|qï¸dKÌù¹u]/@ ²êRLê˜Ñ=Éõ‰u‰øŽ;.?j{N§¦ªüÍǺqƒÚãz‹„Á£¢’ôghq»Â"Ýþ3öÐË^¹ÊÜáÈ8$hß.˜Ç¨9€”¿¡0ñ.,ü‹³yrÉiÔiFM×ù–mJs‚xãÉíOðӜƤÔX$ÈÑ'\’šæ^$?Vœ7è Vç$Á¿7¡Ð]Œ>âoS W«E˜LjÏ›×mWB#­÷2=¿Û[ƒÁ¯ºÓ!¦ ’;; \#“»rÌ¿*Ƶbl)ô1ëÀW÷íc“ž_aTckÙ–èp,ÈÐþˆ‚Ø1Yi Q—iZ+-5º>Á]šyñ‹žÖÏz>ÖÐ ~Íå¨Yû}x9βtëÇ[A8`€uõqâй¢˜V-i‘íCgúŒ¸’A–ÅüûŸ¢o#­[nSž‚µDîO>æ­ÑŒ6?ÑÏtkŠÆ¥N°â¡›°+±ֻ7Ž[›„†lÈV”?ÜPID±[ “"VZ¬3 h&ÔJÉ„ú?„‚Òå\¥ð‚D¥I-Qg¹S{\øËâbê1(.§etû©rN²/w»nñ:ø¬ŽlÞX#gHþ0# ã³%c½=¶û]Õ‹éc烇VZ,¿]K¤K¥çP5BÞßÌÖÌÝ¢Øé÷K<.l ä'mΠóa™u ô Á_à†íŒI'’ƒ°¤"¦&j9WR0 ‹òÈ’nûÙò¸“Àä­¥n"1ŒætèGÇF&˜q¿­“©.çAyÁ–´™ð-yކÃož¬ìwH;Pt ¼Ïtl{{Pú%‡8J²˜–Ý›ƒƒûÒLö‡Î‰œ µ¥ŒxÈ{RWuXEòø¬£À±’Âws\Ð?à¢ÇUí±2û­"@v»Ï]*LùG›7î”ÕKƒÛhØH¶N†XwÚ£™òõkæ¥JxbVÅwýÍ GC‰Ò9˜ÎŽ3ѿԊ}i¨ …-·êÕR’½¼kq·]ë²GÕEWš*mí.CË1jZH,)ô>ójZvò¦ Ömn6ðUä} Wè9éÀí6%ÄÀ­S‹ó|Ä)·¥7d»¥oú–ãÎÿ´Å^Ö&‚Ý×é©­ÜH•ƒÀgÝ„ïWáˆ_øØ¸m­êö5—Ã]‘ÑÑ^Ö/²ïÂÂ?°ñ£/R ÝÒçâÂ.¢°.ÊG6W'ønµ¸?´Íb¢öÌ0\‚„íG·ïG^žšÙ碰L›`Ð%‹øŸ}ǤÃ`º*ØnÌöšvÁyêkAÝr×áŽõžÖ¢ã^ÜN „: s§óÐ¥õ§tµLymžèí‚TÈ#7-ÇÙÙQA{“žÎõs—’š€êTûx·þq÷¤{ÑuðÂM̦YxòeËH1I,´ð¦Ì½Où[3B°¯ôšù{A¤–¸ÑOÇî‘C?O&iZM”JÌúrü€yÇdg¦¦oý˜ðÓÓ9œ6Ê-,°Õ£ƒ±zŒáá(QÀûxŠ˜‹ÀO¡tîQ{¨H_ upóMjK 3Â#Ï>m¿ÁHJÄ´;æ f¨§áÞã1-Õ‡ÜtZ>秇£>½vRÔZÖ£ÐYô‰:Õ¹·E@3òôæ 7W´ð309ÌBTPO ßu¿0{}¹ðŠœîŠ‚GüYTEÃN‘T5”ÓX]ªCéè:õH´¿4Qwf/ÙÜq~|¬Æ“£G5ÌlB‡4n¿¨²…FN(@pN¼ç»0-ßÕ=PÎoßœHZÜRlm ûDÆ—ª-¢Àî<ž%Ðw!øÔçW"ƒåâöÖÆ?u4Á¶\Õ’lxJT'Œ°€yqkd õ6§±'Éë<Mó„™Z»t†ÛfâxUo³á2æëÍ‹?.÷÷ÎͦbHðü˜šÓxåïåÔo2¶f“×ÛÇÞ™È>Åê­w0OŠÐX¨û„ƒxnâVûÔƒ˜ôܹžü"|Gâ||‡˜ìc·Õeù£*Ãhân¢¢‘)‰9›mó0;-qÚ¶.Âvn¦SùÐ0|#>µÃ}úF4Þ§ßJêDhi½Èäñ3®ª1tîµ;4ģN´ó™Ö¡f㩇%}ãÑÚ¯d®÷3AŠ>˜ƒ¦ß [X‘™†RÆ×MeMkrnñ8»¤Ç¼'Ø íuL.m¹’^9.gð%χ\L=þ?DÄÁþŽ÷šÀ…åfÚ÷/Ñs#…빫šÑÌbšA!‚îå¨Ï7¥sÄÙÇÕe^Ãí³Å[S‡^ ù$ØuÛx3a¯¡Ó+“Ý;YãycjÂäk®~ì{L”©È-Ùeà IçEçifôqoÒ•Œ›Ñt‘ˆÿQùûlT=í\•ïJU&#ÒÊï}¨ð^Ðç¾A¢ð=GFÀܘA7…»xÊ/RÛá:M%!1™Àà¨Ê[U> âòÑòý‹ŠqÀM(Ž`Ãö^—B—>ºÈæ›(ꔹå‘O‹K¿k5”ѹ{¥…7")¨ù A>#K s–5IFÊ• j0͸Wk$¹%™Åð «úZâ]ÑðæBbF„£õë•§(ÛÚÁ‚J9“Ü^g%û“äëÁçùðÅ¥ƒ#wkûžý>űâÜëm³"¥¦™[‘xY¹ l± ™QUÑáî)°oMö”Fv É""ÁÀß2dz;–‰_jú‡f?âxóðO‰úÓh•–¡u󸕳·èçß ,ï„ÄNŶê8¹ »`;ç‹Á0†Q|[xœ!ݧå_¾_ y6y™ÿxÔl Ë¥÷xrq(Û4˜oGßÒ­›!,ú„Íc¾ÏZlO8©ô,&w ‹JïlQ¤/ñ¢¨?BúmÝ?#·?€ÔÔyNp—ÛÎßW¡r ¦ 1ãâ:oeû~=ø‹Óüjæ‚|æ2Ãî}/¸]íæð+µÏŽq6gr0êHÝa?â-ß]TÕ£–õG}ïÊÙfmÈlŸ´I¼æE‚x“ü\ÕÊ.3ø†4º=?÷7q™ÏÞîàwü+>9‚÷X³¼SZ~WF=ðê'tÃÆç0kR_]eódO§Ì_àWšñ >‡Öãsç ÿVc¦=‡^"(_N/꾩•¸Èš4)Íû e¯¢TÉaQxÝpKj‘5gD¬@ñ£Ûw!^MÐÖ‡k)!žWAðZ*Èzý92¢™ö°3_‡Ž_öÏìTí«>b7"œ¬–9Š™=ý{ɸ&\Š¡G<”Ó2 ‚Þ›pPÝ£ EúBÜé—©¼a¸µõ;ã…û‹ß1DÚWBqo™¥7Àž²FO†‚Êž²ZñðÀu*J†·ó/f„ÖÒ±€ÒnŠ©tk÷¬Dâ7Þþ‡hž—ëh¦>‘ÓD¨XMm©‚5;I¼¸¶= ‰»™/ Gìç_våMø¼Öuº]òǧÌ%«á‘ÞËÞãd蛯fÆÛtú3pz¬Ñ€ŸèìPøþ *Å÷UöêxúërÜŽÖø*~Ü"Ó–bº«Ü»IL$3½üOß››ØFêëàlùÄ0#ªFÐB®«™1œ’ÅGzÖ`$"Z¸”ß•¹"wïxB0§½ ¿¶ 'RF'³ŠöŽÇÏTÍ×ìÖ>Ø­Ófìá‘àD¨ûÅ踿£È¿Œ¿y ò1Éq»ëȺá®ÕvjQ}!¿ Úú¬LLÔ³ÓrÊuž:µÎ¸ŽÐ%ì­—ùK‹'ÆI‘fb]ø©úEÛVç6„íê[îäRØ]¬ö½ZºJT½SÆÞ$¾ëvÍz‹äG–¨'šçã‘iÇ´…¡blŒ¶ÚMf¨Ö O%hõ`¹¥•IŽ n0 rJ¡cAì>xÜd/®<Þ ¸}¹Óû¤7¯;£¸ªrVTpã)ÿU-¬[–ŠZèýP»²ÊÛj¸ibŒŒcò—:qð„™Pî¸^ÀIm’%.ø'ØéíQ |x9ŠÕ;ž“:C›–ƒ2ϳ"¦¢µr_ãUB¸Ð6.¿«È—œÞ\×=ïE9§ÌÍJÂF„ñ½µmyæ #ÒL…;f¾W+ÒÝC–ky8®{'u/ßIëÜ®gŠL0Z­¢1(8çç$Ío6Lu[Tnf–BܺÚi®8T`Ê6˜<Ö…™¶a5 ·xZ«„'_<aœ“)C•ŽY&Þñ” ÙÉ™½·`3g,…ñä-¤Ò~Ï“²O¹ÃE±ªËì¼Lˆ‡‚jË‚¡† 8RuÞø (¦Ô –Î*ÑE`=bë(îðó¢‡ÐÐQ•&įRç«n–†>ùb˜¾ìp¢wæ9VcÂ] qKÖà®­¯K“7"3ØñÕ–®ôSDɃ•Cd1qÍûä–\ä3µ\vÀž÷ê°LÓ>r¦ÁÞ¹V“hR¹áÜAÀÌé>|o«$r˜ ÛßÍCkP2*êÍ5 ¤X&Vm0׋>®Æ"fª†~’@•nË:¿`Pœ—’\Áê]ûvB¢¡1 å@Q1@.ÓOCÔ.?\>¸ Ï \ t“G^7BÊE%ŠêT-¤ ‹¯ÓÆ×XM~'ÓKP,mBKšö\!‘§#H•z,ÛÐünžÑý=Ð{¢ óÏ~žµ‘¼— Ôµ…ˆuæ°òûsŸß¹ õ© PYÌ4`ý}žS}9Рª\µŒbÆÍJúû*ˆ©he{.¿ žHØË¦76pJ¶}Í#íµOxÁ˜¢€Ÿ“ôî_©!þHd8µ›å-‚!;{(ÝiÖ¿¢,‰/qº±cM~à’0sºܘDT3U¥‡Ã'Γ˜¨ §dEšl/u#ãø>k.çz'ÇH°d×õ !bDÛ…Ú^[©¿˜’“)’ñÒI”žðlQæNjj âcüòH–6>"í²'sÓ(¹2—é½ë5CÐ.ä3O*pêÏM8ã`fHâø¹ƒ|-òú{¾2Ú•±éwÇ7/pƒ6Ÿ‚Î8u~v«Â=ˆ\>Kå`˜†X`Œè3x·5hZàC¬û_¤·ƒËB ÉšŠ€½Ã?­;z×õM(·ñѶíþ>– O)µøíª @Ô%uò;„ã³ As’»ÁŒÑ°ß6f>1 L}儨þd,õ\®¨¡æ¯n#;Ú¤›·q<|KA©g 9Wi1E|ÒªöÔÉ/"¦«½™%|)¡9' râ žÙsp`¿`v;ê´`G= Ož´}uðúd?«5Iuã}‡¾êü›d§×4AégÀ7ÁTWIÏ žb7ñ´ß9R d°õiêÐ[Øó’×0ÙÖÞ˜çëi‹bû“ðôݸù]ŸÔ4üîY¢Q/ 2LúÞ ¨ÐÐÎf/ÅÁò…S_d­$ζѧÒo3SêjðB„r»È4kc¸ãzªõ¦„¥“˜äb øiÌÒOàHi êÝÇŸUäïG¯B±¿=P1¸Èа3¯ôØåX”ËåolÃg+Çe° ^2+öilIùíƒp‘e×â?ò½/0ÇÅ( ůi"•´y6 z¨,SeÑñ’GHØl¢ÙÒ+Ù¸Gñ"¯Š7‡Þmc‚-ºÉ³sÂîl´eX;¶.¢®S™š“Ϻ¢Ú)'0Y (‘¥óøOµ®>l!ê Œýœvd©"гäZͨÁ¥ªE\Ô¬Ö‘•;£½ëuœt˜iGñ%±f¶à”Ǹœ<£¡¤²›>›XÝ¿k !mž4‹¥âÐ X:êSRpÐ cwØm‹"»ªø#ÆjŸUL$T'ìpá½, 0ቚ®J¹W­3Þˆ€(ãâ éD\„1î—ù„HYifhši!U_D{© ºLj Í?T l’P-߯ޘÊEÉÔmŠ8!䟤OÖä&߉‘ É¼sAPðìqíËo#Žãí[k½ ^Ìb† Ïã¤õÈ“pž\±³èª¹áþ’¼ ŠÑÊN¼ä´+µå¼d#›£„‡ DÔÎÊ|È¡áSrÏ/uË•à¯kñP—gE„ËzpšL¹ECK­F­#²“up»¹ÐãCQÛšpª(zd|— Eµ{èv,ìo›È>CëiÚvT ,~P^Í?kA‹V£RAî{êBM(z(D;úÞIÿÿ|XÐî=Mj«åÿLñ#Û˜RãhãÒµÃ+*-¤Ç7GTÁ½ÍA­^Enå§³UQGwø…©þÚÅ“¹Õ€?§`PãÌ„°öºhAâÚQJYUK…t«º²èíøe ÷b´”+%CüÒ¹Ñr5¥5‹ÁäŸv,¶ 0Y‰ð)K;ì,c²×òLUŸV|Ÿe»ìõÌ5d£>Ä¢†Ämq‚Û/Ÿã'–Äß±›L¡L{g+Ciÿ^ré\á µôWëY²SÉ„¹ìÖIT¨˜)8‰ra‚V,O5Æ¿¸6¨H¡†™Ë¯bñšb¸T  ƇÉó­ À쥒jã°¸ùlú-‡41Ã)•CrTQ?jšW®‡‹ñê‹âEè©ÅRÏâþJQ€|¥Á6ß~>Þ°ÒÕT'‰7BÛ,1ŒÝ“<"N©(Òï$Hu©U §ÓgOrþ{a 5¬°ø>¡rïö+–¬ð,LP]VbˆT\iݪ/ Å7#{¶§xZ~v÷Ë0[Ùг,IxÜPû& ³b¡ÅÀ‹·PÔ8a=rB‚Oˆ9·ð)=ÍOÌ'o·¶Q$ I—LÁw{ªCžè^m5zxþª DÁxÁ¤’2®ý_ˆÝh([Ÿè–'] Ž6…­õgm-¨úzQº—¾"ñ\¿Â̾9o­•LH¥0ÓÝ}õèp.Xü,‡£«*½l¥Spm©:{ÿ‹ŸzpÄ`»xQG–>.²¼„Ĉgü3Il`\ÓÚÓûX&3'ñ‘¾{ú†¤z->ÇîkélgNë?ùë5Ûc‰mFªzYÌ‹?!§$ñë_àa𽪠sCÈm$o¯3 Zй¾ÀIüÜ}l¾½\±!x÷%DVþdê;kåÕ£b©(é©áŒ†×# 9ÖîûF†àBÉÌñÊõ¹+ ‹‰âs¤¤3&´éD”=ßrÏÂ)ø™(kíd·À†sO¿3`½Ð­›ÁÈÁ FÕè¢Ëµ>ƒžÈÇ™£Î}n•­(ž—YÞØi@™0c UKK{÷Ë«÷u}d e8pÝ©ä°_Üg^LªI›YçŸEw'ñ»¨IMC7^íüË,Ûä†A[˜%›*ͤ \†ÐX˜ÕXý¤×ÿyâ8b¦ûº6¨8¶o6v[^•zE`àð#‹‚@e )ÒÒ&Š]Nmr†M­~Jön c=£ÀÚ‚/E°30Z^ ¿a\­ú Õz ¿\w)¦æ¼aØ1ó‹4¨É/ )5“¤ øq”§kšóòQ´–ë,J–Ty7×Yá·üoY>0<…PyÒÏ“ué.鹦Ã]MÌ·;^ÏÓÃIelE3þ,cŽ¢³Ç|hÓš™Ìîè PÝ m”«=ÙJ¢øðjD\É™¢ JD~Ï' eÚI«@!ÿÛHæ*$²Ñ¾&°b©DzwE&Áäiv¡øŽ=LŠ›yP1­rAë0gš ýS ˜GM0›Ê¢B&úJØJ€q©¡!çeYØ÷œSéõ­*ŒJ™£7÷{ÈòÀ†ÝTš‚‚¼Ë®Œî´f^)‘VÊæ¶ö—õFTæ9²$j°'߸Û2 yÇ>9e’_±Á@¡|k£@®¿uÏÝkÞ,˜Eüþ!A¶ÉÜ/Ì‘Îc^ÐôŒ öm=!§àØ“RITáQ+™ñ]²_²OÊÁW ß뼯éHÛ…!»år´8Vò†–Ÿ1¡`Šó±[È7ÕÑôy½M=IÂ屨j:DÊÕ“¤·ïåùhîEQËõ:Ñ‚VEë”—j@sGòÛ–QîoÉæÙ…ØjÇŸÓ¤HØ­clù{‹Ñn¨BZ£â³öZÑg»[nMªwœ(o¾³.?$³|îéf´ˆ^´ã“²#þeeì|D@ÊdöÂ/»d4*H~FRŠ$ŹaÒžs–x3µ‰²}_q!òӇI^ÚKƒ<£:4(eð¥ãØEcKe+n+»*ï‘­s:?XœU¼¼£0ï'±Tî"Ä7zÙÔß'ƒ·¼c¹—åøsV6û¬Ùv_¸¶¨»7ܪj>íØû”m¡·]Æ$ y5ôÐs5"vrbÊO pýàñ©ˆh<$5ã–Rmh8åøD{iÏúšÑ% Yˆˆ­ÝŽ'±F'§â›³¹¬ß.ãm–T|Oû\`Çb'Qð…Üæ8nëµåïÌÂ6‰Qq¤'Oψ¨†Q#u®éÛ¸pŒ—Ђ>Ù~ñžÝéïsHJåÙ¡ÎG¬m¾úÕsÕ…m×y´ô6|爪¼°‹ñãùÓ`Œ}¤Äx'úh}c²?<1UßR`LÝÙZ_ÆÁƒ_›O>›W×§ íJÚäLòˆH£4_ò]Þկϳ¹GÞ5ÍÚ©U>ÃþÄ8ñdš ¼=FI8ZdJ3謽æ›ãXEIÆÊß¾Õ]pÛ ²†É„?¼W;–#Á{‘iO—yŠ»„vvòí{K ÂNO™1,(YµµXgš>´_0^æl(Ì«‡3M84»·#¿ì‹G¾Ç¤ic&H¿6šNÐåR+ð÷G÷Á„ö=ŸÌ…à$á­Ú»d¯÷.ÞÚöî” ™0qøòÙS O­¨û­¿Ž Ãö]U&%XÓ‹ˆÍwì/‹1~¡h2ôp5݉;€1áq-Ç~Â4ŸœX7rí+mcRέ Þ~‘ÕŠpPÐxfGòúÑ2}èLÑm»êh ·b7´ž¨_fÛJ…ËçkSqÁ«?5v3‡‚uÊ•AU›£–nCñ =–t¨Ì–ê๽ qδ;ûÒ¬¶*ìýØ2ÃW“£Ur™É®&{}ôPˆŽãM»KÜ>Ú̼Q6Ö´d²3×cÿÌú‚žºÂcVå皺61„¯"ÕÝMöwd÷‰·^o’ò€GÖìÑõJN­æÄÄ<ôÏÆçhÉrúåÚž‚Š“lšvHW:y=c"o6%}Ñ5K{Uk§炬8à¾.Gù¼‘ÈS¹mZ{ 5OAiú-aC+žÃIBzìÊ!k•YÙ§2êz÷nA7¢pp:‹ù>Øçôx¹ª¬–Aåü¸‚¶¶õ‹œîMNÜ×ãüà,›}=~§é!x×V.ÜÝjT> *ªR»&D,6x2¡JÕ®Q:Ž_NòUeê²Î´<›?*[ƒÊj{léñÈz’¸†ˆéêƒ5¬Gqñ´Õ?hí¬§0ï:µ°uo0U—B} Íšú ^i—Hx§xãÝÊ€aâÁQäÄ…²}7ñX¿èyB«ÒRË&Ùký°À£® f•=‘ÿ&4Rÿù,¼ŒX}¿¯0jî­#º{[#ÿ¡o¼ä=eùêûEþÇ=;"¡=vµ | yI,§¡,ÃŒïÛÐP²“Ü1 nÍ´w°ƒ„³ˆÖ= G(ìsò—I~ut=ý:‘9/À  0”ÎÁ"úÐ'ÿÕ’²L¨š&öt[¤eŸ^P÷{å3”Èl¢<ÆE©«Bkg eà™‘¡Ö B!…ÔȺ ùÚ¸À]GTÖ=íãÜç(,K´ÜMcèÒÑØ—…7¢èp””L€®~“pÀ&ÞÏFEû˜w…˜QÏŸbYÒ·ÅNIª‚Ä&ëν:ŽæWLÛòZKÅ šìz]þ(bœEíò$Æ8‰$aüÔE¤ ·®†sSÃï*4Œ¨ú7Š>Êi›åSã?•ó°›,¿!]â8$îŠ×þmÚ mŠj{eìw_TÙÆÆŽ‚YâïQþ¶€€ˆ°Ç|“Á©¥3#hHœ}¾ uk›îÆ(³¸Åøtñ±¸è ‘:ÍðF¸—VÄD%R ›âÁ;FMHäþ®¨ãS_-õ)̲88¤™1;«cëÞïw×Y/øp¡ŠÃchd+}5qº„Ê uûN‚MÑïqòõ øf͹¥íj5¥ûKûaŽC¬µ³lµîúaŸ«FäøeQ(ÃZ½ž¹¤‡"‰¹¤”ÉŸÆ_ÕMewˆª¤"ßæžÞ:âV¥²Ýù ¸ÎF£&ß‘ Y "…@‡‘1‰é¿[¤r*]=dy ’Lj%ž^9.bH©H™ÄÛì9¼½ŠK£OhM÷áº8 N{;÷ô[Ö'$-¬´`3€»¾xzsÆ|Gvñ`-ŒsI–ÆŸ™ªˆ dßâÊ‚Ý.š›þÆÌ[ë(jvg$;/MÁZØŠ-#ù«°èlŬ¸1;ðp_N¿Š5Xu·Ú•š~ê6>â¼äØéQ8ƒ™+Õ3èy&öH”–>ñÅœ'~ÌKM[!Ð‹ï ¯œ a  ÓåÎâ8Êl¨=«h·øÖïÏY¤h× àÈÙ«AÐY·vÿXkzýƒÓG.¹"82©(§‡ÎÓøDíZÓg:âjf gaJ¼©b‘Åues8[}FãÔìx-ÖÙLQ!GþS;;™9~Cé|zX S>Ÿ|2w$o> ú$î 3Ótì,ä)D,FDÉÀއ˜ï¾N0žÍ^Î^ ,ÜOZ|Û.QzàURûU±ÊtåÛÒs'fÓ9¿Sö!öb¹ñéýJ†á5M¨ÌiJËÃëðkJáá*çr'åEÇù÷‰ÙÄç¹›˜qXdÇú OØ#˾k±x)7Z¶~"î4µA­Ìå/´þ„ÁTD“ppĺ5?˜úÓ7²X˜À7k™8Y¦ì²_l ˆ¾¾AáпôLk>ó·³ùÍþ.IÙ\ ò”Xzb’À@š}ô[ºŠK[À7@ÅHiDmyÒ伤âÏ+æÓÌ0ïßüX¹+ÍG:ôI¦Ì÷Q òëJÝYµN¡"àHIu$?¶q'”ÿÄÇ19”>>tjýƒÁñK«<´´÷ÎŒ84îØz8Õ¹æÁ:¤!‚7Zðßã1͸Øá·è;ñ 6 ó¬¼n¾ØÞÒ¤ìØT^Y%Ô•"³3(D7øŸ{¾Åô½X¹­;˜–ª ÒU£‰â´ð†\ÕgzE’~mê.Æeeá½qƒÿbµ…é’}£‘.ÆRL°5ß$ö¢'Gk·Ùí‚öXéÅ–”-Hý¢cwˆÌŒ•^ªöì¾-Øáoì‡Î âñ•4ó‘–,QˆÓp wµè_/}LSñ+˜&γæawm¹ÿè.bÜŠÊíÜÔa[-±¥Ï6dUžDþô‹nÖ²œèC¸éZYÇ—Ø‚œNøÅƒzã>K7˜qƸ¬Jv ­ìð„dg2‘ÝÚê¨MMqxCðå ‹Ù'BùÎH%,,¿A|žÇi³˜0„ÝOV`§¤UL‰@ú0izÕ˜œhèH‹0øriu’ÝÇw;èIÑÖvË:“xSAøfqù£ü¦o¬àäááÎ$ÝdpÃéÙ†ŽÈú÷}™3q6>DS¢¡„´3W‡bë¯xÞWÉoê–®A!#ƒÊ¶aø˜þƒTsXÐ{S˜K‘Ïø¹=·‚¬ü‚ Ê¿âj:D9ÜÈY6§„ÚR?.[ˆƒ¾hBõ+ã±wÔÞ_m?û(~Àï›Ç”Ï¢Â(¬ÆÚ ïÔs>^Ñ7 #pÑ(®9ºƒšhÜËÎOæ%œ£ßP²9§¿FÏþÚ}%Ó¸ÚrN•:“ÏÕ@¾*iG]«*RŠR! ›r‚£duEØÎEÚØ†ê¬ŒS^^æÏoŽ êvá”ÎXQ<†2ù8ˆ“÷KßÏWÕZ˜‚Õ.*@Ô i$î&êȱh³ùíöÑ>Ÿž—éuþŒ÷~‚ûZz¸!·t7û"QŸXÙL&Qeä¦H<¥Tk‰á';c‹·j™í¢ã‚v’¦ªo¦³©¿VaçÓ“÷•ú˜Ó Èr,6³¢c9ä„×Ho4zjtÅ3¦ +SQw1ÓÖƒUž±u‚¦6Áש%Óse÷Êr˜ lØäQ€væ¡–íQ«[ü±è4ÝömzÛËH—LFÞ¢=\sÌ»!¦…Ó C|ô‰,Ëš%Λâ?®u!‹äû(Á1öqî>!YS?b„òî<{?Ú!–]Fö.2HäíS Šöz¼ >3%’žä6~ —™ö2àýêtWy 2ÉþD°GÓÐüqJ…Pû°îÔD†}4÷4Ñ`°µ3Ö³pÖ×!à)#ôÿ'é°W endstream endobj 129 0 obj << /Type /FontDescriptor /FontName /BTOIHB+CMTI10 /Flags 4 /FontBBox [-35 -250 1124 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/A/J/K/R/S/a/c/d/e/f/g/h/hyphen/i/l/n/o/r/s/t/u/w/y) /FontFile 128 0 R >> endobj 130 0 obj << /Length1 2351 /Length2 16254 /Length3 0 /Length 17647 /Filter /FlateDecode >> stream xÚŒ÷T%zÿ gÛšÚÙ¶5ÙÖäv¶íɶ5ÙM¶íɶkÂÔäºó`Îóßµî]­µÛŸ¯ý[›œXQ…^ØÄÎ(ngëLÏÌÀÄ•SUef01±201±À‘“«Z8[ÿC‡#W::YØÙòüCBÔhèüAûlèü!(gg v±0³˜9x˜9y˜˜,LLÜÿ´sä|6tµ0È1¤ílNpä¢vöŽfæÎ~þó@eL `æææ¤û[ lt´06´È:›m><ZTìŒ-€Îÿc‚ŠÏÜÙÙž‡‘ÑÍÍÁÐÆ‰ÁÎÑL€šàfálP:]&€¿RÈÚÿ9@ÕÜÂé_ ;Sg7CG àƒ`ma ´uúPq±5:>¼T¤d ö@Û ËþK€ðï☘ÿkîßÚ²°ý[ÙÐØØÎÆÞÐÖÃÂÖ `ja (ˆË28»;Ó mMþ4´v²ûÐ7t5´°64úø;tC€¸°Àð#ÃççdìhaïìÄàdaýWŽŒ™ù(³˜­‰¨ ÐÖÙ î¯ø>[8?êîÁøïæZÙÚ¹Ùzý™ZØš˜þ•†‰‹=£š­…ƒ Pêó¿e>Hphf@g;+ 躛3þå@ÕÃø7“ù/òG>^övöÓ4€>¦Àp^N†®@€³£ ÐÇ럌ÿEpÌÌ cg€ÐÌÂîõ2Ðô_ø£ÿŽî¦ñc0ýõ÷ßoºfbgkíñGüï3J‹«ËHHÓþ;åÿ2EDìÜ^ôlzVV;+'€ƒ›àó¿V -þÅ?4¥lMíÜÿ ö£Jÿ Øõß@õïõ ü¯-y»¹¨þŒù&v&ãæÿÏÃþ·Êÿ¿ÿËÊÿë˜ÿ߈Ä]¬­ÿæSýKàÿ‡ohcaíño‰¹uqþØ9»M°ý¿¢À-®ÐÄÂÅæÿr¥œ ?vAØÖÌú¿…´p·pš(Z8›ÿ=ÿ"«ýµgÖ¶@E;'‹¿. €ž™‰éÿð>–ËØêãz8}Œäß,àÇîü¯G1[c;“¿–Œ…`èèhèÇô1I,ìì/æm4ºÿ=ÄF[;çÀGv>S;G¸¿ZÊÁ`þ‹ô/Ä`ùƒ8Œ¢7€Q쿈“À(ñ±%ÿ V£ÔôaSöú°)÷qåÿ‹¸˜ŒŠЇ•?ˆ À¨ú}D­ö_ÄýaÓ𿈙åá¡“±ÅGU­M€âÿ°`èüGéõÑô‘Ž‘£¡±ðã!0ý‡ëéÿšäÿ2>ªaü_ÄþaÌØÎú£‰ÿ¡°±ýE±±ùG\Ýe4ùüpù'ºæ1ÿÇÇ_|—•ø£òQfÓ?*±™Z¸þÃÆ_l;Ç(|ˆ˜ý~eþ'Ä"š{Ø›mÿ!ñA³øüˆÊòð£ÐVÿ€Yÿ3º’Øü'ˆñeöUÛ‰þÿ#?»?Á|(Ûýû#û?ìcöO•íÿt‡ùßÔÿíÍÇ…c´:~2qv³û‡ÂG´.æêÃÃßO°“±ã?ËñQk×Ìø‡•8eùpãñ'×YO ã¿|üϵ0vqü¨–óßýã”üÿý>î@c¸•E;cÞ`ËïÁµÂønôSüsäiÔô^+Ž.OHÐÉÔ5Y[Ž¿…“GûPÖ÷Ĩî„V‰^½ÎZ CÛ•ÚŸ½_ôã•gÚá–g°†¦ Ï„ë?ÁЫ z¿:x«X·‚vK“ç9¸p!) ?¸ H¸×–¯M„,(ÖpÈÀ¿”ÿ V‹úP2Ožo”½€CåLÿ †íÊyþî÷Zîô;‘t<-œÏy4k‘—ö6KÌã‚çF¥*‹S.®6Î'ð;´‰Y /‘ãiì%¯Òâ¨-þ¥&j­‰A"ïñnâ Y)4l&kÇn‰ 2ŸözÆÍ~ج{šïögHK8´¦nnâ -Åz‡#¡°÷aŽ´&r®±Ðò^‡;+wZgw2gß§u<ÇtLwaáv1×›E6>¿†:ø`ÈAÜrõxZf–‘Õyõ[NŸÛϹº«tUˆýtA‚ƒ.LNGFA/Ìhâ$¿«Cgû[ÃÝnû¥—ZgwU\mÁáúðí"B;KæÙÓÍ ÑÃ:iºXŠÝ­™ÈÒ8þB³ )=‚.‘3·pq´\¦ŽçTHzͤZh¶]ütR.ôè¾W¿<ÿÙ•ÔŒöûÓó±ÀYļvv¨¡_KsªA„üF„$»ãêŸö÷¡ÂãÂüÐÁDP,|±É"ñ)мh)ø>¶ã…û߈QûP)È8æöV¦Íaò:UYäX"/£c75â}‚fÊé2eõºá“q|*sŠ-=ïȱ•Eüwå»:ý‰+ºµ¤¾iÚs½ÚËcî#5QßCë†4(>ëÄÏ€dR 5´-ð’p´UôyôéŠßêîŸ5¼[´dЊÎ[—$jܰ=ŒÖ;}r‹“kž£q·iYÀ:ÔªNŘ8_Gdp<@¯Œ³7õbúÜãÍ!Tq”{’Í«{ÊXÓeî==ÃðP¢, ±9Z+3n“eý[oBcÝ;rcØ‹°¹àêÕF|oã²âSvCj7þêBú(kœ¸Œ¯VH§–*§ðºÜ³‚"RoÌF\”ä­Eˆf]¯Ï÷„‡ŒCËA-Í;±%— ¢ŽoìÃíökq"RÅ;ù*¬—²‘ùÙ D¿"|Í ç @! Ì».£Ž)óV›½*;‹2ņz¬@ÿÜXèü€2o’ÚW’Ç_™™Å>ù«Ã¿©ð§%g/ù™…Ð{*Ö.ú*5.èlظ*#ÈŒCžÚúŒøIÝ}\+s’³Øtàæ!ÄÙlfÜþoßÅõ”S賓³oúа‚¡õ²ˆŸ£Àh˜ÍÜîXzòÙ‹ór[X»…*v¿Ôrz®zžÎ2œP‡73l§_ý ˆsÔ¢l)¿?e7öã·µìbÙí\€Z4Æ8ŽscFˆ~y˜8fõ7Ê•Ò ÍŠèõhùÎ3±hº˜_¶~™xpz]ü\jjvNÞmŸÿÌgqM¤@HEéU»ð}É­âMåP˜IÉõùýz|·žezªçЇð^¼Ê_d¡Ôn.º-þ]"¨7õ§vq.üÙÊ;er\U¨‚׬xZx¿áN¦ÆHÀóÃ4/ûFV¡¢ðümžúÒ˜çÆØ·„Lc,¢PV=U$¸\EW8 ¼ÚÚ½ÞÓÊxÝ{eåÌrÑ"Q½öWnÒ[á‹ZÁa‘3²£õaêS¡„ï<%T”‡tà¡ o"ƒå¸ôŽ ªù!É XZþÈÁ"tVÙà¥G(~Sb$™.×í+ZÛOe—¨³z„ TÉUs”P6éOŸàe(‘evç)rQ³Ä¶åéx䎽"TX%X”‘„8¾än Ò_-èaiFSú¯ßù‰c18˜§õCÞkáçÞ<[–—ºM¬ÈW«ÙO–TUÝîfÈq×AíëcH›ý0r#ÞME˜èpSý‘Rõ¹Ü(p”GÃX×Ïb(ß­=Ñàý¸° :Šò Ï`Û\ªAU5VªÂV2h½ßT€Ú9™psߟg€¶ñ{q/ Íÿ÷Ò€²”Ð>l ‰Š¢B‹¹õðwExžZ÷le)ã¹Â¤*¹Å9W0ŽÌ ƒè¹Å¤ wA·»ä =ºë®ØË<›»>;aØAlÞJÛKDÆÝmN‰É®5;¥Ñ¸Ñ†]Šäo€Bbí1×଼¼í½ö€Ä $´ƒË$aópÝ¢\X×m¯Ùóɼ #8´Ý…/Í@g ÚN[òX7Ãþa¼Žùçw;dsª”K/a¼'¹½O‚T„œÆq\o´›,4´R½«%TÏ«ÌÝ®¹r š/Ë–qÄê¿‚¬ØùO‡(2µòÏ-WÜ~…Œ{c—âd‡¸ŠÖD*=÷Ä!ê6£O ăv¥¡ˆ{*Þ<‡ò‡û¿‰1Ps}Îr6 M²;]9M‚©®BôòÄ08$ö~ó«2¤©ž49Rƒƒ€¦fp–"0wˆ_z #¤aÏsøéßVç_#p,9¬;È:D4»Í‰<àÏ­àܤÃê}ÅîÈþ«Õ~hùíy™ z+Y#Àá³ì`gGŒ×ú…ÁwŒÄ·$|ï¥`D éwOÆæ¬cIÊ.m²àðôe¹©B®èÂí˜Ø!m”‰°ÐB>Î-¯YûMÔþ{ujrt´c«±uÖ àótU»ÂQ[6fíwÇ‘Z¯vGì^5íwn±òÜÅy‰ê—x6îUm;\‡®IÆÀÂß$÷Ý”X•¯ÞY¦ÜDK•‚=š× .#"î¦Fb/ n¼Ï_Óíèz`±‹Dd­¬d½ ¹MaÌÌ^è@­O¼+(:ðýà ÉÒ|›'ûþ©Û•t½IàœSíÜøÄo²¿ º„² #Ô¶Ey&}Š9*ã¨Xcs¨â ºtå]}¡,MÞŠ–û}™5ÒC™j¶ïmk ±4±¯'‚¤ÊslÉN¡O?É»ÒXûÀS¤ð0H¨YÛ_˜h£ëq[ÈðÐ=åßH0îH€d 3ô}Z«çëåϬEìðÕb3‘kô•hnµWñSéA4{Ý>øUÈ1û)ó¨åÞ¼©ž„Òë50.ÿé…DÏü£Í.ÙÁzÿ'°DìB™HÞê»§|wò ͤà;²åPl£Qnû½q=“ ‘)ÂEie*PzUš 6â¬èY-J¹ÆW*pø*˜š‹19ô EaÒ!ÓxUS‚(Aà}ê›f E‚r×€Øð¼n)‹¬ÿiȵ 95Å&£ˆ!ŠiÐï”Dbì6¦°Æ+g”f9¾ÁHpM&PÏNæ-22ÌfŸç ¾-fË‹]NŽ£W².¶: hmC=à¨Lö€Îu*_ÕE騮•gã†ÿÚçS£XÃx)ÕžÊØø$CbwM ó&5¼É3Vdé¯1)¨IÞvE]l´ÎÑÆëV,eÐî·ä—ãä6)pº$’ÁÌìÄ€ß{F"¹ÓS#/K\ÞëkÓ9›—_xÛ$àl‡v ŒY¶j܉4§ 0ò˜‰y¶1wP[SP°œI û·±É[gï“Í‚#Tº:ž¹ÀI¯>€±-sêÔ§Ïçà–ôO_a‚΂9\ï<] ㄌ‚`#a-ÜŒ‡6 ×Ð({Ž‘¤ÎO¡ÐbqcW[õPa™UNUL oAp´È~~5 .쫺›ÀYâŒÀúÙŒª ÿ Œ¦;#.U­jå~•iif”#™hÃ@Å×»{Y‘EÀ5–J^hïÐ]~+€åW) wâéN·ê¥—0i¬ë˜¹ËaWÝÒØz—?²Yé,™¨º.ú:½HVàqØ Ðåz$Ãðhi ³“uDô÷â7íiª$£ˆ? úÐÜ‘?ÒD"¡=•?9›8`eŠ‚Ê{7µg”<²KøNú-÷µä§,‘ŸæM*Ð@#ötœ<)»Gx¦ 5„ÊÓØphá^ÁŠÙ]¶ø¥ Uožª%Ã0A¹Jµvš±l[Ðg¦½^êè;ž`rœßø(¾œ'9`”H»×'s-Ì)¬í0`ñ3pÙx×Á Ã'j,¹%?ieí ‹}ùÊÙ÷eÁÑ60D^š¨ñô-rú&ý5O¼Êªò;|=äM—‚ewj'^õÖê!m´oaÆ©LnA=5’ºü!-åWï6t¹ôµ–úõx&WÃysï+” ©´,3– º\È :É`¦QÉ„R/ÁeW«©qóÌ\®cCg <Ÿ™µoôej<»VÌ4€ÊÁµî™ œPX¡¿>4û‚¤ÓvàóÝ:æÐ)ãÍn[ä„•:Á†Ë¡Ù¾_Òk~äâOJ6ë䙤¡Çšn}©­VNÜÌiF¯8=OzÇIwDSüüÎ ¢'4Né­ÙÅë‡à¥¹žû•ì²=Ê\<|O/ÜÖ3£Æ¢9c+E#ß¡e8¦üº¾þ‡âIOü=©¹*â`DÕ –Hår²9º"ÂÀÒsƼcÂóÝ ±4(®Þúôá9X7µû¬s¶ÔåÕº¬m‹âP-ƒ­Vಮm´Ã­\|!Ms¶o~çzߦG€Ú¡èŒPHªÖ·üÜϺmã[6.Ù!SÏ> '¸b ªFÚ¨ ­¾¨ú¬ê ?qó ðÙ”OHb?a~Ÿi<½ÚABB,³ ‘NÑè¥èÆlõÖЦz >‘”…: â4Qèÿv8ì bƒ[³^…Ãã„MíJHC"Ç7E˜æq²´kÉ-/õ2mˆ=Ú|a™þKbÄã¾,¡Ñ†ÑuÍÝ §]*+NA+ZYðÝk¨‚$Æ!nŸ„9O)„%(eXOÄþVõ¢ù¤ ?IH>"²z'Ÿ‡ð]’))Õ÷ýâMöª!I³¡quóñs’¡<Ô€ašcÛRâ‚î£IWyjoÒ‘k ;F=Øi[;s೩2m³1¿¢Ø»SÅšf<×§·Œù›HÿŒ5^±ªÙÓÝ,Iï*•ľںÐféÝH7twÉÕÃø§†’ƒ£Úžö!ärë#¤»ïøé{€‘ûÒ›`$¬ÇˆÃ+`áÏÞnbVP-U3”4¨U¨:,Õ|Uô©°À°ÜŠi0SÌÌy³Üâöù·+Íb}Zç$æ|jáE$¯­Ò‡Ë=ã ¥Ú¼øŠROE¥ñ²T•%å¢#kù ìåX#tËÑÐ2 0·NýÁp¦-Ö"ýn›~~pÆã-?¥ëÛzÓÛݸkJ)Xyˆ‚ö]ÁQtËòëtj¸±˜³Œ¹ï´9MùÂhóŸf vÛË8($g’D¹m!½û9¿£ý’x$ç ½‘v|kâÛ¤ª0“Ðëh¨÷­qW<Òó—ÙÝœÇÅîÝÖzÒúúy<‘ä¡%‰ Cд™“0u5c˵5As|ßî8ìˆõ%‹r—Võ+ЛóÎ7×ý[¼+aj,Œá7q™–d±cÇ-û)á+w`»‹…ñ¡Óä¾´¿œ±¶wS/$™èˆÎ,¡EÄð*þÉ=Èó÷í®!^u†ÖÜŽÁ´`u‰RFcSÍt`7ò&ô={Jà;ayîáÄ5öù›ŽW$«9¯Àqô̈B fÀC4=Ý ÖÐÝ_JØŠyÍe%Jv'A—ü>!gàá#qZœ…=&Hmœ°¹ù+%ãsGž˜Kd¬3Æt”aÌîŽp«qÁ%ÌN¦9XEp’I›¯üSÇœ^ŽØÎâe"Ÿf˜‰!PQÏwx»ÙŸ–©k›ÏF¢Õ5ÚÃŒ‰[ ¤„ù¤øâKpªRª AÅ uTDJµ9jaÞõmxܘO«ÜnåjMæ]eqÎä`Õ §ä2ëh·'ù¤VŸîêy}”9t [¹f‹5(ž–ݧµ V¨SÖº_a"ôÑìLbÁ烶ûFʈŠÞ„W'Ý1ý qÌÀwÊœR­>ãïûá1†ð¬3ÿ<¯ÇGL_ÌLVË.›´)‡Š*E/ð†µ$õ„9Ô„4 Mšû'EºT,øWÒ:Àô YÌV“1M»*(mi溸†­IˆœÏ´²–Kº‘"xs`•kÆ‘± ¾™œ»¶Ý€ÝÆ>Ain}ÐÓ¼p_ì­ ‰>ù—寳É0º\”¼Ê´=3«Q]01.ôfAð´ÜeÃ0yF{¨䣩Ý ðÒ'çqX*F¡=o^Ñâ-]CG޽Í;Ä`:°ÑȬßáJçáZ¥GÒú"5Û„æ%ó×'è\ļ£ 7ÓÃøÝ4ݲr÷•×G™FÝIÅr2¸©†^Fv2™R‡¶³jÁv-øn fŸnXz¢½ã•»> ¢^UP>•!‚ª<-ÚI-ª€^ÓµXT5‰ŒÖÑßÒnÔ?· !¨þö–Ä^XSJ)Ïå†,FM+Æã1F Þ2W~Yæ·“hXìŽÅ;­…cPoƒp_75Œ¾¹¼,#1rÚ¶p ÀÓ¶ûÔ_šÉzØœ™ *ª3Z¶{.Æìð“+?6¿ç6¾­W>AÖäR‚ïJó[–³š²ÀÉ'4ò°ŠŠÆñ* Œ¹’ðùaÔ rówχ&ÌáŒxa<=É·G4ý¦ð‘=´uÉ.öÃ)b[ËUיئe(ÐÿjtZJæü»"Žù”¡Égtqx®×xö¥Æk¿‚/Óõü~½e kÂsñ6”ï ~ä:edæÛ÷„#Ô&NcI–Q sSúX™ÇÉLùb¾ú9@W#§oñǼÀ·=&ðÔ;?"ÅB‘„f šOÚ¢£C™ 9§*þ°gLõ'þ †±ØmS‹=mP*ÁuìSÉ÷ô>œá0óCX+ô½™4Ø-R¢Õ±^Ì#­!Âi[ÚƒõûÐÕ¸Ž ñT0ðx¶ih{D±Ü{ì[F¨Ÿ_åï¿RºÉö!"‚С}·$I>Ñp­÷›22uÍl-|$  [‘„® B™mêÐ 4ýz1€I‘X¦ØãÞÒ@!…†“‘þ~VkÁO…<žšwìɨãÈ ;}X„˜ÕmÈ?’²v­öP¼]y1‰šÓ!tFmóœuÛç51.âN©9ÑDPá:GóÊŽGZÈÖª”f³Âtj½¢$s¤ÍtÎx =䤦޲¡ˆ”Õ˜PšGÜ“åL¤®ª7ûíß²ô+~2¾‰„!¬§ã݆"–ùJ³ ‡\‹-7ö;‡“ æÎÏ&3 ¡œ¸‘²¢ƒµÕcŸOÇðs¿âgxî™m܆^ºSÛ(O®^ªœW?·Xâ`3Æ,Ø×ì†Èž3ߪéY½†Ó,k‚OJÀ¡¯î´¼ðë¬;q1Â…iÒùÛôá‡Z·¾Dÿó°³þñzºån¥Å½¨þÊÈrÐñ\ȸŠÏ„ÕHØøÎÑH,—ý`õ±föh©hîçìÜäf¥ Ö2¬’PŽh±U}é‚èxm¾/?ÚÕt²ÍÀݹs£×U‰»¦ê+¬yt-µ““4„‘ǯCð$c,ßJ¦KI‚2ñˆ­ÊjUŸ¢Khã‚ì–o‰tl uëaHt5°~³¬0ë<7q D2ß Ž±E<ã)Êæ{Fµ’­Y‡³‚¢”ßÕ]¹ûï9Æ6ZœD¤Ì,[¿=ýÈÀ›¬ianœ $ÅOóø “÷:»Õ”"G:è›Ê¥PíC\ò(üR ŠA‹MH ´{sx»´IÂWZó¯ð0¿ñ6‰ìÊmõ¿í(™<© y9d L/ðCA±¿Úšêh•¼“©eåVï¿Å¼pQÌPû9Ñ™ Iñ<>°$w;º©¥j›ÁK0Yô ¢¯ŽEi‚‡Ô«ÄØ„ÔuZWCOs hÆv¸°žˆG;µ,tr·Ô·cøž·ˆ8U£‘ƒ¦AŸÂ`­^Ø\#bl±Õ:wO“‰M ­H|jÊ v¶4üۛªÿMÅ÷«È`úüaWõ›WAD|ÌÕ[-’ÝÒd‘zX¾ª¨7Þ€XMQÊ.. |ŽÚþøk@µô˜5·¤Ú» ³7L†>AfÓ¬÷þÐÂh´ç½yí-UÍ8FãX'~ŽÙP¬UÔ"ë†U1Žš—YÚÉ}âá(!-2hT1¡äåd!:½dúð` K4a‹9÷´0Å n@Ò·È|É ×‰Îi2‡ž0øsFÖ§»"fìœ0lQ2/owŽGÔcÙkq-‰_u]ݹ´7§Sž³r¿)Ç\«öP#Ñbsœ#ÏÒ W,1t)"¡ãTšP;ršN¼ѧÍe;&‡ý å܈¡ ëP6þip²ØÝgtƒ¸|˜TÞhÆOÞJóF5lŠe;Ý­-H¹Ýü|$.ß>2>4›¡ýWw¶sz02-~t*ש%ô{tj–×4fG! Åþî‘2FX£äj9j\®i]¸büÕyHјʮLÍšƒðO³}˜KÛ1ˆ­¯Ü_[ŽÜùÆ;áqƒÏ¡[³Ã¼I?s – ÍñZBËk¾×ÕŽwÎRðd\|ϑᗠ½hU¸3•ޤÎ{zÓ3ŒC®ŒGðƒ,é£Üìzœ \Ñ·³ÆíÁ(r«Lz®€5”V¥ƒ² ƒ­¹Í^¾ ?Úï·!,ý ñÓÞ¡Ay¦6–­âºj•£2ßîjYÑáIÉ(VÚZê|!\˜ph½åÕ9ò̓g’¿ÅÝ'µø¡X„NjnÓ÷Kx<*Ùò“?üacmZ¨&Ì‚Œ?„¹Owöî&Bm?óIÒ–k‹±7xAÂ\¼»¹;À€2=ñ`®Cv8½Ð«cÔ…-þ,îñ•A…1¯ŠDÎ6C;$ëø÷7Ÿ=„AuÑ{=mµ±x¤;á¾Ï Of¶X/¿Ú‘¬Ú^~ëŠÊG$Œõ!Íz]AZ²©phhÞA²^˜%ÍEîõÅI|ûøYûs§%A¹@<ÌjÃÅ"ì¨WÓ>zƒ´£ŸVŠP¸¨Œˆ f6‘Ùx&š-ZYèÕ¿E—aŽE»é' =‹ž0ÃÒ/üØ2Ù½ùmü'«2™•¿#rw©q±ºËF=ÿª™ÀõÆ©PîÓk+H÷4)ÞE¼wžo Ê}ÑÔ¨¥Þ‚!,¬ßc…ÔkA4Â)\¶c0⯇Çf5{嬷-|m…é¸rè‘_ÈÉ6É ©÷f5„v7 ¢BŒd¯dTÊ-)Ÿ&{íz¢«Ï‡Áõ„Q‚M÷ô’î¾-+п^ïn×ìÊ@ë\úQ²Hµ&c©Ð]ã(¶lŠîMÏÚÀ½'¬.ŸKl^¹å}éP¹öeѦ¸K80Š÷Æg‡ùÓ^…K>Ƥ(ŒÅ+}ýåŒÔŠÊ`“<Œ”XñKíÔÉsL¦"S.qÙÎj<|Õ¶[v:uŸõ‚ÞAËdUöZjðÖ:†vׯ*l"%/ƒØ]¤àB1ñÕO±)£ÓuI6òß ùpŸ¾¤“AÚ±žëíˆ1+֦ܴb%‹ôU¤ÂíE6UçKêòŽ#SõÉ}ªÓÔƒû ‘Çds|´eùQT ß@ªÞ_.XÏuYuª¥ø‰+o÷ÛØM@kâF¬õK£ë­ÝCµÂÞe¡¹¨ülEÑ*w1®ºÙ›–5JÕãæ$܇ße± Á©C,uÔnÐù,³ôÕÌÜÜÒà.pˆÃY^ÕtHþ¹ˆ…Ì^2èúõnä[Ç”òê<ûÝ!2¡±èè‰âøˆoëlßÚî û¥™çPõÕ×ù+ÊŠWù¦†.£v,î¥ë4ÀgÞ`½­2$m°=}ý·ügG†è6ëÍRoZm¿’§»Æß‰Ê–™î1iŸ ü”ÂÄ`|¬ {ç2Àpå£K° ™±.l¢a¡%-ïŸíÊa݃ì>[¡m u/OÇ@±;þH±Í¾|’×Õµ¶àNn¼@¤½ÄoJrÇÆ³þuóË ³mñ§©D2‘xõ='­ýÊ(7dÚéîìÑëÔMÇxOI–’£u²¹^=ç¾/ (Ág¸Êú¶Iv!j,º)ÊæíY=/Ü»÷BrßL·šP-4t"Œ1禟V…<ò§Æu>Œ”Íà6_M¤fð0S,_o\_Lfºá|+ʈñØNW#ŒÑ=Π¾­6R-‘~똹Ùá”èïä°÷:’d÷zŠ3Îe1³5®°††’ó]¸¾‚›_ðÇ7qª|+Ð’&Ø ÷Í^˜’cðCx8ÃL&'³ ¦v¡Ëø˜bPz£Â~§·xbªãR©WÜè5«.FíUà]ؘg¨°¼Í"7ïôK~ ëO™#u­xÊ1f^P= Lèë1 ¡ Ƨ| ¡¯/+×ßëGìþ®ðLX~¹0£Æz¢Ž°°÷²z‰f¿ñÆ£ÙÇŸ¯ä½Ã;n£;jUˆ!Qy»‘H* @!/‘\ØQNEÏXpoÀEÝfi³ U£Íâ†G»ïR´]…¼·£.ÿ%qf\Ï!«Ð=fîÍ.'’—q½JÓr¦°EÑÖ,ƒ9˜B™8,ŒelÓfVÆ&0x›ù›ã¯úoÌ£#/ ³å¤ôߙБ(Œ7b˶b5ºÔŠ ¯%ß©‹±…y“‰f ¦|wFȨu›†Zšà„ŸøLg’DÕì8z—‹ òk¾~`êÚŸéx5@ÑŠ!×R¹®¸b„¤ÞÁooއ´…ëD|™i%E1NǾáÝÕ\rm¹©åyÃ/Ó4L°Æä.M”㜊ø„.I¨W èѬ‘¿Ãò™”;Â÷"ŠQñ 2’ö³ìý-é¹>‹ £z¢Òæà–Jk¦ÂÀó&ÊÛ¹æÕ/¼/àlö¸Âª¿40üY#"™æÅ`h[wºëÁ‚ÑG‚¨çM¹Ø†gïaƒ÷hO`Ã5v¼¥‚sû.-6’€])v+39DJ<æË·Dî‡#lõI3°ÆlÜ”¡›¦ayeb'(¢ðÿõ…¡¡Cl†½¨¢­Eš©lÂW‘dâwرÅÞOè~ {áb½˜ù‚p»RÁ«Ëêñï)Þ=Zeu¾¦ChpÓôüÙfĹ%‰ihB³˜IMhni!S“‹ößÜœ ‚KÜkß«ˆßÓ¿3k!½¶$®tvä7Mï@7hÿÜ7wìicjÛ·OJi­Î_8ù à(¿DÔë…ôd°ÿJ½¨et1³ˆÚ3ç`Ó€º;·h;ßçùgÞ  Ñ «(²ê€Ù)Yø‰6øYW-!”[?AµLÃzQ-ˆiä{»õ÷å›Ûy@+œæLâÛ»|—TpCÍ»»™zíyt/Óx´š‚@0b*z2E O¢Ì0å§×ÕÄ ì»Ô¦_¾ h ððöO|W'øôk_%QÁ§ìƒR6Q›icQ·ÚF±p/$Ò=ôÆÌ¡9¼)¯ÍblïBeïh²ëۣ䳡xœ4¢< ÂqŒso¸q¸ë¶ Á4‰¥¶ý¸‘¬ðÙÏ´À‘Åw^Šfcà=O5i‡Ëes‡CšBðèF±@v‚úÙ›buN×úx¸š?QÓt²d‚ó "O‰ßp¶í.}´"r½"dþ¯zð8‹SbÙQ¥l öÏÏóO¢ã†š?-xf¾©±±"¬Ió'Yš?,3q¹Pl¦7 ÌçëbÙI/æm ¤ºIãÚ÷3Üômº%á1 ‚{Oš¬A>°Åqy@:~ê·æ­C{iñûâ ÝÜGj¨ÑZþ‰N_çY‚ñӡרf-·6Ç-õ KÔ J•žÓ¾ùÓ$Žwl­nˆ5ï çÁE•þ¬_ÏžG‚Ü7*¨…Âí]’ñЬs/‰,w€37È¡[‚G MF&ô€®‹?Oly¹ƒê^['ªOßçAG9˜æ‰ÏEEZd#÷K‹nÚÊ“rÃó0™¢gÏÕ!ŒýýÁÙn@þµ¸î[y„H`¹Æœ³ŽÀQU8 Y½:ÌÍŠÒŒ×vç`úÈu$£Va¤qÔÊÊEd;Q®½+ ä½òJ<×Bñ2c ³lÐVz¯ûÛyn¥yTÓ®¾·E醃ÑmCú|JCì?˜Q!oÙ I¤{YÀ¥‰À<ç௥ç%ÒÖÐóê!Þ8R“è<Û2üºGܰðRxñ·¥«ñȺñ´¯Ð ‰‚u –M†Ï4À˜XÁZ ¶Ûÿ½—Ý4zGTÎúÅ÷ÄÌáþùâò]ïrͰ“î6Ùˆ¼É×÷“)2kÂ/Ýô|ËYtÜGp¬(Át*†“KG!nZ±Ô3~2ï”^y«Ø—«]´Y·¡P™23M=TÒ|5z=Ú~xaÚ¬™É@…™ø^Ü]ÚŸ¨‡›0ù罬—Žeg¾Ñ¼¾VÙW¡Fm® ëD ƈ²M‡Ú¼zËÓ‡Õ¿*‹LgÕù'Ò|Yœs7Ðù/Œ×LG³Ûu.&¸ !º›øØI%BëšÝ¿[ÇÍ¡Hò_?foƒÂÝü,‡ùqŠ·K®ïLïßXc¤b½îDÜêRgSÓ(bϘݻ:ÑíÎ%N£5‰¿æÊÔ£_–”™ÄÀNGÒ[ÀtÉs‰½ú*Î\;Ÿ.í¸à¿W¤˜ Ku -äg¢kýÕæ‚x-¡ïcœ«eüñ¬!J¬ÉÜ_xÑšŽ"ø)¡ô³Íqô–y÷¦‘O{\3E:òŒðü8Ëãt¶!ú“¼[[Vo•ZÒÕÀ³²· &CªÊÅüú6·7E舽ü}µN)ú”˜¿;y!åSû‹‡ãgzU‘Yÿ,1ùù´`gŠF¬!ƒÌ^ùŰÿ3Ú|(VþÞBƒ+Ù%c$s†ÜëävSa¾™—_S¿Õ±ÖŸÿ>Vdo£}ð‘j¯6ѱ×aŸDìFOWÎqÛZC†‰M£êÕþK"^—üû7*ù×ÁëkaáÊ;×Ü_tÕ;Ž›ÿºÁÛ§¬=ŽéÎy)¾v¯(þÂ)æC=7½fÜ?üÉŒÈqú4ÉL|7/£‰ÈÖªhä2-ÈÖ-TîÜW«ží‡aìôÚâ\í9NV•„ðšÝ(ɪ^²VÒ’%K­gËéŒÎ.A%üiʇá*sF¢ãÅŸÂù5å˜~Ú¨azÝ­J×”ªw”õÙ Ä@uLÂQEý#‡’)RïŒD¯1;âÍAp ºrŒ6ˆa+NOG”`êšE§Þš;Y%BtÝ”˜e®jÑ@tàp’Ƥ[i¦—t5P/C+ ¡»`ÝŸÒ“]ËêPiSç783Ðë~Q J1îxV¥ë´oFV¶`ï“mçf–+3·:ùîâóž¿Æ¨-&<‹cÇÏ•¿ïǬ‚˵µWi!bCœYJ® ‰ ï¨/¿¹ªðv¨‚qfÅž¢;'[.‹s[/.$PÑÌ'G¬¢Cw›á{)Ìa*ÒU2°PxÃXo"“„ê—þpi+ÿt–é%Mô%öYáÇE;ÓŠMLúQåñ½#Å:Ç9¾­É&‹Ñ{øèrÝJ*ƒÝñê“»(m½©]ÌõÒ5QM1Ó¬(… w½¿d½·^Ì…½c~.ßå6žãu­9ÜN¡°8—g,S¢™®™}ç«ùk!£ˆ^5õºÛ¨›o=Ä F1ÔW~ÐDv .À˜Ö˜·†Š äïÜoÌÁWË•Mö…¬³kÎýíEV3Yô~AÕ[¾ðÎä܉]r‹bü£ÏÙö+‰Â£&‘,8öÄô;BCÆLôA"ûÝRÊ|R¿ ¹hŸÀš%²“×ê‰:­¬«,4ÄÕŸ°Ñ£8$Ò¿Ô_îaÅTt¥©ð+CzåF¢öÛ‰¡…'my˜>ˆf–ÊZ}¿\Üäa\ÆâFjí áQ‰¾‡ŽÎöòtòkc«\å=zyO±n±øâ54øD®ùdgÿ{UùáXªâöÊ35|P§=Í©¢ÇOð>/3eà-jár?Ëpô²°L7ì‘y²Ñ'Õ}þ †¤°¸‡oÐï8ðæš[|4l™½FôµÃe¼Qˆ3ŠF Œ¢± ¤ëÞWˆÚ_Ä’Woœ²Hrqd~î@OwðxÃÉÌeZ~+_Q?àÖèT’ O6$`¡;Âû–@ö…ß¶ÆŠuK å}ÉmGY©Ä›e–B.ß'R˜¨6í ÓÜÏ]ƒn¿2³(®wy~°’B´*:"†ýHv´Á¸Lˆtî1¸«üT9»bô£ ùçN ¸FàŠÑ¨æ»Ä'CtoZ.‘ö(‹ nçþSÇkÊr‡´~OÆ’iÑÊkÏ´ï­T c®U ÊÑ Ï›ïlTÆæðÛ™¯Ié~FƤn¬¥5,ØÒXC‰i+ì¶xO4•cår½=¤æX{ry¼ûé%èË‹náéh/'?ð”T%'µ;uéyD=Zàu‡=7'—‰I„BÜ¢ó-Á¡¶GBÛÉ8ûU¢3î•Ð|჊OËh°#u[ jÎ:Z}ËËE'Åî6bòÎ[ è{| ÒÁaÈK¬Ç,(ˆ$,{ ‹^òoÆù9œJú™}+dá!:V¼³µ”Y;ü „“ÞKR|À\K\w3ƒä3£AþÙ§$0øó1Öª˜ÝøL4h"„6þS8j– Œ!Ø·SwýOáTÈD§'·é檃ia?&f‰»Æ%ŒÇJäƒCo0÷pEwñ“­—†7Œ±ì¾6MÉFb#;t¯—ÂðŸÄ1釯æÔwqôö8W‡‰y§’œús蕨+ƒñuÎâà•Ïq‰ç•ëx“ÃPÜôäÅ~ÖË'Åù£EêWEÖ©€Iζ¡ÈËŒ:„RAÆo(ãù„xñŠL§‹èbŠ«Ï8´PBkÔöµ¡ñGǵ\ Ç®³X —V¶ár°&‹®ŠOïbE~Fëu–› iÌ‹Ê#uõ†èNIpi²È&†Ñh-­IK0Òµ ^/[ eË#Ⳃ–e‘ì³i£PŠ3¤î0î{ò ‰1èÅ„2ˆ3¢ûTË¡+g÷%Ûv<è+š_û/ɸfMKº.Ž!ÿ*M:W×”©`œ:Duä£çý w“B›(Né>3I­–Âìݯˆc%£À”4ƒ6­9Èh¿Èç/”ÞUBxqb¢P¡Â/keXÛÈ ê`÷Àö9ä²Ãï©Õ5OÕþ‡‰¬çtì#|?#'ùÕ ÕíC‘úý ¥¼\üšh{õÆXºbIä}VÖ‘QÓ5kÿnøyP¦§÷è—Më-Oïj–ùdÒ¡}dÃ’‚ŸµÃ2/Žá~¬qž=#¥Aî†ßq"–ýL†¹t¡ÃO¬À¹85!°o~_«LI»s§…11é#|c̹Má§,0¶Œ;ðù¶¼q m¢0’€ÃÞu4âÈ+­å¢Dü*Jî¦Ý‹ÔzðjûÃæ=C¿‹§«àñ×–w#¾ã„Qá³D"÷ ‘±’ôŽArÆÉpåeŸ¡OèHèÃ#µÏEj5V~¨k40ÀV­ˆiH0ýÎæà¿–Øâ0ùYj\‹¥æÒ|h¬¿1}ŠÈ¡v‚†¿tšòÐñÇ·l?ayŽy?J}4y>µÀ>™Xæ<@GfîÜÔOÔ}¥ŽÑ‘ÖO¿Â|ÈõÔS28™®(9æ4Ä ô|€ðsržxËõx.sHg¼ª¼¤ùõc¦ÞB¬gwšÃ;è÷oZ¿oD²]„XxK{F¿;§3l7¼ ïz¤ì‡#¿OêwÜXú´é’v5U¸k›x™}eq»Æ++¾µ1¦/ÖuB÷.§ST:Oûöu}7î– }½8ÞôL0E)Vk¸ûw8~BÕœ_fàG?‘\ù¹~¸‘ƒ|Íëθ}#o{ñˆ„JÌaœYˆ9ƒõo§O0ò¶º-BÚñý"Fª·æº’>&è¬ÇÍXY€B Skâó„¢okjÐc:„ã —0NvÝtÝ‘ðcqÆýôDßq­­ ý(!¹Äl "‚;ïü‹ìNè““¢s‘a‹™>%”sÓzö…OØÃÛ/ÚÀÂË‹‹ L²bÜì’9Gw ›\m€a¿„|F6ŹS6˜ÆCEÝ3Öó+?ùô§>Õ³_>v¸é%Š%Ã46zvÖWïâÆ:ÌhH®Šà_Ñ„û¹˜hØc,Ú,I!.÷Ck ¬vf'4…Sû°ï^³E,<Ôlž×èÒ~: ÓdÉCYúú”xýoÀÄ åÂ:B<`IñŽ¡±&°É?ŽRrW•߬”nÅ?[ÁlIÑ?+>ÓòŸ,h™é ù¼¼\!y üÿM²ü€Ëv h÷Ö±áyF¥ß0dÓ«;oÂ碾‹¢êµ1`éz¦àQ|ÍNÊÛ¬õ*dµ;m¤…ûHŒU°T4ObôüGVQÂæÚ ×àgó=}}ÈÛÚ)ëL[àIšAk†«R5qWÀoÂJÿ¼ï“ 2%‰æÇ¿Ž–€1quSú±§2³žqC³„áRXï¨Ê¦&¢×4m_2{¸¸Ç?‘‰l¿"¸Áö‰ÂïדнÃñ# ³·èƒvÔ|¹•!¸J }zŽáÔÆ/&Ž[ F_4ƒÏçG‚>tÏ‚K|Ù“4bÎ"±M”§3[?ïÕ|ï]ƒD½%~ѵ¿õ&) ~‘o6ÚÆòpÅ´€ÔÌ:F _5öÞJ”sìmÕ";a ÅË~¶’­JtêÏŸëcKMÛKëÅ3æöרt þßÑ´ƒv‰rÂŒrtŸ:úÛ?2ÐÙ.*$t‚˜äôXÉÿu/òòd¬²¡ùlĪË×V i•ãÔÈV:¢Vé’ÄYØHö7[&Ašp£ðä¡wa7Ê>ç­Ág—sJK(²®1ã°Ò|²æª2ô)¶¨+ ±U[ÛÈ«+gõ“ëúJS錮p‚U\®I1þÀÉgr v±?;Ѱ3ÒVù´QçË‡Š­ÕT˯¢)€é8tòö±þÀÙ´Ã8¨_pâÖä,«¡ù'©ÞR‚‹×Œ¢Zx™Ê†€æ =ŠÙ7¶hó¿<Ê ´}òB°(%!xq;½…,´` -«­!¾ÐNQðè„ežØŠàÍmšó,÷ Ì$ÉñЦ",®|Ç endstream endobj 131 0 obj << /Type /FontDescriptor /FontName /JFVKGJ+CMTT10 /Flags 4 /FontBBox [-4 -233 537 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/E/G/H/I/L/M/N/P/S/T/U/a/asciitilde/at/b/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/five/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/quotedbl/r/s/seven/six/t/three/two/u/underscore/v/x/y/zero) /FontFile 130 0 R >> endobj 132 0 obj << /Length1 1706 /Length2 1665 /Length3 0 /Length 2711 /Filter /FlateDecode >> stream xÚµTy\g´±`¬,hýC¹’pƒE„C" —‚2$“Ì„d ×âz-rOP´*Òª /Å«…U¬' (RD”Ã"Z@ Z•ÝîûËo2ó½×÷|Ïû¼e~0—Ê ±°Š`TÍÎ r8&b«1QŠQ„aG ãTRH4¦‰BñRÀ†»¼! v 'L¸°ƒe±°à!®$ ð…Xû V80ñ4r˜,!í"UbÔXH‰»a$NŒÀVxŠ*×(Äq"Œ¨aO¥•ˆlOXñ%h¢R""KhBq£X¢ˆ…ETP!àÁ ”Ëáߥ¡Á\+^˜«’ËQÅ{,^\^¨¯-ðfñس¾¡\ñσœ-âá~bÞ˜HòAÇœ2œJ< ·cÉÀˆšÒ±p „á϶AJmn`pp Abï5„ðñ@ ÂTJ£µá,øf ¼T ±çƒKñç6 {¢øÉ¢¤É©PâøŽAˆJ™ô 7Ÿ›âRSbʱŠ0Š¥0^IôLŒhmV¿›Ë£âÚC¨g¡ajLMÔcyº'WÀÀB§lDà…Êd8j%‰ Ï[Œó„¡ ý¯5.AÐD$ùň@HôB ’ÓCq¼ ö÷~Ÿ†›Hmq0ì`5_D'hõC˜„'&5YŽÊ’*áT±Æ_¤d%”L¡‚S“?u|¾"1œ@ÌÇpéããCÒV÷G„(p3ãH>¸Þ‹Â’IÃ§Ê ]ŠH5@ Iô Ã%bùÿ™¼q{ù¨¤Ò H[þ%·ã ™Xªùï)ãBÃa½eªAÒq>±ÒG¬†ÁbŒ/£zÌîAø|°8)Œ·Ik %FNŠk¿ŸÄÄ ¨ §q>\¶| +•Àa, Ɖ‡ïÐYÁ¿ål›¿–“6žðQ‰LG')†d‡k„éè’ø`µVD€NCP Or– „¨‚D4šÉptbˆãT VÊ¥†ˆ }Ž*˜˜\­í>Â|¥i×\LJàp±¿Ð? Á¡+Äêv¸~¸ÿ}øŠþlÊGé’í鉪“©L@eº:á§rptÎÎÌÔÏRùc—‹Vº8ÖÄdVÃ|Rã]”ï¾nu^ù†Ãiì ÅS(®´®#†K6OnÜÕPejì½ï‰¼¨hMEzEèç¶} òceÝlé»–ÊmGoô –-nƒÒ8i¦úlVÝÞ0Zè? 8÷Ó‹Ï›Yu.Ù[yÐáׂ3›Ï| Bëž{¹V]Ìf^Ù·Ã,ªøÌƒýS¸Í8m ~¥¾O69gz¿áœ6:hð]t‰Õh}+¦pƒaÝ]yõòŠ¡9Å;’w¥LTú:½ºKVŽäܵyT ÒÈ¢¤Þ­ó¼†þÜläã|€³Añ·¼ì=¦ƒ5öéœBI`SŸƒÓËçæÓêÚ„ËG.ž$ä7vo[™ev"vVÌù‰ÍëÝßM³}c>#kíP?\d“”új•áê‘EÿܳÞ)ô]çºS ÷l¶$m ùÕ±³òˆXÇ–;§¸O5n•ô¤¬öåÞm‘H‹‡­»ÃýZ·þšõæ«+ïkÖå5üì Z,\Ê£ÉïVÕ;¾¸ÚBfôkGq#ÿ¾F©xt›Ñ¼Âh‡2¹SS;¿çTf½åaê]ýÞ„´gPBô´äkÍ{”X‡ðö%fNü<óÓq×¢}]_y<Ó»Ú`;—³¹X?rÈ}½nÇêILØQ}›y—«)©/'•aÙ=OÚÝž/¹ìöÆZx¦eºcø`ÿµx÷ ½¯uY†Ùä¹ÑzìVáÈ‘”Œ¦l~ל†'O<ØWjMÂøí¿l§Z_¿ÿgçìè©§.Ü»çùàqž‹Ç€T˜\¾,M„ïÉž³+çLŠêàœývÑÕ½[¿f_\ÿmÓ£5O=ý€oñÆÞ0צ¨’ó=uN_¹n¯Èð¹y¯Ôï^-Ÿ3“;PôÅ" ;qÂ/íI’Š)….«›õ©½[yµêè™MÁï:wȸ&È4É( P„Rº6U˜Pôò(q)Š Yàíý+ª_熬<î=.5Àô€iÐüᜪœM7 /ýmË0iZÿ*x*r m7;nÊ¡uÄm¸<ÿK•óù"Ç^äþ|Lä Ô[íÛØªc˜É·æ$?•qpþªÖE¨‹lõã?&‘rwò3‹¬^zõßLÚ1ËÆš`£ß:{Ãyò^† HUf#SvûE ¦hÖm9ÒVì±ðû¾îý1£³©G®]âõ0ê¹ÿÉÑ2JíÆÒ“Ù–z};}cÎ+KOÜ.¿ÒÖ7|?̺þ¡¼î¸y÷¼L«-'Ï5ñ­jSN¸¥¥Wnà nêðþŽìz6º¡]7çØÕ‰3ãPxã‹ÈöÖʉTšï„×ý’MC¾''Ûï}´~Ýfý(»ö"êqêýV7«Á©‡c¶Ùe_Ôë p®Þ]6—>ê¸Ün~ ßÖo‘ž§°ŒòèËtµ sùô…oœcÜ+ú~›Ôû‚æ~Ï2Öt§›«²ý’Èw„'÷iøOÑê¥?•[¼2›Ñ+ÈÉKõ¸J%›Ö„øU†ýP±Œõû¦cÌ.qgÑÁ}Yôåüs×.4“¦‡Ã¿]Z]“ðÓÆš^uK}ôÅLì× ýͥ׿a¶ìMªOÞÚÛ­S@~mÑòÕý,ÇÐ+ÛxÊ‹¹¢PgJÉ´Üö«5õ¿÷ |QöýÙ¡’¢—HÕP·n!7¡.gûõ{S[+7lÌÙp(¡5¹gïéõKŒö³æ¼=7+UøöôÒì(›ÌŽ®VŸf{ë2Îìgùœ·&'1ˆ³ËÓà»IÍ~!>í¼AÉw"ŸÂÞö§W\«â;̇§_›g]Y¾SÔ6ôNà!ìóÓ¹3 ¿`râÒÕÃ8ª—¿µ0]'²3òå ¤éAçÔ’S#η‰3x(VÝ[º«†Ô‡ç.^6l„Neª³7:¦ííòê3º+W˜9—7é> endobj 134 0 obj << /Length1 1788 /Length2 3362 /Length3 0 /Length 4485 /Filter /FlateDecode >> stream xÚµUuX“ëÿÑQ*ˆ„À+Hçè’&Ý *ƒ½ƒÁØæ6b !"L J:%$ä pƒ”. )±Q‘ß;<Çsôúž?×®íݧïç~îçyEŽZÙÊè¡ð #ËÀeå53ss$ÙÛ˜ŒÄb<áò26 —?Iಠòò0‘DIÆàqH2¨ÀUÈÞ€-H ƒ~ €RÔa"ÀI¡8 ð æ iG!€p@¹cXáId$ ƒ8/ ”€JNà "ÆË›Lë¡(#CëD«Ö—Lž¾ø@’/@âP€‰¬¹,`„œ@<@o$ àÑ€èØÛÚØ'm,í­l%d¡Æ¶þžø–¶vö'¥= ;CtNÚÛÚÑ~í@„ßK°°ƒâ´9P"­ÜÜÐNÏÎÙÊ.G[@" Cû6Qð4¨MÄûí ĽÉd‚†œ\`` ¬—?‰,‹'zɰ;øì¼1$ Oô 'Ä‚;ÄøãPdoðGÚîfOGiEü D%TùÉ?ADi=±?Òþ2ÆIÚ©5³²2üÄ!qžP"Iö'î;>è ¢Ä~þD"m†ùß!âÏ1C×ÇC+sÆ„"ß1$Οü/n~]¶'GÂȤAÁ‚4ô$Úžap;>s= c„¡­Œ¤=œŒ9b'K"ïdÓúé˜i*êJúÒtjˆCÀûùA¨I0}ˆ'2žH‘ûûâð¸ÿŠ¢18š¶ (‚œ=sÖ46ø«rÁþñyd@Ï`§·môŽrhn8Í QBÀ4KC1hzÀBHÈ ýÁÐ~µ`pU…ñ$C¢‡l§»1Ô¸!$‡þ’ƒ¸‚,tž$ C‹Âã°¢arx2$ñÿŸ3÷Û,„?kôÅÿ7±¿g#ý0XÊÿÈÿ-Ϥá·ÀýØßb¢¬0dOï$ÿðÿh¥‡ó‚€ \IV^QEáGÄžvÚ°¬¡« C»Ühq•ßbb=}q ‰(Éï„@ˆ™ßÐCÛAÃÈY:YZéKý‡˜v’ qžxç((«H"IÉC QPVBàðQ`ÐŽ„9Yž •r(€Æa´mVQä i®KUCü´Ô”9»Ÿ–‚¼ ‡Ä¼‘?]py(õÓT,,me?ãp@Žü/Sóß1]°í>Ø‘·ü? üuQîØ¶d"ÞtÄ  ×Ä¿R Vˆ˜ WyH›pÈ}þþwê—"ÿ«UëëãƒBdeˆ2y%5@UY>ô—JÏ7ÖΩ€6êo›v] zÂ&ã=5£|Rêbn…æ–2ЍË.—si;™$1L¦6ñqä,:çë#2D ðfF§Â®ŸÇ9‰DÂ~Ÿm¸V1ðe­û fÆÇf¨×“í k™a>QÚ"$ñÚ$;ϹXi8£1©Q°ïY:¡ÞÔúå²BÿöµBn¥Ó¹Œ…£ð»œDìÁ ‰ý¼Í|ƒÍtäí/œ‰Tä½IÉ÷¼®“=„û­Ï騅:ßâÅŸgÈ/ÒS½Ý·h±IUž•I7]dÆ©u,0ž‘é3Ö‚qì¢{Ï_%»ÐbE]¿ÿno*š'Â1þÄM8e.àÀ.a~QöGž¯,¦û»ö>o†ÕÙY__—‹=’ö]-pN³á8µÐ ¿ž u’œÁ›Ø´‡g ÅkiŸ¾º5›@á¯~ù•{¾¡F_Í›")ÕÍ4ùÅx¬ÓiðûæYtV´2Ë85±Û°è8•©kûúéø¤ç]‡p1öú€ám€Õo¼ôˆç#ªÅܘìWË{Œ¾õ™ºL*\œðí»¯[Ts㘺ºÏÛ®”1DÇçc„"c¿gä*I1˜¼Î×z~£llü“xÕoTµ8á¡Æ³ê24j 9¹!UËîR!Ä ï²l£Ám”¦!CïüÒ2É\Y{H|É‘¼„¿8»5Ԕ]8~ZÿÙhÛ 2gå¾5-þÛ[IŠbu=ïBÎx8 4Ä‹ÇI<#¯Ïņô±£ò¥à³Â uün·°¨‹g\N«ù?#e쌣FóZO4Zú¬Ç6n¾L_^gy:: ð.àQ oµU<êv]zfûû'Ú?«´©ÞÓ¯3}VI™õ/· Ú÷ß[có»¶k8£k²Inuþr=»bóÒÞü¸ÓWú†Õb°èÖ>M䚃Yß󠑚ܠŸô„è=àì›tÛüܧpÌQÊ;ŒŽ"¨;Æ+Ìœ}peÂ'üJN u ø 7©…§|dzjk53ÿTÞ¹òª£Ú&Õt~{æ0gYCÿSçzçÏÉpz¥…–ÎË) nŒËHž‰¸z(–{Ù]øøókB CÇ»ÊÐÑ…ŠÂzMôeªt׿‚ï–˜¨‚Cl³T&¶nèdСÜ—"–?°ŒTHÌåŸÄ”u_«Œc3 +Œ;Ì »VCÝ=U v'hž+`@®¼®Iºð̽×+•×ç⬤¿¨xm>]ÛíwëÝÏ#ÂÚ°))™Ö'^=yçÎ8@Ⲹ÷è½k3]Ïlj‰ÕŒ˜Óèý[ÙujÁÊs6Ä[å —6Û·44çšÕõcCyõªÍ%ÙÙz½ 4¶JÚ0«ÍIZ¤ØÚc(ßóYDfB…®™I‡\ÒÚ³*ÁüˆùÆdžöE}úÇFÍÒ²ÃEΨIÒLJSF 5~* þJM˽o t;«@¶‰]ýC ZEÕêñœWš+{œ&Þú'œ1v߃=C7íšvßg/t·JÓ¥–ä×O|ŸÒIøÎ1'?‘w××ÒQÅô:í¹omÛÉÂr@D}vy†²Ùl òvªøC²#g"ã¶Í·ÎÞåô¬ºÂ}S|Ÿíæ÷Ù·Zßzã™w ¡@Øê‰d«šÙ¿$£ôucƒeyo†«$j:‰—ñîàæHÓ!0¼7¥Òû(ÿ0l}ÄD)uoWZzïI¿¹‡_»$ðF5²˜Žµ²WÖænÚKÜ?ÈkwUÕTÑqE Ö<}þ0–L¾1 t$ÆçBañ*G@3=z}½xX3^@QfA0ŒþxÛ…€6 -êZ&ÖͶd¿Aƒöö•{ç— ‹ïGZM„öÈHÙj¬qEs슿ÓןðЉ.ìV‘¡ã­ù‚Ñòèé þ>•sXGåòh­l27Ö&t |î¦Í£ üê`ËY°>¡#oŽ£“M«M'q˜)\ÕzÎÞ£Ù <ïÓ[qú°$ùaÝbO#æÔ­šJn—u¿ÒšõýT"«ÖÄÇÃÉÏ„¦&ú´jv„Ì済mß¹<Þs!«%5ïÐÔtæÛ/1b©9«™8Ë/˜jû”àqŠÏÜÒ@jÝõ>ßU«ql#×ÝÐ`æÔW Ï4ùÇÓõ—éü.ŽTÙ¶Ó°å+rU|>gâž0ˆ0„Ž8m Î(Üöi1 z™¯7Ê |º¡õÕ½Ží{XxÝ¡Á€|x˜@Ib Bé6\êãvèÒt±xÇÈA¤æÀüìk‘2éåñ‹7‰]ç|ûDµy‹´•IN«*ét‹‚o¶J]ÍG»Ì²5}´1N7~}9²äxÝw½Ã³×‡m×ZJ uLƒÛ޵ - F­¶œ7naR'æF.¤Úpºö—U…nròþñ`L2ä͚φÖâwƒûøƒ5_!pðÓ×Ý«MÌý„éi·oõ̶Ֆk›zG­r:#˜]Ïf×_Ò–JžQy÷ö4ý ÛFgŠ¿U1ׄéB-w8›r…ëTû§uÝÉã}çÌ&Ÿ¶o€çw©&¹Ñã¨i©ÝïÝCö.IÑ»{«²Oñtµe–%éÝO-%^U n¿ý¢Y`¢ïÃeœäèÖXZ®tMüà ܸö3-³oïòšý`Rv…¨ÔÔfN'"X p©€@”SÓÓ¶eš|K+žÎ®èa?L¯ÁÈ[‰­áˆ)0x×ìG‘¸«ŽÂŠi3êUoŽy(¼`  èŲ§6A˜qÝ}!ØRÞçQZv¿vüé(~Çœ>7dæË‹­Ò1ÈýÇÒt²Ò¥cxŽUõò˜ee×} Në-aznСAX,ŽóBÖ6ÆQÊ•=,v?àÉ:zc;ÿ—#¾uŠjvË^¨¹–³Ë¦«§­öcF£³ê©W {².by<8ƒ¹ö)Wô‹õ9 ï‚P|Kû¾—r|‡âØ•uYÓ%ùÍ^fQÇQú*{?#[+Ù-‹š–wøCú,™sŒùhf.‹ø˜_FŠ©OZaWÎìÚÆ·W÷\Ÿ“@¤æì~r×`µ‚/É$ÚèÉôXɵH©áÃìÕîë–G9Þ¢?Ñ~lU²•ñze©=!’çtí—?3²Ø‰yLñÏ‘p5–¨å-•dVùr¶ˆxoÇû E//ã=u¾Æ[È…‡é™—\Ç‚êðòþUÄL¶ë¸Lõòãì[ØÜÄ%¾xõ;—MᥢÓ϶b ’?>ä9%&ƒfW ™ºyþp]n³£_!ŽMHò[º¢l]j’(ã݉L1X9?è|QBb¢Ïn2d›¯' ×Áh»Üwe÷›Å_ÜИçåÇ’¨RäsI~Ñá^«¬›Øx÷ù³ÌóŽ‘"—šcökÍ`/öGžÏ×çKð<њؘq®a»tBêŠiCÓÖRo¶ž?-Eºé¸ø#¬ gêKY>wF“ø­qïÀs¢OklØþÜßXK »ÐNj‹¢¬ÞZŒy! \ÌFXK4¾þäѬ÷3ñ;¶n|ýu°â¢O¥„нáG<Ÿ¯TÈô‹>ÁÄÑ^ŒÒWcƒWT4Rµ<óÂ-{âƒZº«o®iê¸u¾à—ºgÕ$—Š‹ýsBÞØ<ò x8>\Iæ/sË䉾šDŽÔêD ]xý!{m{ãUÖe'û¢ê™—‰G™[o£Z Þ]œÉÅZÑ[×¹]O‚`õ¨–OGqÓ#~]¸êN•â¾7XèR¦.n‘9k¸:t ÜË4[Òé¡ÚWŸÉ:T­™w÷Ä4ÅzhÚþ¡÷½©–um)Ž4³ýÓËÄWžhgÆ+:êÝvÃ周,úïˆÒ:Ø0‡jÝQ#1Î×)’Ayfiýï&¿ sž9"lcšY'XÂò`zùUÓåEÓ t<0»þ¸j,ûEò´£­Î oía•$ßÒÜ·¯èu?ö>ZVÓ"î;uÀHIP‚AשŽÊ2—»&Ú´q¹ Ë)#$+ÎÅõFx ò4¢¸óE¯¸»RVÝt’øÓÛ37ÿ@ài„uÁ.‡—Åßê«yëLòNkMêðÝ<2L¼ÔqÉVá`Ióu…Ïÿ<Úe endstream endobj 135 0 obj << /Type /FontDescriptor /FontName /OXQEPB+LMMathItalic10-Regular /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 60 /XHeight 431 /CharSet (/E/F/T/alpha/d/less/t/u) /FontFile 134 0 R >> endobj 136 0 obj << /Length1 1674 /Length2 1296 /Length3 0 /Length 2311 /Filter /FlateDecode >> stream xÚµT{\LÛ÷8…‘ãUÞ²<†R3Í” ¥7Õdjf{ö^¿çw}×÷·¸C¥2ž·ŠŒ‚$Áð„|‘H0F;…Át¸r/jŒ:ŒB¾«@Àár})ˆ18Iøa ôB1£2h` > R…¸s¸ B~ˆŠÈ`ò8̲’4ËÂh䆄' #Jñ% q®Ñ2l 7­ÄfûðA¦Œ&Mt40B‚ø>%MȈ’QP‹éÔ€T9œ2ÿp ŸªÊù¨°Ìh0Ôg,¾2¹"Ðøy‡Êýœæ 29û/‡¯q¡rägû @6]â/÷–Ï”ú ]Ø=!ˆ…³mÛ`‰¯ÐPªš"õ–ÀAË0“ÉÄ×i†OR¾AgÁ'×â40‘T4@o ê …#¡Bt2ZØR€=‚+!AC6)€lqê•( Ù™¿€!"¶¦®%жj£ÅhKnˆTôN0À% d0ÆHƒH‹ =P5ª ¾FŠb{H¾¸¨¿Ú|îC¢Eèâ0SÛÃ#½ànZo[I4N3tKEÔ¸²èiöÌpÂb“x‡N ð—Éy!H{OB"v>cf,Ñl=o¿ ‰=¬Ný •/©×#Ô4‡¥ÏG<1$çò}}G¤‰ˆÿN5N¨Ô쨌Çá¿Ï)ÈÄùjÓ@ŒЬԺ°-ºaÍBÖŒIˆ7 Æt4LÀÕ½8ñ4 CaBü·ŽÖ+Žp,PáJI ÇR} ¡&{‹!ùâú,W>š&G4²*’ÐÅTs\BIIÃáÿ3qmzuºPL¾ËkÛ`Lëâþ;¼MØtÈ¢v%)=¦kãÃéÜ URœQj[(n±·Tò&4:xÂ1|›ØµÅ£`'M‡$®%œ½ØŸå¹•©UM@šnb‹ "^Ú€G‡ÁB.èÊ*dNßW’%ÖŸP’*œÐW$VŒ¢°8ŽÉÃU$ñB¤y4[ô\øÉ `02 @MRöŒ…B1paX§5);ž½ ¾‚ú|oYÖ2†"£át\…níoBP 7Ï ±‘ý¾|ÍiÕ€ûUçßdûøæxžëÀs¡m…0V$Hh•©l¹@,2EÜ}Y³Ó 4C%çF©Ÿ2?ýð’¼DÿmU»¬¸îügù}pëã'yxõȾ\¼‰h®m®Ü¦zeL¯ëî¸Ø¼íÍ àêòzÇìN÷bæ¼¾¿áä‚ê^" •a[»¹ã¹ÚiŒ*ýwòlÁ=í^—}5pë7_ÏsPuìtç–®?¼ ²ï½n{ðŠ‚E—ªeYó75¼ñnH6E$>¸ØKè%lŽéVëÜ_qÇ©qçjûÒÁ[G+K”7­õºîç %“7Íﰷ몪Á¿&UÌ÷ç…^ßûãSÞÇÂ.o7zEˆ¸†F÷®O÷]¤¸kÓáò‘Ãq7ßÂN4í¨­?úÏévÙ¢yå5eŠbžßž;‰\ éqÉDe´[ü.çÌiñ™ˆß’jÆgòý>n1\*òtRgpn&öž¼SHVíW}ˆíä«hü¤SüñJÐncÇ统ÿ1à¸Ó{¿þzMcîµC=£~õúÓlsë7ª[ŽÑ1êÙ|§r“óS~ú§{/w"Ú—ï_Y•î³$m“¯èÕ鞢eÝ2o‹ÉkyŸâú–o6¯³zÈ|°]>'’QdM(i迸"Îí)wP1zéwg:Ø6­ÚªbXæ,x5-­F_ /ŒSáøíºÔ¿ é²¥(×.ZÓ”·ì®×êÙåÒòxüœ J|–¤lº/ð>okï²ö×c&6½³vèèº8ÕgE¾â0ð°‹ Ï4*µ3<³C:.8+¹¸´ÝöÌýzmúÖS’ö˜¹wi—¡gÇNî~0U4+jŒ4!8Ù½s›”nôIô8:1åQ¨tÌ-üd“õ ¸pÉ"ÓO¥™Ož .¾ïÙ¡¾®×Is]RB¥d*¸d§)ßü¢™,êµç¾ó~æ|Ë4wÚ¹=25¾æEѱ¢«çó¸)ו&Lýð]ÂèãmëììürÙ¬ð endstream endobj 137 0 obj << /Type /FontDescriptor /FontName /METPUS+LMMathItalic8-Regular /Flags 4 /FontBBox [-24 -250 1110 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/t) /FontFile 136 0 R >> endobj 138 0 obj << /Length1 1706 /Length2 15006 /Length3 0 /Length 16142 /Filter /FlateDecode >> stream xÚµºeTÛߺ-Œ»wîîîîîNp'¸»SœbÅÝ­×â¥Hq÷âîöÒÿ>çž³÷½_ß‘‘ü²æ£k®ù¬‘¡$UQgµp2J99‚Y™Xø ŠjN¦Ž¬,Œj@+w{SW %¥¸+Ðdãä(a ò¸AÖesÐGì‡ /%@ètý0Z̼Š@©†·3@cúÏBÅÉ Ähfêöa:ZÙ8i?BÄœ½]m¬¬As°32þÍô7ZŒ gjnçäéfg0u´È1)2”œD*éh!îäàðѵÂ_ú$l>x9¹z3ÿß¶stòtôý,m-,ÿroáî̬éhã┕ø/÷á0+ Àº€^æÖÌ þ£—¿0ë_øƒ_g'g€¥©½Ð߯øñ@ðu3õ@®î@ßÿmø÷+7ÀÂÆô!õqAø'»¬£¥€÷_ðG'ÿmú/Ðü3ª´sjáähï °Z"0+9>$AóÿϤýG-)w{{%S ÍÿÅé:š:ØØ{ÿ»ë¸hÿvK£ääê`jÿ67)/ …Š ÈÜú_Ôþ —™~è_ÔÑÊøq,ÿ@šGÊþC»÷Íßë ÀÈÊÁõ¶YšÛ9ÝÜÿ ~ñ°ÿ·_³„¢’–Œýÿ-›ü$Í,l­lœ\SWWSo–-°qr|Y?„môúG,f&G'ÐGÀÙä°trEø{ \¬f ‹»©ý_ø„ƒÀìäüŸ5 €ÙÙôc.í– ÿAYÿ ý×ÿ…ÿ½•¿3ü8YþgCÿu¹ý³V¹:Ùµm,>.öÿå¢h rµñÒgùPëþñúïo†ÿV€ò†âE‹‰9yù2r°³Ùx?xàøÐ4++·ÿ¿ÅšÿëžùGÕÌÿ÷úï€@/ 9ÂÒ¼“9˜mÆ·ˆŠÉ¢©JhJ^¦“jl!¹$¨¥¬©N\‰üm2 pqð÷ lªb'>À´`ÇRÊ0,û·õ¶Ôš_7ª";¦Š(’¢ãyZLš!ÙŠ‹A•Ýd´‡ry…ºe3ÙíIíÄÍñ#qÞΞÇx¶Éw´«t2ƒÊöÕhϒ߬­˜®öè^‹Ÿð»§ºÀAãLûE—èfM #°Çå`œûz0vÁãJ„_biv³ù0$i]Ö—5aõ£Ýº Áˆ)+­¤Ô)ØžYŠ8iQ¿PÀ“ŠÝºÝƒ e§Ä©¿†áµ M/>ñ²_ûéŠh¬„dHž¬ôÿɰ£àËtöQËŽ°ênõDôäO£“$fË5>)òüÌf¸uØ|mü£ç ;Žð¶ ÷вd“Jì˜}ÜÃ1^ñzÆ,‡ É—Ž4 .Ö¤¼IpÏlõÉM—È–7Rë²ú\êOX9. @,Z^ &w.J?£^zV¹ÇUrý®e쀤ºôV—§ot“ üòS[›c1 ¡Î\j='IX”Ó*ˆG\ ‘ï׊ËßBg»lÔµ£77Ó° š´æ‚â©“Ýš~%ËÈc›_îKâ¢Ú Ý0£»øi<ÇÈvV”{ÂE —–­ )ÿÏD“hnÍ‘½“ÅŸz:(ùZøcĉՆž´e ¿&Fã¿Óö5Q¢*µ(l4Äj-żÌ&ß,˾å弤bøq>…»‰%&üRÃÂX(S¡½+YÕ'Sà¸Pínê.ôWˆæ,º¿ÕÐDˆÈ­k•º<¨â{ï c Q/ŠHË[~gÓƒ—4(¨ën xgÖ„(¬l!àÔ'ðIÓ0ìc"Â[þ>ׇTZ5´ïv$ÌÄFl¸)w—ÜŸ= `éQ{¸ÏŠaßewê#«½¥÷Øö^y–i{àríf^‘–®V#@ÖL'±6:㱑(Ï娶`©#á7¼¯ ¾:¦îI# ^CA¾¶uÇùC ß'”_O:'h ýéa#mÌÊ3øÀ2áKÈ7.…"þ… p±ÚO­#H‘v¨¿muSR™0ù¨†@û3“ÂÈä?r:óÌ9àÞ£ÄÒ¯ëC®÷ðù-é…ðá8„Fމ!HàÍþ±4§Ìj÷b6_L¥ÌðÃQ,äfÆ0Bèîz3k9Ü¢BµÌ\’,E+;âˆo±Û­öcôŠl2¥õÙšÞ‰¡DßewÂÐt^\(ÝHE!}pÞ[é/bá N‘ íg)Ï„aÊÓZÞ3/“qÖ”«Èɺ&AjTF97°bcòpmòhé64Úñåw–ð#ÈlùmoƆI”Ï`Lid¿T}¹\S‚¢·„3Ä:óÓàö ªíÆVj ›é1Qxè~_hL–»PŒ4ÂÈ;nåÿÔ§^ O\,G¼ö'–Ñbð.@ìÇ™½;=bpÐO–Æwý¡¼k߸M¯ñ›f¼¨àÞ¥Pˆìbó9=š?gqXoÇFFl¸=ëòg õWæç^ È Îf˜¯[8:¢"="•­‰Þܤ’¯xÛǺZŸïÙ!õzáŸb¨tŸ†T¹Š„™F™gX'v½Xž…Çsn™úx|k¤)ˆ» …bD›èëôÈZ.(©Èè³§:—)Ø-CƦzˆJ{¡,˜s›æEÔ‘|ãD:³“r Á†¸6DÕxÀšª¯áÓ™„k4äb¯Î›¥ø²)û’FBS”tgѹ‹Ïa¡rÈ”Ab+e‚·E…øÝ·#`ÌÁõ­Ùx6Š@âZe¶š¬`BátÕ„AãÅݻʰ¤ÛÕ¿Ýg²›äQÀŒœõ}¼;I|øN²^v(´—I-.ËÝ0ÉŸîT\¤àzÏ1ˆ&¤`äUs[Š÷SO[ !¦³CJgb±åÎô ð»ß/(~NÇWUvš/2‘¤Pl5xb…0?ñg[ä#5¼Å§’ZI)R0Ñ,šXyWf5$i¢Áyˆf5:d°2Å<$¾÷òÎwËŸ½)82šK¨" ͤ]Áº…ýä{lø»JÞò¤jØñ{ÀJÒ¼1ì+ š¦]ºåUô̹›å*ŸçÚ6IÈ!–ÁŒq_ù´c&ùÎKÎ?7ÂV×c¤úDØÆLšwD³Éø n͛΅‡Ï»KX˜ÓÕ%éƒfIüA5†ÿ-ãesŸÛt€Ò³éb®µ¸Ut)Þ‰…¡A;eM•$’‹Ä+£p&F‹.Eê=„Ws vÄ߃¨oÊõ'xsneVYáŠh¹v¯‘ ºÃ7ŸRƒ3“ï_ØØFwšá8KªŽ9«Dˆ®c^ƒO@rLÉŒo|au[½lªLÁy8Ç`¤ê4¬º ”ØÁ–îç,»$$aëÉŒ¦ÆÝ/Eæ¢D[¨{ÏΛkà8RæÓá*ykLîOU.n´f44^ø±TœÄfçöÐé'¸Ñ*UêÐHÛØ½Ÿ¬„é$œ,ÿ¤Tg±(ÁWúùßbtƒæw‹ šå\^¦©ÅÌfP²eŽ@8!' ŠüüM¼÷xû•™aÕî¿F™™ì6_‡+,€´úºŸœðvãÐ3…Ù} ñè}¾ÿdR«°Í”€XT)§Àºþv"q?˜Dü­òg~5ÆšiksŸÍmQï¼y+ÅŽôöŒ]8r7øgI«`jí‚óö[×+Ò!ì·Ãoˆ¤cŒ<0×È«±ø&¦öÍ?ĺ Í~G1œ#¨±ARR‹® Â/C3*ùJPÔY•DTî(áOð\;˜0?Iÿ0¥CYÈ–è”Ç‹ÙÙC9fÁ}.Ô|‚ï ’ß,£«;Í\އ Òº¼dh/xµ‡òyÈŠÿãq=ùbý Êf,æËzcÅȺ,ðTdØH·Žþ‰bN†F“yÏ‚DXJX¼¶Õ Ä"mÞ övÊC—f±“%”šð/Nµþ.êÌC[½+Y·¸:ôoÆÃ¡o˜É¶Ü(o„rF95—›úÃ_¨dæFŸi“é¸c-÷²÷„–›–1üu'ŸPµóbð~‚ãô©’R®Bôe‡÷Ëó44#«ŸÜU&F²[/„?7ºÇO×÷œ^ ̯Þáx3•™µ@è|WŸÒ7QEŽ.ô4k/óq Möëw“ÄǦ=¤@Ãü$sºYŸ \¯“GîÌÕ-ÑmìjL¨Dº°G>ª ˆ'A65è ba’`Y¬óþ"¨êñ)ãV+6‚¤öu”8D¥‚) ·ó¾´w¿MÜÛ™Æ Hoåxw´¿¯$¬*@È´ì"¯äðÍ·ÒÇ¿x‚ÞÈÀ¹ˆ¼k>#a©c[¥Ú¬Ê‹V³ï Alê¹JÑ.€4²¨‡4Æ’Í*VR¥Ñ5 "¤¬Ô"ͳŠ ‘ÿqÞqŽšã·tɆۋÔa…³¨Ä´ƒ T£¬ÌE³=KQ¥ Hɰʖûöë›àp{øbŠ‹°¦5æ¦êÐä[@hÿµ÷÷xÁi# ©Ž?©HÌÙ»]ËLâd½jáhîC­Y?\Û›;1eÅ›fß` ì¸Ñ£5¸…3p#ýËts7ëîªZý”‚‰0d°0«Aðçú¯éö4X[¿ÂµàIÇ7E k_ºåFëο¹V¨ þPІ šÌ¯ßü²L_ÄpÿÝG8½,Úá·óïUÙÀðˆKˆ}'¹ÃC¹§1BÎä´á™t—´º™%ùšIâ´›îôºš“„/ à߉vÊ>;]ö¤yÝ×ÿ—Ãi‹¾Z4_s [n3¿%e›î4Rzó„ôpyªƒ3çÀ<Ú"è+dß tkðr¸9 \Ó§³WÉ8Qéw|F‰$L,ÅÑÕú¡ô•+®4лb-éÐÅæ›ÿ•£8OG2Ÿ?sª9ÅñzÀµÑNZ½òõþƒ2¡cíÅBvΜ°k4Kê†èH~v–†™m´Ö`¦è ÂÇ5ì½ÞÕNB{MXÈ? î”N˜%ûOÖ7k?ž"Æ–g̬ôè%¢Øgöm²µÓåÕ&˜Ê¯«é†"¶Æ`©ð_èœô7ì‡ýÄ{Õhè- VÅÙ'³­e¬ÀÙN½©©LšÍËÊþY ðÈ‘7Jjj<ÑÜ8Ò])ƒôçÃ;MĨ”3`‡.$¯Âf#uÅYû ×JŽíøü™Ö3XA£1}鯭ä pEÕ;˜ÑÙ°´l’mjÅìt=¯„¤ÕŠIëo»ºb!ûÖ:5¹Yùl(â”YçA4ÆOé…h#Ë~]ü”B¶4ùySÄPº:Я–ÇB«&ÎÐÁ+«q‚ÓID4Éà5¶î{ë3šäÉc¿–L}¯øÐ‚Í´… ¯‘ ‘Ó¹³ð4‰©¢Ž‚—Sá2Iç¤4NÓz)ï¶PÖCSö$ÖWfOÔÙUå—ʰͬçMX•ÖSZÞÞL[»¸tiÇÇm,¬•$µ»nG§eø³¶Ä˜dew[O Å‚U„€º‚vœ dºË͘êX¹Žz%U5Ò¯k´_dÅ&…ôló^ïýóÔá~'ç1k _e\O¥‰.)ß¼Œææ9HÑ °ñŽòúy[íKfp× Cü~i­ýÓl_ Š ‡M¾7©DË”ÑMÕüÅ;‹(é–¾ÇYÚä‚ãuv€¤]¾ðô,}¢à<ÏÜèîª[2K—XÃg{(ÅH‘Rí7>X g#Û òÂP„]TÆ®¥oÜ#úd§¹;‘@vzÐt%4¾!AÃlÁûÙºÍýYj5ùý³·ó¤BWSh¨LoÔÕ°aâA!aÈÙê2ÄÈ16L½ªUd—¸h…÷]õcõ ¿¦ô€%…>°6XÖ¸Oó›_Õ;{0=þb"±WeÈ綪j1 ¡·®rØÈü‹êK;¦•FžÔN—\ë~|KÊÝpÜ™áHÆ,ŠPpØôÐßëÂõ@&>"ô} DÔk^¿×Q… ‰¢8†íj#²*íÁ¨~@¬G2°WA {Ÿ ùFê Ê ÅP»Ü½éêP?þ^® Fµƒd£]OÈSðÙÿüýÉã›È t~vR„35fT®IE‹Â ž®¿UæOý@ø>̉°Ê$&£z¹÷˹‰ B1mr G ©øöo¢6UÁÁê—ó]A;òÊ^¥/`kŠPjRË>5>BµŒÐ-ÎÜ>œ'¶—ŸžPG©eM‡!ù=¤ºGƌە”2˃!Sô’*>}«¶FHh´ê2ú#ŸWÛÙŠÞ§§Bj<ÿ¥õ*ôJf°]t¤qÂDxA¼ŽÏÂϘ`‡žµ¿6ÄKâY)íÛ±“ûÙ 1p/9Aº”8°¥>n¹üEÁT]+– 2v»µ ךžì“xÅ@Á¦ÕÇù·Ò¨w+ÿ[mú ïP´U­­Ð»æTÍpêÆ3Í#lBCõ+KÛ7B{ –ì-®mnº›I= †&†ÊxÏ1‘à(z¦½ÑÖ[\kë ØŸ“ùɇ¢9jÑX=Ëø sØû^á«w"Ã,£í‰õgˆ2.}Koÿ­#Ú‘M,5¥¾ÄŽ[EîG(ô’vô²sè¥|½Ò0ôÏ1nro÷Mɼ±ù/A/WMn>fl»^BÍåµZß…,1üíÛðl50JÙº¢a*×?ô?ï a%Þ7”ƒW‡½/RZÎsNî5½4Ïù¹19`wžÂ¾PË©‘ýR'OÍ %Ębþܶ´²uО A12UžyG:.‹`MÞÂ9Lì§ÒAÙ~f½¶yŽÌÆ8ó«Ý¬ê’ˆ¡f€«¸®Ú6 Á+~)Ã#W»Š&O牄І Ï6äÔ”iBö*ÉvË~lÞEªÑëÑhÎÁcãù%ÀñYp¦ŽØšû(ÊÜö"ˆ¶a§I#wlg)s^¼¸iòbö0¹p`$§à ããýîÐ3á·ŒVÐ k5IЗÇK ·çÞx浩`|¼bwM;%‰6œlaU¬ VHþì³7Ê„òâe¿L¾ ì†É*=ús:k7S½3>é*îˆ>}Úž/a`í%à[ L¸´ #m~BÇ€.¨ÕX³añ¶Ã£±€#ø“S{ð¸ñ -Yî~Ý# ‡šS~“Ž™¹ó‡ÁrÅçùJr¡…7˜bä~ôìwùìë܉Õ-+“ÛLâc›?Xuq’âõž»e—ˆ-Ögî‘ÕÜ*«¡X=±'_+0¥DiiF|Æf½p®æ.ФËrŠ›´=‡ ›2Fƒ.sà!R€ rLx3ÊÕ˜û§Ñî[Èâ·;_ §’rÅ3êçdäãWXŽ>åÏñ¬ ÚO•R~¸ dQêBÖ>¶Ñ|B×{€h’صዲ(ÅW‘–^(ŒOšÖ¡“Ã*CX§ãÂùM$cÛ³Ò‡œÇi¯³Ó+.Ú>¹‹I‚ëyüPà9› }wjx”]Ê+Õ\+ ¡F ðŒŸj7„^ˆ5æ~ŠîA¿zÙP/„ V¿iqØîœ·Ž¬´'í3ÿ¿Á©}ÖAòÂëé˜]§¯¸}ÈBN5…ã÷ÉroÃÈ{t²Ès*…n”8xêßœî_ÐÊØ?óÀSï]¡÷?±íñO!Ý|E##™:)ù„ª|ÆxùÀÛX²v/KNÐÈ2Û¦ûHê7s"#éYmÇ´óN&ØF'CÉQ8Ô”¹6·‚bÀ²WÌØÈ¸¸ÅGû[‰µ=VÁ"†Sð¤ùùüBÆ .ÑÌ´·VZ±6ÐC‘E¿I›Œ ø”°×ðË&<î•\+œƒ9­1` ¦¶ +Ù7[%Ï7aêZÂE=¡ýª•ý MÖÐDÖAÃìÕQ#8¸ÿã¤:§6i—Î'W¡é£Çï1ó-w÷̽¦ ”èk¿CÉ €rªPË\ºZõé}ª‡­v[S|a¶¡¯"Sw¼žÍŠ?üÝÊ Ó4â‰Î tæuj¯LN° Ó¢ÏâB9®ÙÅl¡ æŽÞÆ{]"yÉÞ÷ôdiÉ!GñïºÛ8ŽØ!XÕú ¨†]Z´ŠxÓì…Ö »AÚû5)¥åYëGˆ“KӢȢ„Ëîƒ?†#”+´+ߎ¼ßF~e  8$±Ûn²ˆÊ°òSoY`1˲'¸YûiŸz’g°Ï«í‚{Ù¡V$ÔÊ}³Ni+Á"ç°Mü6XÝ$WæTnf˰›y"±Nõ"±éÛ5gš²A[üÜo‚×ÂÃ=§E;Bö¦nÀÃKÑ ßá៙Þê½ÖÖš8KÄ«6u)¨öõˆ§èŸ½Šc™bƒañÍj¼´ªN’¾ÿ$ê—ëÛt%|oÍõþtÁëfm¸i7¬ÄYƒ¿ í¹¾PÞž6èÍø7,á+íhµÙÙ6‰S9_سÁ´”Q؉ƮT±BºÖñ1r¶a¡:Dð—™øä%—jĺƊ¦AíqÔD°¬ ÿ+&W‚ÏyÔºc¤ŸQ¬§ÞG'$¡d↫<ΰÆÖJ!F¬An½R.«Ôù£iç˜3™š4M›æ_éGÓMÔ´+»îç´™ V4êJéóûÏ&§¿ïäéô…,:A_ìc~1ØDßÞ`hjiQ0î3N#äõÝ.:âû䘯C“%ô‰ÔÕ/ÃD]SÃWº}f5…:Ô®Šé„š[èíîj{«*t­PÂgº’±7 íŸªË{#›{;û+·.ôe+ ôøÒßIŠ›w[åÇÕmkmGŠ©éšØ†ƒ+- »¡~º °ƒÓv›ËˆÚäíín2õÁš…OzŒFt¥>ïi, Ñ!ݬ°I·õÊ+¼ö÷Œ´ƒø¢µº¾!5J)Ì/!dlV—Ø‘\rÎKÞ½¸ZŠÁèñƒß«0v£N!iDLz0¤!qø­^ ã%]ÊkÞŒ`aÉUYŠ~­.ø_Ë„ª‹3oš¦åË7xÇ|ò2ó²i}3Š#CIGÅ•>RÎF RšŽIˆ3^ˆÂˆƒS~MnW)‚œl¬uö}_Jó2“tåj-iKŒÝª€Ž^NXΞû<¿ ©ª„Š}C/²ø/}$tô‰áë/ÍÙE‰œø© !;›úx¼8î3%gdÔ f«ª†ŽIhÉùžt£IVæY z„¶ÅªÅªçŠ9±ÒOT{]uº¼ž IÙf%Ý,¹†É¶{Cnf:’[_ðÙ1ôB,Ù¸ÿÐ:¿ ô²Õξ2¦cžU¡'‹Ò¦–äÓÆžk¡©=0ß)ÌÒÆ£‘¦C«šŸ^ߢ Qu—öüGî¢f÷­æsN˜½ÐGtøº]–téÞˆ,bŒú,Ú‹)Ð q8þŠ wø½}A?C€ä§%Ð?sFM‚Bö imF© DÙ~Ö’PáÓ†©e‹Dõ6,TJˆA15Äè8OûÊ‘øG¬+>'\ÏÆNwB‹µ¿xfiÖPr a‡6'²øDa™¶Eaæ„ý÷û×Ë2ÛkoFCŠQ ÕoaFxrë_ƒ[2fS­RiK>ŠçöÛ¯S_ì=Ø Þ¾5dVDa©»s?sÚéu.­,¯Wó¯¡qA¯bBµ¡‡ë~Õ™¾Òÿ¡tñ{PbÅîDáÚ ³¿ŒBCb ´ÑQ|AØ_¼zÌkWP²c>øÎeßóSË 7ÊÖä*àšPòYgñùw~˜\|tS…­üpeÝתùjzÅåþBÛ‡hXrrÞë——$Yö±SaÔ¼¢m¨vÌ÷,—J>,˜ŽŒùEÎÕö <0?7ðÛá~{.ck¼øô‘cÒéÖ.¿.‘s_íë`.ºíœ¡™ZˆÆ =ö0ß|L9/yúŽãF§ÝÅ—ÃþܧǓyfÉ ±“Ù¿ ±ñŽ­W¸$„<¿ÓÊ"{Û&>—$|9 @ùcPZkcz°î¨áŠÖnÂͤž•5Êh+2X¡WjwmuKnXÏ ûí" Xæd±0w,ÛdÐî L÷S=/…ò—RÀ+Ílã$w"u?à¬nµKxï”Ïy'·‡ƒ÷—ú»yýjˆ%ÙgTÔ*c`Ñ}·*Ùu+à8nJ†xøˆÀ„>)°QB^ûè5ƒ{]ÂÈ„ÒH;ë´uÿ.Á4³§ºP«0.‰jìØÚ6åVƒ@„w9à„oEE²°‘wë¹àètB´c­ˆ@l¥bA½9ð•2(¬ñ"±À£ïxö3õN×_c|iàç½Ë¡=Ö…¢i) Ê?Ô›º´œ®$BåY¼àür„ò2¿«:Ø‚šmè1Ì©íÞW|(ùPÈ-™ˆ|QßÇ"÷djݪDfZP"âŠg´¼­$+Û„‡ýìµ<©§ÑëLÌ£*"á×” é=«¯è2_‹nx‡ô=,)ò˜ô³¦(+ŒZ³,w•˜?Ž£Âæ;Êjª¥‘#NñíõMQ]Õ©dÆ$¿„5tcÁºt€/× ·—÷ša¸Ô±°Þíü5‰l˜"~žóm½M…ïºÏ +Ïi†ûjÑÆ5‹ÌEÎÅ¿Y`+½º#ñL¢=N?= ¼ègp†©HõГ°‰ÑÙ±«PCMºQŒžÐäñtâ\às¸§Em^þrMïüFû“îøþŽÎ/”Çl6Ÿ#Œ$HÎ$¤R}Ù°ÑêÁžó,þÓ> Ñ%5À“cÓ%‚dz(È"-¿(.8ðÔÉFG'lÖc2%þ•Qeµ=nÛö*¿ÿ'‡>öûN¸÷Lð&­¨‚…¦Q—5=N d´DþŽæctéB V®Y¥‹¢ðŸUðœ^âHž‰BcpÅìk6߬DZç10?HšÝá• ßv"¤l¡­dc´BÑÁ¨¼‘Þ;ޱöŽ€c–sØwç£C.µúȯÂ×›š½¨w»Æ›ðìŸ vµ-)Ü%;ºx©8órÉ.Epå¸2¬w7³PÈÇ ßªíé°”ÙÛQpDÖêYä†#:R‚-³É…|nÍÆ’$ 1>?g®ÚŠB,ªõù‚¥õ…ÐL¥º«/¥†"Âe6îê„Y¶íÅÖf-±ýi»]IGÍ$ÁƉ6 Žt—!cBep¾¯j9_rƒgºµˆµÎ•{u•"tÇj-šÙ\zï…zùN¹»ÌdÖDËö'˜ðP-…lc½}ÿY…ûÖë$Œ¤×$oÖ÷t0ÌŸ’ÜÔ÷Ìåç®ÁP‚,ë¯ ÖãJN(Iä»H­0¹_cÞ=·%H÷}ÒÇrÇ4áÉÞ»ÅÀk@fP"…¬<õTÒ­äépàƒ`×þyIìdͦì6IØgÄÌ%J<άXö‘ŽèI!î[þi ²ÆJgî[cè=éš'-Ë,Q1!F¥n‘±ŸÜïð4½]v2îʃÏÜr»î«6œò?û>lbúl+Cæì‰ÍôlIæ|Ùv¢5#SÓ¥zûVú÷jt²Çô—èåDOïåç5l-ܬ«$ÍGæt~NM± 7U®·‹‚NºÒÁ^ar:upcþÒ {{ñÄ rÍà%€IéÅèÎñCÆBæ%¢á'X5sýiŸ–Eô™1–L!©c„7QD-+ùd.™û@ñ÷¿, àŽ‰˜wŽœ%Vãh5SUpµŸ¢ v)ºÊ›@wŸ_?IÕ‡ø™V=å®@MæùAX!Uë­ÄH¶¨- †YW—f¯ÇŸÃL+)·9¡Úà EDFó ÷Q÷å dçÇÀùÓŒ¾Ïwf²røørcd…âê»Û˜eÝ¢tÞc1qc©¢ö˜\Z©L¬lå¾F5e Téàp€{Ík+ÛÜœC츼ú®iûPó½öáÞû°Î†‰m›ë”oÄÝ7×Ù]€*Îð¨Ö¾iê_ËÞ ±Æv—R£ÆÞGã¹uÔ%c4 œ¡wáf `©Hƒy˜=ÜÔbþ Âr Ž-÷“5½ÒøÐG†*IÆáݤ¨°¶µ€}õß¶ÉÏÍ»c%¡ˆL$s% ³rä>Š°Ý²3˜šñ•_øå<*èv³5#DÖ€Î?™åÜ3wÀ?^yÀÁòë ŒKB £Ò™Æ:^E¼à)ŒyÉAܾà 5]A,ÝŠ,^ëÂz¦uÆX{ô6 — )é¡#ë Ä\a¡µÅê W½_¾°ù5Ahêiûh·—olú-Tä~ššI1U{±¿à»ÙO„ŸJ%•ÿÎúyìEñöý'—±À¹6ä•éÀÄðo""Î5Vü+ê¦ìf&ö»Ôž‹Sϲ°@?èÓx;…ÛmDÞç»æ6c…Á”ºu^¹À´'*”AÙ½dÎhlô¸Éžhñtö­bÄ’&/*¯o̺†æŠŠ¬Äç5Â!˜¼™kÖ›Ë[úèL¾àˆóÉååṚyžânI€X4?çDkCÒ9HvÁ)Zz¥ùßñ¢©?ò¾ŒØ±Uq1‡1ÿ׿“z;/B༵K Œ=·¶9¢²Qôù¼ýϧáúŒ$.Y|‹Ê³§»w¬Âì/jðÈ^ÚJÛSO°ƒ¿ŸÆa¥#Jzߊã'Óê·¾î?†>qP,&§ôÜO¤‹€PIÎ%SŽ8ü)…>¹ ÐÕL4e±I0•(clujîÒŒPyw…¸™¢N=x‘Q^z^NÑRÞ>µè#“/0y¡Ðfä–A +àJï.ßðÀ©ÁëMÀ˜»iÑìñ¾äǬ7¶,ù¥ ÔÉጡÆî Â2êa"x)#é)áq<ªŽi¶ ºãH=ø&PóºÃä$ºdΚ C†‡Îœ ¾…—µÀ†—ß͸~z²Gì˜xù8f¢úÞªm=¹‚R4Ÿ{p”+‡J¾áF‚k9^a#•G¥}Ã9M ÞªPµ^%°é(XݰÁ†IûÚ±ôô`[yŸ r)«I7~ù‰i@R¤nKJîü÷/®ÒÝ*­Ñ·ºJc^ª¬Üî,LAâÓØªºCQÛ’M{?ÄëX瑽_§ÆàØeœDu˜¾ö²ÖIm×"0 ƒŸjj­Ñ–Î5=§qÉ_§âz›(ÛÙ~õE^c4üØ^×'ŒzÚ Ë0ó¾üNclt¼Ò¦ §›»òMQË?sO¥w#¢;@¬BÊ•ÃJòl-c%Mµ>y4sØÄÞp3¯ôKs¸áøµàrV-¼n7TV¦lø„ëª&âÛòY(ÑbÛxL²é-Tpð $Ñ4Ã;6­9nfÛò½¤øyY›nQðµ²:2O>U™ ¯æ§Àœ'j£zrŒa>û.Y¸w¯“è>[Ë"[Ãà.Ô Gf[ …_×N12]¼'²Ë‹”‰=_âî#ýñ-‘U´Þg;ÀÎH)¤Ô°íì¾ë†ôW*Ñ[A*»a·$3,³KŽýöµ [TÞ{]öëédTî/jl‹#¦/~”kz£ãŸ¡ØÑÎ%÷ÏIìyrª†²É YÙL‹R@)k¦$ûÙc‹¢È£^>qšŸ> Š\ Ù:wÅ·é ¢¥h¬Ê¥œ¶~»É÷¯ lfûjðS…q8÷Kó7Iö+D¢Þ(¬=é nÁA¹£cˆ I/Cšu¥¾+¡„Fçwæ^´c$2XáÛæh’d®¯)Þ“’wã;8Ñ8ç‘/h«]Ôwuûß»”R‰˜û4ºË©¾œÙüñ&ô(ÔYQ0ô¶K7£mÐå&9µ>M H½|—ÈÃu-èWŸÖ¢RãÉÐg¿U9 °(²–¦oΖç~™˜þµ§Unð¾TÈW¢O‚•HüdùXýã<‡ûè:•MÈù„›Zå³±øyÅ}«Wç’ŽÙU”ò{Uz^Y5Mé;]isͅ妼&ÿ+j*XeÏiv‘ºå=µåð±õº‰¸ûìRY]vÔ–¬YÅafQÀQbرë W‹Ëت‰“Ðà9þKAÕ‘Ô9ÈéþÙ ç/¿=+ÁUö{6yY÷ð¬Z«o¾Üu«Š\àÏÑìê—lï†~ù”0ÞAë¬VŽÚÀjûæ^5¼„È‹T“e§¼ÚW-Cëžè.îÂÝüoÝ.žÖVû[ÐPœâ&¸,T¿ÛHÝhrf‘— ¤™ª™³SŸÈ$yR”D¸é¾ÜñŽ4ún@¡ëz î¦_fÄ¥oŽ"‘>ÕÌ*N–=%S«œ5(*·¦(ÂiWZFUH7D¯(®°¢¡É?«·hi›ZÆ8)TÕñdâ–…#j[Ær5AÕ?ß±=2GRéf,ñízTa±‰ÊB ¹°™Zár®]Z¤m]ÆÀJFsÅ|+Ò©f"§Å ,ðwÜ9š‰ÒÒ¤lø’ÒÂá¬$E'¿éÚy¤V?T)ç+éxê,@];¹ú±½Q¬â\GþéNJé{ËÑšYªFo¤G ¯àœù8WžuޱË÷ðqeã=;"È1ì¹B‚k§=%χÊVÎ!âP*9ÐÆ©ehØ[;ö¥kùàP¤¹!g ’³RÙì6Ý‚ù(LËéd¯)cÉ€h<Ò8©¦ñ4ñci'Þ¾¤`£© D¥¹ÁG¬T”䬯&uapçP`\ý†Ú•œš{º¸k”/6¿ªÓÒÏ‹f¹±²<ô° ‰xK.åy&ºx]®8w-Ü}–Âú:Q× ¸Ö‹Yt%ës32 ZçûD‹p°³‰ëݲê®íGþzÚÈF‚ÀÕÐÐ{ÈYfc¯×—<¼à¿õã;‹j§¬øöAa`]Vk±ý"Í\**1/´Q.’¿³¯[OÍÑÔSV¥Ö§æÃoý¨WŸ0íÍ:hº$§ëÏ—=b9Ô¶´˜2XÓ› ¹çãÆÓá[–Ì ÆFDÀ\º›üÜìu6¨*¤ì»öpÜ# ùÕbL˜X™~ˆ•¯ÿÕ µè +se‘~Ò5›™æóðødÉ«í2Xòs·Œü`ÄŸkkOÑõI(C(“ŒýY& ³ÛrÃ\d‡[º.D˜ ƒð{œ)ßï/ü°¿KãÒ‚Ž›p²Ø5 g7FWݱM:­â¸nú_N!éa¿îbl›ÿ¨Ý(÷¥ðÑ%x‚é[œµ3®¼†.¡5—Ä"È–»Í­+Vgw*ùÃÛž_¯âì•r™KäµLÇÑÈ# ¨bn߈¼m~±[â¼1Ð*_¨ƒ¦‰ã¯„ÖV¤P£W³!æɶj¶z¢·t÷þ8OŒ'Çžy7å„8Ÿ`Ae[nL‹0RY?fƒLI¨/ËUåD$®U´¢ðÁ;vŒÈ€´5†ó€„03ÎÓÀ&(ÖVP‰=Éæ¡%÷©;§Z½¬Ë•ÅiJÚ¦œDz4Ò:D‚C—«»>ùyû`…€@öíGª9f¶p™ÖBZç~¼úÂv·¡ô2¼zm«]=€œ?Â]~¬cN^¥4¨C1(—|¥#<#r}/aúÀøèøÛŽÇÈC)"Ë—ÞÆ%5ùmLŸšç«ñY¸µ"vû™î-*ŒZ”t%îÖSJŽF–OÖ>™‰†F[ɔׄÝ:¡g¹G†ƒ4L]ð’ŒÉûrsŽ…ñ@î¦ÌÔ)—ê¯ñøe™4 Ô-–ÿ°ù‚Ô­ŽbA~”±Nõ&½s’V.ç$ñµQ'¾Ê$ðj jçµCfüÁ–RU endstream endobj 139 0 obj << /Type /FontDescriptor /FontName /DMNVHT+LMRoman10-Regular /Flags 4 /FontBBox [-430 -290 1417 1127] /Ascent 689 /CapHeight 689 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/equal/one/parenleft/parenright) /FontFile 138 0 R >> endobj 140 0 obj << /Length1 1638 /Length2 13819 /Length3 0 /Length 14865 /Filter /FlateDecode >> stream xÚµºuT›Ý¾-\ܽHÑà.Áâî^4@pÜ¥Xq·âŵ¸kq-+^´¸C±¾ûœ{îÞ÷üûŒäÉúé\s͵’<#´”jš¬â3° ÄÊ dã()k@@Žü¬`+7{ €“ƒƒ•–VÒ ‚Ú@¥@P° €j P5‡¾¦¾Fpp ÒdÁŽ`—W§ÀÌ   †‚´¼œÀ@èŸÄÊjr}uƒ­lÁŒ¯)’'/+kèß\¬¬+ýÍ–`(€Ìí ®v6£@M™  ñx5Ú Ž3°5ÈÞ±hõÚšÒšY Um5MF¶×šnNN—ÿÂ"©©¥-ËWÑ’€uX²ÚšZ_µÀޝø­X*Z¯þ¿}^ÿ¦+Kk‰ké«IÙÿθƒ]\mþ¶ýlt¯Èÿí5ÕÒâðOƒ5ê$ÈÎîááÁfåæ eƒ¸X±9ÙÿƒOËÚÆàq±¼^]Àöàˆqs´x¥j þW¿‹P²1;º‚ÿ&É@þåtx¥ò5éÕý?À^‰€þ­iÿ¯p€+üom¬A®ÿä*©©)@6ŽP°#ÈÑü5 ‚º¹Lÿ±½>ÁôÿHº¹¸üí¡üß.—ÿÓæ¿¡K@^gfhïãòøÏ9º¹zÿ_Üüû´Í!Ž®6®P×U,mìÁÑ»þ]3ÇlÊâ*ò2ÒšZ¬J¯ÂsdU†¼²ãÈõ„þý·ž¸”’ €Ÿƒàp¼ŠTÚÑBâàðŠÚõ/}R6¯ÿ¯ÝÒÆÑÂò/ónNìÚŽ6În`y©ÿŠ~5¡þÍ pÀΰ§¹5ûßvÿ¨å¯ø×üJƒŸÄ ` ²wûÙX‚_/¨>® w0êâöóù¿ÿ>Bò,lÌ¡¯BÝ,¨ÿT—w´„þe~Eòß®ÿ’Ã?•ñu—Z@í½`KTvôU ÿÿì³ÿè%ãfo¯r3ü'¥ÿr°±÷ú·ÈÿˆÐÿÅÊ qqÙÿ‡ÏÆUÆÆl¡f5·þ±ÿ²ËCA¯Úw´²¿.Ê?&í¿ÛÉþU·¯gÍߣ À üKë¿ù^%inçvupñþã¿Òð€_¹ÿ À®¥  ,+ÃüÿhæŸ0iGsˆ…£€“‡rqy¡r¼ “‡à|Õ´Øó¥ØÙ!Ð×€“Ô` qAý»šÜüvo° ä¯õߨýÝ€ÿh‹ãý×ÉôÏXê±ëÚX¼žÊÿWˆ2êbãiÀñ* à«ýõñßïŒþ­íÿhúÿÊ–€xú°r¿N†•S€äàœ<~ÿ–kþ¯CâQ¾R÷ßã¿;{‚ÍQ—æ!æB¡¶iMaeþÒ…Óå´lG•¢z ðK™Ó$DRy[T`±¢ –À,º"ˆ’œ ‘Jc±m(¾ýóZkrÕÔ•…úû_ eLiñ±\6íà,åÅÀò.*Æ…ÜýîïYm mäí±ß’Ý÷1œ“/8©T†åm+ù_æ€Ío]ìq=±‰;I§;a /÷oã¢A}âKL³¦ac ˆN½Ýx{•ÆÖ¸bŸÿÌàc=ãéGö1‹3›wà-ƒ¤´rÞ ½ƒÛääó$6ZÀ áºÃÈÅ”ç O.b‡ÏyëNþ,©2Ä”ÀI8œì¨|HUö“}þ“fk¬;!tcïPAuä[x!íARU‡Ù:˜‘̸¹3E¾Ÿg™ás<;>.‹æ ³ì†dåýч tí±£úP`&I”Ñg€AsÕ$Ú/Ưİõ ”³BØ'×l[幜€kì¹Ù/Œa˘k²Ûúì4Ê'‡‹b=,Z/º…0»˜´µ_+bLä óô‹ð^¶CêÄxêR #ÛàÇa‡]%º$E¬6zZ?9ådb~ôóÝYo¬P0)5ñÍ×9èïh¹Zt«ÿè.­ôç3MžFôKšÖøpx‹+ͱ pœÚ¿7ÚÒ^Øm´!ôY†­å#îö¤PÁ­w½(°Â^ÑÉvÍê«ÔãУۗc÷RÍ2'#ö˜‰Iz¹íYq,NdJÊÝ+—láˆä}‹ëP†âè•‘Í[»ð§ÍUŠgR¾D±¾-'¹IÃæCrn,BøNþòu¥ô€êL[“ñMî…Ú6KAPõ@RtI´¼™ØÆÉ¬HÁtôP\X)Ò^BGöã¡aÌv;0ÓRV¿p¯üP°·‹N2B÷P%ä"AÁ,þ짘ˆêþPï]M€grÑüV1-5é{½ø^¶Úí÷‘ÂÞÎÊËw…‚Xä7›Ñ< ä‚H¢ß&÷?«iv{ºÉçt0]¯zÑ/\Uy6T)´Ñ‘Îpö·D˜nÎYØLd¶XƒÞb×›4–6ì3 à2,8ÚwC=±ôwXþ+òBùOÂc]=j·íŽAÍ­ý•Äk™”^½¨Ñ=ZO@Ä/†!„.°H-ÿHJ=˜¯47[Œ³' ñLaÜ•è:×9 nï> ; /ÔÈ€xeP£:¼íÐZ(…3rIéwì{uuPs»wé×ã[Æ"fxìG:÷8=T³Ð–`KGžòÔP—VÝ«)È^=M=P//k9©¿oÎ?vc×L’Řo'°·~›jëZ<ÊVk-¦J§žk£ô@8+[>­õ1-2‹åc^Þy?²§ý‚)3]I_ÊÍ$æé=öjMáí¢jKž$“w‘ƒ—los×Ìý˜r4­_:·1zóK0ã®*1”¢(3NþL|qótL§`>‰„mŸ?>̼££ÀüSDrVráÇD¯HV¢ Ù?[7OmŸn©,Årô–‰}YÍ»R­§G×XzG!€¤êzÿŠpñ™É˜nø¬æJÜþѼnþÞÂê1ÖÖ|MGO*Ÿx$qÇÉM@*aû}E¥”õQîã;Çvö˜jU$¯0"ãêúf©ð Dl “ð£B™«‡¥€ŠÃ€¸C@#‘ÛS.IM—gÒJ ÙŠ ÚãöãY'ˆŒeèlWI3ʰñ‹8RWߣI?S8kAH=-ȵ„F(n7XŒØí\˜s“fo¢Ãd€%5{ý\)ŽBçNí(±¾ª $X(6h,?ü.Ssù¡\"ý gÇ^CH‡(ž7EâAEAoÓI¿ØÖ•Ǧ(àI˜µ‚‹x þ²H-À$Ra†W‡äÌÊæŽJ„Xxš5Y—Ÿzÿž]Öˆ *\g¯0°†È£Àð>ËDöq2[Ôue3:ÕZf±G3KÜ‹mqÊ›`øƒ < HÖ/…n;1ÜÑúø¥êûv¹ˆpñ+qVæ£"ŵ¦Ô‰Ä÷Š|Ù§¾ 9øš€IWþŠƒßcàš$†rwyÏ" žÔîlÆððIš34,ëX5yO÷˜z¤Ïë©ì¶»t…ðÃ1‚z¤¼˜|pï8Cp¿q×¹®€O÷ùÆ×”·+ç¾y,€ŒP‘-9EL‹T(tޝKLø“¾õÎ>ëpÔŒ]?#aÚoX¥ÿO†Î­6ðLôµ‚{lcW\ŠL澺¢Aœúìϰ>ý¯6Ì™q;Þ’”n8_8D’?NzÜ…µ]aªIØÆóŸ×Ì61šÙ8d‚CGKþj i|œ[UËŸƒú¯mÃùqÁ=5¸®T=ø’äfYf2ËŠ„¢ ðl¹›zeÄ:|È´š‰6EÊê/A.9ˆ[ShxÃÓü £ 6÷+ =a¥ð(–Ë“Èüî–Äþ­iHyÖ݈İøÌAÀh q&Ÿ›e ZzrÖ¨'8‹2~©8NÎé‹.;çôŠbÁÈôL⸠þ6Uûý2ö`Ù> @7“Öô黉–ÇüGå»ä·ÎÔAA]f·Šc,݃×Kø}¦³%g¬åïAyê…ï•S¹”k.Kòö"uGLdµà‹ØŠ’Œ±ÏÑÊ»MÊËe‹øZ‘ߪÎ}6k(—óu¹Ò‰Ì¬gÓHËDwz롹áÞÌž`„àdÂïþ–œÎ´¶å†|ÎÙì 4ÐàCÉàz Ÿò¶6!«öPØLC¿ßíÁТÈ0›È¼nÒÑ/†ÿé%À ™ÔO‰Ø*:̤q4'HQ‰ò†v?ŸÆ•¡Z™—v«âά´r…íËöonÇ?žÐÖ„ºÓ d—S‘õ$ÄO¥ ·x'o¹857#„E úÒ‡(õþ–ê­ Œ—©kQꓘè’#†qBÏ`YÎó•!aÜU‰6·EÓ­X³ßÉjÖZYI\¾Ç¸'Õpl?nV þ¦ý €Ía1ä› eÒ¤ñv”ÜSÓ-pƒš§-?„µ,¼C¾—§ïž6×WY fbç¿cóh¢ûäý@c´{ÛÍ”V«Ådøäˆ6Ñ×]ÃÐÎËMÐ.òð I‘*ØúÁ#¯3Ä:‘ƒiú×­l¼}Ó°áÁ„òMçþ³ª¿–K[\›.câ¢ö’i/"—ø/4ù®^ ZªÅFy/2^Û–oXgõ‹Ÿ´;“Â3›sQÚþkÔ—t®í”H"Þ@ᓎ:ȹ.ÅÕ§úÛ®è€'‰´ÿOqûÓ›¦±Ì¹ûBçýx]m~Ì[n_¾O8Ä ‰e˜ü›Úl7”ÌhľVýÏElªT%1Êzãˆ~?É-¥$Ä85÷e¾4q×½i¥Ñ´æÏ8Ú;Y¿®mïÉ~äO”ä§A75s¯W€j.qV÷E^îvâ9_ 3H"íÈEþ†ºc$Bú°\pkN)i? S³=üøq«f÷„€z¶|ËíÜ⧨%üEà#Fy>Þ=ßàQ0EÌ`‡aî6â@ÀáÌJõmó%ËÕ®ÄA£í¸38“„'¿a«ƒ%$€0 8VðK{¹Xÿõ§(­ƒŽ6ãÀÛ~8BA¼³Q4q]\‚ÜŸ)ËR‡*3 /b÷#‰›b¶âånîÊ"º«àõ©Š\¸?„þ&/ ‰[(Zñ¶“–$7ý™ìPuõ89Jbø+‹‚˜$SüÓØÕàø³Ä—ñeŸbmÓߪÛ*¢?`av®bVvØ>"¹RºOÔ×­T¤žû†!Oó´RŽª «MŸ<v}%!P'‚‹Iqd˜à”¾ÍNŽ‘µîÖ6ÁãðÇ-ÜÝ› i±N;·¶—))exxƒT4ç·sjb£ÝÀºInXqÙìÛ‹øëðrÅ LŠ€ŠH2E!—¬TÅòT÷“Ö¶÷t­´L Ðaqÿ™±3EVJa<1-Eë2æH¢}Oäc²ÃIûGø?=aå”ß±~â•4d¸‰üÞjÙg“–{ßóŸ‹÷ü6÷å"œÚ±¨3«“ù5çmÊ{v£—uñ» 1}’¤úã37X³ËýaæÛØÝ쟒§E6ƒXþ.(²)XLÏSž½ÎbÞÔù/~Z&H*Ž2«hgëM“Ç:¤*ØHjØÄbô Q5vÒû]6ÔÑk ¼cïŸLŒò6Û4ƒšé <dYÌàw‡Pü"à*>Î'Ú1ïì`/´_r_Êa÷%äˆF FçFý›O©7Õ"õjMIk(ÍžLR@ö³ðÕ/Tµ…¾1ø,x¯„s!çkú9Z ó“Þã¯;¢·¯?ôÕšwX›Lé93 ).ÛŠ˜F‡ñ¥g)@ønªº–æÞ”ýšç  ´f¤–">"k2dô·sÞ¼|ÍÄð~á0N̳=Úwä7»X·è‘Wôû¿‘-]–óšÂ:æ$n”覊â˃Œü·0KòqŠ$åU6öÒ72¿›Æy¬fÛ/²ú&°‚‰Ä0úòë[SaÅ ã‚ Kj,Tiê¬I?ãº{±+2^¯Ââm¼ÁÕö›éäøZ8÷ß® ›šo,DÌ+³¦`‹—Á_üˆ”¾‚Ùº˜}¦pÄÜ8*@‰/Äz¤¡â.™jÞïm‚ÖË‹cYN¶à†âi"ç®ßÈËQŽê 08«ŠNÇ ÷§zèèõ|6m\fþ’RATö5˜ÂZ= Xp@! ͼØ*ºs´®}gŸó:³ù3F7îcu·±¿àh¯ýa»æGÊ®5nB§Å»Üÿ’¸t´› NoáÉkm‘¶#ã~Ë®$c’ì„O€Ø$'ÙˆÔ-³tvÞ/ìmnþ²c ŠO†-A3Þ“oÈz¢Ë¼üv±s}Š^2ß$*I”}åà«äkbgNKºöVјLŒÐ‘\,?ð3£992Ä’gf,#89 M{öY?¾š:Ãá]åi]ti¿š³UÇ[?o–§™Ć»‚öƒíô;[ò6¹ S<½îA­Ë!uH— ªUø…+fǞΥ]Ç}tä²¼ - »nX¿¨°v೸þôhbø=IÅ6ý½îdÛ<·óáµkjd+8έ AŠh`±±wêõùƒpb6еÀ…t°„ÃÝ ˆûS‚Ǽ-ÁÈ¡°eí`ÅY ð¹8Ñ¢+?u™/‰*54×ñ±Ru\æHÎL–Ê1z>9»œÂ»ÿëJlHÖ‘±x.BpR«yØäó™Ï‘3ŽpH•lÙ7îjÞ&,¥$ê—3}öP€pdec’øs«¤àyLè7,7xîwäSÖrf‚Ȭ9U}ÓÒ!½ˆmü¸;H°¡f\çNå%µ“-Þp¦¸ª3jJ¦«ŒÀ»ßÏ›° Ú¶3,=ÙK8tñîM+íÝ‘llœRªyûæÛüòét³£”—`¾4¦/Pšç0?†Ù|ŒçhA°vz/&ߨ’½=£š¹Ú‚&îEY<ã-:.6ΛNƒœªûè!gáEöÒð‚狼RéO8ä¢ÿþwÂÓ®H7aÅ [Í‹4kõê[pï”B­å°lìÞÿã=Œ^ŸKä:Ÿ ‚ï”:nu’Å:±?ÝΞ\g6l¬µR´}Å1²0ŸŸQÂêíöo<>$°í|[»Ò^oÌÑÄ hU¡­:Esﶤ”×ëÎ)ˆ¼áÙúâs¸"°W‘eïõLµvÿkŒ&Ÿ+Ö =LXaä-P°A Žyðxýá7¦oõ”C¢¯þ—@?À.ª™m8,LîN…‘ÕJ*Ÿr>ñó}ãÃDý5ïÍá Ä@7ôûMbõi‘0Ü÷þ`S` ­wå“ÌöF¿åCZ£ÖØÙ=*j ú”yùÎ;„J)ÖYÙlþÉ+ žÚð§ÙFfFqÎ/²_ìÎX j=Ü¥ƒ:ÙQ/³ÅضW˜ÈúW—¨/ä©Ô™¾k3™Dñý?ÆM/Ïóö¿vd>©YʼnX–ZHC{ºœ¿þZßþà>ƒæ‹qõ¼j È]H¼Ðû"r‘ÌÆcæÜgœÁ,³Þ_t!ê£ÀÁœS‹—6õäÿrîd¡¼§¯*‰}ï‡i…ÉN£¥mw-íì#6 g|•[8r#Ø2úl›FSäXø{~x‰kâ'Â*¾?_ñ¡Oƒºx6³A=Á|ó;ªŽdè´ÐˆØ±é,î ÿ¶$x˜MÉÝ`Nu{Hàü5 gŒæ±ÖçËZ$änötéð~åú-B—šn §àAßLˆÜÚBUÒzFõœIVOgvDSâ ?ÎO)'uò§EèÆÓ‰Bˆ˜Å'_šy¦çÙÄCY\Í·¨ù„+ËápÒuÎJtXîòO‰Zî¼sëqÕ Õ_y´^¯"ø0=ÆQ“Q$lgŽ~±¶ß(|jRšÖ®HÚP‡añ\÷J³²Kïñ 9ô› \²f1›°SNìÈ£’õãºüGf‚­6#BWÅÄN¹ñÛ©BTÿÄ?f1–°{¿—ÌJûŒ®lîƒC± € QØù‘A\(›%•è òÑ ÊãEÀÅÔ©MÆ}f^ñQº¶øbS°‡éäM¯Ã,?£U¸Ï´¤ü½ËŸ%8ý¨Ê=Ÿh\¥˜jáxL £Ú’«åÃ…`9²àóiŠx½Ô;ï­¾Eôõ7ç:H‚(¼X€ýÞ#ƒ¬b>Ht¼ >€ÏLõwÏbgïˆIºè¸Ânåi““õ$¹HêƒO{kðn‚ãzÕ¶’—aï/@)CïÈ+ šüï‹-ýy`mHoã3®}ˆÐ‡ð½îUëJ!6UœÄq¶Šý-C¡JÆjí©ÓþÛ/tž=¥7’7Ã#qŽÈ™°ÌFb½Opý”øXYå#÷ÂÄÔ/Ëâu 9Û{p Wõ s«|ì½à1ž¾ñU6ñ ×}³kPø²ðFOüM„'fø]ã²YMå¸L;'’•]ªQEkV7§SW­cYK°]6j¶ƒ8³Ë8¢(ìGÉꙩ†Õw' %l³ÅðQÜmʪ ¥Y{;ÝØm-Ö‰ ô\IJ(‚¼·?Ý´Øáù–ΨüàÇoöaø(³ÃÉ~ôýüåã”,‰È3UØ…G‰ÜD‰b&¡œÕ¿ÌLw—gjg[÷#–µ¢ÞM|=>›‚ÓÛ˜å<%[¡Š_lпĮНLŸ.6`¸Öh̵k«Z³ßpJt1ç…Z\%3{þVí"¥{`äîBÔlBÛŽüm \¼ü¾•î~èÇ  ²†ó(æÛ—dHƒÆl¶ä…isWESÓYÄ5:<Ë—D¼ŸIÓh |ïªÄSáLºÌ¢BÚ,ö \6/hèçÙô©1Î{%îIˆYNS}·=_Ð õBXž%õÊI:HaShr\¦¼ äè#!x@ððnýÓ”b<~ÿÞ Á¾¼¡^óœ‡B©•œD°§ó;)nzÁoíû¡yÌä²d%”8çÈ‚Úi)”±P™õOó  ~øóCAšß4E‰Hx£óBÞÿ!½œÇýês /ÿS÷³4>Û•@D…e\²Ìz9‚#IV üE.åײÅßU4É£O)'Ú¦xñ®Q¹cÏlÇSuÌ,>ß+B#J<}gPÛ3y}Û¢™«¾¢ip_ø”&’»šðÞŸŠEÍn¶ž¾1;»³½ÿú¥~«t¯*’cÄÃ{ºò’˜,žP¯£À<ØVx*O'¥©ïÏÞOß CÑIîâºYÄÎÛ3¸ñ`}¯tùþíA7Æw"ãqQýèˆáy‚P¸}’VŸöLÜ 9ŠTZ¦æ÷TxëY ™È§Œü *ä rÂëüjEXñŶ Xtg"X®ƒ.5*%arQ•´…}Ü8oúžâ=¾o$F1梠´¯%²ÚÆwéSSãN,>¬?Лò1ìçHµèHaËn²ë¶î_ [‚‚1Ž›|.¡4)êuYåUÖ¼/"ûLGåhMó¨ó# ËËŽ(Ë6ø1 þ]ìóD 'ÀaO"N…ñO;òš¡ÃÓå²lš†H Is¦ŠŒ­ ¤E7S¤Há¨Î6RúO>ÿ€êŒÆðPH Ÿ_0´3¯sÚ{U:œçmPð)»­ðˆ+“bߚïÂMB™¹Œò¬]5qî-Q’j‚œñ3ÛBÔd,îoª<ñ…O·2N z*:ZË}þ8‹¸AêYJ+jb¢ŽöÔòµX}¨gííÊCø+YÓ×´Eeè‘—ã opù3+o¹¥N¶NFýÍXe`Ü1¡)xFŽ›”a{†QB’>˜§_¸ sÖµ4—ë“ä¡£Ì'‘Ic¿r»B:]bùh2ÐâuÌÙúeë“ê»bò cТà°2ÿÁ›v[Œçò%½‹ø]Âx¾D*A¦Á=Ä4åV¡JmÛ p ž¬À{Œ¨‰g0)6WMP¾º%RKbžXÓ‡²dÔφ!é ¾à⌖«½OýpZY¿Õêd ;C¥r=6SíˆÙØ5o¸èÌy5òÃÒÙe—e5´mú]j-ÛÜôÐÿ†Š]V¿ÆXÙBWƒö÷C‡t¿64Ui~g± „ ú¶G¦”O·d‰GÉM[@½VÑVˆcxªÔ„ÆWݰ4¬ž[r·!Áúæ,ƒ…F᩺°·ßýð|R•Ããb€yÏ3*3_¼ŒIáaòó(‹þ26ša·µCd–Xm–>ZuJM’Ø›½ÞBƒÅÞZƱ·C!ÓZ©›¾ÄQÀë+ëRόӴ¡þVžâôyVìÌÖDˆX½ZNmðiÁ&}¨ÒLúþîd¢—6+oŸlLŒQóþÙ¬ì ²Çä¥ônÉ:FÐFó/õ±'/”GZ<ϵÁÑ^+xÝ L²Z”w¤,[þÏæÂ ç-ˆ9ymÞÑ¿ê<.÷nCÑZ(azÓSª&²é2dÇöFÆIåÀÀÁœ¡6Ó‹UŸûÅe|„lÃðåè–N©öÂL®Øãƒ ÁïN Ž2aPW;«f!£U›t•· 'tRb€Úª*sþ3‚QH=Á_9,Qç‹ ЃO¿Hl¡"·¶‹+}rè´è<:4ÇqÛó³ƒá’“/<Ó’ëîå#?Û(D{S|érD’´›6Ì`CŒ‚rÅzJÿDb~ Uúîå:ÀZD9£€&¿¶^V÷!•¼‰‘æÖvlo!51ŽVe¦ŒÂ ø-8:òì=³Ž÷Ÿ¶F•mû4M‘Mò¡Ü-€Èà¥5æ˜à%£!ÔË·Œ ü»T1Ô³Ü9Ý”1.›FTˆÓ×e^²ù¤K +ÐD›h¬wh^Þ±W |á|£}÷ûüHcá;ÕOM-QP pæÍOѼ~—8æ™v~Æ”ÄøÏo´ýnúO ¦Ð³àJ HÔv^ç ëd?e‚›mNúU¸»ŽGe#0ÏÎC[Þ^ä~l§…’´tóÖŽÊ+ÂCâÄ´lÞ?kõÓ>Í%HÈ|1ø¦øÛ[ï3¼3Q7Q¿ Í–`£@tHÎâ¢^•’ÐÍ+ËÚ r&÷OvǤØÜÁЇ`U R› OÛ馸w ߯µUÐÊ©â¿"³g˜ÒU Ý«ô]ÓI¿wÜËn±•|f‰Ó ‹eªöNï³Ð/}IBàzé.™ ‹CL¬Ç®Ì[ú®Ørjdš4 ö—ùuQUùÓòGˆ²#‰ùR~D*± [yœîIp1"ÖW‰Æ8Ü¡ÄIš™}¥èëçêåBÚ¦Ó”4½wZÙa\ \ÕŠ…°(â/¬•W«ú)?G§º#LÆòMWíwKŠâ{°Oœ?™lë”dò›ñI?ú yÖ»I&˜Ìµ· ¤š~hôÊp©°í˜ƒüØ•FÉ«¥ÆÒZY,žtÏh¬ôsöèÄŒ‰‘÷Š3§R]&gÖ|Ç&4©§W\ßo·dØik~9&¢-Az9’š!vîödæÒؘ#n;¯µ‡à“ä Á^N1:Ô0>Ó¸¶Z뮊#ßádæ`îbš„iLT’"=( ßßÜã ¨¤ÒŠ «ºIiUvK­\¥RXÿ¬µP ­ Ø,û w§ÞD\ú).Àã’щÐæ¹Ç:«`•|'Ú5N ÕÓøL¯< ½ì™?„? Ëfg½ƒ¿–Êþù£›8U¨~Á`nAÿšp÷‹Û*44’þ¸Ü5â'›0òÜéK°%Ut”á` f ß,Ä:R6ͺ¯`¥‚;Ó‰N{ ¾©3ˆà‹„\%žç,DgOÐ?ø.rÅ+D}'Â7=‡–] NßrCCÃŽO|›:È RÃr­b¹áýJާ³„ß9Þ&m_ê¢âeÄcýì±CŒä½Óé‘Ç]ì÷–ó¡e6ŒÀÓ¡ñå$MXf»ÕŽ¡g’‘áô~,žý®r¤]çT""û{é®TŽÕÝ¡ccµ±J‘mµï=Ól¤Œž™ó'PX;ËÕ×ø#Ü^¸ñÏÎ˦d†ý>rÊ;}íb×·>ÃùAõW* HX뻵zË'Íòtóhþ\—vÉc–û_Ê &×óÚx̪"l²:GfŸQŽ·3e?Ÿ?Tò*’ò…’â(Dä2µv¨ì»¿pHÑ´,]¢TºœùåTÇ…DQbˉ¯,0ŽÿœÕ.§¼lî¼þÇŒê.9lè.46‰>0fäÆÝë»2L å¶ËøòN5¿øejQ@û„Äm´Ì<Û@Ì7i8ʵA3NY? 1ß ‹÷ }êû,˜rŸèkvE‚G†/ÁºœìÃ×™vÆVpšø5^EÁärìj¿E2{1iZ9”2/bï“ÆñZœB·A[‚ÊÖfg'ñƒ®2ç}@§im“½Ë»®ß~j˙̔zÍ/öj>òå7œ‡dB.ÚºÛÈ‹ßX|;õ1)ýFPëW˜Ò±$0÷(BûVÚÁ±_©Ø¾;/'qDŠÕ+A”4Äðßwß8;·Ò•ñùTÓ•-ÎÅaŠÑçèÁ;©¡ 9ñMùËCŽº‘»Ÿ²(§Xê¬yå‘¡ONU”"è\Ò ‘eƒ·æþ\¯Ã%ü…?M|ûÆ%0…ðÜXÔ&·­»²rIõö·ÿO¿¥Z æÆ ¨P€¯¯­èâpá‰~Â@;.^ÂpX\þ1ʬƘý#ñµîw0íÝèå¼:é ³þŸ‹FÉîqlš¹n©¯Ÿ}káu0?ÞŠ†»<-·@UµL‡s:WY¡Õ€¹¯©ðÓ”-cB9‡üâ%>ªæv}ãýl¬Ÿ+DÞrtåãß.é¢"€—Ä>L„›¥Þ³*D7Vܦ,ðÓm¾óç’² ѱ©iÈtÞöÇ„–çN¥_Ý«‘MÙ<®±@ui’-fçÄkO*-¶0î˜Ü—k¸·‚‚û{ØMa+§úð;AOŸµvÐq4ME‚n{þ²µý5[:û²oÎã ¤ÛËÀ‰½’*`®-@8¶w‰Â†Dæ §˜„»þü‰g—GœƒÈM¶" ªì“(qŽø#÷óƒ†ð‚/!Ù +¾b¶&6Ü¥JÛBò›È¼œ[9_jWQáÑwŒÕŠêöÉ› – ”f‡Ìl9¸„ŒÛp[ˆ„TOÚÐB'ª?3ÜA6yËU|Êö‰Š’ÝöÛ ïËMâöS¶Q8¬-)ì'GGYy~ y©.*Ñ+(gÓI½¥d Þù4–µ![ïqIë3 ‡áüuƒFD8š®ýsQ:/ ó¾ô²™È¥ÆGj¥0m×þù²Sv« Ð0ƒìuˆVý–YõšÎÚ¬™íz-RÝ6âÕAÌKógfÇ·áÅu áÄ!«z»ÒËØE Ølšíâû}Œ²3Þ}\±ånã.ê„É´ùjõ–[ºK½8ñll‚pCö>æXºU>õÁ‡XvÓdv"å±Ô-ÍÙŽ¥õëþmº ’}[4ù6ÒyO-‘Rã¬`“¾ïÄ¡âšV‘û޼Ŝ0qV9›‹dý%Kí’Žvæ;p² VsÚîûÚÑBRŸ7ú9}_s fžº\ïnîSÔ~7¥ #ç+rè?~B¾mö•=4“Æü)®3-` 7†‹:Iö+Õü"ÜïåKSç^‡rÙ0¥Ô7Âm fäôðù'Šh‘ƪ-14£>á)«ÑOçuôRɿ̻‘ã_ )ZE’ŽT‚>±[”‹xö#÷Å?5u¯?Œ¥v7.õùê•K²s ½íšFQ ÉEÞHý®tzô± rBÖ{³tÙÊ‘eV£0¿„v† êrŒž'Mn$8oã¯Y$8:µh"Á|aŸvRC gæ mð¼¢²S¾E¥­LMøãÖl+’8†ÜÝÍö6žaéSwÙxÂ>Å"¾T=—ÙÙ‚½˜ \0ª+¥Ðu?±©¹¦í•80Ž/Þþ"/ÍühØ™1š3ÃܱÑÏB问؉§f™Þ xtQ„‰—Pòø‰fðð½ÌG™¥®öÝ£Ê\ vòÖg“¶Ão×?P–ú\ø–ÊÊ~¥‚*õìrg)ÑNKB?º£ªùˆvhð$¡¹˜`ÊÓ7Îá`®<=Ož‹šÀï.ŸÉ÷g´ÇÐ ›jÕžÎjK©’¿¨#P"›ÍY›xÛ¸Á6\è4E»¶qœÏ…f‹\•%uÕr4=¢Ì¦7þ[?2‹­³ºy Š í>Íw€½pâFxÙ²ÏõshK…møq¿Ž›jM~˜” ¤½ 8žWÖJÞMŸ.VC(V(ó ßX·NK(æ{Ÿ©WmÏã!Wú´"´€ÙD?m×`Tí©åé1F÷‘ÐQ;„FLª Œ¾×´®ªyÓÎ’ÒóõçcJÏWŽ·*zý¼ìÒY‰;ÇÛI{A6/ÅYoÛ§QòzΨçæìǤ1û ºmy¯,D$í›CRô—¢]ÜKÑ¿¯æjlQ?¡„™ÖK5Ûüz iŒyF}¦ZBâ¨è\Áb¹ìåµÈõ–6ËÛw|÷#oa«$ÔkÌ÷.¥É‘arâr¬Á‘AŠà‡0*V£f°ôEÏÛ!ãû&j 5?jUïÊbg‚Ôx¶Àú$@eú‹°]q=ÌìÛqS×w¥ßZÕ€Gäî鸼@Œq„ÄE/ŽI ía´&8òë¶Èxs¢ëœñä·eŠ{9Œ ïUyªu#úåÔÕ¯Ö*  ÓÏDïgMà•fòˆè-u ôÏañQJO.в™©W‰%§\ÓŽØg ­lÙLò>^¾9f¤´bHÿ¦2Cg/YÐ óS*Ø£ô`€5NºÙ–ˆ+ŽŸ¨±>AõÑ;«/ÁÆžüÔ?6`nîùsZÐæ´+ÔÊæÿ{noÒöÚBBm´5¤x_† ²q®ÿIYåmÏžý‰°Á'û °k)©+«~Hfÿḑäó((K{&Œ¾àI"‚.kf¨ÏQÃÄ~ÊjÏ¿uœ¶ÿø­žUíIÁ9y¼|ò ñ¦ø\ï¥mˆ ^dÉ&Uñú¦|%[æì¶âZ’Ü—htd ï†yâjþr[›'棬 !:³9V÷5Ì®ýññâ‰éÆ¢º¸'ÿ3ïåë8:Ôl›^oè£ÆN]3”èîªý'»¯$Q³Óz}<Ð;ŽÅyXµ]àúZî­êl)õ‰Å'ÊàœL³SÜG}5By“ž@$PqTßœÐîÁìË åÊœS2]ÕP—™2Îôlí¨½+KëK±Õ2ÇIDNþÅLX]O§‹´ý…Ùͤiu ÷püõkÒ^qO[\+²0ÿÆDG@¡¸ ¥CǺà ÍàLo`×÷ti‹KdŽ+,cúÝ]©Ë²“ªí$ÿË]5·wå“þýkºâùlN¼}«Ô®R;I…oæÄ`~P-É3Ù+ÙqŸ”òf(ä»?öE ™¾ñæßÞeYPÄF‡˜y© Ö9ÝѾyä¸û+ÍDI- oüokJÜbø>Ó“ó©ÛøšÔP,(t0a£½¶rXæ~^=œ¶øNT7Æ%«Óës{‘´Î/…Œ‹¥ªÖGb1&©4|ŒÁÐÛü€ØEoqMlù \gcEËØ¸ÑMŸèt攺»cIƒ ÃGùnÑ‘Ããâ€?qxTÅiRd…êdq»Ü’«ëÒ¼›Y#“%)5”§œz;Ô1ø÷ª\ÌîÚ eÇíÒyÞiJoZgݪ}O~]$ß ¯²5f×2ndExÆäèz+.„Ó*ú”y«Ùí/E¶­À©pG \ÆXÆsµµf¸WBNOñÕCÝèÝ^¾—Y¬>¬Žñ¯I?TÅ/¥: ¥ˆÑOC~yBŠó”hŸ$Ò§´~G3th¬ßпm¯Ãþç.Ê«TU’¿ÜˆZ ËÐW•ƒDYŸåýPEw‹#mP†½wÿ0à—Yµ :²Yÿ í–83‹7ÃÁ˜yVúB~Ÿ¢«›tÄαW’äã“g«ê}ŒYH{¤ÔeÇ©£²È®QĨé,VÖïÚaþ™7.ˆ²š›ò¦!Â2¨ËÄÖp[“±§Û­[À—Ûí¾—o–cåÉxôxåInÕ#¿§¤4㥠pÅË{äJ^äϦíg'Xåˆqø0Ëæ³Ç.FóÑCbNÕX<0|~ìÅÿ?ŠþÀÝDåxÞº‹#H „AUìÄVòÿУ†ÝvJ•C°ó&Ji¼è#Û%Á#C¿/Š#oˆäW¾íoWûV!Œ\³~}0)ÒëîÐЦ÷A˜ÂfÝAй6pçÒ˜$ÒÌ˶hß…pàä¾ÕqØ$4®ý`0æ6~›ú%M›j-ÿM‡Ú¬|1¬CSü‡I¦dðº´uT”A·mM/Mó¼t’‹½fä(ÚkõkO¢Lο(ú«AÌÝW¨î-0߸lN™NßQÓeÐDÛÅüÖmýÝÞŒ?¤8júá3j“é0ç4·"ßmäÿ1 6øv¢pLYºp(›‘äev¡uÝ]!4pCÊ^奋d•–}Ä“Op/Ö¼sïÚxÃÁÈóŸ{s2AÂ¥ôâ>ÿÄ.¡«ïÔO­¿øFIÁØÞíK]¬h¶èÑÚ*”ö÷Ü«@: ÚwQ¸¼r?XÆ7ü-â•Ͳ²†õPr¦oËU‰Ø­;}é¹ãñ”LØCZý{e޾9u äÒˆ²éMq‰²Ü/ùÕÖžy–­Ízr>M“l^ÜýAA¢M”>¤5 Öµ‡ÞCúÃK¼f4×;¤1ö¦‘®ßp£dMœekÚl\!Ä[|E+Q¹csÈ˺;Þ(¡ D(¤¦¼÷ßô? ?Köi,1?oã ÛPr8JÔ­$º9§‰ßoâÕç%â$º tçÁ¸ESÑ^JÞѶoG‰T‹> endobj 142 0 obj << /Length1 1707 /Length2 1632 /Length3 0 /Length 2685 /Filter /FlateDecode >> stream xÚµTiX×~ÅqÁ" ’VÁ¢²]6ÅÊ$9„‘d&d&$*(¨XpÁ¬(®,µu«u7À­‹‚bÁª”¢Þ«RK\;´*Ïõç}òLfÎûmïùÎû¦uŸå+Æ…0ÇH—íì ÂÂÃ2…¯‘ q)ÁufEC‰RŠ(—íâìÌ`2ý!Q @Hè ¸d àC9 eB¨”‹ƒ ‚ ”] „ID ‘C.°Gt‹(œ YB„ Ì“ t Büq¹FJRH:‡+‹Eg¢£ýØ ¥â*"&!ìp6ˆÀUˆ{B˜‚H“ž 0ÄðyÑ|Åw`S‰ùJ¹W¼åâÏÄ9ßÀX'ÃÐÿˆQü%N B@Ùé:”#Îø ¢x\½ÀéPA tÙaܾ ˜÷Ô¨Ðd.Óö)$)÷æpT*[¢$H6®°åR?A J®HÔ[¥P×%&¦ÚI¦À¡ôñ€0T1ÒAøQFµ’ ¢pò_bT#H:§tÈ~T&!t±aQQa@†  1QŽ$B* ¤Ã¨Ší†Bà¯T(èáïLŠ˼£î‡S;K”ff!ªá'†`J"ãƒÞ|¼mŽ(AC!HF¥fOÐg†b:,Ü7b^ /`…QÚÃXá8ÕŒMªI7Ï7 Ìxx¹.õÐ:åab\&£X º}(Õ'Wh8ŸRx*†«°ÌOš“QLœLŸƒX)çÄ`hšÎ xDAŒ÷˜’ÀÀ4Õ¢]\§æÒ0Õ”¬L9.Ɉ”€Yh2¤^ŒLI‡€T(aV懆W ®'£"’’=5: ]öyX2¼†`ŠÉ;Ó[AØ»°©‰r ÆVŒcR Ãd'')yØÿ¦nX­@¥TÈ ý':;Ü‘¡RÍÿ æiæö¸B†H‡ÙP"UCqJŠR†Ú<„Ï#j.|1‰×íìêá2d‰¡'NJI›ºžPú‚£íÃl”jE©$àæ¬3Aª7ÃèSB“œØ„°ˆùó?¥'7áb“w€(ˆ†áL‰ÄÅÝdr)õ‹¡Z§"Àac8I…¹’Ìɸ‚AŸ4×Å p„T2 <]G†R§ƒ>¦EO¯NŠÎï¹¾½Ötk>©ÀSa*¦.õ\(þ T½Ð™Ò—©߻¯E`¾¢ýüpu&ËÅ °¼<¨½q¹ÀÓÓ=ë£HÑÐý¢S0ÕÒwkz¸„j(b´·á¢YyK6ÿ¸²2›·ëjÕh¦û¿5¦³ãCÖj/½zÊÂ,`Ç=8g÷²Ÿ––}± ö^”]² ÛÏÌ3‘¾¾}|ãwÍ}âùs»ìðl‹ñ<ß+å±ì˜åeá7—VÕÙ8<)¯HØçÖRvbÝ +s塿שӃk]~ycôt“MbՉޣU{®s+¤“Ô7'š×ZܼZ;‚|3h\TˆœómŸq-©b¥é•}ùÙÓ>· ­Ú”ÚSÔÒovnû½Êêï›ÏÎù¡8:ºÞüÀµ¥‚_U#Ö3µK¢Æv'lß:iÄȲ¤Äq6éÛ;Ýëº0ÏîW=cjýΜ±å…Wô{=›Që˜8Õ¥±/çLªQVñJS¾y®¦ã®|ZŽYpÂ*ÏßeþD³eR庠ýMέ½®mªæ"ÝF}»§PiÓÂÔ«½ž7ëB‹£bNÑ‹íÌ=·î†Qæ/ú¾Õ;™xàè¹3ãÖߨhذuÑÆÓ•úù—»„U§¬­²¹ŸÝ(Ë©j0nŠ3²o Ýeá#³ºWouVÒÖ¿vÒTÛ~癹]—&/¹µðˆƒë¢5âÇk÷vÚIÙ̵÷²6ãu¸[×bìK+dÓY#߬©ËÜæ¥çš2"9tš~𦎪ÝUìò²%†nì;LUY±]k:e¶µwXéù§­}üÙä£_ã6<åá-­c6µî{µ’Ó~Ô7T:~KÚê‡NúDyû¯;[m*ËèÒûÜ(-ãF«Ï—e‹ÆãwoLö³êLc qaäš=‡ƒò]2ÖÛ¾¬cÁr³üé;·Õß·^~tœ `nÈg~––­£Õ†7£+âçþòÛ¥»?k;÷ÍSmϘêµþëã'ÛY™¿pšâ¹Êª(„5%ªå9wtAœpS\9ê^bgËc-³ Kÿ´Â4«Þ‘aK}õÚªàåÀꊒBe¿i{Ú÷¶¸öÕUÞ´¼pg=3»öã>½ZõÓ+rý$ýí·7¯yÖ©¶jœcÀ>âÃzÙœ§i³ÍÊõ(I´í¯µ¨5/K¿¥¨°sÀº¢„óäçö‰û—9-`[ÞÃ*Íjüûü¦-¬îÓ}K¾‡9šzÏy‹Ž÷ä ÖÜÜôãKI—¬»cŸ¯?ËÂîö}ÕÔ;/z+ÃõK|æ÷ªgÍè9޼Ù[´àÎô·Gî“?;x!i²e÷¢ ]§KÐS.”X¶vì#òue8j·õÅOg˜ú ÆZ·Ìô¯wåŒÖ~oÜ3¾7º—“=g~[OÛêÈGkBï]«ˆæ°ßÓ ¹]‰^‰³ú34k83«ÙOgäïÿ®Î)†ÌÊø{¢åbóýgîñjâçôä5¡ÇÍx9ÞWWDø^î*­œ)ñÂÇ^»jÞ|ù¤{­[jAèæÿ,üzCÅËœå;§8MÍ4<0¶½ö¿róyâŠGM“85Úò[_×?ùsZù7¹vžfIžƒÝÕ¦«A±6¶Äaå´¯.Y-ŸÍ_ÉÎ12;Õ÷y­{âÍ€«…A‡$Ÿ›¬8R]U]6°¢Åõv`ì?Ÿ­1ÖkŸìÉø+éñÑâ1mFD_Ò nN`ŒI76iÑz¯”–\ß›÷ã±Íã&'ËÇÀ<÷m¶HÝžœm “j¬ž 6:Çô¾¿àpÁªCäDÔ¶Q¡ôThíCòÕ,ÿê‹xéf¿™&ÚçN'Ææ¦µS®ö, ¯×Lÿ¬éµæ2jžLUtvZð—†·^çfm IŸ´²¾#ª@Ûº6áÙ²GÁ„ô7ÖØ²ùn„fMm6^tYujAðT£‰ëÎ]î¾»U¯n±SqÏv[ôI—±KY ÿz©a€ÿ˜8y¥å ³O©Aû¨¤ë¾¢7ß.,˵?vÃT¾zaCͬjaüÝò «ÏXæ1Çaö}®mrÙà­ý= urþ‰b»ó‘/{ÞÍZÉ—œ4ÙýàPÝóæõWï9üz&29g—X#?¸¿Z5·q×23uº‹Söí_¿ \ÀL [šrØ´Ý´ü}—QÏú‘«<‚·)<xéÜ9sʶW¯4ñÂNþ±Õ¿§ûÑ>-Ü-Zwùö–H£Ó+dýùøÅ;î'q­¥µ#ëâÄþk{¼Kž.Êýý†ëÒbV¯ø¼Ø=n¯‡#r·Àµw÷ÕÜ‘Åë4`nØÝ7O¡7w機ôÜ£ÿÚéQ endstream endobj 143 0 obj << /Type /FontDescriptor /FontName /VYLNQQ+LMMathSymbols10-Regular /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/bar/minus) /FontFile 142 0 R >> endobj 106 0 obj << /Type /Encoding /Differences [90/integraldisplay] >> endobj 104 0 obj << /Type /Encoding /Differences [11/alpha 60/less 69/E/F 84/T 100/d 116/t/u] >> endobj 108 0 obj << /Type /Encoding /Differences [0/minus 106/bar] >> endobj 102 0 obj << /Type /Encoding /Differences [40/parenleft/parenright 48/zero/one 61/equal] >> endobj 144 0 obj << /Length 739 /Filter /FlateDecode >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©[Á'Ûs³švÂÁ}o†½å|7ÍlÝÔ˜[òËô§¦kŸ˜xäœÛBÑÖYw€‡S0½è`ÓQÙ®iëþ"†m!-’ÕM5\Fî»:ØÃÀâõçi0‡U»ë‚4eÓ7;yúO§ð!˜¾ôµé›öƒÝß(³3ëóñ¸7PÁx°\²ÚìlCëýys0lúÁ+åýóh˜tcAªª®6§ã¦2ý¦ý0AÊù’¥e¹ L[ÿ7—Њín¤&–Êçø U´ RZ,c¸Å¶€ÉPSan aiqD‹ƒ4'Ê,Ò“I†F\ ‡Bµ¸îbu ’ù¨¨ú³é/Úy¸À2ŽÆRòXR xHXÏÀíÀc®Ïeg·:¥®'™ˆc|0ÎüxqîÇÆÅ?ü‘SÞÖÀ΃qìI&À’¸Ð'œ®gÀ΃ÌÇy9´ º…C ÕðœÖ:ŽóÆsÇ¡;(àE8o"‚A¾JÇ'O™ãÄ‘ÀäÃí+Ý6ôKIט'„á;¤ž œz†à„tFz¢Kp&q"p¢‚üBCT’/ôŒ9ñ¡!É©~Bü}ÒéîRqÒ‰óTÂçFIŸúܨ™ÏŠ|nTìs£Ÿ¥|neEAºxwüÜçI·yRåmž4¿Í“_ó¤å×<éÐçIÏ|žtäó¤cŸ'ø<é¹Ï“^øO™ôyÊf×;s¿|÷KÇÛ„wôúêUç¾·¢{lÝC‡'®iÍõ=>vG¬r÷½”Á_$Ô¨ endstream endobj 42 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XFGDSW+CMB10 /FontDescriptor 119 0 R /FirstChar 13 /LastChar 122 /Widths 117 0 R /ToUnicode 144 0 R >> endobj 145 0 obj << /Length 739 /Filter /FlateDecode >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©½à“í¹ÙM;áà¾7ÃÞr¾›f¶ÆnjÌ-ùeúSÓµOLg~¼À8÷ã ãâþÈ)okà çA„8 ö$`I\èÎ×3`çAfŽã<ÈZ]ƒÂ!‹„ê xNkÇyã¹ãÐð"œ7Á¿ _¥ã“§Ìq âH`òáö•‚nú¥¤kÌÂðRONH=CpB:# =Ñ%8“ˆ88QA~¡!*ÉzÆœøÐäT?!~Ž> étw©8éÄy*ás£¤Ï }nÔÌçFE>7*ö¹Q‰ÏR>7в¢ G]¼;~îó¤ŠÛ<©ò6OšßæI‹¯yÒòkžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçIg>O:÷yÒ…Ï“.}ž2îó” Ÿ§Lú> endobj 146 0 obj << /Length 740 /Filter /FlateDecode >> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qض*Õj¯˜n$HPý÷ëñ#xÙö?ŸgìÁÜýxÝLTÕîÌ$|äìÍôí¹+Í$ý¹=wwY[ž¦ž©L5ÎöOìµkËØ}ºÎÖM=Ƈ`úÒU¦«›v+ÍNmΧÓÁ@ãÁjÅ*³·­ÿçíѰé·¯œ÷Ï“aÒé*ÛÊô§miºmóa‚%ç+¶,ŠU`šê¿¹„Vìö#5±T>ÇW¨¢U°”¡Å2F[l ˜ 5æ¶GT°8XÆÂâD¹‚ÅÁ2Ád’¢è¡ÐC-®»X]£‚d>**ÿl»‹v.°Œ£±”<–T‡ÖÀ3Â9pD;pà˜°ësÙÙ­…N)¤ëI&âŒS?^`œùqŠqþä·5ð„ó Bœ…€{’ °$.ô çë°ó SÇqd­‚®AáEBu<§µŽã¼ñÌqèrxΛˆà_¯ÂñÉSê89q$0ùpûJA· ýRÒ5fÀ aø©§'¤ž!8!‘†žèœIDœœ('¿Ðä =cN|hH2ªƒŸ?CŸ„tº»Tœtâ<•ð¹QÒçF…>7jæs£"ŸûܨÄçF)ŸEYQУ.Þ?óyRùmžTq›'Íoó¤Å×Ozîó¤>OZùO)÷yJ…ÏS*}žÒÙõÎÜ/ßýÒñ6á%½>{å¹ëì‹èž[÷Ðቫs}‘Oí «ÜÇ=åãF/EðÑhªq endstream endobj 55 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TPMBXK+CMSL10 /FontDescriptor 123 0 R /FirstChar 13 /LastChar 121 /Widths 112 0 R /ToUnicode 146 0 R >> endobj 147 0 obj << /Length 675 /Filter /FlateDecode >> stream xÚu”Ao£0…ïü ï¡R{Hc›IE² H9l[5Õj¯ 8]¤Ä ‡þûõŒCfUm‰óçÙŸ˜»¯»™ªÛƒÅœ½Ù¡½ô•™Ÿû.º»ËÛêr¶n|¶¶¶õôvxb¯}[íìÈîÍ6ߺf|ðæ­«N—ÚN®ÿ›´ýhY »·¿gÕy8£à³Ã¥9›q°¿7ãÉÛ¾q0_f_Ë þ²ýдGι/®6í3Dók 6Ÿ"W÷×Tì#!YÝTãõ ÿ«³¿X¼ûF{Þºc­×lþæ_cÿ‰9¢ùK_Û¾qìþk8ÿrw麓… ŒG› «íÑïéïáy¶lþÍIo®÷ÏÎ2‰Ï"d«ÚÚݾ²ýÞ}ØhÍù†­ËrYWy—„‡ãdͼ•/á/VÉ&ZKáµL¡À½öx™”¡°ô…Y… juÛÃwöÏøÔ¯ú³ï¯Éx¼Šý2Ž$OAËP‡ýy´½º„t4îsíŒkì)$î©Q¯ "7A£?gÉ@‡c(ô„3jok9E u9¹ŒÁ/d86dqð/@cNiЃ9eyD¸H…{f¡®@/ÃZô`~ž£G¡. ¿Ð˜!ÌÂ`½DÈoÐSòc_ ùåBÂZ }%÷m<;4x²àÇ{[þãW<ÜœQ â¥$ñR1ñR â¥â¥Râ¥2â¥ñR:dÈA‡3NUAUI5'ŽZG-‰£Ž‰£^GGGG½$ŽzEµ"ŽZGmˆ£Î‰£.ˆ£.‰£áÄÑâh$q41q1‹/üÂð‹‚/fÒm|T—¾÷“Ž ³·ÙÖµ¬ÂÅiÃÓKýõN‰" endstream endobj 48 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XDINOL+CMSLTT10 /FontDescriptor 125 0 R /FirstChar 34 /LastChar 126 /Widths 113 0 R /ToUnicode 147 0 R >> endobj 148 0 obj << /Length 740 /Filter /FlateDecode >> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qض*Õj¯˜n$HPý÷ëñ#xÙö?ŸgìÁÜýxÝLTÕîÌ$|äìÍôí¹+Í$ý¹=wwY[ž¦ž©L5ÎöOìµkËØ}ºÎÖM=ÙëÃP7ò{=,éÛyf‹ì¶ÈÜ¢_¦ëë¶ybâ‘sn yS¥í6ú`z‘¦£¸}ÝTÝEÛA] $«êr¸ŒÜwy´çÅ›Ï~0Çu³oƒå’Mßìd?tŸNãC0}é*ÓÕÍ»¿•f§6çÓé` ƒñ`µb•ÙÛŽÖÿóöhØô[WÎûçÉ0鯂t•meúÓ¶4ݶù0Á’ó[Å*0Mõß\B+vû‘šX*Ÿã+TÑ*XÊÐb£À-¶L†š s[ ‹#*X,caq¢\Áâ`™`2Iш ôPè¡×]¬®QA2•¶ÝE;XÆÑXJKªC kàá8¢8pLØõ¹ììÖB§Òõ$qŒÆ©/0Îü8Å8ÿ‡?rŠÛxÂy!ÎBÀƒ=ÉXú„óÀõ Øy©ã82ƒVA× pÈ"¡ºžÓZÇqÞxæ8t9¼çMDð/ÈWáøä)uœœ8˜|¸}¥ Û†~)é3à„0|‡ÔSRÏœÎHCOt‰Î$"NN”“_hˆ ò…ž1'>4$ÕÁOˆŸ¡OB:Ý]*N:qžJøÜ(és£BŸ5ó¹Q‘ÏŠ}nTâs£”Ï¢¬(èQù<©ü6Oª¸Í“æ·yÒâkž´üš'ú<é™Ï“Ž|žtìó¤Ÿ'=÷yÒ Ÿ'­|ž´öyÒ©Ï“Î|žtîó¤ Ÿ§”û<¥Âç)•>Oéìzgî—ï~éx›ð’^Ÿ½òÜuöEtÏ­{èðÄÕ¹¾È§ö„Uîãžòñ¿£—"ø ›tª” endstream endobj 99 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RCBBTH+CMSS10 /FontDescriptor 127 0 R /FirstChar 83 /LastChar 116 /Widths 101 0 R /ToUnicode 148 0 R >> endobj 149 0 obj << /Length 750 /Filter /FlateDecode >> stream xÚmUMoâ0½çWx•ÚÅ$*B²ó!qض*Õj¯˜n$H¢$úï×3Cð²íh<~3~Ï~î~¼ngºj÷v¦9{³C{îK;Kîºàî.kËóÉ6ã³µ•­¦Ýችöm¹µ#»O7Ù¦©ÇÞ4åñ\Ù õ=ÈØºñ8‡Ý¿Ûß³ò4Ö‚Ïöçú8ÖÍŒø½ôí>sIv›dXôËöCÝ6OL xû9Œö´im$lþæ6‡±ÿDŽÁü¥¯l_7ìþ–šÛÚž»îhãÁzÍ*{pþçÝɲù·¯˜÷ÏÎ2‰kA¼Ê¶²C·+m¿k>lp¾fIQ¬ÛTÿíÅT±?LÐØAù>J‡ë ‘¡‹e .1›ÊPbéªpqH I$\kL¸8HbØŒShÄ…r =ôêzŠã51Xò‰Qùg×_¸sµ‚2¥äÄ’òÀ€+Š Ä ŠsˆC:CQŒ}.'c-ð”BbOEðƒuê×+Xg~Â:ÿ?aŠÛàj îB€.U ±$,ð¨›ĨA¦ˆA 2®‚žAÃ%‹˜òâ%Õ"µñ 1ô9h¨M„ _®ñ¤)ELN 1éÀs¥ ×þRÒ3fg =傸aîCÑYj¥ VÑÝà^¬w&L˜Ó=·° ½Ð3â„nqFyÀDŽϠOLüñ5'žpÏZx?iéý¤•÷“^x?éÐûIGÞO:ö~ÒÚûI“‡4ðÑíˆÏ¼Ït~ë3]ÜúÌð[ŸñÕgF~õ™QÞgfá}fBï3yŸ™ØûÌ,½ÏÌÊûÌhï3c¼ÏLê}f2ï3“{Ÿ™Âû,åÞg©ð>K¥÷Yº¸¾Nœ0³`Â^Çayî{7)q ã„ÑW7ö:©»¶ƒ*üሟþS`õRé̯ endstream endobj 45 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BTOIHB+CMTI10 /FontDescriptor 129 0 R /FirstChar 45 /LastChar 121 /Widths 114 0 R /ToUnicode 149 0 R >> endobj 150 0 obj << /Length 672 /Filter /FlateDecode >> stream xÚmTÁn£0½óÞC¥öÆ6’*ŠdrضjªÕ^pºH‰A@ýûõŒCf»êô¿™yã'æîÇën¦êö`gñ#govh/}egæç¾‹îîò¶ºœ­Ÿ­­m=Oìµo«Ù½Ùæ[׌ž¼uÕéRÛ‰õ=IÛÆú°ûwû{VÇQðÙáÒœÆÆÍ8ß›ñäIßž3d_ƒ “~Ù~hZ÷ÄÄ#çÜ W›ö c Ñü*…Í'qÇÆÕýU;€ºHHV7ÕxýÂwuö÷É»Ïa´ç­;¶ÑzÍæoþpûOÔøÍ_úÚöû`÷_¥ù£Ý¥ëNd0m6¬¶G_ÑÏÿ¼?[6ÿvÆçý³³Lâ·ºª¶¶C·¯l¿w6Zs¾aë²ÜDÖÕÿ%!ãpœ¨™§ò%¼b•l¢µËÜc€Ã¤ ¥¤ÀÈ ¤ÀPÀP«[ ßuªŸñ©_õgß_•ñxû4Ž$Oˇú<X^\NB8 ë\;c®‚šBbMx¹ ùy˜%ÆPÈ 3jok:E q:¹Œ/d4ˆ8ð€Q§4ÈA2="\¤ÂšYˆ+ÀË‹ÔÏsä(Äè5$ YŒ—Èú rŠÀ‘€ƒ~ì+A¿\HÈ•ÐWr߯{ÇNøxoËøŠ‡û• ¿”$¿TL~©ù¥òK¥ä—ÊÈ/¥È/¥ƒ†p˜1ðsòQä£*ÉGÍÉG-ÈG-ÉG“zA>ê„|Ô)ù¨3òQ/ÉG½"µ"µ&µ!uN>ê‚|Ô%ùh8ùhùh$ùhbòÅ,n~á†üá°nË£ºô½ß+¸´p]À¢hœ½íµ®í \ˆÓ†¯—2ú ¯M„Ç endstream endobj 44 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JFVKGJ+CMTT10 /FontDescriptor 131 0 R /FirstChar 34 /LastChar 126 /Widths 115 0 R /ToUnicode 150 0 R >> endobj 151 0 obj << /Length 430 /Filter /FlateDecode >> stream xÚu’Ín«0…÷~й‹Hé‚b·M+„” eÑ5QÕ-±')R°‘©yûzlH¥¨]ŸgÎàãñLþ½nƒ…Ô{ f·Þ°Õ½äOeÃ&“•}ª{F”(Çlû¯F‹-v0Í7«ªº+Þ(qê%ŽªßEK> endobj 152 0 obj << /Length 600 /Filter /FlateDecode >> stream xÚuTËnâ@¼û+fHä@˜Æ!BHØÆ‡M¢€V{5ö@,á‡lsàïwª m˜ššêîê6Íè×Çn²Î냘g)>mW_ÚÌN¢ßiãFq]J[õoÖæ6n»WñÑÖÙÎöbmãmUôON¼­²ó%·ƒêÿ¢ÐžŠê[‚:b¼·'ç²,”t_“2í¿Š~"!ßýÙÉ~PG‹GZPàÛvE]½ õ,¥tĦʣºD37½ÓÁⱨòöæJàÑSZäEÖßNôÌJ7ï®]oËmu¬½åRL?Ýe×·WòùäMßÛܶEuãGsîrwiš³…!½ÕJäöèrº9¼¥¥Ó:½«öׯ MgÅÞ²:·]“f¶M«“õ–R®Ä2IVž­ò‡;e8äp´ÓÊ<ÌÚ_9"Þ*G(dS>sQÆ  ÖDDr¨˜ "qX+&Gh„ë±aá:$‚r”5PHi@ÌîS9ƒ1jUô|s(V8Œö‡>Ílè;ûJÛÛˆ¤YÀœD˜Ö½IÍü °aÏo€yk˜rA„)Ï‚1ÅR;JS΄øÓU¤—!ar ¬¹.ñšëÆèQsÝy4×Mˆçº‘“9µÒŒiè~½á©hø7!cŒÝD<`Â1ó ð†yÒSMùg’g…º>Õ2½û cðsÒ(> ZÊÀC@µ´· f fP·7Fo?],Û}/²KÛº•¡¤=À•½/mS7ˆ¢mûð'ƒÓ{âý¨ØL: endstream endobj 73 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OXQEPB+LMMathItalic10-Regular /FontDescriptor 135 0 R /FirstChar 11 /LastChar 117 /Widths 111 0 R /Encoding 104 0 R /ToUnicode 152 0 R >> endobj 153 0 obj << /Length 599 /Filter /FlateDecode >> stream xÚmTM¢@½ó+z&ÎÁ±?DtbL$ñ°3“ÑlöŠÐ:$òÀƒÿ~ûUÉlbÛ:ÛÛ^Œ£]¼«ŠþʼnwUv¹ævP=…ö\Tÿ%¨#Æûwr)Ëbáž“2í¿‹~"¡>ýÅ©ž „cÅ+(ìm»¢®Þ„z•R:b[åQ]¢“ΛÞ݈éàïTTy{·$Ž0è)-ò"ëï'zf¥ ‚÷·®·å®:ÕÞj%¦_î²ëÛ¹|ñ¦mnÛ¢:‹ñƒ7w·¿6ÍŇÞz-r{r)Ý ÞÓÒŠéó6D‡[c…¦³bgYÛ®I3Û¦ÕÙz+)×b•$kÏVùÃ2r< ÚÀiå³ñ׎·D„Ê Ù”ÏÄB‡„1ˆ%ˆ ‘*f€HÖŠ‰ÀázIl@¸‰ e R3„ûTEÎ`̇ÚG=ŸÃÇŠ€£ý¡O3úξÓö>"i–0'¦µDoR3¿6ŒCàã-0ÏbS.ˆ0åY2¦XjGiÊ™Ÿ`ºŠô2$ÌCŽ5×%^sÝ=j®#æº ñ\7ÒÀcÒ §öCš1 Ý 7< ÿ&dŒ±›ˆL8f>Þ2OzÊ£)ÿLò¬P×§ZF£w?a ~N¥ÀTKx¨–6ðĬÁ¬Ê#ãàþÆè ᯋUûY‹ìÚ¶nchi°EeV¶©DÑv}ø¾àô‘xÿæzKm endstream endobj 77 0 obj << /Type /Font /Subtype /Type1 /BaseFont /METPUS+LMMathItalic8-Regular /FontDescriptor 137 0 R /FirstChar 116 /LastChar 116 /Widths 105 0 R /Encoding 104 0 R /ToUnicode 153 0 R >> endobj 154 0 obj << /Length 790 /Filter /FlateDecode >> stream xÚuUMoâ0½çWx•Úʼn B „H¶­JµÚ+ML ”„ÿ~ýf’Vª¶àååyæyfln~=ï&iÙ¼ù‰¹—âÅwÍ¥-üdý{Žnn²¦¸œ|Ý?z_úr|Û=ˆç¶)v¾·ëm¶­«þ.ˆ·uq¼”~Tý_´òïUý%AqûêÿNާîªdø™œöýGwHÈ_«þd?(D ÅwZÐÂ?¾íª¦~ê^JˆM]®›6ÓEÓÁ˜ŽU]¶ƒ+ñ‘Ò¢¬Š~x¢ï⪂Żk×ûÓ¶>4Ñb!¦/áe×·WòyMŸÚÒ·Uý.n¿› /w—óùèaDÈh¹¥?„˜¡û“Óvú©z½ž½Ðô¬Ø[Ñ”¾;ï ßîëw-¤\ŠEž/#_—ßÞiÉKÞ£v´r¾´ž'Ëh¡tÀÊ1³ b 6aA8išƒHA¬x‰x*ã%)ˆ ˆœBSDÖjn@PË„AñȘʠ0ˆa8F ± 8An)Ž  +4bXÂ*^c›³”ÛHø°°`&f P;á6 <9ÇB‡—iµÔ2)L¦´ÛÔeTõ±¼Vå.>öíЭ¼HEÎW0*5áŒ0×^Ž‰Ï s ÖØº´¼~${S¨‘$2Ë€Q lÐC™³]j{ˆ¡Q\‹8jFجç¬A´ä¦`«Z1F­c­f1urÆ=#ýœ1éSƤÏx-¼é ã907OÁ›¡¼Ò`­aŸaŒ¦¼šºe¸VrLÓ”¬hVƇje éyÞ ïQ’ž§(ÅÞ ²Äa0<Šxö¬à?æšhÖkŒSÂIc/ Ïÿ ž-÷ËÁ§uŒáÍr^‡øvˆƒ˜–óÒ´œ7#¼!}Bz®UŒ½¸a®àÁQ­Rƒ“é†Za~×JËyž1KŽçŠN¡›qH¿âCù±–4côÅmÓ¹ÈËáÐÄãÂùy½—¶ 7]¬tá"«jÿy÷ž›3Vч.íñ¿OOyôâ§/ endstream endobj 75 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VYLNQQ+LMMathSymbols10-Regular /FontDescriptor 143 0 R /FirstChar 0 /LastChar 106 /Widths 109 0 R /Encoding 108 0 R /ToUnicode 154 0 R >> endobj 155 0 obj << /Length 962 /Filter /FlateDecode >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—ÃbtüÖ ?ìÏ/‘ôé}‹êcQQÓ?a9íçé›2_µÖ±ÐMc3`㔬EŠZ_Å=í§q=êêcÕ¸ÎrE¿Ã!ææû×Ó99©*µþožÎË+iü’¬,cXöÓ³ºý(-Þº¿/2”N¶[5†§81úÿ¾;µþÔãçáõ”¥kú†y §ãnËnzI¥õVU}¿MÂ4þqϤÜòøtå‘«~RŸm“ʦÛq,àfZsÁÅBÚGœq!â¤ÊMÄ…§BÄIUàfÑ`6˜QbFY‚a Ìh ±É¨%âX€Ž–—8©Z°ÛŽ 'U‡–Ž[:´thé¹¥CK–ž["†ý«O£õÕøðßn‘ŒtZB†~kul¹‘:e\owÀÇ:gLsJÆÔ‹8¬±4“³Êsüáºy¿†3ݾ_7¸î~ã_9ýÇx†<˜‘xˆ†Œe.ôò ë 0y°¯!¶…VÃzì¥)¸î÷§ä ou/†¼™ þ ûê‰ÏžâṯÀìƒÖµ†*è·–Ÿ–¸` ß)Ïôà¤<3'åŒjèÉäIC&s2p²ŽýBCÖ³/ÌÌ5ó¡¡h¹~Áüs ÖI{é8g ýÎ0FžÎ2Æ|—2F¯Û0Ƴâ(gc§ËÓÌ‚1qï#´9~IÈ££œÍÞç¼AήaŒ}t-cš/9cß]Ï:KÖŸaÝ’õgà—¬Ÿž“’õgÐS²þœzYï%ë/ˆÏúsâ³ÎšKÖYà)YgJ½¬3¥^Öià«”œáÅKÎðè%g|’¼äLÉkyÉÏ€—œ±®—œ‘§—œ‰#9û—œ¡ßKÎÐé%gx÷’3ró’3Í—œ¡ßKÎÐYKÎX·–œÁ¯%gðkÉzjÉ™z%gx¯%gâKÎÄç÷±',S/Ÿ9úªÅÓêÃG®–ÉZ6h-C‹ñ S#Üš_*‹ jÙpù@ÀL[0Ÿ°£‰6µe~–â_gî!£}Ï/\÷»XN8Jßνá²,ñH¤ó–N:œqû)¼ÉÇùˆ.ú£³üúÏ®~ôÉÿÚ~: endstream endobj 74 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DMNVHT+LMRoman10-Regular /FontDescriptor 139 0 R /FirstChar 40 /LastChar 61 /Widths 110 0 R /Encoding 102 0 R /ToUnicode 155 0 R >> endobj 156 0 obj << /Length 962 /Filter /FlateDecode >> stream xÚmVËnã8¼ë+¸‡™ƒÇ$eIÔ@0@½€vf0 {u$&k – Ù>äï—ÕÝN&ƒb”ZÕͪ¢$ææ¯Ÿ÷+?Îa•~ÕêW8Í—e«æïÝ1¹¹içárÓù{c¯wOßÔÏeîÃYÝ6wíÝ´?‰ä»ix¹ŒáÊúœT‡çýôNÁ:êö!ü»Z«—Ãââ ÷a~‰œÏn«XSjŠZþ Ëi?Oß”ùªµŽ…n›ù§d-:Ôúªìi?‹ˆQ–«Æýp–+ú1 4ß¿žÎáp7=ÍIU©õ¯xót^^Iá—dýcòŸžÕíeñÎýåx| P¡t²Ýª1<ÅÑû÷Ý!¨õgß(¯Ç ,]V5Ìc8wCXvÓsH*­·ªêûm¦ñ{&å–ǧ+·ˆ\íð“úl›T6Øæ(èˆc7Óš .Ò>⌠'Un".<"Nª7‹ƒ´ÁŒ3Ê S`F‰MF-Çt´¼lÄIÕ‚ÝvTˆ8©:´tÜÒ¡¥CKÏ-Zz´ôÜ1ì_}­¯Æ‡ÿv‹d¤Óê4ô[«s`ËuˆÔ)ãxøÎ8.ˆÐ9cšS2¦^Äa¥™œUžã×Íû5œéöýºÁu÷ÿÊé?ÖÀ3äÁ¤ˆÜÀCÜ0ä`,s¡Ï]o€Éƒ¥x y°-´ÎÐc/MÁu츗8%ïqx«;x1äÍdðoØWO|öÔ§cŽf´®5üPA¿µü´´ÀcøNy¦'å™)8)gTCO&O2ɘ““u첞}af®™ EËuð æ·˜S°NÚKÇ9kèw†1òt–1æ»”1z݆1žG9ƒ<]ΘfŒ‰ãx¡ÍñKBål6ðî8ç rv cì£kÓ|ÉûîzÆÐY²þ ë–¬?¿dýôœ”¬?ƒž’õçÔËúsx/YA|ÖŸŸuÐ\²ÎïLÉ:Sêe)õ²N_¥ä /^r†G/9ã“ä%gâHÎXËKÎx¼äŒu½äŒ<½äLÉÞ½ä ý^r†N/9û—œ‘›—œi¾ä ý^r†ÎZrƺµä ~-9ƒ_KÎÐSKÎÔ+9Ã{-9_r&>¿=aù˜zùÌÑW-žU>rµl LÖ²1x@kÙZŒ_˜áÖüRYQËÆ€ÓÈfÚ‚ù„½H´©-ó³ø:sí{~áºßÅâpÂAúvì —e‰'"¶tÒáŒÛOáí@>ÎGtÑä×ÿpõ£Oþ (m endstream endobj 78 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TJJMGF+LMRoman8-Regular /FontDescriptor 141 0 R /FirstChar 48 /LastChar 48 /Widths 103 0 R /Encoding 102 0 R /ToUnicode 156 0 R >> endobj 49 0 obj << /Type /Pages /Count 6 /Parent 157 0 R /Kids [34 0 R 52 0 R 60 0 R 69 0 R 84 0 R 91 0 R] >> endobj 100 0 obj << /Type /Pages /Count 1 /Parent 157 0 R /Kids [96 0 R] >> endobj 157 0 obj << /Type /Pages /Count 7 /Kids [49 0 R 100 0 R] >> endobj 158 0 obj << /Type /Outlines /First 3 0 R /Last 31 0 R /Count 4 >> endobj 31 0 obj << /Title 32 0 R /A 29 0 R /Parent 158 0 R /Prev 23 0 R >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 23 0 R >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 158 0 R /Prev 11 0 R /Next 31 0 R /First 27 0 R /Last 27 0 R /Count -1 >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 11 0 R /Prev 15 0 R >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 11 0 R /Next 19 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 158 0 R /Prev 3 0 R /Next 23 0 R /First 15 0 R /Last 19 0 R /Count -2 >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 3 0 R >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R /Parent 158 0 R /Next 11 0 R /First 7 0 R /Last 7 0 R /Count -1 >> endobj 159 0 obj << /Names [(Doc-Start) 41 0 R (Section.0.Examples\040of\040custom\040distributions.1) 2 0 R (Section.1.Examples\040of\040custom\040model\040summaries.1) 10 0 R (Section.2.Spline\040models.1) 22 0 R (Section.3.Right\040truncation:\040retrospective\040ascertainment.1) 30 0 R (Subsection.1.0.Proportional\040hazards\040generalized\040gamma\040model.2) 6 0 R] /Limits [(Doc-Start) (Subsection.1.0.Proportional\040hazards\040generalized\040gamma\040model.2)] >> endobj 160 0 obj << /Names [(Subsection.2.0.Plotting\040a\040hazard\040ratio\040against\040time.2) 14 0 R (Subsection.2.1.Restricted\040mean\040survival.2) 18 0 R (Subsection.3.0.Prognostic\040model\040for\040the\040German\040breast\040cancer\040data.2) 26 0 R (cite.sauerbrei1999building) 89 0 R (cite.stgenreg) 50 0 R (page.1) 40 0 R] /Limits [(Subsection.2.0.Plotting\040a\040hazard\040ratio\040against\040time.2) (page.1)] >> endobj 161 0 obj << /Names [(page.2) 54 0 R (page.3) 62 0 R (page.4) 71 0 R (page.5) 86 0 R (page.6) 93 0 R (page.7) 98 0 R] /Limits [(page.2) (page.7)] >> endobj 162 0 obj << /Names [(section.1) 46 0 R (section.2) 56 0 R (section.3) 87 0 R (section.4) 94 0 R (subsection.1.1) 47 0 R (subsection.2.1) 57 0 R] /Limits [(section.1) (subsection.2.1)] >> endobj 163 0 obj << /Names [(subsection.2.2) 72 0 R (subsection.3.1) 88 0 R] /Limits [(subsection.2.2) (subsection.3.1)] >> endobj 164 0 obj << /Kids [159 0 R 160 0 R 161 0 R 162 0 R 163 0 R] /Limits [(Doc-Start) (subsection.3.1)] >> endobj 165 0 obj << /Dests 164 0 R >> endobj 166 0 obj << /Type /Catalog /Pages 157 0 R /Outlines 158 0 R /Names 165 0 R /PageMode/UseOutlines /OpenAction 33 0 R >> endobj 167 0 obj << /Producer (MiKTeX pdfTeX-1.40.24) /Author(\376\377\000C\000h\000r\000i\000s\000t\000o\000p\000h\000e\000r\000\040\000J\000a\000c\000k\000s\000o\000n\000,\000\040\000M\000R\000C\000\040\000B\000i\000o\000s\000t\000a\000t\000i\000s\000t\000i\000c\000s\000\040\000U\000n\000i\000t)/Title(\376\377\000f\000l\000e\000x\000s\000u\000r\000v\000:\000\040\000f\000l\000e\000x\000i\000b\000l\000e\000\040\000p\000a\000r\000a\000m\000e\000t\000r\000i\000c\000\040\000s\000u\000r\000v\000i\000v\000a\000l\000\040\000m\000o\000d\000e\000l\000l\000i\000n\000g\000\040\000i\000n\000\040\000R\000.\000\040\000S\000u\000p\000p\000l\000e\000m\000e\000n\000t\000a\000r\000y\000\040\000e\000x\000a\000m\000p\000l\000e\000s)/Subject()/Creator(LaTeX with hyperref)/Keywords(\376\377\000s\000u\000r\000v\000i\000v\000a\000l) /CreationDate (D:20240816160420+01'00') /ModDate (D:20240816160420+01'00') /Trapped /False /PTEX.Fullbanner (This is MiKTeX-pdfTeX 4.14.0 (1.40.24)) >> endobj xref 0 168 0000000000 65535 f 0000000015 00000 n 0000005349 00000 n 0000200799 00000 n 0000000104 00000 n 0000000299 00000 n 0000005458 00000 n 0000200742 00000 n 0000000408 00000 n 0000000666 00000 n 0000007723 00000 n 0000200619 00000 n 0000000760 00000 n 0000000969 00000 n 0000007833 00000 n 0000200545 00000 n 0000001074 00000 n 0000001296 00000 n 0000018018 00000 n 0000200471 00000 n 0000001380 00000 n 0000001533 00000 n 0000021469 00000 n 0000200346 00000 n 0000001598 00000 n 0000001693 00000 n 0000021579 00000 n 0000200285 00000 n 0000001818 00000 n 0000002116 00000 n 0000024177 00000 n 0000200210 00000 n 0000002219 00000 n 0000002480 00000 n 0000004599 00000 n 0000004747 00000 n 0000004932 00000 n 0000005086 00000 n 0000005567 00000 n 0000002528 00000 n 0000005240 00000 n 0000005294 00000 n 0000187952 00000 n 0000188933 00000 n 0000193726 00000 n 0000192811 00000 n 0000005403 00000 n 0000005512 00000 n 0000190833 00000 n 0000199882 00000 n 0000026447 00000 n 0000007943 00000 n 0000007554 00000 n 0000005685 00000 n 0000007669 00000 n 0000189915 00000 n 0000007778 00000 n 0000007888 00000 n 0000009442 00000 n 0000015664 00000 n 0000009327 00000 n 0000008061 00000 n 0000015610 00000 n 0000012543 00000 n 0000012686 00000 n 0000012784 00000 n 0000012819 00000 n 0000012913 00000 n 0000018128 00000 n 0000017849 00000 n 0000015809 00000 n 0000017964 00000 n 0000018073 00000 n 0000195278 00000 n 0000198460 00000 n 0000197221 00000 n 0000194399 00000 n 0000196154 00000 n 0000199693 00000 n 0000020745 00000 n 0000020913 00000 n 0000021081 00000 n 0000021248 00000 n 0000021689 00000 n 0000020590 00000 n 0000018318 00000 n 0000021415 00000 n 0000021524 00000 n 0000021634 00000 n 0000026506 00000 n 0000024287 00000 n 0000024008 00000 n 0000021807 00000 n 0000024123 00000 n 0000024232 00000 n 0000026565 00000 n 0000026277 00000 n 0000024417 00000 n 0000026393 00000 n 0000191818 00000 n 0000199992 00000 n 0000026707 00000 n 0000187033 00000 n 0000026922 00000 n 0000186866 00000 n 0000026947 00000 n 0000186793 00000 n 0000026972 00000 n 0000186963 00000 n 0000026997 00000 n 0000027615 00000 n 0000027742 00000 n 0000028353 00000 n 0000028960 00000 n 0000029351 00000 n 0000029814 00000 n 0000030205 00000 n 0000030832 00000 n 0000031457 00000 n 0000046038 00000 n 0000046366 00000 n 0000068690 00000 n 0000069148 00000 n 0000083103 00000 n 0000083400 00000 n 0000102008 00000 n 0000102552 00000 n 0000109859 00000 n 0000110082 00000 n 0000122882 00000 n 0000123153 00000 n 0000140921 00000 n 0000141381 00000 n 0000144212 00000 n 0000144463 00000 n 0000149068 00000 n 0000149327 00000 n 0000151758 00000 n 0000151995 00000 n 0000168258 00000 n 0000168520 00000 n 0000183506 00000 n 0000183741 00000 n 0000186546 00000 n 0000187132 00000 n 0000188113 00000 n 0000189094 00000 n 0000190077 00000 n 0000190997 00000 n 0000191980 00000 n 0000192973 00000 n 0000193888 00000 n 0000194597 00000 n 0000195474 00000 n 0000196350 00000 n 0000197417 00000 n 0000198650 00000 n 0000200068 00000 n 0000200136 00000 n 0000200906 00000 n 0000201381 00000 n 0000201811 00000 n 0000201967 00000 n 0000202162 00000 n 0000202286 00000 n 0000202396 00000 n 0000202434 00000 n 0000202561 00000 n trailer << /Size 168 /Root 166 0 R /Info 167 0 R /ID [ ] >> startxref 203535 %%EOF flexsurv/inst/doc/flexsurv.Rnw0000644000176200001440000020161214607502156016230 0ustar liggesusers%\VignetteIndexEntry{flexsurv user guide} %\VignetteEngine{knitr::knitr} % \documentclass[article,shortnames]{jss} \documentclass[article,shortnames,nojss,nofooter]{jss} \usepackage{bm} \usepackage{tabularx} \usepackage{graphics} \usepackage{alltt} <>= options(width=60) options(prompt="R> ") library(knitr) opts_chunk$set(fig.path="flexsurv-") render_sweave() @ %% need no \usepackage{Sweave.sty} \author{Christopher H. Jackson \\ MRC Biostatistics Unit, Cambridge, UK} \title{flexsurv: A Platform for Parametric Survival Modelling in R} \Plainauthor{Christopher Jackson, MRC Biostatistics Unit} \Address{ Christopher Jackson\\ MRC Biostatistics Unit\\ Cambridge Institute of Public Health\\ Robinson Way\\ Cambridge, CB2 0SR, U.K.\\ E-mail: \email{chris.jackson@mrc-bsu.cam.ac.uk} } \Abstract{ \pkg{flexsurv} is an \proglang{R} package for fully-parametric modelling of survival data. Any parametric time-to-event distribution may be fitted if the user supplies a probability density or hazard function, and ideally also their cumulative versions. Standard survival distributions are built in, including the three and four-parameter generalized gamma and F distributions. Any parameter of any distribution can be modelled as a linear or log-linear function of covariates. The package also includes the spline model of \citet{royston:parmar}, in which both baseline survival and covariate effects can be arbitrarily flexible parametric functions of time. The main model-fitting function, \code{flexsurvreg}, uses the familiar syntax of \code{survreg} from the standard \pkg{survival} package \citep{therneau:survival}. Censoring or left-truncation are specified in \code{Surv} objects. The models are fitted by maximising the full log-likelihood, and estimates and confidence intervals for any function of the model parameters can be printed or plotted. \pkg{flexsurv} also provides functions for fitting and predicting from fully-parametric multi-state models, and connects with the \pkg{mstate} package \citep{mstate:jss}. This article explains the methods and design principles of the package, giving several worked examples of its use. \emph{[Note: A version of this vignette is published as \citet{flexsurv} in Journal of Statistical Software. All content there is included here. There have been no substantial changes in the survival modelling parts since then. Version 2.0 of \pkg{flexsurv} added new features for multi-state modelling, and since that version, multi-state modelling with \pkg{flexsurv} has been described in a separate vignette.]}} \Keywords{survival, multi-state models, multistate models} \begin{document} %\SweaveOpts{concordance=TRUE} \section{Motivation and design} The Cox model for survival data is ubiquitous in medical research, since the effects of predictors can be estimated without needing to supply a baseline survival distribution that might be inaccurate. However, fully-parametric models have many advantages, and even the originator of the Cox model has expressed a preference for parametric modelling \citep[see][]{reid:cox:conversation}. Fully-specified models can be more convenient for representing complex data structures and processes \citep{aalen:process}, e.g. hazards that vary predictably, interval censoring, frailties, multiple responses, datasets or time scales, and can help with out-of-sample prediction. For example, the mean survival $\E(T) = \int_0^{\infty}S(t)dt$, used in health economic evaluations \citep{latimer2013survival}, needs the survivor function $S(t)$ to be fully-specified for all times $t$, and parametric models that combine data from multiple time periods can facilitate this \citep{survextrap:tatiana}. %% Cox "That's right, but since then various people have shown that %% the answers are very insensitive to the parametric %% formulation of the underlying distribution. And if you want %% to do things like predict the outcome for a particular patient, %% it's much more convenient to do that parametrically." \pkg{flexsurv} for \proglang{R} \citep{R} allows parametric distributions of arbitrary complexity to be fitted to survival data, gaining the convenience of parametric modelling, while avoiding the risk of model misspecification. Built-in choices include spline-based models with any number of knots \citep{royston:parmar} and 3--4 parameter generalized gamma and F distribution families. Any user-defined model may be employed by supplying at minimum an \proglang{R} function to compute the probability density or hazard, and ideally also its cumulative form. Any parameters may be modelled in terms of covariates, and any function of the parameters may be printed or plotted in model summaries. \pkg{flexsurv} is intended as a general platform for survival modelling in \proglang{R}. The \code{survreg} function in the \proglang{R} package \pkg{survival} \citep{therneau:survival} only supports two-parameter (location/scale) distributions, though users can supply their own distributions if they can be parameterised in this form. Some other contributed \proglang{R} packages can fit survival models, e.g., \pkg{eha} \citep{eha} and \pkg{VGAM} \citep{yee:wild}, though these are either limited to specific distribution families, or not specifically designed for survival analysis. Others, e.g. \pkg{ActuDistns} \citep{actudistns}, contain only the definitions of distribution functions. \pkg{flexsurv} enables such functions to be used in survival models. It is similar in spirit to the \proglang{Stata} packages \pkg{stpm2} \citep{stpm2} for spline-based survival modelling, and \pkg{stgenreg} \citep{stgenreg} for fitting survival models with user-defined hazard functions using numerical integration. Though in \pkg{flexsurv}, slow numerical integration can be avoided if the analytic cumulative distribution or hazard can be supplied, and optimisation can also be speeded by supplying analytic derivatives. \pkg{flexsurv} also has features for multi-state modelling and interval censoring, and general output reporting. It employs functional programming to work with user-defined or existing \proglang{R} functions. \S\ref{sec:general} explains the general model that \pkg{flexsurv} is based on. \S\ref{sec:models} gives examples of its use for fitting built-in survival distributions with a fixed number of parameters, and \S\ref{sec:custom} explains how users can define new distributions. \S\ref{sec:adim} concentrates on classes of models where the number of parameters can be chosen arbitrarily, such as splines. \S\ref{sec:multistate} mentions the use of \pkg{flexsurv} for fitting and predicting from fully-parametric multi-state models, which is described more fully in a separate vignette. Finally \S\ref{sec:extensions} suggests some potential future extensions. \section{General parametric survival model} \label{sec:general} The general model that \pkg{flexsurv} fits has probability density for death at time $t$: \begin{equation} \label{eq:model} f(t | \mu(\mathbf{z}), \bm{\alpha}(\mathbf{z})), \quad t \geq 0 \end{equation} The cumulative distribution function $F(t)$, survivor function $S(t) = 1 - F(t)$, cumulative hazard $H(t) = -\log S(t)$ and hazard $h(t) = f(t)/S(t)$ are also defined (suppressing the conditioning for clarity). $\mu=\alpha_0$ is the parameter of primary interest, which usually governs the mean or \emph{location} of the distribution. Other parameters $\bm{\alpha} = (\alpha_1, \ldots, \alpha_R)$ are called ``ancillary'' and determine the shape, variance or higher moments. %%% Covariates may be time-dependent, but this notation generalizes to left-truncation, ref msm section \paragraph{Covariates} All parameters may depend on a vector of covariates $\mathbf{z}$ through link-transformed linear models $g_0(\mu(\mathbf{z})) = \gamma_0 + \bm{\beta}_0^{\top} \mathbf{z}$ and $g_r(\alpha_r(\mathbf{z})) = \gamma_r + \bm{\beta}_r^{\top} \mathbf{z}$. $g()$ will typically be $\log()$ if the parameter is defined to be positive, or the identity function if the parameter is unrestricted. Suppose that the location parameter, but not the ancillary parameters, depends on covariates. If the hazard function factorises as $h(t | \bm{\alpha}, \mu(\mathbf{z})) = \mu(\mathbf{z}) h_0(t | \bm{\alpha})$, then this is a \emph{proportional hazards} (PH) model, so that the hazard ratio between two groups (defined by two different values of $\mathbf{z}$) is constant over time $t$. Alternatively, if $S(t | \mu(\mathbf{z}), \bm{\alpha}) = S_0(\mu(\mathbf{z}) t | \bm{\alpha})$ then it is an \emph{accelerated failure time} (AFT) model, so that the effect of covariates is to speed or slow the passage of time. For example, doubling the value of a covariate with coefficient $\beta=\log(2)$ would give half the expected survival time. \paragraph{Data and likelihood} Let $t_i: i=1,\ldots, n$ be a sample of times from individuals $i$. Let $c_i=1$ if $t_i$ is an observed death time, or $c_i=0$ if this is censored. Most commonly, $t_i$ may be right-censored, thus the true death time is known only to be greater than $t_i$. More generally, the survival time may be interval-censored on $(t^{min}_i, t^{max}_i)$. Also let $s_i$ be corresponding left-truncation (or delayed-entry) times, meaning that the $i$th survival time is only observed conditionally on the individual having survived up to $s_i$, thus $s_i=0$ if there is no left-truncation. With at most right-censoring, the likelihood for the parameters $\bm{\theta} = \{\bm{\gamma},\bm{\beta}\}$ in Equation \ref{eq:model}, given the corresponding data vectors, is \begin{equation} \label{eq:lik} l(\bm{\theta} | \mathbf{t},\mathbf{c},\mathbf{s}) = \left\{ \prod_{i:\ c_i=1} f_i(t_i) \prod_{i:\ c_i=0} S_i(t_i)\right\} / \prod_i S_i(s_i) \end{equation} where $f_i(t_i)$ is shorthand for $f(t_i | \mu(\mathbf{z}_i), \bm{\alpha}(\mathbf{z}_i))$, $S_i(t_i)$ is $S(t_i | \mu(\mathbf{z}_i), \bm{\alpha}(\mathbf{z}_i))$, and $\mu, \bm{\alpha}$ are related to $\bm{\gamma}$, $\bm{\beta}$ and $\mathbf{z}_i$ via the link functions defined above. The log-likelihood also has a concise form in terms of hazards and cumulative hazards, as \[ \log l(\bm{\theta}|\mathbf{t},\mathbf{c},\mathbf{s}) = \sum_{i:\ c_i=1} \left\{\log(h_i(t_i)) - H_i(t_i)\right\} - \sum_{i:\ c_i=0} H_i(t_i) + \sum_i H_i(s_i) \] With interval-censoring, the likelihood is \begin{equation} \label{eq:lik:interval} l(\bm{\theta} | \mathbf{t}^{min},\mathbf{t}^{max},\mathbf{c},\mathbf{s}) = \left\{ \prod_{i:\ c_i=1} f_i(t_i) \prod_{i:\ c_i=0} \left(S_i(t_i^{min}) - S_i(t^{max}_i)\right)\right\} / \prod_i S_i(s_i) \end{equation} %% with hazards: %% log lik is sum log(f) sum log(S) - sum log(S) %% sum(log(h) + H) - sum(H) + sum(H(si)) %% h = f/S, H=-log(S) h S S These likelihoods assume that the times of censoring are fixed or otherwise distributed independently of the parameters $\bm{\theta}$ that govern the survival times (see, e.g. \citet{aalen:process}). The individual survival times are also independent, so that \pkg{flexsurv} does not currently support shared frailty, clustered or random effects models (see \S\ref{sec:extensions}). The parameters are estimated by maximising the full log-likelihood with respect to $\bm{\theta}$, as detailed further in \S\ref{sec:comp}. \section{Fitting standard parametric survival models} \label{sec:models} An example dataset used throughout this paper is from 686 patients with primary node positive breast cancer, available in the package as \code{bc}. This was originally provided with \pkg{stpm} \citep{stpm:orig}, and analysed in much more detail by \citet{sauerbrei1999building} and \citet{royston:parmar} \footnote{A version of this dataset, including more covariates but excluding the prognostic group, is also provided as \code{GBSG2} in the package \pkg{TH.data} \citep{TH.data}.} . The first two records are shown by: <>= library("flexsurv") @ <<>>= head(bc, 2) @ The main model-fitting function is called \code{flexsurvreg}. Its first argument is an \proglang{R} \emph{formula} object. The left hand side of the formula gives the response as a survival object, using the \code{Surv} function from the \pkg{survival} package. <<>>= fs1 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") @ Here, this indicates that the response variable is \code{recyrs}. This represents the time (in years) of death or cancer recurrence when \code{censrec} is 1, or (right-)censoring when \code{censrec} is 0. The covariate \code{group} is a factor representing a prognostic score, with three levels \code{"Good"} (the baseline), \code{"Medium"} and \code{"Poor"}. All of these variables are in the data frame \code{bc}. If the argument \code{dist} is a string, this denotes a built-in survival distribution. In this case we fit a Weibull survival model. Printing the fitted model object gives estimates and confidence intervals for the model parameters and other useful information. Note that these are the \emph{same parameters} as represented by the \proglang{R} distribution function \code{dweibull}: the \code{shape} $\alpha$ and the \code{scale} $\mu$ of the survivor function $S(t) = \exp(-(t/\mu)^\alpha)$, and \code{group} has a linear effect on $\log(\mu)$. <<>>= fs1 @ For the Weibull (and exponential, log-normal and log-logistic) distribution, \code{flexsurvreg} simply acts as a wrapper for \code{survreg}: the maximum likelihood estimates are obtained by \code{survreg}, checked by \code{flexsurvreg} for optimisation convergence, and converted to \code{flexsurvreg}'s preferred parameterisation. Therefore the same model can be fitted more directly as <<>>= survreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") @ \begin{sloppypar} The maximised log-likelihoods are the same, however the parameterisation is different: the first coefficient \code{(Intercept)} reported by \code{survreg} is $\log(\mu)$, and \code{survreg}'s \code{"scale"} is \code{dweibull}'s (thus \code{flexsurvreg})'s 1 / \code{shape}. The covariate effects $\bm{\beta}$, however, have the same ``accelerated failure time'' interpretation, as linear effects on $\log(\mu)$. The multiplicative effects $\exp(\bm{\beta})$ are printed in the output as \code{exp(est)}. \end{sloppypar} The same model can be fitted in \pkg{eha}, also by maximum likelihood, as <>= library(eha) aftreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "weibull") @ The results are presented in the same parameterisation as \code{flexsurvreg}, except that the shape and scale parameters are log-transformed, and (unless the argument \code{param="lifeExp"} is supplied) the covariate effects have the opposite sign. \subsection{Additional modelling features} \label{sec:censtrunc} \subsubsection{Truncation and time-dependent covariates} \begin{sloppypar} If we also had left-truncation times in a variable called \code{start}, the response would be \code{Surv(start, recyrs, censrec)}. Or if all responses were interval-censored between lower and upper bounds \code{tmin} and \code{tmax}, then we would write \code{Surv(tmin, tmax, type = "interval2")}. \end{sloppypar} Time-dependent covariates are not supported in \pkg{flexsurv}. In other packages, they are represented in ``counting process'' form --- as a series of left-truncated survival times, which may also be right-censored. For each individual there would be multiple records, each corresponding to an interval where the covariate is assumed to be constant. The response would be of the form \code{Surv(start, stop, censrec)}, where \code{start} and \code{stop} are the limits of each interval, and \code{censrec} indicates whether a death was observed at \code{stop}. However, using this approach would require the probability of survival up to the left-truncation time to be represented by a term of the form $S_i(s_i) = \exp(-H_i(s_i))$ in the likelihood (equation 2). The cumulative hazard $H$ over the interval from time 0 to time $s_i$ depends on how the covariates change for an individual on this time interval, and \pkg{flexsurv} cannot keep track of different observations for an individual. Furthermore, prediction from models with time-dependent covariates is a difficult problem, as it requires knowledge of when the covariates are expected to change. Joint models for longitudinal and survival data are a more flexible approach for modelling the association of a survival time with a time-dependent predictor. In versions of \pkg{flexsurv} since April 2020, models with individual-specific right-truncation times are also supported. These are used for situations with ``retrospective ascertainment'', where cases are only included in the data if they have died by a specific time. These models are specified through an argument \code{rtrunc} to \code{flexsurvreg} that names the variable with the truncation times. See the Supplementary Examples vignette for a worked example. \subsubsection{Relative survival} In relative survival models \citep{nelson:relative:survival}, the survivor function is expressed as $S(t) = S^*(t)R(t)$, where $S^*(t)$ is the ``expected" or ``baseline" survival, and $R(t)$ is the \emph{relative} survival. Equivalently, the hazard is defined as $h(t) = h^*(t) + \lambda(t)$, where $h^*()$ is the baseline hazard function, and $\lambda(t)$ is the excess mortality rate associated with the disease of interest. The baseline represents a reference population, and is typically obtained from national routinely-collected mortality statistics, adjusted (e.g. by age/sex) to represent the population under study. The parametric model is defined and estimated for $R(t)$. These models are implemented in \pkg{flexsurv} by supplying the variable in the data that represents the expected mortality rate $h^*(t)$ in the \code{bhazard} argument to \code{flexsurvreg}. This is only used for the individuals in the data who die, and \code{bhazard} describes the expected hazard at the death time. The values of \code{bhazard} for censored individuals are ignored. Note that the parameters returned in the model fitted by \code{flexsurvreg} refer to the relative survival $R(t)$, rather than the absolute survival. The likelihood returned by \code{flexsurvreg} here is a \emph{partial} likelihood defined \citep[as in][equations 4--5]{nelson:relative:survival} by omitting the term $\sum_i \log(S^*(t_i))$ (summed over all individuals $i$ in the data, including both censored and uncensored times $t_i$) from the full likelihood. This term is equivalent to minus the sum of the cumulative hazards. It can be omitted from the likelihood for the purpose of estimating the parameters of the relative survival model, since it does not depend on these parameters. Hence if a full likelihood is required, (e.g. for model comparison) then this term should be added to the partial likelihood. Similarly, the predicted survival or hazard (e.g. as returned by \code{summary.flexsurvreg}, see Section~\ref{sec:plots}) from a relative survival model refers to $R(t)$ or $h(t)$. Hence if the overall survival or hazard is required, the predictions of relative survival should be converted to the ``absolute" scale by combining with the baseline, though no specific tools for doing this are provided by \pkg{flexsurv}. \subsubsection{Weighting and subsetting} Case weights and data subsets can also be specified, as in standard \proglang{R} modelling functions, using \code{weights} or \code{subset} arguments. \subsection{Built-in models} \label{sec:builtin} \code{flexsurvreg}'s currently built-in distributions are listed in Table \ref{tab:dists}. In each case, the probability density $f()$ and parameters of the fitted model are taken from an existing \proglang{R} function of the same name but beginning with the letter \code{d}. For the Weibull, exponential (\code{dexp}), gamma (\code{dgamma}) and log-normal (\code{dlnorm}), the density functions are provided with standard installations of \proglang{R}. These density functions, and the corresponding cumulative distribution functions (with first letter \code{p} instead of \code{d}) are used internally in \code{flexsurvreg} to compute the likelihood. \pkg{flexsurv} provides some additional survival distributions, including a Gompertz distribution with unrestricted shape parameter, Weibull with proportional hazards parameterisation, log-logistic, and the three- and four-parameter families described below. For all built-in distributions, \pkg{flexsurv} also defines functions beginning with \code{h} giving the hazard, and \code{H} for the cumulative hazard. A package vignette ``Distributions reference'' lists the survivor function and parameterisation of covariate effects used by each built-in distribution. \paragraph{Generalized gamma} This three-parameter distribution includes the Weibull, gamma and log-normal as special cases. The original parameterisation from \citet{stacy:gengamma} is available as\\ \code{dist = "gengamma.orig"}, however the newer parameterisation \citep{prentice:loggamma} is preferred: \code{dist = "gengamma"}. This has parameters ($\mu$,$\sigma$,$q$), and survivor function \[ \begin{array}{ll} 1 - I(\gamma,u) & (q > 0)\\ 1 - \Phi(z) & (q = 0)\\ \end{array} \] where $I(\gamma,u) = \int_0^u x^{\gamma-1}\exp(-x)/\Gamma(\gamma)$ is the incomplete gamma function (the cumulative gamma distribution with shape $\gamma$ and scale 1), $\Phi$ is the standard normal cumulative distribution, $u = \gamma \exp(|q|z)$, $z=(\log(t) - \mu)/\sigma$, and $\gamma=q^{-2}$. The \citet{prentice:loggamma} parameterisation extends the original one to include a further class of models with negative $q$, and survivor function $I(\gamma,u)$, where $z$ is replaced by $-z$. This stabilises estimation when the distribution is close to log-normal, since $q=0$ is no longer near the boundary of the parameter space. In \proglang{R} notation, \footnote{The parameter called $q$ here and in previous literature is called $Q$ in \code{dgengamma} and related functions, since the first argument of a cumulative distribution function is conventionally named \code{q}, for quantile, in \proglang{R}.} the parameter values corresponding to the three special cases are \begin{Code} dgengamma(x, mu, sigma, Q=0) == dlnorm(x, mu, sigma) dgengamma(x, mu, sigma, Q=1) == dweibull(x, shape = 1 / sigma, scale = exp(mu)) dgengamma(x, mu, sigma, Q=sigma) == dgamma(x, shape = 1 / sigma^2, rate = exp(-mu) / sigma^2) \end{Code} \paragraph{Generalized F} This four-parameter distribution includes the generalized gamma, and also the log-logistic, as special cases. The variety of hazard shapes that can be represented is discussed by \citet{ccox:genf}. It is provided here in alternative ``original'' (\code{dist = "genf.orig"}) and ``stable'' parameterisations (\code{dist = "genf"}) as presented by \citet{prentice:genf}. See \code{help(GenF)} and \code{help(GenF.orig)} in the package documentation for the exact definitions. \subsection{Covariates on ancillary parameters} The generalized gamma model is fitted to the breast cancer survival data. \code{fs2} is an AFT model, where only the parameter $\mu$ depends on the prognostic covariate \code{group}. In a second model \code{fs3}, the first ancillary parameter \code{sigma} ($\alpha_1$) also depends on this covariate, giving a model with a time-dependent effect that is neither PH nor AFT. The second ancillary parameter \code{Q} is still common between prognostic groups. <<>>= fs2 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = "gengamma") fs3 <- flexsurvreg(Surv(recyrs, censrec) ~ group + sigma(group), data = bc, dist = "gengamma") @ Ancillary covariates can alternatively be supplied using the \code{anc} argument to \code{flexsurvreg}. This syntax is required if any parameter names clash with the names of functions used in model formulae (e.g., \code{factor()} or \code{I()}). <>= fs3 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, anc = list(sigma = ~ group), dist = "gengamma") @ Table \ref{tab:aic} compares all the models fitted to the breast cancer data, showing absolute fit to the data as measured by the maximised -2$\times$log likelihood $-2LL$, number of parameters $p$, and Akaike's information criterion $-2LL + 2p$ (AIC). The model \code{fs2} has the lowest AIC, indicating the best estimated predictive ability. \begin{table} \begin{tabular}{p{1.8in}lll} \hline & Parameters & Density \proglang{R} function & \code{dist}\\ & {\footnotesize{(location in \code{\color{red}{red}})}} & & \\ \hline Exponential & \code{\color{red}{rate}} & \code{dexp} & \code{"exp"} \\ Weibull (accelerated failure time) & \code{shape, {\color{red}{scale}}} & \code{dweibull} & \code{"weibull"} \\ Weibull (proportional hazards) & \code{shape, {\color{red}{scale}}} & \code{dweibullPH} & \code{"weibullPH"} \\ Gamma & \code{shape, \color{red}{rate}} & \code{dgamma} & \code{"gamma"}\\ Log-normal & \code{{\color{red}{meanlog}}, sdlog} & \code{dlnorm} & \code{"lnorm"}\\ Gompertz & \code{shape, {\color{red}{rate}}} & \code{dgompertz} & \code{"gompertz"} \\ Log-logistic & \code{shape, {\color{red}{scale}}} & \code{dllogis} & \code{"llogis"}\\ Generalized gamma (Prentice 1975) & \code{{\color{red}{mu}}, sigma, Q} & \code{dgengamma} & \code{"gengamma"} \\ Generalized gamma (Stacy 1962)& \code{shape, {\color{red}{scale}}, k} & \code{dgengamma.orig} & \code{"gengamma.orig"} \\ Generalized F (stable) & \code{{\color{red}{mu}}, sigma, Q, P} & \code{dgenf} & \code{"genf"} \\ Generalized F (original) & \code{{\color{red}{mu}}, sigma, s1, s2} & \code{dgenf.orig} & \code{"genf.orig"} \\ \hline \end{tabular} \caption{Built-in parametric survival distributions in \pkg{flexsurv}.} \label{tab:dists} \end{table} \subsection{Plotting outputs} \label{sec:plots} The \code{plot()} method for \code{flexsurvreg} objects is used as a quick check of model fit. By default, this draws a Kaplan-Meier estimate of the survivor function $S(t)$, one for each combination of categorical covariates, or just a single ``population average'' curve if there are no categorical covariates (Figure \ref{fig:surv}). The corresponding estimates from the fitted model are overlaid. Fitted values from further models can be added with the \code{lines()} method. <>= cols <- c("#E495A5", "#86B875", "#7DB0DD") # from colorspace::rainbow_hcl(3) plot(fs1, col = cols[2], lwd.obs = 2, xlab = "Years", ylab = "Recurrence-free survival") lines(fs2, col = cols[3], lty = 2) lines(fs3, col = cols[3]) text(x=c(2,3.5,4), y=c(0.4, 0.55, 0.7), c("Poor","Medium","Good")) legend("bottomleft", col = c("black", cols[2], cols[3], cols[3]), lty = c(1, 1, 2, 1), bty = "n", lwd = rep(2, 4), c("Kaplan-Meier", "Weibull", "Generalized gamma (AFT)", "Generalized gamma (time-varying)")) @ \begin{figure}[h] \centering \includegraphics{flexsurv-surv-1} \caption{Survival by prognostic group from the breast cancer data: fitted from alternative parametric models and Kaplan-Meier estimates.} \label{fig:surv} \end{figure} The argument \code{type = "hazard"} can be set to plot hazards from parametric models against kernel density estimates obtained from \pkg{muhaz} \citep{muhaz,mueller:wang}. Figure \ref{fig:haz} shows more clearly that the Weibull model is inadequate for the breast cancer data: the hazard must be increasing or decreasing --- while the generalized gamma can represent the increase and subsequent decline in hazard seen in the data. Similarly, \code{type = "cumhaz"} plots cumulative hazards. <>= plot(fs1, type = "hazard", col = cols[2], lwd.obs = 2, max.time=6, xlab = "Years", ylab = "Hazard") lines(fs2, type = "hazard", col = cols[3], lty = 2) lines(fs3, type = "hazard", col = cols[3]) text(x=c(2,2,2), y=c(0.3, 0.13, 0.05), c("Poor","Medium","Good")) legend("topright", col = c("black", cols[2], cols[3], cols[3]), lty = c(1, 1, 2, 1), bty = "n", lwd = rep(2, 4), c("Kernel density estimate", "Weibull", "Gen. gamma (AFT)", "Gen. gamma (time-varying)")) @ \begin{figure}[h] \centering \includegraphics{flexsurv-haz-1} \caption{Hazards by prognostic group from the breast cancer data: fitted from alternative parametric models and kernel density estimates.} \label{fig:haz} \end{figure} The numbers plotted are available from the \code{summary.flexsurvreg()} method. Confidence intervals are produced by simulating a large sample from the asymptotic normal distribution of the maximum likelihood estimates of $\{\bm{\beta}_r: r=0,\ldots,R\}$ \citep{mandel:simci}, via the function \code{normboot.flexsurvreg}. This very general method allows confidence intervals to be obtained for arbitrary functions of the parameters, as described in the next section. In this example, there is only a single categorical covariate, and the \code{plot} and \code{summary} methods return one observed and fitted trajectory for each level of that covariate. For more complicated models, users should specify what covariate values they want summaries for, rather than relying on the default \footnote{If there are only factor covariates, all combinations are plotted. If there are any continuous covariates, these methods by default return a ``population average'' curve, with the linear model design matrix set to its average values, including the 0/1 contrasts defining factors, which doesn't represent any specific covariate combination.}. This is done by supplying the \code{newdata} argument, a data frame or list containing covariate values, just as in standard \proglang{R} functions like \code{predict.lm}. Time-dependent covariates are not understood by these functions. This \code{plot()} method is only for casual exploratory use. For publication-standard figures, it is preferable to set up the axes beforehand (\code{plot(..., type = "n")}), and use the \code{lines()} methods for \code{flexsurvreg} objects, or construct plots by hand using the data available from \code{summary.flexsurvreg()}. \subsection{Custom model summaries} Any function of the parameters of a fitted model can be summarised or plotted by supplying the argument \code{fn} to \code{summary.flexsurvreg} or \code{plot.flexsurvreg}. This should be an \proglang{R} function, with optional first two arguments \code{t} representing time, and \code{start} representing a left-truncation point (if the result is conditional on survival up to that time). Any remaining arguments must be the parameters of the survival distribution. For example, median survival under the Weibull model \code{fs1} can be summarised as follows <<>>= median.weibull <- function(shape, scale) { qweibull(0.5, shape = shape, scale = scale) } summary(fs1, fn = median.weibull, t = 1, B = 10000) @ Although the median of the Weibull has an analytic form as $\mu \log(2)^{1/\alpha}$, the form of the code given here generalises to other distributions. The argument \code{t} (or \code{start}) can be omitted from \code{median.weibull}, because the median is a time-constant function of the parameters, unlike the survival or hazard. \code{10000} random samples are drawn to produce a slightly more precise confidence interval than the default --- users should adjust this until the desired level of precision is obtained. A useful future extension of the package would be to employ user-supplied (or built-in) derivatives of summary functions if possible, so that the delta method can be used to obtain approximate confidence intervals without simulation. \subsection{Computation} \label{sec:comp} The likelihood is maximised in \code{flexsurvreg} using the optimisation methods available through the standard \proglang{R} \code{optim} function. By default, this is the \code{"BFGS"} method \citep{nash} using the analytic derivatives of the likelihood with respect to the model parameters, if these are available, to improve the speed of convergence to the maximum. These derivatives are built-in for the exponential, Weibull, Gompertz, log-logistic, and hazard- and odds-based spline models (see \S\ref{sec:spline}). For custom distributions (see \S\ref{sec:custom}), the user can optionally supply functions with names beginning \code{"DLd"} and \code{"DLS"} respectively (e.g., \code{DLdweibull, DLSweibull}) to calculate the derivatives of the log density and log survivor functions with respect to the transformed baseline parameters $\bm{\gamma}$ (then the derivatives with respect to $\bm{\beta}$ are obtained automatically). Arguments to \code{optim} can be passed to \code{flexsurvreg} --- in particular, \code{control} options, such as convergence tolerance, iteration limit or function or parameter scaling, may need to be adjusted to achieve convergence. \section{Custom survival distributions} \label{sec:custom} \pkg{flexsurv} is not limited to its built-in distributions. Any survival model of the form (\ref{eq:model}--\ref{eq:lik:interval}) can be fitted if the user can provide either the density function $f()$ or the hazard $h()$. Many contributed \proglang{R} packages provide probability density and cumulative distribution functions for positive distributions. Though survival models may be more naturally characterised by their hazard function, representing the changing risk of death through time. For example, for survival following major surgery we may want a ``U-shaped'' hazard curve, representing a high risk soon after the operation, which then decreases, but increases naturally as survivors grow older. To supply a custom distribution, the \code{dist} argument to \code{flexsurvreg} is defined to be an \proglang{R} list object, rather than a character string. The list has the following elements. \begin{description} \item[\code{name}] Name of the distribution. In the first example below, we use a log-logistic distribution, and the name is \code{"llogis"} \footnote{though since version 0.5.1, this distribution is built into \pkg{flexsurv} as \code{dist="llogis"} }. Then there is assumed to be at least either \begin{itemize} \item a function to compute the probability density, which would be called \code{dllogis} here, or \item a function to compute the hazard, called \code{hllogis}. \end{itemize} There should also be a function called \code{pllogis} for the cumulative distribution (if \code{d} is given), or \code{H} for the cumulative hazard (to complement \code{h}), if analytic forms for these are available. If not, then \pkg{flexsurv} can compute them internally by numerical integration, as in \pkg{stgenreg} \citep{stgenreg}. The default options of the built-in \proglang{R} routine \code{integrate} for adaptive quadrature are used, though these may be changed using the \code{integ.opts} argument to \code{flexsurvreg}. Models specified this way will take an order of magnitude more time to fit, and the fitting procedure may be unstable. An example is given in \S\ref{sec:gdim}. These functions must be \emph{vectorised}, and the density function must also accept an argument \code{log}, which when \code{TRUE}, returns the log density. See the examples below. In some cases, \proglang{R}'s scoping rules may not find the functions in the working environment. They may then be supplied through the \code{dfns} argument to \code{flexsurvreg}. \item[\code{pars}] Character vector naming the parameters of the distribution $\mu,\alpha_1,...,\alpha_R$. These must match the arguments of the \proglang{R} distribution function or functions, in the same order. \item[\code{location}] Character: quoted name of the location parameter $\mu$. The location parameter will not necessarily be the first one, e.g., in \code{dweibull} the \code{scale} comes after the \code{shape}. \item[\code{transforms}] A list of functions $g()$ which transform the parameters from their natural ranges to the real line, for example, \code{c(log, identity)} if the first is positive and the second unrestricted. \footnote{This is a \emph{list}, not an \emph{atomic vector} of functions, so if the distribution only has one parameter, we should write \code{transforms = c(log)} or \code{transforms = list(log)}, not \code{transforms = log}.} \item[\code{inv.transforms}] List of corresponding inverse functions. \item[\code{inits}] A function which provides plausible initial values of the parameters for maximum likelihood estimation. This is optional, but if not provided, then each call to \code{flexsurvreg} must have an \code{inits} argument containing a vector of initial values, which is inconvenient. Implausible initial values may produce a likelihood of zero, and a fatal error message (\code{initial value in `vmmin' is not finite}) from the optimiser. Each distribution will ideally have a heuristic for initialising parameters from summaries of the data. For example, since the median of the Weibull is $\mu \log(2)^{1/\alpha}$, a sensible estimate of $\mu$ might be the median log survival time divided by $\log(2)$, with $\alpha=1$, assuming that in practice the true value of $\alpha$ is not far from 1. Then we would define the function, of one argument \code{t} giving the survival or censoring times, returning the initial values for the Weibull \code{shape} and \code{scale} respectively \footnote{though Weibull models in \code{flexsurvreg} are ``initialised'' by fitting the model with \code{survreg}, unless there is left-truncation.}. \code{inits = function(t){ c(1, median(t[t > 0]) / log(2)) } } More complicated initial value functions may use other data such as the covariate values and censoring indicators: for an example, see the function \code{flexsurv.splineinits} in the package source that computes initial values for spline models (\S\ref{sec:spline}). \end{description} \paragraph{Example: Using functions from a contributed package} The following custom model uses the log-logistic distribution functions (\code{dllogis} and \code{pllogis}) available in the package \pkg{eha}. The survivor function is $S(t|\mu,\alpha) = 1/(1 + (t/\mu)^\alpha)$, so that the log odds $\log((1-S(t))/S(t))$ of having died are a linear function of log time. <>= custom.llogis <- list(name = "llogis", pars = c("shape", "scale"), location = "scale", transforms = c(log, log), inv.transforms = c(exp, exp), inits = function(t){ c(1, median(t)) }) fs4 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = custom.llogis) @ This fits the breast cancer data better than the Weibull, since it can represent a peaked hazard, but less well than the generalized gamma (Table \ref{tab:aic}). \paragraph{Example: Wrapping functions from a contributed package} Sometimes there may be probability density and similar functions in a contributed package, but in a different format. For example, \pkg{eha} also provides a three-parameter Gompertz-Makeham distribution with hazard $h(t|\mu,\alpha_1,\alpha_2)= \alpha_2 + \alpha_1 \exp(t/\mu)$. The shape parameters $\alpha_1,\alpha_2$ are provided to \code{dmakeham} as a vector argument of length two. However, \code{flexsurvreg} expects distribution functions to have one argument for each parameter. Therefore we write our own functions that wrap around the third-party functions. <>= dmakeham3 <- function(x, shape1, shape2, scale, ...) { dmakeham(x, shape = c(shape1, shape2), scale = scale, ...) } pmakeham3 <- function(q, shape1, shape2, scale, ...) { pmakeham(q, shape = c(shape1, shape2), scale = scale, ...) } @ \code{flexsurvreg} also requires these functions to be \emph{vectorized}, as the standard distribution functions in \proglang{R} are. That is, we can supply a vector of alternative values for one or more arguments, and expect a vector of the same length to be returned. The \proglang{R} base function \code{Vectorize} can be used to do this here. <>= dmakeham3 <- Vectorize(dmakeham3) pmakeham3 <- Vectorize(pmakeham3) @ and this allows us to write, for example, <>= pmakeham3(c(0, 1, 1, Inf), 1, c(1, 1, 2, 1), 1) @ We could then use \code{dist = list(name = "makeham3", pars = c("shape1", "shape2", \\ "scale"), ...)} in a \code{flexsurvreg} model, though in the breast cancer example, the second shape parameter is poorly identifiable. \paragraph{Example: Changing the parameterisation of a distribution} We may want to fit a Weibull model like \code{fs1}, but with the proportional hazards (PH) parameterisation $S(t) = \exp(-\mu t^\alpha)$, so that the covariate effects reported in the printed \code{flexsurvreg} object can be interpreted as hazard ratios or log hazard ratios without any further transformation. Here instead of the density and cumulative distribution functions, we provide the hazard and cumulative hazard. (Note that since version 0.7, the \code{"weibullPH"} distribution is built in to \code{flexsurvreg} --- but this example has been kept here for illustrative purposes.) \footnote{The \pkg{eha} package may need to be detached first so that \pkg{flexsurv}'s built-in \code{hweibull} is used, which returns \code{NaN} if the parameter values are zero, rather than failing as \pkg{eha}'s currently does.} <>= options(warn=-1) @ <<>>= hweibullPH <- function(x, shape, scale = 1, log = FALSE){ hweibull(x, shape = shape, scale = scale ^ {-1 / shape}, log = log) } HweibullPH <- function(x, shape, scale = 1, log = FALSE){ Hweibull(x, shape = shape, scale = scale ^ {-1 / shape}, log = log) } custom.weibullPH <- list(name = "weibullPH", pars = c("shape", "scale"), location = "scale", transforms = c(log, log), inv.transforms = c(exp, exp), inits = function(t){ c(1, median(t[t > 0]) / log(2)) }) fs6 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, dist = custom.weibullPH) fs6$res["scale", "est"] ^ {-1 / fs6$res["shape", "est"]} - fs6$res["groupMedium", "est"] / fs6$res["shape", "est"] - fs6$res["groupPoor", "est"] / fs6$res["shape", "est"] @ <>= options(warn=0) @ The fitted model is the same as \code{fs1}, therefore the maximised likelihood is the same. The parameter estimates of \code{fs6} can be transformed to those of \code{fs1} as shown. The shape $\alpha$ is common to both models, the scale $\mu^\prime$ in the AFT model is related to the PH scale $\mu$ as $\mu^\prime$ = $\mu^{-1/\alpha}$. The effects $\beta^\prime$ on life expectancy in the AFT model are related to the log hazard ratios $\beta$ as $\beta^\prime = -\beta/\alpha$. A slightly more complicated example is given in the package vignette \code{flexsurv-examples} of constructing a proportional hazards generalized gamma model. Note that \code{phreg} in \pkg{eha} also fits the Weibull and other proportional hazards models, though again the parameterisation is slightly different. \section{Arbitrary-dimension models} \label{sec:adim} \pkg{flexsurv} also supports models where the number of parameters is arbitrary. In the models discussed previously, the number of parameters in the model family is fixed (e.g., three for the generalized gamma). In this section, the model complexity can be chosen by the user, given the model family. We may want to represent more irregular hazard curves by more flexible functions, or use bigger models if a bigger sample size makes it feasible to estimate more parameters. \subsection{Royston and Parmar spline model} \label{sec:spline} \begin{sloppypar} In the spline-based survival model of \citet{royston:parmar}, a transformation $g(S(t,z))$ of the survival function is modelled as a natural cubic spline function of log time: $g(S(t,z)) = s(x, \bm{\gamma})$ where $x = \log(t)$. This model can be fitted in \pkg{flexsurv} using the function \code{flexsurvspline}, and is also available in the \proglang{Stata} package \pkg{stpm2} \citep{stpm2} (historically \pkg{stpm}, \citet{stpm:orig,stpm:update}). \end{sloppypar} Typically we use $g(S(t,\mathbf{z})) = \log(-\log(S(t,\mathbf{z}))) = \log(H(t,\mathbf{z}))$, the log cumulative hazard, giving a proportional hazards model. \paragraph{Spline parameterisation} The complexity of the model, thus the dimension of $\bm{\gamma}$, is governed by the number of \emph{knots} in the spline function $s()$. Natural cubic splines are piecewise cubic polynomials defined to be continuous, with continuous first and second derivatives at the knots, and also constrained to be linear beyond boundary knots $k_{min},k_{max}$. As well as the boundary knots there may be up to $m\geq 0$ \emph{internal} knots $k_1,\ldots, k_m$. Various spline parameterisations exist --- the one used here is from \citet{royston:parmar}. \begin{equation} \label{eq:spline} s(x,\bm{\gamma}) = \gamma_0 + \gamma_1 x + \gamma_2 v_1(x) + \ldots + \gamma_{m+1} v_m(x) \end{equation} where $v_j(x)$ is the $j$th \emph{basis} function \[v_j(x) = (x - k_j)^3_+ - \lambda_j(x - k_{min})^3_+ - (1 - \lambda_j) (x - k_{max})^3_+, \qquad \lambda_j = \frac{k_{max} - k_j}{k_{max} - k_{min}} \] and $(x - a)_+ = max(0, x - a)$. If $m=0$ then there are only two parameters $\gamma_0,\gamma_1$, and this is a Weibull model if $g()$ is the log cumulative hazard. Table \ref{tab:spline} explains two further choices of $g()$, and the parameter values and distributions they simplify to for $m=0$. The probability density and cumulative distribution functions for all these models are available as \code{dsurvspline} and \code{psurvspline}. A model with an absolute time scale ($x = t$) is also available through \code{timescale="identity"}. \begin{table} \begin{tabularx}{\textwidth}{lXlp{1.4in}} \hline Model & $g(S(t,\mathbf{z}))$ & In \code{flexsurvspline} & With $m=0$ \\ \hline Proportional hazards & $\log(-\log(S(t,\mathbf{z})))$ \newline {\footnotesize (log cumulative hazard)} & \code{scale = "hazard"} & Weibull {\footnotesize \code{shape} $\gamma_1$, \code{scale} $\exp(-\gamma_0/\gamma_1)$}\\ Proportional odds & $\log(S(t,\mathbf{z})^{-1} - 1)$ \newline {\footnotesize (log cumulative odds)} & \code{scale = "odds"} & Log-logistic {\footnotesize \code{shape} $\gamma_1$, \code{scale} $\exp(-\gamma_0/\gamma_1)$}\\ Normal / probit & $\Phi^{-1}(S(t,\mathbf{z}))$ \newline {\footnotesize (inverse normal CDF, \code{qnorm})} & \code{scale = "normal"} & Log-normal {\footnotesize \code{meanlog} $-\gamma_0/\gamma_1$, \code{sdlog} $1/\gamma_1$ }\\ \hline \end{tabularx} \caption{Alternative modelling scales for \code{flexsurvspline}, and equivalent distributions for $m=0$ (with parameter definitions as in the \proglang{R} \code{d} functions referred to elsewhere in the paper).} \label{tab:spline} \end{table} \paragraph{Covariates on spline parameters} Covariates can be placed on any parameter $\gamma$ through a linear model (with identity link function). Most straightforwardly, we can let the intercept $\gamma_0$ vary with covariates $\mathbf{z}$, giving a proportional hazards or odds model (depending on $g()$). \[g(S(t,z)) = s(\log(t), \bm{\gamma}) + \bm{\beta}^\top \mathbf{z} \] The spline coefficients $\gamma_j: j=1, 2 \ldots$, the ``ancillary'' parameters, may also be modelled as linear functions of covariates $\mathbf{z}$, as \[\gamma_j(\mathbf{z}) = \gamma_{j0} + \gamma_{j1}z_1 + \gamma_{j2}z_2 + \ldots\] giving a model where the effects of covariates are arbitrarily flexible functions of time: a non-proportional hazards or odds model. \paragraph{Spline models in \pkg{flexsurv}} The argument \code{k} to \code{flexsurvspline} defines the number of internal knots $m$. Knot locations are chosen by default from quantiles of the log uncensored death times, or users can supply their own locations in the \code{knots} argument. Initial values for numerical likelihood maximisation are chosen using the method described by \citet{royston:parmar} of Cox regression combined with transforming an empirical survival estimate. For example, the best-fitting model for the breast cancer dataset identified in \citet{royston:parmar}, a proportional odds model with one internal spline knot, is <<>>= sp1 <- flexsurvspline(Surv(recyrs, censrec) ~ group, data = bc, k = 1, scale = "odds") @ A further model where the first ancillary parameter also depends on the prognostic group, giving a time-varying odds ratio, is fitted as <<>>= sp2 <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group), data = bc, k = 1, scale = "odds") @ These models give qualitatively similar results to the generalized gamma in this dataset (Figure \ref{fig:spline:haz}), and have similar predictive ability as measured by AIC (Table \ref{tab:aic}). Though in general, an advantage of spline models is that extra flexibility is available where necessary. <>= plot(sp1, type = "hazard", col=cols[3], ylim = c(0, 0.5), xlab = "Years", ylab = "Hazard") lines(sp2, type = "hazard", col = cols[3], lty = 2) lines(fs2, type = "hazard", col = cols[2]) text(x=c(2,2,2), y=c(0.3, 0.15, 0.05), c("Poor","Medium","Good")) legend("topright", col = c("black",cols[c(3,3,2)]), lty = c(1,1,2,1), lwd = rep(2,4), c("Kernel density estimate","Spline (proportional odds)", "Spline (time-varying)","Generalized gamma (time-varying)")) @ \begin{figure}[h] \centering \includegraphics{flexsurv-splinehaz-1} \caption{Comparison of spline and generalized gamma fitted hazards for the breast cancer survival data by prognostic group.} \label{fig:spline:haz} \end{figure} In this example, proportional odds models (\code{scale = "odds"}) are better-fitting than proportional hazards models (\code{scale = "hazard"}) (Table \ref{tab:aic}). Note also that under a proportional hazards spline model with one internal knot (\code{sp3}), the log hazard ratios, and their standard errors, are substantively the same as under a standard Cox model (\code{cox3}). This illustrates that this class of flexible fully-parametric models may be a reasonable alternative to the (semi-parametric) Cox model. See \citet{royston:parmar} for more discussion of these issues. <<>>= sp3 <- flexsurvspline(Surv(recyrs, censrec) ~ group, data = bc, k = 1, scale = "hazard") sp3$res[c("groupMedium", "groupPoor"), c("est", "se")] cox3 <- coxph(Surv(recyrs, censrec) ~ group, data = bc) coef(summary(cox3))[ , c("coef", "se(coef)")] @ An equivalent of a ``stratified" Cox model may be obtained by allowing \emph{all} the spline parameters to vary with the categorical covariate that defines the strata. In this case, this covariate might be \code{group}. With \code{k=}$m$ internal knots, the formula should then include \code{group}, representing $\gamma_0$, and $m+1$ further terms representing the parameters $\gamma_1,\ldots,\gamma_{m+1}$, named as follows. <<>>= sp4 <- flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group) + gamma2(group), data = bc, k = 1, scale = "hazard") @ Other covariates might be added to this formula --- if placed on the intercept, these will be modelled through proportional hazards, as in \code{sp1}. If placed on higher-order parameters, these will represent time-varying hazard ratios. For example, if there were a covariate \code{treat} representing treatment, then <>= flexsurvspline(Surv(recyrs, censrec) ~ group + gamma1(group) + gamma2(group) + treat + gamma1(treat), data = bc, k = 1, scale = "hazard") @ would represent a model stratified by group, where the hazard ratio for treatment is time-varying, but the model is not fully stratified by treatment. <<>>= res <- t(sapply(list(fs1, fs2, fs3, sp1, sp2, sp3, sp4), function(x)rbind(-2 * round(x$loglik,1), x$npars, round(x$AIC,1)))) rownames(res) <- c("Weibull (fs1)", "Generalized gamma (fs2)", "Generalized gamma (fs3)", "Spline (sp1)", "Spline (sp2)", "Spline (sp3)", "Spline (sp4)") colnames(res) <- c("-2 log likelihood", "Parameters", "AIC") @ \begin{table}[h] <>= res @ \caption{Comparison of parametric survival models fitted to the breast cancer data.} \label{tab:aic} \end{table} \subsection{Implementing new general-dimension models} \label{sec:gdim} The spline model above is an example of the general parametric form (Equation \ref{eq:model}), but the number of parameters, $R+1$ in Equation \ref{eq:model}, $m+2$ in Equation \ref{eq:spline}, is arbitrary. \pkg{flexsurv} has the tools to deal with any model of this form. \code{flexsurvspline} works internally by building a custom distribution and then calling \code{flexsurvreg}. Similar models may in principle be built by users using the same method. This relies on a functional programming trick. \paragraph{Creating distribution functions dynamically} The \proglang{R} distribution functions supplied to custom models are expected to have a fixed number of arguments, including one for each scalar parameter. However, the distribution functions for the spline model (e.g., \code{dsurvspline}) have an argument \code{gamma} representing the \emph{vector} of parameters $\gamma$, whose length is determined by choosing the number of knots. Just as the \emph{scalar parameters} of conventional distribution functions can be supplied as \emph{vector arguments} (as explained in \S\ref{sec:custom}), similarly, the vector parameters of spline-like distribution functions can be supplied as \emph{matrix arguments}, representing alternative parameter values. To convert a spline-like distribution function into the correct form, \pkg{flexsurv} provides the utility \code{unroll.function}. This converts a function with one (or more) vector parameters (matrix arguments) to a function with an arbitrary number of scalar parameters (vector arguments). For example, the 5-year survival probability for the baseline group under the model \code{sp1} is <<>>= gamma <- sp1$res[c("gamma0", "gamma1", "gamma2"), "est"] 1 - psurvspline(5, gamma = gamma, knots = sp1$knots) @ An alternative function to compute this can be built by \code{unroll.function}. We tell it that the vector parameter \code{gamma} should be provided instead as three scalar parameters named \code{gamma0}, \code{gamma1}, \code{gamma2}. The resulting function \code{pfn} is in the correct form for a custom \code{flexsurvreg} distribution. <<>>= pfn <- unroll.function(psurvspline, gamma = 0:2) 1 - pfn(5, gamma0 = gamma[1], gamma1 = gamma[2], gamma2 = gamma[3], knots = sp1$knots) @ Users wishing to fit a new spline-like model with a known number of parameters could just as easily write distribution functions specific to that number of parameters, and use the methods in \S\ref{sec:custom}. However the \code{unroll.function} method is intended to simplify the process of extending the \pkg{flexsurv} package to implement new model families, through wrappers similar to \code{flexsurvspline}. \paragraph{Example: splines on alternative scales} An alternative to the Royston-Parmar spline model is to model the log \emph{hazard} as a spline function of (log) time instead of the log cumulative hazard. \citet{stgenreg} demonstrate this model using the \proglang{Stata} \pkg{stgenreg} package. An advantage explained by \citet{royston:lambert:book} is that when there are multiple time-dependent effects, time-dependent hazard ratios can be interpreted independently of the values of other covariates. This can also be implemented in \code{flexsurvreg} using \code{unroll.function}. A disadvantage of this model is that the cumulative hazard (hence the survivor function) has no analytic form, therefore to compute the likelihood, the hazard function needs to be integrated numerically. This is done automatically in \code{flexsurvreg} (just as in \pkg{stgenreg}) if the cumulative hazard is not supplied. Firstly, a function must be written to compute the hazard as a function of time \code{x}, the vector of parameters \code{gamma} (which can be supplied as a matrix argument so the function can give a vector of results), and a vector of knot locations. This uses \pkg{flexsurv}'s function \code{basis} to compute the natural cubic spline basis (Equation \ref{eq:spline}), and replicates \code{x} and \code{gamma} to the length of the longest one. <<>>= hsurvspline.lh <- function(x, gamma, knots){ if(!is.matrix(gamma)) gamma <- matrix(gamma, nrow = 1) lg <- nrow(gamma) nret <- max(length(x), lg) gamma <- apply(gamma, 2, function(x)rep(x, length = nret)) x <- rep(x, length = nret) loghaz <- rowSums(basis(knots, log(x)) * gamma) exp(loghaz) } @ The equivalent function is then created for a three-knot example of this model (one internal and two boundary knots) that has arguments \code{gamma0}, \code{gamma1} and \code{gamma2} corresponding to the three columns of \code{gamma}, <<>>= hsurvspline.lh3 <- unroll.function(hsurvspline.lh, gamma = 0:2) @ To complete the model, the custom distribution list is formed, the internal knot is placed at the median uncensored log survival time, and the boundary knots are placed at the minimum and maximum. These are passed to \code{hsurvspline.lh} through the \code{aux} argument of \code{flexsurvreg}. <<>>= custom.hsurvspline.lh3 <- list( name = "survspline.lh3", pars = c("gamma0", "gamma1", "gamma2"), location = c("gamma0"), transforms = rep(c(identity), 3), inv.transforms = rep(c(identity), 3) ) dtime <- log(bc$recyrs)[bc$censrec == 1] ak <- list(knots = quantile(dtime, c(0, 0.5, 1))) @ Initial values must be provided in the call to \code{flexsurvreg}, since the custom distribution list did not include an \code{inits} component. For this example, ``default'' initial values of zero suffice, but the permitted values of $\gamma_2$ are fairly tightly constrained (from -0.5 to 0.5 here) using the \code{"L-BFGS-B"} bounded optimiser from \proglang{R}'s \code{optim} \citep{nash}. Without the constraint, extreme values of $\gamma_2$, visited by the optimiser, cause the numerical integration of the hazard function to fail. <>= sp5 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data = bc, aux = ak, inits = c(0, 0, 0, 0, 0), dist = custom.hsurvspline.lh3, method = "L-BFGS-B", lower = c(-Inf, -Inf, -0.5), upper = c(Inf, Inf, 0.5), control = list(trace = 1, REPORT = 1)) @ This takes around ten minutes to converge, so is not presented here, though the fit is poorer than the equivalent spline model for the cumulative hazard. The 95\% confidence interval for $\gamma_2$ of (0.16, 0.37) is firmly within the constraint. \citet{crowther:general} present a combined analytic / numerical integration method for this model that may make fitting it more stable. \paragraph{Other arbitrary-dimension models} Another potential application is to fractional polynomials \citep{royston1994regression}. These are of the form $\sum_{m=1}^M \alpha_m x^{p_m} \log(x)^n$ where the power $p_m$ is in the standard set $\{2,-1,-0.5,0,0.5,1,2,3\}$ (except that $\log(x)$ is used instead of $x^0$), and $n$ is a non-negative integer. They are similar to splines in that they can give arbitrarily close approximations to a nonlinear function, such as a hazard curve, and are particularly useful for expressing the effects of continuous predictors in regression models. See e.g., \citet{sauerbrei2007selection}, and several other publications by the same authors, for applications and discussion of their advantages over splines. The \proglang{R} package \pkg{gamlss} \citep{gamlss} has a function to construct a fractional polynomial basis that might be employed in \pkg{flexsurv} models. Polyhazard models \citep{polyhazard} are another potential use of this technique. These express an overall hazard as a sum of latent cause-specific hazards, each one typically from the same class of distribution, e.g., a \emph{poly-Weibull} model if they are all Weibull. For example, a U-shaped hazard curve following surgery may be the sum of early hazards from surgical mortality and later deaths from natural causes. However, such models may not always be identifiable without external information to fix or constrain the parameters of particular hazards \citep{demiris2011survival}. \section{Multi-state models} \label{sec:multistate} A \emph{multi-state model} represents how an individual moves between multiple states in continuous time. Survival analysis is a special case with two states, ``alive'' and ``dead''. \emph{Competing risks} are a further special case, where there are multiple causes of death, that is, one starting state and multiple possible destination states. Multi-state modelling with \pkg{flexsurv} was previously described in this section of the current vignette. Version 2.0 of \pkg{flexsurv} added several new features for multi-state modelling, including multi-state modelling using mixtures, and transition-specific distribution families in cause-specific hazards models. These models are now fully described in a separate \pkg{flexsurv} vignette, ``Flexible parametric multi-state modelling with the flexsurv package''. \section{Potential extensions} \label{sec:extensions} Multi-state modelling is still an area of ongoing work, and while version 2.0 extended \pkg{flexsurv} in this area, more tools and documentation in this area would still be useful. The \pkg{msm} package arguably has a more accessible interface for fitting and summarising multi-state models, but it was designed mainly for panel data rather than event time data, and therefore the event time distributions it fits are relatively inflexible. Models where multiple survival times are assumed to be correlated within groups, sometimes called (shared) frailty models \citep{hougaard1995frailty}, would also be a useful development. See, e.g., \citet{crowther2014multilevel} for a recent application based on parametric models. These might be implemented by exploiting tractability for specific distributions, such as gamma frailties, or by adjusting standard errors to account for clustering, as implemented in \code{survreg}. More complex random effects models would require numerical integration, for example, \citet{crowther2014multilevel} provide \proglang{Stata} software based on Gauss-Hermite quadrature. Alternatively, a probabilistic modelling language such as \proglang{Stan} \citep{stan-manual:2014} or \proglang{BUGS} \citep{bugs:book} would be naturally suited to complex extensions such as random effects on multiple parameters or multiple hierarchical levels. \pkg{flexsurv} is intended as a platform for parametric survival modelling. Extensions of the software to deal with different models may be written by users themselves, through the facilities described in \S\ref{sec:custom} and \S\ref{sec:gdim}. These might then be included in the package as built-in distributions, or at least demonstrated in the package's other vignette \code{flexsurv-examples}. Each new class of models would ideally come with \begin{itemize} \item guidance on what situations the model is useful for, e.g., what shape of hazards it can represent \item some intuitive interpretation of the model parameters, their plausible values in typical situations, and potential identifiability problems. This would also help with choosing initial values for numerical maximum likelihood estimation, ideally through an \code{inits} function in the custom distribution list (\S\ref{sec:custom}). \end{itemize} \pkg{flexsurv} is available from \url{http://CRAN.R-project.org/package=flexsurv}. Development versions are available on \url{https://github.com/chjackson/flexsurv-dev}, and contributions are welcome. \section*{Acknowledgements} Thanks to Milan Bouchet-Valat for help with implementing covariates on ancillary parameters, Andrea Manca for motivating the development of the package, the reviewers of the paper, and all users who have reported bugs and given suggestions. \bibliography{flexsurv} \end{document} flexsurv/inst/NEWS0000644000176200001440000004735214610437463013627 0ustar liggesusers-*- text -*- For changes in Version 2.3 and later, see https://chjackson.github.io/flexsurv/news which is built from NEWS.md in the source root directory. Version 2.2.2 (2023-01-31) ------------------------- * Allow unicode characters in vignette, to satisfy R CMD check on r-devel. Version 2.2.1 (2022-12-22) ------------------------- * New `simulate.flexsurvreg` method to simulate data from a fitted flexsurvreg or flexsurvspline model. Thanks to Mark Clements for help with this. * Fix of bug for summary() method with type = "quantile" or "median" and left-truncation in the prediction (start > 0). * Correction to the examples and interpretation of Cox-Snell residuals. Version 2.2 (2022-06-16) ------------------------- * New function `standsurv` for survival and hazards standardised over an observed distribution for covariates. Contributed by Michael Sweeting . See the new vignette about it. * New function `hr_flexsurvreg` to compute the hazard ratio from a fitted flexsurvreg or flexsurvspline model as a function of time, with confidence intervals. * `summary.flexsurvreg` has been rewritten to make it cleaner and faster. User-visible changes: - Custom summary functions in `summary.flexsurvreg` must now be vectorised. - A new argument `cross` specifies whether to compute summaries for all combinations of times t and covariate values, or for covariate values matched with corresponding times t, in custom summary functions. - Covariate names when `tidy=FALSE` now consistently don't include spaces. * Better handling of NAs in summary and prediction functions. Thanks to Matthew Warkentin. * New functions for Cox-Snell residuals: `coxsnell_flexsurvreg` or residuals(..., type="coxsnell"). * rmst_generic, mean_survspline, rmst_survspline and related functions (e.g. mean_survspline1) handle alternative parameter values in a vectorised way. * Allow output functions to work on models that have been stripped of data with x$data <- NULL, if possible Version 2.1 (2021-09-13) ------------------------- * Fix of a bug that affected models with baseline hazard offsets and exponential, Weibull, Gompertz and hazard/odds-based spline models, where convergence may have been falsely reported due to incorrect likelihood derivatives. * New vignette section and better help page documentation about relative survival models. * `start` parameter added to `predict.flexsurvreg`. * New function `pdf_flexsurmix` for the fitted density function in a `flexsurvmix` model. * Fix for tidy method with one-parameter exponential models. * Fixes for h/Hgamma and h/Hlnorm with log = TRUE. * Minor numerical improvements to h/H functions for some distributions. * Bug fix for `simfs_bytrans` when some transitions don't happen. * `NaNs produced` warnings should occur less often during fitting. Version 2.0 (2021-02-22) -------------------- * A new class of multi-state models based on mixtures (Larson and Dinse 1985). A new vignette on multi-state modelling describes this model class and contrasts it with standard (cause-specific hazards) multi-state models. * Different parametric families are now supported for different transitions in multi-state models. * New function "fmsm" allows a list of flexsurvreg objects to be associated with a particular transition structure matrix, to create a multi-state model. * New functions simfinal_fmsm to summarise times and probabilities of final absorbing events in multi-state models, using simulation. * More features for right-truncated data. Individual-level right-truncation times supported with new "rtrunc" argument to flexsurvreg and flexsurvspline. A comparable non-parametric estimator for right-truncated data is provided in a new function, "survrtrunc". Alternative parametric estimators, which make use of the time of an initiating event, are provided in a new function, "flexsurvrtrunc". * A new vignette describes properties of the different built-in parametric distributions in more detail. * qgeneric is now vectorised, thanks to the vuniroot function imported from the rstpm2 package by Mark Clements. This massively boosts the speed of rsurvspline, hence speeding up simulations from spline-based multi-state models. * pmatrix.fs can now calculate transition probabilities conditionally on the the transition being to one of a subset of the states. * "tidy" argument to pmatrix.fs for tidy data frame output. * "tidy" argument to sim.fmsm for returning simulations in tidy data frame format with one row per transition, and associated function simfs_bytrans. * Bootstrapping function bootci.fmsm made available for users to get confidence intervals / distributions for their own flexsurv model output functions. * Parallel processing capability for bootstrap confidence intervals. * Distribution and mean functions for the Royston-Parmar model named like dsurvspline2, psurvspline4 and so on, with one argument per parameter, rather than all parameters collected in a single argument, going up to 7 knots / 9 parameters. * Return value from pars.fmsm is now a list rather than a matrix, even if the model family is the same for each transition. * summary.flexsurvreg given a new argument "na.action" to control whether missing values in "newdata" are dropped. Defaults to producing summaries of NA when there are missing values, while previously missing values were dropped. * S3 methods have been added for the generics defined in the broom package. These functions create tidy data frames containing the results of fitted models. The new functions are tidy.flexsurvreg, glance.flexsurvreg, and augment.flexsurvreg. * S3 methods have been added for the predict and residuals generics. predict.flexsurvreg has full support for all model outcomes supported by summary.flexsurvreg. residuals.flexsurvreg currently only supports a naive difference between observed survival and predicted mean, neglecting censoring. * Case weights accounted for in nonparametric survival and cumulative hazard estimates in plot.flexsurvreg. Thanks to https://github.com/andbe. Version 1.1.1 (2019-03-18) ------------- * New type="quantiles" and type="link" for summary.flexsurvreg. Thanks to Leonardo Marques for the contribution. * Allow different covariates per transition in multi-state models supplied as a list of flexsurvreg objects. Thanks to David McAllister for the contribution. * Bug fix for qllogis with lower.tail=FALSE. * Bug fix for likelihood when all events are observed. * Bug fix for "ylim" argument in plot method for survival or cumulative hazard. * Allow dynamic symbols in C code. * Various other minor code and doc fixes, see github commit history. Version 1.1 (2017-03-27) ------------- * Substantial speed improvements in fitting most of the built-in models, from implementing their PDFs and CDFs in C++. Thanks to Paul Metcalfe for contributing this. Results may therefore differ from previous versions in edge cases. * As a result the package now depends on Rcpp. * Mean, median and restricted mean included as built-in functions in summary.flexsurvreg. Thanks to Jordan Amdahl for the contribution. * Documentation migrated to roxygen. Thanks to Paul Metcalfe for the contribution. * Various minor bug fixes, see github commits. Version 1.0.2 (2016-09-26) ------------- * Bug fix: "start" was being ignored by plot.flexsurvreg. Thanks to Ruth Keogh. * Built-in distribution names are now case-insensitive. Thanks to Jordan Amdahl. * Fix for Weibull hazard function to avoid numeric instability. Thanks to Jordan Amdahl. * Fix to hsurvspline when t includes 0. Thanks to Jordan Amdahl. * Vectorised parameters supported in qgeneric. Version 1.0.1 (2016-05-31) ------------- * Bug fix: covariates were labelled wrongly in summary.flexsurvreg tidy output. Thanks to Owain Saunders. Version 1.0.0 (2016-05-10) ------------- * Version number bumped to 1.0.0 to accompany the publication of the vignette in Journal of Statistical Software. Version 0.7.1 (2016-03-24) ------------- * Slightly more efficient likelihood calculations, and removed spurious warning from likelihood with interval censoring. * Tests modified to work with the latest (and current) testthat. Version 0.7 (2015-11-13) ----------- * flexsurvspline now allows the log cumulative hazard (or its alternatives) to be modelled as a spline function of time instead of log time. * The routine for generating initial values in flexsurvspline has been improved. This now obeys the constraint that the log cumulative hazard is increasing, thus avoiding errors from optim() when this wasn't satisfied. Cox regression is used as a fallback to initialise covariate effects if this fails. * As a result, flexsurv now depends on the "quadprog" package. * dweibullPH and related functions give the Weibull distribution in proportional hazards parameterisation, and "weibullPH" is supported as a built-in model for flexsurvreg. * Option to summary.flexsurvreg to return a tidy data frame. * New "logliki" component in model objects, containing vector of log-likelihoods for each observation at the estimated or fixed parameters. * Fix of various bugs with supplying "newdata" to summary functions (github issue #7). The behaviour here should now be like predict.lm, e.g. variables in newdata that were originally factors should be supplied as factor or character, not numeric. * Fix of bug that prevented plots being drawn by categorical covariates by default. * Fix of bugs with spline models and no data censored, or all data interval censored (github issue #3). * Fix of bugs with subsetting in flexsurvspline (github issue #6). Version 0.6 (2015-04-13) ----------- * CRAN release. Also includes the changes from Version 0.5.1. * Full support for multi-state models fitted as a list of independent transition-specific models. * New function pars.fmsm to return transition-specific parameters in multi-state models. * Bug fix for empirical hazard plots with categorical covariates. Thanks to Milan Bouchet-Valat. Version 0.5.1 (2015-02-24) ------------- * github-only release. * Log-logistic distribution built in to flexsurvreg, and distribution functions provided. * Bug fix in tcovs option in semi-Markov model simulation. * "digits" argument supported by default model print function. This is passed to "format" to format the parameter estimates, and defaults to 3. * Bug fix in "events" printed output for interval censored data. Thanks to Sabrina Russo. * pgompertz returns Inf for q=Inf, even for parameters denoting "living forever", since the CDF is P(X <= q) not P(X < q). This affected some fits of the Gompertz distribution. Version 0.5 (2014-09-22) ----------- * Major new release, so version number bumped from 0.3 to 0.5. * New package vignettes: a user guide and a vignette of examples. * Development moved from r-forge to https://github.com/chjackson/flexsurv-dev. Spline models and ancillary covariates: * Major rewrite of flexsurvspline. This now works by calling flexsurvreg with a custom distribution written dynamically. Models can now include covariate effects that vary as spline functions of time, by including covariates on "gamma1" or on any further parameters. * New argument "anc" to flexsurvreg, as an alternative and preferred way of modelling covariates on ancillary parameters. * New general utility "unroll.function" which converts a function with matrix arguments to the equivalent function with vector arguments. The new flexsurvspline works by unrolling "dsurvspline". * Quantile, random number, hazard and cumulative hazard functions for spline distribution. * Autogeneration of initial values for flexsurvspline now accounts for left-truncation. Thanks to Ana Borges for the report. Other new modelling features: * Several utilities for parametric multi-state modelling, including transition probabilities and simulation ("pmatrix.fs", "totlos.fs", "sim.fmsm","pmatrix.simfs", "totlos.simfs"). An "msfit.flexsurvreg" method also gives cumulative transition-specific hazards in the format of the "mstate" package. * Interval censoring supported in the Surv() response. * Relative survival models, using the "bhazard" argument to flexsurvreg to specify the expected mortality rate. * flexsurvreg now uses survreg internally to fit Weibull, exponential and log-normal models, unless there is left-truncation. Custom distributions: * Custom distributions can be defined through the hazard function. This can be optionally supplemented with the cumulative hazard function, otherwise this is obtained by numerical integration. * In custom distributions specified by the density, the cumulative distribution can now be omitted, and it will be calculated by numerical integration. * New arguments "dfns" and "aux" to flexsurvreg, which can be used to supply custom distribution functions and arguments to pass to them. * Document that density functions for custom distributions need "log" argument. * Documented how to supply derivatives of custom distributions for use in optimisation. Output functions: * New "newdata" argument to summary.flexsurvreg and plot.flexsurvreg for an easier way of supplying covariate values. * User-defined summary functions can be used in summary.flexsurvreg and plot.flexsurvreg as an alternative to survival, hazard or cumulative hazard. * New function "normboot.flexsurvreg" to simulate parameters from the asymptotic normal distribution of their estimates. Used for representing uncertainty in any function of the parameters. * summary.flexsurvreg can be called with ci=FALSE to omit confidence intervals. * "start" argument defaults to 0 for all prediction times in summary.flexsurvreg. * Bug fix in summary.flexsurvreg for left-truncated models, which was returning probabilities > 1 before the truncation time. * New model.frame and model.matrix methods to extract the data from fitted flexsurvreg objects. * Accept vector X in summary.flexsurvreg, and give informative error if X in wrong format. Thanks to Mark Danese. * Extra arguments can be passed to both muhaz and plot.muhaz in plot.flexsurvreg(...,type="hazard",...) Printed output: * Use format() not signif() for printing flexsurvreg objects, to avoid spurious zero significant figures. Thanks to Kenneth Chen. * Standard errors included in printed output of flexsurvreg, but only for parameters optimised on natural or log scales (which includes all built-in distributions). Distribution functions: * Bug fix in rgengamma for Q=0 (log-normal) and sigma not equal to 1. * Don't warn for shape parameters being exactly zero in generalized gamma and F, just give NaN. * basis() and fss() functions for the natural cubic spline basis made available to users. Version 0.3.1 (2014-02-14) -------------------------- * R-forge only release. * Distribution functions tidied up, making special value handling and vectorisation consistent. Hazard and cumulative hazard functions for all supported distributions. * Vectors of different col, lwd and lty can be passed to plot.flexsurvreg for multiple fitted lines. Thanks to Julia Sandberg for the report. Version 0.3 (2014-01-19) ------------------------ * CRAN release. Includes changes from 0.2.1 to 0.2.3. Version 0.2.3 (2013-10-09) ------------------------- * R-forge only release. * Parameters other than the location parameter can now have covariates on them in flexsurvreg. Thanks to Milan Bouchet-Valat for help with this. * subset and na.action arguments in flexsurvreg and flexsurvspline. * coef, vcov and confint methods for all fitted model objects. * Distribution functions for generalized gamma, generalized F, and Gompertz, now allow all parameters to be vectorised. * Bug fix in analytic derivatives for Weibull. * Restored print output introduced in 0.1.2 which had been accidentally removed in 0.1.5. Version 0.2.2 (2013-07-26) ------------------------- * R-forge only release. * Case weights supported in flexsurvreg and flexsurvspline. Version 0.2.1 (2013-07-03) ------------------------- * R-forge only release. * Default left truncation times were being set wrongly for user-supplied times in summary.flexsurvreg, giving wrong confidence intervals. These now default to 0. * Confidence intervals set to 1 for t=0 under spline models. Thanks to Paul Pynsent. * dgompertz,dgengamma,dgengamma.orig,dgenf,dgenf.orig fixed to return -Inf instead of 0 when density is zero and log=TRUE. Thanks to Gao Zheng. Version 0.2 (2013-05-13) ------------------------- * New summary() method for fitted flexsurvreg and flexsurvspline model objects gives fitted survival, cumulative hazard or hazard curves, with confidence intervals mosly computed by a simulation method. * This allows plot.flexsurvreg to plot confidence intervals for the fitted survival, hazard or cumulative hazard. * Left-truncated survival observations are supported in flexsurvreg and flexsurvspline. * New psurvspline and dsurvspline functions giving distribution and density function for the spline model. * Analytic derivatives used in optimisation for spline (odds and hazard scale, not normal), exponential, Weibull and Gompertz models. * Default to BFGS optimisation method, which uses derivatives where available and should be much faster, instead of Nelder-Mead. * Work around NaN warnings from spline models presumably due to parameters violating implicit constraints. * If "knots" specified, boundary knots set to min/max of uncensored times, not all times, to match results when "k" is specified. Thanks to Paul Pynsent. Version 0.1.5 (2012-08-29) ------------------------- * Data are now stored in fitted flexsurvreg and flexsurvspline model objects, avoiding environment search errors and allowing package functions to be called within other functions. Thanks to Hanna Daniel for the report. * Gompertz documentation clarified for the case when there is a chance of living forever. qgompertz and rgompertz now return Inf in these cases, with no warning, instead of NaN. Thanks to Michael Sweeting. Version 0.1.4 (2012-03-22) -------------------------- * maxt argument in plot.flexsurvreg. * Plots no longer complain if data named "dat". * Corrected wrong bug fix from Version 0.1.3 for transforming parameter estimates in output when fixedpars=TRUE. * AIC penalty corrected for models with some fixed parameters. * qgengamma corrected for parameter Q<0. Thanks to Benn Ackley. Version 0.1.3 (2012-01-17) -------------------------- * No longer complains about invalid initial values when there are zero survival times. * Don't transform parameter estimates in output when fixedpars=TRUE. * Checking functions for distribution utilities don't complain about vectorised parameter values. Version 0.1.2 (2011-11-08) -------------------------- * Initial CRAN release. * More features in print output for flexsurvreg and flexsurvspline models. Version 0.1.1 (2011-04-19) -------------------------- * Fix of drop=FALSE bug in flexsurvspline.inits which caused flexsurvspline to fail with single covariates. Version 0.1 (2011-03-14) ------------------------ Initial release flexsurv/build/0000755000176200001440000000000014657665171013251 5ustar liggesusersflexsurv/build/vignette.rds0000644000176200001440000000056714657665171015620 0ustar liggesusers‹•SMO1-°   1^›xñGÿ€„‹11êÁk¥³Ð¤ínº]<ù¿MÄÙ¥e?ä ‡N;oÚyofÒ·!¤M‚m1š® \]>îÃÄ2͓Ԭ§ÏŠ;ð<”°Ùc:sØH¥Ò ¼m¡‚^r„ŒxO­ˆtR \ùØ0KØëäw÷L.RɬÐKZa†‹à4)ÖLR ÏP¡©Oé^½OÓ ]¦‚ƒ Ý<æb'…Zª"Ræ™°«f–ëYµj zá3ݾ¤1ªW -3[ê‹¡Qˆ¬yÎCºzi£²¯+«ä¯ÆÆ<<ÒØm4¶ il¬³ŸU¦ê A9S/¦:Q‡‘fo+ãËá‚cÏEþ°ÿó~ÐFÓrºš)H\°çÀ`.¤M÷U؃ÓyšÍݱå‹9™A Øçž>À6‹ úu¢¾‰²©'ææÍn·ûj*ZH–xEpfÙ44ø½ïDô™Juflexsurv/build/partial.rdb0000644000176200001440000000007414657634663015401 0ustar liggesusers‹‹àb```b`a’Ì ¦0°0 FN Íš—˜›Z d@$þû$¬²7flexsurv/man/0000755000176200001440000000000014657665216012725 5ustar liggesusersflexsurv/man/GenF.orig.Rd0000644000176200001440000000710414603767323014765 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/GenF.R \name{GenF.orig} \alias{GenF.orig} \alias{dgenf.orig} \alias{pgenf.orig} \alias{qgenf.orig} \alias{rgenf.orig} \alias{Hgenf.orig} \alias{hgenf.orig} \title{Generalized F distribution (original parameterisation)} \usage{ dgenf.orig(x, mu = 0, sigma = 1, s1, s2, log = FALSE) pgenf.orig(q, mu = 0, sigma = 1, s1, s2, lower.tail = TRUE, log.p = FALSE) Hgenf.orig(x, mu = 0, sigma = 1, s1, s2) hgenf.orig(x, mu = 0, sigma = 1, s1, s2) qgenf.orig(p, mu = 0, sigma = 1, s1, s2, lower.tail = TRUE, log.p = FALSE) rgenf.orig(n, mu = 0, sigma = 1, s1, s2) } \arguments{ \item{x, q}{vector of quantiles.} \item{mu}{Vector of location parameters.} \item{sigma}{Vector of scale parameters.} \item{s1}{Vector of first F shape parameters.} \item{s2}{vector of second F shape parameters.} \item{log, log.p}{logical; if TRUE, probabilities p are given as log(p).} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{vector of probabilities.} \item{n}{number of observations. If \code{length(n) > 1}, the length is taken to be the number required.} } \value{ \code{dgenf.orig} gives the density, \code{pgenf.orig} gives the distribution function, \code{qgenf.orig} gives the quantile function, \code{rgenf.orig} generates random deviates, \code{Hgenf.orig} retuns the cumulative hazard and \code{hgenf.orig} the hazard. } \description{ Density, distribution function, quantile function and random generation for the generalized F distribution, using the less flexible original parameterisation described by Prentice (1975). } \details{ If \eqn{y \sim F(2s_1, 2s_2)}{y ~ F(2*s1, 2*s2)}, and \eqn{w = \log(y)}{w = log(y)} then \eqn{x = \exp(w\sigma + \mu)}{x = exp(w*sigma + mu)} has the original generalized F distribution with location parameter \eqn{\mu}{mu}, scale parameter \eqn{\sigma>0}{sigma>0} and shape parameters \eqn{s_1>0,s_2>0}{s1>0,s2>0}. The probability density function of \eqn{x} is \deqn{f(x | \mu, \sigma, s_1, s_2) = \frac{(s_1/s_2)^{s_1} e^{s_1 w}}{\sigma x (1 + s_1 e^w/s_2) ^ {(s_1 + s_2)} B(s_1, s_2)}}{ f(x | mu, sigma, s_1, s_2) = ((s1/s2)^{s1} e^{s1 w}) / (sigma x (1 + s1 e^w/s2) ^ (s1 + s2) B(s1, s2))} where \eqn{w = (\log(x) - \mu)/\sigma}{w = (log(x) - mu)/sigma}, and \eqn{B(s_1,s_2) = \Gamma(s_1)\Gamma(s_2)/\Gamma(s_1+s_2)}{B(s1,s2) = \Gamma(s1)\Gamma(s2)/\Gamma(s1+s2)} is the beta function. As \eqn{s_2 \rightarrow \infty}{s2 -> infinity}, the distribution of \eqn{x} tends towards an original generalized gamma distribution with the following parameters: \code{\link{dgengamma.orig}(x, shape=1/sigma, scale=exp(mu) / s1^sigma, k=s1)} See \code{\link{GenGamma.orig}} for how this includes several other common distributions as special cases. The alternative parameterisation of the generalized F distribution, originating from Prentice (1975) and given in this package as \code{\link{GenF}}, is preferred for statistical modelling, since it is more stable as \eqn{s_1}{s1} tends to infinity, and includes a further new class of distributions with negative first shape parameter. The original is provided here for the sake of completion and compatibility. } \references{ R. L. Prentice (1975). Discrimination among some parametric models. Biometrika 62(3):607-614. } \seealso{ \code{\link{GenF}}, \code{\link{GenGamma.orig}}, \code{\link{GenGamma}} } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/dot-hessian.Rd0000644000176200001440000000162514165570616015427 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{.hessian} \alias{.hessian} \title{Numerical evaluation of the hessian of a function using numDeriv::hessian} \usage{ .hessian(f, x, seconds.warning = 60, default.r = 6, min.r = 2, ...) } \arguments{ \item{f}{function to compute Hessian for} \item{x}{location to evaluate Hessian at} \item{seconds.warning}{time threshold in seconds to trigger message and reduce the number of iterations for Richardson extrapolation of numDeriv::hessian} \item{default.r}{default number of iterations (high-precision recommendation of numDeriv)} \item{min.r}{minial number of iteration, must be at least 2,} \item{...}{further arguments passed to method.args of numDeriv::hessian} } \description{ We perform a quick check about the expected runtime and adjust the precision accordingly. } \keyword{internal} flexsurv/man/predict.flexsurvreg.Rd0000644000176200001440000001154214644755665017230 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/predict.flexsurvreg.R \name{predict.flexsurvreg} \alias{predict.flexsurvreg} \title{Predictions from flexible survival models} \usage{ \method{predict}{flexsurvreg}( object, newdata, type = "response", times, start = 0, conf.int = FALSE, conf.level = 0.95, se.fit = FALSE, p = c(0.1, 0.9), ... ) } \arguments{ \item{object}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{newdata}{Data frame containing covariate values at which to produce fitted values. There must be a column for every covariate in the model formula used to fit \code{object}, and one row for every combination of covariate values at which to obtain the fitted predictions. If \code{newdata} is omitted, then the original data used to fit the model are used, as extracted by \code{model.frame(object)}. However this will currently not work if the model formula contains functions, e.g. \code{~ factor(x)}. The names of the model frame must correspond to variables in the original data.} \item{type}{Character vector for the type of predictions desired. \itemize{ \item \code{"response"} for mean survival time (the default). \code{"mean"} is an acceptable synonym \item \code{"quantile"} for quantiles of the survival distribution as specified by \code{p} \item \code{"rmst"} for restricted mean survival time \item \code{"survival"} for survival probabilities \item \code{"cumhaz"} for cumulative hazards \item \code{"hazard"} for hazards \item \code{"link"} for fitted values of the location parameter, analogous to the linear predictor in generalized linear models (\code{type = "lp"} and \code{type = "linear"} are acceptable synonyms). This is on the natural scale of the parameter, not the log scale. }} \item{times}{Vector of time horizons at which to compute fitted values. Only applies when \code{type} is \code{"survival"}, \code{"cumhaz"}, \code{"hazard"}, or \code{"rmst"}. Will be silently ignored for all other types. If not specified, predictions for \code{"survival"}, \code{"cumhaz"}, and \code{"hazard"} will be made at each observed event time in \code{model.frame(object)}. For \code{"rmst"}, when \code{times} is not specified predictions will be made at the maximum observed event time from the data used to fit \code{object}. Specifying \code{times = Inf} is valid, and will return mean survival (equal to \code{type = "response"}).} \item{start}{Optional left-truncation time or times. The returned survival, hazard, or cumulative hazard will be conditioned on survival up to this time. \code{start} must be length 1 or the same length as \code{times}. Predicted times returned with \code{type} \code{"rmst"} or \code{"quantile"} will be times since time zero, not times since the \code{start} time.} \item{conf.int}{Logical. Should confidence intervals be returned? Default is \code{FALSE}.} \item{conf.level}{Width of symmetric confidence intervals, relative to 1.} \item{se.fit}{Logical. Should standard errors of fitted values be returned? Default is \code{FALSE}.} \item{p}{Vector of quantiles at which to return fitted values when \code{type = "quantile"}. Default is \code{c(0.1, 0.9)}.} \item{...}{Not currently used.} } \value{ A \code{\link[tibble]{tibble}} with same number of rows as \code{newdata} and in the same order. If multiple predictions are requested, a \code{\link[tibble]{tibble}} containing a single list-column of data frames. For the list-column of data frames - the dimensions of each data frame will be identical. Rows are added for each value of \code{times} or \code{p} requested. This function is a wrapper around \code{\link{summary.flexsurvreg}}, designed to help \pkg{flexsurv} to integrate with the "tidymodels" ecosystem, in particular the \pkg{censored} package. \code{\link{summary.flexsurvreg}} returns the same results but in a more conventional format. } \description{ Predict outcomes from flexible survival models at the covariate values specified in \code{newdata}. } \examples{ fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") ## Simplest prediction: mean or median, for covariates defined by original dataset predict(fitg) predict(fitg, type = "quantile", p = 0.5) ## Simple prediction for user-defined covariate values predict(fitg, newdata = data.frame(age = c(40, 50, 60))) predict(fitg, type = "quantile", p = 0.5, newdata = data.frame(age = c(40,50,60))) ## Predict multiple quantiles and unnest require(tidyr) pr <- predict(fitg, type = "survival", times = c(600, 800)) tidyr::unnest(pr, .pred) } \seealso{ \code{\link{summary.flexsurvreg}}, \code{\link{residuals.flexsurvreg}} } \author{ Matthew T. Warkentin (\url{https://github.com/mattwarkentin}) } flexsurv/man/pars.fmsm.Rd0000644000176200001440000000275114165570616015120 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{pars.fmsm} \alias{pars.fmsm} \title{Transition-specific parameters in a flexible parametric multi-state model} \usage{ pars.fmsm(x, trans, newdata = NULL, tvar = "trans") } \arguments{ \item{x}{A multi-state model fitted with \code{\link{flexsurvreg}}. See \code{\link{msfit.flexsurvreg}} for the required form of the model and the data. \code{x} can also be a list of \code{\link{flexsurvreg}} models, with one component for each permitted transition in the multi-state model, as illustrated in \code{\link{msfit.flexsurvreg}}.} \item{trans}{Matrix indicating allowed transitions. See \code{\link{msfit.flexsurvreg}}.} \item{newdata}{A data frame specifying the values of covariates in the fitted model, other than the transition number. See \code{\link{msfit.flexsurvreg}}.} \item{tvar}{Variable in the data representing the transition type. Not required if \code{x} is a list of models.} } \value{ A list with one component for each permitted transition. Each component has one element for each parameter of the parametric distribution that generates the corresponding event in the multi-state model. } \description{ List of maximum likelihood estimates of transition-specific parameters in a flexible parametric multi-state model, at given covariate values. } \author{ Christopher Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk}. } \keyword{models} \keyword{survival} flexsurv/man/flexsurvspline.Rd0000644000176200001440000002644314644767560016317 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/spline.R \name{flexsurvspline} \alias{flexsurvspline} \title{Flexible survival regression using the Royston/Parmar spline model.} \usage{ flexsurvspline( formula, data, weights, bhazard, rtrunc, subset, k = 0, knots = NULL, bknots = NULL, scale = "hazard", timescale = "log", spline = "rp", ... ) } \arguments{ \item{formula}{A formula expression in conventional R linear modelling syntax. The response must be a survival object as returned by the \code{\link[survival]{Surv}} function, and any covariates are given on the right-hand side. For example, \code{Surv(time, dead) ~ age + sex} specifies a model where the log cumulative hazard (by default, see \code{scale}) is a linear function of the covariates \code{age} and \code{sex}. If there are no covariates, specify \code{1} on the right hand side, for example \code{Surv(time, dead) ~ 1}. Time-varying covariate effects can be specified using the method described in \code{\link{flexsurvreg}} for placing covariates on ancillary parameters. The ancillary parameters here are named \code{gamma1}, \ldots{}, \code{gammar} where \code{r} is the number of knots \code{k} plus one (the ``degrees of freedom'' as defined by Royston and Parmar). So for the default Weibull model, there is just one ancillary parameter \code{gamma1}. Therefore a model with one internal spline knot, where the equivalents of the Weibull shape and scale parameters, but not the higher-order term \code{gamma2}, vary with age and sex, can be specified as: \code{Surv(time, dead) ~ age + sex + gamma1(age) + gamma1(sex)} or alternatively (and more safely, see \code{flexsurvreg}) \code{Surv(time, dead) ~ age + sex, anc=list(gamma1=~age + sex)} \code{Surv} objects of \code{type="right"},\code{"counting"}, \code{"interval1"} or \code{"interval2"} are supported, corresponding to right-censored, left-truncated or interval-censored observations.} \item{data}{A data frame in which to find variables supplied in \code{formula}. If not given, the variables should be in the working environment.} \item{weights}{Optional variable giving case weights.} \item{bhazard}{Optional variable giving expected hazards for relative survival models.} \item{rtrunc}{Optional variable giving individual right-truncation times (see \code{\link{flexsurvreg}}). Note that these models can suffer from weakly identifiable parameters and badly-behaved likelihood functions, and it is advised to compare convergence for different initial values by supplying different \code{inits} arguments to \code{flexsurvspline}.} \item{subset}{Vector of integers or logicals specifying the subset of the observations to be used in the fit.} \item{k}{Number of knots in the spline. The default \code{k=0} gives a Weibull, log-logistic or lognormal model, if \code{"scale"} is \code{"hazard"}, \code{"odds"} or \code{"normal"} respectively. \code{k} is equivalent to \code{df-1} in the notation of \code{stpm} for Stata. The knots are then chosen as equally-spaced quantiles of the log uncensored survival times, for example, at the median with one knot, or at the 33\% and 67\% quantiles of log time (or time, see \code{"timescale"}) with two knots. To override this default knot placement, specify \code{knots} instead.} \item{knots}{Locations of knots on the axis of log time (or time, see \code{"timescale"}). If not specified, knot locations are chosen as described in \code{k} above. Either \code{k} or \code{knots} must be specified. If both are specified, \code{knots} overrides \code{k}.} \item{bknots}{Locations of boundary knots, on the axis of log time (or time, see \code{"timescale"}). If not supplied, these are are chosen as the minimum and maximum log death time.} \item{scale}{If \code{"hazard"}, the log cumulative hazard is modelled as a spline function. If \code{"odds"}, the log cumulative odds is modelled as a spline function. If \code{"normal"}, \eqn{-\Phi^{-1}(S(t))}{-InvPhi(S(t))} is modelled as a spline function, where \eqn{\Phi^{-1}()}{InvPhi()} is the inverse normal distribution function \code{\link{qnorm}}.} \item{timescale}{If \code{"log"} (the default) the log cumulative hazard (or alternative) is modelled as a spline function of log time. If \code{"identity"}, it is modelled as a spline function of time, however this model would not satisfy the desirable property that the cumulative hazard (or alternative) should approach 0 at time zero.} \item{spline}{\code{"rp"} to use the natural cubic spline basis described in Royston and Parmar. \code{"splines2ns"} to use the alternative natural cubic spline basis from the \code{splines2} package (Wang and Yan 2021), which may be better behaved due to the basis being orthogonal.} \item{...}{Any other arguments to be passed to or through \code{\link{flexsurvreg}}, for example, \code{anc}, \code{inits}, \code{fixedpars}, \code{weights}, \code{subset}, \code{na.action}, and any options to control optimisation. See \code{\link{flexsurvreg}}.} } \value{ A list of class \code{"flexsurvreg"} with the same elements as described in \code{\link{flexsurvreg}}, and including extra components describing the spline model. See in particular: \item{k}{Number of knots.} \item{knots}{Location of knots on the log time axis.} \item{scale}{The \code{scale} of the model, hazard, odds or normal.} \item{res}{Matrix of maximum likelihood estimates and confidence limits. Spline coefficients are labelled \code{"gamma..."}, and covariate effects are labelled with the names of the covariates. Coefficients \code{gamma1,gamma2,...} here are the equivalent of \code{s0,s1,...} in Stata \code{streg}, and \code{gamma0} is the equivalent of the \code{xb} constant term. To reproduce results, use the \code{noorthog} option in Stata, since no orthogonalisation is performed on the spline basis here. In the Weibull model, for example, \code{gamma0,gamma1} are \code{-shape*log(scale), shape} respectively in \code{\link{dweibull}} or \code{\link{flexsurvreg}} notation, or (\code{-Intercept/scale}, \code{1/scale}) in \code{\link[survival]{survreg}} notation. In the log-logistic model with shape \code{a} and scale \code{b} (as in \code{\link[eha:Loglogistic]{eha::dllogis}} from the \pkg{eha} package), \code{1/b^a} is equivalent to \code{exp(gamma0)}, and \code{a} is equivalent to \code{gamma1}. In the log-normal model with log-scale mean \code{mu} and standard deviation \code{sigma}, \code{-mu/sigma} is equivalent to \code{gamma0} and \code{1/sigma} is equivalent to \code{gamma1}. } \item{loglik}{The maximised log-likelihood. This will differ from Stata, where the sum of the log uncensored survival times is added to the log-likelihood in survival models, to remove dependency on the time scale.} } \description{ Flexible parametric modelling of time-to-event data using the spline model of Royston and Parmar (2002). } \details{ This function works as a wrapper around \code{\link{flexsurvreg}} by dynamically constructing a custom distribution using \code{\link{dsurvspline}}, \code{\link{psurvspline}} and \code{\link{unroll.function}}. In the spline-based survival model of Royston and Parmar (2002), a transformation \eqn{g(S(t,z))} of the survival function is modelled as a natural cubic spline function of log time \eqn{x = \log(t)}{x = log(t)} plus linear effects of covariates \eqn{z}. \deqn{g(S(t,z)) = s(x, \bm{\gamma}) + \bm{\beta}^T \mathbf{z}}{g(S(t,z)) = s(x, gamma) + beta^T z} The proportional hazards model (\code{scale="hazard"}) defines \eqn{g(S(t,\mathbf{z})) = \log(-\log(S(t,\mathbf{z}))) = \log(H(t,\mathbf{z}))}{g(S(t,z)) = log(-log(S(t,z))) = log(H(t,z))}, the log cumulative hazard. The proportional odds model (\code{scale="odds"}) defines \eqn{g(S(t,\mathbf{z})) }{g(S(t,z)) = log(1/S(t,z) - 1)}\eqn{ = \log(S(t,\mathbf{z})^{-1} - 1)}{g(S(t,z)) = log(1/S(t,z) - 1)}, the log cumulative odds. The probit model (\code{scale="normal"}) defines \eqn{g(S(t,\mathbf{z})) = }{g(S(t,z)) = -InvPhi(S(t,z))}\eqn{ -\Phi^{-1}(S(t,\mathbf{z}))}{g(S(t,z)) = -InvPhi(S(t,z))}, where \eqn{\Phi^{-1}()}{InvPhi()} is the inverse normal distribution function \code{\link{qnorm}}. With no knots, the spline reduces to a linear function, and these models are equivalent to Weibull, log-logistic and lognormal models respectively. The spline coefficients \eqn{\gamma_j: j=1, 2 \ldots }{gamma_j: j=1, 2 \ldots}, which are called the "ancillary parameters" above, may also be modelled as linear functions of covariates \eqn{\mathbf{z}}, as \deqn{\gamma_j(\mathbf{z}) = \gamma_{j0} + \gamma_{j1}z_1 + \gamma_{j2}z_2 + ... }{gamma_j(z) = \gamma_{j0} + \gamma_{j1}z_1 + \gamma_{j2}z_2 + ... } giving a model where the effects of covariates are arbitrarily flexible functions of time: a non-proportional hazards or odds model. Natural cubic splines are cubic splines constrained to be linear beyond boundary knots \eqn{k_{min},k_{max}}{kmin,kmax}. The spline function is defined as \deqn{s(x,\boldsymbol{\gamma}) = \gamma_0 + \gamma_1 x + \gamma_2 v_1(x) + \ldots + }{s(x,gamma) = gamma0 + gamma1 x + gamma2 v1(x) + ... + gamma_{m+1} vm(x)}\deqn{ \gamma_{m+1} v_m(x)}{s(x,gamma) = gamma0 + gamma1 x + gamma2 v1(x) + ... + gamma_{m+1} vm(x)} where \eqn{v_j(x)}{vj(x)} is the \eqn{j}th basis function \deqn{v_j(x) = (x - k_j)^3_+ - \lambda_j(x - k_{min})^3_+ - (1 - }{vj(x) = (x - kj)^3_+ - \lambda_j(x - kmin)^3_+ - (1 -\lambda_j) (x - kmax)^3_+}\deqn{ \lambda_j) (x - k_{max})^3_+}{vj(x) = (x - kj)^3_+ - \lambda_j(x - kmin)^3_+ - (1 -\lambda_j) (x - kmax)^3_+} \deqn{\lambda_j = \frac{k_{max} - k_j}{k_{max} - k_{min}}}{\lambda_j = (kmax - kj) / (kmax - kmin)} and \eqn{(x - a)_+ = max(0, x - a)}. } \examples{ ## Best-fitting model to breast cancer data from Royston and Parmar (2002) ## One internal knot (2 df) and cumulative odds scale spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1, scale="odds") ## Fitted survival plot(spl, lwd=3, ci=FALSE) ## Simple Weibull model fits much less well splw <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=0, scale="hazard") lines(splw, col="blue", ci=FALSE) ## Alternative way of fitting the Weibull \dontrun{ splw2 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull") } } \references{ Royston, P. and Parmar, M. (2002). Flexible parametric proportional-hazards and proportional-odds models for censored survival data, with application to prognostic modelling and estimation of treatment effects. Statistics in Medicine 21(1):2175-2197. Wang W, Yan J (2021). Shape-Restricted Regression Splines with R Package splines2. Journal of Data Science, 19(3), 498-517. Jackson, C. (2016). flexsurv: A Platform for Parametric Survival Modeling in R. Journal of Statistical Software, 70(8), 1-33. doi:10.18637/jss.v070.i08 } \seealso{ \code{\link{flexsurvreg}} for flexible survival modelling using general parametric distributions. \code{\link{plot.flexsurvreg}} and \code{\link{lines.flexsurvreg}} to plot fitted survival, hazards and cumulative hazards from models fitted by \code{\link{flexsurvspline}} and \code{\link{flexsurvreg}}. } \author{ Christopher Jackson } \keyword{models} \keyword{survival} flexsurv/man/hazard.Rd0000644000176200001440000000373014165570616014461 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Exp.R, R/Gamma.R, R/Lnorm.R, R/Weibull.R, % R/flexsurv-package.R \name{hexp} \alias{hexp} \alias{Hexp} \alias{hgamma} \alias{Hgamma} \alias{hlnorm} \alias{Hlnorm} \alias{hweibull} \alias{Hweibull} \alias{hazard} \title{Hazard and cumulative hazard functions} \usage{ hexp(x, rate = 1, log = FALSE) Hexp(x, rate = 1, log = FALSE) hgamma(x, shape, rate = 1, log = FALSE) Hgamma(x, shape, rate = 1, log = FALSE) hlnorm(x, meanlog = 0, sdlog = 1, log = FALSE) Hlnorm(x, meanlog = 0, sdlog = 1, log = FALSE) hweibull(x, shape, scale = 1, log = FALSE) Hweibull(x, shape, scale = 1, log = FALSE) } \arguments{ \item{x}{Vector of quantiles} \item{rate}{Rate parameter (exponential and gamma)} \item{log}{Compute log hazard or log cumulative hazard} \item{shape}{Shape parameter (Weibull and gamma)} \item{meanlog}{Mean on the log scale (log normal)} \item{sdlog}{Standard deviation on the log scale (log normal)} \item{scale}{Scale parameter (Weibull)} } \value{ Hazard (functions beginning 'h') or cumulative hazard (functions beginning 'H'). } \description{ Hazard and cumulative hazard functions for distributions which are built into flexsurv, and whose distribution functions are in base R. } \details{ For the exponential and the Weibull these are available analytically, and so are programmed here in numerically stable and efficient forms. For the gamma and log-normal, these are simply computed as minus the log of the survivor function (cumulative hazard) or the ratio of the density and survivor function (hazard), so are not expected to be robust to extreme values or quick to compute. } \seealso{ \code{\link{dexp}},\code{\link{dweibull}},\code{\link{dgamma}},\code{\link{dlnorm}},\code{\link{dgompertz}},\code{\link{dgengamma}},\code{\link{dgenf}} } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/ajfit.Rd0000644000176200001440000000355614165570616014313 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvmix.R \name{ajfit} \alias{ajfit} \title{Aalen-Johansen nonparametric estimates comparable to a fitted flexsurvmix model} \usage{ ajfit(x, newdata = NULL, tidy = TRUE) } \arguments{ \item{x}{Fitted model returned by \code{\link{flexsurvmix}}.} \item{newdata}{Data frame of alternative covariate values to check fit for. Only factor covariates are supported.} \item{tidy}{If \code{TRUE} then a single tidy data frame is returned. Otherwise the function returns the object returned by \code{survfit}, or a list of these objects if we are computing subset-specific estimates.} } \description{ Given a fitted flexsurvmix model, return the Aalen-Johansen estimates of the probability of occupying each state at a series of times covering the observed data. State 1 represents not having experienced any of the competing events, while state 2 and any further states correspond to having experienced each of the competing events respectively. These estimates can be compared with the fitted probabilities returned by \code{\link{p_flexsurvmix}} to check the fit of a \code{flexsurvmix} model. } \details{ This is only supported for models with no covariates or models containing only factor covariates. For models with factor covariates, the Aalen-Johansen estimates are computed for the subsets of the data defined in \code{newdata}. If \code{newdata} is not supplied, then this function returns state occupancy probabilities for all possible combinations of the factor levels. The Aalen-Johansen estimates are computed using \code{\link[survival]{survfit}} from the \code{survival} package (Therneau 2020). } \references{ Therneau T (2020). _A Package for Survival Analysis in R_. R package version 3.2-3, . } flexsurv/man/means.Rd0000644000176200001440000000711714171772374014320 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Exp.R, R/Gamma.R, R/GenF.R, R/GenGamma.R, % R/Gompertz.R, R/Llogis.R, R/Lnorm.R, R/Weibull.R, R/WeibullPH.R, % R/flexsurv-package.R \name{mean_exp} \alias{mean_exp} \alias{rmst_exp} \alias{mean_gamma} \alias{rmst_gamma} \alias{rmst_genf} \alias{mean_genf} \alias{rmst_genf.orig} \alias{mean_genf.orig} \alias{rmst_gengamma} \alias{mean_gengamma} \alias{rmst_gengamma.orig} \alias{mean_gengamma.orig} \alias{rmst_gompertz} \alias{mean_gompertz} \alias{mean_llogis} \alias{rmst_llogis} \alias{mean_lnorm} \alias{rmst_lnorm} \alias{mean_weibull} \alias{rmst_weibull} \alias{rmst_weibullPH} \alias{mean_weibullPH} \alias{means} \title{Mean and restricted mean survival functions} \usage{ mean_exp(rate = 1) rmst_exp(t, rate = 1, start = 0) mean_gamma(shape, rate = 1) rmst_gamma(t, shape, rate = 1, start = 0) rmst_genf(t, mu, sigma, Q, P, start = 0) mean_genf(mu, sigma, Q, P) rmst_genf.orig(t, mu, sigma, s1, s2, start = 0) mean_genf.orig(mu, sigma, s1, s2) rmst_gengamma(t, mu = 0, sigma = 1, Q, start = 0) mean_gengamma(mu = 0, sigma = 1, Q) rmst_gengamma.orig(t, shape, scale = 1, k, start = 0) mean_gengamma.orig(shape, scale = 1, k) rmst_gompertz(t, shape, rate = 1, start = 0) mean_gompertz(shape, rate = 1) mean_llogis(shape = 1, scale = 1) rmst_llogis(t, shape = 1, scale = 1, start = 0) mean_lnorm(meanlog = 0, sdlog = 1) rmst_lnorm(t, meanlog = 0, sdlog = 1, start = 0) mean_weibull(shape, scale = 1) rmst_weibull(t, shape, scale = 1, start = 0) rmst_weibullPH(t, shape, scale = 1, start = 0) mean_weibullPH(shape, scale = 1) } \arguments{ \item{rate}{Rate parameter (exponential and gamma)} \item{t}{Vector of times to which restricted mean survival time is evaluated} \item{start}{Optional left-truncation time or times. The returned restricted mean survival will be conditioned on survival up to this time.} \item{shape}{Shape parameter (Weibull, gamma, log-logistic, generalized gamma [orig], generalized F [orig])} \item{mu}{Mean on the log scale (generalized gamma, generalized F)} \item{sigma}{Standard deviation on the log scale (generalized gamma, generalized F)} \item{Q}{Vector of first shape parameters (generalized gamma, generalized F)} \item{P}{Vector of second shape parameters (generalized F)} \item{s1}{Vector of first F shape parameters (generalized F [orig])} \item{s2}{vector of second F shape parameters (generalized F [orig])} \item{scale}{Scale parameter (Weibull, log-logistic, generalized gamma [orig], generalized F [orig])} \item{k}{vector of shape parameters (generalized gamma [orig]).} \item{meanlog}{Mean on the log scale (log normal)} \item{sdlog}{Standard deviation on the log scale (log normal)} } \value{ mean survival (functions beginning 'mean') or restricted mean survival (functions beginning 'rmst_'). } \description{ Mean and restricted mean survival time functions for distributions which are built into flexsurv. } \details{ For the exponential, Weibull, log-logistic, lognormal, and gamma, mean survival is provided analytically. Restricted mean survival for the exponential distribution is also provided analytically. Mean and restricted means for other distributions are calculated via numeric integration. } \seealso{ \code{\link{dexp}},\code{\link{dweibull}},\code{\link{dgamma}},\code{\link{dlnorm}},\code{\link{dgompertz}},\code{\link{dgengamma}},\code{\link{dgenf}} } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/mean_flexsurvmix.Rd0000644000176200001440000000227114165570616016603 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvmix.R \name{mean_flexsurvmix} \alias{mean_flexsurvmix} \title{Mean times to events from a flexsurvmix model} \usage{ mean_flexsurvmix(x, newdata = NULL, B = NULL) } \arguments{ \item{x}{Fitted model object returned from \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{B}{Number of simulations to use to compute 95\% confidence intervals, based on the asymptotic multivariate normal distribution of the basic parameter estimates. If \code{B=NULL} then intervals are not computed.} } \value{ Mean times to next event conditionally on each alternative event, given the specified covariate values. } \description{ This returns the mean of each event-specific parametric time-to-event distribution in the mixture model, which is the mean time to event conditionally on that event being the one that happens. } flexsurv/man/bc.Rd0000644000176200001440000000301514165570616013570 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurv-package.R \docType{data} \name{bc} \alias{bc} \title{Breast cancer survival data} \format{ A data frame with 686 rows. \tabular{rll}{ \code{censrec} \tab (numeric) \tab 1=dead, 0=censored \cr \code{rectime} \tab (numeric) \tab Time of death or censoring in days\cr \code{group} \tab (numeric) \tab Prognostic group: \code{"Good"},\code{"Medium"} or \code{"Poor"}, \cr \tab \tab from a regression model developed by Sauerbrei and Royston (1999).\cr } } \source{ German Breast Cancer Study Group, 1984-1989. Used as a reference dataset for the spline-based survival model of Royston and Parmar (2002), implemented here in \code{\link{flexsurvspline}}. Originally provided with the \code{stpm} (Royston 2001, 2004) and \code{stpm2} (Lambert 2009, 2010) Stata modules. } \usage{ bc } \description{ Survival times of 686 patients with primary node positive breast cancer. } \references{ Royston, P. and Parmar, M. (2002). Flexible parametric proportional-hazards and proportional-odds models for censored survival data, with application to prognostic modelling and estimation of treatment effects. Statistics in Medicine 21(1):2175-2197. Sauerbrei, W. and Royston, P. (1999). Building multivariable prognostic and diagnostic models: transformation of the predictors using fractional polynomials. Journal of the Royal Statistical Society, Series A 162:71-94. } \seealso{ \code{\link{flexsurvspline}} } \keyword{datasets} flexsurv/man/bootci.fmsm.Rd0000644000176200001440000000536714470653203015431 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{bootci.fmsm} \alias{bootci.fmsm} \title{Bootstrap confidence intervals for flexsurv output functions} \usage{ bootci.fmsm( x, B, fn, cl = 0.95, attrs = NULL, cores = NULL, sample = FALSE, ... ) } \arguments{ \item{x}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object. Or a list of such objects, defining a multi-state model.} \item{B}{Number of parameter draws to use} \item{fn}{Function to bootstrap the results of. It must have an argument named \code{x} giving a fitted flexsurv model object. This may return a value with any format, e.g. list, matrix or vector, as long as it can be converted to a numeric vector with \code{unlist}. See the example below.} \item{cl}{Width of symmetric confidence interval, by default 0.95} \item{attrs}{Any attributes of the value returned from \code{fn} which we want confidence intervals for. These will be unlisted, if possible, and appended to the result vector.} \item{cores}{Number of cores to use for parallel processing.} \item{sample}{If \code{TRUE} then the bootstrap sample itself is returned. If \code{FALSE} then the quantiles of the sample are returned giving a confidence interval.} \item{...}{Additional arguments to pass to \code{fn}.} } \value{ A matrix with two rows, giving the upper and lower confidence limits respectively. Each row is a vector of the same length as the unlisted result of the function corresponding to \code{fncall}. } \description{ Calculate a confidence interval for a model output by repeatedly replacing the parameters in a fitted model object with a draw from the multivariate normal distribution of the maximum likelihood estimates, then recalculating the output function. } \examples{ ## How to use bootci.fmsm ## Write a function with one argument called x giving a fitted model, ## and returning some results of the model. The results may be in any form. tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) bexp <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, data=bosms3, dist="exp") summfn <- function(x, t){ resp <- flexsurv::pmatrix.fs(x, trans=tmat, t=t) rest <- flexsurv::totlos.fs(x, trans=tmat, t=t) list(resp, rest) } ## Use bootci.fmsm to obtain the confidence interval ## The matrix columns are in the order of the unlisted results of the original ## summfn. You will have to rearrange them into the format that you want. ## If summfn has any extra arguments, in this case \code{t}, make sure they are ## passed through via the ... argument to bootci.fmsm bootci.fmsm(bexp, B=3, fn=summfn, t=10) bootci.fmsm(bexp, B=3, fn=summfn, t=5) } flexsurv/man/ppath_fmixmsm.Rd0000644000176200001440000000253614165570616016067 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fmixmsm.R \name{ppath_fmixmsm} \alias{ppath_fmixmsm} \title{Probability of each pathway taken through a mixture multi-state model} \usage{ ppath_fmixmsm(x, newdata = NULL, final = FALSE, B = NULL) } \arguments{ \item{x}{Object returned by \code{\link{fmixmsm}}, representing a multi-state model built from piecing together mixture models fitted by \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{final}{If \code{TRUE} then the probabilities of pathways with the same final state are added together, to produce the probability of each ultimate outcome or absorbing state from the multi-state model.} \item{B}{Number of simulations to use to compute 95\% confidence intervals, based on the asymptotic multivariate normal distribution of the basic parameter estimates. If \code{B=NULL} then intervals are not computed.} } \value{ Data frame of pathway probabilities by covariate value and pathway. } \description{ Probability of each pathway taken through a mixture multi-state model } flexsurv/man/glance.flexsurvreg.Rd0000644000176200001440000000221014644755013017002 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/broom-funs.R \name{glance.flexsurvreg} \alias{glance.flexsurvreg} \title{Glance at a flexsurv model object} \usage{ \method{glance}{flexsurvreg}(x, ...) } \arguments{ \item{x}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{...}{Not currently used.} } \value{ A one-row \code{\link[tibble]{tibble}} containing columns: \itemize{ \item \code{N} Number of observations used in fitting \item \code{events} Number of events \item \code{censored} Number of censored events \item \code{trisk} Total length of time-at-risk (i.e. follow-up) \item \code{df} Degrees of freedom (i.e. number of estimated parameters) \item \code{logLik} Log-likelihood \item \code{AIC} Akaike's "An Information Criteria" \item \code{BIC} Bayesian Information Criteria } } \description{ Glance accepts a model object and returns a tibble with exactly one row of model summaries. } \examples{ fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") glance(fitg) } flexsurv/man/fmsm.Rd0000644000176200001440000000227214165570616014152 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{fmsm} \alias{fmsm} \title{Construct a multi-state model from a set of parametric survival models} \usage{ fmsm(..., trans) } \arguments{ \item{...}{Objects returned by \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}} representing fitted survival models.} \item{trans}{A matrix of integers specifying which models correspond to which transitions. The \eqn{r,s} entry is \code{i} if the \eqn{i}th argument specified in \code{...} is the model for the state \eqn{r} to state \eqn{s} transition. The entry should be \code{NA} if the transition is disallowed.} } \value{ A list containing the objects given in \code{...}, and with attributes \code{"trans"} and \code{"statenames"} defining the transition structure matrix and state names, and with list components named to describe the transitions they correspond to. If any of the arguments in \code{...} are named, then these are used to define the transition names, otherwise default names are chosen based on the state names. } \description{ Construct a multi-state model from a set of parametric survival models } flexsurv/man/p_flexsurvmix.Rd0000644000176200001440000000341614165570616016124 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvmix.R \name{p_flexsurvmix} \alias{p_flexsurvmix} \title{Transition probabilities from a flexsurvmix model} \usage{ p_flexsurvmix(x, newdata = NULL, startname = "start", t = 1, B = NULL) } \arguments{ \item{x}{Fitted model object returned from \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{startname}{Name of the state where individuals start. This considers the model as a multi-state model where people start in this state, and may transition to one of the competing events.} \item{t}{Vector of times \code{t} to calculate the probabilities of transition by.} \item{B}{Number of simulations to use to compute 95\% confidence intervals, based on the asymptotic multivariate normal distribution of the basic parameter estimates. If \code{B=NULL} then intervals are not computed.} } \value{ A data frame with transition probabilities by time, covariate value and destination state. } \description{ These quantities are variously known as transition probabilities, or state occupancy probabilities, or values of the "cumulative incidence" function, or values of the "subdistribution" function. They are the probabilities that an individual has experienced an event of a particular kind by time \code{t}. } \details{ Note that "cumulative incidence" is a misnomer, as "incidence" typically means a hazard, and the quantities computed here are not cumulative hazards, but probabilities. } flexsurv/man/dot-hess_to_cov.Rd0000644000176200001440000000127414523723773016312 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{.hess_to_cov} \alias{.hess_to_cov} \title{helper function to safely convert a Hessian matrix to covariance matrix} \usage{ .hess_to_cov(hessian, tol.solve = 1e-09, tol.evalues = 1e-05, ...) } \arguments{ \item{hessian}{hessian matrix to convert to covariance matrix (must be evaluated at MLE)} \item{tol.solve}{tolerance used for solve()} \item{tol.evalues}{accepted tolerance for negative eigenvalues of the covariance matrix} \item{...}{arguments passed to Matrix::nearPD} } \description{ helper function to safely convert a Hessian matrix to covariance matrix } \keyword{internal} flexsurv/man/summary.flexsurvreg.Rd0000644000176200001440000001766414362520136017262 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvreg.R \name{summary.flexsurvreg} \alias{summary.flexsurvreg} \title{Summaries of fitted flexible survival models} \usage{ \method{summary}{flexsurvreg}( object, newdata = NULL, X = NULL, type = "survival", fn = NULL, t = NULL, quantiles = 0.5, start = 0, cross = TRUE, ci = TRUE, se = FALSE, B = 1000, cl = 0.95, tidy = FALSE, na.action = na.pass, ... ) } \arguments{ \item{object}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{newdata}{Data frame containing covariate values to produce fitted values for. Or a list that can be coerced to such a data frame. There must be a column for every covariate in the model formula, and one row for every combination of covariates the fitted values are wanted for. These are in the same format as the original data, with factors as a single variable, not 0/1 contrasts. If this is omitted, if there are any continuous covariates, then a single summary is provided with all covariates set to their mean values in the data - for categorical covariates, the means of the 0/1 indicator variables are taken. If there are only factor covariates in the model, then all distinct groups are used by default.} \item{X}{Alternative way of defining covariate values to produce fitted values for. Since version 0.4, \code{newdata} is an easier way that doesn't require the user to create factor contrasts, but \code{X} has been kept for backwards compatibility. Columns of \code{X} represent different covariates, and rows represent multiple combinations of covariate values. For example \code{matrix(c(1,2),nrow=2)} if there is only one covariate in the model, and we want survival for covariate values of 1 and 2. A vector can also be supplied if just one combination of covariates is needed. For ``factor'' (categorical) covariates, the values of the contrasts representing factor levels (as returned by the \code{\link{contrasts}} function) should be used. For example, for a covariate \code{agegroup} specified as an unordered factor with levels \code{20-29, 30-39, 40-49, 50-59}, and baseline level \code{20-29}, there are three contrasts. To return summaries for groups \code{20-29} and \code{40-49}, supply \code{X = rbind(c(0,0,0), c(0,1,0))}, since all contrasts are zero for the baseline level, and the second contrast is ``turned on'' for the third level \code{40-49}.} \item{type}{\code{"survival"} for survival probabilities. \code{"cumhaz"} for cumulative hazards. \code{"hazard"} for hazards. \code{"rmst"} for restricted mean survival. \code{"mean"} for mean survival. \code{"median"} for median survival (alternative to \code{type="quantile"} with \code{quantiles=0.5}). \code{"quantile"} for quantiles of the survival time distribution. \code{"link"} for the fitted value of the location parameter (i.e. the "linear predictor" but on the natural scale of the parameter, not on the log scale) Ignored if \code{"fn"} is specified.} \item{fn}{Custom function of the parameters to summarise against time. This has optional first two arguments \code{t} representing time, and \code{start} representing left-truncation points, and any remaining arguments must be parameters of the distribution. It should be vectorised, and return a vector corresponding to the vectors given by \code{t}, \code{start} and the parameter vectors.} \item{t}{Times to calculate fitted values for. By default, these are the sorted unique observation (including censoring) times in the data - for left-truncated datasets these are the "stop" times.} \item{quantiles}{If \code{type="quantile"}, this specifies the quantiles of the survival time distribution to return estimates for.} \item{start}{Optional left-truncation time or times. The returned survival, hazard or cumulative hazard will be conditioned on survival up to this time. Predicted times returned with \code{"rmst"}, \code{"mean"}, \code{"median"} or \code{"quantile"} will be times since time zero, not times since the \code{start} time. A vector of the same length as \code{t} can be supplied to allow different truncation times for each prediction time, though this doesn't make sense in the usual case where this function is used to calculate a predicted trajectory for a single individual. This is why the default \code{start} time was changed for version 0.4 of \pkg{flexsurv} - this was previously a vector of the start times observed in the data.} \item{cross}{If \code{TRUE} (the default) then summaries are calculated for all combinations of times specified in \code{t} and covariate vectors specifed in \code{newdata}. If \code{FALSE}, then the times \code{t} should be of length equal to the number of rows in \code{newdata}, and one summary is produced for each row of \code{newdata} paired with the corresponding element of \code{t}. This is used, e.g. when determining Cox-Snell residuals.} \item{ci}{Set to \code{FALSE} to omit confidence intervals.} \item{se}{Set to \code{TRUE} to include standard errors.} \item{B}{Number of simulations from the normal asymptotic distribution of the estimates used to calculate confidence intervals or standard errors. Decrease for greater speed at the expense of accuracy, or set \code{B=0} to turn off calculation of CIs and SEs.} \item{cl}{Width of symmetric confidence intervals, relative to 1.} \item{tidy}{If \code{TRUE}, then the results are returned as a tidy data frame instead of a list. This can help with using the \pkg{ggplot2} package to compare summaries for different covariate values.} \item{na.action}{Function determining what should be done with missing values in \code{newdata}. If \code{na.pass} (the default) then summaries of \code{NA} are produced for missing covariate values. If \code{na.omit}, then missing values are dropped, the behaviour of \code{summary.flexsurvreg} before \code{flexsurv} version 1.2.} \item{...}{Further arguments passed to or from other methods. Currently unused.} } \value{ If \code{tidy=FALSE}, a list with one component for each unique covariate value (if there are only categorical covariates) or one component (if there are no covariates or any continuous covariates). Each of these components is a matrix with one row for each time in \code{t}, giving the estimated survival (or cumulative hazard, or hazard) and 95\% confidence limits. These list components are named with the covariate names and values which define them. If \code{tidy=TRUE}, a data frame is returned instead. This is formed by stacking the above list components, with additional columns to identify the covariate values that each block corresponds to. If there are multiple summaries, an additional list component named \code{X} contains a matrix with the exact values of contrasts (dummy covariates) defining each summary. The \code{\link{plot.flexsurvreg}} function can be used to quickly plot these model-based summaries against empirical summaries such as Kaplan-Meier curves, to diagnose model fit. Confidence intervals are obtained by sampling randomly from the asymptotic normal distribution of the maximum likelihood estimates and then taking quantiles (see, e.g. Mandel (2013)). } \description{ Return fitted survival, cumulative hazard or hazard at a series of times from a fitted \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}} model. } \details{ Time-dependent covariates are not currently supported. The covariate values are assumed to be constant through time for each fitted curve. } \references{ Mandel, M. (2013). "Simulation based confidence intervals for functions with complicated derivatives." The American Statistician (in press). } \seealso{ \code{\link{flexsurvreg}}, \code{\link{flexsurvspline}}. } \author{ C. H. Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{models} flexsurv/man/flexsurvrtrunc.Rd0000644000176200001440000002255514644755663016343 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvrtrunc.R \name{flexsurvrtrunc} \alias{flexsurvrtrunc} \title{Flexible parametric models for right-truncated, uncensored data defined by times of initial and final events.} \usage{ flexsurvrtrunc( t, tinit, rtrunc, tmax, data = NULL, method = "joint", dist, theta = NULL, fixed.theta = TRUE, inits = NULL, fixedpars = NULL, dfns = NULL, integ.opts = NULL, cl = 0.95, optim_control = list() ) } \arguments{ \item{t}{Vector of time differences between an initial and final event for a set of individuals.} \item{tinit}{Absolute time of the initial event for each individual.} \item{rtrunc}{Individual-specific right truncation points on the same scale as \code{t}, so that each individual's survival time \code{t} would not have been observed if it was greater than the corresponding element of \code{rtrunc}. Only used in \code{method="joint"}. In \code{method="final"}, the right-truncation is implicit.} \item{tmax}{Maximum possible time between initial and final events that could have been observed. This is only used in \code{method="joint"}, and is ignored in \code{method="final"}.} \item{data}{Data frame containing \code{t}, \code{rtrunc} and \code{tinit}.} \item{method}{If \code{"joint"} then the "joint-conditional" method is used. If \code{"final"} then the "conditional-on-final" method is used. The "conditional-on-initial" method can be implemented by using \code{\link{flexsurvreg}} with a \code{rtrunc} argument. These methods are all described in Seaman et al. (2020).} \item{dist}{Typically, one of the strings in the first column of the following table, identifying a built-in distribution. This table also identifies the location parameters, and whether covariates on these parameters represent a proportional hazards (PH) or accelerated failure time (AFT) model. In an accelerated failure time model, the covariate speeds up or slows down the passage of time. So if the coefficient (presented on the log scale) is log(2), then doubling the covariate value would give half the expected survival time. \tabular{llll}{ \code{"gengamma"} \tab Generalized gamma (stable) \tab mu \tab AFT \cr \code{"gengamma.orig"} \tab Generalized gamma (original) \tab scale \tab AFT \cr \code{"genf"} \tab Generalized F (stable) \tab mu \tab AFT \cr \code{"genf.orig"} \tab Generalized F (original) \tab mu \tab AFT \cr \code{"weibull"} \tab Weibull \tab scale \tab AFT \cr \code{"gamma"} \tab Gamma \tab rate \tab AFT \cr \code{"exp"} \tab Exponential \tab rate \tab PH \cr \code{"llogis"} \tab Log-logistic \tab scale \tab AFT \cr \code{"lnorm"} \tab Log-normal \tab meanlog \tab AFT \cr \code{"gompertz"} \tab Gompertz \tab rate \tab PH \cr } \code{"exponential"} and \code{"lognormal"} can be used as aliases for \code{"exp"} and \code{"lnorm"}, for compatibility with \code{\link[survival]{survreg}}. Alternatively, \code{dist} can be a list specifying a custom distribution. See section ``Custom distributions'' below for how to construct this list. Very flexible spline-based distributions can also be fitted with \code{\link{flexsurvspline}}. The parameterisations of the built-in distributions used here are the same as in their built-in distribution functions: \code{\link{dgengamma}}, \code{\link{dgengamma.orig}}, \code{\link{dgenf}}, \code{\link{dgenf.orig}}, \code{\link{dweibull}}, \code{\link{dgamma}}, \code{\link{dexp}}, \code{\link{dlnorm}}, \code{\link{dgompertz}}, respectively. The functions in base R are used where available, otherwise, they are provided in this package. A package vignette "Distributions reference" lists the survivor functions and covariate effect parameterisations used by each built-in distribution. For the Weibull, exponential and log-normal distributions, \code{\link{flexsurvreg}} simply works by calling \code{\link[survival]{survreg}} to obtain the maximum likelihood estimates, then calling \code{\link{optim}} to double-check convergence and obtain the covariance matrix for \code{\link{flexsurvreg}}'s preferred parameterisation. The Weibull parameterisation is different from that in \code{\link[survival]{survreg}}, instead it is consistent with \code{\link{dweibull}}. The \code{"scale"} reported by \code{\link[survival]{survreg}} is equivalent to \code{1/shape} as defined by \code{\link{dweibull}} and hence \code{\link{flexsurvreg}}. The first coefficient \code{(Intercept)} reported by \code{\link[survival]{survreg}} is equivalent to \code{log(scale)} in \code{\link{dweibull}} and \code{\link{flexsurvreg}}. Similarly in the exponential distribution, the rate, rather than the mean, is modelled on covariates. The object \code{flexsurv.dists} lists the names of the built-in distributions, their parameters, location parameter, functions used to transform the parameter ranges to and from the real line, and the functions used to generate initial values of each parameter for estimation.} \item{theta}{Initial value (or fixed value) for the exponential growth rate \code{theta}. Defaults to 1.} \item{fixed.theta}{Should \code{theta} be fixed at its initial value or estimated. This only applies to \code{method="joint"}. For \code{method="final"}, \code{theta} must be fixed.} \item{inits}{Initial values for the parameters of the parametric survival distributon. If not supplied, a heuristic is used. as is done in \code{\link{flexsurvreg}}.} \item{fixedpars}{Integer indices of the parameters of the survival distribution that should be fixed to their values supplied in \code{inits}. Same length as \code{inits}.} \item{dfns}{An alternative way to define a custom survival distribution (see section ``Custom distributions'' below). A list whose components may include \code{"d"}, \code{"p"}, \code{"h"}, or \code{"H"} containing the probability density, cumulative distribution, hazard, or cumulative hazard functions of the distribution. For example, \code{list(d=dllogis, p=pllogis)}. If \code{dfns} is used, a custom \code{dlist} must still be provided, but \code{dllogis} and \code{pllogis} need not be visible from the global environment. This is useful if \code{flexsurvreg} is called within other functions or environments where the distribution functions are also defined dynamically.} \item{integ.opts}{List of named arguments to pass to \code{\link{integrate}}, if a custom density or hazard is provided without its cumulative version. For example, \code{integ.opts = list(rel.tol=1e-12)}} \item{cl}{Width of symmetric confidence intervals for maximum likelihood estimates, by default 0.95.} \item{optim_control}{List to supply as the \code{control} argument to \code{\link{optim}} to control the likelihood maximisation.} } \description{ This function estimates the distribution of the time between an initial and final event, in situations where individuals are only observed if they have experienced both events before a certain time, thus they are right-truncated at this time. The time of the initial event provides information about the time from initial to final event, given the truncated observation scheme, and initial events are assumed to occur with an exponential growth rate. } \details{ Covariates are not currently supported. Note that \code{\link{flexsurvreg}}, with an \code{rtrunc} argument, can fit models for a similar kind of data, but those models ignore the information provided by the time of the initial event. A nonparametric estimator of survival under right-truncation is also provided in \code{\link{survrtrunc}}. See Seaman et al. (2020) for a full comparison of the alternative models. } \examples{ set.seed(1) ## simulate time to initial event X <- rexp(1000, 0.2) ## simulate time between initial and final event T <- rgamma(1000, 2, 10) ## right-truncate to keep only those with final event time ## before tmax tmax <- 40 obs <- X + T < tmax rtrunc <- tmax - X dat <- data.frame(X, T, rtrunc)[obs,] flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="gamma", theta=0.2) flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="gamma", theta=0.2, fixed.theta=FALSE) flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="gamma", theta=0.2, inits=c(1, 8)) flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="gamma", theta=0.2, method="final") flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="gamma", fixed.theta=TRUE) flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="weibull", fixed.theta=TRUE) flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="lnorm", fixed.theta=TRUE) flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="gengamma", fixed.theta=TRUE) flexsurvrtrunc(t=T, rtrunc=rtrunc, tinit=X, tmax=40, data=dat, dist="gompertz", fixed.theta=TRUE) } \references{ Seaman, S., Presanis, A. and Jackson, C. (2020) Estimating a Time-to-Event Distribution from Right-Truncated Data in an Epidemic: a Review of Methods } \seealso{ \code{\link{flexsurvreg}}, \code{\link{survrtrunc}}. } flexsurv/man/GenGamma.Rd0000644000176200001440000001131714165570616014664 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/GenGamma.R \name{GenGamma} \alias{GenGamma} \alias{dgengamma} \alias{pgengamma} \alias{qgengamma} \alias{rgengamma} \alias{Hgengamma} \alias{hgengamma} \title{Generalized gamma distribution} \usage{ dgengamma(x, mu = 0, sigma = 1, Q, log = FALSE) pgengamma(q, mu = 0, sigma = 1, Q, lower.tail = TRUE, log.p = FALSE) Hgengamma(x, mu = 0, sigma = 1, Q) hgengamma(x, mu = 0, sigma = 1, Q) qgengamma(p, mu = 0, sigma = 1, Q, lower.tail = TRUE, log.p = FALSE) rgengamma(n, mu = 0, sigma = 1, Q) } \arguments{ \item{x, q}{vector of quantiles.} \item{mu}{Vector of ``location'' parameters.} \item{sigma}{Vector of ``scale'' parameters. Note the inconsistent meanings of the term ``scale'' - this parameter is analogous to the (log-scale) standard deviation of the log-normal distribution, ``sdlog'' in \code{\link{dlnorm}}, rather than the ``scale'' parameter of the gamma distribution \code{\link{dgamma}}. Constrained to be positive.} \item{Q}{Vector of shape parameters.} \item{log, log.p}{logical; if TRUE, probabilities p are given as log(p).} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{vector of probabilities.} \item{n}{number of observations. If \code{length(n) > 1}, the length is taken to be the number required.} } \value{ \code{dgengamma} gives the density, \code{pgengamma} gives the distribution function, \code{qgengamma} gives the quantile function, \code{rgengamma} generates random deviates, \code{Hgengamma} retuns the cumulative hazard and \code{hgengamma} the hazard. } \description{ Density, distribution function, hazards, quantile function and random generation for the generalized gamma distribution, using the parameterisation originating from Prentice (1974). Also known as the (generalized) log-gamma distribution. } \details{ If \eqn{\gamma \sim Gamma(Q^{-2}, 1)}{g ~ Gamma(Q^{-2}, 1)} , and \eqn{w = log(Q^2 \gamma) / Q}{w = log(Q^2*g) / Q}, then \eqn{x = \exp(\mu + \sigma w)}{x = exp(mu + sigma w)} follows the generalized gamma distribution with probability density function \deqn{f(x | \mu, \sigma, Q) = \frac{|Q|(Q^{-2})^{Q^{-2}}}{\sigma x \Gamma(Q^{-2})} \exp(Q^{-2}(Qw - \exp(Qw)))}{ f(x | mu, sigma, Q) = |Q| (Q^{-2})^{Q^{-2}} / (sigma * x * Gamma(Q^{-2})) exp(Q^{-2}*(Q*w - exp(Q*w)))} This parameterisation is preferred to the original parameterisation of the generalized gamma by Stacy (1962) since it is more numerically stable near to \eqn{Q=0} (the log-normal distribution), and allows \eqn{Q<=0}. The original is available in this package as \code{\link{dgengamma.orig}}, for the sake of completion and compatibility with other software - this is implicitly restricted to \code{Q}>0 (or \code{k}>0 in the original notation). The parameters of \code{\link{dgengamma}} and \code{\link{dgengamma.orig}} are related as follows. \code{dgengamma.orig(x, shape=shape, scale=scale, k=k) = } \code{dgengamma(x, mu=log(scale) + log(k)/shape, sigma=1/(shape*sqrt(k)), Q=1/sqrt(k))} The generalized gamma distribution simplifies to the gamma, log-normal and Weibull distributions with the following parameterisations: \tabular{lcl}{ \code{dgengamma(x, mu, sigma, Q=0)} \tab \code{=} \tab \code{dlnorm(x, mu, sigma)} \cr \code{dgengamma(x, mu, sigma, Q=1)} \tab \code{=} \tab \code{dweibull(x, shape=1/sigma, scale=exp(mu))} \cr \code{dgengamma(x, mu, sigma, Q=sigma)} \tab \code{=} \tab \code{dgamma(x, shape=1/sigma^2, rate=exp(-mu) / sigma^2)} \cr } The properties of the generalized gamma and its applications to survival analysis are discussed in detail by Cox (2007). The generalized F distribution \code{\link{GenF}} extends the generalized gamma to four parameters. } \references{ Prentice, R. L. (1974). A log gamma model and its maximum likelihood estimation. Biometrika 61(3):539-544. Farewell, V. T. and Prentice, R. L. (1977). A study of distributional shape in life testing. Technometrics 19(1):69-75. Lawless, J. F. (1980). Inference in the generalized gamma and log gamma distributions. Technometrics 22(3):409-419. Cox, C., Chu, H., Schneider, M. F. and Muñoz, A. (2007). Parametric survival analysis and taxonomy of hazard functions for the generalized gamma distribution. Statistics in Medicine 26:4252-4374 Stacy, E. W. (1962). A generalization of the gamma distribution. Annals of Mathematical Statistics 33:1187-92 } \seealso{ \code{\link{GenGamma.orig}}, \code{\link{GenF}}, \code{\link{Lognormal}}, \code{\link{GammaDist}}, \code{\link{Weibull}}. } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/plot.standsurv.Rd0000644000176200001440000000475014247336547016225 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/standsurv.R \name{plot.standsurv} \alias{plot.standsurv} \title{Plot standardized metrics from a fitted flexsurv model} \usage{ \method{plot}{standsurv}(x, contrast = FALSE, ci = FALSE, expected = FALSE, ...) } \arguments{ \item{x}{A standsurv object returned by \code{standsurv}} \item{contrast}{Should contrasts of standardized metrics be plotted. Defaults to FALSE} \item{ci}{Should confidence intervals be plotted (if calculated in \code{standsurv})?} \item{expected}{Should the marginal expected survival / hazard also be plotted? This can only be invoked if \code{rmap} and \code{ratetable} have been passed to \code{standsurv}} \item{...}{Not currently used} } \value{ A ggplot showing the standardized metric calculated by \code{standsurv} over time. Modification of the plot is possible by adding further ggplot objects, see Examples. } \description{ Plot standardized metrics such as the marginal survival, restricted mean survival and hazard, based on a fitted flexsurv model. } \examples{ ## Use bc dataset, with an age variable appended ## mean age is higher in those with smaller observed survival times newbc <- bc newbc$age <- rnorm(dim(bc)[1], mean = 65-scale(newbc$recyrs, scale=FALSE), sd = 5) ## Fit a Weibull flexsurv model with group and age as covariates weib_age <- flexsurvreg(Surv(recyrs, censrec) ~ group+age, data=newbc, dist="weibull") ## Calculate standardized survival and the difference in standardized survival ## for the three levels of group across a grid of survival times standsurv_weib_age <- standsurv(weib_age, at = list(list(group="Good"), list(group="Medium"), list(group="Poor")), t=seq(0,7, length=100), contrast = "difference", ci=TRUE, boot = TRUE, B=10, seed=123) plot(standsurv_weib_age) plot(standsurv_weib_age) + ggplot2::theme_bw() + ggplot2::ylab("Survival") + ggplot2::xlab("Time (years)") + ggplot2::guides(color=ggplot2::guide_legend(title="Prognosis"), fill=ggplot2::guide_legend(title="Prognosis")) plot(standsurv_weib_age, contrast=TRUE, ci=TRUE) + ggplot2::ylab("Difference in survival") } flexsurv/man/residuals.flexsurvreg.Rd0000644000176200001440000000306414165570616017556 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/residuals.flexsurvreg.R \name{residuals.flexsurvreg} \alias{residuals.flexsurvreg} \title{Calculate residuals for flexible survival models} \usage{ \method{residuals}{flexsurvreg}(object, type = "response", ...) } \arguments{ \item{object}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{type}{Character string for the type of residual desired. Currently only \code{"response"} and \code{"coxsnell"} are supported. More residual types may become available in future versions.} \item{...}{Not currently used.} } \value{ Numeric vector with the same length as \code{nobs(object)}. } \description{ Calculates residuals for \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}} model fits. } \details{ Residuals of \code{type = "response"} are calculated as the naive difference between the observed survival and the covariate-specific predicted mean survival from \code{\link{predict.flexsurvreg}}, ignoring whether the event time is observed or censored. \code{type="coxsnell"} returns the Cox-Snell residual, defined as the estimated cumulative hazard at each data point. To check the fit of the A more fully featured utility for this is provided in the function \code{\link{coxsnell_flexsurvreg}}. } \examples{ fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") residuals(fitg, type="response") } \seealso{ \code{\link{predict.flexsurvreg}} } flexsurv/man/qfinal_fmixmsm.Rd0000644000176200001440000000364214165570616016224 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fmixmsm.R \name{qfinal_fmixmsm} \alias{qfinal_fmixmsm} \title{Quantiles of the distribution of the time until reaching a final state in a mixture multi-state model} \usage{ qfinal_fmixmsm( x, newdata = NULL, final = FALSE, B = NULL, n = 10000, probs = c(0.025, 0.5, 0.975) ) } \arguments{ \item{x}{Object returned by \code{\link{fmixmsm}}, representing a multi-state model built from piecing together mixture models fitted by \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{final}{If \code{TRUE} then the mean time to the final state is calculated for each final state, by taking a weighted average of the mean time to travel each pathway ending in that final state, weighted by the probability of the pathway. If \code{FALSE} (the default) then a separate mean is calculated for each pathway.} \item{B}{Number of simulations to use to compute 95\% confidence intervals, based on the asymptotic multivariate normal distribution of the basic parameter estimates. If \code{B=NULL} then intervals are not computed.} \item{n}{Number of individual-level simulations to use to characterise the time-to-event distributions} \item{probs}{Quantiles to calculate, by default, \code{c(0.025, 0.5, 0.975)}} } \value{ Data frame of quantiles of the time to final state by pathway and covariate value, or by final state and covariate value. } \description{ Calculate the quantiles of the time from the start of the process to each possible final (or "absorbing") state in a mixture multi-state model. Models with cycles are not supported. } flexsurv/man/pdf_flexsurvmix.Rd0000644000176200001440000000201314165570616016426 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvmix.R \name{pdf_flexsurvmix} \alias{pdf_flexsurvmix} \title{Fitted densities for times to events in a flexsurvmix model} \usage{ pdf_flexsurvmix(x, newdata = NULL, t = NULL) } \arguments{ \item{x}{Fitted model object returned from \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{t}{Vector of times at which to evaluate the probability density} } \value{ A data frame with each row giving the fitted density \code{dens} for a combination of covariate values, time and competing event. } \description{ This returns an estimate of the probability density for the time to each competing event, at a vector of times supplied by the user. } flexsurv/man/model.frame.flexsurvmix.Rd0000644000176200001440000000107414471126735017772 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvmix.R \name{model.frame.flexsurvmix} \alias{model.frame.flexsurvmix} \title{Model frame from a flexsurvmix object} \usage{ \method{model.frame}{flexsurvmix}(formula, ...) } \arguments{ \item{formula}{Fitted model object from \code{\link{flexsurvmix}}.} \item{...}{Further arguments (currently unused).} } \value{ A list of data frames } \description{ Returns a list of data frames, with each component containing the data that were used for the model fit for that mixture component. } flexsurv/man/model.frame.flexsurvreg.Rd0000644000176200001440000000307514165570616017756 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{model.frame.flexsurvreg} \alias{model.frame.flexsurvreg} \alias{model.matrix.flexsurvreg} \title{Extract original data from \code{flexsurvreg} objects.} \usage{ \method{model.frame}{flexsurvreg}(formula, ...) \method{model.matrix}{flexsurvreg}(object, par = NULL, ...) } \arguments{ \item{formula}{A fitted model object, as returned by \code{\link{flexsurvreg}}.} \item{...}{Further arguments (not used).} \item{object}{A fitted model object, as returned by \code{\link{flexsurvreg}}.} \item{par}{String naming the parameter whose linear model matrix is desired. The default value of \code{par=NULL} returns a matrix consisting of the model matrices for all models in the object \code{cbind}ed together, with the intercepts excluded. This is not really a ``model matrix'' in the usual sense, however, the columns directly correspond to the covariate coefficients in the matrix of estimates from the fitted model.} } \value{ \code{model.frame} returns a data frame with all the original variables used for the model fit. \code{model.matrix} returns a design matrix for a part of the model that includes covariates. The required part is indicated by the \code{"par"} argument (see above). } \description{ Extract the data from a model fitted with \code{flexsurvreg}. } \seealso{ \code{\link{flexsurvreg}}, \code{\link{model.frame}}, \code{\link{model.matrix}}. } \author{ C. H. Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{models} flexsurv/man/flexsurv-package.Rd0000644000176200001440000001004514554242022016441 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurv-package.R \docType{package} \name{flexsurv-package} \alias{flexsurv-package} \alias{flexsurv} \title{flexsurv: Flexible parametric survival and multi-state models} \description{ flexsurv: Flexible parametric models for time-to-event data, including the generalized gamma, the generalized F and the Royston-Parmar spline model, and extensible to user-defined distributions. } \details{ \code{\link{flexsurvreg}} fits parametric models for time-to-event (survival) data. Data may be right-censored, and/or left-censored, and/or left-truncated. Several built-in parametric distributions are available. Any user-defined parametric model can also be employed by supplying a list with basic information about the distribution, including the density or hazard and ideally also the cumulative distribution or hazard. Covariates can be included using a linear model on any parameter of the distribution, log-transformed to the real line if necessary. This typically defines an accelerated failure time or proportional hazards model, depending on the distribution and parameter. \code{\link{flexsurvspline}} fits the flexible survival model of Royston and Parmar (2002) in which the log cumulative hazard is modelled as a natural cubic spline function of log time. Covariates can be included on any of the spline parameters, giving either a proportional hazards model or an arbitrarily-flexible time-dependent effect. Alternative proportional odds or probit parameterisations are available. Output from the models can be presented as survivor, cumulative hazard and hazard functions (\code{\link{summary.flexsurvreg}}). These can be plotted against nonparametric estimates (\code{\link{plot.flexsurvreg}}) to assess goodness-of-fit. Any other user-defined function of the parameters may be summarised in the same way. Multi-state models for time-to-event data can also be fitted with the same functions. Predictions from those models can then be made using the functions \code{\link{pmatrix.fs}}, \code{\link{pmatrix.simfs}}, \code{\link{totlos.fs}}, \code{\link{totlos.simfs}}, or \code{\link{sim.fmsm}}, or alternatively by \code{\link{msfit.flexsurvreg}} followed by \code{mssample} or \code{probtrans} from the package \pkg{mstate}. Distribution (``dpqr'') functions for the generalized gamma and F distributions are given in \code{\link{GenGamma}}, \code{\link{GenF}} (preferred parameterisations) and \code{\link{GenGamma.orig}}, \code{\link{GenF.orig}} (original parameterisations). \code{\link{flexsurv}} also includes the standard Gompertz distribution with unrestricted shape parameter, see \code{\link{Gompertz}}. } \section{User guide}{ The \bold{flexsurv user guide} vignette explains the methods in detail, and gives several worked examples. A further vignette \bold{flexsurv-examples} gives a few more complicated examples, and users are encouraged to submit their own. } \references{ Jackson, C. (2016). flexsurv: A Platform for Parametric Survival Modeling in R. Journal of Statistical Software, 70(8), 1-33. doi:10.18637/jss.v070.i08 Royston, P. and Parmar, M. (2002). Flexible parametric proportional-hazards and proportional-odds models for censored survival data, with application to prognostic modelling and estimation of treatment effects. Statistics in Medicine 21(1):2175-2197. Cox, C. (2008). The generalized \eqn{F} distribution: An umbrella for parametric survival analysis. Statistics in Medicine 27:4301-4312. Cox, C., Chu, H., Schneider, M. F. and Muñoz, A. (2007). Parametric survival analysis and taxonomy of hazard functions for the generalized gamma distribution. Statistics in Medicine 26:4252-4374 } \seealso{ Useful links: \itemize{ \item \url{https://github.com/chjackson/flexsurv} \item \url{http://chjackson.github.io/flexsurv/} \item Report bugs at \url{https://github.com/chjackson/flexsurv/issues} } } \author{ Christopher Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{package} flexsurv/man/AIC.fmsm.Rd0000644000176200001440000000116714471126735014546 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{AIC.fmsm} \alias{AIC.fmsm} \title{Akaike's information criterion from a flexible parametric multistate model} \usage{ \method{AIC}{fmsm}(object, ..., k = 2) } \arguments{ \item{object}{Object returned by \code{\link{fmsm}} representing a multistate model.} \item{...}{Further arguments (currently unused).} \item{k}{Penalty applied to number of parameters (defaults to the standard 2).} } \value{ The sum of the AICs of the transition-specific models. } \description{ Defined as the sum of the AICs of the transition-specific models. } flexsurv/man/BIC.flexsurvreg.Rd0000644000176200001440000000520114470703452016146 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{BIC.flexsurvreg} \alias{BIC.flexsurvreg} \title{Bayesian Information Criterion (BIC) for comparison of flexsurvreg models} \usage{ \method{BIC}{flexsurvreg}(object, cens = TRUE, ...) } \arguments{ \item{object}{Fitted model returned by \code{\link{flexsurvreg}} (or \code{\link{flexsurvspline}}).} \item{cens}{Include censored observations in the sample size term (\code{n}) used in the calculation of BIC.} \item{...}{Other arguments (currently unused).} } \value{ The BIC of the fitted model. This is minus twice the log likelihood plus \code{p*log(n)}, where \code{p} is the number of parameters and \code{n} is the sample size of the data. If \code{weights} was supplied to \code{flexsurv}, the sample size is defined as the sum of the weights. } \description{ Bayesian Information Criterion (BIC) for comparison of flexsurvreg models } \details{ There is no "official" definition of what the sample size should be for the use of BIC in censored survival analysis. BIC is based on an approximation to Bayesian model comparison using Bayes factors and an implicit vague prior. Informally, the sample size describes the number of "units" giving rise to a distinct piece of information (Kass and Raftery 1995). However censored observations provide less information than observed events, in principle. The default used here is the number of individuals, for consistency with more familiar kinds of statistical modelling. However if censoring is heavy, then the number of events may be a better represent the amount of information. Following these principles, the best approximation would be expected to be somewere in between. AIC and BIC are intended to measure different things. Briefly, AIC measures predictive ability, whereas BIC is expected to choose the true model from a set of models where one of them is the truth. Therefore BIC chooses simpler models for all but the tiniest sample sizes (\eqn{log(n)>2}, \eqn{n>7}). AIC might be preferred in the typical situation where "all models are wrong but some are useful". AIC also gives similar results to cross-validation (Stone 1977). } \references{ Kass, R. E., & Raftery, A. E. (1995). Bayes factors. Journal of the American Statistical Association, 90(430), 773-795. Stone, M. (1977). An asymptotic equivalence of choice of model by crossâ€validation and Akaike's criterion. Journal of the Royal Statistical Society: Series B (Methodological), 39(1), 44-47. } \seealso{ \code{\link{BIC}}, \code{\link{AIC}}, \code{\link{AICC.flexsurvreg}}, \code{\link{nobs.flexsurvreg}} } flexsurv/man/ajfit_flexsurvmix.Rd0000644000176200001440000000265714165570616016770 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvmix.R \name{ajfit_flexsurvmix} \alias{ajfit_flexsurvmix} \title{Forms a tidy data frame for plotting the fit of parametric mixture multi-state models against nonparametric estimates} \usage{ ajfit_flexsurvmix(x, maxt = NULL, startname = "Start", B = NULL) } \arguments{ \item{x}{Fitted model returned by \code{\link{flexsurvmix}}.} \item{maxt}{Maximum time to produce parametric estimates for. By default this is the maximum event time in the data, the maximum time we have nonparametric estimates for.} \item{startname}{Label to give the state corresponding to "no event happened yet". By default this is \code{"Start"}.} \item{B}{Number of simulation replications to use to calculate a confidence interval for the parametric estimates in \code{\link{p_flexsurvmix}}. Comparable intervals for the Aalen-Johansen estimates are returned if this is set. Otherwise if \code{B=NULL} then no intervals are returned.} } \description{ This computes Aalen-Johansen estimates of the probability of occupying each state at a series of times, using \code{\link{ajfit}}. The equivalent estimates from the parametric model are then produced using \code{\link{p_flexsurvmix}}, and concatenated with the nonparametric estimates to form a tidy data frame. This data frame can then simply be plotted using \code{\link[ggplot2]{ggplot}}. } flexsurv/man/totlos.fs.Rd0000644000176200001440000001336114644767560015154 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{totlos.fs} \alias{totlos.fs} \title{Total length of stay in particular states for a fully-parametric, time-inhomogeneous Markov multi-state model} \usage{ totlos.fs( x, trans = NULL, t = 1, newdata = NULL, ci = FALSE, tvar = "trans", sing.inf = 1e+10, B = 1000, cl = 0.95, ... ) } \arguments{ \item{x}{A model fitted with \code{\link{flexsurvreg}}. See \code{\link{msfit.flexsurvreg}} for the required form of the model and the data. Additionally, this must be a Markov / clock-forward model, but can be time-inhomogeneous. See the package vignette for further explanation. \code{x} can also be a list of models, with one component for each permitted transition, as illustrated in \code{\link{msfit.flexsurvreg}}.} \item{trans}{Matrix indicating allowed transitions. See \code{\link{msfit.flexsurvreg}}.} \item{t}{Time or vector of times to predict up to. Must be finite.} \item{newdata}{A data frame specifying the values of covariates in the fitted model, other than the transition number. See \code{\link{msfit.flexsurvreg}}.} \item{ci}{Return a confidence interval calculated by simulating from the asymptotic normal distribution of the maximum likelihood estimates. Turned off by default, since this is computationally intensive. If turned on, users should increase \code{B} until the results reach the desired precision.} \item{tvar}{Variable in the data representing the transition type. Not required if \code{x} is a list of models.} \item{sing.inf}{If there is a singularity in the observed hazard, for example a Weibull distribution with \code{shape < 1} has infinite hazard at \code{t=0}, then as a workaround, the hazard is assumed to be a large finite number, \code{sing.inf}, at this time. The results should not be sensitive to the exact value assumed, but users should make sure by adjusting this parameter in these cases.} \item{B}{Number of simulations from the normal asymptotic distribution used to calculate variances. Decrease for greater speed at the expense of accuracy.} \item{cl}{Width of symmetric confidence intervals, relative to 1.} \item{...}{Arguments passed to \code{\link[deSolve]{ode}} in \pkg{deSolve}.} } \value{ The matrix of lengths of stay \eqn{T(t)}, if \code{t} is of length 1, or a list of matrices if \code{t} is longer. If \code{ci=TRUE}, each element has attributes \code{"lower"} and \code{"upper"} giving matrices of the corresponding confidence limits. These are formatted for printing but may be extracted using \code{attr()}. The result also has an attribute \code{P} giving the transition probability matrices, since these are unavoidably computed as a side effect. These are suppressed for printing, but can be extracted with \code{attr(...,"P")}. } \description{ The matrix whose \eqn{r,s} entry is the expected amount of time spent in state \eqn{s} for a time-inhomogeneous, continuous-time Markov multi-state process that starts in state \eqn{r}, up to a maximum time \eqn{t}. This is defined as the integral of the corresponding transition probability up to that time. } \details{ This is computed by solving a second order extension of the Kolmogorov forward differential equation numerically, using the methods in the \pkg{deSolve} package. The equation is expressed as a linear system \deqn{\frac{dT(t)}{dt} = P(t)} \deqn{\frac{dP(t)}{dt} = P(t) Q(t)} and solved for \eqn{T(t)} and \eqn{P(t)} simultaneously, where \eqn{T(t)} is the matrix of total lengths of stay, \eqn{P(t)} is the transition probability matrix for time \eqn{t}, and \eqn{Q(t)} is the transition hazard or intensity as a function of \eqn{t}. The initial conditions are \eqn{T(0) = 0} and \eqn{P(0) = I}. Note that the package \pkg{msm} has a similar method \code{totlos.msm}. \code{totlos.fs} should give the same results as \code{totlos.msm} when both of these conditions hold: \itemize{ \item the time-to-event distribution is exponential for all transitions, thus the \code{flexsurvreg} model was fitted with \code{dist="exp"}, and is time-homogeneous. \item the \pkg{msm} model was fitted with \code{exacttimes=TRUE}, thus all the event times are known, and there are no time-dependent covariates. } \pkg{msm} only allows exponential or piecewise-exponential time-to-event distributions, while \pkg{flexsurvreg} allows more flexible models. \pkg{msm} however was designed in particular for panel data, where the process is observed only at arbitrary times, thus the times of transition are unknown, which makes flexible models difficult. This function is only valid for Markov ("clock-forward") multi-state models, though no warning or error is currently given if the model is not Markov. See \code{\link{totlos.simfs}} for the equivalent for semi-Markov ("clock-reset") models. } \examples{ # BOS example in vignette, and in msfit.flexsurvreg bexp <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, data=bosms3, dist="exp") tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) # predict 4 years spent without BOS, 3 years with BOS, before death # As t increases, this should converge totlos.fs(bexp, t=10, trans=tmat) totlos.fs(bexp, t=1000, trans=tmat) totlos.fs(bexp, t=c(5,10), trans=tmat) # Answers should match results in help(totlos.simfs) up to Monte Carlo # error there / ODE solving precision here, since with an exponential # distribution, the "semi-Markov" model there is the same as the Markov # model here } \seealso{ \code{\link{totlos.simfs}}, \code{\link{pmatrix.fs}}, \code{\link{msfit.flexsurvreg}}. } \author{ Christopher Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk}. } \keyword{models} \keyword{survival} flexsurv/man/GenGamma.orig.Rd0000644000176200001440000001010414165570616015614 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/GenGamma.R \name{GenGamma.orig} \alias{GenGamma.orig} \alias{dgengamma.orig} \alias{pgengamma.orig} \alias{qgengamma.orig} \alias{rgengamma.orig} \alias{Hgengamma.orig} \alias{hgengamma.orig} \title{Generalized gamma distribution (original parameterisation)} \usage{ dgengamma.orig(x, shape, scale = 1, k, log = FALSE) pgengamma.orig(q, shape, scale = 1, k, lower.tail = TRUE, log.p = FALSE) Hgengamma.orig(x, shape, scale = 1, k) hgengamma.orig(x, shape, scale = 1, k) qgengamma.orig(p, shape, scale = 1, k, lower.tail = TRUE, log.p = FALSE) rgengamma.orig(n, shape, scale = 1, k) } \arguments{ \item{x, q}{vector of quantiles.} \item{shape}{vector of ``Weibull'' shape parameters.} \item{scale}{vector of scale parameters.} \item{k}{vector of ``Gamma'' shape parameters.} \item{log, log.p}{logical; if TRUE, probabilities p are given as log(p).} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{vector of probabilities.} \item{n}{number of observations. If \code{length(n) > 1}, the length is taken to be the number required.} } \value{ \code{dgengamma.orig} gives the density, \code{pgengamma.orig} gives the distribution function, \code{qgengamma.orig} gives the quantile function, \code{rgengamma.orig} generates random deviates, \code{Hgengamma.orig} retuns the cumulative hazard and \code{hgengamma.orig} the hazard. } \description{ Density, distribution function, hazards, quantile function and random generation for the generalized gamma distribution, using the original parameterisation from Stacy (1962). } \details{ If \eqn{w \sim Gamma(k,1)}{w ~ Gamma(k, 1)}, then \eqn{x = \exp(w/shape + \log(scale))}{x = exp(w/shape + log(scale))} follows the original generalised gamma distribution with the parameterisation given here (Stacy 1962). Defining \code{shape}\eqn{=b>0}, \code{scale}\eqn{=a>0}, \eqn{x} has probability density \deqn{f(x | a, b, k) = \frac{b}{\Gamma(k)} \frac{x^{bk - 1}}{a^{bk}} }{ f(x | a, b, k) = (b / \Gamma(k)) (x^{bk -1} / a^{bk}) exp(-(x/a)^b)}\deqn{ \exp(-(x/a)^b)}{ f(x | a, b, k) = (b / \Gamma(k)) (x^{bk -1} / a^{bk}) exp(-(x/a)^b)} The original generalized gamma distribution simplifies to the gamma, exponential and Weibull distributions with the following parameterisations: \tabular{lcl}{ \code{dgengamma.orig(x, shape, scale, k=1)} \tab \code{=} \tab \code{\link{dweibull}(x, shape, scale)} \cr \code{dgengamma.orig(x, shape=1, scale, k)} \tab \code{=} \tab \code{\link{dgamma}(x, shape=k, scale)} \cr \code{dgengamma.orig(x, shape=1, scale, k=1)} \tab \code{=} \tab \code{\link{dexp}(x, rate=1/scale)} \cr } Also as k tends to infinity, it tends to the log normal (as in \code{\link{dlnorm}}) with the following parameters (Lawless, 1980): \code{dlnorm(x, meanlog=log(scale) + log(k)/shape, sdlog=1/(shape*sqrt(k)))} For more stable behaviour as the distribution tends to the log-normal, an alternative parameterisation was developed by Prentice (1974). This is given in \code{\link{dgengamma}}, and is now preferred for statistical modelling. It is also more flexible, including a further new class of distributions with negative shape \code{k}. The generalized F distribution \code{\link{GenF.orig}}, and its similar alternative parameterisation \code{\link{GenF}}, extend the generalized gamma to four parameters. } \references{ Stacy, E. W. (1962). A generalization of the gamma distribution. Annals of Mathematical Statistics 33:1187-92. Prentice, R. L. (1974). A log gamma model and its maximum likelihood estimation. Biometrika 61(3):539-544. Lawless, J. F. (1980). Inference in the generalized gamma and log gamma distributions. Technometrics 22(3):409-419. } \seealso{ \code{\link{GenGamma}}, \code{\link{GenF.orig}}, \code{\link{GenF}}, \code{\link{Lognormal}}, \code{\link{GammaDist}}, \code{\link{Weibull}}. } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/unroll.function.Rd0000644000176200001440000000547014165570616016352 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/unroll.function.R \name{unroll.function} \alias{unroll.function} \title{Convert a function with matrix arguments to a function with vector arguments.} \usage{ unroll.function(mat.fn, ...) } \arguments{ \item{mat.fn}{A function with any number of arguments, some of which are matrices.} \item{\dots}{A series of other arguments. Their names define which arguments of \code{mat.fn} are matrices. Their values define a vector of strings to be appended to the names of the arguments in the new function. For example \code{fn <- unroll.function(oldfn, gamma=1:3, alpha=0:1)} will make a new function \code{fn} with arguments \code{gamma1},\code{gamma2},\code{gamma3},\code{alpha0},\code{alpha1}. Calling \code{fn(gamma1=a,gamma2=b,gamma3=c,alpha0=d,alpha1=e)} should give the same answer as \code{oldfn(gamma=cbind(a,b,c),alpha=cbind(d,e))}} } \value{ The new function, with vector arguments. } \description{ Given a function with matrix arguments, construct an equivalent function which takes vector arguments defined by the columns of the matrix. The new function simply uses \code{cbind} on the vector arguments to make a matrix, and calls the old one. } \section{Usage in \pkg{flexsurv}}{ This is used by \code{\link{flexsurvspline}} to allow spline models, which have an arbitrary number of parameters, to be fitted using \code{\link{flexsurvreg}}. The ``custom distributions'' facility of \code{\link{flexsurvreg}} expects the user-supplied probability density and distribution functions to have one explicitly named argument for each scalar parameter, and given R vectorisation, each of those arguments could be supplied as a vector of alternative parameter values. However, spline models have a varying number of scalar parameters, determined by the number of knots in the spline. \code{\link{dsurvspline}} and \code{\link{psurvspline}} have an argument called \code{gamma}. This can be supplied as a matrix, with number of columns \code{n} determined by the number of knots (plus 2), and rows referring to alternative parameter values. The following statements are used in the source of \code{flexsurvspline}: \preformatted{ dfn <- unroll.function(dsurvspline, gamma=0:(nk-1)) pfn <- unroll.function(psurvspline, gamma=0:(nk-1)) } to convert these into functions with arguments \code{gamma0}, \code{gamma1},\ldots{},\code{gamman}, corresponding to the columns of \code{gamma}, where \code{n = nk-1}, and with other arguments in the same format. } \examples{ fn <- unroll.function(ncol, x=1:3) fn(1:3, 1:3, 1:3) # equivalent to... ncol(cbind(1:3,1:3,1:3)) } \seealso{ \code{\link{flexsurvspline}},\code{\link{flexsurvreg}} } \author{ Christopher Jackson } flexsurv/man/hr_flexsurvreg.Rd0000644000176200001440000000560014366167215016253 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/hr_flexsurvreg.R \name{hr_flexsurvreg} \alias{hr_flexsurvreg} \title{Hazard ratio as a function of time from a parametric survival model} \usage{ hr_flexsurvreg( x, newdata = NULL, t = NULL, start = 0, ci = TRUE, B = 1000, cl = 0.95, na.action = na.pass ) } \arguments{ \item{x}{Object returned by \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}.} \item{newdata}{A data frame with two rows, each specifying a set of covariate values. The hazard ratio is calculated as hazard(z2)/hazard(z1), where z1 is the first row of \code{newdata} and z2 is the second row. \code{newdata} must be supplied unless the model \code{x} includes just one covariate. With one covariate, a default is constructed, which defines the hazard ratio between the second and first level of the factor (if the covariate is a factor), or between a value of 1 and a value of 0 (if the covariate is numeric).} \item{t}{Times to calculate fitted values for. By default, these are the sorted unique observation (including censoring) times in the data - for left-truncated datasets these are the "stop" times.} \item{start}{Optional left-truncation time or times. The returned survival, hazard or cumulative hazard will be conditioned on survival up to this time. Predicted times returned with \code{"rmst"}, \code{"mean"}, \code{"median"} or \code{"quantile"} will be times since time zero, not times since the \code{start} time. A vector of the same length as \code{t} can be supplied to allow different truncation times for each prediction time, though this doesn't make sense in the usual case where this function is used to calculate a predicted trajectory for a single individual. This is why the default \code{start} time was changed for version 0.4 of \pkg{flexsurv} - this was previously a vector of the start times observed in the data.} \item{ci}{Set to \code{FALSE} to omit confidence intervals.} \item{B}{Number of simulations from the normal asymptotic distribution of the estimates used to calculate confidence intervals or standard errors. Decrease for greater speed at the expense of accuracy, or set \code{B=0} to turn off calculation of CIs and SEs.} \item{cl}{Width of symmetric confidence intervals, relative to 1.} \item{na.action}{Function determining what should be done with missing values in \code{newdata}. If \code{na.pass} (the default) then summaries of \code{NA} are produced for missing covariate values. If \code{na.omit}, then missing values are dropped, the behaviour of \code{summary.flexsurvreg} before \code{flexsurv} version 1.2.} } \value{ A data frame with estimate and confidence limits for the hazard ratio, and one row for each of the times requested in \code{t}. } \description{ Hazard ratio as a function of time from a parametric survival model } flexsurv/man/AICc.flexsurvreg.Rd0000644000176200001440000000306114470703452016312 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{AICc.flexsurvreg} \alias{AICc.flexsurvreg} \alias{AICC.flexsurvreg} \title{Second-order Akaike information criterion} \usage{ \method{AICc}{flexsurvreg}(object, cens = TRUE, ...) \method{AICC}{flexsurvreg}(object, cens = TRUE, ...) } \arguments{ \item{object}{Fitted model returned by \code{\link{flexsurvreg}} (or \code{\link{flexsurvspline}}).} \item{cens}{Include censored observations in the sample size term (\code{n}) used in this calculation. See \code{\link{BIC.flexsurvreg}} for a discussion of the issues with defining the sample size.} \item{...}{Other arguments (currently unused).} } \value{ The second-order AIC of the fitted model. } \description{ Second-order or "corrected" Akaike information criterion, often known as AICc (see, e.g. Burnham and Anderson 2002). This is defined as -2 log-likelihood + \code{(2*p*n)/(n - p -1)}, whereas the standard AIC is defined as -2 log-likelihood + \code{2*p}, where \code{p} is the number of parameters and \code{n} is the sample size. The correction is intended to adjust AIC for small-sample bias, hence it only makes a difference to the result for small \code{n}. } \details{ This can be spelt either as \code{AICC} or \code{AICc}. } \references{ Burnham, K. P., Anderson, D. R. (2002) Model Selection and Multimodel Inference: a practical information-theoretic approach. Second edition. Springer: New York. } \seealso{ \code{\link{BIC}}, \code{\link{AIC}}, \code{\link{BIC.flexsurvreg}}, \code{\link{nobs.flexsurvreg}} } flexsurv/man/coxsnell_flexsurvreg.Rd0000644000176200001440000000267114335160720017464 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/residuals.flexsurvreg.R \name{coxsnell_flexsurvreg} \alias{coxsnell_flexsurvreg} \title{Cox-Snell residuals from a parametric survival model} \usage{ coxsnell_flexsurvreg(x) } \arguments{ \item{x}{Object returned by \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}} representing a fitted survival model} } \value{ A data frame with a column called \code{est} giving the Cox-Snell residual, defined as the fitted cumulative hazard at each data point. fitted cumulative hazard at the given observed data point, and other columns indicating the observation time, observed event status, and covariate values defining the data at this point. The cumulative hazards \code{est} should form a censored sample from an Exponential(1). Therefore to check the fit of the model, plot a nonparametric estimate of the cumulative hazard curve against a diagonal line through the origin, which is the theoretical cumulative hazard trajectory of the Exponential(1). } \description{ Cox-Snell residuals from a parametric survival model } \examples{ fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") cs <- coxsnell_flexsurvreg(fitg) ## Model appears to fit well, with some small sample noise surv <- survfit(Surv(cs$est, ovarian$fustat) ~ 1) plot(surv, fun="cumhaz") abline(0, 1, col="red") } flexsurv/man/flexsurvmix.Rd0000644000176200001440000003462414644755662015622 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvmix.R \name{flexsurvmix} \alias{flexsurvmix} \title{Flexible parametric mixture models for times to competing events} \usage{ flexsurvmix( formula, data, event, dists, pformula = NULL, anc = NULL, partial_events = NULL, initp = NULL, inits = NULL, fixedpars = NULL, dfns = NULL, method = "direct", em.control = NULL, optim.control = NULL, aux = NULL, sr.control = survreg.control(), integ.opts, hess.control = NULL, ... ) } \arguments{ \item{formula}{Survival model formula. The left hand side is a \code{Surv} object specified as in \code{\link{flexsurvreg}}. This may define various kinds of censoring, as described in \code{\link[survival]{Surv}}. Any covariates on the right hand side of this formula will be placed on the location parameter for every component-specific distribution. Covariates on other parameters of the component-specific distributions may be supplied using the \code{anc} argument. Alternatively, \code{formula} may be a list of formulae, with one component for each alternative event. This may be used to specify different covariates on the location parameter for different components. A list of formulae may also be used to indicate that for particular individuals, different events may be observed in different ways, with different censoring mechanisms. Each list component specifies the data and censoring scheme for that mixture component. For example, suppose we are studying people admitted to hospital,and the competing states are death in hospital and discharge from hospital. At time t we know that a particular individual is still alive, but we do not know whether they are still in hospital, or have been discharged. In this case, if the individual were to die in hospital, their death time would be right censored at t. If the individual will be (or has been) discharged before death, their discharge time is completely unknown, thus interval-censored on (0,Inf). Therefore, we need to store different event time and status variables in the data for different alternative events. This is specified here as \code{formula = list("discharge" = Surv(t1di, t2di, type="interval2"), "death" = Surv(t1de, status_de))} where for this individual, \code{(t1di, t2di) = (0, Inf)} and \code{(t1de, status_de) = (t, 0)}. The "dot" notation commonly used to indicate "all remaining variables" in a formula is not supported in \code{flexsurvmix}.} \item{data}{Data frame containing variables mentioned in \code{formula}, \code{event} and \code{anc}.} \item{event}{Variable in the data that specifies which of the alternative events is observed for which individual. If the individual's follow-up is right-censored, or if the event is otherwise unknown, this variable must have the value \code{NA}. Ideally this should be a factor, since the mixture components can then be easily identified in the results with a name instead of a number. If this is not already a factor, it is coerced to one. Then the levels of the factor define the required order for the components of the list arguments \code{dists}, \code{anc}, \code{inits} and \code{dfns}. Alternatively, if the components of the list arguments are named according to the levels of \code{event}, then the components can be arranged in any order.} \item{dists}{Vector specifying the parametric distribution to use for each component. The same distributions are supported as in \code{\link{flexsurvreg}}.} \item{pformula}{Formula describing covariates to include on the component membership proabilities by multinomial logistic regression. The first component is treated as the baseline. The "dot" notation commonly used to indicate "all remaining variables" in a formula is not supported.} \item{anc}{List of component-specific lists, of length equal to the number of components. Each component-specific list is a list of formulae representing covariate effects on parameters of the distribution. If there are covariates for one component but not others, then a list containing one null formula on the location parameter should be supplied for the component with no covariates, e.g \code{list(rate=~1)} if the location parameter is called \code{rate}. Covariates on the location parameter may also be supplied here instead of in \code{formula}. Supplying them in \code{anc} allows some components but not others to have covariates on their location parameter. If a covariate on the location parameter was provided in \code{formula}, and there are covariates on other parameters, then a null formula should be included for the location parameter in \code{anc}, e.g \code{list(rate=~1)}} \item{partial_events}{List specifying the factor levels of \code{event} which indicate knowledge that an individual will not experience particular events, but may experience others. The names of the list indicate codes that indicate partial knowledge for some individuals. The list component is a vector, which must be a subset of \code{levels(event)} defining the events that a person with the corresponding event code may experience. For example, suppose there are three alternative events called \code{"disease1"},\code{"disease2"} and \code{"disease3"}, and for some individuals we know that they will not experience \code{"disease2"}, but they may experience the other two events. In that case we must create a new factor level, called, for example \code{"disease1or3"}, and set the value of \code{event} to be \code{"disease1or3"} for those individuals. Then we use the \code{"partial_events"} argument to tell \code{flexsurvmix} what the potential events are for individuals with this new factor level. \code{partial_events = list("disease1or3" = c("disease1","disease3"))}} \item{initp}{Initial values for component membership probabilities. By default, these are assumed to be equal for each component.} \item{inits}{List of component-specific vectors. Each component-specific vector contains the initial values for the parameters of the component-specific model, as would be supplied as the \code{inits} argument of \code{\link{flexsurvreg}}. By default, a heuristic is used to obtain initial values, which depends on the parametric distribution being used, but is usually based on the empirical mean and/or variance of the survival times.} \item{fixedpars}{Indexes of parameters to fix at their initial values and not optimise. Arranged in the order: baseline mixing probabilities, covariates on mixing probabilities, time-to-event parameters by mixing component. Within mixing components, time-to-event parameters are ordered in the same way as in \code{\link{flexsurvreg}}. If \code{fixedpars=TRUE} then all parameters will be fixed and the function simply calculates the log-likelihood at the initial values. Not currently supported when using the EM algorithm.} \item{dfns}{List of lists of user-defined distribution functions, one for each mixture component. Each list component is specified as the \code{dfns} argument of \code{\link{flexsurvreg}}.} \item{method}{Method for maximising the likelihood. Either \code{"em"} for the EM algorithm, or \code{"direct"} for direct maximisation.} \item{em.control}{List of settings to control EM algorithm fitting. The only options currently available are \code{trace} set to 1 to print the parameter estimates at each iteration of the EM algorithm \code{reltol} convergence criterion. The algorithm stops if the log likelihood changes by a relative amount less than \code{reltol}. The default is the same as in \code{\link{optim}}, that is, \code{sqrt(.Machine$double.eps)}. \code{var.method} method to compute the covariance matrix. \code{"louis"} for the method of Louis (1982), or \code{"direct"}for direct numerical calculation of the Hessian of the log likelihood. \code{optim.p.control} A list that is passed as the \code{control} argument to \code{optim} in the M step for the component membership probability parameters. The optimisation in the M step for the time-to-event parameters can be controlled by the \code{optim.control} argument to \code{flexsurvmix}. For example, \code{em.control = list(trace=1, reltol=1e-12)}.} \item{optim.control}{List of options to pass as the \code{control} argument to \code{\link{optim}}, which is used by \code{method="direct"} or in the M step for the time-to-event parameters in \code{method="em"}. By default, this uses \code{fnscale=10000} and \code{ndeps=rep(1e-06,p)} where \code{p} is the number of parameters being estimated, unless the user specifies these options explicitly.} \item{aux}{A named list of other arguments to pass to custom distribution functions. This is used, for example, by \code{\link{flexsurvspline}} to supply the knot locations and modelling scale (e.g. hazard or odds). This cannot be used to fix parameters of a distribution --- use \code{fixedpars} for that.} \item{sr.control}{For the models which use \code{\link[survival]{survreg}} to find the maximum likelihood estimates (Weibull, exponential, log-normal), this list is passed as the \code{control} argument to \code{\link[survival]{survreg}}.} \item{integ.opts}{List of named arguments to pass to \code{\link{integrate}}, if a custom density or hazard is provided without its cumulative version. For example, \code{integ.opts = list(rel.tol=1e-12)}} \item{hess.control}{List of options to control covariance matrix computation. Available options are: \code{numeric}. If \code{TRUE} then numerical methods are used to compute the Hessian for models where an analytic Hessian is available. These models include the Weibull (both versions), exponential, Gompertz and spline models with hazard or odds scale. The default is to use the analytic Hessian for these models. For all other models, numerical methods are always used to compute the Hessian, whether or not this option is set. \code{tol.solve}. The tolerance used for \code{\link{solve}} when inverting the Hessian (default \code{.Machine$double.eps}) \code{tol.evalues} The accepted tolerance for negative eigenvalues in the covariance matrix (default \code{1e-05}). The Hessian is positive definite, thus invertible, at the maximum likelihood. If the Hessian computed after optimisation convergence can't be inverted, this is either because the converged result is not the maximum likelihood (e.g. it could be a "saddle point"), or because the numerical methods used to obtain the Hessian were inaccurate. If you suspect that the Hessian was computed wrongly enough that it is not invertible, but not wrongly enough that the nearest valid inverse would be an inaccurate estimate of the covariance matrix, then these tolerance values can be modified (reducing \code{tol.solve} or increasing \code{tol.evalues}) to allow the inverse to be computed.} \item{...}{Optional arguments to the general-purpose optimisation routine \code{\link{optim}}. For example, the BFGS optimisation algorithm is the default in \code{\link{flexsurvreg}}, but this can be changed, for example to \code{method="Nelder-Mead"} which can be more robust to poor initial values. If the optimisation fails to converge, consider normalising the problem using, for example, \code{control=list(fnscale = 2500)}, for example, replacing 2500 by a number of the order of magnitude of the likelihood. If 'false' convergence is reported with a non-positive-definite Hessian, then consider tightening the tolerance criteria for convergence. If the optimisation takes a long time, intermediate steps can be printed using the \code{trace} argument of the control list. See \code{\link{optim}} for details.} } \value{ List of objects containing information about the fitted model. The important one is \code{res}, a data frame containing the parameter estimates and associated information. } \description{ In a mixture model for competing events, an individual can experience one of a set of different events. We specify a model for the probability that they will experience each event before the others, and a model for the time to the event conditionally on that event occurring first. } \details{ This differs from the more usual "competing risks" models, where we specify "cause-specific hazards" describing the time to each competing event. This time will not be observed for an individual if one of the competing events happens first. The event that happens first is defined by the minimum of the times to the alternative events. The \code{flexsurvmix} function fits a mixture model to data consisting of a single time to an event for each individual, and an indicator for what type of event occurs for that individual. The time to event may be observed or censored, just as in \code{\link{flexsurvreg}}, and the type of event may be known or unknown. In a typical application, where we follow up a set of individuals until they experience an event or a maximum follow-up time is reached, the event type is known if the time is observed, and the event type is unknown when follow-up ends and the time is right-censored. The model is fitted by maximum likelihood, either directly or by using an expectation-maximisation (EM) algorithm, by wrapping \code{\link{flexsurvreg}} to compute the likelihood or to implement the E and M steps. Some worked examples are given in the package vignette about multi-state modelling, which can be viewed by running \code{vignette("multistate", package="flexsurv")}. } \references{ Jackson, C. H. and Tom, B. D. M. and Kirwan, P. D. and Mandal, S. and Seaman, S. R. and Kunzmann, K. and Presanis, A. M. and De Angelis, D. (2022) A comparison of two frameworks for multi-state modelling, applied to outcomes after hospital admissions with COVID-19. Statistical Methods in Medical Research 31(9) 1656-1674. Larson, M. G., & Dinse, G. E. (1985). A mixture model for the regression analysis of competing risks data. Journal of the Royal Statistical Society: Series C (Applied Statistics), 34(3), 201-211. Lau, B., Cole, S. R., & Gange, S. J. (2009). Competing risk regression models for epidemiologic data. American Journal of Epidemiology, 170(2), 244-256. } flexsurv/man/summary.flexsurvrtrunc.Rd0000644000176200001440000000463314165570616020023 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvrtrunc.R \name{summary.flexsurvrtrunc} \alias{summary.flexsurvrtrunc} \title{Summarise quantities of interest from fitted flexsurvrtrunc models} \usage{ \method{summary}{flexsurvrtrunc}( object, type = "survival", fn = NULL, t = NULL, quantiles = 0.5, ci = TRUE, se = FALSE, B = 1000, cl = 0.95, ... ) } \arguments{ \item{object}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{type}{\code{"survival"} for survival probabilities. \code{"cumhaz"} for cumulative hazards. \code{"hazard"} for hazards. \code{"rmst"} for restricted mean survival. \code{"mean"} for mean survival. \code{"median"} for median survival (alternative to \code{type="quantile"} with \code{quantiles=0.5}). \code{"quantile"} for quantiles of the survival time distribution. Ignored if \code{"fn"} is specified.} \item{fn}{Custom function of the parameters to summarise against time. This has optional first argument \code{t} representing time, and any remaining arguments must be parameters of the distribution. It should return a vector of the same length as \code{t}.} \item{t}{Times to calculate fitted values for. By default, these are the sorted unique observation (including censoring) times in the data - for left-truncated datasets these are the "stop" times.} \item{quantiles}{If \code{type="quantile"}, this specifies the quantiles of the survival time distribution to return estimates for.} \item{ci}{Set to \code{FALSE} to omit confidence intervals.} \item{se}{Set to \code{TRUE} to include standard errors.} \item{B}{Number of simulations from the normal asymptotic distribution of the estimates used to calculate confidence intervals or standard errors. Decrease for greater speed at the expense of accuracy, or set \code{B=0} to turn off calculation of CIs and SEs.} \item{cl}{Width of symmetric confidence intervals, relative to 1.} \item{...}{Further arguments passed to or from other methods. Currently unused.} } \description{ This function extracts quantities of interest from the untruncated version of a model with individual-specific right truncation points fitted by \code{\link{flexsurvrtrunc}}. Note that covariates are currently not supported by \code{\link{flexsurvrtrunc}}. } flexsurv/man/qgeneric.Rd0000644000176200001440000000523114165570616015003 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{qgeneric} \alias{qgeneric} \title{Generic function to find quantiles of a distribution} \usage{ qgeneric(pdist, p, matargs = NULL, scalarargs = NULL, ...) } \arguments{ \item{pdist}{Probability distribution function, for example, \code{\link{pnorm}} for the normal distribution, which must be defined in the current workspace. This should accept and return vectorised parameters and values. It should also return the correct values for the entire real line, for example a positive distribution should have \code{pdist(x)==0} for \eqn{x<0}.} \item{p}{Vector of probabilities to find the quantiles for.} \item{matargs}{Character vector giving the elements of \code{...} which represent vector parameters of the distribution. Empty by default. When vectorised, these will become matrices. This is used for the arguments \code{gamma} and \code{knots} in \code{\link{qsurvspline}}.} \item{scalarargs}{Character vector naming scalar arguments of the distribution function that cannot be vectorised. This is used for the arguments \code{scale} and \code{timescale} in \code{\link{qsurvspline}}.} \item{...}{The remaining arguments define parameters of the distribution \code{pdist}. These MUST be named explicitly. This may also contain the standard arguments \code{log.p} (logical; default \code{FALSE}, if \code{TRUE}, probabilities p are given as log(p)), and \code{lower.tail} (logical; if \code{TRUE} (default), probabilities are P[X <= x] otherwise, P[X > x].). If the distribution is bounded above or below, then this should contain arguments \code{lbound} and \code{ubound} respectively, and these will be returned if \code{p} is 0 or 1 respectively. Defaults to \code{-Inf} and \code{Inf} respectively.} } \value{ Vector of quantiles of the distribution at \code{p}. } \description{ Generic function to find the quantiles of a distribution, given the equivalent probability distribution function. } \details{ This function is used by default for custom distributions for which a quantile function is not provided. It works by finding the root of the equation \eqn{h(q) = pdist(q) - p = 0}. Starting from the interval \eqn{(-1, 1)}, the interval width is expanded by 50\% until \eqn{h()} is of opposite sign at either end. The root is then found using \code{\link{uniroot}}. This assumes a suitably smooth, continuous distribution. } \examples{ qnorm(c(0.025, 0.975), 0, 1) qgeneric(pnorm, c(0.025, 0.975), mean=0, sd=1) # must name the arguments } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/lines.flexsurvreg.Rd0000644000176200001440000000435014165570616016674 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot.flexsurvreg.R \name{lines.flexsurvreg} \alias{lines.flexsurvreg} \title{Add fitted flexible survival curves to a plot} \usage{ \method{lines}{flexsurvreg}( x, newdata = NULL, X = NULL, type = "survival", t = NULL, est = TRUE, ci = NULL, B = 1000, cl = 0.95, col = "red", lty = 1, lwd = 2, col.ci = NULL, lty.ci = 2, lwd.ci = 1, ... ) } \arguments{ \item{x}{Output from \code{\link{flexsurvreg}}, representing a fitted survival model object.} \item{newdata}{Covariate values to produce fitted curves for, as a data frame, as described in \code{\link{plot.flexsurvreg}}.} \item{X}{Covariate values to produce fitted curves for, as a matrix, as described in \code{\link{plot.flexsurvreg}}.} \item{type}{\code{"survival"} for survival, \code{"cumhaz"} for cumulative hazard, or \code{"hazard"} for hazard, as in \code{\link{plot.flexsurvreg}}.} \item{t}{Vector of times to plot fitted values for.} \item{est}{Plot fitted curves (\code{TRUE} or \code{FALSE}.)} \item{ci}{Plot confidence intervals for fitted curves.} \item{B}{Number of simulations controlling accuracy of confidence intervals, as used in \code{\link[=summary.flexsurvreg]{summary}}.} \item{cl}{Width of confidence intervals, by default 0.95 for 95\% intervals.} \item{col}{Colour of the fitted curve(s).} \item{lty}{Line type of the fitted curve(s).} \item{lwd}{Line width of the fitted curve(s).} \item{col.ci}{Colour of the confidence limits, defaulting to the same as for the fitted curve.} \item{lty.ci}{Line type of the confidence limits.} \item{lwd.ci}{Line width of the confidence limits, defaulting to the same as for the fitted curve.} \item{...}{Other arguments to be passed to the generic \code{\link{plot}} and \code{\link{lines}} functions.} } \description{ Add fitted survival (or hazard or cumulative hazard) curves from a \code{\link{flexsurvreg}} model fit to an existing plot. } \details{ Equivalent to \code{\link{plot.flexsurvreg}(...,add=TRUE)}. } \seealso{ \code{\link{flexsurvreg}} } \author{ C. H. Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{aplot} \keyword{models} flexsurv/man/pmatrix.fs.Rd0000644000176200001440000001354514644755663015321 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{pmatrix.fs} \alias{pmatrix.fs} \title{Transition probability matrix from a fully-parametric, time-inhomogeneous Markov multi-state model} \usage{ pmatrix.fs( x, trans = NULL, t = 1, newdata = NULL, condstates = NULL, ci = FALSE, tvar = "trans", sing.inf = 1e+10, B = 1000, cl = 0.95, tidy = FALSE, ... ) } \arguments{ \item{x}{A model fitted with \code{\link{flexsurvreg}}. See \code{\link{msfit.flexsurvreg}} for the required form of the model and the data. Additionally, this must be a Markov / clock-forward model, but can be time-inhomogeneous. See the package vignette for further explanation. \code{x} can also be a list of models, with one component for each permitted transition, as illustrated in \code{\link{msfit.flexsurvreg}}.} \item{trans}{Matrix indicating allowed transitions. See \code{\link{msfit.flexsurvreg}}.} \item{t}{Time or vector of times to predict state occupancy probabilities for.} \item{newdata}{A data frame specifying the values of covariates in the fitted model, other than the transition number. See \code{\link{msfit.flexsurvreg}}.} \item{condstates}{xInstead of the unconditional probability of being in state \eqn{s} at time \eqn{t} given state \eqn{r} at time 0, return the probability conditional on being in a particular subset of states at time \eqn{t}. This subset is specified in the \code{condstates} argument, as a vector of character labels or integers. This is used, for example, in competing risks situations, e.g. if the competing states are death or recovery from a disease, and we want to compute the probability a patient has died, given they have died or recovered. If these are absorbing states, then as \eqn{t} increases, this converges to the case fatality ratio. To compute this, set \eqn{t} to a very large number, \code{Inf} will not work.} \item{ci}{Return a confidence interval calculated by simulating from the asymptotic normal distribution of the maximum likelihood estimates. Turned off by default, since this is computationally intensive. If turned on, users should increase \code{B} until the results reach the desired precision.} \item{tvar}{Variable in the data representing the transition type. Not required if \code{x} is a list of models.} \item{sing.inf}{If there is a singularity in the observed hazard, for example a Weibull distribution with \code{shape < 1} has infinite hazard at \code{t=0}, then as a workaround, the hazard is assumed to be a large finite number, \code{sing.inf}, at this time. The results should not be sensitive to the exact value assumed, but users should make sure by adjusting this parameter in these cases.} \item{B}{Number of simulations from the normal asymptotic distribution used to calculate variances. Decrease for greater speed at the expense of accuracy.} \item{cl}{Width of symmetric confidence intervals, relative to 1.} \item{tidy}{If TRUE then return the results as a tidy data frame} \item{...}{Arguments passed to \code{\link[deSolve]{ode}} in \pkg{deSolve}.} } \value{ The transition probability matrix, if \code{t} is of length 1. If \code{t} is longer, return a list of matrices, or a data frame if \code{tidy} is TRUE. If \code{ci=TRUE}, each element has attributes \code{"lower"} and \code{"upper"} giving matrices of the corresponding confidence limits. These are formatted for printing but may be extracted using \code{attr()}. } \description{ The transition probability matrix for time-inhomogeneous Markov multi-state models fitted to time-to-event data with \code{\link{flexsurvreg}}. This has \eqn{r,s} entry giving the probability that an individual is in state \eqn{s} at time \eqn{t}, given they are in state \eqn{r} at time \eqn{0}. } \details{ This is computed by solving the Kolmogorov forward differential equation numerically, using the methods in the \pkg{deSolve} package. The equation is \deqn{\frac{dP(t)}{dt} = P(t) Q(t)} where \eqn{P(t)} is the transition probability matrix for time \eqn{t}, and \eqn{Q(t)} is the transition hazard or intensity as a function of \eqn{t}. The initial condition is \eqn{P(0) = I}. Note that the package \pkg{msm} has a similar method \code{pmatrix.msm}. \code{pmatrix.fs} should give the same results as \code{pmatrix.msm} when both of these conditions hold: \itemize{ \item the time-to-event distribution is exponential for all transitions, thus the \code{flexsurvreg} model was fitted with \code{dist="exp"} and the model is time-homogeneous. \item the \pkg{msm} model was fitted with \code{exacttimes=TRUE}, thus all the event times are known, and there are no time-dependent covariates. } \pkg{msm} only allows exponential or piecewise-exponential time-to-event distributions, while \pkg{flexsurvreg} allows more flexible models. \pkg{msm} however was designed in particular for panel data, where the process is observed only at arbitrary times, thus the times of transition are unknown, which makes flexible models difficult. This function is only valid for Markov ("clock-forward") multi-state models, though no warning or error is currently given if the model is not Markov. See \code{\link{pmatrix.simfs}} for the equivalent for semi-Markov ("clock-reset") models. } \examples{ # BOS example in vignette, and in msfit.flexsurvreg bexp <- flexsurvreg(Surv(Tstart, Tstop, status) ~ trans, data=bosms3, dist="exp") tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) # more likely to be dead (state 3) as time moves on, or if start with # BOS (state 2) pmatrix.fs(bexp, t=c(5,10), trans=tmat) } \seealso{ \code{\link{pmatrix.simfs}}, \code{\link{totlos.fs}}, \code{\link{msfit.flexsurvreg}}. } \author{ Christopher Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk}. } \keyword{models} \keyword{survival} flexsurv/man/vcov.flexsurvreg.Rd0000644000176200001440000000125214471101454016523 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{vcov.flexsurvreg} \alias{vcov.flexsurvreg} \title{Variance-covariance matrix from a flexsurvreg model} \usage{ \method{vcov}{flexsurvreg}(object, ...) } \arguments{ \item{object}{A fitted model object of class \code{\link{flexsurvreg}}, e.g. as returned by \code{flexsurvreg} or \code{flexsurvspline}.} \item{...}{Other arguments (currently unused).} } \value{ Variance-covariance matrix of the estimated parameters, on the scale that they were estimated on (for positive parameters this is the log scale). } \description{ Variance-covariance matrix from a flexsurvreg model } flexsurv/man/pmatrix.simfs.Rd0000644000176200001440000001222014523723770016005 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{pmatrix.simfs} \alias{pmatrix.simfs} \title{Transition probability matrix from a fully-parametric, semi-Markov multi-state model} \usage{ pmatrix.simfs( x, trans, t = 1, newdata = NULL, ci = FALSE, tvar = "trans", tcovs = NULL, M = 1e+05, B = 1000, cl = 0.95, cores = NULL, tidy = FALSE ) } \arguments{ \item{x}{A model fitted with \code{\link{flexsurvreg}}. See \code{\link{msfit.flexsurvreg}} for the required form of the model and the data. Additionally this should be semi-Markov, so that the time variable represents the time since the last transition. In other words the response should be of the form \code{Surv(time,status)}. See the package vignette for further explanation. \code{x} can also be a list of \code{\link{flexsurvreg}} models, with one component for each permitted transition, as illustrated in \code{\link{msfit.flexsurvreg}}. This can be constructed by \code{\link{fmsm}}.} \item{trans}{Matrix indicating allowed transitions. See \code{\link{msfit.flexsurvreg}}. This is not required if \code{x} is a list constructed by \code{\link{fmsm}}.} \item{t}{Time to predict state occupancy probabilities for. This can be a single number or a vector of different numbers.} \item{newdata}{A data frame specifying the values of covariates in the fitted model, other than the transition number. See \code{\link{msfit.flexsurvreg}}.} \item{ci}{Return a confidence interval calculated by simulating from the asymptotic normal distribution of the maximum likelihood estimates. This is turned off by default, since two levels of simulation are required. If turned on, users should adjust \code{B} and/or \code{M} until the results reach the desired precision. The simulation over \code{M} is generally vectorised, therefore increasing \code{B} is usually more expensive than increasing \code{M}.} \item{tvar}{Variable in the data representing the transition type. Not required if \code{x} is a list of models.} \item{tcovs}{Predictable time-dependent covariates such as age, see \code{\link{sim.fmsm}}.} \item{M}{Number of individuals to simulate in order to approximate the transition probabilities. Users should adjust this to obtain the required precision.} \item{B}{Number of simulations from the normal asymptotic distribution used to calculate confidence limits. Decrease for greater speed at the expense of accuracy.} \item{cl}{Width of symmetric confidence intervals, relative to 1.} \item{cores}{Number of processor cores used when calculating confidence limits by repeated simulation. The default uses single-core processing.} \item{tidy}{If \code{TRUE} then the results are returned as a tidy data frame with columns for the estimate and confidence limits, and rows per state transition and time interval.} } \value{ The transition probability matrix. If \code{ci=TRUE}, there are attributes \code{"lower"} and \code{"upper"} giving matrices of the corresponding confidence limits. These are formatted for printing but may be extracted using \code{attr()}. } \description{ The transition probability matrix for semi-Markov multi-state models fitted to time-to-event data with \code{\link{flexsurvreg}}. This has \eqn{r,s} entry giving the probability that an individual is in state \eqn{s} at time \eqn{t}, given they are in state \eqn{r} at time \eqn{0}. } \details{ This is computed by simulating a large number of individuals \code{M} using the maximum likelihood estimates of the fitted model and the function \code{\link{sim.fmsm}}. Therefore this requires a random sampling function for the parametric survival model to be available: see the "Details" section of \code{\link{sim.fmsm}}. This will be available for all built-in distributions, though users may need to write this for custom models. Note the random sampling method for \code{flexsurvspline} models is currently very inefficient, so that looping over the \code{M} individuals will be very slow. \code{\link{pmatrix.fs}} is a more efficient method based on solving the Kolmogorov forward equation numerically, which requires the multi-state model to be Markov. No error or warning is given if running \code{\link{pmatrix.simfs}} with a Markov model, but this is still invalid. } \examples{ # BOS example in vignette, and in msfit.flexsurvreg bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp") tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) # more likely to be dead (state 3) as time moves on, or if start with # BOS (state 2) pmatrix.simfs(bexp, t=5, trans=tmat) pmatrix.simfs(bexp, t=10, trans=tmat) # these results should converge to those in help(pmatrix.fs), as M # increases here and ODE solving precision increases there, since with # an exponential distribution, the semi-Markov model is the same as the # Markov model. } \seealso{ \code{\link{pmatrix.fs}},\code{\link{sim.fmsm}},\code{\link{totlos.simfs}}, \code{\link{msfit.flexsurvreg}}. } \author{ Christopher Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk}. } \keyword{models} \keyword{survival} flexsurv/man/reexports.Rd0000644000176200001440000000077714165570616015253 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/broom-funs.R \docType{import} \name{reexports} \alias{reexports} \alias{tidy} \alias{glance} \alias{augment} \title{Objects exported from other packages} \keyword{internal} \description{ These objects are imported from other packages. Follow the links below to see their documentation. \describe{ \item{generics}{\code{\link[generics]{augment}}, \code{\link[generics]{glance}}, \code{\link[generics]{tidy}}} }} flexsurv/man/WeibullPH.Rd0000644000176200001440000000556614171772374015056 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/WeibullPH.R \name{WeibullPH} \alias{WeibullPH} \alias{dweibullPH} \alias{pweibullPH} \alias{qweibullPH} \alias{rweibullPH} \alias{HweibullPH} \alias{hweibullPH} \title{Weibull distribution in proportional hazards parameterisation} \usage{ dweibullPH(x, shape, scale = 1, log = FALSE) pweibullPH(q, shape, scale = 1, lower.tail = TRUE, log.p = FALSE) qweibullPH(p, shape, scale = 1, lower.tail = TRUE, log.p = FALSE) hweibullPH(x, shape, scale = 1, log = FALSE) HweibullPH(x, shape, scale = 1, log = FALSE) rweibullPH(n, shape, scale = 1) } \arguments{ \item{x, q}{Vector of quantiles.} \item{shape}{Vector of shape parameters.} \item{scale}{Vector of scale parameters.} \item{log, log.p}{logical; if TRUE, probabilities p are given as log(p).} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{Vector of probabilities.} \item{n}{number of observations. If \code{length(n) > 1}, the length is taken to be the number required.} } \value{ \code{dweibullPH} gives the density, \code{pweibullPH} gives the distribution function, \code{qweibullPH} gives the quantile function, \code{rweibullPH} generates random deviates, \code{HweibullPH} retuns the cumulative hazard and \code{hweibullPH} the hazard. } \description{ Density, distribution function, hazards, quantile function and random generation for the Weibull distribution in its proportional hazards parameterisation. } \details{ The Weibull distribution in proportional hazards parameterisation with `shape' parameter a and `scale' parameter m has density given by \deqn{f(x) = a m x^{a-1} exp(- m x^a) } cumulative distribution function \eqn{F(x) = 1 - exp( -m x^a )}, survivor function \eqn{S(x) = exp( -m x^a )}, cumulative hazard \eqn{m x^a} and hazard \eqn{a m x^{a-1}}. \code{\link{dweibull}} in base R has the alternative 'accelerated failure time' (AFT) parameterisation with shape a and scale b. The shape parameter \eqn{a} is the same in both versions. The scale parameters are related as \eqn{b = m^{-1/a}}, equivalently m = b^-a. In survival modelling, covariates are typically included through a linear model on the log scale parameter. Thus, in the proportional hazards model, the coefficients in such a model on \eqn{m} are interpreted as log hazard ratios. In the AFT model, covariates on \eqn{b} are interpreted as time acceleration factors. For example, doubling the value of a covariate with coefficient \eqn{beta=log(2)} would give half the expected survival time. These coefficients are related to the log hazard ratios \eqn{\gamma} as \eqn{\beta = -\gamma / a}. } \seealso{ \code{\link{dweibull}} } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/totlos.simfs.Rd0000644000176200001440000001143414523723770015653 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{totlos.simfs} \alias{totlos.simfs} \title{Expected total length of stay in specific states, from a fully-parametric, semi-Markov multi-state model} \usage{ totlos.simfs( x, trans, t = 1, start = 1, newdata = NULL, ci = FALSE, tvar = "trans", tcovs = NULL, group = NULL, M = 1e+05, B = 1000, cl = 0.95, cores = NULL ) } \arguments{ \item{x}{A model fitted with \code{\link{flexsurvreg}}. See \code{\link{msfit.flexsurvreg}} for the required form of the model and the data. Additionally this should be semi-Markov, so that the time variable represents the time since the last transition. In other words the response should be of the form \code{Surv(time,status)}. See the package vignette for further explanation. \code{x} can also be a list of \code{\link{flexsurvreg}} models, with one component for each permitted transition, as illustrated in \code{\link{msfit.flexsurvreg}}. This can be constructed by \code{\link{fmsm}}.} \item{trans}{Matrix indicating allowed transitions. See \code{\link{msfit.flexsurvreg}}. This is not required if \code{x} is a list constructed by \code{\link{fmsm}}.} \item{t}{Maximum time to predict to.} \item{start}{Starting state.} \item{newdata}{A data frame specifying the values of covariates in the fitted model, other than the transition number. See \code{\link{msfit.flexsurvreg}}.} \item{ci}{Return a confidence interval calculated by simulating from the asymptotic normal distribution of the maximum likelihood estimates. This is turned off by default, since two levels of simulation are required. If turned on, users should adjust \code{B} and/or \code{M} until the results reach the desired precision. The simulation over \code{M} is generally vectorised, therefore increasing \code{B} is usually more expensive than increasing \code{M}.} \item{tvar}{Variable in the data representing the transition type. Not required if \code{x} is a list of models.} \item{tcovs}{Predictable time-dependent covariates such as age, see \code{\link{sim.fmsm}}.} \item{group}{Optional grouping for the states. For example, if there are four states, and \code{group=c(1,1,2,2)}, then \code{\link{totlos.simfs}} returns the expected total time in states 1 and 2 combined, and states 3 and 4 combined.} \item{M}{Number of individuals to simulate in order to approximate the transition probabilities. Users should adjust this to obtain the required precision.} \item{B}{Number of simulations from the normal asymptotic distribution used to calculate confidence limits. Decrease for greater speed at the expense of accuracy.} \item{cl}{Width of symmetric confidence intervals, relative to 1.} \item{cores}{Number of processor cores used when calculating confidence limits by repeated simulation. The default uses single-core processing.} } \value{ The expected total time spent in each state (or group of states given by \code{group}) up to time \code{t}, and corresponding confidence intervals if requested. } \description{ The expected total time spent in each state for semi-Markov multi-state models fitted to time-to-event data with \code{\link{flexsurvreg}}. This is defined by the integral of the transition probability matrix, though this is not analytically possible and is computed by simulation. } \details{ This is computed by simulating a large number of individuals \code{M} using the maximum likelihood estimates of the fitted model and the function \code{\link{sim.fmsm}}. Therefore this requires a random sampling function for the parametric survival model to be available: see the "Details" section of \code{\link{sim.fmsm}}. This will be available for all built-in distributions, though users may need to write this for custom models. Note the random sampling method for \code{flexsurvspline} models is currently very inefficient, so that looping over \code{M} will be very slow. The equivalent function for time-inhomogeneous Markov models is \code{\link{totlos.fs}}. Note neither of these functions give errors or warnings if used with the wrong type of model, but the results will be invalid. } \examples{ # BOS example in vignette, and in msfit.flexsurvreg bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp") tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) # predict 4 years spent without BOS, 3 years with BOS, before death # As t increases, this should converge totlos.simfs(bexp, t=10, trans=tmat) totlos.simfs(bexp, t=1000, trans=tmat) } \seealso{ \code{\link{pmatrix.simfs}},\code{\link{sim.fmsm}},\code{\link{msfit.flexsurvreg}}. } \author{ Christopher Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk}. } \keyword{models} \keyword{survival} flexsurv/man/plot_survtrunc.Rd0000644000176200001440000000125314644755665016332 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/survrtrunc.R \name{plot.survrtrunc} \alias{plot.survrtrunc} \alias{lines.survrtrunc} \title{Plot nonparametric estimates of survival from right-truncated data.} \usage{ \method{plot}{survrtrunc}(x, ...) \method{lines}{survrtrunc}(x, ...) } \arguments{ \item{x}{Object of class \code{"survrtrunc"} as returned by \code{\link{survrtrunc}}.} \item{...}{Other arguments to be passed to \code{\link[survival]{plot.survfit}} or \code{\link[survival]{lines.survfit}}.} } \description{ \code{plot.survrtrunc} creates a new plot, while \code{lines.survrtrunc} adds lines to an exising plot. } flexsurv/man/logLik.flexsurvreg.Rd0000644000176200001440000000133714471101454016773 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{logLik.flexsurvreg} \alias{logLik.flexsurvreg} \title{Log likelihood from a flexsurvreg model} \usage{ \method{logLik}{flexsurvreg}(object, ...) } \arguments{ \item{object}{A fitted model object of class \code{\link{flexsurvreg}}, e.g. as returned by \code{flexsurvreg} or \code{flexsurvspline}.} \item{...}{Other arguments (currently unused).} } \value{ Log-likelihood (numeric) with additional attributes \code{df} (degrees of freedom, or number of parameters that were estimated), and number of observations \code{nobs} (including observed events and censored observations). } \description{ Log likelihood from a flexsurvreg model } flexsurv/man/ajfit_fmsm.Rd0000644000176200001440000000316014476637567015342 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/ajfit.R \name{ajfit_fmsm} \alias{ajfit_fmsm} \title{Check the fit of Markov flexible parametric multi-state models against nonparametric estimates.} \usage{ ajfit_fmsm(x, maxt = NULL, newdata = NULL) } \arguments{ \item{x}{Object returned by \code{\link{fmsm}} representing a flexible parametric multi-state model. This must be Markov, rather than semi-Markov, and no check is performed for this. Note that all "competing risks" style models, with just one source state and multiple destination states, are Markov, so those are fine here.} \item{maxt}{Maximum time to compute parametric estimates to.} \item{newdata}{Data frame defining the subgroups to consider. This must have a column for each covariate in the model. If omitted, then all potential subgroups defined by combinations of factor covariates are included. Continuous covariates are not supported.} } \value{ Tidy data frame containing both Aalen-Johansen and parametric estimates of state occupancy over time, and by subgroup if subgroups are included. } \description{ Computes both parametric and comparable Aalen-Johansen nonparametric estimates from a flexible parametric multi-state model, and returns them together in a tidy data frame. Only models with no covariates, or only factor covariates, are supported. If there are factor covariates, then the nonparametric estimates are computed for subgroups defined by combinations of the covariates. Another restriction of this function is that all transitions must have the same covariates on them. } flexsurv/man/Survspline.Rd0000644000176200001440000001420114532367563015360 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/spline.R \name{Survspline} \alias{Survspline} \alias{dsurvspline} \alias{psurvspline} \alias{qsurvspline} \alias{rsurvspline} \alias{hsurvspline} \alias{Hsurvspline} \alias{mean_survspline} \alias{rmst_survspline} \title{Royston/Parmar spline survival distribution} \usage{ dsurvspline( x, gamma, beta = 0, X = 0, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", offset = 0, log = FALSE ) psurvspline( q, gamma, beta = 0, X = 0, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", offset = 0, lower.tail = TRUE, log.p = FALSE ) qsurvspline( p, gamma, beta = 0, X = 0, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", offset = 0, lower.tail = TRUE, log.p = FALSE ) rsurvspline( n, gamma, beta = 0, X = 0, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", offset = 0 ) Hsurvspline( x, gamma, beta = 0, X = 0, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", offset = 0 ) hsurvspline( x, gamma, beta = 0, X = 0, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", offset = 0 ) rmst_survspline( t, gamma, beta = 0, X = 0, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", offset = 0, start = 0 ) mean_survspline( gamma, beta = 0, X = 0, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", offset = 0 ) } \arguments{ \item{x, q, t}{Vector of times.} \item{gamma}{Parameters describing the baseline spline function, as described in \code{\link{flexsurvspline}}. This may be supplied as a vector with number of elements equal to the length of \code{knots}, in which case the parameters are common to all times. Alternatively a matrix may be supplied, with rows corresponding to different times, and columns corresponding to \code{knots}.} \item{beta}{Vector of covariate effects. Not supported and ignored since version 2.3, and this argument will be removed in 2.4.} \item{X}{Matrix of covariate values. Not supported and ignored since version 2.3, and this argument will be removed in 2.4.} \item{knots}{Locations of knots on the axis of log time, supplied in increasing order. Unlike in \code{\link{flexsurvspline}}, these include the two boundary knots. If there are no additional knots, the boundary locations are not used. If there are one or more additional knots, the boundary knots should be at or beyond the minimum and maximum values of the log times. In \code{\link{flexsurvspline}} these are exactly at the minimum and maximum values. This may in principle be supplied as a matrix, in the same way as for \code{gamma}, but in most applications the knots will be fixed.} \item{scale}{\code{"hazard"}, \code{"odds"}, or \code{"normal"}, as described in \code{\link{flexsurvspline}}. With the default of no knots in addition to the boundaries, this model reduces to the Weibull, log-logistic and log-normal respectively. The scale must be common to all times.} \item{timescale}{\code{"log"} or \code{"identity"} as described in \code{\link{flexsurvspline}}.} \item{spline}{\code{"rp"} to use the natural cubic spline basis described in Royston and Parmar. \code{"splines2ns"} to use the alternative natural cubic spline basis from the \code{splines2} package (Wang and Yan 2021), which may be better behaved due to the basis being orthogonal.} \item{offset}{An extra constant to add to the linear predictor \eqn{\eta}{eta}. Not supported and ignored since version 2.3, and this argument will be removed in 2.4.} \item{log, log.p}{Return log density or probability.} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{Vector of probabilities.} \item{n}{Number of random numbers to simulate.} \item{start}{Optional left-truncation time or times. The returned restricted mean survival will be conditioned on survival up to this time.} } \value{ \code{dsurvspline} gives the density, \code{psurvspline} gives the distribution function, \code{hsurvspline} gives the hazard and \code{Hsurvspline} gives the cumulative hazard, as described in \code{\link{flexsurvspline}}. \code{qsurvspline} gives the quantile function, which is computed by crude numerical inversion (using \code{\link{qgeneric}}). \code{rsurvspline} generates random survival times by using \code{qsurvspline} on a sample of uniform random numbers. Due to the numerical root-finding involved in \code{qsurvspline}, it is slow compared to typical random number generation functions. } \description{ Probability density, distribution, quantile, random generation, hazard, cumulative hazard, mean and restricted mean functions for the Royston/Parmar spline model. These functions have all parameters of the distribution collected together in a single argument \code{gamma}. For the equivalent functions with one argument per parameter, see \code{\link{Survsplinek}}. } \examples{ ## reduces to the weibull regscale <- 0.786; cf <- 1.82 a <- 1/regscale; b <- exp(cf) dweibull(1, shape=a, scale=b) dsurvspline(1, gamma=c(log(1 / b^a), a)) # should be the same ## reduces to the log-normal meanlog <- 1.52; sdlog <- 1.11 dlnorm(1, meanlog, sdlog) dsurvspline(1, gamma = c(-meanlog/sdlog, 1/sdlog), scale="normal") # should be the same } \references{ Royston, P. and Parmar, M. (2002). Flexible parametric proportional-hazards and proportional-odds models for censored survival data, with application to prognostic modelling and estimation of treatment effects. Statistics in Medicine 21(1):2175-2197. Wang W, Yan J (2021). Shape-Restricted Regression Splines with R Package splines2. Journal of Data Science, 19(3), 498-517. } \seealso{ \code{\link{flexsurvspline}}. } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/normboot.flexsurvreg.Rd0000644000176200001440000000624314366167215017424 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvreg.R \name{normboot.flexsurvreg} \alias{normboot.flexsurvreg} \title{Simulate from the asymptotic normal distribution of parameter estimates.} \usage{ normboot.flexsurvreg( x, B, newdata = NULL, X = NULL, transform = FALSE, raw = FALSE, tidy = FALSE, rawsim = NULL ) } \arguments{ \item{x}{A fitted model from \code{\link{flexsurvreg}} (or \code{\link{flexsurvspline}}).} \item{B}{Number of samples.} \item{newdata}{Data frame or list containing the covariate values to evaluate the parameters at. If there are covariates in the model, at least one of \code{newdata} or \code{X} must be supplied, unless \code{raw=TRUE}.} \item{X}{Alternative (less convenient) format for covariate values: a matrix with one row, with one column for each covariate or factor contrast. Formed from all the "model matrices", one for each named parameter of the distribution, with intercepts excluded, \code{cbind}ed together.} \item{transform}{\code{TRUE} if the results should be transformed to the real-line scale, typically by log if the parameter is defined as positive. The default \code{FALSE} returns parameters on the natural scale.} \item{raw}{Return samples of the baseline parameters and the covariate effects, rather than the default of adjusting the baseline parameters for covariates.} \item{tidy}{If \code{FALSE} (the default) then a list is returned. If \code{TRUE} a data frame is returned, consisting of the list elements \code{rbind}ed together, with integer variables labelling the covariate number and simulation replicate number.} \item{rawsim}{allows input of raw samples from a previous run of \code{normboot.flexsurvreg}. This is useful if running \code{normboot.flexsurvreg} multiple time on the same dataset but with counterfactual contrasts, e.g. treat =0 vs. treat =1. Used in \code{standsurv.flexsurvreg}.} } \value{ If \code{newdata} includes only one covariate combination, a matrix will be returned with \code{B} rows, and one column for each named parameter of the survival distribution. If more than one covariate combination is requested (e.g. \code{newdata} is a data frame with more than one row), then a list of matrices will be returned, one for each covariate combination. } \description{ Produce a matrix of alternative parameter estimates under sampling uncertainty, at covariate values supplied by the user. Used by \code{\link{summary.flexsurvreg}} for obtaining confidence intervals around functions of parameters. } \examples{ fite <- flexsurvreg(Surv(futime, fustat) ~ age, data = ovarian, dist="exp") normboot.flexsurvreg(fite, B=10, newdata=list(age=50)) normboot.flexsurvreg(fite, B=10, X=matrix(50,nrow=1)) normboot.flexsurvreg(fite, B=10, newdata=list(age=0)) ## closer to... fite$res } \references{ Mandel, M. (2013). "Simulation based confidence intervals for functions with complicated derivatives." The American Statistician (in press). } \seealso{ \code{\link{summary.flexsurvreg}} } \author{ C. H. Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{models} flexsurv/man/augment.flexsurvreg.Rd0000644000176200001440000000523714644755661017236 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/broom-funs.R \name{augment.flexsurvreg} \alias{augment.flexsurvreg} \title{Augment data with information from a flexsurv model object} \usage{ \method{augment}{flexsurvreg}( x, data = NULL, newdata = NULL, type.predict = "response", type.residuals = "response", ... ) } \arguments{ \item{x}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{data}{A \code{\link{data.frame}} or \code{\link[tibble]{tibble}} containing the original data that was used to produce the object \code{x}.} \item{newdata}{A \code{\link{data.frame}} or \code{\link[tibble]{tibble}} containing all the original predictors used to create \code{x}. Defaults to \code{NULL}, indicating that nothing has been passed to \code{newdata}. If \code{newdata} is specified, the \code{data} argument will be ignored.} \item{type.predict}{Character indicating type of prediction to use. Passed to the \code{type} argument of the \code{\link{predict}} generic. Allowed arguments vary with model class, so be sure to read the \code{predict.my_class} documentation.} \item{type.residuals}{Character indicating type of residuals to use. Passed to the type argument of \code{\link{residuals}} generic. Allowed arguments vary with model class, so be sure to read the \code{residuals.my_class} documentation.} \item{...}{Additional arguments. Not currently used.} } \value{ A \code{\link[tibble]{tibble}} containing \code{data} or \code{newdata} and possible additional columns: \itemize{ \item \code{.fitted} Fitted values of model \item \code{.se.fit} Standard errors of fitted values \item \code{.resid} Residuals (not present if \code{newdata} specified) } } \description{ Augment accepts a model object and a dataset and adds information about each observation in the dataset. Most commonly, this includes predicted values in the \code{.fitted} column, residuals in the \code{.resid} column, and standard errors for the fitted values in a \code{.se.fit} column. New columns always begin with a . prefix to avoid overwriting columns in the original dataset. } \details{ If neither of \code{data} or \code{newdata} are specified, then \code{model.frame(x)} will be used. It is worth noting that \code{model.frame(x)} will include a \code{\link[survival]{Surv}} object and not the original time-to-event variables used when fitting the \code{flexsurvreg} object. If the original data is desired, specify \code{data}. } \examples{ fit <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "exp") augment(fit, data = ovarian) } flexsurv/man/figures/0000755000176200001440000000000014531453561014356 5ustar liggesusersflexsurv/man/figures/flexsurv_hex.png0000644000176200001440000002332314523512617017610 0ustar liggesusers‰PNG  IHDRX.eÞ|PLTEýþý..3334445556667778889999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGFHHGIIHM®IKKJLLKMMLNNMOONPPOQQPRRQSSRTTRUUSUUSVVTWWUXXVYYWZZX[[Y\\Z]][^^\__]``^aa_bb_cc`ddaeebffcggdhheiifjjgkkhllimmjnnkoolpplqqmrrnssottpuuqvvrwwsxxtyyuzzv{{w||x}}x~~yz€€{|‚‚}ƒƒ~„„……€††‡‡‚ˆˆƒ‰‰„ŠŠ…‹‹…ŒŒ†‡ŽŽˆ‰Š‘‘‹’’Œ““””Ž••––——‘˜˜‘™™’™™’šš“››”œœ•–žž—ŸŸ˜  ™™™™¡¡š¢¢›££œ¤¤¥¥ž¦¦ž§§Ÿ¨¨ ©©¡ªª¢««£¬¬¤­­¥®®¦¯¯§°°¨±±©²²ª³³«´´«µµ¬¶¶­··®¸¸¯¹¹°ºº±»»²¼¼³½½´¾¾µ¿¿¶ÀÀ·ÁÁ·Â¸ÃùÄĺÅÅ»ÆÆ¼ÇǽÈȾÉÉ¿ÊÊÀËËÁÌÌÂÍÍÃÎÎÄÏÏÄÐÐÅÑÑÆÒÒÇÓÓÈÔÔÉÕÕÊÖÖË××ÌØØÍÙÙÎÚÚÏÛÛÐÜÜÐÝÝÑÝÝÑÞÞÒßßÓààÔááÕââÖãã×ääØååÙææÚççÛèèÜééÝêêÝëëÞììßííàîîáïïâððãññäòòåóóæôôçõõèööé÷÷êøøêùùëúúìûûíüüîýýïþþðÿÿýþýñ¨sèÔtRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒ€‚= pHYs.#.#x¥?v IDATxœíÝû£EýpžåÎP0AA!EDÅÔ@ÑBÅ$5óŠT–”fj¦Ò·‡’ ù"jŠ©h˜"^ ÅÄ[DáAPtÎðuöyfö:³³—¹Ïçýìî³;»ó:{qØçqtEoFè.€Æéè.ŽÎøË ÈGw‘ôÅ[;ð”ǼdÀDà-"ð‚ ¸ |tàƒ|„àƒ’üƒàƒ |ƒàƒŠ ¼rà ƒÊ¼‚à ƒZ<‚àƒÚ |qàƒ|à>^-#„‚ë ¸ë•pà<Ç”BP‚î‘§”Fà=‡TBà9gðê4¯ÀçSWÔ@àóÁM5ø ÁE ø ÁA xéÀ9x Á1BxÁ)¼º+¯À·‹G—DàÛÁ‚øÁøÁ ¼Úª«À›S'HCàÍÁRxÁzÒxÁvJ¸ïÀnЏÁf ¸Á^¼Z­Àé‹Gk(GP‚îR;–2ЂÀaV2ІÀY2àÕƒ\nž"ØÇ@3‚2to¢ê±\„`C¸Á*)pÌE ŒBàk‡À)–0àmo= ܹx´ƒ¡Ê@нéÊÅ#p‚ù GÆ~¦3àma8pŠ`8+„±ÜÑ ¬AÆj3° A‹!˜ËÀ:6;0•…ÂØ ÁL–"c'ð¶¤É ,½x4ÕÂXèÀ8Ö#cÃ8 ŒeŒbÀÛvö(°íÁ$!c“s8† Œ=Laà ‚0¶@0„£ ¬q`g„±‚ œFÆÚð¶‘ý l¸xÔÍÀaLw —'˜ A'„1‚>¼­âš£O´1ðAchbà%‚0†BÐÂÀ[aŒ„ ƒ× Ìt žç˜A5@ЉiÔ2à­½/ Œ»xTÊ$b”… A&APÆPb E xëë§sNÔ0̘á@@P Èg¸ÑA:PP"ÚHfJF3© A…h… ‘o½@A:Üí%¯ª$2•£Ï,€ VtAÃÔŽ2ðÖ…»õ$Ô˜ € a48Έr‚AQ A,P ,jˆd„F%q 𨃠НĠ N¸[UPí‰b$E‘! Ä( € 3à•4wkg”D¶ƒf ²È…Є P™0Š#ÑAm€@C¤A¨ÉhŠ$µðÊ ä…»í•1Z#ÃAu€@{ÄC¨ÊѪ1à-¨ ·&$2E¨ƒ a¡4@``„A(ËQÊ1ÆF „2 ÑÏ€·P ;ÜÀXÆ8 %i¡ °( 0à͘n}Õb¬K},€ÀÊÔ…@g¬M=T ÀâÔr@a,O 9€ÀT†0¢P`G¸õXÈ8“jFWSÂ@ànÊCQ(°1ÜZÍ0ަ¤ƒ€Àñ”‚08ŸFð¦ö‡ï`gg { BƒP|P¨»Ô63W R% Ô^&›@Жƒ‹,bе^Š©Ã Ñ ´«ÌiÏßV/_»ù«F¥2 8h¸¸bí²³ùò³ºÅéŸÿ׆%‚tÃb ~W€1\yL¢H³^mZ(H˜ò š/‹Ã Íþå+ä_ïÏN—ªç—ƒÍ ¡CÈ3±¤º †n9;Øtt®d|.¢l „,1ËÁµÝjµ*1ºv¸ßî8X7Šbvæ'bŠá0´l ÅrÀøÙÍÝ?úá낇{h»®`æ^Aô>… D-¤§ƒÇp)æ~ùgº‚ 8÷ ¨"úé &Ož\Áª‘¸3’ æÜ³æÞ3¢ÿÝ(¤ˆÉ &wÒâ8`üøÁ‘A6¼Õ³~ðló2BT“Ij2@k2ƒž¥CxÌ®™xÐ$¸\Õ h˜sX›rÐ÷D20”fðl²43?ËM°ê…'Ž c0ƒçúÓ…;mOf‚‡£+ʱï4.«ßÑÀ wv@ÿñÆ#‚Lf|ššà‰øüñäOé󀔌TtålŠôS„S’‡‹O¦~ܼ¨~G.ªƒR ^+xt9ë—å gäèÓCrÑË •k}”Íç§ÇÕú0}’Ý3FÎÉ¿ ¡Fƒ‚® ~ôÅ9qqþŸ>ɧ'ÌÌ„®‘ÊE3ƒV1ƒCÆ¥¡¶FžäÜx’þ¹¿Z¶üÖ‹ Ùæf®žsÕÒð\*³\†þÔ¡ŸÆãcÀ¡§ã‹™æ+K:žwÿG"ÖÈ¡¨cÀî ‰ù‹qY3&y9zî8áï‰ÁNG|šü<¸ç‹Æ«ãTLfðaüZ3«;ÔÁédŠcv¦FüÜ~^˜|<›€7SÑΠÅf°0*É•¬ÄkÈ}¯dÆ–=o­— Ü”2@•KÁ ÿeÍî#Ò0m|~g€¹ó”Þ—aÿ•º/jw쮊ëäD `ÐbL|.ÆEÌÙ-#%=ùQJ_h?À#ßH ýš~%þr2§>?/!Ô2@UƒûæÜ÷ƒ>œi¶Ù˜ºýeràªh6”£‹1˜Áç¸O¼ÞŒ 2ݨS®ûS¢o¼kñÐtOºŸáûMóöG½ïùú¹Å ÁdÆ´7árLg< ÚPrüÕ«qkÅùxH¦‘Â)Ý¡ÇÅCÈG:‚³áJÁ<‘NΡ¿˜°,`dÒU+‡ÏÉ=…ÌÑþGxpÜ¿îÍäw½ímÕ,’|ã-ÚèX ÂL¸œ*½NOd†ŸJövª}+y7r½%Êzš‚µ»©Ó[ã ÍSÇ0:Ç&Wû™FƒÿXviÜ­Þ¨ýÙŸíÀc^þ÷ÉdÙÕݘ°rä ê/ìŒ)  °ÞW#m)ý$ ½yÿ‚î» äGÛýYØ·fÔÊzòÐñÖè=vRúDôjÞšZõ PŬé·ÐG½ûÀÊßìÝŸý¡?“U½ž1‹è…ûK6‡¯_wÓõz"› ÚT5Û„ß-˜f{Ðw»?›v’‹€YŒ[^&›âÊhÐàóßa-õ©®Ü^m Œ‰Í H—Xª½®H~vÔ¡³È X •ïÆô¤žZ½yÑð þÿä¦O¹­è•kc£ƒAÖÁäš^"}±Ê¯'çþ—mÁÿõkÚïá)ff†oœFym‚4š›ýFn”ñ±™Á 9NÏãOe+9Ï›v€<¡ü%sâóX øS~ôÙnÏçF- ÚbDMH‚‡JÿäCÒçØíážç‡(nävj™Y_‰'w¨tiŒ‰A ª;øÜûé/ûÕöä™òȧ†ÿw[÷ßÇ3''-W‚Ÿõ:Hî`Úx!©‡A[ ƒøÍµ±å¾Ú>H..º}/’öM¬v-èa29ëR"2³ümK bƒê7ù•é&/:ŠÌëYL½ó¶>·*õ+ÒéÎâ™Ü’˜7­Ïd$íSa³ñ¸s+®’Â8Ã`8{×ßþíø|ñ†Ä˜mQ«ål÷øÃ9¼y¿<¸;?ú÷dÜ?óã>!„~_im”Æ< „Ù»íéU+þ¸ü±—{à]ÑÍÆÜÛiøQr/·Wƒ¯~vF½“Kzå;‰òËè¦U¦…ÂàjsºRÐÈ -…%_E÷η/¹y†?›õQSÄÜ#Éèžö ‹ð¸Ó2ÃŒ[jJw¾2îà­Kñ©~oþLð ¼®ôÏy¤óW²?èϾ·Ýs~-ÿ«¨ §_§‡¨¦1?  6:´1®Š¿Þ2gõðƒ¸9b©äë ÛŸ?¹s1‰Ò.j’¹Ù}ØÙkÆE¤Vm: Âìûm(©Á2sÑõ@¦9û~ò€‹öqÒeJz0é°oœOô2hÓHr@ͼ²–™˜<•X–ýÁoÌÿ$j’îçuÿqÔÁºâ=ÒÝ-r9ša@n7§ÜYŠZ£¤$äøÒcÆ[±š´é : íROHºø¾ü]¢OÈ–I_W ‘¦×PæOZ£LHÍî5riq%å'â=Dž$§¯ê—ÁY¹×£;Òé?áÁÉÏ=j’ê»ù¿Q“ÈwÑà[/»oeaC ùÑÍ Mg ÐÁg+ævv©SöÛŽ§ûËù'yÉiRzËñà^JMÑ{O’C#OW?q9>w8jQþ¦”º˜Ê@åþ}õâ}מŸú(0iºzƃ{¢a¢×37®Çƒi•H-c“íïG÷¶“ý1ô,Ô÷èI;ƒ¶ rÙ’¨œÙw=ýö®¶.?÷Ó“iÉ|þÊœH?\W$^Ðóµ§$®SaŒe ÕÁF=usCfjÒ|™ÒÀ9j’l@ÿ8sÎÚn"ègÐf0Ðé`Ó´'dºç #žÍÏèWxT²ùÙçÇ2gýs¹«ÅŽÁ t:8´”ÑÂ1&f[ªï#c(Ý-“ö*Éæg?Jϯ'nÊ0NÛ `{Ñ=JnÊJiVÊKè¦ä¾¿ŸŒÊ?¸Šî>?{5Ñ‚¥ÿ†g÷ Á«Îë[•›ª˜À@–ƒv³r¬=?Ýž)üÓ]”ÿƒÄŸhò/БÖ(‰ægÿ=-žÛåÑsï·.þï‚xÑË¿k¦ƒ† ÚM‹º{åüä%ݸkÞ¤MEÚ¦ç;ß!­QÎý6šÛ¨Ôÿó“N[¡¼œôBÓ²WŠ Œu0ü×ûúŠ›æÍš6}Îu÷<Ëø%o6MÉÞ~¦4?{/ꬽ/sF¹;Ñ©ïA0r‘ʶI†30À?$,ûŽÂJ2"¾Q½S1²èìÎ=ŠéÔãrb¶­ç‰å}ëçˆL¿G¤ÎãægÑ#éà3Ä„K¹•SXí zßuü¦äà¨5JÔülék%øfÑÎÏà‰z•9°€A3’V"•íäZ!µ8~uÙ7?‹zOé§4duÿ\ÑT"c Y$­D:wÇíÈÅÑÕùŽWÔülKÔÆýÞÂÙ‘kÊ£”]6šÃ@’I+‘ÎÐ¥Éí6óÎÍáóÄló³C§’)¦>;ø”hùü’ãØÁ I+‘ÉÀ%é Ùwú‹Éóç¨ùÙoÈ€‘ô~ºI¢óHJ3IÑÀ –ƒÚd­D&ƒ·2zÜ›ŸíŒ^wYX<¯ñdýêî˜Ä€ã Y+‘Ëæ™=¤Ò¿¹ A, ¹+9_z™£è`PÛAÒV"—¡'g´àægÑuCÜç=ï“éÖÈ/3‰õT— o%(yî²¾ Üül_Ô„­¨k•0¤Ï…žO9 ŒMT¤ q%hÙ»âÜÌcIÜðƒ#ò]¯§sžýQbñÑÄ Î݃z¤®5ûžXtbb+vŸlŽÎ Ãû=¹Ó¸Œ7¡ÀhcÀ «)RÉ&J0³ËÊŸÎ?}bi~vè²QOáÝz—L©ò}&ãTvÆ`œ¡½ïu+‘7%ƒ‘”–jéç•Ùo8Hy jBÀÌb@òŸ¨/µl§;ù\Ч¤t­#/&2hà`rî¤AÛJ$}ùuâ>Þ¤ƒãð¤ô>š?»‹õA F1’A¹SH}+çè $¿¿ÿ×ð”S©c_8.½¤°ïæz1“A}¹Ë +çEü9ðݤ’´WÝÖ¹=]üÛŽ†2¨í w]Ô¹"Ý|Òùèßè'ÿàOù^Ì¿É]ʱ‹.Ÿ© ê: 2˜l€…§N,ì¡›d?šo´6n$=ò·‚Kg,ƒšØ t[8´fA‰ƒú&¼íoÌŽøüÊdÕŒ܃š¹ ê9à0Я“Ûñ¶Ï¶BÜ2%Y3ì¼XƒÔ‚P޹Îînú±éæIƒw'TŒ[-|±F3¨á )à¦é™.‘>øV²Z.Û%~¹f3@•%Td`šÒ4=uaݸD¥L”Ò2Íx!Ôc`ŒÜ4=ÙÂ×'ëä:NË¥š±€A% ˜@÷‡¸Íôz¢ÿ`ЬÏ?[Á•—Ðf ¤izÔ+ÛÐïFÅõÑs³´/}Ú , ôYÀMÓ£îv]˜¨ŽS^•·`{tRA“”làT7ùÕÃ-ÕÎÅÿ}úkqeôýZf÷X–1£Žt ÙUÃMÓ»_w¸)Qß|Wê6µA'êHµ^)ò¥¾N£Õ·OkbÌ2ÉŸx¶•Ž*Ò(¤Öfuw»Ïÿ½<ññÇ ¥7K´œŽr,$W7M¿¡=óãj¯àµ7à(` œB²ü¸iúhc¢Í»l9§ §Â‹†HˆËŽ›¦Ÿp0ñZì±O*ÙlÎ1À±‡B\vü1À‹ÎŒ«àznV1q•=â²Ï2™ª¬sD§(Ñ ŒÁàQéÊèYü¥²Íæù„ôÊóZº.f¨üR§k ˜d[hÎà™ä¶ï»[i¯É^1¬¡!´:nivŽâ/9Ç Œ‰š0@›pWcþ ùÞq.î1(ë@… ÐîÎÅÂwÞW¾ÍdPÁ$ µ ´nÊøµ6™‹ ªCn¡64 åC;n2¨n£– a-ƒÇ@O€A6’%‹"0°,r #Ü0°5B«# 0°?ÒØ0p&M§R×0p-µS0p4ÕgSÅ0p:e×SÊ0p?% Ý;Þ¤ˆA®µªîÂv ¤¤€AÖî¢v 䤀‰ß’RÀ  üIƒ0ð'ÀÒ “A ø`  a ZÀÀ¯0´€_ÄdÐ~@Âд€gÄbО…Π < 0€ æÇ €g¡3h¿ a€±´€_0À‚X ZmÝåê( 0€„¡2hé.U'À@a€H74ÌÏñ¨ 0P`A &8J ˆÁÀÀ@i€$ •~À@m€±hw @†“û4<0ð1À‚ÂŽôi t;Š ¨óY `a0Ðì(0€ `é¤u0ÙÀ@q€0Ðê(N;ëø6€â"ç¥2Ðè(0€ `é¤u0ÙÀ@q€E ÚÀÀë2Ðæ(N;ëø`A m]€âNÚY“Mp @ŸÀ@qÚYÀÀÇphq @PšA›Ê@‡` 8À‚J1Ðà(N;ëø˜vÖ…zÀ@q€å´© ”;Š (Ï  |L9ªÅÉ1@ÀÀÔd Ø0P`A4&8ŠSšRÀ@q( ØÅ)Ï@¥` 84úwÀ@q*0Pè(•vÀ@q*1Pæ(0€ Ý€âb2Ðì(‹^À@q˜ ´:ŠÃf óæ0Pœê T8Š“cH‹ö/D• (Nl¢J §ˆAu¢J §–Q¥ŠSÈ ²Q¥ŠSÌ ªQ¥ŠS›U‚¨RÅá0¨è@T©€âðTs ªTÀ@q¸ *9U*` 8|Uˆ*0P¦RD ¨Ns ¢  ”G„AT™€út ªHÀ@CÄ9U"` %"„D•˜V[$) “Š€­)å@ „ 8Ðe€ 5jäêœÂ 茔§2:#Yµ¾ ÀÆHe@¯n€ 3Ò°*›Í hŒìª.bôEƒ¢Š.fôE4ƒÂzæ0ú"T§–¹ ‚ƈbÀ«âÇG> ÌÜú=ÜaÀ‡ ~õ %ÓœA ˜@08Í”B1€#ƒ¹iÀ€[«‡3 ‚ɩǠ4‚$82˜ 5ŸbLNEUdÀ‘Áè”gÀ­ÇÃ… ‚ ©Š€ÂŽ Ö§2*€`uj `0€#ƒµáÖµ¾ `‡`iê!`3¦.‚"Á²ÔGPÌN, ·®Š*º˜ì¬I#\ÁŠ4DP‚@0>”b§F‡[;%j¸Ø!Ê2†F ‚ò ‚…  8E0,Üú(_µUÀÁ¨DP‘@0&BTfG#­…еZ™@Ðáê0€#ƒæˆGP@Ðê2€#ƒ¦p·{½ê¬Ë èˆ, À‘Ay¤!hÄ (D À‘AY¸[ºQ=6d;E‘‹ 9€  ²ˆ`$G>1 àAb¸ÛVDŠa;iQ‚@€ %Šd„G¡ àAh¸[S`Í e;Q‰@4€ (jˆgD5 à¡a¸ÛO|•É`;„FÑ€@€P;ZHcG†Zán5Iµ%@¨md2€#CÅèC —@¨'_„•IDATd3€#CÉp·“Üj’Í ”‰n À‘í”0…1"pd`†»e”Ô"°C ÇêJLA ’@ÈÄjÀ)B"Üm¡²bÔ2€B£(g:1 Á<Zx~ŠÀ]{ 5¢…×;èbà-3ècà%SèdàÝ)w}õU…Nží F ™GŒF 'GÃègàîê®8d0 œ†`S8{dà®—î c7!Ø‚À ¬A`Ç X„À0¸k¢{S§cW X†À<NlC`"ë!؇ÀLV¸e×½q©1’Å;+ËÀR–"0˜…¬E`4ËN¸¥Õ½9‹b2«v6#05ìF`>+ ØŽÀÆŸ"p˧{–ˆ ß!8€ÀCp5 …à‹xŠÀ-‘îMV>ö00n‡à»Á%¶10æÈÀ-‡î U1–10‚k,d`À‘Á9V2Ð ÁA–2Ðxdà.Y÷¦©;è‚à({h92¸ŠÀfÊ!¸‹ÀnJ ÜeéÞb5…;§XÏ@Ç8À@ç8Á@ò)wîºW_D\` u‡àWHƒàwHà —?EàÎO÷ ŒC ï0(±Gð š9Ð]x%ñ‚Aº ®(ž0¨ Aw¡•Å5 è.°ÂxÄ ªÝÅUŸT‚ »¨jãƒÒtSu|cP ‚î"ª øtPC } \keyword{distribution} flexsurv/man/meanfinal_fmixmsm.Rd0000644000176200001440000000311614165570616016700 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fmixmsm.R \name{meanfinal_fmixmsm} \alias{meanfinal_fmixmsm} \title{Mean time to final state in a mixture multi-state model} \usage{ meanfinal_fmixmsm(x, newdata = NULL, final = FALSE, B = NULL) } \arguments{ \item{x}{Object returned by \code{\link{fmixmsm}}, representing a multi-state model built from piecing together mixture models fitted by \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{final}{If \code{TRUE} then the mean time to the final state is calculated for each final state, by taking a weighted average of the mean time to travel each pathway ending in that final state, weighted by the probability of the pathway. If \code{FALSE} (the default) then a separate mean is calculated for each pathway.} \item{B}{Number of simulations to use to compute 95\% confidence intervals, based on the asymptotic multivariate normal distribution of the basic parameter estimates. If \code{B=NULL} then intervals are not computed.} } \value{ A data frame of mean times to absorption, by covariate values and pathway (or by final state) } \description{ Calculate the mean time from the start of the process to a final (or "absorbing") state in a mixture multi-state model. Models with cycles are not supported. } flexsurv/man/simt_flexsurvmix.Rd0000644000176200001440000000216614165570616016642 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fmixmsm.R \name{simt_flexsurvmix} \alias{simt_flexsurvmix} \title{Simulate times to competing events from a mixture multi-state model} \usage{ simt_flexsurvmix(x, newdata = NULL, n) } \arguments{ \item{x}{Fitted model object returned from \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{n}{Number of simulations} } \value{ Data frame with \code{n*m} rows and a column for each competing event, where \code{m} is the number of alternative covariate values, that is the number of rows of \code{newdata}. The simulated time represents the time to that event conditionally on that event being the one that occurs. This function doesn't simulate which event occurs. } \description{ Simulate times to competing events from a mixture multi-state model } flexsurv/man/plot.flexsurvreg.Rd0000644000176200001440000001251214644755664016551 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot.flexsurvreg.R \name{plot.flexsurvreg} \alias{plot.flexsurvreg} \title{Plots of fitted flexible survival models} \usage{ \method{plot}{flexsurvreg}( x, newdata = NULL, X = NULL, type = "survival", fn = NULL, t = NULL, start = 0, est = TRUE, ci = NULL, B = 1000, cl = 0.95, col.obs = "black", lty.obs = 1, lwd.obs = 1, col = "red", lty = 1, lwd = 2, col.ci = NULL, lty.ci = 2, lwd.ci = 1, ylim = NULL, add = FALSE, ... ) } \arguments{ \item{x}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{newdata}{Data frame containing covariate values to produce fitted values for. See \code{\link{summary.flexsurvreg}}. If there are only factor covariates in the model, then Kaplan-Meier (or nonparametric hazard...) curves are plotted for all distinct groups, and by default, fitted curves are also plotted for these groups. To plot Kaplan-Meier and fitted curves for only a subset of groups, use \code{plot(survfit())} followed by \code{lines.flexsurvreg()}. If there are any continuous covariates, then a single population Kaplan-Meier curve is drawn. By default, a single fitted curve is drawn with the covariates set to their mean values in the data - for categorical covariates, the means of the 0/1 indicator variables are taken.} \item{X}{Alternative way to supply covariate values, as a model matrix. See \code{\link{summary.flexsurvreg}}. \code{newdata} is an easier way.} \item{type}{\code{"survival"} for survival, to be plotted against Kaplan-Meier estimates from \code{\link[survival]{plot.survfit}}. \code{"cumhaz"} for cumulative hazard, plotted against transformed Kaplan-Meier estimates from \code{\link[survival]{plot.survfit}}. \code{"hazard"} for hazard, to be plotted against smooth nonparametric estimates from \code{\link[muhaz]{muhaz}}. The nonparametric estimates tend to be unstable, and these plots are intended just to roughly indicate the shape of the hazards through time. The \code{min.time} and \code{max.time} options to \code{\link[muhaz]{muhaz}} may sometimes need to be passed as arguments to \code{\link{plot.flexsurvreg}} to avoid an error here. Ignored if \code{"fn"} is specified.} \item{fn}{Custom function of the parameters to summarise against time. The first two arguments of the function must be \code{t} representing time, and \code{start} representing left-truncation points, and any remaining arguments must be parameters of the distribution. It should return a vector of the same length as \code{t}.} \item{t}{Vector of times to plot fitted values for, see \code{\link{summary.flexsurvreg}}.} \item{start}{Left-truncation points, see \code{\link{summary.flexsurvreg}}.} \item{est}{Plot fitted curves (\code{TRUE} or \code{FALSE}.)} \item{ci}{Plot confidence intervals for fitted curves. By default, this is \code{TRUE} if one observed/fitted curve is plotted, and \code{FALSE} if multiple curves are plotted.} \item{B}{Number of simulations controlling accuracy of confidence intervals, as used in \code{\link[=summary.flexsurvreg]{summary}}. Decrease for greater speed at the expense of accuracy, or set \code{B=0} to turn off calculation of CIs.} \item{cl}{Width of confidence intervals, by default 0.95 for 95\% intervals.} \item{col.obs}{Colour of the nonparametric curve.} \item{lty.obs}{Line type of the nonparametric curve.} \item{lwd.obs}{Line width of the nonparametric curve.} \item{col}{Colour of the fitted parametric curve(s).} \item{lty}{Line type of the fitted parametric curve(s).} \item{lwd}{Line width of the fitted parametric curve(s).} \item{col.ci}{Colour of the fitted confidence limits, defaulting to the same as for the fitted curve.} \item{lty.ci}{Line type of the fitted confidence limits.} \item{lwd.ci}{Line width of the fitted confidence limits.} \item{ylim}{y-axis limits: vector of two elements.} \item{add}{If \code{TRUE}, add lines to an existing plot, otherwise new axes are drawn.} \item{...}{Other options to be passed to \code{\link[survival]{plot.survfit}} or \code{\link[muhaz]{muhaz}}, for example, to control the smoothness of the nonparametric hazard estimates. The \code{min.time} and \code{max.time} options to \code{\link[muhaz]{muhaz}} may sometimes need to be changed from the defaults.} } \description{ Plot fitted survival, cumulative hazard or hazard from a parametric model against nonparametric estimates to diagnose goodness-of-fit. Alternatively plot a user-defined function of the model parameters against time. } \note{ Some standard plot arguments such as \code{"xlim","xlab"} may not work. This function was designed as a quick check of model fit. Users wanting publication-quality graphs are advised to set up an empty plot with the desired axes first (e.g. with \code{plot(...,type="n",...)}), then use suitable \code{\link{lines}} functions to add lines. If case weights were used to fit the model, these are used when producing nonparametric estimates of survival and cumulative hazard, but not for the hazard estimates. } \seealso{ \code{\link{flexsurvreg}} } \author{ C. H. Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{hplot} \keyword{models} flexsurv/man/AICc.Rd0000644000176200001440000000113214470701435013733 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{AICc} \alias{AICc} \alias{AICC} \title{Second-order Akaike information criterion} \usage{ AICc(object, ...) AICC(object, ...) } \arguments{ \item{object}{Fitted model object.} \item{...}{Other arguments (currently unused).} } \description{ Generic function for the second-order Akaike information criterion. The only current implementation of this in \pkg{flexsurv} is in \code{\link{AICc.flexsurvreg}}, see there for more details. } \details{ This can be spelt either as \code{AICC} or \code{AICc}. } flexsurv/man/tidy.standsurv.Rd0000644000176200001440000000106314247336547016212 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/standsurv.R \name{tidy.standsurv} \alias{tidy.standsurv} \title{Tidy a standsurv object.} \usage{ \method{tidy}{standsurv}(x, ...) } \arguments{ \item{x}{A standsurv object.} \item{...}{Not currently used.} } \value{ Returns additional tidy data.frames (tibbles) stored as attributes named standpred_at and standpred_contrast. } \description{ This function is used internally by \code{standsurv} and tidy data.frames are automatically returned by the function. } flexsurv/man/tidy.flexsurvreg.Rd0000644000176200001440000000604414644755013016533 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/broom-funs.R \name{tidy.flexsurvreg} \alias{tidy.flexsurvreg} \title{Tidy a flexsurv model object} \usage{ \method{tidy}{flexsurvreg}( x, conf.int = FALSE, conf.level = 0.95, pars = "all", transform = "none", ... ) } \arguments{ \item{x}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{conf.int}{Logical. Should confidence intervals be returned? Default is \code{FALSE}.} \item{conf.level}{The confidence level to use for the confidence interval if \code{conf.int = TRUE}. Default is \code{0.95}.} \item{pars}{One of \code{"all"}, \code{"baseline"}, or \code{"coefs"} for all parameters, baseline distribution parameters, or covariate effects (i.e. regression betas), respectively. Default is \code{"all"}.} \item{transform}{Character vector of transformations to apply to requested \code{pars}. Default is \code{"none"}, which returns \code{pars} as-is. Users can specify one or both types of transformations: \itemize{ \item \code{"baseline.real"} which transforms the baseline distribution parameters to the real number line used for estimation. \item \code{"coefs.exp"} which exponentiates the covariate effects. } See \code{Details} for a more complete explanation.} \item{...}{Not currently used.} } \value{ A \code{\link[tibble]{tibble}} containing the columns: \code{term}, \code{estimate}, \code{std.error}, \code{statistic}, \code{p.value}, \code{conf.low}, and \code{conf.high}, by default. \code{statistic} and \code{p.value} are only provided for covariate effects (\code{NA} for baseline distribution parameters). These are computed as Wald-type test statistics with p-values from a standard normal distribution. } \description{ Tidy summarizes information about the components of the model into a tidy data frame. } \details{ \code{flexsurvreg} models estimate two types of coefficients, baseline distribution parameters, and covariate effects which act on the baseline distribution. By design, \code{flexsurvreg} returns distribution parameters on the same scale as is found in the relevant \code{d/p/q/r} functions. Covariate effects are returned on the log-scale, which represents either log-time ratios (accelerated failure time models) or log-hazard ratios for proportional hazard models. By default, \code{tidy()} will return baseline distribution parameters on their natural scale and covariate effects on the log-scale. To transform the baseline distribution parameters to the real-value number line (the scale used for estimation), pass the character argument \code{"baseline.real"} to \code{transform}. To get time ratios or hazard ratios, pass \code{"coefs.exp"} to \code{transform}. These transformations may be done together by submitting both arguments as a character vector. } \examples{ fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ age, data = ovarian, dist = "gengamma") tidy(fitg) tidy(fitg, pars = "coefs", transform = "coefs.exp") } flexsurv/man/standsurv.Rd0000644000176200001440000003065214523723772015245 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/standsurv.R \name{standsurv} \alias{standsurv} \title{Marginal survival and hazards of fitted flexsurvreg models} \usage{ standsurv( object, newdata = NULL, at = list(list()), atreference = 1, type = "survival", t = NULL, ci = FALSE, se = FALSE, boot = FALSE, B = NULL, cl = 0.95, trans = "log", contrast = NULL, trans.contrast = NULL, seed = NULL, rmap, ratetable, scale.ratetable = 365.25, n.gauss.quad = 100, quantiles = 0.5, interval = c(1e-08, 500) ) } \arguments{ \item{object}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{newdata}{Data frame containing covariate values to produce marginal values for. If not specified then the fitted model data.frame is used. There must be a column for every covariate in the model formula for which the user wishes to standardize over. These are in the same format as the original data, with factors as a single variable, not 0/1 contrasts. Any covariates that are to be fixed should be specified in \code{at}. There should be one row for every combination of covariates in which to standardize over. If newdata contains a variable named '(weights)' then a weighted mean will be used to create the standardized estimates. This is the default behaviour if the fitted model contains case weights, which are stored in the fitted model data.frame.} \item{at}{A list of scenarios in which specific covariates are fixed to certain values. Each element of \code{at} must itself be a list. For example, for a covariate \code{group} with levels "Good", "Medium" and "Poor", the standardized survival plots for each group averaging over all other covariates is specified using \code{at=list(list(group="Good"), list(group="Medium"), list(group="Poor"))}.} \item{atreference}{The reference scenario for making contrasts. Default is 1 (i.e. the first element of \code{at}).} \item{type}{\code{"survival"} for marginal survival probabilities. In a relative survival framework this returns the marginal all-cause survival (see details). \code{"hazard"} for the hazard of the marginal survival probability. In a relative survival framework this returns the marginal all-cause hazard (see details). \code{"rmst"} for standardized restricted mean survival. \code{"relsurvival"} for marginal relative survival (can only be specified if a relative survival model has been fitted in flexsurv). \code{"excesshazard"} for marginal excess hazards (can only be specified if a relative survival model has been fitted in flexsurv). \code{"quantile"} for quantiles of the marginal all-cause survival distribution. The \code{quantiles} option also needs to be provided.} \item{t}{Times to calculate marginal values at.} \item{ci}{Should confidence intervals be calculated? Defaults to FALSE} \item{se}{Should standard errors be calculated? Defaults to FALSE} \item{boot}{Should bootstrapping be used to calculate standard error and confidence intervals? Defaults to FALSE, in which case the delta method is used} \item{B}{Number of bootstrap simulations from the normal asymptotic distribution of the estimates used to calculate confidence intervals or standard errors. Decrease for greater speed at the expense of accuracy. Only specify if \code{boot = TRUE}} \item{cl}{Width of symmetric confidence intervals, relative to 1.} \item{trans}{Transformation to apply when calculating standard errors via the delta method to obtain confidence intervals. The default transformation is "log". Other possible names are "none", "loglog", "logit".} \item{contrast}{Contrasts between standardized measures defined by \code{at} scenarios. Options are \code{"difference"} and \code{"ratio"}. There will be n-1 new columns created where n is the number of \code{at} scenarios. Default is NULL (i.e. no contrasts are calculated).} \item{trans.contrast}{Transformation to apply when calculating standard errors for contrasts via the delta method to obtain confidence intervals. The default transformation is "none" for differences in survival, hazard, quantiles, or RMST, and "log" for ratios of survival, hazard, quantiles or RMST.} \item{seed}{The random seed to use (for bootstrapping confidence intervals)} \item{rmap}{An list that maps data set names to expected ratetable names. This must be specified if all-cause survival and hazards are required after fitting a relative survival model. This can also be specified if expected rates are required for plotting purposes. See the details section below.} \item{ratetable}{A table of expected event rates (see \code{\link[survival]{ratetable}})} \item{scale.ratetable}{Transformation from the time scale of the fitted flexsurv model to the time scale in \code{ratetable}. For example, if the analysis time of the fitted model is in years and the ratetable is in units/day then we should use \code{scale.ratetable = 365.25}. This is the default as often the ratetable will be in units/day (see example).} \item{n.gauss.quad}{Number of Gaussian quadrature points used for integrating the all-cause survival function when calculating RMST in a relative survival framework (default = 100)} \item{quantiles}{If \code{type="quantile"}, this specifies the quantiles of the survival time distribution to return estimates for.} \item{interval}{Interval of survival times for quantile root finding. Default is c(1e-08, 500).} } \value{ A \code{tibble} containing one row for each time-point. The column naming convention is \code{at{i}} for the ith scenario with corresponding confidence intervals (if specified) named \code{at{i}_lci} and \code{at{i}_uci}. Contrasts are named \code{contrast{k}_{j}} for the comparison of the kth versus the jth \code{at} scenario. In addition tidy long-format data.frames are returned in the attributes \code{standsurv_at} and \code{standsurv_contrast}. These can be passed to \code{ggplot} for plotting purposes (see \code{\link{plot.standsurv}}). } \description{ Returns a tidy data.frame of marginal survival probabilities, or hazards, restricted mean survival, or quantiles of the marginal survival function at user-defined time points and covariate patterns. Standardization is performed over any undefined covariates in the model. The user provides the data to standardize over. Contrasts can be calculated resulting in estimates of the average treatment effect or the average treatment effect in the treated if a treated subset of the data are supplied. } \details{ The syntax of \code{standsurv} follows closely that of Stata's \code{standsurv} command written by Paul Lambert and Michael Crowther. The function calculates standardized (marginal) measures including standardized survival functions, standardized restricted mean survival times, quantiles and the hazard of standardized survival. The standardized survival is defined as \deqn{S_s(t|X=x) = E(S(t|X=x,Z)) = \frac{1}{N} \sum_{i=1}^N S(t|X=x,Z=z_i)}{S(t|X=x) = E[S(t|X=x,Z)] = 1/N * sum(S(t|X=x,Z=z_i))} The hazard of the standardized survival is a weighted average of individual hazard functions at time t, weighted by the survival function at this time: \deqn{h_s(t|X=x) = \frac{\sum_{i=1}^N S(t|X=x,Z=z_i)h(t|X=x,Z=z_i)}{\sum_{i=1}^N S(t|X=x,Z=z_i)}}{h(t|X=x) = sum(S(t|X=x,Z=z_i) * h(t|X=x,Z=z_i)) / sum(S(t|X=x,Z=z_i))} Marginal expected survival and hazards can be calculated by providing a population-based lifetable of class ratetable in \code{ratetable} and a mapping between stratification factors in the lifetable and the user dataset using \code{rmap}. If these stratification factors are not in the fitted survival model then the user must specify them in \code{newdata} along with the covariates of the model. The marginal expected survival is calculated using the "Ederer" method that assumes no censoring as this is most relevant approach for forecasting (see \code{\link[survival]{survexp}}). A worked example is given below. Marginal all-cause survival and hazards can be calculated after fitting a relative survival model, which utilise the expected survival from a population ratetable. See Rutherford et al. (Chapter 6) for further details. } \examples{ ## mean age is higher in those with smaller observed survival times newbc <- bc set.seed(1) newbc$age <- rnorm(dim(bc)[1], mean = 65-scale(newbc$recyrs, scale=FALSE), sd = 5) ## Fit a Weibull flexsurv model with group and age as covariates weib_age <- flexsurvreg(Surv(recyrs, censrec) ~ group+age, data=newbc, dist="weibull") ## Calculate standardized survival and the difference in standardized survival ## for the three levels of group across a grid of survival times standsurv_weib_age <- standsurv(weib_age, at = list(list(group="Good"), list(group="Medium"), list(group="Poor")), t=seq(0,7, length.out=100), contrast = "difference", ci=FALSE) standsurv_weib_age ## Calculate hazard of standardized survival and the marginal hazard ratio ## for the three levels of group across a grid of survival times ## 10 bootstraps for confidence intervals (this should be larger) \dontrun{ haz_standsurv_weib_age <- standsurv(weib_age, at = list(list(group="Good"), list(group="Medium"), list(group="Poor")), t=seq(0,7, length.out=100), type="hazard", contrast = "ratio", boot = TRUE, B=10, ci=TRUE) haz_standsurv_weib_age plot(haz_standsurv_weib_age, ci=TRUE) ## Hazard ratio plot shows a decreasing marginal HR ## Whereas the conditional HR is constant (model is a PH model) plot(haz_standsurv_weib_age, contrast=TRUE, ci=TRUE) ## Calculate standardized survival from a Weibull model together with expected ## survival matching to US lifetables # age at diagnosis in days. This is required to match to US ratetable, whose # timescale is measured in days newbc$agedays <- floor(newbc$age * 365.25) ## Create some random diagnosis dates centred on 01/01/2010 with SD=1 year ## These will be used to match to expected rates in the lifetable newbc$diag <- as.Date(floor(rnorm(dim(newbc)[1], mean = as.Date("01/01/2010", "\%d/\%m/\%Y"), sd=365)), origin="1970-01-01") ## Create sex (assume all are female) newbc$sex <- factor("female") standsurv_weib_expected <- standsurv(weib_age, at = list(list(group="Good"), list(group="Medium"), list(group="Poor")), t=seq(0,7, length.out=100), rmap=list(sex = sex, year = diag, age = agedays), ratetable = survival::survexp.us, scale.ratetable = 365.25, newdata = newbc) ## Plot marginal survival with expected survival superimposed plot(standsurv_weib_expected, expected=TRUE) } } \references{ Paul Lambert, 2021. "STANDSURV: Stata module to compute standardized (marginal) survival and related functions," Statistical Software Components S458991, Boston College Department of Economics. https://ideas.repec.org/c/boc/bocode/s458991.html Rutherford, MJ, Lambert PC, Sweeting MJ, Pennington B, Crowther MJ, Abrams KR, Latimer NR. 2020. "NICE DSU Technical Support Document 21: Flexible Methods for Survival Analysis" https://nicedsu.sites.sheffield.ac.uk/tsds/flexible-methods-for-survival-analysis-tsd } \author{ Michael Sweeting } flexsurv/man/flexsurvreg.Rd0000644000176200001440000006073314644755662015602 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{flexsurvreg} \alias{flexsurvreg} \alias{flexsurv.dists} \title{Flexible parametric regression for time-to-event data} \usage{ flexsurvreg( formula, anc = NULL, data, weights, bhazard, rtrunc, subset, na.action, dist, inits, fixedpars = NULL, dfns = NULL, aux = NULL, cl = 0.95, integ.opts = NULL, sr.control = survreg.control(), hessian = TRUE, hess.control = NULL, ... ) } \arguments{ \item{formula}{A formula expression in conventional R linear modelling syntax. The response must be a survival object as returned by the \code{\link[survival]{Surv}} function, and any covariates are given on the right-hand side. For example, \code{Surv(time, dead) ~ age + sex} \code{Surv} objects of \code{type="right"},\code{"counting"}, \code{"interval1"} or \code{"interval2"} are supported, corresponding to right-censored, left-truncated or interval-censored observations. If there are no covariates, specify \code{1} on the right hand side, for example \code{Surv(time, dead) ~ 1}. If the right hand side is specified as \code{.} all remaining variables are included as covariates. For example, \code{Surv(time, dead) ~ .} corresponds to \code{Surv(time, dead) ~ age + sex} if \code{data} contains the variables \code{time}, \code{dead}, \code{age}, and \code{sex}. By default, covariates are placed on the ``location'' parameter of the distribution, typically the "scale" or "rate" parameter, through a linear model, or a log-linear model if this parameter must be positive. This gives an accelerated failure time model or a proportional hazards model (see \code{dist} below) depending on how the distribution is parameterised. Covariates can be placed on other (``ancillary'') parameters by using the name of the parameter as a ``function'' in the formula. For example, in a Weibull model, the following expresses the scale parameter in terms of age and a treatment variable \code{treat}, and the shape parameter in terms of sex and treatment. \code{Surv(time, dead) ~ age + treat + shape(sex) + shape(treat)} However, if the names of the ancillary parameters clash with any real functions that might be used in formulae (such as \code{I()}, or \code{factor()}), then those functions will not work in the formula. A safer way to model covariates on ancillary parameters is through the \code{anc} argument to \code{\link{flexsurvreg}}. \code{\link[survival]{survreg}} users should also note that the function \code{strata()} is ignored, so that any covariates surrounded by \code{strata()} are applied to the location parameter. Likewise the function \code{frailty()} is not handled.} \item{anc}{An alternative and safer way to model covariates on ancillary parameters, that is, parameters other than the main location parameter of the distribution. This is a named list of formulae, with the name of each component giving the parameter to be modelled. The model above can also be defined as: \code{Surv(time, dead) ~ age + treat, anc = list(shape = ~ sex + treat)}} \item{data}{A data frame in which to find variables supplied in \code{formula}. If not given, the variables should be in the working environment.} \item{weights}{Optional numeric variable giving weights for each individual in the data. The fitted model is then defined by maximising the weighted sum of the individual-specific log-likelihoods.} \item{bhazard}{Optional variable giving expected hazards for relative survival models. The model is described by Nelson et al. (2007). \code{bhazard} should contain a vector of values for each person in the data. \itemize{ \item For people with observed events, \code{bhazard} refers to the hazard at the observed event time. \item For people whose event time is left-censored or interval-censored, \code{bhazard} should contain the probability of dying by the end of the corresponding interval, conditionally on being alive at the start. \item For people whose event time is right-censored, the value of \code{bhazard} is ignored and does not need to be specified. } If \code{bhazard} is supplied, then the parameter estimates returned by \code{flexsurvreg} and the outputs returned by \code{summary.flexsurvreg} describe the parametric model for relative survival. For relative survival models, the log-likelihood returned by \code{flexsurvreg} is a partial log-likelihood, which omits a constant term defined by the sum of the cumulative hazards at the event or censoring time for each individual. Hence this constant must be added if a full likelihood is needed.} \item{rtrunc}{Optional variable giving individual-specific right-truncation times. Used for analysing data with "retrospective ascertainment". For example, suppose we want to estimate the distribution of the time from onset of a disease to death, but have only observed cases known to have died by the current date. In this case, times from onset to death for individuals in the data are right-truncated by the current date minus the onset date. Predicted survival times for new cases can then be described by an un-truncated version of the fitted distribution. These models can suffer from weakly identifiable parameters and badly-behaved likelihood functions, and it is advised to compare convergence for different initial values by supplying different \code{inits} arguments to \code{flexsurvreg}.} \item{subset}{Vector of integers or logicals specifying the subset of the observations to be used in the fit.} \item{na.action}{a missing-data filter function, applied after any 'subset' argument has been used. Default is \code{options()$na.action}.} \item{dist}{Typically, one of the strings in the first column of the following table, identifying a built-in distribution. This table also identifies the location parameters, and whether covariates on these parameters represent a proportional hazards (PH) or accelerated failure time (AFT) model. In an accelerated failure time model, the covariate speeds up or slows down the passage of time. So if the coefficient (presented on the log scale) is log(2), then doubling the covariate value would give half the expected survival time. \tabular{llll}{ \code{"gengamma"} \tab Generalized gamma (stable) \tab mu \tab AFT \cr \code{"gengamma.orig"} \tab Generalized gamma (original) \tab scale \tab AFT \cr \code{"genf"} \tab Generalized F (stable) \tab mu \tab AFT \cr \code{"genf.orig"} \tab Generalized F (original) \tab mu \tab AFT \cr \code{"weibull"} \tab Weibull \tab scale \tab AFT \cr \code{"gamma"} \tab Gamma \tab rate \tab AFT \cr \code{"exp"} \tab Exponential \tab rate \tab PH \cr \code{"llogis"} \tab Log-logistic \tab scale \tab AFT \cr \code{"lnorm"} \tab Log-normal \tab meanlog \tab AFT \cr \code{"gompertz"} \tab Gompertz \tab rate \tab PH \cr } \code{"exponential"} and \code{"lognormal"} can be used as aliases for \code{"exp"} and \code{"lnorm"}, for compatibility with \code{\link[survival]{survreg}}. Alternatively, \code{dist} can be a list specifying a custom distribution. See section ``Custom distributions'' below for how to construct this list. Very flexible spline-based distributions can also be fitted with \code{\link{flexsurvspline}}. The parameterisations of the built-in distributions used here are the same as in their built-in distribution functions: \code{\link{dgengamma}}, \code{\link{dgengamma.orig}}, \code{\link{dgenf}}, \code{\link{dgenf.orig}}, \code{\link{dweibull}}, \code{\link{dgamma}}, \code{\link{dexp}}, \code{\link{dlnorm}}, \code{\link{dgompertz}}, respectively. The functions in base R are used where available, otherwise, they are provided in this package. A package vignette "Distributions reference" lists the survivor functions and covariate effect parameterisations used by each built-in distribution. For the Weibull, exponential and log-normal distributions, \code{\link{flexsurvreg}} simply works by calling \code{\link[survival]{survreg}} to obtain the maximum likelihood estimates, then calling \code{\link{optim}} to double-check convergence and obtain the covariance matrix for \code{\link{flexsurvreg}}'s preferred parameterisation. The Weibull parameterisation is different from that in \code{\link[survival]{survreg}}, instead it is consistent with \code{\link{dweibull}}. The \code{"scale"} reported by \code{\link[survival]{survreg}} is equivalent to \code{1/shape} as defined by \code{\link{dweibull}} and hence \code{\link{flexsurvreg}}. The first coefficient \code{(Intercept)} reported by \code{\link[survival]{survreg}} is equivalent to \code{log(scale)} in \code{\link{dweibull}} and \code{\link{flexsurvreg}}. Similarly in the exponential distribution, the rate, rather than the mean, is modelled on covariates. The object \code{flexsurv.dists} lists the names of the built-in distributions, their parameters, location parameter, functions used to transform the parameter ranges to and from the real line, and the functions used to generate initial values of each parameter for estimation.} \item{inits}{An optional numeric vector giving initial values for each unknown parameter. These are numbered in the order: baseline parameters (in the order they appear in the distribution function, e.g. shape before scale in the Weibull), covariate effects on the location parameter, covariate effects on the remaining parameters. This is the same order as the printed estimates in the fitted model. If not specified, default initial values are chosen from a simple summary of the survival or censoring times, for example the mean is often used to initialize scale parameters. See the object \code{flexsurv.dists} for the exact methods used. If the likelihood surface may be uneven, it is advised to run the optimisation starting from various different initial values to ensure convergence to the true global maximum.} \item{fixedpars}{Vector of indices of parameters whose values will be fixed at their initial values during the optimisation. The indices are ordered as in \code{inits}. For example, in a stable generalized Gamma model with two covariates, to fix the third of three generalized gamma parameters (the shape \code{Q}, see the help for \code{\link{GenGamma}}) and the second covariate, specify \code{fixedpars = c(3, 5)}} \item{dfns}{An alternative way to define a custom survival distribution (see section ``Custom distributions'' below). A list whose components may include \code{"d"}, \code{"p"}, \code{"h"}, or \code{"H"} containing the probability density, cumulative distribution, hazard, or cumulative hazard functions of the distribution. For example, \code{list(d=dllogis, p=pllogis)}. If \code{dfns} is used, a custom \code{dlist} must still be provided, but \code{dllogis} and \code{pllogis} need not be visible from the global environment. This is useful if \code{flexsurvreg} is called within other functions or environments where the distribution functions are also defined dynamically.} \item{aux}{A named list of other arguments to pass to custom distribution functions. This is used, for example, by \code{\link{flexsurvspline}} to supply the knot locations and modelling scale (e.g. hazard or odds). This cannot be used to fix parameters of a distribution --- use \code{fixedpars} for that.} \item{cl}{Width of symmetric confidence intervals for maximum likelihood estimates, by default 0.95.} \item{integ.opts}{List of named arguments to pass to \code{\link{integrate}}, if a custom density or hazard is provided without its cumulative version. For example, \code{integ.opts = list(rel.tol=1e-12)}} \item{sr.control}{For the models which use \code{\link[survival]{survreg}} to find the maximum likelihood estimates (Weibull, exponential, log-normal), this list is passed as the \code{control} argument to \code{\link[survival]{survreg}}.} \item{hessian}{Calculate the covariances and confidence intervals for the parameters. Defaults to \code{TRUE}.} \item{hess.control}{List of options to control covariance matrix computation. Available options are: \code{numeric}. If \code{TRUE} then numerical methods are used to compute the Hessian for models where an analytic Hessian is available. These models include the Weibull (both versions), exponential, Gompertz and spline models with hazard or odds scale. The default is to use the analytic Hessian for these models. For all other models, numerical methods are always used to compute the Hessian, whether or not this option is set. \code{tol.solve}. The tolerance used for \code{\link{solve}} when inverting the Hessian (default \code{.Machine$double.eps}) \code{tol.evalues} The accepted tolerance for negative eigenvalues in the covariance matrix (default \code{1e-05}). The Hessian is positive definite, thus invertible, at the maximum likelihood. If the Hessian computed after optimisation convergence can't be inverted, this is either because the converged result is not the maximum likelihood (e.g. it could be a "saddle point"), or because the numerical methods used to obtain the Hessian were inaccurate. If you suspect that the Hessian was computed wrongly enough that it is not invertible, but not wrongly enough that the nearest valid inverse would be an inaccurate estimate of the covariance matrix, then these tolerance values can be modified (reducing \code{tol.solve} or increasing \code{tol.evalues}) to allow the inverse to be computed.} \item{...}{Optional arguments to the general-purpose optimisation routine \code{\link{optim}}. For example, the BFGS optimisation algorithm is the default in \code{\link{flexsurvreg}}, but this can be changed, for example to \code{method="Nelder-Mead"} which can be more robust to poor initial values. If the optimisation fails to converge, consider normalising the problem using, for example, \code{control=list(fnscale = 2500)}, for example, replacing 2500 by a number of the order of magnitude of the likelihood. If 'false' convergence is reported with a non-positive-definite Hessian, then consider tightening the tolerance criteria for convergence. If the optimisation takes a long time, intermediate steps can be printed using the \code{trace} argument of the control list. See \code{\link{optim}} for details.} } \value{ A list of class \code{"flexsurvreg"} containing information about the fitted model. Components of interest to users may include: \item{call}{A copy of the function call, for use in post-processing.} \item{dlist}{List defining the survival distribution used.} \item{res}{Matrix of maximum likelihood estimates and confidence limits, with parameters on their natural scales.} \item{res.t}{Matrix of maximum likelihood estimates and confidence limits, with parameters all transformed to the real line (using a log transform for all built-in models where this is necessary). The \code{\link{coef}}, \code{\link{vcov}} and \code{\link{confint}} methods for \code{flexsurvreg} objects work on this scale.} \item{coefficients}{The transformed maximum likelihood estimates, as in \code{res.t}. Calling \code{coef()} on a \code{\link{flexsurvreg}} object simply returns this component.} \item{loglik}{Log-likelihood. This will differ from Stata, where the sum of the log uncensored survival times is added to the log-likelihood in survival models, to remove dependency on the time scale. For relative survival models specified with \code{bhazard}, this is a partial log-likelihood which omits a constant term defined by the sum of the cumulative hazards over all event or censoring times. } \item{logliki}{Vector of individual contributions to the log-likelihood} \item{AIC}{Akaike's information criterion (-2*log likelihood + 2*number of estimated parameters)} \item{cov}{Covariance matrix of the parameters, on the real-line scale (e.g. log scale), which can be extracted with \code{\link{vcov}}.} \item{data}{Data used in the model fit. To extract this in the standard R formats, use use \code{\link{model.frame.flexsurvreg}} or \code{\link{model.matrix.flexsurvreg}}.} } \description{ Parametric modelling or regression for time-to-event data. Several built-in distributions are available, and users may supply their own. } \details{ Parameters are estimated by maximum likelihood using the algorithms available in the standard R \code{\link{optim}} function. Parameters defined to be positive are estimated on the log scale. Confidence intervals are estimated from the Hessian at the maximum, and transformed back to the original scale of the parameters. The usage of \code{\link{flexsurvreg}} is intended to be similar to \code{\link[survival]{survreg}} in the \pkg{survival} package. } \section{Custom distributions}{ \code{\link{flexsurvreg}} is intended to be easy to extend to handle new distributions. To define a new distribution for use in \code{\link{flexsurvreg}}, construct a list with the following elements: \describe{ \item{\code{"name"}}{A string naming the distribution. If this is called \code{"dist"}, for example, then there must be visible in the working environment, at least, either a) a function called \code{ddist} which defines the probability density, or b) a function called \code{hdist} which defines the hazard. Ideally, in case a) there should also be a function called \code{pdist} which defines the probability distribution or cumulative density, and in case b) there should be a function called \code{Hdist} defining the cumulative hazard. If these additional functions are not provided, \pkg{flexsurv} attempts to automatically create them by numerically integrating the density or hazard function. However, model fitting will be much slower, or may not even work at all, if the analytic versions of these functions are not available. The functions must accept vector arguments (representing different times, or alternative values for each parameter) and return the results as a vector. The function \code{\link{Vectorize}} may be helpful for doing this: see the example below. These functions may be in an add-on package (see below for an example) or may be user-written. If they are user-written they must be defined in the global environment, or supplied explicitly through the \code{dfns} argument to \code{flexsurvreg}. The latter may be useful if the functions are created dynamically (as in the source of \code{flexsurvspline}) and thus not visible through R's scoping rules. Arguments other than parameters must be named in the conventional way -- for example \code{x} for the first argument of the density function or hazard, as in \code{\link{dnorm}(x, ...)} and \code{q} for the first argument of the probability function. Density functions should also have an argument \code{log}, after the parameters, which when \code{TRUE}, computes the log density, using a numerically stable additive formula if possible. Additional functions with names beginning with \code{"DLd"} and \code{"DLS"} may be defined to calculate the derivatives of the log density and log survival probability, with respect to the parameters of the distribution. The parameters are expressed on the real line, for example after log transformation if they are defined as positive. The first argument must be named \code{t}, representing the time, and the remaining arguments must be named as the parameters of the density function. The function must return a matrix with rows corresponding to times, and columns corresponding to the parameters of the distribution. The derivatives are used, if available, to speed up the model fitting with \code{\link{optim}}. } \item{\code{"pars"}}{Vector of strings naming the parameters of the distribution. These must be the same names as the arguments of the density and probability functions. } \item{\code{"location"}}{Name of the main parameter governing the mean of the distribution. This is the default parameter on which covariates are placed in the \code{formula} supplied to \code{flexsurvreg}. } \item{\code{"transforms"}}{List of R functions which transform the range of values taken by each parameter onto the real line. For example, \code{c(log, log)} for a distribution with two positive parameters. } \item{\code{"inv.transforms"}}{List of R functions defining the corresponding inverse transformations. Note these must be lists, even for single parameter distributions they should be supplied as, e.g. \code{c(exp)} or \code{list(exp)}. } \item{\code{"inits"}}{A function of the observed survival times \code{t} (including right-censoring times, and using the halfway point for interval-censored times) which returns a vector of reasonable initial values for maximum likelihood estimation of each parameter. For example, \code{function(t){ c(1, mean(t)) }} will always initialize the first of two parameters at 1, and the second (a scale parameter, for instance) at the mean of \code{t}. } } For example, suppose we want to use an extreme value survival distribution. This is available in the CRAN package \pkg{eha}, which provides conventionally-defined density and probability functions called \code{\link[eha:EV]{eha::dEV}} and \code{\link[eha:EV]{eha::pEV}}. See the Examples below for the custom list in this case, and the subsequent command to fit the model. } \examples{ ## Compare generalized gamma fit with Weibull fitg <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="gengamma") fitg fitw <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist="weibull") fitw plot(fitg) lines(fitw, col="blue", lwd.ci=1, lty.ci=1) ## Identical AIC, probably not enough data in this simple example for a ## very flexible model to be worthwhile. ## Custom distribution ## make "dEV" and "pEV" from eha package (if installed) ## available to the working environment if (require("eha")) { custom.ev <- list(name="EV", pars=c("shape","scale"), location="scale", transforms=c(log, log), inv.transforms=c(exp, exp), inits=function(t){ c(1, median(t)) }) fitev <- flexsurvreg(formula = Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.ev) fitev lines(fitev, col="purple", col.ci="purple") } ## Custom distribution: supply the hazard function only hexp2 <- function(x, rate=1){ rate } # exponential distribution hexp2 <- Vectorize(hexp2) custom.exp2 <- list(name="exp2", pars=c("rate"), location="rate", transforms=c(log), inv.transforms=c(exp), inits=function(t)1/mean(t)) flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist=custom.exp2) flexsurvreg(Surv(futime, fustat) ~ 1, data = ovarian, dist="exp") ## should give same answer } \references{ Jackson, C. (2016). flexsurv: A Platform for Parametric Survival Modeling in R. Journal of Statistical Software, 70(8), 1-33. doi:10.18637/jss.v070.i08 Cox, C. (2008) The generalized \eqn{F} distribution: An umbrella for parametric survival analysis. Statistics in Medicine 27:4301-4312. Cox, C., Chu, H., Schneider, M. F. and Muñoz, A. (2007) Parametric survival analysis and taxonomy of hazard functions for the generalized gamma distribution. Statistics in Medicine 26:4252-4374 Jackson, C. H. and Sharples, L. D. and Thompson, S. G. (2010) Survival models in health economic evaluations: balancing fit and parsimony to improve prediction. International Journal of Biostatistics 6(1):Article 34. Nelson, C. P., Lambert, P. C., Squire, I. B., & Jones, D. R. (2007). Flexible parametric models for relative survival, with application in coronary heart disease. Statistics in medicine, 26(30), 5486-5498. } \seealso{ \code{\link{flexsurvspline}} for flexible survival modelling using the spline model of Royston and Parmar. \code{\link{plot.flexsurvreg}} and \code{\link{lines.flexsurvreg}} to plot fitted survival, hazards and cumulative hazards from models fitted by \code{\link{flexsurvreg}} and \code{\link{flexsurvspline}}. } \author{ Christopher Jackson } \keyword{models} \keyword{survival} flexsurv/man/pfinal_fmsm.Rd0000644000176200001440000000442014523723771015500 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{pfinal_fmsm} \alias{pfinal_fmsm} \title{Probabilities of final states in a flexible parametric competing risks model} \usage{ pfinal_fmsm(x, newdata = NULL, fromstate, maxt = 1e+05, B = 0, cores = NULL) } \arguments{ \item{x}{Object returned by \code{\link{fmsm}}, representing a multi-state model formed from transition-specific time-to-event models fitted by \code{\link{flexsurvreg}}.} \item{newdata}{Data frame of covariate values, with one column per covariate, and one row per alternative value.} \item{fromstate}{State from which to calculate the transition probability state. This should refer to the name of a row of the transition matrix \code{attr(x,trans)}.} \item{maxt}{Large time to use for forecasting final state probabilities. The transition probability from zero to this time is used. Note \code{Inf} will not work. The default is \code{100000}.} \item{B}{Number of simulations to use to calculate 95\% confidence intervals based on the asymptotic normal distribution of the basic parameter estimates. If \code{B=0} then no intervals are calculated.} \item{cores}{Number of processor cores to use. If \code{NULL} (the default) then a single core is used.} } \value{ A data frame with one row per covariate value and destination state, giving the state in column \code{state}, and probability in column \code{val}. Additional columns \code{lower} and \code{upper} for the confidence limits are returned if \code{B=0}. } \description{ This requires the model to be Markov, and is not valid for semi-Markov models, as it works by wrapping \code{\link{pmatrix.fs}} to calculate the transition probability over a very large time. As it also works on a \code{fmsm} object formed from transition-specific time-to-event models, it therefore only works on competing risks models, defined by just one starting state with multiple destination states representing competing events. For these models, this function returns the probability governing which competing event happens next. However this function simply wraps \code{pmatrix.fs}, so for other models, \code{pmatrix.fs} or \code{pmatrix.simfs} can be used with a large forecast time \code{t}. } flexsurv/man/basis.Rd0000644000176200001440000000353114531442444014302 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/spline.R \name{basis} \alias{basis} \alias{dbasis} \alias{fss} \alias{dfss} \title{Natural cubic spline basis} \usage{ basis(knots, x, spline = "rp") } \arguments{ \item{knots}{Vector of knot locations in increasing order, including the boundary knots at the beginning and end.} \item{x}{Vector of ordinates to compute the basis for.} \item{spline}{\code{"rp"} to use the natural cubic spline basis described in Royston and Parmar. \code{"splines2ns"} to use the alternative natural cubic spline basis from the \code{splines2} package (Wang and Yan 2021), which may be better behaved due to the basis being orthogonal.} } \value{ A matrix with one row for each ordinate and one column for each knot. \code{basis} returns the basis, and \code{dbasis} returns its derivative with respect to \code{x}. \code{fss} and \code{dfss} are the same, but with the order of the arguments swapped around for consistency with similar functions in other R packages. } \description{ Compute a basis for a natural cubic spline, by default using the parameterisation described by Royston and Parmar (2002). Used for flexible parametric survival models. } \details{ The exact formula for the basis is given in \code{\link{flexsurvspline}}. } \references{ Royston, P. and Parmar, M. (2002). Flexible parametric proportional-hazards and proportional-odds models for censored survival data, with application to prognostic modelling and estimation of treatment effects. Statistics in Medicine 21(1):2175-2197. Wang W, Yan J (2021). Shape-Restricted Regression Splines with R Package splines2. Journal of Data Science, 19(3), 498-517. } \seealso{ \code{\link{flexsurvspline}}. } \author{ Christopher Jackson } \keyword{models} flexsurv/man/survrtrunc.Rd0000644000176200001440000001122114174025317015430 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/survrtrunc.R \name{survrtrunc} \alias{survrtrunc} \title{Nonparametric estimator of survival from right-truncated, uncensored data} \usage{ survrtrunc(t, rtrunc, tmax, data = NULL, eps = 0.001, conf.int = 0.95) } \arguments{ \item{t}{Vector of observed times from an initial event to a final event.} \item{rtrunc}{Individual-specific right truncation points, so that each individual's survival time \code{t} would not have been observed if it was greater than the corresponding element of \code{rtrunc}. If any of these are greater than \code{tmax}, then the actual individual-level truncation point for these individuals is taken to be \code{tmax}.} \item{tmax}{Maximum possible time to event that could have been observed.} \item{data}{Data frame to find \code{t} and \code{rtrunc} in. If not supplied, these should be in the working environment.} \item{eps}{Small number that is added to \code{t} before implementing the time-reversed estimator, to ensure the risk set is consistent between forward and reverse time scales. It should be just large enough that \code{t+eps} is not \code{==t}. This should not need changing from the default of 0.001, unless \code{t} are extremely large or small and the data are rounded to integer.} \item{conf.int}{Confidence level, defaulting to 0.95.} } \value{ A list with components: \code{time} Time points where the estimated survival changes. \code{surv} Estimated survival at \code{time}, truncated above at \code{tmax}. \code{se.surv} Standard error of survival. \code{std.err} Standard error of -log(survival). Named this way for consistency with \code{survfit}. \code{lower} Lower confidence limits for survival. \code{upper} Upper confidence limits for survival. } \description{ Estimates the survivor function from right-truncated, uncensored data by reversing time, interpreting the data as left-truncated, applying the Kaplan-Meier / Lynden-Bell estimator and transforming back. } \details{ Note that this does not estimate the untruncated survivor function - instead it estimates the survivor function truncated above at a time defined by the maximum possible time that might have been observed in the data. Define \eqn{X} as the time of the initial event, \eqn{Y} as the time of the final event, then we wish to determine the distribution of \eqn{T = Y- X}. Observations are only recorded if \eqn{Y \leq t_{max}}. Then the distribution of \eqn{T} in the resulting sample is right-truncated by \code{rtrunc} \eqn{ = t_{max} - X}. Equivalently, the distribution of \eqn{t_{max} - T} is left-truncated, since it is only observed if \eqn{t_{max} - T \geq X}. Then the standard Kaplan-Meier type estimator as implemented in \code{\link[survival]{survfit}} is used (as described by Lynden-Bell, 1971) and the results transformed back. This situation might happen in a disease epidemic, where \eqn{X} is the date of disease onset for an individual, \eqn{Y} is the date of death, and we wish to estimate the distribution of the time \eqn{T} from onset to death, given we have only observed people who have died by the date \eqn{t_{max}}. If the estimated survival is unstable at the highest times, then consider replacing \code{tmax} by a slightly lower value, then if necessary, removing individuals with \code{t > tmax}, so that the estimand is changed to the survivor function truncated over a slightly narrower interval. } \examples{ ## simulate some event time data set.seed(1) X <- rweibull(100, 2, 10) T <- rweibull(100, 2, 10) ## truncate above tmax <- 20 obs <- X + T < tmax rtrunc <- tmax - X dat <- data.frame(X, T, rtrunc)[obs,] sf <- survrtrunc(T, rtrunc, data=dat, tmax=tmax) plot(sf, conf.int=TRUE) ## Kaplan-Meier estimate ignoring truncation is biased sfnaive <- survfit(Surv(T) ~ 1, data=dat) lines(sfnaive, conf.int=TRUE, lty=2, col="red") ## truncate above the maximum observed time tmax <- max(X + T) + 10 obs <- X + T < tmax rtrunc <- tmax - X dat <- data.frame(X, T, rtrunc)[obs,] sf <- survrtrunc(T, rtrunc, data=dat, tmax=tmax) plot(sf, conf.int=TRUE) ## estimates identical to the standard Kaplan-Meier sfnaive <- survfit(Surv(T) ~ 1, data=dat) lines(sfnaive, conf.int=TRUE, lty=2, col="red") } \references{ D. Lynden-Bell (1971) A method of allowing for known observational selection in small samples applied to 3CR quasars. Monthly Notices of the Royal Astronomical Society, 155:95–118. Seaman, S., Presanis, A. and Jackson, C. (2020) Review of methods for estimating distribution of time to event from right-truncated data. } flexsurv/man/quantile_flexsurvmix.Rd0000644000176200001440000000241214165570616017502 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvmix.R \name{quantile_flexsurvmix} \alias{quantile_flexsurvmix} \title{Quantiles of time-to-event distributions in a flexsurvmix model} \usage{ quantile_flexsurvmix(x, newdata = NULL, B = NULL, probs = c(0.025, 0.5, 0.975)) } \arguments{ \item{x}{Fitted model object returned from \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{B}{Number of simulations to use to compute 95\% confidence intervals, based on the asymptotic multivariate normal distribution of the basic parameter estimates. If \code{B=NULL} then intervals are not computed.} \item{probs}{Vector of alternative quantiles, by default \code{c(0.025, 0.95, 0.975)} giving the median and a 95\% interval.} } \description{ This returns the quantiles of each event-specific parametric time-to-event distribution in the mixture model, which describes the time to the event conditionally on that event being the one that happens. } flexsurv/man/Llogis.Rd0000644000176200001440000000564614171772374014453 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Llogis.R \name{Llogis} \alias{Llogis} \alias{dllogis} \alias{pllogis} \alias{qllogis} \alias{hllogis} \alias{Hllogis} \alias{rllogis} \title{The log-logistic distribution} \usage{ dllogis(x, shape = 1, scale = 1, log = FALSE) pllogis(q, shape = 1, scale = 1, lower.tail = TRUE, log.p = FALSE) qllogis(p, shape = 1, scale = 1, lower.tail = TRUE, log.p = FALSE) rllogis(n, shape = 1, scale = 1) hllogis(x, shape = 1, scale = 1, log = FALSE) Hllogis(x, shape = 1, scale = 1, log = FALSE) } \arguments{ \item{x, q}{vector of quantiles.} \item{shape, scale}{vector of shape and scale parameters.} \item{log, log.p}{logical; if TRUE, probabilities p are given as log(p).} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{vector of probabilities.} \item{n}{number of observations. If \code{length(n) > 1}, the length is taken to be the number required.} } \value{ \code{dllogis} gives the density, \code{pllogis} gives the distribution function, \code{qllogis} gives the quantile function, \code{hllogis} gives the hazard function, \code{Hllogis} gives the cumulative hazard function, and \code{rllogis} generates random deviates. } \description{ Density, distribution function, hazards, quantile function and random generation for the log-logistic distribution. } \details{ The log-logistic distribution with \code{shape} parameter \eqn{a>0} and \code{scale} parameter \eqn{b>0} has probability density function \deqn{f(x | a, b) = (a/b) (x/b)^{a-1} / (1 + (x/b)^a)^2} and hazard \deqn{h(x | a, b) = (a/b) (x/b)^{a-1} / (1 + (x/b)^a)} for \eqn{x>0}. The hazard is decreasing for shape \eqn{a\leq 1}{a <= 1}, and unimodal for \eqn{a > 1}. The probability distribution function is \deqn{F(x | a, b) = 1 - 1 / (1 + (x/b)^a)} If \eqn{a > 1}, the mean is \eqn{b c / sin(c)}, and if \eqn{a > 2} the variance is \eqn{b^2 * (2*c/sin(2*c) - c^2/sin(c)^2)}, where \eqn{c = \pi/a}, otherwise these are undefined. } \note{ Various different parameterisations of this distribution are used. In the one used here, the interpretation of the parameters is the same as in the standard Weibull distribution (\code{\link{dweibull}}). Like the Weibull, the survivor function is a transformation of \eqn{(x/b)^a} from the non-negative real line to [0,1], but with a different link function. Covariates on \eqn{b} represent time acceleration factors, or ratios of expected survival. The same parameterisation is also used in \code{\link[eha:Loglogistic]{eha::dllogis}} in the \pkg{eha} package. } \references{ Stata Press (2007) Stata release 10 manual: Survival analysis and epidemiological tables. } \seealso{ \code{\link{dweibull}} } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/coef.flexsurvreg.Rd0000644000176200001440000000277414165570616016506 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{coef.flexsurvreg} \alias{coef.flexsurvreg} \title{Extract model coefficients from fitted flexible survival models} \usage{ \method{coef}{flexsurvreg}(object, ...) } \arguments{ \item{object}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{...}{Further arguments passed to or from other methods. Currently unused.} } \value{ This returns the \code{mod$res.t[,"est"]} component of the fitted model object \code{mod}. See \code{\link{flexsurvreg}}, \code{\link{flexsurvspline}} for full documentation of all components. } \description{ Extract model coefficients from fitted flexible survival models. This presents all parameter estimates, transformed to the real line if necessary. For example, shape or scale parameters, which are constrained to be positive, are returned on the log scale. } \details{ This matches the behaviour of \code{coef.default} for standard R model families such as \code{\link[stats]{glm}}, where intercepts in regression models are presented on the same scale as the covariate effects. Note that any parameter in a distribution fitted by \code{\link{flexsurvreg}} or \code{\link{flexsurvreg}} may be an intercept in a regression model. } \seealso{ \code{\link{flexsurvreg}}, \code{\link{flexsurvspline}}. } \author{ C. H. Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{models} flexsurv/man/GenF.Rd0000644000176200001440000001144214603767242014026 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/GenF.R \name{GenF} \alias{GenF} \alias{dgenf} \alias{pgenf} \alias{qgenf} \alias{rgenf} \alias{Hgenf} \alias{hgenf} \title{Generalized F distribution} \usage{ dgenf(x, mu = 0, sigma = 1, Q, P, log = FALSE) pgenf(q, mu = 0, sigma = 1, Q, P, lower.tail = TRUE, log.p = FALSE) Hgenf(x, mu = 0, sigma = 1, Q, P) hgenf(x, mu = 0, sigma = 1, Q, P) qgenf(p, mu = 0, sigma = 1, Q, P, lower.tail = TRUE, log.p = FALSE) rgenf(n, mu = 0, sigma = 1, Q, P) } \arguments{ \item{x, q}{Vector of quantiles.} \item{mu}{Vector of location parameters.} \item{sigma}{Vector of scale parameters.} \item{Q}{Vector of first shape parameters.} \item{P}{Vector of second shape parameters.} \item{log, log.p}{logical; if TRUE, probabilities p are given as log(p).} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{Vector of probabilities.} \item{n}{number of observations. If \code{length(n) > 1}, the length is taken to be the number required.} } \value{ \code{dgenf} gives the density, \code{pgenf} gives the distribution function, \code{qgenf} gives the quantile function, \code{rgenf} generates random deviates, \code{Hgenf} retuns the cumulative hazard and \code{hgenf} the hazard. } \description{ Density, distribution function, hazards, quantile function and random generation for the generalized F distribution, using the reparameterisation by Prentice (1975). } \details{ If \eqn{y \sim F(2s_1, 2s_2)}{y ~ F(2*s1, 2*s2)}, and \eqn{w = }{w = log(y)}\eqn{ \log(y)}{w = log(y)} then \eqn{x = \exp(w\sigma + \mu)}{x = exp(w*sigma + mu)} has the original generalized F distribution with location parameter \eqn{\mu}{mu}, scale parameter \eqn{\sigma>0}{sigma>0} and shape parameters \eqn{s_1,s_2}{s1,s2}. In this more stable version described by Prentice (1975), \eqn{s_1,s_2}{s1,s2} are replaced by shape parameters \eqn{Q,P}, with \eqn{P>0}, and \deqn{s_1 = 2(Q^2 + 2P + Q\delta)^{-1}, \quad s_2 = 2(Q^2 + 2P - Q\delta)^{-1}}{s1 = 2 / (Q^2 + 2P + Q*delta), s2 = 2 / (Q^2 + 2P - Q*delta)} equivalently \deqn{Q = \left(\frac{1}{s_1} - \frac{1}{s_2}\right)\left(\frac{1}{s_1} + \frac{1}{s_2}\right)^{-1/2}, \quad P = \frac{2}{s_1 + s_2} }{Q = (1/s1 - 1/s2) / (1/s1 + 1/s2)^{-1/2}, P = 2 / (s1 + s2) } Define \eqn{\delta = (Q^2 + 2P)^{1/2}}{delta = (Q^2 + 2P)^{1/2}}, and \eqn{w = (\log(x) - \mu)\delta /\sigma}{w = (log(x) - mu)delta / sigma}, then the probability density function of \eqn{x} is \deqn{ f(x) = \frac{\delta (s_1/s_2)^{s_1} e^{s_1 w}}{\sigma x (1 + s_1 e^w/s_2) ^ {(s_1 + s_2)} B(s_1, s_2)} }{ f(x) = (delta (s1/s2)^{s1} e^{s1 w}) / (sigma t (1 + s1 e^w/s2) ^ {(s1 + s2)} B(s1, s2)) } The original parameterisation is available in this package as \code{\link{dgenf.orig}}, for the sake of completion / compatibility. With the above definitions, \code{dgenf(x, mu=mu, sigma=sigma, Q=Q, P=P) = dgenf.orig(x, mu=mu, sigma=sigma/delta, s1=s1, s2=s2)} The generalized F distribution with \code{P=0} is equivalent to the generalized gamma distribution \code{\link{dgengamma}}, so that \code{dgenf(x, mu, sigma, Q, P=0)} equals \code{dgengamma(x, mu, sigma, Q)}. The generalized gamma reduces further to several common distributions, as described in the \code{\link{GenGamma}} help page. The generalized F distribution includes the log-logistic distribution (see \code{\link[eha:Loglogistic]{eha::dllogis}}) as a further special case: \code{dgenf(x, mu=mu, sigma=sigma, Q=0, P=1) = \link[eha:Loglogistic]{eha::dllogis}(x, shape=sqrt(2)/sigma, scale=exp(mu))} The range of hazard trajectories available under this distribution are discussed in detail by Cox (2008). Jackson et al. (2010) give an application to modelling oral cancer survival for use in a health economic evaluation of screening. } \note{ The parameters \code{Q} and \code{P} are usually called \eqn{q} and \eqn{p} in the literature - they were made upper-case in these R functions to avoid clashing with the conventional arguments \code{q} in the probability function and \code{p} in the quantile function. } \references{ R. L. Prentice (1975). Discrimination among some parametric models. Biometrika 62(3):607-614. Cox, C. (2008). The generalized \eqn{F} distribution: An umbrella for parametric survival analysis. Statistics in Medicine 27:4301-4312. Jackson, C. H. and Sharples, L. D. and Thompson, S. G. (2010). Survival models in health economic evaluations: balancing fit and parsimony to improve prediction. International Journal of Biostatistics 6(1):Article 34. } \seealso{ \code{\link{GenF.orig}}, \code{\link{GenGamma}} } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/Gompertz.Rd0000644000176200001440000000644014165570616015020 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Gompertz.R \name{Gompertz} \alias{Gompertz} \alias{dgompertz} \alias{pgompertz} \alias{qgompertz} \alias{hgompertz} \alias{Hgompertz} \alias{rgompertz} \title{The Gompertz distribution} \usage{ dgompertz(x, shape, rate = 1, log = FALSE) pgompertz(q, shape, rate = 1, lower.tail = TRUE, log.p = FALSE) qgompertz(p, shape, rate = 1, lower.tail = TRUE, log.p = FALSE) rgompertz(n, shape = 1, rate = 1) hgompertz(x, shape, rate = 1, log = FALSE) Hgompertz(x, shape, rate = 1, log = FALSE) } \arguments{ \item{x, q}{vector of quantiles.} \item{shape, rate}{vector of shape and rate parameters.} \item{log, log.p}{logical; if TRUE, probabilities p are given as log(p).} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{vector of probabilities.} \item{n}{number of observations. If \code{length(n) > 1}, the length is taken to be the number required.} } \value{ \code{dgompertz} gives the density, \code{pgompertz} gives the distribution function, \code{qgompertz} gives the quantile function, \code{hgompertz} gives the hazard function, \code{Hgompertz} gives the cumulative hazard function, and \code{rgompertz} generates random deviates. } \description{ Density, distribution function, hazards, quantile function and random generation for the Gompertz distribution with unrestricted shape. } \details{ The Gompertz distribution with \code{shape} parameter \eqn{a} and \code{rate} parameter \eqn{b}{b} has probability density function \deqn{f(x | a, b) = be^{ax}\exp(-b/a (e^{ax} - 1))}{f(x | a, b) = b exp(ax) exp(-b/a (exp(ax) - 1))} and hazard \deqn{h(x | a, b) = b e^{ax}}{h(x | a, b) = b exp(ax)} The hazard is increasing for shape \eqn{a>0} and decreasing for \eqn{a<0}. For \eqn{a=0} the Gompertz is equivalent to the exponential distribution with constant hazard and rate \eqn{b}. The probability distribution function is \deqn{F(x | a, b) = 1 - \exp(-b/a (e^{ax} - 1))}{F(x | a, b) = 1 - exp(-b/a (exp(ax) - 1))} Thus if \eqn{a} is negative, letting \eqn{x} tend to infinity shows that there is a non-zero probability \eqn{\exp(b/a)}{exp(b/a)} of living forever. On these occasions \code{qgompertz} and \code{rgompertz} will return \code{Inf}. } \note{ Some implementations of the Gompertz restrict \eqn{a} to be strictly positive, which ensures that the probability of survival decreases to zero as \eqn{x} increases to infinity. The more flexible implementation given here is consistent with \code{streg} in Stata. The functions \code{\link[eha:Gompertz]{eha::dgompertz}} and similar available in the package \pkg{eha} label the parameters the other way round, so that what is called the \code{shape} there is called the \code{rate} here, and what is called \code{1 / scale} there is called the \code{shape} here. The terminology here is consistent with the exponential \code{\link{dexp}} and Weibull \code{\link{dweibull}} distributions in R. } \references{ Stata Press (2007) Stata release 10 manual: Survival analysis and epidemiological tables. } \seealso{ \code{\link{dexp}} } \author{ Christopher Jackson } \keyword{distribution} flexsurv/man/probs_flexsurvmix.Rd0000644000176200001440000000217114165570616017007 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.flexsurvmix.R \name{probs_flexsurvmix} \alias{probs_flexsurvmix} \title{Probabilities of competing events from a flexsurvmix model} \usage{ probs_flexsurvmix(x, newdata = NULL, B = NULL) } \arguments{ \item{x}{Fitted model object returned from \code{\link{flexsurvmix}}.} \item{newdata}{Data frame or list of covariate values. If omitted for a model with covariates, a default is used, defined by all combinations of factors if the only covariates in the model are factors, or all covariate values of zero if there are any non-factor covariates in the model.} \item{B}{Number of simulations to use to compute 95\% confidence intervals, based on the asymptotic multivariate normal distribution of the basic parameter estimates. If \code{B=NULL} then intervals are not computed.} } \value{ A data frame containing the probability that each of the competing events will occur next, by event and by any covariate values specified in \code{newdata}. } \description{ Probabilities of competing events from a flexsurvmix model } flexsurv/man/msfit.flexsurvreg.Rd0000644000176200001440000001565214644755663016724 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{msfit.flexsurvreg} \alias{msfit.flexsurvreg} \title{Cumulative intensity function for parametric multi-state models} \usage{ msfit.flexsurvreg( object, t, newdata = NULL, variance = TRUE, tvar = "trans", trans, B = 1000 ) } \arguments{ \item{object}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object. The model should have been fitted to data consisting of one row for each observed transition and additional rows corresponding to censored times to competing transitions. This is the "long" format, or counting process format, as explained in the \pkg{flexsurv} vignette. The model should contain a categorical covariate indicating the transition. In \code{flexsurv} this variable can have any name, indicated here by the \code{tvar} argument. In the Cox models demonstrated by \pkg{mstate} it is usually included in model formulae as \code{strata(trans)}, but note that the \code{strata} function does not do anything in \pkg{flexsurv}. The formula supplied to \code{\link{flexsurvreg}} should be precise about which parameters are assumed to vary with the transition type. Alternatively, if the parameters (including covariate effects) are assumed to be different between different transitions, then a list of transition-specific models can be formed. This list has one component for each permitted transition in the multi-state model. This is more computationally efficient, particularly for larger models and datasets. See the example below, and the vignette.} \item{t}{Vector of times. These do not need to be the same as the observed event times, and since the model is parametric, they can be outside the range of the data. A grid of more frequent times will provide a better approximation to the cumulative hazard trajectory for prediction with \code{\link[mstate]{probtrans}} or \code{\link[mstate]{mssample}}, at the cost of greater computational expense.} \item{newdata}{A data frame specifying the values of covariates in the fitted model, other than the transition number. This must be specified if there are other covariates. The variable names should be the same as those in the fitted model formula. There must be either one value per covariate (the typical situation) or \eqn{n} values per covariate, a different one for each of the \eqn{n} allowed transitions.} \item{variance}{Calculate the variances and covariances of the transition cumulative hazards (\code{TRUE} or \code{FALSE}). This is based on simulation from the normal asymptotic distribution of the estimates, which is computationally-expensive.} \item{tvar}{Name of the categorical variable in the model formula that represents the transition number. This should have been defined as a factor, with factor levels that correspond to elements of \code{trans}, conventionally a sequence of integers starting from 1. Not required if \code{x} is a list of transition-specific models.} \item{trans}{Matrix indicating allowed transitions in the multi-state model, in the format understood by \pkg{mstate}: a matrix of integers whose \eqn{r,s} entry is \eqn{i} if the \eqn{i}th transition type (reading across rows) is \eqn{r,s}, and has \code{NA}s on the diagonal and where the \eqn{r,s} transition is disallowed.} \item{B}{Number of simulations from the normal asymptotic distribution used to calculate variances. Decrease for greater speed at the expense of accuracy.} } \value{ An object of class \code{"msfit"}, in the same form as the objects used in the \pkg{mstate} package. The \code{\link[mstate]{msfit}} method from \pkg{mstate} returns the equivalent cumulative intensities for Cox regression models fitted with \code{\link[survival]{coxph}}. } \description{ Cumulative transition-specific intensity/hazard functions for fully-parametric multi-state or competing risks models, using a piecewise-constant approximation that will allow prediction using the functions in the \pkg{mstate} package. } \examples{ ## 3 state illness-death model for bronchiolitis obliterans ## Compare clock-reset / semi-Markov multi-state models ## Simple exponential model (reduces to Markov) bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp") tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) mexp <- msfit.flexsurvreg(bexp, t=seq(0,12,by=0.1), trans=tmat, tvar="trans", variance=FALSE) ## Cox semi-parametric model within each transition bcox <- coxph(Surv(years, status) ~ strata(trans), data=bosms3) if (require("mstate")){ mcox <- mstate::msfit(bcox, trans=tmat) ## Flexible parametric spline-based model bspl <- flexsurvspline(Surv(years, status) ~ trans + gamma1(trans), data=bosms3, k=3) mspl <- msfit.flexsurvreg(bspl, t=seq(0,12,by=0.1), trans=tmat, tvar="trans", variance=FALSE) ## Compare fit: exponential model is OK but the spline is better plot(mcox, lwd=1, xlim=c(0, 12), ylim=c(0,4)) cols <- c("black","red","green") for (i in 1:3){ lines(mexp$Haz$time[mexp$Haz$trans==i], mexp$Haz$Haz[mexp$Haz$trans==i], col=cols[i], lwd=2, lty=2) lines(mspl$Haz$time[mspl$Haz$trans==i], mspl$Haz$Haz[mspl$Haz$trans==i], col=cols[i], lwd=3) } legend("topright", lwd=c(1,2,3), lty=c(1,2,1), c("Cox", "Exponential", "Flexible parametric"), bty="n") } ## Fit a list of models, one for each transition ## More computationally efficient, but only valid if parameters ## are different between transitions. \dontrun{ bexp.list <- vector(3, mode="list") for (i in 1:3) { bexp.list[[i]] <- flexsurvreg(Surv(years, status) ~ 1, subset=(trans==i), data=bosms3, dist="exp") } ## The list of models can be passed to this and other functions, ## as if it were a single multi-state model. msfit.flexsurvreg(bexp.list, t=seq(0,12,by=0.1), trans=tmat) } } \references{ Liesbeth C. de Wreede, Marta Fiocco, Hein Putter (2011). \pkg{mstate}: An R Package for the Analysis of Competing Risks and Multi-State Models. \emph{Journal of Statistical Software}, 38(7), 1-30. \doi{10.18637/jss.v038.i07} Mandel, M. (2013). "Simulation based confidence intervals for functions with complicated derivatives." The American Statistician 67(2):76-81 } \seealso{ \pkg{flexsurv} provides alternative functions designed specifically for predicting from parametric multi-state models without calling \pkg{mstate}. These include \code{\link{pmatrix.fs}} and \code{\link{pmatrix.simfs}} for the transition probability matrix, and \code{\link{totlos.fs}} and \code{\link{totlos.simfs}} for expected total lengths of stay in states. These are generally more efficient than going via \pkg{mstate}. } \author{ C. H. Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{models} flexsurv/man/simfinal_fmsm.Rd0000644000176200001440000000443514523723770016036 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{simfinal_fmsm} \alias{simfinal_fmsm} \title{Simulate and summarise final outcomes from a flexible parametric multi-state model} \usage{ simfinal_fmsm( x, newdata = NULL, probs = c(0.025, 0.5, 0.975), t = 1000, M = 1e+05, B = 0, cores = NULL ) } \arguments{ \item{x}{Object returned by \code{\link{fmsm}}, representing a multi-state model formed from transition-specific time-to-event models fitted by \code{\link{flexsurvreg}}.} \item{newdata}{Data frame of covariate values, with one column per covariate, and one row per alternative value.} \item{probs}{Quantiles to calculate, by default, \code{c(0.025, 0.5, 0.975)} for a median and 95\% interval.} \item{t}{Maximum time to simulate to, passed to \code{\link{sim.fmsm}}, so that the summaries are taken from the subset of individuals in the simulated data who are in the absorbing state at this time.} \item{M}{Number of individuals to simulate.} \item{B}{Number of simulations to use to calculate 95\% confidence intervals based on the asymptotic normal distribution of the basic parameter estimates. If \code{B=0} then no intervals are calculated.} \item{cores}{Number of processor cores to use. If \code{NULL} (the default) then a single core is used.} } \value{ A tidy data frame with rows for each combination of covariate values and quantity of interest. The quantity of interest is identified in the column \code{quantity}, and the value of the quantity is in \code{val}, with additional columns \code{lower} and \code{upper} giving 95\% confidence intervals for the quantity, if \code{B>0}. } \description{ Estimates the probability of each final outcome ("absorbing" state), and the mean and quantiles of the time to that outcome for people who experience it, by simulating a large sample of individuals from the model. This can be used for both Markov and semi-Markov models. } \details{ For a competing risks model, i.e. a model defined by just one starting state and multiple destination states representing competing events, this returns the probability governing the next event that happens, and the distribution of the time to each event conditionally on that event happening. } flexsurv/man/nobs.flexsurvreg.Rd0000644000176200001440000000277114470654461016530 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/flexsurvreg.R \name{nobs.flexsurvreg} \alias{nobs.flexsurvreg} \title{Number of observations contributing to a fitted flexible survival model} \usage{ \method{nobs}{flexsurvreg}(object, cens = TRUE, ...) } \arguments{ \item{object}{Output from \code{\link{flexsurvreg}} or \code{\link{flexsurvspline}}, representing a fitted survival model object.} \item{cens}{Include censored observations in the number. \code{TRUE} by default. If \code{FALSE} then the number of observed events is returned. See \code{\link{BIC.flexsurvreg}} for a discussion of the issues with defining the sample size for censored data.} \item{...}{Further arguments passed to or from other methods. Currently unused.} } \value{ This returns the \code{mod$N} component of the fitted model object \code{mod}. See \code{\link{flexsurvreg}}, \code{\link{flexsurvspline}} for full documentation of all components. } \description{ Number of observations contributing to a fitted flexible survival model } \details{ By default, this matches the behaviour of the \code{nobs} method for \code{\link[survival]{survreg}} objects, including both censored and uncensored observations. If a weighted \code{flexsurvreg} analysis was done, then this function returns the sum of the weights. } \seealso{ \code{\link{flexsurvreg}}, \code{\link{flexsurvspline}}. } \author{ C. H. Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk} } \keyword{models} flexsurv/man/sim.fmsm.Rd0000644000176200001440000001113314623361304014724 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mstate.R \name{sim.fmsm} \alias{sim.fmsm} \title{Simulate paths through a fully parametric semi-Markov multi-state model} \usage{ sim.fmsm( x, trans = NULL, t, newdata = NULL, start = 1, M = 10, tvar = "trans", tcovs = NULL, tidy = FALSE ) } \arguments{ \item{x}{A model fitted with \code{\link{flexsurvreg}}. See \code{\link{msfit.flexsurvreg}} for the required form of the model and the data. Alternatively \code{x} can be a list of fitted \code{\link{flexsurvreg}} model objects. The \code{i}th element of this list is the model corresponding to the \code{i}th transition in \code{trans}. This is a more efficient way to fit a multi-state model, but only valid if the parameters are different between different transitions.} \item{trans}{Matrix indicating allowed transitions. See \code{\link{msfit.flexsurvreg}}.} \item{t}{Time, or vector of times for each of the \code{M} individuals, to simulate trajectories until.} \item{newdata}{A data frame specifying the values of covariates in the fitted model, other than the transition number. See \code{\link{msfit.flexsurvreg}}.} \item{start}{Starting state, or vector of starting states for each of the \code{M} individuals.} \item{M}{Number of individual trajectories to simulate.} \item{tvar}{Variable in the data representing the transition type. Not required if \code{x} is a list of models.} \item{tcovs}{Names of "predictable" time-dependent covariates in \code{newdata}, i.e. those whose values change at the same rate as time. Age is a typical example. During simulation, their values will be updated after each transition time, by adding the current time to the value supplied in \code{newdata}. This assumes the covariate is measured in the same unit as time. \code{tcovs} is supplied as a character vector.} \item{tidy}{If \code{TRUE} then the simulated data are returned as a tidy data frame with one row per simulated transition. See \code{\link{simfs_bytrans}} for a function to rearrange the data into this format if it was simulated in non-tidy format. Currently this includes only event times, and excludes any times of censoring that are reported when \code{tidy=FALSE}.} } \value{ If \code{tidy=TRUE}, a data frame with one row for each simulated transition, giving the individual ID \code{id}, start state \code{start}, end state \code{end}, transition label \code{trans}, time of the transition since the start of the process (\code{time}), and time since the previous transition (\code{delay}). If \code{tidy=FALSE}, a list of two matrices named \code{st} and \code{t}. The rows of each matrix represent simulated individuals. The columns of \code{t} contain the times when the individual changes state, to the corresponding states in \code{st}. The first columns will always contain the starting states and the starting times. The last column of \code{t} represents either the time when the individual moves to an absorbing state, or right-censoring in a transient state at the time given in the \code{t} argument to \code{sim.fmsm}. } \description{ Simulate changes of state and transition times from a semi-Markov multi-state model fitted using \code{\link{flexsurvreg}}. } \details{ \code{sim.fmsm} relies on the presence of a function to sample random numbers from the parametric survival distribution used in the fitted model \code{x}, for example \code{\link{rweibull}} for Weibull models. If \code{x} was fitted using a custom distribution, called \code{dist} say, then there must be a function called (something like) \code{rdist} either in the working environment, or supplied through the \code{dfns} argument to \code{\link{flexsurvreg}}. This must be in the same format as standard R functions such as \code{\link{rweibull}}, with first argument \code{n}, and remaining arguments giving the parameters of the distribution. It must be vectorised with respect to the parameter arguments. This function is only valid for semi-Markov ("clock-reset") models, though no warning or error is currently given if the model is not of this type. An equivalent for time-inhomogeneous Markov ("clock-forward") models has currently not been implemented. } \examples{ bexp <- flexsurvreg(Surv(years, status) ~ trans, data=bosms3, dist="exp") tmat <- rbind(c(NA,1,2),c(NA,NA,3),c(NA,NA,NA)) sim.fmsm(bexp, M=10, t=5, trans=tmat) } \seealso{ \code{\link{pmatrix.simfs}},\code{\link{totlos.simfs}} } \author{ Christopher Jackson \email{chris.jackson@mrc-bsu.cam.ac.uk}. } \keyword{models} \keyword{survival} flexsurv/man/Survsplinek.Rd0000644000176200001440000003564614603754465015553 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/survsplinek.R \name{Survsplinek} \alias{Survsplinek} \alias{dsurvspline0} \alias{dsurvspline1} \alias{dsurvspline2} \alias{dsurvspline3} \alias{dsurvspline4} \alias{dsurvspline5} \alias{dsurvspline6} \alias{dsurvspline7} \alias{psurvspline0} \alias{psurvspline1} \alias{psurvspline2} \alias{psurvspline3} \alias{psurvspline4} \alias{psurvspline5} \alias{psurvspline6} \alias{psurvspline7} \alias{qsurvspline0} \alias{qsurvspline1} \alias{qsurvspline2} \alias{qsurvspline3} \alias{qsurvspline4} \alias{qsurvspline5} \alias{qsurvspline6} \alias{qsurvspline7} \alias{rsurvspline0} \alias{rsurvspline1} \alias{rsurvspline2} \alias{rsurvspline3} \alias{rsurvspline4} \alias{rsurvspline5} \alias{rsurvspline6} \alias{rsurvspline7} \alias{hsurvspline0} \alias{hsurvspline1} \alias{hsurvspline2} \alias{hsurvspline3} \alias{hsurvspline4} \alias{hsurvspline5} \alias{hsurvspline6} \alias{hsurvspline7} \alias{Hsurvspline0} \alias{Hsurvspline1} \alias{Hsurvspline2} \alias{Hsurvspline3} \alias{Hsurvspline4} \alias{Hsurvspline5} \alias{Hsurvspline6} \alias{Hsurvspline7} \alias{mean_survspline0} \alias{mean_survspline1} \alias{mean_survspline2} \alias{mean_survspline3} \alias{mean_survspline4} \alias{mean_survspline5} \alias{mean_survspline6} \alias{mean_survspline7} \alias{rmst_survspline0} \alias{rmst_survspline1} \alias{rmst_survspline2} \alias{rmst_survspline3} \alias{rmst_survspline4} \alias{rmst_survspline5} \alias{rmst_survspline6} \alias{rmst_survspline7} \title{Royston/Parmar spline survival distribution functions with one argument per parameter} \usage{ mean_survspline0( gamma0, gamma1, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp" ) mean_survspline1( gamma0, gamma1, gamma2, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp" ) mean_survspline2( gamma0, gamma1, gamma2, gamma3, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp" ) mean_survspline3( gamma0, gamma1, gamma2, gamma3, gamma4, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp" ) mean_survspline4( gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp" ) mean_survspline5( gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp" ) mean_survspline6( gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp" ) mean_survspline7( gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp" ) rmst_survspline0( t, gamma0, gamma1, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", start = 0 ) rmst_survspline1( t, gamma0, gamma1, gamma2, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", start = 0 ) rmst_survspline2( t, gamma0, gamma1, gamma2, gamma3, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", start = 0 ) rmst_survspline3( t, gamma0, gamma1, gamma2, gamma3, gamma4, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", start = 0 ) rmst_survspline4( t, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", start = 0 ) rmst_survspline5( t, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", start = 0 ) rmst_survspline6( t, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", start = 0 ) rmst_survspline7( t, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots = c(-10, 10), scale = "hazard", timescale = "log", spline = "rp", start = 0 ) dsurvspline0( x, gamma0, gamma1, knots, scale = "hazard", timescale = "log", spline = "rp", log = FALSE ) dsurvspline1( x, gamma0, gamma1, gamma2, knots, scale = "hazard", timescale = "log", spline = "rp", log = FALSE ) dsurvspline2( x, gamma0, gamma1, gamma2, gamma3, knots, scale = "hazard", timescale = "log", spline = "rp", log = FALSE ) dsurvspline3( x, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale = "hazard", timescale = "log", spline = "rp", log = FALSE ) dsurvspline4( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale = "hazard", timescale = "log", spline = "rp", log = FALSE ) dsurvspline5( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale = "hazard", timescale = "log", spline = "rp", log = FALSE ) dsurvspline6( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale = "hazard", timescale = "log", spline = "rp", log = FALSE ) dsurvspline7( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale = "hazard", timescale = "log", spline = "rp", log = FALSE ) psurvspline0( q, gamma0, gamma1, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) psurvspline1( q, gamma0, gamma1, gamma2, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) psurvspline2( q, gamma0, gamma1, gamma2, gamma3, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) psurvspline3( q, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) psurvspline4( q, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) psurvspline5( q, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) psurvspline6( q, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) psurvspline7( q, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) qsurvspline0( p, gamma0, gamma1, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) qsurvspline1( p, gamma0, gamma1, gamma2, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) qsurvspline2( p, gamma0, gamma1, gamma2, gamma3, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) qsurvspline3( p, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) qsurvspline4( p, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) qsurvspline5( p, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) qsurvspline6( p, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) qsurvspline7( p, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale = "hazard", timescale = "log", spline = "rp", lower.tail = TRUE, log.p = FALSE ) rsurvspline0( n, gamma0, gamma1, knots, scale = "hazard", timescale = "log", spline = "rp" ) rsurvspline1( n, gamma0, gamma1, gamma2, knots, scale = "hazard", timescale = "log", spline = "rp" ) rsurvspline2( n, gamma0, gamma1, gamma2, gamma3, knots, scale = "hazard", timescale = "log", spline = "rp" ) rsurvspline3( n, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale = "hazard", timescale = "log", spline = "rp" ) rsurvspline4( n, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale = "hazard", timescale = "log", spline = "rp" ) rsurvspline5( n, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale = "hazard", timescale = "log", spline = "rp" ) rsurvspline6( n, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale = "hazard", timescale = "log", spline = "rp" ) rsurvspline7( n, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale = "hazard", timescale = "log", spline = "rp" ) hsurvspline0( x, gamma0, gamma1, knots, scale = "hazard", timescale = "log", spline = "rp" ) hsurvspline1( x, gamma0, gamma1, gamma2, knots, scale = "hazard", timescale = "log", spline = "rp" ) hsurvspline2( x, gamma0, gamma1, gamma2, gamma3, knots, scale = "hazard", timescale = "log", spline = "rp" ) hsurvspline3( x, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale = "hazard", timescale = "log", spline = "rp" ) hsurvspline4( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale = "hazard", timescale = "log", spline = "rp" ) hsurvspline5( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale = "hazard", timescale = "log", spline = "rp" ) hsurvspline6( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale = "hazard", timescale = "log", spline = "rp" ) hsurvspline7( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale = "hazard", timescale = "log", spline = "rp" ) Hsurvspline0( x, gamma0, gamma1, knots, scale = "hazard", timescale = "log", spline = "rp" ) Hsurvspline1( x, gamma0, gamma1, gamma2, knots, scale = "hazard", timescale = "log", spline = "rp" ) Hsurvspline2( x, gamma0, gamma1, gamma2, gamma3, knots, scale = "hazard", timescale = "log", spline = "rp" ) Hsurvspline3( x, gamma0, gamma1, gamma2, gamma3, gamma4, knots, scale = "hazard", timescale = "log", spline = "rp" ) Hsurvspline4( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, knots, scale = "hazard", timescale = "log", spline = "rp" ) Hsurvspline5( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, knots, scale = "hazard", timescale = "log", spline = "rp" ) Hsurvspline6( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, knots, scale = "hazard", timescale = "log", spline = "rp" ) Hsurvspline7( x, gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8, knots, scale = "hazard", timescale = "log", spline = "rp" ) } \arguments{ \item{gamma0, gamma1, gamma2, gamma3, gamma4, gamma5, gamma6, gamma7, gamma8}{Parameters describing the baseline spline function, as described in \code{\link{flexsurvspline}}.} \item{knots}{Locations of knots on the axis of log time, supplied in increasing order. Unlike in \code{\link{flexsurvspline}}, these include the two boundary knots. If there are no additional knots, the boundary locations are not used. If there are one or more additional knots, the boundary knots should be at or beyond the minimum and maximum values of the log times. In \code{\link{flexsurvspline}} these are exactly at the minimum and maximum values. This may in principle be supplied as a matrix, in the same way as for \code{gamma}, but in most applications the knots will be fixed.} \item{scale}{\code{"hazard"}, \code{"odds"}, or \code{"normal"}, as described in \code{\link{flexsurvspline}}. With the default of no knots in addition to the boundaries, this model reduces to the Weibull, log-logistic and log-normal respectively. The scale must be common to all times.} \item{timescale}{\code{"log"} or \code{"identity"} as described in \code{\link{flexsurvspline}}.} \item{spline}{\code{"rp"} to use the natural cubic spline basis described in Royston and Parmar. \code{"splines2ns"} to use the alternative natural cubic spline basis from the \code{splines2} package (Wang and Yan 2021), which may be better behaved due to the basis being orthogonal.} \item{start}{Optional left-truncation time or times. The returned restricted mean survival will be conditioned on survival up to this time.} \item{x, q, t}{Vector of times.} \item{log, log.p}{Return log density or probability.} \item{lower.tail}{logical; if TRUE (default), probabilities are \eqn{P(X \le x)}{P(X <= x)}, otherwise, \eqn{P(X > x)}{P(X > x)}.} \item{p}{Vector of probabilities.} \item{n}{Number of random numbers to simulate.} } \description{ Probability density, distribution, quantile, random generation, hazard, cumulative hazard, mean and restricted mean functions for the Royston/Parmar spline model, with one argument per parameter. For the equivalent functions with all parameters collected together in a single argument, see \code{\link{Survspline}}. } \details{ These functions go up to 7 spline knots, or 9 parameters. } \author{ Christopher Jackson } flexsurv/DESCRIPTION0000644000176200001440000000376014660035012013641 0ustar liggesusersPackage: flexsurv Type: Package Title: Flexible Parametric Survival and Multi-State Models Version: 2.3.2 Date: 2024-08-16 Authors@R: c(person("Christopher", "Jackson", email="chris.jackson@mrc-bsu.cam.ac.uk", role=c("aut", "cre")), person("Paul", "Metcalfe", role=c("ctb")), person("Jordan", "Amdahl", role=c("ctb")), person("Matthew T.", "Warkentin", role = c("ctb")), person("Michael", "Sweeting", role = c("ctb")), person("Kevin", "Kunzmann", role = c("ctb")) ) Description: Flexible parametric models for time-to-event data, including the Royston-Parmar spline model, generalized gamma and generalized F distributions. Any user-defined parametric distribution can be fitted, given at least an R function defining the probability density or hazard. There are also tools for fitting and predicting from fully parametric multi-state models, based on either cause-specific hazards or mixture models. License: GPL (>= 2) Depends: survival, R (>= 2.15.0) Imports: assertthat, deSolve, generics, magrittr, mstate (>= 0.2.10), Matrix, muhaz, mvtnorm, numDeriv, quadprog, Rcpp (>= 0.11.5), rlang, rstpm2, purrr, statmod, tibble, tidyr, dplyr, tidyselect, ggplot2 Encoding: UTF-8 Suggests: splines2, flexsurvcure, survminer, lubridate, rmarkdown, colorspace, eha, knitr, msm, testthat, TH.data, broom, covr URL: https://github.com/chjackson/flexsurv, http://chjackson.github.io/flexsurv/ BugReports: https://github.com/chjackson/flexsurv/issues VignetteBuilder: knitr LazyData: yes LinkingTo: Rcpp RoxygenNote: 7.3.1 NeedsCompilation: yes Packaged: 2024-08-16 15:05:50 UTC; Chris Author: Christopher Jackson [aut, cre], Paul Metcalfe [ctb], Jordan Amdahl [ctb], Matthew T. Warkentin [ctb], Michael Sweeting [ctb], Kevin Kunzmann [ctb] Maintainer: Christopher Jackson Repository: CRAN Date/Publication: 2024-08-17 05:50:02 UTC