vegan/0000755000175100001440000000000012601255747011401 5ustar hornikusersvegan/inst/0000755000175100001440000000000012600724106012343 5ustar hornikusersvegan/inst/NEWS.Rd0000644000175100001440000016023312600724160013413 0ustar hornikusers\name{NEWS} \title{vegan News} \encoding{UTF-8} \section{Changes in version 2.3-1}{ \subsection{BUG FIXES}{ \itemize{ \item Permutation tests did not always correctly recognize ties with the observed statistic and this could result in too low \eqn{P}-values. This would happen in particular when all predictor variables were factors (classes). The changes concern functions \code{adonis}, \code{anosim}, \code{anova} and \code{permutest} functions for \code{cca}, \code{rda} and \code{capscale}, \code{permutest} for \code{betadisper}, \code{envfit}, \code{mantel} and \code{mantel.partial}, \code{mrpp}, \code{mso}, \code{oecosimu}, \code{ordiareatest}, \code{protest} and \code{simper}. This also fixes issues \href{https://github.com/vegandevs/vegan/issues/120}{#120} and \href{https://github.com/vegandevs/vegan/issues/132}{#132} in GitHub. \item Automated model building in constrained ordination (\code{cca}, \code{rda}, \code{capscale}) with \code{step}, \code{ordistep} and \code{ordiR2step} could fail if there were aliased candidate variables, or constraints that were completely explained by other variables already in the model. This was a regression introduced in \pkg{vegan} 2.2-0. \item Constrained ordination methods \code{cca}, \code{rda} and \code{capscale} treat character variables as factors in analysis, but did not return their centroids for plotting. \item Recovery of original data in \code{metaMDS} when computing WA scores for species would fail if the expression supplied to argument \code{comm} was long & got deparsed to multiple strings. \code{metaMDSdist} now returns the (possibly modified) data frame of community data \code{comm} as attribute \code{"comm"} of the returned \code{dist} object. \code{metaMDS} now uses this to compute the WA species scores for the NMDS. In addition, the deparsed expression for \code{comm} is now robust to long expressions. Reported by Richard Telford. \item \code{metaMDS} and \code{monoMDS} rejected dissimilarities with missing values. \item Function \code{rarecurve} did not check its input and this could cause confusing error messages. Now function checks that input data are integers that can be interpreted as counts on individuals and all sampling units have some species. Unchecked bad inputs were the reason for problems reported in \href{http://stackoverflow.com/questions/30856909/error-while-using-rarecurve-in-r}{Stackoverflow}. } } % bug fixes \subsection{NEW FEATURES AND FUNCTIONS}{ \itemize{ \item Scaling of ordination axes in \code{cca}, \code{rda} and \code{capscale} can now be expressed with descriptive strings \code{"none"}, \code{"sites"}, \code{"species"} or \code{"symmetric"} to tell which kind of scores should be scaled by eigenvalues. These can be further modified with arguments \code{hill} in \code{cca} and \code{correlation} in \code{rda}. The old numeric scaling can still be used. \item The permutation data can be extracted from \code{anova} results of constrained ordination (\code{cca}, \code{rda}, \code{capscale}) and further analysed with \code{permustats} function. \item New data set \code{BCI.env} of site information for the Barro Colorado Island tree community data. Most useful variables are the UTM coordinates of sample plots. Other variables are constant or nearly constant and of little use in normal analysis. } } % new features and functions } \section{Changes in version 2.3-0}{ \subsection{BUG FIXES}{ \itemize{ \item Constrained ordination functions \code{cca}, \code{rda} and \code{capscale} are now more robust. Scoping of data set names and variable names is much improved. This should fix numerous long-standing problems, for instance those reported by Benedicte Bachelot (in email) and Richard Telford (in Twitter), as well as issues \href{https://github.com/vegandevs/vegan/issues/16}{#16} and \href{https://github.com/vegandevs/vegan/issues/100}{#100} in GitHub. \item Ordination functions \code{cca} and \code{rda} silently accepted dissimilarities as input although their analysis makes no sense with these methods. Dissimilarities should be analysed with distance-based redundancy analysis (\code{capscale}). \item The variance of the conditional component was over-estimated in \code{goodness} of \code{rda} results, and results were wrong for partial RDA. The problems were reported in an \href{https://stat.ethz.ch/pipermail/r-sig-ecology/2015-March/004936.html}{R-sig-ecology} message by Christoph von Redwitz. } } % bug fixes \subsection{WINDOWS}{ \itemize{ \item \code{orditkplot} did not add file type identifier to saved graphics in Windows although that is required. The problem only concerned Windows OS. } } % windows \subsection{NEW FEATURES AND FUNCTIONS}{ \itemize{ \item \code{goodness} function for constrained ordination (\code{cca}, \code{rda}, \code{capscale}) was redesigned. Function gained argument \code{addprevious} to add the variation explained by previous ordination components to axes when \code{statistic = "explained"}. With this option, \code{model = "CCA"} will include the variation explained by partialled-out conditions, and \code{model = "CA"} will include the accumulated variation explained by conditions and constraints. The former behaviour was \code{addprevious = TRUE} for \code{model = "CCA"}, and \code{addprevious = FALSE} for \code{model = "CA"}. The argument will have no effect when \code{statistic = "distance"}, but this will always show the residual distance after all previous components. Formerly it displayed the residual distance only for the currently analysed model. \item Functions \code{ordiArrowMul} and \code{ordiArrowTextXY} are exported and can be used in normal interactive sessions. These functions are used to scale a bunch arrows to fit ordination graphics, and formerly they were internal functions used within other \pkg{vegan} functions. \item \code{orditkplot} can export graphics in SVG format. SVG is a vector graphics format which can be edited with several external programs, such as Illustrator and Inkscape. \item Rarefaction curve (\code{rarecurve}) and species accumulation models (\code{specaccum}, \code{fitspecaccum}) gained new functions to estimate the slope of curve at given location. Originally this was based on a response to an \href{https://stat.ethz.ch/pipermail/r-sig-ecology/2015-May/005038.html}{R-SIG-ecology} query. For rarefaction curves, the function is \code{rareslope}, and for species accumulation models it is \code{specslope}. The functions are based on analytic equations, and can also be evaluated at interpolated non-integer values. In \code{specaccum} models the functions can be only evaluated for analytic models \code{"exact"}, \code{"rarefaction"} and \code{"coleman"}. With \code{"random"} and \code{"collector"} methods you can only use finite differences (\code{diff(fitted())}). Analytic functions for slope are used for all non-linear regression models known to \code{fitspecaccum}. \item Species accumulation models (\code{specaccum}) and non-liner regression models for species accumulation (\code{fitspecaccum}) work more consistently with weights. In all cases, the models are defined using the number of sites as independent variable, which with weights means that observations can be non-integer numbers of virtual sites. The \code{predict} models also use the number of sites with \code{newdata}, and for analytic models they can estimate the expected values for non-integer number of sites, and for non-analytic randomized or collector models they can interpolate on non-integer values. \item \code{fitspecaccum} gained support functions \code{AIC} and \code{deviance}. \item The \code{varpart} plots of four-component models were redesigned following Legendre, Borcard & Roberts \emph{Ecology} 93, 1234--1240 (2012), and they use now four ellipses instead of three circles and two rectangles. The components are now labelled in plots, and the circles and ellipses can be easily filled with transparent background colour. } } % new features } % v2.2-2 \section{Changes in version 2.2-1}{ \subsection{GENERAL}{ \itemize{ \item This is a maintenance release to avoid warning messages caused by changes in CRAN repository. The namespace usage is also more stringent to avoid warnings and notes in development versions of \R. } }% end general \subsection{INSTALLATION}{ \itemize{ \item \pkg{vegan} can be installed and loaded without \pkg{tcltk} package. The \pkg{tcltk} package is needed in \code{orditkplot} function for interactive editing of ordination graphics. } } % installation \subsection{BUG FIXES}{ \itemize{ \item \code{ordisurf} failed if \pkg{gam} package was loaded due to namespace issues: some support functions of \pkg{gam} were used instead of \pkg{mgcv} functions. \item \code{tolerance} function failed for unconstrained correspondence analysis. } } % bug fixes \subsection{NEW FEATURES}{ \itemize{ \item \code{estimateR} uses a more exact variance formula for bias-corrected Chao estimate of extrapolated number of species. The new formula may be unpublished, but it was derived following the guidelines of Chiu, Wang, Walther & Chao, \emph{Biometrics} 70, 671--682 (2014), \href{http://onlinelibrary.wiley.com/doi/10.1111/biom.12200/suppinfo}{online supplementary material}. \item Diversity accumulation functions \code{specaccum}, \code{renyiaccum}, \code{tsallisaccum}, \code{poolaccum} and \code{estaccumR} use now \pkg{permute} package for permutations of the order of sampling sites. Normally these functions only need simple random permutation of sites, but restricted permutation of the \pkg{permute} package and user-supplied permutation matrices can be used. \item \code{estaccumR} function can use parallel processing. \item \code{linestack} accepts now expressions as labels. This allows using mathematical symbols and formula given as mathematical expressions. } } % new features } % v2.2-1 \section{Changes in version 2.2-0}{ \subsection{GENERAL}{ \itemize{ \item Several \pkg{vegan} functions can now use parallel processing for slow and repeating calculations. All these functions have argument \code{parallel}. The argument can be an integer giving the number of parallel processes. In unix-alikes (Mac OS, Linux) this will launch \code{"multicore"} processing and in Windows it will set up \code{"snow"} clusters as desribed in the documentation of the \pkg{parallel} package. If \code{option} \code{"mc.cores"} is set to an integer > 1, this will be used to automatically start parallel processing. Finally, the argument can also be a previously set up \code{"snow"} cluster which will be used both in Windows and in unix-alikes. \pkg{Vegan} vignette on Design decision explains the implementation (use \code{vegandocs("decission")}, and \pkg{parallel} package has more extensive documentation on parallel processing in \R. The following function use parallel processing in analysing permutation statistics: \code{adonis}, \code{anosim}, \code{anova.cca} (and \code{permutest.cca}), \code{mantel} (and \code{mantel.partial}), \code{mrpp}, \code{ordiareatest}, \code{permutest.betadisper} and \code{simper}. In addition, \code{bioenv} can compare several candidate sets of models in paralle, \code{metaMDS} can launch several random starts in parallel, and \code{oecosimu} can evaluate test statistics for several null models in parallel. \item All permutation tests are based on the \pkg{permute} package which offers strong tools for restricted permutation. All these functions have argument \code{permutations}. The default usage of simple non-restricted permutations is achieved by giving a single integer number. Restricted permutations can be defined using the \code{how} function of the \pkg{permute} package. Finally, the argument can be a permutation matrix where rows define permutations. It is possible to use external or user constructed permutations. See \code{help(permutations)} for a brief introduction on permutations in \pkg{vegan}, and \pkg{permute} package for the full documention. The vignette of the \pkg{permute} package can be read from \pkg{vegan} with command \code{vegandocs("permutations")}. The following functions use the \pkg{permute} package: \code{CCorA}, \code{adonis}, \code{anosim}, \code{anova.cca} (plus associated \code{permutest.cca}, \code{add1.cca}, \code{drop1.cca}, \code{ordistep}, \code{ordiR2step}), \code{envfit} (plus associated \code{factorfit} and \code{vectorfit}), \code{mantel} (and \code{mantel.partial}), \code{mrpp}, \code{mso}, \code{ordiareatest}, \code{permutest.betadisper}, \code{protest} and \code{simper}. \item Community null model generation has been completely redesigned and rewritten. The communities are constructed with new \code{nullmodel} function and defined in a low level \code{commsim} function. The actual null models are generated with a \code{simulate} function that builds an array of null models. The new null models include a wide array of quantitative models in addition to the old binary models, and users can plug in their own generating functions. The basic tool invoking and analysing null models is \code{oecosimu}. The null models are often used only for the analysis of nestedness, but the implementation in \code{oecosimu} allows analysing any statistic, and null models are better seen as an alternative to permutation tests. } %end itemize } % end general \subsection{INSTALLATION}{ \itemize{ \item \pkg{vegan} package dependencies and namespace imports were adapted to changes in \R, and no more trigger warnings and notes in package tests. \item Three-dimensional ordination graphics using \pkg{scatterplot3d} for static plots and \pkg{rgl} for dynamic plots were removed from \pkg{vegan} and moved to a companion package \pkg{vegan3d}. The package is available in CRAN. } %end itemize } % end installation \subsection{NEW FUNCTIONS}{ \itemize{ \item Function \code{dispweight} implements dispersion weighting of Clarke et al. (\emph{Marine Ecology Progress Series}, 320, 11--27). In addition, we implemented a new method for generalized dispersion weighting \code{gdispweight}. Both methods downweight species that are significantly over-dispersed. \item New \code{hclust} support functions \code{reorder}, \code{rev} and \code{scores}. Functions \code{reorder} and \code{rev} are similar as these functions for \code{dendrogram} objects in base \R. However, \code{reorder} can use (and defaults to) weighted mean. In weighted mean the node average is always the mean of member leaves, whereas the \code{dendrogram} uses always unweighted means of joined branches. \item Function \code{ordiareatest} supplements \code{ordihull} and \code{ordiellipse} and provides a randomization test for the one-sided alternative hypothesis that convex hulls or ellipses in two-dimensional ordination space have smaller areas than with randomized groups. \item Function \code{permustats} extracts and inspects permutation results with support functions \code{summary}, \code{density}, \code{densityplot}, \code{qqnorm} and \code{qqmath}. The \code{density} and \code{qqnorm} are standard \R{} tools that only work with one statistic, and \code{densityplot} and \code{qqmath} are \pkg{lattice} graphics that work with univariate and multivariate statistics. The results of following functions can be extracted: \code{anosim}, \code{adonis}, \code{mantel} (and \code{mantel.partial}), \code{mrpp}, \code{oecosimu}, \code{permustest.cca} (but not the corresponding \code{anova} methods), \code{permutest.betadisper}, and \code{protest}. \item \code{stressplot} functions display the ordination distances at given number of dimensions against original distances. The method functins are similar to \code{stressplot} for \code{metaMDS}, and always use the inherent distances of each ordination method. The functions are available for the results \code{capscale}, \code{cca}, \code{princomp}, \code{prcomp}, \code{rda}, and \code{wcmdscale}. } % end itemize } % end new functions \subsection{BUG FIXES}{ \itemize{ \item \code{cascadeKM} of only one group will be \code{NA} instead of a random value. \item \code{ordiellipse} can handle points exactly on a line, including only two points (with a warning). \item plotting \code{radfit} results for several species failed if any of the communities had no species or had only one species. \item \code{RsquareAdj} for \code{capscale} with negative eigenvalues will now report \code{NA} instead of using biased method of \code{rda} results. \item \code{simper} failed when a group had only a single member. }% end itemize } % end bug fixes \subsection{NEW FEATURES}{ \itemize{ \item \code{anova.cca} functions were re-written to use the \pkg{permute} package. Old results may not be exactly reproduced, and models with missing data may fail in several cases. There is a new option of analysing a sequence of models against each other. \item \code{simulate} functions for \code{cca} and \code{rda} can return several simulations in a \code{nullmodel} compatible object. The functions can produce simulations with correlated errors (also for \code{capscale}) in parametric simulation with Gaussian error. \item \code{bioenv} can use Manhattan, Gower and Mahalanobis distances in addition to the default Euclidean. New helper function \code{bioenvdist} can extract the dissimilarities applied in best model or any other model. \item \code{metaMDS(..., trace = 2)} will show convergence information with the default \code{monoMDS} engine. \item Function \code{MDSrotate} can rotate a \eqn{k}-dimensional ordination to \eqn{k-1} variables. When these variables are correlated (like usually is the case), the vectors can also be correlated to previously rotated dimensions, but will be uncorrelated to all later ones. \item \pkg{vegan} 2.0-10 changed the weighted \code{nestednodf} so that weighted analysis of binary data was equivalent to binary analysis. However, this broke the equivalence to the original method. Now the function has an argument \code{wbinary} to select the method of analysis. The problem was reported and a fix submitted by Vanderlei Debastiani (Universidade Federal do Rio Grande do Sul, Brasil). \item \code{ordiellipse}, \code{ordihull} and \code{ordiellipse} can handle missing values in \code{groups}. \item \code{ordispider} can now use spatial medians instead of means. \item \code{rankindex} can use Manhattan, Gower and Mahalanobis distance in addition to the default Euclidean. \item User can set colours and line types in function \code{rarecurve} for plotting rarefaction curves. \item \code{spantree} gained a support function \code{as.hclust} to change the minimum spanning tree into an \code{hclust} tree. \item \code{fitspecaccum} can do weighted analysis. Gained \code{lines} method. \item Functions for extrapolated number of species or for the size of species pool using Chao method were modified following Chiu et al., \emph{Biometrics} 70, 671--682 (2014). Incidence based \code{specpool} can now use (and defaults to) small sample correction with number of sites as the sample size. Function uses basic Chao extrapolation based on the ratio of singletons and doubletons, but switches now to bias corrected Chao extrapolation if there are no doubletons (species found twice). The variance formula for bias corrected Chao was derived following the supporting \href{http://onlinelibrary.wiley.com/doi/10.1111/biom.12200/suppinfo}{online material} and differs slightly from Chiu et al. (2014). The \code{poolaccum} function was changed similarly, but the small sample correction is used always. The abundance based \code{estimateR} uses bias corrected Chao extrapolation, but earlier it estimated its variance with classic Chao model. Now we use the widespread \href{http://viceroy.eeb.uconn.edu/EstimateS/EstimateSPages/EstSUsersGuide/EstimateSUsersGuide.htm#AppendixB}{approximate equation} for variance. With these changes these functions are more similar to \href{http://viceroy.eeb.uconn.edu/EstimateS/EstimateSPages/EstSUsersGuide/EstimateSUsersGuide.htm#AppendixB}{EstimateS}. \item \code{tabasco} uses now \code{reorder.hclust} for \code{hclust} object for better ordering than previously when it cast trees to \code{dendrogram} objects. \item \code{treedive} and \code{treedist} default now to \code{match.force = TRUE} and can be silenced with \code{verbose = FALSE}. \item \code{vegdist} gained Mahalanobis distance. \item Nomenclature updated in plant community data with the help of \pkg{Taxonstand} and \pkg{taxize} packages. The taxonomy of the \code{dune} data was adapted to the same sources and APG III. \code{varespec} and \code{dune} use 8-character names (4 from genus + 4 from species epithet). New data set on phylogenetic distances for \code{dune} was extracted from Zanne et al. (\emph{Nature} 506, 89--92; 2014). \item User configurable plots for \code{rarecurve}. } %end itemize } % end new featuresq \subsection{DEPRECATED AND DEFUNCT}{ \itemize{ \item \code{strata} are deprecated in permutations. It is still accepted but will be phased out in next releases. Use \code{how} of \pkg{permute} package. \item \code{cca}, \code{rda} and \code{capscale} do not return scores scaled by eigenvalues: use \code{scores} function to extract scaled results. \item \code{commsimulator} is deprecated. Replace \code{commsimulator(x, method)} with \code{simulate(nullmodel(x, method))}. \item \code{density} and \code{densityplot} for permutation results are deprecated: use \code{permustats} with its \code{density} and \code{densityplot} method. } %end itemize } % end deprecated } % end version 2.2-0 \section{Changes in version 2.0-10}{ \subsection{GENERAL}{ \itemize{ \item This version is adapted to the changes in \pkg{permute} package version 0.8-0 and no more triggers NOTEs in package checks. This release may be the last of the 2.0 series, and the next \pkg{vegan} release is scheduled to be a major release with newly designed \code{oecosimu} and community pattern simulation, support for parallel processing, and full support of the \pkg{permute} package. If you are interested in these developments, you may try the development versions of \pkg{vegan} in \href{http://r-forge.r-project.org/projects/vegan/}{R-Forge} or \href{https://github.com/jarioksa/vegan}{GitHub} and report the problems and user experience to us. } } % end general \subsection{BUG FIXES}{ \itemize{ \item \code{envfit} function assumed that all external variables were either numeric or factors, and failed if they were, say, character strings. Now only numeric variables are taken as continuous vectors, and all other variables (character strings, logical) are coerced to factors if possible. The function also should work with degenerate data, like only one level of a factor or a constant value of a continuous environmental variable. The ties were wrongly in assessing permutation \eqn{P}-values in \code{vectorfit}. \item \code{nestednodf} with quantitative data was not consistent with binary models, and the fill was wrongly calculated with quantitative data. \item \code{oecosimu} now correctly adapts displayed quantiles of simulated values to the \code{alternative} test direction. \item \code{renyiaccum} plotting failed if only one level of diversity \code{scale} was used. } } % bug fixes \subsection{NEW FEATURES}{ \itemize{ \item The Kempton and Taylor algorithm was found unreliable in \code{fisherfit} and \code{fisher.alpha}, and now the estimation of Fisher \eqn{\alpha}{alpha} is only based on the number of species and the number of individuals. The estimation of standard errors and profile confidence intervals also had to be scrapped. \item \code{renyiaccum}, \code{specaccum} and \code{tsallisaccum} functions gained \code{subset} argument. \item \code{renyiaccum} can now add a \code{collector} curve to to the analysis. The collector curve is the diversity accumulation in the order of the sampling units. With an interesting ordering or sampling units this allows comparing actual species accumulations with the expected randomized accumulation. \item \code{specaccum} can now perform weighted accumulation using the sampling effort as weights. } } % new features } % end 2.0-10 \section{Changes in version 2.0-9}{ \itemize{ \item This version is released due to changes in programming interface and testing procedures in \R{} 3.0.2. If you are using an older version of \R, there is no need to upgrade \pkg{vegan}. There are no new features nor bug fixes. The only user-visible changes are in documentation and in output messages and formatting. Because of \R{} changes, this version is dependent on \R{} version 2.14.0 or newer and on \pkg{lattice} package. } } \section{Changes in version 2.0-8}{ \subsection{GENERAL}{ \itemize{ \item This is a maintenance release that fixes some issues raised by changed in \R{} toolset for processing vignettes. In the same we also fix some typographic issues in the vignettes. } } % general \subsection{NEW FEATURES}{ \itemize{ \item \code{ordisurf} gained new arguments for more flexible definition of fitted models to better utilize the \pkg{mgcv}\code{::gam} function. The linewidth of contours can now be set with the argument \code{lwd}. \item Labels to arrows are positioned in a better way in \code{plot} functions for the results of \code{envfit}, \code{cca}, \code{rda} and \code{capscale}. The labels should no longer overlap the arrow tips. \item The setting test direction is clearer in \code{oecosimu}. \item \code{ordipointlabel} gained a \code{plot} method that can be used to replot the saved result. } } % new features } \section{Changes in version 2.0-7}{ \subsection{NEW FUNCTIONS}{ \itemize{ \item \code{tabasco()} is a new function for graphical display of community data matrix. Technically it is an interface to \R \code{heatmap}, but its use is closer to \pkg{vegan} function \code{vegemite}. The function can reorder the community data matrix similarly as \code{vegemite}, for instance, by ordination results. Unlike \code{heatmap}, it only displays dendrograms if supplied by the user, and it defaults to re-order the dendrograms by correspondence analysis. Species are ordered to match site ordering or like determined by the user. } } % new functions \subsection{BUG FIXES}{ \itemize{ \item Function \code{fitspecaccum(..., model = "asymp")} fitted logistic model instead of asymptotic model (or the same as \code{model = "logis"}). \item \code{nestedtemp()} failed with very sparse data (fill \eqn{< 0.38}\%). } } % bug fixes \subsection{NEW FEATURES}{ \itemize{ \item The \code{plot} function for constrained ordination results (\code{cca}, \code{rda}, \code{capscale}) gained argument \code{axis.bp} (defaults \code{TRUE}) which can be used to suppress axis scale for biplot arrays. \item Number of iterations in nonmetric multidimensional scaling (NMDS) can be set with keyword \code{maxit} (defaults \code{200}) in \code{metaMDS}. } } % new features \subsection{DEPRECATED}{ \itemize{ \item The result objects of \code{cca}, \code{rda} and \code{capscale} will no longer have scores \code{u.eig}, \code{v.eig} and \code{wa.eig} in the future versions of \pkg{vegan}. This change does not influence normal usage, because \pkg{vegan} functions do not need these items. However, external scripts and packages may need changes in the future versions of \pkg{vegan}. } } % deprecated } % vegan 2.0-7 \section{Changes in version 2.0-6}{ \subsection{BUG FIXES}{ \itemize{ \item The species scores were scaled wrongly in \code{capscale()}. They were scaled correctly only when Euclidean distances were used, but usually \code{capscale()} is used with non-Euclidean distances. Most graphics will change and should be redone. The change of scaling mainly influences the spread of species scores with respect to the site scores. \item Function \code{clamtest()} failed to set the minimum abundance threshold in some cases. In addition, the output was wrong when some of the possible species groups were missing. Both problems were reported by Richard Telford (Bergen, Norway). \item Plotting an object fitted by \code{envfit()} would fail if \code{p.max} was used and there were unused levels for one or more factors. The unused levels could result from deletion of observations with missing values or simply as the result of supplying a subset of a larger data set to \code{envfit()}. \item \code{multipart()} printed wrong information about the analysis type (but did the analysis correctly). Reported by Valerie Coudrain. \item \code{oecosimu()} failed if its \code{nestedfun} returned a data frame. A more fundamental fix will be in \pkg{vegan} 2.2-0, where the structure of the \code{oecosimu()} result will change. \item The plot of two-dimensional \code{procrustes()} solutions often draw original axes in a wrong angle. The problem was reported by Elizabeth Ottesen (MIT). \item Function \code{treedive()} for functional or phylogenetic diversity did not correctly match the species names between the community data and species tree when the tree contained species that did not occur in the data. Related function \code{treedist()} for phylogenetic distances did not try to match the names at all. } } % bug fixes \subsection{NEW FEATURES}{ \itemize{ \item The output of \code{capscale()} displays the value of the additive constant when argument \code{add = TRUE} was used. \item \code{fitted()} functions for \code{cca()}, \code{rda()} and \code{capscale()} can now return conditioned (partial) component of the response: Argument \code{model} gained a new alternative \code{model = "pCCA"}. \item \code{dispindmorisita()} output gained a new column for Chi-squared based probabilities that the null hypothesis (random distribution) is true. \item \code{metaMDS()} and \code{monoMDS()} have new default convergence criteria. Most importantly, scale factor of the gradient (\code{sfgrmin}) is stricter. The former limit was too slack with large data sets and iterations stopped early without getting close to the solution. In addition, \code{scores()} ignore now requests to dimensions beyond those calculated instead of failing, and \code{scores()} for \code{metaMDS()} results do not drop dimensions. \item \code{msoplot()} gained \code{legend} argument for positioning the legend. \item Nestedness function \code{nestednodf()} gained a \code{plot} method. \item \code{ordiR2step()} gained new argument \code{R2scope} (defaults \code{TRUE}) which can be used to turn off the criterion of stopping when the adjusted \eqn{R^2}{R-squared} of the current model exceeds that of the scope. This option allows model building when the \code{scope} would be overdetermined (number of predictors higher than number of observations). \code{ordiR2step()} now handles partial redundancy analysis (pRDA). \item \code{orditorp()} gained argument \code{select} to select the rows or columns of the results to display. \item \code{protest()} prints the standardized residual statistic \eqn{m_{12}^2}{squared m12} in addition to the squared Procrustes correlation \eqn{R^2}{R-squared}. Both were calculated, but only the latter was displayed. Permutation tests are much faster in \code{protest()}. Instead of calling repeatedly \code{procrustes()}, the goodness of fit statistic is evaluated within the function. \item \code{wcmdscale()} gained methods for \code{print}, \code{plot} etc. of the results. These methods are only used if the full \code{wcmdscale} result is returned with, e.g., argument \code{eig = TRUE}. The default is still to return only a matrix of scores similarly as the standard \R function \code{cmdscale()}, and in that case the new methods are not used. } } % new features } % end 2.0-6 \section{Changes in version 2.0-5}{ \subsection{BUG FIXES}{ \itemize{ \item \code{anova(, ...)} failed with \code{by = "axis"} and \code{by = "term"}. The bug was reported by Dr Sven Neulinger (Christian Albrecht University, Kiel, Germany). \item \code{radlattice} did not honour argument \code{BIC = TRUE}, but always displayed AIC. } } % bug fixes \subsection{NEW FUNCTIONS}{ \itemize{ \item Most \pkg{vegan} functions with permutation tests have now a \code{density} method that can be used to find empirical probability distributions of permutations. There is a new \code{plot} method for these functions that displays both the density and the observed statistic. The \code{density} function is available for \code{adonis}, \code{anosim}, \code{mantel}, \code{mantel.partial}, \code{mrpp}, \code{permutest.cca} and \code{procrustes}. Function \code{adonis} can return several statistics, and it has now a \code{densityplot} method (based on \pkg{lattice}). Function \code{oecosimu} already had \code{density} and \code{densityplot}, but they are now similar to other \pkg{vegan} methods, and also work with \code{adipart}, \code{hiersimu} and \code{multipart}. \item \code{radfit} functions got a \code{predict} method that also accepts arguments \code{newdata} and \code{total} for new ranks and site totals for prediction. The functions can also interpolate to non-integer \dQuote{ranks}, and in some models also extrapolate. } } % new functions \subsection{NEW FEATURES}{ \itemize{ \item Labels can now be set in the \code{plot} of \code{envfit} results. The labels must be given in the same order that the function uses internally, and new support function \code{labels} can be used to display the default labels in their correct order. \item Mantel tests (functions \code{mantel} and \code{mantel.partial}) gained argument \code{na.rm} which can be used to remove missing values. This options should be used with care: Permutation tests can be biased if the missing values were originally in matching or fixed positions. \item \code{radfit} results can be consistently accessed with the same methods whether they were a single model for a single site, all models for a single site or all models for all sites in the data. All functions now have methods \code{AIC}, \code{coef}, \code{deviance}, \code{logLik}, \code{fitted}, \code{predict} and \code{residuals}. } } % new features \subsection{INSTALLATION AND BUILDING}{ \itemize{ \item Building of \pkg{vegan} vignettes failed with the latest version of LaTeX (TeXLive 2012). \item \R{} versions later than 2.15-1 (including development version) report warnings and errors when installing and checking \pkg{vegan}, and you must upgrade \pkg{vegan} to this version. The warnings concern functions \code{cIndexKM} and \code{betadisper}, and the error occurs in \code{betadisper}. These errors and warnings were triggered by internal changes in \R. } } % installation and building } % version 2.0-5 \section{Changes in version 2.0-4}{ \subsection{BUG FIXES}{ \itemize{ \item \code{adipart} assumed constant gamma diversity in simulations when assessing the \eqn{P}-value. This could give biased results if the null model produces variable gamma diversities and option \code{weights = "prop"} is used. The default null model (\code{"r2dtable"}) and the default option (\code{weights = "unif"}) were analysed correctly. \item \code{anova(, by = "axis")} and other \code{by} cases failed due to \file{NAMESPACE} issues. \item \code{clamtest} wrongly used frequencies instead of the counts when calculating sample coverage. No detectable differences were produced when rerunning examples from Chazdon et al. 2011 and \pkg{vegan} help page. \item \code{envfit} failed with unused factor levels. \item \code{predict} for \code{cca} results with \code{type = "response"} or \code{type = "working"} failed with \code{newdata} if the number of rows did not match with the original data. Now the \code{newdata} is ignored if it has a wrong number of rows. The number of rows must match because the results in \code{cca} must be weighted by original row totals. The problem did not concern \code{rda} or \code{capscale} results which do not need row weights. Reported by Glenn De'ath. } }% end bug fixes \subsection{NEW FEATURES}{ \itemize{ \item Functions for diversity partitioning (\code{adipart}, \code{hiersimu} and \code{multipart}) have now \code{formula} and \code{default} methods. The \code{formula} method is identical to the previous functions, but the \code{default} method can take two matrices as input. Functions \code{adipart} and \code{multipart} can be used for fast and easy overall partitioning to alpha, beta and gamma diversities by omitting the argument describing the hierarchy. \item The method in \code{betadisper} is biased with small sample sizes. The effects of the bias are strongest with unequal sample sizes. A bias adjusted version was developed by Adrian Stier and Ben Bolker, and can be invoked with argument \code{bias.adjust} (defaults to \code{FALSE}). \item \code{bioenv} accepts dissimilarities (or square matrices that can be interpreted as dissimilarities) as an alternative to community data. This allows using other dissimilarities than those available in \code{vegdist}. \item \code{plot} function for \code{envfit} results gained new argument \code{bg} that can be used to set background colour for plotted labels. \item \code{msoplot} is more configurable, and allows, for instance, setting y-axis limits. \item Hulls and ellipses are now filled using semitransparent colours in \code{ordihull} and \code{ordiellipse}, and the user can set the degree of transparency with a new argument \code{alpha}. The filled shapes are used when these functions are called with argument \code{draw = "polygon"}. Function \code{ordihull} puts labels (with argument \code{label = TRUE}) now in the real polygon centre. \item \code{ordiplot3d} returns function \code{envfit.convert} and the projected location of the \code{origin}. Together these can be used to add \code{envfit} results to existing \code{ordiplot3d} plots. Equal aspect ratio cannot be set exactly in \code{ordiplot3d} because underlying core routines do not allow this. Now \code{ordiplot3d} sets equal axis ranges, and the documents urge users to verify that the aspect ratio is reasonably equal and the graph looks like a cube. If the problems cannot be solved in the future, \code{ordiplot3d} may be removed from next releases of \pkg{vegan}. \item Function \code{ordipointlabel} gained argument to \code{select} only some of the items for plotting. The argument can be used only with one set of points. } } % end new features }%end version 2.0-4 \section{Changes in version 2.0-3}{ \subsection{NEW FUNCTIONS}{ \itemize{ \item Added new nestedness functions \code{nestedbetasor} and \code{nestedbetajac} that implement multiple-site dissimilarity indices and their decomposition into turnover and nestedness components following Baselga (\emph{Global Ecology and Biogeography} 19, 134--143; 2010). \item Added function \code{rarecurve} to draw rarefaction curves for each row (sampling unit) of the input data, optionally with lines showing rarefied species richness with given sample size for each curve. \item Added function \code{simper} that implements \dQuote{similarity percentages} of Clarke (\emph{Australian Journal of Ecology} 18, 117--143; 1993). The method compares two or more groups and decomposes the average between-group Bray-Curtis dissimilarity index to contributions by individual species. The code was developed in \href{https://github.com/jarioksa/vegan}{GitHub} by Eduard Szöcs (Uni Landau, Germany). } } % end new functions \subsection{BUG FIXES}{ \itemize{ \item \code{betadisper()} failed when the \code{groups} was a factor with empty levels. \item Some constrained ordination methods and their support functions are more robust in border cases (completely aliased effects, saturated models, user requests for non-existng scores etc). Concerns \code{capscale}, \code{ordistep}, \code{varpart}, \code{plot} function for constrained ordination, and \code{anova(, by = "margin")}. \item The \code{scores} function for \code{monoMDS} did not honour \code{choices} argument and hence dimensions could not be chosen in \code{plot}. \item The default \code{scores} method failed if the number of requested axes was higher than the ordination object had. This was reported as an error in \code{ordiplot} in \href{https://stat.ethz.ch/pipermail/r-sig-ecology/2012-February/002768.html}{R-sig-ecology} mailing list. } } % end bug fixes \subsection{NEW FEATURES}{ \itemize{ \item \code{metaMDS} argument \code{noshare = 0} is now regarded as a numeric threshold that always triggers extended dissimilarities (\code{stepacross}), instead of being treated as synonymous with \code{noshare = FALSE} which always suppresses extended dissimilarities. \item Nestedness discrepancy index \code{nesteddisc} gained a new argument that allows user to set the number of iterations in optimizing the index. \item \code{oecosimu} displays the mean of simulations and describes alternative hypothesis more clearly in the printed output. \item Implemented adjusted \eqn{R^2}{R-squared} for partial RDA. For partial model \code{rda(Y ~ X1 + Condition(X2))} this is the same as the component \code{[a] = X1|X2} in variance partition in \code{varpart} and describes the marginal (unique) effect of constraining term to adjusted \eqn{R^2}{R-squared}. \item Added Cao dissimilarity (CYd) as a new dissimilarity method in \code{vegdist} following Cao et al., \emph{Water Envir Res} 69, 95--106 (1997). The index should be good for data with high beta diversity and variable sampling intensity. Thanks to consultation to Yong Cao (Univ Illinois, USA). } } % end new features } % end version 2.0-3 \section{Changes in version 2.0-2}{ \subsection{BUG FIXES}{ \itemize{ \item Function \code{capscale} failed if constrained component had zero rank. This happened most likely in partial models when the conditions aliased constraints. The problem was observed in \code{anova(..., by ="margin")} which uses partial models to analyses the marginal effects, and was reported in an email message to \href{https://stat.ethz.ch/pipermail/r-help/2011-October/293077.html}{R-News mailing list}. \item \code{stressplot} and \code{goodness} sometimes failed when \code{metaMDS} was based on \code{isoMDS} (\pkg{MASS} package) because \code{metaMDSdist} did not use the same defaults for step-across (extended) dissimilarities as \code{metaMDS(..., engine = "isoMDS")}. The change of defaults can also influence triggering of step-across in \code{capscale(..., metaMDSdist = TRUE)}. \item \code{adonis} contained a minor bug resulting from incomplete implementation of a speed-up that did not affect the results. In fixing this bug, a further bug was identified in transposing the hat matrices. This second bug was only active following fixing of the first bug. In fixing both bugs, a speed-up in the internal f.test() function is fully realised. Reported by Nicholas Lewin-Koh. } } % end bug fixes \subsection{NEW FEATURES}{ \itemize{ \item \code{ordiarrows} and \code{ordisegments} gained argument \code{order.by} that gives a variable to sort points within \code{groups}. Earlier the points were assumed to be in order. \item Function \code{ordispider} invisibly returns the coordinates to which the points were connected. Typically these are class centroids of each point, but for constrained ordination with no \code{groups} they are the LC scores. } } %end new features } %end version 2.0-2 \section{Changes in version 2.0-1}{ \subsection{NEW FUNCTIONS}{ \itemize{ \item \code{clamtest}: new function to classify species as generalists and specialists in two distinct habitats (CLAM test of Chazdon et al., \emph{Ecology} 92, 1332--1343; 2011). The test is based on multinomial distribution of individuals in two habitat types or sampling units, and it is applicable only to count data with no over-dispersion. \item \code{as.preston} gained \code{plot} and \code{lines} methods, and \code{as.fisher} gained \code{plot} method (which also can add items to existing plots). These are similar as \code{plot} and \code{lines} for \code{prestonfit} and \code{fisherfit}, but display only data without the fitted lines. \item \code{raupcrick}: new function to implement Raup-Crick dissimilarity as a probability of number of co-occurring species with occurrence probabilities proportional to species frequencies. \pkg{Vegan} has Raup-Crick index as a choice in \code{vegdist}, but that uses equal sampling probabilities for species and analytic equations. The new \code{raupcrick} function uses simulation with \code{oecosimu}. The function follows Chase et al. (2011) \emph{Ecosphere} 2:art24 [\href{http://www.esajournals.org/doi/abs/10.1890/ES10-00117.1}{doi:10.1890/ES10-00117.1}], and was developed with the consultation of Brian Inouye. } } % end NEW FUNCTIONS \subsection{BUG FIXES}{ \itemize{ \item Function \code{meandist} could scramble items and give wrong results, especially when the \code{grouping} was numerical. The problem was reported by Dr Miguel Alvarez (Univ. Bonn). \item \code{metaMDS} did not reset \code{tries} when a new model was started with a \code{previous.best} solution from a different model. \item Function \code{permatswap} for community null models using quantitative swap never swapped items in a \eqn{2 \times 2}{2 by 2} submatrix if all cells were filled. \item The result from \code{permutest.cca} could not be \code{update}d because of a \file{NAMESPACE} issue. \item \R 2.14.0 changed so that it does not accept using \code{sd()} function for matrices (which was the behaviour at least since \R 1.0-0), and several \pkg{vegan} functions were changed to adapt to this change (\code{rda}, \code{capscale}, \code{simulate} methods for \code{rda}, \code{cca} and \code{capscale}). The change in \R 2.14.0 does not influence the results but you probably wish to upgrade \pkg{vegan} to avoid annoying warnings. } } % end BUG FIXES \subsection{ANALYSES}{ \itemize{ \item \code{nesteddisc} is slacker and hence faster when trying to optimize the statistic for tied column frequencies. Tracing showed that in most cases an improved ordering was found rather early in tries, and the results are equally good in most cases. } } % end ANALYSES } % end version 2.0-1 \section{Changes in version 2.0-0}{ \subsection{GENERAL}{ \itemize{ \item Peter Minchin joins the \pkg{vegan} team. \item \pkg{vegan} implements standard \R \file{NAMESPACE}. In general, \code{S3} methods are not exported which means that you cannot directly use or see contents of functions like \code{cca.default}, \code{plot.cca} or \code{anova.ccabyterm}. To use these functions you should rely on \R delegation and simply use \code{cca} and for its result objects use \code{plot} and \code{anova} without suffix \code{.cca}. To see the contents of the function you can use \code{:::}, such as \code{vegan:::cca.default}. This change may break packages, documents or scripts that rely on non-exported names. \item \pkg{vegan} depends on the \pkg{permute} package. This package provides powerful tools for restricted permutation schemes. All \pkg{vegan} permutation will gradually move to use \pkg{permute}, but currently only \code{betadisper} uses the new feature. } } % end GENERAL \subsection{NEW FUNCTIONS}{ \itemize{ \item \code{monoMDS}: a new function for non-metric multidimensional scaling (NMDS). This function replaces \code{MASS::isoMDS} as the default method in \code{metaMDS}. Major advantages of \code{monoMDS} are that it has \sQuote{weak} (\sQuote{primary}) tie treatment which means that it can split tied observed dissimilarities. \sQuote{Weak} tie treatment improves ordination of heterogeneous data sets, because maximum dissimilarities of \eqn{1} can be split. In addition to global NMDS, \code{monoMDS} can perform local and hybrid NMDS and metric MDS. It can also handle missing and zero dissimilarities. Moreover, \code{monoMDS} is faster than previous alternatives. The function uses \code{Fortran} code written by Peter Minchin. \item \code{MDSrotate} a new function to replace \code{metaMDSrotate}. This function can rotate both \code{metaMDS} and \code{monoMDS} results so that the first axis is parallel to an environmental vector. \item \code{eventstar} finds the minimum of the evenness profile on the Tsallis entropy, and uses this to find the corresponding values of diversity, evenness and numbers equivalent following Mendes et al. (\emph{Ecography} 31, 450-456; 2008). The code was contributed by Eduardo Ribeira Cunha and Heloisa Beatriz Antoniazi Evangelista and adapted to \pkg{vegan} by Peter Solymos. \item \code{fitspecaccum} fits non-linear regression models to the species accumulation results from \code{specaccum}. The function can use new self-starting species accumulation models in \pkg{vegan} or other self-starting non-linear regression models in \R. The function can fit Arrhenius, Gleason, Gitay, Lomolino (in \pkg{vegan}), asymptotic, Gompertz, Michaelis-Menten, logistic and Weibull (in base \R) models. The function has \code{plot} and \code{predict} methods. \item Self-starting non-linear species accumulation models \code{SSarrhenius}, \code{SSgleason}, \code{SSgitay} and \code{SSlomolino}. These can be used with \code{fitspecaccum} or directly in non-linear regression with \code{nls}. These functions were implemented because they were found good for species-area models by Dengler (\emph{J. Biogeogr.} 36, 728-744; 2009). } } % end NEW FUNCTIONS \subsection{NEW FEATURES}{ \itemize{ \item \code{adonis}, \code{anosim}, \code{meandist} and \code{mrpp} warn on negative dissimilarities, and \code{betadisper} refuses to analyse them. All these functions expect dissimilarities, and giving something else (like correlations) probably is a user error. \item \code{betadisper} uses restricted permutation of the \pkg{permute} package. \item \code{metaMDS} uses \code{monoMDS} as its default ordination engine. Function gains new argument \code{engine} that can be used to alternatively select \code{MASS::isoMDS}. The default is not to use \code{stepacross} with \code{monoMDS} because its \sQuote{weak} tie treatment can cope with tied maximum dissimilarities of one. However, \code{stepacross} is the default with \code{isoMDS} because it cannot handle adequately these tied maximum dissimilarities. \item \code{specaccum} gained \code{predict} method which uses either linear or spline interpolation for data between observed points. Extrapolation is possible with spline interpolation, but may make little sense. \item \code{specpool} can handle missing values or empty factor levels in the grouping factor \code{pool}. Now also checks that the length of the \code{pool} matches the number of observations. } } % end NEW FEATURES \subsection{DEPRECATED AND DEFUNCT}{ \itemize{ \item \code{metaMDSrotate} was replaced with \code{MDSrotate} that can also handle the results of \code{monoMDS}. \item \code{permuted.index2} and other \dQuote{new} permutation code was removed in favour of the \pkg{permute} package. This code was not intended for normal use, but packages depending on that code in \pkg{vegan} should instead depend on \pkg{permute}. } } % end DEPRECATED \subsection{ANALYSES}{ \itemize{ \item \code{treeheight} uses much snappier code. The results should be unchanged. } } % end ANALYSES }% end VERSION 2.0 vegan/inst/ChangeLog0000644000175100001440000074447612551404262014146 0ustar hornikusersVEGAN DEVEL VERSIONS at https://github.com/vegandevs/vegan ChangeLog provided a detailed development history of vegan, but it is not updated after September 11, 2014. Vegan moved to git source code management and linear ChangeLog is poorly suited for branching git development. Use git log to track the history in your current branch. The main upstream repository of vegan is currently https://github.com/vegandevs/vegan. ChangeLog gave technical details and was mainly provided for vegan developers. Most important user-visible changes are listed in the NEWS of the current release and its patched version. Version 2.1-43 (opened September 11, 2014) * cca, rda, capscale: remove u.eig, v.eig and wa.eig items or scores scaled by eigenvectors. We have had a warning of their eventual removal since vegan 1.6-8, and now we finally did so. Scaling of scores happens when scores() function access normalized score items of the results. * commsimulator: commented out deprecation warning at the moment, because this triggered warnings in CRAN packages bipartite and metacom. Contacted the maintainers of these packages, and will put back the warning in 2.2-1. * getPermuteMatrix: works also when 'strata' are missing. Triggered an error in CRAN package mpmcorrelogram. * permustats: new function to extract permutation results from vegan objects, with support functions summary, density, densityplot, qqnorm and qqmath. Deprecated previous density and densityplot methods directly accessing the same results. * ordirgl, ordiplot3d: 3D functions using rgl or scatterplot3d packages were removed from vegan and moved to a new CRAN package vegan3d (released Oct 7, 2014). * scores.hclust: combined documentation with other hclust methods. * scoverage: removed from vegan. * dispweight: veganified so that uses nullmodels. Added gdispweight(): a new generalized method taking any glm() formula instead of one grouping. * betadisper Permutation tests via the `permutest()` method are now parallelised. The number of cores to parallelise over is specified by argument `parallel` in common with the implementation for `cca()`. Fix a couple of bugs in the examples; number of permutations was specified using `control` which is not an argument to the `permutest()` method for `betadisper()`. * text.cca: was incorrectly testing if factor constraints were in the biplot scores when user-suppiled lables for factors were given. * ccanova: removed from vegan. These were backup functions of old anova.cca, and were completely rewritten for new vegan. * metaMDSrotate: made defunct (replaced with MDSrotate). Version 2.1-42 (closed September 11, 2014) * Opened a new version to prepare release 2.2-0. * Moved main development from R-Forge to GitHub.com. * NAMESPACE, DESCRIPTION: adapted to current R CMD check that has more stringent tests on attaching and importing external packages and using their functions. * getPermuteMatrix: routines have a common API based on the new function. Version 2.1-41 (closed September 4, 2014) * ordiellipse, ordihull, ordispider: can now handle (omit) NA cases in 'groups'. They were able to omit to NA cases in scores, but having NA in 'groups' triggered really cryptic error messages. * adipart, multipart, hiersimu: it is now an error to provide non-nested sampling hierarchy (used to be a warning). * new version opened with the CRAN release of vegan_2.0-10 on December 12, 2013. * anosim, mantel, mantel.partial: R CMD check told that "... may be used in an incorrect context". The dots were added in r2765, and now removed. * ordistep: add1.cca reported P=0 for redundant terms with 0 Df, and this caused an error in ordistep. * as.hclust.spantree: a new function to cast a "spantree" result object to an "hclust" tree. * hclust: add reorder() and rev() methods for standard "hclust" trees of R. I have no clue why base R does not have these methods, but I provide them now in vegan. An additional reason for providing these methods is that reorder(, wts, agglo.FUN = mean) will use unweighted mean of merged groups even when these are of very unequal sizes. The reorder method provided here will use group sizes as weights and the value of the group will be the mean of its leaves (terminal nodes). Add scores() method to extract coordinates of internal nodes or leaves from a plotted hclust() tree. The function is whimsical and may be removed before release (it is documented separately to make this easier). * biplot.rda: failed in axis scaling with negative 'scaling' values when some species had zero variance (and hence species scores was 0/0 = NaN). * cascadeKM: Calinski index for one group will now be NA instead of randomly chosen Inf, -Inf or NaN which can cause confusion (see http://stackoverflow.com/questions/21022848/r-produces-different-result-after-io-on-file * ordiellipse: failed if all points were on a line. Now handles these cases by drawing a line trhough the points, and issuing a warning from chol(): "the matrix is either rank-deficient or indefinite". Earlier we required at least three points for an ellipse, but these could still be on a line and fail. Now we accept two points, and draw the line with a warning. The problem with three points was reported by Paul Bacquet (Louvain, Belgium). * radfit: plotting of radfit frames of several communuties failed if there were one-species or no-species (empty) rows. Part of this was fitted.radfit that now returns sensible and consistent output for these cases as well, and radfit.data.frame() completely removes empty rows from the data (with a warning). * RsquareAdj: return list(NA, NA) for capscale objects with imaginary component, and use rda method if there is no imaginary component. * tabasco: "hclust" objects (use, sp.ind) are reordered using weighted means. This is a better method than the unweighted means used for reordering of dendrograms. Earlier "hclust" objects were changed to dendrograms, but now we provide reorder.hclust() and rev.hclust() in vegan, and can use improved method of ordering the table. Dendrogram and hclust labels must match the community data names, and now the community matrix is internally reordered to match the dendrograms. This requires that the clusterings do have labels attributes. * treedive, treedist: default is now match.force = TRUE, and treedive() gained new argument 'verbose' to turn of most messages -- which is practical in oecosimu(). * BCI: names checked after http://www.theplantlist.org, but kept the old (alphabetic) order of species. The changes are: Abarema macradenium -> A. macradenia, Apeiba aspera -> A. glabra, Aspidosperma cruenta -> A. desmanthum, Cassipourea ellipitica -> C. guianensis, Chlorophora tinctoria -> Maclura t., Coccoloba manzanillensis -> C. manzinellensis, Cupania sylvatica -> C. seemannii, Dipteryx panamensis -> D. oleifera, Eugenia coloradensis -> E. florida, Eugenia oerstedeana -> E. oerstediana, Inga marginata -> I. semialata, Lonchocarpus latifolius -> L. heptaphyllus (this is ambiguous, since Hebestichma cubense is another alternative), Maquira costaricana -> Maquira guianensis var. costaricana, Phoebe cinnamomifolia -> Cinnamomum triplinerve, Swartzia simplex var. ochnaceae -> var. continentalis, Tabebuia guayacan -> Handroanthus g. Guarea is ambiguous: data have three taxa (fuzzy, grandifolia and guidonia), but theplantlist.org says grandifolia is an ill. synonym of guidonia. This change allows matching 206 of 225 BCI species with http://datadryad.org/resource/doi:10.5061/dryad.63q27. In addition, there are two vars of Swartzia simplex in BCI which could be matched at species level. * dune data sets: use 4+4 letter CEP names for species instead of old 3+3 names. Botanical nomenclature was updated: Leontodon autumnalis -> Scorzoneroides (Leoaut -> Scorautu), Potentilla palustris -> Comarum (Potpal -> Comapalu). Rows are now arranged numerically, and species names alphabetically, vascular plants first, and then the two bryophytes. Added data 'dune.phylodis' which are ages of dune species extracted from http://datadryad.org/resource/doi:10.5061/dryad.63q27 (Zanne AE et al. 2014, Nature doi:10.1038/nature12872, published online Dec 22, 2013). dune.taxon was updated to APG III. * varespec: use 4+4 letter CEP names instead of 3+dot+3. Nomenclature was cautiously fixed. Most important changes: Ledum palustre -> Rhododendron tomentosum (Led.pal -> Rhodtome), Cetraria nivalis -> Flavocetraria nivalis (Cet.niv -> Flavniva). In addition, Dip.mon was corrected to Diphcomp (Diphasiastrum complanatum, should perhaps be Lycopodium c.), and Barbilophozia lycopodioides to B. hatcheri. * plot.envfit: when `envfit()` is called as `envfit(ord, foo[, "bar"])`, there are no useful rownames on the objects returned. Hence the logic in `plot.envfit()` when called with argument `labels` was failing. * rarecurve: line colour and type for each sample can now be specified through formal arguments `col` and `lty`. Incidental wish of http://stackoverflow.com/q/22714775/429846. * simper: now doesn't fail with obscure error when groups have a single member. Version 2.1-40 (closed December 12, 2013) * anova.cca: Function is now based on the new code, but the old is avaialable in a function called ccanova. The API changes: arguments 'step' and 'perm.max' are gone and replaced with 'permutations' that accepts a how() object defining permutations, or a single number like previously or a permutation matrix. The new anova.cca adds an option of analysing a sequence of ordination models. This also means that '...' is now the second argument and the names of all arguments must be written in full. This change can be expected to cause trouble outside vegan. Currently the tests in examples are passed, but tests fail (looks like being caused by the change in API). * add1.cca, drop1.cca, ordistep, ordiR2step: functions were adapted to new anova.cca and this brought along similar changes in API. * envfit: function assumed that environmental variables are either factors or numeric, and choked if they were neither but, say, character strings. Now the function tries to coerce all non-numeric variables into factors, including character strings and logical. This is one possible reason for problems reported in https://stat.ethz.ch/pipermail/r-sig-ecology/2013-December/004217.html, although the reported case is irreproducible and we cannot be sure. Also fixed handling of tied values in assessing the P-values in vectorfit. * nestednodf: vegan 2.1-36 (release 2.0-10) changed the function so that weighted analysis of binary data was equal to unweighted binary analysis, but this broke consinstency with the original software and publication by Almeida-Neto & Ulrich. The fix was now made optional, and the default is to follow published method by adding argument 'wbinary' (defaults FALSE). Based on the suggestion by Matt Barbour in GitHub. * ordispider: can now use spatial medians as centres instead of the default centroids. The kind of centre is defined by new argument 'spiders'. * tests for cca/rda/capscale: commented out test that failed with the anova.cca. Known issue was that 'by = "term"' and 'by = "axis"' stop with error with missing data. This was designed and and can be re-designed to handle missing data by listwise deletion so that models will have the same number of observation for every variable. An unknown issue was that 'by = "margin"' failed in capscale(). This may be a scoping issue an needs inspection. We keep the old vegan-tests.Rout.save file so that we are reminded of the problems at every check. Version 2.1-39 (closed December 3, 2013) * anova.cca: started to rewrite the anova.cca family of functions for permute package. At the first stage, a temporary development function anovacca was created. The user interface was changed, and the function no more adapts the number of iterations for the P-value, and arguments 'step' and 'perm.max' were removed. Instead, permute package is used to create a permutation matrix used in all cases with fixed number of permutations. In addition to the overall test, the function allows now testing a sequence of models (anova.ccalist). Specific tests provided are by = "term" (anovacca.byterm) which is fitted as a sequence of models in anova.ccalist. Case by = "margin" directly calls permutest.cca and gets the significances from differences of residual variation similarly as anova.ccalist. Case by = "axis" is is implemented as a marginal model. Simple permutations give identical results for "term" and "axis" cases, but by = "margin" is different. Marginal models were implemented as partial models with other parameters partialled out in vegan 2.0 and earlier, but the current implementation is an anova.ccalist model where the parameter in question was removed and model compared against the complete model. * commsim: documentation (commsim.Rd) was restructured so that nullmodels were collected under separate sections with a brief introductory text and shorter specific text of the algorithm. Hopefully this makes easier for an outsider to grasp the width of the choices. * oecosimu: change printed quantiles to match the direction of the test as changed in r2495. * permutest.betadisper: updated to the new permute API and operates similarly to permutest.cca in respect of how the permutation test can be defined. It currently doesn't support the parallel processing of the cca method, however. * tests: vegan examples and vegan-tests have been out of sync for a long time. These have not been updated because most of the changes seem to be triggered by switching to R 3.0-x, and we have not had time to analyse the reasons. The differences also seem to be platform specific, and Linux and MacOS give slightly different results. In particular, there seem to be differences in permutations, constrained ordination, in particular in capscale() and rounding of output. We have also introduced some changes in output that were not yet synced. * janitorial: vegan has been dependent on R >= 2.14.0 since version 2.1-34 (r2597 Wed 28-Aug-2013). Now superfluous references and tests for the older R version were removed in R code and documentation. FIXME: cca() returns residuals.zombie item that was supposed to be needed in R < 2.13.0. This was not yet removed: we must first check that this can be safely done. vegan also now depends on permute version 0.7-8 or later. Version 2.1-38 (closed November 10, 2013) * DESCRIPTION: depends on permute >= 0.7-5, where the permute::how() result object can be updated. * bioenv: returns now the number of the best model ('whichbest'), the standardized environmental data ('x') and the distance function used for the environmental data ('distfun'). New function bioenvdist() uses these to re-calculate the environmental distances for the best model, or any other model selected by its number. * permutest.cca: permutation test uses 'permute' package. The old interface was retained, and 'permutations' can be a single number or a permutation matrix (as previously), but now it can also be a how() object of the 'permute' package. The argument 'strata' was also retained, but it is planned to be deprecated in the future, and it is recommended that users switch to defining 'blocks' in how(). * renyiaccum: plot() works also when only one index ('scales') was used. The function gained new argument 'collector = FALSE' to accumulate sites in the order they are in the data set in addition to the summary statistics of permutations. This can be used to analyse the randomness of the particular order of sites (looks like my student would need this). Version 2.1-37 (closed November 5, 2013) * anova.cca: added new function anova.ccalist() to compare a sequence of models. The function is still experimental ("proof of the concept") and unexported. If this stays in vegan, it should eventually be called from anova.cca(). This would bring along a change of API to anova.cca(object, ..., alpha=...): the dots must follow the first argument which turns of positional and partial matching of arguments so that the function can collect the "cca" models. We must decide whether the new function is worth such a change that can make life harder for ordinary users. One potential advantage is that the code in anova.ccaby* functions could be simplifed to a anova.ccabylist() calls. The function is based on calling permutest.cca for each model with identical permutations. We can then compare the change in model for each permutation and collect the test statistics for differences. This requires that the models really are nested so that residual deviance certainly decreases in bigger model (testing theory requires nesting, but this is commonly violated by users: here nesting is necessary). * parellel: default cluster defined by setDefaultCluster() is no longer used in functions with parallel processing. Using default cluster would need querying an unexported environment parellel:::.reg, and this gives a NOTE in R CMD check. * specaccum, renyiaccum, tsallisaccum: gained argument to select a 'subset' of sites (looks like my student would need them). Version 2.1-36 (closed October 14, 2013) * opened with the release of vegan 2.0-9. * decostand(..., "normalize") uses now .Machine$double.eps to replace zero sum of squares instead of matrix minimum. * envfit: if a variable is constant, no fitted vector can be calculated and results will be given as NA (with warnings). Plotting of all vectors will fail in such cases because no finite scale was found for arrows. Fixed on ordiArrowMul. * envfit: try to produce something sensible if fitted variable has constant values (invariable vector, one-level factor). Report arrow heads as all zero, and R2=0 for vectors, and the centroid to the data centroid and R2=0 for factors. Tied values are now treated differently in factorfit: now they support null hypothesis, previously they decreased the P-values. * fisherfit: completely rewritten and estimates of standard error removed: I could not find no justification for these. Actually, it seems that the value of Fisher alpha as estimated in the function was independent of the abundance distribution of species, but will be defined by the number of species (S) and number of individuals (N). Now the Fisher alpha is estimated from the relationship S = alpha*(1 + log(N/alpha)) using function uniroot(). Because of this, standard errors cannot be estimated and they were removed. In addition, functions confint.fisherfit, profile.fisherfit and plot.profile.fisherfit were removed. The estimation of standard errors was also removed in function fisher.alpha (that only calls fisherfit). * nestednodf: matrix fill was wrongly calculated in weighted analysis. The nominator was length of 'comm', and if input was a data frame that was the number of columns instead of the number of cells. The fill was correct in non-weighted analysis because there data were transformed to a matrix, and the length of a matrix is the number of cells (unlike in data frames). * nestednodf: weighted analysis gave all statistics as zero if binary data were supplied. Some ">" comparisons were changed to ">=" and now weighted analysis of binary data gives same results as non-weighted analysis. However, this can change results of weighted analysis of quantitative data. The change needs endorsement by the function author Gustavo Carvalho. * oecosimu: warns user if the specified nullmodel 'method' changes quantitative input data to binary data under cover. Some people have not noticed this. Version 2.1-35 (closed September 25, 2013) * ordilabel: colour arguments ('col', 'fill', 'borderä) can now be vectors and will be recycled if needed. May need care if used with 'select', but should work with 'priority'. This was needed for a function under development and testing: when labelling over lines, it may be nice if the border has the same colour as the line covered. * MDSrotate: can now rotate a solution to more than one vector, provided that the number of dimensions is higher than the number of vectors. Because fitted vectors usually are correlated, only the first vector is aligned to dimension 1, but second vector and further are oblique to the corresponding axis. In any case they will have zero correlation to all subsequent dimensions. * simulate.rda, simulate.cca: gained argument 'correlated' for using covariances of species in generating correlated multivariate normal residuals in parametric simulations. The covariances are estimated from the residual ordination of species. The argument defaults FALSE which implements the old parametric simulation where each species is simulated independently. The argument has no effect in capscale() which stores no information on species. Version 2.1-34 (closed September 5, 2013) * DESCRIPTION: dependent on R >= 2.14.0. * DESCRIPTION, vignettes: R 3.0.2-to-be checks with --as-cran requires (with a NOTE) the vignettes source files (Rnw) to be in vignettes/ directory. Because Makefile is not executed in inst/doc if vignettes/ directory is present, all other sources had to be moved to vignettes/ as well with vignettes/.install_extras to move those to inst/doc after building. This also made /.Rinstignore unnecessary. The vignettes directory was introduced and made recommended in R 2.14.0 so that the this version of vegan depends on R >= 2.14.0. * tweaks for R < 2.12.1 removed: code to fix buggy naming of columns in qr.X before 2.12.1 (as.mlm.cca/rda, intersetcor), and change in the cmdscale() output (eigenvals.default). * tweak for R < 2.13.0 removed: change in cmdscale() output (capscale). * vegandocs: does not use unexported tools:::httpdPort. Now only remaining ':::' case is querying default cluster in the environment parallel:::.reg. Version 2.1-33 (closed August 28, 2013) * DESCRIPTION: new dependence on lattice. Passes new strict R checks with NOTE on ':::' calls to tools:::httpdPort (to launch reading vegan NEWS.html in existing browser window) and parallel:::.reg to acces the defaultCluster in an unexported environment within 'parallel' Namespace. Version 2.1-32 (closed August 19, 2013) * opened a new version with the CRAN release of vegan 2.0-8. * merged Eduard Szöcs's code on dispersion weighting of overdispersed species following Clarke, K. R., M. G. Chapman, P. J. Somerfield, and H. R. Needham. 2006. Dispersion-based Weighting of Species Counts in Assemblage Analyses. _Marine Ecology Progress Series_, 320, 11–27. The basic development was made in github.com and merged to R-Forge. * nullmodel: replaced internal indshuffle() function in make.commsim() with much faster stats::rmultinom(). The rmultinom() function takes argument 'n' for the number of random vectors, and using this could be still faster, but we only generate one vector in time. Using 'n' would require better analysis of individual nullmodels. The commit changes random sequences, but passes tests. * oecosimu: Gained argument 'batchsize' to set the maximum size of simulated nullmodels (in Mb). If a larger object would be produced, the analysis is broken into several batches to avoid exceeding the maximum size. This avoids exhausting memory which can make whole R unresponsive and analysis very, very slow. In general, the argument is needed with large data sets and/or large number of simulations. * orditkplot: bmp has been available in unix-alike OSes since 2008, or a moth after writing orditkplot. Thanks to Brian Ripley for informing us. * vignettes: vignettes use now standard article style instead of hacked jss style. Decision and diversity vignettes are in two columns, but intro in one (R output did not fit in one column). The common packages, macros and definitions were moved to new vegan.sty which is written so that it should work both with amsart and article, and with one and two columns. Figures are now in standard figure environment, but intro redefines this to use sidecaption figures. Version 2.1-31 (closed July 10, 2013) * Dependencies: Vegan now depends on a version equal to 0.7-4 or later. * betadisper, permutest.betadisper: Modified to use the new permute package API (from version 0.7-3 onwards). The `permutest` method gains a new argument `permutations`, which takes a matrix of permutations to be used. * protest: modified to use the new permute API. Gains argument `control` which describes the design. As a result, `strata` argument has been removed and `permutations` argument can only be used to supply your own matrix of permutations. The number of permutations and other features of the design are set via `control` and function `how()` from permute. * ordipointlabel: now uses `ordiArgAbsorber()` to stop the warnings about non-graphical paramters being passed to plotting functions. * ordisurf: can now pass in a line width for the contours via argument `lwd.cl`. * ordiArrowTextXY: New (internal) support function that finds coordinates of text box at the point of the arrow so that the arrow point just touches the text. This should improve positioning of the arrow labels and avoid writing labels over the arrows. * plot.envfit, plot.cca, text.cca: use ordiArrowTextXY() for arrow labels instead of expanding arrow heads by 10%. * plot.envfit: plot(..., add = FALSE) estimated string (text) dimensions after plot.new() but before plot.window(). Since plot.new() sets xlim, ylim to c(0,1) and then plot.window resets the limits to the data values, string dimensions in user units were poorly estimated. This became evident with new positioning of arrow text based on string dimensions. * plot.ordipointlabel: gains a plot method that is very similar to `plot.orditkplot()` but which does not mess with graphical parameters. This allows it to fit more naturally into a standard R workflow (it plays nicely with `layout()` for example. * stressplot: metaMDS and monoMDS stressplot() use now expression(R^2) instead of ascii R2. The stressplot.monoMDS() function returns the plotting structures in the original input order. * vignettes: Brian Ripley urged as to remove \usepackage{inconsolota} as this package is on the way to be removed from CTAN. Version 2.1-30 (closed June 12, 2013) * bioenv: can now use Mahalanobis, Manhattan and Gower distances for environmental variables. The Mahalanobis distances are based on orthogonalized data, Manhattan distances give the direct sum of differences of environmental variables, and Gower distances can also handle factor variables. This involves adding internal function veganMahatrans() for Mahalanobis transformation. The change was triggered by a recent email by Lydia Beaudrot (UC Davis) to implement Mahalanobis distances, and in the same I also implemented Robby Marotte's suggestion of using Gower distances (vegan Forum item in R-Forge in July 2012). The output is changed to show the 'metric' and the name of the 'method' is fully expanded. No more fails if 'upto' is too large. Passes "..." to cor() like documented, but never done. * rankindex: can now use Mahalanobis or Manhattan distances. Scales automatically gradient variables to unit variance (Euclidean) or range (Manhattan), and the scaling is already inbuilt in Mahalanobis and Gower. * vegdist: added Mahalanobis distance. Version 2.1-29 (closed April 19, 2013) * ordisurf: significant changes were made to this function: - The default for `method` and `select` were changed to `"REML"` and `TRUE` respectivelt. - Argument `thinplate` is deprecated in favour of `isotropic`. A warning is now issued if `thinplate` is used. - The spline basis for the smoother can now be specified from a subset of those implemented in the mgcv package. This is achieved via the `bs` argument, which defaults to `"tp"` for thin plate regression splines. - Argument `knots` and `bs` can now be a vector of length two, one per ordination dimension considered. This is only of use with anisotropic surfaces with `isotropic = FALSE`. - New argument `fx`; indicates whether the smoothers are fixed degrees of freedom regression splines (`fx = FALSE`) or a penalised regression spline (`fx = TRUE`). Can be a vector of length 2 for anisotropic surfaces (`isotropic = FALSE`). - The number of locations in each ordination dimension at which the fitted surface is evaluated can now be specified via new argument `npoints`. - The formula passed to `gam` is now built in greater detail. When the model is printed the user can see exactly how the smoother was constructed. * oecosimu: the interpretation argument "alternative" was really twisted. We now changed the test direction and have a much clearer explanatory text in printed output. The issue was raised by Juan Manual Barreneche (jumanbar) in GitHub (issue #14). NB. The direction of the test changed from previous versions. * raupcrick: adapted to the change in oecosimu() to define the direction of the test. Version 2.1-28 (closed April 19, 2013) * betadisper: failed with type = "centroid" when there was only one group (i.e., in estimating the overall beta diversity in the data). Reported by Pierre Legendre. Now correctly reports distance to "medoid" in the print method when type = "median". Reported by Pierre Legendre. The print method also now shows only the first 8 eigenvalues. * eigenvals: new method for class "betadisper". * rda: eigenvalues are now regarded as zero if they are very small compared to the first eigenvalue. Earlier we used fixed limit of 1e-4, but now the limit is first eigenvalues * 1e-5. Similar change was not made in cca, since there the theoretical maximum of the eigenvalue is 1, and comparison to an absolute minimum threshold of 1e-4 makes sense. Version 2.1-27 (closed March 17, 2013) * cca/rda/capscale: removed references to 'u.eig' and 'v.eig' items in support functions. These now use 'u' and 'v' items and scale these with 'eig' (or diag(sqrt(eig))) when needed. This prepares for removing items 'u.eig', 'v.eig' and 'wa.eig' in vegan 2.3 and 2.4. Concerns fitted.capscale, goodness.cca and goodness.rda. The documentation has warned about removing these *.eig items for years, and most vegan functions already avoided using them. We have no idea if any external packages depend on these and therefore we delay the removal till vegan 2.3 and 2.4 release. However, we warn about this in NEWS for 2.0-7 and also say this clearly in cca.object documentation. * nestedtemp: function failed if the matrix fill was < 0.38%, because the fill line parameter was outside the original estimation bracket. Now bracket is moved up if the estimation fails. The problem was reported by Carsten Dormann (Univ Freiburg) and Benjamin A. Sikes (Lincoln University, NZ). * specaccum: gained argument 'w' for weights to give the sampling effort. This resurrects a feature that was introduced in r1505 (22 Feb 2011) and 1507, and removed in r1606 (26 May 2011). It seems that BiodiversityR::balanced.specaccum() provides the same feature but we still try it here. The feature was resurrected after a user query by Bastien Mérigot (Univ Montpellier II). The working of the new argument is still untested with specaccum() support functions. * fitspecaccum: model = "asymp" was actually fitting logistic regression (the same as model = "logis"). * text.cca, points.cca: gained argument 'axis.bp' (defaults TRUE) to suppress drawing axes for scaled biplot arrows. Only effective if 'bp' scores were requested. * wcmdscale: setting only weights 'w' does not force full "wcmdscale" output but returns only the matrix of coordinates of real axes. Similarly, setting 'add = TRUE' would not force "wcmdscale", but 'add' is not implemented. Version 2.1-26 (opened February 11, 2013) * New version opened with the release of vegan_2.0-6 on February 11, 2013. * metaMDS: exposed argument 'maxit' in metaMDSiter() so that users can set the number of iterations in monoMDS() or isoMDS(). metaMDS(..., trace = 2) show the stopping criterion used in with engine = "monoMDS". After wishes by Jon Bakker, Univ Washington (U.S.A.). * tabasco: a sister function of vegemite() to display a compact community table using heatmap(). Both vegemite() and tabasco() can handle cluster::agnes() trees. * wcmdscale: return a full "wcmdscale" object if any argument is set to non-default value. This also implies that if weights 'w' are set, the result will be full "wcmdscale" object with a "weights" item, instead of a simple matrix with no information about weights used. Version 2.1-25 (closed February 11, 2013) * FAQ: new entry on impossibility of using random effects in cca, rda, capscale & adonis, and telling how to do this approximately. Please comment and correct. * oecosimu: changed the structure of the oecosimu() result object. It now returns a list of two items: "statistic" is the observed statistic, and "oecosimu" which contains the simulation records. In previous version the function returned the statistic and added item "oecosimu" there. Previously, the result object was of type c("oecosimu", class(statistic)) as the original "statistic" object was returned amended with an "oecosimu" item, but now it is only of type "oecosimu" with the original "statistic" as a separate item. So "statistic" is now one level deeper instead of being the main object. * predict.cca, predict.rda: In rev2412, 2413 we studied including partial (pCCA) component in predict(..., type="response") and predict(..., type="working") models, but then adopted a policy of never having partial component, but always returning only the component requested for. Therefore warning messages of ignoring pCCA component were removed. This log entry was made to emphasize that there is a policy decision, and an alternative policy can be tracked in the repository. * fitted.[cca,rda,capscale]: can now return partial component with argument 'model = "pCCA"'. * simulate: the simulate functions for "rda" and "cca" return objects with original row and column names. Function capscale() already did so, and simulate.nullmodel() was changed so in vegan 2.1-24 (r2396). Version 2.1-24 (closed February 2, 2013) * simulate.nullmodel: output array inherits dimnames after the input data matrix, this is often required by oecosimu. Dimension names are now only stored once for all nsim simulations, so it is an improvement over the implementation in commsimulator. * oecosimu: the 'oecosimu' list cannot be added to the result if the nestfun() returns a data frame. In that case, the 'oecosimu' list is treated like a variable, and this gives either an error of wrong length or if the length matches, a mess. Now data frame is silently turned into a list which also means that it will not be printed with the output. The name of the 'statistic' is not used for unnamed vector output where it would only name the first item (like would be the case if the 'statistic' was extracted from a data frame). It is now checked that only one 'statistic' is given and a comprehensible error message is issued instead of the current confusing one. The changes were trickered when testing picante::pd(). * protest: huge speed-up. Instead of calling procrustes() in every permutation step, we only calculate the goodness of fit statistic in svd(). This avoids a huge overhead of procrustes(). In a test with a 160 x 12 matrix (RDA scores from Bryce Canyon data 'bryceveg') with 9999 permutations, the time went down from 12 sec to 0.8 sec in my desktop. The analysis prints now also the 'ss' term (residual sum of squares) which for symmetric analysis is equal to squared m12. * procrustes: marginally faster way of getting sum of squares of a matrix. This should not influence the results, but one metaMDS() trace result has a small difference in nearly-zero rmse (was 1.094382e-06, is 1.09439e-06) in my desktop. * treedive, treedist: treedive() did not correctly match data and tree when the tree contained species that did not occur in the data. Function treedist() tries to match tree and data when their sizes differ, and argument 'match.force' was added to force matching even when sizes do not differ. Version 2.1-23 (closed January 25, 2013) * clamtest: Richard Telford reported an extreme case {rbind(a=c(1,0,5,10,4),b=c(0,10,5,2,1))} where clamtest failed due to inadequately setting up minimum abundance thresholds for rare species. The issue is solved by hard coding the minimum values to be 1 when no suitable solution is found. Also, clamtest failed when the community matrix had no column names, this is now fixed. * capscale: It was wrongly assumed that eigenvalues could be used in normalization of species scores, but this worked only with Euclidean distances. Now normalization is done explicitly with decostand() function. This change means that scaling of species scores will change, and graphs can look different than previously. All analyses should be redone. Function now displays the value of the additive constant with 'add = TRUE'. * stressplot: added stressplot() methods for wcmdscale(), capscale(), cca(), rda(), prcomp() and princomp() results. These also work with constrained ordination. These methods display the ordination distances in given number of dimensions (defaults 'k = 2') against original observed distances. These original distances are found from the full space solution, and in capscale() and wcmdscale() they are correct for the imaginary axes. The weights are used in wcmdscale() and cca() so that their distances differ from plotted ordinations, but agree with eigenvalues. Partial models (p-dbRDA, pRDA, pCCA) add the partial component both to the original dissimilarities and the fit. The row scores (u) alone will not correctly estimate original dissimilarities in constrained (or partial) ordination. In unconstrained ordination we can get the distances as dist(u %*% diag(sqrt(eig))), but in constrained ordination this will not give the observed dissimilarities with all axes. Currently we get the ordination distances from a (low-rank) approximation of the data as dist(u %*% diag(sqrt(eig)) %*% t(v)). However, it is not sure that this the right thing to do, but perhaps we should acknowledge the fact row ordination with constraints does not approximate distances. So this may change. * wcmdscale: added method functions print(), plot() and scores(). Now class "wcmdscale" results also retun the function call and dimensions have names. * ordilabel: was missing ordiArgAbsorber() on the plotting calls to text() and polygon(). Thus lots of warnings were raised in use. * orditorp: added argument select, to choose which of the rows of scores are plotted, so matches with ordilabel() and ordipointlabel(). Version 2.1-22 (closed January 8, 2013) * multipart: argument global was printed as TRUE regardless of the actual argument value. This did not affect calculations. Reported by Valerie Coudrain. * monoMDS, metaMDS: Default convergence criteria were changed in monoMDS. Most importantly, now scale factor of the gradient is sfgrmin = 1e-7. The former limit 1e-5 was much too slack with large data sets and iterations stopped too early without getting close to the solution. In addition, scores() ignore now requests to scores beyond those calculated instead of failing, and scores.metaMDS() does not drop dimensions. * metaMDS: Iteration sometimes finds a false convergence, or an identical solution to the previous best although a better solution can exist. These are undetected except sometimes in parallel processing. Therefore we first label convergence false when we find a new best solution, and then study if it really converged. This is a rare effect, and can only be seen with parallel processing. An example is set.seed(7) metaMDS(BCI, k=4, parallel=2) which will converge in run 7 with the old code although run 8 would be better, but converges in run 18 with the new code. * nestednodf: added plot() method modelled after plot.nestedtemp(). * ordiR2step: gained argument 'R2scope' (default TRUE) which can be used to turn off the criterion of stopping when the adj-R2 of the current model exceeds that of scope. This option allows model building when the 'scope' would be overdetermined (number of predictors higher than number of observations). Pierre Legendre needed this option for some checks with huge AEM/PCNM scopes. * envfit, plot.envfit: Plotting an object fitted by envfit() would fail if p.max was used and there were un-used levels for one or more factor constraints. The un-used levels could result from deletion of observations with missing values or simply the result of supplying a subset of a larger data set to envfit(). Both cases are now handled through the use of droplevels(). Version 2.1-21 (closed November 19, 2012) * New version opened with the CRAN release of vegan 2.0-5 on Oct 8, 2012. * dispindmorisita: output gained a new column for Chi-squared based probabilities that the null hypothesis (random distribution) is true. * clamtest: output was wrong when some of the possible species groups were missing (bug report submitted by R Telford). * procrustes: plot() of two-dimensional solutions often draw original axes in a wrong angle. The problem was reported by Elizabeth Ottesen (MIT). * msoplot: gained legend argument for positioning the legend according to user needs. Version 2.1-20 (closed October 8, 2012) * anova.cca: Dr Sven Neulinger (Christian Albrecht University, Kiel, Germany) reported several problems with anova.cca cases. All these were problems in scoping. Two problems solved with this commit were: (1) anova.cca(..., by = "axis") always failed in partial analysis (with conditions), (2) anova.cca(..., by = "term") failed in partial models when there was no 'data=' argument, but the variables were in the global workspace. The first fix also seems to allow anova(, by = "axis") that used to fail. In addition, there is one unsolved problem with search order: stats function C() is found instead of variable 'C' and this gives an error message "object is not a matrix". * radfit: The methods are now more consistent over different levels of radfit models (radline, radfit, radfit.frame). The common methods to all include now AIC(), coef, deviance(), logLik(), predict() and fitted(). The radfit() objects gained points() and lines() methods. The data frame method also works with matrices. The predict() method gained new argument to change the expected 'total' size of communities. The fitted() returns now named vectors or matrices. It seems that radlattice() never displayed BIC contrary to documentation and labelling in graph. This has been wrong since the introduction of radlattice in r551 (2008-11-09). Now radlattice also check that it gets the "radfit" object it can handle. * Rd: documentation files upgraded to the third English edition (2012) of Legendre & Legendre. Version 2.1-19 (closed September 16, 2012) * adonis: Small changes in calculations. Simplified calculations of matrix G as centred distance matrix, and does not keep n x n matrices that are not needed (A) or used only once (identity matrix I). These can make calculations marginally faster and reduce the memory usage, but probably there are no observable effects in most data sets. The new centring is probably more accurate than older, and therefore the last significant digits can slightly change (magnitude 1e-12 in tests). * betadisper: An effective R stats .C function was used for double centring, but it was removed from the API in r60360 | ripley | 2012-08-22 07:59:00 UTC (Wed, 22 Aug 2012). This removal stopped betadisper() with error. Now we have a less efficient R code for the same purpose. However, the effects in timing should be negligible. * density methods: all vegan functions that return simulated or permuted statistics have now density() methods that directly access the returned statistic. The functions return an object of class "vegandensity" that inherits from class "density". The object is identical to class "density", but it is amended with item "observed" that contains the observed statistic. The observed statistic is also put among permuted values when estimating the density. This can cause a pimple in density lines when the observed statistic is very different from simulated values, but it is consistent with the permutation tests. The function has a plot.vegandensity() function that is similar to plot.density(), but it also draws a vertical line for the observed statistic. The density methods were made available for adonis, anosim, mantel & partial.mantel, mrpp, permutest.cca and procrustes. The anova.cca function does not return permutated statistics. All density methods handle only one statistic. Function adonis() can return a matrix of permuted F-values for each term, and it gained a densityplot method (lattice package) that can handle all these simultaneously. Functions adipart, hiersimu and multipart were made oecosimu-compliant earlier and simultaneously they also gained the density and densityplot methods. * mantel, mantel.partial: Gained argument na.rm (defaults FALSE) to remove missing values from dissimilarities. To implement this, there were some internal changes in functions (that should not influence the results): The functions mixed cor.test() and cor(), but now only use cor(). Function cor.test() was only used to get the textual presentation of the correlation 'method', but this is now found internally. * protest: do not return the observed statistic as one of the permuted values but separately. * radfit: gained a predict method which works for single models ('radline'), radfit, and radfit.frame. All predict functions accept 'newdata' which need not be integer, but extrapolation may fail for some models. Needs still documentation. The function was provided due to a user request. Version 2.1-18 (closed August 20, 2012) * cIndexKM: internal function count() triggered a warning in R CMD check with R-devel because the funtion used .C() call to an unloaded packages "cclust". count() was never called in the current cIndexKM() and was removed together with the following currently unused functions: withinss(), varwithinss(), maxmindist(), vargss(). These deletions should have absolutely no visible effects. * envfit: the plot() method gained argument 'labels' to change the default labels. The default labels are displayed with the new labels() function. * vignettes: building vignettes failed in CRAN and R-Forge. These sites use TeXLive 2012 distribution which was not yet used by any vegan developer when vegan 2.0-4 was released. Ubuntu Linux still stocks TeXLive 2009, and new version is promised first for the 12.10 release, and many other Linuxes are just as old. TeXLive 2012 for MacOS was released in July 2012 and with that we could pin down the problem. There is hardly any user visible changes except that building vegan succeeds with vignettes. Version 2.1-17 (closed July 30, 2012) * New version opened with the CRAN release of vegan 2.0-4 on June 18, 2012. * biplot.rda: bug in specification of `type` argument if not supplied by the user; should have been a vector of length == 2. * adipart, hiersimu, multipart: default and formula methods of these functions were identical (also for the calculations) except in interpreting the input. Now the formula method only interprets the formula and calls the default method for the actual calculations without replicating its code. The "call" attribute of these functions now returns the generic function name without ".default", ".formula" suffix. Functions use now print.oecosimu() for displaying results and their specific print.*() functions were deleted. This involved changes in attributes: the printed attributes are now in object$oecosimu$simulated instead of object. * oecosimu: returns "call" attribute similarly as adipart(), hiersimu() and multipart(). The print.oecosimu() output changed, and shows the call. print.oecosimu() is able to display adipart(), hiersimu() and multipart() results, but does not show all informations that those dedicated functions showed about options. * Formula methods for adipart/multipart/hiersimu functions use a new internal (hierParseFormula) to interpret the formula. Version 2.1-16 (closed June 18, 2012) * envfit: plot() gained new argument 'bg' that triggers labelling with ordilabel() using the colour given in 'bg' as the background. * simper: added parallel processing for permutation tests in accordance with other vegan functions and with similar user interface. The code was developed by Eduard Szöcs in http://github.com. * predict.cca: number of rows must match in the original data and 'newdata' of cca() result, because original row weights are used in scaling the results. Now the match is checked, and non-matching 'newdata' is ignored with warning. Earlier this gave an error. Reported by Glenn De'ath. * betadisper: the method is biased with small, unequal group sizes. Bias corrected version can now be used with new argument 'bias.adjust' (defaults 'FALSE'). The problem was analysed and bias correction developed by Adrian Stier and Ben Bolker. * .checkSelect: standardise those plotting functions that have a 'select' argument that controls which rows of the scores are plotted. All these functions now use .checkSelect() to check and apply 'select' as appropriate. * ordipointlabel: gains argument 'select' which allows some rows of the plotted scores to be skipped in the same manner as for text.cca(). This only applies when a single set of scores is plotted. Otherwise it is ignored and a warning issued. * ordihull, ordiellipse: defaults to use semitransparent fill colour with 'draw = "polygon"', and gain argument 'alpha' to set the transparency. * ordihull: gained explicit 'col' argument and adds labels after drawing convex hulls so that filled hulls (with 'draw = "polygon") do not cover labels. With these changes, the behaviour of ordihull() is similar to ordiellipse(). The labels are centred more correctly. * metaMDS: A warning is issued on too good stress (zero or nearly zero). This is often a symptom of insufficient data. In general, you need n > 2*k + 1 points for k dimensions, and Kruskal's advice is to have n > 4*k + 1. With low number of points there can be several complete (zero stress) but different results, and no two convergent solution can be found. The warning is issued also when convergence was obtained, and information on dimensions is printed. FAQ gained an entry on the issue. * bioenv: accepts now dissimilarities or a square matrix that can interpred as dissimilarities instead of a community data frame. This allows using other dissimilarities than those in vegdist(). * update.nullmodel: explicit assignment is required to update the input object (nm <- update(nm, ...)). * ordiplot3d: the returned envfit.convert() function did not recognize 'choices'. Version 2.1-15 (closed May 11, 2012) * rrarefy, drarefy: check the data are integers -- the functions do not give sensible results with real values. * monoMDS: checks now that there is a sufficient number of non-NA dissimilarities for the analysis. People really try to use NMDS with too small data sets. The change was triggered by a user who had tried to find a six-dimensional solution for seven points (21 dissimilarities, 42 scores) using 100,000 random starts in metaMDS. With over-defined models there is an infinite number of different solutions with nearly zero stress, and no convergence is found. * ordiplot3d: function returns the projected coordinates of the origin, and function envfit.convert() that can project a three-dimensional envfit() result to the current plot. Unlike originally assumed, the function will not set equal aspect ratio for all axes. We try to compensate this by setting equal scaling to all axes. Version 2.1-14 (opened March 9, 2012) * Opened a new version with the CRAN release of vegan 2.0-3 on March 3, 2012. * Warton, Wright & Wang (Methods Ecol Evol 3, 89-101; 2012) had a paper where the analysed the confusion of location (differences between groups) and dispersion (variability within groups) in dissimilarity-based analyses. We have warned on this for long in vegan, but now we can get support from this paper. Explicit arnings added to anosim, mrpp, simper (where this is worst) and adonis (where this was already analysed by Marti Anderson when introducing the method). * adipart, multipart, hiersimu: permutation tests assumed constant full gamma diversity in all simulations even when the null model could produce variable gamma diversities. The default method ("r2dtable") had constant gamma diversity. * adipart, multipart, hiersimu: these are now generic functions with default and formula methods. The formula method is identical to the previous function, the default method can take two matrices as input, but the second argument describing the hierarchy can be missing. In this case a trivial two-level hierarchy will be assumed (each row is a seperate group, all rows are in same group). * anova of prc() objects by "axis", "terms" or "margin" failed due to NAMESPACE issues. Reported as issue #7 by Eduard Szöcs in github.com. * clamtest: wrongly used frequencies instead of the counts when calculating sample coverage to test x < coverage.limit. No detectable differences were produced when rerunning examples from Chazdon et al. 2011 (Ecology, 92, 1332--1343) and vegan help page. * envfit: failed if some of the environmental variables were factors with unused factor levels. Fixed in centroids.cca. Reported as issue #8 in github.com by Eduard Szöcs. * msoplot: expose 'ylim' as an argument. Previously, 'ylim' was set internally and user could not change it setting, although y-axis maximum was sometimes so low that standard errors were outside the plot, and legend covered lines. The default setting of 'ylim' was improved, and the function follows R idiom more closely. Reported in a private email to J.O. by Ricardo Pita. * scoverage: new function for sample coverage based correction for calculation of relative frequencies in count community matrices (Good 1953, Biometrika 40, 237--264). Version 2.1-13 (closed March 9, 2012) * cca/rda/capscale: names of levels could be dropped if a two-class factor was used as the only constraint. Noticed in an email of Sascha Kirchner (Univ Helsinki, Finland). * scores: expand description of the default method to avoid confusion with specific vegan methods. * scores.monoMDS: did not know 'choices' and hence plot() was also unable to choose dimensions. * vegdist: Added Cao dissimilarity (CYd). Thanks to Yong Cao for consultation. Version 2.1-12 (closed February 23, 2012) * scores.default: failed if users asked scores of non-existing axes. This was reported as an error in ordiplot() when the user tried to plot 2-dim graph of 1-dim solution in https://stat.ethz.ch/pipermail/r-sig-ecology/2012-February/002764.html * simper: new function to implement "similarity percentages" of Clarke (Austral. J. Ecol. 18, 117-143; 1993) contributed by Eduard Szöcs (Uni Landau, Germany). Version 2.1-11 (closed February 9, 2012) * indpower: now can handle input objects without dimnames. This caused problems with oecosimu, because nullmodel objects have no dimnames to save memory. Extended example on indpower help page shows the p-value and heterogeneity calculations suggested in Halme et al. 2009. * adonis, anosim, mantel, mantel.partial, mrpp, permutest.cca: do not need clusterEvalQ(parallel, library(vegan)) for socket clusters. * adonis: added missing 'mc.cores=' for multicore parallel processing. * bioenv: implemented parallel processing. * metaMDS: implemented parallel processing which runs iterations (tries) in batches of 'parallel' iterations. However, it seems that this does not work completely with monoMDS: basic results are OK, but 'diss' and 'dist' vectors are scrambled (tested in Linux & R 2.15.0) which is evident if you try to run stressplot() on the result. The problematic behaviour can also be generated directly with monoMDS(): mods <- mclapply(1:8, function(i) monoMDS(d), mc.cores=2) stressplot(mods[[1]]) The 'diss' and 'dist' seem to contain random rubbish as soon as mc.cores > 1. On the other hand, there are no similar problems with isoMDS() -- but it does not directly return 'diss' and 'dist'. If this cannot be solved, the parallel processing (r2069) will be reverted. * nesteddisc: new argument 'niter' to give the number of iterations to reorder tied columns. * renyi.Rd: fixed a broken link reported by Arne Erpenbach (Uni Frankfurt, Germany). Version 2.1-10 (closed February 5, 2012) * adonis: print info that terms are added sequentially -- this seems to confuse users. Make this change in adonis() instead of print.adonis to be prepared to add other policies. * adonis, anosim, mantel, mantel.partial, mrpp: implemented parallel processing. * RsquareAdj: implemented adjusted R2 for partial RDA results. The adjusted R2 of model rda(Y ~ X1 + Condition(X2)) is defined so that it is the same as component '[a] = X1|X2' in varpart(). Removed some dead code from RsquareAdj.cca(). * varpart: do not scale constraints to unit sd -- this makes constant columns (like all zero) into NaN and causes an error in simpleRDA2. Not scaling may help in problems like that reported in "[vegan-help][5477] Nested factors in function "varpart"?" by Katie Shelef on 26 Jan 2012. * use inconsolata fonts in vignettes. * added .Rinstignore file to list inst/doc files that should not be installed (Makefile, tex, bib, sty). Background: R 2.13.0 mandated to put vignettes to their specific vignettes/ directory, but this is incompatible with R 2.12.* where vegan also should work. The inst/doc directory can still be used (it isnow 'deprecated'), but system files (such as Makefile) and intermediate files (such as tex) are silently copied to the installation. R 2.15.0 (under development) added R CMD check test for these extra files. File .Rinstignore allows maintaining R 2.12.* compatibility and silences R 2.15.0 tests. Version 2.1-9 (closed January 22, 2012) * public launch of parallel processing in vegan. First step was to explain the implementation in decision-vegan.Rnw. * DESCRIPTION: vegan suggests 'parallel'. The 'parallel' package was released with R 2.14.0. If you need to check or use vegan with older R, you should set environmental variable _R_CHECK_FORCE_SUGGESTS_=FALSE (see, e.g., discussion https://stat.ethz.ch/pipermail/r-devel/2011-December/062827.html). * oecosimu, permutest.cca: new parallel block which honours setDefaultCluster() in R-devel (becoming R 2.15.0) and automatically uses parallel processing with socket clusters if setDefaultCluster was defined. Tested in R (unstable) (2012-01-16 r58122) with full features, in R 2.14.1 without setDefaultCluster, and in R 2.13.1 (2011-07-08) without parallel processing * anova.ccabymargin failed if none of the terms was analysed (all were aliased) and no permutations were performed. This would happen with, e.g., A <- dune.env$Management anova(rda(dune ~ Management + A, dune.env), by = "margin") or in general if all marginal effects were aliased. * capscale: plotting failed for mod <- capscale(dune ~ Condition(Management) + A1, dune.env). The centroids for Management were completely removed leaving a zero-row matrix of centroids, and this caused an error in plot() and would probably fail elsewhere. The same problem can appear with completely aliased classes, or when class centroids are nearly zero. * ordistep: handle cases where the marginal effects for adding/dropping are completely aliased. This should avoid problems like that reported in https://stat.ethz.ch/pipermail/r-help/2012-January/300167.html Version 2.1-8 (closed January 8, 2012) * betadisper: failed with an error in internal function betadisper() if there were empty levels. This could happen when 'groups' was a factor with empty levels, and was reported in https://stat.ethz.ch/pipermail/r-sig-ecology/2011-November/002525.html The behaviour is now corrected in ordimedian() which will return NA for empty factor levels. * nestedbetasor, nestedbetajac: New functions that implement decomposition of Sorensen and Jaccard beta diversities into components of turnover and nestedness following Baselga (Global Ecology and Biogeography 19, 134-143; 2010). These are documented with nestedness indices and are ready to be used with oecosimu(). * oecosimu: more informative text on 'alternative' hypotheses in the printed output. Return also the mean of simulations and show that in the printed output. * plot.cca: works with degenerate solutions where constraints are aliased and 'biplot' scores have zero rows. Stops with a comprehensible error message if a user requests non-existing scores (such as "bp" scores for unconstrained ordination). * rarecurve: new function to draw rarefaction curves for each plot, optionally with sample size vertical and corresponding horizontal richness lines. Soil microbiologists with sequencing data seem to want these, and I have seen them used elsewhere as well. Version 2.1-7 (closed November 19, 2011) * adonis: speed up implemented in r1636 was not passing the transposed matrices to internal f.test function. Reported by Nicholas Lewin-Koh. * metaMDS: arguments 'noshare = 0' and 'noshare = FALSE' are now different: zero is taken as the numeric threshold and always triggers stepacross(), whereas FALSE is logical and never triggers stepacross. * vegan 2.0-2 was released on November 15, based on this version. Version 2.1-6 (closed November 12, 2011) * FAQ: correct mark-up of hyper links (@uref{} instead of @url{}), add new entries on RDA scaling, scaling of NMDS stress and scaling of environmental arrows in cca/rda/capscale/envfit, plus some minor updates of old entries. * ordiarrows, ordisegments: gained argument 'order.by' that can be used to order the points within groups before drawing the arrows or segments. This message in R-sig-ecology seems to need this: https://stat.ethz.ch/pipermail/r-sig-ecology/2011-November/002464.html * ordispider: returns invisibly the coordinates to which each point is connected. Triggered by an email query of this functionality. * ordiplot3d: expanded example to show how to use xyz.convert() to add points as per https://stat.ethz.ch/pipermail/r-help/2011-October/293955.html * oecosimu: new proposition for implementing parallel processing following suggestions of Peter Solymos. The only relevant argument is now 'parallel' which can be either the number of parallel processes (defaults getOption("mc.cores", 1)) or a pre-defined socket cluster or NULL in which case it is taken as the default cluster defined by setDefaultCluster (this last option only works in R-to-be-2.15.0 unstable, and using NULL is a user error in R 2.14.0 and hence undocumented). The 'parallel' defaults to 1 (no parallel processing), but if the user sets the "mc.cores" option, all parallel processing functions will automatically use that number of parallel processes. (The "mc.cores" argument is used by the 'parallel' package, but it is normally unset.) If 'parallel' is a socket cluster or there is a default cluster ('parallel = NULL'), this will be used without setting up and closing the cluster. This (1) saves time, (2) allows using of other packages than 'vegan' if user has given command 'clusterEvalQ(library(foo))', and (3) makes unix-like OS (incl. MacOS X and Linux) to use the socket processing instead of forking. * permutest.cca: parallel processing modelled after oecosimu(). Version 2.1-5 (closed October 30, 2011) * opened a new version with the release of vegan 2.0-1 on Oct 20, 2011. * metaMDSdist: the default value of "noshare" was inconsistent with metaMDS(), and therefore stressplot() could fail for engine="isoMDS". Usually metaMDS() sets the 'noshare' depending on the engine, but metaMDSdist() is called directly from capscale(..., metaMDSdist = TRUE) and metaMDSredist (for stressplot), and now these default to extended dissimilarities. The problem was reported by Falk Hildebrand * capscale: could fail if constrained component had zero rank, typically in partial models where constrained component was completely aliased. This was observed when checking an R-News query of October 19, 2011 (https://stat.ethz.ch/pipermail/r-help/2011-October/293077.html) Version 2.1-4 (opened October 20, 2011) * adonis, anosim, CCorA, envfit (factorfit, vectorfit), mantel, mantel.partial, mrpp, protest: user interface changed and 'permutations' can now be a matrix where each row gives permuted indices. Internally first find a permutation matrix or use the given permutation matrix, and then find the statistics with single {ls}apply. Functions adonis and mrpp already worked like this, but they gained the option of matrix input. This makes the functions ready both for the 'permute' package and for parallelization (replace {ls}apply with mclapply, par{SL}apply). Function envfit() was much simplified by generating a common permutation matrix in envfit.default() and using that as the input to vectorfit() and factorfit(). The anova.cca* cases should also be made to use a single generated permutation matrix, as permutest.cca() allows this. Version 2.1-3 (closed October 16, 2011) * added plot.preston, lines.preston and plot.fisher (that also can add points and lines). These are similar as plot.prestonfit and plot.fisherfit, but without the fitted model. Among other things, they can be used to add alternative models to fisherfit and prestonfit models. * sd() function for matrix or data.frame columns was deprecated in R r57185 (R-to-be-2.15.0). The reason seems to be that users were confused when median() did not work on data.frames, and as a solution the R developers decided to take care that mean() or sd() will not work either (it would be nice to understand how these people think). Fixed in rda.default, capscale and simulate.rda/cca/capscale. It seems that this was also implemented in soon released R 2.14.0 as r57209 | maechler | 2011-10-10 19:28:33 +0300 (Mon, 10 Oct 2011), but as message() instead of a warning(). * nesteddisc: use only max 200 tries to reorder columns: tracing showed that in most cases an improved ordering is found rather quickly, and trying up to 1000 times takes awfully long. Now faster, and usually as good as earlier, but slacker. * simulate.rda/cca: implemented 'nsim' or an option to generate an array of simulated matrices inheriting from "simmat" object and using print.simmat() for a compact display. If 'nsim = 1', similar 2-dim matrix is returned as before so that cca(simulate(mod)) still works. For 'nsim > 1', the 'indx' argument should have 'nsim' rows, but if 'nsim' is missing, number of rows in 'indx' will give the number of simulations, and 'indx' can be made with permute::shuffleSet(). Implemented for rda() and cca() results, but not for capscale() where simulate returns a "dist" object which is nasty to pack into an array. * oecosimu: An attempt to set 'parallel' processing in evaluating the statistic, and only evaluating the statistic -- the simulation of null models is not influenced. Both "multicore" (fork) and "snow" (socket) style parallelization are implemented. * permutest.cca: implemented 'parallel' processing in permutest.cca. The parallelization only works in R 2.14.0 (alpha) and later with the 'parallel' package. Function permutest.cca gets a new arguments 'parallel' (defaults 1) that gives the number of parallel process, and 'kind' that selects the parallelization style which is either "snow" (large overhead, but works in al OS's) and "multicore" (faster, but only works in unix-like systems like Linux and MacOS X). The arguments are silently ignored if the system is not capable of parallel processing. The functionality cannot be included cleanly: it depends on the package 'parallel', but suggesting 'parallel' fails R CMD check in the current R release (2.13.2) which does not yet have 'parallel'. So we get warnings: 'library' or 'require' "call not declared from: parallel", and "permutest.cca: no visible global function definition for ‘mclapply". However, with these warnings, the function passes tests in R 2.13.2. * permutest.cca: the user interface changed so that argument 'permutations' can be either the number permutations (like previosly), or a matrix of permutations like produced by permute::shuffleSet(). This was done to move RNG outside parallelized code. This will also allow much simpler and anova.cca* code. Currently, the 'strata' argument will not work, but this will be fixed "real soon now". Version 2.1-2 (opened October 4, 2011) * permutest.cca could not be update()d, because "permutest.cca" was not exported from NAMESPACE -- only "permutest" was exported. Another buglet (and this calls for checking other 'call' items that return non-exported calls). * metaMDS did not reset 'tries' when the analysis was started from 'previous.best' of a different model (except when no. of dims 'k' changed). I think this was a bug(let). Fixed in metaMDSiter.R. * commsimulator is going to be deprecated: it is no longer used in oecosimu() ore elsewhere in other functions. Currently, functions make.commsim(), nullmodel() and simulate.nullmodel() do the same, and more. As the first step, its documentation in oecosimu.Rd is moved to vegan-deprecated.Rd. * examples: cut donw some excessively time consuming examples. Profiling of all vegan examples showed that 25% of total time was spent in anova.cca, and 12.6% in ordistep, but they probably are sufficiently documented more quickly. Version 2.1-1 (opened September 20, 2011) * oecosimu: the 'comm' argument can be either 1) community data, 2) a nullmodel object or 3) a simmat object. If 'comm' is a nullmodel, simulation method is found from the nullmodel object, and if 'comm' is a simmat object, its matrices are analysed without simulations within oecosimu(), and different statistics can be swept out based on the same set of simulated matrices. * permatfull/swap is using the new simulate.nullmodel(...) infrastructure. permatfull1 and permatswap1 removed from vegan devel. * Value of 'mode' is set to "double" for the following null model algorithms in make.commsim: abuswap_r, abuswap_c, r00_samp, r0_samp, c0_samp. These can take any nonnegative real valued matrix as input. nullmodel function now handles storage mode reliably. * meandist bug fix: tapply() function used to find mean group x group dissimilarities could reorder the class levels and return a confused matrix. This could happen in particular when the 'grouping' was a vector of integers which then were ordered alphabetically so that "1" < "10" < "2". Now uses internally more stable way of applying tapply() which should have the danger of reordering the levels. Incidentally, this also seems to be faster. The problem was found by Dr Miguel Alvarez (Univ Bonn). * nestedness.c: changed interface in "swapcount" and "rswapcount" which now require integer data matrix. The first argument in .C call should now be defined as as.integer() instead of old as.double(). * str.nullmodel: new function to display the *str*ucture of the "nullmodel". The "nullmodel" is an environment and therefore does not show in usual str() although its items can be accessed with $-notation. No documentation, but alias in nullmodel.Rd. * New functions: commsim is used to define Null Model Algorithms via a function that returns n x m x nsim array of simulated matrices based on structural constraints. make.commsim contains Null Model Algorithms already defined in vegan from commsimulator and permat* functions (and some more). The nullmodel function creates an environment, where statistics of the input matrix are stored. The environment also stores updated status of sequential algorithms and current number of iterations. The update and simulate methods are used to update the nullmodel (for sequential algorithms) or simulate random matrices, respectively. The simulate method returns the n x m x nsim array (simmat class). Efficiency gains are sometimes high (because marginal statistics are calculate only once by nullmodel), but not significant in most cases. Most advantageously, this implementation can unite the commsimulator and permat* branches and can serve as basis for further extensions. Current intent is to investigate how this low level infrastructure can be used within oecosimu and permat* functions without breaking current vegan functionality. Version 2.1-0 (closed September 20, 2011) * New major version opened with the release of vegan_2.0-0 on September 8, 2011. * nestedness.c: isDiag* uses now switch(sX) where sX is the number of non-empty cells. The "swapcount" method uses new isDiagFill which finds the largest swappable element that does not change the fill, and "rswapcount" uses isDiag which finds both the largest swappable element the change in fill. The swap and trialswap also find first the fill of the 2x2 submatrix, and continue only if fill == 2. The measurable effects are small again (perhaps 1%). * tests: added tests for commsimulator, permatswap1 and permatfull1 before starting the adventures with nestedness.c. * commsimulator: a bit less overhead -- all attributes set simultaneously instead of setting separately dim, rownames and colnames. The results should be identical(), running should be marginally faster or neutral. * permatswap: there was a bug in internal C routine, and therefore not all permissible swaps were performed. Based on limited analysis, the effects of this bug seem to be negligible. It is, however, recommended to re-run all analyses. The C code was made faster by getting quickly out from isDiag* if there are only 0 or 1 filled items, because there is nothing to swap. Tests show that the C code indeed is ca 10% faster in permatswap(BCI, method="swa", thin=1000, times=999), but only a 20-25% of time was spent in C, and the new permatswap/permatswap1 spends 2.2x longer in other parts. With faster C code the net slowdown is 1.7x. * various attemps of speed-up (often in vain): The speed-up started with permatfull/permatswap which appeared to be by far the slowest functions in R CMD check --timings. Later this proved to be a feature of checking these functions in MacBook Air/MacOS X: the functions were not slow in Linux, nor in MacBook when the very same tests were run outside R CMD check. However, several changes were made: - permatfull/permatswap avoid data.frame/matrix casting, and save results in matrices. This was based on misleading test statistics in MacOS, and it is not sure what are the real effects. - commsimulator: smaller overhead. - sample.int was used in place of sample in commsimulator, nesteddisc, permuted.index and poolaccum (the effects may be measurable for permuted.index, but not large). - centroids.cca: much faster. This was perhaps real -- profiling (not timing) showed that cca.formula/rda.formula have a large overhead over cca.default/rda.default, and centroids.cca was responsible for a lot of that -- most is due to ordiParseFormula. - permutest.cca uses La.svd, but the effects are non-measurable and only concern case first = TRUE. - MDSrotate example: envfit does not do permutations. * New functions: permatfull1 and permatswap1. Both functions return a single permuted matrix. These functions are now called repeatedly by the corresponding permatfull and permatswap functions. * New function: clamtest (with summary and plot methods). The method uses a multinomial model based on estimated species relative abundance in two habitats, it minimizes bias due to differences in sampling intensities between two habitat types as well as bias due to insufficient sampling within each habitat. The method permits a robust statistical classification of habitat specialists and generalists, without excluding rare species a priori. Based on Chazdon et al. 2011 (Ecology, 92, 1332--1343). * raupcrick: new function to implement Raup-Crick (dissimilarity/ probability) index with unequal sampling probabilities of species. Brian Inouye informed about their paper (Chase et al., Exosphere 2:art24 [doi:10.1890/ES10-00117.1]; 2011) where they showed that Raup & Crick said that we should use sampling probabilities proportional to species frequencies in assessing their index, but vegdist(x, "raup") uses equal probabilities. Unequal sampling probabilities cannot be directly implemented in vegan, but the Chase et al. method can be implemented as oecosimu(x, function(x) designdist(x, "J"), method="r1"). Basically, the current function uses this, but with boosted code that is much faster than designdist(). Version 2.0-0 (released September 8, 2011) * opened the release candidate of vegan_2.0-0 on September 3, 2011. * some old functions used attributes(x)$which instead of more correct attr(x, "which"), and in addition postMDS() used attributes(x)$names instead of names(). Concerns anosim(), initMDS(), postMDS(), mantel(), mantel.partial() and mso(). initMDS() was one of the two functions that was unchanged since the first vegan release on 6/9/01, and it was changed day before it turned ten-years-old. After this, wisconsin() is the only unchanged function from the first release. * vegan-defunct: put definitions of removed "new" permutation functions to vegan-defunct and have a vegan-defunct.Rd for them. Version 1.92-2 (closed September 3, 2011) * monoMDS: saves and displays info on the dissimilarities used, and displays the number of points. Checks that input is dissimilarities, and warns on negative ones. * MDSrotate: metaMDSrotate() was renamed to MDSrotate(), and metaMDSrotate() was .Deprecated. * meandist: warns if some dissimilarities are negative (small negative values are tolerated). * vegandocs: copied branches/1.17/inst/NEWS as ONEWS (old news), and adapted vegandocs. Expanded documentation of vegandocs(). Version 1.92-1 (closed August 28, 2011) * adonis, betadisper, mrpp: check that dissimilarities are non-negative (small negative values are tolerated). The test was not added to meandist: there may be legitimate usages for correlation-like objects although summary.meandist() is invalid. The addition was triggered by a user who tried to analyse Chase et al. Raup-Crick values in the range -1 .. +1 in betadisper(). * anosim: warn if some dissimilarities are negative. Function can handle negative dissimilarities because it is based on ranks, but probably this is a user error (but can be intentional and correct). * metaMDSrotate: can rotate monoMDS() results. * monoMDS: gained argument 'pc' (defaults TRUE) to rotate the final scores to principal components. * specaccum, fitspecaccum: gained predict() methods. With specaccum() predict(..., newdata) can estimate values for 'newdata' with linear or spline interpolation if necessary. Without 'newdata' the function returns the the fitted expected richness. With fitspecaccum(), the predict.nls() is performed to each fitted model. Function fitspecaccum() is written so that default fitted(), residuals() and coef() work. * specpool: failed if 'pool' had NA values or empty factor levels. Checks that 'pool' length matches nrow of data. * NAMESPACE: imports nobs from permute_0.5-3 in R 2.12.2 and older which do not yet have nobs() generic. Do not export orderingKM & ordimedian. Remove aliases to non-exported and non-documented print and print.summary methods in Rd files (but leave documented ones). * vegandocs: shows the permutation vignette of the 'permute' package. Version 1.92-0 (closed August 23, 2011) * open new version with the release of vegan_1.17-12 on August 17, 2011. * fitspecaccum: a typo and a condition was never true. * monoMDS & metaMDS: always print types of stress and ties. * NAMESPACE: export pasteCall for analogue. * NEWS: added file NEWS.Rd for vegan release 2.0 news in Rd format. Keeping neat formatting of this file may be challenging to many text editors, but it is worth trying. This file should list the important items for regular vegan users, whereas this ChangeLog should explain the changes to other vegan developers. If getOption("help_type") == "html", should start a browser to show the NEWS, and use text console otherwise ("html" tested on MacOS R.App GUI, text mode in Linux and MacOS bash shells, no testing on Windows yet). Although the browser knows how to display NEWS.Rd, it does not format the page properly (\code{foo} shows as ordinary text etc). As a kluge we now make a NEWS.html file in the inst/doc directory. NEWS.html cannot be made in the inst/ directory since browser only agrees to show NEWS (plain) in the main directory or files in doc directory. Version 1.91-0 (closed August 18, 2011) * NAMESPACE: added namespace to vegan. Currently hides all that can be hidden, and exports only main functions: Some method functions will be probably exported later. Superfluous aliases were removed with the registration of S3 methods, and scoping was changed a bit in anova.ccabyterm, model.matrix.cca and model.frame.cca. as.mcmc is not yet registred: it need changes in Imports field of DESCRIPTION (same with vif.cca: vif is defined in car, but we could have our private vif generic here?). * Vignettes: use now jss.cls shipped with R instead of amsart.cls for better consistency with R and permute style. * plot.envfit: When `add == FALSE`, make sure we leave enough room around the plotting locations to contain the arrow and centroid labels. * plot.isomap: will always plot points or text above net so that they are visible. Gained argument 'type'. * ordiplot: expose arg 'cex' so that user can change its value. Age shows in this function, and it is badly in need of complete re-writing to improve its flexibility. Version 1.90-2 (closed August 6, 2011) * ordilabel: gained argument 'select'. * orditorp: works with NA scores. * make.cepnames: ignores duplicated and trailing dots. It is assumed that the names to be changed came via R make.names() mechanism which changes all blanks and non-accepted characters to dots, and this may give extra dots in names. Gained argument to take the second item of the name instead of the last which may help in names like "Vaccinium vitis-idaea" (which becomes "Vaccinium.vitis.idaea" -> "Vaccidae") or names which have authors or other rubbish at the end. Version 1.90-1 (closed July 23, 2011) * cca/rda/capscale support functions: cca/rda/capscale were changed to return zero components instead of NULL for completely aliased constraints (CCA) or saturated models (CA), but several support functions still checked for is.null() only, although they also should check if rank == 0. Some functions failed, and these are fixed here: anova.cca, bstick.cca, goodness.cca/rda, predict.cca/rda, screeplot.cca. The following functions did not fail, but were fixed: anova.ccanull, calibrate.cca, ordirgl, ordiresids, ordiplot3d, deviance.cca/rda (simplified), ordixyplot. * swan: gained argument 'maxit' that can be used to restrict the number of beals() passes on zeros. The default is 'maxit = Inf' which is the old behaviour: beals() passes on zero entries continue until there are no zeros or the number of zeros does not change. Probably only 'maxit = 1' makes any sense (in addition to the default 'maxit = Inf'), but all values are allowed. * metaMDSrotate: results could be a bit off with NA in environmental vector and >2D solution. The starting scores must be orthogonal, but the initial orthogonalizing PCA was run without removing NA cases. * ordiellipse, ordihull, ordispider: will remove NA scores that can appear with na.action in cca/rda/capscale (and perhaps in other cases). * betadiver: argument 'index' was renamed to 'method' for compatibility with dist() objects. Argument 'index' is still recognized with a warning. * metaMDS: Documentation and interface adapted to monoMDS(). Argument 'noshare' defaults to FALSE with monoMDS(), since tie breaking seem to handle tied maximum dissimilarities even better than stepacross(). For 'engine = "monoMDS"' 'noshare' defaults to TRUE. The 'noshare' argument now accepts logical arguments in addition to old numeric (FALSE worked previously because it was interpreted as numeric 0, but TRUE has now meaningful interpretation). Remove argument 'old.wa' introduced in rev280 on 24/3/08 for backward compatibility when calculating WA scores started to use the same transformed data as analysed. * ordiplot: Now handles non-par arguments to plot.default without warnings. Things like `axes = FALSE` in the call now just work! Version 1.90-0 (closed July 3, 2011) * vegan now depends on the permute package for new permutation designs. This initially version strips out all the old "new" permutation code from the R and Rd files, and patches up permutest.betadisper to use shuffle() to generate permutations. The 1.90-0 devel series will lead the way to vegan 2.0-0. There may well be build problems as we iron out permute / vegan meshing. * capscale: could not be embedded in another function after fixing the update() in 1.18-31 -- problems were anticipated in ChangeLog, and they were realized. * monoMDS: text for a proper help (Rd file). Other help files updated for monoMDS. Stress type 2 is printed both in monoMDS and metaMDS. stressplot() prints now R2 for monoMDS() results, and docs tell that "linear fit" of stressplot() is related to "stress 2". Version 1.18-33 (closed June 21, 2011) * adonis: made faster (much faster in tests) by polishing the f.test() in the innermost loop. Version 1.18-32 (closed June 14, 2011) * closed with the release of vegan_1.17-11. * anova.prc: new function that casts prc() result to a corresponding rda() and submits this to anova.cca(). With this is it is possible to analyse anova(..., by = "axis"). Other cases are possible as well, but not very useful as "margin" and "term" only analyse all constraints as a single matrix. Now some functions that were made refuse prc() results in 1.18-30 work again, and anova.ccabyaxis() even makes sense. This fixes a problem Jae Pasari raised in his email. * vegdist docs: Brian Inouye informed us that we are not calculating the Raup-Crick index like originally suggested: we use equal probabilities for all species, but the species probabilities should vary with their frequencies. Doing this would break vegdist.c design, and require Fisher's non-central hypergeometric distribution, and that is not available in base R. However, it seems that a simulation version could be implemented in oecosimu(). Now we document the problems in vegdist.Rd, but do not correct the behaviour. The key paper is available over http://www.esajournals.org/doi/full/10.1890/ES10-00117.1 * rda & capscale: similar changes as in cca in r1517 (version 1.18-24). CA component is always returned, even with zero rank, and CCA and pCCA components are NULL only if they were not specified originally, and if they become zero rank because of aliasing etc, they are returned as zero components (instead of NULL). * print of cca/rda/capscale: do not "Proportion" column in unconstrained ordination which only has one component. However, this will be printed also with zero pCCA or CCA (but not with NULL). Version 1.18-31 (closed May 30, 2011) * ordiR2step: more informative about rejecting 'scope': partial models are not (currently) accepted due to the design of RsquareAdj.rda(). * specnumber: gained argument 'groups' to find total richness within each group. An example shows how to use this to find one index that Whittaker suggested to estimate beta diversity. * capscale: species scores will be NA if input data were dissimilarities and no 'comm' was given. update(capscale_result) failed because LHS data were evaluated in the environment(formula). Now removed the explicit environment: I ran some tests and found no problems, but let's see what the real life brings along. The changed point is commented so that this change can be reconsidered if necessary. * oecosimu: reverted r1557 of version 1.18-26, or splitting tied values. This was introduced because Chase et al. (Ecosphere 2011, http://www.esajournals.org/doi/pdf/10.1890/ES10-00117.1) used this in their Raup-Crick index. This is against established practice in order statistics and therefore we cancelled this. * specaccum: reverted r1505 & 1507, or introduction of weighted species accumulation model in version 1.18-23. The method was introduced because of user request, but these persons lost their interest and therefore there is no reason to see the trouble that finalizing these functions would require (see comments on version 1.18-23 about some of the work needed, and there is more). Version 1.18-30 (closed May 26, 2011) * opened with the release of vegan 1.17-10 on April 27, 2011. * nobs: documented nobs() methods for vegan. These seem to be needed in R 2.13.0 and should be released soon (there is no need to add R >= 2.13.0 dependence as long as we do not use these functions ourselves within released vegan code). * treeheight: dramatic simplification and speed-up of the code. * scores.cca/rda: failed if user requested only non-existing scores. Now return an empty list of scores instead (with possible attributes). * prc: several support methods did not work with 'prc' results, and these now stop with an informative error instead of an uniformative error. Concerns anova.ccabymargin, anova.ccabyaxis, drop1.cca, add1.cca, model.frame.cca, model.matrix.cca. This was found out after a private user query about having signficance test for the sencond PRC axis. Version 1.18-29 (closed April 27, 2011) * capscale: could fail with add = TRUE in R 2.13.0. A kluge was necessary in cmdscale() pre 2.13.0, but the feature was fixed in R 2.13.0 and unnecessary fix failed. Now the kluge is used only in older versions of R and capscale should be working both in 2.13.0 and older R. * adipart.Rd, multipart.Rd: cancelled some excessive speed-ups in example code made in r1204. Some of these speed-ups never made to the release version, but were only made in the devel branch. The sped-up examples were also merged to the release (adipart.Rd, kendall.global.Rd, multipart.Rd, mantel.correlog.Rd, pertmatfull.Rd, radfit.Rd). Also reverted r1224 so that Guillaume's original r1206 (49 permutations instead of 99) is used again. Probably we should speed up some other examples. The five worst cases (timing in MacBook Air) are: ordistep (19.0 sec), add1.cca (7.2 sec), tsallis (7.0 sec), prc (5.6 sec), vegan-package (5.2 sec). * vegan-package.Rd, ordistep.Rd: speed up examples. Version 1.18-28 (closed April 11, 2011) * Peter Minchin joined the vegan team. * monoMDS: a new function with Peter Minchin's Fortran90 code for NMDS. The full Fortran90 code has global, local, linear and hybrid MDS, configurable and valid tie treatment, handles missing values, and allows adding new points to existing ordinations. The Fortran code is highly tuned, and much faster than other alternatives in R. The R interfaces allows access to most features of the Fortan90 code, except adding new points to the ordination (which will need a separate function). The missing values in dissimilarities are also handled in the R interface. The function will eventually replace isoMDS() of the MASS package as the main NMDS engine in metaMDS(). * metaMDS: uses monoMDS() as its default engine (and gained argument 'engine' to select either monoMDS() or isoMDS()). * stressplot: is generic with a specific method for "monoMDS" objects, and the old function as the default method. * goodness: got a new method for "monoMDS" objects. The function handles all monoMDS() models, but does not take into account possible missing values in input dissimilarities. * metaMDSrotate: gained argument 'na.rm' (defaults FALSE) to remove missing data from the continuous vector. Version 1.18-27 (closed April 1, 2011) * orderingKM: Kurt Hornik found a problem when inspecting the Fortran subroutines with gcc 4.6 tools when checking vegan release 1.17-9. Version 1.18-26 (closed March 31, 2011) * version closed with the release of vegan 1.17-9. * oecosimu: added argument 'tiesplit' (defaults FALSE). If TRUE, simulated values tied with the observed statistic are split so that half of them are regarded as satisfying the condition, and removed from those cases which are greater or less (as given by 'alternative'). This is usually *not* done, but implementing Raup-Crick dissimilarity in oecosimu() following http://www.esajournals.org/doi/pdf/10.1890/ES10-00117.1 (Chase et al., Ecosphere 2011) uses this option. However, cross-checking the "r0" null model against the vegdist(..., "raup") indicates that the options should be set FALSE (and this would mean that the change is reverted). * anova.ccabyaxis: I (JO) noticed in an ORDNEWS message that anova(..., by = "axis") ignores the original Conditions in partial models and so gives wrong results in partial models. The fix finds the conditioning matrix as qr.X(object$pCCA$QR), and uses this as a Condition in updated models. Added a regression test that checks that statistics and residual df match. * tolerance: new function to compute species tolerances and sample heterogeneities as Canoco does. Includes a method for objects of class "cca". * plot.contribdiv: plot now draws axes and box *after* doing the drawing - stops polygons overplotting the axis and box. Version 1.18-25 (closed March 23, 2011) * ordilabel: gained argument 'xpd' to draw labels outside the plot region. * ordisurf: got a formula interface as an alternative to define the model. Also now accepts `gam()` argument `select` to add an extra penalty to smooths so they can be penalized to zero (i.e. removed from the model). This is a form of model selection. Estimation of smoothing parameters can now be determined via argument `method`. Both `select` and `method` have been set to defaults that were implied in previous versions of the function. If smooth is penalized to (effectively) 0, countour plotting is suppressed. New argument `gamma` can be used to increase the cost of each degree of freedom used by a model in the GCV or UBRE/AIC scores used in smoothness selection. New argument `plot` can be used to stop ordisurf producing any graphical output. A plot method is now provided that can draw contour or perspective plots of ordisurf results, or plot the fitted GAM surface. * metaMDSrotate: can now rotate > 2-dim solutions so that the first axis is parallel to a given vector and all others are orthogonal to the vector (and rotated to PC if they were originally). Earlier had argument 'choices' which was supposed to select only two axes to be rotated (but failed before rev 1533), but now lost 'choices' and always uses all dimensions, and orthogonalies dim 2 and beyond against the given vector. There was a query in R-sig-ecology on having two vectors in 3-dim ordination which triggered the current changes, but this does not still answer to the question of https://stat.ethz.ch/pipermail/r-sig-ecology/2011-March/001947.html. It would be possible to have this with recursive metaMDSrotate for 1..N for first 'vec', then 2..N for the second 'vec', but the later 'vec's could be correlated with previous axes. * metaMDS: 'previous.best' can now be a user-supplied configuration, or a result of isoMDS(). If 'previous.best' is an isoMDS() or a metaMDS() result, it can have different number of dimensions than the current 'k': extra dimensions are dropped off, or noisy extra dimensions are added as needed. This may help in running metaMDS() with a range of 'k'. Not yet documented. Version 1.18-24 (closed March 10, 2011) * cca: will return NULL item for CCA only if constraints were not given. If the CCA component has zero rank (= constraints were aliased or were orthogonal to the data), will still return a CCA item with zero eigenvalue, rank, scores etc plus info on "alias". The residual component will never be NULL, but similar zero-containing component is returned even when there is no residual variation. Usually these changes only manifest in arbitrary data sets, but we have had email queries in R-sig-eco on completely aliased constrainsts when users assumed that model cca(y ~ A + Condition(A)) would be similar to a random effects model and A could be analysed both as a Condition and as a Constraint instead of being aliased. Naturally, overfitted models with empty residual components do appear often. Currently the printed output includes these zero items with Inertia and Rank 0, whereas NULL components are not displayed. The changes so far only concern cca(); rda() and capscale() are only changed after (and if) this change appears sensible and correct in cca(). * drarefy: a new function to return the probabilities that a species occurs in a rarefied sample (= sampled without replacement) of a given size, (or given sizes specified separately for each row if 'sample' is a vector).. * diversity, rarefy, rrarefy, specnumber: accept vector input. All functions documented in ?diversity now accept vector input. Function fisher.alpha and drararefy already accepted vectors. Version 1.18-23 (closed February 28, 2011) * opened with the release of 1.17-7 based on version 1.18-22 on February 16, 2011. * does not use unnecessary return() plus other stylistic twitches. This touches 24 functions, but users should see no difference. * procrustes: checks and reports different number of rows instead of failing in crossprod() with incompatible arguments. * prestonfit, as.preston: default now 'tiesplit = TRUE'. * as.preston (prestonfit, prestondistr): uppermost octave could be NA with 'tiesplit = TRUE' (a bug). * decorana: Cajo ter Braak notified about false expansion of computed zero eigenvalues in rescaling which then are used in estimating eigenvalues. They are now zeroed. Cajo's example was a 6x5 petrie matrix: petrie <- matrix(0, 6, 5) diag(petrie) <- 1 petrie[row(petrie) - 1 == col(petrie)] <- 1 decorana(petrie) Gavin Simpson had another failing case: dummy <- matrix(c(1,3,1,0,0,0,0,0,0, 0,0,0,1,3,1,0,0,0, 0,0,0,0,0,0,1,3,1), nrow = 3, byrow = TRUE) which also failed in orthogonal CA ('ira = 1'). Now the zeroing is done after estimating each axis, and the results are similar as in Canoco. However, the results of orthogonal CA with 'dummy' are wrong in both: there should be two eigenvalues of 1, but only one is reported. This is a fundamental problem in the orthogonalization algorithm in the Fortran code presumably shared between vegan:decorana and Canoco. * specaccum: first step in implementing weights on method="random". Not yet documented nor supported. Issues that must be solved are plotting (all lines? summaries?), summarizing (use approx to get average predictions?) and the very natural link to fitspecaccum models. * nobs: R 2.13.0 will introduce new generic nobs() that will return the number of observations. This is at least needed in functions to evaluate BIC and in step() and functions it calls. Implemented nobs() for several vegan classes -- some of these may be unnecessary. Not yet documented but aliases in vegan-internal.Rd. * FAQ updates: using 'select' in ordination text() and points(), using 'xlim' to flip axes or zoom into ordination plot(), the non-effects of 'strata' in adonis(). All these indeed are frequently asked. * scores.default: clarified documentation (PR#1300). * vegdist: rephrased Chao index following PL. Version 1.18-22 (closed February 16, 2011) * nestednodf: did not go to 'weighted = FALSE' with quantitative data if 'order = FALSE'. Reported by Daniel Spitale. * eigenvals: learnt to know 'dudi' objects of the ade4 package, and 'pco' an 'pca' obejct of the labdsv package. * betadisper: streamlined code somewhat. * prestonfit: implemented splitting "tied" counts (1, 2, 4, 8 etc) between octaves following Williamson & Gaston (J Anim Ecol 43, 381-399; 2005) with argument 'tiesplit = TRUE' * specaccum: fixed typo -- 'individuals' instead of 'invidividuals'. plot() gained argument to use "individuals" as x-axis instead of "sites" with method = "rarefaction". Version 1.18-21 (closed January 19, 2011) * Fixes bug report #945 at R-Forge: anova.cca should now work with subset, missing data, functions of constraints (like log(x)), constraints or subset variables in data=, attached data frames or in working environments. * capscale: return additive constant ('ac') when 'add = TRUE'. * fitted.capscale, predict.rda: additive constant ('ac') subtracted from the estimated distances when 'add = TRUE' was used in capscale(). * predict.rda: type = "working" for capscale returns now scaled scores that produce the dissimilarities as Euclidean distances -- like was claimed in the help page. * simulate.capscale: implemented simulate() for capscale. This uses internal metric scaling mapping to simulate data and add error, but returns Euclidean distances adjusted to the original scale of input dissimilarities. The function uses only the real axes, and imaginary dimensions are ignored. * anova.cca: by = "term" and by = "axis" work now both with the data= statement and with variables in the GlobalEnv and subset= both in cca/rda. It seems that 'subset' is not implemented for capscale(), but otherwise models work. * cca/rda: added item 'subset' that is the subset argument evaluated to a logical vector. * capscale: implemented 'subset' (and this also works with anova.cca). It looks like all anova.cca tests pass also with capscale (but more thorough test will be run before closeing the anova.cca bug in vegan-forge). It seems that subset and na.action also work. * anova.cca: most cases work now when terms are given in attach()ed data frame after changes to anova.ccabyterm() and ordiParseFormula(). * anova.cca: works (mostly) when there are missing values. The exception found was 'by = "term"' when the data frame is not given as a 'data=' argument, but as an attached data.frame. In this case 'by = "term"' detects a change in the number of rows and stops with a message. Version 1.18-20 (closed January 9, 2011) * base of vegan release 1.17-6 (released on Jan 10, 2011). * capscale: the total inertia was defined as the sum of absolute values of inertia so that negative eigenvalues of imaginary dimensions increase inertia (changes in 1.18-17 and release 1.17-5). Torsten Hauffe reported this as a bug in vegan open-discussion forum in R-Forge on Dec 22, 2010. I (JO) answered on Jan 1, 2011 and justified the change, and said this is a design decision, and not a bug. Now I have reconsidered this design decision, and it really seems to me that it was wrong. Now the negative eigenvalues again reduce the total inertia, and are similar as in vegan 1.17-4 and earlier. The capscale() output got a new item of "Real Total" that gives the sum of eigenvalues without the imaginary component, and the proportions are given only within this real component (if there are negative eigenvalues). The eigenvalues of negative eigenvalues are not added to the result, because they are not strictly for the unconstrained component only like previously indicated. However, summary.eigenvals() estimates the proportions explained using absolute values of eigenvalues since this seems to make sense there (the proportion explained is now based on absolute eigenvalues to give more sensible output). Version 1.18-19 (closed January 3, 2011) * new version opened with the release of vegan 1.17-5 (submitted Dec 17, 2010, released at CRAN on on Dec 18, 2010). * CCorA: Pierre Legendre's minor fixes, including scaling of scores Cy an Cx, and removing requirement of MASS. * wascores: checks input -- weights (species abundances) must be non-negative and not all zero. * metaMDS: function was written for community data with all entries non-negative, but it is used increasingly often with other data types with a risk of failure (especially in wascores()). Now data are checked for negative entries, and arguments wascores, autotransform and noshare are set to FALSE with negative data entries. Triggered by email queries and problem reports. Version 1.18-18 (closed December 17, 2010) * mantel.correlog: proper treatment of ties in permutation statistics. Function uses mantel() to evaluate p-values, and this uses one-sided test. If the statistic is negative, the test direction is reversed, but then p-value cannot be directly complemented if there are ties: the observed statistic must be switchec to another side of the tied block. Therefore mantel.correlog() now evaluates the p-value directly in reversed test. * nestedtemp: updated the literature reference to Almeida-Neto & Ulrich (2011). * vegdist.Rd: fixed legends to Gower indices and checked binary formualations (ok). * vegan-package.Rd: added a package intro file (to be merged to the release version 1.17-5). * sipoo.rda: got island names, and decision-vegan.Rnw vignette was changed accordingly. * ordistep: Pierre Legendre's edits of the help page. * prc: got back the formula interface and with that the na.action lost in r1356 (9 Nov, 2010). * plot.procrustes: user can select the direction of the arrow with argument 'to.target', and the 'type' of the plot. With 'type = "text"', ordilabel() is used to mark the tails of the arrows. * plot.betadisper: would fail when plotting anything other than axes 1 and 2. Now fixed and an example included in the Rd file to make sure this doesn't happen again. Reported by Sarah Goslee. Version 1.18-17 (closed December 1, 2010) * predict.procrustes: gained 'truemean' so that new points can be added to the plot.procrustes() graph. * alpha release version: preparing release (1.17-5) of vegan. Mainly clean up and checking of functions intended for the release. * mantel.correlog: vegan mantel() was used standard order statistics or (hits+1)/(nperm+1) since May 2009, but mantel.correlog() did not notice the change and still tried to correct the mantel() result. * as.mlm.cca/rda and intersector: should get the pivoting of names in qr.X() correct both in the current buggy R and hopefully fixed next version 2.12.1. * vif.cca: aliased terms must be removed when calculating VIFs. Test case vif.cca(cca(dune ~ Manure + Management, dune.env)) should give decent values all below <100 (used to give magnitude 10^31). VIF of aliased terms is NA. Pierre Legendre noticed this. * print.eigenvals uses zapsmall. Version 1.18-16 (closed November 17, 2010) * procrustes: fixed centring of fitted(). Added predict() method that can be used to add new rotated coordinates to the target. The function cannot be used for symmetric analysis with 'newdata'. * vignette on design decision: updated to changes in 'const' in scores.rda() in 1.18-15 and to Canoco 4. Explains now 'const' more thoroughly. * pcnm: gained argument 'dist.ret' to return the distance matrix on which PCNMs were based. * cca/rda/capscale: JO yielded to the pressure, and added proportions of inertia components in the printed output. * capscale: failed with na.action -- fix in ordiParseFormula(). na.action was introduced in rev1002 (Sept 11, 2009), and then ruined with a change in ordiParseFormula() in rev1007 (Sept 15, 2009) so it lived four days and was broken when released. The problem was reported by Nevil Amos. * SSgleason: a new SS-species-area-model. * SSlomolino: improved starting values for 'xmid' (and 'Asym'). Now fitspecaccum(..., "lomolino") works in several cases, including BCI and bryceveg (but fails in <1% of cases). Now 'Asym' and 'xmid' are estimated from Arrhenius at log-log scale: 'Asym' is the predicted value at max(x), and 'xmid' is the value of x giving 'Asym/2'. * capscale: defines total inertia as the sum of absolute values of eigenvalues to be consistent with cmdscale(), wcmdscale(), eigenvals(), Gower and Mardia, Kent & Bibby. * eigenvals: added a method for "pcnm" and docs discuss handling negative eigenvalues in summary.eigenvals(). Function is ready for the new version of cmdscale() in R 2.12.1. * prc: Cajo ter Braak wrote new code for more direct implementation of PRC. This drops formula interface and directly finds model matrices avoiding aliased terms. Version 1.18-15 (closed November 9, 2010) * procrustes: 'translation' needs to take into account 'scale', although Mardia et al. omit it. Reported, analysed and fix suggested by Christian Dudel (Bochum). * fitspecaccum: uses now new SS-models for species-area relationship and several of standard SS-models for nls(). Placeholders for documentation added. Has a plot() function. * Self-starting nls() models for species-area relationship: added Gitay and Lomolino models from Dengler 2009 (J Biogeog 36, 728-744). Some more should be added, but these were among the best in Dengler's simulation. The starting values of the Lomolino model (SSlomolino) need work, as do several other candidate models. The purpose is to use these also in fitspecaccum(). * rda: the scaling 'const' can now be a vector of two items: the first is used for species and the second for sites. This allows compatibility with Canoco 3.x (but Canoco 4 changed scaling): if 'mod' is an rda() result, and 'nr' is the number of rows in data, then "scaling = -2, const = c(sqrt(nr-1), sqrt(nr))" in scores(), summary() or plot() will use default scaling of Canoco 3.x. Help page now points to decision vignette explaining scaling and 'const' (and the vignette needs updating). * prc: coefficients folded in a wrong way. Diagnosed, reported and fixed by Cajo ter Braak. CtB also fixed the scaling of species scores and coefficients to be more consistent with Canoco and common standards. The function now ignores user settings of contrasts and will always use treatment contrasts. Cajo ter Braak is now recognized as a co-author of the function. * nestednodf: breaks ties in column and row totals by row sums and column sums in quantitative data ('weighted = TRUE'). Version submitted by Gustavo Carvalho in a follow-up to Feature Request #1097. Version 1.18-14 (closed November 1, 2010) * treedist: works now with zero-height trees (for instance, only one item in a tree). Function gained a new argument 'relative' (defaults TRUE): if FALSE, finds raw dissimilarities of tree heights. Help page now tells that relative tree distances are in range 0..2 instead of 0..1, since combining two trees may add a new common root. * isomap: returns only axes associated with positive eigenvalues. * wcmdscale: give two goodness of fit statistics for 'k' axes: one is for the real part and based on the sum of positive eigenvalues, and second is for all axes and based for the sum of absolute values of all eigenvalues. * summary.eigenvals: handle now possible negative eigenvalues from capscale() or wcmdscale(): cumulative sum and proportions are now based on the sum of absolute values of eigenvalues, and all real eigenvalues explain less than 100% if there are negative eigenvalues. Version 1.18-13 (closed October 15, 2010) * anova.cca(..., by = "axis"): now really uses marginal tests for every axis. Significance of axis k with LC scores lc is from model update(object, . ~ lc[,k] + Condition(lc[,-k])). That is, axis k is used as constraint and all other axes as conditions, when axis k is analysed. This also solves the failure of anova(..., by = "ax") of rda(dune ~ poly(pH, 2) + Baresoil, varechem) of PR#945, but no other problems of the same report. * treedive: handles trivial cases of zero (diversity NA) or one species (diversity 0). * oecosimu: handles NA values as na.rm = TRUE in simulations for cases where these are produced by the function to evaluate statistics. * oecosimu: takes care that the statistic is evaluated with binary data when null models are binary. This was a one-year old bug introduced in rev 967 on Aug 31, 2009. Previous time this bug was corrected in rev 438 on June 28, 2008. * nestednodf: Gustavo Carvalho sent a new upgraded version which also implements a new quantitative method of Almeida-Neto & Ulrich (Env Mod Software, in press; 2010). Based on feature request #1097 in R-Forge. * ordistep: name clash if the fitted model contained item or term called 'mod'. Reported by Richard Telford (Bergen, Norway). * fitspecaccum: Stephen Sefick suggested adding Michaelis-Menten fit to random species accumulation and sent his model function. These ideas were used to add a new more general function. In addition, there is an option of fitting Arrhenius model S = c*A^z with a new self starting function SSarrhenius() for nls(). No documentation yet: needs work. * decorana: gives a warning if residual is bigger than tolerance. Version 1.18-12 (closed September 26, 2010) * swan: no eternal loop with disconnected data where zeros will remain in the matrix. * ordilabel: gained argument 'col' to set the text colour of the labels separately from 'border' (default action is to use 'border' colour). * ordiellipse: gained argument 'col'. For draw = "lines" this works similarly as previously when 'col' was passed on. For draw = "polygon" 'col' sets only the polygon fill, and the text of the labels will use the colour of the border or of the foreground. * ordiR2step: gained argument 'direction = c("both", "response")', and with "both" gives also adjusted R2 when dropping terms. I have not yet seen a case where a term is dropped. Abandoned dangerous practice of getting the R2.all directly from a fitted model of the 'scope' since this may have different lhs. * anova.ccalist: removed. Revisions were 1273, 1274, 1276. Could not make this work consistently with other anova models, except with 'model = "direct"'. The function would also change the API so that "..." come as the second argument breaking partial matching of other arguments. Version 1.18-11 (closed September 17, 2010) * diversity: example says that rarefy(x, 2) - 1 is the same as unbiased Simpson of a true random sample of Hurlbert (1971, eq. 5). Added after several wishes to have this function. * metaMDS: more verbose about connectivity. Use na.rm = TRUE in metaMDSdist(). * FAQ: entry on ade4:cca name clash triggered by an invalid bug report #1066 and queries in r-sig-ecology. Version 1.18-10 (closed August 31, 2010) * New version opened with the release of vegan_1.17-4 on August 20, 2010. * rankindex: can take a list of dissimilarity functions as an argument. * deviance.cca/rda: return 0 (instead of NULL) if there is no residual variation. * vegdist: help page gives equations for binary variants of the indices. * biplot.CCorA: resets par that it sets. * ordiR2step: can go to the end and include all variables of the scope (and checks there is a scope). Additional stopping criterion of exceeding P-value. Looks like being up to specs and left for approval. * permutest.cca: defaults to 99 permutations instead of 100 (to be consistent). Item 'call' now stores the call to permutest() instead of the call of the ordination which is now saved in 'testcall'. This means that update() works now. * anova.cca: use correct degrees of freedom when there is no constrained or no residual component. * anova.ccalist: Started to work on the concept of permutation test comparison of several cca/ rda/ capscale models. The basic function was added to the R-Forge (undocumented!). First idea is to run permutest.cca with the same RNG seed and collect the permutations from the differences of these models. This won't be consistent with other anova.cca* because permuted residuals differ from the corresponding partial model (except with model = "direct"). Another option that I have on my mind is that I use model.matrix.cca to reconstruct a matrix of RHS of each model, and then run a series of partial model ANOVAs. Here the problem is that the statistics will be sequential, i.e., the residual of each model is from the next model and not from the final model, and the models must be in increasing order or ordered programmatically; the current test will study differences of any sequence. Naturally, we have to figure out how the permutation should be done. Probably a note to R-Devel to open up discussion on the issue. NOTE: there is no automatic delegation to this function. If you try this, you must explicitly write "anova.ccalist(model1, model2, model3). NOTE2: There are no tests of the sanity of the input: be careful. NOTE3: Does not work with saturated model with null residual variance. Version 1.18-9 (closed August 20, 2010) * mrpp & meandist: John Van Sickle notified us that his Classification Strength (CS) uses 'weight.type = 1' (or n) insteaad of 'weight.type = 3' (or n(n-1)/2). Calculation of CS was dropped from mrpp(), because with this weighting it no longer has an exact relation to the corresponding MRPP statistic and the function mrpp() cannot provide a significance test for both statistics together. CS is kept in meandist(), where its calculation is corrected for the correct weight type. * vegdist: Anderson et al. (Ecol Lett 9, 683-693; 2006) defined their "alternative Gower" without range standardization of columns. Reported as bug #1002 in http://r-forge.r-project.org/ by Sergio Garcia. Also some small edits of vegdist man page. * msoplot: legend mixed symbols and labels. * Rd (help) files: removed some superfluous \-characters that were visible in rendering text (accented letters, Latex notation in wrong places). * predict.rda/cca: document 'newdata' with 'type = "response"' or 'type = "working"'. The feature was added in vegan 1.18-4 (rev1180, April 15, 2010). Version 1.18-8 (closed August 12, 2010) * DESCRIPTION: does not suggest package 'ellipse'. * FAQ: new entry on negative or non-numeric data, and updates of variance explained by ordination. * intro: ordispider uses label. * adonis: uses print.anova for cleaner output. * plot.MOStest: uses veganCovEllipse instead of ellipse:::ellipse.glm. * ordiellipse: failed to plot labels with filled polygons, since the same colour was used for polygon filling and labels. Now uses ordilabel() with draw == "polygon" (but still text() with draw == "lines"). * decorana: change order of data checks so that non-numeric data is detected (by rowSums()) before checking negative data entries. * ordigrid: arguments lty, col and lwd to use different lines for levels and replicate of the grid. Version 1.18-7 (closed July 19, 2010) * new version opened with the release of vegan_1.17-3. * veganCovEllipse: new internal function for drawing covariance ellipses (to be used both with ordiellipse() and plot.MOStest()). * ordiellipse: uses veganCovEllipse. Version 1.18-6 (closed June 16, 2010) * Version 1.18-6 closed simultaneously with the release of vegan_1.17-3 on June 16, 2010). * mantel, mantel.partial: considerable speed up by cleaning innermost loop and replacing as.dist() with direct extraction of lower diagonal. * treedist: documenting tree dissimilarity function that has been in vegan devel since Aug 17, 2009 (rev928). * betadisper: 'type = "median"', the default, was not computing the spatial median on the real and imaginary axes separately. Reported by Marek Omelka. * permutations: First attempt to document within Vegan the general workings of permutation tests. See ?permutations for details. Version 1.18-5 (closed May 31, 2010) * cca, rda: plot() failed if Condition() had factors, but constraints had no factors. An example of failure: m <- cca(dune ~ A1 + Condition(Management), dune.env) plot(m) ## failed * ordiarrows: gained 'label' argument which uses ordilabel() on arrow starts. * ordisegments: gained 'label' argument which uses ordilabel() on both ends of the segment. * ordispider: gained 'label' argument (uses ordilabel()). Can now handle ordihull() result objects: connects points in the line to the hull centroid. Extended examples. * ordiR2step: new function to perform forward model selection following Blanchet, Legendre & Borcard (Ecology 89, 2623-2632; 2008) or by adjusted R2 until the adjusted R2 of the full model (scope) is exceeded or adjusted R2 starts to decrease. * RsquareAdj.default: handles vector arguments. * ordiellipse: works only with 2D data, and now uses only first two dimensions of input if more given. For instance, the following works now, but gave very cryptic error message previously: m <- decorana(dune) plot(m) with(dune.env, ordiellipse(m, Management)) * ordiresids: removes now the row weights from Residuals and Fitted in CA. Now shows the same values that are shuffled or resampled in simulate.cca() where they are again weighted after being added to the new fitted value. * mantel.correlog: changes the Sturges rule to conform with the standard R nclass.Sturges ('ceiling' instead of 'round'). Extends and corrects documentation and messages. Version 1.18-4 (closed May 21, 2010) * envfit: defaults now to 999 permutations. Used to be 0 or no permutations. * metaMDS: can handle NA values in dissimilarities (but I do not know if isoMDS can handle them correctly). * mantel.correlog: accepts now user supplied breakpoints or number of classes like intended. * RsquareAdj.rda: uses now correct model df in rank deficit RDA models. * adonis: implemented tie handling in permutations. * predict.cca/rda: implemented 'newdata' for type = "response". For CCA, 'newdata' must be constraints (environmental data), and for CA they must be community data. Test version, not yet documented (except here). Version 1.18-3 (closed April 15, 2010) * new version opened with the release of vegan 1.17-2 (March 8, 2010). * DESCRIPTION: Corrected the name of Bob O'Hara (also in release 1.17-2). * scores.cca/scores.rda: scores will always have names even if the input data have no names. This fixes some display issues that Pierre Legendre had with biplot.rda(), and makes redundant the name checking code in summary.cca (the redundant code was not yet removed, but I see that this fix here was sound). * permutest.cca: re-weighting of permuted CCA data matrix is now done with compiled code using existing C function 'wcentre' (in goffactor.c). This may give huge speed-up (>50% time save in first tests) both in CCA and pCCA. The print function of permutest puts now the observed statistic among permutations (the P-value is only evaluated at printing so that this does not influence any anova.cca function using permutest.cca). Version 1.18-2 (closed March 8, 2010) * ordistep: documented the 'anova' component added to the result object. * densityplot.oecosimu: gives no warning if there is only one statistic and hence only one panel. * nesteddisc: failed if highest species frequencies were tied. The error message was "Error: dims [prodcut 15] do not match the length of object [0]". Found by Eric Fuchs in the help forum of vegan.r-forge.r-project.org. The function does not try as hard to optimize the index, and hence it is much faster (but slacker). * screeplot: New argument 'legend' for all methods (except 'decorana') to draw a legend if the observed and broken stick distribution are both plotted. Now also respects 'pch' for the broken stick line. * permutest.betadisper: print method got ordering of permutation p-values wrong in displaying the matrix of pairwise tests. The computed values were correct. The formatting for printing contained the bug. Reported by Dan O'Shea. Version 1.18-1 (closed February 18, 2010) * closed with the release of vegan 1.17-1. The release contains bug fixes and multipart of 1.18-1, but excludes MOStest and 1.18-1 upgrades to ordistep. * ordistep: saves model changes in the 'anova' item similarly as standard step(). Experimental feature: not yet documented. * envfit: did not pass weights to factorfit or to vectorfit when the environmental variable was a single vector. Reported for vectors by Richard Telford. Broken in rev1004 (Sep 12, 2009). * CCorA: Fixed bug in presentation of variables in plots. Adds new biplot types. General improvement in checking exceptional cases improve stability. * predict.cca, predict.rda: match 'newdata' by row names or column names in type = "wa" and type = "sp". This is similar as predict.prcomp/princomp. Gained choice type = "working" for working residuals (as fitted.cca/rda). * simulate.rda, simulate.cca: gained argument rank passed to predict.rda() or predict.rda(). This also allows simulation under null model by setting rank = 0. * permatfull.Rd: fixed braces in the help file + mark-up. Version 1.18-0 (closed January 11, 2010 with release 1.17-0) * Documented na.action in cca.object. * Opened concurrently with copying 1.16-34 (at rev 1087) to branches/1.17 for a new release. * betadisper: 'type = "median"' is now the default type of analysis. * fieller.MOStest: removed erroneous multiplication of variances by overdispersion, because this was already done in cov.scaled, and therefore was doubled and gave much too wide (up to Infinite) limits. * MOStest uses now ANODEV of free model and model where the hump/pit is forced to a given location instead of the test based on the Wald statistic (coefficient/sd) of the coefficient of the linear term. The ANODEV and Wald statistic are equivalent in Gaussian models, but in with other error families the ANODEV is more correct. This fix removes the conflict between the basic MOStest() and its profile() and confint() methods in non-Gaussian families. Version 1.16-34 (closed January 2, 2009) -- (codename: Lucia) * twostagechao: deleted, because question regarding the notation in the original article remained unanswered. * permat* cleanup: permat.control deleted, not needed any longer due to changes in oecosimu, documentation for plot.permat merged with permat* help page. * goodness.cca: was not using correct weights. Broken in r992 (Sep 6, 2009). * vegdist: added UI for the alternative Gower index ("altGower") that skips double zeros. The C code has been in vegan since Oct 24 (r1051), but no R interface. Together with decostand(..., "log") of r1052 this closes Feature Request #473 submitted by Etienne Laliberte in R-Forge. * anova.cca: tied values could be randomly broken due to numerical precision, and this gave false P-values, for instance in anova(cca(dune ~ Management, dune.env), strata=dune.env$Management). Now rounds statistics to 12 decimal places in permutest.cca and in anova.ccabyterm. * permutest.cca: uses pasteCall() in print. * betadisper: added spatial median code written by Jari to betadisper. All associated methods work OK, and this should be the default method but needs a little checking first. This requires the new function 'ordimedian', which is currently undocumented in ?betadisper. Version 1.16-33 (closed December 13, 2009) * DESCRIPTION: Guillaume Blanchet added to the Authors. * spandepth: New function to find the depths of nodes in a spanning tree from spantree() function. Per request of W. E. Sharp. * bstick: refuses to analyse capscale() models with imaginary components because I have no idea how to do it. Reported by Richard Telford, Bergen (who probably wanted another solution...). * predict.rda: works now with rank = 0 -- returns matrix of column means. (Not yet done for predict.cca.) * simulate.rda: can now add permuted residuals to the fitted values. Experimental, low level interface that requires giving the index of right length. The permutation index can contain duplicates such as from sample(nrow(data), replace = TRUE) so that bootstrapping is possible unlike in anova.cca/permutest.cca. Works now with partial model: adds partial fit to the constrained fit. * simulate.cca: implemented by cloning simulate.rda. Function works with internal Chi-square standardized form and back-transforms the result by marginal totals and matrix grand total at the end. The marginal totals may still be negative. Not explicitly documented, and needs a connoisseur user. Version 1.16-32 (closed November 13, 2009) * alias.cca: gained argument 'names.only' (defaults FALSE) to only return the names of the aliased variables insted of their defining equations. * rarefy: failed with one site and many sample sizes like rarefy(rpois(10, 2), sample=2:3). * msoplot: uses standard legend() to display info instead of hand crafted positioning of the legend information. * ordisurf: plotting main title was broken with NA handling in 1.16-31 (r1049). Also increased grid density and adjusted pushing out limits of convex hull. * pcnm: new function for PCNM (Principal Coordinates of Neighbourhood Matrix) with option for row weighs allowing PCNM for cca. Based on Stéphane Dray's PCNM function in his (unreleased) SpacemakeR package. Imported with history from sedarVegan in http://sedar.r-forge.r-project.org/. Has scores.pcnm to select all (default) or some vectors of 'choice'. * decostand: implemented Marti Anderson's log scaling of type log(x, base = logbase) + 1 as a part of Feature Request #473. The coding follows closely Etienne Laliberte's suggestion, and also handles non-negative non-integer data. * vegdist: C code for an alternative version of Gower Index that skips double zeros. No R level interface yet. If this function is to be used from vegdist.R, it should be added as item 14 in 'method' list, and the R level preprocessing should be done similarly as for "gower" (method choice 6). This was implemented for inspecting the implementation of second part of Feature Request #473, but may be removed if that part of the request is not implemented. Version 1.16-31 (closed October 24, 2009) * ordisurf: removes observation with NA in scores (as result of na.action) or in predicted variable. * specaccum: "accumulations" in one-site collections are handled with a message() instead of stop()ping with error. Per request of Roeland Kindt. * constrained ordination (cca, rda, capscale) could not handle all anova(.., by= "something") cases when the data were not defined by data=, but were in the working environment or given using with(). The attach'ed data frames that were later detach'ed won't work. This means some potentially unstabilizing changes in scope: please report all problems. * envfit: could drop data frame to a vector with na.action (broken in 1.16-28). * model.frame.cca, model.matrix.cca: new support functions to reconstitute the model frame and model matrix (or a list of condition and constrain model matrices) from a cca/rda/capscale result object. Documented separately. * constrained ordination (cca, rda, capscale) did not analyse constrained component in model like cca(varespec ~ Al:P + Condition(Al + P)) or in constrained interaction terms if the corresponding main effects were partialled out. * constrained ordination (cca, rda, capscale) failed if they only had partial term Condition() without constraints. * ordistep: new function for automatic model choice in the cca family of methods. This is similar to step(), but uses permutation P-values instead of AIC (that does not exist for these methods, and sometimes fails). This is similar to forward.sel() in Stephane Dray's 'packfor' package at R-Forge. Better things here are that the function has both drop and add instead of only forward selection, handles correctly factors, and works with cca(), rda() and capscale(). On the other hand, it is much slower than forward.sel(). The function has similar user interface as step(): it knows 'scope' and 'direction'. * ordisurf: pushes out limits of convex hull so that contours better cover corners and margins of points. * plot.decorana & plot.cca: use linestack() if only one dimension was chosen. * scores.lda: new function to extract row scores and predictor coefficients from "lda" objects (MASS package). Magically, ordiplot() started to work with "lda" results. Not yet documented, but alias in scores.default.Rd. * ordiplot: uses linestack() to plot 1-col results, and now really is able to identify if there were no species scores (tried earlier, but failed because species had different names than sites). * scores.default: returns vector scores as 1-col matrix. * linestack: passes "..." to plot(), handles missing names. Version 1.16-30 (closed October 3, 2009) * manual pages (Rd files) were run through aspell. With this, an error in an argument choice was corrected also in plot.nestedtemp function. * meandist: plot method has a new alternative of drawing histograms (van Sickle 1997) as an alternative to dendrograms. A histogram connects groups at theri within-cluster dissimilarity level to the average between-cluster dissimilarity. * oecosimu: gained new keyword 'alternative' for "two.sided", "less" and "greater" one-sided tests. * oecosimu: tied values in simulations and observed statistics treated more correctly. * oecosimu: if all simulations were constant, their sd became zero, and z became NaN. Now z = 0 for these cases. A response to the query of Martin Kopecky at the vegan-help forum in R-Forge. * densitplot.oecosimu: panels keep the order of statistics. The panels were ordered alphabetically, but the vertical line for the observed statistic was in the original order (and thus often in the wrong panel). * calibrate: is now a a generic function and has a new method for the 'ordisurf' object in addition to the old 'cca' method. * FIXED BUG in cca, rda & capscale interpretation of formulae. This was introduced in rev 972 (Sep 1, 2009), and fixed in rev 1011 (Sep 18, 2009). Basically, all evaluation of 'subset' and 'na.action' is done after extracting the model frames with proven methods so that the first half of 'ordiParseFormula' is more similar to pre-972 versions. Function 'ordiParseFormula' could be re-written more elegantly, but deliberately breaking it twice instead of breaking it once is just too much. * cca/rda/capscale: cca(dune ~ poly(A1, 2), dune.env) failed. Internal changes in 'ordiTerminfo' which now always looks at the model frame returned by 'ordiParseFormula' instead of looking at the 'data' (and the 'data' arg is now unused in 'ordiTerminfo'). * FIXED (minor): cca(dune ~ Management, dune.env, subset = Management == "SF") failed in 'contrasts()' called from 'model.matrix()' because there is only one level in Management. Now 'ordiParseFormula' adds a level with an unlikely name of .ThisVarHasOnly1Level, so that model.matrix works, but predict.cca(..., newdata=, type = "lc") rejects unknown factor levels. Version 1.16-29 (closed September 18, 2009) * meandist: plot got an 'ylim' argument. This is practical when users want to display several plots side by side, and requested by Heli Suurkuukka. * WARNING OF A BUG in cca, rda & capscale: all versions have failed since rev 972 (Sep 1, 2009) if an argument in a model was a matrix. Now these things work so that tests pass, but results are wrong , because get_all_vars() does not get names right for matrix columns in the model frame. This is manifest in the example of varpart() that uses matrix items (such as mite.pcnm). It can be also seen with this: p <- poly(dune.env$A1, 3) cca(dune ~ p + Management, dune.env) The following seems to work: cca(dune ~ poly(A1, 3) + Management, dune.env) * cca, rda etc. drop unused levels of factors. This became actual with 'subset' and 'na.action'. * cca & rda (but not (yet?) capscale) gained argument 'subset' to select rows for analysis. A 'subset' can be a logical vector (TRUE for kept rows), or a logical expression which can contain variables in 'data' or species (variable) names of the dependent data. Some valid examples are: cca(dune ~ A1 + Moisture, dune.env, subset = Management %in% c("HF","BF")) cca(dune ~ Moisture, dune.env, subset = Lolper > 0 & Management != "SF") S <- specnumber(dune) cca(dune ~ 1, subset = S > 9) Version 1.16-28 (closed September 15, 2009) * drop1.cca: 'scope' given as a formula was not recognized and permutation tests were not run. Only character vectors of names worked. * envfit: handles missing values in ordination scores or in environmental variables using na.rm argument. This also changes the user interface so that 'vectorfit' and 'factorfit' clearly become low level functions which only accept scores (no ordination objects), and all processing is done in envfit.default. * wcmdscale: scores (points) with zero weights (w = 0) and other non-finite entries will be NA. * capscale: implemented na.action. The WA scores are always NA for missing observations in capscale. Version 1.16-27 (closed September 10, 2009) * cca & print.cca: no warning on removed species in cca.default, but print information on their number. * predict.rda: failed when rda was based on correlations (scale = TRUE), and there were missing data (0/0 division in scaling). * cca & rda: New way of handling na.action. Function ordiNAexclude adds items CCA$wa.excluded or CA$u.excluded for NA rows into ordination result, and function ordiNApredict called in scores.cca and scores.rda pads the results with these excluded data. In this way the internal structure of the cca object remains unchanged, but functions accessing the result with scores will get the NA data. * anova.cca(..., by = "term") and step() did not work correctly with na.exclude or na.omit. These fitted sequential models, and due to missing value removal the data set could change in the sequence. The problem case was step() which relies on standard stats functions add1.default and drop1.default. They detect the change in data by length(object$residuals). Therefore ordiNAexclude adds item 'residuals.zombie' to the ordination result so that step() works. The same mechanism is also used in anova.ccabyterm (not all NA deletions change the numbers of observations). * weights.cca and weights.rda know na.action. * Fixing cca/rda functions for changes in weights(). The rule is that you can mix scores() and weights(), but if you have internal cca object stuctures (like x$CCA$u), you should have internal weights x$rowsum. Concerns as.mlm.cca, goodness.cca, permutest.cca, spenvcor, inertcomp and intersetcor. (The inertcomp solution is a kluge.) * plot.cca: works when there are NA values in scores. * anova.cca(.., by = "axis") works when there are omitted or excluded observations due to missing values. Version 1.16-26 (closed September 1, 2009) * cca and rda: can now handle missing values in constraints or conditions. With 'na.action = na.omit', the rows with missing values are removed, and with 'na.action = na.exclude' all rows are retained but results that cannot be computed are NA. The LC scores cannot be computed with missing values, but WA scores (usually) can be computed. The results with 'na.exclude' probably fail with most support functions because these do not expect missing values in the results. These functions are fixed with time. capscale does not (yet) handle missing data. * oecosimu: does not depend on permatfull/permatswap, but method can be a function. The r2dtable method implemented also to be used with adipart and related functions. * bioenv: uses standard R function combn() and removes ripley.subs() and ripley.subsets() from vegan. The result should be unchanged. * ordiNAexclude: internal infrastructure to implement na.action = na.exclude for cca and rda (and capscale?). The option returns scores where the excluded sites get NA results and are not omitted. In constrained ordination, LC scores will be NA, but WA scores are found from the community data, and the current function uses predict.cca/predict.rda with 'newdata' of removed observations to estimate WA scores of excluded observation. * ordiParseFormula: handles missing values with na.action. Version 1.16-25 (closed August 31, 2009) * mantel.correlog: updated to the version 1.4 of Pierre Legendre's package. * RsquareAdj: documented. * ordiellipse & ordihull: argument 'draw' got a new alternative "none". With this, nothing is drawn but the invisible plotting structure is returned. This was added so that it is easier to develop permutation tests for hulls and ellipses. Version 1.16-24 (opened August 17, 2009) * ordiellipse & ordihull: gained new argument 'label' to put the name of the group in the centre of the ellipse or the hull. The functions now return invisibly data on their plots for each plotted item: ordiellipse() the covariance matrix (cov.wt() result), and ordihull() the coordinates of the hull vertices. These inivisible results have a summary() method that displays the centres of the hulls or ellipses and their surface areas. * ordiellipse: does not depend on the 'ellipse' package, but finds the coordinates of ellipse using the equation taken from the 'car' package. However, this devel version of 'vegan' still must SUGGEST 'ellipse', because 'plot.MOStest' requires 'ellipse'. The current release version does not include 'plot.MOStest' and could be liberated from the 'ellipse' dependence. * spantree: first argument 'd' like in hclust()instead of 'dis'. Got a 'call' item so that update() works. * treedive & treeheight: accept 'spantree' objects. EXPERIMENTAL CHANGE THAT MAY BE CANCELLED. * treedist: average distance of species trees for two sites. Generalization of treedive(): builds a species tree of two sites and sees how much of the tree is shared between two sites, and how much is unique to the combination. The measure is similar to Jaccard index: the proportion of unique (unshared) tree of the combined tree. In principle, this is similar to UniFrac metric (C. Lozupone & R. Knight, Appl. Environ. Microbiol. 71:8225-8235; 2005), but numerically and computationally different (and the current implementation may specify a new unpublished method). AN EXPERIMENTAL CHANGE THAT MAY BE CANCELLED. Version 1.16-23 (closed August 17, 2009) * poolaccum: new function to find the extrapolated richness values (or specpool() estimates) for random accumulation of sites (with summary and plot methods). * specaccum, specpool, specpool2vect and friends: index names are now all lower-case. * estaccumR: new function similar to 'poolaccum', but uses 'estimateR' for individual (count) based estimates of extrapolated richness. Inherits from 'poolaccum' and shares its print, summary and plot methods. Version 1.16-22 (closed August 11, 2009) * metaMDS: accepts now user supplied dissimilarities either as a "dist" structure or as symmetric square matrix (Susan Letcher's wish). As a side effect, dissimilarity matrices are now correctly detected and will not be wrongly treated as raw data. * summary.cca: fix in 1.16-20 failed if all variables were continuous and there were no centroids of factor levels. * indpower: new function to calculate indicator power for a species (Halme et al. 2009, Cons. Biol. 23: 1008-1016) * mantel.correlog, print.mantel.correlog & plot.mantel.correlog: new functions to construct multivariate mantel correlograms --- use in ecology: to describe the spatial structure of species assemblages. See Legendre and Legendre, Numerical ecology; 1998, section 13.1.5. Written by Pierre Legendre. Version 1.16-21 (opened July 4, 2009) * capscale: has now 'fitted' method (and hence, 'residuals'), and 'predict' works with 'type = "response"'. These give dissimilarities that produce same ordination as original data, or their low-rank approximations. Function 'fitted' has 'model = "Imaginary"' that returns correction distances of complex eigenvectors with negative eigenvalues. The dissimilarities are not additive, and the "Imaginary" component is not used in estimating the unconstrained component. * capscale: really works now either with argument 'dfun' or 'metaMDSdist' (but not with both!). * wcmdscale: returns negative eigevalues scaled by sqrt(abs(eigenvalues)) if 'k' is not given or 'k' would include any negative eigenvalue. Version 1.16-20 (closed July 4, 2009) * new version opened concurrently with the release of vegan 1.15-3 on June 17, 2009. * orditorp: works now when axes are reversed like xlim = c(1,-1). * rrarefy: a new function to generate randomly rarefied communities. * betadisper: fix bug in removal of (effectively) zero Eigenvalues. * summary.cca: takes care that all scores have rownames -- head/tail fail without names. No ugly printing for constrained eigenvalues when these do not exist in unconstrained models. * biplot.rda: honour args to scores ('scaling', 'const'). * points/text for cca: accept 'const' argument for rda scores. * ordilabel: no superfluous warnigns when args ('scaling', 'const') are given to scores. * ordiplot3d: honour args to scores ('scaling', 'const') and without warnings. * ordixyplot: honour ags to scores ('scaling', 'const'). * spantree: plot honours args to scores ('scaling', 'const'). Version 1.16-19 (closed June 17, 2009) * capscale: handles now negative eigenvalues with semimetric indices. These cause no more warnings. The MDS engine is now 'wcmdscale' instead of 'cmdscale' unless 'add = TRUE' was specified (and then negative eigenvalues are not produced). The negative eigenvalues are listed after positive unconstrained eigenvalues, but no scores are given for them. The total inertia is now the sum of all eigenvalues, including the negative ones, and inertia components adds item 'Imaginary' for negative eigenvalues after 'Uncostrained'. New argument 'sqrt.dist' makes square root transformation of dissimilarities, producing metric indices in many cases (e.g., Bray-Curtis, Jaccard). Help page and examples now show all these, and therefore the entry on negative eigenvalues was dropped from FAQ-vegan.texi. The closed (max 1) indices are now correctly adjusted for 'rda' and hence the eigenvalues and inertia components are now sqrt(n-1) smaller and similar as in 'cmdscale' and 'wcmdscale'. * wcmdscale: remove zero eigenvalues, keep negative, and do not assume that the last eigenvalue is zero. * RsquareAdj: 'cca' returns R2, but no adjusted R2 (which is NA). The adjusted R2 is always NA for partial models. * kendall.global: fixed a bug that caused incorrect counts of ties in large data sets. * tsallis: division by zero occurred with hill=TRUE, scale=1, this bug has been fixes to give exp(x) as scales goes to 1. * multipart: a sequel to adipart, but implements multiplicative diversity partitioning based on Hill numbers (Jost 2007, Ecology, 88, 2427-2439.) * eigenvals: new function to extract eigenvalues of cca, rda, capscale (constrained & unconstrained), wcmdscale, prcomp, princomp, eigen and svd. For svd returns squares of singular values, and for prcomp and princomp squares of 'sdev'. The 'summary' of eigenvals() retrurn eigenvalues with the proportion explained and cumulatitive proportion explained. * summary.cca: uses summary.eigenvals to display eigenvalues. * protest: observed value of test statistic is now considered as one of the permutations. Default N.perm decreased to 999 to account for this. * envfit (vectorfit, factorfit): observed value of test statistic is now considered as one of the permutations. * mantel, mantel.partial: observed value of test statistic is now considered as one of the permutations. * anosim: observed value of test statistic is now considered as one of the permutatons. * mrpp: argument defaults and printing adated for having test statistic among permutations (like the function always had). Version 1.16-18 (closed May 14, 2009) * tsallis: got new argument 'hill' similar to that of renyi. * twostagechao: function that calculates multiple-community similarity based on Chao et al. 2008 (Biometrics 64, 1178-86). Some debugging is needed since it cannot reproduce the numbers in Table 3 exactly (lower estimates and SEs). The Rd file also needs more details. * anova.cca: there was a name clash and failure in anova.ccabymargin, anova.ccabyaxis and anova.ccabyterm if data were indexed with 'i' in the fitted model. Now the internal indexing uses less likely name (.ITRM) to avoid name clashes. * orditkplot: copes with missing or NaN scores (omits them). * ordixyplot: failed in constrained ordination (cca, rda, capscale). Was broken in rev108 on Nov 7, 2007(!). The biplot was rotated 90 degrees: it seems that lattice calls x y and y x. * ordixyplot & ordisplom: Gained a new type = "arrows" that is a Lattice version of ordiarrows. * RsquareAdj: defined as generic function. The old RsquareAdj is now the "default" method, and there are specific methods for "rda", "cca" (= NA), "lm" and "glm" objects. Not yet documented, but functions are listed as aliases in varpart.Rd. On Pierre Legendre's request. Version 1.16-17 (closed April 15, 2009) * closed concurrently with the release of vegan 1.15-2. * spantree.Rd: example plots use type = "t" to demonstrate the use of ordilabel(). * nestedtemp: docs tell that Carsten Dormann's bipartite package has a direct port of BINMATNEST programme of Rodriquez-Girones & Santamaria. * anosim: uses much less memory allowing analysis of larger problems (number of rows, number of iterations). The change concerns only internal data structures, and the permutation results should be identical with old and new code when the same random number seed is used. The Rd file got an example of using 'strata' in permutations. * meandist: a new sister function for mrpp. Function meandist calculates a matrix of mean within and between group dissimilarities. Its summary function returns the overall averages of those distances, and all three variants of MRPP A statistic, and classification strength. The plot method draws a dendrogram based on the mean dissimilarity matrix, with leaves hanging to within-group dissimilarity. * betadisper: Fix bug corrects the way distance to centroid is computed when only one group is present in the data. betadisper can now also detect if 'd' is Euclidean, zapping zero Eigenvalues. Bug report and suggested improvements provided by Etienne Laliberté. betadisper now also handles missing observations in either the dissimilarity matrix or the grouping variable. * decostand: added dots to the argument list to pass (ignored) arguments to decostand(). This was done to to fix stressplot(metaMDS(x, dist="gower", trymax=40)), which failed because metaMDSdist/vegdist were passing 'trymax' to decostand() while evaluating "gower" dissimilarity. * ordisurf: will fit a linear trend surface if knots = 0 or knots = 1, and a quadratic trend surface if knots = 2. All these are below the lowest permissible values of 'gam' smoothers and free for creative reuse. Version 1.16-16 (closed April 2, 2009) * metaMDS: scales ordination scores to the same range as input dissimilarities if halfchange = FALSE. Better heuristics to decide whether to use halfchange scaling: the old heuristics failed if Euclidean or other open-ended dissimilarities were small (max < 1), like after wisconsin() in metaMDSdist. The heuristics are now in postMDS instead of metaMDS wrapper, and this changed the default of internal argument 'halfchage' in postMDS, and now the user can set the 'halfchange' argument in metaMDS. The undocumented internal 'maxdis' argument is changed to logical in metaMDSdist (TRUE if maximum dissimilarity = 1 for a pair of sites with nothin shared). * mrpp: reports now "classification strength" when weight.type = 3 or weights n*(n-1) are used. Returns mean dissimilarities and counts for classes. Expected delta is now the mean of original dissimilarities instead of mean of permutation deltas. Version 1.16-15 (closed Mar 25, 2009) * envfit help page: explains the automatic scaling and 'arrow.mul' argument. * add1/drop1 help: better example after a query of usage in R mailing list. * oecosimu & permatswap: much faster 'burnin' implemented through 'thin', and hence using a single C loop instead of multiple calls and assignments to an R object. * as.mcmc.permat: provides same functionality for permat objects as as.mcmc.oecosimu for oecosimu objects. * permatswap: same default values of 'burnin' and 'thin' (0 and 1, respectively) are set for permatswap and oecosimu functions. Previous defaults for permatswap were in conflict with oecosimu when called by permat.control. * hiersimu: new function to evaluate a statistic value at different levels of a nested hierarchical sampling design. Based on oecosimu and null model testing, but with evaluation process similar to adipart. * metaMDS: automatic stepacross works with Euclidean, Manhattan and other distances with no fixed upper limit. However, this may be meaningless, and a warning is issued. Fixed after a query to R-sig-ecology by Manuel Spinola. Version 1.16-14 (closed Mar 10, 2009) * as.mcmc.oecosimu: a new function to translate sequential null models to "mcmc" object of the coda package. The coda package provides a wealthy source of the analysis of things like stationarity, adequate sample size, autocorrelation, length of needed burnin-in etc. * density and densityplot: new methods for "oecosimu" objects. * as.ts.oecosimu: new function for applying time series methods for sequential null models ("swap", "tswap", "abuswap"). * metaMDSrotate: a new function to rotate metaMDS configuration so that the first axis is parallel with a continuous site variable. * as.ts.permat: extracts summary statistics from 'permat' objects as time series, to use for time series diagnostics. * permatswap: two new methods (under "abuswap") added based on the paper of Hardy 2008 (J Ecol 96, 914-926). These preserve row *and* colunm occurrences, and row *or* column sums at the same time. Thus these complement the methods available in vegan. Uses C code (not thoroughly tested yet). Needs some more work, and documentation (examples and reference in Rd file). Version 1.16-13 (closed Feb 24, 2009) * anova.cca: documented the 'cutoff' argument for by = "axis". * text.procrustes: added text() function for procrustes() result plots. * rad.null: failed with family = gaussian and Gamma. * simulate.rda: new method to simulate responses with random error for an rda() result object. The function uses Normal error, and estimates the sd separately for each species from their rda residuals. Normal error is justified by least squares fitting in rda. This could be made to use permutations of residuals. Not yet implemented for cca or capscale results. For cca we -- at least -- need to handle weights, and the capscale result would be rda result, since the method cannot be directly implemented for dissimilarities. The function was triggered by Ben Bolker's email to R-devel mainling list https://stat.ethz.ch/pipermail/r-devel/2009-February/052116.html Version 1.16-12 (closed Feb 15, 2009) * anova.ccabyaxis: gained keyword 'cutoff' (defaults 1) to break from permutation tests after exceeding the P-value given in the argument. The keyword was introduced because rda and cca are occasionally used with a huge number of constraints (like PCNM vectors) where tests take a very long time, although only a couple of first axes are significant. The keyword is still undocumented, and will remain so because this change is still experimental. * contribdiv: new functions for contribution diversity as an alternative to simple additive diversity following Lu, Wagner & Chen, Basic and Applied Ecology 8, 1-12 (2007). Version 1.16-11 (closed Feb 9, 2009) * anova.cca: used different random number sequence for the second term with by = "margin". * ordirgl & orgltext: removed work arounds for very old versions (pre-0.65) of the rgl package. Version 1.16-10 (closed Jan 28, 2009) * commsimulator: failed if input data (x) were a data.frame. * metaMDS: really do not evaluate no.shared() if set noshare=0. Triggered by a problem report with missing data. * vegdist doc: Morisita and Horn-Morisita were given as similarities in the help. * ordirgl: fixed wrong warnings in ordirgl(..., type="t"). * kendall.post, kendall.global: knows now all P value adjustment methods of 'p.adjust()' plus "sidak". Version 1.16-9 (closed Jan 20, 2009) * kendall.post: added one line that was accidentally lost in editing. * Checked with R version 2.9.0 Under development (unstable) (2009-01-13 r47593) having experimental strict Rd parser, and corrected the reported problems in Rd files so that vegan is R 2.9.0-ready. * adonis: uses now canonical (hits+1)/(tries+1) for P-values instead of hits/tries. Default number of permutations increased from 5 to 999. Added terms component so that things like update() and drop.scope() magically started to work. Renamed design.matrix into model.matrix (and documented the item). * permatswap: new algorithm "swsh" is added to keep row/column incidences (but not sums) constant. The name refers to the two steps: (1) binary *sw*aps are made then (2) individuals in non-zero cells are *sh*uffled. * permat methods: calculations of the Chi-squared statistic is added to summary, and the type argument can be used in the plot "bray" or "chisq" values. * nestednodf: gained argument 'order = TRUE' allowing tests for other orderings than using marginal frequencies (default) following suggestion by Almeida-Neto et al. (2008). * summary.cca: cumulative "accounted for" statistics failed in unconstrained models. Version 1.16-8 (closed Jan 7, 2009) * Fixed unescaped $-signs in documentation files after Ripley told to do so ("[Rd] Misuse of $$ in Rd files", https://stat.ethz.ch/pipermail/r-devel/2008-December/051634.html) * kendall.global & kendall.post: new functions to analyse the Kendall's coefficient of concordance --- use in ecology: to identify significant species associations. See P. Legendre, J. Agric. Biol. Envir. Statistics 10, 226-245; 2005. Written by Guillaume Blanchet and Pierre Legendre. * nestedness: added nestedness index based on overlap and decreasing fill (Almeida-Neto et al., Oikos 117, 1227-1239; 2008). Not yet all properties of the Oikos paper are implemented, and the UI needs work (print, plot methods). Coding by Gustavo Carvalho as a part of R-Forge Feature Request #265. Documented with nestedtemp. Version 1.16-7 (closed Dec 17, 2008) * permat*: functions were rationalised, strata argument is used instead of reg and hab, and returned object got several new arguments. The tide of changes affected methods as well, and some other function (adipart, oecosimu). Stratification was tested and corrected. Version 1.16-6 (closed Dec 7, 2008) * adipart: got a formula interface, and aggregate() was replaced by matrix multiplication. Now it is 10 times faster. The formula interface has some consequences on the specification of the sampling design. * permatfull: Jari Oksanen made the C port for the quantitative quasiswap algorithm. So the permat* null model family now can be used for a wide array of null model analyses and is quick enough to make reliable testing. The permatswap function and help page were modified accordingly. * plot.rad: gained argument log = "y", allowing log = "xy" so that Zipf model is a straight line, or log = "" with arithmetic scales. Not (yet) implemented for Lattice alternatives. Version 1.16-5 (closeed Dec 4, 2008) * adipart: new implementation of adipart is now ready to be released (needs some testing). Summary and plot methods have been removed. The new implementation is based on oecosimu and quantitative null model settings via permat.control. It contains only traditional diversity indices. More features will be added later, gradually. * plot.nestedtemp: label argument accepts a vector of length 2 with elements for row and column labels, respectively. * mite.rda: Oribatid mites got species names (from Pierre Legendre's web pages). * text.decorana: failed (bug introduced in rev344, on May 9, 2008). * commsimulator: simulated null models have same column and row names as the original input (as.)matrix. There was a problem report by a user who tried to use column names during evaluation of the statistic. Done by setting attributes (and it would be possible to replace dim() setting by attributes() setting in the code). * ordisurf: gains argument 'bubble' to use bubble plots for points, and 'cex' to set the symbol size (or the maximum size with 'bubble = TRUE'). Version 1.16-4 (closed November 25, 2008) * oecosimu: got a new control argument for quantitative null model analyses; this is available if method = "permat". The print method and help file modified accordingly. * vignettes: Figures with narrower margins. Vignette "diversity-vegan" adds functional diversity ('treedive'), 'beals' and 'radfit' graphics updated to current vegan. Still missing pieces: nestedness & null models, quantitative null models, additive diversity partioninng, Tsallis entropy. * radlattice: a new function to display each radfit model in a separate panel together with their AIC or BIC values. * plot.cca: takes care that plotted items have non-NULL names that plot neatly. This was already take care of with formula interface, but now it should work also in other cases in plots. Reported by Daniel Borcard. * permatwsap: quasiswap method is implemented for count data based on the idea of Carsten Dormann in the bipartite::swap.web function. This takes a random matrix first with same row and column sums as the original (via r2dtable), and then restores the original matrix fill through steps of swapping 2x2 submatrices. The current R code is slow. * permatfull: when both cells and individuals are shuffled, the matrix fill remains constant. * nesteddisc: replaced with a new function that orders tied columns to minimize the discrepancy statistic. If there are <=7 tied columns, all upto 5040 permutations are inspected, and if there are >7 tied columns, 5000 random permutations are inspected. The ties are inspected only if they could change order of columns within range of row sums (species richness). A warning with results is only printed if there were >7 tied columns that could influence the statistic, because in other cases the search for solution was exhaustive. The new function may be slow, and a more clever solution should be found (or nesteddisc dropped from vegan). With this code, the discrepancy statistic of the 'sipoo' data is 50 (cf. notes on 1.16-3) instead of the original 55. * betadisper: now works for cases where there is only a single group. 'scores', 'plot' and 'boxplot' methods updated to work in such cases. 'anova' and 'permutest' methods stop with an error if used for such cases as they implement tests that do not make sense for a single group. Version 1.16-3 (closed November 1, 2008) * spantree: saves labels of points, and 'cophenetic' and 'plot' use these labels. Function 'plot' uses 'ordilabel' for text labels. * orditkplot: added option to copy the current graph to a TIFF file. The capabilities("tiff") check was added in R-2.8.0, but the test works in R < 2.8.0 as well. * nesteddisc: Carsten Dormann (UFZ, Leipzig, Germany) turned my attention to the sensitivity of discrepancy to ties in column frequencies. These are not handled by any way (yet), but the users are warned now about ties. For instance, the example matrix 'A' on page 259 of Brualdi & Sanderson (Oecologia 119, 256-264; 1999) can be ordered to give discrepancy value = 2 instead of value = 3 reported in the paper with a different ordering of columns. Different random reorderings of species in the 'sipoo' data in vegan can give discrepancy values 51 to 58 (and the original arbitrary ordering gives 55). This means that discrepancy values are not very reliable, but ties should be handled better or the function withdrawn from vegan. * ordisurf: returns x, y and z used by contour() following a query "[R-sig-eco] output from ordisurf" on Oct 23, 2008. Version 1.16-2 (closed October 27, 2008) --- for Annukka * beals: replaced old beals.R with the new code by Miquel de Caceres with new methods described in De Caceres & Legendre (Oecologia 156, 657-669; 2008). This also implements the cross-validatory Beals of Munzbergova & Herben (Oikos 104, 408-414; 2004) plus many new options of unbiasing estimates. * permatfull: bug of row/col margins is fixed, shuffle argument is added to enable individual and sample based randomisation of count data (or both) when not all the margins are fixed. * anosim: API and documentation made similar to mrpp to combine their documentation. Now anosim can take data frame input and find the dissimilarities internally. Version 1.16-1 (closed October 10, 2008) * dispindmorisita: function to calculate Morisita's index of dispersion, and its standardized version. Uses the correct way of standardizing, see Note section in help. * radfit: Should work with empty sites (no species) or when the number of species is less or equal the number of parameters estimated (like may happen in sweeping analysis of data frames or simulations). Takes care that input data frames have row names which are necessary for displaying results. * head.summary.cca & tail.summary.cca: shortcuts to print(summary(x, ...), head, tail) for nicer Sweave tutorials. Version 1.16-0 (closed on September 30, 2008) * New devel version after branching the release version 1.15-0. Identical to the release version, but includes MOStest and adipart functions that were removed from 1.15-0. Version 1.14-12 (closed September 26, 2008) * add1.cca, drop1.cca: new functions that also implement permutation tests with argument test = "permutation", but only use default methods with test = "none". Function drop1.cca uses anova.cca(..., by = "margin"), and add1.cca implements a new type of analysis for single term additions. The immediate reason for implementing these tests was that I found out that step(..., test = "Chisq") worked(!) producing parametric likelihood ratio tests, and this hole had to be closed before users notice this. * anova.cca: improved treatment of models where constrained or unconstrained models are NULL so that permutation tests are impossible. These used to stop with error, but now they return a zeroed result so that things like anova(..., by = "term") and drop1() work. Added function anova.ccanull to handle these cases. * anova.cca(..., by = "margin") was handling wrongly 'x' in ~ Condition(x) + x + z, or model formulae where same variables were used both as Conditions and (aliased) constraints. * anova.cca(..., by = "margin") or function anova.ccabymargin gained a 'scope' argument which is used in drop.scope(). * orditkplot & ordipointlabel: improved interface allows passing font type from ordipointlabel to orditkplot. * copied to version 1.15-0 at rev506. Version 1.14-11 (closed September 10, 2008) * anova.cca/permutest.cca: default permutation model changed from "direct" to "reduced" after Pierre Legendre's simulation test demonstrated slightly better Type I error for "reduced" models in by = "axis" and other partial models. This is also consistent with CANOCO (but permutation of CCA residuals differs from CANOCO). For compatibility with old versions of vegan, you must set model = "direct" explicitly. * ordiplot: did not use partial match for "sites" and "species". Version 1.14-10 (closed September 5, 2008) * treedive: tries to match 'comm' and 'tree' names if forced (by an arg), or when sizes do not match. Output vector has names. Docs discuss estimating signifcance using oecosimu(). * oecosimu: accepts now a vector of statistics and plain statistics instead of the list item statistics, and the user can define the name of the statistic in the function call. This means that things like functional diversity (treedive) for sites can be analysed with approprite simulation model. * nestedtemp & oecosimu documentations split. * ordiParseFormula: formula of the partial terms has the same environment as the general formula. Cures some tricky issues when the partial term of cca/rda/capscale model is updated within a function. (The environment() drives me crazy, says J.O.) * ordiParseFormula gains new argument 'envdepth' to define the depth where the community data (dependent data) is evaluated. Most functions evaluate community data in the parent environment of the calling function, but capscale() creates new dependent data and needs evaluate the community within calling function. (The environment() drives me absolutely crazy, says J.O.) * specaccum: empty (all zeros) species removed from input data. These confused method = "exact" which gave sd = NA. * permutest.cca: tells whether the test was for all eigenvalues or for the first (this is implicit in anova.cca). * vegan-internal.Rd: brief documentation of internal functions for developers with some guidelines of good practices. Version 1.14-9 (closed August 20, 2008) * closed concurrently with the release of vegan 1.13-2: changes up to this version may have been there. * adipart: new function to perform additive diversity partitioning with corresponding S3 methods. * tsallis: new function to calculate Tsallis-entropy, a scalable diversity index family * treedive: new functions for estimating functional diversity defined as the height of a dendrogram of species properties for a site (Petchey & Gaston). Still very preliminary. * plot.procrustes: could fail if two solutions were *exactly* *exactly* identical (noticed by Peter Solymos with wcmdscale example). Version 1.14-8 (closed August 10, 2008) * wcmdscale: new function to perform metric scaling (a.k.a. principal coordinates analysis) with weights for points. * ordiArgAbsorber: now knows about 'choices' and 'display' args of scores(). Reported by Michael Denslow. * orditkplot: plotting text labels was broken in the default case. Zooming works again. Plotting character (pch) is now better centred on the canvas, and the code was simplified. Version 1.14-7 (closed July 30, 2008) * orditkplot: imitates now plotting character (argument pch). Zooming maintains graphical parameters (such as mar). Label selection shown by a rectangle, since label may already be red. Label family, size and font can be vectors. * permat.R, swapcount.R: summary method was modified according to standard R ways, ylab argument was deleted from plot method. The R version of swapcount was deleted and replaced by the C version. Help file was modified accordingly. * ordilabel: new function for cluttered ordination plots -- text is written on a non-transparent label. Similar to s.label() function in ade4. * ordipointlabel: new function for cluttered ordination plots -- points are in fixed positions, but their text label is located to avoid overlap. The optimization is based on optim(..., method = "SANN"). Similar to pointLabel function in maptools. Returns an "orditkplot" object, but orditkplot cannot yet completely handle this (and this feature is undocumented). * permutations: permuted.index2 and associated functions now allow for restricted permutations of strata (i.e. restricted shuffling of the blocks). This changes the acceptable 'type' options and adds a new argument 'permute.strata' to permControl(), to control how and what is permuted. Version 1.14-6 (closed July 5, 2008) * permatswap (nestedness.c): translated Peter Solymos's swapcount.R to C. This is still experimental code, and the user interface is undocumented, except here: use method = "Cswap" in permatswap. * permatswap: was not updating swap matrix but using the same starting matrix after burnin for every swap. * swapcount.R: was advancing 'thin' counter even when a swap was rejected so that fewer than requesed 'thins' were done. * permat.R, swapcount.R: genereal cleanup, most importantly replacing vector operators & and | with logical operators && and ||. * commsimulator: "quasiswap" written in C and *much* faster now. Times are for MacBook Intel 1.86 GHz and 100 matrices: "sipoo" from 7 min to 4 sec, "BCI" from 2+ hrs to 45 sec. Actually, quasiswap is now much faster than ordinary swap which also should be written in C. "Backtracking" is so much more complicated code that it could probably never reach "quasiswap" even if written in C, and it may be dropped in the future. * commsimulator: "swap" and "tswap" written in C, and clearly faster now. In MacBook, 100 swaps with "sipoo" went from 8 sec to 0.5 sec, and thinning hardly influenced timing (it used to thin-fold times). * oecosimu: takes care that original statistic is found from binary data. Version 1.14-5 (closed June 19, 2008) * scores.rda: scaling = 0 returns now unmodified scores from the object (like documented) without multiplying by the scaling constant. Gains argument 'const' for user-settable general scaling constant of the scores. The default 'const' is found internally to giv a biplot scaling so that species and site scores together approximate the original data. The value of 'const' is returned as an attribute of 'scores'. * summary.cca: prints the value of general scaling constant used in 'rda' or 'capscale'. * summary.cca: prints 'capscale' like 'rda' (used to have some 'cca' style output, like calling site scores "weighted averages" instead of "weigthed sums"). * permutest.cca: estimates now residual df as number-of-rows - rank-of-constraints-and-conditions - 1 so that df and pseudo-F are equal to those reported by lm() for single response variables in rda. anova(..., by = "ax") needs rethinking though: it only had one df. Because the test was based on permutation and order statistics the change of df does not change the significances: the observed pseudo-F and permuted pseudo-F's are influenced similarly by the change of df, and order statistic does not change. * varpart: long formulae were cut off in printoutwith a cryptic warning. Version 1.14-4 (closed June 12, 2008) * permatfull, permatswap and swapcount: functions to generate unrestricted and restricted null model community data matrices under diferent constraints (preserving row/columnsums, or incidence pattern), with print, plot and summary methods. (submitted by PS) * adonis: speed-up and doc updates. Version 1.14-3 (closed June 9, 2008) * rda.default, cca.default: vegan naively used only the rank of the ordination, but indeed, there are three cases of ranks: rank of the ordination or number of axes (returned as rank like before), rank of the constraints after conditions (now returned as qrank), rank of conditions + constraints (returned in QR$rank). When only 'rank' was used, vegan for instance aliased terms beyond rank of ordination axes, extractAIC did not get df right when going beyond rank of ordination, anova(..., by="t") gave zero df for constraints beyond rank of ordination, and calibrate.cca ignored those extra variables (now stops). In addition predict.cca and predict.rda(..., type="lc", newdata=somedata) gave wrong results in partial model. The following changes were made if necessary to cca/rda support functions: * alias.cca: QR$rank * anova.ccabyaxis: OK * bstick.cca: OK * calibrate.cca: stop with error if qrank > rank * extractAIC: qrank * mso: OK (HW confirms) * msoplot: OK (HW cofirms) * permutest.cca: qrank, also fixes anova.ccabyterm * predict.cca/rda: QR$rank with type = "lc" & newdata * summary.cca/rda: OK * scores.cca/rda: OK Version 1.14-2 (closed June 5, 2008) * Helene Wagner joined the vegan team. * mso: automatically collapses distance classes larger than half the maximum distance into a single distance class. * mso: plot.mso renamed to msoplot so that plot.cca also works, and the example uses now Oribatid mite data set. * mso: gained a print method that also shows the variogram (Helene, please check this!), and mso knows about its own call. * lines.spantree: did not pass graphical arguments to lines (broken in 1.12-15). * ade2vegancca: a new function which tries to change an ade4:::cca object to vegan:::cca object (and manages partially). This is used internally in print.cca, scores.cca and summary.cca so that vegan can display some information from ade4:::cca (with a warning). Since scores.cca works for ade4, so do plot, orditkplot etc which rely on scores. Version 1.14-1 (closed May 29, 2008) * plot.mso: passes extra arguments (...) to graphical functions. * mite.xy: new data set with spatial coordinates for the Oribatid mite data. From Pierre Legendre's web page. * weights failed in several ordination utilities, because weights.default in R 2.7.0 (stats) could not cope with objects that do not have weights. R 2.6.2 still returned NULL for those objects, but now weights.default gives an error. As a workaround several vegan functions define internally weights.default <- function(object, ...) NULL to get back the old behaviour. Concerns orglspider, ordicluster, ordispider, ordiellipse, ordisurf, factorfit, vectorfit. * inertcomp and intersetcor only work with objects inheriting from "cca", but they did not check that the object was of the correct type and so could end up with calling weights.default or give obscure error messages. * permutest.betadisper: Could give the wrong pair-wise permutation p-values. Reported by Daniel O'Shea. Version 1.14-0 (closed May 21, 2008) * The base of the release version 1.13-0. Version 1.12-15 (closed May 14, 2008) * closed the revision and made it as the base of release branch 1.13-0 at rev353. * capscale: prints info on possible metaMDS transformations, and uses metaMDSdist transformed data for getting species scores (similarly as metaMDS recently does). * ordiTerminfo: does not give superfluous warnings if constrained ordination called without constraints and without data=, like capscale(x ~ 1). * graphical functions: Graphical functions that also pass '...' to non-graphical functions (such as scores) now accept non-graphical arguments without issuing an warning. These warnings were harmless but it is neater to stop them happening in the first place. This is facilitated by the new internal function ordiArgAbsorber(). * MOStest: added fieller.MOStest for approximate confidence intervals of the location of the hump or pit. The method is based on Fieller's theorem following ter Braak & Looman (Vegatatio 65, 3-11; 1986) and profile based condifence limits following Oksanen et al. (Ecology 82, 1191-1197; 2001). Both are based on the code from the ESA Ecological Archives accompanying Oksanen et al. (Ecology 82, 1191-1197; 2001) and published in package optgrad (http://www.esapubs.org/archive/ecol/E082/015/default.htm), but profile methods heavily borrow from the MASS package. Version 1.12-14 (closed May 9, 2008) * mso: added Helene Wagner's mso function for direct multi-scale ordination or spatial partioning of 'cca' and 'rda' results (Ecology 85, 342-351; 2004). Thanks to Helene Wagner for allowing the inclusion of the code. * MOStest: new function to implement Mitchell-Olds & Shaw test for the location of quadratic extreme in a defined interval. * capscale: accepts now other dissimilarity function than vegdist, and optionally uses metaMDSdist to manipulate dissimilarities similarly as metaMDS. This provides now a one-shot unconstrained principal coordinates analysis ("metaPCoA"), optionally with extended (flexible shortest path) dissimilarities. Incidentally this also implements a "new" possibly unpublished ordination method: extended distance based redundancy analysis. * metaMDSdist: argument 'add' gained new alternative "ignore" to do nothing with zero distances. This can only and should be used with metric scaling (cmdscale(), capscale()). * ordispantree: removed after being deprecated and defunct for a long time. Use lines.spantree instead. Version 1.12-13 (closed May 7, 2008) * orditkplot: labels can be edited with double clicking, and shift-mouse allows zooming into smaller are in the plot. Version 1.12-12 (closed May 1, 2008) * adonis: added calculation of coefficients both for the species (when data matrix was given) and for sites (both with the data matrices and dissimilarities). * betadisper: was not calculating distance to centroid correctly for observations where the imaginary distance to centroid was greater than the real distance (resulting in negative distance) which resulted in NaN when we took the square root. betadisper() now takes the absolute value of the combined distance before taking the square root. This is in-line with Marti Anderson's PERMDISP2. Version 1.12-11 (closed April 23, 2008) * adonis: permutation tests fixed. The permutation statistics were wrongly calculated. The results will now be different than in older version, including the example(adonis). Basically, the reported statitistic used SS improvement compared to the residual of the complete model, but permutations used SS accumulation compared to the residual after the current model. * specaccum: returns item "individuals" or the average number of accumulated individuals with method = "rarefaction". A user request. * rarefy: accepts now a vector of sample sizes, and then returns a matrix with a column for each sample size. If also 'se = TRUE', returns two rows for each case, one for rarefied richness, and after than one for its standard error. This was a recurrent user request. * zzz: vegan got package startup message. Version 1.12-10 (closed April 19, 2008) * adonis: the fix for the unused factor levels (r312) revealed that adonis did not handle properly aliased variables and pivoting. Results need checking. * designdist: gained argument 'abcd = FALSE' to use the 2x2 contingency table notation instead of the more tangible default notation. Version 1.12-9 (closed April 13, 2008) * ordiArrowMul: added function 'ordiArrowMul' to improve automatic scaling of biplot arrows (in plot.cca, text.cca, points.cca) and fitted vectors (in plot.envfit). Reversed axes 'xlim=c(1,-1)' work now, and shifted origin 'at = c(1,1)' taken into account in plot.envfit. * plot.cca: scaling used for biplot arrows is returned as an attribute to the 'biplot' item in the 'ordiplot' object (but this attribute is not used for anything useful yet). * summary.cca: contributions of eigenvalues accumulated for constrained and unconstrained axes, and separately (new) for constrained axes. * allPerms: Now accepts a vector from which number of observations can be deduced. This was the intended behaviour but allPerms failed in such cases. * adonis: Was not dropping empty levels of factors, which was leading to incorrect results (d.f. was inflated). Reported by Tyler Smith. Version 1.12-8 (closed April 6, 2008) * permute: New high-level untility function for facilitating the production of permutation tests using the new permutation designs allowed by permuted.index2(). An example of the new API is shown in ?permute. * permutest.betadisper: Pairwise t test function made more computationally stable. Version 1.12-7 (closed Mar 30, 2008) * permuplot: New function, produces a graphical representation of a permutation design given a number of observations and a object returned by permControl(). The function handles all the permutation designs currently handled by permuted.index2(). * permuted.index2: was not returning correct sample indices for grid designs within strata. Also, was not consitently mirroring series and grid designs when 'constant = TRUE' (i.e. mirroring was not applied the same way within each level of strata). * permCheck: Now includes several sanity checks for balance in permutation designs ('grid' & 'strata') and when using same permutation in each level of 'strata' (constant = TRUE). Also works if object is a (numeric or integer) vector of length 1, by expanding it to seq(from = 1, to = object). This is now in-line with the way numPerms works. New argument 'make.all' in permCheck() allows greater control over the checking process. Allows user to check a permutation design without generating the matrix of all possible permutations. Used in allPerms() to allow that function to check permutation designs without getting stuck in infinite recursion, as permCheck() calls allPerms() if complete = TRUE. This change allows allPerms() to be called by a user without having to make sure the supplied design makes sense - the design is checked using 'make.all = FALSE'. * screeplot: functions return now invisibly the xy.coords of bars or points for eigenvalues. They used to return invisibly the input data ('x'). Concerns screeplot methods for 'decorana', 'cca', 'princomp' and 'prcomp' objects in vegan. * varpart4: result could be wrong if 'varpart' was bypassed and 'varpart4' was called directly, because 'Y' was not centred before calculating sum of squares in 'varpart4' ('varpart2' and 'varpart3' were OK). Reported by Guillaume Blanchet, Uni Alberta. * permutest: Now a generic function. permutest.cca is now the 'cca' method. * permDisper: This function has been renamed to permutest.betadisper and documentation updated. * TukeyHSD.betadisper: Function is now documented with betadisper. Version 1.12-6 (closed Mar 25, 2008) * metaMDS: WA scores for species are now based on the same transformations and standardization (like wisconsin(sqrt())) as the dissimilarities. They used to be based on the original data even when the data were transformed for the ordination. The change is minimal: data are evaluated similarly as in metaMDSdist if wascores are requested. An alternative would have been to split data manipulation function into an independent function from metaMDSdist, but I try this first. For compatibility reasons, the previous behaviour can be re-established using argument old.wa = TRUE. * allPerms: Now allows unbalanced designs for "series" or "free" permutations within levels of strata only (i.e. allows different number of observations per level of strata). Unbalanced "grid" designs are not supported (and are unlikely to be so in the near future). permuted.index2 has allowed these cases from the beginning. * allPerms, numPerms: Corrected for situations where type = "series", mirror = TRUE with only 2 observations. In this case, mirroring does not double the number of permutations. Version 1.12-5 (closed Mar 24, 2008) * plot.procrustes: could fail if compared configurations were numerically identical. * allPerms: New function to enumerate all possible permutations for a given permutation scheme and number of samples. Has 'print' and 'summary' methods. * numPerms: Now accepts a numeric or integer vector of length 1 as the first argument 'object'. If supplied it is expanded to seq(from = 1, to = object). This change allows you to state the number of observations rather than pass an object from which the number of observations is deduced. Updated and clarified documentation in this regard. Version 1.12-4 (closed Mar 20, 2008) * permDisper: Added pairwise comparisons of group dispersions via a classical t test and via permutation test, accessed via new argument 'pairwise = TRUE'. 'permDisper' is now documented seperately from 'betadisper'. * TukeyHSD.betadisper: A method for 'TukeyHSD' to calculate Tukey's Honest Significant Differences for the grouping factor in 'betadisper'. * numPerms: Was incorrectly calculating the number of permutations when permuting levels of strata was performed. numPerms was also incorrectly reporting too many permutations in the particular case of type="grid" and mirror=TRUE with ncol=2. * permuted.index2: When permuting levels of 'strata' (type = "strata"), permuted.index2 was shuffling both the levels of strata *and* shuffling the samples within levels. The latter was incorrect and is now fixed. Version 1.12-3 (closed Mar 9, 2008) * betadiver: a new function that implements all indices of beta diversity reviewed by Koleff et al. (J. Anim. Ecol., 72, 367-382; 2003), with a plot function to produce triangular plots. * isomap: added dynamic, spinnable 3D graphics using rgl (rgl.isomap). Version 1.12-2 (closed Mar 7, 2008) * nestedtemp: Rodriguez-Girones & Santamaria (J. Biogeogr. 33, 924-935; 2006) have had a look inside the original temperature calculator code and give a more explicit description of the method. Following their paper, I implemented an iterative procedure to alternately pack columns and rows for ones and zeros. The fill line is still a parabola, but this seems to be very similar to the R-G & S fill line with fills 0.2...0.8 and I don't hurry with this. There still are differences in many aspects of implementation. The iterative procedure gives slightly different results between runs, but here tests: Rocky mountain mammals 3.87 (A&P 3.81, was 3.59 in 1.12-1), Baja birds (Bajabs.txt) 10.17 (A&P 7.25, was 7.75), Queen Charlotte birds 14.78 (A&P 15.87, was 14.51). Some results are indeed more different than they used to be... * nestedtemp (2): After previous entry implemented the fill line of Rodriguez-Girones & Santamaria. This means almost complete rewrite of the function from 1.12-1. New test results: mammals 4.48, Baja birds 10.16, Queen Charlotte birds 15.85. Baja is the most different. Atmar & Patterson have five Baja bird data sets with these test results: Bajaball 6.33, Bajabl 14.43, Bajabn 5.98, Bajabo 11.18, Bajabs 10.13. Smaller change is that packing is based on indices s and t directly instead of their ranks. * vignettes: added discussion on nestedtemp and backtracking in "Design decisions and implementation". Version 1.12-1 (closed Mar 2, 2008) * biplot.rda: gained argument col to select colours for sites and species. * bstick.princomp: used a wrong number of sticks (PCs). Reported by Guy Yollin. * nestedtemp: Returns row and column coordinates, optionally labels plot. * merged last doc fixes from branches/1.11-0/ after release. Version 1.12-0 (Feb 15, 2008) * Made a release branch (1.11-0) based on the the rev. 204, and relabelled this devel branch to 1.12-0. Version 1.10-13 (closed Feb 15, 2008) * preparing for a release and trying to close open threads. * nestedtemp: implemented smooth fill line. The kind of the fill line was not specified in the original paper, but I used parabola which is "as smooth as possible" in the sense that its second derivative is constant. Needs checking, though. Version 1.10-12 (closed Feb 12, 2008) * nestedtemp: new try with smooth fill line. * anova.cca: by = "margin" stops with informative error message if some terms are completely aliased (used to stop with an uninformative error message). Type III effects really do not make sense with aliased variables. * calibrate.cca: does correct pivoting of aliased models. * orditkplot: Set up all basic features, and added points, text, and scores methods. Features that should be added include zooming to a rectangle drawn with a mouse, and adding env variables. The latter would be trivial in a simple way, but the user should be able to move the bunch of arrows to another place, and scale the length of arrows with a mouse. Version 1.10-11 (closed Feb 3, 2008) * bgdispersal: New, more powerful test statistic (in terms of Type 1 error rate) for the McNemar test (Pierre Legendre). * CCorA: internal functions embedded in CCorA(). * orditkplot: More resilient against user errors. New output file types (bmp, xfig), jpeg uses 100% quality. more aware of operating system and capabilities. Accepts graphical par in the function call. Gains arguments xlim, ylim. Arguments col, bg, cex renamed to pcol, pb, pcex so that the do not shadow par(). * permuted.index2: fixed a bug in permutations with strata. * summary.prc: honours now argument 'axis'. Reported by Francois Gillet, Lausanne. * Documentation: added documentation for permuted.index2, permControl, permCheck and helper functions. FAQ and intro know now about orditkplot, anova.cca(..., by="margin") and permuted.index2. FAQ gained new sections on using different plotting symbols and handling congested plots in ordination graphics. Version 1.10-10 (closed Jan 27, 2008) * DESCRIPTION: suggests tcltk. * orditkplot: new function for ordination plots based on Tcl/Tk: you can edit graph by moving labels using a mouse and save the edited graph as an eps file, or export via R plot function to eps, pdf, png or jpeg, or to dump to R session for further processing. * CCorA: removed partial analysis (which needs more work and may reappear later). Version 1.10-9 (closed Jan 16, 2008) * anova.cca: new option by = "margin" to perform separate tests for each marginal effect in a model with all other terms. This is similar to Type III tests, but will only work with marginal terms, and will exclude main effects when corresponding interactions are in the model. P-value is now assessed in the true blue way as (hits+1)/(permutations+1) in all anova.cca methods. Permutations should be able to handle now rank deficit cases with pivoting in the QR decomposition (permutest.cca). * permuted.index2: New version of permuted.index() that now allows restricted permutations. Can produce permutations for time-series or line transects and for spatial grids. These can also be nested within 'strata'. permuted.series() and permuted.grid() are the relevant workhorse functions. Permutation options are set by new function permControl(). Plan to migrate vegan functions to permuted.index2() in the devel version, and will eventually replace the current permuted.index(). * permCheck: New function for checking permutation schemes under permuted.index2. Uses new function numPerms() to generate the number of possible permutations. permCheck() has print, summary and print.summary methods. Version 1.10-8 (closed Dec 14 2007, at Rev. 133) * metaMDS: gains argument wascores (defaults TRUE) to suppress calculation of species scores. * wascores: return now NA for missing (all zero) species instead of failing. * ordiplot: ignore missing scores in plotting and printing. * betadisper: new functions for Marti Anderson's analysis of homogeneity of multivariate dispersions. * nestedtemp: handles now tied frequencies using ties.method = "average" in rank(). Function is still preliminary, and may be dropped from the release. * taxa2dist: issues now a warning if called with 'check = FALSE' and there are zero distances, typically meaning that basal taxa (species) were not coded. Also explained in the help. * varpart: failed if there were unused levels in factors (reported by Clément Tisseuil, Toulouse). * adonis: loses argument 'distfun'. Instead accepts now any 'dist' object as input instead of a data frame or a matrix. Version 1.10-7 (closed Nov 18, 2007 at Rev. 119) * adonis: gains argument 'distfun' (default 'vegdist') so that other standard conforming dissimilarity functions than vegdist can be used (a user request). * decorana: does not crash R when called with NULL row data such as decorana(dune[FALSE,]) (reported by Richard Tellford, Bergen, Norway), and predict(..., type="sites") works correctly with downweighted analysis (reported by Colin Beale, Aberdeen, Scotland). * isomap: checks now that input data are dissimilarities or can be changed into dissimilarities without warnings. * ordixyplot: can now display biplot arrows and factor centroids in constrained ordination or from envfit (ordisplom and ordicloud cannot display these). * ordixyplot, ordicloud and ordisplom: no longer have explicit scaling argument, but can now pass arguments to scores() as well as to the plotting functions. * oecosimu: evaluates now two-sided P-value of the statistic from simulations. Doc updates. * vignettes: use all similar style (amsart, a4paper, sidecap, date style). * FAQ: tell about docs added to R-Forge versions of vegan. Tell about predict() for having "passive" points. Version 1.10-6 (closed Oct 31, 2007 at Rev. 100) * Gavin Simpson joined the vegan team. * oecosimu: new functions for indices of nestedness of patches or islands, and simulation of null communities. * scores: cca method does now accept display = c("species", "sites"). Previous fix (1.10-5) was for rda method only. Documentation updated to reflect changes. * biplot.rda: now allows a different type to be specified for each of the species and site scores. Function now documented more completely. * ordixyplot, ordicloud and ordisplom: now have argument 'scaling'. * orditorp: now handles additional arguments passed as '...' more cleanly. Arguments can be passed to scores() or points/text. This should avoid the warning messages of previous versions. * sipoo: a new data set on the bird communities in the Sipoo (Sibbo) archipelago to demonstrate the oecosimu functions. Version 1.10-5 (closed Oct 18, 2007 at Rev. 86) * biplot.rda: new biplot function for PCA in rda() (Gavin Simpson). * scores: cca method accepts now display = c("species", "sites"), when it only used to accept c("sp","wa"). More consistent arguments in the default method. * CCorA: Pierre Legendre submitted code for permutation test of Pillai's trace. * capscale: negative scaling works now in plot() and scores(): estimates species sd() from the 'comm' if 'comm' is known. Version 1.10-4 (closed Oct 6, 2007 at Rev. 75) * anova.cca: failed in anova(object, by = "axis") when the fitted model had terms like poly(x, 2) or log(x). * ordiresids: new function for plot.lm like diagnostic plots for constrained ordination: Residuals ~ Fitted, sqrt(abs(Residuals)) ~ Fitted, and qqmath(~ Residuals) using Lattice graphics. * fitted.cca, fitted.rda: gained agument type = "working" to get the fitted values and residuals used internally in calculation (to be used in plot.lm diagnostic plots residuals ~ fitted). Version 1.10-3 (closed Oct 2, 2007 at Rev. 62) * doc: added vignettes intro-vegan on ordination methods and diversity-vegan. * Trellis graphics for ordination objects with functions ordixyplot, ordicloud and ordisplom. These functions are still unsatisfactory. In particular, I haven't found a clean way of having biplot arrows in the graphs (how do you know the coordinates and the axes used?). Contributions are welcome. * ordispantree made dysfunctional (deprecated in 1.8-1). Version 1.10-2 (closed Sep 14, 2007 at Rev. 36) * vegandocs: added FAQ-vegan, and renamed the old vegan-FAQ to decision-vegan. Only primary sources (texi, Rnw) in the source repository: derived files (.tex, .pdf) should be made when package is built. * CCorA: Pierre Legendre's functions for Canonical Correlation Analysis. These provide a more robust alternative to the standard cancor() in base R. (under work) * scores.default: handles numeric data frames. Version 1.10-1 (closed Sep 7, 2007 at Rev. 21) * taxondive: Fixed dimension checking, matching names and non-unique taxon names. Version 1.10-0 (Sep 6, 2007) * Moved vegan_1.8-7 (CRAN release) into R-Forge.R-Project.org and Subversion SCM. This ChangeLog will only contain most important news (and should be renamed to NEWS), and the real ChangeLogs are created by the SCM. The revisions will be numbered as 1.10-1 to 1.10-x, and the next release will be 1.11-0. VEGAN RELEASE VERSIONS at http://cran.r-project.org/ Version 1.8-8 (Oct 2, 2007) * Minor bugfix release for upcoming R-2.6.0. Based on the http://r-forge.r-project.org/projects/vegan/ revision 17 (= 1.8-7) with ported bug fix revisions from 1.10-3 (see below for revision numbers). * anova.cca: by = "term" failed in partial model. This was broken in 1.8-6 by introducing a test against deficit rank models (r47). * cascadeKM: Calinski index works now when the input data is a data.frame (r57, 58). * flush.console: metaMDSiter and bioenv use now flush.console() so that Windows people also see the trace (r56). * ordispantree: made defunct, was deprecated in 1.8-1 (r38). * scores: handles now numeric data frames (r25). * summary.cca: failed if only one type of scores was requested (r50, 52). * taxondive: Fixed dim checking and matching species names in community data and taxonomic distance data (r21). * tweaks to pass --pedantic R CMD check, mainly in formatting source files, unused variables in source files and superfluous braces in help files (r39, r46, r62). * Updated FAQ-vegan.pdf to the current version at R-Forge. Version 1.8-7 (August 24, 2007) * Based on devel version 1.9-34. * DESCRIPTION: M. Henry H. Stevens (Miami University, Oxford, Ohio) joined the vegan team. * adonis: new function for nonparametric MANOVA that is appropriate for even extremely wide matrices sometimes associated with gene data and with diverse ecological communities. Author Hank Stevens. * taxondive: a new function for indices of taxonomic diversity and distinctness after Clarke & Warwick (Mar Ecol Prog Ser 216, 265--278, 2001 and other papers). With a helper function 'taxa2dist' to turn taxonomies into distances with an option for variable step length (Clarke & Warwick, Mar Ecol Prog Ser 184, 21--29, 1999), and a toy data set on the taxonomy of dune meadow species ('dune.taxon'). With a help, testing and pressure from Mike Cappo, James Cook Uni, Qld. * bgdispersal: previous version was partly garbled (by me), and P. Legendre provided a corrected one. * designdist: keeps 'dist' attributes even when the 'method' function drops them. Swapped the order to (terms, methods) in the default name. * metaMDS: issues a warning if data are disconnected. Passes extra arguments to other 'distfun' than 'vegdist' so that you can set 'terms' in 'designdist' etc (metaMDSdist). Can now do trymax=0 or skip random starts and give you enhanced 'isoMDS' result (metaMDSiter). * ordiplot: failed if number of species was equal to number of sites (and so did plot.metaMDS and plot.isomap using this). * plot.profile.fisherfit: corrected a harmless error detected by checkUsagePackage(). * predict.rda: removed some dead (but heavy) code from type = "response". Version 1.8-6 (May 9, 2007) * Based on devel version 1.9-23. * as.mlm.cca, as.mlm.rda: new functions to refit constrained ordination result (cca, rda, capscale) as a multiple response linear model. You can find influence statistics (Cook's distance, hat values) from the refitted model. You also can find t-values etc., but these have the same bias as in other software and should not be used. * bgdispersal: a new function for dispersal direction in biogeography (Legendre & Legendre 1998, section 13.3.4). Author Pierre Legendre. * designdist: a new function for defining your own dissimilarity index or for estimating beta diversity (Koleff et al., J. Ecol. 72, 367-382; 2003). * isomap: a new function for isometric feature mapping of Tenenbaum et al. (Science 290, 2319-2323; 2000). * screeplot, bstick: new functions to draw screeplots of vegan ordination results with brokenstick lines, and alternative screeplot functions for prcomp and princomp with brokenstick. Author Gavin L. Simpson. * swan: a new function for the degree of absence (Swan 1970, Ecology 51, 89-102). * anova.cca: now refuses to do 'by = "terms"' if the rank of constraints is higher than the rank of the community matrix. * bioenv: gains argument 'partial' to perform partial bioenv. * cca, rda, capscale: can now handle longer expression within 'Condition()' (ordiParseFormula). Used to drop observations with missing values in unused variables (ordiGetData). * goodness.cca, goodness.rda. 'statistic = "distance"' was wrongly implemented. Now refuses to find "distance" in constrained analysis: distances of constrained and unconstrained components do not add up to to distances in unconstrained ordination. * metaMDS (metaMDSdist): gains argument 'distfun' to use other dissimilarity functions than vegdist. * renyiaccum: used a variable that was not defined as an argument. Added support functions persp.renyiaccum and rgl.renyiaccum (Roeland Kindt). * stressplot: R2's renamed to 'non-metric fit' and 'linear fit'. * Doc: Corrected reference to Hurlbert in diversity (thanks to Ralph Grundel). Updated references (varpart, renyiaccum). Removed discussion on t-values in cca from vignettes, because as.mlm.cca now implements those. General cleanup and better utf-8 encoding. Version 1.8-5 (January 11, 2007) * Based on devel version 1.9-12. * no.shared (manifest in metaMDS): prints thousands of lines of debugging info that I forgot to deactive in release. Not fatal, but extremely annoying. * capscale: inertia name as "unknown" if the dissimilarity object does not have a "method" name. Suggested by Roeland Kindt. * DESCRIPTION: license is now explicitly GPL v2 (but not later). Version 1.8-4 (January 8, 2007) * Based on devel version 1.9-10. * cascadeKM: a new function to wrap kmeans and optimality criteria for classification (Sebastien Durand, Pierre Legendre & Marie Helene Ouellette). * renyiaccum: a new function for Renyi (and Hill) accumulation curves (Roeland Kindt). * bioenv: bioenv.formula uses now "na.action = NULL" in 'model.frame', and bioenv.default passes arguments to 'cor' which means that you can set NA treatment in 'cor' using argument "use". * cca, rda: added "..." to formula versions to satisfy tests in R-DEVEL. * cca, rda, capscale: used to fail if called within other functions. Now data always evaluated in the environment of formula using new internal function ordiGetData. * anova.cca: checks that the model has both residual and constrained components or stops with understandable error message (used to stop with incomprehensible error message). * print.summary.cca, print.summary.decorana: have now arguments 'head' and 'tail' to print only a part of species and site scores. Suggested by Gavin Simpson. * metaMDS: checks now that the input data ('comm') is not a 'dist' object (like many users have had). * ordisurf: Does not depend on package 'akima' any longer, but directly finds fitted values in a regular grid using 'predict.gam'. Added pnpoly.c to find which of these values are within the convex hull defined by data. Results also look neater with sparse data now. Added argument 'labcex' passed to 'contour' for changing size of contour labels. Setting 'labcex = 0' will suppress drawing labels (by setting drawlabels = FALSE in 'contour()'). * orditorp: handles now vector arguments of 'col', 'pcol', 'cex', and 'pch'. * rad.zipfbrot: less likely to overflow to NA coefficients during iteration. * renyi: added a plot function, and documented together with renyiaccum() instead of diversity(). * scores.default: Knows now about ade4 objects. Primarily looks for scores scaled by eigenvalues both for sites and species. * specaccum: Added new conditioned method of Colwell et al. with estimated sd based on extrapolated richness (Roeland Kindt). * vegdist.c: More informative warnings with 'method' name (useful with rankindex). * DESCRIPTION: listed 'require()d' packages in the "Suggests:" field to satisfy more anal tests in R-DEVEL. Mention diversity analysis in the "Description:". Version 1.8-3 (Sept 29, 2006) * Based on devel version 1.9-2. * varespec.rda, varechem.rda: saved in binary form, because old ascii form gave warning in R-2.4.0-rc. * vegdist: added Chao index (of Jaccard type) that should take into account missing pairs of species. Checks that Binomial index is non-negative. Identical sites could have dissimilarity of magnitude 1e-17 after some standardizations, but now values <1e-15 are zapped to zero. * estimateR: uses now standard unbiased formulation of Chao. * renyi: should work now (really!). * metaMDS: with zero = "add", zeros now replaced with min(dis[dis>0])/2 (used to be 1E-4) (metaMDSdist). Sets number of tries also when this was not set previously (metaMDSiter) Version 1.8-2 (June 13, 2006) * version 1.8-1 failed test in Windows because of a wrong encoding name. Explicit \enc added for non-ascii words. Kurt Hornik and Uwe Ligges diagnosed this and led me to see the light. * similar to devel version 1.7-97. Version 1.8-1 (June 12, 2006) * Based on devel version 1.7-96. * Pierre Legendre joined the vegan team. * beals: a new function for Beals smoothing. * bioenv: added 'trace' argument. * cca/rda/capscale: accept several 'Condition' elements in the formula. * capscale: capscale(y ~ ., data=...) or expansion of "." on the rhs works now. Documentation recognizes now db-RDA as the real mother method. * scores.cca, summary.cca etc: rewrite so that is cleaner and easier to maintain. User visible changes are scaling by species standard deviation (negative scaling) for 'rda', scaling=0 (no scaling) for all methods and slightly changed output and improved user control in summary. These scalings actually were documented in 1.6-10, although I dropped them just before the release. predict.cca, predict.rda: work now with 'newdata' even when not called with formula. * anova.cca: new argument 'by' for tests of single terms or axes: with by = "terms" performs individual test for constraints, and with by = "axis" a separate sequential test for each axis. New argument 'first' to analyse only the first axis instead of all constrained variation. * intersetcor: new function for the interset correlation or the (weighted) correlation between individual constraints (contrasts) and invidual axes in cca/rda/capscale. (Not recommended.) * decostand: does not automatically convert matrix to a data.frame. NA handling more consistent now (thanks to Tyler Smith for diagnosis). Adds attribute 'decostand' giving the "method". * linestack: now really uses median as the midpoint with the odd number of cases, and does not give superfluous warnings with three or less items. New argument 'labels' to replace the default text in plot. The old argument 'label' renamed to 'side'. However, the function still works with the old syntax, but gives a warning if the old argument 'label' is used for 'side'. Returns invisibly the shifted positions of labels. * metaMDS: 'postMDS' sets now attributes similarly when called independently or within 'metaMDS'. 'metaMDS' forwards arguments to 'postMDS' except 'halfchange'. Change of phrasing in 'print'. Added handling of zero dissimilarities into 'metaMDSdist': either "fail" or "add" 1E-4 into zeros. * mrpp: new function for the multiresponse permutation procedure (MRPP). Code by Henry Stevens (Miami Univ, Oxford, Ohio). * ordiarrows: draws arrowhead only in the last segment. New argument 'startmark' for marking the starting point of the arrow. * ordisurf: new arguments 'main' for the title and 'nlevels' and 'levels' for the number of contour or their values. * orditorp: arguments for text colour and text character expansion changed to standard 'col' and 'cex' from previous 'tcol' and 'tcex'. * procrustes: 'summary' prints now rotation matrix, translation and scale, and honours 'digits'. * prc: new functions for Principal Response Curves (PRC) of van den Brink and ter Braak (Envir. Toxicol. Chem, 18, 138-148; 1999). This is a special rda() model with dedicated summary and plot functions. New data set 'pyrifos' to demonstrate 'prc'. * radfit: added brokenstick as a null model (rad.null), removed rad.veil (as it was a bad idea originally), corrected minor bugs in rad.preempt (which did not fail gracefully). Line colours start from the point colour in plot.radfit.frame. 'print' uses "g" format for coefficients and adds 'digits' argument. Added 'summary.radfit.frame' that simply prints each model. * rankindex: uses now cluster:::daisy when 'grad' includes factors. * spantree: now a method function with 'plot', 'lines' and 'cophenetic' methods. 'lines' replaces 'ordispantree'. The plot has a weird, new way of finding configuration for a spanning tree from cophenetic distances (unpublished). Documented separately. * specaccum: 'plot' honours now 'ylim'. * specpool: Chao richness was wrongly defined, but now uses the biased formula (error introduced in 1.6-5, correct earlier). Failed with zero species or if there were no species that occurred exactly one in the 'pool' (thanks to Emmanuel Castella, Geneve CH, for the bug report). * varpart: new functions for unbiased partitioning of variation by two to four explanatory tables in RDA or linear regression. The author of these functions is Pierre Legendre & co (Univ Montreal). New data sets 'mite', 'mite.env' and 'mite.pcnm' to demonstrate the functions. * vegandocs: new function to display *all* pdf documentation and ChangeLog. This really should be in base R -- this is a kluge to fill the hole. * vegemite: added argument to 'select' a subset of sites. Drops missing species from the table. Prints number of species and number of sites and the used cover scale at the end of the table. Passes arguments (i.e., 'maxabund') to coverscale(). * coverscale: added argument 'maxabund' to 'scale = "log"'. Returns the name of the cover scale as an attribute for vegemite() to print. * vegdist: now first checks input and then transforms (if needed). Thanks to Tyler Smith, * Internal changes: permuted.index acceptes NULL strata as an alternative to missing strata. ordispantreee deprecated. spider.cca removed. * Documentation: general cleanup in help files. New chapter on t-values in cca/rda/capscale in vegan-FAQ. New pdf document on partioning with varpart by Pierre Legendre & co. Non-latin characters now use UTF-8 in documentation. R manual says that you should not use non-latin characters in help files, but that was written by Englishmen. However, this seems to cause distress to some users of a US West Coast OS (Windows), but OK with mainstream OS's (Linux, MacOS). . Version 1.6-10 (September 26, 2005) * Based on devel version 1.7-77. Checked with R 2.1.1 (stable) and R 2.2.0 (alpha). * rda: negative scalings explicitly ignored and treated as corresponding positive values. Function summary.rda used to fail with NA centroids. * permutest.cca & anova.cca: permutation of 'cca' result now re-weights environmental data properly with permuted community weights (this breaks compliance with popular proprietary software). New default method 'direct' that always permutes the data instead of residuals. Now clearly faster basic routines, but re-weighting in 'cca' is costly, and permutations may even be slower than earlier in small data sets. The permutest.cca returns more data: constrained and residual total inertia, degrees of freedom in the input model, and .Random.seed used in iterations. Thanks to Pierre Legendre for pushing me to make this faster. * ordination plot functions: obey now xlim and ylim. * ordination text and points functions: a new argument 'select' that can be used to select a subset of items, and a new argument 'labels' for text used instead of the default row names. * points.cca, text.cca: biplot arrows will be scaled automatically to fit the current graph if 'arrow.mul' is not given. The new behaviour is similar to the default in plot.cca and in plot.envfit. * orditorp: a new "ordination text or points" function to add text or points to an existing plot: adds text if this can be done without overwriting other text labels, and points otherwise. * linestack: a new function to draw labelled one-dimensional diagrams without overwriting the labels (a primitive one, and could easily be improved: submissions are welcome). * ordirgl, orgltext: adapted to changes in rgl package version 0.65. Workaround for older rgl packages, too. * decostand: Added Hellinger transformation. Empty columns and rows become now 0 instead of NaN in most methods, except when the input data contains negative values. Warns on input with negative entries or on output containing NaN. Has now argument 'range.global' for method 'range' based on the code supplied by Tyler Smith. * plot.radfit: puts now legend "topright" in R >= 2.1.0 (which has this keyword). * read.cep: issues a warning if vegan was compiled with gfortran, which has a bug that may corrupt the result. The bug concerns multiline input with T format modifier, and it was corrected in http://gcc.gnu.org/ml/gcc-patches/2005-09/msg00126.html, but still bugs most released versions of gcc. * vegdist: new indices 'raup' and 'binomial'. Method 'raup' implements probabilistic Raup-Crick index and is based on the code submitted by Michael Bedward. Method 'binomial' implements Millar's index, officially published as "Binomial deviance as a dissimilarity measure" (the C code has been in vegan for about two years, but now I tell about it and add the public interface). Method 'mountford' will give NA for any comparison involving an empty site. Warns about empty sites or negative entries with all methods except 'euclidean' and 'manhattan'. * Documentation: added documentation of the cca/rda/capscale result object. Dontruns used more neatly. Version 1.6-9 (April 22, 2005) * Maintenance release: 1.6-8 failed in R 2.1.0 patched and R 2.2.0 devel (works in R 2.1.0 release) due to problems in as.preston. Based on devel version 1.7-62. * as.fisher, as.preston: used table() in a way that failed in R 2.1.0 patched * calibrate.cca: new function to predict or calibrate or bioindicate the values of environmental constraints from community composition (ordination). * decostand: new argument na.rm (defaults FALSE) for ignoring missing values in row, column or matrix standardizations. * vegdist: new argument na.rm (defaults FALSE) for pairwise deletion of missing vaues in dissimilarity calculation. Version 1.6-8 (April 18, 2005) * Based on devel version 1.7-59. Adapted to R 2.1.0 beta. * DESCRIPTION: gives due credit to Roeland Kindt and Bob O'Hara as co-authors. * documentation: updates in capscale, vegdist. vegan-FAQ adapted to changes in Sweave in R 2.1.0. * several methods assumed that input is count data, but silently accepted floating point numbers and gave wrong results. Now they stop with error with non-integer input: fisherfit, prestonfit, prestondistr, rarefy, fisher.alpha, estimateR. * bioenv: uses now 'cor' instead of 'cor.test', and does not give so many superfluous warnings and is marginally faster. Changed printed output, so that gives 'call' instead of names of community and environmental data, since bioenv.formula could not handle these cleanly. * capscale: has now argument 'add' to use an additive constant to all dissimilarities so that all computed eigenvalues are non-negative. This is an argument of underlying 'cmdscale' function, which implements the "Correction method 2" of Legendre & Legendre (1998), p. 434. * decorana: checks now that there are no negative data entries. * dune: cleaner site names. * envfit: 'plot' now automatically scales arrows similarly as 'plot.cca' if 'arrow.mul' is not specified and arrows are added to an old plot. Has now a 'scores' function. * goodness.cca, predict.cca: documented separately. * goodness.metaMDS: new function to assess pointwise goodness of fit in metaMDS or isoMDS. * humpfit: user can now give starting values of parameters. 'summary.humpfit' returns 'cov.unscaled' so that users can apply 'ellipse' function of 'ellipse' package to display approximate confidence ellipses for pairs of parameters (with Normal assumptions). * make.cepnames: No longer duplicates one component names, but 'abbreviate's them to eight characters. * metaMDS: Split to independent metaunits 'metaMDSdist' and 'metaMDSiter'. New function 'metaMDSredist' tries to reconstruct dissimilarity matrices and transformations. 'postMDS' skips halfchange scaling with too few points (with a warning) instead of stopping with an error. Prints now info about 'postMDS' operations. New 'scores' function. Improved 'plot' function with 'display' argument and labelling of axes. Argument 'shrink' to undo expansion of species scores in plot or scores functions. Workaround for a future bug in 'isoMDS' which drops names of points in R 2.1.0. Updates number of 'tries' with 'previous.best'. * ordiplot: has now 'display' argument, so that only species or sites can be plotted. * ordiplot3d: a new function for 3D static ordination diagrams. * ordirgl: new function for dynamic 3D graphics of ordination results. With support functions orglpoints, orgltext, orglsegments and orglspider to add graphical items to dynamic plots. Needs 'rgl' package. * predict.cca, predict.rda: type = "wa" with 'newdata' works now even when some species were removed from the original fit because they were all-zero (missing). Default now to 'model = "CA"' in unconstrained analysis without "CCA" component. * predict.decorana: a new function for 'decorana' results. Similar to 'predict.cca' (but refuses to give impossible results). * procrustes: obeys now 'choices' even when input is a matrix. Plots now projections of rotated axes. New argument 'scores' so that can handle other than "site" scores. * protest: passes now arguments to 'scores' so that now can handle other than "site" scores on more than two dimensions. * rda: handles now species with constant values (typically missing or all zeros). * spenvcor: new function to find the "species -- environment correlation" in contrained ordination (cca, rda, capscale). * stressplot: a new function to plot Shepard diagram for 'metaMDS' or 'isoMDS'. * summary.cca/summary.rda: print now call. * vegemite: can now 'use' 'dendrogram' objects. Version 1.6-7 (Jan 24, 2005) * Based on devel version 1.7-42. * plot.envfit did not plot vectors. Thanks to Roeland Kindt and Ron E. VanNimwegen for bug reports and fixes. * ordisurf obeys now keyword 'display', and '...' will transfer arguments to 'scores'. * ordisegments: obeys now keyword 'display'. * ordigrid: works now. * ordihull, ordiarrows, ordisegments, ordispider, ordiellipse: have a new keyword 'show.groups' to show only specified groups. With the help of this argument it is possible to use different colours and linetypes for each group. Further, it makes possible to plot results of logical comparisons (such as A1 > 4) by setting show.groups = T. Two user requests. * new diagnostic and helper functions for 'cca', 'rda' and 'capscale': 'goodness' to estimate the proportion of inertia accounted for or residuals for sites or species; 'inertcomp' to decompose species and site inertia for conditioned, contrained and residual componets; 'vif.cca' to estimate the variance inflation factors for constraints and conditions; 'fitted' and 'residuals' to approximate data by ordination scores; 'predict' to approximate data or find site or species scores, possibly with 'newdata'; 'coef' to find the regression coefficients. 'alias.cca' is now similar to 'alias.lm' (simplified version of the latter). Version 1.6-6 (Jan 7, 2005) * Based on version 1.7-34, but without still experimental functions predict, fitted, vif & goodness for cca and rda objects. * mantel: implemented partial mantel test (function 'mantel.partial'). Both 'mantel' and 'mantel.partial' should be marginally faster and not give so many superfluous warnings. * plot.envfit: should be more reliable now. A new keyword 'at' to position the bunch of arrows in other places than the origin. Thanks to Roeland Kindt for fixes. * rankindex: Default correlation now "spearman" since the older default ("kendall") was far too slow in large data sets. Should not give so many superfluous warnings. * summary.rda: Site scores were wrong with 'scaling = 3'. Influences 'plot' and 'scores' commands for 'rda' and 'capscale' results with 'scaling = 3'. * vegdist: Issues a warning if 'method = "morisita"' is used with non-integer data. Version 1.6-5 (Oct 12, 2004) * Based on version 1.7-27. Checked with R-1.9.1 (Linux, MacOS X) and R-2.0.0 (Linux, patched version in Windows XP). Passed other tests, but some examples in 'humpfit' failed in Windows XP, and are not run on that platfrom. General cleanup in documentation. Does not 'require(mva)' any longer. * anosim: corrected the equation in docs (function was correct). Thanks to Yong Cao for notifying this. * bioenv.formula: finds now variables from attach'ed data.frames and 'data' need not be specified. * capscale & deviance.rda: capscale was modified so that its result could be handled with step (added a terms component). Function deviance.capscale was deleted so that deviance.rda will be used. A literature reference to AIC in CCA/RDA was added to the documentation. * cca/rda/capscale: Small eigenvalues are made to zero and rank reduced accordingly. Most often influences 'capscale'. * cca/rda/capscale: Now alias constraints that are collinear with other constraints or conditions in partial analysis. New function 'alias.cca' to print aliased contrasts. NB this does not influence the proper ordination results, but only to the selection of biplot scores and centroids displayed. 'summary' no longer gives a redundant warning. * decorana: removes empty species with a warning instead of stopping with error. Still error with empty sites. The behaviour is similar to 'cca'. * envfit (vectorfit, factorfit): Has now a formula interface. Bottlenecks in permutation changed now into C functions. Much faster, in particular 'factorfit' which was 25 times faster in my tests. plot.envfit could drop names (dimensions). Now honours 'scaling' argument in cca/rda/capscale (used to 'scaling = 2' always). * envfit, ordisurf: have now weights parameter 'w'. Weights are used for the results of 'cca' and 'decorana' as default, or they can be supplied by the user. In this way, envfit gives equal results to biplot scores and centroids in 'cca', and ordisurf is consistent with envfit. Both can now access 'lc' scores of 'cca' etc. * estimateR: Abundance-based estimators of extrapolated richness, written by Bob O'Hara . * humpfit: Asesses now the dispersion parameter in non-Poisson models (summary.humpfit). Added a profile method that inherits from profile.glm, so that you can use plot.profile.glm, pairs.profile.glm and confint.profile.glm of MASS for displaying profile and finding the confidence intervals from the profile likelihood. * fisherfit: prints now standard error of the estimate. Added 'profile' and 'confint' methods. * metaMDS: A new function to collect all Peter Minchin's recommendations to run nonmetric multidimensional scaling: (1) adequate data transformation with Wisconsin double and sqrt if needed, (2) use of adequate dissimilarity measure, (3) possible stepacross if needed (this Minchin didn't have), (4) run NMDS with several random starts and stop after finding two similar solutions, (5) scale results with postMDS, and (6) add species scores with wascores. Function has print and plot methods. Function scores.default changed to understand metaMDS. * specpool: Chao is now based on unbiased equation. Standard errors now estimated for Chao, 1st-order jackknife and bootstrap richness, but SE of 2nd-order jackknife still missing. * vegdist: an option for binary indices, since some users believed these are not in vegan, although you can get them with 'decostand'. Version 1.6-4 (June 10, 2004) * Based on 1.7-12. * anova.cca: Changed defaults to beta=0.01 and perm.max=10000. * bioenv: A new function implementing the BIO-ENV procedure of Clarke & Ainsworth (Mar. Ecol. Prog. Ser. 92, 205-219; 1993). The function finds the subset of scaled environmental variables with maximum (rank) correlation with community data. * cca: added ter Braak scaling, a.k.a. Hill scaling, with negative values of `scaling'. This scaling should approximate Hill's non-linear rescaling of `decorana', but it the scaling is linear and does not rescale. The scaling is very simple: the results from corresponding positive scaling are multipiled with sqrt(1/(1-lambda)). * plot.cca: Better heuristics used for the length of biplot arrows, and they are now longer in general. Axes are drawn for biplot arrows also with `text.cca' and `points.cca' functions. * deviance.cca and extractAIC.cca: auxilliary functions which allow automatic model building with `step' or `stepAIC' (MASS) functions in cca and rda. Unfortunately, cca and rda do not have deviance or AIC, and these functions are certainly wrong and dangerous. However, with continuous candidate variables they select the variables in the same order as Canoco. * humpfit: A new family of functions to fit the no-interaction model (Oksanen, J., J. Ecol. 84, 293-295; 1996) to species richness -- biomass data. * vegdist: corrected a bug in Gower index -- range standardization was made to sites, but it should be done to species. Thanks to Brett Melbourne for the bug report. Version 1.6-3 (Mar 22, 2004) * Still based on 1.7-3, but ported some changes from version 1.7-7 (envfit, procrustes). This version was produced to prepare for incompatible changes in coming R-1.9.0. * vegan-FAQ: Does not show the vegan and R versions the documentations were built, because of stupid incompatible change in R-1.9.0 of the future. package.description() function was unnecessarily replaced with packageDescription, and to accomodate recent, present and future versions of R seemed to be too much hassle. * plot.envfit: Added option 'p.max' to display only environmental variables assessed to have P values less or equal to the given limit. * plot.procrustes: added option kind = 0 to draw only axes and functions points.procrustes and lines.procrustes to add points and line segments or arrows to the plot. Version 1.6-2: Based on devel version 1.7-3. * renyi: should work now (again?). * prestondistr: The truncation level was badly chosen. Now default level is set to -1, or log2(-1) = 0.5 which might be the left limit of the first octave. This is now a parameter, leaving the choice as the responsibility of the user. * cca.default: Removes missing species and issues a warning instead of stopping with error. Version 1.6-1: Based on devel version 1.7-1. * Minor maintanenance release to satisfy tests in R-devel. There was a buglet in ordisegments that caused a warning. I had introduced a trick to handle printCoefmat before it was invented to replace print.coefmat, but this failed in R-devel. * Vignettes included in this release. These were only in devel versions of my web pages previously. Version 1.6-0 (Fisher) * Based on devel version 1.5-58. Passes checks with R-1.8.0 and R-1.7.0 and compiles into a Windows binary. Many functions were contributed by Roeland Kindt (Nairobi, Kenya). * BCI: A new data set on tree counts on 1-ha plots in the Barro Colorado Island. Thanks to Roeland Kindt and Richard S. Condit. * capscale: A new function for [partial] constrained analysis of principal coordinates (CAP). * cca, rda: Can now handle cases where the number of constraints is higher than the number of species. * cca, decorana: Find now if data have empty rows or columns. * decostand: Added Chi-square transformation. * distconnected: A new function to find if vegetation data are disconnected below given threshold dissimilarity level. Utility function no.shared gives a logical dissimilarity matrix with values TRUE for cases with no shared species. * fisher.alpha: Should work with large sample sizes now (bug report thanks to Ariel Bergamini). * fisherfit, prestonfit, prestondistr: New functions to fit Fisher's logarithmic series and Preston's log-normal model. * make.cepnames: New utility function to change Latin names into 4+4 character CEP names. * ordicluster, ordispantree: New functions in the ordihull family to overlay a cluster dendrogram or a spanning tree onto an ordination. Weights are now really used with cca and decorana plots. * radfit: New function to fit Ranked Abundance Dominance or Dominance/ Diversity models with maximum likelihood: Pre-emption, log-normal, veiled log-normal, Zipf and Zipf--Mandelbrot models. * rankindex: Can now use stepacross and new dissimilarity indices of vegdist. * rarefy: Can now optionally find SE of rarefied richness. * renyi: A new function to find Rényi diversities or Hill numbers with any scale (thanks to Roeland Kindt). * scores.ordiplot: should be more robust now. * spantree: A new function to find a minimum spanning tree using only dissimilarities below a threshold or disregarding NA dissimilarities. * specaccum: A new function for species accumulation curves. Thanks to Roeland Kindt. * specnumber: A very simple utility function to find species richness. * specpool: New function for extrapolated species richness in a species pool, or for estimating the number of unseen species. * stepacross: New function for estimation of dissimilarities between sites that have no shared species. Implements both flexible shortest paths and their approximation known as extended dissimilarities. * vegdist: New dissimilarity indices Jaccard (finally), Morisita, Horn--Morisita and Mountford. Version 1.4-4 * Based on devel version 1.5-35. * decorana: Finds now eigenvalues from the final solution as ratio of biased weighted variances of site and species scores. The values returned by the legacy Fortran function are called ``decorana values''. * downweight: passes the downweighting fraction as an attribute, and decorana catches and prints the fraction. * wascores: Uses now biased variances for expading WAs and returns the shrinkage factors as an attribute "shrinkage". Shrinkage factors are equal to eigenvalues in CCA when only this one variable is used as constraint. Function `eigengrad' returns only these eigenvalues. * rda summary/plot bugfix: Failed with non-default scaling (1 or 3) when there were no factor constraints. Corrected a statement giving a harmless warning in plot.cca. * ordiplot knows now option type = "text". New simpleminded functions points.ordiplot and text.ordiplot for adding items in an ordiplot graph. * ordiarrows, ordisegments could drop dimensions (when will I learn!) and fail if only one arrow or one segment should be drawn. One argument was missing in a `gl' command in `ordigrid'. Version 1.4-3 (Luova) * Based on devel version 1.5-30 * `cca' and `rda' use canonical expansion of the formula and return the `terms' component. Functions like `terms', `formula' and `update' magically started to work with cca and rda (and eight lines of code would allow `step' and `stepAIC' to work magically in model building... but it's so much magic that I don't trust it). Some of the allowed things are now `mod <- cca(dune ~ . - Use, dune.env)' (all variables but `Use' in dune.env), and `update(mod, . ~ . - Manure)' (remove `Manure' from the previous). * `cca' and `rda' find centroids of factor levels with factor constraints (only with formula interface). These can be accessed with `display="cn"' in `scores', `summary' and `plot'. If `display="cn"' is requested in `plot', biplot arrows are still drawn unless there is a class centroid with the same name: continuous variables are still shown as arrows and ordered factors both as arrows as centroids. * Enhanced user control of many ordination plots. Some accept more graphical parameters (`ordiplot', `plot.procrustes'). New functions `points.cca' and `text.cca' to add these items into CCA/RDA plots (documented separately). * `identify.ordiplot' knows more alternatives, among them `plot.procrustes'. This was helped with new, very generic `scores.ordiplot'. * New functions to add graphical items in ordination diagrams: `ordihull' draws convex hulls for groups, `ordiarrows' draws arrows, `ordisegments' segments, `ordigrid' combines points in to a grid, `ordispider' combines points to their (weighted) centroids or WA scores to the corresponding LC score in cca/rda, `ordiellipse' draws dispersion or confidence ellipses for points. All these take a groups argument for selecting subsets of points. `ordispider' obsoletes `spider.cca' (introduced in the previous release). * Implemented simple ``deshrinking'' of weighted averages in `wascores'. * A new diversity function `fisher.alpha' that estimates the diversity as the alpha parameter of Fisher's log-series. Thanks to Bob O'Hara for the main code. * `summary.decorana' now in canonical form so that printing is done by `print.summary.decorana' and user can intercept and catch the result. Several users had been surprised of the earlier non-canonical behaviour. `summary' knows again the prior weights used in downweighting of rare species (these evaporated in 1.4-0). * rda summary/scores/plot bugfix: Scaling of site scores was wrong with scaling alternatives 1 and 3. * envfit (vectorfit, factorfit) bug fixes: Can now handle single vectors (labelling, permutation). Recognize now `choices' so that the user can select ordination axes. * Checked with released R-1.7.0. Version 1.4-2 Based on devel version 1.5-18 * New functions and data sets: * dune: A new data set -- the classic Dune Meadow data with the environmental data. * ordiplot, identify.ordiplot: New functions to plot "any" ordination result and identify plotted points. Intended to provide similar functionality as `plot', `plotid' and `specid' functions in `labdsv' without name clashes. Functions `plot.cca' and `plot.decorana' return (invisibly) `ordiplot' objects as well, and these can be used by `identify' to label species and sites. * rda: Redundancy Analysis, or optionally, yet another PCA. This is a spin-off from cca(), and it is documented together with cca. The only new functions are rda, rda.default, rda.formula and summary.rda. Otherwise rda uses cca methods which were changed to be aware of rda. * read.cep: A function to read Cornell Ecology Package or CEP formatted files into R. This has been in devel versions since 1.1-1, but it never made to the releases, since this worked only in Linux, but crashed R in Windows. It seemed to work in R-1.6.1 with gcc 3.2 (MinGW) in Windows, so it is included. Treat with caution. * spider.cca: A tiny function that joins each WA score to the corresponding LC score in cca/rda plots. Minor changes: * Checked with R-1.7.0 (unstable devel version, snapshot 2003-02-05) and corrected as needed. * Added symmetric scaling (=3) to alternitves in cca and rda. * Minor improvements and bug fixes in vegemite. Version 1.4-1 (Logan) Based on devel version 1.5-10. New features: * Permutation tests added to envfit (vectorfit, factorfit) and procrustes (called protest). * All permutation tests take now argument strata: If given, permutations made only within strats. Concerns anosim, anova.cca (permutest.cca), mantel, envfit (factorfit, envfit) and protest (in procrustes). * fitted.procrustes(): A new function. * rarefy(): A new function for rarefaction species richness. Other changes: * cca.default(): Handles now NULL matrices X and Z: skips them. * cca.formula(): Knows now cca(X ~ 1) and permforms unconstrained CA, and cca(X ~ ., data) and perfors CCA using all variables in `data' as constraints. Has now na.action=na.fail so that cca crashes more informatively (used to crash mysteriously). A more graceful na.action may come. Assignment "=" corrected to the true blue "<-" (used to crash in old R). * envfit (factorfit, vectorfit): Use `scores' now. Various bugfixes and should work now with single factors or vectors. * plot.envfit(): Options `choices' works now like documented. * ordisurf(): A new name to surf() to avoid name clash with labdsv. * procrustes(): added option `symmetric' for symmetric rotation and goodness of fit statistic. * plot.procrustes(): Keyword `axes' changed to `choices' to be consistent with other functions. * vegemite(): A new name to vegetab. The name was chosen because the output is so compact (and to avoid confusion with function vegtab in labdsv). Function checks now that the cover codes fit in one column and splits the output if it does not fit into used page width. Version 1.4-0 Based on devel version 1.3-19. New functions: * `anosim': Analysis of Similarities. * `cca': [Partial] [Constrained] Correspondence Analysis. This is an alternative to Dray's `CAIV' (package `CoCoAn'). Differences include formula interface, WA scores in addition to LC scores, partial CCA, residual CA after constraints, algorithm based on svd (and much faster), more standard support functions (`plot', `summary', `print'). * `anova.cca' and `permutest.cca': Permutation tests for `cca'. * `envfit': A new wrapper function which calls either `vectorfit' or new `factorfit' function, and `plot.envfit' for easier display of results in graphs. * `mantel': Mantel test for two dissimilarity matrices. * `scores': A generic function to extract scores from `cca', `decorana' or even from some common ordination methods in R. * `surf': Surface fitting for ordination, intended as an alternative to `vectorfit'. * `vegetab': Prints a compact, ordered vegetation table, together with `coverscale' to transform data into compact format. Other changes: * `downweight': directly callable instead of being embedded in `decorana'. Now it can be used with other downweighting thresholds or with other CA's than `decorana', e.g., `cca', `ca', `CAIV'. * `plot.decorana': new keyword `type', removed keyword `tol'. * `vectorfit': centres now ordination before fitting, so it will work with other ordinations than MDS. * Mainly user invisible changes in `plot.decorana', `plot.procrustes', `postMDS', `print.summary.procrustes', `vectorfit', `procrustes'. One of the main changes was that `eqscplot' of `MASS' library was replaced with `plot(..., asp=1)' of standard R (but this is not S-plus compliant). * Edited help files. More examples run from help files. * Tried to improve LabDSV compliance, see http://labdsv.nr.usu.edu/. * Checked with R-1.5.0. However, `log' in diversity not changed into `logb' (yet), although base is specified, because `logb' won't work in R pre-1.5.0. Version 1.2-1 * Checked with R-1.4-0 (frozen snapshot) tools: Documentation and method consistency corrected (summary.decorana.R, decorana.Rd), and file permissions changed. * decorana.Rd: removed dependence on package `multiv' in the example, since it is not a `recommended package' -- replaced with `decorana(..., ira=1)'. Version 1.2-0 Based on experimental version 1.1-6. Doesn't include read.cep() of the experimental version, because the function is certainly unportable to all platforms (works on Red Hat Linux 7.1, but perhaps nowhere else). Major new feature: * decorana(): R port of Mark Hill's DECORANA for Detrended correspondence analysis, with methods print(), summary() and plot(). Minor changes: * postMDS(): finds isoMDS scores and doesn't destroy list structure. * vectorfit: finds isoMDS scores and decorana row scores (which are uncentred, though). * Proof reading in documentation. Version 1.0-3 *`plot.procrustes': selection of axes plotted, improved scaling in graphics, control of axis labels. * `postMDS': added plot to demonstrate half-change scaling. * `procrustes': target can now have lower dimensionality than rotated matrix. Version 1.0-2 * Fixed bugs in documentation. * `plot.procrustes': Fixed passing `...' to graphics functions. Version 1.0-1 * The first public version. vegan/inst/doc/0000755000175100001440000000000012600727026013114 5ustar hornikusersvegan/inst/doc/diversity-vegan.Rnw0000644000175100001440000007732712600727026016744 0ustar hornikusers% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- %\VignetteIndexEntry{Diversity analysis in vegan} \documentclass[a4paper,10pt,twocolumn]{article} \usepackage{vegan} %% vegan setup %% TODO: SSarrhenius, adipart, beals update, betadisper %% expansion (+ permutest), contribdiv, eventstar, multipart, refer to %% FD, check Kindt reference to specaccum, check estimateR ref \title{Vegan: ecological diversity} \author{Jari Oksanen} \date{\footnotesize{ processed with vegan \Sexpr{packageDescription("vegan", field="Version")} in \Sexpr{R.version.string} on \today}} %% need no \usepackage{Sweave} \begin{document} \bibliographystyle{jss} \SweaveOpts{strip.white=true} <>= par(mfrow=c(1,1)) options(width=55) figset <- function() par(mar=c(4,4,1,1)+.1) options(SweaveHooks = list(fig = figset)) options("prompt" = "> ", "continue" = " ") @ \maketitle \begin{abstract} This document explains diversity related methods in \pkg{vegan}. The methods are briefly described, and the equations used them are given often in more detail than in their help pages. The methods discussed include common diversity indices and rarefaction, families of diversity indices, species abundance models, species accumulation models and beta diversity, extrapolated richness and probability of being a member of the species pool. The document is still incomplete and does not cover all diversity methods in \pkg{vegan}. \end{abstract} \tableofcontents \noindent The \pkg{vegan} package has two major components: multivariate analysis (mainly ordination), and methods for diversity analysis of ecological communities. This document gives an introduction to the latter. Ordination methods are covered in other documents. Many of the diversity functions were written by Roeland Kindt, Bob O'Hara and P{\'e}ter S{\'o}lymos. Most diversity methods assume that data are counts of individuals. The methods are used with other data types, and some people argue that biomass or cover are more adequate than counts of individuals of variable sizes. However, this document mainly uses a data set with counts: stem counts of trees on $1$\,ha plots in the Barro Colorado Island. The following steps make these data available for the document: <<>>= library(vegan) data(BCI) @ \section{Diversity indices} Function \code{diversity} finds the most commonly used diversity indices \citep{Hill73number}: \begin{align} H &= - \sum_{i=1}^S p_i \log_b p_i & \text{Shannon--Weaver}\\ D_1 &= 1 - \sum_{i=1}^S p_i^2 &\text{Simpson}\\ D_2 &= \frac{1}{\sum_{i=1}^S p_i^2} &\text{inverse Simpson}\,, \end{align} where $p_i$ is the proportion of species $i$, and $S$ is the number of species so that $\sum_{i=1}^S p_i = 1$, and $b$ is the base of the logarithm. It is most common to use natural logarithms (and then we mark index as $H'$), but $b=2$ has theoretical justification. The default is to use natural logarithms. Shannon index is calculated with: <<>>= H <- diversity(BCI) @ which finds diversity indices for all sites. \pkg{Vegan} does not have indices for evenness (equitability), but the most common of these, Pielou's evenness $J = H'/\log(S)$ is easily found as: <<>>= J <- H/log(specnumber(BCI)) @ where \code{specnumber} is a simple \pkg{vegan} function to find the numbers of species. \pkg{vegan} also can estimate series of R\'{e}nyi and Tsallis diversities. R{\'e}nyi diversity of order $a$ is \citep{Hill73number}: \begin{equation} H_a = \frac{1}{1-a} \log \sum_{i=1}^S p_i^a \,, \end{equation} and the corresponding Hill number is $N_a = \exp(H_a)$. Many common diversity indices are special cases of Hill numbers: $N_0 = S$, $N_1 = \exp(H')$, $N_2 = D_2$, and $N_\infty = 1/(\max p_i)$. The corresponding R\'{e}nyi diversities are $H_0 = \log(S)$, $H_1 = H'$, $H_2 = - \log(\sum p_i^2)$, and $H_\infty = - \log(\max p_i)$. Tsallis diversity of order $q$ is \citep{Tothmeresz95}: \begin{equation} H_q = \frac{1}{q-1} \left(1 - \sum_{i=1}^S p^q \right) \, . \end{equation} These correspond to common diversity indices: $H_0 = S-1$, $H_1 = H'$, and $H_2 = D_1$, and can be converted to Hill numbers: \begin{equation} N_q = (1 - (q-1) H_q )^\frac{1}{1-q} \, . \end{equation} We select a random subset of five sites for R\'{e}nyi diversities: <<>>= k <- sample(nrow(BCI), 6) R <- renyi(BCI[k,]) @ We can really regard a site more diverse if all of its R\'{e}nyi diversities are higher than in another site. We can inspect this graphically using the standard \code{plot} function for the \code{renyi} result (Fig.~\ref{fig:renyi}). \begin{figure} <>= print(plot(R)) @ \caption{R\'{e}nyi diversities in six randomly selected plots. The plot uses Trellis graphics with a separate panel for each site. The dots show the values for sites, and the lines the extremes and median in the data set.} \label{fig:renyi} \end{figure} Finally, the $\alpha$ parameter of Fisher's log-series can be used as a diversity index \citep{FisherEtal43}: <<>>= alpha <- fisher.alpha(BCI) @ \section{Rarefaction} Species richness increases with sample size, and differences in richness actually may be caused by differences in sample size. To solve this problem, we may try to rarefy species richness to the same number of individuals. Expected number of species in a community rarefied from $N$ to $n$ individuals is \citep{Hurlbert71}: \begin{equation} \label{eq:rare} \hat S_n = \sum_{i=1}^S (1 - q_i)\,, \quad\text{where } q_i = \frac{{N-x_i \choose n}}{{N \choose n}} \,. \end{equation} Here $x_i$ is the count of species $i$, and ${N \choose n}$ is the binomial coefficient, or the number of ways we can choose $n$ from $N$, and $q_i$ give the probabilities that species $i$ does \emph{not} occur in a sample of size $n$. This is positive only when $N-x_i \ge n$, but for other cases $q_i = 0$ or the species is sure to occur in the sample. The variance of rarefied richness is \citep{HeckEtal75}: \begin{multline} \label{eq:rarevar} s^2 = q_i (1-q_i) \\ + 2 \sum_{i=1}^S \sum_{j>i} \left[ \frac{{N- x_i - x_j \choose n}}{ {N \choose n}} - q_i q_j\right] \,. \end{multline} Equation~\ref{eq:rarevar} actually is of the same form as the variance of sum of correlated variables: \begin{equation} \VAR \left(\sum x_i \right) = \sum \VAR (x_i) + 2 \sum_{i=1}^S \sum_{j>i} \COV (x_i, x_j) \,. \end{equation} The number of stems per hectare varies in our data set: <<>>= quantile(rowSums(BCI)) @ To express richness for the same number of individuals, we can use: <<>>= Srar <- rarefy(BCI, min(rowSums(BCI))) @ Rarefaction curves often are seen as an objective solution for comparing species richness with different sample sizes. However, rank orders typically differ among different rarefaction sample sizes, rarefaction curves can cross. As an extreme case we may rarefy sample size to two individuals: <<>>= S2 <- rarefy(BCI, 2) @ This will not give equal rank order with the previous rarefaction richness: <<>>= all(rank(Srar) == rank(S2)) @ Moreover, the rarefied richness for two individuals is a finite sample variant of Simpson's diversity index \citep{Hurlbert71}\,--\,or more precisely of $D_1 + 1$, and these two are almost identical in BCI: <<>>= range(diversity(BCI, "simp") - (S2 -1)) @ Rarefaction is sometimes presented as an ecologically meaningful alternative to dubious diversity indices \citep{Hurlbert71}, but the differences really seem to be small. \section{Taxonomic and functional diversity} Simple diversity indices only consider species identity: all different species are equally different. In contrast, taxonomic and functional diversity indices judge the differences of species. Taxonomic and functional diversities are used in different fields of science, but they really have very similar reasoning, and either could be used either with taxonomic or functional traits of species. \subsection{Taxonomic diversity: average distance of traits} The two basic indices are called taxonomic diversity $\Delta$ and taxonomic distinctness $\Delta^*$ \citep{ClarkeWarwick98}: \begin{align} \Delta &= \frac{\sum \sum_{i>= data(dune) data(dune.taxon) taxdis <- taxa2dist(dune.taxon, varstep=TRUE) mod <- taxondive(dune, taxdis) @ \begin{figure} <>= plot(mod) @ \caption{Taxonomic diversity $\Delta^+$ for the dune meadow data. The points are diversity values of single sites, and the funnel is their approximate confidence intervals ($2 \times$ standard error).} \label{fig:taxondive} \end{figure} \subsection{Functional diversity: the height of trait tree} In taxonomic diversity the primary data were taxonomic trees which were transformed to pairwise distances among species. In functional diversity the primary data are species traits which are translated to pairwise distances among species and then to clustering trees of species traits. The argument for using trees is that in this way a single deviant species will have a small influence, since its difference is evaluated only once instead of evaluating its distance to all other species \citep{PetcheyGaston06}. Function \code{treedive} implements functional diversity defined as the total branch length in a trait dendrogram connecting all species, but excluding the unnecessary root segments of the tree \citep{PetcheyGaston02, PetcheyGaston06}. The example uses the taxonomic distances of the previous chapter. These are first converted to a hierarchic clustering (which actually were their original form before \code{taxa2dist} converted them into distances) <<>>= tr <- hclust(taxdis, "aver") mod <- treedive(dune, tr) @ \section{Species abundance models} Diversity indices may be regarded as variance measures of species abundance distribution. We may wish to inspect abundance distributions more directly. \pkg{Vegan} has functions for Fisher's log-series and Preston's log-normal models, and in addition several models for species abundance distribution. \subsection{Fisher and Preston} In Fisher's log-series, the expected number of species $\hat f$ with $n$ individuals is \citep{FisherEtal43}: \begin{equation} \hat f_n = \frac{\alpha x^n}{n} \,, \end{equation} where $\alpha$ is the diversity parameter, and $x$ is a nuisance parameter defined by $\alpha$ and total number of individuals $N$ in the site, $x = N/(N-\alpha)$. Fisher's log-series for a randomly selected plot is (Fig.~\ref{fig:fisher}): <<>>= k <- sample(nrow(BCI), 1) fish <- fisherfit(BCI[k,]) fish @ \begin{figure} <>= plot(fish) @ \caption{Fisher's log-series fitted to one randomly selected site (\Sexpr{k}).} \label{fig:fisher} \end{figure} We already saw $\alpha$ as a diversity index. Preston's log-normal model is the main challenger to Fisher's log-series \citep{Preston48}. Instead of plotting species by frequencies, it bins species into frequency classes of increasing sizes. As a result, upper bins with high range of frequencies become more common, and sometimes the result looks similar to Gaussian distribution truncated at the left. There are two alternative functions for the log-normal model: \code{prestonfit} and \code{prestondistr}. Function \code{prestonfit} uses traditionally binning approach, and is burdened with arbitrary choices of binning limits and treatment of ties. It seems that Preston split ties between adjacent octaves: only half of the species observed once were in the first octave, and half were transferred to the next octave, and the same for all species at the octave limits occurring 2, 4, 8, 16\ldots times \citep{WilliamsonGaston05}. Function \code{prestonfit} can either split the ties or keep all limit cases in the lower octave. Function \code{prestondistr} directly maximizes truncated log-normal likelihood without binning data, and it is the recommended alternative. Log-normal models usually fit poorly to the BCI data, but here our random plot (number \Sexpr{k}): <<>>= prestondistr(BCI[k,]) @ \subsection{Ranked abundance distribution} An alternative approach to species abundance distribution is to plot logarithmic abundances in decreasing order, or against ranks of species \citep{Whittaker65}. These are known as ranked abundance distribution curves, species abundance curves, dominance--diversity curves or Whittaker plots. Function \code{radfit} fits some of the most popular models \citep{Bastow91} using maximum likelihood estimation: \begin{align} \hat a_r &= \frac{N}{S} \sum_{k=r}^S \frac{1}{k} &\text{brokenstick}\\ \hat a_r &= N \alpha (1-\alpha)^{r-1} & \text{preemption} \\ \hat a_r &= \exp \left[\log (\mu) + \log (\sigma) \Phi \right] &\text{log-normal}\\ \hat a_r &= N \hat p_1 r^\gamma &\text{Zipf}\\ \hat a_r &= N c (r + \beta)^\gamma &\text{Zipf--Mandelbrot} \end{align} In all these, $\hat a_r$ is the expected abundance of species at rank $r$, $S$ is the number of species, $N$ is the number of individuals, $\Phi$ is a standard normal function, $\hat p_1$ is the estimated proportion of the most abundant species, and $\alpha$, $\mu$, $\sigma$, $\gamma$, $\beta$ and $c$ are the estimated parameters in each model. It is customary to define the models for proportions $p_r$ instead of abundances $a_r$, but there is no reason for this, and \code{radfit} is able to work with the original abundance data. We have count data, and the default Poisson error looks appropriate, and our example data set gives (Fig.~\ref{fig:rad}): <<>>= rad <- radfit(BCI[k,]) rad @ \begin{figure} <>= print(radlattice(rad)) @ \caption{Ranked abundance distribution models for a random plot (no. \Sexpr{k}). The best model has the lowest \textsc{aic}.} \label{fig:rad} \end{figure} Function \code{radfit} compares the models using alternatively Akaike's or Schwartz's Bayesian information criteria. These are based on log-likelihood, but penalized by the number of estimated parameters. The penalty per parameter is $2$ in \textsc{aic}, and $\log S$ in \textsc{bic}. Brokenstick is regarded as a null model and has no estimated parameters in \pkg{vegan}. Preemption model has one estimated parameter ($\alpha$), log-normal and Zipf models two ($\mu, \sigma$, or $\hat p_1, \gamma$, resp.), and Zipf--Mandelbrot model has three ($c, \beta, \gamma$). Function \code{radfit} also works with data frames, and fits models for each site. It is curious that log-normal model rarely is the choice, although it generally is regarded as the canonical model, in particular in data sets like Barro Colorado tropical forests. \section{Species accumulation and beta diversity} Species accumulation models and species pool models study collections of sites, and their species richness, or try to estimate the number of unseen species. \subsection{Species accumulation models} Species accumulation models are similar to rarefaction: they study the accumulation of species when the number of sites increases. There are several alternative methods, including accumulating sites in the order they happen to be, and repeated accumulation in random order. In addition, there are three analytic models. Rarefaction pools individuals together, and applies rarefaction equation (\ref{eq:rare}) to these individuals. Kindt's exact accumulator resembles rarefaction \citep{UglandEtal03}: \begin{multline} \label{eq:kindt} \hat S_n = \sum_{i=1}^S (1 - p_i), \,\quad \text{where } p_i = \frac{{N- f_i \choose n}}{{N \choose n}} \,, \end{multline} and $f_i$ is the frequency of species $i$. Approximate variance estimator is: \begin{multline} \label{eq:kindtvar} s^2 = p_i (1 - p_i) \\ + 2 \sum_{i=1}^S \sum_{j>i} \left( r_{ij} \sqrt{p_i(1-p_i)} \sqrt{p_j (1-p_j)}\right) \,, \end{multline} where $r_{ij}$ is the correlation coefficient between species $i$ and $j$. Both of these are unpublished: eq.~\ref{eq:kindt} was developed by Roeland Kindt, and eq.~\ref{eq:kindtvar} by Jari Oksanen. The third analytic method was suggested by \citet{Coleman82}: \begin{equation} \label{eq:cole} S_n = \sum_{i=1}^S (1 - p_i), \quad \text{where } p_i = \left(1 - \frac{1}{n}\right)^{f_i} \,, \end{equation} and the suggested variance is $s^2 = p_i (1-p_i)$ which ignores the covariance component. In addition, eq.~\ref{eq:cole} does not properly handle sampling without replacement and underestimates the species accumulation curve. The recommended is Kindt's exact method (Fig.~\ref{fig:sac}): <>= sac <- specaccum(BCI) plot(sac, ci.type="polygon", ci.col="yellow") @ \begin{figure} <>= <> @ \caption{Species accumulation curve for the BCI data; exact method.} \label{fig:sac} \end{figure} \subsection{Beta diversity} \citet{Whittaker60} divided diversity into various components. The best known are diversity in one spot that he called alpha diversity, and the diversity along gradients that he called beta diversity. The basic diversity indices are indices of alpha diversity. Beta diversity should be studied with respect to gradients \citep{Whittaker60}, but almost everybody understand that as a measure of general heterogeneity \citep{Tuomisto10a, Tuomisto10b}: how many more species do you have in a collection of sites compared to an average site. The best known index of beta diversity is based on the ratio of total number of species in a collection of sites $S$ and the average richness per one site $\bar \alpha$ \citep{Tuomisto10a}: \begin{equation} \label{eq:beta} \beta = S/\bar \alpha - 1 \,. \end{equation} Subtraction of one means that $\beta = 0$ when there are no excess species or no heterogeneity between sites. For this index, no specific functions are needed, but this index can be easily found with the help of \pkg{vegan} function \code{specnumber}: <<>>= ncol(BCI)/mean(specnumber(BCI)) - 1 @ The index of eq.~\ref{eq:beta} is problematic because $S$ increases with the number of sites even when sites are all subsets of the same community. \citet{Whittaker60} noticed this, and suggested the index to be found from pairwise comparison of sites. If the number of shared species in two sites is $a$, and the numbers of species unique to each site are $b$ and $c$, then $\bar \alpha = (2a + b + c)/2$ and $S = a+b+c$, and index~\ref{eq:beta} can be expressed as: \begin{equation} \label{eq:betabray} \beta = \frac{a+b+c}{(2a+b+c)/2} - 1 = \frac{b+c}{2a+b+c} \,. \end{equation} This is the S{\o}rensen index of dissimilarity, and it can be found for all sites using \pkg{vegan} function \code{vegdist} with binary data: <<>>= beta <- vegdist(BCI, binary=TRUE) mean(beta) @ There are many other definitions of beta diversity in addition to eq.~\ref{eq:beta}. All commonly used indices can be found using \code{betadiver} \citep{KoleffEtal03}. The indices in \code{betadiver} can be referred to by subscript name, or index number: <<>>= betadiver(help=TRUE) @ Some of these indices are duplicates, and many of them are well known dissimilarity indices. One of the more interesting indices is based on the Arrhenius species--area model \begin{equation} \label{eq:arrhenius} \hat S = c X^z\,, \end{equation} where $X$ is the area (size) of the patch or site, and $c$ and $z$ are parameters. Parameter $c$ is uninteresting, but $z$ gives the steepness of the species area curve and is a measure of beta diversity. In islands typically $z \approx 0.3$. This kind of islands can be regarded as subsets of the same community, indicating that we really should talk about gradient differences if $z \gtrapprox 0.3$. We can find the value of $z$ for a pair of plots using function \code{betadiver}: <<>>= z <- betadiver(BCI, "z") quantile(z) @ The size $X$ and parameter $c$ cancel out, and the index gives the estimate $z$ for any pair of sites. Function \code{betadisper} can be used to analyse beta diversities with respect to classes or factors \citep{Anderson06, AndersonEtal06}. There is no such classification available for the Barro Colorado Island data, and the example studies beta diversities in the management classes of the dune meadows (Fig.~\ref{fig:betadisper}): <<>>= data(dune) data(dune.env) z <- betadiver(dune, "z") mod <- with(dune.env, betadisper(z, Management)) mod @ \begin{figure} <>= boxplot(mod) @ \caption{Box plots of beta diversity measured as the average steepness ($z$) of the species area curve in the Arrhenius model $S = cX^z$ in Management classes of dune meadows.} \label{fig:betadisper} \end{figure} \section{Species pool} \subsection{Number of unseen species} Species accumulation models indicate that not all species were seen in any site. These unseen species also belong to the species pool. Functions \code{specpool} and \code{estimateR} implement some methods of estimating the number of unseen species. Function \code{specpool} studies a collection of sites, and \code{estimateR} works with counts of individuals, and can be used with a single site. Both functions assume that the number of unseen species is related to the number of rare species, or species seen only once or twice. The incidence-based functions group species by their number of occurrences $f_i = f_0, f_1, \ldots, f_N$, where $f$ is the number of species occuring in exactly $i$ sites in the data: $f_N$ is the number of species occurring on every $N$ site, $f_1$ the number of species occurring once, and $f_0$ the number of species in the species pool but not found in the sample. The total number of species in the pool $S_p$ is \begin{equation} S_p = \sum_{i=0}^N f_i = f_0+ S_o \,, \end{equation} where $S_o = \sum_{i>0} f_i$ is the observed number of species. The sampling proportion $i/N$ is an estimate for the commonness of the species in the community. When species is present in the community but not in the sample, $i=0$ is an obvious under-estimate, and consequently, for values $i>0$ the species commonness is over-estimated \citep{Good53}. The models for the pool size estimate the number of species missing in the sample $f_0$. Function \code{specpool} implements the following models to estimate the number of missing species $f_0$. Chao estimator is \citep{Chao87, ChiuEtal14}: \begin{equation} \label{eq:chao} \hat f_0 = \begin{cases} \frac{f_1^2}{2 f_2} \frac{N-1}{N} &\text{if } f_2 > 0 \\ \frac{f_1 (f_1 -1)}{2} \frac{N-1}{N} & \text{if } f_2 = 0 \,. \end{cases} \end{equation} The latter case for $f_2=0$ is known as the bias-corrected form. \citet{ChiuEtal14} introduced the small-sample correction term $\frac{N}{N-1}$, but it was not originally used \citep{Chao87}. The first and second order jackknife estimators are \citep{SmithVanBelle84}: \begin{align} \hat f_0 &= f_1 \frac{N-1}{N} \\ \hat f_0 & = f_1 \frac{2N-3}{N} + f_2 \frac{(N-2)^2}{N(N-1)} \,. \end{align} The boostrap estimator is \citep{SmithVanBelle84}: \begin{equation} \hat f_0 = \sum_{i=1}^{S_o} (1-p_i)^N \,. \end{equation} The idea in jackknife seems to be that we missed about as many species as we saw only once, and the idea in bootstrap that if we repeat sampling (with replacement) from the same data, we miss as many species as we missed originally. The variance estimaters only concern the estimated number of missing species $\hat f_0$, although they are often expressed as they would apply to the pool size $S_p$; this is only true if we assume that $\VAR(S_o) = 0$. The variance of the Chao estimate is \citep{ChiuEtal14}: \begin{multline} \label{eq:var-chao-basic} \VAR(\hat f_0) = f_1 \left(A^2 \frac{G^3}{4} + A^2 G^2 + A \frac{G}{2} \right),\\ \text{where } A = \frac{N-1}{N}\;\text{and } G = \frac{f_1}{f_2} \,. \end{multline} %% The variance of bias-corrected Chao estimate can be approximated by %% replacing the terms of eq.~\ref{eq:var-chao-basic} with the %% corresponding terms of the bias-correcter form of in eq.~\ref{eq:chao}: %% \begin{multline} %% \label{eq:var-chao-bc} %% s^2 = A \frac{f_1(f_1-1)}{2} + A^2 \frac{f_1(2 f_1+1)^2}{(f_2+1)^2}\\ %% + A^2 \frac{f_1^2 f_2 (f_1 -1)^2}{4 (f_2 + 1)^4} %% \end{multline} For the bias-corrected form of eq.~\ref{eq:chao} (case $f_2 = 0$), the variance is \citep[who omit small-sample correction in some terms]{ChiuEtal14}: \begin{multline} \label{eq:var-chao-bc0} \VAR(\hat f_0) = \tfrac{1}{4} A^2 f_1 (2f_1 -1)^2 + \tfrac{1}{2} A f_1 (f_1-1) \\- \tfrac{1}{4}A^2 \frac{f_1^4}{S_p} \,. \end{multline} The variance of the first-order jackknife is based on the number of ``singletons'' $r$ (species occurring only once in the data) in sample plots \citep{SmithVanBelle84}: \begin{equation} \VAR(\hat f_0) = \left(\sum_{i=1}^N r_i^2 - \frac{f_1}{N}\right) \frac{N-1}{N} \,. \end{equation} Variance of the second-order jackknife is not evaluated in \code{specpool} (but contributions are welcome). The variance of bootstrap estimator is\citep{SmithVanBelle84}: \begin{multline} \VAR(\hat f_0) = \sum_{i=1}^{S_o} q_i (1-q_i) \\ +2 \sum_{i \neq j}^{S_o} \left[(Z_{ij}/N)^N - q_i q_j \right] \\ \text{where } q_i = (1-p_i)^N \, , \end{multline} and $Z_{ij}$ is the number of sites where both species are absent. The extrapolated richness values for the whole BCI data are: <<>>= specpool(BCI) @ If the estimation of pool size really works, we should get the same values of estimated richness if we take a random subset of a half of the plots (but this is rarely true): <<>>= s <- sample(nrow(BCI), 25) specpool(BCI[s,]) @ \subsection{Pool size from a single site} The \code{specpool} function needs a collection of sites, but there are some methods that estimate the number of unseen species for each single site. These functions need counts of individuals, and species seen only once or twice, or other rare species, take the place of species with low frequencies. Function \code{estimateR} implements two of these methods: <<>>= estimateR(BCI[k,]) @ In abundance based models $a_i$ denotes the number of species with $i$ individuals, and takes the place of $f_i$ of previous models. Chao's method is similar as the bias-corrected model eq.~\ref{eq:chao} \citep{Chao87, ChiuEtal14}: \begin{equation} \label{eq:chao-bc} S_p = S_o + \frac{a_1 (a_1 - 1)}{2 (a_2 + 1)}\,. \end{equation} When $f_2=0$, eq.~\ref{eq:chao-bc} reduces to the bias-corrected form of eq.~\ref{eq:chao}, but quantitative estimators are based on abundances and do not use small-sample correction. This is not usually needed because sample sizes are total numbers of individuals, and these are usually high, unlike in frequency based models, where the sample size is the number of sites \citep{ChiuEtal14}. A commonly used approximate variance estimator of eq.~\ref{eq:chao-bc} is: \begin{multline} \label{eq:var-chao-bc} s^2 = \frac{a_1(a_1-1)}{2} + \frac{a_1(2 a_1+1)^2}{(a_2+1)^2}\\ + \frac{a_1^2 a_2 (a_1 -1)^2}{4 (a_2 + 1)^4} \,. \end{multline} However, \pkg{vegan} does not use this, but instead the following more exact form which was directly derived from eq.~\ref{eq:chao-bc} following \citet[web appendix]{ChiuEtal14}: \begin{multline} s^2 = \frac{1}{4} \frac{1}{(a_2+1)^4 S_p} [a_1 (S_p a_1^3 a_2 + 4 S_p a_1^2 a_2^2 \\+ 2 S_p a_1 a_2^3 + 6 S_p a_1^2 a_2 + 2 S_p a_1 a_2^2 -2 S_p a_2^3 \\+ 4 S_p a_1^2 + S_p a_1 a_2 -5 S_p a_2^2 - a_1^3 - 2 a_1^2 a_2\\ - a_1 a_2^2 - 2 S_p a_1 - 4 S_p a_2 - S_p ) ]\,. \end{multline} The variance estimators only concern the number of unseen species like previously. The \textsc{ace} is estimator is defined as \citep{OHara05}: \begin{equation} \begin{split} S_p &= S_\mathrm{abund} + \frac{S_\mathrm{rare}}{C_\mathrm{ACE}} + \frac{a_1}{C_\mathrm{ACE}} \gamma^2\, , \quad \text{where}\\ C_\mathrm{ACE} &= 1 - \frac{a_1}{N_\mathrm{rare}}\\ \gamma^2 &= \frac{S_\mathrm{rare}}{C_\mathrm{ACE}} \sum_{i=1}^{10} i (i-1) a_1 \frac{N_\mathrm{rare} - 1}{N_\mathrm{rare}}\,. \end{split} \end{equation} Now $a_1$ takes the place of $f_1$ above, and means the number of species with only one individual. Here $S_\mathrm{abund}$ and $S_\mathrm{rare}$ are the numbers of species of abundant and rare species, with an arbitrary upper limit of 10 individuals for a rare species, and $N_\mathrm{rare}$ is the total number of individuals in rare species. The variance estimator uses iterative solution, and it is best interpreted from the source code or following \citet{OHara05}. The pool size is estimated separately for each site, but if input is a data frame, each site will be analysed. If log-normal abundance model is appropriate, it can be used to estimate the pool size. Log-normal model has a finite number of species which can be found integrating the log-normal: \begin{equation} S_p = S_\mu \sigma \sqrt{2 \pi} \,, \end{equation} where $S_\mu$ is the modal height or the expected number of species at maximum (at $\mu$), and $\sigma$ is the width. Function \code{veiledspec} estimates this integral from a model fitted either with \code{prestondistr} or \code{prestonfit}, and fits the latter if raw site data are given. Log-normal model may fit poorly, but we can try: <<>>= veiledspec(prestondistr(BCI[k,])) veiledspec(BCI[k,]) @ \subsection{Probability of pool membership} Beals smoothing was originally suggested as a tool of regularizing data for ordination. It regularizes data too strongly, but it has been suggested as a method of estimating which of the missing species could occur in a site, or which sites are suitable for a species. The probability for each species at each site is assessed from other species occurring on the site. Function \code{beals} implement Beals smoothing \citep{McCune87, DeCaceresLegendre08}: <<>>= smo <- beals(BCI) @ We may see how the estimated probability of occurrence and observed numbers of stems relate in one of the more familiar species. We study only one species, and to avoid circular reasoning we do not include the target species in the smoothing (Fig.~\ref{fig:beals}): <>= j <- which(colnames(BCI) == "Ceiba.pentandra") plot(beals(BCI, species=j, include=FALSE), BCI[,j], ylab="Occurrence", main="Ceiba pentandra", xlab="Probability of occurrence") @ \begin{figure} <>= <> @ \caption{Beals smoothing for \emph{Ceiba pentandra}.} \label{fig:beals} \end{figure} \bibliography{vegan} \end{document} vegan/inst/doc/diversity-vegan.pdf0000644000175100001440000131141112600727026016731 0ustar hornikusers%PDF-1.5 % 82 0 obj << /Length 3532 /Filter /FlateDecode >> stream xks tҙ:I'k8 LV JNL?H<{x~TkL.6|ismj}yYe\e75--[7^¿z3_V8qˬð[ÿ\aշPaTx+s[BWy-_:=T4;ƣYPfmpp+ݾltRf<ǹ)FH3:7PYǿ#^.G+D ėM{eao WqM3.Lp+xϹK!d~&B9斷3esc=q}} p)YG:YBvquF'#lyDb*<"'*5?e-LvXo*qN6IlVbPKbH :W!E!e*X+]U4#+vFţn&/Dy%U_͑4x@m5Uo.l$Bf9̉Zѕ@}B}W'n٢3(QS$W'cyŴ30Bfkѹ7&,Uh"DF I Ys' 4c  ʞvb²a#hXmɏ+&&6>JSiaً9# )\('%Y>-3bXӠ9ߊW@;a S敫Ve:0Ǽ ]ub~*FGῑ˲?6(.{#e.8x2^8[.1)qQ^׻с6Ό2\M-:EuIݔ"R.Kκ$1|FL:Apu/,H 2cWRTo feJ9zA3a(dR?HEztN|R)Ĝs2IΪOX/-^HAAN#&\ !NT#(Ws(K̠\<߃VXAlٸNDS UŔ&R:uZ^ESL) k<k?K+`f\;4\ Ч}i)1yi5NJڼ1^[.~LHQ sBu8uC*b  6?(׶}KhzX&%jQ }f- 5śkHW'އ=. גU/C,AAVnڛ$ dp'JCZ3Hm~3J^yq q?ǓϫaxN 7QTcw.[A9ZbZ5O)˾_pORe82frYzCV\\ki4~1 }1LR]f}eqWk71C\1̟#W!{^FeyK6߂Rs̞ 5:=syXQKɰ/j:5zzzǭt젞u_KWۋHX%l9㎺̀"Aim֛5c\^IsVxQSN{&$K=t-8?9DK{&nDGև*5JatZq' QpB~< +i#^e? [W;Ihc34I)AI LNHͤ{mLiK w8+J5 ]s}@텯ē7-g]>JJU=wKk^!j4@sjK<‰KR)}Q+eJmv#Be7s. rZ Oz꭮,= xhۗKw4utBD |#@4ID~cS^Q<,xz;Bȃ "6-I: z#{Ji}=ѩJzDc?e UXD9ݖb~lWIr߇sm]-so[/z.,NG~v/{:"Q+7`IH,zFO(E VLˉUQ{K)D;~3Jl*2_ S܂{P@VP hVJWSj蓆2t7qs F:,` 5}='*t)ao(.HQOteWVIa@pu炨˔PuNhk3b :ָ2/zJ@j$ Lj(l|I3AltKWE%|TwR}(f /tȫ?IL-рL5ٟ}x.fjf,~fPXn}C1["܄jvOۙz|5ygNxHGWSJľm1⢄OСu%wÀ'PO.Ɂ4T|;rN~r~/`eO@(sLȃm-4gdv)j6ۏR5|dUQgKO` 5}D w>ޢ9:]Fx3u *bХ/L\Lu_'/ nygW*°?Z_R'˔>S(_9?/A5e_`nPAc[̕7Ipoc~ftUt506 < eówPO)&>K5_TNqa#Zi66qܳm/(f~o呯XYUu QwWs endstream endobj 123 0 obj << /Length 4287 /Filter /FlateDecode >> stream x[[o#DZ~_<_$sIhIkSU}R6A"9]]]u};,Xi '[&dX-]݈_Js _U-_6^>^9Ï*Nq|Xv4X~ݬoð^¿O7~,K(ZD>wo읳 ǂ3{3H|? Zůi?߹%/joXTryZ4F:(ąs}W~-k?ϟ5h;pxȣ9NcY⍨o :7&[SyaEPNrHN׸߸x Q6Acp0͙v>3&MEg6xF}Q>X(fEwXUb"/x|Y OCeN/ydΙ) mnl;g8m@ hfMcP:Ci0`O4$el*yRE@=36LUfE{Q>J̋V`R;tX$$0\P$ *gIvx.@ϵBBJ%7y- vZvbEӷ g1``_ ԋ43&QI36J'B( L(I P *.Y0.B3!cG8׬ 6qw@-U@k^j OLn7SapQ6aޱej4.99{Eθ-oW]8|E]f٢ۑ?i@ƌH%GTc$pYn0$ysX#jS:{Q_%9 6)4[NPkА!v } ?Jbk尹=B 4^N ʌ+( \׽ty_q<0z&9]xyJϪ\%crZ[-/bCsLvsF`[F7[#{P+8 (9]m<*ZZ?`Siƿd02ܤbmMy};>x!\.ǮSS➮g tiPٌ?疫ܯD`)LAk+2 +©aÊ,qe7 ՋҨp 59VJ oS܌]l>dWa/xF[*00&/*r} ;71''Vla1% NУWsY{HN|T 1,Y wpdwCa:PfxFT_V~.]O{[<窚tR@/ ;oZxIp(]Xc;\:jw0M_I~>kFTq|) :فRs:jT)VFe)4)\dⲒ eKd1quL>&jׇm4q؊]&K<2!+M8A3<1^(-J/\C^zcs5-qUǟN}qJy`=~+ӎf鵃GNHu&LN7V1-?0˯D}RsW=_IA-KoGcK]5f]UZz?4Ԩ)CI x_cs/w N+ݡƝ&P7ٯKYFE)vo3$;YHvQ>;?o# `1=t|,,^i+Dny=*pDtb M;6Y2o%qd>Mx/+9~|H?rbC%d|wW;fǤЍR(0\Mҹ98$lGϱ{Ȝ̋Vsmxfq1(mbpKRi&⛤bs< DCM=j״s.I ¸i4K ncAT/jhǹ4~>?zX3/۬kLRRe ̫qX5Ń6P85ٚif^l0tW0DߙV(fnhՔ[ƽAH'ʋ&k)|#c܄++ˤ,اiM 8ňM3d=*,Vѽm4a/إDj LX LeGũLЖğӡZS7b7{p#vkcs Nt}[3JWNLkfU"ICmD8:]7m+  ^_`.:(C Vw/>Gξ- `Sf6LQ/ E)}i~oKx !F%-D(scyc1s^\]LT5U|HܓMf]r> /ExtGState << >>/ColorSpace << /sRGB 137 0 R >>>> /Length 2640 /Filter /FlateDecode >> stream xśMo+hKV^$A $@"9,AT5%[hfjM&YO;>L:~ݟ?~zrsnw"isɓC%IXtiϿDqz˗oߟx)9I{ʜ lߝ8Ï~>|8u=OSsV8Ym^fzwiιU[qSa&kqS⦾,K~SrZ42233z#tA9qocxemcݺ4߄KC֭st >v/&ޣ8Qo/}~Й#w"Y|K71{I:<'`N")KQ,wbl MӒD4[JY#9P{\'F/b<ѧXgF/Ofg}ޑŰ|g}f !x3(߬UmO_×V?2QN^G]R{홧[z8yyX.o-"4z9Z*[U8]v*SXoMQT5HEZBx%u^9@h}|;CӤri׆9G N P8uOtNgѣF5y]䨨c;`~rD>k@D/ۚhcHl$F"I`%PЃ/L-13ͣ&][kh=ylSZ a3,F_}}`t:/l/{}nD3{ +nPZV_z!?Zb^M%VK%VK%VpnC=_[/K3pzԌG5ʚm#d>n5I_;4v瑘gvz$5\HW2F kηI)4 % $^ i A]B ]V5MB)ZLQtVuLB}<<`R<IVը .Á%c60b>S֤W1F0/p w(\DyoűnZ°9-9-"9-"99-"y9W#1t 7 Ёhl:Z8c@8c@8cЁ Ё ɦd@Ld@Ld84& Ƒj .кK'h}̷NnYǚH ͿhhEG/>_4|4 hhU|cat>Bt4|#tG>B5|l: G>Bt4|#tG8S<t͆szJ󸧤Mc4hUOI琹RM%M̔̊J b#Y%4Fz2{iQ(s=nGP{G~ kz?Qd endstream endobj 139 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 158 0 obj << /Length 4633 /Filter /FlateDecode >> stream x[[7v~ׯJS;7ଶv$TU(4$e6KhgFZ%y h9߹Ow^LBr뗓^Mz:z9iL~:?;+JuR/LwZ= G3|.~B4W5&Zm6l[)IV)I&@cXcv킏\cc0FA/)ŗVp1aRҞ+]OjfƐSO t^}'2uss&ﱗ.zppNޑ,%{`a(IY.:j& =vg6Qj2uq)+ޢ XO~ 9^wɉXl,'dwu31zbr7y?|UQ6 1ҸO]9 'xo  8Z`N@}=3~'c5HxvB6nC\[PLi;:*;d3b~d'YU26l"Ap")N>()-'Q+qT5m4Ud3Jt>/8ffL-H4ڲ} Q%3tnWE 9!=9Ç(u/[)=w}R*C>,PLa: % d!mG|?6WlvCUY/ m7jSnc_$LR^MH,ÏіKhv?Y&6/+p _Al A8rN9{kax:/Vf561TDPc>'{rw3 !ETm™Ge4]q =K}Xå#_Mڈ &Z$p `_VŰT_3]w&>4b]KYfZh81[u9~d|wFSd3'kﲷz(Lq]d}+*SQٞ?3s@q0XU˧2]ӦH}Ѯ3GNH}\>zu^=xN M*}_ ޭ7U&bm/|]~чIn\YyT!/$u+lQm԰Y ƚ0ڮ!U+ƷF`0ZvwHKKJu nk*L8Av_@-waJ+TABC"14xF -R8Mh`́6x#@weLJcN v.[2 }Vt`OI*՟n9W@e=|p*)CggהM-EErʆ(T6? 5Lb%?^)YosD y <8tblmD%?c6|s"m_z@(b+ks9 /"03uzs7T+E)7NqSNq@U'7k0^UAj` 7u1ȩfN+(tJJi0+Vh,Jia>H*"L(psa.WCNj$i G, [d"+=m[6\tՅPf0c; *q碓K"4‹̿Li`ȊhR@c; r;pxj);&"?j*JIA`wu=N$^0~LO=~]ן]? u?uwĢ!mRtwWXtSp`MWc5<-;<-U+XHHU.^LؓNUvym,J6e-qj,w En;=P EA MeuIeg5P|_: :BpcNV_Դ1JA"mE3iL+Ȩ*EY` <xK8 * .|d7xE~nS*%.V0lT=bH> !j]1;pϿأ8ikVʔerf onhdAƲuOc86#ɞ:6"m= 尪YO{w֗hLKun椄z ͊=`*9'Q(*J`c8Sw|${F (h0>*,g%bR Qe%yLT{B*07 x9(P@c:V]~`A7뻾1!q퐼M9]Ѱǚ-q3}q$Lӻ҂22/|AwBZ/ ke<%OxBwZowX`rx/mܘ՚7MCXkT֘\s  ߖK邟b":KBZ]q7 endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 797 /Length 2581 /Filter /FlateDecode >> stream xZ[oܶ~_nmJ.9iFn֎0LJ"goȕL0˴`Y" IIͤB?'LFd`8$SAΔb=;ΌLf!V{f lPH椟ŜXc.BDd{<NG_ɢ3,KV@,恆M{Lh伣1-ahJ[P3hDYSLyPFC-,SV^0hWXf":A_F@! "A9T`"# x4:@бP2&Lv# Z!PЦBVZkeIudrx Xɣq"'W!&-e83)j&8i,hPi4i$E7W)y")ꥑ1>3*<ƕFWYʶ# aJ2$" #6^^bGT,;b/Tte]qy~ade5/C=>MȇWcۓK]˲`y5g}5|lZ W9/YZ~H`]]C4;dUbW?jFqSQ}5,yZlcV3<.۫ jzߤS֨>Ơ<\_mpF)):5ﺮ[p+?s(v6'x1k˿h%Q. EvH>-7 lS{U^#@,;.3,;:=UFA gه}U=d|4/7v*(JF(`enxWY}eofa,{O 8#; W\%eD 5۾Y*Pl5ۿB @ 'RĐ8*6Z^톢Ez:?CpPEP݀᪔b@`5jXn o\,vG8L5c8N[Ubqv_38#he+K6L4%6b9x=|X[Bڛm ?̔%ȂꊎH:rz`QLU?Uݱj$H aq%ΨJD}-uzO^Tΐ 1Nҗvns+JN|Q$:6K9j*TکtS2Le6i.G/`De0RN&*w}w0mUTi^T yZr/jo6 ޓ__!?ϻoP2ަԕE>~zq%i"Owz6Yg-~>*/.I?ef˲[8lG_wi.::R5tضevS}l~yH_\S̋& EG%h6yp"_˼闋ҧI^{l?;:Lf8%:LΉ#!c'pª#芧w:lq03v٢Zvp(pp AQO&,(XT"C>X/˾IwlD;€` =rpC/&gGS`pg9FQb E|JS $FXPPS_ ρ!s@d- X:7V b8aCܷuaR| Ơ Iqe=B{UgBo"bNog2`c endstream endobj 188 0 obj << /Length 3874 /Filter /FlateDecode >> stream xڥZY~ׯ YˉX xsoWi -^߿rV*~CNUU6_~0=^NXfeQEhh{ZF_9漰#zY|Ͽ+f W"&3 NF#J4F~L:m|ixe4S(`TY[y>qVU[iqqS-\>OPΛE=RTIx=83wAeD`5w N7G\oϕ;^:3z~;:17xֻq&rU#q8d<[i|'^9H+Iy:(ָ]`9%ҡ P &9=. hͅ \vTjOD w:?,gBF,mS,iGFaU%wGs#Xu@gvA@so_xGil(=ʝ7ٜeq>0oN1o $3,ϱ˪Nں 2O2aC 9fh[[q3$hI8y-(ej-K0gFCV*^PɾDf ~WD'y$b a& qhh#L`1RgfMUU',Hgthxc99y@Ɩ@(&G9}h@qx*%3#GmXi=IR kR#Ў%J U6;rJ[{9uEz2C?Z:߆9գ+"cU?q`'98܈y%j_A" Jd|*ҌRK+f7bh0^ k ZK']5RnRX#vp(auǹź3(fcecPS,vXG,(|F+hHƋ oλ 3ް~WpEa{DpUۈ`g5+'Fz:qٲ/}1bq%|焒Z䀺2}.p}obx}PG^DZ=rOb +Nv؃oNbo,*<"[6odLwY&|.ClX l=9\}[4 q'B_L9MOXŎ0x_2φ^oz"` j>4:ς%m ў2[rhUh[Ӳ~ʬAѸMlڄ3ϳ2J|=L豋L25t;4Xq߷dAXisusw/qշI@AJe2YPd+g0+K|J(g?BO534tJؙ:?+Y4{}EB0:g7?a}tnN#W? 2$|L!*2:;1&-,e]>=~'C{Aqj ׊j2C Ѳ|K'QK˯)DnuyN5xl5 {hHFb9TzމÏqC0'C{:2$_46L΄Njl@,ʸb* :.\?Wgvj6xKa(х#=f].a NULש^Ę 5n2NVAݤTf' `)EXI1tIͼl0~P .λHp #$_1,#)-ɟuheKܝe!:'Dxv* LUGp_>.O83^!;7rtXY!.f[w=/<)!vm$`(^%tN+NND?Eyps Jb ]$7F(IPÕZ^S &IJ8u!瓼^!WRs'/?DIIں(/A}MOeobS ݉+8a<S{wݦ=6LN2L񩤪xu!7mPʑt8wn9r[1чf`n%*$4nߙYm~IV唬aWV ^BPB0I<@HA.{; gߍvVykxo^r'7!NC##\Gƌy$U\afIj|ua?ot(/} hwzJn(x ,?>t؄8ilQDF}HY_LQ<ĸA\PC;coh5ȇ;tYD`gO5t ȞoDSS ot|m"!&o] uӿ&X4`3mn˘LE>`(Őp(D&셃UcL4ZeDv|9AS֛ƌr>ՆO@ygoDO;WZ nR>*.hd`)ÆvZS Ĺ✐B!>LE+vg &w( wau/ %547!qdDIB툞akin%$?уG"ȾPσgWeBNA endstream endobj 177 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/diversity-vegan-014.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 194 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 195 0 R/F2 196 0 R/F6 197 0 R>> /ExtGState << >>/ColorSpace << /sRGB 198 0 R >>>> /Length 737 /Filter /FlateDecode >> stream xVMo1ﯘ#1B*Q BI%h"g7iIxe73Kp7p;|[p ^'1l>;`R  ont>N7ڨOrɣ0_KhpΟ"4l<-c {uS@A瘲"t/^tH'&~г2h9uHGS.cFwZeӪ.itj 1(ʓfiޣC!]w [uU]S^Rާi(_K>KgdR+MTx#綘Nqv.;N78Ņ!opYv}S<7jg+=IιXe(H>|> kNLվP61p/l.~gůw6b 9 SQWG,Gv8ŷ5rL]6j^{=<u.#fW_ky _͝}G)F yP8rD ckbQ8W[ldc5i'xL-ۘ9VzpJFe>'5iI^6kemO}XT:Mi\UWcmX*x* ;M=(` =B$Ƥhڇ*$+ }6 endstream endobj 200 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 217 0 obj << /Length 3813 /Filter /FlateDecode >> stream xio~&9 .\4Wm EPv$ɟ8J|||{L?=fZ_'?=jC앺L>ٟvO]d|ӧͬ`-mݶ~b1{Y== C8^ 9Ɇ$\! m=Aduy,kY&)q&-PB¸Xn`+"^!T;U??\n4b k%/sn;?$HL-R+a+4ɡ,cx'e'뤊mBj4E?DPt5$jr0*SF?ږ6框6ct4@nꁍ #MO ^,Ply C9ช SDGg8 W+=%<ڑZ٣ 09vos3d8a̟`_v7.38 Su8~3ƿs|v C;t1v%EH\qp؍D9E7cga*zP㪿'Q%Lm׍BaIAqp@x{nq%OGP^isM[}3 >@*Q˒,?LQT9/.~ kkb{2R'j_:!%}%I!K]!\YIA*_([o:63} q](^}MI "|fg!Nšrۍ;aMWFj`v[,?f<5 CN)􍱭R:L*@:WTAW!8A8cZjcyy?'C@%xǯߒ^ $Q enSizF$+ Lַ R HW Og[@wl PfGHRkQ_]$*Rᶥ`Ӈꮹ(K! >6U[ڨN^ piocsH_+WKƤRTF,91OÈbumuI8rN`]n|H >Xّpld]B{k2` (E'{ G02lͣ3AX#ֈ',BŞ՜_]/ Ĕw)WR U*HCOeuϟ3^9w$zHeT$cH=)sMepqs\`:ԩ|723)eGQike-Wy7$P3L<V#ZCl*BB꘢opԓ?Ȏ"3kH+5[@'Pfnjqz|=YX+H\-jXMrRHZ)GPTb9:'nE9av&^jè;+eF#j`CLGJSpF .~73ǰOb nbM|v) lM}K޺D=B{DBʑKߠjOܮAC8R(>._J`At+9(wpƇe\ bbi^"`~eyD$+%(tmhAYdE ĨYhBSc F>*Wpkr%[3Cw贒 =?;|rӹˏry%`6j<4,Ĉfa&Kwߌx,VJ&;SݍG)yr6!qccRuəCW(7[@Sq_ص$<q#`|(TzA`~VJS[5UZHǼa^rفx*ЌO3:8;88hf&xl)r39^qU2>ڤHt~R2ڦ#ݗ*s%-:}.wƿ7tښ> /ExtGState << >>/ColorSpace << /sRGB 227 0 R >>>> /Length 1181 /Filter /FlateDecode >> stream xVMk7 ϯ=kIe_t - PzJSh O=$H>I6c|wϿpRL)OUK!?>x S?4EPzL9| 9dc}!bR*[,kvwY8vL>0*ug S0ՎS&}oRȴ,)vYB95zqoQbvQfȊb$ݡIRb o 6{x?"ogOx?"g/٭[RLQk~fyӖu7]3(}X_u6Zd-m\^\ L5RT~7[ߡ_I8u1Gc"_Qk9u_4KQC5쩑PcJ$s6Ջi>N V߮͡N ݜ<䜝}>6>+MAq_':7w,47eqۊr&QqxsPžQ0$N(Wͧ̍:(cdλmzW-Cb/Ƃ$q3jPvsCkӗؘ,A> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 245 0 obj << /Length 4018 /Filter /FlateDecode >> stream xZoߺBGpҤEɕĘ2$eG?w]Jr&0d板fL?5 zfIOO=RSrϯwtayogO>"ΒH^mHW/T_ͭl^@͙Ukhu.Y+\g]^KsîN74/R"LN-h?\sqﯤH6y2 4лί205zUqV4/&IsՌ1L~JlXY gd? "2RDHL'gs 9q"X9 >=!q4АaNFt\wܲAo6N\௬[r FD>Cs:q׬㭂cli/sUIg>oqNCY4)v3aH9)2cYϒRlNuBijd'eP@ rpMxX7Jz]I<9(o-&;Qlg2^kdr Df 71B40W&ƍfD-^3BXs%]w£T~Z< F_юc L:;g0FG`kahG2+dMd+z;d#ݰGG HtH =j*0 vg$!pc9}dz,I!IQ`'CcA rZ{L Oh;qԦ2iC\py Mٯ3fβϵ= _7%tbsp7g~(3o +Ab~v<~w= ^Hψ M=S|4c}t6"f}:]jؕ-(Tզ~rcBSA:I>zy>b <%fs vD!c5Kg+ ayePe>6VRݺk]}Rr39U,4]˘yAyV8ݚˉ+NSn7 C XOQn!5i7}. +_×U86/!tC g_N\qVD7Ѝ̝p ~~OhNpKc\MKlߞb]/YXke MH'uiv8s413aD=230X^IeƇªn T~Ǻ!I*.jqCl0hU.lG*_I3A£+슔H/5\h[m.SR-.4[Jjb+lƴ39\ eRr5J [ߪ׋R~˅vtE:tg&VÈxBJu;Wi1ȑz4.2B) e@`faKV] $W*1\J\fTG*c&:kHPŊ%ٴ֥aOMzk F #s Fa=JU/׹ ![.o1n% .I[qġB2VD2Zԝ X92nlV)c_+hcѢ| ( 4hn[XDԉ-3ߌV%* vK5Egls[72v@"O8 k$d\ {]c}W메fTd6i{F[Ӹ: v|;a8dt儸&AW] &˶e r3U2C{nX?6REw,ÛnLÏ4Ĉ{yޢg=Y.lݩ)58 ؇P=)Юֽč.Ҍrr ANt#殷{&Wz^ZwVϞޮ'Bmp/zpNʻlP\*bC c20tX]E',lΗ;sF<^rirYْV3vܡ++|\L,4 7-K5IFRE0ǯٽ.v*EwO%%+LԹG٘)P_ZJӿ3' Q&i%<NAK^: yLN&zC>XҬTY\BRTcb1)eܨ q)@ڴc5GLBJ l(W%)\HGʼn=HvQbLܾ|4Yqe}QΌ' g+g$ +3 7Ood,[7J?Rz<ѧADwplnxq=]:RHNF!{+U9T1Dx/K2w-)1ćXHF( q/S&„OF*^햫 GygAGgn.p&1Fb;1 (:M~섁)M]O\ C J:WǗ>=GS6}(A?QZNa( yTGW[dz`'?YO,`Pt,^zB:^u7*ݤc@k8ۂB!I{zu0` ڂT9u@SDS6jpqHW,ᧉpjH%m-zo8/Soz ?O n 69HNp*˭iZ##SL_VDO48Ĥ8{|Kwr3(yc%+I_`q/_AkAC)fSNY'ԡI<)_=km[e>L K@`0%&_O*qt1LK` /1_ B\ǶļmE cKU)r?MG1}2?U_mrcIK:c%B[gs\s FP3U@\^6 ϑ/~r1(dH IyJ$~ƎO,Cz8H귫WGV@NSPNV+8f<6;L0 &՚*FuN]/d>SVBd򏙱9(pЌ5P aX< +0B`  F<\q?e2 endstream endobj 234 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/diversity-vegan-020.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 252 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 253 0 R/F2 254 0 R>> /ExtGState << >>/ColorSpace << /sRGB 255 0 R >>>> /Length 6291 /Filter /FlateDecode >> stream x]MǑ_1GqWUa]`VD>R6e3MMt RWtwUWggfdŤt?OO_e97wl:|ek|}z'W؝ܬq/_ꏟ؅O/曯|?^~]oTy-sI9SW9[n~g?i9}sN۟oowuy*cG:>Es:N/r=dsʮGw=lzDy3jW)v{ۚH/ǽy=^ _Gswܦ\Me.?X;svoٖ+N$t5:ߊ.z3ږo_{.v'l=|{jVQ;g+8qvPA[ y6y;s˹we5܎q/y.ڦVt={OXLa[?/t;ĺ~cގNx(碠yf#{ޒ^1]2UGw|eY~w]FOx2ڬ>a:Y:gZff&LFg|dY6tt,$=ƽsMFzpsY#c7qdf#ݾGnVp끱wnrdq7[qdpu <~J9ynGW$ txg@,\p3^tc/f.hf.!;:|xK805Jy/n=+2*:瑱d'uDVHW3>51/$Ùt+3C2"Axڥ~ˌd%u2Ō^Y\L٤ߵ\DItY5D::"[PRf؎xXz1O"kND3wZ^ў %eacS0ԢWZd~5;Epɱ`6Ń, &oǕ3 (ƯYW5򃫵zXk)̕畧A;Tl,ͼ01̅튤yo+X;x0wo?$χuAv]ha첍#g<puxMnI\F_o6e-"jm>yc~>.lˆ'=қO d?h0B^;f;_m>)YHo6BA&Ō {~JfYLJI/ e>"c z?F?pO1L#~#n ƒjsL+H m/3ѾȶAzl]f7=8Ѿ8LM'*^ x70 [xm{~6zmլnA]!1 ds,6/ESO帓93z$wr'ZMS'Mäͩ%ސ 7Quw\%QL䫓lex'pN:'rζ6nOt5YXw!'˲T9ts73+dz"g0:@v8R{˂ܒO,Sd^ܸ _Y{!+s23W/s2|z:M[}Mdx>R{r:2vux#W"ÙHRˁt"LnHrI2|%$+*ޏ^ ͖}#UDHؼ$SXp tLO%Xİ z!/8 rZWbcEKr3*z *<3 N~)oKr)ăQ;;~ff6+|ʘjD%xA;x/ppa'39 򨈖 46 V,L@8:9p=J(ηI (k'&αvۘE;%92Gl yٌ| AƸ-_ m`x.~|,3*9y,c]5yl8M#="o cޏ4w<0Z|K tQDH^K\cFw+y|\&y](,6M~߁6~m0 kD܂W<-`bafh2anjLhw'{ٳu_Rڋ׊0X3Ɋ|ƘBckf}ibLaa.Ҧ=BAڣ``h`>q;A{ {a&iPMGs.CD9vA"gΕ!W|c8s͟`?:JnC־rpw=2_khz H=[{v~O @Ӌqwo=[q٠=v;Էu cp& ڬFlM߉J"TEIߌ /4q׭۱v"< $5 ]%^=(­:Mh4q6l9ʍN#*a41?&Ƌ>tUދN#MG>X#,çFpu&F?t E9jYXZ NT}ZN#suՕke*|u^]wWKUdi /43:<4BT2rs oHiD)LpFl805Jp _YI%+K#dxg% ,x&K'¬ _F@{;RQj'c! ޖ#Hf*--)@ƥ;7#JGw2E2|)(H;c, /$d87yzv4h%SHj 5};aoFR ,1s jtnEI1@Й1DsIN=ݏ-Los'2Ny?XR$X<'夣q$Vlmp30N\Dn ua~x#3VyƘjfVVG'c[(m_Hhs_8qlHf[P/N#ftR:%"Nx߭9ij>_Ihnƃb5>x{.tImtg$)}}~mqDI4UN>7cISA 1FIz"<=IFod .5+/cs)]|fR''Whx>D/7qGqDJ޿3Wp*Icn+KϜj>>'|ȭoGߜT:uWŋ&/BҲ(|35IZFR4uF;;dwE 2`F`]ڟ18GP|mf% ^} JgڏP xFA{K̽=TfLֽGRSa>+q#؃DR?~ulc腤o~r]ߓ69Y{]Qwe/*xHn;n7w;|>itj\m"fSioGu="hn7w]rܛ7iL)w} [Cd;-ҡ܁ M?||B7뮱r$ks vuwuƬ xŜUXXX6RlB5֡rƺf BuYYc]FQh+hjSXXWѮ....hjhjbGXI=`ꫫ`~uU0U07`j`J݄/+VLh22222*e4hʩhF2b2Z2R2J2BѮ.)..׈445e4whe4Uh&e4e4e4e4fe4e4e4uU˦hd4Ee47^hJh*h hꥫhW))..)!ӕn墔΍ \)ݸە)7 *͕ҩn f˕Xtt򘮔igjhR::YjWJG̩NjjS)2֤])IWJ'WJGg(yQ WJTJڮ-}Zttd])q]٤R:})>o4wtT P؄5t܁C-j`8J s}?>b!>:]}scݤ)>8 ( kxF|E}!wYjCz>|$:QwECwzC1C>ЭI-I z졄 .t5cw؎2} uo:ۋz E@G%)ނ6|ۦcx̔?GS"6cg>o5$\9Ry{){bwuCñ=_yZy[Tw6y;GAU\óc+=YGɥZHB̟wf1#Ln-7p)}~!u#}]rܛ!±L\{swE.ǽ;iϺe mvc#W~Q[+wF٠+3վEHp. _3o?aR*QR*SR*UR*WR*YR*[R*]R*gR:R2ܥU:U:U9u8U7u8u8eKDhHpJpJpJpJpJpJpJf(h hhʤhhFd45e4%U+tUhhʣhVhJ222;T hh@Dvp"$e8P82zb?e4e4e4e4e4e4Uhʠ|p"De45e4%e4e8P82:(sMsMGFS\F!|.‰=T==끲<ϱ7s9R\<.xh Z], Qus\ b SE\þ.xUrs .<}ۃ~tsCN&Ym.@}8%`mt%N~9r.x\"x >=αQ,x:wYՋ_s^| KL1bǽ˜MUG>YB|{%Gp>&xN2ev}bD.onk]ՇFsh[U \ڼP~we9v/}I5kvy/^Dg49=+COEA+zLޤ96;jm.@K-dBK~Fd}n:yk:-~N;dal8u.բB!DۦlG)ab}(oZ!`nͼ/o)ֳ˗mr\|ۗ\]ۥk$rys1@-k@BPMwr,?Kwj,y\ϩ${7yǯ~@|o\9~W|?T??wcT endstream endobj 257 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 280 0 obj << /Length 3682 /Filter /FlateDecode >> stream x]sݿRug6qZ<$ ATIʲ}pH9M2m'#CLzVYպv/_ETkLiJ8t_|  .^ofmzg״]m˶ugz ;Yz SÄ7lqY-t^Dڴrxx3_m*lmg *.*N\4.bf%0?(`3MT~&ФYr=-vTM3URz#g NO_59rʵDk߈h+viVm=BP5PC479ūm (R]Vb655G]i[3>=1-[SV͐ @2|7^T{d6nE_&=. ;_"Xt1E6;6ڌ4=j*k*39\%`' +dbpx ~4p`;.9Rx=+ÃOhk8Pl?NfA 3"~?v:;lr"j&X46!{aȧwRףVJ3dI@$he.sW3>#Ҵ4C [M^:4 ә-6bwZt8A*C0; h?B4V+s޲юD'Z q O<;%CL\tndۜap_xPKz0r/v~9fEq#]Y7Lt"<&at[A>q pPn;8A g6 a!Yv:Yo596LZqe T\".ȒKIXp> iC+̔2Gup֛e#. R@_3B >@>Wމ@T=z^W)IRN A yI#bd"HL'yi*->zf[iqZkV~GZ8R!]6%5ZDz! =%[!6oҀm!@:JBMY@;LLޓF׼l(u@n](7ģD EUYmg٭XYr:Q+rvf'T^X)#%Ӡ8 0wwzZt6Ĝgb bIVO <?hYgDm9$JKU4FnC'ݑCŤcTH)nx%NJlut m2SJQ/CLj Izq>@g?=uj? W9(]K[ !"Mj) ZbGKfbV7s ʆl C*VTOuZW`E\&`O5Tլ0p"quqSq L V&21қ갌 C@tf#_j!=q3Q&=.E 6]?)A,VtQq,/ihUemDFϟhm3WLjٰ ilKض*>S#u=-p;g$kZSτG2@? z2_LjI $}M9%Lx"S.Sג^"0p](gu361×aLx0z~M &38( #W4 *5|FҎ H 0sô{0W{ =i5،iw`t.~ 16%=!LuW!\!ewBB'YV!p̫4EƱ7C+zt]ƧƏ9de +r\rȿ-9ar:ELuR1&>R%XRʛ/pD .۲:.mF*?VHnb%-lI؃{Bb/cŠ̘Z;Zzguwht۷y`9c~Q \e!Vǎ̱9%Iՙ9/F@ pԛ /Qͮ`HifH˙kq~O1 O6KS'"/>lMI$' M]qJYpkE>HX6{"tFǏَBN.L_Nㇴ!ЧkvNOǚ,3F/l@5m;e񓤲7gz۵-coCYCQ+5`A(qҳ 7g$4_\DQLN?Cd-&CR.+x3\OJӔrHn5il]c1ެ]ucgT<*Rx#-GOnkIT+ ֧=ׇjj|BxؿuM޸'I-b$jHx ΪsН^(WOjLks[/RVZj%fls`Z&%VQ'D_= V3̫ [3my\7ܥ;m/"Yu܂\)ׯfķ_yƜFt|"u;4'%?^nu1D:Nt̆F~!ET82q"mDڟ$d(./̆.L74W} tu/A9ÇwQ4&"PCE +!> OP3s<.Qs lBQFTFɈ'־"h y6pyDOE_HMeO5,ޞ &/@^Uo$wr,]+FS(z!J˩ܮs,ZZr'ҿ(`F!FO]#ᗋUE{j{ēL[ ;vI HML endstream endobj 261 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/diversity-vegan-022.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 286 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 287 0 R>> /ExtGState << >>/ColorSpace << /sRGB 288 0 R >>>> /Length 1324 /Filter /FlateDecode >> stream xVˎ\E W2YPMH@E 1Dϱ]uiI3ݧ}]e.q~yxqsI1^_WC ^rxKwVcPgL% %Q}2/0kfSyN)28i_3Xa+3vG7J2e"5\gQOq$tkN]Nk.%R9 v=qt%npE3w~Pr-7S>雹گ)!۾sEbUt^Jn1-ߨ}8glۇG$"}0jO͇K9>.D[ ?g"Y׉|wC,yw"#ijѱ"+}T=l<{LU0J NU"3 {Kv>J; ͗?6OaCJ\hS8,mZv`F;o+{z&0h#&a FX}X}h,] {R<P,Yp4gSc=_(kdˆ}jx\$a% d mRIS!6uV. #6z%(HGz^~ƻ2c ~h6/\m>9K\['y yD[lּl k~{;NN/:[[Oz6m6GVWM9 zњ;h?5p+e'[Onct1s4fl$ݓ&朳ݾU5 ىUJ!MKC唉ko3x <]wCuBު;}:cCMORgr}{O>Cm,ȫŷx]gGmh:Z{es:^xn~o l5 *nNc̑=ha:_ޘIRvC?tDϽ2.!Nq{ChF9F_{ea5m^硫=?F endstream endobj 290 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 174 0 obj << /Type /ObjStm /N 100 /First 884 /Length 2671 /Filter /FlateDecode >> stream xZnH}WU}_$#L;bFfSeS,c,bSŦ@( WD*?+ςrYh%}g?T"({g7&QȄnKBD;%wґ݈#'#҅_̊ɠE2@*b+)kd'F15K$ͳc&{RZ*}F\e2xNI#Fct+r&V ;Blah6x*`CЏA!Ke'Q 9bwG^Ƣ|2G e )eCOR'h!TƬ|ک`QfOXpyVa%*x0%B8C0f,Fee  l:9<@7bҳ#3 * B$6IFAޠ҈S ց! 43JdM'Ye"U7zdi #V(k))1R[HZV)  cNPAiLBY ӧPzoUBIt1|ɧmaM" `T#ҳ7NTrh߭'o፶NV?t 2EmŎyfڪOU,-U`PeYɫ"JЂ*We+org2 ghCmV^A!nرbRśY3~WXo_Ҫ}\Ey^̽s%Gj,fjٰѿӺ||Q6\3&G: egi;-hw׸rNbk׾ߴrflfzXlCl''Isz㻣[rV~XEy>t1fj͓~F=Y_XQQnqvFſ yr^u*WZ~>;'e;C8p l> z\l{9z>ׇY:..b}/~[4m5Π= $0*񢭊q=/.&՗'UqQgʹ8U&x +Nk 1煆Vg ccdR^>Ť\EsLOŸqumt<*o Ւ|Bֽ5T0~#uڬUNfrxS7 W1Z1-s\І8aL gH0'/1'ЀhHz^/tYJd+WHHR4w;iǦ!v&Am[~fah|+4PeIZ?$?iU[1Is%CEP% zנJv"dk}e Z˔0hʫ,0XXfxǎ9!ce=mm->ҷe[cfkiA*&N8H1R/7{26Z.|Z^{g{g{g{zLnaj*+67loL9$(˫{]bܶ1 '0uQr\Y;Lj >1oDQ趀fH;pNA>PN;nKO|RNO%=a-`OpChYZ Xq|匃xbq_AYeGwf /}Ͷ ͤ(i) FVXp%,ۍC [dC ^r,v,iq ck+enh2bQ9㌾-Ȋg[>y9wThȝnd]&< KZ~^#R1݅Hq׉SX'HauokOBOBOBOBO|HY^Y}|#bv;Jy߿$U$ T>g->%J&ڟĆ#f[1b?%pQ~ ; N!FT[KJ;; YNҭ ԝr89p0gMˏ 3r6'I]5-֣EsQۆL/6Y{4l>98H~>]hrr8kAr/ =x%IS|04$WN'VKt#gd!#<OI$Gt'z endstream endobj 304 0 obj << /Length 3573 /Filter /FlateDecode >> stream xڥkoa (eMٍi#EKPw^{w\JC}kסUE]jtqTQUBztu=Xٳ3lsOҕ0w7 c} 6nNJ-f\DZjg Q *j発wϗ1z_kwb#CpjC8s:oGn(Lâ9b^%=k1i-PoN{Ts+_p)Rq+׿%5tC)w1Ɔk ,~FsAo(7,NHVw2|[轤[ mbz&"oDJ4k#=kzkΎ o5{ -ˑRT#[ChzIQ2X&M}2ʏy&$="zW|n{{䡵-ǣ'i3;x.AT#ԓ`^nPS1W`[Ӏ3GVhEf3 r~:uz[̐ H*|F*|̡KWf"{I[oǗmĜBT|_"wpu>dg>` w[-8Y-6 URibPX]?h}?|QpqؼxMd JZS:Mv4!LQtDMh!KKy,DF{5l.A=!Ј^j8k6 8L?ZPI}=`iy2R~cSTj\]\_,`fA8E"I $HpƂ*'+J;@!1iX]vH#4mP 3P)2H 09r*LJ2RCB!k=nfd}V9BIgJ&c]Md,'N[S!.>Mӽ}D*漈 =)qgB]ޒ \!߸" 0s7dSj`wAI,]2^Gş$W8[?t^JcJ'<$͎.;E1rE.*'&~ze]6LNMۗd)z븷Ⱦ`dM6s1W5@zϻ$^@h> /ExtGState << >>/ColorSpace << /sRGB 311 0 R >>>> /Length 750 /Filter /FlateDecode >> stream xVoS1 $M$h iӺi$}{-/vjN?/I!uxWA|tOʀ1Fr}F_+Ul# &HNb|[uQ Yh5Biތ7q4pV|Z4 , nt"L(!VH,$m8؋}Ջ%*DpI'֪aS+lS0 $u #wC֊aEeab+rM!F(J*=Ƈ R>I` 7޸ t)d.:fqH)"1w*֊sUEwLnSo 6:(9_qb ia\[oUG#;b hh, .;MQ%vV;a(vþ,9fO~Ug^˟N ::[3`0k^ީs-.:O|yzg -{1vZfv^uc$4Ym(̞#2 Nֽ~ pc Nr}R?̬fURySe6vwǻԺhwI>{m2/Q$9CYjyn7/?V7Qn^o[3\+o#(K ?\' ` endstream endobj 313 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 341 0 obj << /Length 5310 /Filter /FlateDecode >> stream x\oO'Hq퇠m 8K'[N褸_ߙ!Krw'KI|3Ù :PDZճ (_s[֮%0#g_\5ЀL@=h^w%6]#Ƒg–3i%U.G1Zf!tPjQUt ?6O Aa'I-Tjr*u0ȭY17eO<(&{aVh:c(kTn`_KIN u䯫.Vgf( :MUr|㲒=~pH\Han?i`(Bo Zt/H{@jOo0˾ %ut8]ut+*~vyM#o~>n'!XC@* BMn.n>f NٙGp:9 Oh:;*Ȍ "u 7EZ̡ ˌm4, x@̞EAwIbXyVQm cjEj.AmE rP ^0Y;Q1tszjsΠ.F)0,`HD<%0hZNC=e bGUN~.B'YEu}sui)pA]_8{wf=)2rv@Ҿ;K>Kg4DDcɉ}I~@)(@mS@Gj`܀Η ]gT]:d<6&uh6o B/\=0Ht"h*2;$'pX? 5&>s\å%! R#GS\֪}4ԃd] -\*'%̂\@jE锶T0Zt Gc!y#?iHfx|XE?kĠTh )b9}~v"v2#Xf6omєES MXvchLV50dZ̝mBJ>*R rSE7E1E(m zߙaw0(X)FMA$hU=% ^cfk?: #R&$mE7}<bjȆA{w߇9\8140u~R/yS &<&=|]Hkr)VKxwPf 3e 1ڞYSOftݱ:1U y=. 3 7c[vZ4l&M 6 8gӻm~;950UՙRzG<7ggwHUչ`*3,,hOPpY8,TLTf~:q]ItkyX}p/NٓOV*9,,Z[{#"O))L>>?yBWc!HUi)xFAo酑Fǰq ϱvBMjgڔ EL0RpasBXi,8o! X PHl f\;$Pc㹫XFe4x-#h^\ܖ˻Nz\mNxpSmju H[ˌՌ{,K[u0JٵTW ZzcpڵZB=S 1<O[ $X rS"`HSZz+Y[%{ 1M1R sRv84P+56 Imtz LoL_i㇇8Z6dwXZTY_o A1E"5̒],X * s`Dl:ɟ8x %>S|3U8razf,^bXeFI?lݏJ [Uߘ#w+r;eJS60  @Xn] MmV#+LJTxto&^QBG0;܌Cv0`u<߻\uow<.bw=QT=>NW'ܺTSwd[Y”Ana⪓>&~? 6)9;Œ9;yR=}:Rf1 Ax?!+Go~ʆk_|0H"|؈7B)et"bÙNe,Yq~Di uyQvBWTEU~pzeFPᄀXȔM&?Df :>.+2i vo/O'62X2RA"KHQH!W,OjM8 #!b^0%}] ?93eĤRIm˔#g)8TI{Ё`F8,A_ 4;^G`u\EQnfA/l{<3{#\Zo)DKwMGəu.rGr Sc.A=C{Aѫ;( FޤQOZFڿz}[~/Cl1~{+&aܤcQ3J%5J,;}ǟ4t.^Wr%tzp]ױXy5ث^nL…/b>!KB endstream endobj 377 0 obj << /Length 4915 /Filter /FlateDecode >> stream xD%iualeE1B}D^Bp<;[^qC9b>p},?`k?*]0FBy|^Y3n2Pf~6KK\(?p6>ixwM">'ba`cB2O3PX8bSYQ-*h>S lGaVpO0 蚁[aqEoOmk;.I 'GCq5-yPF-ЋQ? EdkG5|X3{Q3G5K.Vߢf^6`Y] }puoeThDHj3_c+hSPpmd_y)I;6q!HReU+#¾A /™n#IPO\wӑrMSLHu#Nb&ׁRl G:,rxD 1I=_d *m*H.5 ĄT=0&hF KTgLRL$P qc ^U@C3SxJ̉9fY#b~l1IH31LM<ReQ0x5G6&qBǚcD+"]T0j[m€ʩ?u|Tۋ" k~)ȷbu@z g}`+)}",ٕ&zM_ו0WA(k ,Gޏ|^~QYْy}mfLK}Ju RȂ wFZ&0?` 1Rg2)Wo߽~13d%i@ͮ6A̮ 0#̌ p}oD/?M]fچ*(tg!N*pй0=0RP*S \tDJȝڴ+ %Te$Ѐ_ɉ+[W`vh(:C.,g ^2ɝ;^%vI# Ej-dBKRxlw^Qr3Zs3j:ءzA(:sdp4[I6㋻X:bʸU`1Q`XG7pAX"m4[^0O\5+~vٙ%q_ւuIl;ڕ*N15?Dv:Len= Xoɬxl|[g3un@4c;)4a-`Pֱ4TrfFEAŒFWy^O.lg[kfx\t]|H$%#[[p s6TB>6~lx N_;.`:Ne`wk|[ e$p5ϾdF65-%pIyJ ( 1y٬Rm֘Sfss®Sv6ea+ 3g6 ?M֪fB%`>3L󰑙M4hdNZWy:E ECFN@:Eݝ"GM7xՁ7{J#ڭs5%^r,xS2_KΔp5u\:t{A/@ GhG[--᳉QCl Mw6nz5Km;˺6/]8KtIc`7 V!h8&GH~>8V6_ԎFk uzѦDmKL}  -&Ӡ],Hj(s{HOS禬I˳JO^):ѯUlҲR]x$Qި8$gΎޟa8|uY2}'`m̿ 31@EZv}J('LLJxdPL_lNdgU7$0x5iDˊ[{Π҅ t'WN޲z}&SH^sӴTa1`g(d"|bKy g%WZ6U0YؓetGpgCqPO.¹"𵔽8}'.mqd.NCi]LvoK͛p cUƭl~mALܞ,l!R\r]:[#LM\'Gi_e({!1.ay)+~5m71:AžXRXgteOv\ x6:t%M=w˴<얅XSϬS'78|Aly*.+zV޼-CT0+*c͓+0ZUAFֳ1' S4V\/cy+?0 #A Qb Q'+{t99(܇ CQKO'T2P2~0`R/2ɜIh\lSJf0Es$$gEOh0mo_%nVM ?sE.+9K$%ruQѠ5Fڭhu1m(Y61!Kbe=؀o}ZO6uk)l?vuRfcѝI[m>p. =i vϲKMa#zPyEH30؆k)w6D~g '!m*mC]ʪ.TcWC]M?~-pK,vGįh Sà5$\|V-AeT%g Zd'j j'D?vn F_p8?G8w ܓ)o7Gمyk&Pe:)_k2 ⊅QB,]{¯V6 u'X'I@z6H@9{ܥC,+бaPTZ؀ͮQ?Rx׵`&p1 wX'R&0ݢwrH oM К2Dyqnǯ|ql)>HfC &/30虦"I[1>L=\GD[9)D #Zq+W ji+vmާ86לډ<\5w)s SM}+4*-8jvCr2"7 b"<.緸 4[L{z;%'-ZQt\ޏ1ܔ(eaVdy˓(L0?T[Z=ǽge_"[{\FM.nCtؼIմgd`L'ۦ vy6@.&(yΦnH u΂",S$d oW!0rY.gK,֣IpDnJكwsiV'O *D`n6;h7qC1ӆnJhS:K$-f&b} Jh#o .Tʇ Oά֡ +gt#ɮNap-K,{4)dz" V\'l%Tݗ,>|zFgr۠]V//369>¢' Ūva>ggl0zGPBnJ+J:ߛv\ R&OP 3=ktݢ'gpuWtWX>3,S`9F^THF%gO cAks,F\3㳔˚m%-w:;GPn]a?<*(A[s]ӉDx._/}H|奟/u@Nٝ2 xDnWsCUƝ m֗H&F endstream endobj 395 0 obj << /Length 3605 /Filter /FlateDecode >> stream xڽZ[6~ϯ0dcUHJnI&ͦ-hfؖkٙL﹑lyG<߹RjŸz`J*Vxشt95FEjR2D*~/g?4|WϾI\ ")`܌,lzF-Cy+I {J[(?Fc'8R3}Hm +!+>~q%`lhݗqC _/pΚS\QP*_KJL3[Um_n&X9H^s xU+W3)&L[obHH3aۘy+NմIC!af*69Åg,f?)c{jҞcbzh])D /H/I}ͤ,kF_OĿӼ۷\J:(a*s%QVXsa+i-kE(;S+]-XVq7]=o6J".~?A0 ~2nTL'Hy[9mpYI_Y%6] y(4 $?$`x~[#(@i6y䙄﫛DRzV{ )IsQ`9X Px Met(Y5Ɠ E~Lڮ0*z@&ŴZ;s$Ԁ#槑_y vn_RMLu7Pv~[h&Ep.DITb,m죶/&)έ9޳/6a?E?\cg[%{>zŭ}PB$Wy.l9غ,;`Ð6J >3_@C+<%Hhym\Xgrr°3ml,LIf4nzg(*g Ty WdR"9d 0&r4V"t'+Hy. 7)q::4QۣIfn06Kl9 CǞ)Q-¸Ϗ(h/u(!!^|`P`o09&τգ+tV';9K)d5{=G )}GnzA5E"e\rO+B LHN}$.$146pmRKo:`J_])S<#ա:T:TC҆u*CW?}:'qJZD>>ye@4 U/㠸2.5vm3#+e/:Y8iAM.<TKI!@nQ'AOpEu2/3\L;AT_E=5ߗp*c~袼i%]4lĊKi٧~>ϫƋ7rJ_P(~Ax?^o8Ǥ 8A`kVsg)dҟuGL4Կ87Q J+ /Y 0kx2囊N󐜣jȑǷWUt>O8j[BJ*cI2GB 2vǙgC'εVHʟhB:=}PxNqF0Tw"NTމF^3L,؛Wː:WWVZPi}h(T:{ൗ֧HzHΨٕsQ@Q$ÅX1'ܯcMCGi#V5ũ8r.y2sZ63Fk(&$S GzҼ*n{J$l"3ҳ$:c2F?`|_i[|Ej:`՛ӱ#qy(E1q{d?ծG%sᘍ:bhzVy͹}ʬAhg:NNOAxBwR܄G ]f꒲8ȳ  sev:Ege şXBj,Te?ry2y3K2Hjß3q.3}yB9~O3.\!_'=δ {li—~=?.O.YpgƖʸ:Z{y?tF endstream endobj 392 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/diversity-vegan-035.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 401 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 402 0 R/F2 403 0 R/F3 404 0 R>> /ExtGState << >>/ColorSpace << /sRGB 405 0 R >>>> /Length 798 /Filter /FlateDecode >> stream xWKO@W=tT*!ACCAPU{8)xY;5Lus|}cv.Ԧ9zX Zk5N>WoߕVWQgw~@}lѩ!wklUI0!2w:6c3#$C6HFNFvK9s<`:7.b>u ; ;O܋מ2\܁r"xskɒ=+ne[Rr,2VUWЃB,{vF8hH:-9B')&)5 &-oARWv5trr$檉fQ\%62+_g mNn.j\mJ d.Yl/7뛧Z/?f%lu[Λ?M endstream endobj 407 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 294 0 obj << /Type /ObjStm /N 100 /First 900 /Length 2739 /Filter /FlateDecode >> stream xZmo_C_ľ$ z a#5!}fŕ%GRXPwÙἑ2W_/(oQqUxXYIFi3P",:XJ"QF"ԉ,މmR9 МX>9s١P#YYC 'AAi+P$#Xۖ0>׈6 9n[k*cҏu[k[uNX˞{Ԩx<7{tLlT{Q~UWnsBPfJ\}"ZFGzXUoT|vsC8oyHc߃XPԙe ;ei+E=Nƚ5@<:nbt Y[oʦ|Dd[e?2ͲȁI{$ɨi^;΀baukÈ^ᜫw8z;NŮ~F-$ޮb1MB﴿60ei`L"mΚ[`M `r3ZU'u9 -Vol_Tݲ@U|o0|{54^?S\]l˫UgXW3ϔXB M~3kff0N>V8c?`%pi: !uٽ&X* -* qI+dgӦqQ? ){$ooVϧL\?-Z~ f*_~?*sMգMƈ|#lzִPhF6aU?p|3|W|v&x+답iKկlx|xyـ"wz8^̠Hɼ&#`fjZTu1op_\_|84uݟNi>R^5bpVin\VS]!Ѩ^_^̫d|Л}a,R0Y:zU%^KJ =l26p(0kƖ< Aԁ!6#Xk,1my뢖ȟIKi!Hxc+^-<-w`l0CN팠[S mw} i,mmc[;4]nlõli;I&nqXn_v+W67c~\lW6g*Ȕ-O*OW<< =*УBz}.+\]B܍K~>`WAlIKEJ&59{?L|5Z:Hm̏8/( 8%ŮFȃO&w9POR<9FMecqIg$+ ECd`#hI qX/VC r|btX0 l0:Ee#g(5"RZ[B>GNNmQ3E"+&F.z8ztH Bmv:@-Dt6 *6!$:Y)&bC ;wl@<2cU D=Q}CINaU e:` %qs !hH<+$GZ≰DDQ|$1#'<>!LTJ=<) ZOņ2 rZfV"ssN)0aL"1[ş䒡5BPJ{![Z˝֋%/u\n䢸nؕڊkPo%HNo1$zAHXn)5DZQ6-[jtTuS}:Hn{tHK=,`"nʧruZiuHrv{/_-x]X]$d~_8kjYyDKo [H$nyF?Bt)$NOFȏw6) |pM".PY:Gl=^!Lvd2kzB3ȴ6R_k7l{C"}}oB*{&T$>e.uϒ[v}=_f@m%`;ݵ[e~yz-Bbv_gqs=9 endstream endobj 412 0 obj << /Length 2615 /Filter /FlateDecode >> stream xڽZIsFWJDzo`n#qI&Vx I,T\yK76@}o^ŷINī.*\/&J,2yL)ş xPPL3ilAj=b?*K*|g_Â-|Xײt.<ÐC?M}֯'3)Z^8VncGZf+.7XQ GZ<.%N'%ZG%MsOOx5Zl6S+SUjt;]p/[-l ,bGQfQ@1M:pZJRȀ0~c9~:3N%%rو =7\prیgAp#\`!*t0@1PIaݛ`TWE;D2R nݣ'cx[w hӹ "dY"e^Ll/ AiGS+D ɖ[NgVghV@{IUB`/HGQ0ُJ:{7$PzvQPv'7',8>8mu : w~OX-!8;3X+| 4G;N$HQXd}-N q8]/0)7]+?j$!ku!A9 [|jFku!\s !3}H#O!w߇\ վޮZ%ACg0m=Ch>`3X]A,t myX2 '{0:'ht{FguPuT s&]~˳dˁ v g =2/t5b>I~8X=&~cN!Ӓ:8iɢb6/MP@["~C@.E?\pu*ՂHW:c(=(7;ǚ ?shn&З(|,U7 5 zN/RmqlCD僱ԎI!V?JZ|0!I <'˲C& @& tL%#fOW| :sB%g8Rqw]x!,Q >B {@9Es@Q&%|($H&\8f[( Y39GeLܡ8װu>Oe OJ[A`FjݢJJ2&Z@)m v挈;me9"udЮ4_?u~LsJSgd%Q=? Jk8('xlW⡋bUŜ .gɞiOgswkґU@dՖ%]=s \4t}$m<דyR( o;kDĻDhX|GorwR:m: ?uxejS_`[|x %B$^p2Ho)|6dQS\n= 94芛Gi\ ,v !e'x} Kj{0A l'HeºW/o endstream endobj 438 0 obj << /Length1 1911 /Length2 14150 /Length3 0 /Length 15337 /Filter /FlateDecode >> stream xڍP\ ].0wwn'Cp-}jz^$* MA@q3 #3/@DNX OAjlBd Ch.5r~'ʁ.66 '/ /33?D#/@ )D@@mB`hibd3rھhbdPX=5=/#\flP:]?RNjaBdf l,MvN&.v@G)Y=/_z08dkodaig0eݝFvl@FF6F?C7Vgw~N&NN62ٙlmvN'j4yߗkmr235# S{&5;Kߜw?2s3tM,8@{ޞ {{@oK3+< ` 4h~GKw{MLAv6b&iuy-QaSRXd0r0XX8\/G8e+eg{=@חrYT _+ 1:)gYlgn2Z:[M-M,jj Pdj003tXS|=Rdǔ߰%#'8b7 Ǎ9?7+I`RTA&".?ݧ?d_GL,&{ L{HfC2tj )& {=]f/Ϳ{Qbǖ=Q=?ǽG{+{$N8]*;}c^>NL=Zg7п v|Nwwt4s-w{t/̓Lj?1N|Ha\rpyDI p<ҋ#F}#LyRښl<8qps!О׋.i\nd|{~ ]*Nh(]yYs8 (?ongs&߈Oي<7Yc澬U:uj~A>H^,i!+Xz}s]GpVx2V?H-N`ôu"PИRz46&jئ3 5̮γ6\'}u$\&kc`u"cis=eҗ`8Y7aS Ext~W>iFyR?jXYi:iXmxW-W| l셒C z`vu*#q& 2!WfF1/]|5 2L܏Ө:H˳ ORFhwl8ő5~=@6C7ďՌkmV$-V=fGoX;]ӹ^d* Jiif_Ք称fa$j@N̘QgYl+4$nmdmv?Ƚ"ߦUOea<5 %0+~x)޳ ֻ][wWg# WYŘ ِqCz>ܠ>N#`Ы(Bf֖TAIUbWkX{iklb~qI̴\REΉC&A6%pB4Y(%[]{C%tT2締 U. (:~8L# 1iUΆ}8s5>GZ?_`0L(Q|1I]Qӆx6=wr9CпO8M$S*1SSFQrգ8koh=e{^XߍeV{ *&{uԱqK 隄a}zS֗&HmHD&6瓍D_TD$L?FpBf9tBMiۘ0aE3tMu*%fKHߺ8S#12_QA'Cd?>RI,Rm-{ۛ_-_A/>6ݮWāLղ^cr6PPpy$;uМo+"Q#J`^ʯt֎g%!n7 T5tqي m@nc˷=-A&GeLEaK_SE'+as-k@iߡ6Q3!!!i \y!/iE6aըwo֩ XS#[^ qVA1 aQUl7<bmo#>G_~u?}l)fSJbJ1qZCv# `X } Fw8owwKGVT4FPYc ;w k*߹BU-To0@#wA15LԤ?=ΦyB}7*SF.Cib7Fݐ!h$hгέ~~~ӧ{/}[][j]O$}~S-ӚHrQ1i4C祈>X".~5ҟ,5ˢW춟(nݮpM$`XwefU[dVvRU#l?ӒWہܷd7W::=Q/ifj|쯑ѵٸJV-W AumU$ B5C=@ጸyxxIby|3z$JCC;sZYhYD1nOpMP ByEÃHxʼnEmpȧ!!5 Lx|(ђ ߓP^8 %)QG[}RCEQ϶`a;=i pu4vxT`ՏgKcU3*\:5ק-/rlFDZY'xI{zm]Gh}teU"ڒ'JW!b1S<"Efs(JtvFGxVDqJG 0zSN95 V;JE~Vi|ILmg.z}E gkB4B7i?" ?~1u%ꙏM RV=_5B@d}ځ-EB{AfK^`:w>=dpa;L5L6N.w2T=IP1R$.U;'!G!a>z}Bc++`f4.Mݱ"މ,C }1o텴rq#1ؽf I?]b-3HɋˏVsw~$@ D-u !1_l|!\G>V >pєqYFWlSK \zLFBդB9I}حV`g('T*ʘQT*;uw{"ҏצ!,C1IFؽFMEn$; >'֝ϠZP e^dȽD5*#ghen~6x~.}(gN:C}ii^.*E/2-;61IƾB j-Oiiƒ"4R[ ob_45I8DcEm ox-H *w.d-4aJBы/{I7Kߢ7+{=_tnn4]֬dp. />q=};-׹jc;+⻙պ 6uRH&dF.u UG stw^ 8!‰cDY#GvXFRH,R3JaM~]z|JAYߖ_E"mMۉ RVʹOѹl=P_Wf4T'=b:<]E|a'qȎ$zwUÊx+.oGdu3 г0I u#CԾu~Ik|j>Ty+XqhE:*Qz,$q6q/K|9on/*j!aӼp@GUEIs&1ߚ 2C&2V,,qaI{5gJ:/Y8R [bX 'hTkjAH"boWJMyGT۠F'NzU+zW*'V?ҔwZ`{3azV=we zA*Hd29(: 8{&P3L[Q!j7?/Qp yx('Mj~yͶ=\bs_!trJ0[#R)xe6T>Dd,͌Cs$\ޥm_ kY¼"<}6IUR/Dt3^GYHt 7T-\ lz=4K\Rp>>)"(g?<)XV= .Uɷ7,~ N2 "-s@֯1Xy}=q;Yۄ%'УydUHJTꔜYJ]L^ Gd>ӡQ&~QO$&*,42Ug:\BXd۳Ib ?`ykSW`0 kXvmavK/[%p:H^:e.",_*>dPZK:Sqv^BnmU}¶i̍&@8Iy&x<τ1YӬȷԈ"‡'*Z¼S8WhbCu.XR$uK52Q1Ek `qy3Dݜꚼ5vTʙQtO 7}CR y5Ӌ)YLZOj)$tc.cI]hTg^3}>5̱u2OF>8";z/WJYgI`EJv vĥ_^FX=阠Fa k%oyvUH-Í0Kdevm(#6ϵ6㲭f65tP&ω\0ٸpi,S9UJtIR [@ fDF[P\ 8<c"6O}! ݁q@Su@v>V$a֧蟉;jdDEn?WyFa6EҚ"o|u\:$Ѻfs6L *%qǏl(MZBcL8 lC>a(/5W,`j SX^}6rqZ}è37n粦3\D_^0hANZNxiG=Pѵ>]Zp>g{"d sEd/g#6/FSU޽]SCB\pԞ&SMe6|(=KDzg#&6ֽn-Ii8&BgOy/b#ٕI ^ =6<~ƃc.;l4W{$'*?}-xd IYtmI2X7ߞ(á`$([o:/jszHo; b<@PwH]$pWS^*P!r LlUG:É^YlB@H,ӳfceaJ@)Ocd*䟚="L=)ҥ Kl$*Y<y<=]]jKK:7Ȣe"(MamƇS'm#u#k fRkLLna_a۝"o~)%K3h[QTC*Ƌ:BW̵Ox%oXV̫6s >qxX5f1%L WɃK:.j%͍O7%/6rήV-Y,PCuf?ϯ يqzġX$r8\ n͉?[,m)3̬5 ՗8Vx^e'|nd/"ZJrխM[,qN<|OfC\i87p=ZgICO6\K?ޘ6A +7HU:.濆`tݑv Id)x7/A12SVOHٿT%o2lRkC{ߩPN/.l#D>FXQͧCmx#9OV$azw[x1VF2i1g;sElwKRY6LZf{ iF,< _ d^A@[>u`a#D, K ī4 >Gv2 Kz@c>:9PIDɺڂAјtk[}l¨H'QYc+]Ց'8ň`Z*c,+G$ n_AپQIh}; zIԗ$Uim/*y܅{&ɂ^ 'Oku÷len7Mr(<`V\EWxHf,a mgKjACEXؼR"kE~v%&+U+PAӔZ<.O/7Mұ'bTI!41lABSޔj_zZ2k; :q!&7؇%-@DOmQamM~pdZ\C@aY札*2ec4:&k8liY.峫 ?x'TcR[KF{h'۩QY[А4O&6Ds!=%\[ Bɍ,nb1# Oaf84Ÿ9Tmv֭տ0}!'`a$~m v`bFQ &)d( e /n'{k%؎%fd/}aްEP&\$O +-)X^&֯^tɍ$p( ΅yC5ZTCW0 }ii_T}4](뾝w0NYqDŽ)!*d1Lo9H^Q{#ȇ_x؝ T*FEEiV1#H{ŪU}PT۸bWwd)f0k$Z[F10鼷V 3f51_UXy'5J箆qW:&c ,po@<\xM\u&:au<"lĖ;KHLx}/=ssWQ'ƘY q j!.Π4\'!PkI3N t>䙨!FN8k͒c%_4HnHownK6W?aqXI;5+H,L/# pvBTd孜1Vg\ &wZܸ>̪!nށCGT}kdx Vk1!a:˝`Р!>]KaC hk5g j+̂:,-h^ lDl&ա oEr~_0ޠ~y=/B.Hum}%6Sۼ㞆Jkw6M4"nG2D2͌44;A>طT]IM [s7T*$O$PIDQ? /L;IZ~GFV@ ] eEv}3}:CHh}b#5CG9(֥IVf !wvHj?o OPV )'{He`$7Ôw;1D-CECu| n^G@=/ܣW,Wcs2\,<;*pv>gҫl [z3=4O P8NBذE=Q $(qŽ;l~:Mڑ׺6Bj.!>Ƣ 0=w1p#Auo;Qʵ]LOX]*Dk=FLE]NM'-W^_ ^Bbyp#b#O K ^wӾ40h/kػAxdG>m*8VTAabg洐>"2yc}ȠY=thc^C[>l{"_{~3 wT0YBTQ \_xNs3i]_Xv%Tnfuucm҇U$e嗲|iЂ>^qJ/Acc8""> a֬6KhX^5jBЅ[UCqRV(RE'ce@#=y! ;VMCua2TCZ|"?Hva`)w,wd$M$uiFo)I"^ypĤPJ FR5#z֏ӟ$M >ۉN[;C} 5? tWb07:7[ 4)bc'PMb0þEAy-3]֬!9)IL!R6H^\2:KU>'ĝhy<͙L ~wq{K\}ErG>MXHnVD'im[CyHPmL!T6ys u@%ApZ&omFњ1ҹI"n״%y).8m6{$}]mGq_6q?W3a0ݫg$hUagS<|[&s5~e@pmAC/ CB5J$kP؝EFɬx fxc._g(=s.H}g[7A&4m],ٱ*\0\/W>VUQ!lY7yAƦysKПlIi&x LEJJQ7֢MY_#ZrjQqy /iqw<_.G_О("W(9B ,!2l4B( G[iJ҈` ڋ xo,-M9Ʊ@hٴjԏrHZ?18[؅S{=B?R q!*ʳjcSrkB<.鳻Ya'T^?v_i:L~[4%P7Lķ,Èir6YrJkĉqkҌ>iY4M~ҩeRMb4&ݏ9bWڐ\w4}%=۵8_u=z #t`eup? н{~ ώō4n6z$pXx. zH&TUٕEK'4`1X--ahTJ`i% i|&UC2~P>\d]iزMl_˦W_9ٱ,~Neyd`]uj"(7|`vu(# lFj-+*؜gt&—t\+%l?{g 2<bUcSm 'leB01/LiQ/`aEa5:kxB ,:2D֟ubg_F&,{dNFP5M^G !Hf5=VoP7+?XQzb3kyx%,چ\^V"NF ,$BRS(YpbMb_$)&sSD<@Ur",̹ŖR<53Cj[a)K7Ad LG=j]#wjHYgN榟}#A{;2фh+( gPXZ.yL!.F1g FʏR!Z9P=ha6Od=U_<5/:WF<{Hmmrw=ݺ*mDmt[tk^?d^܇~`:Km~`N%gmFnad+jVW'bwi椎X%3kuByh%"DR5"p#lN0, O IQE--UaK6:]kO 5MybIy".x!Hқ8D2]=OH\c7? [B˼V wʸvs꺻] Fc,G ڐ-ـє{j@oӢX9 {l7tȹRVsp8 b]!cv7jۗ:ט\ endstream endobj 440 0 obj << /Length1 1974 /Length2 12975 /Length3 0 /Length 14188 /Filter /FlateDecode >> stream xڍt ';{:m'FĚĶ&۶13}k굺{׮뜪&%W41X;21pe t L掖aIU6\x m"26I'K#3G{.1@ ic t%u775s|_?_FFNNvV@{s#k}E#K9RP9:rӻX9؛Q\@3WY+࿥!lL] 쁀w=hx_$! Z, 017ݿ%2;`bn ȉI9: r4ty7p6040|w[@LP`^9ٛ::9[U#_i޷YX h>s{{6.A&&adKbmnf t200qv_ (&2akc 0y/en|p0p흀^`FC5f?]Z `o:flcm#WPRVBB6ZVf-+#<`+ambG>G=@P7{]sW26`]Հ$ gAh f 47w42]5h@y-#ާpxɿ)F6M+ ὕXYh tt6!&6(+^/? @/#;^7zd89߈ @1~#z{N߈@o_Xo,@0.7mdG]}-,ҭ~Cw~ m Y}ߟlc>46T.~N:$ Ļ:G?ks2=]zVyo@+vqƈ;KM`} 4Z2%Ǣ}#"Tee``ʶ(ōҧ:x'gXV؅ cڟ0x{/v~`͠vN.⮵?KGv*٤Kh#U"fHs 3f iP]fnnQ>IRzD2xhn0E=̺)39ta`kbݠLy$Jb{FK5#رTv.oc "mOG)l Z*eu`dײM0:(t`ϤY83$89Hg[=E^#dapk|\:SZYOyo`ь0R4Sm͂$rԗuNwķFK<{6wKQ_$ˆr2D) a,60O %i 1., wh\)d9)Q:+賮W@b3ƌjy]t#Wtl3<2'D|Xe虉[i|_or멓U^]*.aHbv~Llio PNie41D俴Cv. o+r3Qr+ޜ48C 6V~k J~Rɬ$jj@dl1[~&\ DW m 2sپ]P6GMb9c%Ph-J-ϤւNS?oa(㚯D4B(aP{V{kNSAOL÷4´ ж  Nv{ ͠b" f0' :zVޅ H1D/ۤ:ᙾH-)@$4`QB8e 5wq35p劳6BˮyUC} RJZ`)D#Y*I[]2$h[_ +![|N= %?`"pe' o pOa~pf'z1]3\9EZ)$Y\Fs)_^dvGX+vj7;F7^Qea7BQ M8*Kn QvY9܁T%N!->b|>We͛3Q<M/z|&2-*|a,ľ:'_#kQ[V1V@l-8 yD)be(8q1YxrYJ!ZYQ Յ D $ow4"k/a$U=/ZR5͌ri&4IQo}@KWӒ5hŒfqiE3i .%IsIjm+رOxOlXC=بQsV~D}ns ZW*q~^8WlͰ7/}fe I ^tF DǐQ*ūnN)Q c7@3&yMZMuWC[p**ciR\ Ri3k-i.& =nm!:"?ɫ"fiMyRbJ/H1!Vmm(dgTb*io>YNߛ"-,1Z7j>NïqN~||rrF3a?lr/1vǸW(syڋW AjA0?%mre"6C_2ylD`0{aKQ_3 l"}=K1cq",Hڼ piL: ';fqeP}ԥh.]SsٴiMk+b.2r1" -uP0O~kLرSQOH>BKf$x4W|Y{!8W6RIKD3+gMߙƄUF%)Z&/ˍ%Vc6,f@ ~*en4XQ&Cm%oBCB[tȞK];lCHa')Ԁ'`&pcօ(Y<CK|N5|m։sv-k8 ~4FjWFH~}%c.IbH ҽgwU;-끤QhsG$D@ ^Y |8 5般a :xy\z΢q%ܗⷯD_!Z^dqD+N2fOLAUCcLJ>3tm'^v^~&@}zLt* 7m_]!|.7ܞ%叡/ĹIARA>:^df-jVpan~d4+:.KHM >h2GV~:H3kQr3?lpٟr#~1N}3|L0 |֡:[ڽ4`jD]YϚ˄˱,{`q!2fz--g`DGW-nګc Hq/%OM '34$7?5uLh^TkuB|nrzm,I(\[ Ն٪: S4D!R6b Ɔ18-'o#Yk&,#eq?FV`S_th 8 F~Y#fw(c>a}zi}J54n#ͤubϦYkd2^ Y"fYN|w͂zBam&S,ndf?Y>:ϣR2&,"=LzA?ߪhsQ9QÇK eZ7|ͻEn}(.NR euڬX= r[ ̾]i's ?,a4*׀ҟ:Oן̳@AY4UAftvCTAb|+n(MA_a/Ii?HekT)`A3c?e?ƒq?je|&E mzٺwZ8,7 {pi|@8+Ҥɱw.[mCJ0֗ɘ"9)g26"E̗%+ry~c('1T:/Vr#G$:?q~y+S6ҤQ+MkO94aG HM[}b fd_fH&a?X5?TX_xKFX]\:Vhm k 4&oIc6v?~b/dVKP$Tu Y3F#cݢsZXv6O=n1yZX#V@z5m r9Nf6-fAcqcFmZw >]`.=5ͤ]OhTGM|eX(yXWL=MTHuiPP U Rܦ8/N6y&YuuKcMRe k5 GhyW/)"OQ³ 6{v)Dµ˽۪ 7XmujG[Ӹm!q)tYh\[3݌r3D3zJ0ߐz{OzdYKQk"́dU'MdiBA3h*I]/V6AxN&-~Xfa>g^ʙ Rt|2hVǓmX[w݁'Nzȶ5ZȰmynj|_mRt6:%^V|;Ɉ8̷at9x#@]&9EB9iΨg|;B%P1LZDWX_ *kƁ, H6y(ҺДpr$$,oI<ڻ(_&-+`) ᘤ7|vN\V.-Ppaeeb]{G-H:+[c)_bJo`PE.N ž[|eOEKĀ!Kh0i\㰈\mwH{}{`UoI|e+qh>@[@}v}km3o=0!% nYSDggOIrʙ 3 XD&fC1R9![6÷LBSk*_b@Y﵌-"{F23|I4#T ;-򯃹c*)+U-Y ],'S -,NcuUP}P BEWTjSI#O;aDc-)0ݟ bq-A(EfCPPyt,e6.֤{bKnaUeeR0q[36Ed/Pq;Wz[J _9ڷ9^6Cݸ$'x"@+}ۤm #"c23_~8ϫ0Fd{:RVXf*z mmHʹWP7]zs068v5B$uukNPe< n(Ul(lE׼A-)^nŔ4$(g)U}'k9ުpjTA`Azu#/8h[@'n`T&I(x*ǥ0 {{aF[̨W\_.o(@hÆdH8ւS-qsSSv&lJ ղ=\i+۷t;Bt(o1t{Y385yFs Rѥv EK| S]NTn@ff );; #ccuJ·˙j|R􂥮l"BcdDVr[ #Ŭp(ǤsρYoWLBAI/SEWT@ El+,5DIpILF-|;4ZcsK3Y, ȴ2,B>mꠁNs͠ SJ@+ًONmyN' Gh*ůxk5IT l0n,V,4`z80ÿvs09oA72"JP{b"_-> ndU6Ǔ+Mڴ_`iABbZ2-a3keۢ)iK6.A2M#vV)cڠ-M9LbWHN?p7XcBcw X1o舭_eQ o֒1aj*K"rVs]*yEl1!qZx{u&LgS.LbkyPܡ& NY|`XÑYb ͢.R^:e06<_L> GՆvN,wQ嘎UyR3YdUO`!aqf?.ڄGd+r )xá4G.Ȫi/Df-}J$:/AH5Ch'!Wd-aLM iI $9>Na4ʇM~Cġ0gä=؜WM1@kNZx`)V [{1A`/ p~n/6G#/;VSFI.Ь@|a r@Y^Іw?jn'iJVQIˇj5t+vɔB+`Rb(*(+Xt/:4}pS{ήsl:)TSK] 3Vƨ2S=P n^%li&`uDT-MʻD,', NY-a2x~Eoydf#C̼\!ٗ!)D}gdF$nb"_vZa]ԃ&S =rj^mnr22xd,:Tcn9 PW9n2՗mS"Umv=0M.vJDbzt8'2[#hk4U*'vܪ Hu{ +2tm_Ug&okycT&1JAҜ|w6H oDC I/RROc$պ+cK {ү|CL\uU;Kmϼn1J4:'zH GGvb}uϩTc@+Wn9Wv l G9ÂTzjuYB)y6KBdrhPdy XS"N-|^R;;| %VUaha89*15YB8%w_SHyLkhێcN͛n`x察E#9IRBp1u rUE3*@6&8 n`֕E ;t -j2M'*?2qR*TŖ $ f$n{펍jD1^h _)U]]{G-o4$6P蛹-Aj#J }斫ٸ LH{4A5t#s8;0]Ƃٸ(KTyhu{h>:y0}؁>%:W<-/Rs$8?5LHj:q_yHjz X2S(wYP'u:La^Vޑׇ JDa..v҅eU TQO}gL:WSiL;$Gǽ ${W"*9o"M8 @*4Wxʕ 51PjlbGh vfe&,*{\<:C WAqBTh?4.!m%4bvEĖON=IϪ,fwyZ{$P9&uN&@b<=7u,#J>?s؆2& m8ZBV00LێUa kK;`V. CU|+z#__d2Jk jmN+8|TNv'6n4[Rf[+ 01%W}=0˶-FXqavZ X`/0:7 5RUgP]ɍ K,hrFRA4)H(a駚΅}sQj:W}E1x((ҙMkoIWAMuwsbx%1u4)ޤK*W=#jz)V֚R.ģrDͿdVgT Ef% /ċx _j4nૺ稢Y-"P\tDp>q6ºYؓfMZzl$KI .ݱ9{ t%dp2-rl1ֶ4` a(zd]'SA4=;z--+8ͺh- BZKDd o֯6~cjΩErvbQ-BTWoL #K`8bL˦r,;R~3ip%g|O9=pf.M?Ez+Ns#3>Qmz߂w8Jnc1mَK.KF†NjW,.Yt<' E6ݏ](g7QˏȚq ]mN,/&&u!\3 Ք_:]fgC9LڿtJ4S,Y͚#Qm`)bD_ù:'j=$LϩƀU$^YaG)R_Uyf endstream endobj 442 0 obj << /Length1 1453 /Length2 6793 /Length3 0 /Length 7768 /Filter /FlateDecode >> stream xڍtTm>4JH-Htw#4KHtI(ݥtKt(HS|s~{5sO\s2=㑇 *8(PRS@A^ PUtm `5p(@AHN D#p_/"/*@ x8ԕUE/`sE.00!m  "=]tsww9"\ld80-@ uAA!_EAпj%`\! (ppWuk;A5ppz vG'X*H$7\h sYsTu t v9!]y]age8D#] ~sэkp;oX*g9AՕUlH0PLT(:`[_W{:AUz;!B0k(.nP_4["@``$ jZ!) >IA<2cj۪x x~(@}w' ؟y:WF3O$F Cv30)_QwwJ*n"'M_7$z腀7kA!07#A蕐8K  yCmz_C \a?_6ψ+@C/ީ # O@Xrqy'D@o)>^8vX#\~MY\CY#KhRAC~J7%~P(`#,lWrV%Oγ>"zf,3R ٣ ^IyC̼x ++9\n' ST< "(v:!x`71%YOM%Uv$ -ĨdcOW>dԡ.S"CɰfQ6+ϭ>?x&6q&5dBNvBS{I䳬"?b8@\az23d`}zƢ|?Ы`FLt/ #9@,]fFSt@XB_1F,vwR`a ߴOSHkd= 8) ڤYp ܸ pt8 u(YDџ^| gEt ҋG ?i9{:։ڜo|D *M$bxbWc?ZsoV|<8&6}S7T".V#o. Vz\+> .К< JÚxm+ƀӮ[˧1&%_+Y֐_$~<'Kg;]G ^ SUPJtM7.f>A,(~x>IJ"2$#vxtlYg2q/@ba{S6ZWg-[ ݏ]A[8G]Eu%iN0[FN s'-v yguKvŠ9EPsۣ&;6QL9^\=/yUnY@#~տGFH kd.=fDei[`[CN?'h7uFlf\ xeݱ`Ni gճQ{TCFݸBG?BPJk?.SAζÁzGM`B|IcaU/ރӱޣYpd.Km n RwDhR֜IqrS6HASwn /wej_.\|;"gbޢ-p qw>luæЍ %<$:vS).Gq}_ç3:<:D=gA0uenDzrqi=: !VK"Cl7ct ] lK -wR׿emI^9Fr YX_ԢX'dԬ(vV§kX O} GP2O[I`1}6O،1ccp_IJqfBD3p}h"ɑE]-QnقApIUuir L^@SE"=4gzJ]Q'XU+/Ѽ? e2< 繎[.X~<"(Plcd>^|uX*uCkZ6%xnQ%*#WgUlɓic.y:ID:ty=ϭogc*)u-E[]>\Z{@x,oD&k4Sn @tTS(ǬnVڐA':ՐkU\!5",ڠr*ڟRwmJqV/Oz`\ZՅ|,{^h0c<M 7ޚLJw=vvm[{vfOjkiykϸԪmF}{/{5IZMU962JDs_LQ}k ?H+E;FuFd+<#d \9잜+tgm̾3,\ϸ-j"ڄz^`3/">ۈK ;,N=?V98(R(HJ k`}>a<@o 0r2'Πޕ9jÄ  GPu/2tk0*ysIV7FDC~Bsl$멬s5:66%z)xqY"fCA{H! C1Z*Y\kĒvtp;u ]Ʈ\YP+ϞƥyRhȶb>Hr97ɕl,~rWsp0W:lpc}b 'q9l\{TDO]̴7p ۜ. 4,1dM"q`}\@}/y%G߉S`˨=xKE~D+Tԫe]VL/)>ɅVzBE\H&+/AV%RxkF ۂjHa*lެ+jvJWk{ nrn8MgۆELDeQZ!/OVJ)E;-W~sjJq9@Z)8, 0q(ը-T`5Of%X6{0ܴn %nyO1Xbz>' d DT)%&Mo67/J,.8e)Vzw7G"@qx_viتLG.~݊,MR+2enbtFQGWd? Xs/D_o<޾Q|j1-1q9MxayɌ99[Sp;Ol&ekŘ>0V>n\1q8ϟzWgcH6u@},YP*ujSl:F@9~E~=q"X^ڢzP&0_i9W9sQRǍƚ[X!Tw HI`eJYX\guNj T_ 2+4Q׆6Qü|ĉjցțǫ9ǛQ{_&^a d; H.Y92ulVN}&xxA@|AU y*{)*Ʀu<L7y~+b )ԵWAxG#}̏ >L姼PBU`4tw='C/HgC'd~z =mh$q<7z7;_a{vT cNFƳ{SF}RզܼL18Rb$,t4WO jk&(+;M6YBs"SxK䖓/qrʓr{_s&/Ea |`t6eC&x7{qjzh][It{{o/%qdo4?afF쉦g36W=Aep84 w35~g|K]OՍ#T鎳õ9oѬ yJu}fV* o] 4h=o%ƂEP`:K?_QXjY4^%>?S]yI߾Fak38B}xE]Q`V=,pR७h֐.4>> stream xڍT[Ii$ΡS`!f`CnD%AA.PB~oZF*뫬%LN5SYkw Mϴ/<hƞ&\+SCEũ'wg1c0Vwn%OڛUqG9̂K'!81و~}/d7bgR׭ 95)ѧ&_٭dSeŋt .JRgzG,fRM\-)WG=YO '摒XpW݇r6TLfz x-qCL{_d2kˮc= x\vF=FRWFw4aC)q ~SME7^\Lw;Jv*Cz} l/BFsx6t22mB.aFjrFa)' £ro<M c#GJ,GE^CӚ؃QϐqkMy2R {s}S+P_2<OFT&u]P&uLjq MHd`"gUzUK֪y:Ԁc91Uhzpd+Aĩ [b,ΖצZXJEA%О`/茼du7S7y2sQz#8:n.Z/AaLӹPI"#Y_= Y ٨Us]jV欼$Ϩ[Ev%'hD߼i)Rx[+7MH|}g}CAgPñvX >} KzՇRrtbv'p@D/iC6"Yig3GOhD2IsuZbXSkP<\rF֣QB׿|-穾5Ќ:^5!ݯrP͌l&2+\% zN+jew@Ƕ8RO/oDŽ4X{8E *,owlL=Y͛ǁMV^)C/Bݸ&VX6iVS]Rq?ښ~|xv.5rdyL̩.'xIbcB(rO'h9^aof| ,P +NeU)W]GN dX%-]ǽ!ߞhG&YUWkaq!WlV\4ٕk(TWL ՈƑ]z.i3E>Qّ5ipnuڼEWDaח8l7וEA;Qjc?S)|'2P(E7]MnsN Y'ir=rֲU3z+ʙ Þ+E~4|" CP#z6 2)l][uqvk Q{᝚;Dm*;CXJ⺷N-{gmڭ%R;1:n c{GqNe'Ldo`ƦTxr:KMIݖ F|9]tWvώ,Ɖ]ƗFP0udE'Cc~m[!cz2lyh1[ȩ!_%oT܇GHb+, c߫Z}oHa{V@ΏIf$GFWYھ;>%YIOq$L F?dǴ=F*L"h|D##_{~Y9͔)Iev0ϗTB?>P(P}4]+XvͰ!OI71/jn {eIY4qU9=e^\C@!|"0obEp + k磸 ), a'kDyݸYP8Zg+ Qe`< إƯ}2d5c ZR .tˈ0Lo6moksB_PC) Jm3#\JFڞc: 31^ zG^5Bry!o'X+y"D&Hkyh9 Sj 燝Zprlu() 詛?PKq0̈́Qt|e+.7X,mL|`o"td.~׽0ۆ㩛l-݁tdi*vf;,dZ ۤN|r K1эCSc i*G$_ ēBT@Z RB!5~W;iC<[d?Hț 5~Ɇ7FܧP( {`cAY2yP qʋKN/ճmn CXl{3#5*TQ$[M`8QDZGǟ-[]{_:ʫaps>"zu85TnY/fᏥ}<.>&Ryxm]2紐E2\Qxm%`gj _Rz52+Eh}'C  B8킯S[xP4O_xYdklM.Tn~QͦEwG$>4 ]VұKS_ɞbY;fXXY$ t[y'4[nVкJDnhr} cLJ\QOi`gOTu[ؓD8 7ٰG~f2Pଝ_kKt>d5̺c̻-Yk-6tY~1Z>xw;$i6q6tI\{޹Z d#@OA]pcbUX|'F֛ݙe\ïFJ-6QMڎI+xYđ!)?}/$2"ssZ~iR(~3.RXGLZ)'@+O~ɹ<, \fU:}9E55>XAB_bXuVd))]dm5sH^\t U,ኚU+_m` :㬗yTZuUG7*Yh1C;"odVt"i3 >7J?e䀟^M:M I] ie7P 9LnS0JcS,IqCvO*S[qa؍Ƴ]ws3sj) +0pݓ-T֊^>ZgmWd-V[e+yauI94o }1^,>6]?=1)jU1- ]"r~ԏ zbʥd|L WoEophЂ`-IӁFX}U9DЗzeX2.kݍMDadaNZZ.+D& m Z֔` `T9'#=~;%g&针S``640mSY%:YF_N[9cu9C.7^Ҳ3a994qeuz>O}@CWm9I?p3qbhꅥ cl jv3NnC7(zSg\2ȉTs;ڼ÷! 6=5I_Ǝff!{2v^H!{(ms,ay!C.n! 5ޞO^wW[|&tԒ' jKS |Ru-jy5BfZ 8|Z 9KIe}Jt7aFH^cg9f&8J޻X !ίvVN.56<}UK,W/h*nbnz?u"_hJ;ÊY6E*W֭k}~0W9{ћ7e⠴s. UΌYu|tŽ4 !iXb9r~"fjr_T#Bk@s&՘2#m~Y<&̙nAG"#[ =K#T%E<.}#t%zu|5w^pq{PԻFk'#S IRp3^kow+oe!yceޕhhx89~ = $ԚR3b {g/ <{P:кnMdkWw3(:~z-N,kp. H-yti) ݤ,HYm츍KW7\>O/Io\[H[% ҔY_0ZTl?7@+m Dr'K2_\,չD',Jx IH̚q"4x蛄zSd}HL34~IxMcrZ0 ' Fк>~;xR,CXؒ eqv<[JyX⚳` seڥ0-[]gl%V -֦iѐKeݤ* '<Zp wM\:OUUiƂWo\8 *GGB)v<"V:3l7Hk q{.O0Iuܯw-Vnʗ򠭒tmU;?( KOMgcy՗ JM硷}?AxL}^ސ@]}>{o|k< K+_m6~l4];-A,m{z Pϧer3*[F Ź4.)$GrJՓ5/+ ]H'W%bR LsYz+{Rgෘ o۲28Q)DJaña>hQ̶:g=TU҉L!No bu3k!}}9(m6=?hn2E1aKԐX;${.UMИ`{fv/( yVhLC^,Xcl6ՆSSi5%;Er@ؾ HeWqiltɒ-2ط5}&qM&Y]yyꕻQ]v|.:-eV/~K }|6kDK/B7f(uj!!*?S' g>~( B0|"G=>:@\<ƺ5X-sTE KgY`VZֵ\ +<mCW:цe(2Z(c["&kCX c+ zB4&q>ᗴd)Il<=txheDlXeV}()sCtv_TBi&N֋D KZb)Ǣ& Րv}I ynMr[!>=+I랯TD`uu 7r-vd<5f;O G)b#,[ &yq  h]J!0mEOLXm7')S:#RH%c""XT LV o4-׏qg-p|{KSr=?S{~n|ã Tܻ \(z BIQfX>&)ErUHv- QE,f5' J5DE}a9?!zrcV ͩNul|\n;SO^cO"v%ʒʘs3tD*D$A5'b Z_v @}DI"%BBO%Z@2;#u|0:eĬ' ֌E/|a/g_#5w>f9f슧lPKXSʳN{Lϐ%|IJA~d੥Q s';=,|mSYڤu0ݜ`77)UhXJ, endstream endobj 446 0 obj << /Length1 1920 /Length2 12981 /Length3 0 /Length 14186 /Filter /FlateDecode >> stream xڍP-wm4\wN{pwKf9U[]{k79 PDD bb02322ÑZÑ,le!4D Aorvigk C;Gn @ mg t#ww03#Ҙ A;@halh 3m2ZT- Aks3089S\-@eh2@WkpUs ?*v WCG M`ma uzsq5:޲Td @?e45=gCcc;{C[w [35 .Kr mM~Z;ٽZXQ!@\H `_9;Z؃,;ۘlMDll 'Z8ZڹzZؚnٞA(%͛`c`d@7cs T(~z0y: Gg& ob-ڌoc00;[k8b9qEOj4RX I cfc01r8;_uW;z]"_B`vo(a#3p(WoE)4 m,x3m ޖM5R ÷u5{4+=#r 'q 7O)Wp@E;'W̛#޶qz*Cq1m1[c;0tt4t{;7dz[S0ځ\o={L~4;AO`qDFL3A `8Y *7߈o> H|ѿU`K`0FoWǿ2y23Fd/`|+o_g7dyKhg4wo֟ۦؙ-._m߷ڜ,H 5ķ ˌhF?.| h 8oghY~W-J; uzL7ߌWX)_c׳vZqSGTzKG$~`Fd;z > dF0!wc?"Ar7Y 9ޅW bqv YL|.-ePѐ. -H/$2pUC+(}"]w/ȂA(b{<C|{@*bOwC/Ҿ^(J1>+4ηPyvbrlY8N%("{ӡ-SFGW 8lڸiɎ=Eh/*8a1ýC$'z5zǸW_yxABtӘ޳axuhII!*01܄5RbF ̸~$&Ofň]LF-ҥ^QEFjkS0Z&^jqߙ4R@}F>2>Yz^*_otG!<4,蛸F҅UםX&bbrh"\x CoA<?0L-̀#h42e>fAv{&UfEy(܇~g%y՚sCs%޾&;=SX׊I#q/ knj"7 :L <{*TV|u~~C#](qd ܯ8#ӖF K2f5r2]4m],+Cّϸ+L~h9asYKF[9apÚ\ÅЖvUsΔ]lrÅ[`Zac?6#z愀4sZI8|@ݨ{STTg4ܱPy3-7Zɻb2[6HjM6oX[ɦ; oWKbʓX] RQ. dZ*̬klayzwN0\eGMRfKfA+W8/܅͛:ݰu;[&L_s-(C{H㕕p|kVT;74oq:tt#tb+Q%e#O e~s_<-k 4}zʫutRiM-,e>ψ_5@{1A^0.!6e\S}}8v#Xij{Me{iSIb{_qQV Ul?O7-Эj*5:aet%l:R} ~P~qO >9 [ b!%TyWR$&J̩1 63pA NIM{$v-0@@Z0ews!uud&X6JJzҪqsl%\LPR<jq X"{*rssQ&~"^P$=< "n_ o~=\M g,-Eؚܫ5Dip+OZ;t6n K!ov\B %#=/4ۿnM- 2j!Kq Cۨ3H NM0TMU ytU}ĥK'Nl w7(Mhkm멃9D́`>"0vkJy(c(ߞX`Uk"9ކc]w6%$9`Iqtn6t rBNNFޱYϽN͂ N )Y]H b=e)gk:Fෆ_(׮XЪ<߾"){uhi%2"D0ӴF_ݩ;#\Q+`U_kX|Db^`e3 NJXyzd\>JKA >) G o~<$w=`Cf{F\ʘ$D# ;CɃU;lj>3ܸzUyu}K&T1{EJ8$̢[Rq# q|9xMNa'q,`wZ X8,X NcAEuzBhsUYbYaE҃5c!`٦̋IaZE%q |`J l7p;2wYz͞ z*kZEAQepz.$:3:j̫ܱ.'ab㴟 ("*Ӹz' Fzl;+hӊt5&^P%KFR47mⴋ(/Hn~sYRE|ڡ ʷ(/dRr`_81YH q @9 -ry2[ᶳCiy>XكCў",Θ6LCajohO2:p-1ƨj0 $9UØ251sԩ@H0,MVȆs-h퇊XPLR5,=U~]M?[T[LWvKmN ]Q(8|wŮ6F^T(RH^Ntҙ$,CB{[3 Av 1)\x74wJ7L.N -uVsl)&Nɒ5&VӼn|7t.$&нZC((x4G#kûa)FT98}>ĒNo tY'pa4w4K?6~ϥz5ڥEO'03Z7W׏9񪷺2M'JDM#pBWܻ\wÎ-``ΤYs0E/@QgzU%0|"^x{{Pmt5HUC ^-m2N'|ČSF]oƣP#btĂ{Z]L]{Ӽ;'Nsvǥ+ n 8Yi~ dX,s:g*ܜ_0?;,\QXڙU6"z\lM=g7C WV26@2eVL !c^.딀oH - Q!y.8r%t3[yy=7%ż_T%)JJO&a'˭WمIP)}5ێ>6]Z|d`B2)o;;FՖsovn$:~Hq7 8 r~G(,$e=}1,\2ޢeUQ sK-H[2 ^yq?90D[NgJZMX^%BCD*x%\"W FEzBc$iWлO[SA[N1OI4ŧ{rޑi!nxYKޱ(rzP3O_Wf_Tёxqư}]D%WUN<𮧐y, a\ovcX=z"O:rЉ4D+7(.ߗb)^͓܅?=v>SX(8>W*S󃴏g t=~oX㕷x9K|\Cp &tSd_ pb3ȵC<0t$ Nˌ(0㬱r(0bCCtn :J&Lw%3уSu5ξC\ɘٴM;'7p*I>8fmU}#}ܿ')Zr+!$7ڍtH:;Br;GYT\P;燑RH-֢!Lvr=T¾왋;rYԭOr9[_p98ʧdh&RX\7.,alb'=$xFv"MnGk-'`*CM騢WjUm"{Iܻ+s?Ϸ _kh`_…7O-:|_r-\˴y5\HJp6o,˞/ܶ9|j|&4@Ot@%&iG &*BOwE1"Q?]t!ѻg?pHO+=_e&'P7u#`p+߹~cy$(+JϾb`M#Fğ5+ݻ/sh鶚Nş}?eեH Ey`8=͑5ǡ7tLbz;e!UE^V@4rvHǘJ%8o:a k'sCft_) ~w bA}7TX#ƒ3hwG)g5>?Ɠy6fJxhACH:2)q L^;ঠy{D_b}K8'M"#2'R L `T5p)8 @)}yR%݇mYb E0NU#&@Ƈ S!\̽*蝹,&KTJ=!rwt\Z~aO9-"=Dw5;zRZAn">7] 20"ϓLDĄ,1/ɂO1>Gļ5P驚3H5Ξx5Jǁ1+`|cIeu:!w#/YiW_?%Q'%NaD@LI:!;}EӇfwS}ژ^;ò"Sp4$%t`HKPI5 I=r?riR0n1cS˲(79\E]rmQG)YvʕŴբ6{}*ITO{X١w4,_>Xn>_InY^6Vv.1ރ}h%PWB6s13ɊWr&M .`dTa]{c<9Se3~ XNg6@z Uk&_7ps ,Ea:m[FL~LPIb;,FV~Gddžk}]euz(Q6[*0c>n4[u_^[1Y96Wi^aR|1¥1)2s/{9fUA,]}t |\7S_D;" *$hޑS2Q90]it>PUFq+ۊtpx|nFl:$ıQ_:~`bҋ8q:36e*T[erOe,:a(3= ~%G_aASήp-91~iu|}'E\cˋ*(0Nf01zś"ViŽ| 8ʛIWEvWHuv5 ;ؔW jX[͒#&yqEϋu3g:>Jǜf(25; mIC;j'MBcq"ZWv]$MޏZBF!Y|$T]|9=: UR:kԻݹnDEDN菨2(z>ճdHel9ǝeډ{͋4q}_9 @'3Gu %}ũ#5}4jDDi 77i'Ż!.;Eӳ5dEIC稩$GE2 05Am`Ԅ'I+ҝvR`f5mX 4'՗8EH@JoE\*nD,\i%2_JoJêAqp=v?L~I+E+?[^#鱑]84WsUa߆U~>8ٜ/%x9XR¼W5ӝ Cb]ڱP)v)+V|i d$zO&4jE,ccney֭ٞVlhF>_1,@F8 M/lc >S<>Y*ܶz 8y8)#6_fZ9{@"(+KOki(I8;>smqBFP w6_P:N}6'#RL^oQE;Mr`^S@L$V@Xa\aX]4R H\1>zɍ'][~>jَODgQ\ 4/UG&/ C]~{ )yѾh<&[jd ǝ-6}Zzݷ[>IYS VsGa%uhMij\+bU2 μ]GŃI/C\)3qG((OǂCh>_Ωksgjm'1EqLNo؁3iNѲ^u]d֎%CHny.xH2#T'*W7*6k jgfB6Jq)+;iFс"y4u<N]Hs&`$]0#Ipۃ]5YC>hJ+d\ve WZݻϺ8>^-=(qH}$Uf KS ,;v;fJnlP|D 0?-*:vaOV%J! WQk&y#;يx@!֧A r2T!bF3 ک]53So1w?/A;EX5*_ݏ<0n6&KC]&E*U 𪴂;hٰn#N3ԞI֎~$_rKb+_J;zI3?yߝSďK,?ҡ"I)wлM HFSNCuU2/ Xj:חI(Gm/z Xd4vaA\I ;0KxҬ8|3$jcٙS9Ec+gHOjdw{ _a80!#mڔ6^[ grDm)ecgbF %z}Nr6']԰Zo'gP/3Sp)!p{Ղ35*^G6v#rԏ[l ZVNE}?6W+`W K ͋~=4xE6F9lc`!Zh8Cۇ,)zJ[@)ؖCl/2 N'>¨irIhʄ`k| $Z[ےU'.RhQ e]) XI?lQFJ>3υ&M-QM0 1v3E.DFvlu8^-FeANL6_G|v9АMBT2&^:ݞkm X$Nr2u5aغߜI*BbQ(Ns˥&HV1#+kGL_NVn?z4Bӧ-'zA=yQǟB \CQ NЬ-9L5=~ 2E* * n(DwȜtotu-Q.P6u8Y"y(/׭-mםHϤ7$Um]?K~ BNQY%k' QNrO?锰KTswe~ WLE5Yb%er2vFc["|*_fʍ3gQ%ҋ=uiÛQ&)H"("T뇭'jzcGA\.'W\=nmTJ:bݚ?Ň_ fb \l0MrƷcTbJN}k'>TZ",|lZ~ /č^KCY1Eat*^}ՆT[/7STxbDL8qӑ{IT)Ea,E<0U`qVݙZ񶌩jG(B3:86w,ih㜙U47vbVS˚CGpY pmԻEr+EcNx~*|yv/uMz8ZzE[vͯhZkп|]VR!86 ?''c"٥h,NSm)x *כP&|h % j6_gk^qW!ĆTϼZ}L0>}/G/ B4c iNڈQp5)hlQw`ܩ#bolNX@`4 ƪLky; (H0#69|[0YuPf> *_빹,FWnq&3u74J$hU.F5?gc{-D+ZZ$ÿ:>f!eFQ$munZ:v o%mjEkV:rL=< (=㋯$ȨiO9֋0idk\MY7d*"mzh[B_T6p{z>TJuϓ z1 I8Y#q*OT+W"S8 AN!1r`j^.W&>v+]HǗ|RMO)c60'wdPy,C9-ox;8p!O}a^oQ^=CۯQ8:>Ĝ`!{] jkI)nTCBZR0x&pm#A-I%%\ilQhZO66> stream xڍtT>R 0t 20C tw %4Jw( "(q{}k{?{y@!m+pnN@V]]r<8 z#AE >9SA*n^@:'@0œ]!vp6ZY‚N`W5 PNA]5 G f1{8Yӓ s`axBl90@='@ۯ {\b !2ܡ6`Wbs@ V `97'Y 99h*q½'C<@Gs@AZB g<7kW3܍ sDe,99p7A\ֈc}Ϡ0O93>VApف~ v~v rt#&u9lC!` }3O `v(noq/)=n+sl`PGK]GSD~ |AU@?]NU"_{!qYL`-7̀@kćL_)?Rpwtf 'pa@j-Zu 鿣pBP;98|7F M~Rs@Z07ϷW /g !Bl_#>0\]A8GX_n@m^ bf-5s\?o_.._?vwuEt;ez `/5 Z4ġ6ZғccL (҈c +?t-I7Ղn 2.9˳|{s(lX%ܟ#O%^yFP7# 4"^(+5\-mD(9ֹ)b$u$>"B3e$D9saIuVD9W֜9I|7\+8&^bB|7EXPl]!qƠ1zn+ {X0܊ƹH*d׽WRJ8s16y|ҏUuSj|88zX>/]/+n%zcLYHh1gPJUh!:~&M/fU5ט`fZЊQ>V&ֺK '`_-r۹hQ~-3ղKqhr6JR$wj~;> Y~0`{GcX\dq' $}F{[i]vW Q2Z&t͍\oդQ#9ka}a ktk9ӳOdIx:8)nشbe;((vZӯDZU.v-B*#}Y"Ac8i\mA8Avp܅S%ٮt 6y!Tv RD~W< *mU# !Da8WTL$6|gH_y} Žl[s]#(8Ѓ9T }N̹n9/4FszJw{Hg} &ǻ%'MខybNoY1dtR2\D*_jV|MdXd d|&?CUP2P-ϰH܉3Aq+Oc a§ao /6@= ژA+<ietaS)8hsP]NI[^7 v>A)_|hxC{>azFWKdeY[ֺ%.+zz5gdF?asA07-^X mJpیp_kk~&ӪWUF׺7jg8$2}@6+;Kf/,vI^䪜HEڏ-RҤ)伤-?eڐ5P~7=LԒ43ol?~ ^{[E%0a!w9[^3' 믜i$חV|,5RO#$˶ֈqYֆ\ --ɞl9=O R7L,?Ah}L嚫j몕C/ɂ"3&rǸ]Wu*'} i%w TCAfWX 51S *Zj$ۺ%#** ͷGԒVEVr=Ax3UVLmJUM1I+W묋Fwj_@+ y{o5WndٛRc@1VjsԶzJ6xF.]XIӬ)xYeEGSΔ-EYzE֗{ךM!~|ƆygVDC6$^Sl|E =.VcWaƮ-mָH;.9Sݪzpvq;?洕UsH)HOxͤs:-NgDN~`QyKƻ7U}p7|!=/#yhHu`T+@~9G,6(*$hXq̪9/_DE=qCt:}K]e27fvfa=jq4/|hٲRɺ09*ݫ(E Q T{Wb YѶ_'Ar / qte]FpL.gXݶC';M8Ӈ G9f Zb_ϑx&L>Pkn f3&:I7{w%>]+o{3Ğ^Yo*yӲ糪XnTz 21 _.OC~|~ ^>je>0eTih?CdM9ބyȣH/<ۆED٦pPDhj^I l4;ozKCΖx<}c?qyhٗl"NG]! |ҿW->MeqcՀOh.Ł޻,I.MwQE :#pu?xH5쫜Q-۹f) M; ufHn*,X7>d -#LYCeTUY7\$fyiՋUeVC+V犻ޜs$A.UQ_:wN|Ŋ`kHDgu7SNYZxzI<>;5JB0s?(qijj?Tq0Q ޠkI($y\E16;l4s.]Ǧ]i[f{VΧ./{h]麪2CO*\+󷊔#|9g]"j_%,~l|8@NègTް9߮}KC0~ybA[^t2֠_øZC}#}lieQq0S6gG=;oIBCH%]!_ϕۦJ={R}G~ Tx0 lx5<~XǺl#m@0B&_ʼn|=7hjiw拜PmZe%.4QW;c{}zcn0ˆb+&Ek". ;UJ?N֞(EaRՑ7L<ٖan"+pV./sSTS;9Λg\<_Pm|&j@{c k}UeF$H[&Q(c=Hz&Oir[#5o&Xh[9`E/’FKا=sGqe*+x g,ލ7ws4)us D[Ӯ_>%X(#cB6`2 1NkcsH?r w.5 ̶۵٧LuUU+#'$ۗa[<'r7>MF ѹ\!d;0fw2eCD.st`K \iTVJty3o[>4mUՋŬ1AB ]~Kiÿ.bIJp\>JE5}-_yD^ݰ sbYwZY\gTVjybջ\,x=Wuiғ{guB1Na>b\ j_չy5$]W5-y%w1eS4W.EUPXp^`4[jEITgeZ&ܒ S|G6v]eh8y_o$$0), N};x7kN]|%;ƣST{1S㣤Fү,egHy.;E. X JJ0K~5vf^QYR-8vp̎MIn ,VO 6("cGW?<8 t HW94DWi>s>}cc8l˗aOPr4ΕI3VH}&UW `z|Tbż-(eDBy;6qx;Zuڽ#qzV3- K,irei[ CI&,y{f )Ovl/bLx$.yWJ 眳*h]7MwaYL fFҿIQ$`4Z/ ʦۙfY4z>*-ہsB1,oYTB1{[we~=tc6,#y { 6qz;{N#T)߀m7 2F/3ibP>]+Lm#8j7 ue$-&E~,m'!nV+ db'-+Ol՗Q.&K^w'@UӏŢa'lЍ+kx7rР;"W~  m5 Շg&zBW08XlQtG_DN_g &oUk3E02YӺSthK)fh9܏i'V5{]P8Q`c(R3qiйOnm*jrܟUу$}Z,&67JԜ!,fe}1pW"+/~c(3t kk&$;!L^+Xo f~^*f׮YT;/aSS)8Sݑ%_9ϐǙ7IHb#O:B!Q˖`X7~hh *ZIV"QX % \W Ĥat-QX7#P =7dBenu ɮL |-i"Ns FGE3=sRV ~#<BƥWFXxV>j25@-T[45ÔG jkrG.M҆2Q$ɾb;Z{b endstream endobj 450 0 obj << /Length1 1661 /Length2 9790 /Length3 0 /Length 10873 /Filter /FlateDecode >> stream xڍP.C0h  ]!ݽwwWWS5s QP458²FFfzFF&D /1"lkU&bʓH9[ @lHڀ)mfN299i0ZƆ6YC'sƆVe[c0_.x̝\]] mi`'s2N gh 33zD 9O*l_-mL@ʒ2y;͟d? j/ߎ6Zڸm`+@^L͉`hchhhjob24z%!@LP`_9;VSdʢ6&¶ 'G@Ưewg66S$LTm I("Ŀef '+#;3d3vnC -~`l zAt4tAޞT!dAd'~m :{@Oebkc72h+ iuBBnO: {Q0ߦ6 Ѿ?5T-5l_{uY_ϣ߄ H5luh^@u lsieA&`gJ:.0YYn #\Ym@ o˫#^p|?UGc:;Qc[{0tp0tG|m+bx_dml^M9{Lm [`0(q FL" #ojhfhm7Uou|F? >˿0~?W_`|eh`G\L_m=k3XF@n cĕE[c@ZAWiس[ &B=!9xUrAEmҥ^q;573bŗkBŷyBJ "71Rx~`9T]*S4SSdGɩhTe CΎu̧HtRi;xךw[#hD}R.Nhܣ",5j9%.FBs C0!5Q~叙_e(Nh_"~Dž댩f>~RSjCȫ|oJDMR4^?F4Ytƶ~FyAb]1`v(Y IP|YB8(6NN,b$ ӂ:+7OUCO8>_?[`VšSY9 |BHՔhVyT8\Zٰq3!P/i)C>} ֛y_BqA u+.nBA}<5Swٌo} J\ b`l&]nW dȍxJ>@Դ( hFVKGazlBJ&:i6=EZ=(oəv* (D8~6R u|ԺeQo§z>q!}dO`| d^+;Fa ޖ#d iϋ56zW9O.W5,G 3ByL_ ߛfǿ G^ EY.!9qW!7I^7$!U!]Y 'hT 6.by{. ,?eH%Dǂ L~x:tL:&c$i+7_-k̚gSau0 <1Keql-EjޜbQcټkSz -,~YLM^>Z\KS]Xe43[]4(i,.@A#p-r⺹=S{*ZQsj }76H?_8{Rt*s/Lq;ji:_#~nS e&}f/j %lL` -sO*zi%_=Xd?wSlCe@n= 9yԉ [_;4Oډ)֘ CSԔq3{_!B ccc}1XUktӧ[LZ-z|n6` h]1TI;p&Zc" Xhr;7W49k4n6 [=~D TM<kmYhмW0:u~dJ@Щ%4+b&P>TҹKJ ]*)qAہ<$e9,oMO4}t )jYseyM`lʜ2qE,[D]ϸk6(uUi6d;!jȣbkPMVFҡRG5i1b-qg8X){6Bz|KǶ[P+B^hK*|z.QwXP:hqRIRmH~MKv @er%hof R+h}f9&.(WyGK1+'g 1be W7aEu 宊')Oe&Db"5%-GҨx;( rDk[@ E ϶)>m7Px< ZV*- *U/ѼC_}^F8m+(@:y+ ow k@(tUU讑 Bp5Av HVA@ MXD7#¹Ji ڲNAkb*xVuXy\@8E_]lNy_ Z-?)Bc}C#(xG'22>|/'5wFa t]~&e-R̓{g$L/6ZLV,=҇)ɶ(U.@'䚥ܬaKxWUךt8kOAdTK(K%\ ,x[Ѭg L2&%曭?<)^p!洃2;6yT8+ krK} #N:"̘-˥Ý3@)nVwQ$2bD67 ï5N;j_o Y~4|{bk>_LN} WES՛C-z/f;C^A4y;LT6bE1Nێ]~ MVcZ2L,` qɫtaG,ơ!񭒚c%yI2De7ӧ3芷QY#zw=&l nA^DYL \#jn\ma(-?0v6 ǜպhZrR/3_7`V2-kp88"k\M3j]4] \/hI#Uڢ0ShaL\>%NkiU⣔!~NP8af1±&z%= j4ōE_|!IM{yYj5'@!z+阜('v2ݽrt7$A5 &4yir!\Ŷ}}jXwL.rVbZܽE! 1V 4ls uQ’(:=DP C Tl%jAxַɏD϶}N,M2H\7: ǀܶ^T48 IuH:93[(ył)ƽ&]qwÅ*WG 19EV(hN]Zg'@2~5Y٥@:E{Ao> gyB95!6wrij[<ڡ;ւQ)0ԩK=yu0{S rs/SC_]?YWeyGwL1.49iF*Ueu>mܷ޵5q')Q]#2§LLӾ3p0&Z0q\} t,9yW!-sD:YCE{. `k(ʊ"VI+da%tS-JpwBACόѮF  Q#g6l?|rړ| C4 @B6|62LɋofFf$6az=T;y Qa}GLF< B Qi-oG(d"6[pctmE@hKOxKRYY"s DzDۥ"WX6&7-"i!xG7P*wtVŵKEwC:^D6+M1 kgc$h7+5V^FuV2}I ;`PxgƼ׬i}AL.c"Y"XwB$|g9m.>m4$  (\/_YhM[bky|QA!n94[ P3|FjF%mF &ƧHZY@KQ:okzdL]Gk8CD衯UiڛΤwl{alCE|WJh%U~6b{"8AX@PU$43Q16xP_Ν0a$}7" I ! /\MA|Kz_ЛtHE9j:6\1R5ѡƞP=FܮʈN"A?Dc3&G@9-YOe +b:/au5ӊ Q+ PS~qNLHR35ilq775FsB _ ǣd6:ڎ01XaMFS&MϮT]X w(6(N2 Ac&ӛ򝬴Qke[[dtO9tn9}b#3+tSl\ ȍ'KE/!*r1:8(&C`Ն8qRe߭Xz5;~:x^(1#CH5ڗ.M 9*|NIuw 8U4uLB̤b4a?Ѻ<{b.{wkOA{rxxCѩI^حVݑ/G0UOWu9 B`/|+bU1 :x$+#k} U=1q{1D8Djf&,3et&!7&Y|xN!?Y. ^sU6x*ǎMS9 j6R@;"&НKP r,SMJluOIΏ`>bc63xH=>{.ѥ}J:Pf'P&+ɀ>ak2߻7vׅ/`= Ү@ kԘ ~+TPRQ\Ljyɾ"zƷG0a(z\4- a?y.2g>SƲɀz9Y]& kP4c3NC m wo2?bP<83jU1<Η̗4:Q<4@*НZgegf+8# fGRCiSTtΩ} 1BRpF+#yjU&=bȓھf|t_K'cN&T)?&D!&\,Psu1?pByNͻo׊;'zB2?FrB7W3/wJr&%ziqe!+_R-(UZ㍈-rF }'2Jj7qs%d J7 D5*F{f'C҃!]{,5)lϜMw#^q糦҅n삩÷5B*CК@mNA'"t9"B^T  +̂b_sz5bD)If#AL,i~Sa b .U711t O796tf%Fɑd ɾb޴zy=אs 櫤Fo›L]'s_EY =L/k^D4CRK 㻺\4 8z #c#А$ :3ĬUEُhbAUWl/yU>v&-Q54.7ϷgF߻G-ҕ4"^D5w*h68޵b)&hlq3Z[RښjlP2*2o=x(h>ov3hq o~X+:ځπ&~%={%0xM+G@Tm:qѳ8:[]q|}: ݈Hպbt tZ,s9PUuC~A!1 JXWI.?S:[ĵ!|"s|)+*I"УPR@^̊Ӏ yG!ˡ!~kD [ꒇ,yL-6xM E]Tw۳|L8;([#V91ӄEb`AT;_Ă2Zl9J&iЪDBF1*iy|5$aWƒmP[vaܑʼnx-y!͑q-͹`wpwሽ١fK źCܓO:t15Y5|5Sr*($fNsmjz`piɢ%׉L E*PʆS(,m=}]) A10J -IQ-mQCie_,J\Cd_HX6 ": 9"ǕV i3]<:pJ +t*vLj,7$3@$N?7 OӴ逖|-C=| *T_ ď}ҥmRi;m;,$\"g ʎS WX1ߑY|U9ۮT]o}Zw)Fu]Dǝ@ Ó 5 1zO2yq Ci0„aR83:Zcm*sZ-";5-41}y;sj XFS^A (=*e5]/2RAY_C0xpҒ`v#9&mp9U)"kw#/dT c)ӟ~3~P%p:Abb3<#~?*|cZ_^!8$w۠k8zçebwa'|N(Pƫ Ugs9(hLA ˄gv+Ec) Rd= arRhM%7ov*'ez#! 㣼M7<=/yE sA7]czi216rDw68}`3 @//>=()<->@0|2;Ml<4kU4 .e/< JJo 42An@/dӭa6)u=2%*e,P9NG#̑M ö*EZq$ s &t3atGL*%4|LS 3Luev& +-xZB{SzVlYkr%ߙS|vz,"uSDGл=5z,RbRvN E[VQq{W¬ǽU7nL趇 VPk?Goaط;2E> R8Wb΀rј3Uq`%H'ym-T>)xC1UM"]מM$fLC5}|hzM=0,-mp h%sE̩P5CwՁu1q%6VdN^> stream xڍt4\Q=Q0zѢF'za`F[5B DDAD5?)~Z߷f3g9l:|rv(2 %MMU1  쯛掆 b>E(D!5 `0  rp;@PC!ahb6;=_-;smH@q`O"}-G N)G UB@ˋG;G@{_ZP؟G8_e! jڮ0/n?f*GNڢ\\H8#`? @vP͇zB s(, @mwŠpį~޲NCbĿSl#gHaGU w*`]90X쮐s`޶~! \Q=v?#CC=a!nl`p$c0?6vpo=^v($?3c(oOP ž rU(.ղ_pUbZ(,maXnboNQW!ewwC],k=0Xh:@7G0;GU1PX6Ap2f:/!H qf Ac'EcՆ_6 E(uwcWD?Vv0( 6أ܉}_"8or`[[07̖xv e+T|R-Gŷ^ 7D}%!Kij9rNSIj:#;wl.L$3L7Ng(ua%o#sg#{Qn&ًf]fl jq/+zF^5CZOqZ,R-ďȗz{):cL^ e=T)ES2EO}`W昒,+ҊI 1AM;hR9vn~6+w>Q aKJ 'wX}|5͸#A%ßnD8㛈41P[]s$&?#@kKDFģSI-zm^x ž`~aڇRV&JxVLL]_L(0gՓrK,mr/^F^5`'?ZU+5/&ӡ b<قyXms%v&ABz<W|XT{VZw䲶`O_/wvaG0nG >:fɺ;qNěGk8 \NcOJxei5G3] [e 54|Uh\e?P)2~ؗ\U/o+"qͿMn Zhx(l=g~I3 8%SB FWYxPT _NԼiE+ruNC6ܹ[eM"V ] ? Y|=pU "* "m{[z47L@rR!wR:KMgk'N Foq[<9'9&dQ7{$+ [l¬4 x-5OM:sf;ygީJ0ᆃFh݌`kK=i_ɨQhz.t,:ߺ[ȧjGVu]|RM|%\V[A I4K)~!'#؞-_[{s6Ͼ< 붡fwB*;Os;]jyshdڊ\W;R1 Hd0?K$Ҽ;uuZ(if**S%!Wr[}Y {-q@yr?L]7ʜuyΧ- YnDO盅$-UH;]116U. `Z36N4>cC^|,-ȼuA>[̛7竘]dNL0C" 'Q='nAT%>|Q~Dw 3,Cyi.)): CI a3w[bN9g:TLF9Ŵ jm Wk?-;5jqh}Rt<3) $6~v,^j v8ӛ{9L?Vl,E\?>Iœݮ7VO\{% /l+3-%< e_Jq}rmSŁPȮ# A*.~tN0[wEgT PM+}9Ҹ(=ss0CCCG}~|A4X6Թ*.\;ߤtv)Gd+hj2E]}2lJ3tWBviub,OM8/rk]_ JW!%i?kX"".d&҉dvĂSnyc<sc kYI[zwlZG<96;w{S&\n(J)[0S~xI`n|]הj#vk=ǁwmԖʫm1%"kg[_vH9˖UͭT _*D`c|y4z&l)co5HMhU ج=扽wS,훫h%]bR0<+8UrfOа^Z! BB/cSZ#.mRZ6t3P"5  YtI>=,R&qOtyyI3-m=!TUꀜ4X g RfMQ.]b1CR(OLߒGEH>BQC 4=wK]Y\ } 89,Yew&@1CuOduWBNj>9nWrԗ˫}]#P-RjƲ8l] 98A7*zb^}vBEb:h+1b2z;jô?82l{ OudQۀSqUDfٱ+)( SX03]1V>b.9˜:qoemq^Z2 j# 5O NL4)S-g}maO)kFÕRo2^_ٻC5!FCʨj- es> F$!Ns D35J;T6>MRdʃ]Ls 'qq:D)|RFC > g|znl%B$6-T}Ƞ4('+ܝ)s;ia}P'5U&ۉd"K z>%vp5׷;L3_qQx*az8{m0"ޜ 7G0":_v ލ>UMWyX)ٛ4xufkm9~$o'k`y.$E䲗6ޭ#j:dTy0mL`_wvzwlm\HSvbdO,F[iFjnZE&cX eI&tBBp_aS7Ts/9 ^ R5-kr~x0jz MGZ :g9qR"QxEyR7w7jޮ>'`2p#E7Hd`KNum΍:0"<훍 1KdfOFxPHkNjEZxUlikX"j}Y%e:ᬩt&>-bi)~اԹ%bʻ1],/ ?'IFuׯqfi2V.Qm^yϝ7%PH0BFϊڍKq3jr@z"[jx[bXXr=aʏq_ImYbB,@lۮg ΍Wܴi{ 2QB/dumyvpv.ϊgVxbǹ] Rrq3T[kmAZ6 endstream endobj 454 0 obj << /Length1 2783 /Length2 23962 /Length3 0 /Length 25521 /Filter /FlateDecode >> stream xڌT "un<4N iCZBK;x7{1̕s=>HI(j` r22XY,,L,,l֮v̈Z@gk@WMȹX\||,,6:8$LܭL9R4fV^^n@gk3@ hhfbPw0z#3 - t:( ae]̀ p 7*`+]W d \=]& ߁&v.|wk;Sp_MRblbm{De[;A.IX;kbdmA 5n̚ k'7?!` daae@O3+59Y8:8,C-_>.&@O"++` !Tc;[{XcX^ ;ΗY^WQYN9x|9Xl,"oh+ p1vG4\Zk)9U м\ gOΎrMmbomOXn  *ͭW|DAvEhbjfZkev g>_-3[_. $c8;x!8>hKf&+8`D8̢M#. 0 Ŀ v&/n^俈,/ ,̲/,_¿`boj€LW* 0; +&d^ xA`/LVi 0/ G 41fk\MMl. ;߿pA,9=w X@0`)2Ә L ^qr2u[@p7&@NoKqntX_q #l? xL? l59xB60{3? ~_ 'n6p;?{C/o{J~^.G;7?-N/rwsrsp;Nj]y8(V_r\( .bkFS=1Z92xe$kKwyOp\^ 9p%o߭ě9O/a O* h87`j5JqkXprK;gιͫO+W;Q7$i.EI}k^kJPm}0SjF1/QCdW+M2ɍnio=% [ە\H%1A9SdpDt'(WY#$rq~1>ln4\(tq/Ǩ|vpf|z6 d!3$/22UZE껪羳nfRL.4r&Sƪl6pf~[j갰I& DֱlqZxt_?](#LhJ'iF [:ծ Dewk&|*vϺ¢9Hxę{D$ڌAsҳi[Iqz8MNdXjUɐrl&b/u^|Y鮭H`/[\#r揜QCA}b!aݼWWbXnO="?ip*-Up1Յ`J~!Nj_!x1^P"+AI?#KD~^U@74Q>Po/@k>k|!^ 9AcW_N"|"Hdٰ!Z3OX6r7#FSh@WLOYqMlrrvJ@ڪ4~\+7](,dxЉ:L{ 8>&bҙD^ 4o"ûؔY&+dU((ݕ50&Onzg(-M+] 29+uz/ŧfLWӉ\:6\"ܝ+mFszM2˵JxH=Ncߣ5a"\I_!-ox^jzD$_͓dljT|baU9OLP%C'v7mcmykPa(,km7GH  l9|qup2H (Wĩ~AU̸?QU)}SĻ+GI3"`tW3x n6ek][NGxg-R=^WnhJ2KwgyUwNJeW]+$[(@ 'Fxhuv$ٷ )x2(PYxn M#(Sѧy_E$#dm'¸VdMgjkLxe S:v/b 3EřQ%=h&h8tRN9 ̬XߎGEk@F"8\2+*&cxCXFUYC?tKYJ6{c+c{M}JUٱwgsZ"& W(3)gZ3NtYf IKhާ} `GcgYё1o:^Dڰ[24SքCjPʻP8w1=b! ;UyN4B7g/%!Jߣy)dDg- @v\^bkU?',}کٚО j$xl`=7`)-*?tٸ*V^QtI#W}# Zwǵ"CJJYOቇ.h)Y1Neؘ$]{v+X]="ӹݹ Cw%CsJ'tKK0t6n >.Svm,̀79(<.jY=AG\۵\bVd|dnd] lyd$ZSY!d|9 ]KO=%.ұaZXwSb& K;vP|l%cgoV=Ѝq}ImQN|<}˧2qٛXO"g:ݐH{)ibMR؏e^-2,!.:)t%chjD}ORt%ا1J+s\E㐼puJoJMܱjzi}:=:N@YQ׳:T. 5%?ELȇODSUF[u|NJo+m5 x]KzrNsJ*3 ZN! &INψJD>R+ 'i˝=Cc\<tcŦ/ )G.0;tWR\.O0ME|⼦II|ptYp@Ha.*)cWÓiT m0 (v}jxv-{CH֌yW `vl;oy$o*1i+D-)/uӰ,[;_e $I,RV%WL"-nT<9e²|^i?/HOc`]pΝ?l߬Mݰ& q*8 q5=׺0CEY\{b2qҫXJvi#Q5¤ŋtey]Э&fH&fb׶({F'+ba%q+(E6ya=s9~ƉGTڄ}%Ӫo)dV wP]e[tOEfAXIFŠNxJ ȠdaXelCKZL1UEbOu$q Bvmq_&h2nkϘc_Q6lt,"I"=?܄7V$?Shv-NA5m7s?)ni2bEsІQ9s/$_0,AU7Qe?Vn<\Nt$~L9v45D W6Ψ?Jp{]H|t ̩˟q`*&C9wlmk>a 4F@_DRZߟFᰅvW"NC2dt)c5g!G7 qWxQ*i7Ա V_nǔf`&ޘYd1h۠ƴvNkτN=)<8g@˝_unFinjX Q\'VcOW9W"%-J,y(z Dog 9K«7Y +֭!_lbò?N9Do37$ F&SDݬ׊"[bCsGN }c.NH^O:kY]F kz1by.#L{c>HHT&sLBqlvEs#zQŏ6lEj|8N#d4>4*B@B;YmYq4:Cϔߓ 9 _)e\+ft"gNV7( O pV6IktĔ4e͎|0 fWJ͋bꜼ7! cJ2ɺӿYjjY44-[JG+٥ŊN3T"u.qN5'0fCd@ry;C|L gěYWR-^6:>(y6;*݁SI|U]R1ns, tS6Jumh+5_U>cDw{$ C> ~\*FAk5-Jjzy\%L?EHwfwE +pv*)]Úa;0rmeM'XIo$?(%K`_l;ZHzA˰ַ7XaS!#dAXg>=ո'`"X#X/1:JkN%J 9rrT;58v21D!bӐhl£F']n-ǎfl CbN&>H$:e\w/ NlEI`SmL撘K~!/ȟ4F2jRg0Lغ 5!z=B Q?yq]_*pP-HUÕ{rӾ)+5{͒);z~<lgјRxU_Kyj 6 s+V3ִTԆ6/nϕ{_;^+k2끭ѭ;TӋZ`+OmX.D6laTu.txֳ Jty^U*& ̺657naEyf@6#d+bŮC{>H,e@ftj:9 xX7(/*v/H] }#^5dCEtuDu̲6̟mδ~;IJ" B$Gj u[m]"ĺeUʮ.%R:hdp#h_I!؝_XWL%1 !(!R +{K,z=-M[oS yKhMF[eLwΤIq xyn/ݽ&r9F;C:];v>u5K=?}O-EJхT3ӱ9c]Ak*U[E|:$E&oHPbB|~[cH@tƗD*h|"7tѢ'u}ikѩW߂O6`Y2P݈no`LLS.|#>R"eKݕ%3 W".O@c}bO~|i#8iwQ ,6U'lO'}'BaU}1v-6U5MY`k$ _a;$ *T?Cۑh_P!WF>i>%*}3*bF% Pŏ#?=AM3kLZdH_Je0󩠖:3nx)y7aѡiYHԹmJGsC~bӾ͵ׂp!:M>F:ΧɃ' xkZSS'BB`Y&u[3B3aGS31[F-mX* 1)x#m/Zy r {3WǏ0Urߤ2TV Uq ~k@>2'ɞ)\tMN D۬#1[ڳ_\$T{$.C Xm}GWjb4TyW<\m;d~}1v/ƿ#9(eՋ;'JgEҮl"x,Y\Ǜ$f8O{h+45ekxsTݍ.k+2Es)+'ܝ4=Q7h1D{!ҿW<qz/:-dIlh6J葏G2;N|$P0cKn;XqU#y"?XqqG,/)^F"vWzBXLUdnmb5yĢeK:iYgqiz4;eKY)V@}l/Ĕfc7N ʣA PVͧ6ID[{ustòq2hA^nȗ21T|w}t|JDXYj^6lz8Fuz{H "U*Zkv?)c#Z={hW]wt ۹T)U!nDjMm)ѓo?J$l>!)Q'%G~>8ùyVj=# GFW'7<ʘ9&&)䀧\{&3w|n]g$afC^ P7fpK4Sks'vymx[ b.[7#0oMPCz(InP4=u~Aԧ@2/'lf<,s.{oTb.a* .DoAtr$ 1hwMekliY aM6asIVfRf&ȾN O~ Tm8IQQuv)x]^X!biW_n=` WŲHY+qZgֶL" h'KۿONo֐RgՋIf'obg:Wu] U3 Y }A||]lR!Eʷak䰺 IINmu9  &2ʫHlhꊊ2*MdX2+%eF+{O|gCts;wMM6;e|0,~7CF7Z )vﻵв|CrW$?Qҳg`,"5|uU-ַ٨DHb Kj%a^Az_WnwxTCrjCAa\0tZEϒ@ɐےa]eƏ ;Bq&Uf .T8,DVhPNUk:bxy @)l#zD "sR4~Fy}H5v'\=XMH{tp_R9;*/S57xPqSf`cZ ~EAQ1+f|m .sG)jDp  a/;5[zm(4گiFe7~C\h]O˳LQFd ©k;BJ3o0ee:=tN񅕘u̠8BհFZ)^JW :*T̪Pu )`s/ʚ+7ṋˣmЄ۫lNXzU+lE}}FGhc,jrWb'x{CkYD< tƆہIse]kP#W֓T˘C:3nnV~a;q`9>ΐÐ8.<~bQl9j!W*G\ą$N/#ajqdI/uq4<->n;{6aqƂ[WO2*Ky|(T8춖Ah~cBSM%dtM7sMQgOC?'XGL~5'v(QOӭ3Mc$n߻}xuc\cׁH>aí~$0myFK`ny{ev^d/J&2F,| seȮZn BhB CfS'9ZUq-bNEI&d Z_!''$8- D`1|Ƃe5ʛjg3C3l! Y t|햝P3IySzSpy2ӴcHVÍqAA<$R>b׍nM? 䓕 i)~j%!zr#V EL0< $H{]w 51RFֲRC+JsW!H\GnY b|{4H禀nÈ9W;RdRoo,!=wgHm)<4¾kI'\:yf(//4*o *kn4.rppAkNQ9jn : ꮧ!64DHTu,_a>csWS ,1yx/EMvdzc!l1u15 ^6)짍A,,Lt1cY{ү7F򩺳u-E4{~O6ޠbfIzwmEɸ(oY?ٞwޟ$7Pi1I<- 4l\9! EJzAPg`zp"qg]l{ž<ֈc?]1*cy Osk"o'I5eb& rk&"x{4I:"Z≁.$v S<\4X!#|YjԦ`bwjV!ୈݫ☵\=BASzVm3\9+< m \Vy `wm- G\>#4gA-n%)p+úAv8zǽƉi%+sMH#dG {n79%mɩP➠Jv̮嗪?+hKK ȼ@?!>Rh(2'OGR l&AybpؑxZz_K ?%6 @|azTM]+M)mVL7 7T b6$Hi@[,JY !{Bo0 7J6z]Rϰ0ERGdLqb uf|ANFy4tCi}hے(+_ӝ&|DDq>˓#F#N"&UL_y uc+MWfմ`5ٖi6SJs5?Y}"\Ǡruݣ=gs;.Ht32SХqEB,lߦa|0: ٺqA*D@t\3$QFaBVI;~ăE\9PZ.:Q3Wtd?R'h%~нRFuR)?f%㓇Z5|5 O2騡73GڅA]nb,lڗ<VoCwpsVMt2yrҼ <}G<Apt+y+Koɩ^tջ&y_Ҍeu/QHG*|ڶfX%RE߾z_'Oآ :PXG{DkgJ̽P&&ZjOwa['U8<X^șLkDu8$r/yWr%4ܲ^=X09F'/vvᦾ t霙Vvyzۯe\dqi0 чPGp<|LbNqw!xY֢-w՗֐76Oo-s^k$/qm`BUlt/OKsHz"vܪ<@n7,H<%DQ=4]C~bԵ3)YYy2x7qd\R9w?+L W{T\C?qMKK-e _T-5a@IB!l]:{J(?}Yl$; 2Jkiq&hCWɂ^:zo%NfQ )CatZ%c/a'Ȃ|4ۄzJ]_i,̭&D% M}|˝lz3XQ6׷w;C-?F+ntU&)>YM3m'*-{RNx O-ҷ8|*6 Mk̬Nd4xr%5*r;cӪy^~Z!wkukwįt 6{S DuIʝBnT.`:Ft~.2]1kSZ&bGSLR*oZFti І\?ēq_<9h7B6=[*uˤ{'"FTur%в HlT\r[9޷|i"<^ Q#E=6$ l "eF2vn.pYݝ+j(ȫ0{(Ů{WryҪUO+ms*E D"š;Moe˷?C; @r6Wo]g"sPƞT܃~%\( {Fdg&AIm=F0 # LMfeH*L<!tqкl<\9k#X ;p#޸Y-^MZATcuXOH 8\"['I#I,bQYOqe29QRMkm~ִsReyroL4y0N3.s#<*~)ZʣJ^ӑ0ξTv+R+px' S)VEmW\=c͎֨r_4ig  $i|M/:(d%/.IP:a>!$,Nw m܄C@[V<tPK2/\dec=$>("~A (<|2q?dɅ"̈́AZ*ys'cl{uA G`hWpZSADm!_8! ~K @VܶD [}wNlCc~zZ  =|Cn}ބMN䓷ɰo7M},a'c>Y?]!9H~t1u]#gvg˼Q]Tҩ=q>>U3j,qv҆=^7 C0%)rBچ]CN y2{eKse&[oév@Z)@`lT1.C_ A EEM];j?'хt=x/l@ZKL`"jI-f=blBN}Ŋ@i&˼>{5WM**(,iR:,Ҡˎ'Y̡V.;zWidYl|Iʪ>Gȡ!G / |_XS[X> ؊)G Uec'w$̲Da=֚B:y9ȇi&æ2?L5=qü|"cPuPf2 s'(C7C9yQӬR1YZ!d{+s1* ԾrxH3ٟYL6~޸ hH\'rѐ?NB}F/#tO9Vx_ 6߳Fճ|Ah 2$ziԃm"),rěo6%LM+P_(6yx ZPU6|dkCk__b8Z3 \kfCE[+h}oh/g&K. VX+zU5' J d5a!Ƒ #O`0}V2_Ȕz+GzM)sʓ}e%h3-獲Gv #!zE ٥ƇjwC{g̃l`ފ2~ \EE̤=51Q0NGIj/tAvvxG: wŰ}*ڝ9Zdy!g2W!Vc> IAS(ڮ p2TXX}Ue&Eɚ7"s$HwTHVb V@IvQVIKYORT;j)!_H Wluz[ggIN+/G *5k)W4u3b.i/֫QbLt7}lRjIX5ɉDiud k#8K57c^GRmt .tMd/O'*׳:҉2{$8 3G CHv6D ]yt(onLm86D'fEw݃81WA.7􆞬j;If*cͭ)WGbPZ>f/A)a~C j0v4Ig=qj߽Cἇi]:qh˸%*hX{ҥ>eF^Ҋ[:Ջ,uMJlR'!7ޯ̋ssN p\FcPcrhvz\^?ӆ4yа>5X`ǵ@5{Lލ+d`RQW&q9}K׬/kCfsTBq|(nTn;,ryv ъy͢$ܤ|'SUƕf@-@:-(ZP&L^"YwLJJk~q(؏o?#wBlI6g$l SvaHZCK\v]-pȄD54DEҬyrA/ ښę: < =m?7z߱3ˤYFUaɞk'UÅ+^Bk>zWpA:m}fW С7Yy] Nb|^M%Ә{CY1T|Rۉ|ɕѠTZ>F:gj]XE<?WPxPZM{4e8 {$C"5tMgK/gbrN#[c2PmfSsN!˿GQgͩ 5uk۷:;}R%ɟ@(m|+Aa,g>l1XRH}QkcZ߱K .)a7r9O/BU$D6U/fL;Iyun@e)ۅ,+9CJX$q6ܺCx[NE 'yDYjt/^(HĊ=Md)LVna Q]?;6$y B͔ 嚲fm̐U"U+N?8f[o Gjn$j쐡H( sl%}Iiy}Лdp}{߲yyR s~vY>b)} ܬ^J~@)MlN"ঌ<,8\z$܍yMώݘD;~ȴ 9 O%1>)_Ӟk쌃ƣ_ B~6"ӳiu9f.YO)f2Fiil `/VF,_⎚$)iߏg@A sy<@jz%.O4wi15=4Z4IK+ j" /Gjxu$^-yy&RCs@ixVQv44<=C:9H)e s"EMB g:nQ+C8yt魭ߕRɠߢ>ETq!. <7NLeJŨW=8@>DPs-Sޞ^S0=.ՙ\.^iџ994&r0#1Ϋ> ={%k~?9TOq~̉ekff+.R0pH#ecHc,eJ;epwЕj=J>8Um ^Ӽyv!ٯ.mC;\[Ӽ,DXsD$cAs1aJyRoN6O _v+LEl$^Y1}p.(3S- 7!2HA&k> k~lR{=ؒNV*wqC>uS; ݷ6!y2, f?[dZYڄ&-TCKɾ$7z;dh," ʚdɘ.i +zf ݼN uS[̟QbSr%O}w=;& UY=${ĩYwN2Շ.^YIޣhʲ:9؁%al O4|hȬ©VR\)}#`jp"XP{m`~Ƌϝa+eŇG#Z d$4:Q~ΏiRǎUht٪w|XLwrΔac` ֘U]?e=?W2(nyΩpx$ )G^ 6iD/PFQ|5H9{VkwƱ?Tɖu$7bg:4 w0{0S)R"t!ToSy w,% _DgBnN]-YհPr*Bg5"zx¹!Gds<$4^;J-hNȪ]dɹ:P;*,+i 1d z033) 8M*Xjz=66sعEh|ޑ yT b |[e}RJ^nKz;9Px 5#vq!7b],Fce^2,nF G~bmo{0ԝ\+ 9/˿2vO5h.ycDWT;&gƳj 2Qh G^n+3 1&K=^~3\&ș(s7w]3w-m99q7 t}9e \t#|'26Y`UW7za;i|=>{n!E%LQ X6n,ġ҄Ju+-FOHd<ٯ"Кr^sOK;l:\ nnqGf4$fbNh@XfΒS kOj]]w؎IEoI%Ô4C+h4`G>$5*a#%uQR.z\QmnTF6XV&+w!贛)4 !?taMB4k3**l1LNvBFu{q~)ԟr#Zkek#4avLCttNFd&Վ@)|o\wDLuӥ],Q7kyeQYF̯pR9+Chx#)WZLAJRl6=ڀ%[Mkv_=u"ףY*ġZrnEd;40[)Vr3SD43ƿFtNi%b+`1#^-+0PPzGӟЯQ p6)W!.!3l4'/ŧFV^ '/w~N> WrIM"3o{QIOEعvUgpdTԔwz3F/d8# C5/fg0#xMKsFwi}ig;W[F:*Y$ 2Y1h ӏ )P^2GJ2~Ⱦp?k&qx//(U{*LB=|s5XLDM7ۑwg=GA7f,RFfθdbs uӲ~;=\ˡeY,YzOJ!f4sXv,_$v3 ɽ2{\'NdW#pG ~'wī, PN"9+n}63nQr[HDզVf,U%J^[Cl!Ýko9/x^ޞzĎ(I(! ʹq޺#;~urb+MU*HZIJK*b#vIixupnu;$#f>˵#ǞbL5?ppcefjѦq [r 7C,fMx3>86 ^)^ۻt=$ `5U̎0L`1s $0ڣi.W.49}V!-; vZ .;0̴.ViJP7duV b-3t_o4_ ʸB u4~g,rJ*V7D>v䞖uCOkHw\ıf*n1޴h2uhź | 3ڽoZ08"T!Rh)ɶn"%'w*6RЗ۠<ת\pS:Fod1g9=S} )` H5'QQHnˠW:5LJ]=SHϻ+ҩqĔ)k6B5}-ruo)J t3{y'No:аW2?NOOp?oSAzj\?ϼj꩒\8fmWP4BFz5'-e74m`4/{!on {I `#=VΧ >B_6ؔ VEԽQOgL5`.:@$\w(+x뒫9Uqw{FJ#SH5$2z`^6 ~{KGbBGwKJ b6Qe0@/] 2T6z ;Y>Aj} {`#n 4+O#^zZ-;Wi naԕkvy_\WNj h|ORU/ T8T?:.CAmS>'w{)ͥx!Hyerz_cSH̘/j>4EPF1ۏoH*7r25OɁ^3VFN@7jĉvH~ 5iG._JSහ{ofVz 7n wi Dq\0Pk}ҶoBTKĠmȬۢ!6X5,DyVch8'hJ>xyiB;te3mc-V=%L$bkߦ~^e_@%\?S-{4HٴcJ,:ve_yza,K4i3(8C\S!j-_I ,}A cGM6zl*RFn|3GOGZ|ˍƱBS ܠ=mmj593K0b| @Ǥ[mDmC" S֊rKx RPhBojǜ2ׇSmF_\ٗ_eXB[?s ŏ=WKP#|6ip@RBO,Lo۶=Fb"MWbO#zݍ7 #4u/p<]'D;2e쓽UCQ.| 5wĦ}ָBo`9h^kPi4S~AYXa;4H~l^mg _ØD"'c>`=H?AGNhʻeN_K$z<6-G=;=URne8-@N IQˣHwpG@^:@B}qCBZS_y A 'cr)NS|/ʢR)ŴK[=-tYG&ŇH/Ǒie(k+ZB̌mX˼؈QF5њĄD5 L z}R|piITNVUu~WN``-ԣEFc犥0ͥLNJkrhc/?R|8C-Mb㟾z\J)T ZVCf0"4E ih̬Lm>ĩLcV5$M\|+(e#vNpg5!N|[M9/2V'ԩ0ICX.;&?c^-L9b \lWhP Z)GC%X52B&pO$0pPkrye/tn7hcԱ9Eǝ1d0-Dr?TE>ȇ:RQYCuKvraJgX>ŘNÂ4(=9ѾU;5ZW3}]zR"U3yHT}THaۘj|4 9D endstream endobj 456 0 obj << /Length1 1480 /Length2 7459 /Length3 0 /Length 8457 /Filter /FlateDecode >> stream xڍTk6L#!!݃tϐ t 0304Htҝ"] " y9k}ߚfkk6f}>yDCM=  ('_a|6# IQ1E0ꖧ ݜ !HT$&@H "jaW|68 G.G5$.. AB0&eq]Ї[C!(j)eB!$<<<ήp /A\!Hw `G?>'Eym j Vl H}5 6CCu6?vUj.[[Ý`f:A(O/ E;o`{`.|+/yH( u%QWSV(!0+)Bcs0/` a0A] jQnC (@\Ok{_ IЯ?Bn}\ w>ZV;( a|{H' { '[{aN^߯<>{||" 1 耡OSφοf ߽෦8Ph}v?nHww;C"z uMj 3fP99}PWe'Fc?q_CAt_odY;޾9\o;^R f 5a"0 IPDEoapm Vub_?H 7F[ @E[?oA ֺ% vUxB֒!!oΪ<6?HOms!.pSV)C$J'rLW>[q[t.}>MlßH?|]=ܖQ#f z:["3^Ϻ҅Mݭ*G?Kb 'rpIwRթf|JViS# NM-3;ۨ' &VDbD+jb-Vډm':=ͮ:\NZp={:&XH8zn;QDewK DJ -kvٵKCjNߏ[#64)l A;խ)i{H?IpcXWv efmZGD5F%TY&otw2weu)1zM{'Ү_F:rΪlr(fcg2k<Y2J>~Wv Ѯո/vb'D2SV۳Ppkqt]' oRsp,-ʙogұJWv!)1|T_L:\Ÿᴕg2FH_a{PP 7h>$ci-!HYJFޓ{uyюIZ5@LRᧀ/Nb4ȴwC zŒ/=Fd[0YY9fx}.Yn}_3\ }竗|'{# _XT 8M&gb?[id8s鍎/@3֙{߀)c{\C2&f`{Ĉֿx0-NA-n Ux``Uqֱ2\M+ܼ&((d5 )mU)bIMizm"o+&p7 (fx}GC0ʣLH"`-}O+7X}~8a:VEV?ӄE5}0d%}p"dp-yoE0pĭSt-]a9mcZq\4Aqǃ=IBA`\DD&Őpsl}:>QCÃeSժx v@J5d#eIKw_*srhա8U[5'ɱ{ʻ-1?P8S|գt&";I]$<jRq|(hm@YE,ߓ.N/BnaBlA%zhz돥 22-t[aDa %ն.|s)W.p\tiEAVHB5w0N!u´OM_sȇd<vaX)KXzZzY({뗬x){{,՘0cj~p25}9*Tz$/<}M-z(glkƿ 5Aoc*npfb>Zl'=8ܭ ,ӶUȬ{#cQ|O=w"ދCѬ:1e܄iiQϳxicĬddټ{fQn19HQ$Ez9 *FvqɎH[sO@^Gjgޤw?,qpK8XFk^XD^&VY"؇& %i;V"6dcJx"wk /h;rO "2?3 s6kM׹4z7Vl[fT>),DZR$""K~UBƮ]H ̪8?cxq~Oʹs{@%~9 W9f>x(rͽ .ԥts#Ӛa%W;Yb <.8/pdT!ۅYIZE5P2,t2?L k}~&&6&G),{H}vz_ +;DO1UW/n|,i<.ǢQ砙AE}0 UGHTC>0vK TB/;z !B%?w]hMx]`SYYUm=jo^7"I!*Z&ZTaCWs+It> 2lb Δv%%@Fkj3rB 1Z>ˁ9V M==JߺPv&̽v,0'I!04$G/pAuR<]រjOXm LI {z>%A}=1Z]zǯNg37d }x9\ˆ52p!D/fR0|j@o%>bVԒ*-Ne'"sd3f?cu<VZ⻐Ȏ"x!e~} sJdzP)WH!0%ps3Zv[~614Z%ӛDz2nfEr NWp[(2m6J{rvewz~S$f NcMrb"#}f-"ňWt<54D"um~xNO$)(@[ RLSfSwA}v`2|X/mgNaQB̋iđ!icx$nkEXi묱J 3~j|PBLzf#5H{p]&ַN?EWQv:7[/g?HNK.=3y۪ލ`idv}g؈p7} ,q|6%qݞ聸_&pP-uQR_Ϭ1Q '+M/gn,F+jTv;I@M[ZKe!`}UOep@Ii,IC"4lQC_Cz\xd|%,~[r8Ӫw ,2Z3*P viaiăInE޾YFjU+!ەRiz"#|ܛijqG Wpٍ y49^aB}6TY 8Co:vf/}\K-Jlʹ }dDw5GVv'a>Of"{*oRDq̹'5U%ל}Wq0թK135d4Ƹr[۝>svu/Qxn,$]q\ip?fqHT T&ؘQV'VyFnKϼ^vs(BgacK]wմxGmM*1T}Fƥ&L#?3̯ ~ȯ ׹^nؑ[Tծ*w"^R)qt:kFa wfawt}>C(j+R<9%={v^|#*[箳ERs}S֜-NײNdFw-tnj_\ѦG%\,f3/yXO3^?vڷ7W0 n ~wPIly#ldϴp{jɛ#¹ip>G2v\i<]ӆq^W:\G_ 'HWC3y> |э%cA#a.y`Ka_HtB={GzM|t_Kni^=; Vfg2Ў6IGRSstO@?fĉ:7~F]3|spњjTFgc7#eC|=h.< LqqO5ބB fxv4'˟gx َY2K;4zcҶ\gvKIVul֋,cy'{ݧ6g ԙj*kk115L, ^ h|掦,td8ÄV"z6=5Et/ӽeDƟp>Z n+XΉpۓLoO,FD&'$0>3Dٰ:(V|d?=L·>xsZmac O,s ej0jnm7n3"G4O먜.rnՂC/GI >Oeg RɱG%wX3h-!(=߀qo`mJ1A], :L> MMk'Q+H3}c 3 n)HQBFgQ76/['^ &wbrg\2y=}րU&k!;v#!³7j~Al!< {|4d3T󢇭]FW)o(*Za32c!eTppo6Rm[rby{G)!"hVVZq,KF}f+2/pS *OװL~(0c䒁%Jy_[- *FW)^\s{4p.2^Kġ`zq^|=YP34Z4YV^'JYFNxwIHRIi9% 26ЩbYM|Lq2=紜rP5:>S^v)"]f~V'ztQV[b!ksw\v薴4<J,(*ծ4lF폝8jԈ0d2O2Kxt!:OFMS{vSګI 5't Z:N:t!aȿyHKWZSL1s ֿi,DTw<)>>koxdjݡQC9祇ݽpaOy?B!,L4#up|zm0ܘԠE%v7P=zld?R LY>,5P`ĸ^}r%$#ۼK2G礌{}h~"%h,[EՌy\'i&2thnco# "CTqꅪ^>4[nBߝwդñ1\ $T~Dr@=bWt 9T)nfqiod}qofK&u4r\ 1Yo{M.h l+jt STn矇#ʤ@:?f:QlwjVXnk NM!޹0ϧaWi;Q` &X>x.^(,a$&]Rp[hޣC2.iA, rl7N!} #t/G}Q6v y6K?<~?{M5ܼo27,}3FbXL!|NDU^> @73;qr"> p@Iy6OXǑS2N|&ߘ~w)< vxY**qٓ-+@9X*ՀerMDV˧ :7UzWcjXF~ZϜMQ0e/A ˰l*|[ze Ru|38}ַdȸ$,pwo8oyĬC&:~,p/bEg+Xj4&R 2%r^?ff2FIZ5%_aFdTP[(p4 endstream endobj 458 0 obj << /Length1 1588 /Length2 8628 /Length3 0 /Length 9670 /Filter /FlateDecode >> stream xڍP\- %xpi, ` 4H7,['\;Hpwy${ϽWW]{)c͹֘6=9,:r $9x\lg[ftzmG#d9?)[;;_0GbPb(`'tzI#i,v`G P9[V44`fQ0Y9; nnnl ;'6# lP;] Av:cChZAk,@`b:=e@o*`_o `76 23ك%b ȼasvwfAN|+b 2} S9 #=5w{Nf{g'6'ivYj. C'q=m𯓵ܠ^ w.@-(,/wȓ ?6K3vͬ5=OxOM} ?t/'+:b 0[Ba2-OqeoO2Am=|ʒzuo`asx>͢ ]R0_>ҿ v Fs)ÞD 0G #{ j6A ?47{B0ۧBe]/r< ?OrOTNO=8>1r>Qyqf.OWi?{ v[*X7G7uRY\nP?g8^'}Yܐf8[mE k~r}g>قmopWUSl[; ]>K5ʭGֽp׊wﴢ LfiY)Pܱ/r}q}_匹\*t #'@8x%3YhΫcN#gB^7jMn/QNȗжKd#OVZԨ-=YNf;5rXW\6g8W3. ES_"c^83hgk|+rd/W':%$]5 RFVI1Ik ;A,@YM1JrhMx˶%GSkVꮥ\X8g='?{_\_$wЙ9yn5ٺVG!l|0A([oHKkzħ{yJ;RVLw=NΗc͚*~TeAM d7 7pbBw,/ks,A 4dȧjI˻P{?KC( ؤ-N&k3#T,>f,KkĦ%uYƉY4)Cae>X29apFt>UZZ,)T^œƢ}N"=K *flO 0?vgW% 'pPtx(V=hRyy:'rg\0,*2߉8kFjg(I qÎ-NKoSg7@sOcyob[~wB):e C+zɮ_ND:Q%0+ NԻ&hQ 51X! r)/H']qH*T3 f!Xv|tQs&02\4kLJ: * I i>:^BKT]FH૓Z,!b++]{kIE.D13uN}ɮty7$yۦ,t!t Ԏ4]ZIAvNj;Top|_q9дEahvX[04!AQCI6NyOY%'o\\E$C@Bmk*  v_?iw"-!_{6Wqw{4k-FS\!G ]nJ}d`/&^2;iy\D麲m1#wlcm|L2xP M ޾u{ ;;J5imU.#4 V(B ͗>arWF ?4]d4 NMP>i_ϐ~0x֛g߿ޖ'Afl~rNlt}a[,dө(xUB/8y.,XĨ2RضiVc ߭5S/0VMgڃȀrdA59~pkV_MkΜ[#Q=3QG,e/s )4҈ D#"tX7!{u׺m@6MlGF074"%Ky@@=DCabյh=ڴY}e$7fǐ8 7!8ҽCϋ|N,&FW%x}C`WrjNnm󅞇hj;W֍d( )ژlddH u#:#1ԩM~CO],;nOua"c&Oz>%Ǻ ␭yq96P"x,(1Bfn##K&YB ?Q֣T Z1*~=74sgA񵎀,R}>BD1dxv&"Q!(qYǃ)ءE[&<_G2Kke)Nn19z`%S޿-{O> MW~ IȄ;o컔W XBtfU% ]W m=%cllSE>'yN/?_Bћ= |7bU=ia%+7DUb#9WE_I^i'BR&jnm2KiމB>6;f/b}t8Ŷ e[8f< yc3JOk_CO [(g=2&V&KFn713WP/PD:oHt?&0$rH\ES*/VS0Md1Ummq2^֣;/j{q`ߐa(^Zz1159MwK$8a'筚N|q]-t9-`oe:ph|çu,qJZߍ3smW\}}3fe~&\zyД}R"Z[%ފaSoCu(:N{@`u٣a[̟Fr-~0PœaS`A2فZš_jK1ƹ’Kd []:%!;9+p&ʧCsUsK{ȅ4ozBP>r\]mTF"F_$ 8c둂wRRT D)Z0g2(*(oyXY¯Uk< 0lI\3?z#FVF6 i4.oG;b/Oq'J?KPٿGPw >KԩLJ ^gX_ ih8:a!3>I*nXdA-'0>"sN.y.f^P)>&awBx'v> T!Ã{L(F]g8rLF$4 2cEvܖSY.rGF[$jI2:[dG P4$#El4K^BoR2 裏+*~ asdG2wExjcz v֯>0fm]y^Q,>p@k<X6Rq C6,|umCfKe!\j|^>1~XR6NT -M(GX1:t* T(c鉧ʷޒSٳjp"¾>;NJE*&˳5]$/3[+|$#*'/5kWD9Y"U3S{gf뙒 gb" {'S,0>CSz]R]ᯎcŊ+ex<'c6(j3kn>PsoW1% Qt+;xãߍ];ү .,:IIar1kktAgK,o|7)r󱆖ה{72X9oWuX'=)(m"۪ ).؏Q߆ʶ󗉔k7,rNZ5?/ad5AD($̷Yigu;4'8s"|T*G9ai/ eFə])23_+fq9N :| ⱾQ7e!i 0^nʾ榶b ]֋<-E%f\3 ?AMr*Q(UB qpe/"pZolXƈLR:eT;Y&/վ3ԏ k@Ο)b̿'Ócu{a;*nRB mҬKNc|~~H:#t;뗳dqB} =@h leJ3P,rnZFL9V_]?|ւ2Nl7LhEm>/(7ժctA7K7'? ( uTRּZ|[~܍a$I k`] S^[]Inrq"G->kVE(qi~Rk4 [PT+ Lʟ|dދzy9Y>X8¿mT}_3t 4-+qש]ϟI Z.C\dq6FFqc+Heh5 ϲ5<'A2>rȃƣ#BK{r\=|Lbthrk`| )Ocqʧ{Y\_|l9QOl؛qG}W0_ *TO%xܧwP}~ w.4)響Mc>&fB\E xOk*ňwڨq Mky AlQ/5x_e -wI-L3fWi1r(x!o.)}2Qdc6_)˟fla[ddVH]t 3`$dY[* XNzz&TkjD]A̝bD-ni{D [[|rJ6VZ8ScjtG8yONV}f1~̭$Fa^ T~qYbP U \LGL\ͧ۔] |Ct7*XgLC)P1yXOq%FhJ0`]A}p4[a凇E?l͹3]Z%\]M;l,I%_y/Lю?Ӿc 9Ar.y*=ܽ<гYQkx|C^0#2#lqUCbpƮ[HW@o|UeCҁ\`d $9 R/G)uLY"Ϋªx$1+ҹjkߔl͗6ޑ8L:+dhyP~nWņ}7/[˫:S^Sm> Twc/RTE#>`YM endstream endobj 460 0 obj << /Length1 1373 /Length2 6101 /Length3 0 /Length 7047 /Filter /FlateDecode >> stream xڍvT.!RCҍtH# 3 tH4ҍt !%J+]sֽܻk֚ywyװ3)!l*8O( x/@!BvvC(솄" BuJ Mh;b@ @#M8IuUupr%$x``7- `-`QH% A\$<==A0$?A EA`$l=. 3?!;E6@أ2MPWUsm_ _멬XtU4[DU ;7NwQbE |)Z+/{0 ן@Oܽ0yݣ4FBA伛8磣QCQ%0u_ "zY<lu&gG:pk5Q?:FQQanTxu+Jb⤑DIFtewhay- kHRCN9?x;9ڏ(g ~%~ׂ+H{.evb?( :zyLWl]@:csUY ?]r o/pp 4O6Ȳ/V|g97"{mF^}}9!D S:X76ODI3FSY)g)UIL<ߙ$ZWSw8˼oTУ?=~7dp|zv6U_o\Kg쮭9"/!xxZ2%:R 4VME=Smi-Kdc`0C̑R5|JONdr}s/)߀4cFqLMB `roҡ[ T k5!wFNxVfy8ZUIpN5b[%|W54 C:λ O\%Fમ0b}'޹]c;+[?=)yjio[/n!]7n=b;I ,wiYޘvzDajrW19Òi=v>P>D{y;z;SY 9.X=zܢ2 _h) ˸H=a$>N3+a e#QX1w_4XZƹFjD?{tyRvnk#Am#+bcu'^gM(iTUHipT* 7^E@]rSrݵ7CYe*0nK;%d?]yS2G彚'4Y>ء2!QGbɼ .HDi쯡>e8K=)sXW2\-70bԾuWMҲY 1OEȊ̘P b i7,[in2Il3(=vaP@`Rܕ4VUz{Ma_V<[IBx]e#h:@f̞y6VI%ݡپ5\:qB>^ބSh<:Me*/hH&75uGd#v|T(lŋIQbiLQrLڟ<՗Գ:{Qx9yn }_=A'i~sHX=#yUľ / Ԧ7ꫝ~E%9,ܻA Ӊ޿`X#I/e#qF\_:y]X)Q$9I|jX/J}0+?3(9k0 "~'+e2-O~cSS4)ג,Md'V ?,*F->W٢~Qt;*0te W.p֟.\V *h<XDEF\PʏrsTZkq#n)޲fI ǻzм3 4e5߁i mm| .UAzƖ{2r>)D{S5Z8&h"G̉էBd3|lIϞO-Ѽ['R ?5AX&4MZ<5tpʺlD4ʂލoq2V?̐.joXZ5mدN(8eu~)C/p BtvsPpEKbf>fb0DU7g ?e1BDywa˟l_ kĦUM+Ip_D!%\PqVOqT{to]S{sQ^,0x=Vezsw= E CMr :a5d8Ě;luΜpRoN]qKjrגt|R%Cul8cڹ~m8i"dQݧRG2xM٤nfx~_ltw{G}t=9\S8m.V597n?59w rvfN̠,w+]][̫*(G cwiM =2۾L\ʢk]:ɋ  InZx~iG rʔd˵?edPjPNWyL1C65q?RY噵"K!"jLd ,6TیPȲ4:Vd?50>dN CXzZD!{횣a䷧|jپf]q1]јE!ZKxLef(Dc's X-|#e f%-4273fka>i|Κ{¼%k(J8Z[#$:g} AK}UKNSKS^UTUc'q.fH~Řcؚ-rS ^RmI5ޭ 0F)~mLW!=8Uom>r+ZI2'i<̅ܙf&iVZHd^.l┼~6Vk})s.$pz/%y[#KIQ6JTo bb| endstream endobj 462 0 obj << /Length1 1373 /Length2 6096 /Length3 0 /Length 7038 /Filter /FlateDecode >> stream xڍwTl7ҍ #FnPBc6F74 !tJJ7H! !Ny~;;gw3 #E@5}I$&f0/- !ˮQ:qG:n1,d@>0G@z~H S_G "##%'E `8@rc*BnSE# !+,+vB y0 E@ݡ"\`^MN(_0 (`(  w"Sm=_Ww'!;`nP Ꮏn^L< s;`4h y`n'd  GyOB0[sp/<௳ {Goas8FE3@R2'Nnc8aF/BzCA08cPd#ah5<'[ p7\f:VIU @ sg#0.@Ն;!25ҿy&/ B< H|O ݿ?hz6V;o;( ]0ojD& u4 .A/oP#ˆahxaŐ%5ovJHH$؏sI #a!8 ` 8!$S\ y~+Ș:(_ H$f_NCh(dn|TvVrWpmDafW0`0:'|S%=W y֫ǭo^%%-VK|GLy=3"C-MnTHsQ ]]0=f^-KzY6!`oV X;NKG}ts:oU'$h'A8jU4|LԫɊ. 8WFLPi"n+64M,lgA-tejq uY<J |~ΌXz^Pij<@E{H6̒z*֪r6YwW͔%IOǘ=OC SAQ|`jo0(97!7q3TX ~(r'QDREE9/$6Z#Q QiqJ :uܮq=.gmnXN|\2~eZ/ SߴJ*K[ "`AOt>>{{\S*gȷ ^5Z踓݋|lQ_tzO`Qcvԥ{c5.qv]_$[7(4$ZyP,l#l}"kU[/-uinDdH>pG+fܚz`{AEWrkl>^yӏ&IqTt>V48˳mXmǿ`Uޒ|9]\Ti=&Fu^V—LkvCÍD9)'jgVߦYwqHARK=O՜4r$.4me] 91 ts]4)Vyv!9_"~ d|* GM5jH3l=xZʼnĨ; i8=GH=y[B~u:od-t$х>gv-VsOzmvJ/11r QqΎ!enIdRPY)/;<Ig^\]RKlu#5dFTڭ`B"#ֳ{ 9T#t,E/yi-i;Ǘ dZiiɒiRה"& NJA3(oSK˞01/|bCFCE@7{3ZlR}Qj5ʊA,Qx[4GG\8Yg3X^b%MƵ^8ٱڰ,X斞Ѽh,[gp0ߺj)yq_DnPOgYҷXaBs+n;'h=uo ﱵUtxZɷ,#&I0SZR=. Ӌ)Qw([r}FsVoȴ}0jg-@B!˓Tn]/Շ5)ۜZ,$Ģ'V6֪vt}v pgJztCXL Aw'*dw~in0>jBL[=lz+A`FR~>,%fC3f&n)K"ֺEyFM *VQg)&X*pǀ #Ȩa8@Gg_(*1lF V_Г 1ՎdT[E+bE蒋:y`=.Tfvt{ }LTzJg2U2f> <}՗'CoB19BųWFsXKUw'w)v zkjsȃZQBM;,/o#v6>,l "" XV?Ɉϑ7AEY ?0Lj3U5{ȜGͧW #M0z^#{1zD(źMU>)PY [5οДEG>>PۏOj:-%OԾ\И~\8 sXƭrH/} L^e}NO.( į{? qp3;|+q,Y|(G^Cq/&?gIU~Hgn›k-W 2K%#[j^%M#҅HDrin󓙿\K5r} я;9Y4TjP1c2>ܒ_hL[_^:cKMWf}pjgݚ7sD0T=[X鷴9I UK[yV$MyS8gIYܸ=̈́6*w) ]I t)Rut6Wp8W' /FUT\p+s?zm'JUDǮ9WvMhNw/zY -dp ќ{ONU)vf63V{dHDBt~A0u1WcΉ~f,Dǜ4/kn_vM (mF簪ŔK> 7k^?~\& !i"뭆l*Dە@NȚYRGEѮBȻ .Ⲩ+CTZm0W(dI?r>aV1|R43or/}Be$yى9ْ?N >#~H1*3j07}iON!zN$WX?;Av5njsϿS2PpMJ'OS_>k:qt3 NOߏo8|\n%T64*xƓ䫂g@S[28$7]oN1X.6=ߛ/$9 ţjcb!+Gfd$7t/y5:)vTp<^!cq! \8AM4 Xy'Fgؾpkט(=9O\rB['B3N#y &u{YfrHT'By^$."ו3O.`l8aIE@\z1~W<<iq9<ɧ>}X{ǹg'cԀL|}3usnB\"އ_ QI0,p@v珆ϵHkgiάphVoӉYJ9abV:Brc٪=]Ivo-b D'񎰇l,bɧ"صa{^6W*8{m;J&i>e -`G ? {+y^PZpvy*s%gSE| 3IG$^"汞JQ~e!72}{D5>Ju.Cϐ+%Ҭ<MHE_dq uh;߀TF J4U*7-"yXz(!B>u|.;֧H4]!:H;AJOqNJwOWXyRjYiiκriJ#nPQiYA5Vb w7cfwSY~8UQS!6s8:&*,p>G5K:"{ '2x+Ԏ1%_VthE1myZYDbAogogܾ3,楶`U._C@襼֣x VQrw7?φҤTo HW"I]:Xh@wɌ#83E*4<;;A x3Q=a×@ ~Q8 54~lFk+m{lv(V?mxnnNl:"Vtٽ /TnkΖM峣q)mF[6Ē)CFw?YIXȪl](72)-ORT,^| [nZ5Dlqq|M> stream xڍTl7NI.i)=F9`m0F4(HIHJ#"HH# ! H>}gl~}g/ `A)8PPPX@PPav8L^(._zE/(Sxߘi#@ ;, IťB1DxI >0GP&@.n XRR;PsoMF;z+}oo+@ e0o: ԁx@7&P'o_xpԍkuP_Z XO;CHw:ܡ@]-o?o> BC| 0w!@y} 䦿C9x(W_an.Y½Q_)7=V78 wtՂ# 2O;↱P [ :|iݿ_k~?Zo _7FlMM6_7f\" :\_sz׃ fn 7KpB H@:B~3#o\7^_AI@IRGAH@?үA% 8$Od ANM?M|E ^'X'_ʺlh懫;)p)Әܔxfa&D4DݠdžĄ=MT#h]~n>+ȫ#pvY+3sW:?O]㜱d!Z Ϥ/\D&-t 0^i5^a~ǖ:? G!5-,=BO6h>Ԫ.&6&V?gU. U%;)XӦd5] )u9ou.;쮞k*< iNg^qx4> imFuNݼakrS3Gr ?,IT?[Jf5ÐC9J^r[1hZ`Qm̼0#Arg?j/"^VAbe$ZP߮OOx&6s#;}K,tZ;݅w]=Mm0>uIIk^61|l,8Ř!ɰeiHy K^z/=i.)vJ`=UxXxZ;FEyW|{1# Er&F2 L;:.W%bk_ֶosrk2Z211;~:"tn\To܅O*ח1כX3C޻ 2+mF Rf@:SZ剷{aNg&_R*\M Gl4 agԀc F{݌yo{j/Z&Ͱ攷[R{K;w,ТS\~Z5LB2pVܜ@3T1[9m5d%[;rIMJ%a;IolOg%/[bUU :Ue!N?؎xA!-g8s<1+]SaCk7$=+)Rf(𱍮,w?MKm^S oC^:տ8 `>T^~74PgzLDc밠Ljo5eklQj 8\K9h%*%if<t2^tf2ٷh*K^m OL+b?g͍߮ue[ʜLJ}Qf=T~Wor<2B±j#GѶh.WmM!2l߃ۗdDy#, H7O=}p2Tm TEMmȂLe&'t1ʠvpo ֘˕6o5}4%CFx-bTfy!SٽNV@_HOO a$HL,H`܎+lZɹFp6gPPlrmG{-6C<ţLuf-dv?|d >|ACt_o1.F{RPu?Ka J~Dt{m0>P/'h0 LLVP ,~[+0#J%TƲ+w qoO>Cv+#҂*l{P.&5]pPW%xr/1OY1B fX2$Z xW?G6n)trZm|B\[OpBYl3[};$ޖE'~@AO,-L $G:(?Ύ-dOmҝf|_Oep>ȲycZ\-E{AOjPvhMQn{)Y O:2S+ҫ֘\[ʭUJvqo +&7QQ1 - 0$KdÏhKWТKx< sZMFCs؄yrY cƤnw?z%;-qH(`m*^zq2vSCbN, gD@7#l -s}&ۋe'N.~fǦ'bpIB6Tnl~ìˉv )covmf|,y먲O$Hk^Z!>b"VmN <qpke6;@w(]z6:{IgS_ W+L]i=\nBjKdI=G)2aČ*?94?^4#%Z0Ev`'+<2xDUa[Yfk38;}7.ow/ۘj{ˋwnE[ʊ5Ԇ7ֶ|g$dV-fZI@:iHNd7aoITUᜫ*:B q7U\7?wPAE(̗>Jaf}}.RT~ q-o 2D?܏t/(`_OMgv R:!Qpb:/8zgr-wc dxe4VW%k%g%PjWz NiY=

DzN2$~2~ZgdO6T 7IC569DϏOLS ֻV8jv3[33tv]$.Ls4`-H0gǕ>zM'R hmg=0p}#\3gQI+2Ү?L {F>mky?L~ڡNֶ-I"H^.f92GdTCq]{cő.B0>.|!bʴ2]o~ mnzPOjĜ1aed[1qf7uxFC1{*>3:M(2ObbNf[wxQPEnJv# Mwywj-ty=M/)oe؎$|'W.:rs]wc}Q$RjH:RG [J|FHEǷQ5^o׊y9sV@T:`3ceB)ВÖtn2K rڎ ;\ۨx%RBic:=q><=Jb/uSk}Cc S"}\Y.6EfxX].Gl@N弖GEn p0JDX(&^>ˣ t0pfJX^sγm;}MWV'{siN.G% "#f$cZOwؼk-?Fɇvx c.X7lB Z9 oR#8PlӠ*0>uk5+Z(P;;CX}~ G}aM2t~)fУH6L6}U{2[<]:Ɂ-Nʡ1rN:K$LveU^+k3(fQCnc2[,k*l$kI/xG4KjB^5z`HFr_ |<$,M^9)Kv0aE4g\ Ǜ!uCL+d}BDjMʑ__ʂ̹E>Ų uBNh;POv.WϞP<Ԙ-> 2"-/Rvx%Vcjuo2p t?.xy9M0s*SHh~I:d>:="ȱlUkN~ælT'sk6i=]ZM+<>vsZKTjה!Vld[E S#2x66J9޽U}͑i) C'q,hP0e>ͮzH*8<(yD*PdsdmahI/ְN_;6*N3)r!-nl'w"o=Ϟ q+pEpT5SPծ``c`ǩtNTo='4Խbɷ Z4fĺN\D!CkQ 1PuͿ5bj]haG(@zre>? JJ[<,hDF1W> )- بP-wF \v>6=1KYjH+ʌŠJA6\LJd=??*h}Dpׇn eXYET>DSP}"{?쇺DtE.R1 ү#8p'?bWs:.La%AIn~wzw3&R>qH><-j{I Rwj8ISεUP`|9'{pR;nj *B@PFOצ[;9ߣoT MRzb|fFjΐ[b8̖<x9pfehIJ{=KOg$9h0WJ"}N.,rOh"v ڟx+/fF[& V=eoqe74Ι)CvjU76f<@Q l?Xr?T(#!#**yٵ$RM'*jT+lhң>j&wgc!ve1S+#kHgGj tqO4yD}K{ ' ^uC)y8yU>-#Ns!l]]q΃ endstream endobj 466 0 obj << /Length1 2062 /Length2 14087 /Length3 0 /Length 15344 /Filter /FlateDecode >> stream xڍP[]{.-kp@pwsޫSה*ꌢ@){WFV&> Rj G@tv9K/ 4q}I):lV.>Vn> :8$LAE&=Rdi~<hh D 3{D3[BX:13{xx0ع098[ 2<@V5 h.@71&J3.]́΀ eG? 0S+@ MM@ -,07dkbnw&)QU;s1s90lbW"Kڛ;]]O 4{mwdons7GfM{PV?"?2K+t=ͬ [=_oGG;/b:}`2s-A;<z, `'2wcwsDUT&_' `efp?(*&dWOU},-RrxX πp]M_Q_#fk/dϾ_ӏUhrZYWoA.R O QGׂق*..#+ ѽo>K󿏔7s0k8&&^-~Go54z=f&{w;=_3_0%q n7;Yz)񰽏nq54xߣA<f?l_3s}/H88~f{_'>_9_z7X o'w^V^V@Y@l|/KNqK{0+hG?_{_c}'/L\$ty#̮V=W9s|;95_'?f9Suz_@O⼃ZQ Yݏ鴌ދn()5YםoESlK܈,x4&=<%M!,:''dyq lsrAQ)/_ UݫG|.aь,7KHGq:ws;;F"@{[w-J 6n< <]\"i*oT ޥ_ם~to%|URw>mHE9G %*hWBÑ}")ԅA9l Ũr>Å/JZ@vZCs+gC\${XHo'SF/2[ζ2|c4 **Oo _~ǨR.tA:()c7WWԉj ljX%OzBҨm{0tˬGoہ /$A6FCmz' ۛҝd:hl:jhᛠo]6hm|jw!K).:?0w0OEܑe@A+,Ń`ьҟv:,w~-',jP^zEOld1Q;JKR<|`6͖2flKf0|9M wwc:6!'HNY\h''$v$n'a+g97_ .naRi1jfDϴ0DIY05^xgaV)$"cBIwOo 3;V3}RJ4[09ZVavE̱S1JN8 2=Jzue h=8A3׬+:MC<ᄋi KSM؎cf6 n|0jX! }Vh'[? uҗC x]F{:Zwjx;?.Q:>Wf(V$OhO%șBcKYJ*9yuaûm> URLKΝ|͓M~{ѷ )dCVHPPtJƅ妮z5HUH TW>0qg܍O{;I!4@ߚ#>\8I0aɀK$A"[Z' epN,ѱJ>ؔ \OΨ?ab6}dp,)r& Af{Y HKBlHyϭe6}*K վҊLT }D+'94HtۋbVH_: ^2]ժ|@)fD/ >ީlz_lP5}9R}NU< %̂ z_mٶl`1VY! NZ|~T2g7OK 4TJ\E3ew10zh"u%{K6i c\"*K~:UwY4̾{ 72Sk],w-/_h 4 o l/3f6ͽin:‰Y} ye 8oھV@U$#ndt]B;N毢ftS`e=DJ 0$oP7; 5=ZLپOD8_>V{A v7 Tb= XD{ɐJ܊%m ^ɋDv!H.H0R&NQ[ۏ7%N6w$Fj2 Ҙs (d{5_3U.iKuN~ې7r2VcX@nėˠď$1 qVhU_'Woyÿ}|C bX--ϽFsK@-s7Dz=j7mO-]?ɐo޾YJMCf#N086=3lWrd \>4.KQC˝nY| 5X2|iPlS l\^ޯn!+ ,LΝ1^ơ⡛,U(?s-!zovy6ACH[&ʤFJ"?Ԣ\%8ke5sфokt5o*o (!"R׎52fhPAى;nݗs6|1ǓEFcrU#zU[FPۈf}afew\y$C7mɒf.^RnP|Ѵ*aQBG[5ۉ\D ~׎/b^SߐN$W9̊{|}PQwk=M؞ # w ?AijqW{$,9J3QE P2d}ZS/4SVRlu M/, ʀ @434ZNB@_,<&fK|mv_V7}U$NتJ%Pnȩ'@[o`VaYj1鼵_y/vQzH2$gDÓ.bkz]z>͇U?)s(%rV8=[D'˓k;A^[va*=:mO+rƜXzT-X6ۢRxSΏD~g@,6FgJAMտP6 Y}6$FlNqфh` 5 n *8@mο~% 1eɿ՚0Y§0ʬ d sBzAzs"[cqݍti]BL͇_ : |&T⫸C5_Nqo;kG~B/M o=L$]cr䶤+7_rZCfPլvQcJc`: 4C|!uFz 6c?(5mB%8,o2h}I-}Gh3q:(2oa#v!\\>i#Of7{ɛ5 &+t.$tܳbMg}8|3`c ڨC}F'TEn$,`b">[8Nض-6(=T7G6E]NE%oZ) JmF=#X8zӐzY:4=֘b AG8##y-ED3T,|:UH<2N|8t]#;9,Sk,D|sP-au ^|'طxƞަdV>y٥Յ \*e>T1ԯrڡ"n{@-nR aShcQe'&Yo~5 ^8B.2 dC Ww2)sDzO~Jb8wװwBOa\DKrQqތ(ȫT9IYIotgQ|X P75‰k[};VۏsIa 9dG1x\A.ĹuGG+Ɖ/2 臣+|7s/Ϭm۱% AF,бF o ;s\$ {}7փ<tvp}mRϛ<Ew\{Vk͒O -G/䊷7s]t=b6v޵^ëa)V*`NZ۰r۞q{3#N$gT]G{=ˮ, 6CK}OLfR'0F]w^` =>ȧ[_6(h 0:9vGօFq KgU)I҉ڕx 1 Z1 [yR+prx=vŐǦ]4džO^[Sv m?-:;fv\2r {'sVhrCmMʭw;K$.7^C-vx}AG:*阔B&3Av0`:2$8TW& J}wBw#c7qGH<k|ˠ/.d4%ydj݇%Nc zҟ; [|jhh//<|{0S0E~gs9ueKEa;7F`_e5n./dGR2AFŕtS^=6z3-]^[CA%M~9)} T]s-.C&2݌ٳ'ʞHkZ&V6}1t(oz gBup)v>  |c? o&WzH6&N:pyz\@ ^l%!ol1~O\W9j:2]?˵2HqXKE_155Iim(2 k2kp=b}oj 6*\^ ^T2zR(Ny̐)1UhtB9>S|ECb8L,Kn 7#I#^߻+Riq}6\{@FbPZp> i%$ :y \r1nSLTW~c:OԬ}I^f ]#&m5r#6qc`5FK9`ٸZNP~h҂pAeu_CIhuB o!Dm;-]Q4wʄP[՛L1n-f}g\9?JbIf9^>V3aC*Z~5\ UqZ.ۜTKgy} SM"cJQ6nojڶ#зSK)t:%tA]S l:7%y8GnɳE0ƅ JGvy}^9 _aH{d$r\0 dءuWI!J ҆\`8L dfzSYl+/pp&U>lwR2^Uik,ll4_U*k9ݍ7U;y6ӎvۀҋfyN.k¬ u5C9h\65Vʷ,]ʕ:[?HXK3d;KnﭡĮ6ȣquPkcZtfdH` 56Ҡe%31\sA}m CϚ]NqY#n:NEk-Dg`%i{B-MDi "՘VqPG> T}.LY[~ʩm򴜀K+$*ZܮEZÔQNFxM"W M89YduЅR<տ7| b׹ ?m6=Qe1GkO*2k $^Ѱs`A*.)T_$/V% ]fJ.LN= CO8BPeO&li^Tu,,-mvD bo̎nhR?cz߷0em]&0EK7ES_FTժNΧE \|+&N E\S"ǷE! &NtN[wV 0yhl̸ QA61XŴYHUlYLb#Hyt'\mp__h-ku;NaTɍ[ODA5M)VOT2c 1\VapVy{#۬u+) ?jV-ߊ$ɺDkOOBa}+cgW9aʢW=V\_ z@(M7[rR G@<ɧR5#G\Ȫu2Y֏2i2|&o6HI%Z[>S7j^'&_7MV7i~)o .,K5owd/)Ը3)0_G>RaݴJ9i]D?t{'4]hj(7-5a}Mgi 9i|S\)+Sqʕ[ 49(ͤPf5'g:<f;i.+zp2%JI,#s ]!|%N/Qh`o(Ŗ? ?5=!Vu%|^t6BQ[{{9?^Hfm-s fWW3{YmrH5Q{Xh[wmB:}m* nȱ"c3z]F W.G66T_𠓘-kTZJ]?@յs@?8];3ҫv.pyb/JXg"?@mjbO)E;/μWRs0MOim+-yW!N^IZvi2.H ` udzZ2L =hM`IS@ce: 4^ia2ܱF~I|"T>4#_a ze2 8A4Oٗv΢™UoH9ߴ>wW}XB}Xy <Dck bPV1Im |xT]TH%;: Ĩ4.7Fi=+5ȟc~ }ncfux04 ȕoZ7Q#ʑ6"}&*eG 3frW+LzqRfK}1$[&!.T kNH^lpHO 2T[HyZ|"j>=aBa-r~b41J1H{g0:NKÙ TQvph6=|:XKd#`+^\l8+cT=٭T4 #| E`x^ Kf5)6l"4VP?BȺQu糲ތ)e?1[&)dxC__uJOð`DJ3Jcw_H+aPRNR=y\ 9ph*`/T$Orz  9 С0~~8~;pmK@8@뀇FW$M=.;l^Pۊ"h#rk[W7c8VRx)Alg7}31N'`] I_s7L<)|YVci. ]^ Ykܱhu/ I 'G@ T9f yQ%J!oM$\6 W: nfKI_Tˬ\j%Uٚ*CL O97I#t F%H9ڧv|=DCAwq?|'}rbq!jgcm)H> ZORM*,#ZG?3]4MV;c歒 jfUl Axn<|c,z27b ku)+ k9.hkG2 ]XF KR{66vG(br`LF-e9>map] ؃dFշiSBRM%d _)\#e= z DxSt tP%z8 lez_c>]h7\V;eOp\D?K2 UbNtfCN)VQ[hw8!=vE+C$ hUpcP8jnlM,W'A4KPVrv![ތ"_- Nq|- *Liʏ1 =!4 _=E|@i6g/\Z7|O?qSjOnQt~"*@~hy& <$L#)Z n%!eMq1O9wan-nAe8Č\EaڹrU:i%<̯pF̆t*O,|GF[{ } ^ bFI$zSļp['< [ۻj0;qG^CTNjiM t M7)P, }΅C5drb^w, T9vVgHKԞYkBQɁSs*ۿ>fAk}xeؓeIŕP7U7jQ:鉮<_RHR&,:vUy6?W!yV_djCh9v :Q++Elt0w? 9+<*هt[ -b}mid P3925FoದX&۔69{f(4d|ct1c(;[^:lAj6 ϓqu5 I9 bp,Ց;`l*QH? qFFJ"}BUiťU3N)2!8S#jAYȹZ{\MɥK s[:K{ݦ~sdcc ;/MXHI5".dR/'a,,F[||F6X=z?Jf-pڎ<'0f?ʊ,}ܸKMl! {|/q 8ߖ.e\N;^buy/qJqD{1k2o:* VUP`&Y,/Rq>BK(*SILYj-_ZyᢿV>"ѴM2M~-^W|s )ܜDpg!R(3D{ĵ;eIcM\]%V5߻]v5Be6-j)pxA}a^<mvG-/Ah@Ce\W<מFQlDɗzwI?hrPO|5.H :B֧DAe2W4lHƯc (7Wi^Sa=:񈄒X.!+&]yG &އR3#^YA'!&%m?-;&Kb v$=21-խ%M @;|M%!\H-7oA8D5q )J;ڹۓ{Ȝ~5 YlE0ݨP析Cٝ-綝h l 2:zmwۤqO3+/Zk'Q]-zEAmߞ>+ݍZSEu^V#]\I=$GR2q)՝T!=(ÆGlvVr~Nff=W|Av)W>Mj.3B!*>2tOAĝgwT?&!\kgI] *AIE v1fZzfG>@~S ked=)YЛrn^VG44GwoWtliR~K7A G2_L>4[_~ enHFA~( K:/3T6Jq~Dm6y?w~,5^#XsXP#Gf齉 HGN{&NO] 1z{7>,ǍW 5hl\sg+~&BR:®A.{' D;w38`4O4O`R|&,{yoDQO^D~óoWA'uKZA,pcB^h\-fk pZY3PlHPBqq[CG'wd k)K}Jmg Iwl,1T?{"lS:+";? 5fS, ̥.~A1Ng/F[LNu_Nm#cxXJd0*{䁄?A& =(Mlq)fɩ?tXB{|dA菥'*R!ilvKG.4-y޵8LpV&*~ۊFk.jbPn$"C_݋ŗVי_i?Ӝ35m;kB:B[<9ԏɻժl\SI9?˻ $"K!/Y?7XH +P}r!ڻyh;AngtZ8 kq |]Gh-[-HqXMnr!f5}0u$c%Pmр◵RlFT.j:xWA$. ôp;xG-&gs&-@?%Y [xiL~ A I]T`'Djf F{?Dʉ'~Ռ+1nzٶ66']w6!U:AAׂƆ W#eP[OIojq HP퉘W(u楉Q^ZTo^헧oǿ zs^x1O?J& cz ?yZeIQ[L+; 3w(6?1*4 endstream endobj 468 0 obj << /Length1 2295 /Length2 14420 /Length3 0 /Length 15770 /Filter /FlateDecode >> stream xڍweTض&N] w5{  XNpwwtf~b-orOAE$jdrrtgbcf++hhXY9YY4l4TZ@W7'GوMA2 Sw#@`gge+?@ sr!P;9XY"G9/whn tE47;}w,,^^^̦nNVBt/wk .d8f**u'Kw/SW $1:<-P|@q}_ΦNΦ>6VK{ @YJ۝`h oijcoj2+yS*T*t3wqvwcv]%c@twrp:!Oh?Wl[8ZX.ÙE(++ bee],6fDTG3T 0f zo1wl- xYA$d!gN>h)Uq)U)G-& cbg0spx|܀>H?U wFOΞ!g)9 +97r)|9IyeA?&l@ph(6)VZx8o)h,D@fc[l&e Pq7&5#P0/h@ οT@(wTIGs'3 0uu5A` N _|0;:\ N "[7A<?"aQbA?""(A(?AEP@ P?T?Al jjn=? P NPXss dioPU@.P\KO ՟@VAxkgkc n_ AP$ 7A-pA _@KO2 [c/5?j35rsG߭M3ho8j;_fI-6P/TR6?A@p7u(,@S/5_=AP@*fU/j_ v1h@s9's0ۆ/u^L;?95o^ooE^y1TY>Pff[6$2Qkbfu\2is3Br]"=%14{W%w Ɂ<81oK%N;nd g2l-JeN}syʏeh0L0؁S'@2R|^;f@&\>iG;ȸ ^y: PV RYwDTğa6kt_~c+PRJC [-Y~)OCުqI6rɦ$!h{3$rtd(h6Q͛}lG'gH2z`o?h}@ W!0>LAY,PcXD鄦g!,_dE\rY;bI:Y/<+ǩCFifƃݝD9'6HDD_BLCߴƇ֋2@05¼'B5מIr7V& ZX8ڕ-hX `098ڽ<uP#kx$fޣyb8=3ČOl1c6@ݝʼnzCFR9JuSku܊Y Y3е/Nz L$|M3@*ƣ";JLvz lg Q86Q:EfF5]ij5;ô%;lϭ/}bne!Z[FI+o GA}!6ԽIn_f$qx] @qcseVmAQɧ&}>F!W)~LZ R)XwXTl`Gf2Lۓ+/D-\pQn,]??M[r|FyؤHNJ(b|$XFcyttv9y ^JbnC 7=-DlLz!II# zsվ,j~񂊨j!heAf` ŽO\ٚ,`$jo ԥG>si6kr2|[6CTa4X mj> 2olJEN:Iݻ#f_QzY,=uT04ǙI<5{v*eU /hTH_>oXIq74iA ޠ(M2IԼ rǧ(Vb!nf}lWJ!KiY](R, ˙pR!4.F-lTf/ci"7Y>Cƥ4#dN&Ͱj>U2;^k,`_,4c-C"I|+s eEd&;?7pKw~y UxGK9)>7/SKIZ굀RWzH&˘q8~3Ā?({ cj͞6g"W9 65X#AB.Rm?XneP8 ׋~BJV%hi``߲Y}/ϊ'b&{l4:K>=tH*fĶ]R5~eNeh<`}LDa6mz>g6~Њ0`(Fsʨ}ı4Zg*:qW4/jȵXмƚhێ"f=%".|&׽{eșJ }z苝 !} 09QLCXXMgF)j?YGf0Bk [;t<{ ܰ=τ{)o׌, 8l M/G*tZV,eo'{hAg,y5:[Ѓ(WVx\ZҶ;E|x'!O9+5\-bqZ Ȁ*m찙=?4Gq* `vFH^E!=MNf=.J}Ra{fl5)?\ٯj(gtqǁL97B;Qe9* G%Mq>[ИUMkxB=<Ι.+MZ]iV~"pSۖIP3g{WP85c莘)dE͑j3Wv|m1-(i\)q'w̕P,uJqb<@Q_3ת4iH7&D7KZWt%"c9{ AW(Cj`W2wDPpUD edm>`w̲蠸J#&?fj@s}޼y %oX#373Qx H\^0#3(Y)CrD+u1Ls ڲ/i'9sW*uFx2@p =0pC+w.@8Q˔_`F߳mrzʤt#$nm _{^(XBn?UC}s$VBJPD4H\c'G#\@zR Չ{Qk\]|kJ)0GX!aqҶ\HzI͎Z8=w|`aTr]4Uc/z"E(햣CZ]>q]w˄eޮ"0g90mM_tmNvb&$ZRs5i,hcG7o{"9ă9| Z kYDw^`\%_Q:u{,׶bp|Z몜=mIAwET&[뗌as~0wk|]dnq1Y敱Nlj㑴􌯯fƒ={հߑt a[Ɠ}-0͔Ϭ}dT#05*A sjk>LO}Vng QGDp6crQMQ{U<htqzgK_kka@6v'_W_ ܜpi׾B/S"E3׹sTa:pEl=3PF?GnXpԫ""2hkw}kl,tUL4VrN>^_3p9*ΤW˻r@x )w |%jY\IRB 6ttI$!9*jbrhWhڴLM PQ'|m LD6rcZ7= }j: d!ɆjPu Tqvʝ #s706ЬVVSp|`_g3WYAmxDxoa*@Ou, ˘in\ɤ?[mHM$(A9sfc#ipM˶8 Dubf<:Q~b{Ҥ퓣TR* F!S[vcZ8pJOYT\R!K:+[_06{$Pmwn=AW_!Tg& C_Tݚ='"2MΗWތio rNo9v LJ8yL]?EekG eΩ/=eJEXvTgYasM1^ZPx= ib.ZKr# tU-zٲV̢l?ϭ~s+~sxdij9Qj/'k8JY;$p:ܙ>h:"J$\.%-ʘv]*NmP8 #rIq 7n<8*!課,F\'rkZFcƜxH3ș$Sldo *~?Y w(}Q \jrRaIbTsNjHiЁ13衶/9|>.;LPzE*vhy͆#YM4G=շ mYWs j_NPcT3Ƈ ͵Mo=_W0ˋ7)!ms# KљI+6ueQ[r&aoCygG%#w4N4jZW+hgcd~ꨃU˔]b[Mw3c/YxN%!+V(ȥo72WԼزu2wx.^>/$Tmp$e-@C( _8,xnjCE/WGC/s]q71a ` i6hR6&3tC~eKyW#`N3 ~ݖ-K .MCOޝ=-;uN,#x?Ch"] (^hql@n_6'o[ %X10!KctB13깳m$ Vecϵ%*)EGwJ/!wUoR7⊕/؜GAA錄5ɕƚ| 0UWTJ_u+}NI-a58냹vo}ΝڇƪJ~3_:jc6G$8;fxr FuyM5-z/s"@Vac'@}Nm^#/AOr GQ !U'by%;\0?,rtS=dzJEEE_xxw/%`Þ^`5z[2K_ k?zKʞayr]fsrz^3 *=G(3S='Ym8b(L o-zE#?ȗ7xu0L8]dw\d'ڣB\UrT v"L 9;7rSdSP >m1smn~ˊ"d?-u.d!2]|ᐁ ?x8TrW!3*+5 {cDY]F< Mz6AxWH7 $h9ᙸ&sB%Da*XRu[8rD癴wA$R*5Aԝ0#sOr,ٌQȋ;Yr=z֦኿YgPlU&y/vzy=[։^;^œ6#ؙWo ӡ~R"RMfw.c鵨Ck-[ƴZaou4;vӞӲ]Wu h!.8Y5jNާwnr器Tys=_Zbz,|Mj\ 0]#EAAJTȳN)_|8uӀ/{e0;2&Y^Qaj_ 󛸐o3x )5᳿IR`m Kwvؑݱj1~wV6=ȧs %稚_!=Ҋ 5#8~qZC='ڲĊ@!ϕamX!z=$ SDgcAb s{JǻYbB˰\:k\C>zcZR /l;-o_C`KxE{LYGK]d`+tL!5^dO!D8AE-kg&{ZVsV*uŭV댴m~t0̠dgm8Mz:{$(}{uEv,fOQD!?0$dJf1#}a8 9 :)`f=* 6g:#HoGR| HvLJR֖{OԴՆ'2A #_YWܻxn%ځY`t?ي:El)`HL۽rfZ%[CW5&ƐLiCLHo&.s^ok>Q}B~xSOG(WEϢ>0V:29b I:w 8ݯ#0kRm"OYŧzpkJqMjnoʅ-LGelŇ[2iVފ*~p"F˱t͏؜r2VhqE%uYu yWO.5˙/g)1mpwɚ/BiR[ZM|uGl7UfY,gKݙ':Ώ: .Ֆɍc=(69z1e'9K\NQitW)ty,qgFGC{K^^=`3媪T/jpV@_ngyGtHOBխ;uA+UMgs7^,-A-eGOYu!8(Rij+jC,CT=·} j)gfpsZ/ u>=O_Y:fd {0\vDxe"F#/IL;gW D0E qJ8=\Ys9>:eIa/9piwAϊl^t iwj+`O6qY0)^W1Z{2įCMI4"ڤ@# O&ӡ`)Ȥ.kUQl1-55W6E:*^x ;zzP<I)<%R.=6r?xmL> bs3_Q8tDwby K?j<AG~97Dxil~16/ 7#L3a2^Aq'B4 2klRkB?br=EZr4&;ab4$LHJG^۾H5!Y]Y$iɴ!NQBz\/940A/ bÖD1Lܢc0qwL;e%Jx 3Ch . r8(oP1PfGUBѾ]=8Fi;6B[爹v_Z~<}W)-qNZxW,UsMZV]g ;0P?,cd[Irqx__ Ľٴ>G+nič 6=9FkjAC2{%0? N# !?B=;[gӝ'g7G PZH>'[trpa4j!wdB8j "ɜ ^'&G7ۅsǟ<+vCظCE)vc{~&5KdG\1‚$HPZIT9c%ٴ'g\/vGx!pUX-.d2xOPˆ:JB$5fb0f)ȮUT ?3iܺ=K ^I;MnwAݎ*qƑ8w^cldve+ڏ) ޸eڨD4ĩ:h惩c2џ9 +{P'o>ec,'^Aj'M6Sc7v9,$`th o ;r;u8e*Q{zh,yQO ~X6wJ,~ ]zdۖԡWmK 0Z;[#Ü3w;a (-m7hm.<-h/qCݕ핾jdl`;2Nmo nEpcrJ)z40Sv6K1w$fNuw :KJXKG5c\2Mn" ЯIп@ϨɌazAC˺x_Mىf)Go67/x1g8)Qv:A/kcc!hZ%/n2nLS[P7SV9AtbiL jf2si"9zCiVGZ: dKgHdԘ gR@^燃QwU?_Q8;ɎNG5..\3T^Fdc2\oܔJ:]E&˜P-{ C7ol&x%B1V\;AVucᘄSK_`uy3,*cr]pCB,v,xI1nHW&%?ͬgv.|[zWF=V@[P+P*Za%_aE V">MDm+;#BUgBPa4 `Y;䋲4q"d8T%yB/Umr-lkŲюՑ̓L\܏HR^[`N-nݹ$!zo5o{"cz^nU6UP+[^8ӫ_o8%(zf^0VC4#Է]tٲ-#ER87`pQ6b."oL1ąPnӧރbۋAG(eDKl0i>)U%mbN'ف粩iϨSE v^U0#љ뜡N/M@ؿJ#0c/Е2d\gW6q^r)j&[2WHB7[YVN|{ɼźYJ" :dVzR~G::hq!؞uRc>"+WA2=ɯEM$4@SQذ =]a;@>cmAP:=+%^m?~B6Z찤ZPWr™SHk7CdolzeU5(3Uܘ*./lvhYpٗaDk2*x>.-RHdq7Z0A3Ʃmt=vȤ,ʃB}GE[E]I# 4(@ F#ҮGZ9dJ|ԃNt6c+/2 9mD+Gȁl!n<EoS'W٤vW+gN4D[,ޱdՆ 8\CΧ+@iLZ)q Е0RX 2ı@%@pQ˸N+AzXJ`QR#\?="5,ځ{[d.dkXM,+f6v&RW6EԎK wƍbQCӧmH+,aF>ʌats4Et-c$J&Gߪ.}w)'*yF֫ Я0V?:93rWlH"{ajP+zkzm>WxRFfg cqzלkXi.*Du4CNn &ލ 2UkCHex?7E'A]t*HMp붍TcA~hp>puVwXh#l=7 WUc4{Buqhz#X023Z&c&F2qcӭLg+5*a'BP+AO0FኂhuLoDR>y˖SYDOk}7 +_{҇t8?>u0sNп4F&gD|T8q V>띝 [t,_Nȶs~{za]x;a|~_g:{M*zOGN3W faU ny 2QF{zgWv`JFww_74n9ε<#fN@d۸; Y\z㉡_X/DmZ%ʒJqsWE!S Cw)K!^-M6Rmp̤0@~?erᄒel\[zcİg0EA:nOp(Y /[Ȟo/>XnMSvB~|$ڪ'a'鿐̈dVA|+f1ThCS*Eȃ u&nn_4XXk{69^\`]](O6T&.-C3F퇯avR-yK`T~;33l ?ꉺ밧YdH?ͺF48.W*9|Nz'(0xĻs;;qX{šf0?ґ:HSp5>86hIܵf=(ݹM+ץx8o gdT<ta. ܐcA",wwzI1H*JK}mO+B5v͌{=`tCdYk|' 35T%ط}q2bdȨ)*z1ȉWekѡCzS7("/ֺ]RvΙ>>RM)VL|jM^SIA\.)]˪U!/90. }kUndt;}BjQ͝V*M^0,X~k^7m1嘻*|@!=P+Du =3$_[TVNp__jN)`v9m3c̕[/{z)qCމ띴!=Б.]Ls, juCD׹s*a0!FG ٿ0w󔌓OxˆM ɒQTߑQObr?G[N+qʊe 4C̉Ĺ\u;&u[KT@d\zJHبES}2ǣRUM:G6ko'XP8Vs{n`wT2QM;H ua k~28&CZ2ovTڊ밤-Os<_x hId6~ɗ&0:Ë`s{??UU8&p~gnK&/ >7BSd$*{l#΂Xy%*v!^a#f^)?IֻnwH_]:=A;$`ިv|gJ2#[xȱ_tqx=HSyQ'K5@ZR[$󐭊?]fh'ʗyaO8NURLM=Y±RBlybKA2y2'Y9 _&> _wVךjAGC&Q $lSԃdn v9E- cBDqtPt=RC ad(LË&ا&R©.;*Yd HdT:]-XrQ?Q +*su&KY@:}K.bcBDqxpouHM NfVc:*r}Y0u}yC;x@NsDyf7T)^T v&OjTaI۝JL=g2Ӫ^%> stream xڍwTk6" t$e` @ !>Hvg5"Q0\?H(}SZ8b  ID %%'p( U惄98pb<yW(-0z" 0(_%8h7I~~///>+t`hG@"=vϑm+h|# ;`G{P@ᨫ \i:nPoogs>Y @n` \&v?`* mZ*zj? HŇgmV)"\]p4 gJ0$r>ev?ǰp{@Ք`\h@;8\ +(}5C ^P`O(Fz@3o _@AЀ-j۾:$0]O|b(pxE@ &".HU#^m_{}p". G_)?;Rpq `Wq=W"B\IPcojA`UC wp{#a(7N8oJs @@]Wz/ ~LPD#`|ED?+=A#W)x=LEE~ߖ%&qŪ-qA_K7ey_/zC!TSMXi<{G=Q"hOy~72 +UPNE rmz[tdϦ1{vyt8@4Ro$٘c'_u }\)ފj&Č)x XSF;S y1ca ' -q|}6'Uh@J"W1j,ȱbYhF^;͛z]z٩ףx1NaT͠K#.P$u4cN6%Ԥgo5(,%=V1|Jŵ,TIHqN7CЧ|8?0K'DVn+. ba{,a!Go퍿jJQUe^л"o`wz#DjܼCtgM|{,[b4H9}o$@,7F&*LA`7Eu]ӻ֋w|)fC&-gAl<7lʹW0e-A='gLmk5 [x3?^䴰J'h>c EVqn^J|\rXϏn.p=Cx[+ ;!$kFFܶ9YmBLpl'nh2Ihnb͇ZӖBnto:L\ys2pZՋq*i&vj;l^+A6M)7ie+涮l/|c~o"Z:S_ւ$]+UqM,NAM6ȧ!=baR:d񍱟/{sv|E#LT& B:$I"Mɰgw.FG؟&]onx{aFYà!(έ&M(I: QF >G:3MN)Ivŏ%V{zʥ /Kd//aq>|YoBI<Ā| ųZdL>FgΒxEg6Ц-bONrV`41&\؟Q9;%SɹRyIi?D*qeGRBVG/ӑ" kO,Qx)wfh`f@  >ڴz8v Ypa/՝3>|/ 4g^";oe?,0^3q. ݋Xg?~,K jTqЈ>Pt\޼92}! F?[+{HV֥s XFoNm6Nᷠ._ ګv,7Bܠ0*pb&)U!;cyXq\{SMAV3|ID' ŽSï> zj҂/Nf$M1ĭD9HGb+x\jr#.uRokTΤ26팤']wB#9qb9/A=4)[t$Nkd0@OFyxV't6Y} tmroϯY_)g5>L٭#k,=5 'bo62\]9W߼awR~fO^lQ%)@hhIaGbW褍GF98uJ[#1?1dvBS`Yϧwri׀VVMWsIE bmR衯wQϐgKx>~_|OØnw_ qsx$7= MҐGUgI:0y$Ҭ a'Z+"G6UX:4bz35S,WOR*6֨_hķ.cLݬa}> I2M򤋑:n[[H5aձ,qm494 g~ 0OD)iZ3&] -u~27\sarlDb+]*GHл"T$?x}S ?c#x9];^!{=vw CBGswqstz"~h7}tzHm' Tt{rg[|FҌ ^?_'WAJX&J X׌λn>Ms"t S&;<ғZU݊l!EfȇfaD~rbęgL/n,k~.플lIRlO֜Єվ=*͖)sc|,s%K>&} jSً6͡:gwaK#E#,`VUaOu!!df.~T{|せr wLe,6$2Cg5jSHHo-DpSo2jǻm*i.%Fdlj(uo'e_>,ozd9z}GGui:L/SuKHpDҞSM MH)rN ,9ҿ MI|!M14eU{0yRZcc%s'Y J%+MS戌dכ1Ҡ>Zalc&~SfN[̇siYαfٍ,l5'q* \F RNfscˊKjdZ)uq@{sNSluV[{X_]ʕ1*y^xzҋœm<˿בH,̊IOGx[77Qf Xv}ʒ!K竂gaΰ7g08rp s2+<:EN ı^x DF|S3$җz[( Sihج"榢禚Å)#?Wy>͗J:+C@HNoy" Գ#Cκu>I .g!-Rв):i+:Jt+ses>A0=&*gTRz2q}ު"Խ#3NCZ.֚Oz e*5S+a$`% 7:s)1 EhڬLubVx8Χ&Od+$Z!qgCJ=)Am_nSeT7f$z{ l7ئOhq>G|G!oQɡmS& nVEXv#W#uyt\Kҷ;!UD$ua1JWnc>i:lo( T R_ɼ"m /-iH|VWrEǸ=j`AcSK2ͮe)$e8시akeaIԳr?/je&^B4U&r&MRZG gR4i>T5nP&}*`f]1`E!~'YzROӂ[;78ϕEu6sWFa[f%M:xvLn.ԕ+f"*c IF x3is캉5=UZ='_$|Z/߻N[dUg\ǘY?zS=Ab/ai/ڿãN؎g?xY6#ǪYA 3x_>읡KwcF0uH/kn\\aSeD/bSE5z^ua~\Vz N["r>_"8i/BYq9D|tC #T+]Q ff/Qy41Z6l)!d/ _?:=WbNA!4:Y,]%=65ň&^s~nayCJ{Gw zfsQJrpBt!o //Sx\S:;A[XbjT~n%(zzLm[ΖD"^7fP 7i]_ |w8M]^r$0%"̙qeˑp@G=Bǽ v,0r[߲p.%˻f{*y{$yh8xװAKrwO7b=1?<++.*۴G6|'bcޝ(be2}C(bըſUbxJWh5}b'J;,rZ57O5KzFk5qdj@eFk<Ԉ{0H"'/Zn_V|eۦ#{#,G%H&aYƕwZ73Q)%Z9dyl?˰w5k⌆$yq_z2eZwk[N-" endstream endobj 472 0 obj << /Length1 1469 /Length2 6715 /Length3 0 /Length 7717 /Filter /FlateDecode >> stream xڍx4־]6DC{Dc01FNK% G !hIoZ߷fyg5, Iu-B!!!!avv( '`7x"0=! SD]E@1)@XHHo"S :tZ8I:s|O(P.w` `C!(qA<}||@H7rAOo#W=;&.P1  h/#`u(W;`;0@_MG y0;u@MBWW}H'@Baj}̪pGe;BO O>WNPӯ2<MЇ^M8hߘ3 _ L< at A H @!$(? \G(p8C!N{B}BhB^zA+ł&//, @1( q @п_M ']9_k@@+ oT+*H mC w(/Z^("гo9B^mDӠwF+x_@TB (M  _7 KHl!o$ZM s_U8k؄E OO( JGo11$XaQ  yn]iPL4CA=h Doq {@|!`YX:eDE"(jWle(cY^C%{L@zË1=y( u#¡'=&Gxf:ٗdCF{klkTH^[W]m+=;%D1k% *jiuch¹RGl*&nC4RCs<ޣpۭ '9@atYJb0&'2 :v M,=U{|ߞC,S;-o;{lSI9{ov_i'3QCk! ڻԥ$'XDH MLt1n[JE*LSV0P-lXlDУʼn[*w {&9x jtYؗqj'A.w,Bg M(=(pz3iӗ ņ+XlZTwV Y':9ӷ}5~aQ8 K FE۔?PƚZt:N[={95~'ZKi s>RRdF7C20,X9h)Lx.L@Ug%ᇺYGzAA9VIOoObomҫX_);j!+LyWdazs%n'z@;E؎ 8ahv\zݚ8y#m= ƬvC X I-kixo4HPZ˅4u;`n:3ycXkll*ݣ6HC"+X4Ŀ~sٵj\:׬A/{(wewLfT+awHbWOR4{k֤X>-O\) 7C4d.z61Kˎ,E Uu=`ޜC=itm>_gB@K<`Ǘ?H5GFN ya`YِCQ9> 7ounU*lc`x7"tG~UKr!Kя+5A2`epbq~'S켣G*c{`{IҍЏ,I#CNehnJ{̛:2௮,XòS1*d`mUM{{;%}̈́o1_痨 G"k.K>]x9iG](yߦtzҜϝ a>"/ +{~5,p}g'TwhLj# tGLݯOkFYQ"0573GILoT _.` ֜1R#.5 9Q ʍYłK mIx6ZfĩWô/{Tg ଼?e (KB/м?gri>?U!8:+-'1 oWi[7Z{:Q1Bk P_ncA,O3"ԩ C4 Ӆ[<dKuhcU<u-l͇;z}O3 K$ـ88䔙\/ CyTEe:F-F$d(Wʱ]cwfyhØq{ϯ3`dq,دcGЖ8L`6.X^=Yӷ7Dwa1"Iv/ _A6<^'0 !S0E,F_pb(2)<(=sjUUs\UOT0U34yb^ЛbS3S}QSU~9\~l I2~B[׶`G>P4/cePm)}u<ڽf͜ V'?p߆i1H#NZ[!rVZ~e]z$y"i\{E"&Mv_N s$1%ml0:{(V )~!LQ۔9@,YP~uD(e)!t&6y٘u8>ԊF4*կe*NR~Vb2;}v$ZF*KFP4֎DTDyS읍}*·/ǏFHW^/Oo‹c.N80pyoָ@tgquoOM?PvG yziKm4; \W&KSB}gRWpMD"pKB{fr,o!_`T7Sf;O%޻Q$]yvK;J`K_)jDsS^7mXf,žf'p&0&s^0Hh.9^ ʬgw1Mԑ.T򦁉kBe q#eM?Jzuav|Ye'K|M#9DBN_~A DV"VICjK.9 ]Cn~" %@Iz/QZMqa'}ᒾ> dlf.t376776{G` #'?Eez0 kneb;S zj:y`KmRzF,Ga];!_Zf;7x*nq/WN!&(xcA| awZqڃյ {\*IX: 8+NJU3|FM~pfxbKٻtwDܤ6"tĻ3 3W^hֱB6x$S!;. ?(4}Y€]{,*cʲ "N!/Tŕ~uivvÓ!Oٿv(m?C8!٪0i]c0'|r2Z c3:yc<ֻjaJѸg g. [5vcBLnoߖH e Zfdt$ C5=a7" KK\i0nniy@\ cRwɼ"Ip,֤q"SnǖYP$ jJBRclOs":.3D%'[ųꠌȖOY_l/M<|`A's/ C"uOU- g{aiRY$7RH\GrQ$?/?ԚXgqmA0X3M\TF}g 4qdM|ݣe3)s.fR[EI')YƩ,{z7^b >:d[)̋4lWu?I{I|3(9O$u\_Ur[4fzxRUp~&Eoag =0X^x]J#E I}P,:ÿ[Z-ӶCKӣ:cyk ϛt9dqۗTx|3)2Y]j]P-٧b):!`TVnCgW&lӪ,9.W)we,i.)‡5W/eـz3(+HuQ! $~1-jϡB]ʘ4BqBO1jtT/r:b^al[!BkY&(!M]L=,MIgGP:>:B`9wvdv~e?󴰴/nE4T5b< w_9m׳}OglZfZӈ|j4b%2glb"X̗ OԽdgcM]hNKSA{M(v ̤f쳺d EpZ> stream xڍvTݶ-HoҤɇޥ*E BIo"MwW)"E*JGs㽑1Z{V]^y(!L@ %E-S 88 hg_r#AL @D%$`@  p(#0w"E nl-7 !!ȻPp[Ђ`.m!΀C*qqCq/8ЇP0(k`@3`w ^ p[၀Pfs@Mq!5@߳]oBpd-#;3 QC{AE8#1OC9P nοFUs"@O b݇:!^ ;8jk+ЀXBTTX0o[_ }\a`~HW3,n|C_Z*fwLx%aaq@LBg]o!쐀ğf1=?_opĈpG`-M[SoUnHwwC\> z1Bb\o1g`PG- pw7 G:Q/90];ףW c/['#!=Wa(A >D`ED?0BH4&!QD PT@0-̶Zv3 %FJ;ֆV3zn __ZiN2As9h?UwSV|ش?#ϗoŴ9h,5}oϾunA bk_mqO_Fu mUne& ixk+AS ( C?NZ|2zӅ4zD+QSf{OOSAX$56}#Eŋ~!z{mbW x7K?ǖD" C<䝜a\bքߓܔ(8EsQ  Q0*reRӔ q|ey7$5=9si0pTCuҁ^qJi+pATy:I7nϤӧ֛-f':"S2 j}LC$fz5lڥC`Ǩ˩O CcZ2ȣuY qxk~6>` lWjo\w$N ߤ?諑lJZD4՚깯-6ua0cVWkc@fl\7Wᜤ!F=y2;fyS_99DLifLPb$ک@!rא!Tr.A%f%g#W"POU/u1V@aǬ@ZwwC7{< o_HG|ZD,OuH钃dfcMQ/ex=wnEmh{r϶i}v}LfJ__8?V]l4#/D;ٴL'kyӵT&N#7-0836 Ookǒ`T3yr3vcѺϯڙĵli+ll r@ev!",ҪښɅ QֽRl%,C&註!`ulUӔϓkNa`vۡ8*&ڦ>)TUVPs*kiYU4(_f, ~kY"D[NDn$ryDo6/l`g2n#7Q#+e>;u+~-[ wXy(6Fv>mdq5۩^BCddоfޠ}v_5QaOJ6[zc/Ԛ4ԦQH!(-YlW]hA\t3ۯ2{zdG"f?H>g 0V<~rVc,T}^Y?Q/"~-lǻSCh[`Z~Lܮ1_,8*կJ"k&@4‘2ycW۹cM]3WB@&*nرΨ-)(8z|}~(%k)F/1z9C-VޱTnVڏY/]7G,qr6$*7ʛ~B~_itmPsrNcʲ _@b^%csAќ)4h8rD\Y.V{{E?DM|diWn9t$kZ\#0(Ц"JbIdqs.S积J9C;"պ:g&>h0 6%>Q$≔hMJlɄ$Ј ku7WOu k kt;C!uXwǠvTyJ<]z>^c?i(X}ؔ4vW~ rRᐕjZ1 i:֓%yNrr2As=MM0>ݧ/\m.aOmYmhWD粴6`{ Cy~:k޺2,~Cs1p #Ne=b/ΥNdA`=1 ?x( b[5N3FO U{T.2"*D-7<- .zŸ*bڀIrn~!fv5֬fcm ('=nr^3}A CBd%素Y6J8 ;~rSJ`U$uOxǯBo=2QD;ٻ g~{F>pZb 1R6j e j fQEp{ O !;3oTLͺܝ,вS $U Q'(w1x"A#ɧcrgqtYL9Mֳ@O;tXqHe{sEqm)S}M޹<M9,t9 YXo#B9?kP^{f>O4ȭܧϗ# b&br%>B$ 5]P4g샔vf;H:ZwML{3#龪I}lFC8W7xP0F `=}峒ELXG!LNS䢭)# /UwEggHzƆHfHm=11̄17V^2lo@c36 k)E([ Ĵj'o|!1V,+EgBG$Zx8j;%dOHnHM'yxlޥbó{@<,[+whsKO@ܥ2ḵŔSV*O!6:Qۡw%8-7e(Kmز8=VYOvoʥ֭4w3v8h"lI깱'u ֽG 5B.)Biۭ)B1Eog±*^=Hn9NKJ46efN M48–M~#(Gp2i!!Qj_cOqCk|1&aS]VihYp Qd#^3ޑ]Q*կ뗚V(cH ]C+Dt]-;z'[/n_h_Elb,x$J4hp RkC{飽-?ȿ83lX<\ǢSbKIxTqA% bFO戍BU`߸N%Am0ivٔ𽃽MLT3"Ltn 6XrO7:d7O0hFkCL7yߋF.t{q& Y(C ;"~e7k8-p2gEj]せ\/C9ts33>sVm;E}+%Nb\ ۑ Pg'אֹ5 vG.*w]uJ/7&UW&SZ3jwݷ ͏| O+LŽנYGW*ERdw Zg^OyA椻\*GoBAyѵ\q6ucS9rgab!nۀ˷c<>.40wUU3ԯg–Hf? 0?3|;E XTϑ-@ n u\ e~)"F.7ߴg5 K$goꈍթzh%P:xn<֭K9Y%F񡽄MP`V*k(L|5m3gE+'QG+9g |fUa8-/|.ì @ad;i,bU* 3,=.ɢ?9&kn-h1;,!uvbY;O5'z1ߺI׫rL!5]*/UcX$嵖Oc;,EޟE ﹷ|dG(!E5 ZX<|Tgsߋ̅`}E3 ;L ] Ѿ~|mjI-=CtG)8+MO^"=o>{x(31XvBhv)Jzusހf+{c27|Z]?T13^{# 7*P ^_kK S,%c뮃LPC8Ku")CXeQc>OeÐJ$7ADfM}WB tQPZr؜4Qۏβi̙ )]C?JبD+XJXjWZVeKkoB. M"6+)vvl^k_1fēa,^P40o('T 8i;`N|E2 /3T2v([]i'|M\x]+= ]'@$FvwR\6O4bzPN7_0WKun4IN۝/~3* euǔqޏ2PBjYrvbE2T[,won+Rظ%Yi[{:?MFusxK{0FHgu|XAsIt|Na6!Eg߲ O ':t.o(|ݨTU r"g7z 0czꝅCP+kl~62-9p칱=zr+Ԋ;]>.otd8Yyf*Pݤ ~+9S8IUCRy!3Pg3P~[3?ݩJxS4Uサ -,[/Sz{l$uYux,WAۇ`kr'kWܧn16sůͦ5{ ,*cJqkp+' $ko9NZ}b^Us &@jpJfń=M]9_j#-(5 SaiCwѷuky>)p?anoj'*pu}VY;IlbiVJug[ g?zd%unklILMn<޸/1K}fEHY~o5Ŵq{QUdRxy%h<dIt}j9%wۚgsqUY?^ʨX0ejԼERd S㠸 7E^V Bq)_{By&;,{@ -.nG^e h:JK M>t<`U, 춵(lo"B3"Xini-SQ.^rB߽_uFeuܧTCgCs endstream endobj 476 0 obj << /Length1 1460 /Length2 6493 /Length3 0 /Length 7497 /Filter /FlateDecode >> stream xڍtTTm6(1( ! ]݈0 0 Cw#%!! -Ht "(<>}uι}훍EGG n QÐ<|yM}cQ / &`3 \p8# $ S!Q~p@/GH@nP+&/@ Ý<P[$j`NYG  -#Ї?RpH"N@;/х|p"mz bEraK0Hw@P0悊pYA}U YC_gW%~` /Yr9Q 7dr]9$ E:!]x](A"J!]~էE@c= ka YY"a|:BTrAAl H0 xmx:A~(Np'5j A}]@n O?W+( @aΎ!֨#S>|=C sUMt440MN P/Q1?耠XU5 Z1]_k88̥GYC APϿPuE@>ZM񿭪Hjda6(1 .JP #?_At._w *lۣ. 羊00ל @ȓ%'aa7?j  HT` Gj rAqأ`0@Q0WB bntqG脀jt+ { fG!v!-߫ey ,3FϼPp{nUA34l|ڇǬ\$b1O^׏6&+8ͨhuңx]ƻML$>*!UYpe"p}#aIGaD"HbiOF1r-Ѵ릱}Y=ݩ;D*i)Xrzi)]儿ɗ&ݣ-t c_tg``s3 B#wF[Ƈ$Y~zybӂ0HaD֓_gF@Ƭّ4KFQ*w"W>95KAG1V +k,B >~4}IFF#hs&Cdo =pZ@˰4骦ŕi`H)7|r)gIJAq?h Q32(ZZouTFH^:Bw@βU/{˛EZB}.zqj,E` SqI ;9@tv^WƙR$6 SyVy[RyIFH5pD*!*"YG9]ŨN~x`54Vc/ߓ<]%i?4ۥ{1/ gG93\-g2ֲNoXx~S3(>M >sl\;,b/I;px!~t1D's+ZeǕFnRCH40^cI*N}kۇ飞=lw-__6~"Ol8;זPYL7̝ rnD{!)S156[0O>Kry]/ci?W2>%ȫ,uJdzc xM:}\y᫵Pӛ77v32; =qyrc]~9}(D*x'L(c| R$c!Wqݵfo"pT愶1ӳNP @/cYw =BupQqG.qΓqM9<"=.UX[˰xeaKblX9VfjN[xX[AH \F#kQ܊r(0"ސVl61{wWb]x9FKcIϰ%7YP?&7`i g/rma#/o7{t L(>aJpcߨ͠Y Vٜ9YR:*(mm26`%K̐hD%eId#8bfY*COrC_HyЊ>,#wL˝wVt1|LMC9[]VGhF#o-_@WǮϖT@BB2":)ۤDW笘3ʕXF/D:+RO.,=]a^yVqP43Peq@z_V ] 3!y| Y5< l>M_b~ZE(oF{z20ED.h%IRFYUKs#㇊be 8rq Z4[QfhbI~Z6ZdEVC6IfS$1,KBhc}?w*%4YZ,wj*^&CRK#eo{8\1LuFؕRfgH㈹Fu\$.v?4ym2z^ՓiR[lju ϼŵ Z4c3"xc8 ۲ܓL@nvyYSp]iM9xb !|ӌα;'$\DB †CkV /Lg{&S)7=\/Zv|+WR(~兟1eS9&ރ{NR1M^,&Љ; f:C /؝;yqW(Q7\Vp^g>%M3U*ՠOQDKY\IXz/0굄E'-[1N* {#C.Ue]TnOST$d!N8Ϥq%LtݛVx:b." > CIQEN"8q|"S-C!Ѷ Êְ殙@]K6- do̺Oޣ,m/fz$aͬ"ibJ~62b߮]m?{Mů2-nB?ڽd3m%j3v{iTw ?.?-ܶI0}V|yNvzyilIaRFS@+#kZBmB

p+N4X!W"L91ֆEvqD$ӳӶdHӳ}DLۍ Db"Z0YMNTҽbgSM-ٳ6C0~]6dx f u-v?p( Wn.Fˮ+9ـWUc LK.$B ч~:E šikQf\Fy=QMqiF]ɋ\E8\͸HN3@ cQ#\ՋR&U5-Y{<$D+u?vyț^c9jj OUz+BT/wc8~TP-0|g4 s]gB? Hąfٿ ;+P沟'jp1Ї͙Ov,/o#M/A(_?dZ\=h qle5`2~¨(WH!sƓoBmڌfI&eJpحJr P~{O+"6HȷWX %y7!@VPNZ{K>LbMC$g&6D &6%WC18wwUXNOh%^6oMvJYLXap!3}4;,67.LБKgo)ժ'#Ԅ(~Vy9'.H )ưWU%nL,ZOuv{p={"j cT |eDўbm#޵8<(Z, 3'5 T2k05 ^EەϢP!hKe\Ga8Xr?ۢΕcz %γUI>KD} nM?dkfRa89(*iQ4́c+C@0q8nΝNΩPLi>L: SnΘj=_bit!?Y'jep'J9#TperY`5xJ" F!i%G1[cIɏ^+j"([up~WayBpvJ֠QsqVN!)(CrίZxV=-q"]ST&DxK0oQ`l[!0La8m[6ÐlTAYͺ-RA~ ZJ #.mQ@5- lC7!io&!S3~kεpoN+sѦdk endstream endobj 374 0 obj << /Length1 2067 /Length2 13845 /Length3 0 /Length 15109 /Filter /FlateDecode >> stream xڍtj GݠĶmL̉Vm6[Ө1y[\׾orbEzaS{c3=3@TNU ONjl\r(h.3r~7HY<̜LMZ2vd>I,/m4=F;{w;;=#0%0AF"N'A~ E\F?O`T/~`g03_d4|_}e^?{?˴pxX,߫~?}[~`V?w_KhGo3tx: ct/d}b 45G{ߥw`O%gtT>npx?Z?WOMtYza6K}]~@w oUmP}0$,7jzeP#2WꪌMЭב^Ե]qzD'gx噽6i8|zU}Gok.ilG.d܏nu! {JU2ϥ?բts"v'ApGEϚz#9f-by\/Weq!Dy>>C%r,U\ɿD9>@=EGGV -9NVهb@SpMB2W_8. Dk* #ᵿ uur#svJsTl~sId]%Cz;*ƫja}]cL&k* FNlpUm`p=:#8+j lrƵqY7qejRoڳ=KUQ5Cb:G` {$m>>]}3F7 V /+cbGffim*S0Nא@{̼ĺ93VuZxOM3) CmTAfQhcGy6^J㮟|O[Oa )R^{RPD`Y'"^z.tPfc2:7vsї]yhJ^T}ujDq+2?`a@118='$0:[m|$ XC=iJoQ6yzv?Z3+Kh83ac`ӎajkG5wq-IS?sfrqj%~[AAlvwҝX%T[jy<ÌDİz; R=Pu=LďΪecz0΍1~8KJ/4#ǣ'f'BNqdeS)yC%!WI|[٫ʾ 0Krloej{߇N_d~65G}/=)gڅY'o_*Bf$mk f4፟ŷwZxYWO6FnjE;ir5? 0 ;H4p$qkK4|;/5ܲЇETU*٘1psחm~vq@YLLUܲ[5S^xAܐ+ wn;sla{˭itיE;6ctɟo Շ\pvwW`]&j :{̟L!!`w$ovv1j}QeNϽqv h c>8W`?VV\5ա~f?H9$\v2]{hU"sWf#Pˎ4qw٫`P_85Wp!mʤqleO }bW # 58(jg)| 0B&l3* y!5A-N~nFV vק%.ͯd:c~b$%y/!IJy26e~& _K]ߊFχu@S&}h=%4U>Y·MI 4\Q~/Zvg^2q` =BvIU 0&Z,ּdpq74fp} N.i6579.h Yn؈&o6˕tQSo #ԮYe:u9*PccxM} 䛼 4- 'Z$ L&RqRowIBAw+H&ma·-!<{`܁$W#Bszj/U$:z+F&-z'/C =s6:eC!ye"y+os45nȖByGv%MD& 9tUi~gDxhR5PA"TVX(L:hJbE%Ky,HP:A+f?Bd1B5rHp$7 IAlgqBVѹN樺(ڷ__4׏SM01$vU0oP#>aE~!=*=毨1pق k$]ɰ`Ā]cE.Uɩ̍s]ψv&,aUDĂ<[h-{XΤ}[X-3w_̓"T:iY `uʣ)"c0lPB덧K~8KzuC*: Y='v@ 6YX5ا=-`CފO<"κ!+MKHUZ_[g~N4e9/gH!wp*+?t[O0pW64 o;NT]}Z|Uv z hn !{u7Q$|hn?D"?>::b{4=KN-6g,sezN]<{SFlh_ ]6 U+?askm7a5z@it~|܏[$^kqxVu[keM3 ',9Wwd"/Mp9u-Qa]^PS+rseF;?T"7I]z-wLX:Wi7s ),3Ga$EJ=-f&MӳY*>sxv*)KSx|N[O7knjW;.?^r"P}(lN' =Tu(HmpO1zCyzЛ&>#t=sJo,\-vի|/٥i91n(5V4 [gʩ/ە BR\J6KW@X|ʘ}(@! .uYM.-ei.c˲0TpEx-Oݷso#@m_tZ($E+//KLul{$Ǔ8q6|okznN6t=I,V~t622R}tJFEf6CgYINS G+ L'lrWB9qhoG;VR G[̯&F<%4졫2Wy.$ %x fdQ6ϖr>LJ&QKrsJLd㥼)P_7Euﱇ]!ȅjg4GdgBkSJEhQm RWX 3N> ,iΘޖS-?kpVE\ C) GK FF'a sN۹8%ߝ*^b~։aBX`x쭪.*!^|6b_I5H+bIF{Fvy!Ҕ*v: v f2m %ěS٪f<kܴm*xEq^g &pLWA}Auw JM-C.`*H!bE +j zK5GdX`XVfyVafss fɗbOEE=S_KFBK0 :\  ?3m~b-0d4C0 i+<$ʽ` E-@z% zm۠*3rW<٘z K$oN"4k$LYIAkIivAC rLXM|p?d k-Cbi4S Dۻ e" ;ڭA^\VoxOm-[ %ϣߤ2}03u.x1B7[+I25y+8΢!4!(uM#e|Xppa4b0-Y]Y!T㍽ }OX9q}Rq d58Q)! y.; [1/̣n$龾zHf` R$}ƹ-@%2c>°aC80 /"8WJ~%i/pħfjAj#Fⳕlq0g('!d>*[,jDTqBRmsB_6)YڐyWXޝ29:\t+̀w??*եz^|-_Kᄉ SV_`"lO` 倷F퉊^W&0 9OVCE|ҙ{#/d&fMڐCCxŚO:c5%@>H &L l6дW`IhؙL)k+B6VYkۯc/Ϊ,;{dRD]jv]s=qM߲  P&wXX,!uvyE 7@7HAt`` XJZ"U[EsGyGhdʇҍ dpReҥfԂ Xz棽; .(KPUuaV,T͇#u 6 NB+^)Pahy\#FI gKK ݱxc lj&W%$N[tv}Qq%Bv?٩C[VZ㇪,JiR@3xVQ8^QW>?:aAnPO^rcm>v. >fo29ߖ134, T|Ail 4 ՏIX\O!)-$?֒ e,%Г'PFv(5Ws eZxl5C9w̤;HQ{'u-EƸҮ,g"uES@F73@x gYx6Ή]ܺ~SO~Wx@ >8̺Ȯ3ߊI*kO/jޔˌ;q!/ CnHa'}cutK]J Q}呥cY0+񜣑Y cС(RO51͋ldX?C?V ~m}<hW6wfO_V$Cn/4D=* ,+p6vUcz*jzz`ci$SS6:#Q {eypƮMe2D6㥼HM=%)U/(oC'$9VE=EAl>}_7bJ sT ^?TN`"' ]s1$*+B[åAy≼gi/4([í)|2ʳVg`8ե}^n+#җ'Q}G8Fz_]yk H?P=ZBt:gaW~P]H+-kf'H?!~U$y,J: M1=-F:r@V0n̋ewLԀK -/И gK7pFZ3)$'2>'=Q o,.  YZ-1nRRt!jj*0 Zz=$ [{M,j~s&IT]/҄&I\Iiڻ0DǏْG X$z!Vpf)P A'qgvqŵ[y.ÊlxUsueXԣӜُ!kf({o38V] 莺7 :ax_q?HH@.Hj;GV%^B< %dA(`k  ¥"D?5+d NiE_ш'NAͬ|SxHHap7cwG:\@*Ra/hnh(/}mPb-m)jX1)Giü:qpAk-n+4 /;P1Y/gQCJ ~ܒWrޏ(X:Bm5M"DOAo#Np-aY3K7 s#vx<鏅FaUFaC4N;82?McL/MJ3X̧(h6$xέ5N0`ԫ|h+O֭a||PB >p hɴB yUs]m^bT!ő>(%gֳ֒aVGN^T0?x~d1h[0nﬡ#),##LSS-,X^xD=Bn"iC 'R׀_U-]V׮V9GZ3r"}Z:֚Wxj8o[=e\'s"R*:zM+/LEsUCbyOtceTmUnV7%H:=$=z^F9  [%l_/`qjԶ<9mq>?gͽqN\9SfAlt t&<~^y^ RbKDZ*TuTk  }(/=tr^LM q.LB808pFt_3HC. D*íČN񩩏ּѳʎ$Ia8Xw:D+C9*󛚂/}e8B\4,MSQ"hf979OlyyʑvN=j.a$}֯okB~pOa%"O6 uf,[L5DT^Z.:EpVX|+jd3_ƆO :OCOA0z O]+|(b|4a| }UNQf=+bӒ¾I<.K| n:sęWCt,LGfpvw[G~% / 545p7idPI<.YKP|W0(ĻL0RW\BbtA2J NcoJP63O jT3[k92LWRN؄FpvMv1]r!,ZHȠˋ\|<oNxa 5y}4AOVmj<57Ns8eo=a_e~G(n]'{ W2JL <25!//t 'uʅG2ޜ,sð CݡrJ!o~k"i3I3^Lں2(" \|ǪW@WRZ"y^1+YY %9+(FAi;97&m*$8iwn]\,+'=yO,(ť?VU{1/UMUa~F}88ґ&su~owd0T t`|jZrd5{,#]j> og3ĺU`0\.hL\6!ehU(MFgUA[[nϧAkg%2%ƁUD'onTWUcJuaPE5c&vẂ2DxuHB ԯG!6qُ.čVk*icw(&r>*rHگwlu7?t.z&aJsG#rcC~կD&ӢoKxTκz7\A%8 i?p7y#rm|PK=v|* &pxnx71 \B qu*f#\;.;[Y!ϋ)E13o be18f kP1_SZ@讷ODQ0>XBE r^qɉcvTbX"4=)G?挰Z{&bIWf+u(݈뉧r|F~Ԍ?rY[)1br>-i2m)OR`ml$n`)pE;A72&1 dU/(ҪpKB0T|W:Dpli9Lvz׶`mAgud&pKCtqYyQ{ )N$ڍELnb0Mb^*R-qkѧ%LpKgۚ n~m@yy}zȍKwkj϶e4VLQa1av:A(GXJYANd~bni |f5J^Nḿ-v U&k 'ձ|\ws-'_f;2̢|QCԤpI ~\?^֠B]]Uo&!U?®s0#^֎y5.d]Nuq10pOeF`58e:G|iXiipL>&!uсW5Юv5O,,3|qNΰ‡%8j 03 0 FAa\5s;kW1qPWkք1b֞ߙZ?w/o4kA"y` [A5˦/nqmg; +ğc"%U߭ Vŗ1śHRj%3\^2*],ׇZEP ^; a6 զ1bh vW\ !kqPGo0JL{xLiDHuq [>=%48_+}Ђi<^BFg#~r iG떥O#{6l3^}ϏnuN 6 ^EGOo/(-+xA՟]SyAem$.5YZ60U r=CW ~<@D׵A"sm$eS7CK@575zHlac3,ROA5o݉e:9a_nd% )Saֵ 9׫x5M/~p5~ fDKcOƝ4Txh8:;S$Au *"|1APR,7W!p1Ks0FMNr7%iN/Lmf~#K‹eusʓ.b/ r+tv'>CX)(a{Y;1Ik2NWqsi!0nщԴ .Y`wnGӕ9J\?F#~&E2 e[" VSYnF+*وB/Gq) ( f4"\%gp'$sQ⽧#ggHTB![@ *np7"&aO}w1>(Vj\<~ZDebrCV>Jh;GdùL"/_OFs?5^/),WͤWQGţ#aLo `+gt _/CAߜ&tJ{{ av/l.n |Yc`?>yMeax]R N?Z0I6;AS9=;˗xV AaZdx\ D 1qnK\w |*FrtIuZLzdˮsH)vbH4FQ~~JE~WԊ 27/niQ z5EueROЏyI?2*~3ֲ: wέ䒱jJk#zC:QTi :*Ґ5 > 2]VTr]F][z2Đ52ޏѽ) DT_Ҹ-YxūM|¥FG.`bgg嶞l ^Jlfc}\bҭVP,}jkNmBp-&J`Fp˧qZǰ`Awh)UX lcah/YfMcB2uLM,x/Hĝ-Ф6k`\.Y"fP{3qL=fmGB3d趚n!AHW\0i5oyq:COƙ]11j 'D=p0ZP ЏE]Ϣ+RF٦ 5,] ÎjUDBن0\ dWҶaSPehxhͩìt^ͥ0Oֱ]TH\}k`' wڊɂɓqbNdeq+):> [75$+k]KĎAJuV3c$~),_^EuOPCF/TAh_6 Orᄝy-3ׯ+o2׃Nm?7!r )OQ*74;g4့lp`"h^ v宆z+~϶MuzB:} Kӥf3K]ggS5B=2wؽ_IwC +3'R0Suf.tlv lDwN^zMR D^S~:borUX"v%A8r a:lJj#ϮR Iew.Vl:*rEPtcP FYL _Q,*L0'uiTX,12c.FJ'w6htc cWຊFH8% cU#2TglhL#{lFNlZ \{@#ukn68|]j(:L}t= @K+ٕq!>Lj<0h4ZB€23çR1Cb-1ѣDb!T:/w{֞p]agbVsX1XBfDch(sx~Hk`je*OLKO[{ǵuLǟ`.XƶL=uxN?36I@(Y:zotduL4OS{Hb!wpiZݿaxSm(gƪ˩=/oб&3rz0f+8O&u;nhdz?]݁.(쁑ގV49Y-wtň,V]lmO)0;ُT3MNک*s$gO] ,@*Ԅ5ku+ ң7r :}ռaI^ǥÚMf](PQ? ! Wq T=ܠ\e~Jz,ڛ!F4{RְBu endstream endobj 376 0 obj << /Length1 2266 /Length2 9013 /Length3 0 /Length 10350 /Filter /FlateDecode >> stream xڍT6RttCw"%5C0t  ( R)%twH;s{o]<i>㖵C0$7W #efց"!qu!g(&<Fd `$Nx=Ͽm|:JZZwNNpB SoOU w(S?g4KY Z~/[_j5jje]WzOVb uq_*:Y4BKM([׉CaM3כuWvw 0 ./j^ !ZB`G\|Vp D#aP7Eo{/5#>P7B=PK<E >!tرX[!r*PmXEPn?_?RR.3_~\PŁoTmVP?bR]8Ll~%QQm.GՏ5GPc bP `ΎDńtFpD}i`56?dG=C.4(`*/qAA3SD  '? s? ?G2>Tx߽\=!cׁ[ P zQqX~[V6(v^>;H麡 /qqŸ>-:~HWx[gOkg.F |{XrYͅoIK?Қv۩;9DmYkwyEcS lMo W!;6IXfh/Vi"3rb;Хm|'Ro6ۅƘW)bN̝4^paU-?i"a}SF^6.NylSOjWM༰LkeȧQ]Kr`sMA,>Nȯ|i-.uJ.S.P;w+WB?,NŹť-*Dž1LqFS # _FTkZܽ0(C uI)q4]o{{%HX W +urg}byԃ Ðrז裮t_`ć2]ӑ--uUͰbH 0\,DIO+%UΘ|}>0Yb~K#t#ݪ=W\=֟<{Yz+2R0Yhj@pyV ++~=땎}jni;su]=det4wz=t) j_t2F :˸vҧz/4}H8V2-Tt6r:SJt*Ǩ`V ;ч5ygg nQ!SMqEgTP%;Zc'2x;\z% lM ? y8B,h#RܶYRҷ%94Mw72 x9@)x$qOVド-5hp&"ݻ6xXٯK`oEWYvqZ"KL-巕q6CH ՟~cuQO2{cx|\ՎTлs"?WXC<]0k|6Cͫ2Lt1؇9 n}6DDH1(D'_uf1ӗ'sl9/Ru  _پ΃H.k<8R+?<ipUY]E,e;L[$5.˚RBO 1Szgr̎#ӧ=u]]*SYo몽@wZ`7yZ1 IOοXUh-,E ]u!Lb> ~7gk[f" \!iX'HOk0KjxrC*"B=Iģz I:wv5}.x1}yL-j|-%䳅Rg5;__ k\T*3:ifb=y)m)?Bv0=S=wWi㵳jvBb tǀG Řd]y<848k 6P%.1a F 6>NzdDl0ŧeF?;tbz,#D+Ѿ<ޜt6wgMO!`kj@3F6Qkt#>OdmFwOF+48o?Dﻮ |@ACo S~94+ū]tdWg.ؤi $u6M.BTOC`Jg`ƚ+eT E˛+,|KPJVk,Y Z2"%܁suC^Y)W}$]{25tT^Dh_9DbCGfkOXmncN+^GhtTOw.m_ _#ve6u Rxvb^nj)fP$kVبro2B3v[[vJ[Vע]C;D[@]!4n6";}Y!tWMw隆a~OMZ|츜cX!׊'+C ):ip/RʊqXtdW47]TPLBK;p$!2a;t<ef'CJ\OutlM*7Zdk ҅)8950|w=OTXȣnjo-ܜABsK=UAIPkKC,L^,/QHZx9A SaGȸc|O.飃Pj$_P~>l7At`5:W؟ eqVaӢrbг\qY̗%j"}kIxa>߇wb9_t1%H}q~c", 6KywSkr(XEvl4[ܱ8X8fJxIK`vFlr NOI4$HuՆCֈqsMH ],5/rX8r N_mP,jgŌ/mD%'|ॏ74*c)gKgع;w:m?K ^eǍh1Mq4ZWB .x*Fq?5\k1Ȫ*^j>!I9v7F{v\T9M\Dx ) 2 7W["TG5{s._t{DX BOXs,2MʝYm}1?*֗>^Do:5A:U,z~Q~ck"ӞO~'eIFNET=#]u.u̥/~E f' 2| TZ䴈y~aHW6$hc |q'9GѮO^k†+k!~Z ?K`|7jQ%e5,OA׶ , 3&DNXgaNqiO$bʉO㣏E?j܈"7k`xHׇOCUxH5*OU~Ժd6_QF|a9%Pqh_i Kt̀IF/ɖ4z|E1w_j+q-ch8V)$cr-#*F5F"vBt yFd Ln-D_"(%snKNn_D:/($kvP0j~t>l QkȬ=%`W6eXo{MJCluXdG6`3jcܕJf"`JI zN\ҵGGPڌ{9ۣ<20G3{{0`҂aXET%! pr5)` :kyL0E Xk*-&'=?aΔLZ@((i0HAW$@I;yK't?ږ8eվ߷Wzp^~Slk q<[o} zߥ)L А%\w6O$+6vy/EE.TXS\\Pc ^C1M>ugqAh'yљ]Mp\O/ox۠mlo+K4 ׫z7t^~|zgL2JM3DUHnޏ:Y؋FQ.؀۟ɌlJ̘0ѿXL hs0n~QBWF%P~%J@ J|zIs81w3P'q/In4vMI攁hZY@O$ھMސ⼰ynBpVv _nKQze? E |<꾈Ek@,R 54C2lPe]br0LBDGt4l˹/qw>jIG G, Lm89DZf7^uFrI$*ffiwy^# yn:~o]u,oGZ`f{3 .YO5V=~fchR3sK6q^>e͕`j)dGo&~#̎{1L`|̗iR7V7o5 Kv^|)NM%{NZu`ApONj{?wNMՎв[jL5!,"-xhV8^<}H"Y{__\3.{ozoODӬyvۄpk7/>U,W>j: ZOA6 ~Tsb3i&3eu7ڧ9?#e֥乃GtUnRN}|" 7;F۔ּdqȽlG$ë'Ι"sA1=8{F_P <>Z]L(:4!s}j~exgq[;Dr%glW|$$: 7iÏ6/${ M|ՙGtK$a&yi|;|{`VWշ\Fp@N(cW@/dbf, Wf- ־kNK%=/z4U/Gte( xC=i,g#?smypRj`87ޙ;'P#);K׽n%27^;dO5ܲ f],9$vVkԙվPNVdؽP f+5lipZ|h,2N4vpB>lTHw)B 0djڶ(噻MA.zQ=J!1 x/49g@iކ`j_zLqI6lc9|(j2iPr,_ |8J2Ymno%_pjVBŞXjۓx 'Y[KOHYYKOb')[DywjVSDR$W|V<H:!PH(D ð⢭Q<MNt_ҌAludMLؚޞOm5V&$@P89}GTVE0uYN jj=c'\s]Q֓6w<#[_9އŗZ## ֍*Qo1d 〷 Hea> _٧:o\EG @VhJwc軽d#ca_.g2GN)(R;E.͆pdzܯze`K9`˝[Z ^kɜ=It&<%'Q"DJ,'_ x}vJh*M0!Yn!Kt %IU7/S :b0 o3AzĤSr=?MD- ? a[M0}XAKT?W3ȁb%G7uN9c":Q͞f^=RN/O]Q2k%OQlBqE˜Q;@@'lXE%%C=v}ZGW2Z %`=c\ncv5{)lIPӧCkwELln鵓xuF/ZS;A^S5Ō#D{F1Gve$pjٸ3PhkIn/-a҉ot}K& z}i}Mk tr[SJH{fķun-}evp+AOdPpmޛ{U"d!K|UiKO`ifϪ ~bR5EȌnq&le+F(R-'b́@,W= 33G%r ڢqr~k?u+ȰqG02>*6L5g5iğGK25e©Viq;LdDo%A_kA{nP~v4)Ƚ$~dvjOq􌱡"<^JZw8r#7q}=n6G_NXQ yJFp7Saã50STڥѦ; ,~A#%'-e.Q`ʴӂUNݛ` |Y]?]L;T1LP~{@+DX wD7nr[nV"Ӊ .tjяJt?2Vƙ<ބtYөoƆ֟v`<_?eI:HH" _BM{&C WSF9[?'8Lo\Fw6u[EX$ ̺l2JԺ+xy*xnhn,jJn0;dX.9% lPC\ܙ}=|hYgNTq_Д4.Md+ "]> stream xmrg4ju :ѣ D%.E13 3ѣN"D'щ5DF^7]Zz>쳟˥A!0HDT`n `P<V2`pb 2^ `@D!c ȹ*➋`+\7"=`tBTʹ @F`N6NH@ CqA- p'0h8oM8?Ю,Z-A t4x5â>_//u'!p$ A!dM m<?wt-w p f?wrCQ t1p 0YP_z9 $N醀#VB- ]O?ڏcN;z?<50 ⯽bP? \""X7Oa#i|žc4׻9$ #d |r o Y {igKX /(lok} (V{"B-XOΞuZjuӘ'OM{$ަ,}'OίmE3;1|KyzI!TB3`eda0$3;6/3?=KqrytnEGu2rHtn%MbԈpsڧ BJ ;`e`FX(8WD"Q/]*\ұaRƨoV@~CM…bԙe3'3'>]}TJT!{QyŦr؞{ } 2%.Evpz#J, Jc9u}-*;\pf4ѫ&wϯ,3o;!@ LGl** 7$WWpYQ5Ϛ5# o9-ͰEq?sHf =R=]q'b."_{88  8ixxs=e26R>-MԜy$l$Hr*ReK\w:(_``M:ǦBԲmhR@NP >ѝU%' 13atLjgt4O ")<u@VoYA38IG 4_?)o~[u.ᅬpLw$,ttQ[ \6Qb})Ŏ72K@w>T8~5,N乁c-Tlv#$I2<-fJLZ摳lru^Pd<=.m1MMf+km(=[3/71,(m}!\.·ڔe=D{ωM^ E2 !w/3+H6= M4A'Z,Dƞi*s\F. ONޜՍ 6 ۹,W!#%Xfo߷90 )!Us*@>i}ޟ|Gv-z C-d9Du1N,tA po%ǞMݩvIeʾ&Ĵ6flVk;;v^-YlM.#&l^D3 KYOhlu9ZM:IQtf\jwwŶLaG|-;+qm@٧ N4 8$ZTcg3-KVn*?CmY;S^cyס8'"R\R.E(/^,j&Ny[뙧}x0Q;>vdJKo7f>!ʏs5hr\TesnX͈S)lY,W%!%?b:I9;D>b60*/꘤p&8y\/+5D 8ǒܚsϩRXKIHdݢxN m& V}ih6{͎Q z|yń'<3reh;Xy3E ="A`.jbZ_+2f%vI^ف7Ҥz3q|Po_-g畈 eWGߚ&PJ/$/32pDqDwu&:`O#4) =lp7X\~\m+r-]hQ"eG>xTh "#Ud5i\*!' xAE@}oU4gnş5Y,tl:/IZo8io'"v){gdXߟ;ٺE+u7{</&Uiѝ*v|0l (kN1S#k>w?{Y9Ay|'?8*Yf dW(jP ]~:e!=0iټ౱]PEf-|ѝ6%~R)'ryhz`v,z5bphѵ1[$1ʪ{Jb~Կ s;_<9|9t*ʝX|Jy~>M۩^L(ݡ ֣KHڪzԴDjt³ޘy&m=t9+r[lS3΄QDgy+3f^x_hiޠdd357hm Oڻ;=F!}7;\+9n"jqK5T灁?"(l ,A]Dn,,fhaP)Feɻ3o52i@{;H8dg%lo VUÜ{#gZ#K 2f}{UZIݴzEW1M;7I^_w󱛍^1cŐ=!m endstream endobj 282 0 obj << /Type /ObjStm /N 100 /First 923 /Length 5373 /Filter /FlateDecode >> stream x\ob?68|;NyM kG,z篿$u$(pq DE9pvuQBoW(o/ #5Ua.-L5P.BEUQQ=M!KIدT;@*B ]F#qb*&*+,T1X `Dj˱SJ*:RhRibD@HKFc8Wt H`D`HGg4iʒFM˥CW&jZ Ζ\Y|`,4~2{9h^tZ3ΌWZtB6FtKcib`dА E:UC^RG㱋 #͒m vXA5IjkKP@| 80[ZEuF7k=iP[4g7aO{p  IBπuPatpH9o 6} T)$0hII`$ ""u  'M p2dDHIV#d61{' x8Mbʿ?ē*ax.>~Ȣ'Ui OSMQ!tTt{\K!N lt6*AS?:/F0Gſp;ZX,8&eǂ!ʎvY׳qiG:Dp6|nt SB'5G)0CcPI3òB">^_Nl}n)ܛwZxspX۴ܔʛu'qj8i9~2{Մ/Tѷe#;X)鎱L, S#-0?tUR2* u?`]lܽM׳l齜1j\#z$i# ={Cs ٝT,1|^wO<F5L[~G}Qf |Ep^>NU?!p6 ?gi5gO&}q=~D7Vf7WꛘƣWn>PLсl.+1nу`blxnTG~n?$Gc^tʈu.CyC$(!sp.V]<\|c鵹ƞud4wi[vm\0PtcpXyȴֲ Un#EDlFFlC(ZB(]'нH<ե]t?G<]r.AۨxΪNXZiCm;>o _@,@W8e:wX%Kێ+q#S-aZu| SҪg\-@'攴ީV{ðjΒƁ#n%!e|AU@&h: քZkBD5~:npRW[MmZ)uX,uV[_39Lcis#u{"J$HKnLx/3o3"(=dCdU4T"AVKٓ+pĈJm"b,-Ї2Fp ΐmLHHN6|f1N-Z>,-`L̴-<6Jx5ndBw} J*7GYRkZkc-%K[$'K⭍: IpM2PM-dNC|Daτ$ȱpB;\!U]Ae:ox;" 6 i&m" q&0-1ݠgƱ}`PIn$B<2#[. [&5085 l<ʑ14Gf9{YYўaW$? )KG͎qg@I*=)DNҏf4+哯=$l1fxI 8F5 ŰW eŧ=!^h|dSQHIg15G,EPI ^k[.b$لD%idN@'5dDڠ\ 1aFJr&•D1 jF؏TNseɐ]eU7N:3ICHUܱY*Mc%Yy7ҌHY2)uB8HL%MqܯEr I#oodGڴOzs/%[-{-~noӁSz9SCvJ1plK5md#V:/E+9Miĸ?_iv9Q9]<7+ ȯ#f=_8 6Pyn;g3w$i˶ؔͣs|+*X6*zƐY8H-l8i%mX?R2ar gg|-e^RLI'𤬝[qށRTIq©tr1PxvS7kRBLVsnnh3N9󄩙60]x(HTxs2ķM5jd l6UZʜlY kVͺJ}cݺFi7݉X QetTbmu;dYU|qr Z͔i~i}RG <$q<kj IJ/۵O`Iԡec R2dZ4Ը:r(ch2|o:]ۧ^8E}Z.P: \`K's/gZeye,jO%(8bҍTDjj^a8g~Jsi&}-Fs-F, a8!2[M>[k]"jeC$ "C!$Yr<,\vV/(wuu{rrQ,֋!377%Ed}wOJY+,o;e<. ]e,jidLz<ڐZQ6fSƓ@:dEƥN%F͆mڧn Uu(нS-:RT LH5(2XvS5zc-;^,3Pra~Бˤ6pUԦ V^A)͓7Wnj Fh6D$l7a R[,Ց4w=W'sT}r[t=%i"!U ],Hp/5L6ܙ#m~pY-i$t1P.r\dHͅHkZP3&X0L3PcrK1ช3c`o\K07 pd+5{&O0F`\1M~ O9m%r%8hUn*o?,g`.6{_і \^ L/oҊTV4=e悮;KN"\du=h4u? IwH|w"z0,Hٔ~2 SM ӈC$d]%$~^y!頚hב^_'O>0 LuϊBt+>3W~n'ϫ) ' ,ih{׃='>ԋǗ$q+^787AtŅKQ ^'Vj4kE|K5}1#1B{+nqt)UzLDLX0S12*1HWףą>ήߚWx*qUpUW顥2rx"š8$co[` u 0 >}~Zk-T> jq u$B@~yISUzߤ(Ӥe$Mz.8>9 zz EDG-UDԒ S\F^wpѿ :zٟ-շM O8|u OghwSߥ?+־ms|%87]1t'_`?xLy}ÏaA,[YiN^vp=1AE K׷&i;ygo޵*0O[)K1@zjВ{hrhmՂvcsav'g|ǯ:w4Lܚ0B9aewӤ[Ό!l8󜈴-in+^ha2&-;7oNג,iQ?&J ޚDe{yBD(GCdBoP~ ݇}<}~גkXˇϵL*v 3޸Ƀr7{gg6َ+<2)Hِ\HAѭĭby/ߒ(&~?5Ѕw{TSWO.{wǾ(`FA^-K;B*5#ioꭔWi,Wf—WΫT5/3zw+uUk'Mfv~w+vMi]b|f}M(ltZY[EuVemfq=,^S9їssiVq)ər77W+ݚ_ϔ=cQClCUiSn endstream endobj 399 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.16)/Keywords() /CreationDate (D:20150924110227+03'00') /ModDate (D:20150924110227+03'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) kpathsea version 6.2.1) >> endobj 380 0 obj << /Type /ObjStm /N 43 /First 356 /Length 1436 /Filter /FlateDecode >> stream xڝXn8}Wݢ5!)( $NMi6ꨮPNmy/3%SE $y43Ef LȌI-$2a(LgLˬ.RP>d+f$3*`2cJa9T6cq S0R`3 ^^%(fQPLN*n"Ld(3W He- v  mҁ48TʍmR (0b,SZ˗Wh<}@1ۂ㫫t6|O|SW CuxVoiL?@;^V߶R#O.nΏxĪ޻dzO?~z6; S+XAj-W D\b;O;TٗOt~wi3:Ͼ0v>B?>D!덊fֻI[-DS>YD],Wd-FzA]Qe, a&rSEOf6S=YEOEahd\L'{JE+ z3ϡW_!0i-)ZA%3k΄к !o2>.lAvAEL _dhN {0Q髈\WNiтDִg5gD+74HoSƊ۸MOE~WId=>Mɯ_j)ZJD3GQ[OΪ⎒#\8]Yq* <67B64184133B72D88FD2E9C312FA421B>] /Length 967 /Filter /FlateDecode >> stream x%oWU= Rz(EKiy'PD?`^ccNtfL aThg5~ɗu=}^ܔRzYH63@\ ֌*"UU`Xj&CU`X#KP Uv5b{P*sӝ%N/Dqrd٫y[;WV&49C#A+8N6:@'ݠ ]> 6=b,Up9u1RܛqP. V2}I*]>Ӵ7.yt[Nhe7^Jp+`\+-x,0 F[2w 2 lx2t&+'l;lJsOFG:OtWVpqx-0pػ6AػOqXఠ#g Fpq2g8_+{Nq-`ly(}04O?~}J_>fZ6˔X וUbBY7}j7 1 nLG8Ub`YcAi,K;v_?t{J/޴](HY7c]M>= figset <- function() par(mar=c(4,4,1,1)+.1) options(SweaveHooks = list(fig = figset)) options("prompt" = "> ", "continue" = " ") options(width = 55) require(vegan) @ \maketitle \begin{abstract} This document describes design decisions, and discusses implementation and algorithmic details in some vegan functions. The proper FAQ is another document. \end{abstract} \tableofcontents \section{Parallel processing} Several \pkg{vegan} functions can perform parallel processing using the standard \R{} package \pkg{parallel}. The \pkg{parallel} package in \R{} implements the functionality of earlier contributed packages \pkg{multicore} and \pkg{snow}. The \pkg{multicore} functionality forks the analysis to multiple cores, and \pkg{snow} functionality sets up a socket cluster of workers. The \pkg{multicore} functionality only works in unix-like systems (such as MacOS and Linux), but \pkg{snow} functionality works in all operating systems. \pkg{Vegan} can use either method, but defaults to \pkg{multicore} functionality when this is available, because its forked clusters are usually faster. This chapter describes both the user interface and internal implementation for the developers. \subsection{User interface} \label{sec:parallel:ui} The functions that are capable of parallel processing have argument \code{parallel}. The normal default is \code{parallel = 1} which means that no parallel processing is performed. It is possible to set parallel processing as the default in \pkg{vegan} (see \S\,\ref{sec:parallel:default}). For parallel processing, the \code{parallel} argument can be either \begin{enumerate} \item An integer in which case the given number of parallel processes will be launched (value $1$ launches non-parallel processing). In unix-like systems (\emph{e.g.}, MacOS, Linux) these will be forked \code{multicore} processes. In Windows socket clusters will be set up, initialized and closed. \item A previously created socket cluster. This saves time as the cluster is not set up and closed in the function. If the argument is a socket cluster, it will also be used in unix-like systems. Setting up a socket cluster is discussed in \S\,\ref{sec:parallel:socket}. \end{enumerate} \subsubsection{Using parallel processing as default} \label{sec:parallel:default} If the user sets option \code{mc.cores}, its value will be used as the default value of the \code{parallel} argument in \pkg{vegan} functions. The following command will set up parallel processing to all subsequent \pkg{vegan} commands: <>= options(mc.cores = 2) @ The \code{mc.cores} option is defined in the \pkg{parallel} package, but it is usually unset in which case \pkg{vegan} will default to non-parallel computation. The \code{mc.cores} option can be set by the environmental variable \code{MC_CORES} when the \pkg{parallel} package is loaded. \R{} allows\footnote{Since \R{} version 2.15.0.} setting up a default socket cluster (\code{setDefaultCluster}), but this will not be used in \pkg{vegan}. \subsubsection{Setting up socket clusters} \label{sec:parallel:socket} If socket clusters are used (and they are the only alternative in Windows), it is often wise to set up a cluster before calling parallelized code and give the pre-defined cluster as the value of the \code{parallel} argument in \pkg{vegan}. If you want to use socket clusters in unix-like systems (MacOS, Linux), this can be only done with pre-defined clusters. If socket cluster is not set up in Windows, \pkg{vegan} will create and close the cluster within the function body. This involves following commands: \begin{Schunk} \begin{Soutput} clus <- makeCluster(4) ## perform parallel processing stopCluster(clus) \end{Soutput} \end{Schunk} The first command sets up the cluster, in this case with four cores, and the second command stops the cluster. Most parallelized \pkg{vegan} functions work similarly in socket and fork clusters, but in \code{oecosimu} the parallel processing is used to evaluate user-defined functions, and their arguments and data must be made known to the socket cluster. For example, if you want to run in parallel the \code{meandist} function of the \code{oecosimu} example with a pre-defined socket cluster, you must use: <>= ## start up and define meandist() library(vegan) data(sipoo) meandist <- function(x) mean(vegdist(x, "bray")) library(parallel) clus <- makeCluster(4) clusterEvalQ(clus, library(vegan)) mbc1 <- oecosimu(dune, meandist, "r2dtable", parallel = clus) stopCluster(clus) @ Socket clusters are used for parallel processing in Windows, but you do not need to pre-define the socket cluster in \code{oecosimu} if you only need \pkg{vegan} commands. However, if you need some other contributed packages, you must pre-define the socket cluster also in Windows with appropriate \code{clusterEvalQ} calls. If you pre-set the cluster, you can also use \pkg{snow} style socket clusters in unix-like systems. \subsubsection{Random number generation} \pkg{Vegan} does not use parallel processing in random number generation, and you can set the seed for the standard random number generator. Setting the seed for the parallelized generator (L'Ecuyer) has no effect in \pkg{vegan}. \subsubsection{Does it pay off?} Parallelized processing has a considerable overhead, and the analysis is faster only if the non-parallel code is really slow (takes several seconds in wall clock time). The overhead is particularly large in socket clusters (in Windows). Creating a socket cluster and evaluating \code{library(vegan)} with \code{clusterEvalQ} can take two seconds or longer, and only pays off if the non-parallel analysis takes ten seconds or longer. Using pre-defined clusters will reduce the overhead. Fork clusters (in unix-likes operating systems) have a smaller overhead and can be faster, but they also have an overhead. Each parallel process needs memory, and for a large number of processes you need much memory. If the memory is exhausted, the parallel processes can stall and take much longer than non-parallel processes (minutes instead of seconds). If the analysis is fast, and function runs in, say, less than five seconds, parallel processing is rarely useful. Parallel processing is useful only in slow analyses: large number of replications or simulations, slow evaluation of each simulation. The danger of memory exhaustion must always be remembered. The benefits and potential problems of parallel processing depend on your particular system: it is best to rely on your own experience. \subsection{Internals for developers} The implementation of the parallel processing should accord with the description of the user interface above (\S\,\ref{sec:parallel:ui}). Function \code{oecosimu} can be used as a reference implementation, and similar interpretation and order of interpretation of arguments should be followed. All future implementations should be consistent and all must be changed if the call heuristic changes. The value of the \code{parallel} argument can be \code{NULL}, a positive integer or a socket cluster. Integer $1$ means that no parallel processing is performed. The ``normal'' default is \code{NULL} which in the ``normal'' case is interpreted as $1$. Here ``normal'' means that \R{} is run with default settings without setting \code{mc.cores} or environmental variable \code{MC_CORES}. Function \code{oecosimu} interprets the \code{parallel} arguments in the following way: \begin{enumerate} \item \code{NULL}: The function is called with argument \code{parallel = getOption("mc.cores")}. The option \code{mc.cores} is normally unset and then the default is \code{parallel = NULL}. \item Integer: An integer value is taken as the number of created parallel processes. In unix-like systems this is the number of forked multicore processes, and in Windows this is the number of workers in socket clusters. In Windows, the socket cluster is created, and if needed \code{library(vegan)} is evaluated in the cluster (this is not necessary if the function only uses internal functions), and the cluster is stopped after parallel processing. \item Socket cluster: If a socket cluster is given, it will be used in all operating systems, and the cluster is not stopped within the function. \end{enumerate} This gives the following precedence order for parallel processing (highest to lowest): \begin{enumerate} \item Explicitly given argument value of \code{parallel} will always be used. \item If \code{mc.cores} is set, it will be used. In Windows this means creating and stopping socket clusters. Please note that the \code{mc.cores} is only set from the environmental variable \code{MC_CORES} when you load the \pkg{parallel} package, and it is always unset before first \code{require(parallel)}. \item The fall back behaviour is no parallel processing. \end{enumerate} \section{Nestedness and Null models} Some published indices of nestedness and null models of communities are only described in general terms, and they could be implemented in various ways. Here I discuss the implementation in \pkg{vegan}. \subsection{Matrix temperature} The matrix temperature is intuitively simple (Fig. \ref{fig:nestedtemp}), but the the exact calculations were not explained in the original publication \cite{AtmarPat93}. \begin{figure} <>= data(sipoo) mod <- nestedtemp(sipoo) plot(mod, "i") x <- mod$c["Falcsubb"] y <- 1 - mod$r["Svartholm"] points(x,y, pch=16, cex=1.5) abline(x+y, -1, lty=2) f <- function(x, p) (1-(1-x)^p)^(1/p) cross <- function(x, a, p) f(x,p) - a + x r <- uniroot(cross, c(0,1), a = x+y, p = mod$p)$root arrows(x,y, r, f(r, mod$p), lwd=4) @ \label{fig:nestedtemp} \caption{Matrix temperature for \emph{Falco subbuteo} on Sibbo Svartholmen (dot). The curve is the fill line, and in a cold matrix, all presences (red squares) should be in the upper left corner behind the fill line. Dashed diagonal line of length $D$ goes through the point, and an arrow of length $d$ connects the point to the fill line. The ``surprise'' for this point is $u = (d/D)^2$ and the matrix temperature is based on the sum of surprises: presences outside the fill line or absences within the fill line.} \end{figure} The function can be implemented in many ways following the general principles. \citet{RodGir06} have seen the original code and reveal more details of calculations, and their explanation is the basis of the implementation in \pkg{vegan}. However, there are still some open issues, and probably \pkg{vegan} function \code{nestedtemp} will never exactly reproduce results from other programs, although it is based on the same general principles.\footnote{function \code{nestedness} in the \pkg{bipartite} package is a direct port of the original \proglang{BINMATNEST} program of \citet{RodGir06}.} I try to give main computation details in this document --- all details can be seen in the source code of \code{nestedtemp}. \begin{itemize} \item Species and sites are put into unit square \citep{RodGir06}. The row and column coordinates will be $(k-0.5)/n$ for $k=1 \ldots n$, so that there are no points in the corners or the margins of the unit square, and a diagonal line can be drawn through any point. I do not know how the rows and columns are converted to the unit square in other software, and this may be a considerable source of differences among implementations. \item Species and sites are ordered alternately using indices \citep{RodGir06}: \begin{equation} \begin{split} s_j &= \sum_{i|x_{ij} = 1} i^2 \\ t_j &= \sum_{i|x_{ij} = 0} (n-i+1)^2 \end{split} \end{equation} Here $x$ is the data matrix, where $1$ is presence, and $0$ is absence, $i$ and $j$ are row and column indices, and $n$ is the number of rows. The equations give the indices for columns, but the indices can be reversed for corresponding row indexing. Ordering by $s$ packs presences to the top left corner, and ordering by $t$ pack zeros away from the top left corner. The final sorting should be ``a compromise'' \citep{RodGir06} between these scores, and \pkg{vegan} uses $s+t$. The result should be cool, but the packing does not try to minimize the temperature \citep{RodGir06}. I do not know how the ``compromise'' is defined, and this can cause some differences to other implementations. \item The following function is used to define the fill line: \begin{equation} y = (1-(1-x)^p)^{1/p} \end{equation} This is similar to the equation suggested by \citet[eq. 4]{RodGir06}, but omits all terms dependent on the numbers of species or sites, because I could not understand why they were needed. The differences are visible only in small data sets. The $y$ and $x$ are the coordinates in the unit square, and the parameter $p$ is selected so that the curve covers the same area as is the proportion of presences (Fig. \ref{fig:nestedtemp}). The parameter $p$ is found numerically using \proglang{R} functions \code{integrate} and \code{uniroot}. The fill line used in the original matrix temperature software \citep{AtmarPat93} is supposed to be similar \citep{RodGir06}. Small details in the fill line combined with differences in scores used in the unit square (especially in the corners) can cause large differences in the results. \item A line with slope\,$= -1$ is drawn through the point and the $x$ coordinate of the intersection of this line and the fill line is found using function \code{uniroot}. The difference of this intersection and the row coordinate gives the argument $d$ of matrix temperature (Fig. \ref{fig:nestedtemp}). \item In other software, ``duplicated'' species occurring on every site are removed, as well as empty sites and species after reordering \cite{RodGir06}. This is not done in \pkg{vegan}. \end{itemize} \subsection{Backtracking} Gotelli's and Entsminger's seminal paper \cite{GotelliEnt01} on filling algorithms is somewhat confusing: it explicitly deals with ``knight's tour'' which is quite a different problem than the one we face with null models. The chess piece ``knight''\footnote{``Knight'' is ``Springer'' in German which is very appropriate as Springer was the publisher of the paper on ``knight's tour''} has a history: a piece in a certain position could only have entered from some candidate squares. The filling of incidence matrix has no history: if we know that the item last added was in certain row and column, we have no information to guess which of the filled items was entered previously. A consequence of dealing with a different problem is that \citet{GotelliEnt01} do not give many hints on implementing a fill algorithm as a community null model. The backtracking is implemented in two stages in \pkg{vegan}: filling and backtracking. \begin{enumerate} \item The matrix is filled in the order given by the marginal probabilities. In this way the matrix will look similar to the final matrix at all stages of filling. Equal filling probabilities are not used since that is ineffective and produces strange fill patterns: the rows and columns with one or a couple of presences are filled first, and the process is cornered to columns and rows with many presences. As a consequence, the the process tries harder to fill that corner, and the result is a more tightly packed quadratic fill pattern than with other methods. \item The filling stage stops when no new points can be added without exceeding row or column totals. ``Backtracking'' means removing random points and seeing if this allows adding new points to the plot. No record of history is kept (and there is no reason to keep a record of history), but random points are removed and filled again. The number of removed points increases from one to four points. New configuration is kept if it is at least as good as the previous one, and the number of removed points is reduced back to one if the new configuration is better than the old one. Because there is no record of history, this does not sound like a backtracking, but it still fits the general definition of backtracking: ``try something, and if it fails, try something else'' \citep{Sedgewick90}. \end{enumerate} \section{Scaling in redundancy analysis} This chapter discusses the scaling of scores (results) in redundancy analysis and principal component analysis performed by function \code{rda} in the \pkg{vegan} library. Principal component analysis, and hence redundancy analysis, is a case of singular value decomposition (\textsc{svd}). Functions \code{rda} and \code{prcomp} even use \textsc{svd} internally in their algorithm. In \textsc{svd} a centred data matrix $\mathbf{X} = \{x_{ij}\}$ is decomposed into orthogonal components so that $x_{ij} = \sum_k \sigma_k u_{ik} v_{jk}$, where $u_{ik}$ and $v_{jk}$ are orthonormal coefficient matrices and $\sigma_k$ are singular values. Orthonormality means that sums of squared columns is one and their cross-product is zero, or $\sum_i u_{ik}^2 = \sum_j v_{jk}^2 = 1$, and $\sum_i u_{ik} u_{il} = \sum_j v_{jk} v_{jl} = 0$ for $k \neq l$. This is a decomposition, and the original matrix is found exactly from the singular vectors and corresponding singular values, and first two singular components give the rank $=2$ least squares estimate of the original matrix. Principal component analysis is often presented (and performed in legacy software) as an eigenanalysis of covariance matrices. Instead of a data matrix, we analyse a matrix of covariances and variances $\mathbf{S}$. The result are orthonormal coefficient matrix $\mathbf{U}$ and eigenvalues $\mathbf{\Lambda}$. The coefficients $u_{ik}$ ares identical to \textsc{svd} (except for possible sign changes), and eigenvalues $\lambda_k$ are related to the corresponding singular values by $\lambda_k = \sigma_k^2 /(n-1)$. With classical definitions, the sum of all eigenvalues equals the sum of variances of species, or $\sum_k \lambda_k = \sum_j s_j^2$, and it is often said that first axes explain a certain proportion of total variance in the data. The orthonormal matrix $\mathbf{V}$ of \textsc{svd} can be found indirectly as well, so that we have the same components in both methods. The coefficients $u_{ik}$ and $v_{jk}$ are scaled to unit length for all axes $k$. Singular values $\sigma_k$ or eigenvalues $\lambda_k$ give the information of the importance of axes, or the `axis lengths.' Instead of the orthonormal coefficients, or equal length axes, it is customary to scale species (column) or site (row) scores or both by eigenvalues to display the importance of axes and to describe the true configuration of points. Table \ref{tab:scales} shows some alternative scalings. These alternatives apply to principal components analysis in all cases, and in redundancy analysis, they apply to species scores and constraints or linear combination scores; weighted averaging scores have somewhat wider dispersion. \begin{table*}[t] \centering \caption{\label{tab:scales} Alternative scalings for \textsc{rda} used in the functions \code{prcomp} and \code{princomp}, and the one used in the \pkg{vegan} function \code{rda} and the proprietary software \proglang{Canoco} scores in terms of orthonormal species ($v_{ik}$) and site scores ($u_{jk}$), eigenvalues ($\lambda_k$), number of sites ($n$) and species standard deviations ($s_j$). In \code{rda}, $\mathrm{const} = \sqrt[4]{(n-1) \sum \lambda_k}$. Corresponding negative scaling in \pkg{vegan} % and corresponding positive scaling in \texttt{Canoco 3} is derived dividing each species by its standard deviation $s_j$ (possibly with some additional constant multiplier). } \begin{tabular}{lcc} \\ \toprule & \textbf{Site scores} $u_{ik}^*$ & \textbf{Species scores} $v_{jk}^*$ \\ \midrule \code{prcomp, princomp} & $u_{ik} \sqrt{n-1} \sqrt{\lambda_k}$ & $v_{jk}$ \\ \code{rda, scaling=1} & $u_{ik} \sqrt{\lambda_k/ \sum \lambda_k} \times \mathrm{const}$ & $v_{jk} \times \mathrm{const}$ \\ \code{rda, scaling=2} & $u_{ik} \times \mathrm{const}$ & $v_{jk} \sqrt{\lambda_k/ \sum \lambda_k} \times \mathrm{const}$ \\ \code{rda, scaling=3} & $u_{ik} \sqrt[4]{\lambda_k/ \sum \lambda_k} \times \mathrm{const}$ & $v_{jk} \sqrt[4]{\lambda_k/ \sum \lambda_k} \times \mathrm{const}$ \\ \code{rda, scaling < 0} & $u_{ik}^*$ & $\sqrt{\sum \lambda_k /(n-1)} s_j^{-1} v_{jk}^*$ \\ % \code{Canoco 3, scaling=-1} & % $u_{ik} \sqrt{n-1} \sqrt{\lambda_k / \sum \lambda_k}$ & % $v_{jk} \sqrt{n}$ \\ % \code{Canoco 3, scaling=-2} & % $u_{ik} \sqrt{n-1}$ & % $v_{jk} \sqrt{n} \sqrt{\lambda_k / \sum \lambda_k}$ % \\ % \code{Canoco 3, scaling=-3} & % $u_{ik} \sqrt{n-1} \sqrt[4]{\lambda_k / \sum \lambda_k}$ & % $v_{jk} \sqrt{n} \sqrt[4]{\lambda_k / \sum \lambda_k}$ \bottomrule \end{tabular} \end{table*} In community ecology, it is common to plot both species and sites in the same graph. If this graph is a graphical display of \textsc{svd}, or a graphical, low-dimensional approximation of the data, the graph is called a biplot. The graph is a biplot if the transformed scores satisfy $x_{ij} = c \sum_k u_{ij}^* v_{jk}^*$ where $c$ is a scaling constant. In functions \code{princomp}, \code{prcomp} and \code{rda}, $c=1$ and the plotted scores are a biplot so that the singular values (or eigenvalues) are expressed for sites, and species are left unscaled. % For \texttt{Canoco 3} $c = n^{-1} \sqrt{n-1} % \sqrt{\sum \lambda_k}$ with negative \proglang{Canoco} scaling % values. All these $c$ are constants for a matrix, so these are all % biplots with different internal scaling of species and site scores % with respect to each other. For \proglang{Canoco} with positive scaling % values and \pkg{vegan} with negative scaling values, no constant % $c$ can be found, but the correction is dependent on species standard % deviations $s_j$, and these scores do not define a biplot. There is no natural way of scaling species and site scores to each other. The eigenvalues in redundancy and principal components analysis are scale-dependent and change when the data are multiplied by a constant. If we have percent cover data, the eigenvalues are typically very high, and the scores scaled by eigenvalues will have much wider dispersion than the orthonormal set. If we express the percentages as proportions, and divide the matrix by $100$, the eigenvalues will be reduced by factor $100^2$, and the scores scaled by eigenvalues will have a narrower dispersion. For graphical biplots we should be able to fix the relations of row and column scores to be invariant against scaling of data. The solution in \proglang{R} standard function \code{biplot} is to scale site and species scores independently, and typically very differently, but plot each independently to fill the graph area. The solution in \proglang{Canoco} and \code{rda} is to use proportional eigenvalues $\lambda_k / \sum \lambda_k$ instead of original eigenvalues. These proportions are invariant with scale changes, and typically they have a nice range for plotting two data sets in the same graph. The \textbf{vegan} package uses a scaling constant $c = \sqrt[4]{(n-1) \sum \lambda_k}$ in order to be able to use scaling by proportional eigenvalues (like in \proglang{Canoco}) and still be able to have a biplot scaling. Because of this, the scaling of \code{rda} scores is non-standard. However, the \code{scores} function lets you to set the scaling constant to any desired values. It is also possible to have two separate scaling constants: the first for the species, and the second for sites and friends, and this allows getting scores of other software or \proglang{R} functions (Table \ref{tab:rdaconst}). \begin{table*}[t] \centering \caption{\label{tab:rdaconst} Values of the \code{const} argument in \textbf{vegan} to get the scores that are equal to those from other functions and software. Number of sites (rows) is $n$, the number of species (columns) is $m$, and the sum of all eigenvalues is $\sum_k \lambda_k$ (this is saved as the item \code{tot.chi} in the \code{rda} result)}. \begin{tabular}{lccc} \\ \toprule & \textbf{Scaling} &\textbf{Species constant} & \textbf{Site constant} \\ \midrule \pkg{vegan} & any & $\sqrt[4]{(n-1) \sum \lambda_k}$ & $\sqrt[4]{(n-1) \sum \lambda_k}$\\ \code{prcomp}, \code{princomp} & \code{1} & $1$ & $\sqrt{(n-1) \sum_k \lambda_k}$\\ \proglang{Canoco\,v3} & \code{-1, -2, -3} & $\sqrt{n-1}$ & $\sqrt{n}$\\ \proglang{Canoco\,v4} & \code{-1, -2, -3} & $\sqrt{m}$ & $\sqrt{n}$\\ \bottomrule \end{tabular} \end{table*} In this chapter, I used always centred data matrices. In principle \textsc{svd} could be done with original, non-centred data, but there is no option for this in \code{rda}, because I think that non-centred analysis is dubious and I do not want to encourage its use (if you think you need it, you are certainly so good in programming that you can change that one line in \code{rda.default}). I do think that the arguments for non-centred analysis are often twisted, and the method is not very good for its intended purpose, but there are better methods for finding fuzzy classes. Normal, centred analysis moves the origin to the average of all species, and the dimensions describe differences from this average. Non-centred analysis leaves the origin in the empty site with no species, and the first axis usually runs from the empty site to the average site. Second and third non-centred components are often very similar to first and second (etc.) centred components, and the best way to use non-centred analysis is to discard the first component and use only the rest. This is better done with directly centred analysis. \section{Weighted average and linear combination scores} Constrained ordination methods such as Constrained Correspondence Analysis (CCA) and Redundancy Analysis (RDA) produce two kind of site scores \cite{Braak86, Palmer93}: \begin{itemize} \item LC or Linear Combination Scores which are linear combinations of constraining variables. \item WA or Weighted Averages Scores which are such weighted averages of species scores that are as similar to LC scores as possible. \end{itemize} Many computer programs for constrained ordinations give only or primarily LC scores following recommendation of \citet{Palmer93}. However, functions \code{cca} and \code{rda} in the \pkg{vegan} package use primarily WA scores. This chapter explains the reasons for this choice. Briefly, the main reasons are that \begin{itemize} \item LC scores \emph{are} linear combinations, so they give us only the (scaled) environmental variables. This means that they are independent of vegetation and cannot be found from the species composition. Moreover, identical combinations of environmental variables give identical LC scores irrespective of vegetation. \item \citet{McCune97} has demonstrated that noisy environmental variables result in deteriorated LC scores whereas WA scores tolerate some errors in environmental variables. All environmental measurements contain some errors, and therefore it is safer to use WA scores. \end{itemize} This article studies mainly the first point. The users of \pkg{vegan} have a choice of either LC or WA (default) scores, but after reading this article, I believe that most of them do not want to use LC scores, because they are not what they were looking for in ordination. \subsection{LC Scores are Linear Combinations} Let us perform a simple CCA analysis using only two environmental variables so that we can see the constrained solution completely in two dimensions: <<>>= library(vegan) data(varespec) data(varechem) orig <- cca(varespec ~ Al + K, varechem) @ Function \code{cca} in \pkg{vegan} uses WA scores as default. So we must specifically ask for LC scores (Fig. \ref{fig:ccalc}). <>= plot(orig, dis=c("lc","bp")) @ \begin{figure} <>= <> @ \caption{LC scores in CCA of the original data.} \label{fig:ccalc} \end{figure} What would happen to linear combinations of LC scores if we shuffle the ordering of sites in species data? Function \code{sample()} below shuffles the indices. <<>>= i <- sample(nrow(varespec)) shuff <- cca(varespec[i,] ~ Al + K, varechem) @ \begin{figure} <>= plot(shuff, dis=c("lc","bp")) @ \caption{LC scores of shuffled species data.} \label{fig:ccashuff} \end{figure} It seems that site scores are fairly similar, but oriented differently (Fig. \ref{fig:ccashuff}). We can use Procrustes rotation to see how similar the site scores indeed are (Fig. \ref{fig:ccaproc}). <>= plot(procrustes(scores(orig, dis="lc"), scores(shuff, dis="lc"))) @ \begin{figure} <>= <> @ \caption{Procrustes rotation of LC scores from CCA of original and shuffled data.} \label{fig:ccaproc} \end{figure} There is a small difference, but this will disappear if we use Redundancy Analysis (RDA) instead of CCA (Fig. \ref{fig:rdaproc}). Here we use a new shuffling as well. <<>>= tmp1 <- rda(varespec ~ Al + K, varechem) i <- sample(nrow(varespec)) # Different shuffling tmp2 <- rda(varespec[i,] ~ Al + K, varechem) @ \begin{figure} <>= plot(procrustes(scores(tmp1, dis="lc"), scores(tmp2, dis="lc"))) @ \caption{Procrustes rotation of LC scores in RDA of the original and shuffled data.} \label{fig:rdaproc} \end{figure} LC scores indeed are linear combinations of constraints (environmental variables) and \emph{independent of species data}: You can shuffle your species data, or change the data completely, but the LC scores will be unchanged in RDA. In CCA the LC scores are \emph{weighted} linear combinations with site totals of species data as weights. Shuffling species data in CCA changes the weights, and this can cause changes in LC scores. The magnitude of changes depends on the variability of site totals. The original data and shuffled data differ in their goodness of fit: <<>>= orig shuff @ Similarly their WA scores will be (probably) very different (Fig. \ref{fig:ccawa}). \begin{figure} <>= plot(procrustes(orig, shuff)) @ \caption{Procrustes rotation of WA scores of CCA with the original and shuffled data.} \label{fig:ccawa} \end{figure} The example used only two environmental variables so that we can easily plot all constrained axes. With a larger number of environmental variables the full configuration remains similarly unchanged, but its orientation may change, so that two-dimensional projections look different. In the full space, the differences should remain within numerical accuracy: <<>>= tmp1 <- rda(varespec ~ ., varechem) tmp2 <- rda(varespec[i,] ~ ., varechem) proc <- procrustes(scores(tmp1, dis="lc", choi=1:14), scores(tmp2, dis="lc", choi=1:14)) max(residuals(proc)) @ In \code{cca} the difference would be somewhat larger than now observed \Sexpr{format.pval(max(residuals(proc)))} because site weights used for environmental variables are shuffled with the species data. \subsection{Factor constraints} It seems that users often get confused when they perform constrained analysis using only one factor (class variable) as constraint. The following example uses the classical dune meadow data \cite{Jongman87}: <<>>= data(dune) data(dune.env) orig <- cca(dune ~ Moisture, dune.env) @ When the results are plotted using LC scores, sample plots fall only in four alternative positions (Fig. \ref{fig:factorlc}). \begin{figure} <>= plot(orig, dis="lc") @ \caption{LC scores of the dune meadow data using only one factor as a constraint.} \label{fig:factorlc} \end{figure} In the previous chapter we saw that this happens because LC scores \emph{are} the environmental variables, and they can be distinct only if the environmental variables are distinct. However, normally the user would like to see how well the environmental variables separate the vegetation, or inversely, how we could use the vegetation to discriminate the environmental conditions. For this purpose we should plot WA scores, or LC scores and WA scores together: The LC scores show where the site \emph{should} be, the WA scores shows where the site \emph{is}. Function \code{ordispider} adds line segments to connect each WA score with the corresponding LC (Fig. \ref{fig:walcspider}). <>= plot(orig, display="wa", type="points") ordispider(orig, col="red") text(orig, dis="cn", col="blue") @ \begin{figure} <>= <> @ \caption{A ``spider plot'' connecting WA scores to corresponding LC scores. The shorter the web segments, the better the ordination.} \label{fig:walcspider} \end{figure} This is the standard way of displaying results of discriminant analysis, too. Moisture classes \code{1} and \code{2} seem to be overlapping, and cannot be completely separated by their vegetation. Other classes are more distinct, but there seems to be a clear arc effect or a ``horseshoe'' despite using CCA. \subsection{Conclusion} LC scores are only the (weighted and scaled) constraints and independent of vegetation. If you plot them, you plot only your environmental variables. WA scores are based on vegetation data but are constrained to be as similar to the LC scores as only possible. Therefore \pkg{vegan} calls LC scores as \code{constraints} and WA scores as \code{site scores}, and uses primarily WA scores in plotting. However, the user makes the ultimate choice, since both scores are available. \bibliography{vegan} \end{document} vegan/inst/doc/NEWS.html0000644000175100001440000016454112600727026014571 0ustar hornikusersR: vegan News
NEWSR Documentation

vegan News

Changes in version 2.3-1

BUG FIXES

NEW FEATURES AND FUNCTIONS

  • Scaling of ordination axes in cca, rda and capscale can now be expressed with descriptive strings "none", "sites", "species" or "symmetric" to tell which kind of scores should be scaled by eigenvalues. These can be further modified with arguments hill in cca and correlation in rda. The old numeric scaling can still be used.

  • The permutation data can be extracted from anova results of constrained ordination (cca, rda, capscale) and further analysed with permustats function.

  • New data set BCI.env of site information for the Barro Colorado Island tree community data. Most useful variables are the UTM coordinates of sample plots. Other variables are constant or nearly constant and of little use in normal analysis.

Changes in version 2.3-0

BUG FIXES

  • Constrained ordination functions cca, rda and capscale are now more robust. Scoping of data set names and variable names is much improved. This should fix numerous long-standing problems, for instance those reported by Benedicte Bachelot (in email) and Richard Telford (in Twitter), as well as issues #16 and #100 in GitHub.

  • Ordination functions cca and rda silently accepted dissimilarities as input although their analysis makes no sense with these methods. Dissimilarities should be analysed with distance-based redundancy analysis (capscale).

  • The variance of the conditional component was over-estimated in goodness of rda results, and results were wrong for partial RDA. The problems were reported in an R-sig-ecology message by Christoph von Redwitz.

WINDOWS

  • orditkplot did not add file type identifier to saved graphics in Windows although that is required. The problem only concerned Windows OS.

NEW FEATURES AND FUNCTIONS

  • goodness function for constrained ordination (cca, rda, capscale) was redesigned. Function gained argument addprevious to add the variation explained by previous ordination components to axes when statistic = "explained". With this option, model = "CCA" will include the variation explained by partialled-out conditions, and model = "CA" will include the accumulated variation explained by conditions and constraints. The former behaviour was addprevious = TRUE for model = "CCA", and addprevious = FALSE for model = "CA". The argument will have no effect when statistic = "distance", but this will always show the residual distance after all previous components. Formerly it displayed the residual distance only for the currently analysed model.

  • Functions ordiArrowMul and ordiArrowTextXY are exported and can be used in normal interactive sessions. These functions are used to scale a bunch arrows to fit ordination graphics, and formerly they were internal functions used within other vegan functions.

  • orditkplot can export graphics in SVG format. SVG is a vector graphics format which can be edited with several external programs, such as Illustrator and Inkscape.

  • Rarefaction curve (rarecurve) and species accumulation models (specaccum, fitspecaccum) gained new functions to estimate the slope of curve at given location. Originally this was based on a response to an R-SIG-ecology query. For rarefaction curves, the function is rareslope, and for species accumulation models it is specslope.

    The functions are based on analytic equations, and can also be evaluated at interpolated non-integer values. In specaccum models the functions can be only evaluated for analytic models "exact", "rarefaction" and "coleman". With "random" and "collector" methods you can only use finite differences (diff(fitted(<result.object>))). Analytic functions for slope are used for all non-linear regression models known to fitspecaccum.

  • Species accumulation models (specaccum) and non-liner regression models for species accumulation (fitspecaccum) work more consistently with weights. In all cases, the models are defined using the number of sites as independent variable, which with weights means that observations can be non-integer numbers of virtual sites. The predict models also use the number of sites with newdata, and for analytic models they can estimate the expected values for non-integer number of sites, and for non-analytic randomized or collector models they can interpolate on non-integer values.

  • fitspecaccum gained support functions AIC and deviance.

  • The varpart plots of four-component models were redesigned following Legendre, Borcard & Roberts Ecology 93, 1234–1240 (2012), and they use now four ellipses instead of three circles and two rectangles. The components are now labelled in plots, and the circles and ellipses can be easily filled with transparent background colour.

Changes in version 2.2-1

GENERAL

  • This is a maintenance release to avoid warning messages caused by changes in CRAN repository. The namespace usage is also more stringent to avoid warnings and notes in development versions of R.

INSTALLATION

  • vegan can be installed and loaded without tcltk package. The tcltk package is needed in orditkplot function for interactive editing of ordination graphics.

BUG FIXES

  • ordisurf failed if gam package was loaded due to namespace issues: some support functions of gam were used instead of mgcv functions.

  • tolerance function failed for unconstrained correspondence analysis.

NEW FEATURES

  • estimateR uses a more exact variance formula for bias-corrected Chao estimate of extrapolated number of species. The new formula may be unpublished, but it was derived following the guidelines of Chiu, Wang, Walther & Chao, Biometrics 70, 671–682 (2014), online supplementary material.

  • Diversity accumulation functions specaccum, renyiaccum, tsallisaccum, poolaccum and estaccumR use now permute package for permutations of the order of sampling sites. Normally these functions only need simple random permutation of sites, but restricted permutation of the permute package and user-supplied permutation matrices can be used.

  • estaccumR function can use parallel processing.

  • linestack accepts now expressions as labels. This allows using mathematical symbols and formula given as mathematical expressions.

Changes in version 2.2-0

GENERAL

  • Several vegan functions can now use parallel processing for slow and repeating calculations. All these functions have argument parallel. The argument can be an integer giving the number of parallel processes. In unix-alikes (Mac OS, Linux) this will launch "multicore" processing and in Windows it will set up "snow" clusters as desribed in the documentation of the parallel package. If option "mc.cores" is set to an integer > 1, this will be used to automatically start parallel processing. Finally, the argument can also be a previously set up "snow" cluster which will be used both in Windows and in unix-alikes. Vegan vignette on Design decision explains the implementation (use vegandocs("decission"), and parallel package has more extensive documentation on parallel processing in R.

    The following function use parallel processing in analysing permutation statistics: adonis, anosim, anova.cca (and permutest.cca), mantel (and mantel.partial), mrpp, ordiareatest, permutest.betadisper and simper. In addition, bioenv can compare several candidate sets of models in paralle, metaMDS can launch several random starts in parallel, and oecosimu can evaluate test statistics for several null models in parallel.

  • All permutation tests are based on the permute package which offers strong tools for restricted permutation. All these functions have argument permutations. The default usage of simple non-restricted permutations is achieved by giving a single integer number. Restricted permutations can be defined using the how function of the permute package. Finally, the argument can be a permutation matrix where rows define permutations. It is possible to use external or user constructed permutations.

    See help(permutations) for a brief introduction on permutations in vegan, and permute package for the full documention. The vignette of the permute package can be read from vegan with command vegandocs("permutations").

    The following functions use the permute package: CCorA, adonis, anosim, anova.cca (plus associated permutest.cca, add1.cca, drop1.cca, ordistep, ordiR2step), envfit (plus associated factorfit and vectorfit), mantel (and mantel.partial), mrpp, mso, ordiareatest, permutest.betadisper, protest and simper.

  • Community null model generation has been completely redesigned and rewritten. The communities are constructed with new nullmodel function and defined in a low level commsim function. The actual null models are generated with a simulate function that builds an array of null models. The new null models include a wide array of quantitative models in addition to the old binary models, and users can plug in their own generating functions. The basic tool invoking and analysing null models is oecosimu. The null models are often used only for the analysis of nestedness, but the implementation in oecosimu allows analysing any statistic, and null models are better seen as an alternative to permutation tests.

INSTALLATION

  • vegan package dependencies and namespace imports were adapted to changes in R, and no more trigger warnings and notes in package tests.

  • Three-dimensional ordination graphics using scatterplot3d for static plots and rgl for dynamic plots were removed from vegan and moved to a companion package vegan3d. The package is available in CRAN.

NEW FUNCTIONS

  • Function dispweight implements dispersion weighting of Clarke et al. (Marine Ecology Progress Series, 320, 11–27). In addition, we implemented a new method for generalized dispersion weighting gdispweight. Both methods downweight species that are significantly over-dispersed.

  • New hclust support functions reorder, rev and scores. Functions reorder and rev are similar as these functions for dendrogram objects in base R. However, reorder can use (and defaults to) weighted mean. In weighted mean the node average is always the mean of member leaves, whereas the dendrogram uses always unweighted means of joined branches.

  • Function ordiareatest supplements ordihull and ordiellipse and provides a randomization test for the one-sided alternative hypothesis that convex hulls or ellipses in two-dimensional ordination space have smaller areas than with randomized groups.

  • Function permustats extracts and inspects permutation results with support functions summary, density, densityplot, qqnorm and qqmath. The density and qqnorm are standard R tools that only work with one statistic, and densityplot and qqmath are lattice graphics that work with univariate and multivariate statistics. The results of following functions can be extracted: anosim, adonis, mantel (and mantel.partial), mrpp, oecosimu, permustest.cca (but not the corresponding anova methods), permutest.betadisper, and protest.

  • stressplot functions display the ordination distances at given number of dimensions against original distances. The method functins are similar to stressplot for metaMDS, and always use the inherent distances of each ordination method. The functions are available for the results capscale, cca, princomp, prcomp, rda, and wcmdscale.

BUG FIXES

  • cascadeKM of only one group will be NA instead of a random value.

  • ordiellipse can handle points exactly on a line, including only two points (with a warning).

  • plotting radfit results for several species failed if any of the communities had no species or had only one species.

  • RsquareAdj for capscale with negative eigenvalues will now report NA instead of using biased method of rda results.

  • simper failed when a group had only a single member.

NEW FEATURES

  • anova.cca functions were re-written to use the permute package. Old results may not be exactly reproduced, and models with missing data may fail in several cases. There is a new option of analysing a sequence of models against each other.

  • simulate functions for cca and rda can return several simulations in a nullmodel compatible object. The functions can produce simulations with correlated errors (also for capscale) in parametric simulation with Gaussian error.

  • bioenv can use Manhattan, Gower and Mahalanobis distances in addition to the default Euclidean. New helper function bioenvdist can extract the dissimilarities applied in best model or any other model.

  • metaMDS(..., trace = 2) will show convergence information with the default monoMDS engine.

  • Function MDSrotate can rotate a k-dimensional ordination to k-1 variables. When these variables are correlated (like usually is the case), the vectors can also be correlated to previously rotated dimensions, but will be uncorrelated to all later ones.

  • vegan 2.0-10 changed the weighted nestednodf so that weighted analysis of binary data was equivalent to binary analysis. However, this broke the equivalence to the original method. Now the function has an argument wbinary to select the method of analysis. The problem was reported and a fix submitted by Vanderlei Debastiani (Universidade Federal do Rio Grande do Sul, Brasil).

  • ordiellipse, ordihull and ordiellipse can handle missing values in groups.

  • ordispider can now use spatial medians instead of means.

  • rankindex can use Manhattan, Gower and Mahalanobis distance in addition to the default Euclidean.

  • User can set colours and line types in function rarecurve for plotting rarefaction curves.

  • spantree gained a support function as.hclust to change the minimum spanning tree into an hclust tree.

  • fitspecaccum can do weighted analysis. Gained lines method.

  • Functions for extrapolated number of species or for the size of species pool using Chao method were modified following Chiu et al., Biometrics 70, 671–682 (2014).

    Incidence based specpool can now use (and defaults to) small sample correction with number of sites as the sample size. Function uses basic Chao extrapolation based on the ratio of singletons and doubletons, but switches now to bias corrected Chao extrapolation if there are no doubletons (species found twice). The variance formula for bias corrected Chao was derived following the supporting online material and differs slightly from Chiu et al. (2014).

    The poolaccum function was changed similarly, but the small sample correction is used always.

    The abundance based estimateR uses bias corrected Chao extrapolation, but earlier it estimated its variance with classic Chao model. Now we use the widespread approximate equation for variance.

    With these changes these functions are more similar to EstimateS.

  • tabasco uses now reorder.hclust for hclust object for better ordering than previously when it cast trees to dendrogram objects.

  • treedive and treedist default now to match.force = TRUE and can be silenced with verbose = FALSE.

  • vegdist gained Mahalanobis distance.

  • Nomenclature updated in plant community data with the help of Taxonstand and taxize packages. The taxonomy of the dune data was adapted to the same sources and APG III. varespec and dune use 8-character names (4 from genus + 4 from species epithet). New data set on phylogenetic distances for dune was extracted from Zanne et al. (Nature 506, 89–92; 2014).

  • User configurable plots for rarecurve.

DEPRECATED AND DEFUNCT

  • strata are deprecated in permutations. It is still accepted but will be phased out in next releases. Use how of permute package.

  • cca, rda and capscale do not return scores scaled by eigenvalues: use scores function to extract scaled results.

  • commsimulator is deprecated. Replace commsimulator(x, method) with simulate(nullmodel(x, method)).

  • density and densityplot for permutation results are deprecated: use permustats with its density and densityplot method.

Changes in version 2.0-10

GENERAL

  • This version is adapted to the changes in permute package version 0.8-0 and no more triggers NOTEs in package checks. This release may be the last of the 2.0 series, and the next vegan release is scheduled to be a major release with newly designed oecosimu and community pattern simulation, support for parallel processing, and full support of the permute package. If you are interested in these developments, you may try the development versions of vegan in R-Forge or GitHub and report the problems and user experience to us.

BUG FIXES

  • envfit function assumed that all external variables were either numeric or factors, and failed if they were, say, character strings. Now only numeric variables are taken as continuous vectors, and all other variables (character strings, logical) are coerced to factors if possible. The function also should work with degenerate data, like only one level of a factor or a constant value of a continuous environmental variable. The ties were wrongly in assessing permutation P-values in vectorfit.

  • nestednodf with quantitative data was not consistent with binary models, and the fill was wrongly calculated with quantitative data.

  • oecosimu now correctly adapts displayed quantiles of simulated values to the alternative test direction.

  • renyiaccum plotting failed if only one level of diversity scale was used.

NEW FEATURES

  • The Kempton and Taylor algorithm was found unreliable in fisherfit and fisher.alpha, and now the estimation of Fisher alpha is only based on the number of species and the number of individuals. The estimation of standard errors and profile confidence intervals also had to be scrapped.

  • renyiaccum, specaccum and tsallisaccum functions gained subset argument.

  • renyiaccum can now add a collector curve to to the analysis. The collector curve is the diversity accumulation in the order of the sampling units. With an interesting ordering or sampling units this allows comparing actual species accumulations with the expected randomized accumulation.

  • specaccum can now perform weighted accumulation using the sampling effort as weights.

Changes in version 2.0-9

  • This version is released due to changes in programming interface and testing procedures in R 3.0.2. If you are using an older version of R, there is no need to upgrade vegan. There are no new features nor bug fixes. The only user-visible changes are in documentation and in output messages and formatting. Because of R changes, this version is dependent on R version 2.14.0 or newer and on lattice package.

Changes in version 2.0-8

GENERAL

  • This is a maintenance release that fixes some issues raised by changed in R toolset for processing vignettes. In the same we also fix some typographic issues in the vignettes.

NEW FEATURES

  • ordisurf gained new arguments for more flexible definition of fitted models to better utilize the mgcv::gam function.

    The linewidth of contours can now be set with the argument lwd.

  • Labels to arrows are positioned in a better way in plot functions for the results of envfit, cca, rda and capscale. The labels should no longer overlap the arrow tips.

  • The setting test direction is clearer in oecosimu.

  • ordipointlabel gained a plot method that can be used to replot the saved result.

Changes in version 2.0-7

NEW FUNCTIONS

  • tabasco() is a new function for graphical display of community data matrix. Technically it is an interface to R heatmap, but its use is closer to vegan function vegemite. The function can reorder the community data matrix similarly as vegemite, for instance, by ordination results. Unlike heatmap, it only displays dendrograms if supplied by the user, and it defaults to re-order the dendrograms by correspondence analysis. Species are ordered to match site ordering or like determined by the user.

BUG FIXES

  • Function fitspecaccum(..., model = "asymp") fitted logistic model instead of asymptotic model (or the same as model = "logis").

  • nestedtemp() failed with very sparse data (fill < 0.38%).

NEW FEATURES

  • The plot function for constrained ordination results (cca, rda, capscale) gained argument axis.bp (defaults TRUE) which can be used to suppress axis scale for biplot arrays.

  • Number of iterations in nonmetric multidimensional scaling (NMDS) can be set with keyword maxit (defaults 200) in metaMDS.

DEPRECATED

  • The result objects of cca, rda and capscale will no longer have scores u.eig, v.eig and wa.eig in the future versions of vegan. This change does not influence normal usage, because vegan functions do not need these items. However, external scripts and packages may need changes in the future versions of vegan.

Changes in version 2.0-6

BUG FIXES

  • The species scores were scaled wrongly in capscale(). They were scaled correctly only when Euclidean distances were used, but usually capscale() is used with non-Euclidean distances. Most graphics will change and should be redone. The change of scaling mainly influences the spread of species scores with respect to the site scores.

  • Function clamtest() failed to set the minimum abundance threshold in some cases. In addition, the output was wrong when some of the possible species groups were missing. Both problems were reported by Richard Telford (Bergen, Norway).

  • Plotting an object fitted by envfit() would fail if p.max was used and there were unused levels for one or more factors. The unused levels could result from deletion of observations with missing values or simply as the result of supplying a subset of a larger data set to envfit().

  • multipart() printed wrong information about the analysis type (but did the analysis correctly). Reported by Valerie Coudrain.

  • oecosimu() failed if its nestedfun returned a data frame. A more fundamental fix will be in vegan 2.2-0, where the structure of the oecosimu() result will change.

  • The plot of two-dimensional procrustes() solutions often draw original axes in a wrong angle. The problem was reported by Elizabeth Ottesen (MIT).

  • Function treedive() for functional or phylogenetic diversity did not correctly match the species names between the community data and species tree when the tree contained species that did not occur in the data. Related function treedist() for phylogenetic distances did not try to match the names at all.

NEW FEATURES

  • The output of capscale() displays the value of the additive constant when argument add = TRUE was used.

  • fitted() functions for cca(), rda() and capscale() can now return conditioned (partial) component of the response: Argument model gained a new alternative model = "pCCA".

  • dispindmorisita() output gained a new column for Chi-squared based probabilities that the null hypothesis (random distribution) is true.

  • metaMDS() and monoMDS() have new default convergence criteria. Most importantly, scale factor of the gradient (sfgrmin) is stricter. The former limit was too slack with large data sets and iterations stopped early without getting close to the solution. In addition, scores() ignore now requests to dimensions beyond those calculated instead of failing, and scores() for metaMDS() results do not drop dimensions.

  • msoplot() gained legend argument for positioning the legend.

  • Nestedness function nestednodf() gained a plot method.

  • ordiR2step() gained new argument R2scope (defaults TRUE) which can be used to turn off the criterion of stopping when the adjusted R-squared of the current model exceeds that of the scope. This option allows model building when the scope would be overdetermined (number of predictors higher than number of observations).

    ordiR2step() now handles partial redundancy analysis (pRDA).

  • orditorp() gained argument select to select the rows or columns of the results to display.

  • protest() prints the standardized residual statistic squared m12 in addition to the squared Procrustes correlation R-squared. Both were calculated, but only the latter was displayed.

    Permutation tests are much faster in protest(). Instead of calling repeatedly procrustes(), the goodness of fit statistic is evaluated within the function.

  • wcmdscale() gained methods for print, plot etc. of the results. These methods are only used if the full wcmdscale result is returned with, e.g., argument eig = TRUE. The default is still to return only a matrix of scores similarly as the standard R function cmdscale(), and in that case the new methods are not used.

Changes in version 2.0-5

BUG FIXES

  • anova(<cca_object>, ...) failed with by = "axis" and by = "term". The bug was reported by Dr Sven Neulinger (Christian Albrecht University, Kiel, Germany).

  • radlattice did not honour argument BIC = TRUE, but always displayed AIC.

NEW FUNCTIONS

  • Most vegan functions with permutation tests have now a density method that can be used to find empirical probability distributions of permutations. There is a new plot method for these functions that displays both the density and the observed statistic. The density function is available for adonis, anosim, mantel, mantel.partial, mrpp, permutest.cca and procrustes.

    Function adonis can return several statistics, and it has now a densityplot method (based on lattice).

    Function oecosimu already had density and densityplot, but they are now similar to other vegan methods, and also work with adipart, hiersimu and multipart.

  • radfit functions got a predict method that also accepts arguments newdata and total for new ranks and site totals for prediction. The functions can also interpolate to non-integer “ranks”, and in some models also extrapolate.

NEW FEATURES

  • Labels can now be set in the plot of envfit results. The labels must be given in the same order that the function uses internally, and new support function labels can be used to display the default labels in their correct order.

  • Mantel tests (functions mantel and mantel.partial) gained argument na.rm which can be used to remove missing values. This options should be used with care: Permutation tests can be biased if the missing values were originally in matching or fixed positions.

  • radfit results can be consistently accessed with the same methods whether they were a single model for a single site, all models for a single site or all models for all sites in the data. All functions now have methods AIC, coef, deviance, logLik, fitted, predict and residuals.

INSTALLATION AND BUILDING

  • Building of vegan vignettes failed with the latest version of LaTeX (TeXLive 2012).

  • R versions later than 2.15-1 (including development version) report warnings and errors when installing and checking vegan, and you must upgrade vegan to this version. The warnings concern functions cIndexKM and betadisper, and the error occurs in betadisper. These errors and warnings were triggered by internal changes in R.

Changes in version 2.0-4

BUG FIXES

  • adipart assumed constant gamma diversity in simulations when assessing the P-value. This could give biased results if the null model produces variable gamma diversities and option weights = "prop" is used. The default null model ("r2dtable") and the default option (weights = "unif") were analysed correctly.

  • anova(<prc-object>, by = "axis") and other by cases failed due to ‘NAMESPACE’ issues.

  • clamtest wrongly used frequencies instead of the counts when calculating sample coverage. No detectable differences were produced when rerunning examples from Chazdon et al. 2011 and vegan help page.

  • envfit failed with unused factor levels.

  • predict for cca results with type = "response" or type = "working" failed with newdata if the number of rows did not match with the original data. Now the newdata is ignored if it has a wrong number of rows. The number of rows must match because the results in cca must be weighted by original row totals. The problem did not concern rda or capscale results which do not need row weights. Reported by Glenn De'ath.

NEW FEATURES

  • Functions for diversity partitioning (adipart, hiersimu and multipart) have now formula and default methods. The formula method is identical to the previous functions, but the default method can take two matrices as input.

    Functions adipart and multipart can be used for fast and easy overall partitioning to alpha, beta and gamma diversities by omitting the argument describing the hierarchy.

  • The method in betadisper is biased with small sample sizes. The effects of the bias are strongest with unequal sample sizes. A bias adjusted version was developed by Adrian Stier and Ben Bolker, and can be invoked with argument bias.adjust (defaults to FALSE).

  • bioenv accepts dissimilarities (or square matrices that can be interpreted as dissimilarities) as an alternative to community data. This allows using other dissimilarities than those available in vegdist.

  • plot function for envfit results gained new argument bg that can be used to set background colour for plotted labels.

  • msoplot is more configurable, and allows, for instance, setting y-axis limits.

  • Hulls and ellipses are now filled using semitransparent colours in ordihull and ordiellipse, and the user can set the degree of transparency with a new argument alpha. The filled shapes are used when these functions are called with argument draw = "polygon". Function ordihull puts labels (with argument label = TRUE) now in the real polygon centre.

  • ordiplot3d returns function envfit.convert and the projected location of the origin. Together these can be used to add envfit results to existing ordiplot3d plots.

    Equal aspect ratio cannot be set exactly in ordiplot3d because underlying core routines do not allow this. Now ordiplot3d sets equal axis ranges, and the documents urge users to verify that the aspect ratio is reasonably equal and the graph looks like a cube. If the problems cannot be solved in the future, ordiplot3d may be removed from next releases of vegan.

  • Function ordipointlabel gained argument to select only some of the items for plotting. The argument can be used only with one set of points.

Changes in version 2.0-3

NEW FUNCTIONS

  • Added new nestedness functions nestedbetasor and nestedbetajac that implement multiple-site dissimilarity indices and their decomposition into turnover and nestedness components following Baselga (Global Ecology and Biogeography 19, 134–143; 2010).

  • Added function rarecurve to draw rarefaction curves for each row (sampling unit) of the input data, optionally with lines showing rarefied species richness with given sample size for each curve.

  • Added function simper that implements “similarity percentages” of Clarke (Australian Journal of Ecology 18, 117–143; 1993). The method compares two or more groups and decomposes the average between-group Bray-Curtis dissimilarity index to contributions by individual species. The code was developed in GitHub by Eduard Szöcs (Uni Landau, Germany).

BUG FIXES

  • betadisper() failed when the groups was a factor with empty levels.

  • Some constrained ordination methods and their support functions are more robust in border cases (completely aliased effects, saturated models, user requests for non-existng scores etc). Concerns capscale, ordistep, varpart, plot function for constrained ordination, and anova(<cca.object>, by = "margin").

  • The scores function for monoMDS did not honour choices argument and hence dimensions could not be chosen in plot.

  • The default scores method failed if the number of requested axes was higher than the ordination object had. This was reported as an error in ordiplot in R-sig-ecology mailing list.

NEW FEATURES

  • metaMDS argument noshare = 0 is now regarded as a numeric threshold that always triggers extended dissimilarities (stepacross), instead of being treated as synonymous with noshare = FALSE which always suppresses extended dissimilarities.

  • Nestedness discrepancy index nesteddisc gained a new argument that allows user to set the number of iterations in optimizing the index.

  • oecosimu displays the mean of simulations and describes alternative hypothesis more clearly in the printed output.

  • Implemented adjusted R-squared for partial RDA. For partial model rda(Y ~ X1 + Condition(X2)) this is the same as the component [a] = X1|X2 in variance partition in varpart and describes the marginal (unique) effect of constraining term to adjusted R-squared.

  • Added Cao dissimilarity (CYd) as a new dissimilarity method in vegdist following Cao et al., Water Envir Res 69, 95–106 (1997). The index should be good for data with high beta diversity and variable sampling intensity. Thanks to consultation to Yong Cao (Univ Illinois, USA).

Changes in version 2.0-2

BUG FIXES

  • Function capscale failed if constrained component had zero rank. This happened most likely in partial models when the conditions aliased constraints. The problem was observed in anova(..., by ="margin") which uses partial models to analyses the marginal effects, and was reported in an email message to R-News mailing list.

  • stressplot and goodness sometimes failed when metaMDS was based on isoMDS (MASS package) because metaMDSdist did not use the same defaults for step-across (extended) dissimilarities as metaMDS(..., engine = "isoMDS"). The change of defaults can also influence triggering of step-across in capscale(..., metaMDSdist = TRUE).

  • adonis contained a minor bug resulting from incomplete implementation of a speed-up that did not affect the results. In fixing this bug, a further bug was identified in transposing the hat matrices. This second bug was only active following fixing of the first bug. In fixing both bugs, a speed-up in the internal f.test() function is fully realised. Reported by Nicholas Lewin-Koh.

NEW FEATURES

  • ordiarrows and ordisegments gained argument order.by that gives a variable to sort points within groups. Earlier the points were assumed to be in order.

  • Function ordispider invisibly returns the coordinates to which the points were connected. Typically these are class centroids of each point, but for constrained ordination with no groups they are the LC scores.

Changes in version 2.0-1

NEW FUNCTIONS

  • clamtest: new function to classify species as generalists and specialists in two distinct habitats (CLAM test of Chazdon et al., Ecology 92, 1332–1343; 2011). The test is based on multinomial distribution of individuals in two habitat types or sampling units, and it is applicable only to count data with no over-dispersion.

  • as.preston gained plot and lines methods, and as.fisher gained plot method (which also can add items to existing plots). These are similar as plot and lines for prestonfit and fisherfit, but display only data without the fitted lines.

  • raupcrick: new function to implement Raup-Crick dissimilarity as a probability of number of co-occurring species with occurrence probabilities proportional to species frequencies. Vegan has Raup-Crick index as a choice in vegdist, but that uses equal sampling probabilities for species and analytic equations. The new raupcrick function uses simulation with oecosimu. The function follows Chase et al. (2011) Ecosphere 2:art24 [doi:10.1890/ES10-00117.1], and was developed with the consultation of Brian Inouye.

BUG FIXES

  • Function meandist could scramble items and give wrong results, especially when the grouping was numerical. The problem was reported by Dr Miguel Alvarez (Univ. Bonn).

  • metaMDS did not reset tries when a new model was started with a previous.best solution from a different model.

  • Function permatswap for community null models using quantitative swap never swapped items in a 2 by 2 submatrix if all cells were filled.

  • The result from permutest.cca could not be updated because of a ‘NAMESPACE’ issue.

  • R 2.14.0 changed so that it does not accept using sd() function for matrices (which was the behaviour at least since R 1.0-0), and several vegan functions were changed to adapt to this change (rda, capscale, simulate methods for rda, cca and capscale). The change in R 2.14.0 does not influence the results but you probably wish to upgrade vegan to avoid annoying warnings.

ANALYSES

  • nesteddisc is slacker and hence faster when trying to optimize the statistic for tied column frequencies. Tracing showed that in most cases an improved ordering was found rather early in tries, and the results are equally good in most cases.

Changes in version 2.0-0

GENERAL

  • Peter Minchin joins the vegan team.

  • vegan implements standard RNAMESPACE’. In general, S3 methods are not exported which means that you cannot directly use or see contents of functions like cca.default, plot.cca or anova.ccabyterm. To use these functions you should rely on R delegation and simply use cca and for its result objects use plot and anova without suffix .cca. To see the contents of the function you can use :::, such as vegan:::cca.default. This change may break packages, documents or scripts that rely on non-exported names.

  • vegan depends on the permute package. This package provides powerful tools for restricted permutation schemes. All vegan permutation will gradually move to use permute, but currently only betadisper uses the new feature.

NEW FUNCTIONS

  • monoMDS: a new function for non-metric multidimensional scaling (NMDS). This function replaces MASS::isoMDS as the default method in metaMDS. Major advantages of monoMDS are that it has ‘weak’ (‘primary’) tie treatment which means that it can split tied observed dissimilarities. ‘Weak’ tie treatment improves ordination of heterogeneous data sets, because maximum dissimilarities of 1 can be split. In addition to global NMDS, monoMDS can perform local and hybrid NMDS and metric MDS. It can also handle missing and zero dissimilarities. Moreover, monoMDS is faster than previous alternatives. The function uses Fortran code written by Peter Minchin.

  • MDSrotate a new function to replace metaMDSrotate. This function can rotate both metaMDS and monoMDS results so that the first axis is parallel to an environmental vector.

  • eventstar finds the minimum of the evenness profile on the Tsallis entropy, and uses this to find the corresponding values of diversity, evenness and numbers equivalent following Mendes et al. (Ecography 31, 450-456; 2008). The code was contributed by Eduardo Ribeira Cunha and Heloisa Beatriz Antoniazi Evangelista and adapted to vegan by Peter Solymos.

  • fitspecaccum fits non-linear regression models to the species accumulation results from specaccum. The function can use new self-starting species accumulation models in vegan or other self-starting non-linear regression models in R. The function can fit Arrhenius, Gleason, Gitay, Lomolino (in vegan), asymptotic, Gompertz, Michaelis-Menten, logistic and Weibull (in base R) models. The function has plot and predict methods.

  • Self-starting non-linear species accumulation models SSarrhenius, SSgleason, SSgitay and SSlomolino. These can be used with fitspecaccum or directly in non-linear regression with nls. These functions were implemented because they were found good for species-area models by Dengler (J. Biogeogr. 36, 728-744; 2009).

NEW FEATURES

  • adonis, anosim, meandist and mrpp warn on negative dissimilarities, and betadisper refuses to analyse them. All these functions expect dissimilarities, and giving something else (like correlations) probably is a user error.

  • betadisper uses restricted permutation of the permute package.

  • metaMDS uses monoMDS as its default ordination engine. Function gains new argument engine that can be used to alternatively select MASS::isoMDS. The default is not to use stepacross with monoMDS because its ‘weak’ tie treatment can cope with tied maximum dissimilarities of one. However, stepacross is the default with isoMDS because it cannot handle adequately these tied maximum dissimilarities.

  • specaccum gained predict method which uses either linear or spline interpolation for data between observed points. Extrapolation is possible with spline interpolation, but may make little sense.

  • specpool can handle missing values or empty factor levels in the grouping factor pool. Now also checks that the length of the pool matches the number of observations.

DEPRECATED AND DEFUNCT

  • metaMDSrotate was replaced with MDSrotate that can also handle the results of monoMDS.

  • permuted.index2 and other “new” permutation code was removed in favour of the permute package. This code was not intended for normal use, but packages depending on that code in vegan should instead depend on permute.

ANALYSES

  • treeheight uses much snappier code. The results should be unchanged.

vegan/inst/ONEWS0000644000175100001440000027106112417700771013200 0ustar hornikusers-*-Text-*- VEGAN RELEASE VERSIONS ====================== CHANGES IN VEGAN 1.17-12 - This is a maintenance release which improves robustness of several functions. A major release is expected soon. - tolerance.cca: a new function to find the species response widths (a.k.a. tolerances) and sample heteregeneities from a cca() result. - adonis: much faster. - betadiver: argument 'index' was renamed to 'method' so that the function can be used similarly as dist(), vegdist() and other distance functions. This allows using betadiver() as a distance function in metaMDS(). - cca/rda/capscale: handling of aliased and other zero-rank components changed in vegan 1.17-11, but not all support functions were adapted to these changes in that release. Now the following functions cope with the changes and are more robust: capscale, anova.cca, bstick.cca, goodness.cca, predict.cca, screeplot.cca, calibrate.cca, deviance.cca/rda, ordiplot3d, ordiresids, ordirgl, ordixytplot. - isomap: text or points are plotted more cleanly, and text uses ordilabel(). - make.cepnames: a bit more flexible and robust, with a new argument that allows selecting first and second name component instead of first and last. - metaMDSrotate: rotation could be slightly off with more than two dimensions when there are NA scores. - ordiellipse, ordihull, ordispider, orditorp: accept NA scores. - ordilabel: gained argument 'select'. - ordiplot: better handling of graphical arguments, arg 'cex' can be set by the user. - swan: gained new argument 'maxit' that allows setting maximum number of iterations. Defaults 'maxit = Inf' or the current behaviour of continuing as long as there are zeros that can be filled. CHANGES IN VEGAN 1.17-11 - This is a maintenance release which improves the robustness of several functions but introduces no new important features. - cca/rda/capscale: handling of aliased and other zero-rank components changed. They are no longer made NULL and left undisplayed, but now they are shown as zero rank. The general output also changed so that proportions of inertia are only shown if there are conditions or constraints, but not for unconstrained analysis. The capscale() function no longer shows species scores if these are unavailable. Several support functions more robust. - nobs: R 2.13.0 introduced generic function nobs() to find the number of observations, and this release provides nobs() for several vegan results. (This does not make vegan dependent on R 2.13.0, but vegan works with older R as well.) - prc: allows anova(..., by = "axis") and other 'by' cases for prc() results. Some rda() support functions still fail, but now they stop informatively. - specaccum: gained argument 'groups' which can be used to find the number of species in subsets of the data. CHANGES IN VEGAN 1.17-10 - This is minor revision that mainly fixes vegan with respect to changes in the currently released R 2.13.0. Most importantly, cmdscale() output changed in R 2.13.0 and because of this capscale() could fail in some rare situations with argument 'add = TRUE'. This vegan bug made BiodiversityR package fail its tests in R 2.13.0. - metaMDSrotate: gained argument na.rm = TRUE. CHANGES IN VEGAN 1.17-9 - anova of cca/rda/capscale results gave wrong results in partial models. The bug was introduced in vegan 1.17-7. - diversity and related functions rarefy, rrarefy and specnumber now accept vector input. Earlier a single site had to be analysed either as a single-row matrix or using the non-default setting MARGIN = 2. - drarefy: new function that returns a matrix of probabilities that a species occurs in a rarefied sample of a given size. - metaMDS: it is possible to supply a starting configuration with argument 'previous.best'. A previous metaMDS or isoMDS result can also be given as a starting configuration. If the starting configuration has a higher number of dimensions than requested, the extra ones are dropped, and if the starting configuration has fewer dimensions, random scores for extra dimensions will be added. This may help in running metaMDS over a range of dimensionalities. - metaMDSrotate: can now rotate metaMDS solutions with any number of dimensions so that the first axis is parallel to a fitted environmental vector. Previously, only two dimensional solutions worked. - ordilabel: gained argument 'xpd' that allows labels outside the plot area. This allows labels above axes, for instance. - ordisurf: gained several new arguments to control the mgcv::gam fitting. Also gained an argument to suppress plotting, and a new plot method. The fitted model can be specified with a formula. - prestonfit and friends: default is now 'tiesplit = TRUE' (which was a new feature introduced in vegan 1.17-8). CHANGES IN VEGAN 1.17-8 - prestonfit: fixed a bug in as.preston(): the largest octave could be missing with 'tiesplit = TRUE'. - decorana: spurious axes scores and eigenvalues could be reported when the eigenvalues actually were zero. This was rarely a problem with real data, but occurred only in arbitrary examples. - procrustes: checks input. CHANGES IN VEGAN 1.17-7 - anova.cca: more robust when models were fitted without 'data' argument, or when 'na.action' or 'subset' was used. - capscale: implemented 'subset' in model definition. Additive constant with 'add = TRUE' is taken into account in predict() and fitted(). Implemented simulate() which returns a dissimilarity matrix with random error about predicted values. - eigenvals: can now extract eigenvalues of some ade4 and labdsv result objects. - nestednodf: did not use binary data when weighted = FALSE was used together with order = FALSE. Reported by Daniel Spitale. - prestonfit: gained option to split tied frequencies (1, 2, 4, 8, etc.) between adjacent octaves. - specaccum: implemented choice of using either "individuals" or "sites" as x-axis in plot(). Corrected a typo in the result object: now returns indeed "individuals". CHANGES IN VEGAN 1.17-6 - capscale: vegan 1.17-5 defined total inertia as the sum of absolute values of eigenvalues which changed the total inertia from previous versions. This is changed so that the total inertia is the sum of all eigenvalues, i.e., negative eigenvalues are subtracted from the total which was the definition in 1.17-4 and earlier. The proportions of inertia components are now expressed for non-negative eigenvalues only, and a new item "Real Total" (sum of positive eigenvalues) is added to the output if there are negative eigenvalues ("Imaginary" component). The function no longer returns the negative eigenvalues. - CCorA: scaling of object scores changed: they are no longer divided with sqrt(n-1). Minor fixes for improved robustness. - metaMDS: automatically changes some arguments to non-default values if input data contains negative entries. Help page gives advice to do so for non-community data. - wascores: checks that input weights are non-negative. NEW FEATURES AND BUG FIXES IN VEGAN 1.17-5 - anova.cca: Empty models with no constrained component have correct degrees of freedom. Tests 'by = "axis"' are really marginal for all axes (first axis used to be non-marginal to latter axes). - as.mlm.cca/rda, intersetcor, vif.cca: avoid bug in qr.X in R 2.12.0 which use wrong variable names in aliased models (fixed also in R 2.12.1). - betadisper: plot did not allow selecting axes. Reported by Sarah Goslee. - capscale: failed with NA action (reported by Nevil Amos). Total inertia is defined as the sum of absolute values of all eigenvalues consistently with cmdscale (from R 2.12.1) and other vegan functions. - cca/rda/capscale: print proportions of inertia components. - decorana: Fortran code prints warnings of failed convergence. Default plot() uses points if items have no name labels to be plotted. - deviance.cca/rda: return 0 (instead of NA) for over-paremetrized models with no unconstrained component. - eigenvals: uses sum of absolute values of eigenvalues in models that may have negative eigenvalues (cmdscale, wcmdscale, capscale). Can extract eigenvalues of pcnm() and cmdscale() of R 2.12.1. Uses zapsmall() to print near-zero eigenvalues. - mantel.correlog: P-values could slightly off. The function uses internally mantel() to evaluate the statistic and its significance. The mantel() function adds one both to the denominator and numerator, but mantel.correlog() did not notice this and made the addition for the second time. When the mantel.correlog() reported a positive value of the statistic, it reversed the direction of the one-sided test of mantel(), but did not handle tied values correctly in this reversal. - nestednodf: Gustavo Carvalho's new version that also implements a new quantitative method of Almeida-Neto & Ulrich (Env Mod Software, 26, 173-178; 2011). - oecosimu: takes care that the statistic is evaluated with binary data when null models are binary (regression introduced in vegan 1.17-0). Can handle NA values in permutations (as na.rm = TRUE). - ordilabel: gained new argument 'col' to set the text colour of the labels separately from 'border'. Function ordiellipse() uses this in filled polygons to set the colour of labels to that of borders or foreground instead of the colour of the fill. - ordiR2step: new function to model selection in rda() and capscale() based on adjusted R2 following the recommendations of Blanchet, Legendre & Borcard (Ecology 89, 2623-2632; 2008). - ordistep: correct a name clash when the fitted model had term or item called 'mod'. Reported by Richard Telford (Bergen, Norway). - pcnm: returns the truncated distanced matrix with argument 'dist.ret'. - prc: rewritten by Cajo ter Braak with a fix to scaling of coefficients for full compatibility with Canoco. - procrustes: Fixed translation following the report and fix by Christian Dudel (Bochum, Germany). New predict() method to rotate 'newdata' points to the target. Graphics with plot() select the direction of arrows with new argument 'to.target', and use ordilabel() to display the labels with 'type = "t"'. - rankindex: can take a list of dissimilarity functions as the argument to allow the use of other dissimilarity functions than vegdist() of vegan. - rda/capscale: the scores() can take two scaling constants ('const'). One is used for species, second for WA and LC scores of sites. This allows using scalings of prcomp(), princomp() or Canoco (like documented in the design decisions vignette). - swan: disconnected data caused infinite loop. Now zeros are left to the result with disconnected data. - treedist: can handle empty or one-node trees. Gained new argument 'relative' (defaults TRUE): if FALSE, finds raw dissimilarities of tree heights. Help page tells that relative tree distances are in range 0..2 instead of 0..1, since combining two trees may add a new common root. - treedive: handles trivial cases of zero (diversity NA) or one species (diversity 0). - vegdist: help page gives now binary variants of the indices using designdist() notation. - vif.cca: can handle models with aliased terms. - wcmdscale: returns goodness of fit statistic (item GOF) and handles negative eigenvalues consistently with cmdscale() and capscale(). NEW FEATURES AND BUG FIXES IN VEGAN 1.17-4 - MOStest: a new set of functions to implement generalized Mitchell-Olds & Shaw test for the location of the quadratic extreme in a given interval. The test can also be used for the location of the optimum of the Gaussian response model. In addition to the basic test, there are Fieller and deviance profile methods for the confidence interval of the location of the quadratic extreme or Gaussian optimum. - mrpp & meandist: mrpp() does not evaluate the Classification Strength (CS) of Van Sickle & Hughes (J. N. Am. Benthol. Soc., 19: 370-384; 2000) any longer. The old version misinterpreted the weighting scheme of CS, and with correct scheme there is no exact relationship between CS and the corresponding MRPP statistic and therefore permutation tests are not available. CS is still evaluated in meandist(), but with corrected weighting scheme, and no tests are performed. Reported by Dr John Van Sickle (Corvallis OR). - msoplot: legend text was in a wrong order. Reported by Daniel Borcard. - vegdist: Marti Anderson variant of the Gower distance (method = "altGower") should be without range standardization. Reported by Sergio Garcia. - ordiellipse: labels disappeared in their background with 'draw = "polygon"'. - predict.cca and predict.rda: gained argument 'newdata' for 'type = "response"' and 'type = "working"'. These return estimates of the response data, or dissimilarities in capscale(). NEW FEATURES AND BUG FIXES IN VEGAN 1.17-3 - adonis: handles ties correctly. - anova.cca and permutest.cca: permutations of cca result is faster and now nearly equally fast (or slow) in rda and cca. - betadisper: 'type = "median"' (the default) was not computing the spatial median on the real and imaginary axes separately. Reported by Marek Omelka. - cca, rda and capscale failed when Condition() was a factor, but the constraints had only continuous variables. - envfit: defaults to use 999 permutations instead of skipping permutations. - mantel and mantel.partial: faster permutation. - mantel.correlog: upgraded and faster. - ordiarrows, ordisegments and ordispider gained argument 'label' to label the groups corresponding to drawn arrows or lines. - ordiresids: de-weights residuals and fitted values in CCA so that these are identical to the values shuffled in simulate.cca. - permutest.cca: adds observed statistic among permutations when printing the result (does not influence anova.cca or calculations). - RsquareAdj: The 'rda' method used wrong number of degrees of freedom in rank deficit models (number of dependent variables was lower than the rank of constraints and conditions). Default method handles vector input. - scores: default method works with one row of scores. The scores of "cca" and "rda" methods always have names, even if there are no names in the input data. - Permutation tests: The available permutation tests are described in a new help files accessed via ?permutations. NEW FEATURES IN VEGAN 1.17-2 - permutest.betadisper: printed P-values in a wrong order in displaying the the matrix of pairwise tests (the values were correct, but formatting failed). Reported by Dan O'Shea. - nesteddisc: failed if the most species rich sites were tied. The function is now much faster (though still slow), but the price is that it does not try as hard to find the optimal ordering. - screeplot.cca & friends: new argument 'legend' for all methods (except 'decorana') to draw a legend if the observed and broken stick distribution are both plotted. - ordistep: adds an 'anova' item to the final model similarly as the standard step(). You can suppress the tracing ('trace = FALSE'), and find the model build history save in 'anova' in a compact form. - densityplot.oecosimu: gave warnings when there was only one statistic and hence one lattice panel. - predict functions for cca and rda objects match 'newdata' by dimension names instead of index. - simulate.rda and simulate.cca have new argument 'rank' which allows using lower rank presentation of fitted values (including rank = 0). - treedist: new function to find dissimilarities of species property trees of communities. The property trees can be, e.g., functional diversity trees, taxonomies or phylogenies. Similar in spirit to UniFrac distance (C. Lozupone & R. Knight, Appl Environ Microbiol 71:8225-8235; 2005), but completely different in design and works only with binary data. NEW FEATURES AND FIXES IN VEGAN 1.17-1 - multipart: new functions for multiplicative partionining of gamma diversity into alpha and beta diversity components. - CCorA: Fixed choice of scores in biplots -- Used PC scores instead of observed scores in the right-hand-side biplot panel. The biplot function has several new and enhanched alternatives of plots. - envfit: ignored weights in cca() results for factors or a single continuous variable. The bug was introduced with NA handling upgrade in vegan 1.17-0. The problem with fitted vectors was reported by Richard Telford (Bergen, Norway). CHANGES AND NEW FEATURES IN VEGAN 1.17-0 - Guillaume Blanchet joined the vegan team. - New function to partition data-set diversity (gamma) into within-plot (alpha) and between-plot (beta) diversity components. Function adipart performs additive partitioning (gamma = alpha + beta). Function hiersimu performs hierarchical null model testing similar to adipart but by using custom function to calculate statistics for levels of a hierarchy. - Subsets and missing value handling added to constrained ordination methods cca(), rda() and capscale(). The missing values (NA) can be handled with setting na.action (defaults na.fail). With na.action = na.omit, observations with missing values are removed, and with na.action = na.exclude they are kept, but scores may be NA. However, the WA scores for sites are available in non-partial models with na.action = na.exclude. The 'subset' can be defined using any variable in the constraining data set or species in the dependent data. - Functions for fitting environmental variables onto ordination (envfit, ordisurf) are aware of missing values in constraints or NA values in scores. The ordination plot functions also can handle NA scores. - New and upgraded quantitative null models. In particular, quantitative swap models (function abuswap) allows generetating null matrices where marginal totals and fill are fixed, or row and column fills are fixed, or row and column fills and either row or column totals are fixed. - oecosimu: rewritten to handle quantitative null models. Gained keyword 'alternative' for "two-sided", or "less" and "greater" one-sided tests. More robust with degenerate solutions. The 'method' can now be a user-supplied function. New support functions as.ts() and as.mcmc which transform sequential models into form that can be analysed using tools for time-series (as.ts()) or MCMC sequences of the 'coda' package (as.mcmc). - calibrate: calibrate is now a generic function with a new method calibrate.ordisurf() in addition to the old calibrate.cca. These find the estimates of environmental variables from ordination. - ordistep: stepwise selection of terms in constrained ordination (cca, rda and capscale) using permutation tests instead of pseudo-AIC that is used by the standard step() function. - pcnm: new function to find weighted principal coordinates of neighbour matrix (PCNM) from distances between points. These are typically used for spatial filtering in constrained ordination. The function uses weighted analysis and can therefore produce PCNM for correspondence analysis in addition to PCA and RDA. - betadisper: can use spatial medians which are now the default method. Preliminary tests indicate that spatial medians correct the anti-conservative Type I errors reported by Stewart Schultz. - decostand & vegdist: new transformation 'log' which implements Marti Anderson's scaling log(x) + 1 for x>0 (which is not at all the same as log(x+1)), and vegdist has alternative Gower function that skips double zeros. Together these implement the "modified Gower" distance of Anderson et al. (Ecology Letters 9, 683-693; 2006). Feature request #473 by Etienne Laliberte in vegan.r-forge.r-project.org. - model.matrix.cca & model.frame.cca: new functions to reconstruct the model frame and model matrix (model matrices in partial models) of constraints used in ordination methods cca(), rda() and capscale(). - simulate.cca & simulate.cca: simulate the community (response) data from the result of cca() or rda() under alternative hypothesis. Error is added to the fitted values from ordination. The function uses either Gaussian error or permutes residuals and adds these to fitted values. - spandepth: a new function to find the depth of each node in the minimum spanning tree produced by spantree(). Feature request by W. E. Sharp. - alias.cca: gained argument names.only. - metaMDSrotate: a new function to rotate metaMDS so that first axis is parallel to an environmental variable. - msoplot: uses standard legend. - nesteddisc: new method that tries to find the smallest possible value of the statistic in tied data. Slow, but fixes the problems of the published method. The problem with tied values in nesteddisc was found with Carsten Dormann. - contribdiv: gained a plot method. - rarefy: failed with one site and many sample sizes like rarefy(rpois(10, 2), sample=2:3). - meandist: plot can draw histograms as an alternative to dendrograms. - plot functions for 'decorana' and 'cca' and friends and 'ordiplot' use 'linestack' if only one axis was requested. CHANGES IN VEGAN 1.15-4 - Changed package dependence: vegan does not depend on 'ellipse'. - anosim: user interface identical to 'mrpp'. Accepts now data matrix and finds dissimilarities internally. - betadisper: fix removal of zero eigenvalues with non-Euclidean distances. This may change the results slightly, but in most cases the effects are minor or none. - capscale: has now 'fitted' and 'residual' methods, and 'predict' works with 'type = "response"'. These return dissimilarities that produce the same ordination as the original data. - indpower: new function to find the indicator power of species to predict presence of other species (Halme et al., Conservation Biology 23, 1008-1016; 2009). Closely related to the the power to predict probabilities in beals(). - mantel.correlog: new functions to produce multivariate Mantel correlograms (Legendre & Legendre, Numerical Ecology, section 13.1.5; 1998). - metaMDS: accepts user-supplied dissimilarities. Species scores, data transformation, step-across and half-change scaling are unavailable with user-supplied dissimilarities, but random starts, PC rotation and scaling to original range of input dissimilarities work. - nestedtemp: row and column labels can be turned on/off independently in plots. - ordihull & ordiellipse: new argument 'label' to plot group names for hulls or ellipses. Return (invisibly) the data for plotted convex hulls or ellipses. In 'ordihull' this is a list of hull vertices, and in 'ordiellipse' a list of (scaled) covariance and centre data for ellipses. New 'summary' methods find the centres and areas of plotted hulls or ellipses. Argument 'draw' has new option "none" that suppresses all drawing so that only the data for summary can be extracted without plotting. - orditorp: works with reversed axes, like with 'xlim = c(3, -3)'. - ordixyplot: has a panel function for arrows: a lattice variant of ordiarrows. - poolaccum, estaccumR: new functions to find the specpool() or estimateR() estimates of extrapolated species richness in random accumulations of sites. These have 'plot' and 'summary' methods. - scores: functions biplot, points, text, ordilabel, ordiplot3d, ordixyplot and spantreee did not pass all arguments to scores() function. In particular, this concerned rda where 'scaling' and 'const' arguments could not be used within these functions. - radfit: new function 'radlattice' for a lattice plots of fitted models for a single site. - rrarefy: a new function to generate random rarefied communities. - RsquareAdj: now a generic function to find adjusted R squared with special cases to 'rda', 'cca', 'lm' and 'glm'. - summary.cca: cleaner output. - wcmdscale: returns scaled scores for axes with negative eigenvalues. CHANGES IN VEGAN 1.15-3 - anosim, mantel, mrpp, protest, envfit: did not include the observed statistic among permutations. Functions adonis and permutest.cca did this correctly, but did not print results neatly. - anova.cca: name clash if data were indexed with 'i'. - capscale: fixed handling of negative eigenvalues with non-Euclidean distances. The total inertia is the sum of all eigenvalues so that negative eigenvalues are subtracted from the total. The total inertia of negative components and their rank (number) is given as 'Imaginary' component, and the negative eigenvalues are listed after unconstrained positive eigenvalues. The procedure is based on Gower, Linear Algebra and its Applications 67, 81-97 (1985). New argument 'sqrt.dist' takes square root of the internally calculated dissimilarities and avoids negative eigenvalues with some indices, such as vegan Jaccard and Bray-Curtis. The adjustment is corrected for indices with upper limit of one, and the reported eigenvalues and inertia components are reduced by a factor of sqrt(n-1) and are similar to those reported by 'cmdscale' or 'wcmdscale'. - eigenvals: a new function to extract eigenvalues from rda, cca, capscale, wcmdscale, prcomp, princomp, svd or eigen. If the result object contains squareroots of eigenvalues, they are squared. The summary method also finds proportions and cumulative proportions explained. Function summary.cca now uses this to display eigenvalues. - kendall.global: could get wrong counts of ties in large data sets. - meandist: new sister function to 'mrpp' that finds mean within-group and between-group dissimilarities. The summary function finds overall averages of these, and returns all three MRPP variants plus classification strength. The plot method draws a dendrogram based on the mean dissimilarity matrix, with leaves hanging to within-groups dissimilarity. The functions follow Sickle, J. Agric. Biol. Envir. Stat. 2, 370-388 (1997). - ordisurf: fits now linear or quadratic trend surfaces if 'knots' argument is set to 0, 1, or 2. - orditkplot: copes with NA and NaN scores. - ordixyplot: mixed x and y axes for biplot arrows and class centroids. Function failed in constrained ordination. - tsallis: gained argument 'hill' to find results analogous to Hill numbers in renyi(), or the species number equivalents of indices. - wcmdscale: removes now zero eigenvalues instead of the last eigenvalue. The bug was copied from cmdscale(), which still has the bug in R 2.9.0 (plus another that was not copied to wcmdscale). CHANGES IN VEGAN 1.15-2 - adonis: adds one to numerator and denominator of permutation tests, the default number of iterations was raised from 5 to 999, and the result object got a 'terms' component. Uses much less memory allowing analysis of larger problems. - anova.cca: anova(..., by = "axis") gained new keyword 'cutoff' to stop permutation tests after exceeding the given cut off level of significance. The second term of anova(..., by = "margin") used different random numbers than other terms. - beals: Completely rewritten by Miquel de Caceres. Knows now also the cross validated version of Beals smoothing and other choices described by De Caceres & Legendre, Oecologia 156, 657-669; 2008. - betadisper: handles missing values both in dissimilarities and grouping. - cca/rda: cleaner output of summary() in unconstrained models. - commsimulator: simulated result retains original row and column names. - contribdiv: new function for contribution diversity (Lu et al., Basic and Applied Ecology 8, 1-12; 2007). - decostand: gained dots in argument list, so that stressplot(metaMDS(x, dist = "gower", trymax = 40)) works. - dispindmorisita: new function for the Morisita index of dispersion. See Krebs, Ecological Methodology; 1999. - kendall.global and kendall.post: new functions for Kendall's coefficient of concordance. In ecology these can be used to identify significant species associations (Legendre, J Agric Biol Environm Stat 10, 226-245; 2005). - metaMDS: more robust with distances like Euclidean and Manhattan which have no upper limit. The stepacross works correctly for these, but gives a warning that its use may not be sensible. There is a better heuristics to avoid half-change scaling with these indices. The 'halfchange' argument is now honoured when given in metaMDS() call. - mrpp: returns within-class dissimilarities. Evaluates classification strength (Van Sickle, Biological and Environmental Statistics, 2, 370-388; 1997) if weight.type = 3 was used. - nestednodf: new nestedness function of overlap and decreasing fill (Almeida-Neto et al., Oikos 117, 1227-1239; 2008). Coding by Gustava Carvalho. - ordirgl: no more superfluous warnings with type = "t". - ordisurf: gained an argument 'bubble' to draw bubble plots, or vary point sizes according the value of the observed variable. The (invisible) return object now has an item 'grid' for the fitted value and grid values. - orditkplot: can produce TIFF graphics, if installed R has this capability. - procrustes: new text() function. - radfit: broken-stick model (function rad.null) failed with Gaussian and Gamma error families. The plot.radfit command gains argument log = "y", which allows using arithmetic scales or log-log scales where Zipf model is a straight line. - spantree: retains names and uses labels in plot. - datasets: Oribatid mites (data 'mite') got taxon names. - help files updated, and do not raise errors or warnings with the Rd parser version 2 in R 2.9.0. CHANGES IN VEGAN 1.15-1 - betadisper and related functions now work when the 'group' argument represents a single group/level. - decorana: 'text' function failed. - cca/rda/capscale: cleaner handling of results with missing (NULL) row or column names, also in plots. - cca/rda/capscale: new functions 'head' and 'tail' for 'summary' of cca results to show only some rows of the scores. - nestedness: method nesteddisc was found to be strongly dependent on the ordering of tied column (species) frequencies. A warning is now issued, and development version of vegan in http://vegan.r-forge.r-project.org/ has an experimental function that tries to find the optimal ordering. - permatfull: 'row'/'column' arguments were mixed. - radfit: all methods work consistently for communities of 0, 1 or 2 species. - wcmdscale: typo in the result object items corrected. CHANGES IN VEGAN 1.15-0 GENERAL - Peter Solymos joined the vegan development team. NEW FUNCTIONS - add1.cca and drop1.cca: functions to implement permutation tests with argument test = "permutation". Function drop1.cca uses anova.cca(..., by = "margin") and add1.cca implements a new type of analysis for single term additions. - ordilabel: new alternative for cluttered ordination plots. Text is written on opaque labels. The texts still cover each other, but at least the uppermost are readable, and the ordering can be controlled by 'priority' argument. Similar to 's.label' in ade4 package. - ordipointlabel: new alternative for cluttered ordination plots. Points are in fixed positions, but their text labels are located to avoid overplotting. The optimization uses simulated annealing of 'optim' function. Returns an "orditkplot" object so that the results can be edited with 'orditkplot'. Similar to 'pointLabel' function in maptools package. - permatfull, permatswap: functions to permute quantitative count data. - treedive: estimation of functional diversity defined as the height of the dendrogram of species properties (Petchey & Gaston, Ecology Letters 9, 741-758; 2006). With a helper function 'treeheight' to find the height of a 'hclust' dendrogram. - tsallis: Tsallis entropy family as an alternative to 'renyi'. - wcmdscale: weighted metric scaling a.k.a. weighted principal coordinates analysis; only uses row weights. NEW FEATURES AND FIXES - anova.cca: default permutation model changed from "direct" to "reduced" after Pierre Legendre demonstrated that model "reduced" was superior in term of Type I error. - anova.cca: handles smoothly models where constrained or unconstrained models are NULL and the tests are impossible (used to stop with error). - anova.cca(..., by = "margin") was handling wrongly 'x' in '~Condition(x) + x + z', or model formulae where same variables where used both as conditions and (aliased) constraints. - cca/rda/capscale: improved robustness in the formula interface. Partial handling of "cca" objects produced by ade4:::cca. - commsimulator: swap, trial swap and quasiswap written in C and *much* faster (100x in some tests). - oecosimu: accepts now a vector of statistics, and the user can give the name of the statistic in the function call. - ordiplot: did not use partial matching for "sites" and "species". - orditkplot: Improved user interface. Improved zooming into graphs. Imitates R plotting characters ('pch'). Label font family, size and font type can be vectors. - permuted.index2 and associated functions allow for restricted permutations of strata (i.e., restricted shuffling of blocks). - specaccum: removes missing (all zero) species which gave sd = NA with method = "exact". CHANGES IN VEGAN 1.13-2 - anova.cca (and permutest.cca) now calculate the residual df as (number of rows) - (rank of constraints and conditions) - 1 instead of using the rank of the residual ordination. With single response variable in 'rda' the degrees of freedom and F-values are now identical to those in 'lm' (linear model). However, the change does not influence significances (P-values), because these have been always found by permutation, and this change does not influence the order statistic used in permutations. - oecosimu: always estimates the original statistic with binary data even when the user supplies quantitative data. - orditkplot: no superfluous pointer lines when moving labels. - procrustes plot failed if two configurations were exactly identical. - rda (and capscale) use internal scaling constant so that the returned site and species scores with scalings 1, 2 or 3 together provide a biplot approximation of the original data. This scaling constant is calculated internally, but now its numerical value is returned as an attribute of 'scores.rda', and 'summary' displays its value. Vignette on "Design decisions and implementation" in vegan explains the calculation of the internal scaling constant. - summary of capscale identical to the summary of rda. - scores of rda and capscale with scaling = 0 really return the unmodified scores without the scaling constant. CHANGES IN VEGAN 1.13-1 GENERAL - Helene Wagner joined the vegan team. FIXES FOR HANDLING RANKS IN CONSTRAINED ORDINATION - cca, rda and capscale had only known one kind of rank: the rank of the ordination result (= number of axes). In fact there are two other types of ranks: the rank of constraints after removing conditions, and the rank of constraints + conditions, where conditions refer to terms "partialled out". This hit those that tried to use rda with single response variable instead of community matrix, and also some partial models were handled wrongly. The changes mainly concern cases where the rank of constraints is higher than the rank of the ordination (more constraints than ordination axes). The changes have visible effects in following support functions: - alias: no superfluous aliasing of terms, partial models aliased correctly. - anova: always uses rank of the constraints which also fixes anova(..., by = "terms") when single response variable was used. - calibrate.cca: identifies cases when the rank of constraints is higher than the rank of ordination and refuses to analyse these. - extractAIC: uses rank of constraints for degrees of freedom. - predict: predict(..., type = "lc", newdata = somedata) works in partial analysis. OTHER FIXES - adonis: faster and improved documentation. - intersetcor and inertcomp now check that input really is from constrained ordination instead of giving obscure error messages. - lines.spantree knows again graphical arguments such as 'col', 'lty'. - mite.xy: new data set on the spatial coordinates of sample sites of Oribatid mites. - mso: plot.mso replaced with msoplot, and plot function now displays the ordination scatter plot. Function msoplot collapses distances larger than half of the maximum distance into a single distance class. Printed result shows the variogram data. - ordicluster, ordiellipse, ordispider, orglspider, ordisurf, factorfit and vectorfit could fail with non-vegan ordination objects in R 2.7.0 whose weights.default function gave error if object had no weights (these worked in R 2.6.2 and earlier). - taxa2dist: has a "method" name for distances. CHANGES IN VEGAN 1.13-0 GENERAL - Based on development version 1.12-15 (revision 354 at http://vegan.r-forge.r-project.org) NEW FUNCTIONS - betadiver: beta diversity functions as reviewed by Patricia Koleff et al. (J. Anim. Ecol., 72, 367-382; 2003), with a plot function to produce triangular plots. - mso: Helene Wagner's multiscale ordination or spatial partitioning of cca and rda. This is taken from the Ecological Archives with minimal edition with the permission of Helene Wagner. - nestedtemp: matrix temperature method for oecosimu following Rodriguez-Girones & Santamaria (J. Biogeogr. 33, 924-935; 2006), but still without iterative optimization of row and column ordering. - TukeyHSD.betadisper: pairwise comparisons for betadisper. NEW FEATURES AND FIXES - adonis: returns both species and site scores. - betadisper: was not calculating distance to centroid correctly for observations where the imaginary distance to centroid was greater than the real distance. Now takes the absolute value of the combined distance before taking the square root. This is in-line with Marti Anderson's PERMDISP2. - BCI: example has spatial coordinates of plots. - biplot.rda: argument for arrow col. - capscale: accepts other distance functions than vegdist, and can use metaMDSdist for extended dissimilarites & "metaPCoA". - designdist: knows 2x2 contingency table notation with a, b, c, and d. - metaMDS: transforms data like with distances for species WA. - orditkplot: allows editing labels and zooming into plot. - permDisper: renamed to permutest.betadisper. - permutest: now a generic function, currently with methods 'cca' and 'permDisper'. - rarefy: accepts vectors of sample sizes. - rgl.isomap: dynamic rgl plots for isomap. - screeplot.cca etc: return invisibly xycoords. - specaccum: returns numbers of individuals with method = "rarefaction". - summary.cca: returns more statistics on "variance explained by axes". - zzz: vegan got startup message. CHANGES IN VEGAN VERSION 1.11-4 - A critical bug fix in adonis: there was a critical bug in adonis code, and inconsistent statistics were used in permutations so that P-values were grossly wrong in multi-variables models (single variable models were OK). In addition, df were wrong in deficit rank models, and unused factor levels were not dropped. All adonis users should upgrade and rerun their analyses. CHANGES IN VEGAN VERSION 1.11-3 GENERAL - Bug fixes from Rev. 305 on http://r-forge.r-project.org/. FIXES - anova.cca: number of permutations could exceed perm.max. - permuted.index2: updated to the version in devel branch. This means bugfixes in permCheck, numPerms and permuted.index2. It also adds allPerms to get all possible permutations when complete enumeration is feasible. In addition, there is now a function permuplot to graphically show the current permutation scheme. - plot.cca, plot.envfit and associates: automatic scaling of biplot arrows and fitted vectors was wrong when axes were reversed (like 'xlim = c(1,-1)') or the origin was shifted in plot.envfit (like 'at = c(1,1)'). Added internal function 'ordiArrowMul'. - plot.procrustes: failed if two configurations were identical. - varpart4: sum of squares was wrong if called directly instead of being called via varpart(). Reported by Guillaume Blanchet. CHANGES IN VEGAN VERSION 1.11-2 GENERAL - minor bug fixes and documentation updates from the devel trunk. - version 1.11-1 was made but never released to CRAN, and this is the first minor release of the 1.11 series. FIXES AND UPDATES - bstick.princomp: works now. - numPerms: was returning incorrect number of permutations when type = "strata" selected. - permuted.index2: was permuting samples within levels of strata as well as permuting the levels themselves if type = "strata" selected. - Documentation: diversity-vegan gains discussion on taxonomic diversity and using designdist for analysing beta diversity. Proof-reading and updates in diversity-vegan and FAQ-vegan. CHANGES IN VEGAN VERSION 1.11-0 GENERAL - Based on devel version 1.10-13 (rev. 205 at R-Forge). - Gavin Simpson joined the vegan team. - Suggests now 'tcltk' (for orditkplot). NEW FUNCTIONS - anova.cca gained a new support function to analyse marginal effects of individual terms (which are similar to Type III effects). Defined with argument 'by = "margin"'. - betadisper: new functions for Marti Anderson's analysis of homogeneity of multivariate dispersions. - biplot.rda: biplot function for PCA run with rda. Arrows are used instead of points. - CCorA: Canonical correlation analysis with a robust algorithm, with permutation test and plot function. - oecosimu: functions to analyse nestedness of communities (such as on islands or patches). Function oecosimu is a general wrapper, and commsimulator generates null-communities of various types (r00, r0, r1, r2, c0, swap, trial swap, backtracking, quasiswap). The nestedness can be analysed with functions like nestedchecker (number of checkerboard units), nestedn0 (measure N0), nesteddisc (discrepancy), but users can supply their own functions or even use some standard R functions such as chisq.test. - ordiresids: similar diagnostic plots as in plot.lm for constrained ordination: Residuals ~ Fitted, sqrt(abs(Residuals)) ~ Fitted, and qqmath(~ Residuals) using Lattice graphics. - orditkplot: interactive and editable plotting function. Function displays one set of points (species, sites) using both points and labels (text). The points are fixed, but labels can be dragged to better positions with mouse. The edited plots can be saved as EPS, exported to various graphical formats (EPS, PDF, PNG, JPEG, BMP, XFIG depending on the system) or dumped back to the R session for plotting and further processing. - ordixyplot: a set of functions for Lattice graphics of ordination results. Includes ordixyplot for 2D graphics, ordisplom for pairs plots, and ordicloud for 3D graphics. All can be subsetted and formatted in the usual Lattice way. - permuted.index2: New version of permuted.index() that now allows restricted permutations. Can produce permutations for time-series or line transects and for spatial grids. These can also be nested within 'strata'. permuted.series() and permuted.grid() are the relevant workhorse functions. Permutation options are set by new function permControl(). Currently used only in betadisper, but we plan to migrate vegan functions to permuted.index2() in the devel version, and will eventually replace the current permuted.index(). With support function permCheck for checking permutation schemes. NEW DATA SETS - sipoo: birds in the Sipoo archipelago (Finland, too close to Helsinki). NEW FEATURES AND FIXES - adonis: accepts any 'dist' object as input. - as.mlm.cca, as.mlm.rda use now correct names for variables in aliased models. The data were pivoted correctly in R, but the labels were not. - anova.cca assesses now P value as (hits+1)/(tries+1). - anova.cca: anova(..., by = "axis") failed when fitted model had terms like poly(x,2) or log(x). - bgdispersal uses now a more powerful statistic for the McNemar test (in terms of Type 1 error rate). - calibrate.cca does correct pivoting in aliased models. - capscale: negative scaling in plot works similarly as in rda. - decorana does not crash R when called with NULL row data, such as decorana(dune[FALSE,]). Method predict(..., type="sites") works correctly with downweighted analysis. - fitted.cca, fitted.rda gained argument type = "working" to get the fitted values and residuals used internally in calculation (in cca() these are weigthed and Chi-square standardized values). - isomap checks that input data are dissimilarities or can be changed into dissimilarities without warnings. - metaMDS gains argument wascores (defaults TRUE) to suppress calculation of species scores. - orditorp now handles "..." more cleanly. - scores.cca, scores.rda accept display = c("species", "sites"). - summary.prc honours argument 'axis'. - taxa2dist issues now a warning if called with 'check = FALSE' and some distances == 0, typically meaning that basal taxa (species) were not coded. - varpart failed if there were unused levels in factors. - wascores returns now NA for missing (all zero) species instead of failing. DOCUMENTS - new documents: FAQ, a simple introduction to ordination in vegan, a detailed explanation of diversity methods. New formatting. - Added these NEWS. OLDER VEGAN VERSIONS Version 1.8-8 (Oct 2, 2007) * Minor bugfix release for upcoming R-2.6.0. Based on the http://r-forge.r-project.org/projects/vegan/ revision 17 (= 1.8-7) with ported bug fix revisions (see below for revision numbers). * anova.cca: by = "term" failed in partial model. This was broken in 1.8-6 by introducing a test against deficit rank models (r47). * cascadeKM: Calinski index works now when the input data is a data.frame (r57:58). * flush.console: metaMDSiter and bioenv use now flush.console() so that Windows people also see the trace (r56). * ordispantree: made defunct, was deprecated in 1.8-1 (r38). * scores: handles now numeric data frames (r25). * summary.cca: failed if only one type of scores was requested (r50, 52). * taxondive: Fixed dim checking and matching species names in community data and taxonomic distance data (r21). * tweaks to pass --pedantic R CMD check, mainly in formatting source files, unused variables in source files and superfluous braces in help files (r39, r46, r62). * Updated FAQ-vegan.pdf to the current version at R-Forge. Version 1.8-7 (August 24, 2007) * Based on devel version 1.9-34. * DESCRIPTION: M. Henry H. Stevens (Miami University, Oxford, Ohio) joined the vegan team. * adonis: new function for nonparametric MANOVA that is appropriate for even extremely wide matrices sometimes associated with gene data and with diverse ecological communities. Author Hank Stevens. * taxondive: a new function for indices of taxonomic diversity and distinctness after Clarke & Warwick (Mar Ecol Prog Ser 216, 265--278, 2001 and other papers). With a helper function 'taxa2dist' to turn taxonomies into distances with an option for variable step length (Clarke & Warwick, Mar Ecol Prog Ser 184, 21--29, 1999), and a toy data set on the taxonomy of dune meadow species ('dune.taxon'). With a help, testing and pressure from Mike Cappo, James Cook Uni, Qld. * bgdispersal: previous version was partly garbled (by me), and P. Legendre provided a corrected one. * designdist: keeps 'dist' attributes even when the 'method' function drops them. Swapped the order to (terms, methods) in the default name. * metaMDS: issues a warning if data are disconnected. Passes extra arguments to other 'distfun' than 'vegdist' so that you can set 'terms' in 'designdist' etc (metaMDSdist). Can now do trymax=0 or skip random starts and give you enhanced 'isoMDS' result (metaMDSiter). * ordiplot: failed if number of species was equal to number of sites (and so did plot.metaMDS and plot.isomap using this). * plot.profile.fisherfit: corrected a harmless error detected by checkUsagePackage(). * predict.rda: removed some dead (but heavy) code from type = "response". Version 1.8-6 (May 9, 2007) * Based on devel version 1.9-23. * as.mlm.cca, as.mlm.rda: new functions to refit constrained ordination result (cca, rda, capscale) as a multiple response linear model. You can find influence statistics (Cook's distance, hat values) from the refitted model. You also can find t-values etc., but these have the same bias as in other software and should not be used. * bgdispersal: a new function for dispersal direction in biogeography (Legendre & Legendre 1998, section 13.3.4). Author Pierre Legendre. * designdist: a new function for defining your own dissimilarity index or for estimating beta diversity (Koleff et al., J. Ecol. 72, 367-382; 2003). * isomap: a new function for isometric feature mapping of Tenenbaum et al. (Science 290, 2319-2323; 2000). * screeplot, bstick: new functions to draw screeplots of vegan ordination results with brokenstick lines, and alternative screeplot functions for prcomp and princomp with brokenstick. Author Gavin L. Simpson. * swan: a new function for the degree of absence (Swan 1970, Ecology 51, 89-102). * anova.cca: now refuses to do 'by = "terms"' if the rank of constraints is higher than the rank of the community matrix. * bioenv: gains argument 'partial' to perform partial bioenv. * cca, rda, capscale: can now handle longer expression within 'Condition()' (ordiParseFormula). Used to drop observations with missing values in unused variables (ordiGetData). * goodness.cca, goodness.rda. 'statistic = "distance"' was wrongly implemented. Now refuses to find "distance" in constrained analysis: distances of constrained and unconstrained components do not add up to to distances in unconstrained ordination. * metaMDS (metaMDSdist): gains argument 'distfun' to use other dissimilarity functions than vegdist. * renyiaccum: used a variable that was not defined as an argument. Added support functions persp.renyiaccum and rgl.renyiaccum (Roeland Kindt). * stressplot: R2's renamed to 'non-metric fit' and 'linear fit'. * Doc: Corrected reference to Hurlbert in diversity (thanks to Ralph Grundel). Updated references (varpart, renyiaccum). Removed discussion on t-values in cca from vignettes, because as.mlm.cca now implements those. General cleanup and better utf-8 encoding. Version 1.8-5 (January 11, 2007) * Based on devel version 1.9-12. * no.shared (manifest in metaMDS): prints thousands of lines of debugging info that I forgot to deactive in release. Not fatal, but extremely annoying. * capscale: inertia name as "unknown" if the dissimilarity object does not have a "method" name. Suggested by Roeland Kindt. * DESCRIPTION: license is now explicitly GPL v2 (but not later). Version 1.8-4 (January 8, 2007) * Based on devel version 1.9-10. * cascadeKM: a new function to wrap kmeans and optimality criteria for classification (Sebastien Durand, Pierre Legendre & Marie Helene Ouellette). * renyiaccum: a new function for Renyi (and Hill) accumulation curves (Roeland Kindt). * bioenv: bioenv.formula uses now "na.action = NULL" in 'model.frame', and bioenv.default passes arguments to 'cor' which means that you can set NA treatment in 'cor' using argument "use". * cca, rda: added "..." to formula versions to satisfy tests in R-DEVEL. * cca, rda, capscale: used to fail if called within other functions. Now data always evaluated in the environment of formula using new internal function ordiGetData. * anova.cca: checks that the model has both residual and constrained components or stops with understandable error message (used to stop with incomprehensible error message). * print.summary.cca, print.summary.decorana: have now arguments 'head' and 'tail' to print only a part of species and site scores. Suggested by Gavin Simpson. * metaMDS: checks now that the input data ('comm') is not a 'dist' object (like many users have had). * ordisurf: Does not depend on package 'akima' any longer, but directly finds fitted values in a regular grid using 'predict.gam'. Added pnpoly.c to find which of these values are within the convex hull defined by data. Results also look neater with sparse data now. Added argument 'labcex' passed to 'contour' for changing size of contour labels. Setting 'labcex = 0' will suppress drawing labels (by setting drawlabels = FALSE in 'contour()'). * orditorp: handles now vector arguments of 'col', 'pcol', 'cex', and 'pch'. * rad.zipfbrot: less likely to overflow to NA coefficients during iteration. * renyi: added a plot function, and documented together with renyiaccum() instead of diversity(). * scores.default: Knows now about ade4 objects. Primarily looks for scores scaled by eigenvalues both for sites and species. * specaccum: Added new conditioned method of Colwell et al. with estimated sd based on extrapolated richness (Roeland Kindt). * vegdist.c: More informative warnings with 'method' name (useful with rankindex). * DESCRIPTION: listed 'require()d' packages in the "Suggests:" field to satisfy more anal tests in R-DEVEL. Mention diversity analysis in the "Description:". Version 1.8-3 (Sept 29, 2006) * Based on devel version 1.9-2. * varespec.rda, varechem.rda: saved in binary form, because old ascii form gave warning in R-2.4.0-rc. * vegdist: added Chao index (of Jaccard type) that should take into account missing pairs of species. Checks that Binomial index is non-negative. Identical sites could have dissimilarity of magnitude 1e-17 after some standardizations, but now values <1e-15 are zapped to zero. * estimateR: uses now standard unbiased formulation of Chao. * renyi: should work now (really!). * metaMDS: with zero = "add", zeros now replaced with min(dis[dis>0])/2 (used to be 1E-4) (metaMDSdist). Sets number of tries also when this was not set previously (metaMDSiter) Version 1.8-2 (June 13, 2006) * version 1.8-1 failed test in Windows because of a wrong encoding name. Explicit \enc added for non-ascii words. Kurt Hornik and Uwe Ligges diagnosed this and led me to see the light. * similar to devel version 1.7-97. Version 1.8-1 (June 12, 2006) * Based on devel version 1.7-96. * Pierre Legendre joined the vegan team. * beals: a new function for Beals smoothing. * bioenv: added 'trace' argument. * cca/rda/capscale: accept several 'Condition' elements in the formula. * capscale: capscale(y ~ ., data=...) or expansion of "." on the rhs works now. Documentation recognizes now db-RDA as the real mother method. * scores.cca, summary.cca etc: rewrite so that is cleaner and easier to maintain. User visible changes are scaling by species standard deviation (negative scaling) for 'rda', scaling=0 (no scaling) for all methods and slightly changed output and improved user control in summary. These scalings actually were documented in 1.6-10, although I dropped them just before the release. predict.cca, predict.rda: work now with 'newdata' even when not called with formula. * anova.cca: new argument 'by' for tests of single terms or axes: with by = "terms" performs individual test for constraints, and with by = "axis" a separate sequential test for each axis. New argument 'first' to analyse only the first axis instead of all constrained variation. * intersetcor: new function for the interset correlation or the (weighted) correlation between individual constraints (contrasts) and invidual axes in cca/rda/capscale. (Not recommended.) * decostand: does not automatically convert matrix to a data.frame. NA handling more consistent now (thanks to Tyler Smith for diagnosis). Adds attribute 'decostand' giving the "method". * linestack: now really uses median as the midpoint with the odd number of cases, and does not give superfluous warnings with three or less items. New argument 'labels' to replace the default text in plot. The old argument 'label' renamed to 'side'. However, the function still works with the old syntax, but gives a warning if the old argument 'label' is used for 'side'. Returns invisibly the shifted positions of labels. * metaMDS: 'postMDS' sets now attributes similarly when called independently or within 'metaMDS'. 'metaMDS' forwards arguments to 'postMDS' except 'halfchange'. Change of phrasing in 'print'. Added handling of zero dissimilarities into 'metaMDSdist': either "fail" or "add" 1E-4 into zeros. * mrpp: new function for the multiresponse permutation procedure (MRPP). Code by Henry Stevens (Miami Univ, Oxford, Ohio). * ordiarrows: draws arrowhead only in the last segment. New argument 'startmark' for marking the starting point of the arrow. * ordisurf: new arguments 'main' for the title and 'nlevels' and 'levels' for the number of contour or their values. * orditorp: arguments for text colour and text character expansion changed to standard 'col' and 'cex' from previous 'tcol' and 'tcex'. * procrustes: 'summary' prints now rotation matrix, translation and scale, and honours 'digits'. * prc: new functions for Principal Response Curves (PRC) of van den Brink and ter Braak (Envir. Toxicol. Chem, 18, 138-148; 1999). This is a special rda() model with dedicated summary and plot functions. New data set 'pyrifos' to demonstrate 'prc'. * radfit: added brokenstick as a null model (rad.null), removed rad.veil (as it was a bad idea originally), corrected minor bugs in rad.preempt (which did not fail gracefully). Line colours start from the point colour in plot.radfit.frame. 'print' uses "g" format for coefficients and adds 'digits' argument. Added 'summary.radfit.frame' that simply prints each model. * rankindex: uses now cluster:::daisy when 'grad' includes factors. * spantree: now a method function with 'plot', 'lines' and 'cophenetic' methods. 'lines' replaces 'ordispantree'. The plot has a weird, new way of finding configuration for a spanning tree from cophenetic distances (unpublished). Documented separately. * specaccum: 'plot' honours now 'ylim'. * specpool: Chao richness was wrongly defined, but now uses the biased formula (error introduced in 1.6-5, correct earlier). Failed with zero species or if there were no species that occurred exactly one in the 'pool' (thanks to Emmanuel Castella, Geneve CH, for the bug report). * varpart: new functions for unbiased partitioning of variation by two to four explanatory tables in RDA or linear regression. The author of these functions is Pierre Legendre & co (Univ Montreal). New data sets 'mite', 'mite.env' and 'mite.pcnm' to demonstrate the functions. * vegandocs: new function to display *all* pdf documentation and ChangeLog. This really should be in base R -- this is a kluge to fill the hole. * vegemite: added argument to 'select' a subset of sites. Drops missing species from the table. Prints number of species and number of sites and the used cover scale at the end of the table. Passes arguments (i.e., 'maxabund') to coverscale(). * coverscale: added argument 'maxabund' to 'scale = "log"'. Returns the name of the cover scale as an attribute for vegemite() to print. * vegdist: now first checks input and then transforms (if needed). Thanks to Tyler Smith, * Internal changes: permuted.index acceptes NULL strata as an alternative to missing strata. ordispantreee deprecated. spider.cca removed. * Documentation: general cleanup in help files. New chapter on t-values in cca/rda/capscale in vegan-FAQ. New pdf document on partioning with varpart by Pierre Legendre & co. Non-latin characters now use UTF-8 in documentation. R manual says that you should not use non-latin characters in help files, but that was written by Englishmen. However, this seems to cause distress to some users of a US West Coast OS (Windows), but OK with mainstream OS's (Linux, MacOS). . Version 1.6-10 (September 26, 2005) * Based on devel version 1.7-77. Checked with R 2.1.1 (stable) and R 2.2.0 (alpha). * rda: negative scalings explicitly ignored and treated as corresponding positive values. Function summary.rda used to fail with NA centroids. * permutest.cca & anova.cca: permutation of 'cca' result now re-weights environmental data properly with permuted community weights (this breaks compliance with popular proprietary software). New default method 'direct' that always permutes the data instead of residuals. Now clearly faster basic routines, but re-weighting in 'cca' is costly, and permutations may even be slower than earlier in small data sets. The permutest.cca returns more data: constrained and residual total inertia, degrees of freedom in the input model, and .Random.seed used in iterations. Thanks to Pierre Legendre for pushing me to make this faster. * ordination plot functions: obey now xlim and ylim. * ordination text and points functions: a new argument 'select' that can be used to select a subset of items, and a new argument 'labels' for text used instead of the default row names. * points.cca, text.cca: biplot arrows will be scaled automatically to fit the current graph if 'arrow.mul' is not given. The new behaviour is similar to the default in plot.cca and in plot.envfit. * orditorp: a new "ordination text or points" function to add text or points to an existing plot: adds text if this can be done without overwriting other text labels, and points otherwise. * linestack: a new function to draw labelled one-dimensional diagrams without overwriting the labels (a primitive one, and could easily be improved: submissions are welcome). * ordirgl, orgltext: adapted to changes in rgl package version 0.65. Workaround for older rgl packages, too. * decostand: Added Hellinger transformation. Empty columns and rows become now 0 instead of NaN in most methods, except when the input data contains negative values. Warns on input with negative entries or on output containing NaN. Has now argument 'range.global' for method 'range' based on the code supplied by Tyler Smith. * plot.radfit: puts now legend "topright" in R >= 2.1.0 (which has this keyword). * read.cep: issues a warning if vegan was compiled with gfortran, which has a bug that may corrupt the result. The bug concerns multiline input with T format modifier, and it was corrected in http://gcc.gnu.org/ml/gcc-patches/2005-09/msg00126.html, but still bugs most released versions of gcc. * vegdist: new indices 'raup' and 'binomial'. Method 'raup' implements probabilistic Raup-Crick index and is based on the code submitted by Michael Bedward. Method 'binomial' implements Millar's index, officially published as "Binomial deviance as a dissimilarity measure" (the C code has been in vegan for about two years, but now I tell about it and add the public interface). Method 'mountford' will give NA for any comparison involving an empty site. Warns about empty sites or negative entries with all methods except 'euclidean' and 'manhattan'. * Documentation: added documentation of the cca/rda/capscale result object. Dontruns used more neatly. Version 1.6-9 (April 22, 2005) * Maintenance release: 1.6-8 failed in R 2.1.0 patched and R 2.2.0 devel (works in R 2.1.0 release) due to problems in as.preston. Based on devel version 1.7-62. * as.fisher, as.preston: used table() in a way that failed in R 2.1.0 patched * calibrate.cca: new function to predict or calibrate or bioindicate the values of environmental constraints from community composition (ordination). * decostand: new argument na.rm (defaults FALSE) for ignoring missing values in row, column or matrix standardizations. * vegdist: new argument na.rm (defaults FALSE) for pairwise deletion of missing vaues in dissimilarity calculation. Version 1.6-8 (April 18, 2005) * Based on devel version 1.7-59. Adapted to R 2.1.0 beta. * DESCRIPTION: gives due credit to Roeland Kindt and Bob O'Hara as co-authors. * documentation: updates in capscale, vegdist. vegan-FAQ adapted to changes in Sweave in R 2.1.0. * several methods assumed that input is count data, but silently accepted floating point numbers and gave wrong results. Now they stop with error with non-integer input: fisherfit, prestonfit, prestondistr, rarefy, fisher.alpha, estimateR. * bioenv: uses now 'cor' instead of 'cor.test', and does not give so many superfluous warnings and is marginally faster. Changed printed output, so that gives 'call' instead of names of community and environmental data, since bioenv.formula could not handle these cleanly. * capscale: has now argument 'add' to use an additive constant to all dissimilarities so that all computed eigenvalues are non-negative. This is an argument of underlying 'cmdscale' function, which implements the "Correction method 2" of Legendre & Legendre (1998), p. 434. * decorana: checks now that there are no negative data entries. * dune: cleaner site names. * envfit: 'plot' now automatically scales arrows similarly as 'plot.cca' if 'arrow.mul' is not specified and arrows are added to an old plot. Has now a 'scores' function. * goodness.cca, predict.cca: documented separately. * goodness.metaMDS: new function to assess pointwise goodness of fit in metaMDS or isoMDS. * humpfit: user can now give starting values of parameters. 'summary.humpfit' returns 'cov.unscaled' so that users can apply 'ellipse' function of 'ellipse' package to display approximate confidence ellipses for pairs of parameters (with Normal assumptions). * make.cepnames: No longer duplicates one component names, but 'abbreviate's them to eight characters. * metaMDS: Split to independent metaunits 'metaMDSdist' and 'metaMDSiter'. New function 'metaMDSredist' tries to reconstruct dissimilarity matrices and transformations. 'postMDS' skips halfchange scaling with too few points (with a warning) instead of stopping with an error. Prints now info about 'postMDS' operations. New 'scores' function. Improved 'plot' function with 'display' argument and labelling of axes. Argument 'shrink' to undo expansion of species scores in plot or scores functions. Workaround for a future bug in 'isoMDS' which drops names of points in R 2.1.0. Updates number of 'tries' with 'previous.best'. * ordiplot: has now 'display' argument, so that only species or sites can be plotted. * ordiplot3d: a new function for 3D static ordination diagrams. * ordirgl: new function for dynamic 3D graphics of ordination results. With support functions orglpoints, orgltext, orglsegments and orglspider to add graphical items to dynamic plots. Needs 'rgl' package. * predict.cca, predict.rda: type = "wa" with 'newdata' works now even when some species were removed from the original fit because they were all-zero (missing). Default now to 'model = "CA"' in unconstrained analysis without "CCA" component. * predict.decorana: a new function for 'decorana' results. Similar to 'predict.cca' (but refuses to give impossible results). * procrustes: obeys now 'choices' even when input is a matrix. Plots now projections of rotated axes. New argument 'scores' so that can handle other than "site" scores. * protest: passes now arguments to 'scores' so that now can handle other than "site" scores on more than two dimensions. * rda: handles now species with constant values (typically missing or all zeros). * spenvcor: new function to find the "species -- environment correlation" in contrained ordination (cca, rda, capscale). * stressplot: a new function to plot Shepard diagram for 'metaMDS' or 'isoMDS'. * summary.cca/summary.rda: print now call. * vegemite: can now 'use' 'dendrogram' objects. Version 1.6-7 (Jan 24, 2005) * Based on devel version 1.7-42. * plot.envfit did not plot vectors. Thanks to Roeland Kindt and Ron E. VanNimwegen for bug reports and fixes. * ordisurf obeys now keyword 'display', and '...' will transfer arguments to 'scores'. * ordisegments: obeys now keyword 'display'. * ordigrid: works now. * ordihull, ordiarrows, ordisegments, ordispider, ordiellipse: have a new keyword 'show.groups' to show only specified groups. With the help of this argument it is possible to use different colours and linetypes for each group. Further, it makes possible to plot results of logical comparisons (such as A1 > 4) by setting show.groups = T. Two user requests. * new diagnostic and helper functions for 'cca', 'rda' and 'capscale': 'goodness' to estimate the proportion of inertia accounted for or residuals for sites or species; 'inertcomp' to decompose species and site inertia for conditioned, contrained and residual componets; 'vif.cca' to estimate the variance inflation factors for constraints and conditions; 'fitted' and 'residuals' to approximate data by ordination scores; 'predict' to approximate data or find site or species scores, possibly with 'newdata'; 'coef' to find the regression coefficients. 'alias.cca' is now similar to 'alias.lm' (simplified version of the latter). Version 1.6-6 (Jan 7, 2005) * Based on version 1.7-34, but without still experimental functions predict, fitted, vif & goodness for cca and rda objects. * mantel: implemented partial mantel test (function 'mantel.partial'). Both 'mantel' and 'mantel.partial' should be marginally faster and not give so many superfluous warnings. * plot.envfit: should be more reliable now. A new keyword 'at' to position the bunch of arrows in other places than the origin. Thanks to Roeland Kindt for fixes. * rankindex: Default correlation now "spearman" since the older default ("kendall") was far too slow in large data sets. Should not give so many superfluous warnings. * summary.rda: Site scores were wrong with 'scaling = 3'. Influences 'plot' and 'scores' commands for 'rda' and 'capscale' results with 'scaling = 3'. * vegdist: Issues a warning if 'method = "morisita"' is used with non-integer data. Version 1.6-5 (Oct 12, 2004) * Based on version 1.7-27. Checked with R-1.9.1 (Linux, MacOS X) and R-2.0.0 (Linux, patched version in Windows XP). Passed other tests, but some examples in 'humpfit' failed in Windows XP, and are not run on that platfrom. General cleanup in documentation. Does not 'require(mva)' any longer. * anosim: corrected the equation in docs (function was correct). Thanks to Yong Cao for notifying this. * bioenv.formula: finds now variables from attach'ed data.frames and 'data' need not be specified. * capscale & deviance.rda: capscale was modified so that its result could be handled with step (added a terms component). Function deviance.capscale was deleted so that deviance.rda will be used. A literature reference to AIC in CCA/RDA was added to the documentation. * cca/rda/capscale: Small eigenvalues are made to zero and rank reduced accordingly. Most often influences 'capscale'. * cca/rda/capscale: Now alias constraints that are collinear with other constraints or conditions in partial analysis. New function 'alias.cca' to print aliased contrasts. NB this does not influence the proper ordination results, but only to the selection of biplot scores and centroids displayed. 'summary' no longer gives a redundant warning. * decorana: removes empty species with a warning instead of stopping with error. Still error with empty sites. The behaviour is similar to 'cca'. * envfit (vectorfit, factorfit): Has now a formula interface. Bottlenecks in permutation changed now into C functions. Much faster, in particular 'factorfit' which was 25 times faster in my tests. plot.envfit could drop names (dimensions). Now honours 'scaling' argument in cca/rda/capscale (used to 'scaling = 2' always). * envfit, ordisurf: have now weights parameter 'w'. Weights are used for the results of 'cca' and 'decorana' as default, or they can be supplied by the user. In this way, envfit gives equal results to biplot scores and centroids in 'cca', and ordisurf is consistent with envfit. Both can now access 'lc' scores of 'cca' etc. * estimateR: Abundance-based estimators of extrapolated richness, written by Bob O'Hara . * humpfit: Asesses now the dispersion parameter in non-Poisson models (summary.humpfit). Added a profile method that inherits from profile.glm, so that you can use plot.profile.glm, pairs.profile.glm and confint.profile.glm of MASS for displaying profile and finding the confidence intervals from the profile likelihood. * fisherfit: prints now standard error of the estimate. Added 'profile' and 'confint' methods. * metaMDS: A new function to collect all Peter Minchin's recommendations to run nonmetric multidimensional scaling: (1) adequate data transformation with Wisconsin double and sqrt if needed, (2) use of adequate dissimilarity measure, (3) possible stepacross if needed (this Minchin didn't have), (4) run NMDS with several random starts and stop after finding two similar solutions, (5) scale results with postMDS, and (6) add species scores with wascores. Function has print and plot methods. Function scores.default changed to understand metaMDS. * specpool: Chao is now based on unbiased equation. Standard errors now estimated for Chao, 1st-order jackknife and bootstrap richness, but SE of 2nd-order jackknife still missing. * vegdist: an option for binary indices, since some users believed these are not in vegan, although you can get them with 'decostand'. Version 1.6-4 (June 10, 2004) * Based on 1.7-12. * anova.cca: Changed defaults to beta=0.01 and perm.max=10000. * bioenv: A new function implementing the BIO-ENV procedure of Clarke & Ainsworth (Mar. Ecol. Prog. Ser. 92, 205-219; 1993). The function finds the subset of scaled environmental variables with maximum (rank) correlation with community data. * cca: added ter Braak scaling, a.k.a. Hill scaling, with negative values of `scaling'. This scaling should approximate Hill's non-linear rescaling of `decorana', but it the scaling is linear and does not rescale. The scaling is very simple: the results from corresponding positive scaling are multipiled with sqrt(1/(1-lambda)). * plot.cca: Better heuristics used for the length of biplot arrows, and they are now longer in general. Axes are drawn for biplot arrows also with `text.cca' and `points.cca' functions. * deviance.cca and extractAIC.cca: auxilliary functions which allow automatic model building with `step' or `stepAIC' (MASS) functions in cca and rda. Unfortunately, cca and rda do not have deviance or AIC, and these functions are certainly wrong and dangerous. However, with continuous candidate variables they select the variables in the same order as Canoco. * humpfit: A new family of functions to fit the no-interaction model (Oksanen, J., J. Ecol. 84, 293-295; 1996) to species richness -- biomass data. * vegdist: corrected a bug in Gower index -- range standardization was made to sites, but it should be done to species. Thanks to Brett Melbourne for the bug report. Version 1.6-3 (Mar 22, 2004) * Still based on 1.7-3, but ported some changes from version 1.7-7 (envfit, procrustes). This version was produced to prepare for incompatible changes in coming R-1.9.0. * vegan-FAQ: Does not show the vegan and R versions the documentations were built, because of stupid incompatible change in R-1.9.0 of the future. package.description() function was unnecessarily replaced with packageDescription, and to accomodate recent, present and future versions of R seemed to be too much hassle. * plot.envfit: Added option 'p.max' to display only environmental variables assessed to have P values less or equal to the given limit. * plot.procrustes: added option kind = 0 to draw only axes and functions points.procrustes and lines.procrustes to add points and line segments or arrows to the plot. Version 1.6-2: Based on devel version 1.7-3. * renyi: should work now (again?). * prestondistr: The truncation level was badly chosen. Now default level is set to -1, or log2(-1) = 0.5 which might be the left limit of the first octave. This is now a parameter, leaving the choice as the responsibility of the user. * cca.default: Removes missing species and issues a warning instead of stopping with error. Version 1.6-1: Based on devel version 1.7-1. * Minor maintanenance release to satisfy tests in R-devel. There was a buglet in ordisegments that caused a warning. I had introduced a trick to handle printCoefmat before it was invented to replace print.coefmat, but this failed in R-devel. * Vignettes included in this release. These were only in devel versions of my web pages previously. Version 1.6-0 (Fisher) * Based on devel version 1.5-58. Passes checks with R-1.8.0 and R-1.7.0 and compiles into a Windows binary. Many functions were contributed by Roeland Kindt (Nairobi, Kenya). * BCI: A new data set on tree counts on 1-ha plots in the Barro Colorado Island. Thanks to Roeland Kindt and Richard S. Condit. * capscale: A new function for [partial] constrained analysis of principal coordinates (CAP). * cca, rda: Can now handle cases where the number of constraints is higher than the number of species. * cca, decorana: Find now if data have empty rows or columns. * decostand: Added Chi-square transformation. * distconnected: A new function to find if vegetation data are disconnected below given threshold dissimilarity level. Utility function no.shared gives a logical dissimilarity matrix with values TRUE for cases with no shared species. * fisher.alpha: Should work with large sample sizes now (bug report thanks to Ariel Bergamini). * fisherfit, prestonfit, prestondistr: New functions to fit Fisher's logarithmic series and Preston's log-normal model. * make.cepnames: New utility function to change Latin names into 4+4 character CEP names. * ordicluster, ordispantree: New functions in the ordihull family to overlay a cluster dendrogram or a spanning tree onto an ordination. Weights are now really used with cca and decorana plots. * radfit: New function to fit Ranked Abundance Dominance or Dominance/ Diversity models with maximum likelihood: Pre-emption, log-normal, veiled log-normal, Zipf and Zipf--Mandelbrot models. * rankindex: Can now use stepacross and new dissimilarity indices of vegdist. * rarefy: Can now optionally find SE of rarefied richness. * renyi: A new function to find Rnyi diversities or Hill numbers with any scale (thanks to Roeland Kindt). * scores.ordiplot: should be more robust now. * spantree: A new function to find a minimum spanning tree using only dissimilarities below a threshold or disregarding NA dissimilarities. * specaccum: A new function for species accumulation curves. Thanks to Roeland Kindt. * specnumber: A very simple utility function to find species richness. * specpool: New function for extrapolated species richness in a species pool, or for estimating the number of unseen species. * stepacross: New function for estimation of dissimilarities between sites that have no shared species. Implements both flexible shortest paths and their approximation known as extended dissimilarities. * vegdist: New dissimilarity indices Jaccard (finally), Morisita, Horn--Morisita and Mountford. Version 1.4-4 * Based on devel version 1.5-35. * decorana: Finds now eigenvalues from the final solution as ratio of biased weighted variances of site and species scores. The values returned by the legacy Fortran function are called ``decorana values''. * downweight: passes the downweighting fraction as an attribute, and decorana catches and prints the fraction. * wascores: Uses now biased variances for expading WAs and returns the shrinkage factors as an attribute "shrinkage". Shrinkage factors are equal to eigenvalues in CCA when only this one variable is used as constraint. Function `eigengrad' returns only these eigenvalues. * rda summary/plot bugfix: Failed with non-default scaling (1 or 3) when there were no factor constraints. Corrected a statement giving a harmless warning in plot.cca. * ordiplot knows now option type = "text". New simpleminded functions points.ordiplot and text.ordiplot for adding items in an ordiplot graph. * ordiarrows, ordisegments could drop dimensions (when will I learn!) and fail if only one arrow or one segment should be drawn. One argument was missing in a `gl' command in `ordigrid'. Version 1.4-3 (Luova) * Based on devel version 1.5-30 * `cca' and `rda' use canonical expansion of the formula and return the `terms' component. Functions like `terms', `formula' and `update' magically started to work with cca and rda (and eight lines of code would allow `step' and `stepAIC' to work magically in model building... but it's so much magic that I don't trust it). Some of the allowed things are now `mod <- cca(dune ~ . - Use, dune.env)' (all variables but `Use' in dune.env), and `update(mod, . ~ . - Manure)' (remove `Manure' from the previous). * `cca' and `rda' find centroids of factor levels with factor constraints (only with formula interface). These can be accessed with `display="cn"' in `scores', `summary' and `plot'. If `display="cn"' is requested in `plot', biplot arrows are still drawn unless there is a class centroid with the same name: continuous variables are still shown as arrows and ordered factors both as arrows as centroids. * Enhanced user control of many ordination plots. Some accept more graphical parameters (`ordiplot', `plot.procrustes'). New functions `points.cca' and `text.cca' to add these items into CCA/RDA plots (documented separately). * `identify.ordiplot' knows more alternatives, among them `plot.procrustes'. This was helped with new, very generic `scores.ordiplot'. * New functions to add graphical items in ordination diagrams: `ordihull' draws convex hulls for groups, `ordiarrows' draws arrows, `ordisegments' segments, `ordigrid' combines points in to a grid, `ordispider' combines points to their (weighted) centroids or WA scores to the corresponding LC score in cca/rda, `ordiellipse' draws dispersion or confidence ellipses for points. All these take a groups argument for selecting subsets of points. `ordispider' obsoletes `spider.cca' (introduced in the previous release). * Implemented simple ``deshrinking'' of weighted averages in `wascores'. * A new diversity function `fisher.alpha' that estimates the diversity as the alpha parameter of Fisher's log-series. Thanks to Bob O'Hara for the main code. * `summary.decorana' now in canonical form so that printing is done by `print.summary.decorana' and user can intercept and catch the result. Several users had been surprised of the earlier non-canonical behaviour. `summary' knows again the prior weights used in downweighting of rare species (these evaporated in 1.4-0). * rda summary/scores/plot bugfix: Scaling of site scores was wrong with scaling alternatives 1 and 3. * envfit (vectorfit, factorfit) bug fixes: Can now handle single vectors (labelling, permutation). Recognize now `choices' so that the user can select ordination axes. * Checked with released R-1.7.0. Version 1.4-2 Based on devel version 1.5-18 * New functions and data sets: * dune: A new data set -- the classic Dune Meadow data with the environmental data. * ordiplot, identify.ordiplot: New functions to plot "any" ordination result and identify plotted points. Intended to provide similar functionality as `plot', `plotid' and `specid' functions in `labdsv' without name clashes. Functions `plot.cca' and `plot.decorana' return (invisibly) `ordiplot' objects as well, and these can be used by `identify' to label species and sites. * rda: Redundancy Analysis, or optionally, yet another PCA. This is a spin-off from cca(), and it is documented together with cca. The only new functions are rda, rda.default, rda.formula and summary.rda. Otherwise rda uses cca methods which were changed to be aware of rda. * read.cep: A function to read Cornell Ecology Package or CEP formatted files into R. This has been in devel versions since 1.1-1, but it never made to the releases, since this worked only in Linux, but crashed R in Windows. It seemed to work in R-1.6.1 with gcc 3.2 (MinGW) in Windows, so it is included. Treat with caution. * spider.cca: A tiny function that joins each WA score to the corresponding LC score in cca/rda plots. Minor changes: * Checked with R-1.7.0 (unstable devel version, snapshot 2003-02-05) and corrected as needed. * Added symmetric scaling (=3) to alternitves in cca and rda. * Minor improvements and bug fixes in vegemite. Version 1.4-1 (Logan) Based on devel version 1.5-10. New features: * Permutation tests added to envfit (vectorfit, factorfit) and procrustes (called protest). * All permutation tests take now argument strata: If given, permutations made only within strats. Concerns anosim, anova.cca (permutest.cca), mantel, envfit (factorfit, envfit) and protest (in procrustes). * fitted.procrustes(): A new function. * rarefy(): A new function for rarefaction species richness. Other changes: * cca.default(): Handles now NULL matrices X and Z: skips them. * cca.formula(): Knows now cca(X ~ 1) and permforms unconstrained CA, and cca(X ~ ., data) and perfors CCA using all variables in `data' as constraints. Has now na.action=na.fail so that cca crashes more informatively (used to crash mysteriously). A more graceful na.action may come. Assignment "=" corrected to the true blue "<-" (used to crash in old R). * envfit (factorfit, vectorfit): Use `scores' now. Various bugfixes and should work now with single factors or vectors. * plot.envfit(): Options `choices' works now like documented. * ordisurf(): A new name to surf() to avoid name clash with labdsv. * procrustes(): added option `symmetric' for symmetric rotation and goodness of fit statistic. * plot.procrustes(): Keyword `axes' changed to `choices' to be consistent with other functions. * vegemite(): A new name to vegetab. The name was chosen because the output is so compact (and to avoid confusion with function vegtab in labdsv). Function checks now that the cover codes fit in one column and splits the output if it does not fit into used page width. Version 1.4-0 Based on devel version 1.3-19. New functions: * `anosim': Analysis of Similarities. * `cca': [Partial] [Constrained] Correspondence Analysis. This is an alternative to Dray's `CAIV' (package `CoCoAn'). Differences include formula interface, WA scores in addition to LC scores, partial CCA, residual CA after constraints, algorithm based on svd (and much faster), more standard support functions (`plot', `summary', `print'). * `anova.cca' and `permutest.cca': Permutation tests for `cca'. * `envfit': A new wrapper function which calls either `vectorfit' or new `factorfit' function, and `plot.envfit' for easier display of results in graphs. * `mantel': Mantel test for two dissimilarity matrices. * `scores': A generic function to extract scores from `cca', `decorana' or even from some common ordination methods in R. * `surf': Surface fitting for ordination, intended as an alternative to `vectorfit'. * `vegetab': Prints a compact, ordered vegetation table, together with `coverscale' to transform data into compact format. Other changes: * `downweight': directly callable instead of being embedded in `decorana'. Now it can be used with other downweighting thresholds or with other CA's than `decorana', e.g., `cca', `ca', `CAIV'. * `plot.decorana': new keyword `type', removed keyword `tol'. * `vectorfit': centres now ordination before fitting, so it will work with other ordinations than MDS. * Mainly user invisible changes in `plot.decorana', `plot.procrustes', `postMDS', `print.summary.procrustes', `vectorfit', `procrustes'. One of the main changes was that `eqscplot' of `MASS' library was replaced with `plot(..., asp=1)' of standard R (but this is not S-plus compliant). * Edited help files. More examples run from help files. * Tried to improve LabDSV compliance, see http://labdsv.nr.usu.edu/. * Checked with R-1.5.0. However, `log' in diversity not changed into `logb' (yet), although base is specified, because `logb' won't work in R pre-1.5.0. Version 1.2-1 * Checked with R-1.4-0 (frozen snapshot) tools: Documentation and method consistency corrected (summary.decorana.R, decorana.Rd), and file permissions changed. * decorana.Rd: removed dependence on package `multiv' in the example, since it is not a `recommended package' -- replaced with `decorana(..., ira=1)'. Version 1.2-0 Based on experimental version 1.1-6. Doesn't include read.cep() of the experimental version, because the function is certainly unportable to all platforms (works on Red Hat Linux 7.1, but perhaps nowhere else). Major new feature: * decorana(): R port of Mark Hill's DECORANA for Detrended correspondence analysis, with methods print(), summary() and plot(). Minor changes: * postMDS(): finds isoMDS scores and doesn't destroy list structure. * vectorfit: finds isoMDS scores and decorana row scores (which are uncentred, though). * Proof reading in documentation. Version 1.0-3 *`plot.procrustes': selection of axes plotted, improved scaling in graphics, control of axis labels. * `postMDS': added plot to demonstrate half-change scaling. * `procrustes': target can now have lower dimensionality than rotated matrix. Version 1.0-2 * Fixed bugs in documentation. * `plot.procrustes': Fixed passing `...' to graphics functions. Version 1.0-1 * The first public version. vegan/src/0000755000175100001440000000000012600727026012161 5ustar hornikusersvegan/src/nestedness.c0000644000175100001440000002363212600727026014506 0ustar hornikusers#include #include /* Utility functions */ /* Random integer 0..imax */ #define IRAND(imax) (int) (((double) (imax + 1)) * unif_rand()) /* 2 different random integers */ void i2rand(int *vec, int imax) { vec[0] = IRAND(imax); do { vec[1] = IRAND(imax); } while (vec[1] == vec[0]); } /* * Quasiswap or sum-of-squares reducing swap of Miklos & Podani. A quasiswap * step takes a random 2x2 submatrix and adds (-1,+1,+1,-1). If the submatrix * was (1,0,0,1) it is swapped to (0,1,1,0), but if it was, say, (2,0,0,1) it * is swapped to (1,1,1,0) which reduces sums-of-squares. We start with a * random matrix with given marginal totals (from R r2dtable) but possibly * some values >1. Then we perform quasiswaps on random 2x2 submatrices so * long that only 1 and 0 are left. The function only does the quasiswaps, * and it assumes that input matrix 'm' (dimensions 'nr', 'nc') was produced * by r2dtable or some other function with given marginal totals, but some * values possibly > 1. */ /* row & col indices to a vector index */ #define INDX(i, j, nr) (i) + (nr)*(j) void quasiswap(int *m, int *nr, int *nc) { int i, n, mtot, ss, row[2], col[2], nr1, nc1, a, b, c, d; nr1 = (*nr) - 1; nc1 = (*nc) - 1; /* Get matrix total 'mtot' and sum-of-squares 'ss' */ n = (*nr) * (*nc); for (i = 0, mtot = 0, ss = 0; i < n; i++) { mtot += m[i]; ss += m[i] * m[i]; } /* Get R RNG */ GetRNGstate(); /* Quasiswap while there are entries > 1 */ while (ss > mtot) { i2rand(row, nr1); i2rand(col, nc1); /* a,b,c,d notation for a 2x2 table */ a = INDX(row[0], col[0], *nr); b = INDX(row[0], col[1], *nr); c = INDX(row[1], col[0], *nr); d = INDX(row[1], col[1], *nr); if (m[a] > 0 && m[d] > 0 && m[a] + m[d] - m[b] - m[c] >= 2) { ss -= 2 * (m[a] + m[d] - m[b] - m[c] - 2); m[a]--; m[d]--; m[b]++; m[c]++; } else if (m[b] > 0 && m[c] > 0 && m[b] + m[c] - m[a] - m[d] >= 2) { ss -= 2 * (m[b] + m[c] - m[a] - m[d] - 2); m[a]++; m[d]++; m[b]--; m[c]--; } } /* Set R RNG */ PutRNGstate(); } /* Trial swap: try 'thin' times and swap when you can. This gives zero * to many swaps for one call. */ void trialswap(int *m, int *nr, int *nc, int *thin) { int i, a, b, c, d, row[2], col[2], sX; GetRNGstate(); for (i=0; i < *thin; i++) { i2rand(row, (*nr) - 1); i2rand(col, (*nc) - 1); a = INDX(row[0], col[0], *nr); b = INDX(row[0], col[1], *nr); c = INDX(row[1], col[0], *nr); d = INDX(row[1], col[1], *nr); /* only two filled items can be swapped */ sX = m[a] + m[b] + m[c] + m[d]; if (sX != 2) continue; if (m[a] == 1 && m[d] == 1) { m[a] = 0; m[d] = 0; m[b] = 1; m[c] = 1; } else if (m[c] == 1 && m[b] == 1) { m[a] = 1; m[d] = 1; m[b] = 0; m[c] = 0; } } PutRNGstate(); } /* Ordinary swap: swap if you can, stop after you swapped, or repeat * thin times. The data matrix 'm' must be binary: this is not * checked. */ void swap(int *m, int *nr, int *nc, int *thin) { int i, a, b, c, d, row[2], col[2], sX; GetRNGstate(); for (i=0; i < *thin; i++) { for(;;) { i2rand(row, (*nr) - 1); i2rand(col, (*nc) - 1); a = INDX(row[0], col[0], *nr); b = INDX(row[0], col[1], *nr); c = INDX(row[1], col[0], *nr); d = INDX(row[1], col[1], *nr); sX = m[a] + m[b] + m[c] + m[d]; if (sX != 2) continue; if (m[a] == 1 && m[d] == 1) { m[a] = 0; m[d] = 0; m[b] = 1; m[c] = 1; break; } if (m[c] == 1 && m[b] == 1) { m[a] = 1; m[d] = 1; m[b] = 0; m[c] = 0; break; } } } PutRNGstate(); } /* 'swapcount' is a C translation of Peter Solymos's R code. It is * similar to 'swap', but can swap > 1 values and so works for * quantitative (count) data. */ /* 'isDiag' is a utility function for 'swapcount' to find the largest * value that can be swapped and whether in diagonal or antidiagonal * way. The input is a 2x2 submatrix 'sm'. */ int isDiag(int *sm, int *change) { int i, sX; int retval; /* sX: number of non-zero cells */ for (i = 0, sX = 0; i < 4; i++) if (sm[i] > 0) sX++; /* default values */ retval = 0; *change = 0; switch (sX) { case 0: case 1: /* nothing to swap*/ break; case 2: /* diagonal and antidiagonal swappable */ if (sm[1] > 0 && sm[2] > 0) { retval = (sm[1] < sm[2]) ? sm[1] : sm[2]; if (sm[1] != sm[2]) *change = 1; } else if (sm[0] > 0 && sm[3] > 0) { retval = (sm[0] < sm[3]) ? -sm[0] : -sm[3]; if (sm[0] != sm[3]) *change = 1; } break; case 3: /* always swappable: case depends on the empty corner */ if (sm[0] == 0 || sm[3] == 0) { retval = (sm[1] < sm[2]) ? sm[1] : sm[2]; if (sm[1] == sm[2]) *change = -1; } else { retval = (sm[0] < sm[3]) ? -sm[0] : -sm[3]; if (sm[0] == sm[3]) *change = -1; } break; case 4: /* always swappable: return diagonal case */ retval = (sm[1] < sm[2]) ? sm[1] : sm[2]; if (sm[1] == sm[2]) *change = -2; else *change = -1; break; } return retval; } /* isDiagFill: Largest swappable element and swap policies for * fill-neutral swapping */ int isDiagFill(int *sm) { int i, sX; int retval; /* sX: number of non-zero cells */ for (i = 0, sX = 0; i < 4; i++) if (sm[i] > 0) sX++; retval = 0; switch (sX) { case 0: case 1: /* nothing to swap*/ break; case 2: /* equal diagonal and antidiagonal fill-neutrally * swappable */ if ((sm[0] == sm[3]) && (sm[1] == sm[2])) { if (sm[1] > 0) retval = (sm[1] < sm[2]) ? sm[1] : sm[2]; else retval = (sm[0] < sm[3]) ? -sm[0] : -sm[3]; } break; case 3: /* fill-neutrally swappable if diagonal & antidiagonal * unequal */ if ((sm[0] != sm[3]) && (sm[1] != sm[2])) { if (sm[0] == 0 || sm[3] == 0) { retval = (sm[1] < sm[2]) ? sm[1] : sm[2]; } else { retval = (sm[0] < sm[3]) ? -sm[0] : -sm[3]; } } break; case 4: /* never swappable (minelement-1 always swappable) */ break; } return retval; } void swapcount(int *m, int *nr, int *nc, int *thin) { int row[2], col[2], k, ij[4], changed, pm[4] = {1, -1, -1, 1} ; int sm[4], ev; GetRNGstate(); changed = 0; while (changed < *thin) { /* Select a random 2x2 matrix*/ i2rand(row, *nr - 1); i2rand(col, *nc - 1); ij[0] = INDX(row[0], col[0], *nr); ij[1] = INDX(row[1], col[0], *nr); ij[2] = INDX(row[0], col[1], *nr); ij[3] = INDX(row[1], col[1], *nr); for (k = 0; k < 4; k ++) sm[k] = m[ij[k]]; /* The largest value that can be swapped */ ev = isDiagFill(sm); if (ev != 0) { for (k = 0; k < 4; k++) m[ij[k]] += pm[k]*ev; changed++; } } PutRNGstate(); } /* rswapcount for "reducing swap of count data" is a minor variant of * swapcount, but it tries to change the fill: you first make a matrix * with correct marginal totals, but possibly wrong fill and then you * run this to change the fill while maintaining the totals. The idea * is similar as quasiswap for presence/absence data. */ void rswapcount(int *m, int *nr, int *nc, int *mfill) { int row[2], col[2], i, k, ij[4], n, change, cfill, pm[4] = {1, -1, -1, 1} ; int sm[4], ev; /* Get the current fill 'cfill' */ n = (*nr) * (*nc); for (i = 0, cfill=0; i < n; i++) { if (m[i] > 0) cfill++; } GetRNGstate(); /* Loop while fills differ */ while (cfill != *mfill) { /* Select a random 2x2 matrix*/ i2rand(row, *nr - 1); i2rand(col, *nc - 1); ij[0] = INDX(row[0], col[0], *nr); ij[1] = INDX(row[1], col[0], *nr); ij[2] = INDX(row[0], col[1], *nr); ij[3] = INDX(row[1], col[1], *nr); for (k = 0; k < 4; k ++) sm[k] = m[ij[k]]; /* The largest value that can be swapped */ ev = isDiag(sm, &change); if (ev != 0) { /* Fill does not change, but swap to bail out from * non-swappable configurations */ if (change == 0) { for (k = 0; k < 4; k++) m[ij[k]] += pm[k]*ev; } else if ((change < 0 && *mfill < cfill) || (change > 0 && *mfill > cfill)) { for (k = 0; k < 4; k++) m[ij[k]] += pm[k]*ev; cfill += change; } } } PutRNGstate(); } /* 'isDiagSimple' needed for 'abuswap' */ int isDiagSimple(double *sm) { int i, sX; int retval = 0; /* sX: number of non-zero cells */ for (i = 0, sX = 0; i < 4; i++) if (sm[i] > 0) sX++; switch(sX) { case 0: case 1: /* never swappable */ retval = 0; break; case 2: /* diagonal and antidiagonal swappable */ if ((sm[1] > 0 && sm[2] > 0) || (sm[0] > 0 && sm[3] > 0)) retval = 1; else retval = 0; break; case 3: /* never swappable */ retval = 0; break; case 4: /* always swappable */ retval = 1; break; } return retval; } /* 'abuswap' to do Hardy 2008 J Ecol 96: 914-926 */ void abuswap(double *m, int *nr, int *nc, int *thin, int *direct) { int row[2], col[2], k, ij[4], changed, ev; double sm[4]; GetRNGstate(); changed = 0; while (changed < *thin) { /* Select a random 2x2 matrix*/ i2rand(row, *nr - 1); i2rand(col, *nc - 1); ij[0] = INDX(row[0], col[0], *nr); ij[1] = INDX(row[1], col[0], *nr); ij[2] = INDX(row[0], col[1], *nr); ij[3] = INDX(row[1], col[1], *nr); for (k = 0; k < 4; k++) sm[k] = m[ij[k]]; ev = isDiagSimple(sm); /* Swap */ if (ev == 1) { /* fixed column sums */ if (*direct == 0) { m[ij[0]] = sm[1]; m[ij[1]] = sm[0]; m[ij[2]] = sm[3]; m[ij[3]] = sm[2]; } /* fixed row sums */ else { m[ij[0]] = sm[2]; m[ij[1]] = sm[3]; m[ij[2]] = sm[0]; m[ij[3]] = sm[1]; } changed++; } } PutRNGstate(); } #undef IRAND #undef INDX vegan/src/pnpoly.c0000644000175100001440000000534012600727026013650 0ustar hornikusers/**********************************************************' * pnpoly.c: Find Points in a Polygon * ********************************************************/ /* Function pnpoly is lightly edited from the function of Wm. Randolph * Franklin by Jari Oksanen to work in R and for a vector of points. * The source of this code was at * http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html, * and the original copyright notice is below. This version is Friday, * October 13, 2006. */ /* Motivation for yet another point in polygon function: There was * none in base R, and I wanted to liberate ordisurf from dependence * on non-standard R packages. I think there should be such a function * connected with chull (in.chull) to make this unnecessary in * vegan. */ /* License to Use */ /* Copyright (c) 1970-2003, Wm. Randolph Franklin */ /* Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: */ /* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimers. */ /* Redistributions in binary form must reproduce the above copyright notice in the documentation and/or other materials provided with the distribution. */ /* The name of W. Randolph Franklin may not be used to endorse or promote products derived from this Software without specific prior written permission. */ /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ void pnpoly(int *npol, double *xp, double *yp, int *np, double *x, double *y, int *c) { int i, j, k; for (k = 0; k < *np; k++) c[k] = 0; for (k = 0; k < *np; k++) { for (i = 0, j = *npol-1; i < *npol; j = i++) { if ((((yp[i] <= y[k]) && (y[k] < yp[j])) || ((yp[j] <= y[k]) && (y[k] < yp[i]))) && (x[k] < (xp[j] - xp[i]) * (y[k] - yp[i]) / (yp[j] - yp[i]) + xp[i])) c[k] = !c[k]; } } } vegan/src/stepacross.c0000644000175100001440000001576612600727026014532 0ustar hornikusers/* stepacross: Extended dissimilarities according to * * G. De'ath, Plant Ecology 144, 191-199; 1999 * * 1. Find all dissimilarities above a threshold and make them NA. * 2. See if you can find a stepacross point k so that d[ij] = d[ki] + * d[kj] is not NA. Take the shortest of these dissimilarities as new d[ij]. * 3. Repeat step 2 with updated dissimilarity matrix until no NA are * left, or you cannot find any new non-NA steps. The latter case is * an error: Disconnected data set. * * The function inspects only dissimilarities originally marked as * NA. It does not update paths involving sites i and j once d[ij] was * changed. Neither does it try to find shortest path for * dissimilarities below the threshold, although such could be found * in semi-metrics such as Bray-Curtis index. * * (C) 2003 Jari Oksanen. You are allowed to use this software under GPL2. */ #include #define EPS (1e-6) #define IND(N,a,b) (N)*(a) - (a)*((a)+1)/2 + (b) - (a) - (1) void stepacross(double *dist, int *n, double *toolong, int *trace) { int i, j, k, nacount, oldcount, ind, ki, kj, inew, *newind, ndist; double stepdis, steptry, *newdist, limit; limit = *toolong - EPS; ndist = (*n) * ((*n) - 1) / 2; if (*toolong > 0) for (i = 0; i < ndist; i++) if (dist[i] >= limit) dist[i] = NA_REAL; for (i = 0, nacount = 0; i < ndist; i++) if (ISNA(dist[i])) nacount++; if (*trace) Rprintf("Too long or NA distances: %d out of %d (%.1f%%)\n", nacount, ndist, 100.0*nacount/ndist); newdist = (double *) R_alloc(nacount, sizeof(double)); newind = (int *) R_alloc(nacount, sizeof(int)); while (nacount > 0) { if (*trace) Rprintf("Stepping across %d dissimilarities...\n", nacount); oldcount = nacount; inew = 0; for (i = 0, ind = 0; i < *n; i++) { for (j = i + 1; j < *n; j++) { if (ISNA(dist[ind])) { stepdis = DOUBLE_XMAX; for (k = 0; k < *n; k++) { if (k == i || k == j) continue; ki = (k > i) ? IND(*n, i, k) : IND(*n, k, i); if (ISNA(dist[ki])) continue; kj = (k > j) ? IND(*n, j, k) : IND(*n, k, j); if (ISNA(dist[kj])) continue; steptry = dist[ki] + dist[kj]; if (steptry < stepdis) stepdis = steptry; } if (stepdis < DOUBLE_XMAX) { newdist[inew] = stepdis; newind[inew] = ind; nacount--; inew++; } } ind++; } } if (oldcount == nacount) { warning("Disconnected data: Result will contain NAs"); break; } for (k = 0; k < inew; k++) dist[newind[k]] = newdist[k]; } } /* stepabyss and visitabyss implement depth-first search for * connectivity of dissimilarity matrix with threshold * limit-EPS. Algorithm is directly taken from Sedgewick (1990), * "Algorithms in C," pages 423-427. Macro IND and constant EPS were * defined above. */ void visitabyss(int k, int id, int *val, int n, double *dist) { int t, ki; val[k] = id; for (t = 0; t < n; t++) { if (k == t) continue; ki = (t > k) ? IND(n, k, t) : IND(n, t, k); if (!ISNA(dist[ki])) if (val[t] == 0) visitabyss(t, id, val, n, dist); } } void stepabyss(double *dist, int *n, double *toolong, int *val) { int k, id, ndist; double limit; limit = *toolong - EPS; ndist = (*n) * ((*n) - 1)/2; if (*toolong > 0) for (k = 0; k < ndist; k++) if (dist[k] >= limit) dist[k] = NA_REAL; for (k = 0; k < *n; k++) val[k] = 0; for (k = 0, id = 0; k < *n; k++) if (val[k] == 0) visitabyss(k, ++id, val, *n, dist); } /* Function dykstrapath impelements Dijkstra's shortest path algorithm * for graph traversal. Return matrix outval contains shortest path * distances. Function matrixpfs() in Sedgewick, 1990, page 466 * (priority first search for dense graphs). */ #define UNSEEN 1e8 void dykstrapath(double *dist, int *n, double *toolong, int *trace, double *outval) { int i, k, t, min = 0, ki, ndist, nacount = 0; double priority, *val, limit; /* val[*n] is a sentinel: length needs be n+1 */ val = (double *) R_alloc((*n) + 1, sizeof(double)); limit = *toolong - EPS; ndist = (*n) * ((*n) - 1)/2; if (*toolong > 0) for(i = 0; i < ndist; i++) if (dist[i] >= limit) dist[i] = NA_REAL; if (*trace) { for (i = 0, nacount = 0; i < ndist; i++) if (ISNA(dist[i])) nacount++; Rprintf("Too long or NA distances: %d out of %d (%.1f%%)\n", nacount, ndist, 100.0 * nacount/ndist); Rprintf("Stepping across %d dissimilarities...\n", ndist); } for (i = 0; i < *n; i++) { for (k = 0; k <= *n; k++) val[k] = -UNSEEN; val[*n] = -(UNSEEN + 1); for (k = i; k != *n; k = min, min = *n) { val[k] = -val[k]; if (val[k] == UNSEEN) val[k] = 0; for (t = 0; t < *n; t++) if (val[t] < 0) { ki = (t > k) ? IND(*n, k, t) : IND(*n, t, k); priority = val[k] + dist[ki]; if (!ISNA(priority) && (val[t] < -priority)) { val[t] = -priority; } if (val[t] > val[min]) min = t; } } ki = IND(*n, i, i+1); for (t = i + 1; t < *n; t++) outval[ki + t - i - 1] = val[t]; } for (i = 0, nacount = 0; i < ndist; i++) if (ISNA(dist[i]) && outval[i] == 0) { outval[i] = NA_REAL; nacount++; } if (nacount) warning("Disconnected data: Result will contain NAs"); } /* Function primtree finds *a* minimum spanning tree for dist. Vector * dad returns the vertex joined to point i (the first item is 0: it * is the link from 0 to 0) and val the length of corresponding * edge. If the distance matrix is disconnected at level toolong, * returns a minimum spanning forest where the missing links are * marked as NA. Uses Prim's method (priority-first search for a * dense graph) of Sedgewick, 1990, page 466, function * matrixpfs(). --- I didn't intend to have minimum spanning tree, * because I think it is pretty useless, but this just appeared when I * tried to implement Dijkstra's shortest path algorithm above. */ void primtree(double *dist, double *toolong, int *n, double *val, int *dad) { int k, t, min = 0, ki, ndist; double priority; ndist = (*n) * ((*n) - 1)/2; if (*toolong > 0) for (k = 0; k < ndist; k++) if (dist[k] >= *toolong - EPS) dist[k] = NA_REAL; for (k = 0; k <= *n; k++) { dad[k] = NA_INTEGER; val[k] = -UNSEEN; } val[*n] = -(UNSEEN + 1); for (k = 0; k != *n; k = min, min = *n) { val[k] = -val[k]; if (val[k] == UNSEEN) val[k] = 0; for (t = 0; t < *n; t++) if (val[t] < 0) { if (t == k) continue; ki = (t > k) ? IND(*n, k, t) : IND(*n, t, k); priority = dist[ki]; if (!ISNA(priority) && (val[t] < -priority)) { val[t] = -priority; dad[t] = k; } if (val[t] > val[min]) min = t; } } } #undef UNSEEN vegan/src/ordering.f0000644000175100001440000001115412600727026014143 0ustar hornikusers Subroutine Orderdata(mat, n, k, rowscore) C23456789012345678901234567890123456789012345678901234567890123456789012 C d = a distance matrix C n = number of objects (rows of the data files) C C Based on Pierre Legendre Fortran code and Table 9.5 and 9.10 C We compute the principal coordinate of the first axis only. C Set the precision level for eigenvalue estimation Integer mat(n,k) double precision sumrow(n), sumtot double precision rowscore(n),colscore(n),toler,epsilon epsilon=0.000001 toler= 0.000001 if(n.gt.1000) then epsilon=0.00001 toler= 0.00001 endif if(n.gt.10000) then epsilon=0.0001 toler= 0.0001 endif C Centre the distance matrix (Gower's method) call Centre(mat, n, k, sumrow, sumtot) call TWWS(mat,n,k,sumrow,sumtot,rowscore,colscore,toler,epsilon) end Subroutine Centre(mat, n, k, sumrow, sumtot) Integer mat(n,k) double precision d double precision sumrow(n),sumtot do i=1,n sumrow(i)=0.0 enddo do i=1,(n-1) do j=(i+1),n call SM(mat, n, k, i, j, d) d = -0.5*d**2 sumrow(i)=sumrow(i) + d sumrow(j)=sumrow(j) + d enddo enddo C fln=1.0/float(n) sumtot=0. do i=1,n sumtot=sumtot+sumrow(i) sumrow(i)=sumrow(i)*fln enddo sumtot=sumtot/float(n**2) C do 16 i=1,n C do 16 j=1,n C 16 d(i,j)=d(i,j)-sumrow(i)-sumrow(j)+sumtot end Subroutine SM(mat, n, k, i, j, d) C Compute a simple matching coefficient from a table of K-means results (integers). C The 'n' rows are the objects; the 'k' columns are the partitions. Integer mat(n,k) double precision d C a = 0.0 do kk=1,k if(mat(i,kk).eq.mat(j,kk)) a=a+1 enddo d = 1.0 - (a/float(k)) end Subroutine TWWS(mat,n,k,sumrow,sumtot,rowscore,colscore, + toler,epsilon) Integer n, niter Integer mat(n,k) double precision sumrow(n),sumtot,d double precision rowscore(n),colscore(n),epsilon,oldS,newS,toler, + oldrowsc(n) niter=1000 C Step 2: Take the column order as arbitrary initial site scores do 4 i=1,n 4 rowscore(i)=dfloat(i) oldS=0. C Iterations starting do 20 it=1,niter C Step 3: Calculate new variable scores (equation 5.8, p. 119) do 6 i=1,n 6 colscore(i)=rowscore(i) C Step 4: Calculate new site scores (equation 5.9, p. 122) do 8 i=1,n rowscore(i)=0. do 8 j=1,n call SM(mat, n, k, i, j, d) d = -0.5*d**2 d = d-sumrow(i)-sumrow(j)+sumtot 8 rowscore(i)=rowscore(i)+d*colscore(j) C Step 6: Normalize the site scores call NormTWWS(rowscore,n,newS) if(newS.lt.epsilon) then C write(*,103) 0 goto 52 endif C When convergence has been attained, check sign of eigenvalue. C If ALL rowscores have changed sign during the last iteration, C this is a negative eigenvalue. C write(*,*) 'oldS-newS', oldS-newS if(dabs(oldS-newS).le.toler) then C write(*,105) toler, it goto 22 endif do 18 i=1,n 18 oldrowsc(i)=rowscore(i) oldS=newS 20 continue C End of iterations for estimating eigenvalues and eigenvectors C write(*,101) k 22 continue C Save Eigenvalues, % variance, cumulative % variance C write(*,*) 'Eigenvalue =', newS C End of main loop on axes 52 continue C C Normalize the principal coordinates to variance = eigenvalue do 60 i=1,n 60 rowscore(i)=rowscore(i)*dsqrt(newS) C write(*,*) rowscore C 101 format(' Convergence not reached for axis:',i3/ C + ' Increase NITER or lower TOLER') C 102 format(' N. iterations to reach convergence for axis',i3,' =',i4) C 103 format(' There are',i4,' eigenvalues different from 0') C 104 format(' Eigenvector',i3,' is complex [multiply values*Sqrt(-1)]') C 105 format(" Tolerance is: ", F12.8, " NIter is: ", i4) C 150 format(1x,1hR,2i3,6f10.5) C 151 format(1x,1hC,2i3,10x,6f10.5) end Subroutine NormTWWS(rowscore,n,newS) Integer n double precision rowscore(n),s2,newS C Normalization for two-way weighted summation algorithm for PCA C (ter Braak 1987: 123) C On output, vector 'rowscore' has length = 1. C S = eigenvalue*(p-1) = contraction of vector rowscore in final C iteration C s2=0.0 do 10 i=1,n 10 s2=s2+rowscore(i)**2 newS=dsqrt(s2) do 20 i=1,n 20 rowscore(i)=rowscore(i)/newS return end vegan/src/monoMDS.f0000644000175100001440000010456612600727026013660 0ustar hornikusers SUBROUTINE monoMDS (NOBJ, NFIX, NDIM, NDIS, NGRP, . DISS, IIDX, JIDX, XINIT, ISTART, . ISFORM, ITIES, IREGN, ISCAL, MAXITS, SRATMX, . STRMIN, SFGRMN, . DIST, DHAT, X, STRESS, STRS, ITERS, ICAUSE) C C Subroutine for multidimensional scaling. C C 1.00 March 28, 2011 C 1.01 April 6, 2011 - added argument STRS(NGRP) to return the stress C for each of the NGRP groups of dissimilarities C i.e., from each separate regression. C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C C Starting from a supplied initial configuarion, uses steepest descent C to minimize Kruskal's stress, a measure of badness-of-fit of one C or more regressions of distances onto the supplied dissimilarities. C C This routine is very flexible in the form of the dissimilarity C matrices it can handle because dissimilarities are input as a C vector (DISS) with the associated i- and j-indices in parallel C vectors (IIDX, JIDX). There is no need for missing values, as C these index vectors specify which pair of points each dissimilarity C belongs to and missing dissimilarities are simply omitted. Another C element of flexibility is that there can be more than one group of C dissimilarities and a separate regression of distance on C dissimilarity is done for each group. Local or "row conditional" C scaling can be performed by inputting each row of the dissimilarity C matrix (minus the diagonals) as a separate group. Hybrid scaling C of Faith et. al (1987) can be done by inputting the complete C dissimilarity matrix as group 1 and only those dissimilarities C below a specified threshold as group 2 (and also setting input C parameter IREGN to 3). New points can be inserted into an C existing ordination by inputting dissimilarities from the C rectangular matrix in which the existing points are rows and the C new points are columns. The parameter NFIX is then set to the C number of existing points (rows) and these will be the first C NFIX points in XINIT, which supplies their coordinates. Normally, C when NFIX>0, the scaling parameter, ISCAL, should be 0, so that C the coordinates of the fixed points remain unchanged in the C output ordination scores, X. C C========INPUT ARGUMENTS: C C NOBJ = number of objects being ordinated C C NFIX = number of fixed objects (< NOBJ - if NFIX>0 the input C dissim matrix is assumed to be rectangular, with the C first NFIX objects, rows, remaining fixed and the rest C able to move) C C NDIM = number of dimensions for the MDS ordination C C NDIS = total number of dissimilarities among objects C C NGRP = number of groups of dissimilarities (a separate regression C of distances on dissimilarities is performed for each C group) C C DISS(NDIS) = vector of dissimilarities among objects C C IIDX(NDIS) = i-indices of objects in the dissimilarity vector C C JIDX(NDIS) = j-indices of objects in the dissimilarity vector C C XINIT(NOBJ,NDIM) = initial coordinates for NOBJ objects on NDIM C dimensions C C ISTART(NGRP) = index of starting position of each group of C dissimilarities within vectors DISS, IIDX and JIDX C C ISFORM = Kruskal stress formula to be used: 1 or 2 C C ITIES = Kruskal tie treatment: 1 = weak/primary, 2 = strong/secondary C C IREGN = Regression type: 1 = Kruskal monotone, 2 = linear, 3 = hybrid C (Kruskal monotone for the first NGRP/2 groups, linear for C the remainder of the groups - when this is selected it is C assumed that NGRP>1 and NGRP is even) C C ISCAL = scaling of final ordination: 0 = preserved (output raw scores C with no standardization), 1 = normalize (center and adjust C RMS distance of points to centroid to 1.0) C C MAXITS = maximum number of iterations - at least 200 recommended C C SRATMX = maximum average stress ratio (iterations stop when average C stress ratio exceeds this value but is still < 1) - a value C of 0.9999 or higher is recommended C C STRMIN = minimum stress to stop (iterations stop if stress falls C below this value) - a value of 0.001 or lower is C recommended C C SFGRMN = minimum scale factor of the gradient (iterations stop if C the scale factor of the gradient drops below this) C C========OUTPUT ARGUMENTS: C C DIST(NDIS) = distances among objects in the final ordination C C DHAT(NDIS) = fitted distances in final regression(s) of distance C on dissimilarity C C X(NOBJ,NDIM) = final ordination coordinates of NOBJ objects in NDIM C dimensions C C STRESS = final value of stress C C STRS(NGRP) = vector of stress values from each separate regression C C ITERS = number of iterations performed C C ICAUSE = reason for termination of iterations: 1 = max iterations C used, 2 = stress fell below STRMIN, 3 = stress ratio C exceeded SRATMX, 4 = scale factor of gradient fell below C SFGRMN C C---INPUT ARGUMENTS INTEGER, INTENT(IN) :: NOBJ, NFIX, NDIM, NDIS, NGRP, . ISFORM, ITIES, IREGN, ISCAL, MAXITS INTEGER, INTENT(IN) :: IIDX(NDIS), JIDX(NDIS), ISTART(NGRP) DOUBLE PRECISION, INTENT(IN) :: XINIT(NOBJ,NDIM), DISS(NDIS), . SRATMX, STRMIN, SFGRMN C---OUTPUT ARGUMENTS INTEGER, INTENT(OUT) :: ITERS, ICAUSE DOUBLE PRECISION, INTENT(OUT) :: X(NOBJ,NDIM), DIST(NDIS), . DHAT(NDIS), STRESS, STRS(NGRP) C---ALLOCATABLE TEMPORARY ARRAYS INTEGER, ALLOCATABLE :: IWORK(:) DOUBLE PRECISION, ALLOCATABLE :: GRAD(:,:), GRLAST(:,:) C DOUBLE PRECISION :: STRLST, SQRTN, SRATF1, SRATF2, FNGRP, . STRINC, COSAV, ACOSAV, SRATAV, STEP, FNDIM, SFGR, SRATIO, . SFACT, TFACT, DMEAN, CAGRGL, SFGLST, STPNEW, SSFACB, SSFACT, . PARAM(2) C C ALLOCATE THE TEMPORARY ARRAYS NEEDED C ALLOCATE (IWORK(NDIS), GRAD(NOBJ,NDIM), GRLAST(NOBJ,NDIM)) C C INITIALIZE SOME PARAMETERS C SQRTN=SQRT(REAL(NDIS)) SRATF1=0.5*(1.0+SRATMX) SRATF2=1.0-SRATF1 FNGRP=REAL(NGRP) STRINC=1.1 STRESS=1.0D0 COSAV=0.0 ACOSAV=0.0 SRATAV=0.8 STEP=0.0 FNDIM=REAL(NDIM) SFGR=SQRTN C C PREPARE DISSIMILARITIES FOR USE IN REGRESSION(S) C DO IGRP=1,NGRP I1=ISTART(IGRP) IF (IGRP.LT.NGRP) THEN N=ISTART(IGRP+1)-I1 ELSE N=NDIS+1-I1 ENDIF IF (N.GT.0) THEN C C PRE-SORT IF NECESSARY. NOT REQUIRED FOR LINEAR REGRESSION (IREGN=2) C NOR FOR DISSIM GROUPS > NGRP/2 IN HYBRID REGRESSION (IREGN=3) C IF (IREGN.EQ.1.OR.(IREGN.EQ.3.AND.IGRP.LE.NGRP/2)) THEN CALL ASORT4 (DISS(I1),N,IIDX(I1),JIDX(I1)) ENDIF ENDIF ENDDO C C COPY INITIAL CONFIGURATION TO CURRENT CONFIGURATION C CALL MACOPY (XINIT,NOBJ,NOBJ,NDIM,X,NOBJ) C C INITALIZE GRADIENT (WILL BE USED AS THE FIRST "LAST GRADIENT") C CALL MAINIT (GRAD,NOBJ,NDIM,NOBJ,SQRT(1.0/FNDIM)) C======================================================================= C C START OF ITERATION LOOP C DO IT=0,MAXITS C---Reset backup counter NBACK=0 C C SAVE LAST STRESS VALUE AND SET STRESS BACK TO ZERO C C---Jump back to here when a backup if required 10 STRLST=STRESS STRESS=0.0D0 C C Normalize the current configuration (unless ISCAL=0) C IF (ISCAL.GT.0) THEN CALL NRMCON (X,NOBJ,NDIM,NOBJ,SSFACT) ELSE SSFACT=1.0D0 ENDIF C C MOVE CURRENT GRADIENT TO LAST GRADIENT (WITH APPROPRIATE SCALING) C AND SAVE LAST GRADIENT SCALING FACTOR C CALL MACOPY (GRAD,NOBJ,NOBJ,NDIM,GRLAST,NOBJ) CALL MAMAS (GRLAST,NOBJ,NOBJ,NDIM,SSFACT) SFGLST=SFGR*SSFACT C C CLEAR CURRENT GRADIENT C CALL MAINIT (GRAD,NOBJ,NDIM,NOBJ,0.0D0) C C COMPUTE DISTANCES C CALL CLCDIS (X,NOBJ,NDIM,DIST,IIDX,JIDX,NDIS) C----------------------------------------------------------------------- C C LOOP OVER THE NGRP GROUPS OF DISSIMILARITIES C DO IGRP=1,NGRP I1=ISTART(IGRP) IF (IGRP.LT.NGRP) THEN N=ISTART(IGRP+1)-I1 ELSE N=NDIS+1-I1 ENDIF IF (N.GT.0) THEN C C PERFORM REGRESSION OF DISTANCES ON DISSIMILARITIES C IF (IREGN.EQ.1.OR.(IREGN.EQ.3.AND.IGRP.LE.NGRP/2)) THEN CALL MONREG (DISS(I1),DIST(I1),DHAT(I1),IIDX(I1), . JIDX(I1),IWORK(I1),N,ITIES) ELSEIF (IREGN.EQ.2.OR.(IREGN.EQ.3.AND.IGRP.GT.NGRP/2)) THEN CALL LINREG (DISS(I1),DIST(I1),DHAT(I1),N,PARAM) ENDIF C C COMPUTE AND ACCUMULATE STRESS C CALL CLCSTR (DIST(I1),DHAT(I1),N,SFACT,TFACT,STRS(IGRP), . ISFORM,DMEAN) STRESS=STRESS+SFACT/TFACT C C ACCUMULATE THE NEGATIVE GRADIENT C CALL CLCGRD (X,GRAD,NOBJ,NDIM,DIST(I1),DHAT(I1), . IIDX(I1),JIDX(I1),N,STRS(IGRP),SFACT,TFACT,ISFORM,DMEAN) ENDIF ENDDO C C END OF DISSIMILARITY GROUP LOOP C C----------------------------------------------------------------------- C C COMPUTE OVERALL STRESS AND ITS REDUCTION RATIO C STRESS=SQRT(STRESS/FNGRP) IF (IT.EQ.0) THEN SRATIO=0.8D0 ELSE SRATIO=STRESS/STRLST ENDIF C C TO PREVENT FIXED POINTS BEING MOVED, ZERO THEIR GRADIENT ELEMENTS C IF (NFIX.GT.0) THEN DO I=1,NFIX DO IDIM=1,NDIM GRAD(I,IDIM)=0.0D0 ENDDO ENDDO ENDIF C C CALCULATE SCALE FACTOR OF NEW GRADIENT AND ITS DIRECTION COSINE C WITH THE LAST GRADIENT C CALL CLCSFA (GRAD,GRLAST,NOBJ,NDIM,NOBJ,SFGR,CAGRGL, . SFGLST) C C IF STRESS HAS INCREASED APPRECIABLY, OR THE ANGLE BETWEEN THE NEW C GRADIENT AND THE LAST GRADIENT IS APPROACHING 180 DEGREES, REDUCE C THE STEP SIZE AND BACK UP ALONG THE LAST GRADIENT C (BACKUP PROCEDURE IS PERFORMED A MAXIMUM OF 3 TIMES PER ITERATION) C IF ((SRATIO.GT.STRINC.OR.CAGRGL.LT.(-0.95)).AND.NBACK.LT.3) . THEN STPNEW=STEP*0.1D0 CALL BACKUP (X,GRAD,GRLAST,NOBJ,NDIM,NOBJ,NBACK,SSFACT, . SSFACB,STRESS,STRLST,SFGR,SFGLST,STEP,STPNEW) GO TO 10 ENDIF C C UPDATE AVERAGES OF STRESS RATIO AND PREVIOUS DIRECTION COSINES C SRATAV=SRATIO**0.33334D0 * SRATAV**0.66666D0 COSAV=CAGRGL*0.66666D0 + COSAV*0.33334D0 ACOSAV=ABS(CAGRGL)*0.66666D0 + ACOSAV*0.33334D0 C C COMPUTE NEW STEP SIZE C CALL CLCSTP (STEP,IT,SFGR,STRESS,COSAV,ACOSAV,SRATIO, . SRATAV) C C CHECK WHETHER OR NOT TO KEEP ITERATING C C IF STRESS IN SMALL ENOUGH, TERMINATE C ITERS=IT IF (STRESS.LT.STRMIN) THEN ICAUSE=2 EXIT C C IF STRESS IS DECREASING SLOWLY, TERMINATE. C ELSEIF (ABS(SRATAV-SRATF1).LE.SRATF2.AND. . ABS(SRATIO-SRATF1).LE.SRATF2) THEN ICAUSE=3 EXIT C C IF SCALE FACTOR OF GRADIENT IS SMALL ENOUGH, TERMINATE C ELSEIF (SFGR.LE.SFGRMN) THEN ICAUSE=4 EXIT C C IF THIS IS THE FINAL ITERATION, TERMINATE C ELSEIF (IT.EQ.MAXITS) THEN ICAUSE=1 EXIT ENDIF C C COMPUTE NEW CONFIGURATION C CALL NEWCON (X,GRAD,NOBJ,NDIM,NOBJ,STEP,SFGR) ENDDO C C END OF ITERATION LOOP C C======================================================================= C C DEALLOCATE THE TEMPORARY ARRAYS AND RETURN C DEALLOCATE (IWORK, GRAD, GRLAST) RETURN END SUBROUTINE monoMDS SUBROUTINE ASORT4 (X,N,I1,I2) C C SORTS THE REAL*8 VECTOR X ASCENDING, SIMULTANEOUSLY PERMUTING THE C INTEGER VECTORS I1 AND I2 IN PARALLEL. C C ADAPTED FROM SUPERCHARGED SHELL SORT ALGORITHM PUBLISHED ON PAGE 488 C OF THE MAY 1983 EDITION OF BYTE MAGAZINE. C C Adapted by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C INTEGER I1(N), I2(N), I1TEMP, I2TEMP DOUBLE PRECISION X(N), XTEMP C IF (N.LT.2) RETURN FN=REAL(N) NLOOPS=MAX(NINT(LOG(FN)/LOG(2.)),1) M=2**(NLOOPS-1) DO II=1,NLOOPS FM=M DO I=1,MAX(1,N-M) IF (X(I).GT.X(I+M)) THEN XTEMP=X(I+M) I1TEMP=I1(I+M) I2TEMP=I2(I+M) X(I+M)=X(I) I1(I+M)=I1(I) I2(I+M)=I2(I) IF (I.LE.M) THEN X(I)=XTEMP I1(I)=I1TEMP I2(I)=I2TEMP ELSE DO J=I-M,1,-M IF (XTEMP.GE.X(J)) EXIT X(J+M)=X(J) I1(J+M)=I1(J) I2(J+M)=I2(J) ENDDO X(J+M)=XTEMP I1(J+M)=I1TEMP I2(J+M)=I2TEMP ENDIF ENDIF ENDDO M=INT(FM/2.) ENDDO RETURN END SUBROUTINE ASORT4 SUBROUTINE BACKUP (X,GRAD,GRLAST,NOBJ,NDIM,MAXOBJ,NBACK,SSFACT, . SSFACB,STRESS,STRLST,SFGR,SFGLST,STEP,STPNEW) C C BACKS THE CONFIGURATION UP ALONG THE LAST GRADIENT C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION X(MAXOBJ,NDIM), GRAD(MAXOBJ,NDIM), . GRLAST(MAXOBJ,NDIM), SSFACT, SSFACB, STRESS, STRLST, SFGR, . SFGLST,STEP,STPNEW,FACTOR C NBACK=NBACK+1 IF (NBACK.EQ.1) THEN SSFACB=1.0D0 ELSE SSFACB=SSFACB*SSFACT ENDIF FACTOR=SSFACB*(STEP-STPNEW)/SFGLST DO IDIM=1,NDIM DO IOBJ=1,NOBJ X(IOBJ,IDIM)=X(IOBJ,IDIM)-FACTOR*GRLAST(IOBJ,IDIM) GRAD(IOBJ,IDIM)=GRLAST(IOBJ,IDIM) ENDDO ENDDO STEP=STPNEW SFGR=SFGLST STRESS=STRLST RETURN END SUBROUTINE BACKUP SUBROUTINE CLCDIS (X,MAXOBJ,NDIM,DIST,IIDX,JIDX,NDIS) C C COMPUTES EUCLIDEAN DISTANCES BETWEEN EACH PAIR OF THE NOBJ POINTS C WHOSE CO-ORDINATES IN NDIM DIMENSIONS ARE IN X(NOBJ,NDIM). C C THE DISTANCES ARE STORED IN THE VECTOR DIST AND THE INDEX VECTORS C IIDX AND JIDX HOLD THE I,J INDICES OF THE POINTS IN THE ORDER IN C WHICH THE COMPARISONS ARE TO BE MADE. C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C INTEGER IIDX(NDIS), JIDX(NDIS) DOUBLE PRECISION X(MAXOBJ,NDIM), DIST(NDIS) C C INITIALIZE DISTANCES C DO I=1,NDIS DIST(I)=0.0 ENDDO C C ACCUMULATE SUMS OF SQUARED DIFFERENCES ON EACH DIMENSION C DO IDIM=1,NDIM DO K=1,NDIS DIST(K)=DIST(K)+(X(IIDX(K),IDIM)-X(JIDX(K),IDIM))**2 ENDDO ENDDO C C TAKE SQUARE ROOTS OF TOTALS C DO I=1,NDIS DIST(I)=SQRT(DIST(I)) ENDDO RETURN END SUBROUTINE CLCDIS SUBROUTINE CLCGRD (X,GRAD,MAXOBJ,NDIM,DIST,DHAT,IIDX,JIDX, . NDIS,STRESS,SFACT,TFACT,ISFORM,DMEAN) C C ACCUMULATES THE NEGATIVE GRADIENT IN GRAD(NOBJ,NDIM). C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C INTEGER IIDX(NDIS), JIDX(NDIS) DOUBLE PRECISION X(MAXOBJ,NDIM), GRAD(MAXOBJ,NDIM), DIST(NDIS), . DHAT(NDIS), STRESS, SFACT, TFACT, DMEAN, SOTSQ, RECIPT, . DELTA C IF (STRESS.LE.0.0D0) RETURN SOTSQ=SFACT/(TFACT**2) RECIPT=1.0/TFACT DO IDIM=1,NDIM IF (ISFORM.LE.1) THEN C---Kruskal's stress formula 1 DO K=1,NDIS IF (DIST(K).GT.0.0) THEN DELTA=(SOTSQ-RECIPT*(DIST(K)-DHAT(K))/DIST(K))* . (X(IIDX(K),IDIM)-X(JIDX(K),IDIM)) GRAD(IIDX(K),IDIM)=GRAD(IIDX(K),IDIM)+DELTA GRAD(JIDX(K),IDIM)=GRAD(JIDX(K),IDIM)-DELTA ENDIF ENDDO ELSE C---Kruskal's stress formula 2 DO K=1,NDIS IF (DIST(K).GT.0.0) THEN DELTA=(SOTSQ*(DIST(K)-DMEAN)/DIST(K)- . RECIPT*(DIST(K)-DHAT(K))/DIST(K))* . (X(IIDX(K),IDIM)-X(JIDX(K),IDIM)) GRAD(IIDX(K),IDIM)=GRAD(IIDX(K),IDIM)+DELTA GRAD(JIDX(K),IDIM)=GRAD(JIDX(K),IDIM)-DELTA ENDIF ENDDO ENDIF ENDDO RETURN END SUBROUTINE CLCGRD SUBROUTINE CLCSFA (GRAD,GRLAST,NOBJ,NDIM,MAXOBJ,SFGR,CAGRGL, . SFGLST) C C COMPUTES SCALE FACTOR OF THE NEGATIVE GRADIENT IN GRAD(NOBJ,NDIM) C AND ALSO FINDS ITS DIRECTION COSINE WITH THE PREVIOUS GRADIENT, C STORED IN GRLAST(NOBJ,NDIM). C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION GRAD(MAXOBJ,NDIM), GRLAST(MAXOBJ,NDIM), . SFGR, CAGRGL, SFGLST, FN, FACTOR C FN=DBLE(NOBJ) SFGR=0.0D0 CAGRGL=0.0D0 DO IDIM=1,NDIM DO IOBJ=1,NOBJ SFGR=SFGR+GRAD(IOBJ,IDIM)**2 CAGRGL=CAGRGL+GRAD(IOBJ,IDIM)*GRLAST(IOBJ,IDIM) ENDDO ENDDO SFGR=SQRT(SFGR/FN) FACTOR=SFGR*SFGLST*FN IF (FACTOR.NE.0.0) CAGRGL=CAGRGL/FACTOR RETURN END SUBROUTINE CLCSFA SUBROUTINE CLCSTP (STEP,IT,SFGR,STRESS,COSAV,ACOSAV,SRATIO, . SRATAV) C C COMPUTES NEW STEP SIZE. BASED ON J.B. KRUSKAL'S STEP SIZE ALGORITHM C IN THE BELL LABORATORIES PROGRAM "KYST". C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION STEP, SFGR, STRESS, COSAV, ACOSAV, SRATIO, . SRATAV, FACTR1, FACTR2, FACTR3 C C MAKE A WILD GUESS FOR INITIAL STEP SIZE (IT=0). C IF (IT.EQ.0) THEN STEP=25.0*STRESS*SFGR C C OTHERWISE, UPDATE STEP SIZE. C ELSE FACTR1=4.0**COSAV FACTR2=1.6/( (1.0+(MIN(1D0,SRATAV))**5) * . (1.0+ACOSAV-ABS(COSAV)) ) FACTR3=SQRT(MIN(1D0,SRATIO)) STEP=STEP*FACTR1*FACTR2*FACTR3 ENDIF RETURN END SUBROUTINE CLCSTP SUBROUTINE CLCSTR (DIST,DHAT,N,SNUMER,SDENOM,STRESS,ISFORM,DMEAN) C C COMPUTES KRUSKAL'S STRESS (FORMULA 1 or 2) C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION DIST(N), DHAT(N), SNUMER, SDENOM, STRESS, . DMEAN C SNUMER=0.0D0 SDENOM=0.0D0 DMEAN=0.0D0 IF (ISFORM.GE.2) THEN DO I=1,N DMEAN=DMEAN+DIST(I) ENDDO DMEAN=DMEAN/DBLE(N) DO I=1,N SNUMER=SNUMER+(DIST(I)-DHAT(I))**2 SDENOM=SDENOM+(DIST(I)-DMEAN)**2 ENDDO ELSE DO I=1,N SNUMER=SNUMER+(DIST(I)-DHAT(I))**2 SDENOM=SDENOM+DIST(I)**2 ENDDO ENDIF STRESS=SQRT(SNUMER/SDENOM) RETURN END SUBROUTINE CLCSTR SUBROUTINE LINREG (DISS,DIST,DHAT,N,C) C C PERFORMS LINEAR REGRESSION OF DIST ON DISS, PLACING THE FITTED VALUES C IN DHAT. THE REGRESSION COEFFICIENTS ARE RETURNED IN C: C C(1) = INTERCEPT, C(2) = SLOPE. C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION DISS(N), DIST(N), DHAT(N), . AVDISS, SSDISS, AVDIST, SPROD, C(2), FN C C COMPUTE MEANS, SUMS OF SQUARES AND SUM OF PRODUCTS C FN=DBLE(N) AVDIST=0.0D0 AVDISS=0.0D0 DO K=1,N AVDIST=AVDIST+DIST(K) AVDISS=AVDISS+DISS(K) ENDDO AVDIST=AVDIST/FN AVDISS=AVDISS/FN SSDISS=0.0D0 SPROD=0.0D0 DO K=1,N SSDISS=SSDISS+(DISS(K)-AVDISS)**2 SPROD=SPROD+(DIST(K)-AVDIST)*(DISS(K)-AVDISS) ENDDO C C COMPUTE SLOPE AND INTERCEPT C C(2)=SPROD/SSDISS C(1)=AVDIST-C(2)*AVDISS C C CALCULATE FITTED VALUES C DO K=1,N DHAT(K)=C(1)+C(2)*DISS(K) ENDDO RETURN END SUBROUTINE LINREG SUBROUTINE MACOPY (A,MAXN1,N,M,B,MAXN2) C C COPY MATRIX A(N,M) TO B(N,M). C C CAN BE USED TO PACK AN ARRAY BY PASSING THE SAME ARRAY AS A AND B, C WITH MAXN2 SET TO N. C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION A(MAXN1,M), B(MAXN2,M) C DO J=1,M DO I=1,N B(I,J)=A(I,J) ENDDO ENDDO RETURN END SUBROUTINE MACOPY SUBROUTINE MAINIT (X,M,N,MAXM,CONST) C C INITIALIZES MATRIX X(M,N) WITH THE VALUE CONST. C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION X(MAXM,N), CONST C DO J=1,N DO I=1,M X(I,J)=CONST ENDDO ENDDO RETURN END SUBROUTINE MAINIT SUBROUTINE MAMAB (A,B,L,M,N,MAXL1,MAXM,C,MAXL2) C C MATRIX MULTIPLICATION C=A.B C C MATRIX A(L,M) is multiplied by B(M,N) to give C(L,N) C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION A(MAXL1,M), B(MAXM,N), C(MAXL2,N) C DO I=1,L DO J=1,N C(I,J)=0.0 DO K=1,M C(I,J)=C(I,J)+A(I,K)*B(K,J) ENDDO ENDDO ENDDO RETURN END SUBROUTINE MAMAB SUBROUTINE MAMAS (A,MAXL,L,M,S) C C MULTIPLY MATRIX A(L,M) BY THE SCALAR S C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION A(MAXL,M), S C DO I=1,L DO J=1,M A(I,J)=A(I,J)*S ENDDO ENDDO RETURN END SUBROUTINE MAMAS SUBROUTINE MAMATA (A,L,M,MAXL,B,MAXM) C C MATRIX MULTIPLICATION B=A'.A C C The transpose of matrix A(L,M) is multiplied A(L,M) to give B(M,M) C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION A(MAXL,M), B(MAXM,M) C C COMPUTE B C DO I=1,M DO J=1,I B(I,J)=0.0 DO K=1,L B(I,J)=B(I,J)+A(K,I)*A(K,J) ENDDO B(J,I)=B(I,J) ENDDO ENDDO RETURN END SUBROUTINE MAMATA SUBROUTINE MANORM (A,MAXL,L,M,IOP) C C NORMALIZE THE ROWS (IOP=1) OR COLUMNS (IOP=2) OF THE MATRIX A(L,M) C (I.E. ADJUST THE SUMS OF SQUARED ELEMENTS TO 1.0). C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION A(MAXL,M), SUMSQ, FACTOR, SMALL C SMALL=SQRT(EPSILON(SUMSQ)) C C NORMALIZE ROWS C IF (IOP.EQ.1) THEN DO I=1,L SUMSQ=0.0D0 DO J=1,M SUMSQ=SUMSQ+A(I,J)*A(I,J) ENDDO IF (SUMSQ.GT.SMALL) THEN FACTOR=1.0/SQRT(SUMSQ) DO J=1,M A(I,J)=A(I,J)*FACTOR ENDDO ENDIF ENDDO C C NORMALIZE COLUMNS C ELSE DO J=1,M SUMSQ=0.0D0 DO I=1,L SUMSQ=SUMSQ+A(I,J)*A(I,J) ENDDO IF (SUMSQ.GT.SMALL) THEN FACTOR=1.0/SQRT(SUMSQ) DO I=1,L A(I,J)=A(I,J)*FACTOR ENDDO ENDIF ENDDO ENDIF RETURN END SUBROUTINE MANORM SUBROUTINE MONREG (DISS,DIST,DHAT,IIDX,JIDX,IWORK,N,ITIES) C C PERFORMS KRUSKAL'S MONOTONE REGRESSION OF DIST ON DISS, PLACING THE C FITTED VALUES IN DHAT. C C ASSUMES THAT DISS HAS BEEN SORTED ASCENDING. C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C INTEGER IIDX(N), JIDX(N) INTEGER IWORK(N) DOUBLE PRECISION DISS(N), DIST(N), DHAT(N), DNEXT, TOLER, SUM, . DHATAV C---Tolerance used to test if dissimilarities are equal TOLER=SQRT(EPSILON(SUM)) C*********************************************************************** C C CREATE INITIAL PARTITION: C C PRE-PROCESS BLOCKS OF TIED DISS VALUES DEPENDING ON THE SELECTED C TIE TREATMENT (ITIES) C----------------------------------------------------------------------- J=0 DO I=1,N IF (I.LT.N) THEN DNEXT=DISS(I+1) ELSE DNEXT=DISS(I)+1.0 END IF IF (ABS(DNEXT-DISS(I)).GT.TOLER) THEN C---NTIE is the number of DISS values in the current group of tied values NTIE=I-J IF (NTIE.GT.1) THEN IF (ITIES.LE.1) THEN C---Primary tie treatment: sort DIST values within this tied group into C ascending order, permuting the index vectors accordingly. C Initialize fitted values, DHAT, to be equal to DIST and make each C value an intial block of size 1. CALL ASORT4 (DIST(J+1),NTIE,IIDX(J+1),JIDX(J+1)) DO K=J+1,I DHAT(K)=DIST(K) IWORK(K)=1 ENDDO ELSE C---Secondary tie treatment: set fitted value for all members of this C tied group to the average of the DIST values for the group. Make C the group of tied values an initial block equal in size to the C number of tied values. IF (NTIE.EQ.2) THEN SUM=DIST(J+1)+DIST(I) ELSE SUM=0.0 DO K=J+1,I SUM=SUM+DIST(K) ENDDO ENDIF DHAT(J+1)=SUM DHAT(I)=SUM IWORK(J+1)=NTIE IWORK(I)=NTIE ENDIF ELSE C---Initially, make each unique (not tied) value is DISS a block of C size 1. IWORK(I)=1 DHAT(I)=DIST(I) ENDIF J=I ENDIF ENDDO C*********************************************************************** C C NOW START THE MONOTONE REGRESSION PROCEDURE C C ICURR is the block we are currently examining. C C WE START BY LOOKING AT THE FIRST BLOCK. C----------------------------------------------------------------------- ICURR=1 C----------------------------------------------------------------------- C START OF PROCEDURE FOR THE CURRENT BLOCK. IT IS INITIALLY UP-ACTIVE, C AND NEITHER UP- NOR DOWN-SATISIFIED. C C UP-ACTIVE (IACTIV=1) means we are comparing DHAT for the current C block with DHAT for blocks to its right. C C DOWN-ACTIVE (IACTIV=0) means we are comparing DHAT for the current C block with DHAT for blocks to its left. C C UP-SATISFIED means that DHAT for the current block is less than DHAT C for the block to its right. C C DOWN-SATISFIED means that DHAT for the current block is greater than C DHAT for the block to its left. C C NSATIS will be 2 once a block is both UP- and DOWN-SATISFIED. C C----------------------------------------------------------------------- 25 IACTIV=1 NSATIS=0 C---Compute DHAT for the current block DHATAV=DHAT(ICURR)/IWORK(ICURR) C----------------------------------------------------------------------- C ACCORDING TO CURRENT ACTIVITY, CHECK WHETHER CURRENT BLOCK IS C UP-SATISFIED (IACTIV=1) OR DOWN-SATISIFED (IACTIV=0) C----------------------------------------------------------------------- 30 IF (IACTIV.EQ.0) THEN C----------------------------------------------------------------------- C CHECK WHETHER THIS BLOCK IS DOWN-SATISIFIED. IF NOT, MERGE. C----------------------------------------------------------------------- IF (ICURR.EQ.1) THEN C---If it's the first block, it is by definition down-satisfied NSATIS=NSATIS+1 ELSEIF (DHATAV.GT.DHAT(ICURR-1)/IWORK(ICURR-1)) THEN C---Current block is down-satisfied NSATIS=NSATIS+1 ELSE C---Current block is not down-satisfied, so merge it with the block to C its left and make the new merged block the current block ICNEW=ICURR-IWORK(ICURR-1) JCNEW=ICURR+IWORK(ICURR)-1 IWORK(ICNEW)=JCNEW-ICNEW+1 IWORK(JCNEW)=IWORK(ICNEW) DHAT(ICNEW)=DHAT(ICURR-1)+DHAT(ICURR) DHAT(JCNEW)=DHAT(ICNEW) ICURR=ICNEW DHATAV=DHAT(ICURR)/IWORK(ICURR) NSATIS=0 ENDIF ELSE C----------------------------------------------------------------------- C CHECK WHETHER THIS BLOCK IS UP-SATISIFIED. IF NOT, MERGE. C----------------------------------------------------------------------- C---Index of first member of the block to the right INEXT=ICURR+IWORK(ICURR) IF (INEXT.GT.N) THEN C---If current block is last block, it is, by definition up-satisified NSATIS=NSATIS+1 ELSEIF (DHATAV.LT.DHAT(INEXT)/IWORK(INEXT)) THEN C---Current block is up-satisfied NSATIS=NSATIS+1 ELSE C---Current block is not up-satisfied, so merge it with the block to C its right and make the new merged block the current block IWORK(ICURR)=IWORK(ICURR)+IWORK(INEXT) JCURR=ICURR+IWORK(ICURR)-1 IWORK(JCURR)=IWORK(ICURR) DHAT(ICURR)=DHAT(ICURR)+DHAT(INEXT) DHAT(JCURR)=DHAT(ICURR) DHATAV=DHAT(ICURR)/IWORK(ICURR) NSATIS=0 ENDIF ENDIF C----------------------------------------------------------------------- C TOGGLE ACTIVITY FOR THE CURRENT BLOCK. CHECK IF IT IS BOTH UP- AND C DOWN-SATISFIED. IF NOT, GO BACK AND KEEP TRYING. C----------------------------------------------------------------------- IACTIV=1-IACTIV IF (NSATIS.LT.2) GO TO 30 C----------------------------------------------------------------------- C ADVANCE TO THE NEXT BLOCK, CHECK IF FINISHED C----------------------------------------------------------------------- ICURR=ICURR+IWORK(ICURR) IF (ICURR.LE.N) GO TO 25 C*********************************************************************** C CHECKING AND MERGING OF BLOCKS IS COMPLETED. NOW PUT APPROPRIATE C AVERAGE VALUES IN ALL ELEMENTS OF DHAT C----------------------------------------------------------------------- ICURR=1 40 IF (IWORK(ICURR).GT.2) THEN DHATAV=DHAT(ICURR)/IWORK(ICURR) DO J=ICURR,ICURR+IWORK(ICURR)-1 DHAT(J)=DHATAV ENDDO ELSEIF (IWORK(ICURR).EQ.2) THEN DHAT(ICURR)=0.5*DHAT(ICURR) DHAT(ICURR+1)=DHAT(ICURR) ENDIF ICURR=ICURR+IWORK(ICURR) IF (ICURR.LT.N) GO TO 40 RETURN END SUBROUTINE MONREG SUBROUTINE NEWCON (X,GRAD,NOBJ,NDIM,MAXOBJ,STEP,SFGR) C C COMPUTES NEW CONFIGURATION, CHANGING EACH CO-ORDINATE ACCORDING TO C THE NEGATIVE GRADIENT. C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION X(MAXOBJ,NDIM), GRAD(MAXOBJ,NDIM), STEP, SFGR, . FACTOR C FACTOR=STEP/SFGR DO IDIM=1,NDIM DO IOBJ=1,NOBJ X(IOBJ,IDIM)=X(IOBJ,IDIM)+FACTOR*GRAD(IOBJ,IDIM) ENDDO ENDDO RETURN END SUBROUTINE NEWCON SUBROUTINE NRMCON (X,NOBJ,NDIM,MAXOBJ,SSFACT) C C NORMALIZES THE CURRENT CONFIGURATION IN X(NOBJ,NDIM). THE CENTROID C IS MOVED TO THE ZERO ORIGIN AND THE SUM OF SQUARES ADJUSTED SUCH C THAT THE RMS DISTANCE BETWEEN POINTS AND THE ORIGIN IS 1.0. C C ON RETURN, SSFACT CONTAINS THE SCALING FACTOR WHICH WAS USED. C C Written by Dr. Peter R. Minchin C Department of Biological Sciences C Southern Illinois University Edwardsville C PO Box 1651 C Edwardsville, IL 62026-1651, U.S.A. C Phone: +1-618-650-2975 FAX: +1-618-650-3174 C Email: pminchi@siue.edu C DOUBLE PRECISION X(MAXOBJ,NDIM), SSFACT, FN, FMEAN C C CENTER THE CONFIGURATION AND COMPUTE SCALING FACTOR C FN=DBLE(NOBJ) SSFACT=0.0D0 DO IDIM=1,NDIM FMEAN=0.0D0 DO IOBJ=1,NOBJ FMEAN=FMEAN+X(IOBJ,IDIM) ENDDO FMEAN=FMEAN/FN DO IOBJ=1,NOBJ X(IOBJ,IDIM)=X(IOBJ,IDIM)-FMEAN SSFACT=SSFACT+X(IOBJ,IDIM)**2 ENDDO ENDDO SSFACT=SQRT(FN/SSFACT) C C SCALE THE CONFIGURATION C CALL MAMAS (X,MAXOBJ,NOBJ,NDIM,SSFACT) RETURN END SUBROUTINE NRMCON vegan/src/vegdist.c0000644000175100001440000004007412600727026013777 0ustar hornikusers/* * Distance measures for community ecologists. The measures here were * recommended by Peter Minchin, since they have a good rank-order * relation with gradient distance. The standard distances are found * in standard R library mva in function dist (distance.c). * * The calling program defines the index by a number (internally and * factually). Extra care is needed to get the numbers right there * above when calling the code. * * Number "99" is an extra case: It is not for vegdist.R, but for * something simpler. * * (C) 2001-2005, Jari Oksanen. You are free to use this code if you * accept GPL2. * * Oct 2003: Added Morisita, Horn-Morisita, "Jaccard", and Mountford. * May 2005: Added Raup-Crick. */ /* Standard R headers */ #include #include #include #include /* Indices */ #define MANHATTAN 1 #define EUCLIDEAN 2 #define CANBERRA 3 #define BRAY 4 #define KULCZYNSKI 5 #define GOWER 6 #define MORISITA 7 #define HORN 8 #define MOUNTFORD 9 #define JACCARD 10 #define RAUP 11 #define MILLAR 12 #define CHAO 13 #define GOWERDZ 14 #define CAO 15 #define MAHALANOBIS 16 #define MATCHING 50 #define NOSHARED 99 /* Distance functions */ /* Manhattan distance: duplicates base R */ double veg_manhattan(double *x, int nr, int nc, int i1, int i2) { double dist; int count, j; dist = 0.0; count = 0; for (j=0; j 0 || x[i2] > 0) { dist += fabs( x[i1] - x[i2] ); count++; } } i1 += nr; i2 += nr; } if (count == 0) dist = NA_REAL; dist /= (double) count; return dist; } /* Euclidean distance: duplicates base R. If Mahalanobis * transformation was performred in the calling routine, this will * give Mahalanobis distances. */ double veg_euclidean(double *x, int nr, int nc, int i1, int i2) { double dist, dev; int count, j; count = 0; dist = 0.0; for (j=0; j 0.0) { numer = fabs(x[i1] - x[i2]); dist += numer/denom; } else { dist += R_PosInf; } } } i1 += nr; i2 += nr; } if (count == 0) return NA_REAL; dist /= (double)count; return dist; } /* Bray-Curtis and Jaccard indices: * * Jaccard = (2 * Bray)/(1 + Bray). If Jaccard is requested, Bray is * calculated in this function and it is left as the task of the * caller to translate this into Jaccard. Actually, Jaccard is * redundant, but since people ask for Jaccard, they get it. */ double veg_bray(double *x, int nr, int nc, int i1, int i2) { double dist, total; int count, j; total = 0.0; count = 0; dist = 0; for (j=0; j 0.0 && x[i2] > 0.0) sim++; if (x[i1] > 0) t1++; if (x[i2] > 0) t2++; count++; } i1 += nr; i2 += nr; } if (count == 0) return NA_REAL; if (t1 == 0 || t2 == 0) dist = NA_REAL; else if (sim == 0) dist = 0; else if (sim == t1 || sim == t2) dist = M_LN2; else { J = (double)(sim); A = (double)(t1); B = (double)(t2); dist = 2*J/(2*A*B - (A+B)*J); for (j = 0; j < MAXIT; j++) { oldist = dist; dist -= mount_fun(dist, J, A, B)/mount_der(dist, J, A, B); if(fabs(oldist - dist)/oldist < TOL || fabs(oldist - dist) < EPS) break; } } return 1 - dist/M_LN2; } #undef MAXIT #undef EPS #undef TOL /* Raup-Crick dissimilarity: R code supplied by * Michael.Bedward@environment.nsw.gov.au. * * Here his original comments: * * "Attached is a little function to calculate the probabilistic * Raup-Crick dissimilarity metric for presence-absence data. Rather * than the permutation procedure used in the original reference (Raup * & Crick 1979 Paleontology, as related by Legendre and Legendre in * Numerical Ecology), this function uses phyper() for a faster and * more precise calculcation. I subsequently found that the same * (obvious) idea is in the literature under a variety of other names * (or sometimes no name). * * Compared to other metrics for p/a data, Raup-Crick seems to be very * robust for small samples." * * This is a direct port from Bedward's R to C (Jari Oksanen, May 2005). */ double veg_raup(double *x, int nr, int nc, int i1, int i2) { double dist, J, A, B; int sim, t1, t2, j, count; sim = 0; t1 = 0; t2 = 0; count = 0; for (j = 0; j < nc; j++) { if (R_FINITE(x[i1]) && R_FINITE(x[i2])) { if (x[i1] > 0.0 && x[i2] > 0.0) sim++; if (x[i1] > 0) t1++; if (x[i2] > 0) t2++; count++; } i1 += nr; i2 += nr; } if (count == 0) return NA_REAL; J = (double) (sim - 1); A = (t1 < t2) ? (double) t1 : (double) t2; B = (t1 < t2) ? (double) t2 : (double) t1; dist = 1 - phyper(J, A, (double) count - A, B, 1, 0); return dist; } /* "Millar dissimilarity" is unpublished. I found this in the lecture * notes of Marti Anderson over the internet, and she attributes this * idea to her colleague Russell Millar. The index is basically * binomial deviance under H0 that species are equally common in the * two compared communities. This could be easily generalized over * to, say, Poisson case. */ double veg_millar(double *x, int nr, int nc, int i1, int i2) { double dist, t1, t2, nk, lognk; int count, j; count = 0; dist = 0; for (j=0; j 0) ? x[i1] * (log(x[i1]) - lognk) : 0; t2 = (x[i2] > 0) ? x[i2] * (log(x[i2]) - lognk) : 0; dist += (t1 + t2 + nk * M_LN2)/nk; count++; } } if (count==0) return NA_REAL; if (dist < 0) dist = 0; return dist; } /* Chao's index (Ecol. Lett. 8, 148-159; 2005) tries to take into * account the number of unseen shared species using Chao's method for * estimating the number of unseen species. June 2006. */ double veg_chao(double *x, int nr, int nc, int i1, int i2) { double ionce, itwice, jonce, jtwice, itot, jtot, ishare, jshare, ishar1, jshar1; double dist, U, V; int count, j; itot = 0; jtot = 0; ionce = 0; jonce = 0; itwice = 0; jtwice = 0; ishare = 0; jshare = 0; ishar1 = 0; jshar1 = 0; count = 0; for (j=0; j 0 && x[i2] > 0) { ishare += x[i1]; jshare += x[i2]; if (fabs(x[i2] - 1) < 0.01) { ishar1 += x[i1]; jonce += 1; } else if (fabs(x[i2] - 2) < 0.01) { jtwice += 1; } if (fabs(x[i1] - 1) < 0.01) { jshar1 += x[i2]; ionce += 1; } else if (fabs(x[i1] - 2) < 0.01) { itwice += 1; } } } i1 += nr; i2 += nr; } if (count==0) return NA_REAL; U = ishare/itot; if (ishar1 > 0) { if (jonce < 1) jonce = 1; /* Never true if got here? */ if (jtwice < 1) jtwice = 1; U += (jtot - 1)/jtot * jonce/jtwice/2.0 * ishar1/itot; } if (U > 1) U = 1; V = jshare/jtot; if (jshar1 > 0) { if (ionce < 1) ionce = 1; /* This never true? */ if (itwice < 1) itwice = 1; V += (itot - 1)/itot * ionce/itwice/2.0 * jshar1/jtot; } if (V > 1) V = 1; if (U <= 0 || V <= 0) dist = 1; else dist = 1 - U*V/(U + V - U*V); if (dist < 0) dist = 0; return dist; } /* veg_cao implements Cao index (CYd) of Cao Y, Williams WP, Bark AW: * Water Envir Res 69, 95-106; 1997. Anderson MJ & Thompson AA: Ecol * Appl 14, 1921-1935; 2004 use different but equal formulation. */ double veg_cao(double *x, int nr, int nc, int i1, int i2) { double dist, x1, x2, t1, t2; int count, j; count = 0; dist = 0; for (j=0; j 0 && x[i2] > 0) { dist = 0; break; } } i1 += nr; i2 += nr; } if (count == 0) return NA_REAL; return(dist); } /* Simple matching coefficient. This is not to be called from * vegdist, but must be called separately. */ double veg_matching(double *x, int nr, int nc, int i1, int i2) { double dist; int j, count, matches; matches = 0; count = 0; for (j = 0; j

u=:ML?/9c%|^Sx.~>9y/wfJvʊOUވriNNQVq}r1ݍ4% hAzRSw?0HVKsχBJ:T=¯>'&h>ZfŌ 3R22|s!3"Cո}{ڝ=rͬ3 ;sWs|d󈂟o7RJ]j y1 .i{q"3Gu?=4HշtJNZ%'[7W6O$nHN>}U`5 2).YpzQ"AfBi̱8d>բU<_ް;!)$'ی?KҘ%|ȏ @KT%0k2o= xk#,Q|A38d^rBDŊ1@-oGUsܛM{k]qZ&K_ v l@`s@jPlgt}CmFh;Dm)aA{ Rӗo|GBHgB|.OF/L"I$<+J-l5qSgъ9ęiN|-hT9RD: 7z?w995Kr[/WHYРaXŵ#aDV ^VD1`>gc,;ɊhO9:Ym sm*6Rmz&gPq~s2kA>U@jIN>Ǵ }VU'-l{/,W:&;. z푾GȸE2)Pm]OdH'y﹦s;_ky>?O1TYΎ鈐+띮5:;m-Klt%m7ɑ\?z7xΉW >H貇Ǵ^U"+?"2,f&Yx} fxC:oד~@;>7Ij sH8t@s%8 yiFL|O@÷;&\* hvFm;:7 xDLrYW\%@EJ(2r]&;d7C-߀uu:v -m!*@,7?=!|Ns1d/A4ƴ}\E:e1: e%l`bAuwޛ.GN/D#tq80r%̀OI)1\.F%}<6) zGvg*A>2HR00B*JP 4-[Ax!x6]+2tgh}_t{2:[y^/j{O+n2()n$G0xǻ{ᵝ 9ׂA& {6#rI~b2BbLztQ_)XMd+ux R [G԰钖3$d5GqILG kAw Hwv)< sDgK^ N!k,D@ Q4h,m͛rKpR׻ZNٮ %7IN剝"o~@Q]wwmԕ),Xg^EOr =`zoV b.i8m퍴SB-/K1g7IN㼺Tl U j4¦nBˮd!U?*'P^:6> %:9Z""QO=ֵ=w *}XĔmZFb;KR\Vȸb>,}+sQss8TmhrF82u:,qkO|-9_zy2Ʉ4ET"gz,k2<5_GeY6fK{3*kV. Jv[sZ68tAbBǤ|bfmݚYH {Ѽufj|We83GD&p3"}bA[ȏh Vo"q)r/ vC O]z_89ɾ? f|ͱ,e 7WSN)jRoFTKbĬ}rDeFGak> k*oZ*uԝW2>W%?&.gQv~Z[*̫51KXo</]:r`yogf̓#DzYov$Џ4JǛꓠa}i qWAjnO˘%[nBg>l>q(ֱyn:5%j3̫l+`:.,z]@2~d!z endstream endobj 478 0 obj << /Length1 1851 /Length2 13440 /Length3 0 /Length 14600 /Filter /FlateDecode >> stream xڍPҀ A] 6ABnA_ޢ ާ^URiHX:eVvA;V GBtq9e!4ʤ ʎ`;7{WO.CGA; xJ9:ym y ``p1p,e3 5=@xOaIÃZ4@w%*f[cEhـ\Rh:ZA<\W=v}uq[] JU' /c # XUY%V'` dofjgfY ukjr0,rtp!(' rZߗkv@`K?ڰtsb݀ ۼPY!vvv~N~a#O%|Vm@V?(>f@ o dA`V<_Ǐ^'lW̦g wUJJ:z|Xx,<NnQ3]ǿ|V}= 0 :@?nno:"Y7{? @^[Nu _wMu2 m[N4 7+;_r,hX55ɵ7{ ybg?%{}E\_GOu7 ey+|8^0XWk~+G?.&/IC|6H&_^W?O`Slkkfƴ/qnlB_ `6b_~=/'W_Zݿ0ke>+ /|ܯ;.Zx_Z/||M'X>8|@OҼPmmHm_QH2ARw\yы];w8/Mvzv?|Ӣ ̷}'qD]8w;; L'3g2+o*lND#s|V)Y#13ۡ@z.>~Lv.ogr)34h3eƁn^EI v Cӳ $BXg;s\DEΣtGf՘+Q9jާZ6A6}K&g2M#P}Wr]@V3O-[#F/!u0Dޏ5A/)/d5V Qe~91̡>u#'?Ģivֹ֖_$]hjU?~ v u^V[]<2nSWb+/EWO H19`I@ Za9Tyopᅱ Uv읪g&A!f7`ߟs'y5P y \l-DRgF70㏨+ߏک|e[,H@eNɦABEB£ePkԸ:% PܚݓŠRiME-rtů Xe0Pٵ^Cvq2T+e5[':mg×5I8tQ}"+]3-[KOO_1qJeNSl\L[”eY_~(6| <@nz2O9JRfzgqIqc~_0zURـGdo*'AUE?J5es&LJSiCL& Qkb"*$Mn9۪ĕlg}!Mʐf b4Y'@ "K죹݋>ymY2iTX_,zc"x:̈u/fAhg48? sP2X>^TlgSl/yPЫ2@!c:@N t:u~wOἿHD]PYʧt. \4diþٶ"Yx@76%#6%{<{qE@>U(L?W[qꌥ${!wuIqn5M+MyK l0'}Ln̹@[d՛5X{Vp$L#aď[UcQRLצjq웷,bNJގҸ/LNF߷JJ.: PnuA.RG T:ft CDb}"oJ_O'& -Gp Eb gh "]SK9*<8$h#4lTGPxVE_ys(h5hlKy)NFdY(\Sf_?T7hp[Rꯌ )G"'YmVB#u3=KW+*\9eJ\ڼm)0Wa96ֶ̯+圗+d)1Ѳ.R:\lt{;1za*Y=:eY 3º0vRQD#}JB(jNoGӈ<rs ?J;0ե%@6ƊnơZ8 2 ]({޿a1!!DZcDT+#NLWp v}c:ÓU4!2rRNߥ'f>gpBi'C[2r/ p~;RcnL_{_l:/Bi jFț[{^ ͏,3A^<$ LX-r*FAa.im/{.O2$нB4-%ѩfdeQP˗w ^FwH[P܏컻P8 q~29$qԖŃ@߸i*QdcIrCUs쵉o?w0n^S(q iCeW$8`jm߫&Ŭv$ GKџ΁3ֻ؊}iRuinu$M!G9l^@,-y5)?~ >;t*vNon bޡu>0H4' 8mqs~j+3Q$]3]012jWyxWhr/l䋴ل+c<[Lf0PO1_D7_9fc̛`Х FdMa;+o,v] N^ MQog:MK%(]=of~#䑇0@wSY]Pm}kܣ]ܶYdeD)Y<ԣGe!OvRO%a8#z`dLآ';-ܜ<@ ?=y [=(6)< xO s-*#f.nnYmqAFDcC&Fr1'1c=?i>9/=%䠃ֺ=ުG̹Σ-k0fzb]wdg @vcu].# LÅǖc5T8qf:qEØ0,zLs3׉i-Y@5Dr㇈otb 'NQ=r1ißPIND1/Mȳ'{P|B:a);^1pEGS$dnDyh)mZbz'?ٷHI  u]Jf'K@Pc6t022GsXuM]L,:5)GVKD4 o`7Z:Q::oRDj {o m<5DAiD+ǽL/f?q+:XiU=g1Ib{k[w6Y|s7_{-f:١XfqP!2盒Yեރ3E$5D +;y9S”k^{L %9 6z)[>XD"GC1tU~MԙoVQDv| 83gGt (=$RRל foE\"*VwQ: ְ۩i.,&uvi(jaFIS[Vd1z;8iֺ&Dr^jU$8>ӊcg, pZ)ʦNr87F$]bѡ^HQErThBȕԤ@-oUV~*Q U&OL`E=3N{XX7C" /~k`o'h[r-:JXHK^;m|ҌpZ2XE9J"& 8@\C2 @jjKJõ));EPwf k]y#IHz8+\'z{T~j}_՟GtZ\g;d[gB':8;~qȪ!jf O0҇-*nH][^Io#$VĩYUktx$8qy7`~~&}#ywoBT).7>}_i9>OX{{%c[7ΑIvlMEV>WZU̬ZJLC,vA+K N[&_3L{ʤ@Pן 9Ե"?nrPmTڼj}2ӟRZQ=+̿zWK FXo݆^ Yn#⥎@a*L+!pol ;GH۶/z~5 U(OT vD[&y7%uvF6R0lܮS,H+ ^PYa?NRf]K92pfЬ maE*q|Z@9{H'vu>Z`wEѷrqK[>BR@{ =6sb8o|\ 01\ ˘D4j/3MEQ(d P. _@y;<&q6+Tu8aŅޑƹh[ w .IY[0LW%4QXsSLr۳}ӀeU2ɱGɉ2 ~fN7"f&lzT`040jTִ^q%1@-,J U*-QiNFz{uDSsʑj\jQKm!up絛"R&&UXf%KXtey(Ar+$tO%[ڣ)EݧD6};xG6@p: B69-ȏ M$nԢQP|qct[ynO/ >5E1gd;,zUNa@NBj#`& p%x mޤ89ef_oelAL:Qk+ R3E3^:?=[z175}y$2:$+w(<=M.7F4p˜7 *hW?^mϸtw4D/e1C0 }L?0e!fMDB%$;s ӊW]bi?!8L7 0Y`+ i~p 4mq˿vT`qWS՞6Y4|;?5,a_a3G6g.'GrG(q;0#n\i47i1TbFw/G2_47礯`(|0׾,k 3tuFk߳Ģ^@ }P],^BLZNiH'dd2 tj$|6MfRH?Q#Yp#}V}?|=D@*/>۪L!o}JBf K%R憌Y~5^%.Fa~MͫSu:됞?$$R]q Ds&&Ekv `Um"SkY_L'& #xU>4M4zB"D]7ܽVE08.k2^JƮHB"ĺ vÂ(ZPGU3OjcBF MW%<+ 2Q UhzQGW%~7S=JQ\CX_譟,|hIQ}(={DS2<ڐ]6ΏH>˰e{B4d&=-'8}]+eGง3<WWr6GʧQ5x '*[H :O @fT :5wQcd;UdOs ˃IjGDF㸹? Qokku}|zlMu4w%{M2R K6hDk/6M2,iZzFLs5JvFD~*9)JY*j V$; zI3[iD ;8d ƳlWEs92VdfuUWoiwT< 8uZoa>–'~艦+7s (혢FϘd /בw(Owf{f=t-#his g%R=-[| M >a=qH*|p|a++JT/MIѨխВ*L=uq)ʨiNۙQWB#2kYy!5梐<zo2*F]_q#8fvMmvNr.վ[FrH)u rQFycۜFv1J iߧ#Ƣrnp[: ]\bP-^:x75YApE GKc}$}%׮*_y3><:rEgtrwعpӍA4S/.lr~=6lRZMKo*enSY6fgܖW2YL&lDYD52)84F>{鉶.ul+"LVwcډ2U1c_t4o*} 5v!_pdYl5+N>߰ޣ0nCLsi >IZ콹r}1>FQaV>Ey&97 CDuO`{ M.0sB<5QTi"0.6w4OՂcFdj7uN9ã {&#f ^ {gu ˃O}6#ۙ98FƄvu^L 0r5lQBS",~N3#vNt#%}+|qVq ˇ$qCZDx>otqjdZbELX$yEvєN#'CwTʏtKaMP$}ڻ"yF<:odYgk t#b3j. - >*:tBTS8DivL>@W&?S gg7Q I` Xԅ,`ڻe|1 jɎkQ\FHG˛^)&2opߛ eJr'sf0'QߒDZp+hKxkOm5t3CvWA^Enn?H<$ze9n?Kʋ#V*\:'"tC#!/4ÎwЊC%pL}QY FI[31ST:FL g;+mEoj.1!W9> xy\ͣ\ˀTb#59+& ~U+MvkN?cH;s?H3\;Ϣ\p2 eɳMI>4vqYRGC^/Ӳ}4R0%@N5|Zx}1liP/-."#imvLjUgKZun pL%kf&+lZڌOP7 'V.r0 : [EP_0+7x]Fs=mSw D FkW1!H86J,3A(]7W!>YKjM $_KٛVD{ a9c>nRp Y35I8! dIuY_5}O%$'=ˍ >BY\R}AܤAe):Ҿ^oxj&>coݎi>@Z{$zÅ?1^-rR@Ӆ`6Py7 iU19*!0%3W$="P Y#MpP3?K~d̾]+DQݚfbEWPF'0N= Nb$қ ֜qk3{  j+\vr!;FPl;5 K=thkR3v=&Ϋ4c I$[uW{ ::=G5KL*œp+@{jqX]#8M*ٟLy/$g.FRq,Ihōئe3tœ;T4A`$ڛ:@=a=9JIVۛ)XÕ} ?ԱȔu?0fB^19[Y* 9]l*aw6^Xk΋\xǢÄx*NPz9m)Z+u}wG j6 o?ddZm 3 #Sܣy| %[^ޗ:Kod7`akGF10NGN` Do¢E"!^8CbUY,Il`@J}T^}/EixD'xߚeC1yQtq,+m[S3PDal蝅*/I/VPYdw.3S/D5u6e “e'g@XatXgwӈ0x 7ʜk_쉻0f1gu\&zoKn_+_~& 3/nVA3zh ol;׺[EuF cz.u25nb`xItxa$O;iacv4#1QjrzD6.+LOcGМУlzûxA @HOۣ˟~0Ʉ>X= (s^ETbBmN"l\"7d֎]ab@)w3K6,Bfo|bk9Kc$&<^h. CvHJ!ͤA;KV_<Ȗּo)78?q,ƔiYt_=@nVJ5@~@:s111]{^v[SޱN/<Ǫn]%> T26mڏeߧ{f4SfBN.oW(dFs75ܪqՊ!0x/uFhԁpRO, O#i=R=<2io?*~¾vzjtKɺ*uq90<(xLq?q!Ұ ԔA v5޾{|%#ݟH~4_ΕO|C'=˖KG_]Sc/vӽ YBunKYc뾉Ys^÷ꠃϞu~f#wKh8<4er}~$gݹi+]%TKr-DN Xb lt?yΟO!/_P3e~LQseApUO9hOLx8[NjN˅RQ/':(b$2|X@d)oYd@ފQ6YZ/Behݺ҃2aekCPNm m7qaH[66줻L}^0^Km ?T(qi2T 1.ϒ4˹mwVo?GB.6u8}bHIJMDKQuʴ&t3S O%_ q_K4 @ R~Nj(eneiTj7d&vʉoF8fW rx_Ἂ);0Kۯ(8)ޕ#ZO;_܊轾E hY4$.OK(ҹ$_ aY4f{f. my;txaSeؤ8{CW!XRi5"jBCZZU[9$%<pͬ[Wp/Pa>}ڝAK o|OmV()!"}Dø×.E- s= u?bTBОNТ4aYpwgy`y`w`ttS$F 1,xNY2΂ ):c;"i`=A"ݒ\n70޶BNy1W5>B nۏ--n(8s:bx fjlF;#BnmVui/ O՜M9paEb+]+<^&n+ Łj1z{&" njz %kZ7,ʬXv w(vo'X-{~J>e!/MAd)?ᾁE*m@`~%1eGAyǒ:mjCv!h5,oIN3WM[Chf#7Τw($a ׆@}GB(}d9Q>j6ߪH5ÓҘw8HOa"m-6)SԄKٖl#>A5mJGеzfy3.2c!j`JJ ^Cd63hܿq&0]C&Y:əim{BpwHFHCvVe|mE =%"wMZjġ|?U< Uð4xS!PmWS0SNAYEr},%B򴕿6Bg~JTvY w,ar81e endstream endobj 480 0 obj << /Length1 1681 /Length2 10803 /Length3 0 /Length 11879 /Filter /FlateDecode >> stream xڍPZ-<4XCpwwww4  8 \'[px;3^{m}(TE-f@)= `aagbaaCAl#SjA`{?N@SȋMBT\lV.>Vn> ￈`'>+)N +kKИXyy @ES5-@lB<+5djve 53h=2@hLȔ ku% x1؂́/!.@'Ku@h7Yo2;?ѿ 6579{ [ @YJ a[&:_M]MAf/Z7HL_&g>gs'ęd{Fi^YBlg8#O49w.=_doa{ fM{ PV΋ ?6+ :̿ hx8r6vXY_~M] O#dVV0Z ܿ"?VϿ(lo_W̬'Nv^F6vv';7 YTLAtG%w/]Q?A \J4 ' ,WoGR.i&v [/u"e {q BL_vA r-T@s뿴Yق*`g?2z8H/ew9qrLL=Y^ b}F _"03ك!/!|`'W`Vm rMxfAf߽2[Y?KZ? ; `__ HR|)0;_ 9̐×#eez?K[l/t?Ks'G鯕y^@ h0 6 vS-JƸ5*8EJrD[K4iҦ$͕"ASbXsj˽qV 8nXhm/1ȶV{&v9\Gt77n=?CgTQJ'c4 >OSe#@_acL_{&G9a/[cp;\A@AO {5Oo&%XctDoQk{}JJfLsPr ygAlY1[rû&WءÔzk_ :2bAR7_)⮾0@m1B2 Xxq7#FTa8V$i@jcwSɐS0;P*杈JCŰNҼ{ wV5w BpzYa~ )DJWؑ2̋z5}ya и#CT1(]3׿Т"$c[;lWүȤ{<RK/5PR lxX^(xU?Lԝ`X7uXoSocн*&m* = *~r^[ ӫY&ј!e>S Stv3ۺ)BKhLN[oc,X$:Dvr ڬƙn>­ TOe2Z^NjZEҐh'v8.pq&m=VJW7[W[tI^Y=rl =(TK6OMM6MΕKO[~Ċ~+ZϋT>r;pCˤMpv'goe}ӇO &/~Ll4\[ G+4dD&=+P9qWrmp[Frz"s`yF&7?z¯6ܝ ܍7CPo5ƥ\6&B$'E&X ?H '3f%ew9#eGбZ]uq04mTs{0ܟ`%ڣh`ZK;tԥn/ 2ichA5ލucEye7ˑ5 ˌh0r6di?*akꐲ!^tFLBCUqfݭI}[A#|64AQ66ڱCr-U/6S i;zcԙrWrL[5!mp3ϹYb':O57<)>4 ߄H9Gmuf~yᵚZFx8Q#Kѣuzb;KiEk>hSo3A=J0:k&0gP-$p9kY]+19œ02!IFK#FƐߘB̔\SQbSTgfSC2Yf<1Չ{'h Ks~ohZZ6T0٤r#] Ocl9I37o=Pf|ڎd~<݂8h.5k#.T e2@۟_1[G?\w`- H5 .&q_E+emU>Q^||LiBuHL/$~owe|!0nI1w!22ņ-'ِٲ#C/&rB.O:^9<I/0mV{̰0L#_d6v P=2q_&K&05~ȇ7y&VgEvEhyQX2-}Ty !obPW(ܗ= 9De'Ͼݟ$hy>fBLSF *+ ^ pzU)8`v_kRZ}?|.xj{vjq{,͙\w]Z380o$Tδ%+9crs6|`rI3t )/_kvϻ$>b)ݧi_ rktE,noTOeN)^+{B,^xZB-IUrA}^ƌƠzZ]E+@$@+w'z=yl4.ݮ~'o $A? vgEiY½Y|ڗ&w0BYt/> ՄIYiSI{#⯼~I 3uج2H%SgԠ; ˌЅ2VExUu4LE]e%Q490:I3UZ[b6(.83akZaf1זAYO!z`uX=[YW)(p|VYm@\;m_u-< ]pqdP1ͦ SB{Z{ܨw#-*xXgMjOIIͲ Y 6rFx~He,7ˠ"#V"`粒 c6%oƅ#^lN To{GB|ִ)w6w!{\<] bÊz@u}&N?:ve>|\l2|ƪn KqbB[Uq5у?{ܞire8.%[4,[& rIY&S8L ec{_ў;âQS!*"$86HRw0乥hl +8{ Zv|-H]QEcݕA,q3ġ<Ϳj٢-ʈ#7 ͜=LEJӄ8a8]VH4*dqyupߌy=|a vs*I["UʲMc^FpN#hyäwXrg7sSuY%9o = ߫ Gf}S4I);UAVJ1PHX|Ȝ+Up@%YAM:#e~!s TkD7ԥqT+km&\jX MJ#aQT/[Q3IdrUD7Q kZ~q:"G 1 NN` kXQ#BRc$z2 r/WWб;9AVi-yJG}SlVتe}teo{ڦESOTIUރ5 bL!*}ixhP-n*ó$8<=)%}A[\H4UB2 r10#BpkVҙZʼn] ߜ 鑰To0T<;Љ!~JO/YQc)]U%q筝ꎖ>R۴M@uy::m)ำT8E/>y9ec08V9E-O:ED<6ZYt⛓MܸbO:ա9- :[#folJaZ]{?u 2]ֺX^n#Q")lq)=KEp>UC5OSFK x8יִw7S օ-%_عW2+iZ*w=#i5;D lanU̦xL z7o T[,` y$5 W I@2v)lB_9< B$Yk-)Kq^Hf0Uns36eg3vLe^~5զɳg*ec`u` ,"wo/}آ TEiCu>]հa429̼I|; D}Br*L+s31#>kk+&i9㱊fHzV4/5__HN^G!l` = "íq wEoVa(%vh Y=ID 0ʣ~_kG"Co[nrb\GNºWtdP-9 &=3zܭ#ERkyjK]>dqt8mEVupoܩצzd8>]6 iQW␠vѭ"}σnȐLb$wJ'tU܆Dן6 c,bTH\QĔezI=b x%{L&6XՇկt-b8KR>cj.if* ;V9=eD9AxG]B# 9sS7HiM͙71 Wb6q@3- !0lzB:qm\k72|RzkRc"g,VFbyl *wvv';fE)^f` m `p#ی9{|LwZ#0i] 6,XvVˠ!hVê?*FxU&S"gAU1b8%"$k4r y0lTIzi;..Z;/}r35C[=A h0My}7 šmsNR|U5M){Q%R|=x,AWr?ZQa^0)~/;šȯ|] 9~h3S@~Ų3}>i>PL@ zqws2Le,2 ~}yY k`*xl!P;kvrZ& l6JX|6@_Frz?KGَf-/I׌>p;3e+?z7Fuzpɉt˱WiM¢'Vm=4'B鋨5] 2If]rKvqotǔ\+U= RшVD+i>%5Saj2(&8x١GtDo‡ 96=8g~=p9E*?,q4~Wn0壔GlE;)2/I8E6qʯucXV]7b|&sL=@cq] WR9i~S.9gU4A4\S{9*̻E[ 's7XQ3y>D-՞\JO +=fwTIoג-j-9!*fJdѰ3}Oas+h|x6zhhF[d}'Biq_^+CΆӞ`uA  GAWo}#"cE$ɾ$dow6y<oi3Mp2eb^ LYZ6b0MjBY-ܿIg~W_vgpDјk%L"V9[OiUgC?I#ڴ6l4]']N,"Q߶S 3Zd<[uw\jslU:ޞsNc}EQ֖ W߱moB&;Eiљb4KٜN@JoiVp5Z~4E97v DM8h' sŬ12? E\Z&\fՖUDG>9w)A1]Y{-C_׈x:[)_:Sdiо\q>I3ߎIݵy%C`M|nyq#[yョI8EFXBקig&*}ۈ bqek,b55ap kJ+Dj7_pBQM\nĦS( #ˍ\#s}xexo5F;{=4df:ʄ-Ѫ:E*C[o{^lGs.6y ]7V*-RO{F|lOcka`+w_|C%/.Zr2;, *\9`6+S)QȯlrA{WcJi՘^EP:|I+m.P?JT0u)飣OO}&x_€.R'b'7d i_xsF//cK?|ET) H*d!kaSxA<ϧ2۵[ ?Gz %I4|V 7)edF7l&ΞJTcث9%0CKweئ ёlkΧxߢ+tLND {m|mED_ytS\307/W93}^BkwQ+qϖ*y6:OׇߖDRxԾ{~X7 .gFuPg1G'<&Sy;G^ \{G,`%?B@Έ!.E8ޢ\a/H٪qOiJGϻ/̵ Z7OT<bIa81yc(a*@9h{(NGyhN|67*lAi&K>H2VȼT@d: TGp>ɭ'cwyZEVnx7~CV#FF%DClu*%VَP }#V %â]^]3/ȼ>BMB{3Z`8 xT/.G(? 5 euDQڒ5u@!TJL@:DuM)Vp6&t19zD^T_<\2At^_۹!AT@hY/vxkT #-Ǝ=X1 vTPXt/!r7jݡ0;P7.M򾦆ph!7}1-gf=~0ĹWEeHfx) ԕќ=}km'ʪ(VلEw*쫼Ra z X;}h-3(*pa6?~Su ېA!G`E6~] 1%pjqs\N{{\6jtX6_2H#[;A A f 'c |2E&' M>𓕁>LdT cCT%gǎ[N뙟]fHyyW D {*W"4}Ve,,c,y QvKCvc5ё.,"BH8T}#:)\9puVIg]#/6CP;Y -AհeJpqSn W|L?8;r6u[`0ѵ-b'\E,eOF-rTn5 lGI<'O8V; T'ѮĖzd[O>pkX^BT.!O撰~S!7rR̖ݸRmޮ6\h[+ L,UĐ"S] mZ_.?m24Jډ%['Ih'=p.tnHF ↉ͬV-Ttګ34}sw$4 3%ʹ xÏRJhNT8 R+asaCR%6-'/w:+IQ;S|^mZ1^oe@ч{w ,S*B8־5)%^Q]DC$s$&,> z_^S\K%0#H}䪲s̖A F4sөa JK!c8 Q/Wx۸bK}\H˺uǽC٤ŕr$8^0'xYDUnAxOzHfzk4>u!{x-KxtTAF341&L5NeO e4R‹&@suSwhP?cY_oIE ;ުY=}t 4h9`ܑaLDj+<\6w5D \}uz;ˈ+2څԒJ]!A&Rk\I7C[(S$9mHzp^eM*K KqZ]~>81Ӗ"j;FpayOΩ,8fEW1\ztG_ǣE)+SX< Z/ |wUYcB_my[9@K(2klRe#54.pj{'ӡ-Qz? bF-K!T kK|Hn}T; [GG 4![@)ws~SW$UfAc_1 V]\,YHvh,h*rA4}MY*fx/9T &O.kE^0gJE89xB;*h㯀/xDcKҵ=* t@yO&p4]=K iRw@6+YqL^UgCD0k(Pu=$9~+ ˫mWxT= I݃ͭ8}JiV#~/vЫR[e5Z8s)KQֶp8 vfcb ҊRKr1 8x ־*(DUڡۼ[|ɽO^ NbVnڭN)uѺ]̦v|%L8SC~3eM}ʃn$ tbk+iZ9UоaNrWs:9Ļ®npʶH ܮ ^ Z9OBF5z4._+g1)7j3,ڠ!봇4(\'1G,`)Wj?i.9{lRI]p+Nb+޿chfOj^m3wb/vi1~dt* endstream endobj 482 0 obj << /Length1 2448 /Length2 10620 /Length3 0 /Length 12026 /Filter /FlateDecode >> stream xڍT .LHt3t7tw# 0)- "twJwtq}6kݻXk mvI G3 ;7@ZUGGŃv#FgA`G? ! L&t٩::\ܼnnA..:BD2@7@3H;:yBV.0d d íU5hv4\5_NYY%ݗWNJ`%IS w&On`K ss>/[_j5lle]]`;mdUA`WUt@6r`[ G(3t2=7}K#:;Z/~zsֈ ;D _ ppt`,!*- 8 S 8e0lE\NGTxDNG`T,#EP "h<"XG`E0`j!x~a+>Ò3{D0ۂ`o KG9_?6c?f{8-GXDwvУ GXn`?8~]!8LS5 ee`-yl:77Gf~s|L5G5 Vstw6XN _2`qs&q~udaG05쑁7Q~97(,7j,DaOTNk菱jwqw#y{a@X1y ck_ 3_@ 9씣hMEpe$;VI),ۦf/ɶȫ%]Z[".W>"DUMHfl>#xϯw*<ʭ/My,O%ƙٜ'?nˋ1֕\[ѢH=ڏ۾J_+d/`9)~O S63uȒܼg 'h,Rό^"#4Ga}5;CT `c?U GNUȏ+DX0'3IDENUQ]~C0*8EM4. 8c~=K^MG8-75fR`7ƈ4uFLM\u-"}!#Ϊ2 CZ5mpIYA=L|99 ]  i{P틄)ݱϰ`5&a-6K$ Oj\G Ytb!AjVPQF}EPD\g]5ַ@ @HWr}D]C@N,=v, !5k4NR5m{$i%-[814ˑ,$e P2ˇ_x?,Y~UH'Ϻqld4B(\BZ.WSxMU7>uڋ~ %XAJc$_[l,wOu=К1ش}z& D=sHÚ[du'&pb|P^;FBp[^gܿ >_OEf+^0Ǜ;W BVP7m+LDk`.:jsZ4S@j+y^<Ckx1N͌w5, 9vqWa84lߑ{*|y7$/co B6zk{5eڀ@80<ʗDtE?M["FMRR+.+"8 tO3Zꦟq_o;'*5Wۉbh{㤗 -9Cv4-aoU2%KHE-J,ި5khbBp]Y^E:Oq mfd6<HBP[wM0sIG$h/3kŶëU5sk_;5;B"twr vge4{EC3E?k&MȨϡ@wڗde 4h6ҼKRj}4ܑgV16 SͧքI8ͨA Fhjnq‡5&=\(][X8Qgb:&ܥ:_gHDUN)X90'ٿ X/PM<E@xxiϥVrƑ,Yz=l=^]'G[L̆a$:Ngxlo.2 r:Zqս$%#Ro[z>)pجEHZLjU EVh1IXr_joϱ5:9^.$COL/+vC+RjgXVx+0rmܸ Q&dƽg+WŔ`Ս^ӓ ,T[aɦ3y y ]w^)܃ }fPV2eiw"J_P&DC Cc aM-8_r)\ ̳a6m8vf2QU}R.Dl iHZ ^uZG |^D}ab-}{03lNU%=QJ\$0X~_ݶX5ٽ[yM@Fh D =$a$yg~Ыtœ1aIP&u }^:"ҋh;,𴲑9&#h]2?żɦczJlc%2WOHܼB"}TГO7a7)zQqޡG>* K5fLdgF!XʅwrUح&M52:a6y48rѺtO^wpM{XV^J(L݅|bhkم*ф:u ڌo*T,rD"Q{3%D2` EHt7!lM{ oq[C3-r=컣*FݒI[N4Vu؃l-DʿIcZ}Bk=D{`>8YQ8|iF~ݸ/yw;W&_7=N}Iʥa͌%X%+zߵu]%.Tδj"eرGՎ=!/FT`zMGxw#O5N1OU!5Ey]?<ԇh8("U'@:{n3iB?cy=[F[H'UY*Cȉ=IElVeJGr+:rW> }֔* 6CFa] wb'Ak,=KF<ls,yz&RO XiQu%wCd$^ _5eYokfQ!N`divK$'t<7:_ٰ4_rXH~QR)YPOAJ7x>F71™aPtaA^i9< []%(_lO#*< *cd+rb;u\/OMi,5#(5:.߯,,^M-v}5'%:vvXC1}=iw@9}vdy:Q#9cm:v)(膥[䛦\Sg:ǣ|&Ir!фe|1JpKqX-8(:!SĴC'h[IN09ή)C$Dߝ|OD1MKo$8"HVg]YO2]:7;N& %bVŴJ49@A;P$CaF+t n$X z@ 4#f:IW]j@F@R gV(t_&:8˺ |/UokI >VQ c;o d[ ?lF.kB=7Cꆄ8Ji$."^$&>"]p\Ӥ 691e3xm"{  of3+,##l/-C&ߦB^ mu|:w].t4)`J.V5eqGf_2n])Yg8Pc ol$lOT6P$?B}g("gg^ҥO(Xy~8onԜrsZJ[8٣Vs>ç[yL&x&$ؑ:4#ۀUH6D[283+ی'gRw*0}3הR+D]EɮxFl`[zPVelɂ,0`tbvR5pK2c/ ~rWT7/O{m $VF4.ܯsO `Sl:OMThS L+qAý+^c h+վ^ 7p㘚wZ2+9H:|G4*.sE<&+n"nS>Vu̾R|*\@?~]&'I~B 6+;='~ WVI};ot КDKDhYuġ'CeMjnw&6⭇AAim#v|!Jw\2V7{oZ->aOU*!ӺD d18,>J3U<L]DY+P(J]+z4[ eWK(. 'm]_~1$3S=ϧ!e =|6.(\9:O03Z2s%S`~3(b߷$Wȴ#NohϢp4k2թKeEdh\K($C?iK}M _> )U ?GeĂ4u@>0 K(L@?SI90<3Sa]"J|l3fA҂/e𯗌I_\T"]/Mޛ] msw#i/(anӰ k'+{$7犯Ѕc.e˄!pQMpy<^OG G[aT3oUC;4)XA_3h^[&SR=QHZ5ƴ9z"c$"̦h +`Zb[Y͟g&;,?:𡰛,֋ 0:"hTM5М:}'}+o6nvj_9פ|\"\ih!.k~dG T,nawp)`qʷ @":>3c?1F3OM {>?A^%Ӈ]:axFAxwcs;M$TVJ'c㜮wv bmSFF!DEuGaQ?PWK,@;MFS;E+w/ZAwDom5ng@Ңx9,kFL?\2gݟ6ԂINӚvdH#ieeg%d_weD\ssDJD M.jW#FOL V0,aTK(:ӻ+4!#; _ث[8yT{J\ ϕOHrwτ&?=1\ >:olUF!U?*N_M?+kE nlL]e|kNiڴnQ54E*S hwGǘ/͢\Cx!,bʜs&@e'"Nq85z2q5^BFu)!~4ͽЍ(fƂK՜r:1vTWze7xM%w?^*msdxN*-J*:88с᷋'jgH_od}?ֿm(JR4+5`U7];A$pRJ)!s1FryHG-m8 Z9w\OC& nD?} G2do;v;gH0s1p$O;:,2c4[3j \c*%Iڹq'n1/ k3RW2-Oe,*'VHœZKnMPwߢUrMePZ  =^\>q~ǙelMX9+IQ%$/J\6GDstQBLp56>{u L< R$«T \V"^Lj2^,VKG]$=:"vӞti5a"7B쯮gDdžu>?чŘ"Wr&l2G6D' y[3lK 62fwQ+A Q򞼒F6i2ԒlǴOQץFxx~F%)@vݘO gm= Y Ӊ A0I'?5+y+Z4Qwخ,v؉~TF8IaI`@0zI7~Bl,7.: - 4U!X 9v59WJW z(QmGw^ooP|P/GKgV55q[ZrT B * :8+jwS͋Rҕk8iG#/zX·[ eZ0}`y/=) 1C5H!C2i~tRd2JXǗi뚞 .0k5kjqPK#4Xލ6s5oSU_L l0pY*NEL۵UaYC1Yge/>TWιi':$e&RXI7Oqay:.ށ~G>O 9ny(Vu(gXo,z:#qv$D}E~xڇ$zȭ3u3Ԃ ӍQi1Q+s$u2\zʃi3\m[*9;\1:8- ^p' "Хƿ{!_ռb WrQݨDӔ"릃r#f 38^֣3n[ۀ, "5Z#qZGnʶQ7dtAaE~د3aW(o{=fXY7ހx~`M[]뵣D PIV} H<;"blmG?fA |ݗB]ϾCew咚\31m?h{*E7]?iC\{7o#'F9GNZ(]ψz>%Rhp^iVTI/._ glG$EԙF}\= їqY]xf7߰NWuŹBr=%NE={ڠs3bGUM7%LdEG6(FB XPܑxe؜ڄiTfߦ zrиw(ZG i߄*AEOg5^w|/Zpn1""vg%p(.Tu_uܯ@`OWU̯0ZX"*톥t?ccR@̀%a]LYԼTnlȖ2R;7V3f"E1g<,}E Ha;V'=[Y4>٧{A6!;q%z!Gֻ5es﹘1ZRf>W| _#:u=x1Ŭ^<O%3I %J8qܬ {ŷֆ mY4~zg$ V6_r[Imu3P ASN+kE;UJH*M ԥ\2a܌>{|?yi:"זau GMg'~!dwęa'iK{e΅ &l<3?\ ;^gAя;u-S@jDdPcIaҾ+%m)|BA5-%bZy JeaNbe\cu6 YA S"u!!vЀ7#]=k0g1]讆JWN%/՜+DE&"R&rp4m91~%{a<Pl<ݙ̋y4Ryۢ~*Ug khF1B:{@H48=P olܵwB~JkMkqO/#ۜLdTֺ Du{X`9˧Ņ[F>H k已(F%TejuvsiE(R!P<.#'W~SA c`V]Eܑ`c&Tȇ endstream endobj 484 0 obj << /Length1 1322 /Length2 6533 /Length3 0 /Length 7441 /Filter /FlateDecode >> stream xڍtTm.! %5HСtH33034(1ttw%HK !9kz}nR lj8ZHT()@0(Fe C;Ce'zE`!P0ƦF"-wg8@TJNTZ"r h!P12 w@ J ]H-.77ڂ - Gh0%@ 2}'什p$'H|+bnFNFsS n_-9^(v҅@BGTh_Y:N l2y:6\krٝwIm5CH"S^5a/Ԟo y֑@VވJMMy++z|Y,f]^' 93RJ3w"\6_RE'hP& HRũk6Ud­ YM?nB hL]`1̲7~ Y rKx AQ?|r`sG1!z҆C{"8WpZt+Q6}k/~D,&#)\ѕJy)M%Ar`,:SLѢ(;EpP$t>N Gc+ŒEƈBWفjַ!l;+(rz7I+ z,|W֏͜*+t 1SM~8a0o]^U{q )ތY5TWzb\pQd2e A~ 륹g,dOc:iU(8hKC* xEf\i6j%{Y,5{LK2?VE O9J#uƚ6ŷ);D O:,_JQ4>Yh9޾ }T; Xmd`}})9$ [ Qh/fGb1 ״ք>Q^cڔ;'f ZvAi9Xt-od,/(O),M 2`|}!-X ε0᠗u0VLu0)R-lUj,D3O dz5W!R9zVt XӁL${qX-]ۣ D_*Ue-=6jT ymK0mP|9q-8V+.(νtmV 8wq˛ZߌF° ̽'$::W\t09-.7me>I&`#wu>hn fxƫl:7C%Z(!m% h^ϑUܒl|^+a[峏tGn=xpiEbJ<آ(>)e]\/>ddy2ω\oTa<|{^A$-ի~Ȕ N'>zI}Fa;:[L^A]]HO|@Y΁ v@:3iJ>Jpklc UWNQ.ޥGTMx:"wǰ-Pl89HI)Vqt/:8sM@^۵<:_$ȤaT{[s)vD?m s8L}f 5Ev&lv+| ϥک_; )Lax'Q撍thDA"+E\flyim)M)Q㲵'V=wH_>EQ}1ꌦz\ Ŋf0'졤:5Mj&_''7Ub ޑ< \., Qd]2w(|Kټ^*ڬ}XTbߞϪpr/DļڿrvLźm[OrҰZ>Gm>~mQa[Deg+.𽞽g/x}2f7'P)Kr e..dH;X÷n:+Vd.yTh]v4t)X l WtMj'igJT",t6򉦓nX HAi]|Q!s&"u4?"W-Q4Ԓ;L4V' KŜ8pN9߾^snxΧL6cp9hA!~A˰1W$2UpB\:t+?_DrZjyhթ;?r/44EF!s,IUf/G2ZKSAEYN鎸Djc<-zZY #[ ԯ_a?c6*,p{𘇿4XMջH@p) 6B+ofl&FuJȧɩiɵH*1XN;~i4C㘹4M*cQE["IREdF(Sg;n,ŮChb(_f{k8} ʦiH{Pj1RT"rL F|iX}v%>辔{0[23VV}- tѯ/7~(16ՑmfGe߲@qnϒ+犋)Mj+:5ȓ ]/98Q{<:/ }w>]^C9ܦ[o AGL߼pC #O#؅͹˲HP6^!LP8|FN{t1s`ï.5!3sγJZgn!)g۴dDT,etY8\ʭI>0fhj2# r&vy3Ù8V{6Ui[zτ>[,MӉtEMD芋6 PU٘f荒12wɑhˢ"b2_zaЗduJ:nV+:>^+Y^xc| VJ1,ýh(wbһ|%b:%=❰41n`Ro 9^Y-%qeb,_g!%Xii&1=B^jJTuC_rE4oYXK_qli]o{pTEF3~.͙7L"tٕr~Chn;`<+rJyYԋceb5`a ĸG(wa:1~Y=bJ͟68sQ"rC/N>vt nK8N~5xA j8e}nzt:(c߀SM{Yv2?]19SϐFݐiZ_m ZeƬR(u2$_Z\~2ȑ1< xjhZ&q0yYu"1蝂̐ǹ~S֥Xjܮ:l͓gW?S=ZpNubB(j?LWw"h,B}CC ;zo4/= Kԭ>7 k+3!c>>7#fR#tkƗQoޣ$Hx$S.c, ϴN!9\Lb}v rIY=م]Y f[s'Nbݖݝv2AdMXv9&^a49i3 aIE0-4֪\pR'7[Y[4Nlwŕ/w8l[]-Ixr}g{zz@_=\l<}mG͋pkq{ P VM (eGI2NLl5" "b$M{Di={zFO+0*i.LWJaɨ@\-%r|1λ W8}L=skLvjwmIE 1AxP3_L{X{ nr@ !ѦYɓOxm_X&%[J7|uh1ݮ[`sL_(Zk8FYϿOv?]Twyژ~H-C"_Ox;auԜTSF_᝼fJm'O(s3V.7o:Nӎa\#~D]D;6Y}jz,wJn1FK7o((r{N4.)m~I'nؗgŅ3V6bm1D"a+zD;evrkmŏK_%d֪SV! =ei5 8LM-4TrZwb?,)R `)c{DBS.Vw;w;VE ,p[-$KpFj@0^ϖp4mz/Lqc_ᔝjsG7"Kf*)DF?!Xw=`]: ĥZzm suj #1 %vɹ5ᚬNiY]8/,^sRxy|.>&x=~=@9!'o9[v!ǽHٖBubFb7BIh3\58~|CХmpݻ|*ȮDf1 9;6Dg|%Zt{nO*f4'yi"ZF:˷^.029J; endstream endobj 409 0 obj << /Type /ObjStm /N 100 /First 916 /Length 5252 /Filter /FlateDecode >> stream x\[SI~Wnl`|n8 Ck$F3_VI4H6e"T]UyϬ*Q*=}Jy[(*)+Ϯ"ҧc4}JS6UTltRW+P)!+)FW!\R2#D%Qh J i4 5Ce$X1RJOUEzi*GyѦp͆=CcT)S:+Qԡ(]4(:"(,-' FT)@agJJ9)B@ L q mFIЯ6 NN$3Vh5#r`Qr"ʻ6 QAt`T%U"R)Ŗgّ\ ac֐szZ$&%%i!mG4VC0*&iHpl fpHA4D0VH1bq>=Za#) gjEԛ4cH#6H;Rn2}}D u:BR]%!byQ}nF}p4ݨ>Myw0}~1_6 W~_o-zQ5ꃗ=!myj>WQUoWLݰ տA??~iG7? N?N"Ŗ󣐧ΓGn͸6Wr܈|"ѳd SisSљSسpَSlTnZۮ>hQU?HսH>'W㰞a/{xD!+N=)*]Oy"0U1ЋVWGv5`R_PU%9$=vB;V&́ =Įh8em ռh2?PAu9j?K ܧ=곃OǛJ(ߘG dUnTIuZ}l[a٨p:!)rdt7h&^s9}-h7$r>dՇ1|-[Xq AP2U`)6ȁjYJqW_ DbH*ˌ0=Jb^Z_R^Mlvf+ܣzb +SnE`neݖ{ߣPIӴ,S$i8%4KjI9MaEc\SPҐ!X{v" ߣ9*e) I8YE8tШ#c i/X!f2'/H`8anSGi-&zJЀiE6'] L ᵃ%\o`+ֲ~'MetcHw˘ӈ70{/`^t"d dd.KщJ{xX`J\yYn$T+cbdyݒ+%Mip.4+`Td*ӕ g]cC-سG Fd@]b`fj3G }F@uyJ+%aZPrLki{,[,Ҭ^5!Rա jKKz4t,Fs?fE8 -CX-Cqo څ=Kc=t (BAЦQ'nb,Y^Ttܧ)lCG@O#1a|ܧ9HBr+S~~r\kg`ٓ6y{nNeYފ֯ưhGxԖR|΂2[[mE6c6g=9YLlg!\ODy!HXZi4s#U7 .:P%_ZjυxY\uإcN8Nb<,i=p 1 |@wI:)Hsъ(\8?RIm-qv2'`#ZL?>°^a# imlHדMA D95px$rA}k[iD{T$eIH BB=CZJ1 .ɭ2z$&|x4Tӱ#& ͅPKj-F<;L'^H%Rq~^J~!z7!>DGvt6 ]P<&$f .WRef#ka9 hN *aBOb=%h3޲6QW鎇jӿ;˚-Ls/VCKԦ2l*>oX8UaDXmdxe?8ӀÑvV^X2)M/SeI@+G6VG"Wy:A2[P&^>o"sQs5W eN(Zbsdr62{[͢WBްVTN"5*_sk .N Us1^'uΪ煷oogYɂ^FQ hKj# s4kVH15*:?"*h ~/)n-&r~Aη$8\4q(NdD!\ ׍|Yls?oha8l,%%©tGy@()›H9gE6OvdjA?Fi$rfiX~dPg%~nYf6lm(R(?ō:滇4BLwi>ܣHi&q/!vMv%i˳6#Z4%Ta)ŗ$:_< 9iEKj,oW &cf P;'!]"0g%3[JYi`oI[Z`G=ItI c$!8c9J}nJ@&MT㋄JBS$^yvo4F[.f=t ұS%P^;JsLo4\<|丄K)TbH<12c@bBڃ+>R:t+Gp#q# k<&Mi3oXkK |e/[c}!|sa\8}aC3oOoދ3)h5Lx_ɺ'o9Qw'cVu32ŭFm0izp9n*BOӺ_/˺\ԟGwK3u}S`ԣzDm=''~7M=kT_o蟉ȝP~){^b`p0MNm/-bN_f&]GCfsgvیĽ.f:L1mxCդɚ&o3%DǼ*eɰĜQk)>r/-u/2G*DAwiܿh+~>i0Q9ŗCԂ4!m?KOW9_cYhrwsӟFm10mNے3Hno$7]j&>MڌɌ#C4W?1_тuxɄZ;:?ŌM6m3-NQGgLX,W` ; !|L&Y$evYv-||pćGS/sYAYrwQMS6-~H9G,:E暌%EWgo_z_(`~r26p rp kK,fx o_#Ϡd׋`Q3Ř0Qr# _繾~q76j)uSv3H_mi$䯔OZ`&+KGMbϣ+SWޒ߇G<֫LXC:YA4׹2a0KDIr2t B8I]wj;\޵xn+0t;ltE[=?ERr:sd둳;=}{t衚 Rg!GY1&_7Lσ Nlr?[m;:zt[x'AS(y+JBWa%[yC==9`B=ί௔-q_R:WS%V̫"B7p5 #XDX-L/Oώ!._}$q\lE~-'yx (zߩcqΌ = ,rf]ooǣIEftp{mVVI_ˡ;|sΤ?o2R!.Q(p69k97燻LNWgO_Q!nwџ !~ӟ~σ`-KqHu==r=4mg/'ݷv3}.<)>uuז+)9v:׻ >;&ESGK ŭl谖?{ٯLtGNMx7w#i~2#ٞy}| b0H5bVeLWLn@tG.b͢67~yͽ OSҮU)Nk도FY|jG᪋[AB?inィj `< TNnԻ !reogi{#mZ۫b˓ї _ evy{Q.bw}~yw;W;o_{/~O_^> endobj 486 0 obj << /Type /ObjStm /N 57 /First 481 /Length 2069 /Filter /FlateDecode >> stream xڝY[s۶~ׯcs:pt:vĎL5 4H@j퇄߷.@PP¸0WL9Ft8M40*QR'18q0S4x)Ԡ;pc%܂UH oJ%U4n9ƹDJ0ORK̓@`2 B#\``FT <'9.N@tG2Dt M$ΣU?Z06RÍ#ڂ esC9, |믣K2>Z-bhdź2~?y93#?\ϪzU49պ<qq~W?gOo]\\'l.}s u[klN;#V 6EBu 3/?09pǗf$-'d8=<@9x4VQnKDEOڮ_(w>=9;Й7f|>O}&+zqRmkyx<;.68Enſ_n-wq''䓞>zg}' `<+xþ߭f2f9C_C"` IՄؐ' \!(]SXA,{*ya{/\] =sk=x i4"U}xIv 9IzNT!wl|M'iJ/{ X'K߆X6;zzbg<;Q9ߑ ۦ_OHؒ uhLoLf==1=DetGqs:!?NwUaWata ޱvV_.ꢪ_fiuc@D:r:9we^-~_úXQK^pCz@l00? 5b|L∎GEXT?og* ;|{߼jQ>K R;tgwPNYY\U%Jh~(+LV +c>W;%P:r ˆKYئZ6YUt|@_}cr&eiQ6YYʿ_c,)i?i6>ס[> p],/4~xD|Y_nVshӼ_˻NP a^ŷX6˄qOiB c# ~Fӳ{oAm"3AT&fl|3Pf\esQ$9EX f30=W&Db]Ef(0>`&AmCqH.4cE9K8ߚG`6؞  ! D1ܮgMR,bDD`M s$ OԎoZ)S;J;+0xlO4 hݥv#KU&.P(K& y0oFͱ1m Ҙpy>>fվW&UӞn'%܂8*H&" ҮcoHȀMYd;)O `1'ܠdL 7"}xoFu9rKeѴW7aXl~zF} xUc}ER<$&#T?.(vz#{^ed/-)qKkd8ݔzvT§CCrH W\ysUp-(u @AQt HR9[5';VYS;nTj62A;CE.rRQzu? =p~}vnS*/OVwj]>w\{DwI{n endstream endobj 514 0 obj << /Type /XRef /Index [0 515] /Size 515 /W [1 3 1] /Root 512 0 R /Info 513 0 R /ID [ ] /Length 1246 /Filter /FlateDecode >> stream x%Kh]U:6imҤml4n4}GjҼH"Rщ"Ak*:qԁsbQp "|=w}uN!oFGnI2.#n[6:plBGXRNRS/hJPeǵZmaRs؎ 6p4#[{K9Vv\-:Q6wp9T=JW;(6Ew:tql_ڻ&s_9r4~!pDbC-9s\#9sX77L,,c)Rg?#@fXmH#H.q&M.7Ѧ"~`E ,'6~O(0sEfhȲNEÖ)Z,_ѸR4a_MZ6ESVxUѴ>iP4co^T4kOZqEsV\+(+]E+%+5>hJ(ZsNHBQNQNQNHQw<hQF9hQF>&UF9tnm?uQ endstream endobj startxref 363819 %%EOF vegan/inst/doc/decision-vegan.R0000644000175100001440000001253312600727026016136 0ustar hornikusers### R code from vignette source 'decision-vegan.Rnw' ################################################### ### code chunk number 1: decision-vegan.Rnw:21-26 ################################################### figset <- function() par(mar=c(4,4,1,1)+.1) options(SweaveHooks = list(fig = figset)) options("prompt" = "> ", "continue" = " ") options(width = 55) require(vegan) ################################################### ### code chunk number 2: decision-vegan.Rnw:84-85 (eval = FALSE) ################################################### ## options(mc.cores = 2) ################################################### ### code chunk number 3: decision-vegan.Rnw:126-137 (eval = FALSE) ################################################### ## ## start up and define meandist() ## library(vegan) ## data(sipoo) ## meandist <- ## function(x) mean(vegdist(x, "bray")) ## library(parallel) ## clus <- makeCluster(4) ## clusterEvalQ(clus, library(vegan)) ## mbc1 <- oecosimu(dune, meandist, "r2dtable", ## parallel = clus) ## stopCluster(clus) ################################################### ### code chunk number 4: decision-vegan.Rnw:241-252 ################################################### getOption("SweaveHooks")[["fig"]]() data(sipoo) mod <- nestedtemp(sipoo) plot(mod, "i") x <- mod$c["Falcsubb"] y <- 1 - mod$r["Svartholm"] points(x,y, pch=16, cex=1.5) abline(x+y, -1, lty=2) f <- function(x, p) (1-(1-x)^p)^(1/p) cross <- function(x, a, p) f(x,p) - a + x r <- uniroot(cross, c(0,1), a = x+y, p = mod$p)$root arrows(x,y, r, f(r, mod$p), lwd=4) ################################################### ### code chunk number 5: decision-vegan.Rnw:609-613 ################################################### library(vegan) data(varespec) data(varechem) orig <- cca(varespec ~ Al + K, varechem) ################################################### ### code chunk number 6: a ################################################### plot(orig, dis=c("lc","bp")) ################################################### ### code chunk number 7: decision-vegan.Rnw:622-623 ################################################### getOption("SweaveHooks")[["fig"]]() plot(orig, dis=c("lc","bp")) ################################################### ### code chunk number 8: decision-vegan.Rnw:632-634 ################################################### i <- sample(nrow(varespec)) shuff <- cca(varespec[i,] ~ Al + K, varechem) ################################################### ### code chunk number 9: decision-vegan.Rnw:637-638 ################################################### getOption("SweaveHooks")[["fig"]]() plot(shuff, dis=c("lc","bp")) ################################################### ### code chunk number 10: a ################################################### plot(procrustes(scores(orig, dis="lc"), scores(shuff, dis="lc"))) ################################################### ### code chunk number 11: decision-vegan.Rnw:651-652 ################################################### getOption("SweaveHooks")[["fig"]]() plot(procrustes(scores(orig, dis="lc"), scores(shuff, dis="lc"))) ################################################### ### code chunk number 12: decision-vegan.Rnw:660-663 ################################################### tmp1 <- rda(varespec ~ Al + K, varechem) i <- sample(nrow(varespec)) # Different shuffling tmp2 <- rda(varespec[i,] ~ Al + K, varechem) ################################################### ### code chunk number 13: decision-vegan.Rnw:666-668 ################################################### getOption("SweaveHooks")[["fig"]]() plot(procrustes(scores(tmp1, dis="lc"), scores(tmp2, dis="lc"))) ################################################### ### code chunk number 14: decision-vegan.Rnw:685-687 ################################################### orig shuff ################################################### ### code chunk number 15: decision-vegan.Rnw:692-693 ################################################### getOption("SweaveHooks")[["fig"]]() plot(procrustes(orig, shuff)) ################################################### ### code chunk number 16: decision-vegan.Rnw:706-711 ################################################### tmp1 <- rda(varespec ~ ., varechem) tmp2 <- rda(varespec[i,] ~ ., varechem) proc <- procrustes(scores(tmp1, dis="lc", choi=1:14), scores(tmp2, dis="lc", choi=1:14)) max(residuals(proc)) ################################################### ### code chunk number 17: decision-vegan.Rnw:723-726 ################################################### data(dune) data(dune.env) orig <- cca(dune ~ Moisture, dune.env) ################################################### ### code chunk number 18: decision-vegan.Rnw:731-732 ################################################### getOption("SweaveHooks")[["fig"]]() plot(orig, dis="lc") ################################################### ### code chunk number 19: a ################################################### plot(orig, display="wa", type="points") ordispider(orig, col="red") text(orig, dis="cn", col="blue") ################################################### ### code chunk number 20: decision-vegan.Rnw:756-757 ################################################### getOption("SweaveHooks")[["fig"]]() plot(orig, display="wa", type="points") ordispider(orig, col="red") text(orig, dis="cn", col="blue") vegan/inst/doc/intro-vegan.pdf0000644000175100001440000071242312600727026016051 0ustar hornikusers%PDF-1.5 % 56 0 obj << /Length 2399 /Filter /FlateDecode >> stream xYK ϯQZEz0$S=$UN.ܶHKR^ۃ'E!9$(J)q0OeR[ߗU4Ku+ wWy%Gj214|ǎLw JR65 [GKօF*J6K|mMNK_P<2̴A|c'W@Ak/&5ppŎ/8쑵I 'x+5~3 r b`7] 1D:5y)Y gtduD ,΢1%"O߃ahV$ev)xQi w&ONHGf&صԽV*{{:UEn1-֍' K@{$BGbt㡙Px<"H>ă0#S>1sf)r{b{y9橎Hɸ%c{s"-Z཰_df]._hwp3H<p"yý utѳ%Po{)S٥ׇ/d<#]eɟ^H׋gFQnlz\ElaXzF#ͪdekKcWe}9PzwϼF*> )k cLћ1esx8{4r#CAcw|ԛÎzh]ˣ1ڵZݿQ ZpؕJ@ Bܦg8In/<ıՙn/J(Q,}QA|M[NwN"tILT BB0N3 ?2D*-Y\:?Т~{z)!'{o-SA(ۊO+[T#!)yn5Us3jJo~a_|^)-YN59n3X$D6'Tg!PkL݊D#6=+)yLRhWyGv$%f"MQ2  _w<>9HPBG&~MS X~xQk%02% ΪNM'z%OrLG9ktE ︫* ņ񉲷1))We%h"’ ޴YeQW֧47Ő"0:Q d2UeY@ZoxzG:7}G!=+EQAZ0Ckkm֊Xꛖz12sܙc<*m8 - 'oHg0#q[J]ww ZR늴^ M:-m+R-WA4K/.ԓ\MD,I>iBBQ!\.pU5YTq;'gN3)‚-мv1U֮~Mj}ʖձ^֎`Ǚ+k[gE`ifQ|jqY~mMg>.b{ ?RŲ<+Iڠ[G*Q<ւfn_9'wGq[QirԂ,$@X蟾ҧy ۩%`?T endstream endobj 74 0 obj << /Length 2645 /Filter /FlateDecode >> stream xڵZ[۸~ϯ]\ԅ i@E2o>hlcĒI}ύ%K3}Xs?wo~P+*fu&U.1"ɕ6nZo?ozl+uO_V*s#d58^~<(yT.0}X0i8k1&աlMaֻGU:iࡁ$%c87x߭=ܾlSmr'74𐯻-gʹeY2 g-97: >s@~~D0cBLэPicꏠlq%m*4?N%>*bЧS,BU %Eg~bڈ܎ nؠ=hd9r^5>i;tvi;~mP l]O#qT`)Bž#R`Di7BPp9a0sj@=|dEN v CD!)"dݹM̻@]t@r)[/Bnh^7h {Q.Ua.I؋B6H ʼ :9SrY*c3xAq`ĭ~5 Hݧyмkf;nQmjwqJc2֖~$>>ml & ߪc(j*&/@_|i>cCG8-j?kLJU~9;JP ?S[C4}bU$!lPE\j$bc<ڿѷl8TDG_7cpbSWTq}5n.gJ'Q<ÀFY+4@ okf|R@"_ԛ0\%lAp~T*2ǞudE)o@jRcj("3[=@x;KYGq|FQ&Io啅M'e10",Ճ3DXmBQ@E :UQ:: 4kӄ}6@h˸INd`ڋÚQ_[cT"Y&x?TOHu0DhT2dWvaoFP]ԯn,?el2[G?Fv.Ei*d>20E{y6CpY:~@Qguy9]{(xIQ<izIާge5q|`-*Co xjpޛV5" endstream endobj 85 0 obj << /Length 1689 /Filter /FlateDecode >> stream xڍXmoF_KTs.,pR+FJkzJVlrw\# vgg}f b@$c:꟫(1%&*n~Z:KOϫ7yPD6XCB&Hyf-\'nKcL-*Exck*k/E-ָShVRQZ6pą-D8Fq( (Di^<1a ؖJc#Mn {x 8BGE(~tp%@9#V{AZT⣨ lD}"*Ϟ[|݊=O?zὧ8;עE A[U`&boÊ̝*N?E!F}z˭`8n\CĔ*Trpi,\\Q Ig &c<ȺE;Ɇ# =y1eoاrVM`:7}Ϸ'{{%+6ݵxx?nP"|: j'|*bT&I Ǣ vn}> }Ԙ%J"X-lj 9*Dt{'MD7۪c~#O]^J2QVXnW-q4#g95Iѧy]/z}3E#8 z2L|P;"UME*ʖr ڳPD|#R֥Λ4 ϕ;I5s%m3Z7 $ YJP5;v {X\Ek9*NYF,<24+kW֎;:& p/L>}t^StCz \"eX' e\ tڼ6,i aIFC;# Ǒ}ve;#Ow*HʲnEgɡ<5#rµbgh23#nte&Ⱥ#jxA:;xO(2sG7:DVQX1 fUDB#hY6됢i9u3,Ϳ+ B6~HtfTwe/4cXlx vfޛ޽,ljv=M9UL-~!r89RG3ZGe'gIXág~sSD֤FF\(5ɝ!n˅;c+ Ƒ@S̡2Ο((sh!sd31wlXת;4o$LKp0J"4RX%by^1I8k\7yst *  NBFQidT'@G6ƣ~zPkotu$xݛp,Ok\ssDœ, +E^zs9$Q[h6!rqGؽ#նrޞdRD#|`mϓ%xbyv`/okyC$ 45l*V[{oEy%UKLJ 9ޔNW՜(rkj$)ܽ^R$1@"26(* N]CmZ endstream endobj 81 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/intro-vegan-006.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 88 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 89 0 R/F2 90 0 R>> /ExtGState << >>/ColorSpace << /sRGB 91 0 R >>>> /Length 917 /Filter /FlateDecode >> stream xWMO@ W̱Uy~HH RUO= @*f2N8fx7 s˙9 f;¿ћÏƚ_ |n.7!*eg|&̝l)fޚ3we{2~u??8ⅿJ$9gx}?~drǰPs_*ywdߛi_fnw,.SzX[9ݵqMB)X`KFKc$dܵ5{YnŸe?Gs_Y) ?GL"'49.s$RjΌ]:>& FU8kZVi+jR08&M&]n]U7k1^]~qfb֞2=@ D [},]~mmf`<Ývql8X|@ݡaCVwQvցfy9n]CM_+W|xI_BJJ e 8WuP[iѷK:u:㡨zl['<~h\%F m'ȥ3Nh7{9Mv<ǘSr;ZY$I%ŘE-SC!-BT [~*Tq:Z}MTc؛a_Tnu)&jULE7g ZFi9l)òvfc^. e\O@GsaQm<t\>jYjuǢ} endstream endobj 93 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 98 0 obj << /Length 2405 /Filter /FlateDecode >> stream xڭYYo~I,1$d3Xz$<m+#^Q[MytwuWwQRS3mRzt6կW5yF;PJ^|ճßZzˈn>|.feRf: M23l⬙ݬf^~oKc\\,3(mNJ|^wxh~OsVHj_RIﳅjuRbHt;6ڔ)ծupp||hόp 'P6F3ee)~tVE:M4č1-mә—ԥH4G_}wt*EWX±R8Vy]'ʖۮdv/[#rB/3 yn T”PSbd'i1N$[j-h4(6OonMN G[_0/p+Yll&p<)SQ,)Kдo Pq[9#lti>eyLE٪硇jOR~SEOYTZ #F7W䣐z/$erj7u=R[0WTJ T[%ƫn~8=GPK)Mg.H4up6bvۂse}| Si]NDiհ555 G:\_#u< M .ĝ<S7:px=A7KLTJ+q, iȹ\\@]eLy\c xѹh6sY咴(ǂ& d(!w[^&E6ݰj*Xnoa-xt;o.p#x>U;Y] +%bJح Iӓ_y/+J}jB(Ny&GykdWͻ*e x\&Gd6G6vTI݁o?8eJ260 ;hkGl}IEF2SyBmGG#b2ޢEU`B"1!p%3Ȳ7<R{`}aiCeGO<, 5Rm%Sd%{_]/egngF#Ph E?O7hVT`#LjُNyiT5gޡ-gTG=І^aCA̞p ٜ sL@3`k^c,rbőPcՆɄ;tnsi͸id i*#.o3K2?#_,( ]BG+5腃PQHN?#HSP@x3jWw(KA?i"j@ٺ6Ջ[S܂zxoVdy ?]+wԔ4=hYq'︙z2)E\ftEm Y5A_2ؒ;iqsh3Bi~JR=\aL+|KV_9eLH %zEcdJCr{˚X`:~Kݚ xM)(c۵:vBzHH%' =VP34L2KL7k/4CQK6$7G~m|s>ܹieR=X 򁦁Ez 'O8lB:YD!h\l$#,-T-_NpiC赂+ݫΨѷΣ3^Xiw|KVX]!t&;ھ͠񇇶# h sԔR/b ) H`Mi Z:Q rJG|4>_{.:Yf9*I(~9fD6P5ߢ0E-Rj?se-eosTTi~oXA`S$,q>>8ݯ-W١;YΝȚt[t䁎_2&2 e[Qf&Q@} iO)I!u &ЙZ{\>Vl_dS&5_C&Yȗ[CW?j endstream endobj 95 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/intro-vegan-008.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 101 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 102 0 R/F2 103 0 R>> /ExtGState << >>/ColorSpace << /sRGB 104 0 R >>>> /Length 1222 /Filter /FlateDecode >> stream xXKoFWQ:x=ڮhڃ#6 JT))E}g|X, ͬ /ٟp\/g2H{y 5;By $Q2ID8FNdAgD PѲks^^kkIOdP[7U Fpï#z$ibįHkvD d~-ev +XWQ5Bq*#Ƽ+Ek(Q ˩~-ݼ;&K3 >eP!egH\jTˏdQjtOdmtq LZ]oITTC_Qs@_U -~qm}$hd5.Ez^TQF~F8fIK D5[(-] Z  ԃ~#xt":Ox㱋'Uո0IKxqk)@G$q RQN;l1Aqr+5E>2t b;ǐk׊ E+b$㥟:`1r 1M0'&3d#!TB .0qpWN]x0!rB `"'ô y3v̛~Я τ9jδEFk$n@阎s͋ nthd!*rD Wgzy <7dGe?b/rC-rZCY vקMQ7f=P$*e081*nQ~8d~O8 J5QQ^2 7ԧ|x~Aǻv]n}V&$D]7Ŧn^$߷f?> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 111 0 obj << /Length 2163 /Filter /FlateDecode >> stream xڵYێ}$^MҀv o8Q"(Sn6EjoXhH^=iTYn 9?[-< ߨC,ix>B2H\&"C9T卟=nfYrU9{\~X~6vn],-n S?-L]zyt6?c{s;.^Ex+hZUyΫ5؃ +93oP^t8ut$~GwADPKP쉿8`9pU`\Y=t(А'Uto;6t܇x^%ùGv-*e2 >Wp,N`9KN*7 J{ිl_(m0=Xy?@&j~RU (t٫NJ3?oy ݖvRϤ-nR;2S wx"q T/x7v,'rw{ ~s$Ί,䔋x3k| ZZrEq; 1R0|*SP(= XoCb-TwMJ^:1EU|aWGx(ab|>DXZͻU{M'GD/Eh}%$\Yaij;?nA.=t^לGѥPj1%,?A"L|;]eCHedJ5k~zg# }p}flUiL\3!9ĸ13SXGgaiOt߉Ub"RK,D%-E 61?:eʈ:*J=WF9~N$Bg,fG2Ϸ@UV|DLxwI怳J8$6p=U9djȐ;d~ƇE]Ĭ߸\J;$&*R!;^ U|5G.H}7-=-aw{ ʎ5FZ"h~H(u;#H9R$1oRC&媬ɨ"z $񳤰o\-KLnl,_Rr%6g\{ć;im*7:"Dq7 J䷓t^5䝐IYW{ιv ߆4:w̏6ҹ*+L,讦0hy왆Ve#@jdk5ulHGa.|ILйSdQY-} It釯D>I2 '_QwK]"~+=0zU5ǏGh~)Co:$f&/I૕f(L!l!  l8yzپ0qT =>"kI q3^adžS䣿)x W_ ]ZZ ";xg$.Vy[ 1T 'tܕ^H1Im|W HHS;^2y]SY&lK7/AQ7*ϕ?ooQ jqMԉ0P[nÒ'|+&õ|<7d.[ ]HP7ufzʫ[$;%9V W-CO) w *|-KUZw7JÎҮbXITbC kO o.MּFSVySF5 T;%H SCc%So)H#'-jg9,^KK02h@┣ϴ`3,6Ǯ 3/h endstream endobj 108 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/intro-vegan-011.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 114 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 115 0 R/F2 116 0 R>> /ExtGState << >>/ColorSpace << /sRGB 117 0 R >>>> /Length 3506 /Filter /FlateDecode >> stream xZM ϯcrp}%0`.CK D:=]%],Ś}O/ӻKCw?oa%n㿏}{.^ߧn%=ߧx|O!x~_7|ޢ09JGؠwo珗?>O٣Unfaeuv<6E){찛Cq~7#}4ǽ-ƴg^/A_s{Cy7NO-wccSS>8?iuVyOS|aOD2TVSiD__T|K1=G4&[Bֿ^b=A(ߌFbm>8#Gم3$= NSO\\zuzPpLR{%ʁ)D[!4v|5n#gHņ # 5b-bT~3MGtLq/aqD%M.#W\dXOVN]].8E nf2 rL5[ W?L >ǷNHSؿ(mWmI{ˮ&%Md1ϏV)S @a+{@Wi.H=ƃ_f!G்`ɶ?d^̸)ȃ#}+vm)HcL(j]#L~@k&䪉r PbM4u0c 4,V^j4^WŢpxL_RFzs">x,__4¿]3e)@PvZ@vLN,os=[_4 Ua,CF!wYվQ9'fÿG^/x'> ~`ԁ/ȣ-3= 'Yw2 q⟉!.?>GG|?#/<7~ges;@O?u/Xelu#}ĕ?wk$>峓aY[k{Bŗb8S?܈0XXd"Cdhh0dG8MKD!V qJ#2G1a]hD#D!T=,Ў}dB!jƉ#Y4)#C0s|s}""*MܐCВA3.BZG,7x " 8%( jQ&+ ، BGk3C7ʳǥi9"eZ4RV{2XZVGTb"&py2 o&aJ('c;~׈~8h鶾ڋe'z`3Fak2u~Pl IGi}pTȍN P8fjT3,~kq>> |ڏ/aXiGZ1+V>+L$?|3,_4^;/fa4Z|Ų̄a->lg4B2OTL~g ɴ d[^f7o qc>r_E[ ?/ (L~' f 1GUO*K,7!92igxezq4$x БVF# 1yc?]QpqLQ 988T6E5ʞA U^ l (R5 Ọp-#u~Ԙr?=G$"9;ڄRCkA(&pQFL@X +#hj>Ub"HܼkTOpQfD3UV)|T6XhZo5& gzYm8#[M`$/)U$5ڕa{i903ex߿y]y#m2kjn<>Wߩq"XʽGmՃ:?~,xG1}tGt1֨8ոI/#ꡢ;+B;H)._0[4v>+c}qFG?@6{X@/!KZsf?}![FusԷ. '$'i'~c;w.?fb|bmOG&mB@ywF_SpnO%,y3#GEQذZ|:|@39z{h>g2nq{ݶ?y-(k|P=f[ludZJS ]ff!xWt{(%3?]x|=X /7ʼ*|tf%/yCFPf(!QPקEh,MEh4/Moh;j[-=qlRek^g#c'Kb0SStW endstream endobj 119 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 124 0 obj << /Length 1802 /Filter /FlateDecode >> stream xXK6WN#FWHl"M)P-{-ײɥDZ֛ @[ f8G:G*(M#*3( Sb4~t8cӣԆq(#Y3w^ 7ȶm%+%I%\èVsZ,ܬ5sb5햴#R]+d3+b`*uP]_4$]5gZ y=RIֺ]]č51v; /N-۾T(킗hX*φMi`J&؁0: +\YYcVjaZTIT~lt UvIjqr.ae?&J^)z(mEf 0~ nQ Hw ;qd=S6zFB#4zދ%mRrEӆtY{6+m=uV \5 Qr~}>1DA}@7+Y<À@$c|Vօ S ]a@XVIV n^}mT%?ٯYsAZ%9[Zάv ;=*$I(f~2Q:ZyQ۩H3du(+dߢhZS1^*KIJ)kdo:a0v4!>{!6OH 8+>HƂYɸInƇ=Dn&s4)(AV°%H9Ozr(b${ZKNQ ȩPy":Ta'"SDW)mEg#-AEaEa>~cC(\nd L3} `"5eVb)CV-(MU N$<;x qZ־Nq`F4_k{؇>?]6EoW;Y鸴pI!@83hx|v%00~;;)ช5կnȁ:to>CWeJ%(OW-\ bQ(#ؗ!02KbYK eyK E  8,%+b3M-=~@,:}j<H:h .E[)Yv^_|-rPe+b8n۹vMv&l0EPGb' if2Y"Fw/JO*#o%c$ILls @#n'kaI+gu2ã%Nȿfwl'\N9;I*,fs?lq8饌{B QKrzƈ+b^6]9<>p}[qT#~&f5ζLJkimg`V񮴷2nreMۆ{sduBduu{UpOܕkua x4&fCϼS׽l?˳ K+zƆߕ~X5^?gh%JM;B)B<T`5^0~TwOQ! EO*ZvT[K7_'3dsrjw@m,V[2 K)0γ Os{zQN>Dn˚grDk)Թ$T_ê7Y{b=0bhuht).87_97Krn?Lg96޽cr[w(No:o]I2y3Q]# ET>y%*-TBc"b ^NT; endstream endobj 130 0 obj << /Length 1709 /Filter /FlateDecode >> stream xڽXKF(HǖRbmrsw`S-Eш_UV)Ji^e:ORVĚцqD%\Ѯ~~'^bbU&nu]dVs-M#zV6'X9E/tq k]D{^zOLTRf g{G-&ɇv.PUQGހfo/[oVr]{< {݁/SdT҃ 5WH/h.+ Ӭ &R}7& $О8n};qr BarPu|i!KJ#(~;<Tr-h$Gz%w[%Ʀ )X+EL[耽7rfy\c;OIؖoS_.Kr_Mu\pw0J7}}9tJ WCk^cϗ_c4Lp;.5ebG2B5Ny9kIZ9 q?}|"A]/n4 \~17̳Md^ sM23N%TIdy> /ExtGState << >>/ColorSpace << /sRGB 136 0 R >>>> /Length 2078 /Filter /FlateDecode >> stream xK5Wx ʯ^ H3 A@2HS}'"3SۏN^޺O?W|?oyZ˯.?NѽĿܫSTx|H|.?[y95$9nu~O_8OGD}GqwgXKwݭqyc_ &^ַ\;,JoԆnݜ emws #=[NŨ^ӣy} Sz,4ޚh٘~"P.|`IL[B5wQ|zs?_\0 |.G ek<_]0s31DCj:EH}woKQaV"abɖEa"ie&iجds܈&Lx)KDz*Y/VLbk4 Kn3 JBV|e:\x^B1 )7+- yVMx-!;W3="}Ora6vjqcBD4m>a6BOO3-̘FA)s՘{5&ePF #<#ɀk%[Y$3qGtYjkeӳV #LNdi*LIDgA2=8D-'ԴvPvg6pb*ؙT'ul"àNqЄA@ض 404NqCD7J`nK>^N&l [*vVsCq̱,9>Xu2'b:|Amq2Hs 5n b0^o0Ǎ/)O$fӰ$a0(84}ٔ 4.9Aգ}=s<9BRM!(pq!&aԵm!&a&&gvA!KX_c|4ea Mk),Lf))lf3Յ1Nƪխt pLk9-LAp-LAǪ,LQת5=5tO1,obLƨkma:#P,H^0r1 #[ȢK^*X:3.h_r kJ&Jiexܬ:F;P( ߃ Ұ>P*,dR-A8-ACeCѲT6P*MT(TGAV& uPV~ì 3?) Peg#o6Fvtmm"y:"6=F-1b%FHx1By}y!1Cb38G̐pŌY/l3F%F%F a?Q. (XN4O&;lϗ Q endstream endobj 138 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 143 0 obj << /Length 1778 /Filter /FlateDecode >> stream xڭnF_G iryH4z(OMhH#Rvo\]R 3؋{J2R^0JsoszI"U9dwiT9˟WK \K(TYYz<# I?{ #Gcxz VՂ8,gQ8Q`_ TY(v ۰jHZw5~g@6C?`} )UQIV; OLOgE<),qR,#*LG`H7.*O~haD"dg& \4\oM -"\`aN[^9P)UiG^(FVQ4,mO^2aPB:rƅh.9){!a [TEv+2x`ס7wTw (ջ*i߉IB'NOf`i"z,wLPTiy;3%LLE%qSdVloAyS nt7 S<Ċgf2Br9첗22'iݱXLZFOJeu~&iX:+umP/|H|τe5r"x3:j;5L|TL{H1އ0##6ԧݽD#ycܓ4nYzd$`f@$M/+3V;X1F{VJy\ zBƎڶ<&[N5~d^ LCVJmJZΈPE}ؖj*F'8աK $ NmT>I=apr ]c/,;ˋjf'2g)읰{닚^xcTuGk_#' wҧ3Z ;{g+> O:\ ^le{9P(HXh7£JEo&~A^XT \[k5~ĚӝG*+7~>|7dbxA;R\"81kƙuR"T_w Q(K]BPټ\8JIX>)=g(U|K$/tDꌭMQۯQ)~qc̽tmVJNlm?eTK:,/:SYNT]-L&:dh-gGpG&V,:nb,|?+浕's,Ek؛omb(jU|034L9`:`;`V,*κ|K*ZDA3JWG.Z~sLW\kRazRӷ$#%ʳ0E3anR銿Qq}reXTɼG[AM*> /ExtGState << >>/ColorSpace << /sRGB 148 0 R >>>> /Length 1441 /Filter /FlateDecode >> stream xXKs8 W|ddt#[^N$+Z٥vg @`w w~ ]B3oL;>ϜF3lôDb@nV}\.;SDwK7ˎ:z/=ioqV#y^mgJ !Ik ɖ62 q }f,Fa<UsozBsg{݅@j.LtԐ=,{tk'zZRI.UGo=z'zZB-_ A=o_dTC -%z.e根~YYx3 mq]6Uyl7/"TE)dH)7ůB +h>%msa:8`B1Z/A5)KK.[[<prSVծܗB nK@(,]ѮO嶨’  ax?hW %@]oz5ޤ֛bWT.$z`(r}v`y$Y'J0Äԏ-)am߯]^p:5nޮ4~?LYĺP`AW_O+1Z {]'5ܺ2!Ǫ*[Tץ$(3t&\)p @܁ $Qb:>TffxQn"?7e*0&ElcktwQBeRuaRxȇ1LuA$ib(;?=VOŪ9 USrj_֫uU,e[¾bhnj:|Xx.ySܨSlΟYGYRc^vf5kk)( C* 2%lVlaWhsj,tWG)}:KJ5GEk Cxy\;4k&ȏ'2X#o~@!c+غfʎ(zjA\RCvD1uБ5;z+4}X)4gc fyvՐTb1+ܓ]P+ Q~kkFnV`?D>/Pax8'vā"4 ߌ3:0}4}C> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 801 /Length 2164 /Filter /FlateDecode >> stream xZ[oF~ׯag8(؛6nSYl[4E9l$Rˋo-%R`Q?399%Ke:a"ɄIiLh<)d`JGLfS? Pxv4Њfb0ɴgV)0z52$ygɰ-6KPVx0`O1fXF`ьb2J0a@5ۀ}) B Ǿ?i=GjaZ&y'J0 bw 4#I> #P18@* (r+ P :< cL'$waD@'d' KN: >I75P]$ n}$V"NA80*C"$25 !nI8d4 6|E5>.%l*5i01%40-xR>/z@TB ] $,S:/GL\2Cb₽j-WqQr^_m|̲f^rhQo3*26m1.fy$&KEy{u:"M\-e8vmאa>}Ơvˊ65X@} = xS-a˻JBػ.қicYp]M[E ìf_e1),Rhdn 0`3q H|c3szPA%x7UWgyCA_g>.gvPt+7x=x`36@%Ϯ(ec 0 l2 r0 @Gk"Fⲻi姑x }uϬ?P'$]ֲ+DJS$6)7>aC̀X`2Dܺyxʈ(jhJYQGdeix(pTQ׈2pr!*rd=pejFԷ0T.{{DN5)&9"OƔ{F'v_``L0ʃ`Rp˭6[Lpk_^X'M2 zAx^}|9{u`D!A[}()޼g?,k]{ҋ<.:YЪhd]v2JE9?3z{M6_C1-{U}?ҙskz~@w[(=(&f%%4?]|Ro+44@w4\dEu4,b:,j: YqUDԠ-2t/~۴fӴkEu&R,?rkDzqӥŤ\ō6t?f"7.]\r`O*}.,í 6ħ-HkYw7ۙdA>'DŰPB#L_)Dx1 Kqt]A*p[z邘6=}9'PJy9e]0OK:2fgCin 5|ҷuͽ4LFn}חHuT&c[j_E# ! -Q{H߈Z *}}:⥴A=>jVG^st}cpX@ȵ3qWI+TO;1:WT='|H^*H2ʐPWLjű؏ WOAn1414kJ8jRt"UDq®g7sQNo endstream endobj 154 0 obj << /Length 1565 /Filter /FlateDecode >> stream xXI6WTn#U$E-[H$x`K˓`.})֤5I;Y-}fJ%z̔Β2ճ"b55*Je2)ǁ~ؿ&x_4% my:@ݴs]>6W":xMbf`cw(~iVA_\@;U;$oܙTZ>%[[0oW|TbE+̸Pу0.i5$Ql=@)$-<DԨ.m:Soc5[`2.'sE$6Vs̥xT`fO=K{Ig0LsfJ]q W$mZx4]J<mW^-eK?t(T=U窎:)? w9VYmxxs~^H֐od/OLHoh; ןru߹Vh=vҷbۓu;_(|u9tK;{|} cG_ɲ8硴xJܩWTXYxSѿVI_L-ۊx;iV406}f<Fax%qk$Œ!C7IND ^ o?NyD5AaŸNMuZO JS~fk[E²盖q' |]uOXx{lpO/}+s»[9)vB@30\50W4r{9Z L'VUu06eD@nz5- ]-kVHJ9^Z_%YA9tc a"75h_u <^v{,:\V@sK tرpLGt0Z&L\.e$@x \5 mBUTY6mw7+@á*,|)yi6[:^ɺ#ؗo{=43#hm =/BlߏG ~onj h>} vc΀R/]{ZY֎=@7O )V ALk98ӅBi4ʫv@!ɔa_x:V endstream endobj 158 0 obj << /Length 1617 /Filter /FlateDecode >> stream xXKo7WtF>4\7Z@*KW*K{;ܥj;0Z5Or~3?yu^M.D1&\yIɊz2_N~~lwߩ(?{}9I)fev7"uWӺe[lXc'>ٍ;qe> X@[j%jV7|t"9c(W(܌V|Stlڂ(ȡ4!ilW_oLWD;åwpk=n2Uf^AaFԸx4j;UP kp  |`Kd}E~jx5(5űMJ\8e 'u+٦ht,8NrrIdv_0i,bFy`xyY1llgJw X7Ys{d&f^k-s,2X<^`x w#"!TAD=p}Tӟ.CB/)Ve>'w!c#0`Un}gr<=1wf)óW<@KnGl *vY >O*/k9)//}5AA~52!"zBeϰ*BMs?jLah)ÙJN>ӊ|8-BqDb|30OxbL<|51rt6޲.?%`'& SV{Tn{ɸ>p:Ӭ̵( 'eFB++SQ+xmW RX_n^X*+EeVg8xk5FfTEqqS\`S>+%ѕXӀ):|k={u=`hUw~y'_wGd\-]]2 Q)ȇwxpBoGQ䕉lVq> stream xnFhYInR %ѲPrEn.y g(Ү}J> f{6o~:HS3_N2",NTd}hcz:KG0]2Ƒ1JxKӊojGHZ~OfPf9v<PٝNTE Y$L/%CݧD ܍I"ELƢH?:ѯXO0fe'LKscl7qagd2Yf#a`h#u1(CT\>:P&zD53CxrHzc}d6*0IѧmEʘD^#gpAcs\6;gVt %(&Ϩ8T?0!OF !>L]b :'T cB+{{v2`+Z4uz:SiT`GA[J] t+ (mZ4;,4-fIq஘!a7Uyt՛!f߅0H-{i 'Ih_XQi2}A5//;jl#uƃ[W *Rm6Й"MRЩPl8^t F,ƽ}:tT P&2Oo)T䙁7Dny?Q:, endstream endobj 180 0 obj << /Length1 1841 /Length2 13300 /Length3 0 /Length 14458 /Filter /FlateDecode >> stream xڍP N0Kpw6- n݂w -}j}ս^ %UaS{c3 #3/@T^D̊@AflBrC4r~92.66 '/ /33?D{/@ :!P;x,-@mB` l Y䍜-Ml&@gqAohdh2Y:[TN@+G#[ߥ1"P,,Rڛ9w GJv"nÑݟF&&Fvv3K @QBݙ`dggF ae{dtpvbtF?ܼYThG~b {=>\k;{7; 3K;S?0uq`RttJy!#3:88@GĂj?,ktw4 x: XX&c?@,:`' 33)(k]""ON+3~,_vf}Rv{^R\ Ae`6yb<?HO=_ߌuq~y]TM_+bocuF lgn6Z:IXM,M,,Pteb~}8*oHq;{?@ #C~GOu49&F;{w{q3{'`C0q1$A:qTA&"w;7LYLBf ]@2x , +pxa,ߓ|TL}_c&s/߳s|_v?ߙ{,g _ſ'f/6 'q1q/?}@w ҂ _UMP}0ħY]d%P# l"Mez/Эpp82qslhKr׳An+)c~B jB{^/^֐2َ.(Jn}+c! {ϥ3 ԿQg83b\bdM!x|c+`zVԅOGy16M)r]wѳO\CA}q>JxOi~r]Yn&i  I%q-g0EYb/dqZtD]'gꝴ^qx,'ln?anudp>?0MKA'-+(̌x ;}a,c *t]CtUx2V;??})茱֩ºB3 ۞rf}eo fA9-IĚnrF<Jpݎ~8]V?iUH_*ɞcg]/ڲJR 4;qܚT>iF?*G89:i8ٺ-ϮK@] e(~8iG(R!`*2"E'(]G|QimmG%j'׉DrWfVt '#흣Y=wde\t7HMciV{z{p%qݟmr+ MC271KdqŐ*I=B V)rzo,3zN0ݫ7LW S52t%> "K"ؔ O6}Qj4V }̹XbUoJ+{|r:N3hETVv!x_l/U_ :ea&6Krx R'Mt? !R Y7Csx R~O%+vNm{a:P5)%o146 Fg[%yL~NFdpk 9)e0`1 Y@0M9~!ci ^Vٍ &ZS0ǏU|o z'@,x騤nV pK *5 Y ٶU*xf1df<EII]ӹl ,tj̽R2I?FvSj_ H,˗#\|MTsC`7%yo9f*I~洲s`ib^@b"/)5N9t 5D NlL?HAĤQ=hdH Lxl(ђ*KI`(`GIߒ(أ->>^ gKe ΰŊ4ni\2nxt`xȥj%j6鷐Zz5קM/r\FxZY'I:-]7 mWJ9ѝ bnh<"Eg(:Ջtw?3FGpe 26yV>`~@f~BMKɐi屽6jtV߲\+pyvцn:Ř5ᙳu7x.jn 8DѩZUת之Ϯ2Eu+l~68!fDeqofg KɄވWeF3A?}K׆d/՟+ #0eKLEQ60pM!d^' ;uͷN2Gp#ɡ-7u4!^+ɑOԆv!<&3t7x>EnVy|I\}#^.z}y gK7LenxZ~$ wJ" 3OuHYuw|g@@b}\Kߖ#V; R4YzF>8{?pzHu00]ʾed|&CSk^v&I CHW M> `/Ѹ$iۊD{;J?29ǂ i `F6sr;kM~& n5"ɛ/c{K/>?zJ1|}E ZI΁Lj2o~.pMѺWیH{o|0;w.' ?3J<&䃧fQ'H`YuSSN2|-KV7nyH9^f ".}cI>7[=&&)=A:7 Btȕ"ZӬHfRRџJde?{Yh!s(oN:C}ia^&*ZE/:)7:1IƾBcR[X$COx# w~A? 0'lb6Y~v %毤2N~~Oւ +VBJ^oq|$^OBi^zZ\8pw mt'5Y5fP$p)L\鎀S?9-L?ӈ1 /-eTܲGMk57!ù|!sqU<J!1( /Z` c8YEyRvdؚ= kUz$>Dd5Zݛ)p$|ޥ#Z h" z s8lG #Z_j$r @z⒱+Wңclޒ\jꮗ}#MΗT*V$dz5P7_=V*l}6R kYlNyEBOy˘$)#9ڙR{n7T+Z bz=8K\󒷘x>>.*5^a_'` pB[:.DE'޼v4ntp'i#~EUǯ!xg_ҥ^F4 hn/(ëRFbR(rmh2mg x F)H~q6p\Tfu#,%{3%.5ȶk@I?!> 6u.&[Ya鵭ۓNxo9f8GMA@>Κ8AI9>.ȶN6*C:CdT bk:lHכN0} LMjH|gqO | zbb.kyH:(ʊ;Yg%nMb [7W!"_>I~T!ԔF&&UuQں:6{0Pu~L'4Q;6(x5ߨUçš> E \E?,rjPL~{ (XSX c͙njsBN::[)'<_4T!WZrB|PrE67Rg мqk?6g{\SX<Ʒ9}rfp/M) g!ϲ3<(%]nCٰ͋TwO'rjP(+.g Nho*+EgC }5_$_5=0p6w hNby16`Jj}~S}R\T>(%x3;ɍ]{$*fnj6dqp_,WbG۶t95Igc  JqL; I\]*"-# 8"G_ʼn~:Upr*vٔr ۓ/~rYRLq<:9+9|tS5EpLZOرQ̠dX{yF/b憧 CcBm;BiЃÖc~If\Lk1ɑNnQޏO[-VzݷW1,G )T1j$QھMj-`[?r]/k0 K&yo^WU=`sr+|n%Έ-/hC,Y3k%̼qrh.5| ˲ugHL.PR+bSEt_[.d,.v_ERExD 7 ^f"+o`l{4r%%t}r|ɋRܲAr};D=F؈ZBZ}t =xKBm=n6KZ6 H?E ``ՙ2l*fCO|/* ԱѿfΚޮu}AƵy0۹ 3bgZDπ[phSOqۛ{j%WE?Q@Mf8sN+?;?w4_8 NFӌ`S4'( X71?Mxk´J|m;K'TFBI>a a)cشCwKY8~GE`ׁ(,oeϒ=[LMut) c8e=H< Is/kK|]⮤gȖq{ȱ*BP;%,Y-Q:.&^߆sPG<99G=WC$8CN5ݦWp#VO&P"Eէ⛆3J7IV7_q "5=sW{6֟-$8ix[2F%a!wIa)[{~9D{vME{εa&,I8WW 3́C;sFEojҞ^`-g<">N\W&fcþ'|4Rv)L'R Iei|ly-ѯ(-t|' =[SJ]c 3ɼYlBy)A}Bodyng竝4|[j|4[;tranmkɨo=y$/y4-nͤ3Cʑr!A/D- C#{1mg4v$ͱ (ic }~q0ߞ19ΩTh{m3boۜ Ձ[f1-vCv!ޔ`]+8yՈ]*̆`Eԟc.jp^u$8~':-).FxZt1! 9-]xT2;E"RHS;/P%"CJm+>#PŻ*X t6Y ߌ s6v*K6 K^Q m͔(׾q(,4@]>=c^js$)7sye17cB,UC&Gp&W8~gb3YȜ "3Hmd7y[ {TM!C-Z4N[`΃(> 8ɡi^R,s&t&rWټ͐ }t;-XT}?ݐ6 sD)JģֿR]nxS -cC03'E5#@,0C6bԕ9O.hrC:9L ؃Fhu|GP*u]1+ M+6&؆;~lVZܠ֬=ռ FۨGuzM*_կG*wD(^TQgT|@8|?vmbO,‸'Ȋ/6gINjPȸ6G(I-xXP8 B-KdFj9? K4p ^WM wS4˯̙WQKR;Pu-] GcFK|۾nI͵`L3^YiQC@kZ.vx#I%ah=?Xd(2hiZK)fK0y߽!Y]N}՝AXD5ZmH[h]M=C3nZ ,|wE0oYYǂ'\9&#F(8./?t :nW6-ϴ.51-0|MQ!E/1ecp &Vr_{u,ԔOP跳P,cVՃt4e+/BF[ h CKI(MzQT">tl23gŻ_ϑ)oA]+eAT!l.F8xiI_,E;=wAe9U1TAh$[$P=l=ԗՏ?s1ݎ\ar3DK$qpn8]# ߄ "#>7լWIV<* w֭ b`=mUF‘qd~( b$(67CzqdBI:55Y2lx:L}nԩBM-5 `ЦENIfj^I,=%c1{~abw v3Rj? {"od-1{m0|YA "y dcR@ Jǖq[QhHXO!X}ɾ[s_,{& .--&'fkZ ͦ`B|mY% ٭dxPzK '5ߠTW=U7Bv~2D6v Ji Cߒ`B96+}zcPe8 xx^%ôUuٺզ=yrEqe%"-mdmO?lMuѫ_z KAerVE@$F)=NwGvxš|N9)}g2a{x0VKL}Xόnaiqi3PI:DU4Ko源PJXp/*Ҫ7TN>@uqz|8sƇ`zoy߀p5E/e$ eq33O0=2]TRdΰ̤8/MICN6Fovn^rsθ\xI:5ۙPn:|kg)sо茴#G:봏Ί|3䏗ѿ7f66UH*uLE\榒X[:)1S@S*tى 0gR-+6s8.&9~9akȿe^COXy{( J*5T1Xtr4 XzGzZ"&.U WJ]1-bB+GW.A-/P<+u\24kd{Iϵ̴(XMYpBx~+$"'a2Q#_x=jW9I?kcf͟榪.qG55LRgK&]ZiI"$jwK]K-+AWkcѩYPP 5­-b՗4 }=8^UH۾QC  NٳRF71ȗego:ɽHP'O <#b [)&!Ӣ̓#=^= GVeUMHf*Q|@5aZS1c$63n1Fo ,^z?+7Յwz2~)Y!g3 9fDUX7eW)l`w:9@pyVHcLl,S;(軑5j ?*W}ç#h~þҙCRUïen0O?_B}}H3l&c)ϒ褤QMepF<*'~ZmxcċgU%nʰlLΈ`2NW c+|wP`0wsFAB:&dU0iND64 %kE, > mj׏ QP@yVIEEi[{6[!.qGc'cԻ_A._x#~a3'r( @찜 θEơoa$w:Kxr+WS$0 a쨬PV㖁+ZfCQߝ!KoEu]}D\H'lrՊ2yF}#_3y:Љh$^ &>ۍir: SlGPωbfVBB?CG!B$1 b󑡬bd^陑@)WӎK) G肰$/%͂Z=>_sӕB3=%ylM"ac.[h,IdRP,ofZ < endstream endobj 182 0 obj << /Length1 1855 /Length2 11446 /Length3 0 /Length 12605 /Filter /FlateDecode >> stream xڍP- Nw @4ָ!{p $8!Xp[pGf̽_^uU^ηRdp0:@lB)eI=N.7*jNv! Bm@3QPppr8888\!:8 n` 2@rArpt[YChg# ar!e d\ht0Q ubgwwwgڻ98[1Pk5*@Ct v`s9bro.@ su%,'>cȂ=@j`rӮ{ `v>_.Ϛz^.)1we\|3YJ\ouyb;x`%~Dv]o`=TAvտ7]o$z3=Ǚ~n/ `!o/sYAߐyNkOGƳ /ܚݿso@d>_r?w=k_q>9{q|3s13r`;+]gq='x]?YY u~\8SHu;7MT&VyϮHILՙA+ΗIC=؋2([[|M4&7P& %꾐jyp kTqrTývRc$lfS}Ol5V;0x.,;5"/o8O ̨܅\q7߽*\i.pF&%wgK)EY4}:Ru΋ JamL3W_ڵ ɩ/z4GuQ~ tﷅq`G I#"7PuY.Ԡqw|\\  +5U0G*'[1X6#+ ^O*̓En^Xut (3Mƥ)tCh4j >ɒ4P r_]$G14[_ ONEZTKZ/8 }cUU>>*Md8T`#&I"V:n q&b$P L!֤o}i7^tz_OwbpMWMQgXek,sO3KLi S;lR028OKMϒN՗qj5*3LJ֥q߃s[զ})QyiA]wН0kS]!6J̙QenD)e$A8""Q|s鼊?`1{ݿ"1Jho<@4_^{fSKFC`~9CHxm|P} L$!e1!z3 |R{jߓa\Fe,0lW-n`{Bsݔ`ԁ௷X%!cy}Sp&b4F^P"$($ V6Vyh?HV'wWM.(&;6T57i^QݯO $fo#.Nu~Abme.ӑ%4]3L< `Ѯ [LljT[lF;m!46ǟIySi:\L(g]jeǨyά)Jj$.^/lAeV*nRc*&2Ob;62! Kbt17~U僰b~/q YLBǧS[7cY0εI_ˏFFawiAj%| nDeL=TSI -xgDxxqBד@P+h66#jMʸ{<=B*Uq2Y~`N〔_݀EENEg{-ool./$Ano@Gz̾\UC:? 0 XO'浭)$}D-+v jL<53̪z&P?o; }Zeϔ'w&j?wto $/.{RR\d<PAQvϰ%OU@i|O)EtwV"m1^JZ;SzԒKo4a7-ƀZr`{OiCo~Ƕr<+67 O٘w7};^τMSИҒVLw"@跠}LYJB3yww#U4+z3͋„J[93H! jT\8"Pu*b*Q xae뇙O]>2*)Zra-UUYAOcN]5[(U"ƺ+3aB 4g}ےd0 ^8Sz.Q Aظ"jAx`֘R"+qseыWrZ ]4b/M0f4,,^w+jWK(v{#~Zh:!NRqY; ^9AK6˲v&Nr氫@&ks+\5&]=ϠPxF>1yZiΩ&vf> k3$Kg]Vye5TUl?`BW-|w̟]):A I&Sl${ ق}Ӑ֚Ag̣OE/4|nIrtNɦk$}.^NB[S꾐Qq]0&&gxId0|`E>2޷Վ`=Nj(w[r4eːw1hU8Aj2 *m! "y%O6zmz.p$s{2Yߕw^Y1gPjKD&}"΍ӵ|GC:ؠĽ{@Jr-$6kfO\[Q2,545[N{,4*^Dr%'+?_Ŗ[A$ٸ!H+RPnГ{*ޯpJMM;asV/18J) kt{=mtߞyHz3|Mu/ty͈1xUhZ >!='\/.-)(˶s#"-GqGF¬gr@5F[Wc @ٽԐez. >_WRb&C<)8BIf29:F!S:nXd9,$O#˖k~"!gBK<'#Ώ-tV؅مyʾs?JmMc ]-VN-&G&i*הӼ[YL\I?9໙~%G ;B@0> +đB_~Nӱ'V"#%Ql*; 2vgߙJ|^h mQ԰V+/FweLlXX(~F̴fd7ջv&+c ) -=iv6Pp@dm+kc<=2A5G{g 8 9fm&WmEJ}hae5Xٽ-եN|-v!^m8RU=dO_X;4t*c6f`I<3am=7:t<97b];x6gڌ !JrW!Ɣ5-SҒ'Ǿ`(&&$o8!*1 .u?Q##t0}&S `}*DXqC\r|s@Ox֠rmC^oli%+{yUyqB}n>ϩe5=eF"c)nV!G^ _YZ'Z%$)K;JԨ@ x~6ìۥm`O&-YF}` Uiz @ V^:g#:%+P1}M Gi5l&ү*m Uj;_zE)s& C=8`^n<]{{/S 04w,06vusNa/󢿪d]&@G`vbەka]v9~xp^W[9h*m&pwC# c{tX,` i*dZ]txJ.o#ixЮ6MBl 2 o&R/ a9g,01ed0y;D *|ZӶlٹm#*DF$p.}߮'Uuuzϕ_fn 2;91%$“9b#^9&d5P}<}nRG,nv.ƋELzE*6.SEa<寋gIqvteM=L4!_D\4m_|'sgyN:ɇڟOUFV{ b }ݔLDpK=,dZ(/Od+CFN(Jz e#`U s5A5o'>Dd7ҝM[!Üh[FϩvlݮNq/]bzU*9ScM4جL/I$Q%(-.Zd|aj3CC@8m&;vvꥸ|`"u$ipK*tcDKѽ21By]ғt2ɒ&y$l Ֆ`[B#nf7:?C[T|B 7. śelFFy"TL#^ K7eva?{c~a }(nKfٱ 7._-t>yr"! (~;LC HV8!ELZf}'vx!HhB8} >G>kg?ij;'O;Z/fc+_:5WnϝȬJ΅Vr6{δaw邑͛ Ťdfll`0>1ϗ}!Ґ;dd/FM7Vc &]ձQu +J qcpO[>'Ů}Nx!H*S^tO:/ r)ir蒕- ӉWӈ%sl $'1m8kehp[1$h1&kG8>6݋^`~}uSJ5"?dZk%? צ_! \.$*YԁR҂ms{#z9qV'd܃4X{ kk mc2#;Et%Yy Y%%%2;>ŏhIMPEI[!> ̽a|/Epe tIa =Հ5ZFhG~d|77ti,ʜ [Q %y~ye<x={v;HJa_ oB%T k +`X`4ZpkU~gշ^o%{+fcZ];,N,zy!avZg(PZ<<+zX i hfKOHovV\isZRځ'q554&hW@uw;ף $δ2`)`\,*wuU҃3l79 /{b}r }'f2G|,kY+hjh2DCfW:Es+ͼ31e#ٓQXћ2c9VҟFo"oU %.e|uoM*ƆvˇmVT>ttȠ""с޺BomShOIu3h?IA+ѷI_0+ln4}g" m:65Ww7RӜʚ0lC?@e  )GΕ)jȟH=*V|6L2AN~TcGYa'<@)VFÉ(CۈTZIo~5`KsZoSIIbJ?` A=1ӪJD]l[+4YN0) QUKݺ&la6O>NV?A=)Vݴe@xEaC 7={If36<ժ[ElCݟG97G X#dnY58P%BLk y YoD)@'za(`iK;0/ Xᱦ# `P9|(3MGu0( 2>ݚuY= H!+^Rܠfn#cx?~ *kvޫ:oKU^ ~Mߕ-[='őtL;QiWSnӫrPHDb4 JBw %R@qnLu)ذc=-BB_CV,kb4I}4mΘ5ü{z|-G3ZWE!¿`Y|l= -߈I˼)V`TsPee=+Go Qĭh)ܰVg3dM폖PHMn33suF;E2"!qbjԁj}S-v#;fط&|CSw6k|!g>%V=p@rVJ$; -y#NQt0 ۘ>;n6{oO> ]v: I{$n$r{#tOSGr Nr~}5`u^9K]zJȐIi.P5 K/%\1pgĻNѸhB/ciƑ?"1r /VKj}5Lfɶ6x+vuO/?dq6b>ڮDO_ IDY ) 3%[4XsxcEͫ;%QDd^Й෠T -woJLPQʊROba3lĒcВdy^`{cr̘r]S~}^+B.=iǝ,QO)s.9;R)@KGi# z^I ZWjE'oBځ*Q<\>B4!t kJ4N׊o- }ݛ67R\Oof3?t5& $h:T2{J*Nn|RzpbJRU.ǝV87h}Iy!O(xŚsJ'O{ckZ#ҍIgQvWLMs#i$.@ ՙ?)2«H՜#(*u*c7L4 ]YT XÂδړکAp_ T@SȺ\dب w{MBBeENѬ6X͔ުv$C@;PU5J+*?nf C &u< ɹLV{/mj̨ظg?<~wRSS O!);#3܎#0[0oyrHԧBt׌ѳ{XDP@^GTP7D`MBeR!Yp*@K37 <qBTQw>52},qf`luRW桎KjpJf꺡Q$&Yş& G%2)*)]Y%QL]{hJN]2*M!/nF(3V42?ƴK޲.Z:|qۈ>uG 설BvkM׶7_HD`F#qNsTYɊ*8E43zNà}b>g/$.}Ý-]^ Ռz6.C 'n{`qjzOǡ5~ ̕ GĀVc%w`D#c *%aDQAnNԊ}h \~pTh8$mC&"0%hKrr> K0W0OEyh=>5JGfm%C ظ*cv|cbN6޺ &s,'ڋjXaņ):HCbeQvMn1FTnE |\"Xtã&PMqo9+r AҴvz(9ZH0np׽rr?S麮 S~m՝Zmh|g;&LCbc7mX@eٸ۫לH?ZD[(/]^kkͱ_@0`\ pVG?mVJhCgi勳/ݎvR'`o.(>FKl'Ԉ/OOO// 38,ڗOiއ2tx/NȔTv 2K+'Am&x8)0*ݗH[تZ4}$?#pJ~g~OvOE1oUwj3MH,k2uIX3s^/7.ew,pȖ%S\k9KTO_%–׬p+b^uFMX_+"5mzSʄ$Ft$ZjDyU6o(3Nm.Z{ýC ںԑ\?QA*z|1%.8̋kP֡>Z"pA0=J#8`Q,!{&;a6zY %xSTnf|g~ǫ/ 2p]4w#?FW\Dζ(:>=?)cHyڢIY\ |\?hM@fTH,0Eyc^{:1je_< Dpv->amS%DO7TT)H|%w'Ю<R,忭+ wTIY <=+;~U@3nv9N=STx-CY؎\dYy <"n$Oaèwn==o_%67\{!kqC)r:j6B)rb*zgWC{E;\4SMPU-+dq#6Q`4.Ϟ& D'BOR`51@dM$p2)1O}eguț%.ƾ&{,BLV1lvb]]{e+|&_g~b\D㪷%j؀@EW{t274SvnlHM6ګ%zr8ՠ/Q{+m*S50|*% SkE07NL&naheB7?Y)ptUAvuۈLgxy8fbɌ.K2B-3!jR"ö\ q`^{ϑDkS^qxۋ) vd_nf?c(h('ݞTsEBذvt{"YD:N'w endstream endobj 184 0 obj << /Length1 1448 /Length2 6897 /Length3 0 /Length 7874 /Filter /FlateDecode >> stream xڍw4]6тDFeFE] 3 w;E'z zD I>}^ksvgƬ#AZAW>^8@ASH  @ll0W8/1(D vEh;M$ DA ?$/C$JvA5$BtBl\k pv9BQ0k0 v:wzHk!8$\]ā@^ /e+ t.P;U0@ S/@Gq"\n@oS|` Bs{e{m|J54To<#$ Ą"?haWaݦe8N?ci!Ѭ8&Hd?Sῢo$jG v2@=H ghpT]1CD2 цZPm ץK,k&o=7R a0~!a{>|I@=SE ].tq~$y rDV#1߈ODDq( Bo6K}7@PkDgrt<_F&پr̡.^rVe<[BȽ|Mq,vs^xKN_Z fǨ?l1nt}Ռ١Ɩ&JG~ѫYW:?6EgJXt' ,x-*s>+dS'dn^p ,??^,we5a:&gFѧ(N-,ȆbQ,X1'Y{oOJuV}eӐԊO{OӾ;xOH"PռƁD{V L_nM, Z0U}>Gډ*J{WEP"rt8Ho5:!ֹ{DC%ڗ3Fzu9$3 goM:iEMΚvkM8@uРV45rS@k|U/S*:;# zr=/Ea,a&QP[ Q-z{'?_짷OvRe20){`ȶVRqU,G&?|ׅ2;΅(UG$'Ho ۷4Iy_SJi}WRE"}&:g{ѠQ(m߁Ҿl-~ҙ [#CqEǹ5,ɉ&簃#qA"iۤP5H"Ԓq*H{ lJ|,@H;QrѨ:pe=` ʐO鑔Ҹr[]`#F-vR-uNj%cOlZFYIore utl7aE݅܊4(rT'*OyF\MǍh{bUt*'SP$Ҫ âF sC-KEDQld>ߚq Ȕd=QӥoqQL^ E8uEpoઽYZD [F5:%3N LwB>lN/^5Y@>?(-+u ˜!ieaQ>(nadb&n~X\!Y66O,%Wχ^drz <_86X?ר뙨aB"?]-;}LD;Z41s93EZ2&(|M=MwkpBBum .ّc)F=U|!xsy2;oBr/Ec2R(]x0 ET#h"J, Fլ=wM`\'DsAƮ8 ^:r!J,<`b_ta Ӧ!S'Bn% ^3Z: 1kyrvIOVKtᶘC'ƷbӨ)5moalW'͎g[%I^ߍ"XYS];*lӁlMc{ yZte>>KRzJ%6Ke!1׋5C@noG%d cM)ڪzOxGmG^KS9E׸ne1#(>)M1aFclkqtGj>S?ۜc9}dJw8Čթslc8m2G,=ih<,k‰PMB5QFC=y qn=X lM&=am;pbō'Rzǥc8`p+e"a/SV}7Y'AlOgQf3}WN,gӥډOwlݡ{^w΄3w 5,#ɡ|docjT@ jwֶٌ_-{ЈQ {E͇@/,?^lUme7-ݳ.i<.R_R)*y3sK#&<4Cԩh=(ҌQ~w|n)6+ZeqgGvKN֫oK_}V=US;3ͯO9V x.Q< L\?!BuwJu9x"/8ڷҥG6 awpاzuq75x#>ty܍Է鬀1ZT.s{ƏuDd"9>8$NŨb4.f[c$f^|>ը>om햴C #.FJLod)p53áB xM9EqD'WO+*HɅ&U5aoW7UvX}I@YߊOVdG=U͵T1џ>58'՗mA_1j'+*%HTnGWcQitdx3g<|[za4Ve. &-ci%z[K0dqu7P(?_QQىq;-c!6ƥk%vt|PK-3~*oLHYvȏ.:e _^{NM' tDj|X.o庥p>6TMJ>=`h3]Bd 3l. _32<8,Nܽ"w1O%?],Ȼ%w8oIXaBzI$pdjMwOɛJ %}{Yz4(M0(&=Ϫ>:GXu'dzYeD]I~5qxFP,LS;k)<,E M4~QbC5YHHM+4Ť@{ޗy(E͍> ǯ SviQneU!EzCBS7. 8q$.H'l#[UV.(;tDpn,U*휟GI$JZ#>0kSCD9-{FG-g3o&z:GG dֺP?91p!eK|73x8TwٻSghtmF ri uVK'psw`p475U^/KuG1{D*cw-Bɤȳ_J#e}ɽ+9v6b3' &'OHEשUS=Qm~0 .qܺlk7"Q +$<0{22CM|fzԪ,KdT.BZa61ŶkŋȻvϘԩ*B*}sFWlJbZ01)'stil bxLQe 2⬰8LTEZ4If]Lx= '^1D,/>q*׈=ۇ> L1((|^<8uyZŴp+~Żi|':t"sl\>ZCX994 K9#H{q|[L9(*qgR8ÃNB<c=7]*Cv2+j2c=qs,uGv7ojpY8My/TXŀcq̈́OLGZyyl [Lr9 dJ{8%df4mqB>fUAbX]:_+OS6\8|o"+I]z57n-ca^[fcG(-pJ醥WGWECrҥ \ eGrHrp.^.4I 75/`9]0) .D,kU~9Ei19 nz}:/#~6nLnu`szMT~N(|ǮԘlOai_CYZApMƑ84@4D&z|,x40X3"ɾШ~^Py3] PhBuz}3!ٮ (}DBOG%5t-,^ Pft,C!11]+'2Wl4y!yƓl4p~-e){F+}=ۼՂo/:=:x1=5cV^s(T\Q3GKԳD;_(vH&s(QӓUQē(N>MS e08+g~Yb1.wDZa/PIFԁٶx)dM/o䲕P␁ ;;N:JP?c@3J$ eM5U/ʤI[% kL0ev8fƏ='ER2-j~V &qa.E`J+ɉmgisd\eA!o8Z,|f4rIgMEMx;l3 8QpMNNC* ۉ/\ HZ2ʜY!fM?4hK`ZqG]ʻ#K^F=['L#] W+7(}1s9E͓Wdw@.ysazNԤ:wI57\]vS19` Cr6K\~;O\Q!*|᷼U=;W3@Vm<`ȅL0$@a@V^t4u*/b<}y PĨy$=)wkz;cU""IX\3Zizi.~xNY6-,avFnGMdIqShÂ:٨Ht`خ?K{8fOc@@v&"Ɠ]tDӔR Rm\!_MOӍf쥍v^yF?,duФ+xnO56>(0=#k҅cb=J*[8% endstream endobj 186 0 obj << /Length1 1469 /Length2 7186 /Length3 0 /Length 8171 /Filter /FlateDecode >> stream xڍt46],!ѭ{Y.VU G(Ѣ ^% ^nos9557 >,aUB\@1u3݅3`n|((Oǿ//F08?f-W' V /Zd[FGAVN㯞!<>.>A (, F;g A~U/zPՌS. ɴhB(F?xϒS,$%wG?s; Bj c5{U`Jm%M vh}s:7دO /zɬП70p}0S.AnZ>>A!Ey4D oix$:n`p%uˢ/Hc7U? DP@kwWWte/SzB f!!gdi=ֆ$RL!;@_3ԋf;x7kɹe.LV1T{ p1(m2XMPIX-QS˻t F;zȏV=kGg-;0HJcRtNQA󅴃5*P $Uy [a%UVj;J\fYI e-\wH*;.UߎqcySܶҭKX`gI&S߷a$`c+8k4 !R!DM-f"GU;{; ^#s_떸 Ns e;m [x!Õp˟ ~9RWH^Z%*  Eq2%X)6H]7 =~+)rړ<'NA(lj"(ډ,0ԛMnZ0M4+ -Swձb=J&x: s͂[,ijZي2qnyeA;][L: s$sV+gyQ G5?Zm[K+ ?TRI<"`W-ȉ9 % QATvE_*o׳Tezr;呻d0XSU{+kL{]%_Hj9_k YAkh_XS&cm| oV:$Ԋo,R074> 2ckUɇYK^[1J6D= Ooh+!#KQ_ {0T[8#M@k )͛ynY捻U+4(M>},hd#B Ƿ-.V^n&)t0y,?lџR0~ A e=ꀞ3+Ҽ+af:EՃɁdE?WL> SNq `dXHJJĿ0uJC,ASNw`[$qm6h;&MxȨN׆A$fzM{A+@KEpdC,Q+@Su|l_|(e"kt he>nu0ϲ~C_:@:vLӗM9wbN jO7+EُGmD y1G3YBMkYi8CɂSܐ R[:眫 79^\\4Qa.CeyDE봪iK @b_M4Nj5\󖿍z 7l?ve:[MA4r7 Uw:?j\fMfP۞4QYWeyt\W={dİZV{=RvxjIjL `&.sc<7zBp9E`W6g5r9 JCevRz%;u,fX&ZQrG;l8 ,wTF.,6:=l;:yf'pLv+[GsC` .t;Fޗ +6瞇k4/=[Oc}|U,ρIZ'ףXeBtQuZFhăǘ#=5Ǒb(vNϖxq{yz{Y͝Ǧ ƣ'B:bl!%^O&*k8ϿDd)}GK{ r_ih7{!S|uo.F_J[2`]%FR&yc[ܑ`=IcdWjCC{_̨?evoeH8E7lx5)F 4KR;tIA/ O@s0{˷@1ncg}=b"{b]v1H% 2HrxrBnڦ.QvaHqu|~Ib#LV@s3(<=W.+(.wr;yR~W 9^>ymM-%[s36I@2TV!~=VxS µ¥v8u6xFYPHg|ns$|.N9[l'D)$xD-G`ŧo e M tYNCa%]Vb5bmk۪ȢU>[JƋ.eWK5ZOx߼h'M x19<>݉Upq~<{paI2D #lݙw|enp]AaE)fЭj>he(-?o$:> $B_N,TJMx`#sağ@:!t; $$RPfNPq7hb7 d׺!P_IN@7ӥޝpDKaAnDE7>Pjvq uƠJ;5P&:~emgԈ *Enz}&-% H3Q=֪J]v,Q^g㭂=dVz}LT3Sq"Cc⹿YߢJuNroԒs.o\RWh$gH50i6 h%) ĬlTؒA?t2:\9 k ?U)#8B+[2.LkJZ_&SwmqV/Oûx`d\yvVW|~^`8c2n$5\LhJ&}pvn]T *ܯr>U=Vyo?4}!tdzibmlJm3bЬcj|CSyyRu&O w",öyuuYla2n;;ƧG5Y>ϼ}nQ/益zkvGʠ2Hl=^p696'QJ#КXࠈCw5+NѲE(Δ6X괫|BH0aJ>ZӡL֛%a'|XX5z [FL,.QԴk[ؔk_O7jW]T)b0_H$ akދ0^BXΎB%N5Yk UXBr3q߶dZcmNaKEAZbjL9סe}{$,/l9c_Vzn%n롘-61oOЏufӔAi"ᔒkh_#7%hݶ.*;u\^I.#h6Rbi礏*8p1ُ<:6JRX%a+RQlDb>Jg |A*Vy=/FUʶqƶ=:y*Ten\orfp2n;Hy\ `RhkI ;ƶ=7&\G7m@z ,uQO>Ig+U)c~m%ǴLQ9LF[aKDw=iWB.KӒuz}?6{epR ,l._Iay&f$1۟1|3 \2J{q[伋NqMytd#Rέ!G~Ƴ;C:'l/[yUoʦL8l;ُ O1}ox>,ZN E]NzZ^2a`ͧ>R%%9Udt ! ܠT+:P!dLgc0 ~ǀݓL3mO9{(/US#1y{A3GT͂^bo7SS"o1|=L^#bo1L[-eaʷ{qr~b 1y'N)hծ5tǗ zARN/ Ksd_=2{Re-y]j5G;N3~^:ވ_b-[{)4(8z,F@gP it!x(> Rj_(\Rڜ3=6ŻFPS1?1dE9pLR+FH֯Y9r?xO7 Z_O8k:,fR_3TSpF3*66"-nKІl8&? }xTv`h+z0(v]`iءqxh#U\E]\J?,8ԄI't}VY-zusF4jiW*8 w!HgZ#9f}:[*,$ ,iY݂w>OM\m< x;0[m)=#J.Ul:P p;sЮ޺=72e'bxQhsg%n{ 1ٶ3pAnօ8߅{zes1u#A.:!J>Ǯ}nk&ˀ=VvNL6xZnBtЮTM'5ӌmq叅S,bi$XgW/2KÇyث)o@&ZVaot6fG&U <7TzO>nZygr)Iu~@0% azze1 i7o=TZibf}]9E.Q"\*7Hk̂vpbN>}]V"[~0a]#v '>E(ޙ65Rv%{qI;0˅'<_^㬒oc*P;-ehb7G w^hHXG~@vW6HS^0᫵U6]V雈BuG?S/OZ_4=Aɡ  vθ]85G&mV}=Q6lm* 5kem695f|_7V ݵפ UM-Yd3;}xX,J"xBPA_Z3Cc,u2w˶dE|\6ξmЏa ގ5U@@$D~ZOivr V5oK FRe7@ cP68l xqF dWBbV5 \C.Q/TCdm6ԱIX&z:˞WQ]œ F_QvA;RY] | \SO8(TN0ԫ-/a<D4H8P哙]M'o<+-j tΙ”|*)k]#QN=>R숚k3>qFueae튭(TKEbDl5RɴJv!ì)ؼsu}qjJ 7|, RԊj`9lr^vfåw/R?0Hp0-^ݳ4%Cqޘ=q&jWް<c/*g?nW=yA# TڻcZ~thYt))Յ#~Q3>U oyӎnY#`څ?󌞀pd` endstream endobj 188 0 obj << /Length1 2366 /Length2 20129 /Length3 0 /Length 21505 /Filter /FlateDecode >> stream xڌPY.q.ww[ w[pNpw8df/VS]>KtĊ*tB@q[=#7@DNB ONjd G Otpq@h&5rzL,&vn&nFF3##:pD\,Mri[\yPP8hr,M@9#' ۉ&F[KQPZ89q308:S\-,@G ;a Ul͜\7  2:H쀠e6S=Md n 2YZ NnN#oC#kG7##Kk#7"7 )'=GK;'GzGK)2yTrr w0NَA di MGft122rpozUw;_J =lfoI-̀o?F.@3ߊFLLSK'1M 45 6{Lߟ<齍-_eR;脅mt:f6F!x{oE#woe]\oS Pr]F6F/Qo߆$lm/Gmdci:;-凌Z:o"̭SFKGqK7\Y[[kmL>]o# 9}1ߚLoh tk [7[z3[eg08 "'A? 1$ "A\ 7N?SzTX [jg3~kHXYKll  5 R2+-.~ :;_-^?ѿś_-`Z}|+[l[%0_\ml_dC kٟ2#uEmvsKegp#g_kn3:M?>Mz3Oο_e{3w|8cppkbvr[Z/VEϛc~w|Oޘ<_7[߮@7 ¬ OUMP7! ;̄WnԻ̬j_3HZ~M]u+Ct!-wC[]E}L,t—JF!:5R.||2 8~egd?a:?XAvE | d5|vc"fB&9g5RX?Xp^I/ZN$6>@V*%ѳ3W9nuϕG^˖D}A7_?(ucySV&q`~V&<C/Q!EB(vg1鱪 Mc *hg+m(9e\oׂ޼hA7?A׍~5 wT`Ww I ڇ_pTTrI=zFLnyZW6x"S (R/"_›V\fkG#IaY?IK(We h>&dZmzd>4U:֬~ .'[S7%kM"G 4PmYE>I<7 / UzUKMik `MLҹ2"Xqw5*%˄4J=BoS)E't,{5 L%^)6uCgAk~߾  \r$b"dC|tSeeIp4~' Þ t&eY'TQ39}M8cBHfҲ˪Bfp+Ւ $qBN^.K|$œ} ;qVe?J‚w :%C,kKbX(LD[X"} 9\2YqZ=]Jࡼ.k]p8:q7 #32GLnh\z+=Bl#W܋:1c!R_7R+5꫇cb.[{?ފCz=kJg)(96'XLȰI%q lYʅ+E L b_|T#mROu hL.&?m0, ;)I~ 6j ίY6&g\ 07'a-'ú\Q9P]ZEXa T$S(o6ÚG'i˼&H:6+XmR2g}<Ƕpœ/[}A襐\1H"bCJ cd$,,m\s\GQ\[HGGDf+̬h%d35+G \Ưy;$ Yã=V K#†ut,]T<חܘ懨ʷpT(8= j]k۪ "nBr._"Ϧe;HFRk+ H-;m&wSsRtlʮ-&\1}%Ewz=q1v6탱g,,Q' ,v).#a.Q)ݤML,whM(^>iuCI 4fc.D5áY!W.3m.ۮB{49q~'-b.qi gAT[ '%e37' =)IgcxxY ^ EminCRdL)i,؄MԎCUޑ$ Cى_rs4A±ɟHKE؃{%e=NЁUFql>CZ9 6wk'KNaУ[+P|rW OE)4Kg4ɠ%׊PF+|/h ΃0\a:d@IPK}21cx M{+ŅNSw4d\0DP"7_so;6PQbgcI"d *eY{LX{<Sf/m7>n~_`;bƒID?OLJ8)=d繝A%˽~`0fYKJ;Q8E"QZGi&8 3CtSؤ[73Gn5:@,q ;4MdpZ3v)䒃\㯷L OSD)b!ϖLz[׹`Bv\Qy݇!_k[ :9h"%ù Ւ!5 Aa uz5NSbgb.XS1;}}yCO'i[vwdI+_ͼM{hغ}W~fX*__xgbyc`ՠL["56K_Fѱuٓ)=+M o^Y4cY%SGs.R&e5_Վ/}o '8/S$A-B$!ʼ Nr}W;~4J'!7_ǟi 5Ŏ !(ܹEXujD@1 /HSm:I>gݥFWU 3vl+Xɞ@8mϽ8,-#FK>CS}]ϻp>{mr 'AD[ ZjZ־ܼ 5\[\ЫpX]TWrK&dC V>3׼DEop6iұ8Fd=[H\HN_Q$IW牯J,?ړEQZa-nXטog5kmYUW# z?"i7aL_U"h!D)C=gnXڦt李_^6 c} ܺ!2"(5B$Qf߳K!-?q-n9|V&&7:(y3 LWywgBp`o‧id/"[X.Q5OovK>EcL6%U;ye[g Rz \A⽹}!}J=eFrV]&.$&!1IaRiFx"{1RwSmWۦw}",Jmd L $,0,KAZgRVʰ ªY(t}H2|Iܳ#7(Ӌ=Ix[VMtJ \"BhGవ)5F޾ʑmC3z!A!bpشC{9I~ڧALJ%75GX7FZ_@C6i=K蘓Ɩf,mPٲj}般@bٷww6fgta=մH&ίk5V}ѷf$ɟ(\=OL* ^h{%eEc7w A] D6gJO8V 5\ЛPm i 4(D qԟzfWMh V.H"$BbA;z?0XUQ42RD8Z޲iP%&Zg~" ¦8K SaV~wU<112OoKDČ[xh9 @_&bɝf-^|[GQsĮ>\;7PC6/f {"W;g7Dsh%vyJz]sb>w`^Ia{7qAqEryn Qtw=$5"m`-eFKCz?frQrSݒ[Abdat˫O{#w*D! uڋH٪?3 JޏJ}PJiZ8TiW1ڏR08tX#c("5s4=" 9Ǘ z&-FGYjؖ72`. )Die!Fm}p$h /92:Ի9Zj޴R, cC壴1}8,6%''[!/4X¨.µ.`X]1>X@l(Xn4r.>NQŮJȑyv+lD`˞$Lx}6{O/X7ηs=<oa Wz2L;2 C\ƎvYM}q,ǁ w4e\wMԲ8Fw*A[ʌ-_\EUΡj7< VQ 2&ofֻ²J!^άXE=OzBzvHw Mn_qՔl⸈ _ƄH{B 4=Ffs*"ս/+X9@DR }m| ={I] ]r`M&-aW,?&XIm-;vb1Dd'&IF⒬iwpA?>EɗgnSJ{d^<;JtJw  qWXVc fҨ2סߖwK!7Qo+EW#Bw" IKo`cu<@I`m0Wn)y9`1W.ʃ^W/IQV6bimFBSWXu&& dRmc> \ n'M&Bv6L÷^0$BRŕX*T<ߊG*m)8V'B1.~|a䶳o%dJRKֻsu8># \d}w4㜔zL'}<—Wܖ`i+w~M:oWXP3L\֦֏Bg[ sL+DBaK ..U1Hz4ǜ{LOHΉ꛺L ypn~O̞y,j0qngM4.dۑ7;ZkE2#l9`3b+f16we&IHzrwP 2q,݀pDn6Z_V$%Ag> }p|i=+Y/Ae ;Uǎp}MȉձP]#-}C*7tBtG/jW[HΨj%AzZR`$=^lQfʳs4Q,?}c>x#$3AE ٮEx_59:c[9 Lm\-J'״H㋷!yT:znpbvBoFBL PMkԜ2ई? e1Bd*ߎ=ST;7Άi ޤ!r*Ь(8R`w]V lq 1jTZ^CJMaL8H3:LIF7 %amyIee{gg0g^;KvzLg,PԸxs.R"vCr{weIz,Z6R Dtx~¬tjRv o{}KqD[V&tBI;]6U$Ɖ#$>c߂ziF!Qyg^%g7霋) r3 8AJ"~۠AUU7>8JdN],h^,"vSї͎iR-W5M{s &L+e胀ӈX([6$J0|ZW"i=5b sBz#1˟ZG4g'>C)TMɩMdᩎշ0 (U(֭G:Z;K#H4@`5*SNbX pX]gK|o8[4oGecDKZԕS? 'wK7]C최D+t@\}mJ2ݭb59c*X M<2j|w?(()-eD6=ijOoI$f(@lRy-x _WFrjwX=H䌮Y7IU :*kEN`?8ĮnʍNt?OEمG$fT>~^soK EW|w: rs/Us a5- ʉ}1k!vfNO^=œfT0N'AXe?PK ɝS@wn!7М1}OjԨzuA ެ_Ɗw!.PHf-5眨GfW"sL&0?Ũ=ԳСD5{X< urc+ 20y=hDXdXwwjW~jA)#JF]&F\rGB6Y_x l48vIIF,7scȆ](6`WyK{"{lL0G7Yʵ^od=4j'bp_yG@ws莹Ui=I@A}Ldb )o&8;U*:hdxC$dB0Sl(y\OB٭ a0YeD~>8D%*ހ5UiR=JZMX2#V}KG:5Z:X];$k`HOFtsm,fq6&{v e/p]2 ` u6ĒLӻLhE NrnfYmMmJc|$X.jU-=֪)ȗШɝO7ڵ:=;  \dϷb..AaK#Du=rW{v4Qd D,R;YQ+5a B ]V K0)-/6&L)_>%_b x׻Z2^>HG5p ـHHIM;R&IcUպLz.9kG7]a~( هȜ }6fN$ (* *|ԗ 4g)¥q"֖W_( ,f8CtQP xA.{ L{{H\8xFtߺ(ͯjS'K",-}BH PRmTQu]b#Έ,=Љ|嫼.G=n&I">CY!:,Oo5g <`+va#CSy7)$QzM5KĤڊj韢xȅzg)>y\Mk/R86$!۞=\"B 2jnk& .biоd [{r4U'k+TBMQۿOm26ryI\ghjҷ@!~Cn@ݞYʚ f?a >+=lY(Kh*-wylUmT΢<$XD<շ`ipHY0e_J_U`iު{UeU@kZstIR؉$jZ2~#!*ŝQJR[-7*6 y7py;Z"+w}=Sz~^+}Ka]IO`T.mB1`MZ)n}*bQل4C،ä> dB#̀v1i\c2u:ado9v#KL!]c!h&{x־r` (?H|__8`5svm>yZYj.\'8`4f;mḽp,mJJDvK!lg\»:+V7F0k)G04w?}l%4;=Q8ddh7t8T;l ?[^ò^ml D>س8ɐ'?Ui|)B|9A"p{ 7,T8M ٨CJ:.Bs)R#?]!=Uhx 3Vzo1XOC:*T$A b#*X K wH4BBl HAXYpkj5Rz)ʎE&T\Qo[%|/p%$rfJxGRa5o0q9ٟj7{>a9KuZDDŰ\C&Bumy3\30:#.<hrJZ0rqud^_2LمEue $ T` Dq#otWNe]p#_>/l]PWv(=gl^UFHHl)S#*̟7JVu$~I.f)y$zcαU5K ]pr,M)bӪI G᫩FMRғk9YSdOMSh&> nuS§nW-cqT'DK_Fߜ^,ek\lZ!}WDK""_^PD|[l{ͨ%H@26mfAK-<ݼMY ,{pO713x?}*@mo[xqyZQG;;N*6po%}ș3TG - Z\~'$p@YOR96˛ pJtH>˚1&P~m/`7W;zU% ߛ+P&8-$ P]B4F1g0BYIΪ?4@fvvKT^ ]O?GTvD9]㜁bg=vu 8,ywG]i>Ma a;kݚ83\o u,2>yۑ7կCS 7ث:CV;]{{ain;T#NlH2}vhbR|~-"£l|=`Q{ n}nLаjΚ…Ius 5+sJf#0F8Oy{Ƙ* PGU8}H<&YPz5ߋ! O+k"NᓮǶ,'k!si7{@ylXu}ի˚Bzρ lARnྯkR(xf =状{XZyZ>vG)Gzx:5!kFͩEXL竻l"VmN v91gW ^Pʞh W3&:WJst3/b/c{$YX4M8?m887`hbh }m!!-00CduF]_oI`¦5:cϑIK\8FTp=”qeS00CB uX%ZDW/G2S\\Gx5US e5C,}N(Pah# wPbpVbV#TbbBz-jʶ2C7x;`wujX|B@Il?]ǤO<ghAz)SJgL!S$uhEy=#*`X9Ŗ_#VٔMW+XD;V ' >u ]yYX ⨟-Q{~H=t#"!ًOa$b($1s؂erڀ;1f^@W+X o#}ij`QܖdXSnc;fZ"Ujh l|V(zI)kM"qHj=TkHhf:\K'aЋH;NN@T O齫'k.-Y:~co˽ڂ!XQܧk*[,}w%ݕ'+1cױ* DWabZ 'c~Cu q|C ѰAی7yLC1їS}# {liݘѧHee›lr*ŮQށZ+0Im[:=EŠюsKV1(shma F!lIO<-,k4xRR7lzx~5 lf7Y3 FE~R;, *?Nb9m9c~#6>w ׻ؖQ4xeЋNBkU< n7^б:bQxHJ '\XZqjM?Ȥ\-^EhTؾҹ;ث;9/ JQ@,ͳ`h ,A."+ɮ˔ MyLÃdŕD,Zmg?ʝ &&󼰫௃i$4}ZOmt8q\_\x,Updn / HRA'p* "?UG3Q8̸0=7툭7RQexGӘB:@uw]\E5SbnRn(J gE 5Oۭ!nz̿yuw''}qsu~)O W9 큾[$Do);s&Ga.8/+/+ ҌS!Kb3S]πrT&]ALP5obym-/+c˕[}7(SrsRߞkNRhg!ZTǙt2V c~üT€B5t.X&E)K?k5jrk&JlѬ`$)OSDž&CgYri5hؠ_3]DgH,\a ɦ\eZ&}kH \Ι{x M|*:D<,a4D/oO/D]紎 xM"XI?xFkN]TIhڠ#))o.k? ]/P`\$0x"S$/܌BZ0 `}fU{ dCD(`W/35F L6|h=+yFQLg=<0G9D7Aȡ64{lagGmQ|Xr`MN1c̕@'ݜ3r$ל}dY3Pd/<B3@3IY"qju [ScKʬ!|+&lLPduK[~3[QHR$7ᮗ+,4VXI()7~b-+.=BV+5E1y>%픔N`mͶkF6B12|.Ҵc*MBy<jxGxGLV.(8OOq55s7Ks8T"@ubV/y2mju Z#|'rphYnsz i^[Q"m:T 2Jnrs#{ a^غW tɿ@ -˃B)(佢v}m6yq@̩y01ㄧ)J#2qGi].GCEBpVavF9{G*208?e6ͷ+kYt(9UbY> 2׈$sک= ?-\~ʇwo<#kUTib/IwHjPL{Ɉu8KuY+6ߑa@h?ӃLcTf2Z'reO6Kt``#}1*DwG endstream endobj 190 0 obj << /Length1 1480 /Length2 7459 /Length3 0 /Length 8457 /Filter /FlateDecode >> stream xڍTk6L#!!݃tϐ t 0304Htҝ"] " y9k}ߚfkk6f}>yDCM=  ('_a|6# IQ1E0ꖧ ݜ !HT$&@H "jaW|68 G.G5$.. AB0&eq]Ї[C!(j)eB!$<<<ήp /A\!Hw `G?>'Eym j Vl H}5 6CCu6?vUj.[[Ý`f:A(O/ E;o`{`.|+/yH( u%QWSV(!0+)Bcs0/` a0A] jQnC (@\Ok{_ IЯ?Bn}\ w>ZV;( a|{H' { '[{aN^߯<>{||" 1 耡OSφοf ߽෦8Ph}v?nHww;C"z uMj 3fP99}PWe'Fc?q_CAt_odY;޾9\o;^R f 5a"0 IPDEoapm Vub_?H 7F[ @E[?oA ֺ% vUxB֒!!oΪ<6?HOms!.pSV)C$J'rLW>[q[t.}>MlßH?|]=ܖQ#f z:["3^Ϻ҅Mݭ*G?Kb 'rpIwRթf|JViS# NM-3;ۨ' &VDbD+jb-Vډm':=ͮ:\NZp={:&XH8zn;QDewK DJ -kvٵKCjNߏ[#64)l A;խ)i{H?IpcXWv efmZGD5F%TY&otw2weu)1zM{'Ү_F:rΪlr(fcg2k<Y2J>~Wv Ѯո/vb'D2SV۳Ppkqt]' oRsp,-ʙogұJWv!)1|T_L:\Ÿᴕg2FH_a{PP 7h>$ci-!HYJFޓ{uyюIZ5@LRᧀ/Nb4ȴwC zŒ/=Fd[0YY9fx}.Yn}_3\ }竗|'{# _XT 8M&gb?[id8s鍎/@3֙{߀)c{\C2&f`{Ĉֿx0-NA-n Ux``Uqֱ2\M+ܼ&((d5 )mU)bIMizm"o+&p7 (fx}GC0ʣLH"`-}O+7X}~8a:VEV?ӄE5}0d%}p"dp-yoE0pĭSt-]a9mcZq\4Aqǃ=IBA`\DD&Őpsl}:>QCÃeSժx v@J5d#eIKw_*srhա8U[5'ɱ{ʻ-1?P8S|գt&";I]$<jRq|(hm@YE,ߓ.N/BnaBlA%zhz돥 22-t[aDa %ն.|s)W.p\tiEAVHB5w0N!u´OM_sȇd<vaX)KXzZzY({뗬x){{,՘0cj~p25}9*Tz$/<}M-z(glkƿ 5Aoc*npfb>Zl'=8ܭ ,ӶUȬ{#cQ|O=w"ދCѬ:1e܄iiQϳxicĬddټ{fQn19HQ$Ez9 *FvqɎH[sO@^Gjgޤw?,qpK8XFk^XD^&VY"؇& %i;V"6dcJx"wk /h;rO "2?3 s6kM׹4z7Vl[fT>),DZR$""K~UBƮ]H ̪8?cxq~Oʹs{@%~9 W9f>x(rͽ .ԥts#Ӛa%W;Yb <.8/pdT!ۅYIZE5P2,t2?L k}~&&6&G),{H}vz_ +;DO1UW/n|,i<.ǢQ砙AE}0 UGHTC>0vK TB/;z !B%?w]hMx]`SYYUm=jo^7"I!*Z&ZTaCWs+It> 2lb Δv%%@Fkj3rB 1Z>ˁ9V M==JߺPv&̽v,0'I!04$G/pAuR<]រjOXm LI {z>%A}=1Z]zǯNg37d }x9\ˆ52p!D/fR0|j@o%>bVԒ*-Ne'"sd3f?cu<VZ⻐Ȏ"x!e~} sJdzP)WH!0%ps3Zv[~614Z%ӛDz2nfEr NWp[(2m6J{rvewz~S$f NcMrb"#}f-"ňWt<54D"um~xNO$)(@[ RLSfSwA}v`2|X/mgNaQB̋iđ!icx$nkEXi묱J 3~j|PBLzf#5H{p]&ַN?EWQv:7[/g?HNK.=3y۪ލ`idv}g؈p7} ,q|6%qݞ聸_&pP-uQR_Ϭ1Q '+M/gn,F+jTv;I@M[ZKe!`}UOep@Ii,IC"4lQC_Cz\xd|%,~[r8Ӫw ,2Z3*P viaiăInE޾YFjU+!ەRiz"#|ܛijqG Wpٍ y49^aB}6TY 8Co:vf/}\K-Jlʹ }dDw5GVv'a>Of"{*oRDq̹'5U%ל}Wq0թK135d4Ƹr[۝>svu/Qxn,$]q\ip?fqHT T&ؘQV'VyFnKϼ^vs(BgacK]wմxGmM*1T}Fƥ&L#?3̯ ~ȯ ׹^nؑ[Tծ*w"^R)qt:kFa wfawt}>C(j+R<9%={v^|#*[箳ERs}S֜-NײNdFw-tnj_\ѦG%\,f3/yXO3^?vڷ7W0 n ~wPIly#ldϴp{jɛ#¹ip>G2v\i<]ӆq^W:\G_ 'HWC3y> |э%cA#a.y`Ka_HtB={GzM|t_Kni^=; Vfg2Ў6IGRSstO@?fĉ:7~F]3|spњjTFgc7#eC|=h.< LqqO5ބB fxv4'˟gx َY2K;4zcҶ\gvKIVul֋,cy'{ݧ6g ԙj*kk115L, ^ h|掦,td8ÄV"z6=5Et/ӽeDƟp>Z n+XΉpۓLoO,FD&'$0>3Dٰ:(V|d?=L·>xsZmac O,s ej0jnm7n3"G4O먜.rnՂC/GI >Oeg RɱG%wX3h-!(=߀qo`mJ1A], :L> MMk'Q+H3}c 3 n)HQBFgQ76/['^ &wbrg\2y=}րU&k!;v#!³7j~Al!< {|4d3T󢇭]FW)o(*Za32c!eTppo6Rm[rby{G)!"hVVZq,KF}f+2/pS *OװL~(0c䒁%Jy_[- *FW)^\s{4p.2^Kġ`zq^|=YP34Z4YV^'JYFNxwIHRIi9% 26ЩbYM|Lq2=紜rP5:>S^v)"]f~V'ztQV[b!ksw\v薴4<J,(*ծ4lF폝8jԈ0d2O2Kxt!:OFMS{vSګI 5't Z:N:t!aȿyHKWZSL1s ֿi,DTw<)>>koxdjݡQC9祇ݽpaOy?B!,L4#up|zm0ܘԠE%v7P=zld?R LY>,5P`ĸ^}r%$#ۼK2G礌{}h~"%h,[EՌy\'i&2thnco# "CTqꅪ^>4[nBߝwդñ1\ $T~Dr@=bWt 9T)nfqiod}qofK&u4r\ 1Yo{M.h l+jt STn矇#ʤ@:?f:QlwjVXnk NM!޹0ϧaWi;Q` &X>x.^(,a$&]Rp[hޣC2.iA, rl7N!} #t/G}Q6v y6K?<~?{M5ܼo27,}3FbXL!|NDU^> @73;qr"> p@Iy6OXǑS2N|&ߘ~w)< vxY**qٓ-+@9X*ՀerMDV˧ :7UzWcjXF~ZϜMQ0e/A ˰l*|[ze Ru|38}ַdȸ$,pwo8oyĬC&:~,p/bEg+Xj4&R 2%r^?ff2FIZ5%_aFdTP[(p4 endstream endobj 192 0 obj << /Length1 1543 /Length2 8003 /Length3 0 /Length 9023 /Filter /FlateDecode >> stream xڍP\. A[p=ww 00AKw9sWWjVwRMUjB\X98n6.ZZ- V Ba 4syI<)C!W0FW/C@ d Pf(@!@gZI},,@'lb> ЄZ.AAݝޙ d-p4@'7%w3{_l@5V.fN@ B=\!@'My%_,{dwA8YX@ 5 Te\<\Xf߆f`g賿lfl's3:sp989KdKI=;?)ݬX Vtu`׆]R`rpXѶ5+T<x_WͅζS|Hn: }l}uiKy0W3;F 4 b h)oݏ|,V{I3?i ۚlqCUzkmȟ-Cpp].q+rz/n[wvuk&-ud)CB9R|s:2'+BF2,Mm1g,Z5ȦklCZV$o,H5aĄK ~vh$2Z-iS% d3No`u z|e><=TsҒw!|Oc/fUeE+ ZCb9F#[5A/E7=VC:xt_yg#rYE>ǏI Q7CQ?1YEpp-ҍF ߵ |lt:O.^tnv%miuL=+5i^ /y۞"=^CM{6@ʫ+/yC Vb6hRtȴW_|==N9,Gį<4E*M7檢wSѪ(bk9)TC NÕLqq%W }9иǛ/ՌvDd[ @J0h8'@.vea$ic+G ׿5h0ޔ 든ڃTw晘\(鄋]XN[ecdqi ' ̒*V1I9N1UT -z)ᥥ:~9\-YYc ̄݋t](}flX&1lljorOQ:^_,_1 EĘg~|c¥,K@O31OD&:ʐnŪpvG?-k ɶkƊX`q.0(vJ|+WK枂0+}3-Ϻ 攭UB=,"?Ho!JfWo8]KpvT/d$Oq;$ 1rfW]+fHߏJjjJHsY0KÆfĦR:?(v0 c9b@ O[ yO6n7JW:NrQx|Ey=%xHl*ƫ ָ0If厪=% rxxBIJگm-[j,Hwߪm:JRSTxSo^pYkTTS(zbNBDggg6_xC6ɷ~! |]{:_N`"ir6cЧ9\a3mK`#M` eۧ5cz_;RyXD[<#2| =zC'<쓁AEa=&s`W5P{xΟ[)qynIҪpM֛?0b~\MrmU;nTI,ݫD-J/:4#8.U'%En2HEY )'l~iAr2-.z *:Z:DWkdK*+\̡̫6LN0_v|Lt1`9/#ZV a%c6r0B72 Z*LGG< lpպ9T8-RX{w1ۣm:Y,:hrgC-N e3]r˪^u;P4~orĆܮXR5S4&_izиJǖDobeanSlbu* gJpZE䶷1:́U bĺ57=ɓ ߾N!ռ(/;tRdgdp@Ҧ*GϐM/mKlvHhT]⑉4QӖ!uمֈjj$+SmQF~qzzT ۀ]qe!:\b)zLE^ܗG8 7xϒh.h6MEDSƋnj`|ObFD~b`ny%.llU_hBCIzIWr3iF#=AKVE"g<̼"x77,'Mȵ g ֝S_Uq[.xJƉفS!Eo}#.C˄S0w >k?m,/Jo A3ZtR? Ą${oG j|K 0⡊~tv[܍c ]9ka)7񧷒)D޽8s̜iW`E4tőRՉ#_ZsªKTYwɴxT :svlOS s aզϵ t=ÛVY 7Z sNFˑDfn1~3Z+ESA YU|!S4tt2av+Z;Ш9ysǔ^BIm,l)?˂>d6Ճ/?;!QNSב>Y2-Kzr!Ax 2|XnQ}-K(O]}p̪Qp<ev4b!LHèȊRNYa}T纝 _Iy?g\'^Q(B9 ;K,E k*'^*,OO >d R2K(cO^*~¤%ʖyk(1m& }HAOM;v}3Eo]a&¿z*̜:ibļydžM|U΅%e,(1'C baF1nBx⺬ci5Ϲ],&ܦo<w` Gzc"Z$J)@vĒ7"2v4ͩA]Hax9o:T4YGî3z8L$ory8%~S 5T*fg.|)P5޹?Iʶ(?k%P)AdKE>{hf+i;ws $8x0g봕^u#DI%}y~gPS#KaxExl"er16賂gBթ{ ׌b"I|k>^lAI}q:<&t=!2`42;N0’)MۊMH, _JGvlM}-t"B`WAL9 {997C3ŹI?rz:n0sѪH!oMI\DQAt*W/ƒzB?@Tˍ8. C){npx[`aP2;잠SQ? ܃_Р6䴿:Vnr[U.aDG~N;;dZ+J EТ{@7+h>t0jNVo`_gߖa n)W0/]Rpw[{nDf~Gb\e5>£7O2e~bP9pYmw:elP)#GAJn\]lY Kb{M)am-#eܞGZNS9AO-4.N .1yA_8`-q⥵Rw0AP8Giy_z2%2:L.0чD3RiqM;bb) 6&Go Ufg"ϙˆu6~MBdbY6C067nØ?].QU::0vzͫ }+NMak`yk_,HYEcS&Aq,fͻKfOrw౉ErW\A~tд|kcQPʖ%eܳO"An XRб$?bSϒWttF)d> T_رXeՑ+rtV\i0dk 6pׅaG/R۲zt+H(6VR!/wH{D8sub- f0qbȰCLN.p9݀ lmO)A wQ:yȋԌD ZO7SYk9}妖 1wYQ!ܛ ZRurC[2ǃzأ'Z_?*(F?!Gs`^~n> iD[Y}a;@X2~ND O_6"Rk{PmܒC ~G H Ev$$Iʪ~VrJD+1awRˁS%' l̵Ο8u)Q~jB*=@h))M̖ˍ$߿`PQc`^!*318&lof/[QARZ݉ѯ+-ķ١"|ı3xr|OeC,Sq9aIjn#Kb60}%p.U(֑z;vHR9ۢ_l}BP_ ΰM`-L.P/nkDh˭]ڜ7-*1 XgH2`,c ^Fxsy{Iɳ/Dcylp)Hޠ ikT]n,GK *% =ԧMW3'~IjOw jG![s =*qߖz(cb̰xcӠV'3TL,9tiG $De؎E\dڎ=X]< &hdI>:1 P^"ʧ,tfZ+OFlىp'I{R0EZ4m0ŴFzORńUF3r#m~giŝ1Tm#RZ.yHKg}`$sX?]~;aJ}s߼ endstream endobj 194 0 obj << /Length1 1900 /Length2 11938 /Length3 0 /Length 13121 /Filter /FlateDecode >> stream xڍT{6LHwJ;t) )"]C3P"!]"ݍtwT`77؃!@6A:?V b [Jrr K/2@eR= b r@>A'; ]Jly{0V?SFP@/w P2XMmV `@،,^3ܬ u3d].@WalMK+7c'*2.`3!Pq6VۀOk@6;/gcSS{;c`ne (A!,coCc[g{ /q51s6ur89[whfvv 07?)+')= w f.oV. 9,"?2 ' wSK5=@)C{{:;̡%AƮ o#T `fe ,C 1坬8~K:[f`[?=.{%5Yi JB `98|jl ?r`s{d]®>?XЉ )<M(|d\lm2VvVξ=tuUYo` 4Ydj1{T`V``rp/tLmG:@Х`S{ 0vr2@>1<545v6= 0wBvߢ]Av?Hn EЭc2vA jn/ӿ& AyZz8XBo _J_B 6_z(]?usS-G G6G Cw_BW@h%AгG 't!NJf/hy.θ BsCr Z 䯻xd0go*ɺSM8Θ4λdFVV;LkNW ][ b=됂Ԛ c'wQOjz=:zi7¶f9cݸȺ,V*=LF/62KDa%Gf=sǚ~%ˌ}ɕ侀u;aLӹXwdSb?QgQH,a]=LP>/{W){_l: AapUeWVL!?q#GlJڜ;D@lBPQ.>ZxyY-QշMŨi[0n HĠf-\h7T#ʑB&Ȳx: q&fV4 gM1V$ؠxo=2ϕ\ڨJ7Egm/Y Z}&BҎcT8crM[g F~qΏ.zk00Q jq-Q?,xZ)ϺQiP$2Qݬ>tNpG@1D%}48JgƆ faF-ad8EB#{dʽÙ:c{vU3MJi5@ȑM˱T9IZ0߼Ex Xɫ/y=:FGs| vݧi_'x1a+mT礝(Xq'z[␶"<-qfR_G do]=pM _\ZVpIzBQd-4`63/DZĔFrO$d۴/1 -]KR6GWsĢgCa ?BOw5E^YѸ6 /YImn>n٬e3xOWDcJ*:v-iߺҁd}CiT uTK0i6g,lv"8><| s#<4iGh$hcUu=#3ɊCf}$n)M"N~ɬƚ@)yTs:* z!ʁrW6yɶo!JI1YZrnDW"c㤳; GKjlw/nk{eg:y̕;֯ ڔџO{ר},M_4r^j=SXpKj!048Ubͱ9#u3ۆ'Kdfh(hL5pwvqB)YQ7F踯ST ZRI1==H"R0.i0^l%$j&=s"S" ^_HN ,X^~w؉Id"UfpG/h r$G꼻,D@ja{z;&bN޵`G +`ޑV EB Q_V\N`8lI?l& }5rnh]rFQڐ[Fg0%XgӜ*fY_'8N0 2- j2EE[0WKt!C_7{q%o|R葺ȁ}ME,iz)m RC4!{Sƞ/n4S,ީM.{9IxlRJ؟҉$o2 QC\RU |sh|d2 MIpӇU>Z$μ9)z{R"4q/xRS#/%BSo\^o5zbx1N3_"$:?q|{|,3Ukz[Q4BPth-UÕzI\2)=7'5/ oMD\6t- YYvc;t,xFP").gQ91g2-~mw7=ZĿ! e-$F#IcVaj}y-<p{mVzbr:R }Րa=k& ;I=W 9b9 g6q]|Ԝ]k3C~Ǎ ّy|,ev5p[҅ '&/=&*"EsYT4Vm2-2Z:DsR$禥<&j^Jruzxb`"U׏(r>µ~V\]D@}*-?bYnڏY7I#0jJ`4&"/Ea0Re?rG#!:T}Jc|yw:̿b\r(s §;? C4rڧ$RԛD;/qJ:%<{Xl_NBah\튏 e X.gyK۽K@ڗ;!#n'%e#@N5,b]-i{wzC "Rɤ_L>6T32@KOA;2Bss.H!Q,`z"Ь4WŴx!.  aZa0ޘ{>:;\(UM}A=BQ0 SldWX  XKT滜]*T tE!,Nٯ]܌!-j[J?1h߃C @;XlEBJ}L+Ưz^Yu5*4l&|ǸcP)ף 9 ̮E "pC[Mo0=Hgm*[V>DQ~0茏olKM$OOӂhQ#Vƀ!:/ %L& L d\LE3}ǐI H:1#X)KPe]Ϫp¤4 ~0Ell[)9S|eT)גaI@&Ԣ59/1&{`k8Ӥwm?Q]9WŽfӹNS }b%FS`fFi4 &gf{X sR܉O}igg )Zrbڶ۸ }ֈ2#+1$/Ptm~x~o 5Ix`yr!To!εk^R_T9phOVqKvj <8H\K^I\LcNx%zv704C(&W[=.b2)T y0 :xfzc#RXᦗt9aZBQ"ɢ%Lsv}r#nJ8._2#*"Nm[㥾 g {.4.3øD7x*5<꙼ԅ?RmPM#k͞UZkDž{WU4RĂY!E`KWAݙ/$(O/E-XŶ,$d$ONeob چC6'' 8$p\wmNE8g[̭ԂHn8l|J±b8hl0+]i1 <9ikq!AQ!~{nmymXg5NA2y Lvdnh9+,U,OkVauoc] ]9N7ZFJ7&ӽӡcpUi}Ur+!k>QLqzki_F$Mk8=_# l 8^HU+}؛F5z~B%u^ZՔF4qB"AXhmV[!í@ ea2>֛X!+֠ܒ~3cKO90~c;1.[oAmo] J#_T#RA+~GZ<DWR\ztN;+MߝhMfrC=Ç(гe;n)@d>JGtJ `Dq=YLz~ufJ0pCN,5,bE4oy֘AtbW}NEM(G[=%';=nK>ckb7عĠٔG^|ݾx =r:;qnEGޙ &/㇏)H)fn㍻X~]ҖPyQ PAJ'A}v|CL+⢵-HqR:]2:}Iny %2ݷ?m$ɣ9MɷMpo{g\A#a~סHj뚒b_6pAm% U1zHߊ0cC9{WL腜{y`a. ^whr\$?ֺ+d Z%_rcp2p+5X}r~j?o ",hIxqs3ɳڏuEU0#JȏᏪY= ;jbiNM1haTnki^֦XڂkĜwfyݎ>7~yK{)Stj"LȾ)Ǹ&W. e fe Kކƹi\GuG}Jo JDۚH4ͩk:&[TIwGWXoi8 KJъǪ:ӽR೤.;^KV8-1ZmΓɻ蟺J2D 6;aj7nEw9Yb4z֣b%S-?V2Mrw`E݈VQ=_R#v$i hE ~cfҫh?$8F3/ k\h G=nz3C%ciɈI݋wR46ctKIy 24GK,6=avh?\?|w.߯ܬmrv/:?V#C`\d5 0o3Δ_gr}l#y@FT3t/-W:z'$PB6"D{MvdK ¢9F.܈%U )hcxsM4ܶU#ФY~NWh Ԑfl7s`:d]JF,.,D zy?l6^۪tiN]9n֏fM h˨w5[Mt 3#J)H/\ w^aOEە PaJL*hV= u'l! ˕v =̩#fPME| U20@>NVnwF/ubUgȬҽ4AT ʆQ8 FҶ4t1`<ЉG,Rw͊ݘ0Ir@H;2?D 2Ҝƒ kΰ jӋ ڳhA$vh'l:: 8>|c]&;t^$ O-Y1AMշ}]@USͩW&-فͰM) r):!= ׻3R)(~3XC 訚D_eKn;0%QȿďəD-E;PL)^xyIMt: 8s:ԟ]x;mYg)}xׁo"{Q$˛2J(xnUFt ;7۬Z$V޾g,R" >a\={j-C ">]5rY_Щ12UױaDJ[g( 4+R@f15ОGf-DRX+u:͚*+ƸaUЭ͗욦č1aZK,,NUi{d󈄍<+N]tENXx8p9VI0n,%R5ͳEkSf) [NhV'q-$f U7- CF3_X)Rԓ$<z/ϕNЊB>lsfwmgw8gj Ό9 005dR="g,E1#f0So*43%|\F^w B>n2 &ƻnnBNUH\1|nMP 7{\m|d.O8 Z S?D624hYe)r@DY;\f-E)ha)l?ikm/D2;{ 0A0R}>9J+tWHpF Z 6&s]>YZ`S'K/ZYH솜CT,\^u =$]04TϣPp*aea[ 5w>2>UþI%7#E$zaَp-u+ȔyEnnP)\ e k똋tRI@R_xZMftӖ۝'QJw.LoEƑs+($Y;6<]vmJإ/Ӭ$VƝ%fO. SD/vpUnº}+/|;{Gge6L*Tz8A`h+=ZZagֆ̵Nz:=z_/=V'Em̢x %Rbs+,k2X'BVҽ#h$A${h7_P1YԛhO [iDqõ  1 oȚPVi6 Q2 '.}W +hD} _T j~'QML\k}G,bm\/v^6[WD' hU5PQ܌BeyaXj|jhEvQK-r[1^I ̍ٳ! w^,񬜝 7vȲ_ldHcy8Hx3XX^ Utl$'S]$H8 Q r]w|rNzyCnקk6QOU[NTWA pstn?? ֑M]s鴥L*~o&=]k 0S^V*ZRG.lu{jlyWJ I8DyvjaGa ԩtGQfم#2O?º~}\D\H剻:iqi-_KZWj4'+TFvN<@ãqւOF۶̶1*p(46Px"+X)bFy.m>T Cٸ=HkX"0N4UqNXVggh1|s[ewS ?A6g?/% ]ɠ(ERtUx znE0x&ㅷR #-P;r Fg H\cLCd-ioˬy)6(~-Z:M Eo2OM8%&w0@33 tKW\Nu_ygvt~8 _ścͮGaHʱ, ;3_FmG13yx̖vR}`< C fˤ>Yh+Fxrk Sf;)r|d2,-BpB!1Ə9q^;fQ<qZL#C5c<|~Q na`3VeRmɌvt-aK6ե-[W fk+Pn$d-^Dq#zCsxfW#E'fft $:w -Mը;)Mc:dx:RUyg[/mNcZG)z*.mm$mFjǀ֌U&l ^x N#(.|`/ÏW;f:Ix>4[D>گ&' ;ǺOl13h/]ex&#:)d v? 1T}Bb1$H7  Q+P:44]CtΕPh&#]>_/(&#RM}Ei/z;_n_h"h{^wNZwDظJJpWĪKc ov4;= Nh(Si M6,mBrl z`E 6@ҽp2=kS[JjK? djC&)<)X4ILFb)4g@:s,)–b,N Qve_s˼@g.d $٣9[N%Ad.Rrr"B:+Ÿ$Ci3U/Cau ;^;h9q87Kn ~ಞ`BYPR~~EF#qET#UtYh#R4<^>5 T|} D}UؙSnL}UO‰k)G;AI6<+}%l$V'"I ^|(;43E{ endstream endobj 196 0 obj << /Length1 1841 /Length2 12756 /Length3 0 /Length 13904 /Filter /FlateDecode >> stream xڍTX-k . (=C  VUuϽܢ URe67J9302DUxl̬Hj g_V$ do(hf3v~ ȸX,,\VffڃybƮ 3<#@D!jYX:%ڔEg:@䍝-o;TMA@g*Aghlh-*@' h]-(j ̪n` `29%ؙrE_ru4FW@v&:y,  @QBݙ`lgG[1-O ae[ rpvbt!eYLh?1hvL^_ks-80ہ]bx3!m:8xX@GԒj?,x9;Źo?H^NƮ@3O#$`!] 4 <e~ Vo2;eUTQDD^ l<Vf 3'mUAbw=/oo®}  k)ؿ)[z̦o_,23OTHۂl<ӫ&C5< b^ig!$@@3%_RˮǀـJN? 3ަpz.vfL+' 6@z7byC3 01;ۃO.6?7;Io`R0L&#[;ΘYL@V?[u˿zh`>fgq76om,oDQmNߨ9[ig4w/_v[+7Noomֆ??'?~Sֿ44EZ^7dUv_#Lư7?Kk>:#`|'4܃#N}+Buڒd2׊4a`DAMh[S"хE)ޭOҽlu,daOySl!Z=JϿx"$s Ιun#{D&4KküzSG<\"[iJ/dEµ%fB)k h Hoc,9I *݄oX`2EVHLZ6k az۝FU L+`4}Vo;gq_e?Xm=i>ʒ.O]Ne %W8Od2q! .E QX;Lv U+4]~U,K& .ICȆǗUyJ0+/Yח+DƩpNeڶ2z%tE q^͠Ud"KBM+~@L£y]{lں"UJơG5u w((]AAXAeK"҄B=;$> [_y~彇 )-ƴ2;~kqz>&Yoy’ү53%\|#dir/5J{N:69}$1; ZTPf#F1(( cS\wp%i:;Ѯ/.d(踲b1Jhm|j6тx[멋ߚ7v^,gYjmy~=Pcjg(;1K kyO/G f؝e30 s$q0k;5:Һ|IFM{}1mIw!'N'QR\_woW>4׎c+4 fʩ8(][WX};1R5U!>B"Љ?/|\sQM[]Ww XEwmܖm;GEMqRr7'97,Znwc|+>723z% dfyls #MtyيmU!J/Zď'&LgBT0^%˛_fI~!> l dtR/ARG 2$jl5 ?\WQ؂4@)|lO$q"SPzq.I)ۼ)Ku=S rph摅*e`E3Y4pmodLTdž aCܚxf1( ;>{6SFGf9Y ڇ2Cϴ|{UnfX+IwQ |M6WLʔ !D⼖aXs '_;NDD>:$c7|IDF/8>3ǯ0  (GdD-&/ۢk6*&'nk5o!˹=~hKѨJnnWyt3 G'>WK bΡ6LJ]0(e'G@><9*ckCƒ|qE6*fѵtӫFsl:v.]H -K4Iv:9e @0a^hr6F9n~:(z}C`o`ڀUfF-.RUlX%?4> |Hc4dvkA#ʀ-/[!^[7c2;-[@>kT[:/HcէgNAЈ熒 ?9,fgar>j\ 8>aV1|[wϠ",3S̘g9c]nݭ.i"  #աu[;@ARX򔱨$8-I#qmX2vƻ#)J #Ʌ /?_ ShBNLpDG ?ERRmit%yjλMMa|*;*T e|PTLLi/jI؋ecpaƫMlٿy /:AGcuRaO+9uF^Qw,y`bu_Yb+1ަ 9~Uo~'4ZO"nlQ?z髼IaCݣ[&vk]2 FaZY2Y-,_|nvߛ "&!Lv|mV8Q:kybh {1rH; ͨxpq%}tl tqZb3x%.~4Ke_*Yʻ$|E# H{twofebֿ9K& Z0O Ty&ӨɿÞW\Cp`[ӓgC&ߪ^<_2M" @N`t؍$=JU|W@G} Ԩid,FeI2 \ͽG Rw2qmEr&m(q°}Q!I&%R2Fmgw}/bvFPGAMێkT}3&B=|y=oMuҶ#de05X@p~{v ju3i9tmѢ1~?mS;?1WBʥ!TJBirQԥgRTw݌uʝ"=r!b/O18&>ZN~Z ^JڿR`H-1$儂DBpOd:U0LFMܓySBlCmSc.a|v 2s# '(|#%Kbs7wi{{^E%?q58߫ ao"TGQP}MWHj5dyTުp~'BoJWNf>lFmObEuǚܴYvPl]Xōx%l86 K찋-)gp[6!ַZxe[z#[RޗWa4f;+ Bh_ >j A$?\h) ±ߋŒ&:. 4Ƨ9jڛ.8raj)11zIm8'│PMzQj~9JH;k6R9;.fu" ` 4#sBln$psnFkBLJ+I2RPd@CKцo.^gD/J,>AjﭻH/umc#vƶ~(K6iͤ?.^10Z}Rjģ?ȉUKN)psЈҧ7Τq{:d %dh풫E I1q>(kg\FE=aFQG )4 ҉"ar)1_}cݘ"M#,0 Hg[E*wgTFQS01]wJ@2½ :kcٳyNU2|&{PzYuqStUGp7L}ȟ橐qa.Dg̛ZO dWMDm4%S(tX6=g7m]kE~( 潬&Bߛ;UF߅;l$Eg+7eLݪ2 tomhev}Q>l9o1Ӑk !Rn_EtVBvhƘO>8* ̏'lt"슿7 Sr"ؗj #$$<围i&1g4YMwƣ.Ř06ah"6EY(:A[9 K%dZdp"oJauq#_no+o՗8.*G<ҕ/ +vD?-o !?k h言G)y\Fþ'n.[bOht^`j;,e /tVm:t`. B4-I< 񞡽O#I R< ȏFnJ.rlڒs11SO-L8ڲ+tOH??E{Ar c\)!z3[0zeJLU[H'zԹ 2 VU~FƻI,ËM F*0VƷ[ #g00GnO:ލ_1w#pz<54}5CbT7nJ}5 ,:{ĥЄ5 .vYf]x^wo?ؐTq92NWݼE2eBr82@ rDvLz(nN|pWor{]><XqQ%}uϬݕl-٤JA X)3ջ 0)}c%?Qk3. ǻgC1֎_?51'߻B.hFh>ӛ+Bgt?uSN|\] Mݖ_t\<@d?)zLoe9|W_Ds~"9GQ$4 Zbjޗ&U2>a$ًK^]Z+h7u_iR^AxV#&|_ix/xD4+O1H!  r-a d7Mixq~5HLQ,a7I=B]s"D`~JkXU(k']4KN;JsuӘ Cs{QE 8>lw @*Y7C׼b.NγQ@BQHN;E}z)Yt}M6A=,~HCAz(5n+xB,DH{ mkTu +B. ;vLֲHYwʖk]*7mYMeNV)'>#Ђ kz-ubEf&Jf(Ñ96!e>34ХGsyr\9`nvdO[ >xòS vP&HO0X *ҁ:#a@+g-(v^X[Wl{* Lmǡ`EEX"u(F}"$x3b/; Y8W疗Mxkp%ۀeY*]9hc@9wP!_u+~,))TJ\$#Ŧ3@LLu3ï@H K=+9{`TN᯾FgԬ=%#n]r)r[|nbd6IIL΋Ͼ#~.n"wAIs4'fP}fh 3:>6>^d:]8tOb QU8Y^,%Z@ hT:f+S?z4g/Sw=%O?f${$vIBryڳdlS 6ή|g n{Mr'=9rZhElQX&=YC \O{n(k$@MÙNdU)`T''\qұOKاGќ'`(A@.o`;hDkxBOzϩ]kc_w[d'n}\=inn>@˒ҿ בh>լEAOΕqrZx1ɅX}J٭TH,گKyJP{kȖS[C [nʓ3gؤvZS+rl/S@phsZVleJЖ?Q EO ~$>5)2aVQ@ DJc̍p*cN8r{C{i"~I_e$s?1R,\%I}'y?Y5n(7QL6Ӊ>mDzzUozJ>1at7zjOA䎎ݠGPTʦ9?ٿʖT*Qqi4y:j uWOz׳$ ݩ@Z {̇]S]2mpCpZM,klmIgmnl=db &1`1Eߴ5;Ÿ9{8}7Bq7U {6}8Wy/*UDs Igp2"%9M ܭ~A%=ӌuژ#="v%cwZ$t+(<fs6v~m\q^ ]M>=gyO_eƜ^L5]!I#0SIcPdtSaESw\>8ZQ}z(2:{2Qi}&= =o2K#W}tmT/$kynB`+$swoU1X3!|cɚ\e/dFAߧz-/]) | OdTf돠c3O|=iwDy[64kZݷfiB0(< C/|HdAޒy^Ƌ&Zqmp02 oρ+,>٘c8I$ br ~`!f̌`>vxJ'aFLXp-~3" {q6)u1z!z$l%c0B+޳)1k+* fYj-mEXz[em gew%;8C=/yby3 8;ۘVp[kD?1ECQu KޅKؤ7B71Dخv$,o Nqk5]eyN$V tW1#fpe↯YG۽-LBn  [|U'%N?yͩ Q2!71'fkTW%-]`pm+^ ү;m'n`32rZ_2ّbYĝJsnz3NeH&ݶKҧtX+%B62zHe谩$ 9{d,CHcDi]i<^KkK"<0dipc])g'od =0,3Y_lKt_k'ُlazoOMү;Yv? .vϘ^׫>q;VIGӡclWalCW5zI,?(SOx^^$+:b$+ąF"13Hō~-iHrpRɌnfPqTl>F3؄ c{x9LDE'lȈ'5)^l=_ϓkQϑ XaFeVr_)1g%̩4Ү><i7pfCD <=aD Gu5i(0|n#rT8Iz?s,u^&v>s̗h6'Bۉa\'m&ۀ0&^$ ?@~]w2{M8rI^jcUY8Nޅ੪_bA\8Rޝ}u~Гʒ[& R65ei|x`qN͐zV*SM]4T }' GFPӫY_Jز C . .*a.FPb<| XPIg3E)꧰Vdeb?ӓb <"kY`oU42 B?)Dד!^Ũ!t-lPùW=5T( j$AM 5mƂ- bzB=0*Y;$#)^eY'Rҵzj8_'YiCou.;jxRzG>/YZ9`hҍX̔p{ ?'oˬn'-rѯ3zހ]{^:NW C&جd-Fgٸ'5aœ/(>@tD/W99[ԏUM+R;Utz)=mZ)G&ie)"'}})ȅg|l_?W@Ji̯oK}5%h9UKjYVYd +Gz~ťsbu!v r6 alsTxqȏ~{Ai4+T{2, Ϙs[ݲN P-AN8jp,3}_ Tɬ!ʅrTpW˞" jz/;\ɅEbZHj)/#lgVM㚶n`MɌuŊ5 ` -d0tƅkr}:=b[wQD;"Q`c~+}UWg=GC?[ehZل{l ?E|!谍z+e3S?sѫvpsjc2 *` ,C鋊`3.ɥC^QS['UWK&2 ouROB*6zr,*IuKkradk(9njWE%2?@WkUh5詈"àR76J[(Ec?R|TN##en)hIo# Br.ǻb;vKiߐHH8+)2,A(61 GvQq\xO~] CY%[>r/= ?It'0=~lN t"7p6=r`.gDI+J_?'km@dyp)>siO?P 6^ .|m:=`Au$|$W hhiqQgڱ?< mPBf)dT}쵘;=9?{Uo<}£kx ːڨ1XlI$h6H݃=Js?C AH"p@ "6K} ~QTĞ#U f`r,p_|P&G| endstream endobj 198 0 obj << /Length1 2216 /Length2 13753 /Length3 0 /Length 15087 /Filter /FlateDecode >> stream xڍeT\SXpwwwwUC܂, %XHp龷{5kQihJ!V 9؝C fBӱww\!`H,_l2/0@ pqp7*TJ0 Njokr?,$@֖`DkKG6?%Dݝٽ, b,/{w; ~ Pt3 @o6x18[n/I` r>@[Q w ?88)߅%[Z[C->`[#.Z:A^-=--^j ' |?Y;;we@i?{W ><`m~pfۻxebBcx988^,c}3/'o~g({?7KOo"NN`b_Tj 0x!'?L_t}ٍ U`q[H?+Ul Q?B`Ϟ0E prXRߞ<`o+?1/pYURo>-V=We-$/fdl&g jػ[%ͺ Ҁjk֯_u* /ET\?Η3 qIL~|vߦ?]AvK?Hqص n`^N Դqr@7kv?Q/]YA/]Yx^\CN);RqttW'O~ ?)/I .2/~ пC^Z v>v/Z{0_p_?x__ Ig?b//#1<_/gw~Yqy^pv-.w_rXE Rx#|9Ϲ/ +_mw/ȿ^h|_%_ϟ^R}Ap}e]z%@ kypC}xM$8w/gJl0_Ԉ^\ h؉UêBG&ʾz-(ɆCr &v0yKGPg@ጪ!v$?hE Y`Q.c.ШtT[z%#_U8s}RA(VeB]c\wv]ПYcXZTMu$hx|I)?tVKlb)\h-+N{o`8ӣ4pވD(FI/N*DH|vLڕK23o$F6|Kt@ Qҫ>»ªX([3O2d(o tpYzl/ YM{TUD6LNq2'L5QxNpJV?ӊ&cIN.@R](10zu8Ogڌz%G|:ĪQ+QnLH1XaeKs?f.z'.CLT"c4#MSVz4Rv2S5ѓ-G7b b``|B! R&B֟.IO[,m)/Hy1FSwjlZq[hzMŲ{n:3;FLGutTx:㧢a.d=렶!qNM&u Y^PK\r.ߟ*ddDsi*ʅ^ l_X6 u$ *MO+uj_ijҿ=;z%JB< WQ3tSzCS|lasI uoc:=ɉ#A' Eٍ7J,b'9`).C s^Z+5S;lᴴJ,G$:΍&UĦi ps4Qm i%YhR! 㟚S?KH -l7H}z28O 6ibSaW>_91l`5$5LQ%3m:3-]Tוi4JWAmVXJS0DurdO,~3иҞYMCZÈ42eWd&(qn VGO7~SY E‹uKVxN\Ў5sդZ{SLQ<7 <T*t116+l7[KϠ{:7/Ȣ|B{|S;=e0F(GoW2CMB\̚8qJeꎤ=%4q|K~d+Rq@,/^5!jakHW*zSZCu`tlBャ(U*J(™Mwto"ᩓrx SyƬ|wtvZZd{$ؤU ҐNHX >@-1&~gIX:pf>O"o5=>w$9*1c{l5~BPUC(}g O!j1 3NfnGdq^}rJ1{@V.o^,~+VPV5?*ln@q-g ns's"(Md4V#գ['[Uʦ}Ȓ}h1gʜ<1ߛ*pï0aD4@Kuˍ^Â/`ղ{ˢQE^L9ox(RX.2}p6]_P]UU2q [QapnӞfɶʪfM>^Pl";/i$nxpZۗH_]8I\/scS"sq^6WL YQ,jBm~6Djd*3~Ri`He LJ> M=&)ߜI ~+1uj+A]Zfd+ɸ-sC%ATn9#Dbd71 ?PYiɉ=Y1TVxKbJMM|\Ս0!HsEy&vm>,lA"%6 d71qUhpF+,s~zKF(xCf {[C z uxyT۝ص-M=dk;cn# O[)mo bK009*`Dj?|έieF[,[5d'rUd.ں^4VuGMχO%GN/=AΈʚWdJĤ̌ء\I RT'wQeoܬS1겮bOk1Vc*R?Qrm-RwXT05DrdA 87VYp|M%S)9z=$y>0ЮܩFX_@bqԭH(2G&$kZQ:CQ€YA w$oRY…?bI\lfgƴn`F#?s|ڑ + 4*~V” 'aO/Pmkߟ4);-ɟ&r6f?=f N3iZɲ(Er;lTE6|9~&뷪K~];dWnL17e't̐I:Px&78mY*|цфܓ3{;wQS 'j^yewxGR^Q\;a^>G9̅H~s} &So"e?V 7sóP]{x9E6֡pD؍Љ SY;<_QqQi6\it8QT,k(<ݹ{01MZ vq Ydߍ!h] (W\%an֡Z̰ nMkx wWCΤRQi\Tf=]B-H9blF /ʸ:7, rݵ.(Wx‹bŝ#rN|3tH:-[Nc m챍A?@0Wyu}Lgl(U ӍAM ?wzg_fdnn|_g$EE2نq>r/jZʸmۏ V.VW# GRS3?|U񧤫-W" oux6cࢎP>St5:S>lӸtفtg.g)YXt!{jAKK)q E}M"°Q.ۺpz!8nV|Zt)U2y7!Cz7l+ߢoP{X~&L.WQ^G4.Mr|jM {إAHy-}ehŐ] l\qeM}ܺO6L\gǓ]Y<0.1T~{$~%Y\AQՅAU j#'> 9U1^#Jrk` ]U޶&"oa2 S3򣢙4p pѧ8@ֆ^ w<ؖnøC'Bӈ)vJBw@ g7޼I*^wk7MZu'(&i >ի:QK4~,7QpT Hb^~-gYL\ƀAa5l*#5XXj&; WNNW&?H3 9 F@(b}v,jCYLJjj?PIV-5"X79]sS lwXJ*;egtƼ# =_ce=LްdI JXبd%g8 -'/kJ-Mg׋@5~v5#ª tƂbJ3 Mk%ى49,qk1<`c/Zs#  5jb=YkV1H)koB޻zr?lTu6(M/P[?"NM@Kvʽ$\[[qKFZAQT3 ;a 6B ""P( H7=&Iy+`+*.FKj_CPOjZYb ppQ(3Ye1;HQ)$-L>p8t(x)E8Km-zAMtD1åtY>fb_;!Q 7cHfCYD[ۋuIM) qŤSDT=™P%zX~0x?&Q8z21v<~瓬R8 ċb}Oc?0ݼq b`%|GK4B(Ҋ[_YbGvGpLjXJP=D[Z|q(^91V$Bqؑ{h^'+g/k$QjU v1@qTg`\8 V "۠$ـ='&uo*JO@.?%a3k@Ȗh˷ˊ0ͽ1\2sMjn\.w @oW'4|Q@ 6j rj/ INźKz;d`lo#4UP!]6⯐KRonUL僪85L).G._#Y*dx5d)dkP;Jy t|\tiFcܼi2~t;Kbǻsڟw켞#rӪt%68-k*=. ћ!mn1ĉNk v?=yZϡU޸| g9͛sވ!GB(jwIa* Œ0]"z-#WKv#L,W9afw+ Me\FiۉIvxETn É{ecвڜmZ(yPKxM`GKx(_?#?`ͭ_i$1s7h&Z$Th_H L!ݗI\U]%BT|W={wf=f#.;'eIiR6>c' d~@}ʩV,@-oj#+vxaCt5]eü03rLf eb:~st=sy(+RGO&tm6+UNp2?je!q%ŻYqH,>\RӽQ,co-#{C›Df*нE7. En#XKb bK{|wDt2k뜊|BԤf7w"MA*}G0vͼQ^M uʴLB@ӜXL39>;++&MNhfʀJ.6U͌QfH?yC8*#lGbFgZ/GX3v?& Z7a@+>;7r%tEi?Um{ G sA>#ٖ{]=u4677hWauQ(6].;=O K0--!Q|AxV4S<;|!sz1izv;+jC8-C9cbHn^"½/?|jko([1pq3v^E(H vi,nH:Ֆo^VRUn Jm4|7 d:iاNYV+(Wb S02*.xڂ;m- xIzanbro({E0(%Nn/n'qqgS!X2i:k`IMXnH%q ˰ϥ(qp`vc㽔n}E^7kamce 0:Hd_y/EkvV7b_Vh*wl#8g{"ni?kogɎ$(|pgfuNQtRKOUbncv,9{wcx6xjnz'> 'AU/QKW #Z9;qMi!lvo >8m@^l>^F(RL_|u)gY笐rF6"G)䒟ƌF  ft?%@T o^ {s uv;Vꭚ4 !q8;ybC+,^¯5"gMqvB`%P\pkʃ5D@Fv^?|Q١vd0 +u6iT z[SLyE* ~ɝ#wf:&Xepg eB&e@r6e%nfe/2Abvn-Cf~zՙbg}F "r9 5W{-[gX|;-4aհn6eMFwGK,b7=N}cs9=Вԏ0XϬAQ~>O`D[&4OҥXNW{K;@EZ~OSl3*2BTb ]BMJ7$2-"q:vx#^t~g¸InU}0Ws{T @wvYJ:w^ڧ/HY&я΋]D7xO͈yL3<8j)7QGXФrھDƘaT,-"|Qوhd8)]MV0[Z~yd( &`}w Rv!oO1k_ᗟz/xݰ$y1'2yl$&ϸS#~]ь;}GwEZ^Y=%*P&i~yɛǤEW{$Jp׉^)KF,z8&븘)MѻwZq2VChިXJ{rTRVH)o`L$iA1ܣ>rN4eX~ M( q">^Qz{+JcXipcTKJ 3"8L/v{z+t+O)F/8K"*b)hGl2S֏|e?`l K(-LIJ`4p6dV6FLZ'x3g*$?IbTD.1Vy[!z6>0yK? yGɖ *ξܞjqf&/#'@"MʬH-qiK-F|xh;/ fۤv\rtTGrCS:UINq3sdm'pD8;\tm7Z5Nb`:)+ }+~xlA ӈnKFQh9*{b8RoEykTh"őoqJx&R ?̜}#_si@th Qln;;s)<2!}1.u -Ӑ Ёĺ7aÄ:X=2,&i+O3+m/]<|m]b֡}` "3=yKQPb > W cݘy8 ̭ 2b3g;EFp@"*!e^o-!IGZK*ZߋnU,7m܁>*heJ7!.epj/߰»=T~%0;Q"FE`8> R*'UH#q$hS,V\xe~#O-Ӂx~mƝx7wr T!D !SW$[ wlEXxvʯխ=#@odnMN[ČJx?Ip-@teVM'%/J!xKȤ¦K2 9׮D܈C?-{A@jXٳLzjT;ڸeeuEpF:wP9VTۍS TwX!T.x41GM,aqu8`kfNYeJzB;Tu4*_%ߺހQ۠s8!]^*{Wij~ 2s1ŵ#OzN\Lyu==\+VJgx}}~Z/qh%=Z%%֡Ej,wNkFeuK>wsXEa<ӷCxr1аZ-סb5u0hJL5_KP{!}F\VakZzGktꛥU>[ĦTTi_WٹDȷ]ׯ%0~NBWDS*}ps$b7uDbgKdaL29oy'/S J+a ME$p5c`aJeٌ?"$LTrړ!9p@nzsk`ƣ%uQD@D{n$ 7s83p~'ެޣe]D9]-r9e (9BɆb7VAj \4l̶X' WiQWYy p&`1?R㌭9|a/1mRp ^t eۚw2]*֭ndi16h0%G9C{BtgeR~-o'b0D+e%P : %^^a8㵓{o>7zRI؈˩ ~h^=_H*+mEYf=]{4i&;Y53ۂp5,N ;WYŲ>m=?.%}|yLRzt&`5.l,oDE[S ׵3*$Kq'OC^,f" #$;4=;|D)|sJKwX/`"tlMtƼ k|sAg+ի:_>)F#>Z5N2Cw%Swx  9 P7bkft 1tgKAa>a6lH ;~z `i8DxnH<#D _Kc`sz-xY[MZf%yf>k{„Z-R.a@)(BeG[wDU:A"7=HċEED=QzMJ= ڄNǹݤ/A3CpU]5Zhgvf}Z?s|hJp+ZVk⸖P U:Jzbnl:KDO@3`o*A6]w:ur ˱?T_tab/Pzo1Ob)໸>ʣ-~R?kNeNAi20DmT8ej˶iL7^ w3u WɘMxOZpyQ#VW,J7^N~)ɶZ7G?g{\~$ԑ9;FAgQ j vܟVR;U"p? 99^-+p#<ǃAG=w &t\!87G_iǬ998!`{r0?Ն3.Vso@ ?{Z:@|߃3`sbOǿ6//bXm!Pf7m 0ˏϓ¬aPGb=UM#ue[SV p aAQ߿h G1S`{?Υ._V_j'_Y:ߊY" 'ߌ{!@v \U5J2@m3H\ ր _v_5`pȯ ~(#V0_k'(Z5pߞ띊x~~{qX Cm? + gv x\̈_rsu~~jߗ žYW\VPyp}A_\n7D0Oة`?u.'Hј* b߿4x,г*{ȕua Q D> 7t~˄܅AfoBa{m60) 80UO"Pe,' تx xS/ <5.l0 RW}L&xMd$St,@!ⳃ,F۴`U%xFhYHKOҪ'ORlCIMNЀ̜#Z*KA-=ml[ULfb_Yu/R)F+DW2nF6BNZl+=;^E9$1Ypy= 07wl>6[ͩ.ScZ[RMT>٫Of[bđ;A^%}քbL*ǕAMGP)_y]Cw/Q\+3n5z5GWn-HuH"앋k7ޱvpf`_cQANbQUdқ3O#>kt̝2!ȒPuCS4e gPH˿`~ ?uJOK]*PW97)|8`aV,Y4FƼG(uBGU3jP/4?GH82t2#p[cW$_xj2!-uYzڋG'PkB;|C] ȅg-Zw i3K gm$'(W4'6;UT;vg\6n9U_7oS?!#$mS5>#8 3P4oR.*# 7#A[8[YfsqƩ]T~'wfD1\!mds!.e0Ϲk1:4h/`moS}2Du+^WMbR ]̖mwOΏCJG^k?Z{M:4DF&ɼ$%靃-VہV*l pShǞCˤKuewL;<pG [m EF3B)IK[4Z ﬚5ӫ/'d~+: UtuJ&q ;.k߃?aPdِeC+H`teLC8[Njt;09hm΋8G v3B&ZU4%w' 9P&wȔF#Blݏ%ʹg6nn8`ooCSyU~> 7 !ƀn? *#8Y/(' Wg"Tzڃ/ND|r `]\S2{ µ5);k/m-Zd.?1Ͼc6`\O0D# >7A>V5"39҇~d _RHDWJ׎DQʓ/yk>|7WrY'}XG9XݕnikE^|݇pXD4bcۋpoD+0Ab/P3=*٫I&chR CG(WoLIPb56>g |X!/zT3UրŝmXSSc6ydE3J=1 s2OiɴXJg]#-NޥeP61z胺 &քIy8hO'ce}<=)w˱Gfsh.·5$4j>ƢVꀙ&)~JRLEljhd#|=eZhVԧ̯$VIF& d)I|6IQwPBxsS!D@ 4 h %t{a~dKcn ݐCQWF>nTQ1StR rϓeMZN\ȁ59F~$fxv{<L$bXeyn|imM6D*b R eԐ"Ò1%Wge;07J酛a pyB;m+Գ#:k@BvglC{^aY cNJoDC" "^Q&q_+W !1Z/C%{3t+[W7-WT0?]vÏ#JS.- <@78 Hrɦ 븇~*9(Y=cIGN=1 ]9C721-›0ؒ5q߼YLiŅ ha ̸_}vͥbIHЩD8 0HjMm4YBxO35G~%uȽ,gܦ9D]Jnߋ/OZutژ^O9WCrq+HʏJf-֤-;PIF:ISK5oH' U։=2$M KT4ś{Y]F|~ 1%v8 O4x/Fs] T,>KK.p?pH/:ӺN%jIݑ 3(8yF|g=ϙ8Pݔ po+Ho+~5||9k9,R6Sub^ $Viq|M;ĹjrR] ǡI֥ pz5ޮaʱñc2{@h,IQ֊3ܻI L40DٺysFO/YT;SZpX&u"j15(ɀ־:& ǀ1U罳(Vj䔔j3U h;:9dN6urΏTW\/ z23snʽDwý ڞ)ה6Z%fa33͡d |B$RZ#׾%(+˛![\q3ÃPOfquyJ͒D^MeN[=ͩ5IW rN^[Wq?){"v}}Ƭ<إg'#qK*5!Wv i }QDϨ5 V<';d`Zʸ̪L$5fr,'X\l7KS%MRż DN 'HA1#=\_ɀm4;5oҌ?cQQmHΗI?)pd=&;ow]e9 ׳Uy}C.# f,'7jyHf#{h<ļ,a6LEktUd1`V/S[& 2=h{璠Τ7v-1%g -r{COZY*8 EFsFsB[=#Ih?ُd:OUR#őMû3_&v dj`>´0x~7Ap{P8aTiXYwEڊ>Y5DLAV4xcL/+$qxhQ{SW,7Ne9'ᧃlCE]~Z3t.@Z(*]uАv]WW1|WC,ͺn/z>%Ș֩iM+>eTwXSUq[2y~-gKd#%B?fb,vjymcѳŰD_(Dhif;mnD8m%S=mLYWp9Y7BA_/h$xGVT~0>]vMՆSJǗn)]F |0KB֌? Z%shÎn/̊H^`&V2ժǐzW!P5i (mIE 2!3?5*$9%`XS+tet'q?E Nt2I\]ʦs^| 3 i15t[\^gڑ:wpɼ 3Gc 28?Xt*빧/$`{4'</s}HL2J;s{]|}X9XvcxYδRQـ3Yao['Qˌ 4vBC n"HrvHW%aX.ɶiɀt19f-Q Gdi,6q"AZakmk>J^xt*/!a꾏 !@#݉g*gNuہ1, >51ϻnSU7 ~rրI,v9 wn]0 ~b6o4liأ{rc.<;9;&TZk#bg+wp_u#sL{KᚸŤfKn+YКq9jqwghkO^u.Yo)s|Z(ZHL?N˖atif[Q S[|Ԡ]k=6:㉡TS/-ND6kN9j 6n̸s2[uU1Ux=N·X@Jni3w<(!%V6RTfEJ I9toi:—sZJJ@g2FQejN~MI~UP5Y96XY)~H( hC]!G0sy($:L(.*Gjzoc§;i^"ݡh_%Zph4jm|5 m]/WcθR ȀNׂjYלHV՗%GoVVNnsuiuG~_i(2p4}u׵[_"\}zfKDp¹*nA1'.8Qf'80ҼzFN8!!{xW ꭺ<ԁP&!W~@~IN~Mq9'qx 5OCPEO}ekS1;_ZJl.a2Il(eSj= k,$z@EQrG)`o.]$lV |+\jSWy9d>ezGRt) njie=tr2 KH&Ja&=ً܄Ȅ$΂3uCsvs.dd5ulb7-kT3@8nCj]%>9qȍ}%KVͪ6a4*Nо 6"H 7My[6h0n@SJҤFb 碶ty̚x8*k-07=@΂!4ޖ1BԗBV6pfK.>\ kTn)5Pd$:<]KHX>ጎiMRZ(-bNt endstream endobj 202 0 obj << /Length1 1526 /Length2 8615 /Length3 0 /Length 9628 /Filter /FlateDecode >> stream xڍtT64 2%50 1) R" HJJt#HJw7}~Z߷fߜgg9>Lt:Ϥ`y8 [ ab҅"0]P8L 0yo!jp@y.B-/"E rZԸp$wtBlk `b r@@0i v Ё[AHH*jD: \ G" p"m` l 2@5.&-CntqY]tTN`_dտ  ;:`P`u4UHNfr@An t@^J V.P'$ u#wcY0$w}P{\{/dYn :dܛpmnnnA^A@ |߃ `sjF+D8<<k` @a8~ox}/?Lf 9x犁 ZJZNii7~y4AпGsWnkag.ur ݄[-?!7W$3늼5,jktPW*!A +?7_v(Bք"lR_v5>|Cfe Wf=l ']#7TZ=!}6p+6A\&B򮪴[!괿Ks:HPe+9lRͅ6I!(ȇ$T"].56ެĈ8I߸HXQȉ ]LyI8uSzs*aJW~ 4CÕh%mHbzg2l,Kf"-_"tsX ۊHq;G+>ě"Rr9>hy rrJ7,kGc}w0 B4(2D\=bϡy>ۯ $K6Pw)ۭ/3 %طe*G Oj W^eӫf?!q0RJ1Qdo^ʘaG'PzHHJLm81aFnĸ`Pruh_v yax)v.$}J ︢Y| gBsɧ+%c_B2)sf9( @Hmqyxm]Ɔ0B˃J4*Ǽ&=-p8N 3SP#SV9Y&}vc,^y MQ !k_P83a}9fJH'/Ŵ%>#fvhVd9xwI*i>6dD*xyuvAY#4A&/ FA}|G̉7 )e5dѻ/Kl2` Ed"0TePBƿhkeYZ˹yPPjNzT 1A|;/>t>n9._4-)6gϋgk! yyD/&D_ϐ*~]ؘJi @ɑ#%~ <͠L>s BD1G;͝nC*淦:ꋙ ,FfC=nZV8Eys`l~7; l+^^Ҏ1r#!=vY!j5jK2e+/(,D d)%O1UǯrsnМSbՖҍ~!F紛 mhrpVdɉ@<ۂUCJc!!PÐpeÓVZx6ʗ+YhE&`?YwI6mjp0٥+sHՕDPmP 4K֗z !QSLuM[! (֩G,0Y l&e]=B.ViUjWaf#Z®*ܛ9`2~n-H8Jzep2g &n*Pc?rVƸ6Ob^xq+b#^aT9xG}@#3iشz- 2c:}vz&ChVvNj@1m>Kkq:-0I@ T6[Y4 J Yj4<[@;u'9eDz ̿8lE u!y[S57V^B{fUc"ř;Ϧ^|&4%>DDqx",)؋s멀ŨTgc@d>ټDZ0ѕ\@ߏdOYIYI0/nc^;p- (Կ [P4ZFagEpo5!c_AZ绺97]&W"*O\Ui3LnvJˆt$L ;ܶl)[B]%[jak1fRC7+E;SuG@c@="+6(-,)Pwf^\JYQXatC\qdC'̋HSf=7`x˧v<7 E暼}@۹=~a}O[kKbbȢRr>DžE  7:¶q ~(ػx(|wS3MhYH oE(dg3XlPiS'TGKPc|x>F=JS"G^ 0le=n56bmQjo5mtt|A""`¯0q`뤪5\b3vDPE~njX8*b?)aLrI1Ur! .xR(Ŧ]¹ҽ!=U%x yv`-Sm׻NJxrP3j*C \ me2IPV\GȚ;m3O!*H=t|ٞ9¼Od|we~ Dv) Ee>EI7z(O3j&ym&q2 W,5!'KvSFOwsҰ}\ݨ⮓wHٮ3v dz nI 7 xs gj|ÓrLN̘o@[ӷG9YFEnd?_)EIzRopߤs ՓCg&xprQ!p- #,Nk k7fW !Ri@4dze":ls|on%,.wNN1ŌepJq/½=+[Vq,oЦx }>J̫{rh1aHg(rXqZ,Ȃ23^t`DǤV_Ab/QːƎ532Dl-sY-kț0g]*y]5QI&{MAʢzqϯtQxTՋk-*-&iǧ{"O픫?hE]350)Ozh^2VGr2+L 5aDO%恵9yo\>΢~ZA/-jhmrr-wvվEOj#JyjrM}`>Mx91EI7BrãļuVec4_TN?:E\K.Tw7O̢H^[:$YeZ64P۰^9gz't0{c&Xb t^h梘-\b6^T_lL7JfP2Ms '۷6QVD_% )c][ѥJ ުŸɃuJ}uV( ;{ӘCY賶ҵDvbЮؐpŐ_XY*ve)v Y=m_v]XplmQ|ۇ~EӽuGb6MQQ|0Pj\N-*ts6I= l 4Gbݻ4K_<ܛ)tqzQO>@ wzN#R12\`Š"Yk)/B;I*s׿/7t!9 ;4Q41QTԋcg{:q{UPJ7HI)s<'c9L!E|9ׄĜ;-æw+ j9VDv_␵l,CKT뙴xf6>Y& _E#QdNI J' > 4XIiY^SUa/(^ڃTO[,Vxt+a'`ԩ[^"}n[.qK95R*pmXwi+i lE};㠅(uJ? ͱ=86N{ Pe);37T9#[9K%AZg T%<<,{^٘¡+ Og`C޵[(x\~cMdT\)-@٥qoNȸ7OEVVɔ_&SUs,Eii}B;T9 >P+;M-"vP2tqN>ϚLa^ʒsL>QbDsi+, H+ Q;s6xS h|pTD1 F%=T]]et=U:I)=ŷ[{Ԝ䝉 CbBO L!:Qt*馎[ӎT;vjs (X{ge q~4}Z*I(=CϮk<^ݓ I,nQ%q=3-W3$BW&!MuBNa a]hSW 8}u|6yJyZ,Ti#Ow{ UnjU urTvL;u#F;m{*7<]#%3/E۵(Ϭt}nS}yPJ]c;?S20a*~=)ܓqTLm(zp?z`\ֻG9+ t"q|űMfd2?'Ѡ$0RcbA牉*jO:ʝ)8g.g4PҐ-%&ˁiwnm ݟXX]SG)O^x(;Dx_|neFD;yTMfwbaDsetgڪMq%~|+oDŽۢZ׆ sF:pd4ޞAtgȌ,y;4Obp\6l9OHlDJP斻!h,Dz8E^삵/ #QfA;-e{ Mhz(ߖpt &B=̐Ei<߄BFx/Ѫ0xQlyذ&ֺʮb +3}gyO} 4q rPcʵ#/ ^"=yղu~wE p^BH|W[\Q=Ӝa]?&M%s|7{N[!QJ&02;Q'SD{N![ R$Zg?nX==ڔlUObmy !ÛǗ`r'Zi [7IPQ/Ճ_^ۙҝ|:_ ?,Z8dOo13ӮuY>Цso}|5Ə܉Xs%Q3,q],C0<rאwAn&JXWFm웡p-u$:(3mjD|]\erRBw2EȎЗ#v2މ j}3ʜ_O;D׉̅xnިVS# BSt0.˕_~Wo;PLqc+zjH8LDQxx wzĚ7x]&a+CdV1Ob?m͟_L=iӳА[vfTA"~LZ´Qpgǭ:AK 1Tyɍ* [ݷVS{Z$ E)'_g]]J#ț*vrm7~vn=*_tdi09mGI,vw?1]ڮ&|O|= b͉C4Nu{E8ByG_Cq cPG'M2i?hS3Kiׇ@Ou^ JK&)4G:l4tZBx\ 7)nShtѣӞ%:%8Y;E ]8 0W.e26[oV؋U N͹>l[; h&Ǥ٭;1IdE3 w`V&x$P_l7+ iyX(j@L~Bl+wo̢1Vr.rY॰oj5*S kjʜ"M1=X} Wg f[Q߹' B6US:.?bm]i3N sU7zkJn @ksXΒ4カ{>MwE~u]Znh;sJ8@=Y ~8;J"Võي8Fұΰ#,ݾw{.DEm4s΅fBVߪP0}{L=xCW `F}YA i.!wck 쬨+yS# W5|I/,=ǨM,Vhms+5Gn^ ice`[Ã=dv!}+Xa:vaZwXȏҨ+5)46RkF̐sոӵ:o 88~UA~xrFܺ/ o v҄v\T>wɚZl$r:~_8R,3Vk۩p0ںժt[ȮX^[2](\72XyyP6V!*%vU?]Mr/?LWU}7C5xTW+q7ecRfSsHEom}. lcV̰ Vm6Ve~#eEUX 4Ot_6ED;FVd28S8ʛh[4;2* Y^LŒA Qud`Alol'mlF]NT-gm3bÏs1{ k__Go_b9}V<ش-߮ !$XSv VoLD93n}e{tÙұ_zqA*|<>G˻#f79Wu%o.n6/XCw +>|>u ,>D?ehmj^4Gv1-~HeIygZ]:{C.RgoPȉ6T;ʭ>XrQa#%s 6@?P`{;O0*i2“ovb t@{I`o*q/Ċf ^R#1kwj]Kf 6Xz?o2`I> stream xڍP-Kp  H`!CpOp}+YmW{>* l"rLFFzFFf822U5?v82uΖGM-P b `b0s3qp32h 5rv@'82;{G9 40qqq:LlrF@M*v& pvf`pss7qs4秢-@'+e ojpdU _;3g7#G ` 2:ؚoTd @ۿe ==?d#;{#[9 d (;;lM4v{7r5Yٺ@\H `o~N& {g'z'(6f1[S;&os`rll@f0ugP9Dy3k3:9Y@ĂT=:0q񲷳̀o༜\gGFpLLS3hh~G;@M~L?0S;[kbQm5q5)sxѱYXl,v.vWQ4oRfv}v[k۽W溌l&oLb3OT;wOWod;M.o; g kq倦 J9킐?9܁ g?Y=@,:&F-&?]lMLX2f6v㛒^Loh tSz[;;#W`088 r N7|F &f7dzcbm 7ꭞ `b{Y Z 7 `0 uhd0Xߘ~o[Xߚmo[o`d}}{sui-ѵ9ke׾c~kmK +;go 2Yo\a0dpp[om7n'[9?Iɛq݁&pKv&<߂U ͐jSy-9< PUen8 uQ^ .={7$)>z?$(O-NbO ө y?;xXA6wH9p")~p+^W2:W.T6Me,8gڙ=5څ; Z+t I K&sWUfNRmlk)r/Ti OT`}D#Oudа$FI}Zk4{`wU #-`ӘK|Vh* w1sZ:9>69c (&.]hUJZc9qb?_.vS0l(.lW1nβ iv:̣~uD1Z#I©6WH$2;AJV1.GSTso|ǑP9aF~Mi葒lZ ;  1ƊtFbYno@"c[[5Tda ? 0Wΐ)ՋUQ l|EZw]3ߓWM>=ӥ1>X-f @\T'a,~e 5Dާ=agzޒy<&oyD~v/F-nhFqݦisO2 }dqx{3/FNov#v I/BPC267XQk^/m{q r:2Xe|0C81U9V"yb%i@5x|%}B߳Ҽ[p)'^6j/,x+?RTah.1;zs֓i7prAt]UFdq ?ia$)@1!$+;80ﲔ*[m꼿8 h}ʬiZ&_:LRb2 EO 1qT5?4eS ,LkYO7^.FrٺPjxΏ:oHVGR1Cm@/C,=H-(O-w"$Ȯ)@w1Crp'I`V /uQY|ÊL9nF; N'UvBqk8|绵&BDSvnZCw#IJF4|FmK{ۓgv3(!@*bj޻)SZpN̐+[^4&],an\RSdf/է/l#k7ξ-Xyy[^`\j!گgM !aN}{RѶZڑ;w#pLg|eN(SϽp'v G|pP~fO/|\fp͕|Z+Ȋ﨟~M^. 6GF_/0)}mcVO ' %y/#JHz24fHRkG,e,ʍrnkǂ𪒵_GU"u`5|jW$bߨ8Xե%V;?+Qʵ̿ih>X{依mEUSePLXM1$ÎHXJ 콹-w9w lbt1Q/ Rܳi1@wrLZҺ竺(5s!)QcOꨊeZ7}Č "5,=ꯨ6Tٌ t"IL<(pc,;1>齺"1i}\Eζ ڄ9|ʝHs=&js. 3 a&YmypJP338ްJ{=A{y{zR/h r3_3t\A#wGD:9FÉ[n6G}Ȥrb {W,Đz{]$YG 2ޤTE'$p]ѓideW~_=iL*C뛯׿:K&cf{4f~y d[n1G̚㣁G;yRt rNiՕeb=ClI|H ,jĴm09TC'iŧd^_kS8gWt ]^u0\6t=pt9KDMx vˎ6ʍ=: ܤSܜzZU]z꯮M2K-ˑ,κNghSiY&Lru*u!៷74N:ֵU[Ɯ%iUL^ I:m>^b1nR_s35Cj2+x_a ́5Ag8h6J!15y0y[SC|l\_4cbh޷?l1xoGjc0jPSr ma` Cށ0XvX:4gWmm kr/m&8LpEp%PHݘۂ»'2)U+2a:p#Fj\:웉j 'U8db]tZFyF6}Ѥ,^8BOpFTQO ONXd0rЄ ۖ\Rb,֐t"btV+Rpb = UT~ !x afQ2X|'7WL%VKvHd塸.|W_;AyM>ȉbo4GdkFc]JEb6puTWX< :u?7"hÜ!ý5Z~FY৹R@9:=N}_8m̭P(VC|70q0y\!;4{ًdͺ{d#y]~4 Is8ei]UlG-l@^Q3eF>EīSf'K줍M XEQ^wJRwuMX#zAݗ~2}ox;ے*H{³,TQҡk|0UUs' 0fs[g_.4 h򙩄摼6JwLK<FJTwMO?XC}gf)2d8Su1 wI!+u[`胃eepq7O BhS[K%'Emyp8~C%qOSw\Bַ]Z_f{}kSA+Dt$)]0m9s9QsA>S66jЛ7K=qz8 7z yo%C2s!gЅTdPg&{σ-)z/9.!+:YcT>\e O8^JBTnG0 he4,coBDCNc! "YYG Cn6pKNh)pk ڔQ9Cla*wR3_9d?r Zѯ"@]N`Ϲ41j|)N bk<W3(;O}F5ÜK1!anpTꐰjcܬO%A}>r5w NlnGA)6r?/tgX20 ,5Mo(W2r DÄoQ|8M옉5"R=138M6y]Us.Y )̔$MED$GeؕsVHc6(q{ An5Gv%u%W]gtAQ My<}LS׏r^,דզ Q01ɂ50QGul@熌tRɲ|F*v,#'k?"BF jmHOG*njsFqX--л*5l)t>g1躲D*㼘C"7jT8*$PJǵMGc!B öa*,M|%q!kܸkVs=>9\$LehTw @^ RN:r)4̌8%HZށ'w jJ._ڵCj4zF2sϔIWjա& WN\WiV+ RG,=` (YQYY$ZƀЅ_ c _(bYpXr7Uז6Ye):Y{xug?ʡ"pm3ZszĒѧ!F9քwy5Hk5V`Y}Q|&䅞?#%_LgUu/#.v(Di|*}_.NX|Q;gnEΟ~Ef^Bo-jUU:"ejcf=u˗oEl"Mʣ^eEYh,^J1۔?tk pA*Gw*L$ڗ I]hߏm=l=ll3e*e>oV !.:9 yI,d9뽧rnP{?O![9yΐBWϿ$8z[=A[j0&CCzH~c+|4K(x6#EK a$NaYHVX 7h)8wYKz  eAq3| [e%Hp=Q̂n~:hMWES}O`.W$g~bimSʗ÷-M2GYQ'϶Eq,FĤ9ҦaX)w痥n:iF&_4a\3sbhnزzmƅE8!ȳU뒫h>& 2)</UiZ(W5Ah Bޣ *]{?H&,[?ُJqY)o`=z 4KAOg5T>~a@NW?ӲoP4׸f * bm1|=b=ZNۀkI^{v;7yW7R1_ p : ?e2>4GhLI@ @QylL֢FծgO%k|$F_R&׵(O禵WМk%) !wzaw",c"&]rl޳+hLDx"!"m^N@+Ow_2?xX4.5D$o--t3FTe+6CpL+(ܽh'f vL\8zY9?"%i9 9Q] aϤfjus̠cG6L{<uqAZI+Kj?8>_]64@A742HaēKyf\`F?v>scbϖ1p(m3(ɣ+bџxH^PbJ[L}B ,.©gAD*wDBLP/miyZX1!ve/IY>~yh`"|!_HDLH gȌ!EgWH`+zˆ-TFWl$ߖEH4c=oj,Nо=\txUz{m0ő4"zUM`ƫv0|PaJ/nGf9чIpev @Ɲ}d { lwq LJW?K$MeQ ml%XlC,'V/xP_nEC%.Tb&Sm!TY^ck5ZۓAbY,WY"O`L6Ep@fZCVjGva-^lwxZd%q7!NzLx̴Uyu܎I"ǣx!=F#W=IЈj /0k@Vk*EcԔ}mKĺy{=dˋ%AB>"UArYJ ଚ~7n\iې2C34gg%X:{&I=f/ĭENrg-*dRt!{G 2Rb/iLq,{YR7!2.ldx5O\Sڈd T[@nB 1 RfZQo=yl'X'?sV)5T=Bk#k[ƜF1#C뻩3TPZ(w FJ-|6z ےxD3ZZ<SܪoZq`O lȭU HX㦟m1"Xж+C8&QyBTП{)DB (6*e7(7w(:EW4+F{Ik>S"|mA3]8>w:El,}UZQ4Xb.ó/Hg_ծbrX/e=WN6cG.ky jY~y}H)`W7sYu};;+^Uz SmEmc9s4-j.?w=Ma$"Ȝt`(!ܧGьI7^xaH*"l!h}yq/dxm<_j~k[eD>UC H];E%K' 4n$8v#~yOr &KSυ.Y+yE|/pÉ"Z@ [vC*)2gYF~F>wBCIu+lV_^IS_1")N Mojz$ DLwWؘ?3Cc.t3ϛ`a^ % }O'ێi[M~hy,jށ²u6:}ޡ5X°`2XȔvP1=RBзV`1q\wNp'Q ^Z eL;0x?m=:C YfN)N]tw}čINdmSm\uK.hrtM#%䫾+Ʒb:[iPʦb)qE>*=,$Uwi ES)6>iU!{(rP~\ 9%##BO>+zb*IHԔQIZ9ՆI<>ByX6 K$ VkLrG B8(t'Y>"z"] no\<+ɨU' D6 caf; w(~a>\S3Q o̝fI4t lmȼ%[TzeA._ޯmr>[G><Fr3:G^jR}:x)ELǢ[Of? RJ̔o Md;1 f Մ4^GpI}|Ƃ5WN&)(-FT输u.|~V*k8!ˆS=Qex{cgSܔg (m@5!F\JaA(vc|AQ(tWgu^dR5˥9Қ3@Ӷ4㨒7ꩈi.I}jKt-퉲孕e$xiZ0 wQT](sxo,:s]17A,^:"A[CayBy7CB0956-prUqassJ3:i좴ҫ5 Rn-=r?]Z# c2/h2 <c_Sά17J^( !Nw#(*I#`q gKq⿌mY3n08٥,ER~h^FY[Gu` ͤ!i`Җʕ.~Q T>G[j5HsZ-uZ!4)|&[h^A̎-hW\M]1DE'Fòco"Ql㘛קR*)zƐDK#U,=F!$|5b+9D{ nX TN@]Ⱦd4Y>yN~.XNyz\.A! eFb[틏)Gi ?{x u4Mcf c9m6a9@@_Pnz~#kؿ_f?IzH1JNQ{(H #M2FgѼ |=\2fePV߄`T\1'T,R$|b=_jW M$i?ke>B;GdGB9Ȧ}h2PPcv|QMXFW1l.gɲFi>\d-gHCe ?0RN=ɇ)T|iD;̕kz\t weVT6Bʼn 뿞bb92=" H (v2 " Q;ca7wҷvnfgT9jӪ,[M-,!Ч~qnEUD3}KP#/EKi2Tqia:ўdLwHt%WJh+vysY aqѾr>Ő|- _UF>Ni rM5r|(UO 1RYPxOGEI eK} pY`!^,%QPjxRڧW׾pQ,_FHB_q1Rq2;wm P2I8# &ڔpCIՁuz/mgǁE0n$O`gyRS,av1Fe 7T{Bj@ EȏmsTl˭i{DxhC{E 0cltXXXjO}]6iLhl&Nt*F~=Vxˮֱ8 M߻۵u7bOBļf{*Fz`S6\)b 2[I̬RޤAPr].nIc3gX 1fpeG΂~?+Pj-VS ήn#"`& qHߤE!&'yh(۰ol>y>Orti}fG}z&G2},Tm (*.SW F;e;%(*AZ# M9a£k7WT^B|Vmջ&9d}(y2 լU[:=ĺu/G[D磓gD=g|3iJsP}װ8?MAeOsPa6h⦩QB$[2n Tb,/N||FфZ`%I9YhBq4t+zd[jD:ԣ~+JbglxՀ )>5=a㵞 `Ƙ:) D<fa,;,hw"mu|dX.P>n5sT`FQpR-\Rr/ P"S-T;eS aYoUa4j` ^rdsbl<;pf^R}jy A ,{w/NTK>^3Fч4dvs˫$u\+GBU ZHr; UtUpa].]UaK cgZ tlr 'rGX;] H|p.-WQ|߂/#NG>[Py7F25 vgM endstream endobj 206 0 obj << /Length1 2443 /Length2 15619 /Length3 0 /Length 17050 /Filter /FlateDecode >> stream xڌP\ -3h {pݝ% k $$ys䞜szޫ.TY-̀2`VvAN-Fe 4CdR` +'dgCGA; xtEttrYY!i'! ;@27u(vuGs ` +Ffl P]܁?(a rKh 0u ;9`t@N@2` p{𧳩 ` eX`fvSwSM2SHjrh0,$`W?!{5Y[G%&,ܜ4@n@9M "2+ :lrS ` iBP|\M݁ߊ" 0ZP~Ga]@}vq^v^/*_pX8<ܜ^~.#@Z!$O`7#dg+nnQo+ qS6ymYY70d!GM"fr`S;XC#U Pͭ\Ě ``g_:]B}S3J;;Zq_<SS/vq|8 hsl` ҝ叁xlM7IF6;M78lM7S #H>OɧA2F 7M7tAk MA92; ?r@ĐvjAJ5@tvAf䂤p3uU@F3?n) Kbvtw1M [B5__ª 7;rCt5bjH0'ȋh'n.Bd a_!SPZHor -oRHw:?_@]!lAl`kF /ni B@7;Wo_D2ws y\zQVͅBlC:>zNj3t=b 0fm|Oؗf[|ֈޞl6{؁2Cyx92ؑV-lt;|g7~ B CaKGs,1e tf9D`r8W wqQK`B;*c{JӵXgbG$Oyi̶r.;#+ԊC_ᕄw*NLץfP| zP0wt<-W\JO3p*u_5u+|?cRnSɱr8 Zo{ I0=7o1wAy6f]R*~:h< 0\=(D5&y+\1=&}In\B!7#m! fcygcط( wcUEJh L: *OGSqKk P&iG8ޥ/0NDUB]lk=F 6;oF>k5t6|^K|AK&}onի' ǑzUqk a:=_e*&c]hMdzr]^tn>$ J,$6LG~H'X{:8KSmT g0u3fFBHQ]ݳ^{#px#˿X\ 'UW1eHNIy) us܆;Д{~xa&x8!h^LQΰ&zTRv tJx]_ȳzDz~g1I.ӿ[#F!I +me 3>thu+^$E>zß%_bci qg v*`ڷ[sX/,8H'֤?r&6_'ue@1Q觧J𻚪iWNqi(^?$Gpȡ7˾ϛ a*dнXVeOz#d!Ÿontɵt08+ yDly!B.Hp _ٷǍhoV $|VM}Żwh/notKFɝOo6wp)GN(VJM_ݡk/@A ) ~ZA*YD #~IF^?&X.=\N3:?NƲ^ǁ9"}|; ]% 2jCr!CC>\eI&U-E 9^p*d탙c"~c2;-yҿR\ss|yW.)\5_'Y7r4}so5 B-Hv}S@|? ub ֹ0 g6dO \my儿KO$AD>df;3(d~H=SOe_^Gp,Ҭڏo~1`e9W}_Pc1ǧuM݁S}4>zP8'{Z,,QÞ2()d`/AŸ'_Sվ*,#sren~2*QxDUdX[VX@E$ub VO6M6fP$ocj#1mJzbEkv]uD±oPqL'b: Fj5c}[ 8d}#Y N/hطգ S nhؖؒͨȧ$}A>/>0ܺ@M"CmK:WVPq( '$\h\jRdNO0!i"NDW']"Qp\6ROGRo68P>1}@Pu*& 'AջĉRXlf;.=XkN ڿpp"49`P5?b+k3o9+٩X>,ځuwτ-Ѱ z%eJ^ybqQȉz|΀ -x;R+&-CT Nyۀ3 U>rPK)n*\QN"-4t&'H Ikyͺu ͪ-nM}#n.ymЖY>'$,JШ.)gZ,€hoWOzmi*ZJ@7/p AAx2 "*VSTN,z(1eSֺs;j JZ䫯V*Ɓ 4|}7{SgTLļQ B8&tWJ6߶ՂcNgcޝIɹȜcw "P4RK IJsPVrUIng5;|NpQ)# EђC!Ec0?ŎggٽU_ N~O('ߚ7؏sh2Y![PJᰬԃ#oyD,\jOQG-zii IsR?}?nj51 l# nKvG0Pk iӼ8CIf~X;@YZ涣ő3Hw~ek uCVt1 MY7DEr~4^P+ 4&L_1#S 9)=|8vCNOROYP6p~PkcC'T]&ofnW? /E>= rz` ~ťRe;$o@鮲pRӹ~D'.(h´)WnMŤ/J*#oIl'PYUt?S( wtIe1Vt::4pHx0(]tH#͛=B~\mJ(ζŕJøQ(bd/VGVϫ0%5KG5JkK$ `!+SjAC};Vأ 9V;K&Z_Be@ Vt~flaݾ~mۈP2V)#ڳ\ v_ɣf}XdRg YSjrTw[ k)E3F {1b U*6Y R5CÇwxrVho4fHZyK*Oo?n?}6pD]6..fCⰽtM(7DKmD?2Tk!-ܞ;[X 8oj+%7}j=Ԓkf{64g֟|n7pooOčf`a` <-,]=Xo5 D<}367qGU"JGfKrP&'&1M)6]S 1ԒIIu<TpN)/.5M֡Ҷu^5]v?䃟/) 9@vO=Q`[zrd--SIԤi_|>}40Ͽ3Px"uè^J N A4X?}ȿ_KcH%cc:zb zCYE!Y ӋU%[$R.'YF1 0&Q&(C:֭/io\zJ;G+thxwQӒʛZ[x#jEv 5+.(]y=X[혀J^J˻"ٍ-k]mѺDH/XYMuoӻU26 o*PGo5S 喩sk9-Hg\"FtlVD#D* {EZ~>U< 0. |mڇCAڶ3G³~0ߕCQYdQΉ?z,`rԾfTNmrYk}S~f`'xsL6w#ls4}HsV!ʰ &tB˾T Oa':phpyx!qv䐤眭`j=V6`!y+*E.ҲVʛ&u% mIh5o'jZ2: H$Rhˋ?PM04fVn9RMO,ƹY~ͪ4S`޹ȉ][oBCLu3*Q/faEj$5߇5>?',ť UwAI| uUwZ$E&E":ˋKORa~.?0T"!P \vnvIj2R_UXI7JV)/?n-ɯ @UOT4k5.:jv7'x~wpc4>Vgse_;g,ҟ2;pn?1-ONuro %9d5U ult!Q#H_İN3e5EaUANF{Gs#AE{졈3/O9_t5.(h#kafH³j{|r)wta*Qد* Rd[J7R6L(ޚVlj`eHHsA`w!KCEHqVn&E -ڗcYfFb\9]HȘ/֠fZBi1ҿ#ls1_N#;HZS- r3IULU,b0yϛ,w_٤ts6:N%;ǪZ@E*M9G%pV%E 4ӥn A%|&Q;o9PЛWONsŏD(~/i:xafꟕڲdy7(;@yQJe);;Q.P foi{fطU z!XԲ"CrRr߃Wsɗ9%R\@&ʙjN׋^ ^L;L,#OrYth,- Mըn,ge<ѣ.U4mQA~}FoY_<^maz6`\nN>?=1Y iV{&u['nOy)7 ' zU|z9K/HO~2TRE &+>:nf ^0%_69?M^bj+pg]9Z zdc|4g8רme6GS~#71k^q%]I琐8j%./ٴH8R"԰ z^Ias˙^|Jx嬱hj)D_yu `_ޢ~zugM ~&3xA55A8MA9iUE$9Cšu[銘/U"op7Hv G<;?{.ίе g׼PFi%ʋU|Jj)JVަBmϟY% #z3ۏtql7oy]݉+o5/q:6qbĈ$'8LBW;P8ɛyejӍc7j%s[~Ȳ 'i|:yЬr'U3bGĄC)߁ F/|i!䒨ڥe|׌5 Ϥɴσ.+ ~;_~b~)Ɗ"PDhY<)/7$5W؜5\H.#T"^zz5EC[&^ȝ:)2&2t7^"0ǽݤ3!6kEZSʓ}$ׇK3QLϠ #TST*B̉6$lϟ4D%nQɨShu9;EOԣ\=\Mӟ_Y>-͌ҩd9,-O{K|LWd1Q`f4e Lӱ/͝ ֋pXE!v;G-kٮc[fOv8tS[rCx\r@sV8e i6aצnڧE"W磼~ϼ&}A_?nҿ41Lλ%Kbr_yL0yfFj,gn×w 8cUs M* 18& 07G:Yf({<U*Qnq"kY УcMz$&q֞`\OP?i AH#TX1nm^e踣W)/h&T-CEY׽w&GdGH$u}Ph@_CS,pPSad&ޘ_a%!n:By6ӗGםSρ\"bH$xsъOd:X'U E. ':D&pF3;䬌sIۯ3)m1K͒R(afi3񍁗餬Ac3`#D qIGf4[-%r{g.Lc}ǠLV B"zk6[K(rZB˔vLnX3 H༈6e}%Vdq~bIhuM)OThrÈv _]¸cHVs]gBK#~'`~VR6-&r`TD?]s2j*0Rtq*O\Bߺ2|R"qjPiv |m6aH)xUr^` .6!{#b ӼiyP'm(I\CeN&H~56* FJqbL-\[JS%(twʻrh-=ٟ.L ٺ -X0ްڬXs`yxp)\$S͟]uGdkq[9 + 17 |VR$2]UStA^lbKǂ}l =6b߽"Tۨj~mq?"ŧ Z1W r5ObY4-b*iYH]67&M{]輂b BERiӥM 抪dHQH ϥ62ЇR9ƖxcE+W훼o3>!>$Ͼgl/Vi;"sf嚩^,pt)/y,2b~<ׅhTZм RAU)㶄|#UrjE@bēyHz'D'VlbASmP,0Yk9)؊aQ.c޷6O A_'H(dSO9ņHl8HrZb z`Ö 7]+D%lH1Βl>)3%~tO`pR_J lŶh఩ߕh*+GL;A"$InƧ}tڍlB5rB#'no篽ߥM}}'Xu$@W ;Tjʠe|GU &)f\)\6Ca"OK{> uB2&xÇoqjS(@ids?o0\Td +{sֹ ӄYRcVݰtԶ?֌Os tfL ̆(@gz6{X~~GCG?Z>_ucQT6:cEjPvh^ai~H Eu@gYNc9ӵr0e|DL|aw ko&]% ~te>i7]+ioaϻHoA*Q Et܈WW,٢[d@No[7N\w Wz-3iWdhl$\VI Iwψ'Z,*r"PZXJ ;@ҬbW Mu^tVNQ 춐HI1zK [[l p&~#bIl !i.Y8jOY]ڧ~YɃcK4%iQz:nd LNq:yXLfZx ޲.kQRbouB7-MƢzrnk1/g-a8iq}ht %z,ӿss<\Pe CMSaq Sm8z@Jܝuuny "G,roH֋=DIl@v 9x&zX}Ӿō<ɍ/9Skdt6d.$GmWXqs3ֺA/HtODb;T`턥B۳BWor5NTri7@V(12Sj➒4kj4q!TwGG>b%@GZf񜩺-ہң%cI 6/mY_X}N =2tD򢮙˞Ԭ@=^ҡ!-[#m`(*ـs ˝ğ࿀. {$ v7|%t`T>HDW׼uf95۪ Ω>:(Wk]'MӶ8ˠXsNF>-ȼ;.IbS# nⰩM}g){| 7ey $HGJ6ǫ,XqR4['y˫i7וgoF~iu|΍Hq=|ʟN xmJZib Ĩ7zZ0JƷz>Zg/Jx{bbIAԖ 27NB8gpheL iϒCN 7*R|E>ʴ[0ի̟u!7v&YzISac3|˦Ye3<_GH&4N洘 ^:L(z+sN %-2%K˕>t J9v-PQ\JSxcDFf܂dC0pm'^4Pt|Np# vu\Yh3(/i.R X8y\mјj ~[]] B0RS3BB+?"mY/8 s"קe%](; %u#R~oʷ: ;@;T[(ۆEx? m:&ĖM\W 1" ]~%?iW8MIjS Ty>R&M~{"L̩GW[ 5^GtV.#d?٫%Mp .]BrLM`iY)5qi ʪ1l?Q*H#*= # jVk=41\RJK)֕7o 'd kFҰ-mZ(x|VM<5H3#9X͠GƬ ?.2%)8I7]"lJLv9Չt ^QE^eM13\m97ƕ\LOps=I,%C V')0UVM\"یn`+аo E ,5ߨ&*om ɹ>ת}7(굽/Jx0m՟Ram{_ @p'r,9Ne\b~>&('{LU7dmT}ړd]02yDi&@PjНx[m"]+NKm~~'1öp*}CvLk-b^lu<&*ʃbb~%>JSbDm-LLfrjޕ"7炳v7h =ڜ.UߨʓHV-h!&I{>5f>aH:Bat14 ChH/"f[$|<܈P5 Z-INI]vOZEwVY"ÐaJ~t~[Wq+|"h /H1,? ӯU{DJYm5OW}@ v2jEYCA{*jJ&}FjΜۣ[ +Ҿ$|f;6:-D lIF&ȊyBhfpq=((J IPT8l68# {]RTsZ>sZޱXl(wVҧ&YwET@{yה~DCd_*;sMnX╓TDf*dAS , &)O cwm"w-n$: :"DNM~sXrg|Cz:*7Q"MȁhE-_~A@R/Ru UɞJblyñ qqd[ #.#S!ųM?IvVī1MOn*1u%]v#/oKW j+B" ޻D?1hAdJlS C߽ͼ&6MJ4?*vvWI4cOe l0G/PeQS<~Vzkƒdɤs\$/"1>1 •VU+dBez{Tk1rǢOHg"M#8yj`pڲ6.a`l( 28YUy/YG%*ٗ!Vދ#c COye݊(|44?M~H0)9ğƴ/ }'n7 t_H%^0*I"(<|m ۠7ȏ^^S!A<0 ,@bvLL3X⎍O dA;C99ɐv"4Yy$xXP˨RYq@R+*ȡǦS endstream endobj 208 0 obj << /Length1 721 /Length2 4672 /Length3 0 /Length 5264 /Filter /FlateDecode >> stream xmrg4ju :ѣ D%.E13 3ѣN"D'щ5DF^7]Zz>쳟˥A!0HDT`n `P<V2`pb 2^ `@D!c ȹ*➋`+\7"=`tBTʹ @F`N6NH@ CqA- p'0h8oM8?Ю,Z-A t4x5â>_//u'!p$ A!dM m<?wt-w p f?wrCQ t1p 0YP_z9 $N醀#VB- ]O?ڏcN;z?<50 ⯽bP? \""X7Oa#i|žc4׻9$ #d |r o Y {igKX /(lok} (V{"B-XOΞuZjuӘ'OM{$ަ,}'OίmE3;1|KyzI!TB3`eda0$3;6/3?=KqrytnEGu2rHtn%MbԈpsڧ BJ ;`e`FX(8WD"Q/]*\ұaRƨoV@~CM…bԙe3'3'>]}TJT!{QyŦr؞{ } 2%.Evpz#J, Jc9u}-*;\pf4ѫ&wϯ,3o;!@ LGl** 7$WWpYQ5Ϛ5# o9-ͰEq?sHf =R=]q'b."_{88  8ixxs=e26R>-MԜy$l$Hr*ReK\w:(_``M:ǦBԲmhR@NP >ѝU%' 13atLjgt4O ")<u@VoYA38IG 4_?)o~[u.ᅬpLw$,ttQ[ \6Qb})Ŏ72K@w>T8~5,N乁c-Tlv#$I2<-fJLZ摳lru^Pd<=.m1MMf+km(=[3/71,(m}!\.·ڔe=D{ωM^ E2 !w/3+H6= M4A'Z,Dƞi*s\F. ONޜՍ 6 ۹,W!#%Xfo߷90 )!Us*@>i}ޟ|Gv-z C-d9Du1N,tA po%ǞMݩvIeʾ&Ĵ6flVk;;v^-YlM.#&l^D3 KYOhlu9ZM:IQtf\jwwŶLaG|-;+qm@٧ N4 8$ZTcg3-KVn*?CmY;S^cyס8'"R\R.E(/^,j&Ny[뙧}x0Q;>vdJKo7f>!ʏs5hr\TesnX͈S)lY,W%!%?b:I9;D>b60*/꘤p&8y\/+5D 8ǒܚsϩRXKIHdݢxN m& V}ih6{͎Q z|yń'<3reh;Xy3E ="A`.jbZ_+2f%vI^ف7Ҥz3q|Po_-g畈 eWGߚ&PJ/$/32pDqDwu&:`O#4) =lp7X\~\m+r-]hQ"eG>xTh "#Ud5i\*!' xAE@}oU4gnş5Y,tl:/IZo8io'"v){gdXߟ;ٺE+u7{</&Uiѝ*v|0l (kN1S#k>w?{Y9Ay|'?8*Yf dW(jP ]~:e!=0iټ౱]PEf-|ѝ6%~R)'ryhz`v,z5bphѵ1[$1ʪ{Jb~Կ s;_<9|9t*ʝX|Jy~>M۩^L(ݡ ֣KHڪzԴDjt³ޘy&m=t9+r[lS3΄QDgy+3f^x_hiޠdd357hm Oڻ;=F!}7;\+9n"jqK5T灁?"(l ,A]Dn,,fhaP)Feɻ3o52i@{;H8dg%lo VUÜ{#gZ#K 2f}{UZIݴzEW1M;7I^_w󱛍^1cŐ=!m endstream endobj 220 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.16)/Keywords() /CreationDate (D:20150924110228+03'00') /ModDate (D:20150924110228+03'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) kpathsea version 6.2.1) >> endobj 151 0 obj << /Type /ObjStm /N 81 /First 723 /Length 3999 /Filter /FlateDecode >> stream x[[s~9gt aB.@$C𮉃E3/`E#՚BȄtQLZ))!QB_i$&d\Ȭ0e +2SIȤvv$̤ ʩLIҙ;&Raǂf;.38\3cPY*ȬD5 D#6X_.eU1 `5@T<d^9k y'ABdAPGeA0ɂ5$pdv 84#`_G xBM|աrWȂUR(0;J! -Qz$r{*qs@:q+JPy.CTUt@+; :RR3HM$e+^[8*kHdqs@Q2@i-H=F%xqz *=3FQlvD;ZegGi. `U=.?xhbg(yG`-'*{fiebO^01,GP^Lr9YK ?:(//aKh؇ m6G)ulأmF 'L,r6G. -1ϵq>|Fw!hR=0Yك?䣻yYcyoI*vƠi/ҌbVc GC-MD 9P>!YCN۱4q8p*A oC3֍#h]c+P>c( CjdmH ` B <$ďG\hV6*ZO8X_2y?͓*h?1~nF%}~X JQ.={.^쇉u>XcG'1ei!pHb^JȉUDu }dO k *,Z۠ap_BFe'B1ZxoN(j6K fq7~{4S[aL $qCY6ܒdYD@x-9iQ#"GM*hCAiVB`'.;܇4&oJ)hY0-i֑ϳ6w2&DAWhi _l55ShkCv@2'8(9s[%T:%f:`iV.q-k gP$ޥ%(Gbl:WvjH '7bN9D[Cc)o2ľW|s!ɕ4(+IH-2һN8-кA=4q9F E+ސ:ֹ͡$Z-< @QD#r(̜[&ai?TwBYrۏnܲ, }[aW/h:t._%DdWCӊ0^ǜeL`]t⋹l Yb@r7a$DZpZ5ܒ5[ڪz >u>Hl]Жk: ,{O T Ab=/P6yNzy0$Lj].$-PHx p0}',dYC}͵kx4q8(+z{VKP%uẐפ &sL01\.3=c{/;O s|jPL+Qbpɽd6=߾?Y_`9"}%w ?O$y~f~/ʫ|U>We~/e,?*_}Xek䟷ؠ)!|@{/~{uRT[z=%R u/>6Br=yO|A$rĠm&f>~pf ClW\.#:vƮb('Hm&^.M,zwx,: u]TduaЦʑ ѝҧU:|6 9ߓSV??_M+-[OrO7UynF79f9ҋ/r1od>>={M;5s9e7 lWh˰Q6=:{ s)vw6 fTjX= }LlmiQB|#4hQsvp0Tѭ#bam?l{wN_<~(pF˟DpRRA?-ojE{gӡ.1+,u2)!ZHcԽpy'dy>|6,^~VE9Ywr3, >\ VG~ 1<`oIoxqURb#zf,Fç{C6*S{RHp"*6=krwom`w!9[d]UV7ҺN%O+0f:0'YlƏ~&_96"*#yK䴛?sWvh3m zTIH֫0Тͩ0aK/dXZrB_{#1hXSL= ᔄ:'xY/lNj4tN] endstream endobj 221 0 obj << /Type /XRef /Index [0 222] /Size 222 /W [1 3 1] /Root 219 0 R /Info 220 0 R /ID [<9CAFDC8068C8F128A1CD4BABBC2872EB> <9CAFDC8068C8F128A1CD4BABBC2872EB>] /Length 571 /Filter /FlateDecode >> stream x%oAϙRukmUZ[]Jiiba'.a!i,DbccaeBc@"f'l> stream xڍ 0 Dw~ez/B/U]R$8tP2z׫<${ph :?i_kۖIN L2 KXj$?u;O(W6endstream endobj 6 0 obj << /Type /Page /Contents 7 0 R /Resources 5 0 R /MediaBox [0 0 611.9985 791.9981] /Parent 8 0 R >> endobj 4 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./varpartv1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 9 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 612.00000000 792.00000000] /Resources << /Font << /Fcpdf0 10 0 R /Fcpdf1 11 0 R /Fcpdf2 12 0 R /Fcpdf3 13 0 R /Fcpdf4 14 0 R >> /ProcSet [ /PDF /Text ] >> /Length 2587 /Filter /FlateDecode >> stream xڝZK8Wpn шoic fv 'U|eIMXE~U*ieje꧟7sI(-jr(UpdUhIw=ñ+B<#15#מ zߞILM 9F?]%gu GBѺ`2FE?U.MRWZ%*tL >\]cuQd0Nк&B `5nVvH@= c0 YɢF/@j@+fU3^E/†hSNL4) xUTi"XY*2-~b "Ӝ LmQ!l%pQJrjduFhY3̲th˨ƈl=O&X&6t`,vB y.kήpEˮv$(#z ]T慪8QոY yAhzYxxsa"!|ȹ."lVVd((!dbWlԐ0q*"s\R3QSNXz.9Xʈ|%5f=1gjaBuU}! ʸc3Bpv2KksvLҜz1WZLNC?]_35"bk rXi\+y=r?_fYʐr͞ؿݶ/fOZQd_۶X& ;#y&᪻u3#rl uvʼn q% %*oe<>K"(LyVR#O9/MeE؞̕ʖ @*3ƻ#~5Ďy9O&zEay8Oe)*"Z)*l40JQ|T-D Oxtf6KRa#xal9*A fPWq)*+,0{LZ+GeP 4I2h0K*}ֶJ9-R K%s,ejt2]CKt .XHa-yڶ\KLD%9]T.Mse3%D0@)nWaFPӭ0KN:J}יN9A5i:1q.-eiUN/|i.kܠ~ O*seTdE!晙t=BQs~] #QXwmm2YГ<К~ \?Va!}X aKp,ԓu,'v>lٝΦLE̊oBmI0ݒDλn ;mYfǗF8>r:^Q? !R ߊ9:Q;DVvg.b>d mE.Ո:^|,J[r̯߈}r½XK,߾h^hpo_K6 $9G:1p|PԏGq jtzx# ߹U,~5 t6fx(d}Ou[*Ykendstream endobj 9 0 obj << /Creator (Canvas\222 3.0.3) /CreationDate (D:20020223175104) /Subject () /Title () /Author (P. Legendre) /Producer (Acrobat PDFWriter 4.0 for Power Macintosh) /Keywords () /ModDate (D:20050821141706-04'00') >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /Name /Fcpdf0 /BaseFont /Times-Bold /Encoding /MacRomanEncoding >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /Name /Fcpdf1 /BaseFont /Times-BoldItalic /Encoding /MacRomanEncoding >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /Name /Fcpdf2 /BaseFont /Times-Roman /Encoding /MacRomanEncoding >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /Name /Fcpdf3 /BaseFont /Times-Italic /Encoding /MacRomanEncoding >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /Name /Fcpdf4 /BaseFont /Symbol >> endobj 5 0 obj << /XObject << /Im4 4 0 R >> /ProcSet [ /PDF ] >> endobj 21 0 obj << /Length 121 /Filter /FlateDecode >> stream xڍ 0 Dw~ex/ B/U]R$8tP2zM-A7Ow{6IN L2 kX#bI~F7vPԭ%/Z86endstream endobj 20 0 obj << /Type /Page /Contents 21 0 R /Resources 19 0 R /MediaBox [0 0 611.9985 791.9981] /Parent 8 0 R >> endobj 18 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./varpart23.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 22 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 612.00000000 792.00000000] /Resources << /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 23 0 R >>/Font << /F1.0 24 0 R/F1.1 25 0 R>> >> /Length 26 0 R /Filter /FlateDecode >> stream xڽ]s9r~_1$ړI `UTe/~JnR(j$1I/Ez}-4w7d~x|UUVu]bZɺmwή~|%/~?fen~췬>oOrYUe }^|Z5k]e%[]gU^ggW'>3LJc}>M fue15ߪ5X,'{KjZ`̓[졵|g9OsRU 8'jm>wB*~c :/?*Q7VDH<3v2twNm ﭲYhcf2.7h&PȪιyt2Yfrnucp. Y+җYG %c2JG{lx믺mR(T-bϣhy6oҪgº ~nUT*wk_./#Xf2KU3CgFm̓:بߖgz̫} vH<"NiH:K4X#jm=|+2xkH5b"P0sLj BJ z5c `#>s]E¤0(~L$~6º/K&̇B"`x7>bB,ʣqnI1vU_^D#VߦkAUo,]As4b{tm}E8SIAհh0Ķy6//6䠳\+]l~[|mB#]2UU~BP.={zaA c4E 7{w=m(n5]s?mٶh'.Uy,Fȱ"X(v\N',BԢUfKlߺ$@(F&uz@ˇjBkƜ:=9u(|^ 1q|0b^ +M t2TmfR[~yHESBfg7SLb릹?xq.zǽ4FF3Ƚ.8d>UsWڼ,Ο{Qsrl*TpWo-d4J},fve\QRk4"6k&($])PΈfE2iSZ$]ʧb(atƒ5kA<&Kq3 X^\yng#Ъ Y#\fU+#-.5;k:󤙟k24oŴAZxnl.DZ`hE& >4!zŕxiPqiH, LÇ"ϐZw`$m,xLRiمCZɃjZyJŽHDd*\7+^U2H3¢asĪ3[ȉQee5Bq^JYG7BYlf]5E׿#!Y#{AԖ~2X뻕xiBiB@#F[ QMbBQ<Zc7;RNg>6-y+Te-W6vs߬7z)Rw($ xSpAr֧h#QZSK|:Wb$n~0a|_`Jə_><4ۦGr^-oM!W]$3w_"Wyʏ%K /h͟}XYa)-]~<=?PG0fvSޤW#um.iU%5QWOE'fmW8r9% J%|u9V]XB,KĽb+@zGҤǜL7?umSDg}L5/jȢ= }jg?\ w4@1SO~:ݣG_?a Ӑ53eW6kr5۷hX83Df3Ȇȋ826kh1;ĵW+';Gƴ ֖B"2ˉ> W0Z-$4seTK(₊RNE |7ySݕjB Gb>@u]d"AzQm IN;aKC `{:%,l0#̜XWЬ?"ಷ2g>a,"@_tޯd>X8;wz،u ;f=B44ˆ^, afm Q"W=;kY+E"g uݴulZMҍpĿ|1毻02,=1毫u'9r#_KO.֕RT>=rwX\ gl :T)GR?d.ZC쇏 ||MDd-6X86&4 Wf?ؑjI/9k`E5>|l bh}b>c{üicd0#v CqdS$E:)f?ޑL2D1d9kzdH1dHK ˙C~ ݏ!R̷O lۓL2]2cYX,ɇ3CO>QN4g_u`W<Dž]Iٕ pS;; b_pMxCh+^ T充=X ~o=qޑ黀~_:G㖪O?PmAvƹTL,ڇsnprֽgULM=o,8{ht0A.!V@AV—g_oTLwYU٫R3TL˱ 4,Z*ȋ!ˋ & #x1xލ܋^*ŀ/.W܋A5S^LB TFJ‰´LЎ!{ !>Ť,ϋe{w-^USrϕ|&y){yp;+MkIyI,0Am]A8L]@=͇ۤ7~%qlz ̇GVvZG| J=VO˛"ijMe ,}Mp͓bڶMG/,oێn(xnehC@F]Gjnx&Xތ}ՐxB7;7C=!7a&I9F't`ySt-l(@`^+T6 PtrrVoئbl.A't]['>6] פl,F>Ħ+1MWW t]Û6]yZ %ltVo4<7YJ }t{aWCe$y,\8F-xHͻһVғN?޼kǦՉ#˦>}%z^%P׽eS KwICǦZj-MFvۅxwC?%G@c.VxALM~ږ!6ԇl*)Dν[Mwڋ5@g]-kVڇb*L@G*V;皲HZH0Ud؎#CVf8ܳjH2("gڟm]`ѡXko ,ho]o>S2fy=ΓV:N͆Β0Y3{OpF$#W&Gk5yUd%QXz|qQ^GQ4(B;"zTWݬz%N(ӓ0sy6@Z:)]UhS<uvPUTƐBUN&yU@+\^͋-y-WPsS)(Ć5R9&^Y QS8x?MdzS`^Izb^x'P(A,.5`lҋodkл"vXs9lmoؾ+6/MVG]{H ,n,ʩCQFus/[1e_nn/,ծ]6 ˗lmz݈.)_iMnfެDn`W_LW2vendstream endobj 22 0 obj << /Author (legendre) /Creator (BBEdit Lite) /CreationDate (D:20051128165431-05'00') /ModDate (D:20051128165431-05'00') /Producer (Mac OS X 10.4.3 Quartz PDFContext) /Title (Varpart2-3 procedures \(65%\).txt) >> endobj 23 0 obj [/ICCBased 27 0 R] endobj 24 0 obj << /Type /Font /Subtype /TrueType /BaseFont /FFYBXK#2BMonaco /FontDescriptor 28 0 R /Widths 29 0 R /FirstChar 32 /LastChar 124 /Encoding /MacRomanEncoding >> endobj 25 0 obj << /Type /Font /Subtype /TrueType /BaseFont /ZBLSFD#2BMonaco /FontDescriptor 30 0 R /Widths 31 0 R /FirstChar 33 /LastChar 34 /ToUnicode 32 0 R >> endobj 26 0 obj 7226 endobj 27 0 obj << /Length 33 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream x}OHQǿ%Be&RNW`oʶkξn%B.A1XI:b]"(73ڃ73{@](mzy(;>7PA+Xf$vlqd}䜛] UƬxiO:bM1Wg>q[ 2M'"()Y'ld4䗉2'&Sg^}8&w֚, \V:kݤ;iR;;\u?V\\C9u(JI]BSs_ QP5Fz׋G%t{3qWD0vz \}\$um+٬C;X9:Y^gB,\ACioci]g(L;z9AnI ꭰ4Iݠx#{zwAj}΅Q=8m (o{1cd5Ugҷtlaȱi"\.5汔^8tph0k!~D Thd6챖:>f&mxA4L&%kiĔ?Cqոm&/By#Ց%i'W:XlErr'=_ܗ)i7Ҭ,F|Nٮͯ6rm^ UHW5;?Ͱhendstream endobj 28 0 obj << /Type /FontDescriptor /Ascent 1000 /CapHeight 769 /Descent -250 /Flags 33 /FontBBox [ -144 -422 748 1223] /FontName /FFYBXK#2BMonaco /ItalicAngle 0 /StemV 0 /Leading 83 /MaxWidth 600 /XHeight 553 /FontFile2 34 0 R >> endobj 29 0 obj [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 30 0 obj << /Type /FontDescriptor /Ascent 1000 /CapHeight 769 /Descent -250 /Flags 5 /FontBBox [ -144 -422 748 1223] /FontName /ZBLSFD#2BMonaco /ItalicAngle 0 /StemV 0 /Leading 83 /MaxWidth 600 /XHeight 553 /FontFile2 35 0 R >> endobj 31 0 obj [ 600 600] endobj 32 0 obj << /Length 36 0 R /Filter /FlateDecode >> stream x]PAj0{LA(9AI6dimJ$)0ٙYF%߂F,[Fqj긳IyS[SKa9og`4ܕIxRI ]5!=&6ǔs|A^o38{1(5U%U2$O[vQ+;N%k̛ B*WRZ>y9|N<sUendstream endobj 33 0 obj 706 endobj 34 0 obj << /Length 37 0 R /Length1 19156 /Filter /FlateDecode >> stream xڝ| `EwU=gLN23!I@HAA#w$ +ʩQ9A 0PUvW3p</j>#>ҋ `R9L}}i35l*4F= m#B_6OqN$#I&1Q0f83]%4)ZVL 0R+ rSO},&@|t|Ϡ@o@ S'yx nG,_k?D2#23*fsטĎɩ??f-6Ueh- 3֌A'YK0`3a .E[<O0Z0F|3ላUdy#_Ø"R6E0'2Ξrea5it GmqF,Hmf=I 8.<'@Gy2"iFM 6",oz&yuzN[V1O>=YRSq/6&q{j&ADX`ԩ$XZoHl`}80 ~TzggKZNJT_7)GAyuqpU+lvb@𗸦ptb,ԥwB@=h 2ڢ,.ip:&dĆw*);5>Pw9-rsЧ]RJNoխj4qj`ƍ58 ΅-NMxQ R&:4% LJU^oSU=u hȂ@ǣ)  4yGBuCw+~5JEpyK;tӁ0QA7z&tf:;, u `?2.rOAHClܐ֐ 3TC+.w / w ĭlRx8iXr6"%3mt5o؇Ӛ%5WA&h0 &vedJTWiX |5D>\ C6 D 1 HC[lƝ0FU9Tl K%s!U^p#:gb%U z5{,<ęܢ39Fd7Ȭn`lvzE/yhlu1Dzfǚ"y0n#`k 5Gl zQv8:>M6كQ0/{ՕR]ZW \r7|F‡\F"Ċ ͰŚO>Y[ /`ahʱ=m4u e'W{z.|]Tuus_7 f+j*o O'mgB@=NuoS !8cE0"'Q@v,NŢ($A)"YbI,F,αɱ85(-텥wr8x{#sD&NOS;w>uwy݃o&PO|%t׽g|Q ꛧ?~3i>\Ȥ4>q-ѻJD b\\ 33*qS) fuM`pbtoot"Lk5)#m Ӊ'VȦaw뒔!YXΘ؅͍Er"0)eHbI%%˄LIDToqx)|L8''dBT'Ρ%[BMbP!YXz[ wJ]F<,ѥ?zjQwU x:Wk{?Ȕ~<T4T:BrTvf_We*]ܫ􊩺s>Nֲ R*cXYg0f'[9ά7leD#T**n bL&wP,"мCx]m7c܄Sg>M{C$?۸tܕcr 6"Ջ8G=SO}ާ~!k=oac^u6|KmiBB X11[O`[PK&ޒcaL|v3.u IX}?N ٢ڹ4u*y$O^ڙ+F5lau`zԂO-:*CH9zQ 8l<챽9 DR~z:2vn t6US(x2O޽UfV);OeX~`^yaP!X5?be<qMxоMiS Ndw'_gˤ2{(G)F +t:Y8zX!@q#'qdp801& EZ,4~;c߬D$^]Dw4ddQ~~Q;VSPC6F{#ӛ7jg!o%g+rjqk 1#+\n\L%v NflTh*Q4D.ѣ lɕaOVSs "vd hKXVK.%P/3sP^zU$ C?Ք<_QW}1/n,fURWzm ~ dtd2:#zD)ab/2^dRʍx#Hv*gfeXw}&h=[9 #)%zID!Q, L3-voF`[]0voA`bOznm8.0%MM~kG=RI붥?z]XZ4&30s(egPNJ0: 6M NyR/zX i&p`ûl>yWO{`qhȂ&<0\{ё3N(H}e}}[S":)􍈛f9Ş1 ~ƞ3~x|1). %1QDC!a}-/s?&>e?ϝ_. <)awpH(! $ŗYC<3$K;WZ4v-QNdϪ`^k&7 %>uq׳:ɷ_o~6ue6TZG֮kmʾ|rZsύ?8±Oh$?c|lϰ`421!{Dq"4әb6e@ ,Rq.?W1{= <`v=}Gܸ9~p: $B˜yу|}{ aJwr#慮:syǼqH8infMd ;qF6:SN0Lsf-5UZh6TjPM# Ǐ`>`\R5ad2U~<O{Zaå=6I"h]W{/Lj#:EaRwPzG)4?D4Cz?4\0X4}7͗7<)a9<9ܒ`F~ͮ 4:;TsӋA,,|>}VM=c2vA#Ќчp裍vE '.C)nL7{iT bT+???#<#nO2s%Kg&2y 6Yo 6c2gTH /qyc?H'Δ+`1|h]Qa$j. hDyb-"]*Z͛`\Tng>>8ebemrG;R[OuhJ w,15!1hdژ̉3?y7Noo$N', DobR>S-.)M(M,N*M+=,qXUުiiĪ)&fȮ<=gnwVYI kSjk;,eכ_2Farys.F_}մ^lf*N0d5˲E&yNHo>4Jl6Ǝae?O]Zި:ot9N>\\ѓdSw÷Lk~&0ْ_1C[*fݔ('`aV9vu{26/ 븺]ǙnWx_q֪=3 ċܮtCmtV[CJV@}fanW$$*G}g`^߃#l>v9#Sn}p# `Vc4~ڪE\y4og og6 @b@Z$;SVq eUyF~)Bd̤&s(zD2X~7R6·aAY<į o5ɡ ]\VJn(MuPAefL8=TAָ\1çaSeIú޽98tz҆NtFf1?~fOP{6` _hR  haq {P<#(I`1 9y6b"p dXdOd, b!YCLCVLkdNW&9aӥ쮬j!/^}a.\|^z/x^Mշoms3jXˎ(oΝ~.L?Y+M+$M4\@ Q;xz:'~PFȉelb)M&%9 8CpQ.$Lk^nz\Zeu3F^ާ>w }[ eg%صU{CG %ea#aˮgw3;=f#gHXM7Z%^GvE/,R<2czzM)#m(2 W m'zVB \F VN c@В9I0 Nrn͇HB57.gyƯ>J]fm{!rJrQbEG_d" !5/%q 锯\CQlD|(]'4Y E2!`/`tQRg Əxnfl|e9I/$ehud6[ AF%Yd3d4b ʞ3&i˓F<؈5vmTPR ȋNR2+=t0j+!~ΩK۬z{vr(ɒ! 1JӖoB"f;i=҇?^VNc؊g7j^kܘCO*4vs=ѻwƸ s}5/%E( qB0ћώ'y'ɍIqN)еX__>_U3 :D]PlӬ| /(hɏ*;&;i̢Hd-0Ȩ}z{}Xpq PN#_M2I<8H@q-O 0`ӓ&=/.ݺpqCxcvWy~zcex `mǍQb q&R*5e0hRFV\՞=`rDV;Q2]*^~1qi>"u)F$aD6 ǞceNX=AbJ dQpأ [%*m 4}VO{y&wj퀡0{ovCH/EtR/|$|+2(2I\,.@ps \SR`aBRex(pñ,(B=!?&҄C ?Ƴ\v;{maE-p UVΰXmsBDwVH(F+q5) &s[n=:<ڕ{{V{x;.L+Wʔ)q].wFJI0<0J"XIF X1CL <ς$ !e}XIiI a@.=WDb;6wWp:tA hA_IuE>R'߫{4r1=qRo$>1~F=]Ʈew9{|Ip3f/!K''5d $yxx+f9L83x q PsȟޡMd7B *.R, !XYA(r-tKȂ'$m)xZKUכ}U49]hx AfL B[d@Dϣfv RZW_/oIm_( ʽ'+`w{ސX}`DwxaLlɮXs+ 6.;G65jy5Vlykx̻߶YtmC:4NOa-ySQ4 H͕AK~(V?-g}^v QȭJm7 +N3XQdv&rݵ# ^\4x_n?ZGzqm{Ȃb1^K\w~DXOƛ ڬ.#.]3ϛИGEzQMrC䐀-֕=9oq)'{˹hb-G1sKJL$4mlďW}3dss.<,3^ce?fW57/jv2]h2p~~kڡ?b|v }}| |֡CFn#]E'og<:nG<ރP N v._3< *r.XYWk @0A+.E1)2&KZ&B7 \1k6 pr#m(5kB7BȨ.-~hP%4V0wo}xD rMOo<Ʀ揄D\wբ@5 o7؉v(L''=ӽӃ sŹr[_&,kZZyC|fo<=׃i^&&XP>!&&:ڦ5჊oŊڄ5F׍}%?+xf4}IT 80:V _5`~h\([%:B;T!*|uqKٶˋثmx{;smh[ &=ᡛȍJ6֓rW h>v{`qLҝRo7NHD8=bYs,I-AZXm,gc-圕*G;-7^1lŕOO}#S͏VFn ϲϊtI|dOrS)))))dIIg+nZM|/h ! K=5p}NN GG(iҤ37wS;YX"(.ip٣PR D&_V?aOohhjkƶ6u_w}G u {N [Yq ~!|!aDe6D)Xx@z~'˙-݊2[a/S)0NxmfX u oVo4(&a5)%΋:$Y=E"^&ٽz\B/"1d_+ =bzaIȻP_j^nRb&IL o;>pѮ#WQ~إ'?˻/]Ji闿|~=)N3=9wk{haA||fFQy̧R%i/8rZVVpϢˈsqIc?D oTt GS53軥o[1RA_'%P7ڣ;kF6ޑ*#ڕ"/-ӈ'u fjV[>}LC>^j3syV}Z=-|a#>kzVo'>ߤkNѧ2#}%bto۾._Tpҥyk|-K}-w_A ,wja;7)k]VK]=HMhxëJԾVhY<\b3\I.pUN9' }5R("^xާs,K Yk ba7`%o-ȷ j3^%}?W4N*fmṊz@䬀$lխsD)Řl7' d~aMC-Ǜ w̗K7o̿q~5lj&\JJOu"ɬ@xAo0o3+ӥbE bk_o6_L0%zb~kPYjiݙ=3]w-FzcsvLI CL6t*W?|lEhsї6s[BY7FN*)1KST1_D&39vMvs// MpVpU ryd2{,vrDm]"[[[|xB׾u!yiٲ۱ guuҏP~3?{I?>&~5Cw+DYz>cXFO:ful7 /3{ٗ&0{;Şγ9RS@Xj[YgF3%<.qcܓy 26`c6Z#t˓sɠSOwïR⮤K\GQ=}Y5וflfJoS}svWic/ Ibf>o1t] K!m|okúëg,k.7;;r_w)k}"RÞQϷmR;j?}3h-K3  '|r@û ې"ii?)r}oG~i>p?<Ő"}l8?- wuِRL|H "ϣFFmC4TBz2(H 3W 3`f`.:6Q!A&iΤ뫛:`d|ڔkhz|HGɏ[2,oXXvE͈o`?yŮOoy=ڻ/GUGqگ~Lrn]HAŨ2T`]0Ah0 AC07FQ`Ơ{нh2^fN\5<ܓkӻ_Up>|49ڱE5@ p\2$ c$Vbgݢg>'>dۇݾ 5F-;N^F&>³#"hHc }p/jjL\ ݻA!l@c|4Ooi8'*GNapjczǡ8 DXd!E_w{` h}8Xk v=mCx-{!m 6aȞ 6n%`6}e2_`WzM8їn@3E  h=|]KZ󀰦RX3HXk 5š,aM&UX+DVQ0`u("+7ھR44YzdL7LxL_B ^c?uՎE"k%wcڭV(0}h<$|?jh5kh͚5WLÆCG533-ŌP]xgIaF:lǻJaJmh3cfpxmC3hVP.ޭnx_I>OkTxxgn3$ڤkm:/AC6C:/ц5Nk BA >Z >u[mmL1=mMS{Eߖ TAlX9axEH?a U5, V7L\;iu`>dب}땪ƞJϒ3|dzx`@ɿS=VggMϚLdh*:zys|gSendstream endobj 35 0 obj << /Length 38 0 R /Length1 4236 /Filter /FlateDecode >> stream xڅV T,8?X@M8 ш@+D]%ILb5nZsR/i3,.jc$4ǞxjzcYv޾w{0AWC PJ?POihkUk~y'4ki5tⳛ7?g ,E$C0EF2k%(VS8FJ5`H7hp*z`z)Uxs8~q ^<؄0B'6n#nYpk<sH{a#<r ;d >!%@>y0a 4 *v ƣF!$f WQŸ8eCB0y-rڨ1ZMF8jl>3 Go.Z }bXm8F`PUpR a=vda*t }p\8Ep2Y❖W-]"0ޢB5BUl?ށcyG`'/f8Z).;0@!B8D>},.>eȧ,jQN~ WȗJ&q!,6itC:>}+&?*(C}K̊>8G) NrV'P,;mdSYG|XŸ!QvIp c)6W#_=*>gd.2ZZj 9cVh+|ꂯѓ437/cj!hOnwFgYFQN\eut>w ůyĻJcZS*/e>C PJk>i)cYKS:{r"tToHv7jMsA<% }imW>5:y5\~M3:ݫўku9s76iHIC7c!@gx\15 EKJc>VHX&19 ŋ+m8bp0M/Ùӝjնd0UНfNhu% -, Zߣ/5&oIr`dbYn0~ N͵.mԊf?ŗ/|fߞ#o]̳pb 1mr:tMLK|)ٕeZ$ EAc|HKZ%ȩj3.0>J CI Vk2FLg Iiݒ3g!"lۑ6E tLOz"t&N܊z"]BgVI̬c0N{/H3?o;F(*#g Q"tƈG#'^K#G cx' mh ەTaF70;y;0=rwuk} Lc Mȯ\jޫbjk~IA%/qUY]gBSyBN7^lfORAwyT[kW3ESNEt*'JV!W&y6JHi-̗> /ProcSet [ /PDF ] >> endobj 45 0 obj << /Length 123 /Filter /FlateDecode >> stream xڍ 0 Dw~ɒx/B/QR$8tB`]w5$Z#.:~]SE ߔrթJb>?WRSv9{7vkK66endstream endobj 44 0 obj << /Type /Page /Contents 45 0 R /Resources 43 0 R /MediaBox [0 0 791.9981 611.9985] /Parent 8 0 R >> endobj 42 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./varpart4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 46 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 792.00000000 612.00000000] /Resources << /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 47 0 R >>/Font << /F1.0 48 0 R/F1.1 49 0 R>> >> /Length 50 0 R /Filter /FlateDecode >> stream xڽ]Ms#7WNʡ tD_^66<OH:P"%QGŶ~"EVHP-( gꟕ+j&kF+kM%kպoz|Jz¨rԴb՗I-Qr[[iCZAW~ۊ֒UV_V_~Suy^}W}yKcpdp4lVӁ iZӉn¦7OMbf|"m7MMSk=W*zatl~njx=ڸ>XOn[l֋;I5&ń[#40lf|6u+95cЬz?mySLhOq>;2ڔ j6ݕ~]X昴t"АOvڵsq۟ϑUW]w٧؄9?cpZm=[ ҉Ԅ*Ih3yr:єk z|%Y'VZe0\:UT $]\rXyʵw? vP[vh\_Ca;0ҒqdJs4zm`n-uDwH.HUhOm-u)򭋢9cF޽dzl-JdJ$6Gc ONTM󷎊rSp[nnřK8\W>oG #qn&W4[G ",o04=JJܭ ~ӟOz{kǻ;S:*ܔ^dׁ qc7okG"KoO1K? 71"++鎂x̋#!ID9@bLI/$]vz LjzĸMLoqP6O4f !G/Y>E+֘!c ͨy.YbmW~f09/h& ~ru?oZEb=[mVڎ$RA[l;5Mc1fBd2)] Xv5zsupx=~^\^c^Co]ѻzǔL#컦Ґ(I?<(!j qyeWeri_zͩIeBذː]&.CKr']2 2˳eB:{aT*eH|Q6t I*8}td-q.\f\ϫH!#Lywŏ.CrLe]7gLk\&*eȈ(Bts.CLӻCIŒ Lr;k\2wdžݼzYmeB̻+( qư9QFPLGi6.cS(c('fe`Zdl 㰙r]=5,jtC+ e)sxP_ڀCை hJ"xR][șL>?>JNJyh2MJm6" 4 #ɀ@^. ,+5L6gOb(t @wdQka28!@ A`vأ[%+db]dR42hP˒AhJcAǙ G (ML۷ D=-y XwW8\pHȠA-Ka+Eg*D@24d BSye`{=\ B+[ B=CF jY2 [Y,28S!2ϰP@( B},N[ r"=XwW.! S46hP 7ѠвO0c`Dj| 9Q/Ju^ wBF Y Jq%F&//:TRZ&kNׯ^xϛL==Eu|>b\ a]nC@cGpXFYnPffAмeXUnX mG|n\7%A p47hB*  Ź>7@ + 7z47p7~U:I7Ђ7찟yqg`=dt1"Ӗ0Aoyml(JFw)L]n԰G {)now ;B@`VEx~nK_1߳S)rV797iתkɯǴMgW A%퓯[ )yG#.H6i%xyQRAiUDɀfB`m6swCc7*h%,ܧ9Rp>P<6#DW3UD/׿Wl(&4%bb z2AԄ V _=Q I@c7!F]l"i(Œ,ZPLq:A1a7>CgrRr HY,E_C1-R*4b ULތbԲDS1! n%s#UqJ Y*Fn{-R1)*FѦ*mbpL4saF`Bi FW1gXQtcoVP1ƂRi!R1×TLb̘F8*ءY 1**&QQUC@P1W1%H*0[WPTY(e-T̥bwFil|V1CW1P*_O L#—U dĹ2*@DW1POAR1Y^ ~jUHڨ1}Ib (r4Fp  $$X%4]pD//Ug䒣_$\"3`r0r'∌ ԥ>@A"\& (:Ej#R.K9Eυ 0."!(!*q> &m]awy}x\/Q6˺I(EGnXEE8.J.J;AB.J.J.!1E%gGB*]w[ \B(]U AEqyEE.ᨍ*u\z)~os55 GX)Řr1s_`L#(c*Ks!Jb.ƌ5HhHCfqD^i= 'j'FY'QBYd+9t悾Ҧژ(E׵obLEW@)Oy>c>fhE6 I}2m0'ޘ=>TSuF^ڗ xY_38i}>9%i:t-kqlMLJhzi|1su6]7gwoѣ+nx]9]9+]A x+x[9+ﭜX筝x+}8k[%4 J1ja9L Z`yiPĀ3|-$,#uqU $毗_C <-iLtѣR-8Ǐ!Vtժ|tj(FZ޺@V{Vp2 t_{V aay5՚[֔Vk [S[VUԹDV@}evmW@@VmmBGV 8s [C筯XʟB\R x+ao}EVV@Sݶx+}:<;,op .֏9zuw {`b(~u GI22gp},o\Z~.г2b[mVLJA'[ChJX?q,tAJX [* `t.@eJN12jlNxHg?6o5de;C9/JqRxk'ZB׸,6}>p C/%2972q5z }]#ȶkM1{Gȍ1HFA^Y=M/znM :6i=OAHqlC#&6dzM1lfжc!y@cKmB <]msl5 >@4F !l-6C}8xm@`mma m(!xaP[mBaj˳͠m6Bl3Ccj˳ ؆lF?f{EpqجO{O) l{[y@?0w6y;vZl 49vgć (\2"Y3? s&cm}ZH"m:UNA!OՄF h~Z~%w8]7"ȤXa=P_<̣l,J(4f"|?=ilJи M'm}B(ЫdUBZOX*Yyz,@W =ѫd54an:% sTMװV@P yDa*|"IDhBAbHQ{5( ʮ3Dg_:*-4rހJ@5v@ 45#! }!Imt!QhW!ʎ3 Q /Md+5DYpWBـ 'KZ QhqiQ4h$EGQ^|'Q 0;;dQ@φ(LPo3b]C@ 8DODрD@# #E_z"u|@-a EtEV' V*jVP7ul+KN $dJ+뀂]%Ү,`g쎆xRE #/=F Pvxx > endobj 47 0 obj [/ICCBased 51 0 R] endobj 48 0 obj << /Type /Font /Subtype /TrueType /BaseFont /ZFNYZM#2BMonaco /FontDescriptor 52 0 R /Widths 53 0 R /FirstChar 32 /LastChar 121 /Encoding /MacRomanEncoding >> endobj 49 0 obj << /Type /Font /Subtype /TrueType /BaseFont /RHUJEE#2BMonaco /FontDescriptor 54 0 R /Widths 55 0 R /FirstChar 33 /LastChar 34 /ToUnicode 56 0 R >> endobj 50 0 obj 6081 endobj 51 0 obj << /Length 57 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream x}OHQǿ%Be&RNW`oʶkξn%B.A1XI:b]"(73ڃ73{@](mzy(;>7PA+Xf$vlqd}䜛] UƬxiO:bM1Wg>q[ 2M'"()Y'ld4䗉2'&Sg^}8&w֚, \V:kݤ;iR;;\u?V\\C9u(JI]BSs_ QP5Fz׋G%t{3qWD0vz \}\$um+٬C;X9:Y^gB,\ACioci]g(L;z9AnI ꭰ4Iݠx#{zwAj}΅Q=8m (o{1cd5Ugҷtlaȱi"\.5汔^8tph0k!~D Thd6챖:>f&mxA4L&%kiĔ?Cqոm&/By#Ց%i'W:XlErr'=_ܗ)i7Ҭ,F|Nٮͯ6rm^ UHW5;?Ͱhendstream endobj 52 0 obj << /Type /FontDescriptor /Ascent 1000 /CapHeight 769 /Descent -250 /Flags 33 /FontBBox [ -144 -422 748 1223] /FontName /ZFNYZM#2BMonaco /ItalicAngle 0 /StemV 0 /Leading 83 /MaxWidth 600 /XHeight 553 /FontFile2 58 0 R >> endobj 53 0 obj [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 54 0 obj << /Type /FontDescriptor /Ascent 1000 /CapHeight 769 /Descent -250 /Flags 5 /FontBBox [ -144 -422 748 1223] /FontName /RHUJEE#2BMonaco /ItalicAngle 0 /StemV 0 /Leading 83 /MaxWidth 600 /XHeight 553 /FontFile2 59 0 R >> endobj 55 0 obj [ 600 600] endobj 56 0 obj << /Length 60 0 R /Filter /FlateDecode >> stream x]PAj0{LA(9AI6dimJ$)0ٙYF%߂F,[Fqj긳IyS[SKa9og`4ܕIxRI ]5!=&6ǔs|A^o38{1(5U%U2$O[vQ+;N%k̛ B*WRZ>y9|N<sUendstream endobj 57 0 obj 706 endobj 58 0 obj << /Length 61 0 R /Length1 17680 /Filter /FlateDecode >> stream xڝ{ |EU=g}%L2!  II ȭp;(\ <8RC8 eWPU("$ITWuwM{}U# h b2||s}yI!!)Y)n2sمTPSOj,: ^e*0%hOZ>m5_fΚ8~uD(o/.@X}a?pskdﯘ5w7~gT1-C@S8rģ75!P"j HD!=6"2#Yِ9NtBnzn9C1(8J-u< Qn$F{QꀒQ JEQJG(eN(uF9TV+ꆺ'E(J:[F|Ckup7|9B*)(oUURۋ#D^hTڊ}gПc;Ñ R Ũ{V74[gCl?ܱ3U[nnb}#9ёf椺_=zWŭ_/0Oift@ ?z SbaiSMDL-Sp&5D</u~Ɵ| $.r\bDf&3YbN23 IHfN]U/0j)-Ck:Na. `37P;nx$r /O~!qbKxiY*%E˪@V+GvKUT\ ?%2a,THNJ>KAZ4lAUKk}1 bQ{=Js݋{ApzuϠ{qOe)!@zm`bMY7T=t OV=dD9`0CM>QhyvmjjmJ SEou}1EG_ AD>0{R}wSۊsHd%O]454yFwKSLkw!w~n>lWp驋cY a89E0!Q`VN ơXh%'AZ,I qؤMf =uLMq8% R\;'C]\%s A0/p'n}m۞Ρ6naVZ%u۟r=y}vr+?[T3|f<[8sW?Z_"M|"p܊_%a^±ҽ;o!&Hv=2 `au ͂%zC.ǐ1YlR([U\hXUEG ߄ݻÕKp"9(a.6SQ]v{9'*5_@qخl=&N b&$^bVH0X$w ĉx<.'N3Lusal`7ktL{c|,}bIerLZۥq"nbb:lk>{j+ V>F ۇ7j{a7`%M%jk 1=21bKGp)2cMFVbXo)r^`N.x%*_RpI$m)8jL&c ;Ջ5J"_–S+ |S+GԾ H87n,fVW~ud^>ld #zXaa1>4)Fr r#6rx,qbF`uƾzAW FZc]p3(*ëFAQ]AK-&,tm :9M^lG԰7k{Wj!bУ:ܕ,%p3a.̇Xde3=vzt|~~a**vaBz1/ IJgFcR F0o%?,^w,E6^nlr$TZg5Rv@ ]5'H#M8'/lėS8l}Mwfγ+ob;醚f_^WOLoaަ gFgd'tm#؈dʀ5@>6g٧`4N2 WB5""f%h33l8iqn+WtϠL89]$ bl4g6``r97l\9ҜA ё <hjsw}OG`Nttt#jsy˼y@8nfCd C{ fmt\F#a~a7&`T65Uт0\M4ƃ 'P:<̔@Z;)3\1;U[z&BMb{=Gn :Í;JqOW_ϸq'Ix>עx3S}{̓ϑsD3 xlM)Y$9ʜ 錶ؗd! d MB!HIBb M - ~nN6F cמhR~DH@|<@Pwr9cMLФ'dɂS/#qƧ\?jͣC>U_x^>k9`|n_4=č*"Ӎ(M*Jgggq,V_$qVl!` V8`9I:! z cAe1xaady˾s!BօNWSfP3 R}4u )q>3L{I_/s͛[/eӹDͳ;WhшnB @8)kx*!zߢ.m{|xnW _3+ xeS+Oɪ^|dswT}ՙnW+3cu_T5=VWO) @bQ> h!ހ6!~ tn$ظxl5D}ٗ㟬=.#տ>07Im6Ɓ<c/ @]V^"6ol9* =Zz:%$7  7LS {ɠvo8A 8*eqN0cwXFuE5m6tbǫj+`1=~g4'<Pah6,U0㎦!ר=1`(Id)kO`찟]θ9[ߪ#zd"J1r[j._6iW-GؼGWMBpr.^^1\&Z$2c3lfٵf+` ۱VF"Cz\$HԎ%"$̘&#c(JIeK;61cG JK+X95 !K6ve'!\khh8>+v>SeVVNN׏GQh_׹+_]eJ2SFSΣG/M__?tZuSP2ڲٶvw_~E-}0DӔ /3Dgd" !5; -q/]-vDlԔb8.,'f=偳adJE6nHK!tHv`/< ?uTurgfli>6h|e9I/$ehd6'X AF%Yd3d4bʑ=vF<Ԉ^'}&֨x(rxB.T:huE p.]b.YR`8wF2\[E08q'=y/Բ7$Țr^kPZRɚ g.UT붜M@{8j.DnzpDPϤ#| FfK{yuElΕF4r %kUtĥzLIK6 ^& vg GHuvsXLdAlÜ!D'찹i[MG#²dߕ#>޷a^nNtמfWf~tn -J^#;递H %~p#xo LHb&p,1DD'~‡0TK8$(/,+ lgv6"z>M" j)i*I>U6nrnDV,:"Mc'Ǣ)T6̏GS|g$^c6ޢ ztPSWOsmܻs%ua]"( M rwUrMyVJz$0:^@(ي]B,(N@NY/^8k!)Ӓhٮi6e ( $Bqu3?R'?TrjIi>NfDb[gYmw)#YvʞgEAØ93,aW67AKbÄO`XǀAE"F "} @`D#<^Aѽ a52uQfEgBN] "AfXLF=mkt?WDC3sR޲/wnɭ߰Ȏrq7~(a?xDt>IZV !g.t:f`[mӜ~<Šx_ZyOp[f5/׶ G}P~nݍؚ=q^O,h8e!KA1\\ .wJ4 .] _XL8G180PK==Ys]AvatrŒNzDr!f'k̐R8G쾰hoY{i{pʫ^mG-㭗ػȂbǸݮO]&7:1T/QYs6z0YAݚ~/g_0'.}͘ P^J)X; G pI)'b-F6/Py|R8 Ӝ1~#^'`hĔeHŰ1`413ʜ L+Rqn{ަ#aj+F,u?=gYlI{b`bFQüK/{ikF^(O,Sb%z ]"y_<&J &;S8BSB0ұmvb!n Oz2l5%Mu=xvm?dŘGCj!SVˏ쳶Ms?.U ~ģt֡Q6>ƾ!չޗ>OY1Gud E[}u%01 !Ą;ͅaH:DŽmٛ)Lm-4F vOH׽(o`|;%V  ËT69 :Sݖ$%c cRP!jˡ)KIZ:&c1FB8={QE慛+]T_l頞?C9b}FFƛ귋rWsoq׸J1$"tad .ZX_'z8qy϶EZ >I/E=[VziS29sV9g1r8YVW C)t2tY,5 Cg~Wքo[|K_sCj)}V̏`M1hXȆhex H'^0_='#DtrK;*e F@M3Փrid8iȤHHMs^ w)?/~yj:O{$=8t&{{.8(Qu< n GzcmE?xTYq(fo-k6D,`Ȥ%mtf`߭0j<ț[+F$%E-~5so14_ GY]8: tH(K~4_1˹u:ee,wƋgEW;BZ5K%ރ4YD^'gaoq|[YY"M+0cJA?JʤEsU\ zGTY*9ԍ)̡ZF{[N5ϵI|XDG- @ D0v!h 1#{>i&?uZGD\m>H{N PJt]AkBlI$qy<;7#4#a0Og'Wy|Ue2qyFX#1 [ݡoNyJM61؃w0 :116W -+Vxz|.,=n/1Xbp =џ$‰)cPanՒٳss+[*eUFѼN#In8Pmԡ6Z^p`ɤ'o6$8:ߟ+{~[Ҋ6W=4?wChGn[|}Zru+[Hi6_gaAwtF_WH%"y]u梾Nd1c6IKz9lrbd.M|wű%>5moF^PF=Ccѱqr=ΝN't'''L'&ܤM6f¿5 қ*x= 3)GMCK&!Σy:r<*ň\<Ҡ2rQR)fG\RƁK?kkk>S[ FڊuꞚ;'N`nbcʝXp-Kݻ)|!=DPsf5Z,< glD bofPJ :SԌ)~5k@gBgt;tV6oO,?9:7nɢ0N;9Y\%(#Foԉ<1AK S?Mka&#5adf93k,L\*ަ.@c0겲]_-oli_ӝdp"'zSaPl<)DH)Ue#GۍM&LSu&q6-&qIB&B3î|Db.܇(o6imUy I9$Y: :.;]Xǫbc*K?PRݗ.~+|g@ϻ  o:sW^nBBFz~q'Eo)ioUCkqKNc=_'KaStGG7) zˬxcka`Y; PtG!Pd.TutVM[[#j^{Ŭ#"<tbK )|n#~kvQE ~ߢ.ѯ2%FJԹQmn=?fL4 SNwja;5 ))fKnlR]=m5RѲJ6hYͼ\d3\?2LSu审$rO,o]t@Vzyϱ,!7fy+b\Y9R4%R+U!Au%ͫy76G?6wec[$|գ}ְl`n,65NLT|<<`9ZϘ1_.ߚ5j/Ds)b>՝џ5EYaf2N%VӽFl 7V~"m~C]rIeSIsKK$fddpk֕L0!&)$0'2=Wk_47%-7m6dRt =:YH f ;ˮ';n'Sgw_zoᦐ#d;C.?o.?]59DdtmՁg䟠H§~VwĮ>oQ[74难['гh':ðhC*11zYǯv2ٝ\=s=ȝ`OpsC CV`5E ,r)dX`ՙBE>sCq, vB Z@AM&L"+E"k117n3P1<ܕtii>kC~=6ƿ?3oqFڻ?ʯgνc[{~l H}qymcE"=k̥rǞBkXAB=CMF(`;> u0rL;ʓP2}'CeyG}+DAY=^FfX0 u5^wmkn)( ץGEw {ءtB ؎[.Sl+V`lUb@+.J#?Ktn&uK Sƫ -ri9kgkmm}oΰKv==^OAyġ]*2ꄐ=rWFNjGF 3vPY8+9|ZGk/3ze{z]ui]o+*?Tc0n??>XρׅBz]np_ {>ᄎt货.v_RۨiFX)uiiz&DO0Zǡ/C=Y_oB|}+o/MЪ#z զP=LMп"\/gb+B}C"N$OljuDZ)z|?%Vե!jEX'Vg S)8.ZEAԉȋH׷~jiųtjm7i:(t{n]2ߝoͳt/*Mitz.8 B@O άάgV q>3ѵ;cv1k7gAo+,8_՘-x{0zR0l;tCiݞG~ i7i_~˦((AQng`߯q)hg+G}Ҵ>aZahd׺BХGHO%Oka>I>G>OSgoE3wKCePJkWVNu.왱(rtĩ_V(TVP;#Tk^KO Ak ޳V)+* /7}){ J/6+}BO{MBk*vWyΣܹ Jendstream endobj 59 0 obj << /Length 62 0 R /Length1 4236 /Filter /FlateDecode >> stream xڅV t$ l2$Yn !ФG K"MbB!J(4 "*TSS }I}vqrzjc{GS4@)02bſiUi߾ g9@E$76@}ox>l)D|lw_< NlWZַC|9-[ݻ5b!xxDV'FZ ;@0S?i8e DX5>=pZ<@\G0e34fnfL p<t3qC̆xn(pT#iM(t& +1oCx7Ȏӗ#YwL|XH+Be4D%$_MQl6#Y,z+2lQ m;F/7p>8wׂ_+Zi4rbp+~wNi ߢ٘h6-J!$ X Z'#Ffɋ egJ2Zu؋/Y,Bv3f~`IraPdzeC2=)2%C LlPD~~'4*XKѷ6~7qޥv ާ?)o(2FWD݆;0m<i<"C k6KS. W)-jYzy' [`+</P-8PF>(vbވBwb!kfavuE ;E>e TJWBQ+ĭbWYڤ)o pAt| /i4+ķ=8+Y@ֱT܁ob5:}L A;,÷,K}M!Vᡫ5=F~.*<3 y9oЦ9Tej{IIlǏ%EBGzW |$}OUU^U SEߐ(5DZ%<գ1Kh[Wsx9Lf<1P=fW͝t3\W֡·N#OIS<~`/X|.-= G؎n,j(egƠc~觳pVv \ت?Nr f݉>ܶy焒T8Szct4JJBT1 ג3}DEߗE]Y^ha 9ʼ8 Is#t*h"W>S4tqXDWrR[FA\ kE34SzkIR~`)-D|ͣlisuQLc,_WiUJI2_3˜RnLN\q4BqPO7 {=&xJ%R%ˤ )X(s`*%ɉMɱ,[eQftL[+o$-cj\2}(IM>ƶG'Ts{ qQCqUp~I9+) %Z4ASY)]/3H_?Lng=A|Aa/>ra/02< = "m5q[|Ӗe[ԭmZ8mmEXendstream endobj 60 0 obj 229 endobj 61 0 obj 12896 endobj 62 0 obj 2935 endobj 43 0 obj << /XObject << /Im12 42 0 R >> /ProcSet [ /PDF ] >> endobj 66 0 obj << /Length 123 /Filter /FlateDecode >> stream xڍ 0 Dw~ɒx/B/QR$8tB`]w5$Z#.:~]SEHtoJTTp1o+ )O;Pص%6endstream endobj 65 0 obj << /Type /Page /Contents 66 0 R /Resources 64 0 R /MediaBox [0 0 791.9981 611.9985] /Parent 8 0 R >> endobj 63 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./varpart4.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 46 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 792.00000000 612.00000000] /Resources << /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 47 0 R >>/Font << /F1.0 48 0 R /F1.1 49 0 R >> >> /Length 67 0 R /Filter /FlateDecode >> stream xڽ[Ms8Wವvir^&9mf*ݩ@Q"Df(z3PIMI.1^7^'; :F<ұ1 %"mp߽?P0܏O1vB7CiXk!`$vt(w`s){\|L6O_uXV@;iE$tz 6,hm&ee>}١:tSa\!X8kz b@kBq|ަIfgcN(evꃡxݞs)jE{eMŗo"_L Y080#!F~ݞ>޾X.j^lOg,wg1<0祝Cw*wM^kR.gP+FWM%*AWyQ9\dݡ\͠rum;shSMw徥\Ϡri@+g6}U. ,5fk/+,Snnj5*1q JZu\k bungI;Z Փ;7t oUx<vwX9S&^x4L<-F \cx6 /P<<= tOFC ugQHAAyv&W~ W܁Q /? \AxYcݡJڦQy3̠| 8Sˡ**[hCgpl)s~\h%"ZBԊCKdAaK_ALP_!}#@w.k:#&M,P; P~:h,&5MoQ'7f h)ߊ .ęänhb70,0]s sAܜ 0E4Ȟ݀70=7`;"+( З0ibFwd ѕ}WI}JΘH8Ы% `!\gϮo*buZ|>#q~Qwdʒ|Wp2∁p y.)[X^>Wg-u5']E_EbsymGJJeh)sy!6gb/Ru"+]4B(C XV6JK,9',9%Aє٦E{G ڻ?O`? endstream endobj 67 0 obj 2200 endobj 64 0 obj << /XObject << /Im13 63 0 R >> /ProcSet [ /PDF ] >> endobj 8 0 obj << /Type /Pages /Count 4 /Kids [6 0 R 20 0 R 44 0 R 65 0 R] >> endobj 68 0 obj << /Type /Catalog /Pages 8 0 R >> endobj 69 0 obj << /Producer (pdfeTeX-1.21a) /Creator (TeX) /CreationDate (D:20060601135554+03'00') /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref 0 70 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000015 00000 f 0000000322 00000 n 0000004138 00000 n 0000000208 00000 n 0000000009 00000 n 0000060653 00000 n 0000003363 00000 n 0000003591 00000 n 0000003705 00000 n 0000003825 00000 n 0000003940 00000 n 0000004056 00000 n 0000000016 00000 f 0000000017 00000 f 0000000039 00000 f 0000004520 00000 n 0000031949 00000 n 0000004403 00000 n 0000004203 00000 n 0000012176 00000 n 0000012404 00000 n 0000012439 00000 n 0000012613 00000 n 0000012776 00000 n 0000012797 00000 n 0000013605 00000 n 0000013841 00000 n 0000014232 00000 n 0000014467 00000 n 0000014494 00000 n 0000014798 00000 n 0000014818 00000 n 0000028863 00000 n 0000031886 00000 n 0000031906 00000 n 0000031928 00000 n 0000000040 00000 f 0000000041 00000 f 0000000000 00000 f 0000032335 00000 n 0000057546 00000 n 0000032218 00000 n 0000032016 00000 n 0000038845 00000 n 0000039071 00000 n 0000039106 00000 n 0000039280 00000 n 0000039443 00000 n 0000039464 00000 n 0000040272 00000 n 0000040508 00000 n 0000040887 00000 n 0000041122 00000 n 0000041149 00000 n 0000041453 00000 n 0000041473 00000 n 0000054459 00000 n 0000057483 00000 n 0000057503 00000 n 0000057525 00000 n 0000057933 00000 n 0000060585 00000 n 0000057816 00000 n 0000057614 00000 n 0000060564 00000 n 0000060731 00000 n 0000060781 00000 n trailer << /Size 70 /Root 68 0 R /Info 69 0 R /ID [<98B70A8F13A6A009B4580B016140665B> <98B70A8F13A6A009B4580B016140665B>] >> startxref 60984 %%EOF vegan/inst/doc/FAQ-vegan.pdf0000644000175100001440000044160112600727026015322 0ustar hornikusers%PDF-1.5 % 1 0 obj << /Length 587 /Filter /FlateDecode >> stream xmTM@+z&?tBL$d4*.<_fW_wիrc;`GUOV&ʮ[v6W7TvbuYt/N.5=S> stream xmTM@+z&?tBL0d4*.<̿~UfW_uvc;Z̫MfG} I]/ޭmޯo⣩0^'^x]fkn{EK{*ʇupg6;ލ$4;gZ8, M[TPRJGeWxmE7 "/7j;{Yʋ"1tm|oirI ɑc׺>[TқEnn#bBSEV嶭mzsg)gR133w xAb;aGL6K&0+}&"?(Ҧa/ c,!-f3*Ix {asIC%hS7}H=ŤIY(jŧ Z4{SO5Z ekxvKǬ@2a> stream xmSn0+$z"aKU^CvF^p=!94gB˥0pދ s#P~k@hZ+vQڦ(A,Rf5Ħq8>K_X NH3$Ǟ{<0*5c~Pʯ5W42^!0^#rqxƘE3x z)cgl1BҰ?Xq!NAWA*d1)iȧΰО 9璆NVfkVaUJ?%͚5ػbTW=ј52f&p2pjV^cHMcVYxLS7E=1j g endstream endobj 7 0 obj << /Length 745 /Filter /FlateDecode >> stream xڍTKo@Wp\aKoմ*UiSk0`nTH|vfD#"'#Enfp(n?aɈK~ig33~Ondʭ&/1=Z.';Jʫ ǥ0p~{],aS? vi>y>&\3&8 YC&D%,ƐZff k!T۾ƉRM jpmWUKںwXhETsgN5{dhM\xBeޒ}ޔmULjc"\ed6_tұ(ݖEZS:"4ց&]IjVv=ۮkbt@xJPfs$&ͱ /XM's*Vĉ`^WCn>Jotؖ3cH%S6UdNL+} ߆_(Nw 5i|7,%h}G:9a4JZ,#JbY]SR|mO8]0M%SC%SH"R~KɑrV?Mw" lU}ߟ'^}EVPv^`} dxȎFNUdR9IsP&$I?_We 0,# DnB,'<3&FDY<ρga:!IQcZ[:t{)R)( Ɲ؜;ɏbv | G%UXLXzI4zIPDHq#N#ﴃvbT-S4+=qSwOs 'y&8z!R!( BEGwnZI-f6$Iê99Uiyܙ  h[hGJ#AiD[9enNݍMxХ"JW9EVgnt9(zɪєn猥GBjC!FH)K^f!CVw L^<->p-naz_AjUy <.~FJG0FJ` q׏X 4gg.${V.u,< PE7R J#1Zn~_|T ;*X)+nev#6PR6zɼmn{04!vfaz@mح%rBSh~w{\CعN l+v {BtfǬyaZh/!/{0R0(^() ^Xpf3YbŪǶfK*S!oR|ێ'Xy'wV.Xpy\!?nP%r`fs"o _-whz=Қts)\KZ<-RԁQ`YogeΓ:W8g}Y}g5RkEB)R M-<%«u[ =Nwҵ]xj{|y&L ŕ}ĂfC-RA J#hoK(Ʊ-CƜs.L؅?}b!]HGJ#Ai@9Irvm3}N]\7#2}vFL`Ө|jOz|eH(JaiD9dez`kI*7}xB֓r&T/>mCǕ~|S!O#~X)|IFRHJʑ"lk`]w(Yp=z̹@ LY,7?pR7b9#"=`sTp6񩵞[!Cv0sAҐ."{D(@4;EVE7<0#eDoVz8_n$':;_~N cB2[Y\5Na]ݺ=4SO*'=j0Z.E~zCj endstream endobj 13 0 obj << /Type /ObjStm /N 100 /First 826 /Length 2187 /Filter /FlateDecode >> stream xY[o~ׯCGs5h 'AM@ScL$ G)rX 8$g8m10h"$ ?&0tX)1 -`K#g%qä0rxD2,|&9BHƥ I,+,9\ 1@e`Z)E3űb,y$^1\0ax2eJa?e0vxD cv9`S גhI0e Z:`Ɵ;<.@k%533bY;k !.qw9; b9FR<(x ⁧a|00 `zDCau|P2f1K֘.XbO`70{T_v3 父U15^`G|qGDfl"̴b1rDͺ(0Yo|908"j #N2=㈅.&&ٱNGLh$3. V$@û3n9HZ<˗@g7a6*P RehU;xEK|b^S/3QitcelKU/BٗșRڨT"3غquWWm 4%'omu>됵CȫlhU̗E&49?5ЁFNNkocmcjML@*` |{?onλ l%x2G$KD2B$-M$PDB E$PdB E&PdB E&PdBQ E%PTBQ E%PTBQ E%PtB E'PtB E'Hҝd;[SXZ5xIUXM7Շ/ >̼2hjʕR+4z?-;6QI)[:vR:.(-)qh(S2;-ԫ>Y70R3QZIcwljWRFPT >ԆZ/'mXFI)q~@)E+;)%JRg<(/)$cKCGYC!L6*Kq=R*[D)E5WR S✔9X՟\;I)єê~W*)3bRJYRVJJ}&JS3-#ԹH-I)VD%ٴ d߅Hww<3:ؕ~Oh1 oQ}M輴֓RbK8ѷϤI&Ry@D-!mr {=)%VLj@嘘Lj}̑#碴V (MKK7=Ĩqv#E)P*Aّϥd3Es4%ǾIvLCnڷdU{}!+ղ\WݲWhfO}_EBf1O؍e3psɶxySgE-cڡno>=όt>ExjhWbI뺺1 t*f뤫"Ex[7D456^VM?wY>f!Ucu}StڵNhX.wK_R<̖M}!|5͆t?1R;E4m K;-um-)gE> stream xڵَ6}O20RIcI$;նvdɐoi]daRXUw!],Dûz7~|', O0NAէ?ٱ/ڍW_k}72ܞlj ub<ק8&0ZH}Fg tƁFt( D^Q@(tt$ExkXx"-pH/}{F.f\& p42a\oEvb$>!Pį#,=qr1^+i7+wyS5`N-CY#I9Ns(yv P0WU}LDeRKX[VvRWŶri!jߎ{Zˢ{,l*;`Bna{ Xvȭ5=-)^SFdO_0/ˬ^ON5i'"IAo B窛''$b!K x@Sgi{ORR]^,e@e˗8ZdhVu 2Q<Ymՙz=H26GěCxnvҠnWfLG&w+Fa.ҬOmQv ema]\$CD }yy v)hq_VM8߽P8#LIlm E@ {h`:"="Lk)qEn akD؏Y2!UuWgG5RVH|-c)t:x={ڥ+o2^ fƏC]Թ!0xN!QǑ]ʹC'YeDF;iNRCmc{)AEL$ $nE;f4_# mNE @1ՙkzg.B%o~=R:9_{rSXz?VV&ۂ\*G 8SH<;bL VJ1Bv*vs11*YIEx5β g-N!'4u~ }mQZz?`MAoq _իK&Yp1IU@Uc+@CJ5+RFP՞A^0.{w/g7N=@_tt`^iZ4 g9[DV2+d҄A-˱'Ш-lI+!}lx;xiNֹr<9;xc !RK l@#> K-̘wm-OQ̵(Tq ɸ[-5sSpvPsK/eUF;ۂ3Uq 3P њϒ }-uW`! o0O.*n2k,`P/>@bEӗE.|:(s {ZPTrFc6K># CgΘc !|-WHj* Ee#d3)-݃A(p78H>Y89_޻01,a?;(E$ p܎ R̋ h2X>/ .ZUц8R`d ڞl*<1")ؖ:븷gnߜ*qZ2d[ʊx즜6':Vb_UduK>kf~Y|V^+H%:,wT(W:ׅi8xR*{R _P@xyNcA@ŭ;WOqHr'֤+ 1j#hG\CKMVCGw:){ Ν[/9jtb^S&I*-!,nD@:;@gID"]cHێ>)`T VnuuS6k?ʇ o;wI3sPA-Zd{u^W0 KxWWaqý5Nl`L5n>ot)kG5mij+"4t:"a%Q\ڟ;3%R2z_x9;Q$`:o$B_#&?ԒoLa:b7mI쇎BA\L)=QΥ9IAXR08#{ȁ.ETVʝL;1<=] 5\Ζ41-^]roXJz;CQ/'Brql>iLs @ao.,l;ZLw<lLޘ aȵg䌎=-&Li>"vL13ZlkML}VS2<Ƙ?暛 endstream endobj 281 0 obj << /Length 3420 /Filter /FlateDecode >> stream xڵZYs~_U cR.YJ@q8FAJޗь1@F}Pʇ?y(DDWOn?nwons%}ی[_f^Aw+qbKq$T|OUا.oM1{:Ou$j Gg_T_GTA55DA9xNpk 8v-$:(*HO/QetG=~[جW?myV }ri+~rsܷ0\júz6Er^9uS wM|ֹ i|yԠ+)q%Qu b_^bpJa`zҠ?X]O>Ubm ҇iYٮwvIN@8%Bg"Fv'lGLMsnnfދ=]OGsT@ ꨏXj)nS#G+t[e٥2C"2c 'Hzc-LTmيMqgV6yj]eR6vN}tk":KD;Q/_U$]) }32uÔ-?YJ1#J-AƹI3 ·>"JĦrOׁ#|t.N"Y[׵دnS˃]J9t,'x|_.(X}p$`p[~=` DRZe,{aw~7# 4%1)LEޗnn }H퍁r :UO p#-u]CᓳbNCؑ; N0rs[pA{mÜڙh?b,t!s+ȤcB :|F TqeKc&O(Vp9Vrg]}߹CDR"O[-,2+&UH +,E96iY.i` SzQk!ZȓhHNkC}pRvHkp::%4c@v>ջ.{c3 jD NپWf?ȋ%rb$]3]9}w^qŲY}G!tV휟5$80JLHiNKwIris'g0S 첾xk{{s0lm㡽/_ HEi/3ErmQgpB‘:%&|i: DE< U{Nk \i˶[]X"3LN@BzbYӈ1֕2O=rZ;oVp9u1 1>@`U= RNH! x5P/閧c} ?/dϰEOYs. QpZa`S7.01G&ϼZjpL6$d=(P?Κ8CV|x<{g:Qņi:ʖ$Ĺiİqc1 ); #olVI~n M4 ٲ&fӄJ*wA1=P2SQU"PEM(ϝ󜣚^ :v w~| *uL  gCl]75[9tUӌ`A~E`xg"1W\ƒj{ >Eng:PTs@<$ᄒ͈rMGE=5h|BRPxTB'PS \% u':atdZ=ȧi 8>`9$|;HrT.qL!g,Wf#wqIBґ\O<MX?qj8mc\R fV·Dlԡ5GIkJ.8wjDtf=BM.Jʑđ)DWgMplT +Ôt!)SL̸TraY6(WɳFϛEHO9j+%ҧtGhY ^ݸXԞ ooG#غJB5WOK1x?j01S J YދoJɵ7]E,{BT+F@!b5)0ŜVQj0p H.C(a[J` .Od/ pz A|KjDळ-O ֥;3V hJ@ln9d(Ox*\TLA8)W}MQЩy#K25t|֔z5"_lS:Kfg8嬹P8ڇRP˩8Eʀ!P}0 tn5!i h۶<h`D2u<jnf6s}⍅e"FD"=F ,QNuq?kӬR ܛlC:ϳ>d|"?dh:LxG]Qk35TjɨxI#NG|vܑqqa!Ј"C}0LvRԏQ~P.#.Kl{wQ($I>4SjK'Bo ŏq ?(aS@22ODXg׳(ъǏ&kJTmxHm$:_M/߱@CDsԫ"O7}!H(;sg9X/ BZNqbLlv.$;0־KHaf~ Mx Q"K]ߪ=jϢ7?RkG;:?}!俥Or'N!YFL1)sW0*LiMyh`CȉUMQnBt{}˿DNkLwځ3Kc'6,?9CͯXr{ UƦk;04߸N[icEF7. ~p_0:%9!dž*cd#BߺRh%UzzFE endstream endobj 285 0 obj << /Length 1461 /Filter /FlateDecode >> stream xڍWK6֪(REI= Zm"8;ádtp8/|3*OVy!Bt{jX;6q1MW<ʸ~.j[a~B0z#euR0w P9ӵ"ebIkQ*O8rbgE`nũ$[ O޲w(!-M՝tpI +ΚUu~R_Ttv&yAT7o7xPm]$vf7ByWK,$?,+ wTr06Y7Ug9b"Q 3cvHIƴRcMsfM[݌H#d&FVcVe%ED` ˴XŕH@\ʖHC `tdf,TS (! ?@&c4>u=!SXC e{: 7)a1ulAM>#U^=vCsNIqxDI>wH%n  x}j>RAF19 oxMͭucJC(ICA˲,4,_p퉂VI 2HebNMwIG1c'~PBESAP[AY:1(>4˴aX:Gnxd՚SsEC !#DأHЪp EQ|F9z-e.I0RƎ ~E&jK$2NcM pYb: ,F:ri cpX71(1NU Fk9ρcnlpn(7\|Jg@c]^ovv_H=m؅`_Pu)8D$TZQ| 1<\I8[nS}pZF`zyv1WdRF%`&LQ"_52o.7~c]d bO*̯(_tĊ endstream endobj 288 0 obj << /Length 3372 /Filter /FlateDecode >> stream xڍZܶOԫ"Gpܤu @|AQ4ݪޕ66k΋֝$p*i˫UF7~+%60q3ͫJein_}spZ'7î횱;Ws^}wM/++\Yˋ4_olkE@36E벫.dYpaKk_?#}wxV-4ݎ'=};fleCp@2*-jU.m<v6qEtҟ7yfpȓ-y[)99 ٥Zwlq08sƽ%?gʄ]mhe/@(LPpAJ2CZ:yEb z+:+x;v#M25opGm9]/W걅%7T\%C5G@,D5py42ULB9igJl 8mnhx ogdF8)lFB](EQbƦNU4{R>aEMMҥxK7)P];NRfG+0g2n8 n$`#SnTfRBR*QK=0 -(օ(>>lB#2=R4Ga\1:l6;Hkn߅PϜ." #Vr8;>.:-KEmB(h^-Ai^K:4Okw$uS:y;兡dE4rV*-J R6.WN * #x IJ\K"'pKPl0kE~)P3kYfyX!:Gbֶ?_XVgH,(ZH y5h9?D=&Plpvgb2c;w,6HJFDI|Y9Y_ ?}m%=1,/1|W"NrSa>QA3:28 Hݖv f;ΎUkX^]UU`\jUz;Y; h|f'֔,8Z7KFq)un̥0P@xB{Й"t&+D+$5_(%RkM8cې!l /&ͅ&S5fa!/]4eE k>mnK5M[?=XadQ:/l5mPʗqilNgK-vOC"1>rS[Ngqu4W>uhuW9U %MZRѵtY6(MJs7%*4-]Iv*e-WՐ;O>^ORkcxA̹I|X [zj&ZЃ{'f߳0jqHZb(0_]-- ѩ*kffj$LP4=h򫲌ۂ}{^ QTK|FIQ,bcy؟ѹF^9,Ac{6ĵkk @5);'szi5H_<BdJujU0crm;˙Y2 3 4Q\aVF|zzT#hpdGk=ry L5 8bdv_F_O'qQ0AbȪVuj3R/T*uЈ X:hm1ab<ø<#?jwS{e2~d(UBv38# o!)4A+3e P( 0וo!i L{ռ_DNo S ,(l,)FD 5{6wwPɹL2_V)|^_&*E*gґ|Fh(Fr=cƦ^Q?D\*W"ȻR6yۓXNAxIV4~Οms#O2v,j;{ÄDf.p+9p G YPR632cbPRV1dV2{6Iw^tCɾgO L¡`wpV1^G6+V2\=l,l .)YxK)T#2D΂t珀yy 7 @ֺ!-VoV.)wLFO7E&> stream xڭZYܸ~̓p3)@xA6,l{ZO#{EbίJbq2;ob=߿~6g;zx﴾1=F_`^JwR:sWM>m뜧qwzoƣL+y#_a bITۡ+86Qȫy| 3#Hv8ƧF)6s\&L qti_ J, Ĉ]s^XQK,lO/M^=eO~uH#&w ]+cI<2ОdAN<|H ev1%֧ԚM1^N}̛U& [AѶ)&L3V/:݂^â:АLTT}_ewP:E%4~"bBƸĿۥ24+Sdhvȷ mwqt|6#hr9Aal 9<Qhd2# h~q+ՓeA(Y0#"'x n_,GWdQ*z_A$øEE[_YO0M)(y`i"kp{D,˖<P'XWd4 XMRDpp3}6ţtp<wzf֢OLFCEyQܯ1q("l\Eo&SyOD".NEdl)lO](G*TɄq47tR?Hd0;FYslA}W ?۾,?ﴎb]wqj:^gQ,,}t,MH:mْ?ثI~uzOGT]-Nݾ=ctk۞+P\šs?TtT?=Y%}s1)R|hoG==ƻ<;[xgtK{˹*=ABqh"aLMҔM ˙5[.fXbC& #a;wچ0 `*Xh0/0jIƉ#R3P`ȝ|ӟikcTGHUmfIIr8tvS`.Kc-~"[fVĎt:enٷ@c&т3Y"CNm~9mInv|G"r5 8[!o@^Sy;& F13%@Cp4rXL@P d+9~łHh8Fϸ&!"N)ʮmjW'ڎ8=gN?tG9Ӂ7 ??Ԑ":Ѵm^Vͧ}4e':@YE gLj:LO`䇦>])2zx.t 1W~+9=&i>xۊ<{~$'keIw^qK8(: hŃQ;.(K~g!#L=(kṵ.uMs,^ih?57X+/TB\8׍ nh8-Z\Ĝ (t$hw-ZiPi: 4kyX- u0cZQ-b @F'CIF2kLM.mһJleY|MiD޹ ԃu [?aGx d2BZd y^"cW`"&XBh ݭ`Er \{xvt:/o B\6!Igׇ)v 8s^2=fL~(LSl^Ӵj &y3w:%/HpiH/ /1|FSyE 9Lbـc4[;.=0qe%| j'}Ad[W;\MJXp9U+]ԔD{%Z8 )E-D@n17n9˪b&ATJmwTxv'I \ޞ3KNPXyk "X:$"VibWYKRL L9MЖ}. WXhLUޟކ-GZ׽4Vpb kE}Z%8- <=濎G:!X)_G+=u;l۫6SY?BÓ[0If1 U.O[=efjMКh_e$3 9 * qtVaށ|1lEf3o8…ßl(Ј3,46 s A\Ѣߴ2Åٟo+!9fbMt2 :* 4 iC+HhkQ endstream endobj 176 0 obj << /Type /ObjStm /N 100 /First 874 /Length 2336 /Filter /FlateDecode >> stream xZKsﯘEAy?R.,+U8*I(2%ac-K>\rItx1=L0#10fKi{3#h X ɬÚseޙC#W:b=!&`.,*&LISbRIDI@3dZG `*A)pD>s6QRmt SL,M@C-@CwiAf 0!-XR 0d1LeX}ò40bUG?gyy/ .>-i_̞=hʾE}]/ʮ+gľzl{me> ѫpe^OT.ftqr9)(Ttmk96g"qaZiSw}tSĦ/?ZȖVn=.JBf2Ǔqڔ&k q 9,DlXW>ߋrwE"kX˶Epm.nWlU~H"kSZmn}wCl,7ʫ2˘gЮ}V,F<-o:ImMURLYUq#HϋӼO~_p׬.o ⤩(tu˳r Gfy LFV=yfyU.yyb2[3pMN;tlcÚ%EY{-I?{72O/df uϫU1𡜍,VU߭Sͣ/Yqn,ڧ*oWS${,X&?-&ٷHآrIӬiѥV={{|bnh9hKy'D@M e;!Ypщ%8 G;>x}x߉qx%gq{\+LTIi>eSk:}(-gN.\ջI|_ֿϷ/~,7iU5]=P)yq OY+i2qart`2r},r:Z@\RXȜ:#r' NkY:"'ُeqK R!X@&b7N; FNGܾ[.%]w˕pj;oн]/^Z앷,Sh)I9Cg Fٛ+h_bSռSSڏ{_?~[cO^ڇ{dsA Kv&G r)r247je/y[6vy,~e86rׯЌALLC$_?bxYtӶ\@ًϋ+˷4RCGEPD`>S#wëvypjTpdopZ -")X>fṦk"/kG#}Ti줬E>mOY4UwMK5賤J @G^Vvj|3QثD"s0ޢئr1bwin0a7D'KuY7]Va%:_CAm臌sq⠳$y7rN:5zGMܰ\ws782A盧^r']t&hI.Iԝ lT,Ֆ8ĿoA^EP;v> stream xڭn}ؗUu $mҴ)Eд-H'x΍t,hag(u㫼a*"p_);a~]^(,R][/Gޜ';\A!Iৡn:35}p(ȮW߾[q~!] q9:bG\Q0qq! k4ÏtϣN~Fp4Pƃ\2%:2Tq!_j2U|ѻI= _3.U}mC1nO<ќM'~@U}c]2= $Ҳ(2& ^L`D4toheЭag'~n-RVyg{eXo{=*cFj]% w{i{Ƿy{+"3s!L w$u1Ovh@X: z+aәqąpWeKϭmdm жS|2"D^>y`l1Հ̈́z4@> жV02c>pb rhģ Fv߂~vdG~܍}@z~ˈu7k٩XVϩvŋd=ZOc+ׁd@;'p:X({xo3#IV۷4x}'#in- s&` XF qz(` QrAsd :PKf'f P'FJ4Hcb''D=QU"|w] o>Wp"N͹}Yxޢ=ج c*U^*{R*´U)Xu6=e5+ٮxt?G*-$B8@&}y\n@nK&/N[iB-9b0 @p){+yBW(\d 1Hai+E.(`4'3Y-Ɖ}~0g81K%: 'H]ȣ{nݛfr#_@'~nƽOD-<FX>1fnou/p;/Xb6>Ju̙߮KccHs1QέO~AîuLDg2Rr$ 5:PyLr|0Kd&M˄(Rτd:m[M @HK{G~25T5raX_8O)\µ׌~Tk Hm'8ߙe9b2DYZ<ݯڎͱDՠb{i}me2S[C4L BJh; Ԍ5#P_'0~۟;oo`RǞ:L ^!"(c"uPFZ~A)G9pH Pߓ_lW<0Lm&LDZz) )'2P.0A5%'k:`? O:D\AabwPJu+ $NlZLWi>U8ZO fO*&j]$ f$Jy ~Z /18. %7,) 4k*o[jμ鸰>Ī$S&OLuX%L2p/mgHj~t~v`L C$[a!1̒AjD۪r<T?vX3 Q " Bť5`yQű @,(>\l=a}ѺDf|(7?!UdE)`,:~g9АNhjZ.-t2%HxqQ}1-Zu&YI&+{Yza(<x+W>:X̪S.W敷>V:n .>%o&斡Ԧ@D>=$9~ʜ֜K+fJsMĀnLvV^aS&֯AX;S6əü9rw@YngdX|( #(u\bHY|@}LpLE# !u|c)z4Η */1\w=ayG:;xI,n3ՀOuϿ,C dfh43t/15h;`P4xKN>CXMmܺD2ѣ3Azv"涕5|/|= <"j._~h+)Kw[s˭EXd# )ȹL0ZSA~M@[7#hP_&o[.g[(r1w*JD9<_^=ɨ 氷9>vιHAk}UYl*en+P-WQZTd91'.<ߡG[Egy$/JQJ)ü̿pLYHܥL2R"+'"J +pru(gsY9G̈*6fpA3 qSn. {xsW'Y]O6ʔ8 r-O>Aw"Q OEιf⴨P슪ī:5 lHS[i=8NfxN} ɍD:ǖIE.1Jݻ"-v|^Qztmuý )'("=Y8PՁ8TUsBUeº‹ C*w`3W#~,L`z7T.XkI҅E ;z%jlw| = /7]+sAz#guʢ ,XQ.yv7K!/ p]K:SeY"`}y0c p~SɼAd9+)0)v()@Џ07܍&P2}fU5gi++2pQ,o%Y|ľ6"_ oDO9.ll |:l(4MXjʞQ= HA< ߨ$D..ElI }T_/_i{.e)svݺI'Pd^ y󊐏t#V` h? "Kg B(zCI>;j{Իo]UD,7{l Yl|^ԟ~7u/8r5> stream xڥZ[~ׯ` \+JVJ~@ߞsficJ;Mwӗ|;Q7 S7N߸Ĺq7Ӌj. %vq/MERPooT;cLYF+^]$`"V:c8GOCڏ;h|D;G2j^x-Q.Vrq0C9V˝H\aܗm5\S & DU&.NJAzU1I&\%P4Tl7&Nb_̀JC?pQDS6z{\[b=ťq05en*@&՛&!~G^úfz&Q$dFD8F#%6V4cȥ?pr߃M!o 6ה>LANfhC&\PUdh0B-*Lk:4jAdߡ6V5S9Հ@A2PAƚ)⃜"ߗC#k8 om#@_͢C 횶BDΎW$ + ZF}f|n44Q{aX`; f(k^,MA7$4 tk35ylYI3;D\4mĬNl /V_nA*_('CFh@$:+%ź?s}#եo,xfFg3%M<Mboc>TaȊp( Ȅ}']Z .* HHkxCnInSU w[ ]@.m <,S -s!949@lM V!b%Ef6ρ3)Ύ6Y( 2#Qc}G20!F'$Ww3Ǝ&&JJm6COR&x?l]ߏWfrnppDT.ԋ,^`$r,j Gh z3NC]CBQVZ,%X42ZǾrʎ{z&y[nRze]Y34@ʴ Pm0&[=>robb? -(#Uqa9 CjB7*t,QomaR!`=H|W; Y K:fO'g!n]`h鰴Mff~oi DtCrONӞ~o'WJ跪@F=s6YgIx':v3(teiS3?3nf΢V ks2noVEOIx-+eMyEmijeK!*؋fM%֠ND^5|.BЄY]/*YoeJν@hs#ÆS r'^=B0U6ys/$^(_ZoĦ7 xYYynh@K=֩mkšmנٱLa1s۠?w`6`˸mI7 nwGr&mY'>I"vr o#8]Ɋ5:jDzyb@%fqс()T Z<Z(d}eyYzDrld7r2P qB2xk8˞n3h{>u%x_m+|1A};;)\] |Z"O<B #٧|.(qH}Sfpk$]_n#b T:w'O;8Qm[jgΙmn8b8b*-rLC:N6V/g }>Q3Z^< eܥ@ęq:@%tNw` y\ ͂[\yO|Ux-jw0]w\!^UL3xP%yK-l/T <3sq_uXj? n!UOPkqwhD_O D7hr pq؞ZHHK].jYynGgL|iWn}EE@<&!C)j9ʵn*NOPU#$l Y@~Twq,KCPhLPӺC w QV<]#i^a lNt @Hy@ܽ2X1=( fwx}fqg}J@և s,X$B!v1 7}fwoOj/h5saAB]xѱ/oad \Y枥;ϻ泑/'rs2 <e2E|rZĪB[nؑ+Cھw7I!{;!Wљ$J~|uu,lߒ/yA|-V6,v{5̧[B[ @ʼ<(#9(۶+ ;6)T1 endstream endobj 304 0 obj << /Length 3019 /Filter /FlateDecode >> stream xڭZY~_ј'hsK"`d7@Ť Hi[XYrttO䷧Ep=4`YR].BBwԍv;j|mavwOYa'slJ)fN U8E?ÏQZh|']a;K"N J6c'M׵Q$~|x4p28?~\}{>[T͑fDÝ/ ~ ͷUЇuބva8˓lsYrɸtnjL gS|1zhYC"NkaV"1~ں~ʹ-LTm8'5Oaf>,Aרtzh ̭⊕J҂ ғEv;M[hx~gj'5|=\:\HZ\6RDX.J#u_l"g\ ~aT+c$!ViV|T'^@@"ɒq.)5,9%2Ё9 m&6\ho-76训%ERdz\_LZH3;u:'N=摉XE 3Xե tpB[EsVIK7TӪ:s&=mtbV餀[d׋쿕bTmroSg/B;߈O`@ `ۮ`4"FC-\`/8:OU_=@pܸ֞pR6lp 1eSEV>Gg$rI c @,wcyqaH;M+&U>CRL 1$<= y.pWj CWas7Y"gi61n VN qBM|9VQΣ6SQdr6I:K^z=0vuf8JW#A9 2-$Аi4sAB`+ZgA2lZ(Fx|&E$GM{ G^z!b-=w; )d^'{XFᰰ;N|kGdՒV:eÖ=CU˧O ۮ[ q;3%;$gtvd303WhvQN^NgYT#|6Bg 7K:/2iƖ,P`oo=PPeNɱ"cDGĨ:t&v"opn?c䞈Hf,#.u1*W&#UnA ux-b928]L=#2RT;qCxNq }/dcOLW/d]4"5+[>vi(n_jkzA(X@l}9)bDSNj,<|eOf Ĝr>v6LW(oU1o<6ƴ`>SbkM!qAfUw?Rd)دwө>mEi \T.y͐m ;F,8ÎrqGRr9$YH\gA<`.pxbQ E&Z*&߄|@frp?rpx/KrR% J`YP'4c$!tv?[,`.{Fs0.Ny$M~YD+3*91 >:I=cE+a -B+Kn+f<+beuAz TB" &$K( a1gdDhε!ຎ}  )^ z&Q`0LJb"cG='r7dȲO_ ΄lK+5[MQ+2_;/sqmm;anso~p~1}0'#,kG][!,[P'^< QV>#ڰМl}ez.W!V_5Ѻ$FRFPr5 l`'b+ґY!rFLUYz>*S_]Qҟat4?(ER& :aαsQw72hvQ܅f\z.(j*|l#.řCypO\nد3nG`":"&lŁ,urF'!T?5s%!\ϞRn nGPx޴8z,r$kJ \X #Ἔq*&m}eW,2V\NծfGEĦOG vޮrٜfQ/  Om+;60ߠi2bbXoI_7AJٽP #qq&(@\1v$|(u YB vU (G+wbB##f0;S_C:wXk]aϗeA(#^!(cCb?}l>Ğ)WXj},Sr(? aRk3,=jk;t!q (Sq|(5c{AI~v.:r;bJ֣.zo5,t*9 r%lHwβ-iMu+cjXa #WAl6#]{\xu_ )V[`I endstream endobj 311 0 obj << /Length 3113 /Filter /FlateDecode >> stream xڭZێ}0%20fċnA^ Y`y2y`rYr$/bמF@,"Yux4_WXedVJۇ~wzPݽI1+₯aSwտԗz#vgjݛ9yݟDگ8ŤJ7N,N'MGZ LʒoגG1;msC*] VݚG1'^mxɂ{GZ*:]UP|!<H^<:zqEN$ޚҵ8e@Bgk/kg7oe譼v(% QVڙVAâPq-2050@Zm EcOGM؊k*HclWN+σף9w;=|eo'Y9:d4ή;0:Sq]Yٱ=\X~0A 5$~NrZwtGcO8ž5[TQ+͙*[]ߢ]~hj;L]Կs-W<U4"^{/ļQ;}?s͑F)ި8&CoEIEFCOTBUfLeX&P_ OS+tGfh2+[(7ۊ0Tҁ7`S;jM쵩 P,9ĝg ]6TQ1D-*o 0. jS̳%V.ٴZ@O1D}]Pŭ#If." K;IKt̞CXدz֍.-Jg&hYXJRbS ~ԁ(H)Ζj["ljR(~.4:Mt:`I!L$f}_N7 + FSuC,tFjYcKƦ0m{G(gbPY Biop*TAr>ۆLl6QHgh/SV7,E|j^ސ֌5SkwϗHcUiPfA ]HK;|[Qd`ϥ|O'y p]A;o{nbjŖK2ʯղ_! 926SG5Aff󡥉K9ㅺӓ]F#'7zD墝 ˊI99 7dJڑ"^N fAQeV oM{m Ɋe~F < 1aIqްcK3mfSI4:+w J:n`z=k8pOהg3f/SW刿xA@rHƿ쀼jz ˷= @BMI/>-B~XD8ha1]n1|#xΊߖW@*FR[P95ŴJ֩?! (a}{I͢Jb OQq6$ܑ^`+)G}ZcK-`8PZ="}&M{ _ɝ7zasS~ .7W=cΕKy1` endstream endobj 315 0 obj << /Length 1332 /Filter /FlateDecode >> stream xڍWn6}W>/ȾmKYƢ-lPնAp8!7)M!6Lbshn0ڟ6ԸGo!6xb*OQf)/`ts!R8wkx1i~Ej"t(_طJ''"Q3̅Q&ԅ  ͺ;:Y ?ҍ.zH.Xp#@=0RUxe?v}U(?_2hM endstream endobj 324 0 obj << /Length1 1734 /Length2 10602 /Length3 0 /Length 11699 /Filter /FlateDecode >> stream xڍP-;@p8ݸ{pww'@ ,wGf̽WW]}}ڧDIAl Xyb,ff6FffV$ 5K'_b$ %/1ӫLN :X,,\VffxF.yF,tD۹;X[8@mB` b t41䍜,Ml`Kprebruue4ud; \-,*@G a-(jUfNF@r|p2rE; Oc?  pyd lkgr,mEI9F'7'z#ʍ"jɑwLü޲T lk 99"OhzLNvy,Af0ucRY;e2y!#3:88Y@{Ăwx5w;?įx{ځfM-̀?HF.@3ߊFH,,SK'1OW1O:|K7+X̿?^e ٸc|ŕ%o( ```0z=xw%#˿ kO.w,+kHlL?\;[j?_uvz]yTҊmLW'd" s/Q hddb'W1KP hQ003uL_WBM/+'uį򺉦@?( `b^]yH`-qDF\\&7+I`Rix^A<&LYL!k3ÿy_˵|d/ `|l|] &пkfkjAvӿ`y/گ?UFrpeZka.@W?1c^ Mf&|AVA" ۚ4 hI45"ICKW‹O_ T&ې'4!2 x={i[CBvR;s)c޺J5 VީX>_2CgΉ4Fb8:$h"O5֘˕jq0F')=Eeq|?{lt壿7 zJ=)`X7TΉ{?2*̂S}H*aXV4p[FKI{!Sm siʛ= u`/(sk5(Їt6 4o8c7g((Bqnпcm壧Q\nli?Y] Xe9Ȁͻ6MvӋOO6B *p0-ǼeZY'u&Ce 3 flyWɶ%z#=?pէԫK_:PBzS?*~=+`;66bbMtk\(lٿu v7*%&?`ȘiE_|M~&%!rXFF_ӷm!(uZNrq7- $7&Ph}+M+U}\3qQe`h]c=?8)jl7K`5<_F7x<Ɂ)ϱWTAā}q. D{lֳY청a^f7TٲH u| ۟¯4n-fuRqW*SBO*Yntj2E)ř^xV9>Bq;-,oϔ3 + йCpLI.U=RH9 meV?Sf!c)Q)7%8Φ+]o-)#sa'P*!vp핛vC\K*pe,X2k}l zLi,6? ͲhQ aK!,R)qpy,ߠkߨ㗔ڧ+C5 ~0*K8m ߴb@,xf8n{m5NaR+h7̈Na 9b\ n߬k_,P@DV̴:_o`# &`:\p: sx9WFmֵ d8wβH bߛ܆/(rBHK9LqOt+8x/>XhD^ҼDP|#Vb!3cjU5hs [k巫*;Xnِ]p8nr 䱞Ub|YrCa.?F \4Oj)2fr3Qh;Ia&:uC6X`2ZA63XqQGK핰Zyh,{۹|=Dz jsSUqZOd ( w㓘p6GV3,C+'}lF&4,LH "_K< =M6N ۹~FGŦ躢-N&C$d?߳i?ʨp}X.+"/<4y׵GXgs:U)[*G&* Hd 䅟wA |My? &ڊrmg|iB+]UKUb%k ςFxN;10-Y͓09P9;ckY$ R٫vabCaG [Q|3;WO_k6b 4ќ%C9Ny&#P'qF㈤ YRr\ٚV<_$%/l1\֭  mFj0$J>N,PKE3#슱+HQRz8?SE*U3.yIrwD7Ѕ_Y-"P%t'䴜"~n6Kyyg' -pA[|l#3p9N.<7Qa0el6;ny.¯IԚݝ7 9PO$RzOd5],RiŒ;ZR9Tbh8o iн KփŀA+Mr5و771GE#BDI~;sK,^`t~0<t3|{ [z͛ȗͭq7TŢE7&m{2_`C|ًxJ0BMO5ac*$+?{D*KLۮ[<ћWiwuGfq_IgTdIli{[#KmŽnFL+ƣ@hwZ5m+j֚9xDAjBrr_eK? 'l^0H5 #hj٫w8|7SbMCOe8$ju`Bny`EVkLVI>t"<2{HF?,` 87ZUY#aJo|⮚t'r壕 c]jHd<6lZ ^$켛Zʹ%4l97>1MU_9·}q\ܕKzko8} %fC5<* k2o,VZ~!lkhx4EbN @9H uM("|Ԋ:.cy7JfO&ZDaG$HbNC;%T M< 9Ϛ?MN]Z4F#|2a@Z$ԓUſb#|`̑0G% AxuGj`ӏw po`2n#8JhtRwcCPO>=/l43Ť;Pҵ(QIWbq7np=|$3jлPefEBj">,[$7: ;f֤x+-_ѥ#Z:W(Io24y)V{- ;{x{z*m}=Mh2˝nB.,wZ#Fa8\lO[ G;e׫ $32w4+~Ȭ<Hѭ] #>r\.WqC 1)ʝdԞc0\Jf+%eƍm7'vG7:kptH1)C1B t_)9y\%78—瞩(ъB{?NAY/ڎJm!\فP-P]|x5Bᅅ Թm/X¦a5.yjBB ~ӶiZbmfs?tgmCsQxꝿ'@ x̾I?.kLDA:bk0Z3)t dpN-T(>T JeHAivc螖Zϰk5,3٤*Y(QxORw:jj0(iQ:Slc;QcSxl+aC23M+ά&fۻ{*tttm0AGʌ8V9ІnCKjf @  H{ Rpál C׷ȑč~\hvkHƈUXAk0̔^ዏX^Kr\xݬl}WAVM eJI IwvS T"Ũ7ӏa/R/% o'V[;0+ ,&r7y^rx`Ygj!F`袙I ٸ*>A gazޕ܆#E~jG%,k &oE6(~'բYCb[L+KBZ:Y 6e.vdJBR;+;bBm=e>Ӵ*ҮA;,K ɷ13-nKz‰Ca-3}{/XI=VhIv_J÷#[s[ޢiP&le0rhpf*L1+I*%kd 0ף J|Dn(wpvޫj6G*>gPNFr\$.1} [y0WAs&I8@i$řгxSo5~%'s9i?5ʭ@,D{2C_Ks-nf(OC&/4РG9$Zhh ])سRo}I FȀcxd(%y7xw*eA}tϩy6KGFx,*_PK:zPŶ8 |9)q xmt\q2X%T?@h +p[q)1R|ivT\gĠ9&+ r Z3b'|o7-RGazGO=,ѫerEnK޴Nkj+|KǽkG}蝋#&=n `ȵ 2J8>T/-43՟` |9P*e()ʱ} Sڪ30`}cOIOF 2fg(/: F7 L r3[".n[N~ ZX{?D,tIb~3.8N=w>\OB?"M؄'iȖk'K6|B>Qefߪ4!P ܉;2!!sHQ!^{C GRUEw {Ri!LMGgzɬ͍,qr{mnt<H(9ؕW$zd_ݷ t$'ʺZ~'Jx;f\!FU2|)&9J2Bm)FNJkBќ7z/!v] fx@uKlr.M7/_$ ={@e5]dxn:|['Е$(HmUwwu6ܸ/:ntZ3z,1=4WuPO<8ae%\:=A?wץnPV+0' ʽei)Jv[Y6&e>!|#{]۰U'3@ϲ 'i*;ʓ} Irϼ|Hd;L^Ųr3royHj$D˔ݩ|3=*xrNWynG=Z*WʯŃ}JidG֖` aUGv:uI;T+5Q(q3*0;K|Ey4T[:HncsCwU{rcot[oV8+Ɋ:Q1}J(&S#%|t}:fINK3/3C&0&2/2arqD*P[׵UVhZLh]I[Yx#SJe@tRI6ToTE>g[& @.& Q5t/|z)qjZqx?c op\[S<FMlDI 0. HU-gooIHsKQ7`b/s~iPv=ЋY /猷oMnwj< lVS޽_l,e*ꔂ.J==uqRIwؔ s% WEU6> ʞv 4ԡa/eoZ\ETVQ ,7/,\ww]m4 WR?Z;0Ң\_/S `1lUΆ9$\sJv8|QRZGdY-9cW6_F<$7XV]:5O-:Bݹ ڈ+L4MHi/[A?\bt>;K/{2aS..Էŀ{[6ʼ MԕAc3[K.du ?U= n%FJ([ԓk E37%1TEKm?բވˈ(,+ endstream endobj 326 0 obj << /Length1 2390 /Length2 17668 /Length3 0 /Length 19050 /Filter /FlateDecode >> stream xڌt Ilvl۶6mFc۶ضm'MsokG Ei8 ::F::hbbES ȡ M8e!hg!u0H8Z,tt::ZqtL 4 k+C{hbAkW;Sc< 'гR43׵H:Z~d׵(X:O2.ZZggg]K{k;cr* ૡw]KZ&(P6rpֵ3|,L ?\  RYC63= ;_κ֖6VV#S C@෡އ_Dӟ=i=L ?J[Y;[L ~ahCdejh(.͇LGG0NjcOwkGFu vV/A LzƦV 3u}=?i~l󿎘VZ?-W) `pffP30t#kOt|ŭ1sAKcs d]Nuߖ"G du-M-\\G[ mqWWt?hj/bbh go-W},L M?-jz:]χN2_Gv?]}>jQC?S}ԩ_}J F21(~ +M3F? ,[;+c&Eiژ|,>d[ ?ZW j4g'?f]eeahg\LHgLsxZL߳b-v04гLC O_d0x8|'{H`bgh_s~_16-ȇ1|w~gJ N?oLz?__ㆆ. fܳ*v!ȫ6{vV^O[![۞=^cNA/M L~¡V;xP5m ζudE~tu/] Zؗ?by)T-#˘ pƅ@rAEʚ|ǓP@ʮc-y΃<|Es K0w8cNg%((qe 3wk>ݛ/vA/A]srR *SN90 ~'y@%һ90vI4XͦDS}-'>XE[}ǀ%RuT3+Q0BjzHc~UźXwE?p9&KfB`  ~Vэ @6BrcTB[/`c"G-X@tfz;G&,\Nicr@P3aIgFwE VO^ڟ)4q34LQ$MGlG-%uW '`xχPSQeg&`m" '.D75yl-C:ÎRz^/^y aa=t|J; X3%;ga@/~onb=tȿ0,$H%`}JiP1zצ&άBoۚ_Ы3_YpO*!]Y]lJ>}>NHE98pw U=d=9!BNUKJ43I.܀[z dwWFm9S;28PPO5ɊZri!\Ի^G 8Kd$覛|aZOwsrbt%I#YJߝ-\RLu{wVč#ײEs 4VҭZY i?O]ώ5ݎ({L n%RhNX/*2Ҩp2গRFF"sE0y@c߭'ƴuvN44:7Mc?=:EU6(=tiLy]-7f8jqЮwH.F7`aB*zRsiOFQE`Cԕhn!-lf0 5NgiYŘ*!{Qy_=};7:*1c+e7go;WL"nVpoyn%V2&e J㬤5dmi7r1?i,͆EͲ/+kT|6)-%Zh8YsiY{*GlY%H4Yt|aR\u!%I" 3~-n}Y}F#"3u!ahu`q{= ("{tOuƊ S(٭_]PSH0FF9Y0H%~r ED2m+\!fmvXK'UgR/GgFiJ# THݻ.,]a!Cϯ0 Îzʹ]uk1%:zۻDvܝ1X?٣ҬONY+iKv1wR u 0wIp]>&'p'EPۃ"/+SDtA[fLg\ _ RAzG/G64@ Bg5ɢ.W9otZywE2j9r,-w(I|nY<-i潸䤾=ET svܑ9 *H$9`G=>OqztIWTYa`v$=le'=*`Ik:]3 #&Qr82kP) oԆMKzX 5Y/c&?)&r~ h7اe(ԢgR:\Oٽ߈0b#dlJ{.1f Djd9l^s4mEўN7I ij崈:OΐGDx4v RvS٨!tt cqMn\?xhU$3Fen!X{кFG>Elը2/.K "Z=2wufq^g*KT%8F_گ\zH~g 4i< "SyNn d}CL "4nT:GK BӄM:i;Xݶٛ}]!O\6Mۮ϶Q}Y0eAw_hݍN= Fv@^c"}g)H/XiWUMƇ/iCSO3|FqkJR xɏ w(N`UClnP?]ĥHz'5c'C&:V_XSY&NH`כkK[gyuJ0\fhʖm>]K+M3i+a#qXK⯢UJ`zSeы3$85Kex}$P.Ii̻ݹzxhrwm[Qޤ氣 8j+f7\Ph9{?P/Е4p+@^UT*9/>{N]ݜrDFV'tC rn&mtQS}ϸ.Ww\٩R[ CnLFP8`!OaŶn^P78%@ [OlNtTd6)P^^e*` "rů(l=BgSRYC `uK48  FH%aImaugrc}pDH3%eGKwYԠ^ V,UꮕM)/!JQZWzH2HU&pIтZ¾ Cyj;4DX&+ De$lmB#}3Y ۮ&Yg{ {5ܫKf֔6B"8OOW~Z$ל3zHk/!}#u.ϤFQ>hRqC jYiW.Lf2vO˸8푙PSO7W Re߷ZW\V#K .AՈ3=]+jNmnix"`F %t[[}m*G;4хAC}}za~VoE<a:y.L@Zw,fl q:¹*1hgxlp1ǣڪ/EH/\IESYgҲG.Q]QA lM=Fԋ/&/6 ]>Sрg&)zt`ۦ B qb9xL εgy֡](tm W 9{% $[l]! &ōB\k~ pb@9rhnb9PΞwdT2Zlɬh+ZOj lFv% \ 䚙-CnܺRp.*kIS:/׵ %W\ Xմ[t$%#j˅gFǛ-1dS©ΰ0 0_fjk'C 0E\m|ki thO}.GW|fo֗Q_2> +5%9MDWj!68^>䂖,MQn! $W>`UrS aķĩ:dװqa<Q(i;JBUƇym|)u/x1/Or誑r1JQf4޻C䊡d=az49]@D#FӫbemgםߝZ:pm\}hw={:,cW*`ҋ!ji)Yb9(߮~%hs5SB1,C6E4S*2yb֣E̸p204ӷ90D.4[zCE^._GV]Ty g g 5yL I)Ԍ5d³I˰iIILةXGyc7Q ǡMqR}.rk['z՞sI;, UNSYϯm )T E&yt:{onWMɴ=Ma1i%1Y H6Xx>a8U\ UD 9ԭ!f,{MEP e= uofQ C)MK]&ݺCIɔđ?/ץz ͝]&{pd1~zUٜN,U Ef?xO`txe ;|:z3p~p4 n??X/N>Nj}FN8H4bUPj&Dӑry.mq11jpZz4i?lDbk-(cq*|MmͣQұVTE3dVo--[(q/rڄǞ(P/rl@scvoĄP̜#f =<~Ճk%ߐ˘ZDX(qp.UqaRƗWImWBRbU6{f[4X̟{v!F7jw.WF74Zysnݤp7S0ض&*H^1R2=KߨTeZ(xe9/,dqY#gPyF Czք/?5f艜RdG.tzrK7vGehX{|eFdppys;udJ'I6]! ¹tM)NgzjgdԞXqOcMFI]Z5÷7 h21՞VI(Ϭ3fܚ)> B͏ֲQJą;e"IY0BO|LcT؞فpZW÷+WP3ќSH;kЁ~¾ Dv(iڠ,9ƙ=J0VHNJ0Uκo"*mT]ڞQsUǖ|$e#3IAYH 𪂽jRhe&s{ dazk_ V] <(K[MTRPw25 P-6a8B"}O6>&3u8A'e1*vn ܝB*a}y7z BzK^;Q*jSr \~NoՋRWgBA}^ p@1&%NrJK-KfDx![A烮s\-;S}Lz'ƿ"5~Z1?F(Zs°aYuY7'N$~Qʖſ~ ]_9(6lh6i |\\|Q1t*ڍ 3\Lo~W\/NQ޳ۏD-W!{zߺ;x)Y9ANY:ʂC 2U# ۳yu#w6uS#'᣽7]mn4bCBu2ͯ/&QX]Er]ubG]G%2z ? ^4S#6TY<@msI|? M xG3K  6T}۹;\33+iBeXۀ0~fx3CHEqL|X1Zc}l$t3O/.3P|?[5Nv >3vEڴ<rP:X@\|.Ӿ@JR(!aDnA%qϵ%(ǃJ?4OfP3/^T\d-U/|։ §N7ęAӡ̶qX3*c^Av{]'~d6}7h5{`l09+vʑʍYi-c].hYaRao;`,GZγb5OSGF 4 0?wE`!BQe0]\9רeߌ^9&G7؉ިX&ev"%A3]`"q KfEt0R2Ta[(yNEr|H|P̘ߡKzY~i؊-KouXbm9C3,=VdĵѾ .姆ei.z蒄a|< GR@ۭЉQcH Ӱ5b"| T q ]`ƅjCw?cźhr2V0bX/aIi*tɗ5KRY(%Ƴ ajU;"YUwV.It?EṎ׹ojb-&2 }}wc⏺q͹Qlhʑ.J؏7m^-!pϘ@ȭ`sIAGDQ)uVS-Hq>h+=\#9z*Dy#`SB8((-wKT}F]Ī-ɋ'po]7Iѳ܊>2I}ye`-raΟ=c|J&*1rVAt+ޚׯ%# ^9SC"#X e_0v{Abxr .sP.0c:ipL\{Z5y#B燄=%D*\s0~M{;z .~ikpJiOR,r;0 $,aOLjn+:'h",5ET`NW2}HKҮҭX~Μ1+&¸ֵ0IlP%~6>|"I{zfxgoړ59` gL$KOq .܊q%U ߄&0˞\ylФ߁cgmj VjN7є360 N;IOv>K"%0}2`5pkf |4 bDVyj'ٟMN|mO e㱣q4Z%x9EK=)NGNxmr(}E:liy/<ǙYy .=Y>)i+ŽXXn\`@.nG"L4c94XN2K_=l]$jܾ<cVGn5;I7Kʢm%]BTfF^"1q]x{ѲU<*LAz=kwutd'_N#6(8YEO}9|Ad/FH2i}{谚c ebnk\YHʬe_aւPJ/*p*ʚ {pT]pc-X\mٰ .u|pOHNӱzn2uW-pD'-ܒ f29 xm1 M nCC:|i5.3(+lߜ&ZJAxB&6R|%ΪI=1Gzi-Oҧ.VoVHq^]܃{rjLf]h&uӚL?.(Ph 4.yJbo֙+ Ӳm,WdMPǀCIKA^Nn!>>)7t‹jt ue{ƀ/Nltb_~X׎؉ix%$'{kFpJ QyE΁n4i3k@6`:\}_(ւ.-jDŽk)9Y3Nqv=yg_Shpx\-HLi '9'@P\V #im6|'0U&6Ecu9b?QVP89pUsi 1uZBʸqDDE,Ey|/&V „˅+4^f`|F5eKaO՝(qw4:q}Rh/ I PUȰ{֒gB侽[(YCe[G(@!`X|@O6Un9&:T}aCn& ij%CQ̡hTz)c l:$ʹJbQ -JsJ-,r7H5 {s ث EB7ꋬZj'*ys9N&,, N 8YZߍ|Ikr`䲓\MhaK,bNJ:8otvȽ=9҄&^r({&hiz9] '/4^\}%}g|`UG3]C.+&3cfز9ԭ旧:*]]"Gx~ 4zՂO!U z  ys,{OԸMni{9& W֊h?00ɹV`N9IC1L I^@p W|$IlxUP6u\6k͏tC 3av 7?oW( x\0m{rn\JoHQUh<=dS3u[I?~4YTd^x*AʈT:-tRO>NG>@q{ؙ͎1MdV1b\m ~X nD'ݮ#&7}(hɰɚa O2xmǡ :*m&ܡ)05zYh?UFnS' ⫘/JO G@h*0_~bi_!Ƙ黠[Olߢ˹FP*Bb,9c`g`#AK_4" ߥ`_-6 BvvQu/eΌ3#˂yZ~_ږ^nUgg Eүm6sf_OM/ݏ%B9T2dz~# "zp6ζJP>`g7!&:pS߈R.Gx`z̿%}.RgYa}x"V5bd,NMiB["@US@pBbcBM Ea1U__;QDio RNg38)VJ%-@(v"t^]ufHvBhhҬOV=ЭN0Plbl$U񵳍_ U |%Zq$FH"$_::[HMdܽþטn]?DhcFvrOr0SHm?h"z #']6hH_0O9ue~^9X* 6x0oqmm/!$ޗpȪRAo\>vh*.dwAHL :jt*xb{IϘ?ܛv-nR?8Y_O򕅌h,ug,p N;8`>FS=5= endstream endobj 328 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xڍwT6 RDJD`Ih"^U@IP )7*(U@t"EEEus]Y+yg3}DH 8!0HA 1aHm, tB]`1 XR|K@0@Ujp,[ q<P> [܁Jp  A 8G+!#4AAp?B:phiOOOa+Vqz"p@c8À-!? o    Gb .H$dh poo } BQht#\@u]aNA΁, \ v!@u%# P  c.=!\ru#qXy} Jwo?uF<>K$ ;Z pskT8Hꖘ{AEzῌs5?4 'C ?,a~>i0; G'e1/%@?0tɚ0 oik i_FeeGHL($*AR[?B_-= x^E]>?ԅyt+JG(+"uw_v߀qExA# ZpwoBX%B`qao= 8o֛/  7Da_6–A ,M,apy. K:ԐP|D%$  I}5~("D.@B~@{p>h )0\Gl;CH˿C(LSupA,fQ.axIg`Nmnٳ}j8j8W8b.&q4=HV.]"2dmT9tpU1DvH~k{eI.#m/qMv;L|r}mΩ#z띦dp;W(NMMU|:Ϝbtz;+s|[K[7xo9&G ʩHTvIC|>ּ# zvXhOw-wzrK__x؇7UL&ɷg52j!j)b*_4};9"H»{>xӼVeI(d }4~f7&XM-4*Z麰[`*+÷J|@(% ~$Y6{8FTh'm7H Q}? NеxgWė${򺨈'~7h*NǛz}Zo- ܗ%.(8 ]}D7h-qtNSNHK-%r·~s`eΔajqfw]ͼ`a?y'Wf5=uA_pb&Lt3ZEوwI[V9\&k۵6ej?ڶ:={y7hjrJ^}J#ICH?z} x"7_^EoϷ+jqI|z2CMa=~+x?.>;B"nL~~{)04I7rE]hzcgrŞ,2 v@ߝۋ}EGL.՚~E}3LY]π7mD(#W^11zm[y+` 8k1WH`8"p!gPdaO|Ln-&텇T}W:UV;Fx^c~VxZe$2Z_,SQ? 7JS"Œ-gSowe?iލA_Wg :NSAcg3Ւ>xa\pѳjJޢ2Ff*hշ2*Dk<ꖼQ!E L1ȯ-6;!tKrJA3q1"< ֍} ӽk~;ٖ 'FyQwuc[ęTe,\L5zçpә1A_k`u +)pF'%Qc X*,rXgH;u|"WQkGb^nހjO"5GSvI ?Vy;Kʯ6yJb]LJМmP!G/3$$ג?=`Z@^ҞYXQlrgmVBnD3_hab؍$2J8aڗ338(3&t<3F]Ck*+&z{c1It×/-tӢ#Ku]j5kkw+Fz\@d)ڤn(Y[9n/G&FWc+ږL$K|f>Rxf"H~DA=45pQB;܋\MXo_V)ۙ*3ǚ2܎Rk".0pLMS^a $Ia/8yM+2Z@*a+s^mF mwܹ=zj7g([f Z˻L1dUOǛ,HСdyAJzKh(ic $U̼{-ǶSr/Ȍ:}: w6D?~ر ynK69i@CqgUjP0|9mR֢(+Ei1 /Wf2BjC,! vf$*~MlEMp ,c-pP܊ZbEsyLMt/|)|up`fTbcχ'~kB?X[_lvIQ&"BLcy˷YG+ [ {R \[ĮT׎n.nr>?hju:#QH9WbiX.JZhVpi2/܀SO >Ɇ&%L8,̑ %2s?~MPJ.=fAH5$`UƳfPRIŐK#7d.=xU{ȞsRA{^\m5Kg5TEx NAu?&u2U:[C393֌ |(%hqX+ƧfOJ݂Hms1JTe fR=]X~4!Zឋs"H`{@8.!.1xU:A7K,Dg'դ[=ՠT 9rZk=$3ڜ_%t,IѬɼ3%jb.ڸX(v[gT]FY[(G옊`N8*6:[zk\J];t?sU֊$39;>|g;VY=Te7 2N %_ivM}ݫRtSU-(t)Fq=vʆ9r,ݤĤq8+R}ydvI9M9Le3.jL=xeAVsE8.U\+JNp{cWz%nP(/zu9˴I8d|9.ҨIE6+]rg ')CXQ-xߧ~܌'aNʓR ! UI_űY>VMh#w(o9KӲ)@@ nK!a,S4X"ϊ˯F'DXwooj90a{` L/L9I`5U-зݼe{/xQez_n7<4mtonzC A9*6's&lxE+T եSkz.޿8U%ha誹ȶuF ~@[ϥLnsIz-qeqCѫ\<^3e~F9_\4 t8Driج}5o$*'?x"T1UsH-~^+%U{p#Ywq&aP⤉%ŲvTh4avgja`6]\+3ݏGwsKt4ljnvEA=d-[StjZ~^fZP3#mq7%-N&FCAx,6fD_ZI>_׊(fF'Q ԋ=|O{xJ_uN+3s0j?oՠjO޳* 2]Z d+_?xD9\WT"ܱeuWKXaC>OSzx'H0%/ ~Ƞ7W gUxkWB=p:6hn?9G$9%jJ tn[(k:b\a1=RZ߭մ)y xe+,t;c"[d4im35DcF5AH%DQtD!|  =Nݔ#0z#qЦ-//hrC~6~;G5ֺFMzIBg#WOU˙i.&?pg6сJV-Lt8<\]p_Ĭos&,yxVF Gͼ/ 9Xh%k?R+3y5;)y0\A=)d-*D/RdL}T16SI"wV$Av3/QQ | 嚟\8ҊA+}hPnչ[|2}u^c(h>H\I-uff[`9£xUCαw6z5tz0#Kiֲx̯0H38MxmL}Gv endstream endobj 330 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xڍuT6("LABa0$[mlAD@;%$DAB:D3~{}?};NV=C~E(FAB a0mp>aH4J!c``ަ hPĥABB@a!!h4P삄h ༏vt ߏ@.7$%%+ !`PC!`{!K9J h \!0,  ;&!C-{$CQP4T:PZ|? ODHԯ`0vpܑ(8ij p|@0 Ǣ`0lj TU qX,猂?YvppXvEy}E?ǀ:; N0u? ń$%D$Ł0' Y ivǀy#ma'00o Hh#Q0g1H7~ , QXPMOQȔq*)݀" $$,?x;bQh|~w.HG!'A rt !1! _!7dwloH{?x," -*;j\?3Hs4~egZk4v/DiўvI f&YwT<kGjDY icx G_ + Ʀm1gj 0DxQt_Tո8(/AZ(iF5,]= 'u%/ &5 d Uy6FOl2:T -_ܛ 7"BPpgt<xGBeRIGЕnlx%l_lq Շ_Yoz.Z\f@n"1b+;4Ij!#] .te& <2?ċB\ITj#$>嗚 7 4U[\ݦROi͌%ZzZT9u+^Br4)O=_?LfԢ]c#UF f}d?f|/s/sU{@Rcs+aU:h;\,iX RRl%ux1d"%qMꒆ|KYff$e7Qk.a+;z TL;߮QVz<D,2N|Ns=:l4`Pxo-Wb.;hi+> ?ɅŶSp.wnCe`aPJ^!M$S|{1K gwY2\ =̀|0Be= ~BFǤY 0GFBџŖLUT}N^4\aAT|~40l3ЗNe n]/a& ,^/+z`[,;_`Dy鲅]sp'JUfԂ)Ʊ'oP^&!`#qNOMUyI+PNqahN23Agc߭]'>)ҧ:Msͣc`D%Lu%K:Z$nD N=^$cUE ^q6Ǝ]9k-! >iV@ے U9](WR(o|@"Δ9K̼k7׾L8>׏ayi0Bڍ OEgKׁTS$< .~us%Ucݝ1Uѵ_t J,j ]⃒p7j]@bpTEFN_t$` gaI 7r׍0oܸeaA5YyPA})~iw6s|_+3<||/Z. !3td#d=?pKTXX-G5L7vp*rP٩NY ┪ůjvONF)_p!*&|Ua\[QV oτE\xAGrUvB=t+bŭHvDfhc_,!B=e>dj?nWɻ\ZKk"g%w f[0^ň|Su_? (51zkEWa|f m-8R JڴR3áDb[.ʖE?hkoAXc\fV^,Ztm^qMY{籨|# $ *߭SR3a20Oh{n7}ѨD$q$)Ԃ;G/9 Rڻ^ *}<9[fsL^`-iwmf,'<@{ +VvF,(*Cdg),VcW 8>S) Gp`VO*>&%Omot g_ra:#2"Ɨ 97cKTܣqa^={rÛ iPJ6F[Zիb&WU=B}k--_= .HF,`ZzWMWK'bV[IK_ica9 ,Jh~$3^Õh֧}RY(3q]Laբ0:wR]@g Dŭ37AZhx*l?T "Q\]|!hΖkAҍM$C$Q>A%~bvs#>bR_7T̿xEǾ6 tk@Ԉ1:cm$i9MU}-@3?nx{W8M H4, CY<V('^u}gw2MlT>8=z]0lFڒZR)-gB(V6ne-1NL{c#lc^ ogeծ~Й;d<ܩfp/#°y=܇Krɝe#cMZ_)GbNrZxYr@zNM_L*o\/iPa T+L,iNUuz6~ ,כX_*YU-\&,X9u{ՋYta)L|@!v3~4Y];-=TLڿ ȭ~)&{%m}܄4dTs*˶A[B=ǯ$ AONwew\rm_v?=yyU?3o$jHI6#d4d]+$?R}Oе`; ԓNp)},츅UG߃NiN3TW$]5Yjcij|ahZ蟅9 lH&n&H } MxHzRk^i>p?qu y*~=/Uѻ2_R˘aG쬶MF6/OnK?}" Q|NeiG4OپASUxtI^¶5fh"s7*=|fJ AȸJ(/BOrgh 55ɌjބI>e,<60)_aU.K/v=PX1,42z3>o$@*~K7}2SxP8ý5ɝmh1>mǫܖ_gy$Y_o(hJ/ȼ=ʢ S ^Y(N6oY~qZZ+"׊ ;"]Pn)lP֒I6djgǼ`̜Yߒ9e!17 xA?PU+ٍDv/G?߰?_j_율u++<3 ϕ-'2ᡟE/ʌTD3mc* &|T-Hyt(u1 6~LnY!O$q׹Z}ngydjDLK~dK$ߘݙP +sXIL|9*_ttV5> stream xڌP\ݺ- Nи w nvNyޢY9>kQ( \"rLFFzFFfx UK@'gK{; DF. N j`b0s3qp32މ jfi H)D<,-\@#ڄA/w- gbhbdP7xWj^ nwwwz#[gz{'s~Z@ tr~' 7=<@XAv@'p,@h?Dp_F&&Fvv3K @A\Å`dgofdicd 2s#s6qtpqw"0*ٙ\tOg ,L~'afg  HGft122rp)~Az;;@I}-̀Fn@+o#x&& hni':H 4da@ejog_eRO {XtlCz0F񗯔=2c߱AS Pr]F6FoG &$jc/5 @CZ9{oS ?K+4tZ)#"ٙ@SEK-*;[Vt/hLAW3h$6翏37bl#''#OxPA ESǿ@ogr;(;A`8 "'A0q0 & ?  ?Eq@\  N?EqQ@\T ?EqQ@\4 ?E? EA ??gҙۀ$%O _)OF?̠tAclo_q@52AQ_AAdc `-mni  (z&Xx:X:_Tb 6APtK2r_zPȀK J*):+ӿN VkgW~~F@ B{G'p[bߍ L:)otl sg (?@:/Py]θA4*_1{AeSKP$/?Gh˿^o h8golUv_%N;7MBC 2=pVP7ʶQsLXKRϳAn+$VDޑPm!ϋzfَȊ{%z =UXokQWc(ߑ5_ 㫨'9M22MmS[aJ}gOI2j:*,iM]n:m~<8 )Lˆ?~, +J_6i!HW[qRʧ۩N.* nrkO%Ro;s_2Ieu2!2 59x ;K1Xt"CL]4J%=bo8K e7t{5ogu kCkUUiCWIGXP:_;8=yYf \&%PxS|d\YAY~êt)!{dBDxҲǪFfp'ꬶ$qRNA.Kl4͛}˜})q) .ݻ/?dWdp~ tbK xh Kdz.S#GP0+0N'WK)<>5%botdž"`qeF))̿WzIҺ+cZsMHaCR_7R׏u\/X&48#wY.1OvЪG{m٦"MiyK s$?+>03D V_?0&ti{=udJt{kn޾r= csA\4 &qәum|tM R=2O8Ʌn]H }EN\1횴DE{]JL8&f"eyr;$?RC#,D_Ell曾u?'>h/݇^ι^"ID0DFP/Rxb{ ?v);Eychg0p*r"c%n/ǃ7_͂ 5VC(Yъmg5kWCrwI Ї4z>2zD)UÅ}Uڍ/dR"@_pkj+gBZ+"[ Q9uX)?yPDV@yx ?.&5|Z&sE2\[IpEjqÅ"w-)S9b.Pjf٨AJof=;i,X$Ao2ikv>aV.7y?mɮ}gMfJ!Cwz;uuiCj+_ݰ͹}w,q7 ,v#†Cb)9ݔmL,H&tDOiuCI <܂7 j*òBf`!~]̇hp'-ᘻ/si z}ɂH-;,K#Np#a|8hxZ,nhv/ F㹎gYhU Emy~SRtT)i<ĄMāCUޙiD9u- NXs_S729;ege=nСUFQl>͏#Zy 6Jerz|'5/G%;sJВ(.Rymp~Z vNIv+ݰH .BPtHvIPkX! 2cy &Odف ]+ĕM_l~(9ć~ mxϿdQBoqQZ$F(13ނSQ)=|h;t{ QPY-O*NFl9E-I".h=)l-0A6)jo2' lJ'/ߧ2s!P{}olꭏG🙧 8T|!6xh9ߒnrA [!'_)AY`K Vy!l=L,ɀfTVO*gzhc^'G} XHl8?imlcFXaB%eQM[s3=|;Xe߸с>Bő;ÌӴmGrNWrˤիf&=ٺ `ӻ3C~a]EaC%-n#ϟ?$`ν( o|\nX δ'^,Tk2e>fZ'=ۃTR6 bU@Y;Ho]@Ow 4yWvq-EBޢʼ ./r}λO\R fS&^>/h&$! ܹET KpufDHsQ@c^VX%4$]rv9M)NgeWK2piY-F5܉|늰 W}PW-xtI&i\ozaꎾqF,2ur@;t fDTv>o~(%S2!Cx/<Kwe%"]X FʮbXPUP/V#vQ3IIE.J!!41yoŸ.)x>$>= [6-pp &|El8m5ˮwŧh}^Цꠔ/Sq`^BoڿY'H?| W/P"C2:I I =th=.)Lf<OIA'h0R>xfE'H$.(%\C_ee=3+]$YE&QeVɜpitkbaR9ѩ[$HmA<:C(ENBnQ)ڵF N+E\S3[_5)S6Fŷ-!K7xv|cM5mB}.Yv8w?j"CUu"hR=k{)M^|5FpऩBTozby1Ȳ_0/WC.nmp ,"2fcHM^-hژ5Tum~RCn\}تaQO{Üӂv29X}ٞ{&#f6ۣ{)V,.x3'/lxB!'W##iSwW`t:'yApɶ5[QVBa^O,x1.PևE;%31.bk{&zNȧ_rq5nndKk鏎zkRTr OAkX"h|!zO]91d;|0Z@IbO^} c$wGŐN=e0'K_Z t![ϤBh(77-Fa&x}a40EVdی tp`s$~ߐkW^3!D'CLw|﫣hʫd|]׾/޵VHcf<~1ś\>Z`rc5(ڻ1N.Uۉ~Ȝ9ԍSwnh DꘐǦ SHǠ嚅$XUf}[`F m2d itdι!Pyt q049y'JAA\&-pBGOPΊD~uw5#W\pЋ܃gRƹc* N\{c0o]S z W9߫i;do{k/y^i.l_<N-H +萶ʂ4=Edl<FCb;Tov REC;fï!ID>(0zoG~[H^LJHyޜ,6썕-`f*m!__?6}]O5q(]o]GN>;ꗕV[Q Tbd耐c]yᆘZWt3NsLeN _g*9Mŷ:y'¦a L7ȋ;{$6j6:%̖a)sxqٳp}8?a`QDp';o-EGr|DOmBPEDaxh;YU]kZ*ř,f12j<%[;7hYC6] ep;?B~sgc޸utA_xՉE79کDA@($wV|_L{*\.5^>YU::+%PQ '[:R"vRaW59~FD G#R~:jW6q|F6,I_zK2}\E XͦB~?\/hҬA5\!֘w^_ym 6J88W 2b$𹬑в^X:R~DݏDׯ+9*峤I)w5 3ڤ>u3zϣ>wOt?̲)[/J#~9QE@f:I/^G jy{ n+Q xD-I.Gub .L}CW51VBj-]%T\B>7,p nwS0tڲZ Qrt{111??); O~(4b U?D MWiSEGvקlJUZ"MVЯp6#T,av6<{UT'^RTyZQeh<̢ xkIrv/')=G#~4ӦԷԙ"qU3"RO {M"(kK7j[+j?;\jߪ"Mo1=q*iœj-] (Z t fJ`(yOKx^V}ꩶ}Ku-"n= y]<6u"xdީ~'/~CW̊>9#&L+3'y+7c\%00) p g`L;uK]l.77 ſ fm \7TD${H仹~nW/7FwQbVnp1bA=ocZϼ]nx7kȡ gCQ%Q|N-&\FyتjRc77l'f@ Ԧ6kM!ҭW|19ސ/YtݵV4t)M4Ke`$Gh(3b!^&b7`6p`žErvD]ÓZs.D}> 8Lh<sЯCXFNAS`+:A [5axhHOoPQQb1f+!ƭ{f$^3zyuCpdBW.ԇ4XO'9JXv\o;u-(hNR:+ig3,%>sJP#LVӚv72юͨu~y-kh;]&Xd]&D4GDX-}Ō2wPQ-M^S)Tz>V B[&aRmoa#}$Zz7CY*[Dk W8Vk|au"8YO$'V{*9u% 4Xq~A=o6v+a D 2 /#zsnLZ/C3Ꮥ(AS [݅={K)If{jxIݭ,_\տ䱖wꕚdȌXDJfu'hHk'rFb=}(sMxsg_V1./$ԂЂcyU\C39f5Lu5]zxx".Kg>;-k?#ü-bL+JKUH=&XoÌď HmLwC쬔ZVuSs ^jlLi:2@=KgqwfQJFT[ɹkyNieEuw4,%$"NQ V[ɒ>1n)6S&8In.T|k *Іx;;8l }(}ѯ#ʗ VUѾim'[?1ԲMqLȧGRIyMm_뺰Ve+8Df٨Dl杢Va$!i[OCbFua8qyҙN\,sN=)5GT`QwtS hB!1^G/ֵ $rԷ{: Al`0h$ۆy΁ φS)̥ DLkgdHUͽ[-~-XH5 :2^Db `;*=ӄYp !ZwGT`\4$?D 2=yi!lE/DžXYq4et1@ GILb.+Kfw+*'->G>!R,FFuE KaXm1H()  7uEp.f^ExnD1D%w'bU1Ƕ}*tϴy`ŗwVc!lkYPp[2,V/N'2p1>z"ifW9adT|t/΃qՀW2> T0+NZrs[dvYx^ e&JN!ou u?_s'bRŷ>Zwg`([7aX<ݪ*Xv#Fo$[9-iQ0[uL؟ fYor,Uc<#JW OHy%b}e @kU1N^ QQDtY bסy|9#%\H!,lyJGZVՇm١֢Qԅ;5ƷƮCZzo JިQ;ق"7P =ÑDTT(#GG1y\Tq]cYs1;$Q%ZmYsCpoz x|mH_Vi}ӑ%6k6 |]-9W&|%b 5A:&L nslM3?&ȭ~(7+5k}:u4v\;0&cl{ktI-;3O;=IxNaG05YE3zR\ mꖯHF~Ӵ8)i&,x4yW΃Jg'+Q G5H9<f~R)m֘xW. dJ&f@ȯǩҹ8L(w'[[!RdlQ_?;l1EO&!NkEhVHҘeX~cl1U" 4щx%d.8Ŕ)Ε;s"*dy(ԅ2cMJ$w.F!\a1/L9e.DwH U%e͚j,M !;^]hN4*-vД5o٥rFj jc(YF.H3%[&fb+Tu¯0] Hw~Jt==Fn2ojꌆ뇹fvh+g~ %~6X#魗1jWV쩵2ڈĸGIPTF[L]1* I+QjM( >$JLؠ?{1. ];Ќp r[M<|F/9ҭytizԘ d|/-ਭkYm&|ySoD}D"{VpKXUGT鞗'Y^K{M,yK4?U-SOBn (Ō:.]?Ypd+`g08I*='b߈8.} N< y\`ޘb(ɸO{TTrPپHHgoM+q ϓkmbjl֝F쬊z~ֱK {AnF7.eWQ(mޯLS5+Tb=g3~+Øeێ־ak?NI>m$%=ԪYvZ=é E+ѢJ3!e9C\ ◴I]?cq -FdH)ʵO"F61]I> Ws"Q#,{]@kOeX΢lMJr_-^xf7w)7_M# O:$IL26OR? ]}g%I|R7_=h6o-}q`vRu;I3~QވZ(^">m| ʤݺNYpS(f[AR+~Rʯh03zh/i|i[=#:< \V2N0+K$IMH?W+7}liť-Ck]жD@Yئ2IQ<^r GnI_jNe nCA.F7<ːq企PoeJ*AHW!=& v@޼-}@&5.a!ߌ*ůmI}V RRg?_< X3A1;i|NN.dx@6 44$TՀoJ/QaC;ד{ğSkH2^>|0*Ɋ뢍 Q51H}4̒I13*>JGggdEP?8tC&Jlɽ8]>FvͫL5NrzAL; uR\>pTtAC;9(MiŒ/ٙbMFңSܯuPE09FIvG;u;OKyN*e 6GbΌ ɢdS[fP]h,5\h!af;()SkxkyCy(>{B{/| )tܚr(xg0-`|a͙1d1qa-Aq! W \4 ; 3-vR]Ra/N fGԾ?>E[%`<~? [ʭ9:jE| 1[bau kO԰/l4 MNnK>0 )K ׫i͂cgQ.#"aNoBoOQy68Ӓq[ZeJwDVRH[ǥ;+t5dG iue憍=\ǰ C?ڴO3+;B|RĹȪy!OP2(w!u7{uK *n/KǑvfækK&?_o+sO6w +١JvHdϟN\[KHϬ9ZӅ-HvcٗA1,z|v1.)F,}b ՟GحPW8V6F]iG ~Ҧ 8M"P9Kx$lfAgyָ;(UZ6u; KmIA5ǩ;IՔq. 39 ϐ"mp($MX]Tu*¦vPK|MIu?,lU?-Ϻ܃xIgxZՅtR8ڎ`BYo$'UCjzb))]jl$E_x{CHtzSS$Häj/taǛ$ pjسO\* [x~@=o -P1& FꡌO<׉:p*|Rm)F:?tnAMwP gAJ1z$6[bVJ:ի³zdG+>.QeyFRO'G{C%BY{'Jt:!,t򪑵&T'JuRq͒ Ql_9kh{rdPT"3f^ g/3Ұ܎P&+nb$SvET吔UT0'.@γyՙ[;(98(>骏x'}D$EʪbK [0&Z֗gA+:O0cB9l(Cjs)fņ̱8>삷ww ?Uݕ; jt^;pzA1vGy ?Pv#jEWQPBf;x%W,^|D)&[kżY`diĺ-&vcc[9'ӏh ,̰=q3D|X@ldd j3 Y[q^%0XtԮgȎ0y88 91u9 !z\p+3A g! =ʤ(Z0Y~m8F3,,Znx6g[)qΣ:nߤ'7#Nːxg}1OL<&Ix2$?d˜NBvڂ! I'_:2ڑɺM>i[Ǽ+fj.kxh^Qsraܥ^lBG]y'66GA"?LS * 9r<>2TXbQN:S>ڧ2E2@%1_~Yj 7% 3>N1p>PSnZD` (95)^b"^nj6GB Wዚ},9BZcTRXiTт<5r>jhI,9l/O鵯9ǫ՗͔FXB 7&FqD"v&_׏3ּV_LPSȃ\J{覆t;n3:lS-;XEdn ?+\>'Rv.j"J=g io?`x]9 ,Q,E!q%!/=׷Jj6.AEyiPHw%pdyy!P l[^~Q pZ-c3|uxZ48ȸfg>ʭ+;uawDvhCPoٮzo - }&9վQNCDd'jO7O.lzM} YVBZBguwuHY$="Ft:9.x'h<0bߡBրs41f&2׬xjrNA_wFֺ:"@ϦCKm ΤDՄh@uBz$(fiީ63뵷 4Յ"T][>E8|< 솂iۄa߸ M/oQb>v-`Aک\z !]5~ImÒ1(=[R jsoVc=j0"%]£N&tuFCx]5T5݃3mzu >l*W:N w]qͅv.Uê *QESS Y?{ ]ǵ&\AK?R#ng]}Y0Ŝ6i oC/lQ]*.V󆛌Nak=ƶ@ wJk_ !sKzi(,99~3Px^1?1u@?iM% h@e2ySSBfQs uM'&`{V}-(kL(mRZdRƝ&ӧs-9\yok(Kۼ(_ʄ8FCZqs_a3oj\xTE[3Luss}CǩpͺV%GоWHRRaz"Y LmY2msl>SZ2MLG1uN5Dz5 M(9FzS("y'2ȬRɮUS"3W4=l(5w:dVSxF3Ǿ,˫A4 $Rf'Zl .{:KjK)Gvތz1BbTiNogL1 98^}ӏbI' 6fyh8eJ晼۩Ge , mPFtŭ0?_l*V蔈jVx.±OJ=2$O2b?%f[Ԗ8&W4pb 3w3g85"ksZgO)$A|V Em$ twfwfW " .Ǽ)1Qb]D30'[ߣ(2r&Y?ҺaKiwE}+M4Y1ک*Z e]ף աWMˤ׵EPRqZ*vj/E]IҞL@ȹ$vxJĄB(Z $s!Vh r{n} ȍ3L=cn`n jU0dBY؃4G}M ʣ EKVzB`pAqCuc4| ŠAd pX|cCؖ0E\XCF1]-2FLAFxd.# >g/=~Vm.2ʋ;v(GXL=.(&ZƔo4Q&l3@Ɏx]i˹3?Dje+{!49U ONh=J[&wNS}*i;bz}_}sZŀ[[1(֣p64Ѭ΀F1ϙTt6jѾ9ۈQFd(>֥#v0,/iErrB/R`fhjۊL;og5?hS(ҙ[TS YSl1dv褣=`o]*K?A҄6x2>/ms Q3TYjw ^y+EŽ{,Z6e8 OCltDE8#W`[2xTJ,380(@1vbv&JD[7R?M9E$hOhh;F߭GnfƢbwǓ4FR;--EBL}귞&%X12/wf{v rQ%=.2 h )WtQvb8:z-_`m.DGL쾚gpJU!~̦خW+jh\9+)7tGfI'vZ--;Ux]ӫx}.Ӆ ^0xW{j;rIsuû%7X2f ҫzSV#o3ju< fpb;{wGWT(CQIE:Khf[iBqxaz (r .m3uEF/z/qSgN%Qk1t-m XºӱlQSz •; I+oȆyi36|*\Խo:8I5 ٧_54ZOC#eaF .l~k= st2^v09:qn~ϱmf]Fi zI3p 4\WwzF'R Z?;'E0gfӧjE s4{'K j!;(t2 \5!X;^NLw@PcM8+N ہ&3l_rJt周⯷M' 1?ԘEqZLE}AZn"04^|[6 .ZDlqqu"$T =J#3.Rbhaa`n@m,@5Rݞ|ĉ qiLAA٨ a}!%Pt2śI6di,o_)r}-o Tb\3o)1-'k̕D|.,-;wkfZՀ4OUT1QP숃ɽJF77"*0f\'U§6L V:PV6)j\e߭B}n{mu{֔KU'>Oxt :ien=%0dq ^Ye)O}N`E-E9R 7xLձ%v1$BO-6I=iW댼`$?IyHxSi2~!'P^8IXa7 OFӄdIJ-lr ܑ&Ya"YʲxҪfE_Mz):XS YLZwjBy[+(whm}mMTU%_:-qr(gjVHB)ÞJt1tlT' /Sk 宬I3zB)CSv F.z.ůHfS`AS4;q^.ZJb7wz*X7,b/C EY^p0OsUa|F-(H|1awy﹡F\)LJ^Y0y|P:`A$bD`ˊԡYќ̔n,YTM xr,6ɖCKUFc@06)~>ib穧%o88cV Y,wz؆J&rZ+m O{X3T/[L, vH 5&ͻ7d 俦H;(mϥ}~TE꾙o^vnrhV2U;I\b*Ů S-=|l+=y!JQY]s4,;Wվg 7=qaHEmq^I: 1A4{7v2AO{xn^ endstream endobj 334 0 obj << /Length1 1406 /Length2 6162 /Length3 0 /Length 7128 /Filter /FlateDecode >> stream xڍx4\ڶFAA c3:kD{DoQDI$z'B|}9oZ{sݞ,F v[*Jt, PD&`g7`w$;B۔A(4PhzB"!1)!q)  J DKAP;@ ؕ>PG߷.07@HRRw8@₮F0G ()pwxAQC  r5;0Bأ@!p$:nq4z +_ѿAῃA`0P-F@p_@ @ǃ$B _3 JfG! ~ u#:^pWP1<\MP7_6 @o>f ~W=z H"C#VnHiO7thB\&#(;_YWwG0o?@a>!@U@kP3@.@jP;/t_xTzC( #_Ot_>M.ZC#~MXT rw UiMfB3VH h#4?& AEhf׿xC tz/ϣ+ }Q(~xYjSnϗEL]y? ^NSCa+~?v0!ӣ I[b[r&^lRx݉|( pѣ)vnc>`a[E Y<"#w00| ;Wln9./]@Z*W%w8i*1G (zTJ[X|tA[ GR'#uYܞ#lDwj٫0Ά2E`yLܺ7:ӈs mX'"_&^<~($l*RQL:lox @AN1|Oeœ9~]POmj*8#kVb{2S1Tˆ;>7~:0/[SMkI1ٜ&Fm piRb 2Wb#/dBeR%O>LR6؉']c:@PZ+]NMhvWE<ş&6O?wyҰgP5nraCƛMo3 !5ְ"XEchR?Ue?H߽gľ;`W ?$"U:A~؄QDDY}#LNk`ےis YݥY/Ek-/(DU⇧Ozb|]{O7CtZp,G4Xόh_ ܩj)CxORnqv{!..t TRw3[1O~pgUoja: bR͵=,)]X>p1x Byl2e8vaeKco~dʎOlef)o\_E s*, ~%ofHӉq~uuYOfg #oIt3Lbq|7,Eܝ˦ӏm!slM$`Mn5k,o@Dǘ{ uF_S<1 D2e>x?dWe׎OQX EMM>eȂߺ.\?閅`;#;`̭Rl|4]eY|#=EÒ3Io<{lJp I&wY \ow'ПwK=Lտ9$LCGݠ*M<8Hvʙ:0 \ʶUSce,y|M{6\dKSM{8{_8+{?w4D.t!t~xE@Xb3q8r2&[[}Ǔ\S<\޹` ԾѶ[6:#׏䦸'9ge(B;Zs*l Pκf ovU|U K\opkqfZxpuֆ;F ~Svs+UUXs EOf}' yLoSTq_/`%o V1Roñ!Y JG)- E=iMˈ)A0KhX ^K<,DĥY)˲R2ъ1_GhhH"Oak5qlLZBm''n.\(a1"+v me6 to☆I>X S0b i8WT8-VÁ4jWݢAef}æjn7/+Aivg|1T$WjU }wi18N!d(O5i@{6=3^$P4/U06ĢBCoVVFN߅# ܷ{gwfSz3>hkn}V^[H!<,rHly韍viضI̖~pՔMlL~/Wda S\dF^W n aQ2¤y@o-4ajk +БX?dchO3Q/_S|cs0(Rf@K ہJA+u S+9@~^86$"E{]u+f~Q( _p{=~0L¼fy~^ SdaĞ+}oW剝0p/,L\|3@s5&JmL5iU$7I`Qx]3\R8ƁD+<+A+c}Lt57[ )`⪠O|8]v2MKtb/npfdcq'j-(^갅1>se]spԹGstCraUDA@mO%jWj&#*יٙv5ؾ9M ,MhtWfAd/ضTǷ_0'uNJ`Q KoSǻ)pъ~0ӕrn yyC}fd| ~z@?|$/W&B˝;b4j?Dy{%R#[k.s?*7y^zjrڦ5[>e VpC鳴$ɹ,4ba_I?0.UŪ:PrZ_W耡d-1 6i GtrGx>-2m!=g gjZuOt-5l}oo~0{|}Ь&g۸$!xJt @Mq灤[G[]'ZrtE⟕Y}2$dN'1_ SdN]bN/!-b\ӄ:3x$3iuh LuzVkT{m>8֣A`|dqCWZ3&&nouҗRz<;Nui &e7q1Ox?jLiY+&eߖwCVs,#^WbzKOsPÁdkeudEMUocL!Yf}6?M3΋URswX3}K*:_$uI|c^"7}(W  $t}@t8^?Ͷ317HB,2ඡe'DBӽ/?9C6߶ UQ`&9<%5; XxyI+!kaO& |lqe `tޯ@+S#刜hc׳%mt`@.^9A(y䶆ꦔ\*e>Do O$bYBO\6ҹsؼ3c1u Us$vNs"&QvT*v~}VG.-#iQy>H;p8ɒV['}ɵ*ndŘc} {q'Ҋze"߻xԅz۰ؚV4nlp!?'``{8$_@mg:HP|TM-& ,bۃڶ*lL^bzk,sjh5$j,#B7{Fz~~^KE]艮oyLDcXE'Y?O~wp) Wve9dvVC( o~|5)ïyTCF)MZ KЫ %^!l ~0M*i'6S{gxYڼA5lC%Yv4¿Q16I jc],~3U-݄JnO{F 㡏 kc;򗶼zVjOb^Gb毕Hh#佬M3{,l ~dM Yy{`M/sQ'!ga[پ>I3l3v ;dp|d6d/7}ݴ^~Ы.=K;xh+^co=/|occF(֌sN!*"?hz_ZϼJ=פR7{)LjXSO6>sADZu[n6\9,W6CgNV{a<| XP4[v] oY 7xd@D/x. KqSֶf|ڴ2xMwrPc#s;$yb.=a}Ky~NǷ1"ѡAPpSkL?JMљ,O6 EͽKf%20k}w}:xGG Raqq~~"~gKf[QƊjL`HL*)P+xC/>ӽt_W՗`J[P{b oq똱 =NΤa4/ed=ɼFK{ys*~ب]"?~yPS'ߝCO_I{i0b}C;DI 7nAk^nm4x){V3/9rEN(3ڏE?|sAcg3+UӈGKB!MS`9~_@gKKVX$D8X0HG1%RG )Y灀3/)bL#m(]KltV凐xWӇJ9fZ"/!8 kDKeC.U ̅iv qЋm ”Ҧc\^Y+4Ĥ>tRYx9i" '6)Kvk3gVӥ&+iIFi+^Ûe'z[ ـW7't(mHXXؑ?J^4Un8j:/ݥUçJ)L%g7ȧyHb8$:J)rO=g. ?yՎ gfJ-h endstream endobj 336 0 obj << /Length1 2453 /Length2 17103 /Length3 0 /Length 18547 /Filter /FlateDecode >> stream xڌP cݝ$Xpww%݂}d+ז}NCFL'ddcvcgȩ01YaT-Ò};XsB.w|7H;YXLL܌fFFsD͌rik,{~PR8hrY r@eC3PP::r30[9؛S\MJ@3da*fQ(;K3Cû,% PZX?`goDf9X[Y,qYzGWGZoC}Kw}g}3K}wR }Ww}ffkdMf1k#++D쁆}wcp-m\=ͬadˠjmf]Gft122r0v)*nL5xyzz8;N@/+21 @3k?bۛǏ Ofdcm#fVU6:V3 _E} ?ɾw ;=m3_ 1\o1;YZ^our|9Mj,jwAF9 MU5Pcbd?2x=G/}w7%cfc2O3} 1^~ A0A\#Az9ewN?S΢1>A?T{<; 31p44#ge-~ 3?$%AIZc?rو}4X?1YKd{J,XZ=?iFvN?Q#k]oY=1?i7h/wٿ{Ga/^K=} o ~2I?w_gNo{ֶ'nͱtWr_{glF*b[LL*{R_qPMj}']l/g\5ޮnmt;;?N2t__׷ h4och^ZυnoolO-c#"T"UUPP72ыIK=THk'gX6I>|:};~-d9vNyh.u}+{eK"U#͒da@:@S^"͠fOIzF|d5VЉCM~::E!|$Q\HE1G9A|ƭ%+hi%1JVgK]k{Mc".\ث?sjOc$ %汿qqr+srV;>e $&b.Y`^BZc>qj;L  1  l( LW̗.*!eqzWֳQN'w7˄B)6&"s3Mr00xR+FSm⧠cr!]OF(MhjOO f53C}o$4wx5k  rCA1ƾiDJu!DB&!aZ7kUda ? _Ww (ʔiUQo|C.w[5];eTsKsmu*6fO\T+v$au -HW{FGϔ9xd$QÚ~CKЌ\ UFe2(*Zyh'`AQ&1CU$CP,U*ڪ/VڀaS動x/EAf}r\Kf7ALU'E0za`,ڸ,}> [2lm+1R rÔ%9~D2Jα^:i"hIJd89=4Q!`zlJDF kM/?窄*Suꢿ$ WhCQrwQ_yz>4x]d'foɘh(T8S#* vG51-L bMkySyXL8=:JIt݅vP:O`L&.̝ 9,e_9Wݏ6o^ sנh,?f 76og19o~0zk-\5`<[zw|UTllrJakvE@HIQ=W;R L}ۮc"+l=CӁJ>,̆;YzHFUOڣ60öQh%4;Hya}m8?.([EG6[zRx:Q9L 3_@aZLrd21t% ~)=BzĊ HG8 $ l MEyZnC0e f%DA/ٛts:+>v)=5𲯟,K]F+UmNJ**nj wuѥM \G; L'Tvqk纴@@EPum@vëDKYK~Z6C]K[XPچn RAi0ߕ}Q*/f8UxKG~H-M/rj6&Õ*G-ۂ앸e4F4P3/~et4kFesM# uin0t^e+rJt!; C'@jAD@A-֙^.|ZfpΖU^2! 3︟<]#Ԍpg'V1vfHU"}Gf=HO<`[Jս?w'_3_(Q&yx87]oէBr@.Q .v5<ܷƷ Pc@h0zחKQ3͞gm"'FZ lߏQgzF. x o M횤_@R 8# 65GC@ y96G@_Ջ{Nഋe}{A!L8G1≱ZC.xA0mb4y=n0msA%{*NmZ׮G)wG;֩0>iUB1pՂ|*N@2(wc =1>鹺"1vUֺ Ґ9tʕH}=X{c %i#a&Y}I`rP=-80J~=7{ =Udwuw*4 1s7_ӳ_A%V6pAzGU]q;Ջ! #EA U{R\R2 K2k,>b,֮ӧ_ݕvC'nP>}ݦ)6wpQ2^eUeb3iݭI8F׃ϸ E}@:!3]Tݰ-ɟM{g9 8f'5*G 6ppޛW/MgŦ}+ds&T~ ,j´nFxC6|؋W$Zȹ08EcXiM #쨅+49˜4QkuKxEy-\݇v4Pj@ܹIT)I?6J4>_s֟v2u@}e@@#K7(ԅbl49m_ ;"9MJfOyJV0WmNavz5|3ӾɮOKn9edž௪] w7:#1lWcDSW 3ʙ%;ٸx8-' f - @ask{ vf*TÕJIgh2 n@rvե՟@*D`N6_n!""K'Guw`xiR <0RS ֏ƩZv"r&&$Lq;Z6璗!-tn K|د]YBY.*k NҊJb,\`  &L@NpưO}~~L/q_i$Ox .sLu<œu x'(/~o\r2Akg}-O_d!e&:ݽuUG:28X]A#$ Mi^(-q#6,4*A@O[l.yx@"EJ),# A\خ gcRA)Be4=Sf{?.PԢ2pVQ:YFV@UFKFˀX[Iڞ/\y$X:C_7^8\p70X"PYTb < Ox:9p Sqɪ*<1 SqM^﨏-&lŸ4%M|s8.2[3)cKSxG%*<-fÜS3LS&o)k9,1^P#} f/ 1b&Ds #Q= !Qٗ xT#ʐJSܬ5!FْԳ'W){OuW}Х+hQ`}J@g*}K Bn1L\6p= $ix"`|nOZO:tLl r((Rts R L!F3PS>&L6 ۄQ@i+0Vլ&4R + tM,4mzmws6$gNBisSvL,8њSCl!ƷG`(zwuB\|!q3؃菏r#maw^N>XW?kn:ޕ07z tN=Wy;ޯ6o`߄>\% N毁pCc7d;6M~>h%awO0g)5Qh )d+œ0GcwB)ְ'yq|\Jj`l  KۅıWõNAe!Beöa""_KDH"ۍGZkNx\&7n`R v.X28y񻄖qY/y|bks=*vZIA%HrΡ; bJ>@ҹMf(bF}egWRՑ:2)Gf,\F4C%=McK>U ՆyYYx:;&c$ߌb/۰HXrwUV) ,-xZ298'1k:C:r=\b}MS`Sk;jOV`X⼺'^/:-ަFYBf=( {ޢqrZ?V ~GI{l!9]xK4aI$@ģ<_1O2 Ciop]4-Kbd~ZjnJQ02HBVCBPyA\-+(cΉgNz6>T^dFRS/֨~$9jjU#& zƈYͶp{. Z0"X+G 7Qz{Ɉs6]|~FnHSW.Kych|iJvtNȍV45M-3wnĪ;}'{7P.>LV۹5 5w\ 2R%퀻vha/H}Ƶb8[J.(aEO~쪄S*JA__uޯg+}ݯWA#HUEILRԪc?yϢ-<'`&m\&Fhc-RkC~?=̭@ (уEРdT)՟Z7dH~R]8+^-boQ!TՍe5'xjtA-x.Ea0ǭڊOj0ϫS<`tu#9?X *3& ö? @$ W$SVWqic/6g?Vg"Qm )~HƾvzʶLmH5yEplp!]T"QFny&g1w K]Laf[<3Ic3~c'l.Jn=:),ŸXۤ [:{VHhhƚK*,oȉ_b;MqEIĮA}-mi1)Ryg7(AC-Gu G2%f+}A_deFQl 䄛ҦL~W}$yO]V-3EHr /5 ImME>WBkU݁]GA^ bO`hO&W~xl OdB_ C-c.b?cŒ6b9YU,£P g7t ؖgѕ5+͗J[a>/ixe߷2+K75+en_\xIz??)l5%A=A͡N {0~v4|pN('b&uE+U,s B#S*gҫb鍮"aj] %,w81.{>ȫ-*q 0I!dǍ W9Q~nj9*EHeOig5m7,z{J#}&x3L83P_KC2OQ+k5} m 02(*B wÒLm2Isq wDK xL~T_nWQ%mUvBcɨ6rz4]^@j8~4~aHum?4EBT&1(9BlW(_eӖ̊Z6KUrJi&:0Z2|#+]]F MN2$< =Bg[TZguBe4Lh❮'7Ì x%Ԅkt|Bv:Xߵa^`FR o}iJQ-.NS(/Kd)<+|gZ~2~rU[[Yc9-mjHh[ nq¹9D5]$/_dl"b5uEu,rxz=h锎#M8KR `48Q :F8R ϖqaJ}_=s^TiJtS?K$7<qp;v1ᘏoBhz3oYM)5L<@kGbK=ª`xȹ.HP+]P%r6ţ?m=hCz y8yRJ }J<~ 9^`ht cz+b>;aG,|k.vm @pj[9#?y_eT/_A$OrcW2mvPv`ϫ1kPI#H?~j]->oVOc&a `WgGT\Ы|oc+ޚQIee7ƘZq"{P#㾱Ċ'1WlX4){oi6R@vŊY۔h}'Wp~=Qoudz7z+>42RQ9=f.~D qljic-6*X'v+ 가|N֟mjr nV^9ؖ%X䥢#7`*jpZ&|R!k7~/wNF)9=CPe}wdnkcq0uKu;s0 ˆ%C/t3Eo>Z jZx"tQb~C73L*S/`UcpJHsk6C'1Z%_iB0*1$*1iO~ڔꤠJ-ӣ2VT?wn=#ui{C<5TvfP0y~dL6QhJ˥ޡ!@TgY2Z(5G<$O@sU @v&'6*IxpT*)[ikmC4XsoSۀ;&'BOB!b" 6QWx8vPv!Q'42eP#5E7ZZTacj|?Tёj5 .xJR,[ g$!nx S\(kݜoL>+Ng? biz$ ~+b,6G6YLmRS{ōwP;)PjSaK=K紼qN;Kk}T̫a;Y=& J\jF-Q\M&wn?Pq屝JEzazE1 -+֓t=e?a-\7>7&L"UZ{\@MXv҄.F̼Ϥ{Ւ& ) n n܃E(0eaŚ$[Gy;uMerq#6_ Vdɔ&d $$< W7S}h M\rAQ54{h;QV,Kn?%ơX.䫭XemoTikIfZgpOY mA[7% ( O?BM 0uNfͅ7 x.\W4CtЂY^v+&D _[悖 >7RQZ$˛ \$DPp߷r-fP ܹj;OHyMpu 1&W˹|"_>O-AtrG<LX{^dDnt}?Ru#hM4^\@F6I/猖5ˁ`+$r;$!e(q W?v*ѕ7$Rw.9';g u 콐)>iNʢuJ@}R9Pzˑ 1ifeB:_|)z3ﰳ mit5!~2rqplLg4GBewa7W| jGmBs!]^Տ;^`d MbV?N\#ULN-Vvz24Tu%0ҩФ/QZAkR-g章 )1ͩ'˧ޭ eva- O邊a?$OХap-X[d] CG#)õu/ #KCZ_m8+]WTlVȌƽR52IӠ }/yғS1W5X,W0ʧ9i Fbv ľYzLo`Ci,9%d.-~c?7)<}ed"&2jp^ t~U3HU9B1Yel*8mj:5S8z&.T7$J47z[(|Qf8Y8h0Ɂۓaggkg!t-*{:O j5~(4Brafhy,nk15t4tҝ:A[agĨEnrqQڜQ`N 48XLY>Y>`7l,vQEHオCYDP25b5?fXlt7b2}h;*o p@>NqI]W40YZ&Ack0IakҷLufظ9 `Itz|ur wMy[2pKy q]Av tϤCPÞF)_KWt_԰2h wKcF?OO$LyxN뢭!zb=3}lA$%.i>$R]~ K( cWv1V+ˋ\gOp^=-ѺqҿuI"nَw98ݝ^Fu8#YfX7h9)Vrz * J-jg4E^t3cP`!f}iE7%GXX]Ni"/IT@m: <-e,?S8p\C<'כ׬+JӒA>H!mC- <ƹAk_;8k$3YvWJ!>ح^󒉞f8]c cHyKC>NqHlAR<ͥ>&白͂ d1! zp>]/ UHőf0՛֫CG*~+O V[zsgbp(G! V%;Z#zT$tYdHʹ\7{^cW+b/ G0B@I^ K&G)7҆B&^)ǀaY+Of[00|+M!7(W+LcHLUΞqmĜeMiDGci)]V9Ɩ$%?W*-s&wK0|zS~J%oGOQ~(2!wŕ)J;g)CʔX`+:80Խ u$IP6,kF#КJQ eSfCb42Xjvizr}M+bl Iiͷ`wӭN_иAe$j)$&D!jmN޻6,]L=jH]UlϦFXoNb_-D[3?RqC{qwV|.&Ƭwu&Fz\ -|-Xۖ'u\WUW{%LzR&k5LK1n<6ԟ N8ɾj ۱ym ܍uVxݺ?VClP/+b&䮷ysZI{}2 nH|=@aط<~u)Vl,)e 9%G++Y 3FO=F?Cpq-"lQoCk8h?=KBw_\{S\QeF}$}pwwA/I/(.U8/ )diN6Gjt9MQC5.m}~M29\KC~\X.72}Iz)O#o "uZF'R%G{;nkmh_54WqpGbt4P>˅fleS@7ZURsLsQFo~S&!i:&p uW}S>˅9h~@҉j'z(]KI~:hNB+XxN߄."U{Pk : vvaSur u}Ύa'r~EqV7fY;X(~6+1GuffԌ6GI9kD1~g ؋=ҥam?NY-ћmzFP7ѭdyU XJ+a4[o^ݗ/X#*~?ȍ<q,K MRI ma}X l*o,J>bSG<@Ӆ OgwQn*zUt>in|Z*TMUvrtHIti{%l\z@, JXewFTz8JynKPƨHB Λ:MV@t74ƃ@po!m5D;$ FYk0;?=Qk1$>q X =M?E驳w +v Xxʁvr~5l̠7:cZUZ@Fs):dvBOujxU"? sh+/ Z_&j K"LAݶ۩/ڻꍳ|vUTFiϊ蘊B: dzjJʱ?HyPrd T faմxP? -P?>@ߖ6+1ǹ׋|ocP nL( ^fjR>H]unGi1 b2O.`㝭9~`m8On'~΢Z̺kkMf޷nRi54+c`P`y_hb<=eAj[yZd0bI%]4X=gALF7HATh{A~? -{$/w&{xejOOp,=?p1f8~)<60+sPH7:TlEK64 Jq'kإH' O*:_bDBQK/n`:zsgnLHA=A566|F$a\RS(cŸMDVWt)Q6,*vp ;J>(A[2ziOJ sY6NoO*A/"tColy,Vtmbbk6aS03kLn8G00l4zm endstream endobj 338 0 obj << /Length1 1551 /Length2 3121 /Length3 0 /Length 4105 /Filter /FlateDecode >> stream xڍT 8.d7}ɾB$ј 10d셈!-bIB-ACﻮf>>9.q·ʹ ŀH d/O4E@w,+; bc)M~p4MahsPs}Kc ݖ:uu @,E+@IU35[W CTKҏv , 4݂/;a(-MYO"C_n/?H/,.`Aӭ/&Mu/zkBFvA9H,dǎ6 Ńved0ؿ|By^M;.;hGKPTD"2) iۈwD @2-u `D*PmRV?<Ti>O]+P7@AU i -4 %A7-!7@;i|Dړ#Xڨ~A}qAij:ٱkB,aԀo&\OcuQ>?Gxo<a.AWԸߗ?c<6C2E8ǣݹ?WoP;%yd|]28ZYr>Y9}**,tU:תut6%-h||pjjp}o^ǫӬfkӚ/δb/ x%©"$HX'(cZ G+?=5n-ТUr?4&kTd`JxqR -D׽y@K$IIcͼn6 I`xPBy\^)CtDž\o,S&EJ.,-6}> ?v2,tq%/?$U:{ӱܹs5R@?aQtjVW>QX*݊r,U#8ʋ!tRNVBΘڌ,BR"* .w;*>>ןJ/#6M_\ 9V[w/jK/ǦTX.t,ju㜏2=b:S\C0h*U*\*증.>>ֵծY*#jKI\dD0FEN9-g>֎?Qm0pzq̗*Ӭ:yI鑾 קzubӏ{bE8`4=ڏm-\3|xCy>m~&,mgXaZ8%p@'P̲79:~b&t ly7z?nc:<\U]RRbQmuCMדge%ΜjAnv{Qo&NNc[~\D-;=b8KLP7|-ϛ]bxiYNGz(Elۊ,Upq+JI"''d4\Bb+gfBBz$BV>xCԸz3'751PbԤk ?{[KnPV ,>3s?=)zss<8B ;_U uITSfa@vX#)x't\ex{ZDz6)pv9iYe< WhXx?zlNbzSWā7/g]ZsCqd>H^I1^yI|bRlħI.W-24aΗ-1,; d8bYxm=r6%!kAThOH?^_O)5'/kTDM;uܹ:EMta}pd}4h|U%pg+Ԓ'{ O?b KWm(stnd)OL2>ˊՋ=@)]e(۸P]9iyUo*`@_ r@yS_JPfw!e, % ~ul1+oDPWM&ȶQ] l&O__zdQ-Ff٪-B_F_\``}y7c uLʑ>|?#Vf4>^CyNQ&OjK UeAzaO *_RktL\w9q[&eESX~'U##wNh 6ۃK+zXwGfٟ'8s~47jꩩ Yes=*IϖU̽si2#6spvLì1V sr}óY2FLY's>2χ߰۬D4>ЅD ~ۻ !1MTkYJ:WUgV tzOYAPzAFC"_f[WpSPMI:I=WPBTS,.Ə/›٪Y7VI 9]u(u|j/1pid#W0L6I. UOMժ{3yFoLhm\*](3 U/x-:[]br檒d,52y$d'AW]=B,Nqx.Tİi[xbw;}Vï]"Lfa|9lr( )'O.Bxn}~0#xQrw+`77sF%;\2^yyL5Jt[pHE?cHjOb@'0L.k$ endstream endobj 294 0 obj << /Type /ObjStm /N 100 /First 889 /Length 3137 /Filter /FlateDecode >> stream xZrF}W1-a-Wd+؎mɱh H|EI L鞙@a}3d23 ͤ㙒2^d  I GMǐNdVZ,TEPCo\,Ը8̣* Z@'\+70)+eBr( e%0" /+ez!IpnϤ2sAOJ;!oqYKN-gX T݅YpC %R L 6SJ)X5GD5O KLB5YA802P!Α2< * =ÌaE2oA#`n3hQdABA;D8@@4<(< VRpm@r>$j%Y)\ArIA=A,(1ԃ/p]i$JlZEB(?/dc.RȂAs@hJu2$ISRhÓ7zx Av"A*^g?h*(gs$E6L> ~iT&טA9lΦeAAJvIv&HˁO@b/QQf'{yp[9~YG dX̮bWxyq:>}NhhL.V^܇m8D7Rozl[;c 1R3Fީ jdPwOq~?W͈gaIgr/V=L\tFn έNLw RMO+.M;Nު=~0XnKQsV9X p`tēXvITt:&7:F{846@F:[r7o2*宮),V!Wu6<Ǵw,n'TTb|EEϱ ,:T{Jk;S>-h^V+[v۩)!mzxCݶj!,̵B;Bߌ[ݶaq\l3F\KF{sߴ'ҹ#dc?N O1UqHezDVmL+DNuksxʨ w=6l:FNb1^0:sJrQW b4!)ECԣqHGsZ OF"& F(>tjc*Z/iJrl)ۄږ kETUЙC˜ގ rRYIM-y߼0/+H{.ҳrLҔKSo~bB5-2ƪ{L8'Q`b6_ƞ"~x[ԶE'r8g"QY\N] 9?}=g و}#;ccMds`%+EdCѫ6?qN$E$ЗC#v~f1{ž_3^WceM}b707Ywο_3&ŧ2IuG)XЃ-YY~DIRp,/`1 Lu}c_b>kGo~yqztSUj%N/N{B/#d#PJ4j{wG2OGޓGxWit8J6lt\ulzޯfh6AƏf*9+&Ëj3uw94%Aho ^AEc@.Y5ݏWd|4)FN/G^>} 7.2WQ'`+D9:]9'[.oh<&.\'Dʊgp(cTrʗn~&ϫ;ټz:OŢڋjs:eĝМyg<;x +,-Hsn^]#qEߊ3m?7$wt<.[͵XfTEIV8gDH{<{3fE&v7[Xuq]{DٰG݃=kOƏoC'KsEp:}gt%n>-R1wW[BfҵZ մ4]뻣_KL[lˆݞ*յ'#{{˂>\:B+.UݦO ҦN/uud}P- /Uג1Z}YuvUNP-*.Q${Kx ժ[hFԕӲy%x][ fC,UcXZKل^ZG4,iP 뒵4l MujzW/aɚx{ZįKKއ%Za 0ۋ[XrVͶe[&Vgjy/ŽX=bq/B{{V܋`{ZsX֊{6p/t/lauX5_Zr5b:D M,{WXbZemzDˆuXreBq-,{ފuX5{޸uX5{ެ^^u{{]s6p_^ǶVgu殻Ptkו7Y endstream endobj 358 0 obj << /Producer (pdfTeX-1.40.16) /Creator (TeX) /CreationDate (D:20150924110225+03'00') /ModDate (D:20150924110225+03'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) kpathsea version 6.2.1) >> endobj 342 0 obj << /Type /ObjStm /N 30 /First 247 /Length 1743 /Filter /FlateDecode >> stream xXn6}Wyqԝ@HhNmk"ZqڛCV6I}Y$Ι!W %$bp #21g1g>{I`Ӑ=e$<&QObz$ I$ac O8!(41#c@؀E~EƋC !% ?d$<#'aa@(`&XR>=8y\| L[Qʢ69m)7"sșv^9Ļ yW?E= fZZ(@x@ A#(6MNNG9iO;G;Nh||D:!w=tq 3ldɐj>t9Ҝ̰t$$ qGk<Fk;TY]BEWs݀!.JVOl1Cg#h{8B3F3&b[4xy7J9ELьdh&`,8>DZH4U!J%+c/ti.YVJ/GP8nbM\fęȷU5B0D-Lvu.uScsX8a5f` L dj߆UbYy݈Y"+cBRBfSx-.]d&RDi>"5:|՘*13uk35p:`*SPQpլV A zo{Ԩ,6 ^ԷJE.33wF(EjQ`d z0Vjr\|B:"2䯩k(7U`8qݨ<IcQ"ݕnTbM{&b;dG8i23#}] wu >ɜK)׺HLtH f<]]e kUXj.JqyB} -@"Ц̥Ю9@-]J L죭d-_h) u(,V7٢Bճ.˪/)"E 5xGշ0S۝ PݠJui2 vuWM>ʽ(,U:ZWV84ˁ&:WsjC1.:@ɌDJN{pLs= IЊ 7$ORM)mA%S/^ɵy5l5e`?N?]{{za02SG/M:?T($Xiein>=~87I׷t,?;PثnUm|u+ySkq\mCspɵqs3o]QJTYu en.%;8b-USfg|Rd#bafΪQ@٦%?"؁:er- ɔ{cOwc{aKd{NVLjv ޴%tVtFN'\OLwhLw9\<\/TjQ˕Sl:p\+Bb/khw;ܱηPjx 1zŨ h)`~%E[hx0q}놁&EH'4ؘmw;Lݛ4~Js?]x1b~۽z|-Z]翞.h0㕹Cd Y8P$?0]Kr8>XIMS Ttv0j-oG-/) endstream endobj 359 0 obj << /Type /XRef /Index [0 360] /Size 360 /W [1 3 1] /Root 357 0 R /Info 358 0 R /ID [ ] /Length 810 /Filter /FlateDecode >> stream xNTQEyRV)ZTP pi8vıN1`bLL֞ܽ߭Ws !B:XHޕQRPߗ=%0_=JP΀jpԀZpԁ8 .4F.,h-2rv:AWA^BOUhKρٲIp<1O@-ڀN0Ɩu0WSq&\Sզ@oO,i<:UpE5fԙ[S".;Anx"){j o ">r=xO1!!r=;@ <<#b39ڗ׹K:UJd5N][]nYdN]* SrhD0TNd=N$][ZA8]#'ބFYd;Nt4د ;[y!خW午~ 4zݻ}tB$ v'NΝ pIW$ +8y L|(o+B !qDTĒJWC7-e1WcaI4G6[X+@g%Ӡ‹XxAe^t[x*o\` }GO|?Zi5aVLk5iՔS f_~iUV|`ŒB/rȜF>Lldȥ#AFGnsLKJ;?X9 endstream endobj startxref 147287 %%EOF vegan/inst/doc/intro-vegan.Rnw0000644000175100001440000003334412600727026016044 0ustar hornikusers% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- %\VignetteIndexEntry{Introduction to ordination in vegan} \documentclass[a4paper,10pt]{article} \usepackage{vegan} % vegan settings \title{Vegan: an introduction to ordination} \author{Jari Oksanen} \date{\footnotesize{ processed with vegan \Sexpr{packageDescription("vegan", field="Version")} in \Sexpr{R.version.string} on \today}} %% need no \usepackage{Sweave} \begin{document} \SweaveOpts{strip.white=true} <>= par(mfrow=c(1,1)) options(width=72) figset <- function() par(mar=c(4,4,1,1)+.1) options(SweaveHooks = list(fig = figset)) options("prompt" = "> ", "continue" = " ") @ \maketitle \begin{abstract} The document describes typical, simple work pathways of vegetation ordination. Unconstrained ordination uses as examples detrended correspondence analysis and non-metric multidimensional scaling, and shows how to interpret their results by fitting environmental vectors and factors or smooth environmental surfaces to the graph. The basic plotting command, and more advanced plotting commands for congested plots are also discussed, as well as adding items such as ellipses, convex hulls, and other items for classes. The constrained ordination uses constrained (canonical) correspondence analysis as an example. It is first shown how a model is defined, then the document discusses model building and signficance tests of the whole analysis, single constraints and axes. \end{abstract} \tableofcontents \vspace{3ex} \noindent \pkg{Vegan} is a package for community ecologists. This documents explains how the commonly used ordination methods can be performed in \pkg{vegan}. The document only is a very basic introduction. Another document (\emph{vegan tutorial}) (\url{http://cc.oulu.fi/~jarioksa/opetus/method/vegantutor.pdf}) gives a longer and more detailed introduction to ordination. The current document only describes a small part of all \pkg{vegan} functions. For most functions, the canonical references are the \pkg{vegan} help pages, and some of the most important additional functions are listed at this document. \section{Ordination} The \pkg{vegan} package contains all common ordination methods: Principal component analysis (function \code{rda}, or \code{prcomp} in the base \proglang{R}), correspondence analysis (\code{cca}), detrended correspondence analysis (\code{decorana}) and a wrapper for non-metric multidimensional scaling (\code{metaMDS}). Functions \code{rda} and \code{cca} mainly are designed for constrained ordination, and will be discussed later. In this chapter I describe functions \code{decorana} and \code{metaMDS}. \subsection{Detrended correspondence analysis} Detrended correspondence analysis (\textsc{dca}) is done like this: <<>>= library(vegan) data(dune) ord <- decorana(dune) @ This saves ordination results in \code{ord}: <<>>= ord @ The display of results is very brief: only eigenvalues and used options are listed. Actual ordination results are not shown, but you can see them with command \code{summary(ord)}, or extract the scores with command \code{scores}. The \code{plot} function also automatically knows how to access the scores. \subsection{Non-metric multidimensional scaling} Function \code{metaMDS} is a bit special case. The actual ordination is performed by function \pkg{vegan} function \code{monoMDS} (or alternatively using \code{isoMDS} of the \pkg{MASS} package). Function \code{metaMDS} is a wrapper to perform non-metric multidimensional scaling (\textsc{nmds}) like recommended in community ordination: it uses adequate dissimilarity measures (function \code{vegdist}), then it runs \textsc{nmds} several times with random starting configurations, compares results (function \code{procrustes}), and stops after finding twice a similar minimum stress solution. Finally it scales and rotates the solution, and adds species scores to the configuration as weighted averages (function \code{wascores}): <<>>= ord <- metaMDS(dune) ord @ \section{Ordination graphics} Ordination is nothing but a way of drawing graphs, and it is best to inspect ordinations only graphically (which also implies that they should not be taken too seriously). All ordination results of \pkg{vegan} can be displayed with a \code{plot} command (Fig. \ref{fig:plot}): <>= plot(ord) @ \begin{figure} <>= <> @ \caption{Default ordination plot.} \label{fig:plot} \end{figure} Default \code{plot} command uses either black circles for sites and red pluses for species, or black and red text for sites and species, resp. The choices depend on the number of items in the plot and ordination method. You can override the default choice by setting \code{type = "p"} for points, or \code{type = "t"} for text. For a better control of ordination graphics you can first draw an empty plot (\code{type = "n"}) and then add species and sites separately using \code{points} or \code{text} functions. In this way you can combine points and text, and you can select colours and character sizes freely (Fig. \ref{fig:plot.args}): <>= plot(ord, type = "n") points(ord, display = "sites", cex = 0.8, pch=21, col="red", bg="yellow") text(ord, display = "spec", cex=0.7, col="blue") @ \begin{figure} <>= <> @ \caption{A more colourful ordination plot where sites are points, and species are text.} \label{fig:plot.args} \end{figure} All \pkg{vegan} ordination methods have a specific \code{plot} function. In addition, \pkg{vegan} has an alternative plotting function \code{ordiplot} that also knows many non-\pkg{vegan} ordination methods, such as \code{prcomp}, \code{cmdscale} and \code{isoMDS}. All \pkg{vegan} plot functions return invisibly an \code{ordiplot} object, so that you can use \code{ordiplot} support functions with the results (\code{points}, \code{text}, \code{identify}). Function \code{ordirgl} (requires \pkg{rgl} package) provides dynamic three-dimensional graphics that can be spun around or zoomed into with your mouse. Function \pkg{ordiplot3d} (requires package \code{scatterplot3d}) displays simple three-dimensional scatterplots. \subsection{Cluttered plots} Ordination plots are often congested: there is a large number of sites and species, and it may be impossible to display all clearly. In particular, two or more species may have identical scores and are plotted over each other. \pkg{Vegan} does not have (yet?) automatic tools for clean plotting in these cases, but here some methods you can try: \begin{itemize} \item Zoom into graph setting axis limits \code{xlim} and \code{ylim}. You must typically set both, because \pkg{vegan} will maintain equal aspect ratio of axes. \item Use points and add labell only some points with \code{identify} command. \item Use \code{select} argument in ordination \code{text} and \code{points} functions to only show the specified items. \item Use \code{ordilabel} function that uses opaque background to the text: some text labels will be covered, but the uppermost are readable. \item Use automatic \code{orditorp} function that uses text only if this can be done without overwriting previous labels, but points in other cases. \item Use automatic \code{ordipointlabel} function that uses both points and text labels, and tries to optimize the location of the text to avoid overwriting. \item Use interactive \code{orditkplot} function that draws both points and labels for ordination scores, and allows you to drag labels to better positions. You can export the results of the edited graph to encapsulated \proglang{postscript}, \proglang{pdf}, \proglang{png} or \proglang{jpeg} files, or copy directly to encapsulated \proglang{postscript}, or return the edited positions to \proglang{R} for further processing. \end{itemize} \subsection{Adding items to ordination plots} \pkg{Vegan} has a group of functions for adding information about classification or grouping of points onto ordination diagrams. Function \code{ordihull} adds convex hulls, \code{ordiellipse} adds ellipses of standard deviation, standard error or confidence areas, and \code{ordispider} combines items to their centroid (Fig. \ref{fig:ordihull}): <<>>= data(dune.env) attach(dune.env) @ <>= plot(ord, disp="sites", type="n") ordihull(ord, Management, col="blue") ordiellipse(ord, Management, col=3,lwd=2) ordispider(ord, Management, col="red", label = TRUE) points(ord, disp="sites", pch=21, col="red", bg="yellow", cex=1.3) @ \begin{figure} <>= <> @ \caption{Convex hull, standard error ellipse and a spider web diagram for Management levels in ordination.} \label{fig:ordihull} \end{figure} In addition, you can overlay a cluster dendrogram from \code{hclust} using \code{ordicluster} or a minimum spanning tree from \code{spantree} with its \code{lines} function. Segmented arrows can be added with \code{ordiarrows}, lines with \code{ordisegments} and regular grids with \code{ordigrid}. \section{Fitting environmental variables} \pkg{Vegan} provides two functions for fitting environmental variables onto ordination: \begin{itemize} \item \code{envfit} fits vectors of continuous variables and centroids of levels of class variables (defined as \code{factor} in \proglang{R}). The arrow shows the direction of the (increasing) gradient, and the length of the arrow is proportional to the correlation between the variable and the ordination. \item \code{ordisurf} (which requires package \pkg{mgcv}) fits smooth surfaces for continuous variables onto ordination using thinplate splines with cross-validatory selection of smoothness. \end{itemize} Function \code{envfit} can be called with a \code{formula} interface, and it optionally can assess the ``significance'' of the variables using permutation tests: <<>>= ord.fit <- envfit(ord ~ A1 + Management, data=dune.env, perm=999) ord.fit @ The result can be drawn directly or added to an ordination diagram (Fig. \ref{fig:envfit}): <>= plot(ord, dis="site") plot(ord.fit) @ Function \code{ordisurf} directly adds a fitted surface onto ordination, but it returns the result of the fitted thinplate spline \code{gam} (Fig. \ref{fig:envfit}): <>= ordisurf(ord, A1, add=TRUE) @ \begin{figure} <>= <> <> @ \caption{Fitted vector and smooth surface for the thickness of A1 horizon (\code{A1}, in cm), and centroids of Management levels.} \label{fig:envfit} \end{figure} \section{Constrained ordination} \pkg{Vegan} has three methods of constrained ordination: constrained or ``canonical'' correspondence analysis (function \code{cca}), redundancy analysis (function \code{rda}) and distance-based redundancy analysis (function \code{capscale}). All these functions can have a conditioning term that is ``partialled out''. I only demonstrate \code{cca}, but all functions accept similar commands and can be used in the same way. The preferred way is to use \code{formula} interface, where the left hand side gives the community data frame and the right hand side lists the constraining variables: <<>>= ord <- cca(dune ~ A1 + Management, data=dune.env) ord @ The results can be plotted with (Fig. \ref{fig:cca}): <>= plot(ord) @ \begin{figure} <>= <> @ \caption{Default plot from constrained correspondence analysis.} \label{fig:cca} \end{figure} There are three groups of items: sites, species and centroids (and biplot arrows) of environmental variables. All these can be added individually to an empty plot, and all previously explained tricks of controlling graphics still apply. It is not recommended to perform constrained ordination with all environmental variables you happen to have: adding the number of constraints means slacker constraint, and you finally end up with solution similar to unconstrained ordination. In that case it is better to use unconstrained ordination with environmental fitting. However, if you really want to do so, it is possible with the following shortcut in \code{formula}: <<>>= cca(dune ~ ., data=dune.env) @ \subsection{Significance tests} \pkg{vegan} provides permutation tests for the significance of constraints. The test mimics standard analysis of variance function (\code{anova}), and the default test analyses all constraints simultaneously: <<>>= anova(ord) @ The function actually used was \code{anova.cca}, but you do not need to give its name in full, because \proglang{R} automatically chooses the correct \code{anova} variant for the result of constrained ordination. It is also possible to analyse terms separately: <<>>= anova(ord, by="term", permutations=199) @ This test is sequential: the terms are analysed in the order they happen to be in the model. You can also analyse significances of marginal effects (``Type III effects''): <<>>= anova(ord, by="mar", permutations=199) @ Moreover, it is possible to analyse significance of each axis: <>= anova(ord, by="axis", permutations=499) @ \subsection{Conditioned or partial ordination} All constrained ordination methods can have terms that are partialled out from the analysis before constraints: <<>>= ord <- cca(dune ~ A1 + Management + Condition(Moisture), data=dune.env) ord @ This partials out the effect of \code{Moisture} before analysing the effects of \code{A1} and \code{Management}. This also influences the significances of the terms: <<>>= anova(ord, by="term", permutations=499) @ If we had a designed experiment, we may wish to restrict the permutations so that the observations only are permuted within levels of \code{Moisture}. Restricted permutation is based on the powerful \pkg{permute} package. Function \code{how()} can be used to define permutation schemes. In the following, we set the levels with \code{plots} argument: <<>>= how <- how(nperm=499, plots = Plots(strata=dune.env$Moisture)) anova(ord, by="term", permutations = how) @ %%%%%%%%%%%%%%%%%%% <>= detach(dune.env) @ \end{document} vegan/inst/doc/intro-vegan.R0000644000175100001440000001356012600727026015475 0ustar hornikusers### R code from vignette source 'intro-vegan.Rnw' ################################################### ### code chunk number 1: intro-vegan.Rnw:18-23 ################################################### par(mfrow=c(1,1)) options(width=72) figset <- function() par(mar=c(4,4,1,1)+.1) options(SweaveHooks = list(fig = figset)) options("prompt" = "> ", "continue" = " ") ################################################### ### code chunk number 2: intro-vegan.Rnw:71-74 ################################################### library(vegan) data(dune) ord <- decorana(dune) ################################################### ### code chunk number 3: intro-vegan.Rnw:77-78 ################################################### ord ################################################### ### code chunk number 4: intro-vegan.Rnw:101-103 ################################################### ord <- metaMDS(dune) ord ################################################### ### code chunk number 5: a ################################################### plot(ord) ################################################### ### code chunk number 6: intro-vegan.Rnw:118-119 ################################################### getOption("SweaveHooks")[["fig"]]() plot(ord) ################################################### ### code chunk number 7: a ################################################### plot(ord, type = "n") points(ord, display = "sites", cex = 0.8, pch=21, col="red", bg="yellow") text(ord, display = "spec", cex=0.7, col="blue") ################################################### ### code chunk number 8: intro-vegan.Rnw:140-141 ################################################### getOption("SweaveHooks")[["fig"]]() plot(ord, type = "n") points(ord, display = "sites", cex = 0.8, pch=21, col="red", bg="yellow") text(ord, display = "spec", cex=0.7, col="blue") ################################################### ### code chunk number 9: intro-vegan.Rnw:205-207 ################################################### data(dune.env) attach(dune.env) ################################################### ### code chunk number 10: a ################################################### plot(ord, disp="sites", type="n") ordihull(ord, Management, col="blue") ordiellipse(ord, Management, col=3,lwd=2) ordispider(ord, Management, col="red", label = TRUE) points(ord, disp="sites", pch=21, col="red", bg="yellow", cex=1.3) ################################################### ### code chunk number 11: intro-vegan.Rnw:217-218 ################################################### getOption("SweaveHooks")[["fig"]]() plot(ord, disp="sites", type="n") ordihull(ord, Management, col="blue") ordiellipse(ord, Management, col=3,lwd=2) ordispider(ord, Management, col="red", label = TRUE) points(ord, disp="sites", pch=21, col="red", bg="yellow", cex=1.3) ################################################### ### code chunk number 12: intro-vegan.Rnw:248-250 ################################################### ord.fit <- envfit(ord ~ A1 + Management, data=dune.env, perm=999) ord.fit ################################################### ### code chunk number 13: a ################################################### plot(ord, dis="site") plot(ord.fit) ################################################### ### code chunk number 14: b ################################################### ordisurf(ord, A1, add=TRUE) ################################################### ### code chunk number 15: intro-vegan.Rnw:266-268 ################################################### getOption("SweaveHooks")[["fig"]]() plot(ord, dis="site") plot(ord.fit) ordisurf(ord, A1, add=TRUE) ################################################### ### code chunk number 16: intro-vegan.Rnw:288-290 ################################################### ord <- cca(dune ~ A1 + Management, data=dune.env) ord ################################################### ### code chunk number 17: a ################################################### plot(ord) ################################################### ### code chunk number 18: intro-vegan.Rnw:297-298 ################################################### getOption("SweaveHooks")[["fig"]]() plot(ord) ################################################### ### code chunk number 19: intro-vegan.Rnw:315-316 ################################################### cca(dune ~ ., data=dune.env) ################################################### ### code chunk number 20: intro-vegan.Rnw:325-326 ################################################### anova(ord) ################################################### ### code chunk number 21: intro-vegan.Rnw:334-335 ################################################### anova(ord, by="term", permutations=199) ################################################### ### code chunk number 22: intro-vegan.Rnw:340-341 ################################################### anova(ord, by="mar", permutations=199) ################################################### ### code chunk number 23: a ################################################### anova(ord, by="axis", permutations=499) ################################################### ### code chunk number 24: intro-vegan.Rnw:353-355 ################################################### ord <- cca(dune ~ A1 + Management + Condition(Moisture), data=dune.env) ord ################################################### ### code chunk number 25: intro-vegan.Rnw:360-361 ################################################### anova(ord, by="term", permutations=499) ################################################### ### code chunk number 26: intro-vegan.Rnw:369-371 ################################################### how <- how(nperm=499, plots = Plots(strata=dune.env$Moisture)) anova(ord, by="term", permutations = how) ################################################### ### code chunk number 27: intro-vegan.Rnw:375-376 ################################################### detach(dune.env) vegan/inst/doc/decision-vegan.pdf0000644000175100001440000123435012600727026016512 0ustar hornikusers%PDF-1.5 % 82 0 obj << /Length 3384 /Filter /FlateDecode >> stream xڭZKsWViǘ8RUelj%Ň8p R[W-vE)>%iE<{uwA wwWZ[圽SWn]x_{^/lY/zv[|o6{n{mBql(x5Zl]B+:ܼ%^Uwjp0̈́+XWxD,dʫPj\g+\a!X\5\,9?>]lEDb/b7|7@Ӧna#(} mmOYwТyU3fA89T |;;!-?>7d#¸ڳ* VU$TcAZR56Gz\yf}GT 0Ө-xƭD-nQܡX"Q 5;I NY~+sʊiLqK cb'yktظQQG=G{wp;`?+,K'RGێ(~GGQk;z Au2agIxk %pOȡvz?#2<9S4QszWQ^,S[ByFu<ԻKoQ95-st-\Tlp5I]%ԬV;]IMs=1dv$8iByYr#U@3z+b/ŠfҊddVy-ɕժϏEOkR@0꛳}"2˽F#;$4`V5G#w,t( ~dBIFTSJP[K1'oLtm ɮg;d6Em=Y]?J 䆪+L돈[\P#&tShE4YR8XHG+(3fAq {G8v]B18jCCQkް7"AwrC&wCVf7ɱKpqTL~?(6GTk羝O=P-*e]8x"t'鿥S^~n &rߔ=EbZSl燚c!bX|+*G"kܻ71ൌsReXध?>+YDkUWLItBlH6ū; cdhN5u Z3䕒:RFфoY!Qapcoj,za2B\Elz@2+ੋY $@̎ưG:UAzZ 6 [LHc(st$ @3d&#A$[Eƴ $u N7DX4ƲfQ4Q< @ ̈́ H@S>s͉QUݭg B-w*?AӪ^RVfvNZZKz)%@9(6^3чAHwA`뎟"v[(Dw~8g[A,IDV7h'aq'>35tb|qwa'p[w_/U^~<81ÓX=#vMצy:H_$?kSݡPbFȖs\+3sG+8㥺, !c6rQnEi8CT-jE}5FDAcN:9m|< է OB uϬKEݦ?˄`rlI1M/2u[l(cKeAB]x;F?[󂪛IYƣO&s$f璵RgELX9l\}G+2Ne1ީI_. ># +?VW2H7&?%{9Vs6|&gݬCƉ`Sfl"o9ugKЙ\m,:BJTDn%7Җ\>lE޼ >lMn,l-8P),"z'J RF7a4rRNzc7DD(97d_ҜpFCזVF~x8M|Bis+x =*ir[jȬ:"`fj3^pKK-%ue܇e2DXAlxX- ,YKLngL,LgX:._LheQ:Ʉ|T`taMPTSr$u (Ȅ)c)IWV!W.3uqK {}[WlրXص A>lPF`spI4殍)rD|FAυDD:( ^C҅}jGcW$ 4J#Pzex@ o%$ Kw^A0r|첏`, Vdo$GrqL^zngnw[zxlĕZ.Wư5&s#\+{|g@,<2s ;WQ]MJσLJrUճ_Pm=pJnkH=$oC;=vC3͙lܤFQ7RtJNMIAm, v[3dQ:囯Ex9Z)$P<0n+8XpCN0i-v/wʀOFUt꺎]/J47 endstream endobj 106 0 obj << /Length 4305 /Filter /FlateDecode >> stream xڥr}B}MLZ~y\_yA3}.ξ, NDCRڑyuMo^~-t|Ƃ/GU*qS"bjp(*zXe:?2Pk0ljiK廥| Õ9-[n A Δ[g4*b8F$N>) h⃂j¡@V&J[R*]q.G "z) |`p}P%0W8\%#]LsS|(C kwm$i,Z" | 0}BlʟZۻ2Fzs޵ZaGse;4/x0BO"6角Fgbt`#{F.L9q_%SHqKQ H MӧQ7Qyq`7p;U9HC[WsUV:qHy%ޢ`;x.Q- xCWD\ }SHe}3H`FiInQ؈8Pԃh%;H m/ Z2丅帄-O:I8Ы\&Fe3[JtQַׇIU>q]̀ K_^== ;1afI hL9p.gxE犇K ZuAv o )s"xqpPPs7[mV+.8+jVc}BsP!-RISID%i`+2K\jɷ[)L',a-V-x8P%!=A /,ato2Wۄ^+IL)bcFd[ A7ί 3nDAO,'67H&J #xÌ;4u߆tӉ`;s֥(]&/Q۾=EmRr q9Ӹ'&Fˬ0'-<ؔ~icit,>G m.aÀJ.2ZV{r$QRUn,c,دuy*ah~k6E"٦ L-Xܥ9RD J-G‚KX{!N߲fؤRZ6Xi7tܔ a?D9_ATکk0[\.zI =xF,&qNk0JCm,Tp;(yp|l +Y2/D7:f>1|[gHkQ$:hK]xQnOwDQ)kE>%0[1Qgd>vgRڪxnoL ψv}A$}&<`#2Q὇RH 4v;8 ,a!0g6^JG5r Ƭ]5U9U]ӱkyԳ&7 ݦ.-"9 +w^a'nER /xY g_۠PTTAa{GVKezW޽}!rSwI{<:"\|u߬'YhlCse _ O_\LjNn|(sl0CHdc0&"${XpGC "-ح]B܋ Fx?I=}w"bSF#fIod7[ـ%]*>TZ1YZNZr0x9W=>wDZ m/(?D~x1{eC/rkg*$mzԙsоrF@ endstream endobj 125 0 obj << /Length 3825 /Filter /FlateDecode >> stream xڥZY#~_1S XG_`6A8 FcǿO$o6h7d_/ܝ1y[wuQƶwefa.XqLvN\XgOtf˞daX_|ܵy[ +YX֮v<<:+ #7[ed:=7ԜF[c̀p-HTў0U_V {\H9IV2$?Kuv^݉3D#sdx5묲_0>9ï`hUyx79Le`(Ųun7,KqL2P]䵳:R/'}zޝ.T*zu5UiG4mʎ:8l5Vu;gDlC2Pg{l60ؑG iv)_'N\q0>?j!A'<1vZa劽*&t,( qgH1  G K4,ErhL l n - UB%dt=TJɅ\ R!gšo>ns#, B TutHdx! QfLjsS7c-[6TB)H CXUׂAVrDQ^ nu,,w`y#~%ּ J'B=!di<2-~ț&xV-jg X Nի#f(S[UFv/2 c~\v9+k:ZƁ41S٦IƋ $VZ+4p] ):5V&sUj?rO\AbW=vP)m`tkZ=?:2McLeoDRl֕o5`gcu4nG;V+T_:}8aq8O.Ӎ1ykݘwR,bJKd_x0;/}`ݟ~?;!N Էt٘ܫNQaľ_ӵsQW7Ky&aѺ&r0^#KTYm3 51l4E{Aԅ ?~Iչ-)upkk?Uԗ` m 7#N\ YlφKR9Cq.?[)"䎠v3 ܆\M3N>@?82duA:ذ֤v1-,;F܌6ިGu7 l Yӏ88SLnwK"6Z)B:4T&)U2**m %K>B%S1:*ϻj$U1Zٌʊ(Z5Eh3U1 }ZU\G4A. ;i1 V7Dy`||XP$YwdՈ0Ы S #/#"sm]\ )}bL<>0'eN"`{DG %6 NJZk`0l s%  HM6pY*ȨP֚(-â`>AyyelS m@vFlb٘I V ^qafJv]ru\rqu\P pg^f?)P /D 1U8>g66?=_\{0%auO|P0ک?pfmx'AāU*ϋP'g|6/!%pFP+G)MwBAE7j-wD7b|AfQ$-F"S5PhlcwWxub+Zv;𲖼&{+Zŝs0W[ևWˢjj$JIo?O:2|s&l^x fK@` 0ğmNz$6]R;ydӓMnN}^%edE܃Qm^UAȷ͜ݠ!,3lTKxaE!aՂWͺ1B}0NR}gaM'6"թsUɢOhPIػYcF wv"@xؘnϜQ<УYuəē5e-ٹ'djmDo}6r-?Ʀ 1ogBضlxptd.'zq~ wֲoE-kl0Ê@"ΥpqXWʼ/WtkҰK,(A-^bD$Nu\AxtI6E0**K-[,38O?fx2s9(+V#1j͚jlѢwU֮!ˑ7U3Ѣa'iʎj'm|ĬPԬ#vyX !2v <7_~!^hc^BUCg9&1RU~NgZg/>aɱvN}T{&Ĵ@>CuyXN0ip MGqa,7P:y,=7/opvxhxӂp%@|+B,isI,GDg]E>t Eo}DAϊgB$FU)WQ.6jid aW6r3Lg.pqӜ.6\:q4\|HQdw/!Y/zASM 'h`úlX?}]. 2 φ}'NJα^^krz)}]wΠu8? înva4yiM"\ȈrOdjq9%ޢ/M0 iS ?6`;e\14?4%:B=}xe7}FW4 ._9C$nُ~Xt*ʆʎ(SP.=V?ZXȖ}M{`7*Zΐ r$x_63m뢫e\P Gʘ:̌nXTCvG]+pc7%d6oV1j endstream endobj 117 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/decision-vegan-004.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 136 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 137 0 R>> /ExtGState << >>/ColorSpace << /sRGB 138 0 R >>>> /Length 3771 /Filter /FlateDecode >> stream xMHE+j H[ ! Ċ5̂ yt֢_xβ*oW<,o~1ݣ,>aYVXZګ- h˄VJ[]ޖ*qks>O9^ˡ&d嵼Ԅ_ˮ&djBz-&d}-Ƣ}9Ԅ / /})M`t|D1jQ1F&4 M@D3xQQ((PLqbcSEzPzئ861ɿz,G)`%clSJ)a)Oqxئ861)`֥1`Sf (8 (3G@<14)ijd8QpmE$)oIq9KNh3oTb|6F%Kfިd̊%$ũ.ZnqMvHq ~!aNQ` G]^6lbfŏ?KfV,YdfϒģD ̊%3+~OqxLj8F<1) ^ֲc]M(,Ͻff}53;^CP-`OV2j3ԬڨǙykRWn&pR ~]!ǮVXɳST+y] duUUJ^WDd y}l^ 2Uufj-qRF\[e ]r:'h`(7\ \ dRT ;kVkO!kٗ<*8%g0 'yj]6ۖVDU*` JVWu5S/- 8[Tݢ.T\ Pp*nUj5Sa5s5Pp*BU*pSt8$N"q|Q; Ɖ  &(H%2EF!az0'd2| <y_.< 8}EFGQ`hƱ78ݒ%pdtu&kkf–FIvKWdtuaWpdtu \WZdtu]aS) B JU@XRVP 0R`*HU-k. \R:Q(bn1L[ -a0bX1̦PƘ`68BZpX1J%V +a 0bBț|q9oB\)üa0Yb!1L)S%,*Ȓ誂,T%DdItUZ>o3!k$Dd3tufkfL^#*>.D\ Tp R* U.U\b%JUDνʚɬ.kZWp! BT*KU.U\ Tp R* u.k\s%A a0a0Lu: STa0a0NuL|객,,,--------, qw2*r)v4*v4*v4*v2*j(xD!*R* JU@(TQTD()K"jF@(UQz) B JU@(UQPD R* JUVT^βFԮ/kDd3P(`|0L>& a0`f0-& "2s "O _\ 4 2 |; 1D)!JQ@1D]C1D]Cc:c:();f QWuUAtz})*nQAtPD*BU U Q PD*BUݪ3/gf&Gkfz}fpJ(8% DŽcB1PpL(8& DŽcB1E`BH(HQAddtU@ddtU@ddtU@ddtU@dd 2wu "W rR9)*쀮 쀮 쀮 쀮 TDNv@W r:kTL8E-*nQB(TQ PD*! UA(TQ [ uQ:% NI$c1I$pL8& I$c1I7D(pJ8tc:1pL8w 0]>{crU7EQD R* JU@(UQTD BU* JU@DY3u:Nǎc߱w;v;ǎc߱w;vDQߩw;v;ǎc߱w;v;޾Eo -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~W zcrU6EQD R* JU@(UQTD BU* JU@DY3QŎŎŎŎŎŎŎŎŎŎŎ~.~.}l+u+u+v+v+v+v+v+v+v+v+v+v+v+v+]]7C/}7oͯpk{>Ϸr=П#a73v}ޮ Yv}yVÿ_|ǧ}S)X㽷 sܽ^<@uKޖv~8ǶtǼ~ɯOKNUTYYkʶP\xnFwZ+Nio~ygr?Z.E9> k\=5")8#]k8Lx[vc~%+5c~/[kk1W^Lk1i;b~.v=?_c~^yk>^b~Gsl%$ֻZŮyMqj1k|\`mqY:{m^k_1?H{|(qoq>k>U_gײO_yis4,fk~eyg9Iϟ}_F}uN,e/4?s(8N__|[r ^_㯏F>(;B5լq㝫  endstream endobj 139 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 166 0 obj << /Length 5174 /Filter /FlateDecode >> stream x[IGvW xtXʥ*s"x"$ ypph4" x-*$ZG[w_? Mt7{?W]0{7|i𷅿թY:,t?M͍ۚ j}pw3쇳l^74?+[}J-.\dNjdk]Jv|p[5]?q?ЫZ LBzc|Ի$BN@sΆ_xb L9r=P-bnlߍOkK 6p:y7^5!/x)t8s:8`tC'nmӏUז6Oi2\t|*:4^Xay~\K'DRNơvhE93i?2Ip#dIHjFJ?9㯋LU 5.vn~va92C 鳔N̺&htLӵ2V7/^oygt xmd遃X@,[FǨPQ@oB1@ Kɇ݈4ؖ+4+}XNحpsgM7Z, CEECv( Bc7ݪѰ͸ UٲG's.ZYOpA]EorP/UDO@ d 82MqF +Q,\p/{)9/J8ݞ28"Dԩy>vDdDB~.tIPB@9qsxm>`ɻ&x]ZWU;tdq&D?8b_ 'Sm]M Ej,Fᡐ)7a({Oc&A.[[,|\(ݓPS빣E7<&Գʠ%C ͊t <ٚ-ghڲ91"sKy-=z\`EDHI6ZԐZ9p̣|eFnѳY2TQ3cYj#mpZlC:=?AߓI)س*=?܄earmފi/a6 pna>Kw6iI2 53pjM7ͨ y|k~i٨Y\#29DkcV?Gr `C԰gS:)^5k)JSkZ֪*{RX^m@[WXTdSݵ3f;BeBE,Հ\N?_ܬFk':<͝2T]EyΚ`6Db2nLtg!LR0LXB N/-tϬ,ۦ=|#Y*@b;1N}zGkPGK/r~y{Md krAwŠhsH!yivlHGОmXN6mͰ8Y%tGnSr oI֋VCkx݇ \k/ݿ20ĠIeLkyZ!T9UM*J.]=lhi'6mdNucr:>ʪ*gęcPv.'ҎI^śL*VP?4VtЉkbs.ձas−# SRW; #z8"?ԋCaԩ[wq${`oA>6S=wl%  RwE'aG!VwmX%ߊ=eT2D)r2 )#r%wIvUwI3~yPZL-h-MP|ݫC 1Dv3A mg^׫0AAΡoA=y"P]?2BګM`M4]FPΛ%_1dBl>=B4";GC.& Jo>'18U!o|YCW˳z'97-W"sF7&7)7/`A%ۿ7> f\Oi_ ~aFi+IД~aӳ$) kJ[hJ }b0u3$@j@ O ~<إ|/S#&&izl~fMP|[K/d*7?HYۚHF NcG M7Fy~鹆UVoP0$j+LPˡ@Յa|0J?HdRL)\Tw\U0d/VE72*@'ڗvhsHʏcx#ÑR A>% -s7)GlLiq2*y^/Ր`W= $ FT9raNZm+$IC n3P#Ihu(dU}S( w:wȝKo w<bъG ;d+ƂlAΡdlۂaztUn-IZY (07’Lh*.mX v# R3~tw=Gbp%mxbk!]⃶䂟Wte+J]B4C}ko9''d4B% _t Ub/<`#)s""C|};Kv⹸#M )}(zz=yD0+i(#YSI! !&jfa8l,l]Fu(R|Qh%@/"\ =k)(ޞΆS%49ӧeAtrM6=GHiLInI)+'[?1Eb^ bIǵ$^멸S+CpOY8ߢ覤ac)vN[G$7@:@0^6g{:I<}Z]Qe鶖*~ƚ) %\N7!)oRr#$F2]i* :L+ǤUa5L5q4ލ<:jI_7 ST{9 ``UdGTcrN*Y]G["r-W7Ʃ s?nRF%Wr9">_\R6j+I*SYF"!YxU2~ 3~rl~,{g3c8YP>ƉQ*pFkS=]7gmǫH?5ExST+~N` ʴ]a'ID۞ ÎںK xHR3ԝ'X?g*hEfc~ৗ^ Ƣ՜^1Pcm;q :1\ Ubj{׀zLgf<& ) AP 3ȉi)w6Rח3+=B>dbUO?ɱh+x ߗ"ޯH9gdHU ix(vʻͿ_ B,fU\\$v'n\JŽzߏMk]X,ce|+"BcZ!O_/0H @S$}#2*vT7e aK"oqSU_|N@St QRpQ#-v7P˰4ʉ4 zQ.)6Gyu%37G7^D2·darfZbE4;.tX"2ҧ֎☑t{x(Zdz{Iq}cHskr9~NENDU'v]zׅ_y  7/.a|#;rF``[>RaJ̺fMOw+N F!b?$Z3L-ie4 o4*)gBgFL K;694'B`5ua,z2-gR 3K)R'.Ϟ9e]evK@рd:)!Kqr5=ak-HOIy_W>uME_^ endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 791 /Length 2311 /Filter /FlateDecode >> stream xZYo9~ׯ""Eb#3 bmFV U7ć,XFHu_C`(< @Tm5sjI\w׬ήgY4[tu{^MXm!Ri}^.x`w\w,^]Ѳ|;WKZL>VisIu[ .,⨩4 WjE;Q࢚/i!_{YZ!t|Nʹ/ܘV+u[֕}_W]wB^z#EbϏZA&SrU*F ?ąW: <6,@A>RB# ecVR BT;IIMVR[78`ri: Ҳ"j}ؓ ,畒!ݳ&l4;^LױspG"J'l$ΙQ\oT" pmKk%ݩAܰYKoG^]eP*9tCE -!Qkԏ?1[ {x4 GV.$VU2$~C !hMdb:(Qdlo2tV2fGx"%Vi; n|9$ۉa7Zz#;/WZ)2gM)9ئ\扲.SsOy9?G93 P?丆?:zCOvq2:QMl1&#%8^ .{8~۶s6Y/j&u+oa5^<:wGC}u)0{]-?dP^O!bo}9  ):0j㳶YY (u.F ~LVɗ -y`POMfB˪Pu˵^Ń|p(z Wk0T9?#n4(ѭt(QtNgQ׋mtCJg2B9u Nԝl~]Yv#Sgn}7 EύfSz>]=Xkk& _+)[,J)Y 5s@& =|p ֠[fޟN$%`>F^G:Fr %IPJcdg 9`<e'Xg]$X!~Etq*~ Rv endstream endobj 192 0 obj << /Length 5470 /Filter /FlateDecode >> stream xڵt?Wwfuz}@qw߰vun 'ht֮цՎ{8sRG.|#ӻ7ژo#r]=& =\+[}ǟmQĩ:P;6>7֯K,[&\]ݺO0k'l  k o A;qxapVG7 ?QqBOk½>{\trO)c*nj[~ ގ%mVw8VB/XWtHX{/9 wA a wcrr{Zbcq>7=/~p#m/pAG!n% W*m\?F{w7=g5-w/Бa*Hq/(b׉=&w}ںX ww|9S6Tuw % |Bеa5uW1@#]83W 4Xb+EϤ$g(YjT P)Pn06〓Dq7Voأ|QCVE&I.8qjIǁ|ğ!n@4&&g 1578fWa=a0%>ԗ(ѭ~R/=b#4\H %Op޽u"'\$# БSQIVd̿)m 6g<0Qcڔu6Y=<>=' `Rq %cúi*d`gO2- ~ b$IyqQO(k;F {8O(Jf b MLܴQb=k1"s^.nq9"'~碶Il?$lF5݈TGSGJh$)B R&x4i.g:2ʝK;]wjMݰGb['+$8q<.ݽJ b m Vɑ|<ْ(!*z~r+aq_0PUBmev!T8+ wґ@ ]FTBzUvntя40f,@VNJϖkI_JDz: &1l|!zeww*խ(5'g>i(_@*Xw ˊLkqfM+j!'pvW,5'@FT$"J,Mb:wJ*XT ŌvQdV 4_$Sj#]MF;uA$:e6@+"WP NO aaZZtt_dDbdO:_AZTn_9Zt\Uo`u` ݰL%?Cv [ : _Q^g~.}Xk`m՚.)sh Z?r'""ɉla$9mcӒV.**+&3o&¶+E-[.;߱[7QTLujko VuK 樚k ˷_8EȨHz-lZon@bG.>QWWyOPTMa?ٍFխy.G)i8-iZv?X!`^_Ti ^b]ħ"VII߅aRḟ)Rē:;@J.wc\wӄ Wɣ@CmLݦ vporqiEm6gJ%ͼT@Ԧ oCԶ\|jﵛ`PXn]T RVXMVxf70]D#OYًAv9c(AFwJI+0=:)0NRÝ=.YjO>.)DG9ϏF{J;|ՇƳ⦭BG}B; +uUmڛ]a5 l޶q00&TL Nӯ2CGf5]ZwsN=y$dz 6x.\z{9iWh_'}kqqPm^9sW* hDIT]O/U5\ s=>7KaCixq:g ¹ (Nێ@'gdʹAz̢*"Z>{!bNG7(BPu큵񰪻e۶v< @VG,쮭,'JQz(hi MgKPTSm"!^Mua#M܍aEv{` q6v/3KٕPd H( EaAR[y׽J>Zיq=@mBzϥWN+3G!L>?'zXlAZ}ٯl(Bȹ*Edܳ+G%Kf}91bH&`asU]O 20l/S/t&.;ྴWd89k~>KY'^R\! acLs錣cF9#[ >jLHngxoJPȷ&x;'1mfщ&NIzhfAςM6-`f^Bgv:&yW\ŻX#W̡g:'C}9SZSL>:k ՝z)jxKrܤ:">Qadm(+Zԕ3%x>2N R.D{v@lg(jn@g&ƭ& aSidRk}[9_UtfWM/k4[ҙ1`F/' oL 4WDk@eU-Fߍ8ޤow*GMպX.ʌ_/z M2uSԲlgiSI9Y?X~Ro*Qȯl¿ $eZTB=J7Jt @Mlpծ6& L nX(%vqIuiޣh?+NÜ d(ѶEo Bm[᭴i1_Н=d>[)&O>wsg`|laoflCD[xozNUó*m5j(MPWE T9چMM3dB0}f˘{޲\GVԺӍiëZAFo*磂5cgVuřͰA͐/NI}cV!ä!PTTΛ/jS{QHߦ`bo4!jZ< Gi" 9,i9ixo׳ ) 0͜FJʳfocmM!.۾BC BdbXk4oɳGX2uDHcV(oM5,q8i-;<\uPs[ԹGޱj`bBLslls?-]yM&w}<Fy8;>avjPzN~'9k9KKt!JfaNSt!\ |Iaz;}I\edYGL/V:tϘXK(NYnQ}cؕU}(ѭ<3Yr SŞƸ#u ?Ӌ=P~ob j-=+bnP{[ yTL.SGUdf⠜%)MI0$V¼a J柏?&jXA_ɜ4Atx}2Y g"9ϬDmk祺7UK],l+^!tr5KUS]{y<]al9]\\τ < ^ _OۃQ3](-Na ~p endstream endobj 206 0 obj << /Length 5215 /Filter /FlateDecode >> stream xr6;T|R O?;(ANؾo0?n:5{̄h[l<}wvؼ#77 Z/l?,o$=s8G=Ւg pÚo0cms?@7ÿ-{L#L-ùrElL-,nv90dkS87ƌxZڵ9F.Fj'B6ľv^t?Q;z)03o%jr}|Q"xh m0aO Gn u; +禃8lyп\WIGrbީdS5$i],)&Y'XNt}N ޜ =΀l#H7 Đj#/4UP;ZR!>n  awDUŨ$^*|mK:wcd@N,-3vg´M*Z7 zlh$+ȷkb 8jŕiVL 7Xᄸ0oxs" u4ay5rFûå nNO;Yl_d 2ixxۉ1V(_'?&B`qf@PB\(zHmE   H;ՈvppY7eN$gߓf9`BZM&b}A҆X3m$Q/Uͭ}7`vCd#x@/ͮif69n L}āo!ؽXU^!Mm׊DeH5~/OA e>r(|\?qϣ_=M0JDqCw`FWԷ%ۗsT+BWtOGگ 2W# +"[U9v2$ kĔ`$Ҡj7Yϧ;F 55^0 ]%tfU$ɣ'y&Y DDxHcmZΓUg"Yj$%s<u&K1ffK SȖ/dP׶ o-@_j ^};[fvȆTA$eHy'er>eQbK~r`a:߀^q.HĀ"ufPw|50Wg d:+!wmӯ45M{5M+gH(WH0DIy)a\D8oAqx3Iۘa %jZ$_!'MNj8#;XX ~Q _u@C('8_bv#?oTdit #NjqZ.tC籈p@t"t%Q a(h,haEqi6’>4QJ[C 8> 9'aYa4> \#kI` smTJQp9dJ=k%ULQbТ"JET}j^{JP`tܟTe~caeH Sds`747}8F:z35S~C{iciB?$mmKHWLQ Q]I*r{ύǯ!"Gk>[P !B^ΡDd02d 76B<@l_9=s&$8Z+C[ep~H;?RadZis"B0Z—C u'6 -5K óG&nj⦧;@/yI2Ǘ>Aϔ~R"11wYC/8!-wx*f>wMR85.b$;|B_#%>xL.!=Cj=wK; ,.`6[S}xxy]nhVL☐a\ e1Fۭ2'15|!UAZ)Ag z>#Y/Q EkҬ{ߡg4Mզ˘eưW|kim^#o_ƖK4_dq9f# 05S~3`,~ u;o_9*$3>zyc68|/4-* $ؼU$ϓxfJI>kRw@{}<׸X2Tx(bA(]{h[ZEɄr?.OT] ~m[Uـpnwm(}ND 3d joVo}Z:Eo(81hϗXO/հfE'k:ڬ0A0rPY8^2RhCѵB^4FzDšOXF~l56b_׈\sgU.Q|o>e0'ׁT;zTþ}CB]0.lQRV.5MיWN#uA.V!DI6+?Qv ǁ7IZ Κq,kJ3h^b'v6L5/ڦWtˋg~pʊЋ2A=gY`kQsK{u sf[aef1oE!֋cC`0,s3ȕ](9+]̻i+y K[ʢ:(P5ّaV Z_NcGr/y ALc&րkFzҷ?s;I!"Eͼqm70)X؎Xx<5 \&@&ULwt$@{[g9>azP)h̙YZ00ѵa+w>'? Qax1DZ)A@`Šo]c p>p+ȃpWvt';*zO5R`|X=;I,_s[CryYҔ Iނ~o*SLUKP݈jBmEF1ɤ~l=@gr6?e"W!milryY+- >&Yr; ٶDtsAɽOaف8ML8Dt6):YpF8R$ԴHӭx@`29~[r?l*3@`K$Et-EH&eZARx'1Jw0?mہxX/3<_FXcѹ%ёvdB] *MHAS!VP߮b~26onNƶ!9 qB,SLrV.g#؇2Ai3#19%L`]g>:zp%'9ՠl*k 0!Hf3/X%I-$e&Q'5c|DA2a`c80\L5b,(oE"z$ 7; ܙcB;Z_)[7'fLAfڲ!d{ߵ]9d8$z@^;loxczC,ųOЪ4',pZFOXr,|` 0@&L؇k_pNNg4D'-+eT#JyTƷadPxB M(2iÿRxRgEx>oD"rфހ+}%6P:HѪ/H,'S]}.9h3UN}DNZ4ql&zQ4`SY;.["BFYN0=ذjHo.|aqY#s (+Ew}B?7=iҢ[%}`9L8= fQ{>;!χuݏÜk| і[pڻ='9Y$3O$ZCx˩/YWU80DHi@ˤBӷI3b4{ R"Y%\AKDT;KlGܷ_H:ƒ/!XD1A2KNqqF?}By&{D ې_\ endstream endobj 218 0 obj << /Length 3451 /Filter /FlateDecode >> stream xY۶}&Ob$c6i'4qhI+kc\y/.HU}xw_૛m&&7ZO* f9uz3k̴};S-fs㪩f6qḂ:^=L[~^wMc&%bp dEtC3zuvUQiv=]dtFW Y=/:B1Zu @KЎqxCu< -'7SpTJ.MT ,Y,!pí @ЈʠvW%`B6Bp~#WR84E ‰G? '0u 8pQ *6}`_Ad;Y~:fyTx0oցxWgt8sS!N}(HW}R}Py0QcJ4gJ)5{}!`m R3JSŔb tУ5p +0 8hS(Z^*-Ԁ3jATΛ+Ipxmu:R9OD!G<&yV.J4l0z6Ą(Aj\DI.\|'9Z)yRCzT&W8l,]Go'*1u߭$m{CNRMa{bK~, :cs*(ݏPC[2s=,ZuF8<|ǓJKmHr+lZo7KqE;a}p5pBuv*bsܡb2"qL6v—!=A,$ڵ4p;I=[rViwL6qWLQAkI4:^@Z]*3\1F.DChb}|U4.xFiYpɫ@<]7@R4ev5qd>"S,՞a5w;Q'NܞCzߎwAw 2 Ba+qNcDXf6@rCe>4zaѬx೰oh;~/)bm߀a}or>Rʫf iJ,$ ki"VOf.idIkGu{"5ԅ צFKF zjnGT5bKՓvW.>+&AĻJw '6>t 2 عS^^ޔ_vvU~><;Ȕ*w7aWV7=ӱuꤧ<\E'JVYfujL2eM3=v|_p؋ÃMtno>n><&拓6WδxW$]/剟Y` r%QJlC u%좰X\ 8&gnGIy6C6H= ! Cω7FHz3|QaIto\k09@`NB fJ%qFNg⹄ ILVPQtq (>`b~V1qwFLi,ңw]iඃ6'$XmGK,Oĉ3u%|4iSV e[ Q\9ܣ*&Db\r-Fr/9L1Ch[$݉v YH= !#FsP#n%[?хx).%Ʊ변(N2,@ԹMwN4F4RvGU#$0upMv]XfT8Cn4tW?LLMS(W_)u1!˗> Ѳfk:DiILL+3|e9 bcͰ׭V<Ț\ ]w2w! H.k- CJ3Io4Ppc ڢr)⋓Zisޏ¼,ofJLAmC As{'ȡs]Dq> /ExtGState << >>/ColorSpace << /sRGB 224 0 R >>>> /Length 860 /Filter /FlateDecode >> stream xVKoA ﯘ#jNQe#h{<R"S48791q35z%~̿6{޼#B(_ (f@R^v_}Z-C^ǕM?hO*VtM`C#l·y8KsvD*?k/sf z]Ŝ^^I}{1li+y&3ؤڬ#PIDnFZliUU1U"7^FzـEGuIgJթqܮ˯Rfj ,+;\_V3R *;b =+pSeaZWdk3ZJ})pWpW'nJ1OˍPr8?=b v>lBAZLu+wכIgK3sCm+8NZfpC\'1m䬻 4C Z|6R:n6 Xe?$ +)Υ;;#Ĕ8LKޤMwt˕V*Tr+ 9H{ 8Khɭ> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 238 0 obj << /Length 1705 /Filter /FlateDecode >> stream xXIDϯrUyA, QB CM3Ҵ;ͅ.OhZ_{K2SQGit]qڬ.J 4d <~ѳ x.""ULӺeTU=LǑ<_O3U^Gho3ͽ[%0mq\z{C(C|%:O+jp}JjSR}AFYiY #^T|KB"6 $$@"nq%[%6S 8ݦ6r%"eSLJ5kFũRGeZBf2PYnx7@8@>_w H0]YnWФ'NM1gUH{Zȹ?2?󄤣Q!ٵ֊j-JRD⩥=m͂ ^cC/VB8 -3%)[R Oۭ@jFQ?.%bUR(k16uM+:2_glheJR X {71=fMMnF3<;45d"ԟ́ݭAӲB QpAMlfF5wV={N \r-xx,eȴ&V'hdW~ τEGҦ43'?0sL36ldsfla =k?.硆 `FRAwh1*N~\PrQj\LR7zB)rl 䇀bȅdBȟ1S{ wA12 ] 0Z# 'i 4Kߞ|`E.I)Uʎw6(o6YinM'h|HsC艸W*ˊm?Pz Yj2s jgr=s%Q7sSB.!L2!Kw\2K²)MQ3,<"HI#61k5;>#7X,pKЇHup)p޹Nhf Ӄ}bJ?t|a᯵xqq÷|~r|[e/edʂӟDOޑƃM3IBH\XLWűR% 70YH? &4 endstream endobj 230 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/decision-vegan-009.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 243 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 244 0 R>> /ExtGState << >>/ColorSpace << /sRGB 245 0 R >>>> /Length 850 /Filter /FlateDecode >> stream xVnSAWl E&;2)`K*@ő }\(lg2{v^gf՝b~\|zw6AZ-opǁ+H[W1iG)6}o8 'pVBMQŠ!۫WWZ7ry,GC-+Qʈy Gd!K%U<9;8\QYoD&Ψ_x |" )xV-YY0DAYG&.Yr)e¬5`9GL&Z*a&Ny+cVu8*a&g 6B[8ln ZF3[Z"ؚg1emYSఀM 1Lֹ݄:)3.Yrh5S-3ڦ~Z F"E;Ey ^L퇣˸rLe)N2OTIU̽r'쇣Mywޮӱ x֊<]ţ.9XO&zu% OI/7w2DSa4<ZŅ~~9Ӊn endstream endobj 247 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 233 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/decision-vegan-011.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 248 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 249 0 R/F2 250 0 R/F3 251 0 R>> /ExtGState << >>/ColorSpace << /sRGB 252 0 R >>>> /Length 1525 /Filter /FlateDecode >> stream xWnGWQ>]_,qD 'G,2"&p qUk}U=}ϛ?5n'gsfݯ$qɛ</Sm'uM(:s{s=)#9Em~ə^䉿t><'Av/v0NWۛwjObs[*+dB]۲my{Ż!Bw'ًԐNF)\\VNN ię?8t/[ƾ"ےr_֮p%P!8+~Q9bJ}cY>ɣK1gݩ/ YǛߞ^q|n>E ?|=|}4db9ȇY(NOwR6b%LBzßcY zG4o]51hijx(Bxt7w Zm`m]_-$m }4gLBi_m[1)L,q:4Og3`6y8Wt, |t&obDN}<> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 235 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/decision-vegan-013.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 255 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 256 0 R/F2 257 0 R/F3 258 0 R>> /ExtGState << >>/ColorSpace << /sRGB 259 0 R >>>> /Length 1106 /Filter /FlateDecode >> stream xWKo7>k`ES !uJ-͐%{݃ifH7/ԍ">hco?_SPM(H0+_u*mzR.GuB\䜶v"ϤY r댦> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 270 0 obj << /Length 2829 /Filter /FlateDecode >> stream xZK۸ϯPDUF\ owxT1)>p(jF$Β<./DٳTRIF"F5o/z[\rϮWB$vCt}7WQ=_hDM kŏ]EKhe":|([K/H8~ 5呤_$ـ}w#; 2A?Q5+LB7|`nfcgH@g+gYEa0M,+QΜuUf $$KkE6̨5=`OK_p%7ށ[^Ar:l,l}ÙFi4Ii 73NXlE$y->obbq;MP<NmyF"l6 _ף㾨;M/NLWc}X ~dͨ=)!!{  o1(LMn3L|ek'&Nb>vZ&sac#w~bw۾ ~-}8dW4)HVMQ{yԏ wdPջg,Qr/es:[~>hYO'bњ8nCJE̯ע|~8nll3 O0P; cGf+q} M^K:Dl3^q&BAF$35}+cgb̬^pg-Iʏm?ju.[;'!z;QEtr< Tt\efyax7<1yIq3 {{jW( Cwu<}`tl IJP΍42K:^C2[ET   - ~L'q^08x2=x-%w"_x:׋L9!\po29<ڝ}ipGn7Ȗ:R3%/z!v4*Բ$39ɝ*9JwEO|{XswxH2$U 4qZąKV唥w!/z/s^lNŗ莱(G5M, D:M^fAoU0\:<%Bޟ\"VG/uj_ endstream endobj 263 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/decision-vegan-015.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 274 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 275 0 R/F2 276 0 R/F3 277 0 R>> /ExtGState << >>/ColorSpace << /sRGB 278 0 R >>>> /Length 1574 /Filter /FlateDecode >> stream xWnG WQ>RdW; ` A QH yUDh Ͱ4GwN=z >_Okv.>XĽߗE(~^J}HŞ}I޹ķ(>={G$|-ѧ=?j=LΧgaGE&ot~2ƿA曺wW+weLM^܃/XY^%P^p]|?vz-P\P|$Aq'yǀ=GО8_!udOT/)Yma:Y(.Y刹\d.Iq7OȝKF9L'iN't7|p+]}߷Oqӫ .$T|wIF񵗝}nwxun^1CT9tR1{!ه5Z6̀٬QSbO$`r"a4 RFEmm5%#[esHholVߢ|b[z50LHk '31,u`3gc6IZtcS0RWLDdU8 g>1Hiϵx'̊D Fr*NE|fgڅ͵bHPCHG"c" +Bδy"L:0mZfh'F{Ri̺'j,-27?C`>h-86) :6#45dbb*nY M-uDə!a%h3T5y,5.[.O J"sMG#"K.'FA" \KỎc~Bc PbYKw g#{{ E”>f>IyD4w>N zHV&23KVFa1T4.eㅉ+ x\2}݊%9Su6Ek %t,:G?["S/@:Tr":`̺#D)lج C"]j, 쥕$h-% s7.sYCb|aJk"xH|qSg C۠?M9I endstream endobj 280 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 185 0 obj << /Type /ObjStm /N 100 /First 900 /Length 2522 /Filter /FlateDecode >> stream xZ]s}cP,pdƖNhl4G+rH{Β2ECM)I7 56;E[lA1\2DBNDg (٤h%P<$P V a }Th;M "4xA-k1*ĂBM1|p#E" ň^XS1D8eń&{AX'֫$p7m9V)XqCgԉB[U6%PBeROܺNwUn JN4$''"oPNA (SHCAY=0u@0;LŵL)Z( J0 vT(a5Gr{M0l |@ pأ"`;Jv`WTNAT=; "9wp7BG 1z oy/pfKD=P^Nh4n<7 BFR#(hNZ7F̼h&.b<;ἺL樮[2(7o?!Dr@Ƌ.;c"OAR$ȭm`Ч~cYAu_2I#b2]YY~Io}fJ~ l^n)gZjEὺksصRnF"yS. ^ׂHȠʪ/"%`4:NoHUg/T4W<^u^ib$fŴY> Oel(nC!eųz"L/[P9].55K(P!Sb$PIŔQ$P 8EGc}+b; 1˞dm3j9(hX DE#m["-f]m!TA{jf[<$[v%>G.._7Qd;Zn~uV<+vi'JL8E>,T[<}J H;Ng,=[ }e9BJmofXaAm2l͚*u'I4N]&=x?#_C$Dz=!ɒbjY첚Rm"Li=o7D"H';߽GxFgbL6OVuMvǑaW;gMKU3unܟ v3"WONh=Ӷ;լXx}x6ܼ>^^6]9Uu=/f`bgj0Agau5i7U8//Gͧj> O'b>[ b6U4uW}c4o_^̫d|5˛}͡q dm ~Gę';y>+\0v\';>րQF=]7CQZy7H1b tz HgK?: B"A HəG<>n3w! Yhq|?Y#.Ce r.ȶ: &c6㦺с4}ؽp9ZLw'Ov StM/:pᙃ+)kdKl+0StKWldQ&񇋿QDA2}.sCe[/PK[-~]?TxA:/t^y-il+YIk8<_'ol~`HCj'xm> stream xڵY[o~ϯ0R 9dHnmf -1b͟GXCr.gΜwEE)Ƹſ^eT&W2E~x o6/tj /~h:.iʋ?&&[ⰅVU8~ 6 >lCp};LleIZ? 9<,&~W709 R+mw<^\m[gg9dnqpߟ&~ )6$2|\rs'rY(讋䍋ph:@Oc^Q>{t:eR!?`E61#X m[Uz:Ydib_}Ulݓ9l*wE,`Q^9Y F=ր!*w Rhꡦ( /Q^^K${!1z&?bL[י]VvQŧ/gFr`ڱ{,gNH;JK[+ ?`< MVvKت)$C5`yTj+"JʚZNlbLA_qEj}M&w. {i2uJ Uÿd12a2; /$ [ SYH7tǎ?( ڕ8D@jg:`N3ڍ0;%_6͇"M4R. nIm]QZv;񁊫^wRiRxX bI 4<{'UE^ 0=e*-NP&A#\!+K M;TB&Ц74 a(535ɓFg)oťomBo~ul@M~G/>(g2g2i*$9'4u&](%T oE}Ml:HF{< 7엀ª҂ww3V sˣiOVY(6,tB:OYEQ9, Dޑkۤ\[bX7uݐ k(_x&L(6LvjD}w(@EF\ws竈lxt|Đ {(RS.PZ$:ν~OEi\׷=Zu-![\r!sn p `ժqUv'K$kܒ 7Rw2Kq v>B`D-w914 2BLIR3osfe{W_eH"!.hLuJ.]HS 6|n!G#n_EC[{*ۻޜ~٭b%؉!_XbR(̩I *J(h~wήP,t+Jf&,zR:DJ4g7v=kjJn[-zog`".^ 3W?cE! c1-1տƨ1icczEbբAg.0  ;:^,QMziSS˞ &: @,oϱ2(1pBxZ`VH'ݭI`=nyk /5h$U>hMTg K)D.uz]Cz ny͏>r&\>vM%)QDYO7<ױZ/+׉9mk~}}cOnRTqLǼ(àq·!TL2᫭ ㅻ( C'|5Cž 7a9 Dsoa ;߆V%k ( . 76zd\0x(6t(3`ag)CKj+4;1>n\X7q5q[P}2J R\6“_EG.JUnJ`9smIhSxS珫1S4+ s~Vuv~5~@`zu-Z:l endstream endobj 267 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/decision-vegan-018.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 292 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 293 0 R>> /ExtGState << >>/ColorSpace << /sRGB 294 0 R >>>> /Length 639 /Filter /FlateDecode >> stream xVM0W;> JUǎ VpʡI//73%x#@!u{|8Px> F6 gƢd`Eh#JfFg g2h܌gfD% d ͂fᐒ|i$2ܿc K5 % k8lՂ.6еB5]l9E+r8+p8MK#PWXkgϩJxx2 w#[hOdVsA3͂KL3̂p2^EW]FE!VMvV$uP^7+η:x1|^mujϬy4:1]vM,nU=e3NY f~x?n̄2Je{Cb_/I|| NK=fN_3.x[tUJZV5mOLN&zOŁcOI&jU@nc7_0Pcc/U-SKeBq0tj Ui7][N> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 285 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpUpWkKC/Rbuild512b6b7028b7/vegan/vignettes/decision-vegan-020.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 297 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 298 0 R/F2 299 0 R>> /ExtGState << >>/ColorSpace << /sRGB 300 0 R >>>> /Length 1161 /Filter /FlateDecode >> stream xXKo7 ϯ1>DI=0!)Mv-Q]絓1.ó"Ŗ|*{-[>zqX#ٿ]d#,ւQK)~8'gaY-!iwЮ|lU-:e{5wUS}9sx2k?b8"ũ:^}xBwF=8 8']QƴS/:fBVpAulbEpz+NwnuN<l ngBƂ!\$qX #ۀ0169uav`˂YMK]騐ljS}EV:F2 %.DNh]y_ B۾U@ X.ccƤmJ3Q5 ̥b`B hm`=ړ W f_ɶ R>@2,qX448cU sҩWTGPHC|]Tqm3W&zrؼUDif 1t8ޔK<• [DhSx!ʶ(*>lw8k#j WbW3 >?>} _Cv<@΢jQ{OY!a<(iw44'h͎\H/yViX(Ux>1#`Vl@:4:VEVE_|}3K(YT㰒wz>:~BhI>1MD+NG1,q||,YĈUŠ$r3n "D싎QrœOS_a֙7pJZR[9 iijCV endstream endobj 302 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 305 0 obj << /Length 589 /Filter /FlateDecode >> stream xڅS=o0+N$P1I1[l$CV@*˱[Jm%?߻(㻏7fWweDpe*+& CV-ڱvX^jynLU?ZXS~QoU@EO(2.=ѵ +`nm+vv{4j>Ov^e_#)BH@9 p*k:cE0A}B'~GKX۷ ={y=H+F TXKRh}&põe[؊qd\|0)y vDx軱))Ǧeő86.`D#19hc`s)8w>t2&@})uyvaJ}$qSh޴D)1hHłq P1 풵5!!֞@C& Db z@DS~8x0~fOz3!p.7َW2]u¾+!!ӳ.hH/y!NQeF3cFe)I)iP*˭9"rv[1 endstream endobj 332 0 obj << /Length1 2053 /Length2 16299 /Length3 0 /Length 17554 /Filter /FlateDecode >> stream xڌpk N:m۶ӱdmL4Ll'>skZZJf&@ {Wzf&3\9,@c뇡=@ `aab01q fneg8]`E,,]?@eJ ` lt25Z>2TL^ՑÃ΅Baj P݁f(KPrBZ]>\̀΀Ui9#_r29f_v665us4[r tc{ m]>ݍlM> . ! 0`o~.V. .Vqd+GD.'f 4?/fnVNn@i|`,v&&&N. 4d+#o%_~>@?+s;,33`C 48g+O.1Icm}Čj ڴ_'@`f`p~pɿUߔfm ;;{~b0)02;~>a:я1gK7b0ۙWW/b0*A,F?Yb0AF?}d/3Eu/hGQ?e@6!_K/GˏŇ?7rvܟPG8;z?f8~ßvq|\?n˟"B@0d0w8|$mgtt\=A'<@x^YS7gߗ~=+K!֍!xS>+ݞR벃SFĩnV^}ښړ;}_ Tf:``M 7 ӫ :j|o!wrBT*D{l\t|X! R9Gl$gҕin5oH&WSP5+G#nq3pEwƸZ^MƁKY])$  e~Ǡ# yFf6TWOz)e$MA4]uH竧|S)bMtrִ c]߻AFsH<-ItVvWHaGͤi`݇ m06ڶu~fa @[R~ =1k:i/t0kv;/VZǩz^O?ՉV9RߒJNgoȖ^{6#apj#jIgCbj5\ԥ/3}!2d+U$Q!o)`>EmFj4`3@//ow4vTjzCcďo"_sMgf2+7Gנ(EuNv`΄[˄ 03(90ϡSq*Tjl! t4e( u[Humɑ/ةgw5;i5eYU:͆FΫ+q4NAYع+?" \?ɉZ؛?ɵ8&;Y pW*h4 p17Lףi.} bjs"t-.)* l3B/9g=a&"+rۏm$΁EHDQk7\ħ \@paxqCp \DB*si`O 4ԫ#.%F$We(Ѩ՚$veZ&A+"{L:zE/5HuH$1_Z$ƩжTRR}}50[#o! ;XG(#)l[#bVǛubp!cV|8Pc&O ;̜K4[c(F.h*X^XZi+~D9t#z?.ך 1j9Hm,]%5t+Sͯ^UYZ$j˖xji I;rFܭ,˘Ҫvw@RҎ˶>Sխg\_6]zoY?,h[vfVՋeջE)[Dή*@*K\}xc:/ˬS ->e[ M,qL[LYT 3hmgpʄF R|j{l~ u+D aS%nDJmɎ^O@mq0=V{Ӣ \~f]b|ꕅ!~K>Shd)w1o"tadږZvE|̢~}{;UX#cͪIJIԲJ dLΛZ7";LF㝙p(}a4ebx'{3Ml&*eD>_Ky (4-'#/Fye uE';N0M ytNohC+Tt m,b1g!BI* L껶VF`h^pΝW~|CրPQUF]22B cslA1m -b B7T/(kIkgG0Q_A 0V>B=Dve38=_*WGd7.2hG/$b"-3 ߓ}e.5EFa1hIA-9^ E(+g 9V,jPi5Yl na]-51!Kxi!h=+藉n L/F,8*6_HkʟăB5y?2޽XAe -#3#OWs?g 9>}$C-\ 'n>IܞIQ;e>H%٦a{>5(es^ ~pXAJd]/!oqS̴)]GN$jZ$4R|jaq<L'n'CõV|j ݒ8 V[V>{ފvN;g*A1#"J9wI&9|"ƗERIxvRG))1lI>[H4s Ur7Zc y6K|o4&Y7Q ɬז;dnumψ5+S!&䢔#T &HhXin-orU7 @dMݩJlrf)1͎y%o\P7'd}S cWT% UeO9|q;VB&CYlz2K7D"y |@ ^1Y4ܱ fJ(/jqTO."UCAAgnmVK2[e7لk 2\(j!,5ߘ"2!)!L,@yb AsRFwlZz.gHuUN?=_f< ms FDLx'}Cp0LQ-qtQE,ƮmJ2-C=}i5G ¹%˘ =+2Aco.O܇-sv䧚]NPHq:2tݽ!Ǝ;; Jё( --:]^ï}%wF\exHq |C3'R&sF YO ,rD@rgsS}1Ee!}Aa?CւLC qZ %|_`qV'iQH [ $ǔ`_O?R$(V8WWz+Fў릩I:I"@(j(3Cу/x9ۻSB-ާeAy >z>|_5TTLw}׵"^:vd2- =$@y$i"[&4xK%f_N9OVC>r'꩙GrPspD?!)5!bu.-ژL+Rk~J7ޤ W5KST\Dp~PGWge*!k3Bb J<WPE \T 4kloPA5'uo/A?M=Ov6\^GXP͡B" Γ7Ų᭗pIk[yw1<<@'奠筊] n{~_^lv V0AFRc|i?Tֆv|,/L4i˔-'ue T]ިUmbHell] ҚԶö$^JRdLCndpuf)A*f oL`[e M/Oɘ#[%gVP$M܎H[[;Z).Gɥl*?Ka3` \9PDм Rċp~Q;Srv*hNՏ߱q4x]b1y۲j*SK <.zXٻʯ,98New\^F tx3z>Ocm,O cn9{5qLs|I[8{W{϶qmŇ/ 6F2ׄE`PY0oF0铿| 'o i3#.FCUz5[t [f0b+LZDBCxk>M&pPw6 HCI60cuw!E?uE̶18C;Ҩ)Ydiriږ@PGB^`ls'YsE5m \'!I,˧̯1J:S_3Ȍ9Uri*7z`su)x,Hbc}vQl~nT 8''RVSFg$(ɐ2/ֻ3r񖸦SvתR.iࢩ =*l\3_)՟0/wAյe=0 *o4+~^^5tҽ^ZwRQav9S"2Ƥ|U]¾ ˕ظ{$JJ`է~7a\hWg'g5[%w+[?0&NnD[V/fN1.cގ;)]oȘ{r~+-|E%ҹh)~y]u8pnD4煮#RwɚfSYX<‚Kzj%S~׍b`2Á!OH{knr=C-οo lA7,Ĝ?B{I p_}- }$VZBG|uwL[b2^?PhuVL ~{[ ̇s~a8n )S51 ,6yH`>B/R G l(SoFDo&Ekj/ifSZZBTrEBl>gx/Wl*^Zbpr󎉯ꡗ'ȪS4NqBZR}2D> 2Pwٟ\ SA/}fv}I ȼSVTtgS. ڧogA˱V(wmۄHj% 4\r<4 Ww7Q4.[0 raZF.a?|M0yrWY֞~=G7Po `cfmIBT汤$R!Dvr}M(6!:C})܁j3d0hCz% \)BsbuSEg6Hyei~ H) 7TsڔsGJB)=I^0@18#2Y; &݅f)tK! K{6Ut˥=u^ãBo4h_ (&`,'aL8U}[Y<#2R%w(e%СzJe"=%,^^ A,ZKb~WıE=ݙolL%_ }em&=' > )`Jn[Z3 WM4D:YZېVDq7zZ.En ؽ:!/1嚦DxG 恢xxt #VOC<%9pbcB/ACvNôB?TrYBC7˵5;["o8aJTv<g1hиzeF!Ǯc D'RE➡ wBW8ay-. _:shK*3F$_4#t:G]T ,S%^`(?2RYT[\RGg!]Xhs+$ty⵼oƘ?i`8g5QQSAw'4u"&K^4IVWRJ1^Y/e]o ).!eCG~{s([*,~9!u,^X!'syq0D(wӹXh(;!>;h\r:x? 3$8{2ZʴɨaXV%tՔ!GsRVu'Pvd(=֑c?dնD܇vK9tTI<;Sr~#a-|,Kw= eesrܭ#&dVsQD7}כy=¼-2>rR#jHtGbݍZw2SqA*r$d64/~Aka6 q?9YZwJR-l=YlnPSUɠMhŚmBu?9 `m3n͆ #_BaʉdJL|9.F/1Dj!m(-I#Lg}% g)f$YU.Z HeYgFr=y^;EL(}^DaV]q? k= Da+a|v?<.n}΢j` nybAޚ9a' >!;Ӓ aW=g5C )oO {ս( ~LF 3S4ؤ&gVgrN״6b+)_@.$J`3yF' x{mTmj|hVx Pk~zez[sA_i`y #+S1tzҐo"l;&l18mP"REf˧'`4-zC#RXIծ~r+e ){8x~Q(_0vrCJXs%̖ɺ0.MH,c-ؒb\4v? FO*%i\F<ӏ9ڵtSkԎaoKE/?_mU`3nie ށ2adժfpbt:Kb4[= 7wLvNP a[OyMcI(%#|j8vq&gks~eW"-JH.=R mPp璙 ۗV^ậO:M#,fU-9n!wpc7?4u |_UrCpy}jזS(E]+M)Xfwv2$+k70͈{YIcYy;Y)&vbY ҝ뿂uc:aP}ZTfU1gօ1瞙[b%g8A6Y<}u~53m,([}" oU[']'ꮑ$g^nY;W|5Eu?)I؜ e6t]B%뱰]nԆGSzG-Aq;L$ppqO($jv>ܲn[e=IE !,>"ZI#||+8j ʌfZ-mxX$'ĔL/ygd⤆#7V^l >C Pk'>{q#L‚qvR}Ű`f[Ej1d/qvֳmv#| DRVH1K C2ee5fjdSJXb!PWdjo֙k sz3|~2- ҥrȓ+G˳ z/.- g^|ljE}2IU 5:)memvkQ;Dt\ݱ'x{r-):# qg (cu9Ե'2R,q˯[/*ȽҰxX* S3I>Ӊ4ybA^I#{~Bo;p.aԙRɲcs WB8[Kp _8(T##=%U`nFLg~$攗ү&Pʂ-J`L|olENTl~u9k%DkK*T/Sm1Nx:B2da=i9vUB x %#ʧO#ձbB$9TuUOP!B دm 2&z0&h-A!B5Tkj}Zc,C_YuVb!je`hfH|BpR:T<k{ ,A/ D smIFi-pp2o#'mҜ íJ>Wl rU@uJ%#z=ZZ/k'~kkbp̍t@_,8dMtb U0vk zmnqdFǽ}g0c|z E1MVڀ*y-gNS9o*ZRw}1\9~\i0'k@\wơkV fzD  dl*½dE o=J&OS|ܣ:8]A:zvڣի(M.es8© xt;|dYυQ)̌m]R~kiZTjPe6NU~IzgD=gV!VI!V7DF0UŴbk:JFucw.D12LG`9ԝV{HbP(`W* e({u:.)I[(~I?"Ct [VZ?in8Pt_q*}+,؂"N?*Ar+\MI`VرRE\zg. wힶ*{ކ7x$ECynPhI;gOgR^G-_*+# Zo{]ק myJ_P45&DdlP%Lb?cIk2/J+!{$aRw Z6vf7b_Kax@R*''g-|t|4}kJWl%Fӟioej'h(7 ۈU o)&U=ɲKdPdغu]cr$MW~.ԧ0rT%tuU} Eu粘J;aƘEab'heȹkgaJD;I,:UCNSգx8et%ԜǿH E(Ќf0'tۭC|7튰Q@]oM7h ra^Žr;#!CacjA_mgNpJcXYL P>!F@pC=&9.IQ撵 ^a0"5jKpϣų PZ?xlPa8H-|-XfW~ TKTv^AGze)xg_D 8sH| ޢgۦܑ}7#%ShMtAy)1WEAzъ9r g{Egk ̕7 :_&\AAF>X~A< xPcWaOQ/-B%F-dC0Vk%vMKGhj;ؒ힧MP±K!'e\绿$7_SuXd='0E endstream endobj 334 0 obj << /Length1 1969 /Length2 13269 /Length3 0 /Length 14475 /Filter /FlateDecode >> stream xڍPҀ 2n3[!Xp ];!e#ޢj^CC"nlf)deH*K9윬H44Z#Ѽ:; Bdi&2u3Tvv(x8 WCg@ PpvtCtvZ۸W9;@dknP6ut|hnt6tB6.ll^^^n kf @iie[cEhغKle  l-\<,,AMy%ӿe _lv657wvt1uuX:XTeXݽݙN:9z:])@F\`s3ٺ:#_aގYB lAo˵wrrl,jÅMR^6o"?2kKw7;;;/?`mnW-˿o=]]VomXZYCzZA*@; O7տA7 pvrcI+0*%$`nN 7rxGuwrܷsOɞ/c8M%Ϡs}?.(+pp[O/Ͽ-&m vXku%,Nmĝ{n2ޖj6ɵZ4['K5g7ۿ ޶p{ɿUo)̝-2n)d6J0m-,b 93%$Pxl2&Лޢ!z*Co1uKod2!~3el\6"[6>.6oo7?P[R z{'؜${}%X?py[' |Jsyi- Ocsr[/^< Ǜ?-?j=?(oii\0̮.8 ͮN x P)dt#:ԇ-M-L >nmlKVo{2IԘmGZ1X;)" ؞߳߻`{Vn4;~Y+{56]6ڻCXp[(7ϲPuQ|,jr=G KtR29KZtQKUɭxTtEEߔ|p9c(e K*)S`NNraO4e+B,P/F0=aJ4Plf}F mꄝo[:*E OUH:Z81`gE/L0z˔#Ԛoˑ}4}J760Ǿ uq5U4Ϡ$aS?2=(5֫6k\OB3R:8BYp-W껫.57N69ƚ2kVWI^ND%/óŭ2U9)ۙҫLX2/ē@-7 ;ښaV_?9,6!x(D1B"")3h&ݐJ %8s$>Z2~ny<8ת6\'=T*c2tA!ziX8vLtwv2$%%}@W¿jӱe8;xaD"8F. b꥔wR,5iՙ:ˊi.5( ZL{ ǰp{vlɹOj \_T]tMi5l$׼2:ıSl̺9mB ЋަjQ{By`~J8{^3 X\Hx?{] Bha1M|!* EpՇdM/߷>`2F~n4=W4:PXuE0jCDʾ2mߤvW'6VgW9pͺXaPR6  dSY2D^TY ׭C}bPy%gŮd߷;?|T/~yX"HH8RS q 3;̜uYi?ݾHohF'i6WpJ ~2Tn[TYP}#4nنЖw3FHm_DWWy۲~;T>|w3;Xm~c~ّu\4*)wY&C\XO[fy€M͘C)#e-L~YqV'у "!d6X*4/ω> ݺ1a<0itC?瀔Խ|jJp!IdQ[K[쿸R:ș+e?ha.Bd\ֶUؤw4.TJl9ԕ̤jT))SVu/R H4ް 'v<EXȳIIu>m4$/ 4NM:s2T p12}pf.];Oʖm ƒs%GC˿=1\BBsg5r܍~7T}` aҊtA#꫖.,+Qy$^l06L )r h݋#:[* U$),}䶽xD[K.OEDyr׫ n) 16ձpM69w*=Jй$[yɘ97 ۊfqlt-z*hn^D!y-"fi'fst>7[ *n1mC+ૢӇs@i#d2iɀIE}hq5v؏!p jx"[ߊ<{_)Ba:#umUCLU0h>a=ါ֞A\=_z0($ 1n!n;:1);I[ɣ8"jȒhT5eݩ(b("sO zcRKݥf3+ئ1htꠀa ݾ!_UA096fbL[!w}:^H, ` VUSuJ)H:yvq,,<)povgk}08÷5r0&}Ć1Sk ԀEيc<߈ țafyo[}(MˆX&6h[<.O::؇q}- +I4zhpz~L*遣BevNEùtcc(it.ɻ(3d7&y 4'SiiU.b!JX ^Ŷ {6&h/h3QTADnb93ͧ"~$l:fPcB}WW p$cfF!\&<3(ߵLIbކ!à:cUr;<m"+!CeQ%o*\ÔS׮'d!5/a.E0"ǫ,Ϫ3>,A p ~s9"q^ɏL&{]T;ݍb,P(ك=aW|vd|%>Mש|m"F$֥IXTڿ|ؘ5^&KD9yتMWs6I ޚ:8olZ8{az!yDim_Q*Rnrvbwo^ R}=F!KQ`6]-m9zId@ ׆a/@a5s%x`=w6\isI{Te7󇌓ŞV">>9il4 ^]<XHC ,:vGkSdIx-< ezdf}<®^Dgj5X8f5Mxe,BzH #۔3oɡYB[MwUKZ)J*L㝦l  HH3 r=ҭBid-Ssus|I{4␾hm^ec̗5hF/?Fhy}e-ZHJx(h\6\zȔt܆-tdy|f8\EuTy9X@x\Ni KXp丂 GVC' ̼/;B)tSKotOp$=8cΘyn'nm>h Pj)y aA/a22 vnrG_n~L n;T1y̙JϤJʁ\zppm톚˝Πdll4t ߟmoE~aR">I}/;q]SV#AӦT~oFJyϕ 'ESAG syr$]"enm9G#3g~hЂ{~S%8aU*%Ӿ )܄cWwPFE!Ժy4iʱVlYIU$Vmx61az'>S|61(.(8Oea:ηjo{4gJ4‚BD%9Ld%Ӛ}(mxKy7((rߧ5%JU}mi=|{k8' t#}TR=6.˗@e؈ 0G\Ql~Hnlj9VnY?^{l ZтeKvc=_ Y)U{ Tz-+(4֒^t"شj]y"m@jg|-Y](ޫ@>NkcW:,QAK{-k/\X»"nH-M _npjyb2D0nc)nh՞ y:INǯ$a,؀QʔR.Rh;FТ /Ã:eTu2V7~al:[?W0%CɖV/;vz}I`1:߅@NME/R\虑\EҔ3\Hn/>2TRkW_j'wB^:I$ nf9=a)3EA_J=~D*ꃌI[Y.v,ԧƟM6#{אh b0k"omj=W1!. ꊃnxKmqNV_4dV,Ttp&B 6cEKs.YGɪ %wq!|"*yJF>u wg{ |"F3Vo³0!a4A Ke2@I|;B\CbhAxRB=zQ 1Rܟu4Z %J?YV.EGؙm_?~ZX=@m .0X >LM8@O~:|ʇ𕴢>q ;X<+Z$>ņ]4ľ "Kmd?8E%I=j&ٯqPlZnfRp!͈xc W͗~LAB&CZwF&@iKe|*Cl- 2i׽Ϯm:L(.ZAلӲ=pEN *(q}UgJȗܦ Q։ꉦڈ"m.\ܽ 2s}엾󗵓Ur iyirf_=h0TwAb?p>f}_ͨ52pԾqo}WT6E/䅀K}3sc ZeFWN$ӆ%HrU@}@ c0#0EĆBp͠ˇ=Ӻ:Y!j% (3|Vt o~lIn>BE[],BelTb}IpgcUX]4*JϛF2Nm(5r9XhX-_# SDn>Lp}л|psp}b8(RUc[nh[(8SG ؞<}\yNcCSx$/c]̸:%׎RxWol,m6NMdFđR&QYk]80S7Uճ)?1qxtT1rk~8<=:a<+4ԭ,z҃{zT=3%I b2k՚d%NҳkwZ֬ %8G/mcth:qOo[gvkf SGlOiNrj9+O=BOOzC}2Ԗ[NàI]Pe\OgRy}44HmV4( A!G\a|I)'dbI,u63m^)GXT51_ vCzq_GIQ[ri8Q9ubC$30vFب+~ ":zn)7\+iTh7iS_#$CD5}``q5q"WҊBiJA@J˧a_59[-PL/"!pT$";[Ψ_ѲtYlz.31NT^W#h$vm vu Mi$ ܛL&G I%'"5fj)cAa"aIP'6DihTF:9z^!|UN+zށ, ߕ6z J/֥[I[rB0sbpr8EdU7K6ճ,d+&7Qzý cqb+BdUDm ?Vgr 8!Kqp RnUN0d3Ip~tQkx@EC]ݺ 5uTW!L(wLwaY*~P8F9P#C e 0t4Z% M[(a>lPᯥ_';Ї?[PeT^nwZw$5܈ǟ#JoaX$*|^ڒȇx"By/Z|FX5`<2`UesRvGYoPM̚aT{,:®1az4;t脉)dVT]f͍QH}Dr yn  cI]Bv߯K,ԷU0O^S{rj /M-a?8~>4&{vQ%܈??:iWۗXGtCcB| kb*r!iwI ||53Fvsmr6X45g3p݀Ky{$31~adw&.e_znE3CGtnIO'>{RowW/}:;"}jt"]˔xJIJ;ܗ$*L%ekeІB71r\60I`Y}⠰yW Ya ߶e}\ 69q78%Ͷ$Ωv-f8#:$A[vqx$1AujX b;BY3b;M>;bTx}tNb"v|[ulFˮd#+ v9`ܤ@Z&:!|;3ˈ `9GhG)?4S㇘%)GvKqъݳ\-j,1zI @w,a V*6 vcd@| vm1uOuA\CPbY)/}:gaV1x8,GŮ,B5m =ѽ.e 5rl 2ŵXQݵ-X$1k12 b rDZ0b¸O ]S`ƻ`CPo^zA f <=~1 J-ޫ-ޞK=Cx~uB+A~!%Fުux |+dmlҨYL8jjj6eODhiw ƠY3@P{pME;VI rlZX UӏrW8̠be3%7=^m&8T|$qbθb]vQ@wZo(.$r^ fg?09n':yD!39`ȓi^ʌ&{|R8?S$2 @+qD3kP̍P#HQoδ$rba]Ŀ hzGY-Ơm|<5Ju*1]xik.~T𨵐$ 3gW"2ث՛ CBJH51$OJ~Cbtb}+p#g)/N鄻nِ)'DZa\~/BRaq0:i WtrGs 2=+(e ri?sjԣAY eR`4@,8#0UcU&a-տw@1@ @[}˯kh૰?z2|y ӠJ KN}b0DiqF[;Zct'^C唟'nP ~9ցId4XttyTJ:tm4wq?SuwzooU VLKe7?^,?|$z흃,8[e]gb B|w꧗b=noY ӟ-UPSݞºlȪ\K=>R]T E|c=;6>yjxچWU6% "bnw:>O%F>\)^0 ^Y[ {x^{Ǒr/[Y[;LTacJ>-ytدWmբgH\Pz%`p03};:^ur @ Y+"13(\\cBGb6S='~%]Eɗ!yKVE=(=_GZaJ$L[#vRף7^dLe=ϗ9:֪Ԭ${qlg?rgDAV_BRH"<)-(.㢶V!ڝ,o<z;BWIQq)o> stream xڍwT]6 H(]C7 %-%ݝ330  t7HH) R"%4Yk>{saᖁ 8(P @ff]EAEB[uSCn@> c> |  @52u0"0[;2zYDE~eH5TN+Z:klv(c^^+i+PW( jv Ե lP`$xkpYC᮷np ] pU  F89^0-j('!0k j ~kyM@~}dv+/7k)s߾'O@nAQ 7 / }gM02@*m@?nӿ*vKl ;)Hd}eD)9:v?n/­hPS  >%v dඎD фh]׌9PM+ץw;X s%ȯHo Їv!Pms~@sȷnRث/#OdR>#\Xg;yS֒z{i= %ߑ֕{N2s}ͼ=uC7T ^sEM2Z"gDq`s$<> SNǞMy/vR0QӠ7dTeĽsJ͟ ݿm[cvO͋r>;1.y0Ho!Oj9uhɨZiS]*2iuWg0TEtk`6|MyGFv`|As;TRA4n}RӺx&I&\Ң>SkV9e|廵GWɜ:*1ϋ+_@vM'G'P)д* z4Onղgo9rf/kXfv/D'iSJN.,UOA!xBc{CњQd tui"ȟ~VR<«[*ĸkjנi5w*!b]vp+(%i4`IBݽWu WEO5Ha0^ɽp͏yb!AybI)XB5Fvv?_o[ÚxgK:97բPBL =fӂՑ2$ꍬQ-J HG0V0PY<ԖզS/26̨* 3wvC=l2^ @A!0=&~81[BCh.Rf {*PznC?-sL~2u>Tե6\ '.'lov$w]ݲ\ #P aE8Ƥ0_W?EI9|B]-T[kmg7T3ҴA3)T DA1r/ҁT v/,q{{د ҟ }tCsW#T$;Q=߷9e&Nyet:96 q1K$wN\?lLB0ߞ<pB*z,b%{HjMmxڽϹ:ӼH!7_5^C 0 llI FD {'ăFi2) |O.ϒ2crsxsɴcg{f l4=*6w9&2ǛD_dmL1>Dnd*mAz(^=$Kt]%;Z>NNS Fq([KZ莽xAbTH 5D*}jtkHg;5EetR6܏\M=ںtOu(!kIKZ_ykryMpSg| e Cޛh~3$Yвµ9Yyw]3;1V]}_>X} /ҮZ쉟و= l̾~?zәp2-7c^=L:7kG7fb Y8y6D}ܷIU6ZҌǮXh=)B˄`^%q-݆h)MGȅ Lm&YrL~'cK(懜Yg+ؙQ݋\}ow_F>Z_(sz|?#j"^e {a[zϘ߮EmY,x+*ҰF}_ӳ$V-be/jȯTD/w&*L!xeboa\ʪ41+Oփ-ژTOFzp)~2uxgZTOL@X R5F)F{/{_I}_WV}w?M_U{~RQC>1h#7dʶGF\P1+p&3$PP'A)%*Eo7Rmܺ5m$:Rgt!SoHj2e0Esi LiƧaiu~"ߊx'Nw#駿Pq댧9XDvS7F}7d\hE9_85/6'Lqi.J0?T6;#ԍ,w+Ю(yC%.Z -/U:xwq2U?QO +7T`SDXk1qŅZ5\E7(g`~ V3_RMZho-yVSdM4W^}ʕXr% >ausÒwvBKKNX@u[/ahyDkc7(p`wE}Υpsw\fz 踡 u-ष= ]-uÉV.O+Sfc:>4J`}oFXMJJ!oߋojDƏ 3K ?x#X]pz{p~v\޽&>9tH2Dkrc.lr[yVzN3qw %G&$7{*DĆYa2p ,aRPlamʆ-YV,#5CIԶE^{%_v*OkkL0s4s'[*KNZY{QHD/QZ6:}l+Y50~ryũ{,f= jU3 ass%]ke"7&[:X:2~Le= Wp|1fV(ci=Vj˗}vMh7˂DOD~׈@SWK2u#@zPy"=E@vWO⸆lIJk6Z/4# q٘<@ko{.tsLK4/WFj|ćEG5f)믻[]=Fw=8%?o- {j6&Ў5ˢK9bhIGa6zilHRVY\ jШY"xBoFO.M%;]-(hb&[.\67 %D`8Fjxz{[߱c[jji|Co4cVm;Bb c%?nP`6Uaa{c ^ TGUQE',&_C2#~^j*|'De:]^ɉۥNƜJc:ؗX68aQ#-A̤^зB_OذO%qekHeFJr.;@I~u6!\` zJ@ms\O> 3JW%7NZ_Nfk*\ahZJ)cNysR }ƕT7 TeNzeVA'2樖疋7WTbb}hz^L\bU6AFt1?i.ӎ( iI*Yywg~{'iwixQh&$Fog|d_*R:-/y ?>&MbГzxCJa32`02q" 3oU5v \N2-(> ¢$.lˇq12z70;7"*§io& @?bFSS2.5-Z5nHxpHX\];jܿ-"ܐSInk=В]€E֫MlbLY%C$zi[k7h*qr$ ϙIrmBsY o觬`w&*2_G!2ZGƾ\m(DBa5bPѲ7uŝZM˦+N$U^f](9/\걉ߤnnwF=&](/v ;jDߔV;<},q<_T8~i>1^oZX^rIFc(w~UnDGyīDso##+ە@Ⱦ8BE @tɎ=v{iI}j@w@v.T]Z3x[gC4~dKz~ȆZ]qVzg7fD =3X\3EװvKBu WaR .qg,5{ζcEǘN u앒6;*9yv&&_Rg@J=G{5F3Ɛ=Ќ6twib!W,&7%i_ ˀُ.=T/ܨ I:󖠞=l-nq*M3sw8;`Җ25fi\%_ɭ0NUmtnbc&UwJP=%{9>qxI]夡*kg'H8&q YMdGZ\'iHՈٮtWq'yVp/ڥspUz/J=3(T-GQJIAtakIn}P0qVj6h &՘h7@Ozn,M6(Z~sDwg0,,׊$p-:K"Ftjb6 blt_%]| '*01N Sʲ;˟,]Gӣٝ7$B3a"ß&m$>>ˈ*k>XˑmSaa5ʲdUJ*kvѾ7ܰqo-xQgRtoMu|&, ԒkmBB͍|6 #)vosᐋ5ɮrJͮj}±Vt=Y+æcg](ç$eV {dx  endstream endobj 338 0 obj << /Length1 1455 /Length2 7073 /Length3 0 /Length 8051 /Filter /FlateDecode >> stream xڍuT\6!5 = )ݥ4(CЈtI-J4Hw+Hw{׬5s< ;C>(DAR@%%%Ap#G" 0>e0 A"@Aa$"]`4 j"07nkl  JJN*8\0F0;B@$Cy ,% vrGr=(;> 抆Aꂝ`` mP`WpC`7L; sbhh8< U @N`a ;€TQ(^ ;!1`4~sU`L6q;Us* @~S ~Hߦ Ywqi( ¸la((HB\$a;_[z9~1]8#6F`~pFÀ(WwmP8c0?l\ _WAGoYXEAUI篞**"=>"@>!QP$.,]!'H@ j98Cw1]$F0 ?b7 /.'^B0uGaFACM`  ww  g wS{ (okC+2q 3q߷ˆafT$ `/1(F)<K(@0)@L~@+-K\_% ) pS(m0|?0' HW7V*{ ?!DuX.dfLkNu>oUt9͚8Ya9cVݴe{,焁 ;$E&BNd䠶줾'<8ިk4~X&CAx{Y޺pMνe(d4V-gx ŮYg=Pt7AlB4 k5Job^5_'xBʼC+D%u'[{#<}䆵޻yn$ \ͽ G^i(J#o<4IrhLE8{nD"*J϶ro\'_u݌ " | Z 諗C5ofU?,իzS[HV${ٳ.ݕ_[ Ἕm=+,{*c`?;tȡ8*m#e0bQfL[dmOG`}NHBBJe̕ųRon v ʮ8TQd['1R XMZD4}qZY㸊8$Y y7_Zg xW땨<{fR.Q^nfE>B$w|ȗȢ8pH %6O4΋ODٟy9qI?vFY"BsNڈBSLJ hg")e/]u:u!Si9y&9{ޥEX]eS?p2zG 7gq>kbVih3)aMڋYg >MVē:/ "$KYlsgMIC_iGJo\iJd,=+gumh^9EpKY\ ֡Zp3k@R:lQ*qF{ZI,Tá#+wo,o`Q2>dp *N=Ȝ F-,@vr|8{KsGS:g\ipSz]R҄'WP''f͠wG-{ Xq[u+Fdٚb!';{|WKWYK/[fߓ߇=YGL@絞GDTl^[C3R_+!W6*l)`u=,W#amB5jfRMj16V]ky5U1ڳOWkWtht9 cќDp^6n];ُg39KO4Nyԫl  :χLv{2K\wcJ2c3 j\>s%9R>#n[~|j`CDADmSUx}'=|p-/m&)|3aYu$zTRL!OoO/VHuGw5'-i(9637k|}ӎ.\̴G'վ8 ߡD UƢ8E#!1[;F11'r.4Gk-ЗkKr'U uE>D,($1lD=sJClCF/tPecJ8^|*hBr$6ջ]md%~IyuEvqËt3+#%Fv[O8GR3g3ݱbjpW&ƅENFAd9ݧ` aūRi.ʄcCQf\pE ;6 :P绖G7Dܽ]yy8F) /ط|e(x}@A~:]hV;ƭC@ō5 ~BN.d H:}9{~^q0O w'ZdOKK#uHB^ '5_.m4 nm>xKW͹!C soy3H`x^XY^7=X,_+ȖbU-oā+eraYciӻn׆/ }D\^6şfRc'6{%nV~A$\P-cE,Mƶs2@|41Շ<; ߏL_!#R20 Q=|įb*&_Sԧf9RKRFpOISIaf`~v{gDYvΟ5`[Kwiot Qlm޲~"[/ ^a|25M~ QbdY QO.nEڧibF1Bwÿ_~GG8SgN Aʯ$=$=' ɓ;\ Ʉj UKQيT -oí{ Ta ΙEH[zSҒ{؇F8RL*U͹sz,gT&~n"1Kp{= ;~9@k-aҼL.NO' _D49Yk$Mnn8j|JNo6 d=_<ڌ(Ljh׸QHsd?28/bG.a3^tb:.>r1N|iu=g6¡ūG̸x\7G(qnګ󗾶w}Oдxwh}gX-s_9죍H݅Wb]}{lRNoZ?5o + 'b,Hv"z**\3zs,įse<.SK~9wWkZ%h_9f*o/?#̸+Ү|oRic wD@Ay4ngS?$:I1a".!kcbםd6YR]U + MKfjKu|#[P3!ӴOM &J)UA𛁵!s͞#m6:oEÚ\6 GMWvyb%;}:7>qdbvlt2.߾] Ro֤I<:]A6ϰagrZv{W 0%CWT]{J9`ۻiл +n˛%M?zczR]Q4|ؚ*KGZUk*:fFM}Ltmyftj8@91~7wTߛD'klJ{9k43~, endstream endobj 340 0 obj << /Length1 1437 /Length2 6223 /Length3 0 /Length 7202 /Filter /FlateDecode >> stream xڍtT]6]ҍ ]3tww70 0 C "t+% HKJ()( H}Z߷>>{sb`̯p!(~P j@a Prm'b7"a0P0ƦFup;$ Iĥ@(7}a]&bWFx a.}pA IIqE(` fG`qA<7rAH_#W=OiD_1 FB7w q;Bƚ:}O(/_>@+  <<stP(>vF}0w w`!|S!H'[F_anڬ wTFxx@(o_PMGr~)h y@5UpnLD9CQQC\m` ~ojF{"<N7e@aNЛ >`\@Gp:D~c:9$` Fa{鿏XPKGDYO4_HR Ņ dI?5N_4}τpKq#](J!7/Y]2Ug`{ƍt}P7cSͮ͡.ߨ& |3pg5:P׬P7 oz3?RA84!Q1JL#ppS^0 $u @ v|/]B sy{ DAQA"ovn{6BiD:ʵ!Nƨ G9dORL܈eb k\ ̗&ضAv7ډfhޗ(637Q 2 wnb/ 5(:So.fzpVLEiMx${C=+lekfD¥h*!n{ Vǔ9J_fKO'YRзkJJ`;3to~;wubpX|H<:TECy#K' Jq*jA)n^%I/fŭ-a`cR _'}$Ies1ӉUԼ*报+˓L{SyOmy %+)E5+a{!N?Dv$fоjGŧ^T}M{[ip2ԼsշAev 'zj_DD?`=lt_ϵUf/bURb3 #_̪ClHsNM񽌟]/}4R(f;#vYl:5Bq/vmf|?Pݍthl4Mwu( A[)m<:[-uo6 T/ ;ű#h4jsUQF ohX3F{Mw]G$s?E$7? SvMu?:8a! Lؒݑub}~HMsFryoA g+6NX.׺а.fSi$ŎBφC?}GsܯT亿kM |cTnjpp\yZ;r niS5֙%ݙ0dDyS[>uyխhWڋΟa>_fBFdRV=cU5.MYQf7f~i[ZsNs3K2+t5PDž/;zH1ƷɅn%vh 躟YVc Ь 7ItN&]C #@r%zIF'IVͺ9@Avx*Σ4Yr7u_vyEҔ`" /lTbGch,_:;<9ωN06{RėZ2'O) QCe>/֊1O1-R6jgnGD2&}+<ڟF[qƅ^*E)go& ?}#EIWK{IfHHЮd#T7WJkbKdِ0X*}6*J$M:&k!iS?z1#+&|Un23E.o꓉Wz*-(t{vI"(BPx!I}_ Ԭc,k)،n_F[I"Fd5bt:4 {[m2yNGӁ "ecؗGAgwz)pa@b́ GwJSjcOU WVl#K^Žͅ{ EqIobPIٚL/d VQupUQf|b ة'>q*w}Κtc}@z Ѡcd:×2-.sM}A&BJu %&SRqbE~&mH㾪blI԰$x`3EFOk}dUBPI{G\dP={yjDڗbQ#s<Ӵ:o(v?EB@Im5!1h,OXa#RPJNm [VB^ױOT+yBvI+vsNHH{wNFi~6%wIn1l=Bvp/5^W6] hf/Ú~ h|H7GpI,ӄbIY`{ S \6fC?>O\'y2Ca8O_ÇTFl%Zq> 2թ-׎.ھ7baģͭ0A}-Q&C4?^ֳ@[u#fjj}upLn=c첡XKcZm50|  f؄Q@5"eꖙ㴝QG넫ÅwTc&%Ӧh k)L|Ŭ c%NF yC fI4&6Ҧv=:١\msΌ}H<%A]O3å `\N+T.V*Ymֽvby| ˝b#37[ dO1M9\ɩ.aֱ>7jmxhaCr㫘3!0?iOwAl盇#)e_lg}|סFmүb+vqu`aE-Rד*6EU׆VEWoqkNE0u,;g3{^PnW?MFF^X >D!+N1Wu%?o4^M]IpXRj!(\]qOi l~<Q > #rC?|ИOߢl"4$zq3*A͇5+gvJmgV;6]XJ4LѢ.yȖ2էQ4*^'`_x񏅈Yli[% 0mFrߍd,e,:`,Ļֲ\Rf ڴrOMqc$#m׮Ĺf'YBDDM\j#?DIƤ 2  woK1H:%!Ote .~ר* Ko5*k&k=vȗٴ%Dw:m69>j~?@qktz9j4_;n|*rEȞ$YxWGd5osmDb_rau5hU|ҮgEF<'2}ƚKQw\죕1fuIo<޴AIrQ&G޸N>å}!ENLꇺcFB}r5B8/#GM2q{;Z1$bxdx7YSv l \R*ATzn"-tS? &RnY]oT\R߶ėPsy:I!m%)$w* "gIi۽vѯ]'osZK4VOׯ&MS2*B^ J!8eiv$9+c*놜C:' } !ʚʎxmk?[N:UZ4&R8t w^FA֯pm+gqj{:7{-b H>ZKM%?Hyur? >HN2,0Mz5l_EE.cyfz4HI<7ȺXS^mIwOV#K(DH/Y~AH&$oC\X~F1C-q>'E'w~ )<^"{%[e3-`6Os;\:e-@sG. w$^d$lf:Vq_mc}pIFP /v-ũNCQ!lŒ(wSl>&U++.C0*fe,D,P@Uku2Y8q-LӰ(H춼̹=Uؚ(:sKEA֝͹MB@TgBH?qZj edJQ{[;YC5H?-JX)h%n-܅%h= giZ1O >{HfR>TUSM m>H!֌rtKx9r,Yd.T%aqXw~sNv>䅔۽^TM-X d'W԰Q%-f?Rn–@y#SW"'v#EmQ9\ :fWtExb2\ xRqlSbAJ}_FIj #Tž=˳uٱ~3ycÃX*͌:5mOf [˨eoK2K©$١%q+ݯ+ 9pf0 r f^Uf4 G'hc. H]e}$怮mx3yת le<2)u%=P9L^Ad1Vfv]x:𡼶,i$[_ǞÏB) fAlc9K]bE_D .:Sٜ*ԤD.|~(od >ܲlw6G/_e,ʒ8ln{OtdY*T&cВJb'dXRZVe3W"C y݇#pd)0|*h"lA.!gK"ߌdk'62#,OFڅ:)Yz6|$@յ7x"7?vD.Sl07;C ~8+d/5;n//;Di1n4ẇSUy(i:@ULVG¢.Q\"U!Q.$֚Em S@]ݝ4W RkC [u][C*WɦA0AZ{RALJmϿUε**;0#B4^9cS*wMUV|01 HHjUz ĹPu|gri?Fp;iz̤Pg*\,ʒ^>"_**@a/6HLLk&Ɗ f(ś4p},]}T yk;ͣMx&b%Rj*QU*[>+0uc].V=N[2E"']}6Kd7/%ts endstream endobj 342 0 obj << /Length1 1691 /Length2 9555 /Length3 0 /Length 10649 /Filter /FlateDecode >> stream xڍP./^Xݝb-R\ Cqww{BBq(PX-gsL=׻WRP3<) QUUprpprrc20hAv o0A_2`Q& ?B/]\<.~a.aNN7'߆Pga,bP:a 2PGg51ߏ&sf){3PAvM9 Lp0q@ęn5@ ;-[ƁвThB-n g0Q`1;]\,΀M%#Oc? ?3jr8X,!v` 9X6 WdhG kÿ;C0waYBjov0' q?:@F mX8 N.`%ٿlEȬp ['p-~|l?`z@`o#L..0[A0([ qp>ҏ 'GY@<1c@ij*4 `pq |;+:` ǃf׿H׆0;`?L74.4H=ӟ=b#u]k }\5` jurz4;/'rLx[I?ڿ~A~_1^{2sk?U o ~\Cj{ ggqM-p]=,Θ/@-@ȿ ?h/( >zD {3 п,t9>rˁ1= beOǜ0;_.%}\ r| 8;?Ny vc.AEm;jط'D]rOM642mդWϼ=x/٩=\"&zmEI.qDxE׃!aa5ɀK#QːLb 7߾jFI_| ڌ6HU{G,uV><:?@5p>/'2B!ˋVf9.`sUک SRie47kJ|e"4܂H0jağ7žժ/B=g\S &T+41tƸZ"Mߒc%d> Zd 6L/^ ny I6]zyuuI3.:D9D{7,{+̻9~h4Ot߸q0RTyvFCeݑ1UKTHo-Jr+n?A;x0]Ko="a:6z>)Ltp TuR4xXFX۷7B .ۓI[꒸>KLO^'EwHD1ԑawsfX??á62~0{<;xSv38|CK}D՜ѷ:݇㙃 -OܢW(_\/e%t5qWYvsue,yvYǔ10r$"x\YaYi3>!pg>3nL0x=9hwSĀ%kXCӍ!|j )|=6(r2QiPc 3^,YF.v޶rܞ/]h} (w2|:MkקD̴:;,QCVyEL2`f m޴&.@ըe]̆0fUxѾGIKJq{ԊYj?u[L%1׆ hj&{fmՍ;6z㴳Cֽgc5e2еm J<%]/kb^HH4c7Is Box]I#BQ =&E >FR61<p+d l0vQ@HJ=A*{ͭ#LB>"0u`FY*bRvmdm\=S~tNTcmҫPmxE/aK@+GyP1Im-?-2rw7іƁ%=c CvVuD*toɳgf05yʾ04 dbm]V͠^5,?HdZM.`* }T:XlU xQހ) 3.ui3BQZGyu:'ҜRkΕ1j ӥM`Ա/7ƫm02nC,.7k[_O;أ*o8^;2cfwH10}1zH,gFBCx'5F[;m+jՌϓ>ksI6rD&=苻-ݝs)1<0| , 7Kfɶ5wzuPO6S 5;Ӑ =H$ڳl&Fe!{.[[*X!03t(Kt*nVgzmȮOMF}S&|~Zf*>@ >[o?^ ݅ӑ 'ϳko%QT 9tQ<hg6y:,(lȵ*"&~S^*70}!%p#YҀ4rY-+ Ma& 8 t95;MĶI\jc߿aUKN߾"z$׆Tnž2RDE7,Շ y++keoOf8Z~j;]MyL;:8ic)ϸ%c不Vs{f}\)jX1}on'!Ax҄9K?l' Zm̆dT to]EcTZd߯AbOL!nYqŹ%rLTY4iBGLUZd392v_-.pJ<;S㜫OIc # J_Vȳ'\9` ysJOvoJ-8}LUm"jR(bgG}^a?+k\;vR}(K^sb7ŢKMv+ݗu*q2Y+B1ڧ؁5o2w~æ[]6@,$8{b~r/g;ۯm{!UHu얻Y@v lO=&'Ӱ(svǛ&'.n{O%A3&r >!o~+T`pp8ԢCx&W!9MyBv;grEf-Y:AlƇ3 eAI~|c'HQbbĚ l_L@*-0ڏCR kg jp GO{N UIwHmr'֚*9]B5D79e{l/E7"^Zmx=9}q%jdzx]JrbA%EF Fߕo2WȪ `Ԧb~N0wѦ`i4c@whw7LS^jpdƟ'`mgW3x)JJȗ^a_?GDRa}c`Zu]Rf||[ayC#"wz?)PVTv`fmAiFD߼v+hQMs8|{}ޙ#teSLtF^-؊)ӔSL;*&nt50y^g7iG?cNq᛾|S^yQ&`l`=(p6Ơ79t!~Ϋt zĂd ()U-84<}æ~*Wtig[b&l\D#>!;!c28xه7ZAt7儻F s+Ŕ.#J^|Hep?^M<7űh]J.Hv9dF{38H xhCy^^DT!SȝoiE,>йW1uͱԀApA]%9;/l7Qa鎄 ɴt+9 7/ QQ|ؒ]%dER 3~~O~Puu_0~owZ{JQy޵-t9bχ =?%]'g!bn搆R=@QXtvd (TRK!!{ߦ|J† Nq{OtS19}ƓOc >Z|dgP!kjʹv8i!ֆ1.Itoq=kya6ҋ!۲O SĞ{&-t%ERݘLq! 7h2KˑgDJqCL 5' O=rJ>`'fh>V4z-zN So BlX̗j IQ qvИp;gt GS$ki>{^3 AafnR]ʦUTK^GGOZ&jGLLafkq +3̟L9-J;0QT+QFZ/\k(o%^{`ڬ|.HJf5WC >oB;@rSO?[m8X.!9 #t qZT)`z:a4J4K ߧ9\ǜx{#yHVI>,~#c!{"b#m፹uZ|p[z>=H$:p)B>B3t3C=0JEˍp1;ӷv^GW,(|ٰ13ы#ס,WG-`EhL޽ Y5.JJސ(Д/3z~hlQUGAp!'Y+%5J+8݋D|/'uƒ˟=B:ru[!mN/~S\zc=:oH@lH A _࣌HГ{|_f4HxfBP ]6?4AUT5b `d]S(,52cw# Vea*jd (5Ӳѧs |o=  J_vbD} X*c``t쬁J 1cIXv=!mJ!d/W]Ca_N  0>tlg]ѧNkiDηĆbu+:[ס"`w<}.MQ-:kn~|Ų{K)E  Vl.meM:/Y9 'Ii%3,x愊ERw Rũ?~i!L"K͆QGsu4_D5̼ б9=I8QR|z>d[d禋0z/(?'wYsh}(2GN˂"wRDSh#QpB@~xi.Q5 L~Nk5}ݵu49ҏgˀV,ryFY7!jm@pEFq ꛗWDfNBxиߏj X%rDSNNb_+wyx(w͑ieYCI}C/6G<˖PQS=|XJ ?~,'[TX:&;M̏IkNjpN5yiD&K߬!Ś\Pw棵^'E0Z`),'p&}&ڎVg 3:z1$  9(4qEiWƕ#[LKRtEW:˟3uBHh}J8Wh;VTL딦up2uR]=Xtk 5M;@֢%YbY clcNdtil\U\<bԖVӕy@9 ;3UxW0~\P6Stcx\f(?F䫐~WZ9=QQ(QnxnM.mv*.-V2WH{HEBj`$^m-]UeEڣh}!ʾNM;[|5G]cDS;`>IMM|MmY LdGXË!MS[ c-0XsւbSF]"Jy|&B,bz֯QMk7jQ6}Rmm <֕Tҫkg?(}xn=l;{]") & 3'%_ +*M /RPRjF 6&[ͤi9wIeEЪ?&ߝ&VC=:υ6>19<`*Oʮwl*W_ʺ`\g͝H>7?i,#@ blos<JizIyҪ+'oэIH c #p'!#/l N zcK4,Ήr*y\Dcr8OE%ѥ3!y.GoL@1$FmHPl@ud|*IKC]XЁApea/]N]z8ʒ) rLglԦH[30JA՗ 7"CkI}.\huINa~>U\grCH3j)E򸶆 hf!j;>d dme"]ʼnmr)š`1wM@ NOXdڒ,ʡus\2{LPk>Ռ~+1^ }>2&T,/RLy 1\Va=)fI/14 ]4q2S]a\luO0O2_~x*sEz1b|E'[ѣ47b%vXaR% aocygy{OD: "⼃r'f }C,|c@fyĹk񡮃d=?L9ʒv(E΢ 1$ee6?LKRZ/2"7h:}^fW+<ͬ$_3gD 0p#s~?Fl;_r*Aqu(=ޭ)rŤ| S)/)dCi{f s){7!AkoQ|`* £jTƥ12EKfJ:z(823Wh{3ƎyYoyڟM%[q:{^9iX8HGq̍ɶ ~N ΐ]M^LH@CuQN\r">-[VKk{"~-:bi+V?OW;P!FKT;+n̍E#Y?)"3o.q6/vO$p_W_WU3˧KXJc@|X8Xq)wx74oNWwM CJJ㭜{lh_j) Toέ5Mr{eVawDg$ Lĉc(F9p%2ol8!}crد9?ESo3 aT={mB*?)5nQ?8l>5"oϫӦܱh">!U[{G1sh.I!}qar]96H:eMҩox^t ZY8 yz΁Yi P-3;) "鏯2?2r Ԁ/[*M]OWkfl47Mf;)r|48CK4.BWrC'9L^ܩov?yu> stream xڍtTT6)]JI@SI`A!AiiTI鐔P?ƽ߷Y{?{{y# 9yxĀ*?6#>f4A`Px >yӀAUwGxxD   `7l0goW=q̿^kVWTTw: vXnvBh r`0%X$pg1nnOOO.N]l9LƅC`pO+@8!`"jvz*ꀖ3f*NY[ÜAPo8-Eu.Am~An0D>qY!;:1ܬ]!p7.7Aܲ1 aO F\7>< [6P;XE/ yDEx U^;ˍ "Cl?l_7}w6//`V`;?n|W`ʃ/7sl`PG[W^]D_~aOAWQ@* .x<E\ӿ:K`YL`-`xyoN1W!EwGa# r8z HG@F?@ܝ;! CWGhC(oKj(XmAdW /gB 7#>0_@ ol ˋ 7n.( H30W_k!|M!c]]}fٿ{g`!5!UO8 ,0 cOW^S{8ūhQS"{qZ-m'UD9A#RQXk76u4',in=F?ΙdO&ⷊª>U}NJ%jMdէ.9S|jYdf&ćK$Jy.AGD }Ty79}t.]hدӱte7wa+%=̍OJh6U]$( D'@yu,f]}=t@Ȑ -[xo *OEG71]J'V$W%@LgwbS {.DvvMud,|}7lf$Ok;0YQ0ltT 7_?&r:m,NT5 -gStTX'\L8U=nN?< A*?"KiPQ)Z>Fbo+;ֺ)uc%}J|IvfDr0ij+pIRqUaɼ2ŗ;_|/4|)~k[Q:@)Zd|wUȈ&4~z6~LU.+.f@ ¾#te_m6"K oB)^71Ut4Us?(e ~TOL~kF"W R`U9tXasFZXa.PcCk]物F{/`W-r˹`}&,E+d#Z#|IOB~rQXodgq>7Ƒ7!SLnx }P.R@Ӧ~Lʢ` [v 'zJ72֑TxXOD:5՝ ؏Y<K~i\b{k ] gejQve`d*x:F7Ah88ěR>*LxCckʥl3S螲{U!)m5s<vk^Rp5LI*\Z_\p0d}{ը/`0`ltJHnCh"([ _յͮk`[S`u5>Z f ;8cm},|U-7nf6;7Pu=HԴOan88ktFtXW fkگE;6 u3Fkȯ27f%F :[5% kx%N Ҵ _uhMO=H7VG-<GPO|J%eAMFT=n襅DBV78(9Kb[oReB`-|m+dn}0( ݄+}+?= {3y݃01QB 8|D<5#tw6̧#fD/7h@߼>zV LrUj$'h>lS7f=0jQo0ߌ]b oxCS~ Cx}b^FܬoiV4Sa>5&N"lwN+G6]e4! )b*6FSb#E!H$}<-Phoڛ @W+pՆhtXiZ9(L1kڣ֧,*Ta `Ӳ'_Ln.oc&/;k^*Or^X$HThLna{ N\4#&Oq|zD=kٚW3M2یfH{,nc󪬘 >dUYKW+>\`ļF'I4xڒO\5_YbťɅ~=le{u)B Q+mf{S]@z$:ˈJB.m'0ޏ>yZ};g6};Ndb:+22/98nfyLbqdϙag9{/y5ew8%WAH4MSȁyR lXQ+Q <<=N;V?Ҽ5 O*v[?=.# zw߂4wX?z;BTZ'd=w >HQ) lt92~P˶h+kH0JűBwhrqg֋P:VNen4!W[#{ٙ=슻#}N0K&}+b4<_\GJ9*8W@۫!`CKoZ]AYMœy6i7zSg4Ïۯq|Ceⰵ9O2DcͭVg ֙ ]J? V<᪦T7)>vJemOu*z[ ޣG#+r#qzDJf|v)O=۶YYK&*ZvsɳC3âA̫EXS +^N{֟r7p8; 'ե1 W2Y)?@]#aʉ')UI19f7|bxG>h=4 ҫZר@Y[]l+V€# I4U mXӑ}g0&֥LB.it=:T_c= 3m>"WQELd'^,_S<h! DWۦ_>!\+ c Bar1N+;3H?gGfrdwd56۴Y58<6{"'$ٗ`Y<%rρo F  & Bcj_|p‚+u-i31"BJ:E,d"Oj3AGa),7 NV|Vqgkb5mnsqɃ籤q8._D5\ՓyD^=rzp6ik~IEEHfNs4GUI4Պ8 lVTgXۜWJ*..kY1H7|h`,;mL IXh-Bئٶx%vjd%C"WeOwzX6"P/X_ߝy~yk=)&0,8@9M E+»/)w,ea: n{&'.V-(6#*OU?5G lX35f&r~\ǀi׌p$*t@:_dzy ,dm;>^JSdl<#;£W49[~+oЌTs=aROQDY kI+R^!|bNbeeՅrA:űx{χ֘iS}d;˧ [1>q].mBm'㜺cǘ]1}PdүȞd+?P[/fͩXTm OuXdŲQaEDby{v1x;:< C>ˊSM֭4},P~HQ>Kdٜͮtʣo7[" X$>i b#glJWq+|o,Eq3lޥn,q{\/ ʮkcUq/罙OcK}Wb9ƅO;~t, +DM=|r,1n9d:zTayC(U߃ #?d6dJdÖ^jFm _?܋K9Yss+x Q >qEe:ZƶgoΪ-7 d!ǟ(fQ(wBx/kϵ`X/ct"YW.ٚjz{&G,&Fn aVESjx}H |{)r՗`@ y`-Yg_*irnr͉5:I(oxvjOJ~@NdX_p':.}G)Cf BJ-p#VkR[=[L9ٯqBX}┴1oO(.]61$9\Րpґ?ǗdFy]A%a~ bL@oBxGM?eHWRf OJLݳ.\vo1T4J <CՊ:ʫ'#1kRИ۶K bePоAw%4jf6 endstream endobj 346 0 obj << /Length1 1478 /Length2 7292 /Length3 0 /Length 8295 /Filter /FlateDecode >> stream xڍtT6)HJ ]3t7HR 0 14H RҝҠ4HIJLJZ߷fgu׾{3ipJ[! pȪ) @^. aˌŨqva" #mr`}Pvx wȁݠ5.2qb;z:Cmk ``9~ P 0 F@wtP%XlGnnwww. ZE!.g7%a:# ]np;C{r 87(4!?8 w~'-,`'f C \ wP{}i-_\,./ܿܟap_s/;;=Aj l7 OsX~]3ܶvCPvp{ho3r@  )hmUPy4;~p &K~t9N'#}NHa`b۪.tZ5m')'wkZ󘩻Sx3j)z,D"]H4>?aaꘉwg".PTnRo\QJJ-h0}BΜj5(,I=^E+νROA'M[D[y^j9>rl|TBoD2/Y bӺwB6l戶]K wL7^Q]y|B{O)@#& u}g1@wZ\9I}8MEW2_>@ӃK ϴg@gEˈyI;oYI\})e VSiz`[XX=C#-UN%牥q ÒRy.N1V_i3v.mψK/bq߇4kdu΂cX6{PLAnp$-淌&#ḁNY ^~y9_(OCj2v,TY'R/fHz5 hIF]sywo.Gz'W_Ao {.`)=9a2%6G7- "8=jpQ++&1pٞ+Bъn$0κW| y/OŚpy:4-{BG&T`|ةXiY4c8˾5A{Ftv6F>e;EfY 铥r%Դ[qnei lP 3INJaMu9nlO*Ji,GhZ;faNF*KBZ&>V:Ke- 'Š_㭚~ KbH6x"ROv#y^TڵPlf[Yg·FS*jj$jᅓdto;ݱy|E%u&^B1T#hVQF͢ў0~y*C&J\ܣh[.l:H> tpO Wy.K279!U5&o…!j KѥkG."EA(T]]2`jpyiFi02?:v%HhCQeRA ~쿩(Zk" i(@>S!R.1!/= RK~e,lx=JiJwOvBل_zq6kMe?SGo c 1˜>z=N~%\v.<]E2}wGtWc\1? qRC s>r̎Wf#л@+ۊ Θ%pLTĜsxAFk0P\t~Ho_{&ĺ5X\~"~8u 'KJg k IZEḙtSz9fq7@܂4%p m/;&6ϭ]yaݨ+Vz_r[~1գ֜hla˾,qx1ZF ;cuM$?)?V'al/n-Tz@$Bi@ V/-Z}hcA-^񩴚^Qv.|vkrrvPtЧӽ}b7~֭^3U!ש?6H*$: 6ޕ"02/AeEgL=3L~죧7[ZQ㞲Me.+LaUJϨZ 0qVAc$zع@fp,pQ-t"8#c\%by r{RX`mK#;\V#ldE5;Ek:`XOӾlжv?w- 1 +s$ױH?x/ d3Rc>dE:N㭶(D+VqY|[F=mt$[ӫKkn}BbI}[ed4!`]D衞 'iѪ&x6+4>M-!j^7(C׎zNm-M~g_)hꚦPެ+7,ok^E9$KI_(w85ĢPj1>iMȹPz)&{2=ٌTݿ.SGvC''AЬB~ʰR|q2e*BԤ}EP9Ca keYņQS\[-#Jv 3`#ǯ㆒O͓7$r}@COVM cKKzW]~axCg]k P&PDTYUbK/F֞xdGġ{8U~lu,M7#J#c>4?FqėNydD֧}ӜE`'Trt6xYoF3;ڴǤ(V{HÝL4SV#ӉۇŠNF15jXK$ 1wԏr@++*"],'3Agpk*yWg8*:yPf/4= .# =bv`B^RV;:kpGnU⤷@EPK횒7JFEȏDZr"f:224-|@Η.8` Iݩ7Yh8G҇ Q3*mIŕr`/xcu)wlk|^p]sTd |xrf#3<1\E=R zJL_LQ0: mQM (wd/x7͕\mB cU@׷<- [m~nuMxcvF#mǓ0n(bhWk2+dtAbA!tRl€Y$,|NK1r / A,L6C tek=}BLKH!l 'g朊G5-B iFGOg@X! xeTiql\+F92P[H@55 U L e%6e9r4 [ 9T)sTxfO7~KO" cF9*$oN>R7CRTUH9 MXs7j :OcU w^iuzn [ =8ܳc,hR+3k{r?r-+զt/ }govaYⱨ[[Gb&#NO0(m(^tE%' &`^"G1f_9ָ#B> 4/͢ \a9%(y&MT48 %%:j[+B]]v)ֲX_f FG?'fH&Wm6;^:W{h3{R𢶎hh.sJ|q2 b%}5GC+hLybklPPsaGvW.϶GJ\ iPΘ>iu)D^dO@G Ih?? uWfULE3CW+EE^ȏˠz=T;-qu"]H~s!uRe_GGGv٩Ƞ[:k:RS)F_瓔C/%R%P^?ǽ$TNDIy͠9M\TF&N$ {ٵqEP}ݛ^ E}]|KtUQȿ͸K]*Ppe~wEkZ]I"ii&\/Hƚ{v  qnU|۠YqbfpWȀv2_R^>;|2MƧƷj^Ef|?B]_6"z1 0hRPdt7!6qho|0@5eoT< 4XS9gGԔymrU~v>o J&Xd{Wmbz]P<:W:acy2p\Rp<{m#|bZEöU($x iX%ӫǣ1ʹZ=/E+,2qӛZQȁ3{ 5 %h= (4cdz}=}a$Q(=Jj2/^y9ڡp]7 G/%ȋ6 ՗K*ʥgǎDʈ+`og?ǼR{`8ch&rr vKb5mUlQV0=1*!nQ7SOA=KheÏUZjv$ Ęj3~!C}[#x{qjb#bŅSl\,W}m\>EqGa%I$e[!m!b;2dsf腢ҋAn~h2E qLWdXrh_3 \(]~~aĤ/&cŻc{XXs&HJxL|wEj`@}F♟RN.^Z1OJžhwdyע~/*++0`?Yp?^棸&6sHx~R96=aV7Ɔ<1|y(6{ֺ?!BH9/rO:\ISji݇Y]ù,1Yʅh%:˕Aܶ:%HN,fOq@qD/Ru;_\aޱx8,&>eYU/Q>A4$JY#ɱ*dϋR"f :/yK-X7.3ed^"Ec*cۏ; e$yc'2n-8[͎H{q(hg$q&x{ۜs&aE0Gyxe M5z|_J5_jhЪҼ1yZUIH t Yd-ݲ2c} endstream endobj 348 0 obj << /Length1 2677 /Length2 23126 /Length3 0 /Length 24629 /Filter /FlateDecode >> stream xڌP\ -C {4Bp$w&xp̝dUUkzNCA bh ttpc`ad)0Y)(ԭ)4.֎M@2q7@`eef23 /@utS9:yX[Zh#ڌE;@bmfP0qڃLjf@7rssebd4wettxZYT@9WE{ߕ1Sԭ]9Zy `tj2%' px d𗳉%Pgtr824suxXۙ  )0Oyf.NnvJde s1G{{+ĭ]f{3=Y[GOů"ݝ4݁2De@7333 zY1 KK `*omu5\܁*YXfnS 1o @{,_?~2oˤ-,NwDE Vf˯%}oeWw6O,?Ao,EGԿ\ yr_QoKtKM6nPp6} @skwq3ݿmv+[Y-5~]PcҁNp_* rK)`hX98&..&!t@rX8('Io `Lb7I70IL I7b0IFl&߈$#obW@J"nobW@쪿]7FNhF\4#P.Z]_ҙX@:3փ27@zHghHI &#Uj ߔM`{O5`ڛZ!uP8qvРZ ? /G"޿9~Aߙ6e;-; Hgc@eRAñTPG:n=9;G * uZ ;?R{F8ٹ$q=_ףmc%ttc5Z5֡rN~ }'SE3 f]Q,'6[ AzǭfM L+`Q(y}dt."~yt_Lh@ғVJ/fm70m[ (B mr!򽘙Y|#Mbꢝ'Ak(闌b\+6 = T*|sL[5X9.KevkGbCmxO5k49THvc&ECynVUb:j>xFVݥ%% Qz=ƔD]ԃľ9YK]q{ٓRFdYa@?o`Ic0VMsN{jPQ|[$3iּxWS/$[&&/coqeA%Q,nyiiX!=7<%dcz, (!_B񺐒k'G8EU x~8PƏ7S{Ϝiy3^R*CUcpw(RsIY?G. !3;@柧~&Q@ ueJIzW0YJ0>_.DOdS}SG )WLH jQ~u*_f L40Weڟ54?,}:۬9 kl1[hX+ h<Z/KeJm^l3EΝ齆{iӳ8D /fDgAmm{J$zFw2m1b7 .dt<|97qR.y#Ip Ssgtp~cKDJvzR#QE*1jfr(=>V0`ou'Fbp)Y),SM|"dqYq|6ܓ#8i߷Ӗ""VM|Z)_$eF36yM2ϭRbdgg^yXKvۅI-V/ngym|ǣMaQO׏'$=:>'SwCA5_G0=m|c5pCv?(?mdA[J7 ^J";p]zRV0~˕/#0LC=CJawG )a6o mXM9Lpþ_Yk>~͔y9lAf M_]'k/<%)zXH]_X75Yے6$L2)\,X&Xc2jO:69Kl AR'+gPU';\b8a%0 &6o"m3d)ݟzկm>q0o*H{ekPK Z4PkjëָgeghX-X%C9PA^P8Fz_5PUՕ_oy BLIaexW eȒ%7;NoH7 Jrov'މzDnR7.6P-Z .dbg~c<4W {GDd> ޛR/߫{Me['IF="%VST:3[E"NJ@|:i QN~.w)xuډL48eN=9IYK.<-:b5b,ndw`Ssrg̥K>R ,)^Ŕm}+1}:OAyޤ,-H@Ct.oJ@0<,TI*Y}542tNgX7ޕ'xeEW1xuf(X"CBpJVvO ;=9V3ϞJ+Gq`V"QrL- <.cr mCBSa Psy6((HUO@@ULcaņ s%oNSHD m,Dvt ZKc\Z+ͨ]L#_yHc1#m<,T-c&&M ݑ| pFΑ !T6peR#Bݱ{1KkFRub:Ÿm3=hthT"fBuvX[KmcsNc!B"tY+;bX_/˶x }6X#'_D^ SI~2B8'{ ,@C;G-2U)_Uc6?;Z6*[Hv nf{G}S a$2:"/Y)B4fo;?v^#wL_Js7s n0}A_Og+}ߥ޿J]kT >$zqv?gv-Oq F8m5&MMVhKC6a-z{QZx-1b2m*QO!{F4 ^e;gb·:7 b5MuRFRٰ,OnLqs/[أ?8D= ;YTZX>)</δJqT{Cȸ8YlZW]vNϠ鸠&į@RDP1T&c|o3,i>ɣ7W #گ.WaMi9Ҥ+y(J:CR۬ϊ6![g})oo3qD(f yL 6k!]&-/RnUl(Z`> 4p䙜 8tˈkPXs4m2Oo劦t]ao4tL_Y0y ?߇RY=H1ly.jЛ^.~0{aϔLC~D\-q\2IT)RQ*"!̲ȁ[/ph+h7uPVqj3^ٿ eMR=JbkJ/cbVKo2T87A܂[ W?<UW e;PXײ2Q|],y :hkF.sT>@ YC:!w;K5I=IQ\ $!$_֛nqDi9WST9*læ|^d-ٮy+mLQOV)Zd`G ^O?hnz|l~hd؅_0%ɇBHYNn]IQGRznz[HDxI {_VMg5MՖLp'ExU*R:4QOz(] )1;xUh`O9[nj>|Ӓˋ7llPH\X*ơ0)adN}⬰[gM'RZfF}R%L367ʛ4Q!%=ij-c0xmJZ0`J>t:"2 'AJq%lLEBU>t/}\CcJx,*;zEXp͛Re?c\b=? uٰLf컼`vO׾zlLHL֠ѣK*dFwK͉bO}hO=x|e.iBzÎC 8Uϴ8O̘pC E>Jl >s1|c`x8%Ϙrxr Z%jʱ"RTXkS3gKS\=uD':;Z# %G$ F#G3`Wiiehpc`ʐyt!bG8 _1N5+eFu@J^Y̝cO-%JFo5x$"xrkb|nk L{jt-Z=z-ģ_ELg$U gA)fHv`v_;?X /y5K8|߅ڡGD|4fr qFi;&bs4PM|D)wc8S:'PJVDld>}J.^zc]bɚyCu≯3[K%#q.X–;KsۺNԮ7S-/)P@OhPM~ǼӫyI."BYtY"f{d>J{u9Mt!o!2 'Ew8ٽ #zHUR5i2fT{M[]7׻[: gU? RNfhu=b׽vwV$k֔r˫߿[oٱs}[¯d1D9Ɋ \dwλfez3YMƏTaXˈ!07tak}6MnAWWA5iM~}/_C^1 F/ 74{/]q}MWI)4&5<J5"ZgcƗ1c>lΔ>!hMZyYuzM*T!+͟':~JgiD;K)vn]13~P1^$_S4ynfBFi437(x I^>fụR gm|[Lj  !`?z-PNo!Oji(˪i+3@vx(l2,??Ra@98)鷙(LL+"1~s2W0Q|! .dˆh}φEeK_yP,w,QwtOPײ>Riab&='6¶Pxs&V]^JN2Df*ꄻ>ؙSl!ʽ NW63s|(zaDjj#U0dq1J9Z|C > 5ԙ>791 Y-xEm6Xzީ:y,X`pp,MA{DxRuX`MmI(uS*_7J#:L JP\,M@T6{K`(B Y^G2iJ.ŭQix]=3hsXV8{;=ՃFRI EBO!m,.1\{oqDZ:.E=^%&ʶPp) YBV#`"./zsv,Ď(IZHEOW6F-SyQ2r\ s*!? ؓ@,&Ze݁BQadAmJdEb9[΂Lsb=гk7 6Xϵ;] biC1ҋ#\瑠\+wR8/u~Ѷ(SMR׳x2jbP7"[*!hEsjQ=\Oԍ:BW Ӛ9>vj#(Æ tay5ui$Y ~0Ty8bKMF>@Rᕾ[oo!Kx B /;Lw&J"Ne}q] ILpݢ+QEPqç`aFPѼՒI;hӠ(bA3D^HW֦oeyxϕ FA1 q-DBcK`rzl.q5x!W'+IϬc?;Se( ;ht%sFu$#vd,,9ErνeR;r;R5x> *Wͪ,=%&#I>׸ܙQ)u]wXy8lbd+V2= Y| Z`5s0/Pe~uAm^" _5Q6qd(*:ATЗO2W>?8g"I`BU]d.sd}u\&&jW"쫂Ӕ!7\ h9wZY*}3B¡嶟@Q .jfi5KhԤt3cGZ>OnI'~ýo|8M`r6yV}>wR#o3IȒ{9g N &O!M)JzcM)*Ii]wQzWM f=j^Q1'nnoD,056BS*'K/CmQ&7ZP ׂQ-m°e1!73kEw4BuӢ2kYE88Q2p{13 >$'*atF"JeQoyNEʧ#:8OX"y/C3`Zhψgk&cc.76Dx̮7lʋW\@*Ac4C#`{OQFEgx? 0Y(UTݦҩ~MNևSـ~xcD;[jfqɷDa1rܮRJܹ]TtB0a7>]sǔBOOE!n8'tT,4`H XuE<-5e>Wf ղRѣ|lRj>7AR<:pid2>$s-P\c\5pyA<,l.h!q{J!6{)>KZqED{yT:6S%M/n I&1 ljZΘ?+[}k5:\(i6-*"RgL}Y2wbXU `(l ߔ_pf Q䤻&c0s@.f Ѹc[$AaZ1 Xg[R߷aW/ N,4Q36ażWFc@WK|̮.I\ٷRp;^AL!x wC-=+\zczpr$Ŷf?;EȊLoS_5gm`O_HvDPQ}so΅^T'yPeyewC'Mi7FKiI gf J!WvۡK2XJs0k1T||P4%C! deO~H%2iЌrrĖH G;EmؤYY\~Ԋw9\_P= pBr1V>t%ejQ$y!;wQ\!C&L&#fxLK~/&HnIZzgv Kו?d6q6A#OİHյQiND# {EFd( t;:4e{@cq**ްSVi09li[BV7[8cas2^(zHoYh*tnSq# (&{0>N|,nN`. UL[t% ӕ?0B|M;j,gFhU׭$ zm^ٺZ[COVy,PClVհ_^MAO8b?R:xU.oޞ &c& ffU) 1~ ^ISk0?k) _CE~5+- &) ~,yĴ PeI VꅠZ N>JO+Gn-%rdH_ Ak-̓1i6bWHھTL([2DTǶ0)OEtW&K?56^~&kprv}CQ#,ct+&*v+d }0T ;yW;ϰEd29~L;:KWţ%Fnqve{?*qDY.( DAV lIUKZ\Aje"b1t nf&4FCm [y*Cvz8oWըXBB5DKbīEu@8h o!Ôvu Z5zVE6w00K!E]gsVmx9LrM܇dghxjkxyi88{lkPB , տG>yX)3ڴ5 w4?DƧLIrs~Y J! h]B_tm%ZafsC'ҹ$;X #l̮^ZG$0pL%wX(Xk>Ir)lER5zIzkPB9E ^%!#5=ȩI-xF"$qU='k~ܻGj* '5M;?;JCSQa*U@oŅdeuu?Ѷ-w\V=r}|=Fz9GoWKdS:,D .afShn'jUA)ESJ~qAK.wU򱊢o){ety|KJ\gM 29= d5 qs[D[ʴNq9uNV)Mث6q7+ yL8 q)q8?^zPoaM$P"#rмP,FSݍtf)zIڿ1%]^P`DޝKQ?㛿s$cnsx]8m2 4VYGDӖa`#bbB|JM54TSxggش;9uo+ gcUd<\8NEMgI B]]D1]CC7nV*0`Mb'bZ4aZFRsu#4 ["c}ۆ<1[G%I=;.K Ǐ!ZΓl>Mz|WRZ)H4)1jv)x+ָ5`Z,Z]ԗ`ޅL=蔅x|UXX:!}qX'jrp!!>+/#tz.71VF`mPqkٞz,/m&[\hLqi]F[Y ՚:ҎjrIOM2b+2Iaxl)xKDd~UEO:ѯ=zD#n*#y-QީLxiap7 iYX\}x{s{f~Ð-7 g-C%Ȩ{Iuqb3ęV  QeQr`1^&uқE~<̐wz"IaT'Ӧ(D=ۓ.iĭԆ > 'a%']J"/@b3$zXZƎ|pTg_f$ z^0&k8Q7 ۏÕ&<;/Q,]Г&)y>02%̐<UX*Su|NPW=xENx'DoTѥs ?b1D1!): -CTU-1KfQ@Z,yX3#;)aW@:nJĿQDOHDUlexzNkF2j**sG&SMǶM JEc·&W)& 0-^j5gGHq[ܹh*ħxM2a/ޡ:Ioᐬ?G|.9l/T[lu⁍u^%?QAmKF{fŝg1ΟzWɇyz^ID`T}FMey)DjJv9s0׽+##md1~SAi6M/ۂOuEGޫmZ;݌lO>݁waǢZv`NSc#I {Dgj^Om+b"aw &wA(ʟ]Z)}DX)bTqhIBN1{ϔ\κihvIy(&\lk4q^'-.ҟ+`6%M)6IsMvk7$CRv`OrwB^mkvӁye 6[L#PYgԦ~bȖɑ<|8~$Y d4fk6Y! ̃ArrCNW\*$ UYyAG 9.]N"Ov{x? X b HJ*uS+(e{K^4ʚv,~L%-ksм.=h{O|w G"% q}?@QJN9˶/9rXI=38]du+Jwf?}CYB˲hlma)~Nk؇0EВ 'a3*gw%ȢssF#Q59nqLvSƈ *`a+Lq6`ұSF"o~G֮(}q֔+U*."05u4!|HJcX2B C! In+D6t/10hdjBpSRϚí׋Q{9!z'''a).Tҵ$VK>c,{G28K %O$%K`gHĚ JiU^@Ue)ht9k$̔~pC+ i31gs+JQdHfr0Z1N)ׂlJklJlBփ^wAla>&w5|^vF!5lOy0}5I @䍊٠n'pVw; uXl1~=A/¾u\Y$9+`O7dg\!:51PiyEѼ869JXfU}Q4IjOZ Y)9jrUmF>ą[>Ǚ>f文qÙhdǛ4nG:Mav-V[ϼ=۾}g?-ݕϝ;:6;yb;O셋^$c:!3`|,6_L24/ѝ@A^9,9DЂ}E~RRP4ƽ^4GN8fCRhN# (3eGNa2 CSMRnu!)%d(}r ͦŠ}ǩO4) |8 W  /vKd7H*l)"]K v؇goE gc5|8Ubl9~+Som業~a`83$ǻ2ʴfWQ~ N(uP7Wj2_-:y+o4e?6j bFZ0˔،ch"s5׍T#g<|pU-<\cQWLGtndg*Af ]3 eM(ټ+c\T*'O#vwFMomr|m.0\UZ.al@= SnLgLI}(ʀ&[SbM. AGpO!c2R% K?S pJ`Xc=E r9.G3&(]_$} g1oWZ/gM?)y&WyPZ# LPN8.QD nmB'oAs %b#=Ԟ-G̞Ie|-|Og9䩑j>>$rޛ)6H14K}((HGG,uf:HbAWnېvZ4k v9UL ΕN.e#zRZ'8õ[0zx_ƷO1L%DxL|>QҷSz_}*9H X)1jU9k( vGg|t$wh ^zx{L(jMАCH}N7?qoB!o~ب_+ }XQOf>k|c ]zmH9fRt7$絣*eA:eeXC^ dXt5U\B34?iJcS3@u OkaHxu94Yozx+qlzHԓ+LP1`Ȃv>@h◾};8e~(y, $2MguTx_0*b0Ѹz(F7U&Uw\؊ur,^ hit.mKR p/п~ZW-LfZr} :i:IWjLE }5f?ܳo[-a@ZVDNG^ Ϥv4f C,D ǐr:H#E+&I j׼ F"zYn#\hk?l#6o;碙p_6Sz uϦ&r}'^; ^Ʈד 8SDU+_F} c}uu@Sf66"MI펚g R3I"^k,4,ʘ.V/sh%:ri[y3 43s U5h+R؞D|N#WW#Q Ją1- 37ڡk fLR""Y:75&ծAp Vk8 $ !R3?+y0LThKp%6P4nΘqvaȃ}Anv)8bϯI-FyGP%^hхp-ۻN7i~zjDY}L& \%cˑ1mqcf>%Q񢚵<tS7^= =2>OJ˿ TkP>L$>t$x-YBܛYOK8Ի' LGuvy +sO@\ Ex/<½2h33a̯C`WvlV: {=xr@Zp5Z1S^h/+21{ RX+@Dz6NyNƠ~WǛ^ CN8JgA>ůH^L"/bdtLt3;$ǻ74in["0s|쉦RʾE!Z%uK% U *7 x'-*˨?q)8+^ņ @cB, L(曩{Ol|!ܪ6ާ~ƒN (T*i>E!/O8!v i(ut/Bm5P>cNAG<-EL>-7 ̬mg1OMrysP;?|a^zcnKM:p8 =!-IÂ"QzŎRzjVXPީQZ"Zt68 >q֊YeR\I*<Dn>l*Ev"g3#ǵ57wz8]xk3eI?X=3X63(Ʉ>>8h's(HOHXD \rB@^v+- +9 `UP#'񦛬Y! 㷈xNKp4}^L7Mԥ LͿr׵heނ^U":\xCOtha$αGq\Ia"T p<M}bj Ʈ.eXZ<;xY+pnĒ d*1kuO>>2F|☎\@yEoQK4TTI| h3m-ue vwxX3F:L蝎%<q߿>!Te4 (evRoe?0ZHXr 7X% YLTۈ}Z=r}lh5JJ9vOeUxy1QkK$d^)qhpgau 鈒;.΅YǒҪeEdq֖M0t9H_}Vtg~Շ\$%[>,a5C\nԧ'*eefJĞ yl<֕;}++V1;0e -IԸ[51b7޼a}KmNKX .qNn32Xe >KY;Nj~phAKnF4.1HUoNۥs#mgDa?-l"9~ RyX,kP|(̵:ʹ=e}1i[HY̎7@]M|\9G !Y(1b2.UN_ 5%MLiBnIun˲ŋu]H'y[N!LxҲ yR~bq ۳r{9%`OL yS3%t"ϊUHϔUUiUݠ} 5.WsO5Ci{cX)<-3~Dpy,E?p22 [`?hFe:J~Kl1b _ S^j8ᯩ%$Ӣ q@洓&ce(̾UԟAT.BR2ʜ k/ݽϰn78 ^AX ,]j=`&MUȆ12@{l_+. +$ ϸD5=]nmD<*}@K_d2J [^+$T&-<y UO+Eb=@}/_q_JЬmp#OF4F4ȸJQIH p=yR݄e1|{n] 9&9K"t·fP08zH-YK9p#%N,t{eRm2qPѬR4O%ܳ9y[zpr%G 7]`=Tl5wzޓ\͞r W[ҥ[p;XS'qIYj#Qͱ*sZ)c4ȁ8pH6QUSK 8Uhef%6õv0qBtu5Gp5} *e;xXCD˛ͽjdw!)n #@vs_IbX^'5 fKe=٘+,}5l]4&WNOC9DϑQ%:#,C6-y=pٔtCE g 0cTr?WT6|mנF}},sh^ȍؕ$5O{UC9` cydi\ *+R-0LVwcF/=Wz処6JIvͪ6?{7*).:=}> AXג.%͚G&-2>p'b>0•[DH^¸U#'R/eյ#]{Yqk8XlDy=[#E-UzRI0lQw$(N.mW[o XR&;N(k:~ന@lCNAETe#yxڳ@>p,Rx Wfj )fC݊)mt0 ΔH8y`1'xi<7>yW$$G0YwdpMrvn CX%%5=lnbBά+|tC/ð:"P6?[Fn7e72@ae-e (H ѥ*sTe4gŗSY8߭+vcWmR=ez8RiS##0\uDt/e"ς/NF=<&B)B.-zb |b,Fb պS|=> stream xڍTk6L#!!݃tϐ t 0304Htҝ"] " y9k}ߚfkk6f}>yDCM=  ('_a|6# IQ1E0ꖧ ݜ !HT$&@H "jaW|68 G.G5$.. AB0&eq]Ї[C!(j)eB!$<<<ήp /A\!Hw `G?>'Eym j Vl H}5 6CCu6?vUj.[[Ý`f:A(O/ E;o`{`.|+/yH( u%QWSV(!0+)Bcs0/` a0A] jQnC (@\Ok{_ IЯ?Bn}\ w>ZV;( a|{H' { '[{aN^߯<>{||" 1 耡OSφοf ߽෦8Ph}v?nHww;C"z uMj 3fP99}PWe'Fc?q_CAt_odY;޾9\o;^R f 5a"0 IPDEoapm Vub_?H 7F[ @E[?oA ֺ% vUxB֒!!oΪ<6?HOms!.pSV)C$J'rLW>[q[t.}>MlßH?|]=ܖQ#f z:["3^Ϻ҅Mݭ*G?Kb 'rpIwRթf|JViS# NM-3;ۨ' &VDbD+jb-Vډm':=ͮ:\NZp={:&XH8zn;QDewK DJ -kvٵKCjNߏ[#64)l A;խ)i{H?IpcXWv efmZGD5F%TY&otw2weu)1zM{'Ү_F:rΪlr(fcg2k<Y2J>~Wv Ѯո/vb'D2SV۳Ppkqt]' oRsp,-ʙogұJWv!)1|T_L:\Ÿᴕg2FH_a{PP 7h>$ci-!HYJFޓ{uyюIZ5@LRᧀ/Nb4ȴwC zŒ/=Fd[0YY9fx}.Yn}_3\ }竗|'{# _XT 8M&gb?[id8s鍎/@3֙{߀)c{\C2&f`{Ĉֿx0-NA-n Ux``Uqֱ2\M+ܼ&((d5 )mU)bIMizm"o+&p7 (fx}GC0ʣLH"`-}O+7X}~8a:VEV?ӄE5}0d%}p"dp-yoE0pĭSt-]a9mcZq\4Aqǃ=IBA`\DD&Őpsl}:>QCÃeSժx v@J5d#eIKw_*srhա8U[5'ɱ{ʻ-1?P8S|գt&";I]$<jRq|(hm@YE,ߓ.N/BnaBlA%zhz돥 22-t[aDa %ն.|s)W.p\tiEAVHB5w0N!u´OM_sȇd<vaX)KXzZzY({뗬x){{,՘0cj~p25}9*Tz$/<}M-z(glkƿ 5Aoc*npfb>Zl'=8ܭ ,ӶUȬ{#cQ|O=w"ދCѬ:1e܄iiQϳxicĬddټ{fQn19HQ$Ez9 *FvqɎH[sO@^Gjgޤw?,qpK8XFk^XD^&VY"؇& %i;V"6dcJx"wk /h;rO "2?3 s6kM׹4z7Vl[fT>),DZR$""K~UBƮ]H ̪8?cxq~Oʹs{@%~9 W9f>x(rͽ .ԥts#Ӛa%W;Yb <.8/pdT!ۅYIZE5P2,t2?L k}~&&6&G),{H}vz_ +;DO1UW/n|,i<.ǢQ砙AE}0 UGHTC>0vK TB/;z !B%?w]hMx]`SYYUm=jo^7"I!*Z&ZTaCWs+It> 2lb Δv%%@Fkj3rB 1Z>ˁ9V M==JߺPv&̽v,0'I!04$G/pAuR<]រjOXm LI {z>%A}=1Z]zǯNg37d }x9\ˆ52p!D/fR0|j@o%>bVԒ*-Ne'"sd3f?cu<VZ⻐Ȏ"x!e~} sJdzP)WH!0%ps3Zv[~614Z%ӛDz2nfEr NWp[(2m6J{rvewz~S$f NcMrb"#}f-"ňWt<54D"um~xNO$)(@[ RLSfSwA}v`2|X/mgNaQB̋iđ!icx$nkEXi묱J 3~j|PBLzf#5H{p]&ַN?EWQv:7[/g?HNK.=3y۪ލ`idv}g؈p7} ,q|6%qݞ聸_&pP-uQR_Ϭ1Q '+M/gn,F+jTv;I@M[ZKe!`}UOep@Ii,IC"4lQC_Cz\xd|%,~[r8Ӫw ,2Z3*P viaiăInE޾YFjU+!ەRiz"#|ܛijqG Wpٍ y49^aB}6TY 8Co:vf/}\K-Jlʹ }dDw5GVv'a>Of"{*oRDq̹'5U%ל}Wq0թK135d4Ƹr[۝>svu/Qxn,$]q\ip?fqHT T&ؘQV'VyFnKϼ^vs(BgacK]wմxGmM*1T}Fƥ&L#?3̯ ~ȯ ׹^nؑ[Tծ*w"^R)qt:kFa wfawt}>C(j+R<9%={v^|#*[箳ERs}S֜-NײNdFw-tnj_\ѦG%\,f3/yXO3^?vڷ7W0 n ~wPIly#ldϴp{jɛ#¹ip>G2v\i<]ӆq^W:\G_ 'HWC3y> |э%cA#a.y`Ka_HtB={GzM|t_Kni^=; Vfg2Ў6IGRSstO@?fĉ:7~F]3|spњjTFgc7#eC|=h.< LqqO5ބB fxv4'˟gx َY2K;4zcҶ\gvKIVul֋,cy'{ݧ6g ԙj*kk115L, ^ h|掦,td8ÄV"z6=5Et/ӽeDƟp>Z n+XΉpۓLoO,FD&'$0>3Dٰ:(V|d?=L·>xsZmac O,s ej0jnm7n3"G4O먜.rnՂC/GI >Oeg RɱG%wX3h-!(=߀qo`mJ1A], :L> MMk'Q+H3}c 3 n)HQBFgQ76/['^ &wbrg\2y=}րU&k!;v#!³7j~Al!< {|4d3T󢇭]FW)o(*Za32c!eTppo6Rm[rby{G)!"hVVZq,KF}f+2/pS *OװL~(0c䒁%Jy_[- *FW)^\s{4p.2^Kġ`zq^|=YP34Z4YV^'JYFNxwIHRIi9% 26ЩbYM|Lq2=紜rP5:>S^v)"]f~V'ztQV[b!ksw\v薴4<J,(*ծ4lF폝8jԈ0d2O2Kxt!:OFMS{vSګI 5't Z:N:t!aȿyHKWZSL1s ֿi,DTw<)>>koxdjݡQC9祇ݽpaOy?B!,L4#up|zm0ܘԠE%v7P=zld?R LY>,5P`ĸ^}r%$#ۼK2G礌{}h~"%h,[EՌy\'i&2thnco# "CTqꅪ^>4[nBߝwդñ1\ $T~Dr@=bWt 9T)nfqiod}qofK&u4r\ 1Yo{M.h l+jt STn矇#ʤ@:?f:QlwjVXnk NM!޹0ϧaWi;Q` &X>x.^(,a$&]Rp[hޣC2.iA, rl7N!} #t/G}Q6v y6K?<~?{M5ܼo27,}3FbXL!|NDU^> @73;qr"> p@Iy6OXǑS2N|&ߘ~w)< vxY**qٓ-+@9X*ՀerMDV˧ :7UzWcjXF~ZϜMQ0e/A ˰l*|[ze Ru|38}ַdȸ$,pwo8oyĬC&:~,p/bEg+Xj4&R 2%r^?ff2FIZ5%_aFdTP[(p4 endstream endobj 352 0 obj << /Length1 1570 /Length2 8490 /Length3 0 /Length 9518 /Filter /FlateDecode >> stream xڍP\[.Cp 4$4\B@p'%Kɽ3sg[֮H!i 0WnN0@ZE[rUPº+xkT4ǘg5OFAJob0gF1 5{-yrmnrr2*s±i&/I}?7s+fEa.)2N(]lE3yB;F?]a|Kc| ӗmuР'}$#\t^ͻ+N@-qƀ-qOS1_dyj-t~Ηrl'=TO[G]UO["fc񣽍K\`*H{^rIﱴz)~vNBYG8$ >\>WbWazvu\z̴oE4P)xsIɖ\{t5]|j=RX~y0Ԫ]nblsD  K]/Pnطl9+'toE9fPn=+5D@'𬒅RqZ?1%uMU{Ɋ֛n|x UnƎ2@ ~o&:ݤgAaǯf8W8g#&dLЏhQc y FX&D _D_㉺/s}"&#hF+>$}‡}mZpL8JsKPİ~j?7i:]Yi\ 1]I8K(x-أHW_wc0d7ĕ܄0:+Y=M1ņ-lDZ[dJRFz :8&.$δ.&)TܓnakGN$s+;xn^CoG٩bNzAv//5V˿Q/YCt3J2ieXu+rS?״CNS8>Fՠf!R3-m%+Y pITex&#M:A׎fyŲLFZ| 1uOjgꃧ1\z#O:4C܈=x.uG^ZCL.md?{ 4/ pwRJ*t*'^}lyt}0˿`tl9V9QQSI6 Ay"?Y57@||E4sPJ}'G989^`ƲR]ܜ'S rp]-E/fJ+ZhI(MZlQf`1:h4/Gú`h>]5h! LLl5a fmn(5T2-1-:zjFh(lP;[TbULUr֢7! 9gVy#f D\bލm?+G1@_nw{;9Wfx Y$t+ 1e)eeQOY6,g]ZGy=ўHh;zad @o3;++umlZ3gHG@gfՒ(AlG܁!\*)̀42c.( .M7۟E$%yQaõU7Ug>ރtzNI.]XIz2:6܈o?TAs ntZjNM妔M$F{vk=_9%[wmE Qp|\qTFzor(-Ί/oN*bRr8H9)&#[gj! #=}R=7'Ň- ;P$#[hf'E5~yUF-ڹ:^#MŹ߃?gU3-"LemHB# ዺb$``y[1SW3kIMOqRŘ'+t(z{ Fcd9a:r9Xߣ'K@kCũL q/ǽm"֬r$4'!ObZ"R*t% hPIYardAW]%tM8! \V bZ[+]bFx.G2x΍~AU y8zt"J}.[b9߳:41〇8Z%IEI`ʊF3d zLͧ!Bo¥TkZ? ~AEU'N!y&gkY^g)QrH}Tƻ#ޘ2'rc]V:PY_cY+Myi6|fzp˚Cӓ԰)JZGS^ q(F.! DTu|Ĥ*BdC<6EWQl6tN~ɠٿF53"nkAA|0^02#zd rϞ-?HVgy%y6&o୬2ZkGmDxV_MTr9 5oA(-=jX5e2́`kDT3ѤZTeb,A""* _}۱F,t-EAEǫG8͜I#sUrҹ$I-@WwQԤ̋ 7.'\;!?P-eZFkH:! 8CfwWt (OӟG+knq}(M\o8 Yrx㹹Yox)}ߦ/TolpEV&`o, T}R4raG d\N腢9;Nnt޳%N˛kpc Eui46U~Zkω]*B ut^~RMyk/ ӑMf?O'P7;͓ ߽zGH;uy1ķt@o=MVt5X]w k3[ = Fe5 x rM}UXC= eV5:f }ׁ CoR%}ZMκ 6R+ ]jm7 Nò؃3h,/g vFbcZX?>|=t >_I@K:V@x}fbXhEnً9if7io ef=i{~DEHEEeȬ_N Fر[y Q6.M꾙Uh(%LF>V4lD#o'[e% /{M^|.K/_x/*:%`^$[΀3t[Ui?D=e4<uJWK_KF|D7 ÜQWmg?FvozvSRM/q9LL{~դw37cm ],P,ɀPV0'X7s5Bx'oWd#).q&tX硡bu]q\@HEa,YFn7SN~0(}r˜l>^5Qw Q!T0>ڬ_J5f;/^y;&D%}\7iAm゙"K7D.zd-g$ތ@n\~/;5lwo%ನȗ-5&}/| n/DYly q"m98Xl_-[0@EǟG?#azLMzuZ*L9ȓȆ]*AprJzXEcT&Z3h2g ᓇoO(7d(;YBlב|75NRײg잋pR'( HS^\Ԇ9`Ǹ eC-JmÓ7b=Nif-ElmrkVWI  )vsU Jϵ`\d?<^`MZ9037)6%r1!Yw~[>5sPRuk)M*Hۦ沌WEm0  ^1yyn!}m7W]z߷%4ZIPG(h@8u{P1 :z­Gj9ApDO\SXhHc NxK*Bnܭ_5K]P9 q KbUIg7Tb0Pm_đk\? b^ 4b*ktR[a'|KRtg$,x^ҋUЏ'Q@ ?+x%y]2κ\D e.Ƣzi:])6u.]bъN"EcN\8GzbS>ẍ́X7CƳ#R%R"<} h#Pk=%e6bNkZ!-%"ALȒ4Dnc|eɛ5wD! e5 q :z!9MNxZ$r*# l!WeF= AFVZogm%տ3[πa>o L_jp&jrvlԿ9rxu`ēhbp@~oA3qwH=wz0:PRݒۂVYK["m_>2e)5QLNUJ ʊ]W5+2{X5(n儮{a8#kt8;f].*SZJyALs{=٫,G%F-uE(>_qZD!4u෦E)Yk!8 Etl^H?~|IyUǞ*[>7$U ޘ>vNu`j p5_)&@ }oy31Y+<*z$2w iLd:R 02-Jikoׅ qk4W[к"m;rHz(P]}FNND1 xؐv6MZxW/c!w-]-C҂SI꺎yp+ZE!xA ;>1:N5Jw>)(h nH%N/vW˻< T`]eܓ!FG/rjż´'"|تi#\ȟ.t8'A=qgDN_i&|yA!ćrz.b T1 }%rC"YePy JP̏֞bfPbqLMxf* |lu:AKH1[勞U{f6E8QBAݗFuXPWڲ7n+f2ķ&r10gň^Fs8ywYOPi8zBZwÆ3OR"LێJ4vyFT;J|d3$DkSHzjY\L*EsK%;*ɩiO) 7@,HWrA<1`XBMת轌n_CbOcuDZ>h'kx̒f :&#-h̻F#o6]-  U~g +:^\E*\*lV7YB3m@pc&qh)wogLOZD|.Y'dR`X5LGTs@%\mcv_˻IIz$&X/"7ybIlXԖUeho{%U;D vFDlk8%JL)To M5='B$2xlw җ셁y&élcU8_Dc,[V/8ciw4O=ěJ-  &L6w*FAൽrJԈ@'$#v^aٟMi;NXah j endstream endobj 354 0 obj << /Length1 1358 /Length2 5966 /Length3 0 /Length 6905 /Filter /FlateDecode >> stream xڍVT]&K`h%C:``I)A:DDRNA:DiKw޵]Z󞳟yװ1l0(W( x'@A\66NJfC`P?H"tӂA.!$%( v->: =z@Spr$$x~][B8]'ڂ\0[Ҏ$?7px z`8 l.11>\6#ǬGx<b ‘P;y6@_Mqj|NWD`- @0@[YvA.p2l u du!|p˯A^ Eqէ"oݗX0o=jg;O7~C(҄@1qqu eFs#[B? <<W@`El(ّf=rI<[v0˯DGw`>^ WP*P \3Wcՠ0ğb>_3c`7m?o+AG7 ('}-Rt5Ԁ<ߗ+C|v:  ց!>(䀀!Ueh| JP[/u @ _\䈑;Rv` Aad^ k"~{/+?2zzx u{c-b0l;? w oĶi?yEUq&:My*x+9Y:Uf Gʾ]^zr_nBћP;= u.{T|zG"f6uVj,35)b{m3M͌~@Çh;FDn8"U~NVSjzSґ v4uYҢ9&"Wm4#)ӺyWҒqʘF<#MY@CQ!¬t%R92OwgIֵ. 2ouiN$ +=X(&qqR)_Nb4O) &r\&- ix^E$ ̡u0h"WFqBrxް`4֢Nvs̉ҷ6j'yq^g/s7P#wtV>-2F <^UY5Z241*AxGJŴuȨ#O}FuIF&%)r"WUX1„&b4GOW9ЇT_Ɨwvrnv}n)(;(=ê9@ o]#^_ƆgbڶI2),WzTh) 2?󘖟W34:PڤQ7 SԥMhE"9y^$aVCYM{fv+|#elp:ɤ+-ɨO+}65#ڮ8]W%\6:jD^>E%>;ؔ^9h3SkOyymn@I#ӀU0[B;Pj}uKV[yݑcAJy Yc4w E1(._٭ogt~H^6_NߥCajvNBm6U-ÆR热! /.}\=js8ga<7Rs2)2wRQV =\%U.RPAU9r5P7V~ʛTI[ʶE'򐤾  V\$x\Ԯ3d"(ꞝR˄4z9zP%K Y8r4aܭ裴wP&7XթH7dкI*weS( /DbK̘J<LuQ 3b9:]c6f>y‘Rq>JJ$q6~Ϻfkm1nTbY}jHӤ &ј Gft"+]}O] wܧV'l$CI5tk_~KQ*鵛?!7ث+#>u09MQAhmj^zhu [sH$#N_[fZKs Lo+"^zC(ſh{`ܼpg_/CwoT;o8A6WJ'}eᛆ*\ȟ=/ W :9> XgS";1yڰYĔW/]Y(qTiput-J`Kx.1Mʚ2Jbz}pltd͇YIUq ˋ1:Y20`[vJ0ωWq@hp^>M໇o$Uw8~YIrz]^:H)WSФGw,$5o|#>TluFq/=؊bg&aB5kK9UxHoب2C7ہVR^Ήan-xsN骗i\fHoK.^cFOLf #S\ԺFbXs]"I#r֥ero䩘g,FNcՆRъ> ȏp]H$^ޕm[[֢驦bij*Դ)5c;OhZ9;򏘸md}: $Go I]UU他%K^rZ,ܡZ4jrbeع$Y<-0`((\2.M>#!=eXb{zEꌛmZaHn@~Y|z!HŤr"Du* uˊ5]Cq<kEG qm{ul_-brg}hjmK[{)IC9fJ=$ |gKز( wt`z*eictF)& ߀ fA ʬ 3%6|s7ӂ%Q πuB͛7_n~hC^'YkTE`=bOoϟ'6;&8qck ֯|0hp\HOq =xDxO5lO~oڞL%! 'tzvNtaF1asRlQݚU4E"b464yS,O[1y׈cz)ȈljQz)\QLOd}ƭn5'<*DcUY!,;KEB1+,.|r.BbIN `eXOw&hظH|N9jӋď\g! : e>,Q3U8cyŘEJw}O(/eۡ4(<^kDEZ!& EMb-uw*6Q:L:] b`^jnU1ssd.0Y 9 y7eh5鏎m`W5]Ə/l>cKlRrqes >mZ>>6:$5|$+'ԲV)]1}=޻;w-!AL^$f|gByacey WPPc_JWo~T%gYi>)g>$qQ='h)l+jj1Cqux}.vîNUpbZsn.) ٺ#TcC'j2jLXbdCSע~w|0S*b kVf#'#{>:xB?`U~|JVx/ubp+)뷆l+d+]ζ9:nGMLIiM9myu-qhC@%GO)(#M,{x}Z.-5?PX_A\lTKY ,8pTroSEZ叔-<زMD!rV8/3Y>zQ>Ehak[IgMfJn~7'nÛl2+"Y'Q|p~8'Wߕ JzI F-+ˎ#Po\' @ፓt^L HQ׸h0ϊ`X[,Qq{ٲNpk.x[]t,a-UM2Y_mL1BwjIRvk3ڗ:n>aV'] mw\xdT1g$&g &+]JlSyd6dfF^&>E{!6ꎧ'fb~vZc<k2`)RI\vfƣ@7V.#\LKJ!鍝_u?8FaZc}BFK͋~1oc6jUHy$`.ՙbRd椆_ӾAsNzgD5}>JZ,>)Y2ykA˽.ϩsu}]*1I돞J+ +#%S&/dhd%+)WΣM:1I._8b˰ikԦM }V62Tb:KO }?I$EȱPú%f jw>-aBH;H,;LYܽ|4#|Ԗvs/r'3D|DF$p~L,O9@^m30!+1VqS-7HW29prKX/܀殿ԥYw,z В]+a#͗VRLnѪ@(,eQz|"͆;ZM)ӂNE8eDPG+`7>2&],ơ~}jK3Y2Ϧ_Mߴ?55Hn'=t=gwA+#v(SvaxFy% !/1^Kbt_kr endstream endobj 356 0 obj << /Length1 1391 /Length2 6286 /Length3 0 /Length 7237 /Filter /FlateDecode >> stream xڍwTl?JH0atww0ƀ l8lt7HtAJKI4 H|S}s]q_slh¯waH~!4@EX$PJnAxB0Ы $S!1fzp@ $@Կ i*haOvuvAbnIIIv(CP0!]  7  %DzH =gyn>0xBGr wH.P? B@ <1^0G` 01п+=@04 pAH92y1 o 18da:O0PWL`*pww I+?U(t-{0 stU "s b@ PBR y.= B`L~pH !yCH$?HP0qH!NdP!-[po44125]Up_DC?eW HIӥ%Z n?c1& P | i_Qw>^nn\uC 6YW=#ZHf`nn"S8B`?TZ07( bzPB@0[v<>VA0K+``3b$¬#Aq` 8$)*H? q5 ,oj`{!L2?˄?l 8Wÿ6*7žf7:'#L ]A|WJ|EYDӥN[aT{˟vk/IiJvG|Tqy+nv6{#/I2bS7o+Eά׉^TN'ۄg/rțc!@#u"}V5v2/InHժpٴRg==ܓ[&873o=+]A˜&廦o|}LNZ+.~]3Ž9@4`Q{M zm&шW=UƼ@}wD(,M{Ph}}&z}^Q$+!tI`b>ްT` zz$%, { Z*lb5__i}}Y&_H$#aJ9ЪrgdVSe` (h Qz` CNk5%;>|:5idpy=&zD V>5fƤ(sJWj9~mcIyC,1z"F;Z(ИaăTvөݠ{Rl=VߨѶnHDE!\]Nΐ|<N0IP3c hP=wyfdfU@~ʗ9]N$ $Cj{PJ 6agྎŬ⼼-ӧyɍ ;iհ9[-$xHu@ M|Bs?|[pc/,`Cv(nšr2#[x}z'lI?7D:'oSYy L42 m~RzG% bd3]/ř s4b%oLtID w9ըA4B^ aEc82lw6>d9\/zoSݪ#wi-j,g)v$1)T+s k6OfZP) :ƽu1Arvl ]v$UG \]`X$ dԵpKZU7tqNve.l)g\^|]I7ϭcZ!ysuWNڑ[b|l>%Fo>SILLQk K[w:4qrIc=ppB;k`F x2͘O"e%$}cEͬ*&N|>äKCW#hшv*YK)T43Z{[$CWb}kb2.l(7 {vgpؾmk@ )\tsL}>eR]plf\aO'̛F1uP/;2ېƳ8rf\*^ s{<⤖"vn;΀}Ht`\;jǰTY5*8^ly1;|RؔcD:S_uRkSO&FoJaUk=B*k~!НG$,pW_zͱSoS/Jj댁msw .#L3,ʻ:ɵ5 ƙ/G|5Xbn'{9 n*2hw!dU~>JØ,yYT֖{|\pS#--Y^Wr>9e+լ] B IVC^[0iBv =hIu1IB 2}rFn3LflG3 a@RНQ0~wՊE/ޜ.~o tO^vj;1<~b[cMbkKtf;p _9_1Dtxx3~x7kjVkq9i:9Ycy+ϰ'NXʿفef>OZN`R[{_$*1rZY+1I1.vsaxLכ%+"%iKxzic>yYWRp%Ch}jLe; =}1P Ekex.&Ffګ>\Σl<,,9Dcs(XQV CLPءOw7?-j "YR>Ɉϕ5FF?,7Bj3U֮Nw,Cu jA  |*oS,cEӆ&e_o#mFԍU<*Mw  óɈ#4Rzk5kGk"I9{z K5k Qw^]s pMy֟ˬLߙgqfh1_;\sRc_b@Z~;_1cMd㋙R|ߞ(4^<+a^;aĬEyk٧֜6۲S٧R)gtb8f!dpќI^_Is 7\|9e!>[E0pRq;4o_n5oKf-H Z؜E{' Pࠃh^9rUx(}݇zR^`,V7%-Aɾ5fWkJykn02AHh^(u~ىfB~ɘҀMW^WcY"#d [cpU\I e fPsB?(#yo8G0ګnUBŬ5wsͬjG&^_0f$x}*j~l39S8󚑎oȀ(J>&J[MWqx7/{"sT+ssd<ǏqS=~pQpzɡr3!Nsxʹ[rAs#޵^poA{dӊ&jCЫhs r%KL~\xz;8]J\[9ʹೳ]'.bvoeS{2rY3jf?<^Hoh:Js/W6M^gN 5U:"'iez >$۽ SkA@;=̲=C7' 4eIEx7z<%W#ՇQIΥ]VBя#ס\)n\Ղzȿ-sJp,ۊ2B7t@a+uɰcRX h|" +S I^b/>:;753IbvMÔ^*U)]͹&}fPyp=7B^uA~]sBh./q5 2CL#P(5&t([*WHe\U^:ϕ-oVy7LH*B盔t dž+ۃGÓ[cOkxq9Ǿ/vu N&k>g]y!7* QTpW|@#d->`&şZ(F5Ju_-9K4I߇ VHۮ ?VRߺ,e44?$r+mw}XGa-xU2O*(℀k흁WDT /[[U߮6%'u9.|_(޻{"_arDaΚ%-d?Fb1weUĞ!>`=9T7\,nql\mMr|xpׇ<K Sn?$V)x$4RH.P-U\&xx~Fsêܠ_<@+gs/=DӆoY:ivUO "p ٍTWj7=RUh)5ZDvLTOٴԲﴮF\S,lE*Z}Q&} +r@>e-c- ա (tSZ~<<ؓUdll؞BRms8lgX4Q贇K=KwL_db~tzuSa+S ($=R}w3먥k*,ӍG=븺`TM mpq8g*T}0rM##*qeXwNgt_0":uoijCn 4) 9>3Xˮ=C4 匈7y]~Jcג&-)v_j `~3],e,GL_XfFpi{.$z^F9e9_? OY7r> stream xڍvTl?%1:I(n1 X0FDPTZDNnIQo9wvv_++~}&pBL FpbqP\KKXñ~4J?X8G48B$ e*578P4И`,G_G LTC±4p8.' ~B}hu%N V3B U >* ChMDQ8?4X8`zЁ(;7 ieAcpP ʃp_ < 2 1h НP< '~8SO 0@Nd䱈 0x 'G(iin`$A@,PLB @$$C?BeWIХ%Z !?c &X #|A4c( ;mZ_G E"|#pM oJ5ϿFL8~-7E!~=(@1_:V UpJ- k$eP, I~3Gq 0; 5O'tF Co01 L@{A!pXnf!ɿ8<LaoypX(ܯ4,l!$6Q |5=PKic%:sxv]YIsr=`|һgjT\b+g֑ޤor|L;t*;K>Ď-1>-(v*!pD (/9NRi7~d`){G?YyW9~Nht_ ;?=7>Ӈx4}O3#[udrTIxlEĕO=[9-Y!^Y=gwdƏq0Um>}&q}+JJbL(O|gO+ 1զ3zB^E⽂(nDH3+tR;Vp8F9BVYY9> sRUy{x5~$*Ϟ8eAAM\PVJ~ni+ .[w_okxuS,"@a$}W!m #j$Z; Xyd+zWW*cKFIuR). M(#@t˻= rD?or]}6k'UR}Sv:]xN6ɪQч!<1:Fsf#JL{w4|2Zbaha3fOgRfFY9 k VC@Y>ߪ';Eɋ[{Q9Ovy)7^{t-tu;<ç=Z8HorX1>v |zhV\UnZqW-ݹs15ZKGSfp3Fl+{yt CRtqrgn[\;6N$ a6#!&+d7}+9y1?z==y V(f/+T꺋jzI?_Xzx3ͣ&Ԣ~kXhp >+ D? [\G&~jIF22y^c8 ߸bf]"[&Thz'>ܕz5'BwU*n޺g%~A#Lhr<ob>L͙&@+&Gn !50$ah3;H6 reV|h_a!]̻PGzr6tZMkJ2Og/ q? ju>#Վ0~AD4Ey-]bYH2ב'ITVi4Vs/gjhse]٤ڟ/ϑԢp)Qxٕ>*XڴTDFĺ۞KG_ONL`L1-Ȏqnٴf?(C;ihOBsrP3lxT>v|FV/E2@,r֥zT *4 6?_̓@Rj:Kѓxo\4z-WΕ:{i%}̣tGcOX.{Z0Un*Kt̐GSi~1O*3ՕWLCŸ9l\JPבּ\6Ta`BCl]=".ޢ`EWTacK%Ql/J_yjAw ld ω>6{a;onj/u;SƔ-^ai hp|tz?d mֹT?08dhn~P!OxŚb3rXśoj teSeQk1g+tJ 2|./F.zsKt4aszw@URוE( (85YbJa> =85a4y$>Bq @[ˁTMv :*9w$-9iqМ>i{xWнKEO?+XS;n6w΋V,3 Wh p7 E ;SWT\gMB2oyU|G*H._?%$ɭa1S~;4 HݗSUm3rheD.>:b&[.T+m4{xK1VE0KBW]ڏKR4l|eЎ{&6Du?MBdu;M:wZu*Afyİj=8 ?_ ݗDܸM^',X[jB0Scm>*^:c>IEPo!8E^㜇 <iK$m*)C**c;z6JW>眒d -1%n[R D|l9%Qx"|Tp{rh}=fȒW%&RϷTVC^Tu{;?32;)vӸhb25 WH+bRH @ox1,9p޸ުǽ+|f5*ҲoWМ?Yd fTWhQg{xiRVV;#rM|_]SK af !㖷Fw'CM`xDC*z7#f%e)$qz@)I\"s[ef9`mFM☹T9F׀;@)ބHKuYZVraR:W{;l^tliяva\nP{]*_,v#,ZXj+̜o4YZOQRN$BOh9%9f-u7gޔtr+-4% v1zR,t:,&ۭQL\V[c4Gחv\a?iU6g( ʒse6˸k`-TաQE,\ySv_W{O<mv;,y}TvAycdB=veOWV)V6>#Q޼8?Iz$]*ת*^ 5ļH䲔z2Kc8yHf?t~P q=7羑.O}4[+J&29}Tyz^uG@Cȭz_Np/{XD=_FRI"kʶwoY-Q:Xj2=K ~ݫ5Ū!4K'tuE4mLXSJvJSk G>$᭯"O72z#?% y8dzLc9ZL]&G|R a%m1z9Zq9st.nULlEeXeq?l4{XKscs|tI~V3EV7yѯ ڇ ]*"_ I+|fIʈf)QaܝvKB3JՄ8ȷ}zFLvX臕K[k|{s<.ƈXڶzGT u?׻ 9e md2d4ͪc:yhJ\aN(t.K?bIRrMNGEݕYQHLl HaaWWړx)n"W$oX2e{; drM&N/]vv1i5%G(M"˓57zI Hl2W=w~ifUv>\r5nVfUX[zS`kmM{ʲJcTϑJ.L9dtwF31&~!H+\./=,W1uqD#?UT%iƽ,@e5ח/-9P0Hd߲'2MVyFnYXǗVɷeguZQ-r1l$ldQzfO6=}+=48 SDl*#.w6f4 AcTG=> stream xڍP.k 06; ]]>;{kfާ^ݽJ &vF ;[g #3@T^ ̂@Afl Bdag^d.3t~WȸX ?v<1CW <#@@!jghaf~<i@nnN6 G cC[9DcCk\P;;011819 ,* '+WC߉1"P-%V3uv3t [w[#l@d/e)]wˑƆv6fS k@QBݙ`hk򗢡ݻѻ߁$;;'cG {g'F' 2d{mMDll@N'f2~jekfgS [ӿR0qgRppI[]Gfr333sr ؜/jɿ{{LSy[< ]AgG?F@ `2E] 2~yG w{}[&v\&q)iYmi%"bd`03̜dh(Jۚ{'`>߾;_6i,_57ޯ./o>[_*2p߬ ۚYN % gcʿ -H⯅`23/}ޗ{?Mއ濏53kX9W14&F[;w{zS;G`K/`b0A&?]S?d~GEsw??dr#dAﱚjjgsq?{bz}x3|O'OvEGo~wfmAK5n}ԓݛ3\! +)DN|'7=?KzOr|?{Pn ˻?,)û|8>]~W@ cE;c oAn sh<;]~&dl: 'S x6%*?y=WoG138Ut,\?@OȠ&to ]" E_ҽ~bu0AbIGFmI%ؔ~La˾Xtl5rWLxSl>Ӊ W)/;ý[U&_ ,dR ԧ$gԎ5<8{Sқ\:D4A{ᒏo*wHdcE얯u"}4j%S)Uv=黝h6#ywmziq HeuS(DrQ]I`Fk%w' l![W\Y7%hyjX4⡑] ($.pgK:| I3O eYXV,`Q zҒ{{~%W,K+jן}BXD8\A˞f 섛r~C nT>P7rv\$2Ʀ@ x@y)2vx::ҀEIomm磑 僃ل.OZhVIlh:V;FC-T2rh2h=#q;+|9U*ʳOBFQB`bC3CЏnȞp P; |%yA=XgFu< /u SmNeW>C PjXq۵>ߏ"K^ZB e<_vsϕ1\W*fd)b)c9h,2tc^3=pY YX[V+A/eLt Fnܟ8!V(_ [ [_'=^w;/=Ą_~~Nfa+i1T#̼b&lb)|^wKޑ<΍=Lu:,/LRdos6vjmZd/-{0Fgbr| 'D)헜{ٚ'G]_2$ 糇CDCL;(V׫tD(CBL: ݌ 󵆊:6<:Rx(6Fy9'>&(ukď~ݳrHdtL<]렦'ׅ%<0S3/?x+lWI.>2Byff'284H\3qA`49NTHFq׀K2qs[W >_"ݣ8$jIhD$݉+˄F) 2'\j "\ۇl\H[6\1֨zD*a@/ <6nx6ɯP{Z5f/=з[mymzFl 36"G׷UL_ga:rpj6FVZ+ ^WD$Q䓟b͏o ZaSO$ihWG43hcb-*CTM0S= k LlZ<_Hen 2ٜWմbQq34AH=9е ˻h1ʅ{tوx<`HNojz?j3"ve{;n?;쩦CRAq o%C"r'V;=:h'/M. t $F/L~N<:E}޾ @8i?5f|& zzխ' XA\o흅\2ٕC=279IV."*jˁR'rFr1AOF$z4Kch鼓qkQw\тޔXhFEi-K⑬6/O %7t&P f@8ɶ;%Ɠթ@N=>L%Vظ[5AEU]θPG45̭|~$ۑbez I?*PjTK>1bfUr78fd@DlaPP`bvK͋6a܌YI:ӮW͜Tg uJ|ϙU8/KCHLߚJj$oikpܡ.-i]-lRY(v9p+iPQ;2drf( pW l#4$+ bπHlUm#_l7ʸ&un75ɅE7Gwjgpqem"o0Q: q{')t|٬d/*VLj }CD'5BgBB<˞-'xAQwvb.F(!,?wuJVo0hT?\p&%79]MI~)xV+h`݉WAK" /G.EUNE%F! RmV5#T8vېrY2<3ڔlnљ8dtyFJD{ZZ:g2,b2E@4"H+:Q)ej aɡOPGڂd{P-a 8H'Th]2kKg 2'-9:fP㿇2z{/u` ]+#ݢ6,w D x]7Yo**鸄\&#[0]wJjfHIVG8&# x1;1f-+.T5J 3PL:q}J!v]^Ӗ2{q1Ҁ9γ $f&k2lEn/ 4oM&D%fl_JĊKfXS%an_OǹCN"^Į|ע\􏍐pEQ }u7k/e~ R%VS?eK.B~h+]f۱(oHy('0>7f Nwy*ݿJU%?MGt$)I&}rş˨HؤN׫XQ 0OkGħQ`f9+v[M|dûQz/@<˵݉__xH eD|4h )(\B [u`_Lp1)[MZPk Ŋdqˬ0)ف<ͫol>朆on)!Ec /F\?8}Ljdq:uaCIn??J`[ +rDVL48fϗyЏ#񶞍{ƮWE7@ J( m!GG͆siƨf8Mw0O"zU/mQ*E)kL{0Hto;'Bl_!#}~#l2=p<={`t󄶤#ZGvfs2gaȌ{_1W[wL vl.qч m"ct_n|ٶokGqwKWi:KpcS5i=L5i ,%DJ\洈3:_8DQ/JLLbM֘}X~H~۞.EO: ڳ]S@Zd*]F-+69&'ډuJ\υ.^g9ۚEW[=HgmL&gs@c1AY]03S /L- ؼ9~ڇ1Z|VOnJa> vW7FS.vJ=D^ |i]ȰlRXmr4u(k`:R~DԤ0T1 ?ǴgpWvOw!m$N! o  KCSOңUYhgRj+eݜVYր`U-)ْ`bTo|;;@)u" N5>}:49p"kd@c 0qՈGZ`/H1F nkAjP]awo)fd&Lf!&Y%ȶ;|ʛ3<=^$]]тznܥ@.mNSx~+C>,2Ϳ,ٖȥPRkNOUj(R/Zkd'`VDVjK*ޘBU$ӌX/;$ٶMYtNYAmYa: ӋJNv'.fQ[x!ٙf+Zc2ull z^y]dҸq9 YTېBd٦V'~,XE( b.̧I۫|x``4/&RwCOvVS;WRk5 eckVX@/pa?F9tN9/Ѡ.nzʴze0fTS#E'>LX>چ?AѰjf zl鱉I/v,:Ìob3~Pdh\j*a@]Ӳ/`aЎ!#nn gl$So]ý;#s/‚; 0AKh3_84~3Cv*5Jv#p]|bƿ6艜oyb6hLFBT*ł\6#V(9cx^76c|2ҷfN ̏BzԬJMw+LP2k|EMg+wa,1ԓyKYwށ+9 |:G}Dyri jC"RB!uxNmU$ \"vO&ێ6-tPIm) +!>מ[c4]\ddBzP_; ڗH\ݷΚyoga?45mLH]E~iZVW#pt-)^ Nc/4 lm?7 );i5ګXj7ӸK[ukcHmQHSP+CRGn7`)WE'htY cC-5B7ow"ꈱ.6NOft/zU}S*]\_rn[ǮK1>G}X1UՠEozdڵ(d9f?f} 8 6QHXm[6IS> C$Zr/K/]Iw l6{q"G%T/Q~܇a^}}%ò䲾L=r"tpuneDҾ}}H$aXn 3OֻkFQ>}} "Բ=mcC-svzb9DXNz``EU :nESZqFMBv`J3B檍[Jf\bgZx 7E''VҨ}J3G07YYu8 {`B"lE<.cA#GUryc *´_OfB!8 =4gU"Uhf&q4^n_dEx%C䇪.1{{&+R%iL|hN-FpSiߺ37PPJg]/6oMjZClUm~lL|$TIyj& }Lؘj '{,eR v07˞\.EGrN8l]?UX,_z{uHSYEŷ*Bmb&.~˖9=^}t,k<RvB v\%$,) >s-޿ lB>C1^;fsv)5qqN!V8 4K+ťw/vkOx=h7-w? Ie^~̉ \ͅ;CʬWWև x&Be\.rMRJl8 zBI,1 ]Äb>LBqN=Ot!~4:"9XNC(Jp\Ӎ[R4mųs8_{{Yg4`Y ejd"ߠ˪.$»WaOw̵Ühm+_DPK ^pG.̶|P*I8a{v3 ~~qHq@oxW\UA']4QI}VCX˺yJ/刡FEa hwܤV^ 2/,BD઩0dQ6I?Fldӎ,+tYf@4$ 3e b;Hv.诉-v8k#&Gg ǚ&t@08@%n HBsH(d]VYIaB!ɂ.k//@aqTo_ znIcoezx,ay3bD;FqOZd>F7>.IM~h[K YѹI57HUaA򁜁&jA9hS&Ju"DY S=)Fwx $8W%kW{;C|JIxf&$̅ޱoȊ?_$ -O/a{ V}"8karšye;w757>ֻ ?Zua H;A>Rhfo#~hvZTgsNR:!>\O``F/4K~a7LJ B?|f)B,K%EK ~p}4\bY%=jZ76:uŒI67TBeХ+v*JhNQm H`DU+KrP8'Tn\#s2R癪Ym~PJRBj WrtSY2}o0*7 !Gw ?n{~wn+h =iIhE&9 z{%s`%LP$,jX\NC!gWHmK% Gk5\K&%?볏-Ce-2ۓX'.IKj@*D"f@Nxn!7Փ?iLm;NJ?-'bowBPQ6w['|4  uR kډ?dWz̢'/m 3 &\ Do=זGu)C?yT7ိ~P 9WΛqԥMb)+|ӺR<}1:']Nn¼8csL֧6;!`X_:YLw(LC,BZ=1RUI6#;NH&/_;,O{Os x)hLd|3'J⎰s+Q[@Ccu:~G9cVn6v<)IڒJgbIF|fYYZkV#MngmV= Lń3w=sJlg&㩵l+J,@JHM 1 ~.EagyTٴ9D^OᆲdĔx `HZaaB!RK׵efMTUV{@(#{ IE3DˆO7i `uEێ*q\.Fuh8Qڒ~ZźM~0mpfˍ;/>7nu=PŚR1Q-P^A9Bp8k:&6o1b)G|EFsgVDƒm;U /( H.ܵꗖf' Nvjne^H@W9ۃ} 3fF3hi4H3Ə$RӺ^^XI,58=D+Xd k|UW)]Hl}f昉%&"\ϻq '4T8 i>iJuU=VN)珞ml)j͸`:u;;KGJ)4*͢XX@DDl-1_iOFPE1O]/ON[&yDK:# 疨/RY>KG-ƞƟ-Е!zx~AD_:)K{d&jF[q` p1;ځ 8 p[K џs\j 6MD7vXn&L[ZPar^c%a*`K:0! A x֍!4N`V}:DQh$QRp=mj=7õxS\vjq/#X.O?*!n'FAf[fU@r%r*xCD~H摞,vgBOI6pws .ua>؊og[aCtS7^ ;#Rs7De[OnBya)%-#ZlwvPi< ̶,Vm?h;!IpqJ?$>(]o)vR ;fv%Yfj{ _(.$,J\%;G.H Eُi^KQ'nesAީy})NsY=N;B\$QH`l;$/%~X-~m=*p4QZa="#pGɹ_O&AR9}fY Fy@m9x~ ' :q: ̚͠,#98:a)PFB +(<r뵎'eދ)9כ6 A9Ud)dTBOroJe%i >?2ЦE;k_Cߤy$M= ġ0WY9TChu@#?(4kّQmpFk%sgdI%fڕojb'K˃=b!#Yk^ Έ"^Wue|zxևꦣkA.F`6=a0.4jKhZ %n+eֻd䀓'P}ئS| SXuV|h2g9rR'<qkf,FCVAՔI&BRu:?ggcKSV7,CW7 g02뱦Yl?Y!!T{NeK"8D|Q Tj8\dSzY1"~\ʶ"Mw4o.J8LkϞ!_uIl_0(j+s] Mk>m=\ewaΧ׸'_Cy} bI~w[zp6~/qQ ^E_S&/ pXbCOx%i߸xjKyPܵ&yѿ+dOdOSM`D5IMّd\KekX{&5z">^rp Y;_"/`L6E.qj(X tg Ԗ:.Ƒc*M#}Ǖ}"|o`Կպvqr`yl9n8dio4 D$'67^ɶXۋo$BZlZ.]Mb0)WH8L@ٰ!upogڳ82f Nl.i2?1~wScޞfǯ eJ<l ֯F$Q}h7oTTkK_v6~.NqDf%eZaE6מI5Ⱕ7w9!I4 V9 s?G>)jPE)Sfjhqn#AYmf,Dwe>/8=g)ԜfD_Jʋd9c(FJ-(m7؄\a 5.+Eǡx 7[xE* w0L(.6нK O@y&ݐ٬+Kʿ*w:@l;̸dZV;ВG03-jXWV pgO2wӚ?ܢW硹/e6 XSҩ$&ըkMl -`> 9X7@atK3CkI-r)%AM\x62 *GB qrH1 fڇ0- M,2,̏\U`_/)}?GO-0䓌_om ׼gn8O<ou8fz+b.&'?HJs̆<s(1dsi%IG;)~IȲEj&fnm}?D endstream endobj 362 0 obj << /Length1 2172 /Length2 12913 /Length3 0 /Length 14227 /Filter /FlateDecode >> stream xڍeT\‚Cp'k¡p ;] W龷{5FUk9* & #։ *" `ffcdffETp R-@u:ebN`S9-@`eef23 3t01d@@GDJQ8i,<<\mƆ9C's 85@dltr̝x\]] mAf4W 's24n oh9FDJ*X[mNζ&@8?@EZ`Xoz`ad'dcghnak0$dܜ& A`CC kC#_$ӡ#.~ZDdcurD]Mt9WK:=mȾ-?hp~R?^ N5_6E)HjO=Uј D~l.JO^E@b΋\gD /~O'36y3S=.læuD,UkZy#]:Hҹ"2)Ew;`cv}@'In4ax>o4qЈ";$[Oݮu m='ze-ј4A3_kޙ[2Dy|*l= o}M₽gtE̞GyroOP]zCKwlH- !u3{isPX<Z3b#N{̐LPFG:V=PCoK0&ncI_מʨ43Y t7(Kۥ)Fʬ|GMt$9as+:,ALom>L/(i9!%eC ƚrq!jB%3 ]뗦~0A8hC$,]MgI"5i9`X$o՚9QcX`JlDp,cyxЉ9 &0*] o 2a6bpT PѾ_#ȚMV i FI+SrgZKñy; 0-{F:J!"Pir/zq]!P4^Y m@a}3oT?"rkrڹn7B9}fՁJGݐE~"`s} 4 !7%#qzid 6/tz-Aղڑ!Wh5 j9 >nc'g:??~AQNKOtwW hN!HœmCF}q.;~з7IUk Wvp_{mlcq/NCPaHX]Oj;Mf\/(7Dxuy /ݟ:/e45a3=s.-KO[SI %ITZF<}  դt$7题uP}T}!RÎqzV0, AH$#V3eη<qĂ|E"S( n V6Q?~Ѿ6dyoRsU +ۀ#H V oqWA-wKX\liksaZ ;qll@B 8us1lVΕկPZJtYM6.f6 ]ict_3jtZb37p,sCҟf5}fSD LP}~7[g2.Z/L w)9Jw/PGM*kj-9? s ;"YZD@^"^dc|-A x5伾$٬t|qas*r:noǷh[ٞF^ [;ŕWG:S)u@ 3ya6 2HGk!ƥX쐯_4VHf[ZQOQ#Y 90ic 䤽ةqW•x 1~8D"SCqۉd#G$)Q1ezD3*ZB 7kKGw*0< pe؍xgEc&οAv%l]UrB >j0]X9 Lq_)X4Fv,[σ,Oj=2~,\s1A!nIL =2}Wfyn>IS"Pe'E[]W٘>>ĽX<7CnUa`">i.,_9''uN `}!C2#UU/(Ƅ 81+㹡 *1'#V#(gQKD^%u(i>+Q 3j_cWwlO '920 M%GkUS;w5GbMˎqRZ3_6_lP@l9AO$8W|d}xJhR˾,{ ɜ&3l=+>B"7B Ӈa`I,EHo9JFu<"]yn_,UI'Y6w?4=u\JSz=v&$A~h'WwCߪY&Fppjv=V3YCe_z`tI 4oAR'~Ic~q%  h0L'zWʁM}ۧo@fP/Z4MG7Nɯ;4aw<Ǔ["o9zşPKߦh&4@iw?\ wa7MW7crNw&8ĂdDdտԷ H%I*ɉ :Mw#$KI~.gQ#yEBhQ-қbU}=nY,kDjF+ qCGcPrR&jncHd?ýJNi_ =qCjco.D2ze zŃUǘVIyaPJw}~c:ڜK5y80НOsRn0:srTrz=L #C$YB.wm>&k,5 +}FV 3/Ljܯ $te͗S(G{ˈϊb,ut F]J Pd}剫?"D gJ򬲇kD׿b+%}F|si 8 1߅V`nJe;.ꌎV)} ̨*Te^ѱAXlrZ.2Rœݡ g״13ʶ#K6|Q>ΐmyɚ"e!6I&5jc_&5,^ J{8{HL0M+[A0$O0:i u/39e7 5-pkDҡB30CWOCVsb(I7P5F8T;MH[ۣqMoF7Ӣ.vWzhiqOEhij,ՂLʞ4s| qh֧<gG\a0J>GYcS3c|Ŷx^R{}mx^eiV|5`Jv!(sƫx m⧯g{)ǎMF÷Rҍ'̴̄ ]ʷJ,t +Ԭ.8ӯ 6Ͻjj$81+F_II)&g_k_kM {~͞dc7h*wѕ Iݷ$iag)ý-P&bG/ƯOkI4mI G7;^Xȶjbsiij,75BR9|5/`sȏ#b_\a:̶lĄY5!j\8fS&J߉)l,ݗGeJƙ2C\.|.^9 u.5:bݽ--;YWD7rd֗M+##sS^Qj7H-NG7)н+()>F # d2:wT_ċfsg=ex?oV$dĽxZR|Tn ɶ9#m"ЛpSnۛg@z0I|Z+;!/N,Tr,DXs+|1lqmLX&̡c^@8R$z5D55YTb\ sl 52R?`m'F_Q2Lrߧ1l/sK%|yt@}yt/'yI[M"[nxIDEĿ@5c 1u@CNLOlzp/Ȩf1w. j8=TB՛7=R~ȑNL/F\ +i;Tjʧ1N .M>@?3?n:9]˞T'yUl~ˡ"bqRދ=t=TiEywn{r`tzFʞhst_; Ok0>ag m~Xru=mz=0 ! ZNMٔ1f;#sqj>9C(uwx=y"OLtW r71T)f%g5qIJRJZ "U❆3H;PTv7#q_ Ie =8GbR)ШQƱ]^C1WlEd>R|jd50GR#8_Ve^R/ Q]>kIAnr1L>3%&~eKJYT[GTÂB2 VE"QlÄ j"OvI>؜/1aX3Z^Mcj~T=>NeB9͝Iؚ"Ec*w7 cu?qzr%~snұ-a~&gudkY"P6F{ Beou[Cd]ÑVY538 ̠brrS ០٩pΈꇤjȣU60ؔnbHxğ&-]EN#fsYkHrǝcTMq(EyLԷ0Ak˿NO<6`d) w>jA\1#yp"e|N,e@NIەQ9 {T=mٷ\]t,.C2r2~9@Gsލ=ܞ }Nx !FC2q|.D-jȡ(b;Fކ|ҖbI?pBHמj>TĊ { )bq@oa j3H=8C\)q3qa,NAAGg |dƕȝGtN)?id iީ|:fT1^.7zp~o^9)]#JF&3n{%GG 1jF# nuj%=(suX 'eJ` ۀɌoBmJ#IPEIG6r҈h֋ʗ62d ڸM&6_HW]쉗ݰ s^[y]C `=9bVPη4IBRVRg+3i\O7_ܪ@B^@@U~x9b &!WN_}WҪ|)+{byd3O[.ʹ=>ڳķ.Q7b)%" ףmD)!{2jt՝jb=}{Ža6Yֱ9Q@5pwIRCb NUBzoW}yk+K)YjBREg~ %?&v+\xbw>F 2ԼME ' jg d"x3v @Kǻʓ?ntE@v)qќ~(/L'DhhhslP/\+PF'#D'AknNq4ď4?k©,+b`]l/w7,}ur1C%rWFRFb Œh79,qڧ 4g M,HS9o9%Ļ%Y·1B&aWd g\: o5ZcGoGZ̺4'$J L(N WC-MK{ *%]bVH1͜΢tp4beH?mU']S׫xbezk{i1#(nY8䏂yo="l,sD2SHѫ+ȓtU}회[hu(YdUXĐ[}sΐšM=7KvКnQ -B \-kί,+c R޹}aR5S$syHI{J:|r[[qI>Ύu']e&B%00~ǽ}.&%_*m^KIF4n6P9R;f<(^@ ӹ;e?Z:1"{*=X茮s=Qhn ud_Fm7F:ćQ$e ֳ;5BܞLٰhC1%=-fjEWݱ=EzS2qwt@!?l&P-8*lO( t}G@H||ܣi$Ԡ$2[0'TInueo2~zOWA늄ߐ uS*ĩ>e Tziv-' _X4^,q wdeBq2r ~./o&I_Vg$iϠM;g U-P^bܐ;?֮^P?.폽YAT}dEY*jLL+a:yrmiUoG7xW^ 5A I }vN*~G6F_5>hDw%*E4g,5Zu[p+&5MYEguks$%$\~1أ=F?UL){Z-Ou cxȺLA7 &Q|j ARxiTۋ]=r4[v̽BH|(ZpLPK|~ olO:u^0vWpWM3&䀐O mسxB"3c ;Jݻ!o|2l$`)XyOVjvB+A&OfmEDY/bT^ 1>x޷6S*|9%Ri**;HQ}a~dIcKN{&cD$1;ag'w-ۦ ^$Bv8ķqn_'Ao~)Cu%޺w{lz{̡;St`&?٧1r N F"]eאCNǤe%2e,FF-Hi,'C3-pWdz E)@0yJ6QFsnJ2[ҕv|'x$K#iJwυ\F]^ܵ̊q,l >K;?c}O'+iB\P.gd(L^V(RWy1tcQHlm. ?ϏqRLb@,J>)i*&l#29:>[ӟ>h!<⟆I x9%fL"l'.(¥QD>"wtk[Pt QX-fgfc}kBCV"~ZRjS&VCr#:d*9sۅsZ<=\s%Y]Mc%X*z!64_$b%ܞyΑBdͫh\,tP@|-沷?H¶X{e+ O_pnHqzV xP*5.X0o(H% 9YIc>4*ﻸr9W]A+IYm1*c}d*(pKӞG]ru^,6#f9 V#5q0J ;R?b .9YWG)>׹w-WsóBBN@}Q^j{,iSH^+Țހ%-|ǮE *|;&|*1Q`-|~@91sl*bofFU,Z_1g3JʘeԻBno?#3ƴx+ΤU!mbwd{f VOavHS\q??{-Cbvu/\ɔC 5>)\*hTt_'#p^vjw< ѹuZ*[Cj &<.!KXêyRXF_gBd^ 7j8M7)K]kDRV g$kxz[`h_U!Dڽeo # ~0aPa+M( l8 yB'o)I[WCV DF /V"%-MNp5;GN{SnJ,1L'kP1 1AEBZ~!nHV4~f%ݔȗlqL<[П7Xͬt|!2ZzDinBfxGe V Op5gTo򚴫KZj)F?56Jm?z-y~Vt*i%"r(pU[8aTe6s~Ԑ MoZ Dq\#,1ePi;%.N#/~|7{:S4E9LG w 2qE>Q"'?5r~'sRe?.FdS? endstream endobj 364 0 obj << /Length1 1492 /Length2 6776 /Length3 0 /Length 7769 /Filter /FlateDecode >> stream xڍw4]6hAD;5{c1 c !zhBtB :Q%|k}ߺך{_{}sְ2j"mHW$ (h H$`eՇ X (78!)@ $PuwQI1I$"Q"n hHԍU⍂ p@8 1逜3mu^v8h$?'ٍpp= uV@G@i "ܮSPp:h@n 'w?#~'!  G;RVC{y0䆼{N`kf'?7 vs;6+!lPڍWpr#˲#l~Ѱuw7@]ݡ*b]`P4 ABzA-ti@v QP "l4`TvC@@,fD8y} R;(/|yE^A !!H.  쐀^o_{)?w-Mp?:7 ?gNWUݑ8'v;y;z4ףoՀݝ;_Fݔ^P[m8b^4'8t[^bq?ܮE;/ m(Fk- h -cD_;$י \-qA_oK:ǒ!["H;;oa @mߢfBQ$D*uhI'gH4X͌CֶTeუ~\'^YA3)rJ=0(-E,5jN{EXJr&S (>"eLE4m`Ř0̣?ƓU Ċ7Rz/ŧ;3Us*ъ;>9O?RMR}&/rP$3܎ whF@';Fԍ 7h6 듷шK"9=]ZK&ǿN'%>NޤWXjC;|%8lU@^I Za$8'Kأt8?7C+p{s<\-,š!IV4V%>*E(k ":nrX}MX,|lw^QxhgD(6o{I *ontx??9I:{8V0Ƌg4|XL>hsQr)n <>3cnn\+~z4E7Ïb\x<F`DU6Bwz~ԛ0A..@P|֫UBfx8e[.՚;*%Ibvi.CdZGB}K{.ĊmrOݥ3WP5q&*;5;%8rWk_ҸO] ǹvjZ?)B6M(7-"x?*Ӕ2ۚᴉ8C:Iac:-pM2tɚ!"#g*v$J^kG=)uZI9c;TO*2?{XDG4Ͼ7Qhy#,ϨI v6yfʷiɶV4VE(^ ',m]\֕oέ?qJPQht֚t])Z tdKll~2Z4?o}jyCu(>-})6IK5kSǽvaՕ{H#n>g^00ؿUr,„gfbx[tD%s|svHK, JΕSsOJ;m_Tv|M G[_ zn."E8ެY[x$I[M T6=dS5iE/S-2aTi9UC/k{U3x~1c !O/pM0%{ˣdAoajQT))"փq6/0bI̠bvoLZ^kN;G;) ZTv㕎6\ |I;fJ$Gz1pT9w0iB3E3)-~&FMnz7N ?(q<'1`.O"tP3Na U2 ]andEVjmMO?3D"܄W`o?q{x|*9ib]TOgh5JPP񾸯ؽ7 7y-OW1sݞ[ I5\j5YLp5U4yq\Z/KO1ZfވOx_r&Yi~bwPJh#ZM/6/WY=\ҮߚX2am;}HUeR[csΈiDS(~վ,iM041$,g|RI+4#ua^V>BaEcwE:+UKXWuʋ!gHi_*Bqxqnu$ѽ!MS sT@0ye]=ـγ*Yڹ5>Uc-TX=y| =bbΕN]wKB@7 4٫O[n]6ϺO_(g&ug*5A|^dcr™N3$GZ-43F59"*XJ\^&y!Z1;D_Yܖص$[^8rLBX^سŒ+1 K}1ܚ̤}Z ]g;bϩ/$nT8)s譲x=ݚ[4}%60UaP/en=2uo3s7K0`PbKY4ȾPM]6e{#l({#fu]存% Olk;,&7j{RzuNTq c ,+8ģ' 9֖LwLEق/Y;OE՘eamڅtyy`]rVO,RĄWl!}Qf|2?REX&L]@F5yĦҕSx.xw'T KMvp'54[A4A~Zssf6#K~2-;ql7~Y*߄3WWH %V)[3&] }on[4_sa?ρTpJx(T$)M-3ۂ穒l(hY,.3@DTY$xF~\a}G xPz)b`jPe' TtrgS|B܀^?_'ڕNHX&_%Pλa >Ms"v SӞwl#Of+M/):D_fNR$d I|eYI3Ϙ__/C2b1I%Z}<0\VS{X2-Y*oI0#q R}PcV$f,6E |vWR3 &qfVgcuNVTF{!|>"LMzdG,d{6$2ga5Vdwn;sSm0Ĩ9ni/u.~$gojWmGI)1'&UOD~>ŇtNU'k$I+`5 Ҝ>JO|]#1)P2#3$ݚMlņ4ŸĖEdq?&'rz sy"jSřMK$93GcXF}z_G!jӣT{͜Lj9ˏs),X ϳX7\AcK)Sّ%^G*x)u@KcŃ6lUw&[&{ ?8+aqU*8hߗm<˿|ؚH{$̊EOE/{[50]"6Ƕ(1iLƣQ17crFsf38&4f "5.c2i NA$0w,B!i')bIaj嗮Dy =TG3;26KɨɆ0 o~2Ig~#ehPϓG(B`쳎Zc9fY!ׇ]_mhh4\{Kt(qes:rD0=%,gTT&0PN]=οX^?egYZwZ.wz#E*5S;!$襛`E Z?R@=#ƓrQW5*b0yu8GΧfS(JɜU#41@c9;yW(A5zG+#7GJPdf37n8d~&"vBW*Ç]+,nU8;4->8S|;[@.'*#x`ㄤμ+n)m8Z`6cF 7%W BnT}$JXǙOn~Q#U/snȳpL{@ מt΋*:xʱamvtOqb}ö5V;w_=_,~GbቚAJ JFBoJAu*DfL*owM[k>״(v+8=)dB XsxX.p֐@^DV@ߑj6DJǔI!Z:@uW.kDͫmxJfn}[Jxf!$8’ަcz^LLziBb܁VARwRO0| `5f+>Q6wk  Ι'I_ij|f k:Zxuxjx!ަU'|S͍'m|zv٬{L2: [ Т|>$?q ĨJ amŴs pC-'|tx|.btdItq tasLVħ qe)kft3z >g`R1X-gޝ69q UD=Winc"-G!o`\=ܸ&& f-/hlu zJ4u~M4|eCLt<^W88v ZneجSK[w X{En8e!=C|ѓjGظӣj6Zjl}H1]e,[Mȩr=AG_T#o?+J@A8rXl}rl*n<>U0FܒS?˲Q Ŝ *4sLqE|(SVkZ_)>4TwDe[\I>gQ-ÂBс~D'q։jY']gI;I}rrښ(G]4(3ʩU~.'ϐe%ymFMXtÄ'-:@J-ae Ӣ04~. 1] m2J>ʻ_>7> stream xڍwTTm.% H (fh$A``f`iFPi. iEJG}Y{빯gag7W H_H@P P12   1.п̄PDH%)1Wq:HBRBR()@ :&E+!|PpG2!II 适+#0z=0Báq`ܤ@ ///+ZrG<a@ L0v؍0 .p{(}၀@Q‑6E 7U G>p@=Um7# .hU> w] *+Cۣn"W]VA@PM?e8 j>?'@z!08E2A=\9@1]A!@AA;! hzPoǿc;AO+3_> X ^iOJ^$ R5Vo"!Aqa@B\w}06@n?{%w-]j?"URpq?`W_W\ j j3:P ( \F8Z 1nk\> uB-{竫}%.{I=kĄ0 !:+$ ]"[H\WEDdRe?H$D?H ݿ]ad3 _4=PI-+ (jOa i/T|\@ſqqEwcL1wE[Hŝ4GSt<_ڳ?aTWN;@!HZa+O Hm-,9̦%:D6*ן7K~\d̩tX8l˘~ +8 e9N4Elwl7?HDި(S߬Q}>#RyavM%(7{G\Zkܣ\/YU!c?=۝Ȍ^M,)gsǷ19z;+~-4b |4.̅Et~CaG ה[ю{bmGǓa/o>d 2P ۳?7גK&0b.Prj\8Q&wjCE)7ˣm/ &&Gv)f}R2: =S}&t6RO}J[VnfδDd3teF9b0g[*׃pT]06m^<:M1.֪Q/!-9ۏ #Y,yFXYQ$cD(¾Q'~z\U^F^gZKP92gt0W:Qؔ B.PW "Z+VK?b[}4upT+Dw~+ho ?h4iRHv̀|>i 0tGTM~z#!hcaP M0ν)Hi~+PCMWמ/3}ER,Eno.:kktW}YWv1qw|J>osֿ-Չc^xfjz(]-^y6^xtT4by +=YF_~H!vdnLoqȑ.Lbr̴TLs YW&mKO|xpvTs~ټ*},mDt]ۯ{5U:^BzrbЈ_ΨhJyg_Yc(p&`2=c79zh6ű*(oN)+d/:/'/)D-k'GG @!;v},.akZ>HptvMw&HI֬K N^IElȲ:;ʪ{-!mkGgRᮄ#8/`_]"5ՑcاA2cK*ka2S_fy$ }Ãr_VXqmmVPt3!:IuͷAa%:+~Bg]oҹJ[*] GsIݸnV կMgDGlw]\{u|1+ LCLڌ]l'2+Չ/m+ؖ*r󂻯p@Li]/^(D~46ߺCf|V(x%2mA&5G56&;h,6^LQ=8 U/g9[\d4o+?@KWӣX'n^O7i"mI9JBTJ)N1ѕ?g&Y_bn-,'x74Te>$=bYMzrMKeI uVON[~sW5XzUy#H"i R[;،9,*0+)'wM> mh%6 f&u^4q-Hmjbrp`߭ 46cũ 5Βdž)˺A_dp m<&.Ȱr\In>mj0:Wg9ЙYГ#m|K1߹IPg_i՝V x)}im{A=õ#O b_aRd7\w>i6䐼A(SP|[Nyw[CMRZ+M( p" 6!eaKM_G?ͧ O.W9#NG۬;|kЈ}G3yU֏{ׂxO%p5aC6]A-#Lg8dgp*ڄKAw JjMZd.Ήt}(%ycR]z! ,S{G f4ZSvغ}.]gvi%aw\qIz&4d!ؙg(Yɼ77d|* mtrGs1j񏴃9 S@3U| 84izc+=d^z0_:bwj-8qD|՟W.S, DQ'}Q溾N #)QR̠2W;euk1>@)[_SsLY[|?{KP1N~9{; w g͔^'M\ >L$9*J=q/V;AyP@ɮ\Lǘ%WgNl<.Op9ҭӉͣ⤅⅀ZDHP3+5t [n+O-S`׺,wbŇ!6 ﷁ},2͜cw?L!~hj8-٥RUN3oI~%Ls 6AM}ه)=r r`>y%e`n:0G>ZJ}ۤ_8G Q#~=CRDFچI[ [4G5YE\Bz=oo+%.4\~tC|6z7zg(]%k2"?tK{ɞE XԦa vW:Hwa{ jn%ν٥q}vP]7~h@)8{xZ&}7]+ͦ]ҝk׿I޽كGC ~bTtŶg \L^|3^D\Y<<+#Ꭸ:]e N᦯q8Oʗt/Jn }k1Ao7^{=t5T(;$W:Z@d6YYf]Ie6 YŋOo\;ސÂ,>Wod,P)Kd_ۡ@jIfWi$RNwaajViBON)|1u\tZ'K)̴^ې{5=)w{.Ϙ6c,Y674DP#ِ/ڏUNJAGVN>Nhub,J egU[(ً.f_?Ԣ= ^g fm-J۴ <3RB⽺YhvJNxs8vP'1H7S."5Oj;i T+\5/;7(Ly&{ױKfRjhJGE# ^q^guE VLr6. }.?Q=>rޓx'YX#M'  h Xo`34,a܅O zI|dDFzyQ6ڗ9&= 1N6Df7F! %u5ѹ~&y4DupCQ뢌G|}xk4n!]uˋܥr/k|89ɴuVkTq!-B))G ժ7 Օ|Fqffbjmٽ?ш\V<|H]I~Z> stream xڍxT6Ҥ7ҥwDJHB$t^&ҋH.( MTϽ_VJ3g<v=C~DBR%mCs@HHD@HHCƉMn(! %7(Ah Qyg#I~B]#xTJdwL3ތsnx7\PI +E[i-AZm'MnO-ΤXm6(wUTPqΆIVirHG(|$7 r;lO).\N{ZjpU%~x|,h+[YΆ+rv3^&wfz*ZW«ͷːꩾD^tԃۜmt~H SLY*)G{S'?8RV3wUihQ`8_2WFI-EB=즑!vcwrw<_ *X;jNƱh܊y5Ɲo?Sҙ3yޕPM2~훾?Hd]q,[ɀ_8NR7U(Zc7YI2DbKђ$]rW:%Vf,_hjIEc֊Y' nz(+;ёN[琵;Q742=粨!>N\3 уACzuve#(0#m{]c?fuw2C“),q=|11#qD[nGn9مg&T܃mz@Y|NՁHjz]K8[8"Y;RH|$;iaqE c-߈q+ eO' |33WSg/墄8Wj^N3K$"]9CЌ+s{g1 oAt'<8,xgGg7#[>Y?>ƯF5sv &XqgH+΍-Ko^[aF)e)P|,@|4Z%ʌkc 8+ϛJ}ʘ#qU ?O}-') w`G}/:`5X) ^[4_eYlMc٢b׺%x[$ V8z{,.g] gnbgm]Eu6;jJr~Ѕ"Oڴ"M/sǩܛ,pVw277dGu2~M<V蒾@Tb\,xa I=]^Eqc.w7|\ީ}#Ey7\ Q]1pՎ K r f4T\!!agN: oTgl*ץm9}_2㚟e'VumŊ%ۂ9 ݧ_o ~F?qrIBasoJ89$UL;0KuhVR V51]y | obRx6j֚MJ+v >ny{2?X}9i:ֆ~ky|>?e!=hGM uofRQ| , /ԨvS^Os(,خi>:[4;޳&43DIIs!Y$ v6ʊ i0qLZ^i.8qMK IFJ'-}7KL<{1ncO{T^-|x#缶W=pe}G8"AgzIQ;q%<(.P4&O<(GE^:$kT.GǞe<kc{~A{#E#U#>MO}XiLtZb-''o/ϝIQKv]b2ak.oN☇QIآf!8#/0aByN* B>^2-uz*3b UY!}AZ[Խ>{L!T'TT~]wӝ" )&q$CxvͤuleI,j1aH&qy|iZ"{j4y4?4r=:~4Mz:vnڨ-'3Ý-+eXEOM,ԋ~Xi𾋚MGo]N\da~tm$K֓yx]jd+E)ųM'U72l 20 6  r[X=tzϡk3.G_F kjW҂&DJVi:MNH&8=Tl>YmM&*rV~3͵] vWcdw,Nof(L |gw=a1ߌa_jMn% ]6j> :Scc-o.uOc#)ڬ`;U]v,on/2hᒟ{CnjpN]x!k9z8$? %5f4QR<&t9:$>}lN}Qo$\yemsFÂ/isX8㓳ټAF 읐|dq4 ]GZD,kwn֭:Oiߔu> iLRe3>?*D:4U1!tZ B>\PRLwAin zg8@deue՛K&:cTp˙~d|%K57c^rwl1~5 ORf%rӷI=֗oKBV$cýlQ>}wwtg#Ib^UXt@|BB?>Ggc?L@sBh$yUkt2!1}G1#n~){=53O;yBuɒҫL\UygQLr娊5>Y1Yhߜ׸iE+xݲduC7.WhUV&“2ڷTA& &'d&u꛶<ѽ6xGGRaqivv*~w[fG2Nfۃm>QĐƒjt`eKJ^gQK`B2zQNƈy3s#ȂwˁOyY6uuiш!#r ֜"X񒱑#m3'W6א6)p*g?3. )o=4~^iqҢhr m>*_Õ6NVƕRd ȴ l{-pq TzNL;3p'/({~Rͤ7p䙪I)]ڽu×g5Nz@7J\5qvk)+'ȦLKY̶wέ+SmXܭ .DQXQ+d-3&Nb(=3_m]݀Qժu4$4Ɂg }\ABU3- IQ Sq@hD\(Jd7mdP&w6^De'lyN f::-> stream xڍtTS-Aޑ.BPP4TAJH^c}oF89{^k97!PeWA!1@ X mh&`!2nn#&6("(P Sb= h b1wP/"͇zBP,wP>x04.p5"W)+#mQ..p$ƝWJ4=vПuB~vݯ!l=\A7_ "fDbb" s*o \v!;8 ` "` $Ou, ^> c+/[? Q43c (o" JB!C\B2zP6UGڡӿ:+޿ Z8?"a[So U%nHwwC]> Xz`Famo icX##bBD"p nH~՜Hۂ+ pw?UFP|&$*P20VNB?֐pJ( 61`BVaꎝ_8,@ G 04kJop$ v7ܱ:{<puh~%&ɬ+Z陟S17Lz_FN}|2QZV8>;abOYOgЂcɟ .Z%.oTiܖm83NEL%U" "H^"T)g"1v7+]fGXy$-3g@J3}rF;7ŗI7 ]"y]' ll\`@1<"7{]citPW3nkMhT](WQ )OnYk9Q]9 5ʉ59`mƯ3s;P{>3ɵQ1kQQij }Yx|Gk̏hho:}zz2 ~B̶mEXqGybQ\M(zCvf5wܦNukPJp3xJK+ЗTXY^he@đwXadvlZ V_+Vu J2ςFJܪYg|n,vmu[àNZX7:UxIk1C> XZ0j6d v2J+b|5g .ם/g(C ݉D Mˬƅ'jASY3~"TE9DL&u{m^_,uOA|"ICXzzSf1gß#>YZ$m|pg<"s'͋l`BAdC7[RD)9QAu\"jMz$c ^ xϜy,i"#kv5(@^~y/Y |){%;@KUO`b*0B&%kVUݧPj.btfWd/y2@v gb3jM1sEi@nGTO# ׆HB[O߅Sh)P{y&D*@Dk.cZ4jY^9Ho8./|I8?FMTsZdCW99 g?\Ԁ\VTy+›Gٳy aRGk$nW wrytRbҠvgRՌ5J-.Ɇ<Q>/ 2X]n—gʢZ KOmƞY/#F7pCWϛ>P*`,7tNR?C$+w^gaؠbzS;qjȍ!W!t82cLU-13&8g },~A9ݘDį5'h\( zVٗ_<ןݼo넘S֫W3$;bʷ79R]Hx5Z D8kwvޱ.  DD7li K_n>kY_4>_+]b)f<82=oJCUTGiB9cYozfr/˝g^z0E$UE8qT" eo+>YA~=DSASrANdcQMwA6w>hI =yQhrF5}(?;+O\۬xݘ–5^rlYhxb,m{ʍ-1(SWe*#>7ܭ?$H)a2ZoC"[џ=yk"Fgi3)L;~h+~c:̼F5'.:>9z0G>y?\³4Aq!4ڲUF4lq1Ie;hFVM Ƚ} X7eCe>6PNĹ{nPe#[o0C6/GHE{)`̵!\S0m_q4 y^dvrf75WVuR>ciYYx zaYۦ+]ڔ@,d'm%`)w<ɴQnj|C b֎^"kQ4jd. UUB\cm;+>IM)[N((F]k9GjMp9rk:&Zeu޼}L&M"#QP=XMju}6&).a; օtrv'U-WB+#w߶vS- Tm"o8^2hR2 mp]˵ e?BpjN Ƌq߲\k GgEC&7X4ґr$D}xk ︈|_ĝ|ߘ(dL+BblWNM+J7>x*ÀVaڷ>ObS \GmYgY_=Pg0] )]G1O˚`>&ߌVGo)Jlgz., mj-0<8Jj^QYvZ򁻆MD ̿$&Bܝq բ)ɮ8ݵyGoJ:u(s.Rv8M(fri\UmSlhٳ- ^hoY 40.s Ht-;]Vkġ{-.0yHs#XDJ5ķsc"K kQDoǹ%,c)bD]9aTf&itKI 7RL߼>A[[LXRC57C44N mQ'iw'(D/ou`kо_Rkt*!GL/y#险UhuBѶHmϒ%?ls zKMP'¬Bl3{ˏԽ6}ɭAI ~aOx g$YDyZZգ ƾ Zf)6wH\>0} Zg;co:͚[}w%%'rGefg r@ȡ1t1vR}={NfU#8ڳ \h{opu2Ȱ?SXݫh9$xuDFk&? eٗQ5)Hd<HO-U!?7otgNnNOw= X,6r1%A<ܜEt9*[Ž-H`0VW?u؊M҄adLmR6+AYձ)mW:8%%Ww ?Q>TCh,MA0v3onHQ[hVkPeMJ fm/K[2ܹo+(vj pFZFJG{h +Mh)xz:+{ْ>)ZԈ-Y+oW;umKسtG&5˴)T/w7V/0dnG!&rz4aM"o HB 8&|q"j&x/a@zEH1\;_#!9DUl:p-vB}M@^3}ʛ#Hzˉ$ @ЕML;"HGd?;40hU~N9Qyq2{z>3!m؏S:tHɏ/I5T+NA^yO+/o0B^=,M驓v{ڈ׾̂qO.۵%lxd B CìpjBl*}G3;ƺjRqVR;z%En)Lߠ=mWx5IU)\0ݏ.'T);*[_sB̟k}-yoX/۵2;W{}ʴN`hxjjkpiϵ!Ov#)sL{p[J<E1£ QY f/<, -[Hȉ&ܹGu)rnBL:˷g/o蛼rʁFAue'S4kc.- 핿 62\_./h&ێApQoOҦxP,\MҲc1oɥE#7@k*c?:1FM7>Ѹfc*ce2q>bܲBfJcYd*][jC/ H򗉣N좫4f?19dt~f9z}ŹBfB-z劕lL)xw`w3~+p(AFx.&7L;J9|iгQFKҀWTIzj'e~V6`/Jg Dyξj} a؋SzyPƺ+Yg-B6=Uչc'{Wwg|;)k dv4jfn^3%dcey͝@9i9-##"Sc\;4; =۟] L?w8q(u#Ǣ39f#O @&^\ZȾ`5*{%wZu7`1|b ?&M#?Fv{ӏx1V ):I7yɲJ s{y Xd4p]4+AV'-M59jXlg 0ū`գ$a=.1 4#ܖ {EUB' 1oo9cSЎwڙ:/Y/Uf]:]~9 endstream endobj 372 0 obj << /Length1 1809 /Length2 12614 /Length3 0 /Length 13754 /Filter /FlateDecode >> stream xڍPn w[Hpw n  w ݃^߫ot9G*ȔTDL@v`&6fV^ +DEfǎDrtCd~߈ vYgk;/++#/@ 9!Qٻ;Z@kL`g8@halh P0l*ZT-@`IAo󲰸2819 1\-dcdGCߣ1#Q-rڙ] A71-xP(ڃl"E`}86f;Dں[ؚL-AEIyf`hk-gIeۄdhavbvcF?Ҽ G swgrl\m=L-lMLٞE$#7̈́ pr ؜j?lf0At2t o;!L,#-? ӿ;Z>ɏ tfbgk+fQSPg{:EEL& '+ y -_2v};h^:h\rb,?C,BI:[[7v\g(ؽjZ]ʀ ߶AMLl̬-$-@&J`cT]})9Y¼Eے["Nozۡ+aklgDz9How8lo[irSf[;[mFo# `>XAE+E`1xrrޘEɿ / XZ0/xMf|_Z+mYZڿ_/V_-/vDoocgGǷGυ}/02FZ3 l!ver^]!hnK)_gϋtL߯c ^뭴XּyjZ`MƱ䝁r mMNT]wfRnKOiꎙQF# Q[ERZD+Ed(.GǾA^]7yCؓ:p\{: T)k) stqd(X5*gufwæaczƌ_K=C:}NׄdU۫])㪯,)ϫ!e MXP:XGB\s9@ xcU9dW@l/Nn骤Q(7e6º/"mFz?RTx%s\4k!(`(󱚾mL9c7=4_!'Zу-"zoNGJ0/ eZ/|D=&9<}={6-mC7/-{ycMoP1(ݡ\t(ll틙b)]\h^Fzj,^prhr~UQɤ‚S#uyztH"I3kmƇXejcca`y1fM**YK  9_ uX'lugݪy( S--{(ӷQoL 56t p275#V6gCH )NNWԒ (Qȑt',zr>gA8#7RHÑX 3Rw[Ϡ ^IPշ_/(h>ã8;`rX?=wx|[/ wvd{Et1zzf5xhspH',)Gc-Nޙ8ncvhgztǍ鑓> /=8C98sˑM?9fk&yu+- мH/7A?'i%?hnf M#|FKhGZQ s(bP>7p BAhz_<n˽M^haQX5 `mz 95 ])ƣW_?v YL4DQ>`zT7HDZF9nU/}c61,:թ7GO׎sj%otT8vC֚y%Q r#gI\)]՜ktC̏zJbg{,UʏzITzS_|PuKrmbqiAU&V3jpv~ u`Dw  ӞDo vL؄A.xd~| A"AAd@ǹ4O$S4Z^,!9Y0$$F: W?*V_@DL{i4Y!D n4EcƤz aEto ^:@D>U:ۜŨ [ѵI|qSnU މ[1kS꫙9?\{L?Ud+^ 3|(Ÿ2rXO?焈n֮Ppƻ3[u/YT ϴjBф#8l05uA_WK_n)" LWb$|A?e%p$͐89EGՠ]Ki;vSfN/;zpZcy,Y s[0ߝX.DČF)f)[GL TGܰC{[͎B4w5$G |b_LD"f⌷%m*s)'3A>1}OdLk'u h@YhX t Z$Q_:z{%lg q`-9bghy Y#ia%nPKR#*TrD}[-FjYbaJοyaȑzat7a^˩c,y4/loT9A&KZJQr ЯǥGoۡ]/9.{7.mAVb}m-Cټx^+ǹ>!CVUJ7vyG{$;ɹ.?/#0.֖F9?7O"; n< >7MG`C<{IC϶of,t܄׸[ {p:bUM.^AWaʩ\9ɂv'NjQ^K'1ʗve^Q׼fKau}x"׮ pޒ&Z|уa'}TM ]G,Y'$FF}p:b*Gb2!GǑGc qCF(ѣΊ3*M ; xn}$a?0|m3{xFVeVGc%P K4`䧀xNbHo+b#ρ˨$w{\8m9>=U` "֣6^UXGX3fՏ3kwdk^1sH[O籴툟ú| 0#\[&Z+!lT ͢_|UxQ+4E픑RprdZU+ƻW_lͶ|p̐pI)+ћϜTD|{gyH }^]1}^tZLwA#nnCtLA~!ĸh +'kձlH(.V}*ϳɂjAjjxܔ 4V uSl~qkTz/7ݺFxM}QK 6ɇS?SLjLq ylK!ï߶^A[_5مjܕ%HFa|/ӄ'E-Sxc[ck{iJntu,)0ި3 'Q4<rzTzeA{,^bZ!M2Wcb5~a V+%nSFAүÀ5K^\ڻ酁ߕQ9;%VB{(!A^#fpfy2 RaSbtE#aMkVΐ642VG9=/P 6 /!sG63o6'2ceJN$g,98gTcX(_7 g93HObպwj"?U`Mݡ^LB  W9zڡfm"qؿv'm׻<gҺ=;9>Z6lDѬyϠk͵$' In RVpt|! _Em:~:8n0%%QbweM?1qb>IXӹxVu*G0Fm, N䗃L6-qdKvo"Mk.<-c>`UNi .%J{O{L^aj1v. K&OvpR]c?$V?z$ jQ .;c݉~P8\N~;CJ(zDuoZɦ fR-o' ,ވS> oǟrZ@$Hhg+m< CpvUp&`sbG4wiX r3S!niq<}QŮVPČJ1ꛓ*?`[N};RehMږ5Xp3EВ~J1YJlcw[}@)?ۨp[*p k/qn3Mt1 1e>+k6z3K&Җ&YEjuD$TUדsL|$ǗX _8(Cv^Hvه0"rtړ_Nk᷏!=ğ3#J~Ykh+LeX9n >̣ՋDWS:OZ5S\Ȟߛ/0i_B'BՇ}OV)p/;G7o| 2l>xلLP5e#B:)w29"J\4A2LΒ^-ɣI9FKh܉A2_bt_20;51#FOK#'P%Wv(_$drx9Rո(> ^aN>Q9I 1.0-^]5M{(ߥ.F^­c[YO *hvEvS\H;' \CUt&$tnkA|o!زrrKU}H3]tXB% w hHA;'n~b:`ow ٳ1h4U8 '[Aou3㋌ "$ ,Ⱦ=ܴx&wC0_`_TX]7Nure!̍w߇J&=t}T8JIxW9)f}s FD{e Q#O S%bMfhGql~Ϗ2bgIÈվW9Tghr{z5OvĻ>h>-7ODXYґ檄nXtMl*:ZZ׸QX9A m9v$i&2]ŵbv~w c}„ڨ_BB"+3w+A?4\lbjPsHrQy]IQ^kLM6aWNt+Տ`$ZϽlwj=Y4:^( ?5E\(ć-`$@N8 Q~-v1S5^t*ѺSVt@>q|MBa}ۈRr.\ 0`dz m^;')칪UT ˙%NS?}wgˣI^`9'+=m_D=C DNT;GSR!4RY70ux,R],~.bxj #3<. L S΋K|)LcՂL}*񳄤Irc*XW$O~g|&'ɂ>(Y mŲmmFXv#u>b^nȜ_#dWejՀK-x]ŖQc G5|sˤ􀤼p:65Ov8M6qᄑ@JJh7] Ih =w;^S8H(f#j1gyB;iI ,bYKͽ&5|Cޜ'%zQӗK h)Bjb 'ZTMDu4l^n}z ?4v=Z/3 -93mL5{A/ $DSjG䍵$j7WevFy^ym<gTfX`O4 ֏,Cn͵WBE?L.0t~P5ߛZ}0 kƎFb tQ {H$M "__!M+ S:ʽ  o3ƿ O{qR NSK(M#N: 8`|"&遒Sğj.eJ 7nX;gLy+M)n[3?O1v0Y٭qKIez2Zܯo!XۉHܡNɿ%K"5DGzE8\~q4GV?{hZ~ܿst8A$ T yd,yI`uz  K7N$ H"+lpKY9H+vgf@ZJChwJ~鍝&M d,6"=`$R.Kͦ7'KƮ0hyy?h96 )f|>%.7TF}WDO%{w4gܶH&'t0k;-=7n5kˆ*'ȒGRiPw9 +}O"@Y7ޣ 46_sBΥ8qG/]IݏT wrMAu 3EGu^jI1Lgt hof;*!TT,+I[vC1Jv > T_yXO~%Qk# Jc01# }4R,Zp, -& m64^ -^[UuמSW!CIC f>""vI-zY'7p*>niq"ӻuWRon./ȽW>9sm`9yDʖm(Wx~ش0fYtxtv>dHqF_gn>.~wbIE kw#6|BtΙ~bsR \ЌhF Cyc%b&U|# nȎQ%4̈́%R <:yl8`FbTޯv؏>KR0 f2G$1>)@ ?1N i¬{cΓ lEdx#TwZoy0~nĒCp]=EB \{U wIfTcciYo&D+w>(r qqa>i:T _ץ1*N'ǻ+*cP ~@ߝHMc<5J;I|'cJDoUr+[LՁ$چ'|У@AaA`±3{L-#tq4a,6pbFjnnz0~ RՔʨa3h2K_tCjڕ$g_rn U0>>-{Ű+:˦0i~g"Mъ414w+yFF9=4Ԅ5Q̴q+fV8oݟF*RE.JHꄜYE~m+[Xk^p_ rVSM 7V~j-9 tH7dp!UĽ.3Y3[$mR]ML+$Jx6