generics/0000755000176200001440000000000013377763603012070 5ustar liggesusersgenerics/tests/0000755000176200001440000000000013361337045013220 5ustar liggesusersgenerics/tests/testthat.R0000644000176200001440000000007413361337045015204 0ustar liggesuserslibrary(testthat) library(generics) test_check("generics") generics/tests/testthat/0000755000176200001440000000000013377763603015072 5ustar liggesusersgenerics/tests/testthat/test-generics-extension.R0000644000176200001440000000103413361337045021767 0ustar liggesuserscontext("test-generics-extension") library(pkgload) library(testthat) # Setup ------------------------------------------------------------------------ # Load package and register methods load_all("testGenericsExtension") # Unload when finished testing teardown({ unload("testGenericsExtension") }) # Testing ---------------------------------------------------------------------- test_that("generics methods can be reexported and extended", { expect_known_cat( methods_rd("tidy"), "testGenericsExtension/test-1.txt" ) }) generics/tests/testthat/testSingleMethod/0000755000176200001440000000000013361337045020342 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/NAMESPACE0000644000176200001440000000014413361337045021560 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(single_method,default) export(single_method) generics/tests/testthat/testSingleMethod/R/0000755000176200001440000000000013361337045020543 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/R/a.r0000644000176200001440000000043313361337045021146 0ustar liggesusers#' Generic test #' #' #' @param x A parameter #' #' @rdname single-method #' #' @export single_method <- function(x) { UseMethod("single_method") } #' Test default #' #' @param x A parameter #' #' @rdname single-method-2 #' #' @export single_method.default <- function(x) { x } generics/tests/testthat/testSingleMethod/test-1.txt0000644000176200001440000000026413361337045022222 0ustar liggesusersSee the following help topics for more details about individual methods: \code{testSingleMethod} \itemize{ \item \code{\link[testSingleMethod]{single-method-2}}: \code{default} } generics/tests/testthat/testSingleMethod/DESCRIPTION0000644000176200001440000000033713361337045022053 0ustar liggesusersPackage: testSingleMethod Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testSingleMethod/man/0000755000176200001440000000000013361337045021115 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/man/single-method.Rd0000644000176200001440000000035613361337045024147 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{single_method} \alias{single_method} \title{Generic test} \usage{ single_method(x) } \arguments{ \item{x}{A parameter} } \description{ Generic test } generics/tests/testthat/testSingleMethod/man/single-method-2.Rd0000644000176200001440000000042013361337045024276 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{single_method.default} \alias{single_method.default} \title{Test default} \usage{ \method{single_method}{default}(x) } \arguments{ \item{x}{A parameter} } \description{ Test default } generics/tests/testthat/helper-skip_if_below_r_version.R0000644000176200001440000000023413361337045023361 0ustar liggesusersskip_if_below_r_version <- function(v) { testthat::skip_if( getRversion() < v, message = paste0("Skipping because R version is less than ", v)) } generics/tests/testthat/testGenericsExtension/0000755000176200001440000000000013361337045021414 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/NAMESPACE0000644000176200001440000000016313361337045022633 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(tidy,special_method) export(tidy) importFrom(generics,tidy) generics/tests/testthat/testGenericsExtension/R/0000755000176200001440000000000013361337045021615 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/R/a.r0000644000176200001440000000027413361337045022223 0ustar liggesusers#' @importFrom generics tidy #' @export generics::tidy #' Test default #' #' @param x A parameter #' #' @rdname tidy-special #' #' @export tidy.special_method <- function(x, ...) { x } generics/tests/testthat/testGenericsExtension/test-1.txt0000644000176200001440000000030213361337045023265 0ustar liggesusersSee the following help topics for more details about individual methods: \code{testGenericsExtension} \itemize{ \item \code{\link[testGenericsExtension]{tidy-special}}: \code{special_method} } generics/tests/testthat/testGenericsExtension/DESCRIPTION0000644000176200001440000000037013361337045023122 0ustar liggesusersPackage: testGenericsExtension Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 Imports: generics generics/tests/testthat/testGenericsExtension/man/0000755000176200001440000000000013361337045022167 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/man/tidy-special.Rd0000644000176200001440000000041713361337045025047 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{tidy.special_method} \alias{tidy.special_method} \title{Test default} \usage{ \method{tidy}{special_method}(x, ...) } \arguments{ \item{x}{A parameter} } \description{ Test default } generics/tests/testthat/testGenericsExtension/man/reexports.Rd0000644000176200001440000000060413361337045024511 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \docType{import} \name{reexports} \alias{reexports} \alias{tidy} \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]{tidy}}} }} generics/tests/testthat/testSameRd/0000755000176200001440000000000013361337045017133 5ustar liggesusersgenerics/tests/testthat/testSameRd/NAMESPACE0000644000176200001440000000005613361337045020353 0ustar liggesusers# Generated by roxygen2: do not edit by hand generics/tests/testthat/testSameRd/R/0000755000176200001440000000000013361337045017334 5ustar liggesusersgenerics/tests/testthat/testSameRd/R/a.r0000644000176200001440000000067613361337045017750 0ustar liggesusers#' Generic test for multiple methods on the same rd file #' #' Should be comma separated #' #' @param x A parameter #' #' @rdname same_rd_name #' same_rd_name <- function(x) { UseMethod("same_rd_name") } #' Test default #' #' @param x A parameter #' #' @rdname same_rd_name-2 same_rd_name.default <- function(x) { x } #' Test data frame #' #' @param x A parameter #' #' @rdname same_rd_name-2 same_rd_name.data.frame <- function(x) { x } generics/tests/testthat/testSameRd/test-1.txt0000644000176200001440000000027213361337045021012 0ustar liggesusersSee the following help topics for more details about individual methods: \code{testSameRd} \itemize{ \item \code{\link[testSameRd]{same_rd_name-2}}: \code{data.frame}, \code{default} } generics/tests/testthat/testSameRd/DESCRIPTION0000644000176200001440000000033413361337045020641 0ustar liggesusersPackage: testSameRd Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testSameRd/man/0000755000176200001440000000000013361337045017706 5ustar liggesusersgenerics/tests/testthat/testSameRd/man/same_rd_name-2.Rd0000644000176200001440000000057313361337045022753 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{same_rd_name.default} \alias{same_rd_name.default} \alias{same_rd_name.data.frame} \title{Test default} \usage{ \method{same_rd_name}{default}(x) \method{same_rd_name}{data.frame}(x) } \arguments{ \item{x}{A parameter} \item{x}{A parameter} } \description{ Test default Test data frame } generics/tests/testthat/testSameRd/man/same_rd_name.Rd0000644000176200001440000000044113361337045022606 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{same_rd_name} \alias{same_rd_name} \title{Generic test for multiple methods on the same rd file} \usage{ same_rd_name(x) } \arguments{ \item{x}{A parameter} } \description{ Should be comma separated } generics/tests/testthat/helper-expect_known_cat.R0000644000176200001440000000022013361337045022005 0ustar liggesusersexpect_known_cat <- function(object, file, update = FALSE) { testthat::expect_output_file(cat(object), file, update = update, print = TRUE) } generics/tests/testthat/testS4Docs/0000755000176200001440000000000013361337045017057 5ustar liggesusersgenerics/tests/testthat/testS4Docs/NAMESPACE0000644000176200001440000000013713361337045020277 0ustar liggesusers# Generated by roxygen2: do not edit by hand export(multi_method) exportMethods(multi_method) generics/tests/testthat/testS4Docs/test-2.txt0000644000176200001440000000057713361337045020747 0ustar liggesusersSee the following help topics for more details about individual methods: \code{testMultiMethod} \itemize{ \item \code{\link[testMultiMethod]{multi-method-2}}: \code{default} \item \code{\link[testMultiMethod]{multi-method-3}}: \code{data.frame} } \code{testS4Docs} \itemize{ \item \code{\link[testS4Docs]{multi_method}}: \code{ANY,ANY}, \code{numeric,ANY}, \code{numeric,integer} } generics/tests/testthat/testS4Docs/R/0000755000176200001440000000000013361337045017260 5ustar liggesusersgenerics/tests/testthat/testS4Docs/R/a.r0000644000176200001440000000055213361337045017665 0ustar liggesusers#' An s4 generic #' #' @export #' @aliases multi_method,ANY,ANY-method setGeneric("multi_method", function(x, y) { x }) #' @rdname multi_method #' @export setMethod("multi_method", signature(x = "numeric"), function(x, y) { x }) #' @rdname multi_method #' @export setMethod("multi_method", signature(x = "numeric", y = "integer"), function(x, y) { x }) generics/tests/testthat/testS4Docs/test-1.txt0000644000176200001440000000032113361337045020731 0ustar liggesusersSee the following help topics for more details about individual methods: \code{testS4Docs} \itemize{ \item \code{\link[testS4Docs]{multi_method}}: \code{ANY,ANY}, \code{numeric,ANY}, \code{numeric,integer} } generics/tests/testthat/testS4Docs/DESCRIPTION0000644000176200001440000000033113361337045020562 0ustar liggesusersPackage: testS4Docs Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testS4Docs/man/0000755000176200001440000000000013361337045017632 5ustar liggesusersgenerics/tests/testthat/testS4Docs/man/multi_method.Rd0000644000176200001440000000066213361337045022617 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \docType{methods} \name{multi_method} \alias{multi_method} \alias{multi_method,ANY,ANY-method} \alias{multi_method,numeric,ANY-method} \alias{multi_method,numeric,integer-method} \title{An s4 generic} \usage{ multi_method(x, y) \S4method{multi_method}{numeric,ANY}(x, y) \S4method{multi_method}{numeric,integer}(x, y) } \description{ An s4 generic } generics/tests/testthat/test-single-package.R0000644000176200001440000000132213361337045021030 0ustar liggesuserscontext("test-single-package") library(pkgload) library(testthat) # Setup ------------------------------------------------------------------------ # Load package and register methods load_all("testSingleMethod") load_all("testMultiMethod") # Unload when finished testing teardown({ unload("testSingleMethod") unload("testMultiMethod") }) # Testing ---------------------------------------------------------------------- test_that("single method is correctly itemized", { expect_known_cat( methods_rd("single_method"), "testSingleMethod/test-1.txt" ) }) test_that("multiple methods are correctly itemized", { expect_known_cat( methods_rd("multi_method"), "testMultiMethod/test-1.txt" ) }) generics/tests/testthat/test-same-rd.R0000644000176200001440000000077513361337045017521 0ustar liggesuserscontext("test-same-rd") library(pkgload) library(testthat) # Setup ------------------------------------------------------------------------ # Load package and register methods load_all("testSameRd") # Unload when finished testing teardown({ unload("testSameRd") }) # Testing ---------------------------------------------------------------------- test_that("multiple methods but same rdname are comma separated", { expect_known_cat( methods_rd("same_rd_name"), "testSameRd/test-1.txt" ) }) generics/tests/testthat/testMultiMethod/0000755000176200001440000000000013361337045020213 5ustar liggesusersgenerics/tests/testthat/testMultiMethod/NAMESPACE0000644000176200001440000000020413361337045021426 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(multi_method,data.frame) S3method(multi_method,default) export(multi_method) generics/tests/testthat/testMultiMethod/R/0000755000176200001440000000000013361337045020414 5ustar liggesusersgenerics/tests/testthat/testMultiMethod/R/a.r0000644000176200001440000000070313361337045021017 0ustar liggesusers#' Generic test for multiple methods #' #' #' @param x,y A parameter #' #' @rdname multi-method #' #' @export multi_method <- function(x, y) { UseMethod("multi_method") } #' Test default #' #' @param x,y A parameter #' #' @rdname multi-method-2 #' #' @export multi_method.default <- function(x, y) { x } #' Test data frame #' #' @param x,y A parameter #' #' @rdname multi-method-3 #' #' @export multi_method.data.frame <- function(x, y) { x } generics/tests/testthat/testMultiMethod/test-1.txt0000644000176200001440000000037013361337045022071 0ustar liggesusersSee the following help topics for more details about individual methods: \code{testMultiMethod} \itemize{ \item \code{\link[testMultiMethod]{multi-method-2}}: \code{default} \item \code{\link[testMultiMethod]{multi-method-3}}: \code{data.frame} } generics/tests/testthat/testMultiMethod/DESCRIPTION0000644000176200001440000000033613361337045021723 0ustar liggesusersPackage: testMultiMethod Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testMultiMethod/man/0000755000176200001440000000000013361337045020766 5ustar liggesusersgenerics/tests/testthat/testMultiMethod/man/multi-method-3.Rd0000644000176200001440000000044213361337045024025 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{multi_method.data.frame} \alias{multi_method.data.frame} \title{Test data frame} \usage{ \method{multi_method}{data.frame}(x, y) } \arguments{ \item{x, y}{A parameter} } \description{ Test data frame } generics/tests/testthat/testMultiMethod/man/multi-method.Rd0000644000176200001440000000043313361337045023665 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{multi_method} \alias{multi_method} \title{Generic test for multiple methods} \usage{ multi_method(x, y) } \arguments{ \item{x, y}{A parameter} } \description{ Generic test for multiple methods } generics/tests/testthat/testMultiMethod/man/multi-method-2.Rd0000644000176200001440000000042313361337045024023 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{multi_method.default} \alias{multi_method.default} \title{Test default} \usage{ \method{multi_method}{default}(x, y) } \arguments{ \item{x, y}{A parameter} } \description{ Test default } generics/tests/testthat/testMultiPackage/0000755000176200001440000000000013361337045020326 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/NAMESPACE0000644000176200001440000000005613361337045021546 0ustar liggesusers# Generated by roxygen2: do not edit by hand generics/tests/testthat/testMultiPackage/R/0000755000176200001440000000000013361337045020527 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/R/a.r0000644000176200001440000000017313361337045021133 0ustar liggesusers#' Test data frame #' #' @param x,y A parameter #' #' @rdname multi-method-4 multi_method.matrix <- function(x, y) { x } generics/tests/testthat/testMultiPackage/test-1.txt0000644000176200001440000000054013361337045022203 0ustar liggesusersSee the following help topics for more details about individual methods: \code{testMultiMethod} \itemize{ \item \code{\link[testMultiMethod]{multi-method-2}}: \code{default} \item \code{\link[testMultiMethod]{multi-method-3}}: \code{data.frame} } \code{testMultiPackage} \itemize{ \item \code{\link[testMultiPackage]{multi-method-4}}: \code{matrix} } generics/tests/testthat/testMultiPackage/DESCRIPTION0000644000176200001440000000034213361337045022033 0ustar liggesusersPackage: testMultiPackage Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testMultiPackage/man/0000755000176200001440000000000013361337045021101 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/man/multi-method-4.Rd0000644000176200001440000000041413361337045024140 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{multi_method.matrix} \alias{multi_method.matrix} \title{Test data frame} \usage{ multi_method.matrix(x, y) } \arguments{ \item{x, y}{A parameter} } \description{ Test data frame } generics/tests/testthat/test-special-cases.R0000644000176200001440000000042413361337045020674 0ustar liggesuserscontext("test-special-cases") test_that("no methods case returns default output", { expect_equal( methods_rd("methods_rd"), "No methods found in currently loaded packages." ) }) test_that("nonexistant generic is an error", { expect_error(methods_rd("xyz")) }) generics/tests/testthat/test-multiple-packages.R0000644000176200001440000000110413361337045021563 0ustar liggesuserscontext("test-multiple-packages") library(pkgload) library(testthat) # Setup ------------------------------------------------------------------------ # Load package and register methods load_all("testMultiMethod") load_all("testMultiPackage") # Unload when finished testing teardown({ unload("testMultiMethod") unload("testMultiPackage") }) # Testing ---------------------------------------------------------------------- test_that("multiple packages have multiple headers", { expect_known_cat( methods_rd("multi_method"), "testMultiPackage/test-1.txt" ) }) generics/tests/testthat/test-s4.R0000644000176200001440000000147713361337045016517 0ustar liggesuserscontext("test-s4") library(pkgload) library(testthat) # Setup ------------------------------------------------------------------------ # Load package and register methods load_all("testS4Docs") # Unload when finished testing teardown({ unload("testS4Docs") }) # Testing ---------------------------------------------------------------------- test_that("S4 bullets print with no issues", { skip_if_below_r_version("3.2") expect_known_cat( methods_rd("multi_method"), "testS4Docs/test-1.txt" ) }) # Load package and register methods load_all("testMultiMethod") # Unload when finished testing teardown({ unload("testMultiMethod") }) test_that("S4 and S3 packages can intermingle", { skip_if_below_r_version("3.2") expect_known_cat( methods_rd("multi_method"), "testS4Docs/test-2.txt" ) }) generics/NAMESPACE0000644000176200001440000000141513377642615013307 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(as.difftime,default) S3method(as.factor,default) S3method(as.ordered,default) S3method(intersect,default) S3method(is.element,default) S3method(setdiff,default) S3method(setequal,default) S3method(union,default) export(as.difftime) export(as.factor) export(as.ordered) export(augment) export(calculate) export(compile) export(components) export(equation) export(estfun) export(evaluate) export(explain) export(fit) export(fit_xy) export(generate) export(glance) export(hypothesize) export(interpolate) export(intersect) export(is.element) export(learn) export(prune) export(refit) export(setdiff) export(setequal) export(specify) export(tidy) export(train) export(union) export(var_imp) export(varying_args) export(visualize) generics/NEWS.md0000644000176200001440000000021313377636017013160 0ustar liggesusers# `generics` 0.0.2 * Removed the `data` argument to `augment` to resolve issues with `broom`. # `generics` 0.0.1 First CRAN version generics/R/0000755000176200001440000000000013377761360012267 5ustar liggesusersgenerics/R/specify.R0000644000176200001440000000042713361372265014052 0ustar liggesusers#' Specify variables or other quantities. #' #' @param x An object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("specify")} #' #' @export specify <- function(x, ...) { UseMethod("specify") } generics/R/interpolate.R0000644000176200001440000000110413361372265014727 0ustar liggesusers#' Interpolate missing values #' #' Interpolates missing values provided in the training dataset using the #' fitted model. #' #' @param object A fitted model object #' @param ... Other arguments passed to methods #' #' @return A dataset ([tibble::tibble()] or similar) of the same structure as #' the input dataset with missing values from the response variable replaced #' with interpolated values. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("interpolate")} #' #' @export interpolate <- function(object, ...) { UseMethod("interpolate") } generics/R/var_imp.R0000644000176200001440000000062013361372265014040 0ustar liggesusers#' Calculation of variable importance #' #' A generic method for calculating variable importance for model objects. #' #' @param object A fitted model object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("var_imp")} #' #' @inheritParams compile #' @export var_imp <- function(object, ...) { UseMethod("var_imp") } generics/R/docs.R0000644000176200001440000000724413361372265013344 0ustar liggesusers# Modified from sloop::methods_generic methods_find <- function(x) { info <- attr(utils::methods(x), "info") if (nrow(info) == 0) { info$topic <- character() return(info) } info$method <- rownames(info) rownames(info) <- NULL if (getRversion() < "3.2") { info$isS4 <- grepl("-method$", info$method) } # Simply class and source generic_esc <- gsub("\\.", "\\\\.", x) info$class <- gsub(paste0("^", generic_esc, "[.,]"), "", info$method) info$class <- gsub("-method$", "", info$class) info$source <- gsub(paste0(" for ", generic_esc), "", info$from) # Find package info$package <- lookup_package(x, info$class, info$isS4) # Find help topic path <- help_path(info$method, info$package) pieces <- strsplit(path, "/") info$topic <- vapply(pieces, last, character(1)) info[c("method", "class", "package", "topic", "visible", "source")] } methods_rd <- function(x) { methods <- methods_find(x) methods <- methods[!is.na(methods$topic), , drop = FALSE] if (nrow(methods) == 0) { return("No methods found in currently loaded packages.") } methods_by_package <- split(methods, methods$package) topics_by_package <- lapply(methods_by_package, function(x) { split(x, paste(x$topic, x$package, sep = ".")) }) make_bullets <- function(topics) { bullet_vec <- vapply( X = topics, FUN = function(x) { link <- paste0( "\\code{", "\\link[", x$package[[1]], "]", "{", x$topic[[1]], "}", "}" ) classes <- paste0("\\code{", x$class, "}", collapse = ", ") paste0("\\item ", link, ": ", classes) }, FUN.VALUE = character(1), USE.NAMES = FALSE ) paste0(bullet_vec, collapse = "\n") } make_header <- function(pkg) { paste0("\\code{", pkg, "}") } bullets <- lapply(topics_by_package, make_bullets) headers <- lapply(names(topics_by_package), make_header) help_msg <- paste0( "See the following help topics for more details about individual methods:\n" ) paste0( c(help_msg, paste( headers, "\\itemize{", bullets, "}", sep = "\n" ) ), collapse = "\n" ) } last <- function(x, n = 0) { if (length(x) <= n) { x[NA_integer_] } else { x[[length(x) - n]] } } help_path <- function(x, package) { help <- mapply(locate_help_doc, x, package, SIMPLIFY = FALSE) vapply(help, function(x) if (length(x) == 0) NA_character_ else as.character(x), FUN.VALUE = character(1) ) } locate_help_doc <- function(x, package) { help <- if (requireNamespace("pkgload", quietly = TRUE)) { shim_help <- get("shim_help", asNamespace("pkgload")) function(x, package = NULL) { tryCatch( expr = shim_help(x, (package)), error = function(e) character() ) } } else { utils::help } if (is.na(package)) { help(x) } else { help(x, (package)) } } as.character.dev_topic <- function(x, ...) { sub("[.]Rd$", "", x$path) } lookup_package <- function(generic, class, is_s4) { lookup_single_package <- function(generic, class, is_s4) { if (is_s4) { class <- strsplit(class, ",")[[1]] fn <- methods::getMethod(generic, class, optional = TRUE) } else { fn <- utils::getS3method(generic, class, optional = TRUE) } # Not found if (is.null(fn)) { return(NA_character_) } pkg <- utils::packageName(environment(fn)) # Function method found, but in a non-package environment if (is.null(pkg)) { return(NA_character_) } pkg } pkgs <- mapply(lookup_single_package, generic, class, is_s4, SIMPLIFY = FALSE) as.vector(pkgs, "character") } generics/R/explain.R0000644000176200001440000000051713361372265014050 0ustar liggesusers#' Explain details of an object #' #' @param x An object. See the individual method for specifics. #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("explain")} #' #' @inheritParams augment #' @export explain <- function(x, ...) { UseMethod("explain") } generics/R/sets.R0000644000176200001440000000425713361372265013373 0ustar liggesusers#' Set operations #' #' Union (`union()`), intersect (`intersect()`), difference (`setdiff()`), #' and equality (`setequal()`) for two vectors representing sets. Determine #' membership with `is.element()`. #' #' These functions override the set functions provided in base to make them #' generic so that packages can provide methods for different data types. The #' default methods call the base versions. #' #' @section Methods: #' #' \subsection{`intersect()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("intersect")} #' } #' #' \subsection{`union()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("union")} #' } #' #' \subsection{`setdiff()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("setdiff")} #' } #' #' \subsection{`setequal()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("setequal")} #' } #' #' \subsection{`is.element()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("is.element")} #' } #' #' @param x,y Vectors to combine. #' @param el,set Element and set to compare. #' @param ... Other arguments passed on to methods. #' @return For `union()`, `intersect()`, and `setdiff()`, a vector with all #' duplicate removed. #' #' For `setequal()` and `is.element()`, a logical `TRUE` or `FALSE`.` #' @name setops #' @examples #' intersect(1:5, 4:8) #' union(1:5, 4:8) #' #' setdiff(1:5, 4:8) #' setdiff(4:8, 1:5) NULL #' @rdname setops #' @export intersect <- function(x, y, ...) UseMethod("intersect") #' @rdname setops #' @export union <- function(x, y, ...) UseMethod("union") #' @rdname setops #' @export setdiff <- function(x, y, ...) UseMethod("setdiff") #' @rdname setops #' @export setequal <- function(x, y, ...) UseMethod("setequal") #' @rdname setops #' @export is.element <- function(el, set, ...) UseMethod("is.element") #' @export intersect.default <- function(x, y, ...) base::intersect(x, y, ...) #' @export union.default <- function(x, y, ...) base::union(x, y, ...) #' @export setdiff.default <- function(x, y, ...) base::setdiff(x, y, ...) #' @export setequal.default <- function(x, y, ...) base::setequal(x, y, ...) #' @export is.element.default <- function(el, set, ...) base::is.element(el, set, ...) generics/R/varying_args.R0000644000176200001440000000040413361372265015076 0ustar liggesusers#' Find any arguments that are not fully specified. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("varying_args")} #' #' @inheritParams compile #' @export varying_args <- function(object, ...) { UseMethod("varying_args") } generics/R/evaluate.R0000644000176200001440000000051113361372265014210 0ustar liggesusers#' Evaluate an object. #' #' @param x An object. See the individual method for specifics. #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("evaluate")} #' #' @inheritParams augment #' @export evaluate <- function(x, ...) { UseMethod("evaluate") } generics/R/estfun.R0000644000176200001440000000045413361372265013714 0ustar liggesusers#' Extracting the estimating functions of a fitted model. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("estfun")} #' #' @param x A fitted model object. #' @param ... Other arguments passed to methods #' @export estfun <- function(x, ...) { UseMethod("estfun") } generics/R/glance.R0000644000176200001440000000077613361372265013650 0ustar liggesusers#' Glance at an object #' #'#' Construct a single row summary "glance" of a model, fit, or other #' object #' #' glance methods always return either a one-row data frame (except on #' `NULL`, which returns an empty data frame) #' #' @param x model or other R object to convert to single-row data frame #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("glance")} #' #' @export glance <- function(x, ...) { UseMethod("glance") } generics/R/generics-package.R0000644000176200001440000000170513355770175015605 0ustar liggesusers#' generics: common S3 generics #' #' These are generic functions that can be used to minimize #' package dependencies when multiple packages have the same #' method. #' #' An attempt was made to use generic class signatures that were #' consistent with existing code. For example, \pkg{dplyr} and #' \pkg{lime} both have `explain()` methods that do very different #' things but both take `x` as their main object. Even though `x` #' would be different in those cases, this package provides access #' to the S3 generic so that other packages that may want to create #' `explain()` methods for their objects can do so without loading #' either of the other packages. #' #' For example, if a new `tidy()` method is being developed for a #' package, this lightweight package can be the required dependency #' to have access to the generic method (instead of depending on #' \pkg{broom} and installing its dependencies). #' #' @keywords internal "_PACKAGE" generics/R/learn.R0000644000176200001440000000061013361372265013503 0ustar liggesusers#' Estimate model parameters. #' #' Estimates parameters for a given model from a set of data. #' #' @param x An object. See the individual method for specifics. #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("learn")} #' #' @inheritParams compile #' @export learn <- function(x, ...) { UseMethod("learn") } generics/R/hypothesize.R0000644000176200001440000000042213361372265014756 0ustar liggesusers#' Construct hypotheses. #' #' @param x An object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("hypothesize")} #' #' @export hypothesize <- function(x, ...) { UseMethod("hypothesize") } generics/R/train.R0000644000176200001440000000055613361372265013530 0ustar liggesusers#' Estimate model parameters. #' #' Estimates parameters for a given model from a set of data. #' #' @param x An object. See the individual method for specifics. #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("train")} #' #' @export train <- function(x, ...) { UseMethod("train") } generics/R/augment.R0000644000176200001440000000065313377636015014054 0ustar liggesusers#' Augment data with information from an object #' #' @param x Model object or other R object with information to append to #' observations. #' @param ... Addition arguments to `augment` method. #' @return A [tibble::tibble()] with information about data points. #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("augment")} #' #' @export #' augment <- function(x, ...) { UseMethod("augment") } generics/R/tidy.R0000644000176200001440000000060613361372265013360 0ustar liggesusers#' Turn an object into a tidy tibble #' #' @param x An object to be converted into a tidy [tibble::tibble()]. #' @param ... Additional arguments to tidying method. #' @return A [tibble::tibble()] with information about model components. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("tidy")} #' #' @export tidy <- function(x, ...) { UseMethod("tidy") } generics/R/compile.R0000644000176200001440000000053313361372265014036 0ustar liggesusers#' Configure an object #' #' Finalizes or completes an object. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("compile")} #' #' @param object An object. See the individual method for specifics. #' @param ... Other arguments passed to methods #' @export compile <- function(object, ...) { UseMethod("compile") } generics/R/components.R0000644000176200001440000000123613361372265014574 0ustar liggesusers#' Extract components #' #' `components` can be used to extract elements from an object. #' #' For example, decomposition methods and some modelling techniques can be used #' to decompose a dataset into components of interest. This function is used #' to extract these components in a tidy data format. #' #' @param object A data separable object. #' @param ... Other arguments passed to methods #' #' @return A dataset ([tibble::tibble()] or similar) containing components from #' the object. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("components")} #' #' @export components <- function(object, ...) { UseMethod("components") } generics/R/fit.R0000644000176200001440000000042413361372265013167 0ustar liggesusers#' Estimate model parameters. #' #' Estimates parameters for a given model from a set of data. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("fit")} #' #' @inheritParams compile #' @export fit <- function(object, ...) { UseMethod("fit") } generics/R/fit_xy.R0000644000176200001440000000053713361372265013714 0ustar liggesusers#' Estimate model parameters. #' #' Estimates parameters for a given model from a set of data in the form of #' a set of predictors (`x`) and outcome(s) (`y`). #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("fit_xy")} #' #' @inheritParams compile #' @export fit_xy <- function(object, ...) { UseMethod("fit_xy") } generics/R/calculate.R0000644000176200001440000000041113361372265014336 0ustar liggesusers#' Calculate statistics. #' @param x An object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("calculate")} #' #' @export calculate <- function(x, ...) { UseMethod("calculate") } generics/R/generate.R0000644000176200001440000000042113361372265014174 0ustar liggesusers#' Generate values based on inputs #' @param x An object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("generate")} #' #' @export generate <- function(x, ...) { UseMethod("generate") } generics/R/equation.R0000644000176200001440000000063213361372265014233 0ustar liggesusers#' Model equations #' #' Display the mathematical representation of a fitted model. #' #' @param object A fitted model object. #' @param ... Other arguments passed to methods #' #' @return Markup output suitable for rendering the equation. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("equation")} #' #' @export equation <- function(object, ...) { UseMethod("equation") } generics/R/coercion.R0000644000176200001440000000474413361372265014217 0ustar liggesusers#' Factor coercion #' #' Coercion functions for creating factors from other existing objects. #' #' These functions override non-generic factor coercion functions provided #' in base so that packages can provide methods for different data types. The #' default methods call the base versions. #' #' @section Methods: #' #' \subsection{`as.factor()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.factor")} #' } #' #' \subsection{`as.ordered()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.ordered")} #' } #' #' #' @param x A vector of data. #' @param ... Other arguments passed on to methods. #' @return For `as.factor()`, a factor. For `as.ordered()`, #' an ordered factor. #' #' @name coercion-factor #' #' @examples #' as.factor(letters[1:5]) #' as.ordered(letters[1:5]) #' NULL #' @rdname coercion-factor #' @export as.factor <- function(x, ...) UseMethod("as.factor") #' @rdname coercion-factor #' @export as.ordered <- function(x, ...) UseMethod("as.ordered") #' @export as.factor.default <- function(x, ...) base::as.factor(x) #' @export as.ordered.default <- function(x, ...) base::as.ordered(x) #' Time difference coercion #' #' Coercion functions for creating `difftime` objects from other #' existing objects. #' #' This function overrides the non-generic `as.difftime()` function #' provided in base so that packages can provide methods for different data #' types. The default method call the base version. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.difftime")} #' #' @param tim A vector specifying a time interval. #' @param format A single character specifying the format of `tim` when it is #' a character. The default is a locale-specific time format. #' @param units A single character specifying units in which the results are #' desired. Required if `tim` is a numeric. #' @param ... Other arguments passed on to methods. #' @return A `difftime` object with an attribute indicating the units. #' #' @name coercion-time-difference #' #' @examples #' as.difftime(1:5, units = "secs") #' #' as.difftime(c("01:55:22", "01:55:25")) #' #' as.difftime("01", format = "%H") #' as.difftime("01", format = "%H", units = "secs") #' NULL #' @rdname coercion-time-difference #' @export as.difftime <- function(tim, ...) UseMethod("as.difftime") #' @rdname coercion-time-difference #' @export as.difftime.default <- function(tim, format = "%X", units = "auto", ...) base::as.difftime(tim = tim, format = format, units = units, ...) generics/R/prune.R0000644000176200001440000000042213361372265013534 0ustar liggesusers#' Prune or reduce an object #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("prune")} #' #' @param tree A fitted model object. #' @param ... Other arguments passed to methods #' @export prune <- function(tree, ...) { UseMethod("prune") } generics/R/visualize.R0000644000176200001440000000045113361372265014420 0ustar liggesusers#' Visualize a data set or object. #' #' @param x A data frame or other object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("visualize")} #' #' @export visualize <- function(x, ...) { UseMethod("visualize") } generics/R/refit.R0000644000176200001440000000042013361372265013512 0ustar liggesusers#' Refitting models #' #' @param object A fitted model object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("refit")} #' #' @export refit <- function(object, ...) { UseMethod("refit") } generics/README.md0000644000176200001440000000450413377631465013352 0ustar liggesusers # generics [![Build Status](https://travis-ci.org/r-lib/generics.svg?branch=master)](https://travis-ci.org/r-lib/generics) [![Coverage status](https://codecov.io/gh/r-lib/generics/branch/master/graph/badge.svg)](https://codecov.io/github/r-lib/generics?branch=master) ![](https://img.shields.io/badge/lifecycle-experimental-orange.svg) `generics` is designed to help package authors reduce dependencies by providing a set of generic methods that can be imported. For example, if a package author wanted to include a `tidy` method for their object, they would have to import the `broom` package to do so. This would work but would potentially increase the number of package dependencies required to install and/or test the package. ## Installation To install `generics` from CRAN, use: ``` r install.packages("generics") ``` To install the development version, use: ``` r install.packages("devtools") devtools::install_github("r-lib/generics") ``` ## Usage `generics` is a simple, lightweight package that contains S3 generics to be used by other packages. Some examples are: ``` r library(generics) #> #> Attaching package: 'generics' #> The following objects are masked from 'package:base': #> #> as.difftime, as.factor, as.ordered, intersect, is.element, #> setdiff, setequal, union fit #> function (object, ...) #> { #> UseMethod("fit") #> } #> #> tidy #> function (x, ...) #> { #> UseMethod("tidy") #> } #> #> ``` To use `generics` with your package, we recommend that you import and re-export the generic(s) of interest. For example, if you want to provide a method for the S3 `explain()` method, you’d using the following `roxygen2` code: ``` r #' @importFrom generics explain #' @export generics::explain ``` As an example, the [recipes](https://github.com/tidymodels/recipes) package defines a number of `tidy()` S3 methods by importing this package (whereas it previously depended on `broom`). ## Documentation When searching for help on a method that is exported from `generics` by one or more packages, using `?method` will show entries for all exported methods. If the version from `generics` is selected, the Methods section dynamically lists all specific methods exported by any loaded packages. generics/MD50000644000176200001440000001416713377763603012411 0ustar liggesuserse626658d1a86e7775c0f083313da8d64 *DESCRIPTION 74d5a1914fe128593e981fb7c468e479 *NAMESPACE 371f2e22d267db7caacc754a5c7325f1 *NEWS.md a1bd47ef344ca3b8c8e16bfbd0fa120e *R/augment.R 1ec5c5e1d2f1f73ff275fd1091a20b3e *R/calculate.R 775f146887bd51d40b8c57dcc03a57c5 *R/coercion.R 5257de8b9a5dcf09e45aaa0ae70ab9bf *R/compile.R c5265a01d3e9cb31052efff4d3839064 *R/components.R 670233bee1a9580a5e48e734d012d1e6 *R/docs.R 8dd18dc4efae761ba046da933443caea *R/equation.R 4fe6ca98c96c3066b004473e897c15ff *R/estfun.R 93c819efe6c81847ec894f64c948624f *R/evaluate.R 7f67dc3b413b19fb3aefbe488c7831f2 *R/explain.R bb7d63cdce04e8b7fdeb1cabd3d093e3 *R/fit.R 77aed72c740584b38ef42c2d07b1d733 *R/fit_xy.R 3e92c1d331a30fc064a8185ad352c484 *R/generate.R d9a1ddf6e6410911926a4265667539ee *R/generics-package.R d951ab27b6b405bb991c3cac41c13300 *R/glance.R da90990e27342ce15a6806d3d0905082 *R/hypothesize.R eedc6ed8f894f7e569a0133b55fcbb68 *R/interpolate.R 53ee18a39fbfd5f52528d077d862f745 *R/learn.R 033d195099df7924af3b759e5f34f332 *R/prune.R 32d94e7a205c33d20aab3dcdd879e88b *R/refit.R 7bcb1db05f0ecf23dca2aa6d5ff385ae *R/sets.R 1ef466ed87482aeb8e2a5c79d4b881c7 *R/specify.R 308fea1188c72f14b7f877ade546c09c *R/tidy.R 11c48f1eea847f278a4d3a868ae0dc11 *R/train.R 308a234672bf50facd5913883501b3f4 *R/var_imp.R cf7ec6cf9623759597133947bda96adc *R/varying_args.R 6b47983c74b128cabf453745e4c39779 *R/visualize.R 320aede256a0f9a4ef7de8a767a68b26 *README.md 58a15afdeebe5de9144aec7666d06e55 *build/generics.pdf 523b56b30a4c9ac8c807d8ccda8d344d *man/augment.Rd 83ab075348313b46dc2e2d519b1c1341 *man/calculate.Rd 4c48614ad02aedc37c68cdeb344b5d3d *man/coercion-factor.Rd deb545088c9a00e968319b13b0e49b3c *man/coercion-time-difference.Rd 998985c56353e5273cc536eb1bd7ff60 *man/compile.Rd 21862abe1685e13d29f5a9f75a26f393 *man/components.Rd f65f1ce688a37aa6f34e102882f580ff *man/equation.Rd b4ed2df1beedf0cd3c730e680635873e *man/estfun.Rd 32fa1cace23d3ee2c3fa61f000d6a17c *man/evaluate.Rd acd4cb06baf8de4745b7516be781b758 *man/explain.Rd 1f2773e5f0794259365b7961944a5102 *man/fit.Rd 04942f4c5a5e0a82c3277d2aaf9b9bfb *man/fit_xy.Rd b92626134335db76c2d30c4a57394cab *man/generate.Rd 3e21422eac5f8c5f4c5446936e3bd64b *man/generics-package.Rd ab1f80ebb4afd401e871cd4ce9700788 *man/glance.Rd cf4879ac57cf58bf6645291b80ca2fa7 *man/hypothesize.Rd 3d7f18e74b7478ff2f64d5932f92dbbc *man/interpolate.Rd ddf1c70bd453d5f21d57da88ccd36d41 *man/learn.Rd bb0bebb75f24031c553309c68b0f982d *man/prune.Rd 90fd18460d2f637ab17d18e03672e550 *man/refit.Rd c66c4107f6fb877b4e500ecf92f3c381 *man/setops.Rd d87bc36ec4adcf4fe6e368aff5247647 *man/specify.Rd 346fe4de2ab6f2715e499253fb790a6d *man/tidy.Rd aa3497002c683594476b2c3e9adf68d6 *man/train.Rd 8f3b62d34cd522e2a7a0e966834ad257 *man/var_imp.Rd 4c918d2bc5a75c124201f8bf07fa77ac *man/varying_args.Rd 3c0925e7779785f7d71c85d98fd76208 *man/visualize.Rd 10e57227abf625e9bd94bb01a28d18bf *tests/testthat.R ceea11f44b974aef9e26ab150aab673f *tests/testthat/helper-expect_known_cat.R 6cdd3ba89c26307e3aa70daf395fb971 *tests/testthat/helper-skip_if_below_r_version.R 18ad9143c057e31f3e351d9be3128a5f *tests/testthat/test-generics-extension.R 09588d4a83a3587bdd333f54be9cf29d *tests/testthat/test-multiple-packages.R bcfa3e09547c89091fed28b90c8e832d *tests/testthat/test-s4.R 84bfad064551d43f8dc8aebd482e7d98 *tests/testthat/test-same-rd.R 5631ec81ba181da8dca27936b45e114d *tests/testthat/test-single-package.R e8d2ae94bb4ad58f3e5b01eaebaaa175 *tests/testthat/test-special-cases.R 57ca61f2caa8c713a6fa35ceed78fb34 *tests/testthat/testGenericsExtension/DESCRIPTION 65070781ab853dbeee0ed430afba2e74 *tests/testthat/testGenericsExtension/NAMESPACE bed46e9148b57983b54a9a86e095aaa3 *tests/testthat/testGenericsExtension/R/a.r dc65ad9d2cdf35e10bdab6dcfc66a242 *tests/testthat/testGenericsExtension/man/reexports.Rd 6d14ba2857c093f7265f3f8fdcbf0c4c *tests/testthat/testGenericsExtension/man/tidy-special.Rd 87138608433ba3990f9965818abe22b6 *tests/testthat/testGenericsExtension/test-1.txt d9be3e139b99a5645efc089f523db68c *tests/testthat/testMultiMethod/DESCRIPTION 050e863e2159229598a36ec227dff549 *tests/testthat/testMultiMethod/NAMESPACE 73970c5c20aace9f4ce4983e815c8841 *tests/testthat/testMultiMethod/R/a.r e4e546a50ba081cefe0c96a889c15cd2 *tests/testthat/testMultiMethod/man/multi-method-2.Rd 7e5b097d6fd3e9c1de9e51d1906c93b4 *tests/testthat/testMultiMethod/man/multi-method-3.Rd 945c59174d06a10d0e2ae1d633ea505f *tests/testthat/testMultiMethod/man/multi-method.Rd 76f283bd5f462355d920ff9a07bee521 *tests/testthat/testMultiMethod/test-1.txt c3a3d5f5c29264cad2d4593652f65a1b *tests/testthat/testMultiPackage/DESCRIPTION dc21c19f0d6968ee25d441b2cf46017d *tests/testthat/testMultiPackage/NAMESPACE 5282094581ee4a4030780dcff58afebb *tests/testthat/testMultiPackage/R/a.r d861a94cfb80732a6f4d71e19679ff7a *tests/testthat/testMultiPackage/man/multi-method-4.Rd 8c6da356c8469b2a7304dca507c4f568 *tests/testthat/testMultiPackage/test-1.txt 23f5d58a38a3e6f85f64b277678f9159 *tests/testthat/testS4Docs/DESCRIPTION 04cb102d01a92edd5557d6bb88d6340e *tests/testthat/testS4Docs/NAMESPACE 6c52dc5190d32bfa35db1cba764f3af6 *tests/testthat/testS4Docs/R/a.r 9bcff2bf60bbc365fea8833ef9a3a19a *tests/testthat/testS4Docs/man/multi_method.Rd 86c33901b8e4f3cedf120b79d5c71021 *tests/testthat/testS4Docs/test-1.txt 8806395586113327644b7855ac883dc8 *tests/testthat/testS4Docs/test-2.txt 25f65c26045a9f6695435ef633ed69c4 *tests/testthat/testSameRd/DESCRIPTION dc21c19f0d6968ee25d441b2cf46017d *tests/testthat/testSameRd/NAMESPACE a8d34885c4196c1757a723f7751e3ce4 *tests/testthat/testSameRd/R/a.r ae4d8e21ea85356ea5781f18cdead6e9 *tests/testthat/testSameRd/man/same_rd_name-2.Rd e1858acfbc77a13308bd43048c271546 *tests/testthat/testSameRd/man/same_rd_name.Rd ac455045be9c49535b9e86bdb7eb1ebf *tests/testthat/testSameRd/test-1.txt 9484eb32bebc16a7115ba40c410ff99b *tests/testthat/testSingleMethod/DESCRIPTION b7888be3ed78d52a045d613d8f8c01ae *tests/testthat/testSingleMethod/NAMESPACE 8c0260df5bd5c720ed13cd70fb661207 *tests/testthat/testSingleMethod/R/a.r dd9555882a4a87cb61b91b33f2ed2ec3 *tests/testthat/testSingleMethod/man/single-method-2.Rd 5c51ca0b0dcf6c4f6b5bdf02ed4fa451 *tests/testthat/testSingleMethod/man/single-method.Rd 12656e47cb686334372b83dc6749934b *tests/testthat/testSingleMethod/test-1.txt generics/build/0000755000176200001440000000000013377761360013165 5ustar liggesusersgenerics/build/generics.pdf0000644000176200001440000043643213377761360015473 0ustar liggesusers%PDF-1.5 % 133 0 obj << /Length 1271 /Filter /FlateDecode >> stream xYmo6_o!) l&Aw_%FW/i_H;VhVkixw|Da+u21 -Y  [QkX;ڗvJfRY|\U" &^X> r)C~iU*' qURBuM1 έ<r%,@XHl*Lw_>aFtԔw GHYTkUy}ַO tiYsZkD&RtQ#~lW@ډ4y깾VF\>6+e%eWlݎ)4,YxU'}wܪeR׽U+K6k r0n %,O2dG@WLX E⤦v0Db}$2!R~u!-.6TsAGAY,fo>A+GeBصߪF~ͫP蒍->2Tκǰ Wi?`L*φ?p.#"k;WE!ݢA֌ `FتΕ&bcxնAn P˃X?(t.=몺m-g5?*fPo e2/B"Sأ ui*v6dk; |UG=1feWQ%pc*j fe.^:`- c/5M*Z}ew$ Rk=X D]ZSq bW g kPooӅm'Ԧ_ݤ=)@Gyܩzb'z*Tnu {mPGk:޿ &Դ@xm,Yp{N$]4.]iNJ8u9!iO]Կ%O*=GI9P1{rX1ir!vׅgϵ794y ܟP0)@a;`Ϡ-}#$O3kRW!D2.f0܋E"Tu6]ٽ [V7c<&1W #_2'c;qI;.ͣ8^{,yŤg|[&J{ﴘ *[ gQZ\?'] endstream endobj 166 0 obj << /Length 1105 /Filter /FlateDecode >> stream xYKs6WHΔ0֙f&i@”UJ. PmZC'Q2}AX`o"|vv&f1/%s#,9C ],|3qv@8nHH/~(;\1v&d:hl #hh$?Cs%KFUꚯed((1=' 3%MM+e~LΦS@S j7B$6͟Mž MiCm;j۔:b5$]ֵiEO@OFS'Q@o{6}BĤTIޞ~ 9ߚCIuoVfGU\` 3 A||qчn1lV9r[a{jGPHg1,ටh<ǒ(fbJb!i=!Ta ,%E7sD(gT *- kiP^ qd앟= 3%K ՗ḏd J|7NKQ2%8Ic}(٭v(3Ar8 q8 & Kĵ>[7˲Z'M^n\Dz % ʵ{K|oxgCI`=&[}^qjʷ&ǭ` 58Z{g<0m =8@kt,rw6 #4684vi0'-wo04^1`5<+jk!,h۹kʫ#UN^*x' J`r_^1Ó!Yєln ?VeD1b#0 PD^np0,?W)ivv{2@ ) 9õֶycz0C#'4pB)v>.&PswxVf_>oŢOgk޽M߱昰=G7Ywz2"%w_GA`!H/HYm OW:+Iq2ɬMۿreglaS'MXL9ȱl?:uMՌh(uUph ۺotiCcO<!`; endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 797 /Length 1751 /Filter /FlateDecode >> stream xڽYMo7WhI6@ v M|嵽,*fEi7V0RYPGh& /ID%HA䢠 &AQh @knGQ(h@Ga#H 0i%Ρh].\X: G+ICE x^>A=K V $S`)1{&XBk|E F 4>C ;EQ Hi~SanҠCnҁ]װEjܘ۲W=G,5݃^7X=o݃~UxenTc?|9W2qrR;tvzLFr1]G9_j~ (VI )-ɘ.T|t2PL\6.>!1ij[m?Og:+Vr,I]?0p_&j잎7'a-a'N5k 䀻X^YRM.NONzx[U}R[ߌhq ?[8eIj IQcuxٿh&NcM)/91uH2B@^Hc8Nd![nr}|ra98'dΆBIs0pp-V}H݀ɆU`9W@I  _Ӧ9s eABDJ@I]! muPRÎ_xԸI  2ҷr\? 4Rҵ? ($pq pBJ8@#A(?)Ic@K,>,)[-{ڬ 9YHD2qm)yz2l- 'J9w|:(D|Jŧ"g")u&]Ůeq벸uYܺ,]x,!4 jש$vUp?pVn eH8nuҚxP>Y2;jk>)c:,r= |vdtY(l;(SNz2RyXH~)`e?F%.Q8,e섂Ek=h$#R,.%O{԰\Cn8v߮V/۷ƻk.v458! 1Q_Z?^66 =k ` endstream endobj 189 0 obj << /Length 945 /Filter /FlateDecode >> stream xVr6+$gLO.d&ttx̄rZ,Yvv#sA bv9iSQB0)R)3(uT4q²ȴEle^ئo/Tވ3"]ΩM SnћnWĜE>/猌PB5DyGi!כ8G͗8iO"%!t,c5Mߪ^kPH/M^rp{b@8_Σn1> Aw)%H6#?FR58$GzrOiSA L~J0c{PӡX%\fQK@y=]X *+48U{W+jk} ^.wyk_0hMn*,P gf5{›۟g!]f=<| (Sҫb3Bh@qWK"|8pOԙ > stream xڝWmo6_! Q/![ a7 hAh,~G%[::sGzkz.~^.^Kd1c^S"яO qPД$(+&y꫶MzRQ&TB l]., xD(^]|D&{0ޣ]"q.>mL(#%4!TdSoW_!h>QI2/4OP?H惪@rFX5Y0━9`ؠY2XCoTWzO;!C $8j_F[^ "hUz̙fCD$lAޤWau}0*@6f(g_}՝f?+DeBp򵚅i'GRfl 1ǪWpU/[oz\Ȥ-H6wz~\} Ǔo=.vӮ[U)~RHb(>ć$# 퐰^}ɐDz:Ej X^/Cg8d1a@Ů1YU7kUܪfnlkڱUc޲;DL}^3ɠ>x\J J"w㌞?zN3bo>H&0é(ȐmlCq>I\Xj.T-6 8 ]4!( endstream endobj 220 0 obj << /Length 978 /Filter /FlateDecode >> stream xVɒ6+p$L 7o*W%J. I\8_nD g&vه)@ׯ`@ibyzE$y&d'1 qmIyE[t7Oo k&!2v1Zlsz? !)ͻViM4|Wh*\.q5$)k4t%I<+> mLH3*pot#+!(Ga0-Hq{q}T@m6x6e&"cY̐bx@(Œ[ϻXƏBo J< HgkBRᨬnJ.GYycavaoy,B.^YD8DG8>ït4Ÿ}k+"T $AʿHs>ڱ)Lc׹@/vje)>4PcxE,~l1Y.6RM?i_kX3ǡOg4NML&SM=K2Yc)8<v~lGH/ey (tBP][۽E)7h~\4> stream xUMs0W(f$Nd&t@@i! ɿ'u>S}%|vpĊ+4_ F)BD :ʻ 1("IDB~n̢tf>nf @D(]/)`R_5 #a `^o;c0Ҁ!iSl@O$@$Ù.<_kOr4}T̉%z ,ܡ ΫG,LZ!%tOMU$6+~NJ_&[!pZ7z\\1e1:seJχdzeB %-&YTSvx *iySKJ1!}v |ǦyX[>w&T2>I!C=.]aUyw}D hja'4aTIXAf6th/V8)Z &u[93j7mnzQփ7ҡ^ y^^=4Y _JA+cݸm];;{(lGڵ'Aǥny$Dݨ*$O~ڣ[SwQ6 6J]KaJ6>`Ly>pzHtPOn gMĹf00f;IZWP5}ABJhW8 gS0! .? endstream endobj 249 0 obj << /Length 602 /Filter /FlateDecode >> stream xMo@{%﵏EH@B coRS¿gv'F'cygv^fIpv9JqB)`.Ҋ`&4aVE4\e&Wg)A֊AL_ov_r1 m|FpA,^!XJn#A)ւøB!kE0+E0 "z,g{N\&aVoDymT H1 feޙ6_l=)[I !Ւ^R$U8dE1,=ko"qS#}n9JpH_R_[" @b>|9[Mqv> stream xVMO@Wіel ڪ"= n8  *P/\x罙7!h8{?KJX D \$(M9C2s>pRb)b] qgfNEBIKaKḼ]TDkVR ξ:`18NͭIf'΃MX.aD&5`Q7}ey4kDL~_ܾ^Ⱥ 1 >M> stream xXn7Wh_ج!%|p"Qfi8Wm$ڣ r,.VUJP Trh H0͊q Tk kP`LQS |YC6[(9y *>oV Rh V\;ĊbI)A qV Nx)6W%>C/%PU%nXr=➸ueOL1?Ryp2X-βK,pN.g $7௨CT,3UVvn2tQ <pQ͆bFp}D|KzK$@1{jT bbHl)ٷTDx)όFSFlmHdOdoUCfXkC\0"dԂ*b`MK| _w-0|+ Wd<)6O d.Թ`I6ȵcœKs 幹@D1 %6 pDiv7NQԏ3njX\_\>}80KNJ{7*qqWi~_OVN{0bux0]-/O'_ͲfAk{ݎ/;[[^D;q~SQ6ws`Tu)Eà .bFBI.0 RLE]`)N%Yi3JL,5!D7ɨ]& lXBѺIv^j=|0>_^Mһ'n) -ZSTTSF *p< ˀ?:x|gW_ӧ?{ܾW^~?kV 3,]6`6X`S,b+: u 7wxyo1VtTd,elα_S$jEE[ebzoZ??7N=84n`?񅂨Q'i ͼ 0SڇL;±HrǙ<6y7hw rlwnlc0Q[i'83 9bSYtXv'+&]Q{(wW4w7 ԏ)nRH|Q@!MoSH(o`"8g8!L(ls+[N N%ֹ65X̏TCY' jZK;ȴ%/2b&pժtIc˝6>:&hޭ3ο$FYT4|~/摐I endstream endobj 276 0 obj << /Length 808 /Filter /FlateDecode >> stream xVR0+4tQ{&^RaZ:m X(2q0 X+sQZ NG&C NB7D9`Qx.Х%$-IЅDψB uq(-F` TZZ RskaWwI=%8)HVvQh ^ڞknPGF!Tm82ɪ6nx* x$DŽ;45.PLf躱[YcKh5۫fkDL~1YZ;4XnmjUmiJ-3Kۺ6D{=WlU䊥r Jk/%8J^z|7v52}+vЖÌTe;M@B/R^c>|}Fm*~L6Yȍԕ 6mQz`hnj&^T+һokdM^Mކ aVT^&Ζ3&U]z> stream xVr0+g*YeuWe`‰G\=:BN^sq #^OFG XA&׈Y#M2tQ_MΏNdqX@s& Z,1 "mwիۈ zM`4+GWey`K$9ZRC}_5T2B C80 Ź[B:<`X$gTt(Iz&T$/ OhI -!Qlj65tֺ1pئØ5N@:M@O*˝oYAS.IDnc SzfޕYj/@PŰ<M&N*[z hcx#x SIpŃ/|%j읩KLnkVvQfjWEh +@!3i-D1`}x1]Y7)RQzV3Շ _ ƢʩaEzzci(7Zڃnpм=6)Qo&KTIga]~qIhض}ҩQ"VOQGw9[a-C[Kki#oG耟}a7@:S/_J9Qyicb n *-;k37M=N s4=o1a@" e`L[@to̻n=qTJ7MB5C"}7 z;7֍M: q|7~c endstream endobj 306 0 obj << /Length 684 /Filter /FlateDecode >> stream xUR0+gj-{If0L8Jג yAa tJW9\P4C}Oc!PAgh2ER"dTFI*8 ui8_˕A.!#I3bI?SR(6:KE~IJst};o{t9]($Crmw0IQo:ND㶋Sk=BCTjMO{fIs:NL"P:t_fin=uX({M=p/K &fMK<_/0knb^ H|r幩Q'9M8I)ńS@٪c? / nzo]ACiK@k]Y'RJ|/>YMSP~*(nZW9e $ rΥU{2}*S˲uh;?7"W SHȉ[>=M?BM߭ H2&Su=1%HHƋ׵?.\fϰ.y 8W0r.je&."/B^ Gó3^Nf+w:Sop0k&6\t5 +{MG򺎔#oHېv\ endstream endobj 319 0 obj << /Length 1062 /Filter /FlateDecode >> stream xVI6W(U1AڢKGjdINq-ydד@/6E{#fMr',A-`.&KЦD"֟6o_|B3I"AiҭHzp$S.Q_}DP o<zp{$(ũpѻoGy<#SDP)<^o+3yFGK~_K鏄 c~sEޖ&. Ls&t!IJ0PUgr2h 4<˃A3c8,;Zs Lbɸ?{)y8΀H|$w%!U$!_n֜Ef?ˉ Sdƌx潨K%SDށ928Ȏ)O\ >ͯf{H@0FCiTmvbsM]O3r.86dZМY)vM'V+}Uݪru y-rqPdи_D±w7s"$;:7-fE}r\i>~TS\,9[L<5l^'tTsY8βV%2AXVelAUa/ÛjlaD㼢:SՖ<BKs6tc}`ф˞m]P1xRc!$$a_5zl {+$Ю꼠dٱZCi2rॶ!W7|!Q18gr;$naOv]s:0g sV4d7}Bz,)%>_555Ǩbv,M'i-Xߦ*Fpfl]+y[PN Y {٦xN=b@ܡCUx!C;+3״%@N*A):r]@{^npKesv֣[uPu$y&=`T` ? endstream endobj 338 0 obj << /Length 937 /Filter /FlateDecode >> stream xVˎJ+%Rvn+]]@0 aΌNlgjb;v`XX$qUuqwbg(ƣӊ[w~,*| >,XA(;OXPѝs2yG,QgK2Z.iVEHWSCx 밋{" ~). TQ~2N [oYnWŴG)@y8n=Iך-f3X`Xc#,S )_z%I%ZI [6uFh}w7!>`h~9Dəp\4)nA9n\ hӒ99GHa[7קvx 0BZ\w3G!QF<L<'XJ-Ru>:!3l/Fhl&L-S@Z(Hop0RIXYfw[%Jhmk}r$íaz8J0**Od?)M@߄ShqFi7~+DC#i 直b ןhP!* џWebDڗ2l^攀fڌSS;Ue?^ξ(,iv=7Tz$\W'dʅ5a|JPkl'v١k霛} oWi9RQG\-o[-l+"na?b_ZSIl}5nB>neRQAh6>:n@N;F~>.k`>NnH9. =ài mO?0ϕyg5E|?}c#> stream xڽV[o0~W1[loNI^>t$ݿ߉ZMAq~48(Ʊd&HI#(CW<&Xjs*> ~ (De QZ n%[FvjX3mebgd<H"Eg{=pic*,y8?;F4H\) 7Ux<3vŝ ȘaI(`R&iA`M^X9ѐEu59wa,0̀d˞ .zcxخbe^'SS}_<c8pVMM}_0ɻ9 )@g,\eUyg$3~"I{?CW[Mkum q0j_>ΡGB\qA,ڳ r"L~bF٫GERY.UBY4o(|&UYlAm|-'n̒&AU@ _PJABp(KͭMٲk;W/\5"'Gtt`ڛ(tȕoeB!A\ endstream endobj 365 0 obj << /Length 798 /Filter /FlateDecode >> stream xՖ]O0+|HwK$m%[>$evJCu=9~Sϳ (Ʊb P(TK818l#@MFI^e~e%՝4dr]kTwt폪6X~;]U 3@*?@ 40YDmu6jvo+΁"Orϧ1cdj;e404Ҏe2#Up Thޫ~7qLq]y7c s1]AV_ *lhRAޙ֖~wC<[']6]Eu&i'zFN0 =:oi#᭒N`W۹Aye*2R6 O{zWٮKM:LgCViy,u{  bjm.9 l+QϲicNKCIC|Ht]$Ì k =O u%UjA< 1Ћ.0Kmt߽޴fHJoݖPwK61i̥}u{oҙ-@ndߴy|EJ3 Uֳ endstream endobj 288 0 obj << /Type /ObjStm /N 100 /First 869 /Length 1307 /Filter /FlateDecode >> stream xXMo7 ϯ1hDCR`h!Cl nlq$xQ^ am")>R\4@r)ĂRF֐\1)pi9A\9h?֠L|^UW'p KTW_[hZa"W|iІM!@YŠ&sq 4HN}pV=40|%lSX U|}M2$X%p=!, eHJ& nfr Ղeb [&6 .4f`c鑇Y1N i͌}Z {$a'OH.qhy<d4\$`]Q`i? Rs`4BR}Z]VFp+$8"ش R+0@f ZXS302R(Db)yCd64H5qk%P&!5U쒒{DT*b q6<w@0BXj: ㋿Z?VdޮwQNdnbn"$e͇p ЦU(v6@T KpZi8OBkX G?oߞ-a)kpα!ml%DѫCXFNͨ Qz-v0%Ū-GA(`/ptcbZ:j>Q俞xYqB^'P7>\<_m)8/VJB]C-݆CzSGrZyz>ߟoϗ?jZ!??ONiMpƣVQfiQٻDmܣ)& N~_Ճ_{uGigs}M ^,xsEς>^Eς>^,xs.!F^|qt< NbL9G. y >pBY?JŦ`*2'/p.s[݃QPz;\c½ fiC`H3t,5B`Q4ZِtQgf Yfo)==K\yDe6kp{zXFṰ6; Ǣdzj'7G;8EDZ>uy|TnbM> stream xڝMo0>:;T "RzHwٔ8 _'mNv<}!hz΢ %P(U$g(+5*..8eTԗr~Tn߶OXm}6 PQG7>t|hsHR~>GvՎׁ9>%E)Ia_&jEfN¥y̻<8ۅMӎ탍%ECEH`A"M&jFo+걫́ʽڃ!kP \j9r1A j})!&}&A\|et7˯DW ]mk9Ý+ -MIlzILڼs;ΞI. `Dh}x1ǩ ӽ'c-CkYm{e7pKVvwۥw Skݗ &7MM+m; Y G&/m9*طX*ߣE$-4 endstream endobj 425 0 obj << /Length 964 /Filter /FlateDecode >> stream xXKo8Wj× 4E{]߲=2 eWd,5Zj h>~2&|bvs pI#Y0FDG*bI|ʗ/ϧ/on9#Zu#si%]Un\ͭg%9J5_kD=jLuEnyw^IRK9E(򶥇?jHQl^8#ws!g9hKA>b'նQ Jq.БXE?kw&Kt2pD%(5iGTޯ7.b I:q6n19o8KY\o|2V;s=W۾Ye0 YdK3w} AAe -'Coyq `ຟzZe Uş}0F~eq_mزJ$rLky[ه *3[#aFIlfw_Y⟟QXC~D7Sk,eٟT#S*7TNF]i"ˎu茲2fԷݶB[5XZ}Ӽrnn/v3Pdt,]ݕU/052Ӓҵ+w"Ԫر1%?}^`};xh> C(}a* òPD'+&~:s!u>sIz~1vү_3]v@dij)):!e"?_o`eH̞EIrGP.჎\g}>rWb9)O _P ʘZ4HYz=ŖRk9j`%g.Qg\Eip1 `PW1^]Ox7r$ꧬ 3ާ%2 KKO Nu:;?^ endstream endobj 426 0 obj << /Length 149 /Filter /FlateDecode >> stream x3135R0P0Bc3csCB.c46K$r9yr+p{E=}JJS ]  b<]00 @0?`d=0s@f d'n.WO@.sud endstream endobj 439 0 obj << /Length1 2523 /Length2 20974 /Length3 0 /Length 22258 /Filter /FlateDecode >> stream xڜwT\m% !ۡ$Z: G`igDUYt IH*4I􁓅LM*,-ӓIy'Cn]!YrD=-:TlCBx Yt;'c?MzIJԊ-zJ<Ӈ=X6[ck.6L.Nyl#w3!*O.ý@xS;ܽ e$Ϥ4FŚpAL*zC RV)6խ.rM?ehQ8~ձMF(_ʽ2tH:ꞎֵ^Srőj<<>]++OPNUbLkUB=  V'K,MdCeKP(W9tȹeQ(UFog& TPi.R <'NMxn6L_ 9 g5짞(Yv;{qQuLڇ,(r#|B$ヒ=/a.}ByQzzlxic3ӄ] qUK:n*eW 1ڭG$paɂqϿs/t`ջv%{۽Ҥ|5:w-EB*xD2oNi i_)1{\l؁ggYM:"KSSweea3uZ/|& v G͟ oY'-ڛjr#z*>}{ JhfΏt3aRGEmq|N X3Az%,}F$Xna,_Je^}N(:p^UT:D{@Mn]]M 8o$&ٽg)m!ifSe<RH3ܰ}k9uWMr(o\QOSz4g*s_`TJMmaF<(x[d6ןjk*cǚwjiX¾YÈp1SB Y*xʄ+IR Z5#=}g-{Q;eZpr_Z驑)$n!vh+l$q16 ڿ쐿8t(%N~:Й#o4XsǠ%nSH1a#x(K.TeL^`X  k /yV.Z]*[a5LNSi]k)o5`!?$~8\&_|ܛM9lgӣ4nҔ,U]xCN!Pqow9[}1dQ 1' *8Vԩ%]AY?9/h4b _Q&."BVHELhvZ2|,Ww1cowp=5m!g"Qi?+StfwPR43XX{75x Ox߾#XSk< mnk_O`MQ`CQ}uؼ0QZ")o$y+v1SKb+KǢ M}v$0cf׽~nSog%B`Ll,`%jʼ@ SVpH~¼ևՄ6U9,9N%,AKʙS8v{HQ,T8 S~[x܂a0xqƧ n4nӿsd(Y̽9eT$DWwy2u(zADOlHb}(;*Ie-Oqj8XXj.&f\ GCE rm[$Oj>+3錢՞bZ/];X1y`]V5Zp+PmŲ_BA&Q>0ୌK񧘔eUN%<"W  BHl7s  7-qEM/IJfWoujxYǤLbpO62:˘,%ҝ BN1Q@tmo^͝Tci tdƻEqW)YōHw2DOw@3U| .P̠06 .3!bV[#U/k?+ ŝY>+Ffa4Rw}EK4I֓.ec̃eS]AH3AٰA-`WWOmq/ȹ%&~n\E􈗋~ @lؕ{r"\[ Ԑ=[dDb_K*~p3\! . hufɡq٧ib՘c 0XkYקBƙ+ {ȩS Ā;{v_#X2W%/ 6rt-zs|g fÙuoo?5uɦRchʵ\lkKDUU]:.K-ڴ?*xz!( QnrAfPE;V|.,Q:9>L~ZOWv IOhÛ8߂{|BC~ʓₑM\@:TM|v3t6PD-RʂC$Ɨ 9ߐ$"k`٠`نs|B^_FcaRD7@0D`؄6x~t0]@-E~G"9{>^Zc1Od:`fd-:gKFA?n72 ΣZ?h6(At"OcFk? +U83+Nֆ薢@L4 Ԛ_7-Žٹw F+?'+`.hsd^݋9 3: x/XLi6H"نe+8α4̓3n 8&JˊHW)/6)S$el8H1[#6 d`G=8%N$vYO@ʫ(ik&p8R=Ѿ1T[+؄a;fZLџb:`GSf;3{Eu:ye+@ʨh.@T‹Ʊ-u^2衳sЁZ[˃3$rS6 N߉_\ ׂ<5xe%(|nݕ!~V=.;/hTs礭s>MydxRvf:j/-5y _ۖ3(wK}ƕr2(kV,+ܱI9gW*= nrWIi[eO6JUg_T,>$sFi|b^Ou3{gثV1`_Im+PFUѰr=nr8 I5ڈm{[I9,KqeOZeQ.L8i>h.~h+ZLq8H=i+.e.Q-6Aρa(bpd,»M!2CX\p B^e2Qp\[G^&T}IV(*Tx7|;&]ki58p\qFp—aJ*'CZs;^#+Aoe.U~y~zBP-~[-,.rjdj AU)w}ME}48Ԥ׼25>|Etp+l=3L)g}T\M[ ѣ@Cy%ɬDI uTx8qn籕׷LI6ZfV>_wgڿE%s_֬IEgN9u!R}Iu cpޠcT^)5[Mt74bgI@j@hSyx2ϡi(;Ƽ<3fJW.QS8D# Yt=z(26"Mc[6N}SAZ3)au!uw)Znm;oBݓg~fO[yD^xis93 rx6Fqܕ q5\/ 틖*Y˧AR8#`CQ0.rS;0 ܆rGOk5z%ʧ(JE/6oea?!qP# q[a[ >3*>(FaYB5@P3Di}hz!wUzvD rh1U,KRcKjEE͑Oh98~Tw\\]__"y2*6ĢBnSR/ 30XD[vzTȁUdX7Vz:ot &Ps*i& 1R!bOZ@X8rɆ.ןZ(jgT/E4<ԇUY@}kԣ,&N5'")Ll߃<6LMRb=)Zk>m2+h9$2ee.bIQR8CNCj aVN|^ENYGC0t}Ф,5+Ƙ2(LV'OS; Xda:V>N%{-Cj䕴r,G! VlA*JeVdk zjrd-m6E(mʖ yν Yza-(uI;|  <Ԋ`dz3M9mWFqAcĈ-~38z -Ԏ:"eԄ!Q'V)p;dbPS)_ {\),5`ծ|Rβ: )43iM'77Mb]իPl1?Pg.>\ c;y; +a%]X?s.92ܗ.]:ӣKc҂rRͳStwl[+`t~" ǝq!YtdZE\L#{ F&9촺ou%d=>9G?dThXJI9n㎹%)Ҍ>E.n*ȢuK}*dpULtb "fB4jqQY%qVh1-N:^N>^m JQg/ *~{jl;S̻rC1ܔF@-81vOca J̀QR> 2CNԻaSb.z]?ƫ~vZk~w W㌌3h\so_vWxU'Ԫ1870vDǀM-I4oKFfZ aj!Or^лfJ& v`V F FBQ_3C6|VuSsRJEXpN01Cv@7y _ /Y!Qy\ܓٱ. ElsW89L!ӭB/y;X,noJ؈!Gs^n_HoРMHPh ;b$`OXDe@n%q܂Xiugpq[&_)"8žLGTr:(G nqD\XPX~V uKЊȍ;oAyFqq 'tKGۮV#ϩ% x9D ,>2Hz{TQ!sLp1yN3At uم_{Up*G?[WR'ox,(Z=ԴRU a3p9Z:"{ѓi|%%;zy=xNN7(]Wʧ~/1".xP5* ؜BOkn4 AHwys.:> A?+ $;-$R’b)l,C\F4| ™@՞x2a ٹVHտ tQ'W#pRH҂mhBH á w2oxQl45hEXɥQNnI<[7=yV\ ?J9 2#OˆNbb6Þ ?}Cy(L9o6v-B2< scÔy_g$m`;ٌyJ-rqiM"~;hxQe[qJ@X2ٽQ}U魯tnO42yYYGrf6!$'Vp] wD6.:AOo^$[kgS5\*S5?ctfc2FmHr#ITe.ynuOu,FkVxG8gGߩkG ]צ?N Tэ-茍v J9@mL_'$ze';f*~LD.*w}JƭM0?H@YNth%D?=c`Sw<,$s (y_b$Y82$?* )db-!5 ݸz6+!I>2vcG(< 9kI0_b9$smkEbWYF~7 ƑcB erHڪPׂcDmBc^;s c0Kgbxɀd3E(^z9XqS6v),7=;#Y5$-dta1v,@Z?4eG;ͻ%ÎxHT#-)8P"â#Iq!w\}6h}4쳕 dz0ҷGT-* y(/7N3!U/VNSpnMy_\dc18Ftw"ET/@֠tL ~ŔgJ`{vKj?/X ++%:k)K[z=y y)OCl/&%ڪ'?w!LmESb`Ōc cbZgBdBI,$rn.8v饓#$-fD3b(ҩ"`r}tP숤F:COb9f=JN0x,S:.\p͉0>ŁemI %#%2Fsha厨Ω}]ʏEh#W#we:'^H_b+Êy9̮ =]^Sog ~Ke25I*/ D<؛?U dbߞE{3fMoB M_曑'R.fLC J皏ןG͹U 48J]ߏb`)6*%@j`R(D\6T"ׄ@a>0pNxk"cߠn9r@,cBb0x=PcƳB7()s2ghE1B1h\GRW#ZywNL[wChfUI}Td_o |3\|W)9M$\/Tׄd &jbpR;ZU*J Hb1uN^[ ׍lf6IܽFumI ǶyNcLӭA_cjњfdS0նa}(cUeMzJ0Ց鄹q:$ߣvS.z0*ȂY+8t)'<vxÔU~uƅQRT,jM6ܤ9Kq+pMU F+z!(75{g1)/u%,~r0 ˙Z -9)@xHo.A|Ց,oaqR>}*; q{G('e m _p!~*1cCe؄yc@|̄w~'|9[6VG݉%!NӪ$15բ:my?#t>JJuFRC<_[+F+"*OSB}?VJ( )\SCה :'"ڼ r.sKxm-mkܬ9\G@L +uA4AΜێ& bK MV xcS\ sH$w!-{9u@Q]Lt-:0w]bLɖ S{cjSzSNu&b+@"`#HGqJygn)1#?&|~(GRB8#NG̦3ՕrAv?vu7(T*ZvZ:ށ%=8*fI$)iWzaRq7BnS׌"X(1~Mg%a~YrQW*['_3- i)o.i';Uu g)3̑Ph;Wj2ۈ1-]GIb:}Ya͙tG\|E嗝J݆sCI1 wXaK3V0w:ZPLevK8"FgVl :bCLƩg :Ã56O~N]A:4 )L@vO^?bZ2tb%)Vlf^y=Gޢ_m%_DW:1``e_Gw:Ieo81)d݀H&G%ZP.xgλ= =T}_8VNU(ptxY(k=bvtWWbZtl- `Q)-+DYPAs;;O{Aap=ЧLhJ&dNF4ÛwL*ϭOċ|>-˖sie9͘Ws[UODrH˝⬏Afu R;BMc3Th:R A%Eobx.~0c6!$z;#niBy;y0=_jK[l.E0fXByOO|cjAΡ\짧e7]剱~a{Qq~*2Cs=}gV*f-76Љ*Y5DT}ԹbVsA"|l71X?C)8 #AM €i/w5))0}gtdKTa/:}p>4lb/L=;Օ>az#PY"NsNTջh:4JaEwK-;JL2riEst/{p &ϐr>i[&=rCm|f;C¬Ɨj X$w^(o!?k۞Gi# !cJѷt v1sj(.IV8#צҩ0a"9' 0$M.kӰEQBmFtLjJ6޴c7!Ib*Ђiz. NހD$I?O'&ڃPs߆My\ ,D,9"$k&[\U_,0m/. *qlPl#B }@IG0<74]XN&1ĜCU`W!/bűygߊ'f@=Lfc|1)V ;z7yMyvbs!h z}8UKۦ&ׂ*BQ3;;Vo:CKg9-߇0CkON pF< U%,e%q%Nm!8&\a$("Owte!zbt[Pb82|j.k5*.qwbLd^RrˮN[AoG/TDp0'®zAK-5@rn?g&Pf,写eRZAcҴ g)@l &pg@e(1Jϻ>Vxׯ,1MK (]V~:Ul8l_ʗn(,Sǻ+ڒEyt~oW uV墨鄓Bj)fj.f3oCVyd煿}(tɓU3HH3~ĀߤPpIE_5Ng !B bk}V[Bzz +ϴ.kǥ̾ƝLz3hYqDͥk\q1: d_~0X>Jxsg.۠ƕ v\I3nVwU栢L~jOnu&iR8M[^05 (pO %#PKt5 Œp^w-.XIW-7 #WgŻS2Wi˲Sul"[T jw>ca)ya9U<.b)AP)B MkE0Lߩ(#>m5#CkM*]#bs?$L{H.19]4ZZ~.#`_'@_ivG" jwc"'j $J:<:mb;=?7"mŷ\Fbz8a(A`3}Nb2 Z,c=.fN3v2{Gsůza.*ؕ .Ephl~>}|ꌑm *}_Ѥ\7- C)^ɔk,}e 6(hBtM=%Hh&ԕ\%BifYmœlHn4F}h3ha2D xvR'0 Ձ%O _To|<<&9)_=Cj ]) U%y(o\:q˚ʺ"MDxxa-76wT}!8EqRco \&(~I^ROŻss+k}_eh#WCk7| W:>a1FҔ`Q"]+{]/+eߚ\&η.kݒՆK 딟.nNqg 6wfA)ds 5a_KKd^4uFX}3G#IQ0!:qsuaZzkɳH޽Y3N)/_[l,I?S#^`p)>^˹Ipj gVFu8z(/j$饜/gc{4YP˛`x^[ǴI_?}^l}ݖ;nC/ (m2nÍ-lO!JdILPB1&)%al۝rJtp LI-8"%+jی?0^oq`-T~D1BJmЖԥVgd? ROmO=N-f̬jc +P)3N{Y⣤m@wPf@te}ҽ胜UN~3kymXdMc\5#Ceeji;˼ ԎD<4_͊SSaLh|6^u"l=G;A9>Q o1 /ϕ:c+Ra[gG=rPpRd 9V~`%Gsݘԕj8FƔ Q^>~ť^9¸9 }±&r u=<ϠBXZVJLھ鷲(a3 _5ƻφ K!ŰppmEoň]^Uڏ[?YH8h\P޻sdx I0gD%$ ZrI9LCU[b"[ M)gaYFUrB?$3G=K^M Yf; /mK̀>(/N"u~v8|/;SMؾSLA#&.8Q@wKDY$uU`5:]j@THDGpdPyq9+0Eu~:bBHBRܫe'8Zh>_i9&x6[n$|i_/@y؞uw xU|N`hւap lNaau ^lg\L_}OuB je}= r S/:ǸE/v)&"( Nl9%Q+`qvallBHJ#YT? "e/^6~g2lY=.g>1S\ä9ȡ^9&\qnӖ!nq^,K/Q'z>ۆ©0)HA:n\-ֲMʝ.PVۓ9+P+ P"Tc>U~Cx&8A;("S_-Y1Fq6VhA9{Yyٞ('Otj * ՖkëI0\(lҠ}aO㓂9Ǡ~؀SPD'aT"Qmx܅s+tZsa z \0Kߴù4uo~5qM^t9NCgɚ+]qJa獃Ɨe0*^G3N٧H?_W+8R!I (oc7zN6g~ϴ.|f@`P(Kr=i}Qb%%Wt6b+g%]eUCuiѝ EtFV"n(#[/ EmHv}npVQqcءXhGf 8gjAw?, Z(/#Yko=LݺgkoA">L& #`F%}~-s#BR9"w]A%&"pM)c&VxυBr@)-I' 랪ufacIl|ťUB^Yw{蘅ՂNYJ/x.Ѵ*KHG#.ѦI&S iiV?1?)NYBZr.,saYӚ]Aأ9@Wy.R]H5+D|%nd.LAn!>fːMц^۵ F&I3*rF. 3f_oƺ.e+1:͢Bw+ h6B^Qn^ST V y/Va7%jT'@3]}H6w,US6 F]ʴֱ54Y)#ÿɜ9.θ8BQF ݳZ ̞ժQ-in‘u&B{A;+BxTe$ic둔 F=`!>0⁶@L`TXZ_0=\5BndnoFȪ?jSr8%T{}`1.̤P1}Ad==sP0z_9@*\ʩ#l9V4=> stream xڍt ǶN&m{b;6'3'9mNllZ^USz&'QT67J۹330DE4LL LL,p䪖.6ՁNΖv<u|Č\> 26fV33'?N<1#7KS<@ G.jdin?*j377'ݟ¶@'K#;# @?.,\\xl.e3 h d-)T\܍ ㈫) "-X/:030ߧpdia#{[#;OK;s YBÅ`dgy#7#K#?S7H+>*>g'KggK?jdGLEmmv.p'f4'ߗkmgn235 SWF5;KGW6"d@;'zX0@G 2f8og#7 o33` 4hܿ@cL|1av6yŌ"bri.J{7=; x_?FvfRv{^jR\ Aebg2b<7x͟z F6[|L5"6W'b v6mTqKǢX-x虙cL?^3 <R-ca#''#OK v7:=b#Gq3{'?n(/ (qKF? `>(XЇ }d}DP/qD0>23/3h$_ ` ?0~da/H__;tF"ۇp~v~v? ?z|/H_Oi2qurxzMMxX~iwߛ%H^rD]=hN8ieuGVh[kR۳ϋA^~BXzU}WG@kNGW.$<>Iҕ{JU/3QjEs3pH\ ah.<͢eOFxkoD?y8wjߢMSx&`/xFn/dq -鋟U%SqRBϟ ׉N֕ndn2$!/4K4\lI`P%^Ԕg7QZ'O| s-?vG#cѴdeX3*Q?us {pa+N<+&~-茵iƸ B1ݙraycMhB'͂-,kH&ui֙@ LcJT`_i5w)orTl8C8],#&5<b :iCF l)0 67lCsX{.r|~!rFh0ݎ[J9X]Vn!z5ʤSU!^bg]MIڲRqN|2y ~'%Վ0r20Vp.oZnKy?0irJ|!xǏFbMܒ ܬÇ] |:,3xj>3r=^LH /sv egb&LڰwKH h>1`i8Ň5nţxeVE:FPǽ o{Bw$cT (QBL83jKhGJPȲNQYy-sۋ2a4,o"#I}T9l+O$,mF|"ާU~A'&Myi?3H&7(>ֻ_ITg*YF ~!8-#1ۏ~Ey\?; NRؖ\NAYlWkX%i{׎ɘ^% rqmxHϧT b/[rUۥ84[B^ESI_.XRV;!inҭ kq6kІcSQ\ DzlJkܕ׿aªXE{nhﭵef{) Guqk ~!]ڹzsWW˞ $,BMd#T)x\T1DfK.تޔfΐ/zZNK\R9m}}ԨNpۍ3uْU`y~)pj m[ِ@侢mqr@qJQO T-[Pn,4/-he rP^}y':j~ (>y~ݖE2I[Ĝu}jc%&w.b(4s0i<%"n600{@d5XR;:,)-?pVY!vGoqTի۫` c#tmDS _".C]OX-"V)tJ&%8џne`4L0k!h.앫Qѽ=>:[5Q_J3n8whl=nW#$o9"Y\S-Ӛi%?#+,7S#Krvט{bҡxMg9 2&}.*ەZ9n,CBk/u3fڪ-3 tD$uɑU#~^/ h!&b\utGⲽEDf*AY\?} 2oFlaHBNnVPҶJ+r{ز]YWDتLGg*4~@W0Zeo(% t_v2;#C` sg>lZd,BCh<(rRF 踔冋M~zdsZ,腛aGsהwpQZ6I!ӲR y#hPN.Rbx (  l\kc ^Ӂ~7xz A's*֮tk]k ue?h"m9bϑTED7WR%? gG #Mћ%!d*HGB&t{ĜDD_J[ҷa+7TCB!Z'~\Cv@#4,g:Roܿō$\ֻF[:U%'ۖ4A[LL!:4MԩV令+D94-cٵų"&W2ʸCfH>%dTF0d\yY mXɵݷ,&F!4c00\ft˩F>f # "bxbVg!@7TJq`T"&J7UsW=%T2N76u9Gh\ʼn=ѠϨsZ/q|S }4,0~|u.$( V8;k8W@]G+ n˜#u8YFK=F.b{H9r_.> :0X|g8PKYQBLtيrY_$)@{ȑx+]ASx@#q1{|1QAa &KRvHw"~#ݽyy~%\OwϤ,1K9JC?]"H csR{()9y'r'Zh{a0%Bgx/@ij"۽ԟ@(4=4Qê KbB 8 ?,UbܼCw9#D}{( n􍔰[2N>>b~k 7+rE;,|ӯξ4VEi&z~i\|]B;ݩV-{,߂ȓ@9&.ȼb{lzv=Nq€&^A3ؔXJϣ5[Za?!({hR;nmznaX-vTN7217QF=`fO`Szb~ME͛e;~ل!WV.F1'+?B?2A$CT,9A dRpc]8#v 77p{۷/j󓦮%aռp"t}ߝ2Ld3Х)NaGFYY(qqDeN}1gL<+^,?V YbX %jTxhj|ጀ[Eۂ/1U! n:m@9QTl}ݣR/wynf0wkqbl*0^$YͧÌ`WB$CPcҏ y˗aB[= DyDK%驤r:z8e{pf)KU1oQ#Z)xm4a깶.[7}hzt2f&۲E݌ @T`l|_ z#]oHPqxP Wn^.]r?5@Yu7# _tߴC"^EnI ?¦ G@(9~=N`BQ-7B[+NUVi9f˿XUI]eK^9i;NMD;ܠԿ G_;buhӨ!pYS071ka <ќ{;53w[0r\m[d ; oFU-VX,g\`}\"!(h$ӫRdo뷙nXy59+,cΔjygUӝظjh 7/e՛YBŗDBmo |:1QLůA^0mڐe<ɢw iD#ȐNRG$ꎍ!XܷSӥKJ&uHXj^HëRFUbRHU8\PdAڥqD;61Ȧ T {$pRfٚ%Sۏ0o[̈́"v&@y""ϧgTY@va Kolݟ=k7;|`d~n7qvEEDK=ƙ JqtYFvw;fW$׶x\GȬ/\bt k:7[P}.蓥ͪgύȢzbb5Lk`s?^tF sidEs@w>MbXT#R^~$P&ԐF$&U(xk[=> ;OaS]SPrh&S…;А*~^NC`ʗ)jjHL"Qx҉ C|n:k).Q~ nq1 6 hA莄 k0Mg *sp$ pX HZޖwgšrDH1dЭ5 WܔCgn-'f506z~HE?D6R7g #H߹_JϵUI_^O0)9٪<7IXi``Kjʉv6f bKg]vX`naw!4S9X\I DXTg]}&Wr h|5HF@$)=1C8'T$>#;mnjI^vc'8EGVi!=k+{BXf +/~_?}4k\mnI.H K-a0MKKt`բ -DJ4ˡ\pަ+uE?X_;9h#SnDض gI :[VY4|acZwذ-Pۇ'b@d1x|mK\ط޸#Z(!O"HcRW䯍S:I9c\Gge |r/]*)m˖^Cg8'O//|#.\gaDwgM cGr*,{#xݸ˝p԰J=RhGF+TG%u&cmX/@] ʂk9XM&X Gfoi|o~ګ5W;MgFӸr?>W.D 5?e]+}<,Z9./u1d:|1rN\a|='w=]opXy!/}-(2ĠTMwA-Wɋ|h/.XJ?"ri,/|zS}"+ĉhjCadޘTe5!3MJOYڛb H7a( `|oQXDP6 Z-^3sA,TFxgjy # l]܇b&i0P2Su֠hbcM#2Ϊ/ބsb_0=magA pXW&!!Wm=WXe "whVl+%nSfu[;Nȍ'/ J|V}TЋRv"D!pTgT;^Z& _^-5.W!$ -1Dq5)WR+@I%+O;`şX@K3)29=0?v]mf$ WTLZ`rB9/8 kYtOxigudq[.Ae:~LŠELA!9V=r( L'> V/1U $r&=ªll{1a1=VA4MzVQ̑T' IW(yj\XFD'Bda@49~|7oRɜ|?c*=;6/2!sTA펜1/z&0BEU/gCCpn+p;T.z%6EzvG lG TS8^U=bf4OJjE= oܒx<| 7n/ 71[jYDfW2@yU'jArtU 6O_)\u^}ѴF<NN#}F#t43\R?.M~xN*Zצe,{EfGW=W]`.9_,Wfnphh_enӈ%덳-$]eOj7Ylte亾ێ ț;/%牃$98,MqnmZ 8]0MdF ^nݚMri f*9l,8bv!8v)~PFo Q8ZI4W7=Cnt%/|iU<ھ_zͫwq*0bsYa.^wtY ,䔌# $.WCP.ß<!O T%;.z,+ہXi1@Naqmh&ygU&CKJ;k\zՎcR=iNs*_~-mƯ!fΏ1f! YW Eғaj#\9ќ%*9#/wt?υ/4BkrOt22 z*^=ms*PuFEM͇v{BbVYwJ|NG# )):)ĜW)O7`peʑ8 W xeʇBm;>[}27$47/g M= mBVHQzG?j;F>:VgMSs'Ls[+kCZbe>kK4~ |9 ?bӇdm|L"m˨Sgp԰:5N&κW5 GdQ1/hҧYE깬$l{1iKJXWIb@Ր֮WJ#36PGe2a>|/w8BHs+jK\x:_+LPˁX|U $Xl+sz=R%a{+Ѷ/1ѕ1bΨJ#?;xL-Ԏ  ފa^C$3noVBkkZP^J3 e99!HR|)7@mәn9 6S+;5ڿG?JC݅=@HQF>XMJhK^fyƶ9U66h4r$, ָ 鰱ʗ``aA+6K KMA&m`ӓ B&sr Eq-Ml`w*a0 )Ց*f _smKbM@:v0=4T2EoU8ʎC%* 8\ɩZt6d QTzN FM~'3KFްXc(Cun^l>iw+ ^z`,}ddJMTׂ݅8=>ZVJdy3pYA^w)-Te5dON6:8Ӟ?qw@u+>;3sm0:p>8WQO{6=l/Ou'3 "v.:OXt>6ꘛJM@q8y }7nRIo_ʸu>TWWbezjsr>z )<zkl F\=6b\:W=a*<mGY^N_Pzߺ@:0z=Bk2O1)F|I'zPQ0sz|3U0.*r/{3~Hו52Jk\^g-ĥ+9vYXiqUB[K2ۦqʻO襕HVfqIe YulUђo'df e*өYR f ђ 6!.K dQY ~_=$l3:PX =F=uX5Q8e\4dڤ88K`K;cm/((He4&B ]WJ~vk?ړGwtX:SYᓅ$9A/PM5۞U` kBXKy5 3KA~ƨN \ָxlkXsj gad7KƭTtNg>dl^UC>ykEwHP6̍SƜ+#U$GH )m@= ׍%nNoL 2~a9[x x'Pe_Ry9lha8ű{`}L=kGyL$R>%[Wx/ d HBo~\em9}y(".6{O_AҜY6Q=]Wѱ#COl]}[fSP($KV4hYdh:-O E{fA-Obr?1w2M{KEpI.z(z} D(MP~g* =u|v kI(C݅jw % 4CX'Y[SSDTg۱AQE޳wLu.F2E}^re`S^˂ 3ܼTovbC|Bk9j~uVσTw(~[ęyuRDJn=Kwt f8t\aĖXyKA^*\c4NX%;^oi~;+.ZT:)c!yW5Y>h.Ttq[$v~;X-(U|;'*vǴ&n\'xR|NKq=]-V|x߿zh; Eu 4j wkɤҵlVS㟝j°^._c6f)n~ V(m9p]e gx1tB6 endstream endobj 443 0 obj << /Length1 1684 /Length2 9545 /Length3 0 /Length 10632 /Filter /FlateDecode >> stream xڍTk6LJw %ЍtwJ 0 ݝRRݝR! !-]RoZ<}ka搴A0'0@ZU dbҁAc2Ap, `G P(@<0H@ %!I vZT9JpIvy+9 $$$;@5`kcFs@nxW..@;'ޙd%pX '7w5=81:P?pKw(C`Ώ.0 1;@[Qi;8A @P`ss Y,v ; ms?P;٣rclupqt;1,3dNs5\[7,,aԅA]!2<0YA\|\\\B#an @[؃`j yvA.N_+a@ baQ ? 0z7GYav1b _-G)%xs8@G 8`_up,./G{,o /_ >|e=FW@].;S'r|o"]܏Uyk"NN;8 1\ԄrbOa^pjwEKbt)4ԃ!"~sZxKfϝif+}4:/|}m;]q5r~{| ܪWƺ+}kX8͔ca  :+aR<h|oU2n. F Cr ‘gR;JdsEJaQ4ft %k仦%xaLRCvYٵ eK,ݺ~:稳2oQbIVꆡ +F2pkV%}2#)SE T#r)­ 4h&'`ZTJYP,r*^E8AFG?!+sY')\4hz'ejA$ ⍆6ݗֹCl)+N60n)\oHmk:uZR߹X5L#R۳hml`k!WK*5WY1W☙AnWM]]Ә9ƼtYG>)Pw' FBkŝ]L 1h)!s#_B<-PP4>OtZ-|{"K˲HJ!\DR)E{lt- ^TCt{s2xHxu\P}B,5qo2˘R; e~%-P}qy & Y1g-ݖ8w|s2)Eo.Lv1:%}Y:}0<-X3a~Ơ|b_mkq!QOƐ2"uZQ9١0!O*xV}D_FwHN&1xdgX pOO0ŀmSԃ'v$ے0oKNBT, /PsT{[UG*Tbτȿ~Y-[eM8h5RT\c]ce8V QRC &:oBIM–[T]U x Y|it?Ӡ[c@NI? KGV$cF5 w0Cd4'ҊP'^ Yv< S\p̂oV4wŀ.@:IS˘ҎF|ibuw vM#T/9ĩ.TZn 3j./" [-RAG7+:v%\1c4!=o@Gf|E}:-#V ΤR]>-+ӗŌ`C |*Y6u7.~dX-CFQlvړ[^ IDwkNkoHP^$-4SwFټD^Z@]\""V}uB 򔹭)`1ì4+n͏g%_%'09xkW'?1T@^(#FTq('`ьZ['D{8l:#|hW XPϷ?˚GOg}BXT9Vb3V'cKA3k(DD Zfۨc-g.*R> }5YrK~r]`yta6c߆C)k Mf1Ziq8^ \ l~ɪ}{w7"1ׄ{jRRRrL*0䪢6&f?wxgq/(!w\Xw:Yu>^ Sc j{ز: 4Ok=2a<9 [IʌIy;mveOdZW"{tpF̫J3yh )kF|ptmeaS`C" yX|#>D⵶꾰AaPz)eїWF +H1Sk{7 /b34X4'+!9ɱo*5ܩd /ZCEs8#߫:QV0rGCՒ-QW2"~36a׆@ ?U,R =PҐk>YYn0|g@Aʸ 㥓X˨DJ(F4N$ PWA.հHӓm< Ym9&%x0EW-+U}#h̃6oOz2[= 39n 9ek6Ep]M3xKpgCeR/Ҳ\-gc?DQua ᅉ>y_mƧ`58\+{:}{@OuOz}YWȤ=%MQx 'Ung뙄&؃Õr\fq`ʖ#Y+Fl=4*Zkń8oF4l8#ARu7b=tF8yoZٯ]CaR E>qTw*Cqg,Wwk Oh,'W o'"WfI*ӎLDZtOZ932_Ox:B+^h0sO`wjdU7jO(5MD+[;#O%&_,_` 3r@bUTr!m3CEZbnh cAN:GpImv29-4 х0=Ya~3"Po !~Q6!0⢍ II?ȲJ@`IjNZHP5w|kGHxcv旽Ey lt ӫւaOMYXa% U|xZ/ޖ'.7jw*y[&.ZZj:U^1{[Ϗ #&Flk}'({aM8E4|\!(ZJWv4FКfdRVRYyٛ81)ˤ/ʆȒ$7\AO4H ?ֽ==܀oJYm2?_S B]u{ZrT'ݧuVv~mKSNa9%Gtvّaһ\&LXG0o60YKEl{"-yJ]򺗸=i?BɊ>(G S~+#SP";dE|T{U:aK 1΂LBB^v֟龘\'~l #P.b{ CoO+! uݣ`&+ V8e}lSܨjr/_ Pm$;5󍼰.T6T1WV6Vj> yS=zƌ"e.:Z]LĪ2?d9􎐩c, .6id[|bUNfvHO=\2& CZ}.w 0ͷnl# ݑDG/}D^cUtuyϗ\fl a1S::zMAN,UuȎOsKSc=Pidsܴ:vڌ_,ɖmeHzc7KSu4tNYgKJuUӉblLI[yD{QGIP )N*d]7<¯%c LR:KDʬXtar~Cun*(jAAZdUV: 37qg7cկ!zWjٓc ⷜV/)1 Z_4"TgnA [Mw4@E!Dk(yS -1h>y>F;l[\[1^.ITQuO~fbzr1#{m_Y?opjUwN^X3,,+D1mB+J@b2ni@Rb5ѷp~> IQdpN~xtA|N3l $e]ll(D] B}fV%ɢ[ %4M ]ݺo6Fr-de6EG7N|<ܗxBN3gE8J-iB6֢[}nQ|Uȧ`WP4-o Gœ~c?џ߆-`$"P 9uȟJh`LX~K)뮞`5Ms2/kd#ӂ_aFݪV,"оԻ //3 >3QmIgm䏿[3y+o|B]OWTya5=mMTO_<E'ͬ̀UY>P`bgÉ?3&t@H$iD1VFyqx dXE$m4.Gh󹳟j刔X'Juuf_]⪊NSY g5:Zt%g- 7'58]m_ypc I;gO7!pIKAAcQ1 LS}edG0.;i 퓼^_W2!k TD/*m7ӾWz%;M#fA٣8}!O&*vήތ)È ) W:y$'Po+PlPf. Qy_;6첷6/*o9߭L~<4.Nq|.65D+ p׉]W&zNrۇ = +R)00'M)xO!4b5cD/s qfgèUBl P_t=pqIl ),mIH(@qhR!/y*K弃ө4en ` T; кa>p1E8Ա7Ŏ1a,DUo"U-TfͼeǯQnp%th;a5YJ WApۥq፪'* &yW PjI=;,]6JǽCh=z1}Cnw:ϱv $1 jXfoO%+G45ѹn%hyRH!$Mh%o-WNY+b»`z@(f6܈o7@ҋɓ.>g.!A Xeg*u?nuxVZ =I V MOZ5vG /w,[1+pŵ{=@]1.5iKf#{[Zd-+ 7_-S; t9PT9A""+ofIV6~z-_,:#2oc+;v36NR yrȌuh,ػ+;#KV9ƣkP\@s~` G3!Gux}^IM1bdF-Yy(ӗcCS -Ρ{:D deW9K{F4oZhTt1Vu( ei/X?W_atu\o.%Wdq)4?vEhYJPE%tWNj$]ΤjRX%F4#Ѻ}a$J65w확'@^~SKw2Qd 2$~Dз\NYL0F~0I{rQ>4|0yI"3J+ĬTU#cEDt<}A:e&:/Ⱥ`I FUF-?j՛(^ c+S:VY]"1kE }r$l>a`2Acu-rOE}BǭzQ_+< faqRL 3–#`;XM]{ee +]@q[Ykk{!5'DFCЂJR*lMb yK$.fۛ+&+̂"k/)b91 m7_QRVc˛SUfon*.tr5ކ #IbR'da\85Y݋|+Ә`?Q\jkXi`/z]kϮZhL>_LQhv|ãKֱURa n`.'t JVo`rvĺ.빋ǽhl%Bo=ALF#sp?ݑڞ3-h|q=@TFz|~m=V{tY?1rg}u[;o8."%+ƒlX[ )T絍"Ylzf^tp"!p|ϣ<-De>Q&& 1?vТ$OY祵ywŋࣾ81y5zjEhU<6qxWjGТެYX;aWsě1(xIݨd֚1;u/UûJYI tgp>NUa'oh &"9?DvW%/lՍ,TkФFr"sͭI^Pwq =pA5xzp_d.ػF'ㅦ a %_Q+EaHfΎف~勡;\*$#x= ~fk݆VJTZ@E2H%DfU>g%wJz X ,fpn^yPIdh e`7ssO1KDaS%U}wN-/9,YϜyO*зc!̾oL滖68%&R %R F';y|gIۘQWAb&I_߅m(OfΊ..!ݻ)E~65I>əlѡԥ޼ Pʁ0Zm`дy ,زf=/CmyME̠4/?Ś.yس[6{ / &it?ĸ@g|)ćYQ+q$.TAQ`ag&<|w8:)I)^{ٞ_GeW9:.IDJmr*],|zft ?!Bތ|uxC93!98cɝjC^ȯ[''2fr*եFi^'QZ|Okge{1z>rcn+Oۻߗcg }X+U!<-GnrJ1TS`ik_'՗}eSޝƥuC<27E\8SE F4{5%O(Z>GVm@cE}04~ -vl了P֚#ZtpӲ#Q?CȖ.@ ȸ@dH4, . Smi)qXoj[}6MkH_I]XL ħ ˻3.I/ܞO uEZe˭0G,-4^8k{, Xyd],~R*,S~ MuV7h}yK/S{̻l8Gs >0q~ó^ZA> >M)B1* =?OhZ ;h}v?0,'@Ǫs/CY/cfJ䎅U)/;y/Z`?9V8yI?_ih臋{8?Ic0K*@f9+6(Bu9u endstream endobj 445 0 obj << /Length1 2459 /Length2 20765 /Length3 0 /Length 22190 /Filter /FlateDecode >> stream xڌP\ c 6;apw'`=hpd}NޢjXOOwkQj0Y:Ll̬ %u6V++3++;"+Jb3U&ijȻl6n~6~VV;++ f%fH%lkm?Z :_1{djhah8X]'#?  0#t:- ( ic\xl-`W7%!Pq6Vۀ76fw [_ff`/[5H+2z2 @.ff 3WNnSOy.ζ..%ʲRvuA}>I[g+^,wXق-~aȢurIc*B#XYYy8@'†wxM/G_J |VEl}\܁Wg7Ͽs-OW1o|g[OXu, ?EGG]]Iw0qعXlèsʁ|g9Kuj?Cnjyr7ΰ =/к.UZں_"AEhjja-e [0P`zmѽ:)W`lWa{EK_C `a;^X98#(7Eo `x,/EHX 6`^3(A k" ;Ez͠qX4E|kv"WIpr=W"f{toqy-|57tO0nj`/Z͟z^yre*|-ݿ+{vWU+7"s_L`7{N?g|//ߔ8Qp|}A@?4s#u9_q|~ձ :kWݴ|}O9,o+A 81k?F@5۟pW+3_#ʇÿ^iw|1=5mJ_?dF:' 7W]z]}@ 9 w5wUbLcBT:|%Uf;߈%vlK^.>5E4'<2WmA\>$IStW; C*ɍj.G緾]Jn_SL1Z fr3ga]1=Qgo1_Hc8 |7?z~dwħ#?Hǝ).X$X@i =V=S>ζ !X]ҀeL]bZa$>h_mzho `E(iup;m.?">"k6z)etOoJ]G:urXhKɼޘ _?m峲!:W^wܾ1>0 y V~1t~o!eN.>g-FMX7RrQ,YEŵpOY)'ӳ;_1e/T\%+Ol8i.h@<$`리LA#R|&OhvNThsMqw2XTM_rT4J} F =U8kTh!3V?Re-CS 6h_<jhRxo@On OnS 8{\RAdہiWB״6 U֬a] vARKDj@ŝ5)/#L߱KB6?[m% vA0`xhxmYؔ uLUP&jt o{k$ ]K!{|x`㸫)'z&:fdg YJJ[{Ks%z\hDRV9 }BB4$ac-O}l9?m_X9_]/? J7I9A2~c~*6K|%:~' "v%6 Vֵfr d߂p,аySӝ V9[/{eJJYz_Gb} zPYNiBISz + x?qe|"%e!{-ӾR aWaT-JI z<|ȔaЉw4'WfN2􎸕OetsWދ斐1MB_׍R61V.қcA7<~ixnZN-Rq#Vȣ-q2RP1=lIfn\@ݓ׉LrbMÀhχ2ք.{ʓ@Al͵Mv#Ҟu@ɓ0A4,.[K/Υ54Jq("K҃h]1<ڑV_6s>;*٠-fvR+mЙ //_1b]47'q='F*ŞO-F!Ȳ'XsʅY*E,o6$P3܉DKѼ, @ "G}!WvD\9@A sn3Q|׎ w`YvqۭRxQL Ҥz/m T% >Uh/`0@e@mXq"}m8e[|Ɯ3u F~6L6E@;B<1]Htjٕ(/!!%ćD7 [\.7캪7(IU(w26ҝX%~spr5mm(**_6l[yyHB{ì 6Dɥ74s?Ƿk}т+2̧cVJgSf 78pFe|[NE#c\ˏ]pysD_>:#E䖆+KG+Q)>S'-XnA^*u G*֦@uwz4c:K!ԝA g|4[)7/bY^̗ٞM[lbn奙Ȏby I גSe  H*Ry*Na'>ޖ *TA"6QJSLa -2st׍ʍt{JX1{v ѡr=zK0>u}|Lud&?ާ"G.LԛbfgqF=r ^RKQb^ ;则h*i3 ZXWQ_O ~ӷF ~/I ,v,E2 >̵hVK.pPmݚD ,k#hU;֏qዀ1.'A9v^ҹWN*8pOj  A0&Y f(y#Qΰax}?V3%W)顗0Ze)4*V9dM(M_bss` 4S2 נܬ[ Ϡ:wl\k@D Z@\}qLRK*BH,:aH}51T WNb:^_6cLjC=ez͞ ]瀙T 8Z^1 6Ef?{x" NGAn}.|T2~,_+W$֙J^.gOϔb/.X߯.-B%C.X>^sHd>:g${` s0kϖL7c3Ԋ0 Ld&Zރޔz~obMq"3P?Z#zt!xgS#=xvD4/²RAs_HS2XWNK "T=9eò}X!B$ɵxknS֐|-e,ĂKQGE΅4ޚg'[Wa-D ~RuJ>#n,{ ::(w7:ъf#o&z5\JE0{XgQp[QYm-&IR̩6Qʮ嗷" 2/].˜SL~WQU~m)aRDDyccllP{@)IIx97k2Q8ԡNP0M^y_Wp#OltͿ #_Ngٷ)ZV!fe5'%Iv4M_9v܂\AlQONNSA";l Dyl=$A( Q$2dt%IKx/0()."m;s%q[xib2gSW:Bp)Gg5#n -g!!K"5 ʔ&2֮.2+#j濘fbAy&%|\y&zJpa6LI z>$ ֓߯F޺cywdg*/IM"j.sP R.•.H؈q j= Wu]&e"} dJ ?9@*^:C4Q,O|-r܉+Li@OdrU}ra*? 9#-Af6o;= yP:_^%!ZY80puy=f>ub,lwͦ۳嗽nW ]0Kk?;Mu;eܼ.oHu A2m1,EX!W{!j%p4zKl=/+d5dר|~NoόA3-2EǓw='θRƍD&nՕ F9jrpɣ#,ÞU5 %CqҽTWlGQ ̎әX1X՝˶ɳ) =gCbؘ%K8U@+:Si#VYi`8L >B~(zB.厇`bJg4SHmK;4.ŢRN:?_Nxo-L8cg}luE`'a?۝(/cR칕ȃڴK܄,_&Ms0 P *ǢLGu{t96#!D޳T4 {7T?(wS.u3+J~UtFp> #$@#04%tcХT}廱 sOjCVa ˭k_bZ'X|sΞL}Zm,:@ 5`})nY,6>f5tur|[0#|L=*U\G2\]InaI譗GB]d=@R[Fqas1KcSm ͇>ԯ$_C%K\E9niYJ ulLwZ#_s_7'ڒ򳾟uQ&$pk  Y=A}KHRxE>ݪp3M1Vpx&I :@Ұ7EmEi3Mǀ'EGR+Rw'Tp,C9*/kAFUMt[gY]uF{h.v4 i4FebLے(je.Kٙџ"' g/Hp]Ղ_Zl6t`8%lbiBkd" {=1"E+7JaOH@ECQ9h2D_p=y~2ŕ7I MP*#5-dHr#PjPx^gΐgCkŠێtb~صzT\$/j/sk̨al wM+ؑ6pNH.(LM 2x~;ÎfL\ޣ] XNI@RNД%2pt:I@??S=Z!V*CҋӻmbjD}aBV DoGgFzCJ)~(m@V%;Zޖ&qU@^?Red(1Rx>Q-ѕ N:M@ZAQԭC w)rQOb H+ T+#sa-,o4uP 1s(GvcӬ2HRKIRa?MIbwܱt\hPo"01FA˂}~ֺd$*19͐oI 8 N@I$,nvduz60Zs[]c>)H*N1XPuyxKB(U0es^n&GoxA Y+bb]SR蟅}.i;x a"fLsj x Q,a~KEߧ ފ=:),WV:?)>GlΞ.U&1D\*ʽ\2EDw6MZ _]M@`†~dcjV9µBq± VQ>.Hor o2&NT,t&4CCz` k:Q<=u>#qeJzg `TYۣԟY8# 3XCtu9KRMv|4Z%͔>eV|).ԺO'$beQ|7+(`L_[?uzQ:[MQo7v96}1A:t#NCK竦Mo56 =U]B>2|6(йY1υ;斤|k+v$N48h`yj:<}Kf[L,S &j#^Ýľ4rR~V?&e'Gػ#KCVlX1O\e#]hTh2ukI2 ;gt *m۷̨͝v]01Jz=q)P_R&&/N[?wC%0o%uLy^dĴ1i!6履5}!AD|/{*r< I`kl)l9ςP[wLHu+'D7i 2l\bϑ'P&OkSH6-{yr2A&)I6֩̚|}۞6¢&{ :e29AwOosT{IidZY`0Gc?-c-7cT KYBI~Np0&TaBQrk]B$A8y@ N&)H4m=|~j1YYb=a]FuÔz&Ɖ/$k4qיEeoY8\[P N& zN&EGXY 4IG4ʝ1ϱڍۜ{֫ji{$綩b| p(n5,C (g?ӼNw% =p 2j|ҸIGOwg%%D-hmHU&@af"0;}=exE>Ntx#g-HT /cI6PI?r]Z+}g|ޔɣ['\ṱwŢC7E[1U aP)Rur纎*r\EuBo>5)?u$5&d#k'=/n~eȶRb祿D4 o_F>ZV\>P':nv^NV[r|R(h ?Y\С®9SrE|w}-/0.˟Cyݱ K ʵn#avZbwSL´0cyU u%yI/x.xE*`EZR{K%oI(fI>>S)TG å hΏ %ޓ$#"B?jb)Ck+'-bj+?q?F0/js^6C朘W/~ qԬ]=zClIӖ+ӷATcQ/c&&2Ŕ;=x'lXrrEipI<P9ts4ee؍[8]$ƍ?;+c]pv7cl eT.+@z2+6Id8vfVy世+}Zߣywmb7•msӃ&黥^O'>0 2&Ly)uz_?c6G!A7Z+~ٰ6L)׸-^hKЖ툴֟^PY|w]B5=lN/sVV9'&33Jz'nA=VCozb/IOVFxFo5+IpTDG2βDɊgDi{`gfRŴ`7/>cv!S6n v Vڋ!z0ԠBfnS'v9" Jٞ>TȌD9;k)U+d留V'2I"bODך!,_`*ZؒWYc ]ε1%u8 .n>aKF}G  %Zq[WRX4t(>Wt,gk IԹ˲ H',x{p{cԹ5RTGvlPny2T@yOSXi?`LY| >:/7li$}"͂<|ΑɹaLU>:t{ 8\E1( ,fbjJ+6 30$QZEl<2(~)F6Mebl B f? sln7-o$e]Iu6+.HZnIGĒQ}{W>X}̬ӂѱzP5L>[TW T}\7廒vlcT.eg2S$VTZwGƋNL#9)׆nLzqF li=v#pAsx}9i{"<=n L|G {/ ddOvUu@pO*)ᡥ57옱p(5\.t 1*1ZVtV'L/hSğ):0(!)U{3+d j]dI[ؙd#^~=]_sKbA5bpDp쾣1⪤h66ЅrV\b8X,lA[dlyY#~9Ң1͡\ Vzpϝa0W{嗫'h: ä8vFXd*?UsCBmK`L#&.`D y8Σ"L]͹xiSL;y^Պm M[\Ӎz:FX :ݏ9! 4V l$_w߀g8@K_Kn*n]aPe9o/#eetC96.}>N!Kl*L.ȣ χ>i:>᫝69BjPrV %b &Oڗf4'ΦXSM%{d=^.C[URAUbzPr gqi !t "e\k&gLiƵ{ʩR4嘰IMn;UM!q8I~rv)?zJM\ ,L`E_w?un4n"|uu`soHellWW+?]UΧ.g'UsƗ6ڶ&FP`3Rc.^&_`Ѯ6do}?6ȩ֑-_zu&BwiT"5k%ٜ%zƹvN$1Y גy#HJl-Ŵ*m=BR"5ϸU̾-]ؾw275vTQ+J!X77}Wԭ'/I>ŖfΏQ[.,c0|mL\EJ$O(iWKq*~]sXC_T_)&`'ly"^EJ*m)s}@7 x<zKa9\̊oU73ŏ%;-?$DڲoAtEFDT.)j7]}[T~Fa4a436q#aS ㊍:hW$G:_ /\jd6IF\; yw7 !;D\([8(0̧+'K}_u; {Q=s h=F{G^\7mKQqVU3< b=Cx?k%(hx̗p=X4N3bL脏K5h%;o+Jۘ!XGƞ%fD0*=nvC)S4w+dwخQ'"W;_TA7&98ihPBj-ۨ>m:hX=[%v+_DfDƿ𑳐B0M*;%!2L裀83Y1f j~_o]8+ nx@%smM3mu.c?{f]65jhiRӥOQ2 W6^}_~%h" ᨓ,J yjME(5׵n8O$]JtT&F\-,kvWԇkθ2J&DsZRpb Nnʻ4KgZJP1$~зrRrH)V  ^př5R;Vj"D혊2vQ7-'ETK9B$d; vu\gQnmȧg)CQh?|6r aՒɏOShx;1@77XuCo>رoS9bwv."jEWO?^YeV]%&oCj5eJ%g$AJ8ෟmrt/N>vܢ wa.ԁwrȦ|XG4M:1ZesV{}ؽP*=LN }q5oΈ_<8n y:۲93m*9AժÕJP wCJH^&Fqn8'IswdaB(SDg:X zwKLT U@("EsOMC_S-*B0wyLG:JF2*qZhkv!3&K1[bUNW,l﷔Sgݜ >[8%+bt0 f^=ڝCJE/(gf ujRf2Qw4ÒX}!K[{V/@*#y7 4*G f0?0[T`j@fNԆ_ M>rW.ڇ\EF',9LRre4q|:e\嫾YCzi"%q](/ xK4C8TUgiT[HsȮ;ɟ01߬)[y]vWD@ 5 uW9?4>7kms H>V暼 TvmCG(}O~(K[,itlz%lEr4mww]d9(۞ј|Iqҷ(^#rĺ]3IJ}SwJ cA)Ri~Xlfj``ċ#_XgG2 /jM:RrFXV$Fy,]H'D-kOɅR%Ҫ.~']+ec}QkKNC~Pڤ=!N{BA!gyMʫ (("Na=( JPs&:Xh(+UK+n#;P[#xoc <}ܰ{Bneg5H}6r/ag48OMo>_)K$ Vl`)(NrђTiajFF>DL;ݾtl>aUۡ0= _ɛ>5]06Fjڙ{}Nr!1Fﯫ~  `~K& fqϬ %%G>뗪US"]d_!i݇=DZU RMc&Br;jh! wCUҬ6Ii?ueZXF);P(gyD.!m6^4Mr9rz[ z MK]i%$*aem̉n:kYh3cU!zEU[GlN&N ()!%鰳zc :r}DLZڦޢj4tx>@߭}/Owm>C*oeL42+YAǝn Q`qeގazx/CW\D֕i3d#HIإc86:UoM3X%aI:4G,Ю@O:U 6`ӷ d"<*AףGft󣔆Y_(fT:"rOmO%mԹ ][zbE" % HrѦ?8s_''۔)xwnk&Pmʢ2=6cJ5*0*Zd__;g:k"s~3 L5/zF1aK[&}ZB5%q,z:oAu }q讴^}vdFiW-U\RQA8SIpe<-"S>,jzZ#_f)ڑILp|%oLkأ=įXkJO7Ie)|wP$H{Խε|DtFtU\#+2Crjێ$[6l<]lămiPI+:C1 b>Z,oNi9IwACm*=A}dIvB7~cEVF)v8r b&..L%Gj$ZG!ϛM sv5=*B@Ve!V2d[m7;dsǩwԮU13;S"wAp5U;RLXŚol'ķ:"frv/b'S/%RV܋K-Of8DMʋZο Y(~p> _[Er^$*Nji'lȗ}1㭠pPL,}wf" Cku ťu*<يZ8I Yaa_Y)XQ)DKďsbc&R"qQ\.鹤uW#$Cvz; hYP`Z%z; Y5~<_~ ?B#cA#UXKx[t;O{K?ά̜ s~)N󬙸<xo{e ՔC?v*!q/\4h<~CNlP㍓;?1Y%E~? X<<\7>/WJ):N7?q2 n%U4MoXvbCUy70?zC޼BQruvm@Kũ?IL x֕Xzb<*V61p!uayuiR+s|N*μ;(X~dHAU\ݞ9`8+rF3"Np;IO`c]e9YiW^1 y2 gh#vԳ'w-݌na iC6c 14 z'6kQf-eXbF=\;ҏ˙M}n-'F2J[!LY=(qdu*#Mv΀ _ y@D"zp,m*DDžD-_bןulCok7N~-.-dC~p%8M4ooԕ?wv=?rصU g5yX $׊6zeH7<I#dY.{1[j L6?/6Z?Į| ̧-Ӡ?|v P>0OnˆE8U6 ] Ⳇ\TH\ì[|]QR tp> m3MKG64p|3LeZ*c3 + fh oo< Ǻns 4h6yeJ6ף*TU[]?)_S.)5*zuNИF2ɥ~?0PmRN*W>쳔?9 0\#? ArLBMhOzUm ՕW&/'?pAL?F#CEyIolG{o04\/ B\wԳf[vi3̣_-#0*f 9~2<5B`jYoqs$e [cސr릅 cA7sb ;H^2H\%MPKuNȕvQAsfIҫA7ɱt/|h"1ĵ=y'߭RV,q/;+;Ԇ{GdPٿ goA'˛>R ySuu"+dLPAnh2ʪ5.8mkmYP#o Aݘ;/*kzv;'aQPkH!0 jM䢈TskFoAUY/iTà=|uyBg@""gW 36-t!STk~( gjVL1L͹w]7"tQބ"%JC'j'E[ _Gð҉wnT ێ cg >ɦ jgJNJ<Qe!nL)4nel{4] Znt12sBUːZ=+#?S+Y.&c^y.KK,4 _6\pmJ|sH9o`r/&WY$t*'hH)ܖwmlE捁4 7(kA ֎xm-#YiJ%I^)DgI6F,Rv%#ڮ'N߭{8{Xʿw)؇ޚcHXX߆Ny%A/!Z1097d;qG9: TY#INU~̸=I)dӻj5mRќn1s&G5Sى|=-6;i7Èb RKZ%j&ّ£Or'ҍ9ޞ3YdN5^ͅF ( \EdAt'Ԛ9l`cSABnlOvzMܴb|{eඇE%^oMs>cﰄxJ/4tЂyen}1)V p'Nkiۥ9TF :^@i/mI꽮!?5@f-k",h<>QQn?Qd9'5 58&D!M}gA߷APvvesDkSC=X65l1`O2g '*62!.<.\5fд,D ¢j_7<䡭c.MyWN,*'yP+pH0Fz̀:gj '+JЈieEs5rG; #o9)+*H,V{SA@X+ @C!V׆nPElafIPV@|_; ,\iJ}ϢqsC3QpSs06[)#~9;8ɶFyu-1F"hq\<%g:dIVHCP YnVA8 .7jKCg gu1yP9_dx墔Nt:DŽ w'Χt6|Z鳺 t_PWoB EɌmK raqYRd 013,YN2̒&( g'Fy{?,G-m_;ss$WyDl굟n.gF dKzG\׽RmXpoe,6mK2Ro E^\]pEgt y>[F̯"rlBQL'*-ޓt󩝭$,A^|̼&0k6jhA@Fz38jJv9A$xuڡm'S`kDZہPguK/) 0BVeU8Wj-]%2eso1 Ua)TnnP"(Z(Zzv4[ߚĵV5Ro|yJ1ʩERv_vV"!`=`˧XT./m@@8UB[CSY'_(mds00JP$=zˣy@#KF(.)RdDtOv 8zt-XBZwa#Hm%ج7KFLZu}U(]|cF`#++qEտ$f7GrJϟ?ۙ>M<{aF( jMgF}*ruE~xaeq`e@#`@•)qߗ%=/͐H7ٮE^A4J9;ar̚[aFw$n6*VlGپ1]// Tje#22XU4_>#  7T bUeb3>A0I۟X_?NAĨ$Y%"RX ߐ 2"I<P.`ݿ}B C$qlf@7YrGJ?-A(i>JGIԂ=WZJ45;\%z Ik> >~Sa(&/((y@[qHqcOXG!eHDq 61. WPz7{e\~Y&8pv PDIVw>N| ӆn1.%-K>8@otw,,A6WQx0V~s{*-9zpĦd\&7\JI8K endstream endobj 447 0 obj << /Length1 1553 /Length2 7997 /Length3 0 /Length 9029 /Filter /FlateDecode >> stream xڍtTj.! ]t( H 030twH# ݂ % %ʏzsݻֽk֚g>ee5UYUaP$P/ @AVVCpw>e4ݝBQI1I  JCHA[@*8l8b< .`h`6 gFz+ <Ov#<_ A.?  n0;'9!6`];h<?G"`w d}G}r@UAkl8ҍ E_iUH7_S 6wcsNP'/Մ; quk(Es#"@ PLBvl7wap]`  ` Blk=O;7}w x=wA_~]}cE?)*¼B^A8@Lw]S Հ{7k78Υ -ƟE6w_J,/Tݝ@"iy-@ggwF5=P;=F* l A8ѯ%s@07ȯW+vY6Nw/۝"CwI ׆ @x'$A*ڂ~k!Bw`_7*&mIY[vS ?o"yCCC>? wlؿ໒~'w'#;q.c~`/ F*̱.F֓wsLfu N^yD5V*guv \!u-Һ Ǚ߯ Xm)zn,'6q>P UǦ5gފڥɚ.N[Hz٧U_81U-|7(ip4kuGH^\$^gS$y㷌I8{qB%W}>6tf6G?#`UIӤ-+YA]sy.ᳩ=`c䠦G'xҦRʔ)sq,jƣ qǕΫ {@ZGͫg#*ڴ\~:h' +Πu 44}&³BݵRh5N'5ްz!m|A ?aPer97(Qs$/:<^d =$m U(ZCPl4~mWf/ #Wgg]Ҟn'EMD|j} /o>SYr h2rF,J7xНrb`ֱtT7za^ӻOaȍČMI.8[~&(kq !ŠaDU1] Cqf$d -C trz/(L9sDJia7ٕ&0>kɼ2n\q7l_n0پMe݄Fsf™E.$;4&W5dO7qM]gkrrsHw9.;ƕKď*j=]xPBLιlfnlBg؋H>ldFѽ2?0Qß] ;HCxW^ՉN 5nFX֘ѩԃ P*{QV䘜_iͿ'Y# 7KnO kE/QflM&f)+ՙk|\'qjt/W{omFV w˜RD'2E1̰W?%20zf~vc4l!p9lȡ'!al8Ռu{fI_4R8OR'א.]1=AQ+22h`:͏zYM)+ y1a\[/t|2QFIvunT'urFf%C, Zs^q7k"`t ,'#ˑMF%g &^W 2|mϗX~1Z12]r\i'vjrAuftuv7SA3F܎'P5'ͥ'\ u5xh* Ӹ;ME-/XɆ` Oi1}0CLjp^u /~ln}cxUO왡f)aP0t42|9L`]S{96ZT- ~!CVFNi+^ǾՐ߶Z["OLPSc!Z h5 cbc@+'#GФ=:J d$(Ed[xp`x7.2, )Ng4߅=O~UYH5I;i^ŐTpE"-BD`9yp= 11 J-~9j_i#zc`M9<$zZ~L". UFf9<]ڭ ^̛oi4.ϳza=e7)<?5 #"`'XC5u@yDH6b:RBt7j}%>(Վyo?_rkpkttqƉcZ:@$}`Y3Չ+22ʸy'XFB|i+3DsH>}, TgGɏ2},eF(䚢jF"=\7)YϮz'_*,Y . N;8##e:+UM(H%c|g^ f2'A*n&J$$yy92ŮtQ_VmE<{ 狡~6G5M.oo ~d;J^vlCym_^\Um| \)~ AM`DzL =߼T9T(Qgg'AQ½J1+M&j&=W)(&9mzV,3rk<W5(pvRZv4sUSB <աpZ>S ]qhPYy<>Q" fp:͸qw=KbBf>2:a[j$gu!%"G#nPV/[{Vz";>=.1eI8Vxs/paXCkڎk(L-9ֈvՂtzȨgצ\BI@qKuWzhX ua\p|Z73_;G/9n( 1 qҳt+kC |b}geGyE#LyO)} MΜYqP+ LX3yy`X+ٚW2ܸl\<ʔ?$ Ǘ0'X CM!z*ۜ=r f.p9=t =-9OqV}ڊ{ƏcN3]zds,KDw7_Da^cDoRn׸ {G=-T:D f[vъf?҅BWχc1G$%s,"[QJlϜj7뛺Tuv :u*g'$3ykMQuNmqb0_d|.dN܂XfR͊\iw܆{'(x"-+Ucզ-#`OLIK1+C̢P7~D›1|]e${˷ 'Js\Sk,tFMe!Ѵ'ׅBΈz 1]6/'~ZͼVxDz.Lf[`{ g=ϔ斞0@Bg'dj ւZhJh. DxN Ԁ$>yfwap[􌷡7TtSJM~} Z125)'PZO4NYWY?xv>^2*ͨ95[?=[ߩt5֌^GLr\;ӥ[ZlSUxR(n G#nUDа,!NcGrh9W/}Jz~ɠB7z/aTǃeW?#0{R'P|s?Hm![h -7|@'wلcװntb-nYѣT_*.!4ןQEli3^5dz0pJvTȒd C3!cGyi)+ZQVzb2g&SR-tU-A[4 'fBk ڡ_|@QV9K6GX06eLKvс<ȏᶬ3>kSXȗ1r?(~<03alx~865yhSI)߫3}c-(- cEg&2nϊٝcEu4sސtB}&9A+ eTo=uܹ/ Plbr2n{$^u.':*;> uZl=D)Fo¼;JSr |{LKpNmQQkc(!$jN7m$}yHN!ːd4,լIcVcRNB8g'8$Mn ;ml^+1pg%e)`6vuսeX{SDoh!}T⏖,]V ܲ@8#-?ZxYW&l? =LJ'6q4{|"ֵw/D$#n%r!uM~oE%}zWwJ*_9SrDKoky 6)]OV_S Dxfz"""T і~G*b jqcc%i)GTx:aۆZ18Ks'EL~Wi}=b37W\(,}Ǩ>0yR %yh ӤIsC-U;g?13ioR6-êXn憮'L qkKc ܛ09s{Fų5NO+K}úpeiݖK)vyΕ:Ua%qi-=^ʂeU1sbj|(zh%+D;쑊d@+I&IK+X lTAJ4$0WrZ& H1◙vaFg+ͭF u4z֦ CBSL{_'} p4n7(HVnC!̥X 88u{ȷfa0fM7Ը]9#MV269M+#e/࿻ao[]q٩nUw>XaKͻP~8pGyH^ct$Ðxy 8d: GǍ׀V8!PzMSm8in,L$rNO {*5Y>?0uR'T; ,<.yqC~ &-G8S@AYqJ 'nDV`DH^pQ71iO BeLe y(JnY\ ʠDPr0,˛YK a o:ʝ:{RxU|kn3\}:\6σ$D|/V=ݍY Wʼݦ{v*qyRAד+Z;Gzњ c|n&#j}amH슲-. )ݎF ąࠊQ- P םB;y,PV̀lj|ecnnFT/C ~$c{PRng, ܹQK .}AW9j/]%Gm]]DTt.5CwNɊhߚ5 mtR^?rlWܮ/`u a&oyǾ{gFep`3H1 {JnYYg‹ͽ;ZB<)YcT <+W:<+9g<2yi \{uS7w]4x0U P?鶾w3729ڃUrLwA)K^ާjPIx7a8paq:ݧew5 4'zG$?-6+./8V&`;[1G 2w{b$:جz74m;nx m :65agS*L rjP#>)s^Clؗ;O[D߂&m?ho;#OyT(V cnK~d^a P)i/+zeٽlQ8͝ħ=??:i endstream endobj 449 0 obj << /Length1 1708 /Length2 10798 /Length3 0 /Length 11886 /Filter /FlateDecode >> stream xڍPk. -& NpwgAf5 @pw I.9nvޚ~~*U %$p $49\44`{п4 g ! 2syI<W{WO./"Y e(@! :$lm_z _la(؀"Z4`qqqdcswwg5sBE`:rvY~ P6sS+: @ [rq7s` d 94* dſ ̀owXvelfaup4x!+=" 0X&àOfnf`{3'_dj f vtkd阥!P;?)3=iC,~aȦ;<#x '†wMOG_J|2@`+7 pqvzo[A`?AV;=O`ӄYB!b6ӿRvgYR>M.@A7daxLoF2&f`{OJЧ]/U*,w1{ iYXya2`*[{*}X8GcvOi2RVJC,w`l'xZJK_ `c@]LO%*`3- ,~f6' fo`tycxi`>eG| 96?Ӂp^ꑅ}.=5_Y/B-lZ_lrrc]Gْ&uU ʋvLDܬr=I$ZiA2d=)r(rA,NܿO13;oϤ 6lsBWwĊlC ??泠V`zkD%pjM5B|8\f&wgoQ{h^/8`fK.>{K;zsذPIn DEf:clAזRo]O~9FuDT+-HAKzM=bZt:uKe@EpY62Bt=_ !И+O@kk3r#N0\T,p'rB庄,\g-"e[1Su9kf=몍1YeY& k(_z`5O8ƻB=*/MkK]E} &Cw=W+Rzk(e͡Kic0j;[+=GgIҮ"_x*ɻ&{Rsn&G,w|5kaS2yvU8눫!Tϖ0ZFJ[jݮޣB \^Z|syRGj ^){Cg@Xu}B. h4uݶbe>}yI|{/{vѻh5QHg!M+/j.1R!-xoȶen?:dxc?/wZߐEW&psyg*G 5}~(Z3t=XSw8s # '6vW~ճH6"<cܠoC*$-?zXUE*(@ ޜ~KXOB38hf[$d"|: -Y:eI}i&߲1^Ah eW}td`%w>h15SIXN,Fv^3v],@ɹ5ʷVB:k im7%,RNӄ1J&VIxv7'7|tk|[7#5~$R0w^q޷yэC/mI174=So>F*+g&m0۝?EV=;#l[ӽ!bNI-f6P餎?؈#,X YLS{S8&LLթ~ Zv[k_T[pN$P;~a]~MkYS*8IMٖZJ\zy7(x"ʹUsp S!y^˩jsr2@ =o`zh B%VG-c-=[j)ZaZMj4j0^ؤ;Yƙl$Ѓ|bߔY=lOs[|y84Dd +UМ# Q/T򒁗kbr39B7_%0nǝz7ax7Aʥ{\A5AD lLbƆX Ax8a>)}ns^b>2qslRn`Dj74NQ,WIYdhweděX+,~ϝKz]1Oz #ϕLLZ(;_c1*#ċ"0~G+GFȾ7gc~D,]^ȴ&)c,ڵVP&"!$rK].H$|LH+ٛ.j|xEވm+O PaY2gϥbЖG{JI >r9;LGm`J&+lCb8ƀ34~%E1*d )V+L5dl3V v}Z)Xw#fP0"o|!gCl(jCu|^#Vһ3aDu Ïj Hn*$R+Gڵ/ƉyD7 : (BJ0\={.z tqpd67 ( R1ԍգ1us &j/֌_5kD]hdeK]=O;RE&g5j7M|KYEwmS" XLo607$Xii|IV'Et|tydR5O5'U<8r}WXPVd^hu, Lr֬vC.v 98sns,%7 ޕZ$'tY-y $\HG +&+S;Z.sk,1{}_?vi͗GUP *~t#\e7ĥH2 c=ǒ9]"4&&WGfŔm) ?BYqDB9WLL'O-W=#\b?5z=koaG|̊rdy1 /Os%>zDD7Ȟuyu DgDL;uFw 8Vmd7d{cfɮXR]p#>@O^`p/ߐ@k'hWEs) i-qlHApݳv//PQdRlesxHY(35RTVu4y;5~@5 Sݒ8oEGi'/3PYo2lɊ> S,~^V,>φu%zF$rƟ'ExDxܝ]Px6VFii +#ey_yB«nL,9Ga+\Q}d%g~4tN; !-Ҋ=w&'`R6tK9N4Yj˘kf/cg%QV|t'yYªb[q:ބL:1/~=ˌ~0ynV\[`SG~^-.e7n1sHȭܭE48!m0ݥ&soUTǪёY 9ioTz4}\0ףr^lB􂛺iOK6j0!7b: ѶUNvpVs.uA1AFD&N_t/;ݏsgtfR>kYe(<]")2lS#L~\PjVؿ꣢0J.B >V ̔\xu=:q&rckQǒ2HCLBH%,aDǤ\<$RB^UNJ5O/s9OM̱8AIED EIˏ6KFL`fW;uFY-N9s0X`]} x#$]-q3 Q>Fȝf6ؘ|y]Vcڽueuo8ysRJ ƛ=fa BzV'lOrR2~b%TF&jc/-SksߤS#ZktDZQfg1% [ڟ2ÊߢP{ c|C:YheYEĸyj1y)Sj2~8ETO] ͎ʠdqSޚ7:j]r,ohP}񢈝xUtK06z8ymR\v_[.‡\hvXֻEeg5_߱sH O;JsҜlz@tV*9e|{f*e^pW ~pIj$ɄLv4 W. V]cn{ϻ )?f.P*\';xU@sХLΗ[ݢE|E.ű1cܔf>Hʱw?s#H>%F D葛mO*\܏sVApH80%2z26Q ] K0CPE5bS# JtjfBumꅉQu ޕm4! A{=,E_#2#'w ΄ƁdFE5{"H)۾z}1Nl$Њ'.rɬ'5 ,D/0ñ<'z&%e9;|zl\8=ޚ0)miM&x.jt$ׂ\,DMNȫ-Lh'4CTjSPּ港}d wȩ! k#wŘ/– ^%;+Mv1օ h23Ҧ+-gY;\NmdׯG48Ϋ6_IRC hթgS/;xLVgIı lxV ȱ+J2>o` ( "AbVi?FjK͸^,KTʚk ? )E[DS@I4!@$iege{lFY sڈ=DT#W} r@qw1{I0 >^Z+rV:g"cJIgkb}r9vТŻ.vg[r-*=D_$ _5ТOHNDUrMQUU7Q}I:*0J;[m|6C Oˤ 8Sn|g`+");Ȼg0;7A]|"%3El\R.ڔGvaoXb2ƗlݹR\ɱ uAs-:2f]_|徹 PcE 3;R&$-eO2=V6jj^a[=$bw+.MPFstWAGNINާىQ#vHsn݊7>6Z+LPIʟ['TՉxv {Y!ß=ȷE@3 C7HP|LRoBaL0pDZxk|<^FI!.K : !}}֪)c _.v=0C?ڡ@eOaTFQ39Mz^Lq2V){2.&S;ޑ >̼;fi85=_7HMs:6DT=|<5tE=k-K04<~aXei='~ D~pVP_eA|&J1˗seՃ+j/P%ZnCD>yh pIہy2O\ %4:bǶG/<"lQ&Ma4hSo64p#+"ӽANhyk$EVto!/<#x@ޅ̬<;9I8ݵ>$,̵Ql8>o~)Pfǩo֙Ȭ_цf5906S*`3{p@0~~ng˵X5t +\??OmCZ k#(k!~դs3GTq3Ԙxo]@gK[9N 7-W:Qdiv7kյi]__"oU, "x!!ISUzbY**tpkW{]$5x|+wW%Ll|@IxO~rxyqFlC2:-QS+N}^̵`SL5+uY¾mt 73'Vf̧30'i[\)z`ǒ}gR0pg_ɜyAjol A#m!/EҾɆsr2ChGIT/ֽtKadTs^^ _kߐ=Ɏ{~k w Ax*1%K.=T_B$IQWR˹s)9QVtaJ%z>\$w@:#a$ R nsCd.MՏCQxb'Vɼ|rX Lɫ<,Ji,I:m=NB1Üw6Pts>:jc{.fLޞ`_DdnCwK9s o7w"OY&H:=:yB~ rgob`J%nhZ&/J͵і_^p$fوM"CI MZjzfI#T.5r6zŊTzXgp_RffTv(R5],5+PI [;hÝ+$l(4,%WT_J?;V)^=# [$ȵ&{>Q6h<KW3#kG\,(-cz=ݏTihP^@ZH7Тs9#JbxwAqbu3-0ɾ:0v$ԩ`}rȟu ?B鍽,^6A$%%N6NjJV1u!^9~;!nZAZ$C,Yi_wLoaNHJ|F0 쐤u,c%p ?T8[Slh_V,hKaGs?"AK̰ nX%.u ]}>b@0r.Z$D}gPeJ?X 5tom[Kx_^F+G 6zobml\M+) <@V?F#/e;q~v^yf]Y>u/0Љ<Cue_{=9ݥ>1j\/w-q}*\%$}nة'IDT~; hhR0y^6k)z?ݵL_G:ckeu)Op5ɸ"\=B_Ȕ￳hDr_CsÅ8|']?W:e˯9MLϴ. JKBVB FHf'+L!> o*+6eZڿIGR'|TЮ=%l%60NBá_>)U9-}'8 ƐWqcùp:w3PaюYk]nvؐyvXǗH> =hÍ)njnช5H_A}:[i/2@njzi|RFCj.$qєns$bNakttYWQܲ*Al֖O'qfH,:/Z=ߖV\_ \Zn -W#%xd6]?",bï8$}Xm #'֒~-ZvOK*1d;ptd׮-LW3wC(t%~UMWf>Ei35*guc{B+w;Ή}| 7;G̢fAq?>`'SH*Bzu;&[!!ne$];A7,fgz<h :9&Cw<4q̇f6qa6"UBk׻{uj]oFU#YUߒ@踆R4T>e߷sBZ8/(e{&rH+c/V4o|sX8*y ғ8?ǚK'Lx= 1Z꤫zRf,ڱ @a|Tꪓ+ʫ[CgPx~=[ XzǏ76UYD0 eGh<^nQAg~735sdƈEu4,MlG{EAe2ΚmD+A-&-RLkxEuc̷ӎ _D;IvrV3oM-p Ѫ{%NXZ\֯nPpYL3V|3YDAS7!YY@s$r%-`V!B&><#'1\ C<-]¼޶-9\6 n,Aou,qhЦ_$^ oa'^i\TNrҭGᔡke_wpW*wI]@g/oj&|&@>@I|."L+&fdAs? ƒ>q PYI$!ܮeRR}?jw#1w/vE0_y@ͫډE"MI  ^CC'_69D=x͸-muzxxGSYl1x0X*jA$>YMh_~1PwR5 "/ٱ@3l#7Շ׿Y^rg!vצW^pׅ> stream xڍwTTk6HHI 04( " C")Ht -%]!! ;kڳz{mvf=C~yREmCC!a(" пDP$ K/" BclJ 44ܝB"!1)!q)  J D J -@("vE7fIJȻ@00.`3AJ%FJ zzz \Pn>' 0H(kdg4"v a!Qw8` յP_`|?O?ѿ࿃A`0v0g(@WEK_@3 y` [ w >|(0F `οfp" G~CB}sNp' 5UUWCQ (^`_]B̘|];P?Gy@h;;"@``4jcƜ?0b'0 *(=3 //0_XT ).; ?p;@n1w(G܀A` ps (w俲?y;;s? h)r{ HJ`/9P= ˇ @aHŨ%`̄E $MpIXT+#A8 `!DTB hD`w$GP/(hzq i8__Xj 5EsLf:hLU`)Kқ* xBϳ{6eђ%Q-ܱϟs~bA'Pg$15/]rxk3=Z+_QGMN[ID;/xht0o+EeV|iED+~ƾ/FJ{)ݘfyáJ1Àbѭ&6I*:(|Z+݄( gBCUJG@Ўu 6Kx$7?-+dne/oᩜP/Q[7rۃ~ZCD!*9υΔTq6u 8b wk3ZUq^EE$uwy+>_1(ih2X<k{}*m6%Na"4, }…zv Ge%5D£%#gJNǀDwi-L/z/pqK9Ò9ܡy~"g3J ޠnjvO` oz*hJN~:di5n-$<[+K&1ۺ+s \Tt20N E Sڜ+ݐu\9a޲`U@1<Ŋp |Oar892LȻڌ>9yfq~V=Ɋ O~Í3`y礭TLE~FU?xṬJJ:h l!#0=skZؿPr_-N N3.κz g.ʍ}'p_6!0 c׮VuLﰂ_JxKV+s~da{N>. J1ħ?xnrs6qnZ]uhd6xU8Vx$ PDPM77dNjJ~U_R_lZyywE%3&wpy(g_=}؝Fd#Qub,z,}CF{L =D$lݓ2jw+932j\.t?vUy RZge2.C/>OspO:ڦ*`Ra#5p WN ;_KDꢇ,DXCTRY3rzm?ةG)(\ƒ9m:>\8a/((=i*qd#twHNmydp?;r\ G)ȃ ݥo`3\°#CUsosmnše[3cl .v?nfB@Fe*L7E}נV,ͭE:!Kڜׅ^J'"ʜ6Zi~ԟ''j #Z 3lFgLv/Cߗ̗y5 wd$[aMo&E4_t_͌ ['תo=2WFDxP+TXޅ +nH^eˢB{!Rڊ[Y:t|mPV+d/ZʳHZY#3eYKV[t[84׷8ˏl?20 5 {5kMldpoxf}ݎS {1@pv K27 ُtwbى!<3QZ O'Ctd Fa|p*.1>(d 7sDž;cUaBЈ[e$4ey 〲W37Mɣ/Zt#)! E(E* \[]ތĶȬ}c rqG$y؛Qw/6&];wXi=괤(3R!3ݰ|tU␈E-Z92QbMnJ G/DZ ,&i$73%̗4'\.DC^^u .j?ǝ$46y{JڢUkULH}É*-46Cfd4SʩQ 5qn0{޳vԺ.Wޥ1RN\ccu[,*KgxMIb_X}눟xa'ǵr=\}Նݴ]ŠTAu2בM)R6Sp$/`MI>~DzXhDŽ4pHquHS;DZ97$Aw1#ikH,5KSM-K-#j}pcB\M%IJ\aQ!<>Xfa\ v;9ڠwӪFi[)2wXBkxݫ9S"7ۮU!Ưm !gL>^u%XNLUt52H|BKk˔ _~})~I:a$;#˹FKġߵm] -~ס+=ƒG7/?7::Ib>ȯf+gVEP ݷQNnEBIV|j͸ +r>oi*a4GǞ:<ܢ-um/Mػ; R,/g8=LYܗ2:.gD{ pj}ٱ *_hǻeȊ#YuE[kjQw2̩o|ehO͵є! z3!nrXpk[m4_^z$(ymϿ#.TT~<' 6_,e9ca⨏)Y=X Y%*Z^̈́l5N-3=ͼYTNH=C[Z.Sܛܶ6]c/^=,I}<9*0s>33{wQhחǶ4a1lZʓmӮhyWG^PvJ{txп=0dLo}tXrP"*"m׶$zyЍv[|-u1la]@t2ys q40|yyR'lq4;޳DPx'cm[WˇzֱsW>yց cm %d^q؂ņވ6vƱ9M?A6@pY&EIr )oʾ]`#Ï$*cb57 =%BH{Vw EmUغ G7pdL%, 2n+VWgL]8NkDvƵnM<7n3aUb[f>gԔv~o>nKSk\L~($<%FC˲|+Gh2D\nρ@&]b_0szhke-:#=bNKuq$bJ4PzEg}IRIUQ+T@V=If>)@8~J> Yvc`Oded,qg_ɊC1FkϬ ı O(?.'M 2Nqv) QcՆ>:kk+n*6K5DReO)̳@ pfSџ5 ̃qS" <~ddvCtM2p4h"υyNV =¢Ts e?I۞iY'=&O󾛺- 1ې,a̗V8?~~Yb]5vV|땖]hu3M׮!#cC(+dQ9Oa8ᙆx7zfz#R.>rx4!A8Ga|yVmfv=xFD-mR^B:} yfA}r;[l@ݤ+*.G!;>?A]F=v|ey0FB.%l8J8j7.rX7[kpOX* ?-p|ÙdF$vm3?s@m!Qj+yVH"v1f=W™[x UM#v`ͨ+5Եm!&REA+!+9KRj_ endstream endobj 453 0 obj << /Length1 2079 /Length2 16816 /Length3 0 /Length 18076 /Filter /FlateDecode >> stream xڌPkֆ 48iqq %8 ~سgfg:jZyzTIQ$ekfdeb+ɲXXؙXXؐ()Vؑ(5@6|D;7`kd`errXXxh:mm@Hvnf+ƈt5hP@oO4ZTmA`)A#`130lLh.`3  2% h 4&$JU[ x3XlRlATev `pL- +hddkmq31[RL`W0hcW - 4u @JT|So}Fv`G&Gs42U%mmA6`G0w/?dbncl c';fus{'ĿcLHLA`' d157;п4xyLdM@o<  `lnLmfo` 6~MmŒmm 3kkk*[bbFvN#' (6&޿};'۷h/,,Fo_)*;r?o~۷]WWdld`6ژM4#+ vsG)sW9ۮ׾YۀlzüeےYEF_.s%mlZ66N.vo `}Jc뿆dc ~Ki: u\fѿL7Y0KYR+Yb0CoUKK")|k|s9?ٜm(bI0N|ddXٛ ?S"[qڽm@&5ue&Ѭo{TfsT;oJ\l?e?M?Ur9 #'7V?#d4ok`QzW-J¸;" AsGyOO\=?|QsW&[kކgj8R]+6$Ñ/vcS&A+Z\ݹi SxL(Px<<(PmmbEgfe)/DƏ?Hܧq_.e4J%<<|g'wq(E g0 {j Jc8*LΟ)3y!s)b$3 ݗ -Cv(jHSCGRZ;;'uiwY4"r"l 9OCSqzj3 #X J SF#Q bm}T!"-& Z{d)I4 <&NFysG[1㘏 ?γ^jK#uf}8˓UL-["T%3יH+yS&3D#P!xO'Yei&~P>j\5kg(RR;}!Q"ʼF1)/$[cI9Vbm ⢬ԩxd ;'qv~unw1bx&C̋mw3(G%wΒɑb.?d_>ҵ)A CϢCC1~0L@ydShOP$WHuߓGPBK(a+ NiNެۣ, h ~=UROn_^ɽ}q0eW2# Ofa,Q'6(7Z9 ? P\tO5SSpΡz2%ܞD,J.vX$RujƳD\hFCp.%Jy$c5My9m UezՏmfPʍx MN8T&խ2{]Cv6k(Ë,X T)Uo_wT fZҢd۔{hcdSf'-Qܘf9䄩ja`yqHb**y+^ F^I_SK0M8λCfZxNQg"1.ҭl(.:+O133%T6M+ƒ?m& 5BJНS f`ts (U(Dp#Tub>fC0#-/JX݁2#Ro<&bhECPE{t|g+=`# ֗s%NG3GfL"Z8&=,Y=OV|2ȫ4H,(bcWpv0:sݻ$HhJJKV %ĜDrDwwOFyE)G^J+#/*f?Z|!mHN[:"e  Q:jE'Up([G;IlP!~;aDRQݘc\׊/~*CB+QG- !5psƵ[k/b{PUT~DvEXft%M} ‹}j ubMyiH7z3 }5"g+#w^S4lWFY+ptѯ:TQ)'.|nOU2%Kn|F]k*p3Tp,w@Vy:Qs`PLE-x$ .|-Z|tc0.(]I򽿭) gj#oilt*դC|/iNg6x3#FD5гAzoNt8 oN V8z A ʋfۃR|#jڹ߿/Eow>SSB ֒#tR'ɁG?).܅UF5 Yt|0nZRЂ@"Gy:ېW-/U#A  ?swƕ:{sqҎVDuI4۰a!V4mV2Ga,X׹]b>;dgHvsl-ceRĆ]822jYua{Mh/7OA] HBH˲1;u3]SW 8Aᭇa?&HtFwxqF ;*XnwlTV;eoBUG9A+wʙ5 RlOTlGy8:/ |J_N:]ݴ0_:X4 n'ޖ|n Z5Gh;q u:NPlԓsĜwBtnhH#Gf^fbe Cd^m9,%r\N+/XS\jp51 OXxnpNZcZΗڤGؾ֥%!3a xr> [%+ib@NCum& ZT%"Lܰ-(|Ly1ׁf*VH6Qt{*arG!WtOӁ9ǻX#љ'u8޲L ٔh Vn&F_W8+$E픁BdbdEg*ë"p܈hR괴։GA&gʏ{gyHt}~fh4nB◆C]>!Q5&*ר١µ(5@~2ےYR֙MCw-e5p^`΀7醣 i"|SfIZ/<57DIg tdlr#y&*pZҖFB8;J4޼cw#sܛ-o S9Bq2"G"gWe(e&LBu}1Q 9cy%'1zGםE)6ê{w1 az/,p&Y&ѯ>Wdɳ=,7F#'\gG'㭨;5#94ԱCbׂ_R&i"7K! I#HYYkB `;Y7~'Gw8KXKowjLx䑊~(1}dՓ,=[]FML(0Nm4NL-aTk~1~NOkY- uﶊk.XSA Ur'WZj1:VKU K[3`;V7 vPܞ ]'Mqc51o DЂW*A+K?eqjg&.'֢F[}差u洧WϿܺ},W%Tfh5GT$G8!y 7 8-L4ŲecO| Rd&uZg|L1#d(W#[a~ScmM^Ct(_e p0Z* Ã7=DǃZ1؏T:8ՊRFwʌ̧'t`,ըX4.E^YiY02S~IZ'_D2HojJ  R5?x"'/Tv{$΋@y0&z:_u8j=m%:đVx$i=<[o@3ח_9@۴ObA2UaէM?)kbk6"ن!ݓGJ<UlRc_lPiB:AJ |fRP8x@K%2z)8-X0K գTu_'IMLX[nM*8FtqR°h4Nĕ`ɂiJTN9"=r=i/Y,Ҟyq"У @f4R|IbCrR׏5*'/;<Iogh)#춎Ey]Oo b'CUfPݨw<9Ɂcv@C"^MD&(WBa䭴Vlv> \f>UrkMmLvRBC]!O'!)=LV9B3N)[#=6P }x?gթ (t"jh:à^o+L|`D(_ Dp@cZ ɲ!Bj#@1u'-_)QUwJ{ -rLx n.G@Sж],Ϣ9HIJD5uNnc\8i9Dui*s7}Phki "|4XaʪQȗ`i/ȐFE 'wfZ(Iqit@ vDsvULJ%FR,8PԹ(~˜~!ubeX1)__7 ߣ)BYʣU`-{# ŭUq<눚Ǐ TbҏF ?qE)~ ԁ$;'BCm(46-|j Z qd Te%J !QoB(QAd^7ܽVNvWcdg?Y\bs{!ōrDR]Seb]RnqAtG{@9B(4f}n_x]¹bAD I-d(#@DG7EDJ&/" _zX5< ?Mt/B"NΛ˩'?gmB3ZfZG>kVFmegch+vko–W,Dd`КyC4< .%ιyk]UaYa^(Hɕ"xV6>NgGl = KkQOXz6RGͲnJy3JJ0"bsrB4ϰ/~!ل>/dGWNmi]^\r.-uH|zZ:C. W/u\5df2!G=-"eUGVP lgrĔJܕ\L*i3 Pyko'zM&lpL8Q#v)_W-s'؏}*3C8V{9k%DI5!-w !Mr'D_Sʺ`qX^~x{nBv$O<a2Ø%h"jV*qZ j51GS~m(*0@(4 3fO{\v?1\&OY;uPP~$@S\o99}6I~p';>}6ѶVS2-(C,O"yPqcgߌ'歇nkW)hjVQ?G~Pwni J>zLVL^Դ0؛U3 ?̫&ĺQͩO;>%sGDCb RjF#&O]8-gyO`bα=}rP`9 JY##|:pژ?9 1}bfz&)XXqU݆,;f%zh)PpLG֕T!'e.e~Vy$qk3岐lofk- e|$(((ʤ-܏ő_89}\!>%d5h97j_Ȥr4y]a_Q@1MT%ʸMͥ|QtG 1֢鸋J~8#V S[SD'a (p*yC $Dr:qJk+wcefړQ׀`VF?lQ8Uwl+<ޛ^4_@[8{1MpJ>t^9#j]~B~^ GO?dS3U7y97ȗCuAK⋈LVjQ.$JOzcW{7Ŏ:э_z_Z!&L @t11-Ӓ|6G6x԰z ۦ0XȅVe\i%6Gᢙwnl_ܰJuc~R<< N9ohX$GKl$BVśN{Ob;q"+30\4OYDtVb %3E:/px]bbN39Uqp_׳ ,J[po{"t `CjPƥo}R%FS9ZL[YZ04+0jd롖Ngz&o!`_UNbZClӈe_.$uDFɄő;uEL~_yDtu)AbwI-m_CpIh-"ga=]J@ Bb}*P5 Jc m63G ]e;S;ffS۟$R!smc-$vh"~8؏ ER)cwB2QӒ=!f$5O_RDd2bc7 ;#}&*n.du';WQȓh븒:H8jq! ߷0hS P -]DCD@9%iK6,ra՛d:%GA@Ѹ&W½Iy*zyü5k5jl~L Q0Zi+^ԤL֏' 1:B' Qh(S}-]ǪR\N:.l/i#MEc7Nnm_S'Mm|6׳bx߻."ћ'ՀN{c'֔jJ lMT݀%˫*'Q,AyU{Hu0*L# ,~УN~j(ByyeN'ͣi,W*Dy=;{0:݅(E4w|=qB)Rŝ2/*H9s_~Ĉh7RLCakKJƈni/۲_{ >Tv,-S+(j6qhdn@2kA.x O+sѮbs*3,Kw~:QzK0S6̐ca>al&.JGm,a'6up5=J@&pbpW[Whb$w$A"ERFÙQ֖SǴO#%3I=ifV#АB<˰9p}"I\_W}'a8^Z n>~baN2rU8#-[<[y &Qt]zP2$PCb*dׇBFr.ZQMU ~Hz} [H8uK%@=/b +'0ċ'1@WRsIW>uֺTyŎZ~Os|#H\f9a|5imGhZՉSBĤx!2 +SHs*;‰;q}Js$kHKӚn A隴 eF&-8;^wƂsʰ 7B]?ot7 qh)Y)铐R8>zQ#Їe ҍ:%sv vV, HR^;a N^sS90K=s :T5/)xGBT=!%jf2v:x+eN)E \lqjT$/᱉8ot4-( -7U|'n - 4qӗO|A`dHzkĩvSF:YsY}qJ3sCقiiY+.Y}kC |Ux+ qZkPk qڛ@FTf]SԄ4vRX1i|AUi,k L Bq,lN5ECzH 'd$IB%$H`{54!.=2 ѱq+Hզ-$] 5 3z"b\RYoa~;RNu0PU2 Hq>r`rުCo"J=휧zI/)ި|$gdWR9S ͤT4l' W{fߍoOaFm^P3V\#8;/?8s55& YrV~\ä=dazWW]@CI}tqI g!Xql%pDz+%phkA}j/uB |X*Ǣ !aTJ Sx:c$䕼 mtJ`Iz7"Ad!X#R]Uџqs1J(u62=^6垷R[\:i%D}˗AilTA(eJeWZ ?>cN/Q<#9p-c)ښ?{OF7rV\#]V5.hz@4x`%@;>y}uCuGĂdWw$t+/ޢYPw^Ůf^Jf%N -DxW FAOMޤh#a֎sA`ZFߟG Vhw܇3\cVL~W+c;7N$vFÿg S\b<[ 3k컁)B(뒮XATdL,㡲P$TVteLXO,"9u=!ɇ$X:&pi6/acҠ1#/=9-C{ۉmF7YX1Ozv(9̲GfI:Ot͗9%3e'Z\y| >)ac=;w3-F~G0hM-\n2jz|*d~ct*| *pe\.ǞXDVKu{+r}!5ŝF3'}X.'Q[2}|GOU$#+YbTسY.G'Oٔ鬅Πm 6?0YIЕ  eOl9tPdA&C\@ũPYZ)!W n8XV\3W]] a6S 7ſ-*+/N>MUǦu.9f7xsaY>pɫ^oxEdؙ;_F0dg >*ƮUS]6d RM,BE˘H8KqbhPַeI7#>kq~:>Odx4](+Jg 0i0K:G,<ϰ5V;RR^yt$pֵ|b>EJa]T)0d*W}NJr2t30k}wg{9yD?QƵq¡0Wۄu^B* GOu<| TȧpG UCWz0dNZGDl&=Rִј[+Tzڗ9Ab;CYǸ{y LS^}*^I| ~ซO.`} ȊX7v\2$0-FKkxlCE ͭbn׭P]Wtl5^a{=)yڅ;gSW i [a>hc!:WKuNI#-0z"> bPOM%3;ԉð>7m> 7T=ny4"uYZ O 3=-u;*m3/1(07CdžYݩ85ducfljg{];u`]'˝yR"eyBEszm{)}Qį+[q90*PE@!iNp g F"*C ۓwOk x^#ˣKHT>$&^@N>`Lm˯uۛI&, &I-Zl&PXR%D]⳨ֵ4t'3 >$jZk%bNUf|K\/AFXcαSEfn 82O|B/种L /=KEAà2qw2]|Y */CX|yZxC͊:,fM\Ymo)SzP]8 i]~nJm@-($#neyl4oa9# 7SsEK'm%~cvS./| PE~!(5# 0[".+*2zyȹ-8(C룶,rƏ ?5|T\E`Wq7;<*glLpMSuӴSdĕ%s?c FK~kU;_&[ԗIo7 )15knS1a9TQe@d* &`7i& tޣcZe$LUZ=A[ddپJŻ~`CD3, r|» !NEg"w8A: _βnQ9qOx])nW2lSCӱÍ)9PW˵L=AQԁ2xA &n~tc7IYY_KؾQcړ첛F-AɃ91r쐄aX0cv0z}ˊz^"ՎH?#*ڔ~Q\Y=gq狑Dg3xp)FJLZڻ0%]IL!>ZZCc4T \|;ޠ2 S;s;cM?^FlLq#t0;7>VEF{7.AlyeڡQz T. 5~3ۄ-+FmX@D {9nEExN )LY*6A8qt] R9|#܋}~HLE D9e"C4ίwCA}'h_uF )ٵݫڈByʐ& I/cBCc0|PHeDIBc^>ik65k /Iq> 36Mb);^~ZLipǙV(q+wc8062\IQour F6*%P-d7;ȄkRzi|5}*L̓q꫚nI@ZwKߧD;޷lĩ85T}*Y D&=ećxek1O/i${ S̝6y"J,|ׅG)K$޽V"eR1b%lՃSYi+<:^X.ː, q#K+R{q-u!;\?~)" jTnɁ?i%rY%S(]+KJ l^$`cY/e{3BcAӣTzO3v@}\i'RLIM+F႗W4j%@VAWacM/p, 5BpZ](F f#G pC@ }],~D?Oq"wBi56i]21ՋtäsJC(?x%2k~f}204u]veU|Sm*00fy&Ƌ=:qqe^"8aUm}ʒ"*xע9?KE*a"Eıqe}mwPRa7}lBgխ<N|e@>zfU6Q:wmߝίk`-jnV8eߒA ^]c :H2)5Y+@PQ$&D;UT]_Fz宫|f++b:3X2J1;9 2l{0bycC endstream endobj 376 0 obj << /Type /ObjStm /N 100 /First 898 /Length 3897 /Filter /FlateDecode >> stream x[[o~ׯc"  I$MIjA7Nɑ7C-[nT=\pf8rܵ!%  $,t}TG- 9 [耄,Sw+$ @eEtIXHD&i"Պ&QI8@6o*66ea'F2 ƃV@]vn lm}7Ⱥ,'5+oX|0OWqbr군L xz5jkŗ+\/|lWS^]z 5kŧ+>]OW|tŧ+>]T|[q _^脵HFFFӮxr7MQz 7JR-|#0ߐvL ^1r;-dVSuz̰%i Dr e򞴐`)"42 |'/&` )[h1/{,S ꍍMRG]3@Z1WdLoKB*$~R ЦʂQVv~@~r\+Ab{bf`b Lv=ur2yi?s=1QgJ^c3NJ{b!څKҖy N8z9*5O?`b؏js v!HtJq":=Pv?BM5CdzMnOM@aWԭ;7z=AŞGzfCap>~o ) ~q:=a#bc:O>B☙<? t*7OףBwh|ǑBi?'43zcPSVSU1I O#|M0!.SLVSD,١S9yAO l1du0qej=wnt악VDGXs7fχh *M,C2q &ZW iHPP ̙[FrK?B:c-m>|:̚+ӓ ٰZz@< m&;ĶK,q9k*u埀l8%ƽ>+ɓJF>M<.}YX7W(X]$KYZ?*62,_H:3C@Ά8 .P6[C9'8z AyO\@k=0^?n]ѪY⨪f.[f2R/%S}M*_˿/oe:Og+1eiI!s8!QR i%g!r  {fQoHbDh 1 0k֚]2}C>*sEZZtCskɞcs] .sI;@+OJCoYzєף$,?%NԵ,-ђ&,K8]Nu2xprOÞ+vJϊH[&(Kov3Wk;B'^YϹyzkTyfTxU l'.J϶ؔfKʊΐ+3rrPJO.y v% 夅C@ô[]@J0+ ZO,c2WሰF\ ).&:}iG:4lӑn L%kgC<!짷J*Nu3rÜ$myȩ̇磓V(/p|S8KK)W|$|.KJ,ȡ|'M'O <'ǏCy*[ɸerx.ϭ|\ßڱsQv:DNƭ:Z!sNidtMN'r2oOߝ˩pAômS >L[Y!ɿ"#o6#An(uVr}1Xn S0!݇ɍ'_̿u_>dXg ^^,H\ɝ/|sbw}) &CT6nPy Õ;o}F&EZP"EU70=\BO7u/,fb I}6uPc9!0BԵLAeV&KB,2i@#-33Ҡ2c 2#?SDH7"~܆w%tCv `+ڨҧψzintU{|,x` YˇMW¨+xey:rpƘ {Mcun]%z !SԵ8xwk:tEO]xwy0x}w:+L|S7w>'Sww;uS 6֏H5+}3~.iY|C.rNTP>eSS?1SU|bbeg9|6s GOxX&:.CEVº?^ΪD ?-֌EʥSwSqus~Q? endstream endobj 501 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Producer(pdfTeX-1.40.19)/Keywords() /CreationDate (D:20181129080032-05'00') /ModDate (D:20181129080032-05'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) kpathsea version 6.3.0) >> endobj 457 0 obj << /Type /ObjStm /N 69 /First 578 /Length 2342 /Filter /FlateDecode >> stream xڍM#+x\l,~þ9qMr}gzfh$E,vS/EK9 F.VbDbr"X!$JiPOB['$Hx)Sx-֘;Klpr;) ѥD;A|7iRi)ROZ()#rBAHh eUB:M<"=#SXҬ2ܑ|nUp9IO m >8a:/,EEQw6 щ;9à$qs^gxcXA{ V*ꥰ|;JX 6'ml#{ؙ;qn${ W#CjY#&&IHxڬ?? 20uMf>}rQA)o:Ed vry{.s6f uJ6J~bO }]Y*z5jZo_ RU{Fo|خ7mL/\Q1r1$³TXD4}xлdX|z9c5)t_dH6F /|]7|cVL-̡0'`Q;w5_E-yy≭pYuΛ?W+<eTiq૨ܹ|6huD:|ZJݼJ^J K_6xy}|FlwM^OOV:>TQe=Ο'epX?_]u=M1M;GGxs%Y3EKT.^7Y /9X(@Yd3TQEIs"c0 i-aSyz5l⠭lfW!2ӍYL`6ƶ07C%-47X-pZ6#nUch뛛mѮI GV)HX%Ү)i02 iW  H_UB3IW[#VX)cJS)-]JPm6W^%k-d]!UaշuU}["e`ˠ,1@iV5qA=Kj 1QVE'ZUWLnₒ=Qy kdududud֍uͪp-IKu `.=,{ lmPSxl dJ S٦obixJ^JYhM]{M{5@kkhmhm= ( 5@86 چ"6MZm@w[u5Z mM-6'%{#EϷou@:j-hCcl@)ۺ^Fm6DմoT<5Փ\4nݨ;ziU8I5xs]{VVVu@<ЪF"6Jp_z?jxsD @0Zaڦz og a36:lӨ65l_@aCF#{Rj+ 3JObo}ۘRjLZC).Uz'ؼrHwIRoM( J9sAz$;M@JW( J́[#M"=kQj{vwo=ZIOK {Kg"ߓ(ЦD( Jrh"u|bG _x#382ÿ]\5KB <246A9FCF27938A8FCA1D3325FE0681F2>] /Length 1157 /Filter /FlateDecode >> stream x%NGg rRx gD<𢯰ޡWmIM4IzפOИ }2Ϟ}fҗRNZM^6#0j0R;@(&1j=Lfjgu3m}KVp5jvj1Qb*iQӬX9Scqvz7Vx㍬졦KRkƮqpjnƗ+oOBm^u R;O 5)Wej48CMdHWSKmj/jϩɞQ.p0_cSNjr2v ezL)p\ 0 n[`̂9p̃p,%puV,m</t3sV&q:vdlApm-lG`<OS o.@B'ec[-`g=P7YєY :GD9tzpRB': $1-ui=Nw"'A~@v1nNK q3Hb @6bRZ1 b,Y f aAc'B‚  V* uA.8,۶4V! AC9P_ <<]:3))M`4f@?- h햖lP4vtpцqԯN`oZ8 Ԃ9pJc~tB(W$WupLB]h-e 6ͼ,X> hVP8ebkF X4;xGe:Hy h[+R.v-p9έ譖x_5%~s8999㠓A8:wcccccsk8^:^:^nCۀu`cccsG9:::^ziWP'*p \rlio-иޯihhͬh40FfF[f5kN"|jU6Vԭ[QnE݊u+V][QnԭQnEݪ8[QnEݪ{u+Vԭ[QVԭ[933SѹOg"qE`ydy?3 endstream endobj startxref 145301 %%EOF generics/DESCRIPTION0000644000176200001440000000173013377763603013577 0ustar liggesusersPackage: generics Version: 0.0.2 Title: Common S3 Generics not Provided by Base R Methods Related to Model Fitting Description: In order to reduce potential package dependencies and conflicts, generics provides a number of commonly used S3 generics. Authors@R: c( person("Max", "Kuhn", , "max@rstudio.com", c("aut", "cre")), person("Hadley", "Wickham", , "hadley@rstudio.com", "aut"), person("Davis", "Vaughan", , "davis@rstudio.com", "aut"), person("RStudio", role = "cph")) License: GPL-2 Encoding: UTF-8 LazyData: true RoxygenNote: 6.1.1 URL: https://github.com/r-lib/generics BugReports: https://github.com/r-lib/generics Depends: R (>= 3.1) Suggests: covr, pkgload, testthat, tibble Imports: methods NeedsCompilation: no Packaged: 2018-11-29 13:00:32 UTC; max Author: Max Kuhn [aut, cre], Hadley Wickham [aut], Davis Vaughan [aut], RStudio [cph] Maintainer: Max Kuhn Repository: CRAN Date/Publication: 2018-11-29 13:20:03 UTC generics/man/0000755000176200001440000000000013377761360012641 5ustar liggesusersgenerics/man/fit_xy.Rd0000644000176200001440000000104013361372265014420 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit_xy.R \name{fit_xy} \alias{fit_xy} \title{Estimate model parameters.} \usage{ fit_xy(object, ...) } \arguments{ \item{object}{An object. See the individual method for specifics.} \item{...}{Other arguments passed to methods} } \description{ Estimates parameters for a given model from a set of data in the form of a set of predictors (\code{x}) and outcome(s) (\code{y}). } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("fit_xy")} } generics/man/fit.Rd0000644000176200001440000000071113361372265013704 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit.R \name{fit} \alias{fit} \title{Estimate model parameters.} \usage{ fit(object, ...) } \arguments{ \item{object}{An object. See the individual method for specifics.} \item{...}{Other arguments passed to methods} } \description{ Estimates parameters for a given model from a set of data. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("fit")} } generics/man/tidy.Rd0000644000176200001440000000107413361372265014076 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/tidy.R \name{tidy} \alias{tidy} \title{Turn an object into a tidy tibble} \usage{ tidy(x, ...) } \arguments{ \item{x}{An object to be converted into a tidy \code{\link[tibble:tibble]{tibble::tibble()}}.} \item{...}{Additional arguments to tidying method.} } \value{ A \code{\link[tibble:tibble]{tibble::tibble()}} with information about model components. } \description{ Turn an object into a tidy tibble } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("tidy")} } generics/man/varying_args.Rd0000644000176200001440000000100213361372265015607 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/varying_args.R \name{varying_args} \alias{varying_args} \title{Find any arguments that are not fully specified.} \usage{ varying_args(object, ...) } \arguments{ \item{object}{An object. See the individual method for specifics.} \item{...}{Other arguments passed to methods} } \description{ Find any arguments that are not fully specified. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("varying_args")} } generics/man/specify.Rd0000644000176200001440000000064213361372265014567 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/specify.R \name{specify} \alias{specify} \title{Specify variables or other quantities.} \usage{ specify(x, ...) } \arguments{ \item{x}{An object.} \item{...}{Other arguments passed to methods} } \description{ Specify variables or other quantities. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("specify")} } generics/man/evaluate.Rd0000644000176200001440000000065213361372265014734 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/evaluate.R \name{evaluate} \alias{evaluate} \title{Evaluate an object.} \usage{ evaluate(x, ...) } \arguments{ \item{x}{An object. See the individual method for specifics.} \item{...}{other arguments passed to methods} } \description{ Evaluate an object. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("evaluate")} } generics/man/setops.Rd0000644000176200001440000000326113361372265014442 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/sets.R \name{setops} \alias{setops} \alias{intersect} \alias{union} \alias{setdiff} \alias{setequal} \alias{is.element} \title{Set operations} \usage{ intersect(x, y, ...) union(x, y, ...) setdiff(x, y, ...) setequal(x, y, ...) is.element(el, set, ...) } \arguments{ \item{x, y}{Vectors to combine.} \item{...}{Other arguments passed on to methods.} \item{el, set}{Element and set to compare.} } \value{ For \code{union()}, \code{intersect()}, and \code{setdiff()}, a vector with all duplicate removed. For \code{setequal()} and \code{is.element()}, a logical \code{TRUE} or \code{FALSE}.` } \description{ Union (\code{union()}), intersect (\code{intersect()}), difference (\code{setdiff()}), and equality (\code{setequal()}) for two vectors representing sets. Determine membership with \code{is.element()}. } \details{ These functions override the set functions provided in base to make them generic so that packages can provide methods for different data types. The default methods call the base versions. } \section{Methods}{ \subsection{\code{intersect()}}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("intersect")} } \subsection{\code{union()}}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("union")} } \subsection{\code{setdiff()}}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("setdiff")} } \subsection{\code{setequal()}}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("setequal")} } \subsection{\code{is.element()}}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("is.element")} } } \examples{ intersect(1:5, 4:8) union(1:5, 4:8) setdiff(1:5, 4:8) setdiff(4:8, 1:5) } generics/man/estfun.Rd0000644000176200001440000000071113361372265014426 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/estfun.R \name{estfun} \alias{estfun} \title{Extracting the estimating functions of a fitted model.} \usage{ estfun(x, ...) } \arguments{ \item{x}{A fitted model object.} \item{...}{Other arguments passed to methods} } \description{ Extracting the estimating functions of a fitted model. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("estfun")} } generics/man/explain.Rd0000644000176200001440000000066713361372265014574 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/explain.R \name{explain} \alias{explain} \title{Explain details of an object} \usage{ explain(x, ...) } \arguments{ \item{x}{An object. See the individual method for specifics.} \item{...}{other arguments passed to methods} } \description{ Explain details of an object } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("explain")} } generics/man/components.Rd0000644000176200001440000000143413361372265015312 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/components.R \name{components} \alias{components} \title{Extract components} \usage{ components(object, ...) } \arguments{ \item{object}{A data separable object.} \item{...}{Other arguments passed to methods} } \value{ A dataset (\code{\link[tibble:tibble]{tibble::tibble()}} or similar) containing components from the object. } \description{ \code{components} can be used to extract elements from an object. } \details{ For example, decomposition methods and some modelling techniques can be used to decompose a dataset into components of interest. This function is used to extract these components in a tidy data format. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("components")} } generics/man/generics-package.Rd0000644000176200001440000000276613357433140016321 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/generics-package.R \docType{package} \name{generics-package} \alias{generics} \alias{generics-package} \title{generics: common S3 generics} \description{ These are generic functions that can be used to minimize package dependencies when multiple packages have the same method. } \details{ An attempt was made to use generic class signatures that were consistent with existing code. For example, \pkg{dplyr} and \pkg{lime} both have \code{explain()} methods that do very different things but both take \code{x} as their main object. Even though \code{x} would be different in those cases, this package provides access to the S3 generic so that other packages that may want to create \code{explain()} methods for their objects can do so without loading either of the other packages. For example, if a new \code{tidy()} method is being developed for a package, this lightweight package can be the required dependency to have access to the generic method (instead of depending on \pkg{broom} and installing its dependencies). } \seealso{ Useful links: \itemize{ \item \url{https://github.com/r-lib/generics} \item Report bugs at \url{https://github.com/r-lib/generics} } } \author{ \strong{Maintainer}: Max Kuhn \email{max@rstudio.com} Authors: \itemize{ \item Hadley Wickham \email{hadley@rstudio.com} \item Davis Vaughan \email{davis@rstudio.com} } Other contributors: \itemize{ \item RStudio [copyright holder] } } \keyword{internal} generics/man/interpolate.Rd0000644000176200001440000000127113361372265015452 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/interpolate.R \name{interpolate} \alias{interpolate} \title{Interpolate missing values} \usage{ interpolate(object, ...) } \arguments{ \item{object}{A fitted model object} \item{...}{Other arguments passed to methods} } \value{ A dataset (\code{\link[tibble:tibble]{tibble::tibble()}} or similar) of the same structure as the input dataset with missing values from the response variable replaced with interpolated values. } \description{ Interpolates missing values provided in the training dataset using the fitted model. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("interpolate")} } generics/man/train.Rd0000644000176200001440000000071113361372265014237 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/train.R \name{train} \alias{train} \title{Estimate model parameters.} \usage{ train(x, ...) } \arguments{ \item{x}{An object. See the individual method for specifics.} \item{...}{other arguments passed to methods} } \description{ Estimates parameters for a given model from a set of data. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("train")} } generics/man/compile.Rd0000644000176200001440000000067513361372265014563 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/compile.R \name{compile} \alias{compile} \title{Configure an object} \usage{ compile(object, ...) } \arguments{ \item{object}{An object. See the individual method for specifics.} \item{...}{Other arguments passed to methods} } \description{ Finalizes or completes an object. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("compile")} } generics/man/prune.Rd0000644000176200001440000000062013361372265014252 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/prune.R \name{prune} \alias{prune} \title{Prune or reduce an object} \usage{ prune(tree, ...) } \arguments{ \item{tree}{A fitted model object.} \item{...}{Other arguments passed to methods} } \description{ Prune or reduce an object } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("prune")} } generics/man/coercion-factor.Rd0000644000176200001440000000175613361372265016211 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/coercion.R \name{coercion-factor} \alias{coercion-factor} \alias{as.factor} \alias{as.ordered} \title{Factor coercion} \usage{ as.factor(x, ...) as.ordered(x, ...) } \arguments{ \item{x}{A vector of data.} \item{...}{Other arguments passed on to methods.} } \value{ For \code{as.factor()}, a factor. For \code{as.ordered()}, an ordered factor. } \description{ Coercion functions for creating factors from other existing objects. } \details{ These functions override non-generic factor coercion functions provided in base so that packages can provide methods for different data types. The default methods call the base versions. } \section{Methods}{ \subsection{\code{as.factor()}}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.factor")} } \subsection{\code{as.ordered()}}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.ordered")} } } \examples{ as.factor(letters[1:5]) as.ordered(letters[1:5]) } generics/man/var_imp.Rd0000644000176200001440000000072513361372265014564 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/var_imp.R \name{var_imp} \alias{var_imp} \title{Calculation of variable importance} \usage{ var_imp(object, ...) } \arguments{ \item{object}{A fitted model object.} \item{...}{Other arguments passed to methods} } \description{ A generic method for calculating variable importance for model objects. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("var_imp")} } generics/man/glance.Rd0000644000176200001440000000114013361372265014350 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/glance.R \name{glance} \alias{glance} \title{Glance at an object} \usage{ glance(x, ...) } \arguments{ \item{x}{model or other R object to convert to single-row data frame} \item{...}{other arguments passed to methods} } \description{ #' Construct a single row summary "glance" of a model, fit, or other object } \details{ glance methods always return either a one-row data frame (except on \code{NULL}, which returns an empty data frame) } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("glance")} } generics/man/equation.Rd0000644000176200001440000000076713361372265014762 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/equation.R \name{equation} \alias{equation} \title{Model equations} \usage{ equation(object, ...) } \arguments{ \item{object}{A fitted model object.} \item{...}{Other arguments passed to methods} } \value{ Markup output suitable for rendering the equation. } \description{ Display the mathematical representation of a fitted model. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("equation")} } generics/man/augment.Rd0000644000176200001440000000112713377636015014567 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/augment.R \name{augment} \alias{augment} \title{Augment data with information from an object} \usage{ augment(x, ...) } \arguments{ \item{x}{Model object or other R object with information to append to observations.} \item{...}{Addition arguments to \code{augment} method.} } \value{ A \code{\link[tibble:tibble]{tibble::tibble()}} with information about data points. } \description{ Augment data with information from an object } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("augment")} } generics/man/generate.Rd0000644000176200001440000000063113361372265014715 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/generate.R \name{generate} \alias{generate} \title{Generate values based on inputs} \usage{ generate(x, ...) } \arguments{ \item{x}{An object.} \item{...}{Other arguments passed to methods} } \description{ Generate values based on inputs } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("generate")} } generics/man/hypothesize.Rd0000644000176200001440000000062413361372265015500 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/hypothesize.R \name{hypothesize} \alias{hypothesize} \title{Construct hypotheses.} \usage{ hypothesize(x, ...) } \arguments{ \item{x}{An object.} \item{...}{Other arguments passed to methods} } \description{ Construct hypotheses. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("hypothesize")} } generics/man/refit.Rd0000644000176200001440000000060213361372265014232 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/refit.R \name{refit} \alias{refit} \title{Refitting models} \usage{ refit(object, ...) } \arguments{ \item{object}{A fitted model object.} \item{...}{Other arguments passed to methods} } \description{ Refitting models } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("refit")} } generics/man/visualize.Rd0000644000176200001440000000066113361372265015141 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/visualize.R \name{visualize} \alias{visualize} \title{Visualize a data set or object.} \usage{ visualize(x, ...) } \arguments{ \item{x}{A data frame or other object.} \item{...}{Other arguments passed to methods} } \description{ Visualize a data set or object. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("visualize")} } generics/man/calculate.Rd0000644000176200001440000000061213361372265015057 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calculate.R \name{calculate} \alias{calculate} \title{Calculate statistics.} \usage{ calculate(x, ...) } \arguments{ \item{x}{An object.} \item{...}{Other arguments passed to methods} } \description{ Calculate statistics. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("calculate")} } generics/man/learn.Rd0000644000176200001440000000071113361372265014223 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/learn.R \name{learn} \alias{learn} \title{Estimate model parameters.} \usage{ learn(x, ...) } \arguments{ \item{x}{An object. See the individual method for specifics.} \item{...}{other arguments passed to methods} } \description{ Estimates parameters for a given model from a set of data. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("learn")} } generics/man/coercion-time-difference.Rd0000644000176200001440000000252213361372265017751 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/coercion.R \name{coercion-time-difference} \alias{coercion-time-difference} \alias{as.difftime} \alias{as.difftime.default} \title{Time difference coercion} \usage{ as.difftime(tim, ...) \method{as.difftime}{default}(tim, format = "\%X", units = "auto", ...) } \arguments{ \item{tim}{A vector specifying a time interval.} \item{...}{Other arguments passed on to methods.} \item{format}{A single character specifying the format of \code{tim} when it is a character. The default is a locale-specific time format.} \item{units}{A single character specifying units in which the results are desired. Required if \code{tim} is a numeric.} } \value{ A \code{difftime} object with an attribute indicating the units. } \description{ Coercion functions for creating \code{difftime} objects from other existing objects. } \details{ This function overrides the non-generic \code{as.difftime()} function provided in base so that packages can provide methods for different data types. The default method call the base version. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.difftime")} } \examples{ as.difftime(1:5, units = "secs") as.difftime(c("01:55:22", "01:55:25")) as.difftime("01", format = "\%H") as.difftime("01", format = "\%H", units = "secs") }