RcppGSL/0000755000176200001440000000000013553066422011532 5ustar liggesusersRcppGSL/NAMESPACE0000644000176200001440000000062713070437421012751 0ustar liggesusersuseDynLib("RcppGSL", .registration=TRUE) importFrom("Rcpp", "evalCpp") importFrom("stats", "model.frame", "model.matrix", "model.response", "fitted", "coef", "printCoefmat", "pt") export(fastLmPure, fastLm, LdFlags, CFlags) S3method(fastLm, default) S3method(fastLm, formula) S3method(predict, fastLm) S3method(print, fastLm) S3method(summary, fastLm) S3method(print, summary.fastLm) RcppGSL/tools/0000755000176200001440000000000013217457273012677 5ustar liggesusersRcppGSL/tools/winlibs.R0000644000176200001440000000045313217457273014473 0ustar liggesusers# Download GSL 2.4 Rtools build if(!file.exists("../windows/gsl-2.4/include/gsl/gsl_blas.h")){ download.file("https://github.com/rwinlib/gsl/archive/v2.4.zip", "lib.zip", quiet = TRUE) dir.create("../windows", showWarnings = FALSE) unzip("lib.zip", exdir = "../windows") unlink("lib.zip") } RcppGSL/ChangeLog0000644000176200001440000004217213553062045013307 0ustar liggesusers2019-10-20 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.3.7 * configure.ac: Mark as 0.3.7 * configure: Rebuilt * inst/include/RcppGSL_types.h: Revert back from nullptr to NULL to not impose C++11 compilation on client packages * vignettes/rmd/RcppGSL-introduction.Rmd: Updated bibluigraphy handling * vignettes/rmd/Rcpp.bib: Copied in from Rcpp package * vignettes/rmd/Makefile: Added 2019-10-19 Dirk Eddelbuettel * DESCRIPTION (Date, Version): Roll minor version * DESCRIPTION(Suggests): Switch from RUnit to tinytest * tests/tinytest.R: Renamed and converted from doRUnit.R * inst/tinytest/: Renamed and converted from unitTests/ * .travis.yml (install): Install r-cran-tinytest not of r-cran-runit 2019-10-15 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Wrapper around pre-made vignette * vignettes/RcppGSL-intro.Rmd: Moved to rmd/RcppGSL-introduction.pdf and included pre-made in simpler Sweave vignette * vignettes/RcppGSL-unitTests.Rnw: Removed 2019-10-14 Dirk Eddelbuettel * inst/include/RcppGSL_types.h: Correct logic, actually call free() 2018-09-02 Dirk Eddelbuettel * .travis.yml: Switch Travis CI to R 3.5 repo 2018-06-10 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.6 * vignettes/header.tex: Split off vignette as pandoc 2.* no longer allows embedding this in the header [CRAN request] * vignettes/bib.tex: Idem, also updated entries * vignettes/RcppGSL-intro.Rmd: Use bib.tex and header.tex 2018-05-19 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.5 * man/RcppGSL-package.Rd: Update using Rd macros [CRAN request] 2018-05-06 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.4 2018-05-05 Dirk Eddelbuettel * inst/include/RcppGSL_matrix.h: Remove dynamic exception specifications which are deprecated in C++11 * inst/include/RcppGSL_types.h: Idem * vignettes/RcppGSL-intro.Rmd: Idem in one example * src/Makevars.in: Undo CXX98 setting which is no longer needed * inst/unitTests/cpp/gsl.cpp: Add explicit local sqrt() to be used with std::transform to make the Solaris compiler happier 2018-01-21 Dirk Eddelbuettel * src/Makevars.in (PKG_LIBS): Set 'CXX_STD = CXX98' to avoid g++ whining about dynamic exception specification which C++11 dislikes [ reverted later, see 2018-05-05 entry ] 2017-12-23 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New minor version 2017-12-23 Jeroen Ooms * src/Makevars.win: Support native Windows builds * tools/winlibs.R: Fetch Windows files if needed * .Rbuildignore: Ignore top-level windows/ directory * .gitignore: Idem 2017-09-24 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.3 * vignettes/RcppGSL-intro.Rmd: Now typset in two-column mode * tests/doRUnit.R: Small edits and improvements 2017-09-23 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rmd: Converted to Rmd, uses pinp * DESCRIPTION: Updated Suggests: and VignetteBuilder: * .travis.yml (before_install): Install r-cran-pinp * cleanup: Extended 2017-08-26 Dirk Eddelbuettel * .travis.yml (before_install): Use https for curl fetch 2017-04-03 Dirk Eddelbuettel * R/inline.R (.onLoad): Check for gsl-config at run-time too 2017-03-04 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.2 * DESCRIPTION (Description): Reworded and shortened * src/init.c (R_init_RcppGSL): Call R_registerRoutines() and R_useDynamicSymbols() * NAMESPACE: Use .registration=TRUE on useDynLib * R/fastLm.R (fastLmPure): Use PACKAGE= with .Call() * README.md: One more canonical URL 2017-01-15 Dirk Eddelbuettel * inst/skeleton/configure (GSL_LIBS): No longer need RCPP_LIBS * inst/skeleton/configure.win (GSL_LIBS): Idem * inst/skeleton/Makevars.in (PKG_CPPFLAGS): Idem * inst/skeleton/Makevars.win (PKG_LIBS): Idem * R/inline.R: Updated / edited 2016-10-02 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.1 * tests/doRUnit.R: Rewritten in simpler form following lead of some other packages using the RUnit testing frameworks * R/unit.test.R: Remove unused and unexported function * inst/unitTests/runTests.R: Ditto * vignettes/RcppGSL-intro.Rnw: Restore 'boxed' display of code * .travis.yml: Switch to using run.sh for Travis CI 2016-05-19 Dirk Eddelbuettel * vignettes/RcppGSL-unitTests.Rnw: Do not write unit test results to /tmp per request from CRAN to not write outside test directories 2015-08-30 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.3.0 * vignettes/RcppGSL-intro.Rnw: Minor edits 2015-08-29 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Updated throughout 2015-08-20 Dirk Eddelbuettel * inst/examples/bSpline/bSpline.cpp: Updated example 2015-08-18 Daniel C. Dillon * inst/include/RcppGSLForward: Rework vector_view and matrix_view to better support const variants * inst/include/RcppGSL_types.h: Idem * inst/examples/RcppGSLExample/src/colNorm.cpp: Update usage example * inst/unitTests/cpp/gsl.cpp: Update unite tests 2015-08-18 Dirk Eddelbuettel * inst/examples/RcppGSLExample/src/colNorm.cpp: Use 'const &' 2015-08-16 Daniel C. Dillon * inst/include/RcppGSLForward: Add support for const references * inst/include/RcppGSL_types.h: Idem * src/fastLm: Use 'const &' in function interface 2015-07-27 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw (Rcpp): Added GSL usage table 2015-07-23 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Several small updates and edits 2015-07-20 Dirk Eddelbuettel * inst/include/RcppGSL_typedef.h: Also define MatrixView and VectorView 2015-07-19 Dirk Eddelbuettel * src/fastLm.cpp: Simplified thanks to reference counting and improved object management: GSL objects now in signature, and no longer require an explicit free() call (but still allow it). * inst/examples/RcppGSLExample: idem * inst/examples/bSpline: idem * vignettes/RcppGSL-intro.Rnw: idem * inst/include/*: Consistent indentation and whitespace * inst/include/RcppGSL_typedef.h: Define Matrix and Vector shorthands 2015-07-17 Dirk Eddelbuettel * inst/include/macros/RCPPGSL_SPEC.h: Add boolean to check whether 'data' remains allocated, and use it to free resources in destructor 2015-07-06 Dirk Eddelbuettel * DESCRIPTION: Release 0.2.5 * NAMESPACE: Added now-required importFrom() statements * DESCRIPTION: Added Imports: stats 2015-07-04 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw (Rcpp): Updated and edited throughout. 2015-06-27 Dirk Eddelbuettel * DESCRIPTION (Description, Date): More Title Case; rolled Date 2015-06-26 Dirk Eddelbuettel * inst/examples/RcppGSLExample/DESCRIPTION: Updated Date and Version * inst/examples/RcppGSLExample/src/colNorm.cpp: Added new version based on Attributes * inst/examples/RcppGSLExample/src/RcppExports.cpp: Added * inst/examples/RcppGSLExample/R/RcppExports.R: Added * inst/examples/RcppGSLExample/R/colNorm.R: Retired * inst/unitTests/runit.client.package.R (test.client.package): Updated to use version 0.0.3 of RcppGSLExample * vignettes/RcppGSL-intro.Rnw (Rcpp): Updated to reflect updated example client package RcppGSLExample * src/RcppExports.cpp: Updated via newer compileAttributes() * .travis.yml (install): Use Launchpad PPA for r-cran-* packages 2015-06-24 Dirk Eddelbuettel * inst/examples/bSpline/bSpline.cpp (fitData): Removed unneccessary instantiation of a data.frame object 2015-01-24 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.4 2015-01-22 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Updated to note that package turns off GSL error when loaded via .onAttach(). 2015-01-14 Dirk Eddelbuettel * src/setErrorHandler.cpp: Add two simple functions to turn off the GSL error handler (which is recommended), and to reset to the default value if so desired. Note that under the default value GSL will abort on error which is not desirable when called from R. * R/init.R (.onAttach): Call the new gslSetErrorHandler() function 2015-01-13 Qiang Kou * vignettes/RcppGSL-intro.Rnw: Add section about setting default error in GSL per http://thread.gmane.org/gmane.comp.lang.r.rcpp/7905 2015-01-10 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.3 2015-01-09 Dirk Eddelbuettel * vignettes/RcppGSL-intro.Rnw: Small update for look&feel, also updated regarding configure variables 2015-01-06 Dirk Eddelbuettel * src/Makevars.in: One char correction requested by CRAN Maintainers * configure.ac: Updated and shortened * configure: Ditto 2014-05-31 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.2 * inst/NEWS.Rd: Ditto 2014-05-30 Kevin Ushey * inst/include/RcppGSLForward.h: Take address of private member, not variable passed in 2014-05-26 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.1 * inst/unitTests/runit.client.package.R: Add 'require(Rcpp)' which is now needed as we only Import: rather than Depends: in the example 2014-05-22 Dirk Eddelbuettel * inst/examples/RcppGSLExample/DESCRIPTION: Updated * inst/examples/RcppGSLExample/NAMESPACE: Ditto * inst/examples/RcppGSLExample/configure.ac: Ditto * inst/examples/RcppGSLExample/configure: Ditto * inst/examples/RcppGSLExample/src/Makevars.in: Ditto * inst/examples/RcppGSLExample/src/Makevars.win: Ditto 2014-05-21 Dirk Eddelbuettel * DESCRIPTION: Updated for Rcpp (>= 0.11.0) * NAMESPACE: Ditto * configure.ac: Simplified as we longer need -L flags for Rcpp * src/Makevars.in: Ditto * src/Makevars.win (PKG_LIBS): Removed call to Rcpp:::LdFlags() * R/inline.R (inlineCxxPlugin): Now call Rcpp::Rcpp.plugin.maker() * .Rbuildignore: Added 2013-10-22 Dirk Eddelbuettel * DESCRIPTION: Added 'Suggests: Rcpp' to build vignette as we call into Rcpp to get its bibtex file 2013-10-09 Dirk Eddelbuettel * NAMESPACE: Export LdFlags and CFlags * man/LdFlags.Rd: Added documentation for exported functions 2013-09-10 Dirk Eddelbuettel * DESCRIPTION (Imports): Now 'Imports: Rcpp' rather than Depends: to satisfy R CMD check for the R version under development 2013-08-24 Dirk Eddelbuettel * DESCRIPTION (Suggests): Added 'highlight' so that the package is available during 'R CMD check' in order to build vignettes * vignettes/RcppGSL-intro.Rnw: Also cite the Eddelbuettel and Sanderson (2013, CSDA) paper on RcppArmadillo 2013-06-23 Dirk Eddelbuettel * inst/unitTests/runit.gsl.R: Corrections to new unitTest scheme * inst/unitTests/cpp/gsl.cpp: Idem 2013-06-22 Dirk Eddelbuettel * inst/unitTests/runit.gsl.R: Rewritten to use sourceCpp() * inst/unitTests/cpp/gsl.cpp: New C++ file with unit tests * vignettes/RcppGSL-unitTests.Rnw: Minor tweaking * vignettes/RcppGSL-intro.Rnw: Added section on attributes * vignettes/buildVignette.R: Default to all .Rnw files in directory, also set boxes option to TRUE 2013-06-21 Dirk Eddelbuettel * vignettes/buildVignette.R: Added simple helper script to build the vignette(s) on the command-line (which requires highlight) * cleanup: Take some tasks that the vignette/Makefile had * src/fastLm.cpp: Minor improvement in computing std.error of est. 2013-06-19 Dirk Eddelbuettel * vignettes/RcppGSL/RcppGSL-intro.Rnw: Some fixes 2013-06-19 Romain Francois * vignettes/RcppGSL/RcppGSL-intro.Rnw: Converted back to use with package highlight (>= 0.4.2) 2012-11-11 Dirk Eddelbuettel * inst/examples/bSpline/bSpline.cpp: New example for B-spline fit taken from GSL manual * inst/examples/bSpline/bSpline.cpp: R wrapper and illustration 2012-10-14 Dirk Eddelbuettel * vignettes/RcppGSL/RcppGSL-intro.Rnw: Switch to using Rcpp:::bib() and the bibtex file shipped with Rcpp 2012-07-22 Dirk Eddelbuettel * DESCRIPTION: Version 0.2.0 * inst/unitTests/runit.fastLm.R: expanded unit tests * R/inline.R: Use two variables in a new package-global environment to store RcppGSL compiler and linker flags * vignettes/RcppGSL/RcppGSL-intro.Rnw: Skip use of highlight for C++ and shell snippets to sidestep build issues on 32bit OSs * vignettes/RcppGSL.bib: updated references 2012-07-21 Dirk Eddelbuettel * R/fastLm.R: expanded summary() display as in RcppArmadillo * inst/NEWS.Rd: converted from ascii text to Rd format * vignettes/*: moved from inst/doc/* per newer R Policy * vignettes/: renamed main vignette to RcppGSL-intro to not clash with the filename of the package reference manual RcppGSL.pdf * DESCRIPTION: changed Maintainer: to single person per CRAN Policy 2011-12-23 Dirk Eddelbuettel * inst/unitTests/runTests.R: unit tests output 'fallback' directory changed to '..' and files are now in top-level of $pkg.Rcheck/ 2011-12-22 Dirk Eddelbuettel * inst/include/RcppGSLForward.h (RcppGSL): Commented-out long and ulong declarations which currently clash with int64 * inst/include/RcppGSL_matrix.h (RcppGSL): Commented-out long and ulong casts which currently clash with int64 * inst/unitTests/runit.gsl.R: Disable corresponding tests 2011-06-14 Douglas Bates * R/fastLm.R, man/fastLm.Rd, src/fastLm.cpp, inst/unitTests/runit.fastLm.R: Change order of arguments in fastLm.cpp, fastLm.R, unit test and documentation. 2011-06-13 Dirk Eddelbuettel * NAMESPACE: Properly export S3methods as such * man/fastLm.Rd: Similar updates to help page 2011-04-08 Dirk Eddelbuettel * R/fastLm.R: In print.summary.fastLm(), use 'P.values' not 'P.value' 2011-04-05 Dirk Eddelbuettel * DESCRIPTION: Version 0.1.1 2011-04-04 Dirk Eddelbuettel * inst/doc/Makefile: Do not call clean in all target 2011-02-28 Dirk Eddelbuettel * inst/doc/Makefile: Call R and Rscript relative to R_HOME/bin 2011-02-11 Dirk Eddelbuettel * inst/doc/RcppGSL/Makefile: Also create unitTest vignette * inst/doc/RcppGSL/RcppGSL-unitTests.Rnw: idem * inst/doc/RcppGSL/unitTests/RcppGSL-unitTests.R: idem 2010-12-06 Romain Francois * inst/doc/RcppGSL/RcppGSL.Rnw: cosmetics 2010-11-30 Dirk Eddelbuettel * DESCRIPTION: Version 0.1.0 and initial release 2010-11-29 Romain Francois * inst/include/RcppGSLForward.h: vector_view now exposes a conversion operator to implicitely convert it to the associated gsl_vector_foo * type. Similarly matrix_view expose a conversion operator to the associated gsl matrix pointer. 2010-11-28 Dirk Eddelbuettel * inst/examples/RcppGSLExample/: Started as a means to provide a simple yet complete example of using RcppGSL in a user package * NEWS: Added with initial notes towards a release 2010-11-27 Romain Francois * include/include/*h: Updated to satisfy some grumblings from g++ 2010-11-27 Dirk Eddelbuettel * R/fastLm.R: summary() now also computed R2 and adjR2 2010-05-25 Romain Francois * inst/include/RcppGSLForward.h : add indexing operator, stl iterator and begin() and end() methods to RcppGSL::vector using proxy classes * inst/include/RcppGSLForward.h : RcppGSL::matrix gets indexing operator(int,int) * configure.win: added empty configure.win so that R CMD check does not get jealous about the configure script * src/Makevars.win: use Brian Ripley's suggestions to anticipate R 2.12.0 * inst/include/*.h: RcppGSL::vector_view and RcppGSL::matrix_view 2010-05-13 Dirk Eddelbuettel * R/fastLm.R: fastLm is now generic and behaves similar to lm(): formula interface, returns object of class 'fastLm', and had methods for print, summary and predict * man/fasttLm.Rd: documented interface accordingly * src/fastLm.cpp: Added and degrees of freedom to list of result returned from C++ to R 2010-05-13 Romain Francois * inst/include/*.h: wrap specializations are now inline * inst/include/*.h: new classes RcppGSL::matrix and RcppGSL::matrix_view 2010-05-12 Dirk Eddelbuettel * src/fastLm.cpp : added fastLm from Rcpp examples 2010-05-12 Romain Francois * inst/include/*.h: added classes RcppGSL::vector that act as smart pointers to gsl_vector_* objects. This gives nicer syntax and helps Rcpp implicit converters wrap and as. RcppGSL/README.md0000644000176200001440000000636113070437421013012 0ustar liggesusers## RcppGSL [![Build Status](https://travis-ci.org/eddelbuettel/rcppgsl.svg)](https://travis-ci.org/eddelbuettel/rcppgsl) [![License](http://img.shields.io/badge/license-GPL%20%28%3E=%202%29-brightgreen.svg?style=flat)](http://www.gnu.org/licenses/gpl-2.0.html) [![CRAN](http://www.r-pkg.org/badges/version/RcppGSL)](https://cran.r-project.org/package=RcppGSL) [![Downloads](http://cranlogs.r-pkg.org/badges/RcppGSL?color=brightgreen)](http://www.r-pkg.org/pkg/RcppGSL) This package uses [Rcpp](https://github.com/RcppCore/Rcpp) to connect the [R](https://www.r-project.org) system to the [GNU GSL](http://www.gnu.org/software/gsl/), a collection of numerical routines for scientific computing, particularly its vector and matrix classes. ### Examples #### Faster `lm()` for OLS regression The `fastLm()` function [included as file `src/fastLm.cpp`](https://github.com/eddelbuettel/rcppgsl/blob/master/src/fastLm.cpp) in the package: ```{.cpp} #include #include #include // [[Rcpp::export]] Rcpp::List fastLm(const RcppGSL::Matrix &X, const RcppGSL::Vector &y) { int n = X.nrow(), k = X.ncol(); double chisq; RcppGSL::Vector coef(k); // to hold the coefficient vector RcppGSL::Matrix cov(k,k); // and the covariance matrix // the actual fit requires working memory we allocate and free gsl_multifit_linear_workspace *work = gsl_multifit_linear_alloc (n, k); gsl_multifit_linear (X, y, coef, cov, &chisq, work); gsl_multifit_linear_free (work); // assign diagonal to a vector, then take square roots to get std.error Rcpp::NumericVector std_err; std_err = gsl_matrix_diagonal(cov); // need two step decl. and assignment std_err = Rcpp::sqrt(std_err); // sqrt() is an Rcpp sugar function return Rcpp::List::create(Rcpp::Named("coefficients") = coef, Rcpp::Named("stderr") = std_err, Rcpp::Named("df.residual") = n - k); } ``` #### A simple column norm This example comes from the [complete example package included in RcppGSL](https://github.com/eddelbuettel/rcppgsl/tree/master/inst/examples/RcppGSLExample) and is from [the file `inst/examples/RcppGSLExample/src/colNorm.cpp`](https://github.com/eddelbuettel/rcppgsl/blob/master/inst/examples/RcppGSLExample/src/colNorm.cpp) ```{.cpp} #include #include #include // [[Rcpp::export]] Rcpp::NumericVector colNorm(const RcppGSL::Matrix & G) { int k = G.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::VectorView colview = gsl_matrix_const_column (G, j); n[j] = gsl_blas_dnrm2(colview); } return n; // return vector } ``` ### Dependencies - [GNU GSL](http://www.gnu.org/software/gsl/) library (eg [libgsl0-dev](https://packages.debian.org/sid/libgsl0-dev) on Debian or Ubuntu) - [Rcpp](https://github.com/RcppCore/Rcpp) for seamless R and C++ integration ### Availabililty On [CRAN](https://cran.r-project.org), here and on [its package page](http://dirk.eddelbuettel.com/code/rcpp.gsl.html). ### Authors Dirk Eddelbuettel and Romain Francois ### License GPL (>= 2) RcppGSL/man/0000755000176200001440000000000013320044614012274 5ustar liggesusersRcppGSL/man/LdFlags.Rd0000644000176200001440000000322712774327533014123 0ustar liggesusers\name{LdFlags} \alias{LdFlags} \alias{CFlags} \title{Provide RcppGSL Compiler and Linker Flags} \description{ \code{LdFlags} and \code{CFlags} return the required flags and options for the compiler and system linker in order to build against GNU GSL. This allows portable use of \pkg{RcppGSL} (which needs the GNU GSL) as package location as well as operating-system specific details are abstracted away behind the interface of this function. \code{LdFlags} and \code{CFlags} are commonly called from the files \code{Makevars} (or \code{Makevars.win}) rather than in an interactive session. } \usage{ LdFlags(print=TRUE) CFlags(print=TRUE) } \arguments{ \item{print}{A boolean determining whether the requested value is returned on the standard output, or silenly as a value.} } \value{ A character vector suitable by use by the system compiler linker in order to compile and/or link against the GNU GSK. } \details{ Thee functions are not meant to used interactively, and are intended solely for use by the build tools. The values that are returned are acquired by the package at load time. On Linux and OS X, the \code{pkg-config} program is queried. On Windows, environment variables used for GNU GSL builds with R are used. } \references{ Dirk Eddelbuettel and Romain Francois (2011). \pkg{Rcpp}: Seamless R and C++ Integration. \emph{Journal of Statistical Software}, \bold{40(8)}, 1-18. URL http://www.jstatsoft.org/v40/i08/ and available as \code{vignette("Rcpp-introduction")}. } \seealso{ The document of the \code{pkg-config} system tool. } \author{Dirk Eddelbuettel and Romain Francois} \keyword{programming} \keyword{interface} RcppGSL/man/RcppGSL-package.Rd0000644000176200001440000000052413320044614015427 0ustar liggesusers\name{RcppGSL-package} \alias{RcppGSL-package} \alias{RcppGSL} \docType{package} \title{\packageTitle{RcppGSL}} \description{\packageDescription{RcppGSL}} \author{\packageAuthor{RcppGSL}} \section{Maintainer}{\packageMaintainer{RcppGSL}} \references{GSL: GNU Scientific Library: \url{http://www.gnu.org/software/gsl/}} \keyword{ package } RcppGSL/man/fastLm.Rd0000644000176200001440000000633212774327533014035 0ustar liggesusers\name{fastLm} \alias{fastLm} \alias{fastLmPure} \alias{fastLm.default} \alias{fastLm.formula} \concept{regression} \title{Bare-bones linear model fitting function} \description{ \code{fastLm} estimates the linear model using the \code{gsl_multifit_linear} function of the \code{GNU GSL} library. } \usage{ fastLmPure(X, y) fastLm(X, \dots) \method{fastLm}{default}(X, y, \dots) \method{fastLm}{formula}(formula, data = list(), \dots) } \arguments{ \item{y}{a vector containing the explained variable.} \item{X}{a model matrix.} \item{formula}{a symbolic description of the model to be fit.} \item{data}{an optional data frame containing the variables in the model.} \item{\ldots}{not used} } \details{ Linear models should be estimated using the \code{\link{lm}} function. In some cases, \code{\link{lm.fit}} may be appropriate. The \code{fastLmPure} function provides a reference use case of the \code{GSL} library via the wrapper functions in the \pkg{RcppGSL} package. The \code{fastLm} function provides a more standard implementation of a linear model fit, offering both a default and a formula interface as well as \code{print}, \code{summary} and \code{predict} methods. Lastly, one must be be careful in timing comparisons of \code{\link{lm}} and friends versus this approach based on \code{GSL} or \code{Armadillo}. The reason that \code{GSL} or \code{Armadillo} can do something like \code{\link{lm.fit}} faster than the functions in the stats package is because they use the Lapack version of the QR decomposition while the stats package uses a \emph{modified} Linpack version. Hence \code{GSL} and \code{Armadillo} uses level-3 BLAS code whereas the stats package uses level-1 BLAS. However, \code{GSL} or \code{Armadillo} will choke on rank-deficient model matrices whereas the functions from the stats package will handle them properly due to the modified Linpack code. Statisticians want a pivoting scheme of \dQuote{pivot only on (apparent) rank deficiency} and numerical analysts have no idea why statisticians want this so it is not part of conventional linear algebra software. } \value{ \code{fastLmPure} returns a list with three components: \item{coefficients}{a vector of coefficients} \item{stderr}{a vector of the (estimated) standard errors of the coefficient estimates} \item{df}{a scalar denoting the degrees of freedom in the model} \code{fastLm} returns a richer object which also includes the residuals and call similar to the \code{\link{lm}} or \code{\link[MASS]{rlm}} functions.. } \seealso{\code{\link{lm}}, \code{\link{lm.fit}}} \references{GNU GSL project: \url{http://www.gnu.org/software/gsl}} \author{ The GNU GSL library is being written by team of authors with the overall development, design and implementation lead by Brian Gough and Gerard Jungman. RcppGSL is written by Romain Francois and Dirk Eddelbuettel. } \examples{ data(trees, package="datasets") ## bare-bones direct interface flm <- fastLmPure( cbind(1, log(trees$Girth)), log(trees$Volume) ) print(flm) ## standard R interface for formula or data returning object of class fastLm flmmod <- fastLm( log(Volume) ~ log(Girth), data=trees) summary(flmmod) } \keyword{regression} RcppGSL/TODO0000644000176200001440000000027112774327533012231 0ustar liggesusers o [DONE] More STL-like interface for vectors: * RcppGSL::vector<>::operator[] * RcppGSL::vector<>::iterator * RcppGSL::vector<>::begin * RcppGSL::vector<>::end RcppGSL/DESCRIPTION0000644000176200001440000000245013553066422013241 0ustar liggesusersPackage: RcppGSL Type: Package Title: 'Rcpp' Integration for 'GNU GSL' Vectors and Matrices Version: 0.3.7 Date: 2019-10-20 Author: Dirk Eddelbuettel and Romain Francois Maintainer: Dirk Eddelbuettel Description: 'Rcpp' integration for 'GNU GSL' vectors and matrices The 'GNU Scientific Library' (or 'GSL') is a collection of numerical routines for scientific computing. It is particularly useful for C and C++ programs as it provides a standard C interface to a wide range of mathematical routines. There are over 1000 functions in total with an extensive test suite. The 'RcppGSL' package provides an easy-to-use interface between 'GSL' data structures and R using concepts from 'Rcpp' which is itself a package that eases the interfaces between R and C++. This package also serves as a prime example of how to build a package that uses 'Rcpp' to connect to another third-party library. The 'autoconf' script, 'inline' plugin and example package can all be used as a stanza to write a similar package against another library. License: GPL (>= 2) LazyLoad: yes LinkingTo: Rcpp Imports: Rcpp (>= 0.11.0), stats Suggests: tinytest, inline SystemRequirements: GNU GSL NeedsCompilation: yes Packaged: 2019-10-20 13:53:53.24488 UTC; edd Repository: CRAN Date/Publication: 2019-10-20 14:20:02 UTC RcppGSL/build/0000755000176200001440000000000013553063361012630 5ustar liggesusersRcppGSL/build/vignette.rds0000644000176200001440000000033513553063361015170 0ustar liggesusers}P0 D!!| zHHp,c 旋lDftIy}5xxH(VWV7y|L6Y𿏗;Ň\lJ9e.?:l 07ҜcHb:{ +44jrJ)agKx/PnPϽNѐνNWK*/+OuRcppGSL/build/partial.rdb0000644000176200001440000000544113553063360014760 0ustar liggesusers[r+%KI:uZ78&NʲGSBO%n],D+G5:y8gIaifuVm.VE)+#%<º (#^]Qtfx˃eO7&RѲx|C&ćF߬)L7R&8SOMS l!6btc_,DI *ȧسgϼQ~H1|r,kƨ?)~I`9RO\?6u|M;b+*g:8̎rb%$_UQhVPe6G%U-x!g Y(wcrn&Yap\A}A *RH'. "z6+ӫ0Ȁ)Nx(<"^tW 8Ddv6ھBXwV\z ֆAs#h{#QILG>s\W[uu@Q+;xH&znWN چb[nإ VT:bM mK 2ͤvN.1sf.)+.lE15Sކ|ˑ3SSϺv"?s--KWP;#AY ˨ 1BƷʾ4bq|#曖NxT7wŖ$}p1Ѣ"dvӽFmi]dֵElU%j1"~!~:UӚ;MIG5dH #$\Z Ghz>/4 ׶a+'~UPvÄ3A[^^7e"˂DqXs2E䘸!p-JX}x?D?ubgCfy9e:x3H~O+@;c1_U:u/ES&Xr4;3' DkRQc$f`C.re]'3Lf(B&]y7 F)01{'2Ռؘ"JPE ץǒrJ"Yx)jcș%l'OpN;E`zz3%ȓͷn:5 nkz&I-YuJ1H.H٤ ܒꕭs6g =d`='I`Rz OFp-GOO)Qjfy5x@R陛>37|:72?{'ɒ7zg-Q;Ȥռ>ƼckŖr<9dٖɀ;ǻP1ׄ[!m~wY쳱4FxK%|}vְ;>-vUYUćݹ>~7.x׆=r?! `߽ٯ]\ n{F~P!gkG̩wl|zݻӨ#bt X%'Kgp„-k )Cc)?fjب= j);׫U6JmwjʞSC ;@)P1;M Te>H]d\U{;s?W}Uss~3_]\C8?_G^,,u+̓n1d]F%uMH!sѢjJmQB(lp1wX%ۼ}n{K_Y-5y,= "1.0.0") { ## Set a seed to make the test deterministic set.seed(42) ## R makes us to this Sys.setenv("R_TESTS"="") ## there are several more granular ways to test files in a tinytest directory, ## see its package vignette; tests can also run once the package is installed ## using the same command `test_package(pkgName)`, or by director or file tinytest::test_package("RcppGSL", ncpu=getOption("Ncpus", 1)) } RcppGSL/configure.ac0000644000176200001440000000173113553046625014025 0ustar liggesusers ## Process this file with autoconf to produce a configure script. ## ## Configure.ac for RcppGSL ## ## Copyright (C) 2010 Romain Francois and Dirk Eddelbuettel ## Copyright (C) 2014 - 2019 Dirk Eddelbuettel ## ## Licensed under GNU GPL 2 or later # The version set here will propagate to other files from here AC_INIT([RcppGSL], 0.3.7) # Checks for common programs using default macros AC_PROG_CC ## Use gsl-config to find arguments for compiler and linker flags ## ## Check for non-standard programs: gsl-config(1) AC_PATH_PROG([GSL_CONFIG], [gsl-config]) ## If gsl-config was found, let's use it if test "${GSL_CONFIG}" != ""; then # Use gsl-config for header and linker arguments GSL_CFLAGS=`${GSL_CONFIG} --cflags` GSL_LIBS=`${GSL_CONFIG} --libs` else AC_MSG_ERROR([gsl-config not found, is GSL installed?]) fi # Now substitute these variables in src/Makevars.in to create src/Makevars AC_SUBST(GSL_CFLAGS) AC_SUBST(GSL_LIBS) AC_OUTPUT(src/Makevars) RcppGSL/src/0000755000176200001440000000000013553063361012320 5ustar liggesusersRcppGSL/src/init.c0000644000176200001440000000142013070437421013420 0ustar liggesusers#include #include #include // for NULL #include /* FIXME: Check these declarations against the C/Fortran source code. */ /* .Call calls */ extern SEXP RcppGSL_fastLm(SEXP, SEXP); extern SEXP RcppGSL_gslResetErrorHandler(); extern SEXP RcppGSL_gslSetErrorHandlerOff(); static const R_CallMethodDef CallEntries[] = { {"RcppGSL_fastLm", (DL_FUNC) &RcppGSL_fastLm, 2}, {"RcppGSL_gslResetErrorHandler", (DL_FUNC) &RcppGSL_gslResetErrorHandler, 0}, {"RcppGSL_gslSetErrorHandlerOff", (DL_FUNC) &RcppGSL_gslSetErrorHandlerOff, 0}, {NULL, NULL, 0} }; void R_init_RcppGSL(DllInfo *dll) { R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } RcppGSL/src/fastLm.cpp0000644000176200001440000000367212774327533014272 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // fastLm.cpp: Rcpp and GSL based implementation of lm // // Copyright (C) 2010 - 2015 Dirk Eddelbuettel and Romain Francois // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #include #include #include // [[Rcpp::export]] Rcpp::List fastLm(const RcppGSL::Matrix &X, const RcppGSL::Vector &y) { int n = X.nrow(), k = X.ncol(); double chisq; RcppGSL::Vector coef(k); // to hold the coefficient vector RcppGSL::Matrix cov(k,k); // and the covariance matrix // the actual fit requires working memory we allocate and free gsl_multifit_linear_workspace *work = gsl_multifit_linear_alloc (n, k); gsl_multifit_linear (X, y, coef, cov, &chisq, work); gsl_multifit_linear_free (work); // assign diagonal to a vector, then take square roots to get std.error Rcpp::NumericVector std_err; std_err = gsl_matrix_diagonal(cov); // need two step decl. and assignment std_err = Rcpp::sqrt(std_err); // sqrt() is an Rcpp sugar function return Rcpp::List::create(Rcpp::Named("coefficients") = coef, Rcpp::Named("stderr") = std_err, Rcpp::Named("df.residual") = n - k); } RcppGSL/src/Makevars.win0000644000176200001440000000037213553061671014614 0ustar liggesusersPKG_CPPFLAGS= -I../windows/gsl-2.4/include -I../inst/include PKG_LIBS= -L../windows/gsl-2.4/lib${R_ARCH} -lgsl -lgslcblas all: clean winlibs winlibs: "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" "../tools/winlibs.R" clean: rm -f $(SHLIB) $(OBJECTS) RcppGSL/src/setErrorHandler.cpp0000644000176200001440000000261212774327533016140 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*- // // setErrorHandler.cpp: Set the GSL error handler // // Copyright (C) 2015 Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #include #include // See Chapter 3 of the GSL Reference manual on this // Keep a pointer around in case someone wants to reset static gsl_error_handler_t *ptr_gsl_error_handler_t = NULL; // [[Rcpp::export]] bool gslSetErrorHandlerOff() { ptr_gsl_error_handler_t = gsl_set_error_handler_off(); return true; } // [[Rcpp::export]] bool gslResetErrorHandler() { if (ptr_gsl_error_handler_t == NULL) { return false; } ptr_gsl_error_handler_t = gsl_set_error_handler(ptr_gsl_error_handler_t); return true; } RcppGSL/src/Makevars.in0000644000176200001440000000026713553062260014423 0ustar liggesusers # set by configure GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ # combine with standard arguments for R PKG_CPPFLAGS = $(GSL_CFLAGS) -I../inst/include PKG_LIBS = $(GSL_LIBS) RcppGSL/src/RcppExports.cpp0000644000176200001440000000222312774327533015324 0ustar liggesusers// This file was generated by Rcpp::compileAttributes // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include "../inst/include/RcppGSL.h" #include using namespace Rcpp; // fastLm Rcpp::List fastLm(const RcppGSL::matrix &X, const RcppGSL::vector &y); RcppExport SEXP RcppGSL_fastLm(SEXP XSEXP, SEXP ySEXP) { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; Rcpp::traits::input_parameter< const RcppGSL::matrix & >::type X(XSEXP); Rcpp::traits::input_parameter< const RcppGSL::vector &>::type y(ySEXP); __result = Rcpp::wrap(fastLm(X, y)); return __result; END_RCPP } // gslSetErrorHandlerOff bool gslSetErrorHandlerOff(); RcppExport SEXP RcppGSL_gslSetErrorHandlerOff() { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; __result = Rcpp::wrap(gslSetErrorHandlerOff()); return __result; END_RCPP } // gslResetErrorHandler bool gslResetErrorHandler(); RcppExport SEXP RcppGSL_gslResetErrorHandler() { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; __result = Rcpp::wrap(gslResetErrorHandler()); return __result; END_RCPP } RcppGSL/vignettes/0000755000176200001440000000000013553063361013541 5ustar liggesusersRcppGSL/vignettes/RcppGSL-introduction.pdf0000644000176200001440000031703513553052164020235 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4209 /Filter /FlateDecode /N 89 /First 732 >> stream x\ms۸_oE @s3r~9ǎNCKFr> &Q^G.}X3t&aIřfA)iaZ 0ϙ$}$IÙO0`>1W P8ğDudHF&d3s&* D$qСtF: C5&  * & 0 UR& hjCH  ]P Ud!H 3"Č&"! W"tdBД"P0@#B@-@|b BUPrD|y4@(G1L( xa4x T_^!AY) >+ AYԐ@!Q( $"D9 hFuYP9G*rP}Hހr( :I8rBCQ+Ej1(Q y,xPr{_&o?%C%r짟3Ol< pWZ:#6n ho(4fMNb!ۿY:2 F忒afgREfi3w8u_?w_<VC ]Q 'ג4KY =x;p|0 IAG|>*tMqƆ}2O]_Vj>Pf@_öMo)y h9iU^ [eK.ur ' }EiװSрYT8T|I;`G< ّJ e"U3U]wLUVbU[:OɐSxmX8,Ʊq;%"qUU<{c+Foɏ&?Q[:/ E3g j~fnza"2 u{8qZL~ FW]?:Dˠӂj K֮Z<6.}X>k`.'{)O^fE֜]Kd!|ST-nocg`w6`~r|<`|bXwg/id lD>/xM<%tN'Vܙm/0e7Ԗ\[ͨt@-V!L~kݢ**=h삑_J% 0)+έRtHߒMy6C;bo gK+oz3Λ{a?7:%-fR0#|3$Eκ8Mmw{9p8% Y^Pg`EOE6"úr.X*hxMw`m?bVߔ 0{',({}W4z }r:gCK9}n)rxnVjV]WږqJw JDS~%(M({VZvU?ذغ]Ko^c"{ܻ\zx̉d0ӽP2(NoWc<0+zލwpwL%_ dM2wG$T\g#nH|v3N{PK߽nIefN7;\9NډL/DT)p+@Յk*4+P@4dY2}s:.:3[DٶD'i`[L:y=&UsWVZi* sqCmV4f $T :(Gy.imGkłȧ(P_iH(`:JTy Vǜ6@S7yoTH 5_mT*XPBT\pZRuԿG,KF[ػauZ Hy\$9!Ժ/.jv8irKķb|+=? Ǐ-TrwE:='u?,Iܞ,y]4ėJL=e-rb6Bo|<ӖށY}}x۩J.≗|N[ ^#`+wJ'Ԭ-[7ynE&XՅ }bOWx~HM?K b IB7h5k3lU~uWduMVRζʸĹ5Rs&͖JPŨ;fA4U2Uq^M DM<52WYB'xPjlE9h=&>X6}zqxt4Όp'ǫJ=*a#o 9oM!*9\_~paLȷ]dyM19Fr'$Iq5wQ2OyRͥ5O _^t4NT ߝ|qg73V2/lp2+:VosX*0>(|9jPKsg:"6Mh+׆ԇikyH/!IFzeX jfh*$pVZy&Vy"I2'& K[ W=2҅CX oo̼c减g F>o'M^OV#Ak-%m^Eŧ#by `#J4ou[ʛ6>]^yv$+<4 A첻{w%f#soXx3N c _iU:ͺu*oRu0垝>'*Ҿ\ݕrcŰ 쪕zmF<^3 RӾ3^o{8=xM Wgxe py m ]Aq *4{&u(,4/}d~!oz#Wګzk\KypST\2m_.҆I*+OІ|ȫkq}2Q:|[l;ۿD޼=tQߨm2t愵{9|A%깫<+'z3?qǶj>;::W$=*»jNeEH:K3Wso)hx"a櫌⇃.^F"[㛼_]%v2ZhCz5~&Z? N]KGztu.O(͙g"G]. ilߙendstream endobj 91 0 obj << /Subtype /XML /Type /Metadata /Length 1549 >> stream GPL Ghostscript 9.26 2019-10-20T07:34:59-05:00 2019-10-20T07:34:59-05:00 LaTeX with hyperref endstream endobj 92 0 obj << /Filter /FlateDecode /Length 6405 >> stream x/wD˙ɓDb}1 vE_<6SSoTvV*' &.Q÷Q^-qfɢzUˏM^_]fM Ƴ^Y屎]* \XBIvB sY"v[xF#i/GI0p$:pRqf5q|mEÎzIkk-#nsHg/qG61k߈i#~ų!菝'HD[dS9 ubΛ5\R[OLhq[SDNA,υF u’LJN6|Ѷ́H7)Qοwz҅~9\#Od̞7,NT]\"̯'v"awNw8xutooIJeH7lnUX>ea@;Ox+IttBc\bQX0xGDdE+|e(|^ m3M2o±5%],ZK&`n6 ඕ2tU(joڮ%f2K[ ;fpF=~&Ak ,qUv&ʒ [mהlQ vaԁh7oZ0R?V0 HViXFnǔfY^^g-KTˤ3ғdQ[n ZMnA""_%{HqhE{Akoa(dl=ŢX͸;rɪ.+pӂHZX54J|;~DM>3@̋WW-yHhpյ͕q4z% bCFZ$IOXz&o)( o@uՀF"U[WP\ i%bXB3QiN%R "񻜴"ƅwg ˻:`tp]7󮞃×` ².}QT_A<#^fWLF`ހ.F$JIGVV7jbɆy*LЪ4MAp7ef@ t 'PAKM&A֒8 3r)hL1BuB@N97Y>4Cgǹހ)ɦ=-A3c`-Do`x58<J0I02Vi 1hy*7t6b #!]vg0hkL9ˆ d%N"Eo)˿,f2Sl>d> " I: ׻K4*w>u6, IN0;h#b<˩T`(u)Q2ʮ-֗7Ħ#];y2*ֱvh{ oslbk@/sFdyP2.s.dj`uFRǪ^rlj0;LŔ IDc-elt#K5&(! Ȋi73$K j|fOdzpxjLսV)\mi9j9-M$RDz$M2 E&$3't 8jeqDL@Ce?dTzlROߤD"m6zǁ~\ܡA!<ҨA}:I4Q:.81CC+# R^;v99JRDO}#k/Lj+vM@t,p+gTIW SP*&91c4^V5QZ bS4OP@-C\!mmIxHAq$ހBM;堜 H9].>0Șv(Eʼn6=pz}S՛2_CNSΆ&')AGӔ! PR&h},I 0rb.-͐U$~Ѐ]RVf r qW/8 {} B*1mL(Av鳔܂Q[ # 9iBBUWleʙ>]IytD_qzG/9@h>OM*roq䳁|:HL5cl^L 9I9b;NN吜gL<%5ݼ7^mRbLtA*7?5+N.oW!)I1IS*MڂsDCg$e5 7<6 k T*l΂EP98~zTQG]4mI 5$f?i)2p{{_ 16btu^u/? $YTڌlCC' at}SBZ @eHF<Ӊ#zG:~|2Og\S<_˯ ?^lWy lȤNqX-SNbk =Zږ[Ҧb=K`ai~T3ŕ~Xe[֬EA `A[֎R&T.8>"P]sbOͱ[/U/s[7IT,!J&QiY[6fd zZ ظإ;5zNZO0^0/x7Y5KrZFqk9 .saU~MN,<]UJjWr6 G b< jo#7EX aC@p:f~sуLK {zW~P?Zܨ ^Ƞw\Zi"]E>Mo^ROV״aYmp̖nQU ul79 %)G ECA)|l02! eೣR{RBT|ȑH1F}Ợ)P, 9c6 [ć(b O|6Uy] }]tk~M5:9}3tܛDp ZէvxR<4`1{x+T:s8ڂSvzxSb p(0tw)K:J"=;I֯:!Z{Y ]*Hhb;/s 1?wͣ$~vCX1d.B5mfك\m\H(]k*t OX(6iKNU5Pzyp!qMOtI_p!1>왉Sc,=IԞYthP`M}@MSa'OE ̋B86YtpTSaxYމ[; tc ELm"Akd>}  RF?0n}l848P]˙=^;1HՏKS91 E6]Pi< Nm:n0'=o MѮZ~ {uMguT4_e~T?}ENO^<̇ӛ_yhƳ<+ڱfX4nt}Y7C$U$v#v=GbAPlEY>".Fz}`NϊMݧe}*/Z P>4`q"ۮH曣oFWTaTj~8WoNT7j\śFɕʾC 4ttՄ=saE˺?z-Tbdni>p-[j&ƅ[dÉG[]wiʫU,ܡ`26 W:'-^$CVg,@vv!3a4\%ŝ0^)T Σ+iq.z}HHuy}χTKvn25,ӎJU@xo%4:˗e O7Z΄Őpl}%E%M&QS,v Go(5Au|;:wz/QK>PMI"U7d9f nCSI[|V" eS} 2JFDt:E^cU*Le\k|߁k&fSxw'b[eCgv t|pе}l=|xƓ_U|> stream x\nq ls%9kۃ؀p)dK+$y;i: Ŭ];lit-5"uQ@U.QUֿ[.e`lݽoVO (li[)v9u~uUɒVnﻡn-3KBJ+ Pf!$<{hv>2EwLl`Qnnv4٪`GD謙\WeM-G~Qǔ`#vM0ɚz1 "Q54`ʰwJZ HMNYg۶]X]{/ݺ[Ah`yw=Qgwlکv%r[IӣMUW6N 3h%--ʽM+c,iM?u`po` j^ Clg\7#"m{U3v?FgؽK8:FAOU7K5iHbR ePG]?( yZ tml:X f)*N#X7GĠğ{t7l4Cſ뀚sVi ٺDJA+Lp|"gB@2s7pͅEy`&I@l v7ןG}s=aEJCYU`!=R\`Q%awIjmh-&/FS13=*O_qNAxgJ{c 2&b+ xYT PQC3kM'`Fu[Te eTtyGc#3i}dzTCPxh~~J=dF*QFlLo)ϊniOyd훳?ԋ >8cm\ ',mSn(FK]פ~\Xt_#eM2S})h#W9(YslV\ (U^Uv!}x]nt;'Tj1qLD yT0C>DbAQDbUm3n):[,zd؅_{;=TuL;"o  9~EEYFjkˢfs޼ޞQ ^k5ۤU%BnmEy>bԌgg9{nMsUlc{oK2RMیà RY -qdר22wjF$SB{MrFbmrIS{'JkUw!J:bBPc B؄jNE,q:HӲv\_wKdOUŨRV "7~p Xf @o-4HnqY޷g߃;ŪQI]?zvt9~e.U 00Dv8-ȖF m8l~q2 }%Bk l,0u-L\!^#̱go~1Іv[BpxJ ;Xs?6TG@m)l͇bUnh9p¿B:׻u(2/'gEy=&xc|#zѦ>)1u X6Nx\PpwqƷq\c۾5VEv|>i3 %W)`<oIdWW8L: z}6?O m7'U,ynCpÊ4hط[I|QW:^?AY%,V;,A!Z\o*Umu_OЬav㲊3x@)4LZLwZ:&O?UY_} IJ0DILeK:OHQvХGQA}u+ 26#)Da0=!6yLP188s@V]JpS& >O-\FhNGi+r)q+A)LSM1pxKQWvAcWvh]*t=|d14VRTQvٍ.˗3oB:]vc,J%P_Z+oǸm|-\}p+yiT8I*|%歰ЕBPI)f C :~]BPV"8kwn8 ߀*}-Ҡ'k<6Y҈+%3^aFeޏK/`meeB3MYʋz2i*?>^R[@9P"jJءggsYeU.tJW(ذ¦ ]6FX2%,#UVY 7>16Rk sN)c^#  0:X9FWВ+B?d[foFdƺ恏s<Ο 6H݉=tarRQ+V3"IcØY*ŗ.'Ή9p5m?~Br[ߚa_LQy}44K.Jp: j\ 3:q3`ZZ址ᾍ-N+[T\ ,QQeqҥDW0! p1C_p*In!ھGT*f0{WGV/2s_KEFs/j/_saWQx[<> $?RLFw.qT-)C F!§ǹ.Yٴ !TqE~%WSxmQ̅# @U8]zz]A*BQMjI`U>-rŲF`r*R>&k-EBFKT/ RZ<+O*PO>؟ cGao#p8@)ԏb$k;&±"҉#`Ӊ=w@w}is؇2("->'O]LN\y>tQ/jڸ}DUXG[euI\}$bf%ZX~|=K!V0iFJGi[*d}r ap>9QW)ӦWΓдaӨPfrk+^pyb^q:*@kQb]~\4%;lh&.͜CtmCqUmwj~ۮa梓Bnh'Nm-Tw90Wb= ʈ İtAò߂8Cp3ba L.`>VbxH!&B{bUMbE۰p *W5G({7` (Aus6qWfk<}]U>ʐ} 2Oi@fwzr|]+O*P "^qX &~zd|u KP: d :` ȄQU6.AKe|IϷ~ve^2])@`lW66*: Q. p4Au[hv]Y}+C{9]+а®G$Vb$)v\{;9ٻ X1 ?)2`a]*N'j&|x ס]2`vj9cK[$#[!T9'r`9Y2@*l 1jB3{ECH ou[hWl5U .ߏl\߅أvr19HUfV=8)Ѥ J$O@v(B_U[ G>M`9#nG?&BsWw bи7~9a|(xٛlN'<ɇD9x/ج[6 ?uA%Hi^Gzk衜ujծZPkweB,Q($LDaZ׹NJ|/X%wtdyWrӯ_nʠϥR؇Bx1E'eQٟ躃Z BO~?< y%[b=l*C3Qi3([*/ !h6ʓ鬏VڻHu_q?a@s--{L3e>bwR ޡgd8^c~Ĭ{,f{G)\%2l`@̕+]o«ro{>$ i:dFpxٯZߑVMΰT\XxW@#f߷#I19`́ҳ/3D niہwHፓ3zǹK__ρe9t9}ef<9i I0,] yQ]M ϩF=o*¡ڱv3xL+ /{nHjrW~n/mLoÃ'd«]Rc1bͩj2I/rϒ￟f}yI)"&:;u;MwWg(.py~I7y0+0,t{g &HgE|V,xbjsm-^ w;Mgendstream endobj 94 0 obj << /Filter /FlateDecode /Length 5387 >> stream x؃-6w%R!e{{o\U?ȦLI%M.⣫ed?w<&YfSēi~d$̻Cy3Lʹ=dBT'M1iRyR ] yHx9G=* DP= )`VdKPhuP 6&j٩R-*y1DB{0/ e=*9hzKٌ!"Jۯ&` S/ QuigY2<eYNgRYٜ2AdJ@k3E=Ah]`z37kAC ~.$2`G`Ow% "NgI` e崆vg򨊸juTc7$3>mo bHs}b[TgďÌl 2]pZc_ \rp]ʁE3`ʙ7c}7J\e %Uhksq\$ #Pu[>AܹG=Fp@>XB`;<#}x1p9Ǹh`<YKmеآaL '@rr"~ / wrNuI|#\^ F@<O)z_jURN3J\,S9p|oŢ_6nq !Mp:W)P"gP!"URr !0rtg!zI._|XTJ=& 3b;~u?k!IJ] mJކqC=IZ6|CP1hΛ$W℺NUY9i{XˢZ'<-Ύk կ Xr< .xpȰìf#qY$f5fu/7~vna ۜ(8)bY7O{Tf6r?#b6+`@$zBAemMD`pE|0z O4K{elڢMq(gzs|0BF}AġVB\jLQmY+O3`v0ð!P6a@զdڮ>E'~ԷM\-tf k[+W}1Vy̟K3[nWuՖbYTʍ@SٳƢ9'* I`J*$?V~ҷTwd.p x Lِ!. V و)2&Wƥ-mu|\es%X1%;-T X]6j]4-E@%~fe1?:-B9?)0xy1cYxT3SHʶHT۽@j#d*,H6jhg~6vXpoWM*֮5@ĕZmz 亘b)&֥#=%0t!dqF]F-NB;`\ qZLnxТ6E'TZS[=>ZeGʶT h?ĥɹ;mI660FOt!0P)Ø#[I`ݾpY~_=RĕG`S1a]ヾ)DfT_ܤdi{<#w) Ҏ ?Pa@8*`qcvS@DZi W4q{(toʑ6X%I:2rd1AZEIwRŤsdZ?Ira%;|sa +<„a8؉Yg.H[a5c [UQ Ҏ :L'-v #QUR'7EaC̭YGgߟl3h~|~mx@x_@%^ 8Rܛd6_ݓ&L0̵ʡ0g4YLXN'c dؼy]g>n`]9NKb ѽ/wg&=P6jQ?jg+<ǒ.s4RDnEDu.`0Ne6 ,eAinQ ?%o-Lcbx6{|#Ltև@13>7l&$D,^:홨]EĎnlFZBҦK ]ꡨʢMٶR 4Nog2ʙ|}GWMw>W8\W^TL =eM 0mFRF ?ٮY/ʿb,lŐwI08;8GlqE.cXJ0^فE-xTW'ͨpIau!ܫJvDv3fz0$W):u A "+ &Uth;<8|8tA%).ѮlvW8-+' $TVTsRO꫓="Hk zWBE aK1mm}Sj;rt6ҴA68`kF!&y,5pǐdQQOU(G'j ;l)Bxa!2dH}=搷NJz!-\ {a& haDry!dq( 2AY&Cۛ* >owo!M]+BT,fչeZ̐Iu) 9*.ۚ`zflo7\^]``7!{D)\;`x'b_-{I fzy‹ t9sڏ!36pK7JȑQfx bI96a)[kUP`m*i1)IG5FZZa;AȨn_I~+NQ ~K}'u8B)La?GsW5M|&>nGڕF8TF<#XGr=~EԱ}FA)X^j^u0C"|Ê/oZ|h u|,\\ƖzbL9u0.1[R;G((GX5lET{揺Xcف R>R~sGNIɮϱ~,zZܞ`¥`ޞ"s~ +MI |q`C 4haajGrsuBd@aA1mז > ,uuȇ;f|`'+4$z&+>҈x]пO7?j )QƝՏޖ4w_Y,[,qv(nFb8bkD%n+lO ];x) 5ݥ8km⩁>Npt"0\cڄ{bv7}ZFS]U.޽mn8g>jn2 )S8/rL&;ey +TPG>3Ac7;'68x9J 9i?ԃ u`hp)6S&S7 \G|^,F3ug+P6Ds [GrUo]:+k pe03YD W$@ bxCH hgEEFu|g> stream x=koFߍBXɈ~w;{dErw867zE{o\U?nz(!v3(U^ɜ3VP~Fhjzj |PRfG#HFJ>zQʥf(2?>,q;igd2{xWYeMD '4WۗcNω 1MeM'cY.4Ic"/gJ㯑(ݯ:AB ~?xcbSѻ)\WQ7ԏ×"RR@@Bpe KD)w_IN`Xz~ݣڻ?u7k_I6c‡uUMMV޵y֓r6{;DwmAq~%f%B6?r& ɹh=+H$Ug^˹ # 950/rEdAb{Mr1 C}ojox 7&B?G}o᭝x$t#Ie.2ȣ'UO]" xdE3\\f`RLo^" $R"%Y1UV%tP?{S:;>@TJh80EU۝>_k|=Cb\bcسd1q=&^$~LP SVNoxiiv>Rz9# ‚ GA{9j|[cAT.Df "gBOqdRƞ(z_rA<s-wvI~+HIbYN'STLxE&V4"rEa}ժ^1Is]):9hƳh 6ٱu6F!'˞'!rgESC;UdmkUܑ }}Uո ˢ7XB|נ(f.)4qakdt@ OX.03g_"qqפl Pl!xN.p`=wR@'PD젭il*Luvծzݴv2]8 l{Ax*A=Qqd.#п[cwKeKDh(sBMqnjVUyڪ`oM[.ں\\sD,{[dOwRpspM8QDt-RpcA!c!kʹ/o‚4$Aj=/gw6q$cҕfZ1(7P*ճYʰeլmxt|hskՙs9PW)9NuUS]CBsJ"#yTTd԰^hrv\T<+2@iSmt|L7t#7r_W70T`X3 F+3jj0ߵKC (xJpIq5~r01vYD U6a1MK9%Rq2{~SCW)%Yazfg@,ݗ )@ zj_ P44T^ ]# IT{9S=QPc//]vT&_~yYb`*-pVM> "Q.. 6s۳f(Qv"eL$,d.xbIy+t@N:`y\\{9jas-3t y']bܻ|o D:";shL(н}QV{[{La41;klƧ_ e$͉V!ӳ5ąt\fƁ7K2n&,=vVhۍx Sm.UKF+vfnm6.dV]zh끔^4I]- `GH/LRNr 9Y]\+3alRݹqrJR=p@r0*xMf5+2*CDr1ke`Se5$.&N0}Τ`OEV/3!T\+b4M^(E䱾*:oC jϮ~Kv[!/ 퀒 {|gMu–C> {JK{V4ebdl)-E;%C|x`CZlCX"*d7˸*Juh>,sGآY{N[ l۩H+FaisU7sҮܩ&cYSr7bPUiI(`8AMHzwk U VP >^EУcgmK%B9u& A˻ԗ]$Yek\q &?q[! Q *(5Ҡ Bݱ6<XvPIg+HJԺѠPu+6@2"ʗȑuɤrڋ[*J= pqQV;% /uE' ӰGPcMߒy:mbVNy̆ƪ(Jv}_#<ɀ-c(ڲi bY@ mSܭ}\XG2kVXTޘ%B|Uf a[IQ<-XgwaİnD郟o;!ybP䍵rAc}0jQ- nshRp<֕Wۅ $+gxv3+v&IQeڸFs=EE877n뻀՞CZO+p0"8W(jYJwJU) ^vM. = (':W(T$G[{CٮkP4-%I[鈽 #YANsOM0wU# >ߔqov͓n 9 aw_:@.c_iH,ގ>M:"I;Enw D7%( $v$qm=bq.~V3)@PbMܰmB?:f:dC'qܷiEar]jeJf7XWaygqUP|fo.X7"O%nPHm!Q_0h(ğ{t` 0Yi S<8Dܸ;hc7)% ˕xR Xǎ61LR _ꛅ L{&@ @y[;  ~Wݿ0lJ`NiO%؂E}'Wu ~4 ɏyyGTzyЫ7?g~:]!P)Ar@ 7D%vA" )zK3CpxzR&Ț-]F%M w Wl{Np# 3_& wPzw{# I@b"C49D{jr6VOUUn͏=x~coKŎpDE. MIA;DbMsXai':p 2 ]RKauА6Q~k ceG>8-"+a]2PlܤS9x:aF6 ӎ`}ʜouNt }l\W܉<PUiVjBZ۩MYȖd=O(D| %BH2Lpym|R*w8l8"ڟΑ$wLu֪Py A =P\߀3ҞXEJ/a5îjm^m~hY^eɲ@OytQ3^6{,WOo,GuduUzj~W4rlXSM4`93c)| ٟN*g0/sIcY㋙LE2bst_c'3z3 ^N\iN˞k/n1'L }|]^j!̈s|~Gte~؍'1_ 8/bxl#k?׶l~ ϬhRW$48e;P$a8N67՞9J&w 8?'jDۺaۗg?b:n=yƞ = C$2L Ƣ]yq@m+ HmX5}_iEօ= \M"ŌK)1 o^rxu,!Kf)-iv;t]K_Z{Vw{߅ twm`;,1>.4nrWsl5(U=#d(HQ/Wۃ6$xMઉWmTv!)Si3NS2{7f$GR!/mt(?\'=,W`XL EZ^eG9=̙ ]!g&I(H\a $x-=qUMv`)Of(gW"*I-I|Ӭ/9iNB23D Iрdê >bK4sSĐC3 %vmX_DXvޡHu=WuE[Dz:)9z}ha[|_C./ꎈuhtG`fKqm-klA%~M>'$wt|vP mA]A+ ]x6ą =c'A!ӱ$8Hlf6ub1EHn~.@".0O@d9{66 bׅuNHjV+leݏ `b?Fk\6} SŚ V}<8BNڍp|̃?b'x/,ڷx,[c­uB#oendstream endobj 96 0 obj << /Filter /FlateDecode /Length 4659 >> stream x[_sFrʣF.s|uJE)@{I>oF{fEQz]0=gEf /޾fv۝Y1 Ojf3͝l۳w?^I)g:WΘ/fL\13\FهϹyUv?Ȇ5Yv~Τ2{p\˳ rVL oS|f~7sno>r90n1?/rR.#../fS31yR1X].l١&܁FlFEO'UJP0q!8+Pk\]~f:`E1 2 5) o$7Q%xOpH(ަ)A W \ -t6^Aiߞ]flo(),1b$.]@OiZnS2?7΀;C@M%N_#Ӭ +ai}A01u/Z Uy7|E񌎂X݂<;$sTS# *+ѡS, >IshlS~,o0eOz[B <7POB h$L켦*Iԉ@4f&Mx|ӀB;8ISy‹SIL< a$)KgfJRg˹ l"2CǤ8T~_]]E6|SUQ\$y Q.2uhp_r|_w5d؅ȍ `|<%uFI5b P$b('O9W"(@_%DX|>i1&%DTt?Q}L X%QWL |~ιt}N/[5D ʹ#8P) ykq㙀q#0K΋6BsNEtSXP8GͱD|h^ 9a,D>گw>Q'CYЪ$7=Xb&- q츇qCzB@8T3pj 'sa8YRԣcFzT>/p%FkГZ쫶sXK(kjSsÊ,eTl c P\4(`H15BXT0(e ݗ=PXIe*t ` .s푉dYBO1Ņ@p>i.Kl+y 2!^BEk*(e*LNedYնr,0Ae5YhNO?ʔvmsۖw+lrW^aE1ZS5-ƛr?) D8ʐU]WV2(rٍ,?A:wGrYH; >B4̱FI|}: !9gխV2N5fJ6yO3W}v}FԨA;Cf#{Wפ5ju]O{<:S6%ŔZQ$C{ڝWP=!C'- ~c2 ү6W4]-~" Xa]mͼ :m#!\{wbrhR6q1vn$|8hrԄ͙q f?ζgSZ@|~ʓfrm`j8 1D0\B86%KttнqTB=qGCʥo6$Ŧqb}BXhC? E9>E&T/tٵA wD;%s/3#0Cݯ]sWOMcL0AusWp;NBS-6ʊAG]SKz׀k'v>^>]",&\GrkGH 9_yWpk~[ l:EXJ, P8Lυޘ/G sq# W Av*WnmsiK}Ȯoރ\W( Q\dM"I$O"a;qVg_~@At4lW!"Հ{3'iT$8(W$I"6EgL6'ջ~yqQAF~= 15z j4誐Tg$_H@~#}rYJC۷$+3ʕ.˛mxEUg9Ċfk|qu5/F)+JbfY<V!/n:B )7w _&w<=b.*$l}u("<=yU@Oǐq!PG Rh\ 5>h*P_#%}YoJ/bWWc_VV0rB t|$ϯ R@3sxú^(fiPuʣ>,6@ k~n 5 qƏ ?_AċFBw VMiTmh<Xy4E*57=][՗Bqg j}e^&q@\TV$ WP+A1b <Ď hkˠ1DI镮8VE8rҐzXJTH6%+yfHDki'ư Kdmo\O״Tf2:XEԱ`1 ܗ| tIm uUʱ(@{7* K,8-@}&ZHT5_Mmx  H8Dڳuuer7E{lRbTfۗƞ?~']} qW>sM ]ۜVC{`v0} !MH+` Pp`ne0ikhN 䔻yE;FηF`x@þ`f!:k1)s BU&ݦ/|[<-% Fy]X0")qzE`PYl%_ܨ8PFO l@0LK/70H_,ބ%X7C!ݕm8%<9vJwU9P]̶Cڭ$ċlOӑCVhgwUo-.&Bx%7- {2 EwUiC+[iNv9;Ye蜀TfM}onO CXƑ|ݰߚ+x @LJ(,c61fOXpUƽTwӹB._{< 9ĥ//v tG祔|gU{#Z*Pw]$x& HJN_4j\ (v1BoM!(p9x?TFaD쮌}k 0* /u7ƹULCL)}y!V |XV 7-)N=TCXlwg=3J C̍oH |TX-UB1-scc9is T#|WH5CaR*:ĽB||{xƁSSTP(獡\ŞߺjP4cnϟ{L$xؖQ ʧеAdߙ' |06&L.pO Lgr+]-(id6Y SFP e|i|dmMڔ;Q0۟⧳ #\?QLlΓs:˻cxpNM| EEW%l>e,ʘU)z)؄WW* Y\Vm7(LLwR좑Z.͍C}Uk:eeBY#0YZepE8ϦWcsxq͠:'HX:Wr =D*ހ4,śțһĥ"L+!:lendstream endobj 97 0 obj << /Filter /FlateDecode /Length 6388 >> stream x=isF_Tژ0vq\ǻFvvVNy!`d~}t");]H}u>*r2*;=>ajttL棯_t. GΏH^PHȜq6RTѫiV.c-²Y}֔1a0#|Dsnݣl\TYVm=En Λ܏*tV?<)F FSrq^_ۢL媙T~qJvW`*IQPsM]沞\7B {SD:\uKvjX9X4USvU8Q6܈fMny"yDCOf] @d =Uf~Η^\Q:'esW /A/G3Œ^}w߆MzV5 ŻaYy)qL첚 i~?bL_60#ˮES'`bM W=_ts7~{* 4;@rpbL%&Z)xb(jVuaC"[EYݥ;"0"q5Ԩ;6$IPp}C!3欰@6F#6t766-f@N Mc;9 Ab`?#R?"iݶN"_pP G_t}\ʥ9;q{@^V4ωwd76WqM].W]T_e1H_UvS%Β NBpRlWo{Wja%w_xNP%snʦ|0xɏ'S-ʣ2AkQ:&"EZ/JͪY~o'Ь9u1Im(XĝUWE}WIpeSg*q2@L_6w2i"^1`s ?+p#Z{ E E|Sʏ?gx'־w7@ e@{>QW@yw_I 8w=2D)E&)9Ud4Lv]5]5u? N\!(t7C9ԽyaK^!mdYI`[lGN[ߎ10Fx08SvTgrq2[Mc52}];O')O ׳0V]Im^Cάᘡy<70 $ F/}@ႎucy<}7Q=f*,SXI'9]E9Q= -Tϐ3f[K*;R<7aG|m qkߥ4*'ʋ7HL>r u^MEati{}Dfq8I@Gvt6X~W\M/j՞[XuҞa|ʲ͞58/*ќ]jܺ 2ޮ.LDfVxc%qzkʮ^.rA9&eJS79iH(Zv`d'jOW1A ,@&O ,zwa25WrHe|,BbJY$Fli݅1PziZ!kq8B ]CQ#*MNsrN׋Y{+Bұ@gx@D(\(T:vfA2ቻ-UP84f+d7xP;$^6ĊޔFW2 c=r.ÊAnL\ {L`1dE64ґ"a>b( +Ȇ4#w,@e$Wx|V/{,AF?Jx ]ޡ&ˏOE(;9pd$"u=x0y,F {qɓgߢ: 0sL[ ?uNq?Iܛ*!dU,v3K|jd.,`'@zh9BCn%L8N¡]AKρ{۾Te_fI`ro{d0)e&Į*kSN+rRtxYrɢ{ ` *f7j=w Ed=gQ[D3 dA_16n;֙Kޘa qGnֱ+MZg L7mXXgxVh{Օm%(E{C`~u}:9|{Xa<zr4;bL%9~/b@cG4%ʠN|@:M}:OO/~'nl7תQDsp?N! S,6 H|(' tڇ`o0C ͂dD9uU~PV #굃&GqW;FQgD`K]/WyA9;XI><Ϙ3:H|!&:1bCF DaRH&<(2`89`CtXt5tKg>l#Qv2XNP V[Tm`Mn-K=[  B|{:vb`7[[ aB+EMT\̈́w{p/ .}3wkjo8!&.LmEh,'F`8/ _PiF$T4PJ"mb +#-l::2P#m{N9.B*-CUr|4A$H]14% }ͮNUp5OHR'\ núO $"grMy . ̪k(2`hIċxJ}H2ӌ!ߚ#$ uU1~σUd.z}b &=Gɳ%nm`6,$>IkKϲg)# -PU~ bM^&eԿjGOf.dաj6`ŲF8 [߰ la]ݤ6*LR _'$#iw*CHN|oz |CE2<;{_eSJ֋l5ݣ&I3Y =N\UC$ˋv{@ V!7opqсsN㘅F)霋/ӴkԺ`{ߘ7\&`Or۽DFz+.970]Sa8LQ EG:aeu`3Jg"}VSG)x5Ώ {%D? _Unt7aT_*5]5٪M]=lpX#ycVo5ǏҤ`XPS0k͞…B{,%[`Bg)fnT^q &!!q<&Bf6r6»~^gJVXY'A=oS_<]up3HkL `„n̞8 &w {4P*-DtlhjlGmg9ogL 咽⃳*>Ħ -ʬ7SE(wԘ34:l@Mm}6 l7Ӷ0ɪ]5<Q7#ؑ*5w| Kkv R㦗M}{$7!{zeLnTޫegqHsm@ >vda<`>3BBfGfZt Jmt6.('EɰXKX|p.>z .9 $g}M\Ǵ7jc@Bj>D{ځy*[Ow5.l}#{KQHD]~h 4UćIe>A4k&zKއW7p:Wo7xSnwuu}kxw0ϚNJQ>HgS&1,`\#Fq!`}~늦SH_ݖT8潼^#@8rȣ"fmrzNAvmNT e 9_lUΗ|5 8 y?Yv(% ;zSÖ/}݄b(b3ڠ'0tMxekY6ԍuMo)r95x@{01ދ)BAV h`~OcwWdԄ+=>ФG!tCDk`,Jz\6]z̖Կ*lTMc[Du6f^x* !WyXd/FWM",ۋ6N[կ]h*3 k ڔ^@x+K:cjbbL3ěSpJU_]-e- %M+L pVK[Őۮ&HQX'YoH^nL 80x(j`6^`{a@4,hɏJbeߎC{o qP)ݕJVP_: 1S3sɀioSw)٧ZI̹(j=C q.'SfP-VUC0Ia1_`x? #/(swN=L>r=tw-c8`,TIc@{, brnpwZkQTsWIw䞣HE`MpEvH=+Ǖ)d, sv^lN{.*D X|ӅtVi䴚&:KFkpHOfD *HJvdEUl%DnjQTW/Ru) ՟+m}L\W> stream x[nF؇&Xwd"E&{&A@KJTHcobG׸ Y`1ȮϮd)dw9WB-4ϏTdLIC_LG?[bRNLvJdY[oz(n&*pO苂},̀/ьH <) !RYW[ºrߜ|;Bҫ> u v׮ >cd.7WUmX@'\ 3WȺK ڷ?ݱ(n}Eћš\xJ zu9JW|GWyGnNn#76mQk0ɺFSry{|qPɾ>2x.C=CCXJN'4S;9z5I97.}=|%eճDIbRi5WT$tX{ztsC % vkFc) j#a]C&Ԁa_>ЈTi=ݙ!(eD9bu99ǽGeU%N_'*&4LQ^nV66 _ފbga1e&~Wr^W5<]ex*K5M}~U5#$)I+VȏL.ۯIr"4qC7" Ůؽ+FC1Ndv8{L_up:~O(j3ȫ۶xg;/> gI_CǭWf8eDBPR !`kR0@JT m\ٯ$]q|Ӷ %P*<]2"`e#x[{k12= Qq?JDGvdЀۻ|?}iZ1o2_>,ZIUq6EENn|iѽ.4eA,)7cFV 9MQ ]^3.Nڅ&\Ω^;#!)=ur< ֡mmr"۳`{Vfߋ8 KTrTʲd'U{cGƟ-QGX1ϠZ@5ŌVP|ȗiif=ISmYԥrkϝbI4r38n@&S2r LEp? W3wKưsI<,f9[G>B=}ArhJ c`[ N3񺓉> s` Y!("āxJnj AEȐW=zGx8sk 9O=| vM|6 Oj, InoLw6L= T-C yY>/IDvRQx|Ƶ!}#IOtR%O#(Đ%(9@ x){it?ANHJ~Ys T09A(#ɈvXGB49yďR؄k8!e7Iv݅/7[_ -<ݭWJ)P&5hY'XyS^t M@fjuyvnr6rוD)~Ds863 yvuno[km :u3ϋ[̓D%A/oA) n. p^7T@È~ dNÙO0X Iil_>h׷j!V1<S.-<˹ihqgCMq,Va§" n-]OC1HI&߿b&sj T|Cxiwq`|AHY,Xх>ucO-`qtճ(.J>TΧA]4bv1dS)ꐍE _*B AC}Sm0ެ1\O}Kc5*P:qL*\@npax/a1e߇u 1hu0*Gu6/ƀ"KP=) :$vXc2XW8PXj87.ℊLh XcA i[2N ÐUS>_rBk',bh2jUm*b8;ʿBȔc1[vc?K$x<^@)PŬzAl2 DzGAݨOJ5:`.ˢn;MI@ZģfD2lX5QؾYUEerwi"WU IȀevH;mPr R/+C2-T6(4ޭ+."$MdҢ}PI0߬涆#OnvӁ1q(˩%ݴU5M.VomEj(f–2zsu"w_lm_"fpjry.;at&1`|`A]̗kMx,/}h-'b(ӏ*bl+GG3K+Wy_gn!Y:M i"R[OU;Kf@l2^9(<&EJZݵEn1 bd׍Hf]v*mYU/ D.(`eqԜE&RBXU FXXuæ6C_hO쀢w{\+캷"Gj )g$SUmyI| t2 [[o !槮!Yĥ6x@$A ތĶI* |6N.:Jl=?endstream endobj 99 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2041 >> stream xU PTYWkcP|D54ZXQ ,,.,.o%E9 aq5 mhs߉+؎әNw|wr@I$5aqs'D xIDvы+PV NRpr|)4#ߦɆv$%TΛ;wr[28@:.>-+?7-E\8+_ES(o*|hjLS! j%5ZM-><(X6 I|%&LpQ.͖aCұE!+Eb]r$i)0OA"x<,@ o x*\%'`R@/|;A1Y=Y3Q\\GVG$]{-)l,${G'we'-u'8 oz`00#:ERE=ݳRY2GGut{tW%#vQZU4^&!s~)D2w) 覛\&T,.{!mM\BJw멒'8};Hwhsy%2My[AkLef+2MIH0kOmpb;wjU耎cE>5茺J`dfژ\X?ј>0C"tE7L7C?pq`3A/_򹨶%vi{"h5*9"$ ^Dh2 l:ͼkœ|I)2`ő(dU8(),%nدiX7{03p v8v?G7S=8 >Rrb;Lq 1vcEG\ %ZLfi;wzˍ\2Lt'to:nY忁xm܎Γ#g>b0!=tf*cȘɿoeǽW5tuQgQW@fwn{w鵿=\mvrw&k%23 |H^w qGx,vz\QG(u X@a2Ȃ%ď,WLǿ5f#ԊT_]ѮKtPYIF8B5Z9"5+$A&O46ߺq1{}?͆^0r0eT@'z>c2UP豜8&Ŵ*:ʑG\3>  (GV IPŠDk.ʕFɣ,v/^k6vy3gd\~ӏ*2Di/}cAN~~c皅~ׂz]ti9lՁ⽨<3KqT @}Zg[Lapw1["X+AFcC}7CRPsBNbGڐKw |EE7ŵ:QeP.p$nHuY&Y t[ Ӈ^Mct[lQ3J]8q%5}g~턔7wmM?> stream xW TGeufXh\_AvqAvePw-(#*.\#*b0-^&y3ꪺ_Q(H3H93&u*9^rqZ.xsҀMkXR3 !3c,$]z{$Ҋ~=#idU&CpwwjȽT-,T$RjLBNR is|A徊TEFL<8+6Y'Sf* yAJWLGLHɈOVd~nUWe_T$','ΔO 1̧FQGjrWwO/ᢘة ŴĤʙNR2|ėKG=}8{nÞ;S j5 Pө ʖIQ({j6@͡*R)g*\(o ʇNR#(?ʟIPTj HRAAI(KʊzQeMP})՟NPfT eNR'/eLMVQȃuc$1gt8޸ĸ78P|65uFʄ15#v2{}ݱ{I_LRLҦL6`gfni\e~bEŋE=,y%$*.A@EW҂H`iE\h+EҸ18ӧL/ gЯZl.`l9DUC _c;c~#H2Lob3,mZ#';H,;JaCz[ﰆctUt ݎZOjd4VFWO@,~@#pJUΞ#î4/mN |O n5 E 7f$m{c ") <, 41Vg[e,KTF]rk[$μ;X xXa;!0eؖu B/a$g09wBtHVhGv~N֨X,~3ij~/ OUNcD}{gCwͷon n3A"j'.H[C5 FV˗nA F`fz[eؘ%uo9 h(hVꗤ)XHkHX^dUp:I0d{?D>=2J7b9҆4lŪ fqT}ίww 2|cUJ#<O>/(!pE2lCkUi}ٝ+dGʋkEt0؋k` p$E Os[w]L]gBҵ>|?sgSХI9ճԣ2DVrCyS7؄77^ x zPB*$z 4W tƉkA`~+aT7y/j{WMq[? `@_ˁTSuCȺpxI& p8W n4 ?T㑴5ſ W.GbeFF8;G=$ks^:tTSx{S55/:X>S%3LPNYZi?6 mGN1Ia Ino+ 2w5WNNb~oϼ%~ULowiهrY Dq #fmjw"q| -[5b=k2 H /\+D%<:ίM+5 ^Ty>Oظ^;᫔HjJuJ@ʥGVC/ѣw.>qd !H sn).Lg4 !E(VE_C?d;_iTj݇?U6Y;`ѣ*olUv:kBF2=ajܛ )KF.6ݧo!DЖ4䱅<ZbK_ubTBzit}}`q 0ȳ4I+2'K$K>%|9. RwoܿԲ#( ONyxЋ/4ˏ }MYـ#B#hs[X9ncr?w}-DD6Chۑk5Pگ: #fNjЍ}#\puDU>c0 ᒍFwHf(#ޥ ı%=W"$μ5`{w@'Y0rz{>NckJU{r t|6R_ dqWO(f͎ |U|k;pvV&X(!Iq8ܹX|XgvUK落ΜMkƐ8c'v`Yylgq(G2SS[/ݬ6!*dʔ;j]՗zl" # RIAj?WUO37-)x9;zޚ o殹ZҲ0(AU;#҈@_cv1?@4q'"[-H ~%> stream xXgXTW>p ^A`b,HYi*MԍDA *M@@PkK-*Dc&w|&7guY]zH(>D") 5`*K?_'x6I,H]_޾S *9C&i@:HH|m tҟ4sSR?X1xgfo !=\|MΆ||{ p t bO t1Re2O9oƅ. 2 6ݴtӖ CWt3wZmcpѤSN匙fN3vn 9FSʂIYR(+j4CYSc)jOR);je@S )CʁZDMSFjeBRSTj5ZNMVP_Rf JGiPNJF xJLP5Bq'՗RR*ԨRRJ<~T2M"ECRu7t?ڔ.cT?ȪQn 5wc*U~3KcdVV>@Uہ[454\5j<]sM#[+;!{=(`w:OhrӶҾsպd\IL()Tt?HzVK+*6bE9\ͮLñ] m7hQ.rAVpEMxvhꊴqH ͤ [WZۇ}+p6GֺǠ}pzz 7y++9wXZj5^Ggm]Sxg bgAg6/A!ЉSwק\a[{?OY,FVU!_W\2t!oizQ+6`M jByt0FR ER"y|Tsa }sWUt-J>&4be9,_'ڲXCd9'ي; Hc~&NqB,At,B,OcyiGbb%cRH\^S/!`>}~{ 5/ &x5</SX鉣INr# ?&!ى`H<o}ץ<6lhxMbH-gѾwWrS6߸ X\uEP=Cr0gNk>j ij&tTD@)`-`#m~Dg@2SZV>hTw?V4I{ foGeݞy`f; Ȃ x;7vaպ6T*~+/W+zJp9]{j) ętwf/O( rʪ W].r5_}d0LM$RvtͣM5 +S:&dbW9+;y6&Go*x;WI{&-ӂjz$z^+e"8Q`\!J`ލmӺgX K+"79>% q_ٔHW#U3G)DŽAFz,-2᛭I[L}XMqˏTЛѝiNJ.quЭ.:\09?#]*hf 49Xe0VXO[4 -glDB f]0j|é2Vxa/J瞰'75*v a^-=qaZI a|$Mf " ֖1XT{~/ظXrYL t`}$87q{V#U̸{qBFca!h*oq/4%.U5s*I308uAi-PͶGYqlƶ ;Pj]5OGÐ欒2YHz"-j,%$jXa`[ n0;7]+iŨ|Xlͅ]a^پ䠊 ٲ2$O^Nŧe-m$  Cch`S V08'W\HHj?4A5D?|ꓩHZsO)dEBb] !v-=qVހqE۷%)YӛYYZؓ=) ݗ+&;^3{>:;bq."qdo&}:I#z*V-]6!n JD hgR>ƀ˹UaØg\BՊuvG< k:%5 K>] ihJ 2oM[}"3/f]AH4u^4Y`3l6ӢL?>Pd  y!&&Y!V@+n臼5Vړr%k1xiKԧB{#_m۱D!\80&L;W) mY<`wgLb<^13Lxous~{*5[<Ge@ μliv0*()?MRx̒L\Yl@J]6I^@sc"n /D$KֆW( k3m6ҡޭSˊb# D2yUhM6V7:)֐zƭuMPʷfEK3j H7D$—|M uwN' *r kO}Q, NBV%-,mfˇa "= LHXj$)0$8ݐh`CgTOؒ,aU+ FeIx!$08,غ=Mo]QU2keѼU nlH:nqȫ9!4YkAad{!ۿuHh?:c.͟qBw$k4ǕK }. iM KHMoyKk;`?{uͷGNh&S_V~-D^mEjG}5g{X !u ~k2v Z7Wa*P%AH!L*Z]KᏫ$ g"#S#nOזȩ{UkL31 .ܟ7M-C\I[YbcPœ&;0Yk'.6%Fèm H;0Xi{!*l=zv0_ۥJY:K;a@_ƴ0 Kx|#X~Wl}.}#2GXe&A) Gv$lG>ּo_X=.Ep.wtZAq`_j+iCg3ޑ{/3cP,Am,8ءY'K7Ѽ(ז60hhc?yv,Ma5kIƵ[<Җm汤Ҧ]ᮜ>}Vl?՞!6rj R3]PnsM)y170ϟl]6RNVGgwsVƛ{rrMs!6Hj:Hp_邸 6m >Y<ǺYP'iI3vDM ǒ^0Cg0;n 6\MEZSȮ㈲\y?*~.$ix!.' oR%og@WHRDj$(Ȩv~,HߵB0E>|nT4 ;ޕu\T#x#7s?@A$V78ٓ顴VjaBp*,nHa5(Icendstream endobj 102 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4688 >> stream xuW XǶq"qApAeAQAd-b)H$8DY jWԋqcdČJ 枞Wûz޼o:?9/e0D×lHZ9=8*>(6n0ďc98Y6G22?fx{S(2X$^!.>6$hŤ)S=f._ob7%[M 7)IX[ҭk2HQGgJ؂p/ﴅ>eeE-^$6pҸeAo I Mqgi;ml/l'Mٞ@ʆZJ͢Q˨xjLMST5 &S+)Jʓ¨=NyQ7H-R>K9S(ʏrS(j:@͠P) 52̨JJ}Hq9EYP#!%5Edʐ2Q)cj1 e@L -},9$nȉ!Nb`Am[*/5>E`2+5d׳WY:* uC?Z;􁑁QQS_1rXʌigMMLL^ ?h*2cooZn2lJf:8euD X*D|2pqƇIlD㢁$ɯtH %`c) ֶ]YV'^w jÿ_o}v6_[1=~'%yFȤ?aWWY5K4RTt |V\1*Y)ԙFӱg¾F,5>[*v>UF1yҲw 8YtrIq#Q7glNOڶġ6ޮMT =b8Wrx5^jk{|Xڏ r/dCPHR#cVN#-r>P4$ᴎh3T|JtQ#N J&9! lQոBy]!zg [6'; ~޺HTjİ9~J7*ݾ$^yP2[GaB|-8?[q7 nFZ/oWQ!hU#oU-JH,=bޏ7VÓy(2<%S+kfSD5VXsiY46b-=|V]IA, { lA7т3Wa ,΀1x*^tTC~rS  j`L<'ZԤPJA.*:5/yC}Ehp3#} o %t3B=fMsc 4ė`oEQgxfΖqm M&մ֓!f؛b%' aч^V玭xwr c!rJBT 6>ZȠerrR6GwL]n1 `&)_66:qd<=QggEni#ۼ%^Nm@Q۱9!یonOڻBǵ)a ܲh'6ܒƭKW#^Jޒ=~}Y<|837-cC⺏{ZEro,b,NCɧPg(!4n\җ$^@ PƁ5A $v4,8+$h>Zp^(70W! WzW I3g4$?$ܗaقKcP| YSRgJ(DxSa{~H30$ 4xJ7ܺ>;/Y~g3;?)AP')#S$7[۾Ϫ$=`Ok`>,ϠfB0,*__YH*֣Aj1oQ cfq2|U(8Ugr[k+Smb~*1auge/ xRsa뛮{ǓuTyX9qmJ6f|}dW{NCmK)k^ElZJ=dz oB+/Cp?gc/ d)ak4ln߽Jѹ^Im&ȰӫX v0YEr0d^7KKOw7xU7ȈIP{j0wDpX->NO [$bQ<:'P ּi!GxnTe^1Y>t󻪞o凄mүEUGU9!ߍ1i".`gT.-=v4 NX'w\mg݉Z63^޻B @}IWH-}";/uD/XG=07 މ/4g=ģ0ئ!;6oa2X9ƣâ&p \oz}js)Xe?GeAn+!pT;SyFG.rECx7j$*W' z/O]+/ߢ;\W>,iӸv΁~_oÿ ]y)6/z+6z)`j/.K ]"g ft {J^^'?Q#A$"=X#>+&zHlX/Gra$_\(<#wucNotv6^ D&cBHCZ=8rDݍpJ8<^~}ٵ#x5!8. 6=֫Ʀz-"BB`Y߉ɻ$¨5nlspk꽄g.<aS*O.ۛϦ ^fm'&RUL#'OV3{V9q2[( a DlvB.{C5laW.k4XT ~8D`jlSO&t .LnW@` [!Gho ?@T05=CqG$M zOppadYQ)#;1-@i|uK-],UިM>s7ڛGL?1Tnw,qF)L RZi=TQ!aOjendstream endobj 103 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2772 >> stream xVkTgJ%֊K/UUD B,%*"\EQA)Z[XKң,m}'ў737yQNH$BfX,U'|dT3"~鈰~n{Rz~b͵rg 9;"g1yn]C?3*~8qbάW%%Y?6̾AaE:R9ї]q1cUj]24wp6pz MSxNc|DUްZMʨj "d :.^E^298}` ׬&#JNKʓZ$J"$U`4U:#K* hLV Dr2A&L{̨Ti 0 u86AeЩfRU-T7'z.IOPs*oc0RShԉ$exfU a㎢No6+㖛Ĥ0pߴ VQ57NEPTLES* BRj15r$Hj Y*ʉ:+"D/::9w|iSX*։_3!!Ō)cC.< ?467FI!o!b`pI,)ou-!k!~Si@(\,\.Z#&Y}$ꁱP cy?}>t^rx4.;Pm}tM~F?ޙu{ӰکR^Dʄ Ꙃ?|7Y@*8U-LRbAݐթ p4J; ’E '$ П-bž/?}Tܷ[v< -S `$l?gw hfs;HTX̳m^H:Aӆ(󄧚 ꢲ yVIj{(kX{Fxnu@ f*&`V1OjKu3m-ەpWa| F>&~:*9,nӺuUY|uϛ:~s1]R-d@N[,PnXñ(j|,Aa0;B`׍ߕ?]/xG~_'Oqb•&_q7?ڕִ]tXn{k{V$3fk-S׋_l= ɑ0oۛDF.EMu_WC!49/ces/G>Q! "DHx~E*.@%(I7_S.,-EQeKzTXx cƺ%9aZ]lgcchfD|{O5UΪ[D'dA=G):D܉``@+\G$T7H*?ڱ 9Q(()3c_~%S>)({'n4A 8]^Utmws#tw QQ1jܢ>ʝ-AѢC(P4 EUD7&7u"[:0ENDsJy+u.M/ʴf[># L0Ş*\bP#0:P/ky7%m;x$- ҒVt|N۔Զ&GskĒ3'vN9&n>1a\s~TrzXGo,(-illA'PRLV!2$>/"~>l`Y-Uܕ3AJoR4о!ž!zzz:"K#xkw$\G`sT^4t]I1~ޕMDqu&A 80 y_z)f"7@Cl-٠ C֍SP^ >%8RXH_:lNߒeH䁲 3No)YdDbF[ @'7GՕ2jq<~cc|&Oi<,έ,Re mlڤQgG!Q#pafi^v$|0^$wJ~ | Qa(;^` !!N~ ̂Nӵ U0_574lP} ~؅G)&yA1QJNI1b:+fG> W+.eR{_Bc~͕ܘk9ɵZ,Dy&[K陇字jnBh-^+o1|Af̷T ~ q3EuZendstream endobj 104 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2191 >> stream xeUyTWbVpM[qa)(" ;Y,aS`),:*hBEYD@Q+3]ujkcՙc ә9s1SAq8[(j?KϞf;4aLm>IB<ɤj{.S4}@?NWXaJEP"(FGE U)q$m&^bRWąƇ%v꘰Uh&"(~VanĨcqNms*4|w{T4cv1Y3OƋe3lg0g2.Nƌ˜ / F'OA!LtwAQxT:T 2F'эRfWv|4xlf!#[9gvZJd,/OdK . 6B] хcşbѭ99t?Wa F ^Uz}eC>'?P\V?[v ΃t B;+%,-Yj!,կ^"Xg\%j',AjDۺo <;C86$i$ hmzim9euGk] 2vMb‘" M n|)qB?YBG^u|x١$A%%n$_3Ⱥ. %MKaI*3\WjB+i |ikAX5vXTر(%egq6\r  }a*B j:Y[RquFE;21m8 W2݇' ) U߅vtKp yPD@?@~&oa;=s2I'#9el#DT0X@/Qe"]J-L~˯=އ#ijRVQwJt%$cю!9E}dLvF{o1‹ USR0bFraUI"HL7c$5ȼa$iܧΎrE?n*ׂ5I[a^HfQyQ!Nd:ݱeϿNV;vhDB}`D[<ꪹ< k5Q%Ff"?uc۝:xoaތ?6\*_*)rUro>]pf yA:ѾXds&?%!Χ_Ml"P988"Ճ]QzMsIcVE GV햶q?^۰;HpC,WXHmGJ"D\jn2F7֎t )k0* (U=]ښ#o)M݌֯SDv^:լ>D݆暜rðs>\B99j*km*>ġ?cOOƨ,"&[91`=J0֘As+N]R* cN͊M= χ=wF[j8ƦWy4-chBDF{0޸Ae ŵX4PANr.9GEƀLYQjwmbdaxvHR'ʎB1|_k=endstream endobj 105 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 681 >> stream xe[LRa⁙pjeTi=KC]VG9 +K2DE&i-tJ3kҪ֋=vz.[~۷}t0ghZ-‡)đ. ѩvZm.ZZ(5V{Q"TFfLXtJE=4iwz%kT1j)?o-?2ZRP T T M  KкgM^QlJh/KA7e!s||&8^>&UyGb QKԇDB ~æO`_uJkTjB^sEe,qS8Ǜ-\ņg6F\c =m^׽ |mSt23'v\w5s2:( _!aPV|C#hkk 0: Q4(;/&ԗ -4򒳦,sx`ciitaQJ|zu+]]- ;{e>2$)iVQwȫeete`\io-+otЃ; =IP%cC(DRSd UEBC-dRHjY;c"[V C*zendstream endobj 106 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4086 >> stream xW TSW־!ps+5 ޛZV*"-E-U ސTN@ P t Vkhm}uڑN۱3?kq5Zrr>o+ ,-@0q,Zh44!2 l?UbO$5Vӈ n smXye̞7O$!Q丝agJ%s%k"d򈝒`ɚ^s%޲Dpd,Z( B$R?ɦ+|6J<}oڰؒ Ѳ8g|jEb@Rຠ`iHh΍ᑛny Yzb%f,Cp'b9XIxb>"HML"&S‘xJL#XM "aI5c-!Ke|,#]fS/Žx k5gڦ?0gٶɶ&Ĵ6]wϴ7ovYn`- 05-]-Hbmjedj oVЅ4v7@FMn/3wX\5~:{&F&JJ{5\P0yh@IA\2"sҀ9gP!rmXn*9Xw`-f2 ْ8K1g> μ} U 'Z,a8m$㤜)LPx'4B~Eᖺz6t2~Å"ZdNsh4\!%N bwH.gu,T\HcۤFҢǨ J"aC[>|H+n*LS<>=M Z[(zqG!`75&v.փe8^ `"ч8VHgxcXtIHON<4k '9A/ bDrёNh3IhAplzP -ͤhՁ3y )i~q vvR6eu4h9V{)jw鞺PKIufix-{z@ЁҮ]Kp.puKۍK(Ys Mhp&i2L.Tׂ*@}}$ėV.ۧʫq"zvNmއc!h! DaS7vmRf"Ǫ)%D iUǐoyjB[(rB㑳UYE쐁$F"GS#1Lࠀk+^2ub91`/)&<9R#Ј`VL^'I;x?XzÏ'+:3_`1\ⳘAJ(V\w? Z-*P膔&@io8rbA6^j͉sΈ' (ͤyh~08pDt hߣoi|#̘|HL/v[qWϟe݌6i\ A$~U܁{o- Z=6#10ub_ӎob?QYSxt+JPfdaO?[R]a60et&΂}Lފ(b_ziAࢡ!;d6(3>In|o/#;6*5kٲa ,=Ȍ dUi}Q ޺!p>&JlwvrzAUQia1[jO? kudԲX؅%:PzV"/Àز̙=AqG J#vٳ}h 3iz$ƭ_g܂k0ooӖۈ3N` gAgj؋3Ha'Q ;;D~TM{Aiv#ҧ6*4X^Ǡlű*t#8h۔F2 tlM-VǏ .xT6u_:$bv' HcCcwF Yn]JMP 1;H^cHl+{zWַGJ;W 2x*3F ؤXñQmMc2c}`? '?n4.8vؿlZO@7> "v2IeѸWFPW- mjhRzpE}>"#7T1(EzjW[ V8U~.>$ : 8r K 2tTip'be t.QG$'$e((Ok*,fWj9> Xԁk9951 w0K+hZD.Y)8N4|!m0l^uI\5frL|qhtnc_$ho=!Ȏ%h{d0 ͚Yel3}2 ~, E3y qO.r/Am ]lOl⮣muucw@D1x_sCCsm~q~ {` (cH6:N;b)!J#O[7lrXNH¢ PXXH*hOS.:6>eˣߛ2rY #Gh\d@~vJ F We^b;4%{˙_汕떭\(Я+ݳPur.M ]pw5[p&. ٻһ9#&1{'JJ 4a3a@QCjMS.**I۽]d.%^;| {<3'dP_/::i;/I bАQ,EvUeQIRgg0 M@Q]o YEEZFǾx.v*R5 q(0vx|De ;'@9@MՂjrPh=*kMq2ugll:EjV][،'endstream endobj 107 0 obj << /Filter /FlateDecode /Length 161 >> stream x]O1 y@R(KdhU1&bA }I:t8K结ϲ. >)laIH0Y( cY6Qj V̛CiUWj a4G O$ڦZ:Al=0yr]xC)R DkڤLgb%+[Sendstream endobj 108 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 277 >> stream xcd`ab`ddM,pI-Lu JM/I,,ILIB Ŧ?0eQ ,lDolnnUW}^X0:#G#YSD! 4G! 39#(5TG4/%H$#U! GhYj^ra  P)@\pKY~>4Ѹ߾f}7Sw];w]T4GYwl[pq1:^ jendstream endobj 109 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1480 >> stream xES LSW)+H;d*d/񵩼7,PJR!R' ,>_&Ȟ.u%INNsMɽ(β4v~9M+̏1ik°o#Z eD\Xwfl+ {˃&Qj,m' dT()MǛm`, [fj&KHJ43 dMْIiVNY%$hLLE|K,3 )d`5jM!' EQ%tK5+1i.ڸfR(* 2*zBT#Aɩ^^*/YdYKrMhQz8 )Y ]-''۟QL"lD oB ;[$(=D"lA].qQ1yl2!>&-oF8<;pwH{-YUcPЏ:F]욲J‘+ ǰ4ack :51|r9nBGQXR$Ags3eJ*0P>]ob|u9q-*V JΈe0Ai{+z갖Xbv5T+=?SЖUcBJZ8RUy!}0s\IED*q9F 1BlC=q}ىi'n;WgȖzdv~/?'>R.ib~w 02)|ki\F{$$SIкױ 2IE]guQ),Қ$^g >HU^C 8qb\蠁g˚|Aɮg;ˆ%H*sMt$4h1O"2&g$t:yҁlJ MG`#'۔ +fvR\쮃>oM_~#sFa5A`/Or=.\ ;q;w4o2'OBUR('/zܩN]S΀UUGq{FCXսcN{7>v7QD%x|Se]|v|:i0P/7A >{Y2LmbSr'  OH3B< zKkk}]kkF}{)Iߐ̒3n=dP(-AJevG B,`N6`PYoLbRѠVVYaEu>uMLQ)endstream endobj 110 0 obj << /Filter /FlateDecode /Length 641 >> stream x];nP^?0^c7.I6@QO S-}frH$0x맗|?߆y>.L}8yݓx]} o}su|hu2ί}ٴө|~n4 A1z :c6 b2q4c A<0NM81؛3G&`o" fMhИDFAcEVMXИDFAcEId4&QdИDFAcEId94.SиDNC9EKy4 b0B9EK9Zse :4.SиDNC9EK94.SЄDAQ~$AB`!ЄDAQ@E!Bxמ|퉾ΉΉΉΉΉ B~$$6Br O,%?.L0 LR$0K.L )--z ֒-XKޢ`-yނ-z ֒-XKޢ`-yނ-z ֒-XKޢ`-yނŕIƳ!9L盎V<1sw^/W>5`Vgf[endstream endobj 111 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7101 >> stream xYTW۞vv: ghbl%hE`e). Җݥ;JTb]5Ř{5rw ,ɗ/=3޻<>YE!fku\G'> 6|b#I,%QaM&b4Ac baA#>1  {b1J,"Éb $aI;7hyU,Ֆ0{5l3tȄ!C6th0G揄VZ4ZF?scƎY:f1>6}6)lk ǥ{l7.ZVxUsdw'WOdb¥c&6–\%>rzǂo[ '416ƒ 6. - 'wGՁa+LbGՁQ-[i483&5\WuNmE6C 5X+ 2?TR(w-Y3y#H{ F6g@;Rhy~^ZxULt/ՌgLAVTh -V̲,z˝n=zx0x-:x2|\nġSb5{p|?TW!26=d T:?FRҲ=u΀Bcz Ek 4@p^0GKd?"Ї8'GʸMG Zxec8]3 p ]_X31~E;#h3݂)r2P%?Y_<YO@c,t@da>IpBzOX/t,vbkNEuueK=F?1PCkk<7y1$Gʅ R]AK\/;L^YcI᠖Vv@©xYΏ6oqqeŐߠYj!Y UUQRoScM-(.;g^ 6/z10%kZjZZՓh/ASHGMpƌ@U\qLhuz +MOfvYm!qlkh}kEmQ`'3mG9_'%PIsQaV}6yP)q#zDPxR΃ZK::L R" 4MMP{yh’*brm ȜlM(hΤugQgs@6eW=yhym:X1q^4,]d"kdɯ]wO.c5JMx˟VG12QV|aZE6p6(79HPQ ZLsA Gʭ4z@>bT&C eap?Yo Yo\@}RGJ>_pG W}ķM3NVm]E#HEijyW20 $!L: q|Ye.i Jv_441R3Wlh`KAݝ6(7l&Dp2H ,BD ;W*Z^5'R֒vk,=dX䋪@-5 i诀 .{n֣w܍Sɤ:ŹF٤bIJŦQ[R0J1Dՠ=~YerKzU I8fJҢRP ?WI'O֧tƱB7E62d1[W~;`i`exuqS)>6ha qQ˜%_Gq|AalHADxIv-]/[=" Z;TV]>f>rYaNȘ) v9?'&A>| %cMwk2Fِ'd>kص3W?WW7bGP41 Kב@kHC?(c&È pFkm<1 M1-&A MFWFW&19{F65Y[- WTWªA kROvJjoNP6@f%)<@\$H3rM&@=YUQVi ՙAq(+f.ر}.o=V{G;ښNgzp⁏L`]+ M+_rMW!|Ε=[@:$x+ɮ+ SUDV%Q9xq?, fК]z&AujC%|Z}Q.]`| i&z^';6+kj >EnN쳟hWe^32F;(*ziX,Uz[37`}7 %?\HfUϓny١Kyǩ'AAt&=$ch(dxƥ9-oɢ\Dѽ#r+ppE^w}[{KIGSRS}L UeNAcsOs描Lcr^-Ű| in'; =[$HJBM:z 'Nh% Vſv80rNRs1(ǂK5V% Gv M/6u jH`O77MPh?82GD| "vW:@fwM޽)3bz6L-*+Aؘ􈜴amμfࣆOhY/_>| G1q_?Mј*0ИʝJ9%nq"F\@+ EmJtM%S*[jgpcmZLej<-,ʶw9 ۴ڊW){ vJTh9'tgRN` mC0dQE#[XR D{yA#"@SI0EN\i44OEDToo-ӴpAe[]~}nIDM涺f˲yӇE AW/ j,JmCߔyxDWb J˔9y bY5wi-8}8EWh,pt`h#'p'_kS$Yõ0T1rw'$V1hu'ekKfp kE6%h')a!`/Mb%~u9, `XfN)Հ*Gj9l2yO1"Nx$+Se) EW(bzߟ#07U4b e-Y_BA8,1fX(^m8&AtL7T7gO@ˇ5Umn^?Sp蔯#G.Zy41§%qYlXr`"x o=cDুcvmʉ {*iBo_M@b@4 :^hl mҚOjpj:uQ`nZ)x `pRϹU:f%_ >nך𚚊ڜ,N 2uS.r f"Sݒ=SPSꎑڱaAKOuZz"(Dl3ގFġ!`7[t(<חei3|k(~]KSOdBJu:ضu5.QIg<˿}oe~' (ᾤDDz\Ә Ή ?_]MPƠ_  (^a "nap6<[pBEs`ggJ v7;C[37mޱxv?yu&[- eo,ſk8t1z-=Fn}گ Dp .z>D6tNh(tOHÜQTf=6@`DD(ׯ9pH;s_LfFN>(jC˃qV|4"ˢw&zKk+CoPpQ-uܽ>"}Uy4$fl }QrxDRi (㓕XhEe/!_ʭP.];#Gfp lks Am@]@^NMVrN*%ʤJZ-^V=L4|)/IaC|(Y%ꑟu4H}tkͦfl-PTZtjs퇚V#VegkI)>HTI3pMI-}*vnR|NluCA0ChyPP^1gWvg $[o߽kYp n}[,^C w4Ͳ0#cW87/#0qdN\zlYQcJ@ƒh :@mpeTQFF@<=?;/ ۚ+}Gű,d2WpB[~ɦ yTnBD:Ӽ-̶"怕`m/wکPul~ stvwHw:l%IIL}95nwJbQ,_w= **b?swgMihGW8σ: .juw'PDY"7>'6" :x,%\ZWusJ//Oha%;=bÓAT$"iỿKGKۂsr}OK@+x\lj GG7N0xn =ލ RZr+p|7o -3 7L1;4uCr?1y܊> stream x];nPD{;l@xݸH$E=*L \d)R\#9~zy~ϷacLm8/ԇC=ϫn8guzӷϵA?n˱_ǩ/WͦO񿯲wN?mfq4;FkDc|hǦA|dqd<4 qjĉ4G44|8 51 &H#y :c4 b0f &c5 b1B$h4ș9Q g4 LFAhu1;zvw)8.f'tTg|TWb. 'FP&! F!j2d(D *UP6! F0Cߴh_s+0'*endstream endobj 113 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6963 >> stream xYwtWa4 5`G`0c:H5SM/۸EŲeUZU{tBw@l)$/a&ٔ;%+l;wW+1ppFd͝Z| xm}z;. ܇s#Xfa Q 4lOP,dJ ϝ`,IT4j5qR䨸QkfGώZ/QQ Q1 ;nYyKԪn?Y"0!'9#)-a0gA_رT,3kEvUBj$.7~@t mN5-}v윹,|vsOX2^|y3wϘwAL 6KFbLL!1"bFL';Nb1E,'fb%GN&kij:bM' ^%FpIG&OcS8!Cċ0b821XoK99 &HE,ׁ^Z O<$qȻC`k~^6b'f?9#ό>,&“'6ljt`1"?;o<T1OY}DO/3#s-j*lVOvZZy Y .akR#)29L7"!xI_hs?q"pd}!_ש P$ '".~. p؅aY8g-I4(zZK$hw = MLKs!%[@J-br4"CYZ P |Oo|rhpCCqN1)A{*J889 ~KPm"ux@L$ E "Дx8P<߫nODh7s3B^g`vm {ӳ(}xŷ:wv+Qq|I]e&< x&jI85 y;b^HO"}\8hhAvA1#?rFg1s#VkU4 A3kŧX8^e!\43!K`O8_x~/u|@ Uփ݀B"tC#nNO{\(S9E2 2Ih4i*$| |pNRXtLF#f\ (;젴 ;x_칱|AAgV8-Pd*P1] ^X+Ĕ7rbpXܤP3B zyn7$|H(f%Ǡ!V{r?CvxuqXhBqV0+ߧt%:yէa(&Nl;F[hWjְx!~ >Z1TP^)PL9 ei:YCr2.r8,`jVkkamߐtBNFRB#けXZkt&gohuFF~/x{KޭK9~fd)UvP%*Tocwu9 haHWi@6S.*ku}mcp2|1lc34VphUr֘TrYQ=~~OL49in$^LK;f5HydiRn1(A ȬX>|t3E LoH Lٻ<*Y֓j65-,TSr ދe,K\\,X 62yVuZvCuHq,RE[m~-ЩҊ\sloRgCy5OjPJN::j8зpbV+蕁Z{bb%l2oRRɼD±= i6NDӹ!:j86phG`Tu^"ߐ ( &z{PX+q(Zޏ^ W?YS8vf\mxnRbÁ'e5 @:ʠ1 e[^j6wS3]*@mu ة>(D hp~ C`k+Кuf]"b{!J/'jH]Uq)= ̥'7#e%mByTP/9߉%ihd G2niZ3kҊR$7Ҏ"gC: G#R\UNnw7@.b(LW*]Cr[$Uf܀+dpz.<8O"#_UnAӹv&*5]r^`s4Y\,arreFd=TWzrގ a6ٚLULp26,;UW.12 )ˁaTxUJU*syUwB&9G (b`o14IOL6C"]b&HT!1>I*Ӏox]}ˎOl]%G򖒎 *q3Q=L5F{w`s[F:I Qsvj2[iԕVPuJ/N<"Po:u*ˍ)\seZ@K)4b+|e~hj ȡ2+M/> P8z 1*M3l1 n2iD22y4M@j̆Z؈ۇP~A9>k()Y CY$#Hic6M&8 G7)E&Y!y7c ҹEVgЀUo RpK>y \y"2ɏ Zfc}} !J{ Nd*gZZ_ڊJʎΥh4ySE|}ݹ^]TdT[u^O#϶+Wa-8XrIUJUo^[f ʜU@oҘvxg^8+c)N|}'_"ik(>nul =!,˫lЈI`wƻw4_n<< qH>++L[*4r!ҺgWo A~`'K$~'+:X|qAzՍw[;5mq e M]PF2)8wݴ 7Y]FGLwϱ;r?:Ex-~ \=-ߖ*.fW Ȼ<ي<̹nvXnH]}O;R-ꀖhš0ԯCiuw(zu VfMhs3T|]U5laH G 5jgw]e_9o>^䰹?OB\4Fu#i+JUvFr_N_ilu^k0^7c"*pf6@dVT?a|zboyEEF@wxzSܶw߮\ &P)s֎5`?R/}6 /&,8;MTϡ_Zw 2 +/6|+lE@˟XyߣŁX7rz㔭W) N,YP]60Y= $]=ٷ߯ȨGdؘ+dB]K`­B+x \yfI@9qT:/U]g=Yޟ{2<6עKТHlu 2E3 =io0/y蚿_UmRpep(b q~_ujgEQ #7wx5ҦԃI {^a_GC@EwI!pP;p1]ڃA?,pN=p*ϯ(K:=Ro^YRLև늝6;(|^*od!"?̴DC*Gyc +ux^W2Ov{kȖ,&spju^5# (-VR*s~hwFRkdB'Lp>Owp|̊x@мWgV(jNe@uIdHE&HaoL|UC9-MNѧz.}:cҦ#CdB:R⤽cv嶸?#[ad<%Q5>Q,w} 8kp = Z٤_P-b+5xU:S{63n\B:4$Sh$BW9wJMV3%bMYWR?#3l>G$5pߑ]*F]AދhjNUdz*X\U[̓ 48G[xh ^ҷ·{d;Ug1F؝Ee45]oX duSU tkjyU}cMsot7m( XœZvoݵoM@ЀIK6]L:d\ Q O:" >ag7lk>+_wҷ1[P3KgdO}OG Lߩ(N3[B:+ h1zxguaiyP0⑱FV[#C\r v [1G`WxF|41[;&Q]-ut4&f gWߊ#Թ>;eBMQVAQk^^SiFZF{[Unpo69* {^E8<4 ac2R(:{k1GZW''b|d7i;{d.~8 3IPmZۖ"=nt4\!bR|n[`G"VTre X.(\4wHb!SV8hzjU+gs^z z8> 3ibo1,`{$C+1)VwQB?n=-<?jcI$z\ߵd%⦞/jns S}+/eWK. J#6 5Rmذ&͌?ZLa  endstream endobj 114 0 obj << /Filter /FlateDecode /Length 413 >> stream x];n@Ds7ЈtۀЉ8``ߪ5ӯ:<<=>˵=^yY~\>Rs}[صRߤ[sxx?_[m75v\VSJqh:Րn'֮%% c()av;":l?wc(xx&^|wnx`XB pfԛUsffݜysC_'khll3 -Dh*X@S" 0u xOD'L0v`c22lLFF#CL2PI화a2r9:ꆳ9S!t :\NAK)s :6.#r-^׫f^3Q^o]6j/+endstream endobj 115 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4173 >> stream xWiXS׺a*jejݛXiJVmZQaId0C<HpD\^%h=Zk]+99@³VVK@895?|*y GvtALtŌ{'Gtꍩ+7L' xB\D{~0o9sb0s=׊re\tHsz+d,3,X@ •CxNt #XAqNHpaCq@'ӯ! pX3L<ᜋ˕&OZ7I:xO'?xmkMɚru6=ofh2]f H,?Yh_u*6rxq8^kZY"U<+m G_E<I+]oL"b垣-,#TNm-d) ,8QP@zo9Ϟh4{:>zivQ pϝx솏XAWF $IR b2!P~;ۯCWTpu蚛98]X퐨22ټ} /3)e!Phu?p5b$5fxĆ!5F{b鷛z1 Zbd60V80g1ʘ(ۯp*xuײ4Jz07(˧|?fj鷄q3)nt"7-bYiZ9K|8g#M :>¡ubZ][?" 82waw,_ 7.X3'nβhqLc6UBڳ7Bz aݝDUZ؞KH1{tjHTp䏐(UqM&CY-p';OgGGA5p#|4t1PǑa)~]k#{_بm禄hHLе4vff+fkv7ap#b4QgSg]^qT>̌\VT+j@ߣ %s)jY4P,Z>f7THU:Yoy-d0+vpzaٵ?h-q|azYD/sEyD|o_|Y%αJGFW1Q\Dӑ9T =i%I%9Z”T2Jβ2{XB /b XFw.Kdof.2E!$}|t5v"}(5sXָCJuɺv],v-EXBj٨g6qc&&Vݮ oM*l[nr+=/bz,r"&HVeV]. <@"H G{(96]ooL~<(ϋj~(T&@QiͥF*e x3{g}]aSLi 2Y(^ fxkfu[mw! j. n,`\4a M.>9[~H^|;k0@TQ)])wwϯ"&,xfrǘ{fm3P|,yрӦ*I` |l;rMc/Adv=čRU͂UΕ:u-$Ds}e'7ʿAr ;۬X!sk{O 9mTy˙ؖXitKlWWKKaaRf׷ߪrˑe (9Z֯(YjXjpGt#.>] +b c*_!،v\&&w|Y]% |ލ㠓5{5cxg6=רkvaKpbl99=? UXU p tzi;i/6Hz';[.]7fMGDW+NR|r)rjZ,ڑ|)0zyAc4aTW.FDh+/rj'W :۪" U†<8n<<=J&u(@{}1KSOU;I(Qa).i;HʒX$&jU9 Բn/R\Uc]5z^8Cp2s =Bwzohs@Ӱ<kU0.kW84''#Kt_1U9P X%'.>7 P)6!7/)3)2PC'4bbv{?Z@[fƠ^E w $b\ bS$P^fxos6fj(%e;K#8g_ ->onlѯ}z8NQwD4ŋ]->{;~~̾MXoS *Q~r޼|ߞ:=<|jsD8> ng6&L~+89YGa^ <$ ;J GȊɜe/;1V=ӿ(2Y2W#bpyh &fe&g2(|n&Z \4<ˀ꽕ie{=YJQ$T`Z+-3e/HP4i@_p4zLJpPO[&.˄BjNWGe2Sendstream endobj 116 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 287 >> stream xcd`ab`ddM,pI-Lu JM/I, 154f!CwOXed#z[gu0wp>_{ ̌>ɚ F& 9 E: y)E % 9 9ɩyɩz(8{(@b`hF&}mM,2~(X#Qwb}q3}Uǿo {U+(c6V{r\3y8y91kendstream endobj 117 0 obj << /Filter /FlateDecode /Length 3839 >> stream xZrGG~#6~q>PX#kmvĆ0aˊqcOfU5!EMA Uɬlԩ ͉ldDM%|9N׳(xZܞ>`+OcR8~wT7ƚSLOoORYѮ݌ɋoN H< DV!b1љzH'|Z<b:m?j2I]Ϧډ@H󷑵MJڈ5m$$[7e22L1BKߎer](g#vq=%Lxnף3uBb c nacdTuftfn>[Ҷu2rM)SʻQ)S|Q!`D˻ddi2J/:B_,f 1qyA,xHfQD8lSlo3`_,]9<Їs)NQ`Iը*^v_XkĒ6k$VQ\mfw_#VyoR/&c N HxNSDCIqPfX8q1߿?r`^ >Kw)pMrf-y4,kXJB/H>(se S>H Q0&Q|%4Lw#m~'Q`#Z &̚;0/>RȬ0^mw#)Z`KUHn_O2EaN0$7`2=#C٢ŇcS&6Fv~gyjUV?4"8]o!/G7!j?mд%3 4.'ƒ {_n3.lu?o[&q^9ip8D- 4ܣ*k`[d,9}J 蛀OW/h3 < "FK)9{0$*B&4@ QtN%X 9p1d&5)d.2ʄS䀑噷hhPYZW ?[)=ͻXF[y~48Oʢx.,$;!h |U˾݀U̴?sR1b@vWGoz]6lvΛ@v3qc6Csy@+H󁒲zȻP$1sBߣ\" K$SNX.if>\AI\YoaQE4M]M0B+g+U) -V)62(K 2`OJBKD ]y*@:KIY2E"I -y aY#9 Dx_vgMy6K9E]hcR)M)MzS]peSy}ΉW(r+τ|'zY?얺 >ՉO_,~ʽZeT"j˫ڲ?v]z[|U=)n[!ţTq!5b'F^d.LWT.aTxK8S7NW p<Kݱ"IYA$Nć"ߍg J7QA5є^Ȱ(Cljb'g3WC ]1Ͳ437]kAYFhgcҽ#$-+g:̸r(ݓzu/Yg}=^vYq—4J/EyD@Z޶t̃q9$9KUnRszJXEۚQ_I_%+Q3vimg`\J~e22Wԝ֮1}\}(Ow~8+F1Sc.|`wOM|+5*a@] =Q*#-p7ljI#kXB~:^e-X; 6zRotՍ Q>e3-RS12ϔ}2./fЫ@@PlWwkg%1С)f2,/~kbN݌(T#j߹ ,bG?@?fY=nT)ij=laґx3Z1.eU#G_$q2p^Y/e} L ޚ]Z8|xݔ'9SQ⦋jiU,vjr~>'quby?&Kb}Mkz2X"mq%>ܹ;%q/ gL$6*.(xcf+M3nY.7ZM`uy\Ԃ+ctY"c|5=z@Ϫ:߂^U cDн*a ;NI=~I-$#O*J}_2Fob%8( hO''%$ f f7kCz}w*yC=K,]il(Δ7ߝQߜ?l endstream endobj 118 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3264 >> stream xViXW$vZi5L8*\ , @Y١ّ}d- 7HA@D@1EAvFpɐI"̫M՟Uws9BUp8[Cm$f=M71+8J.GS9uҕKG(d!p }Exyi_ݛMZ⨷'Z>^x! [pG e-DKᕏXc d?(8,4q7Y1 O/ok/mUħ!’XEX&V6_/5-aG# m0Gl Csb?CƄ aJl!_[m9aA ԉ}b-NJqĜ>**Rk\;3ͪѪ٪M$E T"uCmڠڏnZd(--~o狓 u}_Z ȐQaP $_S$Noy-P 'l l3Rc3-[DO/5"Sr'Tj&yHbhFoԌش>fԳ!_ЮAvB^c~d8~xNsAу lY>R}4-lW8w:~ݻާhc-zrϰIIĕ1OudxȰq`Ӯ ;;B`?2F6{A3+lnjm$ u;ό&/j~P|% 9,AXڭ 99=PwP}oA0._w~/Oр1fz;@YG3wIO3?VLdCuœL)7A9)Q%SՉHf#U7YȔ;J=è-u!w}U4{J)+;B Ҽ.0]~RXeZP"n) &] %=ݴ2(hϔIs!2i_ghqL,'hEj%&ҼWgcCTL|Hk+FǪ:sɰw 9"a-񽴥\_JFm $ ;UIqŅs@߮ ;)'DҰI118d ޢtIBǚJ l]"V5u-nyΨ:sARgYZ׺%ֶbW6o>1}0XrK7i as~xeTp=6ShgWT 9L휧22!IP6th?$_W%=#M0\rR4(L2Ǘ".Sa,alkHsO=b5Jg*&X18:>&Fʹj*:Gy)ӵ/\zx~}"bGF ~B̶ȅDlM\:?9# ҀNȕ,i̮sm,7Rʭ>[PPP^\ ϴLnңő{S${;wt||6R^o.)jij,JxJ%?|*JjJD59gϑo,ڍCM"E@O *m~zQ0G#U'ݏ&D}C՚YO%G^1];-n5j;aJ :Όf%r>'C1,浝mr50^[L' EGR-c\Czcv q:Sz>JCzf֋]ԯKK[AQMI~aAu$j1bXm1c&>@v>..zR(7c)76YLSVG&#h8A3P%b̓@l/|s :̍"gG;Iϝ.+_N=|qORfJFHi?Z9a(\T`^gIq B6djFNn9cYsb@ Q18Na9crl*zWl]RAx /ԃ%Af9ݮEJؕ{UQZv iCGh媰 ^15ds~o(@!M:)xCtbHXQ3\Z z Ay׶q4BHeѵ)tzj sg٘et rCtzpп-XibVH̅'J\O.4?sd9Ɨ96Ѽ+Uwj~,dgN'&:Mh *SJ#r 6Xp H8L.&?χ8B\|y?bN@kjWl*i2F9eԵR]xV 'fƧNjvoΊ&Ec,@h=>y,˪<T&T^tuuL*S0 ZwUN(/R>`&e4*T+r%S.+7H7pc3Yd?Nl< K9>ަt#ᄇΎ⧕hFLefOQW'"]endstream endobj 119 0 obj << /Type /XRef /Length 133 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 120 /ID [<5543d7cba4de941fc94bec5695625f4d><9899ff4962129f6019d0119052feff93>] >> stream xcb&F~0 $8JP?@6{<(mHH)&%H0D\ Rx  f 6+ "A$#X1D+HS RVf?ZfWH~O+~ endstream endobj startxref 105605 %%EOF RcppGSL/vignettes/RcppGSL-intro.Rnw0000644000176200001440000000045013552060313016624 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RcppGSL} %\VignetteKeywords{R,GSL,Rcpp,data transfer} %\VignettePackage{RcppGSL} %\VignetteDepends{RcppGSL} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{RcppGSL-introduction.pdf} \end{document} RcppGSL/R/0000755000176200001440000000000013070437421011726 5ustar liggesusersRcppGSL/R/inline.R0000644000176200001440000000455213070437421013335 0ustar liggesusers## Copyright (C) 2010 - 2012 Dirk Eddelbuettel and Romain Francois ## Copyright (C) 2014 - 2017 Dirk Eddelbuettel ## ## This file is part of RcppGSL. ## ## RcppGSL is free software: you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 2 of the License, or ## (at your option) any later version. ## ## RcppGSL is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with RcppGSL. If not, see . .pkgenv <- new.env(parent=emptyenv()) .onLoad <- function(libname, pkgname) { if (.Platform$OS.type=="windows") { LIB_GSL <- Sys.getenv("LIB_GSL") .pkgenv[["gsl_cflags"]] <- sprintf("-I%s/include", LIB_GSL) .pkgenv[["gsl_libs"]] <- sprintf("-L%s/lib -lgsl -lgslcblas", LIB_GSL) } else { if (unname(Sys.which("gsl-config")) != "") { .pkgenv[["gsl_cflags"]] <- system("gsl-config --cflags", intern = TRUE) .pkgenv[["gsl_libs"]] <- system("gsl-config --libs" , intern = TRUE) } else { .pkgenv[["gsl_cflags"]] <- "" .pkgenv[["gsl_libs"]] <- "" warning("No 'gsl-config' config script found, limiting extensibility.", call. = FALSE) } } } LdFlags <- function(print = TRUE) { if (print) cat(.pkgenv$gsl_libs) else .pkgenv$gsl_libs } CFlags <- function(print = TRUE) { if (print) cat(.pkgenv$gsl_cflags) else .pkgenv$gsl_cflags } inlineCxxPlugin <- function(...) { plugin <- Rcpp::Rcpp.plugin.maker( include.before = "#include ", libs = sprintf( "%s $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)", LdFlags(FALSE)), package = "RcppGSL", Makevars = NULL, Makevars.win = NULL ) settings <- plugin() settings$env$PKG_CPPFLAGS <- CFlags(FALSE) settings$configure <- readLines(system.file("skeleton", "configure", package="RcppGSL")) settings$configure.win <- readLines(system.file("skeleton", "configure.win", package="RcppGSL")) settings$Makevars.in <- readLines(system.file("skeleton", "Makevars.in", package = "RcppGSL")) settings } RcppGSL/R/RcppExports.R0000644000176200001440000000062312774327533014357 0ustar liggesusers# This file was generated by Rcpp::compileAttributes # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 fastLm <- function(X, y) { .Call('RcppGSL_fastLm', PACKAGE = 'RcppGSL', X, y) } gslSetErrorHandlerOff <- function() { .Call('RcppGSL_gslSetErrorHandlerOff', PACKAGE = 'RcppGSL') } gslResetErrorHandler <- function() { .Call('RcppGSL_gslResetErrorHandler', PACKAGE = 'RcppGSL') } RcppGSL/R/init.R0000644000176200001440000000162712774327533013036 0ustar liggesusers## Copyright (C) 2015 Dirk Eddelbuettel ## ## This file is part of RcppGSL. ## ## RcppGSL is free software: you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 2 of the License, or ## (at your option) any later version. ## ## RcppGSL is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with RcppGSL. If not, see . .onAttach <- function(libname, pkgname) { ## turn the GSL error handler off so that GSL will not abort R ## users will have to check return codes (see vignette) gslSetErrorHandlerOff() } RcppGSL/R/fastLm.R0000644000176200001440000000760713070437421013311 0ustar liggesusers ## fastLm.R: Rcpp/GSL implementation of lm() ## ## Copyright (C) 2010 - 2017 Dirk Eddelbuettel and Romain Francois ## ## This file is part of RcppGSL. ## ## RcppGSL is free software: you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 2 of the License, or ## (at your option) any later version. ## ## RcppGSL is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with RcppGSL. If not, see . fastLmPure <- function(X, y) { stopifnot(is.matrix(X), is.numeric(y), nrow(y)==nrow(X)) res <- .Call("RcppGSL_fastLm", X, y, PACKAGE="RcppGSL") } fastLm <- function(X, ...) UseMethod("fastLm") fastLm.default <- function(X, y, ...) { X <- as.matrix(X) y <- as.numeric(y) res <- fastLmPure(X, y) names(res$coefficients) <- colnames(X) res$fitted.values <- as.vector(X %*% res$coefficients) res$residuals <- y - res$fitted.values res$call <- match.call() res$intercept <- any(apply(X, 2, function(x) all(x == x[1]))) class(res) <- "fastLm" res } print.fastLm <- function(x, ...) { cat("\nCall:\n") print(x$call) cat("\nCoefficients:\n") print(x$coefficients, digits=5) } summary.fastLm <- function(object, ...) { se <- object$stderr tval <- coef(object)/se TAB <- cbind(Estimate = coef(object), StdErr = se, t.value = tval, p.value = 2*pt(-abs(tval), df=object$df)) # why do I need this here? rownames(TAB) <- names(object$coefficients) colnames(TAB) <- c("Estimate", "StdErr", "t.value", "p.value") ## cf src/stats/R/lm.R and case with no weights and an intercept f <- object$fitted.values r <- object$residuals #mss <- sum((f - mean(f))^2) mss <- if (object$intercept) sum((f - mean(f))^2) else sum(f^2) rss <- sum(r^2) r.squared <- mss/(mss + rss) df.int <- if (object$intercept) 1L else 0L n <- length(f) rdf <- object$df adj.r.squared <- 1 - (1 - r.squared) * ((n - df.int)/rdf) res <- list(call=object$call, coefficients=TAB, r.squared=r.squared, adj.r.squared=adj.r.squared, sigma=sqrt(sum((object$residuals)^2)/rdf), df=object$df, residSum=summary(object$residuals, digits=5)[-4]) class(res) <- "summary.fastLm" res } print.summary.fastLm <- function(x, ...) { cat("\nCall:\n") print(x$call) cat("\nResiduals:\n") print(x$residSum) cat("\n") printCoefmat(x$coefficients, P.values=TRUE, has.Pvalue=TRUE) digits <- max(3, getOption("digits") - 3) cat("\nResidual standard error: ", formatC(x$sigma, digits=digits), " on ", formatC(x$df), " degrees of freedom\n", sep="") cat("Multiple R-squared: ", formatC(x$r.squared, digits=digits), ",\tAdjusted R-squared: ",formatC(x$adj.r.squared, digits=digits), "\n", sep="") invisible(x) } fastLm.formula <- function(formula, data=list(), ...) { mf <- model.frame(formula=formula, data=data) X <- model.matrix(attr(mf, "terms"), data=mf) y <- model.response(mf) res <- fastLm.default(X, y, ...) res$call <- match.call() res$formula <- formula res$intercept <- attr(attr(mf, "terms"), "intercept") res } predict.fastLm <- function(object, newdata=NULL, ...) { if (is.null(newdata)) { y <- fitted(object) } else { if (!is.null(object$formula)) { x <- model.matrix(object$formula, newdata) } else { x <- newdata } y <- as.vector(x %*% coef(object)) } y } RcppGSL/MD50000644000176200001440000000664313553066422012053 0ustar liggesusersc4064db67821927e51466314b7937d07 *ChangeLog 5a723af0598ce5bf580a6251e9eec061 *DESCRIPTION ab224aaaef366cc78e9ed7430feeea9f *NAMESPACE 4ae937de8397e60712c56229703c16f5 *R/RcppExports.R f7d8b7cbd39e593ba8ddf03a43279dc9 *R/fastLm.R 54fb893fc5a89aa3f3b01e949863f87e *R/init.R e3e6b6943ffd2cc94aca47745e502d33 *R/inline.R c5b9b7ab289082d2db470406ae4ec06c *README.md 3883e612bd76f4fe2df73a4bcaf28164 *TODO 189a568cb6c6f909425b03b72f03be51 *build/partial.rdb 2a5404a273147483f07e00129b2a4ab1 *build/vignette.rds d02d72151c8a9e3cffa39e0115020417 *cleanup ebe8e74ccb1d1575d1ebd53ea8382829 *configure 4ea12a99303d8aa1ef2745700035a93b *configure.ac beb7257a259a9f0f8c5b40ebea4d01b0 *inst/NEWS.Rd 4b0054248b3d60a0f04f107e534b901a *inst/doc/RcppGSL-intro.Rnw 57fe4106bceb952a301985ad197e1863 *inst/doc/RcppGSL-intro.pdf acd73645dbdb9731139253720713e1f7 *inst/examples/RcppGSLExample/DESCRIPTION ca4d3febd8107be64527dbb80674d7f0 *inst/examples/RcppGSLExample/NAMESPACE 2ad3558b32896f6b90dfca1b628b04ea *inst/examples/RcppGSLExample/R/RcppExports.R 7028487129d9f40d52a3c48c20ca3844 *inst/examples/RcppGSLExample/R/colNorm.R 1ac375832dc27870605fc0ce9da94ad5 *inst/examples/RcppGSLExample/configure 2661ff215b5d361a6793c6b7ebe27068 *inst/examples/RcppGSLExample/configure.ac 3fb2609d195a6961ed89b207212c6413 *inst/examples/RcppGSLExample/man/colNorm.Rd 2d84d061699ad784812b605eeb65f22b *inst/examples/RcppGSLExample/src/Makevars.in d69db63928d9ef7801148b48c32c2ec9 *inst/examples/RcppGSLExample/src/Makevars.win d331e79613b49b2ef102625d49d79bc9 *inst/examples/RcppGSLExample/src/RcppExports.cpp 5948ec85a185c10736ef394861b6b1da *inst/examples/RcppGSLExample/src/colNorm.cpp 70f028ea1e8306b481e28da92536d8e1 *inst/examples/bSpline/bSpline.R a051860124731442375a4f826d1a4244 *inst/examples/bSpline/bSpline.cpp e2747f0b0e0c7528fd9dbefedaf0d5ef *inst/include/RcppGSL.h 008f4d38afad7975fad895ec2c5aac78 *inst/include/RcppGSLForward.h b944e4771cfc6085fc5e76f561de328e *inst/include/RcppGSL_matrix.h 717041692ed278218de705e9dcd823bd *inst/include/RcppGSL_matrix_view.h fb053660cb0ba2e120de8f380ae53f01 *inst/include/RcppGSL_typedef.h 99ffa46b1bf4a58ffaa1d94185e783f1 *inst/include/RcppGSL_types.h 2d281fc07605d3561097cf6ea0b48dda *inst/include/RcppGSL_vector.h 419dde941afd8b3f20e25a63c42a507a *inst/include/RcppGSL_vector_view.h eac5eab6352e9a97236f9e11d6069144 *inst/skeleton/Makevars.in 528fb571247b8c0c4db3fda62c047d3d *inst/skeleton/Makevars.win 7ac30c30f4eb7df2278ec84f4e457152 *inst/skeleton/configure af35ab71c2fb50246cdd9ba0512a9e17 *inst/skeleton/configure.win c24f72659ea22db2ec0837be37a07b35 *inst/tinytest/cpp/gsl.cpp eac1856bd8d996feff382f1ab822cd24 *inst/tinytest/test_client_package.R f3bb562b89338afc50ba19e65401b293 *inst/tinytest/test_fastLm.R a4b46850356a5d9001c17c52595de0cf *inst/tinytest/test_gsl.R 7b5c55ec1f47446552acba44e1aae221 *man/LdFlags.Rd 87189d915953c4415e5fcca042d495cd *man/RcppGSL-package.Rd f3e4ad226e495088c31bfe72a17cbf3f *man/fastLm.Rd d140432b43a8c7ef13efd4f9c3d082d8 *src/Makevars.in de621a24a6bd037484cd5a88b7e8ac0f *src/Makevars.win fcecc3b7db20ec2f2bdb63cf3feac0e4 *src/RcppExports.cpp ec227745a908b2cee282119745407088 *src/fastLm.cpp 0ed3763b4c2fcc1dc6c12209ae757908 *src/init.c 9cfa37e70e40833dd2607a100c7d2e33 *src/setErrorHandler.cpp 73e9b83fe44e0c79305a5c7906c56234 *tests/tinytest.R 396d412e57df138f52ee4c2f21cbbb03 *tools/winlibs.R 4b0054248b3d60a0f04f107e534b901a *vignettes/RcppGSL-intro.Rnw 0aa255ad594de82f8bd03800b150ef22 *vignettes/RcppGSL-introduction.pdf RcppGSL/inst/0000755000176200001440000000000013553063361012506 5ustar liggesusersRcppGSL/inst/examples/0000755000176200001440000000000012774327533014334 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/0000755000176200001440000000000012774327533017122 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/NAMESPACE0000644000176200001440000000010412774327533020334 0ustar liggesusersuseDynLib(RcppGSLExample) importFrom(Rcpp, evalCpp) export(colNorm) RcppGSL/inst/examples/RcppGSLExample/man/0000755000176200001440000000000012774327533017675 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/man/colNorm.Rd0000644000176200001440000000214712774327533021601 0ustar liggesusers\name{colNorm} \alias{colNorm} \title{Column norm of a matrix} \description{ \code{colNorm} provides a column norm of a matrix to provide an example of using \pkg{RcppGSL} with \code{GNU GSL} library. } \usage{ colNorm(M) } \arguments{ \item{M}{a numeric matrix.} } \details{ The column norm of \code{M} is returned. This example reprises an example in section 8.4.13 of the GSL reference manual. } \value{ \code{colNorm} returns a vector each element of which corresponds to the vector norm of the corresponding column of \code{M}. } \references{GNU GSL project: \url{http://www.gnu.org/software/gsl}} \author{ The GNU GSL library is being written by team of authors with the overall development, design and implementation lead by Brian Gough and Gerard Jungman. RcppGSL is written by Romain Francois and Dirk Eddelbuettel. } \examples{ ## see Section 8.4.13 of the GSL manual ## create M as a sum of two outer products M <- outer(sin(0:9), rep(1,10), "*") + outer(rep(1, 10), cos(0:9), "*") print(colNorm(M)) ## same result using just R print(apply(M, 2, function(x) sqrt(sum(x^2)))) } RcppGSL/inst/examples/RcppGSLExample/DESCRIPTION0000644000176200001440000000071212774327533020630 0ustar liggesusersPackage: RcppGSLExample Title: A Really Simple Example of Using RcppGSL in a Package Version: 0.0.3 Date: 2014-06-26 Author: Dirk Eddelbuettel and Romain Francois Maintainer: Dirk Eddelbuettel Description: A complete examples for Seamless R, C++ and GSL integration in an R package is provided. Depends: R (>= 2.11.0) Imports: Rcpp (>= 0.11.0) LinkingTo: Rcpp, RcppGSL URL: http://dirk.eddelbuettel.com/code/rcpp.html License: GPL (>= 2) RcppGSL/inst/examples/RcppGSLExample/configure.ac0000644000176200001440000000154612774327533021416 0ustar liggesusers AC_INIT([RcppGSLExample], 0.1.0) ## Use gsl-config to find arguments for compiler and linker flags ## ## Check for non-standard programs: gsl-config(1) AC_PATH_PROG([GSL_CONFIG], [gsl-config]) ## If gsl-config was found, let's use it if test "${GSL_CONFIG}" != ""; then # Use gsl-config for header and linker arguments (without BLAS which we get from R) GSL_CFLAGS=`${GSL_CONFIG} --cflags` GSL_LIBS=`${GSL_CONFIG} --libs` else AC_MSG_ERROR([gsl-config not found, is GSL installed?]) fi ## Use Rscript to query Rcpp for compiler and linker flags ## link flag providing libary as well as path to library, and optionally rpath ##RCPP_LDFLAGS=`${R_HOME}/bin/Rscript -e 'Rcpp:::LdFlags()'` # Now substitute these variables in src/Makevars.in to create src/Makevars AC_SUBST(GSL_CFLAGS) AC_SUBST(GSL_LIBS) ##AC_SUBST(RCPP_LDFLAGS) AC_OUTPUT(src/Makevars) RcppGSL/inst/examples/RcppGSLExample/src/0000755000176200001440000000000012774327533017711 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/src/Makevars.win0000644000176200001440000000023012774327533022174 0ustar liggesusers## This assumes that the LIB_GSL variable points to working GSL libraries PKG_CPPFLAGS=-I$(LIB_GSL)/include PKG_LIBS=-L$(LIB_GSL)/lib -lgsl -lgslcblas RcppGSL/inst/examples/RcppGSLExample/src/colNorm.cpp0000644000176200001440000000604412774327533022032 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*- // // colNorm.cpp: Rcpp and GSL based example of column norm // adapted from `Section 8.4.13 Example programs for matrices' // of the GSL manual // // Copyright (C) 2010 - 2015 Dirk Eddelbuettel and Romain Francois // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #include #include #include // old initial implementation, kept for comparison extern "C" SEXP colNorm_old(SEXP sM) { try { RcppGSL::matrix M = sM; // create gsl data structures from SEXP int k = M.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::vector_view colview = gsl_matrix_const_column (M, j); n[j] = gsl_blas_dnrm2(colview); } M.free() ; return n; // return vector } catch( std::exception &ex ) { forward_exception_to_r( ex ); } catch(...) { ::Rf_error( "c++ exception (unknown reason)" ); } return R_NilValue; // -Wall } // newer Attributes-based implementation // [[Rcpp::export]] Rcpp::NumericVector colNorm_old2(Rcpp::NumericMatrix M) { // this conversion involves an allocation RcppGSL::matrix G = Rcpp::as< RcppGSL::matrix >(M); int k = G.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::vector_view colview = gsl_matrix_const_column (G, j); n[j] = gsl_blas_dnrm2(colview); } G.free(); return n; // return vector } // newer Attributes-based simplementation with reference counting // [[Rcpp::export]] Rcpp::NumericVector colNorm_old3(RcppGSL::matrix G) { int k = G.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::vector_view colview = gsl_matrix_column (G, j); n[j] = gsl_blas_dnrm2(colview); } return n; // return vector } // newest version using typedefs and const & // [[Rcpp::export]] Rcpp::NumericVector colNorm(const RcppGSL::Matrix & G) { int k = G.ncol(); Rcpp::NumericVector n(k); // to store results for (int j = 0; j < k; j++) { RcppGSL::VectorView colview = gsl_matrix_const_column (G, j); n[j] = gsl_blas_dnrm2(colview); } return n; // return vector } RcppGSL/inst/examples/RcppGSLExample/src/Makevars.in0000644000176200001440000000024412774327533022012 0ustar liggesusers # set by configure GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ # combine with standard arguments for R PKG_CPPFLAGS = $(GSL_CFLAGS) PKG_LIBS = $(GSL_LIBS) RcppGSL/inst/examples/RcppGSLExample/src/RcppExports.cpp0000644000176200001440000000230312774327533022704 0ustar liggesusers// This file was generated by Rcpp::compileAttributes // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include #include using namespace Rcpp; // colNorm_old2 Rcpp::NumericVector colNorm_old2(Rcpp::NumericMatrix M); RcppExport SEXP RcppGSLExample_colNorm_old2(SEXP MSEXP) { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type M(MSEXP); __result = Rcpp::wrap(colNorm_old2(M)); return __result; END_RCPP } // colNorm_old3 Rcpp::NumericVector colNorm_old3(RcppGSL::matrix G); RcppExport SEXP RcppGSLExample_colNorm_old3(SEXP GSEXP) { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; Rcpp::traits::input_parameter< RcppGSL::matrix >::type G(GSEXP); __result = Rcpp::wrap(colNorm_old3(G)); return __result; END_RCPP } // colNorm Rcpp::NumericVector colNorm(const RcppGSL::Matrix& G); RcppExport SEXP RcppGSLExample_colNorm(SEXP GSEXP) { BEGIN_RCPP Rcpp::RObject __result; Rcpp::RNGScope __rngScope; Rcpp::traits::input_parameter< const RcppGSL::Matrix& >::type G(GSEXP); __result = Rcpp::wrap(colNorm(G)); return __result; END_RCPP } RcppGSL/inst/examples/RcppGSLExample/R/0000755000176200001440000000000012774327533017323 5ustar liggesusersRcppGSL/inst/examples/RcppGSLExample/R/RcppExports.R0000644000176200001440000000063712774327533021745 0ustar liggesusers# This file was generated by Rcpp::compileAttributes # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 colNorm_old2 <- function(M) { .Call('RcppGSLExample_colNorm_old2', PACKAGE = 'RcppGSLExample', M) } colNorm_old3 <- function(G) { .Call('RcppGSLExample_colNorm_old3', PACKAGE = 'RcppGSLExample', G) } colNorm <- function(G) { .Call('RcppGSLExample_colNorm', PACKAGE = 'RcppGSLExample', G) } RcppGSL/inst/examples/RcppGSLExample/R/colNorm.R0000644000176200001440000000173112774327533021061 0ustar liggesusers## colNorm.R: R wrapper to Rcpp/GSL colNorm implementation ## ## Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois ## ## This file is part of RcppGSL. ## ## RcppGSL is free software: you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 2 of the License, or ## (at your option) any later version. ## ## RcppGSL is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with RcppGSL. If not, see . ## old call now shadowed by auto-generated colNorm() in RcppExports.R colNorm_old <- function(M) { stopifnot(is.matrix(M)) res <- .Call("colNorm_old", M, package="RcppGSLExample") } RcppGSL/inst/examples/RcppGSLExample/configure0000755000176200001440000024643313553063361021035 0ustar liggesusers#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for RcppGSLExample 0.1.0. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='RcppGSLExample' PACKAGE_TARNAME='rcppgslexample' PACKAGE_VERSION='0.1.0' PACKAGE_STRING='RcppGSLExample 0.1.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS GSL_LIBS GSL_CFLAGS GSL_CONFIG target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures RcppGSLExample 0.1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/rcppgslexample] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of RcppGSLExample 0.1.0:";; esac cat <<\_ACEOF Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF RcppGSLExample configure 0.1.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by RcppGSLExample $as_me 0.1.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ## Use gsl-config to find arguments for compiler and linker flags ## ## Check for non-standard programs: gsl-config(1) # Extract the first word of "gsl-config", so it can be a program name with args. set dummy gsl-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GSL_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $GSL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_GSL_CONFIG="$GSL_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GSL_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GSL_CONFIG=$ac_cv_path_GSL_CONFIG if test -n "$GSL_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_CONFIG" >&5 $as_echo "$GSL_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ## If gsl-config was found, let's use it if test "${GSL_CONFIG}" != ""; then # Use gsl-config for header and linker arguments (without BLAS which we get from R) GSL_CFLAGS=`${GSL_CONFIG} --cflags` GSL_LIBS=`${GSL_CONFIG} --libs` else as_fn_error $? "gsl-config not found, is GSL installed?" "$LINENO" 5 fi ## Use Rscript to query Rcpp for compiler and linker flags ## link flag providing libary as well as path to library, and optionally rpath ##RCPP_LDFLAGS=`${R_HOME}/bin/Rscript -e 'Rcpp:::LdFlags()'` # Now substitute these variables in src/Makevars.in to create src/Makevars ##AC_SUBST(RCPP_LDFLAGS) ac_config_files="$ac_config_files src/Makevars" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by RcppGSLExample $as_me 0.1.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ RcppGSLExample config.status 0.1.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi RcppGSL/inst/examples/bSpline/0000755000176200001440000000000012774327533015730 5ustar liggesusersRcppGSL/inst/examples/bSpline/bSpline.R0000644000176200001440000000217512774327533017454 0ustar liggesusers ## This example illustrated use of RcppGSL using the 'Rcpp attributes' feature ## ## The example comes from Section 39.7 of the GSL Reference manual, and constructs ## a data set from the curve y(x) = \cos(x) \exp(-x/10) on the interval [0, 15] with ## added Gaussian noise --- which is then fit via linear least squares using a cubic ## B-spline basis functions with uniform breakpoints. ## ## Obviously all this could be done in R too as R can both generate data, and fit ## models including (B-)splines. But the point to be made here is that we can very ## easily translate a given GSL program (thanks to RcppGSL), and get it into R with ## ease thanks to Rcpp and Rcpp attributes. require(Rcpp) # load Rcpp sourceCpp("bSpline.cpp") # compile two functions dat <- genData() # generate the data fit <- fitData(dat) # fit the model, returns matrix and gof measures X <- fit[["X"]] # extract vectors Y <- fit[["Y"]] op <- par(mar=c(3,3,1,1)) plot(dat[,"x"], dat[,"y"], pch=19, col="#00000044") lines(X, Y, col="orange", lwd=2) par(op) RcppGSL/inst/examples/bSpline/bSpline.cpp0000644000176200001440000000662012774327533020034 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // [[Rcpp::depends(RcppGSL)]] #include #include #include #include #include #include const int N = 200; // number of data points to fit const int NCOEFFS = 12; // number of fit coefficients */ const int NBREAK = (NCOEFFS - 2); // ncoeffs + 2 - k = ncoeffs - 2 as k = 4 */ // [[Rcpp::export]] Rcpp::List genData() { const size_t n = N; size_t i; RcppGSL::Vector w(n), x(n), y(n); gsl_rng_env_setup(); gsl_rng *r = gsl_rng_alloc(gsl_rng_default); //printf("#m=0,S=0\n"); for (i = 0; i < n; ++i) { /* this is the data to be fitted */ double xi = (15.0 / (N - 1)) * i; double yi = cos(xi) * exp(-0.1 * xi); double sigma = 0.1 * yi; double dy = gsl_ran_gaussian(r, sigma); yi += dy; x[i] = xi; // instead of gsl_vector_set(x, i, xi); y[i] = yi; // instead of gsl_vector_set(y, i, yi); w[i] = 1.0 / (sigma * sigma); // gsl_vector_set(w, i, 1.0 / (sigma * sigma)); //printf("%f %f\n", xi, yi); } gsl_rng_free(r); return Rcpp::DataFrame::create(Rcpp::Named("x") = x, Rcpp::Named("y") = y, Rcpp::Named("w") = w); } // [[Rcpp::export]] Rcpp::List fitData(Rcpp::DataFrame D) { const size_t ncoeffs = NCOEFFS; const size_t nbreak = NBREAK; const size_t n = N; size_t i, j; RcppGSL::Vector y = D["y"]; // access columns by name, RcppGSL::Vector x = D["x"]; // assigning to GSL vectors RcppGSL::Vector w = D["w"]; gsl_bspline_workspace *bw; RcppGSL::Vector B(ncoeffs); RcppGSL::Vector c(ncoeffs); RcppGSL::Matrix X(n, ncoeffs); RcppGSL::Matrix cov(ncoeffs, ncoeffs); gsl_multifit_linear_workspace *mw; double chisq, Rsq, dof, tss; bw = gsl_bspline_alloc(4, nbreak); // allocate a cubic bspline workspace (k = 4) mw = gsl_multifit_linear_alloc(n, ncoeffs); gsl_bspline_knots_uniform(0.0, 15.0, bw); // use uniform breakpoints on [0, 15] for (i = 0; i < n; ++i) { // construct the fit matrix X double xi = x[i]; // gsl_vector_get(x, i); gsl_bspline_eval(xi, B, bw); // compute B_j(xi) for all j for (j = 0; j < ncoeffs; ++j) { // fill in row i of X double Bj = B[j]; // gsl_vector_get(B, j); X(i,j) = Bj; // gsl_matrix_set(X, i, j, Bj); } } gsl_multifit_wlinear(X, w, y, c, cov, &chisq, mw); // do the fit dof = n - ncoeffs; tss = gsl_stats_wtss(w->data, 1, y->data, 1, y->size); Rsq = 1.0 - chisq / tss; Rcpp::NumericVector FX(151), FY(151); // output the smoothed curve double xi, yi, yerr; for (xi = 0.0, i=0; xi < 15.0; xi += 0.1, i++) { gsl_bspline_eval(xi, B, bw); gsl_multifit_linear_est(B, c, cov, &yi, &yerr); FX[i] = xi; FY[i] = yi; } gsl_bspline_free(bw); gsl_multifit_linear_free(mw); return Rcpp::List::create(Rcpp::Named("X") = FX, Rcpp::Named("Y") = FY, Rcpp::Named("chisqdof") = Rcpp::wrap(chisq/dof), Rcpp::Named("rsq") = Rcpp::wrap(Rsq)); } RcppGSL/inst/doc/0000755000176200001440000000000013553063361013253 5ustar liggesusersRcppGSL/inst/doc/RcppGSL-intro.pdf0000644000176200001440000101556413553063361016365 0ustar liggesusers%PDF-1.5 % 7 0 obj << /Length 65 /Filter /FlateDecode >> stream x3T0BC]=CS0eaUeg```bQĆHBA=sM\@!(Nq endstream endobj 4 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rbuild765d13e42749/RcppGSL/vignettes/RcppGSL-introduction.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 10 0 R /BBox [0 0 612 792] /Resources << /ExtGState << /R37 11 0 R >>/Font << /R38 14 0 R /R40 17 0 R /R42 20 0 R /R44 23 0 R /R46 26 0 R /R48 29 0 R /R50 32 0 R /R52 35 0 R /R54 36 0 R/R56 39 0 R >> /ProcSet [ /PDF /Text ] >> /Length 6405 /Filter /FlateDecode >> stream x/wD˙ɓDb}1 vE_<6SSoTvV*' &.Q÷Q^-qfɢzUˏM^_]fM Ƴ^Y屎]* \XBIvB sY"v[xF#i/GI0p$:pRqf5q|mEÎzIkk-#nsHg/qG61k߈i#~ų!菝'HD[dS9 ubΛ5\R[OLhq[SDNA,υF u’LJN6|Ѷ́H7)Qοwz҅~9\#Od̞7,NT]\"̯'v"awNw8xutooIJeH7lnUX>ea@;Ox+IttBc\bQX0xGDdE+|e(|^ m3M2o±5%],ZK&`n6 ඕ2tU(joڮ%f2K[ ;fpF=~&Ak ,qUv&ʒ [mהlQ vaԁh7oZ0R?V0 HViXFnǔfY^^g-KTˤ3ғdQ[n ZMnA""_%{HqhE{Akoa(dl=ŢX͸;rɪ.+pӂHZX54J|;~DM>3@̋WW-yHhpյ͕q4z% bCFZ$IOXz&o)( o@uՀF"U[WP\ i%bXB3QiN%R "񻜴"ƅwg ˻:`tp]7󮞃×` ².}QT_A<#^fWLF`ހ.F$JIGVV7jbɆy*LЪ4MAp7ef@ t 'PAKM&A֒8 3r)hL1BuB@N97Y>4Cgǹހ)ɦ=-A3c`-Do`x58<J0I02Vi 1hy*7t6b #!]vg0hkL9ˆ d%N"Eo)˿,f2Sl>d> " I: ׻K4*w>u6, IN0;h#b<˩T`(u)Q2ʮ-֗7Ħ#];y2*ֱvh{ oslbk@/sFdyP2.s.dj`uFRǪ^rlj0;LŔ IDc-elt#K5&(! Ȋi73$K j|fOdzpxjLսV)\mi9j9-M$RDz$M2 E&$3't 8jeqDL@Ce?dTzlROߤD"m6zǁ~\ܡA!<ҨA}:I4Q:.81CC+# R^;v99JRDO}#k/Lj+vM@t,p+gTIW SP*&91c4^V5QZ bS4OP@-C\!mmIxHAq$ހBM;堜 H9].>0Șv(Eʼn6=pz}S՛2_CNSΆ&')AGӔ! PR&h},I 0rb.-͐U$~Ѐ]RVf r qW/8 {} B*1mL(Av鳔܂Q[ # 9iBBUWleʙ>]IytD_qzG/9@h>OM*roq䳁|:HL5cl^L 9I9b;NN吜gL<%5ݼ7^mRbLtA*7?5+N.oW!)I1IS*MڂsDCg$e5 7<6 k T*l΂EP98~zTQG]4mI 5$f?i)2p{{_ 16btu^u/? $YTڌlCC' at}SBZ @eHF<Ӊ#zG:~|2Og\S<_˯ ?^lWy lȤNqX-SNbk =Zږ[Ҧb=K`ai~T3ŕ~Xe[֬EA `A[֎R&T.8>"P]sbOͱ[/U/s[7IT,!J&QiY[6fd zZ ظإ;5zNZO0^0/x7Y5KrZFqk9 .saU~MN,<]UJjWr6 G b< jo#7EX aC@p:f~sуLK {zW~P?Zܨ ^Ƞw\Zi"]E>Mo^ROV״aYmp̖nQU ul79 %)G ECA)|l02! eೣR{RBT|ȑH1F}Ợ)P, 9c6 [ć(b O|6Uy] }]tk~M5:9}3tܛDp ZէvxR<4`1{x+T:s8ڂSvzxSb p(0tw)K:J"=;I֯:!Z{Y ]*Hhb;/s 1?wͣ$~vCX1d.B5mfك\m\H(]k*t OX(6iKNU5Pzyp!qMOtI_p!1>왉Sc,=IԞYthP`M}@MSa'OE ̋B86YtpTSaxYމ[; tc ELm"Akd>}  RF?0n}l848P]˙=^;1HՏKS91 E6]Pi< Nm:n0'=o MѮZ~ {uMguT4_e~T?}ENO^<̇ӛ_yhƳ<+ڱfX4nt}Y7C$U$v#v=GbAPlEY>".Fz}`NϊMݧe}*/Z P>4`q"ۮH曣oFWTaTj~8WoNT7j\śFɕʾC 4ttՄ=saE˺?z-Tbdni>p-[j&ƅ[dÉG[]wiʫU,ܡ`26 W:'-^$CVg,@vv!3a4\%ŝ0^)T Σ+iq.z}HHuy}χTKvn25,ӎJU@xo%4:˗e O7Z΄Őpl}%E%M&QS,v Go(5Au|;:wz/QK>PMI"U7d9f nCSI[|V" eS} 2JFDt:E^cU*Le\k|߁k&fSxw'b[eCgv t|pе}l=|xƓ_U|> stream x]O1 y@R(KdhU1&bA }I:t8K结ϲ. >)laIH0Y( cY6Qj V̛CiUWj a4G O$ڦZ:Al=0yr]xC)R DkڤLgb%+[S endstream endobj 52 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 277 >> stream xcd`ab`ddM,pI-Lu JM/I,,ILIB Ŧ?0eQ ,lDolnnUW}^X0:#G#YSD! 4G! 39#(5TG4/%H$#U! GhYj^ra  P)@\pKY~>4Ѹ߾f}7Sw];w]T4GYwl[pq1:^ j endstream endobj 56 0 obj << /Length 65 /Filter /FlateDecode >> stream x3T0BC]=CS0eaUeg```bQĆHBA=sM\@!(莓 endstream endobj 53 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rbuild765d13e42749/RcppGSL/vignettes/RcppGSL-introduction.pdf) /PTEX.PageNumber 2 /PTEX.InfoDict 10 0 R /BBox [0 0 612 792] /Resources << /ExtGState << /R37 11 0 R >>/Font << /R40 17 0 R /R42 20 0 R /R44 23 0 R /R48 29 0 R /R50 32 0 R /R56 39 0 R /R62 59 0 R /R64 62 0 R /R66 65 0 R /R68 68 0 R >> /ProcSet [ /PDF /Text ] >> /Length 7179 /Filter /FlateDecode >> stream x\nq ls%9kۃ؀p)dK+$y;i: Ŭ];lit-5"uQ@U.QUֿ[.e`lݽoVO (li[)v9u~uUɒVnﻡn-3KBJ+ Pf!$<{hv>2EwLl`Qnnv4٪`GD謙\WeM-G~Qǔ`#vM0ɚz1 "Q54`ʰwJZ HMNYg۶]X]{/ݺ[Ah`yw=Qgwlکv%r[IӣMUW6N 3h%--ʽM+c,iM?u`po` j^ Clg\7#"m{U3v?FgؽK8:FAOU7K5iHbR ePG]?( yZ tml:X f)*N#X7GĠğ{t7l4Cſ뀚sVi ٺDJA+Lp|"gB@2s7pͅEy`&I@l v7ןG}s=aEJCYU`!=R\`Q%awIjmh-&/FS13=*O_qNAxgJ{c 2&b+ xYT PQC3kM'`Fu[Te eTtyGc#3i}dzTCPxh~~J=dF*QFlLo)ϊniOyd훳?ԋ >8cm\ ',mSn(FK]פ~\Xt_#eM2S})h#W9(YslV\ (U^Uv!}x]nt;'Tj1qLD yT0C>DbAQDbUm3n):[,zd؅_{;=TuL;"o  9~EEYFjkˢfs޼ޞQ ^k5ۤU%BnmEy>bԌgg9{nMsUlc{oK2RMیà RY -qdר22wjF$SB{MrFbmrIS{'JkUw!J:bBPc B؄jNE,q:HӲv\_wKdOUŨRV "7~p Xf @o-4HnqY޷g߃;ŪQI]?zvt9~e.U 00Dv8-ȖF m8l~q2 }%Bk l,0u-L\!^#̱go~1Іv[BpxJ ;Xs?6TG@m)l͇bUnh9p¿B:׻u(2/'gEy=&xc|#zѦ>)1u X6Nx\PpwqƷq\c۾5VEv|>i3 %W)`<oIdWW8L: z}6?O m7'U,ynCpÊ4hط[I|QW:^?AY%,V;,A!Z\o*Umu_OЬav㲊3x@)4LZLwZ:&O?UY_} IJ0DILeK:OHQvХGQA}u+ 26#)Da0=!6yLP188s@V]JpS& >O-\FhNGi+r)q+A)LSM1pxKQWvAcWvh]*t=|d14VRTQvٍ.˗3oB:]vc,J%P_Z+oǸm|-\}p+yiT8I*|%歰ЕBPI)f C :~]BPV"8kwn8 ߀*}-Ҡ'k<6Y҈+%3^aFeޏK/`meeB3MYʋz2i*?>^R[@9P"jJءggsYeU.tJW(ذ¦ ]6FX2%,#UVY 7>16Rk sN)c^#  0:X9FWВ+B?d[foFdƺ恏s<Ο 6H݉=tarRQ+V3"IcØY*ŗ.'Ή9p5m?~Br[ߚa_LQy}44K.Jp: j\ 3:q3`ZZ址ᾍ-N+[T\ ,QQeqҥDW0! p1C_p*In!ھGT*f0{WGV/2s_KEFs/j/_saWQx[<> $?RLFw.qT-)C F!§ǹ.Yٴ !TqE~%WSxmQ̅# @U8]zz]A*BQMjI`U>-rŲF`r*R>&k-EBFKT/ RZ<+O*PO>؟ cGao#p8@)ԏb$k;&±"҉#`Ӊ=w@w}is؇2("->'O]LN\y>tQ/jڸ}DUXG[euI\}$bf%ZX~|=K!V0iFJGi[*d}r ap>9QW)ӦWΓдaӨPfrk+^pyb^q:*@kQb]~\4%;lh&.͜CtmCqUmwj~ۮa梓Bnh'Nm-Tw90Wb= ʈ İtAò߂8Cp3ba L.`>VbxH!&B{bUMbE۰p *W5G({7` (Aus6qWfk<}]U>ʐ} 2Oi@fwzr|]+O*P "^qX &~zd|u KP: d :` ȄQU6.AKe|IϷ~ve^2])@`lW66*: Q. p4Au[hv]Y}+C{9]+а®G$Vb$)v\{;9ٻ X1 ?)2`a]*N'j&|x ס]2`vj9cK[$#[!T9'r`9Y2@*l 1jB3{ECH ou[hWl5U .ߏl\߅أvr19HUfV=8)Ѥ J$O@v(B_U[ G>M`9#nG?&BsWw bи7~9a|(xٛlN'<ɇD9x/ج[6 ?uA%Hi^Gzk衜ujծZPkweB,Q($LDaZ׹NJ|/X%wtdyWrӯ_nʠϥR؇Bx1E'eQٟ躃Z BO~?< y%[b=l*C3Qi3([*/ !h6ʓ鬏VڻHu_q?a@s--{L3e>bwR ޡgd8^c~Ĭ{,f{G)\%2l`@̕+]o«ro{>$ i:dFpxٯZߑVMΰT\XxW@#f߷#I19`́ҳ/3D niہwHፓ3zǹK__ρe9t9}ef<9i I0,] yQ]M ϩF=o*¡ڱv3xL+ /{nHjrW~n/mLoÃ'd«]Rc1bͩj2I/rϒ￟f}yI)"&:;u;MwWg(.py~I7y0+0,t{g &HgE|V,xbjsm-^ w;Mg endstream endobj 69 0 obj << /Filter /FlateDecode /Length 641 >> stream x];nP^?0^c7.I6@QO S-}frH$0x맗|?߆y>.L}8yݓx]} o}su|hu2ί}ٴө|~n4 A1z :c6 b2q4c A<0NM81؛3G&`o" fMhИDFAcEVMXИDFAcEId4&QdИDFAcEId94.SиDNC9EKy4 b0B9EK9Zse :4.SиDNC9EK94.SЄDAQ~$AB`!ЄDAQ@E!Bxמ|퉾ΉΉΉΉΉ B~$$6Br O,%?.L0 LR$0K.L )--z ֒-XKޢ`-yނ-z ֒-XKޢ`-yނ-z ֒-XKޢ`-yނŕIƳ!9L盎V<1sw^/W>5`Vgf[ endstream endobj 71 0 obj << /Filter /FlateDecode /Length 578 >> stream x];nPD{;l@xݸH$E=*L \d)R\#9~zy~ϷacLm8/ԇC=ϫn8guzӷϵA?n˱_ǩ/WͦO񿯲wN?mfq4;FkDc|hǦA|dqd<4 qjĉ4G44|8 51 &H#y :c4 b0f &c5 b1B$h4ș9Q g4 LFAhu1;zvw)8.f'tTg|TWb. 'FP&! F!j2d(D *UP6! F0Cߴh_s+0'* endstream endobj 73 0 obj << /Filter /FlateDecode /Length 413 >> stream x];n@Ds7ЈtۀЉ8``ߪ5ӯ:<<=>˵=^yY~\>Rs}[صRߤ[sxx?_[m75v\VSJqh:Րn'֮%% c()av;":l?wc(xx&^|wnx`XB pfԛUsffݜysC_'khll3 -Dh*X@S" 0u xOD'L0v`c22lLFF#CL2PI화a2r9:ꆳ9S!t :\NAK)s :6.#r-^׫f^3Q^o]6j/+ endstream endobj 79 0 obj << /Length 65 /Filter /FlateDecode >> stream x3T0BC]=CS0eaUeg```bQĆHBA=s\@!(莓 endstream endobj 76 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rbuild765d13e42749/RcppGSL/vignettes/RcppGSL-introduction.pdf) /PTEX.PageNumber 3 /PTEX.InfoDict 10 0 R /BBox [0 0 612 792] /Resources << /ExtGState << /R37 11 0 R >>/Font << /R40 17 0 R /R42 20 0 R /R44 23 0 R /R48 29 0 R /R56 39 0 R /R62 59 0 R /R64 62 0 R /R66 65 0 R /R68 68 0 R >> /ProcSet [ /PDF /Text ] >> /Length 5387 /Filter /FlateDecode >> stream x؃-6w%R!e{{o\U?ȦLI%M.⣫ed?w<&YfSēi~d$̻Cy3Lʹ=dBT'M1iRyR ] yHx9G=* DP= )`VdKPhuP 6&j٩R-*y1DB{0/ e=*9hzKٌ!"Jۯ&` S/ QuigY2<eYNgRYٜ2AdJ@k3E=Ah]`z37kAC ~.$2`G`Ow% "NgI` e崆vg򨊸juTc7$3>mo bHs}b[TgďÌl 2]pZc_ \rp]ʁE3`ʙ7c}7J\e %Uhksq\$ #Pu[>AܹG=Fp@>XB`;<#}x1p9Ǹh`<YKmеآaL '@rr"~ / wrNuI|#\^ F@<O)z_jURN3J\,S9p|oŢ_6nq !Mp:W)P"gP!"URr !0rtg!zI._|XTJ=& 3b;~u?k!IJ] mJކqC=IZ6|CP1hΛ$W℺NUY9i{XˢZ'<-Ύk կ Xr< .xpȰìf#qY$f5fu/7~vna ۜ(8)bY7O{Tf6r?#b6+`@$zBAemMD`pE|0z O4K{elڢMq(gzs|0BF}AġVB\jLQmY+O3`v0ð!P6a@զdڮ>E'~ԷM\-tf k[+W}1Vy̟K3[nWuՖbYTʍ@SٳƢ9'* I`J*$?V~ҷTwd.p x Lِ!. V و)2&Wƥ-mu|\es%X1%;-T X]6j]4-E@%~fe1?:-B9?)0xy1cYxT3SHʶHT۽@j#d*,H6jhg~6vXpoWM*֮5@ĕZmz 亘b)&֥#=%0t!dqF]F-NB;`\ qZLnxТ6E'TZS[=>ZeGʶT h?ĥɹ;mI660FOt!0P)Ø#[I`ݾpY~_=RĕG`S1a]ヾ)DfT_ܤdi{<#w) Ҏ ?Pa@8*`qcvS@DZi W4q{(toʑ6X%I:2rd1AZEIwRŤsdZ?Ira%;|sa +<„a8؉Yg.H[a5c [UQ Ҏ :L'-v #QUR'7EaC̭YGgߟl3h~|~mx@x_@%^ 8Rܛd6_ݓ&L0̵ʡ0g4YLXN'c dؼy]g>n`]9NKb ѽ/wg&=P6jQ?jg+<ǒ.s4RDnEDu.`0Ne6 ,eAinQ ?%o-Lcbx6{|#Ltև@13>7l&$D,^:홨]EĎnlFZBҦK ]ꡨʢMٶR 4Nog2ʙ|}GWMw>W8\W^TL =eM 0mFRF ?ٮY/ʿb,lŐwI08;8GlqE.cXJ0^فE-xTW'ͨpIau!ܫJvDv3fz0$W):u A "+ &Uth;<8|8tA%).ѮlvW8-+' $TVTsRO꫓="Hk zWBE aK1mm}Sj;rt6ҴA68`kF!&y,5pǐdQQOU(G'j ;l)Bxa!2dH}=搷NJz!-\ {a& haDry!dq( 2AY&Cۛ* >owo!M]+BT,fչeZ̐Iu) 9*.ۚ`zflo7\^]``7!{D)\;`x'b_-{I fzy‹ t9sڏ!36pK7JȑQfx bI96a)[kUP`m*i1)IG5FZZa;AȨn_I~+NQ ~K}'u8B)La?GsW5M|&>nGڕF8TF<#XGr=~EԱ}FA)X^j^u0C"|Ê/oZ|h u|,\\ƖzbL9u0.1[R;G((GX5lET{揺Xcف R>R~sGNIɮϱ~,zZܞ`¥`ޞ"s~ +MI |q`C 4haajGrsuBd@aA1mז > ,uuȇ;f|`'+4$z&+>҈x]пO7?j )QƝՏޖ4w_Y,[,qv(nFb8bkD%n+lO ];x) 5ݥ8km⩁>Npt"0\cڄ{bv7}ZFS]U.޽mn8g>jn2 )S8/rL&;ey +TPG>3Ac7;'68x9J 9i?ԃ u`hp)6S&S7 \G|^,F3ug+P6Ds [GrUo]:+k pe03YD W$@ bxCH hgEEFu|g< endstream endobj 83 0 obj << /Length 65 /Filter /FlateDecode >> stream x3T0BC]=CS0eaUeg```bQĆHBA=s\@!(莓< endstream endobj 80 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rbuild765d13e42749/RcppGSL/vignettes/RcppGSL-introduction.pdf) /PTEX.PageNumber 4 /PTEX.InfoDict 10 0 R /BBox [0 0 612 792] /Resources << /ExtGState << /R37 11 0 R >>/Font << /R40 17 0 R /R42 20 0 R /R44 23 0 R /R48 29 0 R /R62 59 0 R /R64 62 0 R /R66 65 0 R >> /ProcSet [ /PDF /Text ] >> /Length 6294 /Filter /FlateDecode >> stream x=koFߍBXɈ~w;{dErw867zE{o\U?nz(!v3(U^ɜ3VP~Fhjzj |PRfG#HFJ>zQʥf(2?>,q;igd2{xWYeMD '4WۗcNω 1MeM'cY.4Ic"/gJ㯑(ݯ:AB ~?xcbSѻ)\WQ7ԏ×"RR@@Bpe KD)w_IN`Xz~ݣڻ?u7k_I6c‡uUMMV޵y֓r6{;DwmAq~%f%B6?r& ɹh=+H$Ug^˹ # 950/rEdAb{Mr1 C}ojox 7&B?G}o᭝x$t#Ie.2ȣ'UO]" xdE3\\f`RLo^" $R"%Y1UV%tP?{S:;>@TJh80EU۝>_k|=Cb\bcسd1q=&^$~LP SVNoxiiv>Rz9# ‚ GA{9j|[cAT.Df "gBOqdRƞ(z_rA<s-wvI~+HIbYN'STLxE&V4"rEa}ժ^1Is]):9hƳh 6ٱu6F!'˞'!rgESC;UdmkUܑ }}Uո ˢ7XB|נ(f.)4qakdt@ OX.03g_"qqפl Pl!xN.p`=wR@'PD젭il*Luvծzݴv2]8 l{Ax*A=Qqd.#п[cwKeKDh(sBMqnjVUyڪ`oM[.ں\\sD,{[dOwRpspM8QDt-RpcA!c!kʹ/o‚4$Aj=/gw6q$cҕfZ1(7P*ճYʰeլmxt|hskՙs9PW)9NuUS]CBsJ"#yTTd԰^hrv\T<+2@iSmt|L7t#7r_W70T`X3 F+3jj0ߵKC (xJpIq5~r01vYD U6a1MK9%Rq2{~SCW)%Yazfg@,ݗ )@ zj_ P44T^ ]# IT{9S=QPc//]vT&_~yYb`*-pVM> "Q.. 6s۳f(Qv"eL$,d.xbIy+t@N:`y\\{9jas-3t y']bܻ|o D:";shL(н}QV{[{La41;klƧ_ e$͉V!ӳ5ąt\fƁ7K2n&,=vVhۍx Sm.UKF+vfnm6.dV]zh끔^4I]- `GH/LRNr 9Y]\+3alRݹqrJR=p@r0*xMf5+2*CDr1ke`Se5$.&N0}Τ`OEV/3!T\+b4M^(E䱾*:oC jϮ~Kv[!/ 퀒 {|gMu–C> {JK{V4ebdl)-E;%C|x`CZlCX"*d7˸*Juh>,sGآY{N[ l۩H+FaisU7sҮܩ&cYSr7bPUiI(`8AMHzwk U VP >^EУcgmK%B9u& A˻ԗ]$Yek\q &?q[! Q *(5Ҡ Bݱ6<XvPIg+HJԺѠPu+6@2"ʗȑuɤrڋ[*J= pqQV;% /uE' ӰGPcMߒy:mbVNy̆ƪ(Jv}_#<ɀ-c(ڲi bY@ mSܭ}\XG2kVXTޘ%B|Uf a[IQ<-XgwaİnD郟o;!ybP䍵rAc}0jQ- nshRp<֕Wۅ $+gxv3+v&IQeڸFs=EE877n뻀՞CZO+p0"8W(jYJwJU) ^vM. = (':W(T$G[{CٮkP4-%I[鈽 #YANsOM0wU# >ߔqov͓n 9 aw_:@.c_iH,ގ>M:"I;Enw D7%( $v$qm=bq.~V3)@PbMܰmB?:f:dC'qܷiEar]jeJf7XWaygqUP|fo.X7"O%nPHm!Q_0h(ğ{t` 0Yi S<8Dܸ;hc7)% ˕xR Xǎ61LR _ꛅ L{&@ @y[;  ~Wݿ0lJ`NiO%؂E}'Wu ~4 ɏyyGTzyЫ7?g~:]!P)Ar@ 7D%vA" )zK3CpxzR&Ț-]F%M w Wl{Np# 3_& wPzw{# I@b"C49D{jr6VOUUn͏=x~coKŎpDE. MIA;DbMsXai':p 2 ]RKauА6Q~k ceG>8-"+a]2PlܤS9x:aF6 ӎ`}ʜouNt }l\W܉<PUiVjBZ۩MYȖd=O(D| %BH2Lpym|R*w8l8"ڟΑ$wLu֪Py A =P\߀3ҞXEJ/a5îjm^m~hY^eɲ@OytQ3^6{,WOo,GuduUzj~W4rlXSM4`93c)| ٟN*g0/sIcY㋙LE2bst_c'3z3 ^N\iN˞k/n1'L }|]^j!̈s|~Gte~؍'1_ 8/bxl#k?׶l~ ϬhRW$48e;P$a8N67՞9J&w 8?'jDۺaۗg?b:n=yƞ = C$2L Ƣ]yq@m+ HmX5}_iEօ= \M"ŌK)1 o^rxu,!Kf)-iv;t]K_Z{Vw{߅ twm`;,1>.4nrWsl5(U=#d(HQ/Wۃ6$xMઉWmTv!)Si3NS2{7f$GR!/mt(?\'=,W`XL EZ^eG9=̙ ]!g&I(H\a $x-=qUMv`)Of(gW"*I-I|Ӭ/9iNB23D Iрdê >bK4sSĐC3 %vmX_DXvޡHu=WuE[Dz:)9z}ha[|_C./ꎈuhtG`fKqm-klA%~M>'$wt|vP mA]A+ ]x6ą =c'A!ӱ$8Hlf6ub1EHn~.@".0O@d9{66 bׅuNHjV+leݏ `b?Fk\6} SŚ V}<8BNڍp|̃?b'x/,ڷx,[c­uB#o endstream endobj 87 0 obj << /Length 65 /Filter /FlateDecode >> stream x3T0BC]=CS0eaUeg```bQĆHBA=s-\@!(莓e endstream endobj 84 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rbuild765d13e42749/RcppGSL/vignettes/RcppGSL-introduction.pdf) /PTEX.PageNumber 5 /PTEX.InfoDict 10 0 R /BBox [0 0 612 792] /Resources << /ExtGState << /R37 11 0 R >>/Font << /R40 17 0 R /R42 20 0 R /R44 23 0 R /R46 26 0 R /R48 29 0 R /R52 35 0 R /R62 59 0 R /R64 62 0 R /R66 65 0 R /R68 68 0 R >> /ProcSet [ /PDF /Text ] >> /Length 4659 /Filter /FlateDecode >> stream x[_sFrʣF.s|uJE)@{I>oF{fEQz]0=gEf /޾fv۝Y1 Ojf3͝l۳w?^I)g:WΘ/fL\13\FهϹyUv?Ȇ5Yv~Τ2{p\˳ rVL oS|f~7sno>r90n1?/rR.#../fS31yR1X].l١&܁FlFEO'UJP0q!8+Pk\]~f:`E1 2 5) o$7Q%xOpH(ަ)A W \ -t6^Aiߞ]flo(),1b$.]@OiZnS2?7΀;C@M%N_#Ӭ +ai}A01u/Z Uy7|E񌎂X݂<;$sTS# *+ѡS, >IshlS~,o0eOz[B <7POB h$L켦*Iԉ@4f&Mx|ӀB;8ISy‹SIL< a$)KgfJRg˹ l"2CǤ8T~_]]E6|SUQ\$y Q.2uhp_r|_w5d؅ȍ `|<%uFI5b P$b('O9W"(@_%DX|>i1&%DTt?Q}L X%QWL |~ιt}N/[5D ʹ#8P) ykq㙀q#0K΋6BsNEtSXP8GͱD|h^ 9a,D>گw>Q'CYЪ$7=Xb&- q츇qCzB@8T3pj 'sa8YRԣcFzT>/p%FkГZ쫶sXK(kjSsÊ,eTl c P\4(`H15BXT0(e ݗ=PXIe*t ` .s푉dYBO1Ņ@p>i.Kl+y 2!^BEk*(e*LNedYնr,0Ae5YhNO?ʔvmsۖw+lrW^aE1ZS5-ƛr?) D8ʐU]WV2(rٍ,?A:wGrYH; >B4̱FI|}: !9gխV2N5fJ6yO3W}v}FԨA;Cf#{Wפ5ju]O{<:S6%ŔZQ$C{ڝWP=!C'- ~c2 ү6W4]-~" Xa]mͼ :m#!\{wbrhR6q1vn$|8hrԄ͙q f?ζgSZ@|~ʓfrm`j8 1D0\B86%KttнqTB=qGCʥo6$Ŧqb}BXhC? E9>E&T/tٵA wD;%s/3#0Cݯ]sWOMcL0AusWp;NBS-6ʊAG]SKz׀k'v>^>]",&\GrkGH 9_yWpk~[ l:EXJ, P8Lυޘ/G sq# W Av*WnmsiK}Ȯoރ\W( Q\dM"I$O"a;qVg_~@At4lW!"Հ{3'iT$8(W$I"6EgL6'ջ~yqQAF~= 15z j4誐Tg$_H@~#}rYJC۷$+3ʕ.˛mxEUg9Ċfk|qu5/F)+JbfY<V!/n:B )7w _&w<=b.*$l}u("<=yU@Oǐq!PG Rh\ 5>h*P_#%}YoJ/bWWc_VV0rB t|$ϯ R@3sxú^(fiPuʣ>,6@ k~n 5 qƏ ?_AċFBw VMiTmh<Xy4E*57=][՗Bqg j}e^&q@\TV$ WP+A1b <Ď hkˠ1DI镮8VE8rҐzXJTH6%+yfHDki'ư Kdmo\O״Tf2:XEԱ`1 ܗ| tIm uUʱ(@{7* K,8-@}&ZHT5_Mmx  H8Dڳuuer7E{lRbTfۗƞ?~']} qW>sM ]ۜVC{`v0} !MH+` Pp`ne0ikhN 䔻yE;FηF`x@þ`f!:k1)s BU&ݦ/|[<-% Fy]X0")qzE`PYl%_ܨ8PFO l@0LK/70H_,ބ%X7C!ݕm8%<9vJwU9P]̶Cڭ$ċlOӑCVhgwUo-.&Bx%7- {2 EwUiC+[iNv9;Ye蜀TfM}onO CXƑ|ݰߚ+x @LJ(,c61fOXpUƽTwӹB._{< 9ĥ//v tG祔|gU{#Z*Pw]$x& HJN_4j\ (v1BoM!(p9x?TFaD쮌}k 0* /u7ƹULCL)}y!V |XV 7-)N=TCXlwg=3J C̍oH |TX-UB1-scc9is T#|WH5CaR*:ĽB||{xƁSSTP(獡\ŞߺjP4cnϟ{L$xؖQ ʧеAdߙ' |06&L.pO Lgr+]-(id6Y SFP e|i|dmMڔ;Q0۟⧳ #\?QLlΓs:˻cxpNM| EEW%l>e,ʘU)z)؄WW* Y\Vm7(LLwR좑Z.͍C}Uk:eeBY#0YZepE8ϦWcsxq͠:'HX:Wr =D*ހ4,śțһĥ"L+!:l endstream endobj 91 0 obj << /Length 65 /Filter /FlateDecode >> stream x3T0BC]=CS0eaUeg```bQĆHBA=s-\@!(莓 endstream endobj 88 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rbuild765d13e42749/RcppGSL/vignettes/RcppGSL-introduction.pdf) /PTEX.PageNumber 6 /PTEX.InfoDict 10 0 R /BBox [0 0 612 792] /Resources << /ExtGState << /R37 11 0 R >>/Font << /R40 17 0 R /R42 20 0 R /R44 23 0 R /R46 26 0 R /R48 29 0 R /R50 32 0 R /R62 59 0 R /R64 62 0 R /R66 65 0 R >> /ProcSet [ /PDF /Text ] >> /Length 6388 /Filter /FlateDecode >> stream x=isF_Tژ0vq\ǻFvvVNy!`d~}t");]H}u>*r2*;=>ajttL棯_t. GΏH^PHȜq6RTѫiV.c-²Y}֔1a0#|Dsnݣl\TYVm=En Λ܏*tV?<)F FSrq^_ۢL媙T~qJvW`*IQPsM]沞\7B {SD:\uKvjX9X4USvU8Q6܈fMny"yDCOf] @d =Uf~Η^\Q:'esW /A/G3Œ^}w߆MzV5 ŻaYy)qL첚 i~?bL_60#ˮES'`bM W=_ts7~{* 4;@rpbL%&Z)xb(jVuaC"[EYݥ;"0"q5Ԩ;6$IPp}C!3欰@6F#6t766-f@N Mc;9 Ab`?#R?"iݶN"_pP G_t}\ʥ9;q{@^V4ωwd76WqM].W]T_e1H_UvS%Β NBpRlWo{Wja%w_xNP%snʦ|0xɏ'S-ʣ2AkQ:&"EZ/JͪY~o'Ь9u1Im(XĝUWE}WIpeSg*q2@L_6w2i"^1`s ?+p#Z{ E E|Sʏ?gx'־w7@ e@{>QW@yw_I 8w=2D)E&)9Ud4Lv]5]5u? N\!(t7C9ԽyaK^!mdYI`[lGN[ߎ10Fx08SvTgrq2[Mc52}];O')O ׳0V]Im^Cάᘡy<70 $ F/}@ႎucy<}7Q=f*,SXI'9]E9Q= -Tϐ3f[K*;R<7aG|m qkߥ4*'ʋ7HL>r u^MEati{}Dfq8I@Gvt6X~W\M/j՞[XuҞa|ʲ͞58/*ќ]jܺ 2ޮ.LDfVxc%qzkʮ^.rA9&eJS79iH(Zv`d'jOW1A ,@&O ,zwa25WrHe|,BbJY$Fli݅1PziZ!kq8B ]CQ#*MNsrN׋Y{+Bұ@gx@D(\(T:vfA2ቻ-UP84f+d7xP;$^6ĊޔFW2 c=r.ÊAnL\ {L`1dE64ґ"a>b( +Ȇ4#w,@e$Wx|V/{,AF?Jx ]ޡ&ˏOE(;9pd$"u=x0y,F {qɓgߢ: 0sL[ ?uNq?Iܛ*!dU,v3K|jd.,`'@zh9BCn%L8N¡]AKρ{۾Te_fI`ro{d0)e&Į*kSN+rRtxYrɢ{ ` *f7j=w Ed=gQ[D3 dA_16n;֙Kޘa qGnֱ+MZg L7mXXgxVh{Օm%(E{C`~u}:9|{Xa<zr4;bL%9~/b@cG4%ʠN|@:M}:OO/~'nl7תQDsp?N! S,6 H|(' tڇ`o0C ͂dD9uU~PV #굃&GqW;FQgD`K]/WyA9;XI><Ϙ3:H|!&:1bCF DaRH&<(2`89`CtXt5tKg>l#Qv2XNP V[Tm`Mn-K=[  B|{:vb`7[[ aB+EMT\̈́w{p/ .}3wkjo8!&.LmEh,'F`8/ _PiF$T4PJ"mb +#-l::2P#m{N9.B*-CUr|4A$H]14% }ͮNUp5OHR'\ núO $"grMy . ̪k(2`hIċxJ}H2ӌ!ߚ#$ uU1~σUd.z}b &=Gɳ%nm`6,$>IkKϲg)# -PU~ bM^&eԿjGOf.dաj6`ŲF8 [߰ la]ݤ6*LR _'$#iw*CHN|oz |CE2<;{_eSJ֋l5ݣ&I3Y =N\UC$ˋv{@ V!7opqсsN㘅F)霋/ӴkԺ`{ߘ7\&`Or۽DFz+.970]Sa8LQ EG:aeu`3Jg"}VSG)x5Ώ {%D? _Unt7aT_*5]5٪M]=lpX#ycVo5ǏҤ`XPS0k͞…B{,%[`Bg)fnT^q &!!q<&Bf6r6»~^gJVXY'A=oS_<]up3HkL `„n̞8 &w {4P*-DtlhjlGmg9ogL 咽⃳*>Ħ -ʬ7SE(wԘ34:l@Mm}6 l7Ӷ0ɪ]5<Q7#ؑ*5w| Kkv R㦗M}{$7!{zeLnTޫegqHsm@ >vda<`>3BBfGfZt Jmt6.('EɰXKX|p.>z .9 $g}M\Ǵ7jc@Bj>D{ځy*[Ow5.l}#{KQHD]~h 4UćIe>A4k&zKއW7p:Wo7xSnwuu}kxw0ϚNJQ>HgS&1,`\#Fq!`}~늦SH_ݖT8潼^#@8rȣ"fmrzNAvmNT e 9_lUΗ|5 8 y?Yv(% ;zSÖ/}݄b(b3ڠ'0tMxekY6ԍuMo)r95x@{01ދ)BAV h`~OcwWdԄ+=>ФG!tCDk`,Jz\6]z̖Կ*lTMc[Du6f^x* !WyXd/FWM",ۋ6N[կ]h*3 k ڔ^@x+K:cjbbL3ěSpJU_]-e- %M+L pVK[Őۮ&HQX'YoH^nL 80x(j`6^`{a@4,hɏJbeߎC{o qP)ݕJVP_: 1S3sɀioSw)٧ZI̹(j=C q.'SfP-VUC0Ia1_`x? #/(swN=L>r=tw-c8`,TIc@{, brnpwZkQTsWIw䞣HE`MpEvH=+Ǖ)d, sv^lN{.*D X|ӅtVi䴚&:KFkpHOfD *HJvdEUl%DnjQTW/Ru) ՟+m}L\W> stream x3T0BC]=CS0eaUeg```bQĆHBA=s \@!(ꎓ & endstream endobj 92 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rbuild765d13e42749/RcppGSL/vignettes/RcppGSL-introduction.pdf) /PTEX.PageNumber 7 /PTEX.InfoDict 10 0 R /BBox [0 0 612 792] /Resources << /ExtGState << /R37 11 0 R >>/Font << /R40 17 0 R /R42 20 0 R /R44 23 0 R /R48 29 0 R /R50 32 0 R /R56 39 0 R /R62 59 0 R /R64 62 0 R /R66 65 0 R /R68 68 0 R >> /ProcSet [ /PDF /Text ] >> /Length 5006 /Filter /FlateDecode >> stream x[nF؇&Xwd"E&{&A@KJTHcobG׸ Y`1ȮϮd)dw9WB-4ϏTdLIC_LG?[bRNLvJdY[oz(n&*pO苂},̀/ьH <) !RYW[ºrߜ|;Bҫ> u v׮ >cd.7WUmX@'\ 3WȺK ڷ?ݱ(n}Eћš\xJ zu9JW|GWyGnNn#76mQk0ɺFSry{|qPɾ>2x.C=CCXJN'4S;9z5I97.}=|%eճDIbRi5WT$tX{ztsC % vkFc) j#a]C&Ԁa_>ЈTi=ݙ!(eD9bu99ǽGeU%N_'*&4LQ^nV66 _ފbga1e&~Wr^W5<]ex*K5M}~U5#$)I+VȏL.ۯIr"4qC7" Ůؽ+FC1Ndv8{L_up:~O(j3ȫ۶xg;/> gI_CǭWf8eDBPR !`kR0@JT m\ٯ$]q|Ӷ %P*<]2"`e#x[{k12= Qq?JDGvdЀۻ|?}iZ1o2_>,ZIUq6EENn|iѽ.4eA,)7cFV 9MQ ]^3.Nڅ&\Ω^;#!)=ur< ֡mmr"۳`{Vfߋ8 KTrTʲd'U{cGƟ-QGX1ϠZ@5ŌVP|ȗiif=ISmYԥrkϝbI4r38n@&S2r LEp? W3wKưsI<,f9[G>B=}ArhJ c`[ N3񺓉> s` Y!("āxJnj AEȐW=zGx8sk 9O=| vM|6 Oj, InoLw6L= T-C yY>/IDvRQx|Ƶ!}#IOtR%O#(Đ%(9@ x){it?ANHJ~Ys T09A(#ɈvXGB49yďR؄k8!e7Iv݅/7[_ -<ݭWJ)P&5hY'XyS^t M@fjuyvnr6rוD)~Ds863 yvuno[km :u3ϋ[̓D%A/oA) n. p^7T@È~ dNÙO0X Iil_>h׷j!V1<S.-<˹ihqgCMq,Va§" n-]OC1HI&߿b&sj T|Cxiwq`|AHY,Xх>ucO-`qtճ(.J>TΧA]4bv1dS)ꐍE _*B AC}Sm0ެ1\O}Kc5*P:qL*\@npax/a1e߇u 1hu0*Gu6/ƀ"KP=) :$vXc2XW8PXj87.ℊLh XcA i[2N ÐUS>_rBk',bh2jUm*b8;ʿBȔc1[vc?K$x<^@)PŬzAl2 DzGAݨOJ5:`.ˢn;MI@ZģfD2lX5QؾYUEerwi"WU IȀevH;mPr R/+C2-T6(4ޭ+."$MdҢ}PI0߬涆#OnvӁ1q(˩%ݴU5M.VomEj(f–2zsu"w_lm_"fpjry.;at&1`|`A]̗kMx,/}h-'b(ӏ*bl+GG3K+Wy_gn!Y:M i"R[OU;Kf@l2^9(<&EJZݵEn1 bd׍Hf]v*mYU/ D.(`eqԜE&RBXU FXXuæ6C_hO쀢w{\+캷"Gj )g$SUmyI| t2 [[o !槮!Yĥ6x@$A ތĶI* |6N.:Jl=? endstream endobj 100 0 obj << /Length 66 /Filter /FlateDecode >> stream x3T0BC]=CS0eaUeg```bQĆHBA=s \@!(ꎓ ' endstream endobj 97 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/Rbuild765d13e42749/RcppGSL/vignettes/RcppGSL-introduction.pdf) /PTEX.PageNumber 8 /PTEX.InfoDict 10 0 R /BBox [0 0 612 792] /Resources << /ExtGState << /R37 11 0 R >>/Font << /R40 17 0 R /R44 23 0 R /R52 35 0 R /R95 103 0 R >> /ProcSet [ /PDF /Text ] >> /Length 3839 /Filter /FlateDecode >> stream xZrGG~#6~q>PX#kmvĆ0aˊqcOfU5!EMA Uɬlԩ ͉ldDM%|9N׳(xZܞ>`+OcR8~wT7ƚSLOoORYѮ݌ɋoN H< DV!b1љzH'|Z<b:m?j2I]Ϧډ@H󷑵MJڈ5m$$[7e22L1BKߎer](g#vq=%Lxnף3uBb c nacdTuftfn>[Ҷu2rM)SʻQ)S|Q!`D˻ddi2J/:B_,f 1qyA,xHfQD8lSlo3`_,]9<Їs)NQ`Iը*^v_XkĒ6k$VQ\mfw_#VyoR/&c N HxNSDCIqPfX8q1߿?r`^ >Kw)pMrf-y4,kXJB/H>(se S>H Q0&Q|%4Lw#m~'Q`#Z &̚;0/>RȬ0^mw#)Z`KUHn_O2EaN0$7`2=#C٢ŇcS&6Fv~gyjUV?4"8]o!/G7!j?mд%3 4.'ƒ {_n3.lu?o[&q^9ip8D- 4ܣ*k`[d,9}J 蛀OW/h3 < "FK)9{0$*B&4@ QtN%X 9p1d&5)d.2ʄS䀑噷hhPYZW ?[)=ͻXF[y~48Oʢx.,$;!h |U˾݀U̴?sR1b@vWGoz]6lvΛ@v3qc6Csy@+H󁒲zȻP$1sBߣ\" K$SNX.if>\AI\YoaQE4M]M0B+g+U) -V)62(K 2`OJBKD ]y*@:KIY2E"I -y aY#9 Dx_vgMy6K9E]hcR)M)MzS]peSy}ΉW(r+τ|'zY?얺 >ՉO_,~ʽZeT"j˫ڲ?v]z[|U=)n[!ţTq!5b'F^d.LWT.aTxK8S7NW p<Kݱ"IYA$Nć"ߍg J7QA5є^Ȱ(Cljb'g3WC ]1Ͳ437]kAYFhgcҽ#$-+g:̸r(ݓzu/Yg}=^vYq—4J/EyD@Z޶t̃q9$9KUnRszJXEۚQ_I_%+Q3vimg`\J~e22Wԝ֮1}\}(Ow~8+F1Sc.|`wOM|+5*a@] =Q*#-p7ljI#kXB~:^e-X; 6zRotՍ Q>e3-RS12ϔ}2./fЫ@@PlWwkg%1С)f2,/~kbN݌(T#j߹ ,bG?@?fY=nT)ij=laґx3Z1.eU#G_$q2p^Y/e} L ޚ]Z8|xݔ'9SQ⦋jiU,vjr~>'quby?&Kb}Mkz2X"mq%>ܹ;%q/ gL$6*.(xcf+M3nY.7ZM`uy\Ԃ+ctY"c|5=z@Ϫ:߂^U cDн*a ;NI=~I-$#O*J}_2Fob%8( hO''%$ f f7kCz}w*yC=K,]il(Δ7ߝQߜ?l endstream endobj 105 0 obj << /Length1 1456 /Length2 6783 /Length3 0 /Length 7772 /Filter /FlateDecode >> stream xڝwuTT}6tH׀ CtK 003Cw+!HH (HwHwt# "!O|?5k}}f6f}^9[5XC ` )P`I>x w%%h?<D}`7@Gv'b! j w8`lx 'kВC#A?HH#|`v[0 Aضg@O 7\t!>@EHI節S"@OME@cAp;;Еفlm]mP}醦EA97 A#ٺ:C!6Z # tEkF9*p70.7,̀N]$ D;vpFÐ`QYN "'((+ pZ ObSsw ?YC}FGUnǨÉFP@w  4G 8oD#oqQ w\"ЭCw"e `fEЍ Q`ZL4- Htzhi0 ArYO9 5}'D!"(Z|c| 2xŢNx~|'C]kbk6I0]e.w竆ӕo FCC!W8ܫ~As$+ P%_#Dv[D5v=6 Mc῟fkS=loc_ԋsu5njvY8dy# ,4|czlf\h}o>[7PojƆE$BNI`|+wE#w1yE)MjB^c꟢s4k)?2rA3AT$&Oy$&?EꍡlV*CD%>2Xm 7%;O2Xϭ~ ׈VУl|(/H (;SYcD;œ K/ 1Z;{I-7:1l.D=`UJ>ϗl3}I]NBXqN{`_h[47fK}:󰺑nJ: L%4U"x_SXEi哛c5u&RI9~^~ZޭM%ͫ jfY!z;뻿 +i$&ePޮH\Z>Ts'll1eyrVpdBI;~R7CeU5mh* &h^g̾HgLj]gƍ)F4)-Ը@2t]/V26BfRO'NKl3G2ivڀC GaH\h7Udʞ1K(R1El*̍Ơf/#zӄ\#캫{}r7c`zTc3'QRQS@6Sʿ}Ʊ˘~0F:VP[7g5n@k u8aB @:{htW/!B (OŻ9nqV\r-?6[&UV2eМϕ boutO OSzXѹrHAl^T}>=2>DhB%J{LƓL[{5?4.9/UrcHԿө'UVHklۇ7);7 +5![WL6g #_ Ĕ1Sޞ2^9N`A6:yzQ?cj38=+l& x}H-?pEub/|ZȤrCʼnZ)i*`j}jZZU4z+Z034 x&QM fy[OA MgIe^*{qy3ͺ՗#sIɱn^u y"XHS?67ɑޠV*#޶B&:56;P yuj04nO[+~2Orv?-Vl?a]/D!3*Nrb‘spM\{?&tb,)򆊶dmVZb)c#|H2`(\m,Ӆ`]kE:_pWx`}U7:5K5xa`Ip ؕlս] z#iUT6qRupdݛz)Rl}Ym3=޽+on( =>3. T3X̰N'Rwo/ޫs3dDIiRYwP[&?pkgdFdJtXmǤ k/ Uf76Qz7 2sJ 2?Wz|dVP|>Gb@)>vO]kfȌm#̂S2zB`+qn?pEoDu9C /zI3uK6_8cbGpw+#ۮBiE[VccA5x@a=Uh]?ݬ֨qr#+{b"į^?5JY7!irXqr#n^ k,mn6vMGաs"y%5xarTVYLQ2=T@7| e /H~Pc,9}*꣊w|h]oe#{ngkѬB|ܾHS6GWw,ש?`'5(,h 'Y[H=b뢏yܞ½=s@W~hq4>kVSK f ggp(N\d /dQdA_-'v-#U*r$7 CRV/1`5d掩|=pýxoCNidb'wSvluPX2Var1.k<ʓOvRXmb;S)%ܿή9,'''W<{?j/әs^Y>uAIl\U@q:6;ls ܮ484{mʆgΞ FsC-җgw? ֍n*%uǽ2_z!nTԝc&^o'Du{횂g J67[ KÌݦt+# GY DȥvxphV峏/~]A =jRr/~骕r[fê^Qv|ؔ(ylcwV ̵,,UwItXp/w\ xK)͉^_<5}(6(XS}kǷ5'q5,4\[f'59o4J}^OO58&Z9ƙy'0*&$ɭ5iV^.<ҵ\id w`"V'X]guG>ȼA6 Cew:\cNIԢCCK$U\O!,W}Js"GSr74]. [9c] uX}2ЯݾD1`^9 x\0q;H! \{" ߄#8 ԯh~Lo89ɞjb\^%b贯pXAYFwzŖֲK(Uʅ4IL,O,LJ#P~kުxmnSzMO^W-5{{e@fl~z$eGh pxLXMkWKцE{bJϘRM`> y ]Am{CbtK5o#lu.Jv~kHos3E]͵k6wU;8o`pr7 }Q6էW IjEӤ֋Ji{t؁t5lYM+5ŗL{UÝmrs!ޗD/S;~jN0ixհͳH!XcBPKx9vkM1.Vu񵖬9jl><_9S`n;I>QS$YK枺=Iac_g&mx}#:3 6w[eO`5 5YxޘE\CT"( DfWYzͻy)/W u}CbGتNEBnΟ2_E-SM}_4'  veͧ©s}y9fht- eHt1f(Ό&Lg֔/ñ/[i35DɟN2 [%C$ϻ3/GD>=m0V,f.Ja&+Xr7~(ǙhÝmqJdr=A۷v|;ut&ip K*$AIcr%ȾO9+%d^IT9TKiYVKXaP1>Ke".dnpO˴18S[ի0W۷R1STr48IUYKXyHxOkN*'&_!Rח':mį$e?>^wbQVy#&`.O6! %ia>g_9kݪguἨ%MBs[W'-!V#Q9ivXluf@r6A]uiv3i6agׯ9'-eI[צE-/txcO*<#aSWcYOlQ%7M~&{,݂ԏرH)}DQ0ep ikww/؈hU| ⯥x}#jmДq?]ػqzj?/|ɍHa4{ϐAPp0I9Xai˸+sW? =1:gn<3Lmstw##z=V#uq(v !H$h#YWVe$1}|KوU  S1o'fT MmUMK~cR ծ=zg_|qeQi3@x:Hvy#+>R@je*P|Wnnw^,͛zkd>a AstpXSXM^P{KKh1[U(jooA Z``xj:}&ZnbѺY)^ 3L{aݻ1P&ah^sh꫎<bg@;A sϢIIU죕7ePAU:ɠBSdV6V)T6zrO4?CRR55L-7 "v~`?7wҪH\cw I>ѵu6LK'ܬ _"| }$Mo=PCxRJ6_L> ӨqH:=a&`t"hlLı\)>>չiM](w'ztַtc|%hc(m֒uE`q_n-)ў .卥&s:m[|AvH-SMW5vV8U%ZK앯{~;Bu]{EdOj.9rRECѻHK]ח$km| yB[Gq /UC^,l^{3LE9u_btlx'TiѯuD&?whyREyz~|Xzvދ~l[^u zS;nxEF07s endstream endobj 106 0 obj << /Length1 1454 /Length2 16801 /Length3 0 /Length 17813 /Filter /FlateDecode >> stream xڜctd-v*VǶm۩ض;m'utܱmvy?wԨ{Zs.̵GՇ QR6s0J8ػ330QP:]Ō]< g+;uruqy9̀0Jv_vQG/g+ K.c{% l0Iۛ2|ۙ8[Ymm".@gwÿVf@{W+c/l3 _ IE qyq5@EZRJMG`a ~Ufnl et`}!9ZJ3 fWK @loU?.n&/Ŀtu2' s.@W_@{ |%U, ,,jS5[8iIh0v7?ۯ>9*]`QLQ_t/9X''ӗ0J0(+3ׇLl%Bo~ k_sS`fHX9T @i V.@a~팿U(kz_1rcG:2} ba`gh(mf@s8Fׯ&=`OF 7[[c/%jiUjlgeYo vƶiv5ŗEhdjj 07f@g[+{տB485M%uDg"j*_//%c+{WL'>yt^J?XM̬-f8x|虿2ga03s9X; UWu꫅@'nuV 64ڝȹRcI]yf(nN3K ^(mR(;+d?Mr .6WӖRx##RG QD|>>)zɠERcA3rdK>4ݞ?k* LU#MkMFAbo2>5lFجpʷjO_\tgU!A-g脙F2i`48^_p;z4bXh\2hSw;:i/l6 !^x?I.d0k^8F nVl4?l.,K:Xx1^ѕ 2 {uB]+87rﳧrql*~(uV֊T~L@-huq3.-l SVz,tՐs rz|[#Nr + cF@_4QQY~( y%aɟ2GE4* JEIpY뒏jău\ Z8E(HM 0-*Mi.RpYM(zX5xT,v2r\vbE5pQѪk˯t(By|lrG P̉n@ƥ#^ @,_6s9كQDFP 9'V8fFn1)ocsaowxwDf;CR(m鳤g;tX73ܩCL>CBk`H 6G#$7w,e{eι5Jw܅HL0^px )dZ{& 'ó&C6@\@Pd1gJǹN9 (f1Pm2,m.{Pj`%u+rct-i{ex!Jm\dԡpuDJ\D1Yꂍ!73o^6M. U]ڮ}|Icj^{ %P[Npr4dKɸ"uEäEἩ FQ;iCG|@|֎@ ?8;" ʮ!W+n/ EuTᜠ.H!i]"G` x' S&  Ș.`$~?N:캿c0J;Fzx>Q+7{0@6dpCӵ. ͽ4 ]q^hiobJ7tg <+K#H+A|lsj3=* (ēՎQnފVQ;Z=FMrhKi kW8-(mu 0p\l/󈢣6 2٤DUSOҫB e+p#PUHM8BaV7 #-FoƸPC KB O14A>/%YMABfCjP t=u'XW'YX%/ٖи?Y 2.gV|hJ\`4xVj#ͤAB>>11P l Lo-*nt [5ûnmkkMB*m|t:ԝWg:Zc (_tZd$M5ߨBHm `ݰ|hRHHcSF,jq;* Qwc*QX\FhrAcy"Yp[݋{Bg4Mm5*]?990ThiKǥW%Vccb3)bƂAF٨kοY'wO@=9Qj7=G:om0I{z (CV H# g<(f!DԩytAJߗ5#8&iZewѽv^|LM$/h8jVBJܮx^xvXS cɔh$6N7=PV]h&|za 9SV"FFFLR'n){2xU59Ycts2ޫO~$y%-)[Dw'+Fbv[XUlqkTTirF+pG{u!u^d^R3`Z4g 6XI,bIlRnBU TyBJ"TF^,$w h\/nDI:jV,_u&YXnh L۴ΚA,؝' Lc 3CL$Fbi{ 0FPB)YswVNƷ]y˰Z<{W[ ||JӹoA* f hE]&{' 8T,WuEp Y$uD0 CS F[o̳*nڿ+޵"+ gg[7 bL]h~X/CDk5ْs`p`+K/Ml.Tf^DTp|’q)1qQ? n c0Ǐ9`yB~\wj7gM9oGNF{ۼaS#3eïxUJyP?{> X EQ5D6Gh!*C{Мޘ^D9 >+[ ?·WwaYMWBdr!w"{uӣ@^*+(ўp iCUsd 0TdJEL } zцWg3#--p͔#{'7S1ϓhp>Dh}=Vu=_r9Hۣ,1 o) | ҺyTЏAIں0\?\>mAF׀W.Pv%?Qxh؅b رkd>gn"GSFO"Wv3~&!5k|-pm.Eݘ!!ᚭ+Y&듧x+.t=Ф9OKDS-~Ʊ/ Ox+^&us9cHQ;Kӿ{sk<8ڇjS`p<#p ݓ{ۜmoqng+k9._u'iD.`TbIr=+U'ABWR `@_28$V^-y+Vu$!ul\1ek!qvm /m'YuyOvƽ .hZg5x"CI ,9dIk].c8.ZE(M(mLkoQƦI{""47 9[VϦq  ^ ?ML^e+ iUԉNJ h$p N VaGYdPRYgZ".jCoX$^ {}s{X(*m7*aipݟz;e~wnoطǧw!4KKgZyU`i,,G܋Ƙ/ |D[|\|tn7yFzPc=qw`Fy^Ae)L3}I~:lEU.w-H02]%ESmHi>F#8oA̗)qmoN'OS5 /l0.ܫIw v6 |k/zVd}V^ͧ \,-_7$IJi%Pݎ`/DNThh.*70eKbcі֐S_Yi3UjS:r[\ޚv(/`/hUTEPz$QB /r)AߨTGO1V"t|*ƈh4BؕIbgt,m[k)jp;(-QIACοF;Sl`Ҳr] ۰-Hv J,D^]N-$N~Mlꩣ.ksA?W)#yPŞt/-nJD-\kPuՄ͛aGX7NBY#1yYu B3YKb#)27{8fcPx-aG7G}]hΣ R7e~]ӵ᝴< G'h9P?}; m3ViL)x9H( ]iSoξGFټ׊ϖ+XKɍB,߭`֋([1u>! 7-_>PTwJ#@"8fDK1f iA;MTBc~GANK(MK"*A*T~TJ/חN#M_2g^%\~)+;3fV6d-WB$z,K^8E bOௌ{O8q- цr0!^WXfuyW@Z9KHvI5i3JbbuO+# 0"z㋨߫6#<0rYCz}V9[XvA;"8jHˁr، iMl<"{ ;4%N"t')ϥI5>%$UBeXͺ0xʺi+ڣX_Z ǵ,:بwKjm~Y7νX{ lth< U/0ෟ%׿؛0$@Xwץ|;r$)PW(r ?@Ez`]PXηXZn*%rd;2>V,6- <5}ݺٖUAfz}6C)*JY6 Y"$?QZ$|mQ1\Qi`ri`/{B_3E') a|~. js+W/,V$;uvH$q*{;i{LS/4#W!P29ջkUH@m75y]oQ ҨoolzmEg|"t"TO-KRE;^*QcJ$oYLЬ% &w@kѴd\w5z=|kq_\MRѺvz9p0d#R&dR$לQIFLv2ޱl5fx\"9C>]GnM^,9n{VDը'2:J/"- ^?<}p! 5@$0!=UFWyt7ןT:eK ezꬷyD>ڃ^MpU0ml" vU2MJ?z7iM͡Tփ.jK=4NӲ>EZ| 4%9Dl.V2`81eO~(`uN (6_FoA8Xn3:a̽h^yuA 2@\4:J+}=z[e4CͿt#$ܬR * KD7Y2:BuG]=߱;.,X~K%ԓ'<q< Ң2|=UxmQW^{}\!c.[[((H&ȅ.(5Vr+B%dw9E?xg#.V6Bo%d}L2Ҍ((4q4cq̭k9:T @&/ #,F*P m.m9(748uA p>t͉̍g"՜ta(M*0Auh, v)^ud<1}%T~j#G DꔈS;Ό"S7hPq>x_CQ/ڒ}4K@9FX\7FV@UeފV-$[%AtzJbޚ6>@ Iʍpi\i.8%~qo<%E{< ְ_|}ղ }tҥ2^#gt{8CJ^ )Qغ, o.yEr$ e VЅ<.v=p1&ȃ۾jo 8p6*;r ˺q]2c;M'Ҹ^G)1Ž„N{3Mx-߼ Af`7i/=?.oT[G6^VQGWi0o8m*Vƹ<<ēzI(Y =lJ Zyx5ex-V"Sa{1b'GҧBݝ^:ut8,"6r6U@rMv$ɍ;/w&Y!y&qYRޣXw-N*pCS;]̆e"D: (:UAґ64|?o].ujT\&n*=3Mثs*{bx]\yxdIs6 G{XCgƒ ȽXpLyE du=}f] L!? ;kD}w0YVI,`Q[<~zgS w90"#d# De[qصO3Yd9;1@(IX06elNR^>➚iA a˳] |]qnRP*aV%2 rPk|Ashi4iZUϏl\_ݤ  Q!3止MKc[x#VaV o#9v9ފe)1Pv،^`;J+ݕp~2cI.~ޓI]L8Q&ݞeZ;9g+Q?(ՙ7AH辨`tAI޼'aT. 9quTHr4&+4V<~hv. E_mtXa훩Nkbgb~l[3j8wW[]57X %&Bb3q>.("|I5Kh'Bs6lrͭė ]Ƽ2[D)禍MP6Wi4` 7y0ùQVSnڙf(&,7 ƛX^`|2~d@S6m8Vqy68[Ws|k3Fp)fjCm fdJhRWer2zEƓ)Y$Σ(O0FQP8F"}o7W(ڕddZ8v%کǘm;``^ˤL>Yk|DLG)z m,%Q2FEXH:l9dUsU~$#דD9R:ORno]%9r':6M7B}WJ̈lqY.u}$fD;~帺o^qiJ l0i;O@/cUH'0tM\Q4aߧ#VY|M Y+>js($>]"!lxE1y&D 'du\V #Ҧ"0J3h)HU5¦&/K0'=cn焅K[(& "zjq+dOrh_Gȼ+IʻLt5ܕu1%R?q ]#eu%b,gB-0ف*$O4ކ:CTdӜ']\xIט]gzN(Dپ?u:ٴqpԒ6gȔ嫼TXVD$H`yL=7?eoM,ZovXN>'+I|P3hhU<[:p) ! 3K$?&sGѤ%GV̺,7]<ccAa˕jL|p[bp=)[d8@We78F'՜4[B>^Evh ]^>C$z^WUp[DXkcT,4rsj]XASTh'$xv, OاOGYDsނqqfBL֙tV8eZ%Gtaxd\&%#\zY9gQK+u< %Թn)w耫a+WN/5qusaBꇨ]͑D[0 V˸ m<Yjaex`.#>*2`p,>t]1[jx:Oppb\n! r  +"Ax+l"2α̳ JRvĖBv!S%iu%u)eL8'r۱&QDӈĄ H;[i3pPT{M6)9x5E?DzyfJ)=~ѿMJŦO&[._k@ʼ4s>\7szsEHs~feiX<8HTݬ]۪Z%1&;"f:Pr"sl4ӠIU3V`zrhȾleqOdNDZJ6Tlb BCb"]sz. NÌJq#|ZTiAS|O UӐ2rzmWt<~kRH A*rG@W)Jr71XKƊYbixtIf-xTq 0P?B XL ySUT ih >o&)I'qFwyژ&f}/pG6iCg=ȑåI]%cXK[4O)#<{а)1U%4Cg?I*hMB]jL.S ?1~WBx G`Adi1 >7L+@M-O^V6>p6&3V~v(Fm e -5 a3ƭ)zā YgCP8mv?2O%RqX1R#]t|*P[(B H5&i~w)zëϹ$/:h<` * s AsǢ)]:Yڵ~2o'iC3E!g> 6 \-_|=^3z;Lq/B)Mx>-_ df^xRFi|).903Pm >[l\0;# Nf4Gfwޗ ZG=g0'n*DK0݉XŏEv:#{.#`jWڌ~wHؕRdEjJ}:o˶0N]ƖZP\|KUp fLJhpLҦ}x'TL\Đ0v},K4984@%%zbp"k{r׶!%ߦFX<]zsJzKN; 1ʋD",)o}ٳ?͇{&mؗ=R)ZTH,baQ ) PA #ϖ2xIMxY;Ӟ{KTB˒Pfml9Ag0߾Tfϋߖ>e6aQV GYdtʁVGPӀG/dS!0pbdzKebEsT;ċb6aVH0q}vsB\peT3 IZr s4U&ٮ2^2&0҉w,*}Nq9S}d(U a6zՋSWe8-#Ȭ6q'rJ1k4i7Vwt7?e2ZxX*Z]ٸ@/@,Ҝ܆'M5<70#)̑,vbQ3%gu9e 4ii%^o = AoP,s`SE2G pw/]8)JA;[oC O;5lO[{c6!|d;^_ua@m8LM VZndrp$m=!i`<5TP.ru$L6#pK;; B*.x2Up2.}qGJmWLT&=hV=G̋~DMG*e/54(,Pc2A|@Wd0vfA}+%'/.)i.j|ʹu^8WQq$\Cg:Z`>喇d4?ᓈ\k}:]uBlY=R vٔ7:*SHxR k&ⴘ!JaZ,_PM_DQyeU<ݧ7su9{!5!r} F]ׅ.`N$K+3-߄&.IlI #I!µ7dz5 PAiYȁM*kVrhڻkJ٬ol8\%{vůH^\H<}{>i ȳKd2uqlÚ"jE%(C`vj[r2`rYPL aRM,|k0 g9vb9r?Xx妬T9YZkR*ߖ\eMV\2Hw CeQkދkNm(JⰅ3.qF!jpԳc |!_G{:^>Wzrr^͂(oY]}XL;_߉S5o'Q]-) MQ;i:2cAZx &-"EiǗ(Aԥ+w '^AݯrBX" c60='*pHwcZf^n?A_?&3QYAcn cD2=h#Vvb4H@9,ݯ " }b 7 1sƍL?2*r,'+'(g(c˭f(.2̕gLwF endstream endobj 107 0 obj << /Length1 1478 /Length2 8765 /Length3 0 /Length 9775 /Filter /FlateDecode >> stream xڝwuX.(!]ݵ ,RtHJ#)]H *R%Y}s?v=sea5{A=@>z+q2 b||@ EH_7'<a 7]utB ; w0nP`G@K$  p # W$6 A!.2ǀcmW20WS0TR諩 } p A$3=4@>ȴ0CH`oOWV<`0nF"9#  I,̀,I#C2o,@0/ğ r!~~~nݞΏhsS[+ѿXTpkTQFz͉D\"|Ha )YB/9L\&zp Ïp0=rFlO?UP0@ h"q@F;B 9Ld20 T$?"<b:F/~?āL{^mrpn?3*{jܐ9J C 7 o07?jRHrH%qxDe•~.ap"% B!pߕAÆM{w5Al2WT7W =B6p#lbA/Z :,xH?| }GJ`#R>7 / b/CҐ|Zb3;aL&8݇V0`XCz~a]iiI(Uy3;ͅՖ_ɻBj^\7 +TW!-I 3c}k"kzʌ,6FS 9)0rtcc?n09WܶFg Ǝ]U )qVxCJ$ bg,GMVbO\v9rVwZvo_HJ2!q ON?SQ7H?Pԗ ɮ:~3Z{I5+6>Nh-@3?k7(^6/őhڨ,9s2?IVAq|vT!)Di:mpUk?\T|(Ӭռ\aʼn 3k+Ö R+ \)@F-tZmGR@kCh])+HoE(woD^XP-]97*6ꛅgcz3BfWf8Y*ts*4Q@`Am5JielV MeM!+A7d$}&4J:=v/p/g /MP2, }mйt>;1JeYJȱNPxfs^%ᛆA5u-}pA)FJ e1lUqrx O .6J;QA$և6%ZZ/@eVDSNm$Zz^ң/Nk#ӄ,5̭wT{O^XxP,ciӗJb,\xy12 N\+}@-׻n $+Ă`6Vv/?|畿 t]1V'ºF$vD߳)G"k9ozio:⩤_͇}s!U?;_4}xT +< *鳛<VLݫ`ӴO% (\(t0(]&Cσl^m; l)K)h9BEHXF (k^46:ZEbQrZV'e4פ#)~eV#=E3Oڡ=>2! H=Eo&AUU % ~ [Pw{I%y&1 *`YI)瘮xndnq:98<<ڐgJ(()-VEw{fEb>_r+xI FUa56mv opn:#;Q~KL1&/xl!'L3)eO-,jP-Zy왌  φ6niR#XO;$~4kG#,2`CTTy6]a((qfhK$,S DLRA+,~nR%hh;DstgrceٲF5ԅNSz51"Afz0z|mU];?ᯠw{Wg9Yg7T'}K(5^ zmhz^tyGq]6bNg=<"U]Irk;*"6{q&‚:|)+^Rkϛ'm;k ۲wrvrJAګK T?5/R Oh{@ 3kġi.;1Vk(3 q~E`x䗙9 X~z,;](e| ,$[,F [&%0} 9Nɝ~0&o8{Fhϼ:'OK~J1Diڊc rboZv1> 򣎭KHƋoKkk̘~/Wzjx/DžDn}S53o4$Tbkk<5h.^K-I H̳{ - wxX]] I"/Dd90.i>Y%ҫ/qǓ%ĊN|aLh!L j&3/[w ?<"i9»]Xl~QͬE]d8V;E;(LtͲq. B57.0Xv奨fJQ")7ǯŒ(]vlvSl~|!%L۞âq{!*IiPR1GnIҠ:AH&b <-w, ](LѢkq#:A+KMe3%9dꦖX`21:Uݙo?Dm`$Ciؗn4-&1i'v ^h:3Ar8א9xs %8Z=naW |쥜Vc# "Ud9SӦϐaV~ZsqqBg ~LwD Ue[ e/;ogMF)~*zLo'Qn^VwȥR#Wi"3 tԥ=虙ATarn"GȇA%Gk}ObII) ؁z3NrmS-GW-~=!&<PƷP)nsJ`QWȌPIY^1'Z'UT ÒT7wtЅkj4 TokGLERU RRk 6(_g$=~.\7}6B P.u}ŗ,OS>oika:r6?ޛn+l?x~ƉOLɖdD% C>?=O'Q'ͯz~ЙVJ*#'U=IM֝$ *U lef%8txAMJ=QzĶؔ\&21C{{}EF0*p0nQ/_O]  8K푠p6טsqiD-[AXƀAF쇼J/,/PѠQk^l9C6'a}pO9 ,[ߊ_ɍ$)#&1E䠴n3'8}Q?C?Y!V%ݵU `F!yE`GB7$mt ?9:zS\<kv#e 6|-GڏktiJ SX=iKVPZjt 4E=|K2I `fꢴY_⒑rsHO~od~= q=w&p.3o=i?`:庼=-Cg2"Lt=]O"Jr5־P9A"م6[!J<b"+0$F ZO19>̴PLv8bi릺_l~شޝ\ic{I* Ea+E'gMTZ}! 6QT5V7V@ӭf1bQ~ YđVm315277vvq.%^u1z⇶:it+|tlqƒcgcĄ;y7{BNAWf ,W銇>E2#q̭du_  j *a+/D9bW*.X Ÿz:2sFjl A?o]0d'ObQws[nFIR13쫷5֢H5/P#S^cNp{0x2.)_jaxnO&mlӬyQ%ggh&uCuF#꟫04*I,) 04ژl=k[$ed3ǻ$운v r7rIf 胲j bv}n8tgPU=zjp/djRoR U]11zmk9o- 3ںU+.sfSYɩk$(4$ Tlo2ыV!9n1 miZx0֌"Wi>cY~l5^%0mpHL')w&Gw )uvL'ܳK?v ȟq~K^ѣ;.ѕ|= (#[%g,ẃ" c=m)df31ئ~)Z yox*yu(UϮ7 GCȥ>|/|v2-%ұ6"`QV\cvjGUm7y g+pS(/5uz󶷔 3s:UHWxz%wϤBʑOGuPL@R$jM#\C\);^g?URsRc_neji)c!ǀdXo@qa$wwh^R'K3zkao q݁Xc?jTg)f[Xe+1*"we[lS[,?)meexG رIWvBrv/z+$"}dVPJd òT/XRW˶3ItmiPBMuG'_f@ZXTZtn\(z cdګL]>4^oȌI=!~S@R!P\ScOM>pnĝMUA IjNκǤtg"6\Pѭa7Ljd Rcevq'P-#M.oʵg()qbюbFg:;|,*\7s dO?؊OSu,/MktuJB kHZةՋys2rK|蜈~b|G^RcpQ;P ”RuJBπU鸐=8t\7~~">o΋Yy,MFւ-S;TfV r#7se[Gb9\ލW?9xkZQ֔t_KDe ^Hc枖),Fm:Nh>#B]鞤E!S8=Qi`7E,dgYg'gm^=.7ОFWK MeJqv,I!!fDZL2x0֛ 'ewrv;+4(;fABd9qI>|%N9PY {yunNtDRsr,p|0h>CHֆ/)[Ո%GT|׷A ү;农 fѥ 7i}OIjd"6H}zZ[ QBajYAv럷UeNIs{aO8$~II÷Ȟd,V^Y4ja#st1yj?r~նQ@|sq3m*u _o|A۪#S&L-C CƳO, 4ҙ%3U.ަz߻ogCCF2v<҈v`L Iva.y%=\^t@䋱Y*>8:u3%Q <"g -HD-@HsQ+ouF:>WU{`*qiY, SC ,tz <節ߒ{$J4;}þݱ^R_U)g1 cQ0H!DAZI^t[a%ϗͩU.q) <4Cдz,>sw<&ѹ uʷAqFX,7x.ZD=”_0XФˣ0b'޻gUS |HwU}raUFf+J]/e}sKBӼ߼1|+vі"- jՖ,! ˳Jَ“߁;]<9#VI;Ӈ޹ bƭ]1;(lWGze44[ ;T/޷ܰ.Qoyl6dI˝k@!Vukwq086Ed~#3yX 0+Sf/U4j@{cn Yw]~+EWg|(}KcXqٌ?stZ[]uPHǁUkbғ|%P)MӉY2p!<<4 ),I|FǷ N~c4:ZDoܩ#Gh%`su vv4c 5DpJvlE'+~}RV[5h\wcWO6%UTwx%;Z2B}SdUi^pH߄\1aL4hzY^i:'Q;"mhk#A~) O3͔$b=Xvbj;`(l\_o3XF` _ endstream endobj 108 0 obj << /Length1 1468 /Length2 4514 /Length3 0 /Length 5490 /Filter /FlateDecode >> stream xڝTy<&dV3vʾ/Yb 13ffl)KdORֲSl,}yg>3=\9:41RGQ:8,I 2 kPpՂP02LTxP 4H}= ?<  J{vMޏvu#p"X3MtC!28 ]," h= h+J0TH pD("BB.h$ KB1 6pxE\0b[ijYffZ栏q.$2H`e.p <`hc@K"JDBz1hQ+@ 5P 8%z;@0qH8$@`(#|hQ,QܕBA64ꨛ2E)2 d!OAIQ05 G9c>w ˑQX zqH2RdK@Gbp&`ȕKQDP\ Ҟp7( lSa0y@M sЀ"1CT&'̂8pѮh" Eɐ(O88`L J c\_B .pA 8H  ?w݄OFo  rJ NtIpP{1~G̟֨*ČpO8Oou+8P0MA&h pcI>"Q 2G#*aWEȄG@*4<5,~ƒ^mgC8:"pH4Cp/dd)Y-r4PoTh;B #8Uݒy b>ge&Ty'&s_oT[GwP\i~fR&Wꯉ;x9AHJTJ$*d[a5iT` Yqr~?hO`߭w0ew$=-*Y:$}JiQ""<vQ:6|!/[ <ӷ_Κ)K?qlF'w3ˠF!-~Xݲ6)+}6u x.زR՜tF =x._ֵ:.ENyW@sI%Ew[s}Lb^R%U[A2,TEe>՚/) }.o/H2KL(}EzLޜ`?XCK{Hxxs/5%1RQj 0Ըl% ˗/tuLj\rtO& Db\luO}v)t`Ǿ=95Ys}T3]DݺC[L8OYirJN-bo׋WN6<VU"bUVU  s[s>"VXAzJTLh&V\.4z|kV0LU-?T:v] ?ދG7BAkw#Np2T멳3ƫqnpᵦdޓ d-d=lTgi^(c'bɁ?/}2RkAlj,fWD<.(,5o~"f&œ4nfޭO8^8W&箤Qe-=IH=}ӶהLnfu<JSȗ1Y2244th-;ᐊ8sq<ɋ@JUzfw˯8OfG#z_;$6N.2\iU:MsC4lr6׬+cJ%n3+lN*@I=w+Ԙebo^@3[N;* #j66lKgqm/|45{Tj44Am?^q|hgN]%8Fdo"2n+3Mcy2̵uŭԗlq3Z{7S2ճWՇn [FۦgB#8gd^tmeUfxۣU0ꄨq'@UXDv堈 ы~P Rb+JI%󶗽Eʬ Ikca뢕wvK5+x(?k>suf;ȪzaR(2{Me>*^:i}،,-vi De<'2LJѓY^*u@뮿աu\] 9&ɋrGFُkfuueSW V>2d.^Pa-HMCfO MFosn19U qWi@uȾ(.ϐ6<6:WђIeH%>cY #8W*.-.=(uD'veM;RkkuM+$|V;;Ud=f^n OH$蘇9IJܔR!8v.Ӹ8(}sNt1VAwM BQc}XB+mWǙm;4m2YV|JpLUۥ1Cqg^5y]Qpsk蠆gC[rX'ư5\d2W:k?#Ӛ: l@<ھp|=5 T[9>ELCP?-c;YH;}?՞ɸbYj4duLaI7̦fs'dx ~r $eۧDy4eM dNx]T#{-!骪]dީ|1őnT.T.wh,R۸0o&;Vtt]\/>ݳ9GsVW^hk;VGoӘB#=8SXQfiuA۴aDU^9XrU AWCi0h8@^6ȱ #Ҧ!En*)]OU* <}~yAtLPd4 1+u듸]Dܯ5re!¥SgMEMuL/<;#餝$::hobSىōs` |@AGJoEn7zxV9|Q;$Jf.}CuL&xꮠ=aUsA5u[yJ=]EjVqPDr s-G/nLG:vOjIojVw?ѥ0&{-7Whk?S$E&W$g['&ܡwOu펺n3Ny {Xvf{P{m4>1^gob'neVFP*ᥢ{M3vTlZ}z?ql@w'OWL'мmxh+\d؇jQ7(tiQ#]G]ؚt]ꕡ=oJDCPܮIݐtz{f&,E[~ ɋd6`Q{J4'חZ邩s"qE7O>U Qe/tEM ΃s_NC{tc }Qql|g[{|kWіBV@5.^sBfܩXJ/i%%YZ y&?0(21_UftTn2UvwآI)u!bñ,-l!dy%ceڵ/ב5CӘ?u؝&rs=$s8Cy4Qĥ^\BqQ"qwĪtx{N42S!DQ-q.F g.(rLkHX5똄ܬT;ډ!x@LU@|| M]]"/`)vYB!N[e_N6YFzX!7Q|XY\5djrȡ#.tY܈S޵['<ؽU^gQ䉇9C;奜d/y gvÐY¶MoLߡW04uM |c^z-KTxQ?Dݦ3ytR{R40fMpKZ(ϯUByFقKǴI"W+ޘ&}JQЌPY]q7>{~*,1uPWP5{ثMj> stream xڴeP{6k@pݝap ='Cwz55r^wrb%Uza3 PdBW5wffٚXE.V {1c h`abF HNJ3'@bdP@.&j=Edea'+=HE2Ʀ6 wg+@ArZ@9dPjUUT*J U]@NETUM] &&j$U[qWVVgfs fOF _jN ,]\x,\]@N SrlN@[_q7{/%_@h $Nr{/˟28Hciholonb 0KQ  'UNIo"+ӳ1v3wu[my٦ {g+gḘl;93+d jrgO/z=_ 8l&7ٽvFS>1:<6 w{[ٛ+PZLEY]L#aj'_}GG^oce|Cv6v\\>W!0s̬L][}L.mopKߪ;|F}>@39%jk`lG=fc Ck,a4Sr1WM%v1~oxa{ [y%R3Cp+=3 bK|}/F E9Ye_6 3+{ ;X]lC w9D!NfQ?_ `T04bzG "[7oh777`t|7No_eWk&-῰ie~.$0y<8,d`~_ÿa,#4EX^['7OAs3V` hB-Mal ) @rR<EZl~$TNݚ) ! ek0/uPdiͦƶǎEۻX&]'蕵B37a8~XB[w-ҸWxf(/sLơ }b_G/ %pp'lC9[PuiA9E! ۱s ŝWdH,g9QtoJw=Sj~yqjԷ`_k7||O>JvY߯T2ؚeĮqsr L n턊Xo%WEX6撰}aaR,Q*Vtp^=|G3 ,w=/m6؟xA\ <癢)Y'(ɘeqRb6h_4xґJQm[HKb=܁R¤”u4#_lg Q^l$|b)y ~w)vuxɻpg)XMkki=$pOA3AH mn̯Jk'OU%u;I] =,јR1+ѹpv{TURG%Q$<Wu%&L{>]ikOSr4C0ϒs ~w3~\G 0 I$9ry#G&+ѳFQ"z 5uYK@()urʝK䈉{fyJЊ#*@IOM~jmp";~``D\vxxu94_ PV=ux_-<&^nL5LηOC7琛:L EF9x:%-;&NM`#dm^>hXQ|t Q ʋ/@-{"'UM7J|*I^޼ǧSf98I&q;N?\ھ[]>ߞ{)Z}%kws\[Hz!Ilx}WdR" Yd]莹[_>JU1|[`m>'l5F zo\ cL9⮸*ah=7P9z.I]dϲ&GQ4T/f=+zY]S3Es]AkД \tjDۢe~wlc W0T2n #WѶ-;F(hC]5%:qRn^4t <(IېCH>4w7Xe%o唕u^J^#;(ZwV͛@%ǝʎD J\Pӣ&o͇lZMv]LC*Ym̕ WۂiY4Jj:&8nʦ(I% ncf19;_ :fe=: ~pȞ]lmuo3*Saa=pSV$# KӽЌvV+OTֽr[Fp/[ SD0&33G#š ?K Et%'dBͤe c?6)ދ])oȹ5P TT"j!hG#1׷ ;,. $ I҄Ց č ٔEoKW-i_?L7 v G䧎-ƽq`b4~Cfu-).V"HT2BDZΖt=6tdh$8N4ehaD :cr ܪr-ҙi7I'FD  g2A8:kn2H@TL:pͨo6D1TǩQqƳgIDDzj)d"ޓ(GSq3qԍH~o E(hΩMcma mA#fgÝ - ǀe-cqU^q԰eEX}_IG:D$~m0gPcBYirkӦ!OQjS!17kJAG&A\*'Mr8r|^w)b TWjX'Qѽ3Xn!mTFؤ`S*-@Q7Φd@; ոM*%B +u)ϑG[_"*O>!r__a.9uV<ӹ|D&@KU'B6^vIH ?h¾ T$Yȣ=N=ݹk!7V,oSQc#m_&e}#sM!& <y}<Қ6:|Fΐt| ൄ*|A,?D@H٪jI¦@@50 ~= 61ڛbwhRL%Њ? LR>MThAꧭ(z^8(ZM{C L%. 8Dg60o$S; [+54HwOEɂ[-nޒ."kX vt"Rt#]KmR0TeskDZˑ6F%Hi@q,1Ɯ q$f.ƚA(nGj77~WO`3L )}B}ʪ>3Xd}t[ [jG5(+ [KFP/Q^c)[~P)FPj] PeL)-Tgr H 87ߍ4DS,eF]^BExovY>Z~ǓoW"]vݮOdvK*|w@亂 % oՃ)> [դXY K%.=F,h8,-.p=U+o9c>)Ue$GVXr X"Twb#pV s!NH/$Hiv#gQ˯XhS"gY eg%VAڮ7 ?Ul'"4=n9u|J\~5gHv̻PsPvoiΞ&Nv wQ/fV1 ;bz !& b|8grBܒ1 [ Y;-kTi[Ĝ,uVgkNxLñr#xUQi.i+/VM^W{+Wbip?&4w7-"BGC -ѮQu'p [ue3+w? cu C(t|KHᎅ 1Fx Y7& 0;ڪ"Kz;CqڙkґDuU[3 j3| Ȯ#/ԱN&Oe}M'~)eRĦl3$CG4~?shzѪ䆳-ؑwλd?~T_-S(HV(Vɴ^ nSQZHmV[aOغ ~C]`Yepl1En腉l,וoDߛEQz3ae`С?njP܅QzH(iݢvVnU|{!/o;\{(}T=dIG-FjDI ɨnz&?ݲ#p׎*R¿; ~k"4|>Z.ʺ!,ړy+}7>qĂM$M+K$MُgrHމ5}F""ٌ*EUI _=CidH}z!g<;1ȒL|`~rWO**u+MH;=7'%~9pB7he|"(x2x1 2w}'M(reТJu= ljIS̼@ڐES 'L=z5̣䚻 m_iS[mc*g2q ,%> D N&KE ߊ^ȬSG)B.Mex|D:4h NDRP v倩NSAVphP['e8XuH%tg 2>Dsv_fzQ= D-u>f9Nagp% LqGx/?a;[\`eЎln —׽В=H8LXepecimU2(ēJYlsa{x5VP+cBmb:Td3'jfާ$uqҷ!{wҏΟot nxaÆ("ֺ "t`&f#*le2EBv 5tUM-UxA6j@i`va4Ǝ RQ󁋅Ve/ i@Wj/4_CK m~W|-Bjm#q)Wb6u:qLM.foj/ɵ{IֶI`64hM/wEO}N*a0z@M⃟3q!B![*?ug Sj/b^6Jnnޑ(g}A5]dۙ%7xÓI#BW*|u-tP~DX|jܞeXdu!I|vg$Vɡdz&XN #*G߶Ű{9054 `S貺,R+^eI$ _/}$]%b*q;^ \6zByIUXɽoTsH,tQ{)36uBFC .m G${,w!n./n!d׆~0z9"[I؏o^}N41wKo)x|C5;GZ9//uʔܭʽȵZ̞ܠkEsJH -mS\iJPoBf/M1xXۂ]ST+~OER $0`FFΠ"*F޾)28MjT_nBp+rj(ɺ 9yn G9l-s2=D͵:|λj: ]r80dգ:`vsLFki^\sФ ŰҧQzY>E/F=LXJa?ŚxՃ]firDh濅_靸@\:b–)O"Y40x>I FC tnI$ͬ:j}vbU3N]>8a1IJ(#Ogfj7ZTn:P-] Y/r:$O*hyX`Wв$7ǁe%Wer)2 CS(U rzȌcHa]r`D)G) ч)_k>Ú~x_[檯72=T֖'etYl l-忠Ni7MeD?-F :ÙGsr\K]&>^Ĥb{GA+v{jBe D3kX(鲈#5͇B(S_N82s +B@Zp62tz݄ R̗{o}!/82y$6Rf3 13mmKLKRވUD߰@{v,xv-Ub/=n01S+^CQY$NRRۤT |bV9S9Nj[GI%aҸ>\^kANj"#jկ9xinK69(3&G5H5`aovzj&;9*z쥙-c7 6 ڌaG\@r!@sD5oEK{5EWL6|'ǎAR &mal] ɻB/_:a/g4ƒ"EΓ@5¥U4WiV-}>Xd[Ni :"+ukCV\2 g/GxXXĬrRתSMBsCsEiaRR(eF \i{ŞA&O283+#)yԗ3Y" uInFud"+Hg*X٨B}5qz4zNS&.H|\N}nu3*Q%'I@/,6lR.-X0rUa5h=!HW:G6vИ@ ]oX m6Sn!;%tCZM]yG]Rs)nݟW1vG3EG)p.Nh/gC}@ 2mjdA/؊ohU? tbwgDV-FF\ۂ+~MWƧeg9P*z2{&~) %e׆4r3PJqB(I}#t!.旓dܲ¶7>RMڑojC QH'i^uTx^F.xdx=[0ݨ3%ںm~oo݄Un)ʐS}"/*UYwZGMPQ~3lk@5 aNcna>̍4\.i>U Bŵf_HR,_mkq@; _(p> sqA3 fGmS1RmSYCĺ4R&pnf>(k9ۯh >}pWW|&PTbSg#Ym/*T$yoch}P]۪R4̕OA-a%'bE-0Y֥-݀ϴS<# fۿ\|Jb露0 J"x}!!(?|T)5 h]%1~PT Pu\VJFv-ќr5?nq%7<|7dމ-F |Ɋל#|'8rpIjv.1V _+6aœ(z4R'?[Ũ<׮)Qc> $s@ s[vX|?XiDhV Vgf2B YΚR@&ƛ,Wi\G*r4wjB3kjYa'dNv)bťD8/wNtQv2]F6Rk@\Z؛sn'I*3o\gul>}N{h\x?&+ber[冸(^K+e ~ ŭ%}+<8Cyy4.Ho~50YjKtuKp)ѳt_jdn?s>#I7#!hy(hlplJ( 6K]WĐ6~ʔ7)F"qXbs.8ْz݌8rհТQy`fANud|IP3WCu~廟6^ulK9oEQ` D2D=-5'voѧ-{|/$JD{f>C$K]Ϸ90| H<%OA؁uZ0I?wDZk6BPߣ72i.6ei?Qf 7=@8'>,%R:٧XNMVkcJZ .N,upMh2ujݏ`*Jo6*{WH&S@ohN1ޥPVU˅;@.rU| %nDp % -1Xpy*7*+kcBfѾQff)]ApHv24uP%ܘYsiXw>[Yvp7}>(WHC4xTd)[1'A5Hqt,(W7DN3$64_MZ p5npI%OiŭcЋi_r3 ;M\Z[tO2U5Dr];k˲R\*L ZA1G9Ϊa_?/cdoɸPO78VL[yW#۟eLjV9\evhES~1nݤTv4}AtP{-݃!"+f׳q4BoJ!cGWJG{ҍal 簧tA7 T$)<*u9Nb&~#ՈB;)-B*|$O>]`NMcxy#!%TXG ݋֤̰({[r[ʪv>Wx6Aղbb[oEZI*KGzo/=hµ1~SN^E$pI0jdaCݽ4R݆)4J<.kZ1jwck8cw nstb0td7- u|gQn ~ _JCɏ~\#Șa5peDsr߰P<ɿY0 c[rVv ?3by{'ra֕(Uxӆey&5fNz!ʅ@o\vj LPv9]:jSȭVÙ_ie=͸ B\h&Qq%o̗ own) FsL*k6|v׼~+HS%Lΰceuo٭ru*]dٍ6ZbǂaAEay^֍Tќ> Vc`Vc91 Bw+)Rϋ y@OG3anKDx2#eNt^JXwZICۘ{?NG nfqawO.t*:ʾ,|j3d9BV3I6؈0=[; s.&SIG7*Z+F?H,OUB( כNlE<LwSCkw_C'90W;YruIs:l563DpD>!PĿ<7Vɗ93q2NиPMpɔiFXtmmqV]+ +V;*Sd$0ko t4]Xn X<VaJAf5XtU۴e4T<%؍NUnѩ}}Ⱥnv9  HfWP=2nGx ik),&B..oEā+@TKx%n%1/`a|t\|rdvU'p.ĶIbq˴C%zk]ZāM>/U豫M/W MBy/ );G,}!.nI!G_k Ŏd۱c]X5Vn5GK0ďDÌfjtƾ^aYt 3i_Z&=gkV% ]吷HD+e? Y%A ~*6.?y?;BM.y1w~_FI\K-r~Zߞei*Ylru{u蜋j#;y,}4S麺趃G^sXJ<%y~%}_c< _L}X+j/% Mz-#C.6b6J臷;qL;ƳV?3u/ŅW*鱙*XOuj* u=yӗg[[39v+V伓a5?fbnZS6/V) O Oq=!2@V37,iEBqETeO1p[/kvF=EQߛRxoo4m1*{ 6] =uNy%(9x)7CisT Ls"JR6V5.-o o _zGq1BD 8Pc צ k 4wYHpfyM? tٙӉY=Ѻ r~^˕IL.X~\"J'նu*i~$7VOS諸dn[Zj?̕ ؞þU \ k:q\|‹?)PQy4H,٧zvM?@2-T_xF>'}]<-P)'\U.d`Tcvhv1M!H{ EH"T#Ud.\+K`|,cebk(#E 'Je橫z-A[rp\'hazjb6( ?e`> aGq6]0yuC <4&a^zjxsּxG?<p>:hHDئl-:.tiWDZ`4KJ5~I-}aB=2-N=izP)%2,ĩf߬ppIE bWTT r{x<߀B9n9>21#nmn*V@|ڰcn["O-lç>|=J+Cڟ`kD~^NՎmu^:ueO$F0yʷŚ$$tˆ;ƄKwhg7̻$_n]5/"}bg6.mUg]!e ٕ±N2Xh+:5^ K^CС,9K1zos+Jl1䪨a 7o$Q+mhbchUƋ)8g 6Uʖ]ލx2~s\9Tmnz S !8b;Q LI+bp 23)oPo,{4OaiJ!U{GAz+("Jq$-3[_pR99$ 1f Q9>1!7ˍyTnbf¥]1le_9jSe?͉%aBYTB8z@74"!M֡-YXS.9S" t񮄥@oöj?inYDY=B w~f/WC*RZ4Zd@{GAfv讃Ռ4t>>NZp`MfȷYO`tcY?!S,(zk.,[4K~5FNgWL<^B tuʟ[ ?7-EMq!R35]P@Í{ɐȂI>-U}W*rF󯪺:< ]3ʳO`.zlF!.4O#N%OΘ~(['&ҍr)Dq^%"QwULx)Dn>WR3d(C-OrkxY%SH'^_uZU۝8]i*4f{pˮl>dҋǸR{ ?icz_ڃ .%`dz)KSs \J \`HHYU*Sٯkn0lcV/A+ 4nPl"1G^H!=q3birZ}^?}:Tyt(Y(8wM_lI&uL-q,d˚CnNsִrdQfe % 7>`~<Jh-8 qC} q8qfRS=jE>}r/ =wJ/Nj:Or&Mq y 0.0e78+lxl7!8]zK4\CcN ~\bot eTBly\UG_aҪǴ붃z^v[G'MSq" ;9|ς~tF7Ŭ[[ȶ~S0F%֊MŒ}!QNF{6^Ċx&,)̬I׃|ߥJbIJ^lm @󅧧&[5 DG֛ocD-*оMFq=(Z4]R@CbԸNyj;C3Bj3BXK > G1%w i3ˮBd' &Z_V`<ㄥͳlc> Ҳm[ ťU'm{ϫkugoY(]=a`Gm͵&`MU]Z}{疵bDxsT - vzfKj [1X瑍ܒC{aSa'Lu'PnYRQ-7^=nPEtn%\jog^3lO Odq) bA|R5;ߋw|@+Mn #c)/TX`dkMn-\?q9 E_mj/fAD.?W F*‰pƐ5> u/{C,*]Gβ+*|+8m "櫡oJ[y8^=I<rJw"o]{?3f y_%5 I6KM*SطtZ܂#pZhY hŖSА9twPU">lqWɕT *zi]1VZ{|9(k͉y^ē}U`|OȚXG=^t n 3E R,ƗB2/x,i^ vp>Q.P'1m; оRbhqsnF':`jN55sDwsV$87hh.9laxɤ{IrD{w90;s, 0<]_A}UYd',hb`rroO{^=Sw:5,Q^iIl͸K)6z-y9 YǦ,X^}a&\E[" ,p;l=; 7TW=)&kh5u_ΞIŻy4tźi!Y3XkL,SIPOT%tSõa$Kirgn$ A.Wh)WѢ, ];a֭wg10ٴ:)MqܓBZ/V`DjC1c̅^{Ή{G\,)hZS|V \Eyj Kjtռ6Du+LX] ȃ3j ۃ|c(2{,֦ kOOeBցrZ~4!]| E o46y;q \á{Xױ0q*c?"+Zu]tNRl?g IԢَܚ:!\r2XjٝŚ!D%Ɍfq>^Q8L9ܲ$R68 .0{|мL:Q]˝܂0hـ 3Ta*J6ZBRa^JVpS+B ȱr(:[Q5zVH{w]{tm.͹  G=0kyFDFd# ~z(V&*h\?x&pNФ .e0pײXjqa_T~W. KIknk[]\>JӃ}rIəC&\a4|-Li>m^3rŻ:Jo'y@wߞ!lЯmY C_spaPM ˓"$ %$/JZb(>9S7os;nz8-G1ؕz&n:=qTP,[ +!)/@t{Tͯ y_uQg2Ҏ*qbJ7i~|z$ݙqh_w^7L?&>n;Y?Ń̢m7 4(\"=>A}x$h$Ga#ŸXf.B3Ԩ˕VEh *{%*NHɃ8}+5}4,9#s1= 9"MaI㗧gT  !h5 >^ i6ONoKDhdzArkؓO*3geζS',~QS/èc>?N⬉PeK{WV ˀ<0Of&OjZs jzA.4DžKXׂ0T \1fo%FAv[#_l3Zz3)N#zIIfëǦI_5é bAj!6x9\e,(Vaٚc=͏gE?C/w؛?o[ߒM0òK ]co*7 i5kYˊsԭmd D۶04)<@~qڒGVP=po/a"b%X7"1g`T#dvz~/+6}g dZӼq ?FlX 4yG>}Pz[V\ק",\ɛSoEلp('gKk@}PB@(>,TwΰґٻP\j=yJvCxiw29RqC_# _8_ՄM б۪2\l %w/l/FՠY1 Azc8ݩ86.G\6؅JrBp,vO ،U Dq< vbfƱ7_ B {?u[#nR>hIo3pq[E_9g.z`bQ}eD1v[ČĻㆶ=JA CtԤh)dXF#@+]3&ty/ B9٘G%v4?&LjaEJ>.J* 'J[0 wWѩ#'2LGķQ96xB|Qm1 hL?Hqr!JLk̮8CHNf٪C׌87џ ڰuKڠ=tfdwZqnAM]$e"Fw4ɷ.V酡BnзQo2zv{qr4mڴ)Ŷ)\+^P [$`vx nԑ{ ggs03f͛~h'q_ azT(s>w>GL-e +U-TZ>UykM=J ՗Sӥ"Ybj?͹g7$ -Ŭ2Y̴ѸT@b":e>b=ȓ,C?A(KE?mhߚzR(J {3O+2r 2bOizDԈ-a;O.02O!l>{1Qvmq{dwm@E{o3.<֝q42`R3v> M_#JOvGZJVw E53xe QXٰd$T*׋`IJgm;F?=^isIb"svg|>$(\o^b֮yRH nHY49yZ:un'خ>+UyurԖNar\J)s^ p< 4"҆`b&61TKB.^}K p lj,{l(_"Ţ&A)OVp)V&Yi]̠̂P,U͈-ml|;H.d8zp=3*= .brl&Ifx-#BƠخV(4|/6F*=[|Qa;,w(ܱ8&r@;^17H׀ZP%ۉV [o4˴p4zeKx#'i—˶!ZBR{ dozG"1:SZ_Nt&CԽN!ҧ{cS* 3DU2k8tS@fmZWkn endstream endobj 110 0 obj << /Length1 2244 /Length2 27033 /Length3 0 /Length 28330 /Filter /FlateDecode >> stream xڴeTZ5 pwwwwO]%;ӷ}\:kEJL+hdc21pddemmd@ B6F&:8RRa{>ZD0p12110p‘ā@w 髸ûhmbf |wu731c0[ oha`aз6Hl߅f kT`c PjTEJ ʔtmmm8 @DPNET*6ڛTqUTTeSw03M SȖٙDgcoBgk?S3h 1F@{V cfvq꽕Nr7'@Jc𗯌 Jַ6|7zF";!o{e:b֎n.@%{?kffLVPNRLTYV}iem޻cMre' `xOQk#a+wp'b'+GllfmdFfv@I1~-3 bhJ'_GGOw[[To023V+ _w&VPA)w+h G/gzvsӷRWGL F,m f4R0%As/hmb |_D̾;f,-#`K|o}zIU1aD m̬MLl}{{}W8)`be31Yۀ] O=ܟdc b#F߈ @/7zz^o W|q X9ޑ{-adx`;V祉6l'c7si7dЛ|l^ߐ0Gv2OLQ#{Q6,!lP[^-]a|/wZWO-djG+9{ Cro?{r!{׿u?_g߳?_XdocT73DVdo~1J@o!!wZV-3Nj诳}@ nqƐ;,o2(pXwq<3έ ,qjԓ :FlӃtEUuiXAhmK GQDzN%@r̽yV}Cp(;l)T/Ni5ͦd|I}\[EP& B4]cS9a,s>)G`GZ᪳ 6uV~~*!jDO!o*2Qo[ax'VP{ˡx xЀr"a2gŊq:du:v0kxjs2v[۱~mw^] wШQ!eX ۃY:9ʾrew1 g5nmVRN.O6;+T_ ChBT+I ޡyDq#%=*gWۥvtZO3\F}Er=iM { tX"jF٘{Ɋ* ]B3JX4j3CE9UR!u)ɡ7ďÅ'qY.gdf{F}@/^tǩ)ݟc6,;ucn~li ˜#6Rk_n{t|4QσN^l D<*@ 榭gYL3f1c¡w"Q1RF1ͥ&N+TS hlк>3u2{/0Xf/%%9gB }n؍tY=E)Slyde:uө3FYFnIi%`\ -Cm/Ѧl5 K-%Įܹ,A$c+]ܣ,¦|Oh'0s*̴aD̑_jV}xɊʷol.gc0߶aH#*Qܘә$[=cz1h dzLGV~<@ȉNKKe `MfW_4Tb2BwUm^7oƘ7pB,}7[㎏oQ-B9oo%= ;to#;eؿ+wgYsz3 shFSA,G,F?4 0: xlaY1*|A_*?Cbi$0c诠V\B)IPEuEkv=v_6; b HDn_97};rشÛI¶3E ,؆Ӽwh(O]"iS1in*MeD;_((9\>|J5 9ꈟ0EhD}A[͙H85+.qv r&]v@&˿F~J,ˇG,\k=z7G]X,/Œ ҉QIZݮjvU?iCR;>_<؍n;f-?hXjscD*ӢM)li2cث[]M/IbΤu&_p#yD? WAb?xd?x,2OFdr CDgHU&<M׶;έ|,;H~_Gd(.篗@(` <4QZ4aɭ7 E9P>K_`㩤?+C)Dr'<[#֍\=8B$tMF+tV/Gq\ZVqEW  Tbi*]˷l=s#0ˎ֥=Fvf7!bc-,oI!}dHu{tйV`ƣCi5L->7s,Q猱aN-kr*J"qȃtYv\϶f>H7Ѣw֍)A nDʸ̥$Zz΃=hu ?|9,L27[ &7ջ!e4vYԌ,8NTy?JY|Mכl\;ja: [, zGk.|~%?fEKw'+ [yo( -s`j(H^*PovMs}&Dg 6mZ1 \l NF4SYhUx\uRNQr-H0_9Q S6RϽbf#ߜ4oD÷e2_+CĒʖW(;n|5Hk489Vr|V y"1Q5YsO3d5h-=O:ya=ɂ-;*M)v6]xP<%Rw[mҴ>9퇫@-Nl;5m22z:=eCys3b\q.}jN&RWhsF݆p1PXΖ(s>X't{%۸䛬qəH`rq|i6:& $%à}S``?!QB602Q4u$C ō&340+&NibJ p&s5L$îˁLi!߭u=jpq Fa 90El*.zxJthdYagM6q&'yKq׮ӨQX,AJJ.ySmɐ^`$^P7=IBngbd_,SyP3F8!Y-*1>Fl~TiTc3 njI,E7qd ԪF/Ri.sB@to7Buv[ ԝš+p Ź1B{(V蔥S]wԀi&C֌1@5;JUGGH-s|suC7%/.to_?9ұ\6C|OE$1~4&EőV%,Xjoa3 Q|5ȓiWgj(-R^~UxMjYa%yS]Dmq%Wk\_cx7s>aoNR0|-Ļ">+܏YW0ijʧ+B"־J8<2-Fuzf-))K;gcÍQfMN^_W`~80?kԗu? 9*.;T%xoo/w)Rjߟ5dߘJ{^R[{`#`>m#rS LO1DŽG,Q5ZV~ T$GKPz̹'Kbj"~]+zw4grvo? $~wwIe`̅i݊14L6ڦo D>k^ ﻩggQ"IOzcU˧w),=aQ !SÇ:0bFɤSmNO\RΠ@ٓ`IcIhN?w҉* r3[vPvTi4nG%ڂ\Χt#)n-XjNq2˩vk|/ߟܿljڹ[j,qА=;Ƒ5Rf:"s/?<;aUK1KBgI0lak)Z!Y2 tK U~,tSt՜zr Q̉!q2?b>FNfatfJ~U|䆪evyI9u}cՔ_TRJHhp ٱp/xk;~"`F{DG\9^t!Ÿ,~\/ДִLؑvSh[p#Ӕđl܍H|y2Ms2W]Ww:Nqe#[çlvBlS-~Ot?L]KK _BnVǼP*@줋v9^_Y|N +g#jeD^=Mh$NFd?ɛԗ,+),Dk('uɾ"4/ُw|*#9t3i>OvJs0n!qH}1D}GV'`I|8fGEp^MgG -P lӞC~G>"gUHm$-X!iHfT]*+Ϻvf7DHq? %n^U+HEu0H/P2ҵ3;W_D4=Qcm\7ZnDXfgthF9.@b$ǯ#БFzV|+; UYÚ ~/q~1q-ͯkj mFEg\ ,Kur j2ܲ+{3?k~ֳ^>,Pw ;F4_`H_[\3?N7JE:R2)btMàxlܕD(ClWJc@زBEv%kDFn*(s:|w{k܉QGiiWDLTWSSti0"!$,B;'Cok2^<3,mLj.qE;G[ ( D!RE^-eJoct3R(0g3K}|WxÞ20,[Fwc:ha/3K;Ih\]'{YJM._8,/h3J}˯)ksE-^e8 ?|?hl:Xv7Fe7Qii#.:WJt-slq> | 0u_uwTL'f* v_-&z*]>1Zb Ш $Jev4x(;ǵGJB}< K &Qa7},]: @iE9WN%[K[밽h6TZ31j}CNmta)2KڼaCݽ.\'Q_Q<ȼܺCKhG 3/uh,?7;hL^qr1BT^vVF'pUOe/+V4F{m]HLet΃۳)e3^z`r4r ጘ8tEx?:qgOn^'M}qkyx !2} S H$3J{>.xk\JxjC oM Y%U6~}.'W\mzkm*6|, 4_J$\1{;l& o: ޘHA^ed]0_~- ƚd @Dih)ZX6Ĩ,⧗1F |nQh5V~\Hy<4d_>7PTDd T<>m]籝}`?R- פ$CU|H߰MevzO{]gn=Iª<7~a9lcfM2X%5YDF##;]jT4 1xQ]hqԛɊd7o is?L $1/{0qг=HVGuU.:嗦y52zSOzZe-8s8 |BPyj)A#lw{rqnW tJ}*z ۈ~Lup.a{{M9#j>tZ0VYKnIFHRA 3ԪǴ:nu n<5mf9UX]Oы)r&{f]Ztub{ GF(CymV%:py&-{+»,9lU1j mw9؏V7ꒃLs^l@< }h8a̧IډhMִh٨9GBK @:(qU=OȒbdB+_#zo " %L`MmplWAPUf/G,~$G3; yp^* +r-_tz(bU&d,O]ޕM ā{h%mc2x.@NyCuՊH!%槪Drk#>JCJ2[=͏S_(fș%.nd-oH4ErCp-r-;Zs\LěTh4'Ha%BQf!GPY&BCHYH6@T~ACUObMgPaQ7fտmw78;&P}t<ia5nk>_Rm~HkR$ =+9x!\X`!aT)=WPU[#T)r p\Iǣ_=7R2uߵy Y r~uK9NgvRPsdsX-q(o N K^#̪3\6Z&/d@$/+u;N)fA4$dS6[qRvS\P:h-JqpJ( 5v/m/}" uR*~it\m~EoK|OGjs7<%FgI1lD{oϴ1q`4 3Y㡻{^({7:)H ǀꇽիBM\cnTLpǯ2]QmOE?R(gy ] { ybg!$n$@)yOKb0s\(&㪤XUǔxN 33򬛹R$A,.^.\EbZ{ kE)wmU{[I & 䞷 w02)lץc]w*p\u*)ǶF_usފz:ӷbtw` ?ym~B؇8x wXz@LBAdpoKkҴ$U\e,w CB B_o&cXK,!&`5PyE\oj+SZr Z,Qk( \\_zKv1e@lǮx4pj"WiT[:eQy]K3c3`C* QcF[n>B]5' lf}ɦ!oEұ!ingE;*,HHw6O! {iF#g:Jm l^O/ƫD[Il$ @5~[M )%jL gmY+&x b9bo⛛HAkB3gs@˫gZ)AU"qY<ˆ}Xbwϝ9_My/ bꅋ*:a9?,Σ'*яe%lG)uNG5zFO+r>@B0R&TTERņ\(cՊ6#/jg=/Mdv8 Cχ?Ȫk\K{m76棹-26Mr&ko;3)#9shԖ@:4TXLʨA䎯C&g0 H}*e琽sQd KP`sqRO5߾z4Tg[vn չ)VZn&"l.q06TAٕQH#P ΘT>]#/VA[@-@A -rzYoH*00yX('nÄcIH$r9ؖc O}wm3~1kQe`Fqv6Wj>D,kj)Y`F0+{nX,ۂ ;uwQHEϢ)b(oD,SWS{X=]! U\Gw#9 hvڛFVQDqO< Y'`oPD^RV5F˄OFNzIi<1yY s>gz[]c!X|=ƫ9u'Edǀ2ဢqN0fx@/̓y-9t؞HqTs CgǍi^Dh-xOPAF>y=|qP0bIcTFG G9,MC x͸ǫn1>wŝ!Iyv=~ـm$[$[ӬICcjXY:%o|雂-^e`E¤ ENGQz"C3^asNr~j"/ntTڎ=+|#؉Ҽ=n)GE*[9^c""h RwvǛӡE0f{j Y$jkp%uMuM,jZ 4)W/lQvIjdENy)~цfW3gNK ^؁u}a"((ؘPe|y(KL6|$ M̙5İ Q+~=s)Z"WLuE Uó(PW2`FôȎeN˄A%oXzN(PW'~A6Y% !5;OuGu2),YliZ{RmkFmLla4؎:uw(T[?[Nݓq%B+E s V~?<{PfU1$c"W x*U[>8T$LG0HV$RJ_yl~*s'q30bOG& xM i>.lz+%>*=H gr]j?@u yus3'}oY,N)(TSڙ(m1+CA3#!yWhn<7 d{zTxjR|0|(&qȰwY~<7 Ə28$3af 2"1hTLB9dbLXf&0w+M3Ce@Ғ$sJ]21n:ƳN{VpU d d?.4`CYYG1Jd$n.YC)? ;!7`? 2d–[ϧTGf〒܎r,xƩ4{%z mtccHtj7.x6x3.Ͼ(L`n̄|֪A{Hj@Mc@wm fVZTr=|Z;J#e@qRB6ĞL6k-M5—qn$%HzB4M9jG-FZġeQ-Fx:M@Ze]OF[PrYrcqs49$Tἥ+!oP)N{;$]MzDsY>sVU6/ntYCN F4D<ҚփJ@EC:g8DN_CӹH:Is>>,W& #_wn1`~~g%yڰ}wzLl*Y1ت[,%#q LYҘ(eja_K=!oz@ì/U"Dy#럄TBf?t]hn{|X!vm^~wx8i@7jل ۍ_vr.Bo Y'Ƶb}ُ,$+LF5ڟ=87be,[ap}n!S@b}e,{l26cRX[G%F+@#1vٯ$7Gz^ǘc5ܘ.#>(sH2AuQ\R|r:Lwg@Zoʱ4!c6]50?^j9ɳZ̓!2|l`g5%Qh)w #9 4o!Yd"gGl~l`7p vg.jrF_L1 (9l笸,A#"L(IO?ͥtq}OŴ -젊r?ՅAp9?bAnXmZצkqu,a$}\ԈFhߎ2EL \jnoksOxe%R>Fyӟ32{寧r uvxEAB:062WrpY3k΍*n3R罓ˆ%6EcN9 ÂYwg'5G(|\6Wd.jAa)pQeBu0-'Mwq URB2Mtq5i7X M}to>eN(+CM$\:zd :%eTW.E Y ^ؐgON!GݤxYtĴ5w &+Y `r@W_8edUTl $0y)UYθfbq$`GJHEtMU4gɥ}%A@*9TGO;Ԧt 8tnN f 5gn~DR0 kIm:u8piR`JC7V3=#Ӈ}۽|h5CB+Z.{7YUt&Aʵ7-[7$1[ tFO"%P-{PW NU?ad)°^.5=&nO> :E$9@@UWFGG_&53~lLSM{AoAq׉EݑHo:c35;S[{~?NR|<3< k,_>2Jl)ňߑ,IH!]m4GqF(T.U{Yjls@m8@SQ3Q !8u6BZ\{ջ*]g.:e.+iƲaG ws<7 y>"}g߾feZ߷jЬkW3Z~eĎ*o+#dnRU]{*:ZzU:(AY2< L)Tp*9Gf"P@Cot>3 }//*Pg#Po}!`᭹b ^37Gtwd$+|ы_TM /l%!(aBTɔ.9!<Y ,홈G*UF"_{H@?7ҹ ص_-Ҽ=9kJâ]Km kWj_ D^><'-⇐vؚfNNZF lOu=/@bR2{n"fN6Hdo2D ;*3~xHp)S$e;GH%\KlPlSN hUGX:2{uJz {vʈL Tſ,#rW=M*yfFH!tWam~A0Yk^s/&ý8bFq~4J&#G424v9 {0˚w/ya8| v?{~@_f GZzr&Tۂ+S%*7o4fTI1 ] &!>NlOVig4̩8,<'W{*2Tu1lK981/IôZ]"M%)ɹ?R'=g8&7i9̅ĸ /ˋ']4uwʚ#0k o<\Vq6UNu޳>'.B>2~|ЈSU " D  5* e?Cm0Z߇7-"Q*2\*Mݜc&T$bwJF j<5) `2=?u2Ӏ!,Jj{]MG}!8\E7;_;kY0l%he`6ӈ Jrm!>ni=}.!Fi4jzp՚<3ܲ6u'5?9s0ѻ E˂sr7x_ԉ\z4̑W4mQa6(e+ToX HQk!NLpy*"[vzͱT0nJs='ِg\V NQ Q- o'iO-XEZtp^Kr$h۴r7 D*L.-d5{NB:ضx-;`MJhrcE`aIM\85}f??R^2c4QXCӚx[4QMhQ2;Xc{;RIs5&E lRSŁjٹʂ>: ^ɡ&8w)[dw"r*7 g{G9zςP,\:}Wj3vw-wr&6eq=e2x#{L#E#;AI`kv@!Zu*us3ޘj7V7J@ͫelFp-r6a%UY}jc s"LJNRPA G=./"Mg2cBKɇ&h3OCo{I {c@UGSvj1RaP#Zk[58Z) !J'Qd^9(2x: BM vu7 3[1)m#3h1QfvdD6~&w7"U[!`8Gح>/GeO\7SE% gvXJfY%\o`L/NFs5}, keƤ>Yw^ѧWB6Dx٠VQz왙[;hY^j; 6}Z[͐%EYdg3QpxpZdK@ɃT)5mF{( aHߴ=f~( VCH,_M=u?& X]U,ܞe̝hRQVKck35alv=n@w EdiDZxBP maxK9=ѐCJK]w}I %F9 d&zUȾ@]cLϪ3N3}!LWG q3.u*'~yhY܅,^oqF o%HɗqIYGCq߈I8JXOk (2;K-PJ*=ڹTb KEC0Iwe/vO$iv9?cuE9Cx|3h-Z^#C)c.V8HYOR,Τ즋su/$+&()NFd97{ZY֞.ש?:cԠGLU"^oKH˫|Tr:@")^&gJdZ_ԬT$1'UķC K"$w+hR&|U/$F[eYâ{Gz ;~f㸓!ۊU( "8^S"of N6hSen@݊<Քƹ$@Aה,uyZאz"|WF 5ʝWpaf|M,Ł\&EBsϙ*Ch*‰$@k3r!J;>1J;D%3;=P,Ӟǐ=};?0/& x=-r(#Z9w\27ўr!2(<4w!\~ [ps!c y>pqKW[! 6BlqGNV8JXVJVi1S߅S!>MүfypWN~rT@wox\Mmb&BPmRY,=Fv&|,fBoj$ܗ aoijSW[lE̘wi|FueZ;ߪ {<-JJRFja{joX&"W|WjzĺW(qQ"RGwSUM(xWxpB oG}[ysk  |~,è3!_@RP$3ctΖVˋ&G : )w(1>_wݩ $rYS$ZZ9~Hܮ4nuDKlgA)AK?#~a-L-+XH 8 A2X_$#q,hX/u{s%d.T9 = ~Js1Kۣ喑tj 3Y^6P5bg t)6˟UZ^t71 "1Hk10y6*L5SK*qBD=e>`IԻp] NY[*./?/>x5,+ s9=dۖ.Ě跆ӈ7_uwY(% g*{Kٝ/1LZySO[Pv2w},.h:ɾ~d PQ$W%k𧼫INA>XHgv 2cqa!À"ٯ*bX+~߱R\tcAnIQ f:l1~=ABD)"NH( R@,?`(f:~+ZQr:)`p]0+>lټ; vyx[:O}(`,ILQN-Mh1V6#2fvM g%% Yֲ= V3^d}GAXe=m~Bbgr&ՓZ-2NX"-ʜ'_bfdCVJME{s^-v1`h͸:j2]M9ݰ0DSD kYu!dK:J@ iN*2ӊ̫n'#E\Gq1.}[kc^-5;yOL'JM&CO8Mǖ?L"iˠb(5~۰ `llHΣi]\" IF&JWGfeC̬b|!yW0[ p$dqoQܲʲP>D=0W-ҡ%P k-3c$A aJ*/UToK}K)EA<=gL]hz:Ad)ʤq tm6L a vnn4۰ sVBrYT4dpYCB7xvFΓʈm;')ko]`,[  |5^O,MoU]mc=UBLQʺe[2IVkΞ }9{/CA>JIx},'FN9ܢ `; S×H݈SD R'<@Qʈ_&שPf6:.šr3{M;FFs3F9(EӇ6ڸNWZä,궟n< NFlxzg\gwݻ9f%$B9hWF$±hX>̾o2 ڝ&Nytk#ˢ$J:!vv.@hCGʆkxNn{|*Tm?aXC1CCIڳn35PWIWӑ%oY RdW/*:{ƃm}<^eMJqXOp199F(^֗֓|:{: O- RM5@5>$(iB5SE4 f1\RMY[ܡ&A`^FwPقK|t}ȣtOu6!c *wЈU9yNWEio!DTmiWk (r8mƤoIYi((U 0`A 0rY&O [3 gA+DG/8kZ2?֑;?5aây°X##J_̃OűNSf : !gL] d/k籌Og2OR5LP觶 ۢ2{|N*)νtzǜvO lXW!CA*J#!#Sh)RzuYx< $H^n ^^;u-޽'7}4BV HdRVw gj Í?  8͊?Z(_Ltdz!ZGvXTJ`(лцIW 9HevQ4Gk3sl&e/ ,xʱ˸"hmqyC"idh0h`s0[[Q4ٝ'X24X,C(FU^31?g-z4 =N.МK 4SfbV><#jN.hm' ׫1& ߏY~H9$NTquZ]A $}T4Yse'"ݾ 6>?Ga Α1$,zJgK&VP)̶|dK߬nG&=,X#uTfVvJ0Υ&XJ2ϡP4Z źl5f?l=n=tej/χ=t=ÒBWIb礱Z$'?BajY$F\޿%7 +"BOw*$QM \l07g\(E~gaS$\/))e6)~&b.7ժkh9O@|O'(P: i#l0ƅ[ OYL7{Iv֪T)9?=w;(%Çޣ.Ko("j @ uUr"1ov2Eik&Z!Ҷ3,kOrB&#ơ;%wR{pH8UZ^J;o]j0PȷsR2 xupd8#3*h^ P"ΕROImz\,`oܾ*~kE>^Jͨ51{ݰaXyj>T PauTՠx\ؓtΞә}Mǫ1&xgσ XAwo"`'j7KUDV"E2|}4='qpUZMAS B fN!.vg6$o/%6n Lڶ2D+vAל FSwubߠC`eXq>*d\苳/E-O|*s{I]V~;8 vi6ϙ|.C7MYulE 8B)L@lbv>= 1MA bcrlH[d9#CqCkyUW:fC5Ё# FC<,rg Hw5)tIlқ\+/,+ɒS*v0H5_mN|!1E`A(Cj|{dάڴ" Աtǂewc:x{4 ٭Es+(~ mE֬@S9[ |'U[J=`2L.ٷfB >r)Ta>4v7Urân姙,ay~74N>>^+1(`j׫xN@DQ ''O=}HD2;< %D~! ÖQt/Q$X ? De5v!>ld_Z4:8w>6,O-zg{IcXƩXſ/oD=tX?hr(p-Cϑ-;2tޑC מzOЫ򙸅U5#EkExKVx}ti!n]P&#OXr7Rwmȫ2:i']A$ &1;at켤Wzh(M-4i￵ŦK=̄A'k% ɴÎ pu'^@qv v-(CYQr#%/*o5#lGJ4Ԫt"iIoWgIF*b{VQK}fKMP!ygwЬ~P<1ȁfus!0Ň-Ǚbx /$2*Ft!Ӈ!^=iB)83c"K<("@ԡ?Bnz 2*XyҬLϖxomkΊ3zKic3W0,%+ucX ~'뢧N3RՉ>;'1څ;'68d |>_tckYQ/7XQHW+Om D Ê8Z"j Ϳ@c)ɔؓU|: KGiDQ% CWtq$w*ٶ*}4G̤McF`=Dmi PC}H=~ w"R}R2r@Taݎ_;.-[Yq3moAHDd('SʚNHȺ32U29v,;Ò6^Fn F 2Fk洷6XҚWLv@Y] (ߎ2`0c6O.}e4YGCB=0vV颂z APH.a]ţ.|!Ƶ 3!UZb#=|hتYtkO~m^؎繃6` (˗B;|dE* VgH~js1LלR!xw>mQy3 (6S!m>E@^f:o=|ɌDA~^iJ(dme+׬*\%u+wy-u4HdH[|Kw Q `E ?5-$DqXvm=,Ād Vfʃ$  DFosT.ېkkNpK).6#V endstream endobj 111 0 obj << /Length1 2292 /Length2 24284 /Length3 0 /Length 25632 /Filter /FlateDecode >> stream xڴeTZ5pw'[P܃{$[O9{Gt޻(IEA@I+#+ @^AaTZٙ8ؘXX8()Ŝ& qW  dn‹@ :ߕS/D 1 (\\MM\@Kk O vF?x2dMlA.s,@.Ѐ@+; hIT4h9:@\DQ]dHiyU:d(y7 .,+b'pzgڻ3+WWG>ff&K7W&%_ԭ] g[3WcjW?k6:8Ioӻ?'ݿ.@2qW^YY`ob t0q0{7t5qus%{ͩEssvC*7uQ{ev>~&b&n.mrpvquWD ˟5vK (#)(>x 80ze'(r,C*`.g}}r9{1X:<|nȬ`?w2K+t=ͬ$kVYߛrXع-o>.&@矊Fsk31*Eqx%~go _۔}@ fE8gO.I7;;E{ tLi?Z?LiA&vv+[Ye\M^"4$}?vZFVvѽO ރ?d::ڲ;/YI8̭,l\gg/!`O9)039\]n~ 3Ÿf0K eF\f 6Ron `6MFf wE,݁пK,ޭ-\&&f@N?{Nwv{gkgֿh7d}7:8?9ޝA~#G-f݁`nbwwF.v&.= |'j "{ W=_7T!{z:+ ?_nʿ3em-& &֞z,GOSޢ OFcdg49_w_v7sa@O"cMzKxDt%4%/i5l"Jt'x6P8-0$/gPMm5f\Ex_EB{&Fpr`e7l^NlV{b;1@ogC,U~ezGLk/oMZQ@XNq0s| a9  vu&g/^ϊׂ|xs<9,6ӷ;kmi)NDK.&laifL>l5Xg0)ȗEKyq?mE])ey󪢴|#׌&Lҩ!y3{1 ўԁAu%oX,)|ظL[N5rI= 3MHbWWGm[3^_{B,R 7IgG$|`8ׁL]KHK)v"陋*̵HjlUpi]q(7F(f[*F\s&ȥ `xЉ ;xwGRA7s7eP̽CG-+/rSEzh_$ 84x"lxJw` o,|{v]ޘU?Xn;LiJ'd0ю8P}As"h *#3qOdʇD&o+&uќ&Ebam'Q2ne ~ _:gYm@JL$~^X mav+ә,lg -x4S0dP=Aʞ:k YT{}ul-S33[-AwW1's*e05PW*3(Zt,>;/lgM;yS=d@~-Sy. C12 wLt4-i茸yi_HVtC)Ai9,>ҍ苘rs!~ɜӀF%'.*s}ENFÉg<-hߥEEn܅L|-ލHF %?/;BkPJ0șnuCd@2\99 % 7œf}!'DŽ{^W65c C/l6gCv_T?$Ncn[:뉅3c-R6l#,@1Co])ֻvHf򣎙diŊ|().0G)e!mVR ,ir-8+g6Pа ATȑM՗NGD,n,ݞk p찇3ѹ;C N,:88Wa>_~S+:b׮sI :W JN|[|LUOyZ ad>A|Z*/]B%ab-aN^eңog9Bn Vhc+)V $-0ُ (T. 70+\C^.Ύ\O; 7&WW1 ?.PO6xyLia\LZhbʵsh^WF=%~| t]V[IZ&, +BhΕ"̄8.rdhsHtޕNSo}d O4bdI@=G:~ P3CMd"FN_.jc{WEaI۳ZuNA$za7stDZ8E/v.})گ# Ҕ?)2=@t[[I)+9X1PES!̖iS?cQw#uiK=u XfFfY@lTzsU &ö򶀄Lnjq%h,|2Vr&0pǗtOʌH%zhomۣ W 0x;+$N˸)3 bw 90rn^ R"vOy| ->IjF"mICz5 ܀YZ V⻧z'S2B t`Ϧ9{!,,'+GæI=ğ;ˑ/՟N Ddv5r7%~M~=cV[Oyi↞M {AWI Û١'CcBIz/~ >ӝKDAz8u3DI1}f_ iw^Nǥ_R -M'&uo[n`LdQ *^ϯ]Gc;Sf jyTvBؘH2%稄S3%›'"bQ)Yʠl&=oP`J5koAMW̱Bmb&ftO i22TJ`!Unh{}gҪ 8iͦh}( ]|EC E=6\Ez9ǵ'V3rdzU4^B6)J[[!Xv#=!sAX^EK|a҃U WO:/ƺ<̪ia+\D"b4.J>ꨯm؄dM`KEeo[K>y$hjE]\'}N'j ֳۦ;k򋊖 v4ұZ):H%ġmqCwe_aM %7 1RnMAӍ8 pF3Y{;X81pfV?۩Υ͛>q-9PU69{XdT8s+8>'ƠJIu!@ PaMny5| *+WS< `Іƞ{)0*[x2 =B76sQbv( *+̇BI LM'-:SP)2tV z~K Ϋ^*|ŕ\&Ƨ!Ǜ-pcLO G+aM܈MnbFQܯbdgGfU@gBdkH c0k @}![ ~1Ž:F qW= pשk< ,?Gd qt4J=cKRD- ~Ršmhe?dCey|sVU,%\r2$oܞKd!zG%x++jl՚w2 &̟)$6oph]#xis y܅!`* E1UЪ@Fƛ`>h1@a'tVbjNU{6Pd{A>/g x!đex,2n1b\H-}K}v*gp{ӃaBT*(l~;JClȉ5|AWvT,IPR[b!@#kSuBb;N@RȵHʀ$˷sIdzsmq]Ȣ HN_Mh5)fuGEUA緕04گhtM, cpr];'%{ i NE&(v""93_/5X6ELeN:/j//z TTr( ==>$-%8m1Sђ wMF'qVEHp VXkg~vԜs?dZS]kS&brv*vnv౻\N=c %ȸE}̄շ\T?C`A!4czl O_B?A s@<2;]A$6I'` VA$G96았VZ̼**cA V{]=70K[I+Nw?Ҋn2 ͝?l!.`~(!ESbAjR[ ߬v2]lOlj),0h)`6i%M RI^]K{%v [Z`k_Ε#73-Ihwwv1m:~6 _t-T*~?`q (9l . 8RQ9DVYUdjZˑmS KP@r[L o$\r#{ ;}s0zΪւ,gKBG:)wkhy4_zBL/Vk|Y~+Jnb]jX~+z'~Xj2ugව{bK}ϵEcC0P{Jɍ?I9Ɛ 0P 756'XS4+xaز鯬6GtDm-|og(PVIbQ+P"^F[kSp1!q2a[U{Fր:S4+Df%.Qgg ஡l)z ~ss|pUh91HerxҥS$ӡ >T5|Ƴf"2 ga^1]_ ~]Xȏd ?*Ο-tmX!40ђBKt.Fgw|+n8(Bj ORW7ԏrz$r4\{fAģaJ}n tNNmĂ需b^nV :d%bLDF_1۫;e0ѣt\~]]&Z3ɊXAz/'7*ghSCb8 nu` +BL[ AjR8al 5it'On< ,jN˔W.3CeN2;X囤/%}ᨰ0-%|d `S)d!!R\!^‹C`f7SXhwA@JxF#ĜE~>a.)K:γf0F"y3y^xF`~Wa"|>Zp t]׬J"ZAcIudwYxbȘ9xcm}_LjݗJێG_Hsc.)w擎TB #PY­1gyW2yrbA5@TBGTQ춞fQ|Dw =bm4VX9@Cagd,V`a.XHSƜJe|w $Hq~~0fҖ+K# ^9Tڣ(3dg;ڇW5u(b~[3f 9BhRgEaѢ[/TJo?8+>KB30mb =!*ᥙs-W3a͡l Dݘɼw'b` ͪ +OrdU䏹HD~F= ivVfl߁n˦Ǖfu%O $bm<f-EM֊Ceh;D*0̡'% O v?8!Opn lLز];n#|(( ٙ1 Os],㔠+ĭkX)EO۽-C=0g kERjL2UQ,BpjL 2DԌ53;g!tL_R f$v4;Y+Z]ZaDHtP^2߿z&&w {y}cF~//{?㼩~"0V/ ,|Z$4'.tJn<==BKĶOx<y["(|9mLq`PJR8&Vvu)9= ١bRrA|aE MR)[ȑ f]^jOX?LJx.Ս8F'+nG`g9~dy3 a2v%uX(]E_AT|$Uxh7$bMg~5l-rԣUx*R1i  rZ_y=@\fA2ףuĦ1 {l HvZk-4J }pXCjH;rw`hzo:o K 7xJ{5q\BdO>K  ?~qɭ"Zos2~ר-dStB|vpIP@tx}}636ے8u#wöտ Kr22H2efk?N`'3g`.pu~Sڱrj +yzVȣ<$v}/OYDkGf!LJCfS5¢HC-EL)*,Ϳ~cBxmBa^< ~۱;^guU{=09rmdc NPr%N12ء1Qƌ~ռ[<;&YnCAm1=!޵) C)l!ⷵ,Ȇx%# zSؘcT6cf[g.(װ= qO٪H=lHQF&4jp0TSFPY2M=Y.s)"_/f5YNP.' Ej*7F"F8Dȫ(Jb_UeAS*j"IǦ?dGM *K,g=1dj]-KW|:"-|EOC]yK0-ںկ!rRftɋjGOjvf5ң/4/;`W!X/"]q*F ʪbR^4ڻR/±=(vl˚9y bQ qףY>Ä7룉ٚ"BpCPOYxCoemΒ+&FmD,KyKTItkdijr|_d! eر:)F?'zZ,<\&kKw#2 &L3oPL\m&-d%o.S_>޲Ň<*G niHS,9" bĠSE]RzQ^߬: +'b }$p3kFKY^g[8y*_+qѴԦ4wZ: ȧaJ"v(43[ Qۖ]9SZܛh>nFa`GbhÒSfغN.3jmS+E9RYt¶ FIȷ+f|NG dCbGB(G#u?;h%LkvrBE۩:b aaG-Fo%5xF\7=] ~i>Ocӈel=uQGxnuZ}^5sqA9c3!#<=ıтN<%S$7p!+\%v 6C^B(~0E+%oq/98oö%"L ԫ2VF`OGhΟCW7uQ0'jv*~E黄5jq|ƼSg[{fhi Zy[: ~)&ȟM ~[ ,r1,Ԓ+2 &OC ^$+ VK&- `BѧnIqq -HqDdpܦ)!r'*gdP [!aGFv]PsTWdͷ 5y =K!SюL PuCs Ƿ>Q4۠VwP}Xt4*;I -Qė2˯2S鯣;)Sxe= [Q1M.%7,,`Q.zfݾY04"ˑ;HAA%ѳZe8Q3~:KNH uCGQs0;嘝8H7)^WMWTBwu",[%-& Jf$\[=Ѿ2IVlgǧ F~wʳ *Z#L'QSHLA+R~Ձu~&'+aIih)F/WsZy =ʳ 4J SdsÃRTM%Z./2Fd >BKyWꟊ%:4z{?'V<u.%Y ymJ uDq3! _q$y/șG{BThȗKR3cƹl g`QCti& B*`* (pٕf^_BcuFQ/Q3jCȖX1(?+w3?awF;V)๱EԹ{̇hpYA?FB6S3 G#?)v~zh?< G56vjqt\Y -Z0ՔmsOŅp{Q9:%#_23V1Wjvn࣑5e{fm)JGN-c<;ˮGx̶zg_AA6dǷ3<tV )R}ίou}%zAҎ؎+VvA,%Qv;.oļ`M֪$bW4Tq2%[L(2!G:uB IE&' V9DcDwZF]tZ͵̞_>g&vo+; )Ƒ۝RU':jl`p뗕U,1E"H|#8ڗGyZb[] s!B3N92|4oƙg%W9)¬4tm,_./@j#&=LeРZ\4pQ6F!_(ѡ Hgj纃17f*U l9We7UQhhQ0Q9n G{ߦH^jR[p bN1IjGf=Dz[ʎt3F|7[)3*1/MI 稆\`4 WVPek KB >ZY-#w+v[j |9 ,5"$=J^,C]B{1`! m{>P|:M zǝ; ^GS| ڧ4QB: nGF_]bpF⠺3) ixR) g 0F;45P@8 rɷȘ bTYt\j놶I^` (_B|  ,q+cm{G)ݏ 1G@ @5S4 P˼CK0W`D}_ǴyUzUo- ^ /L ËIgOTu]ue"i0ʩ񩖁 M"'^#T鏣BgƣXd˂=@;J"|B^]-mdX&|~E7)в_ d%q]iXVo505FbLɯ0eb (|Y sY0!RW/ϴu\܅Ҹ&cwf򆃑y#wcGGt.BQ2Kh_KWGv.vdG"A07/F J.e)kDMK~3$CApf/"}r:},[\h")@Vް1ż+tdr^q0Ոpb%B/tR/Sˆw`cŨBD^WW E_37[1 CUwmPjf|.uQQQIlش>-={<(CN*InRjrP荒mZūTȬ_`7RqZ v[eQ#BB^g)r3DXr{3-~Ԕ)k.[29 pjdR,Вp([PI+=>syVEsXBryb*w} ]}| ©" ^~Mg=1_7Dng9lrm[C9s9nGK9iLd,ɭk}q~`r"Er#57VC 4BEbe\T=QAYCIT=lq'UZ!d!;[G˜gVhPq7-9<:8?݆m^ z@>zC2ByxU:aw6OuDfhXV̦nm"H"ҙMW˧'ߝ1HnThvo: T'S PKLr}]1*r75Ƀ ?aҴol/Q_**W0Z{ ʍzө;aO(\űg%pD;HwpW3 NYF#WV㿞pԴ>wÃ#p'T>J' qeY l$#+\ qVgmpoB6"aS *W8Z6q<2j})suZm4Z p|!l" ,5Lc~|X{rd9.XlZDs_wO3ۙ{՛,axt!^x-:CW96D85.{9RV< bn}EW֭ܰ.~8o0L7_di8Yf؝dJLP95dpC s#vNO ~ /uWF0|$bKdWMq=I9xFf%/$߂b>XԨ!OZavR+u:`7pXz!Z;>:sR '>S!F^㛄w2sLfGDPFM+-Gn=ñnE3!9}n;~f =-zڅ^Wh\iRf ׉8cH90;:y46!~쫂ļ ԗZ>O/߳9eXZ[ʭĹF49jڭ8? ;[doH!*|zHW 04x&'j~nݵ?JDJ+0X|#LdYaEU )Rs!Ǥh;c%2-QC U RG[u; FRSs"8cjkKSr0l%ՄM "fYpf)0F1!"θ2]1as vԮ-M;3"P vD|H1(A8MA[6yjJ3<[ sD+-wx׸y1x,_V Nj L͕XA$%'}0L7a˼ac&:*GR+S,ȷsoeئ˘I+I:\"0m)2EmlTM\ikHl#Tw0suU=t.5B3v?ZuB,4qHzk7" b/$(z)z<\`LSTxUU%X T-ܭ.>/P]? Ҷ0,y iiI)fѿq_);q+u,J|wD o̭͙`sggbOOn9Bڎaֽtm#ǜ2}F1; ~QI?c]<@o" @ vd4POrok 3 f )b y 2t*:)GAOc;8% bg'b5 dڤOr&F_CFv?X*fj⽧/L#SGPg7QU}"./JiFmn[ua^pX}^ /{"̆o URckvh1==?`Iؖ14YdK+#n>\GA/{,fxavP7♹ k >3yy] ί-#|N.MFH80d(f-5Q!^Ɋ6V!uza#iIE4;U-a(󊙜g*իaJԟY[gDm:qP4z9̲ G DS&-^V2iWI,P> Ip!2;9E}%n1TԠ~29?~PG& !ѤV+rBqo@]j X^{71}FFKYxhYf"BZlzL+iUC1qC bgx#R^U9= ...h:ɾ~d PQ*!Ч ZazPT5{Yr65%~w,#0Uט>@PO;<з8rcgVYOQf"H ylĻePiӃTFEKtxIj^uE"F=`V5vĉ3+sF O!zo'֝ŕ_QTaDHlcDls.'cuz_Hҋ7Q&ME+u-B}#qQ"qnDT8u|"]2JN9?}ixRL8a!4 _ʧF#x\~XνI{牷t\%S'@qi0:4?6SE[ h@4MHԑ`gnk?42N9w2?GSP+ ΤT gZJo Ѻ$3E7'KHZh2+ƹまnQ 8ԫkuwL~VQ"3`1oint=ΤmEEzi_k%E#tHQ0SZF|Kqske|ɑO2%rݭ3PK`h? r4mܱ [S9n3{Lvv'H>Qٟ0|R o_j2nBaX)ʑLw}!75}Q|4JƏ7TS{[Z,L|ǍxTHH>cu46nL)ڥU: 2vLQOx;XLYK3O>z"mmX?f41u=0v40:oN2#K7u @?5Gn !W i2-Bȓ20 'Z}3oRlkxPPĵ@V4~Q:"'#U k&dwݱdrZ/2 Zrn("xMCīFYp6=?SY@:G#<ؽXWi^2;QBىV`96I5`Xl5$= Yjcn+nY2P/Sd-ۜQ"~DK -Rw?G9Cr¼!Pd?| bzԭw𲴴|ˏn#8k@TE\At ;f"!_i$&[ezI > )[KΟ{dr;rz~9 & 3`ǙD(_mVIEeпu&:K?SF"UexspRtdWbF0hQ}}愳ta_N'JiΙxW~`Sܡ>GjX9PY2/ϑx&b8pՒdRlFzv^$9f0fl߱F&G18ȢZ>/tfih5F^x4 lDU$Gnvd~%Fp')Mթ o Y5m+,Cq-= Uz}d>JˬH-X?F>z!Gql]EvYq&*2|ޒuZ-7%Des{ E(iRMlqGm>.7F1mSΓ`d>j j% Ȗ`@" VEZ;H9.ML9Qf?n'ɱvXoNd/{D2m՛ߺ?&unPi#u >MC^df I5pl01 6LDe|:m"g)3q G%n,hsϊl)Ce're?` v?=|{d+ee;*"_Q+'1":pgh7|k)e*~E M-T,I>?n;@P4&qToy}iR_PkirgP ?yTbg?ֿ\e?z؆Qu.U%9[pqaDBZS^x޼x,wlL^*rm#DN`~7Y #>)q8q%j24JwlElnl8%dMd R|+}1Tɗ+KݜmOCxl?^ܢ~ 0/Eӎ ɛ$oJq,eG9D?FLsqv5GhwaMٞݳZs2kZn5²qU$_RP^ NtVV8= pMnQ_ ڇ$Zqb)M^8n\_`$m/ ;hC b݋š;-J {3w[F:{y6]_\ qa7reA3&)LЦ6q5qPc x>eƤUI#ۅHKbYT0kuU6R2A)ɽv"NWRȣX,zT= $+n sulͮIuenNk1TCv?dM`Bɑ9gɵy?Iʨ,I1n7=D{;,G殻lf&%⟽:up.oUQd`.RGÉdi\P0nי.8AzhX"|`9M|Ka :TTĘ|%5yKqĺZn/p`8)tKrg_4tP ٣a$&2jobL+pyj#Ado蘝:M{S/z;q%H>&@k&p*}ۜ+!q~^iiLQK o ^TI1–~w~p3ףRLO/U~[ _bPg!Qpj*>IuvZwMwm\~swk-ɗS[_7֜Ew]lٺ[| TyFa_߸d#C5*X ~D_T}⣒vߜH;Z(vCHÓg0)y731RD&8 ~}0Ez汉eI~`KV~b)@)jW'AU?݋6mx^X.tÔDڧv|rn{AB=#2#40l4$s+1x[SڹQd=Ѣ^94oj7bE0,M|X:o%- :kpF5D}A5G"4@u#Tt}ȝ7Tu%vTrM%`UtAEw[_ar9u7=RqE-ش eGCד⇿^dt\3&+jTD}g;=^ iWvO_$47a N7; 68X' /଱™Y~ivNe^ iWEyEuM_A?@rg$aRU@q<_@s 8ӳ>}o@ G#~8a p&+V?7ACh~c̬[/g_Hykq{J#Nz:G}$ \wo)0NS%fխS9q͒*eYYyHȋs & D"_~]L4{Ґ(ał`.lN7E?r 1 OF 8ɋaT!TIqnmXSPeat/e쐽B5oȸφRuEBa-6NXTF/m#c e&uY)'B ~U`o>/EP@0$OyHH$UZwXH pMu-燐炶 2,8]+&ǾUcG9f8W%a>PGiGmaeؙ P\MPcΘ)Ĕ|k.gLw#W\0Z>#nt`輮S9tqI\=*ه*T(}T6 "nO]Y[=OjX Rw}w$rMg7$w]Za0u/C-O3RQMSmN QdGС=Ym ޏ:MJb lr6 bP(*|f.rH!b y-$t_G zlcLnzS쓬H(ĒW4=|eie?}h\܋ֲg}fCx=r4\&24:9Dk"U&y->ׂW %_o{g߅OezvB1^% st?JT(:.HRwg49b_``G0 Hq X2o;92E2\۠ 9xb,k[vdyU3|!ddt=kQ|:r[>AF()(RL~`InM8~|:%{>i+Wb>#^ňhL2Y+F q?"IQ\r^:ĺ 4 yI[=ܺ\{md dwYKZZ\ xXL ? RRGsY0 [G:Æm\u3| 2ũ=9҄8"J`E=0 9VQil.c,+VNm_q_񊑇c9X*݈H0=R,eB|ȇt6n~DPp9 w YqhO;>2c@EXG9*P5ʻmBZ{{ɮ1Z.ZQ<MdOAiM GͺMy!&ߠ}u|_w`w % Ml<;* >-t,LHZF\yOjZ]P}a2cE40ꔺh\hyE ƇmGf/ؖ-%^,l744eyK݋L<*Ww\9 IQVj@V4 V{!!@ c֦ٚ(seN M>O UVe}&㗣vxcLL!r,S,Ch#֢9S`ijT W?[WNu~1\-K +pnD:}60H"/)Y SNusTw[^BSu˦9vJU%Gnwv5g2K |rqJS k=qI^]6+uew+K.4FוodGI} {BnhR={;O+M 3'<1tJUU2Sw{;U(']R%IRwN @Æ] TLa!یԝ#H0)r "qO~I!,Cr;}r_iY)8jYLal=IrhfV*Yx~ (Kw;YMS'4ξ?(F[wimzGFbb? Xb q_ &!I+ IXSA.S|5m=56Ybd4>ME1:0,}Ӣψ?cZ H ކ{\Tikٶӵqq>D6tO?Հ(FMvChP6 ۈJ"#v:>VߙҐb$.:#u">ixvd}_lklO^BCUq: ۱LEr=GL'XBIIi:(OZ;xp仦  m5p^G_ˏo^"iY`20H=,~S7w n޼?K5Gu;}ɍ cx@*D%́ %IyW]xYpAo.ҏ$# >sF OvXC\ Ox:BTV>NfK~zEMiQ ?7wݨ[o`ZcdZ\w.WDՇٗ bc%GlQW`W^;jmӏ endstream endobj 112 0 obj << /Length1 2966 /Length2 28766 /Length3 0 /Length 30402 /Filter /FlateDecode >> stream xڴuX[ Hw !0! tJ7҂twI7-(gm%]% %P.PVQq9 hm=-44Rn@ w{g;PnPrdB"ir@ XT>.@_@bi [{"fok ˯J%YV^`{Ȫ Pu %ltd4rj:Z Z..nEJK[G --2t m>_*22lx-75H_ v.ll^^^`wVg7[Vǿiك^nȧ0 kv JuC "@YUVWW8Y؃܁ $ 0  \nuIgʌ,c {V =wE =מكH*hi(CĢ QWzʐQprr!C*rvr#OmA6tpaٻz/bBm@WʎWf嗙"B  B>@0Oǿ22搣Wu3@o3\7Sv96lq?71Wuvsp,k VwKÿ :!;IIr,c`2V  hikJhJ3w^Y9[ۃl< 77 dvp8 l kJl gwH =`k'yylL#^o`l2 >vo`8lM7S #H?߈A!#H?O7iF:opqA|N.q5@j[ݬiTtW?$@D@(Z9;Bq89(j'gv o~!W 96up#o"ǟ5!9kBn?C \K Q#bBB7g^Ȫ~t,rCdp/7dE.ݐb.vCn2 j{W!j8zbq_Y϶p2:C^$BwY2@' ϯ@瀬x KusV|})o[%6E;ώ4$l4@S@ڨ6mBFc'~0QbZS#j]=wǘcC`68/`iBcSӲ3E3xsLN%y7NLvOm$)S$2Ӛ1#}-uΧg$=E%%Ii ϩ[%/".Y K )]h9!\Sr-=ID/4*(!boËGҏߌٖ^\3/C[ݠQ*Z8cs2W}bu!pl. =pīվg EAӤ}:CMv _[WCOnVSօB>jKw dƳEN*d)#KҺ^4r ܍8)AV_W5'YYr 'Ȃ.{2}B¾Ͻg>ӓY@aT3O==ml;SJɁaX8|'PJN|ꐗg& ߅]S14Ќ -(n'\cg>NbCx铄(*ޖd;5 C M&\4u \۰`ox Ip.耗P'2Gp: .$9Pz1`Ti.?=xfc|4{ s/CN`KHy=y_Fpu8I{Rg:\:QU%H& #Hd("bsEGcR/ \2Yךۯх%M_y?!͸ʻ@a =CgLKLed[T]mo+x-8hzD7G*,l/. <h|OF cɨΙ?/'>pl ě_s:%+.6?80_ h< U#ݓ=n(#/;ħXgz0Ϲ?cRjԁ1xJBtU"Tw5KP\9.%cy|Oځ5 8?J'%"4lۢtrk*N!~vT4~Oag:"$͹LnyZ%ѸzTfk|&$}ź5r#gQo.GW|M[<^Q&d^eo{Esm;4 LM>͖K&:Ө'.Ƹ> z '9JPY ?{a_,?(!9 'V;2*Xq3=~G'=[ WzNUHC q-ɰg%OAl{<&)ŐvJ?sg>0,[ 1#hsq"!ՂCMqdǤ^}6KڦkS pv*X&<Ewh%aMk/"|\Pu'| ᕛ,^71tU3ph}܄N\n'io=s'QuEv;e;8[eIa}HFrYr:W{~!N*F/M|T#еy'F6t0I4f0d7o&Xd5R ]Grݽ}mt*۵qu*QZ;T]-ABmzAO+'G- -TQF :;7DVc-'2~mk-XYl}`Ƌj0:){]RZz}>EL=k#qOaf /(V{mⵎvJ>kqiId˽27EsE.R#Ц+/->(ZTwglj7Ig|c (<(B$jclGذ]\ۺk&!ujOwȶw~!8r?4GO/ .<^ۼBqHhP/ WԚƘ8t*'ƊWKpHz>Oat#gMi؟{l{Pp~W3麔9a2$ob."֯r*D̅ J9[fW2w:OQ-ԊTbk^; 4LR)*Tбұ>s vWx$D,'ȖRYKnfLxMQܭE.il&:QkuСf7!5Hrʰ}fYhE|,m~* -e(cT]EN؆FyIUj[NI7( AoCd|%cE-Eץt|kz+t3#i[Y}[Ҫf٬0l[.k|;PF}H%َOq:*+\ E4W[Q>Lu[wmWo&̛7ma-<?;sh؀(%:wbl@D߸es;T!\9Rxc[=&vԨ2"?FpVM{pq՟eh+87?st8q;mNP ؐy6V)e:E,{~WCΧ7X8 *̵41`m)_]NN;BPaNR3s{|#lmmP"${9p*ZExZ٨u1Qb S{Q9DO$`WɋMrP^Dg/ymvW9+t.h.y8-_z"'v:yUi<zT-KEk90yh#v'IXG"i3wzWv podM u6pbR{$dp_ϣD*M~g4mÍ<#.,X1͒o^pn UcYRVY(\SXxh׺hVrߵy%K0b5۶j<eCM Qv&Z=) j;E')~u ۍ M68)n5g<,K~zV@Jdwu5@[Ŵ\dX@#M>jWk y7羒MCJuT$!3(QY=~Xzў[8>/Fug ÂgUzs1ߧ_NmPdfˬC5v+vx$aida_G%]f3ԠF20f#ߣFb4nU\c׳%|]p^;|X/V/TrgYQfb&_FWT͟O-8s ImԮF ,|i3#}2׍wꄭr\*ct?cOTzřXv_y0k6qSFFAX&y㌥' p ZcD@A2oђ(}Ы]|@58l{1s?%Rn%JZ~>oqPt4e3#0o#%?XZيFퟞiFhwyjt)dU@Nܠϟ~ӷ)'lLsH6@b{v/ [BRɷ$+z]{.K/蟺)̉ 2ϟ*N*2kl2YkBxGӮ$To;ip`5j;5%Io9_D=FL$\{018R$ θw1Al%P!C[RY (ڸͥǜ|t=+)ޱ(>ȴUlteu8HaUrx3O)Ȏo0TGT{\tTR?FРX| &uľ:l_zՓ 巁fCzb`و+9oؾj^M,.h$ł= y~+qHTzy@TSe3wѱEZ8 Psl10%Da񕑥P+J;wF|D&rN]aD7[!kzWoYɐw3Ϟܘp*S^^g[qi$HmI !~~ :̂I<)߬WXԤ!Yi (y:ف@S[xp}{fgqq%ږZ-+,KV7%/$[y='>UH:6B+h 0!o^i} (n'?s 1og9%+e(W&>wϯ6A=##/9KS2'q^iAA-p-aPy'fޑh׎ɉ}SU|Gnd a4WZ) 7:_PauD#_%-&f}EK|cm*!Yű}hYRsJF~}lBέ#Ⱦyn:]-9vO.$XA-,fO! qr~ЬEXJԊ S]'YWDf|劅^ўr-VcJ >I\AM)foGЄt~w|.RQAHJDjM]v׎{c߱UVv'kͥvR<ˇĺihvKhѝ ,ך3Ȅ$߻qk\1L oaA:=bC?3p_|s43U=zKe-=N_%#}g| 賲3o_ @ 8ĕmg4͂XN]@+YBQX܅V%JRK'JLtjmM,;4jQ,R9a`ç!F9%s[ !ReQn0 ! 0`I@ol} J  L=kT`d&&xӂ&qkr=gIh"az6l l%Ox:p ^QR'4:"&Pi S՜g8+*PfwхPi/{]OLG/ӘNZ_Ky39o,lT"/|-ğFVק,a%J>Zn:  6^- p'a]9es IMUC7>tͬTUR`2s1jz 0+x bnO-PY=‹غU}|31ULE6YʬeN'|HքoZ޳'S[x~(Qt?n)w:Yk}4Di=R\\~InOQA-ʅcuGwpF9]>Lߙ*oч*DVN6,0x[#o;zMӻKpHiZNE?jG10~+2}Q6,ˊ!<) WFf^V]XNVVxOf! BQ>VmK6mls y?|58CCgVye+{K8Ĉ۰wIk ދ/^,JDm-!Q.j )!]fM x]kVEYǑ_1[qOG`y98pYV~M9~dwD#a%om^gme`I;5:_ob{eշXx'2}juZ鎢Q#F?zw_?IgyyG4܋(U-\J .Ry1f{5]>%f!s2<׸i&;3X^o׹Tm%\:۵ fQe+0AuSz *WѼ qpy@&f`pzMF8%:>\{skׯ--jD+|n%`xg2r(T[|j隀g+gYk1P T]G:qAq+I;j6,(AM+fxQrd|sqBxgȭMа|+~"GYN _Q 7=`o`t :4<uk vmvQ$ kmd_a8ovFtod{'!xCRzHb \?Q}ZQb;rW_ZewFWzk</m3 ({ycHUY+w {$o?g^a1%E2BC@K j"4qFA>fd_^ń`RYsXV%--j״yA^QKYpu"O5emTF޼oXVt;;Mfo9N9zkݷHC+}9 $1U([ҋg=L.gN/}sKgM r9Xv~a3V8Ʃ wxE{Vn?ԯ~[\k-aLC)ɭ .u**1)ӻʗ ՞__wtpD`ݛ uzHlMf/#3>ه4{n}TYiWߙ{'今|_Cg>^x Mݑ[^|I,n:nE;̓!-` @Z PDڶ:d< KԢ0|l.NͿڈU WBcA*@;ǪîI1un‹7_v0t{V@ )Dv(<~pS ΑF_WfUTuOWyrxLWk7i~)ss~vnCzR.w½L7FO?g6S^X[;y8z8?yLQJ5].b;O\jSs:E5zJ o&V@n;#-nIR|E<EqnƝgle*Y-?e= YD)޼Uƒ|/ʎwZB^3ʄ' :>1zxQS%9%1$+EDmh3 ƯALp ;^>4}V#™T;fgD7u |5{CdEE.9,\97Ay''؎D\?w>gѪ/|U=ɷ& eH=:G{D !Ck&;|ZnUbh2Vay [=Č/' , Pq=X(}E+S@ 9e2K>`uϢв~ݸ]["9C$jnݥb7$h3V<c=ߎo3jVԓ'93#3Un҂t9) i#.;m0[U ~Q). +/=PWj17 mS5۵o+ WiflX1oe{[oA Pb(T[{9h*( j_h/$\HDI,4?x#ۣ:4YͶe_Ұ"Ov}a>)ƪ价n9 Jp҂ (98 /f$'h*vTFπ^@dقV3O !ؼqp"ƣܗ{P#R.Y?g]90swr7Gw#omMeGS{B̍0!/=ůϽ$L]%ezOĘ9f4ZN|FFk)> =*?$H臥\J b L\9?W]9%L&;\PTp`s-p#hnN~✞BZGO=F5+~ lB""ρCyY%5A}# ӥ$M3R)!E1ݔTדXVH;U#P3fpQ _8=HO_bRJ`*OfKkSQn !1:RFsGFnB{d¢_i^"ڸe=NNEyjvə&\n;T,}Acjp=NC q< <@XF)ۤ3֮R`vKG䒀HGEL12vFVRbúSOk!T۶h OȫHdejQQ>Ё5_ XKZJn4~W vF|F8I XUѠ:;fkc~)hYe<ɫ`wTۈ"xV)P"pTei$&dB>"gʲ݁N_IrIk|lsrҋwNԽ}O.$sya'6:ASZLVPE9w2~+mlC^hwP[lk* Px*hxoY%"o}.k*jo=:k؊ {L^TihŔs$?zAzJTߚJ ij&x ٺ'm~f UY|$C&Zv{%MD n7{'`= :_˜&E~n󀧀F@5eQJ5Yiuޡ;mbLT៵q3m5MRO4[ˬރ?LTdHOn?`9r0 H);q]!5w%66д)7XT8" I +GiT JaK&aMIѩ9,XhJvi[n*y[M3ReޑJh·|YvFTbPb&vw{) YEZ׉r&!t{B?>/{nw^ y&OϳEVNEa3\ *`3es@ۋ)PE9N>Bl +íD𾖬|=e}4R?ӯ}% "ź!D7Ό1gTH~3$NaEVaZegb0zU]>1 ̦QY˦qz LIhsp>a=Zh D}ؙSl srKBL{9˛ND{a`JQ:3k=J fu?a!h{0J`-/e ~A/\9i8{bQMK5 "܀d }EStZ͗zoCk;/ݭ:CEIMqCh\58-M ΈٰǮxbW jbG/?ZT)M CkJ/y%j \DSn&;( u4GGjśHЉo5DWDpD7!Ab&Dr)+TF/M=nl cdEqh!Ht:F1f"~Ħhn;V 6-unqSed_$?l;X mÊ\ug3h۬ۃ:)}/.2 ԌVV8T&x+;xB[2U;?)8p_ǂOT- Ux%F^4֔]@8Odl i=¢/M=|t5/d=T0\Q9K/yaFEYk|-*w$oN6_d%`} jڛ~Mm}Rϣb٦W %cԌjBkP~mt}=W7„ƃUy! Q@9+ŵ i^?00 EkR^]MI:A:# J"6M~(Lzz~?E6Kt6:H=u,#hS&)0VrZE'^NHzTp܅ڂzqI9* bSULo.ėfEߊ.uch2\uINa9H2IpEw!PL$\BHabÔ2')f$!\za~3i4zNd:}Ԅe>@J0歇BDPKIMe"v.ۇJ Y EX8`` Saeys牱WЕ\w.&#d%?'uu 9CX~/~s`T/g;P#5~b,m`&O)ra%ܸD4ݱPs&>GY`1ɨ.v~Ռڣ%1PN+a҃L;ա0b wB% Hbx Vրt0p&xG&/OI3mިV"OJϔ)?4Xٿ1`1gpP8֢Hb`q/WxbNd:;|-ZޫjԎrCFF(Ƿ~?*~>Bz:AW4w 2^B*80Ln}ѣܟ^ W $ !O6z<{rn, R@LDD~+Q*u2gz}g%? w boRBIp uv; j5o9Fj<628 5wv/P"97c?Z' Pk*^lS-jWm!jb.^!srs:_11:m K^:TzE* 55= @̖WF.z34L/eZ#J0gSh:ՏGȴ݃;B2c5f~榈RaO@eOIk+ (j臗/$>"@ t~Fk1q?,!wD釵kaؔrTt|`bBL . ?}@0o^o=4ٌ^廴tNJ[/*FfX?h)3g48l*kj''<)'TU=`]Z%w lMB1gc O!yt)jXմ}w8_R9ݔYowT0@ۺFfo2A/G"!^Y擖Z |Hߣ=Mmݬv=rbAh2kIT͟%,IX/3$x"=MZ޷ԉCx`.Qw!yM|}EقO<0a5R!%Z#.Pk B={87%+[>* `p>7l*J u>.J `*WR /|َhGV3"y?]`Awvw[m+pgRLx*Zi%N3Z`!\Ž>FERG~A[zl ?֐ 㴗G4sw9\f[; ?1_E3@κv+ 3DTv4 O'N2 Nag4C_olR Iɪ0W`V)~܌% UKqPЖ>3XA ?:b p=sw+~U*[S7,:Ǘ[FBnu46nL)ڥTj5Rv Tk+1mt~ ;9xu;'.a}A0?b}OgIهf7%2 yXv2d$XhARQXz#!cu#+tɵ^:Iok׷"ՀGx!m*om2i)>Uj1T,Gb}3[2QVi_+ %]"x.W?fوD?2%k%UDzD7}k)d۩E\ &8ݒoYM2mHy %Ѐޏ *n3$aqJ~ʕSoH9u'q/3uf'șV.=Z$ҕi:Ժ hYqM,O$c3.r[?]?O@]8t]C ~ rzhO7R*]Gw`/s-)s!aVT2yPdģ' /}\[SGE1fVaem>˷p]:^ bQ&00!md.̈ki]L_A0It_P?+4)ކ)" سfu3qЀF R@mĎb<4}Q-!vYrMz cj(@X n3trB cX^-w@ ~Z$Ǒ~0Wjs__V5T*ș;P>{0ԉsMHGmd_?R%ɀX?yOz oR449nqId5Q+ \YWB@̕. .Pse'$S FԲ4ZB.K$ob9TeQ,\{M,^G[oj<5c@䛛݁˭\hYw3vtrtrYn9Il4QXAK%rɚmӡ~k 9`;Y[3- Ll j˿Qn bw~yڵ>|PJfwKUl=mk| >+<8^=crQLgFĐ֛1~b Iҥ&F5&-!&Ib0#%1x%7~ x[\ /54l_&!Mt `G U8*)&ZśQc2]TZu`&9z[~*[A+*#K PZΞ2_OlP46;\sYwd{ X =#-_+D sӺ|R:Ȁ1TLM.6] f0A{*XZzMTN)5z** 1&e%>몫#:_k[P}P)SOOYz%ѲpZUcp @U1^K4HH财<m&nOAqIU\,"CaFCGGa놯[pB͠%nYoi<6@--V.#oӣEt0Q&a`Bfҍt[ 45q !R'v8AqYl9aM>;7~WWPAwK jG1$jq#_4WcEh )I6L/t@y>KkXfE5qVډB‚T$6YyVʹ0VO>vHO$MEdlQKiEzeTu U\?+3&<&R*(~Y2OI w鄠js6&T8xYB4"<m˵l\`-iG%Pȳu_%U*UUԁW8y~~Ȉ^,&`jO`O݅2񌾅|-Z#4&nX@K_>}izAS\T,Vť,z&DHj;QQ.(S9.нB=ɝ,\-ѳ*ȊI >g7Y$uN*.C٣Ids_/_mAHp) @a>C:+a_F$jA0aa]gw |d2=AA~3t+fnP>*-om(M/QsңB nfTq``qy(7H:2tP]^(=T9u`]$PgMPn\'! FSͷ lδr5 /07a4cᾋIFy+_p<hl;YMGj专mٝk2m_7|J|!%F?s>ӇHmVH0>oM`bژmVaEpwI32$M' ^$AvD `G \ $^#(?KR;1bo陎I2L9=-d3|m (nېk e(^,IZ;֧>۠s!K^h:Z EY/v3]&lO݌%l. MǤzgṳu|˶ v!BrWY[O*Tj5h{z8;r# Y5]0t^JN6kQ#P8MӈH3)h#d W]h5 5htq0p^DtUӢ q34HE,+9 .GnTe^Ѯ+=gC.nGI4k`R/q웨W%$=w(b8u\aƴ r -*Xm*bD#pi9#ܨ||r宅\J (GO{ke?A77 =t0#>$qبZ.懟][g@\u&ȉdnԁ~Jrt\8P +uR_NTb 9~ua/`rd2Ck3SIY1TVKzҿ˘w|%-#54'8@tU4{|*n|l<-BD}w6Ӈ)~ڨ944gB|'Z{ R@Z$\^#N'Hy|̩c,Y>dduBc@%owSֱ~:#yט2#Y+ |0[]bkKR ]$ݥ,-9XgJ;0]lCuGg" ejEݐ}ȹWBH@N!Tޤ9 鈛Qk!& Fs&2/2a%h&gɷ5A:\_%𛩖{1rZFaG%Iʲ$bF9>=64 ǤWMѺq8l) 0!c{e[x K8er,.[C]#y N[3EWVXoOd_GN\rbڽ#'ؕ>Hr9KӎLu<_jFǾ† tנ똣^x@`$_\ Z\`6rijjȠOmp9E軴[XQSs7-HM.W#}3tZFmPKf KhfN@ԁ!;IwT^ 71f0S2캱CAbtϳn6Bo[ cj7$`FV{%Z}96d,Cl;yJ-tڕB|/W)9~"6-eLu*~KыX QȞ+iν"#*qI =DFq!*j+KOD?23c9|i6@DH?~#@+JKL*t#1ilȦ\!bPo7O6LP\Ӛ`ST6l2Dc:m+ Q(&/1_9+f[eTiS3< Mƚ~l)s0~MbEsՉY2Bo sD@Sv5T VLߗ׊XBx7ƆTv"@Y+fXh//K/Cg!7™f{9)sFCMF"*/vu`ׄP>tZSH^kq\ûa HkRX~3ò~U34CKf˕+4=X!619 z> N# ?k '^zj =l߀"UsFO~w IØ}:S50p6ӣv墯w5_%A$hx; 1HSZӃ*+N%U ӧ`Fc6T>\?VEgGt Lο( 3 3Yz1h#0Z-*w8(ʭÉWjSHāV388k4;@G5'#Te R=l1L|s19]zqav="j!W7%mM;hBv&Ց'Ƨ͌ 2/Ȇ#LEi8H#?HLKG~*;ٛBˈ.'$uךVOCj2(xTy3rQ:T% (wi̍QeUu_*4jA\4_z h:V4#h8&F):r`S+HK%؇Ô+BgqI_3%7·8i…Cq&N|m Йޭ3"rM'~Lki\ oEV! \)(F MBI$ qm <7fԝnO P$jab 99Uh7}Or*I&-ٕ[pO,۰>v> NovPKԝRؽ'rJܷ:Oed7 B:pdAɕ$錅m PGN= +!EԾP6K}JyͲlad)F}uS_(V;ϙ؍e=X#-?$ă!8k dl[a,CEBAI׻< #r5ˤM(aB2$ f'n %4@P2,Bk< $|T mX9[cw, 2}4ր8_6 #.WǯZQi]kIqHLͩ;r^3&ld8s(VVr&tJEvSwU$2~ R*ds A:5*iVI]VI_9يȦEeh}t."LVRTԘ׈\ˀs!]T*g?Sar_W b y Q-n p(A"i٧8m[/7:DNDuǷ#Rẇ::qI_<ł%v]5pڨa8@ODn4GT% 6&i9?}F̕L^h|9Q=D/+S%WFze4PԄe q*AGCJ!tt(ԣ0I>ܭߏnyTFx~0lȠoH~ע+cTɕ}O\'Vn 7`}{|Dr}OQpܺcHH y$cw,&wܨk<4B~RAY- Uw`sfB[G/Ek"aTQV~G['-&h}Py@bXh妟\+fM4F"ٵ2I[ǭk㸅quA öTըg=2-De]z/CcKvďOTk1Vmʮ;7EP*:8BJO ikJe`̆ajwśejm,+o|Hܦ{񣐞]ȓV An`!igp0y69)mdtIo^lEL՘ Vo34)F>z  R]jnJ=,~0:UF$h^J&!&:`s ޾g{Y5ɿoXw\_ɾMhA$^i&a<âzǙ7˂e3uɀe81B߁o/QWVj$ƅzT2 `/$J-_ vhRs/BF5ʛۛm\?9Ж1\G@1s,&3v ~Vkt2O`]?Ku~HƲ="hXp#RñHWlLdvkQ [WXϟ_wz ??dVqӖKOAUD*y&+#}"%݅7,[9X2:e :UtHxUΗb}/CҺ4a9MěBIݴӄM3 *UWn(}ztDcb\-`fbQR;\hAVOT|t/mA.;ޅQl\iXeJo&=USY~;s`ho" 1qģWuu1#aݲX*^y74 ыN8bk;: &$آ>?E{jm9mՌXD%'^]Gz'rcAKt:CS/'6o<| V|={O7YN\f dT<"-.T$ fSOм8,s5ty:0T=``ӳW64? qԉ% `g4ću֕셈*Xܕ.4u\3B| ֢)35}N+\ IO ȹ8jDZ]TJ?8tR\nT)W)pM64pWV#9H̻bParA/mSO6X*/@O-{/0 ڮXз8)f?m}A]!#a%_Ii]Ꮑ6"?ayi endstream endobj 113 0 obj << /Length1 2726 /Length2 20767 /Length3 0 /Length 22373 /Filter /FlateDecode >> stream xڴeX6LwCwtt4 Cwwtw HwHIwKHH3=^\0ܫ׽{Ȕ՘D@&@) 3+@^Adbceq123r"QQ;]@.@>%@`geEHN`t1Vth g&cghoae<,,]~`b鷷3@lc072+0A`d0Zۚ@u6@CMRU F rw-jҌ QEuIP :\#@Ql]AR]T]GYw6w\Oi`Ws'? ..|,,. ' fSrlO'-b\tXLV@{go')пv`*N` ;@4vW^YY`gle77:f4*wurCTNIzČ]6;[98+"`ne ]Y#SUTSg/=̎=?ֿJȃW ^RI{3qjgIXyr9yZ؃?bs+{3߼:h[9e$m !Y]#aj;?[[ &07uZHn@+o#$6 xG2 JOҁϨ`4GbQׁS?\mm퀴YzXhJr3L%W&Q{ [ _'s6@gg7?* )6W?_bb o&Nf.D,|Nm-zԘ5!SZ5N+i),y~p\J!>\sk%65)ʾC"Y:؝Ϸٟ(1#33b t4-Ê>F>XF@dMtk55q̊wj ݻ*AyDei?F|HJ_{Ħ+ÏLEYqwd[Ѽl%}|BG)0Z$3ՕgEڑw>1d0G# IiZL\,6n"`zNM9C\VfL65|f;tgmELIo] >mM\>'d,˟xhL:,ŊUi䓖w=@~zV҆7du!T2 Q HJZNZ+Ha krs[u=L6R:ή#eh#r4q<~~.zT{cA 5m/ =ݖg$ƪ ,AN|#Qh޽+{[ gm66iuۆPx72?ةC[9?TJJRK̳63SPj "O"0SlW\[\} !|K::R .3(&x ǎ ?S}y^'7g0)W6"{B $Of *ѨRr1x-sކ]m 6_CukX݈-2jc>ݶGXحz]OL6!|3\v #w8k䯿ZǐU:> y-mRJKذc͔l=$ t x0@6 ܥ0{ G!^WX|zWTE~Z4"xKFǚHt[K]G<,/$]aZ8R)9(Q3 _ʼn7uW䣝Pdӊ%.TYSy)x=bkj KXR[v .J]͗ڬh2{#fY+ R{jqlzq}L}FV @Z&^ǂKVUhk)-?98Q4bJM,5 ,k5e>>l4Hs<=4i萏,2嘈p;U/Vx :I98+K5brplQGb4DUm_uboU/{zqr0cb4zZt X$fܪ GƗ镧9} j$E* aLQ¯W :șHel <$QEkDW2"MRH"=7҃ޜAt7 ̷/ &03XTl#"sh^#+ g*0Trx C5Ƈ:+Vz'_p9B\ L fi8K6[? lĶ~B3cޒ8ojt*LW!֧_F>&pYB*ZE4Se F0r3-mÇFs57X"8}?{>;CaXN:PyKzn>*t! B.Vȴ({a60v9wc?m:;ᅸ`O )72?-h\{ Ģ-:V+S&Xچo#8?}+xJF3lvߚ$XdJmJd\iLQ}q|#̡sPlqMMJ}C 3QwR0ԅ|&Vy4Yc=J%kÛGۓ$I)ۤS N})4PԥAR?'Q*EWǷ'l (e Fex!yd QIɷVí9" 觍a,DJy_HLqf(mZ'۸ܒ͇S7W!e^&ϜA_1h+[EU~R49af*M֒;32oVc[&@භ1cXAss"U$J.ЈT>GrBETsG[(H:x9 80k|x#הD|}zM/IeRO{e* nvI $m[<|JWKQ[v{owY"6 /og>ГbW48/+-\Xܹ6:1cU;IHcO|5]9M?rH궭@*4Rqu33U:jHi-!)ݾLR )Hd&Ɵ|euVHXh.{|/EyQ܎dv!zcIWD{((i-kߦ)Je÷o`Vq鳄oPfp=dul٭fn;`7gIyW>?pR.'&~j?EH1NOFO U//HxNs.^͸B*RVX8a?3`!m#Þ>V=yW^ ZZE;`w+#hhtǐn՘@X 82 0dطqiA)}-[qC|Hm&ȤYl ?Da ѥ^`ox/I>zD́!aSRZV.?ewEAh-+QG<`d6fNWrOXsqyO=hʖ | 0D#LG5&ctI`×nr4Êưm0 崤J}xBRі"Vۆ{^Uf i }7"JT}/y3vLҫj=LF ҽ]Awg0=7έ|_m5P^C 髴_IlUK{Ba|gN]zצaiv!&phAPOBd8~ -s#)0s,0fS~I>"FzPҒ|rg5T,#Mf gPWk-dwUd?^_>q0Xcn2 uZ[7Ix`Hބ pqʶ/Vs]2r} {á ̄+<WԂ(\0;M_.Qm+T6gx;dy/)-K&%m0hʹ=0%]f%>it_ڕ uhPh F()^u#_P ȳG$LS\0ў׏@3%Eػ 8)Qj@9 ><D(9WO K؊M|=rMC HU74 i(ׂ珐6qA-]%%N_λ}l=G`<?'~ZD}4 1DHzUG[+704v z} zNӣ MaZ5M mcmHcxZwEFƒ}i3D1@gz{J=qHxWŸ|&ތ)OpI?=xLXWP6ԦKb6ʑqV^kʈab-Ĉ*M'o.\a嚥Vq]p~yp:]Ja]iOQ0kY^UXrcЃ'H!x-$}K2tWmL|*ZuŀDzw"k3OeT&^&)鞋&Ees؂n7$b'.$+}[ÝB, 27 ZBOIP<֌ۆHc-}:_/Pot28&{O.x-'T"yT;3ro {m6/6QBxVՁ! _CA>Ro_t>C'݃~uDbOר'Ajn_sޯR q4F),{l#"->l0֕=IlIj^iXr 1u2#@g̖V0tBD.my#1Jak*%AQY{/q+KQ.ߕVTV_ &Jgj MVqvoɞCY3O=, at?ϯzT}C9v>"#s,M5bXp뮍͠e:[qrdM9䭺*j}aow~ adm#PYO|#^E6M@Pk8̈́h)l9L2ڜRmIEtv='r]pl+*L$s* M\ 0ҞB }sTVʻSf,5*'sB{bB1VBZEwoNqjYbhPso2 d ~k"V$4 t3()$?7" O6㈜v>a3낗RY7>)L˽D5SpVU2b1Rp ѫkˊOB 9}X/p.`~f-g(=I~0v-T庈ՆćBSi:M_X-Emaӎ0ƶ܆! 8=?0A9f9;$NLN]xeCaFEe(E$/"elcB4)հ^ܝ.e_? 'ZO8r/,fj@M6ͨhJié ىj4q(^Mg{FEީʑaaK n\۽^=}ϼ߱;Lx`=}=#GZj S /m.4uޚn Z,8sHԶ`=@.x%4l뢝?O9 wX_|?,tێ|K!G%Y;Sc#^Qoi j}6ucI6 ] 1a^wV aF2tZex/Koh.r(]l,#QhE֭賬=RH_F vGw ab$El TJ7 }MZ46:Å(=(=_ żQlL,lax 8j]] <|R]U)c5nGtP)ǓJS7Cq.CץZ|cg+ ݘ^(dw*GD V9`Yz #r*+P)p}yTgw_WIhX8w>ܻws?_~uKd.vKy)AmF 遡KW.iN[._hl$;4b{XfΧ~{]g hf2⃴_:DƸ~!f?~|k2xpSbA&Z|&x 4(Ggf *I`+ѦG)݄bB*8-|\ރ& ;͙dG ' 񀽎)&? DggP_:I`) l_w\7Cgdu3EwHݴ<裢}glYOWt/&Uf  ^G=;*$J MU")l6rE ?}FwcRto=JS"_/(V$KrMȁDi cYy:}K`4XdO˲7LnU#QuD3W)vzfhz(ا%7XC/>g[m;hƥj ˤ =5%\&BV\E\DS _^$TmC0{)ytԛ{}<:.GFBf8贎w'DI,G??ڣ_9M2}`{~8s).r;XB|oSg?j;}uc{ȦG~uIT g\z<}3vlY4vTk',vJ ~]-@x4ULlsj *FDH5}{tE'DAi4vyu:qe|YȐF'gNS$` 4Z@"/ن 8pٹ(lO`;KW I=XHMV%ZU#ƒ,P:⯠[¢}|Q̼$EF=2i#kȠɝ+J[B Wu9򄟃pxj$#CA 16c>T.'lPbEEbN8U)sJrFnu`\pE&h O(CI݆Q߷ ܟնo5>&k%]i[@ %FyN*y{!;2"L2/ dd:tG )Ϧ ϪL[˿ySKe>T/K8Wzǀ-83CׄO C7e?~ܘ KFrZܕD@jX _KG9\WfꙟT&hSsiMDh ;RF,z6dg4o/X>I+no($Q}@ΞehotcoZVs"z1x{]3s>$0IR#u^RWy+[f u*D[Ϟ]4*ݚnmKt^V#wⰭ p!8ȑhcLWl^C-Sq-U[z֮Quq7.= ⾽@֍PHHH"ya^Hs7\m68&6Y 1H%t[Ly[%e!&$kj7d@JۮDC.ndsG(Dϛxd [BQ2qۭg fNU픠JrIho/ث$aw zXfI7h -W1˯Qz>6Ta!5&ҥ 8LKݤ _vvzE̤'ZM5);TqCf4NVV=VsAȘlrq@<KJy|Ȯ/9Y ) {  ou3bwXLuc,8;zPfAvpnU&[a-Y OK>t┲JSLqNT&w0w4_uؾfG\M\ ^W4E4R if+ho1/rtߥ\`{*1C唉r+M`=IǞVlNTNLgndwTa `%޼`zwq"|Qc/تF8ewOj\R}nAf!93=\,6|-ۗ8y̠'W{1.[|ս[؋Yr9}dДq$/sy$4=dF2(n.SbOF E%5u1?<8{rj:qy(oF4!rxa^1HsK7Pr1|Úhw|Ton]4:faQ}a*YMU+TD(-x1|v~e8Q4J)9"*Zh ֍AҫMu:87O?1YVGًlNUBZi"z22+1FZorh6dty7(ll'vs.18]UZ$|YZiE$QH%`"; b]VZOuԦMO ?\iwH.Wc-gp~wLG, {ci/8Sev ˱s|FҘ̦E^ΌnG#&} t2k&Iyfe48A."keI]jMp7B9Ũbû 4 h0J5镹HBз$JNւ˴= h^]uMPT#aQkR2OGweP=BiP:gorbẅEI~LK o}͡q|~}͇QMza*f;zA7tt-pwF%*`=_-=yOc{%II?~"/P$yZY"j:n 5%,5G(mCy& ;l0d\v{3x'{Z=YwK;#H'6,&' q߲ƷT϶@l.iVIA _V d(& ;cQ#/u8EfOfuoTE7w2$(J8Qg!,Þ2xnql{5i?^ShY.3A]Uƍ\-B[[Lddǫ13 )cEexG%5Xrh cN:}"%vBPzMy8i)h#nTПrB [J"XKFU4%e$18>lI &uR ퟣu"4&گ.btz)5ٛ^~νp塹B%::XD5/i[iPw /83:׏!I@8JĐeu5>c AaeWI^;N|ۀ#e͓{,C).4^O52 ;yäxA764;Ogͣ;)ikFN>T(c~*h=2F {-*WMDFCfQmw. Uv$2\w(VsBPf Svu[ۙ͌lrΌQkt0P6IPx]:J!T`P}A5RD{4Z=+yUK;_*!޷ ƭƎ|LEuNBCId.!(OV9-xI50ц<9WψMy[I HgG6w(kF"8\DG:,5aDs ~>RU9sCXof׵U#}gK-"=`O k:f4aM۫O5nG'02oa~xWNAO: ᫶F.5mթ2bhe]Sb F2H(<m况yB`})Aʌ.8wTӻ47FK|u6Dƅ>/߻ X'aa14\T:F4gKu.b2.2N2jdkPVi#>ݳ'b(|b6YT,qSsPs=7 S3f?{T칳]j{'2~WՊeԛ:x= .'_ Li* 9˟TEmѠWm`-YK 3 Ɍ| ΰ;ApEhm23MQc1w\b,&"( I-S m<|~]AJXɹreoRMwtŃ]8i9RtM n"uG)-nPv"j`i ~GnxZYݗǖRy_Ԭ݂OeDh k2@Qâx")Nq1~Ҿ }C#}9cuI޷HHכ_cQ=pSȳ۴=qMNomaA;WY? ˙V7x_;v+8t~MҷQ>Qm\_l/>9KbIk2\%9DRؘ3۽<).,y&im zP8N|gsTƫU6X5)99f VwѪ< 'wvfaPG'T#1zyīu !N<<6|ЈtyD~'0&2ˤ,w#ȮpujNX+@yB\a2n{w:**YWfV"*R1tpmt8BWѻ|5̯v1j2 nj7/ +=}/p&oKժ\(AS =d{lXY&v(]x_LïvX#$i^@1;y\+f˓;ƾ4n(= WRTUƏޣ 1kɵUGfk) D4L\;Oe˅y5QįiYLh+({( օމB($eֲwhm{&W줗|/Omjtv)xhkOFج:6ս9܊e`6gZu[Mp55멎Z[~[$R#|_Ny Ζ![FRG  .$l!eXg;0MLjH>і~*s: B3bH#q* AA`'C.{4o_:2>ynO=:R65S5 )\g%QDoRݞtia䖡z 65B5SuS!i9+{8C+LW Z-Fy%fG <I9 7Z-?Ğߐg%ԙCh*4쒼r| v?6.MHN[u5iT-L坊{DEZ@#q-S,G__[b5񹬮E5͑4nV2Mif'2Ր7231w*Z۟ x0u~~yy{K0ܭsf:KTL[AEU ~  :ܷ0r_ud ߐ8WI.[OGouKBHDyp/ݩzuHReLؑm1׸"Hl޽IOSB9trC )Tuvfzsc]v*I3HhP ɤ;?8VI ɇ9ƨR,}" uR*8 Q823yȋ#6}jw{ULL*Gz^vf)FWۚD_4cJ&GpBARzYy.ZXxA׫S1=( Z8 a*]}y@~׷ſ7RߦףՠSMzdX["M%G8nm VDTX6TP=F@/v]8? f1O$[2&|%D`=BT}&&pek0\0}wjt0򖤅O0' “d~u@lej_fD/"ɝMЀϾ ioQzgO&vu+KbQ_^ ~r Fv?tAu}DSѠIA CEVgz b%r ˭lFөX\Drc*bb Cٸ2zײ3q6t;}Cy89攚l`򿸬dOf{_Q<- 8_.V7H$SeD / hƑ|zmc*VkKd`eG]\XO8$DqwكTg)c"7埻SeМ ;1|tÃT7ͭ)VUyM[9rCl۴bةn? KK0zr $ [#^8OA'Xl1 svO>> lWb :曐7q"wX~۠.`)Vt(q30GҊqwCjuHcj \ZGЭg7-n6FܟʄBTSxB$@"HQ53(?̡:C4x/ -6QNɘ{֓ ݭcЪQHm1\YؒcѪq"bpf6ݘ?N#a5y"X##3p(D N/9yeC9@3bBx`q钳S<B#ANЍC,{3sfP Xr {hd<2홄߯_~[5T0J,(N |5]|p®'yw(vnJtYAA&!PMz'{j0M+n&B9b {YoxCchsX!K!(/~5:!3`|,`ӫCHX}:V>n7jl˜.pnwȠKRNosYhG+H&,irWꥒ."pqk4۹h(rDt5sw :;޸lG ӏ@WV$ආP@D&V$8LAGa !@)# tSLyQD2#;={9]HJxHYoޭcb E+~sI{:McW1e),Dwu[!z=67@UF,Mm$Z'Bp(B bF„ I)A?3>@,)IJ6VgiϏYloݔ#w#dyяnb&$жjâ'إNy 1K=m m7lFC)_vKRROkg=cʼnbA6v{C?(TdLJ½aY],F1p t=pVO!2UжnEEX[5HyM2l24\%l8u`:ѓUMٽH#mJeYqyUB kF-5:yܟZ7$\BPTƔ/=-6xS*H0ceٽ~d~ 2?F8 y'bAUPcnc=g`FU= cR=ĸRX߷`Vi=QoɌFUTy;p }rBd[8b _CU<7 #jkM.v 7й 427,DEߴ{NámnF.2U"k|">ĶMfxC]1JHFB?M6.WfMeDN<,1)4(,?RIGjKv(HXr,j4QĝYPOܦ =ly #2TPUȂ8 Idt4S:6td+Ef'>jH"/Ӥ5? ao0.ֽ`Ƌ{FIt!S`5dRƛp "wqtU{pڱ =thi10i8kWٝv(G}Z$ScK.:d0!((rFAb#&R r@>D>飹Ha*֧?gj.\[:jך^eFb r}$܁8H2X8 b}-X }= {K$lU@嘝4Å)phk߱ߺLw 5='4͖%k |CN+W\ ("iˆ@~dv.Npm5d@ه 2 ztxnRDPFٛvP LiSf&G y] J{B8lk,\"|]G ז"߈]bOl1 gJ1|6,ĢY )7O99LmpI ?\m`@7SgcQ,9Zw8*늌&=Nuf:j.|ono:1쟭uy_5ƣy,겟SU/* h)pkʗPV]7/ 0tDJÑBx1D )ˑmٌ1ORagQ`w _10R3_[抝3ƍly|p3rJ3ƋMxB۶K7^vI_ڀg;Wǥ,StގgD .AeTE? x*~"àģr֝}py4ێ)~h(>[ E;Cn8إ-bCmA@Z߁!o6OY^D\B~x=ϚR&`*圼fƘHVX[5WGU!1T9)+Q q$dG^/% .*P&Wg}| ݭ'ŵ:BkE#W%G NJΆmԟ(Sj܏HQ܈kxV.1Znp4yvҢKJSqbM׋w1.<؎O#S˝FChj&0*8♛I^عP۞~1++AkTttΫ~m|Y{fQLۉ30`ȶ /F7Rc8T?s]CJ,/e9I9&6q|Myn' >ks9`MG9̷7mzju ]'mkL[;DA8DuF}'~SףVq[cOΝ_Z;j(}x#!8~V~c"XL#L`#B>'9~xb3n@[Iq>*D)Z V-;,@#rs~..kk@Ed0r"qb j-o4#gGd̜ x+nvcKH77I+qH*8*XX\ apC\ 'ZP c;~KŞ.Ck[ƕ@q5:rc`JgmɌFtmRXŽ5K6+Zl"_[|o`<`;Bm5(L0hr~ GL鞫rYR"A㈴ͽ_ۮ?0Tx7o]a^3*`R%۴ ˀPGRÄFw4`]1.f;Ӌ~y[X УQ%K#}NUE_z ϼe7>\zo4u4O79%Rw6fsW9wߏCۺ䭟ȩ?[Ckч-Y 3lhnr'+b<9oN]P|>$7z+K@MkZ 0D\=^,'dFoU8!H6PW`Oq׵:d:}XIz AYIJN0Ud(U٘[[yΚ0*ShnCQ@\‹OĎ`.j$ EͰ܅h(hE)YM1.P)7FM,1G.,bGAw3îSt)ڻ(݄1'=TUq"mʨ3Ɖ/D0 ̞moIynjAf&W"wʅG\+`y_^ViS{1<udViub2UjEv]t_ݗTTVP?_Ma+.CJCj-u"mC^@iXB.Z*`jcGq )$` ft@s |fж|`\ev D(]킖^[zbֶ߶/؎f2b*4{iAb DMUDb8򵙬} cFYřd]s͚9hm |pe0EktXl6*^o>u"+W\`7}h!$5}ueDŃI).g_zSHjJBL [%"v,>Oz)Q C?jOy8p_)<?"j^cCŠxռ'X[6-Ze*S"zjqrZ"tP'<6Yr+ I (tZa1~-  :3mjb")[ֽQsj1y{EMՃ@,FIml]j!O'J/qkPԟ)!!Ēmꀼ+ G[ (j/H86Z 1l|OeOhO:`աPK<]>&|2h}z!0Y\_՝Bi\P{ zn ;S&ռdP8e.x#V"8ISɘ` >lؗ|{q}O>Dh=:=LyY2kTVfq$|S;mXB3u! kK<^nI;3?͡?$nUG0pS>q%,sJshh=oCj3}͌ k S}(@w3 Gg;vW`ݡDŕk]~Lx#ʛf endstream endobj 114 0 obj << /Length1 839 /Length2 1219 /Length3 0 /Length 1797 /Filter /FlateDecode >> stream x}RkTSg]:y("Ф$!"Mx"Jy#-!I.$7!X(X]<$B `AP,jAC vͿs>n z CD LALI`.B C\))&FR2p$ lm} '%Gr#(.t Nu16BAą `<8[*5%!ag !CYXx BR>Y<ĆK6$(\j0|~0S1! o6Lٟ/_ۆ0<ްMB.oˇ $a2 ,0|6|Bxf@&ɃYI$j BkcvvjᏰlHb1Sn@, 20$Db-@$ESG(6X9p8HL oP&ronDba Q6 VK'Ɩ2L")d2<zu*/,@ i@\v8%!]Ͽ% }YWQEw]~1Mnb|HCp]k(tn\v@ŏT"tfjzhRhgkABKԨ$WꞎYk; zcsebUrNoqh=KyV̳QO$v7`[Uza sCOjD{-8O.۬J kOZXyfɦ/ПouZ_5t¹f[:n[pZH2VF_sd,ܾ5`稒 ʜ F.3a=`(՚.0.ͫ)rDjz^;Ogd%we7ANF/.ޝI"z}ٌ/|z˗x".獛{Y3'bWOU_% .aa靠pUՐv7hHJ򽃳-}-ލP;՛rII$]w5Ik 9lZ8~*`r߲uΧ'+76Nӎ_l +h7>6w\Z(E䗷8SnA4i @uFK;Թgu9\>71gbP;a[3u}/ sڛNmIe G:)/W^y~mMB:P R88$m ^Ejd|ۓu\{\WK/;目L_W̐qoSW%-<^1( 0͊L9]'N c?^Dw.b F9?)n jLsj&ʏs\+,xCgtKAIӲ`#fVOkafn4GmO{\35`漙@ɣޖ} SeЙ~ prאP?*nO&μ޼fuNNԾQϠsس;<8i*ԶԷ-HmwvSDM{,1Hvŷa ?rjC/UISCj\8PBj}#H\i^1> stream xڭveTݒ5N܂w 4N -C]?̝u5sZϩkW:HP1rvTlMFn$q,t@& 1LJDss03wkj1|O_!#t0h?\@ֶv6 ;p2L-Aq:Jzi% 4 rZ>;Y[,A`G`lbWi,X dl~ j 9X8:,f@{l`ckgMm&d`a{lh`axYB<́NvxwlM#Ml*o;̻ hv8\eX8Ys9XMlOLWwY'UvQdmʂ=Aa7qO 53 $&`k7 U=%2˿O-W#rVڼ? }8/hca?Dk 'Y'{DfRh(e 2ldl0Zo`mkwS70t] ɿ2oެj u]u'u7wbQux00s}|ll>.CyV:9Xދfcd/0`c[D 6y26vvpxW^rd8gk,` ?oDB/ЮF=/ǧ¶;9d2vmeGqwϚ=tM򝊡3s]?/)GZg3 0YUDɴ()MɟSf(<'<&"qC' !r1(_nR]f1 Jvg񩢶H08P_ueOl?mqmCϟ^Ax ]Ax0 :3|%36ڰ)(PeU -hW M'*(CZtqNwƚ2(I$pi@"XH >bc|Ci79Nm%n~0\'hf.v𷥅xGN/'&=NhכdWDy?\4@AC|"B0w'4{Q;\!CJTَQiHVljՏamK\#ba=bc-gGwJ'C0S'"2D6S`iNOSεC(bG$|佱YC)B~5/g3teiy .+ǚ^YtcbHEK\*ʫW:_;Zˀxb6Lt~  S2UM_:üQJ <#JX|A)Ç] އ156S#&[];#6EGS&^oJUYbTympU!! lBxGkJ&RZj.:1a[3?3O9>9$觴3wa-B:Ψ\̭yxDO ;]p"ÁGIV{4@Kӂ30z\zBr'^8dIA0epԚ]CsT#Um!Kg<ɭH$7'ch ^Ǿ'@>Q$ZmI5jbzWp`vf? Z" -)KJ8e*lb(͑eSV(鑍_WP".L4Emv=<#b6ݾ7DK,Xn(-gd ]h2ie'aB  58 /(|=7j;r7QTĿh:\ԤoJ׳O i0 ȡhJakqo49NZTgUs+Bǵy!i\rp>|4yV/A0@Sy _gP!YFܶ2ZOwf$қH==s(Z몛ex]%TGv?|=S҅%((XCʈD[SE'|~AcMB\Fo+=n}Yx{eoWGQE ~4 -A91飚JЧ(إɾ8(^Ykb[2(>Kh{x&K%2{}W2:0bae JwRxJzLkXJyЬ-ӘxO蹛L(%Wa ]gӵTjy!o`gX+RV!C^Equ4C }>ՋS#E1lbUPRCL:)_/&T}u, tx&׼pw$,c_{5HcF`p[X~owLͷ:v:έ"F}#e*V&8 sNOߖ&RS{OԈf1W#j-`p_(e7>!L:JjA,ϟ8 'I]&-AU6/Կ| I^t_$ͧv%qwξ-cˤ{;#Z( NTedȲbR9 pHg!<'T`X赻ރEE(Պ>Y&hr.m ˉZ۷ IGE `Zhq2fטPGZi]6n"ehDPRx ZIāRz?CB(dƋ$1p"ysp3-&Sj~x!bi*Z¾ZѬ5\S .a-u71"6Lcaʰʛ nXkg[QݢfO4'Lx%83T[B}^aqsz^,b90QW͸c1畳Lk7m96mC9\&,@%5h_pFF Z.U챕(]#1BiU/<]{r Fwg?xi'/>Xix}:R4T錹Q' EY仠ԦJL㎈8ˏ&̌ͱj/[ݷX7'nhO/I`*|gl|a x|6>!P#5VLR%ZϲߴF/EB=̤n eL]WΆD4-L @ Tsp&Ϸוs}لp@](*(hcmI ֹ#X.9ܩ糪uzvh+gPFU4>웘8nuDgzГ GxB0|d߂41c`l,3R҈ОJ{)ɇHo0W`o4l2^AN3+"Nes':?W}:_Y׾"Vo&.H<%! J$y+4rTU"vu)ඌU}r eHy0L+`5+ V+ZoJ~4n][0cVN iǘ@YW1 O4#ZL.1ԋL]$D T~F[Vz0+&)N/}?yERRQ^`mCm& T".ZdvRB>~Hyd^$cpN᧣Nm'3'UK[Pv΍k1H6El>۷STg ,SacS}e?~u9Lx(74ƴh-X&ss%s[RGM +w%[*?%c煛wk5ßY'@iӑI=,qL(/:F6zzqCkONcrJLzcٍOQpK4<)[^]SWmYbY~,_DW9 gGl`{l 3FSCfN t:VD3~O'sYrVqBExաdUɧXYEN>ԟS֦J v>s cnpގ >iY+]lsʣ}S|dD<#U! [7jduDd";oz(:[t/vܡm )E)(zS-wߛUAheyA;'&Em)b͚ R_L7 7;/j-4J5؀,Y ~uth@&얳"2s\#A< y7)uXflPx J4LxP<.NF1XH/IBqjThk&Ȉk'~B!W'X w3d6,T]B)0|'=Q>u`|~9$ \qΎfe_Ld31\of{9e+%9k 0$R+~VvHyuc4x s,ɔ{@ZPsi/vy9\|–c'` V hDn9"QVp`[ R[|}HG^NƔ-xv mXjJvܼ)w?o;# r:e^(3M(.}jJ hˌ[b`:2q%&`!x?N,bqt~d"W[Qȟ@1I{0 rC^. BD6f)C [(BR'd@h|#G1>p>V~uR8xl<=;%lm78s`x ?۵M(/u@} 4ÓFԱFs IC6츏|?\5# Nk.!,\>)5^QnOڋ" EEKiRI#ߍ;`a ; $3sF>kty=s{}S9i 7*Mtńos]dcVx6oCy`:^Ԟ[5 0Hl.Lt=TZb0e>!ix7³oR=N:N8K|˽R6m k3 Ivܐd%0)GQRn+5|^12e|?|HeDޙ) :d4Y6ԇVSJ<,E6?0x-O[PႇrvcuYt9tЯ;Jqʷ`+M/ -˿́_v77.'S|۰:38CBcb8H"9-c´(H:yLEe;E_0[ m l3 @M\/FmA <7سl\4ǁ C!PU Q4Co,=ވ%nX]]Hޝϴkqy#@LS r&7%`f6[1)Y$<RĞv:Ix+ԓ?2++c?nu*Duu3RvqnxU-HآјXc)rJP(VTY]z0:G]~gjXx ^P"jb2C7TD 7]IWM\G+YX/a>/=@gW`Qg\Dn>vl<[(hyЬQȠU(kaZ# nXGI+C`I@C+ y Qy5Tf+x{,q+/ =]c 4vbӪJnu-ǢW۪<ʫ;zSa6oԚ=إl,gMV3F2~kJ[zՔwd9.QO܅±8RzS8Q-6>ܗ =YhggCv K1oḩ0LL6>Pl/ڢNP/DCN[t)U$|RVx F:Aݍ1v!g~g~Y;ʸ%)E8pY tm23K9>euW!wvQ9eC$SEluhNk["U*bGO*c[S9 pu>Z i̙xR+rim9`f:CF谢(nl q0`PJf=y c+qqOwSHjr?SYeLFEY[[<͍ =V j$BCo*s6R|b[ibm "{~A,!bS0갂8ˮ!5.jEfqn딧0ӭnr˧iD&V!@`Fb}. Bcύ`'ZwY،7CՐR%rf^7'|'ۄcqQN-H5A6 . 'v1 =E17JJ.h9~Ґ6%c'iOU(v$D{6βk 1ͨ5.: {rQB7_4%D +9a=ʅ3E'[uʔSJkLO,ᔣ̓:89ȓB]b&b?M/YxΟ;Ƌ$΃„o.J%"L&..՘LT;e"+!w=yӒ#=ln r).1K,.X?zP$"5o4=>s(Gh_#vԅ|SW`-Xp$Y Ӫ]ڟ H;]5P < erJ"XbfGWpQ]aY1,]?Flp'z6us#{פGtx}_" OE>j0VՖQS۴jQ!%v4=Zёx1I+U{j0HOO=EpuPi,lmmm&C8+~^…Fȧ #<=y;R}{ǽאCg%frIJ gSNF?T,ist)#pAi)neFPp2| eFuJW,mx*Dv o4_"8kbL`-lZfv!zGy\}sV%2GDRσӄӇĿp&`+ۄl[xeKw?+i4(H.ndR {/_DG?2ܵE_j:MҜ[KyɼiQʗ-aG2*xI\zz4gb"o'`1U<] =X%1p7`~z~1+8F2uK3I /l9N?Z5"cǚD3Яƿl9eT3 7֡0,D׍N@mnRCx-p:m!ViR0*@8 B|VA gUXq(]O (%ǾŶNXWĦ婳/T(ŷP컽Y p̱plvl%m ؜r\G>8Y  )Jc~':'AceaG.'}㨌nZ U%.?s @G3/*G\=WAIc`kWq}Uy5L{"_ p7m: {˷VqU)4w'*;>)SlXpK[5CS03UmrZ)AqCSo\ѥQ {Ի%o% p:Z[9]Bw˕=X psP~-mvg5C99C2{ˉ6HWRx g&2DEj=W,Nd_cWUo\S\in+TTwKT+ 4Va#}o)@b U:Z9Ru3Bӯ#6dcY8 <4Eؗ̀FmCсQjx! _!S4c"C]Yty"0 >VfHGa v,PQy_k𑌸{>+ժ9d'4i#~_Dj]Y >c%";V*=[v-rLLWIu,VWlS?+i?SiK7􆅌+oid=->(&n}tTР8԰Nʫ@M!%>Xq@{3\ ^f^T4zeepVQN* Kqd)6]jC5gM 9 y/VpC\|g}xL|\刧1IF 2@ [> Ik6$ dWN|oD0yAF]Q / %ojD_V$ "F2浐?Us3 Iz2~m Xpi ::֐i'JH`[_[Q'ۢ ,zAwƚ!9NsgQ%M,&Ӿwshl|KDZ٪Hd<1.#A ea^l$^,\k(_Ş#uMzu/jd㟾"9VmDX%]EۏdjIbL1yy5Y/M^mɧ3 K&H0 2&5RO,IJe]kǍaF iz^9X)ZѯuxPiK4#Q}k3bv $q݈~{Mw~S#`mnH3 ;S7-TPnR0Ṵ##6 r&weYк}> Լa/HcJ:|qpϾ v>D UcÈlY4' E6E#n5yxͲ| K\3\e΅YnߕLA,h-mGIњ $UќOcNWlppqMGp8bf.E۶lvSq#W> stream xڭVeX)nCAi)nQ~g}_3{{+g^GKj RBW &$or!Y 0<|h!@=? axegA kv wJKGxTg(uuE?Cۃ^+k ]Wc saiO> `d#\|,±cY3yyYcThceDWϲfY%[0W^0  /ZGBPDTK`_ouj8Lf ]$_kO[or̷tLL24i[T;jc4U uᭃ55:o}9"DPa]9q6C |E"@6)c)ݱ_+$ :MyR Q:y|RW>4}#Y˵lr~My[ADN346saHKs{Ə>L|twGᐚhq޻ HHbСeΔZaqy'J%@Y2#m|x8.YߕɮN^\P&ZhKF*ߌM9oP6ysll2ӱân2L.ң>kWzS (5w b?S@'^s̚ˬ]:L,rnF&~_$ rplOk% W9%! ŀd4fަɲjoe:?H(MC\;#Rv0iCVScBtx>TVxnĉ, ؞&ȣLN 8O3_"ŶN}~QWߛAu,@Š'~M@vN",΋mFXLEEQ.볷 wkov~=ҖQt~|Nrshhzn`GL[h$We4񼸍af>+AkQdU "\g}z+Z?b$ˎ FbRw@f?I"~ޥɪFf1ЗYO[)xRfRM?dEܗ5D& bJlx;xWB;JM6xE< !ÚK@g.JVLI;10w^)3Gꠎ+_/FVqB8_aT?5JVmr>{9<a,FZP~*/z NRAD{bV<3˼}d֏#7jĺQ.y+`U"U"gmHem{+e$*6vyԋ&801!xTh< NJ@;G'8S#LK26IGFv']댰 :E8c^iH>S^E > <룏d NV 56帟7Ye孊/b'2 } Dkܮ|c?O )MKXR淄Tw̤I 5K<UڶQS!*0v\4MyecL5ׁ1@A!{z;=gV"sv&ĉD\#~SD)鐀L)$3ԥͷBws&ċ0e-i9 UnO_MwNYrSfSi3 |TA͖A\0د2z͛&t *Ė }\o7-wz,Nrs+ _/KGsKܸVhQp#6!+zޜ(&jlaM-MUU[F̜pvw'i3<8`D@F l=ܱɕ!*@h9Ww sGnU=ʖ0WAbwH0,ɵ*Ai& RD_jE'&~Nr)4pK8pR^Q{E1J2B̮+xj-}BpWNkyM]޸pbz Vp΁,l.c穿qag,7ءUL&:eJcYη_+qO?7:js/?rd^ ~tkr+1F2]9b•ӔƮIF5舰lڎb}wZقAG o%"̂Txk<ُ$PamPR+kӏ$eɨQU'k+FI]Ƙ pĖo;YL*s.Taj[d9لu4VoˁGxGÊ]:9xYp X(ۦuϔhYQ]rxTnupB7o'z$ي9g'WM3+8ݖzq_~=1]6`4ǎX-.`C`@Fɉ:MukXO]Q(k"B{!QEkHF͕ζlvr >73}yǡL[&W膯E\Ǹr4 szqk㓭'*ǵbMPil؁UMd_He؉’4#/qb pD׃O[=I%)bqBᣚ) 'ff9 :9:T.nt vaN(B6>^EhcRJBX' B+e?=zʭjgdV-Oetʡ ̽RԪ ס]w=@jPs.K"$JPV.Ij1B`{uʣwHsD/50jӯ֦Ǝ+6brdmoVUq΁y *MOEMO7 JĠg0"`ӑ"/K|]H\XR`TeAp@Iw?TMɻ2}%79ܪ&x*Ȟ7*CWx+"(\R7;f/+DN 5ojfXM/r_U 4B1fZdj'm "? q M|̫r%U`fTE&g|SmegA2BAf+WGĕf29y]ۇWPRFT|s:ng "̲phƵ") Kr8.3\8*Ax+UxEdo"I/=ĩ ,zLWFn묋ALVD__7L@unWi|Uea61Vh7mːwkE,XFXۖ5 WҊnfle>*17CBD5^>r1@wSgqgiFX]vb_S.v1߮NvgMpi4/ /~eR f^$濼N+ĉEEĬo7{ٵw(]]:JfU ȶՆu~~@jaMa85Sϵ8YƟEd4ï?pW-I1gD *Œh_xw2Du}7>2 z#[NSj\wOtTNER_=vrP(&F}ζt/9E^MRدt/Ϟ¿RݾgPhmI@I~TB#0𰣩xo GHTWcY$\U`_d1Wwc69FB)neתlN8fƄ4R/XG>I L=ؚ..vĥ70 X7V5q vVvڛ)UFw0 U#q,mB3WsY!4V X"Ij/yG ko2QulcO.04՚-{MH%EE;T7_iV9˘>ɣ|t/dC)ۦ*۸yRZy"cI R{$qA>N3޹5YYk"~F@xC3-TW*JE,#f=s~Hf}=wh_~t+?gEZws qTd6Gy,9d?IoqO_} 'x S?;4ɮ@>yQu<#[ңxsd"?Bg-dr7ÅNzti]/} LF?aXY期=UF9ƹGmn7&cH 2Q\rluRdg?6yGD~L 6EڦTyD@fd󵼆v(>SFߨvMfK\ELE!=ŘT_~aˋwY?;Pf0*MwҜrޠ[~!yWA`og^~Bz!իYԑrnZU՗c E endstream endobj 117 0 obj << /Length1 1144 /Length2 9362 /Length3 0 /Length 10128 /Filter /FlateDecode >> stream xuseX]K- www  l5t]BqN~oXUcSj:)Pޕ3usQ7W`RZA.$** -wBh r4q}5&vV+?+/?㟁g7@ tٿSfnv@{Wu7GG[\ ltXWY^ K+W66>>>?$di~_m.!:mW9vV,,&włB^_.HL 4{oʋ?fca_Y4ANn@9!XYX@'̊寔^I`{s_GG d|!n@_;$669` |@M\A=VfVV6_߿Vj`op%; EKCNBV?{Wû$')|\bOŻ]]۰t 2hm}V.wWv4xw[ 7z/3Pt\MlAfbE 4WY5~q@_o)7s0[]gl//}<_-@@3f!u!5bL}ܚwonHPJx6oyS%UƬ!by8)T"*,}| :SS凛d OC1H#=Veb.0$׺ SBRΉ.'O݌EQy4,ȯ#(pxɉk(xxS\ v?3;fhGPx썏M=ȣֽKs(e6~=4-u,;X\[Ą a7?fj-Kv~=QOJP.苜QOAL|+5Xy1ȿ*!; (xJʐQg`A}̒bC(r[T1īt<Ǎm_񼃗&.NҭL}v\&76g _ ZG"ykg UC˴%6-'+s'R}=_daOQXǹZ%m[*>98P>2zH6ӭ;f 74]Hi\ Z6eӭN8ܑq _=^تVOąmnm*54;8R5js 5a zuu^dxKw R14BV>[.%Oc+"6[SX/ $V>Wҩ[l0Ma2}\SYԆ.R4)8frE3zP[ 3Ɠ"MDd68yNi@ DԢ!"DHZK25D6ŕ^+l~ x m-G=.ϾJaFF%_F²!~' Wd'ֲ[$ؖV+TJ3 h˝L_*"Z> VvZ\佳J񣌸I/5gb{6t!^OͰh Xwl-эfrl<ь泖^dw&`lX(W0cA}О+P2.,lz*p Unv_ABPiԋ;%H!Hd'+R|BЯp0T$/(ikb52e 6t|LzFn7F1߯YH):) 7<3Qm_ ط_J\Q&*HO'KQۍ42YD.j$:]anA0%aˁ11΍gtdv8>ەE^.‹s^6E]SDe65zvUy[?DB8m Lֺ5<,X*׈B&ot*WԥPnǺ,eȻ;GV2*t$$Fs36bעBȉ$㊪Z~bc,fʆ`-b,$Hr_nސxXx@+;[,֊ͩF'xv)Qq4BRzB+#ohiV)fV@C#2Jz I{r4v,[Ve!'ؐ5g)5OSux}DN>E_8&k= ,<"s-➟4G4 JY!]mcǡ jfF&=a괣&[*u D*fwԩ++cr^<x; s1Jp@|8WV 4\rTM 5/iՄ~8q™u791A}HTKFbio)إCTR 54 =8kf=-KYnd9ӥj>雼>LzGKX7gVm Pq2 `€ř-e.ƚK.,_ Y(w,G7ӧ+he7dx{FMVgm;Lo?WTC=i\L.Ul_rSGdԽJ`n ݕ틔OB'%0|,-H^}%Qs#5N^fs#k\TTO9\EnSRF#٪AOXAlAcx>KŖPf˥=.l.7rKbNG[z6.v)cq.!R0c*?Xk̬d#*_@Qj|zô)Q+MWH8yw }q\bD:GvV\tLξ7qh ˱S}IHO) ΅Y+KYȒ?cmCR>N32!0#)-Nw[lrNI!+`,k]5 I ?2|`dUmz歄6Mͮ5ߢ`g+i8RqSr0aD9( N R;R_#͗Q.CAiVreߵi]S,T&K8)=` (Dp+hHИ8s̸%vsJUAPeB!)w$]S%9 DwAcPƠ#M8PpIK[2,sHPEK{b|rn(ͅ;G2ݟweSPH?*fш7s @-+G/CpX]AJboPW !{;:%7w-]𮎔5 O2􊬇52LBs (^U ڌx}cv8Y[~JS㍆'NI0wg.M 4Ƶy!lh?} #s~ VKaSy!B1|S'Ws%/b\D) *1 i3I$!`%-2\/(7ОOy_@z#ILu7CG_֘,ɚҦ/# Y /=jP'Y dOd}Ր<|U4^~ c4_qSHE[H\lbEGNFUpO+ʾH-i>zQ*$˴nbb,1rr$;X;8n5w=6t6-ɞ kӕ1"01C\Cqm!$#r8È&8Dy[)< g0Wi]S>nL6Mmi'hb[ Kp(Iq/)Cl"2εICDK n7'>\#?>0r9I2&[;*܈_?޳No,Nnܿ|?Lec]>~vut2 P.wt#9t(G>q7:?%;ז#'(*A}T"\< ]SwDLЧ'DDG{XxU僟)jdzɶ* f=k@{&>_ѣ:H7a> b88lOf"߀݆tNj8i}lD4ޕ|]X ܈<9,wo*-ZCpfUΚ^5tm-0aZvX@f)ܚY[1<.cDEVr ?kqBO&Hc_@SYjl֋aw#7sʯe8ٯ ͑QnںĖ$50m׺I#/u'3*uJCb?E1 `#/ww CaX}+mdb k?M-9f/kkOP'bq g@7ܯ\GKJٻj BL`!7ǩn?f:=> ^zoGv5f۔pͰvek76.|XF+Jr?0To¶4ֳ }ɍ c&|)kݻX︙(ELi~ݦAFBЛ qH7"DrK# ܵLX`Ͻ=AfS@#R7SHC.'e>0)6.bon2N^R =%*y7X$NIӹ;pJ NjY40KCc[yw$nA<[ 5|9Uf? c6ť?&>90Bќ:iVSgC[ U' Ko?*$d - $az~I`\[iHiL .*\W!S%nW=JQͦQuw0Ֆm Qk}ׄeC!zP)GqT J㱷4ЋvCwԻ. NwB vɄSTAFgoӈ"h=xy;ԜP%I"O'_A5fsb8 ?f +Dө5Cy#2JFL>g\XLxWʔӨtQ(kϝ_:.S{3-A[tGG3?ubJ_e7Ae玉;V~@+EVܼ&G(56>}H6] gJ~#V3?6NXqi Jg7Sw+6v:*ފ۵ !<\\iוQ_1+D(FbU4x(Q;#Qrb_M](3Dt߬ ` r%eWd|>GHGஈ 7 M¥ɒr~ idtR@%}l=+-^>ьkK SB~\/vP1"wgWxEVrTY`|S#mfIq0瓺 "h^\2k;;O3A8 mQ TP`Eq.7|ͭ'D_Mˋfjvv=$NM/"%P=9ON$6gxO;VkQ9VrR46zoOuH,JS Re& d"zX55Ȍ<18{jsb_%Ja<"轈sMa)WiҟT<$:ϨʟMH,0 &ܦӘ]R).%4oL)0f8Wێ>W_]&1PS@.xZ#LuD'oB<9oύ!GJL-";Jkv—_M^xzX#/c趁H$9rHG e b `u͉x]/I5aqn(Z-'ؿ:hw70,<ΞF>//Uxj2U#pnBw!_^T3 iBD'pތZ E;} s?-g#仁ہ BfO/ @Ht#Wފ&L1ok0K@g,ItŴ ]+tb:\+,W>),f X5?j'pR azJ0ZO_XI61PnHM#7@YYIIQ%3\JFV$4Ǚ zbisL Lp # _mɨ. ?dpxۍ7Gn-E >mNЊi3%GzI짞I$tZ&3i'0Zu8X  NhvFbaXzVz]ri5(W~B(ek%,#8ndzocaO(T>45xQȹIϸD'vNg_w 71j5ۃH)qsQodt81Mvȡk)o/R9:Psft{qSi^g/q璢 }$jipBMB$‡\ xA0Aj<'/QߔЩ$IUdL?znA%CRaI"=Fw4ly.Ȑ=ʘk눭;B k;L {6銏AjM$^!jMfGdLU$X kc-V' y(ߓ LJSXg59nV8PmdJanFޝ`jHCK>(_=mAsK閪Pvũ:#b5YPgK!Zc!T{(f\v_ }(|2s~jmD4Boݙl.~ØDž#H-beaoC&}a^]xjG΃\mҘ<\_fI4Q7<Âc/~u>Ku^OCjZCB&WеvvK B|'!c smmqcs1$UIGsEw2+,wDUyrcg,I|l;ɗ+dbƛ;&NT*7!.:#X#md +)l (^!?ҽq; [tGn--HSժZ7RI):6GZ*[RފUy=#kZnQJ06ragVd$#x=5{c@߄6ok> JFdUղL^-4b)z=؇td`l=_ʼ~R{ӟr7ix-@ҧ rmpmBEKZCPhTji}pdVYgt~fq! B 9Q4^7hLq$ Zi3UIxB(,  (\?GL$W؁3߈IU(tmX cvXyj-"}:>"mBqm3ZphapTD n*TyxF [FTJnp=6 l>.86FW b!)ӓSvڋh1S' l,a_ͻ7^yjKEmy.aܝ)-p[~hڻL&phӦ_7`HD Tx\N~+Wf' "ը ֝ڱDx$оzcp̓.K+@uJ@cZ@X4k#DyX~rZv#֒zz#6'i~%:l6g{OݜQV> stream xmsu\[=ݍt =tww H3 1C R"%HJ7%  |<<笵>{2@‚@0:j#A;BDaCC5T0\ 1s胼"@0P(%#[E Dxa@ v(5 Gzzà 8u'T0g$ĂoDXZZPλ#;iw%4p]߱FN u [6tA0A'A8)s׬:]`PW !)dyBp9CqP(z`GxB  8$8 p@aNлA p:]`ӟ{} +ۻ˅ <V*|**’R)1NiqV5dm gwSK#ϝ+ H 06@qW~jN=D$5/ wXw?v%"WWsmcmTdd}tl%pyv_1%A. ->=8y6TZ-ͼ}ϒRobL.r%NN  ZCSq<χ$[ pco` YB-/l2:vؗ^zG2IfysE&l'yiZOOOW>VVơ9 7fԪE3"*VLo+  6?/}0Cjp\-xT,{# CBLh.]5~<YX%n*=O2׵n|7a_|{xNC-X)Lސj VR4~aʟMJ5 *q|-yت?QÈ& ;*~']p5,$k6(V)1xNk9:oį~v S2ÊayZoEc|&qZx! >NUg,ᮻ>uO6xTkm#?Pi)$Q;eq_FohA?#2~ɡx49x˒flW+y腧/=1 (#4/;oIRۖ T߷ 6" vśmL^Wb.栩!Cry[{5 ?֚\ܭɑHQb"6ǮNN]ݲ;Qy9O(zǿ'O5[I=hm9={uBKIP^RǸnA.<15jx_.^oa 4˶jXד#* vf<{*V _ -,?a~zۘݱ$[\N:YAõ\*?yFRg1_{nIAjLNgbp֪?57- I^"&yaL1#r ϯ4SM>n*`' 7@0N&00y+#v97 g~T-i6K;wwCtxk&Q/Vwq,罹&7|D42Y]V"\gΏ"JeJ]'|[.CϮt5I <ɉzrKUU1q$ |Tb7N=hX/H^ (8ͽlwtT)~2gwgD.ɰou{|ɽ){T~X~o!y$DFgN7Han(Nʐ=+Ljɞܴ+L?'vsSc@!ML򚵌w#.B bld`m4k&ςhzC2XOôp~^Marj*cJyuB9|SL(Kxv.UgaXSO7>ՈT;Ϳ & 3nĦ8ăܷͮ;仃T܌?,`P@.tQmnTCм}<-'3;NI]hմ7H;L1@Td09ꛀZVۏ\D69#o4o#"IܺwVeZMyT^!siuʇKx>\ecpZi7&.Ȗgql"1iozC0sL;-v$uИd%]SgCXCs|aRJЗ~TI&inu2|/EQ"/7i :\JZ{Ul:&<t4_ 8d9 n:jlXğT 0Xkf$l]=5$9JwM%D,Ȃ8]q9U{4)HW02ܤH(w$5S'=o\ͼmXfZmЂ)08GVR,fFJ&EȂK: k77E9Up#\y?%gݜyuB{O gDhڢD3G*Joe,•kѡ*aNݐ`Jz(NC|<%?m8T|Mfu2탕ͥXᬗ^ 7 /F{S Ȓz^ho@q~TSUL$Ie!X0-AڥN&dMZ-?,ΫLgbXƭȬGP;'/ ᙁUyM&\\ZDIvuW'Ւƺ9*(c_[YB|cxPV)5bdix+gУR:B廕mh9|hfI 6kζF\Wy/a,S8Y~)l 6#_\u(aQ:c낙ʃי;Ε`|}] fZҦwլExV[6( >YH>T>-+ت_frt@@"1`8f'V3>& ВӨ0 U ǥx g5_|hR ~Vй pp\()b u>} .NѵJ${ңTr3>DD$1ob$׈n=>ύxM ( ;t'o#cizu(vSk܋7/^K"NvBjE>\|pX+^y/M]WcG?ۂAHli8ÈL([͐-5H6㕨NF|ʼn2?q4e;M{vD-ޜh]|l1"ׄͳV6+ dSNiÑiriRrㇱcEx'o?yãR Pn@,!7Ͳ_^m"#ȶuūa"jE:1jnAkhLRbD Y]KB19(}^1M#g)ۼ銚Sow;c 6fjGdMbm)/a Ss-s!P&,j'A>,r~)r6ꌁi1J T5z>Viio!{< /jzEtYRmWv-SN($ #{ӃDHBpkյhYY,v};=h>5I+Z~]^a"S\([(#gRjĸbl|ţq1 ׏p鄫˶ՔJ2D:-+=|QxℲ<{qf?)[ ,Ln]Zqص* CeLo<҃A&nB8k]]":G<=J͚P o3#VV6AqK'G%OzRF^9d.|4!V0bokϖ D=pܑY|6e\ܗ׾iF+\b8f+^'v3-2͝$!j 7ta=t֍:Z `~ބsJe$Y ^FKS7KSXM`tV"*ĿU~1_df{kPrbZ&J$ %cW_vu'h&!T)|:.}c|fZ!p0UdciV(kl;aW}iIy@ƫ'd/ۂ~Jz\ts70SXΥ&'WT.røoЖfe7^~u쏌OśbQ; Pw{_^O[a&t,0* 芢n?+/.X9jGO_@S5;GZP뙞4jg4hxn 6b<}"K`UN1}~&4po!=jUQiN.ű`z,,]sHKN." La2kQ)ZqV#jmClIam2a5!R t5!ELOy4jg7s 0LRNx]~іe,R rFI@/N %En{z gT(ԛ EC&g3QRC$i$WYa@ڷK.`=jN8%G_8=a{J©eH|5.b`"0M1a=mnyҘB^Gf ,H`Q&o 6Lߜ[TBȱX:R=XV6D40 oJk^duVB$GBY6Wq1LpѳoOv#ލUx4GVxGk0)?ouG7fCkW6pLjIo7pj3B?<۞4lNeSTEc6oRf. cչ$bZH!'N/It&>B˫/X.]@*Z`+&JI:; vPxG54%~[:*\~&6'I߽HyHS #!q#n}{hi> Y"x'B+ͣG()Y33?O[3M? Of"|ċ nWN ޏiooƼ8N!sKqbBj(F@4nq~').3~8}n a+3:]s^mЏ2xSpiSxT96 R!Uׇ\|c]eMӔùaXp`Lk''қqNv|YY5z%G46:Ar:ueQ:ںэ| 6`E$҂8)W $>&kzIk6[vj$Lb}Fx Ll#lЀ~ʓgS@o endstream endobj 121 0 obj << /Producer (pdfTeX-1.40.19) /Creator (TeX) /CreationDate (D:20191020085352-05'00') /ModDate (D:20191020085352-05'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) kpathsea version 6.3.1/dev) >> endobj 8 0 obj << /Type /ObjStm /N 81 /First 705 /Length 3734 /Filter /FlateDecode >> stream x]o۶߶HJ(]l Hxo<)E!@4\ː#Nd@? E #@#!ܑ't\ >"^v"ІR_lk'9qY:Y{u~L^MӼY|@pC -*.RBOl%#zv~B8"[w_WPY^N FňGMUW"#{<)99IXϟ̈$jx.qr[;I=9& nI|CGI.`x-0{;Q ؟I \oɁC̓+\LfPnPOHCkC^f6g쟞ྞt3:h(9i5Ͻ*z#D%}< QFwf۪;c-2 /lO=rZq13ke~9ouQQo.ustyO6Zu1Z&R^D1SLE\uU&*Oa\8%wb%H{-yQl`t+hF\$tݨ դ44A)C:%DG)O9YDS5Giq:ySR-fJty30y 4IP=M)QyN՟(wxKLe Mw.ݣ􀾢!czBO= zI5}Co;d*M7P4}8x12N3DwDoN(B&tF4OќtA?/+}i13W8(zHU,/qÄ&iX:$}t݁wFb.tp/Qλ[ĉ:ۯ|o˫Pz0M%Oеj?EM,>ѼaMkGeMbjГ˜TLf}OjXgK-f?}e[4xFfɋ$Q2O*3ucWjBg;Lh $ydPt1AOqhc5#,57X$-J8(2PFɭ鲬Qm2wȌm;r{V*}ü`ޯ ͡9l4Ŕ !?k5l}@86׆z]3W4R &iT`5x#mT"*7(ì j0+644qM s]jSC6Ӓğc0NXƅa\45ǃi,=,zXaâE=,zXaâE=,zXaâE=,zXaâE'#pi$ő%,S%K,X,?ƒo"v;b#B,X7,zXaâEo3^$ps[1X{7'e ѣ͟5 ~O×XOi=kgkKǿ_DRĝ". _>jxau}x"s"ǒ,>ϧGh./dc V=|I hxTEsy>z@֏O4xUL_6ձooow%ss A,X<Ң݃Xb"E A,X]n _Km|"ʹ ܮVVZINVN ķ* @GZJZVVZxJ^GCV?DC|q#b8Ӻ>ޟ$NLh9q`H?g)$[ɖXE!'!K8Nyz\ckU#[.xR6Q6 Vb6_Kłأl` u`๸Ah 6f\<&يibbT,\˦`py'l;6MPײ$;'b>k6&emӣϫÖUIh[W|,\AL0y8VcoW/N"IxycS;,Y^cހg-k]Pjf0M!N]DcFcL I,-ˎ7Wa.dQ0;x5 l[\`wzpUkp=>`Yjz`-˼pA˶#Ϙ뻅<œ|0ÅNe"ͽ L[!᡹Ij0Fnd8뮀3 F endstream endobj 122 0 obj << /Type /XRef /Index [0 123] /Size 123 /W [1 3 1] /Root 120 0 R /Info 121 0 R /ID [ ] /Length 331 /Filter /FlateDecode >> stream x9K@$xI<>b<}IDl,(iK; 6 v -$λ|˰ +"xAr*r/@-RQ_0-P@j P >*ȃu?BC& 0eBR(IXaXqb(QiȺhS8P  F"D!v fUf42)Hr.AS!uСrvgՋ뺡bܺzGm_7 @c7!qa[Du'?[g4a|zC%Ff;}6nU_A~N] J3 endstream endobj startxref 268585 %%EOF RcppGSL/inst/doc/RcppGSL-intro.Rnw0000644000176200001440000000045013552060313016336 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RcppGSL} %\VignetteKeywords{R,GSL,Rcpp,data transfer} %\VignettePackage{RcppGSL} %\VignetteDepends{RcppGSL} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{RcppGSL-introduction.pdf} \end{document} RcppGSL/inst/include/0000755000176200001440000000000013553061757014140 5ustar liggesusersRcppGSL/inst/include/RcppGSLForward.h0000644000176200001440000002330112774327533017110 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSLForward.h: Forward Declarations for Seamless R and GSL Integration // // Copyright (C) 2010 - 2015 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSLFORWARD_H #define RCPPGSL__RCPPGSLFORWARD_H #include #include #include namespace Rcpp { namespace traits { /* support for gsl_complex */ template<> struct r_sexptype_traits { enum { rtype = CPLXSXP }; }; template<> struct wrap_type_traits { typedef wrap_type_primitive_tag wrap_category; }; template<> struct r_type_traits { typedef r_type_primitive_tag r_category; }; template<> struct r_type_traits< std::pair > { typedef r_type_primitive_tag r_category; }; /* support for gsl_complex_float */ template<> struct r_sexptype_traits { enum { rtype = CPLXSXP }; }; template<> struct wrap_type_traits { typedef wrap_type_primitive_tag wrap_category; }; template<> struct r_type_traits { typedef r_type_primitive_tag r_category; }; template<> struct r_type_traits< std::pair > { typedef r_type_primitive_tag r_category; }; /* support for gsl_complex_long_double */ template<> struct r_sexptype_traits { enum { rtype = CPLXSXP }; }; template<> struct wrap_type_traits { typedef wrap_type_primitive_tag wrap_category; }; template<> struct r_type_traits { typedef r_type_primitive_tag r_category; }; template<> struct r_type_traits< std::pair > { typedef r_type_primitive_tag r_category; }; } namespace internal { template<> inline gsl_complex caster(Rcomplex from) { gsl_complex x; GSL_REAL(x) = from.r; GSL_IMAG(x) = from.i; return x; } template<> inline Rcomplex caster(gsl_complex from) { Rcomplex x; x.r = GSL_REAL(from); x.i = GSL_IMAG(from); return x; } template<> inline gsl_complex_float caster(Rcomplex from) { gsl_complex_float x; GSL_REAL(x) = static_cast(from.r); GSL_IMAG(x) = static_cast(from.i); return x; } template<> inline Rcomplex caster(gsl_complex_float from) { Rcomplex x; x.r = static_cast(GSL_REAL(from)); x.i = static_cast(GSL_IMAG(from)); return x; } template<> inline gsl_complex_long_double caster(Rcomplex from) { gsl_complex_long_double x; GSL_REAL(x) = static_cast(from.r); GSL_IMAG(x) = static_cast(from.i); return x; } template<> inline Rcomplex caster(gsl_complex_long_double from) { Rcomplex x; x.r = static_cast(GSL_REAL(from)); x.i = static_cast(GSL_IMAG(from)); return x; } } } namespace RcppGSL { template class vector; template class matrix; template struct vector_view_type; template struct matrix_view_type; #include "RcppGSL_types.h" _RCPPGSL_SPEC_NOSUFFIX(double , double ) _RCPPGSL_SPEC(float , _float , float ) _RCPPGSL_SPEC(int , _int , int ) //_RCPPGSL_SPEC(long , _long , long ) _RCPPGSL_SPEC(long double , _long_double , long double ) _RCPPGSL_SPEC(short , _short , short ) _RCPPGSL_SPEC(unsigned char , _uchar , unsigned char ) _RCPPGSL_SPEC(unsigned int , _uint , unsigned int ) _RCPPGSL_SPEC(unsigned short , _ushort , unsigned short ) //_RCPPGSL_SPEC(unsigned long , _ulong , unsigned long ) _RCPPGSL_SPEC(char , _char , unsigned char ) _RCPPGSL_SPEC(gsl_complex , _complex , gsl_complex ) _RCPPGSL_SPEC(gsl_complex_float , _complex_float , gsl_complex_float ) _RCPPGSL_SPEC(gsl_complex_long_double , _complex_long_double , gsl_complex_long_double) #undef _RCPPGSL_SPEC #undef _RCPPGSL_SPEC_NOSUFFIX template class vector_view { public: struct internal_view { const gsl_vector vector; inline internal_view(const gsl_vector &v) : vector(v) {} }; typedef typename vector::type type; typedef typename vector::const_iterator const_iterator; typedef typename vector::gsltype gsltype; typedef typename vector_view_type::type view_type; typedef typename vector_view_type::const_type const_view_type; typedef typename vector::ConstProxy ConstProxy; vector_view(view_type v) : view(v.vector) {} vector_view(const_view_type v) : view(v.vector) {} inline ConstProxy operator[](int i) { return ConstProxy(&view.vector, i); } inline const_iterator begin() const { return const_iterator(ConstProxy(&view.vector, 0)); } inline const_iterator end() const { return const_iterator(ConstProxy(&view.vector, view.vector.size)); } inline size_t size() const { return view.vector.size; } inline operator const gsltype*() { return &view.vector; } internal_view view; }; template class matrix_view { public: struct internal_view { const gsl_matrix matrix; inline internal_view(const gsl_matrix &m) : matrix(m) {} }; typedef typename matrix::type type; typedef typename matrix::gsltype gsltype; typedef typename matrix_view_type::type view_type; typedef typename matrix_view_type::const_type const_view_type; typedef typename matrix::ConstProxy ConstProxy; matrix_view(view_type v) : view(v.matrix) {} matrix_view(const_view_type v) : view(v.matrix) {} inline ConstProxy operator()(int row, int col) { return ConstProxy(&view.matrix, row, col); } inline size_t nrow() const { return view.matrix.size1; } inline size_t ncol() const { return view.matrix.size2; } inline size_t size() const { return view.matrix.size1 * view.matrix.size2; } inline operator const gsltype*() { return &view.matrix; } internal_view view; }; } /* forward declarations */ namespace Rcpp { #undef _RCPPGSL_WRAPDEF #define _RCPPGSL_WRAPDEF(__SUFFIX__) \ template<> inline SEXP wrap(const gsl_vector##__SUFFIX__&); \ template<> inline SEXP wrap(const gsl_vector##__SUFFIX__##_view&); \ template<> inline SEXP wrap(const gsl_vector##__SUFFIX__##_const_view&); \ template<> inline SEXP wrap(const gsl_matrix##__SUFFIX__&); \ template<> inline SEXP wrap(const gsl_matrix##__SUFFIX__##_view&); \ template<> inline SEXP wrap(const gsl_matrix##__SUFFIX__##_const_view&); _RCPPGSL_WRAPDEF(_int) _RCPPGSL_WRAPDEF(_float) _RCPPGSL_WRAPDEF(_long) _RCPPGSL_WRAPDEF(_char) _RCPPGSL_WRAPDEF(_complex) _RCPPGSL_WRAPDEF(_complex_float) _RCPPGSL_WRAPDEF(_complex_long_double) _RCPPGSL_WRAPDEF(_long_double) _RCPPGSL_WRAPDEF(_short) _RCPPGSL_WRAPDEF(_uchar) _RCPPGSL_WRAPDEF(_uint) _RCPPGSL_WRAPDEF(_ushort) _RCPPGSL_WRAPDEF(_ulong) template<> inline SEXP wrap(const gsl_vector&); template<> inline SEXP wrap(const gsl_vector_view&); template<> inline SEXP wrap(const gsl_vector_const_view&); template<> inline SEXP wrap(const gsl_matrix&); template<> inline SEXP wrap(const gsl_matrix_view&); template<> inline SEXP wrap(const gsl_matrix_const_view&); template SEXP wrap(const ::RcppGSL::vector&); template SEXP wrap(const ::RcppGSL::matrix&); template SEXP wrap(const ::RcppGSL::vector_view&); template SEXP wrap(const ::RcppGSL::matrix_view&); } #endif RcppGSL/inst/include/RcppGSL.h0000644000176200001440000000222512774327533015565 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL.h: Seamless R and GSL Integration via Rcpp // // Copyright (C) 2010 - 2015 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_H #define RCPPGSL__RCPPGSL_H #include #include #include #include #include #include #include #endif RcppGSL/inst/include/RcppGSL_types.h0000644000176200001440000006445113553061757017021 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL_types.h: Type macros for Seamless R and GSL Integration // // Copyright (C) 2010 - 2019 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #ifndef RCPPGSL_RCPPGSL_SPEC_H #define RCPPGSL_RCPPGSL_SPEC_H #undef _RCPPGSL_SPEC #undef _RCPPGSL_SPEC_NOSUFFIX #define _RCPPGSL_SPEC(__T__,__SUFFIX__,__CAST__) \ template <> struct vector_view_type<__T__> { \ typedef gsl_vector##__SUFFIX__##_view type; \ typedef gsl_vector##__SUFFIX__##_const_view const_type; \ }; \ template <> struct matrix_view_type<__T__> { \ typedef gsl_matrix##__SUFFIX__##_view type; \ typedef gsl_matrix##__SUFFIX__##_const_view const_type; \ }; \ template <> class vector<__T__> { \ public: \ typedef __T__ type; \ typedef __T__* pointer; \ typedef gsl_vector##__SUFFIX__ gsltype; \ gsltype* data; \ class Proxy { \ public: \ Proxy(gsltype* data_, int index_) : \ index(index_), parent(data_) {} \ Proxy& operator=(type x) { \ gsl_vector##__SUFFIX__##_set(parent, index, x); \ return *this; \ } \ inline operator type() { \ return gsl_vector##__SUFFIX__##_get(parent, index); \ } \ inline operator const type() const { \ return gsl_vector##__SUFFIX__##_get(parent, index); \ } \ int index; \ gsltype* parent; \ inline void move(int d) { index += d; } \ }; \ class ConstProxy { \ public: \ ConstProxy(const gsltype* data_, int index_) : \ index(index_), parent(data_) {} \ inline operator type() { \ return gsl_vector##__SUFFIX__##_get(parent, index); \ } \ inline operator const type() const { \ return gsl_vector##__SUFFIX__##_get(parent, index); \ } \ int index; \ const gsltype* parent; \ inline void move(int d) { index += d; } \ }; \ typedef ::Rcpp::internal::Proxy_Iterator iterator; \ typedef ::Rcpp::internal::Proxy_Iterator const_iterator;\ const static int RTYPE = \ ::Rcpp::traits::r_sexptype_traits::rtype; \ vector(SEXP x) : \ data(NULL), allocated(false) { \ SEXP y = ::Rcpp::r_cast(x); \ int size = ::Rf_length(y); \ data = gsl_vector##__SUFFIX__##_calloc(size); \ ::Rcpp::internal::export_range<__CAST__*>(y, \ reinterpret_cast<__CAST__*>(data->data)); \ } \ vector(gsltype* x) : data(x), allocated(false) {} \ vector(int size) : \ data(gsl_vector##__SUFFIX__##_calloc(size)), \ allocated(true) {} \ ~vector() { free(); } \ operator gsltype*() { return data; } \ operator const gsltype*() const { return data; } \ gsltype* operator->() const { return data; } \ gsltype& operator*() const { return *data; } \ vector(const vector& x) : data(x.data), allocated(x.allocated) {} \ vector& operator=(const vector& other) { \ data = other.data; \ allocated = other.allocated; \ return *this; \ } \ inline Proxy operator[](int i) { \ return Proxy(data, i); \ } \ inline ConstProxy operator[](int i) const { \ return ConstProxy(data, i); \ } \ inline iterator begin() { return iterator(Proxy(*this, 0)); } \ inline iterator end() { return iterator(Proxy(*this,data->size)); } \ inline const_iterator begin() const { \ return const_iterator(ConstProxy(*this, 0)); \ } \ inline const_iterator end() const { \ return const_iterator(ConstProxy(*this, data->size)); \ } \ inline size_t size() const { return data->size; } \ inline void free() { \ if (allocated && data) { \ gsl_vector##__SUFFIX__##_free(data); \ allocated = false; \ data = NULL; \ } \ } \ private: \ bool allocated; \ }; \ template <> class matrix<__T__> { \ public: \ typedef __T__ type; \ typedef __T__* pointer; \ typedef gsl_matrix##__SUFFIX__ gsltype; \ gsltype* data; \ const static int RTYPE = \ ::Rcpp::traits::r_sexptype_traits::rtype; \ class Proxy { \ public: \ Proxy(gsltype* data_, int row_, int col_) : \ row(row_), col(col_), parent(data_) {} \ Proxy& operator=(type x) { \ gsl_matrix##__SUFFIX__##_set(parent, row, col, x); \ return *this; \ } \ inline operator type() { \ return gsl_matrix##__SUFFIX__##_get(parent, row, col); \ } \ inline operator const type() const { \ return gsl_matrix##__SUFFIX__##_get(parent, row, col); \ } \ int row; \ int col; \ gsltype* parent; \ }; \ class ConstProxy { \ public: \ ConstProxy(const gsltype* data_, int row_, int col_) : \ row(row_), col(col_), parent(data_) {} \ inline operator type() { \ return gsl_matrix##__SUFFIX__##_get(parent, row, col); \ } \ inline operator const type() const { \ return gsl_matrix##__SUFFIX__##_get(parent, row, col); \ } \ int row; \ int col; \ const gsltype* parent; \ }; \ matrix(SEXP x) : \ data(NULL), allocated(false) { import(x); } \ matrix(gsltype* x) : data(x), allocated(false) {} \ matrix(int nrow, int ncol) : \ data(gsl_matrix##__SUFFIX__##_alloc(nrow, ncol)), \ allocated(true) {} \ ~matrix() { free(); } \ operator gsltype*() { return data; } \ operator const gsltype*() const { return data; } \ gsltype* operator->() const { return data; } \ gsltype& operator*() const { return *data; } \ matrix(const matrix& x) : data(x.data), allocated(x.allocated) {} \ matrix& operator=(const matrix& other) { \ data = other.data; \ allocated = other.allocated; \ return *this; \ } \ inline size_t nrow() const { return data->size1; } \ inline size_t ncol() const { return data->size2; } \ inline size_t size() const { return data->size1 * data->size2; } \ inline Proxy operator()(int row, int col){ \ return Proxy( *this, row, col); \ } \ inline ConstProxy operator()(int row, int col) const { \ return ConstProxy( *this, row, col); \ } \ void free(){ \ if (allocated && data) { \ gsl_matrix##__SUFFIX__##_free(data); \ allocated = false; \ data = NULL; \ } \ } \ private: \ inline void import(SEXP x); \ bool allocated; \ }; \ #define _RCPPGSL_SPEC_NOSUFFIX(__T__,__CAST__) \ template <> struct vector_view_type<__T__> { \ typedef gsl_vector_view type; \ typedef gsl_vector_const_view const_type; \ }; \ template <> struct matrix_view_type<__T__> { \ typedef gsl_matrix_view type; \ typedef gsl_matrix_const_view const_type; \ }; \ template <> class vector<__T__> { \ public: \ typedef __T__ type; \ typedef __T__* pointer; \ typedef gsl_vector gsltype; \ gsltype* data; \ class Proxy { \ public: \ Proxy(gsltype* data_, int index_) : \ index(index_), parent(data_) {} \ Proxy& operator=(type x) { \ gsl_vector_set(parent, index, x); \ return *this; \ } \ inline operator type() { \ return gsl_vector_get(parent, index); \ } \ inline operator const type() const { \ return gsl_vector_get(parent, index); \ } \ int index; \ gsltype* parent; \ inline void move(int d) { index += d; } \ }; \ class ConstProxy { \ public: \ ConstProxy(const gsltype* data_, int index_) : \ index(index_), parent(data_) {} \ inline operator type() { \ return gsl_vector_get(parent, index); \ } \ inline operator const type() const { \ return gsl_vector_get(parent, index); \ } \ int index; \ const gsltype* parent; \ inline void move(int d) { index += d; } \ }; \ typedef ::Rcpp::internal::Proxy_Iterator iterator; \ typedef ::Rcpp::internal::Proxy_Iterator const_iterator; \ const static int RTYPE = \ ::Rcpp::traits::r_sexptype_traits::rtype; \ vector(SEXP x) : \ data(NULL), allocated(false) { \ SEXP y = ::Rcpp::r_cast(x); \ int size = ::Rf_length(y); \ data = gsl_vector_calloc(size); \ ::Rcpp::internal::export_range<__CAST__*>(y, \ reinterpret_cast<__CAST__*>(data->data)); \ } \ vector(gsltype* x) : data(x), allocated(false) {} \ vector(int size) : \ data(gsl_vector_calloc(size)), allocated(true) {} \ ~vector() { free(); } \ operator gsltype*() { return data; } \ operator const gsltype*() const { return data; } \ gsltype* operator->() const { return data; } \ gsltype& operator*() const { return *data; } \ vector(const vector& x) : data(x.data), allocated(x.allocated) {} \ vector& operator=(const vector& other) { \ data = other.data; \ allocated = other.allocated; \ return *this; \ } \ inline Proxy operator[](int i) { \ return Proxy(data, i); \ } \ inline ConstProxy operator[](int i) const { \ return ConstProxy(data, i); \ } \ inline iterator begin() { return iterator(Proxy(*this, 0)); } \ inline iterator end() { return iterator(Proxy(*this, data->size)); } \ inline const_iterator begin() const { \ return const_iterator(ConstProxy(*this, 0)); \ } \ inline const_iterator end() const { \ return const_iterator(ConstProxy(*this, data->size)); \ } \ inline size_t size() const { return data->size; } \ inline void free() { \ if (allocated && data) { \ gsl_vector_free(data); \ allocated = false; \ data = NULL; \ } \ } \ private: \ bool allocated; \ }; \ template <> class matrix<__T__> { \ public: \ typedef __T__ type; \ typedef __T__* pointer; \ typedef gsl_matrix gsltype; \ gsltype* data; \ const static int RTYPE = \ ::Rcpp::traits::r_sexptype_traits::rtype; \ class Proxy { \ public: \ Proxy(gsltype* data_, int row_, int col_) : \ row(row_), col(col_), parent(data_) {} \ Proxy& operator=(type x) { \ gsl_matrix_set(parent, row, col, x); \ return *this; \ } \ inline operator type() { \ return gsl_matrix_get(parent, row, col); \ } \ inline operator const type() const { \ return gsl_matrix_get(parent, row, col); \ } \ int row; \ int col; \ gsltype* parent; \ }; \ class ConstProxy { \ public: \ ConstProxy(const gsltype* data_, int row_, int col_) : \ row(row_), col(col_), parent(data_) {} \ inline operator type() { \ return gsl_matrix_get(parent, row, col); \ } \ inline operator const type() const { \ return gsl_matrix_get(parent, row, col); \ } \ int row; \ int col; \ const gsltype* parent; \ }; \ matrix(SEXP x) : \ data(NULL), allocated(false) { import(x); } \ matrix(gsltype* x) : data(x), allocated(false) {} \ matrix(int nrow, int ncol) : \ data(gsl_matrix_alloc(nrow, ncol)), allocated(true) {} \ ~matrix() { free(); } \ operator gsltype*() { return data; } \ operator const gsltype*() const { return data; } \ gsltype* operator->() const { return data; } \ gsltype& operator*() const { return *data; } \ matrix(const matrix& x) : data(x.data), allocated(x.allocated) {} \ matrix& operator=(const matrix& other) { \ data = other.data; \ allocated = other.allocated; \ return *this; \ } \ inline size_t nrow() const { return data->size1; } \ inline size_t ncol() const { return data->size2; } \ inline size_t size() const { return data->size1 * data->size2; } \ inline Proxy operator()(int row, int col) { \ return Proxy(*this, row, col); \ } \ inline ConstProxy operator()(int row, int col) const { \ return ConstProxy(*this, row, col); \ } \ void free() { \ if (allocated && data) { \ gsl_matrix_free(data); \ allocated = false; \ data = NULL; \ } \ } \ private: \ inline void import(SEXP x); \ bool allocated; \ }; \ #endif RcppGSL/inst/include/RcppGSL_matrix.h0000644000176200001440000002272213320044614017135 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL_matrix.h: Matrix class for Seamless R and GSL Integration // // Copyright (C) 2010 - 2018 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_MATRIX_H #define RCPPGSL__RCPPGSL_MATRIX_H #include #include namespace RcppGSL { template class gslmatrix_importer { public: typedef T r_import_type; /* this is important */ private: r_import_type* ptr; int size1; int size2; int tda; public: gslmatrix_importer(r_import_type* ptr_, int size1_, int size2_, int tda_) : ptr(ptr_), size1(size1_), size2(size2_), tda(tda_) {}; inline int size() const { return size1 * size2; }; r_import_type get(int i) const { int col = (int)(i / size1); int row = i - col * size1; return ptr[ row * tda + col ]; } }; } namespace Rcpp { #define RCPPGSL_WRAP(__TYPE__,__DATA__) \ template <> SEXP wrap(const __TYPE__& x) { \ SEXP res = PROTECT(wrap(RcppGSL::gslmatrix_importer<__DATA__>( \ x.data, x.size1, x.size2, x.tda))); \ SEXP dims = PROTECT(::Rf_allocVector(INTSXP, 2)); \ INTEGER(dims)[0] = x.size1; \ INTEGER(dims)[1] = x.size2; \ ::Rf_setAttrib(res, R_DimSymbol, dims); \ UNPROTECT(2); \ return res; \ } #define RCPPGSL_WRAP_CAST(__TYPE__,__DATA__) \ template <> SEXP wrap(const __TYPE__& x) { \ SEXP res = PROTECT(wrap(RcppGSL::gslmatrix_importer<__DATA__>( \ reinterpret_cast<__DATA__*>(x.data), \ x.size1, x.size2, x.tda))); \ SEXP dims = PROTECT(::Rf_allocVector(INTSXP, 2)); \ INTEGER(dims)[0] = x.size1; \ INTEGER(dims)[1] = x.size2; \ ::Rf_setAttrib(res, R_DimSymbol, dims); \ UNPROTECT(2); \ return res; \ } RCPPGSL_WRAP(gsl_matrix , double) RCPPGSL_WRAP(gsl_matrix_float , float) RCPPGSL_WRAP(gsl_matrix_int , int) RCPPGSL_WRAP(gsl_matrix_long , long) RCPPGSL_WRAP(gsl_matrix_long_double , long double) RCPPGSL_WRAP(gsl_matrix_short , short) RCPPGSL_WRAP(gsl_matrix_uchar , unsigned char) RCPPGSL_WRAP(gsl_matrix_uint , unsigned int) RCPPGSL_WRAP(gsl_matrix_ushort , unsigned short) RCPPGSL_WRAP(gsl_matrix_ulong , unsigned long) RCPPGSL_WRAP_CAST(gsl_matrix_char ,Rbyte ) RCPPGSL_WRAP_CAST(gsl_matrix_complex ,gsl_complex ) RCPPGSL_WRAP_CAST(gsl_matrix_complex_float ,gsl_complex_float ) RCPPGSL_WRAP_CAST(gsl_matrix_complex_long_double,gsl_complex_long_double) #undef RCPPGSL_WRAP #undef RCPPGSL_WRAP_CAST } namespace RcppGSL { #undef _RCPPGSL_DEF #define _RCPPGSL_DEF(__T__,__SUFFIX__) \ inline void matrix<__T__>::import(SEXP x) { \ Rcpp::Matrix mat(x); \ int nc = mat.ncol(); \ int nr = mat.nrow(); \ int i = 0, j = 0; \ data = gsl_matrix##__SUFFIX__##_alloc(nr, nc); \ Rcpp::Matrix::iterator it = mat.begin(); \ for (; j::import(SEXP x) { \ Rcpp::Matrix mat(x); \ int nc = mat.ncol(); \ int nr = mat.nrow(); \ int i = 0, j = 0; \ data = gsl_matrix##__SUFFIX__##_alloc(nr, nc); \ Rcpp::Matrix::iterator it = mat.begin(); \ typedef Rcpp::traits::storage_type::type STORAGE; \ for (; j(*it)); \ } \ } \ } inline void matrix::import(SEXP x) { Rcpp::Matrix mat(x); int nc = mat.ncol(); int nr = mat.nrow(); int i = 0, j = 0; data = gsl_matrix_alloc(nr, nc); Rcpp::Matrix::iterator it = mat.begin(); for (; j::import(SEXP x) { Rcpp::Matrix mat(x); int nc = mat.ncol(); int nr = mat.nrow(); int i = 0, j = 0; data = gsl_matrix_char_alloc(nr, nc); Rcpp::Matrix::iterator it = mat.begin(); for (; j(*it)); } } } #undef _RCPPGSL_DEF #undef _RCPPGSL_DEF_CAST } namespace Rcpp { template SEXP wrap(const ::RcppGSL::matrix& x) { return wrap(*(x.data)); } } #endif RcppGSL/inst/include/RcppGSL_vector_view.h0000644000176200001440000000447412774327533020211 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL_vector_view.h: Vector view class for Seamless R and GSL Integration // // Copyright (C) 2010 - 2015 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_VECTOR_VIEW_H #define RCPPGSL__RCPPGSL_VECTOR_VIEW_H #include #include namespace Rcpp{ #define RCPPGSL_VIEW(SUFFIX) \ template <> SEXP wrap(const gsl_vector##SUFFIX##_view& x) { \ return wrap(x.vector); \ } \ template <> SEXP wrap(const gsl_vector##SUFFIX##_const_view& x) { \ return wrap(x.vector); \ } RCPPGSL_VIEW(_int) RCPPGSL_VIEW(_float) RCPPGSL_VIEW(_long) RCPPGSL_VIEW(_char) RCPPGSL_VIEW(_complex) RCPPGSL_VIEW(_complex_float) RCPPGSL_VIEW(_complex_long_double) RCPPGSL_VIEW(_long_double) RCPPGSL_VIEW(_short) RCPPGSL_VIEW(_uchar) RCPPGSL_VIEW(_uint) RCPPGSL_VIEW(_ushort) RCPPGSL_VIEW(_ulong) #undef RCPPGSL_VIEW template <> SEXP wrap(const gsl_vector_view& x){ return wrap(x.vector) ; } template <> SEXP wrap(const gsl_vector_const_view& x ){ return wrap(x.vector) ; } template SEXP wrap(const ::RcppGSL::vector_view& x){ return wrap( x.view.vector ) ; } } #endif RcppGSL/inst/include/RcppGSL_matrix_view.h0000644000176200001440000000461312774327533020206 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL_matrix_view.h: Matrix view class for Seamless R and GSL Integration // // Copyright (C) 2010 - 2015 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_MATRIX_VIEW_H #define RCPPGSL__RCPPGSL_MATRIX_VIEW_H #include #include namespace Rcpp{ #define RCPPGSL_VIEW(SUFFIX) \ template <> SEXP wrap(const gsl_matrix##SUFFIX##_view& x) { \ return wrap(x.matrix); \ } \ template <> SEXP wrap( const gsl_matrix##SUFFIX##_const_view& x ){ \ return wrap(x.matrix) ; \ } RCPPGSL_VIEW(_int) RCPPGSL_VIEW(_float) RCPPGSL_VIEW(_long) RCPPGSL_VIEW(_char) RCPPGSL_VIEW(_complex) RCPPGSL_VIEW(_complex_float) RCPPGSL_VIEW(_complex_long_double) RCPPGSL_VIEW(_long_double) RCPPGSL_VIEW(_short) RCPPGSL_VIEW(_uchar) RCPPGSL_VIEW(_uint) RCPPGSL_VIEW(_ushort) RCPPGSL_VIEW(_ulong) #undef RCPPGSL_VIEW #define RCPPGSL_VIEW(SUFFIX) template <> SEXP wrap(const gsl_matrix_view& x) { return wrap(x.matrix); } template <> SEXP wrap(const gsl_matrix_const_view& x) { return wrap(x.matrix); } template SEXP wrap(const ::RcppGSL::matrix_view& x) { return wrap(x.view.matrix); } } #endif RcppGSL/inst/include/RcppGSL_typedef.h0000644000176200001440000000245312774327533017310 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL_typedef.h: Shorthand Definitions for Seamless R and GSL Integration // // Copyright (C) 2015 Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #ifndef RCPPGSL__TYPEDEF_H #define RCPPGSL__TYPEDEF_H namespace RcppGSL { typedef matrix Matrix; typedef vector Vector; typedef matrix_view MatrixView; typedef vector_view VectorView; typedef matrix IntMatrix; typedef vector IntVector; typedef matrix_view IntMatrixView; typedef vector_view IntVectorView; } #endif RcppGSL/inst/include/RcppGSL_vector.h0000644000176200001440000000633312774327533017153 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // RcppGSL_vector.h: Vector class for Seamless R and GSL Integration // // Copyright (C) 2010 - 2015 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #ifndef RCPPGSL__RCPPGSL_VECTOR_H #define RCPPGSL__RCPPGSL_VECTOR_H #include #include namespace RcppGSL { template class gslvector_importer { public: typedef T r_import_type; /* this is important */ private: r_import_type* data; int stride; int n; public: gslvector_importer(T* data_, int stride_, int n_) : data(data_), stride(stride_), n(n_) {} inline r_import_type get(int i) const { return data[ i * stride ]; } inline int size() const { return n; } }; } namespace Rcpp { #define RCPPGSL_WRAP(__TYPE__,__DATA__) \ template <> SEXP wrap(const __TYPE__& x) { \ return wrap(RcppGSL::gslvector_importer<__DATA__>(x.data, x.stride, x.size ) ); \ } #define RCPPGSL_WRAP_CAST(__TYPE__,__DATA__,__CAST__) \ template <> SEXP wrap(const __TYPE__& x) { \ return wrap(RcppGSL::gslvector_importer<__DATA__>(reinterpret_cast<__CAST__>(x.data), x.stride, x.size ) ); \ } RCPPGSL_WRAP(gsl_vector ,double) RCPPGSL_WRAP(gsl_vector_float ,float) RCPPGSL_WRAP(gsl_vector_int ,int) RCPPGSL_WRAP(gsl_vector_long ,long) RCPPGSL_WRAP(gsl_vector_long_double ,long double) RCPPGSL_WRAP(gsl_vector_short ,short) RCPPGSL_WRAP(gsl_vector_uchar ,unsigned char) RCPPGSL_WRAP(gsl_vector_uint ,unsigned int) RCPPGSL_WRAP(gsl_vector_ushort ,unsigned short) RCPPGSL_WRAP(gsl_vector_ulong ,unsigned long) RCPPGSL_WRAP_CAST(gsl_vector_char ,unsigned char ,Rbyte* const) RCPPGSL_WRAP_CAST(gsl_vector_complex ,gsl_complex ,gsl_complex*) RCPPGSL_WRAP_CAST(gsl_vector_complex_float ,gsl_complex_float ,gsl_complex_float*) RCPPGSL_WRAP_CAST(gsl_vector_complex_long_double,gsl_complex_long_double,gsl_complex_long_double*) template SEXP wrap(const ::RcppGSL::vector& x) { return wrap(*(x.data)); } #undef RCPPGSL_WRAP_CAST #undef RCPPGSL_WRAP } #endif RcppGSL/inst/tinytest/0000755000176200001440000000000013553063341014367 5ustar liggesusersRcppGSL/inst/tinytest/cpp/0000755000176200001440000000000013552570517015160 5ustar liggesusersRcppGSL/inst/tinytest/cpp/gsl.cpp0000644000176200001440000003154413552570517016460 0ustar liggesusers// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // gsl.cpp: RcppGSL R integration of GSL via Rcpp -- unit tests // // Copyright (C) 2010 - 2018 Romain Francois and Dirk Eddelbuettel // // This file is part of RcppGSL. // // RcppGSL is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RcppGSL is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RcppGSL. If not, see . #include namespace local { // Solaris has issues with ::sqrt; and std::sqrt does not have const signature double sqrt(const double &x) { return std::sqrt(x); } } using namespace Rcpp; // [[Rcpp::depends(RcppGSL)]] // [[Rcpp::export]] List test_gsl_vector_wrapper() { RcppGSL::vector x_double( 10 ); RcppGSL::vector x_float( 10 ); RcppGSL::vector x_int( 10 ); //RcppGSL::vector x_long( 10 ); RcppGSL::vector x_char( 10 ); RcppGSL::vector x_long_double( 10 ); RcppGSL::vector x_short( 10 ); RcppGSL::vector x_uchar( 10 ); RcppGSL::vector x_uint( 10 ); RcppGSL::vector x_ushort( 10 ); //RcppGSL::vector x_ulong( 10 ); RcppGSL::vector x_complex( 10 ); RcppGSL::vector x_complex_float( 10 ); RcppGSL::vector x_complex_long_double( 10 ); List res = List::create(_["gsl_vector"] = x_double, _["gsl_vector_float"] = x_float, _["gsl_vector_int"] = x_int, //_["gsl_vector_long"] = x_long, _["gsl_vector_char"] = x_char, _["gsl_vector_complex"] = x_complex, _["gsl_vector_complex_float"] = x_complex_float, _["gsl_vector_complex_long_double"] = x_complex_long_double, _["gsl_vector_long_double"] = x_long_double, _["gsl_vector_short"] = x_short, _["gsl_vector_uchar"] = x_uchar, _["gsl_vector_uint"] = x_uint, _["gsl_vector_ushort"] = x_ushort //,_["gsl_vector_ulong"] = x_ulong ); x_double.free(); x_float.free(); x_int.free(); //x_long.free(); x_char.free(); x_long_double.free(); x_short.free(); x_uchar.free(); x_uint.free(); x_ushort.free(); //x_ulong.free(); x_complex.free(); x_complex_float.free(); x_complex_long_double.free(); return res; } // [[Rcpp::export]] List test_gsl_vector() { gsl_vector * x_double = gsl_vector_calloc (10); gsl_vector_float * x_float = gsl_vector_float_calloc(10); gsl_vector_int * x_int = gsl_vector_int_calloc(10); //gsl_vector_long * x_long = gsl_vector_long_calloc(10); gsl_vector_char * x_char = gsl_vector_char_calloc(10); gsl_vector_complex * x_complex = gsl_vector_complex_calloc(10); gsl_vector_complex_float * x_complex_float = gsl_vector_complex_float_calloc(10); gsl_vector_complex_long_double * x_complex_long_double = gsl_vector_complex_long_double_calloc(10); gsl_vector_long_double * x_long_double = gsl_vector_long_double_calloc(10); gsl_vector_short * x_short = gsl_vector_short_calloc(10); gsl_vector_uchar * x_uchar = gsl_vector_uchar_calloc(10); gsl_vector_uint * x_uint = gsl_vector_uint_calloc(10); gsl_vector_ushort * x_ushort = gsl_vector_ushort_calloc(10); //gsl_vector_ulong * x_ulong = gsl_vector_ulong_calloc(10); /* create an R list containing copies of gsl data */ List res = List::create(_["gsl_vector"] = *x_double, _["gsl_vector_float"] = *x_float, _["gsl_vector_int"] = *x_int, //_["gsl_vector_long"] = *x_long, _["gsl_vector_char"] = *x_char, _["gsl_vector_complex"] = *x_complex, _["gsl_vector_complex_float"] = *x_complex_float, _["gsl_vector_complex_long_double"] = *x_complex_long_double, _["gsl_vector_long_double"] = *x_long_double, _["gsl_vector_short"] = *x_short, _["gsl_vector_uchar"] = *x_uchar, _["gsl_vector_uint"] = *x_uint, _["gsl_vector_ushort"] = *x_ushort //,_["gsl_vector_ulong"] = *x_ulong ); /* cleanup gsl data */ gsl_vector_free(x_double); gsl_vector_float_free( x_float); gsl_vector_int_free( x_int ); //gsl_vector_long_free( x_long ); gsl_vector_char_free( x_char ); gsl_vector_complex_free( x_complex ); gsl_vector_complex_float_free( x_complex_float ); gsl_vector_complex_long_double_free( x_complex_long_double ); gsl_vector_long_double_free( x_long_double ); gsl_vector_short_free( x_short ); gsl_vector_uchar_free( x_uchar ); gsl_vector_uint_free( x_uint ); gsl_vector_ushort_free( x_ushort ); //gsl_vector_ulong_free( x_ulong ); return res; } // [[Rcpp::export]] List test_gsl_matrix() { gsl_matrix * x_double = gsl_matrix_alloc(5, 2); gsl_matrix_set_identity( x_double ); gsl_matrix_float * x_float = gsl_matrix_float_alloc(5,2); gsl_matrix_float_set_identity( x_float ); gsl_matrix_int * x_int = gsl_matrix_int_alloc(5,2); gsl_matrix_int_set_identity( x_int ); //gsl_matrix_long * x_long = gsl_matrix_long_alloc(5,2); //gsl_matrix_long_set_identity( x_long ); gsl_matrix_char * x_char = gsl_matrix_char_alloc(5,2); gsl_matrix_char_set_identity( x_char ); gsl_matrix_complex * x_complex = gsl_matrix_complex_alloc(5,2); gsl_matrix_complex_set_identity( x_complex ); gsl_matrix_complex_float * x_complex_float = gsl_matrix_complex_float_alloc(5,2); gsl_matrix_complex_float_set_identity( x_complex_float ); gsl_matrix_complex_long_double * x_complex_long_double = gsl_matrix_complex_long_double_alloc(5,2); gsl_matrix_complex_long_double_set_identity( x_complex_long_double ); gsl_matrix_long_double * x_long_double = gsl_matrix_long_double_alloc(5,2); gsl_matrix_long_double_set_identity( x_long_double ); gsl_matrix_short * x_short = gsl_matrix_short_alloc(5,2); gsl_matrix_short_set_identity( x_short ); gsl_matrix_uchar * x_uchar = gsl_matrix_uchar_alloc(5,2); gsl_matrix_uchar_set_identity( x_uchar ); gsl_matrix_uint * x_uint = gsl_matrix_uint_alloc(5,2); gsl_matrix_uint_set_identity( x_uint); gsl_matrix_ushort * x_ushort = gsl_matrix_ushort_alloc(5,2); gsl_matrix_ushort_set_identity( x_ushort ); //gsl_matrix_ulong * x_ulong = gsl_matrix_ulong_alloc(5,2); //gsl_matrix_ulong_set_identity( x_ulong ); List res = List::create(_["gsl_matrix"] = *x_double , _["gsl_matrix_float"] = *x_float, _["gsl_matrix_int"] = *x_int, //_["gsl_matrix_long"] = *x_long, _["gsl_matrix_char"] = *x_char, _["gsl_matrix_complex"] = *x_complex, _["gsl_matrix_complex_float"] = *x_complex_float, _["gsl_matrix_complex_long_double"] = *x_complex_long_double, _["gsl_matrix_long_double"] = *x_long_double, _["gsl_matrix_short"] = *x_short, _["gsl_matrix_uchar"] = *x_uchar, _["gsl_matrix_uint"] = *x_uint, _["gsl_matrix_ushort"] = *x_ushort //,_["gsl_matrix_ulong"] = *x_ulong ); gsl_matrix_free( x_double ); gsl_matrix_float_free( x_float); gsl_matrix_int_free( x_int ); //gsl_matrix_long_free( x_long ); gsl_matrix_char_free( x_char ); gsl_matrix_complex_free( x_complex ); gsl_matrix_complex_float_free( x_complex_float ); gsl_matrix_complex_long_double_free( x_complex_long_double ); gsl_matrix_long_double_free( x_long_double ); gsl_matrix_short_free( x_short ); gsl_matrix_uchar_free( x_uchar ); gsl_matrix_uint_free( x_uint ); gsl_matrix_ushort_free( x_ushort ); //gsl_matrix_ulong_free( x_ulong ); return res; } // [[Rcpp::export]] List test_gsl_vector_view() { int n = 10; gsl_vector *v = gsl_vector_calloc (n); for( int i=0; i vec = as< RcppGSL::vector >(vec_); int n = vec->size; double res = 0.0; for( int i=0; i mat = as< RcppGSL::matrix >( mat_); int nr = mat->size1; double res = 0.0; for( int i=0; i vec(10); for( int i=0; i<10; i++){ gsl_vector_int_set( vec, i, i ); } Rcpp::IntegerVector x; x = vec; return x; } // [[Rcpp::export]] NumericVector test_gsl_vector_indexing(NumericVector vec_) { RcppGSL::vector vec = as< RcppGSL::vector >(vec_); for( size_t i=0; i< vec.size(); i++){ vec[i] = vec[i] + 1.0; } NumericVector res = Rcpp::wrap( vec ); vec.free(); return res; } // [[Rcpp::export]] double test_gsl_vector_iterating(NumericVector vec_) { RcppGSL::vector vec = as< RcppGSL::vector >(vec_); double res= std::accumulate( vec.begin(), vec.end(), 0.0 ); vec.free(); return res; } // [[Rcpp::export]] NumericVector test_gsl_vector_iterator_transform(NumericVector vec_) { RcppGSL::vector vec = as< RcppGSL::vector >(vec_); NumericVector res(vec.size()); std::transform(vec.begin(), vec.end(), res.begin(), local::sqrt); vec.free(); return res; } // [[Rcpp::export]] NumericMatrix test_gsl_matrix_indexing(NumericMatrix mat_) { RcppGSL::matrix mat= as< RcppGSL::matrix >( mat_ ); for( size_t i=0; i< mat.nrow(); i++){ for( size_t j=0; j< mat.ncol(); j++){ mat(i,j) = mat(i,j) + 1.0; } } Rcpp::NumericMatrix res = Rcpp::wrap(mat); mat.free(); return res; } // [[Rcpp::export]] List test_gsl_vector_view_wrapper() { int n = 10; RcppGSL::vector vec( 10 ); for( int i=0; i v_even = gsl_vector_const_subvector_with_stride(vec, 0, 2, n/2); RcppGSL::vector_view v_odd = gsl_vector_const_subvector_with_stride(vec, 1, 2, n/2); List res = List::create(_["even"] = v_even, _["odd" ] = v_odd); vec.free(); return res; } // [[Rcpp::export]] List test_gsl_matrix_view_wrapper() { int nrow = 4; int ncol = 6; RcppGSL::matrix m(nrow, ncol); int k =0; for( int i=0; i x = gsl_matrix_const_submatrix(m, 2, 2, 2, 2 ); List res = List::create(_["full"] = m, _["view"] = x); m.free(); return res; } // [[Rcpp::export]] double test_gsl_vector_view_iterating(NumericVector vec_) { RcppGSL::vector vec = as< RcppGSL::vector >(vec_); int n = vec.size(); RcppGSL::vector_view v_even = gsl_vector_const_subvector_with_stride(vec, 0, 2, n/2); double res = std::accumulate( v_even.begin(), v_even.end(), 0.0 ); return res; } // [[Rcpp::export]] double test_gsl_matrix_view_indexing() { int nr = 10; int nc = 10; RcppGSL::matrix mat( nr, nc ); int k = 0; for( size_t i=0; i< mat.nrow(); i++){ for( size_t j=0; j< mat.ncol(); j++, k++){ mat(i,j) = k; } } RcppGSL::matrix_view x = gsl_matrix_const_submatrix(mat, 2, 2, 2, 2 ); double res = 0.0; for( size_t i=0; i. library(RcppGSL) #test.fastLm <- function() { data(trees, package="datasets") flm <- fastLmPure(cbind(1, log(trees$Girth)), log(trees$Volume)) fit <- lm(log(Volume) ~ log(Girth), data=trees) expect_equal(as.numeric(flm$coef), as.numeric(coef(fit)), info="fastLm.coef") expect_equal(as.numeric(flm$stderr), as.numeric(coef(summary(fit))[,2]), info="fastLm.stderr") expect_equal(as.numeric(flm$df.residual), as.numeric(fit$df.residual), info="fastLm.df.residual") #test.fastLm.default <- function() { data(trees, package="datasets") flm <- RcppGSL:::fastLm.default(cbind(1, log(trees$Girth)), log(trees$Volume)) fit <- lm(log(Volume) ~ log(Girth), data=trees) expect_equal(as.numeric(flm$coefficients), as.numeric(coef(fit)), info="fastLm.default.coef") expect_equal(as.numeric(flm$stderr), as.numeric(coef(summary(fit))[,2]), info="fastLm.default.stderr") expect_equal(as.numeric(flm$df.residual), as.numeric(fit$df.residual), info="fastLm.default.df.residual") expect_equal(as.numeric(flm$residuals), as.numeric(fit$residuals), info="fastLm.default.residuals") expect_equal(as.numeric(flm$fitted.values), as.numeric(fit$fitted.values), info="fastLm.default.fitted.values") #test.summary.fastLm <- function() { data(trees, package="datasets") sflm <- summary(fastLm(log(Volume) ~ log(Girth), data=trees)) sfit <- summary(lm(log(Volume) ~ log(Girth), data=trees)) expect_equal(as.numeric(coef(sflm)), as.numeric(coef(sfit)), info="summary.fastLm.coef") expect_equal(sflm$r.squared, sfit$r.squared, info="summary.fastLm.r.squared") expect_equal(sflm$adj.r.squared, sfit$adj.r.squared, info="summary.fastLm.r.squared") expect_equal(sflm$sigma, sfit$sigma, info="summary.fastLm.sigma") ## no intercept case sflm <- summary(fastLm(log(Volume) ~ log(Girth) - 1, data=trees)) sfit <- summary(lm(log(Volume) ~ log(Girth) - 1, data=trees)) expect_equal(as.numeric(coef(sflm)), as.numeric(coef(sfit)), info="summary.fastLm.coef.noint") expect_equal(sflm$r.squared, sfit$r.squared, info="summary.fastLm.r.squared.noint") expect_equal(sflm$adj.r.squared, sfit$adj.r.squared, info="summary.fastLm.r.squared.noint") expect_equal(sflm$sigma, sfit$sigma, info="summary.fastLm.sigma.noint") ## non-formula use sflm <- summary(fastLm(log(trees$Girth), log(trees$Volume))) sfit <- summary(lm(log(Volume) ~ log(Girth) - 1, data=trees)) expect_equal(as.numeric(coef(sflm)), as.numeric(coef(sfit)), info="summary.fastLm.coef.nonform") expect_equal(sflm$r.squared, sfit$r.squared, info="summary.fastLm.r.squared.nonform") expect_equal(sflm$adj.r.squared, sfit$adj.r.squared, info="summary.fastLm.r.squared.nonform") expect_equal(sflm$sigma, sfit$sigma, info="summary.fastLm.sigma.nonform") #test.fastLm.formula <- function() { data(trees, package="datasets") flm <- fastLm(log(Volume) ~ log(Girth), data=trees) fit <- lm(log(Volume) ~ log(Girth), data=trees) expect_equal(flm$coefficients, coef(fit), info="fastLm.formula.coef") expect_equal(as.numeric(flm$stderr), as.numeric(coef(summary(fit))[,2]), info="fastLm.formula.stderr") expect_equal(as.numeric(flm$df.residual), as.numeric(fit$df.residual), info="fastLm.formula.df.residual") expect_equal(as.numeric(flm$residuals), as.numeric(fit$residuals), info="fastLm.formula.residuals") expect_equal(as.numeric(flm$fitted.values), as.numeric(fit$fitted.values), info="fastLm.formula.fitted.values") RcppGSL/inst/tinytest/test_gsl.R0000644000176200001440000001402413552570517016346 0ustar liggesusers#!/usr/bin/r -t # Emacs make this -*- mode: R; tab-width: 4 -*- # # Copyright (C) 2010 - 2019 Romain Francois and Dirk Eddelbuettel # Copyright (C) 2019 Dirk Eddelbuettel # # This file is part of RcppGSL. # # RcppGSL is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # RcppGSL is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with RcppGSL. If not, see . library(RcppGSL) Rcpp::sourceCpp("cpp/gsl.cpp") #test.gsl.vector.wrappers <- function(){ fx <- test_gsl_vector_wrapper res <- fx() expect_equal(res, list("gsl_vector" = numeric(10), "gsl_vector_float" = numeric(10), "gsl_vector_int" = integer(10), ##"gsl_vector_long" = numeric(10), "gsl_vector_char" = raw(10), "gsl_vector_complex" = complex(10), "gsl_vector_complex_float" = complex(10), "gsl_vector_complex_long_double" = complex(10), "gsl_vector_long_double" = numeric(10), "gsl_vector_short" = integer(10), "gsl_vector_uchar" = raw(10), "gsl_vector_uint" = integer(10), "gsl_vector_ushort" = integer(10) ##,"gsl_vector_ulong" = numeric(10) ), info = "wrap( gsl_vector )" ) #test.gsl.vector <- function(){ fx <- test_gsl_vector res <- fx() expect_equal(res, list("gsl_vector" = numeric(10), "gsl_vector_float" = numeric(10), "gsl_vector_int" = integer(10), ##"gsl_vector_long" = numeric(10), "gsl_vector_char" = raw(10), "gsl_vector_complex" = complex(10), "gsl_vector_complex_float" = complex(10), "gsl_vector_complex_long_double" = complex(10), "gsl_vector_long_double" = numeric(10), "gsl_vector_short" = integer(10), "gsl_vector_uchar" = raw(10), "gsl_vector_uint" = integer(10), "gsl_vector_ushort" = integer(10) ##,"gsl_vector_ulong" = numeric(10) ), info = "wrap( gsl_vector )" ) #test.gsl.matrix <- function(){ helper <- function(what){ as.what <- get( paste( "as.", deparse(substitute(what)), sep = "" ) ) x <- what(10) x[1] <- as.what(1) x[7] <- as.what(1) dim( x ) <- c(5,2) x } fx <- test_gsl_matrix res <- fx() expect_equal(res, list("gsl_matrix" = helper( numeric ), "gsl_matrix_float" = helper( numeric ), "gsl_matrix_int" = helper( integer ), ##"gsl_matrix_long" = helper( numeric ), "gsl_matrix_char" = helper( raw ), "gsl_matrix_complex" = helper( complex ), "gsl_matrix_complex_float" = helper( complex ), "gsl_matrix_complex_long_double" = helper( complex ), "gsl_matrix_long_double" = helper( numeric ), "gsl_matrix_short" = helper( integer ), "gsl_matrix_uchar" = helper( raw ), "gsl_matrix_uint" = helper( integer ), "gsl_matrix_ushort" = helper( integer ) ##,"gsl_matrix_ulong" = helper( numeric ) ), info = "wrap( gsl_matrix )" ) # test.gsl.vector.view <- function(){ fx <- test_gsl_vector_view res <- fx() expect_equal(res, list( even = 2.0 * 0:4, odd = 2.0 * 0:4 + 1.0 ), info = "wrap( gsl.vector.view )" ) fx <- test_gsl_vector_view_wrapper res <- fx() expect_equal( res, list( even = 2.0 * 0:4, odd = 2.0 * 0:4 + 1.0 ), info = "wrap( gsl.vector.view.wrapper )" ) #test.gsl.matrix.view <- function(){ fx <- test_gsl_matrix_view res <- fx() expect_equal( res$full[3:4, 3:4], res$view, info = "wrap(gsl.matrix.view)" ) fx <- test_gsl_matrix_view_wrapper res <- fx() expect_equal( res$full[3:4, 3:4], res$view, info = "wrap(gsl.matrix.view.wrapper)" ) #test.gsl.vector.input.SEXP <- function(){ x <- rnorm( 10 ) fx <- test_gsl_vector_input res <- fx(x) expect_equal( res, sum(x), info = "RcppGSL::vector(SEXP)" ) #test.gsl.matrix.input.SEXP <- function(){ x <- matrix( rnorm(20), nc = 4 ) fx <- test_gsl_matrix_input res <- fx( x) expect_equal( res, sum(x[,1]), info = "RcppGSL::matrix(SEXP)" ) #test.gsl.RcppGSL.vector <- function(){ fx <- test_gsl_vector_conv res <- fx() expect_equal( res, 0:9, info = "RcppGSL::vector -> IntegerVector" ) #test.gsl.RcppGSL.vector.indexing <- function(){ fx <- test_gsl_vector_indexing res <- fx( seq(0.5, 10.5) ) expect_equal( res, seq( 1.5, 11.5 ) ) #test.gsl.RcppGSL.vector.iterating <- function(){ x <- seq(0.5, 10.5) fx <- test_gsl_vector_iterating res <- fx(x) expect_equal( res, sum(x) ) #test.gsl.RcppGSL.vector.iterator.transform <- function() { x <- seq(0.5, 10.5) fx <- test_gsl_vector_iterator_transform res <- fx(x) expect_equal(res, sqrt(x)) #test.gsl.RcppGSL.matrix.indexing <- function(){ m <- matrix( 1:16+.5, nr = 4 ) fx <- test_gsl_matrix_indexing res <- fx(m) expect_equal( res, m+1 ) #test.gsl.RcppGSL.vector.view.iterating <- function(){ x <- seq(1.5, 10.5) fx <- test_gsl_vector_view_iterating res <- fx(x) expect_equal( res, sum( x[ seq(1, length(x), by = 2 ) ] ) ) #test.gsl.RcppGSL.matrix.view.indexing <- function(){ fx <- test_gsl_matrix_view_indexing res <- fx() expect_equal( res, 110.0 ) RcppGSL/inst/tinytest/test_client_package.R0000644000176200001440000000313613553063341020505 0ustar liggesusers#!/usr/bin/r -t # # Copyright (C) 2010 Romain Francois and Dirk Eddelbuettel # Copyright (C) 2014 - 2019 Dirk Eddelbuettel # # This file is part of RcppGSL. # # RcppGSL is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # RcppGSL is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with RcppGSL. If not, see . #test.client.package <- function(){ pkg <- "RcppGSLExample" cwd <- getwd() td <- tempfile() dir.create(td) file.copy(system.file("examples", pkg, package = "RcppGSL"), td, recursive = TRUE) Sys.chmod(file.path(td, "RcppGSLExample", "configure"), "0755") setwd(td) R <- file.path(R.home(component = "bin" ), "R") cmd <- paste("CMD build", pkg) system2(R, cmd, stdout=FALSE, stderr=FALSE) dir.create("templib") cmd <- paste("CMD INSTALL -l templib", paste0(pkg, "_0.0.3.tar.gz")) system2(R, cmd, stdout=FALSE, stderr=FALSE) suppressMessages({ require(Rcpp) require(pkg, "templib", character.only = TRUE) }) m <- matrix(1:16, nc = 4) res <- colNorm(m) val <- apply(m, 2, function(x) sqrt(sum(x^2))) expect_equal(res, val, info = "colNorm in client package") unlink("templib", recursive = TRUE) setwd(cwd) unlink(td, recursive = TRUE) RcppGSL/inst/NEWS.Rd0000644000176200001440000001704613553051344013557 0ustar liggesusers\name{NEWS} \title{News for Package \pkg{RcppGSL}} \newcommand{\ghpr}{\href{https://github.com/eddelbuettel/rcppgsl/pull/#1}{##1}} \newcommand{\ghit}{\href{https://github.com/eddelbuettel/rcppgsl/issues/#1}{##1}} \section{Changes in version 0.3.7 (2019-10-20)}{ \itemize{ \item A logic error was corrected in the wrapper class, vector and matrix memory is now properly free()'ed (Dirk in \ghpr{22} fixing \ghpr{20}). \item The introductory vignettes is now premade (Dirk in \ghpr{23}), and was updated lightly in its bibliography handling. \item The unit tests are now run by \pkg{tinytest} (Dirk in \ghpr{24}). } } \section{Changes in version 0.3.6 (2018-06-10)}{ \itemize{ \item The vignette was updated to accomodate pandoc 2* [CRAN request]. } } \section{Changes in version 0.3.5 (2018-05-19)}{ \itemize{ \item Update package manual page using references to \code{DESCRIPTION} file [CRAN request]. } } \section{Changes in version 0.3.4 (2018-05-06)}{ \itemize{ \item Windows builds were updated (Jeroen Ooms in \ghpr{16}). \item Remove dynamic exception specifications which are deprecated with C++11 or later (Dirk in \ghpr{17}). \item Accomodate Solaris by being more explicit about \code{sqrt}. } } \section{Changes in version 0.3.3 (2017-09-24)}{ \itemize{ \item We also check for \code{gsl-config} at package load. \item The vignette now uses the pinp package in two-column mode. \item Minor other fixes to package and testing infrastructure. } } \section{Changes in version 0.3.2 (2017-03-04)}{ \itemize{ \item In the \code{fastLm} function, \code{.Call} now uses the correct \code{PACKAGE=} argument \item Added file \code{init.c} with calls to \code{R_registerRoutines()} \code{and R_useDynamicSymbols()}; also use \code{.registration=TRUE} in \code{useDynLib} in \code{NAMESPACE} \item The skeleton configuration for created packages was updated. } } \section{Changes in version 0.3.1 (2016-10-02)}{ \itemize{ \item The unit test driver was updated and simplified, (by request of CRAN) no longer leaves files in `/tmp`, and removes two unexported (and unused) test helper functions (PR \ghpr{10}) \item Switched to \code{run.sh} for Travis (PR \ghpr{11}) \item Use canonical CRAN URLs in README.md \item Restored 'boxed' display of code in vignette (PR \ghpr{12}) } } \section{Changes in version 0.3.0 (2015-08-30)}{ \itemize{ \item The RcppGSL matrix and vector class now keep track of object allocation and can therefore automatically free allocated object in the destructor. Explicit \code{x.free()} use is still supported. \item The matrix and vector classes now support const reference semantics in the interfaces (thanks to PR #7 by Dan Dillon) \item The matrix_view and vector_view classes are reorganized to better support const arguments (thanks to PR #8 and #9 by Dan Dillon) \item Shorthand forms such as \code{Rcpp::Matrix} have been added for \code{double} and \code{int} vectors and matrices including views. \item Examples such as \code{fastLm} can now be written in a much cleaner and shorter way as GSL objects can appear in the function signature and without requiring explicit \code{.free()} calls at the end. \item The included examples, as well as the introductory vignette, have been updated accordingly. } } \section{Changes in version 0.2.5 (2015-07-05)}{ \itemize{ \item The \code{colnorm} function in the included example package was rewritten to use Rcpp Attributes, the example package was updated and its version number increased to 0.0.3. \item The unit tests also use the updated version of the example package. \item The package, and the included example package, were updated throughout to conform to the current \code{R CMD check} standards. \item The RcppGSL-intro vignette was updated throughout. \item The Travis CI integration now uses r-cran-* packages which leads to faster tests. } } \section{Changes in version 0.2.4 (2015-01-24)}{ \itemize{ \item Two new helper function to turn the default GSL error handler off (and to restore it) were added. The default handler is now turned off when the package is attached so that GSL will no longer abort an R session on error. Users will have to check the error code. \item The \code{RcppGSL-intro.Rnw} vignette was expanded with a short section on the GSL error handler (thanks to Qiang Kou). } } \section{Changes in version 0.2.3 (2015-01-10)}{ \itemize{ \item The \code{src/Makevars.in} was pruned of GNU make features at the request of the CRAN Maintainers. \item \code{configure.ac} and \code{configure} were updated, and shortened. \item The \code{RcppGSL-intro.Rnw} vignette was updated for its look and feel. } } \section{Changes in version 0.2.2 (2014-05-31)}{ \itemize{ \item A subtle bug (tickled only by clang on some OS versions) in vector and matrix view initialization was corrected by Kevin Ushey } } \section{Changes in version 0.2.1 (2014-05-26)}{ \itemize{ \item Added new example based on B-splines example in GSL manual illustrating simple GSL use via Rcpp attributes \item Vignette compilation has been reverted to using \pkg{highlight} since version 0.4.2 or greater can be used as a vignette engine (with R 3.0.* or later). \item Vignette compilation is now being done by \code{R CMD build} as R 3.0.0 supports different vignette engines, so the vignette build process has been simplified. A convenience helper script has also been added for command-line builds. \item Unit tests now use \code{sourceCpp()} instead of \code{cxxfunction()} from the \pkg{inline} package \item The \code{DESCRIPTION} file now uses \code{Suggests: Rcpp} (instead of \code{Depends: Rcpp}) to permit building of the vignette \item The package now takes advantage of the simplified build process available with Rcpp (>= 0.11.0) \item Similar updates to the build process were made for the example package included with RcppGSL } } \section{Changes in version 0.2.0 (2012-07-22)}{ \itemize{ \item{summary() for fastLm() now displays more information} \item{fastLmPure() now uses same argument order as R's lm.fit()} \item{Added more unit tests for fastLm() and related functions} \item{Export and document S3 methods in NAMESPACE and manual page as such} \item{Vignettes have been moved to the \code{vignettes/} directory} \item{Main vignette renamed to \code{RcppGSL-intro.pdf} to use a filename different from the package reference manual} \item{NEWS file converted to .Rd format} \item{inline plugin support function no longer uses assignInNamespace but deploys a small package-global enviornment} } } \section{Changes in version 0.1.1 (2011-04-05)}{ \itemize{ \item{Unit tests produce a summary vignette as for some of the other packages} \item{The documentation Makefile now uses the $R_HOME environment variable} \item{The documentation Makefile no longer calls clean in the all target} } } \section{Changes in version 0.1.0 (2010-11-30)}{ \itemize{ \item{Initial CRAN release with basic functionality for vectors and matrices} \item{A vignette provides an introduction and documentation about the package} \item{An example package RcppGSLExample provides a complete stanza for creating your own package using RcppGSL (and the GSL and Rcpp)} } } RcppGSL/inst/skeleton/0000755000176200001440000000000012774327533014342 5ustar liggesusersRcppGSL/inst/skeleton/Makevars.win0000644000176200001440000000014013036762740016620 0ustar liggesusersPKG_CPPFLAGS=-I$(LIB_GSL)/include -I../inst/include PKG_LIBS=-L$(LIB_GSL)/lib -lgsl -lgslcblas RcppGSL/inst/skeleton/configure.win0000644000176200001440000000041613036762553017040 0ustar liggesusersGSL_CFLAGS=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "RcppGSL:::CFlags()"` GSL_LIBS=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "RcppGSL:::LdFlags()"` sed -e "s|@GSL_LIBS@|${GSL_LIBS}|" \ -e "s|@GSL_CFLAGS@|${GSL_CFLAGS}|" \ src/Makevars.in > src/Makevars.win RcppGSL/inst/skeleton/Makevars.in0000644000176200001440000000025013036762600016426 0ustar liggesusers GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ # combine with standard arguments for R PKG_CPPFLAGS = -W $(GSL_CFLAGS) -I../inst/include PKG_LIBS += $(GSL_LIBS) RcppGSL/inst/skeleton/configure0000755000176200001440000000036213553063361016242 0ustar liggesusers#!/bin/sh GSL_CFLAGS=`${R_HOME}/bin/Rscript -e "RcppGSL:::CFlags()"` GSL_LIBS=`${R_HOME}/bin/Rscript -e "RcppGSL:::LdFlags()"` sed -e "s|@GSL_LIBS@|${GSL_LIBS}|" \ -e "s|@GSL_CFLAGS@|${GSL_CFLAGS}|" \ src/Makevars.in > src/Makevars RcppGSL/cleanup0000755000176200001440000000110513553063361013103 0ustar liggesusers#!/bin/sh rm -f config.log config.status confdefs.h \ src/*.o src/*.so src/Makevars src/symbols.rds \ inst/doc/*.blg inst/doc/*.bbl \ */*~ *~ rm -rf autom4te.cache inst/doc/*/auto (cd inst/examples/RcppGSLExample; \ rm -f config.log config.status \ src/*.o src/*.so src/Makevars \ */*~ *~ ; \ rm -rf autom4te.cache) (cd vignettes/rmd && \ rm -rf RcppGSL*.log RcppGSL*.aux RcppGSL*.out RcppGSL*.tex RcppGSL*.pdf *.blg *.bbl \ *.xwm jss.bst pinp.cls \ auto ../auto unitTests-results/ jss/auto/ ) RcppGSL/configure0000755000176200001440000032612013553063361013444 0ustar liggesusers#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for RcppGSL 0.3.7. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='RcppGSL' PACKAGE_TARNAME='rcppgsl' PACKAGE_VERSION='0.3.7' PACKAGE_STRING='RcppGSL 0.3.7' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS GSL_LIBS GSL_CFLAGS GSL_CONFIG OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures RcppGSL 0.3.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/rcppgsl] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of RcppGSL 0.3.7:";; esac cat <<\_ACEOF Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF RcppGSL configure 0.3.7 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by RcppGSL $as_me 0.3.7, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Checks for common programs using default macros ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ## Use gsl-config to find arguments for compiler and linker flags ## ## Check for non-standard programs: gsl-config(1) # Extract the first word of "gsl-config", so it can be a program name with args. set dummy gsl-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GSL_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $GSL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_GSL_CONFIG="$GSL_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GSL_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GSL_CONFIG=$ac_cv_path_GSL_CONFIG if test -n "$GSL_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_CONFIG" >&5 $as_echo "$GSL_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ## If gsl-config was found, let's use it if test "${GSL_CONFIG}" != ""; then # Use gsl-config for header and linker arguments GSL_CFLAGS=`${GSL_CONFIG} --cflags` GSL_LIBS=`${GSL_CONFIG} --libs` else as_fn_error $? "gsl-config not found, is GSL installed?" "$LINENO" 5 fi # Now substitute these variables in src/Makevars.in to create src/Makevars ac_config_files="$ac_config_files src/Makevars" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by RcppGSL $as_me 0.3.7, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ RcppGSL config.status 0.3.7 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi