generics/0000755000176200001440000000000014261111622012045 5ustar liggesusersgenerics/NAMESPACE0000644000176200001440000000163514261037462013302 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(accuracy) 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(explore) export(fit) export(fit_xy) export(forecast) export(generate) export(glance) export(hypothesize) export(interpolate) export(intersect) export(is.element) export(learn) export(min_grid) export(prune) export(rank_results) export(refit) export(required_pkgs) export(setdiff) export(setequal) export(specify) export(tidy) export(train) export(tunable) export(tune_args) export(union) export(var_imp) export(varying_args) export(visualize) generics/LICENSE0000644000176200001440000000004514257617767013103 0ustar liggesusersYEAR: 2020 COPYRIGHT HOLDER: RStudio generics/README.md0000644000176200001440000000453014261040152013325 0ustar liggesusers # generics [![R-CMD-check](https://github.com/r-lib/generics/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/r-lib/generics/actions/workflows/R-CMD-check.yaml) [![Codecov test coverage](https://codecov.io/gh/r-lib/generics/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/generics?branch=main) `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/man/0000755000176200001440000000000014261037623012630 5ustar liggesusersgenerics/man/tune_args.Rd0000644000176200001440000000236214261040010015071 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/tune_args.R \name{tune_args} \alias{tune_args} \title{Determine arguments tagged for tuning} \usage{ tune_args(object, ...) } \arguments{ \item{object}{A \code{model_spec}, \code{recipe}, \code{workflow}, or other object.} \item{...}{Other arguments passed to methods.} } \value{ A tibble with columns for the parameter name (\code{name}), whether it contains \emph{any} tunable value (\code{tune}), the \code{id} for the parameter (\code{id}), and the information on where the parameter was located (\code{source}). } \description{ \code{tune_args()} takes an object such as a model specification or a recipe and returns a tibble of information on all possible tunable arguments and whether or not they are actually tunable. } \details{ The \code{source} column is determined differently for a \code{model_spec} or a \code{recipe} (with additional detail on the type). The \code{id} field has any identifier that was passed from \code{tune::tune()} (e.g. \code{tune("some note")}). If no additional detail was used in that function, the \code{id} field reverts to the name of the parameters. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("tune_args")} } generics/man/fit_xy.Rd0000644000176200001440000000104014257617767014436 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/visualize.Rd0000644000176200001440000000066114257617767015157 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/coercion-factor.Rd0000644000176200001440000000175614257617767016227 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/augment.Rd0000644000176200001440000000112714257617767014602 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/glance.Rd0000644000176200001440000000113514257617767014372 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/forecast.Rd0000644000176200001440000000074314261037462014732 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/forecast.R \name{forecast} \alias{forecast} \title{Forecasting from an object} \usage{ forecast(object, ...) } \arguments{ \item{object}{A model for which forecasts are required.} \item{...}{Other arguments passed to methods} } \description{ The functions allow producing forecasts based on the provided object. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("forecast")} } generics/man/fit.Rd0000644000176200001440000000071114257617767013722 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/train.Rd0000644000176200001440000000071114257617767014255 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/generics-package.Rd0000644000176200001440000000304614257617767016334 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://generics.r-lib.org} \item \url{https://github.com/r-lib/generics} \item Report bugs at \url{https://github.com/r-lib/generics/issues} } } \author{ \strong{Maintainer}: Hadley Wickham \email{hadley@rstudio.com} Authors: \itemize{ \item Max Kuhn \email{max@rstudio.com} \item Davis Vaughan \email{davis@rstudio.com} } Other contributors: \itemize{ \item RStudio [copyright holder] } } \keyword{internal} generics/man/min_grid.Rd0000644000176200001440000000143614257617767014735 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/min_grid.R \name{min_grid} \alias{min_grid} \title{Determine the minimum set of model fits} \usage{ min_grid(x, grid, ...) } \arguments{ \item{x}{A model specification.} \item{grid}{A tibble with tuning parameter combinations.} \item{...}{Not currently used.} } \value{ A tibble with the minimum tuning parameters to fit and an additional list column with the parameter combinations used for prediction. } \description{ \code{min_grid()} determines exactly what models should be fit in order to evaluate the entire set of tuning parameter combinations. This is for internal use only and the API may change in the near future. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("min_grid")} } generics/man/coercion-time-difference.Rd0000644000176200001440000000252214257617767017767 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") } generics/man/refit.Rd0000644000176200001440000000060214257617767014250 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/tunable.Rd0000644000176200001440000000310114261037623014544 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/tunable.R \name{tunable} \alias{tunable} \title{Declare tunable parameters} \usage{ tunable(x, ...) } \arguments{ \item{x}{An object, such as a recipe, recipe step, workflow, or model specification.} \item{...}{Other arguments passed to methods} } \value{ A tibble with a column for the parameter \code{name}, information on the \emph{default} method for generating a corresponding parameter object, the \code{source} of the parameter (e.g. "recipe", etc.), and the \code{component} within the source. For the \code{component} column, a little more specificity is given about the location of the parameter (e.g. "step_normalize" for recipes or "boost_tree" for models). The \code{component_id} column contains the unique step \code{id} field or, for models, a logical for whether the model specification argument was a main parameter or one associated with the engine. } \description{ Returns information on potential hyper-parameters that can be optimized. } \details{ For a model specification, an engine must be chosen. If the object has no tunable parameters, a tibble with no rows is returned. The information about the default parameter object takes the form of a named list with an element for the function call and an optional element for the source of the function (e.g. the \code{dials} package). For model specifications, If the parameter is unknown to the underlying \code{tunable} method, a \code{NULL} is returned. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("tunable")} } generics/man/required_pkgs.Rd0000644000176200001440000000077414257617767016015 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/required_pkgs.R \name{required_pkgs} \alias{required_pkgs} \title{Determine packages required by objects} \usage{ required_pkgs(x, ...) } \arguments{ \item{x}{An object.} \item{...}{Other arguments passed to methods} } \value{ A character string of packages that are required. } \description{ Determine packages required by objects } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("required_pkgs")} } generics/man/components.Rd0000644000176200001440000000143414257617767015330 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/explain.Rd0000644000176200001440000000066714257617767014612 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/setops.Rd0000644000176200001440000000326114257617767014460 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/explore.Rd0000644000176200001440000000125614257617767014623 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/explore.R \name{explore} \alias{explore} \title{Create an interactive visualization appropriate to a particular object type} \usage{ explore(x, ...) } \arguments{ \item{x}{A object} \item{...}{Other arguments passed to methods} } \value{ \code{NULL} (invisibly) or some other data type (e.g. tibble) depending on the application. } \description{ \code{explore()} invokes a function that starts an interactive, pre-defined widget (e.g. \code{plotly} visualization, \code{shiny} app, etc.) to investigate the results. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("explore")} } generics/man/generate.Rd0000644000176200001440000000063114257617767014733 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/accuracy.Rd0000644000176200001440000000073414261037462014716 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/accuracy.R \name{accuracy} \alias{accuracy} \title{Accuracy measures for a model} \usage{ accuracy(object, ...) } \arguments{ \item{object}{A model for which forecasts are required.} \item{...}{Other arguments passed to methods} } \description{ Returns range of summary measures of the forecast accuracy. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("accuracy")} } generics/man/hypothesize.Rd0000644000176200001440000000062414257617767015516 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/var_imp.Rd0000644000176200001440000000072514257617767014602 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/tidy.Rd0000644000176200001440000000107414257617767014114 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.Rd0000644000176200001440000000100214257617767015625 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.Rd0000644000176200001440000000064214257617767014605 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/rank_results.Rd0000644000176200001440000000103614261037462015634 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/rank_results.R \name{rank_results} \alias{rank_results} \title{Compute relative rankings of a collection of objects} \usage{ rank_results(x, ...) } \arguments{ \item{x}{A collection of objects} \item{...}{Other arguments passed to methods} } \description{ \code{rank_results()} computes relative ranks of a collection of objects and returns a summary of the results. } \section{Methods}{ \Sexpr[stage=render,results=rd]{generics:::methods_rd("rank_results")} } generics/man/equation.Rd0000644000176200001440000000076714257617767015000 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/calculate.Rd0000644000176200001440000000061214257617767015075 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/evaluate.Rd0000644000176200001440000000065214257617767014752 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/learn.Rd0000644000176200001440000000071114257617767014241 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/compile.Rd0000644000176200001440000000067514257617767014601 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/interpolate.Rd0000644000176200001440000000127114257617767015470 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/estfun.Rd0000644000176200001440000000071114257617767014444 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/prune.Rd0000644000176200001440000000062014257617767014270 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/DESCRIPTION0000644000176200001440000000216514261111622013557 0ustar liggesusersPackage: generics Title: Common S3 Generics not Provided by Base R Methods Related to Model Fitting Version: 0.1.3 Authors@R: c( person("Hadley", "Wickham", , "hadley@rstudio.com", role = c("aut", "cre")), person("Max", "Kuhn", , "max@rstudio.com", role = "aut"), person("Davis", "Vaughan", , "davis@rstudio.com", role = "aut"), person("RStudio", role = "cph") ) Description: In order to reduce potential package dependencies and conflicts, generics provides a number of commonly used S3 generics. License: MIT + file LICENSE URL: https://generics.r-lib.org, https://github.com/r-lib/generics BugReports: https://github.com/r-lib/generics/issues Depends: R (>= 3.2) Imports: methods Suggests: covr, pkgload, testthat (>= 3.0.0), tibble, withr Config/Needs/website: tidyverse/tidytemplate Config/testthat/edition: 3 Encoding: UTF-8 RoxygenNote: 7.2.0 NeedsCompilation: no Packaged: 2022-07-05 14:52:13 UTC; davis Author: Hadley Wickham [aut, cre], Max Kuhn [aut], Davis Vaughan [aut], RStudio [cph] Maintainer: Hadley Wickham Repository: CRAN Date/Publication: 2022-07-05 19:40:02 UTC generics/build/0000755000176200001440000000000014261050035013144 5ustar liggesusersgenerics/build/generics.pdf0000644000176200001440000045224214261050035015447 0ustar liggesusers%PDF-1.5 % 162 0 obj << /Length 1264 /Filter /FlateDecode >> stream xX]O6}_&*؎(Xh5 }٭LbBD&&,ױ#LZ'>\;,l}xwZ#ߧܚ]Y0Qf4@',؟qxԾq|jǙp\/(E'O`+AT1"R0ǶԷjbJuP`%"WF\0x@3e!v[h0E7Z,y}ᩖLiYI\WDu"O {?OOB^W #Rci*X̖fƈBl JxK rQxzNۢnrX~<E z2'g&ΗrؓOOÕSzUcRM/;x*)J<A6nҁ!6tI7+E2Ee1P9ʯ<́mрK˾Ig_tq ŪW mS168fE"ͺmwFsm2p'lxޚNg:X;+ gG,\ 2Zp9=([54ݩDq; Zu-y?@E>GU ,xa^߁:&0.\^slBX_>u9IAD67l{\iZ1.hcgwa;5C 91QIytt-6LZlG=6D3-@цn@ &+8#pg:aV=!/?6nW%8y!4#u8!v۝ }O98-8Wwq~U_DK#טٻ= endstream endobj 205 0 obj << /Length 1224 /Filter /FlateDecode >> stream xZKs6W(͔0ޏc:3LiꞜXKCRM_B+l4˃vA DWK,)tu(! "Xr2t=eW/..9ߩ5dž0VIM} һ%i_>|Ehfdg$ kO'loHlP_tPA w$cJ.WJ HSh\&(?_@CF [ci~c[b2~p\=wĹ@)<@]oHMxi Q58ǩXLH ǤV0S\]%GxN.wզf c@ *-n\`-Rbi4EPāЦ74qxJr1SlbWmuM3vW.5-I-1gKZI0XzDŽ4&b.F55NԠR&In (Ѓ[gel\Z Ti^Y7(雕ݱq#3aw3Ȭ +P[IBFgU1ð}lHT}^,h-gH%;jƪ98e[緘DZv7Ě^<HQ0Aqk;_Ci|S.yIW<7.K0H.bOEǯ{[|ƨ9"Qk<ĭR ɂRp}'Fv})byl Ax6t:o/t:ڗ#> stream xڽXMo619 H 'ڦ>(k^mR`+7Hllro!9ZJ8azDTHoi/ȢARZYIhfZ ^c Nh01B#6Xag& 6`>hfpdpn <$3%<8#Ec`<pQ$Q3ECDkx0G+=X#He $H͢aA -x -(N $x" G9a #xX1l8 PÞ K&`XAw;j9n9dԳU4Y",1|9lQ}ˎygV@~ rя6`+OV;ވئXg._Н yu=}5gn^|}^-v<^DH׫;Huئ^vUjc:lv1pw0UVmQø\~պ_쳛[eӞ?#5$nuwG~?E`ҡAɈx/I{Xu_MRӈai̝Pjk?AT(`{!n_Yq0IJp$A}\* Gq '#9GZ;22:?A2J|i8wBɚi ($]a<{ KeR0Nz? R;6P=."sJ"#91qe_I|҂XڀƑ[5~~BmX\Q⃰盘F_3ʂ)m*%7x_]u7+VfkEk@kkkkkkkkɘ'Z2e)K_R?Tn)Z:wa<)o@uw7h/!uQ9_Aq}-Gt[>=.0ʲ;nZi>%'\+[8L6U endstream endobj 230 0 obj << /Length 787 /Filter /FlateDecode >> stream xUr0+}3I;Mn,dRl\M acI&]d@sν9"dtr9RXI&d(!E`,}{=9?9{'B"q$͎q|~( ۻ(Y Ja]uBJqro#(2(" p68ǰigs.b/յl9+ʅbi'f/W,?f `/'R5ϳpN=Ip,佩2[ oyIcPC8;8xѐ-]bBx&h>hfJ^CZ`'"A110|PWWGGUߙȋIM͗z(@=PZڕ'X0uazj5tPL+S>41c; \|0HhBimݥ")+k3J90FQwI 1۵0z仯yN31*^>t:Nsszj;Kx9昰 GWO[u`2gMRd$QGLŐ ,QZ=Oȉ?xźu-\ɺ,I?v*/tjܶNwomQ%tگ84\ⶱ&:Oֹ:ֻ͙T5ZYr42/u8$P/unXJVmc#i~ϕmx|us}cʃyf-$\-eQk ^ endstream endobj 245 0 obj << /Length 1005 /Filter /FlateDecode >> stream xVKFWp*3oNMT*J.=a%Aha $nqbuOhw,Q.֛` Fu<[x}D )FMRŦ+Im3iY}Ą4q+|_Z#rG),*v;CAtqB#uꗣ瀉)($RX Nrv v+Sgd{({,.A:E2p"$%E\DL_tގsV,JI%^i cZ^Egm8R1t t(ȅ!ulCK %RЩ eQ[dOف3yAA5e-Fx%?`+QsTHtRM$C&ɀxw3o92,MSOM T~_{J{]H #d\q#uF өPJg!ɬQLW> stream xڥWm6_rRڀyYViU>$ȁw6\HtU`EJxW?_ݦI`KqXPk% ͒߻|#&˞{^YJ;RZɝ[町0AH2fyc4ފuWʼ܅j۔2Hln]n|go\پNj~'C 8IYdi7N^`\YjU참ILta>zAB5y /an!E=PR}x9vo7'Id]_VXr*ܽ3nj#SyU>f_[ 2A2-JZ D[ۼ $ϸ4Pج by4lm ?e$ҦKkXv=7"apR' PXZmn94D7Je^zOYT{yyL^-MY$FlD5q^FU[WP1+̠lEI }/96ܣɑ+}DIOIAeRMʂ̲J[rYSSFZm5(sא.EA~܅P!f@oCFpSFք &%=+UnF _,j;VEC T2,БS"gex.+7%I6~(&$,{y|p()i'!jTRO?5H4ܤi~1C|M 1y4nF׶[f/n$T{5Hզ|Q6#0`ϫSzTpY&=0>$}QbGRW3|rhlm >gN.p>Bd.ldϡ@$>.ݾ)XkY8j?D-'7cH9Kg D{: MO3 c_[->/0$4N[|H&#Hu//[YG؋HgjtY;FV%OspV ш.܉Iÿ@1 endstream endobj 277 0 obj << /Length 888 /Filter /FlateDecode >> stream xVK816;+h$$X4{9xw<<t2= bCrr: ^nmq %34!XJ!Hݫ-cg bkR),hՄz!CW[yG{f;5x~_mcr:(NRjQŰpf<'Ϛ0b[$088RfQ9ݔ_]rZ F^}۹AQH(/z³ "cR cc KO˂}kk'E./}J-EٿlH?LG"kSBa^dN9ct$;yW5L!e\ RW?aBOlsFRߘ+-uGiܥfзƌjoJ7?ݱџG](:ZrȐcޥLX-"b}5^^z5vܷnvwnTo,Q{cW=T_o&P z 5o˼Z90S' LXPi Q u4 =ϱga Dy}椩<(cijk]ZLEgo.R5$* endstream endobj 289 0 obj << /Length 712 /Filter /FlateDecode >> stream xTMs0+t3EpLIg2v:u{Ir 4'u>SVKQ{?N@ IWh6GR"B"ErtmZWx=DCac~2n=S}aI(b+rX/#Bl>R|"K{BF׍n6V}5cjKBctT~Ɉu"BvwͽV?tfB;qVWpl'Aig".ܖG๺>N-,0_F|и;A NBT6KݧsZDSi> stream xY]o[7 }c+R$%A~ ۀ >lK&C5/}.uD"R-!5Pf|rS|RP.` Lˡ;jQ53.@Z`8BdnF*4rncP[C( 0N օm.n_BbxiS%X%+sLn.4)d A 0X#F k`XDX8q ;-Kw*4'p{5 );F Thb7ϸ@0 |՗`8HRu*x R}{T?L3`MMI`A@)%8^픔k,(A*B P(IB)pZ0S\Bˮ F%vB(`V؃55K $M|]ATPd5X 3_`RR퍆|d27?O /g㋣LÏOë#?,z`J9&ߙHF{{axoax|:cwG=lB֘$?.bcA!5TcMQ9h-W } E`-)TZq9!iZ l !j1M!Y! Bp*92TPnQWr,"<*ACʱnжi ́9 PJ4n2 cCH2mZ)s뚄vb ^%:qX> ï`5Dі’)o=m`Ƚ`MfV8t`]`3 ] t2;xc :[^<f~=]707\LOߌqa8x/p|3NpvVOf<./NǗ>,TO^NyxfJ '0Zx}qJۉPbt> Zk@uag?{|˭?`WWZQQi`+p2wb~acL~]`i"Hz ZQ".,3jdNgܾD~#Wq |ocн꒿'W6/EeMتVd`x;E5wrVXR[l_KKH( N%njvNs7lmie;.y|t|qz>ó?Q?|v!7V XY\Ӳ*ց& K>py j,~Vty𾹔oV,6*l: }st[grQeOkЭ}7YnYkU glʺyd- ?p\W+b:ևEFˈ 0 F%_j endstream endobj 305 0 obj << /Length 593 /Filter /FlateDecode >> stream xMo0 A*?1S5lOIR n}.,Rx3K{?Nc$b%s!,9C]qp389  E! UUl>1#8QeKꆠ/,%1iBHP_K.k9G"EVܤ6pԜ[B.c?v&פ(_j 32PtU[2% J-%2w8YAKw]&Nq"]MГD\Ic CbU6<݌2TB!]U[mc*/|vm,s;1Yiׄ#|舠1ajP;8uá6vmmzrTcaLs"{'z7/NhpPT!fvB_v\罪[nB7_AXw '06-ʮ:R|ʲ(XÊRusѫ8N%tsiTv9Y3o_c$xݿqR endstream endobj 318 0 obj << /Length 1006 /Filter /FlateDecode >> stream xVK6W(+1iAڢK,^&zU[=آ~73"hijz1T"S"JfT;e-I Y(!5]*/w q̳m,,J~JTJ47yͦj91^uCNF(GkT.C9ZWLGeUOi;@^׌%޷cߞt2MfJjQMcMoJ?'UL_E%MCv<E6LaTtU|~T ?mj?R' endstream endobj 332 0 obj << /Length 867 /Filter /FlateDecode >> stream xUn0+x혢ImQ=%AH֒I.rdq -P"͛9trtd1tD%1%hZ hp5=;:b)D3kZ7͟L'7KأiΈy53GYj$c$Kt>9gĒ y걕6r)AN4ۀ(πGJ&@Iחu(UD zi ^jҽn;On1p^C%{ $>.oU_6cnQBN Ķ],+Ղ/AȰ B_mSk'VBZZzTNQ9A{hfN^FުʛGwVe7OC/"%|ml% i w cv$$&`A.BfMRl=5tbnj aP܇[zo$v%x\y.#J1!v }wo8;9+0>v\;kcskeuQޖZ-u lEbܗ3QPbB4@R]=qyn_t2#݁kZt?7OHgmY>8ѲQ.rs3AjrBN$ Έ` 4H1'j=wccfLS4SCNjݪ/FR&CC8z1jscZ.;wj}sG+4Kq6E Қ աt7Z#SvHtk?.}I|(m].I>⭾Y0z(b_܅}0f endstream endobj 345 0 obj << /Length 812 /Filter /FlateDecode >> stream xVMS0Wh83XH?fNp$ Շ`.,iW[=)li88:e$ 'QJx$$RBIfx~tv$\fczǀ_?C&q$ P\P4sKYf sk1_iQ %4",v?`+0 YZ"g:ċa>R|'+qGf1UiE\Ɯ}qB7$YG$Ql&*IoW6"epnkr(-_xW͓'Lmx:ue#r/]Z02^ӈz~D)&+{ zZv}uMb袠cWjhc|+sEz['.g |w55g G7H5]R4NGUeR`$xW,jcڣSƀx WҵZ᪗?ةy%mG.E~{Pa贆<#Iٹ(gоlG(k9K55$4y b**Urt|kZ,D?> stream xVr0+g*YeuWe`‰G\=:BN^sq #^OFG XA&׈Y#M2t268DZ4L^A⵲YcEJ5"Wѷ!A hV.`HwsD! 8zʷkdȅqa sqۅTux.X HhE]f?fQL"I_,&џ34(ђZBz)լɗm^Wk4u5Ac*^M1oܻӍk6u 9T:;߆ޙ <\>!('ͼ+ek^Hray zMTz9kFMc>_J;SGW?9Bo*%3v6mԮ*"V򍍁Bfz[[ՉNc\b*Uo5#R٥N3fz{k!%!Eyﶭn(&8J+Ws=MZtRa `WaUv|SÊ4P=n2Y/^y{mRX*Mº> аmS, DjgrzZ\΍FގO?o@6y鶻TQ?UP=6N y|lu^00rև׍ţ2/LݰTZJwg5n*{ e h {.40(cÀbEwԥ{ x7R9+\Bo> stream xVɎ6WHMJvv1mjӢef"F31|i^իzENW?W/߄!X1Y_9 eL( Ⱥ$h>߾|\$!wW^Z 09[$E6Rrk6D T`}磁c肳X Fy}Gp88WT^F0Jiyq6jTՋƙdI$ tıdAZPz7Գ,"e S]_<_,Kzv?VxABUk?H]d`~wyI5ywm2sfsC1K2l V-uS5{1SWvj0p# r$ ̻r66U12ϗRJ٠gt[]N ?X9F3},BB.a;DYmpAԞCq.v0(pڌ~4ȘH>uyIrS )tksЭnέa8c~Z]~'K<%b:e0EH0fi"y` BZ)g~H,./L!Gk:9'ZuXjcח(hX7^ѼL[63\Y1GGAN@ˠ8a$Sۭi] .6G6(t]G`5Z +ӠѵF.ʍ+wOhr;g[. i 4N+sߢنnϘni3{PE2ͦvrs=&UT]7> %&|ɞڻkY}E~6TfrK 6  :;(ŊkyƲb,pzUtԴKH /@ {> stream xUn0+x&:K 膺$(qȒME,ۦD {3|Cz|698(ũd.%s!'DTg#w"9DP* FM^&_& Hh.tjrrFܔjͅéNW>N>x`X1>DV+]L F1+7|AcdW4J)1cC[]i|e)^.~U_8aͻ.<+C;eJ1e>A ,{/Mu-Aci4erraQg4ѕG6+ʲS-̝hnpU$y0ưC^t+SƜE~D* -:*̽*2M;E(e S`h޵ r0mp0YxdԤR@ӡriF##)jݵfc`zE.wDz\4/):,EpGPحq6ьB~h8ʨ)L UGANKEZ`>c*Ik쮄e2q&f~ɫ0}6ɮm36]Dž4MZew TY'5I> stream x͘n7\&υd`n @g"0jH?4QQDI7)s!n-hRhH|Ds gX`j̃aN)9Q FBI>Pc|sIhsDz ᄁ5 !av+HaJd 6K ;R1( aÊx؊6BX N猿D)_ #>8+`I|P)XiVC,ʁ3笃(v0l!Y*a^!7\ `V%!Υ]-$S k؅LqN*fs㓫:0>[[;=s1b^6>O׫Wד槥_o.^>\ ynJLG?6^Dr'Q%0E*r A`ꂳȭڢN%V|=oJI}0wjNȹŦ>QuAuGdnub]6w>8Q I9s4bJLQ04s)ki}0fE5$@ kh<.`3~N2kXpGzw(1_RˬS e}-{C\W.Eqls߼a+Nqhչ yi9Ζ^]bkǀ7$Xsg6qi7:a 'm-v4hh|\`|.m<=Ƴ_pufq5^??iOg"u,hYR)S* wW.}~ݻ֯M{0W>{> W{> W>휗Ew^^m,үM,p irװNXR,}pHZ' ujY-Ŕ0q`Qշgn-:SG7mGD|)u endstream endobj 403 0 obj << /Length 722 /Filter /FlateDecode >> stream xU[o0}ϯc"ďCcHmBiam%=mR1xh8?s|| 6x= .)JAMFR&@"䔀QöAvtuvnU3aV sS (EoMAo(+_ nʨuݫO6x`$AO*5),e{"CGXU4)OEcFrN I@),_&R:HeRUM= !)81J Pj$]ADB*˦uq c݉Q3^UsBç 9oEYG;7HSlkm [d, ĜQ=7c͇1<1N a[Ap2jVQѻ0Y94TZG{p%s~h{xSƂD8lVW]]j[OdMVb/ܼ;c()a7aj5}L2SN&Ar Õ9Hg`ݴ;mBBXoRKiKiY~g4#I3pGWeՑ0dB)_& i Neؗ@[*ʙ ب񱱠7=ž!*^*Dlޛ0}xBQtS 59U /u,k\;ծ?#V̌)A^YzڽO)xn؋tp endstream endobj 417 0 obj << /Length 1225 /Filter /FlateDecode >> stream xWK6W(1ç(>Ю$@^ %EChKCvM3P8x p}(i612H0]H{F,NuivV KaJ0 ֻŻ8mGi<] A3X⏃_< F1', PO4!GK&n"ABY_ԕ2+N)JX-LDNd?)mh#`IR$xj+"1L{-%XyQ+0yXTaNEXꦨμOLńϼx SJd.cĩj^l699wU>ﳲ#/ ”< S6ve%K")%(=-*cas?z INoUM:Uӡhɹ*{';6?8 mz.N*u-TtHjKך")AY ) ;6z'5 Ikx/\8|qC1PJN:rVr;WZ~UعiuƩ~>RhwS>jauUd |h JU Ny,%$aok̥A&:cͯzoq-,A:!FisyuwM6TQN`jRnCV g}Djmg٩uڶȝ\/a{jMkA#EeO>f5Hw}ҥ2n c @Df¢X[#]=g[q]!7Z  dct=ݱ e]IZ`3jOs%Yge,Y%j34B.3ìܫ^76|@$2jj"$72\6v`6qNm3]m냭|ߔ:`nnh(I`6_x|0>O'.IzOLY?r>=՟wa MB= ݿa!>SA%毶an-O07CgJ ćol u#|[eY6q`0#T[@?~ $ %K$$q8q3w`S>z7S$+wX?xwf kz endstream endobj 434 0 obj << /Length 868 /Filter /FlateDecode >> stream xڽVn0}+pl [5&ml/]HpRR0]`I*"{| A DGC1yd(! Np4Iѕ[=?e`,{)!XHp]a0`?3rKUm%Ay sQY\YUYE"B;ϏqáYf)q:ϊ`t@q *N{e!w.&ΝC! a V5A)D )2/ѥm/]m^<R0cMo{DCi%|"Y$̒iInQګQvxW't*|= qS0MIJY5tYm ՖL̏g^IQw7pðajAEdJ-lFVN/1*J \}xPÎL  :mr-fo}aN F%.YvRy l iqh*jlrȴ:A}/[Y6A~E.겴8V"IUځ5~{@0vdqkՌ1-TX­8Lbָ6Ca#̥]ŎyF@=z7xY؍n 3M va3?j?Ռ39̝3;+Z?U526SDuOpg]Ymá6ln>( TQf^ShXoǺO/[tK@?"~=alN\%Zs2j ln21$itH [?= endstream endobj 449 0 obj << /Length 1142 /Filter /FlateDecode >> stream xVMs6WHΘ@_twIi`XSJq_v)$$3HXޯ_֫gWW"Ro,%q+/峫8YYxgcV]78y^=q98*wWKVܻu{O 2wYytwG|^pJe\$%`, -6ED`2:$]ҍfT~~`Yi1#Mr؉/Pݒ=EFs/KxoFqT@nZucenqa MgqJŰC/*X,{X;{i+?~ՙx,l6wȿ@ endstream endobj 462 0 obj << /Length 2068 /Filter /FlateDecode >> stream xڽXo_Ay""ۗ$(hr-G IYRL3qoGG͇OJEDw)D6(ݕ/pl添ovwHDB R xT#ѓ'Gei:kRbԼ(çtFlR:x"yx0'ag[i/dIG\ 7[xk,~GQqjxtsȻ|בiϥe 1K:4#wڸj@>6','ax!?Ê5*@vi\D[e5fGي(?K E~5&+VY~2j= lTo]?H>L>+;cm}n#CKƻ`W KM yAD$\C۸f@tʸtȫcX`6M˺l!,yp>RznVT1!crj3*㪧q 0ǁCf,,t4ķ/2,J:2p #eR)$9m]nIP1x< 1dr{OK>ha^k?Qfy!@G'c$:6T *T/\c6`I|\ZqxvТ v,d*Ґ\)YO&R=k0njzڥtW1 ˠWS%1mPNETI$$|TSȚ]U5LOP]x q΄O7$~};J9sW~N2"WJA!kPCWJJ}W/йfD #.w2HO┌?ZR`){h c'ϴUy!/s=[׌Є' .ZMpnc³UȨ  `"ў4w!\J1@&͘j_111"q9 9-`‘@i|ic'}UJhmNX`)Ld%: R,+K2Mk?oBS`aOA(/(>G9+JW+(]u__c ` _gM?{ - o|5*v}!X> fffV=ĺӣ{ٌŸb֬7h~7njS\c 䡿+ڐgcY*(P&o1^ S&&B{V Sτ+# b$X$|fC>d<0{w,bcg'B&aÉB}q$,Ө#E_Q"ZU&Y0Jn_h!30'~g9v2cTn>`,O J *'4 xVf> stream xՖ[O0)H5مIH4=B!qK\$eh@0$^Zv|w)A+D(A EhDE`Z4`$<_q1c\2 l}Z~(DP NĬ1`*A 1̾;mBI,9WTkFoaX<\PcoM,FQ#AQLu7EAE)In%y A8mW@d[KuιL6,Xm*]n;MaGtk >Pa9C(RP慃0KXES+΁OȒ$ȅl=#ݔc)8&> stream xݘ[O\7ϧcHR+EC[mv+X?(]V=^Rj%Ԇ/*ޗ} oAH01Iisxm`>f`8daj`j UrlT4@\P00@QI)UJ%0] .Q4ŜdlXg $PQ8uB2>WWPQ])nVuP4R+ Ѩhd4W솹&AuG9ZAp`(r6>33 s-ßR$՝ Φi[w 7K8 Fq LGa{%$qVs TXp$g8ʠLQŰ@gX U]eqi TKmD3gO\aL]l0\'nL4"|m]**ީkmtD%`֕ pv7k:>7кXÇ`q:_\Oupqz1r_YRbm'vz)P &;7Co^a uY\R#J> JlBv>V6菇Q"I")wH:a*NS/Н̧N!K!)nfEgs E^RD2D uNf>؏և$ _-+x<]$77ga|41ML15j,Z{h~鏙ܫɑanu ؆g-rg?wo=Mx$E՟kŊ*=ϋ#_6ϕ毳.8\V^$iXbtlsf<ۣvkxv‰9 ~6Ǝ:]GD>7*ӗ Ck{5K#O}Pa7OrYwY:a\gO9p֙< }0> stream xڝSMo0WHwcRJ)C۔ͦY(z&qnpxf<ޛ1E+Dѻ,N.@X5Q)QDG%e$5PlHψXm}\:%5X#ɠ`Ӯ9tQ%C)M"[`rb h|ٽI28yw]0vPd|քّE[=vUcv>2fP ƾd+Vȉ-8[0jnD)FWX\|?Y~>bB\km6tȈ`6OtĔk7Qd0E @W8qpk2x̽wewMծ7KR[~ހڥSkӗ " 7Mn&۶׺KWN>-V>z ~4 endstream endobj 543 0 obj << /Length 1201 /Filter /FlateDecode >> stream xYr6+Lg*G3ͮwn4)Ṗk{IŽAd gĹ0Nv N>juqItB9RZj2J erI^n/>=}yqIqbTv_d ҄ ,k4{>2X%0ꠇ??5c2vpkB&n|o:0| <,Z=lr;e2AAB/&#،<<i$4kUG왋'EL]tF<^Ԍ"Iԇj\ &[a+$l;oE<6p=ښ>C"ka5ь;8/`}KY-AİGfa 9'b<Єu0g N>m@" 5{غٶjʹMߥE~?i^.6=:ˇ*B4K82G3༈oW! p[CA'~u'XdF'K EFx+V 3JXUʼnD\6G<q}Bin"4+ӯ;[*Ζ"=bip|Wl?p<4_lp@3byec!'ʁ绬wYE5׶9_8LM#rrU| endstream endobj 544 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 557 0 obj << /Length1 2554 /Length2 16392 /Length3 0 /Length 17685 /Filter /FlateDecode >> stream xڜwtn6llضm6Wl6hl۶I6;n۽=q#{|w~+$J4@CQ -='@h6p2`Q41s6pXIH-M;+hUG -B&Naw7eg;H/C'@dn`gM"sw03w 7xwgyf(ؙM\,LĺƄf6ִF@ - ?{VҬ-M t0?y2-?[8јؙ̤-LlMζ&% i)7ؚ8`D1+?==Ɏ/?ӿT&Nt#5ؘ:9B3-&ftRv`lbO,c`ТgI}@[kЩI R7,XP0X9L,*o`_Ev5Uݿp' Cg }j,Fb_πѿ=F_6ɞ\hxL.ߟ;?ޓu "BywOK5RNU ؚY-pp31p22X;SW3&@G`#T&Q{fFV;4efdax2,#Ls]vNt#߈@'1#VoEon1~#fo^oEo3u;r002yE:3-'V7f7byf~?IN@޽=[ֿ7LfjG@g?ME.}Vv&X,UY'h|Gb/ZߑW4_쏄 ]hk%v&vF %bz/as`xo;ߒS27;{"g{Y߷3'ވ+ο4|o>I5G0qg Gw6xG&&n&FK@#@˺lW Vkoqklv# hj)KwM=Eb"ORC=T D,*Rn},H̡2mR8vQmzo?\Z)Y :0ϙ)~'<&sDWz%F\|#̀ D6Ʋc+ &ʗ,R-L-k.yX~/b=k7)Tpɨ K0(SZĆF$qBB _1G~`"k`qnYLĐ4JG%`IH՗ H4R)T1V_]XX搿^]I%QZ[ô'[ͪ)|x-H]X{M{d!If ~`UՎϯD[)pn"D/kGi}RLt:1kÍ5AIOSo,6R*(-!fhVVAT?;=Nj)U3 %xvLֽH\&B򗁭 A̦qvO8dNTהP+:b#Z,eJ=6 קKYEX<.|*C8ý. # ؕm6O1sCϮ^C}Q}? qN(4/yン%,XWaKE,3 k6u0ofc/ݴST{|K$M FMV X2"ӥ-@ޫRaE;AT7!s+ԾDNѰ+ '2_OHD}BŦ$aCXS.n-EEA;fEA - [ ܘxAEBϻ #dI﬷p. ttYjwfpIo(eix_ӽm m_-k⟀+@k[UA>0M:J@tI8{h=uO /Xx/弮Hyz]5iD bCr5hܤW25taT^OJ+(xm/C,f~x.6Az!nˀDHwv˲of q-̕2RYd~`qДyTȔ"rWQY8`\A,zQU?Se\G Lq/{E鐶Uqnv ehR EKrDa)VG<8P_|'zϡm6$\:N9CJE&>?vJ 7F~Yg= j٥I7kMwIÙt,faH֊ʜK{Hi$;-/.L E 1b4 Vϴ(*T-PUwIfZ |Yf5>@XnX3֬B/-vbR9(130 i鰜1+x'M:Y+C`1sWsVMOF&R &pe9-6|Ȇׁ't|iE HA'U,?)yRZBַp1k8+֢!}T%N:zSM]5\v+˧I<xDw7R+F OH]t *d1'ď|"YEr%:I LΚ'%OН6Gc]TUzX[}2T˯ui{r껩:ެ{ϊa%hp~9.m/@-{mF~J/ .>]Zr`<$3a[2 lې)fCyJMs~9Y`|"3 26U@D=0uBz)Уd@=G4/td;bMmW7] # ܨSuAFX1܀(%eRDRt( DG(vCkLY8!q*.f:k/ = B|>niQEkY^ %"v @uK)3M`ȦuN0<m(aʴyÃ`6,+6hi ~cic]a0283ᘶ0Mzˉ+W/r^ o_+b{"-&qr^WO qN I0R:SEUH o}ȅjυDcm\\$$^Ap}L`;[K)lT ZVhf`4/9컏+]A4[)N 4jߩܔc#z|INH {VpGC[[7-,׭UypɅ*llS&&=/~ڤvAӘ\ I 3$1 5<,\SA7{a!xX͔n\wo_KF=5XW4 ܽFP|~TxZx"uYa'#qAِ} nPBӃf#9..W5 o($dڮK!Yh]Fa9Pˠz(RF|>v&X07qc^(A~-Xm7s9m2H-Tqѹek_SysǠؠv4_^W^|y}dpCה;ONv0Qg=LIT+tG%)Dx #XeWXO^]0(22"bV.LMlBX0jSj/d`}  M2AYkAe XēBHtLCVXMWRM ѣET] Wo'* +{r/ĺWu1>d6_qK[a0<,eo.$lLZ{ ^S{s,Íui="@r8v|apz`KoWTiiEf5O `֜5fl UOqcX o `~1=f+^]Pe ; u.ꍾfh}_6~g+FUysЬG;x j&MGRIx %ba4/;de"!sb_Lu\LDմAh(W唐չ"KE>8(~f[OEcOȮ,#|7a "7<.>#̨ԋ,K<+y$)Ӕ+g÷)6D7)ЉVLsfYޗO5k+nPTFWKxl$!a>nŗB2ך–8 އp 0xԄ^wZY{ O"l; #S\!T$\G;joWN pQ*r#;*qj,a@13A= }@O>6v&Es:1 Q z88x_EeE$)lkmQŁݢbhO=C{īk\#𜑓 dFhCKt^.학dA|Il 6Ѣ(.x޷fXT%q:2X(M,n,s8L>V #A Kiu6G+9e(srcYIeݸ/4}Фfdwv\hBcUaȆl"=#<ȩ҉ܜ!ѕ]lg V0v #SwYRQ,xfӹ]—uSȮdB+ Âopg3&aXf>pUEO ?cfA|*_1Tf$}[&M*6B.BRʆKu*62:I֛&pF|ĞВq}:!dZ*M3µ#Y"g63)n\:1I+TC^W&Ra0BW90j(@5\@wIxE(3VJBlᒪ^4"$`!˯E8!T+n_G 8="y{ yU/}Z6笑pO&oEŻxW_岧$4mjӇK*JjWb=bIK,A2O 0YG+hz| 9sR& ghv G=.0m ~B1Ő'WZt G7beޏK ێ4qLOS= Cr,+l{nhB][. KQydE3E[mɭ}gv[Y+}//}p +nz}L]Vl'hY9*a?S/|Ŝ(jZoh_AHԥTpQtkNn$^l3Uecv(Hz"\L}Bm;"M1,&L2rSUzd7*Az>M.S+9 r tle߁^F~vT6tg4 FxWxAR;)0- ,JɋnՏ5S纃G7Z\gnM](M7D3_;&J+.؞ 4܎lg<aR %V΄q.0P{B]e>v} ra#UA1cy3Cz7']ݣj *K2bwç{HJ\%qgVzu0zf$E1L%qHnz#w,+4ByK漀q; H3'¥sgH&ߵI&kYjf$w"Kd!n[hհW'-Kd*(ZhBMfρv~Z-pJ1p&*]ޕB@*oFn* MRݱ~-ف%e<4J(V|uk*32傫GOh̔xS3&JDhYX@r.4SDTcǭ[ZI0H)MP~N,Ng<ʙQFq)ɇ]12_!by\x5^o02p XvV݁r^Ir8dlB z0IM\;Z7)Z^ur?'ir;g(K jM.tU-ɷ$Ѝ_ϥ#}{>Mȍg.rOycc2|a[Ex:GqO?i?\3T~1̅U@JRb@"&Ȱu 9iX}5v#,xK^>[a}>Z\fI*#λsE_nWTÞ&>j ZP[]sun34}rGyjUOf;Jy+)#I:HC93X,VuYBi"k6;Ыq (/x\-.I0B7FLyT#RI #t: 0݂bɪLnc `+1[[;|(0yoܮu;-c DKsJ|RTz{W|3G"~J S\'_L`ݾs]v4mvuoA7ЉUFA@_ YRPF˸#g?0xTT=W|06pؖFe{KDc="Y['οl&Y'ԎG~)4gJ0m\:_<<Ħ{t7MnN\鄿"a,5MxH,܁_uX -xE)eE T+/:[#6&H_;t<΅=o޽"wtIFlO!^Y%= ǎlQd1Μb`ZRE[u\12''rŒ^𩙑+Л;F eb hDFU1tgKP0GT >R&VAhbsx>2} 5n)ӢA9GCv& I-Y~=pH~MD5Y %JгE߉^t'lLfi횺a',Mm}^3zT>,0o kt {}n≍T kSv)Lz׬mUsz&<16!EJ֓_\7h iş2X] lR9c.v6L?IV㔚fuV}$YV-E4LJ~3T^/E~GB5vvKEaIW/lSi.U [!vgX2y,~E|]!L7UvZ\)+oA =zdM taiuȦ~O 9K#ؠq`hdMvו ڇ)tH):Gs<뮘Oz EY6' /yLxvI5XU^Azf-dY8X& H(F1|ALܧ'!* -xm>ɫP\|T6JZ3]9 R Xך"m [\^[}!NR~LU==|>vK))6)VOm eGY]ŠI2CRA cWXj|1 q3zV]:W_l$NWFO뛥衃_tѨULȰjF|if"pt@Rnu(k[1Xm ^Ajt#EA<(^^Qsy+Tb](pfOMDV ‹F+CUg("VWBneM y.'a[Phr+{BCc(6S':6}j*v}bڷRicvlk"͋Nm?[ȹOdϘ9 }X J;PAmc(ٰAe 3 \x@!k}fUq̷[5HTlFlu\Ah`//&?.%dL7ލ6Bhދ- u@أӢT\^uGv|ҋK6f[.z5jFYdqnyOwS[V07oLkc7wl8A|gH>S/>t,7$EȜF"G YZtǼKăTzab6tdkj\5Lj7D'ڈs4}Rn˕)U`6Cx!N -pS;6 q :D6"ra2En`Gs;WE;"7G.yLLS~HdGG[W O6Clº3ìKw u~1 nR1\cƈ@c9 AYl8ww [Q)bAݏBv>[6W'}n34-J `zQ<)apn3~́ ^^g)[SѧT~,Leo^n!8+UqZu)[zӖa qŌ#եiC 6|.nI :[^X|Z\{Pl^ &Cf% $F&E= gG-.d{VPa8o7"+ur\SHVҭUwԘPoҥt ƜSFf#œHO +8bBCwJ*r ~4gvFIBZ(FNB-r>^fO9?hf%[.q:)<ڣ= IenDBK~́PԂS)ܗڊVC?_m>?.}C7E 7,=ݍ|qZ86.noyD.\>..RdžӺNH\}8 O2 E[$j78\ԴcBC!2VϢR5K%X|VONNDr%=GpTOH"|4r\Y[-6^ߴӡV׽[5$ppGߘlÏ`5(1ޅWMNG@pPŴ"ƅ mѐtH{QI WcՕ1j7jHO7o va^CT}kD%=/X"er8V]XiC,V*=,nbz[`)'uLGF<o6Bَs% u!L4Lyj !,֨tT=j^3f!YC.tJV55W .TXiSSN綼C ) ̧ 9ߺab%Us-|Ьs@+߳68e oX;Gp#2 # ^A aq(V1'$jfQ$'oci:m*4:9ǥ[?Jޭ/>o0QęMpy.Feb賉@v ,.K맃L槈/ zז+e᳕oC[@q'`џ {عMۨ%s_YY`23Jo/H~8'vSO%`fT sg pTr?UWqúr杊 V5V\yzҙT ]jX`K=Y^6TgA2R?olO3G'\髆t#]dfBwȋ#\"X/SL2-҉]=R>@dVpn쵒SdךMy H]_"669~^?2囊KHN'Χ֟6 sP .z%ZFẉ'TQ nU["ny>p6IL旈IK̠StYcqni2Wۄ7 A3eYn~1WfdR=odUj|[e+kU킔Ò#q5ϔBMӭ6]N#nSZ+H<=ǕӠC7[oB.i/t s`, eMIF1)`,Pt樄GjoZ۪)8&dk/T >Y%}0U"\We[4sc+CB4b1Ԙ8)Š98"t/r)zLDep-⡗$ #={ (Vrn8na(١f}ZBa 6L. x-ӗa;sV w\ٱI̵qWhjDv$Z}$2} GEE psHiP}'+V1wog4AKp3V0%cS&zTi}#W Ůށ2;*+o•䅙tqs I̓A,Xj, }J7 fuyF15GS//2?Fl)=VZ#>1/*qB껩?Q`q {nYN4Z#;yBZlIpW. :#{1wsJNO\d,AJB0-]3;*YHˍaFbX G!V;$\Zt+S!>-OYd}vGMXnҹI+|UiNW1얬Nb_WWJ~5X 촱^c)11d⿦۵j _Y테nYDٖ]Mk)[LsECnU8|I!qV\xx)Vk^qOUDf$|ۮq`C'pHXS<,̀ܺ2szQu}+VJ`x #Ϣ)3xjC)57? B]sOVlm$jC!`O@xJ0kJm)҇ \3?3$J <Zϒ}l7=Єb܎P,x+r ݥf  a#c),z rDt|GL6;j*$ 6ʮ2:Cw{zS3W!gDy:!iT9P>!y3b#Yl5Ub >U>3mr|"'8E*'nCbЬB%]KzeMۤb;vwm%uj(y -QĎivMdnΟ_>ZfI¥EJC6 l~_dQnK% ҕy շxUlTEAİ`6v)Xţezqٖqu^Z.׏]q0'ȵ%A%Qz%9RaYJ~$;x/rn[Nba~O4F "Liٓ>H,N>>#Y0 ^@Wq1ܹf~&C|*ܿ%2ˎ ?%t,F`FQdžTDwP*Ρg;1v⪎Y~h'5*ax!Xbz)+'h0 -Rpg |;_\žAD P>E5)nGZ N-ҙ'麟{OBj^`ohuC|2='?3 Jո3,'usp{d+4obbF QOzDy[4dYҩ.w6R{ǼPuRx;"p^-zmTfcUh'we3cDFG<+ D1G &]*= ұ-JKGQ(`^rƱ_H؞T΁*V נe4e6Z&x9y,4ˌvJyqfco,5 }@""1byNKqabMс.PCk.koT+o'2)FelU%}Ar,踣 9sJ{,h7d 秬nj8yJ<>a}_[g0akt9yy.JwOpeGBH endstream endobj 559 0 obj << /Length1 1915 /Length2 14715 /Length3 0 /Length 15889 /Filter /FlateDecode >> stream xڍP۲L]ĝ;$K܂w';]/K^k-{QP3Y8ALl̬:lVVfVVv** =?r*-#,>MA2 Sл#@`ggeɕ aacPd99>89{XY@kN`a t17u(MN6@YX<==Mܘ\6 k 2@wkT kN OSW ]`octt{wqw޳e@ǿ2`}86f@6:;98:z8Z,me)f`h񇡩ӻٻTݟ3ȍY~̒ 7?ꓰq7ߗkq wgMGw6"dV@ṱYH S_g'g{@K_7S  `acl.Zjg}?6?2|0 'G{b)e9))[R\ `bbqsx?7uW W=ڿ𿱔'g XX?]MQ_V$no/zE]pVWdA hecqZ؀̭,#P揧ten|*oJIGs'?M]]M/lhs,̎Nw{sK'W?n "/C</EHx8,{=?E`QޣCN==?z3w?H8s!gi/{V5=}EYU/|O/|O/|O_|o_蟮S<_^z~7W'?> SNmk?׈z2 Pj1.pDM YwKA[ٖ]"}=n oMVm{{6NTmC5?Qt,VG OĤ!l)G΋Ry+UW<6W-\6c\+ nMՠ/y8]USt ݾLV|xNv7>@Ȝ'Je I>} ܘbV 8. ҚqSc0Bz/e( j%Ɋ"8z3m5^>hⓦj a5jf$)+Q,OO~7V*#1/"L^S :<)@?aυ؉(%,Ifv̄0_'5^lg9֨9<޾I1TinZ P[ N3d߬FQ4Zȧ%QDVlmϖ)'؋}AX;?ɨੂıP5c(jK=#_a1RW]Jn}`M(|ZZfM2<M{oԓ>DuRA3Ц^ 2œXeHJKGsF| ۚn pi|[:T iNՅ@E >27ờQ561Zs>M$uT"u-O=z g+qWbq3y]}G5j'ґ`MxD\Lc•-CJpǏܡlr/֞;k uw}%̓EP! DIzxFm^s7ȫ,N[׾E83PqnCB*l7!Rm d[jYro,pBF{7v6='h`X^51f-="¦' 3δZܲ}Rw̑ېIf K&I|?4Y@~W-< "5X1adK7xKs*#fHHк8W+=4_ R/ ~B&3dM\hyk-I ^c^U=\((4lZѮmX.lvCEMr{_;kQ+E~TUt?=.;8e<2=a%AWCAS\qqSDItQ KEFjgɲGԜw* ,^(R 3z~H%YUb>NH΅;`T#/DѺb٘&ͯ5"e薗"e3hmđ&< j{chp rZ3g'NcNp0C5y R898m+j!' 9W >Gliv_P%=~j_6 sb~,vmAB&۶Q Eװ4HZu: G[m){/tf87%B@L \;ӂm])~ٗ `h7Xūq~v.v&$4qz1 uU] א=o1 lAP,QSx 9n#=n)/`g bBXA@ jٌ*]%~Uvj< $60߁ΏuYJDm5&Rk TDYvzRG'MyMϕe~~w˧tKM||UۖǏuQ0VmViNk+dTĚX]֑_KVhg7- uC ?'#ƍ DA#XZbԈ*V{r3nK2% \ِgRNbyoG.҉Ft.YLȉ8$]\S>^rO ovNI6> m5wMVgb0./ӟd-!A)|Fw4xThu'Hpݷ2,SRӪCݯbo\&8RlN`?,CEr7Go k J Ijo- KGEy$٢澢@$=VescSAR 4$ E(A#C!#iLپ\N{=RnF6xG=SB?M RO2ig$|%eXEV -y 0Ӡ;EF# n<\xe/AR@?Esj&l@\+͗LjG{EkMMJ:trׯQ} #1 ]Kp|^]gq>˪45Rhj*@e;(y<<S 6: /׉BVfҴm[28Q=WyYZ|>vhתt)"{9D?]PO? RyN=}h9; KM{aaUC|v.\x]^j# xSk&\lYRl_MlC8ː}/C3)tߖLFN/Fy|i7pT[%Bv")˯*~Dv8R'an:/?-θ2w6 NNh,meJQ? H0鎂vPwy\׍v0] |`kϮTe/;iiE A5V!us 9lAT*sJ1BlYN NCG,)odLUE~,WK9'+1rC+rJ)׫4 lXFZL XIy)]/B"ρO)&O| 搚5w7nDvbұұl΃RKjA_gW,'A:ؕ"IN?7_ׂΓo(ٓ,f>S{k1d Q9x挚( t*q⚀ A <;2> ]Q M8HvDY730\74*%Ma#[-&(|)T}+RyhC1,]z̪u6~@z=oeU @^Cb".]w:hLxkoW,+Mơ:Z ,*ui+ϖMoŒr[Sq@ҷL1} ?\饣O!'1v}nD|A3 vlZE~2fHVeewG^d~$]mQlp92Tލi۽M&_Ȉť.L!OPwmއ}) iBv}_l搁W[U},eB5pk:F,=z2"nQw+Q@m e.9Ԅc{D6kUXfl 2fMsšW_c~Yzj,R-xAzbU10_mu̒,pstI%p(*(E*J)%( 7^|9XjIz˄g֊:gEG GiuM#x'k7Kr.Qh 3#pCyz-xJ<1aC맨#&a{i$|K$WCIuS8b9E·48Z%rEJeLSZF˕oMV_Ljc6'#'}wT\-hP3.n$L4>C\Ʉ\<׾.-E{g}m{IVtԏe)y@i]3|*U/(}M1I^blc}q~9d¯ M Z)A\[ehETZB7%7%'HZ ]TI|K)|:c%pЇ$oT8dDzaRO{6ӟJw݉kWJAlqS=Y\BL.pa8k'o_ p.Nr ׋g;ZŃK܌K+i ؇v:gVEV1ȨΟy%\;WQ97`zA,eHIOS %$B"> UɧdM1%oRLIHf@[\MXmelh8,cAtnNcUIc@7h4شM;ݹUREB0"zrP\qw$LSXc cɽOp2Sk@.nvDBI+D:(D𝐨.{.FӷCJ+b<3>8'R)ԡX6%9j%8G dTUkԛ:.3//!΄9_@DZ*}cvc)";wqsb<49c!لw|"I {6JH؃4Ud9^ m_>w{AV% ?O?1 LUy=,$ȫ2r_y#R dp4vybb1iGU XV4ո44ˣͤ< !CGHt/>N^Ab9_?qte?~ wa^@K)L7 :<&dX)h3j)wї/JWsL[a$P)A0m&U@J=o޾UV0 ҅tmz0V3a E0a jd$q^z@NjdQ4[rddj4δ55J>+w)oE=ϋiۥ^$-ĵ;46t35y^OD,rKJ%4Ph'!{I*\Poub&-|O29+i:{)]cH0ĺ䮰C{ճaOTӗ'^O0u`Ɇ~YQP%Y! iE~j_u$Q''s ȋsQQ3e0ҩ!P-v~ YWSŴW>PdD!xєk8i2TL] )ZFTf)N Kgc73%1.B4;6] "', P/E=~HDoXdkS~ y3d01]|;& Y+G^GupG^"OE;/y}q' h t \%̉7o" Z*-ʢ λ6)Ķ$7+' b",@2D{A}{LXzW.W9>K}ܰɛ]A)W,XsNd,GU2 O9g3}N 13 Nttʽok6πx΍ο7T,$4'TgirdDfOD+Z!c+ a“~*_{{hAnҐwj0,-CE+#l|UC;0L.)"*y |I}֬]XyYP g;G$b]I9r(Ohk?x6d@JE 񳶔2 ©m̌bkcAq"4; (_&z%ngl_w =]q^ܹ; Y? D %p; аڄ2]x+>Д㨱(ֿ(T2=`|VDåe Od ~ RfN3]KVx霑[/1[hG~J5:lavM!ڃ&X.8uC(,y*zk1G4m*ͤG}*nJϼp+k-_YJ͠s&)GVgzWIFҭMN1.J2pV[hYq.ݟژTVLJkEj[ .u[v Nr̦W v WyܖzڹinhG @j4Vy|AK߹;=>밐ze C- Rb =EEKl4ty6~ťB^Y3‡vh[jݣzBn:#WUfHcp's@CG7g_u oTt/HY&/,mA EmS.(ҳ02?ewf1- ڛuBH@,3W mynPo.{3'X/p|?(RU=]؆PdLi۸! v=#^xd Rl̴֘MPZ8"-j="SnD$_,OM p:@)$nejdZ=?!B*ʈrВ@<&FI:B=;p`x>9 kUKT,eъIsДb-)7#uP >y'oX9" #PݞUl{HL'r: l`Dw;VYk~y%5صicyl]H:܀ ǽHo3KGLţocXAH~p{`<$JKc_ UB`_AEy˯JT&n:Lff,1Qe|D-t^q%q2ߔjxf|RhE|Ọt/b t $KFDPkKB<G~pvy)SY ˿m :(.$*#ݢf8TYVy'$7t?{M {-ogt&=6mt{ G F.{1PELK)sBƺ9rAֳ_8Ho'@ mB.-N.]Ysc},kNp]4z, VT`./pJ^"~AZ4y8L72s2ұȽmV)B*Y8a5mOR{@],y<{c͹pd&EnU\yA 3 &wٿ@s+TVh D-o١9<0Qba.DQ OSpͥ\YyB:4VTl=[Qjؼ+9ԤXum4~4Č9={&W1vR6QV 6taRJ/ kLE(_'kDͫF`zv#I$;<\g(XVp_\ϻ\^iL_bȼW7-bSL^q>#BڅC5C`.FV:]rvа10iݳ0q[7`,*m_ҵQ:>^$ؙBph M-=^{_/U>OBk/o( ,a/1IP@f&$@ctqAxt.?0U\\.톻xu̾e\pI4xb(f4_ֲnWeO -TdQK~Z>ΡZ2`,\eʹez qWO6f͒&Xɢ20QNk5.R/?G4݄a]lFY\ֹ%_P*>Ŵn3sj$hMGdcg-KkLUŗGO\z_ /`\ G@j&$,Z tųЊ*ul^[ ϱ%bgI#]vI(L~yj@A-XՔ(FY@`Q;\OOl/zMG꠭03ǮQ-l[شɥTUm]a뽙èj4+l&J'rG_]jgE41-|΁$Ua5{@ېɆtʩ}ѕUNY*TN,2Tl:4?QaooF dD ,Sx(E'¥JZ߬mmLj/@){$SS) m)sU\1yUhPͮi4zNTNe$sH͔K է"FAzoEP6{fJ:pwdb|OK9Cb*3˽[ڹD.y WPY/,t1&cQt%QG3ߘHٻC}ФUgC|W=YҸC~r(3)e%X`qa hھdjtmeG/{(A_ʓTV_Ϫps( ]#Z=n-T/Q s-vm5{?SBw)ml7Xi Q%ٓq"4c\ojb껔8y@ } ?CنCLH=qfW_:,wzu~xpC5e?~~za< }?󍏓A2F{9`ǝ~P0KipNC\4'PW&z<Qrխb%i7Hni^#Nw`Z3ڝ*vT#0?+'/=2KyGDu%,= =˥5v`,۷3Y`pM") -M5mo3>44an]cJuB+ p޾سܖHnD^o~hH(y(#Zʡ%lZی }ף~~w6{,Y'IGͼ|R|T/ Vw%^#֔F%DAT %ۅQ΄2gGY{<@9VsZKW PQ!s*+O5W=гnœd8$;,hI#D|1bi3mtB>6#tz}ofIZs6[`4Y*)BhF>NQ r.Jp/ ~yn(T6X' V\l*#.ڱj%9nG`MEB)lb E\JuK^fRltxE؟%p6g~?D_)yR 78b>"̌ڠ<[? HB_onːٛD+4dEjrqxqAJe X~+ޫDZ:Yk{zUҳ~M=B9t-8u ZÏѣ(qF "lVa+hGw[/37 `U=UaC-:eWCN?FIry(zd.btR8H2XD6bkͦy^=X<%rUOWTNsC!rR[V~!4ɔ?74 Q*?)?Cq< &g@> ռ._K(J**v `YHzcMmjyδ|T;ܹX0 =}gk@N41+)v! D]Or'o583`+;3:l9<:&`7$4Щ@Զ~Cɥ^ LFPmh6XȻYhU0FGnZ&.3-?i=@ʻMt;AIЌI5a1۴ n _i=ȷnCz2ztwC0`T)'!3̌rӦD:Čy'Oi wJ VF.D䎸لfиp3 ЙULHю^620$[h7sa  <6փV\b蝏ޘk3ь<`LOH $yU뗐~`7XSpaYjC)px%Z \ef-mX@޲CqC{Xv*: >'6 :䀳#P0% zPz/UPQo0[w)B~֒?VN0B0%yQ%RЫZRABhmqeLuw6S- gifu?|,2YMƠQNoW 2Mfwc~,MXM^7,hAv yLD bs𣏕GG ,nIYN`yuDb!|/!=zATҩlrm#q_~&)5Yf>_ZO m =@ 7.)YebKU%F+A^`ȣ-xkyppqoۣoynp`f y67FGSYȹMihBe?K؎Hp[fX#!Ư}&+<%xȅ^kcK{Lʍ.q1&\'m34>r.yC<T̗*+w\,BʧPi'uЩ% T2?AeC}RNZm@2diD-:a;p`{h" #SVstG1/l׿rf0q/VIxmekꚤU|#7 E"߇?|ɩ# mvȳ_IC%b_~cZs4V+,6d|HÓuLmjwأAs1 @fa\&'% el bu^љN#DAgPu[SPi"/ʰTf|2o;"Q9=UPӡB.V`@ⴀ2Jhj#u8&%*X>O1_Á.3Psbާc)_:my[vg9Ev:@RN\ - !r˱*x8_$Ssv]\D6\pl1Mܱ?)9ۑ endstream endobj 561 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 563 0 obj << /Length1 2448 /Length2 20640 /Length3 0 /Length 22055 /Filter /FlateDecode >> stream xڌP\ݺ-ww ݽ@nA 5w>;罪{5>jruf1 3ȕM `cdac@ְq[Dtvq e 4u$M]v #+`cCg@  QK88z9XYi@gN`e;@lcn (Zvusvuu`e`1waqpgxظZԀ.@gww%S{? Q4m\;Xz:`9pY`r@X&k`gaO{d)dX\=] ߆v.`SwS;S3Nn Swz.6.,.6vSd\w {{ $m{ Ͽ wn '7M"?2++t=ͭYrK[ ` Ngc !n@?63 Oth7=v ecʪHK2tf.637;Ϳ,ie{Z ϐq?\&wېIKM/Gmjocoк@m gi6n[+j ^1h"e Pq5gZk2;P`e|uG_* xsqpLMM#n;x-b+ tpFQno?*X% >`}`'x2 0fP JA?̠qX 0`iA`v ~0f7A`I#-{Ap"T <\iY`˿o͟߂?;9l`g`'p,2 8ۿ z ~͟`Wx҃sus8Q9Z ;zr[_e|8i vn.Kt~J ? N W[_Gbg;vpArF@* 6w_9(N.v.!ߧ \W16kޞApx . t$s7gp\_X#-9 ֆU{0NgYtB_|#2؅Zt簥>[jqN+^xX]Df ]g'_-?T>cyH{-V#?M1hFPeP2A`:D%K`D;,[爽^AHEGkdG|?UާhoE,)meSZ}d};/JK܇TSڄcL[jZfR|F6d0k}X:8|nihOXWʃ᝵~ʲ7ieP@Y %'X0!s"B66=>n?_yU@Om`%4K3Pz.z5"b[{S~(wu$݇g y4II:9[cJWeE` _zH􃄞tw$7^thlZi<*TTv63'wGGi8ͪ#nF3rxtKȋaleۅZ>cdM@>Ϝ`xv*׵Ft+vq=i*B@Sܸؒh6'>Tá6k[њcrN|{@꞊?78 ʺ"n'Rp h ^<K?oPKB @4̇U9w%ohFd|h 6 _:h({Dg+ +W̨aL2{֒X-S WW`*;.+XͶ@ K@HQ[pH6>2{ uPD6ƞN\{!I국XWc5 AT05B,Ӌ2c]Qq~BWyU7h8D,r.9J ̂x8ߞ}<̊ !SiS5,fR1eUY+Lz|!0yWzwbJt|Y" qNzhNr;6a!BZpɬOzjW镳2m`U)29 Urki .䷍~FCŪTfQYaj+# 9}kv]BjA^N#1=]+(֎Ϊ3{l"fyl6uv`ޔKzPοU\7K7ƓEKa3Ij$֪J3QՐyӂ3IvARtp J_ 7,^v=C&V`<1E }O.v/ *$Lg=ԸIcRE*{6'1CSLrrݪŸG@ҚlU9/i (% L_'7Yd^ *Fޥ>ŮX ;R7{-ءP=4 eī,Z`jJCيy̾¸@$0\ZN2](R^D&REy3~vM M 5![z}>`o*|̕tŞNl/z⒂wy[fh}[z;r} L'k\B,E;@t nf墒nAB{+Erx$;)D]Q/uC\{;__R"QVNJ߭S =~\&Ŧ^|ڽې1.ׇcO86V/sklpa>l*UeBs֯Mvm S7`UIo@>˶F$JGM荚ݏC:ylZn*ݓeHx ‒GV°|r&'4$es:-Tp2k{#m,$ rT #JPjӖ,*(5*M'qزNb^_` iqx3`Oc YUB3pUDŽp E1ꄴ(F-ۮ0r58u!ؤǾ.:AŖ'נm9w"-l)H'GҐ{D&%;H TػIPȜrKC)vt T߀;JH_兟2z-U\n1~?z{Jp4é)G33;%ӹE漢H?_5$TcP^NôFW W.e Ww~2(JNĐ”NBEr&M!e%#gw4 JF|ru \IEe^Vd#HZE)Y}ܖd$yKBT]&U-ʖ &1Ҫ)4#j8f1'/Zm %"|2HwP:sѤ lLӯ8b!.!)M'@>&vPo*M=א?_Ot ${W~vt9hP=Ivɧ-ǻ >7*7$K?snFN/U⻎#4M v<]v尞eJcrЯ7RZ/Npx_{>lx}3r<}gw~{,Q.֑E;'2$(suݸ?5,yDweA~Y֗HH w9]DG(޻6 X~C{;~軧ڍ;t6Z^eTVp1#$@#0$A2oí}FOqU6J,8P ,k"yO^ZXnƻKMfuc6hT5U#o yX,6*DŌ*+W$]WFZYaw;Q(d)ِͦ Ɩd(MIv\m[8[J.xAJ4p6wFFЬ$hP{s!lr}_^.]B>Rr1GQV~ Y6'c|%ך$&5DI R7\*qƖms!j 7pbMPz A(efh7rt A݌cy\k)Q[^C 8g)yNCUӄK?HmH!]׫1>4o*1<53s -iޛBmcғq֮!-3٥qywv?lA 蒣 P&Jt[g~0f Pc_*X*+mqZbPFQ8'yrqⱍWJ6Q^nH:D Bu4DȬc]sE ƐPpV4_;A 'd>?|/ ׆ S+J%D$CD51<\U^<2Ұ;89&f Uԭw5ơ'|fSX0Wn# ,q=,OnO_.\l& ~^'B4{1%H-hw86DD m;old e  :{r&U W-X/a &jUn<'RVZ0&-SmT =5JcNι4f#XH 8K:xZ6~#;PV Rv/޳mܵ@--VPp|$aEi=E^XռON"W"LSn?qms/أn/ F&@%_1tsy;z>Bt`Kw$6NrLAo6",^ǽb*&>E]ohog4-OBũ|3cgwQ ǷNK`lt__u̔kƿz{v( VjwNq*%tG.s؈u%. {26vT n8;aW ɯ=;oNmPWi +jQvY |6VQ8t^iVy e*ֆ&p4%N{oJ6` u>jL1&3j!"ZJklj<(2/_=X> sŨ '՟Ni!JhAhR%'>:t/ ?%Uv#d"1,׬*X?Zd| ޸L%?ASEl# {gU7xU| F"#By- s5Z.j!0凴#l>f!HOUt=r=SVrfjY1ߙTm\5PDnzoFL"LP^g"rQǂH`^=!8SwQ,zds:XеdC*tSŤM g&z ICƣ71F5?)'oʌ60N -_ʡdI@Ftf=6}$5ca|ҽ;BR:=,.`,.1SQ6yuQAk8c& vW}^jP6Nvo~^n,jHGo",Kc6'sti9@>4F^:x7HcУL>u^ ~5,Kkb9fs sZ$~^[u K}[cAz>V(Ȇm9QL# Nh/FML:MY1UlF:U!D$Ev) ; djE *}Y}5e)50D\fd~#lƢí| (R)$0Ї7Եowx訸iF6IIx.aR}5vqggm)ڞ}[ 2i~84zgkW,xj:UŠ${f5zU2+V|NđS1L;EŶs'?M;;OcE.p}o}p %Bij4\M=f:3|uzLk7y L$LfgejCOf'a"O=yԒNY94b!QmỞ0kv5#}&xK%@h TO\|+)90pCBAMܸk>o h$S,2x쮥H5:#]av$6,=w627GjpD; Ψq!]sȓBJ\FBUF:AS˔gw/5>A~^6ą14Cޜ,0J3KT2Ԥ|||ܾoóW5z:E%[nd19 Jc\TgfT M#3W'`Ϳ՘S3 eD{[7ț]cӧzLO -ea[djE 3?P,S-$Y ==zn/ԗ8r]N\&hrZE<+"/EewPBA4Syck[6rF]H1~Y ( S|Qe&v,D7retxfg6WOTgrσ>@ԟ]RPQcW޼@YVG_rFy<ϺWj/z%U0`25U䳷,_5q$ipG%UlҾƎG$z=̤_'| !yc$ tUe)O1(ϩ U^eB&r\oSssQhz}yFt* /%2e.ú )LOx##ЪJ#vhr {-lx&l&T0NϠ kȍ釕Ϝm>ŎNΡy /s"%_y?뇢$'L ZoAԋ\(2Waʓ٥Ou80J[$CxYX7FD+xv9 * Wحx{Ef^Y|ݜ)!qiͪx8w&$kV  ΖRGL,hnѓHTOXWOB\^DZ3VԚ XXG. `;r"b7ƚYLl&D~Gք;ϓ؜3Kޓ˔rZsMU(OTrSCsq4c}]-#ޅ2(hQCǼ/a8tvd1Y-%$╫F+]ҿbb_GwV&9Vbe1A*TTVBиlU!T1cwv:["zu]q9rNĄ[#(GMvfdyXݛҫ(,0J+ unOlV6O1oSRj֐V @ug>2H-No3yP@`b!^O|kfSc} C$k[M/EV(=qץ Tr9ǁcd)R$pbYCd4Fˍ\1S8kxb 32`̼Q"ˠN͇YDzm3(=ƙL:=έ6\c4q˛txW,gHF<,r^E.FC׼Ǝkz*QKxVn )i l[>H 9oL|MZ4mgQf%lBvq|O8+/! 4_vF{L$DX#A57^5lyDDܙC_e^:(6o8 S*.#׆Q%ZlcqX<=)A!Egҏ5)#5iR}c?{ģD7NE4[.g"@Cz H(Z|)|yeC졒RCrAE0Q9 In6J?wy6qQتhRIӷA9GX3 _A1 ކ($~Fjv[ ϖ|^h*:۳-& ϙlcI z b'V}HH cq-T6^;~S rv`6_H6C_3b [l6nh)ƭk('[e2`RM!ޔϓ9H=/#Ү5 7JNW4yxDQ"^%uOTKMU@?dt("{Q*jď;k&1޶bbY[?S a&mDjx񓮻{Nd+ l>יv */Px)>ew(t|\?_jqbݮ< YR\^l*J/fbN<$Q$vef~hnGL0Uz͝@tzA< 6aeZvwΊ~(yr8yJ ]iOW3"n7  GJv2q\$`2rt m^MَfD+T/͹@^5Ooϯ"rUST6ʫ/Fj=hlxwHn*dX[ yZ -<ӶE,[.m fJwuXE@X9>;;EFj(y}Qvm5jOCpixSvbgTN&kl|K%! RZ;4R ӌ e7Wkeh3FJ ,ͱP#N{1Rs.Deu S꒦&7Y"#]4;0/ 嶢/gQa?mG,/r nv!Q}]fs8\,в??_i+C:T1*3X9*>NBs c\ JIA䘛D^h}]l :ǽ uu c۱j3dZpˉEi]6ttoS?Ok|ŎQ`P^`& V!1: kKyAC3 CI(CH}tnMl; BOYMw:GaAW^ ȯ %#Ui0b gѳ 7x?RIv04enI,1-5Oh[萰9FIzv@d Q /1ysE,Tu'ib)^w-{&OnG炊v=bϷ/wĶWΤ ,D]@ dK6"tF:SB߽?Lͬr2%ȴ'47`H!,El Ə㹤/,QցpK8m6ۖ 14/zG춣ؑtiV2uТku6Շ2!ЈF1E&#HϊW-gElm 7G@Cx)|7F<K^' 𐒞ƺ{\xV5*fg䒬b4EX*4lmwQdmcOXN G! ^HEǏätՅ^# eXe&ITW:D>}jُShhH\ R K}s,2!Te¼ efLZx `aVM7V &,еr)Td %=JuciaqGR&fG826+zrȩqoN-G,E/uK\cyrɞ'ix^R@-^D0r 7wu_r#]}_VhE\:Tg#}̛RC_ SH $]*o/{U@X/0ICT77JxƷV)2AN9cF¼i%7E3rPtԈ}*}H Ff^5VC='R5z!e*,jLy݆2To],Yr g=!H\qYazLaRffڽ!x! ֆ'&To ,'V[ؖa[弳  g#\9›6Wtbm5[Ovmbz"zqNTB;#V$D<08{|%JnoBa6G,%6=,]z!R=Hv.gڸ fzh}8G-[)Xa! A)^@y֚~leA'޵aՓkΗ4ˍin1'gA'c&D _ƞŪNPF,HIg6hݸ1Rm{օ- a*!k u9wUS_]vvF Kmܠ%/V嬪:hگ*z/!oexCfxFV%鶾CcHBeZPDR~0h+kXNOamCnmK(_ӣ 9L ju=&Mzʸc7@?ǝH>\0$< ($bmaՈV`N)' i܃5Aڿޜ߽Vgsz,j "&P_? MEVrəT~aE1m,Ԥa텂3uYܔ A^/c-Ф)W4.wސ:&:(0aHT4,SSN1ejqő]Ƿ%䏐&R?! pzpϵ ZFkfwIq!M8mh&%=xFjŧ>Uc ^9Be윆>6Z ud.d u` @2<r/H $,G !ii:"A w@= (=ޒYy^ɸ8nk]hݠN LGèCj"aA%Q_+v=hFrKX|1剉_$'1$ ^F+w/pz`=Lg!Pr9ȷ!k$5V÷a@1v,i}Ls*%\ˮ?>JOhjKNwkuN̮V\]wQ6*0YZ64=pO: *2#!|8=<p?$ :QcD@798 nV2|11#j{//VԷoDGԵ\]NHU@ g WM;`X_pG#Ovhi'S]}d؅6ơ+LìʻPvxV\ܭ 1DY -8coZ;19xEn`5y}x=WŖZ4.([yU1[+$f0ZQ\xj}KE(m.+#\YL sԐўv3Vf @ͺw${Lvችgթ.73qC >25?_J`7Pth0ihi@BЧV,òB ng[ײd @ Yor>yD9 k~wQڛ|`˃. GkS|)*5WDkyI޿ co: eq13*.xx#1>1|缈ρs Z!cE$T[#G,B!Fʓfr8]2=κ[nA#`i\,P0Z>݅ 1L*O:/H ߏ Gϐ}3  p.`d 2# `^W(p(N˫ƹ۟)©Z_8{g/E3*k a(Sv.ΰWd[eyv~SBic_W[@Q'(/䔻 K&crMzM8qw+l"EOx" PgK]6K X}jxnY@P8 0%o npĕԥش)3P!B8&i߀kvgN~={ {e*oq4j]|xf"`,z%=RNȓRϨ0SNU=v]uX ˘A^SaC%2dGF#r'bxek)lȃc 6" $r*Y`Ʋ<(,x[kRII¶;x| L~ljxt660.:@/ )0Ĭl{7X;n' S{p \b<2΁=Îa< -$6D[?m@@ kB"*WmH;+ ]c |uLOo݇])L RLo-(ms53E>{7 =@ D\iʅ_RRuw)o%(@BWqeKXl 7||Cij$c\gTr S"< HĩK)P;QL.N6,9.Uq8ƺohBy. w?ٻBB#^֯i8 O$OaNa$"Zv'=4=u G!KM s1.6u9IO` wDn A=B}])zNzyxsE_@H۾7'Ƃ[M;&q\ `C{7$!~f\BΊʖɓrQ,Sei*tchHvCcZe+A8-?Y,4 !9;4㌠h/3Ă_ )<K3Po# Ad}ZC&m_q&tVKGCJDx_ vr7HC(88O2y8pq[^sn+Cy-'1 +Eb>iyߟ\Ux,x,gO[^#4\ bBE .s𯽛lm=_ЭNp3g]M򁩹fS>dX91Ћ@6aPx07b>6 -w p@fL/|ŷj;oa'bW뾾r8;ZMw(ռ14,ع㫾 \plߢ;,?}kC>CѕD dȋ]}!z |- #{p^Т|~R+$'bYզYGrusTGb`k,pܾ6TLܐgMcn~d Sa\Q̥℧uMWSn X$Obue:_Bsvu81~r%x,p\:Q& WG 5RG\0SZÙI$=|$j!.q xc~(9VF9  et~ endstream endobj 565 0 obj << /Length1 1475 /Length2 7060 /Length3 0 /Length 8063 /Filter /FlateDecode >> stream xڍtT]6t =tw#9C0PJ -R"! (ćkֺ׾>:7:A""@H\J<<po # ט}3B"nqIEDZ`8`$ 0@"`^0 ߉HP8 p9taG1k~~p~LAFB;D$"y994]LwT)k>?߳!^kx!P~;w࿺<vs?`w߄kzoS̬ v>|='#KAMh- 3Ez}U"@' zvzpsIm 5a20 #^IBZ ~=P淇b$p-/DQY)/w$u];߈$@~m@9?y @ '-. 'Coz;Zߟ  N!!.'ꬾ"<ػ"3 TKꩃoִ8.G 0^N&bxh߂i-GaZ@{۫+šmT!;/{R<ɓ6Z w я +$!Ҡxɢeӏ^]LG4ci%EK #+6Ơ־-/Ϩ?3>Vdbd" K}/adl4L}[IO_{O0 LZǁ葎bͭ㥈.: 3~z8YZkhfo^uzQh9y?g?&F344*oVj >af!Jϕ"3ElΦL jϗ$]eٕz</I&6Ex3~XQDbpYppۃ76"@%2's Jrcg9& Ҭ=t wZ 鐆_梂˦s~z1tm1_j.l<ފi3*2Y Tjf<>1 z:S txXɝ裄pnY$}t#дw8alqFw&$ǘnF@; zp oy >9aXS 95)lˡz![ohX~{?S4I!@`S7 `.%q}.;˶w:N=k; .Bhȓ?o溛 `֞J{8N9S0S .؍GWPݪQ,gČg݃}z_ !~N.V,!K ׺wR KY/ʌ,QX˧o6=`PsЗQ袍VMՁdb_12{G Ң[T7*rAϣNXGU[nge6|Q(՟K'hvwS#\ovb M~|Z3ȉSyQ.2Go7IfPq>-61/Md9V6u .^\p3㰕+pv,U9^VI8њl΋EXʦ05<Pm/Ҽf@'kꚕSzdXIjLl.[׫˳Yɓ=-_^AF* 6)K&Ȍ;g> ]jxz0sխ4Gj{ty6; 2o;sáABWF{pmsBdz,Ђxt.,!Q2$Y.t1#"kU SNIRk+6>mȟMmAbWa:Sf '`94lmEc=zc' 3OD?}vd'ug"TVz3u'uhC6H^׭\\e0.L4n*̳C;4$]-+Kmrz(eA3"_opJz) ,Z_7s|(?U!z=BŬ35mS:Ƞ茎t,v+2z&$ff}^URA=7˪W'.NuESb:q\K{AzZm ovD%2?/\ǣCjQT2(Mr(9dM_.2Zkx-`KZLT5m_mc&Ջx))V1Jm>?̿vPoՄ8<ϬkW-ɝHd%wG7OT*@vC NnAΈs(g Y-(LKw@d-:M*YI8իZHؤXoyeڭ#24* C2dbs +idIG Mڴhcp)=N Ψ-zi;Ԭv뵧Shq-PM*S'@KgZ&oR/cu4>t?\P!.(P7:3uALڪB$p59NJ_Sn9HCiMIoXZ81/tʷ N2s{hfeeo6J >gIGi1o[\)']q_o+9Z LلBU#!aI] _vRoϯjNB>Y=j[]2 TL8^OJ#_4/71ˈ5nxZW*y0n:mfl~ I~+rjGJHJ !}N> ECɓׄSmf:b5)[[@жee睽86aޏ!s[Y_'.(7Ԩ.2XmupٳἿa@CtGP60qC_Mu7( ;GL3 ;@qS)L(p3rt6NNW(jq=c4)"K/E$[" +*=h3i7(>cN[O"J QmP1QLБkΧ<&zmD C`]Wo{J{N\hԃ_8t6!98.~XSZl+#aMw+ ciKq7T)xKorh W*IV b(gFZ"Gh8F1ge#qK9G:=j'{#20%cN?h;H^kOPd6eB^i4U8{hc; ||(rub w%l547l2^x3 zNkãZA&2|3O4ٸZ5_~x84fG$KMVF6T$mнj2<;jIݱG8q#B'y!MoD޷ZvzqM8M:NA.t;e=n9jU/ysC\&v>eEx WHyQyf]mi(<!MkGOn-[pٟߞ&pPR.n2ǔcN\S0QP" Nʞ|X2ΤA1Zwo񔍆?IKA^ё!>J~+J~8T}gg&@w>H?濳rF?"D&$QavhnvDR.bN,io$X$de!rSVXr[_ڋؿJ!g{8:gGS8@tL.g#|x P` ϯ '+zUK +x?caAhy&;F5^ʎؤc6]w9 ?y҃{=]DMjkœ{ojةfTʅ8ItwXn%kZ4)6/YײTZ/Pg7xDo ƈ\ǞiJ.ɤS'l"-9}9]ÿLBd-RNHn@L%{tEsN{?CS0Yv[bJos}ي4H- HeU_ ܛN9O>IR)ʉ-A_ ӘK}׏' xg4jx7(ޠ(M"*ftp ||vw{C~aw~$%*Vei縕9D06Z:Ԡ];+.gs_6{Rt ¨Etud}Ýz^FAJtE ܖ7PRyZQcM)թWeH3m2)7~Ί\X31 PaYSYxF-LG^ e{х :43k 4i ]WqW_[d 9Q@Jk$12}"K;6z,٫7$SqGSeՐ `I'èH-O⃦)A%M̙:lkݳfݰƌ@0v4˟N詜a /Tgvotܲmb1T4of(KKyxd()G4 Y[kS%l%8l(a@#_ǂʶėa-@6=-Unl{1ݾiX_xSM!ZG ;;tO#;9U8nJkWBf\˦|qmAY5~^g>:`ay6ѽ>,+:7rƻg18긮9 ]|rSٮsvZ3u*|wL=~d~67'J˾lUڱNhN숛orZ+FXWҧmol[EMx[H3JYAꑪ:E<2%=|הv3@i7^x*.Շȕ"|utZ+jx)3Vh?#8+*Va!Ԃ\`1/qޗDZ5BfNTˡ?̶ l%Ϣ?>W GJ -*ozuD% ܡ;HZ Nݟ,b|J㒎Kg $ȓ ;ՄoZr](7}~E^mPXV.۳KZXj() P]`}HD} VKaj;Q3z#̲£}"qEU`[ 9:5뎬fG)<߀8,'dAZ8^)`Ng G?|F+z q%ťUw޺l OCo!ΠplgSP{o % ~ł.5̚ZS:|,x d?\:2V"H.;/@,`>Kq endstream endobj 567 0 obj << /Length1 1752 /Length2 11501 /Length3 0 /Length 12606 /Filter /FlateDecode >> stream xڍP-! %6 3;C=sν7{5U3^{ݻ$SQg5 `GFV&>+ Rh R h`_lF/DE d `errXXxE$AE& t@غك-_#ƄW8@h21-6/+Y!& ptcfvqqa2q`؛ 2\@5h ]2@OiLH u=b/!N`S=eu@7XX߉@࿂LL 6F`7`]F`D#kKt#*s0::09;6KM!66@o} {˾1sV` _ 65]-&dbBdaa@W hr6b 0{) d|Ap0r흀w#?:A}٧IvhZRt.@Fbu,F_ERNi&F6 k/2Y/U*MAN6u4zQKG32qpm9H\* Goq* ?3zD^:/e{YI qrܐ^q4C[c2':_nБky 3uٷ{Np4ڨN (_ko Ytԯd|-WJ[7X221"XVJ ea&F (`K{/Pa#U~hzsFQ:DTGK\T$\ʌV&c^C8=VW߆¸8<q8'5sh7ڸuڢs'Af/P_{'kzsH%K)chٶXgZV]5|&k0co&[TNnu+oE'N ieoCYU!eìg<A-d6 3B4Shf ~=xz`iqeWC9գlR$o}iG[T{Դ@hú8z˴ _S'",v[4!'q.AQ'G{:Ɔ]E"F=/ 5-)t)9F!IXC>7cɵndl=x᧻Ka |{6O+\$G/ʸ"aލ8CIWI#؀Q=''FXRm8v1cXenp^xG^zf=F[\Z SlhQC)~rUZdͰ*7ӕ7IXR䣏xpgv7dk><2~&~c ;H;e }# '2p!UqMn(K+SA}?Zs {mMb8O[U?cC`2 Y(O8fR ޖâ V ,8zL)xi3Cē5X&X?nB.?_B|,*otsޖ4SR}Mr5ړ\n5R~RpwNw0 GG>Su[7%i̴@}ҚcyhKq3?ڰF¼4%j}duHp?N>l UZPͣ.ў me.ـO踡_ |y9a,r=}lK^UP%FUq#y>."MS7 U&nfO\]tή&{<f'̀im(*9jE%JqBt1: Ew~f>6Mz>9I&*0.G77 $ Qޮ s]<#74`Q,tuQt{hNIv4J3u:%xvai15IZDMg,~ܰGD `v;մ޳TkI!0,sCȐrU fxW~j4نm~ugm d}TB"02>3 [#]W9(yǪ|z,GUaXÍ vR/e"e3a8R碷l#(xL9_'| RU57g\h/Oծyt/{;}qzKillY[wY"5]>%I񝸦<\ԋYIbEY?㊀vU%<66{DZ5*ΗkJxUk*.1%ͻ[AN1ų\A ӎ΍H[K ^srN((vna[N,\hQ)Iٞc"/%yds Oub\g?]e~Rb~'3I9G l?ASi06e1b&^EKƘdW8JKg.`3PޛN7H j+~kzCI.#tw|W+6J#x3M)d i,Nym[80!™JJաgt,0kźl'3EXDgYP%):su~{ ' jfq^ p H[AL)0hZ@FVY-jLtL&a:4y[El]\NIBM_pWxzOG;4\Ly,1|>kxwmW߂@EN*o-\\9MbzsdVe 6'^z[gb7%Ȥ N& RODt)H]íIt `l06U6Àa0izJDalW5/'Вiej!c߹ܹ^ [:XǶ7r:gd8o$*K^v=y_l(w#24|:/xś^ߘQl]_XWۑZ2csEjtF }<;?%Z}0ƪّAv Q?]1Nb&G6jXoNp*|I"b]~T]T^N|SM;]|ޅl8:6TsM~}41=HB;Ο [l`x O/ZqXlYss7V .'m~%hT56&w"ޱ&ExSQ*B`2jl )S84|x<Ίfo .1\rRfx8q9ȹ@Z+UamXBTA0;G].F,$&;,9!fz<A02ISNsXz*d'w.y^ s8`Ex3\ ={Egm.Y0Yn[2/nۣH4T[n>Πc0t`n98wD_P·'hOYF5!_w9/l]; %~;\tElE1}zJL_8MB3?je8G6lӄ[CuOBylɇsuW%MD?ONij\8-o}78R_E:f_}ۿHlҕotJ.9Xт355ϻg|f*3nCpjQ֠.UPz.|@1 %V!>Eݶ7&~,sɃa}&9h ׇʀ3j[(ϲ. <.1Am}iVnU i\,x}㗇#(1ȯنߵ|m3W5GF7ɝt'x%vCa1Oer{U}8YɖG TNC $_ol׋YzʢTZE;"1@_N8F׋R-hnv:"b ?=j ;aV2ԢjHDp[Ө3z~ܹLᓧ7sۛ[ivyRmqW7}emg r9T1L wg#^6 /[0Z 8.V5$VZ8ݭ\5MrA{~1E]H$Ꮅ!Sdz\PBQ*ګѐ>2:z'ˠȍwҡr)ùmx K\V|vî NQEPB nHz:Z[[Gd}bEl%YP^tPzjLO ,i"6+Em9M M$Yh8nBJhqs4>K'udu3GY^QVG3ƨ毆j3lLlwvʷhyPH[޾,4GY? #N{E4b@4_{^AɨKboQ!APM쯁}<v %vhs1p=[O9S;, Mgfedd=Ta;HLIml.eƸD 2Jy!0g5xiO*۷6 Z.UB[͆VBA׶MG )lۃ(r¥#gB--"cPpM+/HVgc[V4s(HuǭN^7[!e$Pf+n4#N,ETOm.ۺU,sc̮\ =/x{QjG#7ib9֬b#Y  xPx>Дԋ<Vl 7 Zeq[[wԼuAȫOAqW/YV)CDkɓj2c>jt*ryuTA:r%Eͷ<՞{|H)M7QPjK[{XYPmCmM &>l8@f䳓gJKuGШ1͖~X^PavvƙV%e xWlg7!hExD'uǔ,4%|JTbUcQx:4(l%5=:gw'nO"G4z_JjfVhj/(OWFhL5ѨA_5 _pysʅn+>:…Jp?a@LY1N8Opl14 uC1Lil3Ex.(Z+ћ[+s0 pg~HyJi@[5ZF*Oh!A?\'io[7 ''/F[$\ L`Egʼn#L㎷U}ho?-h%ָX>]:okB =S+} TaGO##{=N\۠{)E-1tcN#;2I^Mqw nغ0 díO2ӃU Vz҈-1գGi[ɰމ' >S|S3:il.j,}c;:a|QCo? [ $P'Y餰4Pi[Su kYMzm˕͆l6 gP gcee$~#Fkvt0=y"|˵OuL>.rR}(sW)G6d3\鳟7q.?*UUE(1 k?Г`4SU <%&:ewJΕ6vACTAzgcIًV3{yFvLhK Mbҷ5k>/h{h i]>4l Ed[3'ƨl7n֢"X#֫+M`BݶN\1̏'Xd6{8S !Ko=J7]կwo#Ha_Pvc En8 0oTs+1+&qs|\jt s.fu9-ːwf4-#kD'\{ -6Ϥ aP_f}gͿ`]2`sڭ$NL!?y*3¦(OD|xVӏ\PAQGiGO̒c95{#Sa j)YGdl2,̄m W NNlȡـHvT F;}1N:OǞW!!j8S|'[8dEj6z0]Z+')݁SWCKu 4ߦ~%Th`~]8nܸf@À͌R=@ ӎ܀?M۱b.w}J"n5-" k‹) o:JqeȄNVhV n  U]b>g'HO!Efu.-ݘG0QN{WaRpfU ql[4CKOռgI B2U7<̧h) -NuۧaweLt,i_~hDഖT..i8Ǽ cԬ`Q]aj |oJWKL!-L>ڴ Tׂz˰r L9HջZǞq>Si{=ȂUHb/rҒ4A.P&œ/ÐojzI9Π"Z0f`s!)ؚ%ĆDvb30pGgd')Ț`}怸 d 7oKP:14 Ote܆n0 %ĺ&tЏ"& KOw!M`8$rlK_JfDO-`Z ;&m1Oz~ V+>t6[8qRm6 q~@;C:{<@V;/3`ZwqA Qpl֖tiStЮ%`.(TsNtY&t6H]'EN b5nHTmi@_t)  6;^#q؆e>l#oGua^ S r6):9U"YV8odw-^^n_봞[\}VrP-"Ba4dԿV >'4hA0͉97Ԝ9,? $j'"C7{Yr]7+9pH߳S$93g3BX6<) 3{4I_ jJf(m&> aJXXWX8U~]cLƢ/mR9~`)-(!f,Ā #9*hLPSfBʁYӟ #Pv5J #Sdr^F7Bҋmdp@΢Flֹ`8K #ڳi[q OĽRq}BA1/5 'Rp(}l /vXVoT+M ]u>;s!di.ˇR޸SikzgpV]R"x3Uk<*:ED{s87Ec>_䪊﮴,NClHR&ЯSCjݓG7z2cZd4;| ۣC4ի8Bw>WL$[IMPFWMM8\ e&``O -]xk8Fϧ/ b]:~YPFU:d%uh\Ark,V;HH٦ʆ1f&g-ͱup Z"V}kd4VɘTA"ҡ;%pIOp3 n endstream endobj 569 0 obj << /Length1 1370 /Length2 5960 /Length3 0 /Length 6898 /Filter /FlateDecode >> 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 571 0 obj << /Length1 2109 /Length2 17251 /Length3 0 /Length 18524 /Filter /FlateDecode >> stream xڌP\[  08- NCpw$s9畓{k^kS)19$,L̼1uf3333+9& 1g1M&n ~3TpȺX,,\Vff:8čݬ LY{ %-^t."v g+Sc{1d`j{OZ~K0ؑtwwg2sarpc[-  WEc;пKcB[ZK`v7vV {7W{33-;@MF nW +MM=-V <07oI[beW¼YLdvA3_e:5쭜\A2y!#ܬaj +#o%_>y;:8}2!y`gW'?XXfV` ob;[ytƏoof`oG WQ%W)*fd0r0XXX\o/7տy+coݷ>ۿg BXo 3z̦o)+_Fie7亂߶@m_2rZ6[M4# ;3V.V 3e+忦_rb toKfjv*o^ {S`lvof dwj0wpF`99@DB\?mA<3(bAl?-?T@'_诞oLA77/o,o-o48h9پ}YPtGvۂHY-VWFm۷ |V!_,Ǜ [@3o ;)?[oջqBo$c} |v/kyLVL:jE޹3deGBڕ tW 㿿d+\ߋ:f-}mc1I[i57ax8vweݓ1b7;kUvgps!P  dT$<77 TPHfgh| ˅I}+Ǐ ViP2S8䌦sT}WAiM\Մ(dv//vdT-ZRŶbϷErM9E2 W&y5qm EȪuחkpLlj ])?4GsE%Nb⢢ܵtlVoA}du L&Xs;D~R$s(-ev?͓ˑS0ISlupz;!-Ⴖ/.Q0/+Ո/|DELƤ\CP޾ i^҃IIB -ex0A3;8] "w=< ;b*_o*ZVEP1}Et= _vSniWwZ+>ȴ=rzJZ4Dhe) \ <.C\NTs d$EcmrgI.g̀P> =Sm&OipmRn kv+SaXIL.˲a5Ѡf|˪P-]Dv'Rg,O_5-)r(ޥOMEQ` I,濪>~R0dwW9MFh9c﬿Ceo)nz>g2PYٴ~usYR%_'3,x-ީXÃy( ?*驗(Q($Rq)%bXL^-Lr M50WRex[>>v`=֟czyG6n!,r3ɀa(uBVQ4m!5%S}*읙.f<> q"rRr2  p5; {xwwONE%E-ǟ6)мJX}~$yiOxZɪ4Ma`5Zr7Bw)ۄ @M!EntR|DC]9bIO+<@}v8[Ie@GA`z-{h2g)kNF+M&5!_Dנpke~v.VgЂ?|wqc^XaSź(E3 lSLoOYfnQ" se#tf8TGWZvrt5θ|U?qyȹZ%iY+cFDA?|A{OC$Ҫ.m^Csh3LPa`1< S{qHtU-X>|:zBTc(>(CU'AHGZ Oy\L#մGż=YΥnN'w%5bO6NmOj}l}01Pwk|4isuwHzĞx d0ιx.r@vKIASlSЊ'}cH'ZV% L 5u6%t4rABüWz }٢gsp@.9m-UZ4v8`h@t'LF7pKn hƽjsP;NG/oib ʸ'<0TH],Xߖb^i`ʬzo׻AtӔIZKQkǠ_OKOvC\ j\&ui]8łltMHX줭Y>9=W*s* W޾aw/6<OL(˴"(ˊ ; 69#+hs+|I x131IP*[]|յ0FO+5q/'PB+*U%KV3z0MAq>^GK TxiϤ{M;MغU`uP>I8ܽ_q.䚙6B[hĩ{$WcR\c`&&$~rN*AF0H8K}dJZEaͿ#ђmOY Aˍ]/aϯAG]d4BN L|G55 T.?3ݏ ^^Q{5T,dIC͵ !Z䎮SOD+cUg秧ZlaPZdTpsqH{B|aLlkS'2Le zwm7nDof_hM29A"MInsoif fU+6Ǐ͖p˜xJڬwaO{gyH A}71AtZ-, 5xw\gr .y^.`K_{ 9>WZ_GVգ+_n sNk˽;J𦎼@ 6^CƻF F70Б"W 24`WѧIL x@G5R|Ba i!D`?$V͚??C.L@PTu29aEPeU8:i{[[Up82e~e$biN^MOR`.|b3<0oQgXՊ}KWU! k/l?ڸ^}ħ1~R;Kn| [Z?v=+ɻ6-Vhɵ@73|B0O3B!ކ\䈥瑘bU?:'xԦҰ]=wz1 aq/.*>h ݵPbeŽs^㦘߳zKhdz3@Ѻl;fn't];{#mԻ% $E̅RaRQ:>^i8BO/vIz:n+-]+\`ԱA8 }T͓ =kcߛs᜾dp"N#05woEwƘ6U=6Zt̗>2{Pw;|=pjDG!͋{\d]Æ+Aİ0 J5gx;`/H`@X %DoRBYv3CKlj>c6Ý; 3xg_ěp)Ph? 6fx@Bv6?-ҸBwƋ~ ~cܰ76|6SDֈSӑ,[ΘzȦ2= P<ŮQL|"1Zvmz w^X.:Sweyֵz\ ka2V⭻<֨il]~rJ%5v8z2VJW9vfx.$046p =׌29%%A+"\xѧ+ۆKɋgjkkԙ8DX᪾1ZdW2ݰ;4ȇRI(b_dLXv-୓K3Ɓ^jb]M6ɥ6AGdjq&lݚl!Oϧc@is |-LBa5FjJWz$99ixNUŅ* t{!Y!(:,iHja 2OI_DufBx{bg6I{N$)aHg m{|4 W fw@ٸ$[z~[x2?'2Mb*JsRqQ0ATVڹCoVImoIt⮸4bZP `X7fdyj l@üT9d 7 VTɐʙF#_.Ҟ&IUjuB$T_14PxȚE$ǗR_6Fm|$͏BAEVN竹]fÆڕd] s3.])KވdUXN $Vk= `'ghBOȘyYNHs3dpԈ2w.@jP (ҙoIH`( U!,Ԟ}qI' !omHMmdX.\yzw!iW7(Kܤ!1$ӊ-oB^#π( Z:ix2w&rhe㸸wW@ 3A|bEq07-_EHAE/{W{t&f'F&^.mv^:3~hsG]߾+㊝o,BY$̜5'ԇAM`qp&&(XKrΞϽ5k'u% ;vRr3_2^ߙ >Otٗm>5܏ԀK'Z͏&\kEk#į0ٴzTa^$rLF輍ڛq!n>dgOEqODglb)pJHV]B.i?_[dXg } '&c)G Vhۼ^L at}Wӑ6*XhڗXƝ{t(8^% :Q 3I`+nNcu9h$Na/Us3 O$$W=tc*Y7Ez/,mvAwc4%X^ϻ $HhgĹv* |mrPN0^{Z)$zB*ӌ39%gjF%g< :iAカ2F9qYW j[ lDڅfh!u-v&dcp1MZkW(.U֐mt{ g>Ҝ{kM)FTG!͔3lPE|DsjӇol!H5Zʔ)"wFhӏKcMmSr tŤ6}61{NTKe"rZS0rcKxd#F*_'a,a Z8V2A q4.h+>PPRkR(  uk6(VVoMd6 2&Pa\|z] ׾-e{eIήY?a_hD'^  ٰ]1'#Is+>4yJd،ܢ!%VJYwrBPz>-iݵnY[xh,Q_eA}1xf7#t̮!0"9>@D#L0u" HuA^  )=5h5g1E{9v|^5Cɫg;qR2 ?b_$Q#B[ b)fq0=vs D gqD·lGdDٔr]19@b/5`]gv  Dg8}nG1)pfz.f?qnVl?h7td\_W4 ^-m_ACZ=vқ<>[`'ujE};e-0SZb'UZt 9qƌMl'b< ~J!-t|5qAZM;˸C]!V7!-jÛN2<${!kQ[h_2_6`cybh:hIG|Z̘(l Jhki#&Wu]cE1m;/t{Nee͙T6\mK+0'kް&"6G-?Fh`*fuR =Y6SjM#b{[ v7l;m[tDD٣]vx=]n#hm/_u1ߖNJmlg6[MI~&3Up~֔Y)* r}Sk\T1g3qhOIO$EUэd߷O)\:W#,|&/BMqj>ows@F&RUs.Hg{\ňxR&K@'elH>zmh/ӌ~IwdZ<%lJU}+WV7b:aR AttƔ..۵kKPWʰ5yN yB}AOS:__|>$Ӆ(&Jf .v38K?a+_$]ѹ\GD$(j¨od'&UhG{#:)!8% LWmUVlo8?'9g{_y?![VÒb˚!B:@+\PsJAo8wƉ_%S͹P/ ±J?'Ԙ근oS67\R 6.jb֕ ȫ<}Wd:YN#U ҈NĚIT|vEbS)b$qeH5~6ns䛆kW|f&`+ 0 (Y2.tG,@;!d.= /5[j&/Fs"XY"k: ;uqp'Wbz̍[$⍈O[~Fg>)cN Hb3c|q#[/]jRM)s3R: [nũ h<\)YJsJc8WX7w(JN) {"2Cdv/|gj),_t;+s5e濟1fu-՝;^dpƴ2'$: h chES㗈[Uo&\]J-[1e#f1J`P0Jb4{gmhbD饪1ut3[&vs ?OB}R)eb6#w WA#X$3H_Əp9`E_F=fE҆'(%2޿MPJ<͹ 18 ޵PQ=/u$mP5 hxs7ʎZAs RIqؓ@]E(NZ +e B٦,]VQfgD0 1LfRU!by_PqZV tO?OH޲ԍ]有=3g+Xk~Ca5Dz BͫM IJsBuJEG"^[gL?*'¦oе;^0 ܾJ=-%E#Xev<֖xYp LV]˓Q߾ N@͵*sCpr۫BʨU{LJǻCg>yRY/rAGhqWuUM??iB/r[!Bz3 ٌJZLJc#LF{/,B~~OH8aJ)dSΈR~r=[eLCoz6an"Ex# :U{%2ww6 i 3u5Z6^Ku JS8j^4jb~(sixI'/^n'dߜ7'L&W"mv 6*G1V\oVLBKchX= /ܞ-jɭx(~~&"V=cOKXU! .AK&p9 Qg *O/(LȠ2ֈ%PNpFwwϼ{K{_(/=K8d4_tэ5K]ڽً'nVȸ6B-!o/sև7RŢuzZZr?nF"^_aJCY5t4рmia|F)-C c?NMϳSs3%c2zKEKV=K"+xOfƓG9m:*|r~`MtAwzux]휰S3>HKEh;ٸ#e?g jt¸ odvB>9y"Zpw+G~*}1WuSIR8A^#p:k;se&.;!ly: _U*`ϖ@ F s,휕~W,{+Kz >ZV戴[K/6O5-8Ur_j!5[4iS/]c(eż+%1H~zUՔZ!LSt7X{0 \2"DZq1 \H}O-0쐼")0pB}jRKlT0"W.K*7e.vH:n\%M"fh4"qCn.ݓ`vvYSb9#~+L  :V7h˝YXJew<* s%*Q]*^c5CzmTv"gn w:D1%{8¿l̨У[v}1is4=CBFYst/s*pӁH|hhjiCcbmzhuDŽvѐ`QCMMvCEogo&KXȦ=07 uxozÌFOR/5oF7b|[(SI4B7A~TIAhjp\2/90uŴuCerl|䋣 BdQfnb _9rcy|?/NK1M 3!A{R]%p== x,)iIh!vtj_U/;$ 5I`r!A Wݟ gX(E}ÛAf-x{oQ&Rm.-JVyP~:]eGGB~(t;8[af臸Mw ex's9h g|gZEEB 姭sFEg%on@BQX~ǨKq`5IV t$ 2"Q5 GFKPpL:eHGnV?|؏X|YoGƾ,F < lETlf9X{`y_S}Tv W4`)BpZ<ټQhj\Uqަ"\/1 @ftTlghSؿ h.ʳݧ/bOs T^9o2H .6EI ;ZR- *Q`cD.:8U/YPQe8:=tuB F@hgy_TzѲcWz|&f{#bw:[,A3ZuJLN8/~u\DP.GݤyT_rqC1+C?m,d5= 5?.T-o"pt)QWB=Ȇ6YMSlτ;Eat[3+?'"-'חHGFt@zY8OB>j(—.u;SjΙ 07{чэUwJt]PuCvaebf-&rz-*"o/(B);őZD1-p-[7?5"5OH.Lt'D󹑯ԃ>\QS" BuuZr]~e{9{c ܱO#̊8HFW%<֓Smm'|m݉)ΫH䗛R6^L>z#j}Jwޭ4tB[ Q-1?bY6 J^mssg, LyNCJMA_gFs ڠ [* nƕ|!t/Nw%V\t`×cuN'C`w d"b0&FD JKNeu?wCGe]6oR5m8f=L][IT.DžLp-T!} { |^  XC)yWݍSwDEu)p:y~AE7 j| t}\C5L-0 7Ma&x, ;CvLt.&ߧG @ J}N@2R(nj9$OJ$1<ݛrdF&ՕLxrQ- a*Z&>;?*ƐvCd0s^?{l?ІG3zODF*mfTdkR#DZ]}#sR]ɲn)gy9#w!i&{; ҟ>wJӥ0J al1B8W@@.։Z23? _<4zH$R9e}9AsO7Qrǣ9La` ͧ 7]{zFB9K^O!n&؏Θ3 ۨGȃ=FrEr$=vB "bLa! hONYᑺ͊puxfNZ?EOe~Փ°?!ۃnmb7=% Y׿wcS6_Ca.U׌ ]"%iNi܋I6 #NJ]s3k)8saf{iQU>k+L 'ri;W8B/H @)+^ Kh͇d36|%1_D4n! YqHMSd@,Jt6f7NF!t,$Xj *6(+Og1EkCDFPԻg*ڿ\-q_ʛpC4M]EȜŲ00p2pN~`zȐK¸E$ qa~ :jzR%t@prŒO~UTBl I"I ﬢ -=F^6:F0H Oq3YeMadxpf vle($ Bypmphyk# 'ϓ}+H~m}6 ꖔϑaPmyꆉ Eܰu5֢z/CJUUtC_{WnW^Eoe{|"(bQPz5,#7kdlzoњ6O=O&QgF:"~I ͞JR_P ,;*{óS{[~u X*^AwZ2OR%F\$րD6gE5U1u]"1z},0ۤ+}x+OZ4R8Buq8nB HH[ӯ!@XߕvR qC|4^v91v e63d8 ~TNqzǍyIrp!qȕ/$Kjjaˋy%Y Ҍ%eyk:o n#z~$RPyչ:W![5 ZTi7-.+-QȊN䱔hGT(ϡ ?S}$O|x8EcՂHL߉H ׯ_zCڕk)Ÿjp8-q' =_ƫHM r|Бcr=Hѽ@iRY,+|J]bcC1f.D_SU u}LQ"I5탫csq9wxuv'@r,3nt=GOU:!߽X=RaL)wM@Mxit} l똪)r׸4n<smKjZ- j ɓSs6@F#5@צߧܘKЅ݉MxJ>x7cz.9i >O_p J&;۳i銫BA q*Fݯ!r~kC$ڙ+qQ 5ɍ<?qt%?W{6Ķ Id-Fi.hH52żV(7d vRvJv3a75稪.B‚ɫ/Yj&MC^XcnE[CA{E]V_֜mOt=0}Bx@ hծ8;VPMAōӚFn:2ew֧.ysPX|p;0k߅t`TF5 DG'ju ;}t?~7£ ӴU:fsZ!xX)i9RA,&՜Y "ib6o`iWM^Jɧ~RE >(bU^܆ endstream endobj 486 0 obj << /Type /ObjStm /N 100 /First 901 /Length 4055 /Filter /FlateDecode >> stream x[[s~btUQ[Efí `!`;,?_d{&RhfZV׭4vI %\y W+t{'{/L}jOQ=>Dn4[\يމHmSZf< uhd+%@QcF A^6I!LOcaxBvPi'ѓt}GԹϾ11H? A;Oi1xhmEuig5a!.pCbk͈=`vCbBf%w!Ocb[A@7'Dr굌rj֫W_^czt+?]OW~ӕt+?ST~3Lg*?SV~򳕟lg+?[V~sߊ=yxv=7c:CyH `LP`2h ]rB6z9.Dۊ &©Sc#42P^Elja)m}Tv#\갔z(jX$42jhnnQ s9IIGc(9HT}*Np[ KLt8xɔ14݂AUs0hAM0 7H!j|ؑ39ut^}8:yGnewp gfS-` LxՈ8Iyq7 7Ȉ6Y ɾSz%>"-|oEnÎE!,dt$~hsHZDNʎZ<X YZV)AØ q iGB` 0 qI{4$ޤmWVgJ2Hu 3v$/%u2!4aS!N- 3o#>SdLA71zFo3 P:HuMO 2#tMU ڤmf!!imhǛH5)DcWC]fB|𼷌@1 qSPe0dDi ,aw$DM@gb! SkB7f;0+_6`͒錰"Dmh TGWv )6'oZݨB`e[ău o~%Eɤmmm|ّ)Mbb KE̅EBOyGBpyS}mrHhSs Blqe3Mtظ@,,y""1;*-LXDѲك [\qYډf,ySN]pvGBD[ԯ L&l{u!mҊk_7=9[][/.i:PXqqq<2f0=hz(ڞ|Hl("=O:VjW:ߢ~\I:8RѨV{,`<yyO>w^N'|gWOFᙠ~BŸc#BZ2wq;$״讦rsVActԀSH 5p .V֖ ^h ΋&"i +A{u11+=xM!E kg 2cD?Iқg,}uiʓHQYHULsLx<'T:'u18A ]w81ҾP⪅j˜OIhW]tTnnzZ,W,T $ڪZ$P#9|b,2R&KOJIda~ԕ."mkIZi6?6YpGZ& ̾#u7W(\]$KYD d 3!LgC1beV0*Zyl@Wk0jNc?~dUQMᗩ ̈́.["T1Hm@{RzC8fBۿ/e?̞YJiD?M|yVDҚ)kTwp_D]j]*ZZr]~tkUZI]҉3292$/] ̊4ZHc3&", W'`f V)"yWG̚65ӮٓbrN](gasɶ-*u.0&/K*?­t,O"}e-dy ɛ9kLE"Qƈ_iYy#7QYBX t\[{n明:F2Zʐ\jꧫc.e +==>ɬn7-iq\_P!xp1_?~`NFi=<yl"\wѮo&'h+Ńvp&aܖwha{>87<;oi'6Dz8=/|,P7/ʷɇvz޾c!O|4Dc_V2o~ws+ߍ.L^or '?sQv< H5,wŵE;u0:Ѵ=}{.r"'{9㶕ӿFR^Od4ng"ʿxS>v?=:xs'{o^w|w e*tRcLBdZi:6snf{>!cWly0lAU^R+|~GEAf,)Hc\3-(H z(C]5A`1ָVFjB_mo"^S(J}KFz]5X}=Nos=s1n|1)p`HNu@70t kՋ*?㏗ˇiܜISREmt!<ؼK&Jxoj_>^^/uUnjP^b;`8-[ Dz믉 H&/}t"GLԟW $Ӈ#[hOm˖wa-mg֟aHW-ь endstream endobj 633 0 obj << /Producer (pdfTeX-1.40.20) /Author(Hadley Wickham; Max Kuhn; Davis Vaughan)/Title(generics: Common S3 Generics not Provided by Base R Methods Related to Model Fitting)/Subject()/Creator(LaTeX with hyperref)/Keywords() /CreationDate (D:20220705105213-04'00') /ModDate (D:20220705105213-04'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) kpathsea version 6.3.1) >> endobj 574 0 obj << /Type /ObjStm /N 95 /First 831 /Length 3118 /Filter /FlateDecode >> stream xڕM#}1W4 \:9>h5=5D,vS/"(brYibS$7]:Lli;e;Cg5'<15tJQGήЅzۅz}Eۊ,R1Ksc{,q[C<~ݝ |8y=/[h e>k*OόF )|ެwXLM}f{xX>e2wӝ~TMJS21WB emJaϬO,ؖn y].KN0ΏI¤>wi!NsQ\FJnS%PJE!M- 3^Ksof<% ^w_1Ҕ#ߥ8g= 8⯟ɫRe[bFaR@~r8NBTu$4v/1T"MLF)bӰa6+.7drf7"tfg|ᙜX'eh'YRs\LVÉ saLYC:)vͷka6QJK.岐,tr1 d Twb]/XblXƱT,1a}tβs~vw:Wx-JXU-_v51]e(FYίG=tԎ|HZS6K3z c:>;c}~ᑠ# S}<Ȓy{}.DB<<9|ZM^n×jS2^O> XEBAUx-\4̸ܰ I%cb6%UgL׹I΀$&]HIiDWj2X3g!L 9>ANU ]ֻ;Kަߌ2iz'ũ64Z Ħ-;Sj Q ;Vw^=AQ# KJF釃pm/f{?N8VBl!VWw Dzqb-h8z&4wwz}ugxgzg Z h3oFFV V$wa̚too@ڊi+e@ډǀak`@@IOAډ(bAډZ -[&qR-H˂4,H Id>@Kx Ş@aߥd[7w ؼH @ZjdQS eG/gA Ҳs :l ΣWDj $nyj O[rGЭ[[}jEXgB#ʼnE}о.w_ Y08*gA{aRrsPJ8$ZF\ZE-"ܤJqi EOŁťD` U@۝-kP9Q8hqۚ~yK7UN?9hЊ hЊRVJ<>J=J8AhEVt\hmZѫGPwl +EmAYD /XT_u 7&M7 S(nrM]7u*.7ZnXԣhZ %M͊ !z 㛟Uh>hzC3㧝>[k#Ɉ>9ңƣQw2Ԁrpo,!5&U|i&FքfNg$?? -SKAּM^~NH|+V7//gA_/A6 endstream endobj 634 0 obj << /Type /XRef /Index [0 635] /Size 635 /W [1 3 1] /Root 632 0 R /Info 633 0 R /ID [<731A84E1B047176E61E57F3AC2AB2EDC> <731A84E1B047176E61E57F3AC2AB2EDC>] /Length 1426 /Filter /FlateDecode >> stream x%;SVW>(* ]PQ.*IfҦ\E'Kf2&ҭq % Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testMultiMethod/R/0000755000176200001440000000000014257617767020435 5ustar liggesusersgenerics/tests/testthat/testMultiMethod/R/a.r0000644000176200001440000000070314257617767021040 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/testSameRd/0000755000176200001440000000000014257617767017154 5ustar liggesusersgenerics/tests/testthat/testSameRd/NAMESPACE0000644000176200001440000000005614257617767020374 0ustar liggesusers# Generated by roxygen2: do not edit by hand generics/tests/testthat/testSameRd/man/0000755000176200001440000000000014257617767017727 5ustar liggesusersgenerics/tests/testthat/testSameRd/man/same_rd_name.Rd0000644000176200001440000000044114257617767022627 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/testSameRd/man/same_rd_name-2.Rd0000644000176200001440000000057314257617767022774 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/DESCRIPTION0000644000176200001440000000033414257617767020662 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/R/0000755000176200001440000000000014257617767017355 5ustar liggesusersgenerics/tests/testthat/testSameRd/R/a.r0000644000176200001440000000067614257617767017771 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/test-docs.R0000644000176200001440000000242014257617767017127 0ustar liggesuserstest_that("generics methods can be reexported and extended", { local_load_all("testGenericsExtension") expect_snapshot(methods_rd("tidy")) }) test_that("multiple packages have multiple headers", { local_load_all("testMultiMethod") local_load_all("testMultiPackage") expect_snapshot(methods_rd("multi_method")) }) test_that("S4 bullets print with no issues", { local_load_all("testS4Docs") expect_snapshot(methods_rd("multi_method")) }) test_that("S4 and S3 packages can intermingle", { local_load_all("testS4Docs") local_load_all("testMultiMethod") expect_snapshot(methods_rd("multi_method")) }) test_that("multiple methods but same rdname are comma separated", { local_load_all("testSameRd") expect_snapshot(methods_rd("same_rd_name")) }) test_that("single method is correctly itemized", { local_load_all("testSingleMethod") expect_snapshot(methods_rd("single_method")) }) test_that("multiple methods are correctly itemized", { local_load_all("testMultiMethod") expect_snapshot(methods_rd("multi_method")) }) 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/testSingleMethod/0000755000176200001440000000000014257617767020363 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/NAMESPACE0000644000176200001440000000014414257617767021601 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(single_method,default) export(single_method) generics/tests/testthat/testSingleMethod/man/0000755000176200001440000000000014257617767021136 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/man/single-method-2.Rd0000644000176200001440000000042014257617767024317 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/testSingleMethod/man/single-method.Rd0000644000176200001440000000035614257617767024170 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/DESCRIPTION0000644000176200001440000000033714257617767022074 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/R/0000755000176200001440000000000014257617767020564 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/R/a.r0000644000176200001440000000043314257617767021167 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/testGenericsExtension/0000755000176200001440000000000014257617767021435 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/NAMESPACE0000644000176200001440000000016314257617767022654 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(tidy,special_method) export(tidy) importFrom(generics,tidy) generics/tests/testthat/testGenericsExtension/man/0000755000176200001440000000000014257617767022210 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/man/tidy-special.Rd0000644000176200001440000000041714257617767025070 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.Rd0000644000176200001440000000060414257617767024532 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/testGenericsExtension/DESCRIPTION0000644000176200001440000000037014257617767023143 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/R/0000755000176200001440000000000014257617767021636 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/R/a.r0000644000176200001440000000027414257617767022244 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/testMultiPackage/0000755000176200001440000000000014257617767020347 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/NAMESPACE0000644000176200001440000000005614257617767021567 0ustar liggesusers# Generated by roxygen2: do not edit by hand generics/tests/testthat/testMultiPackage/man/0000755000176200001440000000000014257617767021122 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/man/multi-method-4.Rd0000644000176200001440000000041414257617767024161 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/testMultiPackage/DESCRIPTION0000644000176200001440000000034214257617767022054 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/R/0000755000176200001440000000000014257617767020550 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/R/a.r0000644000176200001440000000017314257617767021154 0ustar liggesusers#' Test data frame #' #' @param x,y A parameter #' #' @rdname multi-method-4 multi_method.matrix <- function(x, y) { x } generics/tests/testthat/testS4Docs/0000755000176200001440000000000014257617767017100 5ustar liggesusersgenerics/tests/testthat/testS4Docs/NAMESPACE0000644000176200001440000000013714257617767020320 0ustar liggesusers# Generated by roxygen2: do not edit by hand export(multi_method) exportMethods(multi_method) generics/tests/testthat/testS4Docs/man/0000755000176200001440000000000014257617767017653 5ustar liggesusersgenerics/tests/testthat/testS4Docs/man/multi_method.Rd0000644000176200001440000000066214257617767022640 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/testS4Docs/DESCRIPTION0000644000176200001440000000033114257617767020603 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/R/0000755000176200001440000000000014257617767017301 5ustar liggesusersgenerics/tests/testthat/testS4Docs/R/a.r0000644000176200001440000000055214257617767017706 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/_snaps/0000755000176200001440000000000014257617767016364 5ustar liggesusersgenerics/tests/testthat/_snaps/docs.md0000644000176200001440000000510514257617767017637 0ustar liggesusers# generics methods can be reexported and extended Code methods_rd("tidy") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testGenericsExtension}\n\\itemize{\n\\item \\code{\\link[testGenericsExtension]{tidy-special}}: \\code{special_method}\n}" # multiple packages have multiple headers Code methods_rd("multi_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testMultiMethod}\n\\itemize{\n\\item \\code{\\link[testMultiMethod]{multi-method-2}}: \\code{default}\n\\item \\code{\\link[testMultiMethod]{multi-method-3}}: \\code{data.frame}\n}\n\\code{testMultiPackage}\n\\itemize{\n\\item \\code{\\link[testMultiPackage]{multi-method-4}}: \\code{matrix}\n}" # S4 bullets print with no issues Code methods_rd("multi_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testS4Docs}\n\\itemize{\n\\item \\code{\\link[testS4Docs]{multi_method}}: \\code{ANY,ANY}, \\code{numeric,ANY}, \\code{numeric,integer}\n}" # S4 and S3 packages can intermingle Code methods_rd("multi_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testMultiMethod}\n\\itemize{\n\\item \\code{\\link[testMultiMethod]{multi-method-2}}: \\code{default}\n\\item \\code{\\link[testMultiMethod]{multi-method-3}}: \\code{data.frame}\n}\n\\code{testS4Docs}\n\\itemize{\n\\item \\code{\\link[testS4Docs]{multi_method}}: \\code{ANY,ANY}, \\code{numeric,ANY}, \\code{numeric,integer}\n}" # multiple methods but same rdname are comma separated Code methods_rd("same_rd_name") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testSameRd}\n\\itemize{\n\\item \\code{\\link[testSameRd]{same_rd_name-2}}: \\code{data.frame}, \\code{default}\n}" # single method is correctly itemized Code methods_rd("single_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testSingleMethod}\n\\itemize{\n\\item \\code{\\link[testSingleMethod]{single-method-2}}: \\code{default}\n}" # multiple methods are correctly itemized Code methods_rd("multi_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testMultiMethod}\n\\itemize{\n\\item \\code{\\link[testMultiMethod]{multi-method-2}}: \\code{default}\n\\item \\code{\\link[testMultiMethod]{multi-method-3}}: \\code{data.frame}\n}" generics/tests/testthat.R0000644000176200001440000000007414257617767015225 0ustar liggesuserslibrary(testthat) library(generics) test_check("generics") generics/R/0000755000176200001440000000000014261037623012256 5ustar liggesusersgenerics/R/compile.R0000644000176200001440000000053314257617767014054 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/equation.R0000644000176200001440000000063214257617767014251 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/generate.R0000644000176200001440000000042114257617767014212 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/utils.R0000644000176200001440000000022614257617767013563 0ustar liggesuserslocal_load_all <- function(path, env = parent.frame()) { pkgload::load_all(path, quiet = TRUE) withr::defer(pkgload::unload(path), envir = env) } generics/R/interpolate.R0000644000176200001440000000110414257617767014745 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/visualize.R0000644000176200001440000000045114257617767014436 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/glance.R0000644000176200001440000000077414257617767013664 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/components.R0000644000176200001440000000123614257617767014612 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/tidy.R0000644000176200001440000000060614257617767013376 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/sets.R0000644000176200001440000000425714257617767013411 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/min_grid.R0000644000176200001440000000127414257617767014217 0ustar liggesusers#' Determine the minimum set of model fits #' #' `min_grid()` determines exactly what models should be fit in order to #' evaluate the entire set of tuning parameter combinations. This is for #' internal use only and the API may change in the near future. #' @param x A model specification. #' @param grid A tibble with tuning parameter combinations. #' @param ... Not currently used. #' @return A tibble with the minimum tuning parameters to fit and an additional #' list column with the parameter combinations used for prediction. #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("min_grid")} #' @export min_grid <- function(x, grid, ...) { UseMethod("min_grid") } generics/R/refit.R0000644000176200001440000000042014257617767013530 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/R/explain.R0000644000176200001440000000046514261037462014047 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")} #' #' @export explain <- function(x, ...) { UseMethod("explain") } generics/R/rank_results.R0000644000176200001440000000066314261037462015123 0ustar liggesusers#' Compute relative rankings of a collection of objects #' #' `rank_results()` computes relative ranks of a collection of objects and #' returns a summary of the results. #' #' @param x A collection of objects #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("rank_results")} #' #' @export rank_results <- function(x, ...) { UseMethod("rank_results") } generics/R/varying_args.R0000644000176200001440000000040414257617767015114 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/fit.R0000644000176200001440000000042414257617767013205 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/train.R0000644000176200001440000000055614257617767013546 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/calculate.R0000644000176200001440000000041114257617767014354 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/augment.R0000644000176200001440000000065314257617767014067 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/evaluate.R0000644000176200001440000000045714261037462014216 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")} #' #' @export evaluate <- function(x, ...) { UseMethod("evaluate") } generics/R/coercion.R0000644000176200001440000000474414257617767014235 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/var_imp.R0000644000176200001440000000056614261037462014046 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")} #' #' @export var_imp <- function(object, ...) { UseMethod("var_imp") } generics/R/fit_xy.R0000644000176200001440000000053714257617767013732 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/forecast.R0000644000176200001440000000060214261037462014206 0ustar liggesusers#' Forecasting from an object #' #' The functions allow producing forecasts based on the provided object. #' #' @param object A model for which forecasts are required. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("forecast")} #' #' @export forecast <- function(object, ...) { UseMethod("forecast") } generics/R/generics-package.R0000644000176200001440000000200114261037462015563 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" ## usethis namespace: start ## usethis namespace: end NULL generics/R/explore.R0000644000176200001440000000110514257617767014076 0ustar liggesusers#' Create an interactive visualization appropriate to a particular object type #' #' `explore()` invokes a function that starts an interactive, pre-defined widget #' (e.g. `plotly` visualization, `shiny` app, etc.) to investigate the results. #' #' @param x A object #' @param ... Other arguments passed to methods #' #' @return `NULL` (invisibly) or some other data type (e.g. tibble) depending on #' the application. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("explore")} #' #' @export explore <- function(x, ...) { UseMethod("explore") } generics/R/specify.R0000644000176200001440000000042714257617767014070 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/tunable.R0000644000176200001440000000275314261037623014042 0ustar liggesusers#' Declare tunable parameters #' #' Returns information on potential hyper-parameters that can be optimized. #' #' @param x An object, such as a recipe, recipe step, workflow, or model #' specification. #' @param ... Other arguments passed to methods #' #'@return A tibble with a column for the parameter `name`, information on the #' _default_ method for generating a corresponding parameter object, the #' `source` of the parameter (e.g. "recipe", etc.), and the `component` within #' the source. For the `component` column, a little more specificity is given #' about the location of the parameter (e.g. "step_normalize" for recipes or #' "boost_tree" for models). The `component_id` column contains the unique step #' `id` field or, for models, a logical for whether the model specification #' argument was a main parameter or one associated with the engine. #' @details #' For a model specification, an engine must be chosen. #' #' If the object has no tunable parameters, a tibble with no rows is returned. #' #' The information about the default parameter object takes the form of a #' named list with an element for the function call and an optional element for #' the source of the function (e.g. the `dials` package). For model #' specifications, If the parameter is unknown to the underlying `tunable` #' method, a `NULL` is returned. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("tunable")} #' #' @export tunable <- function(x, ...) { UseMethod("tunable") } generics/R/prune.R0000644000176200001440000000042214257617767013552 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/hypothesize.R0000644000176200001440000000042214257617767014774 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/docs.R0000644000176200001440000000712014257617767013353 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 # 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/learn.R0000644000176200001440000000055614261037462013511 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")} #' #' @export learn <- function(x, ...) { UseMethod("learn") } generics/R/accuracy.R0000644000176200001440000000057314261037462014201 0ustar liggesusers#' Accuracy measures for a model #' #' Returns range of summary measures of the forecast accuracy. #' #' @param object A model for which forecasts are required. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("accuracy")} #' #' @export accuracy <- function(object, ...) { UseMethod("accuracy") } generics/R/required_pkgs.R0000644000176200001440000000053714257617767015274 0ustar liggesusers#' Determine packages required by objects #' #' @param x An object. #' @param ... Other arguments passed to methods #' @return A character string of packages that are required. #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("required_pkgs")} #' @export required_pkgs <- function(x, ...) { UseMethod("required_pkgs") } generics/R/tune_args.R0000644000176200001440000000213614261037767014403 0ustar liggesusers#' Determine arguments tagged for tuning #' #' `tune_args()` takes an object such as a model specification or a recipe and #' returns a tibble of information on all possible tunable arguments and #' whether or not they are actually tunable. #' #' @param object A `model_spec`, `recipe`, `workflow`, or other object. #' @param ... Other arguments passed to methods. #' #' @details #' The `source` column is determined differently for a #' `model_spec` or a `recipe` (with additional detail on the type). #' #' The `id` field has any identifier that was passed from `tune::tune()` (e.g. #' `tune("some note")`). If no additional detail was used in that function, #' the `id` field reverts to the name of the parameters. #' #' @return A tibble with columns for the parameter name (`name`), whether it #' contains _any_ tunable value (`tune`), the `id` for the parameter (`id`), #' and the information on where the parameter was located (`source`). #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("tune_args")} #' #' @export tune_args <- function(object, ...) { UseMethod("tune_args") } generics/R/estfun.R0000644000176200001440000000045414257617767013732 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/NEWS.md0000644000176200001440000000071214261047121013145 0ustar liggesusers# generics 0.1.3 * New `rank_results()` generic. # generics 0.1.2 * New `forecast()` and `accuracy()` generics. # generics 0.1.1 * New `tune_args()` generic. # generics 0.1.0 * Maintainer changed to Hadley Wickham. * Re-licensed with MIT license. * New `min_grid()`, `required_pkgs()`, and `tunable()` generics. # `generics` 0.0.2 * Removed the `data` argument to `augment` to resolve issues with `broom`. # `generics` 0.0.1 First CRAN version generics/MD50000644000176200001440000001403314261111622012356 0ustar liggesusers35d4773a1dc50919a8d929c44a6ae8be *DESCRIPTION 5174dfc514f0941d2edd4b0b4c9941dd *LICENSE 5f15a4d23f40642b7925575497b3141c *NAMESPACE cbaafba5a3f91c6159e99933bea6ddb3 *NEWS.md 21bedfd0c934feef3a81c82ce5abeead *R/accuracy.R a1bd47ef344ca3b8c8e16bfbd0fa120e *R/augment.R 1ec5c5e1d2f1f73ff275fd1091a20b3e *R/calculate.R 775f146887bd51d40b8c57dcc03a57c5 *R/coercion.R 5257de8b9a5dcf09e45aaa0ae70ab9bf *R/compile.R c5265a01d3e9cb31052efff4d3839064 *R/components.R 0664f10163e7b26b76bfff3bed125646 *R/docs.R 8dd18dc4efae761ba046da933443caea *R/equation.R 4fe6ca98c96c3066b004473e897c15ff *R/estfun.R d3dce08568db87b84dd67c52a9251d55 *R/evaluate.R 7bba594189e5381735f51447881876fd *R/explain.R 80dd5a29986e7b75ddd1e7d533fddb75 *R/explore.R bb7d63cdce04e8b7fdeb1cabd3d093e3 *R/fit.R 77aed72c740584b38ef42c2d07b1d733 *R/fit_xy.R 04d829fd0a275e8e45874cd546ed67c9 *R/forecast.R 3e92c1d331a30fc064a8185ad352c484 *R/generate.R ff0b74bedf4aa2bf028f4476fce17adc *R/generics-package.R 681857b0281027823af5e7ea15110330 *R/glance.R da90990e27342ce15a6806d3d0905082 *R/hypothesize.R eedc6ed8f894f7e569a0133b55fcbb68 *R/interpolate.R 19cdb999be6c773c401efafcfa356c53 *R/learn.R c25a35502ed985eebe44f3afad997893 *R/min_grid.R 033d195099df7924af3b759e5f34f332 *R/prune.R 8aeafbdc97b3a724d000eaaf127d8e88 *R/rank_results.R 32d94e7a205c33d20aab3dcdd879e88b *R/refit.R e2aeb4f6e986a2c680fa56f888305379 *R/required_pkgs.R 7bcb1db05f0ecf23dca2aa6d5ff385ae *R/sets.R 1ef466ed87482aeb8e2a5c79d4b881c7 *R/specify.R 308fea1188c72f14b7f877ade546c09c *R/tidy.R 11c48f1eea847f278a4d3a868ae0dc11 *R/train.R 9179c6776dc902f6de15c5606022f1bb *R/tunable.R 995fb482b56cf7161f068a2172ee6930 *R/tune_args.R 175e5a10e67af5b9877f058ecc5de658 *R/utils.R 4c56b30b94c818f1ee28048e03d0293f *R/var_imp.R cf7ec6cf9623759597133947bda96adc *R/varying_args.R 6b47983c74b128cabf453745e4c39779 *R/visualize.R fc512e7b6e4363bc9d3141597f5190c2 *README.md a25a31643b19749316dea1803b676d12 *build/generics.pdf f23520f8c25f2f821dd159427a1442ce *man/accuracy.Rd 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 03ef38ae2db6122358702973b8ed9b29 *man/explore.Rd 1f2773e5f0794259365b7961944a5102 *man/fit.Rd 04942f4c5a5e0a82c3277d2aaf9b9bfb *man/fit_xy.Rd 2ebb46ff1c203ee4a200eeff35d6f464 *man/forecast.Rd b92626134335db76c2d30c4a57394cab *man/generate.Rd 077d5c26170902bd6bb73f3c8938d5fe *man/generics-package.Rd 09d54ee897ea912b31a9dd4266d1ea1d *man/glance.Rd cf4879ac57cf58bf6645291b80ca2fa7 *man/hypothesize.Rd 3d7f18e74b7478ff2f64d5932f92dbbc *man/interpolate.Rd ddf1c70bd453d5f21d57da88ccd36d41 *man/learn.Rd 246ddc29a5d96465428df18a4a91dfee *man/min_grid.Rd bb0bebb75f24031c553309c68b0f982d *man/prune.Rd f7293756d9a1c157b6fb8b38cc129503 *man/rank_results.Rd 90fd18460d2f637ab17d18e03672e550 *man/refit.Rd 6015d0ab63dba841c36e9f0806f24dc6 *man/required_pkgs.Rd c66c4107f6fb877b4e500ecf92f3c381 *man/setops.Rd d87bc36ec4adcf4fe6e368aff5247647 *man/specify.Rd 346fe4de2ab6f2715e499253fb790a6d *man/tidy.Rd aa3497002c683594476b2c3e9adf68d6 *man/train.Rd 3edda1395f190faaf82a8b2d821b82e7 *man/tunable.Rd 5b5ff4dcaf9df8ddbceff5a7873057d8 *man/tune_args.Rd 8f3b62d34cd522e2a7a0e966834ad257 *man/var_imp.Rd 4c918d2bc5a75c124201f8bf07fa77ac *man/varying_args.Rd 3c0925e7779785f7d71c85d98fd76208 *man/visualize.Rd 10e57227abf625e9bd94bb01a28d18bf *tests/testthat.R a7ec69411ed35025f1c7318b82e1cd70 *tests/testthat/_snaps/docs.md 56c5e6507d27c1ad25637475b4e8f896 *tests/testthat/test-docs.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 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 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 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 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 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