coin/0000755000176200001440000000000013133235426011204 5ustar liggesuserscoin/inst/0000755000176200001440000000000013133077374012167 5ustar liggesuserscoin/inst/CITATION0000644000176200001440000000324212557641056013330 0ustar liggesuserscitHeader("To cite coin in publications use:") citEntry(entry="Article", title = "A Lego System for Conditional Inference", author = personList(as.person("Torsten Hothorn"), as.person("Kurt Hornik"), as.person("Mark A. van de Wiel"), as.person("Achim Zeileis")), journal = "The American Statistician", year = "2006", volume = "60", number = "3", pages = "257--263", textVersion = paste("Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel and Achim Zeileis (2006).", "A Lego System for Conditional Inference.", "The American Statistician 60(3), 257-263."), header = "The main reference for the framework implemented in coin is:" ) citEntry(entry = "Article", title = "Implementing a Class of Permutation Tests: The {coin} Package", author = personList(as.person("Torsten Hothorn"), as.person("Kurt Hornik"), as.person("Mark A. van de Wiel"), as.person("Achim Zeileis")), journal = "Journal of Statistical Software", year = "2008", volume = "28", number = "8", pages = "1--23", url = "http://www.jstatsoft.org/v28/i08/", textVersion = paste("Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel, Achim Zeileis (2008).", "Implementing a Class of Permutation Tests: The coin Package.", "Journal of Statistical Software 28(8), 1-23.", "URL http://www.jstatsoft.org/v28/i08/."), header = "The reference for the implementation approach in coin is:" ) coin/inst/NEWS.Rd0000644000176200001440000011327513133077311013232 0ustar liggesusers\name{NEWS} \encoding{UTF-8} \title{News for Package \pkg{coin}} \section{Changes in version 1.2-1 (2017-07-16)}{ \subsection{Bug fixes}{ \itemize{ \item Precision problem in the quantile function of exact null distributions computed by the shift algorithm. } } } \section{Changes in version 1.2-0 (2017-06-20)}{ \subsection{New features}{ \itemize{ \item The Gaugler-Kim-Liao class of tests for right-censored data is now available (see \code{?logrank_test} and \code{?logrank_weight}). \item The \code{pvalue()}, \code{midpvalue()} and \code{pvalue_interval()} methods for objects of class \code{"NullDistribution"} are now vectorized. } } \subsection{Bug fixes}{ \itemize{ \item Precision problem in the density function of approximative (Monte Carlo) null distributions. This also impacts mid-\eqn{p}-values and \eqn{p}-value intervals. \item Precision problem in the support of approximative (Monte Carlo) null distributions. \item Precision problem in the symmetric median scores transformation. \item The weighted logrank transformation returned nonsense scores when supplied non-right-censored input; it now results in an error. \item The maximally selected statistics transformation for ordered factors sometimes returned the wrong labels. } } \subsection{User-visible changes}{ \itemize{ \item The \code{ties.method} argument of \code{logrank_trafo()} no longer allows using \code{"logrank"} and \code{"HL"} to specify mid-ranks and the Hothorn-Lausen method respectively. \item Documentation updates. } } \subsection{Deprecated and defunct}{ \itemize{ \item \code{surv_test()} is now defunct and has been removed. \item \code{method = "discrete"} in \code{pvalue()} is now defunct and has been removed. \item The \code{dperm()}, \code{pperm()} and \code{qperm()} methods for objects of class \code{"AsymptNullDistribution"} are no longer needed and have been removed. } } } \section{Changes in version 1.1-3 (2016-11-24)}{ \subsection{Bug fixes}{ \itemize{ \item Objects of class \code{"AsIs"} were handled incorrectly in some cases, leading to, e.g., misleading error messages or test statistics having the wrong sign. \item Supplying decreasing scores for ordered factors with two levels using the test functions' \code{scores} argument resulted in increasing normalized scores, leading to test statistics having the wrong sign. \item The transformation function for ordered factors did not return normalized scores in the two-level case when argument \code{scores} was used. \item Precision issues in confidence intervals for location and scale problems. \item When the general symmetry and marginal homogeneity tests were applied to an object of class \code{"table"}, the levels of the measurement conditions were not preserved (but reordered alphabetically). } } \subsection{User-visible changes}{ \itemize{ \item Version 1.0-5 of the \pkg{mvtnorm} package is now required. \item Documentation updates. } } } \section{Changes in version 1.1-2 (2015-11-13)}{ \subsection{Bug fixes}{ \itemize{ \item \code{of_trafo()} did not handle ordered factors of length one. \item Parallel operation (via \code{approximate()}) changed the random number generator state upon first invocation unless package \pkg{parallel}'s namespace had already been loaded. } } \subsection{User-visible changes}{ \itemize{ \item Documentation updates. } } } \section{Changes in version 1.1-1 (2015-10-25)}{ \subsection{Bug fixes}{ \itemize{ \item Methods \code{initialize()} and \code{show()} were not imported from package \pkg{methods}. } } \subsection{User-visible changes}{ \itemize{ \item Documentation and vignette updates. } } } \section{Changes in version 1.1-0 (2015-08-14)}{ \subsection{New features}{ \itemize{ \item The Fisher-Yates correlation test (based on van der Waerden scores) is now available (see \code{?fisyat_test}). \item The quadrant test is now available (see \code{?quadrant_test}). \item The Koziol-Nemec test and its corresponding transformation function are now available (see \code{?koziol_test} and \code{?koziol_trafo}). \item The Savage test and its corresponding transformation function are now available (see \code{?savage_test} and \code{?savage_trafo}). \item The Taha test is now available (see \code{?taha_test}). \item The Klotz test and its corresponding transformation function are now available (see \code{?klotz_test} and \code{?klotz_trafo}). \item The Mood test and its corresponding transformation function are now available (see \code{?mood_test} and \code{?mood_trafo}). \item The Conover-Iman test is now available (see \code{?conover_test}). \item The weighted logrank test and its corresponding transformation function are now available, including weights for generalized Wilcoxon tests (Gehan-Breslow, Prentice, Prentice-Marek and Andersen-Borgan-Gill-Keiding), the Tarone-Ware class of tests, the Fleming-Harrington class of tests and the Self class of tests (see \code{?logrank_test}, \code{?logrank_trafo} and \code{?logrank_weight}). \item The sign test for paired data is now available (see \code{?sign_test}). \item The Quade test is now available (see \code{?quade_test}). \item The Pearson chi-squared test, the generalized Cochran-Mantel-Haenszel test and the linear-by-linear association test now allow the alternative hypothesis to be specified in the doubly ordered case, i.e., when both the response variable and the explanatory variable are ordered factors (see \code{?chisq_test}, \code{?cmh_test} and \code{?lbl_test}). \item The Kruskal-Wallis test, the van der Waerden test, the Brown-Mood median test, the logrank test and the Friedman test now allow the alternative hypothesis to be specified when the explanatory variable is an ordered factor (see \code{?kruskal_test}, \code{?normal_test}, \code{?median_test}, \code{?logrank_test} and \code{?friedman_test}). \item The marginal homogeneity test now handles ordered responses and/or ordered measurement conditions and allows the alternative hypothesis to be specified in the doubly ordered case (see \code{?mh_test}). \item The Brown-Mood median test and its corresponding transformation function now offer the choice of three different versions of the mid-score (see \code{?median_test} and \code{?median_trafo}). \item The van der Waerden test, the Brown-Mood median test and the Ansari-Bradley test now handle \eqn{K}-sample problems (see \code{?normal_test}, \code{?median_test} and \code{?ansari_test}). \item The Fligner-Killeen test now handles two-sample problems (see \code{?fligner_test}). \item Maximally selected statistics can now be computed for objects of class \code{"table"} (see \code{?maxstat_test}). \item \code{symmetry_test()} has gained a new argument \code{paired} that is used to indicate if paired data have been transformed in such a way that the resulting unstandardized linear statistic is the sum of the absolute values of the positive differences between the paired observations (see \code{?symmetry_test}). \item All transformation functions are now passing through missing values. \item New function for rank transformations (see \code{?rank_trafo}). \item New function for maximally selected statistics transformation of ordered factors (see \code{?ofmaxstat_trafo}). \item The Conover-Salsburg transformation function now allows the \eqn{a} constant to be set (see \code{?consal_trafo} and \code{?neuropathy}). \item The transformation function for ordered factors has gained a new argument \code{scores} that provides an alternative way of attaching scores to ordinal variables (see \code{?of_trafo}). \item The approximative (Monte Carlo) null distribution can now be obtained by parallel operation using package \pkg{parallel} (see \code{?approximate}). \item The exact null distribution of test statistics based on quadratic forms can now be obtained in the univariate two-sample case. \item The exact null distribution can now be obtained for tests specified with case weights, implying that exact \eqn{p}-values can be computed for \eqn{2 \times 2}{2 x 2} tables or \eqn{K \times 2}{K x 2} tables with \eqn{K} ordered categories. \item Evaluation of the null distribution can now be suppressed for all test procedures by setting \code{distribution = "none"}. \item The mid-\eqn{p}-value can now be computed and is accompanied by a 99 \% mid-\eqn{p} confidence interval when resampling has been used to obtain the null distribution (see \code{?midpvalue}). \item The \eqn{p}-value interval can now be computed (see \code{?pvalue_interval}). \item Step-down adjusted \eqn{p}-values based on the joint distribution of the test statistics can now be obtained when the asymptotic null distribution is used. \item Adjusted \eqn{p}-values based on the marginal distributions of the test statistics can now be obtained when the asymptotic null distribution is used. \item Adjusted \eqn{p}-values based on the marginal distributions of the test statistics now use a max-\eqn{T} procedure, instead of a min-\eqn{P} (which is now deprecated), incorporating discrete distributional characteristics when the approximative (Monte Carlo) null distribution is used (see \code{?pvalue}). \item Single-step or step-down adjusted \eqn{p}-values based on the marginal distributions of the test statistics can now be obtained using the Bonferroni or the \enc{Šidák}{Sidak} method (see \code{?pvalue}). \item Unadjusted \eqn{p}-values can now be obtained (see \code{?pvalue}). \item Random numbers can now be generated from the permutation distribution (see \code{?rperm}). \item New data sets on gastric cancer, congenital sex organ malformation and unaided distance vision have been added (see \code{?GTSG}, \code{?malformations} and \code{?vision}). } } \subsection{Bug fixes}{ \itemize{ \item The standardized linear statistic of the Pearson chi-squared test was off by a factor \eqn{\sqrt{n / (n - 1)}}{sqrt(n / (n - 1))}. \item The Pearson chi-squared test ignored user-specified transformations. \item Partial matching of the \code{scores} argument did not work for Pearson's chi-squared test and the marginal homogeneity test. \item The Fisher-Pitman permutation test, the Wilcoxon-Mann-Whitney test, the Kruskal-Wallis test, the van der Waerden test, the Brown-Mood median test, the Ansari-Bradley test, the Fligner-Killeen test, the Wilcoxon signed-rank test, the Friedman test and the Page test did not return an error message when supplied with a censored response variable. \item The Brown-Mood median test \eqn{p}-value computation used the wrong tail of the null distribution in the one-sided case. \item The test statistic of the Wilcoxon signed-rank test sometimes had the wrong sign, due to being based on the sum of the absolute values of the negative, instead of the positive, differences between the paired measurements. \item The Friedman test did not warn when weights were supplied. \item Maximally selected statistics did not handle user-specified scores for ordinal variables correctly. \item Two-sample problems were not identified as such if the grouping variable had unused factor levels, causing problems if, e.g., trying to use the \code{subset} argument of \code{formula} methods. \item Stratified tests were not allowed if \code{block} had unused factor levels, causing problems, e.g., if trying to use the \code{subset} argument of the \code{formula} methods. \item Transformations involving ordered factors or survival data sometimes failed when performed within blocks. \item The maximally selected statistics transformation for factors sometimes dropped its column names. \item The maximally selected statistics transformation for factors retained unused levels. \item Approximative (Monte Carlo) \eqn{p}-values for stratified tests were wrong when the data were not ordered with respect to the blocks. \item Exact \eqn{p}-values for stratified tests were wrong when each block contained precisely two observations. \item Exact \eqn{p}-values for tests with an ordinal grouping variable were wrong. \item The smallest single-step and step-down adjusted \eqn{p}-values sometimes differed from the global \eqn{p}-value. \item Single-step adjusted \eqn{p}-values were too small when the support of the null distribution contained values equal to the observed test statistics. \item Monotonicity of step-down adjusted \eqn{p}-values was not enforced when using the approximative (Monte Carlo) null distribution. \item The density function of asymptotic permutation distributions for maximum-type tests returned nonsense; it now reports \code{NA}. \item The density function of approximative (Monte Carlo) permutation distributions returned nonzero probabilities for values not included in the support. \item The density function of exact permutation distributions returned a zero-length vector for values not included in the support; the probability of such values are now reported as \samp{0}. \item The distribution and quantile functions of asymptotic permutation distributions for maximum-type tests were not handling vector arguments correctly. \item The quantile function of exact permutation distributions sometimes reported \code{NA} when the 100 \% quantile was requested. \item The support of exact permutation distributions for stratified tests was not guaranteed to be distinct and ordered, which in turn caused failure when trying to obtain values from the density and quantile functions. \item The printed output of the Pearson chi-squared test and the generalized Cochran-Mantel-Haenszel test claimed that a \samp{Linear-by-Linear Association Test} had been carried out even in the singly ordered case, i.e., when either the response variable or the explanatory variable is an ordered factor; these are now reported as \samp{Generalized Pearson Chi-squared Test} and \samp{Generalized Cochran-Mantel-Haenszel Test} respectively. \item The printed output of the Fisher-Pitman permutation test reported the parameter tested in the two-sample case when the explanatory variable was an ordered factor. \item The printed output of the one-sided Ansari-Bradley test reported the opposite direction of the specified alternative (but performed the test in the specified direction and thus reported the correct \eqn{p}-value). \item The printed output of the logrank test did not report whether a two- or \eqn{K}-sample test had been carried out. \item The printed output of the logrank test did not report the tested parameter in the two-sample case. \item The printed output of maximum-type tests did not include the alternative hypothesis. \item The printed output of the general symmetry test claimed that a \samp{General Independence Test} had been carried out; it is now reported as \samp{General Symmetry Test}. \item Objects of class \code{"SymmetryProblem"} were not checked for validity. } } \subsection{User-visible changes}{ \itemize{ \item The Pearson chi-squared test, the generalized Cochran-Mantel-Haenszel test, the linear-by-linear association test and the marginal homogeneity test now use a scalar test statistic in the doubly ordered case. \item The Fisher-Pitman permutation test, the Kruskal-Wallis test, the logrank test and the Friedman test now use a scalar test statistic in case the explanatory variable is an ordered factor. \item The Fisher-Pitman permutation test no longer allows the test statistic to be specified; a quadratic form is now used in the \eqn{K}-sample case. \item The Pearson chi-squared test, the generalized Cochran-Mantel-Haenszel test, the Kruskal-Wallis test, the Friedman test, the Fligner-Killeen test and the marginal homogeneity test no longer features the \code{distribution} argument (but still allow the type of null distribution to be specified). \item The Ansari-Bradley test no longer features the \code{alternative} argument (but still allows the alternative hypothesis to be specified). \item When the general symmetry test or the marginal homogeneity test is applied to a table, the variable indicating the measurement conditions has been renamed to \samp{conditions} (from \samp{groups}). \item The \code{teststat} argument no longer allows the use of maximum-type statistics and quadratic forms to be specified using \code{"maxtype"} and \code{"quadtype"} respectively. \item The median and logrank transformations are now increasing functions. \item The default number of Monte Carlo replicates used to approximate the exact conditional distribution has been increased to 10000. \item The exact distribution of stratified test statistics is now obtained more efficiently, and especially so for large numbers of strata. \item \code{exact()} has \code{algorithm = "auto"} as its new default, preserving the behavior of \code{algorithm = "shift"} in previous versions of the package. \item The shift algorithm (\code{exact(algorithm = "shift")}) no longer silently switches to the split-up algorithm when non-integer scores are detected; it now fails with an error message. \item Single-step adjusted \eqn{p}-values based on the joint distribution of the test statistics are now computed slightly faster due to using only the unique realizations of the test statistics. \item The support of an asymptotic null distribution is now reported as \code{NA}. \item Small changes in the printed output of the Pearson chi-squared test, the Fisher-Pitman permutation test, the Wilcoxon-Mann-Whitney test, the van der Waerden test, the Brown-Mood median test, the marginal homogeneity test, the Wilcoxon signed-rank test, and generalized maximally selected statistics. \item The printed output of the Fisher-Pitman permutation test now reports that a \samp{Linear-by-Linear Association Test} is carried out when the explanatory variable is an ordered factor. \item In the printed output of the Ansari-Bradley test and the Spearman test the tested parameter has been renamed to \samp{ratio of scales} and \samp{rho} respectively. \item \code{wilcoxsign_test.IndependenceProblem()} has been replaced by \code{wilcoxsign_test.SymmetryProblem()}. \item The \code{"IndependenceTestStatistic"} class is now virtual. \item Objects of class \code{"IndependenceProblem"} drop unused factor levels. \item Objects of classes \code{"ScalarIndependenceTestStatistic"} or \code{"QuadTypeIndependenceTestStatistic"} now have a \code{paired} slot. \item Objects of class \code{"ScalarIndependenceTest"} now has a \code{parameter} slot. \item Objects of classes \code{"ApproxNullDistribution"} or \code{"AsymptNullDistribution"} now have a slot \code{seed} containing the state of the random number generator. \item The package manual has been completely revised. \item The memory consumption during computations has been reduced. \item Henric Winell, a long-term collaborator who donated almost all changes in \pkg{coin} 1.1-0, is now listed as author. Welcome on board, Henric! } } \subsection{Deprecated and defunct}{ \itemize{ \item \code{surv_test()} is now deprecated and has been replaced by \code{logrank_test()}. \item \code{method = "discrete"} in \code{pvalue()} is now deprecated. \item The Wilcoxon signed-rank test no longer features the defunct \code{ties.method} argument. } } } \section{Changes in version 1.0-24 (2014-09-17)}{ \itemize{ \item \code{as.integer(round(x))} is safer than \code{as.integer(x)} due to truncation in the latter. } } \section{Changes in version 1.0-23 (2013-09-03)}{ \itemize{ \item Fix \file{DESCRIPTION} and \file{NAMESPACE} issues. } } \section{Changes in version 1.0-22 (2013-04-16)}{ \itemize{ \item Documentation updates. \item Test update (for Sparc Solaris). } } \section{Changes in version 1.0-21 (2012-03-08)}{ \itemize{ \item Move \file{inst/doc/vignettes/*} to \file{vignettes/*}. \item New \code{CWD} data. } } \section{Changes in version 1.0-20 (2011-10-04)}{ \itemize{ \item Report a warning for rank tests with weights. } } \section{Changes in version 1.0-19 (2011-08-17)}{ \itemize{ \item No \code{require()} in \code{.onLoad()}. } } \section{Changes in version 1.0-18 (2010-12-21)}{ \itemize{ \item \code{exact()} can not work for \code{symmetry_test()}; spotted by LE PAPE Gilles \email{lepape.gilles@neuf.fr}. } } \section{Changes in version 1.0-17 (2010-09-13}{ \itemize{ \item Add dependencies required for \file{tests/*}. } } \section{Changes in version 1.0-16 (2010-08-23)}{ \itemize{ \item Change \code{ties.method = c("HollanderWolfe", "Pratt")} to \code{zero.method = c("Pratt", "Wilcoxon")} in \code{wilcoxsign_test()} following a suggestion by Fritz Scholz. A warning is fired to avoid misleading and nonreproducible results. \item Use \code{quantile(..., type = 1)} for computing approximate quantiles (suggested by Fritz Scholz). } } \section{Changes in version 1.0-14 (2010-08-10}{ \itemize{ \item Documentation \code{Biobase::expressionSet}. \item Further checks and better error messages for nonsense data in (paired) two-sample tests. } } \section{Changes in version 1.0-12 (2010-07-03)}{ \itemize{ \item Better error message for \code{wilcoxsign_test(c(1, 1, 1) ~ c(1, 1, 1))}. } } \section{Changes in version 1.0-11 (2010-04-13)}{ \itemize{ \item Bugfix in discrete MTP adjustment. } } \section{Changes in version 1.0-10 (2010-01-27)}{ \itemize{ \item Improve upon \code{qperm()} for van de Wiel algorithm again. } } \section{Changes in version 1.0-9 (2009-12-30)}{ \itemize{ \item Again precision problems in van de Wiel algorithm: \code{qperm()} suffered from too large tolerances of the inverted probability function. } } \section{Changes in version 1.0-8 (2009-10-30)}{ \itemize{ \item Precision problems in van de Wiel algorithm fixed. In rare cases, \eqn{P(T < t)} was returned as \eqn{p}-value instead of \eqn{P(T \le t)}. Two statistics are now considered equal (in all computations) when the difference is smaller than \code{sqrt(.Machine$double.eps)}. } } \section{Changes in version 1.0-7 (2009-09-29)}{ \itemize{ \item \code{dperm()}, \code{pperm()} and \code{qperm()} are vectorized also for exact and approximative null distributions. } } \section{Changes in version 1.0-6 (2009-09-08)}{ \itemize{ \item Exact distribution for independent two-sample problems with only two observations was wrong, spotted by Fritz Scholz \email{fscholz@u.washington.edu}. } } \section{Changes in version 1.0-5 (2009-06-04)}{ \itemize{ \item Documentation updates. } } \section{Changes in version 1.0-4 (2009-05-11)}{ \itemize{ \item Evaluate all \code{formula}e in \code{xxx_test()}'s \code{parent.frame}. } } \section{Changes in version 1.0-3 (2009-04-01)}{ \itemize{ \item Add alternative ties handling to \code{wilcoxsign_test()} feature request by Fritz Scholz \email{fscholz@u.washington.edu}. \item Vignette update. } } \section{Changes in version 1.0-2 (2009-03-16)}{ \itemize{ \item Fix location confidence interval problem spotted by Fritz Scholz \email{fscholz@u.washington.edu}. } } \section{Changes in version 1.0-1 (2009-01-09)}{ \itemize{ \item Add average scores for logrank test. \item Fix Rd problems. } } \section{Changes in version 1.0-0 (2008-11-06)}{ \itemize{ \item JSS paper \url{http://www.jstatsoft.org/v28/i08/} documents version 1.0-0. \item Set default for \code{@method} to \samp{General Independence Test}. \item \code{covariance()} always returns a covariance matrix. \item Add \code{show()} method for \code{"IndependenceTest"} objects. \item Functions supplied via \code{distribution} does not need to have a class. \item Export all classes. \item Compute linear statistics, expectations and (co)variances when constructing instead of and define methods for this class. \item \code{maxstat_test()} with integer weights gave \code{NA} or wrong cutpoints. } } \section{Changes in version 0.6-9 (2008-05-05)}{ \itemize{ \item \code{any()} was misused in one place, spotted by Kasper Daniel Hansen \email{khansen@stat.Berkeley.EDU}. \item Code cosmetics by Johannes Huesing \email{johannes@huesing.name}. } } \section{Changes in version 0.6-7 (2007-10-09)}{ \itemize{ \item Remove non_function entries from Rd files. \item Disable \code{Biobase} example in vignette. } } \section{Changes in version 0.6-6 (2007-08-13)}{ \itemize{ \item Fix precision problems with exact \eqn{p}-values (spotted by Michael Fay \email{mfay@niaid.nih.gov}. } } \section{Changes in version 0.6-5 (2007-07-23)}{ \itemize{ \item Add new vignette on technical details. \item Update to new \pkg{mvtnorm} 0.8-0. \item Check for overflow errors in \file{StreitbergRoehmel.c} (thanks for Michael Fay \email{mfay@niaid.nih.gov} for spotting this). } } \section{Changes in version 0.6-4 (2007-06-28)}{ \itemize{ \item Add new argument \code{ordered_trafo} to \code{trafo()} and deal with ordered factors in a more transparent way (via a new function \code{of_trafo()}). } } \section{Changes in version 0.6-3 (2007-06-21)}{ \itemize{ \item New vignette \sQuote{MAXtest}. } } \section{Changes in version 0.6-2 (2007-05-13)}{ \itemize{ \item Print name of \code{x} variable and levels when \code{x} is a factor. \item New class \code{"IndependenceLinearStatistic"}. } } \section{Changes in version 0.6-1 (2007-04-25)}{ \itemize{ \item \code{LazyLoad: yes}. } } \section{Changes in version 0.6-0 (2007-03-01)}{ \itemize{ \item Rename some C source files & update doxygen documentation. \item Simplify some methods and the class structure. \item Clean up code and simplify wrapper functions. \item Documentation updates. \item Deal with factors containing only one level. \item Do not compute design matrices in \code{ModelEnvFormula}. \item Expand weights if \code{distribution = approximate()}. \item Assign names to user-specified transformation in case they are missing. \item The \code{distribution} argument may now be a function with one argument allowing for user-specified distributions. \item \code{surv_test()} ignored the \code{alternative} argument. } } \section{Changes in version 0.5-2 (2006-11-03)}{ \itemize{ \item \code{maxstat_trafo} did not always choose the correct maximal cutpoint. \item Formula evaluation without \code{data} argument was partially broken (thanks to Achim Zeileis for spotting this). } } \section{Changes in version 0.5-1 (2006-10-27)}{ \itemize{ \item Improve formula interface for \code{wilcoxsign_test()}. } } \section{Changes in version 0.5-0 (2006-10-17)}{ \itemize{ \item Implement exact distribution for symmetry problems (especially \code{wilcoxsign_test()}). \item Add more checks on StatXact examples. } } \section{Changes in version 0.4-14 (2006-09-18)}{ \itemize{ \item Fix problems reported by valgrind. } } \section{Changes in version 0.4-13 (2006-09-13)}{ \itemize{ \item \file{coin-Ex.R} generated by \R 2.4.0. \item \code{Enhances: Biobase}. } } \section{Changes in version 0.4-12 (2006-09-07)}{ \itemize{ \item Add \code{$(FLIBS)} to \file{Makevars}. \item Include doxygen documentation for C functions. \item Documentation updates. } } \section{Changes in version 0.4-10 (2006-08-25)}{ \itemize{ \item \code{maxstat_test(y ~ x)} is now able to deal with unordered \code{x} variables. \item \code{maxstat_test()} returns estimates of both the selected variable and the cutpoint in multivariate situations (as a list). \item More checks for \code{maxstat_test()}. \item Add \pkg{codetools} checks to tests. } } \section{Changes in version 0.4-9 (2006-07-24)}{ \itemize{ \item Fix typo: Homegeneity. \item Add ASA copyright to \sQuote{LegoCondInf} vignette. } } \section{Changes in version 0.4-8 (2006-06-23)}{ \itemize{ \item Clarify that the Stuart-Maxwell test is computed by \code{mh_test()} and add a further example (thanks to Henric Nilsson \email{henric.nilsson@phadia.com} for pointing this out!). } } \section{Changes in version 0.4-7 (2006-05-16)}{ \itemize{ \item Improve \code{maxstat_trafo()}: some potential cutpoints could have been overlooked in case of ties equal to the maxprob and minprob sample quantiles. \item Reproduce two examples from Hothorn and Lausen (2003) in \code{?maxstat_test} (and added \code{hohnloser} data set). \item Add more regression tests on \code{maxstat_test()}. } } \section{Changes in version 0.4-6 (2006-04-24)}{ \itemize{ \item Updated \sQuote{LegoCondInf} vignette. \item Printed names of test statistics are now \samp{chi-squared}, \samp{maxT}, or \samp{Z} instead of \samp{T}. } } \section{Changes in version 0.4-5 (2006-04-12)}{ \itemize{ \item User-supplied transformations can return a vector which is coerced to \code{matrix(..., ncol = 1)} internally. \item \code{ytrafo} and \code{xtrafo} may take functions like \code{rank()} directly. However, the use of \code{trafo()} is recommended. \item Argument \code{teststat} may take values \code{"max"}, \code{"quad"} or \code{"scalar"}. \item Internal reimplementation of score handling for ordered factors. \item Handling of multiple ordered factors / ordered factors in multivariate situations implemented. \item \code{f_trafo()} returns a design matrix with \code{NA} rows in case missing values were present. } } \section{Changes in version 0.4-4 (2006-02-03)}{ \itemize{ \item Make R CMD check happy and move \file{src/README} to \file{inst/README}. } } \section{Changes in version 0.4-3 (2006-01-12)}{ \itemize{ \item \code{isequal()} must not check equality of attributes. } } \section{Changes in version 0.4-2 (2005-12-21)}{ \itemize{ \item New data set \code{alpha}. \item Data set \code{alzheimer} is now a \code{"data.frame"}, not a \code{"table"}. \item New vignette with more applications. } } \section{Changes in version 0.4-1 (2005-12-02)}{ \itemize{ \item Documentation updates. \item Remove unused \code{setAs} definitions. \item \code{expectation()}, \code{variance()} and \code{covariance()} return named vectors or matrices. Names for objects returned by \code{statistic()} have been partially improved. \item All observations with \code{NA}s are removed now. \item Some internal improvements (removed unused code, avoid duplicated code chunks etc.). \item More checks on \code{NA}s, blocks and multiple ordinal variables (one univariate problems are currently allowed to have ordinal variables). } } \section{Changes in version 0.3-8 (2005-11-29)}{ \itemize{ \item Export \code{independence_test.table()}. \item Add \code{conf.level} attribute for \code{MCp} objects when quasi-randomized Monte Carlo procedures (from \pkg{mvtnorm}) have been used. \item Add new \code{var_trafo} argument to \code{trafo()}. \item Documentation updates. } } \section{Changes in version 0.3-7 (2005-11-23)}{ \itemize{ \item \code{statistic()} now returns correct linear and standardized statistics when scores are in play. \item \code{alzheimer} data added. \item \code{photocar} data added. \item Documentation updates. \item \code{support()} and \code{dperm()} methods have been improved for asymptotic and approximative null distributions. } } \section{Changes in version 0.3-6 (2005-11-17)}{ \itemize{ \item Internal C function \code{R_MonteCarloIndependenceTest} returns a \eqn{pq \times B}{pq x B} matrix instead of a list with B elements (the linear statistic for each random permutation of the data). \item Various simplifications for the computations of adjusted \eqn{p}-values. \item \code{I()} in \code{formula}e could still cause trouble with class \code{AsIs}, now fixed. \item Logical variables are now allowed in \code{formula}e (and are treated like \code{factor}s). \item Fix \code{print} method for marginal homogeneity tests (\samp{...stratified by block...}). \item \code{R_kronecker} in C now available. \item C versions of \code{nrow()} and \code{ncol()} return 1 or length for vectors. \item Some internal optimisation. \item C functions \code{nrow(x)} and \code{ncol(x)} return \code{LENGTH(x)} or \code{1} when \code{x} has no \code{dim} attribute. \item New R-interface function \code{R_kronecker} to \code{C_kronecker} (which returns a _vector_!). \item Speedup of variance computations in internal functions. } } \section{Changes in version 0.3-3 (2005-09-07)}{ \itemize{ \item Fix more problems reported by new \pkg{codetools}. Try to work around the \code{terms(y ~ ., data = data.frame(1:10))} problem in \R 2.2.0. } } \section{Changes in version 0.3-2 (2005-08-31)}{ \itemize{ \item Fix some problems reported by \pkg{codetools}. } } \section{Changes in version 0.3-1 (2005-08-20)}{ \itemize{ \item \code{alternative = "less"} and \code{alternative = "greater"} are now defined for \code{"maxtype"} statistics as well. \item One- and two-sided single-step and step-down max-\eqn{T} \eqn{p}-value adjustments are now available from the appropriate \code{pvalue()} method. (NOTE: those procedures have not been tested carefully, yet.) In addition, the Bonferroni-adjustment by Westfall & Wolfinger (1997) is available now. Note that the interface to \code{pvalue()} changed slightly, \code{adjustment = TRUE} was replaced by \code{method = "single-step"}. \item More examples added to the vignette. } } \section{Changes in version 0.2-14 (2005-07-14)}{ \itemize{ \item \code{distribution = "approximate"} for \code{"maxtype"} statistics was wrong in case both \code{xtrafo} \emph{and} \code{ytrafo} were multivariate (the conditional expectation was computed incorrectly). } } \section{Changes in version 0.2-13 (2005-07-11)}{ \itemize{ \item \code{I()} in \code{formula}e returns objects of class \code{AsIs} which caused troubles in \code{trafo()}. } } \section{Changes in version 0.2-12 (2005-06-15)}{ \itemize{ \item Functionality for \code{formula} parsing and evaluation is now imported from package \pkg{modeltools}. \item \code{show()} returns objects (of class \code{"htest"}, for example) invisibly, really. \item \code{maxstat_trafo()} is much faster now and returns a matrix with both row- and column names set appropriately. } } \section{Changes in version 0.2-11 (2005-06-02)}{ \itemize{ \item The \code{distribution} argument now takes the return values of functions \code{exact()}, \code{approximate()} or \code{asymptotic()} as well. Those functions can be used to specify parameters, such as the number of Monte Carlo replications via \code{..., distribution = approximate(B = 9999), ...}. \item \code{show()} returns objects (of class \code{"htest"}, for example) invisibly. \item \code{expectation()} returns a vector, not a matrix. \item New generic \code{variance()} for extracting the variance(s) of linear statistics. \item Only variances (instead of the whole covariance matrix) is computed when the distribution of maximum type test statistics is to be \emph{approximated}. \item \code{data} may be an object of class \code{"exprSet"} (-> \pkg{Biobase}), the vignette has an example. \item \code{logrank_trafo()} (and \code{surv_test()}) now have a \code{ties.method} argument, see \code{?surv_test} for more information. } } \section{Changes in version 0.2-10 (2005-05-04)}{ \itemize{ \item \samp{asymptotical} \eqn{\rightarrow}{->} \samp{asymptotic} in \code{print} methods. \item \code{mercuryfish} example added. \item \code{trafo} now can return matrices with number of columns different from the lhs and rhs of \code{formula}. } } \section{Changes in version 0.2-9 (2005-03-15)}{ \itemize{ \item \code{mergesort} is already defined in \file{/usr/include/stdlib.h}:270 on some platforms. \item \code{delay} is deprecated in \R 2.1.0. } } coin/inst/doc/0000755000176200001440000000000013133077374012734 5ustar liggesuserscoin/inst/doc/MAXtest.R0000644000176200001440000010560313133077367014413 0ustar liggesusers### R code from vignette source 'MAXtest.Rnw' ################################################### ### code chunk number 1: coin-setup ################################################### library("coin") set.seed(290875) library("xtable") xtable.table <- function(x, ...) { tab2 <- function(x, pre = NULL, totals = TRUE) { if (totals) { x <- cbind(x, Total = rowSums(x)) x <- rbind(x, Total = colSums(x)) } if (!is.null(pre)) cat(pre, " & ") cat(" & ", paste(colnames(x), collapse = " & "), "\\\\ \\hline \n") tmp <- sapply(1:nrow(x), function(i) { if (!is.null(pre)) cat(" & ") cat(rownames(x)[i], " & ", paste(x[i,], collapse = " & "), " \\\\ \n") }) } if (length(dim(x)) == 2) { tab2(x, ...) } else { for (i in 1:dim(x)[3]) tab2(x[,,i], pre = dimnames(x)[[3]][i], ...) } } ### psoriasis data `psoriasis` <- structure(list(gender = structure(as.integer(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2)), .Label = c("Male", "Female"), class = "factor"), group = structure(as.integer(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3)), .Label = c("Control", "Early Onset", "Late Onset"), class = "factor"), TNFA_238 = structure(as.integer(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 3, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1)), .Label = c("GG", "GA", "AA"), class = "factor"), IL1B_511 = structure(as.integer(c(2, 1, 2, 2, 1, 2, 2, 2, 1, 3, 2, 3, 2, 2, 1, 2, 3, 1, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 3, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 3, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 3, 1, 1, 2, 2, 2, 1, 3, 3, 2, 2, 3, 1, 3, 1, 1, 1, 3, 2, 2, 1, 2, 2, 1, 2, 3, 2, 2, 1, 3, 2, 3, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 3, 2, 3, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 3, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 3, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 3, 2, 1, 1, 2, 2, 1, 3, 2, 2, 2, 1, 3, 2, 1, 2, 3, 2, 2, 2, 1, 2, 2, 2, 2, 1, 3, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 3, 2, 2, 2, 1, 3, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 3, 2, 2, 2, 2, 2, 3, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 3, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 3, 2, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 3, 2, 2, 3, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 3, 3, 1, 2, 2, 1, 1, 2, 1, 3, 1, 1, 2, 1, 2, 2, 2, 1, 3, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 3, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1)), .Label = c("CC", "CT", "TT"), class = "factor")), .Names = c("gender", "group", "TNFA_238", "IL1B_511"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576"), class = "data.frame") ### Bagos & Nikolopoulos (2007) example. `diabetes` <- structure(list(Study = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("S1", "S2", "S3", "S4"), class = "factor"), Group = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Cases", "Control"), class = "factor"), Locus = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("AA", "AB", "BB" ), class = "factor")), .Names = c("Study", "Group", "Locus" ), row.names = c(NA, 888L), class = "data.frame") ################################################### ### code chunk number 2: melanoma-table ################################################### me <- as.table(matrix(c( 6, 8, 10, 32, 47, 20), byrow = TRUE, nrow = 2, dimnames = list(Group = c("In situ", "Control"), Genotype = c("AA", "AG", "GG")))) me <- t(me) ################################################### ### code chunk number 3: melanoma-tabular ################################################### xtable.table(me) ################################################### ### code chunk number 4: melanoma-coin ################################################### add <- c(0, 1, 2) dom <- c(0, 1, 1) rec <- c(0, 0, 1) g <- function(x) { x <- unlist(x) cbind(dominant = dom[x], additive = add[x], recessive = rec[x]) } it <- independence_test(me, xtrafo = g, alternative = "greater") CA <- statistic(it, type = "linear") CAstand <- statistic(it, type = "standardized") pasympt <- pvalue(it, method = "single-step") itp <- independence_test(me, xtrafo = g, distribution = approximate(B = 49999), alternative = "greater") papprox <- pvalue(itp, method = "step-down") out <- cbind(CA, round(expectation(it), 4), round(sqrt(variance(it)), 4), round(CAstand, 4), round(pasympt, 4), round(papprox, 4)) rownames(out) <- rownames(CA) out[,2] <- formatC(out[,2], digits = 4, format = "f") ################################################### ### code chunk number 5: melanoma-cov ################################################### S <- round(covariance(it), 4) S <- formatC(S, digits = 4, format = "f") for (i in 1:nrow(S)) cat(paste(S[i,], collapse = " & "), "\\\\ \n") ################################################### ### code chunk number 6: melanoma-cor ################################################### S <- round(cov2cor(covariance(it)), 4) S <- formatC(S, digits = 4, format = "f") for (i in 1:nrow(S)) cat(paste(S[i,], collapse = " & "), "\\\\ \n") ################################################### ### code chunk number 7: melanoma-results ################################################### for (i in 1:nrow(out)) cat(rownames(out)[i], " & ", paste(out[i,], collapse = " & "), "\\\\ \n") ################################################### ### code chunk number 8: Reich-data-1 ################################################### xtable(xtabs(~ IL1B_511 + group + gender, data = psoriasis)) ################################################### ### code chunk number 9: Reich-data-2 ################################################### xtable(xtabs(~ TNFA_238 + group + gender, data = psoriasis)) ################################################### ### code chunk number 10: ps ################################################### it <- independence_test(TNFA_238 + IL1B_511 ~ group | gender, data = psoriasis, ytrafo = function(data) trafo(data, factor_trafo = g), scores = list(group = c(1, -1/2, -1/2)), alter = "tw") pvals <- matrix(round(pvalue(it, method = "single-step"), 4), nr = 3) pvals[pvals < 0.01] <- "$< 0.0001$" rownames(pvals) <- c("dominant", "additive", "recessive") ################################################### ### code chunk number 11: ps-res ################################################### for (i in 1:nrow(pvals)) cat(rownames(pvals)[i], " & ", paste(pvals[i,], collapse = "&"), "\\\\ \n") ################################################### ### code chunk number 12: bagos-coin ################################################### bit <- independence_test(Group ~ Locus | Study, data = diabetes, xtrafo = g, alternative = "greater") bCA <- statistic(bit, type = "linear") bCAstand <- statistic(bit, type = "standardized") bpasympt <- pvalue(bit, method = "single-step") bitp <- independence_test(Group ~ Locus | Study, data = diabetes, xtrafo = g, distribution = approximate(B = 49999), alternative = "greater") bpapprox <- pvalue(bitp, method = "step-down") out <- cbind(bCA, round(expectation(bit), 4), round(sqrt(variance(bit)), 4), round(bCAstand, 4), round(bpasympt, 4), round(bpapprox, 4)) rownames(out) <- rownames(bCA) out[,2] <- formatC(out[,2], digits = 4, format = "f") ################################################### ### code chunk number 13: diabetes-results ################################################### for (i in 1:nrow(out)) cat(rownames(out)[i], " & ", paste(out[i,], collapse = " & "), "\\\\ \n") ################################################### ### code chunk number 14: Ame-tab ################################################### me <- as.table(matrix(c( 6, 8, 10, 32, 47, 20), byrow = TRUE, nrow = 2, dimnames = list(Group = c("In situ", "Control"), Genotype = c("AA", "AG", "GG")))) me <- t(me) me ################################################### ### code chunk number 15: Ag ################################################### add <- c(0, 1, 2) dom <- c(0, 1, 1) rec <- c(0, 0, 1) g <- function(x) { x <- unlist(x) cbind(dominant = dom[x], additive = add[x], recessive = rec[x]) } ################################################### ### code chunk number 16: AMAX ################################################### library("coin") it <- independence_test(me, xtrafo = g, alternative = "greater") it ################################################### ### code chunk number 17: Ap (eval = FALSE) ################################################### ## pvalue(it, method = "single-step") ################################################### ### code chunk number 18: Ap ################################################### drop(pvalue(it, method = "single-step")) ################################################### ### code chunk number 19: Zheng-g ################################################### gZheng <- function(x) { x <- unlist(x) eta <- seq(from = 0, to = 1, by = 0.01) tr <- sapply(eta, function(n) c(0, n, 1)[x]) colnames(tr) <- paste("eta", eta, sep = "_") tr } itZ <- independence_test(me, xtrafo = gZheng, alternative = "greater") itZ ################################################### ### code chunk number 20: pZheng (eval = FALSE) ################################################### ## pvalue(itZ, method = "single-step") ################################################### ### code chunk number 21: pZheng ################################################### drop(pvalue(itZ, method = "single-step")) ################################################### ### code chunk number 22: Simulations (eval = FALSE) ################################################### ## library("coin") ## ## assocAS <- function(x, scores = 1:ncol(x), ...) { ## ## if (!is.table(x)) ## stop(sQuote("x"), " is not a table.") ## if (length(scores) != ncol(x)) ## stop("Length of ", sQuote(scores), " does not match ", sQuote("ncol(x)")) ## xtab <- as.vector(t(x)) ## ## tmpdat <- data.frame(groups = factor(rep(paste("G", 1:nrow(x), sep = ""), rowSums(x))), ## scores1 = rep(rep(scores, nrow(x)), xtab), ## scores2 = rep(rep(c(scores[1], scores[2], scores[2]), nrow(x)), xtab), ## scores3 = rep(rep(c(scores[1], scores[1], scores[2]), nrow(x)), xtab)) ## ## independence_test(scores1 + scores2 + scores3 ~ groups, data = tmpdat, ...) ## } ## ## set.seed(17057711) ## ## SIMG=function (sims,R,S,p,f0,f1,f2) ## { ## #sims=10000 ## #R=200; S=200; ## #p=0.2; f0=0.1; f1=0.1; f2=0.3 ## phi=f2*(p**2)+(2*f1)*((1-p)*p)+f0*((1-p)**2) ## p0=(f0*(1-p)**2)/phi ## p1=(2*f1*(1-p)*p)/phi ## p2=(f2*p**2)/phi ## q0=((1-f0)*(1-p)**2)/(1-phi) ## q1=(2*(1-f1)*(1-p)*p)/(1-phi) ## q2=((1-f2)*p**2)/(1-phi) ## Probs=list(c(p2,p1,p0), c(q2,q1,q0)) # ansteigend ## ntotal=c(R,S) ## ## assocASsim <- function(n = sims, ngroup = ntotal, ## probs =Probs, ## scores = 1:3, ...) { ## ## g1 <- rmultinom(n, ngroup[1], probs[[1]]) ## g2 <- rmultinom(n, ngroup[2], probs[[2]]) ## ## padj <- matrix(0, nrow = n, ncol = length(scores)) ## praw <- matrix(0, nrow = n, ncol = length(scores)) ## ## for (i in 1:n) { ## ## x <- as.table(rbind(g1[,i], g2[,i])) ## it <- assocAS(x, scores = scores, ...) ## ## ### adjusted p-value ## padj[i,] <- pvalue(it, method = "single-step") ## ## ### raw p-value ## praw[i,] <- pnorm(statistic(it, type = "standardized")) ## } ## list(padj = padj, praw = praw) ## } ## ## tw <- assocASsim(alternative = "less") ## ## ### minimum p-value erg=table(apply(tw$padj, 1, which.min)) ## welchmin=apply(tw$padj, 1, which.min) ## nwelc=factor(welchmin, levels=c(1,2,3)) ## kleinst=apply(tw$padj, 1, min) ## gg=kleinst<0.05 ## fgg=factor(gg, levels=c(TRUE, FALSE)) ## oma=table(nwelc,fgg) ## ## est1=oma[1,1]/sims ## est2=oma[2,1]/sims ## est3=oma[3,1]/sims ## estMax=length(which(tw$padj[,1]<0.05 | tw$padj[,2]<0.05 |tw$padj[,3]<0.05))/sims ## estA=length(which(tw$praw[,1]<0.05))/sims ## estR=length(which(tw$praw[,2]<0.05))/sims ## estD=length(which(tw$praw[,3]<0.05))/sims ## ergeb=c("Max"=estMax,"MaxA"=est1,"MaxR"=est2,"MaxD"=est3,"Add"=estA, "Rec"=estR, "Dom"=estD, ## "p"=p,"f0"=f0,"f1"=f1,"f2"=f2,"cas"=R, "con"=S ) ## ergeb ## } ## ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1,f2=0.1) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## ## ## ## ## ## SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## ## ## SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## ## ## ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## SIMG(sims=10000,R=180,S=220,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## SIMG(sims=10000,R=150,S=250,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.187, f2=0.187) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## ## SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.16,f1=0.26, f2=0.36) ## SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.2,f1=0.2, f2=0.7) ## SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.2,f1=0.35, f2=0.35) ## ## SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.187, f2=0.187) ## SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.187, f2=0.187) ## SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.175) coin/inst/doc/coin.pdf0000644000176200001440000032707213133077420014362 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 3895 /Filter /FlateDecode /N 64 /First 519 >> stream x[[s6~_Nqwv:;N\uAhr%*x:u۱%w RuL39fYd9gd,c" _LL0 .cBʥT4ۿa^Mfj¬P3f]͋2_hroN|q~!tx]]-bX}Ojp,dqRYM{<*/y1ϋ?2TŢ|2rɿd*\#T=M޴1&9TTW -L?h4{XVnu{\>?:`ϯj5]7db':ViQtQbf]yLrr/YQ׼,/e^NAiźHTIl[5 g}55VCpѱ_k,_Y.*Lľ؃ؿMG _$͊3zQMfh*42q4dFb IE@2\LO ='0s.=. ( ,2LI>WՆ/gHMbq-9Qч0z_UZjnX$E Ţ͒Di1{6QL$Dn8}_%r;bg!8!'pZl}M4k%i}PZ+;&rY)|ô`!a"i6܈xSkImIX(%:u59&exPiHM /kU (?4$oh:-װ!h᧯X\M-W&

8=cvt1+KrUl5Y_\Mzk7BZ-Dhhþ-fw%fO:k}MV 2MgM;zF V`2M~E^\^5`I#>35_9W7^]-W|??dzrEF+0mQPh_c3.-~ W[ߗ"qy 3:,V+,nX 3Z*> zZBzn KG^XP0Z:"ddFJ ^UMKL掕OoF8aJuk菬mopZxKu ԈH=\нWG3 }اH 76D7d% 8\PO _VD{#=¶P+R`Z};Ĉ[ v<={rkz1wy"viG4m@d)7Fzg.?o|h{K W~RFჲ", ~e*O]Է#hZ)VΗCmxoTpAFG(\M.DlЁ)v5j' "m֦5rm;pmû3rշ` y:+vK~)Z54k` ukFa. qtK7<&DNJt?LL"K~%N^ML|9^CodO%0`>,YE'B 0xQcm:Lָ~лpH=mD@w0C!>8?zMВv4`1CdGmgfWuNoo(_$w n66[bDv&*ݒJv͕-2+XY:]tE ɏ]׻6Ftg=߈9H7p}'5i0Q;;Xk>nj;rK<۴\.> b9yU̿e ;(ʋ,/!;Prkqu*.zg~%wEDh(:?c)*uٱzcٴM{ffXfQ|GMć;K%Fu*KS6kRE4XݱmZ-۴]%L-wK<ŽG+mQ$2>q5DQ^CC+(D5Dp*1]& +u.):`P}PyqcocY8eù#lMg##Cģw_OF׶wg?gw?:lqPfG4N-'UULjqӃ4u`F]:ܭ*/- =ؒXxC9qRwrrwān;~ˏwa* w|'YI1 ^zk2Hx6vQOgc#)t[G0F0E"Y `@,y-9$ObZDa- `9D,KR(j(i $=[ M*MqbQL&yI. $+i8 ie=:DJ-QB'ei !3I &>nѤcGAi?2 "JAHIqQ" Hb[`50L(Qs"Mv5ɻ,}t0qk6lKyMDnH n{2Ĭ2Q;f!͐p9mu ]\SљOSas(c8&6s~==~P.GaG2KO n|.6\!=Mendstream endobj 66 0 obj << /Subtype /XML /Type /Metadata /Length 1688 >> stream GPL Ghostscript 9.18 2017-07-17T11:10:40+02:00 2017-07-17T11:10:40+02:00 LaTeX with hyperref package coin: A Computational Framework for Conditional InferenceTorsten Hothorn, Kurt Hornik, Mark van de Wiel and Achim ZeileisManuscript endstream endobj 67 0 obj << /Type /ObjStm /Length 2522 /Filter /FlateDecode /N 63 /First 525 >> stream xZ[F~_яImk*0@RԖmlN˲-`\[>dd>1 i+YP8ǂfy =˂/KR6` ,DB LXIȢb౨RhNx(Zfq,:fVR ؔ5b<1$3%a0kxF;Bj$k΂2,`^2S.ڎf^iA4@Lajx> _ȼ491# @H uOPX;< H+ V-ڒ hDHJs\ .Љ!]*j3P9vIifbY?bēC \CFJt5gL<,^WS: i [cq"gfT?ł0$[(J>M6ÐP[}1{1duC=<}bHw0b('>ط5bjdMWDε!ֶHL5g]3ϭ3b wi^d/vA; '~M0CEmī6{,&$D:rvF@_!:x/|n?xˀžhK]= eBͷOkhl6-Du({=Յ8mr|ڞ"̾"ZaAΧ2͈aa rԴvnSiM Z\լc:]ZDN =L~QGNӄZm[2 rM9cAuCas5O}8:SQE"0 !^CoT,=OSaL%$Hcjc|=ᇧ00g?sOJ6=-&Qu5휾geF@G/ f_EY =Oc ɸb6x6`yAQ\ '|,_!B\,aU,lr2)LK8Yvs1ZФ[Xx)^fU1~>1βxkD;?g5ʼnZfBX=N NhYT!MX uwhtzGmL#MFu[6٦ kGĤTٴ獼;1B;^&֡q)N1p-AFŒj߿~8'Vup6"(w'&2D4}4(!>R-I!ɴ&}S~ :qz~!whMUZvZ:czGU2,k% w4ʢf-ݛ@nW5UM;g.h.u\4zSH|OR@ %&-!e %*ǃ|pg|@v5zjRUA# @7Y#{1_=׫;e1Vbf*fbz>xrlX~՝`H';:d&Zn-TܼEV8roaU9X5xޅM}{MYPԝvy&Z}z2ةwU%p"[\г?Bueendstream endobj 131 0 obj << /Filter /FlateDecode /Length 5192 >> stream x\s$qg>Φ|ɧĊ%XUS%Gɥ;FcûӝRbF?ÿl,7=ܞ\=_dus|}3FYIk6UNN qmo8;1z+f%sq6;i~/;# ӋN 9h֥r-%ltSDmyg~ڧU2}~͖<֝2Rk?UN雭sNO+p/K;* ./ܬwrz=Phi%G8;fe aVxH1ONqC;a_W9ɜI ˆKJ0!F+S~#qk GF$msIG/qQPZPo1%.k8mB۠:1"u cp?vHAB$ebfĪVBovK_-t;F>&89oirup"FIbVO> yOS6%g G9`M?n6}= c]ҋ0i=(i1\$;NK" ԪSXneMKɅl6ZFnUf##1.|వ8xE$e%7;[MZob&[MSĀAv$`* pD 5$+Nd unZϠI @4=FztPDN_?|\vc2=<zBdL!"8lj_6$|!J)-*M0L^ct/ZJ7!\<&\4@_qJCDb;&ObHH+`ʹaw deU8oy&;6? F*+x.YCMm`GZMPA[[i!L)(ONd` kb7vzqD q=iqRw8l#*vN<Dh-wl5yCR6i"aAݒ7 XB^PzTfd(}17ˎM6S]Ul\(|l !w(#^nw0XX')tvɈJd<=)X?ǴBg ŏr 82 5w*Q khWM@}IldiƆoU0a8ObÊSU }18;'G ZFi[Fo貌h.o8xׇz,ߕѮ~( HXFoh.c=Z_JEvgUH [W[`|P7;؀.x*]Ea9Df.v*{xj\ !46A;[nwơS@[u3%rawqV} Z# R;SQP2йᲅ@Yg\`>qڕ mHb]_χð]wX}92zwKt.CP;XZ7&/<=<0 q)lN#wW R1Q5_<9%M`^o O~!~(%QB?bPD]C1Ztݕj`=("7Z16jDxSѕ{ QXX1(s Ϩq^PfRq\3ʀ<10{]KTrtk;$(rȘ4~,2z?@Brʻޱ2_~#ͬ cpR+aQKT1OR 1E5@8J3wPqk4Xm8@k6 b 7\Pv80?R4Xb="CeZاbł园ak| %mx zpzyEBbTe|F@QtcZ.h}UNn>E)u~DZ O iPA(D^a+dii*Whb'5zSzI\A"HtDC|<2Z@fT F/*cz` UÓ!QA4w_̘yp6fɢE%]At%ֺN0xҴ TQ3Xl2)F]Ǣ25cVrRV.B/F[#$hGB81*3S|W͓*2eʅuX F\]4SL,#-ShK}>ppk*Bɪ+(PP sDl_0(aq/KqC_ ;&k_&Ts~~4u "]顰ͅZa{uRVf~":Y7ij#7Kg`n#HX(Ėm=glXaV{Re_K@v GWd~zZ"f(=jsÐUEmB{I}ҰDK,Qҝ~h7,<Μ! Y ^ќ-\z4W4_ 7! ŞTOP/Z] ߈3CC ѻEbWh_13?o1@"[E@3e1""=+镈esUg?ћ- io8EÖ^'7|KZC38Fy|&G%дվBp6p`ejۍ-}psTc,~Z mM"ѾGSnpak[ kWԜj]#_T UVbÖ8Q Ph|]5KvIndu6A*\eP1E VH N֌&Qg%Mh[b)M CW^G:Dևm,t|W}GUuf SY[3+.d-U2صA<|x9>*%oh6VfٖfT !UXs9 ӎ717 B=ooX9gmރy}$ OK&q`{A7+{B1B oCFS^($^ԿIA'U gFƠ3R@p(n Ţԩ*(,6KumqUҘ1TV写%A W Y>V}"#^J S2WH `N[Ab_xmJHb=8hom5.I~ b@:8\]vR¶ 5r@%?6D<& nCܘ&!y7mhC[c,{!S]O]( Is]p u:lЗ_ qmss=y4tna,ŧHs^(*8c;4a7 2h` lCRY/ABs0k[r L˟J%KUWf*\H V:vA $OvG~ŗcw5`\!ţ!onQA$Ii|ӗ)2M\-+.lTb7~R̀}|E7Z͋Eb63)._G-^WΏT>~X6V;;T;PV u q˴[}.Req(M4s9ِMfj0hjËq}{m"f%I ]>Nde !ko:TNvz SSч_,yJnxk؁/x`7GeFy/4 yUrE(_.LXS\lwO ]eċ*X})㉅@!ۏp>7IeimLs) QJԦ,oWN6`V/<5Eu0|Eݸ1]H.Zأ& =~rJʊm/7妶|i*W K~)Wcgxr}SlP$̞֠xxᅠ-%mE['y6,>Gk(!/D8QHp \[]Hjjg^j8endstream endobj 132 0 obj << /Filter /FlateDecode /Length 4991 >> stream x\Yo$~23Naqljq`JZifWקdE6{$Y#GU_, .>A[8ᯋC!8|r\qR +>0_>O'iE篗35;d p =6DpMNz8$"q0f;o?)ˬRVmsc/NEeHZ%y =^dھp踣I=yN~ 䫠I‚_, Lٸg#B yəxΕ^n"ߞFʯO8=v䨐MG=ª Cցoב`G;GA9}Zq2_(itrK؃*Xn{k=S'qDLm|WƢH .M.ک <9;g\/qWUykSrŤٲ cf"I om RZ"tQGQ"E᧢P@$ R;`3["bh ~0lHY6jQHo .3')E9dDFeAYǜ*LԊ≞2 }CI૿a)R'ao{֠LVqWu ,75!o>[O=WYx!.4 Y2mC"yÔUrhIb98IGr> H>,*W`cV=(x?ԝ$R(k|~yj#?*'l|ߞibӎ<س"SDEm9[A GW(֘0LʳGۅy]H5F$-FF,wA #K= 2y4 '_V;ƨs0dvitN>h!Sd#负bԈmGieK ]D1cU7DY2ն[铎#{!pI먰X@SUa!IM.Jmp3j2G7ڣE_*A~gk>BTncv!huŃ0rtCQ|2 pL3r_y ǚAHBA)!~c A۔fy bj>CSFلmy% 8K*"TTI# ~RfD":|şy!G"C N+͂q@\i twEQ篿槗^\O9G;ȃE餳ouvU ݼ^U0J]Ȁ wI⣦*7M *SCbCuj;3pVEs ϞNFԈ]i]: wԃa8&Ak3_Nx0\`9: ̈5u;*qw\U|h `q” vrno>0"vv. %,'"Xt/\WI#RDG:*k(IxbA/wjǬ˃)cL(7m9tf4 8{* zcuY^_2#JPaPLJ0sk&!;~ ' N9hBb9O>s g0,FdU̍AfL' %qW=NGex^h-cucm i̯kėXm U%2j {CLMofΣr@a9Bb" * SAD @(d<Ӵ8W(et%+(*WZ"BDn>ȵ,gEeTę劻QBR'?@i=5[ r5m*s:;Q[QiUaRK if&aJ7g-QL`XyΙOIbp^o?JTm2Y_~w?;i\ R-s7򻕄;e!+sDR< "WXDpF$T j\ $^bޘB3j>W]G)._k뒡53uoUm8 is}9Hki83'bo*4%+IZ뺇8U1Q(PXuR!LѶt*@|u2F_N=H6>.ΆRRN4 ?{HAih.7;'^ip\C=i|r1 #DCQzUL,|Zg͎Ԡ[6qO܊; de'n0-JZDn6V ڻ.HgI.oZ@vW/8|7{$r{9yoz|2>C/BnWN SOI$$Yz$oeQ?K^ ッp6yڅĨ iE1mVkk*S\w[Rn ={m,!`,EFY{tR]`qcRWhEpPB)3RjsQesTY=6"XYQ=ՐX23KtWx'\y i;fLDL:gFqtWǧJV[@ѓr~*A´2BS"CQ䕚jʛV̅6160X~ A )8ဌ]~1-D& U$jQ›vʮn EXREN5 IZNC08OڶnjC<N4 nJ4OB/.IgJP>K\v{^J}N>W T>b.!/+>VoIPtRU5]w!ȧijQ`^`4U[Ԫ4|ֻB>6%0M+3֜|8b};~{>L.Mh҇ȀԽMbɸk2Lpr@dfWKnDt (vGאy*x ޤ%wF>Z$Yv @|<_!o;8PYp-}*p] }Re o+4ͥXvÃdendstream endobj 133 0 obj << /Filter /FlateDecode /Length 6960 >> stream x]Kq/: cfV[aHD ҡ,D 3+g|QFOu=eVw1ɍ/ 6wduwqBMSn=RB3)6^)ĸypu탳s1)!ۧgbXε}o_\~ڊv_<A)e5<رF?%sNU;!t9^$$eؾ9Sn`s̋^G:FctAWj_᭍†׃_dtj)<½R55nhn'!sD~f-ow]fz8k"D+¶Nzk iOR[2lp:O Ư+vVCckFâ2h$`L8!"} 3/j!\m`n<]vS:AMQ͹SS7en֍JEe:{~8[okYAz (%LZJ{k=Hm+9?=;'?|is?f ꛳uv'.#y?FKwIߜD::4dS3h+Y{^uc,]'%c4 dLЍ;0v?M% ?F5啕QΝmokk޶=ozɃGd 0gJ#wz '5 ?.n"S*𘏾Hlls7 b%ъN4ϕ4'~O3",F,/ic$s##3/4Y@/Tw{(%uO*"/$1RdJmu*3f>M.E sI sB9dBZGp1B =2rJ`1,MHi@m/"UQjE1jB`l_dH1 ksBulwkc\h)CպݽeQ;M&(h|6튾]`2_b{r*wAS䒳1~(`ӕ]Y6{y+pQ/ DQ檀Pk$VnԨDEu9"!D(\9RNIڶ4lE :5!LY!6 3s]cFL3Xӹ:IOIr_=.m\SJ{_'L.nlĐU!'*\cۀt3UВnI;jCE=,̎xŨ'5L!Qz! sz.j|Y.⳹N4Sn,QpevfS ooUL$8%Tmr`ygY|3̑g0 qG N. >@TUdlEܟIk)A#[ZNҷ\ 4~rbB׬RC h dh31Zj 2"}s>d5O .F:֡mtjw7`:[jEA ZADZ1(LX)Ǝgi z~{8=je;3]ن1e9 e qVWѿ<6*(槸|Ya vlE'ڐe}E3c-v8GBez0h07T 8(%ei \|Cx|%2&5p o9a _L M!wvZt. 9gN"Uk=~H^-x n`3|(I9Pg88w<{0-.GvwYsCM̑%aPoV{qeS" o{]Xqz8z۪ xh?/wzm1Υ`6jcAaIP/^ݑ< "n ۵0ǔøi!ܲdTh. ~|D]㳆$//c+jE҇zURg"WZ֒?g8ՁU%M?\b<I}rx~RӺM0>Pk!<[.C':(@u f = ^ҋ+хj"aZ~,}"H Jf%j_#,sٳW0WM7d%'Ā W0y=0yu3֕]2{0&WgNιWy[D$Bypw/7ӹrϵ& ȑ0vjr0[v>#뎼;VW609\ĹC_Q[5UhEש.w򟫈́cµL{I]tF;Ȩ@РAmR#iZ^%p{Cmiq*- --[mm)HiqQA3o-*lx TR"m50)x~!wl~j a˰MRMݳk ΂&*>yŋ[Ѻ7`y2A+o}`baXܬ2:cT7ů@|b31 аRc-c )9;4z="Sh078:L<⹜L7?"״t6' VʳQEĖ T֌4,<]|70k"65d>_Ry#7,r".k::;DF~?ZdmPSe6[cǯ#KyY(惏#Jm2h ?eaR XxM4km[3L{7MO bQ5:X&,nfj[n.sSX: ^I#d8Z} u%ĈVrcDTy08cjXj5<6^Jo(Oƹxރ@ ܟ8˱ V76-!UOp~V&XFGX :5/*#$ RTlfOZ00B×>SqKG^qM^ ﮫ%+R֊SlH_fOW+Ɂ&`NϋX8fQ RlW9Pk!q|3j`^%,B00Vn"`+h8j {&;r8o6r}}/H@(2V(](nLlT6hr1'`ȃo><'-v=M,ĿCw"ky֖{Zxu?Ǿ<=*OӋw~O_[^ ~fi[-1 d8?0rxW %kZTNFDo㴸2 A#m3ǴmIE^0.}Rk0V'ԋЙ)ـZNÄ8:14h?{\ǰGʈ{$)N.|X(Bރ_Sx`{.b m,$|C gOqwdiE>pA@oL2@z9:@jF{ \VH! ӤZ;֕։bdC'f5++/MFv7g3Wn;s *

;?'z,!6@oaf=)@/.;e NlN%7n{m[3E}7-Vgyygfܦ^}A#5dvq)k/&XqzWz}0 ՊjҌˇ~ȩ7mJ2Q*{nZ4)ץe#7pKeb]pCI+jDYOCΕ2tbnKni d5Lu[e'сԼjWL#N=KYM$$$ʡn>OO򼭜kqͱgV#K@y\L"h&cr뮺Kjvw[_< ym9< x&Fw8#۔,nlGW1T NJ1Λ |-|W gS؟QCWϋ|fK nA(vIO_/`/uI&>tΠKK鲊eASS.Od=u*'?{H[\ӳ7d"g-f>XC1jpxhUzz_˟> stream x\[o7~Ώag!~ 0Xx2O&Nbq,ɲcYG8*"-˖X>l^uBx @{=R88=I_1 nS{KyVEk 1<~u7uHlm^SHٸu"[hap.L/|F}^m_㳋_gaO`Fg#Z5Ёjn>ARnSOZ"?:lskX 5ҍӫr0[Fs"ATJft/"gKttFNg;"=mBDkP Myݴ;ޣQN?м^޲YQ iNxotR>m[୙V al ^}.vo[̫OOvWD oZTZBl3^T)FV 0 AطiѶhay@:h,eYg pJfJj ?o~TG)$Z]gyg)aZ* m$65>/YhaI%J;l@,NRN:ܝܷN1mRNizFdf:J: Ի [jW-7ݠs2&hd:4oPue9M £[Hm>pYZmLEܑhZXO2Fyׄ6 enU#u.cGLt; 9B9Ӫs[h6&7S@zf[nLeCup`X+A:!&b*r.ٱknx0,YIҬg 캒jD1nOg҅== kCj~ ){:!A f+B;b( E 9X`xP(ِ8q w^q6pT1e7޽pSOS/zkBۂD7O[n9i\J *Ƹ1DAҼc6>)Hc ujgi@iW}?U1Тw) :?L:ۇ1ؒU4"Sɢ\b[/jI)g.Ũn01D?KsBG@8IՊçIGPLڭVq30&6>_6+{uϘ3lF0Qq?07JQEEƜ1Up!m(hr"1'Br "o28}z v %sYcƛ+ T `EAK;5J]Ari3mcfߋޔ"{h-Z_~8MROHfv[;{^g?8K^F&*e$qa"><*ƼLlPt2)`^UBpVR0^&ѻ4ښ$K_K= /:5$ p0Ve,,hn-Ąf? Ҿ_#a~ g,?0S0m9 [+oh 2hlZNl-E!{i`d<o08g hZBt0HDX2 Z~8>MVBR Ѝ+X)h@BiO^ P>ۂVvGR8ڛ47yٴ6HI3 J65Τ̯S@M 7X0ɷLrt/6_ֻ=vJchnlCZI+٥&EfX0uf xA!ʮ2șh !v`Wvg!j`#Q-sΫc(<jPͬYTr\b0 X0DuE t=P Y4la0u'㼨8x=5 (nHl"FxܟU|NviI(mO-dp0D|4'OKdG 5wo﨏x^WE)m3=N/aa8e,Y٭/9F[2/5p2چ&)-BJk E/cJQ ^K$4i=i1L? 6Rӟ펫eAo8}PUI boPRi8e#"+Q=0mRFIEh)B7 PCٌݔ Y:>E{Aщ{ޣcl2*xo0f$([RJ>E5&vjpѲonzhm!;ƛpƚNFsyW}T %ca!riu&ȩk@ag\J} y?f5JJlpCAaK"ZJ>ѶؔB3aER`X)6T-efz-$imMRh &'Ԍܢ7cn4JqRiFFNs$o*rY3W!#M,;U\J!Tiq0]x7;8Dkf X1(5?mSuW~.OGqX8x&4UVIhBG(p>RQݟ^2-qo*k~B#oAL[ ۊs5FSd (R@?bhzU lC}:W=p:$ h0/DXrpan< `qp(4WP7)mkEC{xZOb%SLIE ýV-a5[;PP x_mw døE,}h${5UGlul&*{R 4Cz XW[&WV(#ᛜH׿aʮ2P~Rd˥[Iwdώknj_'"I )П5Tq\A6<}6OW_FV :޹~}HT6a+ҧ,%6yF;X0aT5Zt[3-Ygtrּ'8 R kTh^_`*M\Wg Ʃj%\JN O,hrOR[L0˘IiN* V~@ Lrv9\ߤQaVCƙimyczkV=R>VMn*oVj\eX(z0u7%YRX{j1SfY30n,ah:|#$K !/4' ǛVճ5v%gu^T< ֏XVi\.24C^d7lu;Vq #l|-Z WvHv>ab*qh1"=T ~)$kÇƆZtE fJa "̝ 4DǙNgH` ^d L䯱:BbDF\o@Q>*t!f.>QPC jk7 ņʟs`+ a t?KmMo,ѹ< k c[Jd9l 4M T"Y_$N:Sj7 H_700Nz'p׆Gigzg`H-@ h_Ƞ?<ςb0QK@ڑ|*]s˩җ[S-ZݷD8͖ߺIg#؀{q+)TE[v~dt9MzATYzG^X}TMt {t;b.\1TX*XEdCb =pbR,&3P@҇0Ws;}a0 r%5nQǠgih?fz#]o)hE'hzHX`pN%3"MMP)9gCb i!ȕ Cs4Ѝ'@GN)Qӻ0o Qm ~bsX+V&Z.`COnJ5at*RE0^  , /&# #`5-8ijG&/A{Z1$LUѴjBmP!P(8{qyOőN+!͸ԌK}`T;ƥҒp)T@o@qަN}oJ8<<-UXWd ^K Ů`ewtvAF6AǬOkLDm]Ȕ3% "V?:^^F mǡ*&yҰ}IFn0D1p?MO: 5׆bLO>2Vn}=3 k"p>T0m-lƀƸ)+q=VX96%QJ)0oi㊞sqnqodi 62"q5H+qfW-pc6@Xbh h_G((QN)OVĞU|^%X & =-#sKx pdTzdxt7"2=zS=NG6="Tm1yB`꠭0O>-.aYapfV`xPH2n' *:+k9[ Vz-#EJ~:ݼdwN݃`S5OޢM"рx Ϩő%Iw`{Z=OuͫxMU,T.S1BC!9t  T 9)tu\IQb6er{PvU8FS +sAe%Oy IJ!c𬂏] jxpBHU G3ZM, ly 7+<Ֆ[b&j/&ւHYJLdx%UelCi>4\U{sZ\)B D :?vVj]@$DΔN A-4 `W i<7KyGoA42WVv*iα~Pm4&?fLݶI.dG:&cp(mު,^)3_G~yz8WvGu׃lL`븻A/ A g39`[+|ՋsromE3^)cë#8 `2Sc G7RݬwAs+{_>¢A~x|.^5FA2P)e˽rxlJ<_x*[*s6s/)~^vj]i:EL9D)[OT)8wH~-+)xDMd'*:DXC85il4yFX @],ݭh/ B}OQ?/{1Tă}S8^b~*7€RRW(p:'O'.RW]?l;g+"gyp/Dޕ+Ix-uz.cb׺Υi ;ycx!c€vE4YȚg>Ʒ~ܵ:_P>ÐB.si8AͬhbUax .{!6G,,mZ~2C.<8SBNJ< ƏcFRaR.FaxCt,'LCOB"]4=]\2Ok-ih&t^g޹k^)݁4@OXA`A#$#<).[^S> stream xTmLSW w0D..?l e:e:B6RۊŢ+?ھ'V,k,RZ:0C9ۜqdfzfis7y} HM ^##((R !EgEҪ nH(KTMIKK$&QYܸZŢXP(RW'L$Ɛիg$3Wr~rl(ˑkpoI-CѕzYvR_BL^J)SD.Cs#D,G!%!Hbq\1.ʥȨ5F}(+mRϢJwCiT/u*' h79GM3<,^i7Dދ{(!yX-[gwe}GTm}_V`T";9)k`s{-#Ԍ]~(2 ..[lO` ʬDID?##kwl:tt0>Zk+@ZQ55dfc_k[8**t<РXX`}3RRf5]R ွ-TA|Z4|eO׊m7E= .{c|&To5v0⽨NЬR*2"`p!$#ᘄN쭕Gey+ t\^H+K'OI.04\DL !#rVho3@%h}+4XǺڠfQl \a<ʃ.7)L PeѠ ǃm=+8|6H$`hk1C&on۔BY@Gm3Ffd>c3>.NA\nO{—plM{;avSe `īD}$B?F6 ^b"`_uLjI=Sv#Nn>Lv<#O=@#P"nzL[_ {qpA/^?ѩ)6moj5o]:M{ޘ=57-᧦%az^".H':-<zO1~Pkw1k _#E#;ο#Z]L0ySz-oFQKy.w)z Se)V`lتmUNhcLn!lw%X^OFFEOyIh0endstream endobj 136 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8627 >> stream xztaL22K(JݘjMrU$^drA6 !@b/!!!;d}o}ZZ{Ϲ =(@ Zf)FBwUޞd}з!;TO 0,I8(8*tO1cN3gքӦL3tag.wk\}<\CwyG 3'<C7zy4(0|ZϡM. {]h;M . ڶ8xC- _.]{eHQk=zZg.{M~̚=g;ۍv36~c&Mv2u3+cMQéujK6PQPQ=5DfjOmQmbj"ZBMvPRj5ZNMVPө j5ZMKfQkٔ-eG S"8*b]T/7LP@ʚ SoP  %ޤX-*(P z PF0HOOۅ_xzQ--LIE*z;>c立k߮o1@;Ye,f7ϱ͵ۭ0(cMC۽޾ʕsmPϡ' ~د jG:~丑ґ߾<;Z2a ;[Һ= Lh_Զ/W<5w|k=A嚃0AV}-Xh#h EVV0VR qy^(>zg,.dܨ^ӢJεz\ {ɿ!WKF|%ɬiϳRK,Yi(-vjֶiLQ uA ᐨRȰϷ,rPR  5Q.O5/RdgԸLӬF8 Jwjuih8EpVS.泩]#n~H&ƺ}+9d$g("5]<ʡ7Dݼj,,|>+r 3&oq=+D72oIG-~魒υCDq_͹y56UuT?4OZd˜k^)3S h}!|YW0 <B~9Yp. >z.@쇓-;࠴ҥ6TzY '< j_&yߠ XN(2B&W%x.+G)9t2caD{WةqT dɊBo5讒퇫]N/Au>dsWj(~z}bw.֢Y# br 3^D5G [GԊ콀mS(=e0E+D2e $$sz5l=>O:<O.$ݭx M0v͡FWWPg/{#8)wvt^MEUGg1_=bxDl>:GH.dQ]rkc+Y =M2Ѐ3 5F!}Kdulɰ(DV{d"5$ECǻ*T%`lu{Zױsysa}ֿj7R{<ġ1h=ڈxסx.H[\=Fq(/+zQaX?#=XUǻ]|o0foF!tP?$ vf6D>߿~yfIH74 m7FQb.jF$ExR"I]WArޕQIh7:KPK(I:w׻5?_]~p&z}Ţ4qdaKIz樶Q8`BUnM"teZNH&,Pb̫q78RCIGMHghylǑ4TuH 67]EKOz R?xVxn& }H<'3C?BQېb`1},3_Er|uZ"0%t4k4V ڒCeO8'!O[E>wyAMQZNM(ɇRɏNUABEVf6yZ"٩4ke?LxPUpNlTC$$ ;8D|\]~(! P۫!5/B<6#NCP#5E=&A>Sh ;yf28͵lIw9/kȕhr{~=TɊ*O#Qi }=zuUbvCmlqS~9,) K ऍ Am"A?gێA<T=Y#PUU#r3qO#K뾢3 ج8) 6=Nl΃6#G`nLe(eh3T>'h֕k8@dܫ\Svt=!T.UN#M,~Fۊv3g}teu2/nFRU,cgN}vlXmZjYU|(CM݅/m%ˏ!KJ 6=Z {҆0r!a@^6.ظ~,Y㩑h 2cۮ6kc"1&"P ܢOeUahtm7R tN]HJX.v\'edˆdg{P-Wgy+[z'/N/m/%t@O'e[yES( 1IV&j[,DE*Tae#rG6ZulS|MAKWA*i"KLiY(b*##N/69SY뉂=i4ޖ'qFs hֽRLHIDuxg L~o0uP-ꛓJ r8ie0b~h1]u5+DlAI6Ǒi X G$|FHO'x]VZ.Rt\uWU3K)4E!(qޖdA}LN{k&<&?8|8ıgTڈz#ڎ~I2PA]\&9tuč&޻1C-VL; |t,)vFqO6T:1|,f1ȌKpxAe=+MEp\/IyFe}u' Q4ǚr>5T Ql46)O$ _#*P]Ԩ!((S549?mvF LdJct}Aޮ_خ p t,;1PlHt9(@c",tP3R}x`nqa>9$yYa9iQIvW|kš' r%M,}+&? 'JS}Fv 'M6`?"ȕ%k 8BްKL'N.D=d ghO#AYK ' dHrW^(r3r51, Hdz*n][wX{m2MZDl`}a%7y6yV ȍAR IP-qOF]^{,m>ƫ/?EkY<'r4jNj+wi"}Dc - BLƲZ"RSjӕ!g6\C?,~Ӵ$[=i NK㙢V'p>jܚS8k' *Z>fORT{jel[<+pA܆KuN2(vGKמfrNv]n#D| 7KORrX0KVܟ\y|^L0f| fJ 0M_ULe>((*"d37> 1zքUVTT_E> -l4QV2 'a;(2+@3 x(!Q)@ .ιt?,pC^@BB<2t(YB#[{ByA_:usX=DEF+"5e֨k:?Rl_gӯuBk#?yeÈm!l؂ƪ4]3hszݪ. !>/Y)Wݶ؞ ,u0ZKIh;{ͬ'632]ŠMO/ z~X/_fܣN}Xי_Ä# ,9s0gPI?Z W&p3xu*t{B%,pѺu^s -t,3yZG,_~y!ǎv[].1d9|-ۑOxiMiO|06akP+JP/v#+ʾq d1@;xI#GpB)ݩi}lY}zmB=P\K[oر·3IJ_4k̓igpRّ֩Mh 5|!pA~ZY}{af.,&gf+ϯ<k~e?[{髣e' O#V|<W U֏#vnv e 1IO}ERkR~BL6m(')>`Ǣ \~oNeUޫU痶v2wΙ z%xJ6?.ψa 81hDsͯlFVLnR,15%Em[;r{63;yr"-G$PRi2KvF}It$5 7 sX\?2igH08͸k䮬;C5wE`?#T+ \c ה5liZqMJ0ßdٔ"h[X z}$I:EBDD)JofXI_DX=d&ZL(oo8(vE~flfF3_=a`l7j!+5?7!{>찋OTpHHqp '$FF q ūHJ&%]{K\ǵyH,_~.xs!rVDTIAAi}eު"B!{ j; &nk0c ~b6}~${$3M4IQk'V n0D?<$?-UZac6ؗGgWAR5Iʊ-z֝!AسdMe+eFfG0O:qv(WAH7"qD%ۢxgfN-Hљu~Yw~7I~KS{AԦ^0e~ n3_c=`1;yx\:Y6B\*c `5db'l p2?Vsn4"|]V6[j:VLG!qQ S9? ?-~Ten&zG1&'M쏃>2'Yj%WƳ|sp۴F7a_}/yZTYRRcSW5]E Yz1+?,x1P)tdUdG-XYcj;B,g:v9Sҩ !Βdu*)jtdPk\6YA9I}`}`_+YOY53hw%>zdag[nsJf8uM=7wg$)Og]N##) )^Vh os&f6jh'y.1>Bu)ď ezd$"i{rpe:41|L.#-j[IHD5 B^>i!Ft~" lOff`?s`\kY5r:4VE rMhU2 4[I]4uqA=ɰCa'~@r<}{l^D܋h@Vt GUԧUq0i^LI*c-5Q`nAhS+}=g2d{E߷E=dendstream endobj 137 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6058 >> stream xY \q7Cw}b+ى; ȚɦwE\qK۸VUij aI_} p3w=;e֍DENN&  C Ja[{sd!Ff5Cs~P",(~lRᩰǘ3L?~?wV77 |mV˶z+6#f{*;f2/pL1wM=]f_ahX"ߎ A]OQԲE;/~Xdl&.0cCgw{$S󁅣Es!bz'W}c鷪W, G] e@ !-E /֛c+mSsY>׃~k)gPVn!.' U|k|n` -=Sges8dmü1"藟I^\BCw։B/<~cflKnnx γ]qdh×Bp-D~ĘD.y'J{Wh>%fɺ=^(:V3 f70 F>~r|>-,51H1l:/IufB{™+/,݄ۤBɩg)fx{TK5݋\;hvWޕs;sc?J59) y\Ǚ*uߞ/d0mI:8C%qpgPmM=uf7Ey@psﷻW*S2*MhγfkC<ckypMB!Pi gtϗ4"C& hwO@wndc z_zܺ}HK1zz8c1s `DINh'4&kbOp*ZU%`r^5"ɀ* ֱ)>ZT[taEU+:$C⤡С] ULgZB(qIrbL0 %ժ”x<`pG'*v$.5&u*,;U$Yiu *C{t-f4.H ۀ* TȔj䊠o|r0=uB!Z,L֒TZH+C%|2W;+#GR^ID1$bngy(v-/tEZAd}*䧕2)tsVPJ+L/e:?ABgyNnul ~T(-&#-_ɍ5񇛇~򂪜ehRSv|uw1/mKpu-b7YL4)a$ꃷ)=\Qb;hiC5ɂ-8fpI{s()tpc@*H{9'glpu•|rLu*Q|ZA@t ҼKmW:WeN,Ɨxwk- 1(Q|F#9BR2nBY, p۷1M:-="%$s  f? @|g1ڢ[ Wy^H\Nيqyyh7O20);oVI\MoA;U]@ná6 }j5)i]a=3*,.U | 7PQa }LA̅.K%6~?OHu3!16U{o)<F)G!8mFTU3cXuhWV;uY3; 7٨i; a(sƄY +Zv{+uM^~^ȬtxϔXev4׉顜8r6f%D~9 Xj-e\Rh<X Ĥ\bo]*?:_A(=5?}=v#Gs4|Ea0GS6<='j/bag 2C#wI& $NxR2oO~a"|Jth܃K͛Ke  _O_U>\)|iSqd+(;VhU_,%= "os|2Nt}ZRH6 *ɂdҠ*=<} _3,{تoCdy'el<.V}?ju9A?]U"OZzo9#kN1#}9-Ͻ5Zj:qz҂r4r؂$q[9/?{v$]\tqĉׂY+&ҝZ( xp%2EF*EQ"(/ ,rgoDUZVJj-Yho:Mu٤]\ Гn}Bכ&\M^7慠M&X>}6ɾq.mѵ/)!,&.xi;gd{׬_i/?>ܿ _5Vm;I`0NkBѾ6iwq[-⋑kCo6E kh{!F{P iL0ңiᡉH&ׄ %b|nǗ%ѓȃ$ҦC9vԜ;?$D-d\>Y7b}*0i>zN+ł#C6H&(neZFpu#WgƖ)P,@BP @6⍉Dݠ uIYgT6*ç7[5װ!a&-,D$HYLIΒW,reԷ5\ZA':?OՋX^x/*ʭ2BEMqj*g r[:Pih&PP(֞K%u Ruࢳ4EE^~z_QU6+;trivMV)iUe1 af\8s D%G>J63b4 GJpazFF&xJM<$ϧx1]+R#zNXoæ^~2qca:;shyJRWz}J9YQbz8e8NoPF'W.^PY+l҈b!ڝJм$u؄8j"w#n& faI^Y 6m Nb^y{Q}v:IMQmG{Q-@x(IGy+ $j#fN;.7& ?w+UNRJ,bCxb;LیTD椥7C6P#"X[âteA?fA Ǜ=O_ǝYxg5i;*34mC-rń{ov ?E矝.lFc[oڧAQ1<: MD[m(`ͮ}v.z|yŕ'Eg$0 "No<<>"&.E0q!հ.}ґ>IaIXPPImjl{^yðp!@ 5||u ń%=ڋ>5 (xF|[ձer|v;jLWGN׽ЉD㷽.c}.f΄Fl~&ym0~ZKa˯ PF8l LD!LDAXQݫM ?j̬,kw湷ﵓ lk23p_7"syߠ< ؑdm"qڷ `+\a Sf#B#"Hp5Bqʂ0MiVN!(:ķpCa ͆, B`8c=` zx8a{i[/j QQTpup21ĂCr3KDtzWӝDEzOr($Qȳ"]l1sT_\`c1<1oñS?9rJ޸SWEpwlWpb|2iUvN|;]WG-V bx6Vuen/KŒ K+Tb Ҹk_pȓ=wF H3;Nzj٪W:71"{ȉWg/hE k᷁;+00<:!1!DEzH BJ& 073#3,GH;jw&xڃ ˊ4ե].Q:FT}Fd=9d`!ZKv~dt JTG0xV+Â^W6'7?NSHҲVY#XhS wXpDu=u/c g-xly9hvh08/vK =9/B> stream xW TS>!$瀈X=-ס֊u@q ! d4ȠEV[ު.իП}kd=|ߑ1NL&c4}xu4I%q= pUL^a2&Y@9q|xUNQ'чh՚aIigG$%Ž흚:M8M>)IRB=5I1aMZKN K Є%2 #̏%$&%/NUm rU䚨3fzaF3+@f%Yìe1 =C}f!,b303Mf,g3Cʈ ƙa~-tt|yQL^2^y>掺Tsa@`74,{}ҒjǏ0N0ipm4}$R2}hBncl2L]]8t8(?'>*eZ ~}SXrW# Cޣjeer0^ 9CD)II)TbW*5"sұyiw&t!& M.5׽w2 {8G8X &'C]nwlb퉓 ka=so/KuvgdO=;%y\<ܞp8q< RgY2zkR+tWq._$ɸAKUڎh]ҏӧOc(&b.Žm:q![;A+4nA}L(L+Y̸"J*(7L@5ŐI@WubΚ N<jn-tR@$ڊbTV NF| Z㭩ĐHҥe+4w>Ԡܼ0$frj^}1#kyղ_).qjqbĉz[ׅ.zvqLl Q0zGgrw`yy9f}^nمw8߬Z8.JhM2xgvea& {C==zt5oJEşggc Y![r`,G've!  [;k΢DЁA5瑕 U$"jZK[ e=g$Q EdϷbHβʚ)!UY{jU75ԴTi ֒zJk%3-D\oϴW@Щ5;a*#TߴC~@v *]jAAy߮= E (DqA*,>ߨ M^#sb!.;N#V푲9!@6MGʡ&D'DnlWv4 =?:-t,BW.|yf:A=o q+`FQ2!S7iq!]#,7NV\=lr?3zLIKAיMmޕԃ[`'WdB~Q//YL-ZxVtϡngJ61|^ x|Ed4ܝmmJ;Tkho o{߇'N~˫zh.:cqv-)s}s\})F{k@38b# ;[ov>hW 9; rq}Iݝ,5ص`s'帥#CгyEQBƝEKa2H c))ucs)8&M^- J:zJy'rDTm@=^`DFyAWvy@|M.0W+)<Ȥ[7e(NCWktNYgϬk՜j%8յ.nAJ$1$5w'-VG#d(km6 kt~O ^IY\,K*k QƪA$D{ q7|NDΆ,GN6o,ZS)*D7CPANwA q:m$W4JH3@f@{W(Tx(LZL7#hseBIÓkoy _ũ_PQN2PmӤJ9nz*lm:{Pm4.WؔajXekMzlMI;U9ե=B>[2LƐAۖ$R{߰-棴8>o%EDr)T+ɦboKs3llendstream endobj 139 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5587 >> stream xX teN ?U( "vXhl,]i5]ҤM5{$͞6]C-mE,AAe7,*%/-8:sui{g{_&ca˗?4V4Y0qlC0 @2XLf@!_KNɛ aWZ+*+W0k)yy5=& e.I~fYB^^ʬII9I~7k[\FҬѧ[:!+/Kʙ5+1)'`,Y| 96 6oƉ &nK:sW5/YJc#1ɘx1XXXx<#c)c?#㷌M͌-'O2V22V11f22ai /3͘cYbWc_r]2n;DB'u_Ͼj̓Mzv;O09uӶM1-x~F93Ѐ|hϿy.p? D!gc)zPBg,vudĹRr)Aid~aq;*F#E b2`&; G] !S.։b9z@6h@Ǖۋ*|݋&o}ia_9a@ ΍+yfSt6J+Іw>#/LqPkB9R8s(Їl4CpSEϢq`YNz_X^v.= Vt̛&oE>ΗW9z׶~D$}ZPC'q`d`^Zso> B-8X1PB v^bwcl/.OZF?yD{p*@VRGѓ^| U+΢9h uNOdk@G2+JH|#z-? ֧2]K4*F5`6B |#u+@NjGmusZ-dľd^&%qTAʢqmDsGZ/EJ[vlS-L3Cz*Gíޞg( ]WCї~צ:،Xd߸CO̤#V>BBZ > l`E2dvp@ٞWLnɔ- {^A!/|HI^!se6U ~Z`e._M^ = Cr$6beKuAc(~ Jʌ%&0 7׫!BHmP=bE=cuLܿɟˮ!B55F›,Bq> 4B$EK !u+}eGR-ĪͶ& cpu)n΢ɯ:-;(s\ѫ]D慀{5tL** u`6ZB7#Q/?{Q3 ݺCa@0QoLWFxudž!1Y0.GT^M若\QVfA b~ZwXʠ8]B/PrTVB} _rs|I"O fhkn%+wSWAy| 5)D64퍟3*#Yi~cu\q跖J8]x[hkK :~h[Zb(6 z t]#% [2uDwKl,Z~W'r|y9yyRʪ"ki8hdKqZ[>nx[=:+pXv1zw={+Ǽ5߆sfƒIP*b`7{70 Jhbts;w)M&m"ᙍg.ϼ zZ:DOsTY|v;g}@ڪ,C |y-Y lGJO{uyn~Q1$)I hqwX:N^g l3U| x3ZѳCG=q?qw#3i*@ͤYz1=e_Tp$q8ʴkv\)_C nOޠѫ1޲(z9pgqpvw}")8Ϟ#iy#UcjhMUy }Ň(yA+I%m  ˚:ViNN~jbO^߉ zIy=_F3VAOF'!k]msZ`:(aq",t63D:#(eD\NT N r0e)!gU4G#O㑺PNNjͻGՂSsi*_@yy99;- sF_i1`|w5bW,Q7}:+?iqտC+S9+}W[Z:Z?yw4b7D1?%>P<q|@S>Ǣt)BI_]9 ֟/:ҋ߫M׿{ݤ )z [!"/0=?1`4)nIT,FU Vj6/a[[eQ;Lz`XK8T*pKbL6={48Dl_f\]^.2/Pp xA61ej2uT#P8Ei@]",nmަJWZb)z㤥pdk4JȲN]^S.p4։#̠jX&tdJ%h 6{M]c#5™Mb lE>~Cn=~dec"k\mN ~"Pv8lr A&J(FRQYs0wd*i3;F08~]UX+1/N#r{zAf;Ju <7HvkA񻧣ۖ" x0ZEk1WHi7'%}8;_~b?O-v:{m 907^ T(:GyE>5^fMtO8~p:v;Jϛ@;tT䂐T*ꪏ?0S 1 <e[|'ݓ fKY-T8'Gs,nt݆-0?^Miaߢ8d,7@RH * ]Qp^DL)3dؗM~cLz,=^@^Flߞcn7q qb-ʴm ҿ:ь׼L՝9{UJGury`cOzQTUSZ2%48rM--^{?ڔN2^<) xQ/@̶OYl7W Tq+X.ݵȌ|6pМUڳWI$]OV\B!o%QV"bPk7mzTjtdaTFZ:zs28ҳ^6Ľ1M9+qL h.*eURJ E wJRݡ%ZZ,^zz~tx2 onp1 d(*0o2iFENtV7ԕG.84:RS.,MM`6.MRV@z㈫l7F!'s\#sȅpvrC 0\U={5!FgYp!ytIs'?e*1Q燇M"Fft`!`r4:6>[Weꋩ-tO6]3ܟuf+{b ^9LF!I3nN ydffWַZɰ,^zZz^òss֯좖\yV 4"))E,bL7iKq@#iĖS$IU\@^4i /!HpB+Ȏ:X: _|<_փG/ԉUR6`(uZH#;~!$鈳̏^E*,7fjbQzV=hzFܣڡr`Y?[b7m̎b(nFh[,Ωv*ҏ?Cqάcz#RF gԓVYdDd KwQ$ ~D1ܸ=xm2l`oloIQXWX_Cϻ}$>q&ȂD$ٞH9*!9/w1Kvc+ 9Hمk}He^ȭ2穗R臄bEqZz9сCxh:x^PVyPS;@' N`, z ֲ9h):dXLP׿rM^6p>rU{'2 ͳendstream endobj 140 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3249 >> stream xW{tSUNH)G(7NsʣcEjѢX^J[MiӴiwN7)}JE^hAPfp#3^gutf.ޙq֝GV63礥o\zrn {"\S;gCbz^"d^ ys|Ybwdru@L\fGZzmRInNIbzR/Q/ʼn\IR2UTS|PRʑ<(ʼn;K+(HgyKItY^~iIXR#+s$zųTn+.dbIlϭf-4Z=,hbc:6vCɮvf* ]\zܒ*ռ"\˒Φ_idBdKՁ0NB5 GGvBq̠[-W ~|rEެO12hd3(z= I.AGP>RR ,#4V%Y2A *-a&A-nl>{I%xG֓DHa=TA{Qlt&6(-]Q-(ͿR!{<UE,7}#qOi`Ja [ ,ވ,ζX;vB FϹ?2@N@tUu'~tP? h wNC55ujHƽ8è0JjPMZfe8rS{Z{=J-ڝ|/x覻>oje*f?[տt ;7_4{C8uJPUZ(:P$)v)2b5{彧QW=ʧ3CihI#^C3bJ2(9VɏZZ9aH @[[c_`4A'b԰t&@HoF> stream xW XS׶>1sTD%=7YjP&0#2d%A&eFAHZqWgNj굵{_݋H$NoGH!?Ix1uK)Xk9T" HY#Fn?~Oqta??Ob+Zo*@5Aۃ?0qf gV13jƍYìe1c;Čg0DƙqabCf 3,c3+;Ɗ b9c818慤װ^q4VKo-,^6~as*;oq>"ݲUEX1}AXgNp .)4v!SP؛C]M$.R%7TA=4', v*9zb2b< 4>fhP8%O eʂDˬ:/;M(k lȓK.*BPG9Й~,J_) 6ֹTo#Òy*Vz)|W &-qܟʌP\ l- sHb :mZVCl[27XEykƃ'T|΢\ )A Ei#uQdMvz  2 FDR->ViZi͛kyՄ5F<m"Vx%˂Ys6-DY,L6o4E 2OQ2?LJe++т%3~W]VC XkB!wuTeeuqk++!|g%nH5T[5y]ˆ? %A.=[u!k)qb`_֌^-D*vdL&)QlK?4ފ_5x$fs"-/ vJ"a! z(9h4"p"ڀ oeP\zRs$(}+*k?׭go*>WBWÕRVR$MFo3FSVY?;Qga!S^)o4--n uNs4O+>ߍB]7=➲B0LMrpPTl#~]ϡ2@AR.FђKϼ!:5.JMNݛ$19[d۴u:< aWX\ey@ `9ƜbW.;mM:o%\ 2DݮKhRu0Mdx ҭxvuGg7t9́Zo7l͆8ofl`ws2_G3y&,ʣ8d]} j,R{?*ˊ@Yi<+WJ9 b.8n>RU]t4:_cPTdTwk2 5$3<|G~BcIIjwdpJ pc< ҤR1ԸBw])2pڡ lM\śe T*XGLw*V_ЛK1.&9 3Qwmaׁ&=MbO&\h6q$m'g}: OH< 6EqtH*dV@;`N_eGb8=)R$$%P63C0J?P {t:%aR?PveM-ݠ'K;V.x_}# f.8ARGb8٥$ .c5Y4n'q"~t̼ݰ'FOS\)8v}k5\՛߂?s|my"'Nڅf/ B Մi*RMoSo[MmE>bQDAQ]dLjI!3C#]O:aćDd'~ J7_Bď,.Uğ~>Y75C2~?P/^Ml|*`ktyIȩTB/1 O7%9p*ʭu. S cqNi~_ iڴ]MAKhPڝTm7+oh8P  F@cbc d$uZjCd J|ОZ(ED/EWor_N_o|w-xU~i9NrtrX t#f5b{Oc5ւ w`1ߑʮiW뗥i`ld8.Xs8%lÄnF'(Ņ(l?'bV,*-0-w cqGi$H1eq*MfE4#v.ޣ H976k"a1U|ɗ(*V8IV~sfb@N,YcYZrߵ}beȣUI-` }L±8'lЄX}Yf >&38.G/K%-YkF{|a;c+?Aσ hpOaK{9ѡZϑ=:e*$"VB&tv_[S$mt$}?pqOErWcUo7%˖9UſkK@-MꗭaGVgճ96(q OFVdEK/yH*@Ln7E;DmK7QM`ܰ%<#kRP?$`a id|:$+t/❱Zm ,E[ۗ6θ/ҙw )9'ih+ɂ3s:4Y$uY6ZC&d/{ IqWP*m=yNд~ & M Ҭ6;PhWأ}`]n.˼ٙWN`whԔ;`!\v1j{vH3)s ?SMfsik7z~l |RMIԜ4?BG8SxяNA8::3fn{koa}͇ڣ̆oOx/ڸ3psE_3U9DFγm.XvgBpͮ鬄;8tac];:?3 \\O޹ysmmrtz&sRN3rn,kN::JjfhjR6OxdJRu$aTL1` I#n%7NAY(q> -2ǁ_V {b#e/de͙˄ӦTk4i1; , /+uy(BfL#70+FaahQgnJyWM\'r_;PBS7zJ/F2 }QOѷ"> (쯷bz &endstream endobj 142 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1303 >> stream xeleǯ.5[^C tuP',n+[qmou]nm^֮s[~  S$& (F`qMO>_De {K6VL ˠP '.Yi=UB"Qzu}!/ eҍWl*SҫkZBI44J"hWj*,/y m7LMJaN_sFIM4 *}N[%+5*#MjN ^թZAVh=RC#/#rd!Q[g+;^Vq^95 }('`nERc1 ԁ7[+ohvb7I쭙gƴiaC><[a71 1H? P]v#̞>q~3s /}Tݍjb=@ Yd;(LrJQU/ۍY8eZw0^C\^$v,ߤv]'MaBSqn]:Co0TP`AAhz@m}~cCnleV,-jٵgo9XaƦ{5V_;o~Lyn\K.2L_\Wt˩@2F Fq@m`(@;dktwס16's!g}-f0&myo@&&/f:՞mKSмn8t $ n#0t'&m\AN @йK eaޟ0Ie̋ vs#3bKɣr{".nx^ZX&M2:\ۤĚ2z%eXMu+ B,< >}QӵZ8NO uℳM zVE]b޳P% ~4I-.-Y$s_G:"l4$4_G9<\Yy taAr$endstream endobj 143 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1474 >> stream xuS lSU~o7*Wa 7'$2``ҟu+vmvn0q0' #SFHD%u,M47'sNnDfAbEuMQp:?dSE}#/lY#)cQ8"$u_מG?5 Ō|EQIɂي" W)JCQZQS1bFYX:gh,Pj t g+*Cb%[zENkPT)5bci ^BWJ^g|NS3fAը61Bh Rhf6+*&Ve0 Ʈ!̘6XZ8A^#=$^#}"2*LPd8E&μϻsSpyM Zt@hǁ8yAzS]8oO.aq)-7p{]^a/~)yaߙv♜9\z*P?}|彐6Pm'?~WtU zZ+{jʭJ*7U'$ѝ+)g,ߜwTVU}=<<*BxUzX6oC)lɆehd(uM5eF,1wy_PAB>ֻ ?rAegn Y~d 5|-i8-t/%zy+JmB>)Zg| Wx^8_ZfYh<݇HY \c& o-Ҫ+a }_LB,b'V(X}W0Eʱ!Y(nmKr#}l9O#htKXu|5P8gl,EH$7os>8:Z?d:-L}el$YDX%O>~W%=_PP>Ytt7+MB}ڪ_ɍ.Stӽ՗mi4@6뒧O]fv؂])1h$0N OL=1$$dNdN##'HuXendstream endobj 144 0 obj << /Filter /FlateDecode /Length 6700 >> stream x=˒\uZLyM6]OnPJr\QQeKĪ8R&9$G4E}}p/nwC"w\_FFW~R3>{w&_7W7|#}tm.r^E؇7g{y}VD}s{tv{ mPBw;>ʰ|U&2:-0m,ld>|Wi^pype#saۻLåޗka:c4F81=>1;_~qdz 'S)׸B8H+gAb_VD@.ޜc%>͏-\ "\[,G#xZ-^-.:V/5( # >n5|@B^_d6lwyfhloa vp/c{9qXSSPA9sEv $Ji,Ќd|3D[ZFDoU,4$|PKmp8rVш;eHjr񛋧 8F*IpI8C rs|o2`BFGj:Ȁ 0o'&V^H20/iaSyUz=0p+phI]FkCf66i"#rN\M3j-үaKh8±/߈ydBG/`Ez畭$(̓4zU ^0[^ Ci9I{9E}64)骞8qBۘp ;%XΠ 2I8:^+7;')q ^[ɓ^ob #[`g1"cle>H{bo{af\dVxDa~#R?76x:q89J%'iBp4;8g'50@Aa)` qҡ'H;Q~ⰜA)(&˳أW3WB0!<'A^Vĩ!l SƂ:pI]ҟCB@(:( 2@n̽>Go ޔnܣ}U_*IC'CpZʀc0gkW^kx㒒[5`sи< K pB"GHX.8tCgrTnlC; B)װ.}KOcqև >Ix=Kyz' LLa`{ Bet쓴.HR(z2ڳ0gx 193QwCoѦ`Δq[B7:Gp:%zN&u :"DURplH0OyԓƇzdP,űm)eLX`q^2yhTE+7UA,$_$<|P1%EVc!Lh0 ޲D+HlhK5h y_"r٬o";~.DާOW1v>*dT(S#@QtYO;AX:C7"n4 Ƴ*( G]M)e!dDtaw4R&!3)"1MӋy$ERe:xPw&%I+'PLLh&\pl|AȥpnH="+.NTi՟F\hʠrG!AֳhNUToȐ6M̶ɣ ZĽkA|p37zw(8祩vNTF!vɁq /Ivų V1[C Jg]Z٩7r7zAjFدW^zh L5 ɽ5y'x-=)Fv ) n^~a0O{{*S~ރy3{)RF&)Gl+=lX-u툊:'DFA,mk8ULG3-lVi@>%p+;PbmɳNX_ժ0-R[  Lh֓;K$ C:al0Fjngղa@3SW6y7E~ŤՆsw~`j3(BFO"S5O\lvI3f m3 K;yrlisZ2C*o}9Z5x3T!C?N "="g{y`M`2-(:$ub]Yf˽n`HO+4A&-@ӳHrnYҙ^nM&"nW( lM_O_-\kkV4ӪNsћՁC-f\vp )R hN4,LKX,4. eV*@R>V2a#Fo,-8U!J6´Oq@U8X]SB(!t ,B" 8O/IҸLݽ!~ԇ+A+,A0*5&wD2aQ@L`Xk猪Ih0  /r2뻔~3lnG3u#'yw6MSS%) ިM8 ޡM]CCexÞe 65}1$b3Z696?9IX@9'ደkƲkr ECOʍc v D`v*#NpKk.Uj2C<څ՝q/ʸMH+Oyɥs$v l#l>` X r:z#pê$F7Ɓd>ιR /gKX+O &u}ГL;Ĥ;̄>Ȅ0(؞6^݇kA 1sI7b~Rc+p#iZLWR΄,׍>Vυ[}|lrź[hb}qM޻.4…#A~qҨ=-lf:$lMh 'kz -Q$PP;`S8*2SNBjL`.:'ri$RWL'i\DVEHyNUo,7Zhn]P^ {gˉMrfjXdO&_7ny$V'dy&َlEܫJ8X)K0%!^:HZvu/|T2~v1[ !>AQoV1.XR r0Ӑ&seSxc+DHyDm H(CїS0(&Y ]׸Vs9"ĆJ",Z}jF_Y,gkJ>O5mu}Nτ9ث*${OV2.2]&?5.S }*yd<7~lo9HC^ \YCJa7pnRMW E W &i եT4Z&_P-K@3cM9S7<*s!>won\?sV2A&FW,EJfn[1i,R)ʥJ2xc?7cfa

"[ILVYGXNğ;NǮɗOMwzϣ m.wn;]@Yۡ㺀v"Nⵯ&$O\vdU[|j܃ ЁСMιQ9_^ZUfGj 5 pK%Qk{/Jma;/ś/(WhU:s&rϏ[4 `1u}Kp^1L۠R/Jړw 8ܛdJ۽T~I&z+k\j=()iNW9pj=mM͝S\& HwJUjh8 =&H*"C"(*:Uե✻WԼGg $!tG@5<@i"bÏ^d>P)̞L`a&"oRW4 ]B*_g0 ?(7O!݅9uOz'39K*ra$l0v0ԄSM۾gv^vtϑu#ѥO8.݇8Bqܱq"{AsFʑ?6H}l%كί~uHuV8;D[dU}R5 rTVYS6i5 vѤ#'0+x3%ݴW)C|x[Β:,t:D:XM(*BѬZۢ0,k'G[$;:KMZlL?|1{T ~̗&_!]>Q)}j2ύYL cQ>Is#Zh6}gƭ~ؽ !61?(m7 oK)(\/u@.=HcVxPq\904%޻j nwu5G8"je'=3H@zY*οo<˘2 5O#z\L`7负 6)Αc-fƫsݘy}@V󓵜~ԍlڞ> vM0nqg%Sk#>pQ`Ru/2CaDP{]qs(H#`R:` X? a7&]Gі}a]-XߦI)$]IA2$-ގ^H8'E)"Mmt0c8cJ,TIw8?ЦJƔ*,rl`Pv܎02zeFwu1 yI(.~^>4x;ͬ\1Nwd}0xDBvE4:pp7m6>Ky^tl?\||k_H,Zb^chSv3m|C|f)w7f~J>)lуΚԛVh7&RAͭ Z9oyu?@5}bٌ3e<|V7yc W}L3)1{[QZ-z~.+_@'hg`vkfo l>'J? +zvD>endstream endobj 145 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1247 >> stream xULg(6Nݎr☐MeEL"gi-/Q=\H@ l8`An.4184Qۜ{.;d||4B4*-)<5ZaChwavQٰ(C/SFv=xTr|ߖX,i܂d wٷY\U & Mmv^( BђKKK$˶"!+ FͻJ{?KmWVCHkp9onZGM<c7Q,\QѰMiqDYj/5Ae,ӣ٠H]a/$ &o:a:dCq Βb(-7Gv;{ =S͆2qJwhNEeۢendstream endobj 146 0 obj << /Filter /FlateDecode /Length 182 >> stream x]= wN I.KdHU1!CoMUux>gI?\g&6ߢ> stream x=OkPҡNEm&HaBE|]ں]u j٦5S+l8-M2;|AGPNg׽+лq Gcg\f%/g#P1o EFcV&35nONf}를DXH(М/aF Ѧ'&*JZfQD16^ hVUz( ~KzVeuS,I$D<z@&xV+篳rݡ.UfPCJq=aQxXى\r;LF}٬wRqnU߰Z-hLzAfn6lk&2%in/SԲmIp+vs&[[<_>ޥ>BoE?`}, a]? 5Js*nt{]!w9?ybendstream endobj 148 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 923 >> stream xEO[U{){du^͜ۂM th0` dV( vmo)PJܖ^Z bE &_4N3ezNs=yϡit[`i?]2ԔU(>zk?'q^8xU[cuxl47'ZuxY0ͦ];Xӣ&$~lvl4GCoiviӀ>z.o1{k|XN^ENvCKT T-m9Psi*Vś*}_U/T^uձc토<ˀZVk Db9Xwv/{j@Y집18H {~f nI,_*095YC-Rd^6}c9;(oJ_rXwΥ8WZd󨙵,KQ@ā,º?fv>TXJ9g}Y&uXD%Rȯd՗CE3%38\y&l:ńtf`)LS~ID t]!Knv_ qo_y#g\{Lgq<1"sc5҂frA$ 0ɥY9 XebHOʗ */Vt彥?bF5ͬ$HZdɨ\jp 8!Fޓɋ."_&yMN,EQa+?<,@> stream xXMoϯt?dnĀkb#X bIld7{[tPG{UqUSn6xeQǍ_=fXMC"CMY1 &amj)m7^ 6?R0=+uKUa ]391`2f8bDgcs1 a4(wOx\i\ؿ 1my3_lnmMMF%.%?^5MWpڥNHo{ .%{y;߼&q;?RrS9")mʳmH{'ixG'~&k.%}橤MZ@rPl\pXF}o|blN5]G y2AX{60"΅Au8Sp>րhhh Dq\ISx'?"T^8hGEv 2i`n%HWpRp7U iQeVξ VqQMpHY3|Dمz!&"~J򢤵[ /̄b}<OkILB1R5lHvI1A,]A%AwXMcf @ƍQ)d,.j){=ہmCi~)S[ vOu{>tl2(ϰ`}9O`Js*"9 NR58$S 3eӣy92 &ՠq0֚Y~ںruD]8sg5} 8ǸeSp|zv^4+tp|jJz'iEy<)V"v)دr++!9]5Տ1_ԇB)NQ|'-hPHk,It !FC B!(-̕^yO 3^ϲtR.v] o]65%{hx?QH҈(wX:~MvCjdㅙ9C$HHi&iG 9Tqfi^n,9\KKrX']9|]a/rw¢L7 ~#F|;aq} (N#=ظxa"!.Y>W4!U]7&-U5B)V*mkp@QWRy0XVE:YߤVtb<6cNhE )Ͻ\'2a&}M/J~.}|J +gbM"SvW=B!36)..y{#$)3h$E\#,NN$>-@L $][,0-0kRqЊcQF"Zqp- RT~, 0㭑Ao,?UoE/*/MZ%D$jxhag,m k/b8 ߔҔZ2 \#8j=gPfx ev7/_MA5}粈fY}R V$ˊv}*F^Ɣy>i7g'kuxORDY]\J,6;=K`pޛ*#e 5]r5*\"M.nS۠JIFG@"f@c[c(t#u$?/'p$Z[Z#{EC47 irm\ )M̛eLijm,eeʽ9<7@:mw>CNE<fɉqY$G˧OHPKlmK`2zm^LP;f=FO*KyJy5n L*~/dd+piͬ$@\uWo.eendstream endobj 150 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1540 >> stream xmPSg{n m*Z&u .]/3`ץuK\$nxX;I"EW jH"QkH#;۱.;~:yv~9s9)U E4k0&%NOw '&f@ /b~5PìCiX%҂gI))W&&N[A]o̓bq[6Q/}*I%kV(//_W\ᴼ2}M"2ѬKbQ?ӫQ\D0N;EQ6G+m[T Iʢ^Ru*z2RSR*MLVLUعrFQ 2rj&a[f%5q-`֑ &70t{n@CkG J3q!`5L6*EiyuXv;Xp*.OEY7#` (LwݾBX̌{4`ԇA_p|H mgu&4‚R Mp7Me*RjbCD`a̋Fnȏn|7\-&$' vJ<| Mڝ p_[ppmp쭅  ^UwJ5P8Gqh-w׽)is7$;^}pprM>09U9{7P|)K:BsP⇃Bí́cqw,{HҒԖW[w|ǛTj'uya}X?"umrDjb}#otq|2" 7踠7 >Y{]͑&cɀb:RZ>=Twf)PWk? q|OR^1Ou\ڵoYpYAIۋ ¡;;*aao4cKYD8瑩O{'8<-4x=L ŠMQ{ҟjݱ`@6ҥw?gOhz Q{`ɤixk^$ ȼDٙ۵KՎN6\uo\ϠNv@ki[}'rԅa>pHeg.}s닝~!S%A 6 fT;%5E`bQAdQ*924?\m~D)PؖoOS'v` j'Hs.gbNg[;KpHFZTϊH 8Fkendstream endobj 151 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2121 >> stream xU{PTׅWAL\]y(`jJ$Ujeee`@\ka]y^  J1혒8Mmha=H1m3s;}hcEӴ42*zfkDZ4J,ν˽%:i"RCk_$4ۓtrE|a寇ΖW)ɊTyT.Iב"Y3$t𐐬xUzZ="`<+Y$V+D"uN"^?I.3RdZy:QM(h2d+ےwTSϨ*j*.CMPk@j=ZHM-SKTHM PE+OGm# J>q3ѳ[:]jyyFO }K@@;Zݽ˷0ड5I1Nk&FYWfUPn-P/~#Jr ~8ia9h>ݴ C>'.6D~B.st93'aboy$cv{1{7p3,_FY eh5Uk7ʖlc}XS^B/IH¡4;AF{hSsBW{BۘԼNH4lRo+qd >[1VoqN˾K7+GCpN(_wDT@q ,2#O{SUk`Y VIjuz!:.T}I4x.7BJp) د}&M]1E}`goRY`?0KtYϨd9P m{sEn۟lB{jmZv&KGfAϧI.2Hr{t^V;%I\nhOj%ʆ3an8 g8.C巙;)a2'ay)LVkI8) Q؏uJI9D'f\wJP!( 5OM 3{ !YObt۾9:#㞖 ]0Wx4$tAا`jށ8AmiJt,E^e*[c|g a*$h(r]U0 zH&k=찒ӘanN0Ii@+Y=Cr!:q"(o\mf+0Y@q`y`2M3p﫨l+,b?$9IDFv떇:_t*V(zNbA4X[KjA%6+b;;|(Q;pAw%~O:58 ۷HvNtԒmG̥CM -BYGǀ=ۻ5LYe^hQ-O2l%q;|n=U}SgfVh9 p_͊ںzCb#v`oqht7K(~@o8 FpѱGL@ϡ ͈,LKN,-<:+eM~Q^6"H6葠.?$\ 'f}wBl+-`gc]@e貒Uz`S_A1h=bmidL(udԠOD\EUK wEd1W'#zkt~8lhZ: ^{8DG@o_tЏ{"1cI̢O^S`LhٴZcuumpb{"z)?F1W?z CP,K'Y[F4.WuO NrO$$yؽo}6 x5"\匁9bMiсAA ,GfVfV[]W[h#T!uYCaˋaP{vTx{c)Pendstream endobj 152 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2527 >> stream xV PSW1$Z ބJvvԖ*$$ 3|>HZuXvg}ӭ}OCi3;L2s{Q~(H$۸4|B4KW 8Ɠ$1 gr߁4?Cϧ"*$Zf(FFF*~8R&KHIV)uʬdxN+|<]Ӭ ]DM{"$TKWlT(e)JOR*|-}G4zRS**dkTDmi!yCJ\2=c̬͡u ,zD%P!f* RK'T KQrjH(hH#:3YoO9$wI~/],=Gۘ|0V xֺD=lEFM{̸Cʨv;n˨"Ni;j;N@rHॎB90r*~K9]`{B .ѳ/L`,v .Q$ .!70C|g!)shw$v'$Ni1}=OA8?o+NH-ꗶ)\ yļh\( lP4 Jp-Ah0QWfDi+je8c&͟__^ۻvVq{Aè:Z]Tay~za?skYt<@%,s a1*d(.ӗq2wn業T~%grMzP3۵/=\lV)_|0;l6Qց-̗]_R'OTo̪jי"QL;g+J`$m'G](-F ((V/*L˺.\^oUɩ6nZ <:‹PUtXX=RYsK$ "!NRK;FO;\JeF( נ#rDNu,Q zUbgv^vu1O-O9\iB퇃<:,^JkNɑ@MB^tb!sbL0@lF8J,&S/p Cf+#{Ok-A+OLߔ9vS#@'AӾ.щwЎIXX֡mIۀMQ;ںA؈s)Shռ*`C#\Ֆtk~O~V1Ԩ.k{#Hh Q (+# FspoUyUhQ^_HU7¡=B\WFq$J}+H#mOWg{3'GVKM٧!Hdȿ %VsY_L1V|pttLAj<&{ yvYxBٲv+T.4mLvc3& / m4*fNUQei=֑ܨnAG ;xx X/ I`aMٴ\(chjhE1󬺭lo?Od~w~fMmo?E۬cYNf>'}E`1U8> w 8Tqr-5(uۡ yXx>}aDuTKP,숧u$?Ѓi[;[_C5e0385֏ccds)߶so4QBw^!7J݆Nuޠsv9xu}8oecP.̈́NAzYzK}׌ppnj-.t3¥$` =3raC;ԥ5pM" G9C$%r`+%[yqO:-גM /ȺX{|+b$A%_os-"0Mrt`G5MGaH1^aSF>Mqœ=,gMp_ߦ,1txEm7o!\c[GxN[,$a>[!LRKdxJK-TArUA> stream x>CMR8$vz-  ]VQmqCopyright (c) 1997, 2009 American Mathematical Society (), with Reserved Font Name CMR8.CMR8Computer Modern123OEpbcVs,jŦf,hjዸ⋴ #h,t`‹ ' <02ZYΤ<7#B? rGlwYx?{FvťbڽQ"DfVT@htkpozc,MI%ڧϋ1# :Q?f{ku؎׃$Ena}{mltNx~}vCoa  7 כ )Cendstream endobj 154 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5084 >> stream xX TSgھ1zQ~h!$Y%¦ LJlZSUm~s!js}}}#|<wQ7Ne8.܅{Ҹ~_)=sA}w@k/ܛx iyiQ#&Μ9}L f, O  Edž/1Qᢴ#EYǧ M'L;rL@j(2`}xRxbJxXRa(`MHlxƽa06>Y( O#bfB$Q򊔕!iaA""Gmؿ1:&v!3ga#F;.xDɤəSN# b(E#&b31B&ۈEvb1XB,%&ˈ b2B"@b G|b.! #%|n;DO1C%vD0A,;C-2) Q>'|.,']Gu=DQT7u'}wY=x|ϩ=[{i{#Wb?~J=I}o# ;o$9 xܸ|E%m@]aAH~(-)} j r,$%`-VtESI#U暪3OuH(YO.).tr~Az)Dw $a?+J+c#F0]C>}cP궝 S=adƕܯS]q;lhs:hܛcQF,\-{p(dhw/N !ۥYahE~DNը%yȘ(j >j5;0es#>R_ʨԄّ̽Qu*7ƅbNZ(O9A9;aڟo@Tn/RuKJn2r8*sRZʢ/UyE*\h։a_.+{̘$|= *Uo@P;W8U?P홮]O1,HYqQ]{G]B-F^\91%1YP0=ɻ5kG˰d kJGm GƁh4fȈ1oK86LEJ zNƁl2FPlT\(]62PKDzL Or+C@k4W֞,1He@BdZ^T.Rf x@]Ps{3' ͬ&W3?ڦ>s˃[RT;X%<'0w] 8=p]o4.F~U~Hp6@q \nl Z-KEGn&_}ig27QdRN%Q jDrF;P}PfUPBо4ҋ;"$nio=e>>>aH`OqUW1hK-vB㬗N<{אN^ tw ./ZʚeI+ey Te1 {cR%Hak/ğf9"@8&hT`@!v d3*E":Yx9qM7Ȧ6FZ-6*1jL]z.O)Յ&./s"B$@e]>&.$-=&3tpN8٣ ngҽBj?;d^rNPQW-3q6|L/Zy[urA~U/:] txvθ$ B?u.J/-Nt05E| tMPx0:^ܛ]P,!kh_䬼z P&&B̂_|V1Pl27 +ّDEd^j[SM?3v`l4hzJ1eCuekoZ,u q\m*@H+IWfs29r i% E~֬bTY,0"SU;'45;G2#DF6K45+1+G+o.Y./.,Piա0ObACee4sva. MhVg)Y ?,Ȩ33{.Mnh`..؊ܫ`,P7 eζ%4 1L< T ꂊ")5Aʇ*Q--R/sQ|(DPT)r6:1Ecnkp‡itR#VTJVj?}夰egJCªvo>hH|mfCfw|;2~̿nsm|OCz y0ZBߵwF +zH{+\+ xxyD4j s\O/cܶ ߀mEaMIϑ+U$qׂEJ&E b)yAQ,}9M0ӰyidG.µ|n|c-ϰcsc "P-*̥Y|b=f0a0 ċƐgMbE^YmRUßϢ|c–yn6}>!KA(Қ AQ6i2؉Ӑdc؂ux~zp ~>Y{.,fPI9S;֬/}⧏0Oϕ~ Mm޴xkdCNqeUy93j='<RUI5Ԏ q %k%iY#l,6eGaݗ(ˎNI@%-I+3dS&YLR[Ui}D8_\Qpi/$puUHB24 |IeeJA'I4DVtr˼!6\ OC? P+X\pw[XaպMW^N&Fx6hdNbT{æ.vBʚ M6l ʤq;>`ag+V%x5A>;'3k2e.|%8%'[XaȻ˿]a!*hSRl8 :I A1N␷'z3xK=+:ql[d6vuuޝ&KSߚendstream endobj 155 0 obj << /Filter /FlateDecode /Length 2568 >> stream xn1!>-͸'2F H,ȁ%)HC=3]ճˢ#AŞzuzo梗s g>Uj~u7LO#ySn~~9+>Z=Z!lgs";)a셈B->?R} j*/#oEC]pwn*E0k150 5Aw¯_-*ATA~9J,Ay GKe#~{:>8ZY~VhY mѴ3 [1B 1T,RO<]7>2@m}w|It~#o;f wrkKrIe?>(hOY͊'̈́SmI6Nyd/4GF'xo2k sXTkƿPHap>?䳥PRuԲB}vAC~ا+F/Q+;<ԍ$.q8Ϧ_˃bhePޛ 3zef+*d} %>5B߱c7]ǘf ˸: Ⱦ!hbjd);?련ѫd=먵AuA nQ: [ Q;> M^0vEc4E@\?$&[Vi¹PDt*\ iUx19< +¢0gEˈʸ%'čBGYhb{YhR H’ x^,7Hۄp/KONf/J[Δ"֧HSxpr`}61nHm3Es,ިwYN 4p%2c2tE #T*Nд8]ze쵶@&>V^FcPN.b:m )&4`(ܽSL %%@泞FOOlM V"¨'4uNžQ gxDk>6tFdVp7؀r%oj:?!°}f\z8kh4a,A4S!#iSTvH# iuSD!FB~ &@R-2Q JN4bɒC,Y2 95&UڻlYU,Z6Y" PN)4Bpa* ͤ*1RARPjxIS T?=X r BJ5qwPVl؂u\p(\A2{ `ݨbݔ a,3&' hIgp2K5maVmY`ty!pa9DZ:X UT>  WK wN7$឵Cx$'3Fb{^@l|e*J8K-l_~M&fv~Ӯ@L}_Jl@hyEDYHi.ƹNoMAh׌&= 6 lLhlzjJQ4PiX{ER&W$p܏@2_- ]0~ cdq 1/Riø_pR:`Cͅ'h8(50Ir_3g}h(|Y5 S1OUL' > c*Zɰg*Ԍd-CkJOiӳ~73>uĚ:^j3O&r`i+^0ޚLߧ PЋݠ>q!C78" Ӈ]֣o`c2ZiuByuǬG-S4}9QRT30{.0Ş_G4~@3x} `>8fp 7xU FARɦR?@endstream endobj 156 0 obj << /Filter /FlateDecode /Length 3642 >> stream x[Yo7~#YxzyA $; HEkFciFd-*pZr1 ͣX<_/XnO8y~E^|-|0I\+Y_O~~X1Dr]tw54Vk~ݔ/]3Neu@jr{ύ[9YB2/_Ge'jK˕nS/":>]pkJJ[ϻY0@1fc/lEΤ+^W{Ws:KB^) dpg4c7ca,W.Om4"̓K,-{E4,es΀YoJ@TwFǓtӲD;dJ4 v8.r'w^%Vr=s qq)8xt*lӽ\j D Wu/exåO5;_qFMˆ*u.}jxh8KAWW.V & T%hD2v~GynDނoB z^ǻ#8| x+Y2`y3`CCuHYZZk- Ph dy.Ûr"CgaDM'%$='[uҠ n/mXX0&7aur;oc.  ɕ'n+<,.*0mK2_钋nx. ptɴyΕC%):8D%gŁ4Lö< <-'tR04(HL91 Zqm){pl)*6T2̋0L#W75`! S} 1;]5ܸEgT`)i_!)v.C4C!Y_塠/4xNa*=EWj91GhvVM pdD0:FJsJw'ũt&q$ا_e]:*Z_jEe,2BhZ1pbԯ5 ʲEc[Ih>4 )h}bAeU\"cBeH#+!wJ^oŌ)Vq{HN,7mÏhFˎIʀ $\c\ *&\Ey]$4¨ʨ/MwŲ MQ3J{F«}Hb҉#off4¹*X0-#O ]i]}i]ؼ+ߟ6Opʶt)?ߕOd 1c{g\sG﷍q L3E=ѺmY!C&9|glA@џa4 97 k_Z~$iZ (-Tg yJqzJ(2[7$$8 ZH//q2Pvu% 5v5~:/[7OuhtrµC`G|sȀ?\] *YeD5?C}MQ%Ȝ瘇c`*Qn#8>1IF$$(n!o6c}Lwޏ !&{QW-MJr~4e?v!N "p$`,l2)C og M(V9oq63/ 5gҜjfHX]oNʶcZ>:#bISf$ɴ(P遚 P9W%UAaRDL 0:b ^d.˒RweEeeÀZMT ˦C\$V,l\fFaL$6?()IB;$Pg Νet֢F(/fRvJQp^zi3`C/< 5 &ŀ3HRQQQ[ T16"\R\r8)8@:hplp2a)X_܏jڶk"[<+/WshRTڑ-h`@c8iB9\ՖeX_c4 䬊aIAU K^hR}u-utrANkϬCiw-JGlʞ7i 񖴰((duBFPo1r(oݑPD% UR*Bq=蔼P$$lH'we O"C/+pa5!.V*BĔil{0`|0/3)ۭtI Չ v&?0Z!ޞ)7{Ы!E \s8Hqbτs!M) u9njJ4WSѓ;MbO q7lKĢw1*Ꙋ'cLӲEN>@Usܗ烚I`dB蜆ٹG6Kb#[#uGnvV]1c3; -@L7t֬'Xi8\l}#pYZoU7{3A 4Zs[nrX1Fc<o7["g0ՂO4@-*g "/gC#֪}XU=՟EeY@0_!&-*8-G;Q*`¡YTUE߄< Iܴ.Ηf[%%۽dX2_7_ҟײ,5+6[=LGS{FGfaqKXx$'hy3xj$RDxM 7d;>!>| AJ'#1\򫃜#ŶiπҒ8Dhk# ^M:J s>0=f`B='/H&ƻD ,hPSquCIJqC3ǯ^W?h6yc G=9i.d=ypܚQ,aj.WuwO%}{^ ɯl~1 Uʼn)*DSԘZK!>l-%IfU/~o_" UA;$šBsEA>QtZoQzYqf!y#zoGg bBV\XB!u|Ʉ<;m`+%,vbE_n^LixɶzP5R{b%uA)'('endstream endobj 157 0 obj << /Filter /FlateDecode /Length 3394 >> stream x[YN^y?6CHDD8VvnȮ]F,Z6u  \}Bū#xu_'/Cf>?J#k{iVyX_}}=cN,So3u\i!zd:SWԻHy9,S¼{ZĘw͘7ĐQ/V.֧ԍNged0N>S2 Jdfe/Wr{?Lq:!#+m:S2E|~~w T] !UdR |.98]jb?XAhR8MZAWAI$RI{ 3HYC(lY6OzEU>4LfrϮ ߛfG-ma-=ޠEk%f˕07,BYQi~Vo>Z%~azĈM󞛚o/͍pu\?+YRzj*q+'l'̫x J|N:_tBZ;fI]9͵V7IN pM!SqԅGxDRPeCŘ1<"{+D=2v[8t6k4ɇ| h+(#pw]J\C3 s.yxw+%0WZȨpq .giE`0뎃ځ8"w?,wi1\3/B3^<=S`H΄5xn;nx#W`"hR%[A0bmT jb.pJΞ-ln>-~Xj  nP$90P{2]ΕKZ5qLZgc/\=7:4ۖf|g1?o^*>[[ww1d.6I4@#NVr;0- '%, pi9bfFř,#==v}S?Ca)l/tUkldD{T@Ypi~)I[U+A|CU V5'4Ҭq射FkTTP"5w,-D@MSd6."r1 80 GBSwKlD'h BhHzAwP3f&yoQ-[7E_ 03Vxʋ0SasHib:JUD^k(\6ח(h 3ɫZN98ۛ}-94 uL7'vǨ9>$C*c$IGuT?g1ALJφPLf[a@Se(ȼď.ꍤ; bsF=XN1-!Ai ^a'b\ވSQEF +l$Y{yr!YO/0ޤefoihz'yZĘ6q+y9fhvNh!!F:N} pd))u M{@{sur$B@#H|A:ʎ8%zhxdo]kO1x6){;er<-[rVOog|edx9R%̈}H Ǫ vIAgL' ^CZu2 &ɋylu!M3t233=fsUW.h:B REBR@j]8˦6[óYdx;i*YʺAbrϞXؒlS}=+ U!3У/Qסw^_!91dwm X N \T!~J0qLH܉?'>or]3uM|@D5S '"Wx{rk+4MvI~دӬLc*`Ϩ=p 8%zK~!Y'ZpUF5!`YneZi*EzL= 8|'wqnq =.)?=(9V"i٫b5ϟ U,VdX*aqY<(Z4fJfdA8R )G?䢞HPO$W{C7֖(hGGD +b} W ,DJNɃ!'@C.Cw)p&wǛ*! ā7Ps_8R̕M6 'PPJ&w!|pe : ygq&ֹ6e.1᝭U4moH!*g (!Jg@C&vu8#JG,"o256ޥ)kϳvBMrbg x(0GxbfP_|;ܑCV ElfE$ٕ4I6ʨ_1oWY(Z}ju]}oBI>}Ks|K~L ZXݙxK@=^)V{ikߒPQͬ$VmRt%}2prh~\2U&{JQQ%*+mIRUDDi|SL=$ EItbelۓXq> stream xnv!(0d(f+pVKj%xI|{gzfR8 kO+5\fLOg,6)7;xWʙt1̼Mqvpl!!@W(ЊYw_ x['UA/@@G%paF nҞ?-lSq!kģ_@k{F# *3,# ,&M+33ZkAæ C1K%ckh#*#wxXF ,2b Ȫ "k!d bW"I RI>hP8.I[6p6cF7}76R]b4~q_eK i,BY~w^>`^} ՚9*zXt{P`l0JOqBG6,H 6NG%b @FIf] iTM8rUK2Ȋrd9f]Dmtpsv8+v"xT@a7dEzX'IcVVbȊ [ҁ!|%J= {eSpKWyr>3?:xL6ߓ|P$aTu8&H@1ku.ER҃-4< Td2`"$empD<2Jum#}=| $wq007(SD *[2R<]:Xn bj@lHuV1,`kE%UT&XhEܭC5mO|*]jEĤ飞{e.7_Un?-w;:qgIQn K[ƁXВ-YB0Kpavi8Fc7ŘWHM6fqq'餏{nϑNjc3r\J4/d|v9j\zq]3c4)A5nixb"_ϙ55vQ}p_@A슁ɗURT+m~'˪#' Nů2r0] 4;|WCkR"/] (Qn,S>f$M cZ"ɟG}L%uV?K 8;$9 ^2ZϙWpw˔G. Yނ1}S~Dpb DWG&V4XުM/ #jVb \  g:r̅$"\6 vѺ~|ZISCu#0-ز3cj\u}éAڿsgT_OȌ؁C#pN- OVejM=#J@L=hL뾛[sӪGZm> stream xZ[o[~ׯ>HEt%-"`@(f 4Xv6s8sF\Y`<$>|DZhXkƗۑ_>d:n^Ì(ƱNbTVqkфlBM~3YdOZTjYJWI%WjU3fɆ;2_(:93yVJ+unNNYUwI= uUJ=~?F3)h 2֊'_#fdh`d^zgG F эF϶r1N}ddj$)nXvRRRRu /MëӾDW實3' a|:gچF5q\Jw~4f:^v"Dk>;!e4&@ZJĔYH(3"9H^s"UFZ_J/us=y6W|u>O0.T=1+H3J[jIfƟ;Il?.ݞv5 S//n\(!d]>Q_5q{9~v>Ϡ/j0,}+`\zʥpE"x3`?VLyY)q慽\Q + cR֜X|5ۗK+&8Т͆;ÕΑYBѹF6d_Dٵ-7S,*Uܬ-qы.eҥ pa9`e$!m& {_!Є_!QÎZvԱ hdGUc:C+܉5g ^ x%eoVEn;aE;)rFcUf[kPb29t$,ˬM􎩺h.¾c2p%Ï+gA?m=44)!x\@IXca )@:ld(1N* QS!5-qP*谑˲l K(uV2fS${N"ky P,y^H)iͭ> Bй+3^J;WmxǺ@".FcAC G@E>jt)SNt%=bZ,^ nIoJHY"6@C0 6wE$IsN%`/3wB$I %#S֫EG*)b4!Zb^(ޛ:eF: v'/s^p$=*]DtSJ8%67J`)I+[IX ǫ,5=YƉš9T "KHd5㩙2вכ6uunx[zZC1O9%e7KbR>iUvu1LEE[J|]l& 8bAv4^g*B#0+ld̅CanF w@r5wv,Q2{G8+ӡ @XL{f ԏ&m8vzx,ؿxnvv|.%߱x> &:8HMmސ͓KGva"^cMoA㊻J^JGs/29 D~;!kcIQ?!y(%ol|MfۊD2l{ _ OSlV݀%ߝw]uua6Td.qCD/.χR5Q;ް0pgw1.3f. $Z_UKBKJ%Cl1W(zȸ1[*]HE6~,5Ju?P0<ΞOH]#C+= RjFoQendstream endobj 160 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 329 >> stream xcd`ab`dddw 641H3a!O/nn߷}O=J19(3=DA#YS\GR17(391O7$#57QOL-Tа())///K-/JQ(,PJ-N-*KMQp+QKMU8OB9)槤1000103012)ٽgf|;?̿ܥ;~3>,}} |g|Waq6;7<_s/wt\7Xp9|zaendstream endobj 161 0 obj << /Type /XRef /Length 155 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 162 /ID [<932ee0af8f5ae85ad3dff04d64b643d1><2407a609ad50c5baf8a14692c63a9cea>] >> stream xcb&F~0 $8JA (.^ilI9 "@>"@+z`6d4Ye&E@$"YHRx0{ d^ v4 L25-f  endstream endobj startxref 109708 %%EOF coin/inst/doc/coin_implementation.pdf0000644000176200001440000063221113133077420017461 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4457 /Filter /FlateDecode /N 76 /First 628 >> stream x\is8 |LmB9;[sWvٚzhYHTߧPw$0@xVL0͜g2\I!,8r&Q`R7I/b2B3%s5LoPiQ1msL 3r/2%*{Ŭ)P%]@UGx׹b3o5hLSxKGӹӊFLk[ b ˽0 BH=+$sV(@0\fF|%PF N0Ck /x̂ZPLJo(YIQ0J s>s>syG>AfڴHuT aR+endu+u hl;Uf:ۧ'-JH*XzsOuGOcJim8𨣆H;?,qly*ᄿy ,؏!ZSt"t$)6:CH% 2DoRżu3Bg6{$,7Jg:hw_ٌl߯AzM@L@²h"16=1+..a.A.!.nGqB,C y |X`P@0 Pc^6Izs><|%9OrR'/u!̀3]Fz E9&$P l%\C 'lTBvv_׃Hk'1-sKe OfĮ}c~&ʚئ KbR3MAq/[?=~O^>sjk%7Ox)?T懠_BK`ay>!40a2'G 'pTJ9GߋZsGuotۣz2~𓶺|E. IkWh>snrv r~Ky 7qϼPWXx:շ͡ҷ8DhPjaN[rCdS J }<eAOq N&g-y袰e ](/`L3nAĈ9_WE\x;=G1Ÿg9'?g~>,!n/+B+Ӷ%T Ϡ!prQ_̥$aWd9YơAPX7~5NiV.nbp7F rY^E]2?ɐoy{1*^7A\C|Y2e̒y`D|A,gE[=cg̚jyr'lo62eQPwoyEHc/X+JEuKj*=w8LO$㹀kSI8'>(><օDTek/>_޽K6/JYzHD !MU16QB@ Pܱ mTea vr5lX-vur:+`,Iv3\UxvNvٯ5@ :?.1;WT4| G@/B+oVeD9M5ty?e(U+ykeEv#2IA ,莤-4h|}!zi:fm9(p`υY?;k07M']=}h%z1uCiiڛ}ɇY}{sCYPC$c}Zv+e 6??`Q@8ogԺ9|w ʢG*\0=osxmboqyc>tAE_fc08 $&nD |7.6HX293GQTaXM&4 Մ.gŠo ~3nhղ+aA|k"nUWq֖FoYГn.J88vV,oGLZوm'Xtj}j|媻5Wr.8`D6` GQzBXbvl3sQh.$ARr "o`x o|c<۹c3g[7Q/\_0g䗬/"3LN,s1*+F9%2rv[_H+j*-AE*Bڣp1(-:E^XXX--T0HU6L |hM4aƉPd0EFUUZ( prQ+ߞh!uD<AQ6`G)ivi};|^_Y1k(.8]}CZs8cL+cc&*K7-nNVs_wi?uX8 ӎ K6!uayu୔Jo_H Rg o;,h3|E^uV ?H&̤ UW.x m׷#fPuG&n#mz efؿW? &8 '06bR " ʞr0~['Ў.+r=,):ڻMFd''~mY(pˏlw\J|5oqɌV)#Wއ"Rq=Q)P:,9/9*2ڨr|M"ȹA N>ht.m6䖮.79r^6*'&GnҬpRl`mX.rM{;FMTöi;[ oDp2|.Pmx6s?}ukVrnt5-|yb^疲drJʢ[ZNߒQaT芶<QccQ2eBs%^3g962+h;+];1KzMHo~ojo[Xm2)ݐgrqԭY[LVayMڶH4?`;caRi3רZYojoAq2(~%QljMm lWi}LQٴYw@IU ;$Ot1a2ODjALJ(,I9y2MFcZmtXErE9Wjܙ.4 <3AiǺˮjljwz\/=#!0`BWy/Q"dFnz Z=q FRvJG!`ikmO Gۜ&d - P5vw׎uJҵLuzEangi|ȳbq uq 麦|?еg'd|.<5PliOz;q.WCqZ 2}Fm:IiSZlYOCRm7ų8cO;jφ+/꫹endstream endobj 78 0 obj << /Subtype /XML /Type /Metadata /Length 1776 >> stream GPL Ghostscript 9.18 conditional inference, exact distribution, conditional Monte Carlo, categorical data analysis, R 2017-07-17T11:10:39+02:00 2017-07-17T11:10:39+02:00 LaTeX with hyperref package Implementing a Class of Permutation Tests: The coin PackageTorsten Hothorn, Kurt Hornik, Mark A. van de Wiel, Achim Zeileis endstream endobj 79 0 obj << /Type /ObjStm /Length 3563 /Filter /FlateDecode /N 76 /First 688 >> stream x[YS~Jyz_&J]v`[-?1B`8@*:q{,iI>!R/T$d* xSє' #fLJO`@ g/ď,G"`dEsj/4&AoM2pY; \A#EAY+(Cx^䀴gAZADFitWƴDd| HtߙLŜ" B<ꨪ.jwU]n:{IM08Avw FM`d`|ͧWQ6gȳbXdd?L`z6f_?}Qv]?ӯ,e[,4 J+Ed%YCVzz|*S{٠l6Ӣ>Hd+ kڮ*?5aTXA*F67AJJ/~|^b5TsTsެZvZ}֬뤬Fp͉2G +X5fQDDO&O $دjXЂnAO3,?;/B7|_}~|>|Gtߋ!??姧9q(3~s'OO',y~ ^ϲ__j' >́rN<[%v‡y> $/Ëޗpv&g =A>qQ .~f{{o0 4@<ٙ$oMŽ'IK{(+eKF}wOp)!غ'<4.j˻]:# Bp\-,"Ws)b5+MXZ%ƀxmJ7\V-o *AU=>ۍ>|q3LuQ7s3Y)QaY0}Mڶ&mS#XqfQ-:MO^km7o)⦎y}JԆ*pOwcNG88#%)/0C+m7۲o{>ͦ_fʏ3~<qvZge(ո/_9/rZsq6e<擼/ VE-, ԉvMm)yktQkCnMGocg:`u0 IfzJFCk߻3bm1Xi5B2^X_'ˋEt.WuSnyI]W|:9QCYKmձ':n%;J3jqLDQR*Ջ CSJnc kP j 7:HcAtvͪ / f/^<1[T>p`(; Q@w &e:1 D!И~Z\1T},YJ IIAR d e]$  zd]B .=:$^L{R9f(4I튈t֗PtI"n-lޛ_}KFnGЍܦ~+Ūw6gu%7+c>0g1bz !GyNEy^ G>[ǬXyr*̮G1Y6Ġ<&t8cN 8Fm_vT駫iGsʂ8j9<MgY __UC:)Dvlof6-q0nhmyNкZhFЖe$*KyzIMJ+lޚ:k< ]t갚IFx,飐԰|ʤ9:"+L l (u&7ZC8{lA(<НSIIjCY(x @ZBwUtWJDP}_F&)6 2xD$eH~{ ѐ0QƎi>ƃ֋QqȞ"[l*# `.>,Ji '{JֲPvMv bb5G/llMw c$w6vRCjO:YyѷVMVtBZ:7>#MSJp7L)yMYgV!$e[%FJ}(QVL/o:6_xV6EȔQ~$-T*,O48y?|꣗M򛖑z6^4Lto-y: ;򶙜7`dƉ͵L71QLZ9,v.QUMLmw& IJ@`qshߞիT4RO ~UժOWVrz*IҴp31ˍ aB9iJE2'%\bxah{?*fSx1i"nq>n` Q:xBaAЗQJ t5=!AFm)T01 ܌I=#ր.Em;(EkÂ(1ܝzwsg}BPŗ X1!4hEa4U;b2h(4A :,/ݟ&)uR~M7w$VtVu"nbݔL~LC $,n~NHb%krZTAΥKL(x 6ϘZ%֤T,'T/Jɡ9V- o1݉!o/FThPbGSM$y1-ΧO.g?AH2}Uf!L4P|oP}^s˗d7O.> stream xZks_tūɌ,Uq:v#5q?0Zf+*IN}bIZzPxd`w>.$e Ym*֩l=ZR%8Ra:A9_dΘ+,c0ixqQ2^Ox\)B+ 2a QΘ'%Ed@HEyq'[ 9,!:^Ya.NEŲWbooV\% pSTc @,/\XNeT!Bz$iU?20R% m%Yt# HA6$R'28䝼UVtJWJ)@~x GP$NΫ,==KX&GITdLV@*!+1-%A^$3e_-oAF8'$Daeh^6:+'VdV DSp:Yt܅=;^L?aſPjVƛ /(Gt쬛+Yᯟߟ.F/aofӳn͛ce}Z`CNfpyo6ֺRk}km+mB[w)\!}y]Lo}ky>xa]6>`/np؊V=\usH_~Ui!=5'ݙ 's31S3tfff~5:,;5u4Ǘ9*pPKse?>v r|v00ؼ0*s> cuX3 #uts6]7f6i2ƠNI_߃r;b+r ^,-!nH$ W_R΄ S-_Ll_eCZ“R}B4xh) U P%|oJ!Su,DJCҕd jiWLw9"g`r1h$KL8o 60l:.1h2>QWR) Tjs3HP"<Mǰ]H:!4d08#Y#;;CDpGN=- MިwH'">jq.b[;&S:1Sی>r(endstream endobj 233 0 obj << /Type /ObjStm /Length 2211 /Filter /FlateDecode /N 74 /First 656 >> stream xZYsF~_1IU23JʼnTuު)B @ui{@CV(a mZ/H lphpMDJDj `UP8N :H8c |` :xwSLvLw2{ӿĿ7bvk ?ۍu(, 7 !anu^]d|%r`"Xk&^KH7mI1u,xp+B ^-B(%?/`fa%E/V||U+w7add1t *or&W@ttw38wrF%5 y 'qϋbHc,RO&yP~.^,%gy gnJɩJ)])%)Rx2$cc1hVVrsz %fC8uydo9g %##xyQ><~̄KN6 _.xPjM,M~"LND~ (9A8h󼘒v[LVƙ?=*ʫeZeRЦTlmMo0 "=2$Nv'iT|V@>(/A!0:! 40\@F}MgL]q#en-nm-bnǠ n_T&8_{lH<!LwklAs8yw%\_ ox mۖaCi/KM{Wi/ K˶.9@;^PZZ:p (t0Np}&8I!G5/l3|O ʒn9x"<6@|r.c9'5|!"! - PX~c;endstream endobj 308 0 obj << /Filter /FlateDecode /Length 7179 >> stream x\[su~Uf<Ɋq*EǮXyX @ .U\rg=ݧ;/_΅ټ:˙_wW_qA+gw/^jAFVeٟ_< ~>BӻŦS.YMnb m2iV93]]M𓙎&n2xh}93 sMb">ӗJO'jg| ӿ#6)=gvoٺdIopL$^3<'spn{N%} *[=+9up|sE H?wtBܝq$>J4 G{Z}Jaa63uv<;k۽ר=h@sG;W:szţ4Nޑ0mt}:3kZSL%%1}GXeT~Rӵ|:;j VOv`#QHE`E'#r CF5|ɪػRւ8VO{gڻ?MG}1FNNh ס/uH++[H]5 fiv$䢱N؋$ ӧPAy7l!t-3[oo ]RBX0xc-2ģOʱkP,y/z̻#{2So[gXhZݩNjP]Di2#ȨD 08c2>g06<iqkSJ8^Dt(7t dNSVOTнKnj?ŐiתfQ1cbWf$_5%3E{i4`\L8ɂK厵Җ#lvo,#k^,AһֵщBdMZۃ ) & hN0[4YoրXz7!(v(P@rfS2_8k}Y4<9Ӻys&hvA:$TԝL_+fzx(Gwvs@Īo@Ie's 8' BQޱ#EA28Љj!?78QbP)kԁtzͣC5)>.y^r}T:JG5AhR5nt&0]xGȜ|Wv [o&4+ ;V=i" q:)} ȏ!o&**^Lpudhj؏\ fpbr @r`f~huv1^i9EE BE<hU^qvN>'9P@Չ8AI*]HϹ`-g+Չ )5a(zD)dm:"pZ54J ̊bΦkEr h~ 9`y^1f :id hql'IC6@hg$˽`/l~"éh#w ) yU7{ Eq3Q@SdtR_U'<ձF1)K,{!\9Go0-'C,UhM36AK16a&O@e|`&A0-[8apРS`u.8U~jZ8wC0fZ 2 `A(='vdW>óK(WBᅌ##BOb.2;L\Fn[#m>hU+q1>W-qeKnOFtqQ'iT&4)d#Vg7W06c #ʶ|'(;5rQL DQ1J y')ϫ6u 2p,VHŔPvHI&3_0kAsr ) Y?rDUA8!gCݍD^}(4zfx!AQuO ' ٤MN,[cI @;<'rdtCJDY36mHku_YP 7Z5MQn[X"a5lYШ{oޯF%`B]*|% 9Q2D bR}o9M"v}eM.zge^E/F%* W%`xL; [2ej3h xƳK]wyTHSFL/eqX]^LSS2WLǃpd3@՘j9˨HOmؕ lsծ:;&)Vs@'LfRlhI+i,JۑbfC94~)/MR51pw|)㦖Į{Fp6 j$BAҬ\=USXBŭB[lGےdfrpBC=$% \ݗk?6eH:߱p}B5Tll-tYe\]׍k#mY*dmP aBa~*k0,ea*))\K^m hm/]_/J9h**VZ;B ~`% KB4(++.@Kct8ڧa.DD&}|zȳDetNy6qa2Z3|ӔDYi*ᬦ/xUv*~?liny aCfoPeSEnHpRK$PQMEwAМ Qccdv?59cWZBG5' Cox\p]xlɛBCPj0 =Ԯ cQNeڒА+9û臢XibZ07${`5 ]Kr0~'%/ck-Z "T*NO9REUv' s>x? B+tyrIQ ^l(Z)5Rݪg6e_ΕoJU-!O,1[Eg* Xd>ׯGZB\.ſʢO /4B˨W<}M\kMYߒ[nwnw{ BDw:./[>T:rzlq8o32.-a|0VA) $zV~ ;,nI(͒0*Ԏ/cboh2F-SW:c_X"L27cךfR zȉNڗG#/sƪ,]6Ym?)ʫ=Yb&O::+`\ixMsCJRSza;nR?BhsӗqC/- nߩ#BƷl t6anV_Y`#4"9\bz"y v &TQ !xT9n-Beˍ-8L4Ź m{{Y/^JT—p-ƌ60h7y}1*jPH k2HF Uqp['O8CIJ,goPJ`nx#0_*JetsJoj"=cJnHq-n 57w=(P\ǮK$40)zhqʲok3 OcƋ,6*+Xl e(6E)ڞ|{ ݸy" R=mRURbv{Ƴd986i x߯cc_BmKى35T.ɺoG #i?;$7Ē"v1!LN%zRiV8m{Nj*3+M`  0>ZkUySۛrߒNB[4Xn ?=\"OδA<5őQ:8fK|J;䭔Cn y1]>G)`ryfXmp`pDP"_' *{>C<'&s+ZBu<+ -Q4FӺCq% F7knO4ggyP;;9 A; &[b9:'#OޛU)}w㕩i*BuA)Z@cFNOE a[=r#k]2c~L2`!#[J\%qiE7a5Û vMg:܁'4X̤+~a~X2`Pȑ䴊n!8 p Uà>B vAf/9R D#7. JGWdC+OtgQGU\G\٘AqïElf{aU ^ o^ ?;%<f4>xN2q2q%{ouӱXr {.!0M*6We,6 4"N]t_k!s|nL$0⺋|z"Y9>[\=2u%!'>"ߝ0/BnAp'a #BK>G2WƹTUز tCUjb&/ZJfʛ<}s`ІTΗCP'N8w!f1o}eV)x /D?| Y`@뎬hFy[ZT,`rğu`H. (c5~+x`Md(_Rf tzThP쩘v`uRtizqe|I1ZEމcZ=T a[_xǕz'F%*aA*ҝ-FXϗ[IkiBPrEfk'RYZ)STiNMsN$[5(<nKtbW'bA 7Չk;T*DjHE@cO!צ-qzbh/?޴Wo/jy@tb`>/lu(.Z-@j;@\ҥe?& g4ֹDR+? ;@lM.{ib[LT:Ei=>xW{\cޯ6f}0n3C1Tc2vT({#ք- HȇS (C&tSgL Z*>b*.o3YW@ F;QxS+O7$Օ j)B&(хSa5RfGje@̡(&G"l?kJ…}'! cۭ'YC2S!5kG5 lDJgx{;jFeRžֳ\RK"xxدi{KדJljhA wVTV\\KαkCiY9Êq%xT#&ED1̢^+Zc)ƶKWjfU2f([$)}},7 6Ndڥ\6.9+{?.]endstream endobj 309 0 obj << /Filter /FlateDecode /Length 6577 >> stream x]IsǕs3?cND1E>@-K$-S0f)h)<_{/2_fW5':(U-R_^.3{}~#wHb|p QD8zz'T.\xNgCY>?8zrn<цm Z|M'v1:N SW>[}9U!%;BН`|]`=6(XrJwW<24ttycݪ4(8ruKnt<ŶSwKqn_-D0 sQuY[ "xE>hE-܌0::FUwKcӭq 5wp.F">NC^v+a6*]9i~'엏龝a80@8E}_%]opT]lݏxQ("¾F0쎻riJqCWt/ Rv+*'iH%,\.-.9NӚ R:/p"$Y$H8)L祢MU-`[ɍqH1I #i#=yPN:1 ޚҐ`=ta ׊ L{[Ĝz a8h<'++.|GwOi=< a_D+1qmGD^(Bۃ֮.ymuY4C*oe6݋p8I%4qQZG *Ȫ2x &Q.y!,<?IKArVl@?bVz 'JӕAY߫'蠢θ¤ȿ+=ִ,$NTV KƝp=(` u.%RAJg M".mU-h t!_{>suLs-tHu|M~cԜxd vB`=,7@]`=lV{YV'ģE~S* U_ʅ Cx5#I[qJW(0@IU_G<o({NpZInzSz<9DԦ&0V Y@|~áxLLF~Bn&ZKcPlkҸ!)='^\Z<8YIZF$>d(& eH$ g.AjɎB)4|I dWLJ@:H? S1}Y:hVyZ) X%(+0p]|A U#L8uJ~$J (> ϯG7`O0p`a,mãB4z:;p.d~ּ4eᅳA>AA\M6_gyou;4ץnr<1B@а)ҼƶQpJi-!#w&r|Ac(j"Lj"w#Mӵyf%;i%DŽ^;^CkO^E!;ԃľdy1W-#᥃}@TM  V\CiyڢrDY42Mw01lۈE Is r"O(beÖ&5^VfJiR{1Xӆ5dwU8T\` i opK n0T7u᧵[7~0F[3} C¼fh&8+$!#,@5%*g# ϻMBRxW,r /.GCq?\ ܜ/\Nj"Yq3;x󏯆$ 2Ea2.\} g7D!6Fu ;p eIq+H=Ү`SJ]# O> )҈G~q$2Ԗ364ZvzX_V ӡq%l mZK?c$u3eoE5L`W?Iq*Y$]xyf{O`IsocƬg2;@~lݲXS9<փhx>d\q?:>2$D2Uv\Kjh.K$ PBn ˥Dr+L p)Nu2:ѕt4`Jtdei~L=DO3u Hjh>*|Xd_8cAX=,*Mi\'.ͫ6NiVd6'*KSnN@PE''0P}*,C ,+NQGr5~ð뎏S477?<|A M4 &|EAEbC,ht*$]ӖѠ|Y\Қ`%EhJ+zmFO5-$ز R==K_tF٫ucsitW2:-"h?+@P37j3H&tb][ |4KY$03_%XIDr&Ud# `H6%N4uF8M4÷lvRԺb9a6:[mCQl$&xZ_4 Ɯ>bnPt9K2܃9O~p%sxL27a#[Wd8_Cx7-Hq! r"_Mq6MLrQq @ M,LMt].0aI5 E ?mIL+3E+tkϯCQJHA4_ = ~*3dpd`#? ǽհTwHyeuK *U gAI WM@Z3`Jɬc V$%:hdw1|BÖbQ!Coכ$Zp6)A% X"w%mm299om kݳ&j߬y03kou!,}YxfPL $f#Vp't;ξ ^ y"ost> |*+ST?z)_ ˌʹظ( m" F);2:|P byn%}PJîT\S-|QJ4f?w89'~U,d.ظDj7'dѮ7<+>md^")a+H 5A r3pVby 33Ù IjX-[AZP4euqnmcsqIQJf`ZN皺 }M,bb-@ńgoB)~,]cF0wc9ĤecNBVсܒX:X3tyOGhvtHnld> 6(e[6 Bee0+ EJݲuÖj @V*5"0(.][8>&E0N4X9+{6abL`z)ޞ%1cK|zSJ_IӃ)_ =ZJv<Pೣm$9!S'KIyY 3Ʌ:1*:DؖR&!lQMdL:.92aq<Ƒ(>6sapPX>+{_O#a'?[OebeK>mc(mumlJAl IiHlZC7IWKp4o\,Ԗ,$p^He "F$Oa2n1wm5lwR9lNJP[kY!Vp h>#K"!vlݯbo`N 5GkTdZ$P!'R!HJ1-(J*R!Ԡ|0 X>PKꭗ `+fq>rjm5%+A FBG˜z|7}E6Mm&7 EUezZ"b^ N-V!1^r-chϭJU[m]Ө' JDY5<|eY1чlJJϥ1%1 TWklI  &mJ*{[?E_z#n4@k s5& : B#$AC['tW?AK3L*Dq]S:3WANLq e%=&oԩ.p̔$/[}L))o)8_lLJ4YTÿѧPL[eH*p&ƂڜPL?kŐ=Z;~zrJ҂ &$MLsmh Ly'Y$wy3JN`$dyӻ 8Wv!7L]Ye` X̾~"\KE5Sy'ۍސ ߍJ. B@_1ΰ'b _}Si8?!e4Mdr]ŁYδymāߔ*0ٗ!#1VUZ_t`Ö<_b靨0)M0~[THۃ=~P$Phrlߥ}s3Vn%N]tdӿOK1 :r[_s2<mg>KugFmٶ3=w L(]wN%˭xnS~9<Ր&s@M1rpTk(F^oMg hu[ BqbھMj<(?)EjsؾFFʱ8`9ep3F8Qr8uM,A۵՗\՗ TesP.F/99<*{P;i)LS[7X'6!CdR僤V8a<&K%lχ; V+p SIJ*lݠe"՝ 6U'MF5 DD{/"lM}}J4Y\Jjgɾ %,@&i?'Zendstream endobj 310 0 obj << /Filter /FlateDecode /Length 5613 >> stream x\YoǕ~ ! j_Zvql#Qvi0(Zp"azRuo7)Yrf ZO}٪z_{tw'{jd{w9:jh?|}msc?<{r^To3YwR> d1}Nl/}:Z9|6&lJձhU9vr^9F@3YE[U X%bN{/*|SG9lT0/eVS#ݦL1@iV k@O+c hx+8s>ti@>e#tp2ƲZԮh┻:tTN.6 ׆岾__#Â8gAFuF[;)| a4lnvvg|}R߲`E,5@pG\ua;zWrv=mkNٗIF]m<'++A^Yw+lMAnYмeYvӜ648h8mBFif Au-ZE hqce16h. r0#@ ٦fVurͤh^3 vS uA槲 Z5}ʡ{m頝oV F3Z,@A0=8]1v$xPr,-J 3 R$^{6 Lº9|yZNl28erv'Z=H Dd܂\*>y3 ·s 8k=>cL0_2ma+aKPކؽFD;Bٖ$k$ 0@n|OG>"$ΈU V}C4@8a&B' P](N j L*بq4 E|q /=`h)GڔX6AX 45 &C* 㹰F]Vi` @n9(3V p lms|m#RyMrf $FZy-(P$)>Mq"U^W0AaBy{\ ?XSpX,5zSM.w~_`.cE]z$]JJ>cRnt:!Z ]pŃ.%࿙(6@BjTBb?@hl#lϱ[oužqU,,Cdn{@X%],8 %7-qّ(;%h KZߣG`ˠ.0 (ft2,~#V}#bA@T=s.u151sM7R[ qv¡A{Nkjý?9tl>Y uRmo釪^k^-ޝ-د!'ZŏT/8I`zPq3Tٺl݋Z<ŻS-Zu_֢G]7X)[htCƪ{8'4P'r-ce`Ip{(~ 5E†?=8+)B\rnSG53ЮKKKŶ4ն/JGDGvIg"yYtMOuWH@8aο%6!'h$`T|v0wL:IqE!p,=ߟvQ3Zxp4MNO9l[I>è/umciUsR--us얱ZEp%*vq5@6pHiZDpvSiul*:(j5t%,):ɽ>1B\9+]@a:?x~t~dU#&HKeٳCLb_8/mqSoiWLȸ# v =6gI3 gRΰ#&j"IlV;momfWzů87"~:i BwB1ԁyu=M%3AѶYS<8uìaIl]}2y*:ǃPkQWĤ&qҕ;n=8ŃZ|Pl5F9A_Z >BqyS^jA '"W-Hx䳑y8|wuX@]6;4Ne| 2ק}mBO4$Z%XX#[U% ̰@UKh6Jpb E[ tH`@U=W@SH_TT0nz"xm0L"E̚D9}s"4T3p 3>HyE/L,Ƽ +Ō؁.;%9 gK5rŒt38W4)~ر)$Oho H2Licʻc9Wɻ`:8Gdz"֘H07'Bp1\s@x8*>87cN1ɜܷec"tVkQŗ;Ilf_7;1Z|6;0dMmf I Zp{=[Aէs-Z<>663I'Ul2Mnb CNcb 0 I;6Cx!Ҙi pv76W W%1ᵭ`ˑ=}jl qE~AA&>[I|ġ\#гt' !rj6Ot:Mi؉%ވK߰95M_q -Bw?!݁Q@$FިpCB5?rjr"$s^ųr-?kSBن r?*6yzRe%S462nP+rx'՘(v|<P?/ӆۇLRq[ID?/4N5 8:qݻsZ\12Z=rFvra{LҮ*UvW$n3ewUHޜK\ fȞC*VtoR`(V;Zs$b im@{aYŖ93C4ГnnilHzZ/ɚнsؾԆ-a] ؕ-b3o'uuZ..gOƃ-n fxFI?0bL[$v"O4++Bw \} "(q }P*t6:7dã*9"?#}5 eٷ|!B}ѸnmCC2s Mj>2Us(gNٟtckÔ'RG1H]ƦM+G: csOdPRh"M줢7 VQjo.T]Htd .cfw^m ~IF؛/hq QcjGhLМc"9OMPUL*OZZ^oLg+c!wk7,?bm\? H_xy)c8L+9teUDž ۢr1#8GPYH=`\H+?oN;!tY&?e 1i\]W*, 2 x]#k+V; h2򖕍qeхx6l/J \0,am<ߔܾf!S| V 64Q[ iƛhq siendstream endobj 311 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2726 >> stream xVkTSW1prGP{Vk}QVm`+DkyH!4N("W$H@Z֙횶:isYy5k~̺ku{߷EJ$!~^&#ŀwqO1x9&{z 5C1hXJ,)S28tfkR%Kϖ1D:>:R) #5&Ut\)vFt޼)sUjfK5qҍ:M# R)5urw*1)U#WKCT1rm*u&5-2cmt\1~=*DmP[0ʟN͡VQTZC-QkjCyQ㨗IʍJiDF(Fh7Ýs1Ɵ1oȍ#qgxA%|NAl}hb!]mQ땼'.c[!Fɘ5s;8ડxs3$yׯ1vSj(БD"a0Ct[k@=N:nAa!dh&m)x QB 3h uN(7EF;L\^SL&( цd4gh8 pw8MKw#oT;<s+OHdł3 ]\~eIBn;Aa991^Š!#>-(w?}d;> ۱32TK6aAc_H¤fQ]rW pǠ$37][*@=ܮ} P:ou `S _#"&VZPV.)t`јO]Ӕ].ݢFJB43o2PX#&w1U(ɉVTBN1&Lh'6hb_ձԗi7?k+l xTҠR%a-L@ܺyk?3㶪|ΛV(ɄC"PZ]0r0+dQ a6h4j`HבV axWuM{64fP`+ tͷ&4gPV#]䞮 ~mMgSM|uA$v(OSٷ$;vO3tUV嘵&PbhM2Js@>eufY-8N]Z^h:C1԰ݬj lƊY>"ʽk2M `' }eIs ծg&y>SF40A#tZ] *ADjFS%T輀x#ᤣ3!aĹɳGsd%#:CBN{qb0;9Vֽ}R< ܄l!'Kga{dήcэɞh},dּݑ/6t-Gv4O_ ~ݹ!۷ 9}~voxmfȻuQhj'j&K(͙0>KHCOބϳy`H!t1|m.[=*8 HX :kjR$!PVCg"*"˹75F ;>KcZb8 5}EIzU%^$O|SDQS+.n׮g쭝<^|p&S )aZϳ_,sA1U'%Ŵ<|-:~c=aj!GN'vb?H_tlD'CfUyB7%X݅ |aOf;v0Aȇg~'@oAnkZ5\]rŭw؈5'i&KYrw Gɿ:Q{j|Z#&,x̒-J?W&BWV%B y ISf(b뱒.S%P?8l%l:+ &A:< 8wU/X+ +B zn ~ U4~\9˕.<d nV﹧q,VΝ:()eO'[lOu1l}RޢG@u;nNܭ|g'/ bO%!Q ɘvc  e6!Wh8=5p[\9鉨V&O/7 xendstream endobj 312 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8514 >> stream xztä́+l #SBP{1 &m*G{/dciL@N x \|&y޿%M}DTH$_v@?~U'@1{ИGvg?*rz)'Dp1q:N0a@nA+"|"țu;"Gy###ǻyoXk½vzy:. p\h]x!0^aAvQiny[l]AEKv.t[Wi_Φhb!ʴx}f Z&ޥۯo jG [̕]N/; t*T  -hzg)lsYdo`Ėo o"7١ץ҃zrYɅtUPIދpP?]>uBކn02h _g\5x#3+lhϲSʬYiYDkp v=9XhO& <`x}Z" IIU` mYAcHˆt71W= VYeI(K- F˱OiۇIE_MpoTA)ҳm&ʠ$c\4DLt zgN c۾Ը̈́Z.:t޳R=XY9i;mŲ٧e.Uw\G uGQAK(A̸&I4Y2TV߷_`ӌa2[^0L껨G~,z} Ef^A}I9XWp)9vC#.`ҵ֐T%h 0/+ئg=@ !y_Y\P&2<%\CC9 g}H< ܬ*?lEq(MtWFepL{ܽ2m[YN=ONoXJ4;$CL.d%(@RPXJy7:&ZѦ n.rƀXN;Rs +'cis=!rЁ.f1}Gbu(,B6tr-8d@9ǻIJ&LeQ `tm{zWٹ}PAwc=$hHDKc Ι Vl Yf8_ѕH0m,^sȟ^lO/!! j `` !N[Ѩgwjp,,~ z,Fnq^<0<>b~ȡ!y̨4L2U0R%J8Z_eY6ݖM/^/f/Yԃ2GVa}֞I5xB҃VϩǙJuu5<`r H{3>&t] $jXժ~dPx˖ø'&/[18[D<_݆#I )x2Z+][ϒ^W# FOҹ0 hyD;#qkh՗/rĽz/KNcXqP̷?\E⫞K$ _kT]Mp+Jߩ*Q=p  ߳⢿:P$o! ҵDoi4,BuB4]BzʶErˮonz g4F51]6Ʌ y7J!Y$.OY%}Z1 |x/Zs(=Km]s`b~ *&8M6a>S)yJζ=QWPJ 4@V ]YadO+HI%ȕΠNDI4}{˺EpƇkͯl 6wĻ̽W>'efts!\ wtxi:O/kwKѻ3RzȖ4aIXrg}TgXZS4yMZc?թ Fr fM8BPwTMPMPfEMic1-,,<`Χ󌣐GvxC}fFGܔ>r(Cgn S*M||dr}c4b_Un)?_x[v*l&LSM,^&Ͻ[3cӒ@cLeu2?~NVp$#='ɼi#l0> }eT4Ay{ѓ-wьLҊOcb47;ۂUZ3# bRRqnG 9F Ht$A|{l/v$[.(׉>s\tXE&PJQ rMvzbҔ+f!YPTc] ,g^=f֬{ޢhTt!TS/Fg+ b B^;7۰W[@> Pnqqeg]>J(O̴N]Xu(jru`Y=f NĬȝ2=u2BchWa-fU/ >MĿh b#ur <6Lx+w>wC7\E⣞@.I?4_*l/'ttOO&m[yᘮ^Q48hcդ%Z{,F&U&taeq#}Hb-E;Di ~ kQl3Q@OlD7qY^AA,vxOVBZY]i,tp1_?׿I:M5aP 4)q~4UfȮr+n}lR1xKCiu=Bz8/*ߨ=22^}u%]d:|M*3lI(65w'3IbFjbsc R WcJ{eM1= 蛬 9grİ"n4T/Ib:XANKh4wmH}PŎ Hlqn0b=<ß ]nhZbvX K٫礲%w3!/AɩZrotlcOnG_ZZ봌⃶'~%?Q"3uNwB_A訡;MKT{e=l]Xyp<$4j6Ej['T۝ >$ gE'g'@3Mxs&S2kDۭ[V qoD7Ƀw#D:Y #}RZZ]KYe9G6rkN/j)~oNŁ`?nq!сWn}zȤWْ;ӌ$%gŇ[mB1r=G0seiP 6GGn:|G&>gMxEPPxxPPExMMEE $3&Qe?DfqlDY Ԣz4J ,s5*P@C0pfÏpC(-#Xaizt MNsB[D//^6J=}}9}- !*FE֝՗X<uK"{>-r/kї 3Hew G6W H\`lkGc'%4lŲxcp/3ZҔ``r D?z$%9AWz8(虏vf6"$61})GZBLqDF*GؾM.ﰅMU5꺶rr+U[JRZQe;:^,N5l]HB+X^(W u>#|a7BX3nU-\4U)H+1'0ݹ-N\^bS5AS׍0?#oҨ8E.njpcѫJo1uGw]0g]I{ad)>F2OㄡldהX‹䱁ɞOI;[Ҙ2B&L:ihgW9 gpFܲ _{p! 8˛)h W9?}9lg= ~!B"]|O }L/L?'QbesSSW3o!FsuotHhhIHct:.Kjg"V}؜=tso[yC]5J" ӺC樰TZ~"׍ E tAs~Ap(sv˜00y{hlprg__]Zu6C.g:P3rKM2so_]9YPu&kr* ܿ,qS+Rݍ'Z #"}h>ѩq[TFc:GAddoF8Y$qZYP_7לP?}h>p02I[u7;Lצ/0yI)\6 -ꝴ4PK#%\,*SladLTbGϙ(uswC$LA}\An\ s3t:`O|,1w(^ FF;4$G} KCf~[STrZVFuY_H/PJKOSL{pPZUɡo'P:3btD1%Gk4o^E .2(&.f# }ObsKsL7d~4%nAn(PfzuI(U*4eѲFƓ{װ]BgҔG"YꑏpO!'ǡa,CB(xz:rCeJ==VDV&yuCި#CÍ&S5K~D?l`?QtJp]Nb%jJ9Hj5{!}Tۘa5`e*v*=ex{3qX];Om9+uѱÛ=Q[6:6~YJ'RIV"6MD k>$ڧDW}6*TzBwBe,Z7TF|,,#yš9U\%b J9UgDyTj* .]C"2*͚:Trڪ q0WwB_/mwb3 `s$5ۼ2rh9y鹹Ab^6睭ZY^SI.ʾ+]nn 慺_6fJ _R `|o1Ж} czh.rb)ō] V1+8~l/T,FŽ.Go!6&rHU1::[nŲLm$jd:J `y='XB~ U|ݹ$ξx& x$oa[l3I뎂!27EZ5Mgz3fn~ ~ ?ͳ $ť,!M4lGf>Sh?Su3;O>g?STh9qH[A#0'5kB]dvô)pM*hSu(YPiZ4 Z~Y_YC{cP˄'K~5Y~ch9c:`H_'iG3)\n0'B yv<ෑd&\ǑZ+6wh kwmPpzv S\c}}86*S눡} 2Zi䭑g94$ߦ:R t.mhbo'lamU[wv25=s@<{0%把_oF2/[$,K!jjL?qy5?dݯ y>^JrG eU(w8p3=t:YJ,26"f$o})endstream endobj 313 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3732 >> stream xW T疮*z1ոb[5hbpCEVY;4}[@@1AZV(hL$3Fȉ< gLBbnL$1̛3s]է{W jP(kWxv8u_R/+h-۠k%X[5vhLF1J"".keDdRtHPp Mwxupa^M!I΋cc#_5+!!aoẌ%.Bb<cVE: tnaeDXd\l`ڈpa&-ض22:&6M_$=C6 7Lٯ͙0f3lb63[/f*Ylg^gv0*f5 ìe1c{f31jF`Œa&S+&^Q3L1,cدL#|;dg91s#lF(za 'ZY߱Yhm߲}2rc:J2EK &dTC2DYIX]J΁kFy)hp&$ӻQh\@GtڠS9* KNH"kgGdC.dǨ,k\S#sU_c|rq<~H*#[yyzGpdS_ˇ=U)'\QEFcپʜ5JovXAfz[-WBc4d:}KV%p?%/g:pO8&]$3]ͱOײFlI4Bpєg2+N5_˶P)n~ͅoeEQ/b>0\q~ |)Ğ ?H&Q23 *C`3݀0D-< +_Pa>n*1\b ;4MgJ8A֓d7^Puh~_" rA|OE}!$ !t(f Pgܰ% B|/#p=p$reYLH6h8büj߁pٌ?AE <^ZADjxI8"+Rc0h,.nnW';2}T-td#ڂo5h5koRFmGG7+҆.86wShP@G^`K4Mn!7\ɩ|m }%֕7_RUTXVަ/5~k =k@=;sEc1*ȭ| Ĩy@E%kuwSyuEw'møe nBt18R](D,7r̦s S8б-!FP(tpic}JNp>m֛[nTXK8&-gpQV,AIY5$nm4i2ՇC[bIλ"~OrՉp u,jt‰JlSSYhI 6=r-z-Cgi/,a?3,vu8| FDw'<[v* MGP'=[O&15yu#i] 9$?L7 G%V>g ӹiҢ"_0/[pc>H){MqY8pcKK;_)u .q'vްb㮅QpQ{"/)*SfZ/6^bah]x!pp!15V:%ml]&m78\?!vG܎կ}**?S-}pkWNa*#TXWh%ӄ}x>6iX=gܓ$>-[ؑ <: ClE[^P0LPBدdJW3LP*ʣܥҲ֑aJ%R ;yn÷Frꎦm[~8N|L c>i>U1siI~'67CguU*<W9"Vi|mhx,(t]xwpsLFqO9J%ާ ]CwL0{V&ck#Dy[bGG*qAXCzWiI}Vnn.Ŕ4$V+oi j_B_xጓ-'itR=%οц΀ )8D$!dTnR*N75DU?6; %I),F֐ Wyr@F^M3^vs0ρ tioƝ;Cvl 茰H7g9Q[z>ãLcSu+#bWV8 -3g-PD8Tj?K!iU,$e_l<ԙHl dwZӌJJ=t 3'AB;ӥ@%%h~uOQcpN_L|Ow3F+o2u붝Qb£Y@)j5ٝ! "C=a~Vo .nZN] K4.-{:%dQ@{_0dIkDtА$Ev=}&:y3yx}L̡GwX)M;y_EW8VdnH Iٵ Vv|ؚyj/@T?O&:F2j\տ4x'J?a: |J4Gކ{DM' ]U߉6EEN*q.W-[ :3Lg#ه:2a"&*ng^_> stream x%mLSgǟKo+N!wk/X0-/[L2@%P^0GZ)eDF`%+[$cmIueK0a'kF,f/0q,-{3{$t; %(EQ⊚L?E 4-|ɮ5I䟗 Ꟁڭ(dnr \zCkeY,\\Cp -\ \ .Ah3;::LQTp .?y'*p{q)z*N׊TXOpy4dDϠCYP6AV(߇PBqJCy"Yѧ}Z$C4 S:Hel6CBeoI{bW2,9Ġt81)f{7ZJɽ14KLE`J=]Tc&#l㮛]pA\ԑ F,dfb31qDjmCp{U1P{TQ${{d'6zgayf=L=MC1~ IrN 3Cn??<~爨ktCz`5y 4_EqsY]WaҩkB]EvMbAރ}w=ŠDXk'+_g\BK d'- r2!Ǹ0Q7>w>>,եRK}мUzOu'(b-W 7g upCqRե-c3(DK= ё__$Ng9Rm)&.\e\yjGΌ0>&.l'&XÚMw45[+Ͷendstream endobj 315 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7220 >> stream xyxTU Cb@{C iBB'!I/d2$ DB蠈 (ku;ܼI`ew}ɓ'Y#Gl5?tz~a;N*cxH ` ƌlzaqscQ(9NΐIFǤ 7ų̛oubdjlxhߦtC߶Ǥ JVVĴɩ+gˊMvrRHᷛ;eMr #=2oSrDdjz}uқko6}] Y ߔ92 *0:fk;v&Zd鲙f?3g XSX@4֋mYXX/vdfְbee^a͚Z˚ZZZz"&bf/ϚȚz +z55ÚZKrX? GK^>\Qq=O.E<>̳}MynplǸx}>?_ung-&>9 KyQY~ӓ'yʳS<1mv u~3yBQh$Zm.h AB\Ьn1SMEPᐁLG)tz{V!狲fWV8D"lq!608n,6By : jZBP"[^L$כ89N6@8(ᙜ*ko| }pӢp*?V]c߶Y& S2` 2%ŵ:k Uy3g۝{ 'cB ҅!v0tNY~ :H*!9QhKye ކyɉwoi=ȳ@ )ڄE+_dE<] aM2B .*\JD1;|+SN J)9MAШYc?&y`יk ~k~-S7m}TP5mF.wW_ecxf>G!~ 13(ׇu|j8t C2PIw۽?bq'+x: FBJ5J4Ld0bfߦ!Blw.B25Yݸ O)j[huoz>⧃/5ià+3xGN=+:2+y,ArBc6@3]C-h7fK:[rki4[=!ѱILpa@d?gm=w= [CI)qjn HZ :JyUr]l9hu,{{m(e(/x{̄$&` jַB1 (xaduV{Ctz tC jr Cl`x?*jǽb vqBY@T٠!˩HSG@8"~{z2<8=pX%b(U[:Z=&l*Tʵ/Nُ̄v=@xϡydm&I’Qѩ\ ӯfbui2)5(Yl!4NTc+>] ]6]Յ^7;Xl9G:"ߴl;z]htyU;ۉvPVQ*ۆ1}Ρk<S]qKfUgAaQd&!" CbӚbmtNn0>-:fk:! fٜl|<"!C4Yq'TNlp8o[N;N_K! Kʼn-IdKɌ{@LHBJMT}:hHO)$aZ]4-nj4秦fEtkio*#+ 4QJJZPD(Y¾ak+*9gm)(JEcA@Q]l4}$AyS-jLX+B6_bczT-9sҪa_ܵ:F OV͌%Ճ޼ԸGlԀ{#z,X bևb*Bs(tF8Zu_qj0x  E"L)0-T\}4aubj^S%fc) :\Lf_3auۿ %NTt\An?scyU9%Vq[B=N\[9YP/4QVgcmTB)mr $B!Ym8JmxN-F`fdSh|}**'holdВeK,@ 2Pj-֪چ>!_Ч~0y.A}(nH[K SہB<.'A6*' Nm^ӆFa(ԕ=q8C!1Kب>5 ;gF1#72tTã3 4j)֋G[Aƣ }Q}SNS |y#Cy5kA*M0Q)J,"\ZZ[[ypXuجTf|,vvfzO 0Js7G7I|YlhBARd*J™cfl{Љz<u輋%]FWy.&æD7XG}v"ecVެTLDPv8.6.S'gwW&>\,Rd&\ pTZ p)*HIEKWMo0e^tYQ$hČdF13ɋpyY8z|8քFWjO>Ybptoof=F[ĖWQUT0ƒf40|j;ӗ7W6>`u]LLbsbwtb~1|<4Y @\#QA%&b:xh+:qX)p;pJ'\#RQ}*dijјJݖDPc զ#Pcv{5qG l'$xWI&QFܵ {QsbYʟۡLO$ɳ%qbE0߈-%#{%ΫͲ2YɩʆF<@gh ?*ZI-[,,2l9jseV;%"߾<,!rd@41oŌV|Pm78Hrw1V¤2[tzt5ۋv\&qΔf*%6n6%ؔؒf$>w7]2Hc^~pL-iAUgCE) 45DzClBkuF0a"z^A;7 EN %`0` z^wMnB< Zՠ5xa&Hb :' 'NO<:TtH! !Ada0yIRE>zM<)/d>AaܱhjgKt ;ߝv?MueAgLU"_"iC 6Ά!BaL1&(/{"lq0o<Ûv'ew:^Y_[D(J(դ<5?;4?$Oiܓqi"38 GszMB@ F a(K`R9,MWy5ً#5HCŠ RA}NY |UK7jT;ªg$MErՁ^^E}ørꮊ`=q/=}ԃ39%e^빚cFh;LuFh!c UmU`+ <AK!g2sEaŤ * "QCLٻ<=S6yBʈW爴U:fp3AKW'V5TAQ|{&*yM38%zJZBj rMAn,4TYPb,Lgi5q1@C쐭JИ.s=ׇF\m8l+P@"vDσ%VU) Ge{u/_h"t+l-%z2ؙK.fČi3Yv3+_Ϟk;b'!<Yњ^ILS"uB qƥON2VrfTg,__城Jۭ?౿@݇xCy)SoLٻk$C%&XVGpwn_>JM.Fp23y{fp-3:{㨋d|7ނMhRC/U<| N Y("'8 d >AyNaUr|\b\Jyn]>U +cKZ].ٌJ6A5ܾ3]~zb+Ee*Ɍ`'0mծ;9crqt ^9#BR)ZԩE 9"i&FفFFShZBoC3ɎL7ʳiNJ'6) ڸ/\ CPm[ѳt.><5&)ZZUY0 5ׇ[ܬ 6{28B2 Z" W6,og3o~{9gOw%|YgQBN\O̾whJ=y]BOxlUBiHtWx}]P"y3yUM¼(4 dQ zىPavᐣUF\zZۃ./b{yGyJ4Y{0k` &^߉^Hv~ێmC*?:vC)g+7g̦2Q.مؕl:{VQٚ'&WN'%p278J2O &e a6#У>K))7ru BYos.mBch4#^;]ha}Yqj3s)!} i//8P*=`iHؘb")jfp DޝGK_]<3 _,h/B[ֆM Yu9G7rU(,b:,:V1aK H7Se1Æys7{P6;!mYضލa^ȊH 4K=C' ZThb2L.Ե7F5,5"fL L9؎SR'klNzK\&1ԕɧF.3i3@6endstream endobj 316 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6566 >> stream xYXT>٣bc=ԜCb(FPLTEQޖtv\%bŲzch51Yƿgv+Qf=(H$Y8e#!"ah}.!{co,¬a~²6"Q@Hf16Sfhɓg,symwqp{fmv/wy蹞ryIaaa'<o%Y. ua,_n`Dß~!rwCw?EQoXqq󒠥eȗ؅ڇ߶2bCU;?Xk:~Np܏獞?f[&Lt4yi1g̤O03ʖNP#5Hj-5rFS1zj,D6PFj15rPMRjB-Rv4ʞNfP+EYQ֔L ާ8zR6T/j.ՇGQ ʒR)WޣQQfT(JG=fUY 0{^ɽ-z[XkMi}wO!9r1:WW ԰ {S޻?(v+{jI^G ^68o!Z uZ0C'g56mNU}*] ݂t6a"(H⒓Q WʹWtE j(([{UJ^{sJTBøX#^*tKvU{hl`Lc5%YA[I3jMpjb`6tխ!11KqBǚR1˶ wPrF1 Cw>!0"]mىF`yK Z_ K8y<+,SIk7%~A\zdFIKƹ]Q8lI#*x鳖1=y{2.bWabJ!,k8!3%jl#a⬃:VzA+Eۃ?i@ qbad5Y/EJGwJވO+]u1bF\I-D$BRcnWyAwQxը۲_}^YŤN͸gVbQd*B(, 96p 1*hd|O(#FInٙݳRQuya/-~AVtjIXdǧAQZN| )p^5j< ^JnbI9EIEd|9Eg _VH՝1] c `aժLTީ' [BÔ(Ҡ'~tURRQV*IWw_'Y8҇JK[꽷mE:ᓱ8mEvk1["Y2kޒOo|ڍ-kqB k[l@|bBzJayB@: +S=˔uȺ(s?/Jg|`JN4 Ԋ順9ֲJ _{QD }9X:VZI|Ȇu hZp2{&[rtp$V?C^_5{_nW&Uu5gޖQF_iB5F٩)Wjp)!i$m!MYsɳg ` &b]a"5.G ?/[~q(}G\]-,/EV$3]v#GN=yWW'~'_ނo5$GjxuQMVqzN`uRbʫsVzm =+ f’3{RLE% F%؅.x חk8a7V51KD3QlI\R2PVFIVvԂG*U|mY>60G3\l?;ZV&nyU}W'GK*>RQє ,cP;`@|RCq#J/rbΌؕ[ʈYz ğM8}Up\)jCB XvSDozdPLCL@)驙)#DM,̇cczU rC1;K\tn:(Lg]VOR2{qxOzғn@U(!{WSڇ+5Hy"|btPՊz_,#=`А}h-2c'!-})iBBBB4* uay]s_votigsvov:P++|:{lT4sQWIzvPl1@`m[{:n}MU:7 )LVu53V,%/ִȅxܙˏ}L,syI*Mm0ׂY7S2OQ$r t%"fDg@F^* :#>;1:XK[Q vX %7)=Z,~ 1o2&(aC{#'+M"}) ט2.Kw7wuhXjm윜۟]~qG^xq$}:R=&&D^zU:T~mը/ƬU/v'46sneYF(;gZWA&Fi a(1>Ưr؀d(%VH»jݷ&SRz߶\ oH ?EpӁ PPGakRhW}$'e$fpV$TQP<6)DۡleeY'T5| [liYT= 1YHrGP.y^:MЬѝ'ՇX^8y7s `"#0m9 \oPH8֙Ku 2EkyD稿ӷϡEG[OMNk\_wmA癇3⣹km: tg }6 _\Fv]N{Oϯ\n,=-8.7sOSM W^y1t-ƮVљT+X[̾ $tNmsEulK0"5b8sאźXM_\RزfDPEIYE[zxCYani'RTAx+)M3%MW]*C߼V k-/{1$v$?E?;U_\N3ͲGDs}l֧&Z.p_ >A!<1MEۙ(@CA>_x.<,[x\{Ak0bdaхI٩<¢Rq"O >1/_9_o.عCGuYU,aNd+ŽNJB;fmPP-I\qUr)v+>5"1ѥ卯B/\|e{sr3r9 7t 0oұ$HhR+ /= Ʉ]ט~#W.ł˛~lnY:ByLEtyXHRtL2ZD(:4RU[Z-E'u.j =٨WP^A^` ؏_ܾ1£q;oj_K!P]|¹t ORFVRZy0gv(ޛ6w^'ڋ:['O|+Ǯ X^sgܩ+7dVqB.WzsyՖiKW9DsI Hۧmۮ'A 5Y΢/[,ݴ̻V/V\sSmx_g`$KH[+!F>"c^v ٹ9H}:jR})v zb#m;N'[]E)'P GE&40';'kԕ\ǨBHSV]*B: =U kT6!OA6L:F'9u8X.)ϋ Q2&sdt-pZAZ:PvTDIB4dUƕ$o.v7@_.ӏV De~ ;f}`O@I|9ҽ|fmN/l |h*N!?ZUyCٱ$u!lѯ [zZ&,8!Hm =MQ0)IG0enZ9E._:g/af17PX i+zEXZX,PC&nendstream endobj 317 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3484 >> stream xW{tSuO ;F{" -bH %iiyݦMG-P*E 3::* x_e<9IN̝r3[;Rn9ᕳίMA*Rv?gޏQ<.WZe2RZ.**2VXa]!)q\TX .P pFPTPg,T(d}TT)WK\:C)R3vW˫2~!(2^(gf-S*U)ҢbP( 8@'Z6ePaP[V䦍?!YY gg5'y<8YڹycÙyŜ<\Myg~% ,\¯NImJ|wEwҬitZwx8}=.|ZcVPG &_K2 O{tOw.3oee ePu' ODXHe{1Zm8<6Y⽃Cf)jH[z!TEZQ]X8 c'eմ^2z&=%~$}[dM2 ePBg9ܬ>`w{l5 b5l^7G"u@RxJ}.OG -wZd'TF8NN;{CT68jj!-hYqDZ=h4'&xl(ӃtG*Pzo;t ~0]+-*K0I@܎_m<7.$ :Er-;TFM\SIlSXŇףc'b*@-ܻ]a1M&nh/륦PCdGs71a/zNgd 5ryEcɠHbOn~YNo+,Jir P&Z~1W.k$@NWB)9KՁ䦽v*n[brv,>#NA;00/oic.ouĝ Ttx,|BD:"xH6mݠȋa&`1Z[> nܮ[[<:t޺ nhԢC%QT%MCs" )R@],_>E;h7<\\ Af Pnw[HT4byEyzddh?E hYM6,J=E}xc+<5FT2=1'5ν6K' %@MTj%ՃŽB)6}h兜'Nc~LwlArfYUР7*2\WՇ՘؃wJ68u)W\ۻ4{mxaev ENЎnőWMXGlSQK/8x둊tx z7P$] `戉JY~ՙ,f0~Co}.mI~L)bGBa?@:  0;(@ ]wy1~WeDRY)Uvuua5Ьxɬ|sܣowyɆ~xڪAM,g"& 'X) oDwO|Wnr^C/* HOa {NG.>ݓ$endstream endobj 318 0 obj << /Filter /FlateDecode /Length 8435 >> stream x][uN^ #/Ǚ@;@$8-10+0F˕,r⒲_s:U]5\RN5{kz.߹UBW /ng?׋Wx-7xT_$}}}2U݋Cp=ʿ>gy' _1}"Z`//^=JC뛗ϾtVhFQhP!%s=hG{8T=+>ޯA^-/]:oxS'{rtGT4[yF:UvHe,T `^+=J۳\\A**{{oP)nr!kH͑U0R%n1dHlnEZP1ͩ4tDѶK S@';l=_D9rPN)\+" 9~zHy;5*iحEQk?óW)%l k\X yM}zô92uկR=z'+^U)|+t7 ֤h|hbTJ>7!C/- (ۂrU)v'f^}=zx\ ~A wt)'wE9sTv c4hFi jW?!~zSO]}|=޳0P;hťo@ug]*'8πh"L ,T۲¶`S[j:,? =ޭwAp&;Dv-~#Oo3\뀒 a@VR$M,M7s9J ;6׀:-BJZPp  !lPR8z:3M̆2d% #wb ғs/eƍha(g]R{/³7ɚw<@ MsJ..AXYܚ{]_A$͇:D\Z:*PR$h:Ez`<ĔI-p0AP:~YUIB.Ԕ&gwA1$EI)^pWwb ?ttDf6>p/W{Y Ѐ?ZR SQ 3. :"L2ޓ]\@覸TZL*~^Uٗ}-&at|Zs?Id:c*u6!](_!pRP 4pp XfSK"C쭢0L*iS6QpH#( "dҷw `Rso@ ~(>^LkD6_H CS؆nZCA# !L `kB>TQdv!X!z⬭aYy3k9^Z o@4C AbF}\sHiG)Bܥuu;Gfp$ao~19Ǟ 01> k0*=DMnoo<$ )|MtnΙHGU\| l|x=fek"j=ɣMJ'7sYztG }A>jCZigR5qg] !ūgX!o>= zU-3(ImMnK4RX >g@"/OIJ{\ӗƨ,trmxLZF]V0Y_W1Q$6{=ޅr3벶e\aڑ>u3AvLl+ `GȎ|K!O= {$ޢ2Q;rm@W#VJ ұ %_Ao"D_#[&\Z{;DVRorXЗ,@,Py($ ۟q@WqkLhz$L7AC.dO;AC_H}aj.fH:FhԘ1"U;Rm]&pv(*RnR(ٽ*-+}h@Dmd:xo5`Ao>?1zDRG>(2?IdB2l{3A~pb)0Jд<I}HW^mh_72OJHO?ԀI#@b aaݤbLQ1L(ncWBI$q؜'Z~m(d>氁x5&g5ʝI!T1UIc]j&kRmU/^Xڅ.ޚ".NGs&K ԫ&U"Qeyk4NFχ$\8`Y {`rjfN#-rA}+.R?4X/M?Go|<9]d8HW+#0[_|qӡ.[Tx}\Vd('H5=(0RvdNHe* c— %OJ݊>Ŏ'JI;T|G#;$FbB3J/h{c=99:pie<J6q!ubG1e[8RNUy· S8PH3fKdh<[TS\&b@1xLYqղr\c#| hǝl,/9mbP+7vvIxV7tdܜdxT刁H^v錔{';l6nuV61MVHLj̲2z'QLjc)o) KaNJRe r={|{I;$hߑ1E2LO餜į2l{0ƃGplIO^׋W6p S$ |kisk+fI}]{䄴cIEӠ2}h" m [{e:ME!ytQ4xʔV% wܯ lclқ>9ryZ*cpZ8UKRd8}(^N rY=/>pQ0v8|A)QvG:%HU}۞}1]kִꚲl{"t]m^X2D=!X5vQ"d(S 6 ?!gT`"ٹߊ#`I[/4-s UU=leĆKLWHO4Zh&lj|G2` $Yέ`R i%!K!3k?I;2f }DI?س;Z ߷5g=Q8 poP(׽uhEkƐ"_&k$Yd%* 1E26zð-Bc'ElmGuprhe #K\i4/jd=V PEnU>$'{`o1ZE-=eD䙃[`uCsQdOZ]YT}_م=ydGKn cy:pȋR\U0ޗ9[&Q4V|xXE.Iɢ1t7bsDCM/Id¦𑿰uIR'^-?yae~"(j* %wK5JLG Ht99l)0HVfe@ICt)ϩBo$.vO"^J 'VS|4bB'/ ̜vbiI&]$Fu}q5.~HfxVٙA}L>)}?L@gٶBB1EJa9XOʟx]o&\ >66j_kU+nM,VJX d2 ^Mm7I[A.lDqJiZqӒ.a.-pSlbm]zFXoy5۹2 lnФ޶oj}Pփ鲃}gU߀C}|[EaoyoAlR X%&lPmܟ6k6%X}˪(?<&MR>)nPWLj6IWYa3RxL C~W]UB5[$o3aA%lmwRl= Bq&PNAw r xTX4فHdZ/;Js"Q|#m4RAF.( 0w3zHT>Es8p^DusC;Y8]96A?NkYa%bkxRQD4[LZ;jC; 61egNjwP6Fa땝>E(Uўcé#s%]0 |:hF ~-Rl\"J+LzwKM(퍂+Zަ cC^j*$i#+͛=?j24f1xъ /aɱrnr*e de"pJ4rhȍR@ױO<-%$͈e}0GR}N3Jq]6:.ExWmAۡ̆qdQEhk t#o5<tAkоk.ȋ}tB$MV&ӎb:K,9_ ޭI6ݺ8p{׃u1#EUwb ‘0m1g7KY&2CIڸs(in'„V*]* }As(&zj"E'^&z!ͭ2yڸL^0PPNʋ"Vh+͢ß&QB ZW P/6FٷwU87)?4cvMguB uʯR:NS~R\Ȋ>RľLP̍@.8 R]3 ^J]rX҆cF٢69K $/x13&I2tN\;E1erڳU+J%Wu_E!;(_JAW>9OdNPE_/gvãTabc)uf&5er'jBTQRV2xl%-CN(e0e9 غpJ *.x;}f\Xk&O{.BeVQd֝ao:N:3`P>-,5gs[BwEMUAI4>&(O`'| zΟ8c;v׷n.Q4e /j<~h4V(Y*/گga3KX'JAZwLqzv nرNsV!0hP oP\zHP/W(JzFb'uI? Lu\GV!ѤN)*-ci.3OGi))j\õW"2V W?t)Ka}Z<}=7c:Mon?|/r[sSL]<@6uտ~G |i0:]f$v{gݿ%LL&ڔTEgq`XTN˯6[h{Ill4T. ev҄JNCWK ۾ܯoR3Ak^7 27_.*lw}.%"]^Flxg#y}ӈO,̾4J4vn ,al]8]-dtj0uN e*ٝ/_ntжVX)L)yiOw9*&K?`)l( 3o1^<ض4m@NA'fb-_\uf7at[vxAT%a[n+ǵ|zG7ؕXi?1/_jpn u}w_2јZ#@o/4endstream endobj 319 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3681 >> stream xW pgn!tA ,1G22lpߘ#,lۖSwweYm|a.7 ,0Ä Õ 䨅25!l/ۻ%INTTz{{dAL&`e䊩SoKcdҫr3 wA{_}yKH7m~d)9iq1L:sIaӦL6/Q'*)le&V!"ĩ59aoEj4)&O JLON;aRXV&6l:][ [.߂Ĕ :-ler:-yI Rkd,͌Zgezظ fM שZj6I6PDj5D}@S Ebj*ZJ-~AVRj85zD jde :'WʫTEOrq1O^81tÖ 5iiͿH.K\`˃|0ybЌ%kb^ԉ--©qon,MlU- O9QrrHS z@1A7cĊ w;\r(.[A8΀ORzdҚkrQT?M AURt18r987$k`B;ij&h3|G 5/h%Zco/=q򸷹YbZ6o3`%(?^ZV~ikrtA斦EB$Q]A. SuYwsH*Et >PN'\Uv71MX>a0!>>2h59Ux~Pȟh(q~]j`n7)q0뾓b[DeMtʐ7ի?\Kϣf^dO\#`Pr@~ϊZ'8NYRч&y2)eZՌ&XwNQ( Eo": "7+x|_+^'وxÞBX>3;fks~72/  A>;]Ȏq!Kջނ3ih4e2[L5HYl:jY4]H-e/CЋ9=߸_iQ; t$82zYWb)áNݗtr)=Py^P $h [ DlL vf})wE= U$LhKz_TEp1{϶|PJ8lUL`{PN}F.7TC'faԸJOZYG[=S/^74唧*_96k  Ep_ImA"Ef-h}L*;wP{uYGkpR:Pbh|xۃ]-~M~9ޯP18^[w|>((x>{V)~㗵(lr3nK LDQlD7rl|TBF(O] D^f}F|j_fIurD1%::NщyT!)d] "Cvb}!G|@m>^+r{uM-B%aJ3 ՝GvF}oMxJoD*sހov>77jnͱ(s-"ԃ, "$u7}2Vfh4#4޼;x >19>=&.Sxb8s?0s8/hG4 Dr!> Crd#V'jmO ]o\*Hנ^DGdA.Tj;:Α5P ;ux5`$FKyZ713jszDY&FBU("Xv^;#VdfՀ7ĝn"N96}БMb ]D?~ oz[,BVz٢dyv/ O^C¾Čt_{׫Zo)*2R5oCE:>ChyB;mmϑEh79*Рoш2Z]YSU,QwK98#-FInƻˆ:xzm `/zendstream endobj 320 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3177 >> stream x}PSwO ģ"t:n[ծZ*! B $!/' BHHk⊘R@VruZ۹ڽڗu;q{;wdL<ϏE-8Β݇^M?esf=^.0Y== 1\Zj4 )W)Uw( juzS%9cRCŝ@u{anCJ|r:k恾f}|NB$Njt$ٿ 6vA=;עkLH7gBeG Qzt: e cԌ]V&O+T 1ڪdF` c6*-&,%}ņbzUlV M8\0~M Ԥ5,j+e1Xڍɾf&~S')N@oc}r5t1ɿA3tRW1p&88>},xɓj #+"҇PZ}3-GnrmP"0O\JR^ZISA ~0LipY>=D.g ỹ{,g.S#`k$R{Fp |6>0/H4t4v7ޡW 5YT-ho/3hZ0-~ވ=)RO6f*Ki,>CaK~˥+`;>P檨5dh}LФLU"3Ww;#.3CǞdgzˀۛ@Y­Ż!oA Wt͠iC.=CS?_J_]Mٜ2;70;3nnxIvï3?,P/_F+{K0 9i.C^V%CY?GN;S`Y:#ò\B68ƻ2YYIvWgaMEuND2?:*:f(gǒRioޝƉKh{5+]x7"Bh Alx }GK> _h d's뿥Yll&ߜooy""&yZ(#^GR>VJVg8iZk&RpQ]-N6e 58ԍ3O7fQ+,K;ď~{^P?%"s t%ͽX`[J%Ҳ)7Ib w;s"ga@Bj'4Vԍ؇ ~οx fF"9N)#Wi8\թ·ecYz- qR<"nPa*3v ~;;?iZ-0^ؐ[%` WxD/J6<*x4+V f]\\~HњćNv'Rq&Jb< PO^Y{Hޅ*&ܺf9?t\aѧ ԧ 6ֆ/VB*hӱFJk atA+9I'ڱX-:26)ci>&S2s r25&XΗ< Ɂ+3ᮠ{wṑy(T5'IṔ5jl!ETc寿|f` AQ艿phPCٞZXNbA4:tZOm'jqח~iu;g@iډ̠w? 󃊻 #iS3T5jl6=fwXlk@%7;%F ߱_ wn%]XٲǞa^>!TGK7ۿ>5w|O"SWlCd"?v-[,,wlu h0/oyEQO((k@M1zbRST9ˏ:uG3$Lۦ"\2OG AElO X>@BKd9>\F,R, 5Xbb1endstream endobj 321 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 854 >> stream x-mLSW=ܹzun/&hTp3#E[w/+t9+kAXZeҙͷ-{č%Msdsl~ B(TXt )^&'H"RpzoWzA_KSSrW)kJJBD)wF[qhN2ilQ[4@ jׯS-Sm]mRf.lu!rH.(]gӗHDvnzXJ$1EMZoq/@~h# l3NZ>VO{cjpPQ^6tqs ɳd!y,LGF/-?[7r_\}z4YY02$eCQEI%@4?7W͓e۞LbycBQ;=]$Px3G±!eLɾD\i(ٙ~7XC2kr> PIvendstream endobj 322 0 obj << /Filter /FlateDecode /Length 7213 >> stream x][o$7v~;qEn kO5hlKȶ!="Y,IcAyR}RߝM{u6܅Ӌw/,w/>MI|Ugʤ d˛_n^nɚvduRv74d75gwfsc'md'6oѪ`B0M6Bs0)n>/>g.yBHZ4MF)x!Ÿ?wVu^㔌ֵt|u:=~A%jgIh_E=3E&brBjʄL-WtqC7ަmh:E41-T?ϗZx1ۗ i+Ug;{ls+%omvO@kz >oW>?j+Yy֖q1ەYrŸŰߏYagLc"yȏxU/@tv_(>˴^'xĊ/G?I7ᶈa4؁wCǷpg˷~ٸ템μ) d՟gbc}l7=_6&Ӑdmχ91]?p̩DC'Xv:>}LuL^>Ix];P߈Mz;|gCb }9a $R1FCTZPoiowKJrИ7H׷WY;hgu6Vq=gcvI v|Ru]>hc>>~ݣ.h_[SC}L}CFpc~7=ˍxRFvVOÁ0~+{Nc5^!}W57w:y&`^0.*J i2ԬHjR2ϵ41 '0]EaxD}]UORV/7ԍsrj=i|F |gڣV'ch_Ӕ7aT>/^'87- -R%9+su޻qen$VW:UX%n fM.-IpUX͊5XX&4vJFJw#&'l\+ONh7Rp6qKI -: <8Z|@- Wd_:B5 JHn/ѱ4d㤥:Xw CtG> a6歉ի M,DOvoHjpGtҺ:YJ 8CJR,SwžNm;VDuebf[`\mCg|QZ7NJ#J >%)֡ѫoX8Z?Yk#y8#?5GZ(p\"r{H>gh~J&}mEϸ3&yN=}?Bgl4*~Ku%֤b=( uZh:&uvk>uذ6C9jћRe}eWO:ٛ#7-@%+YWh ZP;-S 1ظZHsy,]rc6"EM@Q?5WXUWste~ 2o\D-^LA}*p| sSɓoGPW cj'8G]FPjY&% wv* ȣc \ݖl V<+ɠ \"ޮeq$eG0d 8ZЩ*fHw[RC? UYf% &^Nvf4G4hWj՝UcKS64NjT!!}WD<ҚXN.M'5i 1)BR0?wWK&kM]GP{_4UK͈rr)ow1T|TĘ-<ˍ#qq.v%$ۄ9o).mVO ^Q! =H;RhV2EC NspWD UA$=XBi*s9@ 1=iX~dШJIWYږ/#+L{P]=p4$n W܈$bfB/?;>D1dz3*{U<5RR8{s gLpx FqK>>x ZZ(Bo;g,v&U72[4vG-&5e(6flv8 1NNy3B?E ̤~V=6Zvڿ5X2o.pڛX?C% =IV"jF6'+N4J#f68V jfD `*,9BfLGl#лf3s_U5 Z 5AZưԿ~b4_,"!J5wrP GƒMOXU^MO# M@.םt8""$\aX /Ҡ0 >SKҡG(5n6JFdKZmcHl9 n@l){#)gZ?-؛J=цOs;/C0qz{K3=a^1ja T ;^yB$/cvD[9 }BcH!]g;i:(:HA`t槻N6ia e)bn;֞S_O]r VA/܃9ҬҧA˲ّ9 GNqhaAH?ݴZ5AyiDWĬ﹏fiQ`&p!R+B5{}E5k8tbjHX-L4P&Nf~ş^7wn[knQ||"^\vC gPvKA0ꥥ:zڤU@k.sv'@r (g 2g1"-/^I Z*O(ؐC?`^K"/")5ūbSP\f8Sޫ J~,efy.EԬS:HI$$y5?l]R6Ԭݝ*134XW61aSbH ~Qۤo>X`VkNF$7B= qlH6~[o̡?Nʱ7VyUK3ȹIA.A&GgdOs@Kt\N\IbNiVmj3GU7^ur6QiĜGcY\ոIG6Lj-{n/M>fǺw1Mm<+RE:Z:%U/vJ{MʺϾ"8 5š^iDE(T(姀]?bU\p|nՏ8h @if*jBfes~ )`{3<9 %XݳS/ ka; R ȆPnANOhO ʡOFW :,vmB ,O8(N)+j'2v|]^fƠI c XU (kjvPj֋]b f.U\D0\v&/Ǖt^VgmmJe2>\,ODJpl247l?e<u\fpB缾]7)_n=a2*=s{3ˆe(ō`Rp>˨ !#Q-hjxQ@異wY)LE>P47yzq ~ӥ7XrӺHYhpIVAR"c?gKs%]7s֌K̚ EGTSS w)MG`d /BD;ۙF穩_`ip00,b65NcZgSl;x}  2dЊ[08n2CYFsk2&E+3A.ҽ6ijЪL,gZʞy\sO(~AE{k~8#tM.40a4Pņ`DnHNh@oѬ @W"3:)#p)~P5w"\EzO5sצWWU!W)RWdʩu1:n[ߎ""+^\~g+ $"8'O u@63<f*Jd-rlF75ă&)Joyz`9ij`@Yo҃{`sZPϭ}JhhEN3|nx&6p}\KGƻͭ@p =*$ %Gg,>3jK\3-Lsu cr.F[!d(PTzJE-7 %'~F=،ݺ'<=GC MD#>; )0O(<66%C8"5XA (py+_1Bκ\];'ydΔY D&n2 X+r^סnMP.ȩlnzVbN'ѳhg~4/?2Ј2" 0 crMJ8X9ǧ8 T0[Y)>t/oaIʏyLP䛨n':y!6 T: Ppfȹ7Pn"Hb [sI KfD7TYq^C-"%5/bA2ovGqD(T '*GVw,nZS$pO B gJkiiqVoڜjp FK6ZX]94|iRxj^BQB2LLГ3 :.R1XoȀM ok%B49>LZ?"`"q_C"tj7 ̩8 N8?JjZ  d]xNjRyeW|g,R+Yyb:ߞk9Ϋu^8qNb5a}q HJsk kcXEs÷sv̕L1Us>o}ZekzpfXTA>Pc:k Bs0TϘc3^160]{PP)BzӜx۷O@G_'.yUI;9 < |.xm),xgfL MшˈAlkؠP2WIsҭ+|Țj?zͦb|j&~Z VO AsۄnK{aidw #X .FY)K}ǐ mDzGx+wdPjWᡖd}q4hjer=SnjbҒ6F57@S; RT{OEྌ)?3!K3u_ZJ ,*B6W.?pN-~+X;xK! X[npkl[b2:S;8rC!3#2"zJaC3DQ.*Q ўdō}x^5BK4.BO+=/rxҤ=$9swV+2OWlD Q@ŊB'_-MX1&ev*{aJCf+pMz{]è`6'b6Gy$%*LhqGɅz$ayZCklz y?endstream endobj 323 0 obj << /Filter /FlateDecode /Length 7277 >> stream x]KGr^_|e|Ե~XZc /JʇQN5ZQYY=0 (fe#_<텚^?W>^\.}_/^_)LYe}H"8e/~sO9*NX?.jR9wK+|lsvnwV:eO&JLi˽svJ?{06{M)ݛKڦ_F+E`>/`'0ar݇eWm[t0>/֚)';L Y&;N)}_o;w~i"~;Ý(aq!k`FqHlY;#\jES;vz٦zV&;8:̓/QI<' {@aW_z:& d(!G@Z5񶗡rG/', Ĝ&aB%5soa\;c#waѡqb$/jS."r!}]^07m.@ FEVg9<4~ 0m`.`Ìv6$r0K;I+p ^5YpePѡidHvE-gӉCmCb6h3]P@ cj o͂r_@FTGC':jׇNBHG:FZ1 CL{`L2/g[i0Ⳏ/{`̺nϓ(նLCÆvIؔ@1slKx2Z4\@~{=A.P}BY٥{#b9R0 捕SzN-J_C$Qhӛ<*5k `I c\"KA|J_wt)I |? &x#y*(u @w:d0 |L; 8yBPG؃j5aG@0M9[;X42GtpG"?8䍦 kET哠a9p%A`E[7+`$åpvyxNqgPjP&HmqNOo% aߙNʀ3A!_hV8?HU7o~ϡ3Tf{+u[Zڃ0s?{Z~+]zdxdx_ C ~}WNmPAŎZFOo ~py#HJ plW 2Bg_wC'*󈠊b1cq{iGN5E,#0iM'- <Zcw4=o]5R%;?anl-t (K3g7 1#gr e,:t2s+'WB䢂JS(F \|,v2OMOL0 E\ cHyMʙXO O0G Ha#[E뜴5:rGligG. &)d^3S:!.!n -LGFg|0S@ 3RNրIfou)=I46+a>N\ T89lǗaEk4bG.wetȺ z 4~1E֫qiި<%{%Qױ8? $P9~X`9bZsx[Sw9LA,0. RՙB|>$o7 4B@(fw-E;w*YrLãZkETw M 2J?.PEu`yX*19hsB{Ͱ gj,| 3aS7! w\W%;Nr;uU뤎ap4- [R2JP4y:ލ ć hzS;&UDY=KlRbcЏhg|1D%izyHA DuhhliX M4_@߶"~P*uɯl&sx]@ywc~/{\V0#ʈ:mʳ~$}7;nY{3Ϛ"`L&ûtgS‡NzWi倜#I3H2Z \+ڶ)v5cU+O̜`6WY %WUP3{'gX礨3z({\Z=!8G|*b3],UQ~¶0A1'LHX$`rd"2̀Xbꅠ;P TG,Xe-Oڋ"W l˳[q.J.crOf$|/7/&ԚnPݯl?Z>43YO;GZTp{{#S:}"g}+̸ I4f }=LrT"U J5D1lX N[AS$ 2B(9lUfNة)ot@ 1w>?4頄 '<; ќt\zYmoh{|-aȧsdDm@hӾ?9C.'{&Bn%e\'%'%3/s K%41 cqg`5)SwD`hQD43*2'~\]'bE>/\;-h s-H6_U"J)8\_3\/1x]-N$P:3Br{,ZUtwh;*vQ_5-'M͓3v4~7{a>DaڴU/=s.uu^ [yW}J ;?} vS0R9E`0f$cFZx]. onͶ ~Q ^z`RƕY:V#3o嬀W{/M|HuP&!޴#ve2tdݼיȃ6ٮCY& L5(|xބ,VUd>)#hjN"rBR275K$7`xgRTxNw{x 5҇ JUP3\ p$14G׍WݼRчv+JXjinopϥcDնX*#l>o˩>#BTyc9D3F\~.%dʋ9;ar܉<3榼3FT6i WXK ľ/_%SB}T?%e6n#J\ig5d@FmMAm =ؾH󳖧.-C'bE1BiE`5IbujVLU/]rrM Nl((ZL:W__|uDFL7عkTxr@0Qj뼞.6W^@-{*:]fE*L^Hʏ?ȿOߌ-LSD Z>cd.:1!f7ִNycVØ*ldt\U4<)k#5fo Dy1A8]қ]s߈ޫF G{WQ 'cA餚@eVX4&6sKח ܀5>ΚnZb )_Jő')T٘і-Ð WupkP[c\٥ z O }O,z:etz|,/٦Mr+ r-{"Ѽ|!J Ҹ?~gm_#تb,~\=-:5]h= + |Zɠ뒜N%qYgM>_ʚ2K!Xq(4^bT"T|wi{c uDmyrHL`*7 C|W;CDᥩG}+Z-)%{ρcO XSKɗus"Mŕ`B,  5\Uȴm3&U^8,{jq(J|̓n=4Mrdj9)["p6C{HADU,hc^r\gVH>ɝ^>>pPl['l.CH]xo@6vNl^S<:.yr#YM̍Ԝ!C_.Ys,SrfV`Z-.3HG2s\X퇾OP1H[c }h 67Fՠ'WjZuLmD-|ş9 8mgj5v|0xq%/U=|_= .;hiWr㢒Q%zmx[g >FƝV&Zgendstream endobj 324 0 obj << /Filter /FlateDecode /Length 5493 >> stream x\o$uQ0?hK2c \X8ɬZҌZ;-yfȪc5[ĘCY<}BпO~z&Ͼ;Enw!uuQD8>ʅԱ[Emwg章 ^ޮDQQ.6#EPi6g~Z/Ha7h4#B4",?/U_+}Vy6F2m$v"ԭ#[Phg _.6"jiεY׷]nemde:S6R.mBI|w3m6mȆ~])9}4/./[7&b08Z[ *˾|8C˳],,좵]pFZjxt g\Jځn+/!$eC;8^He7.F(o1M4/$᪥.Wy&!"f+jyqcn`46/8,i=Itڹ *Z=IBX}i`MboqfZ"Wzqog*_ /7ۄ]ߦ ʆʀ{M3/c9zp[Kk;DtB f;F7\3|KuaSUVqCD#HxXM&3O"nQ}M Ѷ6J2QhW ]Iρ-҇ %|MWU)U_NNCtzSFk7mg&H 477ZܗLkBە2})!++<l6r?!LDfM%Q@[ a#6e[&" Im]M8R?;]5hE?tϚeĈHT.,[(/3Yj eǙ,lb%p?FN}ոm]s{Uи@PAHmšX}פN*1 qTՈ囤{(SA8k )kA/_#`/ЗjPq 2Z0h|EZ4WS &`2]lpV#m@2TiDoIENy=tsTs "XyCP.F!8oj[PuΛhMo\ {l5Q /~(cbs}4R0M{_l*ͷ+͋Ҽmp4=a4I@&VUg%#C߆,L AtB62yYW=m4ߖ4/J913s!H_A(<旅zoEWٰLT;_ϱ»33AJl`q+ش{n~94MzZXg;l|Ւ ȹR'Mi>6{Ҽn_=ZIu^Kبڊ EikӮI߶w=@w< WSR4NwMrSKMsO#3fH7MÔ@3N9Ξci€{ rR4?x$T#I >1>y#"0-M 6" d(WYyB+a$eK&o&;,z5g64R,V8Zݔ$ v-5lRU6A9GXwuJ7lӸ(v#xw>!Fh/^nm*p&.N1of\LU{8{# 99r4ZF; Z}3KdVHjakpchKZR<0Nz*gq4;n )dH:? D$es@’:"}jY3U9*R, ̲*KVQD(l&m: Jq`M6̉+V[󳌼l eqµJ'lAU ͉5-H:6 N +6o=@L;z- C?wDnJd 0[;`<]3~cѝwѓAuͲ1=K\"{@\4h |e:t/2!z@!IpM}cm+Cwy2M.SXmCXvy}jx8uoVv jVeB(UaEV%ufޢMLjCwEYkW+hxX 2fR|o0IEitfvԭa%c!_0- 'f>8ݞEioHjWgm:1]܉Yk+Ud|54ifI3&o4xCqwQx׸[qrcLJdK2TX~f3uStSWU;,sA!l&}/5<'n&8H9+zv&p$Ksep CGÙ\8WO2|r&WLN\slsC֟!&J)ͿN5RaB#D%YK &%5V0" Ft|]l0t*g ge s5KĘ5fHwY^SMҼ*͇f؀msW4wyQ>&_@Tf`ckywԗDx׎zmAupo%^ e[nJe*8~U&PAc?P%矛 !?2e:<.)Rt3RT3=|!CgdY׫ow;mh1Pw%{b jz'4|&j^E;O}ܞ*gҭ"sD:jx_Xy4צڏ7H WJ~MQ'Z8SHe8BfVd߾w4abQ%eɽ+~y”shS) 2 Y5,l.tI'q+FB8lj3(7̜!1+Db Fdٛ+3d#]8U5+Ҽ/z{`CP y0a432 mZ@JaC_ᾼ,d).S}Q$=`PM*މ:gЁ \D>;$ݧCo IPHi2̧wq1)"'w ,PZSc]|TlިtǡZG#1^wMo/JPyy,^dBN&(:7c˹!Qgum;̛_R6gSr&tfjVJWY<43d:+f:˙φD)h}ݱQ@#L8><˦QǪ7RLCk̵l`wX<&AҺ=?@?6AkijHzM(4lbΫ_H9&6I\@&א@4Կ9C ]HE*ksi-FQxVNtGzUJ2ꏤ` ,ɤgNT2$Vʫ<3%7fcSTͅiA^'B4aEY93Ec]b_,3&z+&r>ao/p\t_T 5 ǁŭ}BPO͂~etF75RTp'{0ikR,=]gGIɚaE< f|RMZYFܶ_9j.({ &Ujl8D >HbP[R:9#=Q-]iKRT"[Yr@0KU<zB*coogS$mZORB[ͪu}jޓoK&3c/&㕼9;-1 Hwyi]jXsIp˖ٻJpI"8K_/vendstream endobj 325 0 obj << /Filter /FlateDecode /Length 5866 >> stream xB]Z0m0::FtKsT|s(RE'nNsi ;cæ]m>P is͛Uz7U{4k3fM{.Z=x ?9_0PO/Di@h>csOU@;zz0L/՜/pp=a-m\sDIQ؄WElDeӟ+pXvoΤ qvه{D aL;knNh9@[|Qɟ&>CR!WD@%hEiF%+usRl-WLg4 !a ٛ ؞^7fJ'rvY>M;wp)Вy7G!ݬכfC^tdYL҇jgA-=D~[8F`5((| 35` zI\؀fLvq[_5p_e~T7[Fաb'gps@# ؜ZrNzpj;]?;2hKd' `7܀̀N5Qܠc6--B^qr yd/Rw~i0uy(݂|rRkwǰ29&[ё;\awǰeQ‰DlR-$b}ё~: @G-^(a)}2rb?i0l5lԊs-V bIEZyE[P7*&4q:ϖk:y`;P@~N`:I!OƼZaPCq\}WI@bԁʽP+&5g}J(vZ(Q[4$i7xDfu2tu30-\V:.hײOFݾTp%Ły]imr2i^v!c 6q7rL UG#Ʊ)7wǡmP`5̲7yVokem^WyWX"M{W 88Cm~3 {C64%ߥCS&.l|S9l IDk\7M}oӺr- L\~օA% ]U vP c;ݯڝvgvfC8<{Ф U*fq WQX8d}C E%:W@i'Ɖh? n%AW!z !b$K|H4h\Ü#YՕ2S,0*;9Eeʲܙq7H9e3WLOrzOij3(u6)5oD-1o3XMX/E86b/~XAɋM`>Mᚸ<ڻ>׀\l%@Љ 412KzVzZֱ==fODeZC%=1:6[3#?"Ja"BoS΢ra[%|#ݴ'Ov7ÙAp8z?P&΀&'7ݰɮ9dc8kp}A܄.&+rڸf*ݨ^,Ji0 l{δ%|1?JԄYCV7CNvYKì𔆠*f` g  Qb;qfJ#ؤ~Z2H"KFpL|srtڛ3-~4ٿ уljj-,ގ 45xt3xUs=A9nXD7X^Ԟ89K'WtEWK%fcg&O6 ٢ uF_"nQI!'Vk-kNx}:$N~Pdql g%&6*w^rVSR2\!rPA#Pv t<1 = R]"Ihz9嶸 +E⹢x_G٥&Tz,TG[88M1 M[Ë-Ӌ"䷕k=LdX8;j kU >ZN2y}Yέn+/7)G1sYMzzTaŊwOJFm"Ҹ$Y$8S6m8tY)xH8Zhļj>Ω4;]\OӚԼ1XNNkj2pJC:fM] ăl yxC#6sCJM,1b/wqVc0,dclG K|`*c4k[k&E a~)b+&5R)R!mXPMލa OP w@kEޤY $ThA4ʮi9Y.zRѸqճ Q*;8x!<AJn,Bzug,JQxKw[įJFqBޒruT,qB(8*zo=$NE.^6$<0?>ьbA>l Cv>[5Ĉ{sỘل82a[lzY%SHnvwp Lj h|@Y@venߕi: ) *3f0e3&h#dLMIcwm*^L}7d ^x ^a ?"*{$]3FRa -\" 2;R`@dCl<:U:]FeI]>g嶴+IRtQU,RZFwt鉆X)qv3bp^+h1"r&uZ=|!mo.]U҆#"\>A)Cɋ)'wHxaNȅ6W4"5=g$GQW{vRtHryBy(g62Y,pS|GĆL\Mz \n4+7|=C܃INkwEbK7褱sn#M[1gS.?(',|K;44E#pYj kZ8?.)I _bBETRzzk &[[tR3HS Kt_Vڱjժ]/J`O?&WH|wWD6jti#(0dEd;[ ).X<Ȩp$.C}TBAË3ACwlT(TiTZw(u @l_K8%w>)uk39T>*[la2i^DTSNyFMP;+:A/+A ):*b`&hJMѩq%=i) eD}O[\JJUxؼØ I+~ҳéxa-%GЃl}.+uKC d_N.ovi$5(z&QR8I=qNk]H&HP{|S%־NDXpjMGGeSPXF'M 4f16XbEUTo$>Yk%}Vu/,zҳEJG'x( l/hmӲ4F(Kh%;zK"MgΘ''='.̽>hVЁSϱ' ѩ6+;DC-#6>8f!"y-W[4"MB;FX]Iۖ;E2༺Av\EHqzahnd[|/(FVly (jP7OZm.I ЁsBϹl/NUL7.Vފm(iBv||CEbKEJ= )BfeW\K?>PSxA|xIKXƩk(7RpJ UwѲ9U$~~M I"??vЗ/Dx6 Imd{U#s>TkHc{Klc̨qWq㊔m ( endstream endobj 326 0 obj << /Filter /FlateDecode /Length 4377 >> stream x\n}'ٷI/~؎ N|! IARZI>U33=%-J?9KuթS5|%Z_?~gj"VW'O$ϧ)xF$*WAmvuzsH>:Pt > 'OF"Fb[C7hA4PB6[btxWN SUގ}|A_/Bsmcu!4RRhAǠ+:?.CHqgy-4tjZ1ئhA1J?LpMFMOݍ4 oܾX ܉a 碒ͫ "xE>h6MhchNNFvٳ:gs>M]y[iH$*!THWv&R)Bi AQ٤w&u˗-CFj{HeI{G !`&L DD*_2!X|a+V {Br<7_sUn^WW}Q{V/: `";B7zA7-Xd7;'prcm1גv=/nda`Ћ0aЪqpGGn"eU}W_l*2Ϯ3W#2..f 89ZUTQ5Ë1 ^JbaVBY6\x65(]utp.jHZjOgiB l.cY`SDw0Վ-2{3W9s~XӦuF6׆ήl:&]!>`A`Բk- xjf>"Q(8Nk/%e UM$Dt9Cōޝ3G2aO7(*G-O3کwFz5s2JHTQqLvJ5)DGuo4Q1Y䒈QH|M/ a 9s&nYaRcL!o^)@:9<=:sit?0x7UP ۄoOCMlFwr`C-Az 5о,kF5 qh7^V_c^[K[36YU3M͠i 5/"JͻvU蒅ٔ.n٬ T`+ Vтt5ڙxQ [b* gC%Q?tɋx崗m,<8rVb}M: ˰ÉGm@VJ-{bYm aVcmL;c f0l,Na(=8$ԧ"%wIB uFLV2|f47ɶA*M{gwĻd'ԥrXL)`{D5sXa9UۜmM 7̋$T% ӴRˣsz[ΒR37=@|mf- ,oCg. A7 kr=Q,σ]Ai%{DRKм1H@D%6O͆p(CgܷC׸%WnT02!ot,p;i)(A-9#XT1ID10 g F>x;9Ófw~*92(f]EӼf~7)Rq1 8M5R^F X=؟\`!q{Ǟ35 =I*]菦)Nr4TSиH$fbhg7ٷ"7Y|ttۅn&d"`R% gF=O]?Ok.t-i\1IC#`1,GyEznracXqyK6.-EpopUM`Bf-46M"f~M lcEnj~[@א ' -›<܅[M:e(9C\Æ3vt_d>>cp9cԜ2x @p<P!'|}{d.~[5sxJj&KODH)VA.C-w^Bă%ŏ̟-bwy8X^ч\ބRDG_c/I)sQDvaX=0;T) Q.Ń :`\t!%qqMqS5P+@\Š S۽r' /2r97VVoʏFV{B*౤KKc.vi|3%#diJ[cnPK$~_dwD~o*w2."&r% (|qO}#<G3"TB22Qfb5RU 1W90,c7M0H^ܩhŝ#V)9aD/>0W'bڮ"^ѐ#lsZ]7c1U;ƽ -}7/ܵXxt98S7Tp= ;T0j)h| W*7gsa)zq,U'A,+F0J/cI*ed" ۬Ӽi#:"xgP Jogxrj%iJ8޻Y',l'M.P_>VnI EwV*ݤ0aykc)<8V\޷xX,]-r1 !6:GƂ|OC< |(`=`7ٌ?͘%ca3<ےcޡN1զ>UU%)Y4&?^)L8]Drodz}FK^c|KfNhѪbV)20טv/bX,ge8zpv+f0|-J[M[CTn@o&S0^%-%5(~hJ H9H/8 ]4t-@ &9[y&PwzcɇBbûSm~Gx$23==z^XmNb|&VBUOzXˁY6\qkC,~ i*V= 9&`,;V=L.#ܫ'%&yGw\EIaM I9> 6P1[M?`W/6J_) ]9%.R5)Gw:Z@ 7#!H9]%Updz$q_HZ 0:gvsTtqŅo; ovgfKw42h/82xBD4)Z3ºpk 8>(/n@1X{yxlSzZSx\Q1a Px`ZC$.]0G=sΟo/PDߑA5Q{M=62qͫ4 dSd Ǯମvkrt5/U{OY8OYO3<HCB,Րyʶ!g~KM  7CDZ9"fn]Z5gYb* G+Fj=Vls"7YiEn;W;Vsen~_}U>kg|el- zWSAǀEnkE.Ξ3;Cq<<@—{qLպ"+bu=җ(I J:^_cHq:ɏ71) в,w]vW%]&?s| 򙚎[Gi%iQo۴f9&=Cѵ,44ҟseHvՊ7Ry(gi$x99TTekW!Q"`Mm~MyJH1[>+TdˏLN,~=%HЎBYͬ#8L)& _װ0uQjc{a "KN |RD~3endstream endobj 327 0 obj << /Filter /FlateDecode /Length 5842 >> stream xOiV_ܞw.gOg~].nWt3ԄviJjuU+e]2nu~{l}z'kևʹvirɮ)jscwf}c/Nޭ_Ъ`BD&L03ޅ%ũ.6ְ6MMSEQj /_!R'㝕bg0fXsdG%kԪ'=mB+x+ڐI }{~ [W%BhS64)kK 8)h9_@a5@#gk6?W[cU?=[3Ӥ ڭ\|NeCCFfMe Rr1&<ë:|=|kbplFLjgTN[c.2i}e2 uޛ]\r7㕳@;ݵwgf\3 jV@٫3( _ܜ}(CXD 6< D" 4:|Sx_y=F͗ &`rs_:nj` (ERaᲶ DWN0Hu4KoucxUX+X0)F͔`gqqc Σm>vA_nGhEL2((_ȸP\~i |9ӋǮ~Qs9w1.7rӡh,\+>D$4c*/?yHulUI?Y7;\,leS ڠɆ%X ln@h=(9\4I`"maӞ mD@Fm`0!"\֩K@kTa,< n@30 Nj}xKzl2ybi)W ?N)pw$}a 6~Iگg23KRIx_gчH@Ûv ~I YlH'Gm[Y ez tiqd&m Piy&[)w*ºUj9N7#ؐ'-;Irp-؞=_ho5! Z@漱쌃 S|dsN9{f3rak !qgZ'a 1O^}9Ha"]ᆤ<k?s uCVp@$xpq"͗|kV9OtJazѲ)5BbvZ*2e\h&TW@%.r_,&[?e 2V;chp E(8Pa#^XtظG|w|'53: W.8㝫4ˡ܅;wJSrKbBm,S Kb b @ j}6c2ME& QDp>H^,xYABy/fP͗cK9d5 cDbOL %_+T$Q/uEG~6!W h'(M<[,GC̨g*;Mo0 l,z[b?pvH@6S\ާdjn?G u*AU5$}cqGf](GH?;go7[^ |IZ=Hc\t*6ikyQbݓ!E_7lRSgxHɵd^x2Q4D(qSIY\l@ CH!II&p&*~<`/yb$+,}51b8@gu|0KDF W{5pn%Ф5RjqQ陌hxY%D`@ŒT7V(zPX7׿|v!ܛ / ,me}Ab8XUEc}z=Do@(e0Dؘ\g 4~M wݟ)7.uEĮm:u?![unG!n:vu(: ua3s<#?P`ԶV1lɊ : FXNp)+^lŴt(d-4vqe4nC|[X|vKD5_mw7q0Ș=gB-A2FF^HI$ A:llMHA#y iYd0-@xd+hBם7?Ŭ^7"c2~Nd/p(Xy s+~;Q՜!fib"% 7e?sZ#Ԋ`!o|R" v BG^Jc-uPr.98Onbq\}Ӌ_r'q/'w ϖJܳ9gJ]J H2PSw Mkwr19&)Ô}Km}+f<$hb3A2$yWav<-ٟXцzXTj0^uD(=CXO-GܑjB;IƳe^DP56,ɸنՍ)yvKlqXP")&D&qO0)z.1}"3Ykw_|0$brN4;-w e5EQߝu-X(~9! 92uJa%Zl/"P8-(CnA?&@ x¿@U=)Ļ]RӞ\ mr>Is_x?aLXAup\/olrE" UJ(<N .o;Leɀ2#m )Km)r-,| uez?:ŎV3$0%gT p]$SKd[V- RIE3G9?~{-]UrI Yyp&=h`#_@ @{̛^c-nQe?rJա'b v:S~[u5ɠ wMME\fif]Ȓqѝ]$JQx}}U[K}@9 = U +1!gm?q{]Pʔ1o !v"h l"^\r`߀\ _l7x,R3T N T> =qϚtoN_רj_ Vkk&AS.MQm$撦=q[AP"q+gr E$$tG23mnV-%` 峸FOVi"0z?&\MgLw 9Bߴ޼O~oi`õ$ ŕYQNڎ '.ॱY,\wEH E^$Ҟ4I 2p@Ih0`Yٔs$'ީw\fv,`!c;iKŹjkh3y=y}dgVuC"qFl aXMs":K5CK}|XrS_d;28)$Zrj\C`s )xڎV S{>9Ƹ ttޕr^{6] i۸![K)FŖڪ%3Ƣ ߡT׈`Aey %M.mJrYa DԬ*ՎN0mfO뜃oݡ,-DM#O)[H %8v ?yy%L5k8̇{7VwRΜ&w < %)ɌGusd7NDp`N{N9T|g/RVb};[v,e076n%e8SZ϶?uUϭpuV."Ӷa<%0 ΃J޳Wo]Zv%ێ"͜V'Ͳ(X4R=$nPzZYa&c> stream x\͓'9pC**m^-B H %E rXkc{mL.ɿnif1yvƤ\,jџnt:0;lN?{ht9?(96Oηagg;k,~pxrMsmYǜS5[-l>ĦfAsFsZ8Qx7g56O͝V7 k= Jga\u'va 4W9ݶBY~A΁.SN6Bw 9OmT-74zA;a85мHyDmf q SYP9n-rIv1y`Jk Li+M+TgQ a)hn.˜R+ [fA5ǴH8Z3!'CO'{9Fu_5[&\[ 6%(ݜGɕ%RmZ.:&G"Ρ1Lk^0DzBI6̉{`f^%Rz~>zL Aą^N (y Jd+ RMJ@<> j$qse

M>P\aid͍@#I&შHVW#̕ryjtVglǕԯʍ̶iѴv烠4U +TBDdɾm,;=c,aGt#y'q׊NBpޥEA%B1BɓRi(#=?2"ٚ B$Zk'ӛ$y'ꌂ޴)L=ڍ@h8'q0" %p Xy@€4%G,Y`(`7}rwAR< #QRU$wΞz9*e~l8f{yЧs/H)4Z 4>$DcB֨hJ ZC^LЛyҿP=ɏ -}gD gëDW6rAqK39Jnk|Ne2qsN긶ek;+KJfmHlZ=C[ͧ PL4zX1:HʹcS1yДcTM An,ى,}X  T70i1䂐b0-KkOD1c)4g&|u4(Y#=BĔT;S1q%> K.a BYr;.V%ff<$T. C/voBĔu37T ښ/ǝe3t=N};USh@0&3/|pp&: O[sA[S}]:|4 2<֤Hyr8CMd!['a4iO13 0Jx&1ԞB85 q NC/9u ȼ5D`MA´bl3* wd@I+BV'9x`";4e_x@d5OGʸl1g7J t\!akЁz=:I;VDB ڏ+DbFր$Y&供&4Ai!YDht;.]7qkH%aMw%3͙orU`"]h<$>`(R(&AedQT5ݰXGtf:0oY"|op*j,R mu1],?,"]-rmLh+XNPrPrĚrHV_yzd ;ҦTSdELa8l ;B8;ڋb D Ph2/sګ40 dp>7 .H&})}6eAd Exlb4`)GY漠~p!QhdLhISvTlv村(Y(ejRzrTOn;,{$NĤ-bDjョjjrcW|bQVgRۯdڞ?,W7Ba|R}@7USbU/{gڇ$bg ^oD%7+"qxR7fdɐ5JO&&I?C`h+n(VñG}5TPVqEЍNqǻˉeD Uxpaƻ\8lBk(2i Y^eyLiNUdr 3+h&_WKzkܧ޼<`OPF e:UvT_|9[]ı6CRQ#S4'itZ rB~(h눯l*7fLi]Nn#oJW+vzZVut͕)=E. ;.Huf0뒮f?n@EUb5zϝTM;ډ_ ugq]@]1E7TE;|Ld2?Y3`R˭%!,U*H>K`HA8C@_.UIEo[=LÊ֟Qz*ZkiB7L#Wפּdނ'ⲫRt4nt+sc\)tדc\na]>ܙf$wT>WJR$a%SXĝRwy<ddxLI%d/._(n%RXͷ_Ȳ o7G>M֐#3GsXZ NWx> UY9#))&HIY#YAlO`rz/ >(O K>cWSEvݡ~_>.TJ^ػ@Ub;|2iwqȸhT?#=v2,T O+ny~(y<ޓC\dBZ 7\L!J6d|8ѕ.PxYS`Z2!p_A7GoEl>y/6bO&#<5q׿Vؼml~w]lދ|]ud69ʅ՝s~4=aNʌ}lތ]D rtT5E${"S)h%@Ҥ/>@TވTM5܈2cendstream endobj 329 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4716 >> stream xXXT׶>0sXB3*F1bE,3iA:ŀCUzQ "b.M41^S4ޛ\)D{o%y~ベk c1H$_69]''Hw-B{]e`%+ƌFnH%pSБ_o03;:.{nEW*E yzEx',y"##Bx6.7nWWHsP`&U]r 8b0ANGZ6|]DjC&͇\}k//XE 3̸2S-+Tf`f2;Y.f7g0N*f.83f>Y,`30f0CaHf31XeZƂI`=h ˥'-Zx.(˔ cjQk-_l2~fCׇCíZ[_6za_ O{ħ#3(ۣFmbu`DL"u%Tu40=Qǀ&(=$= VOA Tmj /. `:qQu=#3gb icr^EK((g*d뾂ɲd}7<Cg%[gٿ3z\yrT k-^Mi_2H J*Vc="⅓2x##[x2pFEE#GʼaqKp{⍸ חQ.N3Z J ^wvim %d.JwIfEk,NɈML"~|X J]i (ۯwq%8TUKVrJU)hN#N5c%OivxqTx[5p4> \wGy(:Y◸r4g?wANq%B4n8zꔡcW}U(rC^AUZRnN1v1}8T\ΗBvlbujzP!7pd1pxx]:ՐI!^sz2mQ" =LAX6 ԅ:(*N^yJ2(@K{~GކpQ_2r̠+Jke)憶J[#Tr 3ҹß:va>nХŮ  7+R F,1.H{C{ό@xe:3RBb3#'fl5Hs DwɅ?{҂:~:Lv검߱\%o>>3 KB/3.j8-h @w2@ [3TtM㢅X(Fch14w2\1Y rgd5p#};j-hSd0#<6.a(@puWFFR+rte=zC5q47pF6  b- IWkӗ-6R}f 79Y ͧH){%6HQnmdK8kјb@j\h4iAÕۈebU}tumMySh`ȭRorTxe : ?hm+SB<*ʓbcA%G$W9.~L)$-~i?6RW\c8lf ?PP=iY%%>OץgBm^lkJqaw@ē4*f~A%%P?OS+!Tjb8Ts2`ǀG,:SABp֣"gg@Fv1PJTJy&U5`z^21>lqiqiQY ͔g8'Lp8ƟYJ 2jzH/K*hiϡ$D)| ZJE$@bV*G[D@ W3p,;Ij"==.B8USM'?'~q^M%㿝q~r.>5;Q#Oƚ+6430Kx9S`[ X;&Ìy)4!<3_6 )mͷכc35lxgzI;2"^j8ŢJd%ڴ;8oTT4)\WB Er}͹Ŕv){ڌHOQ l:?>C{l@_?c"#tV,3NA]BXN+jAUzMZ9"%Rq[ ֯JWTvuۉ-fJ_4$vOp6ξ0Rbq)"̂c]QXZ2Η7֟0 %V{h7otqч8P2L'DpQi35nIE0~IӾ8ǎzț>"֗fkr\[܏_,NΌҪ㴊=A7rbS@{eOc#g:n.$(ŋN1QRpWoyC]@Vu\Ng่Y l ^k'Z>ݚ=<<<obBMEEi{ MQqY$xfYr}CB}p'L#ZIwS%'b.ArQs>=m;]wYj8 gE73IxcA^~f D!m-JONKIlK֓i2Q&T%DE %6ɴOjH8F@oԴNBk? @$$dLL2?/~g9WX)`CNb1m!ޚ 0vDq-e z6wQNo>D6=Tlf%>ӂ&-IA^5m%kDٷFf.x?0f[C&L 13ibOhYR͙/•L*}L߷p<+/ش>(tqD <Ak(6ZCz,nȔ,SyY+'ƅB0w:p򁷧9%Ci6e_j^ w8 WA6(uju k*T?_z/G{zn))o=p[0mNƶ2 C|(JY*? ](l_N׳L 1v%W]qTԡ#ԮeK`wwZ}DlʺYBŮrlRAHdb-hۣ(ȳ8Q B3n:d002:oZkUyw0to|KU y>8]' bt5gK/V&6Z[=p9 m?/M6RII5qGPNo3|qB~Jx6˔xCb&Q.hGjqubO>"ˏp1)s#\oH\o͖ t:ZDaބmut!񨂴QP N6ݣQ9:d2Ɠo*N4W4W 8o᧋qyzd[Rw0$7LyQR\S7+Z;ߠޘ^G8ӆkL"#ȲeZ 6Bݬɐ C@ o7r.r8#xe xe7n㰒4e,_CPm*w̢5?k?ޟ'wk:ED&pX5lh!2 VV(ae0Fendstream endobj 330 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1973 >> stream xUmPuIvEDVUT:J\jE$@B"BB 1EA%3cDEuh/XZGrZm/gcgoџwΞ9=yy% qIȘ˽H~8e &:QslL(eLP$,TedLH&͓. ]$ VȲҒҘDML&XURL#dXH-LTv$եiRejYV,]Rj2B+RȲ1dY ,uv⮤tE[/YBX"DDwb=1?"$,(L{d)ygVr_|B|)DE~ xngtt| ,_X4Lx|‟I=M6qr Z N9YN=tK"P5 7/3e4`ތAߺs{Eğ'OtB.lG㊽Eaқ&[]#u۷jQ1~@$o/"uC8iMp*a>.ܱi&]B<#r={P&ػ/ZY ,M`slR4z|(&93alCe0PK'ӹPx#R}bkjMܭOhUVBzVb G>PUW^Ti*bFa =#߳GZZz8ț0C$x> ђGXb4J䤣*J( (m캋CO/_Z-^omm;m:AtRr$`| g3Pw"kuSu7q\m Ts}̤.Wo` 'J`tS]mNrqFl ti!`GP#6{#P9>(E܀SYir\)>Ę_QP Ghi;oU#^ EzuUp7 ,( -?^؎N~(އɪjd-#QXSx(t!߃X\RVh䊵9Ą\ _%v$~lBw=YIj4)& rrJii':+T4OJJPoHjRwd,9 ɁFWSGV;MPpig=7C+1*i@;1(!Z n&?){,Ưek׮W^ ZGwBv=B?YlLm=gvBV( dQv|^F/HazU;s~?,@k(6MP>nl>~ ж\bR蘰B8؃VW we"±/(Cq͆]{…׈6y^b__V/$ Vr. !+{8gҫxT+iE61N8_eVvpDJT/endstream endobj 331 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 661 >> stream xu]HSaَv_"m;TiReQ4y1<ն1BTr{d3iRV*ǤYT FTQW}Pg7(/z~P R+ ņ?fCH)zv% 2$dI6 3%5f N{+mkl%-.++ճ%Cm9;8Q6v^x[EѵrBݼ#_zl=ķ3|[%8Esw+Gp5 M P8nZ< (@/LT#R:%6DX`^yN~3uz|;3geY ܆wߨSUʫ/#H}ғ}vx!IQ)JG#!W(Ak8 p,(5|E9h:2FpL7D` ^8{۵.^ޟS ]xr=C%`} ڇJH)Dfkl=5=بA޻.unLnz`.11*͔}@GG (qeU< 1iA&5:0F oþ'endstream endobj 332 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1754 >> stream xU PSW#<,3iIXζPV*U tcx@J>0B%$/'߁ ]QNu?Juw[ngW]ۙtEgd{wǹ3wI"> IRP<;ky]Ck؟Ѿף] ăjt~ =M$89Bu^#J6%ٹ/gHrr%۔F.$zZ)rT-ZdC~VۘiN˔*2՚\[/K7њFRVi%%R%-1fƦBYKk$5F%hԺ\#SfVިӇ-R4wJrU\%5Қe un$\"8AhJ&¤A:I&Es~{)n]^-x:~>a}=kKVe 4mb M_v~P;T tHt\>ES:^WXyT<<66scsX" gȕKm|[ @'}|C*-^mvGt $NU*ovoB hlأIIh^s3cDw@f|'tM;$o z颒vqOxXcxr ~e-wM0vI{L U98 ~UI\nU]n{?#j(*q`Bmx4&K6=t!'1Tڇ\pӈJԤR4##aQ2kî!vH9M9~ >/01-l][\adիhn[ ^f=_p QBRh8OQ~f<T^C\쮘h'LQV3!UBqb)D6G!t׋mA?8OC|(BڅIs 2绻7"ġȩsK Vr21&,Lʁ2q%A'ن2WW,C60Rq1VQؾ,U藜 I:L` A8!WA 3A >uǻ 4ʷ6L00=gwBb.WF٥Qr~ţh-'+T7t E8c-AЋhh)'h֯E Kn5UDc:1/;]Uocq;pPּ_<7sE Te.|%^t;/x'S܋bٻK)1.Gkz1#{HLY+>q z u@,8 Z,ނ nFbX<7) 6uf=0~hPP8D,X<$@[x`fz^{>CH ^zB|\.O ?̽#oC-b x_n[?Ͽ9iːx|N x'u6|6H”Nnk,nw? z?*_z#w=.[Z99z &I4-5AdU Ѫgk IIIx endstream endobj 333 0 obj << /Filter /FlateDecode /Length 182 >> stream x]= wN *CĒ.ZUm/@ /8I҇s1њȋ{pȵ*'eU͕UxKϊ*㑧Gs>S)\ ւUv3Lzl:AҝDB)H H (H [Z~G@kh#EsZcww>x_;endstream endobj 334 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1472 >> stream x]T}PT?]vۂJn`v!N "I&\IIMiN ,T]ay..t $t;q.:vsLf5YSiN.jv {yyΘOC],̗JM.OCYr&ZwMKI9rKɂmmmy&oSW:?Wjk\^gVp7ң&t]zԲUvy*w\qָ\ۯ-r|65rKjN²kPL>֦)wsmQˮ2qҒϐs9^0=^1~KK&l v"ǿR2hn4jmBV,n;j-UmuVM=dtH:#W^ʹi萪FǞ\pA`e橃efh n!MwfJJ̀iiQm}-KPZZIR_U>M}̟ڒ(H]]6l\쀦0j{PJk 䛼b|a+>1k n HT)a%{UBA [qY$ AصSߞ[,Ꞧ, JN#:ԁ];A!='Dto qEÖ^L<N+VzY0ϟ[ϡ ‘pԝ (]UV-*#>DǼT@EL$2p]zr/Qwa@bHأK=c` E GwbGwp%ZX I||UNݔUyF̤N?8B_Ŕֳ^t pOܺͯyG{ B{zÊpNQ rn( U EQBc0l1Af om'WڀYb/ ss1;'TAHCoHf$n4 2H>P_C>HT%ԛTzazCL2T?lj XŀEMw1Ŀus=Q?9'záKF<w|I_~B_3x?`i b8 8‹ul4OT{dn3ցlb{h8{fG $6gfMx;|# cm:\"( TmAUCl.vJ}Vb0S.uvW W;Of80"Э*{};~uI*KtEKMx=͆>UcYL2 =xV: qgꕳɫё6lS6OX&n[>uxժ?i?;W(endstream endobj 335 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6157 >> stream xYtW!4 % X@f lC1E\%K,[Vy,[rm! IAB@$$dB6=OAJ={ckܹ߽cѹ.^i͓& q;q/sJ=:Tfͽ`toKEiqb|BfQf͚16rĉ"ĉccR#d&ĥd?#7b2%#$df͞0!''g|LJx8~ި9 2q{#R3#ƤE>o_RҲ2đkD{ĩAD.-I_*X"{eNLՒ5ҽkOؘi椗_I1dY̝7rԂnj9n &&N#u0b=xH '6+hb 1xXDl%mbz)}/ba&$L~<0r{V jОA'88n0|a Ŝ'>x_s}t4)KIHw8Д^ e;f*ochYD~Q#(cma&[S o=k%E| 탻;4Ozُ傤0j/|]bo;xE}Hki؇ܾ.g}f ז՛WN?N탷| 3A; ;ϻ>A=Po"Ө`/v@;hߍ~~S7l Ӌޠ+;/1qt#RS7bD t<ȭRVȼE ׿wuň4yz9N=HnIU`K m Gþp 6H>,곖lh ~X2G> L76\,I'.bG=QW ﮟ9dPI ǾD7p`I4fۙ[~}﫛U r6mQ !}<&Z (MYTdt`gB*)Y']Ġd+@-* 4TFUXVcfW&|:]CJı!`˜J9L\( P"vma9HۤqSn.PZ-rs͓ABI>%&>>M㼯zFWg6}ҁ[K)GJ)@WzEX(SQYifN=<{HNCJ5Y:7$$eF_hF40QLH`>8OxcV5D +.-6):ao p̷oZd`@N<`j1ZUX &y;8 FQ4qk/W5.@o:-HkvP/9K50+yp.I9)dgaIɴLP=~FEJB8>vZa htYTޗ{t0pʐ+WI*^T];3G^q%n_Y<F~k"Ϣ{J0^K+(4]EFSnzg12`Y@5|+s%)N)LԖCm}گXI]$**ؼA;q5H!k4ABT4 {]E O |6 䃂YƝWwmFo.x_MHXw}GmL[:>qBPQP/UWL߮!^uG)kn '4)1z!잡YO'[lr`\Tir&;N#t\zZr!.W4<;kfop<g3:Xޠ3J [J]Sء#M >0)h{RFȹSPy„l'Tɫdh#u<ғwvMU%yZ^DiJv.oM4[8*2G js@#SAFWbƒvzOQPr^b8εn9`)9Dk]!P N䫸+<~vOC5B,'{.hofz-PQP?tqUMoMwoT-ng峖.)4cАP& ̔/qN%T|m䒟p[ `9ѿ_xnnvO౭KP`|9 `KK =scfٲ tm{Pirv߰ݕ4{ sM` ̀r5;HD*,ʼ ԰60P`] 8rd:&7FXo4"Os&&1!6]npvh/H.s+?w*Ԝ]ARfC*u+e'/֪J5,bOPOECucfLq6ݓhOԋS'Ow'5ln|?|jʜSdQKflqӾ`/4ڼI])m'/{k6[˦t=Q6<KW;}:P~6^,R e3 ~w_ەd}Dum $`ЊCw=mpߙɛuX_*ȧ:rn-?E2HKTծl@ NK5Z@OCRHJ/ XN~jF=yJFp\(9S$Nd751hc#q&DFV%v]|(w6 6` H\X=E{nةԊƴz"N+ Zn|2Zoz*2MFQmbN_V27H|~B[~֐kVkIΌ:p:[P`[l M{~s{ ̼?ŢY4 d6eIcpI1׸A]сMqyI!k 2:^<" &?vt`Db!}Kh^XƇfCcރ߄{e' ߪLJoF[rGAvةn!6O6o3-^ [Q)yҁL:X7ȿoaBbПȟXM0_ӆp/A+EeeԵ([}-h(B_r>Ҵ4-;&&vˇ*-x dkiMmrUz-d1)xeם7l')<2lT1cIb i,zz4dpz4ю< &KOVlup/p;.h2GGB>%P6O+)bL NᮇRFqM,TMn('%?ن D1:A+#A3lOzJFZzZuNCsmC}+ósY1˨8jKo1s㨉,_~gN=^~v_1D/t<|öE/- w<Њ.(x GLF;"6e&Fgr6\i-u&L? 3"ĸWa};[^4x̩ n8ȫEYKd_#l8 థFaqHO@;Ro]q SNkt @/_A5' ؇ ͙ )q)޴CGW lh*)L.31U)\$e*AqR\TeEyue"'\_y7T>g?Х-_ߓy !_ٟ _I_A2_9|)5tU|G q2-*/W)qڊY@+-@-/aVe~Ed)5(8i4(/*/ʅj@9,tgŢ24L9?i=Pu6dklj׃|"@9S4 uKK"jȩBKNaعDp7{w3.V]XǍ&Y~|9ाN|xh-hב Pwq+.J|F"I{Pp:mAII|wۚ5g?n`5n_jjy\թ 꾲4ZXVP.)'J=|{1,iDn-*+b_oPJ-TYrk6^WY,Jkl`1# Xpӭt* ;₟L3}5s46dsX_WEh0'4 F +}n;WͻmZ ~%_b &kPKKB^RZch ~¶' h(@'K<͖&G!zP>W r(Ei|EGwNOn)1 E7Q$m,X[nTؤN"hb `m;7n"KƑºw噝dl;ߝ c73=2yor5|GhlӦ*ϝ[((bo}eBBKZ]UtX5+|{*{ _Q <7hЗw_^?z>7@`7]?))Ј}NSJʥ~:dֿ(܇N4JG) wu km/d"pįÑ&\cjj0O]-P ؃|IWI 5E*Fؓ VȫV%O(LʔኑI*V̔Vءʬ5⮭hXtHuř aBvyj%@ "2 K(/H "+6!F6$*z|x_7mk) :a7* "dvydۙo\4c-}R:l7֫`K_}~?\ykXZ&k;SY-J7$.nW3:KD=,endstream endobj 336 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1270 >> stream xUkLSo)U:f{t3>LĐln NAdb+i  }YJ{۞˥BZ /s~؈A}X=me$'|DHj "r>ﴉUįO_/-t1&/Z_Vs bHjUԷ(k)bsbGNm9~ʉ<)UMʤTr#**jHؼwge577oTʪwl#kjT&xO!|$/\"DTY.o=A#H!!r9AФ0$%Ҧ`)T4u?oX\gx\Ŀt3/J]Wun#28x}MI4u 3+8eLvhT9JPDa-E%k-T U4uR m>:Q3hԫllMͤ=B[Zh5` \^[O%/ /HLgm @uPuX<8n0}VLotK'8K T[ͽm{,:u3c^Q*#y`htj"2 toɩ3pdY)k|NgÅg'|=-q^^f(ThsaT*6o;h[넵tAjİo}!:z)`mU嗙~%Wxxe@zӶv,%"Wbnf1UtS r[^O`¦b1h-h,cA)/O`}!vgbL36úH`zOJBZ//v1Ѯ3ʒ~Np9j^Hj{UE:ODQL #|кm;h $W֒#wQ.==N?3g>-x=B>A733 h_@W&+0msqqZ&q8],8Pa6 ;J7ڌvhuA*۬``†_&7=K;Ƙ蟝95,6UoӁ=2y@/t^ӗ6H';nFCCvU`!`C)m8 ObsWߣEwl1O.K]6iLkց zvhsN/M8,ra2uqwz:U[endstream endobj 337 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 502 >> stream xcd`ab`ddd v541H3a!3#kc7s7ˊB``fd/r/,L(QHT04Q020TpM-LNSM,HM,rr3SK*4l2JJ s4u3K2RSRSJsS ӃP9E A L@00ֽucź>c9lߵ~L^2FrR}_nrlsguϝ:W>mr-S#z|gx2%[euweռG&Ddlk j讪=W2Is'} }wn=eKӻnn ߡkEt9`koߢ9~>':yn)?zٻv/k񝍭Dɕ3{VY3vgW>> stream x]= wN I.KdHU1!CoMUux>gI?\g&6ߢ> stream x=O]kAɦbc<̀>4PD(XA|K:If$$:mZX ⻋}@fm r9ssB1{~]OE֜m 4L;6! _6lt]I$nLxUe dêL<2#$kf4͘bN#S!9 /{F#YIOjHR6Ex֘y@,{ }fLv&13Ct5rK\-RB &lBAeaISw|ޓ> stream xV}PX! 2110ETDC )pp}w{}qȧȇZELLm6tj8әNGD۴dy}}yXpB3o F3A|`3@‚֯E +%2dYi\Z(QbbE;wIu˖ҼQrB".UpEtYTż+Q(Jwm\YY[\'$*$#r\)헕(D)b KB!eby a%Dy@|4RXc؇X&ۋ%`>l?vێ%c)Zx,ʾVP?<PKe\c#Lif/ #+}7Ы*dW' >Jj&-(c'FL sJK9=N/c_WLI>^x4a,> ((sT@&Zvmk~^(iP*Lu^vT0E68:ΎF"1DAyРndž凟p6h'̕߿ڃ."GgF=~$ 9AJ̒Ke3>#PW7Wk@sPMd/`~ `oN*ʠeuL$-?+P(CQ_xGFR;]~ʕZB/n>U.e_%%NɊO6jh'~{ȽSaTt)ɾ|M+1R K'hJQ  '}]v@< i2v{[d֞q!(X=NI;pf}i+Sg|ԄƄI WWkRՂW:ϵ ϾW|T@hsJwƻhq{3LD W;Ρy0ITNAҥ!:j5g oc [5&ƻ|SF-ɯ 2(:a|_yAGV#-@仂qo.#]6\["!  c%4p8{ i xHmF(? :DžFcG߾5g(Vokpt:3^P Oj'/ܹĿH:M-Gno.hjZ @ۀ7{rM2<> Kツ'"b-+n( DUHVxg™%sx0O邀tjR;cj }myD[hпu4nh$aQF?9=azPJ4" ]>#c"6ظzt-Ug@X,)is)D<6}:tbwrLj߹N,uGԣA};9{;zY ( $!*GKۄj〹˛uupN3)HD/j ԑeE(mA9}*Oݸ4i[og@ХS+q)~g2rK qrrGR^gBo_աsVGd&'P *n$< :M\dAj°Xe!\9wqǴۈtv#-%P`IaYfmz  `*`QmN"VN*LSp fuݞA k 5VhMpdx \˷Di8VJ˹62sHruk%:/~)ƭIMfmTu4K ZYx 3 cG :=66M>MqiVM%Ky0vֿؗL6ڿbu;ްU^WX [endstream endobj 341 0 obj << /Filter /FlateDecode /Length 4939 >> stream x\Ksɇ-sųvÎS$N9bU"]Cr%R/ק.Iɶ|04 <]/7{W.ϮlyxۋOgE-_r{ ^AwrwLnbJx]֬Wig9B[{g.Wk)%Kvc3{MŭGa,cAwJ{K[o!YcW qJ;t$YrάS8޹C&VtUl :~hsݽXi6 ̾ 2B{Axz& ~N6yXv^}] .@0."N!1-885 tvs uN 1Cݢ,\޻K@ڟs _Z)oy\:3}9_ܟc9G{@$_Z!{8i$P @fm܋WVGdz͹z{L?B ]wíQs\(:t40 #̀,J!٦'1ȳfR>ɘ6I>cu67d LgЯ߇vS47^Z QgA0{#~" v4SB֌+?ڬiD*e ;avFPKCP)X+Ol' +G>{n]`Cl @E6v/zj/t\؁ݡ$7OGh w8ǹyIGHMn^M9[jT&I\s~ʹ& 4c(nTp$Abd6t$L}M@0#hrƴ G 7Mh[Hj=u[M=D`K04]&^vkBuc8ȦaA@,>ޟV jgs{A)Cg3>( X 8tHm)`o ;Q=kB6'P%ld}?Pt X[u5 #"-/ߵmֶ;`0 i<(v !fl`+ўC@o-ÌI|9}kvXt*Nnt`v°,3ˈk, JŝUv<27߮SvtQ]!#*I' ej!:4Hke- ttZ%T!vR*ɑ)]QӰ+.e-zB٩e8gLJQjLգAJ%zDU&2MoUy"^y]hI*gbK/$)R:6`~6q*1GvjхbL\ NNa8N#/E6fiLɯ4yCv*ˑQ(U>E39:}C Jx Yks"xWÌ'J ս+a1@;:+h;TKL5Ӷy6Hሸ.&D$ۘ!m[RlbH줱^6g1#.[L"3hk,׹ͷA(taVX<}1 !$tVEMmX}wvJd:8>_J.7pPA$ SYщ2YfA%bNpT#UW0D ĊmByY=Q9nWn'Ry4'h `t⼌ۂSQ4Ԟi(߲90/`k.ssbvv:Mv6jqn^fLԦAoDmZ)d%p)Ƅ²DžCH2vh4i}us/we\nO48Qn^hMR#a*j%~$e/aOZ Ӄ.^+_ur9H|G- =  ?zShCNSrJu/\*z]:;*d?7eFnQ_5"{M]bM1(l#d {ٲ ŻVnd+Աr&υJb48IskWBo. J⢑hT,q]#UQ0RjV;σPro>6pHV:"L--Ɂ,⳧1@SprILtZc U^G  ~s{?B9{%@ؽ8Fvʤ/9-n;sj R}܇uX"M-*r EDMTrT>$vâ3>:HUBˬ =kWPnzy7OΔB@V(J ^M uTN6z.$sqC5D-f}>$հIr0$GӾ"ٍ.I ڶnv*G 85(.|ŧyrzUZxF/5TC@>/WHa]$AV,[{ UcnfSb¾rܐ X+|8K:BJ%`r̵Z 0?D0DH=eZA]aGJa!VO|aL0&Ç ~rciV4ω~tRf}: #Yn78H|.'ETcrqACɥXfʰ*}o %E-uAKrQoN^ߖ,)Џ_H._Λ_əPi',<=_)o0,J==y}Ӛ@ܵ$pxIv)u:$*QR9V)|ޤ]n0 A ᶨ?F4L^Z*o6<%3%0__DCB;S O8A )l?p;HWE2Mq.>`sPDNtO)»/Y r0ral8*3{C#[Dk/ss}nRB?͓(FL n r*77u&uai{*S(C,w%RTf( OC4Pȓ(c"r=yɐhzHZ3U!(2d qN繢>UU&( ED4@tKngw%ٌŔNrzbF%QOflha`.T<ޣ%)_e"KY':?u/Mz(r\x2#An˯LqS.+!QsGqtOr/&H(7wIIPI{w}R"$wB̿Pv?Ͱ)_B\?8endstream endobj 342 0 obj << /Filter /FlateDecode /Length 3609 >> stream x[Io#F.9>Lf`vj_8@<0>%;H82%QY}ޫ]YMYq>M|o+\ ozǯ_^bya!_OO`S0G|AeKo}]\/::P7J7vцV0 ( /qXhnBhuwXP WTWކqŏWkct;E讑V1.C讀RRh30hg0Nds(tw _%n4)Zk`M!(ru=!l4ݞi9ҺwBv_ǽ}u;e 碒C9;i Bw}vН0n۳h a3||2\*k"(.9IΘyJpDM:@ގ\2.7e mW y!n7ESO yVH6aۜp_Z^u!?,G#+ 4zۜy2vM!! +)eo ྐw򼐻B~Z7Z+v' Pw/Ђ*ٌ^ * 6w2%"34;ʨ#̀g[WYbԽRZ k+im э'|ݬ2}Z`݅;#TЪ\ڸ9Ǻ7 vglT0hjxɦ0 %$q> aˌ]3- }ga9^3 :0W+kA˴CA?zLZAYўHAHлAPnLe] ba(86qKZ;kP= pBrPDၵh'3ni)% bz_~gl¶9B^6?csV2}DMs|հ &VJ6_kML*ĀiC8o?ݭdMs/G L,@S}l^&v ̛bY0`Mԁ$u(GrH9~ċA2 ;V[Z?iEghzzBN`ٕJ.zpr֧gZK>cF}7vp a sZ xJ_6'̡{?;۳']XHǴm&z +3"R;XH!ΖSMpxyȂDY!w|5<rIT=rJSoPRyv|P]<-`ų/K\i /VҐz)$,s=JbLgHtUKLN{|dyn 0o}JL;O\ Q&@8R%PGИE)liioH 0D;A!7VR\ޮt@u=4,|LjQ; _k9)?g:xNׅT *50aq= g/ ~TAМ0S@>( au)e$ sOG %@ *T ޱ-u48jnr5@+Vjȧ&ie?@) `qF% E%M#>چZRub[$`F0^Z 1]| R=SZ\عb${~Θz+{7.] g4X%%fWZU·9*8ԧT/=poSxQuRaeƒ Z4,R}P;*V̺9DF1J$':m H-)B45%BT#9`G]E;,]җplΏAtʂ4c&9Z`tdG*~0U IU·:*-lUެ(0˓/'=B=_r* ,i$UzT 1\+>WPaS#Y&PshTCMLA uc t|Ԙpƨx,6vlhZTS*oRl=x)p>"# gk R﯀wfZ.莞}k SNGaNZ^D)5OAZSB*œB}EUrfpY0̚=Ekir}FJG.9=1N-kBѾ,,2i(8Tu_= )C! e$ Эp:[t2ڗ[_-@ ΖUn z2Foc`j +.d7Mij=U@]rݷ3",G=bT=9< /uCؽ>h4%Pv)icn>;:6ƞOPԊt azPMZc&WT|ĝ֍(|>GU :ϞwY p&RjA|yJhҹwܙGI?&=>%]̺U3T(dMC|r_&kAvxmGۄ:4hG`K),z͓Sq*B-̺Qq57$m>+%F02<9IQHp+kmj|A>題nXGaߐYYsly%c/|%9%?z~Hlt, 3 :o ~s_҉Ԝj_3W)endstream endobj 343 0 obj << /Filter /FlateDecode /Length 5116 >> stream x\YsǑ~G?_ܳi}x)m6#B0H̪@'v|`O<DN9Uo{(\u W덜[wtKد2F#VRy"n~wun}&i=θ%K  8#O$ee\9`&V G/FC t(ؽYom\AQVrEŤnףyF*8 @P +\Dդt6kD-t H!QȚqlҒ/I|tK %xu#(d7c:=~?Vif+U/{^7Fqra\rph?̶?]iHڍ nJ/nbop oFo*'q=dY<^V1lo6$7ϴ6: kNMB:GmFE?適c9Tvf>^?$ՄlKNs'd-솩_g-Bp3rq<. w̟~vd63ȸc4FwXfC (ph,ތvQ E[O%*!f 4mL?l1*ec+e ສ! miw#(+:8z¡-g{`>d;ӴFa)`9|XI9Q^ o q)P5&`ڤ^n]0}sI8-s&\,_8Q\Sg|]'=v,a7hD|oFj}?ۺdĂCmSzAg >lpqu,u[8f4yN9~^K%|R,)!&!1& ;6Ŝ K . ߡ|:qG kRAE|XJFˑK=y.NVZk} MoV tʉ@{ϑzTUwo"[t_N;% YR߇8trxA/1ЎxX&;i8ˠ"*Tn \ojRqI5{l4ok DI@(ʱJ5W 5agD9] "=q g;Ʌ4(t*!Tɲds:~a3ipt<=QHN| [ ^{]F'ޓQTmR~]fv>1FgOC Qwh'GN8=0O',Ē;l>̈/#q R80(;ͻg5dD،v@/,>OKD1II+ˎijSnO)j#1hd5J'19 qb+i ፱>,l]iC;3׮-u"qmƭ7@^~͂DY ft7xg-Fs`73,v 7uèX _JޯƝ;H9KF\C2Hwi'ġԡ+ h8}ϗz60;LN^Xߔ0Uڟekd\A:@T#ިȊ!^鞇R 2lJ̶ͺV?|̞LRњqIٙQ7NO3!ܜ#q^774^#'@?,"S mBy L)c][vA#&`<( } 3]/u]6Ao;m E]z* ޓ`KaG8 R= pFWE}栩.>xezB3 Zr;,xF^1}׀Ϥ>A}M aタtO}Z| zx XӀHV*ՠ(^{7EpGݣ# )pD D7":(#Vw6Lq"j3㣤},@Eb/i:aCRL,cM 8BM:.U<>8)6l7^ڂ-^WM|A\K 1'Qم}z*Q '45cw20gP)d7B6鲩]]\:J˕c3)ﻫ4\a.;mJLn$EJ#3ւ)h*Dl;s}y /oK`g/[O6>cʨ`)P6Ŵ\v $>:.7Շi@J ?o2$* צZhl/V(z./\ m\ܕS]-7/X[4!% ,^)P 1RAcT˹9mqր$h jyu,kk@'ЧDrOͯAD ,dTLk2~&1L˺UD(rkcW$VkVpV,*g]{W]$|i6@n<[>Ĥ'JG5>Ȗ̴; JP|KPV{y~Ƹ7qMbM')1h3vBhP ^ΧҰo\*$w:Z 4(=<58]6r)~}ih^A ֯ G7d:U>w_kV4AzcMw=A DcEnf]v4#X x;>evrIjHax/P8u8pLLʹ1m}9uVqZĻQ(&ziDd˺ CX3vG 5quiCsUp: zfz=\Ytz{}%O~2KH!8yʹ@KH$PJ%e3gsܓͨ.EĨ^%NL`tD{a渍HFip[6Pʅ 'Bo[ X;ম/6;ɢ` Eݻڨ%rĤF{>qk@ +/&"ȩxZhX!Cw`Y(8%![ʌMJMƻ;D2O?jWj4T=EIZjV<{U-Jaa ,L|IC+#lɅŠ2£y3cfմ&OsλאoXE׶>jۇh]>DFNb)jǾ>~UNJ^ξ}hƱz F<_9n!Hc#WV7Y>Ca0~E+]wbœM(^cCѩ҈}pULV~ӸG4vs`h 4U7cv?&[|9dxK~#KQendstream endobj 344 0 obj << /Filter /FlateDecode /Length 5007 >> stream x\Yo$~ׯԓyFb w$H(yq`t{ȫݵǧnlrb 4GΏUͱ߳7G|i8:H=F8=cQ\Oq1j{|hasP j >'G_ gE6aaЂtB 9'|>F<ߧ1z " ob w0:ZJ pt ںj ؠ`ʍF*=]N8\mZ1;J󗴡VNawFpi%5PA(kjo$1g؜J6>w l1D;oӂ6df1z{^CX Ϸ voop.]ΗtΘ8|ZGV{һ-lmiEiu{~uҼ(;tΐ6£=-X&xe?+]pmN]w7[!%V9J`g_L;evexF~E+oGkJ;fDP"Zٗ.FYiޔ_L*f]X9D>]v?;{1?24]QO[-aj#;p|򇣓)1l>4-2J%i?|k GUٟ,2XWvn&e%;Zg/^lejSyiykH;;z NMVD!X{3۫JӔf6m9sd[̼[ۙ&*DNN&9Y"19Y^ NVY{7\+ Эd%{[ɡQ$gʹUV4WGDdg);E}.H ¿&Q[1&  & 7n5 M[@ήd'Dwur+#:׮^χ3>\`i }qƺ3t0՞3x -1}~0y \;y_|mxN󂻚"k6`N N=ʩ_çٝ0ʄqmתh)q"#&ğrսg-Ca>~pVpjMSer3|f@[*ܿC4"1np28 qԞK`Z"UUf,B&<DEH8 U-T7OG!t/%Qvx/*j髩w1eaJ5nA OHeҬtONb`$׌lokk%B1|ON}bthE#i2JV;̧o﹬&!!J+;e.. 16k"Y1Bs%ERxxs)oLp݊tV4؉XsƖ]&*1 Dy0ˆ9~$M3gaE3$>tUCQf%HLsv4 L|/zbegPx*P`Ukh<ܿF_3gw x62G069(AsF~Ock4!IG }yC2#ڰ]->nH6p ̗=O(18f*<6c}W>|ۃvrqn3,ӭ/V(Ąy$4Fct"oЉi_("h[g7Y8.jj8m){ٕ5g8:n+5bmɅ*ב>;kcY FIAg (wm*~T=Qa.4XBs;4VH[iwLgL]]@?[I&ܝ6yZ`ߕPFBI LRǽrj][v!wlx8Be<Řgʝ}##׉KD?%'F@+ﶬ-$ȞǭHKoq},:"Q5Hi&ʑ'ۧb<`h7i 4LxHaPkGe 6#}bx!$wO:~Bq3}jD$2#Z ܛ9QjO&c.P< 왔f[a`rzuB. iizbH IK\t CNDx""^%EJצ)q&$FJ VY 7K@iQXUvmm<17&sהOn-{ @PpW]YGJ'cK l.82ā:ZzefӚ !6r9Ij\&聂~yt8`Zti0fbK4"ʿEgԁuw=r|Bڥk z Izwf`U%)oz=>;AoàrݚEGŚ[ڤܔP fv@6xr,ٔ?US2&*܇4G4hk4Jn4urG6[HʊTk|AmCxN߿˕Wt/TRd-[{ê4Pl BMa4Q?*a΋vy־Z7uٞfB;bcAf]T:Ѳݖq6!i d\J,,kl5OLf*7Pd{܈^ʀ~^6+BJ/]>2 ﻽eʋoGǫ7y?狰̐~%:/¶+wm/Y £i;c_Jsw_v?;;4C?m%%'+pC$KrXA?%e0U`K8ܖ&Wx F=|O}{h?YL"~qmuMW+͓nKya"cX^ccLƔ4J3XRY:rHŻH/tFxvwCL=ct[k>YO9.TfߖKH63} !> +s93CϚޏAIsm llux,P9N#Vҵ8V=\?wI-b)CL)Jfiɗ= ^ \C QrA69 #ZQ:Bcy\3=@l9P2JC0S5G>)v_)c}H e}Owb>҂3ၴĞ}WEYh E6Kuŕ h4t{QU4ХM<<͍dTK7уpCFDR?SX $!j7R]PVJ]QG+KʹW9 Їx PG22࿮%)y|r|V]=[Ҩ'iw&ewlqd4|2?} 5VOOȜש,bwMr WhBЄP],vYL 7vP)Oڧ^Liwrڪ6q炪9J7B@ڎMh{_1dM!}dDMB:>mL)z*\cU E@t5sUh0C͇63Z,3T5 jz Bz NMyD^xxڜqoJ҈?t+@&~|zA{F]Bi7amJuT5dBtQMJc "|z5T3b)2GTȒ!wU|=ً+vơ.rWu P}J![IMeMJJM {2 ^#im|[@r`j*Uah|U{VF"ر?.L{|;)yFJQ6ʠ6\zgcrHe@ꏋ)9gR.&4y*XA~Ԭ*|_EVU/%Q {kRrN&릁nNfbn˷XR,zg^x62f*jp#Ǯ8IKz^fʢ,ɱ]O?Gxͪg@C.ht컇آPb!0 S>ZX2n5LP*><# }FJ%eA_%^Z ~rfӟ|i#&6huM13`7m 3ߧ">L!9B4ܞھ8w)}H]j8df+endstream endobj 345 0 obj << /Filter /FlateDecode /Length 7139 >> stream x]Kq n];B,,QtȡnΐC4!w;32QU=K*t#/BMB_yc/o~_/]'C+4eœoy㔭x׻'dݝd3Yn59|vY%C}AZ/}r* h:mL8" r Ѫ{4Sqo`B3榮YE?[U 8yH1{?T6x'U_űQe3}~2նo cbٯhW 4N~OWZ{M )\MReC)SXvTN.˦צ1Oͨr_O~   yr`ɟ}鋃S } p6l=~5J\׫rӑV~BN(x| ;uH{xnOG~F3}k;YYȑ]0 8&gf KA ّuhhpWP+$b04 eM'h:n"ùPmEqlIK+FWy2Xݼ+fHA5`g !X LaDdfpC LkQ3T&^OF>;(۲0qx)XD wyE#hohhμ`OSǭQu1MeۮvnSH}_/m&nˀtM9FN*SB;!'qwwSlqixV3[z `$]WX!qGz&9CK߾ޝ^@G< L0:=#2I3c~#n8ik38fa}<8S4MN<ʆ ڍṗ̕L`]%BiwԐoeu'0 @YLVdUr'HdxIU?3ö):H"醫[.mj |Ynx?v6_7Ov6TJe#VF@嶕Ѫ=+aRXBb//Wjqۙd[Aץo!f^5w\}Ctĺ4 ŎNەF̌w3<%Nb}*?**n/+`۝Z{YςR5FMI0/o`k۷h"u$4+7~Vpb<&YURpUeEp}NޞGw:F8icNuG.a*l@B' iV"7M&G-\ˬ iiʮ!30,; -wH$WCv0^ٷ(5rXX J @)֮!D#>#RL; ,<0`=B~sN5vص)` W<HC""|k[ GTf{;^2_w6 zhnJ @pzI:5o\p+ـm2I(vc0.1YKV"ĺx&ؽA9ޚ4x{o"rجkV$ȟ)I1SEEU 7.(DS]h H{"T 79SgSw}dk /ǤWU@ Rm:AQZh#l<1nPknmAld8J${ "RwU:()JnY { ^vIggK| 5$W ^vZ<.A ,g(LnA@=~iG{>uG-sTQ#Psn9G /f( *cu F8kH,8"L))ms7Jd,QMb ?[g c\jErL߳eQQͳgo7C*Շ=+As@* sƋ# T[(dsXȜS2LQFs`P=D>T%$8)?zHE :cj/[kMzZesA}ƨ>?W!r^dH1F||5nJzXHi(-3KgJ=IpC39xtx+MB'BeT6_#[{O%ܪnU0wJyK>nnިB裿Ex:]6gȑڃN`<%-]"xߛSoT=K~כOzWlNYڨ7{Qoڃ#na;,~H}3^UdL?:^hjf>g5)_8b,&7Lܝ6r+\qD ,JN#t]q6V~SRXqYN2D\I=Ɇ(iAa Ri 8&i &s︗4q] ;oDK9lse-8 ܤLB*0șqk~ ɫn&eT[=DJ_b9B3m6d|**h~Hxtrg/. }E(J9d7pWKW\W7k#ROI#Ȭņ˯s~)ُv?ZL{ux')JRBYԩW@!}j:z`fa~e U:"U-FK] 0ndBQT sʆ*Pk=mѕ]@HbWlDcL!K/[zsBwYZqla0fue&ѝr Rf.ٌ/݈' 0q |< 7+@pXeůewWP_ a_,X}|5 I, ˆ"JvRxhQ8aWL(*?׀/z@ȽcdB6+Ji\07]Q>u&?p)9!6݌_TSW8[ pÞdN`[YbEg 02<1{j3&k&3WI|VkW+9(%Xbԣ w$`Ί7]>Ņ Kc)pb6Ci٘ox^oQ.rxXHjYՑ(7`T.[ov=-㡥BTn?=6 (WKQAuN3(ю"#!u L<_jD"`[(Jb=/E3VEY5VVbIZQ6<Yy:*,"pu}* Y'V'([2|@C6V2 Ii%Tx?^›' 9 GEoY:9>2^_dy*$yR=hCQ2fFcsdYx,A?,<* KG[ExbPѻ57>S9$0myg͈[DZ.H|NP`)Fn21ʇ5ar0Q_cqdo)lM8y*XɓE:{apA5~y5?MV7қi,'~כڟzq.Ww1ƽ n@,<< ]|,h.r?U|a>I<^6-2VxMVBXMp0XgŚWC5iO{՟áA>5m}Z^udXQL uk5JDZ R| oˌZZ:S] K`(6lr1%# >4 @&aGã"v87B\@2xuCy ݈ |0 m6\Z >^n-`Ky'O0_tQNWtFJG/y ?"ku_۬umzyQnנ5w^36x<0`]Ë\ƙs=XXmD$=z"b@*q5ekR-p89=Y ߰ ̓~:)Woj/Nߣ3j62pΎUU syw|6]CbSu&W/>3%{[7R*N`Ã-/aːT?c`'f68S_ГHuYNgȉϪݏ//ѳ e9­"tVGEX\8"J]qU7ޓ 嘺¡.0/_Beo}9}Y(QMʷKU2g/\eLփNV*e4|oVeKK!(),8_{,Y Z^6=>up@lh(c_uBKJ# G?6tJ#ڢKI}BD*4{q8^g 2FJ{|\XX}ɏI߱Gdz#3ǘY0@{yeś% Q8bM2C'Lng^W ^kbUׇv xxX2_[gdv o }ط>vQ3TelEڰX(`QUqIdK:wCζ|RO劗ٟھ5?Hj$P+PԿf"U 8843=sMe!<{|هKFc5-{E# 'i>f%N/:'oud77Xyr<|y'*)F/ͻk/%wqȱ?f-zvd#r Wendstream endobj 346 0 obj << /Filter /FlateDecode /Length 3572 >> stream x[Yo$~?᧞8}\WpF0HU$V&Q`{FaL-U,Y'mN9Y[&7=<98^qv^|r<8w#d.:g&lu{|]  yokQzBtާ˕RsWap-syΙεggҸ( H6##S\f9~[H\TۓJJyu~iaia\1jXxam;b*섁`x :YӠa^wA2Lɴk5Y/`EǃTp& I(|M#SsuX hsJ5; .mt[/R*5?RW;W(hr+Xc ~ݾ8]57_.%v9N|}vv=|!;G΀% k(V XpL%%xgm M8x5ЄuV³$ Y@Q;U(j teuΌ鼸Cr^)εszyޡ9GN( cRs1@SF#쑍SPG$gqXcBߥjk/;_ED5^",~g$"MS}~ހU#BZظq$ (ZkTj։~NFB 6ԧs;F>zȈW؏W4qs]xY/pB?T䓑ixVu 93+]oX Þ\ӑfBT##kxNEN=rYUGTXEĀ~cDh%UptIf r%`V!?j%d@a1̿n'p;%5Z7ooHwH 5y;${}3.df$ XZDŽ#͕x*e$)\/DKNC͐"MLiX}{ >Ʈd&%}~gkq1m,RzҠBpWuĒ Ȓ~l?yV{d`> Dk];['r) (% Ys%S 1Bu.V8=DhhZ?Fոv=Uq?"Qϳ22wBt/)ś HT h(i2$H5BZ`|fըPX{8I 7yFbs\%)D{^w3Bd xYǍոRMFT0L#XL܇q R?Bu v@}%np?(ջ#8 ipCF6ԲFsQI"m#x"ඡ2}>yygm*I2_Fc[8yEF - yF lc9%l +=Զ0Id$Դ5[IY\{I=&dnw9 [s)GMubWsL%R!0StBJ}Mu*: =3.6dJK~{RNoQOid<>aۍ ve8w.섢A֊7+(2AB3JJ#.aG-c]:C[ xZm*5VqwPM(Gu{yt]pRB~T%6ideZ9xo)=c, H0>WEMnd.j=մ*m_U*X72MM_U-KAK}(Y̅<*Uo vX ;s-1dzRzEw|=ɜqBW_T8MP_U)y.p]UZ5#|gGOk8̕7#.iFb)gvPG£KgDK:/_pTGL(}$ >}^eyZ f\%[t+Vf* yF@0Kk^ )>qXqWɷ{xgYjoP@79vWCҖ"\Յru<'ksU?jlj=,]g ϨhDjrdBY. ͸C:gqA'`\rIvcr!9[δڃ^23nN/ZFR:kQ" TS--}JKXM1~^ C )@0UG ]2ssݽ8|ti'hxi+cܙbIDZI1sz3:팧\WA,#e%¨* r;RcN(ѿQў~֛6=iOePKW|cU~ 䬓7>WpI+9fCZJwGIc463-nߗc>+PTAj w0od<0徭M-pL3 [c0mf%~a;-koGiuPyR!~A?ALmT icznouNޤԙaJOC\R?5y9pǩHcm1EOB䙎h ׍ X%ȶ 1 1A 8gt?ĐF-k `* LMd!E,e+HsX7|O,Ȗgɧ"vw0  {^-jЗq+"Yqv%m!&AZPrнE!lj(/PmAEV ,"Ί]wN9";87<[ o \˼eQKߌ}it{Sȼzf3j6UgwonB(|;ۇ-lBCΘEjՍһM8fckՕ N >z%^*:f:'t#F>B[{ PjVI˸OpJ@!x8`i3cnUSږ60W];ni|;FNZoGQm1upOzՖG̸)rkÕI1rW}o.aK_ѽ1eHʙUڲ~IA!*gHjf$WR$w3:T ]*.iaN#yQ> stream xUU Tgaɬђ (J}!Hy6Z$ 5ZP*º.bAQ-B1AvSy? n3w{)EHcIOs4pž "z[X,@!)&/+6WN>UkZ)ҫFF 194}*J*Ԧ(}ᆴ MN6I7o~_ E-b)/*zZAyS"ʏJ0j)Iͦ9T I ޠ\(JєPK}g"n/ms tx1XIY@4N/-6Jo`(+ksr܆L8Qɥ't'(>ռzd_ۻoJȿJfl*(#.u7( =طn@S'޳&%$lp2L? *KBoC+:?cUmȌVae^@ l""D+:2` dN3wl7謬} ;- r~wX(M0^tX[2)U}TŖ]q8p|ջSʐG5ѽٮ/+J {PgZ<=7uq_QUoACcx?0no"yFBP ZlOy;,HxPCG颟3P!+)K¿}gBloF\֎ÍJ GM8-}{nTV]5Cc 3}+?Eܓ˹jelVd=lЦp_&6DK+82yks!GvK2"5n5QؘYlFF[ ;؞T|\s􉪚M`d 3 v4 R; tqDk'%n v:Ի„{!r"Z.1`rnK#$='4LzxRucٌR 2kFSӿ .CðG}]z)yH4SCCVa KS"PZ}2Ƴʕv|q:,e˟]ZG,[U$s& r ꥻ2؊+ytc\Hx*'?{.q lN6_ VY .gxwQ-E!(DvSK(8L r\' %#ﶸ:s;[sa4YGS:gD7k/p6ԛ%#dBՈN:<3Aq73_>uEM@FnC2{ʾIlV,hN#NR6xD_dIk]`,@tx tMs o7^Ly2,`@V[Jp !hbަ旡h(?#. >fQl # !Fl}K}IIM$ARrJrJ\Km8\C77we;;-O}(v)h&fk>Xo17Ȗ]?x_O!w֭RXIc(^ CSDdv'6*}^npqb\+Rb+VoKCm(_>xӷ*!Y '7*\QPEYYCΗRԿsbendstream endobj 348 0 obj << /Filter /FlateDecode /Length 162 >> stream x]O10 @UЅUqP(/ СY:ߝ|]FEehvK@Fˢ@[;'nʿ?`5]M$WBi )(I4E6ƴXI{`06:?M%K17MR{;RB|rVTendstream endobj 349 0 obj << /Filter /FlateDecode /Length 7167 >> stream x][\q~'#~l̝wЃİ P쵑 rIYqK>}f4zP먧ui&' gO'?s<5xu6i>qW5_/6 ڼz8ϵrmx^D_M1®6kͰ8ۗ?_ |qx1]~"i^: OYD_AwH~w~ok7~x/b⟇+y+ζnq8xbvb^ab< &G9؇hC!lj˸{n$%=J1#!,~=2˃]PO &q %#6g6~Ʋz}jzW/(vSm~5l[֯&[g~Q ei)>4x-,ͧņ Bk'lh.G8\( &>6Ҥ2`xg{i?;@YMA[\B 0`*n v IAh^yi,y?d\J8aI`!F4+qT|uʽ\Z;[1谂gn&.r}/)-FwS2 w#:BrqkR1#XojsWksNI-\׳ 缙7SluQqcC4lSQ9E.pSi)4lzrFTGz׈“&Z$Y&VCM[@:|/iÏNyEoͯSdFkv[BQ;d5} QK$ A |UY1߸+ qF]{B69xcrodsUk*trFI˻Rm)F2nV\^:W+;&/~ĖB 3j'ly*D.,092oޯ15YŠ0D"P;%O9{"Gs:yyS5XQbJh]uy\'{fa.%Vp]NL1LNk*rk![$X?mU ,V!i%vDmK.* ƼųU]eVVQun *WjϷskBՉ3,?[T@ZU 4%p:4pdM΋^)'xͺ&RnvX\YB3Ya^9 HoqVpKz"B~=GGvo+FЄiJPէ$8kE$ 1orKcs.e&tGNP}'\kΧ's.:\Twf |pdٯ!I&nӫH}.0ɯٽ-l&`("U|ӠlfleUa_D"Agu+4O;cTWGQiyy,:|R+y;I_XeIm9uؓ>Op=I>;3pc)` ߂ 5n-aWrgu% PPlGcݾBBFү,Mn*`B)+pMw*FQ+'[b%:On ~렝"̅did;V6w70=t&0%iHUۛN1vnIY!wJEZ#L¥oVONӊGIHй9ٲ0F'4$VdP, ;̩5SɪBB3 '_^{!@pUZѱd]z_bĩG9=4`znJ"jpu.)R4I gPhp~'A=,Jm85M_~/ -yB@<9ZK\%E2'ƚ!Lơ$o88T9?/ͻ$^ysm֕$+k&S { gGAR8)O"0t&UTò6FΤ|Wچó# wlLY"ow-wku#<%DzE`Ay1;c*LTqNa7+CBpC1fdJ= *3kЭCJ}< CDWA5,UCb9c)O!/B [0!:s~ BuFaIAHfi9kc6J  $4iNL)̙31 P"1RC-hO،@Wg5n=:&P@S0)O w[!SpqW%Ov9hL[j _Kt?)Ua1צ960͏b'hLΕ.8%V|DXpK* RI+E[jܤ1bL_E%L*2P`Xup-R#phN+cky1s U.ɞ{](eGvJ@DZK`|?Fb+@pVz`k.tf|8}O.Nab\@Y /jCJe?Q6UV"wc%QeMeY yXIY̨qQS8@!IJwrJyؚco^ķròA0YjnH 91k# | Ң:\9 >XM~I@gy 2#+On8R!'`$+]!,P}}S=Dwձ@L3S@s~ t?3F| В>'q,MTH:L'\x1\8e +`LN?J2h@?D*Y2  I OsX=~C6@@;vhh*;# [Mˢ٬mIi󉎑a~l+懒G_}ɃC4#"=u13>nc_V*w_@ZNL™`2oW E{}ùFȮ&x?(\r Uる<Rǂu $U};?q6xڀi?~@D"W =;TD+ҸS3YM.ї6(~ I7\&yqHD `.'~;5e>]Mo 4<%`?~Ńlǘڤ ;+bu8[OWiȥc2Cr*>˛E oEsF}W%)v VI$ȧfR師vJtE}oOfTPc 0a/?IE ü9I9j͏fq@WJ dLmP]:b)L]ƏDuEK}#gV Ht_1w{ðCTSp떏jôR@k_; 'j"n^Xr'WIjz&נ<5 xUy\Vﶩ >VzD``vSNf`/p.Taj5h?GNj.3wa [jo\;Y 5&6 ֲp*Q}/K-b/CtPغlͨ6B(ᄊO"3~MN [;dnKm_D[.Jam`(XDzW׵)aWp*r4WDy#kiZ7 .gĦŻⱐF2hK#5ejAv[yQNW c*H\VZ&EqYit| ƠۗfDj8( 8kX{ :H]t\S gÜj;\1jTc.@) "me%ݮ <87)i6eA-!K Т'v8 GBE1:K!gQp!1;uYEg\Ul鬒p"F_%WfW o?}<. `ZT\aKӚatdd .)p6lq446iCh6ݓ t&P*TxFȩ+/OPs/dP~,C3B<)Hzj*5h0Vc,6/-WE~9%RgA$yc'spjӒ88eÿ5F4bW@UX{v玶Ϟ ӽ:{)릺5ۮwqẨ[A?צxYV*9yaJ_p\a({K>@S8AӉ|Nv:?U\4rulqlRl1ij10QVhⷮ_h<8.Q@Q^v"`g#Dl =HN)BDFK/ bgeb7>> ʞwE2- |x erjJ`")%- un}9W 8$x/dC /Hq6Ƞk8+=te5z/4~e/tr2ubM2qӛ>e[& SbQ0ᡒ =#-'m=ё)+}w@j9z$6|endstream endobj 350 0 obj << /Filter /FlateDecode /Length 5419 >> stream x\sqʗ: \bWʩKV\Y%呔NJ*Ӎ`:ɺƫn(N'?9;z8NN?WgCLh Sg/N]q*T 2g7'g/G?i57(A 4i2Ax2 5nJ)K c1ɚ%4pyd4iݑSrt  &'ⵔ0v&c%,{BIY ^f5NAi{/fx1&viF؃Tq6NB x0uA }yvB[.#qCC(a?")x*´he1ٮ@g? P^ٿXChG.N6gxh8*3zkcWM 1Rvb-:vfxg ÎsI{8|:eTOV;?zj;`ow]f+h[Hlg" -7H*'i'9//f|,43MDj 7^A`g!r}Vg]m}W7ƪ`AH]O*`Z%0@(gI%I9a& Dh$\Ab+;RcQ0hJET(WeOgItWcԃ!XlBBk& 8p@ZȘ^4I`,'1,6+O  ZGgxVI gᤛùl oQ)JP=Gh}#×W;g7oy>-2cstb3/{Zc1>km u75Q:pBmB!JA L0q-=5 g# kd$?(v V^2I0,s2[MȫAᘩyjP謰(μ@h(>P{mG9_&tas\ty切 NIK}||ݗm!:fc^v&#lMLoCuWݵd':T ,^JPY_VZ#R{H<{z xk^ۑ2 [{2R{HkfN4<؃b8(WOa!jxss.n&IyZѰ`Q%}aV3{t/2s _1 8u '1o8{Ǻ{z r# Yqrcodqfr@ Tl~5 G\i-89XMb&phHt#3zOE;.EoˈWM D {8 pMpV[ ñĵ.sz]v C͂=@ usM٘|{n2ӣgͧm]QϬeۄF4KߥS[\%GGP @hLS *bY;%YN`KD{üIТjIGU$ya BeEk? J򿉧r,]i^Ҽlr s0Hދ*#a#ߌݿ%hNZGjm}AמPԖE38Z<N . o+h5a*|@GG3#$$kƩTG, vw>$\Vq]XJord|%>mˈv,>㠲ORL"8[b =Tm90:I.1>v^pbgNу )Ipʵy]0C 7t6REjzI0$ůC#tE0zBhzЮDaJm2*rZ1m]}a,ftL|{:Z=5ɞ>ӧaE4s؅u90:/5%ɶױ퍄`Ǽ4Ɏ\>/7mqGexxbw5ݬsƷgY"ϳ[zhX?G mxmێJm7md]E4}TwH-֠UJ{$TMb?P銦F,\6 Ґ*ƶ4o6-q)˧Js_$.ۢse'ϕ |y^nr"XVцu%+>; ~1"H' T (|:iGR`cǯ =d/J:7ZH*rk 4:¹.T:QUNo0IgX)]* BB: 2nAmA5Cf>3ȇ2֟BwlH w@Nћ<\*a Cџ.:蠧*A2C>A'Z9L* ౫eK{qVh\?K*V ۗ\#m$ߔC .Qk* ܥ01$͠mU/<6-Efbk#&H񬚜pgU^3**e"U*DnR S,豭K:DG' a8(a7Uje:;ru ڹwѣX*A|浌Mټh;04CiNWN~tC!ҩc5?Iwph,jXߛdI`\'_&p7mŽ=ޔ28L asUUCŰx`n7Cul%s,^My;.2܄h ]yɼzc Leӽ^Zh`}>@=,W ̘A(0/F.W5v٬c Bzr/q;tG$`G`~BuBC²Rh%ݪ6 ;VLX8ŪnkBڰ;U1q-8iNʙ@ekf? 䡢)U^/7/of-!}3ok}ƦO[tx2OE^Ⱦ¢MF_g2Oie!PU{){`քO|IKy̺Syp&'*B^ŬB, [Vi.Ee|fӤY&၄~$sDk"izOGo<>Tkdc(6HӇޔ'\lY_q`Tv;@? IV8ViiVEjˡYF8pʋIzE^|(Z~Ӗ/"6 Vr8Ze 6vv:4 ,2}3oGBϴAͣaSM lФiXd/.`ʎ04Ylמ=Vz,d; n㳽8~MuIwќfq 3 7_UbC`=Raw+@Ft{({_k -W[hr+[[n|-u7z 28~ hy TG"֭>ɓbtnS(U&Y'ae,xCQ!th&_p\OV_nLCLSsj`W >P$wtM#@vjv{],/jO:?74Qu}_ʼ;WVO-} & SWWGP%zmGG51KQ-S~QijB7w_J`HBFi5Bh[ݛj~/uiߋصq6܇_D=e zߞ?wendstream endobj 351 0 obj << /Filter /FlateDecode /Length 5714 >> stream x\[s\q~@^3yKsrpqdډo^ک*I.ɡHQF !n*ppi z5b5?ѸѸ:?z}$__C1OCX8oJ07eVǗG/?jlA-Xn~?^>ϡmF6[Km}ĨGk/S0G;OK9 aWsrⵔ0wFJY<~cx_']YŎ8sZ?R[ۍ1q.mgqWV4jQJ!|a+cqAt#`rZq\6%M]76]50mZ!iijFG!,ÿJ 8@kqY,sZ=h^hW%QFgÆ@BziA;a #?߁ x7/q$mT0hvơ8:g؏$zik?:$pīW ,:a2(0 [~IRCm 񨍷JkE"6 I۔cxȍa8$,ux֧EN(agyL`Q@!AO\~\O1&u:kuTt򕼞u=Z"}qa/JiJ5,z%rVH9d+@ Q3<ˢ9*(ea;AX:GhE؂NAaҜyw"icdc.πQTNDJCiu)S pf&⃰blDqbdẎ /D#PD7WEtr"?D*0ZݳTMwDYV(Hz@)J6VDD>)sWBM73j!8>ӯ`jֻҼ%J_@is?TeC۞^{\E'=2z=$Ί M As2 ̲Ej VNhl - 8|V6QEz]Fam&L+̭ԒU=}BHn7*Vp&-ctWtjB8Qϣ=K dlD[Ŵ_ТkAtw%٭(V8DElJכI=h`~VI9! _Ԃ5۹$iY_goY7ر]ݲu,νEN؈"X&vqB~4cRԓ6'Pf2|E3lZhj_̬@:l+ `0hAIsБ\uZt4sAAR7Cur2V|Զek\k{$n+s†˶Bߕu]YX\~࿴&6>[d`k] ﮊ8?tBs?Mjut;HT.+c$؆fTS#i`Є"O+̹GkI^:h(qFX{**tJ2@M` if%gwMTBQϪl9ś.iH$-(azgRiY‡3"1%Tť=)8zm7HFJ.|Ejg[챠\ nIAWzA*$<=|: -LĨ!餻]{\ \x_TxEЏ=0^& ՇƦ`p/g} @:(*;a0_3hlfg> E] zt_ P\{r4F / tw]/^"Ku.9t ukpr;`KN `iE:_dy5& y ;C_8fd ni<@3«ڀ' (:(0d1Hy0̐EU$^!|0id^m\-)~QK& pF%!{oBU0%PXua_ :30*]XU$YW8Hf$R"oV[l=*/%wK1YY .+# V%, i!u!9s <;) ҆a!89I6¹RYulFi;s'+ZxqLT~%`ҍQHcXeŰy>rET/Ul-T8PѦhuOY FZaK1E}Q L!|!L-L]~*Ğ %%cp |vR@TdnWQ\tCCrx2<§*roxΆ& 4ޣROňc_@]DVW i/dܝ-Tj/#/ f4omf@a<8?4/J4wzJZ'$͡'wZ' ?S^7hl1z67G̷2'fur嗋-JugtTYBMKP0FS\ii)WufpӃbSq7/SAD%NSc3 u>1;}N~O C Z/hp&+fVf吕Y`EЩ8\ 9D&V1 KH\80+`q\A^TbLwd95<SwI2c(?Ft*RX9J& Hm1#tm$;Fu$4ϷN >,蚲 K0+JՂf]2E>?kAu*,ޱ]Uwm~Uu]=H zL%FI'?zkQw%ǣ}ajԛaRoĘIXX]Cוq׍_QRoxuϴ0R mڅzio/7TkIo&[ _|om?^Mz^4Vć{]rw<+I7 H&Q sb/F^|#)[A=7uDbY<ùfN*0cJ`3k($o~vQZX-J-~mSGO\ [K;ZAuaV:n0SVkRTpoܷyH"jB6(o*%`b=z3FNP}i:-U.(.#z&ѷЌ+{{9^|6]Y¼TyfZ)I$b[ HK {ρ>ntj>]-T:˧4ݴM{&R/n<(ÖH>nv:iY3n1LL0g,Ҙ*rS4U26n̋evEnW_1a,E _h_IX F,' aXBZ1*!$ZC}3Q,j5ʡ(*Y~S3Xd1 GíUEb68ZI.h.LN{]9?1hLB\+Ʈ6B'#ݪ o; '65m6Jׅ[kѨpSQX~Ss7+[HPP;HTx9o{_W\@#%I e%4N5:3g9g n hEOXmag\G{ ~{Wi|>о.hQUcqq7"9ilHK)__b9]С;؋Nj 9N 5|ģ:g5AzS.<WgpXtgr1F ַH|: |lI)Z,bzMt@*e? A((9 <_Q&{NpU?zAͫ[eQ:&y%/ rl`R~ݖ_(4ۮ4O9Py9QWX`xmbC'.)/DcV\gn>)iJ49$l9g qkX=&U+MYہxDendstream endobj 352 0 obj << /Filter /FlateDecode /Length 4492 >> stream x\Ys3l(UNJ9T";o<$%= И.%RVR*=5h|u?D+g|MfGW;bvӎ;;~ZXO W˙\t7=iKz|!ZBCC3@< %ds |sBjrO ct/=hoPV!xo Y}s B[`l|:`ʶF*\s's |je't , J͍4e ZsplWMW"s٠dsSADYxP0ifuovvFVs">Dg]QBꮕ-oomڜ֘'ߋ"F 1!5E/Ⲉ'Et+@MϊxP"q?_.xX0<+Ii_x]-2!;Ċíps)9JzN#x4"$Ҁ5 LPEv;X،gE")[S *Ve*EѸA@v =.>Ύ} x%M^x[ej&6.돒!z>O`6\AlqzWՎ ՞I ~ lzTv Ue1?i!2"uHb<7S&9 146OGZ|u 8RޡKL!NUuc6.UD&FtQEtW Wzgmb7hgzzp9Q遬mÏa0S :jU1%D˫:2OL"Fb1b>.M_C7ñ^<!L2z 93\1*rQgcq{r \ޞ (m@E$u.enG,k"Nɉw=$'{hI tBH>!4'ypMKSizG8?2moc!튇vue?ht _D.j2K!4m章Twky$,շU[Ieu2mFZ ^4|׀ xJ֘V tZu9ySǝ&g12m([O3u^ԭĵu)`$q0UeBjG-F֠Lfi6MN&HݸW`蓽# WtdxzNIJf\8QA`$bKŹ*0bC>A[?Ʈ{ aB?x }9<؇r(EH $=}-&yUě"]e.hE(ϹCcDɷET< mR`n_ǬzH>WSK=YqAu@3=롆#q_\[ӺMAǕ5LH3hei7FXj3r)iܣz RDygz0TÂ4gي&.S4 :O/W}}&L<1Xui"~:} k9.km5띉ϰHı~ZANRx|@"7,|[Igd׾w{vްyE8U@ڒ|NhS$]lZP_|&A'>x>v>%l-m0Yǚko#ˆ>zD ]  NE io7%>w#ImeL}J%[< .ا׳}09e}QB<ghgk6.اD{ gCt{|ۇ0Df= 7ʳEoH[B Y4xê|J)+qɶ}ŵe];2 2q(bFo tUċ"yQ2Ĩ<Ɲ./TpLq.fiDrg?cDϛkK']xL,M\ƅ?/0-$?H G5$פE[!o-1,byk<&m6i˧8*YEm5@dBq O@xLqS]DWDE\`cqc ZDcYS|Lnk3TWu]O,jerx]H-4m5&ӈцWVs]lX>US W^KA[%yf|9> ש6ƒrFϮC)[ !a/? ӹe;߯(1u$oks/ ~I8}pj%;")s΁bRZں=zIz1#}׌LH?r(W>lfendstream endobj 353 0 obj << /Filter /FlateDecode /Length 3910 >> stream x[Yo$~W2SO}Mbvl :kvmI+ɛȿ>UEvH7R=lXW7+˕ӫij{{$Vۣ7G~]NV8R>(WG]:QыxTf-z]oDotwXEsalcpVw;#v/ah> z-B T =N1z:"$`oMRxO_E5| CQDm`2}K۽][KtCfgĕS6 詑߈z#"tƠ. =?]+;}˖J[h麿j"㫅JfRAH b-/SP~hc4Q'[+#WmN{A OA{oݧ Oʰ/ïʐ-vW /Z!cC^V^k ,W oJsܓ1{UF+/C[!mSqh)CYOYm#W`4LÇ?yott!?;: cLnͧexV}υs9ٴ2|U)29e(͜*g3.IHalj-á /{.nL2͡-g;F'Pxؼ-XU&@)|>f _O&ogf; M#6-m US(utSdlb<8mL { rDk-ͶDŇ0,c`Fq6Uq{^&fNCVC*<%sd/Z`wst]xdk:>F€l/ u[<|KFr?ޡ& UOQ[VV $>vfiX-Ft1(`LfdMrEY|(Q"47ဇSf\gԡb|j")Us4,fAZO0k:""nG/%=KK[Л<#@#^B@q1D$#b0؎T{`HC> Nr i9 tAlzlSF]bwoGt.h];DvY?G 1Ov| 3g\촐T =0lP2Wd(6֤J& f yLJ#*, 1MsAW&S\ʐqmV6T@s~r}^R,EGz]>ѹ_ߞRZhO`i>_5c {z_*Vn Y6R@ܔ![,'ҏhڤ|$SG:$gM&GwEDUXSe[p+my>ᧅ"ÖAT B%v@$v0l)_ ,($ 0jB2tbQ! vʘKܤ&i'!; ؤ,.@Ah 2q@#ZN5S%[N*Y|v4.ó愛И0.^hp@?V耕5m3r?V+^6'6Cf=YtozS@O2y2DE3T6<ս Չ*~RN Ym{ 4 @2ZY&g<9x&y?L=I{ ZkL p G|o4 _Vb!ڍ RM`bV~n7ƾƐd~$R"TP$ta_ ci-k7_2d d)k 6͹}s 04V?~6o"rr&?Y3rs%qeh:vk+>$ᐜ\S9vcsӶfnIooQ/VO[kE-ݒOiuZFjʲE愥SGWfCvL|+{El>m"{ƶkB"\aGwF唒8M2T/iHꔧam S[%|ӹܞ{HtyLP{p@ >ʥ};Us\,޿bд3}1L:AIJϺ\vX/\vr%7x;ȯI&Z&] ế O%ka0RDcPʩi)6?KР ;z|2> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 356 /ID [<0960e83659b32ccb9012eb15b850ab6a>] >> stream xcb&F~0 $8Ja?཭@6(N'3nM/<9C`y;- A RDr3HŹ =dQ` YF`5`5{@$ɼDlb&Hd0[D g>bsb7A$4 )! "9߀M v |70y]g5XRv D Lۥp, endstream endobj startxref 209540 %%EOF coin/inst/doc/coin_implementation.R0000644000176200001440000002363313133077374017123 0ustar liggesusers### R code from vignette source 'coin_implementation.Rnw' ################################################### ### code chunk number 1: coin-setup ################################################### options(prompt = "R> ", continue = "+ ") library("coin") library("e1071") set.seed(290875) ### extract slots of a class c2t <- function(x) { classdef <- getClassDef(x) extends <- names(classdef@contains)[1] if (!is.null(extends)) { eslots <- names(getClassDef(extends)@slots) slots <- classdef@slots[!names(classdef@slots) %in% eslots] } else { slots <- classdef@slots } RET <- cbind(names(slots), slots) attr(RET, "contains") <- extends attr(RET, "name") <- x class(RET) <- "c2t" RET } ### pretty printing toLatex.c2t <- function(object, center = TRUE, ...) { RET <- c() if (center) RET <- c(RET, "\\begin{center}") ### class name RET <- c(RET, "\\begin{tabular}{ll}", paste("\\multicolumn{2}{l}{Class \\Rclass{", attr(object, "name"), "}} \\\\", sep = "")) ### extends? if (!is.null(attr(object, "contains"))) RET <- c(RET, paste("\\multicolumn{2}{l}{Contains \\Rclass{", attr(object, "contains"), "}} \\\\", sep = "")) ### slots RET <- c(RET, " & \\\\", "Slot & Class \\\\ \\hline ", apply(object, 1, function(x) { x <- cbind(paste("\\code{", x[1], "}", sep = ""), paste("\\Rclass{", x[2], "}", sep = "")) paste(paste(x, collapse = " & "), "\\\\") }), "\\hline") RET <- c(RET, "\\end{tabular}") if (center) RET <- c(RET, "\\end{center}") class(RET) <- "Latex" return(RET) } ################################################### ### code chunk number 2: Ex ################################################### library("coin") data("rotarod", package = "coin") independence_test(time ~ group, data = rotarod, ytrafo = rank_trafo, distribution = exact()) ################################################### ### code chunk number 3: IndependenceProblem ################################################### toLatex(c2t("IndependenceProblem")) ################################################### ### code chunk number 4: Ex-IndependenceProblem ################################################### ip <- new("IndependenceProblem", y = rotarod["time"], x = rotarod["group"]) ################################################### ### code chunk number 5: IndependenceTestProblem ################################################### toLatex(c2t("IndependenceTestProblem")) ################################################### ### code chunk number 6: Ex-IndependenceTestProblem ################################################### itp <- new("IndependenceTestProblem", ip, ytrafo = rank_trafo) ################################################### ### code chunk number 7: IndependenceLinearStatistic ################################################### toLatex(c2t("IndependenceLinearStatistic")) ################################################### ### code chunk number 8: Ex-IndependenceLinearStatistic ################################################### ils <- new("IndependenceLinearStatistic", itp) ################################################### ### code chunk number 9: Ex-IndependenceLinearStatistic-statistic ################################################### statistic(ils, type = "linear") ################################################### ### code chunk number 10: Ex-IndependenceLinearStatistic-statistic ################################################### expectation(ils) variance(ils) ################################################### ### code chunk number 11: IndependenceTestStatistic ################################################### toLatex(c2t("IndependenceTestStatistic")) ################################################### ### code chunk number 12: ScalarIndependenceTestStatistic ################################################### toLatex(c2t("ScalarIndependenceTestStatistic")) ################################################### ### code chunk number 13: Ex-ScalarIndependenceTestStatistic ################################################### sits <- new("ScalarIndependenceTestStatistic", ils, alternative = "two.sided") statistic(sits, type = "standardized") ################################################### ### code chunk number 14: MaxTypeIndependenceTestStatistic ################################################### toLatex(c2t("MaxTypeIndependenceTestStatistic")) ################################################### ### code chunk number 15: QuadTypeIndependenceTestStatistic ################################################### toLatex(c2t("QuadTypeIndependenceTestStatistic")) ################################################### ### code chunk number 16: PValue ################################################### toLatex(c2t("PValue")) ################################################### ### code chunk number 17: NullDistribution ################################################### toLatex(c2t("NullDistribution")) ################################################### ### code chunk number 18: Ex-NullDistribution-pvalue ################################################### end <- ExactNullDistribution(sits) pvalue(end, statistic(sits)) qperm(end, 0.95) ################################################### ### code chunk number 19: IndependenceTest ################################################### toLatex(c2t("IndependenceTest")) ################################################### ### code chunk number 20: IndependenceTest ################################################### new("IndependenceTest", statistic = sits, distribution = end) ################################################### ### code chunk number 21: Ex-distribution ################################################### set.seed(2908) correxample <- data.frame(x = rnorm(7), y = rnorm(7)) sexact <- function(object) { x <- object@xtrans y <- object@ytrans perms <- permutations(nrow(x)) pstats <- apply(perms, 1, function(p) sum(x[p,] * y)) pstats <- (pstats - expectation(object)) / sqrt(variance(object)) p <- function(q) 1 - mean(pstats > q) new("PValue", p = p, pvalue = p) } ################################################### ### code chunk number 22: Ex-distribution ################################################### independence_test(y ~ x, data = correxample, alternative = "less", distribution = sexact) ################################################### ### code chunk number 23: coin_implementation.Rnw:831-832 ################################################### mood_score <- function(y) (rank_trafo(y) - (sum(!is.na(y)) + 1) / 2)^2 ################################################### ### code chunk number 24: coin_implementation.Rnw:836-845 ################################################### ip <- new("IndependenceProblem", y = rotarod["time"], x = rotarod["group"]) itp <- new("IndependenceTestProblem", ip, ytrafo = mood_score) ils <- new("IndependenceLinearStatistic", itp) sits <- new("ScalarIndependenceTestStatistic", ils, alternative = "two.sided") new("ScalarIndependenceTest", statistic = sits, distribution = ExactNullDistribution(sits, algorithm = "split-up")) ################################################### ### code chunk number 25: coin_implementation.Rnw:849-851 ################################################### independence_test(time ~ group, data = rotarod, ytrafo = mood_score, distribution = exact(algorithm = "split-up")) ################################################### ### code chunk number 26: js ################################################### data("jobsatisfaction", package = "coin") js <- jobsatisfaction dimnames(js)[[2]] <- c("VeryDiss", "LitSat", "ModSat", "VerySat") ftable(Job.Satisfaction ~ Gender + Income, data = js) ################################################### ### code chunk number 27: js-plot ################################################### library("vcd") cotabplot(js, split_vertical = TRUE, spacing = spacing_highlighting, gp = gpar(fill = rev(gray.colors(4))), labeling_args = list(rot_labels = 0, varnames = FALSE, just_labels = c("center", "right")), panel_args = list(margins = c(3, 1, 2, 3.5))) ################################################### ### code chunk number 28: jobsatisfaction-it ################################################### it <- independence_test(js, teststat = "quadratic", distribution = asymptotic()) it ################################################### ### code chunk number 29: jobsatisfaction-T ################################################### statistic(it, type = "linear") ################################################### ### code chunk number 30: jobsatisfaction-margin ################################################### margin.table(js, 1:2) ################################################### ### code chunk number 31: jobsatisfaction-stat ################################################### statistic(it, type = "standardized") ################################################### ### code chunk number 32: jobsatisfaction-ordinal ################################################### it <- independence_test(js, distribution = approximate(B = 10000), scores = list(Job.Satisfaction = 1:4, Income = 1:4)) pvalue(it) ################################################### ### code chunk number 33: jobsatisfaction-max ################################################### independence_test(js, teststat = "maximum") ################################################### ### code chunk number 34: jobsatisfaction-minp ################################################### pvalue(independence_test(js, teststat = "maximum"), method = "single-step") ################################################### ### code chunk number 35: coin-doxygen (eval = FALSE) ################################################### ## browseURL(system.file("documentation", "html", "index.html", ## package = "coin")) coin/inst/doc/LegoCondInf.pdf0000644000176200001440000052777013133077421015571 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4229 /Filter /FlateDecode /N 72 /First 591 >> stream x[SF~Ne-[bx[[Ì<c߿N5ǀaAHӧϳH2id12c3ggB[Ʉ`jJ&L(ܭA#ЄaRK-ơcyNL ~S]&Iɴ6v3qak- j=J)˘S(+Μ (ɼtb^{ (xMU,0SE, M2;Ә0qsҘ&ϬeD! 4((t+(haDCDͨ%@jY*di![ʼf]Pj昌U[@xda$Bid1dñXL`i=Ĥ  ,,=ʗp9d;g^-'4_BdxBl)FA.p~࿀+ìC RwPMJ&≅ZYoBnݸ ӏkz i(UZ?/ 95vtH^|W7U y0}w~ݣh6.,}WLwbS|j8'\!FCU0a!*dqo~J%ggwtPЏ2N|z]U Tk>Xh!aɝ9/."&K ,IwӃ0=M(yz^E:Ii:K)8]ЇsI}N &a^Tl܇Vf1뼽pxA+S_hז8Em]yz$1M4m5VѲ**ԧhx505)5X|.juXw mSܶ)!}DWx?^vw_šʞuھ-Gn<Ne(f+/˰7eٓjS K B×(CBw~9q(UzAGa+ǵD}/f(ثs]ɕL&yma65YxzxyKV}&y ̖ B[%fPrdU=]f#&;3PWc#t )r.UVʏqzr ~W05fqfkZ)s m.E%7/o31<><;zCcuj겳3mX@vWدoU-SQM-m`˲1~VCbh"`/V=5ZT Fo_^EzB|788pv*}w9TO b>RW]G8Gf]AQYp/{dR=ِUo/z3ijS(`3}PӴ׈(xhҰ ZxM UwTՇIRYh11c;իLҁ0UAwlܕ e;jHx( (t?}  n!5 Z?KBѿK  |1|9/ zeE>ł D_3E)WuQaE.sDdr ƢH}$~m`( 8# MDϧ*_P(2FU(_ M}YpBxu͗yيUr5m}Վ+h_~n-nX;!uL-<>m}[o{W}ϺZӝGݶt4DH3bTb2tptBQ~+d F=5`:E@ z %=2j: }b'r-LKVJ%m1~-aS試[ͷ}-~#x=~7Nv g.3Ք>hŔ)-SZFA!?(jjeo*jKɇWaB^Zejfq<\Io \ˆNe2݊F{y /25{UT9]@?u6vl3Rm_jbm"];ܟeivo6S;T#OycmONwcqT;8>=c-W {նckcn[m7;}]Ƀ݃z{Y%r'~}u~H R'  5{#04s1|p:=~o޷ΝAns:'M"$xvp8m󄪊;Rm QO -wNTРCȬtu7n9} %ƴACz\taCqJf7_qmRw'CmԢ{gC{O^+w{Vwv_Cnow7'ug{[%z,Q_]>/mj}[령ykōϖUk̴N%>pM32V-hiGR ʬf -BTȘ !?Ql:Y_-fr|Ruyg.0U6H\o]R\-u{t1W'P@6(kYp~Gdᯏ=,S¯7ߪm*-l}Qm& Јnl#Mx}\c#@'YwOT!JXN :5""O6ճfG} @6Cu3FY{JN2i1m`8<{}ȃ>iLajpEiqX>Sii+x ÐJ>NzbLyrz~[d8JtunΆ^9L4? gpio7yt' ,>C#7!))z:VH8{E43lRHص4r1i/D`JbB33NK9ϞmS}^\gDtks!5֙dt!+3$*oOendstream endobj 74 0 obj << /Subtype /XML /Type /Metadata /Length 1673 >> stream GPL Ghostscript 9.18 2017-07-17T11:10:40+02:00 2017-07-17T11:10:40+02:00 LaTeX with hyperref package A Lego System for Conditional InferenceTorsten Hothorn, Kurt Hornik, Mark A. van de Wiel and Achim ZeileisManuscript endstream endobj 75 0 obj << /Type /ObjStm /Length 3391 /Filter /FlateDecode /N 72 /First 645 >> stream x[YS}BT[.UMM4+\;5`5!a{>y1tŖmp9&b3,s OPJ0/p"0/wŤОyͤ &5-5X3a>0zHNgA0-eZRA #R,3l|3+%Z9& cZ RɬsPRD9O#3-RP*]B;),h<0BdžJ fGPRzݡ3@mc $IPXD{Rrj*vƤX2|e0A L`PS+E3J juaȄ2"@oPRԺ"*2)!sFG:P "dOkƒaL2QʧWwG`6]2~/Ow?bt<;˧ȧ;E*8 Boe<^D3zT>"+[&5\ߙK7\__r( Pgbx8Kci1F~g@stt? 7-?w?l<߯0ND?>.dq(vwg0 i7MEA>ɠ0qt*Mۋhw O|1f:q̮3aTsWÊ^={xA*to{t: w90"V-sjS_4?lR6GNAIS` |:-Eyߎ!5iUiBR T֢D聆R)y =iAfmҁztl9ftm9($c>MfS~3~'_חٔO>W|g_g|v|D~ÿn(e-AxՂ3ABſZ:Tm^r4lO4_~vEXiۋ{,NԼ%#uwVr6+PB\G{WU#/24u!6V[FK6MZHDl`o'bn@ܚE~dmkU] U6=ehE1# ^X"_$dGl& lz3У8>eg\B. M[Β\u>B3Ζ KI4 cO ȏ~dA~ȝPՇSbIKelWi6MD0%kӱVGy/(RU…Ui~D<j^&# f~;Զ;(+u $wi$o19|?9,ܽ)Ɋ {%`DSɉ% k#a$E ",s5yLg6)j1Iϑb |bDJ㋧ZOPu,%$A;[" ocpX;V+tW$zY,+u3UȾE|*izbl>kCTPa\Xt:8.],@XylQ4%+ViOE1\/\##ȪO<UM+Tͣ[f2Z\f+fZ(t?A-ۤnO&^~iOXYlɖNuqdsiMUG6Y]dѬ]7Y ɢg_ y4|>dW7e~=3ϧ4_~Nw,ސ];YY\ #ch>wGrv4|K*Z(B+Xk]'h]D0Z3%EDL4}GM<ƥ04C`Z3w"i`ͺs&N$"Hk T6!R2>1~Tk?{zw[&Dif-HmŨGo<|YTji7J T/(Yӛ*MtR6^mI_/T솽хb)rYDEg]¹F(GkEZ\\J7vNI8DZק|Gک-[(E) Eli ?kSLH -SPёzr%|y/NNO~ZkTqwk3%L3 ôt( QcZz x~TTC5*XSxTkluR mIxZ:vPi  UaCދ ԄI@kT@C$|D<,)C 2Zw4AwAwb( P" P aKA5}2tHwQXB;]üX;‚ #ҝhʭӽel] maUiFdkemKoem--pmE-w TOSA=~QXfKX4a c_ٝMJn=ݍͩ*6kg2\'$qrQ[m+1%%ȩqgB2\ cV}ڣL6+NB< xYquKS^S?[j#[j6[q:Dnno mRsiEȆb2Ʈ(|i#}I7hq#OPuʃU>S6aO"?{lendstream endobj 148 0 obj << /Type /ObjStm /Length 2034 /Filter /FlateDecode /N 72 /First 639 >> stream xZo ~_;͐88vq+\ȃ,>9"q+ɖrj-!?rB\ FG,#O:/b)9.@H\p8 93G\xzdrũ ĶxbvAV!:c0K 낉IUAHB$R$o |2yxT 0f ّ^h"Q!d"*D ^(p8S_BЋ1AWVxf($"ŠJ bRB1[Za $U-SuF(UJ):(eweJ%P(;3K@[`) Uk:!]\yví;-'lfse5 ~ILC&b׻;HۼjhL_濔Nw\٫740|w~^_l.c2GKK;_,իźO& Kr5b1cj܎e6:d43lųOыoXGP}}\_5nf_7͌ٷ|4oxt5z7F6xo:W/>yZ(Κ]vݦʭ:_^ O/\-u~h&qm}M֐^寛R7}6%1W |{^_rPb"RɑlrٰDo"U)pwTb[t<S2˂,dǺd"l$#A=J8jAE mJ;*U ؒGe$mlX P{E4fK{M}&H*haB2ڶPDF~ $AjÝ )8Qq@ahz؃Vsݘ|Z" 2B- %oTZwP#!P"$#YTQ v[E.s:?uNbт2ƃ6Ob`PdUu?v-ty/Ty:&m>@];<`Q4w3kΠu-(s'{v ߯},lh#x.:MF5qe'P>QD^Tڢ?-k'(2k%X5'zAuTZޣ=J]Y;1cn?]?=V{|{;jJ_Ab*#s@ ߆,5XwUyAzTòvWء$,t›ٽRPhd?,n?ݏnu1~XQ=Kw .WVRMzg() b [BGxБ|:@KN;}vs QK=Dz}CxDj*xًz$隙e槟GS³+n/iܦ.v9Zh}{)ageчJpvS~~~\XmV Џ_hc*|95 q_~o6p1ݍoN&w.z> stream x][w~Wo1gNqGY?{NFDi%rdѲ[BUh`8Ph U_]dzi&/|яTY珡E'vkg?Wՙ2f]8sj3=~F_(68sv5QkyMQͷFm/w5w@8+;vud}O̻ߏ,n'6Lգ=u)ZyH՛gF fsOWqۆ gN4U6nb ?Mh <OJʯRg1ZOl78nωfGcPy8E*jXk2A~!_b⃞3qsi]:&rE,%^QQޣN]2lATDg(DInDϐBz1Z 6J8x| {#Pܼ4[10WPXͻ7t0m ɓQif X(jr.duKp`{ 3$¸y룆MtEқ:>n {p}ZXdgK[WR4s`{\g۰M@X'w1th`Bet^լi*H!ϗyJv c'mvhgO%6lW}oXygsq7^7w052tXs q,-/8逤߸EOqYO kOK?i6΀9yRz,>#3)k\D7Y ;~S5)&ى.`z0auN6u iDA슃3'0S hEHtƗu-1GR2sҧ9AXۈlp91a~I ȿԓa:/*!ix ^Skf7@4[Y`jyY$&TF/UvQ߰CiPt/ҭbH\u .!>Q06(8a `댄%5(s6 KU):0餡hdRu>Au[>-A q$yJ)t" ݜm(BÛʫ39y`A~I4m/z} . "VzJ +plaQ!mL[zZbyyDa07s\GeM>mdpXۙ*nMۼ:vdn8\0dBp,Li؞Q6qu9( :rXQn5&eEHRSTm!x>%04hΨ/ZG+i(a']I'99 UU'Q3doed#?{oށՑ~Ոd*#q6udR^VI޿2K1EN7iqUSȹ%\cU:r2Ӭ aH^8#s 6?:{x7+ucֈ%F$ٰΙ/I4լ{sZM鼡riÌbcHJQ/S7tcۨM ?TgwuށOa}1bYjʚVK̗Yi~2!ġr>q,x6$ l>Kv  .&[4Χ L/T7(?oD0`f=a "!8T"?l]G}DH1/v}A~=MA<ʀjwلsc#})20G/ T)3,4}*PrS\dif26>X+#7}fs0`Eybqi޽a焄x*d9ΝheDVӡAn)0Y_UIסҺ~gDus9G#'CVh31w* !qh(c+ ]Sxi&F{]5;1愖%$K&R$;, ⯫\lB$wU(EW[AypsСjÞt}B&+"ᛝX]eɜ dW]WjT5U6S}8y VVkŻÇ dVY' ]  :?'@YRy@aUQs+.)פJGc@ᙽ.`>ھ=윕=嶞]0[z?Vv[uNc5ܕ` A)+˕ p) 'O!;vЂ$&GI9bҒBWX-׷> #(x6pϼUR' cO#PX=J˩`c 9QB@iqeJDnhF}NVIWh`gcqۑ>Ync`Oµ|hl>g8Ȼj4axk KV5%$PE wDL[e>p$oR- ?щeΟ넆u8j3ǧm2F Vd[+H,:/ EN֣ ,Y oK6vY1)78^Щȁ t'Յc7c2 $۵JEo9żMDF /ғ@䎝Lr#HF./h+;ym=Þ31yV|"+֙kC+8Dl V+Y&ӖQ8e ;swv!WM)x#Cd#I%Lsi"mAxٕ{G .h! '+W>qn2ѩ$NjT5Y#V. _~O #‚"}B넋rgY-OE?ЕY y}12&#CHJ,]hLZ!!$:ӄ83 t3>! MBSd< "$A=`a^smpSGp?[U!Xab2I7fjC4Š }U튓VM,- z@1 wQ1 XRGIA`lgլWwƵ38V:[Q9N^r'N} Z4&[ u)zxowŞ2q7^yVлcdz$GP9l9'/!L{c&MU430ΕƨAeu\=荷xJUUzV^ HM *WӜăMBhw9u 9සU=ke58٤V`[zڀ(Oh<Ҟo Lf Y2L5B6W[,6xi#5]Oϵ֚s/XJK6QߤAxH3_>gS&l{vۮ?eH V<]Ü$,用0acg :Q^{<Ų %AAQ,a!+ìds)1꾩Vw= ~*Ʉȴ~V{bY&#cC}؁8dDN/퀈=sK?%ڥ9E\u-cHG@ npRRKf)ŸTmv *iJ %c/"Qm4Ta\?kC E~ G Ȼ !KDSw?A#wI?uXBWh>`y8i;'H>E]<ʌ'8)z~ q0hAZtY$u@0Š wi6nmXrnVQ.Bz]vߣ:)LZ 5 =`}S,w=I@ÄbeVq ̆%A0ȦtP^ni&#ߏ)ǥxƂ5sn`OxK]iUpfqWz2[EyiQ\&bjj 8'7w$_ћP't\Lxo3!2y~XF>&EDff5bwۗ̆l/P݉a:R -as1,{&mU{ !9vؚ_=Lu\<=K8o 5XgBfiOm[cVRE0<%S?ԢFOn(bX}X-F"=i) aQW}Sl@ةcP˦<`ؽ(ո$ [ k*Y/`ԫћ.2P=+]k}3 0UU.Rn-.~nrUG@g^"]2ki WHUAa-LxT0Lb4Q^:9ӓysU(IH~g\5Z (´,HPc'[à2 2iP!\RtU%=|n&~%I%K穭8^C"!\YR[YUy\ wZ(ڂ b yYR'3*AV,WXBwXUur`CX5j.Ʈ[s.&-Cu.^I:E |̝:b 51ZV૯z%Tʏz5ڵj(`.}lX"AlŒmu`R^R9dMIT$l˥FnQb99lZS1$1ۇHx'‚9-2ht`@x]֖Y,3k. y#VH6Ro-|&Gu+c*'A{4Nj{j IyU0C-]z޺m@灻$u g+kg5bq\&cRϑVD;7aJm+WξPM7P~@f6X7vV)F~]W}-ֶQ, lG֓QJVsˡHj ^l]oH&ҊZ4JRS⯩x"W]ʉ\Qujҏp_1HpIwuű6\S:Vuݸt3jafTZ~9#:  蒣6ELEX62AXKE T0Y6vrg8ecQto6x0iU2}B ;}S*gKswP!CEJ'"SOO3xa081<.ŏ#odfueiqOB/ImS*ok/L\ߗSbTw ;  $6q ƂءWS:QK96)p>c*(-,Koj5z'W믘ʹTIȝ)xIyDKnzEYMoo?=CV"闧kQv{hRp5HC,5 1,ג `]8z#ݔ/.O(].9" xr/FT*ޒ-#+bWRnS |x*&;z,tyBu~?$pTU>'T` @C(w ɰZԳ&2Sr05W5lah҆Yr7GDVXBroGDD,WM>"PB1@c%cÓF>(Ժ `$yiܦ]y쪣r$KUOvQ0m(Xjwۖ:kݓ ahV``tYB'x-ac%PP! C}vG݌W0 quU2(@0T$мW4w#.g̻mg+ %,y N q.< a*@jؔ: =\1 0w!UQ9Ѧ|c7HN9 T5T|o\2qo|D]-,CIx/L\_u4%.{.{! Լ2;B!I w|P5.3ߜ&>h"{D*`>77ZoK0}p!Xw"֖z$ #ar½CsQ~أ|%7_vKQTKdΕ@m1*N_H 6R ؃ysV^3g[u&y︦x߱^E>;j:}J-O]<z_'Z9=;yYXcXͻ}v _Q 핒'ٖ %T6rm?"bs{ SXS`LiV5VR,vk/ = ݉_yl3len#z/*Bt~Ҧ%\\w4ʺiZ))):vJB'@1t>?ޗ*endstream endobj 222 0 obj << /Filter /FlateDecode /Length 6602 >> stream x]Ko$Gr6|/O6K~h!]aeC~숶w!pCRC̪Ȫl64YYa#F_ɧϥ\ܞ'2uS9{S&)9}uߔ]8G7Ï[ZizQ:;~vS֌FrJ` D5|:e z1HǞ t4%Q щ8, >NZ5D!/ుG?\i8Xh`78]P*ŧUs2]ĥ^**3\Rҧwn[o |t !2[c7T/[|0`{j "=v(z'/y|uO'ZQhdӗDs`k 'px8FN e}fp[iѝcV 'i  \T9sTP2 m΅B]Z0pH <p A;-[Ǟf/u~xU We:Xe?-.yBw[9Vң>Tz37{_9bV龬 J0ޫ*\F9Fg$#y^"\dHmc*B2k9Z'&Lt^:3`yˀTN jԽV~$^9XM:!;iru9,k/c/e)mO*鵴;<]I AO)<8\ 9Dg{Yϟ0Y&=6?-qڐ͉p9¡ 4 ϧDHUܛʗy(|*LP=nb@`ݤ,)&,X^,ȔvԑQuvUN-ry~lj#E˃ ,I7-6|83i(@"q(~;)sIk4JRBb^tl GR^:Yh1v Z+<@ r_4W6FyG?oߑtX@Ii|р5~/f\sCteE\\$2DmȓlyK- p>_WV&A*,,~YY,$S7ɨl_4@aQ.+!O[LtxLCĭ/ˎk1l~c2QmeUT|':XKy2b*F(<ڠ=vrp/>4~aĘ0T=< V( zE<`0.R W(lI{;޳8>WLU|qz(yw xRnl +_^Lük&[JEfŌϷJ3*1rLA@ a|i '~`W=9?:=t^Yo;Y&v5<|HLOP3?4iGA֧V}S97{V ˯oZ#<4agT5S퓡x&mj'Vc_U*z&f>yW~PLP(C/sM|#LaYˆߦBDf8456(pǕg_x|[8 ۂ 2Nn!-7 > b̨S8N 0AP[JC{<Sj̧wY[<)6% ÿ%s 4Ab^X* % UΣ8JZI_8|'\JߧdO<៳yPkV" ӯNNiGd >D0MIjت<띧@G\x 'HDH~O)ĵz`AgLd~տW1+M b#h=D=^z 3E` o 'һŸ93tcm ZW7`L,֪M֞Sf#抇0xX4(M;L) cG jOS4l=`wFT:I|8jT _ڗf~A|]1}3JЁbq>5oM1Q(~K(a$SnW 0 >m')O4upb n<DE ȡ19/lPYL9Sى%\JDٵLu) >^ \lL&B3*p j>lv9Y K G"/JY[ 3; E6x=8IOD.E'X&3\!#kK,~II&!J]D<{<Ah3feFbTo;/Spx@"Pύ{$MfŜ@T 6 Z>hQzZ[݅:Hd|d-<$lG$0nmh#(il>$zEJ&Er@vTt2ˠ5b cN_l@/e$F*o"Y 5>Ԕm&."nHn8)&LE4r$c0j)O"Ft+Tmf(yh6)~qѠ8qN |Zz @IR1KTaUjVC;eS~wlk/Q4Qxjڰ ;5 1"̝:T'$%˰ՖcPێft֔;Fk=8l[p'y4qK2Q=5Hv;g囸_JD-VsJ@ҬcY8[ @#tە/f߽U!R\vj&#jX\Ҡmq eoݱpB/tD,5W59aGΨZt,!r p*|aq |ɪ67-[m1qn砉f)&hUUqZA*W*H:B@m؎8R`Uu98Qqb9V,L*XRvxw2j3^/ď_Uaq+JEG d1$ \~;WBE.G$'8Rog;ᔬ9IVjմm)dl`okhtcul@GDGGq#ÈgG43b$W(XX|[E>Wx'̶x)J.&~A*}?Uȹj mj:90k:kf t"2lDigec|Jx'# !վ ٜeħnX!wr}ąe>gehtS.ZR O/+]qx[oG#تY~&'Q5Gnbs@'u("?rkIiAi6 (R>[W0i.zS"ǼprBj.4pb؉t`˒3).z?-qjg!R2 v* :ShS!DjݣsFzŁlfm tJia<]pڴ tyW k5ά6 D Krq_ӌe a,cd́ydS~JfO h!b'zggw5c--P_NL=A̯Pug&cEXR.Zʡ"Tn?Gg3õQqP\FM,tW ٛyBXpz4<ϐ&ƣX^25J䊫`gįؚuwsKo2m"U+#ZQ6W%i./ci)_bSV5@a_Trq)^3T6?cʨ 7)_ 4P,/JLtZ#]~EMC>)Y/rXϯ>ݹI}+A|MY識F/'W=&$PG!Y􇰠Ҙ>`_;puhV h+csFq,&%P38y*cI$rjGp6SwڪH=K ,DxF e߹G ez )l7tzg-4&Kߺs#1s7H 'j/ªlSChEPoHS t7\Qx߭K_r:MhR?,"^|_C6ti5tG6*}n7Ln;[:VK =?k|^Qت+Xjn/+B %Mk?LU[VUuX>y[@ H?}xX/}l7tZڰg-mzf#ZRő-m"~n_vm5 X6(h_Z P]Rݣӎ[jw#=[M-gWCTh}vX_Un`Sz_#rTmdv<'ƚJQv '*:;87oO JfxӔ yg;iᭌf¯P >p>,9:cn 鮚!a&jq&z'M>> stream x]K7ri\}N6(&*;͟;IGU<+bXL,Nij s%|v~y+/Ó*:l^ai0>?͋qHtBy'+Suޗ O5uV|LۼĨ6Gyg2^CDG*o 0iQ~h}i_98@Z,*u4܂D4!N(IOA?o^-fLzvYf%^ӆh]vq] 硲7}oza GYIatqiK@O1uNrOI+LrY9uZEDsfR2SQ}{ְT:}"̲xmZɟ&4 sG7)F7ǵ>ɛ.z,䠒ϙм]2igq%v% %aBa}#zyd"uikbHD"j:Z&ogm}?R6%2U [~R"..OWF=ͤycߓ64ڸF"i_\%.V"'*툟.Um2/C+z6Ae2/0b$=08`CnZYpD^|_%̃'QzrҘ0b?M*.q>"]hƬ%݄g)Fȉ4 ƎJެ$e\WsnG.]Ifr}cN-QbUCdՈ 8+hX5d˹`V̟8[?gh|whu9-  9& SxyE)q@m>t qS/V^`t L&dEmٯ(_ԁ_HA?Wx$MB'Lr\#unQ`j@„ MR],g*I9̋ĺ1&#`rx΄ܺ<|bfg,?>BwC ]D&W.A猋33~y~ ~͡KpNUGX3G%X W+|kM- .;᜔0I:s[p7l/Ȥv!Ck'SPK˹&k+?Wǹ4(V[$(0I̽J-ɋ\K<ֺHLS HCÌ^O( 2AA"~%e^U fƙD%;PS*S\3pb(& &)prLhkP[K]\T2cuQ J $C!84:bu ˗IY2(`rzVM}d_/QeSo~<[񇂝οPyՊVL- c%`Y3/QE--@Zn>΀{RBl=^WK:׌#~&^4;?ET%c6<2fh$ ?m$||`-RN{X`H2 t"5gq/[h[4w_vxX5pmq#T;<9?O47M5L`hP1u&B]d#-}d8tê1M hV⌸O b eoNjJwSA>N}:n`Qa{Ob_& Xi.zRNs#he@qE%Oq-(H]08r$+>0۠515[Lp,<6C+9 (M @X\6(Ά1k sc9%<~ 1Q!5.6-stRoL(qZ$&ҭa^:˗} ,xň'o ±owkߙWcǦW=ymi' OX*l`}k_lюI|?ǿqR1qYq\bG>9e<˕\#+QNM+ˈVrq#K)Kr^1x\~Ycݺ;`Z 6\'|\My,O/:O׿o3zJUy::nEyny<'_ؤK7v~ܙbmng_*i,ۉ\,ILrV~XgCcoz|7ٳobjj~2^&gmW  ӢSЀ"L].7d#~^DRxRd9˚,4uUy9"|\9=g add"EhǕjVyAfM>QU ..FCYaQ ݃^s*+(x0ώ=I_EK!bi<DïN>;1O- ClAl ;S+4^ 1HK sK*^3<`H.uM4PԞGvejg #w fY51ӉzO!ϫ~Em_6ZX/fb4])wzLOnu#{$<rVd4Lf%"x1(wݯ=['P9C3z }aJs*RcK$ܺL_W5d(Om8&fq޺NO>~p/Rqkku@slϰXTf$XЃq3P3a$Vzw_ 6th:r2e1/RMV^$K,gn2#[RBۙ( ("Hhm-bƂvУn'!< -"W2mXɌL7ĨyŘM/?ZiY̯NmA^_WkM਩xN#<5F6ٺ0}Fr ֤L#Tkwt;^3;@QADx`N4nd~C|%XjϒM ;OpH7/|u CST33fLV~T͜f78n!~z"u AF_Z% ™SFK̾@LFqU\62[%FarWTD┢S#r~D'u{G.W&~đTŽ}=%‹\+?͵ppu9fʚ5aon^Ȉ]iߜrJ%Qbj:4ttc\F "u$>ױ.t7͂1_@Q6 -:ݵ=s U}u X0nK™R 6"A+m,Ӡd8[! ]w"1P Fymot?73ARV͂Vao`hN}!;g;Mc1/g2f//cҋfG%+{od?G8EfG]Brz[ۛՓ۩': %Ķ>Ij;a<"z[=I-Nl֎!Fv$fj`2сB[ΚO8P)U4nlc \Ӎfi$F'Ёi鑽MK]֥a9/J%o(~ho:8LѪW <X )\ٚ͠&P9x]_FWM=}ck+ W+@p?!Ѹf_rVHyYrqfS{Iaueɾ C&t)ܦS}+u!&[zaZ׳xRFF*]Te ޺s'(.Ri:֗y$`qtUBR]ݤ !BՆ%ۏ3.-%Mm<4QR]&>?PIvݏY0{͔'3{F˝ t7OVYNym>5-R4a-Þy`blx-CLW{g[)^o;)rEy;xNWWdǰE؞W.`uG B?ݜ8:4Ʈw^+NjɓryyzYnSm/OiţE̪[Wmz .4dR ]zYA|]cyGuw "T( *E#zFBu +:?<>LOH4xAtۣBA㷆.E3ɠ[IEa|KB_JՌcT#Lh tm C쏠z2[Y[ R˞ޮ3ꆙmՌqdq,5[w5+n% R+{ aHspL:{!Za>i/<~"BE[2/p$ࡨAA1?R36N(ZzG itfVҾΥ:{f "bT$o1\6Ipڒ0j;/31'M3$Q8C=,di=^/y\ul7]B ՖGkCK>ngĎ :x> stream x\Ys$q~Gm<}/eZeJ"amX#\SNG+w<o6isde3.hTP9ke]z3֧]ltf@EzԙIap`\R~urv{hĭ1q.fS[lRk}@BrPΑ h۠`$QUoA 9R6:'oAK!6MwetЭ␣Hwj+7S&u ڠ^Qv/}6_1њ6N͎J[U vzgx`ɓ+yRXPEv[P\^m2(L U[͙}`6zzxv]cs{0iǵq" Ҡ]" ~LYH"eg И5ڻEY~W5pBQZ`.KHhF0Ă>a<!{44p>:՗*9hvK5r@Nãn-E[pS_<ǚ!>;~"genNs*d3h8GW)PGEp6`2 &-|we+H䶿)SP !W5͸:a(s{=#iy/wY|JkF', 9D. myKn[ϛd!"8qقpj:a DW5)*tQGNye0u <2mnׅrzqi@ Y/Kn}v!fo 5@5:"ޙSX-)H @H x ȐyZyPs#vłNU\KN 3mW$RAC#Fl'Jl-)co6[H7.rC,T & hZ"YPm>z>"LY+hKf\RGF+*$mֿ얽 扻"DP bHۣa thO=4_ͬ}j]>oOߴm{kO}{=ОwzdgjPڐBUٙԠ (#<~3@Rw0zЋYDs< > 1)b) $#]s]mc/ SSFlסMur_- /m^~gsw y,eȍw%E$G<Z;g)b 7?5bdu-V o@%ob4?r瞱CNZʊ~B~D(F[W1ˎ{Xt~,#4|qV^jOqt;732Lo\?DňyO`M1SԂu[uNTa K+}/>\sXy(vT%O$>H!х26T1wBUһ&HGqTzbh^2gM;o2h> vU4>:ʮLuP+簴Brq[ϧqv3n޷a{g0UB̠Kǔ_Ƭ#ZtkEM&T*57mzB<8PcnJs GWXcJc$cM$LH1,T;n`.USyuc/m_ȺЗ|f<Hcx`4#-7]|uE4Wգ30R@؟v_w:$ǔ5>NQP)Ii߻s\9]Nc2J[p`RuԆ)&#[$?Lxsqx 6*ySF+LgM@3bWuz耾\+_";~Fv5 j'LVR='w ׌ yb}Øda@ 7_zZ\AǗ&\=pVEl/!F4^R5|E QxYn6[j,Kʉ UKܜF}-1G9!0 IiHv 'Zf]3/m'D7KorWWRؓil-JǼ6 9L:95B^:qD4E!Z)cLISrESvqO>,^vZ-4#lq =SXrݗܒQt]: 8Lg[)6[aFY ׽=Kc2鏊A$| PP,g 5Fa,O_3 `/l"/a. >lLH\U6C0-yCjz#ILk e9=FXiviX Gh`ɢj%>AI~Qbp9[Utk:I KP")vwK`6z`|m|K,{y,I3s15n$M~ ^*/ n2i`ޞPID˟UX>_d,&[%ZK#mytd!ɾ;9MY ,"$& 0T ?҄ۉ4`xQWx}1&v aAY$yTrٶ/:QϝP!ybF :ML GmJ)gZqyt}`<+6(u]_MoSv\8⿭uq`1UsȦ+^)Wli)Wtݲ)}ʫUt6sj LU 8rendstream endobj 225 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2259 >> stream x{PSW5{iƭV|* Eժ@)BBDY^A%<1 !WDQlu@Gkc}mw>>Vw֞=tRٝc̜w=C!$)z䟜O _ D>;9'GG IUǫ N%#]lْg.\&]RhsiLTd:%_*tirNWSZZ-SE9qsKKsuJiH-QdK:J!}sZUXShl VE$z<[rNnj ~El$63T"B%V "H$^ db!'B 9T7&,h(_]Ȧ?. =$kxE'Ɖ92~}LԺ-uUPsm9V}5UE^ZC8j\lo79SQuP0M+=OC7p0pV0@y[A _b8wK="E$UYeUj {wRj ;Bd^g?΢4os)iH>{K">"AESHD~%t) .q, ܠa!1m{'$A>d[6P+ 8|_$I|V^ZQd,yƣq0 1x(EϣrB}Vֈ g%אyP;_Лs0@DߎfQWDh.|y`FSV 8z+^Ybc">)@;p`[| F/CvEGE"0 l2zm"͋˾Y07+ŐCˊ,ο|=`3mZKY<2ج 6[Sќ3(wnC֔Z7h3zyvV`Z#2?b|"4 )( T.'K B9C*PKV D s$zmyɠ 1gyvtv^0 cz~L4/_KF j $pȎ|8ә 䤗YM]}MVF3&jcjҰtܧ#=K>YC Xi۳NraNӑ3䏣FAl*~b_ڝ2NeYBqBxo>JH`4|qőD/mI6jz(Wt|1M FV>Z86-n@Y2A k@c;MMaP :@+ZRZ\Yf(<쐟}(p<| ɮ]7^ Ju8Xwj♸9O»nDX&VR ( Ϳ>zy}Z@8KPx~\ WH6O9ejȺ+tjB<?Eן \v4(4)6U7bP[ǮJ@e(ԕrk@<ՂR6D}v]f0yFɨBR_vpwg,y?q{=2poc/Xj S"dBfG@0\Ӷ|u6BG.A3"9>/ywsA71i4Iѫ_sjRRZZ7z<&XN<;g089͇ ^VkVHю EH^W.~UlסvFh0&C7W[2\רՁg8KS8XR(Z8%/ga;{+ @O(eo(# yY@/Ln&JKYNn=𲝭N}!:-alAi>4Mb1IЦ+t>}{xPgEZ_̴N@8Mƣ,/!8Ƃ)t㔈_c쵘M*I1s=L,vV#W:bqi:Wth#Kg5k<7t{[ێ %}S@#WX٥tWMR=[<:zN_NAmu̬;?q\*P8> stream xcd`ab`dd v 5420qT~H3aa#e/Bysg``fdS5t-(-I-ROI-SMCL,3sK2;gtgHr3߃/,$.|{Ţ3g,m\;CAusM}Ms4mZ԰vq3G'{qsimICnM@UwG3gΜ> stream xV PSW1$HB7PbYn`kE]+"D@!/JwH'ϐ2D|` Z[tۭұ>ۇ;ǹ=qv:;$3{\3+"f~/{o("@WKPHyz~1%d9%1rE*3=C@jHЊР Z-UeȂS5<5Sz Z:<<777,%;'LJ<$4(7SY#UiiAOeꠄli0w<[QKUA4JFQT:QHK'||;E/m}L>|nA ? \h_o?sDZjhR']r&#Y,p0 =qe.:Ŭr`6D*>WX @Ner s(Aw|'.DM)!kTGTˆUgr*eL8H$ߪ-K.:b%=Ir &:T#@_HpᏞ}T`ex]qaNi!ar374/w~ pxNfwCrlL1bz q?zX!/mϓs ]ID&0C Ӭ<'.9q ]A+A=A,ͦNO6F\8+Yྸe!Zt´[kSWZno:Ыp\) +LH(wNieƆ?b;&88G 4OSReugU%,J߸23$򁲓% ݹ& șgfXU`@/t>fրup$婳'IuqC$˲p6b]h]p} vc, v`~C&Gc%ą/rj1 Q7):+!1{"gwsQ l Hf/Vb| ?qwc\rPBMc G$ȆNaO"j!X:<*r2yQ'8>g<  ^NCQ:!84(Dbp7i퓣e3~i!^[WW ѬON&a E?8:>x Swo$DܡlY D2xfZB&;u9 HfHnT ;-\-w 5`2aMY5Qж B4^{KJZy("߉$͛>1,yFXEz.$ :MN.ً(1U8qPbp(~>h+Q74J ;Pa&~aH Q*/%B1JOSI߉Iis;[V愯3HRQHe1&Knٹ?EE`H@=lSh]y]}s8@F]9q2JgafWX$JD ЛW`jsM fQwEtSk̅f<.:t!\LoNv~3h.-uUy@]z3`:HD6(gD6e$x+/L־ crJ"T%0'6Sc grsM&Zq|F8)Z5E heq٣ 0Eó?e1Mqw_fNWVA3t&v_ߦ(:m7vo_e[G]4aI}3B. 2<*P;]^]G,W fCC~oj2f7WԨkAݚIBF)J|o-ZVZ[jZ  l':D"1v!Z4JEZUV  .0Pzk%Ds3&5!c*YZݝy>kb@L-D}|}Z}QԿ:[endstream endobj 228 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3911 >> stream xW TS׺>1sDz}'hK-koQqZ "fdJ TZڪk[d݇Zom}]w+Z-&N$-1?GO;!Ml{eJQ81~"9h{Ld;66خͰѮyݔ)SN~}Ti]#G|,rdS.JDPgQq{F֟*8 -Ч{Bk PڃQ{gP+C.}1jX* ɱ`/ z̿*@aP*vtЄ'tsSOVbJx`n]} 0lLbU{~1i)E^?P "꛼܌LP1򆔚ڊps_8NLg>? 0ypuyZMr̥f~n}e /6G ɜF{`mHZ|<>ZZ[)-ycN\nI1F'CF!3J }={#?¶u<\qk4Ѱ\2 Tc ZV#@+Bɢ<m\ŗD_&v'y.zMiNc|}c: 5I)ܓw 9.Npnˣ{?|:r5 ،lsd ;1/'(3Z/[챐`sUDUǛMU-oly_Bl_if#TPgh3\Vb\`/EЬCEg!]{I!!;в~5dpff}vx\PmK(@"Hj:=pD}{CG4BoL73g/onW6\'o[fUA!hLjQ# {<==ns$ h~Ӣt8$./r99$VWW$ pʪ~[~&Ym8V1F^䝲o?H=#r@N m Ϗ З#>#_8Q<**GoDnBMu.h%-W9iC(8IcRU(o4Cim~Q^3YMJ+V8ҿtO6R{L+4r$vF^?e>bj D~بL:']}G7k4FDo"V> .ATH~9&KH*g>iR~&oHE&sWdCj;}WxK;%W-%i'1*=3[TB"%u<|mBqtFyadD0E%/UN !:_Ҁf5 DQ{W-ZHj f! mٶ:Ehl")Vd攣B ؝Bs(Pv3dk3,6:26PVT!1G֩դcK?şbi]y^Oٌ fMB Xhzdsެ@Gl̂Q=ͤYx~5샀<$(Bj7l]yj̈́<v|WWPP,<&|Trō7j\K=a5lwaQG )a`MuZ-]IiwڈۤEqb\&Mh1NsdaMpb2E]a7E={b}T_ Q;V;-_<_1v-V.=U^jG$iH| tTHOSt"U \{$)J ɓ~R$Dɽ` l=" 1UvD'g]to4,KMb dq[X8  "r2Mn(3I U%G/-b}7雾=Sv;~0y}W!zAX[s2OnoUs$' >$Z"\ip7"Eqaa[ffp/Jendstream endobj 229 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1532 >> stream xTmLSW w0D..?l e:e:B6RۊŢ+?ھ'V,k,RZ:0C9ۜqdfzfis7y} HM ^##((R !EgEҪ nH(KTMIKK$&QYܸZŢXP(RW'L$Ɛիg$3Wr~rl(ˑkpoI-CѕzYvR_BL^J)SD.Cs#D,G!%!Hbq\1.ʥȨ5F}(+mRϢJwCiT/u*' h79GM3<,^i7Dދ{(!yX-[gwe}GTm}_V`T";9)k`s{-#Ԍ]~(2 ..[lO` ʬDID?##kwl:tt0>Zk+@ZQ55dfc_k[8**t<РXX`}3RRf5]R ွ-TA|Z4|eO׊m7E= .{c|&To5v0⽨NЬR*2"`p!$#ᘄN쭕Gey+ t\^H+K'OI.04\DL !#rVho3@%h}+4XǺڠfQl \a<ʃ.7)L PeѠ ǃm=+8|6H$`hk1C&on۔BY@Gm3Ffd>c3>.NA\nO{—plM{;avSe `īD}$B?F6 ^b"`_uLjI=Sv#Nn>Lv<#O=@#P"nzL[_ {qpA/^?ѩ)6moj5o]:M{ޘ=57-᧦%az^".H':-<zO1~Pkw1k _#E#;ο#Z]L0ySz-oFQKy.w)z Se)V`lتmUNhcLn!lw%X^OFFEOyIh0endstream endobj 230 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8495 >> stream xz TSD+驠:UckQ<#"Sd0$a (T֡j֪~o뽽]_sλ~g?{ճ%DW8~܃G芵 W}{I+ޥ?j~9ICRF :vN0a{W.^~._[f{|.~!=?=6lGZn CmWۚO7}~_4=vE{O? 4?p󂠏, ],]si˲#\WDt_k{u>6L>cwG̱8j-q}:.j 'M2u>5ZE VS3j.AS#u(ʁMPVPӨtʚR)ʦjՋzSDʏGSRTeG(%%ޢXm* P z PH-Z0PP ZKX(|sk/-,NJ"\5{gs7^_2=ox)o?uo%uav6m 7pߠ=l|'C$#ɳeml5LJ ij?4hh¡% 0 w׎P<2a ye{&#D'mCۗyʌ(<9v|c5Ae꽚0BVu0#)PUg5hB|"d=q s%+-9*3$ox%Bf'UP=!Yȗ? ps8;4@>8 

xTj-0FW _X Rͅa2yl\gR} H)5猴b lUhL!SV<7xA{m\,=@[{HV_>7,vEh% &2be Wqx ,f%޸ J?6a$x4qPSR Cq&;S Oœ66ވy`K3ߗ@&d\ɐ;Kw:!KݦJhU,:- `PC,0), [Usdl}<]()5K.7_a9 Pa\: K- dQsM'(I2PAMdr,EX>OYv{ 精t7VCf#BZ<Ms%_mY3Xݝx.: Κ s Wyn \f_ޕ10ծ{p/9OHi gUc۸! {Ռx >Ґ@G`|hk[',MX|ڈv GhghM;kCRLJtR5,|pQuXDHjqn!{yhE=h,1Ȭ/AM4Ah2sb'miD}S (rkk}qsq6Bd[A#::F s}6q &a&`3<"7=%H6;iqSQzW}Eh  1G9Ī 0~2@>ng6zΙypNJ&"$ؚ4h@S\e`>Gjr%޵n.DsX_H YDr/sT]DZ ߥi:ԛBhlj."2ub'hx81B4.x!=eˢyRqˮWnb4}UgKk ~$DRSڜ[\)$.7Y}KB6 29u z|rY)?((c*+{AM:e_ !U)U9 ʔٻ8D<\M(&S+C!\~^ITy/uz&9 5+5"[?z;f~ D(M'ז[S qяW/_ϑ3v1j9Α':+U;Ows wEѣ3b;z6՛’NΰTɱp(T29=#WmTwG4y_FTl=sRC W{v^qr> bM4Aj7Lmgn2}+ުƖ'hڥ8A`S]+]Sz&x=&X.Nٟ!GZ`g۞M[q.XW\U-?C|Сn$x>ςq!@SA& MgGcpڼ{hF:b Xefi1A OX ;T顐QInFW O#x%4=!+l܈u aw#`g>S6. W Qckv>T^alh.8hEOD^ Ref,c+X!d m KgBD;QYˠV\=f>[֬V_BcTW@5(;}T;#3eyQ| с)F}\'a;Mh5cazm㢉Ǣ]>,(O Z_y -htmPY=e"Y+dvJ@Sr A۵ka;x(W;uv',i$M ŤX-v\ij( ލ!}]k] Wgy*&['O*LE_|9/'VkUk5G>FUa$|UXeHL%,h@TOH^hL:96[+]p$bcj 0iSs'Nsj4LNoÓi\Y4nˑs*znBLPqXU=c ɉo}?u`-ꛝ r%?~i0b~hը.^VwH>M+B@ܣ a;z¢m=2.ŋ8<o'n<=49qKGh{Ѱ8 w/D'b P O |~>O>٧-..%"°]yG?X?l[_בHwA+9|!DaP_Dyݨ;+h- TĢ!M!yis'!(j ]os>9@ )R][`dU5F|%qH PVЬ(K7$ ҊMЪd)2c" K2ʊjœ]8: ~w7FGx#n7*g2_,QZoǴnWD/A'uMK숅Gnܧ=@=aÂM%++3-^Vz|VMU zG[JGhEzBs_|[1@ ,ʥ rlM5L. GIDzo̷Xtg鈦ſ7Uc'bX ͞5,[92HHRI "a3$wD|/;MGRrt¯sV\􂩘5FN S%B^WˇJ"Bxg?&}}|rjbO=Hg"FAe>BalJhjAz ,) P`b \}EzfLC!;@Aw>j^tK"xyA5QvUC 4}؍!-aNW>)%ZU>,FUtR<ڢ)5yOE,B8JT28ⲇ`Kk>@3ӰM-C{Z [ HTiuM J~S?TmQ/آC?3]@DxA>n_ѮѯuDciPKۇGؾE.]\emS+xYNklk ܅$-<;xeȃ"Ф哶xysoR͘v9Nw^uUng__ ! ,>7{S)}Ude L&\H8c5ǪRd9 .2cf{5'r=[cITZt!599v[ky@ꓑfihfGzm:j7 <K64j28E-ARvBlmaֹ܌dfH5  o,wxp:pgs4T/iI>nIE̙O[\=aZ-8}4y6wBpGlm10Ld攐 n,VXwEI@ÆFekW$3=;.F6Mh|x8a|t-(.b$ߊb!, $7x=JoW͟eFZ(YC\w>@Ls4a8\٨'m&ήߛO % NbD4мhzIV?q6qXHzӜ8x4Tm/S.=:Ró{! ٕJ]i0']oјZh鎲2 s p#' Z `ꨈɒa%DG<79MxBQ$e [,V7~<%EeIQ'dzMlY1yjJz׊z"!7k^mMBlӘWc5w~M\B- JҪ]E9ޮ‚BBtA5Uz}oF߽~`Zd{p@Fv .*!JeJA7}lMC|ۮ@][RVVXsj]xg#pX?ݠ;DRB^4pVC]YPi4j*fYJgG\NNbf@[~1Jzhb_[豈JN$nbo_U U\BJT<ADft5Cj<=>mW=@N rPUUI\Tx"SP&HvK FtIovk`=yOoCWY|og*}90 >J׳ P"JFe\XNFEec9>$Wb6^o V, :r ĸi%î=QH,l9Li-Jj-@?qL|}M@&ƖIA[T\Qᕨ+hI`9c֦VH:-3<-B,E~IIKH  /C8K<h֓/Qh/[y2I1w\o}xQ>ќЅ`I')9KPU!$HT%LmC&ˀ"nnxBm'i8Ox ?rpwaYG I$h;ŴvF6h!_GFۮeƑR]|c!PB!B EIZGY~?2SE}f<ԖmQ^@uID߸8/]"™, K\akciVI2M,yb"ҝѦr9G@fFzh`#~EfU!.!nA[ɠH)-3r+2GcN4Ȁ"Fnu|CKe7L=r{d4JGo6whWp-d9tYD\=!fS$o:ow,a[_giyAA _F6f2n[59Qb+9O7 ^W;$siLB> stream xYXSg>aPgUnh(NDB!=&,Gj u|֪کOKCį~7;~~Ɗ%ܦO3:0B`iex: ^ڢ֨MH!P36 qXW8aDs8cڴ9%~;W{I}dN[*s0W*#՗zGP j!5Bmm<)JP6]0[Pc5*Ūz16gmGVv׌7s-}}ߔ~K:`ƀJhp!C-KM|mk`u(3}hGf k^naCCE cA#eם^?`hBt#kpH DHNIQrz\rrDvj]"h^A݆cl~ R|@?1џ_,DaCGdW*8xNkV*?_-ZN7XMvp38IQܞukIl:a`j 6[e9/s,rm]['pzX`H` a -ELUeأ7rE_K㰕wgcBxuw0RBo @Hz7@Uwpx$C7v7LvG SoUrX]n)\V)zfuqPH&ʈ 'ЈTER:D$ss|>N&~aӶ+-RS BcLP$ yB|lFקySf5݅J13H$w^4yDq=s7(G_ex\6^\!\:=Ը:X9GOݛv*$8\BMw3'#FVA刹AV A ]i}<ENw 7rP-'<7k ΐeCtt9hJN,Ƈ,QƓ[:Aaa1KEp/e}iFohDž~H*P5*okSbN}V Ғvb.5Qpֶ$hRu j/,ift rhAyڇ*FEg7>YQ5Ҭ*']uOtv;`5IY <<m xgg&(b=&Є@> la=ǼZWۢgѩ#P8ZNu( E[/lnB!rRKmwexsbydoұ!9Y\" `(Y%Dn]YKڿ=!F ʷBQMY/|| ~,n j flX`Rނtu|)t_ j;€CoQ ]nY1"$ubaR!*BŹřo@]xQuЯBب:"3[pzxj*Uۧ<6mfRB| G(PɧUjTJf⍫=y@3RploPgТzG`./ Nѽzl y̞/:~l~u |:?:sb޳7~(XEêδ"Rerh(<ԵoXX'F^t z!XMjzx(7i<>,؟zTk,1-2۸>Ageƥ "ӛBn֠6ځxjRv5UVj/EmoOqVcֵqktB!餰!407=~XjzC"Złhwc7lؾ| ea.öv#ׇ,e{:>:uZOOw~/~Hڊn\hHš"zOuR>bʪ #۬ |+!f҅D"L‚#bI^"cf>_kϯ|,;q/U51D3;8XY2PVFqV>'ǎ56Vyb:\}|wywA[ee $klV2ּz?S.W4eLJ%46W/oΟMlfjW0\QPE@YV~1|ztaZ)Qbt'(7jн,'{ W YSg0 `ftp{BQkǑSG\9F0­&))v=#hG.1}@\ѝ 34QR'(0( b̂O7ς/hO|?qMRLLXխYN|Dx|l[SVcI-<բ<^E_!mC 9ALV iB<>2Uz5(x8Y'8{9!^W=[1 TVVPeC3LźK1nRCaW7+)?w'u*y/7SqE^E(\UZgt\f|{&0x< H|TYjbjd!DI1 ͜9$ck7`ʼn~:Ε81Yn>14/H$,]RPJ%0n2Y`+ 9.[!P}d7gk.n{WHL.^]+P~smD=cրB\ThC"|R;88n|5RVQr%ߘ6Rff|)g rrQSY(OHS&(8|LHID(&7.? coL%iRK+ +ȧ9x+T GJ#ɧI<`L%uRZ[+6fEh_gQIR ؠ'ߖdSRc{޴;:ҺeWv٘'4J'ӿ(ؓYtgK9YolvYPTi SS\Ta<;s مbZLt >K,~pca[(b$Ii<Ƃ* q~Dש7Q0_'T+V˷p=n7rh_ `͊B'%pbN/Fm$DtQtaK`4]|}o,GQXouh:6Ʌ@`^exƎ8c)^U&KALtITY㳏JNiPwd:GÙ/ nskFc'7IM s=zLpY߮1[BZ)hp6x攪eʣ"’c ћR$G$(:%23Yǹ IS^KT <} ڴ#n GkKjq=#I!'{{\d\NTQ:u:O蚰b -|ع[P"ߙ0QN RokUqysfƕH(!+9yjr[6PТ[Ve"&XTbŸt^ , 8&]2x8j<6+e~S« 2$%KV՘RCU*#dC,wf~&b[]*KNIN!rBy11E?Ҩ0$c%u:k֕|-T@{ wwNЧRP6C&ĠtRyI8jm9umkRR'CQ2&s;$?vB=t0R> stream x={LSw{]*cCǞ$[>2&RKֶPcPzJ ב2P!!S 1lb[۹s:,'99'9{TxEӴX_o'l„E\RH6~xs#)M,Fݬ+) Kii{v/ʵfFm3Rmj|QZ|BFjJOIlrK\ݼMg-峵R[21u_rSUk3Z(fbUPT CRQ)%ubCkQT5u.%-dkؠpG &w Ԃ=0'EU\2_|3c;A:0^QQxUHb##?`&']Őǂ^2AΊeBmH4-"4A>:PÞ] &WpndoCD>x|fa~]uF&|\VH!d/%[}MC+)n= $*U8?}lV#ݿ^3(v0vp[σ⫀/Oe2 . ,S N`= Pµ D nEP11H1G%v'}b5?~so279Pb7E?'?/˸@H9Hr6y9prpx?euu[4Q(cH:("Tt̀ ş@G=!~Hnc M*{VC71#rrO~cfeA⳸}}]]-G |,FcM6he })A2Ea4ĭ"/mol,`I `#q[FwVs4@{j2<8CC1=Dd&c`H 𲲳]BVuvɉv&% {|RxT+ҧ> stream xW TSW>19*g 6a۶vM}R0<BB@@I /V_vzuwЩVνIVV{G Bx m?ftf4JCGQ|OP˓3q)Sߝ7oΌ3/pL'UqXEH7ʣ%) To6K,K%W.:#0-^*I(Hv.'׊e@Ol<_rYrJ (($IPRӣ23wKbb-}f9kEES T(Dm¨-T8! QQ۩2j9ZIP!Zj.P2j$DR~j"5* QC?mTz)} c14G +oyQFErrZrpnny?_VjgA4,An*nG]pڠ^^wg5d,FtT}O/3h0@B)U| ֳ(%sfpt˗n˝q]h-`KVn['YtVk 'T{% Dh%[aZ-gxKJa)&utjreFntQ6z>Hh=z +KvE d"0= jAz|b]d1VS &5`-j5B^F3oܙc{w/l':q]La͏8RD9u`ZfP5s`484f[S$"h<œثf._KALlC}|n"zj#ȇct<?u^#w^IG^2hor81 %kF^zȩA/곯=Z2r4y N )L-`mn5GCTBq_ Np]i 4CmarT{z棇|SBu|M^j'` 'V)RE#Oh39A¼ٓw ezs.0ٰ/Cҙ_a6jK&SGTAjyJW+A0tIa%2-  t(4䂆P JkIhn>F#&n< 9qiWCoz]*oHccW&R;Ib;~nX.-`go]<=ɻ"5,i*PBfָиZgzJs;?9g܂r7BΫӭX(uQ^Ѿ /vѡo~}>Gqo{Ҳ!Qԥ9gKNģ1t*4RtjFE80AS;_ N, 4?:mHWhŎ{jE}8;Z4<_xc[o3s0"ߓJ yڂ"(~l^Q.UkI` vւfe|ѠBFy]>ȋdWgYLWDơQf8\jG$7}0od!Jo?D}e8ʅ\B.^yzy>,n`\IykNءP}KlHul0~wK3/ o+qձ|](~ޞq]m ZItUjdQZcY\F` T*/b[~~șS?W]=Ѡ+opU쫍XzV I7 닎xׁ|5&Gk, EC]Fc&<9(WLGE#ls]&U)f&{7#EU>qG2Sпcw1}C<:u.dis1 Gi0H1Ğo͂Gw~QLd;" A=+ ȼL uxGk^n85(b=q'.q¹$//=JƄ{ Óm˞6S{n^OF~>Y<՗hKWp|v+%Be4LKN Iz-q6 n/q'FN^J ?.0e48(s-3 ТLcATlBa-3DsAn0XKPW+Ԓ{ӆ#B|e/+:qɵm%rh01&lHZrd ew|//hW@q[f tz1g EC~pD.H!3\M] &ćBLBBsDOrCho~s%.n ɜ )} RqxK32K\ܢX- C卩uA5_{o;tzavA]UOXF=@!ʑ3 kDQY)!(dAQ!(G΅tW\NNQ܄tN0ǧg$E/ `endstream endobj 234 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 539 >> stream xkqme}maD? AD3==oct~|N2hEGàуsA6~1q|4 OWIܾ/:QF@8pum4xb2ex4F-mN"T)YѼ3<6;+BbS.1GBgC:E'3ytbitL8&> stream x=_HSaƿ;f@)NED^hQAQ\qg6ێQLww:3vMe]G2}!U8Nm0^, q<_M Qb!lskpw="k1..z} wJF"KN::5!)~\T'+JgmY+8n|q 9_d nX>x`.E`&y\!+P32K r\ Ǹ=&Dn~2p^KW }f!9 ,`;CKThS܆0ÍGMCR&Y\$dh{@ɸ=93;[WfE?Υx=BOt|]M` FFHhppT!Ӑ = 8o}*˭ Jl~M.3,ll&fhm0vP4(5Eȝ񑨚 L2UcaQ$h^<5;Gendstream endobj 236 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 328 >> stream xcd`ab`ddds H3a!Skc7s7 ~.ȘW_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*]&s JKR|SRYt^}י1y#no~\~r]O9V=׋翛}}5۟'Wgq>7<_s.wt3\Xpso/yypendstream endobj 237 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 358 >> stream xcd`ab`dd v 5030qT~H3a1Gkc7s7˲ﷄ~&(j蜟[PZZZ&X dgg&d0000j10v2012ϸ`o G~83~}hIK&N樨ܺQ~c AES9gT̛=sr[nZuq{B[|[BWsWsw GųL+=c^ǜum-ޔpFf̛2ybTY3fYkyFu*k S'윸WĞI;TM:Y~B„?f}wh7{r\-< endstream endobj 238 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 430 >> stream x\ SFRM0800"   %Computer Modern RomanComputer ModernbD`ZuƹR8Ay0C-)W7k.#,!#O&lpp;1(ӶݤߍWht|m^-_{pz/'76*! }06R2SQc`|ȋNjЧ΋F7|KvnVswliiwBoU  ? ;=endstream endobj 239 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1730 >> stream xT}TS~/ 7WK zhڍ/ WtǪҖRl.$|&(DH(!BjmV.vn :<{=;%|v윜n}>Ϗ(@J CQÒ\*t c$0F|[1関 *o 5c׭{b)$Q7'%9̙\`P9y\b[E$s9g&DRk xdg A`)xl`K`HH!Qߎ*.)Y3W$/mZ!C0 K }g/֥ۙ`GͤFvRU(l邽FXΪSĵso{2llx*=,Z1)WBc!BxTH%V'%8vb%"91bhE?^<58Bh lWX4DòԩᅎCG'7ڸ4͠cȤQg'VvZn|Hn:t*W X׵G+xK&f~c&2HDk$c(u15Fѳ}ЭފHݾzuoJ/,:hn煔7rVѰUHHOO5k|{꽕FCw۔f.1P?Dl0$o`:Cu][蝻O9}nhYBDR^P aS#uZm[h{FV?.A_7z9 qtǑmD!ϒGiI@%#(#Kĩ'닽gƱߑB#ɏDqV)Dk,)TXC2yͩDE ٍ|M37:2 ţ(@P4j^Q}>+]ls vBP߽nlqBxx}5 6VAsPkfIPBO5,8|Xjcbb1pCQendstream endobj 240 0 obj << /Filter /FlateDecode /Length 6003 >> stream x\[s7v~W`Cj&m܁*^7eR#hQY-zؿsAnM4ps8zoU8:~0?遢N^}z #tS5h: /uVoN5<V?$?!nU8~ v9>z)cRBBLIZ}@p. B QoWuSf*7-ѧݠ8F'R㚅LPt\(VnFLkrO7$:igZXȃ:u&RN)Y&*ۭQѨ7U1H%gZ:>a7!߹M$q?`ht^owjatv2`v$~g, G;_X:0ު7v ڶ91a}yA{h0knawdR ZonqA{$֚*3&ÎQ_@%dF)N 3ܖAo{ hQèͤ[`ޘզtV^/דOyzkKK[|X@xû)FyI2.xGSQa<}S88~eA*|Jdv ^LAbDL%ٟ?VPK@ol2D&)HI p %14_mcZYZ3 ti{ t0' 0_,2B݉늡QlV+ 4F~Y`&ga;{XL,Y_/D({ dagx3-MX<5Aٔ!<4QWs(3%>dy Z@a`sef \h gAq"T sy@!ٿ!kՆ _&^,Bql-JC] D#*\5lYWm@fhmmr{ o0w8䥡EB*ݍ`ѕ#*b9ѯ/Vlh0`ZVx"YbYfboh&Q<+?Sq( kC4KI;JAC`F >U΁KxSeKrWP[/=$-.siC֗a&ZA>6ٓ p0 }L:O |-c!pi;Pͯt!|L2W\w9p#JN$z_LulP Z[Xc,RTυ8 Dv ]Ra6{ږN1m U&tw"jC^ 1.:MtA]  )&r}{nj-YL^-R)!SxDOBw2{?D՟Ru_1HclES;LsvR0L7qY;WOTE*̌re'6k x~`ezG!yR4{ %NWsC7V!b3̤+zcOn)Bc,\]"U! m4 n"Fy~A4ڸR`jcsAdW?.qD7|D4 g41pElY\\# "YŹmT7E$ЙFژW"sD6e5LZ7KC,>k/H'4VHm#m5a薚7hČ0(ؽ6f}(W BPȔ7"Æ\l#7CN4^Đ[B͐| cctz܈%a_5o/[H'dԭ%/'2hzrr>,i27/H 7?}#]^XF[ \'94 / #>CVO5v-Bsy1"5>`%_ {} fsX]TNѼi+O=,j2r*: @d@|QXϩ<wms)N~w)E^(".w}G.͐ˀ+ M03? -CeuAhTxhr'i;ۋEO_}  w.?O4&Dޖ,< lGnQc"#I29itZK|8. kA(<154luk׏xi;_W+>= Ӈ`L? .5 pVwExX1؅YVzZ?ű8 G)+q$+25ŕ2BnuZ`UNcl>T]Am"*ms`d-#Mtɀ:.f{5i+ ̈N/odQ^i+ lOoN\1^}lnhʩn6Jߙ+k%oMXwiY1UѼףno]CnnX"6K{ SC~7"{<`,z<#ƶTh.gcm5aR4MDD.XX$)T#fq / лXE-8EPtO|V< %_Kc&7Gڻ4 x)n1Kd0E! ^32&X<"eu:̝*& nߡ檬>P)z@+<ā0'#d 0jOk?PW\Ph*r@PlyAahLKg\jXadCj'_V%z]qD Nl2|8"uӻ ,D\鶴խNrKۤ{nUa[\xD84]5 \C80~w[KyqLS9Lo?$$ t1KR u7ےR0@ڋ/6*]P>s[VtWl~:x_Qc qcJaY:Hx~ӥѺ&˞ F2r9Y=u+Mb)SΧZJ](檉_[O1CadL܌ ! ){[auxIxHh`wQM<* gkXR5NTDI.Oa| `7s)"71^#@(eU2C .:6ᤄFfszdꗼ7Ç{9wE"OAäAy :h敬c%8NA?wOG$хHCؤ!:TFpsw0)W\8 t;]ʴ `P;&g!ȄbMrr[V \Q*JE $z1`T'߉Xl Ň} Lmа)%]]{Ni SϧH]1G WɈ7ֺQH7!NX hsjϵ-JW Ǒ3\Ow#Dzl#}pI+!.{/LQY^*?s }}!x/zaFX%{e$-WFf.ٜx(} ?TStWXG{V"bgPJ!ėwKQ9Wsŀ+63X j",%.ȶ~,DM1%NRyESF݄`oQ @j\s'V,xeLT>/0 t;.oF=Nx/B{}nn,a۩eXğM/< C&#EhpwgeD8]_w7iVOvT$~E1"0փ4~L&lMV.2_ʇĥ#G̀8ϭleT@Z?2/*vm >9!1m"_ (ܪ'ex:l ,h7M'W5&|>nV˙@=*mI(?o-Tj!d> l-"x鋟fK?DZ2IGeEo01 nRB !?>> stream x\[sq~g*jV\d)&A3:A&C"OwLϜ]WJZ.fח9?Q /݃/Iw|@?Z;x })֣waY?*m=ǕUѨaZ+? )׫nAOH7|JaH%x`1~Wk1!T},(63oF/,5)6B\Vr9/N7\[D7lYuGgeE&0V²hLXql%-,(%h6ƍ.a?y!0y k!4x"4V1|v#mQǼA5(M V[=hg8Ú_=6 k YDbF4}OQ*5R fI.WFQG;)`E ' K00U÷eE #+P!YԘ _O!ܠ꟢R%'Eɉ\n|]؞qVq\/s/l%dS`(l>o=e1AZp8 ;M([gRft!f?3=k~Ss6e zR3P)+r;Y6A inAe@{ZZÞxKk]Ɛsh_Qs̀} NЌURxe 76pШɡBO e$?DsG )_{-,lvDY/r!xEίr>.9L:gkm BqVϑҲt X=z@Ā?f<I!ߖ53'shR]\6k#\3?=+سBql'aj1UE=hMn4tA`c$0͞5hp|[zPK썰6c]M9`7_2g`LDD}`r|Z 9K}#[SK6ouތR zLmcKN+A;pIb]MSB.4%t3f&1󪄻}VP p81V%aTgT:R}o `mM1')0ك.] 2t%̜.&=cMe YB}n7]gqXHXM]> J)vM>4f2nYŤt6JܾbAl(-8?mj9@1{O R T`2B7صu9C.YKeRkijYsR)r;6o $Qav*j@R ?qDj츏*.niFyJ$rd|L:Vܦ'*a5WEQ[$<(lR`KJ~:؂ SX[Ln|`_(Z'IE]6$=)̉q1 ጑H?؇ \/( $b?FSgB'Aޟf[6}'{͍fn/@ZU^8| *L[VYOAn(T!TIEQ`nAr Za9"*uxtg#*N:xߦ.DfB@ 1GO tGh;JUo`) +Z~Poj!? Bib`6p̥k3;QD1зEi +|$1L(Kz* uc_NrߏUwq Xm#1%kjpǝ .k$Z[OAW*!ǁ0j[Vkp_{6((Za1ǙSMlK0tefZ~nfdE:r/^HϜNIgQ}kM*k9rm$. S |uY K!x^Uvg : H8/`#͖Y=SyI!L >q(MH>~bm_5goQZrP٭ pXGrRs,Xb&:4JQ OSZ◹\XXCr]ҥ$ F]cpwyN1\-" A-@Fh?9؟򾪔i*ͮ-֟Yce9s+-ŋ6%NxBnx_a e9.Zt#^pߵ 754ݤ/=Vq@p69|Ij@吞 Og㩌'^F~LcDwJ{ 0XtwsYc\\R]G D+XDK K"Л+CYA ϕ``qk-ԃR y հϪNINf KO WF)hvy> DW|$YITc!+O2 @OXPϾKOYts/8,~ ݙZ ]0mq KlŞ9 [y §RY:qHdjHHJ @+o;7l"S@oJv6˗T+zƇFv{SN6ޚթo@N+WexH~i7(^ɵR'1wQ~n;05N֝cecч/;4;{GbJG+IIwR!hѥ_B嗗3w$ةog׬98䏑L aurS^&j,FB.\Pj}ҠZ9TLh&]TvN+4p"E w_>7J$ϹTo%=={Z0U2oj=P8@/f*endstream endobj 242 0 obj << /Filter /FlateDecode /Length 4333 >> stream x[[#~#liaUx+^xY$I~tFiu=/;dyXdapS߹~)z7[J ۇairKi\JBqvywF B,^(D/r|/n }pyft}J. ^ ex堔}5X|g<Tޫ^ 0 *5H?_IMbMf$DdmFz{h7?舌XBON,ɥA 鰼OWn⫫_>#wsrԪ7ŰJ -gF!ϼLZ*\ZxM36(4TVfT JZ@80Tg"Ñ1i(lY<ɟ6`R45H3Czigh{[![ӛx8>D6Oǒmi+!85 8%xzkg"ϑLTL:J+d):aRF!Ɗ@,pi*9FZg9By -E+ ꅪ`PY+cg ь;_/%TlP;1j[=ɡwen{yaT?߬v)1cg]m)r J317(MT4n0RhTVXg5TTBeפqE6 Ή!i{ki}l'0Щqġ٢O9lK K ~" yo֯F._n۸bف QB}W?=<=܂>_er04c) Ir"MTNw-4I312#`+\w(DI\ўI_'~HJ9pA$Fd4? ^wEo- qHiGV5 5o2m,b4AJ3pp]󜱤K 9cai\tpZqZSԆIfDE**^qdYʓ6Z)iqu||>n]]?owۑ%wޣJbZNv7y9FFf+_|YA<汛@ D[7^bĭ%YA&B断"g9HEOǾD+mx8¢ӇL>)6wA8Fpܕ {J*F# p0PGwWU|@CmUV&79Mg~++ p.~*$SX ~UH~nZVf(Bl}`K0Ɠ㌮XjDX𡛼cb ]t,I N ki뤣>lҘP@bcl7 vVjaBW*I; X\6wdtI^C7oW{PJ~쟰XgfaJ;:9wa*KIܖr\ݤDS¬C}9Ym|r6O(ĖOdM3sS-JDZ=Z7ըsC~%T<{AOFl`}GƑ< Yu~;屆`K Y KEYu0ݹ" o|yy3v%:ba ZR6fXVCsybu|7DM6%i6( [qS,CcMkUΕFQSfR c)S]WǏwOP7w==S@3[z"S˧,{Ot|W(TJ1 IJoV &V]^͛MڀջyO(aG u %\\ՑOCT11UrY1u%/:++t=᫐A"77I۹_xCt>mֱx_Po'' Or}k^]>~`WDYrk5o;~_p׎4wčoΉQ(>q͓(-f.B/O8a 臺7-vzKY:CtLXendstream endobj 243 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5290 >> stream xXy\Sg־VVⅤhں+TPM2!@!ɚIطPwK(Uq_q֩Na{I?{޳<9\`GxQҝے},J#5{ry;#,o$'r&=pv3oe#cGpX:x=$xǤIQIisoK>/$Jbş)8NIlg8)Z"HCW}C>XIBX80[.Kb%ȸq8<.6B$ML$Q&NI¥%IjDfz0Y,$&&bi8*!,6I!NKcc#Lȸ$,!?߉`UqI RY|Ƥ$ӽRX%#“M޼}&M'IRLl#4|/V%KMHNFYo,ND%DHzMQ':L&I3gz{4)Q%b8ؔܘ)ɒwZAKb-mOHIJ^+lu궴I@dTt1;=BwM|ig̜5 D 1"ZbN_zbLˈrb91XAL%|_b%I"5?E!!1,1OO,$# 'F J0j "SK~%9$IvR^~Y;5lʰ'G]N}+~cGh`1##Guqo/_;}ԮQF]1BƋia^nsϭW==F8<.2Mh"ڕSֲp*e,TLD_w3;zC-4F!g$xW^fCP a R!s+'S hucy"jV~}RPE]=)%f\3$*tWְLPx/~ u r"-*y쮺t]mL/V$߷>:A 6OtFUDbSiC9EC]2TKY Yj\Ӳ/K lm_":aiLk+RZL3 ? @mr-^͞n2PIuJU2W5iQZ@Ij+Q:<4PfeR &ȹ ejPR8g9R)֋סj+V޺Pkk,Nc1UNQKzoWde\CvJ܈F}xx/[hlE8\1|O`2FT9l+56hJGO z =/@`ŧ(L- r#]׿Yp̍Lxq[ijf([y1e5TԷרov6f3YCX$^իOF*d'.W|:vv*Z a`TSu)-]]YQSjڕ0,"si`5VY&xCS;៙- wC#֊}ݸ!fu>M9RcGiLsds! ;AXͽ˖Bjٳ b:#}UkGa;hQm>Gʢ<~Ŭ,ۆ_큚run#x?9b5Tn6DlzX=`ɋH4p9htB];U3;_6;~<3j!mJnξ}+۠0deU%dz#TէmI@W(@-HKB"A+-:AbG_};ێ77np$%.^Vʿ< ǩ2g0w\Җ^'*ۻRbS +4u{LlB3F8 R l| hd^q$2P$T4l lj55>&%Nu$B_p\q6nCYE^p+\os2Vڊ&>LKjTj Dx6I, kS[0vwNKM#Ӆ-߁yH[=4pڛ2X;ERWNx2ưȔЍnپ HSn̓W<*7s'Qp fcZ> Ɛk(~`L''#f񰊚?8#IA{ @)4B[Z{T"g^?u-$4i4BCTaK?n?l^|C'ylڳLӈHCW3; Ju̍ΰ5Kjw޺{©v^{gbU Ei;tMiS+~t?q}) CC"1\m #23--#<]^}>ԺcU-[VGҔi%./#be+lg{|.o?l:oB7p(TUZR/)kRPy)ꅡn, ju@/ĻH#(*K lg)o@kʹih?/s)0SQP JEJR*@PtJ؋BcQhB!B|yP+J L|TZ՘Mh]ӶEh+X]ZTUQ`7 N}}p gUTtt%M{/oMJsj{pN*{0\l(M GyU}vt. ]bFqpC_vp=(4_1$Yks'0hҨ8"JaVynU^P#[`=iObQpo1$V'Ls |{'$wQ=F6>.׌8in"oLTBpzShfSuͶ-}e'2U2M{FGmѧ^/m?[q JSA|/"(nG*l74݀X~9dr9:mNtۀvzSPpR,g'z{(+@֯-QEEʅW@ytepxjfJQJF^ȣsu2Jtty@蒄,[0k 9Pȁ6eHΚ=>8uWAИds*d:4Gl TQ|dmZRg!tJGC$> stream x]O0 cA,ta@p' aߗ,N>˶ul#GpƲ4% @eQV-Ɲ剓B'X d6~Wgu=UiB GuQ41 `QqJM%☛&e=O)X!oSendstream endobj 245 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2254 >> stream xVkTTޛaQ[t.yCEhJ7{3(!c0`(E2"*۴r*j[ǎZGWj#Jw߸!ُYkf^y2A ˲|Rq{cAXT{S#Cc3hx >(XP`K2.2fgf4Q+Fi&Ek&hfW4zSVFD70i&gL_),,g0f<*ZSm03VjL Mq$CSQlXacF(צ>sN7RO}+n|yy gF0#(f430LL`Ld3Fd!0F.Ϟ U T,TGU+8"B[D<{ $Y ܛ v?#߷~m 2(Hq} m{P/ 0TT˵F`#%Uq\]hɏ:rLIsrC Wx3X;%`O\0@\Y {yARI;Y$.>fφ6.RIiuuhn8Ϯu|"aZjtCz'n(PMIьS!qd8y(2 8y ÐV+ltKH4`eV{'*O]\|RB^uTA-npVy< 8X&z|]Zc*FS.I4>ER$ QM4Ozb "~iYKx70r!ᎏzq#0ݢ3Q$i X8ݮNE݁-znU?F;0ñ:BV-gΫQ`So8y\a脛$=𷷾=-gZcTCI'@iX"J/K\]90f\?΃ +VY0'_\a9P;?oW:|_B-TP(J}A"K\}$i@Y.\AK6ɴ/τm:2AC錔A0gyR! Eb4ADlz<ǚ"{s.>WtiW+6;$ȟ8yl`cu'DjMu݅4^ZG"ټJ,=PIyIJމ,*K}Xm*j{=w(g'R0>p{=eNt-ާ4 1p1|2$$5DihP*#Y0ggK.+s׎}} g{\Y~dwM7f{VEQ׎ In__A&:IPRܧ.+]"@3aQ5vR]%<܊mR?t;j{zyC~IV (4iɦ=FY?8@s68/Ze6l/Y/iaZmI?l@8"!%1DKiQ[xsĨ ]8zǥdP z­nqёt}GmKWN۷鮩d޶c<u (U9vA]03nYU|f>ck-6*tOofrVHX\[0 ctU;U:ڔE倐OP<+>nEd7II*gϨz$>\& #$2LF0,B:zT*w//z쐣:(z/t!endstream endobj 246 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5909 >> stream xY xSeN *@#z/.l, e/e)ݷtIiIi5]iBK[h b,(.(8*8_|iˈ3?ӇP'9vecn^=wSާy1w}a~076.c´.\8Y8aiRtZ|dxqI6DGgLZ\Fp /dggOJ3&lNNˊVJrƄuI?oRi֦DE%X9KLY&\"2WgE67j]tظ6 $&/zlYI dzֳMXYX[XY[Y3XYXoBXXXYYY;X+X/bdebfZz x_g?\{*اȏF&N'\ Ac-xQGGM6AC =m&C4&f_v4L& Fڌi}N(+R8XkQa}\MF W\cS2wb{^Ex&.:=՝ACḥH*?^[Y4&Ӑ p hWqZMUoGál{A|Ry$! b!;C$_:BnS^6eˏxdX+҈%qV/U8K-ҿo.n3{ߏ l,z{þ2q2\ "A}|J|&s\  :ՂN#m~+T%&hĝWu-Q*yFhכ˨-~c~%uƫa:Ta2kF޷/,s J޼-t;}3=}^j= D JmDB1W8Uec긧j(Lטkv~hv~!6 qW3,Xmz^31CNR&+tL:t|QJrn B 66"e4C9q46;dzЦ˅(*uER&^I>q,r@U-PY:{0 zCә*RIN<PW</oPxynv 7>D*µamqݼWWboW$(V?rdem%ׂٚš@†J4${{GJ=iYIV82d [dGzo}HJ̮N I9| օ;};þ#یb…I`S\m~&{g"dž{>{l3ysv<ݚs[qU}{{3"ӥ b(Yz5 V[ ,s~ZZVBTGFֆRbY-?COU UAD-tvW;X)G댵C`(b:h{HxN P4 P|ؠk@)Z+hWp4@2ct| *?>hۻq)K5\{Z[ F )w϶l}3dX 0Q0Í'h ׍㑹$}=дRZ+RhDo:~R!s^q?Z^4p vHZMz䬃RȑF6ǿ{TC~%fbZ|/࿒A2Ex{ZvN579ޕx!*\-!vݭGZ޾7L;2) MY/jrؒs/}BԩsEwlw_Kcųl.ķ⏌e}ҕ"qZDfbix% [Q6:}tyrk ]8#di"YC|G" gF0Ә/@IGżPfBn1[t87;q6_A7O6eߢut2[^yeQHXKжOo(kh4|Qbq;$&JS#WpFOVΜOZ2wS $m]cXKLNul+s>AOk #Zʥ9" γjKsG&s?%T zw`&ZLEo[I^Բ\^7GٞHyƙ"SMmw6B;٧_޼]ri*d}dnxv=G=rzJS%Y'zJ''ReF ѷ$ l(T9뙕|,sF`J[RW9TsA\% uL18n<pB{lhSCCA )Fu!c ׋ |ܩ,6y nQ˂ |PF+~`١rn-~MB]UE^oL"[UqeeW@10|ZksCGƓWq>`aЏI&} 9hrSN;* r>3(o,VG#,}ӿqPgC뾘íu5EdsCeU@%i+D)9e]/-Gs@% `[P+0E S]rЮ/Ѓ]Jf@6c"CmĘPt T]1Lx) +MaPQ1x|Q3Pzq-8TrFҿ?GBW5Ow"]O>ˠq& {!ݯ֋@U |+HPOcb3l|ABRBjYnm 轎~ǫW' 3J=7ٕ欫voV831V i.隨4(U='`$<]o..Y(_KdjKKvvDѤ: 2[RYqbFyγ]eǺ;p:FľKEv1Pt2s{(WU4nQbcց&_R|oPFԛ+6%)7{v (7w+24Wg4b̴LlsX4`oJVacH0DruRh=o?$\> stream xWkx癕!Ukt !-aaiHj@@ -cKȶd˺_FHit-[m,YpL`'1& !mВIlm7M?Ov=;ws$̝#Jvڱ~]e=sߖ+xj<ȒAܾ{T yRb4UUi6weѪ6m\ur,QswjJ* ME>MD]LڼvmCCÚ5GWmPirԖԗP>]XY;ߚ٧ -8 }5I {q>FIۚ@:,sSe2&0GFV-@dhvBEs5͂wjIRG(-&Up pAd؅! b!cy=m6>GeO)iJ֧*6|:>1 AD4y B]qr AL:B ~Tl08tV+`!'p\ɇ!nVpֶpHo~'ڼflb2HB%pݓBdκ=#şlG봓׮-O$OwOz"A4PNWq(to3ܠff% H3cL?rCvNVTn@̠\S0@gJ" Y("DE B}cr2^y|f6V^e MVͮFYM(#e{%ǁasyxf8U+RmL]rTRA>Bu_" < fp14m"~(As?ssAG9 yfp4 k ‘e<"u#Y7^v_P\"W3CC\\F[mkC-А 5 ѧvS>@GnBITK/ӖvdzvQ;Ȟ&zi@^E)>GImr; iJO8(9`0&Y= ɯ"0z_%ʑ%]jEWQn#ƃ&b=N4iɌG1=SO9'g礜SJЧ/n̯oZ0X9]S8NwF !8 tM7w`FvmP]cR{lh|ߛj/LĤH61TyBD*i7؍E9Sr9;u B }&#vߔC:EA67}ށ0[fbqƏfVY<#}NR#.Cϳ7j7hbէ$=M,xr l&>رndgnVM&x+:Sژ5i}FpU2E; Kњs\35/ tuG"W2q5d=ǀOA*$ioׅo͂Yͨlq鐹(gXsjO' <~VAEh&]8p.Az1Phǔ殺o38Qg+K":4endstream endobj 248 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1448 >> stream x]yPSG%'B<6 XAAp(P gI @1 " QpXQ:(QA(UugYٝ~wIB`E$i-[1$YVWJ6KRV8K:@$4HRQ Ӥek :K{GҪcҵ ]*EE4\V鲥.~ :]{VV"eFu4KKWPi3U@MNHQIй}Yd J+]UiS ١SQůWGl‡b $#"b1JL{&, I?2$2rJFRszPdqCyz3Yم4֏ я!ZMt?zd>M ʌ2mm_[Rba F pQ+ `-6 E\a=xE4f8 O\`ؾ{8 /ee`vHlmV$">.|4g{`m#\Y<-vBxSI'vJ2j/C@?7X-[}&M36tLC]%t5ƞK;<ȶèӋ*ϴUwE0s?l ?R 㦱ԉ>/ { :'*OsLIyI1.t+n"zAw=.V݃m j1ިlF.H"l@ 蓾/KvE;V35[U-k/aIٕ dz Ok,sO{1y<_qݸ%Q],v$Lզ7ޒy!7 9~f8OKOm]Ss}:( 4,j,z$/Gy:a;ۻu%{D!ǥ( s=zvu;ÿy; cfOLCa ۙ;J}41W<* T%E?Ԫm(Yv`[c(V޽\Rl1/͏gJ=VqO\oDK0(Dߕ JQDdqOsT#apaxAbb#{Ƃhcp]͉Xܗ\"69g8C}x[X/a;G}|f-wA0Hq*q6jxl\]K Myg 뵆jQ4<-{ow#8zV3$[o$׆sRpPs 51[_=l,~<)aUW ft~ z_ i~B94['e79/ݺH͆8qzIH*^(У?ĸZQɫ X ]66o턮R[ہ#v/C"endstream endobj 249 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5363 >> stream xX T׶4J[jqgQ1F㈢8O@dAO7(-PSoǗDcLb9E.5{4sgS2Ƭ#ɸE+ݦ:Kd>қr [5v1 9X5Bif@\& ڷ($4.3Z!K/dm$KC%ˡaǵJR/r?olti[Rq,H1Ws9 Uz,ZR4B9VPgVfdf3x z[5wQӦj5Ć,!3Lm N߳{LޫjlcѺlKFF#cozCV!ga :Tl3[ۣyYJS$QV1˥F pgd&yq %twpΣg8@Ir (GmpNuDKY@r[x' Q(_gD]Q?\((1ԗ_&޺z~o6*0T'iӁ惬&Glv2_esaf{Wp!k}ѣ4rȈk+)&G%Yw ,lx7Mgˁqa"#\\Qm"!~YɤfqO_ m!lR< }{n,gyoK G.LZġ;P2YfQX=|R&mWoٕNU/b9ӭG Q凇5E!JDdXN.L܀8P|Ev'&S#=Sk)[ 4e 4v;~%9GfGz}K;"NqfZvC0UshmYӹG]6v\ATX2)"Ic#t8<(^Brr3U1o?KSҰZ[E W x}ZU33] >ʰ"loͼwih.UC=1nš @Ԉ;{iiHT s LP | No?R9=uxW>O2dixGyN- Y +x jNyX G{UU?B0Cls[U6v~Gzn&yJO=A~rk΍c 5kx,d\3\{҆j q1džp: -'섭PbK "T4 ɸu2}5e-bK4Z}!w=(pkHN23tX~N&r$yןDPҪЖ\KWCs>[J .Vқb(KOmzI63o0 m YvCGX]~liS3gA\Җz<6+[\Sa2GV?0ZhYAeқF\i˅u\0Wtvl|< =Iߐ1ngN3vR E |T^[|'UzNFM rp)kҟjh$NE8JtV%jK`̊bGT^W]z0-L./d Կ8 9vKhH_!ג ssS`9Vn P./2ޒL('=FWѵSF 9i럤4M h0 82KP.-~Fl  J5wʷtuZ]h2gC09PM8G(,7D_ܔrK)xӑ" N y2D4lgNڽnܺ3k/U u=u5I4/ Q8'm ā!0D1uG||"|YG9),$Idd(Q(ԃp'r/a"{2U;3Si: :>BǫZ_ߪ$f~EsH\gVH$]Rˆ]t rQ}[w{x=S^̈́ʊo\q46*Rx[xJRu$yX=ٍπ~T4" ~YbOpBɖ*,^|CtɅrK¾du!u){:DNfzx\ h}/QvGTʥb Ԭ&&=Snx8_[QASI+9_YT~Lʆ#ۗ.Xel% {r=o &M8UߤT~Ɵ\W>o}І6GNY{;tzTKեt$ ݉qpPyEsSØQaǶUUA3X?mՔ Kn feBS|(<Kڬh.~{>.KDEk=q@{+hu}&bV9OM@m#i:9U9ڂ:&EmJPX^2@ni>=Ȑll?O1LGEĊJh%xUo R2_eOkS8T%Av8Zэ+[Ȗ?֨NS A|@EHcceuUk#p2kɢԇ9y4/qo8*Ew|grMpƔkqy[X` 핖Қ> stream xeoLuڂl\ټ;[Y2h05!e t(W:ڣZR-' BdN7_ FL&2w-L4'y<}`H$`nP(ސ50ȇkj {}0lv1a`ef6q6UbЪMBMj =fAOᲗI8yfkQGZ̖@eT;&[ml-l$ނ+:AP6 A])z:5A"|Q ܤT8sۡk)M,`zrtA3hO*d{B:ԘL{Q:ft}n%_Ti3sLzc,;>|WkD'}*@Q TC_?RJ\OWVY {^"0Z4r Vezl'H1R$g>K^Mu_6T(fI ;|FoPACIwKbz]c=j> stream xUS LSW~B@d*m%h 96dlDW)R(Zh_O_@T~㪛F j\P953dęeOɖ-7'K!I삢ԔgR.pKo RƢQ 9HRScqv Tݕ:YBy,5=}u,-%%]^Ekr@UrQʊ4 Zg%dVtU+Vd:Yݽ.1IW*ejZ[KWr4jPeg]FUUMU˵Z9r\Ij:E@!)ԻjΠ5r%A[C"R_"t"8LA+CH %v, ܷ;4OUsg*)owRq:_9wqlFvq f0*PS nꐘ. wWǎӉLۓ@յ#hnܱOQ'[mv1 aNQ jef!iYW79r**cHtu\b 8lAO1SXXon3ܵ_џA cͱﳛa z!n1^(SBwntW)*A:Qw6z\t%8kGyC`<2mth](4=E$2z= V `__i^Š!1.AM>5CLccSexr0`iߴe}> ίr\ڽ-񵶵ಹvDFq8X TdZ$QJ'iWc;eAk$^\Nmv2]x(2m>&-T[5PGBì~)_~np 9(/Cx#. x9hNIf1ZR?-~ L:\+.05eDcz!b->X:ᅨiğ=bZt @tXT0< 'u3SC pgx>^W!ޣ,)J"qELh+0 ܂o΍[:E[Y8c$ ݺ9_vlp> AH ֤&=~ ˩+7꩕j r>^xܖǿ=K=+/ n{vWsV7HKJfFfs 4y,Qܱ‚6*F03U3Dž`VǶ9LO"#yKϰendstream endobj 252 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 853 >> stream xMmh[u5K1M1t]]:]u霂vSpbs6YN[ӗĥ$U?L2P2"ȴ_6EnpN]Apx8,c20,6<}bO}<@Z 9%X4VG5lO7 ϲɳO._DS/ΡvqOooKX`<_ yd=#CIN'ݿ{w2%&_<.ťXB#aY< Ib菄ò"^)zbR8(^áˑ7=,70fqljcVUX`sN11v;[1X ]$c}S6,kYΨNAqz 6\z@@. :qk#Z~EFͫ*IB6P(+qڝfjM~O]ϝtN9|B׌Pi{q\L&f jL.6F:hn^,IW^[.( dYxw^Uur׾t V/={x`^ꙛY؈?cwghC(1~v#gY5ﴀ 9dms3vL)EO,~7xq?Fh R2pɇwڼv{-e;lƾ.W`=P0-s7PՑbO={8}X':-rX҉ -PPrS%zo&"2=st\TQm6UẄ($*@|TÐqؒeNrCR䰘R}EUW# vљ0endstream endobj 253 0 obj << /Filter /FlateDecode /Length 176 >> stream x]O Kå^y8]s=[hcQrxⷪw>hy2Yendstream endobj 254 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 451 >> stream xcd`ab`ddds 4T~H3a!]O/nn?|g ~O/ȘW_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*ݦ&s JKR|SRrKF00003010,cXr ֢[?:~ |/Ϛew/^R]%[uqwqѢ9@UU ~4gc πӦM1nJCcGG}y 7Nmoꖬmhm^/=7vuJNk9o4@+~WL9[rڌ)'wvwho,{XaSRQ6 A]Ol%K_[~:={1/&endstream endobj 255 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1054 >> stream xukhU߷ZbۨLFEhUimzْ4m\skK4iTlZVE/E2A& Ɣp7Tp?P4MOWV䯇2茸 ٮl(@Cp1n n|xtP_OVvR.*˪ʡNyYB۫T+Sj #j/t2ZS?RO+kPjC#.Y]yB7WvCE kO64Saz?(g.gˀßsxrp's [lM`IqR6Y%v㐔l1b9gW7}aۃ_P^k9vpoH yy^1ayIWaHdaGA&$ 8 Nf?ٵic#d׬.’]s!{vohVm3m7ԭϟދ}"+h|6 [ EM?_L`?M[q%'ϕOt!os&|u_?e^)!]XrK3 x))`Y[bvb1au̓giSuaE pZ0o}d:vW/-f `NQWR(Z,z a R$endstream endobj 256 0 obj << /Filter /FlateDecode /Length 6384 >> stream x]Kqv谇 O_tpco~H:!),aIKB9Cή4czgB& !:J$2|| _?Vݛ+zu%ӯ򟛇?>r'ϯrT;g=y/b1/]ȫO1Xs1ݓ۫~򇫟=͕w%RƋ8;ɛ*O> :"M)&kb&+XKF=[\+<8/ 擊 q.ZX<Jh|gV$f~Q `V=o2vf: |bvulj5y–ݐ0DY "^3ސ '򎂄d Y *U"J盕a^LH~֢C b\D}JO (O6?)-}K]-q0UQ&},iA*dA98: Xl~׋& `mheIr w1l yOH&O{XOhy%9hI}hQhGub;B%r06 Y6(?|KnBh~u`7$ڷR:Z(kLٞ^:?mĬ SWMz Nrޑ0즡R e&z0>F7)b<"tis.:RVMp6wۅEN%ޡlEg\Eˈ>eE/j0ژ&\DjX{{#|?$*PTk^smfLWdF")d5SvAmM|G'o |һ^1R/l6Ⱥ!S0z cf̝W"W:L}hM^ ^AkUm6$9aș#UXܾhI\dc(Bf5"  _fJI9k%ۦ.0:z.*ڑ4ii+0WX^X9gal na!.l&$4:H J0`67uFEqS[{Xݨ 9rpqR-ɨF, (2]FVBS y7S3]ˉB-׈AXyu른]&Le\:"j %5<]$6z&n9\p e@HRoŢWG /E' ?&Qǧ]Wt_uA21eH;EP:•}'u=Lq] 8&_t_)X l`0ݛke]=Rh+Mcf T Ib/0jn mV2Mӌ7u`ПGF\SPOqT4qZUfO,INXf7'mfPꞥ@ f_>0m<` 7 c\\W,~WWO#7[Na7Y3kNo/Ak0yp=hx󓭶9Km$ 6W>x6ySd@T>`^YVJTC<]R K=M9~ '=iA IM5QM,UGH.cHFMpέBDBJXE rǦ3gh6 IW^AnS2_?9rOW>ރn[QwrPرdE|cVe^mY<(0MJ[^:I,p2gˮ (րfHYS؉);dH5R3H}|Kog[:VS*X-v%҈<|MxnQhbn9Jrz[Z|~^hTD9AbrEgHD"y<uv^ⶓY>?<(7z+Iiۊ 2ʄQ)^ U,m:gejJ@/G *3K/I HI7g`lJ :/9A.UIa;=dݞU>Nns"@'ծ(Wc**F <HxA?I*3jqpGƿ0hNTh򳐜j2$n!6?: BV{ =InԲ15qNa'F拒E~4 ^}x1ÐZ3ahPu7euRݶ> T=1<۰||1OD<*dFY} =kYp"Ts^RJ֯=~M52`aE^P4" cLJFՐ TX3a-侚5ϿryM5Dg bnՉ]Lҧd!0-51ULv}UE1^t*_料``q'uu#d;TCAa)ю۫Bo$h: H?)EG."|Fr5#km@gGTrH@,CG~: gbT&wuUuZ"} (.s 93nʉ] Vܔ08 9 lM3+.=G6YNqiyWY:\O=+O)vŧcۢ*xO#˺I2=u2yi %C߮8ڣد:\a,cKʫ@"¾GJH:7TmmM KH=xK)U8zEtfV-ŚBl s3e$,^mycNim:h{ ^LNogL4l]$x<ύo.C5+'9-|2d y 0!aGS NM":ؗDFEvAmz:ݾ,\*A3gPq\yGO4x%Rqq*3\T: OY혋rx7-k [sP!U#ȓyQ`*"ivh-ĩcY>ˬx):+2]:S-A5؀K29RQ`ٲ4+NʴXv"vNs9Ҙc~eTYHM*2=KB]u[{MSS z$Xl.T ;n LuM u(ۙ#vZMNbvoy "WJo^~%xfhsd'{H۹,FHjWʫѻ<9{ޛ{Ɏ ((Gč;MUYB -=f?LTWw"`*Ƒ~SWt]+ ~]Js7{:9kO\Rcj%}=b{j2|ߑͽ7!:M-3H]pk|Գ9!m6V /ЪtѦ2r2\$\ oeLAm<+S*|wVph"SmN&-OGg/6z*T*!!ϡ E,^0el yߥۀGe\كd6WC_V!::^zlgcf>QḤ/x',r栶bq/jM} !nEP&sy27PhA]yz.*G}+: gƤ'O`(%ab娓C,W)^J+&2Ta;mWI1o~96T!DGV))i'r5P$@g??vVމ FӳW^CX(7Qyݡ=^@lQhP<`" ]R3>>U87ֵeX*cJ{H=մd,%\cq45*'k W|@3%t3}2z|ʣ.0H;^DX.-:ɐȰn9|0P2擙&z }H ;3/!#ul&viA^V"EJp;i7Z˘'sC&ש *]1:At}`)'ybbeE]X%=8 Zs"\A[R g.ߔx#S|@)5kβ7^-+&3QeG+ 6espwZM. R-6\ruvs}3>!1y@#/㥩Lع_TZU\һ }S4?NU˿7x hN0҂+il UWd&Vc~|3A6z9]204{XFWh][R[SYʛ y 5ÚؓnmE=/TR**qc 𛭽[7iN]mޫ捛/{ o\yH~KQbRhO]v7 hp7Xi`9:Z b u=YװHܩ?%rA͙'A bu%MNDZ_D+yJX Kq--N$z(6Ci5|> stream xUW XǶvY"cNP&ʢ {Ā "ʌb$hc$ .D(%(8$hj|ͻ_o:U9є(iU)i5-N%N =IUOB9xEIh7.uڜUYy6KN1=n3=lVUJi6G̋XXaMLrMMtztR5WvQ@n )+ÊR7EGfDefE]3wT/o{ή3=fͶ([*)bj*5ޡb){j G-ޣxjD%P3 \@ʕ fRTNR,* "j"P)9%P1eN,(5)Kʊ)O+eDͧ6R@{GyJ,q열IMzX:d2Zkr{+?c:ff#& &ɦ9?jbl<ҼɼN\ u*ZTZ^+}/u )6a7 LžnobJ&;T]>J]X09wh6O\Q"ɏӰUPMj-h#V=f5TҤ69Wr23M&+?I;up=wxl#:X(+*-%#JV'zy'$y]c]9M8&VLǯa!zIo-qqȮui3]FZRӗx%xtc4ye/ Yi1&US-%)@X`oYI _MB`rup"b_,gp[t&8_1|yJz+~8._߆8<‚ sGk¹VZacx,1-ZcZkIZcK8@HA@|Ѿś)p_#GK jzP+w!/ֿ ŢZBT~<"T)T}h'[hO%` v!+sYdr2oN5P+ 5~AVQ(},/G1T4w \ͼդ[ |1!>aG'U;SMd VAU/jS)7Sv5PӵEAn-g8 './kTAcpIoJY!DnhQ^tD,E؊y0BU=-yCO X`\Aj0!-S>g⳥\?s'wxa#胠O|.; q#T~EŒyW7hΊAh$xE(ae7);A>H"|f¢r84\kG0AH2ZǪ^p_23 x5j8xB9{ݻЎvts I>I }b8T5|! I7y(bCgk?|`.؟4~V]>JN`0 nxk*P3wwZ(^+aZ>[p#!ۆ05y J5!R\ Q/Gb0°߻9ZRܿz`9~c0|ިL 1|'KG%ȳS!N%qwf1@t^!?q{TCcX jDjwa}E` +ِh-;뎞5ĂG)cݽ$O]] -?C0V<:6iylLR]ss]] :?$fD譈'Ab{_GluW f⃏Tt$b1Nz904 O_0@,dGJPbHz,CC.^Ew>f·wUEx&nps"2`^<׃l9âdK?-⟃-E0[V\,v vOLDR+zb^vv)M_A TRHeFBRxKD#8=~KIU8oq NJ"!.>}:hد~q'ߩ/f1] Oȅ XC ڼAk׏f۪ϯNZ_MNz 4gEoNlav] ?oB\1e .K[1{Dw,Da0M;n~SU"jH2#ˏ"fZSԑ5D'0q0aIAf;5[glk GQU)o4|7{p衡 ><р[qE(飥,48\5"4`\HV$2(&No)}?sqO[BmFI'N_wmٺK{ bP R4辥9p c[Ў)2RM, 5aof CA3X4](g/Mt! Yæ(G~\1`fybA[kԔ޳{׮/isS?^endstream endobj 258 0 obj << /Filter /FlateDecode /Length 6356 >> stream x\o9rB/;x:7p.ٻwV@xf/UAYk;ZkF}k;%ִ a(O #Yu#^0NK*=&?wz/PmR6aXf@U~i_5zCj'-:˃mdn!oǁ/,9A;.W-0G^r,Uagih1alΤñ \6TsFنQehɄ}Gf9waJ$W1VH3v9_168X <;lcЍ'Phz;=$Spdɠ,Z֩Mz4dL{Q v`g`@(83tҗahaeEk8 ,D7K [CE/ _B/vCϤN7VȐB.LafSN;~yw؄U,i+.<^{yN@& ($@~L \w!==tڭ|+1@`c&1?]]~PΊwqʿw~pZ:SOQ,qQ=4dyVR44B !63b%74 ` ,UG-aܧJ4jK> 2j^ѫ!^leS ~1ڌ!R{fFEebΩy;)Νu5aKxySw**9A%ئ,1/+`˛hDt&2.R<n#a7H֮ی &`0mT2nFTnTRy#,6M?'n5Y m  qêq _Ez9Q:1zۨcf鵌ǑؼԦyX+\L7|ZI̪UFgyf`YI7!'MAY[ aa1"r#h$m9Q0`gwֵP֡ L0Tp)շ<ԛ5@hO*:־tFyd< Q4 ;{)cO),gO#%Fttw]dChtv5;U"S&p/0U*\[b,LʍŌ"/l" =7(.?!TT޼2UiS b^Äg:Jb*ܤ @MΩ>0* KM62u:EvA}tW__j jk=ojf (P,F$AñHkM>WK.sZ  "-#G~थІ (S#C8R?-@QiW#QvλM5d9K}pbL- Wy]q'tU9Uro4(#o] qM,c o ݄uOHkBi;AkF) Hߕm':!}oUy&GMS>v$4「tI4,drnF[Dzs}䀒8+٠ @eU*1JZW ?3Դ%W `zt=Ҹ$IC,\Z>QCrHYWin~1L>EAƟǧ)>za+7Dzv)D-Rq~#R NccYv@HDnQ5n:˦X]ί@\D[gmmk|< w{sE:Vt޽ q:Oamg:W=/^x* ;>0Sogkve}^H<|}!^en9#9{k9(jt_nw>Csn_wL,.6Fq 83;Yln67Ox俕7Pk+D󁛻UEys}yݬMxmWu ~H0#J'#ОkA_nm د] ?Js08x>SI/wWݰ^o]3 b'͘XYZ+apj.>ș#¸$SN4z_2W}[cf>s3)4~\L>8>kFCyaAG0-/EZL06vٟB '֌ `b(,:W,Fw6֗%#j3}(}md*&@sIq(X7ʍit]%ƅ\q0 acLQe"5ZJj_-e-I nNoZ:~cڦcLD/eh &#YD: O4(HRe/:j:/8, aa6<\O`MP| TrU}Aiڋhs4qXp[W ru4b@j:Ҹ =g|9ԳP2 K48r.ḣ8ỉ@Kn=]j4r.G'_-4UBQg|s0"$NE~?7ٗd/~y.uD} 0E<"/a~i9ۯ09<<2vw>VgBXWjtp1&h: UT҃"G_D]kBJ Vp.j}ȇ=3FNtL סg= 9T?/5S2tr):  &ikYu PMDf%$HH\"ACxOK>Y* MX֬G4aU&X t%mUS`s QJ'5{ !ʲ-Fhݳ U}2)$#Vk1aV́C:u$20;[`K)wO$Ԥcs͚2v\J٩6K; 9h Rr:tUr^ u=ݞ?g`aI_??!1ab]ɦ+jKb?1A炟L<8zʑ"Yx3]ɳOZ48^}+ޏM6!s,.!5ߢb %o]ĝ16>l% GWi0(##m`oEQY mNIIXrbߡQC16'8: KO>`%))$"0ѪzOo+'?C]`hyڣ^t|]:+_mq>*$.Ju&&'LjtKH ;Co uB:@[Ղ5]hbiOָ|PHJA#P\+B*Ŭc %~O:"`{s &wTm_gϹ=h |LxNaI)r*"~gqq}MrGqD@3~+1'A)p(&l$*x ~wx.N %Y$MR^ c̗?ML3L{C4Ԓ#HHacZ1V$3#@'-oFBcs3]}ؑ_]5qLzgdqƪĒg73T8YU#?y~$؇Naz\cݡ0e)%vh5ŝ˱5 H2FX0Ɏ>Ba/ L!}a%_/%Bsr0/AGE{Я@;Et3Z.uboV\&;SsRGJ-`DY؋D_d5ش2ׅSzn&1p|/įa71WFNxrkBfV3n4e&p~P8îbZ[vG, mxyxT>@l!d[I}1DTRVWZWj,|=rrQĜ*^b"lin+ i^?}~E[.Qf>eSHz[P3~ffrP^1[cEgSmSNp(}ӥk{^[yhkAWPM'b_W%|eTgjr">}oG]roF/Ф*e0,8%Nޛ6N<%G'6%O:O%4'hĂ}Kdw\wHUUUk̅5:gnQM&sd$;qb;,dCҦHg uXwY4eUJ)V5%o@]}; 3aM33&3C:Kd"Ybg.2k#RZ%w lVre;ʛ!;|T{1]WI!fA͏.<5fŌ&:I}k~-цޕss4ŝj]A჆sk[՚, t%8sEVZد9g71, ] W R#~lX 0F4ך%jaj8ikJP R;*C{8ihOi֪zKvҦ"M0IɈD~ Ş,\DC:\`2Z <+ y4H3A/@9Vr^]5!DS S9B UEڦI4x"V%=TZ{>ƜI"1 o4+ `sUM]Cbv}T+{īRsSLp JД]kjY񓜏=˄>pShUn}c5qRGǚvx!bMbxdxX&kv~ O9q ؗ&?}> stream x[~P!(Uam~hM$!E\ISrw:t;Cr+h qr^^Xg K^ܜkngm^u}r#afgq&q{ghKg7gus'zDž/󼻆&wz٭ )e:;HFv :_9FRCܺʭunms~` {~g$3xu&;o+`(@D>-0Im DbVp}|]z%Y^:T@.\+}bsq1.ypui5Ct~ՙ콛 ΌrvsgߐAZA {nH)~#~w/B.Zk,{LWr1Lxh3\6(@ŵƛGk]<*JSTT/ D?k\ua 0 ly 6ol(jmH8ϿB. LODLBlLtn hppQqaʀY -8J`󿞝;W\sA] J&"P#Ec ׅNuB@5>}HŗE0m}KKJ#^Su΅aVn% P`@zؐ:AGu]nDc%ƃαB,4 =y$y,[9 w+T\Ir Gj3b%T!E+t_ LRAIJyjQ 왅A`+^S虲 / |v}N ]ۋ0Lv!@낣v>a~ܯˢ/ބxl{e3qfvSF?G_~2t)gFP`3aY4Ia{]y1InIx!҈9+ ͨe3@u)$N0\)~hHqg0TաE^3D*vjx$:i7@ ˁB%jM5^5 v<3#*<ê\Z:D}R\A> 0bNv#'81i!nPV"BWqEύlĩ}m ^J 3BtAʂ!L.0DzHO` hdC}=pBȟwN#_EɂU9d} uV /skײ168r$rn,桐|9 xק}9 -GAF$*sC4oI/ pIu "d#.>FnGok `y_@h!58`ƙ'!,M}n-s2J2q\+0ƛA7 ϡ_:w*\6T$,^]Y[>n RӾ^_pǧ~ǒni0λ'߾]< |g{dP7Ӥ|&+Hr7LC<qªKH.Kf_p!RFcr 0#BX `G'.pzS ?&RA$FDWSu]qѭrOl u ڲI@N# yYAqoݰ*`ɹ ~HP `uRtzDEB} ›yhHOh%kUj ަ`&fES.?)4Q57M2\)yJRj _/J`xʹW ߆eS 3*q9&WDZAG %%)$c)nB`h4 VΏsjtH,_5b"x29\P[ Aa@] EAq [4k4]ѝu(I#9j{{W:mnf\g$OZ9\Rw~T4/6(8Cx DLr럮ۛ}ĴT}y?CrDvYS#nnjOI.cV /apVIfc&:f|baf\ҧyrqNl)Mm>~’si8Qd+QM:+v0QXjђAEF9^խk)Kf@::(gZZ}*M\J9&⳥.C뢡F_Q]CYj].լfL m\(MP"cA0gY ,.f=Gȃ٘:ޒ /vt[綍 еQelDUZYV;a,P \b*a{clY3NBlOEdq&P(& yoԮDغĽGgupV+ `mciqdȈ08o^iģ6 d6Ԭ6B<C>e^)&:#GjC㤯\`Ӑ a`%'2O?+bi2!dUs2mXQY As}iZ? [e*@P/V0I*ԑL>D٫6a0RҷQU͑Vm|5_qSԲH)3f\) Z> stream x[ێ}_#<1 #DZ aPKj\-V驙RaSU73Q˙?Ϳ/K?ڟ9ZڅΤv3ݭfm슰Iʬr3E$f7x}ǐ3%c-9j%bsVuq:u2rfCNs]k0t.gՋz9::uIb$ڨAue-Lb V 5~LJ~4N88ΙԞ:6< Y7g'`# J8/X ,EY N섓,eҫ#N>  9[Ұf19> bZ`]=Ђ u U1 $Nh-SHD5&11[r&*J $N rY["}G@/2% NVEu}jL)Y:'ۮF IU_Iq>Wd6*) ?SV?~q(jYAzu7[6a؟ϣm_W~O33bUޔg&CYWږ*樦rڒiBDq1MCh@LH:fEՎ'J?Tm%~7{6開V g:xpa/>LE*ȧ# qtF@&ZOE!<\ rC<OڱX;TC7,vc퉠ނCz qq]'JHm H{Gf': ؁{uHuZ`'ZB02%1)d`D%G1[OcI ӹXt*v pt6nbe5a2ŧAL, v]' G%}(GB(p9J$Q>6JK&&8JkE~( ]m[xCQJ.( DbQ(]@].3mtaQz (m9JF<ܩ^셓C!8w=]Q@%*KVp[MR/ Rќxj1(jq`duS>*O6iU=%-²5c.1g2V%RZ`ٓ:Fcte5aўdl%2dli)l(M# @6$P}*  U0%WeJIGXD B']Z14c[1äA/:-m T? {6Bl^sm([ݣ".h=tdూsri^HJ$SD *;e,p sUlNe5^8Xl5*x-ÆےIeg$ IPkVHS"B *]eRx>`yRJ8|d+\ey$_CRDR4 Zuu욆FIq]7DY_>mkjĬFq4e/oB7sR 8L *Ǻ.WA%Y S1EW B/ ]óH}T2_KCItvnp푌s.!=H5ֺmo4VFd(3vEWl!}cLJFJ{NUtcC?â$JdfkQ%n]0Fe:lYD*Tˀ"6֟ 婐vȠknyI-, V6^-Ԕs>6iAvL)d!*'ʁЃZai>{]0Iа.uLo$`VAln]e[}[hLӅ] ']'V=dϓg-Z[NѲWJ]СmgowƦ5GzLܑ6Wc[HEn|v5 у4[mWws?o\0]](Ul(m8зR%!ղ}\I˻YCh=kodBZ(}?\m/n:-~PWH=Qv\YAh>"UȾ;<'ԺFF61ޥ#`z9˙ZII܉sfn>7hP7|ﵜk9^M(E.ǽl#]Lϩ #:?ߔendstream endobj 261 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 673 >> stream xU_HSqman' !J"5, sfni+T5Y%f>L24Eʬ|PH(J.:Ŝ]ro|IE8 \@J<"D#xt14Ȯ*IW% ط?MLguLN pӤ^ȆZ^77Vc <5xk<6? VZXXbCXa/+UHAA6T-hnUzl3WehtHICvUog ׸f͕ʑ2Ls \k2'ć,` IA>@ IrBeIendstream endobj 262 0 obj << /Filter /FlateDecode /Length 5071 >> stream xxNgKpv'ˮaEHQYS՗ꞙC?~Q߆,?Lߜ}<Z9:/ޞћ\j={ΝFNRs zzae>~O?Nљ >>]}ZWT+7 >]b;>]UW5 ~xsmR|/l?N 1 ii#ç)/)G&BPm8PW6ByXpδTf>a')v{1C^juMXiЂ1Ni]%{%}`j8 ٖ,q:2WPz pax;9Z.Ԁtf L 0Tjw;1hQ '@}DUܛg(])HmpW7ΖI0H6w #AzK8~=L2@KVC!6 N8ВGf2?QIeVdP#bb}uEXJh&~N/Ԟw\6y`1#j-}'@1b|^`{3v16jf HG2{p^>"II\Ui %Cd9H襉| (\! >ycoqA( ו4U׎Ɲ(ᙨI^@^Su"N@@8\I{:X4E(I n;@EV/Km[^Uܠö[fI$E.1p`WMȑ:`\bUM6`CؖDit ٤0w p`2wxwP\ 55ߖgŔ*pv?HZ{}WKqU8Y:a>F"[/2Q vG 2k_?,,3Bkrrn 'I`!Ԥ)4 e 2 `)42 G'zV ^n, WMs Þ[~ntkm\S&7,aAjDp5&1^Z3΢Z8qI^nj2adv :"';y=2_i:I wMNLN2t4{7f L!A $ٛ7a8I?`}&]MxXMNaCJVffzdW8,e! Jޒ6ܶ #R%¡ lLSfC;.JN_͠@EoX0fn[?/`9=*K6F>>=֧G#Jg5,Qef+^JD(?ћJ"F"{ ߐ:aG1qXq |(Y=6+ݿh'c.{%#wn)GOL2a 䩰,]x}[Ǥ3ǜ:Țy}K=[?]}:Nk#ߺ7+h'ھ6e/Rܓ$(^\E㶈 f__t`Mgu ֙W2Y' +G[z8]N 8#uq)PڿWyS ?ͪ|˫dR59e?ffNo'NZt,"/ӤeBϯcsL a2n<笫tT [-ٕ2hfg;@91_^w>J?fa6ub,'Ї>i6a-"Z t5";ndHF4SA{ES}UlA`Tঞ,3t40{U$HgLhf#s26]]~^78P07 y=ٔkП0jE_! Fn5(pYYI%ѽOfCGgO)aŀLF]y׃jފ/;/׃ 8 UFi(e‰.}zvuԅWvAOhU>#9(|tY~7kDƦ5pK.ɦ%f2Q]|_wHZF]6f|.It#dZڜNIg~|wmȉqsm;(zT9P{J)N n`2@v!t$5ٲsQ]\HÖc+;6REMReS;+孾+һ!}͂EJEX>|ZPx,<1MyNڳ>vʕW|2M(eWՍXu}pnךU YR<#\, ^^QY [> P(H @QU<s>0Eⲉ#E%ڪ[{J!FRy+%D 42q'3ސgXyn9OԬdxId1!S8iN-5ӈ 6SNAU`5uL\ˏVZ(8ӀuHh#4(gc nJtlY_fZۍPb0y]1EϹbDͻ^Xqr?YkZ)V^#E|C8-+<3It.5wF@q2/йZ>0zp3']-aX&%2Zs;SR +]QBnCb!r1~٤$ S}VwIrm^֛,yDygw$~ VkmeV\R]"cN{ލoik+x|_ e-G_Azvbb#Nh2?}[KԱZE6+*VZV_[JLϱ+)mT_yW&/ttj E^oDXv7̤/:SC#Rmo5qbʾ:LH-{ʢ-GH{`<zؔcJH7:v $N1_2GDa}\~sq3C/?܁`9E=w;S_-x `+Tk0{`y]ѹ)7^P[9+;\p$'0iB=@T |$c&> V9sSq{I{U ʣ < lԹYx%J; 0ش9-YѕnX8ް`^n#ȊX Q* -Fp6r35Ď^\cy)I$:v}lܖ:GYFuc(* Li>S:;(xj:d|h dmt]B8W)>P eHp`ft:?kH".CОxsF)X>܌bT@XoeԿ3߶7N}G11^P̶|$Eu8_Uendstream endobj 263 0 obj << /Filter /FlateDecode /Length 7999 >> stream x]Yq~G?x<>˶, p0"<.  zQ]ՓM. 0Ω#ˬ,7O~/^?YJ6 B\ 5i)ORsq'ߞ;kZj;oo$/1]~b,EgxdUY|!IHʥ]X#q ,&gS[%p$>e]ɋw$/4b*$v)EXQb.qJ"ꒀBI*K $-{.Kbi-J,6ºKj3j* KUWtI^,p J*TwRB}P%qq\ѴTɺU/ h_%m <.%蒼HWSUI])zjZSu X+ RXy@a.}$)݃&ɰ4 ֝.h(ά*[64K*5P{*5YhKZ7ځZjE $֣'&qm$LP%FNG%>-10ɒ$;$m.ZU /{9M[0p3TIE}F DTIOG S9٣Or$}XRiI}-P`MweڠIFy%|XT imn/3zi`DW$`u\o ".Z(I(jvjU ^nGQECzHgQT_+bt/$Y%4I, "YdE ~UȎ%J " ~iӀPT!x: `\ƕfJҺ 3*-_pp XbbX%{_homl䯞"K[R4(ڤ_&r x%zyxsgH1/}ɧ`D ƂL ٛ'_>/ O+w+^˿>Ó=ޛ.I޴8TmIVF &V bvZ5Ԫ@LS&pZhJVmF#77 w‚Tm0+GW$^*MWEgED0U䁎"}[I7l, 2'8pxyp|{}fll >?َܾBE=twz~|~峿/h` (!Yҹ5ׂYΊpfSS-=[~%NzIR#-YEݮ)ǎy}KdXM瑾dч)5QLpkš# YPgA(V=]^OyJ$6WA+7In!/+_ ;[ x/ w FH\;5Lܙu6<:lf{[;G-~F\ې -6[ٔ]mguL9) +rM'+~ :ۂ [d }綄! Mbؘ#33 ObAxu9ɬx$H mZ`(5?mwnls11׶m2-+QɫޯD$L&2@Ar8O(WʼnVS.VNj+/0>?azܞ__BgSCDT=pɳwN7 @oo{[ '\| % .]gO@i.I-=1d&01SeID"~= G\@9!4In'`U /=7MApHLR%k~&AϗBaM8* rツƐHV0+J6Y ^bƇTUbAP%/i*L'DUDBAjT%nI سj %orTI 1Nl ˪F%O@ڄ\4l@et CwYC PU&ki5~K`.JD=x 1%BLEh@W.\V @q'UI34O~$' Y))'8B% A?5@|U>,Іr$s6&`8]R)m VF[U8JTIf(EfiKR%`kDb.I2tId!6T%("dEECdW%";d7 FI"BȔCS%uU4TKj]b #1ʨI6$5IީVl 161! kP}|?.GU#==.G BSh",QO g7_r1c-0-To4"D7rh@ KV+`jԜl$S.;٪Id+^ ]hJVm>Ꮽ-ngY+/+/荒+7]*&m,o bԆ )z9,c[Ty?@} >O;kD1yV^Dfy#0HD.' ɑ51VdK".En D&$CO{DZDF@7|E`<)bJDL2F1nȀx$ iuZٙrXШ h ]'P η\,.sy#¤ m6:Fڴt& 1iɰɖ x• /w[5+tֶ]5|PA`yH%Hew\;y89+8hV-cvw \^1 MuDV5m/`Uͥg#\x?sKޯn#x1x Hզx960 ĄzؤpT/x(I AK(s?O/ok Wmt?qLOIKh㸾ģk B!҄o.&["*X+h\'GtQJIx#vk^\xol]c.bl| x4Onq qCG.Dۅc28ûKH < ,p=tG6&Dk:4]Y0Ta@ڂv|G3_(fIFp WߎY ʫUM<[,& z#9Qh}_.ot8<[;y#wBZ AX< (:QD2aF{-Nm~}$Մ9`OIG)cOvE5 %PjȫE&lm{/ŠP @MDk]=\N” @ `:~jp>y1i!ozwcį 0%€p8X6|πA <+G*%O a/RH9no^)B#cr1]ÝGZ$'A_ MwT3ؤ\?z]OC>qo0SjxƇ b%vLq<" pMXѰ65+}ÙX .<4*9\y\ )n'M^p ߾f9iq4m(^u9~ATm2~-b0CӜ,}8^] 農-:xb̹EJp5׾gNoRo.ѬArV`'ݷ]-sM裭ؕMܔ]Uz)ݏN~ 4F;cVe k~FcЁg3 ;d4,"Gpdtxy;,g:{iˤ'B Y +avVx B ĸ<@SVrzCq `FObv%wf k (FD`e4d V㋫r~OA$F&Oӫ1'q%&1Æ4=X ӝxƂbО DŽ-+&NK {UnBLث7J>*̗% +}Qrjo/ Mr T0]zd&`r͏GrB8F^pbI[ -Kֻvv{#N8peM~o4@Zx TWxudbx/bDJŁ>Nz/Hh%\-1\X) &&>$f` oR 1Ę7bd*]jaN\gZN V^܎K &~E Ks cR)_WLZJ*'!,hU&hqj~{vOP9cN_b%@״~>ָQ;\dscےqdce>?\|g٬~\qwD`p7Po:MXW#Fɮ"E~Cp\,b|oRTg\8NiJ2 F>@AnEIxfh|7)0sN9bbL}]Sv= YEzxK["1).HZ!c  3ډ qQ%XM)S őGzM9ũeN,fm5L+7">SHSUP`#OK R5SdMut=B|>jMsfTMЪ9+Yq2x0ʡT*G5{C[hcʁV|g;# G2rVקt05a:z=av<ߦ+͡G>X˶pCxPV:-6CF̒[Yfg < tcTHp)ϸq67f-?(l"" @;Fg<*³PVdz"ZB~:͔Hs:{@А54}Ć&'9!*5V"Uv/Cl[w؊#!\ _ "QIha8mF3=3P֩;}/QPjA>~1ƈq"c˻-V!v0EFRPRUi1d֘9`uFᷣFHe 'ܞ1U,CQ?TD㱎;1qW03NlQ{V8=ȞOf|s`;/@N@ gjݖ4[ת}qV΂|X"1&'en[AJ⏆2%78S)C d$`6`d1zV4[b";ob&5jܗ(Ƙu}ͿQ|?Nӷ?=O7[;o2JJ7{Bxl^Wq"iDYba]tTΓxC:~:sQTd&{X<^)nF)d7Ay_uQхFgK ;*S'+=z,ٔb-^&bԁYKEcyﰩ<&T? `]܍nl٭ Mm?ouZW{)89~Tck6+ہy?$s5ݳv/v @޲4ztGcQ;_ῐeD9̗ 0^|W-"+O\iODc'ѐk}TgKTv[@ 8~*ҿZ3O7]iGfyxh9G~^+ F6DXbY|$T~AbdQendstream endobj 264 0 obj << /Filter /FlateDecode /Length 6215 >> stream x\mo$q.G %=Mo͗KlΈ/q SpkҬV{kylV{Z{{jbU"G\Q7{v}o[]ܟDjFW ~ r >KQn_iiD~D9VLiRa4vu}ru]PLppK2L\އq2+SZS#Wp.jΕ)k"F%V̨SR+;z(xu$@GcFrA7RY5?H<oG4 =?/Þ'N7LVA3[ ] +)3jɹfJ! kp.+L ULik4\[lBؐa/.!12A郐|F]T2nTLFQ)Pj(|ok\JnixwnGWpyzw_.5o=tf <ÇkvFAwvt VaRj"DzhHIaG0( s l ^סHvB8$ēt(9QB~!H;(~5PX(ߝ|]4j&h[hFm$!EBr9qRjJ 4"V z9 i!2LW F;(cR<.!( d)t٣ g:)X7zSRE+qSʙkыv ͙r>+{i<'Oo²xtp`O89|EA PyxgO_s r/AdV!=.Z#+CBC8W0.*>L<2 kq U(k!)EHK\ EHp@]!"3^6J˸)S8qIduUUbptU*Rt8*\].+b\?])_]u ^dJRe%RvFWZWB=WXz dFjOVޢaro$?p=JI^Hw)9MXҡ˱׻Iie{d"_2S G) Ik@*zg,!:C>G-bСQ9v(bZFУ E =O {2)pH>)Hb v>Ů;̊ |tcC %+fKӲ!E7>$ 5@<] % d,(wHPҍGE;Xr= a`m&|DA( `>Xδg,=!VX l:3s>˻j彂{/C ok+_uci/}Iy:wS0!xg$PRdFOבٮ+#|.Ӭe\NdcfM4ݎ'+%B2%q&iZ|Rd)oRت8eU= BE @^NNl~؃/#V (CP fZOJZB?ۭS*Bn5Ӏ("02 ;7cj GXؘ3WDVyխfJ%uHLnEЎ?V Q*@#.UL7SfE5KPqu"1i9l-63!S&$y`y`eY1{q[DRVVKÕ)Qeεf@5CZo ԥG#ЖPȓ.Y2L2T<01_ȃ :P)S8SqdVtQ8sN%0rGj)ЂjP"%ۀoiOt@c+74HP(F qQqc7w+~a=6COe08\k١ȱYB;HCo4bcc4D+ح4s1ަ!&/5Wr#Fj /4I pI:90A ShžEԜY.. Nb2 K̏v%n El҈0_+Lʍ{t޳* !*?nWuV YƝ-#첸!w"nhE#\lZi;# pߦ/M 5*nw՗ues2lg):u53`7* PVͼ?XNk<4xjd}YlsG1ܹ(қU)uo ^Jv_sd.ۨ6'}̻.&OMMMp ,^Qo1a|.,v.-w&ǣP$OʦMJ#A74;CQr.-XpKC-6x3]Ung0ɛNdT,E?p7p8jHqR*.&5B+9s$&UcS $b o.T-܃؛ؚi T:XHks(8PdK?-S,/Km?ٺQ8-&%h.F)ycf5gnAӋPœ-ƫÒT^xeEi XS-YEw*R%Qi,A‹\Ix_:F=rJjD£9Iǧ rYc=xl1HV8pdJx~?A*xi:8kwyACfT=3 ySs6Ϛj4H5Znhp^/d[!UL!FFsh>^n+4oF15{aVuOB"Dɥ yE=KYgB*K$Z)qC˄;vi%F^; P`EyT"9 K-8_V<ʩ o{U˪Ċs6BOn[=&cY5G/ @h}/i0X#0xB,ALB'5'qIDa`ɢ9 %94óNmB< }I.:p -1`m (!Ahh}[pqt^ߵv B,Q^lT S_=  W'$g5i6M0ERD<^3jCƳbVysctKq Ǧuf7x~"Sv䡾uPPI]܇ݻZr(lKjMWpP;䬒wg5#oB*?TNܠ2LG;ZK sP;2<@Q{ё=^-hA-O6%172aPSx푞v.}֝jͭ,#gYcvet<'䍯 N˙KxTbJ3Ot>;f}d Z$3uLP|l^W|ֆ|6hh+bϔe1j=8GNT3#c,2?OljL|ҧ23 klg8bx!1lzGYyۑtuc'-pNmYq֋ź-ms &QEy6YĜ%:SIJ4мL~e$JF$b3~R:%m@cfG` kK4Ap88gTR>mb>ƠZu‹4G&?}TPCw:$9;H^jٌf@bluǚ;")6uf;NĈ2:wvF!֎vE5Mr [Wje`T^Bƹ)Ӯqϙ *Oō.;b0:;Bȏ Y^xљr&5P ˆmF+>֡vDxwƒPM/Z5A:3޽.w_ԙvv7_ԩ c{{ M$fxx:x"^WMǞ7__;ҹ_~4hȮ%vn{lFf4ލ'훹;2aUS?3C [Ġۺ0LP)]t`t',s[;|PvFH}/nFs3[nFm sK{$ѓVxXau߯+ͥ<0#2[]Ɣ~_iw,?eD]'0)& xR[8l.ULwázw{565Y }?8FjZtUJMՔ;^> stream x\[s%q~KS:#/rlUR_,J9G$E"yVO_0@]i4;__բWx:>۳4z^wxKay\rT3Tkgkyq1֟_>yٽbZݼyzEqe:Hݻ[9\S=\^d4GZRvꋽ9/9M{x! o.ϻ7eNWhظ>(D\%bC\|uwۛ(u."D\ ɤL`2_~m9 & o^LPf{8*\w@%klw,NE 78uPIj1ɻlu„Ŧ)|Ls8aOF;򀘌ݔ5ȏCq1oG~w@I!1p=zHz75휝k\S~Rgy`3˿ j<)JOwUrv|DZ&`to IonB -'vI6KTtvT vhg:lT@ 8Aup |2cIVr{ ^3՞ ̎EK,\NHK W;TOh~$~:Ȭwf]+JSrBS4+O4uб޷zb4AKI:5H.-r%D _ꏤyuL5q1w JhyYk>59fQJ&PVv aBI>\$ 8DOFg4"캘 ^MKSp ۶N*]kBO G5 |%~tNFz~h|z#tp94 90=D{EC rvmE0rNH@_1emm AM8-`ϋ6zҘ=( mCgt0s6,c;S)j@<)bHsg.0hvvCpFRCoڤ 4*8$;8b0B[aX3胟uyBpX 8 0s!8Q\yaOb-9p[Mjr9Bz,^ M\ot+:uEU!@"C ҤHeʡo HeO~:\ GV y;f/X˿ \a4b>1S-,yC`^tp xSY Kff܈T@ŮHG:6t{=Zʭ`u:(/JHw\@G pt}Ooc}&]}˄]}8ƒS'0|SO>}s1le 5<_g[/ 8.ڢ';:L޵Ͼh^m >>OwMO>L>iN䓣OE ֧W{s0_ o'B'볆!2.@"6 tUGm]iP騁I>o_d'r݃+^d5=?(F pFF,&\P!@IGX'(PNa(ѡ11.RQEp$]tdʊ]2#%o[Azjdک9pp$ǚ'jvfrdFռ|^Fv]CA?^RfN DR};V#sUEu9^( ex`sg"cKwL,/MYd$ϟPB "V}.k)EửK9E 9!ۋb+k-p-JIdpyN\~X%Pggnc {wNȑ<țEe>_\MPv/ɳچhz#5=M;s5=,S-!cא3ƃKҬJ%kuvIx".cВ2e'd`ƇOs63X 4.[Za"KcT |?QPWּ p^9̙` "G*eo0P kA,\'?QynqǬI_!Ö́WOp}hQgna4{,*V/bCjA.xnCgzVZb8 | GBAdWC҇7buyPo |,YƢ&5Dg}z0Ncq={E 42>,o]X1eIsP[,^g FIy󪯋SeazTt :Ũ1(oWnT<(p~HF54.[Mt4-ƶ pY_F^A5N(RE8NeHmf/mNcm3ׅ,f̌\\zb?ɩNc1y0qd<8$d+?N >uo Y7qnnefc㓐 Zk0typ>͠]t;xW?ʼnB8_?dd _4I›knS1C{0kJ՘#5:hJ'~%Y+;>թCiet{R uM(zSs‡z)]2$y֡Lzz)YnGvuofI]S CS`z70M#ީxM4;ooIje$E<փ{&z:4 yC@!i ڑᬛ2WJ߼" :%!0b~y3vrC_(wKwy<vҬY9~@mov5X$ӰSl, 6h_thJ#Q6hNЇ4fLDw#-=k7kR"8®&ihUz>ȼtJ005ˡS "GЭ JxeϹ9A d8.Cݷ}h{x1kK9:20<;q ^pO_/g5V[o8E&>wX͒L[ .p~5N#6Jx^.7\o6#ȸQlxf(P}S&`hB9ܹzPky9AF[=Ԃ-+};uLƼ},Ҙ]ŨwF# /\4$Y+X#ew3ҿ]ʐxj8/L:W{q›1-LKIM.Ϯiu!U8GlOJ :eg~(U~DvLCdx+0nDƝ]tpf,pTΝЃNս< ƿPjUwa?4 ՠX%JQ pV'<]?TW~4͚",q&m$4B75.zȷ.YRDؒe>QEx]"g4fC;ڏZ.U?6g:u6t]i.g.iX2|WCaCi+;CLp,"kDWxGR܏vW),Ï{ uta06.Rm\7֍Iqx¡8ز뇹*Kࡄ*""Ѓ^'1Q)NJN."Ծ$yj!CC(br"kuYk}shA)@OUC:*#eZzR(&P}XZH(eT}}1ж])$J<eEaí;a޺sk3uH4>$4PaWYl@ 5Tru&&ŭ&Gunӽb> 7n'⌡pCůC0OR>3DZ%>b[NCǑzx`;_QF-ܣ`456^Y~AY7 Gmv(ȢCY]&¼C@ oga(W KCw)G%n54f ?f`%ʻg+Dͬ) `r=ÉYНs]uqs_gçV3^P[+uv%%ĕWrTnUrZmǭbrOn?>/FGL#}sFBK L׉_Idf~1b1Q:3IxwZdS?mC&)įUݹrlg*vކV赹e/g&$ F:W^"T]'{˭jY|U˹07Ŵ3Flļ~.!]o#@ M9Sk/b}sQ9[ vcz82o,LޖtեO&zDANR3F0|x׎0$|q.r,cTʣReԐsā\6$2REzn䪰 qA0-u(r3n555_>D;Q5(O e:5V%q'0ghL.dcamMUU?]ӐӦF<_zAendstream endobj 266 0 obj << /Filter /FlateDecode /Length 5090 >> stream xp@T$,twfAI~ 2[NQi)R48|y  \xp+C,!{4XIjE}Yq-&m¦O^Ž+ d`bQ7>h"M/طGz;ڭ٠n_.W`27 Rvoq_痳L$'!FA "ݴ ugdNX呙WgB$D",qw"!.%+"h>CV-#dRdI0`X+&r;Ҕ !u X"k@ /%HfC5 HX8B\Rx͆bč2aRTRKGiJ#&#c ,jbZːJzi"}Us>WuYgU $$>* 0?9V;!FrPUTeZd6XV3t h(VP,$6N2J,+0ĭRMmT)[!CyZHa#َA_('Cɓ Ao0A6.oo1+y@ƸV#Cj*[StPg$-u EzfTʺ^;*U`s*5S11 &-̈́Uif QZheQ3 (w>tVa#-Bӈb3 ԇd]~j&) )M``:qbÔtJ/ c$c0H)c PsO+,͆%,B3aeHJ&n)"GlB'Q ޖ}tEݫ !ir&QTBA(ɴDREMLYԬrJH# 䡢"%A2̪T& HMDezTY{( W@kxԵ *G3$Rih ' zwo.wf{Y,߁Qb\!5y歛dzL+ ؆C%J,s7;y:VUƏ7QZ/ǫ՚a ϸ'n8߀H+88_~-YTaq Xn@"?yyztSzh'lXdr{27 :q3B(,I#ȼQ7 c҃@JqAᅢSoYwOHz省lR*E]XЃ$(vIC0zIdp(%&:syB 2x#ygWЛqo츉0Y\hB ѽ){D bчWO~9H{ȚǍNX7}ΎV/q}3^E qTuPQ6DUJ K@fjjȺHص2ByO OJ5eB ,[%`fMpJ1&K%n#71ӛn**RZCm{ԃ^]?=[p*}cϫC(clqE\%}DV Uj;֯$ c ` QƧy ~JiĭOBT˛<ۖX7o1/`à۸{ZIbnAV@&q́Mv1.MگWk(>1 n[v}v/+_oOxz2,}Dod 絶^+v$1 Tp-oKj"9݁DL'ꖽ mM 4u15m6+*(AК#E1ǡ0*:D31S 0)+;D-9 pٌGi43Ecpp~ԧujVgM!4JF#W7\/1=yzjgkfzu G9cąbCxH tAu FEGW'-1x9 Sv_'|KC &ur^XZM| 7f Tw@KG5\FjO;> Ve<Q^tIrEִulMn/˅.mY3"kx&A쁜bW@40M %AsɅ[6=JTEe`sQ%}r`:-nvf$^C>p^OF*?op EO$0`޾N-䬙Ljut".ў5WJ 'y]]n%g:tS"y@om U#L_gGJqİoR3尰GBz{0 d)WbŊV[>hݤܣwI[I>LZ =5;9(Z$^DJY5;^g@LcA?[mqFA=Лic@i7J|pja7dS#"́K1&?iYuz䀃m d;_Ė,Fțf<9H`8޸1+Qe&CY> &sɖwTXM6!Hi}a@y;D눱(5Ac1JęwioVj'nf)U =-|Y&*HHm66>yߊ^m̀_lCߖ|hOUVpMO96Iam٬6(15ӹ (8G.3?=54b9fbMNSH%z\o\+J2+o+ù2P fS$S$i/6|d/1ԑyVąOM]:ԓ">+T#dG YSfZo!;񚸖3O_|c921.$^_h?t|7·W*.]xm'I"U=AZ+meCUCUx$NwnkƕIs֛ps^{ޑ iq<}]"p x3jxƪ{zӁ֔"UhsdfdqB'!<%#Lendstream endobj 267 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 331 >> stream xcd`ab`ddp 44H3a!3kc7s7{' ~O+XP_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@ݧs JKR|SRYBt^}ω33G[7]z}r[~kb}vEly~_d}{O!lYwVWG g/d4mn9.<'yx\Qxendstream endobj 268 0 obj << /Type /XRef /Length 228 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 269 /ID [<932ee0af8f5ae85ad3dff04d64b643d1><21e8bcb4c4289f775d115a8a98d82681>] >> stream x1 as!#f(of4)ef5(f m>SO8R o!P}+ߓws?:y[{+.~= XFPal; W=w?W+B#P/0fG/2C#7v9ՇYYCiӘʲywX>= options(width = 60) require("coin") set.seed(290875) @ \section{Introduction} The \pkg{coin} package provides a unified approach to conditional inference procedures commonly known as \textit{permutation tests}. The theoretical basis for the design and implementation is the general framework for permutation tests given by \cite{strasserweber1999}. For a very flexible formulation of multivariate linear statistics, \cite{strasserweber1999} derived the conditional expectation and covariance of the conditional (permutation) distribution as well as the multivariate limiting distribution. Test procedures for nominal, ordinal and continuous data with or without censoring are all part of this framework. For a more detailed overview see \cite{Hothorn:2006:AmStat}. The conceptual Strasser-Weber framework of permutation tests for arbitrary independence and symmetry problems are available via the generic functions \texttt{independence\_test} and \texttt{symmetry\_test} respectively. In addition to these very flexible procedures, a large set of convenience functions including well-known as well as lesser-known classical and non-classical procedures for tests of independence between two continuous variables, two- and $K$-sample tests for location and scale alternatives, tests of independence for contingency tables as well as tests of marginal homogeneity and symmetry have been implemented within the framework. Currently, the following conditional test procedures are available: \begin{center} \begin{tabular}{ll} % CorrelationTests \texttt{spearman\_test} & Spearman correlation test \\ \texttt{fisyat\_test} & Fisher-Yates correlation test \\ \texttt{quadrant\_test} & Quadrant test \\ \texttt{koziol\_test} & Koziol-Nemec test \\ % LocationTests \texttt{oneway\_test} & Two- and $K$-sample Fisher-Pitman permutation test \\ \texttt{wilcox\_test} & Wilcoxon-Mann-Whitney test \\ \texttt{kruskal\_test} & Kruskal-Wallis test \\ \texttt{normal\_test} & Two- and $K$-sample van der Waerden test \\ \texttt{median\_test} & Two- and $K$-sample Brown-Mood median test \\ \texttt{savage\_test} & Two- and $K$-sample Savage test \\ % ScaleTests \texttt{taha\_test} & Two- and $K$-sample Taha test \\ \texttt{klotz\_test} & Two- and $K$-sample Klotz test \\ \texttt{mood\_test} & Two- and $K$-sample Mood test \\ \texttt{ansari\_test} & Two- and $K$-sample Ansari-Bradley test \\ \texttt{fligner\_test} & Two- and $K$-sample Fligner-Killeen test \\ \texttt{conover\_test} & Two- and $K$-sample Conover-Iman test \\ % SurvivalTests \texttt{logrank\_test} & Two- and $K$-sample weighted logrank tests \\ & (Logrank test, Gehan-Breslow test, Tarone-Ware test, \dots) \\ % SymmetryTests \texttt{sign\_test} & Sign test \\ \texttt{wilcoxsign\_test} & Wilcoxon signed-rank test \\ \texttt{friedman\_test} & Friedman test and Page test \\ \texttt{quade\_test} & Quade test \\ % ContingencyTests \texttt{chisq\_test} & Pearson $\chi^2$ test \\ \texttt{cmh\_test} & Generalized Cochran-Mantel-Haenszel test \\ \texttt{lbl\_test} & Linear-by-linear association test \\ % MarginalHomogeneityTests \texttt{mh\_test} & Marginal homogeneity tests \\ & (McNemar test, Cochran $Q$ test, Stuart-Maxwell test, \dots) \\ % MaximallySelectedStatisticsTests \texttt{maxstat\_test} & Generalized maximally selected statistics \\ \end{tabular} \end{center} These convenience functions essentially perform a certain transformation of the data, e.g., a rank transformation, and then call \texttt{independence\_test} or \texttt{symmetry\_test} for the computation of the (multivariate) linear statistic and its conditional expectation and covariance as well as the scalar test statistic and its null distribution. The exact null distribution can be approximated by the asymptotic distribution or via conditional Monte Carlo resampling for all test procedures, whereas the exact null distribution is available for special cases only. Moreover, all test procedures allow for the specification of blocks pertaining to, e.g., stratification or repeated measurements. \section{Permutation Tests} In the following we assume that we are provided with $n$ observations \begin{eqnarray*} (\Y_i, \X_i, w_i, b_i), \quad i = 1, \dots, n. \end{eqnarray*} The variables $\Y$ and $\X$ from sample spaces $\mathcal{Y}$ and $\mathcal{X}$ may be measured at arbitrary scales and may be multivariate as well. In addition to those measurements, case weights $w$ and a factor $b$ coding blocks may be available. For the sake of simplicity, we assume $w_i = 1$ and $b_i = 0$ for all observations $i = 1, \dots, n$ for the moment. We are interested in testing the null hypothesis of independence of $\Y$ and $\X$ \begin{eqnarray*} H_0: D(\Y | \X) = D(\Y) \end{eqnarray*} against arbitrary alternatives. \cite{strasserweber1999} suggest to derive scalar test statistics for testing $H_0$ from multivariate linear statistics of the form \begin{eqnarray} \label{linstat} \T = \vec\left(\sum_{i = 1}^n w_i g(\X_i) h(\Y_i, (\Y_1, \dots, \Y_n))^\top\right) \in \R^{pq}. \end{eqnarray} Here, $g: \mathcal{X} \rightarrow \R^{p}$ is a transformation of $\X$ known as the \emph{regression function} and $h: \mathcal{Y} \times \mathcal{Y}^n \rightarrow \R^q$ is a transformation of $\Y$ known as the \emph{influence function}, where the latter may depend on $(\Y_1, \dots, \Y_n)$ in a permutation symmetric way. We will give specific examples on how to choose $g$ and $h$ later on. The distribution of $\T$ depends on the joint distribution of $\Y$ and $\X$, which is unknown under almost all practical circumstances. At least under the null hypothesis one can dispose of this dependency by fixing $\X_1, \dots, \X_n$ and conditioning on all possible permutations $S$ of the responses $\Y_1, \dots, \Y_n$. This principle leads to test procedures known as \textit{permutation tests}. The conditional expectation $\mu \in \R^{pq}$ and covariance $\Sigma \in \R^{pq \times pq}$ of $\T$ under $H_0$ given all permutations $\sigma \in S$ of the responses are derived by \cite{strasserweber1999}: \begin{eqnarray} \mu & = & \E(\T | S) = \vec \left( \left( \sum_{i = 1}^n w_i g(\X_i) \right) \E(h | S)^\top \right), \nonumber \\ \Sigma & = & \V(\T | S) \nonumber \\ & = & \frac{\ws}{\ws - 1} \V(h | S) \otimes \left(\sum_i w_i g(\X_i) \otimes w_i g(\X_i)^\top \right) \label{expectcovar} \\ & - & \frac{1}{\ws - 1} \V(h | S) \otimes \left( \sum_i w_i g(\X_i) \right) \otimes \left( \sum_i w_i g(\X_i)\right)^\top \nonumber \end{eqnarray} where $\ws = \sum_{i = 1}^n w_i$ denotes the sum of the case weights, and $\otimes$ is the Kronecker product. The conditional expectation of the influence function is \begin{eqnarray*} \E(h | S) = \ws^{-1} \sum_i w_i h(\Y_i, (\Y_1, \dots, \Y_n)) \in \R^q \end{eqnarray*} with corresponding $q \times q$ covariance matrix \begin{eqnarray*} \V(h | S) = \ws^{-1} \sum_i w_i \left(h(\Y_i, (\Y_1, \dots, \Y_n)) - \E(h | S) \right) \\ \left(h(\Y_i, (\Y_1, \dots, \Y_n)) - \E(h | S)\right)^\top. \end{eqnarray*} Having the conditional expectation and covariance at hand we are able to standardize a linear statistic $\T \in \R^{pq}$ of the form (\ref{linstat}). Univariate test statistics~$c$ mapping an observed linear statistic $\mathbf{t} \in \R^{pq}$ into the real line can be of arbitrary form. An obvious choice is the maximum of the absolute values of the standardized linear statistic \begin{eqnarray*} c_\text{max}(\mathbf{t}, \mu, \Sigma) = \max \left| \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right| \end{eqnarray*} utilizing the conditional expectation $\mu$ and covariance matrix $\Sigma$. The application of a quadratic form $c_\text{quad}(\mathbf{t}, \mu, \Sigma) = (\mathbf{t} - \mu) \Sigma^+ (\mathbf{t} - \mu)^\top$ is one alternative, although computationally more expensive because the Moore-Penrose inverse $\Sigma^+$ of $\Sigma$ is involved. The definition of one- and two-sided $p$-values used for the computations in the \pkg{coin} package is \begin{eqnarray*} P(c(\T, \mu, \Sigma) &\le& c(\mathbf{t}, \mu, \Sigma)) \quad \text{(less)} \\ P(c(\T, \mu, \Sigma) &\ge& c(\mathbf{t}, \mu, \Sigma)) \quad \text{(greater)}\\ P(|c(\T, \mu, \Sigma)| &\le& |c(\mathbf{t}, \mu, \Sigma)|) \quad \text{(two-sided).} \end{eqnarray*} Note that for quadratic forms only two-sided $p$-values are available and that in the one-sided case maximum type test statistics are replaced by \begin{eqnarray*} \min \left( \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right) \quad \text{(less) and } \max \left( \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right) \quad \text{(greater).} \end{eqnarray*} The conditional distribution and thus the $p$-value of the statistics $c(\mathbf{t}, \mu, \Sigma)$ can be computed in several different ways. For some special forms of the linear statistic, the exact distribution of the test statistic is tractable. For two-sample problems, the shift-algorithm by \cite{axact-dist:1986} and \cite{exakte-ver:1987} and the split-up algorithm by \cite{vdWiel2001} are implemented as part of the package. Conditional Monte Carlo procedures can be used to approximate the exact distribution. \cite{strasserweber1999} proved (Theorem 2.3) that the conditional distribution of linear statistics $\T$ with conditional expectation $\mu$ and covariance $\Sigma$ tends to a multivariate normal distribution with parameters $\mu$ and $\Sigma$ as $n, \ws \rightarrow \infty$. Thus, the asymptotic conditional distribution of test statistics of the form $c_\text{max}$ is normal and can be computed directly in the univariate case ($pq = 1$) or approximated by means of quasi-randomized Monte Carlo procedures in the multivariate setting \citep{numerical-:1992}. For quadratic forms $c_\text{quad}$ which follow a $\chi^2$ distribution with degrees of freedom given by the rank of $\Sigma$ \citep[see][Chapter 29]{johnsonkotz1970}, exact probabilities can be computed efficiently. \section{Illustrations and Applications} The main workhorse \texttt{independence\_test} essentially allows for the specification of $\Y, \X$ and $b$ through a formula interface of the form \verb/y ~ x | b/, case weights can be defined by a formula with one variable on the right hand side only. Four additional arguments are available for the specification of the regression function $g$ (\texttt{xtrans}), the influence function $h$ (\texttt{ytrans}), the form of the test statistic $c$ (\texttt{teststat}) and the null distribution (\texttt{distribution}). \paragraph{Independent $K$-Sample Problems.} When we want to compare the distribution of an univariate qualitative response $\Y$ in $K$ groups given by a factor $\X$ at $K$ levels, the transformation $g$ is the dummy matrix coding the groups and $h$ is either the identity transformation or a some form of rank transformation. For example, the Kruskal-Wallis test may be computed as follows \citep[example taken from][Table 6.3, page 200]{HollanderWolfe1999}: <>= library("coin") YOY <- data.frame( length = c(46, 28, 46, 37, 32, 41, 42, 45, 38, 44, 42, 60, 32, 42, 45, 58, 27, 51, 42, 52, 38, 33, 26, 25, 28, 28, 26, 27, 27, 27, 31, 30, 27, 29, 30, 25, 25, 24, 27, 30), site = gl(4, 10, labels = as.roman(1:4)) ) it <- independence_test(length ~ site, data = YOY, ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo), teststat = "quadratic") it @ The linear statistic $\T$ is the sum of the ranks in each group and can be extracted via <>= statistic(it, type = "linear") @ Note that \texttt{statistic(..., type = "linear")} currently returns the linear statistic in matrix form, i.e. \begin{eqnarray*} \sum_{i = 1}^n w_i g(\X_i) h(\Y_i, (\Y_1, \dots, \Y_n))^\top \in \R^{p \times q}. \end{eqnarray*} The conditional expectation and covariance are available from <>= expectation(it) covariance(it) @ and the standardized linear statistic $(\T - \mu)\text{diag}(\Sigma)^{-1/2}$ is <>= statistic(it, type = "standardized") @ Since a quadratic form of the test statistic was requested via \texttt{teststat = "quadratic"}, the test statistic is <>= statistic(it) @ By default, the asymptotic distribution of the test statistic is computed, the $p$-value is <>= pvalue(it) @ Life is much simpler with convenience functions very similar to those available in package \pkg{stats} for a long time. Here, the exact null distribution of the Kruskal-Wallis test is approximated by Monte Carlo resampling using $10000$ replicates via <>= kt <- kruskal_test(length ~ site, data = YOY, distribution = approximate(B = 10000)) kt @ with $p$-value (and $99~\%$ confidence interval) of <>= pvalue(kt) @ Of course it is possible to choose a $c_\text{max}$ type test statistic instead of a quadratic form. \paragraph{Independence in Contingency Tables.} Independence in general two- or three-dimensional contingency tables can be tested by the Cochran-Mantel-Haenszel test. Here, both $g$ and $h$ are dummy matrices \citep[example data from][Table 7.8, page 288]{agresti2002}: <>= data("jobsatisfaction", package = "coin") ct <- cmh_test(jobsatisfaction) ct @ The standardized contingency table allowing for an inspection of the deviation from the null hypothesis of independence of income and jobsatisfaction (stratified by gender) is <>= statistic(ct, type = "standardized") @ \paragraph{Ordered Alternatives.} Of course, both job satisfaction and income are ordered variables. When $\Y$ is measured at $J$ levels and $\X$ at $K$ levels, $\Y$ and $\X$ are associated with score vectors $\eta \in \R^J$ and $\gamma \in \R^K$, respectively. The linear statistic is now a linear combination of the linear statistic $\T$ of the form \begin{eqnarray*} \M \T & = & \vec \left( \sum_{i=1}^n w_i \gamma^\top g(\X_i) \left(\eta^\top h(\Y_i, (\Y_1, \dots, \Y_n)\right)^\top \right) \in \R \text{ with } \M = \eta \otimes \gamma. \end{eqnarray*} By default, scores are $\eta = 1, \dots, J$ and $\gamma = 1, \dots, K$. <>= lbl_test(jobsatisfaction) @ The scores $\eta$ and $\gamma$ can be specified to the linear-by-linear association test via a list whose names correspond to the variable names <>= lbl_test(jobsatisfaction, scores = list(Job.Satisfaction = c(1, 3, 4, 5), Income = c(3, 10, 20, 35))) @ Alternatively, scores can be specified through \texttt{of\_trafo} <>= lbl_test(jobsatisfaction, ytrafo = function(data) trafo(data, ordered_trafo = function(y) of_trafo(y, scores = c(1, 3, 4, 5))), xtrafo = function(data) trafo(data, ordered_trafo = function(x) of_trafo(x, scores = c(3, 10, 20, 35)))) @ \paragraph{Incomplete Randomised Blocks.} \cite{RaynerBest2001}, Chapter 7, discuss the application of Durbin's test to data from sensory experiments, where incomplete block designs are common. As an example, data from taste-testing on ten dried eggs where mean scores for off-flavour from seven judges are given and one wants to assess whether there is any difference in the scores between the ten egg samples. The sittings are a block variable which can be added to the formula via `\texttt{|}'. <>= egg_data <- data.frame( scores = c(9.7, 8.7, 5.4, 5.0, 9.6, 8.8, 5.6, 3.6, 9.0, 7.3, 3.8, 4.3, 9.3, 8.7, 6.8, 3.8, 10.0, 7.5, 4.2, 2.8, 9.6, 5.1, 4.6, 3.6, 9.8, 7.4, 4.4, 3.8, 9.4, 6.3, 5.1, 2.0, 9.4, 9.3, 8.2, 3.3, 8.7, 9.0, 6.0, 3.3, 9.7, 6.7, 6.6, 2.8, 9.3, 8.1, 3.7, 2.6, 9.8, 7.3, 5.4, 4.0, 9.0, 8.3, 4.8, 3.8, 9.3, 8.3, 6.3, 3.8), sitting = factor(rep(c(1:15), rep(4, 15))), product = factor(c(1, 2, 4, 5, 2, 3, 6, 10, 2, 4, 6, 7, 1, 3, 5, 7, 1, 4, 8, 10, 2, 7, 8, 9, 2, 5, 8, 10, 5, 7, 9, 10, 1, 2, 3, 9, 4, 5, 6, 9, 1, 6, 7, 10, 3, 4, 9, 10, 1, 6, 8, 9, 3, 4, 7, 8, 3, 5, 6, 8)) ) independence_test(scores ~ product | sitting, data = egg_data, teststat = "quadratic", ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting)) @ and the Monte Carlo $p$-value can be computed via <>= pvalue(independence_test(scores ~ product | sitting, data = egg_data, teststat = "quadratic", ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting), distribution = approximate(B = 19999))) @ If we assume that the products are ordered, the Page test is appropriate and can be computed as follows <>= independence_test(scores ~ product | sitting, data = egg_data, ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting), scores = list(product = 1:10)) @ \paragraph{Multiple Tests.} One may be interested in testing multiple hypotheses simultaneously, either by using a linear combination of the linear statistic $\K\T$, or by specifying multivariate variables $\Y$ and/or $\X$. For example, all pair comparisons may be implemented via <>= it <- independence_test(length ~ site, data = YOY, xtrafo = mcp_trafo(site = "Tukey"), teststat = "maximum", distribution = "approximate") pvalue(it) pvalue(it, method = "single-step") @ When either $g$ or $h$ are multivariate, single-step adjusted $p$-values based on maximum-type statistics are computed as described in \cite{WestfallYoung1993}, algorithm 2.5 (page 47) and equation (2.8), page 50. Note that for the example shown above only the \textit{minimum} $p$-value is adjusted appropriately because the subset pivotality condition is violated, i.e., the distribution of the test statistics under the complete null-hypothesis of no treatment effect of \texttt{site} is the basis of all adjustments instead of the corresponding partial null-hypothesis. \section{Quality Assurance} The test procedures implemented in package \pkg{coin} are continuously checked against results obtained by the corresponding implementations in package \pkg{stats} (where available). In addition, the test statistics and exact, approximative and asymptotic $p$-values for data examples given in the \pkg{StatXact}~-6 user manual \citep{StatXact6} are compared with the results reported in the \pkg{StatXact}~6 manual. Step-down multiple adjusted $p$-values have been checked against results reported by \texttt{mt.maxT} from package \pkg{multtest} \citep{PKG:multtest}. For details on the test procedures we refer to the \proglang{R} transcript files in directory \texttt{coin/tests}. \section{Acknowledgements} We would like to thank Helmut Strasser for discussions on the theoretical framework. Henric Winell provided clarification and examples for the Stuart-Maxwell test. \bibliographystyle{jss} \bibliography{coin} \end{document} coin/inst/doc/LegoCondInf.R0000644000176200001440000002524113133077332015204 0ustar liggesusers### R code from vignette source 'LegoCondInf.Rnw' ################################################### ### code chunk number 1: setup ################################################### options(width = 65, prompt = "R> ", continue = " ") require("coin") set.seed(290875) ### get rid of the NAMESPACE #load(file.path(.find.package("coin"), "R", "all.rda")) anonymous <- FALSE ################################################### ### code chunk number 2: authors ################################################### if(!anonymous) { cat("\\author{Torsten Hothorn$^1$, Kurt Hornik$^2$, \\\\ Mark A. van de Wiel$^3$ and Achim Zeileis$^2$}\n") } else { cat("\\author{TAS MS05-239, Revision}\n") } ################################################### ### code chunk number 3: affil ################################################### if(!anonymous) cat("\\noindent$^1$ Institut f\\\"ur Medizininformatik, Biometrie und Epidemiologie\\\\ Friedrich-Alexander-Universit\\\"at Erlangen-N\\\"urnberg\\\\ Waldstra{\\ss}e 6, D-91054 Erlangen, Germany \\\\ \\texttt{Torsten.Hothorn@R-project.org} \\newline \\noindent$^2$ Department f\\\"ur Statistik und Mathematik, Wirtschaftsuniversit\\\"at Wien \\\\ Augasse 2-6, A-1090 Wien, Austria \\\\ \\texttt{Kurt.Hornik@R-project.org} \\\\ \\texttt{Achim.Zeileis@R-project.org} \\newline \\noindent$^3$ Department of Mathematics, Vrije Universiteit \\\\ De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands \\\\ \\texttt{mark.vdwiel@vumc.nl} \\newline\n") ################################################### ### code chunk number 4: coincite ################################################### if (anonymous) { cat(" \\citep{PKG:coina} ") } else { cat(" \\citep{PKG:coin} ") } ################################################### ### code chunk number 5: alpha-data-figure ################################################### n <- table(alpha$alength) par(cex.lab = 1.3, cex.axis = 1.3) boxplot(elevel ~ alength, data = alpha, ylab = "Expression Level", xlab = "NACP-REP1 Allele Length", varwidth = TRUE) axis(3, at = 1:3, labels = paste("n = ", n)) rankif <- function(data) trafo(data, numeric_trafo = rank_trafo) ################################################### ### code chunk number 6: alpha-kruskal ################################################### kruskal.test(elevel ~ alength, data = alpha) ################################################### ### code chunk number 7: alpha-kruskal ################################################### independence_test(elevel ~ alength, data = alpha, ytrafo = rank_trafo, teststat = "quadratic") ################################################### ### code chunk number 8: mpoints ################################################### mpoints <- function(x) c(2, 7, 11)[unlist(x)] ################################################### ### code chunk number 9: alpha-kruskal-ordered ################################################### independence_test(elevel ~ alength, data = alpha, ytrafo = rank_trafo, xtrafo = mpoints) ################################################### ### code chunk number 10: alzheimer-demographics ################################################### total <- nrow(alzheimer) stopifnot(total == 538) male <- sum(alzheimer$gender == "Male") stopifnot(male == 200) female <- sum(alzheimer$gender == "Female") stopifnot(female == 338) disease <- table(alzheimer$disease) smoked <- sum(alzheimer$smoking != "None") atab <- xtabs(~ smoking + + disease + gender, data = alzheimer) ### there is a discrepancy between Table 1 (32% smokers of 117 women ### suffering from other diagnoses) and Table 4 (63% non-smokers). ### We used the data as given in Table 4. ################################################### ### code chunk number 11: alzheimer-tab ################################################### x <- t(atab[,,"Female"]) lines <- paste(paste(dimnames(x)$disease, " & "), paste(apply(x, 1, function(l) paste(l, collapse = " & ")), "\\\\")) for (i in 1:length(lines)) cat(lines[i], "\n") ################################################### ### code chunk number 12: alzheimer-tab ################################################### x <- t(atab[,,"Male"]) lines <- paste(paste(dimnames(x)$disease, " & "), paste(apply(x, 1, function(l) paste(l, collapse = " & ")), "\\\\")) for (i in 1:length(lines)) cat(lines[i], "\n") ################################################### ### code chunk number 13: alzheimer-plot ################################################### layout(matrix(1:2, ncol = 2)) spineplot(disease ~ smoking, data = alzheimer, subset = gender == "Male", main = "Male", xlab = "Smoking", ylab = "Disease", tol = 1) spineplot(disease ~ smoking, data = alzheimer, subset = gender == "Female", main = "Female", xlab = "Smoking", ylab = "Disease", tol = 1) ################################################### ### code chunk number 14: alzheimer-mantelhaen ################################################### it_alz <- independence_test(disease ~ smoking | gender, data = alzheimer, teststat = "quadratic") it_alz ################################################### ### code chunk number 15: alzheimer-statistic ################################################### statistic(it_alz, type = "linear") ################################################### ### code chunk number 16: alzheimer-men ################################################### females <- alzheimer$gender == "Female" males <- alzheimer$gender == "Male" pvalue(independence_test(disease ~ smoking, data = alzheimer, subset = females, teststat = "quadratic")) pvalue(independence_test(disease ~ smoking, data = alzheimer, subset = males, teststat = "quadratic")) ################################################### ### code chunk number 17: alzheimer-max ################################################### it_alzmax <- independence_test(disease ~ smoking, data = alzheimer, subset = males, teststat = "maximum") it_alzmax ################################################### ### code chunk number 18: alzheimer-maxstat ################################################### statistic(it_alzmax, type = "standardized") ################################################### ### code chunk number 19: alzheimer-qperm ################################################### qperm(it_alzmax, 0.95) ################################################### ### code chunk number 20: alzheimer-MTP ################################################### pvalue(it_alzmax, method = "single-step") ################################################### ### code chunk number 21: photocar-plot ################################################### par(cex.lab = 1.3, cex.axis = 1.3) layout(matrix(1:3, ncol = 3)) plot(survfit(Surv(time, event) ~ group, data = photocar), xmax = 50, xlab = "Survival Time (in weeks)", ylab = "Probability", lty = 1:3) legend("bottomleft", lty = 1:3, levels(photocar$group), bty = "n") plot(survfit(Surv(dmin, tumor) ~ group, data = photocar), xmax = 50, xlab = "Time to First Tumor (in weeks)", ylab = "Probability", lty = 1:3) legend("bottomleft", lty = 1:3, levels(photocar$group), bty = "n") boxplot(ntumor ~ group, data = photocar, ylab = "Number of Tumors", xlab = "Treatment Group", varwidth = TRUE) ################################################### ### code chunk number 22: photocar-global ################################################### it_ph <- independence_test(Surv(time, event) + Surv(dmin, tumor) + ntumor ~ group, data = photocar) it_ph ################################################### ### code chunk number 23: photocar-linear ################################################### statistic(it_ph, type = "linear") ################################################### ### code chunk number 24: photocar-stand ################################################### statistic(it_ph, type = "standardized") ################################################### ### code chunk number 25: photocar-stand (eval = FALSE) ################################################### ## pvalue(it_ph, method = "single-step") ################################################### ### code chunk number 26: photocar-stand ################################################### round(pvalue(it_ph, method = "single-step"), 5) ################################################### ### code chunk number 27: mercuryfish-plot ################################################### par(cex.lab = 1.3, cex.axis = 1.3) layout(matrix(1:3, ncol = 3)) boxplot(I(log(mercury)) ~ group, data = mercuryfish, ylab = "Mercury Blood Level (in logs)", varwidth = TRUE) boxplot(abnormal ~ group, data = mercuryfish, ylab = "Abnormal Cells (in %)", varwidth = TRUE) boxplot(ccells ~ group, data = mercuryfish, ylab = "Chromosome Aberrations (in %)", varwidth = TRUE) ################################################### ### code chunk number 28: mercurysfish-score ################################################### coherence <- function(data) { x <- t(as.matrix(data)) apply(x, 2, function(y) sum(colSums(x < y) == nrow(x)) - sum(colSums(x > y) == nrow(x))) } ################################################### ### code chunk number 29: mercuryfish-poset ################################################### poset <- independence_test(mercury + abnormal + ccells ~ group, data = mercuryfish, ytrafo = coherence, distribution = exact()) ################################################### ### code chunk number 30: mercuryfish-pvalue ################################################### pvalue(poset) ################################################### ### code chunk number 31: mercuryfish-ppermplot ################################################### par(cex.lab = 1.3, cex.axis = 1.1) ite <- poset ita <- independence_test(mercury + abnormal + ccells ~ group, data = mercuryfish, ytrafo = coherence) site <- support(ite) layout(matrix(1:2, ncol = 2)) site <- site[site <= qperm(ite, 0.1) & site > -3] pite <- sapply(site, function(x) pperm(ite, x)) pita <- sapply(site, function(x) pperm(ita, x)) plot(site, pite, type = "S", ylab = "Probability", xlab = "Standardized Statistic") lines(site, pita, lty = 3) legend("topleft", lty = c(1,3), legend = c("Conditional Distribution", "Approximation"), bty = "n") site <- support(ite) site <- site[site >= qperm(ite, 0.9) & site < 3] pite <- sapply(site, function(x) pperm(ite, x)) pita <- sapply(site, function(x) pperm(ita, x)) plot(site, pite, type = "S", ylab = "Probability", xlab = "Standardized Statistic") lines(site, pita, lty = 3) coin/inst/doc/coin_implementation.Rnw0000644000176200001440000014677613044342223017473 0ustar liggesusers\documentclass[nojss]{jss} %% packages \usepackage{amsfonts,amstext,amsmath} %% need no \usepackage{Sweave.sty} \SweaveOpts{eps = FALSE, keep.source = TRUE, echo = FALSE} %\VignetteIndexEntry{Implementing a Class of Permutation Tests: The coin Package} %\VignetteDepends{coin, e1071, vcd} %\VignetteKeywords{conditional inference, exact distribution, conditional Monte Carlo, categorical data analysis, R} %\VignettePackage{coin} %% math commands \newcommand{\R}{\mathbb{R} } \newcommand{\Var}{\COV} \newcommand{\V}{\COV} \newcommand{\z}{\mathbf{z}} \newcommand{\X}{\mathbf{X}} \newcommand{\Y}{\mathbf{Y}} \newcommand{\sX}{\mathcal{X}} \newcommand{\sY}{\mathcal{Y}} \newcommand{\T}{\mathbf{T}} \newcommand{\x}{\mathbf{x}} \newcommand{\y}{\mathbf{y}} \renewcommand{\t}{\mathbf{t}} \renewcommand{\vec}{\text{vec}} %% code commands \newcommand{\Rclass}[1]{`\code{#1}'} %% hyphenation \hyphenation{Qua-dra-tic} %% JSS \author{Torsten Hothorn\\Ludwig-Maximilians-Universit\"at M\"unchen \And Kurt Hornik\\Wirtschaftsuniversit\"at Wien \AND Mark A.\ van de Wiel\\Vrije Universiteit Amsterdam \And Achim Zeileis\\Wirtschaftsuniversit\"at Wien} \Plainauthor{Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel, Achim Zeileis} \title{Implementing a Class of Permutation Tests: The \pkg{coin} Package} \Plaintitle{Implementing a Class of Permutation Tests: The coin Package} \Shorttitle{\pkg{coin}: Implementing a Class of Permutation Tests} \Abstract{ This description of the \proglang{R} package \pkg{coin} is a (slightly) modified version of \cite{Hothorn+Hornik+VanDeWiel:2008} published in the \textit{Journal of Statistical Software}. The \proglang{R} package \pkg{coin} implements a unified approach to permutation tests providing a huge class of independence tests for nominal, ordered, numeric, and censored data as well as multivariate data at mixed scales. Based on a rich and flexible conceptual framework that embeds different permutation test procedures into a common theory, a computational framework is established in \pkg{coin} that likewise embeds the corresponding \proglang{R} functionality in a common \proglang{S}4 class structure with associated generic functions. As a consequence, the computational tools in \pkg{coin} inherit the flexibility of the underlying theory and conditional inference functions for important special cases can be set up easily. Conditional versions of classical tests---such as tests for location and scale problems in two or more samples, independence in two- or three-way contingency tables, or association problems for censored, ordered categorical or multivariate data---can easily be implemented as special cases using this computational toolbox by choosing appropriate transformations of the observations. The paper gives a detailed exposition of both the internal structure of the package and the provided user interfaces along with examples on how to extend the implemented functionality. } \Keywords{conditional inference, exact distribution, conditional Monte Carlo, categorical data analysis, \proglang{R}} \Plainkeywords{conditional inference, exact distribution, conditional Monte Carlo, categorical data analysis, R} \Volume{28} \Issue{8} \Month{November} \Year{2008} \Submitdate{2007-07-05} \Acceptdate{2008-10-21} \Address{ Torsten Hothorn\\ Institut f\"ur Statistik\\ Ludwig-Maximilians-Universit\"at M\"unchen\\ Ludwigstra{\ss}e 33\\ DE-80539 M\"unchen, Germany \\ E-mail: \email{Torsten.Hothorn@R-project.org}\\ URL: \url{http://www.stat.uni-muenchen.de/~hothorn/}\\ Kurt Hornik, Achim Zeileis\\ Department of Statistics and Mathematics\\ Wirtschaftsuniversit\"at Wien\\ Augasse 2--6\\ AT-1090 Wien, Austria\\ E-mail: \email{Kurt.Hornik@R-project.org}, \email{Achim.Zeileis@R-project.org}\\ Mark A.\ van de Wiel\\ Department of Mathematics\\ Vrije Universiteit Amsterdam\\ De Boelelaan 1081a\\ NL-1081 HV Amsterdam, The Netherlands\\ E-mail: \email{mark.vdwiel@vumc.nl} } <>= options(prompt = "R> ", continue = "+ ") library("coin") library("e1071") set.seed(290875) ### extract slots of a class c2t <- function(x) { classdef <- getClassDef(x) extends <- names(classdef@contains)[1] if (!is.null(extends)) { eslots <- names(getClassDef(extends)@slots) slots <- classdef@slots[!names(classdef@slots) %in% eslots] } else { slots <- classdef@slots } RET <- cbind(names(slots), slots) attr(RET, "contains") <- extends attr(RET, "name") <- x class(RET) <- "c2t" RET } ### pretty printing toLatex.c2t <- function(object, center = TRUE, ...) { RET <- c() if (center) RET <- c(RET, "\\begin{center}") ### class name RET <- c(RET, "\\begin{tabular}{ll}", paste("\\multicolumn{2}{l}{Class \\Rclass{", attr(object, "name"), "}} \\\\", sep = "")) ### extends? if (!is.null(attr(object, "contains"))) RET <- c(RET, paste("\\multicolumn{2}{l}{Contains \\Rclass{", attr(object, "contains"), "}} \\\\", sep = "")) ### slots RET <- c(RET, " & \\\\", "Slot & Class \\\\ \\hline ", apply(object, 1, function(x) { x <- cbind(paste("\\code{", x[1], "}", sep = ""), paste("\\Rclass{", x[2], "}", sep = "")) paste(paste(x, collapse = " & "), "\\\\") }), "\\hline") RET <- c(RET, "\\end{tabular}") if (center) RET <- c(RET, "\\end{center}") class(RET) <- "Latex" return(RET) } @ \begin{document} \section{Introduction} Conditioning on all admissible permutations of the data for testing independence hypotheses is a very old, yet very powerful and popular, idea \citep{fisher1935,Ernst2004}. Conditional inference procedures, or simply \textit{permutation} or \textit{re-randomization} tests, are implemented in many different statistical computing environments. These implementations, for example \code{wilcox.test()} for the Wilcoxon-Mann-Whitney test or \code{mantelhaen.test()} for the Cochran-Mantel-Haenszel $\chi^2$ test in \proglang{R} \citep{rcore2007} or the tools implemented in \pkg{StatXact} \citep{StatXact6}, \pkg{LogXact} \citep{LogXact8}, or \proglang{Stata} \citep{Stata}---see \cite{Oster2002,Oster2003} for an overview---all follow the classical classification scheme of inference procedures and offer procedures for location problems, scale problems, correlation, or nominal and ordered categorical data. Thus, each test procedure is implemented separately, maybe with the exception of conditional versions of linear rank statistics \citep{theory-of-:-1999} in \texttt{NPAR1WAY} as available in \proglang{SAS} \citep{SAS}. Theoretical insights by \cite{StrasserWeber1999} open up the way to a unified treatment of a huge class of permutation tests. The \pkg{coin} package for \underline{co}nditional \underline{in}ference is the computational counterpart to this theoretical framework, implemented in the \proglang{R} system for statistical computing \citep{rcore2007}. \cite{Hothorn:2006:AmStat} introduce the package and illustrate the transition from theory to practice. Here, we focus on the design principles upon which the \pkg{coin} implementation is based as well as on the more technical issues that need to be addressed in the implementation of such conceptual tools. Within package \pkg{coin}, formal \proglang{S}4 classes describe the data model and the conditional test procedures, consisting of multivariate linear statistics, univariate test statistics and a reference distribution. Thus, one can work with objects representing the theoretical entities nearly in the same way as one would work with mathematical symbols. Generic functions for obtaining statistics, conditional expectation and covariance matrices as well as $p$-value, distribution, density and quantile functions for the reference distribution help to extract information from these objects. The infrastructure is conveniently interfaced in the function \code{independence_test()}, thus providing the computational counterpart of the theoretical framework of \cite{StrasserWeber1999}. Here, we start out with an illustrative application of \code{independence_test()} to a small 2-sample problem (see Table~\ref{rotarod}) and then continue to introduce the underlying computational building blocks using the same data set. The data was used previously by \cite{Bergmann:2000} as a challenging example in a comparison of test statistics and $p$-values of the Wilcoxon-Mann-Whitney rank sum test as reported by eleven statistical packages. More specifically, $n = 24$ rats received a fixed oral dose of a centrally acting muscle relaxant as active treatment or a saline solvent as control. The animals were placed on a rotating cylinder and the length of time each rat remained on the cylinder was measured, up to a maximum of $300$ seconds. The rats were randomly assigned to the control and treatment groups, thus a re-randomization test as implemented in \code{independence_test()} is the appropriate way to investigate if the response is independent of the group assignment. The data are particularly challenging because of the many ties in the (right-censored) response ($\Sexpr{sum(rotarod$time == 300)}$ observations take the maximal value $300$) and the quasi-complete separation (smaller values of time are only observed in the treatment group). Conceptually, this makes computation of the two-sided exact $p$-value for any 2-sample contrast very simple: $p = 2 \cdot {19 \choose 12} / {24 \choose 12} = \Sexpr{round(2 * choose(19, 12) / choose(24, 12), digits = 5)}$. However, in software, this often makes computations of the exact $p$-value more difficult because several simple algorithms fail. \begin{table}[t] \begin{center} \begin{tabular}{|r|rrrrrrrrrrrr|} \hline \code{group} & \multicolumn{12}{|l|}{\code{time}} \\ \hline control & \Sexpr{paste(rotarod$time[1:12], collapse = " & ")} \\ treatment & \Sexpr{paste(sort(rotarod$time[13:24]), collapse = " & ")} \\ \hline \end{tabular} \caption{The \code{rotarod} data: length of \code{time} on rotating cylinder by \code{group}. \label{rotarod}} \end{center} \end{table} Utilizing \pkg{coin}, the hypothesis of independence of length of time and group assignment can be specified by a formula which, together with a data frame \code{rotarod}, serve as arguments to \code{independence_test}: <>= library("coin") data("rotarod", package = "coin") independence_test(time ~ group, data = rotarod, ytrafo = rank_trafo, distribution = exact()) @ Here, the conditional Wilcoxon-Mann-Whitney test was performed via a rank transformation of the response, employing the exact distribution for obtaining the $p$-value (yielding the correct result outlined above). Users of \proglang{R} can easily interpret this output since it is represented in the same format as classical tests in the basic \pkg{stats} package. Based on the $p$-value derived from the exact conditional distribution of the test statistic \code{Z}, the independence of group assignment and time on the cylinder can be rejected. Although the above piece of code looks embarrassingly simple, the underlying computations are much more sophisticated than visible at first sight: The data are pre-processed along with their transformations, deviations from independence are captured by a (possibly multivariate) linear statistic, standardized by conditional expectation and variance, and aggregated to a final test statistic. Subsequently, the requested reference distribution is computed, from which a $p$-value is derived, and everything is wrapped into an object that can be conveniently printed or queried for more detailed information. After briefly reviewing the underlying theory from \cite{StrasserWeber1999} in Section~\ref{sec:theory}, we introduce formal \proglang{S}4 classes and methods capturing all the outlined steps in Section~\ref{sec:class}. Section~\ref{sec:ui} provides further information about high-level user interfaces and extensibility, and Section~\ref{sec:practice} further illustrates how to employ the software in practice using a categorical data example. Section~\ref{sec:oddsandends} concludes the paper with a short discussion, some more details about the underlying theory can be found in an appendix. \section{Permutation tests in a nutshell} \label{sec:theory} In the following we give a brief overview of the general theory for permutation tests as developed by \cite{StrasserWeber1999} and implemented by \cite{Hothorn:2006:AmStat}. The task is to test the independence of two variables $\Y$ and $\X$ from sample spaces $\mathcal{Y}$ and $\mathcal{X}$ which may be measured at arbitrary scales and may be multivariate as well. In addition, $b \in \{1, \dots, k\}$, a factor measured at $k$ levels, indicates a certain block structure of the observations: for example study centers in a multi-center randomized clinical trial where only a re-randomization of observations within blocks is admissible. We are interested in testing the null hypothesis \begin{eqnarray*} H_0: D(\Y | \X, b) = D(\Y | b) \end{eqnarray*} of conditional independence of $\Y$ and $\X$ within blocks~$b$ against arbitrary alternatives, for example shift or scale alternatives, linear trends, association in contingency tables etc. \cite{StrasserWeber1999} suggest deriving scalar test statistics for testing $H_0$ from multivariate linear statistics of the form \begin{eqnarray} \label{linstat} \T = \sum_{j = 1}^k \T_j \in \R^{pq} \end{eqnarray} where the linear statistic for each block is given by \begin{eqnarray*} \T_j = \vec\left(\sum_{i = 1}^n I(b_i = j) w_i g(\X_i) h(\Y_i)^\top\right) \in \R^{pq}. \end{eqnarray*} The function $I(\cdot)$ is the indicator function and $\vec$ denotes the vec operator (which stacks the columns of a matrix). Here, $g: \mathcal{X} \rightarrow \R^{p \times 1}$ is a transformation of the $\X$ measurements and $h: \mathcal{Y} \rightarrow \R^{q \times 1}$ is a transformation of the $\Y$ values. The function $h(\Y_i) = h(\Y_i, (\Y_1, \dots, \Y_n))$ is also called \emph{influence function} and may depend on the full vector of responses $(\Y_1, \dots, \Y_n)$, however only in a permutation symmetric way, i.e., the value of the function must not depend on the order in which $\Y_1, \dots, \Y_n$ appear. The case weights $w_i$ are assumed to be integer-valued, indicating that $w_i$ observations with realizations $\Y_i$, $\X_i$ and $b_i$ are available, with default $w_i \equiv 1$. The distribution of $\T$ depends on the joint distribution of $\Y$ and $\X$, which is unknown under almost all practical circumstances. At least under the null hypothesis one can dispose of this dependency by fixing $\X_1, \dots, \X_n$ and conditioning on all possible permutations of the responses $\Y_1, \dots, \Y_n$ within block $j, j = 1, \dots, k$. The conditional expectation $\mu \in \R^{pq}$ and covariance $\Sigma \in \R^{pq \times pq}$ of $\T$ under $H_0$ given all permutations $\sigma \in S$ of the responses are derived by \cite{StrasserWeber1999} and are given in Appendix~\ref{app}. Having the conditional expectation and covariance at hand we are able to standardize an observed linear statistic $\t \in \R^{pq}$ (of the form given in Equation~\ref{linstat}) and aggregate it to some univariate test statistic $c = c(\t, \mu,\Sigma)$. Various choices for $c(\t, \mu,\Sigma)$ are conceivable, e.g., a quadratic form or a maximum type statistic (see Section~\ref{sec:class}). In the latter case, a natural first step is to standardize each of the $pq$ statistics in $\t$ by its expectation and standard deviation: \begin{eqnarray} \label{standstat} \z = \text{diag}(\Sigma)^{-1/2} (\mathbf{t} - \mu). \end{eqnarray} In the following, we describe a class structure for representing these theoretical objects along with possible choices of test statistics $c$ and computations or approximations of the associated reference distributions. \section{A class structure for permutation tests} \label{sec:class} In this section, the theory of permutation tests, as briefly outlined in the previous section, is captured in a set of \proglang{S}4 classes and methods: In Section~\ref{sec:data}, we suggest objects representing the data and the independence problem, for which a test statistic is computed subsequently. Objects for the associated reference distribution are constructed in Section~\ref{sec:distr}. Finally, in Section~\ref{sec:testobj}, everything is combined in a single object for the whole testing procedure. \newpage \subsection{Data, independence problems and test statistics} \label{sec:data} \subsubsection{Data structure} We are provided with $n$ observations $(\Y_i, \X_i, b_i, w_i), i = 1, \dots, n.$ In addition to variables $\X$, $\Y$, and $b$, it is convenient (for example to efficiently represent large contingency tables) to include case weights $w_i$, defaulting to $w_i \equiv 1$. This data structure is represented by class \Rclass{IndependenceProblem}: <>= toLatex(c2t("IndependenceProblem")) @ Note that objects of this class implicitly define the null distribution $H_0$ and all admissible permutations of observations within blocks. For our illustrating rotating rats example, we specify the hypothesis of independence of variables \code{time} and \code{group} by initializing a new independence problem with the corresponding observations: <>= ip <- new("IndependenceProblem", y = rotarod["time"], x = rotarod["group"]) @ \subsubsection{Independence problems and linear statistics} The transformation functions $g$ and $h$ as well as the transformed observations $g(\X_i)$ and $h(\Y_i), i = 1, \dots, n$, are added to the data structure by extending class \Rclass{IndependenceProblem}: <>= toLatex(c2t("IndependenceTestProblem")) @ The \code{ytrafo} and \code{xtrafo} slots correspond to the transformations $h$ and $g$, respectively. The $i$th row of the $n \times q$ matrix \code{ytrans} corresponds to $h(\Y_i)$. Similarly, the rows of \code{xtrans} ($n \times p$) correspond to $g(\X_i)$. Note that, in addition to the data, hypothesis and permutation scheme, the test statistic $\T$ is defined by objects of class \Rclass{IndependenceTestProblem} as well. In the simplest case of both $\X$ and $\Y$ being univariate factors at $p$ and $q$ levels, $g$ and $h$ are the corresponding dummy codings and the linear statistic $\T$ is the (vectorized) $p \times q$ contingency table of $\X$ and $\Y$. In the rats example, the default dummy coding for factor \code{group} is employed and a rank transformation (via \code{rank_trafo()}) is applied to \code{time}. <>= itp <- new("IndependenceTestProblem", ip, ytrafo = rank_trafo) @ The linear statistic $\T$, its conditional expectation $\mu$ and covariance $\Sigma$ are stored in objects of class \Rclass{IndependenceLinearStatistic}: <>= toLatex(c2t("IndependenceLinearStatistic")) @ Class \Rclass{VarCovar} represents either a complete covariance matrix or its diagonal elements only. By default, only the conditional variances are stored, the whole covariance matrix can be computed as needed (see below). In the rotating rats example, such an object is easily created via <>= ils <- new("IndependenceLinearStatistic", itp) @ Using methods for suitable generic functions (see Table~\ref{tab:generics}), the linear statistic for the rotating rats can be extracted via <>= statistic(ils, type = "linear") @ This is simply the sum of the average ranks in the control group, i.e., $180 = 12 \cdot 15$ because all 12 observations have the maximal average rank 15. Additionally, the associated conditional mean and variance under $H_0$ can be computed via: <>= expectation(ils) variance(ils) @ based upon which we can now set up a test statistic. \subsubsection{Test statistics} \label{sec:teststat} \begin{table}[tb] \begin{center} \begin{tabular}{lp{9.5cm}} \hline Function & Description \\ \hline \code{statistic(object, type)} & Extraction of the linear statistic $\t$ (\code{type = "linear"}), the standardized statistic $\z$ (\code{type = "standardized"}) or the final test statistic $c$ (\code{type = "test"}, only for objects inheriting from \Rclass{IndependenceTestStatistic}). \\ \code{expectation(object)} & Extraction of the conditional expectation~$\mu$. \\ \code{covariance(object)} & Extraction of the complete conditional covariance matrix~$\Sigma$. \\ \code{variance(object)} & Extraction of the diagonal elements of the conditional covariance matrix $\text{diag}(\Sigma)$. \\ \hline \end{tabular} \caption{\label{tab:generics} List of generic functions with methods for classes inheriting from \Rclass{IndependenceLinearStatistic}.} \end{center} \end{table} The specification of the inference procedure is completed by the definition of a univariate test statistic $c$ which is represented by a \emph{virtual} class \Rclass{IndependenceTestStatistic}: <>= toLatex(c2t("IndependenceTestStatistic")) @ The slot \code{standardizedlinearstatistic} contains $\z$, the (possibly multivariate) linear statistic standardized by its conditional expectation and variance (Equation~\ref{standstat}). Slot \code{teststatistic} is for storing univariate test statistics $c$. Methods for all generics listed in Table~\ref{tab:generics} are also available for objects of this class. \pkg{coin} implements three \Rclass{IndependenceTestStatistic} subclasses with associated univariate test statistics: scalar test statistics $c_\text{scalar}$, maximum-type statistics $c_\text{max}$ and quadratic forms $c_\text{quad}$. In case of univariate linear statistics $\t$, i.e., for $pq = 1$, a natural test statistic $c$ is simply the standardized linear statistic \begin{eqnarray*} c_\text{scalar}(\t, \mu, \Sigma) = \frac{\t - \mu}{\sqrt{\Sigma}} = \z. \end{eqnarray*} A special class is available for this <>= toLatex(c2t("ScalarIndependenceTestStatistic")) @ that also defines a character vector specifying the alternative to test against (\code{"two.sided"}, \code{"greater"} and \code{"less"}). Thus, the construction of a scalar test statistic corresponds to the construction of a suitable object via <>= sits <- new("ScalarIndependenceTestStatistic", ils, alternative = "two.sided") statistic(sits, type = "standardized") @ which yields the standardized Wilcoxon-Mann-Whitney statistic reported in the introductory example. In the multivariate case ($pq > 1$), a natural extension is to employ a maximum-type statistic of the form \begin{displaymath} c_\text{max}(\mathbf{t}, \mu, \Sigma) = \begin{cases} \max \left| \z \right| & \text{(``two-sided'')}, \\ \min \left( \z \right) & \text{(``less'')}, \\ \max \left( \z \right) & \text{(``greater'')}, \end{cases} \end{displaymath} where the definition reflects the associated alternative with name given in quotes. Again a special class \Rclass{MaxTypeIndependenceTestStatistic} is available for this: <>= toLatex(c2t("MaxTypeIndependenceTestStatistic")) @ Alternatively, a quadratic form $c_\text{quad}(\mathbf{t}, \mu, \Sigma) = (\mathbf{t} - \mu)^\top \Sigma^+ (\mathbf{t} - \mu)$ can be used as test statistic. It is computationally more expensive because the Moore-Penrose inverse $\Sigma^+$ of $\Sigma$ is involved. Such statistics are represented by objects of class \Rclass{QuadTypeIndependenceTestStatistic} defining slots for $\Sigma^+$ and its rank (degrees of freedom): <>= toLatex(c2t("QuadTypeIndependenceTestStatistic")) @ A slot \code{alternative} is not needed because, by construction, quadratic forms cannot be applied to one-sided hypotheses. \subsection{Representation of conditional null distributions} \label{sec:distr} The conditional distribution (or an approximation thereof) and thus the $p$-value corresponding to the statistic $c(\mathbf{t}, \mu, \Sigma)$ can be computed in several different ways. For some special forms of the linear statistic, the exact distribution of the test statistic is tractable. For 2-sample problems, the shift algorithm by \cite{axact-dist:1986,exakte-ver:1987} and the split-up algorithm by \cite{vdWiel2001} are implemented as part of the package. Conditional Monte Carlo procedures can always be used to approximate the exact distribution. In this case, within each block, a sufficiently large number of random samples from all admissible permutations of the observations is drawn. The test statistic is computed for the permuted $\Y$ values and the distribution of these test statistics is an approximation to the conditional reference distribution. When $p$-values are computed, confidence intervals are available from the binomial distribution. \citet[Theorem 2.3]{StrasserWeber1999} showed that the conditional distribution of linear statistics $\T$ with conditional expectation $\mu$ and covariance $\Sigma$ tends to a multivariate normal distribution with parameters $\mu$ and $\Sigma$ as $\sum_{i = 1}^n I(b_i = j)w_i \rightarrow \infty$ for all $j = 1, \dots, k$. Thus, the asymptotic conditional distribution of the standardized linear statistic $\z$ is normal and therefore, $p$-values for scalar or maximum-type univariate statistics can be computed directly in the univariate case ($pq = 1$) or approximated by numerical algorithms \citep{numerical-:1992} as implemented in package \pkg{mvtnorm} \citep{PKG:mvtnorm} in the multivariate setting. For quadratic forms $c_\text{quad}$ which follow a $\chi^2$ distribution with degrees of freedom given by the rank of $\Sigma$ \citep[see][Chapter 29]{johnsonkotz1970}, asymptotic probabilities can be computed straightforwardly. A null distribution is represented by either a distribution (and $p$-value) function only <>= toLatex(c2t("PValue")) @ or, where possible, is augmented by its density and quantile functions: <>= toLatex(c2t("NullDistribution")) @ Currently, there are three classes extending \Rclass{NullDistribution}: \Rclass{ExactNullDistribution}, \Rclass{ApproxNullDistribution} (adding a slot \code{seed} containing the current state of the random number generator) and \Rclass{AsymptNullDistribution}. All of them can be queried for probabilities, quantiles, etc., using suitable methods (see Table~\ref{tab:dists} for an overview). New methods for computing or approximating the conditional distribution can be integrated into the framework via suitable inheritance from \Rclass{PValue} (an example is given in Section~\ref{sec:ui}). \begin{table}[tb] \begin{center} \begin{tabular}{lp{9.5cm}} \hline Class & Description \\ \hline \Rclass{ExactNullDistribution} & Exact conditional null distribution (e.g., computed via the shift algorithm). \\ \Rclass{ApproxNullDistribution} & Approximation of the exact conditional distribution using conditional Monte Carlo procedures. \\ \Rclass{AsymptNullDistribution} & Asymptotic conditional distribution (via multivariate normal or $\chi^2$ distribution). \\ \hline Method & Description \\ \hline \code{pvalue(object)} & Computation of the $p$-value (plus a confidence interval if Monte Carlo procedures have been used) based on an observed test statistic $c$ and its conditional null distribution. \\ \code{midpvalue(object)} & Computation of the mid-$p$-value (plus a confidence interval if Monte Carlo procedures have been used) based on an observed test statistic $c$ and its conditional null distribution. \\ \code{pvalue_interval(object)} & Computation of the $p$-value interval based on an observed test statistic $c$ and its conditional null distribution. \\ \code{dperm(object, x)} & Evaluation of the probability density function at $x$. \\ \code{pperm(object, q)} & Evaluation of the cumulative distribution function for quantile $q$.\\ \code{qperm(object, p)} & Evaluation of the quantile function for probability $p$.\\ \code{rperm(object, n)} & Generation of $n$ random numbers from the null distribution.\\ \code{support(object)} & Extraction of the support of the null distribution.\\ \hline \end{tabular} \caption{\label{tab:dists} Classes and methods for conditional null distributions.} \end{center} \end{table} The \code{support} function returns the support of a discrete distribution. Using these tools, the exact $p$-value for the independence test on the rotating rats along with the complete exact reference distribution (allowing for the computation of quantiles, for example) can be derived via <>= end <- ExactNullDistribution(sits) pvalue(end, statistic(sits)) qperm(end, 0.95) @ For maximum-type statistics $c_\text{max}$, single-step and step-down multiplicity adjusted $p$-values based on the limiting distribution and conditional Monte Carlo methods \citep[see][]{WestfallYoung1993} are available as well. \subsection{Objects for conditional tests} \label{sec:testobj} A conditional test is represented by a test statistic of class \Rclass{IndependenceTestStatistic} and its conditional null distribution inheriting from class \Rclass{PValue}. In addition, a character string giving the name of the test procedure is defined in class \Rclass{IndependenceTest}: <>= toLatex(c2t("IndependenceTest")) @ Remember that objects of class \Rclass{IndependenceTestStatistic} represent the data, hypothesis, linear statistic and test statistic along with conditional expectation and covariance matrix. The \code{estimates} slot may contain parameter estimates where available, for example an estimate and corresponding confidence interval for a shift parameter derived from a conditional Wilcoxon-Mann-Whitney test. A complete description of the conditional independence test for the rotating rats data is given by an object of class \Rclass{IndependenceTest} which is conveniently represented by the corresponding \code{show()} method: <>= new("IndependenceTest", statistic = sits, distribution = end) @ Of course, the methods previously defined in this section (see Tables~\ref{tab:generics} and \ref{tab:dists}) are defined for objects of class \Rclass{IndependenceTest} as well. Thus, all theoretical entities introduced in Section~\ref{sec:theory} are now captured in a single object of class \Rclass{IndependenceTest} and all methods for extracting information from it are readily available. \section{Interfaces to permutation inference} \label{sec:ui} In Section~\ref{sec:class}, all the necessary computational building blocks are introduced for implementing the general class of permutation tests outlined in Section~\ref{sec:theory}. However, one rarely needs to exploit the full flexibility of each component of the framework. More often, one wants to employ sensible defaults for most (if not all) steps in the analysis but preserving the possibility to extend a few steps based on user-supplied methods. For this purpose, \pkg{coin} provides the function \code{independence_test()} as the main user interface for performing independence tests. Many of its arguments have flexible defaults or can be specified by a simple character string while still allowing to plug in much more complex user-defined objects, e.g., for data preparation, computation of the null distribution, or transformation functions. \subsection{A convenient user interface} Via the generic function \code{independence_test()}, all steps described in Section~\ref{sec:class} can be carried out using a single command. The main workhorse behind it is the method for objects of class \Rclass{IndependenceProblem}: \begin{Sinput} independence_test(object, teststat = c("maximum", "quadratic", "scalar"), distribution = c("asymptotic", "approximate", "exact"), alternative = c("two.sided", "less", "greater"), xtrafo = trafo, ytrafo = trafo, scores = NULL, check = NULL, ...) \end{Sinput} Thus, \code{object} describes the data and the null hypothesis. Arguments \code{xtrafo} and \code{ytrafo} refer to the transformations $g$ and $h$: Both are by default set to function \code{trafo()} which chooses suitable transformations based on the scale of the considered variables (see below). The three types of univariate test statistics discussed above are hard-coded and can be specified by a simple string. Similarly, the reference distribution and the alternative hypothesis can be supplied as strings. In addition to these simple specifications, more flexible specifications for the data (\code{object}), the transformations (\code{xtrafo}, \code{ytrafo}), and the distribution are available, as discussed in the following. The \code{scores} argument takes a named list of numeric vectors to be used as scores for ordered factors. Validity checks for objects of class \Rclass{IndependenceProblem} specified to argument \code{check} can be used to test for certain aspects of the data, e.g., when one has to make sure that two independent samples are present. \subsection{Data specification} The standard way of specifying relationships between variables in \proglang{R} are formulas in combination with a data frame. Hence, a \Rclass{formula} method for \code{independence_test()} is provided that interprets the left hand side variables of a formula as $\Y$ variables (univariate or possibly multivariate), the right hand side as $\X$ variables (univariate or multivariate as well). An optional blocking factor can specified after a vertical bar, e.g., \begin{Sinput} y1 + y2 ~ x1 + x2 | block \end{Sinput} This specifies an independence problem between two $\Y$ variables and two $\X$ variables (in case all variables are numeric the linear statistic is 4-dimensional with $p = 2$ and $q = 2$) for each level in \code{block}. As usual, \code{data}, \code{weights} and \code{subset} arguments can be specified as well. Based on all these arguments the \Rclass{IndependenceProblem} is built and simply passed on to the \code{independence_test()} method described above. For (simple) categorical data, there is yet another way of specifying the independence problem, namely via the \Rclass{table} method of \code{independence_test()}. Its first argument is allowed to be a 2- or 3-dimensional table: The first two margins are interpreted as univariate categorical $\X$ and $\Y$ variables and the optional third margin is taken to be the blocking factor. Again, an \Rclass{IndependenceProblem} object is derived from this and passed on to the associated method. \subsection{Null distributions} In the simplest case, the \code{distribution} argument of the \code{independence_test()} methods can be specified by a simple character string. However, this is not flexible enough in some situations and hence it is also possible to supply a function that can compute a \Rclass{PValue} object from an \Rclass{IndependenceTestStatistic} object. For the most important special cases, suitable function \emph{generators} are provided in \pkg{coin}. For example, the function \code{approximate(B = 1000)} returns a Monte Carlo function that draws \code{B} (default: \Sexpr{formals(approximate)$B}) random permutations. Similarly, \code{exact()} and \code{approximate()} return functions computing the exact or asymptotic null distributions, respectively. Again, computational details in the computation of the null distribution can be controlled via arguments of the function generators. Additionally, it is also possible to set \code{distribution} to a user-supplied algorithm for computing the conditional null distribution. It just has to be provided in the form of a function taking an object inheriting from \Rclass{IndependenceTestStatistic} and returning an object inheriting from class \Rclass{PValue}. As an example, consider the computation of the exact $p$-value for testing independence of two continuous random variables. The identity transformation is used for both $g$ and $h$, thus a conditional version of the test for zero Pearson correlation is constructed. We use a tiny artificial example where enumeration and evaluation of all possible permutations is still feasible. The function \code{sexact()} extracts both variables, computes all permutations using the function \code{permutations()} from \pkg{e1071} \citep{PKG:e1071}, computes the linear test statistic for each permutation, standardizes it by expectation and variance, and then sets up the distribution function. <>= set.seed(2908) correxample <- data.frame(x = rnorm(7), y = rnorm(7)) sexact <- function(object) { x <- object@xtrans y <- object@ytrans perms <- permutations(nrow(x)) pstats <- apply(perms, 1, function(p) sum(x[p,] * y)) pstats <- (pstats - expectation(object)) / sqrt(variance(object)) p <- function(q) 1 - mean(pstats > q) new("PValue", p = p, pvalue = p) } @ Note that above implementation is kept simple for the purpose of illustration; it hard-codes the alternative (less) and assumes that the transformed variables are univariate. This function can then be passed to \code{independence_test()} for computing the distribution function and $p$-value: <>= independence_test(y ~ x, data = correxample, alternative = "less", distribution = sexact) @ \subsection{Transformations} By default, \code{independence_test()} chooses the transformations $g$ and $h$ via the wrapper function \code{trafo()}. This, in turn, chooses the actual transformation based on the scale of each variable (individually) in a data frame \code{data}: \begin{Sinput} trafo(data, numeric_trafo = id_trafo, factor_trafo = f_trafo, surv_trafo = logrank_trafo, var_trafo = NULL, block = NULL) \end{Sinput} The identity transformation is used for numeric variables (\code{id_trafo()}), factors are transformed to indicator variables (\code{f_trafo()}), and censored variables are transformed to logrank scores (\code{logrank_trafo()}). In \code{f_trafo()} a set of $k$ indicator functions is used for a factor with $k$ levels, unless $k = 2$ for which a univariate indicator function is employed. A named list containing different transformations to be applied to certain variables may be specified as \code{var_trafo} argument. When a factor is given as \code{block}, all transformations are applied separately within each block. The function \code{trafo()} can also easily be re-used by supplying other (possibly user defined functions) as arguments to \code{trafo()}. Instead of using \code{trafo()}, a user-defined transformation can also be passed directly to \code{xtrafo} or \code{ytrafo}. As an example, consider using a Mood test against scale alternatives for the rotating rats data. This amounts to using the transformation $h(Y_i) = (\text{rank}(Y_i) - (n + 1) / 2)^2$ for the response: <>= mood_score <- function(y) (rank_trafo(y) - (sum(!is.na(y)) + 1) / 2)^2 @ This can be used for constructing an exact test (based on the split-up algorithm) by hand: <>= ip <- new("IndependenceProblem", y = rotarod["time"], x = rotarod["group"]) itp <- new("IndependenceTestProblem", ip, ytrafo = mood_score) ils <- new("IndependenceLinearStatistic", itp) sits <- new("ScalarIndependenceTestStatistic", ils, alternative = "two.sided") new("ScalarIndependenceTest", statistic = sits, distribution = ExactNullDistribution(sits, algorithm = "split-up")) @ Alternatively, and more easily, the same result can be obtained by plugging \code{mood_score()} into \code{independence_test()}: <>= independence_test(time ~ group, data = rotarod, ytrafo = mood_score, distribution = exact(algorithm = "split-up")) @ Similarly to the Mood test, the conditional counterpart of many other classical tests (some of them implemented in package \pkg{stats}) are easily available through \code{independence_test()} by specifying the appropriate \code{xtrafo}, \code{ytrafo} and \code{teststat}. This includes the Wilcoxon-Mann-Whitney or Cochran-Mantel-Haenszel tests, but also many other well-known tests as shown in Table~\ref{confct}. Due to this flexibility, almost all special-purpose functionality implemented in packages \pkg{exactRankTests} \citep{Rnews:Hothorn:2001,HothornHornik:2002:CompStat,pkg:exactRankTests} and \pkg{maxstat} \citep{Rnews:Hothorn+Lausen:2002,pkg:maxstat} can be conveniently provided within the \pkg{coin} framework, so that both packages will become deprecated in the future. \begin{table}[tb] \begin{center} \begin{tabular}{lllll} \\ \hline Test & \code{xtrafo} $g$ & \code{ytrafo} $h$ & \code{teststat} $c$ \\ \hline \multicolumn{4}{c}{} \\ \multicolumn{4}{c}{Independent samples} \\ \multicolumn{4}{c}{} \\ Wilcoxon-Mann-Whitney & \code{f_trafo()} & \code{rank_trafo()} & \code{"scalar"} \\ Normal quantiles & \code{f_trafo()} & \code{normal_trafo()} & \code{"scalar"} \\ Median & \code{f_trafo()} & \code{median_trafo()} & \code{"scalar"} \\ Ansari-Bradley & \code{f_trafo()} & \code{ansari_trafo()} & \code{"scalar"} \\ Logrank & \code{f_trafo()} & \code{logrank_trafo()} & \code{"quadratic"} \\ Kruskal-Wallis & \code{f_trafo()} & \code{rank_trafo()} & \code{"quadratic"} \\ Fligner & \code{f_trafo()} & \code{fligner_trafo()} & \code{"quadratic"} \\ Spearman & \code{rank_trafo()} & \code{rank_trafo()} & \code{"scalar"} \\ Cochran-Mantel-Haenszel & \code{f_trafo()} & \code{f_trafo()} & \code{"quadratic"} \\ Pearson's $\chi^2$ & \code{f_trafo()} & \code{f_trafo()} & \code{"quadratic"} \\ Cochran-Armitage / Linear & scores & any & \code{"scalar"} \\ Association & & & \\ $K$-sample permutation test & \code{f_trafo()} & any & any \\ Maximally selected statistics & \code{maxstat_trafo()} & any & \code{"maximum"} \\ \multicolumn{4}{c}{} \\ \multicolumn{4}{c}{Dependent samples} \\ \multicolumn{4}{c}{} \\ Friedman & \code{f_trafo()} & \code{rank_trafo()} & \code{"quadratic"} \\ Stuart-Maxwell & \code{f_trafo()} & \code{f_trafo()} & \code{"quadratic"} \\ Wilcoxon signed-rank & \code{f_trafo()} & \code{rank_trafo()} & \code{"scalar"} \\ \hline \end{tabular} \caption{Representations of the conditional counterparts of important classical tests in \pkg{coin}. \label{confct}} \end{center} \end{table} \section{Permutation tests in practice: A categorical data example} \label{sec:practice} The job satisfaction of African-American males in the USA \citep[][Table 7.8]{agresti2002} is described by measures of income and reported job satisfaction in four (ordinal) classifications. It seems natural to surmise that job satisfaction increases with income. The data (see Figure~\ref{jsplot}) is given as a three-dimensional \Rclass{table} with variables \code{Income} and \code{Job.Satisfaction} according to \code{Gender} (labels slightly modified for convenience): <>= data("jobsatisfaction", package = "coin") js <- jobsatisfaction dimnames(js)[[2]] <- c("VeryDiss", "LitSat", "ModSat", "VerySat") ftable(Job.Satisfaction ~ Gender + Income, data = js) @ \setkeys{Gin}{width=\textwidth} \begin{figure} \begin{center} <>= library("vcd") cotabplot(js, split_vertical = TRUE, spacing = spacing_highlighting, gp = gpar(fill = rev(gray.colors(4))), labeling_args = list(rot_labels = 0, varnames = FALSE, just_labels = c("center", "right")), panel_args = list(margins = c(3, 1, 2, 3.5))) @ \caption{Conditional mosaic plot of job satisfaction and income given gender. \label{jsplot}} \end{center} \end{figure} The Cochran-Mantel-Haenszel test---a classical test for testing independence in stratified contingency tables---could be used for assessing the independence hypothesis of income and job satisfaction (stratified by gender). Traditionally, this test employs a $c_\text{quad}$ statistic derived from the contingency table and a $\chi^2$ approximation of the null distribution: <>= it <- independence_test(js, teststat = "quadratic", distribution = asymptotic()) it @ Thus, the test does not indicate significant departure from independence. However, ordering of the factors is not exploited by the Cochran-Mantel-Haenszel test. As some positive correlation of the two factors would seem natural, it is worth having a closer look at the data and the test result. The underlying linear statistic is <>= statistic(it, type = "linear") @ This is exactly the original contingency table aggregated over the block factor \code{Gender}: <>= margin.table(js, 1:2) @ Therefore, the standardized linear statistic can be interpreted similarly to Pearson residuals for the independence hypothesis: <>= statistic(it, type = "standardized") @ The positive diagonal and (mostly) negative off-diagonal elements convey that higher income categories seem to be associated with higher job satisfaction. Thus, to direct power against ordered alternatives, a linear-by-linear association statistic \citep{agresti2002} should be used instead of the omnibus $\chi^2$ statistic. This can be conveniently performed within \pkg{coin}, e.g., using simple equi-distant scores and a Monte Carlo approximation of the null distribution: <>= it <- independence_test(js, distribution = approximate(B = 10000), scores = list(Job.Satisfaction = 1:4, Income = 1:4)) pvalue(it) @ Using this strategy, the null hypothesis of independence of job satisfaction and income can be rejected in favor of a positive association of both variables. Other choices of scores are also conceivable. Especially when there is an underlying numeric scale, interval midpoints are often used \citep[see][for an example]{Hothorn:2006:AmStat}. For other patterns of dependence---e.g., when only a few cells in a large table deviate from independence---a maximum-type statistic is also useful for contingency tables. To complete our tour of \pkg{coin} tools for categorical data, we briefly illustrate this approach using the job satisfaction data again (even though a maximum-type statistic is clearly not very powerful for the dependence pattern in this data set). The maximum-type test is set up easily: <>= independence_test(js, teststat = "maximum") @ with its conditional asymptotic null distribution being available immediately (due to the joint multivariate normal distribution for the contingency table $\T$). Single-step adjusted $p$-values for each cell of the contingency table corresponding to this maximum test can be computed via <>= pvalue(independence_test(js, teststat = "maximum"), method = "single-step") @ These $p$-values can be interpreted in a way similar to standardized contingency tables. The discrepancy between the global adjusted $p$-value shown above and the minimum single-step adjusted $p$-value is due to simulation variance. For more practical examples, including applications with numeric variables, we refer to \cite{Hothorn:2006:AmStat}. \section{Odds and ends} \label{sec:oddsandends} \paragraph{Internal functionality.} The core functionality, i.e., a small set of functions computing the linear statistic $\T$ (both for the original and permuted data), the conditional expectation~$\mu$ and conditional covariance matrix~$\Sigma$, is coded in \proglang{C}. The shift and split-up algorithms \citep{axact-dist:1986,exakte-ver:1987,vdWiel2001} for computing the exact null distribution in 2-sample problems with univariate response as well as conditional Monte Carlo procedures for approximating the exact conditional null distribution are implemented in \proglang{C} as well. (In addition, some helper functions, e.g., the Kronecker product etc., are coded in \proglang{C}.) The complete \proglang{C} source code and its documentation can be accessed via <>= browseURL(system.file("documentation", "html", "index.html", package = "coin")) @ The naming scheme of the \proglang{C} routines distinguishes between functions only called at the \proglang{C} level (\code{C_}\textit{foo}) and functions which can be called from \proglang{R} via the \code{.Call} interface (\code{R_}\textit{foo}). Such functions are available for most of the internal \proglang{C} functions to enable unit testing. \paragraph{Quality assurance.} The test procedures implemented in \pkg{coin} are continuously checked against results obtained by the corresponding implementations in \pkg{stats} (where available). In addition, the test statistics and exact, approximate and asymptotic $p$-values for data examples given in the \pkg{StatXact}~6 user manual \citep{StatXact6} are compared with the results reported there. Step-down multiple adjusted $p$-values have been checked against results reported by \code{mt.maxT()} from package \pkg{multtest} \citep{PKG:multtest}. For details on the test procedures we refer to the \proglang{R} transcript files in directory `\code{tests}' of the \pkg{coin} package sources. \paragraph{Computational details.} The \pkg{coin} package imports packages \pkg{mvtnorm} \citep{PKG:mvtnorm} for the evaluation of the multivariate normal distribution and package \pkg{modeltools} \citep{PKG:modeltools} for formula parsing. The class structure, internal functionality, user interface and examples are based on \pkg{coin} version \Sexpr{packageDescription("coin")$Version}, available under the terms of the General Public License from \url{http://CRAN.R-project.org/}. \proglang{R} version \Sexpr{paste(version$major, version$minor, sep = ".")} \citep{rcore2007} was used for the computations, Figure~\ref{jsplot} was created using the \pkg{vcd} package \citep{vcd}. \section*{Acknowledgments} We would like to thank Helmut Strasser for discussions on the theoretical framework. Henric Winell provided clarification and examples for the Stuart-Maxwell test and helped identifying bugs. The work of Torsten Hothorn was supported by Deutsche Forschungsgemeinschaft (DFG) under grant HO 3242/1-3. \bibliography{coin} \newpage \begin{appendix} \section{Expectation and covariance} \label{app} The conditional expectation and covariance matrix of linear statistics $\T$ as given in Equation~\ref{linstat} in Section~\ref{sec:theory} are computed as follows. Let $w_{\cdot j} = \sum_{i = 1}^n I(b_i = j)w_i$ denote the sum of the weights in block $j$ and $S_j$ the set of all permutations of the observations in block $j$. The conditional expectation of the transformation $h$ in block $j$ is \begin{eqnarray*} \E(h | S_j) = w_{\cdot j}^{-1} \sum_i I(b_i = j)w_i h(\Y_i) \in \R^q \end{eqnarray*} with corresponding $q \times q$ covariance matrix \begin{eqnarray*} \V(h | S_j) = w_{\cdot j}^{-1} \sum_i I(b_i = j)w_i \left(h(\Y_i) - \E(h | S_j) \right) \left(h(\Y_i) - \E(h | S_j)\right)^\top. \end{eqnarray*} This is the basis for computing the conditional expectation and covariance of the linear statistic $\T_j$ in block $j$: \begin{eqnarray*} \mu_j & = & \E(\T_j | S_j) = \vec \left( \left( \sum_{i = 1}^n I(b_i = j)w_i g(\X_i) \right) \E(h | S_j)^\top \right) \end{eqnarray*} and \begin{eqnarray*} \Sigma_j & = & \V(\T_j | S_j) \nonumber \\ & = & \frac{w_{\cdot j}}{w_{\cdot j} - 1} \V(h | S_j) \otimes \left(\sum_i I(b_i = j) w_i \left( g(\X_i) \otimes g(\X_i)^\top\right) \right) \label{expectcovar} \\ & - & \frac{1}{w_{\cdot j} - 1} \V(h | S_j) \otimes \left( \sum_i I(b_i = j) w_i g(\X_i) \right) \otimes \left( \sum_i I(b_i = j) w_i g(\X_i)\right)^\top \nonumber \end{eqnarray*} where $\otimes$ is the Kronecker product. The conditional expectation and covariance of $\T$, aggregated over all $k$ blocks, are then given by \begin{eqnarray*} \E(\T | S_j) & = & \mu \; = \; \sum_{j = 1}^k \mu_j \; = \; \sum_{j = 1}^k \E(\T_j | S_j), \\ \V(\T | S_j) & = & \Sigma \; = \; \sum_{j = 1}^k \Sigma_j \; = \; \sum_{j = 1}^k \V(\T_j | S_j). \end{eqnarray*} \end{appendix} \end{document} coin/inst/doc/MAXtest.pdf0000644000176200001440000044533213133077421014760 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4104 /Filter /FlateDecode /N 74 /First 606 >> stream x[[s۸~[ qǹl6vⵝɃ,6we+Qq_DR8N=2M *&f3ì̙e`!7̳\Ir35d{ͤb2WgÔ 2S6eϔ3x/0-r6F1s$3֢LnSY2`yJ j`F299JS[mV̻ư  ςAh"Xs<:0Nt X.]Όf`aC &4z4 UAAz@DIfAEddIdhY:e%@hC*:ZVSaѲ2N0IDZVT0dMa䨀Zad-c6rbmCF#l,f VGtDψ L{lrt׿?,hP 0c_-q9). .P0p`| /Eu9My2L~fټ*&͍TtxPf^x7B]7b-)Kvg](>Lg9{pQL|>p0/j6y}ͦgyŪY1W?jqUPT1+'*kfbXr:Yy]<NgÊ=iYګ٨=Y9;NQbA`O>Ƌ8(6=ghz3 q=@Kps YM Rt1H/%OJktn]?SiwIAijJ>4|XdZY7{i{T)&hJQ9x4ƩmM̠ ?Lyq1.fC #XO>UN*b OD:okyM'EZB:(!(, p-]B[|LL =H "xFJk KMZnH="OZzfQUN$Չ:MN]DpԓNԊNԊ6/.ńִ$Mmlkæ4rFb:wm.G^ ]30~(o\~S=:%o3y Z_?o \V?9UAb0~NeOGS2'pDX_@c2>3ː .YiCTUqPN\B"'2{iLZ&Bckՠ tyRֈT3# `CmRdIyb6!,tvG:: xNyH?z>z O&騜\CpۿȦGtȰ2躢&u. 7娺$ՕGs%Qـ8bݺ^   `1! [D% @у kYz -*XFCDX~. j j\:a)a עlb| ??'~Ƈ|8O'| ~K~σepc~'|ʧ_stg|GTxūYQf#矢Fᙃ#ƃ Y"kEl@>OqVUazNpX`vqBIU\;:_-ltGBN^rZR@\-%:{ʇW+tG._硑I+AbEm-DCmVyxçq8<1gnA ?Cxx4؂M-4PU:^4欅]ޏäJssD4m6Y;h%nHZR%ROʋA7-C6W`2PΫzF-M8JpЃ%/Z Qk|HE+2ۅ~RB旒O.W J-ƱBSHubiu?L L#YoU(lW[ T 84=z1wK.ՊV~?zq?}W&{y0vU ֖$BK__8RTwP^!5·$$I6N)"+VR@[2aI+-\QIj>%jCnԒCsn`0R[c 7t%nES?C6(.pt8={}nuuV'b6L=i+3ʖ8A6bWel\Oh5QkT_{+75q\nΨXv;ۍ;9apbi !+&Z3Xh-v+c@ח  _Џer J9&BU-vz=a4e4rR;9 yRJ[TmbTH:&e65& Dl(jPaII FEQZf"h󈉶B=U|r7pNݭS/`7o//[vuZnt^{VۊV+V+bߺ+?Ͱ +7.n5X麋.uE+\瀾n1ͯE$~{w͋脇vl@e2a2weǾTW5Aw/&ζ]%Y<1F7nVtFqEc_ȥLzrjov_֒XM_xzdi%R%n}WUOjǎ߷`7PWx=.rqU^?zVp]+&qWe;;|cC9ԩc@7ה]+cȬQ5Ed5Eo8nF6+T 瘕hho)T[J+A0Y\vBx @2yϘ(KLpBs~&+~}Lc1~9cj}^eZ(0Y;{$LMP`ϻ g:+P塔r+j3SW^LPR?㤩"RߵB )_!Rd#*ER7>a*3,baƬ2ƬQSsM|1]q+f81f>3;N[ݞt.la2y-lF=}nZ@ dZ;/C[\> 1^?}o1]NqV -~G~my۳ v߈)b7w[@ɬcf&w=b܎:>l+fqN~Ŝ`VI.3ZS>uzWbRY˹PI(׌K/eNWw{(+@n endstream endobj 76 0 obj << /Subtype /XML /Type /Metadata /Length 1810 >> stream GPL Ghostscript 9.18 genetic association, case-control study, robust trend test, maximum test, conditional inference 2017-07-17T11:10:41+02:00 2017-07-17T11:10:41+02:00 LaTeX with hyperref package Order-restricted Scores Test for the Evaluation of Population-based Case-control Studies when the Genetic Model is UnknownLudwig A. Hothorn, Torsten Hothorn endstream endobj 77 0 obj << /Type /ObjStm /Length 2877 /Filter /FlateDecode /N 74 /First 654 >> stream x[ko_- ,M.R;.A'Π٤r8ȎKQ!p{ISɲ(uEł,j SF9-S^+ȢgZb`SȌԉČ%Ɍ%LT$X2*eڣǬՖ%Ϭ7puZMdNbNd%5sE+is([I\@J:"JW@RH散r"FR9y,%ZW1F4fU%?l&84|seSwt!Lg'2 {y3Gqⴞ܅⼩_gKoAn>~KvRЭS1y; FM0ζd[nSοO#t+D]nƂr + }˴lx)*Q~;+'0n,BGq33!ix+_5bf#a"$kd d\TߦR?P׳UHʨsP! (Bc/smCEuAx89>_CKDw=Oo(@q}rtY6=w|fb4wףN.xuC+>O5$'+!pK'Z5ݿh+W뜗CʧuC:Gn w_,Yo:**?FMeb pWx4ELou=W7 x*;Ͼ첚)A`R*qc@Yb@˓~:=?>zV Xz} Yeۑ8rF S Ub6gplnh+tiTҎzvI;jVIZQ]!n:sVG@0j%(K"x%~X=f\ qJˣNP`h:*?RQ] v9&R;ғc< |r="@AV?[8*B:dB]drBPe@Ckb6pleDr- Fn[0p8z0Х/a꧅uFhGM֥/\4>$܂;@݆q=&jR=L,AG7 TbT<H), )Tw Lz#zVFmHЏ)Bj-n6U*nx*¨á)xL=Pj'3HEhxDPhN]BT PiL}( e$60߯L%@.:@˪:ϰ58:DS/m"7=(( .@=ɮO*H4{1p D\9N{6bÒs$>ewɀK<* l 6jhFHr^C?5;@Z~=(KK؍ˮ:Sms鑤c5O}.z1a ҉b:Jr 9w?&5_Z7NǰDb~l'p1_ig <5n*%z)25%x*O*=} O aJAry7Tw )dE-1LI5($HӄE]ۑZbftԸ%;0QuC`4Ok󔥍{?VjBK{cg+i(z)[9- `˧a(گ]>_VM$Xn1` Cc x8-/ְ5!bAendstream endobj 152 0 obj << /Type /ObjStm /Length 2566 /Filter /FlateDecode /N 73 /First 646 >> stream xZrF}߯GRʦVDYPڛ-?0,!& ~{N^J&e.j`tOOL0i ơLو1=ZϬhsEb F+Y On VP0`~  LFOD^0<_ '0Nǽa*l$h=JP'0- -:ACN;z*(P4IPeF98t0 48) f(wTJ9jf fY d1K12G+`N vt.tGa-hYKX,c^a:yS'DÃ轢u"Mb]E5)<[#u뛥[~V,79ӬGeYsHNQ^eheӪMk6kf@VyكbfHmFyu5sF\׿)O! e,,'f/էq~~oY+ȽUf|<NJjv҅\\lQj腋<!ne:F]Y'BкSR_@=PQsKR)NL`T)&>~PPq+P`@ %,@v,' 0D%(G p~O8{:x.pvR`ٛ<*FǗ2TK Y1Yq5j `B⼾L w|20;N͋R~00= /I6#ߤO-~}Zs<ѭI,5証@b>M ;QXSqU%Ltȍ1T0(@~+Pw(+,A2E^HeT~y[zz#RiꃦӗGǧ8~XZ~IJt:%)٭$5?etY!zv^]\լʬZV][J-tS6T~UnZRp7*8J5{h` fJ&#ۓ!7i C۳^~u%:3BvHE>T۝t9`ӭu=1ίyUjv!}IC&R JZ}QΫuR Y!Bd}Dc*]dJvB>GY' !! PwAQM{ioRQM@\d]J !X>jРĻ2eVO NW(NvSZqnIf3q1XKұf@joi=_nanjAm,!}*⾲;k(b/(: JɌ*:Ń]ǔQ>K6hkKQ~ϱEzS 5rЉ;QCEb q]BKkU_V_wH+P7L vu;&† ۔6{o';WehrK<D&r$?tj[,;7ʝ)*?endstream endobj 226 0 obj << /Filter /FlateDecode /Length 6981 >> stream x\[sdq~g#)5rl˗ThWJ,KEάȥK~OeKswRUJU38@ї 'Λۧ ~6_j¤Wo.SI֛դlڼzv4q<ٔbJ fmz<<{R2iU2.{[Ƿ{F3rgRoO&)**u͟y.\rzhTRe%V[A[ck #MD_.**nEY fV2q$ >yv>׫^)x7;X. 6eʳ ݻ{d<:h zǘ)gȬ@qI*.nm~3=]w6jd$b`q>ފ#n?\d#w9ϺӤu\Ln:s.` #tgy&܉ujqN?(xr`%ΈL9:6I{\h{Qƚ26 "3TnFmKVk*oSQnSC@*=YXuwқ68"NY(U0؄D-bRs7jCdD.& l(dD{8["wQMQBi?|ֽvTE`{It-H?f2<2f v`BJy"Xzk΁ٚU2vVJᢓEbV܁?c`AK$zVVu rg<5kVq}[>Kn[ јɃUW$z}HC|!%2#yss樻Rւ'\pAEB L!,uBӀ"+]R 1W0 ̛@AUў<\8۟߬cIG# ~Q3* 5Y9 ~%iq` klm0MFN9?fX-"*d`#YgﰋTaIz ʳ$NX{ ]Tx{*5LT ky6M}wž#,< F9gV71BϬuL|C_Nj2H^ S?E<=J~EH'Il +'!-7s?h)#!# ,rlK%opge{ShX5ӂF `I,scZpHx !X0(2s4RcI l*M΀1c /He'?Dۆebk Ro#_D?wu y t{ck Gc N afB?Z,cu q(XBDm~_vCUW_/şPXR۩q*۶ F@" 2}9 Zc&h:K!l086{-H2ݾ#r#0Y$OX'pdgz~]}9@$+)nF@Ӈ>OPnu}ק`Iy”Xi_T{lR*,u`fVĜȘr(2j[&NGn 7Zey0RiXn+LGO@3yة?ww!pfB,؈ev\TY }ZXpU|'?p RLӜ(nOyh] $6;`?!=uyrӛfI? -"`19=ap AiF2:7(B= `䀻jaوW. Fu^=gd A^ltSNP4{ BB HQ@{^@ԁ.ffZ^uصB X4"0O5Ć:wYrL!3TXteX+ 0g"I%ep PY9ȶ uPA-oYnCk~]OhiMO~ i0,.`"@{t]L#fJhm }(M'8NLÏN[bQ !ܟ0EE r8 ϐiYR~.oPdjXCSe٬sλ~ AD q-etlG35(&uб*@p I=ȡ +fhoug , hFһaY4#I]nQUzT4E˙0a11RɳбcӱeZdK# 0Q1QbWO JsWĩg9Gd{iCl]2Qx,MGL My-; iE&œ4PHWQ L *@kDbIMW`Y&yd Y4a֞MNQFC^?K@hX=1q2zs|Rz-,5!;;pXzWqa K+FJ^YϽ@B#a^hb%MΣ[HAA)kkh e,@˛uZ/C fuglg ll>j5O.AHqYqTVSJ% h~Q \%Z `:Yw֮˯dl"?0#.nIs[}&K7|[l/){nbu|?UwtOW单T:[왘qў'C:)܋mhvj50VuEe1]w9svmfKYbDׇ6y-5_h[`>;4hd-"-du;Y3X5AIƷtݡzQ=?G!f!(@qԦvΞrVC~|rfٙe1ާ܇ ,|fj\BlWʥDqN8 W_%5& 5%˴bC5YL(*g_+g6\Z:^@Bϋs.Z Jȭ0ӳ}df"@M`e+i۲i< ioRn͕˻ `s8C* SVO4|z ƿH׸ ?_S,X]Jib.VV3Ob.ԈX V-0Y SvŚ/m}a!՞ ] 'uUDtR &RUND7tEHwŊCx nb-'%/,`&? u Urd-ظv w[}V{53X~:C*֒ Dڑ@u~K-P9e3>QJb!%Ϫ9!Dؿj`:*C@FhBs|ۏ;(/g$o3"2xIz].n.|~"]ltNOs>J呙BU8X +YΛ?zES.D qΒ|9CEc6!rZTûxӹ4t1K Bnx?& X*coթ)e8/Xޖ4UI;kY xh pWlRwH^؆"&{C+N;jū;Sb3 v  e.  ^]_AAͩZsi tg |$)_3(t /7](<.AW4$|UwX; &Deo%RNQuAҩ I91߅幘g%<>[KLi+ mb2uzk (4}^f܅񱣁>l Qy#,9Nś`+?S=$HˤSJPcB?gm:0A*aA°FYފ&60tZ!*4陼Io(]ř;wx "xX,QzD^%hqS4VX*x_T7Z QҦ)mlL͙ gF(::rx% Pc$- ^t%|,ʕeHk g>aÁBFd7NrhlGr{bvِj;dRP`Y2;pnvQ4K7|Y@=qo&ri*3h1SF7y`9t4θە٥Y[.:i}BqqVt#MCU8fz{>*D^@cnelf̛%}llt_Msm=`^qi[ڇYbkyVȂfcǵXR- )XR&Z{π|lT\yH#*k.4ʸ̾ʆJE9',jJEY辪z#o-dV@ӕ~p{x0G5(,tJ̈=^7`6:A }fXRݐ֢ф q"VOJ YsO.a] Ǣo2=5TZ|:FӃ[2FYWnCXYCtpZr!0F\w ;&x.Ě]7IbJy_ (sB[t;`bXpY}^WJ/[p=0gTSɒO~bmd\K;w|ҿe:1 1 fӕKɬQ3aL ;d׏Ġk{C̗-47F!Z,8%z*ZV &pnzZ/~d@uO%e>WbrDرF<~v9&?Q|?"3q^2mȉ*<+HIAZ/_(Wh(ĀugZH6qs{ RX% F/+KIkӊr- Iʮpរ^݌!҇۫zl'[Pt29ҏG1+j $w1ayei'U~s{MVJF߷Oendstream endobj 227 0 obj << /Filter /FlateDecode /Length 7143 >> stream x]YGr8֏nCΫlk/V6vE~hJ");ʞ&Z,jdGf3G3oo/nn~]ϋ~-<<9S77eKS:?ힽٻóm Tf^| \b 昌 yWs*%%'d}1I>Ŷ?/Oq<6e<&Zeڿb5$-=ر+c_n1X?\Rp+&{awC0#-=M@78k|e{O`-r ^=vama"͇ozF3mWMFb Z炪,wC=chL^߈.`79 1!]n$:w= #J c.D}c"{oч?ks-@3%x7?ZS' '$lӊтn4+4 b O+8鍞>?nf 9%aT'I4Dwt 4cFQxElѳ <]5+h6<9Pf6tiI]i&5=kz+;EG#sr[R 6[`h[$B ˞Eɔn>̈"gq_1V@&JCvS`]@=`/уFǏbrn^@1ⶀ;&~o dп/P!II +6‚X:rAXٱ(bXt`W9-NDd6g;1`KF ˩sp9o/Y@Z2!a [mR yT>r^q1uiV4JTWoqI+q$P!Et <ŅeK ĥ%(` s{.zM&X9͗l5Vr8+r,)"+"9/`CEf'LƒWʙZ_Npc*,<ҡÀL{gH/;ɒO ɨ׫y}<7ᐞ%G8ޮJ,XPԿ)j9r#U2x2<Ld%`"tE䢲t qmo_l\ք>>`}X'3]g?E݊X]IycsN] "~1 H^#jQ!l_~>`nmDk[RFhXm'b8RB/$WHB!^"&^N|r"XZ4U۬՛E[B \Y8W tRzQĖuO!ʱu[%wEN5MJ2'[Re=pmbjGi3suxj}GhP4XU$I$$[_x?&3X$|"]%XKnRiZ ȧ91qR)xr"sLʠ$҅>_#l)4//@^-ԘYK\2 T{ FG_/0VreI1U=8oбhĔMmGs=[#4%ź>.lY50̀Π0a8:>$Cc46W`W-j0$ eseRpH*Rl_bW>t;yM 9O/;0|`b!>vTg}X,~xkf'$b{x>hda l.: C,5/0zwgTqm2>4en4ȘI> |̀m<AlǬ6{y^#ZL%! FK*z6o-cvjhO+\[w3B{Q\O=oEzxvPD'6b:gK\3j Gz` 6)h|1yn3IKh4匄︝%%FQB8<]m`N /|i%ヲJ.,-k8m$"RjP 泰=C9gdGQq֦|ANưG. ) Wi%aɶKb<!3FeU AIl bL>VA 9ow(D1xf"梼緵/w 6O[k;r>:dEjf6#LRZfJ΅)P¨%"C#THU`RU'!Ϯxj*QUvCy h貜兠Qj{;p/JTLc0x!f}V_97$0?pt"${d؇uWq[HJ Ye.fܵyxXu9y 5IVg I_1#(g6IJ 9TҜ5IrIb21")[G9` z pz0Һ<71»ZLiTkxp I#$=1PK@\ޥ0F9Nw'_b ^-M1|;G>_m8  w9cb94_^{F}= y::r@WO70 Qj^/𛢜RfZZוn*yVX RzFfrˊ..*f],x y}by9/\ÏW:lU*8ZN2ä>cK&|VNGBY4qc E-ZS쎠aW Qu Ԃ'h<6:Ӌe!^ |_.bCNgHnW;O 3yy%(qʇ)L⧦c'}׼jdjXQrlQ^UY:~١RQ>2RyyadӕքGK|e$Yt/DJ&ɣtd>N,Ɠ^Y@߭lq4JEua,`}{XqՖ+bjm џ#)#p[Ff1XɯC?g01`&6CٷuMxG W]?u5RcX\:ѬyvXAΦ|wK|Z` 5܁ALMU0apDh i$:QM8w}! .jlIyϏJN^q*  Yۀo'^%G9ALd'qR;1Ȉ:*`i]H[McĭtEj<01ח„\w)LޅKa$Zݡ@~S0,>8ZՅ 4Cu7N^ÑTwYvi*YIWȦuEQ*u3M7Wr@>ͻƂFxّAlV?3uڒubq&8e.t-3&=}Dާu^aOWQ:䪢 ]C?3#<=^ge]2hq>F^1y!@jrA0KO(q.7]4L MLkk+D1ےUq=ZF顈ȑ#Vam#ՕMhvb S3 XkjFk485۹Ɏf[M9%js&K. DxX@q̄qlC<5r?C6YYy};)xxܺs8͊t4y$|g^h A9*\)6<"4'rۂs]m5)ŷ aj ­2-{AV!o1J.hiEE;I)}Ja'F+ Nx G>z`yctYeSbW L莗Eg3S#a* S ډ޾I"O [%A:qoԘ[$j?N5驁]6[#LF&#H|xYSe/}bCƅ|`߾857n^!^ <ŏJ.ĩ&*&>M)H>dHRʗ.1sU=뇿 y$ܤt \Ͳ;L_(uy+(91"+HKSbM'hJoendstream endobj 228 0 obj << /Filter /FlateDecode /Length 7176 >> stream x]YGr~Eo18lȆvז yhH-9MjYYY3$bU_NLr'>{s3bw ՏWuٛ?=7'SQ|>;%y맨ɛo_|-&#fFL6F4_+2*Fk5`;H# fGNٸ?a&h"E?J_O !waƨ%?1h8yߥAltgN?-C*jN# @'ϯW0:|ƨe ><YqRhpZkX^}z}cBpƆnVaٰ`ŗa0koo੓A ɪsݧC'" 'Cc!tcM|r97 dH(`?EzX%noᄿ2tj95 T!>(Gmvph1v61@zۻrLmnӚbFfa'1ޏ77+t7ずANbEp-W˪@far,2ԸҦqBHԸ2LܒV)$5Pکe+M<=S#X&mMᕃ bďL͛PnIJaIQ?$ѭ$LR @+& t ?F ? R4sII8H9lxI% f:;-LӠ[zPy.`Bt2j z9É1r^ gVMTL3LNރ8 U h A h%H؄ 'U}H>Fj•"g&@C\RqXD x RKrJNMNBڄ2Hf=AP`Y=SmRqF3aAQ5Q4f ( [!N2am~_|~y 䲑做q"讋qjDm'b8(~lj'!!@5dYe4DAٰ "b1`qQ4{Y,4Lh'L8`FBڂ0$?|QA @lOHBRؠa%4lbyFpNtJa U^}}0~vf9[3/,v.gE$n{"aWg3bi#m{ I6VԂTn y"H;zGZ; (J싄p7&[ӈs|Nah;(lvg?;=͗~0ig/]mKf_z%w `$pXr1iä󯙛R6#b]M`6ܱf,E)q*6 ӹI[yjHM&B@N"AS,3Lolltșx \쀩 d ln:c72N^ؚhybpqRTx0a;~a,$gVXyg{yۯvLG'w z,lG\RgwȂ,sd#`C> \CDs%ʃHv5Ee7(A %:4U|Y}+O! '&$WVSt>9ZtmT\bh4F}*txڤ1Y03i橅;o92GM;`lI(qd)]#.|p8nȜv^aNAZK9ԶBy(ڂޤcuS[6CeL^ے,q#.S)Q^1Gt ӌ (OuԗD-U̱2%yB>#gLYNε v 0Kn7bYgQc$zR,;qjN~7NV[Ԕe; :.KK S ƜT :-6}W)Yu 9׶t]WKWm0=qSQBbD8oYhhs v wɔQKAf$xM ץ0w&waU{'y(b %Y:5EPoex%ZaWiN IIg'B8'6žA]R/\Xҿ%[Vq%tf8v-iH'ZfLTOqH|ːN4H99K\hNMNw^bB*,n1?Xl2&41e Ѹ {pa*6f*x(8 mqNUr ¯XTh$?U4Ί};m;RCl1n(hD%-uϐ'M`k&Q<5Kfפ b/\@Is+'Se`A6Ʋ!RˋxعεZYvۈ1Lծ8|ZY01 zh807] CT.gjf9,by?ޔvZ<ۚ}Wb,?Ib|[*# ,p n+)ng?͉D Jlab:dRMFߤ\%Y/?yS8KBx!P -`n#PVADzysWq,|/\fҲD{BwA2k wn"*s9!n3Г78nCJ"TͅT $ l ʺH6Z?#}nteǬE.vݤ#AIC]cךxbD Û%l>jq@ xl.c0eЃNr](-EIxﲳH+Tf]99$ ۸,̯BȮGŗ, ߧ'$Q"YM}gd\*9 kMEi@S8KbC|r $ITts݆픚z{5rh-z$ov$ģcc"jvmNx^/{?wLaDyQs.zm<&7[--Hc|!aafTσY2ۥ>DUĶ;5)| (T`)/q_\.jhy=M??/%w[ \PW y _cdbh,Qpt"2#:ON]ŶU-Յ1L4r9n=\aZG+E`D6,#myʼnvAnzx8 &bc[URS*^.OvwVKyhCopp0Jh)P!.tW2@:SX8&]6$IE9W3G+1IpSu"?O| }MԌsӴa+֨߿@ ƈ=7SJC_ɾQ9c>wCy%rWMӬtMj?<'mEEէ$]&6kM8b~,[n?#` 3Ϗr>6}$?u?"lٰ:K3MoLDA'nÓ*dDW(=޿~Q j(3:?^> stream x\Y~ Qn>cZ䥴D%Ck8$)s}@ tPTDHd~y>QϾwߝ_hד@.O[N͠`KOHE+idm:=xxgzw铭~qzND906[phc]3܏)i+~xA"Î0Dd3?t&x҆mzXe a 9a9s`u H_" [vtzbGcU]?uC Ã4jgyZgAo2(|N9˾}8V, (J]tgMq3dʹFNldgߕ Wp |Ο(׳,z]$S!7̑g.P:UN.[ӥmlacd $P`W! zLs^9ԅ$LJ! TyijDN~gb(jwK ʆ`d+Ah  Bt8"3u+tpsã+SNqkƄ,g3FFm5(0 R4 WR Qu t3Cw$ e|eS$fUO tA:^BJ"< >)m@ >X\e*  K+4,)vv-_%?6"&h8t sS>Cd+S~𳯱oAf-L7פut%OqCyG[ R 7@ /bhlGNj gܐ@j^ż.x+9`bCgk^C'pl&HGMX *Ġ! 4[\൙2)6}΃2->_~+_bTb/*v/hBBzCjoI<,6v.!{k6x'-vnJQ~zK]/yx0!_#p}v]TUߩ={ՉcZg^DJ/AxZh DvW.XupG>]'8oN/ R7Tr0V,KT];\6K ޹PUi[Ρ69! |e#uj{\#y9w/}`Ɲo6#Mf$rUHYEX]@=*&Y6f4I,цzN+又g߲Ph뼰lMwӛӍ#iCΗ<4 /ze{#!n{Uف ;V$EA%ʒ L JԡG-{ 26Tb &$ vuV)=GrqW91u-:I % z ͒18$86nx C3 E6P옎N:fV` ]1 F%AAfyݬ\I! 6+^xNu_A+;qG[e=r!‡,Ly [ZP(|?LfQchc{N 5~36{1' M3Oҩ ٹMvq@rAw/2 5U4%}Ig`.S;wN)GIK"CU47 ZIWi@_6kb|bAZ`Cx%6 Wa1`R+T_uLtos<]ㅝ Ff`fb UQP?.eD0* O&Tw3ҿC&;#ƽ ԱyJl@|GX~;J!C^u# Ԅ_uzɣRPO!;&t,{+ѥϭbU!lWS+Y220%zq7m-l'd4 o8"= 3[5% (GFf=*<y0F`ǂ@mR7^"fS&h't8cJl1>aD|Œ-@yUU_mg![5SS19X۹`&+fq0cRsl2mI$ }qn͙2와v_I5B ؀{!2pU̱Dʷ i5[0C$܇ R•uHOyceϛcDE/ۙ5+<.KOj S0#!L a.qS9K<+8%'hiqtQ<G:ӐT_A8MK-au-& +q1;*opJo3 D&.7o"h}y v j~uX1DwFw PT{0wA%!Y)m3$;8 *gBp&9ieN@K}L֐C/0Nh֖}C>g kLV-1VLhSU:R VZ?7i'`ʢ2hWCswsPʩ^ D C@ hgT}akAr+ k-"Q b&dYW1Vu<RQ 8&P@QmEٙϸ̄ w@L̤d  keߛB=&! + (mZ> =f]:RM~.|uUJ4J-b#q"t%aڻ[f,MU)ۺ/E'eZbwGtC&1M㹦BSPLBɽ6@wW2[J|>ΠVܞRm \X\CG| ǾM"aPMW-#+Q踤!BMqT!klDlUf1ds0d>ī"SL}?Vl|St H@s 4`SN ܒx5Ua-(0m/[@P8jnm+ 5p j$*72>79<^Sb5h6i$ >6筩[Sn7ƭsk5MMۚzBkzqene(HSOݠW)2#.Ew+:JC,ElvQTϘGU1i}+U#QIkwlSp:˗CɌ,,XνmQRE;7zO9X&<OLU!K{\Rd`"m;#PI)zN$ XY3cDܺ lw9վh^a7Mc O\qXLי&gɖ8fl^ V XA8gH' DW8C/kp!} 2j& 5dx+]=hb{G7'qrɻ-/-!e'vT^Og,j} N#ޠh?d/=bseUx`3Z 5vo2 WhiE`I{4Zx0J)ikf&2 A%gʭΘ(Nr= {F;2\]:?B'6Y}*q1 (o ^cwV_ +x!˃U!eRʏ ?MZҔ?VE;Z@DMuJ;x8؆W?b_`;1r[!9.E!CqKc~͠ bׁPղ(% C"Vص%GHwCxJTN R@Skf1  xZlh7HLeM}5ovQi@Z&Q=5nvJEk[5.v,X?1ޓi3U"Ș{c|1T]m71?JMkt.b2e% nn8eI w7&R 'T oSݵQXToIz=$m|zy%C}ǔ#qq)ʷ4̕w9Bb){쿌(@JQ;ge&xJk;+NVXHo:b@f k XLtm.GgkQ7pK;cTZ[A6ON ]dW5^pz?"/S[MPLɖ=hbŔsm{nqFd IILvA!" +Ƣ@v&LU Ad7E,j)2hkhr䔍{dxwOS48ajbt39.UM祇:27ݗJᥖW8D-s"T M E˙kX 2^y8DL0vs .!Q?,&UNc^:vSi{2oq%}s[YZesF5DhcBNKG9כ.iiFδ^J(6 eo˱8Y`y s Pٺǿ_H{GlSEχ>&uj >S>}a]N8yg(: O_>? )s$ƊPJPeYh4/^h)YnD6]аNXcoSB]|AZ*Ti@®̅6=2+b_4pt:=.$2 =^,>*RqQ+F]"[-9yAar*, S=5%'SPaCH{cw;.`v$'^=R#<3E6:ϯ\aZ{Nh4֑+ܾݗ :9$bWaڋ2ltg4iZ!o]tfmQ07.\4s"0*BnE-(YhYfʶnO]8*/\-ص5F[fNy2C==BiK>BЫkA[տcYzl-Ogk렋EkD$õ._3U邯9-_a1H4"ni.RDZYf3xY T¾/ "FEJムD23Myu m]HҊ0]Zeyy-$ѣz+1"x TN`mו-\ztU  b C> stream xZmo _q")" Pt'2EdYBsi%( x!~VND#oG2km;6('rTNWvoTFMDkc^5_45WEFei.3UmBiae0ͧQ:ecIl&4,kI}3`!N{Abߦc:m]8s-Llt/p$+jj# 4_5RO9ƩgNfr.lTMuHY$Iau2v/H^FX -eY}fՁ\e A=bsVUp6;ޓW;;Fm ߍ`V$H4ye >E*p8J,b`sF !bnYs$H=g4% $\|ޟ{mcb6.^<Y9JLK|VI zS'nUUcy^dY fԞwE'V9۲AgvVLtPwI[B cPv)H½tS@FBOV!":=@QzShĸ\m?i%tꔫ*'\KJjʙ49;pWT'nfXU/p(9Y|fH(U){8H^ВduRWUQG炭H[z#._>{D7n {AXҿ-05 ~AXDg|(G-;ºAIn~D@>2X$=<}o\,YTOS=Un@. ѾUnH~DA׺|ި{G%w`+&r-1^T `W+ֲPU=,@\Tț]7ߵH1P,y7e= *,0Av:3|: UAP C3Em\l⎍\'6H1Z w-{4R?wykvu_Ȇَ)f.Ia, H¼KcY}=v#"xi K$o/-s'ɭ $KR20$׎qP 6_. H"+)Iw$dK޳^̮cdCUgUF ]BRt֚=@n5-N_7O\G4>ݰ|@rΎI[G>% 鑌Hli[s"IV5JCj1Κ 9$xpϿ{>6=.d|}̸TQ~nšD~&V3S1#fJRI5^ 3l! Z( 9}ΚOџ[|fc-H "\=?ʴQپ6or6 Q~7U~jmrE}oA5,,9C@nT>RgIZZ(ޏD>[xF&p>V:2AJP>9@ZԾ- vF##O2qj.-UnwQ I+IhFtЪ60y'PH2QfpQ~IdT> /NˋԮ|r}=kiH^~]Hڥ_bHqeԉSӫ~w[Hq~23_'?-rp\hm 2p G\tP{ 6aEF^@#Hj$ <#h$?Ͱ[o`ExvUdؗG`m͏~?HКendstream endobj 231 0 obj << /Filter /FlateDecode /Length 5333 >> stream x\[s7r~W+ɜ*r2Ƶ-sجlm<Q hPT%\`v:}=3E?=<)0fLSRo ˜;8lPzs8ئ|pOv'3y?MK)=^^iq8A4NV-5);x=E'kA8mGaFh~;a:/oK&1N> N瘂u.;wdƵ*%}?M8j 򚒋 V b8|_߆tX7\\ n%95vDVPjΆ:x1BƐpv#G74"IO ׍Yg=ubr<{a.ވcڔ7˲Jϼ[ip9~Lɲm}l''`a+O+ ѓO^ ,9)ڠGh׵gMeqNoIS}j Ɓ=92E5)3:4OK월w+U {kPWhSH;b=,JyH䈗$5i Q%!A;=JmM`x 3 &Cp؛γNr<1hElj8?y|_Olw{ߨ5Wq)E221QRvTfdd¼C1vFNaKlay }y .CzLdJP0;ۇ Xh0zߊͧ>YgFq cRsȓ؏(>9;{VYnjbwR'PBٓL<,w#G[l@kw"Ujx+ap\ԉkm0m 3 \ ۘm1 k5rc]=BuvU>JkNh4MO0H_Q2)aTFCS muNpV6K7G@FmUJ;WY/}PD6jyf2phSb?`=ifa덅Ng01X kjTZkdtAXI%>43E);O( oÎ(쏛b;=[@1sy\\tH_6G*}JZW!: $?#Pp5PwD3'  s:>~)ɖ`5S(a^柷p (63o}%qBDf3oN8`_!<#"dM48;7 T:)ퟪGă엌 lSםVx; tlOF؎uP_0M!i˳{y2 5^osTeׄ?X ^,k:jIB-nf锺+K.гk2 T+!LW܉{$F9䱣rpIX1ɻ([l9r$][mf5gU3PPbR۪a_h{3D (nW -HT1 ?h#Wj%; sȯ{$_= x^wv: MQ=F3-M9e#Nl+E<`2nBݜx#-ܐHz&'Eh)[d8 Fmҍ5hro?=t GP,SZ%D8zQn63?2ǘ"y)]JڇVTH(ST)Z Tt:Sl Y(CC;"\|pG;*T ~=2՘y5)ƁccH(SnHRuSs\'ܠ8{NBō3H@ /K7 |TRW4wb{؝@{n+}DXKZh ɱJSHU=^Ș","JAGo~bN/BfqDQT iΪf8I,`xvhR$k/?l*P ɼ\6Sa'7;/E=<5y}_{ju,{tۮlSO`豽Z"/5)mm݀K$,ԪyD shP֖Nf {^"2;~,׎車",|6!d ^מ?r__#x8R)%WJvlUŸW NK%Ҕ{6d@€J׷bāq7)ەKFHmZqƒTo'F\=#ޔ.]p&V#&:Q=! !J0ʔ^x7HIyRXΗyIɖt^ R'-JW{%S"osN0hME_%cZ| sE*1!b1cEK|]8{sԼ@xٛr }u[#9 eכЬ7֮6E4oXx[{' FbySj['LN[mVgeƠ¢JnƍV1mGm ^ŏ7U6.@FbgXg ɢ|ZDj"C'I_qI*DB+J2Vuvb*tMc@z?Na4ǚj,z-gg)dıɢHlq@Y) z]W%Ԁ{^^{1|r_{4sB> stream xXTTW+"*FػX~$jb2C&mAPf H^E "0X#jXbb,c#DCCzgֿ:u{{߾Ƭ#HNl18qD|8RllR4;Rk|>p`F*>v)3l{+lޞP%34v[ޡ{ޘ>=<<|?dZ`ׂSl}Bmyx<=lBm(=m{o7cqP`[@af. \geV•{VG;yx{1uڌfcÌbe1Zf,3qa3 Df#3lfa0Vf 3Y822fYbV2U?ƉY gF0V ƚʼ̫0f .c2O$K%m7k7w0O3.%ua6rYmG[bh݀[tofY}6h 4) ,M^j1\YnF%u-Ү|9 o/v9bؐ2%N$QȢZ& V+'SiYE.} ]͓~} nT֐%,rDшc  t!yG\/ k K´dp_wi,5ݙ=^p p2vU EI?zsPu|]S, 8wLAYNƋ8}}nv+ ?j6wΪKEbĂS}F,2k>y8b-dO[F){;N9YpT0'<" 8u)eV^x9)z`oY_a_ema׷|)22MS _@EfSPhmk$aGRq/D G )ꤔ]^I@^jUI4ho %TWt %Z>T*',z((>E`sͩ Cxܭ'}Cwsw!4}i^EgQ rŦQLNό-XkڍeA~qJXnz^? ۛ r+qHֈ K$?Pl81F2]2 R_Zn[n M wZ`RJ!s܈E^154^tB@N#'&ܲ'vx5GϵָS\k濝\yV',q Gqk?U܂/ .J77Nj8&(h~QJƃWo̺;m?ACϵiGI"o y8#р ف*KRkA''I6QYJ`-]fqIu^}R9@>Vi{ ]@>05M4 Dݑz qQ a}=X]`SDŧ&f@hRڔdp`>T+!i2ɡ,Ģᝤ +զ R38+јh@*mE\"v."i.X]/G0dU@1p5{:Y2Iȅ{-%]^hfBYi<엯AsDr:7w~w@|Isl ͂ {cT\,gO[~6|¢=YGi|~z(؋z=6{w@tghR2\UfU}VK07N9&Zoa J6m!tñ8r#2y^_7WȩE-` CWu!~|a:Bd@ˑijHR1ʶjfFD"ϛ LīFI)k >=/- e>cINIIԦp|5& @; Ncb$بv:.dt&9CH_g[3ZKhSho|H2؟ύH6&IPݳ|:#;)/p˸Ij<%%: 9eƃ'6}q\JK^v:eu/NO/LP#d*C}hT L JЄk# U}&5E$$5 M2N%Nќ*oCyťuJ*B%UxdmI/X#߷7›҄|WidHS(㜯.ƽ3Z[+VYt I:EFL#m˙Hg'N8[~7Go^KpsW.C„-m]ox~G;1hݓF64J̯ˊp @YCŅ~AV?m-"!V?5956cK[2PZDWDxOy7ݱ=TT'uaqkYyg*~ZA ]?H^O?j߽Y+O[clܶeBe`2lrRr/- 7?01)"D.&7Ol.Z^25biM6&@Aμ^%QEaL[y32T NC˷9Sii11R+r=w?+q.y,v)^%c>ݭoވ:GcjlGs)>bj V%^E7ˈ\tu4MQrm_zb2EvKPχ(/eu_+?_~O8US6kJO M'J{)ğ2'J1=|AC'=:h`GՊzW1+vj7e@r 8>{ߒUWU\Ϲۋ/91sp~c˱CGOoZ?tv|4m6YjHCIo8n0OMDgI"Y6-8BQ1~\GHLS-OMRL 'zThn sM4O,_õsrcHGnuuPOѧq䤕6ؒl=EzFFAV#o?TTwĶٟ8!FyHw_bH gp$C7O5ץgZڎ]!"392p^Uu ?EIr ÿ*8IȀU0]@ ȯ3ə p8~Sxsxs2n"ӻ"0HƋd2K+즜C URo8\xvqo ([ĜL!~qhQ=R2]-'8<}xNa&JRѩQ8+:gΒ\ٞ-P2@0[bٿ>%uV ?endstream endobj 233 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8419 >> stream xzxWä́+l #SBP{1 &m*G{/\mM `:BB:!Kzw$dow>?~?53scճ%$W8Ai8?P)†_vG }z4&ȁwZ^E.Q=ETа؈~Q#F9O1cXI&p#yGOG%y]X瑳}C#59zGZH> CCWz8[w7}~hp<'yEODȺ~Emy^a[0rQbK=x.Zgj?;1xӴ3ޝ9|%woO8iCޑ!*j5ZMK P3pj5ZO6Phj5LͣR[8j+Om>ަREDj1L-P˨rj5ZIM)'j5DGS zE͢Ҩ`/BGSԫk\@I)z^FRH' =cV=wUW |-_~~26ˮa~\:nu,tzƀxrЀA5 .;('+!gy1~!s 97tP00j>}G<WwmKb~Hr6HVf$boc7{%l2A.~}X]S=ga6uz!8S镠r ^a\d ~8mҫ 1G`";|%|;Xx6|.D=WҮ XLԨ;jڋpP?_9uBNnf:%),恋{ Fz9+hrӷʬYYDUkp ?9Yho&`xӃIQѤ+v,ڠ1dB >+tz $TW∧Lצof8 Mjj 9huDp^eP qBm WI^&:3kLj|ɄY:dRE=X99I;mŲoR'/5櫷7AUz>("Aÿ~5:V[,'q4P5ZM6~M3yO0j| `#^ྸh,0 Hpº[eءp`:Pspe jjwXCRnrW-@gϟͬ 6}>\gVkiLBR \AYÑ#خr7]K W2EھWngq8l0>>ezOD+Ѵ 1eKCg`0+=L#jGGp#Ou10` r*$q[6m>:*<O$x5NmfQ'}{_Qɤw:f]_ 5pLEYm{"pOlp3\¢Hؑc\=?Lcl %V=`Et̯0؜QShsDvfI}M'Mt:uth!). *9CRv4,WK;2=Oōsؠ*H!AFh-&92ߜY+Xx*.ˏ-ؿ:o*,Y5:l^|UWNG{RPwγxѿ!ZNL>M0s fo~O#T3hoc (Ńi G&%3oCDޟݻvmFIH="4!jFc vyM҆ H"y}"4~M?)|GfFD.>+Af})1fI(uw{~`7-A 4}ɢ4 8$OwX_ -pZ=)h~Sk! L0 9y8ѝ43 ތvzIC/p`+|ՄX(j!ᦢ쮀Hh0+ ؞& sć(aC6&xl=1HLʰ#Y:]E׃Am%.}ϏN.{z`qљխPAzNG() ُֆ@rV>@gxih\&}X^<,Q/VK~W&#isUZA#Y#DY U3j򓲔91SqXd($Öl8 @qJ4 ygg͙ ONE`F0YP뉏nl{]JCq 6ӫ00NED(YroK6`f,tYl-7Vf4ljt$/-|wDl7'8%8RqIG;\z6=v&X;a4-Fsss#pu j8; R!>%%-_!ӈ!` NKd`o"+F%{ 330e:1jA{TU[ZK kI7l&\1q,v<M<]ȟN{xu{o[ZSzMSerCz_pU& }Dd>bQu\o[K 2/>qVB|luÌHTIۖkڨ0lpw%bE4TtߩUp«|= k|5B\wlWl&d.2򜍋2*`#$|_@pgnz5X$~ DIJAVyrBGdҶJ%ł^nE[Gl\V<kTL҅P G6ZFw3I A1k1\21Q`6ZOd5zO]Wuw&- Цs$`_7#R[l^@xLQr*QSb G"}S RtUD^;0C%鞘NVPw}f#q^AxƐQG"s=*{bE *w\7U}f 'Q%X\ >c3j(cZŐ Q[ݥi!JY:m1/Yr*d?#n@l@ \dsh+<ɩ"뉲l4y0@oNɢz?lxBy{'#|41 "?MQi8a!4ӪED==wG,rc9]qx $n<h \9% ; *FhBC<\ߜ-r?$B=/=JYH/UIDFԕ}6~g7C\G mA{=DQ4̢Qw~?/M~#?-jTƢ]6P&.@ypr=wgBˡ=:wL/ g]5,pWm 0_0m`B,-9*ԋf!v+y|]=MY U]enJOΣ f…﹙|;eI H;(*D t/f=󱛍6rkJ— i&evcm>`<@=a[Flpֶٴw6 V0ܾ#Jn"=nBby]u( `Q! dׁQO~kaxiy|%@tlDҿ5ոcbX ^>~'Yv6 )FVH;8cŭ +Zmu˨ />_}dyJBd4N5vi*kLc& -z2喎 /O/n$ ~YeE 8ى7L锠,貗hտk:IĿMu Qn2ȥ4R:w:u^Yluul=]HB;XЄ>(Wǜ,u>+k 7BX3/^y∭Xk$4u&HKl-,N'ZcqJuINOGn߭eۮ\iZm9Syv%w1eLMtk~zr_Ckۮ3 ~=6CЅf8 Gl9^Î2尝cdN( 1Z۳t@h7Ptx"_?[8S>lnzj&=KUmim / k҃N 9VjZP)%^@\c9˪g- p XC[>=tkߥƇgj6huC昈tZ~"I%tCs~A{(ނsȞ80u{xlprw_]^u6C.?`:}P+v[M/s ,ywJd8>5_QڴwLzrΞʑS ":1N1fK*hDYw->IuU`bͤt̂#ϿrԍBiCp>MJQA7K"( X.=$$ '&/_9)Kզ0cKӢ)-2]/ PŘ⋣b#=.(#^V&@}&xsݻm,&EC*0}r Kh{1GX&|/ ulu\_tbRi5Z g|~#Y@$&'#3C1}ucyM56f;bC댢Έ}Β+C Zhy{<*WA2q6XL(}v{۝ï>XLv!GQmx{3qXw/n6XI n:bdW7K s9N&. ]"S*ɮTV޺#Qa׏DhloNzGZJXI؉E($58t-RkTU| ClnB5Mj<#oz=mh/=@Έ PաU\F(<"xW\ԩA`7 ؆S|1Å*:)HS$RRo2s8)R 3 ¤xz'?]a:M}P=1p;(U0/s|Œ0Ϝ:gW Eo/g݄[ WYoXmNqYrOTb+F毃9Ee c ͖Mî*Gq+M@`h#yT{5YBtQD.P8 ZW]DuA@p=sGz} M@ܹ I&nۓCYcakuljn'wg2k ^sG:Iͳd$-!æ  ۅzQ ;?}R԰fendstream endobj 234 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6270 >> stream xYtTeڞapQ6 a^@D@@ (*HQH @`zL&L2%;Iτ4B"B"(. k7?&rr8)䛹>}fb޺|Yl3<1K"|`&o~fg z4BO8lvJ?E&OȘ zk׮Y<{ŲekgoHMDG goHM$Nf^jBFh݋/fgg/LN_ų wŦǦe~3E1{Gdrѧ[:?%Y6{{JLlb ܘ/f-[eGvnظ]݉Ik֮[t+WŚ d= bcd=ǚ f=ZZZ aZg-agmb-edmf-gmamedmcbz555z55ǚⱦVƳ\`q[ pĜ?g+׏:*qz⡉8OOzWoS㞊}ɏt ^4jxE3󬽳>x5lV{h!1~gKЯ8h7EIt<IAB7CgPTBOs^~MrNfOv4B&i2vBӭÖ"(V8k!Υ3/R%#r}=e.yf*>ޏnq=y B"O|Պ PJ@!"@dJKZL7ħ]̑ʓ qrN$be&+nTtQBш73ZN 4_f˯**VZIߡ`\]{~;+3̳[0 =կ=p)f%oÇ͠ d.s2\8T bf wEP)6o;Q3.& ?o47 VѡP7PzE<ˌ|=np<}t}4c2]z ?O2_8-gG89/1ߡL7-z:57-`" :\Y!;BD1L&#e^~'o'G t (1P2:^.]"I[4-"`;mF`|4bC[>7nZ ~.ډegQ̕Ɲi6O1ӃL6Eļ@whF7:zIyzz)=ɐ ۘ@0?9{5<^EJ]BHV:4*LHERHR9r2;tއ\ĪK$JtJz_ @֠c ?͓C U(ԁRO132yҹU[K _ZY5~`=rn؋x AF's+%GNosz3>4SLTd3`Ƶ=F}upug+|QFi:U1j+#3`{k/ѹj2w8 =2*`s%NN:rꂣ.t"LBSrF`*Xz.Zz5}94彃}{將H2/s%.ǑTi\<\4_;j щs2C"T}ԮuW-.G/lJhPUuMAk~9wd=6LR֑~=9e/#v8Vu8NEuPqߍ&VqԮ Z}:9T^{} ߦw衜jJ2 HXufDW"/01}3ߢc+64Q863-|b+OIl#hƳNӈOLX x*u?p e !U:77/iNG RL9|JNr\0Lhy| G"7n $=K;T1{[RZ0V5uuv\0yg!fq|cndX[0w0q"яWđdׅ6JzDhQ+"Yw?\&>g^5=BCXfP t8)ʈj3W o\GC-,q?сA sIkG{:D9͞_BUZZB4Ժ:OFt|ߢGYTht:ܰd&=ig?A_o֫-"|:ڠd<QTn& e8#3ui! MS caZB-VZnM7EJeC)!q;8!/Lb3s/3:0 :swk#DHݢH|ӟHQ]\ ߎWv/e]ECB:V5t νԝ@b^3\5WJyk.|&`|Ƿ>86PDWH0Y (_ttUђTiE<40)1ܒ7l3yduA:d򲺺i4SfV/.q1K܍Q,B 9eZ"\qZZvBXOVnPxzt ~AWuzYEm̰)̿YB|qsSoe/ bBs9ہT. ݙ{kC_eR8 H D*[Q5ܤ{~v%؞mRvf(Qc,f<3YY}|3vNAOwQq˜mvhFSug}q~\/{fZ̞_Y]\448˲ -U-=n_첶$$$'>'gpϸi7ۓحb6@%KT{PЌ@~"~L2 ȿTXܣtaA0%;)b`{͏lVE"ѩ4D2Ro5S1s GU kt3LAS7~t=Ipe wnl]Pc5tPC%,9$X Suhړ˶dSҪ%UM8t-kdP5 Stx IU)MqQڥ*՜,q:F: O,[7hXcn0:I0 rBPI0Z FeXzF:[{.f)M*-5.n1'Ai^ t~_7nސSj2I]O6kC0!Ys-^6C`; J+!JKH4+d3ڬ7;n668UnyZ2˲"0L`4^?4V#(B1í bqSpx NY)|*+$ )F Ja'ţ>~vy w/gN>(AC`?P?quI:K kIlH[SUcmԛ)s54m)np>*"P\a{#"䮭bqBfV!Q~u&cTgC>o{܉ΪbӪUIeZ^@Nd tYߡ;\ȟCQuSk`_H)RۘYwUgr|vV  O&C* 2=u7h'yy*)ۼj"?B}Yݎ[gV P|fN{h2f[l`GH7t O}{`M9*h '.: 8ҭNMs>+vǿ'[sNWyƎ&2]xFysÃRlX%M'L.0%TA0~o}r8hN cDit'aux4±n nt6YT@*;ș_{3!J^bDo>hIu|t Dw{[T}!x"ذl @LʤRtRyJ!3f*=ii;N2O  z+F &z=p cAL)KF`כyBE.t_tm3B~A?~]>" &?Y ۖmsM(ljhHM¸9;rs㕏P>.zyn՚Ad(2=2$`,K̪"GE;1.>םم]hBB*ٲ1&6bI BV7w,E.7[\7n.x-/&]9ȭЮ-\HI Pm~أ)RLVOD}lSC*5^o# |Ng?wuBRzoNFY%OS٪ʊ;_|ǎb9ĬS5Z\]>,G!i$t*5OCXfN["t9 !ѡd@1AU)Cpf&x"@C+<f)-9In=Pmbuܥcx"\,vX4ߢW̪"\Xȩ\eڈGi@s#">G\u䠣wyFgzKpЕm޸~VjUhZӪ0E CCX2j Z-{yo)c`ZS޵7aT%-M ʌÂJG΀MV6TIJ2BTA{~2 -~{;Qy8jq=s]cIWfa[xAҋMwP◸ KxJx'y&;&`dD0s^k;>r OPG) lqMkzΟZLdVB!f79!?4-=b|vG`{ty(P2 '=I>1~Mդ.I,[endstream endobj 235 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4772 >> stream xX XS׶>!8@<}PkjZ+8ثU c$B ̃fAƄ0(BJ5Z[j[T{i7}owo|׿:"҂D҅.3F,AYe[# 5d C(H_حQz{UvLaoۙvvJ.* l*vx{4UӧiAJتUr5AϝK*UP;X婴uQTP51`bneRղ!j;WyqÇ&.2uv3fΊ|oC}LSR+5ZGMS(7jDmREbj:ZJ-S(gj5ZIPHj5~Tmj 5L-P֔ %R[)F ',) (\tbEX*.g'' 4c%/yLKeIlN60yAv|pȘ!h=Zm}fMMUWI2e̡٩l e2dL]61"pGD JHNHA*^%V_%0.GF~IW}{2`E ^($#MjyjWpW ePΉWCU?[`]@*Q8Ӳo5=_Ҏu]_l86} {2{ FQ.5 PIBo*_9*qaDWjkSd 4X`<K w%N3AH?z*)*Qt&~,XO{- ~``aKxOmX H':mG`L|[[˅-|zXZx b^g +0WP"(f/_:%&/v^i-,+w9$1[kvz3[ţrW<\wXo^e{wzW)!8Dه}g;jfZul &]TzCpqP.\z)&' =m0w!7'{eL7YGO6*bR9z/l"-1a54H|oң0sM 6hżx#ix,5AJY7YI *d͕<9!s{L g%MCB{~G5| nPkQznajAzJg5~qa%(52F mmB ,2)1u GLfz~ENBCnC*rRSuiP.bqo/;''Zr%' i@٧jh8KI ٩ sGqq~Ӧ [HaP@a`7N]8㸏^H1ؕOClɎo_'Z!ȏEwF!s={"֒:?s=VJNq>r˴ w7ZޔI !(4=7[#w%hFЉi?YXK{F JF)#Q>RꕬMA9hS)QzzrM] b (!<&Y%DnvD̜~8m)bTyiDb*7AxYwC "s}5A MI˚}mE`hoĩ~C5k_}q󦵮\,:Ep{rwʋ -oy[?7_E3kZbS}),ޟ^Z}cu_<~gG7_u?CΦ'7捶0ϯؗ<~/bCkEoJ‡K fs2LEBen;ZٯWP͙ lYLǡHE ( EPFZA^+ǎʢ\t1m A.6KU:'Ib#8ɚke:UOtG> IM&a~8ؑ$u~|olr_m/՗{CaY.egz)BP0@ȿԷ~1W*XGjSR#qɻ+('V#zu x>_BZQlg7_$ ZBH4) EYPVfU6bt Z?a' kJ0(G2DJӦ8D/{>dOWegW` Ft#ӡ(nnv>ᝤ=3ad{q[O H$Z43T A*SILs йWj#6)n.-BM`ko图0R}hŰf`~.\FvGx* bsVJeMmGN)/sp4; n.I3GTpڃ"]/4EMI$HbGF؂@>y\&4Tp2^֕|QK'i7 =P.ҌhsjrP} :h>|;?q[Չڏf&t7ޟƯ9٫!+`Ԥ'l?|zع˛MKW~x|q%1Mnmyl)*6pdRC223P1S*a% ,M5$`i bLdOϡs'0xl[78fP* D0SQ"JG5s;\" b#X UJ?]5ul/ڽkw .?w썟\~Oa Ȍti ߃HhPֱ0>C#Xè3P! Q;t{-72u9}".ly$? (qڼ$bQ!Mq.vژDeԕհx89kGtfX, 6)8<í")4ex) "= bbxg7i I_|e8_=Z?ylx6C[m2V|>\&@}:u'&IԌ0g`a*_j偬Դ|*;`l~=@n:%'t:ȓSL6WD)blvQ*B9LXL KS) ӕez1pUpl-wdbʥOѳ$>oNAĔH5?hgXPK ~)pr}0hsm R 5HVof` qTTu%{suGJ.ǽN,}Ŋ ќljUQ?v=1'BV'5D=~` =DQQtf"y%*u5M^M"0h;}N@}zV&/!0 #3٤6&gd%g1d JE;)Ťjm99^f!7(:OX X-57 [jVVV&k+#)endstream endobj 236 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4627 >> stream xX tSuO u26[up`"ATURJ[6m6m&_=m4ҍP Et7˛omq6m{}r&Opܩ׮]`دO1r&1?@&w<&}}DY\`P$\"UD9Ys,Zi͟(핢qVfqL((S(L$ȕisrgYT:ORtib(mcNiNIyNvkbyڛE9iUΛxX.)sJJsJDB(so<IKRq8(S!p8R,]QR"3yMK^\I Mpllll,uJ*B̙ə q\ڸv亸nɜ8w&''?:BH%M<wW${o$)Ϭ5s֝n{C+):Hj^GSY+3hU .l A7 o'=AC@g3Pr{!x"'^f-QB&vr/@7_h@ 5kNSoNDY *0ZU[%@ѭN֔7L:[{w猀V`"a]m0zH=8n2s\qgM @ r`WɭjE~ZU&M;4;&_j:&i=X-$M&!Zez= ~-&D ӚT zzp"Ћ- P]f/ Mh+4ޔh|$d)_1t4ZTMVV? |v! [[Og'QŹK3`FF "D Uӈ}“:w =xE.[rZVm"SY)Ȉ>]б퍌,E4 .Ex=ce $֊2(#}X~/}j7''4_`35w@ ˊwoACQ/u(2-*+N!1 &!B7^QcfU,FUaNv`Յz74>Q\JeSF~vaA1.Mlf#MٟFbܡ\zdy!mckAp_|C@>dd?'E0߈[Cײ+~Gm߽N}Hq낿cq&Y`×gZ!L*{E-Y>&D9֏ )9^:A6hzN -+Pf=0rl-@[FLQ,TcثNmG[SRxɄaoư:NK{n ?L0Ej$pj Z`g߻j7/ԀUg1,d+{*@bNeʄO)Cgywt Z]'JeRE) K۱z04۟[m K=ZJ/U{|('vuI$kvpFhYbt~ʗ2oT8Zxt&ZM(V$v*x(WwR =3w5ˋYM&9m1U70 qIy2]6[8H;}h DHf} R)y\|.^R_:\`V.9d ,1ŚyT^$/W[[[ZI6/vnFPmN9Ʈ?m3y)93x>K6;r$9s"0T28C o+T Iou7w?U`3-c~}։ֺ|8po̲gmX5zgYG95xѡ#FF:!W8x_OZ5$ *ܜNJe?L]Ff9.ԆusU=p΋!kw<JvƤDYaպK!f x5gB^D&[>epDjm5 JޕZk+ 3@-z(ǎF4.%ո*rϺݑv8ޚ$سqUR>hS=ׯF"$Z2l5`Qzv%8ˠt­ɴ_h.jFLzZk{xm1b-{r֜rЁKŘ@lf`jb rIӚII,Cendstream endobj 237 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2690 >> stream xVitSe!MRf.4UZEThe)K)-kBKC6FݶIެmKڄaS@ΨsP 2GGt9sZfqx~J D"9eӒرsY CRwCe!#zߠ©hT"כ ʊYٺyG/y >Z*RHϋޜViuMtJJW=oeNW"&dqg/.Q벣UTEŪyt*z_NU9?SUGyEt%ddeS-\ !ID N'vEb-K' 2"J ˆ:I9> {4씌KG~gbijdӤIKCM<9W`"CF!S2Z+C +j+nEӳ kjXNx^OԃOw9K"y7EJy3öw!/(wk[ _OVuHQpR2G g! (!)*G_RFZ5-͔kNhsV?,;4֚# ۭuҮHcm@,[j׬͠SmmmtMy<Sko_]X\F? .䢐kHLcDaH((q#6Q(f4!p>}JDvIަ d0kt;i,8(+SF.β\1~NnTX 5N[_M0ՔA }=ݙSw<$NY\?RIӔ`#JeQlӻij.٣nuӇujH$E?ASJ `atxfkH.pAQ ݳ _/tlw54+$o;.Cl[y&%22=씠HQ=&Q ͖GϖM"yŢa}ԧ4g& ڕks5H^ǾXUX[Tn8y=>;oP@2 JCcxH\M6 T e ?]ݦbkji.cX=~keWB?q{pX7U96##CgpP_qB~T)LX8NuE?YxYSs>EnƠ2 v8N_@_hAiʐdb`7۩in+QpIՎVpEt 3Bk&?34gXsz@el iX1gvƴx:".̰ϳk| ɡi"X[Tĭg+D`5*,Mh{ CGA{XZ@v BnJC2H5@B V /A10,&2D <Gp<Olͭ_shFD6RL)pŚ{vЃDϞ>86[CYۅ⼒7 UsIG,,8DS;2ֲurOʚ _X߇~HFn/sQzIo¯a>)h 6U(?4 2=9c+n!Zt _\~klq+I1Og gt v˒RA,eA%YS_̓Y˵j'`KUmtmluz]iH#7\ۅ"ny]Wr _߸r+GBhh~O yh[ˤKJE[ňZ4ryp>mK\2Oig,z ȱ}bGbN/~FRy? 3ف_$9v+t$@SJ(RCYy]@__@dj<^M+ K+hm!BD_BKR3q6{W%O~O[ӏW\hOrr؅svhR6[ g)gjC,3 Rywrund@3Px'{F5Jk[ZUGNɚӢ3G>{k jl*s~IX`CŻ; ^h~ґ CL!w 'c'Ÿe X#.c&(K.S0*9uDH%? w8}R%˃8FޅVݕBaRCnٛ #!fق&|6TܼҦᎶz2]G[.HN^)X [eHS|<.RE-VCHWFW3&/OV-m V+uendstream endobj 238 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1463 >> stream x{L[Uoi7Bm.{iam0 h ڥAKG)c"fm|%FQ1\X薨1'99珓|{x xY"s?ck2؇JεY΄>RkfUދ xfRH~uytw,98#<ý3i _U0-fn8\uލ, 6J_6~YC7/oLGKbHOɔ~Mbt|8Erni֚ Е_9p;SK﨩I` *84/M>WRF1'1yoE&=7/h3v#MUK_,hEݖicJiMQF$' B[R4uΰJ֪hx*ʘF9)k+C$J+OGnurѫ8*D|*MQi=2b&_ъwՍVyLpAIAޛV>+Y }fzXHuI6L S8czG҂hpG0/'Im;e:N lAS%dElqƳcN\&W Yt`o5 'endstream endobj 239 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 891 >> stream xUKhWHfnZ!M1Ev %Cu]hq,; $HcM%B=q4zXi-44qa8enjWm\tbr8rSO('/[_*)F9|؉^ lo[8&^:)*D`9t;]<{1?ÎXcEt;~vλ8W/^v:ps|=}=+ YACgXͻO s 쥀g?8g鵉oyT` 9/ +v/BFKN;Fsh]ATĨbQB{gJ~h*N GO vq԰Uz=QswG `> stream xcd`ab`dddw 641U~H3a!O/nn? }O=\19(3=DA#YS\GR17(391O7$#57QOL-Tа())///K-/JQ(,PJ-N-*KMQp+QKMUMB9)槤1000101ߧpS=rӻwM}O_ ~ wwwsN>d{N|q00~Ksp跲ֿ^_n=E'l~];\| pBIOpb1y4^*endstream endobj 241 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4794 >> stream xX TSg1PڧP;NwGkEnVPP ž@,7 a IX l (V;jt jNmm;:Ni;{=sK89sԋDKn\iӴ_F E߈q_VKe4YȁX$ڟ[*MΔ6mΜæO:'lqb,~WtRhy\LbQ+>F6v~\ O Q`jzbal7De$բӽ:!. $N G03|>}oDc?AN >0A3~03x`C ?$bjȥgW<`uC -6Lp\#9v"y)u5tV8r"y?;h[K֚t ꇂ 3 `kf_n,Y(_ECiC. S[d$U`*'ɘBt5ʨPh]jn0Uq.@K18n(fI+dj<$vV mޱvmiu|k~rw5kˁq8@5J%o=/+p ɬA ,6(гls7lxya⊊:DH}5}N (`⃵ܩIXҡo<ޘXsI- [6oFP}Z𧣨M03rFQ|3fx 3Š͔ܲ :e!0+@Zh4ww,1V3,ol5B`P -{yG17thMK; ` ʠkZziaHb.{~EdR 4zgжO{p&QqS$S)|:ҏW>?-O#rE˴9b0)B4"Wx@U50Vn߽zgUI"7oi*j4YO>;ї*tߠxq1Μ0zI@%B7Y$ >>cI `[o= QT6H6M88h<_߄K2{q5PP VI`rV,8Hh)/L~71m&T_S_5Aw oŔ\ .=$8.rˋjۛ:o9 X;[ Y#wxUSQY@ |F%ZPܑ.=/F6x|Jge;T-c|wo̕F̙ojm .LwƗMH0i r/ٮHgF.Tfs4/Pov{b.xNvW$-;~]gGX`݃k^5}790qOgWg k$3|{0e?>v2W6^ ֗[Dx/*Y̠^ɐӟ7ʷgj e|^Ԑüt*D  H4r=*(jZzK#T2Ct9`I*yۖ=-yb  4A.w9<顉Ń{q:@1{U#{wꟗ4=Vrq`yGkΫDb097QC{: KWC֝??Hxm5(Bqk+@⻈OT\D^P꡾VYxOV ]v`mXAG$[%O{ZU뵒cP h֢;w\}2A|^\ۘ5AUU㽨;C$V7f|T<= sZh)wN'MBC˪Ef ]Ȅl]>`k/l.xL<(#ҍΐkg:s}~nys[X Zz=;-nan8޹3<sIOǗ=%VLn9Q1HG$k4M*>1J2p RQ!9o9Z$dŶrf\Y|}A U Yhibϫ bly%[^^[tCH &=[1^V}GgA\\*<9Lr# AuNyF1!rȕgZK yTWxMF9UefK9_RbI96`/-{fEDV3ڊ⢲1|G.\_G-3v_LCqm) 5Iqܹ͗#FIWjj5,yR'aL%}t̛֋_FrM1^1&`/of s(lMމA"FV6eFc@:[<>ᤴsG}R=Kk,6Z=Tl4E%S{D8">rBP}gaXH@8E p;X}Opݹ̶c]mm-L2kt zXhe2@ 8|0{4mB/Uo¾zh4<~2^;~!%ip[TWr&mlCǏMVx.MԅeinI]5qMQKҒFQ%'8XMs'f5&W]j-=e{~ MmO*PiBxFaHC"*rvp+ΒLb֣mF6 rYB_"s뗮8r>zEVjt5kZ WwK|Ecp,BjBUOfO{tTCqУ]\W(~C*r(clB ik17@@ޏVo\Mի3Y:^S*[Fp\5Z^ q!ғh)3779LoL`#.$ ~upCĊ d0#6+1t{6ؒ7QO[zfw>7s~e'l^%ZXFhIiQ1ID}U@̿+)L:<-`{%EAτ,ҩd(3ɇTH^N7ЙWVBlJHK)Сh}v!5Xij =J!,YRu{Szr20_-3j|U Tr8OW_OP_0EG/endstream endobj 242 0 obj << /Filter /FlateDecode /Length 5712 >> stream x]IutС}1|,ݲT 514>M$3#{%2Edf-Ax-"nzQ՛_~sBӿnWo6p#,[|sѹ06jϽ0ݿoaowJ]C\6>Q۬|cr~>SU2I9 {M}wE< JEM3\ow#tDž zQ[sl5fm}R!T;\+Xo+Yߧ}u9f9iMv ¿__FWPJgWFߛRPptB/sE O^5?wߐl4Ѳ\$b2!JF|F 1Z]v/Wm'r7P:FMݞL1.n!u[{f}٧Qѣl#)Y;I][z;2<5k LsrG`<轴Wnx=xi;Tem{Ӡo5rI[Mpb\ i#[\B7'#6VdX,sEGe+@294ި!AwKr26HۉYN);@:Ek<"O{Xq : Fi$k& -] ֹj 'Po.@lV؃X6;3_tT- ꖼ͟9ۢ9ҳ6 Z0KKyE\6RH#]ˠ EinZpp'l E>f?<"'yq/~ cHJ3}.UF]W>. Z!oJ\&c#'FL7[!ªWdhC P"mJBO+s<[Sф䊧-3u qD@C^#YhJ A>?Eb: o'[ Q> o TLJ k ;Gpt7Rn_020u315Dޅ nM 4g|@ 9lQAlw.^c00zoG^ l6P8;1q\ ª&}31Y Us5Y 9v9^*Hx \fH(t<߱' !y0 p2x\4TZ* 08w:|G1X8~!.:& ?켗Q+2=מgnnl9_nKy#L~kEԂ%fD :f Qɍ(/B@b`^ƛה#_i|dTmeY&IJRjPJ]{{m_<,R䤯0/8W$T\܂ڶU.lXSeVe˛"Jie")pBh.ڏg:>d(mWPL1XehYHkpXTQ~] 8V&HIk4Ith.;D dD u8] CoG~O>Hh. LwD s ȵ ccQ*dzcWƖodaE|i5{0.Y3D\dn!#/@G) gmē!σkO8)"6cywl=|1)S9IC$XD5|Ocʓ R~B[vXh)b* -게4ݾٰ[ĩÔ#<<}lm0dmop3[!I->iQ >W0"9% x]WPʱ?% 3 o 9ykJ5TU 7O FDa9R3|c(X ,D}e-s~A45f?w.;S6cn _Q/?Gh9֓Sh{ǰ5k` Z)s^uU(НB讜7u8&@ _7~ 0STUZ-~C}kvtս2b#}PRT(YMT\g |f2Ed0vMO qi̐ļR; Pyd'.Io vB7i/zcS>t#i8:@Ɠ-yw~9}͜LW79h>MpR@ -MGڈ!I!ݮޮ<CxwvuBLLHݵ|F-;Ջgզ.R)kmLٔ`davR@!=SDdB:"SO@a4R KŗķBkOԲt3z/savi2n'61F )~vc<ܐb{l Iׯ {W4O76.Ca< 8i`l Gܫ\|eP]kdn t(Pqie9[?eq7x"l S '}䠣S.?'$wyYc2;'܃T?j0 ixGH.fqKa<=ȟ!7=d+Y϶ 1|E*Sa շl-&(O8TIrY t z*P0*xͅ7>Ucå|{s./W 9rAZPڜb2~L=peQ [q76K)' 35o`Ku:endstream endobj 243 0 obj << /Filter /FlateDecode /Length 7336 >> stream x][$Uy4w!`3#ٻ3s.YYdeތ!FYY';t98Ŀ8g~࿓/17M}߿i4E;gfq28?k6'gLcw<ßa-ϓC*ZI# \?\\9gvWR+X+da\.jly9aJLYfOSu3E'ǀS4el&%}<YMA<3>ay+ _L4#!Pagpf^ۄp1Jd 4ew3' &g"AR3N,Gck tev٢Dy^pì!ϼ#zƕ> v}9h_.'I2BN+'Ǣ.{ݧF32g$T,cR³2)ݕg3y*C6Z |ZȢD^w i 'IWsvnb:wZjҵ*oIBVNhȊ3" i0\F4 xSh9(Sd,%^h!R 9LX *τVRj(}+NjY-8hHA 4xu)Rl QN-t-w6 Y/9ar6L'n>h)/e8:;i^iB"XɛSJ) \uzc8:K%{AU1lr ؘiUJQ, ]] n[vY&j*)Y8;ucb]DLM8 rȷ뢄͍jG9}l$<Ǭ;Κ\V7 6ՠSqW|'MXo3 &y8HMNc7VpW6t8C:h/T}qRn;y76=50oЕ$6(+ґ購`0 0,}5Qyb(9K\ELDsٿ = |XU'=#ȟ?k3Ö#}w3Gл]n, !{t$Ȟ޿A 'Ǵ(oāyu(O_JF[8Yo3w)27gL.{a`2!^SE=~FBVsoRځo,!jDd@֭JY?W Ea'ɸ(*< !$q)9.Q-xrM?h*EuʜAG#pўJ*̜XWųعdb!2 1W`<+Cc[; Ι EtMt&&哆H2T6ʤt)i,0 +8488xr`\}oV#k@2 <8 G.qf*MX^Fɶ)v˚:EdsUK/Nnc,+HA%<_= Hb'9QFq&i/y5B4 vE0Vӱ#%@7&UZEGRMqP@UPjZjN%>LUѲrBo[{ " /Bej5z jh a@>~a|)|G}]T%J(e|vkc'^+[dl({ &&SDjN:ʑ)`Z?IfJ} %Z'@ Ec))bB' x|;;@ l4 6L.pi,BX Qy1NJ /©rl`nCPl +51, ws(A,>;T><bcږ2dPR.5 fo5x`%D1Ϙ<UR43ļ")%M#MTU6kD&@ XpYZ0F;45 Ղ@m<1{Nq&ڙp)tȤA(z:2<x5 eg:"f`ZLZS6uBp;8C2k $r!&c*B̜(<a`~p1fjd;&i7՚|jW&D*S"u|w&T9&* _Ӫ  eX?_'w:omG$MN15Ek_񭢄?Z-֢~+@do t0߿k%@T))*[<L5)`WBAZn/=,B;X?d*4O<@XaIk=m?]e:PI+YhZGr@+=Lk:ֲV'g^{%-ޢz԰A*˺2n)N~1c/m;03&C4ǧwGqx88W 0B&gVx⣻ S~x̱@Ft;Ywtpx!Ï o+lr+hsEZ*P<(pS5X6^闽Ӄl>qRb"ϤWR JQŗFSʧ4I}wKo{L01e-Q1LWJ}Q&ajL Y)R)M$si.K[m qDѹbݢFϊc3Vk!is]M?r]Ul`!|_tOހyjҙ>O@~~3:Qie8tÜ+V /Jқ; JZjx͚Ţjw 5X3H%>9}U?p݄U2y!1ޗ&!%hr)LXdrP2k!us'sIGF $#<.'8[>{Y{jH72?ju>\6͢quS(J* L|MflO9Qrw',j!|z׋&wP *|=nA+Ӊm w UP%3SF.>l'14=zТ /kfٱ?֞ާwc` 0@#<[cԴDgwvn%\x/v;g/ %܊Fs;a,i%wi%S1|,~QN~D+0_H \k>9k脹9nǦRv]Fj@ +Ⱦ`nK!9^#r+!WY^s3Y1dޠ!@rm&uԗɮ$Ef S`'2%(۲S:<^j.b,i2S{Z%;UoM#X(xP稡F Pc%5[8`)nnhE+be0G7?T1 VmFeCZHd[>kCItWH`]r\LJV~#<|Bmףu9\B\W]͏W0tdrkuuH j6@T 2ĺber%Meue N~ʲuZ],Zc 1s;`;Nzc.ri emlʛZ.㏯Y#?r).H&<B\[`d2Ne>0HqbDpwj=/ڔU(>W=h*g$рӢAqp[ܷ*X-t˙$5 "RȂs\+W;JY nD yPp^nXv$%uA8Mιڊ~)s&LԫRXpuMPjm5N rMϣHk$Y-i"M!L(`,`)ZrYͯ.kupVԄPJWyYj胨|^/pUݒ{qd8CaޖY&F.ĶT$78"US[ٍS8x*Nܗ)%=V"6Liy9 |m9j!v0+z=(JG566"ڿ~Xt{<`s(m&&I?+Grәǖ4֛M|vtNFyl-<$-E ]C'N ] dyHK%~2SQ B#T ^PMdCzMw'Cv[)j1;3ÐA4Pmod8\~> stream x=ɒu |yyNrL+| %QEɖM ]~KV{Y=vX5Y|Vbʿ9{)>=dw8f & D-N3OO[ZhvS}oy='bŠX_s9w8,oy#q#E(: #NO?zr齹tbħ_/0,ab31xmU ĝ?؝ɑ!r;n! G;I189Ǜ==lwoťN\l3͖N.* eZ0]3Ot:5Ɣ]:G69xPIz:Iڥ7R+gG[)aSĽdcP#Jn F߉7/q#'I紇}f@@S8X6 xmk*MƤ\x@{rSan_"rq'O<]H0MA xsHyb}'~ŷcv7[c!X@ngQ lb\Nak휉h?p @a;"F ݙ^}h?93qϛ 85>tB8A6f'8\(3! )a£3I%%3H-o8Ny_= 9}FYNxрIP8߅ڐS YW,?{=* Ɖy?Q|t8B"88\6^IibRt${+n"`Q9ɜ,%cN7:pl=ip36̻aʺg,l!O%;l||A/f]A;7fN9ii1\(;{Kk)'g‹Eb v=ILo>򞢛 ;N3 z(\CF%ٮrK qn(,V`jg4"+'U߶7彔K~K029NI*!5!&s U+CA6cAL1ʑ2@|}YЩQ=ơ8b5(L?Y"J;*) e'o28]q@8O|Y/G1~̊`8d%x&UGw΀ȷeJ:?y IF3d/g-ANp@W|j/5EV-`3XJp0'/QEO|c@aw<aV1%PȈp&x-8\3>7+&ϊ|XfJSi(, E5^SXJ'U3JQK!) O䬠3sfS7Ɵ~NZgY=7WyЩ=hBnlV6;>I/ۆCs=Zf:QB9D;]H:45P]PhڠlsUH%MIn[+BH2.҂Iqp5];x6 F*wm2ch]վzF%_,#CpiJᢲD*NM;>GߢgZ5?o$l|ӜS/tEzfHn )V%lǀ"JNVއR6$EOJ.:gKJYy\NA4(s@|Vz#ZU؊JR ^D&xCY( w얽\ vLmYhq"A T#7M`Ppw $$Iܫظ)`E'᠔8qd| 01UO*Bd 6|#Ô"laۿe?ZFMkB'W'1#qXsA+dz3?CRZԐ"7<ˊv>0 11%цg;Z8J 4mOO{O/fbC1|/-@wnnZҺ H ^2+ \")}FwS*C 6ue RC1Ū N W&0)BKa n;0n-Z)CETѱҾx8cH)8ܥH6 B$Ǭw~Ė=Rc|FFJr2Odly^U`{1%9(9HrpibS xk }*r+򎎛JOqOFMh Hi! * EA# 7,Zd _Cή-jw4M`ThL3{V^&D;*{UP,X=H8RաxK^e<+i ]P̂%Dn; O[KFqt{LMk6?Z:qHmCbAJQzyPqaVHQ T54 #H``8Y/ t4X@a5G }uvN*9,z r4&G;B3z &m 5gkGU|ܸ&W`h8*/6-FIcR- tÌy;G nFuS%|^\ 8An>EB.) ,*SBv  )Pf^5igF+/Vf@ X@D ?CNpYKME`||M:8)Aj=Kü^U{/Iʢ)V6zeAW8.UC%Mi,dLy 4|d L8s$ y!,zd̎Xgy>CMqS"jĹO%EK#Z3#utvϕ~]< S!ILWf!5zwV1twYSFZ밙 N._SwqAYFs܏"]QħD9˦_>@&* ADV޳l cud3- \&(O==J]H,.i!*2-"ͥSw.$$;TF%N_#сULE=Z85 9u7 uar!mn5j%Hb2sň*Qs@c\^Z<$2PaNqz(a%Ǿwm+R."CR:-Fg%6nU?B*I` A\~]|=b>a]u xiܕNU&RX[j8+-Y?4s:TdUVl>˜4dB?H646.&/Zv| aU$X@zӰOE bk7bk;MjJoYv)4v`!O&aѢrYܴ`Iur^هUtyaS%ފ#ՆN.^7M@ ,/K$1۸;ĩ3ĞTZ@I~FB6}L&x l)!z8#h%_@N,(Z}}9)^,yw/~F%LWvm@G4kbS2+Lh,&4<-SYO%ջ)m  vSbn↛ I5;0N ӷv, ,T[U(QUۚڬIMnjУO z &6w RiDBOJ`|o F4&ne3K/5;Vr}'sR0"Sk3 Y"5vnpո_ aY$Ln.4[ً0QʩGٷGS ȽF rH߰v2Aވ~nY'sf :9 cq8 ARŃ@xİWdEVz*@AL];Do >WeOY}lP-+&;2/"0Y+gRm4[EA`, "+(974 5hpIA"'z5#=d!+^~BF%dZI.ڴ,aoWРy9k؈iVxlRY~AoLF:կ s1ZZ42.Z8P=k*j?,܋peb^8;ఝFCa] Ħ[7Gҋ5bЂN~<#oyqQƞVgNtKJ*G>׾Dx$* Zzsp-xL|B}8SDŽcVh{tRXϛ+%UE 2ƔI~KQ LZY;ӿJʈ}GS!7ox,@Z/2D8w:i1<'j=6%Q{k-Z>\y9lڲ,m~(ƒVwĈ"qMv;"Ä͔R82}3o Xu0a؈\Gӄє2 ^.P*`ga7Ea >_aʌnϾ oGR\p`$-"cG,ފNE̍b\hTw Ǚjw˶ϻֹBIT6յ>PrhNCfByiD3mf`*%0*`?$3 K2QϠ\JeΗR ~\weӷLcпM:07$ |a ,h/XR-` pzTdC@=7¶)OVio rfJH˭>_VB5JD"&rv|@}Z.çJQ6|v|6$qf>@ V`@ԓv9d8Mb:Ĝ5ʹCWAS/ߴ:*=FH#DnB`s$?h"s7]_1u]f;e.f1mR,I皇ָ~8)daQLUwt,y]K;PhzȏǬ"b vQ n-c˴&6͙U %( N+fOvKZMqF `tSd:eGoIͱW H6jewf~_ h?˗Jo 1u,6C*|G}='x],cvZ?kS NWQD}E2m:} إ37{_7.7sZtσ}Oz )aRVN|4Vn[_9/D/;30 y%Uf5FљkFUlSU7,\pݶ(6}@1S2h7V`J#ض>v4omr!O|S3 =.WA魖KfaW@DۺjKѻw؜W'pQV'ؕ:QP1f4ҍDʋӾf :| p*Ͼ} &;*3`a<̀ X(Rg?$|4! &9_eΐ*TW]q>TOAze&N8izwVNZD?QHrN19ХHrP?;Y`gy˫ofRd@ 0%K{_JWXL=s`Ѽu`B}&8VK.&3ejp|Zw`q['4pW%S{A>x_nn u޺X =@ڻԆ&u8bsc֎.;a~ vʀqd-ttA: SוGh7PnW-6zϐ&3㲆5ԗ=!4z åܑZ?:.磩gk8lZ*9v=ܺS8;+m)N:rR6߳Ա Ÿd~SDlߛH |v~+'G`zy%>)@t)}xP,^YTRcǦu)SGvMYQZJP6څZNUpTuvرo] {Eam|ޘ.ݺd չީ<:;&҃~a3Bendstream endobj 245 0 obj << /Filter /FlateDecode /Length 3692 >> stream x[K OG̱'MJqb{oNjݝW{GO\ ~V^+y~ۏNVJ߮g4b*ٳUYI}~}v̍s<]~9d٪>*RwA\6OsFNb4jU47(gFmNև%U2I9V!t׼,s^\ЇI؟;u9҈DK.Z$H߬y]Nb0 Wx,62.Go6[u_ܕΆo˹@swӵIaG1DIwi9e㋣ ø Q t(׬C 1(p޸q#`t]8_` u7]84<7fdxUv>1صKVgmE(J(Zvtvu}T$Ax~1zt2wƨV8Vvhu+o"aF?tv-a(k>\)KAֽނ@&oK9~ 9c!>5x$Ii҈>"4%/`>|<}H0> Pefs)p?q큢mz~FkGy27pcr eX$PelLaf?"c2hpa]RULj#xPnp@%d="Y!Έl0 7z=z#ZR c/˩eraŋl$LQhBz$fO⚮pafX@uN>j91|C|eT2 #n}VDP _m0UQԫv-d"1_h4&Y>9.qm ʎ;jY:#782&@Q"rqhє![drL'jQedkDECRnL UҺޅFw!ͅ0k(tIrS\(ABx2M'R8  huh^VYݭMSaL #ڐXd#7x8jF)x Dei\+!ᢌ[>w{wYtJu<Hf)Rq 4fe|NY2&4>+A^!\g+\0f iXvsubqq{qQ.^/n_ԻmkxFoH{8CF7ȜtgqF`c.(:T{bMղy[""(K:7HXFW G5Q 9R(p{M81 ָO6sb=]Ap/v %B[TUlJsc9@pʪnv4섔]  ׿}_@j#mP9;AD~=#tv^n =}H 37 4o ŭ T$m+y,\R: sF]ʝ%eykGf.8"R)h+ym'frٛRL"um\|G/WW5. pM4T:"(r37Eu1$0kJSRF.uhZkrlFiRj;=YRt+&*8g,AՃYتds W\pbT SSݍ ~ fx74`ӂ9J Ӣ38a Z{d^-`ZY>E3ϧMq+h)͹a(dIF"KIG*6p<=E)X*$Y$"s[9 ףWTaJY7 qOعğ@~+_&z¼z–-A*>o(Vp[:~Ld~S9oEBcbw9/(XFCb4%[ʹOjP*Ȩ>L/ }9Sg':zL}Ћ)<_3(5yϔy\|j_}5.V&N(UlJ‰A2yk,C݃wҒ/WC\(Oj4~Z5&-× ^雜ӣpbzQJ((߄a6=Oӏ;z0>ߞrf%2^L5,Yrl0ItwP3 _=p /H T\>12s=Otv3#-Fzu3r<stD",S>PCYL%nP>šBP#oYT-}xl?p}1֠*Ɵ[־Opdث&LFք:hbZ&ئLm( 3PɅEQ)|VFy3B Y}qR}/T9v))1ȼzC_2hRoSȤ"ȕĜ|̑^'!EyKPpRb]2),{+ͣ<R|4k: r]ᰪੳʁL&Rendstream endobj 246 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2784 >> stream xmyT'̌QSuwآZq<jGAD4&aA$Z[S+O֧UZUM?oror'zd23o\88L]*A:wŠPr,f۞y1)aZ`7doo =<)G3W׏?WA!w+4JzJ ڮ&,p&LVK%* zag5!)5hd07uz~l`'_MPN!RdH4&,mzwR&sNق3bnJ͍qoDMV0zuKEy&.dcq|dY% ΖԪl*k&hJ=^` "J/"b/*&#!S elhr] [(pla/H<2R9ſ4>1on$J,ϥ '멊0I*,J@\7h@>P4GVS?z:~7pUWw%9|r]٪[aDF{v.zqW'n VksO6M* 4>ҏMwI8IE1<"+wd_nWxNBcဒ-01g펉wD)tBK w{r|%@A\dFA"IR .fJôX@@;U@ % ih}R';dfCdP3])᤟OU49s.`Z6_UQWh) C}W$(}' %EtQQ.B<vwg%5.;>W8}Ɍغ֣5'?_][+[U哭F> stream xV TSW~!@DѾ)N^\`Qq- X7P!~,-0 *jZbqNub;Ѫ7̍ԶgL$''}y 9mYb3:0W>`чǁ,L[NNF VH:O<^xT42^,ۉ,]^aheX!r}A"r"ryGϓʂ޳ŅȃE[bY8@"6E1rL& "(z-B%I}sÂoQ&j3r<'rSjrRnFJHYP5BBNLd>O̻mh ߞfq1)HܠǙ}isWiAiiz$ a!c.n|'o  Gh&8'}3trhv {\8c- 4yu J"z&zn^A쳇J؃ ژ6qe/夶턦NIY]poVo7'~70:Go S[x?ZF/b]Jwo;~4<$ﲚO؜浍Hc;c៪3}GC=[w07yv^,ػ/STB.TB:D06RAۡgv )dfՓh⵮c^9!3)*pgR0︎ ~e݅T)zIѮh/ 껼t3dM}MES[n;c9OxiP/RT%; xm( %ld)!1QٷO 9̂Ē`Hs{{D;^}YѽF2aϊy&E}0G&rxiVW ꒃju_JkV=\z{q6H w1ķTT'M/TS$jhL>h";=CA<%#kile|c~&<'JHk^0;N})'zE'.r!0"0wk {9=VcxUEw٢ʎ\FO*U  ޡt$ ATe2F-lo҆srzrru[,WաjjVL_qg%_Rbl tOsF{n&m8OxښZ6%#n7ȂM ZUHR(]WZ/(#@;ܮ@nOH& sTلD~ypI0%/,_جmcgg@zFrtcm'TS< Q-8(ۼO_Ї/ևtKk<{l|Ǟ.K+jj$wT , 'ê]A>RBa'7DUTjC{tO{|n ۋF l / Ѥ*K$edd)D83<P`Sߒ[K8CK^ COCR}^ ,¼hbt1q#=ϋ H%i-ȗ/<1`jJeADV5U4\ld4 2#+'M)̈. df^*:m!&ѝQ_D٥"~dFߝ 4yWצ\idB iǟ.IqR] Gz>(:^Vީ;=ŌEK^kWxkCȎgx4g&YD&L{^W,NIUed95]]43ZodxZ(@ۄlBM~uV^e%F8 NȎf՛GEkR}Mon2+ )UeoRZw'ʪ*wc.mpM#KhHjq~⎬29u?DhpS9;mWk5\eo͘$r4,#nmD;[_S1pD=D?%& v#~8 GF?ZKσc|o׈Da-0]R"??4X2&r2ЅuFRt-@]]4$q? A.@97:d%θb%H#+d0]Bix׺(E݂ZF=2!&Y{pC6Bȓ b꠶Lh RGh;ӄbQs#Y2ЏvcY=7Y䤲/X?睮!"W}d!R4<< .u>)9[fqC5Į(c$6!}ۨʍ{FF‚@^*8:>s0m,m7p=zP;ɿ6(?(x~,|ŠoXpь#B4tgNOdE*qx45$e\vtG21E`[ȓ돑|gomVzzМ 7" ݐ|ߨnm3D6;6$j[4Mae1goWN:79 U@ \Bs9`Zo><^hnXcaS[X WXLdhendstream endobj 248 0 obj << /Filter /FlateDecode /Length 184 >> stream x]O9 y?bhE(0Zq߇Nbٝ2huV>!PFyX%mHReY~[8RW^4 7T;篦U:! Q+w):G 챋EU%V>?Ƥ=Q{0!krg]Jr^hendstream endobj 249 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1464 >> stream xU{lSu]Zɫ2€ %8^FЍq[Gulݫ[[;dH?0(a @ F! j Tn>=~ι6y>mY Nq),K-b[A^QaeܣEUs>nrGϹo<ǧ9*kv[K4C Gzj1 f "O}Α5Ԉ3r?P[LYtoz۠ pbWc@C5We5tGA.QI?ihe΅trd<.CQntmL-[(d^DJZ@uW=C0iwqfkxbh 5ࢆ-s!9 0 GQBmB[c 0Gkj @k)'O"rI.ZVub8ZWʘ8*7=1Ih xLclz ]Dȅ¡t&*˅'y. mUJ RXuo x;:3/=^tRA (@V?ozv 54Ø5smaK_gcizsr0+5& ?Mf@Q|P)qϒ)䀿#I޾IϞ)8t\@Hԋ5&j;TUi`;차ugvP7,lo65v4~Fv#p<5CL#&ߋ_?Eo6b:~YL~3Pb7#0lLQ6d#:?5D[Ϲ {tSE*ѹ@mB3{~iҧmv'6Ga)#1gD }FBeEW@v:T$s+WxڗWtaK*QD蔃mQf2I::yZrbcJY.3guvTe! NU= &EZ?PSgʨ٭vwڐ~hIu6'5Wendstream endobj 250 0 obj << /Filter /FlateDecode /Length 195 >> stream x] w7(= аԥƨ/@h5#|l5ꎑte^B:djʪғ?Kxy/ x[H/&$c3FtoyA$tfEQǤc͘ޛ)r}|Y* ocendstream endobj 251 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 802 >> stream xU[hAgY ^ X^@#EѢV h6Mm!dӤ1MrҴML6mԦVM}QO*xy}}.&⍹03a UEQtCSKjRVz 5@*+o˱ov/hEzTqtEn}W bf6YN貺&hVQp-B/pޱq뭵:{kO3uv=>%rN+Ֆy$=.w.*j(B4u6DhDhQ Zՠ'T3\A+*%Jz{SEbLUJ$J9Mo7fa69:sوOd2튙H=v$.C*֤Cl 4Yxa{y6Xf< ڱ3B4 C6Lks{ 0˔J@J{7#csL0ʶKm8!1Db)Z#~!hG$*XHf|b 2+ߙKMdI-e(} n1k&5 )iF4($9CC&k͆m~9<j@@ ,(I0L@Hd2&EcqF"PMgTxي}*hSd3,fl&d-Ҁgq?&f ̼Rj0WUF\cZyr90U^WwM$ W++yendstream endobj 252 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 678 >> stream x%PKSqͻ\#.!4Œ4(hiA,lnwtnn6[өr3T` (?! o<g$"KBjB @lcr,7 Z{'PGc^S;Kӎ3 ,T< hx8茴V]S= )p6ہACժH{%nj 6>q9Z>Tziy@hYY[ pGJf4$`K1*9.{L$+0I'8(jp OEL?@@Ԅ\ ]Je &R J%15NOd>2gMQo~w:|_>|bb=!D08zF|5wq` -I`h"FT34r=Ns?韅I-;tI3<ǯx4:O=#n[4^\|vOg$ҍT\=/;&d'~2endstream endobj 253 0 obj << /Filter /FlateDecode /Length 5388 >> stream x\ˏyɇ=\@ө@(-98\ KjI䬴({vXz|aFSOۋ/v׷?\h_/q'cVY.W.]q.^ a=< |q{X85F\^C\6ix ?}19OYE ŧ6'drFc^)^ .y 'gx?Xk`axˆEmu '6jx,߼7-.ɎIPS3{o hL~wpftN& LkF:2ɚ nG+ 9؄7ߜRhC)`w<(pzGM.i7B(hw$J(UwGTxǓ`dkん?h=~͑i8ۛZ?),vb p7y G}eQ]H Ľ>ys*c&1]xoQoLy.mKiwW&p8W.0pC*X^^_!Sp> V}ATuA?-wʹ̥WVzTJz''Lʅ~8;pF #49!ق}?0* 1;ٱLAC6ӽʠ{:Ȼt:`> xM5`b*Rr5<nw rzU A 5y,, [[XL^iΰƒsi ld._MȱX.ezd^͞N6vF 6C䚉PN1e~&.k p"^\ ƻ0ك[k2|6@#[-U^kRaUh(4(,(dCm~$?;6k8xi:? tKN7AV`N¯2@b$)qmv=oB|G=ISD[&Ա;$75^ -2l(U:s` V4gp9xFޢ)#6FKy7D .Amw@bߓQ| v6j{&qzQ]XL4iǖЅl\wvٛIop0+皴ѥi=*C}LBׅmЧYV ob_W̋)FpY0{рϭ7 qkZt7cʈ}?e.Vם3Bk̎ތaXTe 8 t+HT`Ust0cy' Fr^,׫r>2D96џ|R`YXSAgQ\)B8}DZWP^y8~0a 0E(R:_ٛ&Ԛ;&M9c 4q2jϑEUC hae m/]gNpb"W v-,lR6l,`1ܑM3iWW3 r(@"bigwӝ~'7)|Bl䯤~Œ ?GJ$Ԃ4M|aDOGDΖ(Xàߏ.C 01{f-DY8qO*/u!ˎsO n8VFf+f|_l ͢Řp`%Z8Q-srs@d$~DSVPa}(?- -*e"kEDP_0mMW`0Go_\laq}ه*+bˆd`A/mfP& g:t,7,z:^:oؠU0yĞ! ^R@җ ײ\Bc$OKiәbț1|uۼfGBл4HFPi2y&㴞=g Yp}my_=dpϧh6l`c8))ъdUmz|Jߛ%)h5SF2uޖ" oJu]S$ӛ`-QsτA0`b$78 >^8+@;$ L}0 (j##h}Ck~%]ʁd8iseRфK{UigSNگǑ$`3yk^ZmTGzzG8'y(ЉQMmѝy4y] &v=йz`0l &zuPY:Pxpp 1Eך~QX2~.NP(eW6WO(Y9ԌV7zoҌFD\8N, TD%u@57lY0mK9WeDڧ [Z9w&R]HS =sw!Lu-1 s4a#D_iK|d9LV /Q>cqoFGRWpku~콟ӎ Z k@DKyj.{?4TLAzu~P,{ϯMJ #I8]ԺujjuQOOxr<1;Q8ZHPnfigVX$7&Pb|lO09O1y;a]ىk^ז316K>xt͑ Ha kBsvX\:6w(>LЯ z?i~`=NFa0LDPLkSS=Ժ?7>ZIBߞZĜ)[x{q㓨Ex" TYW1XJJ%ـWbצd5I.P6qߐ?RL1sO4s<Mb5M"2g jsn)ө8/I.7СPF& zN&]ED u߭ uBXl,;Ǫm}eZK@(lXv2xm(Tzj-z=7r'uMp9#d#K3~RʅZ+8n!:+F-615ɳM8j"6Gcc)4Q`2*}#0%]Xsw}-"L6wy2J85[2c=>ιɠn`<8lx-S'j'{0YV>qkh~W@-:Rcn i:O̪7/{zCD6JA{NAY6!DF(3-͆nzcj%"^V?^V&TIa3dJs:9PiM5qTìiOg}sGSb=~6Fo -K !lj{G! N{g; F#BźIٜ>z&>~RLfY=jsWuQoѶi o4z[v@Nwt%ʞg =G~JXtKgr^9O |t;f_R4=rfPp#|W/$kH \Xct"3*x_rb)*BfA:ǶힳVCk8lx#f5$n:~oq*Ă (B"m!8; ο!)g* RݖPty~tӍ's}*GПھEZ?w]$j8Fqgqs/C΅D5.CtVP-=e]-d}7u+uUVU$G,r.~3f.-;qE1]A+)\tgL{![!Hגqirwo4V`<_m: `L'ԁR>S]U{"B>']0WK9 S5i\vJkBY%o-B[FC _+yBFBeu۹ F~W! cn7dqbtO7`b[i|tAĶL[i[y+m 摠_hC/SAYdCCG2n5\"X ;)E!Ýg_c,VmCM{13DYV DvJ^%6=ڏ+`[{Y+@m^٠<](7VLY 4untͼX؟eJNy=It\6C]Wjb3YEy݅(4Xܙ|YED0q@I6>n|i񁬦v^)Le`_3oZo0*ҷHn GF">nyJ^#  E^$ҝ|gIC]uSQ{ [FhZٰ^̪*5X{k9?_ ۭendstream endobj 254 0 obj << /Filter /FlateDecode /Length 6892 >> stream x=n%q@Xux8ve#fW3;ԅM#abźW33+~8u߳iY/ o>{ϒ>>.Z? ╇|?>kLRζ5ƒʆt`,^D)~/l&[/oK 2.I<PS>sљ},_pf.1`Vގ/q&ֲj~q~|f|3>_dQ+]FA9 9G&@ I;׸9hpi$) QxSk7+"6hv{JE`ڶFr LqQDw,M=Sxy?)kMKbD`|n$p=I$nM9ȦuLC2K,W@?hLvao[G#.-Iۃ:ͮ!AxUZ4.ʪў=_>"} ֹ2 ^6zBrwv<]60RhOb5Ī p(#(3/j*`TM 708N+0:-܂8.BMRNIaâSo 3Rcb mS;#f7y;s.h+@X MG^5@7L2%3Z䂕1b*PaJXlAFQ޳W]RVǗM fsh_򫿝[#Yˬµ_HmkHb6yQO$ ʺMsX|~dh9Re!vK0g8e<7!W|DGQt LKg_Qb@ >IQfo+Ji@kq D lc-ZY[r8BOϟtqNg?/Pp|<kgMT]=K.n;K @۶bOQŠ AG28Muwz׆WzO/z>ҼkzmR#hLFPy0mr k s|YLKf2j9튦3(ϻk#u` 6$rJ#D,,&/NQhib}@[_rEXI+U'8A'J-CxUIHզ70q}>CI]a\`p -)v7ҫdar"kDzZ!G*捤r# 10oX~BrYt&j}")>nYnrdu~cV +Js}[-,(H|SC\HEod/P+e^'{ {ipUhq${F-|{k;DfWɬjNH=L祉В~xM `c;F?xVN+zIcF lQj{=g3>tW_tޏłNhH+y ULzBٶ?uC|lJ|4[YܓώM60#Xϛe)8ҝ0u#=vBI|k!O̧Kχ֐,V fbjp?xpݶ0Wb?fQ77'74f>]b*Qm ze"Meß>O m\T>}{.fip;3G '1#i>EvY'hRT &u3T,'iȺ",\@P V]oQ$Z<=湌jߌ]lr_ p# /#$kYvȅ7t&bRCNC;dy j7Ih\,Ͼ@&<(ђ9.X:9cU}\J6gql#VH;um;m—,>%zپ>e)pL[He'ŒAboLE 5 @0l_)~yͦs:|OwY,ӄǚ_| 'z9?dЁ ~=lu/7ia|Rdc1lY!ZGK3 WH!R3,K_kMxx$Y$K_[nW#$doO\j,TXrm}񩩟Mm\|b%A!x`FWӀ_Ӷ%=m&9fY*oD yUXot;Z!B#%t%PYS@'#ٱO1PXS.4$}׬S^4xKl{i^}Կ@4VC. v"NP9@{&MHu"~ d#{\9|Ǧ=Q:1fJ/ÂF{,nc[9BAE^aBAhijp8ĖaT-&aG'';8ȴoR-e,/Ա%SM͐O3)5)u yQiqs vru@?@D1qW3%sДhN4^Mv 2v=3Ѿn\)$Ozt$HԽxqBi}n"K!É9X14XBRm>\ZA71K~4鴊VxzCmN*q8)C )1xˆ@ɞ:JG]aτ(\,AFG^>c D_#QA*o1t_B3|5&oi<~=\.e{ܑxҩuZ{DZU uKH]h0GLE4U'A5Z8{{^#=OgvO/. h >`{&Z _V!cȔɘņ{]dZ%*a^`:~(v$TFG4^ԝE!K J0ۃ7➌q6m6 .TfMuA*%2CKn2e7Gp6%/cAa,(Q9|Ue1.+bb%pܹ䆇7?Lp6F U9b8#MµOm= x9k{!ǥOpOK1Q< /#KGJ%Fy>hLx3bҦTRf(38N]N,NQMu,_c|BseV%^ΆR`8y' vN=IR<,==Z.6].Q_'iZ|5f0*@M5*v/W<' N{끠cf@N7<^ZpN^$u͒u_Xx$T$ V 2v$E^V=sчMX̝H@0⚭IhA++KRhA&A(t+RqI%+vKWso^DMV"I$h%aY`dnFMQ}j_ƚ6۟SLqJ%PW -ȏJ;˸N*ex(p)Rʪayo?hM2DPL/@BPx5$ܭ:UEj>' Z{G63cXkRYlLyE'ƼMkÛQ̀ȎWSɠ kJ2Y"{mq6#z?s_^^e;;bJOm /l i@!1΂,=ve%VL?4x 1!{{]S׌(*3Y%Tvb0_ ZJpbra}ɨc~f3*sTtu@cǕ(xe24[iD(֞g*gji#Nln%X7+n'QՇ J#Ҕj#NY 4oO/p=z ̒EŠ_bt?o#Vޣ,~ 3X0$߂Ku_:J/DT%>ARCE;W<׏I`r>ꟶoį'EI3v=xt{ܯRS!?vŃTmē΂4vt+6 ܼٟ(gTpendstream endobj 255 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 431 >> stream x]KSqo;G4D."HE"!Ls (DLw{a;pGJ[1F?eEJPE(O y)*R<;ӲуY;Y&+S:˜RԀ?p3VqAHM/FARHӓf肮5ywp/rpx}p22֦V@1@L,E^7@ b|/VzUي endstream endobj 256 0 obj << /Filter /FlateDecode /Length 6553 >> stream x][uc /@;Ŏh#NHFl3H9@\j)\J s>{vW Lu]Nw.?]4_]07wş.,zzOaDͱj/~qKg1xc>V/|9cb c9[ 6M_[]Ha9\yɑ?}cL%L/qF\;&ޔ~2<==ca-~Z|Ll1/oxX".G닩~uq qbgth wnOw轇 )p3:OOG5:N7"W?}slSmފ[;x.O8$qD-\pb vyAhvb^5j[4 ,a|ng.$!O_)Ķf$$&x=X/`= rE_a 5q\_UXr\[jbqy.j >CXjH[\TrbM':} Ys1֖+^ق?+92s=V_,hx`zBgG.$W*^F*.~qgŅIWV[ΗÕ55k~T#bJߝO.-6̮Rf)Z- q1ҥc,/l=:j` Vƹ*p7 U зt.<_V;hc 1cHu] m 6ÕM2cgsf8^?PJ}*$3Nٝ$B۸&QGޑq"sR]մ6)2-l KD.vakbL@5Ki<^feeCwO ; ƶю;WA}C)U686vApxlȣC[GM{ pE]$o99~qC$a5%6el:ߥeܲyo7kF~?1+he=FX7n |EB@ .jA m{Ip6yrΥZnKBq@C3 { C+8YmjIׁmdGt$0k@2Ҧ][A8UI6p-sAsD`u}]P6+_2K{ͩ7Ah[.-CCf} )&-Ql9׻v!UKLw1ܒY 0X- Ȱp0sqaHZOryT |ITt?`"l_EbG'֪ 4% ɮV+půڌ%9$ Lpdސ d P]:'@No҃q-4S;\ 8j܄%y:Vx )PȦӾ&aϗ?(}}?.g`rjj|"X^_%۾]0~N<'ro$CwL_ pkɔg 3j(L .J*3m8 U0YjK sG:tĒ73MuTzN\FtfsÁAQ[-1lŢ1]@'ds;K"+xQ,Ufwph = \׌ʃONL~v?8Ƶ8)D+ m@w8ny[p$j^#pE`Pt^Y0m&ޕM(y߽rxЦK6L16?3pX͎Ԛ_ѷ?`rL> n'bF> ci`2V0z\^y{Vtn ?S\GHVS+W ǐ6&`Zb/80ciNE﫴נFUY8y=epkokLc&Ӧu\ 8T\Z*ro? >O̶}+GP!/E 8 ?U ƿipT8|wRpb T[̄͞*}|KjFx`ɜ)Y:FÐНGguŶ cj~3M#Uك af`!?ݼX2+&ZAo mU鎿G[-*b^='X疿5htV0:Zs?95ZP sX' DDpFx{Kv2‚ dPݐao @KlRdB[Y !Jv09-U>m%lGrۢOe$ h8g2 ߩN]AB'oh4lMg 4{fZ |4Pd{C/g?v%XFՋ+t.@Mτ8jXPb{6-TD/%?c#.%'oi37QٶH$CIN^%.ĿrRPԂ`6n(.tX RҚF yMj2׬~: pﲇwR~`B |csL2lÉC`JTm ~/iRq{,W祱ٶ'JO_/G[('-bu8Tp$dy2<ۃ6[Y((u,e3@1,[xa,|zp)ʥsX|€a>s f{Er; c 1©][tO|鸦V1ǘڪ [v}rFFdL0\y,-^ڀ` yIǧjg9Ba m%csNqɈOⷱEo<< B%ɒjl%WЭ1o:~h$ţ.\" 314(9m63qG^ T 3V&~r ,Gi d2\>F>|Ǫc* @E ӯP:~+=MwRM&э{6x=֡sTc=AJKUqtXnIgς;[EXK+4s(qd̈́UDuѼi$K 7ƻ) ЇXd [aF-'@JH_huY:ak_pW6 S%q+;~*hԒχD&A:|68|3bKbSlzl?20yD^)Zdr}e X3A+~05lUD<&wRCxp4ܻl~ ]j;oXx|U~M<'.@44ze@S.T Œٴzu8(sŴ K5׏YA ]~ oԺͭ:uؚcFiTHVwZZu- ½mDߵYt|].aXJäUPϮe8?!H{ ~ t> ȳ$PcCP/0>FGZ V~ŀ dM*?s"XR: )W9" [sE%GG] 8>8Exi B⿥z0uC%6,b\#1Н 5a:x K,8/׍7v<f܋FT\*q!R闳|ȫʚxĝTAӝbȅr|~6'"]'нIV(̭;bjlf.ddS <?y)ծ^sokHԪ%Z$oUZd){#C\Gwb6ɣ((*P4 ?.W**QBϚP+DB!쟚 RKAK0Ѓƒkot>-ω{Rmsw] s?Kh@&(43VF`ݦM3ݏ0#̰[.:t6nJgò=ءYT)Ms m] {Ğ:/(;&Jr\5o^*֞ nMlZ @61d9gM=*|_k}&pѷ)́SsZ }@#m Hp.dVozqv^- ]8qgBt\eM6ϛ4YWdA:%76!GN2x])TsTubqIL+ÅѧLu_&m62˕FnR^^f'Dd7 _ǥ hc%omCbߎbuXɣoB3Xs,D(O-{Heu0?B6>tol ]0hSݨ<;RyoQcsqԼךUft卞rQ >mwĘ)I *ȀL:#B{VWF>*Γ=6ϕ_HֲaD N0K,DcSJ cuP) 7Jt苮zWtýQ0]ߎې ٴ^ŵ3:.6DŲ:լIX&3V W Z D`55=H{96GeJgnkZ[ȖQU> stream x=_HSaƿ;f@)NED^hQAQ\qg6ێQLww:3vMe]G2}!U8Nm0^, q<_M Qb!lskpw="k1..z} wJF"KN::5!)~\T'+JgmY+8n|q 9_d nX>x`.E`&y\!+P32K r\ Ǹ=&Dn~2p^KW }f!9 ,`;CKThS܆0ÍGMCR&Y\$dh{@ɸ=93;[WfE?Υx=BOt|]M` FFHhppT!Ӑ = 8o}*˭ Jl~M.3,ll&fhm0vP4(5Eȝ񑨚 L2UcaQ$h^<5;Gendstream endobj 258 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 331 >> stream xcd`ab`ddp 44H3a!3kc7s7{' ~O+XP_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@ݧs JKR|SRYBt^}ω33G[7]z}r[~kb}vEly~_d}{O!lYwVWG g/d4mn9.<'yx\Qxendstream endobj 259 0 obj << /Filter /FlateDecode /Length 3186 >> stream x\K ͷ>vN@ !AʜhwR}HRVb|.HɏdUy"Z9볟^1?}>N?ί''M+mQNV9 roY#t/bbv҆ٛSR]4pDkc^5褖1Ӳ„fF^(<_xQDާUyeTFPRh1otJ'e,ZM3w$wާK5im.Dk䁇Dz;늗gKʹmsG o>UEHYid-B; ;EbNʰ4r7)`6RE7s(%w#^1wi%j)s)twY.b6y_rvɗ]YY:'^RM:)Bx h>4WSfoU69E'BR)$iEblu1c?yM*v[Uk(ic!,w !=oԅ/F OsK[!)l}3ۋ.B* 3fދ {kdZSqa M$fqbHNuƑKIF qbFŒaRqT*AZ. t*t.fXTٲQ ZdSrЦ}V)ZTA$:qczR&['7OlZ73ۻ u//:fC:U[IUt=?,HT%=gRyI~o#H%ɁJ.ݔ꾧nZCJέѦ>1 gdML5V[H$r)]cpB sq}0ɲN3ruO};JvR^d}6 UiH)KI<<W a3csw@^ A,{G8J]G{c4AnɆ\gR(bjqu>'89Fj6IBGe| (i @}8-_,O;N%Vl2i)M_.j{X f+6&2 .2iin؂% 4a\VmjmTCWr_m 7֞7oW”2.zG '#GȁG=vŴ me~P-[G5>0*|z l˔ wpu6ܣ.pFyr >B_`FKUax]VeLM.ඏ]zi-Z2Ru[f oE! -M/ew? jNt} i侀e"V[,;/zj CFbMڐxnņf`|{_. 0^|3ݒIlD!'j[iԦ_ei3}зsB}?|I_uwºM*ύM_7fGDQuu:ܣ6!w}6_x7ۣos!&a{Oum. $T TUr4?jӯ.{Ԧ_]+wq%a+lGmXaKƦ1wcmgendstream endobj 260 0 obj << /Filter /FlateDecode /Length 2638 >> stream x[KoG{n≮el9ġ"`$GIv$=3âf( ԬWգK% ڟ׋g[^. ?]?ί*Xi<|aKyc^Zm/r}8^ݯX^U5{kEk㊛p/Q媖R4EhurwxNUWA"7BjwXƔq#+>MOZoʁdmxLz'dDyַIf@G`Em$V=hyj%d`q3P 8<ᣦ-wdl2iV5ז7"'PvM&$dIIq"Dr*xʹee}iTt$y&i[KJr!r3|I "upxu2[z̑ 3)gR!4)̐t! 1@D,3%=\w"“@)H^J>h7IEF#d dzJ!D%*G0}7KJ1hC\7\E/& Ҍ9d ˟DE*w=ti y$Lq9Uzlzz;K4m1y :P44E+O/(f-E;z[l% X08"2VRr3ċv3\<$c tglHI:=) xuntH^E?$^?M0iZ\9)pMEEH#w3NyN4Pӧg!KVRQ!7}Y>;k/$rg-H#nP4;* p, (Gy$%cR] q^n/%<%QY?k/_DE2ͷ']2yg|Lrkѐd$ѷ~tJ* oY[TDs{i/)L_XIy` BFwPk9 kr3ɔÙoȗXzEL`QgEBԌX&湱[x{R Ӝkb>ϿP) ]AVv[.AXAN9$bF1`o2S|IO[?&`Ii =zV;/N-HYFr0F bUBG0ݤUgm|-Z8?" F0#]<_Haz1V9`Bf"h.9ضS " 3ͥv2E+ژ7ƨdw<3aT9c%Alc#']4Xs-/R}Q@\M%:$ hs5Dۤ+=B}aQ]:)_AS^"T!po.n!"SmȢ} Sm{l]FXg&F#LB{_&$D= ZrIBlÁ n;CɂpXC)h&=e>LA(H3xUclia$~WmX7ڄ/p?HF)Dʔ׋}/ _r,EaˡH_ZNLdvE7CoӶD/H_rZ|:2y]&g>$zgݐ 9はl z 火tרl߰f,"|g$ fGGA44IFž]'%]5Ƌ}?H(nHjendstream endobj 261 0 obj << /Type /XRef /Length 189 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 262 /ID [] >> stream xcb&F~0 $8J1?@v =/Gqhch 5?n [w2 R6DJH RTD ;HE; (y,LUB *dz&jEOɿ Dr[Hn"لl95`D``KA$3c endstream endobj startxref 149770 %%EOF coin/inst/doc/MAXtest.Rnw0000644000176200001440000020221513022241076014740 0ustar liggesusers \documentclass[nojss]{jss} %%\usepackage{Sweave} \usepackage[authoryear]{natbib} \setlength{\bibsep}{2pt} \setlength{\bibhang}{2em} \usepackage{verbatim} \usepackage{graphicx} \usepackage{amsfonts} \usepackage{amstext} \usepackage{amsmath} %%\usepackage{amsthm} %%\usepackage[round]{natbib} %%\usepackage{bibentry} %%\usepackage{hyperref} \usepackage{rotating} %%\usepackage{floatflt} \newcommand{\R}{\mathbb{R} } \newcommand{\N}{\mathbb{N} } \newcommand{\C}{\mathbb{C} } \newcommand{\V}{\mathbb{V}} %% cal{\mbox{\textnormal{Var}}} } %%\newcommand{\E}{\mathbb{E}} %%mathcal{\mbox{\textnormal{E}}} } \newcommand{\Var}{\mathbb{V}} %%mathcal{\mbox{\textnormal{Var}}} } \newcommand{\argmin}{\operatorname{argmin}\displaylimits} \newcommand{\argmax}{\operatorname{argmax}\displaylimits} \newcommand{\LS}{\mathcal{L}_n} \newcommand{\TS}{\mathcal{T}_n} \newcommand{\LSc}{\mathcal{L}_{\text{comb},n}} \newcommand{\LSbc}{\mathcal{L}^*_{\text{comb},n}} \newcommand{\F}{\mathcal{F}} \newcommand{\A}{\mathcal{A}} \newcommand{\yn}{y_{\text{new}}} \newcommand{\z}{\mathbf{z}} \newcommand{\X}{\mathbf{X}} \newcommand{\Y}{\mathbf{Y}} \newcommand{\sX}{\mathcal{X}} \newcommand{\sY}{\mathcal{Y}} \newcommand{\T}{\mathbf{T}} \newcommand{\x}{\mathbf{x}} \renewcommand{\a}{\mathbf{a}} \newcommand{\xn}{\mathbf{x}_{\text{new}}} \newcommand{\y}{\mathbf{y}} \newcommand{\w}{\mathbf{w}} \newcommand{\ws}{\mathbf{w}_\cdot} \renewcommand{\t}{\mathbf{t}} \newcommand{\M}{\mathbf{M}} \renewcommand{\vec}{\text{vec}} \newcommand{\B}{\mathbf{B}} \newcommand{\K}{\mathbf{K}} \newcommand{\W}{\mathbf{W}} \newcommand{\D}{\mathbf{D}} \newcommand{\I}{\mathbf{I}} \newcommand{\bS}{\mathbf{S}} \newcommand{\cellx}{\pi_n[\x]} \newcommand{\partn}{\pi_n(\mathcal{L}_n)} \newcommand{\err}{\text{Err}} \newcommand{\ea}{\widehat{\text{Err}}^{(a)}} \newcommand{\ecv}{\widehat{\text{Err}}^{(cv1)}} \newcommand{\ecvten}{\widehat{\text{Err}}^{(cv10)}} \newcommand{\eone}{\widehat{\text{Err}}^{(1)}} \newcommand{\eplus}{\widehat{\text{Err}}^{(.632+)}} \newcommand{\eoob}{\widehat{\text{Err}}^{(oob)}} \hyphenation{Qua-dra-tic} \newcommand{\Rpackage}[1]{{\normalfont\fontseries{b}\selectfont #1}} \newcommand{\Robject}[1]{\texttt{#1}} \newcommand{\Rclass}[1]{\textit{#1}} \newcommand{\Rcmd}[1]{\texttt{#1}} \newcommand{\Roperator}[1]{\texttt{#1}} \newcommand{\Rarg}[1]{\texttt{#1}} \newcommand{\Rlevel}[1]{\texttt{#1}} \newcommand{\RR}{\textsf{R}} \renewcommand{\S}{\textsf{S}} \SweaveOpts{eps=FALSE,keep.source=TRUE,echo=FALSE} %% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <>= library("coin") set.seed(290875) library("xtable") xtable.table <- function(x, ...) { tab2 <- function(x, pre = NULL, totals = TRUE) { if (totals) { x <- cbind(x, Total = rowSums(x)) x <- rbind(x, Total = colSums(x)) } if (!is.null(pre)) cat(pre, " & ") cat(" & ", paste(colnames(x), collapse = " & "), "\\\\ \\hline \n") tmp <- sapply(1:nrow(x), function(i) { if (!is.null(pre)) cat(" & ") cat(rownames(x)[i], " & ", paste(x[i,], collapse = " & "), " \\\\ \n") }) } if (length(dim(x)) == 2) { tab2(x, ...) } else { for (i in 1:dim(x)[3]) tab2(x[,,i], pre = dimnames(x)[[3]][i], ...) } } ### psoriasis data `psoriasis` <- structure(list(gender = structure(as.integer(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2)), .Label = c("Male", "Female"), class = "factor"), group = structure(as.integer(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3)), .Label = c("Control", "Early Onset", "Late Onset"), class = "factor"), TNFA_238 = structure(as.integer(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 3, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1)), .Label = c("GG", "GA", "AA"), class = "factor"), IL1B_511 = structure(as.integer(c(2, 1, 2, 2, 1, 2, 2, 2, 1, 3, 2, 3, 2, 2, 1, 2, 3, 1, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 3, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 3, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 3, 1, 1, 2, 2, 2, 1, 3, 3, 2, 2, 3, 1, 3, 1, 1, 1, 3, 2, 2, 1, 2, 2, 1, 2, 3, 2, 2, 1, 3, 2, 3, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 3, 2, 3, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 3, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 3, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 3, 2, 1, 1, 2, 2, 1, 3, 2, 2, 2, 1, 3, 2, 1, 2, 3, 2, 2, 2, 1, 2, 2, 2, 2, 1, 3, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 3, 2, 2, 2, 1, 3, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 3, 2, 2, 2, 2, 2, 3, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 3, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 3, 2, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 3, 2, 2, 3, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 3, 3, 1, 2, 2, 1, 1, 2, 1, 3, 1, 1, 2, 1, 2, 2, 2, 1, 3, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 3, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1)), .Label = c("CC", "CT", "TT"), class = "factor")), .Names = c("gender", "group", "TNFA_238", "IL1B_511"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576"), class = "data.frame") ### Bagos & Nikolopoulos (2007) example. `diabetes` <- structure(list(Study = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("S1", "S2", "S3", "S4"), class = "factor"), Group = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Cases", "Control"), class = "factor"), Locus = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("AA", "AB", "BB" ), class = "factor")), .Names = c("Study", "Group", "Locus" ), row.names = c(NA, 888L), class = "data.frame") @ %\VignetteIndexEntry{Order-restricted Scores Test} %\VignetteKeywords{genetic association, case-control study, robust trend test, maximum test, conditional inference} %\VignettePackage{coin} \title{Order-restricted Scores Test for the Evaluation of \\ Population-based Case-control Studies when the \\ Genetic Model is Unknown} \Shorttitle{Order-restricted Scores Test} \author{Ludwig A. Hothorn \\ Leibniz Universit\"at Hannover \And Torsten Hothorn \\ Ludwig-Maximilians-Universit{\"a}t M{\"u}nchen} \Plainauthor{Ludwig A. Hothorn, Torsten Hothorn} \Address{ Ludwig A. Hothorn \\ Institut f\"ur Biostatistik \\ Leibniz Universit\"at Hannover \\ Herrenh\"auser Stra{\ss}e 2 \\ DE--30419 Hannover, Germany \\ Torsten Hothorn\\ Institut f\"ur Statistik\\ Ludwig-Maximilians-Universit\"at M\"unchen\\ Ludwigstra{\ss}e 33\\ DE-80539 M\"unchen, Germany \\ E-mail: \email{Torsten.Hothorn@R-project.org}\\ URL: \url{http://www.stat.uni-muenchen.de/~hothorn/}\\ } \Abstract{ This is an preprint of an article to be published in \emph{Biometrical Journal}. Copyright \copyright{} 2009 WILEY-VCH Verlag GmbH \& Co. KGaA, Weinheim; available online at \url{http://www.biometrical-journal.com}. The Cochran-Armitage linear trend test for proportions is often used for genotype-based analysis of candidate gene association. Depending on the underlying genetic mode of inheritance, the use of model-specific scores maximises the power. Commonly, the underlying genetic model, i.e., additive, dominant or recessive mode of inheritance, is a priori unknown. Association studies are commonly analysed using permutation tests, where both inference and identification of the underlying mode of inheritance are important. Especially interesting are tests for case-control studies, defined by a maximum over a series of standardised Cochran-Armitage tests, because such a procedure has power under all three genetic models. We reformulate the test problem and propose a conditional maximum test of scores-specific linear-by-linear association tests \citep{bookagresti2002}. For maximum-type, sum and quadratic test statistics the asymptotic expectation and covariance can be derived in a closed form and the limiting distribution is known. Both the limiting distribution and approximations of the exact conditional distribution can easily be computed using standard software packages. In addition to these technical advances, we extend the area of application to stratified designs, studies involving more than two groups and the simultaneous analysis of multiple loci by means of multiplicity-adjusted $p$-values for the underlying multiple Cochran-Armitage trend tests. The new test is applied to reanalyse a study investigating genetic components of different subtypes of psoriasis. A new and flexible inference tool for association studies is available both theoretically as well as practically since already available software packages can be easily used to implement the suggested test procedures. } \Keywords{genetic association, case-control study, robust trend test, maximum test, conditional inference} \begin{document} \section{Objectives} In population-based case-control studies the association between a candidate allele and a disease can be evaluated by the Cochran-Armitage (CA) trend test \citep{Armitage:1955}, regardless of whether or not Hardy-Weinberg equilibrium holds \citep{Sasieni:1997}. The CA test is based on a set of scores assigned to the alleles. For genotypes $aa$, $Aa$, or $AA$, with $A$ denoting a high risk candidate allele and $a$ any of the other alleles, three-dimensional score vectors optimising the power of the CA test against dominant, additive, and recessive alternatives can be defined. If the underlying mode of inheritance is known, the choice of an appropriate score vector for the trend test is obvious. However, in situations where the underlying genetic model is unknown choosing the \textit{wrong} score vector leads to a substantial loss of power as shown by \citet{Freidlin:2002}. Therefore, inference procedures with good power under \textit{all} three genetic models are of special interest. An appealing approach is to construct a test based on all three possible trend tests, for example utilising the maximum of the standardised test statistics of the CA tests which are optimal under the dominant, additive, and recessive model. An unconditional version of this test was proposed and investigated by \citet{Freidlin:2002}. The distribution of this maximum test, called MAX test hereafter, under the null hypothesis of equal genotype distribution in cases and controls is approximated by simulation procedures by \citet{Freidlin:2002} since the unconditional asymptotic distribution is hard to derive. In this paper, we show that the conditional MAX test is a simple special case of a general class of linear statistics whose conditional distribution is easy to compute. Thus, without additional theoretical effort, the MAX test enjoys all the nice properties of this class of conditional tests. Therefore, we embed the MAX test as suggested by \citet{Freidlin:2002} into the flexible framework for conditional independence tests introduced by \citet{StrasserWeber1999}. The merits of doing so are i) the conditional reference distribution for the MAX test can be easily approximated either by evaluating a three-dimensional normal distribution or by conditional Monte Carlo experiments, ii) tests for stratified designs, designs with more than two groups and two or more loci can be defined in a rather straightforward way, iii) the most likely underlying mode of inheritance can be estimated by multiplicity-adjusted $p$-values for the three CA statistics under consideration, iv) the simultaneous analysis of multiple loci, and v) the analysis of genetic association studies using the MAX test and its newly introduced extension can be performed by already available software implementations of the \citet{StrasserWeber1999} framework. \section{Maximum Test} For case-control studies investigating the association between a binary phenotype and the measured alleles of a candidate gene the data are typically presented as empirical genotype distribution in each group. For a simple bi-allelic marker the data can be presented in a $3 \times 2$ contingency table, where $A$ is the high risk candidate allele and $a$ is any of the other alleles (see Table~\ref{gdistr}). \begin{table} \begin{center} \caption{Genotype distributions for cases and controls. \label{gdistr}} \vspace*{0.5cm} \begin{tabular}{l l l l} & Cases & Controls & Total \\ \hline $aa$ & $r_{aa}$ & $s_{aa}$ & $n_{aa}$\\ $aA$ & $r_{aA}$ & $s_{aA}$ & $n_{aA}$ \\ $AA$ & $r_{AA}$ & $s_{AA}$ & $n_{AA}$ \\ Total& $R$ & $S$ & $N$ \\ \hline \end{tabular} \end{center} \end{table} We are interested in a comparison of the genotype distributions, i.e., the penetrances $f_j = P(\text{case} | j)$ for $j \in \{aa, aA, AA\}$: \begin{eqnarray*} H_0: f_{aa} = f_{aA} = f_{AA} \text{ vs. } H_1: f_{aa} \le f_{aA} \le f_{AA} \end{eqnarray*} where at least one of the inequalities in the alternative is strict. The CA test statistic with scores $\mathbb{\xi} = (\xi_{aa}, \xi_{aA}, \xi_{AA})$ is essentially (modulo standardisation) \begin{eqnarray} \label{CAstat} \text{CA}(\mathbb{\xi}) = \sum_{j \in \{aa, aA, AA\}} \xi_j r_j. \end{eqnarray} If the mode of inheritance is best described by the dominant model, the scores $\mathbb{\xi}_\text{dom}=(0,1,1)$ ($f_{aa} < f_{aA} = f_{AA}$) will lead to a trend test with maximal power. Under the recessive model the score vector $\mathbb{\xi}_\text{rec}=(0,0,1)$ ($f_{aa} = f_{aA} < f_{AA}$) is power optimal whereas a linear trend represented by scores $\mathbb{\xi}_\text{add}=(0,1,2)$ should be chosen when the mode if inheritance is additive, i.e., $f_{aa} < f_{aA} < f_{AA}$ \citep{Sasieni:1997,Slager:2001}. However, the underlying genetic model is rarely known \textit{a priori}. Motivated by the problem of choosing the `right' score vector, \citet{Freidlin:2002} proposed the MAX unconditional test as the maximum of three standardised CA tests with scores $\mathbb{\xi}_\text{dom}, \mathbb{\xi}_\text{add}$, and $\mathbb{\xi}_\text{rec}$ as a global test for association. A similar approach \citep{Zheng:2003,Zheng:2008} is to introduce a parameter $\eta$ for the score vector $\mathbb{\xi}_\eta=(0,\eta,1)$ and to choose $\eta$ in a data-driven way. This procedure (based on a grid of $\eta$ values) is a special case of the general framework described in the following, see Appendix~\ref{ex} for more details. In the following, we reformulate the test problem and embed the MAX test into a general framework for conditional inference procedures, derive its limiting distribution and propose extensions to stratified designs, more than two groups and multiple loci. \subsection{Reformulation of the Problem} Let $\Y_i$ denote the case and control status and $\X_i$ the genotype for all cells $i = 1, \dots, n = 6$. The weights $w_i$ represent the number of observations in each cell with total number of observations $N = \sum_i w_i$. The influence function $h$ provides us with a zero-one dummy coding of the groups (being one for cases and zero for controls). Moreover, three transformations $g$ of the genotype are under test: $g_\text{dom}$ assigns scores $\xi_\text{dom}$ to genotypes $(aa, Aa, AA)$, $g_\text{add}$ assigns scores $\xi_\text{add}$ and $g_\text{rec}$ implements scores $\xi_\text{rec}$, cf. Table~\ref{gd}. \begin{table} \begin{center} \caption{Genotype distribution reformulated. \label{gd}} \vspace*{0.5cm} \begin{tabular}{lllc|cccc} $i$ & $\Y_i$ & $\X_i$ & $w_i$ & $h(\Y_i)$ & $g_\text{add}(\X_i)$ & $g_\text{dom}(\X_i)$ & $g_\text{rec}(\X_i)$ \\ \hline 1 & Case & $aa$ & $r_{aa}$ & 1 & 0 & 0 & 0 \\ 2 & Case & $Aa$ & $r_{aA}$ & 1 & 1 & 1 & 0 \\ 3 & Case & $AA$ & $r_{AA}$ & 1 & 2 & 1 & 1 \\ 4 & Control & $aa$ & $s_{aa}$ & 0 & 0 & 0 & 0 \\ 5 & Control & $Aa$ & $s_{aA}$ & 0 & 1 & 1 & 0 \\ 6 & Control & $AA$ & $s_{AA}$ & 0 & 2 & 1 & 1 \\ \hline \end{tabular} \end{center} \end{table} \subsection{Inference Problem and Linear Statistic} We are interested in testing the null hypothesis of independence of grouping $\Y$ and genotype $\X$, i.e., the equality of the distribution $D(\Y)$ to the conditional distribution $D(\Y | \X)$ of $\Y$ given $\X$ \begin{eqnarray*} H_0: D(\Y | \X) = D(\Y) \end{eqnarray*} against ordered alternatives. First, we define a three-dimensional statistic $\T$, each dimension being associated with one of the scores $g_\text{add}$, $g_\text{dom}$, and $g_\text{rec}$. Each statistic is defined by the sum of the scores multiplied by the weights associated with cases, i.e., is equivalent to the Cochran-Armitage statistic (\ref{CAstat}): \begin{eqnarray} \label{linstat} \T = (\T_\text{add}, \T_\text{dom}, \T_\text{rec}) = \sum_{i = 1}^n w_i g(\X_i) h(\Y_i) \in \R^{3} \end{eqnarray} with $g(\X_i) = (g_\text{add}(\X_i), g_\text{dom}(\X_i), g_\text{rec}(\X_i))$. Thus, the three-dimensional linear statistic $\T$ is the vector of the unstandardised Cochran-Armitage statistics $(\text{CA}(\xi_\text{dom}), \text{CA}(\xi_\text{add}), \text{CA}(\xi_\text{rec}))$ for the dominant, additive, and recessive model. \subsection{Conditional Expectation and Covariance} The distribution of $\T$ depends on the joint distribution of $\Y$ and $\X$, which is unknown under almost all practical circumstances. At least under the null hypothesis one can dispose of this dependency by fixing the genotypes and conditioning on all possible permutations of the groups. This principle leads to test procedures known as \textit{permutation tests}. \citet{StrasserWeber1999} derived closed-form expressions for the conditional expectation $\mu \in \R^{pq}$ and covariance $\Sigma \in \R^{3 \times 3}$ of $\T$ under $H_0$ given all permutations of the groupings. The conditional expectation of the influence function $h$ is \begin{eqnarray*} \E(h) = N^{-1} \sum_i w_i h(\Y_i) \in \R \end{eqnarray*} with corresponding variance \begin{eqnarray*} \V(h) = N^{-1} \sum_i w_i \left(h(\Y_i) - \E(h)\right)^2. \end{eqnarray*} The conditional expectation of the linear statistic $\T$ is \begin{eqnarray} \mu & = & \E(\T) = \E(h) \sum_{i = 1}^n w_i g(\X_i), \nonumber \\ \Sigma & = & \V(\T) \nonumber \\ & = & \frac{N}{N - 1} \V(h) \times \left(\sum_i w_i \left( g(\X_i) g(\X_i)^\top\right) \right) \label{expectcovar} \\ & - & \frac{1}{N - 1} \V(h) \times \left( \sum_i w_i g(\X_i) \right) \left( \sum_i w_i g(\X_i)\right)^\top. \nonumber \end{eqnarray} The three-dimensional expectation $\mu$ and the three diagonal elements of the covariance matrix $\Sigma$ contain the mean and the variances for the additive, dominant and recessive (unstandardised) Cochran-Armitage statistics under $H_0$, as given in (\ref{CAstat}) and (\ref{linstat}), respectively. Note that the complete covariance structure, and thus the correlation between the elements of the three-dimensional statistic $\T$, is known and can be computed for the data at hand. The corresponding correlation matrix coincides with the correlations obtained for the three CA test statistics by \citet{Freidlin:2002}. \subsection{Test Statistics} Based on the three-dimensional statistic $\T$ and its expectation $\mu$ and covariance matrix $\Sigma$, we can easily construct test statistics and derive their distribution under the conditions described in the null hypothesis. As the number of observations $N$ tends to infinity, \citet{StrasserWeber1999} proved that the limiting distribution of the three-dimensional statistic $\T$ is a three-dimensional normal distribution with expectation $\mu$ and covariance $\Sigma$. Thus, the asymptotic distribution of a maximum-type statistic \begin{eqnarray*} c_\text{max}(\T, \mu, \Sigma) = \max \left| \frac{\T - \mu}{\text{diag}(\Sigma)^{1/2}} \right| \end{eqnarray*} can be evaluated by computing three-dimensional normal probabilities. Here, $\text{diag}(\Sigma)^{1/2}$ are the conditional standard deviations of the elements of $\T$. Alternatively, either the sum (or average) statistic \begin{eqnarray*} c_\text{sum} = \frac{\mathbf{1}^\top \T - \mathbf{1}^\top\mu}{\mathbf{1}^\top \Sigma \mathbf{1}}, \quad \mathbf{1} = (1, 1, 1)^\top \end{eqnarray*} or a quadratic form based on the Moore-Penrose inverse $\Sigma^+$ of the conditional covariance matrix $\Sigma$, i.e., \begin{eqnarray*} c_\text{quad}(\T, \mu, \Sigma) = (\T - \mu)^\top \Sigma^+ (\T - \mu) \end{eqnarray*} can be used and follow a standard normal or a $\chi^2$ distribution with two degrees of freedom, respectively. The sum and quadratic form statistics, which are competitors for the MAX test statistic, reveal high power for an average alternative while the maximum-type form for a particular genetic alternative. In addition, simple linear combinations of the standardised optimum tests for each of the models have been proposed \citep{Gastwirth:1985}. Often the most appropriate test is not the average of all these tests but a linear combination of a few ``extreme'' members. Nonlinear MAX type tests have greater efficiency robustness properties when the minimum correlation between the optimal tests for the models considered is less than $.70$ \citep{Freidlin+Podgor+Gastwirth:1999}, therefore, we focus on the MAX test. A further advantage of maximum-type statistics is that information about the likely genetic model underlying the data is available using multiplicity-adjusted $p$-values. Note that, under any circumstances, the exact conditional distribution can be approximated by conditional Monte Carlo methods, which is especially attractive for small sample sizes $N$ when we can not expect asymptotics to work well. \subsection{Illustration} In order to compare the conditional test and its implementation with the unconditional results reported by \citet{Freidlin:2002}, we reanalyse a study on the association between a variant of the epidermal growth factor (EGF) gene and malignant melanoma according to \citet[Table~\ref{mel},][]{Shahbazi:2002}. <>= me <- as.table(matrix(c( 6, 8, 10, 32, 47, 20), byrow = TRUE, nrow = 2, dimnames = list(Group = c("In situ", "Control"), Genotype = c("AA", "AG", "GG")))) me <- t(me) @ \begin{table} \begin{center} \caption{Melanoma data. \label{mel}} \vspace*{0.5cm} \begin{tabular}{l l l l l} <>= xtable.table(me) @ \hline \end{tabular} \end{center} \end{table} <>= add <- c(0, 1, 2) dom <- c(0, 1, 1) rec <- c(0, 0, 1) g <- function(x) { x <- unlist(x) cbind(dominant = dom[x], additive = add[x], recessive = rec[x]) } it <- independence_test(me, xtrafo = g, alternative = "greater") CA <- statistic(it, type = "linear") CAstand <- statistic(it, type = "standardized") pasympt <- pvalue(it, method = "single-step") itp <- independence_test(me, xtrafo = g, distribution = approximate(B = 49999), alternative = "greater") papprox <- pvalue(itp, method = "step-down") out <- cbind(CA, round(expectation(it), 4), round(sqrt(variance(it)), 4), round(CAstand, 4), round(pasympt, 4), round(papprox, 4)) rownames(out) <- rownames(CA) out[,2] <- formatC(out[,2], digits = 4, format = "f") @ The linear statistic $\T$, its conditional expectation $\mu$, the standard deviations $\sigma = \sqrt{\text{diag}(\Sigma)}$, and the corresponding standardised CA statistics are given in Table~\ref{melres}. In addition, we immediately are provided with the covariance matrix \begin{eqnarray*} \Sigma = \left( \begin{array}{rrr} <>= S <- round(covariance(it), 4) S <- formatC(S, digits = 4, format = "f") for (i in 1:nrow(S)) cat(paste(S[i,], collapse = " & "), "\\\\ \n") @ \end{array} \right) \end{eqnarray*} and corresponding correlation matrix \begin{eqnarray*} \text{cor}(\Sigma) = \left( \begin{array}{rrr} <>= S <- round(cov2cor(covariance(it)), 4) S <- formatC(S, digits = 4, format = "f") for (i in 1:nrow(S)) cat(paste(S[i,], collapse = " & "), "\\\\ \n") @ \end{array} \right) \end{eqnarray*} These values are similar to the correlations between the three different CA test statistics as reported by \citet{Freidlin:2002}. \begin{table} \begin{center} \caption{MAX test for Melanoma data with linear statistic $\T$, its conditional expectation $\mu$, standard deviation $\sigma$ and corresponding standardised statistic along with multiplicity-adjusted $p$-values. \label{melres}} \vspace*{0.5cm} \begin{tabular}{l l l l l l l l} & $\T$ & $\mu$ & $ \sigma$ & $(\T - \mu) / \sigma$ & $p_\text{asympt}$ & $p_\text{step-down}$ \\ \hline <>= for (i in 1:nrow(out)) cat(rownames(out)[i], " & ", paste(out[i,], collapse = " & "), "\\\\ \n") @ \hline \end{tabular} \end{center} \end{table} The MAX test has a test statistic equal to $\Sexpr{round(max(CAstand), 4)}$ and its asymptotic $p$-value is \Sexpr{round(min(pasympt), 4)} (the minimum of $p_\text{asympt}$ in Table~\ref{melres}) which is roughly the same $p$-value as shown in Table~8 of \citet{Freidlin:2002}. However, this global $p$-value does not give any information about the underlying genetic model. Multiplicity-adjusted $p$-values ($p_\text{asympt}$ in Table~\ref{melres}) for each of the dominant, additive, and recessive tests indicate which mode of inheritance describes the data best (see Section~\ref{sim} in addition): These results suggest that the cancer follows a recessive model, although an additive or intermediate model cannot be ruled out based on these data. We might want to check whether the asymptotic approximation work well enough in this situation. The exact conditional $p$-value is approximated by a conditional Monte Carlo procedure with $49999$ random permutations of the data and the corresponding step-down multiplicity-adjusted $p$-values \citep{WestfallYoung1993} are given as $p_\text{step-down}$ in Table~\ref{melres}. The small differences between the asymptotic and approximated $p$-values indicates that using the asymptotic distribution is adequate. \subsection{Generalisations} A straightforward generalisation is the consideration of $3 \times k$ tables instead of $3 \times 2$ tables, where sub-types of cases are compared with a control. For example, the genotype distribution of the control can compare the genotype of cases with early and late onset of a certain disease. A score can be attached to each group, for example $1$ to the control group and $-1/2$ for both the early and late onset cases leading to a linear-by-linear association test. Alternatively, a trend in the onset of the disease can be described by scores $0, 1, 2$ for the three groups. In stratified designs, only permutations within each stratum, gender or family history, are admissible; therefore, the expectation $\mu$ and covariance $\Sigma$ has to be computed separately for each stratum and is then aggregated over all possible strata. A special version of a stratified design is the commonly used meta-analysis, including several independent studies as strata, see e.g. \citet{Kavvoura2008}. In the absence of a a priori assumption for a particular mode of inheritance, recently \citet{Salanti2008} proposed a Bayesian approach. In a recent meta-analysis of genome-wide association studies variants on chromosome 9p21.3 were identified affecting the coronary artery disease \citep{Schunkert2008} where all seven studies revealed the same additive mode of inheritance using the here proposed approach. Finally, it is interesting to consider multiple loci, i.e., multiple genotype distributions, simultaneously. For two loci, we can look at all six CA tests by defining a linear statistic $\T$ containing the three CA tests for the first as well as the three CA tests for the second locus. As a consequence, we can compute the complete covariance matrix and take the underlying correlations between the two loci as well as between the three genetic models into account. \section{Illustration and Application} \begin{table}[t!] \begin{center} \caption{Psoriasis data \label{reich}} \vspace*{0.5cm} \begin{tabular}{llllll} \\ \multicolumn{6}{c}{IL1B\_511 locus} \\ \multicolumn{6}{c}{} \\ <>= xtable(xtabs(~ IL1B_511 + group + gender, data = psoriasis)) @ \multicolumn{6}{c}{} \\ \multicolumn{6}{c}{TNFA\_238 locus} \\ \multicolumn{6}{c}{} \\ <>= xtable(xtabs(~ TNFA_238 + group + gender, data = psoriasis)) @ \hline \end{tabular} \end{center} \end{table} \citet{Reich:2002} investigate the association between psoriasis and polymorphisms of genes encoding tumour necrosis Factor-$\alpha$ and Interleukin-$1\beta$ where for the IL1B\_511 locus the related $3 \times 2$ table data are given in Table~\ref{reich}. A control group and two groups of affected people with early and late onset of the disease are under test. One is interested in detecting any deviation from independence of genotype distribution for both loci and the three groups in either females and / or males. Attaching scores $1, -1/2, -1/2$ to the control, early and late onset group results in a linear statistic $\T$ with six elements: three models for each of the two loci. <>= it <- independence_test(TNFA_238 + IL1B_511 ~ group | gender, data = psoriasis, ytrafo = function(data) trafo(data, factor_trafo = g), scores = list(group = c(1, -1/2, -1/2)), alter = "tw") pvals <- matrix(round(pvalue(it, method = "single-step"), 4), nr = 3) pvals[pvals < 0.01] <- "$< 0.0001$" rownames(pvals) <- c("dominant", "additive", "recessive") @ The multiplicity-adjusted $p$-values in Table~\ref{pstab} indicate that there is a strong deviation from independence for the TNFA\_238 locus. The recessive model has the largest $p$-value and thus it is not likely that this model is true. The $p$-values for the dominant and the additive are extremely small, so either of these models could have generated the data. We can simultaneously reject the null hypothesis of independence between the genotype distribution of the IL1B\_511 locus and the three groups. Here, the dominant model seems to explain the data best. Our analysis improves upon the original analysis of these data by \citet{Reich:2002} with respect to three points: All three groups and the stratification by gender are taken into account and and the new test makes use of the correlation between the two loci instead of applying a Bonferroni correction in order to maintain an overall significance level. \begin{table} \begin{center} \caption{MAX test for psoriasis data: Asymptotic multiplicity-adjusted $p$-values. \label{pstab}} \vspace*{0.5cm} \begin{tabular}{lrr} & TNFA\_238 & IL1B\_511 \\ \hline <>= for (i in 1:nrow(pvals)) cat(rownames(pvals)[i], " & ", paste(pvals[i,], collapse = "&"), "\\\\ \n") @ \hline \end{tabular} \end{center} \end{table} Recently, \citet{Bagos2007} proposed a penalty-free selection approach for the underlying mode of inheritance based on the parameter estimates in a logistic regression model. Here, we re-analyse their meta-analysis data on the association of KIR6.2 gene polymorphism with type II diabetes \citep[Table~1 on page 3 in][]{Bagos2007}. <>= bit <- independence_test(Group ~ Locus | Study, data = diabetes, xtrafo = g, alternative = "greater") bCA <- statistic(bit, type = "linear") bCAstand <- statistic(bit, type = "standardized") bpasympt <- pvalue(bit, method = "single-step") bitp <- independence_test(Group ~ Locus | Study, data = diabetes, xtrafo = g, distribution = approximate(B = 49999), alternative = "greater") bpapprox <- pvalue(bitp, method = "step-down") out <- cbind(bCA, round(expectation(bit), 4), round(sqrt(variance(bit)), 4), round(bCAstand, 4), round(bpasympt, 4), round(bpapprox, 4)) rownames(out) <- rownames(bCA) out[,2] <- formatC(out[,2], digits = 4, format = "f") @ \begin{table} \begin{center} \caption{MAX test for Type II diabetes data with linear statistic $\T$, its conditional expectation $\mu$, standard deviation $\sigma$ and corresponding standardised statistic along with multiplicity-adjusted $p$-values. \label{diares}} \vspace*{0.5cm} \begin{tabular}{l l l l l l l l} & $\T$ & $\mu$ & $ \sigma$ & $(\T - \mu) / \sigma$ & $p_\text{asympt}$ & $p_\text{step-down}$ \\ \hline <>= for (i in 1:nrow(out)) cat(rownames(out)[i], " & ", paste(out[i,], collapse = " & "), "\\\\ \n") @ \hline \end{tabular} \end{center} \end{table} \section{Simulation Experiments} \label{sim} It might be questioned if the minimal $p$-value can be observed for the correct mode of inheritance with high probability and thus how good the `estimator' is under practical circumstances. The frequency of correct model identifications and the power of the MAX test is investigated in some simple situations in the following. Many different patterns of penetrances $f_j$, $j \in \{aa, aA, AA\}$, disease prevalence $p$, sample size of cases and controls $R$, $S$ can be investigated in a simulation study. We will focus on a high prevalent disease (i.e., $p=0.5$), penetrances according to an additive, recessive and dominant genetic model (as well as no association characterising the null hypothesis) for a total sample size of $N=400$ divided into the balanced $R=S=200$ and several unbalanced sampling schemes. Unbalanced data are of interest because real data examples exist with seriously higher control sample size, see e.g. the data in Table~\ref{mel}, or with more cases, see e.g. the IL13 polymorphism in atopic dermatitis \cite{Neuhauser:2002}, Table 4. For the proposed MAX test both the global power $\pi_\text{global}$(the decision rate in favour of any alternative) and the correct model identification rates $\psi_\text{add}$,$\psi_\text{rec}$,$\psi_\text{dom}$ are compared with the power of the individual genetic model tests $\pi_\text{add}$, $\pi_\text{rec}$, $\pi_\text{dom}$ in Table~\ref{simtab}. \begin{table} \begin{center} \caption{Type I error rate and empirical power estimates ($\pi$) for prevalence $p=0.5$ based on 10000 runs with sample sizes $R$ (cases) and $S$ (controls) along with correct model identification rates $\psi$. \label{simtab}} \vspace*{0.5cm} \begin{tabular}{l l l l| l l l |l l l} Model & R & S & $\pi_{\text{global}}$ & $\psi_\text{add}$ & $\psi_\text{rec}$ & $\psi_\text{dom}$ & $\pi_\text{add}$ & $\pi_\text{rec}$ & $\pi_\text{dom}$ \\ \hline Null & 200 & 200 & 0.048& 0.012 & 0.017& 0.019 & 0.051 & 0.047 & 0.049 \\ dominant & 200 & 200 & 0.85 & 0.13 & 0.01 & \textit{0.71} & 0.75 & 0.23 & \textbf{0.91} \\ additive & 200 & 200 & 0.84 & \textit{0.53} & 0.10 & 0.21 & \textbf{0.88} & 0.71 & 0.78 \\ recessive & 200 & 200 & 0.86 & 0.16 & \textit{0.69} & 0.01 & 0.80 & \textbf{0.91} & 0.28 \\ dominant & 100 & 300 & 0.72 & 0.16 & 0.01 & \textit{0.55}& 0.63 & 0.21 & \textbf{0.80} \\ additive & 100 & 300 & 0.73 & \textit{0.43} & 0.14 & 0.16 & \textbf{0.78} & 0.60 & 0.65 \\ recessive & 100 & 300 & 0.77 & 0.16 & \textit{0.60} & 0.01 & 0.67 & \textbf{0.82} & 0.22 \\ dominant & 300 & 100 & 0.76 & 0.11 & 0.01 & \textit{0.64} & 0.66 & 0.19 & \textbf{0.82} \\ additive & 300 & 100 & 0.75 & \textit{0.42} & 0.09 & 0.24 & \textbf{0.79} & 0.59 & 0.69 \\ recessive & 300 & 100 & 0.75 & 0.17 & \textit{0.55} & 0.01 & 0.69 & \textbf{0.82 }& 0.24 \\ \hline \end{tabular} \end{center} \end{table} Per definition all tests control the type I error rates. Clearly, the power is maximal for the individual, unadjusted tests when the genetic model is known (bold marked). But the a priori knowledge of the genetic model is commonly unrealistic. For balanced samples sizes the power of the MAX test is independent of the underlying genetic model and marginal smaller compared with the maximum power for the known model. Additionally to the global decision that a significant association exists, the MAX test provide an adjusted $p$-value for the most likely genetic model. In this case, the identification of the additive model is most difficult because of the two equal competitors; whereas the identification of the dominant or recessive model is easier because the additive model is the only competitor. For unbalanced designs the power decreases although the total sample size remains constant. \section{Computational Details} \label{Comp} The \Rpackage{coin} add-on package \citep{Hothorn:2006:AmStat, Hothorn+Hornik+VanDeWiel:2008, PKG:coin} to the \textsf{R} system for statistical computing \citep{rcore2007} provides an implementation of the conditional inference framework sketched in this section. The analysis of an association study by the MAX test only requires the user to set-up the score function $g$. Then, the function \texttt{independence\_test} can be used to perform the MAX test and to compute multiplicity-adjusted $p$-values. \section{Conclusions} We propose a flexible approach to permutation tests for association of a bi-allelic marker with a disease in population-based case-control studies. The joint conditional asymptotic distribution of the three underlying linear association tests, i.e., Cochran-Armitage tests with optimal scores for additive, dominant, and recessive modes of inheritance, is known and can be used to approximate the distribution of the corresponding maximum statistic. Not only a global $p$-value can be derived this way but also multiplicity-adjusted $p$-values for each of the individual models. When the mode of inheritance is unknown, remarkably high correct model selection rates can be achieved. Based on a general framework for conditional inference we extend the MAX test to stratified designs, $3 \times k$ tables as well as multiple loci. Correlations between loci and corresponding association tests are taken into account leading to more powerful multiple test procedure. Further modifications and extensions and specific choices of $g$ and $h$ are described by \cite{Hothorn:2006:AmStat} and \cite{Hothorn+Hornik+VanDeWiel:2008}. For small sample sizes, a better approximation of the $p$-values can be obtained from Monte Carlo resampling techniques. For genome-wide association studies, computing time is a limiting factor; a further advantage for the above approach \citep{Ziegler2008}. The proposed procedures are easily applicable using the computational tools provided by the \textsf{R} add-on package \Rpackage{coin} as illustrated in Appendix~\ref{ex}. A future modification will be the use of model-specific genomic-control corrected tests analogously to \citet{Zang:2007} in the possible case of population stratification. \section{Acknowledgements} We would like to thank Andreas Ziegler and Inke R. Koenig for providing us with the psoriasis data. \bibliography{references} \newpage \begin{appendix} \section{Example Analyses} \label{ex} The Melanoma data are represented by a \texttt{table} object in \textsf{R} as follows: <>= me <- as.table(matrix(c( 6, 8, 10, 32, 47, 20), byrow = TRUE, nrow = 2, dimnames = list(Group = c("In situ", "Control"), Genotype = c("AA", "AG", "GG")))) me <- t(me) me @ The function $g$ is implemented by the following function: <>= add <- c(0, 1, 2) dom <- c(0, 1, 1) rec <- c(0, 0, 1) g <- function(x) { x <- unlist(x) cbind(dominant = dom[x], additive = add[x], recessive = rec[x]) } @ which then sets up the MAX test for the Melanoma data: <>= library("coin") it <- independence_test(me, xtrafo = g, alternative = "greater") it @ The multiplicity-adjusted $p$-values for both inference and estimating the underlying mode of inheritance are computed via: <>= pvalue(it, method = "single-step") @ <>= drop(pvalue(it, method = "single-step")) @ The score independent approach by \cite{Zheng:2008} maximises the Cochran-Armitage statistic over potential score vectors $\xi_\eta = (0, \eta, 1)$, i.e., one is interested in the test statistic $c_\text{max}$ where the maximium is taken over a grid of $\eta$ values. This procedure can be performed by choosing appropriate transformation $g$, i.e., a grid of $\eta$ values in $[0,1]$ <>= gZheng <- function(x) { x <- unlist(x) eta <- seq(from = 0, to = 1, by = 0.01) tr <- sapply(eta, function(n) c(0, n, 1)[x]) colnames(tr) <- paste("eta", eta, sep = "_") tr } itZ <- independence_test(me, xtrafo = gZheng, alternative = "greater") itZ @ <>= pvalue(itZ, method = "single-step") @ <>= drop(pvalue(itZ, method = "single-step")) @ The test statistic takes its maximum for the score $(0, 0, 1)$ (as above), its corresponding adjusted $p$-value is only marginally larger compared to the MAX test based on three score vectors (\Sexpr{round(pvalue(itZ, method = "single-step")[1], 5)} vs. \Sexpr{round(pvalue(it)[1], 5)}). \end{appendix} \end{document} <>= library("coin") assocAS <- function(x, scores = 1:ncol(x), ...) { if (!is.table(x)) stop(sQuote("x"), " is not a table.") if (length(scores) != ncol(x)) stop("Length of ", sQuote(scores), " does not match ", sQuote("ncol(x)")) xtab <- as.vector(t(x)) tmpdat <- data.frame(groups = factor(rep(paste("G", 1:nrow(x), sep = ""), rowSums(x))), scores1 = rep(rep(scores, nrow(x)), xtab), scores2 = rep(rep(c(scores[1], scores[2], scores[2]), nrow(x)), xtab), scores3 = rep(rep(c(scores[1], scores[1], scores[2]), nrow(x)), xtab)) independence_test(scores1 + scores2 + scores3 ~ groups, data = tmpdat, ...) } set.seed(17057711) SIMG=function (sims,R,S,p,f0,f1,f2) { #sims=10000 #R=200; S=200; #p=0.2; f0=0.1; f1=0.1; f2=0.3 phi=f2*(p**2)+(2*f1)*((1-p)*p)+f0*((1-p)**2) p0=(f0*(1-p)**2)/phi p1=(2*f1*(1-p)*p)/phi p2=(f2*p**2)/phi q0=((1-f0)*(1-p)**2)/(1-phi) q1=(2*(1-f1)*(1-p)*p)/(1-phi) q2=((1-f2)*p**2)/(1-phi) Probs=list(c(p2,p1,p0), c(q2,q1,q0)) # ansteigend ntotal=c(R,S) assocASsim <- function(n = sims, ngroup = ntotal, probs =Probs, scores = 1:3, ...) { g1 <- rmultinom(n, ngroup[1], probs[[1]]) g2 <- rmultinom(n, ngroup[2], probs[[2]]) padj <- matrix(0, nrow = n, ncol = length(scores)) praw <- matrix(0, nrow = n, ncol = length(scores)) for (i in 1:n) { x <- as.table(rbind(g1[,i], g2[,i])) it <- assocAS(x, scores = scores, ...) ### adjusted p-value padj[i,] <- pvalue(it, method = "single-step") ### raw p-value praw[i,] <- pnorm(statistic(it, type = "standardized")) } list(padj = padj, praw = praw) } tw <- assocASsim(alternative = "less") ### minimum p-value erg=table(apply(tw$padj, 1, which.min)) welchmin=apply(tw$padj, 1, which.min) nwelc=factor(welchmin, levels=c(1,2,3)) kleinst=apply(tw$padj, 1, min) gg=kleinst<0.05 fgg=factor(gg, levels=c(TRUE, FALSE)) oma=table(nwelc,fgg) est1=oma[1,1]/sims est2=oma[2,1]/sims est3=oma[3,1]/sims estMax=length(which(tw$padj[,1]<0.05 | tw$padj[,2]<0.05 |tw$padj[,3]<0.05))/sims estA=length(which(tw$praw[,1]<0.05))/sims estR=length(which(tw$praw[,2]<0.05))/sims estD=length(which(tw$praw[,3]<0.05))/sims ergeb=c("Max"=estMax,"MaxA"=est1,"MaxR"=est2,"MaxD"=est3,"Add"=estA, "Rec"=estR, "Dom"=estD, "p"=p,"f0"=f0,"f1"=f1,"f2"=f2,"cas"=R, "con"=S ) ergeb } SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1,f2=0.1) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=180,S=220,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=150,S=250,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.187, f2=0.187) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.16,f1=0.26, f2=0.36) SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.2,f1=0.2, f2=0.7) SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.2,f1=0.35, f2=0.35) SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.187, f2=0.187) SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.187, f2=0.187) SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.175) @ coin/inst/doc/coin.R0000644000176200001440000001307013133077371014005 0ustar liggesusers### R code from vignette source 'coin.Rnw' ################################################### ### code chunk number 1: setup ################################################### options(width = 60) require("coin") set.seed(290875) ################################################### ### code chunk number 2: YOY-kruskal ################################################### library("coin") YOY <- data.frame( length = c(46, 28, 46, 37, 32, 41, 42, 45, 38, 44, 42, 60, 32, 42, 45, 58, 27, 51, 42, 52, 38, 33, 26, 25, 28, 28, 26, 27, 27, 27, 31, 30, 27, 29, 30, 25, 25, 24, 27, 30), site = gl(4, 10, labels = as.roman(1:4)) ) it <- independence_test(length ~ site, data = YOY, ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo), teststat = "quadratic") it ################################################### ### code chunk number 3: YOY-T ################################################### statistic(it, type = "linear") ################################################### ### code chunk number 4: YOY-EV ################################################### expectation(it) covariance(it) ################################################### ### code chunk number 5: YOY-S ################################################### statistic(it, type = "standardized") ################################################### ### code chunk number 6: YOY-c ################################################### statistic(it) ################################################### ### code chunk number 7: YOY-p ################################################### pvalue(it) ################################################### ### code chunk number 8: YOY-KW ################################################### kt <- kruskal_test(length ~ site, data = YOY, distribution = approximate(B = 10000)) kt ################################################### ### code chunk number 9: YOY-KWp ################################################### pvalue(kt) ################################################### ### code chunk number 10: jobsatisfaction-cmh ################################################### data("jobsatisfaction", package = "coin") ct <- cmh_test(jobsatisfaction) ct ################################################### ### code chunk number 11: jobsatisfaction-s ################################################### statistic(ct, type = "standardized") ################################################### ### code chunk number 12: jobsatisfaction-lbl ################################################### lbl_test(jobsatisfaction) ################################################### ### code chunk number 13: jobsatisfaction-lbl-sc ################################################### lbl_test(jobsatisfaction, scores = list(Job.Satisfaction = c(1, 3, 4, 5), Income = c(3, 10, 20, 35))) ################################################### ### code chunk number 14: jobsatisfaction-lbl-sc-alt ################################################### lbl_test(jobsatisfaction, ytrafo = function(data) trafo(data, ordered_trafo = function(y) of_trafo(y, scores = c(1, 3, 4, 5))), xtrafo = function(data) trafo(data, ordered_trafo = function(x) of_trafo(x, scores = c(3, 10, 20, 35)))) ################################################### ### code chunk number 15: eggs-Durbin ################################################### egg_data <- data.frame( scores = c(9.7, 8.7, 5.4, 5.0, 9.6, 8.8, 5.6, 3.6, 9.0, 7.3, 3.8, 4.3, 9.3, 8.7, 6.8, 3.8, 10.0, 7.5, 4.2, 2.8, 9.6, 5.1, 4.6, 3.6, 9.8, 7.4, 4.4, 3.8, 9.4, 6.3, 5.1, 2.0, 9.4, 9.3, 8.2, 3.3, 8.7, 9.0, 6.0, 3.3, 9.7, 6.7, 6.6, 2.8, 9.3, 8.1, 3.7, 2.6, 9.8, 7.3, 5.4, 4.0, 9.0, 8.3, 4.8, 3.8, 9.3, 8.3, 6.3, 3.8), sitting = factor(rep(c(1:15), rep(4, 15))), product = factor(c(1, 2, 4, 5, 2, 3, 6, 10, 2, 4, 6, 7, 1, 3, 5, 7, 1, 4, 8, 10, 2, 7, 8, 9, 2, 5, 8, 10, 5, 7, 9, 10, 1, 2, 3, 9, 4, 5, 6, 9, 1, 6, 7, 10, 3, 4, 9, 10, 1, 6, 8, 9, 3, 4, 7, 8, 3, 5, 6, 8)) ) independence_test(scores ~ product | sitting, data = egg_data, teststat = "quadratic", ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting)) ################################################### ### code chunk number 16: eggs-Durbin-approx ################################################### pvalue(independence_test(scores ~ product | sitting, data = egg_data, teststat = "quadratic", ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting), distribution = approximate(B = 19999))) ################################################### ### code chunk number 17: eggs-Page ################################################### independence_test(scores ~ product | sitting, data = egg_data, ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting), scores = list(product = 1:10)) ################################################### ### code chunk number 18: warpbreaks-Tukey ################################################### it <- independence_test(length ~ site, data = YOY, xtrafo = mcp_trafo(site = "Tukey"), teststat = "maximum", distribution = "approximate") pvalue(it) pvalue(it, method = "single-step") coin/inst/doc/LegoCondInf.Rnw0000644000176200001440000012704113022241076015545 0ustar liggesusers\documentclass{article} \usepackage{amstext} \usepackage{amsfonts} \usepackage{hyperref} \usepackage[round]{natbib} \renewcommand{\refname}{REFERENCES} \usepackage{hyperref} \usepackage{graphicx} \usepackage{rotating} %%\usepackage[nolists]{endfloat} %%\usepackage{Sweave} %%\VignetteIndexEntry{A Lego System for Conditional Inference} \newcommand{\Rpackage}[1]{{\normalfont\fontseries{b}\selectfont #1}} \newcommand{\Robject}[1]{\texttt{#1}} \newcommand{\Rclass}[1]{\textit{#1}} \newcommand{\Rcmd}[1]{\texttt{#1}} \newcommand{\Roperator}[1]{\texttt{#1}} \newcommand{\Rarg}[1]{\texttt{#1}} \newcommand{\Rlevel}[1]{\texttt{#1}} \newcommand{\RR}{\textsf{R}} \renewcommand{\S}{\textsf{S}} \newcommand{\R}{\mathbb{R} } \newcommand{\Prob}{\mathbb{P} } \newcommand{\N}{\mathbb{N} } \newcommand{\C}{\mathbb{C} } \newcommand{\V}{\mathbb{V}} %% cal{\mbox{\textnormal{Var}}} } \newcommand{\E}{\mathbb{E}} %%mathcal{\mbox{\textnormal{E}}} } \newcommand{\Var}{\mathbb{V}} %%mathcal{\mbox{\textnormal{Var}}} } \newcommand{\argmin}{\operatorname{argmin}\displaylimits} \newcommand{\argmax}{\operatorname{argmax}\displaylimits} \newcommand{\LS}{\mathcal{L}_n} \newcommand{\TS}{\mathcal{T}_n} \newcommand{\LSc}{\mathcal{L}_{\text{comb},n}} \newcommand{\LSbc}{\mathcal{L}^*_{\text{comb},n}} \newcommand{\F}{\mathcal{F}} \newcommand{\A}{\mathcal{A}} \newcommand{\yn}{y_{\text{new}}} \newcommand{\z}{\mathbf{z}} \newcommand{\X}{\mathbf{X}} \newcommand{\Y}{\mathbf{Y}} \newcommand{\sX}{\mathcal{X}} \newcommand{\sY}{\mathcal{Y}} \newcommand{\T}{\mathbf{T}} \newcommand{\x}{\mathbf{x}} \renewcommand{\a}{\mathbf{a}} \newcommand{\xn}{\mathbf{x}_{\text{new}}} \newcommand{\y}{\mathbf{y}} \newcommand{\w}{\mathbf{w}} \newcommand{\ws}{\mathbf{w}_\cdot} \renewcommand{\t}{\mathbf{t}} \newcommand{\M}{\mathbf{M}} \renewcommand{\vec}{\text{vec}} \newcommand{\B}{\mathbf{B}} \newcommand{\K}{\mathbf{K}} \newcommand{\W}{\mathbf{W}} \newcommand{\D}{\mathbf{D}} \newcommand{\I}{\mathbf{I}} \newcommand{\bS}{\mathbf{S}} \newcommand{\cellx}{\pi_n[\x]} \newcommand{\partn}{\pi_n(\mathcal{L}_n)} \newcommand{\err}{\text{Err}} \newcommand{\ea}{\widehat{\text{Err}}^{(a)}} \newcommand{\ecv}{\widehat{\text{Err}}^{(cv1)}} \newcommand{\ecvten}{\widehat{\text{Err}}^{(cv10)}} \newcommand{\eone}{\widehat{\text{Err}}^{(1)}} \newcommand{\eplus}{\widehat{\text{Err}}^{(.632+)}} \newcommand{\eoob}{\widehat{\text{Err}}^{(oob)}} \RequirePackage[T1]{fontenc} \RequirePackage{graphicx,ae,fancyvrb} \IfFileExists{upquote.sty}{\RequirePackage{upquote}}{} \usepackage{relsize} \DefineVerbatimEnvironment{Sinput}{Verbatim}{baselinestretch=1} \DefineVerbatimEnvironment{Soutput}{Verbatim}{fontfamily=courier, baselinestretch=1, fontshape=it, fontsize=\relsize{-1}} \DefineVerbatimEnvironment{Scode}{Verbatim}{} \newenvironment{Schunk}{}{} \renewcommand{\baselinestretch}{1} \SweaveOpts{engine=R,eps=FALSE} \hypersetup{% pdftitle = {A Lego System for Conditional Inference}, pdfsubject = {Manuscript}, pdfauthor = {Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel and Achim Zeileis}, %% change colorlinks to false for pretty printing colorlinks = {true}, linkcolor = {blue}, citecolor = {blue}, urlcolor = {red}, hyperindex = {true}, linktocpage = {true}, } <>= options(width = 65, prompt = "R> ", continue = " ") require("coin") set.seed(290875) ### get rid of the NAMESPACE #load(file.path(.find.package("coin"), "R", "all.rda")) anonymous <- FALSE @ \begin{document} \title{A Lego System for Conditional Inference \footnote{This is a preprint of an article published in The American Statistician, Volume 60, Number 3, Pages 257--263. Copyright \copyright{} 2006 American Statistical Association; available online at \url{http://www.amstat.org/publications/tas/}.}} <>= if(!anonymous) { cat("\\author{Torsten Hothorn$^1$, Kurt Hornik$^2$, \\\\ Mark A. van de Wiel$^3$ and Achim Zeileis$^2$}\n") } else { cat("\\author{TAS MS05-239, Revision}\n") } @ \setkeys{Gin}{width=\textwidth} \date{} \maketitle \thispagestyle{empty} <>= if(!anonymous) cat("\\noindent$^1$ Institut f\\\"ur Medizininformatik, Biometrie und Epidemiologie\\\\ Friedrich-Alexander-Universit\\\"at Erlangen-N\\\"urnberg\\\\ Waldstra{\\ss}e 6, D-91054 Erlangen, Germany \\\\ \\texttt{Torsten.Hothorn@R-project.org} \\newline \\noindent$^2$ Department f\\\"ur Statistik und Mathematik, Wirtschaftsuniversit\\\"at Wien \\\\ Augasse 2-6, A-1090 Wien, Austria \\\\ \\texttt{Kurt.Hornik@R-project.org} \\\\ \\texttt{Achim.Zeileis@R-project.org} \\newline \\noindent$^3$ Department of Mathematics, Vrije Universiteit \\\\ De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands \\\\ \\texttt{mark.vdwiel@vumc.nl} \\newline\n") @ \noindent \begin{abstract} Conditioning on the observed data is an important and flexible design principle for statistical test procedures. Although generally applicable, permutation tests currently in use are limited to the treatment of special cases, such as contingency tables or $K$-sample problems. A new theoretical framework for permutation tests opens up the way to a unified and generalized view. We argue that the transfer of such a theory to practical data analysis has important implications in many applications and requires tools that enable the data analyst to compute on the theoretical concepts as closely as possible. We re-analyze four data sets by adapting the general conceptual framework to these challenging inference problems and utilizing the \Rpackage{coin} add-on package in the \RR{} system for statistical computing to show what one can gain from going beyond the `classical' test procedures. \end{abstract} \noindent KEY WORDS: Permutation tests; Independence; Asymptotic distribution; Software. \newline %% \newpage \section{INTRODUCTION} The distribution of a test statistic under the circumstances of a null hypothesis clearly depends on the unknown distribution of the data and thus is unknown as well. Two concepts are commonly applied to dispose of this dependency. Unconditional tests impose assumptions on the distribution of the data such that the null distribution of a test statistic can be derived analytically. In contrast, conditional tests replace the unknown null distribution by the conditional null distribution, i.e., the distribution of the test statistic given the observed data. The latter approach is known as \textit{permutation testing} and was developed by R.~A.~Fisher more than 70 years ago \citep{Fisher1935}. The pros and cons of both approaches in different fields of application have been widely discussed \citep[e.g.~by][]{why-permut:1998,pros-and-c:2000,Shuster2005}. Here, we focus on the practical aspects of permutation testing rather than dealing with its methodological foundations. For the construction of permutation tests it is common exercise to `recycle' test statistics well known from the unconditional world, such as linear rank statistics, ANOVA $F$ statistics or $\chi^2$ statistics for contingency tables, and to replace the unconditional null distribution with the conditional distribution of the test statistic under the null hypothesis \citep{Edgington1987,Good2000,Pesarin2001,Ernst2004}. Because the choice of the test statistic is the only `degree of freedom' for the data analyst, the classical view on permutation tests requires a `cook book' classification of inference problems (categorical data analysis, multivariate analysis, $K$-sample location problems, correlation, etc.), each being associated with a `natural' form of the test statistic. The theoretical advances of the last decade \citep[notably][]{StrasserWeber1999, Pesarin2001,JanssenPauls2003} give us a much better understanding of the strong connections between the `classical' permutation tests defined for different inference problems. As we will argue in this paper, the new theoretical tools open up the way to a simple construction principle for test procedures in new and challenging inference problems. Especially attractive for this purpose is the theoretical framework for permutation tests developed by \cite{StrasserWeber1999}. This unifying theory is based on a flexible form of multivariate linear statistics for the general independence problem. This framework provides us with a conceptual Lego system for the construction of permutation tests consisting of Lego bricks for linear statistics suitable for different inference problems (contingency tables, multivariate problems, etc.), different forms of test statistics (such as quadratic forms for global tests or test statistics suitable for multiple comparison procedures), and several ways to derive the conditional null distribution (by means of exact computations or approximations). The classical procedures, such as a permutation $t$ test, are part of this framework and, even more interesting, new test procedures can be embedded into the same theory whose main ideas are sketched in Section~\ref{CI}. Currently, the statistician's toolbox consists of rather specialized spanners, such as the Wilcoxon-Mann-Whitney test for comparing two distributions or the Cochran-Mantel-Haenszel $\chi^2$ test for independence in contingency tables. With this work, we add an adjustable spanner to the statistician's toolbox which helps to address both the common as well as new or unusual inference problems with the appropriate conditional test procedures. In the main part of this paper we show how one can construct and implement permutation tests `on the fly' by plugging together Lego bricks for the multivariate linear statistic, the test statistic and the conditional null distribution, both conceptually and practically by means of the \Rpackage{coin} add-on package <>= if (anonymous) { cat(" \\citep{PKG:coina} ") } else { cat(" \\citep{PKG:coin} ") } @ in the \RR{} system for statistical computing \citep{Rcore2005}. \section{A CONCEPTUAL LEGO SYSTEM \label{CI}} To fix notations, we assume that we are provided with independent and identically distributed observations $(\Y_i, \X_i)$ for $i = 1, \dots, n$. The variables $\Y$ and $\X$ from sample spaces $\mathcal{Y}$ and $\mathcal{X}$ may be measured at arbitrary scales and may be multivariate as well. We are interested in testing the null hypothesis of independence of $\Y$ and $\X$ \begin{eqnarray*} H_0: D(\Y | \X) = D(\Y) \end{eqnarray*} against arbitrary alternatives. \cite{StrasserWeber1999} suggest to derive \textit{scalar} test statistics for testing $H_0$ from \textit{multivariate} linear statistics of the form \begin{eqnarray*} \T = \vec\left(\sum_{i = 1}^n g(\X_i) h(\Y_i)^\top\right) \in \R^{pq \times 1}. \end{eqnarray*} Here, $g: \mathcal{X} \rightarrow \R^{p \times 1}$ is a transformation of the $\X$ measurements and $h: \mathcal{Y} \rightarrow \R^{q \times 1}$ is called \emph{influence function}. The function $h(\Y_i) = h(\Y_i, (\Y_1, \dots, \Y_n))$ may depend on the full vector of responses $(\Y_1, \dots, \Y_n)$, however only in a permutation symmetric way, i.e., the value of the function must not depend on the order in which $\Y_1, \dots, \Y_n$ appear. We will give several examples how to choose $g$ and $h$ for specific inference problems in Section~\ref{play}. The distribution of $\T$ depends on the joint distribution of $\Y$ and $\X$, which is unknown under almost all practical circumstances. At least under the null hypothesis one can dispose of this dependency by fixing $\X_1, \dots, \X_n$ and conditioning on all possible permutations $S$ of the responses $\Y_1, \dots, \Y_n$. Tests that have been constructed by means of this conditioning principle are called \emph{permutation tests}. The conditional expectation $\mu \in \R^{pq \times 1}$ and covariance $\Sigma \in \R^{pq \times pq}$ of $\T$ under $H_0$ given all permutations $\sigma \in S$ of the responses are derived by \cite{StrasserWeber1999}: \begin{eqnarray*} \mu = \E(\T | S) & = & \vec \left( \left( \sum_{i = 1}^n g(\X_i) \right) \E(h | S)^\top \right) \\ \Sigma = \V(\T | S) & = & \frac{n}{n - 1} \V(h | S) \otimes \left(\sum_i g(\X_i) \otimes g(\X_i)^\top \right) \\ & - & \frac{1}{n - 1} \V(h | S) \otimes \left( \sum_i g(\X_i) \right) \otimes \left( \sum_i g(\X_i)\right)^\top \nonumber \end{eqnarray*} where $\otimes$ denotes the Kronecker product, and the conditional expectation of the influence function is $\E(h | S) = n^{-1} \sum_i h(\Y_i)$ with corresponding $q \times q$ covariance matrix \begin{eqnarray*} \V(h | S) = n^{-1} \sum_i \left(h(\Y_i) - \E(h | S) \right) \left(h(\Y_i) - \E(h | S)\right)^\top. \end{eqnarray*} The key step for the construction of test statistics based on the multivariate linear statistic $\T$ is its standardization utilizing the conditional expectation $\mu$ and covariance matrix $\Sigma$. Univariate test statistics~$c$ mapping a linear statistic $\T \in \R^{pq \times 1}$ into the real line can be of arbitrary form. Obvious choices are the maximum of the absolute values of the standardized linear statistic or a quadratic form: \begin{eqnarray*} c_\text{max}(\T, \mu, \Sigma) & = & \max \left| \frac{\T - \mu}{\text{diag}(\Sigma)^{1/2}} \right|, \\ c_\text{quad}(\T, \mu, \Sigma) & = & (\T - \mu)^\top \Sigma^+ (\T - \mu), \end{eqnarray*} involving the Moore-Penrose inverse $\Sigma^+$ of $\Sigma$. %%The definition of one- and two-sided $p$-values used for the computations in %%the \Rpackage{coin} package is %%\begin{eqnarray*} %%& & P(c(\T, \mu, \Sigma)\le c(\mathbf{t}, \mu, \Sigma)) \quad \text{(less)} \\ %%& & P(c(\T, \mu, \Sigma) \ge c(\mathbf{t}, \mu, \Sigma)) \quad \text{(greater)}\\ %%& & P(|c(\T, \mu, \Sigma)| \le |c(\mathbf{t}, \mu, \Sigma)|) \quad %%\text{(two-sided).} %%\end{eqnarray*} %%Note that for quadratic forms only two-sided $p$-values are available %%and that in the one-sided case maximum type test statistics are replaced by %%\begin{eqnarray*} %%\min \left( \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right) %% \quad \text{(less) and } %%\max \left( \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right) %% \quad \text{(greater).} %%\end{eqnarray*} The conditional distribution $\Prob(c(\T, \mu, \Sigma) \le z | S)$ is the number of permutations $\sigma \in S$ of the data with corresponding test statistic not exceeding $z$ divided by the total number of permutations in $S$. For some special forms of the multivariate linear statistic the exact distribution of some test statistics is tractable for small and moderate sample sizes. %%For two-sample problems, the shift-algorithm by \cite{axact-dist:1986} %%and \cite{exakte-ver:1987} and the split-up algorithm by %%\cite{vdWiel2001} are implemented as part of the package. In principle, resampling procedures can always be used to approximate the exact distribution up to any desired accuracy by evaluating the test statistic for a random sample from the set of all permutations $S$. It is important to note that in the presence of a grouping of the observations into independent blocks, only permutations within blocks are eligible and that the conditional expectation and covariance matrix need to be computed separately for each block. Less well known is the fact that a normal approximation of the conditional distribution can be computed for arbitrary choices of $g$ and $h$. \cite{StrasserWeber1999} showed in their Theorem~2.3 that the conditional distribution of linear statistics $\T$ with conditional expectation $\mu$ and covariance $\Sigma$ tends to a multivariate normal distribution with parameters $\mu$ and $\Sigma$ as $n \rightarrow \infty$. Thus, the asymptotic conditional distribution of test statistics of the form $c_\text{max}$ is normal and can be computed directly in the univariate case ($pq = 1$) and by numerical algorithms in the multivariate case \citep{numerical-:1992}. For quadratic forms $c_\text{quad}$ which follow a $\chi^2$ distribution with degrees of freedom given by the rank of $\Sigma$ \citep[see][Chapter 29]{johnsonkotz1970}, exact probabilities can be computed efficiently. \section{PLAYING LEGO \label{play}} The Lego system sketched in the previous section consists of Lego bricks for the multivariate linear statistic $\T$, namely the transformation $g$ and influence function $h$, multiple forms of the test statistic $c$ and several choices of approximations of the null distribution. In this section, we will show how classical procedures, starting with the conditional Kruskal-Wallis test and the Cochran-Mantel-Haenszel test, can be embedded into this general theory and, much more interesting from our point of view, how new conditional test procedures can be constructed conceptually \textit{and} practically. Therefore, each inference problem comes with \RR{} code performing the appropriate conditional test using the \Rpackage{coin} functionality which enables the data analyst to benefit from this simple methodology in typical data analyses. All following analyses are reproducible from the \Rpackage{coin} package vignette; this document can be accessed via \begin{Schunk} \begin{Sinput} R> vignette("LegoCondInf", package = "coin") \end{Sinput} \end{Schunk} directly in \RR{}. \paragraph{Independent $K$-Samples: Genetic Components of Alcoholism.} Various studies have linked alcohol dependence phenotypes to chromosome 4. One candidate gene is \textit{NACP} (non-amyloid component of plaques), coding for alpha synuclein. \cite{Boenscheta2005} found longer alleles of \textit{NACP}-REP1 in alcohol-dependent patients compared with healthy controls and report that the allele lengths show some association with levels of expressed alpha synuclein mRNA in alcohol-dependent subjects (see Figure~\ref{alpha-box}). Allele length is measured as a sum score built from additive dinucleotide repeat length and categorized into three groups: short ($0-4$, $n = 24$), intermediate ($5-9$, $n = 58$), and long ($10-12$, $n = 15$). \setkeys{Gin}{width=0.6\textwidth} \begin{figure} \begin{center} <>= n <- table(alpha$alength) par(cex.lab = 1.3, cex.axis = 1.3) boxplot(elevel ~ alength, data = alpha, ylab = "Expression Level", xlab = "NACP-REP1 Allele Length", varwidth = TRUE) axis(3, at = 1:3, labels = paste("n = ", n)) rankif <- function(data) trafo(data, numeric_trafo = rank_trafo) @ \caption{\Robject{alpha} data: Distribution of levels of expressed alpha synuclein mRNA in three groups defined by the \textit{NACP}-REP1 allele lengths. \label{alpha-box}} \end{center} \end{figure} Our first attempt to test for different levels of gene expression in the three groups is the classical Kruskal-Wallis test. Here, the transformation $g$ is a dummy coding of the allele length ($g(\X_i) = (0, 1, 0)^\top$ for intermediate length, for example) and the value of the influence function $h(\Y_i)$ is the rank of $\Y_i$ in $\Y_1, \dots, \Y_n$. Thus, the linear statistic $\T$ is the vector of rank sums in each of the three groups and the test statistic is a quadratic form $(\T - \mu) \Sigma^+ (\T - \mu)^\top$ utilizing the conditional expectation~$\mu$ and covariance matrix~$\Sigma$. For computing $p$-values, the limiting $\chi^2$ distribution is typically used. In \RR{}, this specific test is readily implemented in the well established function \Rcmd{kruskal.test} which takes a symbolic formula description of the inference problem and a data set containing the actual observations as its main arguments. Here, the independence of expression levels (\Robject{elevel}) and allele lengths (\Robject{alength}) is formulated as \verb|elevel ~ alength|, the associated observations are available in a data frame \Rcmd{alpha}: <>= kruskal.test(elevel ~ alength, data = alpha) @ Alternatively, the same result can be obtained by embedding the classical Kruskal-Wallis test into the more general conditional inference framework implemented in the \Rcmd{independence\_test} function in the \Rpackage{coin} package. This also takes a formula and a data frame as its main arguments and additionally allows for the specification of the transformations $g$ and $h$ via \Rcmd{xtrafo} and \Rcmd{ytrafo}, respectively, as well as setting \Rcmd{teststat} to \Rcmd{"maximum"} or \Rcmd{"quadratic"} (for $c_\text{max}$ or $c_\text{quad}$, respectively) and the \Rcmd{distribution} to be used. Thus, for computing the Kruskal-Wallis test \Rcmd{ytrafo} has to be set to the function \Rcmd{rank\_trafo} for computing ranks, in \Rcmd{xtrafo} dummy codings have to be used (the default for categorical variables), \Rcmd{teststat} is the \Rcmd{"quadratic"} type statistic $c_\text{quad}$ and the default asymptotic \Rcmd{distribution} is applied: <>= independence_test(elevel ~ alength, data = alpha, ytrafo = rank_trafo, teststat = "quadratic") @ The output gives equivalent results as reported by \Rcmd{kruskal.test} above. So what is the advantage of using \Rcmd{independence\_test}? Going beyond the classical functionality in \Rcmd{kruskal.test} would require extensive programming but is easily possible in \Rcmd{independence\_test}. For example, the resampling distribution instead of the asymptotic distribution could be used by setting \Rcmd{distribution = approximate()}. More interestingly, ignoring the ordinal structure of the allele length is suboptimal, especially when we have an ordered alternative in mind. An intuitive idea for capturing the ordinal information would be to assign numeric scores to the allele length categories in the transformation $g$ rather than the dummy codings used above. A natural choice of scores would be the mid-points of the intervals originally used to categorize the allele lengths, i.e., $g(X_i) = 2$ for short ($\in [0, 4]$), $7$ for intermediate ($\in [5, 9]$) and $11$ for long ($\in [10, 12]$) alleles. In \RR{}, such a function $g$ is easily implemented as <>= mpoints <- function(x) c(2, 7, 11)[unlist(x)] @ which returns an $n$-vector and can then be passed as \Rcmd{xtrafo} argument to \Rcmd{independence\_test}: <>= independence_test(elevel ~ alength, data = alpha, ytrafo = rank_trafo, xtrafo = mpoints) @ This $p$-value emphasizes the impression from Figure~\ref{alpha-box} that the expression levels increase with increasing allele lengths. Note that due to usage of scalar transformations $g$ and $h$, the $c_\text{max}$- and $c_\text{quad}$-type test statistics are equivalent and hence \Rcmd{teststat} is not set (defaulting to \Rcmd{"maximum"}). Furthermore, it should be pointed out that a test based on such a numerical transformation for ordinal variables is equivalent to linear-by-linear association tests \citep{Agresti2002} for which further convenience infrastructure is available in the \Rcmd{independence\_test} function via the \Rcmd{scores} argument. \paragraph{Contingency Tables: Smoking and Alzheimer's Disease.} \setkeys{Gin}{width=\textwidth} <>= total <- nrow(alzheimer) stopifnot(total == 538) male <- sum(alzheimer$gender == "Male") stopifnot(male == 200) female <- sum(alzheimer$gender == "Female") stopifnot(female == 338) disease <- table(alzheimer$disease) smoked <- sum(alzheimer$smoking != "None") atab <- xtabs(~ smoking + + disease + gender, data = alzheimer) ### there is a discrepancy between Table 1 (32% smokers of 117 women ### suffering from other diagnoses) and Table 4 (63% non-smokers). ### We used the data as given in Table 4. @ \cite{SalibHillier1997} report results of a case-control study on Alzheimer's disease and smoking behavior of $\Sexpr{disease["Alzheimer"]}$ female and male Alzheimer patients and $\Sexpr{sum(disease[names(disease) != "Alzheimer"])}$ controls. The data shown in Table~\ref{alzheimertab} have been re-constructed from Table~4 in \cite{SalibHillier1997} and are depicted in Figure~\ref{alz-plot}. The authors conclude that `cigarette smoking is less frequent in men with Alzheimer's disease.' \begin{table}[h] \begin{center} \caption{\Robject{alzheimer} data: Smoking and Alzheimer's disease. \label{alzheimertab}} \begin{tabular}{lrrrr} \hline \hline & \multicolumn{4}{c}{No. of cigarettes daily} \\ & None & <10 & 10--20 & >20 \\ \hline \textit{Female} & & & & \\ <>= x <- t(atab[,,"Female"]) lines <- paste(paste(dimnames(x)$disease, " & "), paste(apply(x, 1, function(l) paste(l, collapse = " & ")), "\\\\")) for (i in 1:length(lines)) cat(lines[i], "\n") @ & & & & \\ \textit{Male} & & & & \\ <>= x <- t(atab[,,"Male"]) lines <- paste(paste(dimnames(x)$disease, " & "), paste(apply(x, 1, function(l) paste(l, collapse = " & ")), "\\\\")) for (i in 1:length(lines)) cat(lines[i], "\n") @ \hline \end{tabular} \end{center} \end{table} \begin{figure} \begin{center} <>= layout(matrix(1:2, ncol = 2)) spineplot(disease ~ smoking, data = alzheimer, subset = gender == "Male", main = "Male", xlab = "Smoking", ylab = "Disease", tol = 1) spineplot(disease ~ smoking, data = alzheimer, subset = gender == "Female", main = "Female", xlab = "Smoking", ylab = "Disease", tol = 1) @ \caption{\Robject{alzheimer} data: Association of smoking behavior and disease status stratified by gender. \label{alz-plot}} \end{center} \end{figure} We are interested to assess whether there is any association between smoking and Alzheimer's (or other dementia) diseases and, in a second step, how a potential association can be described. First, the global null hypothesis of independence between smoking behavior and disease status for both females and males, i.e., treating gender as a block factor, can be tested with a $c_\text{quad}$-type test statistic, i.e., the Cochran-Mantel-Haenszel test: <>= it_alz <- independence_test(disease ~ smoking | gender, data = alzheimer, teststat = "quadratic") it_alz @ which suggests that there is a clear deviation from independence. By default, the influence function $h$ (the \Rcmd{ytrafo} argument) and the transformation $g$ (the \Rcmd{xtrafo} argument) are dummy codings of the factors disease status $\Y$ and smoking behavior $\X$, i.e., $h(\Y_i) = (1, 0, 0)^\top$ and $g(\X_i) = (1, 0, 0 ,0)^\top$ for a non-smoking Alzheimer patient. Consequently, the linear multivariate statistic $\T$ based on $g$ and $h$ is the contingency table of both variables <>= statistic(it_alz, type = "linear") @ with conditional expectation \Rcmd{expectation(it\_alz)} and conditional covariance \Rcmd{covariance(it\_alz)} which are available for standardizing the contingency table $\T$. The conditional distribution is approximated by its limiting $\chi^2$ distribution by default. Given that there is significant departure from independence, we further investigate the structure of association between smoking and Alzheimer's disease. First we assess for which gender the violation of independence occured, i.e., perform independence tests for female and male subjects separately <>= females <- alzheimer$gender == "Female" males <- alzheimer$gender == "Male" pvalue(independence_test(disease ~ smoking, data = alzheimer, subset = females, teststat = "quadratic")) pvalue(independence_test(disease ~ smoking, data = alzheimer, subset = males, teststat = "quadratic")) @ where it turns out that the association is due to the male patients only (see also Figure~\ref{alz-plot}) and we therefore focus on the male patients in the following. A standardized contingency table is useful for gaining insight into the association structure of contingency tables. Thus, a test statistic based on the standardized linear statistic $\T$ (and thus the standardized contingency table) would be more useful than a $c_\text{quad}$-type test statistic where the contributions of all cells are collapsed in such a quadratic form. Therefore, we choose the maximum of the standardized contingency table as $c_\text{max}$ test statistic via <>= it_alzmax <- independence_test(disease ~ smoking, data = alzheimer, subset = males, teststat = "maximum") it_alzmax @ where the underlying standardized contingency table highlights the cells with deviations from independence <>= statistic(it_alzmax, type = "standardized") @ This leads to the impression that heavy smokers suffer less frequently from Alzheimer's disease but more frequently from other dementias than expected under independence. However, interpreting the standardized contingency table requires knowledge about the distribution of the standardized statistics. An approximation of the joint distribution of all elements of the standardized contingency table can be obtained from the $\Sexpr{length(statistic(it_alzmax, type = "standardized"))}$-dimensional multivariate limiting normal distribution of the linear statistic $\T$. Most useful is an approximation of the $95\%$ quantile of the permutation null distribution which is available from <>= qperm(it_alzmax, 0.95) @ Alternatively, and more conveniently, one can switch to $p$-values adjusted for multiple testing by a single-step max-$T$ multiple testing approach: <>= pvalue(it_alzmax, method = "single-step") @ These results support the conclusion that the rejection of the null hypothesis of independence is due to a large number of patients with other dementias and a small number with Alzheimer's disease in the heavy smoking group. In addition, there is some evidence that, for the small group of men smoking less than ten cigarettes per day, the reverse association is true. \paragraph{Multivariate Response: Photococarcinogenicity Experiments.} The effect on tumor frequency and latency in photococarcinogenicity experiments, where carcinogenic doses of ultraviolet radiation (UVR) are administered, are measured by means of (at least) three response variables: the survival time, the time to first tumor and the total number of tumors of animals in different treatment groups. The main interest is testing the global null hypothesis of no treatment effect with respect to any of the three responses survival time, time to first tumor or number of tumors \citep[][analyze the detection time of tumors in addition, this data is not given here]{Molefeetal2005}. In case the global null hypothesis can be rejected, the deviations from the partial hypotheses are of special interest. \cite{Molefeetal2005} report data of an experiment where $\Sexpr{nrow(photocar)}$ female mice were exposed to different levels of UVR (group A: $n = 36$ with topical vehicle and 600 Robertson--Berger units of UVR, group B: $n = 36$ without topical vehicle and 600 Robertson--Berger units of UVR and group C: $n = 36$ without topical vehicle and 1200 Robertson--Berger units of UVR). The data are taken from Tables~1--3 in \cite{Molefeetal2005}, where a parametric test procedure is proposed. Figure~\ref{photocarfig} depicts the group effects for all three response variables. \begin{figure} \begin{center} <>= par(cex.lab = 1.3, cex.axis = 1.3) layout(matrix(1:3, ncol = 3)) plot(survfit(Surv(time, event) ~ group, data = photocar), xmax = 50, xlab = "Survival Time (in weeks)", ylab = "Probability", lty = 1:3) legend("bottomleft", lty = 1:3, levels(photocar$group), bty = "n") plot(survfit(Surv(dmin, tumor) ~ group, data = photocar), xmax = 50, xlab = "Time to First Tumor (in weeks)", ylab = "Probability", lty = 1:3) legend("bottomleft", lty = 1:3, levels(photocar$group), bty = "n") boxplot(ntumor ~ group, data = photocar, ylab = "Number of Tumors", xlab = "Treatment Group", varwidth = TRUE) @ \caption{\Robject{photocar} data: Kaplan-Meier estimates of time to death and time to first tumor as well as boxplots of the total number of tumors in three treatment groups. \label{photocarfig}} \end{center} \end{figure} First, we construct a global test for the null hypothesis of independence of treatment and \textit{all} three response variables. A $c_\text{max}$-type test based on the standardized multivariate linear statistic and an approximation of the conditional distribution utilizing the asymptotic distribution simply reads <>= it_ph <- independence_test(Surv(time, event) + Surv(dmin, tumor) + ntumor ~ group, data = photocar) it_ph @ Here, the influence function $h$ consists of the logrank scores (the default \Rcmd{ytrafo} argument for censored observations) of the survival time and time to first tumor as well as the number of tumors, i.e., for the first animal in the first group $h(\Y_1) = \Sexpr{paste("(", paste(round(it_ph@statistic@ytrans[1,], 2), collapse = ","), ")")}^\top$ and $g(\X_1) = (1, 0, 0)^\top$. The multivariate linear statistic $\T$ is the sum of each of the three components of the influence function $h$ in each of the groups, i.e., <>= statistic(it_ph, type = "linear") @ It is important to note that this global test utilizes the complete covariance structure $\Sigma$ when $p$-values are computed. Alternatively, a test statistic based on the quadratic form $c_\text{quad}$ directly incorporates the covariance matrix and leads to a very similar $p$-value. The deviations from the partial null hypotheses, i.e., independence of each single response and treatment groups, can be inspected by comparing the standardized linear statistic $\T$ to its critical value \Sexpr{round(qperm(it_ph, 0.95), digits = 3)} (which can be obtained by \verb+qperm(it_ph, 0.95)+) <>= statistic(it_ph, type = "standardized") @ or again by means of the corresponding adjusted $p$-values <>= pvalue(it_ph, method = "single-step") @ <>= round(pvalue(it_ph, method = "single-step"), 5) @ %%Of course, the goodness of the asymptotic procedure can be checked against %%the Monte Carlo approximation which is computed by %%<>= %%it <- independence_test(Surv(time, event) + Surv(dmin, tumor) + ntumor ~ group, %% data = photocar, distribution = approximate(50000)) %%pvalue(it, method = "single-step") %%@ %%The more powerful step-down multiple testing adjusted $p$-values %%\citep[Algorithm 2.8 in][]{WestfallYoung1993} are %%<>= %%pvalue(it, method = "step-down") %%@ Clearly, the rejection of the global null hypothesis is due to the group differences in both survival time and time to first tumor whereas no treatment effect on the total number of tumors can be observed. \paragraph{Independent Two-Samples: Contaminated Fish Consumption.} In the former three applications, pre-fabricated Lego bricks---i.e., standard transformations for $g$ and $h$ such as dummy codings, ranks and logrank scores---have been employed. In the fourth application, we will show how the Lego system can be used to construct new bricks and implement a newly invented test procedure. \cite{Rosenbaum1994a} proposed to compare groups by means of a \textit{coherence criterion} and studied a data set of subjects who ate contaminated fish for more than three years in the `exposed' group ($n = 23$) and a control group ($n = 16$). Three response variables are available: the mercury level of the blood, the percentage of cells with structural abnormalities and the proportion of cells with asymmetrical or incomplete-symmetrical chromosome aberrations (see Figure~\ref{mercurybox}). The coherence criterion defines a partial ordering: an observation is said to be smaller than another when all three variables are smaller. The rank score for observation $i$ is the number of observations that are larger (following the above sketched partial ordering) than observation $i$ minus the number of observations that are smaller. The distribution of the rank scores in both groups is to be compared and the corresponding test is called `POSET-test' (partially ordered sets test) and may be viewed as a multivariate form of the Wilcoxon-Mann-Whitney test. \begin{figure} \begin{center} <>= par(cex.lab = 1.3, cex.axis = 1.3) layout(matrix(1:3, ncol = 3)) boxplot(I(log(mercury)) ~ group, data = mercuryfish, ylab = "Mercury Blood Level (in logs)", varwidth = TRUE) boxplot(abnormal ~ group, data = mercuryfish, ylab = "Abnormal Cells (in %)", varwidth = TRUE) boxplot(ccells ~ group, data = mercuryfish, ylab = "Chromosome Aberrations (in %)", varwidth = TRUE) @ \caption{\Robject{mercuryfish} data: Distribution of all three response variables in the exposed group and control group. \label{mercurybox}} \end{center} \end{figure} The coherence criterion can be formulated in a simple function by utilizing column-wise sums of indicator functions applied to all individuals <>= coherence <- function(data) { x <- t(as.matrix(data)) apply(x, 2, function(y) sum(colSums(x < y) == nrow(x)) - sum(colSums(x > y) == nrow(x))) } @ which is now defined as influence function $h$ via the \Rcmd{ytrafo} argument <>= poset <- independence_test(mercury + abnormal + ccells ~ group, data = mercuryfish, ytrafo = coherence, distribution = exact()) @ Once the transformations $g$ (the default zero-one coding of the exposed and control group) and $h$ (the coherence criterion) are defined, we enjoy the whole functionality of the framework, including an exact two-sided $p$-value <>= pvalue(poset) @ and density (\Rcmd{dperm}), distribution (\Rcmd{pperm}) and quantile functions (\Rcmd{qperm}) of the conditional distribution. When only a small number of observations is available, it might be interesting to compare the exact conditional distribution and its approximation via the limiting distribution. For the \Robject{mercuryfish} data, the relevant parts of both distribution functions are shown in Figure~\ref{distplot}. It turns out that the quality of the normal approximation is excellent for this particular problem and using the normal approximation would be sufficient for all practical purposes in this application. \begin{figure} \begin{center} <>= par(cex.lab = 1.3, cex.axis = 1.1) ite <- poset ita <- independence_test(mercury + abnormal + ccells ~ group, data = mercuryfish, ytrafo = coherence) site <- support(ite) layout(matrix(1:2, ncol = 2)) site <- site[site <= qperm(ite, 0.1) & site > -3] pite <- sapply(site, function(x) pperm(ite, x)) pita <- sapply(site, function(x) pperm(ita, x)) plot(site, pite, type = "S", ylab = "Probability", xlab = "Standardized Statistic") lines(site, pita, lty = 3) legend("topleft", lty = c(1,3), legend = c("Conditional Distribution", "Approximation"), bty = "n") site <- support(ite) site <- site[site >= qperm(ite, 0.9) & site < 3] pite <- sapply(site, function(x) pperm(ite, x)) pita <- sapply(site, function(x) pperm(ita, x)) plot(site, pite, type = "S", ylab = "Probability", xlab = "Standardized Statistic") lines(site, pita, lty = 3) @ \caption{\Robject{mercuryfish} data: Conditional distribution and asymptotic normal approximation for the POSET test. \label{distplot}} \end{center} \end{figure} \section{DISCUSSION} Conditioning on the observed data is a simple, yet powerful, design principle for statistical tests. Conceptually, one only needs to choose an appropriate test statistic and evaluate it for all admissible permutations of the data \citep[][gives some examples]{Ernst2004}. In practical setups, an implementation of this two-step procedure requires a certain amount of programming and computing time. Sometimes, permutation tests are even regarded as being `computationally impractical' for larger sample sizes \citep{BalkinMallows2001}. The permutation test framework by \cite{StrasserWeber1999} helps us to take a fresh look at conditional inference procedures and makes at least two important contributions: analytic formulae for the conditional expectation and covariance and the limiting normal distribution of a class of multivariate linear statistics. Thus, test statistics can be defined for appropriately standardized linear statistics and a fast approximation of the conditional distribution is available, especially for large sample sizes. It is one mission, if not \textit{the} mission, of statistical computing to transform new theoretical developments into flexible software tools for the data analyst. The \Rpackage{coin} package is an attempt to translate the theoretical concepts of \cite{StrasserWeber1999} into software tools preserving the simplicity and flexibility of the theory as closely as possible. With this package, the specialized spanners currently in use, such as \Rcmd{wilcox.test} for the Wilcoxon-Mann-Whitney test or \Rcmd{mantelhaen.test} for the Cochran-Mantel-Haenszel $\chi^2$ test in the \S{} language and \texttt{NPAR1WAY} for linear rank statistics in \textsf{SAS} as well as the tools implemented in \textsf{StatXact}, \textsf{LogXact}, \textsf{Stata}, and \textsf{Testimate} \citep[see][for an overview]{Oster2002,Oster2003}, are extended by \Rcmd{independence\_test}, a much more flexible and adjustable spanner. But who stands to benefit from such a software infrastructure? We argue that an improved data analysis is possible in cases when the appropriate conditional test is not available from standard software packages. Statisticians can modify existing test procedures or even try new ideas by computing directly on the theory. A high-level Lego system is attractive for both researchers and software developers, because only the transformation $g$ and influence function $h$ need to be newly defined, but the burden of implementing a resampling procedure, or even deriving the limiting distribution of a newly invented test statistic, is waived. %%Since the \Rpackage{coin} package consists %%of only a few core functions that need to be tested, the setup of quality %%assurance tools is rather simple in this case \citep[the need for such tests %%is obvious,[]{different-:2000}. Many text books %%\citep[e.g.][]{HollanderWolfe1999} or software manuals \citep[first of all %%the excellent StatXact handbook by][]{StatXact6} include examples and results %%of the associated test procedures which have been reproduced with %%\Rpackage{coin}. %%Since the \Rpackage{coin} package is part of the Comprehensive \RR{} Archive %%Network (CRAN, \url{http://CRAN.R-project.org/}) we have been able to help %%several people asking `Is the xyz-test available in \RR{}' on the %%\texttt{r-help} email list with the answer `No, but its only whose %%two lines of \RR{} code'. With a unifying conceptual framework in mind and a software implementation, such as \Rpackage{coin}, at hand, we are no longer limited to already published and implemented permutation test procedures and are free to define our own transformations and influence functions, can choose several forms of suitable test statistics and utilize several methods for the computation or approximation of the conditional distribution of the test statistic of interest. Thus, the construction of an appropriate permutation test, for both classical and new inference problems, is only a matter of putting together adequate Lego bricks. %%\section*{ACKNOWLEDGEMENTS} %%Strasser, Dominikus, editor / AE + referees \renewcommand{\baselinestretch}{1} %%\setlength{\bibsep}{2mm} \bibliographystyle{jss} \bibliography{LegoCondInf} \clearpage \setkeys{Gin}{width=0.9\textheight} \pagestyle{empty} \end{document} coin/inst/doxygen.cfg0000644000176200001440000031776213016767030014340 0ustar liggesusers# Doxyfile 1.8.12 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all text # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv # for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = coin # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = ./inst/documentation # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = NO # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: # Fortran. In the later case the parser tries to guess whether the code is fixed # or free formatted code, this is the default for Fortran type files), VHDL. For # instance to make doxygen treat .inc files as Fortran files (default is PHP), # and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. # Minimum value: 0, maximum value: 99, default value: 0. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 0 # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # If one adds a struct or class to a group and this option is enabled, then also # any nested class or struct is added to the same group. By default this option # is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. GROUP_NESTED_COMPOUNDS = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = YES # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO, these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = NO # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong or incomplete # parameter documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. # The default value is: NO. WARN_AS_ERROR = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = ./src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: http://www.gnu.org/software/libiconv) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, # *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. FILE_PATTERNS = # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # function all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see http://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the # cost of reduced performance. This can be particularly helpful with template # rich C++ code for which doxygen's built-in parser lacks the necessary type # information. # Note: The availability of this option depends on whether or not doxygen was # generated with the -Duse-libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that # the include paths will already be set by doxygen for the files and directories # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. CLANG_OPTIONS = #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html/ # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to YES can help to show when doxygen was last run and thus if the # documentation is up to date. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: http://developer.apple.com/tools/xcode/), introduced with # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from http://www.mathjax.org before deployment. # The default value is: http://cdn.mathjax.org/mathjax/latest. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /