oligoClasses/CHANGES0000644000175200017520000001673414710217345015235 0ustar00biocbuildbiocbuild### CHANGE log for package oligoClasses ### Changes made by Matt Settles 12-4-2008 ** All changes should generally have effect on only Affy Tiling, ST and expression arrays. added classes AffyExonPDInfo and AffySTPDInfo 03-09-09 - Benilton Carvalho - committed version 1.5.6 ** Small changes to reduce duplication of code for Gene and Exon Affymetrix arrays. 03-11-09 - Benilton Carvalho - committed version 1.5.7 ** Added accessors for Affy Tiling arrays. 03-17-09 - Benilton Carvalho - committed version 1.5.11 ** Generalized bg/bgindex methods for FeatureSet objects. 03-18-09 - Benilton Carvalho - committed version 1.5.12 ** Fixed all warnings so it passes CHECK. 03-20-09 - R. Scharpf - committed version 1.5.14 ** Removed requirement that chromosome be stored as a character string in oligoSnpSet featureData slot ** Removed calculateCopyNumber.Rd file 03-23-09 - R. Scharpf - committed version 1.5.15 ** Removed requirement that chromosome be stored as a character string in SnpCallSet and SnpCopyNumberSet 03-24-09 - B Carvalho - committed version 1.5.16 ** Removed unused TilingQSet-class ** Redefined sampleNames method for FeatureSet-like objects so it returns a vector. Because I changed FeatureSet (it now contains "NChannelSet" instead of "eSet"), sampleNames() would return a list (on "NChannelSet", elements of assayData are allowed to have different colnames). For the applications I foresee oligo being used, this (different colnames) should not be the case... ** Changed definition of FeatureSet. Instead of 'eSet', it contains "NChannelSet". ** Added TilingFeatureSet2 class, with two channels, to accommodate 2-colors applications of Tiling arrays. 03-25-2009 - B Carvalho ** Changes to accommodate sequence methods ** Added slot annotation to PDInfo, so we can easily find any information about the object. 03-25-2009 - B Carvalho ** Removed lots of unneeded things from NAMESPACE ** Implemented better definitions in NAMESPACE ** Fixed problem with sampleNames dispatching a warning. 04-07-2009 - R Scharpf committed v1.5.19 ** Removed chromosome requirement in setValidity for oligoSnpSet, SnpCallSet, and SnpCopyNumberSet 04-07-2009 - R Scharpf committed v1.5.20 ** Changed initialization method for oligoSnpSet and SnpCopyNumberSet 04-16-2009 - B Bcarvalho committed v 1.5.23 ** Cleaned up code 05-07-2009 - B Bcarvalho committed v 1.7.1 ** Cleaned up code 06-19-2009 - B Carvalho committed v 1.7.5 ** Fixed mmSequence 07-17-2009 - B Carvalho committed v 1.7.7 ** Extended pmChr to TilingFeatureSet2 07-25-2009 - B Carvalho committed v 1.7.9 ** Removed annotation from show method 08-05-2009 - B Carvalho committed v 1.7.10 ** Added automatic downloarder/installer pdPkgFromBioC()/requireAnnotation() to be used with annotation packages ** Added requireAnnotation, which is pretty much require() if the pkg is installed... and installs it, without asking, ortherwise. 08-06-2009 - B Carvalho committed v 1.7.10 ** For the moment, I don't think pdPkgFromBioC/requireAnnotation need to be exposed in NAMESPACE 09-01-2009 - B Carvalho committed v 1.7.12 ** requireAnnotation back in NAMESPACE 09-01-2009 - B Carvalho committed v 1.7.13 ** bgindex now sorted 09-27-2009 - B Carvalho committed v 1.7.15 ** added documentation to pdPkgFromBioC and requireAnnotation 09-29-2009 - B Carvalho committed v 1.7.16 ** svn add documentation 10-28-2009 - R. Scharpf committed v 1.9.1 ** export TilingFeatureSet2, QuantificationSet 11-19-2009 - R. Scharpf committed v 1.9.2 ** changed definition of SnpCallSetPlus extends SnpSet and SnpQSet 12-01-2009 - R. Scharpf committed v 1.9.7 ** removed SnpLevelSet ** oligoSnpSet extends SnpSet 12-02-2009 - B. Carvalho committed v 1.9.9 ** moved several methods to oligo ** trying to keepp only accessors and replace methods in oligoClasses ** exposing callsConfidence - until it comes from Biobase 12-10-2009 - B. Carvalho committed v 1.9.15 ** added intensityFile slot to FeatureSet class, it'll be NA for regular use and the filename (full) for persistent storage 12-19-2009 - R. Scharpf committed v 1.9.17 ** added man pages for AlleleSet, SnpSuperSet, and CNSet 12-20-2009 - R. Scharpf committed v 1.9.19 ** removed SnpLevelClasses Vignette and supporting documents in inst/doc ** added man/Snp-methods.Rd ** added man/list.cefiles.Rd 12-23-2009 - R. Scharpf committed v 1.9.21 ** removed IRanges dependency. Added a few .Rd files. Note IRanges is still loaded because of Biostrings dependency on IRanges. Do we need Biostrings? 12-30-2009 - R. Scharpf committed v 1.9.22 ** removed segmentData from initialization method for CNSet objects 01-23-2010 - B. Carvalho committed v 1.9.25 ** exported bothStrands() 01-28-2010 - B. Carvalho committed v 1.9.26 ** changed confs() slightly to agree with oligo 02-07-2010 - B. Carvalho (1.9.27) ** Updated requirement on affyio so Win64 is supported 02-20-2010 - R. Scharpf (1.9.28) ** Added CopyNumberSet class as a container for total copy number with no slots for genotypes. (Mainly for use with VanillaICE) ** Defined methods for db, chromosome, position, and isSnp at the level of eSet (formerly, these were defined at the SnpSet level). I did this so that CopyNumberSet, which extends eSet directly, could inherit these methods 02-20-2010 - R. Scharpf (1.9.29) ** modified initialization method for SnpSet. I would have preferred to modify the initialization in VanillaICE, but I had problems with this 02-20-2010 - R. Scharpf (1.9.30) ** moved A, B accessors from crlmm to oligoClasses. Updated a few of the man pages. ** added oligoClasses.Rnw vignette 03-04-2010 - B Carvalho (1.9.32) ** exposed DBPDInfo, ExpressionPDInfo, FeatureSet, TilingPDInfo ** fixed NEWS file 03-10-2010 - R.Scharpf (1.9.35) ** export A<-, B<- for AlleleSet 03-10-2010 - B Carvalho (1.9.37) ** adding ff utilities to be used in oligo and crlmm ** adding tools to diagnose cluster/large dataset support ** (1.9.39) fixed broken export and added p2i/i2p functions to simplify future changes on the conversion ** (1.9.40) fixed oligoProbeset/oligoSamples to be ocProbesets/ocSamples ** (1.9.41) fixed unload / docs 03-20-2010 - B Carvalho (1.9.44) ** fixed bugs that broke oligo::crlmm (initialization method for AlleleSet and getM/getA) 03-22-2010 - B Carvalho (1.9.45) ** add some docs ** commented out example (CNSet) the breaks completely the build process ** added eval=FALSE on the vignette on the relevant part so the pkg can be built ** fixed initialization for CNSet to conform changes on 1.9.44. 03-22-2010 - B Carvalho (1.9.46) ** fixed is.ffmatrix example ** fixed alias for allele 03-31-2010 - B Carvalho (1.9.50) ** moved initializeBigMatrix and initializeBigVector from crlmm to oligoClasses 03-31-2010 - R. Scharpf (1.9.51) ** added a few Rd files 04-03-2010 - R. Scharpf (1.9.52) ** added a few Rd files 04-04-2010 - R. Scharpf (1.9.53) ** addFeatureAnnotation.crlmm provides a warning rather than perform a subset operation on the eSet object. Subset operations are dangerous with ff objects 04-08-2010 - B Carvalho (1.9.54) ** moved NEWS to inst/ 04-10-2010 - B Carvalho (1.9.55) ** initializeBig(Vector/Matrix) get a 'initdata' argument 05-22-2010 - R. Scharpf (1.11.1) ** fixed man page for requireClusterPkgSet. Added integerScoreToProbability function. 06-30-2010 - R. Scharpf (1.11.2) ** added checkExists utility to oligoClasses package (checks objects in workspace or specified file directory before executing a function) 10-29-2010 - B Carvalho (1.13.2) ** removed man/flags.rda oligoClasses/DESCRIPTION0000644000175200017520000000411414710311132015722 0ustar00biocbuildbiocbuildPackage: oligoClasses Version: 1.68.0 Title: Classes for high-throughput arrays supported by oligo and crlmm Author: Benilton Carvalho and Robert Scharpf Maintainer: Benilton Carvalho and Robert Scharpf Depends: R (>= 2.14) Imports: BiocGenerics (>= 0.27.1), Biobase (>= 2.17.8), methods, graphics, IRanges (>= 2.5.17), GenomicRanges (>= 1.23.7), SummarizedExperiment, Biostrings (>= 2.23.6), affyio (>= 1.23.2), foreach, BiocManager, utils, S4Vectors (>= 0.9.25), RSQLite, DBI, ff Enhances: doMC, doMPI, doSNOW, doParallel, doRedis Suggests: hapmapsnp5, hapmapsnp6, pd.genomewidesnp.6, pd.genomewidesnp.5, pd.mapping50k.hind240, pd.mapping50k.xba240, pd.mapping250k.sty, pd.mapping250k.nsp, genomewidesnp6Crlmm (>= 1.0.7), genomewidesnp5Crlmm (>= 1.0.6), RUnit, human370v1cCrlmm, VanillaICE, crlmm Description: This package contains class definitions, validity checks, and initialization methods for classes used by the oligo and crlmm packages. License: GPL (>= 2) LazyLoad: yes Collate: AllClasses.R AllGenerics.R utils-general.R utils-lds.R utils-parallel.R methods-gSet.R initialize-methods.R methods-AlleleSet.R methods-AnnotatedDataFrame.R methods-FeatureSet.R methods-AssayData.R methods-SnpFeatureSet.R methods-oligoSnpSet.R methods-CopyNumberSet.R methods-CNSet.R methods-PDInfo.R methods-RangedDataCNV.R methods-SnpSet.R methods-GenomeAnnotatedDataFrame.R methods-BeadStudioSet.R methods-BeadStudioSetList.R methods-gSetList.R methods-GRanges.R methods-SummarizedExperiment.R show-methods.R functions.R zzz.R biocViews: Infrastructure ## Local Variables: ## time-stamp-pattern: "8/Date: %3a %3b %2d %02H:%02M:%02S %Z %:y\n" ## End: RoxygenNote: 6.1.1 git_url: https://git.bioconductor.org/packages/oligoClasses git_branch: RELEASE_3_20 git_last_commit: 13ba25a git_last_commit_date: 2024-10-29 Repository: Bioconductor 3.20 Date/Publication: 2024-10-29 NeedsCompilation: no Packaged: 2024-10-30 01:56:42 UTC; biocbuild oligoClasses/MD50000644000175200017520000001625114710311132014531 0ustar00biocbuildbiocbuild759643b4725630df6dce89d27d4f9e99 *CHANGES 9e47b101e1f627b82735a54a8fe09dfc *DESCRIPTION 9fb5ce0c170593c6d69719e7f7a1fe2f *NAMESPACE 01badfc0e754278edf3f60a9ce1ce93f *R/AllClasses.R e836e71ab06b07cd3e2bffbcad7c1ff3 *R/AllGenerics.R 1b2080338551cf0ff462a120093b43d7 *R/functions.R 0c154da15763cec47004977a42e5f5cb *R/initialize-methods.R 1284894e9f837392655a4c4206d51208 *R/methods-AlleleSet.R ea45819617e75b3abd2d000053495afc *R/methods-AnnotatedDataFrame.R 64fc8213d434cd3ebda9759afdd81ae7 *R/methods-AssayData.R 7790bb22543f5e758638863200e087a9 *R/methods-BeadStudioSet.R eab41d71131ed7ba62d7dde6358ab842 *R/methods-BeadStudioSetList.R 2d3792c6b789d5e78f3bd692baf54e01 *R/methods-CNSet.R c39b72de1c75ab0e776ce0baf0bc70f2 *R/methods-CopyNumberSet.R ac6c575d9a080a5b7c01229e66b62302 *R/methods-FeatureSet.R dfa82786eff23473ff9f94ecc1c36297 *R/methods-GRanges.R 12fbd087f61e326724ed3bf69ff5478d *R/methods-GenomeAnnotatedDataFrame.R 5b2ad2e1fd79de8a9456718e140ada30 *R/methods-PDInfo.R 7dd99fef00077537c765a768a69a1459 *R/methods-RangedDataCNV.R 93fce26799d6edbc2bdbcedb4352f6ba *R/methods-SnpFeatureSet.R 0d6ba9a9bf43a1c5e76a16abe55771e5 *R/methods-SnpSet.R 65ad644489a5c78b341cf1d8c1363487 *R/methods-SummarizedExperiment.R f69a9de72ece9b92b4e59185304431ab *R/methods-gSet.R abd0f7ec2d873292a4fdc69d6f5099ba *R/methods-gSetList.R b02a464b8af074bf99d2a5521fb7995b *R/methods-oligoSnpSet.R d4d86bb29842d78e89ff60acf6e1a0d2 *R/show-methods.R 3ce93d402e8f64fcc8df9908cbbaceef *R/utils-general.R 09d4f0088c53ed966c2cf9c2c093b39a *R/utils-lds.R f87fed4d85b9a3046532b629771b89e4 *R/utils-parallel.R ed6a0a38225b26e3fb2a1fcb7f22e16b *R/zzz.R 7d703b938c71f596a683b96f751ab73c *TODO 803becc216a5a670f3e52339c24dc44b *data/efsExample.rda 8593bdbb95a7e75a75f91f58f3abeb6d *data/locusLevelData.rda d149da60dbea5f97ec2f90dd15aba811 *data/oligoSetExample.rda 201ac2027e9b193f17b935e94234d4c9 *data/scqsExample.rda f245c69e14b2efb34fbc1300a235ed5e *data/sfsExample.rda 6d5583d078ac6be3590be41947efd887 *data/sqsExample.rda 7fad8ed1a71a7077433dba4ba2badf36 *inst/NEWS.Rd 50a13c79c4db63005bc3337c4cee0821 *inst/extdata/gap_hg18.rda 2469cf0af59e3b6ce40b3aa8b6efa33d *inst/extdata/gap_hg19.rda 0d99a0bcba287fd4e67cbe27ae4ff67d *inst/extdata/genomeAnnotatedDataFrameExample.rds f3cce8ea9e30b570a46b77eb454122f6 *inst/extdata/seqlengths_hg18.rda 1663931800a3dd954158ead37e7f1475 *inst/extdata/seqlengths_hg19.rda 165dba4516224b19c3c39f5cdb72a111 *inst/unitTests/Makefile 72c4241fde5d3f2b47684a270358a016 *inst/unitTests/test_RangedDataCNV-class.R 2c1cca993e845dce65a0d8d5e9eb81ea *inst/unitTests/test_annotation.R d8c48374e45c28542de8278233d70007 *inst/unitTests/test_classes.R 1cd583ccf9adb66ec849fa904ad82a73 *inst/unitTests/test_conversions.R 730fab62c4dbd8d1bccf9a88be0dac02 *man/AlleleSet-class.Rd 810a6033ecbafffa9a2db34fc8d0e2fe *man/AlleleSet-methods.Rd f7f65bff01e7620d334b0bc1e2a41608 *man/AssayData-methods.Rd e8b788bf7e080f04e865124f2ead92b8 *man/AssayDataList.Rd fdc10338cd87b46ea04e02aefb28dde0 *man/BeadStudioSet-class.Rd 7e27fa07a76c7271c8653028514e8e70 *man/BeadStudioSetList-class.Rd 17dc4be536067e6250104f2985850c9a *man/CNSet-class.Rd 0dd35e184dbc7d9c68fdbb51859d2b80 *man/ClassesNotExported.Rd 2c142ca177ca65ea31a0430ee2c9f88f *man/CopyNumberSet-class.Rd e7de9bce9ac7ef586447b76a65018110 *man/CopyNumberSet-methods.Rd b923b03f3ed6d23e05c72b7ffb171033 *man/DBPDInfo-class.Rd 36acf453718f7293823837e66adf2bc0 *man/FeatureSetExtensions-class.Rd d81cba5af461772b6e0cb190ff1da7c7 *man/GRanges-methods.Rd 1c0bd5ef227d8cc50f7b7844baa9f945 *man/GenomeAnnotatedDataFrame-class.Rd 5bd33f9cc5fa63209637024e855f4442 *man/GenomeAnnotatedDataFrameFrom-methods.Rd 85e94feb2ddbbe059c4530ea4a8187c9 *man/SnpSet-methods.Rd 471cb412a53aa3f3d6c7f03e9cafbd2b *man/SnpSet2-class.Rd 02a4ae3dade12035c9e643796e973cd0 *man/SnpSuperSet-class.Rd 5d889ba03fe821438101d085e8e3e6c0 *man/SummarizedExperiment-methods.Rd c08909f6fc5ab7e28b9cc57b85ffe289 *man/affyPlatforms.Rd bbe82f77bf0dc03d0c682b46c5c66e19 *man/annotationPackages.Rd 0f74c3809cff7f4e4286a91dcc702cb8 *man/assayDataList-methods.Rd 218eafbbdd73737d60b2e1fd4a6afe55 *man/batch.Rd 3711730e3b23dfd6fb6554cb7fe4abdf *man/batchStatistics.Rd 60a431a6899fb458ef3b9535af954614 *man/celfileDate.Rd 37eb40ae027effc8862215f1ce8cc0d7 *man/celfileName.Rd 18ca0595cb10d49f0c955ab14bd98178 *man/checkExists.Rd ba54423256c85cbf4a99482605308508 *man/checkOrder.Rd 82d2fe40915923820ac5c146e70e16d5 *man/chromosome-methods.Rd 0723b8c8ac309419887834adeb1182d1 *man/chromosome2integer.Rd 1b188837827590c62b9df5c71e936c52 *man/clusterOpts.Rd d65f5975f52a43c5613825ab6fd26414 *man/clusterOptsDeprecated.Rd d624a922828e2c3f434030f3fe124f93 *man/createFF.Rd e66ad66aa413943d4f350338eef70a40 *man/data-efsExample.Rd d025e0c7b8b8d2f684e985b7d6fc4149 *man/data-scqsExample.Rd 947573f62978b8e5b1dc50657f33c28e *man/data-sfsExample.Rd e0ef30a6b97d4f4963d96326e79dabf9 *man/data-sqsExample.Rd 2b3747d0ee899bd25049081db15df9d0 *man/db.Rd f217b2212b903fda374e61159d4857f9 *man/defunct.Rd 0e70732c86fee9ca1eb22094e638fd0c *man/exprs-methods.Rd ec6659061a9aa01b539f967c332ea4db *man/featureDataList-methods.Rd 7a4841138496ea42adfc7745d6059299 *man/ff_matrix.Rd 00c6ed9ee5bc7b10fbb21cda868a3a1e *man/ff_or_matrix-class.Rd b494eebde0f4dd1f1d1d1269c0601dcc *man/ffdf.Rd 1ed305220fb7e631ad90882234087a29 *man/fileConnections.Rd cd154765d1e83c0e34ad6affa29a5891 *man/flags.Rd cd7c5743acc77f8d3273cbbe08298bc8 *man/gSet-class.Rd e823779406cef40e943b9f8b604ffb86 *man/gSetList-class.Rd 722643cce53bb306ce2c4070ef5a70dc *man/generics.Rd 84ac0a7dff7c72c6b9d51bbff0f0801b *man/genomeBuild.Rd 865a116ada6668f34f5be2f283ccd397 *man/geometry-methods.Rd 7475104503140f30f1b6d3d81fb89bc6 *man/getBar.Rd 26ba56c6d608904b50e6a9726fa562e0 *man/getSequenceLengths.Rd 03b20ef4e537176341d3cd0476b53e37 *man/i2p_p2i.Rd 4b01e6e4ff8bfb47b9011af1d5bba0a9 *man/integerMatrix.Rd ffe7de8254a710961500b3ae7064e46f *man/is.ffmatrix.Rd e4256584d1051376581284bd848a61f0 *man/isPackageLoaded.Rd 8e499624945d67b850ad5d9fb1047c00 *man/isSnp-methods.Rd 46d8b392a3ecfacb86f4a487258df91b *man/kind.Rd 09600850aeee6755eead00f8632405da *man/largeObjects.Rd 1a7d231c5e13efbd8adef2ccb609baa5 *man/ldOpts.Rd ceedcfbf90af0932553a6e694269e456 *man/length-methods.Rd 80034192ea95d4002c9990481a362cb2 *man/library2.Rd 5f9d92fcc961f0340de9f5a8cd0533b3 *man/list.celfiles.Rd 9eea6d2220817a46ee0e6d23f0df3b92 *man/locusLevelData.Rd 90fbb31922122676195961d46c04380d *man/makeFeatureGRanges.Rd 305d72264b9132e19ab0eab687610658 *man/manufacturer-methods.Rd 3aa77df4eee0c188b438ff255a2c053b *man/ocLapply.Rd 410fa0ef8f18426108a7844b6c1b2911 *man/oligoSetExample.Rd 291b3a996b8e4d381b234ff4e54e2f2f *man/oligoSnpSet-methods.Rd 6a8378eb16d62501b76a398c1ef626ee *man/parStatus.Rd 2cf3066a3e99ba35fbb8073f4926a728 *man/pdPkgFromBioC.Rd d9751edd71b2a1f3faed791e7af17e35 *man/platform-methods.Rd 434c7bdddddc9fa034e74f4709690d2d *man/pmFragmentLength-methods.Rd 8a51b8ad28d79af4dc69aed5914e229c *man/position-methods.Rd 1dc5bdbaff96ec88d1e04a2ffc213b7a *man/requireAnnotation.Rd 289823d263896274055269f7c45e0ec7 *man/requireClusterPkgSetDeprecated.Rd 449e58f473ee84e438040349db72f41e *man/sampleNames-methods.Rd 65a7f575230f64ca99e8ea7998296938 *man/splitVec.Rd 2ee2bacbdf339266ff750f9ee35bef49 *tests/doRUnit.R c4b2ff12fea2179d91d10780f51d3502 *vignettes/scriptsForExampleData/CreateExampleData.R oligoClasses/NAMESPACE0000644000175200017520000001171514710217345015453 0ustar00biocbuildbiocbuild## oligoClasses NAMESPACE ##--------------------------------------------------------------------------- ## Import ##--------------------------------------------------------------------------- ## methods import(methods) ## BiocGenerics importFrom(BiocGenerics, updateObject, annotation, "annotation<-", dims) ## affyio importFrom(affyio, read.celfile.header, read.celfile) ## Biostrings importClassesFrom(Biostrings, DNAStringSet) ## graphics importFrom(graphics, plot) ## Biobase importClassesFrom(Biobase, AnnotatedDataFrame, AssayData, eSet, MIAME, NChannelSet, Versions, VersionedBiobase, Versioned, SnpSet) importFrom(Biobase, assayDataElement, assayDataElementReplace, assayDataNew, assayDataValidMembers, assayDataElementNames, varLabels, isCurrent, testBioCConnection) importMethodsFrom(Biobase, annotatedDataFrameFrom, assayData, "assayData<-", combine, experimentData, "experimentData<-", exprs, "exprs<-", protocolData, featureData, "featureData<-", featureNames, fData, "fData<-", fvarLabels, pData, "pData<-", phenoData, "phenoData<-", sampleNames, "sampleNames<-", se.exprs, "se.exprs<-", storageMode, "storageMode<-", classVersion, snpCall, snpCallProbability, 'snpCall<-', 'snpCallProbability<-') importMethodsFrom(DBI, dbGetQuery, dbListTables) ## IRanges ##importClassesFrom(IRanges, RangedData, DataTable, List, DataTable_OR_NULL, Vector, Annotated) ##importFrom(IRanges, IRanges, RangedData, RangedDataList, ## countOverlaps, ## ranges, values, ## queryHits, subjectHits) ##importMethodsFrom(IRanges, findOverlaps, as.matrix, elementNROWS) ##importClassesFrom(GenomicRanges, GRanges) import(IRanges) import(GenomicRanges) import(SummarizedExperiment) ## ff ## register open and close methods ##importFrom(ff, open.ff, close.ff, ff, ffdf) import(ff) ## foreach import(foreach) ## BiocManager importFrom(BiocManager, repositories) ## utils importFrom(utils, packageDescription, available.packages, contrib.url, install.packages) ##--------------------------------------------------------------------------- ## Export ##--------------------------------------------------------------------------- ## ## classes ## ## PDInfo Classes exportClasses(AffyTilingPDInfo, AffyExpressionPDInfo, AffySNPPDInfo, AffySNPCNVPDInfo, AffyGenePDInfo, AffyExonPDInfo, NgsExpressionPDInfo, NgsTilingPDInfo, DBPDInfo, ExpressionPDInfo, TilingPDInfo, GenericPDInfo) ##Feature-level Classes exportClasses(FeatureSet, ExpressionFeatureSet, SnpFeatureSet, SnpCnvFeatureSet, TilingFeatureSet, ExonFeatureSet, GeneFeatureSet, GenericFeatureSet) ##SNP-level Classes exportClasses(AlleleSet, BeadStudioSet, oligoSnpSet, SnpSuperSet, CNSet, gSet, gSetList, CopyNumberSet, GenomeAnnotatedDataFrame, BeadStudioSetList, BafLrrSetList, BafLrrSet, oligoSetList, SnpSet2) ## list methods exportMethods(assayDataList, dims, featureDataList) ## Ranged-Data methods exportMethods(numberProbes) ##Misc exportClasses(ff_or_matrix) ## EXPORTING..... ## methods ## ## Methods ... exportMethods(bothStrands, allele, calls, "calls<-", confs, "confs<-", chromosome, "chromosome<-", copyNumber, "copyNumber<-", cnConfidence, "cnConfidence<-", db, elementNROWS, isSnp, position, "position<-", sampleNames, A, B, "A<-", "B<-", "genomeBuild<-", getArm) ## FeatureSet methods exportMethods(exprs) ## PDInfo methods exportMethods(annotation, db, initialize, genomeBuild, geometry, kind, manufacturer) ## Some general methods exportMethods(getM, getA, annotatedDataFrameFrom, open, close) ## CNSet methods exportMethods(batch, batchNames, "batchNames<-", coerce, flags, show, nu, phi, batchStatistics, "batchStatistics<-", baf, lrr, "baf<-", "lrr<-", coverage2, findOverlaps, state, openff, closeff, checkOrder, mean, updateObject, "sampleNames<-", GenomeAnnotatedDataFrameFrom, makeFeatureGRanges, clone2) import(S4Vectors) ## EXPORTING.... ## functions ## ## Functions for parallel operations export(pdPkgFromBioC, requireAnnotation, affyPlatforms, celfileDate, celfileName, list.celfiles, is.ffmatrix, isPackageLoaded, ldStatus, ldSetOptions, parStatus, ocProbesets, ocSamples, ldPath, getBar, createFF, ocLapply, splitIndicesByLength, splitIndicesByNode, initializeBigMatrix, initializeBigVector, initializeBigArray) export(chromosome2integer, integer2chromosome, i2p, p2i, annotationPackages, checkExists, chromosomePositionOrder, integerArray, integerMatrix, findOverlaps, library2, AssayDataList, getSequenceLengths) ### Deprecated export(setCluster, getCluster, delCluster, requireClusterPkgSet, requireClusterPkg) exportMethods(featuresInRange) oligoClasses/R/0000755000175200017520000000000014710217345014430 5ustar00biocbuildbiocbuildoligoClasses/R/AllClasses.R0000644000175200017520000001403414710217345016603 0ustar00biocbuildbiocbuild########################################################################### ## General DBPDInfo Classes ########################################################################### setClass("DBPDInfo", representation=representation( getdb="function", tableInfo="data.frame", geometry="integer", manufacturer="character", genomebuild="character", annotation="character")) setClass("GenericPDInfo", contains="DBPDInfo") setClass("SNPPDInfo", contains="DBPDInfo") setClass("SNPCNVPDInfo", contains="SNPPDInfo") setClass("ExpressionPDInfo", contains="DBPDInfo") setClass("TilingPDInfo", contains="DBPDInfo") setClass("stArrayDBPDInfo", contains="DBPDInfo") setClass("ExonPDInfo", contains="stArrayDBPDInfo") setClass("GenePDInfo", contains="stArrayDBPDInfo") setClass("HTAPDInfo", contains="stArrayDBPDInfo") ########################################################################### ## Manufacturer-specific PDInfo Classes ########################################################################### setClass("AffyTilingPDInfo", contains="TilingPDInfo", prototype=list(manufacturer="Affymetrix")) setClass("AffyExpressionPDInfo", contains="ExpressionPDInfo", prototype=list(manufacturer="Affymetrix")) setClass("AffyGenePDInfo", contains="GenePDInfo", prototype=list(manufacturer="Affymetrix")) setClass("AffyExonPDInfo", contains="ExonPDInfo", prototype=list(manufacturer="Affymetrix")) setClass("AffySTPDInfo", contains="AffyExpressionPDInfo") setClass("AffyHTAPDInfo", contains="HTAPDInfo") setClass("AffySNPPDInfo", contains="SNPPDInfo", prototype=list(manufacturer="Affymetrix")) setClass("AffySNPCNVPDInfo", contains="AffySNPPDInfo") setClass("NgsExpressionPDInfo", contains="ExpressionPDInfo", prototype=list(manufacturer="NimbleGen")) setClass("NgsTilingPDInfo", contains="TilingPDInfo", prototype=list(manufacturer="NimbleGen")) ########################################################################### ##Feature-level classes ########################################################################### setClass("FeatureSet", representation=representation( manufacturer="character", intensityFile="character", "VIRTUAL"), contains="NChannelSet", prototype=prototype( manufacturer=NA_character_, intensityFile=NA_character_)) setClass("GenericFeatureSet", contains="FeatureSet") setClass("ExpressionFeatureSet", contains="FeatureSet") setClass("SnpFeatureSet", contains="FeatureSet") setClass("SnpCnvFeatureSet", contains="SnpFeatureSet") setClass("TilingFeatureSet", contains="FeatureSet") setClass("ExonFeatureSet", contains="FeatureSet") setClass("GeneFeatureSet", contains="FeatureSet") setClass("HTAFeatureSet", contains="FeatureSet") setClass("AlleleSet", contains="eSet") ########################################################################### ## Combo classes - SNP Summaries - alleles + calls/conf ########################################################################### ## RS is no longer using this class setClass("SnpSuperSet", contains=c("AlleleSet", "SnpSet")) ########################################################################### ## GenomeAnnotatedDataFrame ########################################################################### setClass("GenomeAnnotatedDataFrame", contains="AnnotatedDataFrame") ########################################################################### ##SNP-level classes ########################################################################### setClass("gSet", contains="eSet", representation(##featureData="GenomeAnnotatedDataFrame", genome="character", "VIRTUAL")) setClass("SnpSet2", contains="gSet") ##setClass("SnpSet2", contains="SnpSet") setClass("oligoSnpSet", contains="SnpSet2") ##representation(featureData="GenomeAnnotatedDataFrame")) setClass("CopyNumberSet", contains="gSet") ## total copy number (no genotypes available) setClass("BeadStudioSet", contains="gSet") setClass("BafLrrSet", contains="BeadStudioSet") #setClass("SomeClass", contains="SnpSet2") ## why will this not work?? ########################################################################### ##Summary-level classes - CNP ########################################################################### setOldClass("ffdf") setOldClass("ff_matrix") setClassUnion("list_or_ffdf", c("list", "ffdf")) setClassUnion("ff_or_matrix", c("ffdf", "ff_matrix", "matrix")) setClass("CNSet", contains="gSet", representation(batch="character", batchStatistics="AssayData", mixtureParams="ff_or_matrix", datadir="list"))##, ## prototype = prototype( ## new("VersionedBiobase", ## versions=c(classVersion("SnpSet"), CNSet="1.0.6")))) setClass("CNSetLM") setMethod("initialize", "CNSetLM", function(.Object, ...){ .Defunct(msg="The CNSetLM class is defunct") }) ## SetList classes setClass("gSetList", representation(assayDataList="AssayData", phenoData="AnnotatedDataFrame", protocolData="AnnotatedDataFrame", experimentData="MIAME", featureDataList="list", ## could be GRangesList... chromosome="vector", annotation="character", genome="character", "VIRTUAL")) setClass("BeadStudioSetList", contains="gSetList") setClass("BafLrrSetList", contains="BeadStudioSetList") setClass("oligoSetList", contains="gSetList") ##--------------------------------------------------------------------------- ## classes for ranges ## deprecated now ## setClass("RangedDataCopyNumber", contains="RangedData", ## representation("VIRTUAL")) ## setClass("RangedDataCNV", contains="RangedDataCopyNumber") ## setClass("RangedDataCBS", contains="RangedDataCNV") ## setClass("RangedDataHMM", contains="RangedDataCNV") ##setClass("GRangesHMM", contains="GRanges") ##setClass("GRangesHMMList", contains="GRangesList") ##setClass("GRangesList", ## contains=c("CompressedList", "GenomicRangesList"), ## representation( ## unlistData="GRanges", ## elementMetadata="DataFrame" ## ), ## prototype( ## elementType="GRanges" ## ) ##) oligoClasses/R/AllGenerics.R0000644000175200017520000001070714710217345016750 0ustar00biocbuildbiocbuildsetGeneric("manufacturer",function(object) standardGeneric("manufacturer")) setGeneric("manufacturer<-", function(object, value) standardGeneric("manufacturer<-")) setGeneric("bothStrands", function(object) standardGeneric("bothStrands")) setGeneric("allele", function(object, allele, strand) standardGeneric("allele")) setGeneric("annotate", function(object) standardGeneric("annotate")) ## assayData accessors setGeneric("getM", function(object) standardGeneric("getM")) setGeneric("getA", function(object) standardGeneric("getA")) setGeneric("A", function(object, ...) standardGeneric("A")) setGeneric("B", function(object, ...) standardGeneric("B")) setGeneric("A<-", function(object, value) standardGeneric("A<-")) setGeneric("B<-", function(object, value) standardGeneric("B<-")) setGeneric("calls<-", function(object, value) standardGeneric("calls<-")) setGeneric("calls", function(object) standardGeneric("calls")) setGeneric("confs", function(object, transform=TRUE) standardGeneric("confs")) setGeneric("confs<-", function(object, value) standardGeneric("confs<-")) setGeneric("cnConfidence", function(object) standardGeneric("cnConfidence")) setGeneric("cnConfidence<-", function(object, value) standardGeneric("cnConfidence<-")) setGeneric("copyNumber", function(object, ...) standardGeneric("copyNumber")) setGeneric("copyNumber<-", function(object, value) standardGeneric("copyNumber<-")) setGeneric("baf", function(object) standardGeneric("baf")) setGeneric("lrr", function(object) standardGeneric("lrr")) setGeneric("lrr<-", function(object,value) standardGeneric("lrr<-")) setGeneric("baf<-", function(object,value) standardGeneric("baf<-")) ##GenomeAnnotatedDataFrame accessors setGeneric("chromosome", function(object, ...) standardGeneric("chromosome")) setGeneric("chromosome<-", function(object, value) standardGeneric("chromosome<-")) setGeneric("db", function(object) standardGeneric("db")) setGeneric("kind", function(object) standardGeneric("kind")) setGeneric("position", function(object, ...) standardGeneric("position")) setGeneric("position<-", function(object, value) standardGeneric("position<-")) setGeneric("isSnp", function(object, ...) standardGeneric("isSnp")) setGeneric("isSnp<-", function(object, value) standardGeneric("isSnp<-")) ##setGeneric("snpNames", function(object) standardGeneric("snpNames")) setGeneric("getArm", function(object, ...) standardGeneric("getArm")) setGeneric("genomeBuild", function(object) standardGeneric("genomeBuild")) setGeneric("genomeBuild<-", function(object,value) standardGeneric("genomeBuild<-")) setGeneric("geometry", function(object) standardGeneric("geometry")) ## batchStatistics/copynumber setGeneric("batch", function(object) standardGeneric("batch")) setGeneric("batch<-", function(object, value) standardGeneric("batch<-")) setGeneric("batchNames", function(object) standardGeneric("batchNames")) setGeneric("batchNames<-", function(object,value) standardGeneric("batchNames<-")) setGeneric("nu", function(object, allele) standardGeneric("nu")) setGeneric("phi", function(object, allele) standardGeneric("phi")) setGeneric("sigma2", function(object, allele) standardGeneric("sigma2")) setGeneric("batchStatistics", function(object) standardGeneric("batchStatistics")) setGeneric("batchStatistics<-", function(object,value) standardGeneric("batchStatistics<-")) setGeneric("flags", function(object) standardGeneric("flags")) setGeneric("coverage2", function(object) standardGeneric("coverage2")) setGeneric("state", function(object) standardGeneric("state")) setGeneric("featuresInRange", function(object, range, FRAME=0, FRAME.LEFT, FRAME.RIGHT, ...) standardGeneric("featuresInRange")) setGeneric("openff", function(object) standardGeneric("openff")) setGeneric("closeff", function(object) standardGeneric("closeff")) setGeneric("checkOrder", function(object, verbose=FALSE) standardGeneric("checkOrder")) ##setGeneric("order2", function(object) standardGeneric("order2")) setGeneric("GenomeAnnotatedDataFrameFrom", function(object, annotationPkg, genome="hg19", ...) standardGeneric("GenomeAnnotatedDataFrameFrom")) setGeneric("numberProbes", function(object) standardGeneric("numberProbes")) setGeneric("makeFeatureGRanges", function(object, ...) standardGeneric("makeFeatureGRanges")) ## List classes setGeneric("assayDataList", function(object) standardGeneric("assayDataList")) setGeneric("featureDataList", function(object) standardGeneric("featureDataList")) setGeneric("clone2", function(object, id, prefix="",...) standardGeneric("clone2")) oligoClasses/R/functions.R0000644000175200017520000000420114710217345016560 0ustar00biocbuildbiocbuildintegerMatrix <- function(x, scale=100) { if(!is(x, "matrix")) stop("argument x must be a matrix") dms <- dimnames(x) if(scale != 1){ xx <- as.integer(x*scale) } else xx <- as.integer(x) x <- matrix(xx, nrow(x), ncol(x)) dimnames(x) <- dms return(x) } numericMatrix <- function(x, scale=1/100) { return(x/scale) } integerArray <- function(x, scale=100){ if(!is(x, "array")) stop("argument x must be an array") dims <- dim(x) dms <- dimnames(x) if(scale != 1){ xx <- as.integer(x*scale) } else xx <- as.integer(x) x <- array(xx, dim=dims, dimnames=dms) return(x) } getSequenceLengths <- function(build){ path <- system.file("extdata", package="oligoClasses") load(file.path(path, paste("seqlengths_", build, ".rda", sep=""))) return(seqlengths) } setSequenceLengths <- function(build, names){ ## names are unique(seqnames(object)) sl <- getSequenceLengths(build) sl[match(unique(names), names(sl))] } chromosome2integer <- function(chrom){ chrom[chrom == "X"] <- 23; chrom[chrom == "Y"] <- 24; chrom[chrom == "XY"] <- 25; chrom[chrom=="M" | chrom == "MT" | chrom == "Mt"] <- 26 as.integer(chrom) } integer2chromosome <- function(intChrom){ charChrom <- as.character(intChrom) charChrom[charChrom=="23"] <- "X" charChrom[charChrom=="24"] <- "Y" charChrom[charChrom %in% c("MT", "Mt")] <- "M" charChrom } .getArm <- function(chrom, pos, genome){ if(is.integer(chrom)) chrom <- paste("chr", integer2chromosome(chrom), sep="") path.gap <- system.file("extdata", package="oligoClasses") gfile <- list.files(path.gap, pattern=paste("gap_", genome, ".rda", sep=""), full.names=TRUE) gaps <- readRDS(gfile) centromere.starts <- start(gaps) centromere.ends <- end(gaps) names(centromere.ends) <- names(centromere.starts) <- seqnames(gaps) centromere.starts <- centromere.starts[chrom] centromere.ends <- centromere.ends[chrom] chr.arm <- arm <- rep(NA, length(pos)) arm[pos <= centromere.starts] <- "p" arm[pos >= centromere.ends] <- "q" ##arm <- ifelse(pos <= centromere.starts, "p", "q") chr.arm[!is.na(arm)] <- paste(chrom[!is.na(arm)], arm[!is.na(arm)], sep="") chr.arm } oligoClasses/R/initialize-methods.R0000644000175200017520000004110214710217345020353 0ustar00biocbuildbiocbuildsetMethod("initialize", signature(.Object="CopyNumberSet"), function(.Object, assayData = assayDataNew(copyNumber = copyNumber, cnConfidence = cnConfidence, ...), phenoData = annotatedDataFrameFrom(assayData, byrow=FALSE), experimentData = new("MIAME"), annotation = character(), protocolData = phenoData[,integer(0)], copyNumber = new("matrix"), cnConfidence = matrix(numeric(), nrow=nrow(copyNumber), ncol=ncol(copyNumber), dimnames=dimnames(copyNumber)), featureData=GenomeAnnotatedDataFrameFrom(assayData, annotation, genome=genome), genome=c("hg19", "hg18"), ...) { if(nrow(copyNumber)>0){ if(!is(copyNumber[, 1], "integer")) stop("copyNumber should be supplied as a matrix of integers (original scale * 100). See integerMatrix in the oligoClasses package for the conversion to integer matrices") } .Object <- callNextMethod(.Object, assayData = assayData, phenoData = phenoData, featureData = featureData, experimentData = experimentData, annotation = annotation, protocolData = protocolData) if(nrow(assayData[["copyNumber"]]) == 0){ .Object@genome <- "" } else{ .Object@genome <- match.arg(genome) } return(.Object) }) setValidity("CopyNumberSet", function(object){ assayDataValidMembers(assayData(object), c("copyNumber", "cnConfidence")) msg <- isValidGenomeAnnotatedDataFrame(featureData(object)) if(is.character(msg)) return(msg) else TRUE }) setAs("CNSet", "CopyNumberSet", function(from){ new("CopyNumberSet", copyNumber=totalCopynumber(from, i=1:nrow(from), j=1:ncol(from)), annotation=annotation(from), featureData=featureData(from), phenoData=phenoData(from), experimentData=experimentData(from), protocolData=protocolData(from)) }) ##setMethod("initialize", "oligoSnpSet", ## function(.Object, ## call=new("matrix"), ## callProbability=matrix(numeric(), nrow=nrow(call), ncol=ncol(call), dimnames=dimnames(call)), ## copyNumber=matrix(numeric(), nrow=nrow(call), ncol=ncol(call), dimnames=dimnames(call)), ## ##cnConfidence=matrix(numeric(), nrow=nrow(call), ncol=ncol(call), dimnames=dimnames(call)), ## assayData=Biobase::assayDataNew(call=call, ## callProbability=callProbability, ## copyNumber=copyNumber, ...), ## annotation=character(), ## phenoData, ## featureData, ##=GenomeAnnotatedDataFrameFrom(call, annotation), ## experimentData, ## protocolData, ## genome=c("hg19", "hg18"), ## ...){ ## if(nrow(copyNumber)>0){ ## if(!is(copyNumber[, 1], "integer")) stop("copyNumber should be supplied as a matrix of integers (original scale * 100). See integerMatrix in the oligoClasses package for the conversion to integer matrices") ## } ## nms <- names(list(...)) ## if(length(nms) > 0){ ## ## check that each element in ... is a matrix of integers ## for(i in seq_along(nms)){ ## elt <- list(...)[[nms[i]]] ## if(nrow(elt) > 0) ## if(!is(elt[,1], "integer")) stop("all assay data elements must be integers. For copy number, use original scale * 100 and for B allele frequencies use original scale * 1000. See integerMatrix in the oligoClasses package for the conversion to integer matrices") ## } ## } ## if(missing(featureData)) ## featureData <- GenomeAnnotatedDataFrameFrom(assayData, annotation) ## if(missing(phenoData)) ## phenoData <- Biobase::annotatedDataFrameFrom(call, byrow=FALSE) ## if(missing(experimentData)) ## experimentData <- new("MIAME") ## if(missing(protocolData)) ## protocolData <- phenoData[, integer(0)] ## .Object@genome <- match.arg(genome) ## .Object <- callNextMethod(.Object, ## assayData=assayData, ## annotation=annotation, ## featureData=featureData, ## experimentData=experimentData, ## phenoData=phenoData, ## protocolData=protocolData, ## ...) ## return(.Object) ## }) ##harmomonizeAssayData <- function(assayData){ ## nms <- names(ls(assayData)) ## nr <- rep(NA, length(nms)) ## for(i in seq_along(nms)){ ## elt <- assayData[[nms[i]]] ## nr[i] <- nrow(elt) ## } ##} setMethod("initialize", "oligoSnpSet", function(.Object, call=new("matrix"), callProbability=matrix(numeric(), nrow=nrow(call), ncol=ncol(call), dimnames=dimnames(call)), copyNumber=matrix(numeric(), nrow=nrow(call), ncol=ncol(call), dimnames=dimnames(call)), ##cnConfidence=matrix(numeric(), nrow=nrow(call), ncol=ncol(call), dimnames=dimnames(call)), assayData=Biobase::assayDataNew(call=call, callProbability=callProbability, copyNumber=copyNumber, ...), annotation=character(), phenoData, featureData, ##=GenomeAnnotatedDataFrameFrom(call, annotation), experimentData, protocolData, genome=c("hg19", "hg18"), ...){ if(nrow(copyNumber)>0){ if(!is(copyNumber[, 1], "integer")) stop("copyNumber should be supplied as a matrix of integers (original scale * 100). See integerMatrix in the oligoClasses package for the conversion to integer matrices") } nms <- names(list(...)) if(length(nms) > 0){ ## check that each element in ... is a matrix of integers for(i in seq_along(nms)){ elt <- list(...)[[nms[i]]] if(nrow(elt) > 0) if(!is(elt[,1], "integer")) stop("all assay data elements must be integers. For copy number, use original scale * 100 and for B allele frequencies use original scale * 1000. See integerMatrix in the oligoClasses package for the conversion to integer matrices") } } genome <- match.arg(genome) if(missing(featureData)) featureData <- GenomeAnnotatedDataFrameFrom(assayData, annotation, genome=genome) if(missing(phenoData)) phenoData <- Biobase::annotatedDataFrameFrom(call, byrow=FALSE) if(missing(experimentData)) experimentData <- new("MIAME") if(missing(protocolData)) protocolData <- phenoData[, integer(0)] .Object <- callNextMethod(.Object, assayData=assayData, annotation=annotation, featureData=featureData, experimentData=experimentData, phenoData=phenoData, protocolData=protocolData, ...) .Object@genome <- genome return(.Object) }) setValidity("oligoSnpSet", function(object){ ##nms <- ls(assayData(object)) Biobase::assayDataValidMembers(assayData(object), c("call", "callProbability", "copyNumber")) msg <- isValidGenomeAnnotatedDataFrame(featureData(object)) if(nrow(copyNumber(object)) > 0){ if(!is.integer(copyNumber(object)[,1])) return("copyNumber should be a matrix of integers (original scale * 100). Use integerMatrix(x, 100) for converting 'x' to a matrix of integers.") } if("baf" %in% ls(assayData(object))){ b <- assayData(object)[["baf"]] if(nrow(b) > 0){ if(!is.integer(b[,1])) return("B allele frequencies should be a matrix of integers (original scale * 1000). See integerMatrix(x, 1000) for converting 'x' to a matrix of integers.") } } if(nrow(object) > 0){ genome <- genomeBuild(object) if(!genome %in% c("hg18", "hg19")) return("Supported values for genome are hg18 and hg19") } if(is.character(msg)) return(msg) validObject(phenoData(object)) }) ## RS: ask BC about this... initialization method for CNSet does not work when this is uncommented setValidity("AlleleSet", function(object){ grp1 <- c("alleleA", "alleleB") grp2 <- c("senseAlleleA", "senseAlleleB", "antisenseAlleleA", "antisenseAlleleB") elem <- assayDataElementNames(object) ok <- all(grp1 %in% elem) || all(grp2 %in% elem) f <- function(x) paste("'", x, "'", collapse=" + ", sep="") if (!ok){ paste("Elements of 'AlleleSet' must be:", f(grp1), "OR", f(grp2)) }else{ TRUE } }) setMethod("initialize", "SnpSuperSet", function(.Object, ...) callNextMethod(.Object, ...)) initializeLmFrom <- function(object){ nr <- nrow(object) nc <- length(unique(batch(object))) if(nc > 1) nc <- nc+1 ## add extra column for grand mean lm <- assayDataNew(N.AA=initializeBigMatrix("N.AA", nr, nc), N.AB=initializeBigMatrix("N.AB", nr, nc), N.BB=initializeBigMatrix("N.BB", nr, nc), medianA.AA=initializeBigMatrix("medianA.AA", nr, nc), medianA.AB=initializeBigMatrix("medianA.AB", nr, nc), medianA.BB=initializeBigMatrix("medianA.BB", nr, nc), medianB.AA=initializeBigMatrix("medianB.AA", nr, nc), medianB.AB=initializeBigMatrix("medianB.AB", nr, nc), medianB.BB=initializeBigMatrix("medianB.BB", nr, nc), madA.AA=initializeBigMatrix("madA.AA", nr, nc, vmode="double"), madA.AB=initializeBigMatrix("madA.AB", nr, nc, vmode="double"), madA.BB=initializeBigMatrix("madA.BB", nr, nc, vmode="double"), madB.AA=initializeBigMatrix("madB.AA", nr, nc, vmode="double"), madB.AB=initializeBigMatrix("madB.AB", nr, nc, vmode="double"), madB.BB=initializeBigMatrix("madB.BB", nr, nc, vmode="double"), tau2A.AA=initializeBigMatrix("tau2A.AA", nr, nc, vmode="double"), tau2A.BB=initializeBigMatrix("tau2A.BB", nr, nc, vmode="double"), tau2B.AA=initializeBigMatrix("tau2B.AA", nr, nc, vmode="double"), tau2B.BB=initializeBigMatrix("tau2B.BB", nr, nc, vmode="double"), nuA=initializeBigMatrix("nuA", nr, nc, vmode="double"), nuB=initializeBigMatrix("nuB", nr, nc, vmode="double"), phiA=initializeBigMatrix("phiA", nr, nc, vmode="double"), phiB=initializeBigMatrix("phiB", nr, nc, vmode="double"), phiPrimeA=initializeBigMatrix("phiPrimeA", nr, nc, vmode="double"), phiPrimeB=initializeBigMatrix("phiPrimeB", nr, nc, vmode="double"), corrAB=initializeBigMatrix("corrAB", nr, nc, vmode="double"), corrBB=initializeBigMatrix("corrBB", nr, nc, vmode="double"), corrAA=initializeBigMatrix("corrAA", nr, nc, vmode="double"), flags=initializeBigMatrix("flags", nr, nc)) return(lm) } initializeLmFrom2 <- function(object, batch){ nr <- nrow(object) nc <- length(unique(batch)) if(nc > 1) nc <- nc+1 ## add extra column for grand mean lm <- assayDataNew(N.AA=initializeBigMatrix("N.AA", nr, nc), N.AB=initializeBigMatrix("N.AB", nr, nc), N.BB=initializeBigMatrix("N.BB", nr, nc), medianA.AA=initializeBigMatrix("medianA.AA", nr, nc), medianA.AB=initializeBigMatrix("medianA.AB", nr, nc), medianA.BB=initializeBigMatrix("medianA.BB", nr, nc), medianB.AA=initializeBigMatrix("medianB.AA", nr, nc), medianB.AB=initializeBigMatrix("medianB.AB", nr, nc), medianB.BB=initializeBigMatrix("medianB.BB", nr, nc), madA.AA=initializeBigMatrix("madA.AA", nr, nc, vmode="double"), madA.AB=initializeBigMatrix("madA.AB", nr, nc, vmode="double"), madA.BB=initializeBigMatrix("madA.BB", nr, nc, vmode="double"), madB.AA=initializeBigMatrix("madB.AA", nr, nc, vmode="double"), madB.AB=initializeBigMatrix("madB.AB", nr, nc, vmode="double"), madB.BB=initializeBigMatrix("madB.BB", nr, nc, vmode="double"), tau2A.AA=initializeBigMatrix("tau2A.AA", nr, nc, vmode="double"), tau2A.BB=initializeBigMatrix("tau2A.BB", nr, nc, vmode="double"), tau2B.AA=initializeBigMatrix("tau2B.AA", nr, nc, vmode="double"), tau2B.BB=initializeBigMatrix("tau2B.BB", nr, nc, vmode="double"), nuA=initializeBigMatrix("nuA", nr, nc, vmode="double"), nuB=initializeBigMatrix("nuB", nr, nc, vmode="double"), phiA=initializeBigMatrix("phiA", nr, nc, vmode="double"), phiB=initializeBigMatrix("phiB", nr, nc, vmode="double"), phiPrimeA=initializeBigMatrix("phiPrimeA", nr, nc, vmode="double"), phiPrimeB=initializeBigMatrix("phiPrimeB", nr, nc, vmode="double"), corrAB=initializeBigMatrix("corrAB", nr, nc, vmode="double"), corrBB=initializeBigMatrix("corrBB", nr, nc, vmode="double"), corrAA=initializeBigMatrix("corrAA", nr, nc, vmode="double"), flags=initializeBigMatrix("flags", nr, nc)) if(nc > 1) { sampleNames(lm) <- c(unique(batch), "grandMean") } else sampleNames(lm) <- unique(batch) return(lm) } setMethod("initialize", "CNSet", function(.Object, alleleA=new("matrix"), alleleB=alleleA, call=alleleA, callProbability=alleleA, assayData=assayDataNew(alleleA=alleleA, alleleB=alleleB, call=call, callProbability=callProbability, ...), phenoData=annotatedDataFrameFrom(assayData, byrow=FALSE), protocolData=phenoData[, integer(0)], experimentData=new("MIAME"), annotation=character(), featureData, batch=character(ncol(alleleA)), batchStatistics=initializeLmFrom2(alleleA, batch), genome=c("hg19", "hg18"), mixtureParams=new("matrix"), datadir=list("", integer(), ""), ...){ genome <- match.arg(genome) if(missing(featureData)) featureData <- GenomeAnnotatedDataFrameFrom(assayData, annotation, genome=genome) .Object@mixtureParams <- mixtureParams .Object@batch <- batch .Object@batchStatistics <- batchStatistics .Object <- callNextMethod(.Object, assayData=assayData, phenoData=phenoData, featureData=featureData, experimentData=experimentData, annotation=annotation, protocolData=protocolData, ...) .Object@datadir <- datadir .Object@genome <- genome if(nrow(.Object)==0) .Object@genome <- character() return(.Object) }) setValidity("CNSet", function(object){ if(!assayDataValidMembers(assayData(object), c("alleleA", "alleleB", "call", "callProbability"))){ return("assay data members must be 'alleleA', 'alleleB', 'call', 'callProbability'") } if(length(batch(object)) != ncol(object)){ return("'batch' must be the same length as the number of samples. ") } if(nrow(object) > 0){ genome <- genomeBuild(object) if(!genome %in% c("hg18", "hg19")) print("Supported entries for genome are hg18 and hg19") } msg <- isValidGenomeAnnotatedDataFrame(featureData(object)) if(is.character(msg)) return(msg) else TRUE }) initializeGenotypeSummaryFrom <- function(object){ nr <- nrow(object) nc <- 3 bns <- batchNames(object) elem.names <- paste("N_", bns, sep="") nGt <- vector("list", length(bns)) for(i in seq_along(bns)) nGt[[i]] <- initializeBigMatrix(elem.names[i], nr, nc) names(nGt) <- elem.names numberGt <- do.call(assayDataNew, nGt) elem.names <- paste("mns_", bns, sep="") mns <- vector("list", length(bns)) for(i in seq_along(bns)) mns[[i]] <- initializeBigMatrix(elem.names[i], nr, nc) mns <- do.call(assayDataNew, mns) elem.names <- paste("mads_", bns, sep="") mads <- vector("list", length(bns)) for(i in seq_along(bns)) mads[[i]] <- initializeBigMatrix(elem.names[i], nr, nc) mads <- do.call(assayDataNew, mads) return(list(numberGenotypes=numberGt, means=mns, mads=mads)) } setMethod("initialize", "BeadStudioSet", function(.Object, assayData=assayDataNew(baf = baf, lrr = lrr, ...), phenoData = annotatedDataFrameFrom(assayData, byrow=FALSE), featureData = GenomeAnnotatedDataFrameFrom(assayData, annotation), experimentData = new("MIAME"), annotation = character(), protocolData = phenoData[,integer(0)], baf = new("matrix"), lrr = matrix(numeric(), nrow=nrow(baf), ncol=ncol(baf), dimnames=dimnames(baf)), genome=c("hg19", "hg18"), ...) { .Object <- callNextMethod(.Object, assayData = assayData, phenoData = phenoData, featureData = featureData, experimentData = experimentData, annotation = annotation, protocolData = protocolData, ...) if(nrow(assayData[["baf"]]) == 0){ .Object@genome <- "" } else{ .Object@genome <- match.arg(genome) } return(.Object) }) setValidity("BeadStudioSet", function(object) { if(!is.null(lrr(object))){ if(nrow(lrr(object)) > 0) if(!is.integer(lrr(object)[,1])) return("lrr should be a matrix of integers (original scale * 100). Use integerMatrix(x, 100) for converting 'x' to a matrix of integers.") if(nrow(baf(object)) > 0){ b <- baf(object)[,1] if(!is.integer(b)) return("B allele frequencies should be a matrix of integers (original scale * 1000). See integerMatrix(x, 1000) for converting 'x' to a matrix of integers.") } } return(all(is.element(c("lrr","baf"), assayDataElementNames(object)))) }) oligoClasses/R/methods-AlleleSet.R0000644000175200017520000001033514710217345020070 0ustar00biocbuildbiocbuildsetMethod("db", "AlleleSet", function(object) db(get(annotation(object)))) setMethod("A", "AlleleSet", function(object, ...) allele(object, "A", ...)) setMethod("B", "AlleleSet", function(object, ...) allele(object, "B", ...)) setReplaceMethod("A", "AlleleSet", function(object, value) { assayDataElementReplace(object, "alleleA", value) }) setReplaceMethod("B", "AlleleSet", function(object, value) { assayDataElementReplace(object, "alleleB", value) }) setMethod("bothStrands", "AlleleSet", function(object){ grp1 <- c("alleleA", "alleleB") grp2 <- c("senseAlleleA", "senseAlleleB", "antisenseAlleleA", "antisenseAlleleB") elem <- assayDataElementNames(object) if(all(grp1 %in% elem)){ return(FALSE) }else if (all(grp2 %in% elem)){ return(TRUE) }else{ stop("Invalid 'AlleleSet' object.") } }) setMethod("allele", "AlleleSet", function(object, allele, strand){ stopifnot(!missing(allele)) allele <- match.arg(allele, c("A", "B")) both <- bothStrands(object) if (!both){ what <- paste("allele", allele, sep="") }else{ stopifnot(!missing(strand)) strand <- match.arg(strand, c("sense", "antisense")) what <- paste(strand, "Allele", allele, sep="") } assayDataElement(object, what) }) setMethod("getM", "AlleleSet", function(object){ both <- bothStrands(object) ffmat <- all(unlist(eapply(assayData(object), is.ffmatrix))) ismat <- all(unlist(eapply(assayData(object), is.matrix))) stopifnot(ffmat || ismat) if (!both){ if (ismat){ tmp <- A(object)-B(object) }else{ tmp <- ff(vmode="double", dim=dim(object)) for (i in 1:ncol(object)) tmp[,i] <- A(object)[,i]-B(object)[,i] } }else{ if (ismat){ tmp <- array(NA, dim=c(dim(object), 2), dimnames=list(featureNames(object), sampleNames(object), c("antisense", "sense"))) tmp[,,1] <- A(object, "antisense")-B(object, "antisense") tmp[,,2] <- A(object, "sense")-B(object, "sense") }else{ tmp <- ff(vmode="double", dim=c(dim(object), 2)) for (i in 1:ncol(object)){ tmp[, i, 1] <- A(object, "antisense")[,i]-B(object, "antisense")[,i] tmp[, i, 2] <- A(object, "sense")[,i]-B(object, "sense")[,i] } } } return(tmp) }) setMethod("getA", "AlleleSet", function(object){ both <- bothStrands(object) ffmat <- all(unlist(eapply(assayData(object), is.ffmatrix))) ismat <- all(unlist(eapply(assayData(object), is.matrix))) stopifnot(ffmat || ismat) ## rm(ffmat, ismat) if (!both){ if (ismat){ tmp <- (A(object)+B(object))/2 }else{ tmp <- ff(vmode="double", dim=dim(object)) for (i in 1:ncol(object)) tmp[,i] <- (A(object)[,i]+B(object)[,i])/2 } }else{ if (ismat){ tmp <- array(NA, dim=c(dim(object), 2), dimnames=list(featureNames(object), sampleNames(object), c("antisense", "sense"))) tmp[,,1] <- (A(object, "antisense")+B(object, "antisense"))/2 tmp[,,2] <- (A(object, "sense")+B(object, "sense"))/2 }else{ tmp <- ff(vmode="double", dim=c(dim(object), 2)) for (i in 1:ncol(object)){ tmp[, i, 1] <- (A(object, "antisense")[,i]+B(object, "antisense")[,i])/2 tmp[, i, 2] <- (A(object, "sense")[,i]+B(object, "sense")[,i])/2 } } } return(tmp) }) oligoClasses/R/methods-AnnotatedDataFrame.R0000644000175200017520000000060414710217345021676 0ustar00biocbuildbiocbuildsetMethod("chromosome", signature(object="AnnotatedDataFrame"), function(object, na.rm=FALSE, ...){ chrom <- object$chromosome if(!na.rm) return(chrom) chrom[!is.na(chrom)] }) setMethod("position", signature(object="AnnotatedDataFrame"), function(object, na.rm=FALSE, ...) { pos <- object$position if(!na.rm){ return(pos) } pos[!is.na(pos)] }) oligoClasses/R/methods-AssayData.R0000644000175200017520000000453214710217345020072 0ustar00biocbuildbiocbuildsetMethod("batchNames", "AssayData", function(object){ ##should call method for AssayData sampleNames(object) }) setReplaceMethod("batchNames", "AssayData", function(object, value){ sampleNames(object) <- value return(object) }) setMethod("nu", c("AssayData", "character"), function(object, allele){ getValue <- function(allele){ switch(allele, A="nuA", B="nuB", stop("allele must be 'A' or 'B'")) } val <- getValue(allele) assayDataElement(object, val) }) setMethod("phi", c("AssayData", "character"), function(object, allele){ getValue <- function(allele){ switch(allele, A="phiA", B="phiB", stop("allele must be 'A' or 'B'")) } val <- getValue(allele) assayDataElement(object, val) }) ##setMethod("sigma2", c("AssayData", "character"), ## function(object, allele){ ## getValue <- function(allele){ ## switch(allele, ## A="sig2A", ## B="sig2B", ## stop("allele must be 'A' or 'B'")) ## } ## val <- getValue(allele) ## assayDataElement(object, val) ## }) ##setMethod("tau2", c("AssayData", "character"), ## function(object, allele){ ## getValue <- function(allele){ ## switch(allele, ## A="tau2A", ## B="tau2B", ## stop("allele must be 'A' or 'B'")) ## } ## val <- getValue(allele) ## assayDataElement(object, val) ## }) ##setMethod("corr", c("AssayData", "character"), ## function(object, allele){ ## getValue <- function(allele){ ## switch(allele, ## AA="corrAA", ## AB="corrAB", ## BB="corrBB", ## stop("allele must be 'AA', 'AB', or 'BB'")) ## } ## val <- getValue(allele) ## assayDataElement(object, val) ## }) setMethod("flags", signature(object="AssayData"), function(object) assayDataElement(object, "flags")) AssayDataList <- function(storage.mode = c("lockedEnvironment", "environment", "list"), ...) { storage.mode <- match.arg(storage.mode) ## defaults to "lockedEnvironment" assayData <- switch(storage.mode, lockedEnvironment =, environment = new.env(parent=emptyenv()), list = list()) arglist <- list(...) for (nm in names(arglist)) assayData[[nm]] <- arglist[[nm]] ## FIX: ::: not safe if (storage.mode == "lockedEnvironment") Biobase:::assayDataEnvLock(assayData) assayData } oligoClasses/R/methods-BeadStudioSet.R0000644000175200017520000000445614710217345020724 0ustar00biocbuildbiocbuildsetMethod("updateObject", signature(object="BeadStudioSet"), function(object, ..., verbose=FALSE) { if (verbose) message("updateObject(object = 'BeadStudioSet')") obj <- tryCatch(callNextMethod(object), error=function(e) NULL) if(is.null(obj)){ obj <- new("BeadStudioSet", assayData = updateObject(assayData(object), ..., verbose=verbose), phenoData = phenoData(object), experimentData = updateObject(experimentData(object), ..., verbose=verbose), annotation = updateObject(annotation(object), ..., verbose=verbose), featureData=updateObject(featureData(object), ..., verbose=FALSE), ...) } if (all(isCurrent(obj))) return(obj) obj }) setMethod("lrr", "BeadStudioSet", function(object){ return(assayDataElement(object, "lrr")) }) setMethod("copyNumber", "BeadStudioSet", function(object) lrr(object)) setReplaceMethod("lrr", c("BeadStudioSet", "ANY"), function(object, value) { assayDataElementReplace(object, "lrr", value) }) setReplaceMethod("lrr", c("BafLrrSet", "ANY"), function(object, value) { assayDataElementReplace(object, "lrr", value) }) setReplaceMethod("copyNumber", c("BeadStudioSet", "ANY"), function(object, value) { lrr(object) <- value object }) setMethod("baf", "BeadStudioSet", function(object) { return(assayDataElement(object, "baf")) }) setReplaceMethod("baf", c("BeadStudioSet", "ANY"), function(object, value) { assayDataElementReplace(object, "BAF", value) }) setAs("BeadStudioSet", "data.frame", function(from, to){ cn <- as.numeric(lrr(from))/100 bf <- as.numeric(baf(from))/1000 x <- rep(position(from)/1e6, ncol(from)) ##x <- rep(position(object)[marker.index], 4)/1e6 is.snp <- rep(isSnp(from), ncol(from)) id <- rep(sampleNames(from), each=nrow(from)) df <- data.frame(x=x, lrr=cn, baf=bf, id=id, is.snp=is.snp, stringsAsFactors=FALSE) df$id <- factor(df$id, ordered=TRUE, levels=unique(df$id)) return(df) }) setMethod("show", signature(object="BeadStudioSet"), function(object){ callNextMethod(object) ##cat("Genome Build: ", genomeBuild(object), "\n") ##cat("Integer representation of BAF/LRR: ", isInteger(object), "\n") }) oligoClasses/R/methods-BeadStudioSetList.R0000644000175200017520000001570714710217345021561 0ustar00biocbuildbiocbuildsetMethod("initialize", signature(.Object="BeadStudioSetList"), function(.Object, assayDataList=AssayDataList(baf=baf, lrr=lrr), lrr=list(), baf=lapply(lrr, function(x) matrix(nrow=nrow(x), ncol=ncol(x))), featureDataList=GenomeAnnotatedDataFrameFrom(assayDataList, annotation, genome), chromosome=vector("list", length(lrr)), phenoData, annotation=character(), genome=character(), ...){ if(missing(phenoData)){ if(length(lrr) > 0){ phenoData <- annotatedDataFrameFrom(lrr[[1]], byrow=FALSE) } else { phenoData <- new("AnnotatedDataFrame") } } callNextMethod(.Object, assayDataList=assayDataList, featureDataList=featureDataList, phenoData=phenoData, chromosome=chromosome, annotation=annotation, genome=genome, ...) }) setMethod("updateObject", signature(object="BeadStudioSetList"), function(object, ..., verbose=FALSE) { if (verbose) message("updateObject(object = 'BeadStudioSetList')") obj <- tryCatch(callNextMethod(object), error=function(e) NULL) if(is.null(obj)){ obj <- new("BeadStudioSetList", assayDataList = assayDataList(object), phenoData = phenoData(object), annotation = updateObject(annotation(object), ..., verbose=verbose), featureDataList=featureDataList(object), chromosome=chromosome(object), genome=genomeBuild(object), ...) } obj }) setMethod("[[", signature(x="BeadStudioSetList"), function(x, i, j, ..., exact=TRUE){ if(missing(i)) return(x) ad <- assayDataList(x) fdlist <- featureData(x) adnew <- switch(storage.mode(ad), lockedEnvironment =, environment = new.env(parent=emptyenv()), list = list()) nms <- ls(ad) if(length(i) == 1){ for (nm in ls(ad)){ elt <- ad[[nm]][[i]] dimnames(elt) <- lapply(dimnames(elt), unname) adnew[[nm]] <- elt } } x <- new("BeadStudioSet", assayData=adnew, phenoData=phenoData(x), featureData=fdlist[[i]], genome=genomeBuild(x), annotation=annotation(x)) }) setMethod("[[", signature(x="BafLrrSetList"), function(x, i, j, ..., exact=TRUE){ x <- callNextMethod() new("BafLrrSet", assayData=assayData(x), phenoData=phenoData(x), featureData=featureData(x), genome=genomeBuild(x), annotation=annotation(x)) }) setMethod("[", signature(x="gSetList"), function(x, i, j, ..., drop=TRUE){ if(missing(i) && missing(j)) return(x) ad <- assayDataList(x) if(!missing(i)){ fdlist <- featureData(x)[i] } adnew <- switch(storage.mode(ad), lockedEnvironment =, environment = new.env(parent=emptyenv()), list = list()) nms <- ls(ad) if(!missing(i)){ for (nm in ls(ad)){ elt <- ad[[nm]][i] adnew[[nm]] <- elt } ad <- adnew } if(missing(j)){ x@featureDataList <- fdlist x@chromosome <- x@chromosome[i] } else { for (nm in ls(ad)){ elt <- lapply(ad[[nm]], function(y, j) y[, j, drop=FALSE], j=j) adnew[[nm]] <- elt } phenoData(x) <- phenoData(x)[j, ] x@protocolData <- x@protocolData[j, ] } x@assayDataList <- adnew return(x) }) setReplaceMethod("[[", signature(x="BafLrrSetList", value="BafLrrSet"), function(x, i, j, ..., value){ fdl <- x@featureDataList fdl[[i]] <- featureData(value) adl <- x@assayDataList r <- adl[["lrr"]] r[[i]] <- lrr(value) b <- adl[["baf"]] b[[i]] <- baf(value) adl <- AssayDataList(lrr=r, baf=b) new("BafLrrSetList", assayDataList=adl, featureDataList=fdl, phenoData=phenoData(x), chromosome=chromosome(x), annotation=annotation(x), genome=genomeBuild(x)) }) setReplaceMethod("assayData", signature=signature(object="BeadStudioSetList", value="AssayData"), function(object, value) { object@assayDataList <- value object }) setMethod("baf", signature(object="oligoSetList"), function(object) assayData(object)[["baf"]]) setMethod("baf", signature(object="BeadStudioSetList"), function(object){ ##lapply(object, baf) assayDataList(object)[["baf"]] }) setMethod(baf, signature(object="BafLrrSetList"), function(object){ assayDataList(object)[["baf"]] }) setMethod("calls", signature(object="oligoSetList"), function(object) assayData(object)[["call"]]) setMethod("copyNumber", signature(object="oligoSetList"), function(object) assayData(object)[["copyNumber"]]) setMethod("lrr", signature(object="BeadStudioSetList"), function(object){ ##lapply(object, lrr) assayDataList(object)[["lrr"]] }) setMethod("lrr", signature(object="BafLrrSetList"), function(object){ ##lapply(object, lrr) assayDataList(object)[["lrr"]] }) setReplaceMethod("lrr", signature(object="BafLrrSetList", value="matrix"), function(object, value){ ## value can often be fewer columns than object if(is.null(rownames(value))) stop("row.names is NULL") if(is.null(colnames(value))) stop("col.names is NULL") sample.index <- match(colnames(value), sampleNames(object)) for(j in seq_along(object)){ bset <- object[[j]] k <- match(featureNames(bset), rownames(value)) lrr(bset)[, sample.index] <- value[k, , drop=FALSE] object[[j]] <- bset } return(object) }) ##setMethod("ncol", signature(x="BeadStudioSetList"), ## function(x) ncol(assayDataList(x)[["lrr"]][[1]])) setMethod("snpCallProbability", signature(object="oligoSetList"), function(object) assayData(object)[["callProbability"]]) setMethod(clone2, "BafLrrSetList", function(object, id, prefix, ...){ duplicateBLList(object, ids=id, prefix=prefix, ...) }) duplicateBLList <- function(object, ids, prefix="waveAdj", empty=FALSE){ ##brList.copy <- object ## duplicate the lrr ff objects. Then do wave correction on the ## duplicated files. if(missing(ids)) ids <- sampleNames(object) ids <- as.character(ids) r <- lrr(object) b <- baf(object) rcopy.list <- list() bcopy.list <- list() for(i in seq_along(r)){ x <- r[[i]] y <- b[[i]] rcopy <- initializeBigMatrix(paste(prefix, "lrr", sep="-"), nrow(x), length(ids), vmode="integer") bcopy <- initializeBigMatrix(paste(prefix, "baf", sep="-"), nrow(x), length(ids), vmode="integer") dimnames(rcopy) <- list(rownames(x), ids) dimnames(bcopy) <- dimnames(rcopy) J <- match(ids, colnames(x)) if(!empty){ for(j in seq_along(J)){ k <- J[j] rcopy[, j] <- x[, k] bcopy[, j] <- y[, k] } } rcopy.list[[i]] <- rcopy bcopy.list[[i]] <- bcopy } adl <- AssayDataList(baf=bcopy.list, lrr=rcopy.list) pd <- phenoData(object)[match(ids, sampleNames(object)), ] new("BafLrrSetList", assayDataList=adl, featureDataList=featureData(object), phenoData=pd, chromosome=chromosome(object), annotation=annotation(object), genome=genomeBuild(object)) } oligoClasses/R/methods-CNSet.R0000644000175200017520000002160014710217345017167 0ustar00biocbuildbiocbuildsetMethod("show", "CNSet", function(object){ is.ff <- is(calls(object), "ff_matrix") | is(calls(object), "ffdf") if(is.ff){ if(!isPackageLoaded("ff")) warning("ff objects detected, but ff package is not loaded") ##to avoid warnings if("SKW" %in% varLabels(object)) { if(is(object$SKW, "ff")) open(object$SKW) } if("SNR" %in% varLabels(object)){ if(is(object$SNR, "ff")) open(object$SNR) } if("gender" %in% varLabels(object)){ if(is(object$gender, "ff")) open(object$gender) } } ad.class <- class(A(object))[1] cat("CNSet (assayData/batchStatistics elements: ", ad.class, ")\n", sep="") callNextMethod(object) bns <- head(batchNames(object)) ##bns <- bns[-length(bns)] freq <- as.integer(table(batch(object))) index <- names(table(batch(object))) %in% bns freq <- freq[index] cat("batch: ", paste(bns, ":", freq, sep="", collapse=", "), "\n") adim <- list(nrow(object), length(batchNames(object))) if(adim[[1]] > 0){ cat("batchStatistics: ", length(ls(batchStatistics(object))), " elements, ", nrow(object), " features, ", length(unique(batch(object))), " batches\n") } }) setMethod("updateObject", signature(object="CNSet"), function(object, ..., verbose=FALSE) { if (verbose) message("updateObject(object = 'CNSet')") obj <- tryCatch(callNextMethod(batch=batch(object)), error=function(e) NULL) if(is.null(obj)){ ## must supply batch for batchStatistics to be added if(is(calls(object), "ffdf") | is(calls(object), "ff_matrix")) stopifnot(isPackageLoaded("ff")) if(.hasSlot(object, "mixtureParams")){ obj <- new("CNSet", assayData = updateObject(assayData(object), ..., verbose=verbose), phenoData = phenoData(object), experimentData = experimentData(object), annotation = updateObject(annotation(object), ..., verbose=verbose), featureData=updateObject(featureData(object), ..., verbose=verbose), batch=as.character(batch(object)), batchStatistics=batchStatistics(object), mixtureParams=object@mixtureParams) } else { obj <- new("CNSet", assayData = updateObject(assayData(object), ..., verbose=verbose), phenoData = phenoData(object), experimentData = experimentData(object), annotation = updateObject(annotation(object), ..., verbose=verbose), featureData=updateObject(featureData(object), ..., verbose=verbose), batch=as.character(batch(object)), batchStatistics=batchStatistics(object), mixtureParams=matrix(NA, 4, ncol(object))) } if (isCurrent(obj)["CNSet"]) return(obj) return(obj) } }) setMethod("[", "CNSet", function(x, i, j, ..., drop=FALSE){ openff(x) x <- callNextMethod(x, i, j, ..., drop=FALSE) isdf <- is(A(x), "data.frame") if(isdf){ orig <- assayData(x) ##storage.mode <- Biobase:::assayDataStorageMode(orig) storage.mode <- storageMode(orig) assayData(x) <- switch(storage.mode, environment =, lockedEnvironment = { aData <- new.env(parent=emptyenv()) for(nm in ls(orig)) aData[[nm]] <- as.matrix(orig[[nm]])##[i, j, ..., drop = drop] if ("lockedEnvironment" == storage.mode) Biobase:::assayDataEnvLock(aData) aData }, list = { lapply(orig, as.matrix) }) } if(missing(j)) j <- 1:ncol(x) if(missing(i)) i <- 1:nrow(x) x@batch <- batch(x)[j] nms <- sampleNames(batchStatistics(x)) ## need to subset columns of LinearModelParameter ## Adapted from the '[' method for eSet in Biobase ## redefine 'j' j <- which(nms %in% unique(as.character(batch(x)))) storage.mode <- storageMode(batchStatistics(x)) ## i (if defined) is already subset by callNextMethod orig <- batchStatistics(x) batchStatistics(x) <- switch(storage.mode, environment =, lockedEnvironment = { aData <- new.env(parent=emptyenv()) for(nm in ls(orig)) aData[[nm]] <- orig[[nm]][i, j, ..., drop = drop] if ("lockedEnvironment" == storage.mode) Biobase:::assayDataEnvLock(aData) aData }, list = { lapply(orig, function(obj) obj[i, j, ..., drop = drop]) }) return(x) }) setMethod("batch", "CNSet", function(object) object@batch) setReplaceMethod("batch", signature=signature(object="CNSet"), function(object, value){ object@batch <- as.character(value) object }) setMethod("batchNames", "CNSet", function(object) batchNames(batchStatistics(object))) setReplaceMethod("batchNames", "CNSet", function(object, value) { batchNames(batchStatistics(object)) <- value return(object) }) setMethod("allele", "CNSet", function(object, allele){ stopifnot(!missing(allele)) allele <- match.arg(allele, c("A", "B")) what <- paste("allele", allele, sep="") assayDataElement(object, what) }) setMethod("A", "CNSet", function(object, ...) allele(object, "A", ...)) setMethod("B", "CNSet", function(object, ...) allele(object, "B", ...)) setReplaceMethod("A", "CNSet", function(object, value) { obj <- assayDataElementReplace(object, "alleleA", value) }) setReplaceMethod("B", "CNSet", function(object, value) { assayDataElementReplace(object, "alleleB", value) }) setMethod("closeff", signature(object="CNSet"), function(object){ if(!isFF(object)) return() names <- ls(assayData(object)) L <- length(names) for(i in 1:L) close(eval(substitute(assayData(object)[[NAME]], list(NAME=names[i])))) physical <- get("physical") names <- ls(batchStatistics(object)) L <- length(names) for(i in 1:L) { tmp <- eval(substitute(assayData(object)[[NAME]], list(NAME=names[i]))) if(!is.null(tmp)) close(tmp) } }) setMethod("close", "CNSet", function(con, ...){ object <- con closeff(object) }) setMethod("openff", signature(object="CNSet"), function(object){ if(isFF(object)){ names <- ls(assayData(object)) L <- length(names) for(i in 1:L) open(eval(substitute(assayData(object)[[NAME]], list(NAME=names[i])))) names <- assayDataElementNames(batchStatistics(object)) L <- length(names) for(i in 1:L) open(eval(substitute(batchStatistics(object)[[NAME]], list(NAME=names[i])))) } if("SKW" %in% varLabels(object)){ if(is(object$SKW, "ff")) open(object$SKW) } if("SNR" %in% varLabels(object)){ if(is(object$SNR, "ff")) open(object$SNR) } if("SNR" %in% varLabels(object)){ if(is(object$gender, "ff")) open(object$gender) } }) setMethod("open", "CNSet", function(con, ...){ object <- con openff(object) return(TRUE) }) setMethod("nu", c("CNSet", "character"), function(object, allele) nu(batchStatistics(object), allele)) setMethod("phi", c("CNSet", "character"), function(object, allele) phi(batchStatistics(object), allele)) setMethod("sigma2", c("CNSet", "character"), function(object, allele) sigma2(batchStatistics(object), allele)) setMethod("flags", signature(object="CNSet"), function(object) flags(batchStatistics(object))) setMethod("batchStatistics", signature=signature(object="CNSet"), function(object) object@batchStatistics) setReplaceMethod("batchStatistics", signature=signature(object="CNSet", value="AssayData"), function(object, value){ object@batchStatistics <- value object }) setMethod(snpCall, "CNSet", function(object, ...) { assayDataElement(object, "call") }) setMethod(snpCallProbability, "CNSet", function(object, ...) { assayDataElement(object, "callProbability") }) setReplaceMethod("snpCall", c("CNSet", "matrix"), function(object, ..., value) { assayDataElementReplace(object, "call", value) }) setReplaceMethod("snpCallProbability", c("CNSet", "matrix"), function(object, ..., value) { assayDataElementReplace(object, "callProbability", value) }) setMethod("calls", "CNSet", function(object) assayData(object)$call) setReplaceMethod("calls", signature(object="CNSet", value="matrix"), function(object, value) assayDataElementReplace(object, "call", value)) setMethod("confs", "CNSet", function(object, transform=TRUE) { X <- snpCallProbability(object) if(is(X, "ff_matrix") | is(X, "ffdf")){ warningMsg(X) return(X) } if (transform){ X <- i2p(X) } return(X) }) setReplaceMethod("confs", signature(object="CNSet", value="matrix"), function(object, value){ ##convert probability to integer if(max(value) > 1){ X <- matrix(p2i(value), nrow(X), ncol(X), dimnames=dimnames(value)) } else { X <- value } assayDataElementReplace(object, "callProbability", X) }) ##setMethod("genomeBuild", "CNSet", function(object) object@genome) ##setReplaceMethod("genomeBuild", signature(object="CNSet", value="character"), ## function(object, value){ ## object@genome <- value ## return(object) ## }) oligoClasses/R/methods-CopyNumberSet.R0000644000175200017520000000152314710217345020754 0ustar00biocbuildbiocbuild##setMethod("copyNumber", "CopyNumberSet", function(object) assayData(object)[["copyNumber"]]) setMethod("copyNumber", "CopyNumberSet", function(object) { cn <- assayDataElement(object, "copyNumber") return(cn) }) setReplaceMethod("copyNumber", signature(object="CopyNumberSet", value="matrix"), function(object, value){ assayDataElementReplace(object, "copyNumber", value) }) setMethod("cnConfidence", "CopyNumberSet", function(object) assayData(object)[["cnConfidence"]]) setReplaceMethod("cnConfidence", signature(object="CopyNumberSet", value="matrix"), function(object, value){ assayDataElementReplace(object, "cnConfidence", value) }) ##setMethod("order", "CopyNumberSet", ## function(object, ..., na.last=TRUE, decreasing=FALSE){ ## chromosomePositionOrder(...) ## }) oligoClasses/R/methods-FeatureSet.R0000644000175200017520000000211214710217345020257 0ustar00biocbuildbiocbuild## Only accessors for FeatureSet objects ## In addition to the slots inherited from eSet, FeatureSet has: ## - manufacturer ## - 'exprs' in assayData ## - 'channel1' and 'channel2' in assayData setMethod("manufacturer", signature(object="FeatureSet"), function(object) object@manufacturer) setReplaceMethod("manufacturer", signature(object="FeatureSet"), function(object, value){ object@manufacturer <- value object }) setMethod("exprs", signature(object="FeatureSet"), function(object) assayDataElement(object,"exprs")) setReplaceMethod("exprs", signature(object="FeatureSet"), function(object, value) assayDataElementReplace(object, "exprs", value)) setMethod("db", "FeatureSet", function(object){ db(get(annotation(object))) }) setMethod("kind", "FeatureSet", function(object){ kind(get(annotation(object))) }) setMethod("geometry", "FeatureSet", function(object) geometry(getPD(object)) ) oligoClasses/R/methods-GRanges.R0000644000175200017520000000772514710217345017555 0ustar00biocbuildbiocbuild##GRangesHMM <- function(seqnames = Rle(), ranges = IRanges(), ## strand = Rle("*", length(seqnames)), ## state=integer(), ## numberProbes=integer(), ## ..., ## seqlengths = # this default is more accurate than in newGRanges ## structure(rep(NA_integer_, length(unique(seqnames))), ## names = levels(as.factor(runValue(as(seqnames, "Rle")))))){ ## if(is.numeric(state)){ ## state <- Rle(factor(state)) ## } else { ## if(!is(state, "Rle")) stop("state must be Rle or numeric") ## } ## if (missing(seqlengths)) # avoid potentially expensive seqnames conversion ## GenomicRanges:::newGRanges("GRangesHMM", seqnames = seqnames, ranges = ranges, strand = strand, ## state=state, ## numberProbes=as.integer(numberProbes), ## ...) ## else GenomicRanges:::newGRanges("GRangesHMM", seqnames = seqnames, ranges = ranges, ## strand = strand, ## state=state, ## numberProbes=as.integer(numberProbes), ## ..., seqlengths = seqlengths) ##} ##setMethod("initialize", "GRangesHMM", ## function(.Object, numberProbes=integer(), state=Rle(), elementMetadata=DataFrame(state=state, numberProbes=numberProbes), ...){ ## callNextMethod(.Object, elementMetadata=elementMetadata, ...) ## }) ##setGeneric("as.GRangesHMM", function(x, seqlengths, ...) standardGeneric("as.GRangesHMM")) ##setAs("GRanges", "GRangesHMM", ## function(from, to){ ## state <- elementMetadata(from)$state ## numberProbes <- elementMetadata(from)$numberProbes ## gr <- GRangesHMM(paste("chr", chromosome(from), sep=""), ## IRanges(start(from), end(from)), ## state=state(from), ## numberProbes=coverage2(from)) ## }) ##GRangesHMMList <- function(...) ##{ ## listData <- list(...) ## if (length(listData) == 0L) { ## unlistData <- GRangesHMM() ## } else { ## if (length(listData) == 1L && is.list(listData[[1L]])) ## listData <- listData[[1L]] ## if (!all(sapply(listData, is, "GRangesHMM"))) ## stop("all elements in '...' must be GRangeHMM objects") ## unlistData <- suppressWarnings(do.call("c", unname(listData))) ## } ## end <- cumsum(elementNROWS(unname(listData))) ## ans <- IRanges:::newCompressedList("GRangesHMMList", ## unlistData, ## end = end, NAMES = names(listData), ## elementMetadata = new("DataFrame", nrows = length(listData))) ## validObject(ans) ## ans ##} ##--------------------------------------------------------------------------- ## ## convenience functions for GRanges ## ##--------------------------------------------------------------------------- setMethod("chromosome", "GRanges", function(object) as.character(seqnames(object))) setMethod("coverage2", "GRanges", function(object) elementMetadata(object)$numberProbes) setMethod("numberProbes", "GRanges", function(object) elementMetadata(object)$numberProbes) setMethod("sampleNames", "GRanges", function(object) as.character(elementMetadata(object)$sample)) setMethod("state", "GRanges", function(object) elementMetadata(object)$state) ##--------------------------------------------------------------------------- ## ## convenience functions for GRangesList ## ##--------------------------------------------------------------------------- setMethod("chromosome", signature(object="GRangesList"), function(object) seqnames(object)) setMethod("coverage2", signature(object="GRangesList"), function(object) numberProbes(object)) setMethod("numberProbes", signature(object="GRangesList"), function(object){ new2("CompressedRleList", unlistData=Rle(elementMetadata(object@unlistData)$numberProbes), partitioning=object@partitioning, check=FALSE) }) setMethod("sampleNames", signature(object="GRangesList"), function(object) names(object)) setMethod("state", signature(object="GRangesList"), function(object){ new2("CompressedRleList", unlistData=Rle(elementMetadata(object@unlistData)$state), partitioning=object@partitioning, check=FALSE) }) oligoClasses/R/methods-GenomeAnnotatedDataFrame.R0000644000175200017520000003521014710217345023032 0ustar00biocbuildbiocbuildsetMethod("initialize", signature(.Object="GenomeAnnotatedDataFrame"), function(.Object, position=integer(), isSnp=vector("logical", length(position)), chromosome=vector("integer", length(position)), row.names=NULL, data, varMetadata, ...){ if(missing(data)) data <- data.frame(isSnp=isSnp, position=position, chromosome=chromosome, ..., row.names=row.names) if(missing(varMetadata)){ nms <- names(list(...)) varMetadata <- data.frame(labelDescription=c("SNP indicator", "physical position", "chromosome", nms)) } .Object <- callNextMethod(.Object, data=data, varMetadata=varMetadata) }) setMethod("updateObject", signature(object="GenomeAnnotatedDataFrame"), function(object, ..., verbose=FALSE){ ##as(object, "GenomeAnnotatedDataFrame") ADF2GDF(object) }) setMethod("coerce", signature(from="AnnotatedDataFrame", to="GenomeAnnotatedDataFrame"), function(from, to){ new("GenomeAnnotatedDataFrame", isSnp=as.logical(from$isSnp), position=as.integer(from$position), chromosome=as.integer(from$chromosome), row.names=featureNames(from)) }) ADF2GDF <- function(object){ new("GenomeAnnotatedDataFrame", isSnp=as.logical(object$isSnp), position=as.integer(object$position), chromosome=as.integer(object$chromosome), row.names=featureNames(object)) } isValidGenomeAnnotatedDataFrame <- function(object){ if(!all(c("isSnp", "position", "chromosome") %in% varLabels(object))) return("'isSnp', 'position', and 'chromosome' are required varLabels of the AnnotatedDataFrame for features") if(!is(chromosome(object), "integer") || !is(position(object), "integer")) return("chromosome and position must be integers. See function 'chromosome2integer'") if(!is.logical(isSnp(object))){ return("isSnp must be logical") } TRUE } setValidity("GenomeAnnotatedDataFrame", function(object){ msg <- isValidGenomeAnnotatedDataFrame(object) if(is.character(msg)) return(msg) }) setMethod("GenomeAnnotatedDataFrameFrom", signature(object="ff_or_matrix"), function(object, annotationPkg, genome="hg19", ...){ GenomeAnnotatedDataFrameFromMatrix(object=object, annotationPkg=annotationPkg, genome=genome, ...) }) setMethod("GenomeAnnotatedDataFrameFrom", signature(object="array"), function(object, annotationPkg, genome="hg19", ...){ GenomeAnnotatedDataFrameFromArray(object, annotationPkg, genome=genome, ...) }) setMethod("GenomeAnnotatedDataFrameFrom", signature(object="NULL"), function(object, annotationPkg, genome="hg19", ...){ GenomeAnnotatedDataFrameFromNULL(object) }) setMethod("GenomeAnnotatedDataFrameFrom", signature(object="list"), function(object, annotationPkg, genome="hg19", ...){ GenomeAnnotatedDataFrameFromList(object, annotationPkg, genome=genome, ...) }) setMethod("GenomeAnnotatedDataFrameFrom", signature(object="AssayData"), function(object, annotationPkg, genome="hg19", ...){ GenomeAnnotatedDataFrameFromAssayData(object=object, annotationPkg=annotationPkg, genome=genome, ...) }) GenomeAnnotatedDataFrameFromMatrix <- function(object, annotationPkg, genome, ...){ dims <- dim(object) if (is.null(dims) || all(dims==0)){ object <- GenomeAnnotatedDataFrameFrom(NULL, ...) } else { nms <- rownames(object) if(!is.null(nms)){ if(any(is.na(nms))) warning("NA's in rownames") } if(length(annotationPkg)==0 | is.null(nms)){ n <- dims[1] data <- data.frame(position=integer(n), chromosome=integer(n), isSnp=logical(n), row.names=nms) object <- new("GenomeAnnotatedDataFrame", data=data) } else { stopifnot(isSupportedAnnotation(annotationPkg)) is.pd <- isPdAnnotationPkg(annotationPkg) if(is.pd){ object <- addFeatureAnnotation.pd2(annotationPkg, featureNames=rownames(object), genome=genome,...) } else { object <- addFeatureAnnotation.crlmm2(annotationPkg, featureNames=rownames(object), genome=genome, ...) } } } return(object) } GenomeAnnotatedDataFrameFromArray <- function(object, annotationPkg, ...){ ## coerce to matrix dims <- dim(object) is.array <- length(dims) == 3 if(is.array){ res <- GenomeAnnotatedDataFrameFromMatrix(object[, , 1], annotationPkg, ...) } else { ##dim(object) <- dim(object)[c(1,2)] res <- GenomeAnnotatedDataFrameFromMatrix(object, annotationPkg, ...) } res } GenomeAnnotatedDataFrameFromList <- function(object, annotationPkg, genome){ ##if(length(object)==0) return(GenomeAnnotatedDataFrameFromNULL(NULL)) if(length(object)==0) return(object) nms <- ls(object) elt <- object[[nms[1]]] fdlist <- vector("list", length(elt)) for(i in seq_along(elt)){ fdlist[[i]] <- GenomeAnnotatedDataFrameFrom(elt[[i]], annotationPkg, genome) } return(fdlist) } GenomeAnnotatedDataFrameFromNULL <- function(object, byrow=TRUE, ...) { new("GenomeAnnotatedDataFrame") } GenomeAnnotatedDataFrameFromAssayData <- function(object, annotationPkg, ...) { eltNames <- if (is(object, "environment")) ls(object) else names(object) if (length(eltNames)==0) GenomeAnnotatedDataFrameFrom(NULL) else GenomeAnnotatedDataFrameFrom(object[[eltNames[1]]], annotationPkg, ...) } setMethod("isSnp", signature(object="GenomeAnnotatedDataFrame"), function(object) object$isSnp) setMethod("position", signature(object="GenomeAnnotatedDataFrame"), function(object, ...) object$position) setMethod("chromosome", signature(object="GenomeAnnotatedDataFrame"), function(object, ...) object$chromosome) setReplaceMethod("chromosome", signature(object="GenomeAnnotatedDataFrame", value="integer"), function(object, value){ fData(object)$chromosome <- value object }) setReplaceMethod("isSnp", signature(object="GenomeAnnotatedDataFrame", value="logical"), function(object, value){ Biobase::fData(object)$isSnp <- value object }) setReplaceMethod("position", signature(object="GenomeAnnotatedDataFrame", value="integer"), function(object, value){ Biobase::fData(object)$position <- value object }) isPdAnnotationPkg <- function(object) length(grep("pd.", object)) >= 1 addFeatureAnnotation.pd2 <- function(annotation, featureNames, genome){ ##message("Adding required feature annotation (chromosome, position, isSnp) to featureData slot") fs <- featureNames tmp <- paste("('", paste(fs, collapse="', '"), "')", sep="") fD <- matrix(integer(), length(fs), 3) rownames(fD) <- fs colnames(fD) <- c("chromosome", "position", "isSnp") sql <- paste("SELECT man_fsetid, chrom, physical_pos FROM featureSet WHERE man_fsetid IN ", tmp) ##Check if two objects have been combined pkgs <- strsplit(annotation, ",")[[1]] snps <- snp.index <- nps <- np.index <- vector("list", length(pkgs)) for(i in seq(along=pkgs)){ annotation <- pkgs[i] requireAnnotation(annotation) annoObject <- get(annotation) gb <- tolower(genomeBuild(annoObject)) if(gb != genome){ stop(paste("Genome build in package ", annotation, " is ", gb, ", but build ", genome, " is requested.", sep="")) } snps[[i]] <- dbGetQuery(annoObject@getdb(), sql) snp.index[[i]] <- match(snps[[i]]$man_fsetid, rownames(fD)) if("featureSetCNV" %in% dbListTables(annoObject@getdb())){ sql <- paste("SELECT man_fsetid, chrom, chrom_start FROM featureSetCNV WHERE man_fsetid IN ", tmp) nps[[i]] <- dbGetQuery(annoObject@getdb(), sql) np.index[[i]] <- match(nps[[i]]$man_fsetid, rownames(fD)) } } if(length(snps) > 1){ snps <- do.call(rbind, snps) snp.index <- unlist(snp.index) if("featureSetCNV" %in% dbListTables(annoObject@getdb())){ nps <- do.call(rbind, nps) np.index <- unlist(np.index) } } else { snps <- snps[[1]] snp.index <- snp.index[[1]] if("featureSetCNV" %in% dbListTables(annoObject@getdb())){ nps <- nps[[1]] np.index <- np.index[[1]] } } fD[snp.index, "isSnp"] <- as.integer(1) fD[snp.index, "chromosome"] <- chromosome2integer(snps$chrom) fD[snp.index, "position"] <- as.integer(snps$physical_pos) if("featureSetCNV" %in% dbListTables(annoObject@getdb())){ fD[np.index, "isSnp"] <- as.integer(0) fD[np.index, "chromosome"] <- chromosome2integer(nps$chrom) fD[np.index, "position"] <- as.integer(nps$chrom_start) } featureData <- new("GenomeAnnotatedDataFrame", isSnp=as.logical(fD[, "isSnp"]), chromosome=as.integer(fD[, "chromosome"]), position=as.integer(fD[, "position"]), row.names=featureNames) return(featureData) } addFeatureAnnotation.crlmm2 <- function(object, featureNames, genome="hg19", ...){ nm <- grep("Crlmm", object, ignore.case=TRUE) if(length(nm) == 0){ pkgname <- paste(object, "Crlmm", sep="") } else pkgname <- object path <- system.file("extdata", package=pkgname) if(path=="") stop("Are you sure ", pkgname, " is installed?") ## Most of our annotation packages have only hg19 build snpBuilds <- list.files(path, pattern="snpProbes_") build <- gsub(".rda", "", gsub("snpProbes_", "", snpBuilds)) if(length(build) > 1){ if(genome %in% build){ build <- genome } else { ## genome not in build message(paste("Builds", paste(build, collapse=","), "are available. Use genome=[build] to specify which build to use for annotation.")) build <- build[1] } } if(length(build)==1){ if(build != genome){ message(paste("Build", genome, "requested, but only build", build, "is available.")) } loader(paste("cnProbes_", build, ".rda", sep=""), pkgname=pkgname, envir=.oligoClassesPkgEnv) loader(paste("snpProbes_", build, ".rda", sep=""), pkgname=pkgname, envir=.oligoClassesPkgEnv) } else { ## length of build is zero ## file not found (older version of annotation packages). allow processing to continue loader("cnProbes.rda", pkgname=pkgname, envir=.oligoClassesPkgEnv) loader("snpProbes.rda", pkgname=pkgname, envir=.oligoClassesPkgEnv) } cnProbes <- get("cnProbes", envir=.oligoClassesPkgEnv) snpProbes <- get("snpProbes", envir=.oligoClassesPkgEnv) snpProbes <- snpProbes[rownames(snpProbes) %in% featureNames, , drop=FALSE] cnProbes <- cnProbes[rownames(cnProbes) %in% featureNames, , drop=FALSE] ##Feature Data isSnp <- 1L-as.integer(featureNames %in% rownames(cnProbes)) names(isSnp) <- featureNames if(any(isSnp)){ snps <- featureNames[isSnp == 1] index <- match(snps, rownames(snpProbes)) position.snp <- snpProbes[index, "position"] names(position.snp) <- snps J <- grep("chr", colnames(snpProbes)) chr.snp <- snpProbes[index, J] } else{ warning("None of the featureNames in the object match SNP probes for the indicated annotation package. Either the annotation package is misspecified, or the featureNames of the object are incorrect") message("The annotation for the object is ", object) chr.snp <- position.snp <- integer() } if(any(!isSnp)){ nps <- featureNames[isSnp == 0] index <- match(nps, rownames(cnProbes)) position.np <- cnProbes[index, "position"] names(position.np) <- nps chr.np <- cnProbes[index, J] } else { chr.np <- position.np <- integer() } position <- c(position.snp, position.np) chrom <- c(chr.snp, chr.np) ##We may not have annotation for all of the snps if(!all(featureNames %in% names(position))){ warning("physical position not available for all featureNames") } ix <- match(featureNames, names(position)) position <- position[ix] chrom <- chrom[ix] ##require(SNPchip) chrom <- chromosome2integer(chrom) stopifnot(identical(names(position), featureNames)) if(sum(duplicated(names(position))) > 0){ warning("Removing rows with NA identifiers...") ##RS: fix this I <- which(!is.na(names(position))) } else I <- seq(along=names(position)) new("GenomeAnnotatedDataFrame", isSnp=as.logical(isSnp[I]), position=as.integer(position[I]), chromosome=as.integer(chrom[I]), row.names=featureNames) } cleancdfname <- function(x) strsplit(x, "Crlmm")[[1]][[1]] isSupportedAnnotation <- function(x){ validAnn <- annotationPackages() validAnn <- validAnn[-grep(",", validAnn)] stripCrlmm <- sapply(validAnn, cleancdfname) validAnn <- unique(c(validAnn, stripCrlmm)) x <- strsplit(x, ",")[[1]] for(i in seq_along(x)) match.arg(x[i], validAnn) return(TRUE) } annotationPackages <- function(){ c("pd.mapping50k.hind240", "pd.mapping50k.xba240", "pd.mapping50k.hind240,pd.mapping50k.xba240", "pd.mapping250k.nsp", "pd.mapping250k.sty", "pd.mapping250k.nsp,pd.mapping250k.sty", "pd.genomewidesnp.5", "pd.genomewidesnp.6", "genomewidesnp6Crlmm", "genomewidesnp5Crlmm", "human370v1cCrlmm", "human370quadv3cCrlmm", "human550v3bCrlmm", "human650v3aCrlmm", "human610quadv1bCrlmm", "human660quadv1aCrlmm", "human1mduov3bCrlmm", "humanomni1quadv1bCrlmm") } affyPlatforms <- function(){ platforms <- c("pd.mapping50k.xba240", "pd.mapping50k.hind240", "pd.mapping250k.nsp", "pd.mapping250k.sty", "pd.genomewidesnp.5", "pd.genomewidesnp.6") combined <- rep(NA, 2) combined[1] <- paste(sort(platforms[1:2]), collapse=",") combined[2] <- paste(sort(platforms[3:4]), collapse=",") platforms <- c(platforms, combined) platforms } checkAnnotation <- function(x){ if(length(x) == 0) return(FALSE) x <- strsplit(x, ",")[[1]] if(length(x) == 1){ istrue <- isSupportedAnnotation(x) } else { istrue <- sapply(x, isSupportedAnnotation) istrue <- all(istrue) } return(istrue) } setReplaceMethod("position", signature(object="oligoSnpSet", value="integer"), function(object, value){ position(featureData(object)) <- value object }) setReplaceMethod("position", signature(object="GenomeAnnotatedDataFrame", value="integer"), function(object, value){ object$position <- value object }) setMethod("makeFeatureGRanges", signature(object="GenomeAnnotatedDataFrame"), function(object, genome, ...){ chr.names <- c(paste("chr", 1:22, sep=""), "chrX", "chrY") sl <- getSequenceLengths(genome) sl <- sl[chr.names] chrom <- paste("chr", integer2chromosome(chromosome(object)), sep="") if(!all(chrom %in% chr.names)) stop("chromosomes must be chr1, ... chr22, chrX, or chrY") gr <- GRanges(chrom, IRanges(position(object), width=1), seqlengths=sl) names(gr) <- sampleNames(object) metadata(gr) <- list(genome=genome) return(gr) }) setMethod("getArm", signature(object="GenomeAnnotatedDataFrame"), function(object, genome){ genome <- match.arg(genome, c("hg18","hg19")) .getArm(chromosome(object), position(object), genome) }) oligoClasses/R/methods-PDInfo.R0000644000175200017520000000307214710217345017335 0ustar00biocbuildbiocbuildsetMethod("annotation", "DBPDInfo", function(object) object@annotation) setMethod("initialize", "DBPDInfo", function(.Object, ...) { .Object <- callNextMethod() tInfo <- dbGetQuery(db(.Object), "select * from table_info") .Object@tableInfo <- tInfo .Object }) setMethod("manufacturer", "DBPDInfo", function(object) object@manufacturer) setMethod("genomeBuild", "DBPDInfo", function(object) object@genomebuild) setMethod("geometry", "DBPDInfo", function(object) object@geometry) setMethod("db", signature(object="DBPDInfo"), function(object) object@getdb()) setMethod("kind", "GenericPDInfo", function(object){ "generic" }) setMethod("kind", "AffySNPPDInfo", function(object) { "SNP" }) setMethod("kind", "AffyExpressionPDInfo", function(object) { "expression" }) setMethod("kind", "AffySNPCNVPDInfo", function(object) { "SNPCNV" }) setMethod("kind", "AffyGenePDInfo", function(object) { "gene" }) setMethod("kind", "AffyExonPDInfo", function(object) { "exon" }) setMethod("kind", "AffyHTAPDInfo", function(object) { "hta" }) setMethod("kind", "ExpressionPDInfo", function(object) { "expression" }) setMethod("kind", "TilingPDInfo", function(object) { "tiling" }) oligoClasses/R/methods-RangedDataCNV.R0000644000175200017520000001533014710217345020557 0ustar00biocbuildbiocbuild##setValidity("RangedDataCNV", function(object){ ## all(c("chrom", "id", "num.mark") %in% colnames(object)) ##}) ##setValidity("RangedDataCBS", function(object){ ## if(nrow(object) > 0){ ## all(c("seg.mean", "start.index", "end.index") %in% colnames(object)) ## } ##}) ##setValidity("RangedDataHMM", function(object) "state" %in% colnames(object)) ## RangedDataCNV <- function(ranges=IRanges(), ## values, ## start, ## end, ## chromosome, ## coverage, ## sampleId, ## startIndexInChromosome, ## endIndexInChromosome, ## ...){ ## .Defunct("RangedDataCNV is defunct. Use GenomicRanges instead.") ## } ## RangedDataCBS <- function(ranges=IRanges(), ## seg.mean=vector("numeric", length(ranges)), ...){ ## .Defunct("RangedDataCBS is defunct. Use GRanges instead") ## } ## RangedDataHMM <- function(ranges=IRanges(), ## state=vector("integer", length(ranges)), ...){ ## .Defunct("RangedDataHMM is defunct. Use GRanges instead") ## } ## setMethod("state", signature(object="RangedDataCNV"), function(object) .Defunct()) ## setMethod("coverage2", signature(object="RangedDataCNV"), function(object) .Defunct()) ## setMethod("mean", signature(x="RangedDataCBS"), function(x,...) .Defunct()) ## setMethod("sampleNames", signature(object="RangedDataCNV"), function(object) .Defunct()) ## setMethod("chromosome", signature(object="RangedDataCNV"), function(object, na.rm=FALSE) .Defunct()) ## setMethod("findOverlaps", signature(query="RangedDataCNV", subject="SnpSet"), ## function (query, subject, maxgap = 0L, minoverlap = 1L, type = c("any", ## "start", "end", "within", "equal"), select = c("all", "first", ## "last", "arbitrary"), ...){ ## findOverlaps(query=query, subject=featureData(subject), ## maxgap=maxgap, ## minoverlap=minoverlap, ## type=type, ## select=select, ...) ## .Defunct("findOvelaps method for RangedDataCNV and SnpSet is defunct") ## }) ## setMethod("findOverlaps", signature(query="RangedDataCNV", subject="CNSet"), ## function (query, subject, maxgap = 0L, minoverlap = 1L, type = c("any", ## "start", "end", "within", "equal"), select = c("all", "first", ## "last", "arbitrary"), ...){ ## .Defunct("findOvelaps method for RangedDataCNV and CNSet is defunct") ## }) ## setMethod("findOverlaps", signature(query="RangedDataCNV", subject="AnnotatedDataFrame"), ## function (query, subject, maxgap = 0L, minoverlap = 1L, type = c("any", ## "start", "end", "within", "equal"), select = c("all", "first", ## "last", "arbitrary"), ...){ ## .Defunct("findOverlaps for RangedDataCNV and AnnotatedDataFrame is defunct") ## }) ## setMethod("findOverlaps", signature(query="AnnotatedDataFrame", subject="RangedDataCNV"), ## function (query, subject, maxgap = 0L, minoverlap = 1L, type = c("any", ## "start", "end", "within", "equal"), select = c("all", "first", ## "last", "arbitrary"), ...){ ## .Defunct("findOverlaps for AnnotatedDataFrame and RangedDataCNV is defunct") ## }) ## setMethod("findOverlaps", signature(query="RangedDataCNV", ## subject="RangedDataCNV"), ## function(query, subject, maxgap = 0L, minoverlap = 1L, ## type = c("any", "start", "end", "within", "equal"), ## select = c("all", "first", "last", "arbitrary"), ...){ ## .Defunct("findOverlaps for RangedDataCNV is defunct") ## }) ## setMethod("findOverlaps", signature(query="RangedDataHMM", ## subject="RangedDataHMM"), ## function(query, subject, maxgap = 0L, minoverlap = 1L, ## type = c("any", "start", "end", "within", "equal"), ## select = c("all", "first", "last", "arbitrary"), ...){ ## .Defunct("findOverlaps for RangedDataHMM is defunct") ## }) ## setReplaceMethod("sampleNames", signature(object="RangedDataCNV", ## value="character"), ## function(object, value){ ## .Defunct("sampleNames<- defunct for RangedDataCNV") ## }) setMethod("genomeBuild", signature(object="GRanges"), function(object) metadata(object)[["genome"]]) ##setAs("RangedDataHMM", "GRangesList", function(from, to){ ## GRangesListFromRangedDataHMM(from) ##}) ## ##setAs("RangedDataCNV", "GRangesList", function(from, to){ ## GRangesListFromRangedDataCNV(from) ##}) ##GRangesListFromRangedDataCNV <- function(object, build, ...){ ## index <- split(seq_len(nrow(object)), sampleNames(object)) ## notmissingbuild <- !missing(build) ## if(notmissingbuild) sl <- getSequenceLengths(build) ## grl <- vector("list", length(index)) ## for(i in seq_along(index)){ ## j <- index[[i]] ## gr <- GRanges(paste("chr", chromosome(object)[j], sep=""), ## IRanges(start(object)[j], end(object)[j])) ## if(notmissingbuild) seqlengths(gr) <- sl[match(unique(seqnames(gr)), names(sl))] ## elementMetadata(gr)$numberProbes <- coverage2(object)[j] ## grl[[i]] <- gr ## } ## grl <- GRangesList(grl) ## names(grl) <- names(index) ## grl ##} setMethod("findOverlaps", signature(query="GRangesList", subject="gSet"), function (query, subject, maxgap = 0L, minoverlap = 1L, type = c("any", "start", "end", "within", "equal"), select = c("all", "first", "last", "arbitrary"), ...){ frange <- makeFeatureGRanges(subject) findOverlaps(query, frange, maxgap=maxgap, minoverlap=minoverlap, type=match.arg(type), select=match.arg(select), ...) }) setMethod("findOverlaps", signature(query="GRanges", subject="gSet"), function (query, subject, maxgap = 0L, minoverlap = 1L, type = c("any", "start", "end", "within", "equal"), select = c("all", "first", "last", "arbitrary"), ...){ frange <- makeFeatureGRanges(subject) findOverlaps(query, frange, maxgap=maxgap, minoverlap=minoverlap, type=match.arg(type), select=match.arg(select), ...) }) coerceToGRanges <- function(range, build="hg18"){ ##chrlevels <- paste("chr", 1:22, sep="") chrlevels <- names(getSequenceLengths(build)) chrom <- paste("chr", chromosome(range), sep="") chrlevels <- chrlevels[chrlevels %in% chrom] if(is(range, "RangedDataHMM")){ gr <- GRanges(factor(chrom, levels=chrlevels), IRanges(start(range), end(range)), sample=sampleNames(range), state=range$state, numberProbes=coverage2(range), seqlengths=setSequenceLengths(build, names=chrlevels)) } if(is(range, "RangedDataCBS")){ gr <- GRanges(factor(chrom, levels=chrlevels), IRanges(start(range), end(range)), sample=sampleNames(range), seg.mean=range$seg.mean, numberProbes=coverage2(range), seqlengths=setSequenceLengths(build, names=chrlevels)) } metadata(gr) <- list(genome=build) gr ##sort(gr) } oligoClasses/R/methods-SnpFeatureSet.R0000644000175200017520000000716214710217345020752 0ustar00biocbuildbiocbuildsetMethod("bothStrands", "SnpFeatureSet", function(object){ pkg <- annotation(object) set1 <- c("pd.mapping50k.xba240", "pd.mapping50k.hind240", "pd.mapping250k.sty", "pd.mapping250k.nsp") set2 <- c("pd.genomewidesnp.5", "pd.genomewidesnp.6") if (pkg %in% set1){ return(TRUE) }else if (pkg %in% set2){ return(FALSE) }else{ return(NA) } }) setMethod("allele", "SnpFeatureSet", function(object, allele, strand){ allele <- match.arg(allele, c("A", "B")) axiom <- length(grep("axiom", annotation(object))) == 1 ## remember: select different than value below (works also ## on axiom) ac <- switch(allele, A=1, B=0) cc <- switch(allele, A='channel2', B='channel1') ccc <- setdiff(c('channel1', 'channel2'), cc) if (axiom){ sql <- paste('SELECT man_fsetid, fsetid, fid, allele, allelea, alleleb, count', 'FROM pmfeature', 'INNER JOIN featureSet USING(fsetid)', 'WHERE allele != ', ac) tmp <- dbGetQuery(db(object), sql) tmp <- tmp[order(tmp[['count']], tmp[['fsetid']], tmp[['fid']]),] rownames(tmp) <- NULL ## easy SNPs: [A/C] [A/G] [T/C] [T/G] ## alleleA: fid channel1 ## alleleB: fid channel2 ## hard grn.: [A/T] ## alleleA: fid channel1 ## alleleB: fid channel1 (probe2) ## hard cyan: [C/G] ## alleleA: fid channel2 ## alleleB: fid channel2 (probe2) ## indel grn: [-/A] [-/T] ## need Angela ## alleleA: fid channel1 ## alleleB: fid channel2 ## indel cyn: [-/C] [-/G] ## need Angela ## alleleA: fid channel2 ## alleleB: fid channel1 easy <- c("AC", "AG", "TC", "TG") hgrn <- "AT" hcyn <- "CG" indelg <- c("-A", "-T") indelc <- c("-C", "-G") types <- paste(tmp[['allelea']], tmp[['alleleb']], sep='') i1 <- which(types %in% easy) i2 <- which(types %in% hgrn) i3 <- which(types %in% hcyn) i4 <- which(types %in% indelg) i5 <- which(types %in% indelc) a1 <- assayDataElement(object, cc)[tmp[i1, 'fid'],,drop=FALSE] a2 <- assayDataElement(object, cc)[tmp[i2, 'fid'],,drop=FALSE] a3 <- assayDataElement(object, ccc)[tmp[i3, 'fid'],,drop=FALSE] a4 <- assayDataElement(object, cc)[tmp[i4, 'fid'],,drop=FALSE] a5 <- assayDataElement(object, ccc)[tmp[i5, 'fid'],,drop=FALSE] result <- rbind(a1, a2, a3, a4, a5) i <- c(i1, i2, i3, i4, i5) tmp2 <- tmp[i,] rownames(result) <- tmp2[, 'man_fsetid'] o <- order(tmp2[['fsetid']], tmp2[['fid']]) rm(tmp2) result <- result[o,, drop=FALSE] return(result) }else{ stop("Not yet implemented") } }) oligoClasses/R/methods-SnpSet.R0000644000175200017520000001274714710217345017443 0ustar00biocbuildbiocbuild## ## Directly from Biobase ## setMethod("initialize", "SnpSet2", function(.Object, assayData = assayDataNew(call = call, callProbability = callProbability, ...), phenoData = annotatedDataFrameFrom(assayData, byrow=FALSE), featureData,## = annotatedDataFrameFrom(assayData, byrow=TRUE), experimentData = new("MIAME"), annotation = character(), protocolData = phenoData[,integer(0)], call = new("matrix"), callProbability = matrix(numeric(), nrow=nrow(call), ncol=ncol(call), dimnames=dimnames(call)), genome=c("hg19", "hg18"), ...) { genome <- match.arg(genome) if(missing(featureData)) featureData <- GenomeAnnotatedDataFrameFrom(assayData, annotation, genome=genome) callNextMethod(.Object, assayData = assayData, phenoData = phenoData, featureData = featureData, experimentData = experimentData, annotation = annotation, protocolData = protocolData, ...) }) setMethod(snpCall, "SnpSet2", function(object, ...) { assayDataElement(object, "call") }) setMethod(snpCallProbability, "SnpSet2", function(object, ...) { assayDataElement(object, "callProbability") }) setReplaceMethod("snpCall", c("SnpSet2", "matrix"), function(object, ..., value){ assayDataElementReplace(object, "call", value) }) setReplaceMethod("snpCallProbability", c("SnpSet2", "matrix"), function(object, ..., value){ assayDataElementReplace(object, "callProbability", value) }) ##----------------------- ## new methods for SnpSet2 ## setMethod("calls", "SnpSet2", function(object) assayData(object)$call) setReplaceMethod("calls", signature(object="SnpSet2", value="matrix"), function(object, value) assayDataElementReplace(object, "call", value)) setMethod("calls", "SnpSet", function(object) assayData(object)$call) setReplaceMethod("calls", signature(object="SnpSet", value="matrix"), function(object, value) assayDataElementReplace(object, "call", value)) p2i <- function(p) as.integer(-1000*log(1-p)) i2p <- function(i) 1-exp(-i/1000) warningMsg <- function(X){ .class=class(X) warning("callProbability slot is of class ", .class, ".\n") cat("\nTo obtain the confidence scores, the data needs to be extracted from disk and represented as a matrix. The '[' method does both. For example,\n", fill=TRUE) message("> x <- confs(object)[,] ## 'x' is a matrix\n") cat("* Note however that 'x' may be very large and swamp the available RAM. A better approach would be to specify which rows (i) and columns (j) are read only those rows and columns from disk.\n", fill=TRUE) message("> x < confs(object)[i, j] \n") message("Finally, 'x' still needs to be translated to a probability. This can be done by", fill=TRUE) message("> p <- i2p(x)") } setMethod("confs", "SnpSet2", function(object, transform=TRUE) { X <- snpCallProbability(object) if(is(X, "ff_matrix") | is(X, "ffdf")){ warningMsg(X) return(X) } if (transform){ X <- i2p(X) } return(X) }) setReplaceMethod("confs", signature(object="SnpSet2", value="matrix"), function(object, value){ ##convert probability to integer if(max(value) > 1){ X <- matrix(p2i(value), nrow(X), ncol(X), dimnames=dimnames(value)) } else { X <- value } assayDataElementReplace(object, "callProbability", X) }) setMethod("confs", "SnpSet", function(object, transform=TRUE) { X <- snpCallProbability(object) if(is(X, "ff_matrix") | is(X, "ffdf")){ warningMsg(X) return(X) } if (transform){ X <- i2p(X) } return(X) }) setReplaceMethod("confs", signature(object="SnpSet", value="matrix"), function(object, value){ ##convert probability to integer if(max(value) > 1){ X <- matrix(p2i(value), nrow(X), ncol(X), dimnames=dimnames(value)) } else { X <- value } assayDataElementReplace(object, "callProbability", X) }) setMethod("combine", signature=signature(x="SnpSet2", y="SnpSet2"), function(x, y, ...){ ##Check that both x and y are valid objects if(!validObject(x)) stop("x is not a valid object") if(!validObject(y)) stop("y is not a valid object") annot <- paste(sort(c(annotation(x), annotation(y))), collapse=",") annotation(x) <- annotation(y) <- annot if(class(x) != class(y)){ stop("objects must have the same class") } if(storageMode(assayData(x)) != storageMode(assayData(y))){ stop("objects must have same storage mode for assayData") } fd <- combine(featureData(x), featureData(y)) pd <- combine(phenoData(x), phenoData(y)) ad.x <- as.list(assayData(x)) ad.y <- as.list(assayData(y)) ad.xy <- mapply(rbind, ad.x, ad.y, SIMPLIFY=FALSE) id.x <- match(rownames(ad.xy[[1]]), featureNames(fd)) ee <- combine(experimentData(x), experimentData(y)) assayData(x) <- ad.xy storageMode(assayData(x)) <- storageMode(assayData(y)) experimentData(x) <- ee featureData(x) <- fd phenoData(x) <- pd x }) ## setMethod("featuresInRange", signature(object="SnpSet2", range="RangedDataCNV"), ## function(object, range, FRAME=0, FRAME.LEFT, FRAME.RIGHT, ...){ ## .Defunct("featuresInRange has been deprecated. Use findOverlaps.") ## }) oligoClasses/R/methods-SummarizedExperiment.R0000644000175200017520000000210414710217345022372 0ustar00biocbuildbiocbuildsetMethod("chromosome", signature(object="RangedSummarizedExperiment"), function(object,...) as.character(seqnames(object))) setMethod("isSnp", signature(object="RangedSummarizedExperiment"), function(object,...) values(rowRanges(object))$isSnp) setMethod("lrr", signature(object="RangedSummarizedExperiment"), function(object){ assays(object)[[1]] }) setMethod("baf", signature(object="RangedSummarizedExperiment"), function(object){ assays(object)[[2]] }) ## Remove the methods below once the transition from SummarizedExperiment ## to RangedSummarizedExperiment is complete. [H. Pages - May 11, 2015] setMethod("chromosome", signature(object="SummarizedExperiment"), function(object,...) as.character(seqnames(object))) setMethod("isSnp", signature(object="SummarizedExperiment"), function(object,...) values(rowRanges(object))$isSnp) setMethod("lrr", signature(object="SummarizedExperiment"), function(object){ assays(object)[[1]] }) setMethod("baf", signature(object="SummarizedExperiment"), function(object){ assays(object)[[2]] }) oligoClasses/R/methods-gSet.R0000644000175200017520000000731514710217345017124 0ustar00biocbuildbiocbuildsetMethod("initialize", signature(.Object="gSet"), function(.Object, assayData = assayDataNew(...), phenoData = annotatedDataFrameFrom(assayData, byrow=FALSE), experimentData = new("MIAME"), annotation = character(), protocolData = phenoData[,integer(0)], genome=c("hg19", "hg18"), featureData, ...) { genome <- match.arg(genome) if(missing(featureData)) featureData <- GenomeAnnotatedDataFrameFrom(assayData, annotation, genome=genome) .Object@genome <- genome .Object <- callNextMethod(.Object, assayData = assayData, phenoData = phenoData, featureData = featureData, experimentData = experimentData, annotation = annotation, protocolData = protocolData) return(.Object) }) ##setValidity("gSet", function(object){ ## if(nrow(object) == 0) return(TRUE) ## sl <- getSequenceLengths(genomeBuild(object)) ## charChrom <- unique(integer2chromosome(chromosome(object))) ## fr <- makeFeatureGRanges(object, seqlengths=sl[charChrom]) ## fr2 <- ##}) setMethod("isSnp", signature(object="gSet"), function(object, ...) { isSnp(featureData(object)) }) setMethod("isSnp", signature(object="character"), function(object, pkgname, ...){ path <- system.file("extdata", package=pkgname) load(file.path(path, "snpProbes.rda")) snpProbes <- get("snpProbes") object %in% snpProbes }) setMethod("db", "gSet", function(object) { requireAnnotation(annotation(object)) || stop(paste(annotation(object), "package not available")) get(annotation(object))@getdb() }) setMethod("chromosome", "gSet", function(object, na.rm=FALSE, ...){ chromosome(featureData(object), na.rm) }) setReplaceMethod("chromosome", signature(object="gSet", value="integer"), function(object, value){ fData(object)$chromosome <- value object }) setMethod("position", "gSet", function(object, na.rm=FALSE, ...){ position(featureData(object), na.rm) }) setMethod("checkOrder", signature(object="gSet"), function(object, verbose=FALSE){ .checkOrder(object, verbose) }) .checkOrder <- function(object, verbose=FALSE){ d <- diff(order(chromosome(object), position(object))) if(any(d < 0)){ if(verbose) warning("Object should be ordered by chromosome and physical position.\n", "Try \n", "> object <- order(object) \n") return(FALSE) } TRUE } chromosomePositionOrder <- function(object, ...){ is.ordered <- checkOrder(object) if(!is.ordered){ ##if(verbose) message("Ordering ", class(object), " object by chromosome and physical position") index <- order(chromosome(object), position(object), ...) object <- object[index, ] } return(object) } setMethod("genomeBuild", signature(object="gSet"), function(object) object@genome) setReplaceMethod("genomeBuild", signature(object="gSet", value="character"), function(object, value){ object@genome <- value return(object) }) setMethod("show", signature(object="gSet"), function(object){ callNextMethod(object) cat("genome: ", genomeBuild(object), "\n") }) setMethod("makeFeatureGRanges", signature(object="gSet"), function(object, ...){ makeFeatureGRanges(featureData(object), genomeBuild(object)) ## sl <- getSequenceLengths(genomeBuild(object)) ## gr <- GRanges(paste("chr", chromosome(object), sep=""), ## IRanges(position(object), width=1)) ## seqlengths(gr) <- sl[match(unique(seqnames(gr)), names(sl))] ## return(gr) }) setMethod("getArm", signature(object="gSet"), function(object, ...){ .getArm(chromosome(object), position(object), genomeBuild(object)) }) oligoClasses/R/methods-gSetList.R0000644000175200017520000001663014710217345017760 0ustar00biocbuildbiocbuildsetMethod("initialize", signature(.Object="gSetList"), function(.Object, assayDataList=AssayDataList(...), featureDataList=GenomeAnnotatedDataFrameFromList(assayDataList), chromosome=integer(), phenoData=annotatedDataFrameFrom(assayDataList, byrow=FALSE), protocolData=phenoData[, integer(0)], experimentData=new("MIAME"), annotation=character(), genome=character(), ...){ callNextMethod(.Object, assayDataList=assayDataList, featureDataList=featureDataList, phenoData=phenoData, chromosome=chromosome, annotation=annotation, genome=genome, protocolData=protocolData, experimentData=experimentData, ...) }) setMethod("[", signature(x="gSetList"), function(x, i, j, ..., drop=FALSE){ ## using 'i' to subset markers does not really make ## sense ## ## Use i to subset the list. example, x[1] is still a BeadStudioSetList, but is one chromosome ## if(!missing(i) & !missing(j)){ ##browser() ad <- assayDataList(x) nms <- ls(ad) for(k in seq_along(nms)){ elt <- nms[k] tmp <- ad[[elt]][i] tmp <- lapply(tmp, function(x, j) { x[, j, drop=FALSE] }, j=j) x <- assayDataElementReplace(x, elt, tmp) } x@chromosome <- chromosome(x)[i] x@featureDataList <- featureDataList(x)[i] x@phenoData <- phenoData(x)[j, ] } if(!missing(i) & missing(j)){ ad <- assayDataList(x) nms <- ls(ad) for(k in seq_along(nms)){ elt <- nms[k] tmp <- ad[[elt]][i] x <- assayDataElementReplace(x, elt, tmp) } x@chromosome <- chromosome(x)[i] x@featureDataList <- featureDataList(x)[i] } if(missing(i) & !missing(j)){ ad <- assayDataList(x) nms <- ls(ad) for(k in seq_along(nms)){ elt <- nms[k] tmp <- lapply(ad[[elt]], function(x, j) { x[, j, drop=FALSE] }, j=j) x <- assayDataElementReplace(x, elt, tmp) } x@phenoData <- phenoData(x)[j, ] } return(x) }) setAs("gSetList", "list", function(from){ to <- vector("list", length(from)) for(i in seq_along(from)){ to[[i]] <- from[[i]] } return(to) }) setMethod("$", signature(x="gSetList"), function(x, name){ eval(substitute(phenoData(x)$NAME_ARG, list(NAME_ARG=name))) }) setReplaceMethod("$", "gSetList", function(x, name, value) { phenoData(x)[[name]] = value x }) setMethod("annotation", signature(object="gSetList"), function(object) object@annotation) setMethod("assayData", signature(object="gSetList"), function(object) assayDataList(object)) setMethod("assayDataList", signature(object="gSetList"), function(object) object@assayDataList) setMethod("assayDataList", signature(object="oligoSetList"), function(object) object@assayDataList) setMethod("chromosome", signature(object="gSetList"), function(object, as.list=FALSE, ...){ ##lapply(object, chromosome) if(!as.list) object@chromosome else chromosomeList(object) }) setMethod("dims", signature(x="gSetList"), function(x){ nchr <- length(chromosome(x)) nr <- sum(elementNROWS(x)) ns <- ncol(x) ds <- c(nr, nchr, ns) names(ds) <- c("features (total)", "list elements", "samples") return(ds) }) setReplaceMethod("featureData", signature(object="gSetList", value="list"), function(object, value){ object@featureDataList <- value object }) setMethod("featureData", signature(object="gSetList"), function(object){ object@featureDataList }) setMethod("fvarLabels", signature(object="gSetList"), function(object){ varLabels(featureData(object)[[1]]) }) setMethod("featureDataList", signature(object="gSetList"), function(object) object@featureDataList) setMethod("featureNames", signature(object="gSetList"), function(object){ lapply(featureDataList(object), featureNames) }) setMethod("genomeBuild", signature(object="gSetList"), function(object) object@genome) setReplaceMethod("genomeBuild", signature(object="gSetList", value="character"), function(object, value){ object@genome <- value object }) setMethod("length", signature(x="gSetList"), function(x) length(x@chromosome)) setMethod("order", signature(...="gSetList"), function(..., na.last=TRUE,decreasing=FALSE){ x <- list(...)[[1]] for(i in seq_along(x)){ x[[i]] <- chromosomePositionOrder(x[[i]]) } return(x) }) setMethod("pData", signature(object="gSetList"), function(object) pData(phenoData(object))) setMethod("phenoData", signature(object="gSetList"), function(object) object@phenoData) setReplaceMethod("phenoData", signature=signature( object="gSetList", value="AnnotatedDataFrame"), function(object, value) { object@phenoData <- value object }) setReplaceMethod("pData", signature=signature( object="gSetList", value="data.frame"), function(object, value) { pd <- phenoData(object) pData(pd) <- value phenoData(object) <- pd object }) setMethod("position", signature(object="gSetList"), function(object){ lapply(featureDataList(object), position) }) setMethod("sampleNames", signature(object="gSetList"), function(object) sampleNames(phenoData(object))) setReplaceMethod("sampleNames", signature(object="gSetList", value="character"), function(object,value){ sampleNamesGSetList(object, value) }) sampleNamesGSetList <- function(object, value){ pd <- phenoData(object) sampleNames(pd) <- value object@phenoData <- pd adl <- object@assayDataList lrrlist <- adl[["lrr"]] baflist <- adl[["baf"]] relabel <- function(object, names){ colnames(object) <- names object } if(length(lrrlist) > 0){ lrrlist <- lapply(lrrlist, relabel, names=value) baflist <- lapply(baflist, relabel, names=value) } assayData <- new.env(parent=emptyenv()) assayData[["lrr"]] <- lrrlist assayData[["baf"]] <- baflist ## adl[["lrr"]] <- lrrlist ## adl[["baf"]] <- baflist object@assayDataList <- assayData return(object) } setMethod("sapply", signature(X="gSetList"), function(X, FUN, ..., simplify=TRUE, USE.NAMES=TRUE){ listobject <- as(X, "list") sapply(listobject, FUN, ..., simplify=simplify, USE.NAMES=USE.NAMES) }) setMethod("show", signature(object="gSetList"), function(object){ nm <- ls(assayData(object))[[1]] lo <- length(assayData(object)[[nm]]) cat(class(object), " of length ", lo, "\n", sep="") }) setMethod("storageMode", "gSetList", function(object) storageMode(assayData(object))) setMethod("varLabels", signature(object="gSetList"), function(object) varLabels(phenoData(object))) setMethod("makeFeatureGRanges", signature(object="gSetList"), function(object, ...){ fdl <- featureData(object) pos <- unlist(position(object)) snp <- unlist(lapply(fdl, isSnp)) chr <- unlist(lapply(fdl, chromosome)) df <- data.frame(position=pos, isSnp=snp, chromosome=chr) rownames(df) <- unlist(featureNames(object)) fd <- as(df, "AnnotatedDataFrame") fd2 <- as(fd, "GenomeAnnotatedDataFrame") makeFeatureGRanges(fd2, genomeBuild(object)) }) setMethod("elementNROWS", signature(x="gSetList"), function(x){ adl <- assayDataList(x) nm <- ls(adl)[[1]] sapply(assayDataList(x)[[nm]], nrow) }) setMethod("ncol", signature(x="gSetList"), function(x){ adl <- assayDataList(x) nm <- ls(adl)[[1]] ncol(assayDataList(x)[[nm]][[1]]) }) oligoClasses/R/methods-oligoSnpSet.R0000644000175200017520000001027414710217345020466 0ustar00biocbuildbiocbuildsetMethod("updateObject", signature(object="oligoSnpSet"), function(object, ..., verbose=FALSE) { if (verbose) message("updateObject(object = 'oligoSnpSet')") obj <- tryCatch(callNextMethod(object), error=function(e) NULL) if(is.null(obj)){ obj <- new("oligoSnpSet", assayData = updateObject(assayData(object), ..., verbose=verbose), phenoData = phenoData(object), experimentData = updateObject(experimentData(object), ..., verbose=verbose), annotation = updateObject(annotation(object), ..., verbose=verbose), featureData=updateObject(featureData(object), ..., genome=genomeBuild(object), verbose=FALSE)) } if (all(isCurrent(obj))) return(obj) obj }) setReplaceMethod("baf", signature(object="oligoSnpSet"), function(object, value){ if("baf" %in% assayDataElementNames(object)){ object <- assayDataElementReplace(object, "baf", value) } else{ warning("assay data element 'baf' does not exist in oligoSnpSet object") } return(object) }) setMethod("copyNumber", "oligoSnpSet", function(object) { cn <- assayDataElement(object, "copyNumber") return(cn) }) setReplaceMethod("copyNumber", signature(object="oligoSnpSet", value="matrix"), function(object, value){ assayDataElementReplace(object, "copyNumber", value) }) setMethod("cnConfidence", "oligoSnpSet", function(object) assayData(object)[["cnConfidence"]]) setReplaceMethod("cnConfidence", signature(object="oligoSnpSet", value="matrix"), function(object, value){ assayDataElementReplace(object, "cnConfidence", value) }) setAs("oligoSnpSet", "data.frame", function(from, to){ cn <- copyNumber(from)/100 gt <- calls(from) cn <- as.numeric(cn) gt <- as.integer(gt) baf.present <- "baf" %in% ls(assayData(from)) lrr.present <- "lrr" %in% ls(assayData(from)) if(baf.present){ bf <- as.numeric(assayDataElement(from, "baf"))/1000 } if(lrr.present){ logRRatio <- as.numeric(assayDataElement(from, "lrr"))/100 } x <- rep(position(from)/1e6, ncol(from)) ##x <- rep(position(object)[marker.index], 4)/1e6 is.snp <- rep(isSnp(from), ncol(from)) id <- rep(sampleNames(from), each=nrow(from)) if(!baf.present){ df <- data.frame(x=x, cn=cn, gt=gt, id=id, is.snp=is.snp, stringsAsFactors=FALSE) } else { df <- data.frame(x=x, cn=cn, gt=gt, baf=bf, id=id, is.snp=is.snp, stringsAsFactors=FALSE) } if(lrr.present){ df$lrr <- logRRatio } df$id <- factor(df$id, ordered=TRUE, levels=unique(df$id)) return(df) }) ##setAs("oligoSnpSet", "SnpSet2", function(from, to){ ## new("SnpSet2", ## call=calls(from), ## callProbability=snpCallProbability(from), ## genome=genomeBuild(from), ## phenoData=phenoData(from), ## protocolData=protocolData(from), ## annotation=annotation(from), ## experimentData=experimentData(from), ## featureData=featureData(from)) ## ##}) ## ideally, oligoSnpSet would inherit from SnpSet2, but currently problems with GenomeAnnotatedDataFrame ##setMethod(snpCall, "oligoSnpSet", function(object, ...) { ## assayDataElement(object, "call") ##}) ## ##setMethod(snpCallProbability, "oligoSnpSet", function(object, ...) { ## assayDataElement(object, "callProbability") ##}) ## ##setReplaceMethod("snpCall", c("oligoSnpSet", "matrix"), ## function(object, ..., value) ##{ ## assayDataElementReplace(object, "call", value) ##}) ## ##setReplaceMethod("snpCallProbability", c("oligoSnpSet", "matrix"), ## function(object, ..., value) ##{ ## assayDataElementReplace(object, "callProbability", value) ##}) ## ####----------------------- #### new methods for oligoSnpSet #### ## ##setMethod("calls", "oligoSnpSet", function(object) assayData(object)$call) ##setReplaceMethod("calls", signature(object="oligoSnpSet", value="matrix"), ## function(object, value) ## assayDataElementReplace(object, "call", value)) oligoClasses/R/show-methods.R0000644000175200017520000000063314710217345017176 0ustar00biocbuildbiocbuildsetMethod("show", "DBPDInfo", function(object) { cat("Class........:", class(object), "\n") cat("Manufacturer.:", manufacturer(object), "\n") cat("Genome Build.:", genomeBuild(object), "\n") cat("Chip Geometry:", geometry(object)[1], "rows x ", geometry(object)[2], "columns\n") }) setMethod("show", "FeatureSet", function(object){ callNextMethod() requireAnnotation(annotation(object)) }) oligoClasses/R/utils-general.R0000644000175200017520000001312014710217345017323 0ustar00biocbuildbiocbuildloader <- function(theFile, envir, pkgname){ theFile <- file.path(system.file(package=pkgname), "extdata", theFile) if (!file.exists(theFile)) stop("File ", theFile, " does not exist in ", pkgname) load(theFile, envir=envir) } requireAnnotation <- function(pkgname, lib=.libPaths()[1], verbose=TRUE){ stopifnot(is.character(pkgname), !missing(pkgname)) status <- suppressWarnings(require(pkgname, character.only=TRUE, quietly=!verbose)) if (!status) status <- pdPkgFromBioC(pkgname, lib=lib, verbose=verbose) status } ## Package Downloader/Installer ## returns TRUE if installed and FALSE otherwise pdPkgFromBioC <- function(pkgname, lib=.libPaths()[1], verbose=TRUE) { if (length(lib) > 1) { warning("Ignoring all but first element of argument lib.") lib <- lib[1] } if (verbose){ message("Attempting to obtain '", pkgname, "' from BioConductor website.") message("Checking to see if your internet connection works...") } if (testBioCConnection()) { ## Check for file permissions if (file.access(lib, mode=0) < 0){ if (verbose) message("Directory '", lib, "' does not seem to exist.") return(FALSE) } if (file.access(lib, mode=2) < 0){ if (verbose) message("You do not have write access to '", lib, "'.") return(FALSE) } biocContribUrl <- sapply(repositories(), contrib.url) biocPkgs <- available.packages(biocContribUrl) if (! pkgname %in% biocPkgs[, "Package"]) { if (verbose) message("Package '", pkgname, "' was not found in the BioConductor repository.\n", "The 'pdInfoBuilder' package can often be used in situations like this.") return(FALSE) } else { install.packages(pkgname, lib=lib, repos=repositories(), dependencies=TRUE) status <- require(pkgname, character.only=TRUE, quietly=!verbose) if (status){ return(TRUE) }else{ if (verbose) message("There was a problem during download or installation.\n", "Package '", pkgname, "' cannot be loaded. Please, try again.") return(FALSE) } } } else { if (verbose) message("Could not access the Bioconductor repository.\n", "Please check your internet connection.") return(FALSE) } } list.celfiles <- function(..., listGzipped=FALSE){ files <- list.files(...) if (listGzipped){ return(files[grep("\\.[cC][eE][lL]\\.[gG][zZ]$|\\.[cC][eE][lL]$", files)]) }else{ return(files[grep("\\.[cC][eE][lL]$", files)]) } } celfileDate <- function(filename) { h <- affyio::read.celfile.header(filename, info="full") date <- grep("/", strsplit(h$DatHeader, " ")[[1]], value=TRUE) if(length(date) < 1){ ##try something else results <- h$ScanDate } else{ date <- strsplit(date, split="/")[[1]] CC <- ifelse(substr(date[3],1,1)=="9", "19", "20") results <- as.character(as.Date(paste(paste(CC, date[3], sep=""), date[1], date[2], sep="-"))) } results } celfileName <- function(object){ if(!is(object, "CNSet")) stop("object must be CNSet") vl <- varLabels(protocolData(object)) dirnames <- rep(object@datadir[[1]], object@datadir[[2]]) if("filename" %in% vl){ fns <- file.path(dirnames, protocolData(object)$filename) } else { fns <- file.path(dirnames, basename(sampleNames(object))) } if(!all(file.exists(fns))) stop("not all files exist") fns } ## a bar that I like to use when sending messages to the user getBar <- function(width=getOption("width")) paste(rep("=", width), collapse="") isPackageLoaded <- function(pkg){ stopifnot(is.character(pkg)) pkg <- paste("package:", pkg, sep="") pkg %in% search() } checkExists <- function(.name, .path=".", .FUN, .FUN2, .save.it=TRUE, .load.it, ...){ ##default of load.it depends on whether the object exists in .GlobalEnv if(exists(.name)){ message("Exists in .GlobalEnv") if(missing(.load.it)){ message(".load.it is missing. Setting .load.it to FALSE") .load.it <- FALSE } if(.load.it){ fname <- file.path(.path, paste(.name, ".rda", sep="")) if(file.exists(fname)){ message(".load.it is TRUE") message("Loading ", fname) load(fname) if(!exists(".object")) .object <- get(.name) return(.object) } else { message(fname, " does not exist") message("Running ", .FUN) .object <- .FUN(...) if(.save.it) { message("Saving ", fname) save(.object, file=fname) } return(.object) } } else { message(".load.it is FALSE. Nothing to do") .object <- get(.name) return(.object) } } else{ message(.name, " does not exist in .GlobalEnv") fname <- file.path(.path, paste(.name, ".rda", sep="")) if(file.exists(fname)){ message(fname, " exists") if(missing(.load.it)){ message(".load.it is missing. Setting .load.it to TRUE") .load.it <- TRUE } if(.load.it){ message("Loading ", fname) .tmp <- ls() load(fname) if(!exists(".object")) .object <- tryCatch(get(.name), error=function(e) NULL) ##extremely ad-hoc if(is.null(.object)) .object <- get(ls()[!(ls() %in% .tmp) & !(ls() %in% c(".object", ".tmp"))]) return(.object) } else { message(".load.it is FALSE. Running .FUN") .object <- .FUN(...) if(.save.it) { message("Saving ", fname) save(.object, file=fname) } return(.object) } } else { message(fname, " does not exist. Running .FUN") .object <- .FUN(...) if(.save.it) { message("Saving ", fname) save(.object, file=fname) } return(.object) } } } library2 <- function(...){ suppressPackageStartupMessages(library(...)) } oligoClasses/R/utils-lds.R0000644000175200017520000001126514710217345016500 0ustar00biocbuildbiocbuild## utilities for Large Dataset Support ## ## Summary: ## - is.ffmatrix: test specifically for ff_matrix ## - ldStatus: TRUE if Large Dataset Support is available ## - ldPath: where to save ff files ## - createFF: creates an ff object setting path appropriately ## (leaving out of fftempdir b/c parallel processes ## access the object very easily) initializeBigArray <- function(name=basename(tempfile()), dim=c(0L,0L,0L), vmode="integer", initdata=NA){ if(isPackageLoaded("ff")){ results <- createFF(name=name, dim=dim, vmode=vmode, initdata=initdata) } else { init <- switch(vmode, integer=as.integer(initdata), double=as.double(initdata), character=as.character(initdata), stop("Mode ", vmode, " not implemented for regular matrices")) results <- array(init, dim=dim) } return(results) } initializeBigMatrix <- function(name=basename(tempfile()), nr=0L, nc=0L, vmode="integer", initdata=NA){ if(isPackageLoaded("ff") & (nr > 0 | nc > 0)){ if(prod(nr, nc) > 2^31){ ##Need multiple matrices ## -- use ffdf ## How many samples per ff object S <- floor(2^31/nr - 1) ## How many ff objects L <- ceiling(nc/S) name <- paste(name, 1:L, sep="_") resultsff <- vector("list", L) for(i in 1:(L-1)){ ## the Lth object may have fewer than nc columns resultsff[[i]] <- createFF(name=name[i], dim=c(nr, S), vmode=vmode, initdata=initdata) } ##the Lth element leftOver <- nc - ((L-1)*S) resultsff[[L]] <- createFF(name=name[L], dim=c(nr, leftOver), vmode=vmode, initdata=initdata) results <- do.call(ffdf, resultsff) rm(resultsff); gc() } else { results <- createFF(name=name, dim=c(nr, nc), vmode=vmode, initdata=initdata) } } else { init <- switch(vmode, integer=as.integer(initdata), double=as.double(initdata), character=as.character(initdata), stop("Mode ", vmode, " not implemented for regular matrices")) results <- matrix(init, nr, nc) } return(results) } initializeBigVector <- function(name=basename(tempfile()), n=0L, vmode="integer", initdata=NA){ if(isPackageLoaded("ff")){ results <- ff(initdata=initdata, vmode=vmode, length=n, pattern=file.path(ldPath(), basename(name))) } else { init <- switch(vmode, integer=as.integer(initdata), double=as.double(initdata), character=as.character(initdata), stop("Mode ", vmode, " not implemented for regular matrices")) results <- rep(init, n) } return(results) } createFF <- function(name, dim, vmode="double", initdata=NULL) ff(initdata=initdata, vmode=vmode, dim=dim, pattern=file.path(ldPath(), basename(name))) ## TODO: really safe to use :::? setMethod("annotatedDataFrameFrom", "ff_matrix", Biobase:::annotatedDataFrameFromMatrix) is.ffmatrix <- function(object) is(object, "ff_matrix") isFF <- function(object){ names <- ls(assayData(object)) is(assayData(object)[[names[[1]]]], "ff") | is(assayData(object)[[names[[1]]]], "ffdf") } ldPath <- function(path){ if (missing(path)){ return(getOption("ldPath")) }else{ if(!is.character(path)) stop("path is not a character string") ## stopifnot(is.character(path)) options(ldPath=path) } } ldSetOptions <- function(nsamples=100, nprobesets=20000, path=getwd(), verbose=FALSE){ ocProbesets(nprobesets) ocSamples(nsamples) ldPath(path) ldStatus(verbose) TRUE } ldStatus <- function(verbose=FALSE){ ld <- isPackageLoaded("ff") if (verbose){ message(getBar()) message("Large dataset support for 'oligo/crlmm': ", appendLF=FALSE) if (ld){ message("Enabled") ns <- prettyNum(c(ocProbesets(), ocSamples()), big.mark=",") message(" - Probesets: ", ns[1]) message(" - Samples..: ", ns[2]) message(" - Path.....: ", ldPath()) }else{ message("Disabled") message(" - Load 'ff'") } message(getBar()) } return(ld) } ## does nothing if not an ff object setMethod("open", "numeric", function(con, ...) return(NULL)) setMethod("open", "matrix", function(con, ...) return(NULL)) setMethod("open", "array", function(con, ...) return(NULL)) setMethod("close", "numeric", function(con, ...) return(NULL)) setMethod("close", "matrix", function(con, ...) return(NULL)) setMethod("close", "array", function(con, ...) return(NULL)) oligoClasses/R/utils-parallel.R0000644000175200017520000000574414710217345017517 0ustar00biocbuildbiocbuild## utilities for parallel computing (now (20Mar2012) via foreach) ## ## NOTE: Using this framework, it is possible to allow for parallel ## computing WITHOUT the ff package. The problem with this is to ## overload the system as operations will pottentially copy the same ## data over and over and over. Therefore, I chose to allow parallel ## computing only when ff is loaded. ## ## Summary (useful when coding): ## - parStatus: TRUE if requirements for parallel are met ## - ocProbesets: number of probesets to process at a time (batch) ## - ocSamples: number of samples to process at a time (batch) ## - ocPath: path where ff objects are to be saved parStatus <- function() getDoParRegistered() & isPackageLoaded('ff') ocParallelStatus <- function(verbose=TRUE){ cl <- parStatus() if (verbose){ message("Parallel computing support for 'oligo/crlmm': ", appendLF=FALSE) if (!cl){ message("Disabled") message(" - Load 'ff'") message(" - Load and register a 'foreach' adaptor") message(" Example - Using 'multicore' for 2 cores:") message(" library(doMC)") message(" registerDoMC(2)") }else{ message("Enabled") ocProbesets(getOption('ocProbesets')) ocSamples(getOption('ocSamples')) } message(getBar()) } return(cl) } ocProbesets <- function(n){ if (missing(n)){ return(getOption("ocProbesets")) }else{ options(ocProbesets=n) invisible(TRUE) } } ocSamples <- function(n){ if (missing(n)){ return(getOption("ocSamples")) }else{ options(ocSamples=n) invisible(TRUE) } } ocLapply <- function(X, FUN, ..., neededPkgs){ if(missing(neededPkgs)) neededPkgs <- 'ff' else neededPkgs <- unique(c('ff', neededPkgs)) x <- NULL ## to make NOTE go away in R's package checker if (parStatus()){ res <- foreach(x=X, .packages=neededPkgs) %dopar% FUN(x, ...) }else{ res <- lapply(X, FUN, ...) } return(res) } splitIndicesByLength <- function(x, lg, balance=FALSE){ lx <- length(x) split(x, rep(seq(1,lx), each=lg, length.out=lx)) } splitIndicesByNode <- function(x){ split(x, sort(rep(1:getDoParWorkers(), length.out=length(x)))) } ## deprecated setCluster <- function(...){ msg <- paste('To set cluster for oligo/crlmm/friends,', 'use the "foreach" package and one adaptor like "doMC" or "doMPI."', 'Then, register the adaptor via registerDo*().') .Deprecated(msg=msg) } delCluster <- function(){ msg <- paste('Use the recommendations used by the "foreach" package.') .Deprecated(msg=msg) } getCluster <- function(){ .Deprecated('getDoParWorkers') } requireClusterPkgSet <- function(packages){ .Deprecated(msg='Function no longer needed. Replaced by proper argument of foreach') } requireClusterPkg <- function(pkg, character.only=TRUE){ .Deprecated(msg='Function no longer needed. Replaced by proper argument of foreach') } oligoClasses/R/zzz.R0000644000175200017520000000101414710217345015404 0ustar00biocbuildbiocbuildTHISPKG <- "oligoClasses" .oligoClassesPkgEnv <- new.env(parent=emptyenv()) .onAttach <- function(libname, pkgname) { version <- packageDescription("oligoClasses", fields="Version") packageStartupMessage("Welcome to oligoClasses version ", version) ldSetOptions() ## bm <- ldStatus(TRUE) ## snow <- ocParallelStatus() setHook(packageEvent("ff", "attach"), function(...){ ldSetOptions(verbose=FALSE) ldStatus(TRUE) }) setHook(packageEvent("foreach", "attach"), function(...){ ocParallelStatus() }) } oligoClasses/TODO0000644000175200017520000000077214710217345014725 0ustar00biocbuildbiocbuild- Fix problems with CNSet (see CHANGES for 1.9.45) - Add documentation for several methods (1.9.45 has warnings about this) - Try to move everything from Depends to Imports (DESCRIPTION) - Add more data for example (check inst/doc/CrateExamples.R) - Add examples to help pages - getM for PM probes - Move celfileDate to where it is used and remove affyio from dependency list? - Consider other strategies for large dataset support (NetCDF/HDF5-like approaches?) - Implement code to use foreach - testing oligoClasses/data/0000755000175200017520000000000014710217345015140 5ustar00biocbuildbiocbuildoligoClasses/data/efsExample.rda0000644000175200017520000000264614710217345017731 0ustar00biocbuildbiocbuild‹íXYh\Uþf&™™Lf&Imºi7\*)™™LµÍ‚Ť¥ÕÖ¾73'Éè{‡{oÚ& à.ú ôE„âR,(.X"ˆK_}TÄEEÁí¡ñ»Ë´sïÉtR[…Îäžÿüçû¿9ç¿3{‡d§ùácK˜!Ž6Ž„˜4G+•ª*ŠtV“E›™TŠÖŒ! Î;kkóü è¶)¦©Ì+–bÛð~å8ͱœc÷|A£Åo´U®&Kqò}Xñ"åQàvñypÙßð8°é)º<<´XsˆúpßI`l5Ðçx¸)ôþlæžÁ,°mÐEƒ·å ý)óm®â·kŸÊ7©¯‰9Áõ/¹Vð‚Bûé÷€=WpŸÛw×'ÏÓþµÔ[ý(×5b¼äG‰C;Qât¿Dî¬cÀ_›ˆÇ=rÞt+u‡:ù.9_\w”Éy¾¾MÿO‘ën`Žþ,?…ÐH°þ'®ýMþ”·0AáÏ€+ÿ ÿW¸ºÈ+ÆìÆF\ìù?3Œm7}!—Ääy‚û¶RïI`}Üý }¹x†Ïß$.×cŒE˜öâcôáCâÿN›‘ 1£pbØš¤Ÿ·/}D9ùÇuúÉEïgœìØÝN›ä’øŠùcü“›œ&ÿd ¿å|–\¤}ÎÓÌUÇ6î >ó×U¢î2`C…~0—«¨úžkäcŒ£¬´§«éëûüÿ,íßËØN1NÇ(þ†¼‹ôãu®±&Ö‘CuwЗ2åŒmä9€ô >?ÂZø‚ܧâäsíc„îz•2Æ(Ln©UÀÊ}=±XF_×o!{ˆÛE|ætÛq„ÖR¶ƒüö))•éRÎqfnìú¨Ä©¢)azg.ìÚ͵ã>)û0÷öôJ’Œ$ÉJ’\@’‘p2NFÂÉH8Y '+ád%œ¬„““prNNÂÉI8}NŸ„Ó'áôI8y '/áä%œ¼„Ó/áôK8ýN¿„3 á H8΀„3(á J8ƒΠƒÓéÖ­³3ÖÓëŸfüÓ¬šóOûÎÕ.Î=üý«:-4Ýé_r#ìê)Š*;Ü~a˜e]+¨´ÜS°dÄ{¶›[k'²³N¸l»¦é–b‰’mrÔ Jp›cg¸~[Ü#`”cU¥xŸ2%Vb;Êú„bŠ>·TŒqa)%§kGêo Û§ÔÎDUqP¨5oÂ5®^v'…íccw_û|€QÔ~гdó¬NU™ê°0‹F¹jÑך/ÅiEÓ„Ì›¡ê©0XNØ^öLº‘–BÑR˜- ÑÖè¨i,}}û}æ5?fG)˜‡vwÏ./¶(劆tu¦R+Û_Y5¬ÆdÐçfåuÿ9j›o~\AK 9Iì‡b‘œSó^ºCþ4KD(H_²Ï«à:ç—¬È.7õËMý¿ÒÔ½êî ^æIO«þFJ{²‹t%¥Ù›„Q®ÍZä­„Žç™®<¾sûøÈ’^Dg{æ^õ[üÀ˨‰J¬¨k»lµV«l©ÍÌÅ• Ó2šƒEf µ‰J[ufb\”v–‚¯B·cվ×ÓÓ³F¹TžS,7Ô j%5ݨ 1†®6ÒIU Q5ô¢0Ͳ6Õ@©U·¦?ê¥Ä×WÅùf=¡¸…î¾éø6 ï—™€käléE]ý?5Ùï•éà…qñß$/yÿw^¥«øR½ž©Ë–ºº´I%Ühùd­Þ¨¯ßH@/pE_`¥ú’×â©„öʺΠ-îV-ž»†Ü2rE§°Y1‚¶o]uûž£¿ ³¤®–§ô!û{Ÿ“£3ßUÿÉ /oÉoligoClasses/data/locusLevelData.rda0000644000175200017520000027571414710217345020557 0ustar00biocbuildbiocbuildý7zXZi"Þ6!ÏXÌî>ÿïþ])TW"änRÊŸãXa“ÆqÅjnçj-&êäDòOf6¥‡CÃ!r×Íûj™ñR%@BÇ Ór#O¬+ë .ÓÔ¥ÞÅ»ðºž# •²êk¦Ùƒsvâ‹|3±}ÐZ]¿²å~ÚÌñuzÉtöø†®eÂ\)tgšËúc{y‡rÊD±° å{çÐX/G˜·},BÉ5É2ñ¤Q<³CÛ ­®›Ð,¦B¿°)x]1æÒÊu9ß!õ0_ÔÙä2/EÙ†E7°‹¼rOÅѨ3)à$\Ò™·@·6E ¹Ð™£è”Øÿ0®Iê+k'ˆCL¸bÔ“yî)°-ùqrý·­(Îʇ zõ•½&¬—5“Yo4…ÙPN¥ &O¸¥Š„©a–qV|o ÿ˜OŸVêü ª)N|qîäèR](ë¦f‹Îcø¾›ãàî-µ‹ Ï+ŠZþtønb›€RfŸw*HK3ögi˜BÂEªgÇÕÍâHŸ†ÂGøË\„ÐAºÛúñ2¶n±¸*ÁºjŠÐ§=%Å+E·_qÆ--†UK÷fˆtêpEóV,}\{ÚA Ÿ‡Cð©«©žÛÔ» aoü4§ÖL³yþ »r•¤°Ò qÔÁ_$Ov3?ZqØS+šÓp Pÿ²”V#¡«£G`1„; D€Ý$UWàÒGZÁΰ@èÀv›C!¨´¼zÕ6À²Äð}Væ)©if˜Þe‰Ë½3Ï‘MWÏèüµe x¼ÕËe,6œ=ÏçÀEÁHr$]“¬(¿ä6<ÄfãlVB…ÀcÛüF÷RV89¶hÏ5«Ë‘)±ßpH¡/…5¥&A{’þ @´´0êç¡´'“sžþ¤[®ЪèCzí¢ÑÍ€ßezõq±ï¯¡`ä}¥9µèò*v](Ó*µóƒlû¡Bâ“-úü_˜'uF| Ä¥4ã?»¹^2H6Åòƒ8Ñ=ù˜žMï'r¾Lòq ¬Ü |=Û Ïð¢åMÃ\ªJsÿ:Æu»Þé£q7´pØÖ¿VõY­Dh‘ŒxúÕ ð¹Ââ/Èp0óJÑE³Ã§I›ÊØ>./ÈÎ$ô_>8ýˆÖRJõ\99øbÇç§òL Ð.J”  ¼íL²²zÍæH™œÍLò†ÚÈÃR|¤JE ð‰ Û¬Œöª(ù>ï¾Û‡Z‘‘oãìuq! v‚ñbö-¬Lû>ŠD`™Rãk3K)F‹ßÐįG£ˆþ«¤û’ì£jYçr?ONþîÄoqaÀCy4ðXË™pÞ šàÓúW"=ÖîÞ³9Z§N7NÎ?©›Ýá–Tn§²€9­Q«ÚãÐú&²iÑfØcd’—{T÷PÔ¹h`GkÒ÷Éþþ2 ³© _ÛúvI¼üA°C*¬4_4x-zyô#‰ ˆµ\r`?­Å ÿÂEPi/ž”Gô­ÁC ­O›¿±/²6ü!lÂh·Ë.ÁN$M Èü­±‚¥ºDi.²£ÈXK»&Ò,Q&ÈÃ~ü^ÉÂâß:³žcaŪN^°\/Ç„S'PÝoú54’–ÍÅÚöDMøºËÆ•"Ùôô^Úñgåã[”#-<£/~‰OýÎö A3jÊ´'C$Fƒ•Ì€$Ü—ImKÌpÄ_×· …λ„È€ófö;£|ªP[ð³:™ªX¤œì‘»x6^îKüä¬jùÂQr>Ób‹Ù='I›p¶E…°Í€££âT×Ò$îÿÝa¯‘Ù ªUƒ49•¯5€Jì W×™òâåiIý0ÉÖ&ä—²+iÆ}\y8¨¤»lÉ’!³Hb2ª öUM¸FOÌ*ß¿æü™ôþ…æ&‰ MñpÀ–HÏzÂhLO­ ½ØÅòçÇ”‹x\To"wÆÕùhR|‘ü<ªxë!ÄÝçi¢NÑÚìIÐ mƒcÔUºf\«P¬M£IXã%€Ab{QÎNø(ˆ‚›Nþ4-S±#sàZ¦(¥J]W5¼ î [§ˆw®tO`Æ!(0!Z7þâÛ<=ÃcuâmÐt ZwHFÒ;ë J"*ú"l¦$xûŇ¡UT©:ÈiÌHÉ=~ñÚ§™…“DäºKF;ðB?0”ÙsµƒØý´°©Ó‚¿ÄTû"3 ÷ÉQ 9ïÓ²†¸¨½•CŸ¡!½¡ŽèÙÍ¥‡ªÅ¤‡x48#K–;°F,7÷©î‰gkfQ¡Jö‹Eâ&Wš³A£Rç|ç6xºÕ©ÁœF`ÃtªHãa-:IKIœ;µ„ÁÞÞ…°ôãFþå’ÖžåX<\mK\zñ{£e o2ÍæÝeôâÈ4¡¹C›P;&ÝøìUqeü¦lu¡¯3 (´ß›¡¬4ò_¯ëÎÏî®;³£ëê øPŒÄ“=j˜- 9±ß¦ÙLã›Ü„«˜“JûiúI<ý4ÁG2Hb%ãs—2ð@VŽCQQ€™PŒGÓÐèפ'èÁ Š„0Ø’­,ò hzxH|:‰;Ÿ†_rˆôæ^’šj¹ŽU ôò·9¥·«äÆ÷ÐÄÆ ©2¬F 8‡U4jå.õÌ^·‹Èáëò\ÚÑã³öݵ¯­áø¤»…'¯ÖÅoIZùµ“ð ŒCd֮ꯠ'•&bpejòásç]s{Ç×ÞUS¡Nئs/Ú ’´£¾Ÿ«³¦(½7Ý_&ˆãÞïä}Æ£ÅPÄ#C•ZQyˆùÝ,þQ-“5šÕ;ær„Öî&ÁPå,±HUéerã)OM¥KøÑìd;°"–›b`ÙYAËj²µ/Mk£L)jŠJ^Ì\]ÕþPñVÖ(B-(’N­ÑÀ|Â9]×S¢âM“ÆËfál®õ½Ü«$¥æ8‚yl4)éu]ÿ ºì7 E„k]+87ã¡ Ë´e‘‘¿á—¶VõxóPD:þÖeŠoX .E«ÀÄ@ƒƒ ÈqÉõócÉÁõ²álBk²`ôk:昷ªÿÎAûn(ʇÔë$¶f*-â‡·äØˆy;ù/2³RH±/þ}Rá@íòyÍ'íŠ )ƒIŒþ0Œ$õ=¬Ž0¶iDÁŒàäoÔžb9ylŽÅJ™ož£©àè"¿Ì“¹®t}`*w*Ÿjc5°>bÄ$ÙU½ lÍMõ¾aƒÓ“ñ㔥¤6Càum¾aYÂŒ¡±ûc£[=]2 ©†+Ü1ðÂsþò®]JàÔÿâûãD˜V¹ÍíVÕŽ¶ä4Óù*g66—z¯ ‹d­X3΀#¿Ÿ§àà­¹ ^2bRô*ž«E3)KØôxóõt|É“¶ÄPQ4˜zŒà<ØG'«’>¾µ‹TçÊ6žÈà·bíUSå<ïiÍù¡ê%âU‚äß'Ë×a—8•‘“|‰DbB”ê6¡-`ènQ F5æ'§¦º;‚~§½1öøPBG1þ ÐÞž2wo0äÜ—OIG‰&#:±§o{8jËRy#ŠºÒ`³šàHr·B7WŒîÝm/\ä+(n¹ÆY§îÀ[’.çŠÓZcbþKâÕ)ŽR?…„êÓ°Ƭ;áÞ›‘@5{–>:òBûOgílœÈ.åïµÔ€ l¿‡ØpÉ•º’yãŠ"—ÜØç ¨3|©ðK$w®(Éçe›†pîû‹šûQ‡j¿Ée„oþ*s«ï’Âwªnlºi:úé”Ð’ ~²'báe5Ø6­ U7 ÷ðÝŠMÔòã®Iâ×EG¥(VO©R²ëuÅ-|YÖˆgª*­‰í(õ‰ŒƒÕ{ÐæÊ¶ó]„?©ñýЇyëî´#íà縫–ç<ÿ#$lRs"ÇËó¾HÜÖ:)W4ˆŸ„(ès ÷ý¬|¨_>ä‹–ü,©›rèaÞ Ç郈³ëSpç BÇb!¤»[QDøŸæšo-S„g xCvH©0V–»WŽ‘³ðôú SyòÍSCûoÓDHÉq/ ô”æÚáQÒ´á«Öý·öÎ òá F™n¸×šºøœ‚Z-̳S{ Áò˜¤òñÒ«ÄTÄ숱ñ¡<ó=\0ž52€8r¼m‡›ÝÅ6]icoG›éýÕã‘1Q¡ŒÚAøe·ž¿Ä¬ªÈÞ³CøÍ;·TM9ß´R$ªæ•[(g!„ûRz)Ôþ]1Ζg·eCÆ ’ô<{êú\ÌR¥üêè;‚'Cñ}h®DA|LâsÑ,u_ïiŠ÷Žd(mÜÔAJÞÑ®˜¨±ñÕokfGXúPÆÏäÌ íV!:ƒ  °™UÙ5zÌŽiNË÷KåI_ˆtBé×1äoõ ·x(HÅM¥aJ7Uÿ+Øçþñî~ß©¹¨\‡mý Áû?8­ ;@TíEp+_‘}·Èt•{*ÈS=QÐ(Ix V5Šœµâûßo›ZnA«¶6—L±–9;“Ö‚ÝùIz9æô b+ï…¸D«J‰9!o1ýXv}ôÁGNô8„Zp‰ ©õVœ-WœhÂó—Sjo¾À}¥nÏÀ-ÕÅ÷<–1gZ0÷r[3Ÿö?zè»…Ê4w<ijª:«¨Ô|À,5lS<ž¦*Õ—Ãö¸?ZÀˆ)øÚ_fì“G)íàœoDwÅ*œ¼vc±HÀÕ»—Ý’Ca4Ú=ë Vå9Ÿ¸J³³øP,0©6†¥N»8öNåñî`§Dæâ¥þèî¶9‡‚E–Ô”EÐ=ñ¬Öñ­x[Z‘6u“ öT„\>9£:hï¾ëiuäXfŽow,¤ùíÜ÷ŠL$Š{yX\vV¦ã á$‡?1.$rŠ“¾7šŸ{2LÓþNª^öGúG’„lÄZh•aÃ:Ö­„iÍ..êÓuT&÷Z©FÅI‹Ïn‚ìý:1WÏ“Ââ°¬©õ€¶ß8ZÿU¬pÜg µ—^}5r:(‰7ÆÍiaò[›ýp92&û¼3ÄcH¥“ øÀl5Ûȧãéf«×ιÊ{eªC¸ñ– œÚ|] ³ù\£„MHÅYê4ïQLßn ¾N*Srªf¹¤n‰¬‘~ù-5Cìƒö£ ®qú«¡(]œ&îEÏ–_P{}6¿/*è9€{4vѽØx½à%¹yê=x…AÃ_„çN¼gµ ‹d‡ }‚ë9†æ\°Qn£‚ø'͵.L9Æôð»ùëv,.S ¦´‡GÆñα¡ôYW–{V“w3)¼¡£%_H$4-Ƀ,z”†y’‚×HT^{6ïv3cÏ 8^rã@aò­£¯Í‚óC{Qå1ªK¹|‹CdRÍñ3p1"z}lp´<À™9ªc1¨£­(PKGÒ\ŸDk-ý¤>_¬Ö&O`¼?Kóv!„ê‰ö|w…”£½ØTçiè¸åÈÙ¬îa÷/&66@ŽpÎUz;ËIÑÚÝK3“¹¹¡WÂ(¿Ï­'ß.ßàWÄEr?””ÏðËÞj°¶°5v·¢¢œN"œ_ 2êá]2jßÑ< mÙòØÝ¹áÄ%Á±ç®ìMn;{Ul>ÉŒ·yX7ò ŸK­ö²M#"ýàÖ\lTúÒì ÏQ@:qæ{ÌŽ)9Ó•÷ìzÓjÉ^$1X¡õ¸Zçø$)Û§ý‡`µa]<És6N궦g¿/Ž1²L­áË÷ß§Iôcž,WC%Š[BW#½ÏÚךØWò×: ‰ÿ%Q tf@â ‰zÆY£ìacÎþ]U€\¸ åŸh OQ'ǃÒdB½¶°ò‘§B1åŠ×­šï*¥›N3³¬Ã(«g”“ƒ™Û·-ÚÅQº”Ìýad®ø46÷ì™I’Ã+õÑcCšnIŽ¿Öu~’¶&xKˆé–í£ÿÈ»Á<¾_ö=½+à±]54Èn ®°“ÐØ§üzEཎ=®#£`Ìø«rï*"È<%ãÑBC¦‘–M™à­–bID¶n«Q’-Q)c(ˆ…ý[ÿZ9söl ÛöJ…Ã=F{¡îéÜZ"1«c¢|DQ0NÂËÊll(ªj|v×ÀS&QDý|ÝâðÂ4dPUVõð¨^¢(¸˜ ^½ˆ ÂHü¢©Ýáý|ò!4˜þÝ6\òAÒ:Íÿ3Þä¤ûHþ»—L°>ºc¿ù•‡sÜ1 îÜ ¸Ùb´˜–©*Qlc[õhþ9ÖO©ÚL6pÙ†ßG= N¥Pï_<†ýì=È?Ûša6]ħY‹¨Tz:Øy´¿=ÓsîdYáTVx \õ_È&WvÙ†¶ £`f±¥úSE—ï‡×Bå9TWS¶>K?r2/Åaˆ}îM¨ Ù ¬ÇòÙC…W‡¹s¬ÉŒÿ4uýÖ2öÌéþvQTÖ‹G¦ñøÍ'¤ãlzcP ßÄz~ÍÜ­º'tÖí/âþµêŸAÂ/ž°°bJ¼5AÉcD# ƒÐÈ7AÔRFèrÑóì´†Uí²6’ÿŸã8õIÿ?ëf’‡÷-¤è9äŠz|ùö´˜\É`˜¤X.š ô”D*© ?ÂJŒËïnœ·ç@Ëû(9º33%Ö_ãΫÎü`o¯-8ÓÔÍ»h*4a~BÌ'ØolíˆÀòÇ’Iù 5y(âAQÅé âæ 4Ë2Iõh¸‘ˆ!‘¹'&GÎä¼-Ì‚œá²ž«H‹óèáߟJðæ')öüçÛšþ CÛX®AlC;*”æÈ•3³s¦îß¡arC.»¼ÆλðÝ{· MŽÜÌÛ „ËCÀ @ãlÞJ$¹l¶V0uo |+Ûo‡¢æÌCé%½ eEUÔU‚‘xªåf)¯?Pbæ ÇpnõÜi ¬>>ÊcÃyëIA±íÜHvBk¥ÿ¤Rpe±JE¾pÛº§‚Éš$bß|5­Þ5Vb<É„`ÞÕëOöÊ5BâY7DmyK^€S©„ö¬+µ¢O3½Ç÷­Šmÿ§Â¾´.u÷Ǻ\ÞGº½¬OÝ¿¶„’߇–ö5‡ \ÒÈ÷-GÁLåF&‡µÔy©ì¾¯¤Í]³÷ƒ|´ª¢c§Z¹Ú7è7JD³©v‡—*ýk˜ìOF鳫Þ¡qR'Mgél"w©‚E2Àm¹Ä«¹–9È ÁÛÀN¢;ó½­‹«g4Nâ™»b¶%½ÄÜ•–³ÒÄ~ßèúæ+BMö!ˆ[[ÉQNktbD6]H-O&e’ýÝZÙÙä?¶W>–xmÒ%ð “OŒÚôcôt~=´ òÙÒò©áb‡Êß´=äÜ Y7¹½NfOz²æ·~>rdÎÔ*2…FèÉ‹Õp’ºé>x(ÃqÛ¬+¶xüÁÛ?ó÷×Ûo&ëzyÜ i¤N”ÿëz‚ƒ«œÇq’i³sq² $×2—.˜2t>¤J²Hòņ´¯\;eÐ~Œà³Íª}Óà ¬þ‘\·Ùi¯!—~—ÌOÁû:‰JÙã%n’¢"—›ð "öh…) ”ÍmÚ"M#÷õgG#Jº²Þ¥¡<–M,J–ÁN1BÛs¹«æßå^`sæòCnÚ;ÒŒH¿ú0r D0¢ÇU@‡Ó fK¹Ì©øHþ´:´4­?„rv\Ëúp•náj=ÝÜ^ã¹êä€ÈJ‹D ŒR'øÿ¿EgN&“¯«D “¿³þ}šåæ|þJY•È4n€¶X-¼oÂ`aÔ:Éøo67’.‹ÝW ~©çn® ”,Lä5ªZ v±ØFä™Ãfî¥^®ù…õx4¾ÅÀ¦-VÔ_<^¹ àù0ÅînÌÌYÞ·!ÎGåqruèjÛÏõ0Fó²Ýÿövîfêñk@RäÛ·*ƒù&A}1,åÏÿoäcë¦ ZȪ`Z{þÈ KÖ€?tuáé¤ñàƒD»V.:{Q˜ >£Ö$²>¸†{ìN=Ù4wáøGiå©Û[»»‹Ž>Ë”“¹y…!ž;ˆÛå‚bÞç9DkZë½Àw ñ}yY8§7#r6›k€½¶}Qgíà¥näÌap „“Öþ–  b*f žìvÆèd/+ u¡üþwdIØÃ{ãÊÃ…ÁvO€ ûuð'^lµ¦jˆ‘ö>4hÂUB&çÌþáá r&Zi| ˜"4;4˜ÊÆÿü"ÓÝ¢ƒAV·º(Rö¢Yj¼W×ˆîšæÏ…«ï–‘‡“¥–ÆE°eÒž;Oß ÿ äìxý±Õ)ðõÒ¯\cL¾Hk÷ŽN½<ÝðÆœã‡oí%ehQ÷,$§áË·×fÙ/Dq¡ q œjË2Þu}©:)Õðͺ ÛMçΧcµŽN4âž;HR7©žÝÁ`¨9©¹): 5zœŠ,N*ó<Ÿ³yälC±˜ÔvU“žÓy!=°Ø™it·dwÃ-ø©" ÏoÆfûã.D'rrz[3æë§³ÂÖÅåö ž{‘óñl¬”ŒÞâg|&­< ¸Å¢iÄ¥ì‘`ßC®DÒ<øÎ¿}zFµ>DQdÑaX`ú´Ù)MÿSþóh(å^mñZ0Ã,!àEÌÈ|¿®·ì;ŠîOFS`š—¥=ø Ä2%Ñ‹GX0MC^9L;™ƒ8£% 7ú@¯«A‰}+ª¿õÿgõPjP ¡ Ø\Ü»Š_YWî4àæÙC'eª]m G6@ãìœPvº€dÇëóî†mœT‹ç9×…ÈÍ€2‡¯´ø$%Jɹîܳ­³õÔß&Üå^vhõ¸ò¿_µåˆNýÍz¬  Š#i•L0®¹vr¢jÕ[÷Z%éëͰYÅòPù”ze=À^uGÉpÍýÕ &º‹‘¼+Œ´»Ÿò+€ß¼\ ^{—ÊÄXKoÈ–UišÞfZ›Š]¿9P„\ZëÕ i’šJ)µ†#´üÃpª~RUqêMY‚@‘p´A»­Faª‘h,‰f&|NǰrdPý½ˆš\ŠêÛ˜)=Ý"5‘XKF$ä€&Ø:Gò¢§Ã06ë+Ë„:£†F*/˜6äuÆNžbˆò…€cE è:%œÇÿå€Vxôzz\‚ ´×lDLÜ5Jã­}Ö4§7Ïg·EM˜EòÊXž›Î"÷›~N„ôyàì'šÔö(Š$Ìû@zÖ$nýۤ④GP‰ñ“kð:#`ã´…MüÙ m lâ)Áà€o¯¾¿…Š„l³JKÛ?bgÒ|²)FL?6^ðf*û½MŸ§GÜIrf“ÜÝ]NKÍtê¯é¢.j/Ý~ofƒU2S­Åܧ"ùwÚ °¬‹£B˜“þ9Ï® ŸC‘h@0¡!1ðð©D7:Æi8îJþ(mˆkO'°g–ü œ­!õÍÅñ£ïLeå½! ûÛ~pAg01¯Ù€(}ëçæá]lV–çxãºíF블ú5.|7»^×5[r‚cB­Ó vsM»@ ç)Ÿ_äP\J(k]G?œæ Ü)d–Í K>Í-=j’Ÿ¯):_.£ `[ú`Á½ZßyuzÅ©‘L‘ÉP!i@76–ÞG@œ]$O€’KÄw}Œëé»§ÍQ';;Þ¶»…«¶£ÒŒ“¤äKù`\°QWWÞmÑô3æÛÖÊ÷1g¤¤¯ù‚€ëº]($6çIË,9§.½˜OÐíølìxMü;’6L?CÍÕ,­Êy'ÂÖ)U÷¥R×!ÆÂÓvÞf¹Â †Ô"ÈTËH½ ´ôsóò€ûs”$å #x(”¶÷¥ ¨3‡œnàCþŠ>:³ä‡$þŸ;yjƒ&ùO§0C-_lXÀ [¦ÇÀ÷èÒVWAİî~d&Œ‡"Á;º“ï±ñ¾Ö|ÆHz«˜€>JR]Ã1ÐăÚþ7¾Y‹Ò8ìQk¶ƒóDl9ÃjdÕ’Ïò˜.-ïvrן0ü¥^ºN'ÉßÒÌÅߪ@çêœ TÔµé’Dëßk©”fõÍ5CiÓÙ­4"w^‰É¤¬Êç!º };•†w¿§Æ§ am÷ñþ•3½ò¼7Ÿ•¬Â£Ê*ÁŠm…Qû¼-ólõÿj,X‘Ž[ýú/S‰àDý"ßq4Ó ¥EÉàËÝ`ŠÝìeÅ€?—_8¨+¸8ûuº*›hý˜-C­0ÁEÑe™pü{¤j^oã)f[™ìCn&À¤¡ª0\ì¡ L×W,“,¸Jïý1ÄðYD)‚6Ægû€.ñW’hJ­áãȺd‰8.õtîý¿`+ 2"­6¯Œx?BËŒL(#Gšfƒi"4Ç ¼ˆÇGÛ‡ ¹ßÓÏâÔÏgÐfH­~3<#4ïfé¢WO'`‰F^øPñˆû´Ú¾Ì»æ1«TS7µÔUõ¨ƒ2rÓuya:ËN´lí¨Üî­¸3>”¨xuú¶¢™»/í˜$9¥jÄ'Šxâ~ßß°ü²ØbÃQúoß–!1¡Rùš©¶×D²…F—ßÐ \ÛøYÙxR0°üs mž¾À&ö”¯–ÖHÿ×ÄA¡íxÞŸD Ò»áæóQ_þRåÚþ»êzÈ ßwЉñ°uI½|bÍ/¦«žù½$¿å…̪Qؘ½ £öJ»ês§=gj¸Ú6×ïQz±_§G®MÞR>*$JþàúhÝx:yN|.ÇÊ}~fÏ[g/©>Ъt°ÎC¸˜AÅ÷©?aÈlå´Ëš™|æèÙhQÒ.CÛÒàÏçCزa¼kէϯBD˜¥bKÃGÀæ·8Y­e¤×¥ è;š”líO”ªóÐÂÒÞÿ(aT­0)÷T8{.üti@dQÕG»™¦G< épæm¹~ëï=ú¶£Í)¼öõ;™F —Ë­TV’6Êb¨-ƒ\å"yÄ££eÓm~ÜFºx2¸•nt[¹ŽÜÃYªä“éä™(»Ó$3ðú}#+Ñ‘l—•]¬ÇÉùK¸e–©”Ä. ‡ÞÏ~áZ@Ò u ÎD)/j-9…iÈ H£¢î­Ô³À#®]Ý`îbÒN—ªnÖ2 ‚XåsdrSÉËÈð RÇ<3Æ9—°–€tï«Z,».ùRϺ˜¹Ž+þ™[ ¨ S!Ѳáœ#–œ€báÅycÉ)ôØÉ²P”,‘ËhÍb.ò1“nÈEB°gԤ£zÛŒBˆLvŸ¦‚ë6o{³šùåN%y]ñåâXy-à›·Õh“~Ð=6·žˆFìÙú7´/ I$Þi"yÖ™(ŽÌQΨ8̲mKÎýVL.òkrEâç¸]þͅȲºEW©¸ ¢S£‡º-Œ?¶ö·˜‘J,™ótÁ ”4ך5œ%H‚Y¤ø½ û§1,º¤ç‰qØlV‹Lychµ–‘£Z83j,¨SDøãËú‰'_W*†y Üy(†Û↭8tŽéËÁµÎi›·Å¶_D~`±ðöнz稕²Ñ¼ã•NuÅŠ5@”1 ³k öå ¬Èb 9’´d{sÇ4´.IuJ¾–Ž·¯¬ÎD4ù7à3 ØLRT& JG›rŒrWFuÄ·ww0Îf ¹(7BØhÔ]fêÛB ™Á .n!tÃÆÍ»²Ò؂^I(¹F(óó‹_rðïÝ“ý7_S§&䩪w2„fO˾ó5ö-Þ!"AlŽ…Q*!‚+¨DH$OâãŽv“ÂÜüæÎ^åfÍpén»Õ(röÔ¤@-}·Ôíq(•ïšÎ¹ ÀS¿–¼¯Qÿðº`6÷™&¦Þ2ßwÞÍc…“9ˆt½ —Î!üëq±:¿âÞ—,I® *rK¶*ãúÓ/>ž”}¬²Ö‹ºz«žÚÁGpð,Æ#ÝÌÇ^s3K!óëën›¨g\·J-ô¦–‹ÊðçA¾P1j2omõÿ×bÓ}®a¶| Œ|\ŠÓëŒu?Ýl~¯úZ{Mœµ0ë%c¬HcŽû3s‹]ñkâŒU¶D÷[Š[«o°÷3ØæA1j„Èú(«ÁGô© hB)ºe‹|…>û&àV@~ð -nÔýÌE áKKZ ÷ÿlJ®:Èeì1\Rþú^b ö;ÄuÒ<Höæl)[z…0_ 2º˜õõ2·£j“sÞv¯Ž¸=Å–[,!íaáÙXnß|™ìÁG¶J~Úý2–Ó;Û6€³I¦ÄG‚›þe ‡k]NÒ©‰O?ž,F‰Qå‚ݱ¥ º´@££ -g:Š”F‚þž¬Ëó¸ ?Òh/N.=[pî·"A“lj@~æN4†»š¶S|Ývã‚0×tAÈè¿i!»Q©"‚¨­“Ê!)ü@ \Ù3cËN¦â&þ4Îïkz¥r÷wR÷Ç‘ õáVÐ*9¯FÝ’!™óÝ5qå©2Ö¹ ¼D2Sf­U³ˆñÑe†¬ª0c®Ég9ƒqðÁ`Ñ÷³’âCB…âÌ0Ezð¶´C=Ù™,ºìT"š»R¶¦Ý”K>$©0Ù2y+0 ÞHsƼ÷üWhÕÃK¯¢oMKQT ’qŽªDÖÙd’ð·Â<÷Ú(Ê‘ ñƒTè7¡¡lxÔ`ä'©œc°nÌ•ü•UßKt««©¬È[û¤™~Aþ"y!fªµø‘[ù |á3ÛRý4úX&- C¿3˜¶WFB‘:q¢úè*F“Ýu`V#þZò!2¤¼Á#ûY–k0ƒ\7MX<᥷æËC»Ï;g¹bdÈt_BSéî8èe…5¡YSj¸UÒÚÆÝ#:P"å”Ä`à•½CË^˜ ™Ï¢ñäèJñŸ‡éAm‰¸ZVâÓ ýAþ2SªÉ™±HºØñƒ„±¥¡îÂf‘Ç´ÆÊÉŽINÈô´“Å Ýç„XU3ÝÜ|xçàPù‰H;&ׄÐàŸîß%3ûä3ƒjö"mÉ(t±ŠÉC#îÆëEš£¾"Lã³Cç‚*XÕŒ¶û õTL1µã ¢ÿmÉå”Ì«ÈìÌ}òí°tÂl¹û÷[×Ò}éÉSÐ1\‡¦œUÌ{É1Ïñ[Ñ콡¦ÚŠeå•znñOÐpŸ2¥ , 9ÔÑâCš2H}ÿ 3ZAÆ}>oà8Rò×»iˆ«0‚Ø•HÕ` T}VÿTð?&KœˆÚ Ô!Ô¬³èÿ#x¬æ @Ò€'@ô“Qa*¤ZYÝ[S¶H‡Œ¥%6s€î9…¸tsÐm†rú;jëûìã¼ +}«ð¬þ_+÷Ñöö;º6i¾*·KKú, pâE[˜½‚¨ÿë¾<⪀kßpr³Ïüd*×¥×¥Z{_5Kœ|´DÑX¾ðŠe”ߨüŽÀXA”B1ëÖéµPœÖñ뎮^cgEû=j‡˜T½@Ç3Óaå=Ç·³n9ùøý'ê [O%M =ÌJtæª'>46ÕÜÔN ÷c ³‰Ó¹åü™#P{¼"Ç™ÌÊ«Ö Œ 놻²-A?^̽´`߉+ö61x‡BŽ8½2Ф÷óX»mŒÏ¾J±uÓ(+ûàlg¹î…^Ç™î'3’õ)œ±¾¦M¯üÄ ¾òë%OÙ›=<úQ«–푚Âf—ƒ@S/vÒÇÔ‡Ó¾‚Ë…X¶'¥Öú6J”µfÌy´ìÍ|8[pbÛn"É*žÎy¡×:aX%yõìî$Yò³Qmø­ýD?ô\Dä£>†uT­ÔDà ëZ;Oík²M ÎÙù MÒö¿M°54ÓËB9B¾‹1òó—…rªD;¡$úö­§ÏÌ‹ÝRãhÍ·)¾1­J $ñF Íô¡òx»õ´ öV %‰¦0iÈ9‘ü&·.à>ÿ@½E³M½geoùÝòUæ¤j¡š¶•ÿ\’Uv4±ÑY㢹 Ÿ•nË%Ê#BDç(&,eÓ:ÞÞŠ‘*°½èb¿ÉÓÎR-ÑçŸ×µï Û ®úz"ûú·Ô–žÖÆ!\føBTGÙ´µöìq¼B¶¿ÅœºÇÍ\¢¬õ·Œ2p×ûàÓEDô‰_¹¿WÈgga›Ï†«àø ‹7N ÝÚOZÔgƒC&¤ˆ9¢‰Ã´ÈÝ<^wW{.SYYÒ*ðb…Xs\ÄŠA*HÆ  jÑÐrŠ¢Êͼ€IR°n|W#; ióŸ6½} ›çSñÊ»™+›«¬ÇTº‘ ‚û¡Èˆ@ÿOè ˆ|¸8~[c¾7ÿÞèãØè2‡ÿ_˜Å$.WkZôÃþyÄ ªŸ”jm/arœÌùò&S\,#?›RMÍß<óY6vÝ£ýìÌŠÓC¼Ú­×­O×pœÄ¶¡X÷㪹ç$[¯Ò`ÿég`FTÁqÛ éo‰ÊJüfkßß Â6Ê?Hñ®Ö»Z޹ÓÈ(==/#Ñ\r?PX)¬QÇh§¹l¡'§®8ÓD·8£ÒóqP¯Ž]×svi§ðÚ9?^+7v¸tKQáaÔÕ‰AY´1¨Ì-RsNEøÛ!Nô¹sðç¦ãÅ‘ˆúìq¿ž^‰À¢ˆÂ–RG’õ5 5öœŽÂÚ—á -èš]̪ÃÕTÕjxîuºØq Èìe­.ʱ"ž×zÛfuOÐ ÁΉkW%w O =ªYí×’ÅåiŽE½ªØ3Á•¸‰1þÎì,Ø*¬¯GØSÂçf60Ô߬ ŽpâäCUøD 0}¤òI“×ß®¤ˆ°2ö*•¡mÀ·jZæÚ¥Í}›³°\Á½àˆ˜ƒx›@!¯Ðß’QkŠ5¾ÉŠ&‡#˜Nõ_¤lfqàŠ°~’œ…l~ ÝGbVQmTé—Šx 6ΕÅȨÏb-#õÕrŒÆoßÈï‘èêÖ×X8úŠ‹â-Zº¤ ¦.¥:'Û#5g‹îF—')&ı'ºW@¨Rî‹­Udd¬íÕ‘õ³-2‘ñ“„P%ÊDa^vÁûãýÌÖŸ‡yzc>µzGrãÍÐßßÜ€VÛòhl¦óÁP~¢9­:kL®Þ«Ã³…%Ÿµ]òsÌŽÒ8Q¦*M7‚k~î'è粩ô/{}C&oN kû“·SoÙ[fx`™ñ·;)Üù°ouóZÃÍck,Ô=° ×t©hƾ–ùP,åAY¤¹M.†Ñ^—.ƒ@Ž&›qµ\ e/ îšÚú†ñœÝxÏÃãú(—m-¿®¡Æ<âóÿ\ÕUÌq÷µ½xˆ_\ÿî5‡a+”Vý*H3ª:[yÇÞT©‹éÏÍ‘Y²¢r+A•»7L–h“ñ;”a!uîË"§œ¶Ìt@¥¥Å5 Ÿ²D˜rßiCWÆC€¶]–RÜÙC'³üÔ̤|åŽøµÑz7ékå¥ST//ô®‘gKFiÔ¦.^f‘4M.½ð’u 3† ÿ¯· | ©µF^…Ö2»?mm©3C¨ó—ª8C O¼sõqØÀ)µÛמÏx‹˜n7ñ×"¯³î|§øÑ…-Ç}Í)/ƒ›„FPÆ©Çz÷Ž1ž þg )ãŒ' 2䀶hÔ^*ä¬ò$õ&݉Ùç}Ù W­l¿Žû—î §TåYj ÷Cª”Ù oÖ8R›-Ä×kç¸Iå?Íb.Õ¶ _Cçb¥ãsÔTµsªY´H¨‰ü°„ÖÖ\ûÚñ’qlóul+s‹”b­Á.ÒÚO¨JÏÂ|‚Ó­ûùt±’؉E”2dÞ€gàPÜà (7ÜÛÛ&lyRê«nhÞ³@Ö}Fõ†º²»£+ð1zÙ.B‰"»ð°}Ý&Ç¡ðMŠ1®®>àåÌY¿UÌI<¸—€-Ü ? eÌ?L'Ý·yÀœâWÊÏK‘ž,ËŠ`Rš÷{d|‘ü _çŠ#¿,€\M£Jvë{✌/+l:Û+#íª#†üJ±" 1 (¶é¨+…€nR.â}$JÏïHj©À±ô>¬Ï õ¼¬K¢ØPãP€Hî š @6¼q-Ƀf¬×DïÁG“yËö§¥“µÚÇÛ|‹“,c´:ä¾^ÇסoNf*:IA¥ë¨óÏû'.ÓaCL*£˜î®ž¡èè{aJ©û°u öß«µt÷50•³àˆïxóÿ -ý¬Ö_Ë'LòÐÌfVϬ$ ;Ú-ùúœšÍˆO9UØ'â‘üÚìLECyÓy ™jù}©ƒ’ -z…+Œˆ>{„vÄ÷]Á»*;b±Š€‹ú|/Øå5°ýˆ 7(aðÑ“Òyþu0>v=ýÑåêJ^ÔGS¶!¶Ö‹63íXô›…tËÌV9]‰}ýè<ň$´pLÍêD”­Óß——Nû˜V!Å^û7 šý¢n£ÖE—°Ðòh ŸÄ;çžiõú×- É<±"³5¯Ð{dg—fÐ6?3[X!ËJOÛU[^4@øžx$yeÇ"!áC¥‘P¡=,)#íÖgˆ\µbÔ'p8‡©¥ÏýÜbŽ*¨d‹Ö³ úá<ªð!±ú9K­"ÉÝÔ›qH»:ð©4c3P!ñ!N¨ŸHj|)Ì3À,7ÜX>‘€×i®V_|Ì:éMkPl£z@¦o‰¯«TnÔ8!ɽÜR²÷OUXjÇå*r††WkÙÖ¶ZèpIzê‹BD@ý‘°8À­5¸îXä€TkörÇ À®‚÷œüáüÚØ©zD|–µñw÷Í|CÊÿÖªL'²¼Å¶«©~tû@/÷;•zï Mt¼)ú X J?ä£úi¨7#€ ’ª)o†Ä À  \-ªdŠðJ¡ë‹Ã^D_%òÖ‡å‚gà ]O S«j>ª¹¨¦ÔŽ€ŠkÔFÂðK†¦ê"–?’Ƨ¬cßÍ"û¼a+:!!Ï@cųÏËÇy”&|¥Îw)Ì$|±16* 9÷Z€AåöPÂÚûÙ“%>‘“åO>^™©vB!Îyç|«vñdõCÙ¯PÓÓ=¦fØx­„ÈBV¶D‡Ã,·<Ïlêÿ‰p˜ Ÿ|›pdÄøSžßz­ü]ë³ðz?!“D}–C»_ªeEW– ¼Bc}¡úï¼#‘ÇÔzy“ôú.%Gã€Ñ ’HZT׬µ“Wx*‚06Ú9-Ô¤ÀGFGO<^N–äàj‚¡à h8™ÁïÅÎC«ñ£zFÈ•1ó.;“$$´þ¡ÐNð%[È‹Ë:…¯³5_«zyø4mtõqí`Cëfg!jì¹w^‘uû ÊÁ^΋‰ Q—!¿ÅÕ—y&Ìg²“«êüÛž-Pˆ±&Ï ]ÝT¾ '»£äy€Q°}-—~û޲Mß®OЃ0ûÆïÝvãn-[¼Œ¬yJŠºñèpø‰Ö©‰DÂV,Èî5›Z(Å—„ŒóGìB$`À‹)­Í¿ÜM´²ún’Ïôb•\æ©9kBµ]7¤š@ÞÒ¸®ãmP¬9,WúDA'´H 0TF@õcC_j™†BÞW û¥¡¥Sï}½ëCd7æâÜæ_ê‹RƒA$渮+’ŒOö”ÿ=äRj1å{¢!% œ‰½·0ž">ÞˤËx‰Ñx9ïÞMz?oÏç6ÚÄ)ä†BNZD±¼ Ó'äa—$pb|»¤©l ¡ôá»>wº–7t(¢§­÷5¹:Ý®âZmë°t±ˆxo¬ źu‘¶¿³?‰ ¢nQbcLJeÈ*Ÿ§Ä[|îŒ!U+4ùK‹Üúz]很£^»˜—œV?âGæŸÌæ¦ä/’¶ËXD6Þ™¢o­Òx­^õ|-dáKqߊK+râõ]ŠÄ;~n”·¥?%Ë‚ùu/«)AŒÇð{ûŽšÁ§ýá%ØŸdÁ¢ž›HçUö†,O.õH+%M TË6"XÛ|ê_…\Î\dª+ˆîñ ܦBýx:ÉX¾…ÈÒïªeRÊõܬXµý s?EŽr¾Ç4—‰Ö GÀèS…ü‡9‹ê6¢»ý§D“Pߘ"sf”!Ìïó .Ì»Æ)ü¾ÁÕ‡f1éÑêÉ’›üË\(2¨÷9`ÉäèøL5n ëŽkî‘@¾¸¹¾q,UŽ64“?íßÓcãõkxBŸ4²åI3Ú‹Ž4âyYHæs¥¸nsi˜iXû÷cu,Íÿ ûŠ0"qÛWÎowáãË^iÕ»íP†z(À‹d-‚/Õm·š ©íPm|»x¶‚Ý•žÂ šˆp( ´©ˆÛÍšÃQ.íggÑC*ó6õ S¨)óÆDú'$*Q4.9ÅäZ¯¾5x0’”„©àØói Y:–±éXÐÙT3Îä8B«¦÷Ð[2Q|Oí}dÈè‚(§júL™Ä”-Ë¡¦KÆÉžô¶ÂýÔlpÌ!&ÖKæ3]o—~ ¯j ¹J~´uM:QÂLÓÕJ mà!‰‡Û«²øÄÚÍŠÖ]RÝs‚fÈkä$aÈêˆE’Ñ"ê¦Ç:Z’µ8§Ãé: uO¢›ÿ"@Jú:O×(rB¤îoÜwÃ&–‚<•|´Á —ÏëEw)ËTÜr„ÖJ#HJMCr†¹BŒ-¥XZ;øލJÝ}cx4ƺK¶þΚO$_{˜P#8?çüzàßpÚñÊÁ'e1ƒü• í+”P–ƒ¸NéäNZ-ˆZµÿëÔ •1ß`$àÒ•}ÄŸÐfFoଚ)¤±Y[>ìG1Š  WÉ—1™%,ÔôâÊ•‡q}M_C­¥–´ êFzžHÄC¹Ï^Ëä³Já"T‹¸í-(ºxÈ%*ä›1YC‚(uJ—°+ÿ,¦¦Ý ýDwp\„>ä1“ªXõŒeATQ_Ë&†öQš}&~eãñ ÂçÿFê©MD‘*ãç9™uä¤l¨»d,·sãÙ5ñŒ;‘´`é¨[µ 54æÿ›?à šInyœOÒ2¸#å…™w›Ù£¢ NÖDb=»r×þŸg?U.DÿO‘[áXC¸úËıå)E&¶ŠmC¿`„–Ò˜6šAä3*‹í'›»2ð’Š J÷ˆ—›é±…m‚çPÛè?«÷%Ê{v7õºÛ®©ÆÉ„úh昺 Máçθñ-(†”'&´Í^™üu=p[™¾mÑ#(€K`íw7Y;WKR –ƒ?„ÃõÃûAšþÒÚ‹m¸[G «Q pQ±˜^€Óòu«¬àc‰›kñ· ^¶þ˨‘jÁɬ”%úÐA]О»IUÀ@†ïWò”»ÏÙ@–ˆN»û:ÑÄÉb˜SP-Ù• bÃ[!“>@³þ¼%Æ!eÓ7ûV¯€FïZ7 n“Û†tà¬WK#$‚ã1áÞºÁ¿ò̠ݥ 쬗µòM5éÍKž®«™I—s挨¯nœ'žo M’ 7ÔÃ=9ƒ…Ò!xˆJƒÞ5í8&ÀB»ÇÇ/ á¾NZf5vfÒ1I.Éì —ý˜·B–}úîõï²ÒPEÙK—­-ó;÷(Ô6ÆAšµEñÐNáWðzR>JØchƒÔJõ §ÓŒ€"›Eã;>¾4'¢vvüH8]bˆ…9ÍRCÚ$͉–ÁõÇâÿ?HÙg“` pTBei‚Ð L.Ùß0Úðª4é[ëíÔ‚±’Ü&o9Á¹ÿõá[ÇW,¤ Çt%Ã!Z joG&10DÀ÷ÅFRH’§ýP&Ùâãrqª\³÷v•…VÏ~ÛW㸵9þûSXMp°¯IjùÉT)2Õ: ÍTÆ\¯ú¸¬Uº‘­Êù&°¤âá‘¿gÂ$#â-sMæÐñ}ñP/†þcl zéøg¿­’Qg]%Ý=-æÍ3Ucl¼gg N„ÝÃn¿Íb”F5=$ž@rSö³Î¾~™äÓ?'À‹Æø¡Ò;¦©À456Gô…ር\FϺâˆ~Æþ]7+ç¬y ¯eÊîÈ ûªR1¯è+ëÇpãQÄóNÜ,Io¤ 9õ@$žèý4ÀHÜ/J“Þ~Ÿ§Öé nUaì‘’YyDIòˆ#7’ÍDÌŸ|¶Käu¶8êÑ]|ºrªNvõœt¼jäК‡—Sëà'tIŽQç+(CÚ’ (’{¥ßð Î'+?kÂÅ(|ùÈ(Wä.UA¬Í‹ª­ú£ü”|óD#r©úNd¤ëÄsq@Âu•°F°Ñ¯þæYï œ:ɆX­Ø(ʶŽ÷ò~ü~AÐdúP8ÙgGsd}¡êZkhöQQáó/ƒÍMVlg7ð¨/mM‰ó&!85 7Ž4¢!£Np殘(Œôž® dîv©ŠèY¡š"‰é†Æù­Óå‹_¾ô­- ³øŽ£É{k?é§óˆÎIœ‡3>ÍÿÜ¿Òh”Ýü¹x€0€ç¤Û(+0>hp‡ñ)ñM¥¼þö>wÛ|¹éý£`þ„Áí»CÂôë§õ¿9ÏœMÄ&‹ |dÝ+\vÒ®$ü‚BÕÆ–‰à‚¼=›}ùϲ½»0Øð¹êbgú,H¤//ÄǼøð\lë¶-éÙò5S;šsŸ­îØ*f›m=k‰‡Ð™£B`µÔ÷Žy¯XM{42§anx÷ Æ`r)ÕªáâÊ…N°í,œäˆ¢6@žù¨.ˆ¹ÍÇxÊÈUðÐñÕ#!±°ãÖøuZx³§¢˜g†Ø áµ¶ts‡±J,ÊBƒÅ _ÖlhøHîÔöI‘te}/d-ÿ%.ô­™–÷ÆA6ß8þˆgOƒI',^5­nLžÐÐQCS$‰Î8÷6þ0zÞyõ0t/-±˜KÀ+¡/µ•͵sœ[‡–`:_<9ÝžÜV8aL½×'™=Ì8p9ð]§{n™ØlN{@VÌ„<¼æ>,èvr¯¿×àc‡€w0N¦îûÌ™g`>U÷Ÿ0<~Ðn¬qõû ÖÙ”yúïTœ>ïdÉpYeÊã$}}ÈÆ­Û_εõ¿Íæx£Ø/d©2»ð8X€šY3£«dËDI¯ª´˜E¼$t7­ÍÁêÐ-åy ¡™Fö„”—¢Òªî,¯ý¾ÙÛ¹NLÙÌ@È5Õ°ܲҔR¯&‘è!G¥(£ÓÛ´5çà ¤¢5!vqIŸt°ÆãJºEŠZÛ½!”|·Þ,ÑïÜYq)2€,÷ée‘ŒJ­8±kùÅO´•‘èJE}‹çö‰ V©P¥Uô¨eEùC–ƒØ4w¢î¸“âß&‹B±˜ëOç`µQ. ¿r‹ ß¡„LEhÏSýfLQÅ„Cº¶¬&ŠJò¶öö×ôc¼~—2A>¡nŠ3é®õT7m›æDcÝ€ j9Å'"rûåýPM¢ä!4_Eæq!y2+ Þ8l³»mÍÒ¤Ag'¡ ˆÏœº.Žwž 6\ÌliÊ×Þf®NÙ =/÷Ø%8oÒkͪ§¨X ¥­¤DÖãÛêà‚Ê%™¦fÛZ… Ô ¥î¡¨&œNhò¢F5û1×W@Ïd®¨@’×ÊÛ'É]N2–Q—ÿLÒûÌ)Õ'../ Ë«Z¢ãµ+ô©”ñ‡ëf¦¶] †>qøÔCfÑÀØN‰°¡¨P£Çy‚п0낇=îÈ`|ˆžÒ¡†¥lqÃiÜâúü´AGDŠªô÷¯€ïªT ~×P`Ë~‚äIº¦‚ÛDªy÷À:C ×"ö‡È|3ûLÙ›©(òZ ²¾õÕ‹ ùˆÞ{˜V¾629î¡[#k‹ÁÏ+" íŒFÇÊ÷å¹hÇU¬&£ì-‘ßËwÍEÓ$®SeÜ,F £A¯ž›Ô4ëbdn r ¨Ñ]Y<ᬉŸ ®óñß S}C€Žª—C`Ry€0òëøFx)U±q>‰ôú)RyâEjñš±&ð˜¬cÞ Õ›“¨ CŸ …‹UéqFE%å|Iœa`$vEFä=ŠÑK/Ë“²„OŠx1y rôD|}j¸Á®†)< ä횤öd†‰o{¼:rñð èLÓuàb¢X·«† hðùÚéõgvùöJ:&=Ïœ8"ÀE ãâ%s‰çnÜHÓ:¬õiÀZK÷PÎMÉtƒ à7ÑôÙˆuG ÝVÚu[o¶Òbw8£¹Õ¹•a8ÝœƒõI×kU|ͤ‹y±¥Ãº+ ÷yØÙw[)úßÉ~Y|I£_jåˆ ñ÷À¼‡É§—\pPíÚŒ‚RRój˜ž¦"É;c¬¯Ç4Îî˜Glr‘³¡>¥<è~ã8:Ø?NVjh鹇¸é}»Úìú¿ñðšñ rFKNe¬”- ÓZ—}$¸<°ôqÊ”Á½8iT‹oÉl)˜u"YF¯ Éú½Äß½ªËÚåÊuâ9¼)§°‹)¼@o9~ ÍÁù<ºY>[¤öž¾X,ðÙAÍOxŽp)‰Ñ‚Ð6­F?k»)Çà}%Q 86¡d|´!{•r2ãtâUð¥WHŽËzÑdµÛ ª˜Þ¿VÓÑâî§í^ [ÁlE´±ÒOï]³5¡²¾0Sl0(ÊcD[¤á­ÆÒÞ¥ˆÒÓv½pQò4¨7Õ|[ŽÈ”8K¬ÛàZ¯žé ¦`¡°Éâ8U›}#xI¶Œ:ò”²=«'CF涸¹ñ{4i‡ªïmÞ#?@è© 5ÝõqXÿ'VáZ]ÅØàŒ&Õ/·«“.Ó £rÿ®ƒÈ.…´Í²”ظá@UÀ#hìªJ/eçv-ô¥­SÁ!ev`©óì@3AöÖ烷c¶ÉEcàH;ylܵ_I)Á7+íîÑ‚Œˆï'8ÚÚvÆhu«MU&5K‡±‹/j|”7|«‘A&½Iø[àød’–7²m¿0¬˜T&ãc˜,\Oþôkíª¥f4ŸZóÑç\,,E\qèÃÃ+¯ÆŽq¹êê§,×,z0"¨Ñô¥#bRÁ?íSÅZ´³<:¹ä‡kXÓ¼ßc¸V SR•72’¢ùQMÝ’mÞo¨Ü&¶Í­!p88Ó75tЫ‘DT%Úú¸=XÁí‡ðÃÕ"?d޾º¼®Äжe°e ¿þ[†•Ø€€sÞùœ/Ú3¤# ù ´÷E@gô5¦"͎׫ëU\UTO¿elÊF ÆyǯôçÓ¨Õ‰´§çßòvúɆ“¿`È ¤ë;½¡:&X…¬[ap•+¡8DКŒLTaé5ÿ)èÀˆ‹ ®ËÚ J¶„ÁeQ`‹ÛÞ¤›ŽKÓ÷ž"ß]Âü“ˆ=Тïê\òç’ó™ŠòRwáflŽa “/-`€¦âÓõשˆŒ/iHú0é–³L£gz6‚Q‡‹R ÞŲo 9ºÀÞè)Íöæ-ÉÇÉþÞä¾é9ëTÅ1Œ´=Ve’ü2¿ÐJ¾ô٪〠+§Žþ»/æŒh¥ øŠõšÊ…`y)x’X²°í¬gtL¨ùáG"Àg½t¸jB¤Õ&µ}ÿ§€“°©€Þ\ªþ3f†„qÅ'ÜÄÏF°Æ&ø"ÔÂåä3;'p5/ëêˆ/%g¹°û÷\ÃXiËLVmÚ¾fyО sfJõ‡¥·íQ›T`_¦ðK;b œT¶Š^ÛL;#ªÀÈOñ}V!Ìc)zDUyyX@YŒ£óx$ÍŠJen4!ãã²5C‰Ñü—•_îµ¼˜ Ó£¥`Mœ{*+y^Û#§x8’a‘6ÃùïÓÕ4‡µ&6UxÕBÁÒ®J׊0þõOǤSW˜ˆšíD¦Á“{º¬`_š×f÷è9¹›À6¨¥¢Á%|ñ ¦vióhnãæ¡‹ƒßRæ&3@L©WDŠ6C§ÿ€§nü©¾Ieºúvš øWyT’Í%²Eܳ9Sçµ ãÖ·,Ž)QZ Gé¡_¹;}(áD¤Šõ¦ /–‹é©»jìæêéƒzÒÙy12 IjÚK ¿Ç8ùŠÚ ëqn­°!ž?uå‡C¸ºðpèÝ­:¤ˆ“QDÍÕšJÙ÷6ëdxxa5*’f\w}åC±÷Aa\à¡=ðZæ(?“(%°×Ë4+ôÔ`ÛÆ¡áôâͯs”‚}bÊžDUëdÎDÙeã$ž %:ÿõ€}›É ̱Øë` )ß0Fåœ,ÞO'4çDþ†ýäí鲡R•l¢Q”8Ã4Ý!nò}Wl˜dw.ÿ6R©QÃÖò$I.Ë}Z5ªóÙ¦šá€¡‹¤±dæ™T|F°ìS³€šG¸ó9ô[šë .bA4/{…Âï¢ñ¯[JO½Y9‡Sñ¼Yà@K5tø®ŽWðHå,bñ¢§ÂúH6oÍþsS?Ñ[ßÝ҃݉òTG¯&¨ ²4œÅïÙ»Uœ«i™Žn»Ú)#„Óĺƒ÷ EÛ¥ ZsKOeêâFRü…Ϫ–¶Döß,»‘ïØ‡ìüëè»Z@4{ÊÆ²€¿ïöH;­ð¾Óo8c{ÃMì“–)w•œѶƒÊóDOôo´z™skãåé~–yß…×3[½ÙÐzjh¯÷Sͼ”„Ò~¤ëVRo…^¥qóÈ¿3ˆOP ô6L>£\Ó‘£—7ÙÙbk'dƒ]¯+ ŒŸ£RÜXR\y’Øê˜•Kª1*ÜMòí¶=.Ó¹c’üå@>(ûäh½÷:r·…‡Þ'“Œ4‹Ìßð0‚Üó¼lUÖb¡W¥˜Ré-&ø ’­)`œŽºòàžÎ#Šã"ʦ•Åù`C»fRÞ0¸ØL€ ÅRb>«•ªÈ3¤!8†H }´G²cMÎ Êt"{]eÀªßyÊqiàJ±“`sÙZ6ÏÂØò#/ýx®¯ü¤)f‚Á[%ðÉðN ^Ñ3 õqOžìÀíqA|sž™é)>)'•pæ½g¥&?ˆa-Ý{ëÈêºoÙb ÊO¼ónäóSª²7=$…Ù·æþæq}×…Ï¥‚tsÃp ýrɈ ¼ÛmBX°Ÿüñ·’{Š1­ÕñL3¶ÿ¾¶Ôù,’ä!Œ!Ü-Ï÷ÂH«ýÿ&UÓ ­ø°;>&.°ïñv“LX—iY‰oq¤¯ßÉ›§i‰Æ 0fØê½†@’éÌùU£ü²¬Uìدh=„OÏ_ ýí3P¦‚+ÿÞÆÇÞË}“ýTÏ9w}M‡=úç¡áËÿûØy/“BÔÇÖ®š+=<©¿Ø Ž'rÅlÓdÁ²õN?ÀaÊîW‡ZMíá¤-j–ü¥™ÉgεîäR[”Ž¨Æ‡Sû}EâÛÜW|#ñFØ}€Ðß“kêCq°ý‰Î¥÷ø¾4ýÆ8Ó„‡*rãCŵÄS½® gÎb_ ë/ƒ(Ÿ"ç¶P`k\8ðö°Ïàžÿe«HSÊ«ñ9Ù¶¹ØÌ+%Z’OårmEG¥ø›7‰:iñÛ†]aJðZ{– Ôâ¢êÞ3$›byGý}.ñ–bÖͨï…ßMíJÆ%ŠšV ]ŸRÒ}!¼ÉÎJ&^ ΚÃoºØ&dzL XÑ-ʽp‹› 1ìNèg€î±8€p…âÿQêa$0Ý/œ$—Ö1I86àôãÃni`´id‡]uËR·¢…XwƒœZ)\h4 RÔÎr¿öfûx.ö¿EÎj1žõ+Êäw"ÒJ³ØÝ!¿æº½z!HÌXìxú¨h™85Ù1ï…ºrvÞúP1é>¤Tc*5JG³®iÎú†½‹ñ†z‹§Ÿ‘zÒI¿ëá *Ñ,x¡áV…­†À22[?K^ѯ¹x“Úr£÷MAGP˜åîöwþ«“b6$üMŠ&ÝõÅ^Ü ­ó ·sÖéx‹ø½ÉŸ|SU`”3óLSõBæÙƒûî—“#C÷…¨Þ ?Û(‘̰ÕÓä${Y–´¡¿ïEè "Ø£¹1×q©C¦&‰úÖ¨ªàMLŸžbx8ºƒ¬»iÈ­GTAqzµ`Çæõ0?|–3ò°Íö‡éT¹Ï{d”FÌêM霣]‚t—àKíƒg+¢3ºUoÖáò§ày˜]ë¡©^í¤gEflahÞ¼•U±ð‡¬ÿî¹S²*V½Ô ³Á8ìÉ]ÏjM{/A‘ÀûqQe*GÝ·Y‘S›‰Šð»º„®ÔØG.‘žó*ÿÒ¯´žÇk†~`Ð;ìÙžF>ål ‚bûZ®Ù¬¿–ëpi`b!ê›WƒAp' Å £ímeUÉKsm8MæF¯¶©Ÿ,éOg n_Ï·LHš\‘cSl¿”Ò¶‰UöÙ%yvYBȯ>×âÓÔÒŬ%P¬IQkÌqµ£ãûUŸ {L€§Iƒ”‘m_Rr9 K¿è˜­ÂçÌ̺…Òvš,´&(S!SG3@vL­:|.xQsaN5ÁöeHYcß*nöu·çR®_‡\_½[Ëþ¼APoðNʉDò&μ×>÷¶ˆ"7X€ãHh¦:–pü[)å|¹§SÝ@6‚)£•ÂZ ð&ö]†’Ègz|骑7£!œ?XäÖŽÕç-ê5n“ô=˜šr—y%‹ô{màÀêGõû7ö$atä^ñ[ÒZW޹¦°Ö¡X( 1B¾î³w7P!‚MâÿßFó×$Ê—pbNŒÅœ¨˜ïÆ;RiˆGõfãáoüñ7_cYM6årë„‚ïŠ9üQlÓ2ˆ‚™å¥ùã›»-@¾çâ7ëÿ˃EåZ–»Fž4}ð‚˜ž¼×ÂãÓ–—S9§¯ sƒ³üT„pks:n±®í§ôÿšºÜjšéqWŽ‘ ו³ú[=¦ÎHªf œÕÐG3: ºîœÀí“Ö"hl 8…šõµ ¢î†§ª ŸÊÌs³Æ\»õƒبñ.Ÿ}=šo³~I»6z÷̸4ƒ¥»Ç‘mR¨X$ŒèrKþ|´oˆÏ^D õ\?O¦HR&y·¼‚©†)U‘¬©µ˜#›[–è†U)¼éÌ™P}¸x«ý °9¨‚åD OûΙøÕÉÆ‹3²!®­';K¨üÌ´ð˜^Õý¸»MwŽFL3þó\sùK¦ùf9×îM¼­‰D»›M+õÁÕ§]I·IVùÈŽý 5›ö;^9oýù<›ÛÀB9¡“ºó™-ZP²gùެDœ¯ô„:ð±îÎᬀÔ|®€åõËo¯g4<gZÒpå>7‰4vø{™^«,c뜚fC#ŽÅu¤˜r@¼¯¼±Wð·:cý §WÊ—¬RôQÀlq£Ýeà­ XžÝØ€øÍ6 ‰¯–Eo5Þï!œõ‡,+/«X‹²JÚj× ÈÚÀК†q•ÈòÚKfÈǶ˜Ë<$µùɆy©(ZR?ï] Ñ ÐºÐU|bù¡B7=P~»ÕóeÀÉaCöSþë2X'üf0=áÛ˜{`^ vhWzÌ¢˜â‘·-'dàVHÖ˜ Ví£Ôð <0ÃK¤­LâœZ[à”¦”Œw†uDù\ÄÇÅúБç›H½‡òYpË%£S_*³Pé‹·¶Mæá°ñIBpèhÝ{Qd{%úN ]ÌŠŠ)ž×n|5[‹DGí›f#¹ï•" ‘‰¿~J¨Ðˆè™úîZë?ˆ ÿš‰Èð›?û°¥.lòEEêu™iO¤V¥—Gµ[Œ/ËH©ÈüØ+ŽPé¾BçΫ»cˆäA<•^™µÊC«åÞž{ùÊêlb_'«šÙ©èt ?= ô[={ü ÁûTeùûWÑ n½Õå:«f¥óï=O¤g\ÞuNï—<ßÚ°-Í$§Ç²5Ÿï%Ykš¢IϾCò:sްK›Ã:ÿ Q›Ã¶¿æ ÎRódA¯á2IõõjŽX¶—ñ'Ñó§¶]F(+·Ÿ×i ŠiOÆ–¸>ϵTg €8‡tÔà6,¸JëD†âÆåuöDñ³D*´26ýÕ0ï‚™_÷³ 纄\jYwÙ»ó~Se‚éoZ,Íos,*?†=§îʤ:÷ c}ÛŒ9óÊs~ÎÜÎÿÖÅ4€÷Flšln'TÍc º(Ùl: þ‰í•Å¥–ÊÈÝ †5$FG!=Bänê: »øºp ø-.À ’£)îÿ·:Ä8‡‹»!@÷u#ˆ6óö€ÝµvÙqçîúñ9ä}OµÌ­ dëªÚŽÙpuaAN nAoØ›ƒï3fo̓S°ãªŽp…:›r'ÏLC}$„ •5˜!£ôð¹Íþ`(?öæ®Ó¶‘mrôœï} >ÞU£™Üî`³{öǸæ7ÖöÄ3OP‚Ï#å |­Oæì rrøÿÙ™”"F]Ö‡0·•Ô¿µŒÏ65/>ñ·ž.;¦ƒ}Ñå5‚‚'Ü×n=²×¦æ®!€™§á÷Šfè6×8°æÿ[ç"NúÎL é"h¯dýŸ+X0ó‹á”aÏ6îx“{§“fMܲóGqØÊJ¥F×:ÉI€¦r†g$¿t޹½Ž ‹UÈë=<0³$7ßkQI—×3×H‹Ç1Åq€´CÇ“Dý›÷;#ôkj^&úCÚóüÓ‹K™ÓndXÀÑFÌGûii«…½î$NÚŒÀ'\мtüv ¦’a»ÐÝÐSEŸ³À:v)äÐ I1ü,ÉHžl4G †é\ªñþ’&Óª†³w:™§´|'%1½•ì?».']à¾æ»—lJì–É|=I8Ü[˜Î™²ˆ5\<[k`ãòQå.Rù­M9¾ÿfõã§Ó|ã_-N©8Pß(é8ì$"ݶ¼vC¢x¾í!úeX¦s+ØŽ‚»n K·pPúy5w!M‡¿}Y½b‚êŠÉz¼ëh…¦¡±JVˆ B&ó¹컂ª¾Kâñ5QS¯FS7¸…@¦&ßzÓR°|¥Ñr<)û7D–lL@{|2Ù™ß#Õä­ž=àŽ:–èÉ_(žz.EfO®~'awÉÕ:Žy³g ¶œp/ºIjŽ“&ÛÏ¿…4H4£¾ÀB¶vîÞÁ¶=_:S1\ª P‡˜H4k+ÝÓ) ·´ªù+¶6eNe½¿)¹9ñ³çoU]áÇqËòò­}4]ýì.ÛÞ:õå>f72‘‘AË‘xyfá\DÝ,VR»_Ö•Å>­¼ríxcÔ‡Q[zÏ~Í$2Œ¬%ÿFãZÅTzGzÓÍÖOþïÙÿFÁëŽ&z6p³µo“j¼Îxû`ýæÜ6¾Á§§þÒ]—»:Þ½k¦åV‚FW×`à0"y£~OF•ò±¥ `1íDûÅ÷£ƒã*zãúR‘Bá½û¼î:—!øB[0ÕþØ#rW¾”O…þ)¿7äŸ pŸâ8¿­Ã®û¸ð½¡„3á†Q}"ÞjÄûB«šëÊP¾ý ]WJk àÛÙYSD…X´Bi„C?&]ÞàûüëÔh:=™avL1¥°Ã±QxMéÝÿ϶­nÀŽ wƒ:UVà®› Z?zs»nn|#ùx„ùøÐwñÉu¾æTéÏ›*ÑÐ î«èuj;\˯ÿÄF¾Déà’s›Óä|›Z˜;…u2Úù…fš¦Zì ÖíӥʬªÝ”o¥¬3õ¬8ðEHr¶e H²­ÑÛ3Å'Û¬ª H/é’/º!Àž÷0…6þ§3a¸”ðM|ñ°6"¿çªß_Çó3bObh&_´X˜Æ7øñ“ønAˆmñ“¼Ã®Þ ×a”X[€HƒÜ÷<úá;5Ö/xŽ{Øt§j“ {a!«¿ ¤QæÚ5hÔè™Ñ{^eeϺä:’îÕG0ûžØ¿ma¨èüZ×Ò¤¯ Ô§>û¢ºø~Y!ìtwþÇ_ÙÒ½h9Z·Ñ‡·EÀk¢$«ŒÈ©ôûÒßÓ×—Û˜®­„C0 ó#!ÛÀ:CÌswKŸ`l0tH W3G¨€ž°í6*—6minÊÜîä§&|•0-£†éìõ>eQý³Æ «ùÆklÎP¼ÿÀ‘.¤Ü  õÀ,ßíŸO™ÓšPüPï2Á½ØC0My&Š•¯®?Tà€âÖÌFŸÉ-õíWã¾ {ÁG~Ü·ƒ­lÒwÇçÊ2r$÷0½@P!ú¢ý©ý³ç˜G¶&YLÿSôIæ2õŸ!Ÿys|´‹&p‡d˜ƒnF´i_Ó×w*‡Ãó{ÿ2èGŒº½¡ðÃ4…kÑ0®ÊNs¼Ñía¢X¿—èEJMG{¯ø•K(#ÒúÁòL'þjN5¨ 2/<Î1ƒJDí*/·‰Óé«dEÄ?ÿ8 &ÃØhdÃ9! èFzþm "î&µùgáw°ætþžVW`k5‡‚¦»ãÀg˜‹ ‚bÒäJ*ÀL%¡ÿ!­÷] Z‡0ŠFÛkKª³~ÌG5§O‹QC}Šè|9?¾lÝ‘ìF}1¯açÈìJ)hŸÝî› „qŸãáÃ(A(¹2õÖ^¢£(´ -¢oÀMÁÏBé!¾ ¹ÿ£ýÌP²À¸±VÆ™KPÙ§½^¹khƒˆå¤ÌãYQ¾Ûajž³¾öø¾-±ë}¹Oþv¹ÃJæ&YÿÍø–QQw±äqŽÞR´«e,w¸zãü¤¸, ¡ÉÒ{~Khåò4]  ±j¾6Ø”Öùöûå{hâÖÃ3Ô1ÏþÃv°„—(ûñS#«Äûß ÇjPçþû¹GtSŒ©ØûoWï:væqÿèµæåìPˆÔ¸Š¸§óûm¨^ÂEƒîCÑØÎŸoò»Ò‰ÝQNj³Œ Ö’Å…×"”ã¦91«߇Ȯ¦×à‹Ö6„§Õ¾¢Õ õ¶ãú¹ô‘(®iš î<_Ru6yUR³XTâòâ‡ÊšÐŠ>úI=ÒÕñ(X®=*Aq_Î¥²uÏ&Aä": ^ñ_2×Ük$ 5F ³ÄSE%÷3èYJ’¦÷šî&º…?Zb&`>ÐÜþÆqSD_`# Ø1ñ_ŸŒK@¡¯˜Ÿ­ ©`QÌ‹E4ß Ê¢D›«Åa<ŸóµNÈä(PQUÛ¤?i²Wàú¶(]6!½»Uaaëð¿J³‡° ×°[9‘±§~ügƒäMúš¿œþ¥·L7?EâÍ’òd5ÿ…ú=“NÐ#[·ŠW%»È)&8”ÎéAb±Zn¿u*|6Á’PAf”Ô#’ª£WA7 E×^!×b¿S^ζ >õ¡æy}—4Ôþþ|±54¦HÍdYóøBvÅ5µYÖ%A<  sæ/硤2¸Õïª:ZGBöâ¾rk—ÔÊ­+GðI1Ïnfÿ7wÊ òEý“ò2OÓ8•æãí:ÒDÎݶ,CúÚ 6 ¡]º¡ŽÁ?ÂáuÔO‹:bÿ=íLt=ò1´L{ÿ.zHU‡<¢opD3ü†=¤&¾5ý-óØB‘˜J+è:Ó|ƒƒT½C¼f8æŠ~ˆnia5¦¬„*Òpž÷±Åˆc-vsÒTåQþ·ÂÀíåªgþ÷ª€dÆd¶˜°Ó‚“üŒøÕ['[†|£¾èœ:ÅÿÀ»{DKƺƉÉ;Qغ‹‹0øÌ*ƒíÁå/ò}aA¦“ƒz¡bZ²0µ.!UÐ*"¯›÷ÞjDÆ ÷žT×Ã_Àyíæ-|ÓŠ¤¼êE¿, äJÞt)3oRV8œb©ã3\k2ô—dòÓ¼ê}ñ•Ú×M#7ØD,LqEXá2¡#1dØø×­1Ý&y\îÛÃ2ͤÿÇéþD¡3ºd"—d¬4Üù"þüê9w£·(Ç-?¶êíþaØòð$«½“eàk­‰r“iÞ.…“_,)¦ ñ Ï€G^E=¼õ"üŒhê“ô¾™?G"\Dë…‘ÉÕ+Eç €M8­¥Ðp(ÝqNx }–¸bÝ–’j+‹ ž y¬’;¨ IÞ 5„ãϺ–%ÇÎa33¾}:ºP9àN1¸øÆ97†Æ¡åµdÌší™ÂÍ/_y( íØ_X¦)Ã×Z }ý DØe4Ì^»îýƒ80LþD #vö­ï¨S_ÎׂŒB'L Ê¢:Û"b•^ÊÞŽñ‚ꌶþNêhÁ®Í›5Œ>ƒG×"{Œ’sŽK¹ö &Py e?Ôן8óØÜ±ç6ç[Ìø²ÐäÄuè›L³Y>¸¸´3Ê>×U »!<Ž'`ºÍÎù#ÉèÏYÑί>1-ìSgè}†¹kŒÀ:áW)ô(ŒcŽ®©¦AÕŒæô/Û5Ñ=?HêÏ0ñÐzV·¿^·DN]OI# ïJnäÖ@Æ8–7§1K’Zöªµ>Igš• Ä=.0Á0È,ö"7„‚uÊ®ÅÊ>ÿÈÊí«¦¾Ø.3‚QNù{®½IJŸdœ)Ú]¦3°«Æ©€jc‚'RftæÜ µà?¼(@²|i^údÌ·…å~7ýe§Øô;Fãp6±$d†íy¬hŒòeÀÙú°UœOÒ¼àüOüéMžÄÓ‘ûF½Ì¤Ó‡„kÄdní„odB9u4W¸0T¡Jæ4y´¬pѶk‹Ø23ƒ8ƒs‹)foq#äÖúœŠY‘¢¼YñôžFÃáÝÞÜ‚C¦¥_¬Ö¸áº‰÷Vl^JŠÖ'¼˜ ªzqã85ã›É¯ªc¤öÐÁä»B"xxaŠWí(»=Œ—$³BÇ›Bôî.ø~Q¾ågAxg, ‡b=ˆÝ¤c „Wu63hÉéŠ*™fX4ÅßK–S3S%Í·–UÐÍÞ:ØÓÐ ¦k2ܺ@°2·&¾ÉÉl¼ÕR~‰<¤•j“#D£¤,›ÜåÙ—ã)™_ÄÙâ0Dròãäé;Ãa|…ïÒ9æd*š"± kQÀ2èrq6§ª¡ƒÓYXF;\_Ãûüœ27j­‹­jÅ‚wEawHü7P 7ü8iugJ‰;&ÍÌÀk!vw‰ENæi á]¦)W|µ"?TÓ~„ëaMž’qeF&²VÁ¢;4zض4Tj"T¤Š†ÐkEcg`4E€ƒü@=K¤råªeÉŠqkÂð>ÕùJMO0?$Ù“…¸FzÑá´‡¡. ýŸ 6Sj í¦7L‚»øõ0±Z2Wrô ¥å:ôpoTÀaÑÉ®,;A« Äð“ÒJ—àë5•ýÊÇíliVK¶ŽžFž·Rb¸ZÁœ®*›vòQ¦ÎÌ:ÉxÑïJ=B¬Ê <®®øH°``fÃ_q᪌A®šÅ=²è ´r0;zûÙÛ†ßîU¢QŸªeô  ¥ö âwWÐ?n/øW^Á..7Æ}=N#4³ÿ¡ •Db‘ ²lV_¸Ä¬pÞEn%›|Ç+ò !O|aIQl*6„"ôOË"i:ë÷¾qðhMIŒ^‘»¯=xz` ­&E—ÅDѼsÂxIk3:U Áfž¹5€d>ºÀâ•>»”Ʋ·ˆgb®m4Œ.[Ž`Ó7]öOéþ%.δé×qÿ2^Ñ)H$HNëËFS@£b/;vÐ@€Óp3•RX5 íŽã¬’Ä.Ûä݃R ¾¡Š”è#MƒãbEõ>"ÒåÙ;á@ò Ë‹´^=_NóH!ª‡\4ßÐmGÚ°óŠ’‡:B£9™/`ô2Õµ¨9õœkÎ’ã²$Uµæ”î†[‰h)fZ¾`ë­41nŒ…‘nÏ”HÆaŵ Y0°téæýŠðw’ø×c@üyš_9—´B5Ð,¼a¾ð EåöÕ;—Ö‹°²ïY3µ•ôÝÙöí†5žò¦¸TSü´¡úà»#5þ¬Ý±?Ú±Æ)Èû%+m,`,£¼HxÐ`Jdj·Æ9𭜰Á±ÒLŸÂÑ×l9(2l'×|Xކ‰‰.˜8¹z$êâKÔÀŽb˜äÆã„äÕ;‹ÿZÔÍl Í30¯:fXÑÒ¥iåæø*òÚ«R"B²zý¢Vú‚诧L3•–ëL€YÞ30§}s/–ËÔp<ï£ÛW«¹9Ù$kzJZEÙuÄ0Þ›‰øëk«Zå¡‚3f™«å²F@Ø®FÀBšQ?¯Å°«>êw-bò'#UŸÅ›ö_ÔÒ.ÌuÝ€båÍI”X4à4•醹ÈÓ’õ‰4œVå—iÃ;ÜE>Eó‘Î6Ǽ –bÃËoW¤KަÎÑ(ÕΉæ²ñÁ‚h>&ˆŸ|û},BcrBñ ´ì"‚X#pÌaÈôç£Ò÷ª^É­m!”ŸÇAÑŠiŽéÊ2ˆì~e‹»7™¡ªÇ&)Öp ªµÀþ«îÛAÂÑ^ök…š=Àú™]J6v(RíU0æ³çàØ×¼ÿ>nå“\[¶Ý¼·2.jñãn¦¿àa  á›äqÖb ¹°¤ÕfD~6ÝeV;÷²dVëÞðê‰Å ?Pæã.ÀŒ‰ž¬ˆL]_×u9md‡ äýnÒœi7ì€7öd1Hœ¹F:´Í¨9N£?? ¿.êTs&oO—ü}‰çÑÍV@É—XÀ& ¤¿Z3Çë3$èNM!Qª«ª@×슂ö¼ŽÚ>ÞqÉBbã͉{ÿÂßv>¡Eù|ýݹ¡$ê?çuNÄA£V´Y¹¿ D(ÂU%ŽªPMλ¸B"6¬ÕM Êô{òÙã%†«èWŽD$:©×Ds­œ£N/'ààu÷Ÿ/Z§Æ™M4wÅuEÐýâèÛ÷Ù¥5ñ­]NïË.ßÏ·Ù †¾Iá¢L¦škÃr¤¤}Ü6§³°• utd¨Håg¸3!²û÷ߣ#ñeÑKn.1u¾ðÞ,<Ú.)Wï½%ì¢7¢À7ŒwÀe«`§ÆºÂ¬+0b£Ùrýu”zbØ FÁ—±ÂïÍ„‚ÀìÓ-‹Š3ÐDƒ|ˆ›g%_o"ÍÒ}݃Êv) Ú–bÊCam.+¤8\…_'d²RŽ<ÊEû÷U—¢¹]òvë8­3šÉÝÆ·{¯)Cj†dd^ÚkÅΦ( jG=¦%‡üêý±Xí T!Ž‘v†ö²À@ÇPREñÓefâBìo|íèó›åã[ú\?ÝæÌ¯DÇmóÌŽ²à›êwõ^I0¤ž‡ô¿«U]š_Ãbû˜DE c¯Ü(f¤õîÅly¹ÔÑÿ×vþvA«ˆÓwíubð65ÈïbPÊ$¬I¶‡5ÈIR)ø'SÆå)öà§5Sœ®´¡X2ôÐ)HÇJÖGÎpŒpú¿Á«GÆÏFºw #ÑŒ‘F‘@ç!eÊH6èUI¡(QTªy…¼0 î¨ÙÔY$·«èº Aépÿvã´…ôè¹íR™ˆ§eOxMÈ!Û]¢EÁ÷dp±)ÉTq"o¶s»ÙhùhŒŽ˜ûþI¿¯…àXÔì¥é+µaWæÀçdJ0ŠW.†YE%Ò*û-Ì[ 8gÁlwTËö/ÜéüJ8éý;9e%?®Éd<×m~¥‘vJzw¿)û…wÌJ˜ 3hxR6¢Ÿª4§ }ŽÇ`¿àYyvêÜ4ãÍw‹¡OKwV·ø&(Þ2/¡Ö•ä¾%(¤¾¾óy1òû±¼ÌmFºÊ)[æHwÚøw !‡ýЉ*ÔÛ𫿘\ÉWê—Úº›áëçYóÌB6ÿ´k++`¦y®Wóq£ž¡gï‹n®Ž{†øþfIGƒ9Lyaùï‚}7>wÉwŸOL'O÷ÀÝÎã‹'ˆRß{ ­)m¦Ë,Q?/—ã§?ÎÆõA\èqÚå€(&GX’ÑáØ"ˆ"Ë Gð¢ñÍïëýã¦~02ê”ôðÔq©~&i¢àP²/‚ c ÞØ*§øñöúbˆ‹ÅÊ}Yé+bÀYkŠ·+n툺Pv¦:õ-a„>DJn0cq|j5o6 Eëøer:±*n”'•ÝÇFÂáRâÙð¼cV¤–ÕrÜ5—¬¹ëQQ9!Dâ옔lwv‹¹²ÈÊRUýîI¹90íE?ÔÃÁ¿[fûŠcþHˆ5ßFhÄQÒ¾´X÷K ûÑ^6:­x|÷D½hQÐJR55MÔÍJú‡ g»K˜väj·uqé6P`«™á3€õ¿^N~ãÀ( 2^[€™§ßS(çÚ$ž±ˆÍ“¹ú¿W!"9åä|ÆîâL-Òßý ?»­ù1ÅŸo›°[p§;ùÖãŽìæÃ=”#Ç¿©»œÊ~ò ] õhXì8hÊÔ¿øu=ô‰{“B°ü*d×ü‡}±D¯h`}Í5o…?¯˜_m²]CØî·ˆu—RŽx°=ç¦ÐBãÉu ^Qx$5˜dHÉ€nÝ=7Î ¦¸÷ד(åË‹2¤ ïdé9p„ÿžÄ€0ï‰ü’„‚%áÙXâ\ar„6±à\ W“D‰8fãìi[YV ˆsbAΊ9æ²ôfßû‡}µŸò„Á–Ö.–ènrBç?.ô 0S ½½²ò¿¿I¿H2ú‘jölÂuÿÈ–J¤d›r_òhåªn‰eÙ\‹9T¼}BæÊ=.ãG•S k}Hg$Ó9¤í£"1nÚ|UÊÿ¤®¶ʦê]L(ÐÊ"Õú¢&þÛÚ—–•“`–ù¾£s&‘š*ÝHtÐõUÏvUTÚë‰úê#2/»OdŒºØe§„)‘t,Êå®g+ÞYûËŒþÔë”3Nwe.à,E‡-_ѬÛ2‘‡ATt-ËŒÆùÔ}­¦š-ˆnÈw»3 Iç-ø*áŸWíB&܆QÖŸOóë/ø½Í¢ÛĩЭ<«úœ|¬ õ&%iNzwB·T{[ø¥Cì ÜC7;G>—`,t»ñ‡,FÖxæx4d1aPIM>T©Ñ+èØú>ÌíÒp•rˈ ¢a™Þƒs§-a’‹Êo~Ð9Ð_HéC3ê˧þ>2)n.¦ï÷ä ¯€v ªè_ØÄÔ±&…°Çáù_Zû¤&ÁÿæŠu|‹íäÿ9–óS$P…ôkg }£ûý'Å/⋼æRºíÓ¯Ah_dgH]©ïC¬1Ãÿ˜õ^´„Çë¡»ËPªé”ùXÚLºL?v_c‘Mã7„ÿ¯?Vñâ'‘LFœˆ¦íEŒwŸ¹ëõû› ðA¬º)<•±2ÒMÔ18ð¢`³åý(4åý6IÐ'|>fѧl” O¡•–zü9ç}Šm C2f©¼IÑ78ä\}™úö/ã¦M¸$tCj©B-$Ö@’0–Þ ˆàÝ!*¦¹öÓkê½^½Zpk<¦RøG©ŸaÎP°W茂OýJÙŠ4eÎ/*WĈ\+¯ô5Ÿù˜ƒžFÑ¥&=6Æ™U?˜ó#¢uføå|àülvÒfa´¢èÁ°'ç 9sAŸÇæ{…ö¹ýEªkÖ%ÛBjÿ\®ÌGÛ}iÃ3êÃ!ùNyo^QÇ>‚ùNžÂ ÚPF³™õÇRbH£Œk]ÿñ¦½`8žú-â×Кø³GûÿïLž³®ZìmååCF²é…Þ E­ñcØ)o´^³ÄP°qBÃeB7,*zxmEòe/µéq=Èb¯ÏÆü¼Ôè§G=¾P“é<Ð0ÝH.F¯Þ0AúêÉö‘п{ë¨UÝöÔB|s9¼¹š~oSŸš]@ãdªÔ¢67Oê{“D ú_G’¤˜º[Ûªý $öü7 ÞÓü 4w¬ f9þ2t®Ñ׌\ÞB<ì½åO’½96íÙΈ-R1Ë쑌•[TôªíNª,–޲6´¾5ï½j†(‰¥èërëý9Ú ö‰?(¯-3Ž4Zõgûª»‹ô´­tšþ4&QqøHhÆ¿lŠôœu?ºò;>Þª pi˜Ø™:¿„d±¤g‰º ÁDV¬­’}rÀö_»s¼Ã|ëØÀ¢¿êfŒ°1ûrS¸°Âd:‚úÔÔ’%BíÓ–§àš¥(̓ @Í#ϳÞáBŸ€ÐÑérkagg²N剖ÖÈ Mu>nœïqÃX~tx´Ç¼Aü"AmШ.›€YtXØO©ŠÞ–¶Z¤;±õ”Ë‹:-ߘ@-Ò›š eÜQ^èÊ205åAñÏÁ‘r ÕX¨úûÑd3ˆ®üçc`þé²¾9¥yXF+”tÞz²æáèË%½ žÕUMÀÈið«Q Kë¿qΜ:¡1¬kAê/®[ñá"ò-lý[÷ ž“ƒC™õw©.r™vÛRyÄRù»f`ªkY3Òº)À7æñN A–jÃÊ­_ zÜ Á‹ììj ›Èˆ¬]i¹ò8WQ«ë‰´pÓOŸ²&Þ B~Ê… „•ê™ÛÖ©“TÍ&H Ë,X¤q›ŽÇgÌKkj8÷Kš$C3#”̆/Ïik~x;ßâWjâQxÔËz¢uóÆ\®$ä¨_æô^¼\,Ö"ô‡=@otÑEÈóÙA£n2 ‘¶ž(æf”gFËš˜~=RÞd®V•¢»@ª¾™Pò@MÄ3üæÊøzFþ`5ÍxJ(–¶ „¬wÇ«Œ¶òNŸÒÙÖr¼KX˜U™À±› í,Ó4è´Á”cúéâ93­¦J³ùÌRN‰kA³°Ì®9°ˆøvßLP$ËKƒ$%)}¿¶ØÎ¾×oòb37»ìî•󥋠vÁÉaf5—o.f\ Ú¾ÊÐÍãm1…²6j£2FÕt]yÌZirHË©=³üK¾E›c‡Ÿ5†]¸Í&öÙ»gp‚*âV÷ét♡ƒ«òÒ"“B‡x5RÖõ ãÕ@švž¾n¬ZÝûìÅ» +”Ìß’cƒc‘*`«œà³–¬)u Vôy_\ovéd 'ƒ½îKVëÆ[öOD*“@;†¯}½¨«§ä7X÷@eã¬lÒifúÆZNªMúrî‚Ábé9B¸ÅB€pq¤Nü—ܹê#À“¡D¶Y} ÀšmU)uuje-ÎÒ >Âqڀѡ.œ‚ìräJŽwp~£~KB…–æ8ÎÁ¥DÇG¼K8²œðdÕK¾ê'Ø‚›œ_äûôZº5‚ù›í¯²: ©q¿¶~òÏx nŠ˜ŽHÔɺýñމÙM;!Ï…óF­3M Ù#Â\ït‡ =ÛXÎÀ¼ ÐJÑ(¤c ¨l–W‡µ ë%þÚÉ&…?;ů°¶%ÿ–Q±,õ\ïÔõ3ƒ©¬ÈWõIç`-BUŽB­ò×ÒŒåÂÏeΙ)UÆ4Ù.˜1n÷Ä¢üC°?øw$TÑÙÕ)0œKfU¯äù=jó$ˆ%”C~’Ötd½Òç´~Èèªc—1I÷.ÒÈr*”f'ä('T.b¼!ñSv:Œ$S¹¦Ê ZtìjI…èöù”“É—C–3žœÍæ05GæN ÐeÜéPy“ ÿìû;”2.„ܸ½{ $?›¡~dBîãñôžšæÊèÈ={Eä¬cH“ÀàÝXpùË Ygõ¢Ö,Õ©*bÏñÔ¯,‹)“Ùc‘‚ƒ¬xßÕ9~øT G¥çl¬Çh9⮿´Õgpøë*~Á²Wáhu<K©LQjó©ÉÇS¾éóРª?Ü s"ž,>¿«®EX5ë®&ÛêðwÎ-ÙÊ_³p4ÌRÞÜÂм0ÜÒÆ5F fA}¹W1O7gbŒù„œx÷A”ÈÄ…ö¢ ¤65lQ”5³;A5 ÛlósŒî6^Íˤ%’¯¢$QÏíñ¸àÛ™Kîx†gÌË{%àƒÚˆpûKPYŽeòñòÆ ÅF_(c`, ¨±Ò¦Òc2T3Ôçƒ]¸´LV²{2/¼yóÕNyà½‹É Ábç£f-„ *–Pï,žµsðAqyâ+Å`k1OÝ (aO®]ÑÏ8€f:òY hfi‹tmÞvyоßZj{sP¾ÍÐaLè=JÆ›{ñüÑE×h#²”#/ÉÛ+C·YÌÆCõUR$ciB¢&ïL 7phE6·¾Eøb²"°À´|:©ù»¨ä ~ÁÃGcÖ¥&Û|h( +uÔzºäo{ZEÐQ ÞÝãY€kõ‡7 $$c´ƒú·AìÄä~žÚð’L󖿪‰¬È€(a¡IHòd,^ø…~©C‰žP7†N;²ãb”áéüo_ß|gg.ϾÝhWÖ3EÄô^-ÛúÃßK»¯;í¯CÕw£‹€Ç¬Wa>,Á~ÈÅL±?¯aWá:#w›yä°°âCSûÕó˜;µ?Î]§pGLÖþÞµ£‰qôq WðLžUî&Âb~³D½äÞÜx˜› wùuò(\(´1þÕ|Ÿšd²ß*ótÂífÅ[‡mçw’ViÎûmùTÚÜýŸÈ·Ü:‘ƒŽ¶{7iö1Dì=›|Õ Ï@ÌzßßJ§ä•ëVfOŽ3G,µY–¬Bùd;&©Ã¯ßðʨašTǵEâŽÆ ÐÜ‘è)ÔzÇû#ˆ3c¤iÇæx¿ñdS"LƒÚÇ0Ø­uZMLÛ2k@1¯‘š»i…»•e*³aB°ÂŠ$Ý"àµÆtð{•Ìååñ–}5®¹W>£€ø¥ß¬×C)µˆÍ˜?ß îÈU›B0:¢×âÒî„6Ⱦ‰óñ ¸h$Œ¶ávYTëÚë$’žH3ÀÛ˜ÆõIJ=‹Všœ‡w d¤A ˜À¶»”æÿ8.–Hµþ1Æ ù¨#È=-¦³jy¶Sqð9V˜MxÄ}Zóe™z‹)–Ð(pÙªVÉ¿ûÜ—”ÎPN¹Ù?¶eŽæ<öº×£ÖÑÜ• 3ëÕ¼y@ƒŒ‹Á ³&Fà ×ÞÊaÍ!qº Nk91áP•þã*M^ÉûÀ±SÍÍíT=«¸¹ÕhD‰kƒ±¨¤/„¥Îq’bŽYcÛ¢À|Š} $„ ‰„ën¾(wBä)K‚*yIÏ™ ïÃõ uûÂlA˜ýÝÍ[”+Å»¢O£ÇcWþrªCË¿ˆÖ‹o)¸¶Bp¦z6So$>(§%ØÇ…—üàk·“´¢ä„VÜTÿᦦç¶Á ³Nd8zö,šgâNƒoÀšTVÐÝk&3ºÈLŽâp—›ZÉ÷2V@N.2Ží|¢ë'¿ûr*Ø…w~f‰Ì@g—ÇòROºs©íýç'l{Çmÿ ©QD™Ý5•2 ÆÄ‚I3”æÿYrËñs ßÍ2¤ÕAæBý-5ÎÛÝj¤x¯J8H~Òúïâ@îŽ_©N9ƒëë$T@ïbOøyW±£Ã¸¶n™‡›‘S왳{sÅ«\+ÛbBDWTž*×{Vÿ  Viá]JI¿ ÁJE¤èá¶p¬@rÜÂU$™ô+Ç뽤+1­-Q]ÈŽFÙ8í _Ý¡:lÔBA)F«×§œ©™ÒÁ³\oMŠ3ÉSAÅ£îy ]çðö7Ë\óž–çt£¥þËA]FVF†QŸ×‘€ØonÉæÿKq‹<öhóö¬üΩ€ Yy3ê"±Ð>(o"vDÒÕêãPó´GRø¸È’üôß)¿Ž‡v¤¹HËb‚€áSDe¡D‡ ¥ÄÝ„7‡[Õa]Òû‘o‰µí'¬^è6ÛNÀiˆˆð»©8<Çéôÿ¢ÛEH‡­£ús±£ßJ„Gð†å>™zû|uÑ‚.gKˆ˜ÎÅöd“¶‹VsÙÀY†Ó²É}è7e+Ž ð_â4‹´/¥[7tÕC‰²úØ—º·ûViú¸5.³ä´ ·Á®ß7t¡{¾þ‡Ü3PÓÁt¯ûjÐYä6˜$熩o—¤ü£u´ºŸVý2_„µòdꎷ˜¨cnÜ,ã¥r•‰&úÉJ ì̃VF¹¸G}Ù²Y:F,ØÇͧ“Ei•Ñ99z)ÊÓÊþ`DºÎ,o.ͳþïÃ"ô¡u+ÌfÍPpÙõîä¹™Dö7ygÌÑѺÁÅ1ú‚€|´ JÏ|Öp¬WŸQ .ƦùXHËšdÂÁ5%ñte|5ßÍXêú^ àŠÒOƒ%c‘Æî-µÀÕE0–êQÙ7¡…[b: W}P<¨àþ‹yPÈN0°¤½ÌPÞÕ¬µz5ˆ@ן=®élnÁÞ—É\É|Ý‚ß%¢i£ œg]3¢Ï.Ý_K_‘PíêÑ]( ewÒGj ‚+·dœä’¯ºkjE1ÓY,°FÂr·ám…É5Ýt@þûÊ©«y‡°%Ü»çêΛöÒ ¡}lV@‹*Ù}5y<7#`—YÓ9£BòPöÃ^Xh F¸@ø=T¬óçÞêÁWŽp®äð Ãup¡7.qb” ,á#Øu+mf="˜û*ýPè)¸ßø´šüBut¦©ce^ <°6¯FE.«;Ðø¹_XP U—¼= <&‚QPÉxÎÁ×Ü9ä_EUu]e[/lg °ãúˆhPË™²eïˆ7¥ív9ƒÎïKxfJÔA® W¬X™ÄôiY[-]ýèF€Üôm}!ÞÄ8±S>9×gH•ZˆÜÀ·àŠ˜×¬»’¢ºÒ+ëÊŸAÜDê5™;°¹ÔíüœÆ[ÜVõÃf9R"7JÆ9»x!^mšl›™&—,7(üØêkHAaAáúóp‡µ$\O–Ôfš…—ðC.ͬ¿¢!&Ú6í'ž_¼ºTTuÓƒCå?§Ä\  iâ{;B B¶ûCA»±.5Ù%•@jkB¥,(F>zå¾Í"wí gUgê#þÉHw&¦WÄäÈF r{-[7l€÷òP;åe”úèdœKO£Rì°b3Üôd!G%áU6TCJÄo|ld†˜Ïfª<5 uyò/Q:ùeL#™o¸ZÎò½·b_èœo´^„Þ“ëžÁ¾3At(_›xðývËJ-ì–M0'aĸÞù½·fPÊ{ýúwúNAŽHQGEBXK·w}!¥=—!©—OAfóØÕäË ¢â)§£ù¸óX¿>âû²—M–[‰Ac\vPì€"LÛÖº{4è H¡¥zF. cY®Í ~^?Yõ#ÒVøFv›:²önF|Ò ?G¿Á \'"HµÅµ¼šÊ«$Æ!…„=»J~FC½-JBƒš;ׯôñîbó…=Ûýx,½@ö®t¿ùh AÄåùF›×C_úöwÁ+Ñö¹]JÿjW!†sËñª>ã`Q*ŠsmÁaSañ±uÖ"El‰€u‰!o/¡ÿ\¹Õ*¹¾¹M(‚EÍm¿tè«HtŒªß ñòzŸA2ôEöº ¤4a`Öý˜‰~âS‡Ÿ¸ªn¬t3›iØt´Ð²ØÍ,še•ïŠî=,˜V§\Åd!¦"BœÌôP".XÝâž¹œ¥2u7i÷z ·¹hð‚(©þkAcü€EaÍiÖ¶m8𬾶÷誹Ç2ºi–;s+œR±¶âsàƒXÈ%Óñ.¼3ƒ·}ôJe=¢œS}jciýYÚCªÊ3#˜Ò¯n¸@ o’•ýÆ8®­ „ ”ÑüŸG¿þï+6¨¶ò¨M–à¶"ÎÇ–¬ŠÌê\j Ñnl]ßé¿=°÷G‘5ÕOpŽNyµm]}*fÛ#Ú5Ñÿ7uó-T!z=Ì®H¶?å£wAY‹)½sóŽŸFÑž 2±;{þ—ö´ÒÙë|ý¬J¡!Èo 9,^æB^¬‚Aý[8 ÿL¶œùF¬zâO•e(z¸û ìŠ@¸íkÂ|©%üIbt€u R™ƒ ƒH&\xE޶}wXZ‡ÃOX;Ö½™¸©ðkÂAß,£Òì?ÁÅVŠj`&ÿ᤻T²d-ª ÕBj£4ËC£G³¡ÊÍèSðDJh¼6AÞEžešŽ[‚wÇ"HçÔ+5òk,/‚ø™²; Þc_-BýÇ1–^@¾åþ=0AXýᘤÈÕÍKÒQ0ôÍ¢ÃW¡åãÛºÇ%…ñ¼ìÀ¿E5ÇìØá’Ôú×(XÉ¥ÉqXÕ¦$å?ú'ŒÕÃ\b'ø  deKB|qàdY‚'£§ïÞÒb.¡ÅÕÔT–{#;Ũ¦ò“·~±ÆEþ' hÃiÂq.©Å QO ¹ÉÝ•¦ 0½cžÎCë³þ>Òz8Æ»q–g  D7QìIK>胪–Ægã¨jAzÿìi.'ä™™ta¹Ø–? Ö5ôཟ¯%êbkPàgØ%=”8„¥äâNÛhÚˆCéýfúsÅ…ûŸS“žsù¿ 8ü.‚l[Q|p‚õ/DÐD= ­ÏÇÜAÏ,q/Pµ3ðAs†h*ã@¥@ÕÒ<²Uã6xãêÁîWwW’géa&åè^x'7 @ã;A°´“@pb¸Ÿû6Îk„l˜’S}*¼°ÀüŠ íàúÒÙ“ô…´òãâ»-¸i˜6s'mx‡ê=ýpÆ 1 XƒAV޶ïHm³‚ð÷e¤ù¨è›ÅÏ J–ÛyüÞþ|‰O4œxZG¨WÛZ&§œ„,VDÈÒ®ù²€ÄÕE(>ýµÓsj‹Þ,Gqt…䥩!„–ÛéM Ä»C¸G®à?çš  Yk –£Þ:¿ õK!Äz_+ÅH nŽ´¬Î½Žƒ^ôÒͰ`f}àw>У2'ÙJü©øÍB‚ŒÄ‹ä‘?lØ%…><ãêy Ž˜Jñß °e²LgïÁÂÅÐÙ jV¸¸-¨ÒZšÎ¥Ž0ÔbŸ$'ô°Dâ󡙉§»=¶û†i.­B€fM-¬1USÕ ëá¹ÌhœªHI_ïxs¢¤µ™’7p÷#cHè)ÕèüdCëPá @& ñ©HâÖ!ƒŸ›Ä•ß<Ý*-–G³îUô™ãàiy.¶çþÿ©'p¹ÞFƒ3JI˜¬¤{Ã;þ<+¹¦$LÉ'B?ùƒ$”Þðq—vµAŽIýN—Ã^¦f©Ö>¿¶ fÊ/öF ö®Ô‡ExÄ*.:eòlc*'ZÃzýKÐGsEVB£vY[¬…Ü6aq±`A*rusÊ*Dòµ§9·òÍs8“KÜcwbÂ=Ö®YC¹ðž¡˜ž7¾"Œ„óã¥W-„ßžq6/#ëÜ40DÛ7=JGýºÑ[‹1ÈÍem­{+€çùG"2É; ¥FBd¡µQ-KRî!ª†%Ál—”iré çË™)·ã©4zµô×33|¶$ÿÈ+´`°F56¶1m¥ÛLZ*;{ZÂvò'3ÃË\7øSÆÍp°‹Þ_ϼ»¶‰:ÌÎô¦Mú±‰&*%ž‚!Úé@uz®XRXô09B| -E¤ç¬1é‘ÍbM~w|GW\‰@[õyõàXâöœððÑú¦Y\¸­öË”üôýûã˜{ZnOºz4ÃA|¹e¿ƒÅ±¦ì…±»Óâ:™‰y¡! §ÿ¾éJèÈ‘S0ÄcÁ~ºÜÍÆÇÇN§uÈ«§¥£góÌV>s²Y¿¯|3&¢'@M†æJIÂæØ9Y©`Ž|»úAˆ<‹ìv¹­HíÄêZZ÷æ)Gl*"iY][07zŽ—„Ì]7B7nÏUÚ –Qæš­øêËJòPsÌ â½^•ÙöÃ\öý:¿Íƒ¢¦zÁs°l£5jù7E×Bä$O9ú•«½éäì'W=­CêËq¶øPìÁA=_z<[Ž*6Ž'±\q»@h˜™¯ÔB …UžnsO@¢äº>©Aàÿíný#˜ž8Àèõî‹zT(X†9ÙG½W³·X$%òÀåñà%gr¹ÞUÎá¬ÍøÓánJ0i1‡h ÒÞK/¿Ÿ7ß:k¤³éˆå¢²Yì¡0AüEåÒ_LNqˆž‘p:A I—yÕy¾U‚p*LªX!0E—Ï‘¾Òü_e§‹£ô4A ¼ çiáHÙàR5o»%’³¹ÊŠÃ¼ ±hw?âý5»¢ü : {æÆP©ò²„v+ª¤¡Oоõ¶Qa­òʃýc+kd¨;ñ¯ê9IúS¥ï§z^â4ç·¼ Ÿ¯…ÒØ×ËÐȘ ÀMzˆ_Ù`Çܸõml»qfácçîHÄU’À-•rß…ïíœÔ(äÅŸ(&Tê±82ýlÃ=:O\jH㨹ÒV,Ö¤o¾·…“ìYÁÖþão‹¡<]W&ëˆøqŒ|ƒ{¾û¾žè‹T¶ÄøX…°KcF äÌݱ—·mõh™fR+d¸&t Kt²¶O. N ¯Å,Vòsʺ¿þÖu•àÕ{m{LpBhëyUÞÇIMs“Ê7LÚ}-Nã'yXSç·âÛÌ3 O¤ëàJ‰£Á]ílÔ#´”›šà%žuµþ6è±C»ñšeµÿÛçØ“5Ôr`P÷Ý3‡ƒ¿ƒÛî1mˆ§GG)¶Õª©uÆ•p®ü5ñm–:Ã[ço¸e‡… é+ØîÌ“a‚nä¾qÆÉ\1OŠ[Î$êm¿bNy¢1Ó  [!]^–¬šž6¸±,ëU2uf·ëê=>°¢Biì­V&u÷ ´'ù;bú:}•rM^<0»bá3ÃE*W]¾®±åô—ah,ÿTJs\5ËH‚^6ng7Þ˜‹Í¼S$Àïé•RO„è4¦ŠI,e…Q«¾í4Ò«à>™ÒþV½Ÿ<"«` å‘«!X* :Dµ–cß²a"ŒÎµœôLæŸéCûщœÍ¡Ö%íwÊ©ò6´ÐÍõ§éN Ž*ãß& Áq£Kú6Žu)™† uW±( 6Î9Ñå©II³‚[Üþ´ÖY…%<æ÷¬ë—#`žJrGãe°y(Å.]•©eXøu¡l+¹ê¬`~4‡¾¬?ª§ƒŒ’¡c‚g€‚Ò›§b²¼£û1׳ûõ²v¡†w/R•s0¥ª xã(Y`ü5ܬá[•l;YK™#ÿ_Â8Qð=`õSú#ÅÕ•åÀæuo{ÿôe@)T ¹(|Ã<{¬kné‹™à!¾Às)¥bμãžÐl7k5;û"Áì3þ:¸â¼zþ¡ëU›[(9²«Ô cÜëuù-è¶©¸”¬RG;ÝqÄ‹DΩ!£W$mïÕ2ë9¡7(€µÓIøQÄPò$m«/ØîÕ…7q4•‘ûq©Ÿ~êßl‰ÿ ŽöŠÜ˜cýR°€û§ÇÔi-ÀÒįωvñ¡¾ò6¢´ ÝÆôh.€­»Lÿ\ˆÛ[+c“`¾^ý² ¸(L‡z¾B· ]ˆçï±Ûdñ$ýæÌR´!€ ã5 °~¤ÚìG°é“=@ª³ÚÙ}c¿So]&¢sLÛžÖ7é˜4‘Œ¯ÕÖ0tKQ™¡„9‚2¾Å޽;(îªOGõ¹Úßμð—Æ~”Õ…8a·  õ‘0¯ë|îÃzMc®Ž‰>øò¸©ý›yY‘úQtJ©¸ßË‚ØR93ݹüHÛ_"Þï¥ìÞJ†õ×¼âÖ Øü=3ÅI⯈, Ær|e—ˆ\»Ã® ¼1/rÙ•*?Óá£XhhÛ5Cí¤Ä|‰dÆ”¡Sˆ‰ëOºáRC«Ì 0ä¯?ŒÕ-þßó%ág2oC@”ÉPPªÙ_Ú2 ×|ÿS«Á¬ ŒEòêp2çýZW3( ¾¤Ùšž­“åfÇß2»P&kYÈéÕ]ÐëkjVnI‰gØnHäˆpϪNKݹGhh‡$õKÁ˜¤F\3/Œ-=Èïß;}<^û>^ò7 ÊÇ@ú犻­ô!™©Z¶F=ã€Ú¯žÃ-"Ù=Sc‡çlØì©Si î¬6D•Ca_·a—žV!‹äãÔÁ˜Ýar&1ó.£`‰P$ݸ’ùcbÝ=©&ýT+ t­í‚Õ/ùï´÷Ï"§ëKŠ„ ´«×´cÙUôGŽE zµÊpFÇ-4?ƒ7ª»êãÞ«Ë'–Ü@Béø vZ»¬ò™z딇‡2Ós.Ìн+ò^Ù+?ÊHëÍ1}†›¿¶4ˆŽ]KN bœDoŽåÉQS ºÛ|0tªÄpLŸ–»çE³—ñÓ9¦—€ñˆhÁP‘¸¬CP¸aéw$æ_G´ù0< mc×Ór4‰©7Ë^ŒbÆôš?YBäqœíÆ¡hélµ÷X†ohMijƒ­R<‡ýT›Ž‘Týv.p:ÏéRxds^ÏÅ .0³aĸ$®UÛ¶‰âQç1½gzZVr£ùNö†Ó†]º ´‘¾*¤s[ Æ_EÑ!-°ÜuPºdos–VÏm†Ïôä1Agþ,[$8‡ÐÑ!çCSÚÐw‰÷]ÎMã«k<ÞdYŠ|²Ml$KeZÝÙ$³àñÙí¡&g‘hþÚ.'ó¸½ hmøáÜF^¤ ˆº­§ð%JQpÎpÌÏ/¿^CâVïìÅo5Ðqe14oœâWä鉗}ÞO=¨Ö&­£—ßÚw¸”å0Uûðêãán¹ÔhëÊöÀ„qÐ`ÜÔmukcá B`$ä+›åpp≢€]}R1=v¦åíùÐCN6¬VMr„ ÅÚl~b}œÒšNÉsùð)Ðê ßXŒ>å®T‹Nì´­›ç‡JF3ä-T6ÆwYHµBx¥íhÁ-–‰áq€‚ñF–œ GEæšX|ˆ¤‚r¡ÿuªBÜù jŒ×ôÝb'Ç 1™Dɺ*-×à0lry«´…—®÷ƒ%C÷$Á%*‘#"GöOéÃq–DOÓ¡"Çtph …©$]Ù€z„Œ³†ÏX" ùnGIT•g°bCФhÞqp¶ÝÁ“¯‹}ñòœª‹DI Iò7ð%ïè÷¦S Óƒ í!›‚D’â)«eä@š–ÚÖâÀ£*€©E$» ÄQÑAÁ(õæÔ{–V]ÐŽçyÌ,öÂ>B{i×Í×õa?W 9ëB”¼% ¤Âp4c;•}j ÂúÑJ‹?Þµï;½0pL‰Ï}’ì‹Þ¹_« ŸÕ‘OQ?â$û ý6Õ›ÁïHìUÐj†Å‰ú¿t?jà „H±R! þût³®(¾öÊÿ?Í¡>ƒ…Wì¹@lΗ#ËËOM„z«³|ƒ'^á”G³¾¥0 ^=;N9¹ìC³AÉR~Óf)‘ôw¸À[ȵÍw¿>‹u®“á|xóYŽ}×öí@P‡ƒ6þD%ÊXÿrܳOÃxOŸZÖÂÎÏðŒf½»Oµ$ÿ… Ââ†X{ÜL‡ /‹¬br™^CÂXe §ô‰s+WoÐJ°™¸VóÃî˜]Á“]²É¿¼zóÌs"5¬é34Õ­6Ý ¸b™¦Ú! Œ´ˆ{}œüýÇ+UZ:óÐiýƒëöÆ~cOc‰ÔDªöþP?Âc‚ÇGœ¤g‡ú¢WÙâ†*±ùùð½1Lc"Û¶HKà ˜)¬KšUd†U*dI¿Ó©bU¼‡¦øë&ÉŸ´œß)éçN;—ð KÞ¿%ìsOFV†‹òQi’è5öç p`_s;Ô²xÙ r‹Éîþé{þg%}bWtóú_>“zpù\¿Gz:ÂH¥–Õ¤ŒR"To#ä4~ç3­);6Rp±­Ð‹¹Zrýâ÷I/—M&§¼4Sçz²œ´èC էҤaëwÊD|kÎÕyqã £j¶KSmŸOËB¼ô †úÓÇ',ãµøâ̧¢w©"¯(«6fVg©aŽÝ‚)OSô ¤RûZp‚ ø§Øfà><©ö“v’XTAµÕ¸îÿe ¬ ä¹ÆŠŸùMZùoÐI?Ûó烎–‘µ›¶f8áãºÝÏÇU[‚ÍäÛx›Áö9õ©+š=_o"¬›mUéŸÔC;h—;%Í~-zv³æ-'ý¿Kþ§Þ EÃwx)F†€Bu)‘Mnr5žŠ²ÔB£Nà)\&R¬DîÀÊíé7稘ã®uÍÍEo—ÍO{4qe1ëY‚Ö)3Å£RV¹/CãÕå5­óe/ÅA ëiÍ$w ”±?n!õªfIhmóáð§,3ëìD`p ¬±~¾ T™€ ®Šåp+@¨L … }j/+ƒ‡ÖŸ„ÊÝæa œ6aø¡Ò¢2ö9º®ÞMßÇG@ÿ'ú²‘=¤{€É…­qç¼ØoW6”¦7 )Ø\2ø‰˜¥ ­ž*ÎÃÂs$‚-È©2ÌoÁϺYtÌMÚßÐN™óˆˆëñ{·Ô—زc%ÒƒŠõ[åkˆéCz»ê[ÓS_¶ÓóCñí*dzÚŽ±nhLó¡ÑÄšj\Ùö Çøö³šÄQm#ãð•"«¸þf©§ôj®sÁëòÔ3µ”o Ÿˆ[s ñ;{ÚrI»Åö›€ ¦©,ªZ‡%€¹?ATp>wkA3ÈÉE¼8¹õ9GLœ3“¼?×:†„Øf…¥jGß ÎÉ3Ü}ËTpo,u•Äã ½1%3kEé‰|›#[ýá×ÔA¤v> áý{ÌWpÍGˆ0³'=Ù*÷eáÞN#î~œ•¬)I £§¨BŸZ× xÜš.…‚‘vZñQÁßœ­¶AUk¡ä¿¯Éç—X¢ jp„וV¢ RÕOGOX¿®/ÉVß î÷S­ˆÔ…ß:„JÐãïX¹åé ¹½b(P‚üWôFÿ£Zûž¬ÊÖköºNðx$EGM¬Æ×[¶'ãA\… ,¯=ËÅR e©çigª³=ß@H%ÒoL‰ÿ àÛI½‹Æí‚öµí¢š¨úd‰ß-jê¾ÍþHàH¬ç–VE”Ú÷+£ëMAMùJ”e3ˆ{KÛË8ªj ú1½-éqN­…óô{S²‘ËŽ*¾•;&p2Ôô>8ŒÁÒ æ€!Eío·•ëh®—ÆßZ[vúžÎæ˜zD º„¥1² ;÷/×Ú*”ÊÿÇOç1“ôÃs)ÀPÈ—µe0YéÏ'nI¹Ò³¼q¼nqeš rŠp¨aÅ9òÊ\ˆ¬.”žŸGâ„ÞB6ÇH­$2jNu®ö¢9Žý³¬¾Zse’gGm!= "$}ƒjAžÉÝ0ôCO¶µúç)ä…Ä «ùã&($Ì6€PÁµðèçÒ¨vxïuœnê8ü¤¯f£F¬{1ÌJ¼3Š|Ón;,†ntyˆ«œÛ N±4>¦æf/9ü#Éž¨‹ÅStš9"ìõÊwõ³¢Î n£®n¾Ç–3EÜׯ–ø²ýþ‡ µ³ÿGóòÁìÜÂår#fÅŠâ\e3CÜ‘ÿ ² îÄQ,ñ;f’—^LwB\…hûyûµñ 2Kyäšý ¬þ D©â™n kV"é—ï]9±/ä¤%}v?îEKtŸ†ôtÎÛª™‰ô[ãMšÿpñ5î2Yƒ^æÀ×ÙB)ñN4s¤ÒwˆÅW‘ðEA÷J®5†Æ“Î t¦àHÛ°v¶÷ÎåG<²Ê0åÜï9ðb%z¥¤!:T1œv³ÌUU8˜™/°xv:^ÔŸ€%K×äÓ¼ :’¶@VU’•fi™‹üIïÎ"e$‘és Gî}ó°ML{ÝS2EnßzÊå4Ïb©¾³ÚV¼VÑöðü9YÔW¯¹ sº^QNbwa‰÷ËO÷î ÇZ,ÁÙY} Ä5šsa•ÒqÍà¸=TÏeNØ>G€-3F!äìŸ1c eùøê´Ã/¨¡7MÈqž@Ä÷U]–¿»zÅn( ä:Ê?G¤cJÝÅÛÃ8â¤Ó"¿r:%QC‹43Éðˆ–¤"ºiËé[@Òì´á.ŽÕÚq¶îSÍyfaеs®8ïö–Cíí!ÇÊLã°]ÖζŸBæqæà+Öf6 ¹ö½ëˆŒêK ÛÒû¼×Ø`m{“{ÅÚœ-½Ý¸¥P‰º>d› ½éþÇ1Ïy;@!Ù×¥ýWšv-(ÕöJµ£Gnßá{«Y<Áad¿åFl˜LÇõY:Š(+oæj÷^$NSá˜` Œ“Çþò°ØâÀžâÐ °ªNÐbïØ÷™>Å2K‘}žø0úöñ褕¾ö²“ZÔë›|͉tŒ ˜»ÃAîŽv8ž0¸4~$ƒtª2½Ê¼‚’ŽÅÒR/×rZâ ±X…êræ­ìÝôKy 3˜e?ûç˜ëû§-;SÍé–MU²ÓæpJþK÷ Í&è9ß•ƒVÉÓ…¿'0 ³HéþüóŸ ·ðÞƒ?#5ʬٞ/­Ï4B™ K\f>{hV{¦ÂMQÙs)—}φl(ZRu9±ú‚Ùý#Á‹€>Cǿƻ±k`vQý1 ؾ¦gï¨_ñÝß'ìO ›ÿßíŸ-%£û'ÜmO;ó–ǶΚ \»œ´jaW‰NÀb‡AnzŸÐ'ZæžÿÆ7'·æ]œlÝêb“Ý1ëRtº©]šJ^1Ô^olFБ7²1Gž'TuÞ¦íЯü2 íúüý°„ícjÄL{ÚéB !q„àB¨0h‰µÂ÷e(ÜS;üãâ™ÑáÍ"«Ð"˜Tj^n¿^Ð]ÍÑ&O¿3Ý.8½±æ©¢c‚ÐòH,tgµ=«Þاñ§ÊEŽÿš]ùyîtNMù ’?7‚2f›¶ðù'µ^Ò>lÞBu,©?x2‹ ,ÐõM?ñˆ ‘aƒhÉA×08Ûe¦†ÕØ)‹—aaï”*úï”qÊJÂRlÿA:®L¬-6OvhS *Ÿ$=·0ÇŒSÅtV¥XÓ Ãl‚*Ùñ½ZâæÌÍ ¹H‡QC*º*ŽÑœƒš³c5’}!9ˆtUÿT¿ãu€Žî ( 騙ÆW˜ü~ëNcm§~ïg¤œbÂÿ)%¶Š³åp/¤8.(iO1Ôê"ÂWV²ÈãRµ ³s@J½=žTøTf¶Y àšü•ó.ÕoKøE4ÓúsÕï¯yÐ |aÈ "gµQœ6âÖ,È£E¢PHî•ÔÔiðSnȶ)œèüsì·®Ä$4Ž¡½ç¯gaÀfo0ÂJÎõ ‹ÇìÕsa£"エXJ‚˜Vç}~ \“9ßò辄˜6ÔF6˜¿O¢jš¾Î(oX@ш_g²á’6ßsæ$ûÞ¯äl\E]Ƈ?úŠ2͈”pqâÕrˆŠ_®í¾ëbméH¡»íò %·‹ÖŸtûÛmìW±D¯©ŽG:xµSY]µÖÐêÚZ‡nQCà¾Z½z$À¼épbëõ›`ÿÑ`šÀ=8nÙLÛꕵÎÕ—$á”0¹:Â?Ça­:åP×Ùò¤˜pYÒºëÉëÏúŠü’ a %íä³6Q‘À+?pp·Ñ9ÅjÜùgòéÓÀ3ØeAûˆPÿͽgYßÙbá•WÉgN«Tã¶óÅ+nnÒÙ‰õðÊïÏCøŽèS'(l”Èu`l¿¬`îPðèà·N.ô)ó:ܰ8.Ã'S‘Âk‡Ä¥Dk$•vkÀ¬4ᯠV߈2¬l„fVÿŒ&‡u*("Ü a@—þmâÙzà\—ûŽ_Z¾¢G„Ä‹ò[(€NU¿wׯs˜WâŠ^ ;•1ŽŒUkž rRy#¼ä´îœñ ‘^„eQwóNæÈ¸‡%Ù »CÂ* ó×,ãø¬Aút×¼!Ö]rUcŒ2…¾Â4Gcð;[í§Öær<êÖ0ÇÔ7¤Ü+ÝpO&duEÔOh œÑJâ'W͹?œ*‹«©ðO–™X–'ùï²Ëš{Dÿ:³ .z|ý£2‰ÕubÞ½Œ W—ïé:a°TtÛÉýEЋu*Ì=ξIæ°Ÿ¥uâ›ÂM<"˜$Îð‡7iu…ÅL{ÃÀÄR@z ]úݰ°ù¼S–a-´ 4ØJ¤ŽÛ‹KfÎWpŠ7è£ß8MҪñLü„e9vÅb•²u9¿—7«û6nk4eü˜Â%Ès«Ë Ê£$‰äUŸ frÎÇ6þÉ2†HæÍÏ¥9~o“ÒÝžµšVA£XÕòç _È£Ï莹Rüú !ЊXÔ5XçºË¥T4i†ãìrŽÀ†ùØð*hÖÊŒçÝDašE\¶rjŸ“$ÅÅSaoÕ}N®A˜4„–fBÝ?hZír×çX˜Ú¾5˜õ¹ ò°$q ÐKGp³DUÙ—Ùó\”Hw`þÍÓ fl3–¿K@+-°ƒdêÒíS†ÃIÐèk "áÌHqUîØÉ‚2a*L‹¸(ÁFˆ[ànŽ£w¤u€k>Æâªowû}DXXÕ'˜:7RÿC2s͹<†ç9Pq 3±|õÃGCVTˆe½¨k†œ'hÇw#Û‘zÁÉŠ7€Õz§ )NàØýìÒPw‘TNž»ñ†ñ@,¦É¾Èâó™xŽå°vã±û[ÒûdKÇER•8 Å€&ãèt.fÍ9xurý|ÑåɤˆñÚÕ‰§ó/Ò1Ûk<`ß „Hk·&Ȅ׫-»hšáIgŒ¶~RQ_›³/Ëû¡÷˜K„ý°kµ„s篜uÍEíMÛ*ÝZ„NcºÙœ8±õíø6Îâ<R>ó-†UŽUîM< :ÁZ¶ª&ŒÃEÅϽäÚW;{N£¹qdû1·-¹¹Tªî`C«4å¯ÍÐÇwÃêh”›ìAÐ9rx!«†‰û òQCñå~¨³aî â6†ÿ6…‘_æÅ`€‹ÈkîçÓx`»®+ü'v~]úJIø]\Pé}ýKÑ’9³WÀÜÚ.ë;Çè\ï F2Ê9¸ö¯x´÷›º†P¡Cÿ$É 3Pñ"ñ޼F‰'=†‚Ÿ˜âÓÓ¥šYwþb 2jÝ µ–Z€¥2\dߦ!4!WKýÿ0ü_ ™M´“é;ûÒ6(ÔN|ÁVBäû Rµ*?iíC´x^pŠ_\lJOVYHV6£" sØ­÷ ÃvÜõ¤JêóÂÄ_ÔËnœ^ˆª–èòco›+#½¡ôRù툨ô³_H–ûRÅ”æ4»ß7ÞôD‡ñŸÑÐ\C`v3Ë—Zå"‡’²*yµ#\ ÜI•Ä/Þ˜ÈðÏDËÀª=sPàw\”ú-‰+†UrBOþ¾¼•¶! Þí.ùü-X»O>Ç'µòÒx„_%ºÕÌ”§§["˜Xè%“àL¸GBç{Îj¾„¦s]š¥Ÿù8Øsž SЙ¶B>0´ú&´3˜æµÌVb¤…‰;FÍXŒ2ž¸Ëv²r¸Ü<ÓÈÍä ô˜ŽÒÃE%…=>xäe® õ ÙíZR¥W~¯!qßIG@'¢-m£ jÑbü)±`勹V¾û=ùè^]”• c¹3?ké!NÌJ9ç¸.,£ó=ÏÜqáò)Š0(z•Ct÷¯'û…Ì‹ ⯨n¶Ì^¢3(Ê”k,ÎM£ qüÒÔÞX çxn¤ûÜö]wu®zpO°um:‡õãj¡jD½©õ·J¦áòJô°_1·jŸ5ŠÒ¨ÌÅvEÍax·tæ"jcü±%Ô¢³‹yïúÆÎ¡=L‹ky‡Ãè¨ ¥Ä%î CÓÍô¤ pneÄ#µç9>Û‰R:@ä•tîÜ’ÔÃÏP;F ¹oƒóQ^LÔ¨'?µÅ±íEW¿0rOLýãA,ºu4 k‚\ÌnŠeþn7<®2:þi§æ³è‹¿%Œ<ý¦úÕçÍOÔ‡žèn•Tùº´F"{ÊHq yPãî3©ñ…ü`#tXýÛãÙíIHÍ–|³÷@ék 9fÊyH“·”°fÿÝnçUcå+ U¡¡z¨·ÝÙ &`v¼Ž‚á·4Gçå–35„ô5¤f1®§•úŠuŸ)l‹MÞ‘ÌÍà~XÈðÊ5¡Ýð!vÂÞ¯âµqØyG£nfÍðzn‹'²ŠDºhøâYp%!K¡*ú4b@Ä*Š™ÑŸ:ïù+ÅÒ’F™PD*u€ût†1ÇÆ :Ú§XaÑßµ§…U…ºj_¶6:¤˜‡’ÃèkTݸ½ÆiŸÊïêc†®ÄŸyW‡TþmÍ–ÏÜÆĵJ l™I×J8"UÚ¯© –ýÖÔÝÞ{ÍaOlÓ6×rs÷p›9® 1²¶–û¬âì•F²Dv쑨# C²_Ï„f?üŽA§^¶Ê¢—c÷̉‰›}Æ$”AF“ÓÜù±Á¾ï¢¸â!”õ¢¢†¢xÃV¬/-ù°î¿ž[8ÀbƒGª²:ÉA¬®úòûa Nª°¼É^†öÐf3?ç_ÉÚ‘q/¥j¼øL~à o$ ?’¾ÖL+Í.ÊŸ‰õ£½O›a¬ƒ…4¡9¢8þTèÜ:Àì"uàë'/2¢‰™-±D9ØÔX4uÔbu˜KcŸo—E£m‡Œ¨9»2†Ä&!C›Rtuq ÏÝÏcãÆÍˆR­Jv¬`¯n×F•ÐÁSMSü¡ãçËðQühmೇغ­‰8 O’Pqã u4qïvOìÞZ¢Ž¤ÂòÌìÀî¹ l™†wÒz+1&ѵ8Ð¥£Š4øSôÔR”Ü÷êC÷j"î&Õˆ›ó÷O3@Ÿ›Å=ße1ùC ™¥ðþ"cj{Ö­\=lAã D[Èžýà{–3‚20LÌ'†xù»ŒEÖ²—ùMåÞÚ8J¸0™µØH4|EP:høZ=¼ ‹ðÓ†êayçuþÿY?ê ¡„ k‹c%eóff•iðÇ¡™¶gv¢X *a±^õd®Å õ|ÌØ))wi6ò»ûzÎmî%º¥fÀÕ«/)e Ä„PªrL;®T£ ”C:…y$·Õ7?K¼9t¨‹lo#œ+’tDÇ_±>Þíqªƒ=Þ_T£ ¦1ÅRòiß×°ÂÝA>ßCAüÂÈ¿n[3*\NXú~og‡ªMh_ü6ðxnêÀßlGêJ¦{Wö.àû[½…’:úç¾B‚ÄÏvÔj€ðÚ’¨[7»Üä»]—Œ)Û 0sK‰óCyÒ“Ì õn¬TZֳງéZŠUjž8ƒ%ɰ@£6‰uq0)Ê ú^[OºaóZ' ¡õÊl8½âþ eHQ|N/º–³En$‰#`šÖÈ€àû+QjõPPCí»§ÿ‡Äþ A @±)9+…äMÛ—‰@ûÈþXªÒ¿ðæ9• 2¹†S4±«UÙôH^õ7‡(ˆ~!P¯S†çz]sb5êùÈc´NKZ …¹É;W û¹€+ ö)ó^Pd8R@êëÖVq8K“[Šêõ ƒ4"´TÅ!z8¼á)&XúfÏ¡éúY/@¼ÈnÊÜd;¼xèâh6Ù¦ûWL’Gjü4_ŒOQt9õu¦Â?pÿbéZºÇn¿é8tÂ(ZepL™ÜþJÒŸIÑì¥Ð@â¥Ä˜Â”ˆ ­&ȸÄtÌÉ(—é†7èBVW4w„®vcFÂÐl¾þ˜b—ñE¬t‰B8]ÊË*{Õ”h}¤È¸Ñ -uŶ¶7‘¡ñ h/ò°»Ë0ßÌçðʨQQ-0ª÷¼¬#”†Là ©Øs9³½Ëü?´Iý´Rv††ù%ÖxIìÑÿ`d#UÜ\U˜?ÖG<ÕŒ¸8·ŸB4ð„9“Ž™Â\±Œ ª¢sx³.˜"@ǪÑS|çð …Z¬“»[éOvT…˲ô_Kó¼.ÅOÝB¿^Æó3 À»£ü¦ °Õµ;n3ò†uõB;>ßÍ»ÞÓ-EÛû=YnãÉ[<'ì$«ªZu„ÀL÷Æ·–Zð[BËÚ?Œ™ȼªâÔX%!²pk§Î‡³¡5@®­>f¥_jñA#.8@…/tRÍ­rx|+1–ª({B^ 0¿$×2G¼Û0S0¯Ó±zˆôd¬²À_iü²Ö„[¦cg8€¿…²ñˆ'§Í¹ÛEÿc²ÔSñQƒÛ6VLa) »Ð¸^ëH "]ò‡6Y8.têëxÁG´ñ' xýªñ‘…=u[dÐ6ÕsŠ:&‰Ðtvñع††¶EH˜Í“½ßgkšcDžÚùK +0˜ªZ £‹ ’fß'ØÁ }}€<ͪ¶†GQ»\²®~?3R™5? "n1i ƒJv©–{{ÕãYrI2 ¾’«÷Sùû¡%èí½¹o϶sœSùç,Ú>NÎäÞiŸÍHøÞ7\šß¹Jñ³Ì,up|\òÎ5vð©ûz8U«–-19ÇjS…”C=.÷ÚåÀ©+^Þ¯ñ[Q½ôŠš÷@é±)ʃ×güWòåwظ¨–ši9ú¸Ú5yì÷´jш0¹’¤ÒF«†È Öìý7¾yŒÍ‘miä{ÍÅMâØ’ï;·0htÏìºá´Ø{ˆn[Ç_Ìrâ³Ôc‡þ¸3¼(½VW{'~zùÙhébNê 68u¢ŸÃÛ·”©ýÿ—¾y<ÿ݇å ümU$Äöcí¨Ë’æ´±¹3¯sì¿ÃÆCb9 Øßáÿ¸–Éü6ö®Ç¾–máONÁ„Þ 4rŠjYi3;ji7®v†\ ÒvéG ÃT ˜téx4Ì~«‘Ò!+JS½ü•æF€‘# ^… í–½³Šâ±1eÛÉôšù ÙÀ¯ˆ G}¦–;äwª|J-†Pã=דƣß|ýÊ‘TÜln7 -µ£Nw)*R2+¥'P¡Aáp¢? M¯-¿1»Ï}·•;Õñ#d< êîàF\/ _a×3”½R‡G?<?RP'>fxpLœ‘O',¹SÓ4ØÂÙKõä<ý­É1«y2mË&xÓFýÓ‹X°‰žHΟ#…I5ÉqJy‡PÇkÌ®ì$,OÐÚ ´bW07¹¦ŸFÒx Ü&%'ÞrKNµ³E@$õI¨ó E"q'g}¦QÓ p+šT¬¼"…Þ1 v'§°ð ½a¬ ³e㢾ëa>‰n,ËYAº+¬à±˜½›mp$vá<‹S:bÖÓîŒg‘ï@b1_³¸¥¯$ÉÂjFÓéÙëE=¤jOÀÄÕåY_]5%ü9B²*¯pÀN¾éç#»hv—*%£ýÇB÷¾ï܉¸pbO©.®1#ßPvéQ–$~µÓ³ÓãAõl¿œv Yª!ÀÍ¿ƒ&êL©Ä‰ÚvÕíx_,ŠfÃðn$Ã^m@g[Rkñ'i›hM:+2+ItPŽô&óß?q7¸×‹ùGÚöLcÕ–ß_F›"ÄVTãø}f×MxmëNtïÝm|€ñÅÕugi`EßpnAý‚j8ò|3ØÊ»Èè­'£L’Å9 ìMèS%HkzýÖ]’¾˜Í÷eÏ0ŸUh}õ™N•ÙHŠü\µÜµ–~Å6ºÁaßp…öRµDÕèâ€ö)çœçÌ"ga’&„ºxHXn#ûEâ&i `Œ)>2æsp÷;ñµýʼò‹Ø=°BRW¾ó'ûª£‰ýVUÞåGJÞIå¸>(bì6›ãQ5…`³iB•ˆ“»,ÕW“Ï?Ryö'h:ÌM˜¿g<=%ŸnÍ/Š`K×ÜŸœI5èÓ#uŽôÀu¢rÎsº\LÕ»ŸÓx…W÷ùä2ªÀÜ j ð§ë Š.¼F1·÷à‘ÌfÂyü*×ÎÕ?Ôé‹Fi 7a~‰u؈ewåjo˜&ðcK:ùÖ¹ñp÷ ¦©´5A  ~3gx^ý/æ‘¡”ü¹¢Iý¸&0"ØÕø‰5a»ÄûØ‚ÉÙß¶ñ»kÝ%ž;±2" VæJ«ßÍ;š+ˆ {¯¾QñÙ’¬ÁŠÑÃñн6ÙÆØz&–=•ú””¥º¬Žnrf% Ä/pÛÞÁÕ°5 ½¾êÀ³@,ôîHi²Ëzé@k’Áƒy‹ªbUg¯Å¥ëËT É}SñÑ šs;Sm`c·g °O«Jø–R³Ãuz~l2LèµX‰ÈÛ” »^‚i)%_çÁÙ2Ãeh¤ºëfÃV„׆Å‹ë'—u2RöÜÄá~¼š#ëšåÇ ·5À µÎ1<}ŸÚ/9!«WñbÿBEMNò)â"|òû‡7@Í¿üBô¦‹-Šç1øŽ´h¨¥øÒû¹«t-rˆ\ÔHœ[AEŸ9ø‚€PºËÄeQ“Ñ7³Jt _Ä=7/r²u ‰¾ŠØÞÙË¢«ßàìŸû§E5«ÜPfyN(S©ß=49ŠÂ†AùJdŸLfc¿”ù£ƒ·B5áí•:¤Fá1UôÒW;'Ëœ5K?š0¡¼¹IS )çl§=j‚&½%­óîôµ‘òÚ&ì#÷Úñ¢ºÀ ‚OPcZg%ñ*<­#ŠÖx!E˜â‘—Î-‰‹k¯K=‘¢qóÉå•ìv pΣw¤áÄ2Uß=ó8äw¼Z§Eœ7UnWªuÓW KæX»ÞgL“[ö‰jS¨ÎƒR}ã«Êí“fï*aq¾ÌbŸTŠç c…vÒz·nà:d9=„ÒÍÖéÌÚ…Úê%T¾I|ä·k½›ÚO;ØK¨e=o›!MP±@}–VÖ·—öRV£§?”’°3ìÔXã•kþäŽJd6wÛ,MF­J–êM·äç‹ûDI§–Ø Þ2j‰ŠBµD@£Ÿ´j¹•á Â,—l·É)í¯ñAEø™`8 óC0ãó¼m&?¢T}LzgÚîLÈáÖVJ@T—D0p;à kÅ·ü Ó‘ÇwÕ“Ýëb9æø»BwAÞç™!wqï^…GÀà™Q×°Ý%÷÷}fF€ Vb0q,éÎ`Á0<¸Üd% ZŒè¶³˜[34]æø;T÷d7¸¨wZٳ˧–Ûqgæç…ÑÝø‘™rï¤ü¯ c?ÆÑ*xr#èÕ¼Jcà'xŸKåP‘ÑÈKžÅ­2é>Ag]—9Î_LÔ°›¨´›Rÿ£H‰äqýL:BÙaøÖò4ªg[ÚÂ'H×àÏCBb9^ÆÅß‘LT0tõ××qî<†F®{/x¼šv¢Ç¿1”U£³³£¦»·Xüñ‡>×ÜsàÅŒ²?:†™s“ç.K|ÿm~.«‡Ïâæð¡Úmx—ÈSNnÖ¼ËÔcoD6¹ò‘\Ÿ9t’ùÇ[m–:vxçVKcV·ñ¦¶C«¶ƒ‘8‚°¾`D!Ï–‚MK[[÷÷J·ãÅ?¬…6“V™u¾®®úDϹ§ï;s”×ÖÆªÝ((ŠžØ9asj¤¼ÏÈh@ÚˆäÌZõ÷¹¿ç+üÏißmðIŽïª¹w ¸'áÿ& ‚®¹£€6¯R±¥èK¥P²qÝ«n×UWUMöPè¿gÅ*>¡Ý?—Gú¾íS ,Ш5*Å>ø-»e0Á>WרH _:†Í)°°p`}‹.Þpƒ½¯¾¿Ëõ·âË n|¬:Uí³ —ÓêŸ=KŒ[ 3éB½ökïÑì£T#'J(È&±óõÝÀ1Äs=¬§º‚žÒÒÿN=n¨LÖÀXÆÝÒ<ÐH5ýkÜjã¿cÊ;ŽdÛh4"ÃØÀ£¶žŠ€[oÉÄgŒzã¯g§çRyù d]*9Ð!ÿ) %‹aöšÈ1ÿâî´2΢›»/çý×.ƒµáœ¦îbòG`¿W²5S²ï…ÿ¢¦¸hÄÄ<ˆ.ôû“ì2$æ‹­ª§5á±á½ p¹Öa†×8–à,6ïƒîÑfö®Q uÇmÝî5¿ÄÇg梿QÛ XiÉãL¹ð…„Q íCþD0ûL®­OQ7á(K|Ç–9P.d3ál¨½ÃܯNH›³>0ŠPBØ*\ XH2üæÁ x Æ€’WfáNê=™I+•ùGúNçRâ‘ò”í2 g¤Þ XeÇ»³•þÒO¢,bµj“·qØwÊγc-¦•-Š+IÝóUGØ÷\çÃ~'ÓÈØ¶ëùPˆ¥ÉnH /‘zr¼Z­«‰¡%A­þ°¾¡¿S£Ë¡¬%ähJZ7n’ÿ}r=%˜c´«ÏMý*[5Sò˜âLô_Å5…Õ¥QÓ ?×ênÜwVQþÛFI^4â!–mÆ ÃÉÌÛÑêÚPÙ¤¥i Ÿb+ôÉæ4µu°‹¸“ûbߊ¢/±Y?‹NÀÞ`Èy#åÙÉ#s*8½ñ~åèuµ"²Cx„IuQ{ϾÃXëä^Ÿ@-µOpg! 7µNlîš0©ƒRûtãâz:æ£(Åo‚¼«÷uOžÌJÉ©ø‡¹EA\˜p>"•uïFŒgêž9þKoý`¡œ‹ïÖîB@Ó§p-Fyåé¨ÖØì1þÂlЀ¼g³VÖû™zŒTѶÍëÔa3Ùãè3ƒ@jüííA4/:¹iu”‚L« Æmv‰óìº ’=r-°¾i‚ózkŠušØýÄ <|VòŽô‚«}°Öâ@Z}ÞÒ,œWñ„&žÇßk³É7Dºû1"Êv²9UÓbûŽf(Óƒ{ ƒÄ‹5üÝEùLë®§iRx<7¨ Z‡²_î ƒT}µmÚY¤)ñâºMø&ŒU#S‰ÖBQPÅê*–—CzÁ%–y&g½ˆ« Ðw:”ê^›rÑ Ç„fKŸ=ÖËB,[9/¿Ù 81o–ö’824Sg~Çj{P¦ÞPµ*-ƒ#…k×F¾’hß]Q¡ÔMò5²V €¾ÍU"¡9cp¤Ô`ûÄgÞH€˜U±n\¢pÞ€¹ºzu¯Ì:¬èoãõ£fƒT ?‚>ütŸð´Êó¢tE1Üø„¢‡ÇVƒ¡€£Ò¬w‘1læU+œêM} ÙY }ëÉbžÁoè¿­"ƒÈÙE><'faxö½›/²9Êèá ¾giÄ[UÑ™+h!O使•i,g”ýC½±¤>þaôeôôô¿Ãv-¥iADySå £ìODž.«“­Ú‹ÿÛ"xä’¡Elö¡eZœS·ÛѰT]øÃïõŒ[âÜÁ‹Ëª#=‰&¶½/I2ë¿Í#CJÝû~až9þ[+<ºÆ+æµnK¿omZnÿé á‚„³zFYk!á`,Ÿ hÓMIKœ(ÿ&6!¼¸\o’-I°{jœÚH&×Åô¸[}±)ªæú!ºèLñŒùâÉgMH´Mä^÷è+oþ“/5l%×ø8M29D7ëçý€+1$_»{öŽ"ÝGú® aô1.¿i[@¼¢œoWºŒgÈxøIêhlÃ…PÝÑ Õ%öæ‰AêÏ#šgδΙÅîèayœHšÕ G”iGý =´Ü>ÞVBï¿ÙØbç$¸º„„°>ªhàºctµð}Øsl 9x"þܸ'Kˆof›ˆ–áóB=\­¢d'7‡³zKö¯ª yÙšjùr}ƒŽ é{³e$7òíÔ}ÉX]ŸÕaÎÃ"J#Xª™¯ÖAÁð±nϳè*{о”ÓáwØ7œ9Š„ÄXCùm¼¿ÄYž;É „ú‹ŠÆÜY“ë8å´¿Qöü‰áÂ!«ESÈåk`D fQ½_òLPZ)ÏjEâË]îUF½gOC°t ƒàãÝOè]€Ô-bÞÆõ>†û]6VŽZdNB¤–_ƒK™ Ûãl¢‚¥¸±”0—‡¦ƒ¾•úo¥¦ø¦¼tGCzÂ×Ç¼ÈÆKÿQU2œ92ƒ ÜsJÎ Z*>Óú‰ ÛHû`³²îSê9ÔH‰;;¢“é˜ûTaÀ ÐdÞ1k¬;CÌsvJ$'ÕÆHüŒ |¯NÙÅßmqâý–'åÂ:t\¦}×P4kÊÇ€-˰*28å³y•u®71øF ]]VÙz:ác3_P¡òÚcªU`Ù¦hÆI‚ºŽÏÕ섞[¾ýN?ºVr¤É ®GÿtERÿBX=° HE/î<‹-bs!×€_ʘËNHa y:vþd È*é#6E1¼d:†y 3'q꜠HÜ8mÒVž$=°ÉËz“Î8×iÖ–íÝÔ§üòVgk~t ÃÏ|ó·ýM B#£©ßC$|Xæ6ü´ÖŽÏ÷†µÐ BExíÝ\6ìÔjyÖ[ÜV$ãl…€1 sä[§RÅ%tɧ­Òq­Ï’´Ïš®jy—Õ½þkÕô`ø=¯æN_‰0ƒúÒ'߈üèÍ‹Éi]¨Á`³2ýRTo «g"eþºOû«ôž›•‚½¡PÃþ;/À{ «d¬‹b4[•îL¸½ç‰ kùG û9™¦ ¼Ø%¾-ɱöîT$[ ŒU5\›Ád”ú*aÁ3¦ _ž3t¨ ƒ¼¹Ö¿Ì0ºëcö›jv70qXŸÁͧö]û¯¢w)Æy‰*ÄË(ÖØ)T4BÞ8Ž}öDÄ—ßz@wÉp$räi;ødw‰>NÏ= *瘠Jó%!kHqˆï='@­«trx˰.¼jùEËV%añ3‰º‰ªVŽá˜y”o/Yr‚’ycw‡ Lª]ÊÕ3®Ýj2N`\³7wt y¨l &µmixxñò;wv·ÍO¿]ôi댽äd¼Î»°|pÀxCÀ%‡˜Aèöy‚7¯©*øˆ §¦Ÿ én‹‘>ÍU6ëö ÿgpúèîk°sçÌèJóe¯óäfÍ R¨1-ëzIø €ô*¶)qâ¢*/óEkáeÖ¼a‹/¼êÔ¤ŽAqž@88†¬`Z¬óÓGóž2H— jVgs€–mzÌéŽG’úXþdsn°ìË+5Ûk“²²•iOþÖS‹LÏÌ5ý0]‘úðdUù¢H18–]d™ØÈéŒq¸xcäÏN®uh/x’‚N‹=ó|á…ŠÀFÄÍ’jØ`Ѿ³‡ Å‚VX¡éE°'RŠä®/Œ¹vY ÞÍ£ñ:… ë‚ ‰†>4dÛ;-¼û€$¹þc®©²†L&<ŽQfâ—“¹ ¯}ŸÐ“–p ¦¯·FØMÏW­ ª˜LgØAS‡*t.•k»zt{h Œæ/HNƒæNKôÎó4o@²#Z?¶­KÆl‡™¿ëJÂ#>—Œ5 'Íî‘0á4%·ZZããx¦.óG¥/ oU€XõNRÜê·†^d÷ŽêU½tm†Œ… Õ4+­ qB$FQ1’Té°¤ƒ¯(ŒpÉîòsPÚÃÉôO|ùï_1ú$ pè“þ ±º° ÕJŒ`%zr*¼ÛýÛº"ý™µØ;£Wè#mB"úž”o<-˜Úq —Vï/o6„Å1É;äö!üÿ!)$W‹¦C÷ÄÕvÜRlîþ8ˆ}µ7,µ:yŽtä?DTDçÎÀ‘ûPÕ@vå†õÉ3çm1Ûpdϱ›¤ Þ<ÕÿYjH^oB_ÍœnºËí¹ÈnLöºŸ)Vб!@uanÿ¹±Þ™M¶ô©ÉP°ck3\[¿ƒ½§I·ãvGúUâ_Ö“ ² P’C9ˆ>bçèÎêv&4˜>%|ŸÿH?†(ÕÏ Ï-„k Z´‚ö;€ô8‚ƈÞ;+u¥ÈõBeºèãìI]ø(¦C€EOhñ1tÑ 1r–W­ÃUL6ê>hØy„*»̼# Xí½Î[!– r¨MëJ' …Wö*J_wh3°<®éú$ñ$ª©8ÅD0Cb‡æl̤½ß«ÆT†õ0&™ÐŸÇÍÁÆ#.ãƒòf®:Yr§âp¨Iúð“=ìrÇŽµxØøÑÚvLeçHüsRÛŒrê£À* Å]5XŸ™rÖïÈôùe–`ÿ¤qÇžTõùîîîŒ~Ý( …•=¯ø®z$«˜oÓ1å§mÑ]%ö5©ÃоIŸ] ÆÝªXŽFŽ YAíŸ »èS‘Tî—Oè2™ABÏœgáË®éÓ¶±ên.#šðɨï/~†gÙo5NªÞà¾ÖŽ\½MªùÀÜFLÒt Ù°Ã΢Œ{O§Xvý)ê‘¢FзÿÂJî.&†U-þyˆ ÏR?lIñyüï$·aTWÃÑ*PøF¾Ýp#‚ÛšS‡¢¡Ì“ú„ çéÉ”î04®AcZ ýdncUÈfFuÕZn*gy† »ã—Ã8òÎ×<ö§¿4*´Ö«KZv¿LLÅ%ˆi–aû‰WM½í\­Ö©5‚´ìÅó-Ž íI¦ eÕ_Î:Æ™”“@Õ\p¨ŒYmæ•¥¶ã5ŽÇvXy:"!)‹è˶’R÷`ƒD74R*ÍùLEÜ& c¦Úé™/֙Òö.+À µŒ<0WB¸Žh–îuDøZäÛgʾ èZ«ÿØù½£½­¬öÜt©Ì¥eYïdó¦$s=x`·’ÞO@ÜnXÙX1œQÿKûcä* Úžv³ÉЭò‹FKÑ-LÂ6^/ü(ÃŒƒacÚþ½q©œm Gåf¤µ~*€Èr.®a„‡J´§}¨È´Ò¸Žh¶îqyßÓ‚ÕI@ñpŽ*éLC,tW‹zõP‚(òÁ_:S›­X“Æ|ûü–X—$nÇÿIõÿ¶3Få! ˆ'T`ÃÖ`^s l}f€Õ‡Lç^Q™Xß)ºÉ ‹ZýH†ß ‹j/NcÇê¯ë˜1‡.x“k €­|®Aj²ú¿kŠ®l8”̔×üÜñ“ÇÑr ¹²ñ%’«»¸ Ïi®CÒtÆ{¬'äþûÏ)ëZ±éµ Œ££¨|°ãÎf©êxK™·ÏûÖµŸ‘#×âB¿ûæñÂe^È—^ý»ø%Lüw!’#B\û„¡œ{3E×Þæð…ÇuEò#øËi†[5/oÈ!“ y„Û€ä5æÀ±›ö˜Ä,ÄÐ4 ÃQ(éT~&`%éëÇÄœÆ$›€_ò }öQ£S{Åä–UçZ”kÎë9*Á3¢^§û€¹ _}—õîS~¼‡4 Ì/µŠÎ²-4â0±ä˜E:_^DaUtçÖsxð)ŠâÄVµw9¬œòH/Sâ?ðF­›Ê'à¥ÓÿÈÛÄÍ‹ópƒwÚXÝ-dgl-ØåJ!¡Ó›¬‹qXѳk î錶,ß_IíùHëJÉi…/×<Ÿ±†¼Óâsü÷Ö‹¥çé‘Ñ–§°m4•­vÔÔP{6AÛÀ•y ±*ëQƒ÷üø¸ò$J«±p&}pœW¿¾ÍžYí.>'틼"b‘¬`éÈ:rZ0wˆ“Q ª éuH¢ø¯`„ÀÇφ8Ø@)ÀO7.ƒa ¹©K ãu2Í›r[ã|ÓÐʦ¢ª±Ùã¶G·-»Qž9DClÖÞ‰ÛÿBÐþ¸>›ažH9`½Ur¼“½¸D­‚r¶ÿO%d€I¬Ëzà¡@‚ØæÑ*ül¨\ÅÕÏ«§5*7ZèL»ÊKQ/ó‹r 4WSM—UŠIþdpbC®º‰o7ÁŸ%9Ñ–» 0(¬h ÅØNøÄtY°û©D½öغb+3¡¤)RÈKß™&œoóŸò-¾‚=r ßIn¢’~%Hhvd@9/{[#ò>}Ú″O}„õÒÐŽ§‚³ÀSšü+DILYPÊÍPå$›ÒûŠrº5ùs@t!ûªÏÏ®µžæT² Uùe0Cn¢åC“Øç&â[ƒ‹{½u¼£±:Àš}fØîDÉôÖ¢b©\Ä– q®„¼¤KPÏ*3ou³|+h´mÍýgX€ÞWþêý`Χ8ÿ–w‘°!éÍN‹búyþˆx¿B3w,jˆq¡)l‹h]Å›ÝÉúåêoŠÝˆà%nèí¾IBp×ŘëFa#8Þ6kR©öåÌÖïš%ˆÄÍÅœ¬M*#¾Š¿Âa?‚BïÎŽÔyKúÃQô`¶O¸`—በ¶ €® 0Òx;Ì J3÷Ýå^(.ã‚Зèe‡ÍI:¶7S áýî)ÄÍr÷k¬~ÔœZfî2Do*×zoøó*ÉLÑÀÑÀ²líáÏÙ!#ò+1j~±¡ÿ+ásÑ›Ç7(ŤµøRà MŒ’e`Ïß1<¡¸yµ^¬uv<ójæ_Z$WˆÓ,OQxq­Tòºp¨k¸SOÂ>|"· ù­4—iõƒåTú¢w›nâùù¯^úQLU3ò(ˆ H¢”­êÉt@\!cÙtº•vVüYôÀ¾X R }'Á/þëîg.O,kÅù¿’³="VT°DÜŸÛæ´î5æ´³9Y7}ó««<¤zO7{’ …Þ&}©Î·Ù¾ˆM¨QÊÙ®¤zÑ}2`g³›Þ:Åw‡¥V¿°nvmWýIÿÁú¸° Pþš­² ÀÍ„=©>R¤Ó.{ɾL7#óüÐæøm×%ºE‘X…ŽÆÕ¼„êþþ@ITÒ¬¬ð?¡>l¥Tð¦À ­\ŒPŽN™ÚjíæŽÙ/ô)\3|»ÈêB³Ñè8ÚŧY© aÕÎ÷Ý3@Ÿ¥òúȇKh]ÅÀ…ÖHåá#W;—¬ŠƒY+RkÒÕªÞñ‰×J ÔŒÍ)ž£^RŸ¹!CÌ–N[îØïÜ‚Ÿ\ ‰0†ANêJ ‹™tm¿dé¿ ‘ˆºúÅo2Ûð¨ò‡:V2?‹øûÅ0Êám»$àirŠL²‘Q[ÖY”[ª.̪cuQ°{‡Q@ÔܽP°FÃ\Á"b+ôùàóî§’Šªeƒ“@ B9#‡}]Š:Hd|¼£§0«œSå¤Ó3q¼‘UÎmÂ^¼×¤¨¢ÅäB\ÝžRÕeq¸‹÷ËcЯÏÛ)©dØàè­™e z²·llþ6ûÜåŠäŸµä9žåú»±Mª'VÒ¸Þè¡&4 ÆÝÆEu'²AÑ)÷¯Q|®ÂgHt,|Ëé¿•=ÕkÕ¸ÏCÄ•´tK„Q"’6Ïcz¡aUk-¯·ÙÍyÏ}¬Ú¬¦•û]¸ Û<þ 21V¦UŒ½;ª|RŽn˜¡§‰rü+®‡Ý·™ÊåwçÃÄPk&`†¦(÷ÊüUGq)ad|ï[ªîô4䔵 ˜=zE(M)@ ½Ï±ñ@”"Ðí»,!ÐÕXÞî¯M$ê6PkÇWlVŒ“näºíOW‹Ì’ñ§æm=íÛ›ƒe?+>LÞgg"á88ˆoF±¹íÅ÷ZSuW&†"A™W¿çV"[A ÿ„µŸƒ³E,A¬ Qt‹†¼¤ÇçÿäMºÅd'\Žã™)]8eJ`ûó¯ù”¡2¶(¹Dy~0,MüM{ý1 =^¸®ªg©}™1ïmñ–±ñØëié «èyÜc\O—ŒBwoºœx0Yz{‡öqxœ Mø‡v¨ hU¤˜—ËžjÇÙ8éP5PdÙ[šVI1ÿ›w7Æ‚ÑûͯMhlcû"Š %G+`œ‰?³aÙÚY¹OI3l¶i´Pûo¶|þ‚žÃf>ȳ=BÅV%òI)øï4}VÒÁ æì8kVö8£Ú ‹3„‘³ƒXI™)?Цdç˜æÍiøè¦Á®b ZŒÅk\YDH³§BÈ\rUíÿò Úé)‘ê·”%¿I“ÇÓ8(Åž¬s©¶(Z”‹Nvî«QxsC¦m ´¡^³)-ƒ4u‹´ SúgØØÖFˆ¬,©Ñ‰¨×®oÙm ˜Xw+£^l0\»-α° ²+Á#Xe@tœÅqQpæc \ÈnMLîħr»Þœ¬°b`sÕ*$zñ ‘¥'%YTêãÍ£üŽ¦æ‡„eš‚“$¸ýc>†Òÿìéú¿sùN«ì2: áñ€sîiÚ(Xà/ÉCËœÖ%ÕÅ"Åȱ”ºßõ@c÷û2uÄIçT3ˆiÄÒE  ËN%4I¿$ˆQ‚V‘Iظ>8•êÀï0ï¡ ‚y]Ô‹™‘„ë|DWËNùüoÜ…ž¼r}×<¶ã¾<ÉÜŽÅC㠳ᙨsžÕ鹂EG /sɯ1¶P˜†O´­?Œþí=iœŽÏXÚ« qô¢hXn ˼‹ÒðL 黎OQ jÌ"rДÓë¦UXI‡¦‘8ü çËï"£®µ¥ÅQ˜7/Ý®Ýà} sÁ)£~ f²ú!UæâA+ü=﫞À€Zï2a‚ ¶ÑMà8‰ö¯y’ÄÕÐÛï®ü¾ëª Ÿ¯ÚÚ˜ê:v…Ed¾ã “ÇãéÓ ƒß•…ÍE Mûç_¬ï@åæäà%`1¥‹lnoÉø 8ÀQè8[Å„+h.^ƒÐ·ú½6Œ G&Åý®iH¾¹0|T Ü†ÖmÀ« ÅX;K ¢/úÕa´’vHÉ«´åÞúElä¼³©³•(ª6ÄñËO‘_äžï¯½\‚¹ê¨EËhÿÖA@^F·óNÑOZ:ÏÉôXd`9²Û'°¿9P¥’&C¦oXXbá8;…yŸýä±…ùâÆa kŵ를§ [kfºI§ŒjJX.ÁÊØ·/Ú,÷kÀõ±_OáÿÓÑÆà®²UÔéݲ?ÖSÀ kE?aˆ)]Zs*¹y[ø‚f¼ Ôë¦gÆf_K€ÊC~ù‚ç¿\w#y9»ê[^«E­=©þÚF®WKÄÛ¼€®<vÄÅž§Ý±îjL³&)]nð‹ò„E^‹Ñ5çˆlípc<3>ãs÷fŽWþ@»÷znaß=%ObGªQü¦…e.–Fâø%²òFü†Šé­ýØSW¡R°H|#J«™ô~B/A¸ž5ï¨È‡Ôd*þ›ûC3a¡þq„ù„lH ù$Õ¨tæ‰Ï5ýë•ÃD‰Ã'¶¨mUY]Hè§1hë×ÔoxÝfv‰á@j/h\lYÊ&$ìù²‹±JFh²¯ž;9SÖŸé™X*“·Wö¯º£±^0î¤ìe “Ý !ʆ‡ÊuR«K¯þͬàªg»Ö )£–ªÎÏ*‘?€íˆ} Ô÷Ó’3Ý×Tïmo`+¤- |„™D7IWðÎl"Š@°Ë…’°.¡ qœUéQ!!&–bþÍÒˆZrq£¬ÃJ®Ã±÷ðI —0΢l%F‰PG¨DþÈEÑIÞYu¯‚%ÎA±EôÜ?t¿Qva8±]&WL®É°>š¿ÁMã`'¸~A™˜À»42±ÈÇju1VYèòÊRjÄO7!¤˜i‘c’zNfÓèì·˜‡àþµ5kTÊÐz£yØN†î‰¬ê2˜JžL~%¦Q þ±þ;źÿ¢q5LpÃi« ÏpQ2aJðŽdK¦h–Ñ: '(î¦e³gX\âu£xË¡Gà(´¡õ$[hœêKk(Q"MüfñbLú˧Z1Äâ Û6 9sx‹ò©Z:nL¦Êò]ãkÈl„$¤‹–ÕàF*7Ÿó èïVÙ»j±jRroÚyÃhÑ»4ÒêìãVßòdbu‹§e—M$ˆ Ÿ—¡ •JõЫï£ì…ŒV~|Îc®tË0ðW)9Iy)‰´\¬©`²Ù€h.¹£€—†îM"XnßÜ|e¾ÂŒ„qªj~ã€ßÑôz–ì=WާçáÝÓfµ ™Š–Õ76wZ÷±ñžC³˜Œ›w¯V?87Œ[Õág¾¿®K@†jciñ·©.K³<«&d—Í—7'tÀUÌ(´^¡L"ˆúEn?6‚ݘv;É:Ÿ’ñ‚vûÄ ¾Ëu_XÔ«˜Îsùò"§¢ˆF„^¤âá[ov3ÔlÆxtF_—ÊŒöG¥8ý<{Æø2=ˆ<ša’&@Ñ÷Nw£•GIš°Ua’ÖË*œ(Ukf‰H·˜Åÿ{,Ú+Y >Ï`1\Û—c]ú—Þhð' î fÕW„†¯y„Zqb†yåVþ-š›̤˜"y’£©$ñ©EÕzÔjˆÔ¿'[’ÑוK¿ö6Üó³l¼Ø¤â“gÏHíïfo:`86°¾Éè3ò%ú޹ü­;Ðk¨Döqi]£'·ûFã=Z=1’R°òËHF,·yÊ{ ¢–ã>oÜgÔëÜk·®h¡:ºß²Æ 0»Áç´Ú43­lÜú·¡cÖm.ùÖ\%ÛE„˜e˜ÿ./îƒ@Ú¡Fc•ø™†Xê)¯ã‹´]í­”BzŽÊßæÔ‚áwÎ-BÙ¿â9”êa*Ær¡ËÂl—¤cb¸ÁÂOMƒGðmç+üÂ¥Ô|Z0D8ëøÐô–£ÜS¨Š%wæÎô­U-€9ÐVnŒ4G:8wºòh¶êù‰jaó+A{òí(ÝÅI›°q\&Îew'o¬K™þÌŸ:_ÅC“­‹Æ-l„=, ƒ.”˜ðé[ÑaúÉ?¼®¥~áD–r-M"Í\2Ü7w’ÈœA{¡‹ƒ¸äè1wVûh‹ÞsÆýTšþ¶›²ÒÃ’­>8⛨L, k×v]ËùÆ^j ýž! иZÈw«8}[£éMg·N€ @CÇZ¿áÂ6"çÝ}›=Ÿ àô[}ÉáÜ+£ÃÿîúA¬ŒD„/`çßæ6¾yp©ïbuI‡¹'3=Н:ˆ&üP€ÕeRÐN ›¼F úkýƒmOrîŒjÀ¶ƒtí·4=ŽƒâÑb-F^Y½£`»ß(Ü\Þ2 ü5ÿ*?ämµ^ô¦¹*d½ò¬9cB¥¦CÇ23+± æqî\yðã}Ñ>úØ£Mˆg ›UžzÉIý#ŠJÙ—ùI´Ê¦Â)\ŒQõ–ô,9ÿ? ¿´úÇç›ql%©`Jn §q èõ§y-Çœô9 (Aø/„¨û.ˆª2¤¾’SÂÙ„Â2é£ßww“æ?wÃäq¸!ÜSÈüöx×çéÌnpF“ 2^6Ì"r­[Ü §ÙpÑîÃ7›Õ—Lër—Øî7_½ ‚·ËÄ£a¤!ÒvÊ߉yÉŸÛ-Ðæì¾LÔedÔ¢›¿1)ˆõ8ñKÕ¿Ã\©ëøñ|1±ý¼’„£Pƒ ùS2æ[Q[wk@Ì®eª`X5>ƒ©/5A0ørÚÍt'¾Í Ôh’„Øú |k今1÷öPMö|Éù>EÕÀ•¤4ŸfÐëRùƒ`ôÉW¥›+ ÈO2šì‰z‘³¢Õ®¡,@‡Š>[Å÷¸ ”‘²kœÌjE9—%iðâ\¦É3¶Ø(}LUˆ³?YÆöÈs¿N ÜWkvÁQ¯µ77S†±üXÚÔ€e¿>éE‰è´(‡„dâ®^jð4Ef!Ðh5ྡ€¸1`em2ÉzJø‹KCÃM~> ³™u¹ÇÛ6ß¼ +ñÏæô 熆ïõRžZˆ¨ßTÁ¨,‡¾gÐcïðÈíøä4’ØÌ_YÓµ:F×;L­íKA€ ‘›Asiêj2Ó"vŒ¼[„ Í\·[‰Ü1z:}=]/˜dÜÖú)žÓÂ*jÊ4¨9­Éu (Ñk , .ÖW»UèÚ¶þMǃÄÎ)QiKPK” 2ç{-e,¸/Φl¡L}>óg+Vò"†[@‡ÔnÄ+ Ç›¤Èª‘p/k ќ啀À_Ù(Éàù–›ƒõõ5 Ås 88úÖ=iË’O(AA¨ZÊ…ßÍ:кûqOorOA$Ý ¾²®<õë–Ü|lE=ØNuiœ<<úà•Ø’Ö0cÞ=pÆòõ/H·4¢1±s.‘®ÜÕÇ0tJο5oWxg—Ô‚Ò6%©“h•UÛ.6C¼¬ú÷ßU4Ö<ÉôyX$ª_ν=`€ý`7ÌWugòer®þ¬ E?Â-13pŠžf‚ {OÑEáåØ6ÔÁÌŒk8DdÞ×6i‚Ý~ž)壘“‰JÌü,J&hÛR– ó<3iå¦R ,¢àRW›§÷b'ý³áI¸Á ØŠLØØWŸUáO{¸¬auxÒOÍäBòÀ{dÞ¦@—±é mž}²Æ-娓«å/ˆàåãt² ;ý>+¸´ß•ÑVdfæ]¶>¤IOäà«s*LjÇTD‰ÚŽ N‰Ùz¨×8"~Ô>¾}.Ù£ÿ[ÐMR¬l¶„*?ÆBdŠxØ‘Ò\íñQºh4ÛÂØôG‘Ái|ÓÅg½ØsÖê Fªâúg1ãšñ¼¦£ÄijñãB²áÙÈ_Æ¥« ÀÝÇEQB§øÈÓ`ãšSy>“„Ü ÐÍMp¼FþÛlßРÁæ·QXÓ‹wìN£ä® Ý¦,Öj¤J¤ïër#š£¶\pæµû¨Øç?ÎÊ‚›e¼eÕyGM)ö`[žJHEœ“»Ç]Ƨ>’~ƒ¼àŽ@cÀ]ÏM¶Ç)X†¥}/ÞÃÑô:’ÒK@ùc$¸NƒÐgå^  ¾8c¢r`_‚©Ùç¼WWß(P<bWWq4jg‹nï÷‚­¯þDŽWÍ5]”J¡î¼4î¿èi?n—‰tÅ‘áÐåÛ|íÀ&ç}Tÿ.q.U6Âbw—2;†úGniÔÀPk<0Ÿì®‘BÛ‚•bú—›ˆxf!äB2Bç¶Bh3òt-Y«gaÙR‰Ó÷rЙwõ¤VÁ¼£pTÖGgë4täcj1… ¥€fªËw…jqR?0¸§ÏAcÐsPR÷7sŠŒÁ7[öv#e_-œ)0âëÆ@ñ ƒ¨Óf™F_C5-S é¥ü XÏå /mŠŒ‹SÒê[ÿÏ‚Å*f?» ޢǽØweâxÆ9`ðã ÊQŒ(‡#3ÚžÇyÈÜÛêÚ•pvÆfØòÎGLŸdi—íºüRùóŽÕdNFÝ%é ‰#ƒYµËAíÑY,A+">m¨‡BH +æ“éô³¦Ô§^ÛñI‚’œ|Þêú¸ò)‚-´(n˜uÈ2”|D…èð5É)€ßPhe'Ô->ñRˆ*CߣU/=ÀHˆþ,Ðg“‘fÂ÷æñÔdjµì’°Ûžcñ}u_UJñìÈçQ‘ TgìÞšh¨ÞÝ®BÎRvzkÚâΞþîZþ}ÃNÔóŸ¡Z H;P!‹>·mZ™‡Ìíÿ€ ó"ÐBáJ@÷·IÍYìaÈq\ 6ø³ˆm} ° ›%=O•¿,ó?Ÿ¡ôŸt*²éZ®àEø',ÃŒÅi¶¯„ëq¡÷À‘M7ûÒÞu©– ËEëÅ)%ñ…¥ä$S4v÷Xè½4túñàw*óVèp"ÆŒ=Ç¥Ua›&{b iØŽEöÔÈŠ`1¨éMº»Šj5¨ £×a†ó±<L¶¢ë:ahsÒ«D™ü’öàêÑ[-Ü£B¹ž¡ wãÉîrÙª‰såÚÇSfÚM2àær®zÔJ¡ÔþQknˆûw¦n×fA&—èÔ%B‡lAäm½°¨úÊ ìüzÏ&d&$*1Ç!˜Ÿ+2¿à†@C[¨FlÏçc©"U †éô“ö$binV7÷‹za¦§EÅç^,"ž0þ öì>ʇ¹Iqä@*¨°YK ì$S&‚¸†<=Ÿ ]u:²Åa€+?ë?eUh™¬‹ÉãÃÄõUìúu¢ÎîiÑ+!÷:ªæE5“EÁ¾ÃzìŽÉßDG±ÿ©nØÌ†›úb^œq,ã&®Ñ²Òžjs¬ÑL ÷Q8V”±ŠÒÐ8¸ö øDM¯ €o±¨$Ä2Î|ÝëN«’üå­Ä€U­’À—‘ù¥{—ñͯ­ÞOÚóØR‹©pR¿?Pø);7aLwÑ£ª€r”£†¯üT:'Ñ,'‰Yû”ƒÎIÆq–NkN´y´êµo“'’‡²)NH cWý©uÕïŽÏ„r™1TQó.WoæN0lÕ3õk/®ͦ~nd9PjÀÖˆ®¥Þõ› ISŸÞäõ’C{ä‡-_A&¥÷¹ìÒ»$¯ñ¶¯[®;+`Ú=DmäÌóT[ÝÔ7U—èØY܈ÓdùÉàõ¨‡µÛÊ<ÀON:242ãœgø³p” QŽhŸ2³ ‰]ÕDUY;t™Ž¨Ä3ê^ž2k™^ôV‘žÅi¤Íú *äNv´–¶¬<#Ú©«éh…ÞfdIÝ¥×¥ƒÖD2J¡Î7ävX^pzÛ|†”Â|Þ«Ž+–:šgKäV±he·ØÑFk•Ƨ¢y¹kj#Y„0Å:ŠI™Í¿á5¼,\ÄÝŠ ¹˜bk_óõTpÀŠ· p %TWÜt÷WFõª{•oiš'ôŽ+ßÓÓúG'»¹£´fyåí:êÏz¡Æº$.#ëºÝÉÏÇšÁq¦„CéÈN„A9×#Û€àtÍø ë¯Ëª ®*1˜géùáo¯4Oè“ æŒîÓçWø{"†¢à¹œÏôW …-ëjg¥T™Ó‡ ªÁ›ùr%_`h-`ß²”j±#6sã¥ÂRÝnô¯(¿N†þPÆìë°?zÍrÖ1.“Öå™ü˜÷¶n\™/y ¬ãŠÞx¨¦.d¤¨Ò®W¬ßÕsÒ9´Ü›EX~bÄLh3žªúÛ[Ö££—áú®1IòÃËTÿåõ“¢‡”‰ Vf }'#§šútö×ùÐ'v¿Ò£«Ÿ!:Ï #¢äëd–ˆw*VˆôïWퟴ|ZÌþÉ n€ÎEmÊô¶8ñ™2îÓ—o&ÈgÁCm¡V´PžŠ«La®$Ï¿³Œéïƒdàn­æn1@ÕæsÉÀÞŽÄd¬û:EzU¿i‹ü_ÃÙA3ìf¼k`»ðг–7!9¨3[þÃ×v Þé)3<¬ÔH*ê(Ã-#žtð±ùÙuø‚Ĥ«§Š¡üuÛLú¢ÓhoÜ‘FË Õ½ÃMÝ1pÏ.fÞ%€Åi•‰ã`‡ÒdeF„úÍ h51oy:†øç;6¢:fÎȰ=•R  ¶{…t¶XR‚”§1êÁ#ÔâG¯ôúL þ\¾© ]¬ ÌÚ:ðY\u§Ž,[ºŒØÐ9Ï͈p4‡ržÿþ7)Œî)±æäÂîÊ5­SW™c<ÓrsÍ%Í<ÉÐSuœF+˜Ó¢×=è¬dVpºÀ;¡¦2uÙ¡rƒÓk¦»pÅ£¦¹b¦âpäÍ!k’vËùŒ½ˆÙÑÊjHÓ¿ðT}ÝF} Tõb(ÏÝ ¹úŸgÒç‰ÊŒÂé4èqÂÓFe@€8Òþ=àÙͤ<À@ayÑtý}¡™ˆ›Upc¹Õ: ‘ªV3‡|ùCÅäð2»¤bœï ®Ž ëå3’ã»›âÎöÙæ…­äÒšØ]<–w½ÕBÃ-ì/ é¤Âô[¸kÌ´_pv„S5j3óv%’ghþWæÕ­T(ñhzÍÏû‹¬ œ¿îiæE¿ÓŸ˜Z#À†v¥™l†¦pÔ¨‡GoÌ÷ ìCîÅ„kšªÐÀ.$šYòßq¹“mÑ QGí¿ Õ½;äLå‚#"ÊÝAý*§ãP¡Ä¬×w® ¡`^è½·„ .œêzIFo:¥Ü…’pþžÿU¡3..æ¥Ñ¥ë{×Ó–ã1•Û\‘I[&\^¿¯ÕUÁDÄ™ÇlW8K3ÿ»/«iê­=4¬Yg’Øà§²°„©s.ß}k„iÈüÊÝ¥¢ "ËÈW -BÂh—ù~÷Ëò8:%8™~ãDcïr¿·ŠHÖê ëØF¸GÆ6ÄòjFyûê¸Àù¼ë ê±å/Jõ|z/¦ú!0=¿ÛÝŸ/7èŸüŠøIC-Ñ™L›‹÷¿0¦R†š;£º0 v›O¸3…€JûF ëØ…ŽKÑ=©¹jÔ±uÇbÈÃcâœÌµxs·bêŸBئQH›&·¹n2(ø?¿H5iyÔkA‘ï´yÚy± M7xdFŸ\DΙƆ#†ãµË­Îûäp(ŽòïáAì— Ÿ·¶-¬ï®ßR(M^T…¹ÇÈmOÇT¯ ³ýb£ûÅ0ÚëêZïÖº ë`þ”ÁÑf*¯mž#Ëý…wO3iî#xÆ_ÅÐö’”Ï›¹jíÆ~ÂnÓE_3Û©ÛÄœŒÕα nWP¬m0ÒF"/Å3ë.,h¶à?ÏÆÏÑ=æY;„ô^xV-3soY{ŸÎA¯ƒ›§>Qû’ãšxº×;÷7c~3à“­ -ý—.N£©\³‰)½jÞHÝ!Àc‚{ {1;æÑ³6}†Y=¹]ò•Ðd9WÉ6YKYå$‹*{§å©‰!ãÍo{yCÝÇo$Ù¼V:´®‰[{CF¿aû1;kù\9¿©ˆ¼9µ_]DWÛŠÇ“Ÿ /7¡„`âz÷Á.âeìÅ ÞxŸ£¶5”xèÒÙÏìã›èñÙÙYÉ?†ì,™FãÝlËAV(NNüX‡l1=mvÏáËeÄMÒeî·Vå–.³Þ• Çš³è2:E^xÈåI³=3ÇPêÅᛯ W %¹µâè5p½½%(žÆxû6O‰'Ës¦WÀCìJ¼ý¬Ôdµ¹bLð·zNÝ ¡÷è¢ Òp‰’ï wkÝ-Žâ)Ð}ãõOdP ‡¯ne7@ÒÛfcÒ°}+íSÙðï tÆ,šÝ¹ç65|ÎaNvÙIˆr"^Ãì»;ûÍ]% y!)°¾ùß»‚à§Wå'·y.Ç•õ£LÌ.cŒÑS…7~÷nƒžø`ŸYfÇöEyÐn@a”ÆŽ0$¸£î`Sâ©&:h€@2~Œ ¦ùG«¤<²Q¯Â¢Çú—ršõ£ËçÞÒ+]ì_ X_¡8LþÚÚø’„¤U6û\S‹ñeVu¹¨g˜ø,Õ×-%U£5Dx3 ~qÏÙÎlïì­š® ]õ¿^ûà°L¬ä™:0ÚÖ‡ÎJeèEO6}âÇëMpÚ4‰nV7µÔ3ù¨ÊüTXú]ƒô¥ñ°yG_„éÉÿñ‹³~ãs=È‹M}í…º9"üCøøZ_ÍiD¾?•\ÓY€&}·= ã„L¥Æ‘eQj-ôMƒ2}™[’éÀa›põùz±ÿÐÛâ½Âµ} ñi¹ŠÐÆ, p~(+ƒÐ<øž,ìÈ ÕÕõÏN¤„Ò|WY*ŠRõ\GôBÌ@ ~›s)t1b\Wfœ†é^ù†-g;^'Äj©([ÍþŠ^½)Ir³¿Ù~\ì ?áµÄƘ}–·}nÝŠÚoTC­ ‹¿æ™"iDT‰Ê0` [<îký!fÌÓn ÷u9ÔüÄ»ãʼn3Øcá 왵ÂEاù4.»ü&<NöƵƒiOâNj4…æŠÒs× L2P¼ý ií”é [OÎL? £²I”œ:S€ j0§HgeÖ…k Ú‚<´B®˜ØµP*–Þ$•<‹ :4þ©5Pfxu¸ïbº¤®cxÂ0Jÿ\©ÑÐhZWœ¿2É1ËZõ»³Éƒ:sMù†-I1 !‹ù8?X`öþ¡÷ùTˆ"ƒç®Ç?ôZãå=™„mm*'*”ûßF†ypíK9o¤çéç qœ{f¼¥‘ž,‚æä¼•Ù ê‹uŠÏ7(•Ï£_Ò.;V“—(G'³Áñ¸b$E3’•M$G¡ê3›Ê¨¥;‡-å10úP ©MÙGé´rÅL(òCu“&˜­Õ”újv–¥ýa:ácKÞŽ40VìOj=‹É7ýàæ‚°ÛTo­×(øjžgˆJ…¶£Ø®¿cñ%€<ÓÿíØ| óraq¾;Ã$·ÁÉQT¯¢¶ ˜#̱ڪ–gªš’£§ „ƒé,ÇGMgFêÕ«!.¼ Z˲1>VÏÓù^¶ ÿîI°ÑᎠ†ÖIz›íÀŽ1®ñNϯ²Ë;ù³Z=ÛæY5Æè¨–á¾°2FƒËß+QêÔµ&ñ‡¾¬Až~äÐ~µ"Ý¿%`ü¨¦zòe¨¯öu2óX¯Ã—8VØÄÏ\³xÅàYw¦{‰FÊÅîy˜§@¬>Ń”Ãú—öqì0ÀuO>‰*)Óæܚädú²R÷…êú¥JÓÀƼ®€ tTOF?£+Ì:q`v„<Ýô%`wWÅœ/›ö¤ã©C䌌OŸÙë;"=.aÀm?‰6}‰‹ $è(,6ÛÛß 9J¹pˆQ ‰q8 ìvº®˜Bx“‚–fÔÖO¯@ <ÃBVØÿo|7¼×4c¯tž/ü›õóXG–Í£^FR‡Ä•žI9a5‹“lòO´6½uœ0JÁ)¿ üWQ-Èa'¨–ûM;²Cyf@ˆ¸œD÷ÊÖ Ã:@•!;Ýïšð«ÊFóyJðH ×l¯øñÂÛaª{4š*"8ýЯ½ š/Ù׬uoꕲl™ëe9¸À:÷þzhq|žœ<ˆO¿Ìy8ñX;̆®)²(ØóÍ™!/‰ª’VŠ¡3 ã… ñlj‰Õó’“JwúŒ|{“ÀÊ)æ RLõ^šyVBvý+à,îòóvó}y|×iB/ÈÞ{£KÄé™ùÕÂò×Õõ †‹sÄ“¦Fœé¡CÂÜ1(—¨ß½KÙÆUŠ<) WpR ض¥z ÀÜ4C›yˆL ŒéýÒ rÕ·®ÿz7rpœ/þxÆ_ïß] -t¡[nä#ø;ê=lù¼¢F3À ,œ=w‘=H)Ïyï@×<8e4t¾€{U¶@»»$‡F\‹¹¥¬fWØ©$ótc3a×ÊÌ;dK”÷_¡N!ÄùÐÁc­ëøƉ‘²¨M+Ò¿^8ñzªù­§V/}òù‰zQ\]Ô(ÄÎ’kMúçmu Œ™þ§GÉD%²¹Q‡Iñžko’ ÅŒ‘ u7f3½Ô*¯°x ‡sò ÙÏþóÅ€"4ìõ/,ßx,éH”Ã…¼±$ù?±Zî ;i!4;¯‚ªè/f¯BÊdknM`Þ%w¾×QAåûg=×Hd‡éÞõÉã;Ý6„™WeÆÚ¡§ñEº¡kf€­2jœÇgt½«xìN4x ›ìŸ±&Kx”)¿ìjòo‘ø4w‹v Á™’]düÄgæ”ßFSõ–‰¾(ÙîM´÷Q¶T+ß›LتI¶“æ: ®'^GÆê¦!ñ­tu§—[Ë"¼°CtêØ¡Óo¶""0ú`ÔG-Üòù~ÁÇÿˆqj~°yôx{\’ Ÿ¥1JÁÛE² é“®:*œ[€qãˆ×·LXˆ|±‘Çz‚„ÑG—0vƒâ¢ý{ Õ©35ÄÂxχçíÔ|õ×5Ah±ÓÑ —©=sé27HÍœ Å>šø¯’]̓0ýÜ/6·Ý=ÞÍð‰UÖÚˆ³ãAÕ4m œ[yÏ‰Žž}–? NjJgêO¦»ÃPê'Þ[‘µ£`œ‡Å¤Ôìoͬ´å^öa^’Óu] ^ðÜzµ†IJChÞÀ<µ+XMú^x8èV\ŒNN4óÞ¯K)ÓÈž6{èuÐcWWÈûÜS¾…Pk9"ïR ”rqX4O”CP š¬MœÆ¢Ô)7ÞÉãeï1Zíi^»-Ý oc…¾eç%¦¬ö1ÿ, UR`}PEµ<}wôn¿­Ò=n䪡rK0ŸÛ}nPfYE‰ž …Q}mf ¬ßЪŧÎËšË4ÔfpßÑ€£ºk^JpàHáå—¢õ2Þ\8aÈ×y qU ºÌ"ËHÂRj†%›6b&»hw@˜)N„lcZ˃oýe°Ùî¬ô‘]êEæâò°½fÄ Î:ƒWg•`—Ðc&÷P®ÖÒ·ýÉ›²ê# ª£ª @Ól 9h¡ÀC ×^ÍŒDµ(nK`¸ “Š¡£?Ä¢Zcx‚øE–°[¾îèôoG'’ð·ñø\µ˜–{·eêé%çgÏfÍörË1s mxÆW»¸ø»¬ d€ìçn8ÊÆÿ ¹€ë«pó¡?†ÃGëL=œHg%ÂúZJùwsåèÝ6g{±EÏví¿c¾’NPÓ1eÛ(SW,ÇC1|h)QPi¬Êíü²+«ŽãìŒg8Ý_ÑbÁ,ˆùZŒðK`²G冟pžõ„O1yþ;Ÿü?e… 6?\d4„IP‡n«?ÒÆ Éœ;&7¼‰H*3?¬¢©Ðõ’„XyéÒiÙþ–"N%ÓçÁ'Ž{Éæ;н/©«?`ô+®Ç‘#ǼÎðSvŠFpëÜ/+ª¤xëu8IÈØp6¢»•ÜýÕ· £>x?òm‹£!:¦ál hÇó¼=™Ù\Swp¿%ñ«îʧ±orTes{ Ʋh½X£ú±œÀ¶“Ox…æåüŧ²3DB„À>¨±*ýJ+1R>ãñ’ÍôÙš–q²@/ C?×+…ø&|@ì[¼d—ÏÌÀ5ăˆ'‰­K4Ùt篛âa(š€Ò9+Aú}Y{µÇÛÝÿñ) ÌÓï=’œœp)1™þÈÜ— Ï”Íîf¬në/ò“uM®dAìî?•ÿ}77ºš-V°s³’?¸%”Ù†ÃwêpŸëH ÄQÇñÕÍÔõÊ"Ûk7ËêÚ>¹0Š6FbšÕ}Äôd'hßá/D? æâÚ?•/ÔÉMö6Ÿãé÷äP©EÈ6~c§p§ åÃ*¹†5BïÍÌ1ÑÛÚ€ºyË‹ü*fŸª%–°ä<0¬ˆ¹O3¬Ë«?VÒüãÅ5O)u"³PßÀÛ¾Ú6Ê?g,OÔÝ3.Ðx`v§ô¸5ÕO kÏ£~,˜Ýxò:¹:]ƒ¹r‹ïNˆT}ÌwíÛ·îó0Õ±uÌ$ØÞÓ :‡·äƒVÑ9…GFƒrIÅãÃ:̧#&F¨FCŒâàŠÔòÊ?¦VRZdãüU„бoà.D·—ôÒ@fåÔ5@v¥$nVܺ1¯ŸØOÞœran"va§Ð¿CvóXorIÜ}Âþ*ö®ÀRµBS™-M@.5(!pÈ3,ŸM?zaôhÍ^@¿ºIY^¸ÚD¤EžÌw ñß@„pèÛàMx-ª&±‚ÀJ³S9àNH*…z’ÆäbéFò&õ± Cû† ´´½¢K4‘òTñt™Œt¢QQN}&È`l3¡AÆšœ0fÆ&™x€HhïDëš5ê»D,”~J<üJ×õ”"»aRÆAŒªª¸ó·¬=ܺÔU+Ô¤ÿˆÍ&O®”Çöƒ=}³˜Ax, Õfá“6+á ,“@î³!¨Õ9<ín›¾áÛ,6,…EJž¶k8D¢’ÏYõãÎ^©>kµF¤kÙM‰ã‘i?ážk“êÊËKø±ÎiÆpR~ŵג+˜x° ½­a½]DmøiŒyÃA8^tû¬u‹æ­æïÅ­b.£9Öé`8~ ã ¾¨>’Âe q€|ebýÇRwN03½eCÈ”éõeGË:ºïˆ )Ñä¢ï¬&Hd‡Ó¯ÿITx¶Þ×˨úkIܨ«ºHävsqàrzˆýÄ:`ŸYg ü÷¦£·†YpHóXøRDŒM¨ËjO¢·"?Dð'žzÓ£ù¡QWu.x%ñµÒ"ï©‚GK³…홤V8G”S¼cg½¨Êï1Noðİõrãa žP‘ž!n(b"‘ºŸ^⤌͡ž÷ä“ëÕ3È8À³ñš×*²nŽ!züL^é„ç"\’z_-HÓ#~»Ö­ECK@Sä8Z›ê°^ïz,0ÁßÝ=@¤J;Ö(Ò•±jÙMC`;€i4?ÐÄ9õ–6Xè ãæy‹üz‚€ˆïsTwÙ¤ürÔj¢õ‘æ¼û2áÙü ÂÎýŽ2Ø ÂÏg]#KÃÒo0ßx¿ÿrƒ‘)¦-ê61!¿×ញtâÎD5™ª²S¦ŽvHá>|²Fª„û(ZÑtBȘSc"yÊ&SÝýK§j;ýX­*ûfd¥ ‘y-ôF‹'C)è\`©asJ1 `üQéíªnZ¸¨rÁw2Ò[o#’(Ä–úÙâ6O¸0ùŠjù¨/ºïºÜûYí—Ú¿lCŸsë¹³¹,ŽøY÷Í“¹w1ùe¨ÏsîO»óIA‚zZV:K+™ÎÿÝlM‹æj§Q&ÇŸÏÕÄì‡Þ s±r˜v³¯åX(ª¯®b«"¨òR·J»…8¶ö‡­‘'?-ºzA•i´½ ˜*‚.%Ž(‰g1†Î#>wQŸÂ6Š<å÷§ó©òh $…ãv©a¯_¡yÈà²ÄK†æfpŸôT¨ooùv1\S> ðihƒW»$¼G†{XÑ…Ùv?<ö´¤áQ uŒœµ÷óÝ/ ]pó·l“ÐÆ8ïÝ™•ÜÔ¹™Ö<òL_Ìù'ZôöLÛlº§–Øxš¨êwÇi‰ÐˆŠ2èJ@/nV®ó…·À<¢áíq©³ig“SDòÚ,´§›üªùÂyLAç TTCvLr9Ëu¿L¬ž—¤ÂÛeÈâºjôö6] ŸSÚÉžôS—ó@C²Â9Èò(PYâi(”º|bÉqÕ\e2þºOªÀ£Bˆ›uÇmJ5ûøzΣ—ÇÂWƒ;€ëÔÁN—Jßh øúR·`Ÿä|š…˜÷W…O#å0̈m¤÷ X€ š`fK&*D¸ð”²*§K'º y™Ÿ1¹™žL÷HàdÔΠ²«ú¼lï´£êµý)Õ1BN¤EÂE¸ÁHX÷ë8Ø1âj\fŒk9ÅOã&3¾¨Ñ´QÞ¬°‹ê= !×iÍï›æÉÉS#ú®O̬RÕÌ[›Pýý) 0opò:´ýrž’ÈrWmÄ8Œ¿Ÿ ùS{|];ÅQ…õ’ß"­h;î+ÎH”']æ‚ç© zÎj=äXÕç·gOÕþ@÷›??Å*ƒÎßà„è}ÄÆ@¡™ß–γÐÉNuEÂSä+w*<¾OQ蓮_ôàò¹ÝGHÔ—3“±XW¾¿d7M3„A ½|pä3Ÿš"-Ù“sm}b¤ð|RŪa!–+G‰„îGÏ‚7:~ÙxÃúµômô7çè!üÊ2kBL0¯XBÑI•KL’Ú|fþÖ»MèZ[ñ“Q@­Î­÷úp(Á©Ø˜‰C.ìÙ±`7bí8PJ 5¦¼Ç¦`{ðä-f†¸˜—ÏÖA(0‘0u…é’™¨óAžäpÞúdXÿ§CÖÔgÖô›Ëª]2>ô>æë8g ö¿ÚúÖ&÷; WÊÚ׎•w0þExd’UB?wí^Y¥_¶,ët œô,¼±rÉÆ&ÁjÑ›¥ò¸vglŽK ½ó8i¼Rÿœ«<Àç «x¡)7í¶p]SË=ÝÏB#ÚPxMMÊWÍ0&PQ¢ÿÅ ‘trR¶I<Ð×E‘ĆS5 ‹XÒ~}‡,ÔF U‡^-8†ÐÿÌÐÓ<ÌÁ¥ Eñ‰ÝA±_q—qÚPïdµ,? Eš9z+Á·XP8—»7Šÿ8ÜÞB!fRÒuÝ#öG×HÚÌ y'V·.ïI䊗e†°)ƒ¨ófôÛ Û”!ð›#Ù-Iµ-Û«°{SH;‡Óûe£ÝúË09EÜ?±D}a©³ú )"G;{fŒ ¯[Æ—|¸#·ã¬òHåíQ;3 p¦éóg&µÀáÊòÎúÕà¾é®»¶w Õ"TÝCÃ&¦z´ˆØóÖùó+S<ës&ù]ø¬­D‘@X+Ù(| öIlÙÀŸ–Íã£ÎòUž5ºt]q­Ýî$„ž!pÁ!în·<=;øÑ²ÀÞñž›Í!ž™0Ä(,·„ÎaZÁVïP~Ò6ÉC]ˆjØŠŠ¬Îº³ãWs½Bºµ»%/mcK?z½ì•Ós{Ž·‚Œ#w}M>å&­d,Óº k(–4X¸qügƒºV¸Ìá´^ —îÖo[„€qIñ¢¶é`»°ød:O íÖ^ÍTpU„„`îã?ä3›£E9Ê Q›Ýzr–¯"MHvÆ[“ ÊuÌÇÇnýXZKTJÈ“ç7EÞTIœ̤£€aÿÏ™˜Û?‘ðCjÝÀr«D…l€ùÇ•.F[€ž¢ǤiLj†ŠG¥·´«¤Ql­^üI²êu8&?&ƒbçmñ(E>•Éž˜1©W´9;¡:ZLNPö,!DÿÇAï4Z½ÑßÝÑTçý+í,ùÑ¡V³"µéIOQNªB qá‡Göo´ìT¶~ÇæûË5™æãfžüGŒU'<Žç盞w9šWƲf’1š‘bI{9å"a{ÖúŠ¿td͑ȃi¦&ö)B­TMD2ú‰f­h n°•ÞÕïéÃ¼í´’¶Ìè®RJ–xfùõTÆ/ 7¾áž‘’‡”Ót5=„—ßÑróA+J9Šû ‰¸r¡íißâuØc‰¤ÏO}/­„s*-…~éÉe yÊøãrêHœe vI}g3^aËÑ9è¹! Ú×ÊÑë\ ®Q”TÆ,n|~ŒY4ù„3ðIϵÒTå¦íu—4Ò†ÆyIØSÐ\qÕ6L^”"Óçd”/—wÓá{Q쪨OækJTËÂ~Ý0>Ôl‡iw^¥2y ¥5$aƒÁYܳ&I§Äw>;¸¬n#ug³o¸rÚêö˜6 EsñoõÏbAsQl†éÆDaH$ΆÆŠœ& M¥Kìí¨„©©ë°+«-Ž;±òéòWë?ÍÛðûGZ‰·{xZŽ cT’…ý)§íôÂÑ埨YÎ'–ÿú—è—}/Jã<ЋlxýzÚ=*¾—„ù\û;ô®¶¤Ë|»àt8=…ývS7×úȦ2þ~‡S²Ä7Úãu«#:3_÷ „‚;AƒäÕzïáæÅ!û0¸Yi^8Úž±ªlözc£qPA|ÿ‚Ì"Yø8¢¬Ða{:ŒÅ"þ÷iš} eö“¸‚ÑÞI÷ÿ»ä–œ2X”^û–~ç–‚ïÕä£òœ Ížmfê¶¡Z Sï“Ðeù÷1(ßRöDB/Æðø}‘BšÉ «ÇòMÖƒí¯G‚ÛlŽ÷r*QI§†wà‹ÌÎuÜDˆDç\Z°L.µÜ•Û/Ë«`tÄÆ‡xú) ühõ¡2N/ù7³8vs,r;Ôi$GÎÿìâÐt¡r`³ÖMÙÎÌц?|“…ºx TˆiÓÂæÞw_ }½#ëå |5˜ì…ÓëÀE˜PC¬RΦ \^r]WV1ŽÁ`ÊËô`X½š†{DÛ_ãÂâ“xÊwØ,á›1êp 1¦¾-“ªäÊïÀãdïR|æ¿„(2ó{Þíx¶i³ Q4­¯dkVüÐ 9tÐ!MCmÅb”¦=¸èS²üBÁ2Ãg›o´¾ Ìt2V­ Ò¬³©!»%»LYdL@ZÃiÔôu2BâÜÖ×ã:ï\Ó^JgmÆìÛ¼³›žò,Ä&7xSŒq›‹FeS&êȳFyîeûA˜ÛÆ4*ò¥N¿Ê÷áHÐèªkÛÉKðâœù<Š|)‘~éø]2OÏ£õmëÇSío!8Û3Å®ò)P æÜÑ®sc¬ƒ°ùçPüóÌšMÇ5ùÒNrÖtB«)8öv‘ƒk ùA °±„OƒÝ·[‘ÃR4šŸ6Ð%çÃÚÒ¼1Ÿ[ö•é¹ÂÉÑ@|È·Àœ&•|s:Rß5ÑÍC×5‚£اƒ÷V̾®‚ ?éï-¿å8ËÏ‚ûevH§4¼Æ3ÇíxêŸ|,#AF3îOÕI™È hŒ êé™pö8–£IÄëØ>?sÈ€qì߉I‹ë!¡èÈW§‚æ,’aoÉð`泬@weòÄ™ßë÷¥‹Ç(¨{ô­ø:LNXl5$I׉™ïF·Í†üN Ĉ)¹)h¬ )+ íµ‚ÆŲÐ3=Rê2Á$é£líÖáéÆT¶=1Ë;ý‰SÍäí2—â0„sûÙ«ß¹+ß5½ýe©ïD@ÚÐ9-ÝŠóD% Ñ@¡P<¹œ†¼’IGËV” cñsB½ v NcZŒîTWžHæ‹Ûeûøä'ÑþËŰK N¶ŠòÄ-zÃ2q¸ÜÅLí^õ Ô3Í”ÙIgô*´ñ—/Ô'ª= ›ÑáÈ¢ô`wCÖÔËÇJOü½†ãÿ5˜µð ¡Í+U‹Ã¾¸ìÅ•›šrœ‰µªŸ±T•p`'GD€sÁÎHp¹ñv´©’8£"ºÈ”ß/¬UµÚír$:|ŠÌü ^Tì²Ìz„DZ½QJ†Ö9ú4ͯÑpÌê* œ‹i~¹ø@Ýu³œ+Êg6Èõ ~ELVvŸ6IŽß a!(J“ºZ‘¶L*h2çjø˜‚¶(;¦ ÿ"eÆÖI2ýñæì%¬b£BëÍá u%ÌŠÉ5í`—¿ÏzË!lƒ«}‚£ð í9twDs® æŽ'ØpSræÉØCE/£ˆ´«Xµl6”EâF˜o‚Ülh—`qä+‹­v±'x-PÅ×[Ñ"‹Y1`F?=ô·h>œ e(·‹¤íK^|µZ.¤“+(m—Tx¤#³ÇÔ¡´sƒµùqD½ëà*oÐ…N&÷"7kaTth³¡„£ÖrLå<—JZwñ)§Bº”/ÃTàO*o”ϼ\ts_X÷NçŠoVÛg*;† ½—H·íz¤S?;¸DRFrÙ³;Íí±\6~—Œò™Xe}«^«¤O•+œí0¼Ž(×Úœ•Xy#B@Fdd+·ðÙ,>-)‘²V³!Šò¸²\ŸÆkT„mm‘ÚÃ@X½È¤n§;³ ñWv&¡¨ùo/«„Îhˆ¹eâ߇!U._àpöCô‡'užŸÚÇ߉U€ÃÜfOzÊÑW–rªzO}S•Å—¿*x]Ž2/ûìÃâë’ É¬'¡kîŒRp°ÅMòEd@¡bÏ,Jî>„‘„ýÿ2†0RYCï(}l¼1Q'ô¼8€ÿk¢-Mâ #öwÜÐ]é~ÿ5¹Í2ão½^fôõ&~j¸PmZÛ¶y ¿E†1ä ûF%:ã~€PeWãwp“‹¤ÀX‹´t+›p{þñS¶2N\^#³yL t#êÃû³¥í¤Ø©^¼Z´?.jQdu*ßâpñרiæØž}°µˆòù*ðzC(Ì÷ä£/F&>Ϲß=Ú%ƒ»-"æÕµ(¢B™I}ÿ3zZm P©Ypåö›Árd”õ“$nxE¥EÏ5F[ÖñDR¤üþ¶h{~U‚¤Ü;TSU2W`È#<¿‘öj*•Ð?ÝðXîûÌ`þ¸ÅßøõŠ?bgbˆª2ãú˜ÿæ9Øì­âyfæ|EgI{Vú4™ÐêéÁ¦û-r1TŸüØŠ/»ó•åЦgÇ÷èt ú‰p„$¦ËÒÇRÁ$¯5‹s\jðDQ~’L €V쩸õÑaToØþÞf‰¡N2W)Eó¡Ö,©û(Ï© hE7uÓf™—fÈ“ÒÓp÷åüÁìýÀº[Ã0&Ø5_†%¨JÕ«(aƒØÃQ#ßø©!Ù¿•ß ³2o2Ô¡e®"€ØíÄš"¤1Cû7þºHCþë&”4t—^ÄÖ«P…éûyKø ¦ø~Æ[¶s”¸ÎÃD¸ò•/èÊ{%@®ó7„ÏÝGIº ß‚þ™&¨L¨Ò ;ߥM‚™)ÍU“P ¤…fbºGo˜}í8ñßóÌÌrÂ51¾dö=_ri]^›í\“9ÔmÎç‹1ƒžïr܃X!½‹¤e@Ù!ãË}1‚âh‚ÜySpY„uÓˆXâ’†W .´›µd:Ì:]ëÞ*&ð ñæ!)@›Î„lV‰J™˜³Çî¢"¬ÚþÐòëQºyáJ_ís#Œñmߺfæ¸höˆ'’pük¿ DI mrÚr®¢Üô¾¬ó-zÞ.ŠÝßiö|çA-öÞW‚¸Ì,wCà9ÈãôFªü†ÁnÀM7›™€yuò߲ͽ¬‹Ÿ;¯Ó Šo{ô®£W¾ýE¿ø²…ÃzŽÇ pBó0°Ý‘É9“4*–K¯Õ½ëÈ@ªl¶ 'l∯B(lrk~ªòè[y».¤gë‹ñ‰–"~F=lsޤÐ$´NÙÃñOmƉmì¥rƒýkZT?ªýÚíBɪ Ó*`ØÍ1uÍò`!×ó£ü¸†%†¹Ù–É{nÔ¤ ©0ÈF9À¶¿ÂÄwÍõ[Îbì‹äÀC½ÐÆIõ~ááJQÿWG~C ]e·„ ò*F¥üó@øv{’Èö:%/„O äÈÒ88 ±šÜmP^s5OäÇ>Q­EËñ{4 wJÑ]‰NüìÈn¼ü{–B].¸4ž¸âšS’1þóŒ9SˆÃõFù óOÆÑ?Øý¸*®‰\ê­ýUëC>k;C³Ò±Éi<u9h¹~Rm-¾]6 Ó[ˆ¯í 8;¤KûǼ~I93Ùœ|ɳä™í¡°­²»ÈôL“Õ¹àiP»¼{ðÇR×N…BEÐì5qòÉÂðt¨©õ:OÔÕêïn€† ±ÊãÛ¾e5óc|Ú=V#o¢[ŸÄ=4¹L!}¦oÅt̨o=ñÐ@XŸFÁEÍÍ9²ÓVßï­Ò¼ ²q¯Ô£/{—v549P» ý#®«ÈqÔ9j•X;г`œXûD• •,qNº”â †n¶{­ý0(ô­~µ£«~úv-1ÕÍÚ©Û©J„ýXR°û½!‹V`ñžYü¨øäù^¶®:¢ u\ £òÀïÃÀˆÙñ a£×»Û£Haj³Flà=o %N)‚-~¦rÑ‹†­Š Jþ…9'öÁØÚ¥Ä]Q4Ÿx’zÊ’0ݡ׮FÇÑõöÎÝ ¤”A;0o ¡^xöïÑ7yMàDƒÉìXV4ß¿Ëu¥ÿÅ…LRâI—ÉÙ¬uº7{¦]K/µÈ¢s¨Ÿ-Î)È× }î~¸ Љ[”SXBÊÔ/â6ñçТ:¸#.bÐúnÃeðu0qºxÑpô…Â%ze†Ò@Lîô6N „¤¾†yš˜[<÷Ó•á€7q$¼ÉÆì#iÅRø†a`ZmG-äù‹‹Û¸Ï9½/7Žêñþ Ñ›î…%%Æ9»°þÜFøˆ8÷O“ #ê;!ò,ž¶§òñóq9àÅ!"3þœÝÄBky¬d‹8ò>7YQöÑ~œœ,´#EɌ߀¹‡ñ40ö¦7²|"4H[ G=¨,ßç)4­JC ¨™OUóûÓ?Ga~-w£Ÿ'°%1škqZ?¹v;¦n't¡2’È||@¸½Y«r\;…H<¥ KEySëa`§Ó?¸^eΘq‰ð>TX!Bð,«WÖÌqr~ÉVRDõ.÷HÚ¼S¬ÁP¬JTedþˆÛ]¸2jQ‹s#=€JÖ@:D12ððÏb=}ØM6zVpüö©5Ý:‰ •êhœq!Ì ºHlHMQú¥Isµ18ÊG¶Í £Ç[·Å1–ÖêÜb„‘~J€±q0â<×1öžÖÃíM<)`À¨òêçÄ74Ú ¨Ræi[½+á‰*&|@šý WnF: T–Ý]¨t7 #?%!õä´:ï„‘¬Ôìé°Í°'·²wÊs2û×·DÍði?ˆª@ö¡(´B¼î®Ö\‹¦$úšÕ×ÒF-òxþgÐA ¶LGŒšñâ“û„/uºûï¬IšDh †9¿÷WeÓ³tõo‹ÆêME‹(YKÑðÇnÔ$p:'&¡±w,ôÄ’aR ~VËh>³,éXMù„ŸF¶XÌr$í1ÒÑ5¥WÁ­Ý—w†ƒß0PfkÑÇ´Z ¶M SL}ÐB|!§çš¸6$åŸmžïºÈ_žèTOÁ[1µRk8@¯¦Þ``á·K톆Krvk#BHòöI¯8Á ·Œ¯‹ã¤g¥ÌXÄÂ'e ƒq‹^sÉ•ðâ©»‰ÛP§iaŒ%01uÈýZaÆ8OUÄëÃÚë×Ö³Øàôì<ƒHé:&]v5]ñ´në4?PÝ“(;)ðµ6Sñ L·TK~ïî3Òr ;Ðîn®@›¨¼&½E©w]U£d Ãߪ!YÉï‹Îñº]9"d!›â­‚J6в!}}ôÈ(jdt–¬£#žÀyÞÓJ÷ &ÐJž°á#dÉ?½LØu¬â_‚hM•ÂxlJ)yaäðh²@Y]E±f3åE !¦ð„j®)ºÁéU¢È°»›®(¿Ój}Åå[˜îRKÈw`"–¥’™¸éôuî9ÙäVI“{×Aþ¿ÝÒZÏ®PÃÉ›óã¶¹c–Êf2÷hÝ*«óÅB£Ý€•ýTæúÀŒ'ÖGO½J¬CqQøe0i¨œ³SÄãÒ,ò¤ª-=Ï=ÃvµÈçñÞžŽ¬b–žʨ~SâÅÅîmZk{–S fîaP0+Cô=kKÏüÝMÖ%í&˜±ÃtH¬Ý"ÇϬüýÅhNW1Å«uÖ6S4–}•ªÆ:Ç ¢¡ì õùÈ^ÝùıÇtÜîì’&9ËÑJwve'®¢¢NõŸˆ?ñ;`ëYÉ&ÜÐynå5-Št£˜ZëG/a?.H40eúh× ±T) IËsþ™ÕŠ2°¬‰ôÎL‹¶Dì\/ôD™^n߈yŸ8fæb?¿}uäVô·âÏ«?ý˜í‡¨cÇ=ZWA™ ƒe|¼ƒ—7¿Ç(ó–ÙþÐw%ÜÒᆉï”Ò®NŒ·°¢Ûõ‹F&âWOe ޶|Ãüàõs¶‘cuÎË2ŽSÇèìsmQÞ£‡©6)ªÛgUbÈ«•v¸Ç:¿@+D÷¡Ÿ*ÝhØŠmþëVg;‚ãMv¢7s5¡pLHg#á['æbir €¹‡oÿuŒç7sÖNó‰ÉoÃpûÑlÆá>—e¥{GÇn͈–Ï·Ñ.'ÅòÇ~ÔpQ^Y`Ù…»™ƒv¾B¢·£gBó8{­¬N“Bb§™=…¶`óIª&ùjô&~¾®ï6OùðOãåßXs§jp½Buüiêhq¦y’§T'gP ÎeEG°u,„År­€2Ù®±"oï¢g¥2´Ýè«Yp‡ZcN¾=6‡ ”Î?Å|Èä+à‡¡¶×6LÛ`»S”¼_j™:˜£¥÷(L¢)§ØNå«6ÇÅê“ C;ãçYJ·ø¶®“Ìû(ÇG¿EèÈÚ3T@yËÚ2„•‹û~ ö)rZÁ~yÁ,f¢,‰H ˆÃžÊ´´³±ÿR')§ÞæDUT½p`s[†È²,8='´GÏm!^¢Â‚ä;¢"ó@Š4†°ÂR"–ÄwM)[ž‘hsr¬ú ¤¦¥Î¾U8 ash›‘3§ÖEää4ÜMàò@M@= vêÞ‘©À¯]T-D‰]ʳŸâÐ^e>F =mE&ʤJ®à¬Š‚ ÊkC ŒžŸ­¼fÎ+éÚ¶cªà¶[½9¬ gcÀý>ŸgVøÏ§ò‘í$Î`nV¨»V„ ¥êÞµ‰Ž÷y¾‡Æ! ªbˆ<û5J—LŸÌNü?#áÞþÑŽãîà ۈ}®IZ%º_Ï– «ôΡ‹®°Ã S¾·³ÖôÙ<<æÉÝcÆh ç‡k`OçZ$VZ$Â`§g%Ï節6Vo;_ÓDG-­ùÃóìZ0˜Á"¦:$j ±¸’?…y&_0‡«ÙŰaQ¦“¡Í"Fõá”M*œi³F"Å1ßž Í|; m@¹šv6>+m²I®iãêß…ˆ°M7Ðð4ór|¼xž&èý{x¸Ög£¶Gq=FW†B-Àí|ì·Iv‘WïŒÖ5oUp”NÞ¬&ÝOÌ˰Åhƒí=Ø5PàcÙ´ÓG`x- ³«®{ý*I´.Yhƃ‡Ã`5u‡5<@o[×ÝDöžùçÑžEìÜWòkÊ…ŒWlu^MS¬Hmà;ù®eß'›îå¼1‹,N²[ùŸR£ùà6køÅî$%…2÷B®n!N$4­ú%Wý0SÈ÷*E‘‰É{6 8Ðÿ{rà7sjJ0hç%ÐÆÐ«Äœý­]@Žz¡Œî {6‹xãôbË–)»ÂA,XÊÚÿ«nwÓFÒ}uÄR⡆5ªkÝ`1-ä§5TED³#H"…nS#7E#åà8/·¯âþD¤äÓ> ‡â‚UkÇ6×’¢ìõÚµiWðpEù*~Î8‚)h0KÈþ™2‹V*^­ŸÓ‰_­¼¤±îDDéûTMrÝ6G»^S?»O¨%SÀy>³e)SLdôBè ª# k¤RS!8¥*U¾cÝœ§r9 ÐFäuâþÔFÇD÷(–…ì ŠõŒ¶ÖAöž„c}¥ê,½ìaØe›»w´5–¾ã:º•³ €:üÔ]J¼ˆ#EÏÿ5ÉCâ[˜ß[Ћ¶=»£LV õ¡€qÄ£@(ã¯#û\N"‹ñ9»¥küd$ÈqPR´a„™9/Û‡‘ ªñ®_<°Û©M: Ñ4>@´8 ŸUX"Eþðn¨Ø‚1V~²«;.Ÿ€2 ßZUš@7æt0 çȵt "b€PZü fÒ(ÀY€€@Ä!£MÇvHêU=&Ðí,ê„ÞB£!• ò嘃j·½(¦ÃK3±£ÉÅìjA_¤³+ÿ= õ‰yU'ûy’Ûà®ü滑KYãŽ\‡¨OIæL½…Nu©âžM>[æŠD°™û™Uc˜ššÒ4>Žg`Ê©ƒBßáÝ"²é{ZUjГ²njÄCÉgÇe{œPö~h³/û‹>žÖ, S¤r¬Ñ12z ì’;njØ8€LlnþÄÍ™œÖ,8@¤Gà‘Ò)†D°ÓÑÓ«ŽÞ3*¼fT[ï$E3^~A€w’£÷~èÞr˜p7p`$˜?Ónd Ø_ƒ{=÷¹¼R€hµý0~ýƒ?/ë>C¥†‡¢{ ‘Ö_÷YÒÌ'gR~üOÅt!º}r_kDªÐ$áÖ²p`[­Û_)J ]…hZÍû V¬ØÐZ‹¬Ö ŽC 5*Õ[ÏÇÝÒK˜§0Sü'’~Zh‘Ù’,/¡ÁLŠ{ïQ^ZŽiB~ŒxO×ȘbçŠdì•=ÔeþÙp犿¯N77hÌä²Ò§y²vîÙ{Ÿ|[szbÍKožmÛåk"i£Ä[áqŠÓ÷w0jv Ç}ze>Q³´ç­FEÓ¥xÌÿø•4XB.¿.Ésÿj4ÈFÂe?&X÷M’oPNR>-Ÿph++¡ä»¦ÊæóB©Óã'ïдßУŽ"ïßt0>»«9Õƒ¡íVÓ¸ã6Š;Ñšø¶VÖ°’ŒÁ@.ñ`¢®½@²kÈíâ!À÷™wŽaA¯ûX¥s\¿äíJh,›Š“Õtuî.Â$ŸQvø<†ÒH|0NFŒöí:¤ã„•"Û0ɼÚ:Æø_+Sf˶w+òO­D9,Ç&Ü sšM¿1ªr23ï” ‘…ÊDÀ<ÃK-ž~™íâííg ßµTz£…|{,!ZBínMUè %I=fpKLsOn‹I±Òs/G‹d-"gÎË>± ›³Áõqg‹59ôxrj”:zá dwÓÌžY%˜˜Übx;}ígŸ¨—žÕYð¤I¤«c `ÔôÀcÑOta{\´H‘ÉÃ’Ÿ.‰µ6 ¸ŽncÂUyã§°xB>*.ã{—Ä…F&F†P˜¸ÏI˜’èc“Ñ SÂß…Lyt™s·¾å½7Ì‘‚FɺM‘#ûQ ªþi`ˆY\|ˆâ –ä·t€«™`CbaÛRD^ŠQÎsyi'Jià9Dé‚@ÛŸâ$›Q:Êu53cîÉÊ“Y¨ÅM%ý ߺÓÌŸ4©à<Ëg’NÏH<¨7¿b¸ø zö â@ ç–kâ·(Ú‰žXö¸D¼®»òhÚ^]*Ö‡ûÿÄÿš·æ± ¡d-ï“Yêp•›H¥ÌGs+4q9ù7f®ý°áâ`îiq4á‰ZäR,ý4í‰Ö%@ö¹jȆq뎓¶M‰ÞžUϬ~U’<&;<“[ŽíPv®‘-wîüy “1,SðÕÄ3Ð@y³V£oH;#€K´ød[ÎÌÝ’-b¯¨ûòÉ Q¿J2Ù×{Fû1¾ÔIé´¶ q×paÿòÌóùæÐ…2üõVé¥ôš\ØX¥€HEЮÖ+Ù¸/ôà ^Oß}A¬){è«Åÿ n•G-gÔáGBN°ÇPPu•ü?¡UðÇ0±ðŠ|äaå|ˆLÍó5t×Ã#Œ=;‹0 Ü7]€”¸š+`#YLžS=Ël@¡Ê¢©ýÁÐcú—¹¢ÜEŸ01ù'"!žI{u*b3WÙ[u¬õz‚ñ{†qŸèžœc™­zU¹Ô,ZÄÉ^.@ÓBb”HÊ„;[…ß—ˆ´Æl¾bS-}Ó–ˆ¡2àw ]ˆI*Ð+­SáTÀ01ä6,±áÈN3£^ûwY£rL»Ðqm0oR`«œð›Ã®È!Ê? ÀõL <c@°¡Òª4µí´Ý­Hé/Fê¤Ð# ÏOŹ ÞÁEø Þ:#ž¿fGØ>:agƾÀ;$®Ú ´ŽÈ¿mÀ èêŽþY#¥J釴ǿd–¦%&5y[Ñ’á®óê+{UÐiw¸éÿ¡^ÿ‹•¡ g¿¸|uÅõ~°“Þ2®ÌSâbl»ã Yv*8 ±]ƒºIÚ»¥/Âë¨ís âîvêˆS7Æ}ÇÔ0ë¥Ï ѵ<Ÿm˜t¬é¬ó²´7nk­þ3KD]º”;Àғ㳺¦+ëøRÕœèùá3‡ÓU5þ¯tÏÔ†ýÍ©5L…Ͷðâ»…ÜsÀ=ìÿòлü‹¤¸%7ÄX~T÷Ï“×ö΃KSèÐN—*‡júÜn÷ µ~LS5MµOËî*ËüL|’~™¾ XoOÊma]'„|+|™oÄòÝÐdéû؆2àfÇbÚ‘- )|÷<Î[æ}õdó»µ]ƒè¸H@Ùº%e¡¦¢H)5ÖHGÑœsû‹¾™bëxµx+Í‚miº¹Ë2w Ou³…ô$ã߯‡ô™,ügY¼JÔŠº€À8ûP´ò©áêrU+\ZÐùÆ8 þtDqÖÊøÃy7×ú×MèHÜ2 ÝIÈg+\;õTÀKàç„ÏsϬº3¿ç#í·àbbamäR”`¥^€è2óÉ6—‘Y*D? %mµZ'_»qWKÿ̆žÂŸ—á&O¤ø<§AtSzþ”¯q”V&§Ð$qÏ9'¨÷7Ò7‰íK¸þã[! ³•§÷­¡<û7c°8ëBˆr@ ýâJuÿ6¿ÇŽ”‚‰uS?ȉ‡²‹1™U¢-õªAtØÉz!Êq¹$ŒcaåL.¿&U¬±l¬8˜µ$~­¸aÔ$")?cm×€µÒùÂ:ÆE4‰ÐLáw N>ÅqÕ$®S_bIÚ2ñaYUÙ² d ÇI´ AÀ96•/½Ú© Ä}ÍXCû–¼v+dÖ”¸ûã$ø§1è‡ävb¤tÈÍ©k ؘÜh7 ‡wŸ³~¯tˆpêÒûx6ܼÞ÷)äÒGo3ê³³Œõ¹3ßOåbx¾E.Çé78x¼ ûR³¶ÚO¬%2¥Q{’Wý¿šõBÕì(¥°=º=‡´ÂF?Gd]É:æ©\[U„ödÚÌÀóú2÷MרŠF*æÜ1¹<‹ÓJ ý7®*Òwþ+ Ì,£œuáAï•®ñ†ç¤›rb¡;öúy•@áC3„EEANMå³.ŒûŽn®É©½Ø/›Áü,rMÖ¥U»m’òÉÀqåL)ŽáÆŠslCh¥Ê9oúDLÕåÎòÞÿ—/+nÇ%+×N‘«Ô^ôÝ)œ ¨Ð´µ\kÅh[DíMó÷yWŸÓÐOOŠMhehE#À—ÿ$[ºG˜¦‹4?þ€ìJÛ승ï oa%™_@ÓÐS”[åűЦcäÕmnÖâPZøiór!…vuÁ¦P|£#é ™x‰·‡v´güs'PO¦žË¾1˜—Þ9¶˜rùz ^T¯­µ¤=Ò&û±·uj,–mÄÄ`ËË{öÆ×–š±Çy?³­À£œ –UÍ zF¸QàœâJAºP¡¬úÁunîtYÍäšÝ\3ϙ筬]!€â ­C¡Ù%˜Ž‰v:Ìß/4˜‡^/©Õ€\ÍK»ÂSæÇVˆ†ûEò!-«Ì_Kì”ò0óõ4 ¿ÔÂ9]²Î¹A uWÒŒûÙ”¬†IàaDÃkc(>lãÜÖWäåz <Žö ÃÛ”ñû˜›:Ê4*ï×›:(R5«ÞÞlšOcïóÖ £;àìà òNEP¢¹ óÑI©ê¾¯#­›¾‡h”ï56‹G!5„/´ò<Ýú©ô4œÖÜO¦ü|æmì]†´o#p$pc^‚5éˆ(n\Ý>w›^Í¢Bœ6Cp«ò µþâ ðYÐ(%âR‡V1­þÓû’€õaŸÊ9*xw10œζ†yûW/BÑž”ž}\eËÕüâ͇™jÛœØ. Pê—l¿Òä¶ö|ús]|ň5OÑã±^Ûn \=Ûaž5‡[”L,R¶¹oAa 9Mô#2Ûοt¼R½×NzŒÐ~ª Å¢î%©5å| —]T¢Væq_:;Ò›•öp‡ÀdiòeæIÑî’<.ù=ä&¾zŸúh7‰¶«Ò±»‚toQ¦³÷eä®ç`ê Ùjë §ÑÚFrMUäS­ˆø©çJG63þÝP»†Ftð· :Ê ÆE=Ö¬ ,Ø$¤~Èö˜Þ"VqÌ7¨/°l™ì„~KõM©Aä8O…){î‘U–(¦að·á°ÊËÍ!Ž3ñª†õ‘;YáÀËÙÝD Çd³Ć®ïOÜü_©iÓÒ™àu¼/‡‘ò*l±Ðû52Áh:$;A$‹Ð >[ õø]ýØÇ¥KÜM$¬ˆdcFÖÏ¡C* „ãE<œø^}ÇËÚ b±&R¹Çt+"ë!âÚf‘”ðØ7ì$Þ xU @^ HæPÆfØ/ÕÂÁ_#ÅnÜ:­Å|òF±Rý8l‰!BÙXá´1ªöNbò“ ŽÈá#•ª„¸+ß ®'5™´®ÑøY ¾§MX·Bw ÃòaM¤’(lm¿~Ãã òá”ÄÿR'2`xé¹Ã´‡Üêâéê 2JdILÊè´,a†@ß5:r ‡ïâ¡N×f c&÷Aª\U%ÙÅÖ©»ÝÊ…bðfÊ•fˆñ„è\û2Šb`W~âñò¾Øsƒãñ™¬F·Æóø—|Ëýg°éì¼I!¿¼÷–„'Š!¾J)ÇÚÏ]>ЧBFM“â`´›¹›ÔÄQpê¤Åó¿ÉäHâèëí÷Jÿ é†èö.³ýaþ9®õaˆägŸÅ“un3TI–òų Xç×:²åS³çEûk1±TûV˜7Ë~GçOÕUŠŸÊöÓ°RóØ^šUÏL…±bàë?Ô2x4û»ÖOÍ‹Pß9VŸ° '~5³c 6.Ð y =§±Z{Ë k‡ÝÈZÝqºKÕ=)›þ Nüf„Tê^ ÈQjÊ'yo219 ˜Ùq¿óÛ§]â ¡™ÿ/u§´¤†²ø¤%0&eÐüî3íZäÁ§gùmʬ Õ·KâjšÀbæqÿ@fK›rL îÃfæ½¥$ݺÛLÒu&ÇçF9BØpZ?p‹f4v}Èú6;PJ°$ºsTó*¦Q»Ì·+ÊÏ7SRÆéÉ3‚-w&¼÷xuƒ&eeœ$¢d™ù‹AÑò”ÐäÄEð/”¸TÊ\IFv••Åù»³£îÇ›2?¸žì%Ì <ÆDtèîpž×¿ÌöšíveÚ’ j×ÓTç…owà c‹€"g=ôìÉÞšN­jÊûþz|Ÿ;9â†ïÕ¶G>:¸÷ÅÞ+»Øy£²ê‰Ú m€YGBúè-é=öï kAÁð‘§Ø•°Ú)HòÑŽÑH]ÏbÛBGˆ &ÚIÔ0Ú³½Qv‡ÿ†(žt&vÓdÜ™ ËëÒõûÆMC‹Z|ðÐÆø[²µMÙÀþywíXín”^t*Ç?'f×¾ /–G6Ï›°]¿—]3ÀŸDWlõß@bŒMŽÝÞ;==(${kuä ~ܲð£zÄ{hC»,u¸Ú³d$Ú·Qt’fø‹»é°¨’’ÍüàUÿëîÁâO•V`~zSzá* ¶àAc|QîA ’ OfXÔ÷‚Ç[¯X«5дôq æ&¸[ýÄÏÂé ð-Ù-bhì8(úVm¶Ÿ=4Ê qÍXÛòñ,h÷w¢œ+mÿŸhg®!ÞVþóEt¤U‘ÛÑ.‹+MçÏ’õß)cÙBQ1uÈÿ_%xŠ i0ûözpÑÎ0å]6þÊŠC˜µT?³®zž¸ìZ«P¹æÜ9á„3;­ÚL2P¨êÂ/±iºfê%jt¸¹5Ã_s_µ–ŽË¾”RuØŠ#nÀ H­é}‡0”;h’¢½Õ>T¹_\zÒ -oûhÕ¼/wv¼bÞ ›>õäbÕµàâ…æËÅ…_HÐiˆ¬’Uß÷Ûw(/îß•NÀŸj’$†Nx[AÎõe—nÆÖ£!tÓƒ”X=qŠVBo[N&w”û®Ÿš&ÞÕ=º’µ³ûú­Ô¹ãŠ>¿§à?ËxáùG”2µC°ËejK›òiÕGЧcÖÔh)gçNt#YAëÍ;’’#T<7L±ŒT+ÊÓ”køü1$þh•b¼«åÝlÒþ{v”lÈg<§D;ïÈ"gTsÖn9e‹çš|ƒüØMNT¾Ë´Šd—U.±Â®¯c‹”©èR¼ÓMà–+•aÌ{È#jÃÃYÈÜùۙܟÝꎰÒ÷ðBT^΂¥dÂE†0šNäRšpºÕv¬r’ý3®ª ‘±Â}«{©åg?ðްuÊü×EýžŽ}£í‚ƒÂÈãÖ½ö×å`òÐr¿«BÆ"Y9Lh;ð{þet­‡S~É” °Ÿ÷æNþˆ¥PÏ,r$ÏÓ¹›¥ˆöÒÓ´þí¬y]@¶e¼Ð“o:„6{Ï-8„Vè,E.PåâšÛø»m›óGÈxl\¤9ÛÖ˜£¹Z®Lbà@$;¯jÕ¾«¸ºOÖ—o , 4?@ã, ˜}~3Ï aÈ’°üœédžDŸk¨h‚ZæJÛÜ!¨a¶â7Ë-3øAÕÒ%>Ìg»8Ì‚±d®Ä_ÒHb ²gâK+‚?ÝhªÙ=D4w/{É$aÛÊ‹ž4ˆÂµßKß ÜÒCÖãµj¯˜,טâ³ÒÇ¥¸[DJÛ㟠ÕnjªšfëüWŽÎüO¨—8²@&Eh¥œ¼ƒuò ûÊ],_ô] «Ë*cÓ'ÿ±õóî»p¥ur—2:ÓM\YDëil>„·QJKÒ>ÓŽ~EAO¥`JÙ,æÆË¶X…á 8®UøI°Sóîdbµãèà$_n1Û?௾ˆ2.¥˜G7š¦eòÞšäoCÙY&ªÍ÷ú$Tœu:Æg¬%ãòžnVty´MÎÌÿ[ªÞ¦ã¯¶x$\ˆr¾zLÁl²ŽÃl+²iLµr|lGË»$¸úyóø .¯ >7%ŠÎÖ„zì'ý°ü‚>¥¬ÉJ÷Ð_TÊê;ЦŸ%:7¡”è™&/¨d,Îp™1Sp„7nŽÐúâF7˜ãŸNïCí@×/kõϨ¸QÐm/`¶¥üw'0JQû]ó2l3WyDlC=4 6'ýãõeÑà)¼¯-’Iºe¼—ŠC—Ì„eMHJçÞ–M¼v°6“ZT •ߺ›„“½"·S*wq×'›\¿á:È(QŠÚÏ*Ãx€ ù¦‡ºRÉÁˆß ªÀX˜ó€RÑ#qÕGÏgËôA¸ëU"gÓK³œâ2™<†L¿^î±LüÍœ*ý™´Hö¦;ص”ÉT!ºèÎÁ@↊αð”ú Ö3¸ÿ¾Œ™ÍU{ÂH*³æGþøfF”£¤–vŒ[kHíì±¹Î/ î!'”òéú£§ÞLøãLŽ^ü4@$Ù­ÂlÙÛõ1ædãI¯ô!~Ré [@r¼œ ¹F>Yüp¯>›/=–Õ"kˆä§‰HXâ9w¿zÂŽ‚”“®d tãš)oY–²nýÔ/üAr™HÖÏ_êñŸj:°&•æ£qÆÝ¯",_‹xY\ø³ò•ø(Ðfu¿óÇ[Î&q„m¡‰ø¨§’Ðp¶\‹3ÉñÏÆÌ'ûãdÜ$4 šø… yÝ^ê)‘\îl‚¥R&߬5Ä„ ê,[ò8<…Ÿ¸QާžÂž;±¸=n-Om¥ô,I±ïÑÔ*^a.´€Ró£¦=yýÅ[“WÃ(„`t$ KQ ï\‚Gj|Ýާ̦÷û§Iz –>0 ‹YZoligoClasses/data/oligoSetExample.rda0000644000175200017520000036767014710217345020754 0ustar00biocbuildbiocbuildý7zXZi"Þ6!ÏXÌé#°ïÿ])TW"änRÊŸãXg€ÆqÅjnç]üLâËX ä-:7ΔÀ!i ñ?«Ý[æ0 •­éY»µÃœ•°mê×PÛ}—ׇܸ/ °˾]زÝ^Þ¨Buç_UwcmBÖŒðuµk.%;øåºR ›° †îô· VQÞòÀ:S.èÄ*UDœÁñ©ëQ‚x:Ê: ¨mÿm' ËÍÑÖKFf»Ÿâ)T<›ôM@dq ¯(áí‚ÕáSz‚V“ˆDê‘árx‘Ȱwÿ65q^é *·!×Í››5x­xû¼¿ÍòóüAnbé¾°•LÄhvE4Ï©‹¿ä^¼ ÎuƒÙu•œ ‚OÌ^ï¤Ú®O~£N#¾L‘<æÆƒÌzé c5Tk¨:§¿’¦PH1‚¥lž¡(_H®Ø£µˆ®<'X’d_éZocæÈHÌÒè#å†Òic(W’"zF»p+­NvûK¯/Våä>ZŠdÓãÞ¶vÝ1Þÿ ’=‹Xé’ûBàñøƒá‹žhÁؽìvÁrÝQ (Á~Ô$aI¼!c˜Ä—*ìs÷)¦FqüÏ’`4ë­ßé`èêp™­µf¼hйäÚ î˯)“`é?°h.ÕÖi¢Ž@Œ>†/&fƒ«~ì'u×'{Œí~—×}wEDC@V¸j½-ÔÔ™m©°>ŒÉJqX¯ñÜ=CDÞ,@!Ñ:BȯXm{šWàð*+{A–Wåí ×‚#Ï:ùß ¨úòº;ÂGádXÏ„!é7¯œ{æNë3ñh•Ÿ‰ËÖ§Òq¸5Ž”þPR*ÐwôÚE Èô&BçšéùiŽÉLãHЗWF óÁBbXu$ ÆÝzeV&Q~á¡» ŸùVö[¯¡Ðdãš8%#‚³V¢›[ßFÉ~ ‰;™5Wébiî²­¿'o4 æú“œYÞu…¾ºsû­.øo„ì‘^¢´âÉ&}´V¬ß[jú£Mh½Þ¸ÅÇÇM £2BᬠcAayÉ¡-1ÊD½-ãv…O•>ÒŠIHϵ?^¿ˆ¼NÆÕUÖOUkïC|‚+S#ÅhQµú²é]8’ªQgf«èZ,w[aÕ´F Éz‘®ÔýÔB-(ft"ï\«ˆ'¶hL{uí¼õû+yoýÉyd»=`Ε·¡8€rBE¢ìYÝgxiÍDhnö+‹”*A±ô£½T¨H*ÓhÇXíNáÌ`¦øÐ¨¦à¯ÿ1‡e'SϬex:IäºV.Ø åÚÙ#ž¦ú½k'kº[-J=ÌÞœg}·ù嚸øîÎb¬)¼NRXQð«¶mÁ7Xln&ØW¹…öiõ±./+Ü"O»¥4²÷3ûø³ê  Î@¡âKH€¤­ÍþÁýÉßf‡äc®¯ªd{ckÓ„MxšÒ²z4—¹wêû8tc΄·±‚†vñöROÏ?Ï*|èÈË䦿Í8û“èºÛ·/s½ïbr,¤¦[o»qhoK~½xŠ;+¾ÕþdC• ûaïý¢v ü‚d7p)D„Û=rú8t>ÈÖ¶?5—pOÆ-f¢¸Œó²wóÆ@{a°ÂhÉÐk— ÷#Ñ2ä0ÎY^”ËãUœ¿ -¨.¿Dˆ§ŽÖ†ªpõQ€Ð¾S&Rdý4é¶B2”JKd2çØPRIúQÇm,Fï=’JWqƒ1¿GðLRÕ0î&ÞIÒ,pN!´]DÀ0kˆ»øM âaz† ‚E´óƒTSUç/nð®}uÆÎ¤Kjc‹¼R¾²æßÝŒ®VhB#Ÿ¤Ôe†DÐìxvF†tfk…ùÅ£;`{Ã÷ž©³É)ûH0·c˜ Z‚ט. Å„Œ:ÒrEÈŸiÙ)aDÌ aó€ÜKGòËc4JTÞ?#°’4î!¯Õ®+ ÞÈ€`9dëÝ® :o!R‡p̨ÖfÏáþò±õÿJ¼uù¤ïé)›?Îl¤ÇíWWð Sã]‰¯,vIŠ÷jö^“ÿËâZh0-\»~@%Îæx@‡ê÷(½þXº>Àö”×íEÌ…+¸y>¨~é ø61.ãѶiQÛ½º)…Ï—Çã4)«\IϤB5?sÔ&gxV€`†·îZz…nt¥ý´Ä ~ž|˜‰ÙZÌð’B#hXáÝ«-3i. ¡NB†5mÀ_z™t›¼«8Þ/É¿_àŒm¼¦ …ˆ>80™`2âöf(F?ØHDÙ8÷aùSW?-ˆÔÈÂ\57'"‰ùÀšVŨ9A“ß¿n%èÑYƒ¨6B„t›§ñŽÃÁ<5l„ȶyég9ÁwÐï®îQ.!e:ÌÂGë"v¡P‰_|«¤™»/‘“R— FlÝ/6Ù~«¿«Lvzþ«Œ"q†Ç³@ë8ÂçÖDn™…©°øjK6çA«þÆ¥¬j6uÒ€œvšº÷Õ‰V\«ß¼žÛ"!‹Š;ž{oþBÃF–˜§ôÞ‹`²6¾ÇÝ”d,Ä,€šÃÚ:™’ìždÑXµ¼ ‘” Íš¾BKÁó²|V6 A·è›hñ”‹’v­±ôˆ|/ó€X™{vu¿S"øÀòlᦫêwþº‹¿Âz§Þã¸iéRÖ{þŸ2=œÄÄd U$OòS¤­HƒÎûBÊc¯¡iÉ—SWþø|¬ ÎÏCt¡cfót©ZSëüÕ¼£Åð±&3aÒ¦Õ…÷íV‹7‚KªŸ’xÃØÆõ‰ ÃìÇÒézÒ(‰È»êÃFB dß—ûqãzˆ4×¼Ùú†ñ‘ò+µ£/|œÂíóŠvgw–l"ÑJÛ{PTJ_ÕA®éÕƒÞ(9#ÛîS ¾ ãë§ÅN1¨îæƒûk¥& VÁ<+ºÌÄÈÕEåx´RˆB«<) 2h“ôÍ£>esY T hþcSŸ„ nw-Enšw6<{£û\ã>Ô/¹–F÷ÿ)J¤àĤ—àJ"Sª8+éHã¢#ÿwæì½"oŠäI"òÇ𛻤#V±Â.R=±¾É.âk·€Žy‰ù좃w”kŸ‰œ´…}r‡oKs¨&>ö¿Ö¼ª™1ܯʿÔèî?hÔ]UGö]ä€Sº°Vð+ïÝ< !MT*Ä /‡_£‘lÂêÔ­¸ìSÝjis0^uì<ñ…¥ÜUM~ç:I¿÷¶#Âs8&)'§½&¿á‚ ûâd}ÚŽ$±9Ä0ÆÒj2öñ£ï3"v}"¡ùñøb'Q¢’Bù©P8ã>DhµõÐðZÐțž™Y°üÈÉXFÖ¶•Rþå±1µ¯òc,w¨_ÈÀV®†XÂc¬ù&“~Œ6ö¸˜ÖLNËÞ^º§‰5ž3õWB&Rw·ù8w’Œøb¶n¾¡ÕPf5)|cÞhõ²F úÁØ0WÔAdÛ_ãÝúVôÊÛ‡’aÄ4ÚH-y6ýó_/ÁF#B3è*{5$&}†¿«½|q<êAg|;ŶñÆ:Dú5îP”µŸcäÆdrën’0ü,Š®Œ/YáÝ&>ö_S8ÙóÏO±ÑÏ­b>¥n=¸Œk?»BÐì–¿ÇÛüþ46U¢”ÁïìãÓ ½¤[«ILò t~WY _@=‰Æ¤’³.¶å,CG#ýMÙL ~΃‰ÈØh¶5{·@Ìf0>Òhª@¤¢Ï•9j‹t… ˜¥£êÎüå^ã9“$š\¢gé—jþÇ$ö鯮xä-JBpJÅBI‚$q”ÓxI=Áuʼ £q»³ç©õ¤öY_FxŽŒÇÍ!3ê3–[¨¯S#¦i§ ¶±US™oêJ;åV}íçï2µªêÓRƒŽ Â{pÉäÍSë×èîÏà63VÑŸR¡ ëUN¢¼ÕÙuê¯ÎÃ8bò}¾÷Ì ‡ÆÓ{Qréyv6dW¯Ë'ïÑuíV»g2¹¦¥“½øÌDñ`…ïÊ¥8òÌìó„G@àè×o#¿]³WÀ§ƒÿÆ/pG‡hµ=­gÌ¿’.¨2/òtmjúŠPT#; ôU!@ÓÊã‚ÄcY(Éã±þGdÓrd@3uê_|ªn0‘‡pÔ€ö;_*ÿ¨vem8uÌoÞë¿lÏ2s†µ<¾?Ūê¿Û Ó®>E¹ß8ncöfé·Ò¥Ÿ›F÷sö«´ç™ØSp?OoÁ ž‰ í8d§•=jCÐ×Ê Eª  ûPÏÏFÍ„ÀÖ°­…T1©â§T£ôúGà'®¡%tÊžûPÏ__lÓªíͧ•$/RÉ%µ‹–¢„K£gΩ|z `uää¤M÷ÉÀž@»m‘EÙÑapµ?tz³p$}@ó&kôÂ÷&­e^*ÿÕôóÜœQ‰<ûql™š|òé¯\þŒþ²æó’! #¯Þãí_öpqÿô[qMÜ\Ž ö+çÜ7šÚÿphÑõ#z™¯'(Õ»à¨nùc×ã£8Ÿ©M<Y{+Å#h·% ç”8 X¢Ãg<¢uEFÑ2þè™òv÷©Ësô)\Ú¡>@§ñæø½pɪgñ~áðF‰`ò¹€cúÑ_9óUÏñ=Æ ïr6ìg³ãÒÕe ï}7Á³ˆÔ$ñÇ|CfªÅ Aó];ÝÀ S£Ü[×Ñ.k½'+ëÛ}¬<·w—É¥)'¡wZλßê¿ê/±ñÈ4£˜6îË zVÑU4qk¯¥ðÄ)€øÐ4{×0¤öžØèž âžñÒÒ"æ‚ð®×Uknñ·{ÓZ$è%î?´ç¯'ühYg¾Û<ðÚaæm¼«ÿgLŸ‰6ß“A>õ6Tkù܆-GY ±{Ïw÷OŠö %B­¶{1dz“zm8ü‘KG. #¤·7+;ÏÇØ‰µ[0„*róìt ­ˆh¶»³)²|b”uÝüëI—frÿ¨92f’}¨#Êm¦ÕB,l›Ëá{ï!«TØÑ ¬w•@QÃé“¿?ãÔ­>¶7ó³îÙKµÇšÈó"óz˜yƒí®3t&’ºby ·«æ’Ê–*tô®Ý<ß]ÖAέšs”$âö-D”Tê_¸:ÃÖaÅ÷|aТkŒ¨„­# >7)<ò¾ µ~oÛ_N‰,ˆD“ES­Œ5–E2’kîXˆ`0%2?5Y‡ÎÕiw0HQ@¨.'XŠ&™þ㬠†C‡:“uˆLe×"›eÛ88¦áV"êÅPXã5.²M÷QÆ¿¡U/ŠsNÎÌo…'Ž>¬ÖA àUq„ZuÐþÙöD–¼ö+Š.à‚e7yÍTr³yú_ìäë6êÂ5N7YÆþuŽTþÁd«u7ÂËîÁÓA™ u›†è[ÿã&L:Í–¿WKΔâ5ï…aÏ~ˆ˜Ù ÓxÃ]ÿþ£q,`‹øÄ;'$ PúxŠoëE¾›Ìblu–?DÍé—‚IÌzïÓΤªi‹Ûæ—šˆ~Wv#~Ÿ¼ì7w…íðLJi£s.QvÎEØä ñºHuù¦!2usoÉ l ¨+¢i“4jâçòú²[66½â§ü¡¢qWéùz '†*'\—ö×úX£v ÀŸ±¼â(åq¯ÏÓ#Z-—…Loxm\¢öaÞÔY2ãG³°&Â…ÌfEæéLSgv¡3 _*'Å ‹„‡Óû.‘&ŠIö1f‘ûÁ0¹ ’€‡©2vus<{†)?ª§^ãEQªñz1PöÜa¢/¥s=#ÔQ·Î¹)îûËÄz‹ŒUW¦‚¾^€&Ñm]°ò=eâã%«¤Të–tÅ^)}u±~Fæ—'W;w>útàüÏS¼›" 3ïÎøá|v&uþ#‹ë¶ EÝzH–ç@[Ã#ÇÕcñ=k[HK.–Zâ~Íl 6R2†Y´@* A£¡Ë`Ã^+a¶ßÆM_·\k‘{ N£Š˜çØ#ÿmÖÔ´Ó›7†ýxЄճ\îGPÁ®ËôÕxYW¯ÍAnú¦¡tè{ ψĠ-U<:Ï ƒÐ>n=÷+eÂt›…»R&£ƒ²GñlLPz ·«i ´X*ÒéI%·êÒùÙ3$2<µY÷†Æža®ÏÞ­K”éJˆ­ÿÇk"``»@¿ÊÓ +a¨,×ø”‡@|ËÖŒè.¨ÖÒžó”]„å±;53wÚá¡Ò«Æ¼¶áÂwKeò¸Šï áM-’æ*¶÷%Ìí0оÎÎÿ{ ) «-«TÉþÒÁ˜Ý4·»í=ÜOêËnÝåzß F |Îñ$±³)7)K£47ðô”dó&*FÊwžßßྵØi\½ì©bÞHŒðwÈˆÚ ƒ“Pž‡¬…ÞüÁ;ƒÿJ/‚MR'ùð&Ð"d‡Ió:®éù.30I±©eEJ(E%k¯_—œBHF¸Jªà+éƒÚÊ»wÃÞ‡âð‡ ÆX‹‡ŸÝÏCè_ÿÒ§ƲKFÝy¾ z{cc²eì$0qpe?«œÉ !¦¦ív”〠ü &Öaºó04r 5l©QEÄgÓˆ0›(ì nòè•´Dsz–_ Uð=ç䵪$ €ŠTÊNÀµq~,þšãy´q”fzrÿ™³z)WSO¦:îŸ/üG\Wi‡íº§R„3BE\/ØÈ9gb°%GÓ5ÝtƒÉ|7è»F/‰1ø’pSZgÅ£?\ÀÅJÝÙ[ÓzãØ›à½ßxµÐÎï”r¤0S ´5ÿ¾Eœ1™¨+¨|@Õf|wãxïzöªõ}G5‘6\¡øŽÅû´¯í¤Uu ÞNôn]¬úp&™ûɰ´7ƒœŠà\ߨ(ý lGˆKˆ®&À\¹ª9º¦B@ð™d<ÑïázLj´’û¢ÁVˆª'H0,êvÒ«( yÕ|{÷Ö ½ïf1У>–×ásÏãžäD¹„«–°úœë0ÈOŸÀ‚çA”ê#åu'w 7 ­å½¹Úã”R'K[ZzG“R¨³–*[»‚¢oœVÏÄÆù8O›Î]4Ò)õW‰O“çÃH–g„¨ýÚ°l>Ê-è=Säs5åÏÇ¥§;îYµÁ¹L‚ÂÖ@ê(3‹ÕÒ6ø„9Ë•ñ¼÷>ÓeêuBwõø1ËÛcZ§y0jó{ Õ¸€™dÜ,)[û¾}‰ ÔAŸqV4í§éTÑè±ÖšiUHЬù?årt‡sx„K¸·ç@ßK,„Ùµ»cÆ?Û Õº oKÁ÷uà À+Z#¦AàX¾ë]‡ÈÂÝ8<ù%¾á:±=–BÈó{•mIk!+ö*稨‡Z&·.êdéíCM7fö¡mÓP[ÛU+À§J×ý?Æu OwÞÞ z•s‡ÈšþX´:v)~|jP›0ÅïŸ&./æÕùQl:ÿ¡€H+³è|©+]Hç 1Â÷_ ŽÓÈŒ¥ëË↺>…¡’²/yÿuбk?—ÆG€tê °¡µŠ… Šs` BÕç»%‡ÿñôK{~ðF?e/é£ý£q{ÜW—@¶•ï+È…ËÏ¡¸‘Yl”ˆ.*9Ø‚b‰„Ós-*~æJ#­èÉt™ Z>êŒn‹þµ<êî3„³‚–‰cÄêß¼¨òB8¯Mß/lé³õ£¯«pW • ±§†£UÜ=v3Út¦…jÄ6v]§¯B…ƒ%˜I›vª4]<Û8jÛ@rÔÄ@”ˆb1ƒÄÐ×있{€-¾ ­Kí:mä²í’R`¹Æ°ëÓ øç ¾œiç_lg“0û”®}XȽ–ZSª2nŒ'*­¨–W«õ=#M´øÛÒåRT¡×”3“1‚Y‹®zþ^´ {q*æ@‚æñü&_3çPÐ}Aò+í¬Çàm8VH¾÷]ÔUÔ@äûOïj•‚çëµTò3¾Ê|옰Ĥí(î©$ ×2† ^.•ŠV‚Î…àv©•?Ù|ΞÐûsÂàѺŸÓ“²ë „§çûn,Ë÷¯—À¹€¥5]x”%Tu?ŸJð<ƒ ×RcG!öTñ+^ÞÍDCÞk‘Ma¡´Ã07ŽWüq18S)÷ÚoPƒyìVä¡Ô-{Z\øYŸ7Ñܶäµ$÷¦fö¬=TI ýxÁù“”FýP>–µÝ|ß­$ùÓÄŽ@–ƒEeŠ•Œ„ÍÓ~àgŽ–lh ¼jHü;R³Öõæ±W#-ëL‹°¦ë˜3ØvV”h§Si—. §qž5Œ]Ƭ—Êš åè®ÕB9¼9âS Nhh SýÌù¤ñ“¦ ž7ôÀþ’;Wå#Ö6q”@Ofá‘k‹¤ÑÃçüa~êƒ7¬ Mq]Ã3î4ï –…ÿwö¦Ù 4SaPØŽJ¦’)ðÏDÈ2,í%…¾rêFJ7{c2ebºéÿ¤G#Oø_þ¦?; ËÆŽ!ÑWѺÑýÚzË7Ü)B䱆¶uI~Yq Eùr±™»€bíÓ6¿ÂcÃLµ ;{†`·wæ0·žy©`‡64³î¡Ý¾$,SËVÖR2éøÃ< e›jÛÕ`ŒuSõ«ú΃CR&$›íó@‰»^ÙðGáâŒ<¸ïšä~–a¯´“gq‰N?¶NîoÃq;î=¢ ËGgÃ,Ðë|T¯H‘3˜=è—Sƒ`px¯|à « |ÜFE¼ÞË»µÆ‘kÏŠ+»ªƒ(¯ß´þU¾m·s~¾Í$Ó4çñmôÃtC»ß¼ƒ ’®®} t:žÇªÄY:žÔÒHón:gæWÀc¶©HÚXmÐáªþ6º¦ÚZ1pÓŽ_Xùj£óªR¤Ü™Iå—v 1NÀÙ·ªV4pê¥ ÞE<³óøêÀ c¢…ÊlÈÆùòeâ|£gø)´Z0½„)²tF¦žíWi%Åð@C¦+•ë>&ȵ“°Uãô´Ÿ8·KOΔ,×óLÏèZ—Wÿ)ÎW®d™ðîêžOï€~vNžw†‚ZtÙØ‚ÖN~ä¬(wyÓ~³Ô"±3G)²v {¤ž*Ç»ªÃ¥é/Ì)IúÀD‘üñÅÛŒ}ÉŽŸÒ@LtÖ~óÂ9c&Q¤0³Z4—ïÑ8YŠÓB wDœ“<ã›±¡¸óœ)EŸI¤Ûeä7¼,Òí&´X\&Õ‚Cîiµ àc-ˆŽvGEš€b°›všêDLº À¦î}Ì[È^P);PýÖTLú‚ðrÜÙŠX•1ø­ë÷´jS¨ÚòÊCWî»Cú¤Wþ5ŽZI>77ÉbâåÃÕ/%K—Ø ]ºá´Õd?NTzgµ†–b‘žCK£ elžIF)ŸG›óÛÓ]ÿ>Ül¤so=f5%ˆŠûÕÓ€aÖp:^L@hÕªpAÒù´’‰ÔS饯š ¿;:/í€ç[SÅ¡•ÓT«Ôý)Þ²5ù¹zÏPZæG¥öq¦c³l×<5?‚¾”Ú u‡;IëœÆ¿,XL©â4pÇ¿ªCþô¢×à¨Ëèeˆë§´£^}žçÑžo99!çÞ\nMâóF¼³ì Hžu¬¢‹X¹/ÅwqêBµS<áv®^¨Tô²õx³¥(Š©‡ e<Çr~h¶ÿôû]¥ÍÞtζñ¿xÌhþж¦4cÔ‡ fAIô~€©ÙðªÁ¸Øx«hêQ)é¿lÊ ‘öWoæqR„јFËkªCŒWÓ+<»4#ñSE8Â$bjÆ0~¡™ÜÛA»éH˜1`?hK~’'Oþ.…GÃ6/a·Òç).^ ¾÷LÍ¡Á £tš©ðo:’Q5 JÛI°sâqc[ŽÇÚ—ô"kNú—ËZçòwãhB cr”'C£9« aýcJ 6¸ÏÊýb›æ§>ß“d÷åÑ+èå¶ßLGS¾Ó Ê?Z¡‘t@î*>÷4EY3)º[Ó5—s³Ý;µw¯„¯ì´¿¾p QÆzÚRš¸)ð3Ö ØÒfF €]+8|v¡J·\ÝzpkI‡€Ÿ{Œ² ÛŽ»b-øÑ'³=<¶‚OŒ´S>Ùˆw|5æ°°þ¿ ( ·)žwÍM3E¢yK-Z‡[$®näû ˜Æ­´é¨::½ß)Ϭ¸§ß|q²Bý¡?ήb£§o¡¬×³Î‹i¥˜ñÂ3À‹r¢‚£)NSKy%¼*Ó4œ6]²_„?UÁy4´þ´4lA¨{ÁpµXÍ ¥ó®’ ÐûÿŸ‘4K;tn•…Nv?v-®zTèÿäê­ VÉKgü ߯$ƒ%xÚFhSRUáb|ƒd\èf®/ïz_Ö²üuCy:¶CWø}âÀ“´ã^dÈÂ1ŒÍ~êÏö ®û¨(Pf襴#Nnd3—Ä€}C¼&_*åË_Üß@CfLzV•DÉçv}TËÉz´_ÎI£àvúýA Å^΢ˆ­úINݲï$·³i õ»ÅƒoXöNà?åÀ­ÿOßÎ2 þš{TòB#LHµ¿E˜CäŸÒf ä †˜šå º¢äYm<¹³ø:?¯«Ë䨶ù,Lô^à7¯POE~¼šd>ÂV1Ë”bóx¯½ó¾÷(Á–“O‡­É8û¶|ÎOÝso§Œ«t#zB„‹/¶ÊÚ†, :S¨ b ¤sï^„*™”$×V“ånÓcsŠNò™œYüàaÏÃèéû⸭øÅZYRÝè5oÐâÀ"È[6n‚Viö›ÏîO©çÍ-N{îÏ6³m<ÖþùØ´:b*ůéÛSZ³*?~ªÖFËw`꣩nЍ~ ðoë¾Qãò‰þôÁ•x2š³ís úäAƒ1ôþàÅߢ‚ß×ïÞqëIÅÐWGϰ¡ Uã4‡ð—ÏážBÆ>àmË DÕæ*FsÍtЬº>lo»j1¶²ö¼¯J¢Ê&®ÀK”$#qÄt&ãöV´­U—`0`Fdà&©׿ÍòF~úñ}L =e&~w—¤2qM ŸŒæÈË/ NïÜ—Ú+ «Š5“µ‚{> ò´¢Z¡oˆäm¾MÍxw_ûòó.¨.âê×ì¶Ã?üâ’Ü¥ZbúL‹ÞMaT«üê»Ï ]1ާD6™Á}9ÁqŠ\”ÌfõæRÞèibd5*“9äÎ:‹)ÚxLTÈÒù%Ý´=]AƒZâl¢­´Ö‘4ý»|‰Â/ò­hXÜ“݇5œ]ZæOÏ3Ó®pü€ß±Ø LÞYïúo<®u¦IO‹ˆÍ]š7÷…+F)†kYôÄŠ|Ž;sÊÞ§ÝÚTä‰+*LD*ýBNŠº°¤àJž:˜dçÐNèÁäÝÇ|fë±ÏñK~öÂö+kW;žÖ­ÌÈyx2e¤.ÿ* =Þ‘À·90ê{¥QÝfBáÆu¥­3ï¯Þç„ô ÷VfÀͪam Îç/·Ú³˜*HYZÆhò* |Í3ÿmýƒƒy®À˜§|\\ta*¿@9 òu:L…R‡°\»ô¨ê—£AÕ²ÊÑhz^£;úLR^‹qøŽú1‘/·äKí‘âÙýÁ¸Ñr`ÊÈ"ýØÎV?~ש*Úݱ%0#°:<¿Å)— 2ðdÕÄ\kÒ'@r~›3Ò¢èÙ¥ýDKlûüVÍD6Íù›ì«ûôeÙ¦¨#þ0†042É.JÅ\í¿vQ§6‚ÄË€€Ã^ŸmSa]Ô{–Ù˜‹ZÙ)hÚÕ å·I¦¾Ì«>;ÊæßŸ‚*̼h1YÖÇL:høð°äñú¾h’G¾ìaJþ) ßüí·&z6¦Wåbw6/®¼…=¨ÿ÷Y•±Ùka5úÖ£é]«• ì ÝZþü¡ûnprÉÇ)þÔ>¯ù²ø½FTá¦@‡üa·Øüq·Oˆw´ø… oy1q9¥o\bØoÓö. »÷óªãNѼ§ŠÛ`«ï“šÄF¾ 6:±%JØš%ŽF=ŠC€ÑHnÔí™ HOÓûk×rKìkÆâ˜ÌÿÈ{n´qC›°üOsRoâOnÙÛÇqœ6Q¥ÏLÄ£¡-Ô%æ,©€0„€Óõ‚/²ïuXgg~ùÙ'¾¨ï¦n ¢³þ÷lbçÑÝ~¥Ï‡еƒtÅÇ`]1HY…’Ü÷f5«ñÏœßôuÕé%½iä½9pe´fþ…¬‘†{]ËLr:ÒýÄŒ%±fø¨N—Ük¬£{G-‰º¥SAV¢ ƒ¾YPSäHªV0¼‰ø“àO ù„¶uv—‚Ç—|Ûûž¥¯Y'„`yöÛc…渡ì`m˜Jª{Â¥} Â/þáj«kz!‚& x6fË»ˆ™Þú"8ïÕ2ŸÒ"¶”õCüæžÃömdSìL{±¸xïn©ôr¥MXý«sþŒæ2•—7¶YZ8›M|Aæ5fÕ!Wò©s­+Aˆ¾?Ù»Ód1ùà$3Jú¦kv%:笩U^nfö¨"ƒYY›)ÏׯŒÔ{-hÙ†wÙI|ƒÁ;ñŒ=Œ<…5t¯]€s”Ŷ¿À¹Ý±@À2Arf™Âäh|(UzD ÅfÄ&»\kØÏΕ”±Mœ®<'LòòTKw´:A.ôäü–Í·?ä`ÝÆOÖvØ¢Á4Ô +{)¶¯¢n ¹*Ñ6»·Bõµb* ‰Wê{– OSÊëÀnK³;É«P¬#Vî[Ê­›Yµ:Öm€¾:ýS+A*ïÛWØþ¦Sȶd•튬U%g¬SÁIKæç[c±Ç0/¿Æ\ŽS]%á0­¢BýRÌ5qºáÙAm¼¾)­†Ý^qŽž¹–J s´ SÉtŒ›÷ë5\wÁgí¨5Ôqóç.Î+Zî ðœkxEu Φ08úžÖ…an”ŽmJ°’š¬*íé v=Žº#ɈjV¶Ï%}=õ¶š5±‚ËqßÇêÃu(NÉé…Œ;Rr çé…cÞv[øBºÂú*9ì!Ãú$/.¥CMΣ³á Q¨zzZE … ŒaüÔ~É‹Š[…äNÚ=.ÂKkEÈLþã¾ÛÌPüïP²`ròsàðü"—îì`ÿ¬Ì5+9ì ”)žÔÔ· OÛxÏŠ^¿SšòZðƒÕ¤G¿[Rmôyw¡¹]éA})«œ5+*9YH?!vFK%Âh=bmGÙ¡®L?ìBßgJÞ0j–X_EÅÒxÄó,':Ãö¨qÚ g‰ì!ë_ÓÖND@7²˜ð7!£ìVAoíÄypûѷıB8¿c=n¡Dª„Úê§ù£Ã ¶B< ¥¥ˆ$ M†I>u‹©#wÌ×ÐOÿÏ O¨ë¶¯ævz¤Në¢Ë¿†²°Ö °ÂC¼xÁŠÒ™-ÖÒpŸ<ÞÌ}©©½óZ–Xko åë?)[$“KQq¨G[«w™V™UÌøcÛ2«ê§¸M®„d2§Æîaóßûu<ØÒdØ»ñ&fy™/ åH@¯:ž0ÕŸqùx̶\r<Ô?¼÷G ”œZÖót`hF%†óu;-Ù&3ežá¦#Ý*ÃBrmuÔ:Gª‰Ë_þ†×F)=ª£×Ÿþ'ž†}µðƒðä\DŽ&àA–ßB[¼Æj ÝÓ0ÁEÎïu>ȧŠÂ6wU;M¯~¸»p&¼PTµo®Hlj,dQ#é‘&«õŽ©åà¦h:¿cczw¬»~Xb>ÁÔƒÜ.ç.g­m+}s{¾Ík&ŒX䂪D\2ÇgÝû˜‡.úG¸ôó$ÿOgg”iïÏÜR`éôì´ç2½+YÂûÝ÷1faj¾É%™õË—Š±\¢N䄌¾`œdeb㛎Gh‡BWÕU`uévö9=UÒFòQìãÛÝ!QgÇ j(Ÿè ”Iz~rEºlNÍ£VìÆw50ArZ"„G³M_çJo«…oÌ»i§@î:2ÄÜ|#õlz?'ñ{Ǩï¤Uk Iš»mGÏç_3ŠÅ!ãÁ¤ZS® ²-ÝØéÄsöÜ~”Šll¥uœ‡'šà$ÙæMxTÆ™TÿKùRGOqÈÌ CiKuÒŸ²eW€¥{4U¯ Á©—ƺ?[Jß\Ð¥€lé‹AÉSÎeåM›H=Ã×Ú{¶ƒOø$< bÇò~Å&TÓ¬ ø¸¦ìÂ=ý^.â[«viŠQèÆªÁø!ôæÏôb½¨%¹ÚàcHë5ÐÛ[±kM±wË 2¿ =ðQ2YcÅÈ[ö“ß‹¬sº4ÊjåÔTãÃÌÛé–´?&'Q°0ÿyœÌöÉŸ´ýV½×6-ÊÂÊÈD~$Àšp¶sˆ]Tƒ¸FsÓJó“Q=N /@"‰PöŒC’ºˆsÁž+’ߤ hΣ~=yQâ°·TÐ]~ìΤc 7 :x|x,nG=µZߊÄt{oñŒ#CD@Q# ‚Mõü=àÛÿ7h.Ž­¾,€Oë/•ÅZ^XõøQÂWIǪ=ôŒÍ×AZ6ÞöbÜÃÒ𤥂skýý#Aιçžõ0¿òàPŠ……ã­fwîõ=EŒn ЍÓ9ùM›Ï!Ó¿£Þ á‹?ºív~LeDCùé"»l¥0¿×´nË‡Õ “¡s©D¨’KJù/#™ÙdÙŠ©fð!rœÈ³<;/Ý܈f mU³Äh‘“ò Dý#Jy*Üþ¾Ð †¡Ð»uÖ+ØÖñwl(GzˆÁÿ?Ú_×Q7`¬ÑÀ“#æ)ªzõM(‰B¤_pQAók‡×ßl§àvz÷-¼š2JîJ8')Ü9È)I83 mâV©ÐÏ­!¦Å¼ `þ†Vb4ÿð·¹T""ª€%4WùµZÕŒ1ûWÁ8ÄcÐá!\äð &9v8…2Ó;7Š*4V.:†Þv²–äМßïCѰ¡ù<Ú.÷Ê Û¯Ìʨ¹rF¹ozë–äIwøc¼·µC€ qù Û³m1y.,EUPü‡¿Ëý(ôtœ„Êê#ëlhpt¢üówÍUI¯¯ÑéÄrûùÏ­*-d@åuž@¯ëÎ~‡CËSÆÐ¸ìU›C8os#ºtq hÀ "uFeÏþn¼u´ªx?`u¶¢lÖÄžis” K˜"·„ r¬š\L£s‚û$i¢*õ½ã‡’xr£Cu?Îþ9•‘·ÛT‚™÷êë9Wxv’0ª,àK‚&çÂ…ûÀdh™Wg¥;PNÍÕ9¡”.˜‹æ ­ýûLʃœÞr­ïé%©—B–‘»>Ý0–bú‘YÁŒÒ"§ÄtÊíŽ/µ¯‘©fHsï~ÁXMAÉÓH)F´ÏZ&5ôå Fº±¸çX2ZÕ›À>V> 3ù)^5e‚šL\ðঢ{æ›Ò_SÜuìA¤¾4À…~ì—%äí(%Ÿ+¹iD¡' Œh…÷tŠÿ†Žàe‚‰§¾‘¶Ò¨<ôè(½‰[Çj:~=CŒwHk+tJ?ÒÕ¹hˆŸ¿Î2ŸþÚ‘§ýÒÕrí@÷OÅ çŰ*l;o¶®3óÑF½Y"L4_P®à»”Ø­ Óä"ôy&{8¿åAêêxš°‹´k7î—yø™áö$Û<®~„ÛR̰´ö¾ÑŸº+ŸvbUI9„Ë¥_ù¼æzMkÝß]ÒBþO—%¾õÚiÚ£œÊ™Pvšÿ­8#ž¬Áѳ¬¿[+"ÜÎ#þ Aò{JFÉvÇßK±Æb ?îƒ-h|ë¯xÙ3Ñ£Û Âˆ¹æ{xkPHŒ¥‘´5±Ú¤ïrRpÞ²* ßFºÚÿ· 9ÿ­^o¼ Š“³Å¡ÝBÛî‡HdÝ(»C‹Pf…â§ }Q1çU÷QBør„žCm’l¦ãi“ä’7âõëÆÞakÊvÚõD£çÍ4Í6›*Ô©ªË $y>@%†°+vÒø':sr°·KUŽI':]–®¡l Ôàâ,Ͻl›ûR44òj5ù‡¤¦»ó)5»‡$ñ«1¤C¢ÙOÏö7Gÿ ‰¶”êˆÜe…¶Û/Úèíê.š{2ª-«Ûñè¶ü’¶ÌÎÎÎu)~ý"5M[õ&Mi2ÑeOÊÕ+«.²R6­šø~‘h2gX½9ÞÆÈz£ÚŠøMî>½;®]¨Y¥TJ›<RôL4ƒhÇ݈Zñ#xtNã–-§¯š‡›ÕÉ|É}¼«{>^*øËkÓv«ãë—3äZÜv¼ÔÕih5Þ¹ý—Aç.œ°n±–è#ÓÜô»+·+Åô, ƽIf;"F¦Ñ5M(ñ\%Òcdœ|µüþ2C[ˆÃ{!WՀݚê±ýÌäfI†M_ÜÃÕyŸ¹û 0‡¢'-öô¤ÞmëZöx™`ì($…«f~e«Ëªã³ Ç½©J´SY¹ÌÐ<ןÆ3]ÒEǯ NÍ‚zù$ô”©{ÛÙõ.+ÇÓ9]j(•ulóòí£.\lÑqy×§šºç¹:äy†” 8ørI†˜˜Ò´FÂó)ä(f]ýPkõñF9/«7=~,Û%%Ëq5Ùß&önåÐ3åÝìÜ´(A‚,0„—«ºy[Y·¤Å‘<ËkAÁcïr2oÇw "='{š ñ/UdÉ#N•F/!õŒö:·ÃUøyž¬P `„ùže ÎÒÜ…~Jyí¾LîØ.Á´™“o¦eÿ9'Mex*ÈY{Ôí_•éz¼±P$J…Òã,±3¥lùÓ±¦ô~ÍŒòó.6’å[%|Hì„uòf!¯ñÆñ rÚ¹¿*–8AÕ”üxc¡:U7 KÌ„ÕÙ¦ŽP5¶«D“T‡qÀîÏ\lræ{ê‚“óÏÈ:¥”XšÞ߀$‚¼Ïks¡Ô!ÂùIîzºî9Ý¥;‘ó¯´ ö‘ÆÙü´nžËEþ™k<=;)}Rž¶p³W ÄÞ¹>R0‘_Âá²ö|zÞø¨Í†óÉÚëñT¯¼y\ù?t?ö|¾ö]¡rªPÿ&Ò»ìâ'h~¼+Ê7¥°]Yn!ŽäéþNŠÿ~Uk¿¦´” ‰*=LF.Ÿ©f} ¯~ž%Ø À‚æÒ|n!c¶ú ìk7ëѧDº÷;*°V°Õëù ÿOÉq@ŒT«ng3ÚzÙÂêYø Ð1.ŠŒJËÂX¾Hÿ†ÀS1ã½!^+K—ŸqÞõáÊ™ñöªÊ¾¶Ä0gmÂFè­ o}uY§rä¾Ï2_%Fî…»ôÑrg`DåÿPÞ¡X€í h˜,-+SCoœt–¯<ƒ¤ÐÂÿýTŸMójÂ¢ÕŒÞÆrX>^cUáx3Jx¹°°~g3 éB>¾ 5øa  ûUlmó ¹Ò†4¨Ç!¢ò £‹ ¼ÊYpé·¥~S‚=eyi­xø³1͇lÊb ­Uo€vFWZp°ˆ¾Ö[çÅé€(ëtt.ø¸*MŒ~'Iz.1c“o}S‘h¤¨Òae  >{>å%û+¤v˜WÂ`B|´7ݾ²¾¶%|÷)ðâ‹›:ü4O˜Äè3pKñpmZ T Kvbø÷(Šppô¢!Eð®6 z$Y½ftêžq9]›®+Ë6V[!ÆF!‹ÚñJ7ÜZ ¤LDs¦ ¡‰¦Î¡0AÓRj¬&#½>uÇH’HF:¸Õ­éª÷+˜A73y±16B8Ü£iÞŠtX|éÆ=ÐÕèóÊÚßaõƒY‘üˆ™¾e”äUM“BAÇï¾ç®é€²ë¹'ÖÂ>%óÒí¿a/ëIˆKúãæRE’ò¶VŠâb«&6Œ$}sèÈ+¶¡‚)µBàêÕí:H Ù>«¢Ï*˜Âäx»‹5¥²M×"÷…ÃɼÁ¢„ëD:? H½.’…×ò§À?2ñqßzêLn>b”æ©Ô ,ê_³1Fs±% ÅsX£vމ+ˆbþe\S¯ŠAZëç°>nr£Ùyƒt˜‚o󓹩Qi°3Ó½Îs—uUíÿ¤•Ax,•ßXwï9Ziå¯Y3ü°ÄÕßO7~$éhn_y¿¼‘‰9:~¢]|&íÑùéBDòùo†”ÝoM¤Ëœç:ʱl6[‹>±}feß·ý’šØFbá,«¼–ÆË£‡¦h%÷ÍâBõ.8çwͦ’™`%º·¼<5¨Ï­:däT6—øÊ*g†…u¤º$>éßûðÙ”ÑKQ%jjDŽ'#ô šZFé,ðJVh:ë28$‚Kšò/,8ã×Öå¿p4¤ÚÒ+7èÑÊ¥ERƒòØÁ-xÚý·'Z9býäï1áºs·¯Ió¡ƒF{íæŒls8džprMo…¸V-AQµA>Ôâ\‰Çi×á‡æfÞ\”}cä3`æ×ƒŒËzÌO­ìä Úÿ›@{‰5"•]8îFC² ¯S6RÇs7ð [¢ "‹ê`\kSH>ƒW!J‰ŸïŽ.>›œùK\ÇBABUÜñ~nŠM¢dT Àû«/—p8ƒe šu×þO36EXЩvž/[@78µoâÒ7Y]q”Òh‡É_Buõ`{å”wÑóù$ŸN“O¸Vì’j·ä/,Y¤Ä,yË´KŠ]$Šm§ô¸ŸÐž‡ìä(™Ø„g´·"–®N=¬‡è! Õ¢x5»/K$“¤Zó{çó=ƒ‡0¼ËýJ–q€}Ð÷y†Á%FESÔÉ EÖŽS´¿Ž½m·ß@Ü¥ÁfÇxŸ™…•`ɪ¸£¦ý;ç…‚¼2ˆÊía $u4 g ãÖÒ™ ï+ >÷ô”†H¬Rí€$Q} “jk“E¬ZïUªèûeƒÜîÜÛ&ø×ây *Ì÷òUråÇîÅ©éµÕœ}h¨ èdö$Ó¹í¶ ôîïßãÅ sT[ý-£áй §`*¯×Y\&”w<[^žn ÇP=êsy”Ÿ_Ç%Ìß;DÿžûßI—ê}b™{–h%’ˆ—a ý¾GÐðÖ†JdŸcyÍG¶½¤µûOÙøo³ï8'¢,È`à ôm®dä."Y:ùÈ \z¾›|][%hØì',‚xØt†!œGþaQeÜ< ÏðGØÉµ]Ô5c„Q.n¥;ëË’E±gÅæ.ÞCDà #sÉ×5§îtIãÈ–'TÊ\„ µ• jÊ⋠Ä…K«Ü¨|w·6Mhì<†vdâ}ßg18-Òh8¤55(Ü…ÔNÛ"t‘}žL2U°ÿäït¶çíHȰ·: '½?1Œ­çå.ý¸‚Èhë•h`}¼ÿŸC™žû¦…sGÜæÛ¾«Ç3”ÚæTØZ#Pd$ò" ¯v|ÝdGèÿ Ÿwa%›ö†C~ƒa½{û§@LÂ`üæñ‚Ôµî@•­›âD ^ò'ÕâÚÔËéŠl2k‚«ƒ‚©SŸQò^ƒWÑi-bæSI­¹-åÍß[½"|lýyQ0½Έþ*ŸíX1Âô’¬R½@Ï£V¿¤ŸÆýÚôʺ1XÒïÔ£P¤ícˆ•„©íEÆk.§´“ÒÔ•F#]È{£î$©8y$ìžÝCZ¤zîQöF£' kÿõç”BdO' ï¡ÁßÙ•TÊÖõÉ0©ž¥&JÔîÀcãgâK Ÿæ1#°'îÒ§‘¬[ÎãǃÜÉ.\ª5òvqÜ5äœ1­;õúmL(`5ÎeT èß¡ ü%„àzÙÝ×Q¶¦Ê÷|1Ì*¿~––ž,°ŒZ€É]–l&g>¥Ù"«f“w€m;¦ÿk³ *¸¢gqÚ'ÍG‚¼0ü®ã£¨ÄñüN²[…Ê Sá# FÐwõ’íZåŒG'ÂYD7 Iîœp'âZ-œ\—žõíɉÑp¦U5O(«ýc¸ng¸Eª)zÁó¡ìóý¿[ÙŠÒˆL7…ÒŽÄ .kÊÚïwâkÌ3i zB–=ÊR„0 á.JTãH65[ƒqƒjô=Z_ØÖQŸïÙônZz¶ZÜð5ÓMƒ«Uq84©óoª•e™ÔŸ×®›õ:0áèõ <‹5鑦¸QnR}¢Ôë(D¾Dˆ%€×ï;§4Ò"ã”Ð`ÐÐn´<ª]°íJ…mÐ j/h)’bPøUÀ =%]ÚW—}n'l ]ƒ¶Ç¿ñ³bú _•åg”¯µ¿7äÉ+œÐjÃHÿü,½Ãrì7ù8Cä æ¿ÊJ‡(yu©Çé×R†?±:)ßþY·Pï™sJPK¤Ï#‡ ó#öDÌöža øtF¢*²Æuý™Õr"ŸÌhW´:¤tþ1xyá%ÇYØ'¬® n8| ží½Fi똥§ê.V‚#`Öåš»ü‘_D¾yޟœi• }u*è1J|dR n âhså‰cUßîDõùª¹F‘Í1 ™1þmÛìy®Ym×zÐgIHåÀ¬Ïj£«ÉŠŸu*ŽRçpæQ5  ¼+«HåNžoÿ‡ìV=x¯¡O¶½ááZ,˜]h^+ÆÔC(Y–$ÿ¥±6UIq ÕÊ%Çø«Ô‡ã`82ë/·ƒW~Z ;8÷âL_ëgûÌêÑè{ |(Ž qP+Ø`×½/ nç Ë‰â»ŠÂæP, Ç "û‘ÖS¡¦šÃ‘ÂÒž@ TM.‰F ÔEì=؃hÚ=ÑO{\\´Æ° à¥Y”Õ=úrRÑn™éØ®èõŸ¼ß£Ô†–x Þß`ñfê6v— K –®Q>Ÿ’ã*D:ÕÓгqz«8àX®óÓ9+)M¾·Í¤G$•aG\†¨°ç¬ßz2iY–Uf%êVpè°yV½ÕCaP¼4É•Êt†ØÝ>æÜÜÖÛ*àÙ†ç½5=~GaÑö–çòÁ¨,bRFìí€Íºã1K¢¶ †&p—4˜*dè:Jù·˜¥->Y–Ó@ž{ýþx¾ÔøDœæ-øµæ§šë˜sÌ@±J§Ç×»wdOÿJí½Ð8ØI•ƒ¨-î#ƒ³\Œnj°D¯ä«=´âF‚C']žÇ!BA²®ð€¸OÑÛ³.Ø…í¿þ‰›ÅmMØN2Œ@H,i ó,T]RS¸k~Îü{vÊ t[Î@ÉÚ­¶w×D:|Ír„›åC¶~Ïsqša ¬¶¦#’ÝÏïrAÙ;/¯ã“s20@~/-ÆÄùÙå' ŠÞôG£ŠÒ¸Ø!MzJ*{ùÐ 9Ïdù&‚Þ;Ê/žiÓ4Î:eJ&w<[^‰~¢°$ñm°­löûòÜ¡Ý# Ã[$0ÞÞ ºqŽ8¯3¥†L$8¢7IÈÍ#9è,jkó‰` ¿ËWƒdÈZÆïb Ãah«o ”ϪO*æ&ÿD· š HÄK¥[f¾N`vÇQ ‘TŽmåôdp Àbµ÷±é°œ¡ç»…EÍ ¨s./= €Í5õ¼\0ªé|cÖž BEs«Ãƒä eUt´ †*à¤ò/×oäª[»ð„„¸¼pDõÿsU1~¡Õbd{Ieûö®"yÉ _I>幯þÿ=ìê‚Þ¤{(µxáú  Sk&™ý]ÅVû(á×"ðgIæF€íëlÂj¤kÜbÞyñ€º%ÊËÎ ¤Çºÿ¨F‘z¶2x*­Û-žg#Ævft´hküÃ`,RTüŒÔ]±²…‚ƒaðò{RÅ9­  î ç¾Fô2zÃ<íǦ<®3Ä=y›€OE⃟‰ÑmΑèî ×÷6Œ$?!¾±—‹ÿØù°N‹@Z·ÙoþBk à2Rk̤vÌ…jdI t7FTrûŸ"œ&DtéžfÚ›Êå~5ƒÚdð {M“ðœó„§·=4{õå{): F>TL‰€J¥ò¶?ÌRlTòøEXÃÐ'7Ké€ZÈâ¥É% Sm#¶ÿä×X²oVŽ#»Ó[“äÍ•B_[ºœv)¯+X'•3°¨5þQ X¦Æ1Ï7Ÿ ×v¹“$›Ù½Í g›!£¹”½²(¬~ûrýùWûd‘ËàƒæIâQÃ]KÑ!¿Y§ùê(çðc‰uâ³Æ`¯û ÁàîQßfÛÕÈoaË‚ôhí$®—% ÃF¼nË$1–õ )ÁšM,㞃­]@&ÐYyÍR‹šd™J(×Ú$£²ª'CÑ#«­©þ%”3=ƒMüx¹zªa™ü¦TE…À¤¦¿e 'òXmK^!b pX†H²œO‹‰L/—ærUn”p `n¥¥A ¥ŒÔ0æ÷¾ÒNÎr=.¶®DÂíä\Тñ¯ÛÆŽã €¬>}}¤ü¹=éf×| N–G9°Ì„¼cØ\¡M>­yïHÇœÆOSùĸÆstVî½ßù¬‚¶„#=>È“ Äb¹t<ÏÄÏ•ï±ÅáGséVÿ˜È½Ž-¡iu2cKœ)*y6æ‹®§¥…¬o¾GF_ôé6 ÆD'RઅʛJ°B…°Z¹»ÏZã"»tyÙÑiÍ­uBK7œ’UË"ÇæÙpÎç¼'G Çššâ1ݹD'Þ\²Œøßm`²ŒœÅžÏOÙX™ÑY>üCè`Š£×êeÚdÊÀBó|¨ñ°ž’w4'È:pWù»2eO:€‰XM ó«#{Öî"·Í‘ïr9ÿVï.®_K…{o¥A›yñtÒÚ­o$—ž-kd n+u¸Ïºƒâ’m`ÔÉæžº—&³ ûuÚ@rÿîñ§!äÊQ\‡›(;ðïÎQî„À‰z>‹¸6ÒÂc´£¶\݉NÇ+¡GÝ¿ê/e¨Óç–+¥-•Á“ Ðe@òÍær„ËGõYoòac$ôSû^Pj  镌,›b* J#§¯¯À±šÀ8©KöÖã‡T÷@ ÅÞ>í÷sî8TD$ÓÍàQøW²º÷O BÿžVňÝÚ‹k~xfFB[ÍU¦qÌIW´€3¬ŠF2]Q3U¶LÑü‹BàÂÖ@÷Pe-’Ìs¾7¦õe~­Û èº[bždtÓs4 x)üú3yšb‹“LS9p-249~Å>/ÆìSÕ'·>vyW#4L­ÚRóA*¯E‰èía âß0bÅ¥Žÿä;†»=ÝÑ…Ð |+øM½$Yx¼q2n–ÝùîÖA®F¢Ã!)v’rÁF§1®·sÍàÚÏÆlLÝàæößÌ/fuž<kš`]#{¹V.¤ ø Ž0õó`iœqg¹j[yæB>›ïCºXØdàv[0ÑÔnð’Ìrßý êÏv¥i(ÔÍi±²â5ów?Þ¨üíÝø à›mao!aîè:³A?ŒûñÅöÌIÂh¿×!ÃÔKÙúà’þ.è–Øws'SFÕô—Á{—l¢¬çuT±äØÖæ6¡JbA°;‚ŽoQS ËÊy]©6˜®>1ïŽF+cÑX:kñÑcØ(Ú\¨b‹Ú”2×ìr(xöÆyY”öOBju·±ÎÿÉ×ìº0÷•°cmFÿ°Y9\‚ëG‚{a•aõ–宸h¦ìpžžÛ‹™¤5¨#r£rç*ܱ¯²l×H6Љ8ª±]-î.Ìgê—|.ç“WLÝ‘#Gtä|‘²Â~šN]uXºc('Á?9w€¿«°ƒÁt^5]§½_ZÏ®ìOãâ²ç Š)}sÚ7U‰4½!x2Ç1,ÊÁþ­e˜“ðŠV¿(‘üÀÏeæk†»0osjñ/ùc”a;f$ňˆj¥N’·¨âHM- _“\N^û]…Àø'Ï88ª´zíÓ*ÿH@q¾Ž]×¶ ªÏà° Ú¦”F8_‡+N ‹Q< ?,«²ŒGZõ tþrÇãa¼B @îýi;ô †zŒÜ©ÎF³Í¹ <*£‹|²@…gçQæ ªzñKGªÈ $v â›z„=wIí×-1…ðÇdÀÅ`$A¤e‰ÿdä–Ù{sL!<†åÓašuòçD !19pC£‰Ç žçæM蜞©Œ,檒P c¨Õ*_ycb>›ƒÄØ ¨1!lîL6¾ê”+誜s}-X-%‰îð”±Ø£#Á_ð,°ý-8C5G¢jÁ)ÇöJåy¸\ÞÀ°²Ó͇6–X:‚up'ÖÏ1«V“Š&Gsx¶îyôfñÔ ¬kánW§æ>dæÞQ¤ÎMÚó!•)!:ø…ç¼–á|¥YõÛíÖ{äÙªYÛI…)2ã|dÔr‹·ÅÔ‚uØ@‘&ˆÐ“$»7Ê“,”´’@éM¼ ÷ß¡fs+ W{7uêÑζRü1¤–ãFbð§D^xzõoˆÇ¼äø™t{7z\Ce\ü£zÒ§ïæÍ‡^øJ®ä‹‡Ë“¾Ö.1TRÐ6†ŽÀ1JË8j#P¦‡s“åÖ³ÛŠ§Iîi]ÞY–YÃÏ7IbàT ƒd|\ŸÞÝï`ܹ)ü]‘–ÐÄ`â&•³ßPldJ[º)Óº¡—h*¤ÌÐiˆ_§vdÝî82ÍL!r² `Öéýâ0ž¡Ä¥Iº âèÅgOÈ&^»ó{ÕÂ3çÝn1¸¡~ŽåØ,YÇÿƒaQw„x‹@jvXBwášù6ŠM 'Ἧ~p£ò«ævþ$@$že]ƒ:µ_W!}ãV¾H]ÆŒkÏF¢}%µKÅé68¾¨Í@ »@RÆüE«àî´mìιjÔÅ*OÛd삲eM/J—ÞQ˜u6>2E£$N£ºÎ¦¦¨µ0‘2[˜ÔøATTäÏK“-¼¶Ãb ÄÀ9»0 Ò^Äg²i’«Ö\_à|q,zû;¬E”¹r‚R×]ßM÷_Ö.l£!Ï~®S¶£ºˆŠÉ‡ƒ)W§æïµCÜAb{‰ @kn‹aꦷÐ@WÕ€j®Ú+¤7ïz„/R¥­Ø¯oÄôl`B¯𹱇ú;›Þ€vdžT·Ž è\éQ¯uŒP>1|¸ù1Z¡“Tž%ÎÕXÑ•@r„%¬Å>RG…ÕdQ'9ƒ–Üc­ ©Å”!É(’ØJTÝÀª ðVÙ[ê#Ô±bC§ž°ô$$V{@ &VßéÎD¢l#1r+½>©§§à™úð}P7ÝK8<2§pŠ:y¾Ǩ‡Ä¸o/¿^vñÊî}-k‹{Ò¥-tD—§–º[Šq5Œ;c'ø¨Ì²ËÃ+½|JŠ<Ù+¢‹¤Å‰ ½ì¹) c3²Æ`@¸(†D^,ÞòiÒ#Hh€‰h~éó5åÏž 2¬1¼—.¬>Sqˆ9qiôYXÁËÚZUnÐ÷ÂźõLJÜÏwñe+™ÀÚÆP,­4=$÷⨒\îÙ¾˜µ€ˆ8'\ùÐåVÛf×á\)ë¼Ê>’¡0c0E¦_•N|ÅÝ5 Ñ/nØìsOÌÝ[ëßwçoY²gÛàF³ï9ÖÊö‚à⤬%¼oQ°–½Ù¤f{ñ¤ÊÓ5>E_ ˜}J{•v4©sÅ9mP©(ë°y1 Z\ö§ 'Òåü C(ˆnÑÕ?B¬§ELTXpylt j¸Ùéäܷ盓 @››8röÑäÏM†#N]þÇj¥É€ò§˜W{΢ÝðôšnÖ¼ è™{§F:c[Ë#Rz˪[rÌœ'k9]`h˽ˆ[T1õH*GÐÝ  ‚¹îaw„<ôo§ßåÓ¹MÝs'Ì.ú›É=a]ÙiÛüR1 ›}_vȬXÀäù'Áo3FNu‚C¢X¥c”ø¡ƒh4`Ebv³†ý”.û*àϲ*# ¸ýàøW³,?Æaþ¨ gR6ÀeqãécÝ•ZÁ[ï3+…h´Mj)p˜ó¾Nî&s•µ „„±,P+nOýHÃt%&'œR¿ÎF>…Ãp$c@ÓÉÍ®Fµ¥Õa‡Œæ¥ ÅØ€Wû'[€b9„t´Íå¿3…<"©ÂLÅ@X–¥ÓÞV$I~mÕ›=¹øðæßÀÝ%¢“À…JAáQnhQˆÀœ¹­ß¢Z+Æt5í½ñ ÷ÜüMÿ·? ÓVcË7AÛÝBÝ 1I‹hžJ”j\'·…A‰`ï#DHî9kÂCíþòÿ'Câ·n÷îŸKè–¶s³Å³*XZ#é¸Už¨F¹Ši.øXí9ßöƒ¦É‰Ð "ÂCP¬Ç-ÒZÄ ’T½”¾gùà š×œ`)ƒ^è3òÃþòõØ4Ð䛪nkîÏÇ"¿ÅFÖŒ¼Ôï|û“†¡mZëÐ{¡Ö„oô»ÒÂa zߦÁ¼˜ÚDŒT Ã¶å¨™%Éûrê¹¼éûiGs0Á`ޏ >z ge+ðÍM„Üjv6Ê{…ø¯¤†ž¹øZ>ðÛ¤Åwû` =wÈZ‡fpM;{emM†HHó?p7ûÓ¦Ÿ{|p_£ËRÿ<Ù¯ #+¯—MÅÂñ:ÐEÞðrb¶k¿8CHÃsX‡Ùc©šm:C±LB3oï»Æ=`QúÔ }ò÷Xƈç:xî§Ý ÷÷ɬrØ‘ë¶lMщ×ÍcV6¤¡x¾a¦1æGæM«À=ýãölç“m :MDÞ>: Ø@¨³O±ÜãlÏ</áø…I¤|WeZgæ†æÓê§ùÆw¤ÝlV3 ¯úÜ뵓@Mj¤úP,ñn}Aè 9X×´™h8Yé…B„H8»¢?¨FEáÔG&d¢·ÖùO#ȧç|tzàó;»=ÂBŒÆš·,ˆh+RÇÁ²7í°OÏ7Å8)ŠžÜ¡ÑÏ#SÙ0¦x|üÑaÆ2å%BˆªùÄÒé„‹Mawn*6ièj îCd âu>4swå[À„a{ƒõýðf tʯÐužªöÁy¯òŒZuÖyiÛ3Ýîãs°ÿꌫ)C ÒüX´¼ ÏÏw[è–ŒÃ)ŸgšØ*0Ϻ1ú:b‡ÖÇ#XUÙ˜iÁ@¶&G¬{™ ìòB`™½Ûe'{Àe×ÎDP¢MÌ>^ÜÙø˜Mþ^Ë/¶€¸ Sì pýaëãwëöúó PÄ»h§,Ÿ" æVð¿¿Öu˩ǧ»®“Ó¤(®Un“õãiÃǽ_ª*€ËI¨¥åƒÒ“RS{ñæIèqj‘Ç¥/%¢¨…Œ+•£:D·L4nt‰¬W²*½Ãâ¿kô3 é½DÏ5Ïd—ÿðÒã÷™¦BN2ÒnÈËdŠò,ÆŽ­…cUEd=Iáޤ˶‰Ö¤ô½(C¨¿œ â !¯ ›Ä»×RšÄp+qǬ®*;ìÛïe×0®ðGvtk|¢Òš¨h)…K1nUØä†ÒBÆj† fÄú,]‚K3FÝ9Þµ u‰, E° áq• *‹.‚€Â·-ÃöKzùç lZö¥àr#¥qºÛýƒlnO|õ’_Í/<-f¸B”ÑÂq!ÃëÉBÌšüýû?eÓºÍo+À$ Éa» %I]i/f‡g¡; .Ô¶?ÈAØ¡ix]¦Ý‰O)(ÁîÑ"¾ƒyŇIé²üŠHÈí´¼K:CviÜ=}†e&µOðÓ¯Ôv–ºÜ»ëf8$õnCŸ;äÔ³ºN|Ç~¥£¹x¶7Nì·î!WL;m ÔܶÛC–7÷±ÅaA‘êÚ9&B¡ ¨·µ,U`ÈÆ‰‚Q{‘ˆ°¶Ù4V!÷²ŸŒ¼£­›ÿ¦©¹—dW¶ƒ^C‹ôb˜’Í59ê+ñ#ÒëÇóúü4WK®Ú/åU¡7)5@§ñ¸*LõOÿ0uûÉùrò§zÖn¨‰:didvÓ‰ûˆÕ ÙúùÁ‘pîG^„ÝSc7Áì>·Ñeù‘Fgûã8~>€'Ò¥m.¯”£å#iK2[nŒÄU$ËiÅò²ca ÜpÀ†F‰£gŽ©Ë_槇%¢PQ4kÿ›ÿއ:Ùpë3û…¢I[HÕ(ÓïPM¸UwÛ|]“ÿü ]Íu/_äkCý‡h¨gùp×ü^sû.¼ÈM|2©/ ùç/…H¾A‹^€Ê@.Õ‚äuÉ…fó­fšÅ1¬”q©Ê |ªŠyïêF8•™<ÍòXʆ:bÛªaШçy%Õ‘ORu"ÀL½ÚteãÃð«ÕþÝØÎ*ÑËZÜ®Í4J¦‹%†íç寣òp„ß&ê{—&lB‰„UÙ ŠÙÅ[–D1é¡ L.ƒ@ÆúÌÿdh3 ì\Z"í “;`pË&nÙ­oƒÿæê´Nˆü/GJÑh @(Q¶|-<‰lózÁå.Ыp»P¬F¤±—{H°#kñ& ËU±ÌYÀ¾×ŽâS”›ÉØØ¡ÑjfÊq6ÄдÆÿâµa¶v£-²pø–Цeé#‚Ë_\«ÖŽ2,øNjÃÚ{ï“j"€/2‘žÝ Öä{hʽªÔJبmù ̆.ì@ÆZM³Í|*ZÝcl\½SµYM[‡³˜@;^ÚJ|„ì ÆO•Ü?8ÂÙ(Òű`h"€DÆòìáEùÜ@—}æß¾ÆÃǘÇjTž™m4 2ÏPQ`õ oÐ4"¶ûÛG-£Û6”r½ø¨»GÃ=ÄOù”›²0+-l°´Ó±Ë¤¼bpïG÷ÂÁ¸ñ®©‚z/¾ËìÍ1ëƒ:p×D—¶ER|Ûš=´Œ´bvýW©§;G¦ÜÔ·…”Ó•Æ÷0â*óŽàÒv»é—Œô [?ïï8yÐ5-ù£p/WM¸d#+ÃÂQBû|3 k2Rh&iÏ:ÕI~«„‡ûlÅd¡n¿t {{*Vs¦Þ2”HÔáù}ˆ G.‡Âe¦Lb'L å V‡`j­ mGо“cܳì‘móòcГ°ÉÏri&¥u(‚Oâö²|~–Ý=L®Ë“—X©Yé§Ð(³×»õFüöw†/Ðu# ¨!÷«Ÿ¸{O4Þµ¾9³î…0¨;u®ðÀN„,X_ðp6b5ÇÞ:y‚}ú7bZßv¡³5]ÿ.r§Ÿf æœAXmåMhŽ:ˆÞ¼q 6©]Oê¤ÅŸ§‚Ôï|Qß5ÒMïcû’)K¡“åñvmòE!é¹ê® PœvËËá…ŸÙ¿‚ýleýŒÓ0>tÈ¡9ÑÚ©£ÕÕØ©ÑkéÌ1t3όͬ‹ºJÂݲ„™EG¨`hûA)”ç}HæÃ]oéúÖ¤¯L»Û,ûWvs`ÖsÈÿŽä©oMwt)(ûU,•¸SåBÌÕr®g6î …¹.rjàÜÁÊ?¢®êQ°K2‘'²—ïNzNÝDË$)²ý¼á>ŒLVÉ7`¯ãÜÞ—ºD¯›3‚0¼ôg= QzPÕY#óð4qá‹´¿+öÂme¶Ž“‰Â:Ã\ Ãy¨Ðfk©SŽ5Xä^¶»œIü†án·¦©Æ~Þ.|ô…˜¹‡hˆîyïX×þ}ð&@/îc;2¯‰ju=ꇛ# 8}hˆÎ&*¯€ôfµ<‰”Š¡"g&³~Ò£Þ÷|¿Ý-B‘Å[çžÑ@8¿¸Àô¨ŸQLs{þ¨$ëÔ0(]5PÙcŸˆÚ|¯,¼.3óq.Ï=#¢Îàf¶Å—p´5úAkø›—ñ£Øy߀;*‡œíZ÷jCÖɱ6ÖSC|~2Îù,à¾4Ä^3žçÁKêlˆk1¢@õê¯M?ЊÉ=øÖ^=ñƒM™0 Z°¿íç1šÿîöôÀ›ßZwü<¼«wŠ}B V˜+ˆL±aì•|æsH¸{²‘5/Å›^š™|(:" ÂÞ¤} bÚšªJ)©>§G'ó7%„0ùåÞ€ƒŒmÄ5·ãvɛܴ\nŸ‘šlÒé9GKRrfŠ9ˆÙ¥¾ê#Ô€ 7ªfç†ZwFÃè9#F úVU˜0ËF^ªC=¤µØ<÷QR»Y-ä‚Í'80ÍáÊÝlú3Œ„1¹0¹i@’[Õ·k‘¼~§ Z? =M²íéór÷Žß–1ž±YJÝfµŒ…^Ì£„'J°CÇæ]ån!´û‰+ŒV(3ÂåK1ÙfÎ^ÐIlÌÉb¬Â)ªº6/lº%œ??2߇cE 1¦i> qI¾e¢kvty^îp„Ô°¿JæDbMc©µ°ìrå&J+Nƒ£ƒöB‡ASc/w+Ô|ó&®È)ò^esaYп¿%Ò²bH°[ªs÷©&Kñ]Û, ’‰=L(¿g±’ƒÀ& t=¾6ç ”±Ò b¾+N¯AÎáCb³$á²û?¨¶9B'þÉN¸±Å§D“ë§Â9{ðå>FN^…lØ™ýƒžõ˜Î©F %ü¯öq2wgyûF謰u—k`ã Œ6hµ~ý?ëlKØ|)}îZÊeè\3E«VåG/çË–+Ð(#¤]·‰:©ÄƒÒå$ì¿y¤?¦Q)¯^t3âzŽ”;“YŒÁ.ÁÕãAíhU]lsú 'VÞ Ú²J£UpÏqk]Ük]f¿žÕŽJ¸WTô;"Ù›7„•A¹gwMž¼VãKÙñŒc¹’vÊž<4®$œ°kŒðÉÀ gp¨|ø]‡×5 ^ÃϱђÔ=ñø!YÆð·,X 'ê¡hˆu擈:í"›œ’º@¿)qØÕ«ú2ì5š4‹^„©¦ñçÁ–¤pF=D—þ‰VŸ‘²‚‹ð û•->‚–>u‹D@‚ÚãÚ“z`_!BðMÁa¼ôS/>wB‡œ H8äÏöÙH¢Ê¤ÂuÞâpö®â…éfSMâ^jÚ§²g0ƹîLÂFm+ÈëÏ"ŠÍß3ùÞT0¹… °Ū“I–ÉÖ‘Q,\!SÆ@Š·>RÁD¦Gõü§ç=\­‹¶NE¹Æ;‹¥¬ÍÈq‹`ªø½I›ÅwÈc:&¤ÑscBE°_ÌÂÞºƒþ¹”ƒ{­‰ÒAOëç‰?aáÕ)Y3Úùÿp¶ºÛÁŸúv>j€émdH`6«¸rêÞÖý.BÛ™5ጊ£`ÆR®ë!2ÍH[ Ecm„Ä[Éè¬x–0"á69©¶]¸´§ép§þí24[æíÒL·[T :‹ŠË~ªcc£Æ(~gZ÷]åÆÁñ¶’R£k¡¹g„6Á8é€ðY8“õk!üNÄv^.X@geDFÈ‚ýn Þì8š"lÛ•Ó¨™M3´÷Ãڶȸ˯“?7,~é}PYÒ$Ý™ðXI1ÓP¯mvšµø9¹£ÂF®¨ªá<4©K Ó^•ˆ7 >Æúü¬¬evbt$|rÜUêGÕél%Ž™—ãÄ¡ç0ù´û¥$x´†0:SÊ, ”‘Ä·jÛÐ>ŠNxȬՇ2^:J&ñøñÐ¥­þ!„ÓØ¶n6‘EÞ=2ý2ÀÊEOUé‚¢ ‹lŽ|×ÎV(cXôº›àf¯ßØŒ¹2š6Gí™t.^m3ç·Äpþd¾ÉïvžÆÍMÒ©è]^!U_h`—‹ÃãT;–ªÓ¶b¯G*P¸9Ÿ\?[QN‡ÃVë~V²^N\Ág‰6KÝt'6{z3 y§<\ ÿ ¡'e¤½FJM1?G…ylÊs†‚³n¢™xžs ÷×xp§#{9‚Y÷—kopú†Ž$ƃ º4ùà_ÔQs ­od;ßo, þ¹ƒBJà4þ)'X çf²Zô·KAJÛÎhN*ØÂ $×Ù›ë4Ï‚ÚÞ¸v°muÈùxÊP/M|NÄÁžx…e›7’ìh‡ €/4ô&!4¡&{+‰ŒšVîJð2 ¢4Žc¤äØòš¶À‹&ßl¦ò R'“{l>9>=%礃EO`çX!¿R…ÞÁìùW_—7ºœùíw²æÉû †?qÖlgÿåö“¡-QV…«®ÌÈÎ.!ò+ñB9<c¨Ê->5ZÖ¥ñìÿõ&_¼tÚ­cÛþâ<ý”}YßÄ#èóéS`ÓYÎxǪȸI‘xT}n†àNÙCø‰˜)^µ1:6 êÜ÷"5À­”VªazÈYÃ[ÁˆXØ?Ê1X±››#û¥ŽÙ÷ìç¡Y~ éßèÝL *Ùîa?‡^Í/#¡nİÓ°´frï6êÆU>/º´ÆÜÙ›<4]‹ãÎÖAESñVw,+ФÅ^;åDÀ³ÄHáY’5®íº19ª÷«6»#~«dÑÞj”YóÖKét-K»tá!½¶VE騅Lâ ¶Ÿð”¢Xã‚ì) Ë»TB5ÄÍRAAãu|oT²DW,©§mv¼«hw!âð¾ul YÆP³Cn$rÒ,yÓj7ØÅÇz2ÖVb‹¼PeK|’h®Ê雟9;اTl¾Š;QÒ܃~¾ÚèÕiwt‹'4?÷E' ªc§¶£k•íÔÏp ý‹ë0–þÏ-,b]°ÙG\ã3/§Ž¤…‹7§ÙmD$ps¥™{§Ð¨™èi•åÈðO+$¯çrÔ¼y%žôYÓ¦}N;ŠqfâpCwu|än98·p,­¸ômŸ“VÆLUXâ¨a'¡Û Æ W·K°ÖOŽÃs›Q£á„ç]¢¿•dy¶$è…C|Ï#,Å?ט¸.O§x*į€#EšáUÚíÐé6ϘS,ó¤ÜC?t¼oÿÔ2,54ŽðýyzE*~ë®è€Œ€ §s#UàóiUèm ™€Ý·: ù!˜d =Èö‚Ù¨d©‡-uÕË—qR±Ì¹2öá §HRÌñ­¬Læ…ÓñâVÐjœüó[r´N94᡾ᙼ¦1éu¼O–ù¯}ä-ù*‰G<›{-"©"Z¼ùx䥵ñB‹f böŒ´ÙNøÿ ËÊÒòå&ƒyT^ùØí îxÛ!h}±„þû9ÂáoƒòÉ6¿¬ òý‡Ñ×âug}\6ßż–ë»2 ìÉýû<åS[ææ0Û–4SŒ,FÐå˜ÿ6b7˜·Ó!*ï–vm`ŒÄkç|öSJ­·c )Jׯq¨ÎìYmÔ{dñ™.~˜¸…96ôº¶­_09?ñêÖ ?iz€Cö«l¹M4½ƒ±ÃªJ›èÙº8ç=b_˜ÊV¹·ªšýVNñmV“ý «Ã”¬«¦0²P¸AŽ[´±þà¥ö¬,õãÛö=†CŽõÛˆ#éâ ‚˸Ʒ­k_ù³kUg¥¢Q“E.£Ò5_ØŸƒ¯ÅÆûK­¬Å_fÕ"ò´.|o/H`åvþ`mmÈ>< LgÊlD·_¸b÷æ0Ž@OSZqy¡vàÙ¨fãû‚4àÙµ~æ|È\Æf7;I W²êåVMpnßCAÝØT›?I¿ÜÎÕ=1ê€ô k|Ô_x…Ü•ã÷mðcyüºŠHर–²å,JAzW^ºƒÙ9÷›Â µ¼Ð8ãÄØ„jNë…WK¡,²²MªªÎ&æ¾­öäÏÐ}NñÜmDzb·š{¾d®—\÷#p×tø%[O ¢¿8^Kß%@“HÑPR ǪŽ.8ÿNƒB†f’i=—-¹ýt ©Ì>¢ û°A­¶µTΪå^²†ìþ Ô)V!…Ëà츉iÆÄp>bã*Å•Må\9PDY¥ M÷7_ÕIšÏëý"¨³¬‘‰lÚ"4î2-à1PÓUQ#žgƒ5›×m]È+I3b‡FMÞL«‘kr0µ­lnóúÆ@÷ÖF匣W&Ï+‚ƒ¢”3§kþ“ âÛ”šdÁƒ®UaA"ÎÁS¢9¥nçùàŠ„8Ôðd àÃ3ñx÷ΆúOcß?Ô2{\ jôëíüèÓÅ `O2ì÷Ë´ç{Š–0¾¥¸ÍŠ\µ!ÅyZxV"ôŸ(þÞiœ¨oí²Êdˆ"š»c«>Ëîq÷©ä†$¬–ÃI:¼6ÞáÀÿl @‘øà˜¸Ž·×JÙ_7þ:¿ZDíξ.JêŸÝ5À9‹-fÇDž…¶¢ÍÇhÛ<ÉvíæíË©ø4¤Ä/ÀEúv´›ÑEbÃi+ ž¦ñÑcQ„gżŽM²ÈuöÆ|wî«„ε/£â‚5!û¨rc½­Éq@¹ŠUç^I9tŸYð4ö佃ëQÁì‚€³¶N¨€…Í Šs¥Øk"Ê]¿ÍšZÒ¸ †(AhÀÇZuømo•ƒ2¢ ·A`\ÚfuŽa‰ó-5Õo† Z€;Ϭ0‚òÑòá—Â`JßI%dêw&z^s4Ãy)ü…M;fŽE¾Àž?êu}ªO%ˆãƒŒaÁ6ç¡«áÓšrOJ¹ÓdÇË£DÎ'ÒT•‘NñUbë¿YˆôóñÌ÷Š (¹ŸŒÚÀ}ϲûäFwÇj ÝÇó¼ nžgŠIqÚ{C>}T%¸ Þõ‘§jóN²!\=r ³9‘’ãD;ÔY×g»ˆ¯·ä4Žœë™Ó°¸%ÅÖF¿+ã²ÌùS³ˆsÉ’á¼ÑxtHZºI’Ú Â2èððS0ËkÒ«™ë]i}¹e\6Hóx/gáý¥W ýöÜ·xPÏÈÚ9¬ñsÑhï$ô{wbU()ÀDHxÝÚ‚xƒ‹F®ÜÛÊ‘N‘¶>pîÓ-vÒq™¢¨¶a_迾c E–wóz±Rö®òEÙ"Ðçi%:rj^uFPŽtØšClˆÓ^s—%òw¥·ÝKÍSË âLb_ã©àq¤áÌ>˜âÓ¦^¿ÜŸÀô‘§NÒÅ<«½r²Öª—zÈ/ Øb]Ct&ùTDï=äÒ9Òü·;°`Øsêá4ÏHÖÀf¨˜…S¼îÑÆïœžnc;ÑGŸŠ¿[ÆžÝÄ1ŠÔJž <œùò]lÃiŸ‹ úß·\•:päePã€H±ºÈ2°|Ùi!X¼½¥*—¡{åG™ ˜Ä(M¹èg°Ì…ÍoŸy.3™Ù˜ËÔgÝè <Tž1ñ©øõb·t­à‚-#•Î?¿:¢@ã‘GÜ¡~AÙˆ7{ƒ=*Íû˜ÄÝóM~ Í Xáñ&剥INäH`{ˆXi¶(DU@HûÈ%p£Z»ÿ¾v>Ü7 O¿"sòÈÙ>@÷[2h’7«Ü¶B¤"’Êüÿ—ãàr÷å,'¬Ï†ŒÍ•„1:niõ˜Á ­8¦Ù,xÏ,Ÿ¡jw^í¹Eß“+x2þraÌI%ˆh@w[ƒëÕö±Ï+Ä"ƒj¹2xÀ}ê F› J8À›5J÷¹·L‡-p%"Td }ÖöLn}~àh×ÒÌéÏ$9V€ ž+$HxJ±ÆL¤.[P¤uÜMZª²¾AÄpÙc,Ïÿ;Á蜣t ‡Òššu1[kC©Ÿ€´\ßU'O†s¢sVè­ç¶7ñã/gkx‰»°F50¶×uÍU“jmè›"œO˜=ÉKÌÊTÖ2—È$›Óx¬3ÙŽ! „]B4î3Þ±²Ð#yOÓröGe¿•F§€›º·&EgUXóôY ŽÈ”7Ũ–(úϬo˸ ›RÀy/Ó8Œ†@Š Oœ3§ —<Š·û‚†šôªÑÞ€oÆ‹p4rm^s©‚ òX™‘‹Õ>mTÜc;ÞW}ì0|N%u¢âräÙºHˆŒfÜ«mÏæá7ØJ~' äæM $E~J,Eæa³þw Í z"AäÓ· ]hÖ›ßX:€êä’Qà„Ý©Hƒõð5ñs½ôD¢|¾"îR (Å™ï,âqƒÅî¬ ñц›­"5³UœÉ~º»Bí]U1‹“§•>ª¡¨’ILÛC)ú´-ð–KfÎ{xg½Iù8+ÕðhCð}#$ß“MûZûwb‰$8uhm8ûs$, ìÃ’–)˜1,íåc†ªù 7ÿIˆñƒ§ ÐYFÁ;‚Þ§<ªÞcPå”§S9B{%íìTàÎ9ÛåLׂ«ÐDsf¦QKMË#5äé¶©ìdó?¤7 0–J°Cݼå&Oµ¨òÜÿüˆÚjD›>ÍTÌÊ€?'„„ãX  ΄P ôË€SŠ@K`—¡Ò"¸–—KCkɶèâMöÑÚHt–<ÐÛà^==‹,~‘s¤‘ð¯Ö+C ª+˜©ªŽ1¾S„ÔªG¤f‚r»Ùl"u¦‹Îš.¤ýËâñÝ•Æ.&§JžüÚP¡D0à»Á”Uu¼B¢¿´S}Nßø°?X«œ•:¡çWÊ”Œ-ŽvÙšzûyÆãš·¬œï28ß,ß‹½ô}Õ[ ;§ Üæ8n£H©çÞÌ÷ÇIðñë-Ö«È*îê?âòJ«Äý¯4³sóéý~“swÕŒÆV·ÆÞ+‘‹d¶NG‘ÙÁ„¾Mߪ·¹?~j‹zt®žË  ó†#®CÐÝ[à N7º¹üÏ»zÂLÕ½b’=¨z«Pµ²ƒH ý„Q¼.âÒ6pî²£ºÛémo-E.YnÆÝxÿW~fÔ—IÆUÐßx  m¢ ÇÊfƒq¸7ñZ»Ð_KwÌŸNMû׫¥$ž@D캋9 ι1ìÕŽlž› tÚ(´i}°7)·ï7FݱÊ/°Ûh.“~ i’;Æv=„zPGðKÉÂaxhýðCÔªŸ»£“Vð*aC8µö™Ê¨R#~@Lt½´†Æˆ² º›ç2(kè%áˆÏ öûÕ“xePÉßͦüæl³@ ÂØŒ*´õ¡'Çgų@Û×[gì©„/؉òÑOØî‰‚½òíËÚ(Js¦Ñ®3½Ä£Óã‹Ð3Öè¡’aƒ4vœ0Žà—ýíIqÈ…G“}½0׌šÓ‚Ù< ¶s+^ü4ÚÜÀm©+{Æbo1×{rRü‰BuÚ¹“$›aˆÎ1@ÒÄC¦j—k;Þïk‚ሡ޽´Ð¨Ó¦eA²49vÜ/æhgôÎ _¯SÄ세ëhרÞG¸¤£*†–¿ÿ9¨ÆØr³äü?5¶E2ÄóV¤fi®:fÖþ«U:¸$ÚRF-ùÏÙWòÓ‡Y™)麉¡îãkÉ ˆØ?¢¶…n1\Á¹ænT  N…ͤ&üqfòØ U<ƒ¸¿¹ÓÕ›}i0xò­Èt—ýB#é\P®š’®7òî-LøfÑ;•‰‡P¡D“bYÎ@U àûXÔš`U˜¼Écðj`üÈMÅH—ÈP~O!û‚(ÄÐRìW‚ˆÏ,YE$å*ûá8œuCX‡”ÿ#ÌD¿f ¹(iPšzŠ4ì\‹S¨Ààx–8Õ(Q‚ùo?1ûÜ!ê7&&ùÍøÕOEn«så5A~7)°m»ÎÉ5CYŽó‘ÛÍŒÐr¸‚ކÆéºÐ*å¾Ï831ýy}‰àSCø’]S¹|D >Äj…Á³Ö€3ebn"ûªªè-†®ç‚ZÊÖþWA41ìHs’ÃíÝo ‰™6:C²ð~&‡I=ÎÇ[—oÄÄw3L,Á)gp °övÆvÆ3t·~.ºh”¥J íoÄ&yLµš£?Ï<{¡:©8=BíÝ.P{ÿP#6 ÉÁ›ë0cΗ©1¡Ž”ð÷ˆ>B3Lˆäذn°§úi^œ“ú÷cÛ±(€Ij_c(`bã3ŒÍ.ç#xaP‘’80Ô…1_Á1Ã)àí¤ŒPªH¼Šþ‹1Á">*æÙE1%!ËIÒÂ…ÖƒK}’hwL쑎6jä‘á“k…d•­ÿ¿‹cToégMЕüÔ€CPÌ­rt2"ngÒC€nl3—¹É¢A %âàº0”6¯­W¦UØŠLƒamY«ëÈü³|7@´¨H½ó!¸>hƒh•_éö]ííî ×–?ý¿û¶?ßÁ¯:§ÞtA6?W¤Kl¯ /ÂîQN CgÔ ÚõF@Ïh}+þ*_ X<ýÐfVÃ`âi{ø—áWlý‹`ØÒÂ1[ ±AžÓ±K OùˆˆÃ\òÊ‚R'›¢…n$µðs¤wâ_WÙKÙ—ºÝ…ŸìmV`7@œ®— u7†ÜÒË «ûu­Ÿ]œ"D[‘•O³ßSY¿Ù*K+¢}2:!à˜9‘;ù›‘z©”äÏ+Œ;¡€bKÁ\=ÚWÉ¢&ždá‹”s½gQïx¸ZútŒ¶¶`”ß"|¬â}>èî{ЧvCBúAŸBõÄý¸y]‹²C™´9üÉàÚŒ·Ê˜+ú׿o¯uoäŦ¤B$u5‹¬bã1Œþ®ÕøgŠ,Î0ˆcø~)8a6I$Q‰"G¨½® IïæÔiƆW\î?m'a}sô­ ‘…akÇZ Ñ…ÌGÛÅHê¡"™¿ô}”v]0äØG…¡Bš-0…0 q…7Ëþ#=‡w ´¹ÁIãJs5zÞ^È;÷oh–`0c}ÌŽKk dô\Š»°ã¿Y·bhïÜÞŽÕÁ³(]ÜÚÝ?x 5VG}ò]Šßþ!¾wâ!x]¨³%„Õ"ÇÄ#­îŸ ¥;õ¥Jº…‰aÔ/ÔDs6¹QžtŒ Í(AV×e¨ÞÂy{V¢ÿðRÝñ°×\P}ÈžÑ>µ‹åÅ·wÎ-À³u®_©”˜Póu7MÍ=iß êmî­h³eˆÜm"ñc£¢Š°¸ø!W=_}Ô¾w3‹x”Ú·9ŽsÚLMÏ5€TKC†a‚ÜqÀçr'þw³ò/@Æ¡ZÉý¤yæyP‰â°*nœö_¹KH¯8RX ¿7Ø0)ÕŽ¸½îéDt¬0Z7³+¢S>@ ¡šì¹.«¾ªwnQ}ñ]‚I©ÀÑÁV»•©Õò>^Ð1Øø99ʨ’êÀ%Ö“Üè´Ruâwæö£à<$&%—€ÎͱOVþá ­4ÖT¨@¨jˆŸØáîâ™ }ËNà鹿ù¼˜ýX‚¤š7 VúPCÝxW¾|YW‹Ùá[¨û¾äOðê5 ºþt)'Áº§£©LP… Vñyf•Kƺ’“Å}¯üøª¡‰Î!™ =K;eeyÉþ0Œ7i"yÓ7ÛQgÇíÞí^NñË™íyMMO¢+1&@¹2Ê£g Ó+=6ó ¥®Ž¨ûÒ5°oi®c:õ}ÝA?\²ÄŠ®,¤ ÷ém¸±ïí‡t;·Ú–®¯_Øhu÷Ò"Ö„7អ_#àÝÐÄJ >2*‘^E‰¨Ï 4ì(OEÄH¤`C¦øŸA´´tMœ³I¡´qœz‚?µÀ™‚èoÆÕù¹m¾-0J½ÚÏ}+.Ol@Õã\³zdŽZÈ^ïêðçïcü]ëq-Qqôëä”:è÷QrT$bV§½¨n%õos…Ó³úÑ™‡V™ÝÒCüer `YþÆcRwÉÜ!·1"Ýcû*…î]›<ê)Šï$„­P3+¿>RÍQav¹> yÂà\¢gPȈ¶õ0**LRÅ'•®­Ë$'ÖY]9!Ú¤!´ ;€O×½$Ë :—â¨ÏòVûßho¯.o†zGê,£¾ˆê©¥†±<õV=eÁ§<œzbã0ý](ªã ý˟Ɇ·÷¼9N,m4Îä:¥PCþ±.— ÁX(:±2EŒu;u˜‘¾[Å Üó»UQ )Í5ñ3¦šÖ³.@ó©xÈã¡.ŒpØ ¯^LJú±ÞÀ:N¨m°7&GrhíJm.÷Ù üCûd¡ûs/ÊÚ÷oœ2ç£ï ëTmÖ³Ðõ7ñŽK’/umiF6{Í÷Œ¼·O«m¡oóüR¶BEG~ÜZ)Ù©÷¥š9X‡üå³ÚúëÄj)¡Ü@Aj+TÜ¿° Ì~™ÿžز§ll°QYFð’rÏz ymÕ§!5£Å@¡W°}°ôÁ÷"<_nofN;WW)gå¡Þ¿^˜ô—£ù×¢(^zs^IC#Žþ ELZ–%øßa™Jí5õ°ÛÙrlòýÎ¥»žÀ–ÕÌ$QA¯ï&k[Q*º…MÃ;rgÜ¡o ¿Ì°®TÁ†góZõervÏãy¹2y­WôÜ[÷äf4W± Ö½ÙŒWÎM”šššYœ†a1žòKVÙ¹}P¤NªFÉÍzS©´ðŒ¦î±Í«UW\Åœ;¬•S}_‚¢£G§é9¦ ¤„˜†¨‘êZ«´ñ´NäIZëlv^¶JÈ:â"Á´Fešò8»tB8J ‡[¾€¦‹ÃlÅBõŸ»I›<äG`@ÐBJ8ªI6xbGÈ Æ1yñžDj%¸"«jà%i[:‹™ƒ•ø;¯ì2ÄY¤™V%qIpù-qŒÿ’ÞB{æ­{TcéôT!š¾‚¿8ÇFª®¿“üfÂ>Š0ìK¯RHã¶Ï«›c„ÇTzèg›Ïc›ôc>+lrÜC.’h÷äü®Ît¾Â/0mnX‡pÿÒtšÚ̉itž¾ð̵º—ÔŠ+Z ¹ç YñfiíòX&qJ³ûÉ­J³Ÿ€©ä¹|7á²²_rWI–ÚÖ…l%CqÓŸhÀYN«S"Öŗ칄U})©2K×5BÐEºeµˆI2f:}Z…ç[¦²Óë&I¾KA‚<†É{Ï܇×Ú-pÙ´ïŒðw¼´0‰ìÌ!m?'¡ ¬“ñŦM´4¡B­Èçö?úÔƒ\Ï#GÝèé[Äz2û݈‹Æ‚÷—Æ9ÌŒÑä%ø«ôÙ|Í®_Ìyôͬò¬\se»Æª®žIÖd¢ËCÍ¡±þ½Á­´¹Œ‰çÇÚ¶r:pPÛ”…IÐ0; }žz{Ì1a·Ù½¾d§Á\Oü íõXçá ”q±ƒ¯¯¥ËñŽÔ•b.Öû%ä)·&輤̀ 1a,ë‡5|6A " 7jwz‹ïó  ›UJº˜¥ØŸº! –µ)7‰¡Þ•yŸ¬§×J'¿¦1/„¢8’‚™ ºS§ŒDÌ &SAMÖÝU†"ØïœOÝL*¼µBrA %« NOãŒÕ1á“?½ÕyXµ˜‹!°ˆ¤ —~í¸ç­5,ëÚx“SšwßY½Ô¹2¹@óøŸ.}8†‹l² ùOn6ƒ? H$Û`#¦üh‹øÇ M¶…PI¢\-02èA÷Sªa3‡s°|º.ŸB…¬=:¿ÅI„'‡”6á›AŸ5UÕ ÉX:õÅš‘ó2.q}U'U€• oõfÞØÖÇ>4ˆ·C‚hbý2¤ÃlX„Ð$†‹Þ4ZI"‹R§²ªæ·ŠEÝ©̘x—fš†þ•ˆ}Ê,ì>VM ¦ÿOK/å£Lõ“ÀÜy–m`ùßP? ¢]uãb;Môœbac}©½ø%A/ÿÇÀÃ-¥î©«œzáÈhœàžïNX€Â'O­vreÏì¶ Lnºê óIéê°Æ)¸ô dL4¥TJf¬¹Pí´Ñ°BÁì3†`uâ5¦Wý`u6>zÍU.ZB¿r'µÍƒNìÝ{‰¬X†›¸:Søb¼õr#Q±²,25Äk4;²yØDÇnT13)”t÷èsj$ÀJXz˜§Ñº5h.ŽâBRZâm/r§$¾¯‚7[KúÉz"?á‹>ÝÄ*lÿjcŒÛ5ay÷…o¶ìâ(éèÿû«á`RùšÁ?q1‡Ü Ïù×.‹÷4û•»Ã‚[&pp£·Q’PtÊ}l æ”V’ýÌ&?ð²Ùï:Ûr>—C,,ñá|ýb‡7+:ˆñ „ë . 'L¢—U˜<€,Ûëg3/5Yô®ÍðCŽ˜õT1ÃzÎÀûÍ÷ÖÒ!•mÐÛ‡7³22ÜÌ}Ët1í_9§×] á¨È;¨ ¡CÌeÎrå€ué¾jˆCrb“Aîö} ‹‡s1÷K—RÌŸš5b_ “kT¨©@õ3KR_ó‹_—C‰˜ÇÍ:°pÔÙ`ý®c¬KP@‹Ý꺻ùŸ=×{ ^Šš0ŽW¿óíìйB)Ó½u±ú¡ßVz†ôµÅÒ*ÆK:(¤.F-<óƒKó>fpôþ¨Æú)Qx‡ϸ(éy î6 ²Ö¨J³ ÍΰöB]’5k? Œ1ªV`82+  ’t÷&kXÜíÄù\3h›z ~¶?¶ošNl¢.ÈÛ/U÷íŸoÅ4¸ÅÕ†)~bYS0¹v#kï×É—û3üñR¾·ùS{Ülxú¿OÜ›ÍäûÛüSO”6ë¼z=V_ù¸sÌwÝ}mÝáBM•nŒæ@(?$24·AuušˆYÛ|gFŠ^\JÝßêàVhiëÓù±™o ã ’:ž#LñiîÁ€–›püègeøÈ_nÍ ‘n­ø[Òï„ҟΛ2èÍ@…Gü!rT­Çã §•¿/z½¿(GÙžDM÷Ñ5lž\mü#§²!ɧH!ö§™œzòùO+©M=“¿‰Cä 3™oP8Ò.\J Zl‰rLÑ¢›ª3h¥Ö›%»ùüÎþ{†â?f¯ed‘ïæè¹jmûMǨà4Xp w$*†å+ ®”ïåíÙÎZf¼“Jýk ‚ïå»#†•×mwë:eñÙ.ûF¸. ï}¶ÆüNþ“/0ܯIÄ4¢†ÉÍ.?²[CÑP}äÄ”qN™ï##©&=—‡°£Œe“íÖUD³¦†P^=žæ¿P9ÎÝ %ÿ4m½¸®o¢öðá­òôu(Ñë­'W½S4Ô,CÊCP³ÖÀoþę̈ êV&xGd[£î¼ÕmäAÃæü’„–§Û‚YL³¦bÔGD'ÿ_L† ­§·[ …ƒT²;8‰kÖë?N cÔ8×ä ZºÜV=. ¸©¦‰!Ã=på¼lžè¶°Û>ÂC™I®ñNiáÝ-ó±­`>áÂ(Åv3È$&MvmþÎõ"hôÔ¾U¿»^ÏrXÎyÌ—ê?(åµøQbtþ-y¤–¹Ë°ÕèÈNBÿu%:Ã^A/$kžz9 !Õ–Á|E~\Et)K$xTAa¸~¹LìÖ²v(±DëêÏñ(Å=¡k¢ao’{Ünˇøõ÷8ãLwL´ÿš,?YMé.?ͺ%p9¥€uÚ@gø×Ò£'@}ø‚dMN©ø&§o vjEžÝX9§«>Jgbà™”ÊxG»ôè ¾¾¦†}€cÖ³E³·4à0}•û Þ.9jÊV0)p¥î!Àikæ‰>­ ^*c¹¾†+EõŒ«Ásu)EÒCkžMIÃ+XN^^/ü…óóˆÜ¿ “Øk,ÚõgßA^X³,륣 Ms}Ž_÷_f­ª0ÙI5eîØ—än¢eú Kr.ðÆjfs Å]ÐO/Vx‰ž« ß;ލûê‹ÈZœ8ÏÍ¼Ž¤mIåAŒJªS‡Š›üicC˜zYJV³‹;D ;€Ì«–¿†ËÖOpûתlMþøÄ6W¿µ¿ò¤^¨çlŸ‚ÛÄÛ"=ÐñIú´ãÓ׿£æˆ ÆpŸÎׯ[_ U¹-eæ‹|Ïì/£ò±nØ%ÝŸ@˜@5KMuz[þ¹ðÙãé¬ù<@:ìh;,Eb?ÂYYT‚!2÷eb—ù¡D ‰×]µ•_œ–¯Ç=P XŸ †ìE^"œ½jöo¼ÃÏ(xÞÀÙ±©k,üDI ÇÂ’¦„4b\ϱ”¨ð»hŸ ¡çm££‡zÞa*ÕðB,¶æe²'8_¿eý6*‚æRÈboˆÔ4…ãUÖDï¿—˜¹O–€0+Å¢˜-<ÿÄ-r'8ú§ûO”ôQ“f‰ w÷M£=4gnýE+îã ¡È⯋“ôëocŽäJñƒØâž`Yl$§<ªsTža…°kùÍyl ÄÇ}£K™#D–‚@ Õa¢“!éCÒz—û ’=AŠdãÐ@3}¹x;d®à0~}Áê,Ý _eu¦,Vj”Âs8>–ñ=0úÁ±t£ËÒ›z^_›?’gÏïÇJÃEÞŽ ÖòfÍrc•&™’qHõH{‰Åéþ¡¶A„¹S*‰å­0¹òè«øiíŽUÁ–OGÜ+k×ô"{^—ìB_'ß!çðîPUË“zjΫ²þk£×§ùRËÀÓ’ª5˜ÊÄ~|åƒ*\Jõiz¯"Ûã`óf><‘  íóÁ°3K±ÜSdë÷@›µv©øpæ^·ÒüDã`æUþ¸\VÇMÁ-Xn8Ñx陼Û4¿½4(?Èõ-¾|&.L’0­ ¡šlx×vï{’©4K: ÇÉ…K®glbrÇÀ·‡ºÃ®Z(ÒûQï´S8G»fÜrÆ)|ÆÀÉ¿œ%zäcA;¢Wªâ“§žv"i¹“ÚY¨:)xÅ4ä&3‰û½¦u®xÆ»šÉhÌøCã—o°žÛ1¦¢´O5>jh‡:§‘s›i( »\bØ>1ż÷2©Ó[Œx×U^_ |7ò”› 4=3bYúÅLö}B2bô.2Ž°Ø›ºŒÊÿÚšÚ X §$Kºk€!^&ˆYN›žG"`g&7± ˜Ê‚˾›z°r#·}Þy?¡¢L¿ ÌʶÐf0_ÐQTöïÌÀªà‰Ã+ζ ¥VÌdOom{•2â–¼þ*™•^¬T¢Jô“‚/Å!±CJr« HožAL_YÛ°]ÀuBGÑÀ˜j¬MxöðT{#¬ @k&ÿü c²HLizÝê©Þ½ÙâdÇÖisÈ€ÁuQð Þ°qL1ÑÛ šõà~0X"×O‚܈ÌÝ_®ße‹eQoPþÕ£¡B1$['ÁBû¢ÔžãÑõ½BŠ:4k’íÀE„µ•Ééö G+.ôÙ|è‚,oðm~G)ªà@}ao?2I÷üÿ`÷î2¡ô·ÖED×øWÖX±/Ájš_Äÿ…© ÉõS’jÐ{©LA`’©*mÄ»\Á­{ÙëÌVwŽ”Æ¼²Cöíº±xa4Èì\ZÅiÁÈŸ°dQ&ì±’>ãR‚¾a;ä;°ÊÇêǶ¸øF¥áº!ç2¡"AЧQ”„°E43@sbÏ–‹ÓcM9Tö¿•KsaÎ ±¤Í’¤ áC€oõ_|ÒžŽï4äð#¾¥8ؘ۶~ëêwàŸqøát±E{8HÇÓ ê±…Õ10aê’%»Ë»âQ¥¶‘Ñ6ÜÞQØTƒ=9[~s»£Óp „¾œ{AØ#)ÅÝ .PÖ¨ÑnâL³äN$½õ ¤­I!S9½˜úúk7\›wÄ”uzæ}"eñÜÙÍv5èÐ%”5Ýò`γK.²^G¸úN$ 8áüqóð(ˆ¦â6·u‚„›S ,ËÚÕO1¬\OS'þ{žãå²ôSi<÷ÐM½Ì·‹¶l—m>0اy¼1ÑÎZhÌŠÏaæÍa“ÜÉ•¤x½öߣ‚@}ªq]ƒ5ÔJÃ1vj¶ñX¯™ Æ§“V¨íÌínPD¢ †kðPû¨…N]Ñõ,/ÜŒPÇ¢(1|\7IfâÆt³IC“ÖÉÀ}$\A•ùá_§‰I(˪ˆUŽ•=üù–{œj¯Ñ¢e3|;hÛ¨‡šJžq¿€ F"hůY|ó ×Óì×gk´Vw Pq•Ì®èPtSé ˜Ú€“Ë,äg‚}„ /ô où2±bþæ¦Îf)/4°{S;«ó˜@J `«$?ÀxéU%o0Æa¾}BÑÈQ{(¤&UüÒ`qžP0•TÞOnBZZª^Ám|8‰õ?¢]dXÜ'™Co[|¦Ø¾•AP,³¬_iÑF;›pþ¶ñHú‚=¬9”½/®lu¾ª2~O¢ÝÌ`ªÃ= ˜Š‰Ü™y6 .ïL+nRïršæ™2ð7&›®—# W8:Œ¢+£ëuW% ¸’”ïF6´Ì8ù${>÷¢J©Ý™½fTϰe ’M5D…¡\\cL;gÍ¡"Šûny#ìAÏÁðÃr´×\â4ܲ‡3×ÁÔR‚vQåˆáHp›-ãýoo°Óx›ebn;Ì¡@ãi¨5Å&‘Ešð²•vm,Ð×ç}óE¶¬Úá£_p8ûCéJÁÁY0½6z(²Ð–dÔãzÜ"¾ž#J¢ÓRÃÄ¡ }³ ÿÛ?¶FSt;˜f1üQ¼ú=‹óªFɾ/\KÌ0l—â[ 6nÐuhþ< /¡t‹4Y¿ÿ“}TÿX`jÃ:Wr'?`Ì~ë7™ÑØü&ž(>4üð–•3Hœ”¦t°@¶½²MÞ!}ˆ5Y×[²ÓoHû‰6êꢓþ¯œ¶×Ý¥•÷'ùºtòÖ×B;£Lm$éŠ>[.Ÿ/ÒBulJ¨Izx™˜Šã‚|„öTœz› Oüg|ëך}†¹œ3ì‡é]ikn ûébøÂnžë6-6€“¹%yËí"/Lf´LˆPl§–RO€_[½L úß—=vF­à‰ËÙñði2‰º¸2Q]tZ¦ 3±áûJò¨Gðú¬y$ôȧÀ°›\†GM«~òN„ØL ±¨z©Ñýx¸×ðÙúî•j‰C/$HcjS%·™'ß7ìÿS|µDŽw[ô¬–«ŽkUXø£¦|=uÄ€ñ࣋Ëÿl€pHáÃp¥©|_ÊDÒ|ÿ“tîwuœsÿ+²º4•äëÆù}O9»Ö»3º¤!š¤§Äµ=Ùzú¾Wþ(Þ’­+jÊpVéù»ú÷ð¾ï–›–b ÚþœðvŒÊl¶QçÅM©ƒp¯ñIƒ(ðàOû®¬›á±«¿.-©ÜÔOvÚì+²÷å”~p/Pz ן¶$à3^ïå«fnzMúäU[9§¹TÓ|*«§ÏÖux··pkÅÍdà©ÃTXm©âÿ b4 ÐÜÞ &}¢%oˆ–d*æÊ¤´DÒ qú”9„›0%WV€…Ÿ†Æ¸^$ŠÅ¥—rúanHá$|,Š%æà] pE†g³”Áðņ1Ï"v'%îR¸)j[¶ÝËÚ—ð}¹*K‰£]u!÷¦¨ã«, Ãðïì'‰Æ°|Ë…ÛU¡\ÀR³Ú(V÷tò¬ú8B¹öœìCKʉ„X¨ÏÕ÷ÒŸˆm¢Ä’èò<=mý \Õ 9̉!é¯õ—;Tú ¶ÞS”4+œ{t3œ6LÕ¹(n77Y_/¼$Jâ°¾án°XHXŠU{ÈÐÆAMrX§Üú°ÄÏ%A&3'¼v9–ß$X5ë¶Ùáèõ0™.‚M´e5³ñ—´‡½ÿh—× Œ÷GØü韲§Ñ¥½œË,ï%ÅeNq¬/µÚŸE5U@ªyß°<¾ÔGb­/»Ô´£.d8›ü¡ >ŸxßEµK¨_ˆÅi:yr»WY±ˆ{_05A`51sä‰ÚMiœ5Õ‡Y>'k{à'èªç[õi»Î䓯!Îk/b_;W¤â ß²¯ ®{t‹åyµÆ@ -WyKäœùi#<ÉLÍÅ„¼ÓàËlXõöH¿òøšÿeNú¬§žaX€|lRƒ·ÆÖ܈2>Í#…-{‘Ã@ÿKKÆkT…Á’<5§ãuàr°äóí}ÑvP¸Me¼Gj½Ž¼Æ¯üÜD‚“‰¸™'ÅZ©.aÁˆcæõúar)´ Œ¨}*šû¾D>š¨Ñ$EÆ€ü‰?0ìMÕâÜà2¥ZÐA’ýÄSVÎ>„ÉuWþìD7•Ÿ  £*é¡Qÿo˜ ŽÎäç5—@Ú}\kF&¼–LÞpa¥þ×LPq'¯Â'~‡·o;Ï|j•ðÛÏÖ å{¾û“?¶œ6ÎY»…EN‘ýš-§ÐQz\k¡^µ‚Mfïö<)•0;òaÜ¡˜½T¸Š9íN'Zo\Ì´V3K»Ïܯ@ìlî̹ÅéW29OAý±‡fèΞ߫tr|‰—›HjÛëqÑ"Îm&€›²F¼ªD® ‰e–ñÒŒŠ}žÈ[r™Kš«áµ(kÙï0:É%¨×i`<NNšÊ¦HPÉ\Tˆë± 1€«Au¤kZš  ÿaw” _lK‘=ÜÌ’wG¥xÐ-¤ÄÊżJ™`2ØFmÒÜÇ q‡ÂߎˆðHÜ{V L¶±ð:P„6¢òvйêŸ+`“ØÉ‚!ƒ²üA•ã@ÎoÜ”"Câµ:Wû|‹ÑbµC*O @Üœõ–ö·6^_Í>SåRý']nÇ™˜™¥"𽕠}DŽâ¼>©'«qß>{õ‘­Žðl„XL.s8‹ ÓmBJøuUǯÐB$.Ýžl8•ãÆ9ÃúÐÈÿÊâì²ÿ!xÁu¡grýŸ0Bµz­K¤gbÄÁIG½.ŒÙâ‚´ÓüOˆâ?nªîäú„ðZJåÑ—âÍKc„£7*r®TàÑ-ª¨ÙSéù©1lµû/žoÓÌ 906<³Þ±¢ZpgœJS¯îE×MpJÞx!®N ³ìÐ|žùž¶ Ë‘kX¬g‚çz'ÑZŽ^öuo9št] «Ÿ~ÿﯭ–i¨3ü"¦Ôqr—뜯#‰u„ágèìþ"û'èƒB™øC'V¨Æ¹&[þÆ“òKÿGfÔóÍsd¥lA™þP†íqðôiE:•·Ëúêk¸i£÷)+iµ¶AG8…¾é!vÄY4nÁ Ÿ…u“ÖjÒUC¸¡zÈ×Å âHñ´»£­âcê]à<ý™^œñtȵ‹_)º{­$©<]_¡kd!8N6”¨y×ZÀÔý=KÛ­B€,Ö'Yµÿ?<¬¾¹“2˜]n.ÙüÒ2?_|öáiªEé* a”³&â€<\ìËüõzÓpœªÀ9ˆª³ß°/U¡ì´ñ¶ËѪ€?ZÁÙlkëÀƒC–‰‚ ð¦ËD£•9}“ü—Ñ}möå8â"íÁºôÎa½9#žBIþd5_䉂7þZkß§±ù1ñqÊ7%Õ,f_O ÿžuµ|0¡¬)75 HÈ2gF-H#œŸÚÚÑ7(sȰ¸Î ú©È§^ÞŒÞý˜8¸ !“ÊŒï5§ï¤Ί0ú¥’§3õiˆáî„=˜ãûuSÇT†õð91ü~ §^ÃîIDp§¬ûªÅ#•"­Xç@Ñs¾†µ?}ªÞu# ¿]ŒÒ˜ó@3€z‹Ú³Ä嘦œ¦iÿ; ƒ%úÂ0×}GÕkÀD’‡!¬á¯ˆÝþžXs5ƒ‰ð$B„ï–ó ê´Lc(“¹vtÈ ,Kˆ}qãÆ<c¸§ÈºYE+ dáÛJûÔ˜ÞòÜŒP^}–'•øNz9ç­,,>ÄÈKs_ùòØž9CßJ€æ lø«±,è¹ÇÂÍ[»®.YÏ&ïsKÕZË´$ö‚\™ó”Í\­”U¨÷«‘õXÏà‰p‘#ÒÒ-‰>NU;Áb|dñʯ[„£°´f³D%µðôjt€ esŸºu"¡Уw6$c«žÔ’ª‘û”í”qÛ†)t¸=7ƒ±›²ïÄî¬p¾@à,ä 7‡€õ˜¸ªÃ°:ubSšÌkcôìõ‡UaŽd:F¨;~)®SŒ®ÔlɈ…}TšëÏ©üã´-±+6è[Ô®¨¥£oüH¸œyL 5û‡ÃMãÖcØ× ¹ÁÙÞ™O¼ø*áŠlIÒ+mjþù¯ŒþpJÐÅ,aebÖÀó@ãÅò--XpÀv ä_/Ÿ6l¦¥ ·8…ùyR 2À»ž|*ë52¾Å‹%ç†Hæ—85Þ‚JüŒº¨¾˜º-âü!Pó¥ ›Ýì|±bÞ±±’[:‚ãÃÂC 1,§¹"ç1Ú¬9IáÝœR€*³2‰§fGï‰è6'ÓÚÀ úÀ!~øy Å7!ä÷+ætÈíÏ Ûƒ º™\ôÀ‹ðÿ¾ó®Ï¸HãÚ)0Á»y©-óÁ‚þ›‹|N .’³xÓQ9Ä»`jºÏ½Nð/ó´¤YP”F‹Â„VÀ£w|]„ Ï9øÓû'eÚv±Žj/oÄàÙ˜¶¾µdíX2Ì‚¤Y ¡¥ºIñ”¾3­"àcM‘2ôg¿PæŽ_ط†2<@s?Im ŒÛÇwÚdì2“k&É! ¹û‚ìqKÀT­>ÇÎ ¨â0 ¾jòbB"ÁAÈ™†(µ[&ÖÎcüåL¼j¥^æYØ~ëY\r¤†Å2* ‘VEå÷Júré`Ü,ñ¡ÈDE¡=”½$¾‹¸ïõzÔ¼:°{LMŠÏ] ½9;ÝQØ+MúOÈн´_*ÈŠÅ~×@±ÔðnDc¨çËoÄÛ6 ®$Î[œ+Ñ¿gð|†¶°i„|L f?Øb„Ør-’ÑpÎ@¾JP "î?{¬,Zdâe95Ù¶A»šüù‹"±[¨ÎøCÙ ˆ×Gx5¤æ÷ë‚NŒ†>«ãÝ[ä&ýÂap„î {£¸íI»ØÁó‡nÒ›–ä›sðCÅ ÝÝıÍÇO °]å…W0eSeCÓmæƒ\P‡–=¢æ/úûEW‘™¡„Àågp_Z^L ½fÛ¸z—Œ½îíê·%ÖLbÒtF4ý.!”°¤?™8¹ý ö\ZËÓúÞfQ¢Iù ‡f+·à6ÿ«>öF>úðöR-‚ÞšHܨ”°çÝÆQª"(qjš ®r¢ÛÓÙ[A¢¥JYÄcèœgô…ƒè-Ó¡›±èÅØ\ê!UõèoÁëj¸^¦c-¦Ý ¬¸ó,ßZÅ<ªˆMi €ÖŒiǰm¦ ©€tSjÞ[,Ôœ«š&鬼7+ÕÀ kæ·ñò¾¶}t S9éñ¥#aˆÖ‚HõÇ1O8ï¨&5ÿ⾟YÉâ&òbŽŠ² ˜ðƆE”ù+ÆSUéÀÕ“syÿè{÷[ùÑt¯šöœù󛪮F2§÷ëfÔY,|)Q™!(;—±bÕÓRs–†ÖÅPùˆåQ&ÓUcƒéflx5TKw›íåâPC7€£.ޏ)rá HÒÔÑòaÎ稷á°b¡ÇðªcèÖ`é_öµ¬öO °¬ˆg4•` .TA²\=C£_,„0É€à×°ÑŠWxg¡@úú('@V:eðü„Á©PaÒXt¬"–Pâä7!ô¥È•Œ%¬Ži¾Ø¦UÍ–ZR! ¸*i%JÚûÔmü¾ì¶Õ/Q½qWÒn•ƒ9Ka»–bÉLÿÊó#Oãlœò2ã¢P<€xÝ 2ÖØÐG2ýPa<*á Š·®N€:hQ)U/ÌE„ ™%÷4@×tóÄ"[Ù/lÇG!M!*PöXjì^ªàØÞîG *@iç|Üâ¿€(á½J½<óF+bìK”I/ö2`9VGõ)XÛ‘i>j÷Ì#.©3U}n¾av@œ8*ó?FALËb"MH=©ºtm *ºÄ™œ;F­ÃG(NaKvÒW;æõå¤h¥ý¬Ì²àÖ*ŽjŸ¤¾†ŸnùQ?âD>BSß¡=È#—ö?9Ž‚«që 6aUx;Cy!Œ±¨—YÈhÄÃBBF–©Y¾ÝÎ9×Jõ•–·Èäø¼ {ŸÏϹ:v¤–|œÆê( t9ˆ£µ¬“Øx–, zïIÃÓYž XÁHmÿTⲺ\g›®Ô1 Û®Ó4'6–¸ÉJërh’ˆ·ñ³š9©Ø?}ï±fÐm¾aÇ ç»ôI±ïºØ’‡”…»°$eAåÂObNZ"ÏúY›0ëGL qœw=êI^NÇt3D%¶L~lÙö-*á0݇ž«/è 5~>Þäâs}™—ùZ+äMbº%FÃþbœÂ ¤Bäö,Qä¹àºçFg¯y³Çåø†>•5BH›,õ¹Ïy´â.| |+à³àbN^t©Þ¨%£É@“Ãó'Å}*ð¸á/Gu«µ¾ˆçã(–WN’C»©:é¤#A•êd–=ÎÝCù.Ÿq—Ny‹)èóÍÖP»§,ý+VKª [Æx“ŽÞQ߈Ð@é -à 8¾OÊ9œõ¡øFµŒ±š)§qî,+bmö³@)Fz›a›|²R­ÝK'¿ö¢M`4›2 ÄJ<‹›{ a-Sž’­·* IRÑÀ$"n$%û{¬C¯d<üf¦ÔL’ý’ê^¯Â<ŠÜ~ãfõO ty¿ÃŒ LªømÐSMTR‰ ›Aœ¥še‹²G ZÏÃBþ ªo‚<'9Õù4h8öËo%VJ؆E»5˜Ì/Dqj÷9ÚéÙI‘ÝvEŒ® W*ܤØë«IKª™i;€ºfFÍU¾ê6VoOÛËÇ-H5Ôø5ŸÎœ\…ì÷×ȲïtŒ#’Œù;z[ð?sr€íü\zÊÏÙS¡8ÍVdXnm—çä£ó>#ƒÊâTÎýD­1÷ Wâ™E »+\òýèËpYKôŒN÷wÚú!. ³¤s|Þ$èEÕÄ@cÖß/·_–ž‹õ¡Uñgm5æh.$4¢ÔxÉt†îÉsû·»Ž'ook$][p(êc`•†H°]¢T°Á~(Õœ¿øDóPÕ?ï 9N?œÌ¤Ú‘Û¤@„à%éœ,¿^2Õ”t‡IúM„Gá×8¡&ÿšÈ(g..û(˜0çñ-žEĆI¦N$¹_à1.œ/°ßÞªD.6GÂÆ'¦cÈ+4Á=êûÜÃNänK+ÏÏþØÝ\Ô¿ó?²Lr#ìT/£¬Dϧ‰ú4ÅŽÔEflk8 öt¨Ƥ1TIÔ}þÍÔ:Ê$EŸ* Ì㽂*Iò½€SýSN– SÈý¥v¬*Ò‰Éò0rAÀ@þ@štz8!Îg úŠá…ГâN•ý£—ŠòX{åÅeÂ?«¿-RR †Cº¤ö«/ºìÉZø>Vå¹8¬@½–™"s¥(_{¼ê{†®JïŸX°ì¢‘³7µC1fúf0Í)º%¨ð:Kÿd—´Þ×6ÑŠ–Çy æ³$-=ZÂ)«´h ·í€Ût(G?·,GþtghÛ²þƒó£ë§ü"Ïv¿‘º¢Ñ•+2²“ä\gþ0²±ôa‚xÁÔñö;ùB‰È&vlEU¸ñ@ÔiÌâuÀ…ðùÅÑbÝ 8»ßîîHùex‘à¦N8l %Ñ…þ£;y“$BpÕ–xAñ¾P$ÔV‚Ý 0ý«5sÄ”ÙîŽß/nf8Õ-dJÛ¿YVUNcEÞ:dÆçXl%‚u›§~‘ÓŒÀ·Ð$0 Ä‘ÿ„Êæ$«V<§L¶û&bÅ%3Ý‘É{ß±9Œ6Â?Õn'0Ò£7ðiáh£ˆ¤å2Ù±Çä|.Uà ýýÖgX|Ÿ}R9AH‰:Û'JM˜öj5±v>ñ!cÌÁEÜIÌ…°W¬3º»<Yõ£4cÀ¢¸õ?vɽý:¬µð¨ú“oŒ%(ké¶³Å43èÄýBByµÀtNHÚ°6Œ´þ3ã2¡‰È“ûrÝÖ+ÞÑ£ DlWÚžáר¶ø”ÃCkÎzv¶„Ï)b4Žë’“Iëêp˰±ƒåŠF/­B:ßù§‚±j^Çä­VɇªÊºÉуj…/'eï.Z7%Òmáåµþ÷¤4‚1œI#ÏŒáB?öÅy: 1… òÌŒÚ63¯–«ÄAYå‘ôæö³¥mv¾ÍÁzñøüaóï>ü¢eœ²™Þ3sµ'(¾— ‚3ƒç–×l#H;¦PÝÀ9‹|9Œ0µ¡vo¶ù‘Â4ÒIJlj`mãybîfêçŸx´‚ë´‘#ï N껎ߔ°r ÙG‚ðñ›¦ŽX>ËX²¢¡5l†a¦a}n4¹dq£¯oo‰Ø¸*FÓ¸TÅTèÝuékq‹UšsAùfz:1[” $XâyHW":ÚÕ‚c6Àס •’=[øŒ[:0œ5æî¬:ð•ÒÉãô) ÿbd¬w†×ôùje²¼@ÍPŽdÂSôÆ» %ÉÒ!´š˜‘Ÿj9Ã|ÜÁRR¾õ/ÞÙÌÀ³<©iwÑpÕ^*•¯ÌC›åW‹}Ï£¾,õGè õéÎÂ~UáœÎ–uö¡ûœŽCä ÞNƒeÄËsXî]¿U­<„LâNC{Áþ§3£¶@ËBü'kÎÛÎæoŽÂ$E×Ä<%ÿؼ1÷Ñ8Ë!r”„}\ÕR7óùLÈ?-̹/¼…ÂӔ嚴V ÿoC«[ËrêÕãoÐá3Ac®ñ#pG±›®…:ŠâYÑ,©ÔŒ´Âä,øÚf²5+jˆø[sW/j–²öàø¶{õ8œ›ÇÇxGáÓ?1­`a})„`>›þ¿„üÿœ¥Z‹–œ _ÇšèdæV ?¾\VZ)rβcÒ'oE]¤ãñ2“{~Áhs8ž¡=¶9³RdÌ Ò<”–@¯Œèw]$Ïâ4Ù+pݹǢÃ0í c?ç‚P¹Ì 8?œžbÜþ÷‹Í‡c¨^‘IcKi²¦÷]&¹vöǘr)mŽO?¥([M6¡ZL ”hã»­MÊ,÷‡‡ŠµówL.”K©'2Õ”ÛP*û4[²tå–Z‘Ö$D"Á]!TºµqÈÛ€¥Zeô¤ÇUê„÷’_ˆ"‹¯Vî¿p„8gNûh¾Ýˆépœ4ö5Òè‚Eé(UnSNô1v°jå´ùæêðNy½€ìbz­^Rí(ªæÆ¼t?"p6þ}í: $‰= ‹±f\ûwzÁùÔ€”k;Jßã(žW˜¯.V[W¤ÃÜðq+‹J/¼U‰ìc =AJ.d¨o9•‘Béý¸…™x|Z€¢Y—rÝxw®¾ìäH§ix÷¯©Ípˆ˜”3›\J½ *ŒŽšU«™Ø˜M¡±ÙÂ{N}Ó×½{ÄD)ö•–ÓEÞö훳‹ù†+,ïsŒŠUK%f5<«=w~6‚;£2 b2Tò+Ë ºîOêDM³^b¢û¾"òd®AÁÐ k%Ì:ù ö}¹(c9¤ Ø%ÿ8ñ[êEµµ¯_u–,³g(DÔ Š@±ŽHfäùBEÄÜÊ´…¨šÄVgÏ\‰Þ÷üh¤‘9¹wiÍÿ+ÁBqÅÆìC:0ä QÉ·ÍMŃàÝé^â÷œx$z{gfÜ 6 Yß…_³ü$Ú‡ag§úÞµxzeõÌK¢v–låC§÷`M ™žãƒè¦p²ÇªS  Ñ2*–{xa…¥ˆkBs,‰ÅÓ÷ºøD èe2sÄE“­ð° Âç­U}«=‘ÍTͼû…W˜ ¿ÛÚ«¤‚¬°ße&½±fm(i44JXÏHÂfѵâ< ý˜(¦9¼þdQƒ =@a+ŠS9d*íN°-ß²Hª¡×=ƒg˜r³ný¥{âHd¡šyñ+M¿‘-¶ív»=YV˜èåÅ´N%¾"C„IAcÀòäl5éÿVÇ,,tOõ×Т¥ž©o¬3&Õ H ÅØèù³ý ßÇ;·Á윧Þ(SÊàj½¦q©ªÛø”t±˜|öòq·ãÉ m™¥ ÌKÐüäGVI{mV2{,Ë•ž?«¾Ò¦Ž½ÚÆÝ@–“ALìÓÀëÊO(ª v€صÛ™H'lìKÁܸE€ zíÉ7$ùŽéw>â{ÁyS/üÏßΈþÕQÛôå2€³è˜ˆû›¥Nø¡ :Å¿w ˜a‘0♳®0g2l;ÒmC¦œú‰ò ´ð˜Ô*. ×aʲtEÍYÄi\ HÆŒ´x@Õ›Ýö(&œs†3 ŽI¥R8ø×0G¡ºX \XP*} PK•’׃}•tâåIñEÒ|8J™æÂÞ®<5ЧˆÓ`›¤7e€±b6øòV­A;MwDÄE—.íÄŠöð¸HgEË— ÅCቜY8F1°s›H˜ýVeP45ª<*ÿ¶2­Ïi䪠-#’™Í´ì¨}ºð„ŠÓè“Ýž&W›Ø)½{‘Ý;²ÄÊóKL;"Ÿ‡á¨p~ö•ùÙÝ@@0Hœ©½uzyZJ„h3Á) •³G·Kº½Š?q ~Öh°+ò¨êÚ’ˆ tÙ×bQYüÍÜ"ç>[,dêô?[ò„¢^Rb@f;D¹ÊLÇ{5L±~GC3ÈLx O[HéÍ{i'›|Œ¿µD$êçˆýùµÑ^6\¼ÿåÇe™²¬Ÿ±ø=FS+˜}¦óÐl'²’|ئ9ÖÄDoya}»,cGd»7+ûàÓ™¤Á§ç 8MŠi±^µ·×fp›·[VúVA’솹Ul²ü9âö’»þÒeu^ÇÚì±?/{ßâc2Z#Ða]ì^œ6Ô& IÕ§ÿdŠ…Ëß×Ó«µõ½, ÂŒ6b\k´yÒ!´¹‡ÚJoQ† /ô¨Œ¼W­G¥"Å—ÞIüE°á½ËÌÙ¨g…¨ŒÁßY.rñz#Ö(U÷qœ­Æ¯+qãtJnø|®º°gƒñp»Æ:u¢†Î&ûr8ßGiÙoMSôsäUpÃ/À¾¯sqØúkIH_&òÇͳ Ž™ðØ2ð_6òœr-ˆtj±®´y³·£ÈÊ]곡‘þ*;¾ÁãÊ[ ìpʳGìsÁ7~Ûyl[ 2Ê뛸rzú«•”LÉÀʶE±˜ok1‡5¾@>Ò]îAdß5¼à̬¥#•cOÑõ4>³“1ú1#_n9²’ßU…?LS²F¶ÐE®)hSBäç´© ™Âô%+:,ù©ø6Y¬î[yá—-ÛW/hoºè:8@}XÄ Êºƒ²ó‚8æé=<Œ->ÚaÓœâób¶ÛŒ÷͆OÖrs1øz™AÆØˆ<’0@ÛÊA„ç÷8àÈ胈UQê*ƒ¯×Ph¯Ú^90>(#ˆÍ‡íCÅc’°Œ&&ØåHz÷_p ˜î¶è¾÷º`×{¢R윳¯=°«òé EWò!Ýî®»"8bÿ¡× ƒÖÕéhÒ+ˆ{žXÊôi<¥9X÷’xä‹ÊW?æ¯ÄŸ˜{ ~ô ”-eÀã[°Ç%ª•» u•/2Ç l¹s0j´»ÆzÔ“:hV%±ºÑÀر¹Ær´ŽÆ¯£}Ù*«£Ûð[ÇByJ«¬¡?YBiŒ8hXz‡ uaCŸT‡*Ð(=¸--¾`µÞµ¤b¤¤Ÿ+¢,Ó)i~|_Ið6ljü!o¢-ÜF¥@eEóÈo"ÏÍw¥2·;ßÔ«š×G€ö@s€ÆäË””zv³&\N.À†èJhdžÁ†=à?—«N¹Ïx©Œõd®Ò£^q ¤¾¥i ]rÆÙÆ¿3;/YÎO3+CäÇô?ó˜ÛUƵdó‚‚&©Ì„ ÅÞyÿI—¦ Ilš™ž@v¥ —¤ì„å¡àG‡&‹#©æ¿ÕuׇÞXèXAaµìÉm#qûQ%%rÂÒãeŠË/_f¦öü]n#-2ÂN!z|»ÓD|QÅ2÷Ñq„ã“‘cr/ŒôLA?p—žm.‚¿÷×;Qðëê¼H®¹^Íí¡n64Ì€Œ€ø!ÀÜ;*þX¦·ÆL&¿ª.¥$‘t»E{Œ£Ö“î øŽÆ#§F)3 Î(²#Uw,’§k÷> ^HžbºçËz§È®‰š}sŽ`¼3æ:äøÕɤAjÁLt' =ø2Ì\—©˜ó9Åf„xŽGƒ–¡Råøˆc¿¼-NîñäÙ³Uœâ|ßxWWez“eÄVå„MÕõMÈC]<^¶;z’©æé6B(±¥†LY6ÞÒ¶\%*U[¶ìK¥þG WÝʹ­‚ÿªæ3Á«TÃ(>G |vÞ?üØdtÓqBÓù Χ€D'‡¿lª8Aô­B–¬ØÑaÒe$Yé@s„lÞBàu9â©ón"â~Ó·nÿnñ2¢¯àü7§Ì^yc_•ßÒÉõm—õÖ['DÕnŸï›ÙP¿ß§*\+…µ¯pÁ}€*É1Zü3¡.©_´¦þ{ù ²tÐÆqgŽªÆí‰Å–—o˜œ¬ÊMR3BSÀ,!à<%¼ £/T¨Aðsu[Áf§B³ž…«2Êg„þ¸[~Í—%ÖÀÌæŸòΛs$¼p…+š\^bTûSýŠÑEÎÍš”Åu'Ðé雲Ö:»O8-æÐZ:‘ÒÊÎ2òˆ•ÍÏa[gˆ±ä!!mØ@ÖdåOË›4¡8°¥ÀûJÒ Òmøî†"ÐBás.†—_€+Ö}A6£]ËäÆ_†Õ6n4Â=…ØÃXCßö«˜=õç[¦=Ùâ€Å.É… æóz·‡) Ù¯÷¹éú‘Ïdá"ÞÁDbhŸ$«â㟬(µÈ.ð|VFãÀú°—$¡RôD(AsÈŒY?<X—Ÿ3' *\;bë'xäc†„9$Þ¯˜±-ÜónEDûWoWûº¦‹‡W¾š­Žj` m›Â/ȈO´jÆÅ™±HÞ¶µïâ“w]³gÎ|pU Ö]V|¸¸#£¢ØA›¤LF©>Rä !@‰:Xìißt—éÂiÈÏ`kÄ®æ,3®[ SàJ¤jgývî#IƒëÕâ‹:N+UtÙ'‹ÐÝ{Èž/£ 3°€Ý{ýƒŸc+4 €ùXiQ_y Ê<Å߆Üó"ÖXäMQ@§Ðqc¦Š&CÄèHMˆ8¢°Ñ¯lºÂ7^à˜ÄL.ó•š&§’›â{4Cy.9Ÿo,€ XÄû;õX#dl¤cym(Àp¼9©cô…Z=œ ’ÚJº›BC…£_ AW#óÌ€‘¨àõ¾Ö7’hǸº$Z‰šíK÷ì}OÕ#ðÿD× I]Õ ·SÁv ”ݬkÍJù†ûµ‰Û)ùÃáÊUøC{~îæ >ìöBB0kÚÊ, ÄwÌŒ ÈK„Æ6¨;ð®1³wÊ óеL˜T£ÐYÊIµ”Ïã>yTƒÈ“!x$:ÛJ¬(ýÛeo)XlÈW ø€øœV§wöÿH­Ûm‡3€Öó;ñ‡úK¼rC’ E 5è³câd~cí×JæV8o‡-N_Ä|AwŠb±!hªefÌÖÂ9 N³ FdÂ)G6aŠ¢$Œ”*7ÙºW|¢åá§­×åüý¦@JD‹¿î¬WÓÁù>}9‚æIa ›Ï‚R50%GL0Ê7æ,10͈ àTš>Óš(ºÉ¶ç¿¯D"Mh¨ŽÔî¡‘ÔFßËþ§óD¥Ú’Ï#Vþ.a›9›_Ù5ÅÌ·ÿðqi±ïÑ× o?@0§y˾•Çý½ÑÆÈ2ï–Û|ÇÅܱRþ2ÜX\éaÙ @«×úºuSÜV½ÜÜ&b†Æ&»¡ÊÞ¡:ç¿ñ¦ü ºG~Ϊ*z¼ß§Š¯.ÌtÚßL”ÕKmšÁEŸé4ª¾˜¼WIÙ²‘ Çd\~ý„ȰJkžq)oêòÆÅ‰ßÈ[®à 2凜‘œéÖÞªS9²Xêex'ŽJè²X„bYKqöþ|›¶¼1ª7½dÈŸ~¯[±€ÇBô{ °c—ç¤Ê"råÖ;³eæ„sÑJåu“žbI»6žegL÷þšlŸçy ò~‘}o>çu;l/ ½äÁ¤Ž=„¿vЧ*©ZhN÷3í;Nü<÷©}ß4Û÷Jþ‰ò€J Éj–E×I&(pÿ¼8”ÙÒV pŠ2H" ­ëW ¼ð¥õ—Ë …}­«?I‹D&\¹$#6 Â’ÛCý¢i®zŽYÒœI®J.ˆªë50ix½\=°£R\köÀþÓØ¥—Ã'Ø ÕÆâO~ž+'E õ³cš39¾*}á‡ãß°ðL~Ãj¾Ü_ô³@Ì•CŽuG½3‹U«ÈšÕ·…ý!ð6Ö4.ôý PL JîJ*ï’ 9œMµù¡„PÂ’l£ÈÖö%/•YA ¢17¶·Þ’·󦩑ø¾ $þè·ú¢urÖ¢^¸yw•HÕJô±%NY1Ë4r)½Æ<ÀáÂ}¹Ö@a *w+_sG‡ŒDY™Ñá8PRܳŒÂÆÌÎþÁjX¶]ß\Še\¼+Fñ¢oÿ±Ý -Ÿ[Nœ±ån¯š>êMáþh: Rʽ ±øÒàþ;–†?x½·Ñ~8 csƽ­,Lõó ÏäÝ57om´:rëÍb¿3*én ­ñû`Ù,nìƒí/VV¯n¤xÿ¸/ÏÆ°©ø;€ùK?0ù Næ}>¸`y¶ôûÅ^ªFÂDG£bs_¹IÄ2"Ä5°Û¢ý1ú#À4Ë—\U§½¼u Ùœ!`pÆgG¢h{7àOnATfoÜîÛ zª³k§Å8|OŒÆíRšA†\ÚôV$ÓÞäÁ”f_=MHÖasÏ@ƒí»dçÅ;k7®´m“å­‰ÉxÞr´ñ¼ét›”$Óa›)ý&Æñ1:÷«6/iøÅjcïC€ÅB//ë²TÚË)ºûïºÉI}kx¸¶1¬<¤‹‚ï”§„Ó³ÆjÈÃU‘‰¾7öÛߢƲµÿå¾cGfež(˜:+vÙ+O-¢¨/r«2¢R…Ùq9{oÃ3=€3"Û±)¬¯ºMÍ͹/™B&d–=Õý¤ž¤7”½àËØ:'õx:`³ÿÿ9ͪéþÉË)œøÿ\ý¾XHb‰•Òí‚£Snñ ´T<Œ„œÙ5`Ë µÀ×yeqâ ìúa‡ :òÀqû°Š¼JüõŸÄu_Ùçñ!ÿ'<öÈÄõñeÉÂ`¡ž„HR¢LŒ‘d$MÀ?».è›7¨OÛü™²Œh²³õ •Hb†£khœØdß3}î¯h/ ÆžÀœ|ùç¡LÊ;”·¨¦,=«Ûa[½Jyÿ30¦¦àÿûV‡Z¹‡¶ ²tt›äsä¨*DI¶‹#Jí'uHå´‘UFËœ[#Zg“ Å|Û‹É€ƒZš¾J¬íÏ•< ȨўÃ^“òOµ:%²¿5œ,¬¥h—§)#É]QGe|;°ü²÷ÁV¾—ô :2‹P¬ÞbðÐ|赑Auè˜uRŒ78qËîhž±åOØ=Ž×IÖr´ qÞYMúÕå’•´³Ïê7þwHbx˜‚*5W`ìxÒÅ"kJB'‚qÖ NUȽµbôÖyÝ•^¯¬ÞSÉh§tE,Ž0'Ä÷œÐx—ŠÐ£ Ú¤k™²×05ÇW-ÐW1òn0»<>Œ¯jnÿ$D¡rëZFЏwÿù"¿ú Ú~jû9iCË®WùR\2îÄ—›Ô¹Mc¥åra³ò¨.bà6èm›Ð‰Râkµé=Òª!Óë´Ç¼I)ZIB °­ n:±ÌâDEÎ!òù3xzj‹˜7èÆ1ÇÍ¥Š‚rú³„¹?Z$amt³jèD»Ú«­ip?èèrQ8ÌÊtg"¹ -*ת6Ð]³gþ;u·‘ 8µíÇÞ`°Ø «M8ô¡V%íÔütV@è2mˆ+aÁ~šæ5øH2IÒùXÂŒHa[„¯udmeâ-èÒ 4§ Û¥ÔÛ*ì)±#p® gŒä—hÙ£&S¦,w„˜´×]o1O¯ t€®Ó0™9vSœÃ»åcO«6ºô`¶ëÍCj—býÖËœ4ùo€¿o›9ú ^Ü·à˜¶9ñ(Âyì}o3p’§ÐÒÎZ€T“@eŽAé-«Sd|é·Kê\÷üºv¤ž¾…f–êûH6¢ |.Q~Ïa¬êÄ5ÁLçûtüäs¤w²é…<çP1É‚Í|¦>cš%Ø®Q„M×i°IcWiõQe?ÖQE)µz¬‰žñÛ=?z–)IýÉIšžw>zu§n”j×–woœä¶d[ ?P#‹:ü_q=aÉji¼8Ö=ôuq˜=ãÙî*+w=w⃑Ðaóv­.D÷¦Ì$ù;D÷€|D;ôP„W«]N¸Çõ>j'±PÕÑ{Nô·ã”~löäA „«Àf`e<\AQt¸Ål6Ì®’IÌLÚ»†º+¹[6bRÉjê¦p:ã›—=óß=¡Ç<:°ÑÀÄ–ÛðÝ›wèéÐ;Ô82 gHR¾?’¸ƒ|”EsÁQÒtØ6#>î§0þQƒ.8'>LmA&zk›Z½wJ§˜˜3¶?Od.¤#Ì Ž)—Ì~`Ó›€$Ê àÚ¢¸ÁžñŠ÷2£—²§ÃåMÝŠ\¥ZkȨS©¶4ÿH“J(bz¯µÿ±d[pâ®òl{µ‘䦬Láî›DÒoZ„o2þDƒŠSøÚ.ðV†Ë÷&±6Lʆc«-¨¥ò‹zÜ ]”¨€È´7Oóð!5MDL€¼§Ê5£¿;ÊhHÅöÕ@RÁêŸî1•<޾«_9X~=Œê®C8¶¬ Wín>õ1jØ^lèA …ädú( ’O\<éÈžV–ß½=½èºäƒuœ>šbÄ1s‹ì™wÍ(¹@Fý*•sßVµÉ×ms;\±2«weÔáà¬ãÎ.œ!Ëå±ê°›å‹Wžy²óŒ3ÅÖC²¸]ëèJfô¾2}ÔQC@(Ø‘GsXMìêN#Kd=¿ûË xÎgÞízlcÄqÜ,‚‹ ö%ÌEÙ¤„à\k FÀq÷ %SÃR£-c ôÓ1±š9Qk&Òž‹\‰žˆ}€ýÓLuVZJÐI²qÕ`‘CÑeeX…‰sVé€àt¤ƒcêhíÝAÍgÖìãÍ•çJ…ã)I)q×F5“d]*¦ãŸÿq›–ì8_‚IÔž Œƒeâ¦#º e-#ÿ GÒV´%&Y5ý™ðL9ß1´*!¶š]$´Ù>UñŽLæ¼¢Y;ðàƒÆõLד:nA_µñŽE~‘äÀs´ç“:5ãqv«ª€IoŸ*ÒEä#w$sçdTq¶–xF‘ØÑ©JÑG­‘®YjO6¹™ÚµhÕÓ ‡. ä}£å†Ÿ ²Ø¹Ây5çጫ`'ÍÛ¥â4²´iÄpï%1UOA©_¬ä«LüÕv#®ww®|#DháÞzöJÔÅÖÛŒÉ,_€ØQJÝÓ2mŸmÖÜ}ÜÄ·Ÿ‰!þB˜S1åIÔ¹Ÿ§v&°ÍcEóˆúÓÐüWKT¢)XR¡á)n-îQ†ÇæI¼$|mæþ”jWÑ@›¶]“t‚ŸwÝÄ%Z¦‡¨o®¹ímÓ­ hÄ¢3´~º윅ÖÏøŒ¾µç­²ŸvcWñ·“³ÑÓÀn zúuu^½á#'K}ïSq_©zõ:‰³ˆc‰÷¯€ùHú€Ú”wåÊy®u"´ð pf(9i + ³Ì3¼TõO2 òûü¥Šõ¤ä\;!BÌÀ£fBQ^ÖÓ­«cÇ>è,yÆù•¶¯‘;žöQ]·ÃÚäÚî¸wú§»ÚúæµåOæI†ÚçJ,b>õб‘ Ç&s›ß¿-OÞççóÍi½1ÑÚÀºdñzúUí^š¼ù5òä’Šqâ_8èËŸœÕϱB£z®Ãx¯ÍéÖb§‰"ž‰N1ÝÎ(îñ÷i5Ë»:”gÌjJ 'Nf7:[žîÕ qRz·þ\Ïh–Pé_p+9Ff‡]ê4i÷šø’ÓæÕŠìrŸßNœÄp¨Êa­y`ìq‰Ø-9ê+tÙA`J¡CÕŸ@?Ó^Š2`¹qôt ÄRaŸbëôK³ñLƒ –eµ¶¹Â1d¹žT'@ª‡‚:òv a‚ýÅNõŒŸÞÐr•øâ°ò ¯Æ”ì¦âHâ°/D:3 dJpK®B Ú-0ªÒêB†ç®Áe÷S-“öÝ1†k”µzJΈ[ûC˜Bõ/ÂT‡êEᙬÛÿ ð0ñ™V¿ÓÆŽï“¡Âö|á!*ZÚ?,mA®, ¿—.|ÄÂÊKág§Ó(™œápwo*cCa©‹È‚¹™¶zRsJ mGÓh”¡ ,€Rè‘ö1‘ƺËÙé«q‡Ð¢ÏwHúÁL‰±Ƨΰ/W“üëß;èboG¯:Aôæv¯ÖäêªP(bUÏ]20ë06¼73Î~÷û¿ Ú‰Ì!×›ŒívŠ]ÔÊræßS¿õüvô< “ž©¨‘«E” Ÿ½W⮞qjÆ|-´fcÝ[2¡üÖ@ÊÑgplþ6Bb鉲׵Ï'êÈR3a/¿a9霡ۓóOÒ:¯ð&ÌusˆSY>Þ‘G aÄåT9›ÆÊ£ÞkÅÓ¦éhÿ»KŽE'ØÁ½mWùºgòwTo´Š-™hÀHA¢SᬷýÉèBŒãq¡® XˆôÚØ ÔV¹®šæ÷Oŵ§‰2V?—IƧõ®ã!Ê„´íí^É·Ú½ kÖ&…¨O­’=&ºV!·-("ÛCøGt\m+ÿ­}ÖKQò_T~K;Ì®±&ûý^ƒ3„ú£eöâÆ,šÎxüZl×;ÌõŠÙ-l?“γ87ý͈Œö[ׂ–ù)R¬ÑKó3­ú²ª=´åËsÔX&Ý^„îâ•ól´@:'°ÇYÞ-/¾öC›¯\GéÐbMdô¶“Eå€)Kª‚ë8»gÖà@›¢àWÜ D‹5m‡k3ÖMTÆn@èIZÀ§’×]\°…aÌ»{=zawo1°h=Ðø¼©GRk[8‰ZÒÖ@‡-“‘ ßexÄEpÜ’ +*ù¬ñÌ¢$éKBöáÁO:pRƒÜ‘…=zJÔHyD3'ç¥I¾…Àß5Õò¹¥´miDÏâD€Uvѵ‹|-f²á:HWJHUeyÓêF˜¬mUœÏVT‰Ý¼ç¯Ú åÙh°kz€–ué ã+Lt$p€ˆ…óí·E¼ÓÈó‘²Yâ¬Îé+ØðB42wí_l¨GDhmì‘“½ƒfLÞº;\8l $õÁËrÄÝ`h´½”ÕÝU»¬#ÚÝaá¦G+,»<5)ÞØ®”àöö®ÏÕ!(†Å‡eÍ"z®£­–OËêµÂÇÚÕI.%1^2J¬\FWšãš4Ú†ÑÊÅÜ‹f¤™ Ñ4Mz‹è‹ú4¢,‰ú|š„/ƒŸ,´tÎã™ê¹ˆÁ[±R$h¿å¸Á¾Y³ ûÈ¡øø÷è„fõ—iZ5ÄXw£>ô'xÔ…­ Ôo‘Ë·†M>Û¿úã‹tˆcöš¹—üÌ'JÛLùç8qØ_SŸK~b¹e•ªÂß¼²xeŠИÅ{&plTË_âŠZYâžæˆ){¢½¦½ó8eXpë9¿óD¢™UùêJÅqeúö†’RÃñA‰ÆIûîdJjúXœW„?\3á®|ôÐ"zËs»UTQÕ Ê`Üo7V¦ýa‹ÆZûbYžŽpV(3Y(˜T³,žÇ\irERBOY y$ä¡*ëR |ËÑ F„$ßTS¾´<3F.‘ݾ½£""Dbá«þÓ¡ÙS4Ï!¸åÉ)«ú #\¢Jz?ÖecЧÚU +†´’/1;¿jû'ß”‘)Ž—kÉ‚F±Rv˜õøVþ¸÷ÉÇä×hÚGëšÞ^ÑÆÀPk>Ó\÷ë_â´‘<1èy€Øº”ƒ¿EÛ5$ˆ Ì3Pˆsöà©-²'†àUŠûJǰ߮Içq¦ÐF#ë6Öí ˆÊ¹V© ó}”BÎâm³aë‡ ù$ò7uM r&J5jÔú]£ü°æ.÷ˆ^;àôB_lÆ:Þð#è…Æ­ü¨ô&°ret£#èüvNp–×ë¯+îày61¯6lR 7 ¸†ï!òÌñ˜m\¡ä£h‚Ã%œ58˜Î\¦¶4d+gu>™y}­ËC³wƒè¨wøH26ÓÌy|[;ù½Œ-ÛÕÕP+ƒm5²”Ã; ­|pi#‚ÿ–J»d&XáE|Ø÷†JZÀ*YöVeØ L…Ûßy8{‘žð¤„òýyD’QºÒ»uypÁ/ö'î]ð¥Ì ×ÃPv½ßj¾0)ŸœMÁNn¾m™öPÅ mºQÍÛ¡^s ›øyiæ¼ëÍI¸J¡+_ç3WѲ²ª—\žÿ·Á¤›«å7Ü$ÌŸ!裂 + ò‘+* ꟿy(|öW/öõ¤É”`†™rY÷K¿ýt$?55 çÛ9?‡FQV8,1Iq#dO¤. K×¾iW­Šžó§Îjõgf]ÿCðUÙŽÇ @’ŸË=úw~MY“¢ªÔ„RûÿovóÐn‹ËõoåX•ƒ¡ïjñ,c½æ§&­Õâ]eHÂã$QÁ6*O€@g`g…Uóo§e°9ÅXµ›„1º(¬ CÆÚš]RWº¾ñd¡YHy¢×…¶@¤”G:>ózØÁªÑð²R¾³â•ÔdSýÆ[ÍÛ£ ÄÎB^Ê4N`ž\ˆz_«.Ðò’ëR›þσÀVªsí«s Ghƒ{ÒW6ïE3$UK§½Nß ïILB' ©V/®=$kõ)ôWüRícÀ¡4«Ð p-ãÍÁKÐØñ–0±ëc#ž‚2ÇPâ’˯n:™Aꤙöį3©Cé 6G¬PÙ&o¤HÒd"`& ¬ÞÈË=ÿG³å92AíÞÛ釻ÎNÚ3ÔŒÛ4 =èwžE’Ó;;´ª1Fp3ã×ù åõŽX¨p´PÌRÌ¢}„ã+Ó¨KÑ´QètäßÜB ‹å”W…îÔ`®·.í¦°ÄÂ#Йÿm­Í—êd÷šœ¥ä;HÕŠ ‹ãŒ@ç…~œÓ%`0…ÚÇjó4í^ÏI©eÆÝO¶ž TÃnè $eNÍÞ4gøX}Å):â„_ªÿ‡8{{% ŸZt—à }º¼jEáþIq:æn»ixá íǼíC.t Ýõ}y9vhCZ>—âü¬@Q^¹@‡ks\Jã?8¬U‡rQ†æã“³z83;ÆóÖW=èW2à]† íND¹Èq®iQ2^æ„<ìI¢™ãæ ñágj»PÓŒ¿Ïñ‚5ÂÜ6`€"¬Xš&6• ~ÿf}ûWâ/5Ó;/ ¤Ée2ÁéJÓŸ¯®¼YŸ 2ò%´H%ð«žaXç¡+’vU®ð2âV*$L²¡½öí}`p´ØˆÜý†mÏÖÎßnÉ[e¥1 òµá6‡$jf»j=SŸ§’ó˺T ÅK:`v2¤2ýÞ¤f1–g…&Â5ÛÇ8§øxœDöû&Hòü—p*ÀB¼Á[_C´Æ™ˆTf@(9êÍQ=¹c*JRc&½…àÞô9#ð@ÐÓÏɇ”Ÿ1[”mvÌØÑî³fà3œ#®‡{Km"œ5*,rŠõÆìM©×8¶¥0»€Ü6žbG*ê†(×ðµzš *Š3=¼×–ê´*4$?¬¾šáÛœ–ÛQ*mH;ªÀß( 7ºüFô/2J²ìç cŽýÕ¾i¡OÍQÚb¬eD³‡ÄõD—(0¤Qj÷Ä—,¯•N×PŸU@xôËüîàå Þ†ZIÂñì³]aÚ“ÙÏBÔþ»Í¾ gÀE‘ Ú,zjR%3]:ÜÞíÈKÀTmÊk;N ýŒ lþboξ¨VLBø’vV³u4–È5ïšð L+îüŒI;üîÚ›0óÛÅšEÿ¯Î;´Ê¯iDw¢{P¦Dr ¬²²á7èóe`ž=Mò1DŒŽ. ÕÛ£àç…!h#r¯‡RÑ«ÈY_e4P0S•ä„6Bj¬0Ÿ JÀa¹”ÃÀ¸ôÃã}±’;§xS ZrÓˆ=›•½ÕØþlLÉLKažØ Ä<˜ V(lÈj,+ÎËœŸ)øîØÞ”•ƒðhP…öKš‰&„Æœ;ÉÓV½»5qï^áWÕ](«ØF»I‚Éó°›@ïÉFtu]v@ë2÷‹LéƒLÿÆŒÊ,ÜÙ‘!Ø—Vÿµ÷-u:y °rºŽ èì—B·Ýà!NÞÑìe5Gyï|£È±{^t]vÍp¹ùKp”i¹!í«ñš¼FUj ùu¨à|nç›@«¸Š•p?²Ã%>©)ËOK;*DÛ æ>chºl­ÑO;±‚]¢«a­¼<=f' .1×ikf²Ãºnî¾=u"itp½ž@jÖ˜µ5ñõ-3£T·¡’Š„·òx2Ä‘T…Ðn°™Íй‚´¶¹ 1hÉjÙ19 1àÀG­å$+;á0GoÐïVE)RùÉ>諨ý­eM}Ñáøg™:¼ñækrK7PÿÞ ¼Úo`»(û5&0¡€ Ý×é&nyшA…k•88ÎÌ +&¥þäxg•ømgƒ‡b)#÷VL@M;Ö¼ ­¯¿}“gr$æC÷òÙ‹ Uå&9':®ãæ†ì+ÆNÎ-Œ4ÏÎûÁ½b±0*‘Sê˦¥Æd9ÈÍsyX’ê‘pöÞN­—1á:1Y­Ÿ” Y/V÷ª˜úV«”Ò¦¥Âóm/öf?wÏ‚€R $åà;5F¯¦ÊME?è»OT7‡µüp)¨|¸óbÙø¶8ÝÜ–zÿ2ïC'q©•1DJewÂVÁ|~húà!­z úv2¤ž|´š”|»•»v2“ˆ·Uþé—žö#äæMxh‰U5ò>gÂÂï¥ÿNÄ7)²Ô3.ƒÒÎ--Û–vSùjÉ+|v¶&Øk89»j@MÆÈm[ytFC) gVÓµI‡EÑp\ó6y…Íʱ¸^§eoÎḧ́ިb1ÊcÄ\Ó(›APJÕ&‡þc}l¿~‘U²Cˆò‹íg'$CÂß²úŒTKŒˆê˜4 lI5JX“ ´5WݹzsIÒT0¦à5†fÎXLQJŒ°aì³Õ5Ãç0®`šÜ‹54¦Áy}{8õšAÛôÉD,ˆ\þV%JÈ5!ëLç~Ù: -ÕQHleMÕ!E§ÕÖòûøo¬`³âhîæ%µÐØ÷ã‹Ô8L˜'Ñ"´šÜ¨&#)׺~VOV ø±Ê¢SâšÐvâÂþ†ààïÉBxÑé,ÃìR™Ò\åMÐÞ5ЦGNCÄÉÄn’à)pŸÔì%5jÓ©]®È1´SÒµÙ.Y¥¢‡‡õls¦EäXõ ?ЉÈ”ø­µèñ“$GA4`\©MØ”Åj€ ×ʸkéä§!|%v*1¤ƒé.½5 «Ã$‘©©”›Óm=›·s<È~U\­:®OX¨) <,û­÷›‹[®Kë¨Ò|® wó’2s†¨£çH >‰6æÌ“9­(™§Î´Š|ÿ¤1öø’n'r×éáoýÅä¶ÌaÉZœÜPM!¡ŸÚXÛËŽšuS*8±ü—q€¿ã¿6€P¶û ïˆÄC§ƒ)ã¡k‹ØLõŒžï%æ‹Fo!blT¤Ål‹·iØ;½alU̲Ê íÎÙ‚.¦h–r=æK‘®m!Z\îŠk®xÇ dò*ã?xè:èlU'j‰|¾õ²êö¨Z}©cç¾|ŸTùɤíUüªöÈTÝT:%Rrj‚103\£žàŠã|0ú<5¦ýÃÿž÷¼YÒRT´âjkâ9àš“øDz•ŸHÒäÃú/Áh|f›² ºì|Ζê:D5=mÞÍj>¬ˆ€ówØO!YRÿ¯Ûgš’”(õ•JA x!Aø ®æþ›O^Á}fõºÌ?QT‘².ðæØO®ÃüŠ/iÀ‡€z4SH¦¦9_ûרӂMñÄBbû6üÅ0¨ v±‰'Ño*s·²]í¶OuV²x\Zï˜ígÁ±‹W·¥ ²¦PRêöRÈ(¤Û]dši–ŽK4' —ƒâÚMà©°¯ÿ̰QÁ±¦e&÷ »˜©þÕw&p…–—ªï¨c1?/Œ&⌂¹ß.šVãÛ«2âV¾˜V‰;ýq&§?4Oï^l¢¨àzÕõ¾ÖU>g¹¡VD¨ ӂܤá3*OfŽMw@0®h[Öb_©Bº=nª!¯ýI,¤Œ¦GäÿÊDW.XD¦gã^Ï€5[`ÌÑŒ»ß:š1³¨Zúët 6êÁ˜œG”rí6iq¸">ƒ“x掉®šQñ-è<´@9ÌêÁ@æ;—Š˜j€[W˜yv›W,0óPRºQE£6M"‰àR•¾TËÅRª (HsÆ)ÚlšŠˆUŒ?݇Aù!ÖÝÞ~É+CÈ´q“[Ñée½­»2&‘‘Σc±Èî1ã¤QóºËØéz4” d¹±´ž‘t«Ÿ*«~]èÞ¸M©´)¨Û(=Ňk¼§R-¨lð¬†ãg˜ÂoyèÕû{Úð]j½=ú7rìpÎm¢ä«ßD³C. Æ\×õ¼érÎ÷è©§b7O[ȳOÒXÇ3q_oð,{ ‹eµ’cãó3KÞy›mýwm°{ÀÕ72…:äUÄRQ]b^^wùyœ}‡ù¹~²´8;ë(Ü@zxQ1h©R‰($î÷eÜ õyöÎÿ¼æç[ÁK~wŠ¿ô;PTéòÜÍ\¥=Y.M-¼Ï‰Ü6;tùÚÞë×f•ây¹ÞêÅ0$¯á ­”G¼ðë¹ÃÂ;NÐíŒ_Ô9ïÑ_3è­†&‘˜ÿ[™vÜ{öMøìp{¢³p!p†­ö{Ï÷8™hRÆÇ6Ï‘ãVÞ’ŠgI)´Ê²6…Vß5ÛêIOih¨^96G±³¾ÏX–³ÏÙ:RFä°üù³z+´¼³ *£'1’T¥Äå(W°¶ãí´}/“}i,¹jQ„à¼ý"›_69qÈšÞ¢ôe×T03Þ²!¥2uêמ%¶ Ú5 *Äò¦ý£&þ>DÒ“Žñ4UáŠãäçC;2 ¼{µüÐ6R²&…Α—œ¢QüvòîbøòäuˆÀÒŽßòcÅH|0=º§—WlEç_Pïxùødßã‰f>ã«ñ}Ïå×vbhèkúÀÚ HŒ®=>X&1ÚK‚iùñå¹ì„äë,êqcE4GÞ¾ƒ&Ì3+CÈ篌hpõùS“»\µ?_¿õ€Oï³<Ù±‡¿Àªr²Y> 8s9_XÈØj‘(EývJ³×p—#B„‹NßKýž2¢pœ(gŽÀ‹0Td»·ÿõ½ò~ö|¼ÃnVˆs<5kÛÖžEreðKÖÒi #|«ûòÍ›Žå>lý°zCpø¤®qù#3Š ¾¤¼…l,+:ø;p—#v.ö!’¥Ø¨fE_ìÚõàG‹Vʃ&~_•ÙãZÐÎ[Ì:zì>Á ¾MÅ¿÷i»üEV¥7qKÂfJQ%W(ÎÄp¾ÂŽ ÚÒÛÕßþ¡h¨IÓ[ìËü¢!×”<øIó’’_‘•ßåc×Ü™Õw1ˆÉ§ÒŒ–ªH!êtÀ‘q”’.à1XxÝð‹/ºì¥^z-¨*P¯é†ß¢Š´øI> ƒ=Àãi)–zJ:#Gˆ9–å%—éœ@úÌG‹V jzv ر'ºÇ­›ËªXïœåèIYîLbnž4“³„½Q~½!ÃgTĹÔ%Q×Ô¨G…^5À 8*½·e'E]e_µ„KÜA¢FÕRÁ±{Z~¶—,t¾2³E—lËæÓ”ûýýHþo¸k_ ªfñ—TøCêqÉboHã'1DâYÓf$i¸s1 ßÅK´²úN7 4yÑ~²“ÏêçÍPžš q8¢®n{b£ƒN›ÞN÷\ ’ÃÝ<ªÃå[ÒÌÛx[^o}ÚéŠÞóJÉ rÚn‡·ý(«t*Œhá$ fÌ=÷§ßùß¹–Ï©Æö©}¤¬»8Ñ#"Òê N%øl`î)Lìëp«Ë™âò],A݈·qä>¤záæöíïlzÒ܃Q±ÕgfÖL±Ó-¨ø°çª>Yfkìd¿3í&0, V[7õÑ9Zêî—zV@é±÷¦p³àä›Cô‚Kê!±„¤{xrV¼51ù*OÏE«·‚QF›Y7ÇIé–ût‚Éy[PàY[òÑ[ ¿è¼ö8Ôïð]¯m(U ‰:$NÞ°ë¯Y{®Ã²‚kù<Û$ø¬ ¤¼9mFuñs7ÎW:%E–ŸÑêöRÿž¼rÑâ~TÊÆ=°Qûþ²h:Iû.ëW1q¼xgl:“ˆ‰3½‚,6|YøyKN!Ž˜Ÿ·³Ë¥r?àjX†Ú Ζ cóÄIùð×#gÚŽçH¬5ͯO’L9ÒÂÛ÷Œ¾²¥ÎG%è|o\¦u¿]âÄŠÇ»`&o!ÍãÝ6ísbü†«½2Ëd» ÊN#.è­` Sβæ¨Ì“íŽ =·7ó×JîÆg’l ÉÞ¥”£“ñJ/-¾6\ÉO0Ç[+ÎQ›½Ÿ¬ùÎè€îš”I•ÊL•(¸ /W¾>ˆ›¡qUƘµ2Ö0²œ„h˜²á U3'§g?N´—¥+íMÓ@|=WÙ­1jØŠºÔVe›¿‹ºãÆIøé‚ áª\­³üûŠÁôÉÿÙ‹–ò‡Ÿ^´ ©&g^ ÎC瘟¯ p›¹’Å÷“ÝË ,öŒ,ŠMê3Wϼîõþn'IC ³˜-(îj”úÆå%-ÞÌþàŸóBu'@h¥e ­ÍÖÌ¡t}®õQH”—”ÿu{¹ï¨r1LÉQŸý Ç…¸,2NwÞ2î”í÷­â¤­# 1…Ž¢V?Uµ­tµk<Ï„®’ ˆc`=èË=F×mï³,$ 8oª²¿ößÈ5? ˜H²S9ˆè£U>Žm욘£šq¸Lp}(q{墙ŸoVG,,¥*©OÉ<žÍ¸E DT1†ÕKì<$-ø°ø#ï,wÌxbðƒlT7‰Ÿ·X¡¦? ¾ˆFhš‰|ĉE”ƒÛã NœÈ<¦÷:¡nõíàuvÞÍòË Õ_ÆÌ)é¿ÜJ•øìkÍï ž;”¹)µÕï–Œ<ØZÈýö†õ"‰ °›‚-®óföýgx!˜7k Ø ›[È\ ÿì瞺|úÌÞ£ê""brˆ· ¡Xo .hš2­GÔÅ¢pÛ„±+ï»~j¿ÿ°Þ±SYìòÀ³ Qæ%¨Y4fàTqã’•\àùÑÔÃ5?´Ühë4ÆQSÀZZ±Ë˜ÿ’$¸Ó~Ìc/ ‡©ÑµzfªvÝ7­y`Íâ±@{§u:%MN§CWÓ¤“Ñ•ü僷Mfó]Ý!ºÉà=óœÜ%×£.—YÊø#3sxnÛéñÀsež˜ôí—-]#Š£¼†ì/Eml1×PòpÀi‚MÂ/¨ÔÃÔkµ&Št#@‡:qœó$A¬´s]sy¶¹ £a̾K*`(ñA²¼öãÄ÷6Ïà\o­ŽéÕW8·:®1 Ì"M>.×pðmÒu_†Ÿònpb+\q¥5†t§‚?$z˜w¡ÿ?³?Åj=¾k»ŸØô²”晆Kº?”‹€ìªŒx©ƒ *;û±ÈÎI”÷Ѓõ æ¯_'K e#„‹MnŽ|¨rú®¬‰îQ¹Õ\^i"\‚–`>¶”2«û6*šÙ¤Š¬ŽØpoàç¾JíAÇ÷ ” -÷'FFÎL24Ã\ѽ%ÏxIR+„½Éæ ¨ å9^†ö7]™Ç”‡.¼ÞM‚ÍnƒxEào‹ÀóëAa{¨mZE^æOD`ù ÙP”Þ ÛÓ{ý›ùZ˜±,iQjA°ÔGÕ*4f§ö~¬É<$À»´#Ò2©CȘí57ˆÆ28\ǂĉå$8é{$"ÜŽÇØùŠÀú‚Ë®”¼’[vÂ~yGZRC^Ñöçë2Øu[uå91øÕÍü!Èîž+?NI’Îó_(\z@ÅÌñ6ž/W¸‹Q2öTìµ*µ,5‘Åt[öWdá¼üh\ŠÆ,H7uî…Qx`š›H½C†Y>M³æØ€·ÆîÈé5ï…tw©l”ü‘¼•~ É?³*˜ðçsy˜êÆaU¾;x-hî\Ö¥©%xQJMIÈ ÂÂF ¸¨{½”±0¸5ÁǬ(K=’ƒÐŽ×ªhÕôÉyRÆc0Ö'Ó’Ûa`ѵ?|Éì!•ÙåQ6黎»ý½¬Ö6T¡x‹Y_Bg›"¨¢ÕVâ¡Lo½Ø[ÊsbœÕñq²O¥Ú…ÃkîÏùùVÎ÷úÔ–ZŒ-È–@Î …WLlPŠùÖÍo´[–¼"£ÒçYM\GÇÆýBN ;!ÌWÒAÕb)€9ö-÷ 7_õJ®TaìýñìîÑrƒ‰…T ³g¾=!¢¦úÏâÄE†­G‡Å^S± Ÿ‡ã‚r~íîäÇLðÌÖÉU@óäPEƒ¸C 9øËnŲ‘L@j¦Ÿ9hPiòBW¯ MT|%/0$ø7<'o°ØDGõC1¤)ð=óÐ/*|ÝÖ8ÝûšÑÝ4¦Q`À]DiUœ-‡ÏG)oL§áýŒ¸mo´ö±R#ž± }@ü0/}¬tyÏè½HéO­ã÷VrНx»HLŠTgc5ªÎµo*Kù«³Œ¤(™–K_ d4˜T2,E¦?ÊÍ4°füóyœ}˜MÝ[J›ÂyÁ÷×ËD$3Bûþó–Ù÷Ý#¦-b€Aöd.±åR›x?+ï äFßÈÇÅ|ºSf¼tq”)W“¹7êŸ?€‡‹11G9Ày,(Z€pÍ#žs¼Pî›»ï]·"ê?§ZãÚ«Ïf$å«îÛóiÃÓ/ì^YZ++ÓØ;ˆŒÞ%³{»¦y@ã$>°Ls»}î3ŒòO:RJf)ܤQ5*Ô4ÑwJŠÚ©è1°M3d\+À“à>iô cM«â¸] ÿe}\LóÂäxºò@:u¯7ÙŽ¦‚ \öŽåU $îx&väú¼?o{-j.F^°JíÝ„Êè‰üwæ1|=ýy˃œ±ú™Œ6‚²¿9ω¥¡fpÎÇÉ£I^O3ƒ¾g=`˜4ÐHçæWt^ÅžÖ3ë(‰{§RA%±Öå׆nËý£P-¾‰VB›$Úpw•JÙÐníBÞvVA ±‡†=8E*Ë8GO?8‘àé_²à)êtå^u€±ÜI{}‚à´å™Ù(a=£D7çôuÑ;|jžÞÄZеX`4ÔW¾§›ÞrÑH ﱆõZwcTêbšªÄ+Œ¶ÐFŸMðð8ÄÉúÒ’¥xW:sÏ+ß÷fàüÇþdàE>Z58¼u¶¤šeþ%:èáñP¿ÀP"—wlrŒ:LÉ ºßACÒF «è\ņjÙƒgÓuq°Œ®ý¹•õ«??Ë3<49ìôÖò‰z wAI_¿¸U‹ñpì²öTû!¢ä·ÄfDD¬3r8ìKǬËÎq/#Æ:QOz‘²Ý_§Ü@³~KW†Ñ¬å¨ªå²r*†ÑZŠÁ¹‘§.wê´ù`=£‰º}ç1­t šÔòÐZQZ”ºæŒPå}KfE €mœK¸hÕIEoà Þï6gëÞ«"5~ÜÕ~ðÐöX¶yºÛ‰úƒ:o°ù³Ü\µz·ïÉ«ePæ/áµ°± ß!÷…ÒhóæÚ ‰ˆ%ÁÇâw BéÙâeØßX6ÏvÚ¥’ħC¨SãÄñ<Ùçœh¥Ým6SNNûnAocÌl³azmø±€»€@KÓ@ŒDÜ{Ë {ÌÊE©¹Ë~«âÚ²ÍUÞ´š›yŒ»¥CÙñ°¯NÇ[ ®Ü’H²‹Íãn|Zµ×N9™q…‰¿Ì:ÜæÊŸ>}Ò|–¡ŠÜ§âÝf„˜^óÂfÁŸ¸O€7[?\õ´«¯k sµ‡„R9ò£\\r¢Vœî.oX;}¾NÉžHI¤ÂtòÉFz »FýW¤m«H¶ù—º ôÙâUöµx¼å‹@þý¼là]¤ÊuO.ÈßMSib¨c'@H þOLzÃo¨OtZŽZà^:Xûk·ÿí—µ$e¼oÒ-½bmÎß´Ëh¥±IŽ#À†3Æ.äk¦²,ºTä/ºåZç :ÚÏ9ú/‚ t>'׺íõ»§œ`Ñ ÅA†N*7ãqT4šÏr½ Vt¥cÉu9¢àbg¥×ÅÜbW]ª`!“çk¦Ã³SíYò>@¾È€ˆÛÍûmbÆ×òuîw^üÿA¦{û±[=Mˆ6œ–O1Ìb•3çòOT [˜…˳ñ¯Kùœ;o7¿q›9’Í]s8 <„Õ¼ÀêÈÒÖ‡_±ž `W³Gçq”·w|¶›MNgÿ‹|‡†×IØŸ$—^l¤J\§v;-Þ‘nËÈ.kդ᷶{3HWÅxè¼×ÇàéN¬—j*u³@;¼±MûÜ?#>±“"Ã0®NO§Ù×]Z¡D‹Ä˜_ãoyÙ’ª9œä…SBîN „ࣂ—é{SÕ<˜œMU*\‰QL@tÖÊz¶Hï ¤TýD.¥‹ Oùæáã ’ÝpAÐóñ}¤›ø›Ý.>)/“GÆúyq“êC,ÚTT~¯B‚;Ü ºõ÷Å'·ÿcó©ú˜ÔÑÈë¶Ëdì×l‰a(]_¬Å¢`1?„úòÆxÅ^]3²²–Õ*}Ì4‹±¦O¨-ÚrÓ˜éHÅø*²GtWü±Ù¡±žÿš;¹nŠÞïl?´è€wË‚<ù„\µê°׋X}NR¸ïp_Z„Í É†dÄD'€ËñQ<[óÓÔ°£6+0T€•lm«ü;_ÑŸ6°Ù%&ã\À9c±›°«©?ш¹×r%@m­;ôevV…¸w?eþ¶ê¹'\ñ³Î%‹Éžók\8Åy¶.áJîþu‡¾ÆùC0¯zÐÏeY‹˜Ê‘B*é­a<:TjXihõ‰Ù@Ù™Y˜¼îõ´’´$±;ÿ€­¥É‹I ‰Kù‚W¾~/M›Ols[ñn1i<*óøëº•ž¨ÙL#Ha•þag|Ú?*»Ïo¹*rl‚ÊŸöMPtÉã1Æ}¸n ßOf9Ëy—¸|ˆd^‰ÑHZÛ°p¯¦uPš×)væµr•ÙÌíÉüó¦ŠÅ+·"÷îM\åUAP•?Us†úvV¦]ùpÈCJ¦LìüÞ¯^ÆC>¢èu¨×^®¨úÞ|ßaÃö~Ы©Îd¬=VÀªÚªPx6î÷Bñ¤@ËûIêÚªG‰|ÎVW\š2åü/|ø|߉ ^Žž_©[°”™ô\îª6„ûÖJ@R–áá8^gþrݪ%¦Ò%`̱’-5³Ó*Fës•'>©AغŽ^ÊîØžj_¹â!w­»³Y‹¸+×;Mnlºާl-@WÞS`q¡Z—X$kžw=@`Û©³tý½Þ–«½Î¿r7X~¢¾XåèÌH>PµæË‰ëÐ=O}{ \xhÈ[•¦}ìˆÈôTNG(ÈHÀÅr4kKÒ{ÕEq¿Ceã ó’|W“/à«Úþ¼ÐÀéYÎ໤½VýñǵazêuQi$âÐñùà¿ò‰¨ÔhŽ©!ÁWj—9—ä¸ÎtÿèÂÇæ€VNzè©to·D'•É­«ÈÉ7:‹ÜÞšZù®øÓöžñ:k eý3Öû㼆YßÖ” ½«s…ÍÏa„¨í’‹ ­×"mÕL!&vìäLÝ h2Xäz¸þc¢:ê e.p¾í|Ý›½ßCºOëû’§J›7FMñH›ÄØù)ñÒêlñ=PŠ7Õü6½.òŽýÏÛ‹Æ¥è>íhæU÷âbb¶ß¡)YŸq[¼Æ Á½k›šîÏQ#Úõ*¾æØ©÷è(f©«VAîÊ5ÀÝí ³5»¶ÃÓüƼãñàI¸FïžAUPPòŒùO‹øêK‹í—x€\*Ü|Ã6Jz±Ü™š;ñ«'¸L NIïE{òÁT=e%Û&A7K+jóRšÖßâ øê÷^8¾oœ ŠÎ9wOkfBÏP­‘鮘UB\ÿíw»•ûñíÐC8t îò)ÏBÁO+q¦Úâ•:çts&•‡Ê!SŒåírf…+¼Ï"æriŽi^&î]zpÚuÛÁëÅIcyÑcÅHiùöÕó\$(‡;ë+¿#±¨;LL0çíךQ‚Ûpßã¸ä§šÛÇàCÙ/ˆ>jð~GÄ›RÁý“—=zª×N6„àJ®#71Áüúj¡£TšÆyÔY ¸÷óܸrŽÿÙ•yÃß[÷D“´TZ8Ï×ïÓæáé0ÏQ¦iê•^wЬ+}÷6^PÇÛcæwƒï2ïZC*GôþÆé4Õ‘^öIÓ]_:{É-2ãÒâ3`D’IµDÎÒ¯¶‘ŠÄb8âω_ºæÔêÇ-†¢†Î²ûglz‹“޵A[HZ˜]ÀqhöÙj)ãyöZ§‚~\ˆu?ÌW÷<°Ä=øa"vZ¹Ö5h™“Å£øv#NÎŒiðñÃ7U!àË\â0%¯ocççÆÛÐÙ²þ\œÔq ÷ºv²É=Ÿ?øk¼X ˆö°èÁO£zLë‹8îÂ-H™ÌÓ’~jP®äçìãpÎÁ¦99‘‡—Õïö»Ðb ÙXÜJá!ý ?Ðy¨'«zÃÖî-ó¸‡h´’H·wå)aWð¿ÏvKíZ4p]×éPoß«ÐDÛi‹bgÛjûøÆê¼s³çØyÿ¼þdˆ ëÚŒ<çÁÇíx¨> ÑBQQ-ðr¿Õ/Îý’½Å+ŠeUyIÎÍ Òßøvû’‹4ŒÖËšò­Ö +ø&ð $0|ŧ´ƒÄ*MÙ8'ï 2æéå?¾GåÂEW0}”“BG_ˆ™§w‹SómoBÐGÕ0·Ü¤îüšHTøéƒþÛ€*XŸbWÜÐõEÓô¼‘R8ôÞá劤ŠœæÅú•X|—é^ê \êS? áL~ž'Åú"cE®q ÔžzÒlP“ŽûUì°r©°žÃüu~81¨1ÖߟwÇÜ ŒU,§QѲRÿøøÁQTþÞÇ©\¶9c@[ZhÕÒˆ}¨Zdw¦~e‰(T¯á»ï÷µ¼þ\…b'á&XÏ[ÜL6ªÍZ‹R„É·ÖîÏÖhDÇÁkÑ"í— c{°š ŸOL±¢Ý— =Os§MúÅJí³it'† ¨ü‰¶‚wt+«R{ÛgðoO*[ä°Õ…t²ág³E€Êf*ú¯b™vU²cúüû‹¸_Îöp§ß ÂU’GoêˆÀ´BN å:ËjU®pÁɱC˜ÕÜý§}õ™®—nîíì‹fÏí¯\‚ØÈŽ’I1à ý€!^rE UQŽ Ø³W,´¦ G^7ìèƒI¢J€ç íÙ°o²$žÜ– 5˜P+…¾(ËÙ‚/E—Í]_ƒŸñ "‘Fâw·î–vä*“Œ¼¨ìðòؿՃÀÑ5Á С˜¯ðÐ]¶øÑúdkï-E§’±îÈ,$‘WµO€ŽÚW©ÝÅ»ùåfϵ7{ó£"±X’¢Hµ¤Ø•ቧعC:F0ÙÆüÉA'õR3iTé()œsüÆLŽÚJ¯mžÉJvss«8z^õœ—7œ»§C͈§¯èï!¹eY _ýë3A/šÑ\ÿ¸fÐĺyÆ¢ +ç·­Ây–ZiðòeAÕ]éÐÃÏ!µ³¾OCáÖΫ”dÔP¶­•åNK8ÑÔÆpè»æžÌ? e£%õ¾!)‚óš6GÉ‘¦‚=º‡Àh€Mõ ¸Yî?/Ko¿º¨D§‡ÇmÇRm—?™öX´ÂÛwb?^Üÿo‚'ì÷ù`ÈäY¸¤ hrõ(òA:©ú„j¨Hrµ½º$ýX‹µNŽ+ËæÿÜ“2ð;S@Ôé^E掰Z–eò)LãÔªåÿ­±§%™¶Ï$KíÖÛ~z(ù¾ÌŠS‡Ê‡øClÚ ÊËY1”nïb¸ É€¢ƒ/,Ò{”ðQÚkž;æí¸°ÙÚ#µtËÐPßußÿVUÛ¥Y‘¼.%öÐKž èúBÀÇlû×ÓßìíÄ lÙ ¨U5ª¥}¾u³œ"𴠵Ť¨‘, lÇ`ð=‚–Z)Ø®èýŽŽ“I» x§¨ƒ­biLºïgôä°¼\øžI\Bòy /¥HýEtÖ…%(ï%\ “ë¾iÁ>¹‡öME[‚/gþ¬á•ʪ¡OÚi~ Ph f&åóÖ(Ò<á#k-MÆøü!ó1¤ÀÁôÁÌ‘VÐvÈ÷!×LG6ÂV€SÙ‰‘€®ÒÒZ-$ó‹;s2Ç—á;ƒã+‚ˆýóÞOùåfj€<eÊÙ»ÛáâxŠÆí_“yK4?sôªºNíñ‘Má0š[ŠJÚ·K°{=rxÓD9Z§J ßá4 Ô³šw}ÂVçœÔëKâÚbrÁVewP•_ƒjT®¦ –ÏöªŸu2í }ÏÖƒµ²@¢IêÞ‰‡vG¨’ôvÙÕºÞ/ã9µ*ô3xô®åè`СÅú¶Cä …Xñýͽ9gšŽÁggY*øiéa˜†Üß 1ý_ÁQ‚ „Äó³îŠ®‘S*þ}ù)É­¥áër7C`¿ˆ7¾çŸåQS3'&á1w»M³dޏ¹º›¾þ!F3»" Iº.ÞD›"Ÿ€ ½æ¶glßNì¾xç­‚‘ñTG‚Ú9BJæòîÂn:¯•t¢âÆñÈ}'\¢§‡ {Ô;„¡²è®YNçM.÷ù´|údÝ]á­°;YðáÖ¯!¿sé²vÂSTzŒt‹HQdÒ­\+ ü»ÐümH¬l2>mu›6ýrVŽ$z#Äc¤C9+V–zÒÒ«´–‰C€í?®zjp÷pÊ È1eöœ†ÏU  °s«ñd4úüFZœÍ K% -‚™`ΰèÆY@ÚÃKž‡|üÎgOà³2²O# ØÐ,ƒú¶]G`“=xžÉ)ϰvbò @°DEÕ³}è+û²l2‹ðHEî35úõO‹²lã’jãÏ×ÿ71‡eþ)Ïç ªÞ˜vBhO¯ËÞÞ&誛)¹ÿ$À%÷•îÚÊB·ÎnΓHËû”åïF@ü5пƒ)iLJ;vEë!ù¥YÃûI^Á ÁŸ¶4ŒÝåD?W:‚CxN®„ÙB ž$º¾CŒÕæ“DKQÏ‹SWa¼H¯ô¨ÀOh€R);î7VÑ!ÊsïÙ@L‡áÀ++µ#ŠfÇê_ëø4w°_ ™"z`Ѹ>£Ó',ß*‚}„Uý³0åÕ‘‚ð…já:ýŸ@AâíŒÐ®¼‡j÷wþ~E+F\hgëFߌÒDîÈáò³¼e¦,㟊«2`ŸKÌbf¸KÇ“ ÿ…“˸n)Ì@js{ÙYÁ;áYf©†­Úᛉç.Œ££ápNðt7¹ ¾¨®+~ïêW{YªYCfuŽUeqÝÓKµóv£Ä¥Ú‰ú(’éõ¤ï}nô8S°ûwʘÇ23Ô8ÀgÊæ½¨Ê ærl8vÅdøý ’Ïã)=X?àH}Qš¹­Æx gÏ+y–bÈ=.uLëó%dµñ/¼4+¡J}r Ÿ°%Z-I¼Ð N$f‘ÉÝÊt,“x5bÈV¯Õ¶$ú°žª}˜XM“×£tu2X⪀8Q_ìÈÁ½Ûën“7ï@:ßx¦Qv©½âˆBб:¹TÒfØÄrl]m¦$ô²3=Ø @@¨®—èM3®R6;ç"G©vh&þ2”ÓR:¥¡…‡²p¢ÃÃS‡$‡¼y6ʯòÅàËÌ[=5ÓÍ’Çjoq†þÊ!ÍÜÁmšæ˜ïú …+>2ÄxË#”Ù«O_¨Ã lÜ€½–XmŒóû5"8̶(«Eb2ó”Ií¨Ìõ/…5œÅ“3¶ªÐˆ÷Ó°?¼0Œ*¼_ëQ’Qÿ¿l­¬$ާ–·£ ’O¯öÁ–¾28âòçé§Lwá@c3z Ù/Ï­x²ÇÏŒ´¬4|¥³ìŒé@PÏ'.§ üôÖ ¶ D¼ P+æ Âò¸¥Ùºê:2~‚hqI{ -š,uÍ\R7£®¤-p“©8@fNKòr¸J‘¸ã±ÅŠpd{Ľ¡Þáh?¹ëŠp»$íß{_€³\YŠpÜ à%p*-½Ý¶Ïéìµ™ð 5ʹpç øLçH™føJ囊3ü¬7!Q0‚GÎ Çýç‚»v•ÔBÖ@×¢Œp¼"•çVÓìlqÅ) U*8p{OqxÖf”Ù„”Mï¿Aj™k~Ç4«¯Nßü«„¹0ù‡×‡Vžnëpᦇ–—Ñÿpd9øVè+9Ã’³-}k·;˜—‹Èð ;™{ñæÖª¾£ >êR¸3aŒ®ƒ²Ë ñHðÇ2u)ü­ÉXtÏòµYmifóeð.#´¤>³wŸæ;÷ÝÍ£OvÞ“c"ŒÖage¨¿ü™Íi„;HÍà8­÷(.Šï©ö×õsLJ³÷ǸQEÅiÓ;ù¬ð ;”ËöܾáQ÷iYd lݤÓö±œ‚BÐø‰ê³˜p7p-SÐZÀsì1Õ½ <õgì;¯ ²‡È-±(*$X¶:H‰u[71áF’]–Þ-pÕL…gfÜ&’¹Áämeùõ –Û ƒãp˜S²U”ëDn\œ{ Ç…¼CóòÖÙê£[ŽàÏ]1­XÍzv¦ÕÓ # f 9?%ÚÊ5’ª ]åœ þùeë±ù¤]£"ÄûŠö ¢ºú!s±~köfúáç ˆã¿wI‹;[4Yèuç¬Ã:¨-d¿’lc–2*Ÿ">G“CÈ¡*žøWâƒ5<»Nè4Õq¼µû ÝîæW¡Tl;ƒ!&~„Ä´Ç=wª ÜR7KËwOîu™ødìZ©=ÂÑ–¥(a$°à"ÓÛgÄÈDöuŸW¶N͇ÝxºÝuàdšô'øÕ·¿;Úï8¯­ÏÖ{ÿ„KÃØlÚÚg*ß° ¢Ðú®ØÂF°O/& ¦´¥ªPì†>­ëw·Â·åÏã8žö(!5Gi颵©¶3¼ª¾šY«®œîÝ0Ï‹tŽ"«bÀý‹/%]H%ú ‹†íð‚sOHó_»óõ`wÔ÷d{è4þC«?ñðç̃ϪœRÔl-×I+jÂÞ¯1R,nÎ/["âß Üô„–kX‡õ¹ä6Lçufï'²CiÏ­wcüf U£DiLgµˆpº’…í ˜‘¼¯’ü kìR„ áBWš7I—‘ojlff Ð0^ ïJ i9“DÃç°y˜KéVÒ 6€­«¨&€-ƒ,®I ƒè “ÕJü•ëÐ@ÀF:€žK>µ„ßRvL Ùz“ÌÂÂí=h²Lž®r–nñ¹Ni™Ôî€p,¤±™1?Š yo¥‰£ãÃ4Ì"©TS"ºLkD‰¾( »½î‹„Ã夂¤¢ý»ù§ËJ.æüîÉv1¡PxL¾o­xîบ›AÛ¶m2P)¢KËót»"§.E‰6nX²[sZ¿Ú(ùû©”fçyÃìf`[îEi[|cR¿Åhñ$’|ð,ùI,ÜUs˜Ïõz†žíÚÛîíÖxë=ªàÅ=¸ñ´*^ÆöÙ ÁEáWÜ'RåÅ (Ë[Kl›2Ç$ÊÀIÛkÝy%£BÙg:(»EIÙF”t:è[' Å©—GÿnïhgzÉDqhšÀš7¿Öôñ¼‡÷Ú34µ4nk°µy⢼…hàð°£z‰î4<û'Iih#‘É}™¤’›eºæïÔM$QhϰuPxñL´y1Zp¤WcÍy²ÔçAù…Ÿ%¨#V“·-wÕÔOãs# ¥ìžà•ë[ÉBÄ'ÅÝDckñ#> zfìïHÃß_»{¼|•t{Ã8à–¬}M˜8 ™…´LK‰AÇ>œ}Ã…÷õW¿71:ÐbÛ½)büL â’lúÿ*ö¿? øŠwEåë²ϲ5.Gšé.O‹*±¤ÉXMkÜ9¤Qåöÿ­ÞAÑU¿È®\¯ûj¥¨‚î{ØrG– ðM˜‡¤`—9ƒˆ7î—ŽÇÔŸñôþ¹Ÿ íœáâý8ºJ='­Í›ùÇ’kê7³+HeÑÆ_ØSªêÈ(¶àÖ¨“U΃Ù3ë@ *‹×Šø8[ ójÌÆ+†Ñ]J{Üœ>ŠíSNïü³IVF…+÷Á™ÕA÷,þ{ÕpJ$ßy»Õ§¾ôhœ„ÒU«ÛÓtäÔ§ Ež©^ …!ªãÏn¢Û`ü’áî± S yrë^ -z^³ò¶¬ˆgð²úîۯ˘|°´g€c¹‘tÔ²³iºó×uu‚EPÖ½úù: 2×÷_3Ÿ®¥ðmœ˜m¶F¡~CNôí0Ïr…Ï(þN5Kcð£º:[SÙßR—«¢íÙ•GÜâÐ*€ J6²Ð^û.¡]ŒÃiZ&ÙIEjrF¼’_”êÜJÌß2¬ð8Ir À ,ùFm—ŸÈOÝø  ºS+oõ†¡ï‡iŒH¾ÆKá‘…I­¬€óÈÈFcQP§ØyÆá0·P´,Fæ$Ã-Ï•.‘°ì«®ÑÒXœJcÈ(Ddî{ ¼, Abêd ÏÈ‹äL1‹D|5cRçæktÙÆP -.2QÁ[×/äf|ø¥Ki/ ì'\ä¸óÜš ¹ˆYn¼mÞ¯Ip#±O•—Þ¶µåñ ™>‘1¡SoZ<ïa™Œ›•sÉb.hƒm—V*8éÝ—AÞ‰<‘ç‹+#Ó £M&#«Á˜ ½ ±Î*—Ý´ü”e „´@Ãû݈A0@ýp–!Hýà"L#0ÄŽR¡ ß±òEþ)µ¥é¤"öR>íçE evI oóþ"Žm4-ÖoN}°@ÜÌrFœø‡WÔ4Ué’~Ì»#ú+¼zgâ´Âsohûï#O̘¸ÿ2žó¼¯ûTnŽ1sÅ„òÁüTÁ;ðEH‰Çûë |µ"Ý%Øo««D‚¤ ‰ãÄ8Æ^xÄÜÒñíÄÎsy!%ÂØAßè<³6¬ ¢Œp+®žëá«ô =-¤†G©£…=Eo'¶fgñ[ê—…Øã˜ù0Á'“•n ·X/NOá¡” —VÖŪ&‡'üý¨$ù ”d eÔÂÍ,r6¼µùï5fÍ)cªæeÍüü*ö%©÷Vü_áž ½¾SÎÆ ¯(Ñ~Y§ÂYóãOmìrÙ”ZµXlK#Ó÷¦^`·8-YÖwg,6…7÷_ügÇ0Ü42kÁ.=Í®sî"Þµ"ÿÉ—»z¢uô•—öRŠî}¦:phæ/RmÓ“…­Ï£Ø#i£éw„kej9 î‚ÈÄ’gPÌFûÆ/­ÿ}Áí*”¹Sðàâ/Šƒþš ‰2ÿL€O 6‹Á@À”X*'¼4xG¾·›hú!‡_ž"Š¥dùÆÐ{`§sýú¹cP#¬ždS±ŸÆ»4<´_vÃJ‘'¹S}ÕÉèòѹw”}y,K:ÃÕŽÂóç°¡gYTÐU—[©®œH˜•‰ú\Odó²z¹&™·€SK8O™Á˜f@(J Ðbj­3–®‹ìéR˜ÛÐ ææŒÛ$ˆ÷_ 1áAåè¹=>gØr|é®WŠÏѬ˜/3Ä£õ+ï›öÅ·ÃSŽÆñÎm‹O“š—ˆxƒƒ”®ºkY3³^×’â“;„è7´7öf¦Ø0ø¬Á">š@ÚLá^ vÑàýøçðògfŸR…‰n fŸÜ<‘Ë,5Á{ÂýçX–G¸¯¡mrbjjˬ`Õ1oïÙ9ÀŸPÆCU3Èó6Ýx“É)ÝÚV½5ºzÐ’IäÂj¯¬ÁLkB(©@¶-³Ñã„RïÇ)’$ÉsËØ÷ãî–>C„Ú¤#Wxqí~ThÉ2MOgWP¶]¼+ Y? ¡ü=<à &–C¤}°åÐô6Ô}¶D¡Ä2ÈyÖɱ{Ý䯤´1ÿ|ݼ<€Ã^Ç×<ÐÎb™Ð$ 9u’ÈVÅ\ ¹:¥³ikøç¡½ôà¾i¨q ì/[Sp0ËHØáŽqC 7=è[aƒX±¬¼¹!xæ\PØñ{z|~¥Ó™¤Mý—Ó䣓’Ç Ùàòw»ÝpõOjm¼ËK†íèWn  ›ø¹Vƺ$”u|` ‘÷Ûàà ‹× d’ñí¥Ùþ‘fÀ£žÊ*•}xLDÐÃ’‹'ä^C¿,N1€ýH¬õË“5樋 lÝH¾¬ŽzÔsR€EC»Ÿ]Ö"É0h#Ö,Bf5`ÊDdîbÏ)¯ßEÛÜÌ<ä´T€öÈo;< ÆùÁtgU‚vª°O0¼û–Ø¡äç\Ú.„I]¨vEWÐCmð{Ÿ{‘ûÚÙÀÌEŽïtÚP¼ # :b1îò°–ƒe•orÞˆ,Íù­ àm.¡³„ ×yÂè=«¢;­˜¤M³®Q/-¦a›9S(бà¹G€þ5G Î3`]ñ ­¼Mh‹¾ë¼¦PÖKV× oƒÿ´gT@[õë2¥¼5ÇšNy ¬—%ë£xÓ žÈëHÆy—>W¼í]¢a^ü‰°éSÀ¬ò»mÄ›GeªúˆtJm¶¿ë Aä/“õZ!ü•H±²5ã8Õ¸{Õô·cqÝï#®p²xºéF5½¯!ST8ÈçuÃ(+ÛÉ|œ ‡,‚Œ°—­×ä¹Xž¡ëDZ† ªõj®{3Åž\nÒG3SC‡˜GÖŒÈÖ.EbËöØŠy.ªøEJE÷¼Ö$ X³çu])ÒóÔyñ6X\œÝÌ«ÅÂë AÁ6“逋¶ ;³ÏŠ ­åjÍsÇi‘Õ^º%›í5ö—6JýÿFýrÙáþ¹Œq=kXO\Ñv Ú'Â|pKúgRŽçí·*BÕÙUv0– ÂS#öQŽ7~‚ëÂ4¿ÚZ:T6Y^·n¬Ö£ÊÕ†a9{ ÑØ´"½à:ÛºK» r Þõþ9ÜŠì+ >è\ÛG™¶ád¢Û‹¯}t&b±r«xã]ÿì!Ó?¦÷ "˜m0#¶ô@¹‡Æ^ôÀÍ,ï`ÒÜ÷òø©¹[¯{ñÂÅvÒ'~¥w?°‹–áÑvlGÀ½Q»î8¦ÇŒÁ—¡~¬…â]ÑK*ÿ…ÄÍ''½_¿Þ‘FCTŽÑ3§î?º*YÔÃã¢ñ9¯p§÷­œn WäæA’Xžà~§”>Ó8‹ÂÞp>€X¨nÁ;Xdĺ@ÖZÆI^ªšøVBFREÉh´õʹ+16èCÿ/ƒ¤bÐI³4Pßvœ(n´jLRiS¿‘Ó4 ‘5{ ®¦˜èŠU#ÎH9âÝFRÁTgH(E9¾„©&^!'¼Ä›Ìðþ娈ÌÛ"°4~8-®È2ÇÅë2ñ5xZ¥vhM‰i]Y¡ ÃJW2šçD+¹\Fr™Ú>­&À@Žë=ߤ“?\8äÓ/ÊÎôWŒÊ?ãǰà'ìœÄ!ê…¢o~Ù[¯’’ÑÙ.Ú’p· ß-SֹϲŸ©‘·±ðQ?ˆ€¤Ð’îhbô*êìB€fä¦Bžtñ³’ßl®ò\¤õì×ù<¼?V5óAëÖlñâãÞï²Mé(#C6ŠˆÜúˆ]}LÇ­_é2£»lc‚óéú9¾´Ö»VÜñcdçÊÓP•;–w ½n4HgŒÕRÕ€º•ë°¾K-3¤€½§‘Q/^Û0JáŽñmŰÆù×½bº$ò þ’ó꺒A‡CëÜþ$„i—ל÷õ?>6¸¥±/æ`ï:ü°ì²ÖR.¸Q/O°Y(ž¦²‡Ü¨ÇÖlrn®¸,M9‹yûï¤$Ì9Ž4ÀæÑükû74 ´Þ™y%5|Ù-¢³@dÍ™¦I*lÁ‰‘7–Zè!›Bª(æHäÑgH"¢–ÛЕšŠm#ó¢6Nøê_ý^5„@TywÎ7Âd$J'ú†õh~'‘…’॰Æ"З_ë¼lÛ±6v%Ó64rá`«áå&v›±”öÙ‚ªX>Ž÷Jt ]ðUÖn×5p² G‘a¯Ì‰’p&¾ŸÀéÎ2Qà­4 ܲ^¤Ã”V i¢Øþ Å]\何–«ñìŒ!##Ó‡QÀž7{H#)¤ƒN•‘Tµ3sÃIëËïÎ?L;Ê/æ¯ÀAÌ:t™¾ð|¯'†ù¼¿Ê˲$g£@àÀ_{0†é€8Ö­Sœu B4ÔLÎPáw×ËÉl”7¸d»*%±µÑ3ËKë‡ó v3þneÜþŠeëkP‹çÑ;$Úæž›hýÐDžãÚ­ô #ê¬awˆl¶ƒî‘~ëç3ÛÈDìˆU ¥l0]øžÊaÅCËÖŽˆwš´ŒVº½ ¾ü-qã1šíÑÆVï·û2JŽ0X°!óÜ÷¥lX¬(™H½™ÎÓ§~¿˜¯o*ôìð©‰Pf tbIJ0]^”e™îh[ž:¬ö|!¬ð¸ožG¥·e\†ºmíukM–Sù²Ä¨%x*ÄCóÌöARÿn0«;]Ux©‡Ù³Ü{ßúÃ?tìúmé¹Õ†Ñ.y€ÝEˆè‡Oªð¦5l!—XV)Ò8·å¯ìqïuC6® B¬Ì¦Ÿ]Igs9€¼|fëde§ÖŸ·âPðÞê—û1 ±kFº‹fcËÑzP>·¦~¦¹ÉK8{öhÄ!ŠýÄt*ß±D¾1¬uõaëĺËÒ}Ú°È÷þ§íð¬Xú®Ö­ñH"»ÿ`ïëÅΊşWiµD¶NÎ[É#SrM³)wÿrvóÚõa˹êE7ìX6üç(ߌ>5ˆåú,å÷/ÿC×OÚ‚ C‚Ñе¿Ì—û"ÃDìø±?Y4ˤ“¬,ËìÈlny5`±MÖðšF$Ú?rÇé·Õ©”šÿáE¡HM@Sã$W¸¡kejB¾ÔÙwU¿M—ŠHùîá9Rˆ?É#1V]²ÄH_\ÏŸo9mtd_Æ\¼XÝ_ y‹ž5¢ÔE©_O —æÃ{FNñìpuëÅfX¾-‘Û»:Ò†÷£šš`;»C…²l æœÿŠoøHÍÚ«+—¼»Bâéê‚(Ÿ2ÍBÕp¼‚ÄÇç!éÑ?ÐËlÙõö©€¸MÞgÝåØšL$wõ~I!â­ô¬Ã›K¬¼T`ù%~3ö6@£A臷ʛÍÔr=öV9½[e­˜èF  &f«ÛÂ;ìâɯ‰¥:§üdÛª~õIWÎú…:u5Ó½Á"ö±F‹Y‰´â“{fF"9ÊAÄ;ɼÀõŒÒôDìØm€‹]Ÿêmr¸ ßT¤_ÔÝć5Aä Ž×Þ ´ØÑã~³©Ÿþ‰ ƒ•…#Q»V+¸-2t'­=?W‰eÿÑÌØ=ï Æ¯3@qǂ˭ˆöƒ/œŽùÿ§ªnÇ#Hƒ"M°ø`B³fáEir‡­ ê€àýK¸… ݵpzƒUnà ô©¹fÞ™t†¤Üv°Åa<‘¹…;grýÑçåTÓ.‹¦ ÖÅc« ‰É5n( † /ÞÇöÉ©fÄ"Ø †¤òåc'çÉÙõÖ ?}w«ƒ!nÑÕzá«Ë×^3˜‚HÍÈ|,RtÃ6›Ã¡f!g B Õ4s3œsÅOÁÇ;ÙWÚU²;™®¤Ý4Yôðáq>î‚D±Š#éÙm™{ €Ån´gœ›þ(M•WA)±%ÇUÐSG†n:Gu+‡©˜"&y/ÜSÛ3­´£ûÛ(ïzÈû<ઌ3ÿ ºˆb•nÙyj­eª2A}‚YÐ뉩ÿ¸Gç}ABRÌÆççé>÷F–2sÓ¸›-‰û*`*`I“rôplËZ®”[3ý–-|$Tòý‡ ±ùDŒ—G²ªAˆNa=å(åås•6»ˆnáæ8:*å|«®{KÏXf—Þ‘¨ÔÚÙÂ'º£pwüW^»è¸°Ç¸£¸•Ð߃uµwõ€Ï÷ÂpÝߨTAC:NM@Ù6 óÚÔ¢çÖc¡Ç2õ÷miòÆµŽ¾ëRþ¸º%þ²ëQü ½ºèÞdáÚ;B~/ Fù±§³èÍ›(ÌÕ¡âgàV¨–xD-rG#w؆ˆ%J.2w2V_È;¢mo¬2î¢7V1ÄK/ÞLÏȮ޻éñ(o+½ò-dGÕŒ¤L.lïå< öÕ4 ñúõÀÏýÓq’,ÜVB˜ÎЇL§Zašå|A6à3ò2°“³szÉ*Š ¯ÚhB.¤Œ´ãJ->åÉá±jd8g3¼'ƒq‚.ñ· ö´s󌔛†ô_¾ö3ïIWÓq8Š3*¸„ZÇÜi‰(/ã,yÎ*Üwo0¨ñX{ío÷?d‡ŸòÐÕ¯k½xÑî?,SŒ¦¢×ÜŸÞØ‚§ÜOðÛ7Eu‚뢮F±17=û"Çžê–ãHStFþgŸEÑéé·UF]*üö –bSUÁWÛ·¿Ø|4êÔPÕå¯&åÒ~~³OÒ3àq,Ye w~M~i¿žÉ¡×lĽýý‰>õXww š/ö!¸yHÄ„Œ¾ æˆØÿüÉ-Q×0ê ½sCpŠšã'ql®ëþçÖÔ¿<ó×0„Õ3F2‰Ü«ÄJ"c¹r­(,W—þl}ì‹â&«‚î$\ôšQš÷Eb€ÐÍbd—ÜO m>R5æ&Š¥š.ˆ(Aön~ÝìU9Aä»´óàÜKU—Õ‘ ^ÙÖ‘RÙ‘Õ‘$H+–h÷'§ÌøÏA垺 ¿ªàzI7h… .mâNÕ¦ãñÛ¹$os ÄχïmÍg–¤¸Ê0ø^ƒzGd‡àÀö÷‘€‹âj‹®q&-çixžAÇÛ”~»m*¬þ:—þÒç`úã]ÄÇß'qä HOΕ6“ˉcï­ý¼õ‰9•,^RMBN](¤ÄB5) ÜÀ¯l!9V;0¿5 ±K )x¿Mï$â{»Dù ÔõA܃=š€>ÄÎÇz: p ]I9£>[ÑÑH¹Ô3㛡ʮ©:ˆ“™«_Ø`_#¤Qh—âQm á”y@ÜøV‚òÙƒ§ б€hÈ|÷^tµ3ãoô”¾Ø6Q\òµ‘­Ç¿ÆÆò¢¿NÖ®ˆhß‚-Rêxïòö&B_(ÊQ‹h{ÊÇ;Y\éìõŽõ—tíjŒ.ËX¾e –¥Õ#{X¸¹ïQCì w.LæPÖ€²Ï§µ~|œŸÉÒ3,-檻 úã é͂Á`µulk7¶MPLôS"÷ê«ñƒì;¿¼¾c€ÿ}l©4qFÊc™•FQÈÿúm­eý†ƒÄ×”vˆêÇ@PñìÁúü  }€^éZZ£rêbÇï„_`FjXlÞÈbѥΩ^˜àO¹‰“D­©ŸÈa¸,½鉯½’Ì>莠 oÃæ‚ÝA9Ó+$[ʬÑsäÎMŸø”u)È·G$ƒ+s•ÐÄ%r8rjõ…èÊÃ!õ0©ÛV ïóšÃR~?ȨæåÓhXLáÞ†ëëNÞÍCõŽ\XÒûøˆ£¾©Òï*!£µb/ø£Ã- zÆNù–\ô0L+JgÛaÌ6qÿ¾Ç…¸„Ï ”›/«÷êpI¨‰¬-#wć’g<æâÓúê°ÙÝ!v™?ßݦ÷•.:¿üÿà¡4·j\Ï0?s"U#Åeãƒaès}}M¾x Rî­-†—¶¨Çk¤|n/uº¸>À,]gN¸¥€Ë¨"äJ÷Õu±fqiR°bP=~V€4›pyw—Ϫs¢VWƒôIšÁ75[+S?wØ”àÚ§†ˆMÚPú‚Gðžò\¬jaè09Bñœ¶^‰ï;äð »ËkàZ’2©nùÃØqʼ2¡dàÄ£Y##‡¨@…MÌ·hëTüP 5Š0¤àÝ™Cáó²>6>èLTöÛº¸ëÁj.†í·-íˆæ Œ¢]_ªYb+ƒ<ø/üŸ]ä £–±Súp;ŽÁG·—ßPá‘,æ‘ÿ½ œÈ…)„×Jœ®âä(Û¥ó›M£H冻;¼Áºcӣؘ¢èHþ‡+ÌC²¶(ïGa¥ØÓg%¥Û{÷âР$M—ý-™y¼¬R¥' Ïs¨c#üv%¥f{ßY‘l2³Hз$„sêk]ѱëö¨²r³HQí5$_!èÇØ?Á×X†1æ ]ùx+,Ź„*Z ;Ð÷ʧsµ<<ȸ˨ñŒÃf .ÞÜ ÒÔüæÚ8IÅ[œðÖ÷[JêËÁbdÉ2Z`Ëb›}J„(æ¢ò…¼2˜ª~ûlYy+ 7Þ@›# #¶°¶ý)ñžÈ­e‰·!ù¤ü«áÔiæN"¢ÜI-•›c0%:ê¾òƒ›‹§‰ž/Yþšµo=kq¹ ZÆÖÛÁ¨©ùÔ­<«ö¶cíèçî]D¤Q»xâÿ¬ê—;ú5ÛVajéÓZ…a×iÂÁO7õÔ0®ñ–¥´)(ZY"»4™j¹wR F¸ Êÿ-ðk®oWˆ¬Zõ¥Ì´t"‚î 8–Ð7kŸ`.Ð(꾡Úzw¢Ç²óNLõ°Û‚x©p†ñç/vf“e_ì,(òbºÆ+3 #¨"z,p– Ç…yùº'H}÷µ‰cÃzdMŒÖýíÙóE‰b€*ZNj/¹(…J1RCØlDFIV?æ,õoÛC {SÈã"îÎí) ½vn\ :iÐÜo,º¥}NK›k—[T>º4yÏ}ɨöûÑÍ?÷Í"a¢r¼‹JfåÑ«‰‡¢QÙ0wˆªl:d6,=à[ wÜ­ÐÏŸYÐ]e…Ý(¨ Ñ,ðSƒÄ›…tLä’}ØâPÔý?7ÊXÅõ“Šx,q–dçóã3™±­ó‡…l„3º‚,«ûÕH Yš¸ìçËÉ5c\·„~vëUjca÷2€—Ú]þFÀö_/–Æ^ý0è<(0¯‚ërªEžbïyt'bv_u£jWõ¸”=Ý’ÏÉ_k°à:s.‚‚YŒƒ’<9ºrlrÃßÁ>¨–@ê½Ô®Ôœî¯±Œr:g; 1h7Ÿ<ÕaHïÀYZ0ª"P‡{¡Ò™¨ô Ž%†ÿ4­I˜àÊ£34ì Á93#ö~0+=±–ʃ‰Ê“"@o&ά¨l#ôˆŠ}¥® ò,¾j¼yË]N¾Gyž,ó=ûôaëW?§;@òÁX™‡(„nÄÔØ{ñ°¥èdþüiÒ”ÉjÇÜ@*üÐïK-òTž<ðòc™¿â2q»´:v¸EöÎRcE‘B•ä<ñŒá@ÀPEɈ³“ýŠÙ²ëp#Û2É7>j“Jn"UÛÖ¤BÏ•ÿ²,·vç”>Ç1µ²Wáø“XGi£„E¥öfO&M{N#Zˆ¡û…a§£ ¨snñIµ©kIp{áJ€:Ó ÖAñ5¯åÈÇ >’ÝYmßÛaÜ hOLØC ~ n8ró¤ëªå?»ªKJÌña¤Yÿî7ß]ìFÝ-k碢ީšY®e|#ûJ2¦ÖRI´‰£¡é±‚Lå mö±;Jô7â]Ò²Øÿ¸È½þV ÎpUñ~pÑõê9V€:JDaftih§¨ ’·ÍÇìú¢œd îŠìR€÷ýÔÏ>Âmˆµ¸€‰1K‚4×b‚ôÉéB*Ÿ5¿8õÃ0ë‚ÙõZß+ÀÈPÔQÁÇñ…¶¼ÕîU¡ iÐâÐuÔ‘|¥ÚáPò£:\(û3L…šÏ`ÚÚ¹#ý21ü}u[ƒÛõù^?Í kýšžEy/‡ë<Ïy­HÀ¸ËñHõ#s :Ÿþ qéc‡Æª¬¢-®$/”mL¶:¯ÛxÓöw;æïQ8ÜÔÊÄZ;ØPüé„ÕØÚ¯2¡Œ÷̾ `¡'t>Æè d~øˆó¤Ö¯Âjùà~ dF5ð6AÔ«Õ¿ö £"BdiæØDf‡©؉-OŠöÕ¥Óá1¬U'P¸µOHÅG¯ËÑŒ %KÅ‚¨Ù¹¹Ô„f¸Ï3<7Y›ûx¢´ý"´J5Jiý.€üï,ôÀJa}DìÛþ·¤ &]·(îE±{¶Kêý , öŽ1i£“jÄ–’>™ë ,ϯ$­¸Y ÛÚÈ8ýO‡4Þ¹³wTΤVg“$Sá3EH÷Mòõ½yœ]|jOêŸÃ£BØJ ‡u ¿JQå™á¹}m¶ûóƉv˜5ËY ëÈk4ss]˜UÖ¿ÝÞÚЇÍáhÂî¥þGc‘Hĵ^ \Î|þµ€Ÿð~ï‘jðˆ)¢©+¥Ü«?ÙÁ˜úôRe—ûS7Þsa æ0e@‰`ÈKpŠ;< Ÿë>Ru‘d3âõ™ù`3.ã3­¶8åˆHjº?ªÄN»ŒÿÏxIG n¤ÔéÿÁ† S½BÌ&¢‡ókĸÊ=nŠ:ÁßR—w¯ ÿ§Íf`©Úc€_ö´Ð¼Ó5ÍדVPs VŒÜª„çÏ? ÷C‘¤6Ϻ÷ øOÄ?#îIÓØ8¬šgÚÈu›O ¶WdCD¿mÿª š#Åd¶™XL4 ‰°J­Vø>sÇ t”ö4ØäÛ¸z\äY¢ÀÕǯÍDàvV¹žÝÀP¥6wWÊû\·¼7Š#âx°„õŠù³4Яá(•ÁŽšC÷íµï6q9ÚŽ8aÛ{ÇéÎ'tøŽS­¿Ç´ï2A‘–ò>˜«w,mÿÝÃíIäJSM4âë/¢ ) Hœ Ñ8ø3,ÛéOî|ïb9H4aùnÕÛ–‘é»àõ™:â)öK5NõùÇËPÖßGœµP¾C^‘Ö÷é¸ ß³~Ç$çâ‚c‘ṠíÉTDév}Ñ­Œs¸4…ùÈe3û¥¡´‰˜à[ŸáK oDÇS”ò”~¢WEUgÀCø-¾¬Q°åŽmëüMç8KýÇ;Cåßñ Ë›Û^g}è´Jdˆ„îéN‰ÉPð—§<0ÖÄÙoG q“mAõ®AÒ1›éYü°ª†Qê&7Ô7ì­Îžü8Åë©L€J›õ)«5ÕÚ¡-@ŽùÐñü¼yÉdfÏôý^Søú ›ÚÐæWƒD™åq±Ï£N6¨ímnmpÃ`õj‚r †»¢¢'–»å Óýª› ˆàF;‰dˆ¦×Dw³ŒD[žœšA~6•AªkSÇãêÖíee­8•u2е–çô‡Ì™N7•ŒÝ¨Æ°vK ·7É`9êbúy<—¸ AƘüÊñÖ>7V' P-$EG;Øb§xDœYŸ³~S âý‹ÇižùÚäu‹C‘Ú+×9 Nm•Nòü;x–)žŒKélë$ã¸ÿe,ô÷ËÈ]ÆKs„ ú ‘Êå©]+$ÌÍ‚ÜZìå÷Ý©ØL[Û/ 9ïmÊ?Ñ'þ‘¬>,ËŸ°£×`(V%¬U¹ÔU¢wÅG˜+[…´ IÅpøfE«µ¹àn’×±æ ¨¶\æÇ32WÉ~µIÿãB6˜ÿ. %s_õî+Ä©YÙCã’¨nNçPCìsx ãuV%× tä·³uC”¸Õ®ª6z-ngBGbÀ6PÞ“v¬À,e¦ƒÚL€Åp;¢ãÃPšçÕ¾»ªÓ•¸OK ^q»7l÷¶’`ŸLÿ$Ê[Êë>tiVñæî0=Pƒm¥fGŒMSÊL3mQ˜È÷kYž¥>Ñ›X6ë"mòHCÚî 5¨Rð÷åç{ÏsTf±Ù{„Œ“Ä_f^¬KXÕ\„*–©x9ª¥ÌVõfã~ßD\áXawÍOÚÉ÷?ËOS-þÊãÊ,0ÒñMº7^ûc^Ö±m÷[´x»¦dÈN°„?Ç@vÖ «™L_¾ÃT¨uèøyùVù“ñ‘•ðÔ]KühÌ4^¨ïä%<ŒñkùïLR .fâèžú¹H#Û$ª|.Œ²ñ•\ĤÐÕŸýi¶círÙÞhíñm ’ùAÞQöQ6ôQMg‘&#+¥EÊÚ‘ú¾éZUúx}¶¡YˆØŸ‡1à=VTì^=ÚÓ=o‰­šíÈš5Bl>dÕñtô“mÇàkxþžŒrïöÆè¢21œ^œ‡êùof?í 8Ø—£‰N&+-°¸«ßŽ%|§À£øDƒ2øõQ& -5ÜjB)¼€,“£Ù§BÊüQ3T‰èç‡ÉáÚõõ1-OœOÊï,jè¿[Ó#ŽÝÚ_OŠÏxå©:€û=5Þ Á=8Z-:‘ñV#9~–yƒ¼ª$ æç]´%¸¨ºKÌ”°œE½¾>Ø?ZUêÙ›HìbÞULÑz§¶·N;³ ãXM ðöø¿I¶QdúèÃò$Û×yé‡I²|k¨uéRO˜Cw8™xK„ç ¥p{ÿrQyž/+Ëæ ÔŠ DkãûÛx–vŸyÍÃìf§£Ö“¼ùß®âZø¼êô>±Ùʾ¯‹æ {Öæ?×8'xÜ&•ìÄÒ}›(É‘¸îGëÐLNiו¤ˆ ç Ù¢Ò%$é (j{ì3@¹ ïIÈÞ»6@8ìÀú¸.šÔIPÀµD@QŸ†äÂÕÓ“Ÿ=(1§‡ÿ$ß <î›í®3!úý©˜–Ë =XgóPæ®’„ÏR~`€ˆ!®mßô} y/Öç UËj¨¼¯dM…Þ§ tÍp{#Ý¢èÒ0‡ÁèÛïá*ŸSø;(>N&ËĈD‰˜¼1>òGŸë¥ÒoŒÈ€d=à——+hšFßbŸHú>©»Tw{0Ô×âÞUܱoÀGʽ°l#Êq0+»ê޽ŸYVA‡W1.R‹Ó¶‡|V“ÓÉ‚ÏÝ™‹Ã™ÑãògŠû%ªï;w˜ÍçîÐ9®úy竤Ö×!‚öWª¸.žtZž¤É™8=0ø° j€j„`ƒÄ™î½Íx!±g¦83!~Q¦'×èÞŽûÌÞüû0½¶zYͬo£yäSŸs=´ÙîÍ!{IœñQú<,YSdÃÓ£õz[Û<ûCr‹”ÍŸ¡Ý•ó=`Ù:ÿÄ„ ¼Þ:Le9ļôÌE« ÇóÜÄÁF?ì$ÀI}‘ÜúOÆ`;Më(ÄÛ1NLñÒ°šíHë;™mâÀH;íŠÑ#=ðAѹ|V膦†ÐåÏl¸|f©:£}¨3s­™Œ0õ?±™’œÏ™i'Ú‡9û×]6õù'áŸêO Wóÿ…*¯Úa?Ô«•™äxމ%·2ÏŒŸ¼ü‰{¾™EÖ¸µ¡˜éñýÒå< : ’;ó{¯j«á +}vUG¯\äšóù—*l'P/ìUßÏ7­ÆQ~HÚ›v äMg¿bg8”R ^°nð8Ì0ú1#ûÓ¿y8×(0×cÿüÁá{ »XDøÅ!·&%üxŒ–Õá@D~§ƒÀ–Iwú îÊ€+l¨óayXϵ„Ï/¤/¥Íq.CjlHUú ée.ö¥àçÿ1¹´»¤ûÃPwÝÆŸ¸áÁ‚•~Üj¹Â n¡yK—n4 |]{­‰^+éÿ ½ßL÷<ýÜ-~ú4ÎË£ljÂ6g2§ƒÓٟ͈ô‘™í / ož*éÜ ôÌ áßxA¯|Nª,“©¼ä¸bqÒý5s#`ÿ,«¨ëM~œœJ×^9 -°fóˆ¬8Ú"ÿXmHýHO¤þŒã‘L÷qø Ñðúץޛ rç­£Õd+ByÕs+ë Ú…a) ”[ ]úZ „~‚#§‘ÐAd!ë`%«ñ ?F#¶Líb'}wer²LŒ%ˆ£²5³€ð³{PŒr<°—ü'}ΠÒkÕŠ )ÿ4ˆ€ÃÒDƒoŒÖ\E; b6žV²¯ÆûÄvø=k ìù! AñŸ&íji¬|Æ¥ŠéÉk_lávm¨ 2Ee©&žOØðµ ëz°˜Hî©;äÄX•5týíœnCŒÄ:ùn–‡%Ž£MD/…ñÝ–»Œt8NeÞÙz˜ÞAQq|ÈŠ¿×¶ð\!œ›˜–­'9ÓN›V4‰±Iîz{‚3‡›zÉŽ‰| 4qà+/äjC^úìÓÿ eâ? ß‹¹yë6ÁaÚu8Lì@¬ˆ eÅ P¶ƒŒö™‰Fï®Õ…å}ëjÔØ„]L•„þ“>ÕRæËEÆôÆD¡ ñLq?ŠP.®Ú…ðtóøL&¥_ÞøTÓú; ·þCFêâ÷œ#2òÝ‚n7£×µØûOò¨²‹ëï¯Y­5Jv üDF ä’ž˜áÐ-+FÑf¨Èk;í¬5W|F†èÂîç‡õJ¥ÀúL|Õr†`ð>¢‹º‘•R{o×€tFÊð"ñ¯<†ØU¤à]3²·~s'a‚ƒÉr7 G®{jÞŒ¯Ÿ1Ð[ÜÚÔ‚çGÇûbçÁßü¡[n]P•ÎvšN'àvzKÝ *›â㣈³ {%¸)­E³ÎFÿVÇÐ|±ý#óm,sM’wX³ý<'9—›“þgè{<}(æ×}Öƒâø*‚Åñ]‡/YED˜ü:#…½,}ÔÖÚ@‹S±"詊Íßï¨Àmã ¸03¾­y€ß™lKî;˜@gFpO§>×úA¦8$ ý§â(=ÁîZØv=º ¥´YIOÔÚš¦¾(÷³¿uО¥Ž4ýÄ5•kyj3!ëu©ÈGu2õ…Þ£êžØ­?Y »y³´Ñ¶²o—4æóÝBXr¿¸¶ Šq⺇%êr5P†ÿ(YßX#˜­Ï Õ7Þh8ÀG *Ôæè%û‰JÒ1Ï«þw7£ o?äÙp{–"„33H¨ î—&¡EÊÍšƒWÎ5$"Ó€”&P€ùy»Òël”ÆjË«©SH®»[gòa>>®8tQ%ZÈ™±°ÁlxÓ® 0WDnypOêÄBV[(t%o¹ÛÖœ™!Xªé¢1RÌÛ9˹§UÅh[¥:=>–ÛÝôWª‚Ö,ÌiÇINb@5 Um8•rj¯58„íPêÚˆB¼9Í×Ô¬6'ô«¬l[œUjlä(É¢¢Fé]´îSçbDa«¸%¨ùïAeTÍ+x¦åíÜgͰd­ŸrT>ãdÄ–á´"BsÓ‘BBG´†3ËûJÈ«þ®°cô·štÕ®ÓI$®.Aóf=:œû€O“š`\áÑ…Ñj LÐVÏm·R -ðM…GôO>»|Úýr[K¾ÑäàFýƒì ÝHN;?E/åÍ#˖ѱ.™…®KP%t£Ý({•›óÆ ãÊË…Þk0¸87*¬u½™*ÊÞÛ¨éÈÒ>f*t”-V<-ãÉv½ä¤\ÏÜ—ç>JþÝ#Šm1De®Åï51nsõºO/ðLµox h0'l[Y$‘ò³£ Úb ÊÞnìtbŒ§³ì¦FeëKñÀ{ç cÚ1)\J+·äô¬OwHtV/êñ,œ&vŽmúÖhëõŠýrœÅûÅ,E èk$F2ØÔÿ‚ôJ0Àu¯lãøòÉdëñrètŠ$ÓL–wûRÒjî2žâµ¥ÑQ¬XxíTw»ÍÂ^¶ÊM€kUh´Gz󜱽Zq¡åâœJç8(”‘y{í9øš3#\ )x§ú…Ÿç› š.÷%Œt'jjýEÜ‚²]ÆÿÀqOó¤D“*­ùÚÿ›6*¢øLۙПõðÄæ‘Ü òIÆNªãT~‘ù3L™ü­âžJ‡ôy‹Ö¨~%½I.Ó“ëS¤1dnSêþèº5]–Œ¥³´¨l¤‘ 7i©ù­oŒ9„±íË©¬;5Aä¾¢A¦f~Ÿ«Éèõ-n„¥ |Ë–>Œºé\ÀpÒ‰{:µvÅüJ&ÜÓT³Î#hƽö¤ðyz–?€TOwX®žBåèåR5Ñbúê:tþòDÍ …Yùbyò™ÛÜC¬fèÝ€»IÓAßøä³ú¿µ ›(öçŽÉ¾APñ6ëújÓ»‚eÜNú„¿?>•D}. ½¹ÊqmÏ/Ú¾™ ¯Ñbo~“[%ì‚ÍNÄÁg¥¬ˆ#ú´í|Ÿ #Ç‹k:°²Ÿ¢HkM3âŒ$ÀÍѹ¦b å±q ·RVÕ^‹Fy­;ŒA!-e¡mJÍB(¥,£^olqyªZR¬µš4ÃY‡ÿ{•†˜ô”w#sw´ÇÅ>ÔLfaWÐ6î\•ÌeíE9jQ‘‚EÈN.B(ÝUT¾ÖH™¶:åãô×ëæ¤ß ·íp{ƒµÉ(âU¤ä”]s¥gÃ7UÙÌöÐ!Ùàr€šIÑ‹¹AtÓúBu«û*r¾ýÙÇs× ƒŒB)ï½Ì/Ÿâƒ>v<ŒF#—è”°Þš)whŠÝ“Nð¡¾ÒPšÔÉ“#î…ù=îw8ð1ƒN= n[Ê9²nzÓøû\å²kŸûo2*èèmç õ 2‰G!R¸Ç‘¤2Fo=hQ°û¢v̯ìôYݦhKªmÁš“å“­îØø/ó~Móbl«TH•G°:­JS’ò½¼<àú¢×Žîs. ”Üî}„°œ¼„­‘m¥´t‰4,ç ÉÀ… ÕqG%ÂÇ©äÉ­«˜¯íßXµz7¬p‹žˆ®X7pK…åy×Îç'Ý/¾¥¡·qwÚ°¬ƒÔ²îUµty0A¦JöC´ŸÜ¡kZgò£§}¤2DÞY²µÔ'®“bHêC%*'«Ö“°÷ZëöÞ½Y Óòf£Á5`9&½9ÌvOŒœšß:j}ßœ'jü!Zn_%à³È….¹’°ø°kO¯g,üý;|Û¡jä7´ð>•"(êëxè,ƒŽ”é%Ïÿ³R#-Í^¤’m‹ª>ïLãÈm÷FXMLM¾.uð¾_¢Ç_V›08¦Ý~.\ÀVÓâ)ËøÒ»òñ_G:Zóòâº/LyÞ\KýWs¬äž/öOšåH˜>ô‰)âºØW%z qÔØnïìš„­kL3cx2¹‘û³×jêí; C9{g%47lטk©ˆºäÅ%Áhæ_ n<¬"rZÜIÕ\|ÍsŒ5dL%3Ø?’”f†$öû1ô„¸]ãxo=&ǵc$i„ø2»BÀÓîøùP­T [£õÂÂFÛ¸ AZVýÆà®{×fªÑ:èaRùaŒHD/vBºvžH¯d¤}‚wÏqТk×î#¶ÆóYKîßP~óÂïŠk»¶u}Ç~F†Ë³“å¢y€Š&ödÖü^€VfEÖ`*ÁÛ¹ÃàݦK@‚ÚhGÁA#©õuwÃŒX£Bê8èÄaz:1’ñ+ÄôpR\r‰WKÇ/î-cï^¡Q2'Ç7ë{…U¢'tø4hx†Õd µaK?2¨™‡Ç¡zìÏÀŠ ã{ ùN·¨¨®xŸº²ósëT€6˜]7`ºÞ}2_FÌh¶»+ùxH8GAQÍØY3Ð}ß'IJàx"ÓŠ¼%¢ [QÓŠ‘ûð4ÉÔñÌçkCãÍš‚ã³2­m´¯ä1°ì¸1Ðñ,€pÊ;!•Aõ«H2Ñ^KàUîc”åT­g%ñÒ ÿ¡Ÿˆ=û,î™ã‡bqYZ>X):ôÔ<÷öK ÀûÈp3Hðnq¡÷”KûŠ9'óÔî^æ­–ØÉLéž–¾rT;*æ•‘õn”BÎ5r¥×ˆ+ã¸#5.M @æâý¡xØüûdއ–“¡T€RXËNUßšÚ°ïñç74È”i +ž–]ÿ4|-( $dƒÛ“<ÝÇNyå©uj²ŠµÂ' aLß‘¦òð©¢ÃÒ$úЬ´j¦—P`ÒEÒSFÿ\t%<Àt³æ×O>” ƒÇå xX¶MºG –ôlŽ|± ~3X¤LèfÁ}*±k²¨:óÃ{Fôºª ¢òN§±ŠàÎEÏûØE)Š*!tLé(Ò´ö”AøðÜ~é° xã‘õè2[ÌABQQ!ºã÷ôݼäHy5äß&6÷¹Xú“>í.%>zɼ"¬z0Eä•–RÔŠ áp˜L–(HqÓ"êïÄå®è”ž>Ühi;~3ÛKj_ƒã@„„=*ÊÂÞR›…Ül¥D/Õ6<à:¢ƒÙœ¡—ûíM¼Ä6B^r+d„Òê'’ŒP¼„~„W˜õüÓï$a€Ó‘~Ü}ªÆåÑ*ʼŠïvW¦ó°ö[õw½‡0ç£{'>BLë{⪵#¿žtìzLšÒf6à~@™›/ÏиAD¦q—#öq4ÒƒºÕe'O¬o°iìh?sµ>TgÞÔ£Ù”vÃÙĸdû•ç˜è²¬œ¦”œäKFÊÅêüËL¶—tY{&ùr8‚éWÇ2íùÛ€ñ`| JÀo–ÇÛ5:ï`”isefÅøáʺË¿,eñ½@b@È¥À>ÎWä$aS2ha2Ÿ³Ö‰îyËæÞ]‡Öx&¿² ¾ÚïDWjÓHŽxËÀ¾¥Âð„~܃/$$¥\¥×=È8ehÍ’—Vä„Ó–ºùX‰¯äá¢çêN´ Háe¢Ð…ST4{ø×.ç=¥/|$ ÒåÅ4—Næß¢;ª+Zô§ÌÕMy¯âë-°àY—òôÓCbà^ Î(ÛvRqhÎñ\TcºõT>|mð µm½©‰/V”Ú|mz”ç¼gr¨6ƒ'Î;£r2~0=qS…„Œé#³é AOîŽè Ð+mR…ÒT}ˆñÿ6ìrë oÌࢇòÑ«=(àˆ&þÔÔ.¯Àh9œþ‡È QfÉÎE‚ŠÂ£Ñ¾LFO«"ahM. PDZöIµÙøB·ÛAÈ>z£Íf045Øž+ĨŒ xáØ2¬öÉîL÷ˆcÓVP»œäVhlkã¨Ö£»|•Z=©üÑþÕ—&éKHogóìxq2”v¦SQsgt?ë€è?âJ}FèXÕ©íܳÈÄóï`c7-¼÷?Â|¼"}I$èÐmÀC?å® ñ ä4°b‚¼º-ú'F÷c‡Mdé™à(ÕC×3ߎÍ2n” ÜÓ¾~7g%Z‹:Qê…§yE,kÊ7dE8+ÅæX•¡ssW‘š’&²Ô¡Ë쫌+‰®~½ÉOßçËØqnÃí¨Œ’ø<^Ø:yÏßZù Om¥h™ë‹ŒÞC`g­“h7±/ä#°Ù÷ãæŠsRO ¿îàXsÿž…¡HÜ8I]£Võ YÓ¾R„f}(ñO{ЊèD1$ Aùvw[ÑðR}d—Íd-‰Ó‚¡/D2†mEœãfóÌ`1•†„n„>½× 35èêëÝÛê; ~lôý.GïN0k©ºk3¯ô§àš²i@Ó€\¢*,玜›<ÒÒRphZ¨ U*ÒÚ£—NYAi±âTö»0æP Úö̃aß*±@6RPçíÝÐäx-7ÐŒKùéökÖÛQÉÄ,!† ÏÌ,`FƼ•àšRO¥™)^‘­ž!´O ºÞøÖ}¼Ø¦ÿa9³Éñ:ôiI$¬«±ªmÎ]γO±§Bás¼sÑëæ–­Åô+ bõÔÅ·€ïH&õ8  U(•d '  c@È^˜O×#Ƶú°uw¢ôd3'ÄuûÄX %iÀ‚ûƒú"–ؘ3,ˆ¯ÒÛ÷¨É-õðm"Ààš'8ñS$![Jb‘BÃ|¯j2ŽZsì™ÒûKH5¬j/K=ú4ð0 d/ø¸GPLM=žšþížµyÛ{ídP´„ÌCimôaä‹F­rA XR{9ƒpÿ­rõ¿=úÇFƒ÷ËnUê°³fm7¢…ã KX‹u€‹Xl4‹ [>ÙkžU£îM†¿Â˜Þrmf8”ˆ†b^Ž:F&»´»Üè¬^a—¶ú¼nèÃî2‹è&ÛòôŠuª“ Ãyp¿dJ´‡qNCœ_¦Ö8Ic¼Z?Cþ(ÕÄ‚ÏÑè sS‡û½”j’ ‘æ¡ ¯[tR§ïs¯½bÕÞäd¬º|ädèÌrpn·{Á?Í´ŸRNÓw™uúÕÃ(OÀ‰¾ NiÌŸñ]ßèå†~‰À_ÂXæB ‚„"²Éñ>#eÇ`?|eëxñm9ÓÒjèä:ªp ,%[ãKüf4¸'ÿãºíшƒ|v²³7‰K72O»7e±ëݲ£¸Ï°þrmæB—ŠÂÓK¬W è/†Îìy‹Á`4»ö¦Ö ;¦¾@TÖ¤3×yڥÇÔÝSpÕ™«nBÇ ¸ïŒ[uÞäj€ãá—(ƒ¼&—\¼älzx(Í’0çjѶ›jQh9Íš™$¿‡¯mRLÁ'ì%ypB‡EB}žS›S0˜Š(8Ž¿y»Ì99›Ã Êe–éijÄ›5¿zӀˢî Yþ 8ë…2%óX"“‘YK[ŒØyÀ’Z¶6=ÜŽ¨›‚é»#Þ‚&~“&‹'iRµ¬å™Ý#ƒ%pàþƒ†½¥íœ/kéV4S½ö¨Ô0È0ÖO×X`Tç@;qôÓ œF׸a@Bm´­ÉˆŒÑ+Ï…Ë„ÜÍ™âäAvüå}&ª$,µÝÝ|€öWS±Àæ¥`ËBK€¾¨ÆÀ´Ê|ÝÏmB&`Æõ5÷¹âwbv¬Yäå[ùÇÚ­üûR+tÌèl¨À¢EP}FÙ¢.»0´öŸ _o¦'gܽ·®´†ï E‚ãåê:ßç}´ôƒúbí1Õû(xÜ8aMï~ÇÊ €TÚx„¨!5 Ãp2 l©¡†)º+ÕS‚6†%oÛÞqÆØ€KN¶çyô}ÜÀ˜M˜ýدÕÄ%Søõ‘61¥°îoÁpL…"ìi¡³£î¥£©û€&6$—”úå^Oú÷ËG¦y¯ch¡ÄŠcJ7¦î$tÛ±«õ®ÅñVõÛ¼Îx×ß‹ŒäùoHyOÄ×£9üþNœ=ú©ôƶGƧ`ùµìx ¤ïNSBx’¤®G‰@\¯ïÜö˜:±i“ %©´1ëY‡z–|S¹ò+x6°¢ªs‘†ÓÀÅÍ«ÇPIäs¼ÅÚb…—Ä`õq!H,ˆô–#¥‚sòX-}©òQ¸Ëe„{ ˆ\jû›Ón)ý"›'Ò‡\¼r^ÀWÀ й ž%ª×0˵Ë(”;!¾Ês¨2Ò‰Å\ÓÜžè˜Ñ°üÊSØ$clZŒ ªˆ™A¥òÀæX¸ÍD®*Øíù nâ1QY-èQHü(jÉÏáXË7¼YÆðÍÈ$þ Ž—ó,üØ#ÆÛèI“ÄEÀ+ÊÄý,#°ÂPÚï ß/ÿ²õÉj;šw{öç: ² :¡l"¥ÓWÂc0_uÏA6±Ï޵‹gúEÞiÈ× b£Ä¿« €­é^wB‹²0T“ª&¦××mfw·;}¬ÂQÁX*ò¥Ó<êlTWú· !ŒÚb+¨Y>7¯ j_Ð÷„-|ac»Î.¬ù‘+¿?ooÙílî]–fÄÚ–×ßJ¬båƒïr¨WÞóÔ ÕØv?˜c,–áæog·3—`”KÖ«Q¿4Ç$›‡«7ÙàA¤ŽÜ¥2Ò*c„×òíC2ò›Eþ)š»”4ú—X~û"üÄQˆýó‡ç†þï7žN§’§ä&º¢+Wµu’‡!‘ú<Sä_gzŸœê¢h™Üxâ¨Ï9ʞꬻnmIFZ90]½”;Ãh%Æ'|Bxœœðu©ºòG™Jÿ±ó#Ú·ˆT¡ž°nù[¤7³°˜!ù õ¸öÓ„,˜kTï©]šÿ)ô ŠTÛ¾áOø¬RÍH?ˆaÅ'Šê¼ðË$¿ãsVûHÑe çô˵sòwÞÕKÙ³¥Â¾loÕH‹!&îIàr•ÐhâÕ©C¼X,!”ï‡Ì§óá뽘eæP®K%Z9,j\cyð³B…ÿ<áf”ØÆÿf6Î$ŠCQ÷—Íó^ûÆhëJgÑiÝ-ôÇ’ÿÆc9-_$^ü yeĪG8“.à+1?2d& Íþr„ºxlÇ{/Ò€ð+ˆ%n©¦„Mê·¨`Ò:ÙD\^„Y&†|çEÝ D‰  àLGžþEÿÅ’gä^Op>þ8ÝÍú‹¨ªÞ0»`ZÅ6baºcóƒÙ¸ É¹HÛEÆ„gÐgèÐv-ÛlÀÂÍñíj剛}6h$ß}ñÞ÷áÕVªífgx:b â­O +R=¼ Sðñ(¢.öß\¼>eZ_3Ye¹Í1â÷=“t²îxh$kLì¯ñÝ`I^bÙ]‚¬ë ÐמóÚ½;ß,@¨åˆMxq?¯½uö:ïLa@N1[=PƽÆ>Ú#4jÜâï®Ù2Q‡FwøŒº ¥öЂ"Œ6­ô‹ÞI£„»H]¦1œ¿–‹ÔÔÙOšøÿžãÄQ?¿—/„üuÍ¥òѯòÕÒÓwòÃí`h ±î¯ÌE°L´Z¥ @€3¤¨¿ÙÅû´ùdrÅðfˆäf*Ìò"cP´dÕ£î«E{QM,5õˆfÄ.ªP{í™Ø´7}êïyÂ$ íÃ.A#¼w*ÐZ|b<ÒÔÍ]{Åêð»fdÜByã[×3Â5RbÏ$Ù:üE|Õ]ë†B=g Dø7-`Ý ž5u|ïðV¶üÍ´ÞL=¾év¬Yäå[ùÇÚ­üûR+tÍ[ BùÝS=ø)b¸~´>b¸‰·b•×b}Õƒëâ/1Ÿ·1npž§#_ì(Ë…Ñ•˜Š~*‘ò'uñ´¨žßá|¹Ûrg›Èï·Å}u+'.·ùD¶`í¦pÞN^w(xÞ~JŸÿºbçìsS§ý¾®|1ŸˆïT<]ðh6Œ×n  ï¢2L?õ±G¸$ü÷ãËY@Ün ‘šÝÃXDoM•ê)ÿèkÒ\¶Îgž’.T<,,ñTo»…ä—Ø?€ˆjþwY¢lBˈ?\ÐN¯&(”q= ¿|¤’Z'ÃàŸ¯[³¡ ¤×\Kçh¹M磉4+ Û¡2Ž˜VTȹç:l7Íoù8j j³U¤Nf˜‡{+³ÉNÞþ3 ‰]'lR*|xAHx¯þ¬SulyËcñ=Gø<±&ˆü›ÂzzýJÕäJiõ`vr [+ô’†iw›l%¬—~îêæhDÔjh¿Åw¤3t0!9¢Ø-嫿üj.®£O™N)ÿp§I½‰“ó[5¨³^ ¯¡±P^ÛUt(Óë1×½nwŸ–aáa|Mâ=‡BïïölÝÒ˜3±U]-¤1¾½’\*4ºk9kò’5$— nå¹VÒÛÕß=¦ý#•o)쟔}°3-ÍíX-ò»OD¿MD|}Û'>üÅTÖa¶Ó¿¨ MdÌM|¢îäÆÅœ%–4 Ãþì©®¡KÉRäÕ¢¼ý9Ç•¬¿û×óÿ­¦¨,!‚}L ÃrábӚşˆß‚ qïO5!%AñœÅ/Uİ]ÂX?³:ö>9çö'¢ÙM¿-ÚfÜ€Æ\!Kç?”4pRÌ 0ã„Å+ ౯øœÏ ×àÈeåé&û5sèS&$gˆ&Tr*Òpj5Ѭ¾±8(BZ–¥l¥ØºìÇÆ¨©Ë@¨Q¹q¼ûú ÿË_ò*A´ {—ج”湄ÜÜð ch¡Ì°_½™WŸív¡mYSÐ\êú„üÒ¬ÁaΧCc¯M—hÉþµýt:\‘¯jí>(K[ŸnTÒ}«ZMÝý.¥´+QåŸ*ûÒkt™AjK¶ÍB~Lêì1X. _6ÓâÔJq/î¡vš­5³ùÆŒÂ]‰Î$ŠG(ðáxO”µ°i³jX¢ ‚SyxêŠ[ª@ð¥àw’9-³­vî!ð”KaÚ)U0Õ„þ'DÛúª*mI:˜siå©¡Ô­ô;¡\[ñ<ÉL£’¹èMsJ3=›Á°—‰½ûßÏR[™,¥ÿßÓúc™²XüK¦.?´ÓL8eW¹­R{¾o—ù÷©yÍš(þÍÊG&ûÜ€M%xNø‡PC­€L¯Çâ¼±Öé5¢és̨쓤¼Ï–öÑMUf¸òÑ‹®x›þ¾mžÓÓcðýÀ y™ò6¶1©C½‰Ø`%RsNµKÔ.¢Ës1á^^9iÂÚÌ1@7CÄlPÊ‹Öy˜ûÔ%HNÚ8lK`b›•V6vÐ$0­o¡}‚V@ž©ÀW›45ò/{}¶£ûþ±+[“ç ¤£T¤Ê†ÿ²ì'S–éá#̲̎hÒ¸÷&ñ Ûî–C¨ÒݵÉuTðæÂ÷¹ŒëËvl¯f©êĸ4OÙ³1¹¡@ê'KΊ᛭fOUK™ ¨ñ»§O®²Æ1õ÷Ÿ h†›éì^áë6çÔ}I[ˆW^>ú @R<`³:¬5Õ©6\pBlxA|bsWH3KM Æ›Ð#´»Í"wT֯ĕ2îTr½R5´’„÷‰¤Ä¥~kSX»ßT¾·;SAíz»õZV§6㵎K\íeœ?ôïNåÔ#ˆVM0¾x '¶/_ru·´-X¯z&Æ&õHIwÀŒ?½O±Ï8iî€Ü¦¾”?÷!ÏHÓÍ~4(kûÐÞ@¸mé:Ö¦¦ËI±ì`n±Œ„Ëøô¬ûimFg0ªÀ]éýIxöš*“#<[æaÀ[çŸ'JïÐÃwj ™§+ß É ?Ç«I £ææ²fU¹oµ‹æaŠï¯÷Ç¥:©«Xœ(kê?bN<*hm§:2 cš¬eQ»EéÜ|ß—àæ7畹ŸÔ×PÑö8ÄS°¹ÃÇ6/"Cõ_!ÂòJŸ#ýÔÒU0U‡BH*´ºñÕÐõO2ƒ¤[ûÌæÃÌ%7xºX3Aj0MÐ×ÓçVøæº›“–ôêŒ2™¯?Y3œ{Ñû>JuÞxƒ©-Ê¢õù⣛÷é5DSB{ƒâÈ¿$ñ¢¹ô¬Æp’÷ &K¢Ð’Ο·ïR¢ÃÓûªQ< à0f÷¯Ì—ü3 Í`~èûúHÀ–ÈNon|—!ªÇ±äOD”iXqR©/Œ??€õ!e>âñ6!»l¦ûòMëxoö¿Ó[$Î/ý9Q›l¸Òn;pJ•ü(3§‹ÿ[VŸ/¶Ë‡ltpÑÈ|€¡»ðÉ.Ô‘¶›ÐŽãŒ—BæƒJ4CgÎ&ïˆ29¢Llß/>?ÉÒ ¦ÇîKÕ–ùÞI¥ÀÇ+µ2øª ÀMUðUˆ%ù›n½´—Sý¼áÔÂäZÄÏwxW&äs“?¡ Å |‘ì9/j¶F™ é†XŠ¿Û˜·O­ÜI×ïf9IYQg«?êõÕ½ºßŸK_µ#I6I.y;åug.¸ì1Í|jNiÝ—½½N­ cásìË8¦ss…J_øCþ¼ª‰c;/‘Å{ºbc|¿¿ñóŽÍpn½¡Ã +Ž¡Æ ¡„$1gIÃ*œgàš\–›þ¼÷ÌØr a!Hî¼Ø»—„\(wHø…†ÔX°=@;gR×Õßd¶€æ¼×Œ·ˆIÓÃ(\š!ªä/Uø¤d m:œ¥52è9p½S‘·Ì»ðˆã„\µ®Y5çÚ@µ–‚ü–<ö4“róÁý¬«£_)]7üž[ß 6ã§ÏT®º4êלZCÖ†= à„gem6Fx)ǺÇ;Îcëèe½j«¿‘aßs•à–¥kæº\æ Îr' â0ßo8KÕ=Kidùý Ž wžJ›©K’/lT¸06V9ë@é ä,~Ãól¼|RD¬8l§MžS[cqÔtPÇFî 9“S &O,»$‰Þ\.z–}§®ÜYqô§ÿ{ìl–áÌÂEIû¸&¢¦¹æü×씳ßãW/Go¹ádÊAâ¦ÈRg'#›«E„SIqÜëÃØ’ÏÖ+ýl$­k¢âq“EæÊz£Å•ï,0EÌèõÑ(D][ž¯˜0øâÆæ(“iüL9ÒîeAtEæPñÙûÊï®èk?Ç™2°„Rä ‹öh‚’a¿ÝË÷ÄÚݤ§È·ã›…æ²ñ¦û´w¼"fY¶Àú½üT·‹E³Ûå–öî Îç½^ÆŒù™Èîy )DK¨i¦úLѬîU;ø.&ÿÔ[(uk2Z¾òO=uÛ¾Á‚ûâ+É~u.…ûv B†×c¨?Ð&®Ëy \–ß”RßÞÃcBìW}ÃÞèÔÿVJ7Æ9aÕt  jî6Ò|(³#},¹UÙÃû[û›§†FÍœýŠVÙõê±'½A#ßd™ÓJVSÃZ<…üN¬=ÌÃ5+OîÜÌV Zûr„àÞ¦—aÚ‹y½˜æ þ¥>±?AÌâi¬…%,Pa-fÕ{Öî0£Ä\ÒìOŸsì[‚M¦ô ŽƒQkÊO>#bolÅŽ&ù3ìÌŒ¥4æÆ †Â<3PjAg9DÐÏ}hóî‰öî@[¼V³—ÀøFÎÅ%6áeÇ ÍórºÑ$²ÒgÀ8vu÷”¨w2ÂWEPÔYâ‚^`-†Mæ“+¹°q–Š¡œ¬¹MÙÇ/n¯çôÑ/©„NŽÐȨW2_ êÔî×eë±OÜö¹Ã(θKP[9õ6‰ñ3àŠÚw†ce‹Ñ_§‰%H„ºª6-âØ,{ 5&ñI&Ä»®Ö&RiK¹ÿïº0ƒX:ªŠórŽðœoÅ€{ë´BW+²0þ‰±—ï0é^dÓ¤èÞ•êNåƒvg+­yæuÖ¡ò/;R,?¾ru'Ÿó›Ò5À¦÷–x>¨K“!ûSª}’‹Šó©’&èægÛ㈓ ˆþ& TD$ˆç÷§9î*ƒÓgòíÈ—6¨Â8MMCé%ë× Tp†TÖÞ“õÀÓ•'–„¼"8“¥M•ó\™Éys‹ìP!¢×ćAôx8™=¹Âׇ/º¤¤:‹½”å;Hm¾¤‰E­.~—FãçÒ,® ѵ Ÿs·ˆÐ9Â.36߉ù¸î8I ZãÕ“§§Q^o“‹É£dˆJ‚N¥8é„%a*Ŭ~P=Ts2/E~4lJ©è‘”¥ÌŒô¢..,j[d…N u<†ïL¦œŒ£Q—â p×`ÿÌýÀ„¯Pœ¦I ¯ÒfCwêú’¥jZäŒðÓ)0gÒa Ã;êIÂNdA¶7LÎû L‘,†—÷.C¼éñè À_#±Hä? SiFb4yï¸-nb÷ÛNVÏW"B£¦^)erÄ |V@“Gœy´)šma=­Ý¦ÆËˆÜ/SS ñJˆÊèòŒÁB†=©©c2 Í2‹J§ŠRsQ_‡—"iÛ[¶÷¬Áñͨûæ.¬¨gÝ¡©‡ðîºß²÷ùûªâIjÈóÅrnçœ3€Ó}*mú¹X§åiJj¨3CÔã^q=uFdž1¦oŽû§)‘þwW,%Žäm£-)­FSÏýÐ~?{ìÔðë ÷¾•=Ö†F Ö"ÝÏãœY’|~Ô‹ëCb’›L†Dʲà'íl ŒÏãÜ«O-ð·ë %nêˆîHï¶=±­ññç¢2ReU§!” <ïË„â…E¨HvÌqš”7æãÃéÒ˜ ZÑ_†ÚšQQJmrFH)‘âI[j «!.ŠËÂHZè'ÿ®®ÛX··š/*¨š À ðš*BJAë¤}UöŒ°Ü3Q®µçãV{Ê^ìl]PòIU…ô= Æ&‡àDh¹Ã:ïg#¿)»DOþ±íÅ·°+5¬Û;ºåà‡Þ—œeL1óx\>n@!œë!p™°§êQ~#Õ õA–vp­W7>éä•›ƒLHõ{í9Þl+w𼕞¢ <@¢F<jmP¤é©áÆvÖ®75‡—Iñ\wlg½~ñYo—S§[DÞµ¾áHƈÀC‹¡biñ3­C 8¢ý…¸«šY¦'/;àÔ^_ߊ±D°o>tý'Ä::–=ú}ÐrBŠØwWáOýïýã,z\­]Úd 4ÖO8 æYÅB,ÆÅK¼ÍV%k’=ªoÓPDÖêÆHÓ€#ˆ¹Ðè¶ T« EZ­þx`Ô‚åyößdâitÔ°ßþÑÇcä\§œ ƒþê±-¤+ƒÊµs~O.>Ê×wb‡+ˆ*=“ð 1t@{ëïù¼…¼‚­Äechïn]ãB4a¸7…µ´Vêálèe(¦HÌ%Tþ„&ðŸÎBm•â %G)%`ÛÉe µÜ?*¡µâó–?A¦ýæÆ@A‘àmÿfRw"Ý\MËsŒ=#΃èßíØƒSÇ/úã&‰À>`<§ai§é*úP<ÇfÍ('õ#×ûF¡[ _ué¾ÛˆßQäˆXn2I7E¡:ÙÀí‚tu­[38œ´¸.þ8xû§«ÙÈ0XÌ*Q£Ôv +ÝÈøÒD(WÞFk¼—úèLmCüÕ©¨@åÈ¢Iq€¿Ô§Þ>í«94KÄnõGˆçNwŸ¯<-f6Ç@hס®Vo¢ÛꊞA×áMwº7OëšnRâšvú5ÇVˆŸ¦ö*nüGYø¢Gëʶ &xöd¬2Ûèçÿ,YøÚœÎP+n]é Í—ÛÙ$*c'ø²VnY³T·´¨½ð¯‰5˜4CÑ:rAÃÄö}Ó¦dQ{³âpÐ ùÍÏ _$…ä …Šö ÞúĆ’ Aó|J ®sš[IWפH¸·z× =Ú>"+)ÑþáfÀ7æeqâ¨Ô,Ù6‡Þ¿E)¾åš 8ëC¸Á$æG†\:õv¹}Ý‘éhA­$±T”H;½#(á9,âxóÒ»­%~U_÷„>ð_“ ‚Rg ¿7rðp3“:sA?¾ä'µ<ÚY'øýT$ԞمЊ|Áî–Z*¯õŸ^O:þm⇘“¤Ñ¤ ?Ÿ]™ÕæH_«“QUçðãÔzvòJØ"v"ŸäÒ( Ö`Mª-×ÀKÖ´…›´½®ú}Ò@ùÜÈB{<'´–ioz9ÿ=‹ÕÝtn•V%¼ß+ŹN¢™îi+ûn@Vç š}©I,X™š­µß9È #\/Ÿ‰êâ·c»r¯†`$UIÔleÏ‚wN¡(#ɰ¬Î¶É²T 5ÃeéÉ£ñ-«ÞÃèÏY%¼Ñsêk«%EÀs,ê^Žð÷„çë”Á#„è6„{ßëГùèî­þæ+b>Õ…,Ùž@äî#=J// „üzeŒÌ˜ŽÂ+T~nqF»¯ñ«ô¨PˆΌmÌòº:‘Ü:\­Ž/,·x— µ¤ 8°Ó“.à-  *LEÉX•+Ó¬öéò4]D¦Ââ‡ép8mP¨ý¿_Â3d˜ë.´6mélŽÅZsrBfÿ˜x0,ö!üÍÕñi½µñ{—H·Ó³/í†3,¬‡¹«~šmH"©üuA DB±§éÅdÓ÷ÑÖòŠ<­À­„¨®Â/juF°J„äǺÒâE×oèò¤+B‚½ÅLJpAH‚YNZ¤Žpût²žÕCô=ÍEz\9NÐ!ââe.ùÓ«ÝÞ!É¢«c!¿õ"ÕÐ/{Æzñl‹ Os…î”Oû°ØÂÝd~˜M2Û)é‚røâ·Gž§¬,þà–­/=°L?_çKCâˆx°¾‡7­^`xùFθ4}óÃhÚŒÿj öÃ~ âïÕ:…ŸÓyD¨é×Ó„ìÀÕ2/Išÿ»ªÝ­@´d·g_-¬AeIVŠŸˆ†X )=m‰ÓÙ\w„‰Þf{Ž÷ì *SJ4exHªCAª²“†·µ ÷IÈû¹¡ŒÍÁ£еC€]Æp¡*y«#í’åéUíQ€¢²þ*D'…¹: 4Æ œW︒ «Ñq¬ääà›n”;ËCʶN°á¢6Lisql'èǧø›$Ô<+ú¥”r9-„³¥Aayí¯I¸ºÙcHÀŒ¡ Öa{O˜áœ¼E*9H wf§\ÏEÔ”Žgaø¾Ád•¯àÒ¨ž ð¯W¶ † 6³MuUNNEn$QcjoLjMóùšP§Y]¿OÚæZé7J¼ly˭ɽ¬jQ(så LkC`ÒPf’V”Øõ˜»^ôÈÂL%ØÆ…‹Šçšþѹ$¶±söØr`ךÓIcÄxõ£Úò “ÞüæÄ6ÖÙ[f}ÈTù&5ïi¦X!»'ÿªøÛ+=­›\.zÖ㢡j„`fõ0­T›ƒðè:î‘õ‚šUöÖÙÞºm¶ù!JÝ&"©o~`Ï*‘bÓe·ë†Ã›—YÁÉQü4`&>dw—Zyi­÷b¯›M&Éi›„Ì·–$ǬôŠèPÚûªÁÝÀ´ Û˜uÏ ÜW'6ÿÛ9ÿxXÅèÄ‘¹ƒü¼”Þ¾„ûÆï£5ßvÊœ“ W9@qM/‰Ó¡×Û¬ÄBmš¾¡íYB 3ûÏÀûhÆw„ð~0I\ü3#•‚üÏå¹ÞKòïš5Ž’Z1;Tuƒåª1ûÚº¡‡à•%žàXTX\‚š%ä}Ù Qн6ÆÁ¯rØ ä´i›ñ2¼/bJ(šü—d‹ht­Çãx¸l >¼)+’ÊÈ¥î)h%{\?Ô•ž«žçLÏ5Ö£(Òªˆn욇ã^ÄfÀÌs0]çm6âL̓VhJ±7dJ&¤,É~ø—Âj϶jŒ³ÈÞf* ßE5çiŒK„\‘Ô¨½%ü;]ð,z…n­iÆ%(Œ-é… Z E.ÿE’4d3Âèô;]XŬß_<±kÒÕ wÛ6E²¬~:yõé%JnM&isPFTñUºÆµ˜m #nz­ô¥¦ä»í¬óJ'ÛêTæ¡>´°q gÀj8ŸÓ}ÊâS£=\IU·j{z·VýUÜ㑎;iõîn†Z|驯èà²Å+bÕ‘ëí§â¨5ýš†ˆÓC¯&̺6ŠòC±8f——»èžfáúÝÙ|‡”~Îvò”Á#/*e¶ÌøÍzÇK«>?±-Þ;ûÎt®Í†ºü€ÔuyLÙ¾uŽB(üåfÑñ¬©Œ-±üG<{N¢pªÚäЮÖá]©¨†?ü–/0ýºª³˜AÇHþ›X Ö2hB¿J^f*é³£m|±‡xiøíÍT y¢åðÓŠâÃø“‹šà÷-Ô<$îš)Šùm&#³Ô=ádn}ÒÄ)ÎLx4)Ó@|†‘^Íù¬Y:Àˆ¾ ´x*—ŒYí¦õÑUÌ÷q8[gCŠTã*¼TN¦ëäÑn;Ò^¯:±ã(a6'Uì` B4ÛÛ¡$3®G"èe—J¥Zf·Ývm0­>Í,¨» †øØ\gé“>‚&?ÀX~MX)ƒw¶Õ”ÉKtOu7€Íÿöåø~t-gêsQ˜à”¨5GÀlæ}¹0 SB35Ks×€ü8`ÎΔ9ïéÃ*ï7~Äìpt欤ð$mÌÕw:PBCıd»èLˆ…Œó#²N ñé­z¤ Q(9$%ÕlQXOÖñ“°aùvÁU)—[gøƒŒ¹j~7IZK%&Ó/žEÔ&½G…ó¦Gî>=ãé/„bÆNÑ|°-ŽAQ[<Îø-èéjlU°Mi«Re%OEGâ Xrº—À[ 6Fõ—Ü©üâK*hlo£VsÛjÁŠbv•E>1À±ˆ|¼“*ñð™ ÆEL‘)©iÈá3'’÷’rªþ ‹D¼1ᡈV´¦‘´Õâ¥:ÈìL½ã¢!`³º(¹‚Œ†®=¤ðc<„ wº¥Ûdƽ¿(f-m¬g”ƒ\š+t ¡ñbrºgp¸ã²Ä€ÅWufÖÆÛ—ÍAuÕhÛ–¦ŸÇ¨ÙC¯µÊ6¤_-=Oá=C‡CJéß:Ï·"ÜÁïªÍC<vš¨ ò˜P3fšÄ7Š"ºÖË9–};óŸJ½Â7Tâd»%ެ{J·CÝïÌu×^˜€]:ÿ‰‡Éºþ~zÕÇ‘5ÿrE2ÚŸA™Ï6÷°v6tš©8ÏþPO绋Ùsþ¥-¼žÛ#X;SAOšÙb_ àM*G,bòe›—/VCE™kÄNÂÔ?k.8‚„ª²iŠŸü‘·Ù^ƒ•„—!zÄÀv…†o¾!@„÷.‡üš‘„ç-Óœ1;…£e¤iç³i@Gþr£¼ôîH*Šº¹þk{æØø•¿Ucàö]§èù%yTýWþ‹6Ô·Aî¼· ^zƒPVCê e-j,¶—möm¢€ò(¥åx~Pú¤«bÉr‚dGê»íÊ›¿\¢üL=2‡¢ÿ#>„?^ftªcvÿ” éJ;ëY¾üÝå¢Ã¡bÿòF.Š.üД޿Ô\Ù«ÚyεY k'«¢\ØtÀ“~k”ßA"ºÜ-¿t@$šœeG{šÕkk^qÀè­í]*©òÚdó£Û2¼˜H:kÅ:ÂÛ{l™f~Á鈈K=›äÖPÂÈbxS™—>² ¼ë`١؆"²jgpv`å£Og 6½ÄŒ"uºüö˜¾öóTÀ!³èBEZ[[‹â§Ê•ú F„Pà/mÝ^IÊÚâö0±º–òEÌ–£ÛYWÀ̱ó<æ÷öè`>a¶&9'¾êò7ÞLK4±âJ‡‘½…ĸJÉfµÎ êrÉD¡g !´ÑžOä~ÌËEõ{{÷>/‚y…õ"‚ò# "d]¤IÒ‰—ÅOAWe6ê„î{Jêþ":A\hY}xŒòC˜}›‰QvÕôûEîV3L)o¬Nnöbn£;[ñp¿:¬ßœ©~\¤‘«¤q(ùl—{² ¡„®£'ŠàžF¹Å×,äâòÐR¤¢€©6u%öRu´b™Ã$A´í‰u/—à7RzPK‡›Ä5Ë)^á^ùi‚Ùd7&¸k‘!qg—&eM«˜Ûë腯oÜ÷VhqN&¿ØhšŽóÅç ¶þÆœøÒ·@2Bp R®î®ûw^ÔabiÞé-ßüåüuVë=9õnå^µ¾¡¨È2ûöæFÌ0¾&ênÒÍçu27Ú`Ç-ý£Ìã`Ø-#˱¼n婸™Åsì'ï]„¡ŸùKiv½Áˆ££ŽóòÁ²òOŸæFopTéº'$Ê6î»cTd£ê¼ù Ïþ6{5‚NK¦ƒÏ$I‚7x­p¥wŽ+׿pÜ?`•‹i$£UÊ›³ýLòP›Êôº  '¼$f|Ô,ÁûêŒQ±O±a¤Ê·EkKüò(4Ì÷—Âþ§i ¯a#]fëœAqÍcà1†’õØÂ8P6xþ6{T6T¦+<ªª:PDµE4Èâ" mµ³cã×z9FlÀò³_ÑgÌ»ÿw‹ºMOgøÝ Y©¸P©å5ä^rèá7 ÿ×~é’Ú«Ðsxþ&x[Žaî­H•Êb].Í2ÂÛ#x)D sø\Œ¼¼î}Ê«ÎR1\MUäÅÅÉÕíª‡Übß©´7¶ÑëUþÓÍ¢žó—ÍÝ"§%Ù¶Œù™ù"g^¦üÀX5ëú›l¬#”Ȩ̀Ò;jk}•LÞ …ãÝ~eYÔÒb« Zœô-Ìú d|€>ŽÙnžÀ#.8«î¾˜©oÊrrcG} .ÃÉøj]JÛT´ÑTWÿ–ÞY ~UËÇÀûlg¦ÿƒ¥8UÚÒ•óKhõõ HŤÄÿÇîYÿýŠxó‘ÞDëÅ®Âk;ªÒ¡‰Èåg/îš´m®OHG^x©¥D¡u®ºˆx¨kª×™Ÿ ‡="~v#sûËuó0¼#¯²ÛœTs%ÌtsœâŸü¥Ît˜[IÞ¨®ØÑ€$eS•yä§£˜» rç4·Éôbôr—’rÈ!Á¦L;Fþ¬°1ãWH ñ)˜q×=¶òæåܘü3Ìk{ xzÇèç&J_¬$“OüWБ†š¤ZÍ¥[6䦰“fªxªÊ!í+ßüK–Œ`Âó.˜wì‚gx;Çÿb¥Ö–fCÑ+‚ˆs~t^ümóðCÚžüÙR1«×¡ç\¤›éLÕ¶Ï(oÓî„BiÊ—#°ÎK:ä„"u葇‚º¸’Y-§ò¢§|ùÍ…Æ*´9Äh")÷+Õêê©E0•Ø?aWa¡]—ƒµ©°ùG´7Cnƶtwú§ÿ?pÕP#ÊÍ ÎØßg¬òç;P¤€h»Aì´å3ºÜ!¨'µ«ß‹qÜßÐgË9ãïP À­˜;ðÁý)tIG¢ssº2ÔãäÒÂE³ ŸÿL¼§Ž¸Ûûzá1õÔ ††.ÿY,L‡š›”wAéÛ}íàP¤ÊK¿z}L`ch†.{i¤‹OØb°›ŽôPXÄm\MqƒúNÄw;Ð]&bU±Q*JÈ€Ú˜6ý‰êdLË5œ’…°¬Zcÿ™!DH+cUÄóSµL…%?¥WótpÔÁ¾[]è¤VVïâ¬gñ àAË+èb J Ê…ûžˆ™p¬â‡Ö‹,¹ópãkΧË[Ž1Rs¯€R¬ØÒô-ß8—•—Êæ dô¯þ€ê –ÄÊÓÇ9¦ÇìG}f!Ø é«9ä¬xÐËG~Û>Áæ‡ïñ1N,P•ZÓÐ]Q¦;ÒÔãV­mÜŠ©é¶¢czÆévw¤ŠTÉIâ¿BÎßñSY/þ‡æAÿ6WóGÿÏxÏ£1YP€¾zâïô¿a,1¼sÿm2…} ÍKý³Þ\uÁÒ—È ‘Æ««Þ>®"+ÃDœžgPI:v\,Ò3|/üã¼› îÂi‘sÒœg€ù5ú–šu:µïS!I¡|$Ò:ÐZÊK%©L¨4ðh; wÑU¬Ú£dî¬äa´;'Û=΋ÊËúG/¨ŽÍ°55Ŭ=AsÀ¡s£¦æ·:hÌü Öy}S´éùÕ\Yk †ˆ\ž¡¼·QøR l-â÷‰›Ee™~¼5—.±!Ù˜½×‘™!ä_''ŠrÒ±B¯1ôÉœ |O¥r,/>:e_ÙüЧBg¢êÑ…áü‡XSïËÝqƒÃ>bä ˜ü“¶wJ}ŽGõGñ8;5@-öýçl WMô{dàt†XãÍw$g=&ªÿR¸=Ɔ*røððÚË!ÕŒåBE´/Æ‹§l¶{z›ñÎó}T% §&´Ì_‡EQ"öÿ=÷Þ1"†ö˜C(Š3"2P>Ͳ¨ëp|eL‡W½Œ!w Qµl¥¤Á-.¨xA¿²×–›Éà/By½»W"ö(™zŒëöÖüÉ긌\ EH„@h7¢‚/ù¯,Öï'í+ÂGyT§ä×±hªýtœ‚™$0¹Î ±’±xpø ž$¯õÆÀ†¸ßÑwk(–{Ä?ï`ºù7š-‘²™ŠÏg;ß—·BUí¯Ë`»-ìä´¿Cd®D¹Óë[ a’¢Õ#d%Ô? Äw­ 9èd´~}åG2Gë…‡@Ôh÷¿Âu±ÑúÖcv!-Q_³í9ùiúý©J“sñg´B"ì˜øqÀ.ÈVþGÇÓµ,,ùRf¿€Ìʇɕ2¶OŠIº"Ó9®PeÊò[íI'¥g2ÝžÿøL.`g§]&“ëÿþãõŒßïw3g:L6{5|ªs™½ûeà[ƒEfèwp[QµÚ&øs`•Zˆp;fTB‚<ã6Ç™…)Ш²%ÞçþÃÍrc´¦Ó¸©¾åÛÔãØ!sŠ ¬5•™ˆÍ“òKƒúÁ5'Qðâ¬ã¬xÑ,(Ù‹  3 ‹”5R(þ_Ýg[ qtì·>O»|öBfHþ/•‚úšh‚Ï¥“›²I*€®§Þ§˜ÉÔÙ@Ö!‡E%¸Ù”É'¡zÂî#— O?h_õP('Q9–ÄÝJx6ÿïl_…íF-?UµÈíƵíW} ÑËOÝÇ~˜›´î÷ªÅßD€Q9̤ҕ’u‘ò l@D6™]6YdÍO}z„žc~²IÒåÝ‚#3ó-d´bF¥ˆÛ+»’™ÛÙS#OIÓÕøj¦yÊæÝüÓBUƒºó(fúcEõ¡÷ãCðkê0õëÄã°ä*ï˜Eý&ËÏ– ¶¦E%4¢;ÃÓ‡,ÕÅ1ËLË/=)Ÿ¿UMƒ ÷½ù@ïEp†tRü•3fÀUQ´µ„¥a¦ûZlï˜ÂÈá…P¼lf&"‘8[Tÿ×`ÇJ¨N:è}ù°ÃUŠÏIwÎ÷2+AZô¯•@ªSG9K˜ã˜XøÍgÙR…±Òd5(%!ô™€Mx~Sæ £rUf†â:s åhÃSÁăų;L½h^nQ^´ù‡üá‰.8ú's´uÆŸNýhî;É/‰JT½øÉ¿±©ãe*•&ÿÌŒ@`F ˆ_T´›/‹’L§ÀóQ¢ô’ MYSލSC4gh6gqQ¤]…öÆpÝ%œÔ GEˆKf.Ý‚RðÕ"nŒñËX¶p<`9;sG¼‡oy,â H¨»Fs{xù~ÏñÉ™Å!ãaÿ"ÉŸY³›•¨àK ÝS ªqÔ\Y)·Ø»Y[/ðͤõþÇ~½ÎħYYzwGe²Ý•MŸoAéª%„@ve—üT²ì!þ¥EDÍ¿è”$Oµ5EC¨’÷BCÎ7Þ2s˜/Tt~ŠûÞKŒ;ÁÀûáeL™Ëÿ'Þ:¾ä¶Öžƒ2hngŠ ›ûÄÔZá®ÒžåÐï¾íà[ØM™Á²¹*„¬#g ¦¼ »ß×wùÚ½Æ4¥Ÿ5pz·ï³.ÏM©o°‹•Š ‰aòk¸•(ïXÌnßÜÌ='6tø`® šTZçÓÍ-Æ=r¸ôò+œÚ¯õ½O"<,sÖX'ú.м¼ŠêI*©½M´ìØÌ•Œ‰ÖËMzͧÐ!Â=-ß“ h¹Æ y®2.<=ÄwÍ d‡æTf£x`Á¶€Ü?Ïç­lµ¾;øyœÑGÔUçåÈ–`õ(J“úwÛÒ¦„w‚4øEëË:BÍT1èDžk,>ÜcW(fšÌÅ.€@~ww̬ßatÏd[ÔÝ|ÚѹW(¿G†Ÿ÷}ËpÁUéZðÜ ›nÀìµ:æ>³Šè€Ì^©v]¼¼îog@ž»v“)¶GÓdä!¥*7EÑ>°†eÃæ…¿±¡è8wS%¢"Bõî{q¬KÙöå,ÝV3·'_Œñv¸Í3H0Ûà ¢ ‚½¦-KÑÒÍÖ/XöÀš€%bªPÀ•Þ¼ŠÑþ},dÞy§ªzó§ê”àøg vleÜ?êuGØy7aø]°4ªæ0rsUk8®¢%~æŸûlfƒ^2|ëwÅÈÿád³Á˰Î뤞Óm¯ôûl5—!åá 3Jó †û@.Rs‹ðoý›¢([c¨fev¼ñêA¢ÑzEÆ&zÆá`¦6Óô¬·¡@ÝxçåO*·pø{ƒ…¨Ž¶¹—Òl«yî ¬ÄRé¥Ýk©#ä}bVᤃÀürÚwš¯äÏ6pÂ7Î['.¡ËVÌå–Ž®œJSÞb™WݘDÁ$±€ÝÛÃwÚîµ$;d©´J Y4]òaIP0ZÚÖ¸âpúU¼u@d ,Œ™ª7Lâ[/7QˤÅXL <‰›?t«sšF+RÄg2óÅÁ·)îÂ{â#¸"íO{¹ê¦S+£ß´w$=íÉ<ÔU| ;‡ä ÉS =_¾ Ÿ‘\<8ÙXA\G™µ¨u¸šêòZhû¤õ(³UÇ¡þ±Î¶h~}ʤu·e±¨3¢‹ˆiêŒÄ¢tæ=¿åƒŸŒ×RIgVlf»ÇŒŠÁ;ùJ®yfǪtö¹†ý­nÚûB“cÍ­“s½ÜØ>¶Ê¿†pŽ7š3X.á‹=£7#ÚƒvÔVh\ÓzŒJÈÛ3o*†ÆéÊ ò{ÏÌE0‰˜€‡Øh%Hßþéˆðä1´ÛguÆZö±µV‘–ÙÝ =ÒÚyൎŸT*¾B‰­cà±Wsh–'"0Ü0š[Q©…LÑìôç~ÝDœå$¤$ž÷Ì«¡Ç ®` Tgك؜Kyå ƒà^Y Út*Û(@£(B§†Ë`f ò¦!¶j»\lHk½AÅ1îX.¸bö)‘XœNw"¶—é ˆ+"µ‘]?FæÐöÂ7½‚a`¨D»âL Íµü#¡&’''ªÀõ»ŸþŽ“$Æ Ò e‹™Š«Ùš¨=ûAæZƒ6 &ö¿>q‚JÐ{ÛåàÕ*üX™Iž+7Ê?ù[… e,ÅAµß>h÷9ðµÁbÑòp‹Ž$©¿¿GŸk,ëôR¥˜à"XЗý Õ+·w7kmeÙC"Õ®L•_É:ˆ¨ T}n\i¶}¯&ý3ÚZ›¦7×YÌÌŒäÈÙ ³ƒMìE·(õózv²=|È¢Q1G˜J†4¡¦k'äŽ“Ä òæGªOQÌÉÖã^šmduiÇa/#PoœlCï …¦{P*h¡'9ÿWòüä7™høË¢Šaó7j—;/Þt*DHEîÜŠ^iözŸîMr¾G¥_Ë{¨¾rÏü÷¨Õ'¶XÄ›Ìçª]V¼¸•^*/¹¤g””N Û5¥ó¡GGO'èÁ—Óha››¹ï´ÂEå‡##Hqp,hI™³õ-ðG1œŒ-X S¥“GØšÆðñG~m÷ …)—ÂëúñÒÁp*/Kû0´þ`Ÿ4Zäš‘UK€¸&´ü 4i§·r’%òÏZ9\Õz·•µ2@÷˜·Ò74–eéÌEý†Àòén#ìq£¶æInå²Í~œ†ä(»Š':U*Ë)Â0™ŒðÄM¹Øóp=»0LN ¦"þ6G ¼†ÇæP­§º¥Fe4‹žÊUzÒ"Ef!â Ê4ç'Bl‡:{Ï)„p»Œ"Ì=¼ÍÖIŸùè¯Ç?›ÁÀâý^¸ph<á9D~ÐžŠ 1½TÅÇ»êªÌò¸V¢5¹B(³†å6¯#˜Â3Û±'­—i§hKêŠö¾Ë bñ.lþjˆ²ÐEËü¼ß8x‡M°Ø)9\`+lŒ¦lyø)Bìo¯\ÔŠ'{X˜]Í_Ói=¼VF,”ñÊu«ñy#ø•shãñQRT& ÄOF|fÏºŠ®Ix Ç‡.þݯ`åéº,9“ù[“—cay³çcÈJæ’Ž t*G,þþFa¦±bóí/šäA:¼üyÀç’¦Z7`'Ä04FY¯¤A©¿xUÚ$•Ñ^­ñBfãÛ¡Ž„²]c –(=Hþ]!ÈÔD£Å:ÎÃx“Jê«—RШ£﫾c`Â*,?zÀ-­[Ô¿€ˆLÈo¦º¹F­ ïcìѯ¡}ž¤ž¤ò¼AÀ$.Ü̺/èQY¨à@o·G÷ñ£Öe'6i,'¹ÔQÜÄÈ;ô-v+1ɯ†êD]ï¤|3Û  ê”Êö}ŽÅPŠ—û¡É<Ã+ÙÊö¨çK!SÕý<­ñö(@=“ö¹¹EJN\wÈØº<¢r¿u¤œ´ÿöþ™$_âIdïéq˜¿Q•ý§×©_ºõ„€6¢q ù:BÿZ"xè¯Ø™Y“7ÓÃxÙgMZ^i¬¼ëeþÿ.=ÉôÄ —=öŒ#ŒáþÄÒ–ŽNÊØÿÈË\FöH\g H¸‘³C°æ_È»'{fCm.ä—åÇØªZÂ^SûÉBµ§ÀÉÝУmªpÝ; È 4ĵcˆèžÕD‘„<ðt#u©± Ëò4>uB9Ϋ#Ã`M—l¶VMBwVhmøÏGY¿®_°8žûÛ—qkØ‚_¼À¹Zp‰_ð’G¿²‹ A5ý„÷[« hò1a‰tÕ¼‘¼_w0¥ÜªMƒ8v˜8Þí Œƒ!œVéá`õEß‘ýb<—¹eªºõrìp-+[pyÖÜ^®oR92ÎõwtR×\Rê¼ Þ¿Vï¸Æäló3û¿l¶híd‰.VœhèfÂ;Cƒ¾yz9ý•V"žF#Ùï8ý ˜õ/нükJê*ê¡àýŽE¬Œ #|OpÆ;kLü©µŸ\T[”qCcVÕ8f|a`ÍVˆ°7ðÁÓûTÌÌ—‡þÇ×Èo²,ž×2¹Ì~De†ò³ ]Ekµ2™» õ’×éýTš’øï¸+-ÿ¨j;ºLHéô3Q”¸ð,ÏOå*f hªR¨£'·J×EHp+oì6žTŽ€DÚäÌ@ãOz\yÌy1ŠU³äû¨.×Ô­®a"LÈ„†²Ÿ¶”Ihþëü¯îF×PYÿ1È'G‡Rç)a•¯‰×ƒñl `ÒƒiY¤LGÿþ•4šg¨\FêÍËÁMiLÁØ¡LGÿþ­aÍ?X0 æË\MÔWsm¦áÈþx³á?zÈÖféþjŠ+#RÜÔwgÑÐðe W*4½<#2ÊBš?Ss )«wö c:ùèÜ….•RÞE¤«’5ncBµSÅïGâ€7®ã °r…ÂÜD? Ëž’&X§vÃGÅ]A!.ˆˆ›â•5Ù¦éönv¼˜ Wšu–9Ò•^+ yZKò}“I\ߊ›¶£vl¼-þ/&»H¿&ÂY05/òåÁø¿µ(.ЄKoœY?¡Õj·\nFÈ‹¢ö‚¿ * ¥q›j°}”_\³)×ð‹ §U!Œ¼ÙÓú´ìERØ·[$â@±óPõÂí¬ß"KDLq¶BDÑHIq×ÛРתóÁbR†èÙnˆÎ‡˜êS°qOeªzIýþµcÝ—W×$…£Z‰æQB|8r:Oéc¢ŒUj]Ù,å³µÃ(¡æ£×…›ßM6‹µƒÉùK‰Gù`7%9|+·¶ƒ8¹l¢neêùÌù6ï,í8I>Ó84sª®T/ÄŠ€®b¤Ðôˆût9Šž³–{³Ù²‘Ò ÆÍ¹Y_˜è¶ö˜¾A²K9솳~%¨áá¦Ý»¡½&ÁGƒõ´hªE¥Òcyc‹]˜„Q¢‘Üø/QŽÙn+Â…úU¶.D…u3¥deòË/‘Ïq~lqšÎß¡Dï_yÃ#Áü­ï¾Nž€ŠÌ3Q/s´€Txø®‡j Í<V°v²(Û¶Îßü&Ëi{ð9'wmõHÛŒ6ÿR ŒAôâìè=•˜f°yé´ëT7 ¼çkØqâöÎý—`ZÍÈ“ÈO—€GµÔX4!„Ù+JñG,̆õZN¼ mƒãQØ:õ¦ v£™qÚpC¦_ÒŠeàÂ.€ØMp«ÆzÒä¼H¨Ã- mö(•Ž\î÷f5,Áj› …ùiK.êuêâB- éÒ¬’*ýûfì gfœ@9T›¦ƒÙfzö“úÊp ÔCÝ×\§®"y}"I^ä®Èk@»V©(ƒsÀ°¶— ÀÙ;pûU=’g¯¿0¢@J”Õ+±©ôÕ‡•/ ÐfLg[b»üÇIUVÙÝï)RŠÐÚèÃTÞg=pËûQBHnöçÊc† Pü·Ì'àœ†ÍŠëè­¡F'ãiâáÙk*ßù@Â#Œí»‰aåj9þµ&´ý°èˆ F—<ƒâæ —íí±õœTÿµ!âª[®J^´w¿é€yÕ8…òImD¿çM¶_˨Ԧö_€0>ïðº¦k«5šÝF2êŽkbR´M¸`²‘DfŽzY1ÙԼ꫽ú§”ijfdyh]YöÉ9ÚsPçÃÜyË&JgÜ"l-ùŸ þr؃P>¥pCØ÷½–Á'\&çtÓѺ‰#СG#µº}Gõ^^%üX +Fa{@ìdö«iNyûâw±ûÇl‹}?J+8À¹UpË ˆ>«#¦­AhøvGJXz…ÚßmvrûïéÊHx/;¶lûV*Y–ÞSñ¢ó@ïKø%žt³œÃsÐØLRŒõéNŽ;%—ŒYØ"NPU\Xžj91 ÓÆvÉcòVú£c×þ¡2}A!dä¸õÙUfž…ƒœ,"3Ôdqq:©ŒNÓp8ñË`1§I㺇`j0øÅ cD5é€ÉF¼RÓYU_ÚÃç2m6o‘P™5QBèõàŒõ¸_c³¦P”nSq@<ô8¸Í'0°Ê¾Œ7€*èc`ô&ÔcNF$‰e[ c3®´ÃÚig‘½œ’K¦c®¿ŒÕ/µº±{=íeÍBÔ‰ã Ây2–KøÌK¨UfÔgôƒßUKhEb#U­hGãø(8Úãð,¬>¸·öaE„!gÿºL_g &ÍBQÅÍ/2`¬Ô’±„— xR­šòÿÙ8Û±½‹PJ|h©ã}™è×óp£ø÷ ÷€ ©rŒ’ƒÎÏ%Qð,¦\ñˆ`ŒÔ3//ö\•1¾ÊÂMu¹æû°c5;\…D*²Z`‚ýn×>ÞCë3´aV-˜:Š]Múo+:Ïo2•ñè·ðßÞ­ž Gzס䨔GŒG OyÄ#tØƧÕgNdLûtŸ ã!‡;$0‘Hö"J£­—"‚¹´Ù?1JÐ"™¢6º^s‚ZÖG=|qÐE+5(É\rR[¥dæÖ´u®(àÐÁL¡ Ø¦[3Ûv~ïe]™ž%PgTæë´­6#ɬèȇͧtßXýfu-ÙdˆÉó&E8 Î&ŲR¶Ü¢qPПH^ ¸Df¼Gå'N-ÉO|bí Ô}Î7çDqµ\7'{Ũ*<ó±@Ñ 6†6e”W³h7îMCg¦„ÙD²7nf)ZÃFbJOÒÑFrÍ®S¥w.£ýêOª»N4ýÞí&9Ç…,Á¡³d k½Àš«¿G4~óNB"HÿšC2‰<‚Q ø>('ÚA{,ÐÃûkYyŽÞ)ñl=w§@ü¤n9#¡–8Ù^úaô}¿PPx“‰dŽe”i˜ž; °‚ÇâÙ4AÕ#=)RÆj$N"«¬iî÷½p%À¯Ï¦—ÊÙˆÉû£Û°ˆäõè!æásxs¡¨+5ÖÒŽÐ3èg”{ˆ‡(~ ÿ(6øj¾ ŽŽ/zÿF®ØôLž†’Ë[×ÒIÚ3 µoo‡œgÏ^lü€~FUÂ÷\tf<‚{G¼zÿÌÏàÂEUJõÞÖ2álö&§‹,ÊM¶è¢R6¢-ö~|Hµ[ ¶SÁ‰ÃåiÝÊ”º%äìmšÒÜ"¡3)ƒÇÍÚdÛ”xÌ‚z2iî:*c%$;ž{€qEæÌõ"‚@+{£i„pü€Û¨ÜȾàúü [rš=þê'Õûß:rXËW™âÂö¿òÈN¾Í çvÂ:ÊWí ˹87 e%âAô+$ÉO®>H7-Ÿ«{u ÙßÔ£É÷©¹âèÂÅŽh„NøIìÁ°Ú!¥–8 €gf‚½Pð/²K•Õùí¹¹=î€ y¸“Ú˜=xwil'J’êIÎZÄÒ óMd€}D³,Âüa¢Ï$”bÕÃs` ;gøê˜ûÙ£„Ñò#=”±<+”GJ.øê,Z‚ÚQL·3eê.×NFý,^OžET>BǹqDˆª5;†*ƒ`Žqøè óL–Ú£}gp °ÁH™™¯ª€ìNœ\iF·À§¿“kÌ8 /!»mt9ÞÛï…¹/©k¢—ÆN/š”š€¤§ Xô±Æ>S7D£GL«pÒ<½½OÖT¶ÈXMK)ž9„`Ç!7*\«l“+*ŒÝ´™ã¡dã?ïø0ÜÀ¨¨…I¸•Wm4ÒMì5+&ô²³FR¡N’ÆӞªI*Kïî6Ȇ<Æ¢ÎÄM›rßL+Òˆ6Ú‘í£ÙP] z;?eAzÈY!ź ‚Hùö÷b¹ÅŒÏQ†éÍs–þY¤àç©,˜¯ˆF†÷†þx%8Žý$}/*@[Ïjè;Vœä_n±ä§‘º¤[,ša­éS÷âF>Ö3Ã÷ƒS<˜œÂ¨B1ŠúH´ZãT””¯³<$†<¦ [0vb”zžE~HeTì¬LäÙj%ÿ2L€§Ywj‚-Þ- ^$ ƒ xäE÷^ò øç%ãgÉ€ºº!ñÃÐÌ®q¤r½ûÓó?¬WÝ‚%p¯ø&ß¹¬'L_fÔ•W5×xš¹ú^†—$FLSÕ€NDRóD¯7¶2f XIÀ$X4Ðÿ¦`À5F”“•­Ø;,:UàÛ³mš5HC&¯"‹¸Ïè×rßòäajUèj¯ÞÆD°Wcö9ôõ@N¥¥…ï6-ÍÐ?<=Ìpx8¶5áÆtfu›]çÄy»¥zK)Ú§\íÖ^YÓV2V¬Ñ6¦þ“¦3Ü,õdî›íZh´£½H³.B5›â7éô¶0wøDWųH3ÎA*Âï74FT©?ì`"¦:•ç§Œl ©®¯¡§¢Å-Â5¯/ZËqêE1p'-•Y:2lK“†`ì/f¿Õ*Õë­yéŸøL½¼êÛJM¿Mϵîý"ÆG½ 1Hë]6)Ì6­+ºn1üɰø* á:Øqóà¼J| ¢ÅyXJñ‘ûC/š ×™¨QýD4×p9*5‚a¯pXÌ…µ-Ç:ˆà™Xä4»1vGÏõm«æ¶Y½ Z^Á‚'>ÑÊdŠÕˆ.ãÌcpšåyh#ÃDåè‰Ê‘¼©ì•ñùEe“nJ|ú4LB™Ÿuh ¬3OvÄì`÷ë÷ò÷c>Igœ“Ó|o#9ÒU7ÚO :ÉMM»¶@– A[TÉ(›¶Õ~ƒŸñ9YŒa0òD¨îj«ôCëGp;HHšraþ¬bªLN—‹É­"åŸ]}›9í·—[î°•ç9–^þÙ:º¡Ý˜'¹å¦›îök’g‚qVob¢‹ÝùÈ6˜cS—Íùƒ¹wìÁÐð6úÜÇíh¢×/Ð¥î ôÕD…3}¢±:µ‚;1¿âe@¾Ö5s>­‘®°î~Üã.½ü6{f›u¾]ÁPX$$âµÕÇNÍsa³MŽöï¡vá‹Ï93w„ü‘å}d·.™™!í-Ña#Ý]çš$oÉ¿ÁeÄK¨Þfy¸ƒ:¥;²AÜ'9ÞÂja–Idjp6­r)mÜ ¤Üoã†ÁXM` ›¹’59¼ÌdH¥ù:†~F<º.‹·Ç·så¶ÞŠÑ‡v+]ÛñÄx£õÓG¨ä£X¶Šl‹áˆlªÁ0²Ñ™| ‘qÂþòZ=>?Ál÷Õ7\DªUÅ¢lÐýNMs‘ãJb³)[¨¢îï°¾¹w ßÍúØœ§µ2‰Êªq͆¤6bZ)ŽŽ$Œ  íu :ú\J2Ô&3ôqr.ìôêÁ~A¦Oñ«Û §Ô­5[,Aºš–èÿ?^Ïâ×A3oÅ`àóâÔåÎôèÖ˜^tYAàîx8wÇ”ž[çrÌB¤ïÐ_ˆa›0ûÒ]Úë´Œœ¤äéðÐSôø õÊÔa¬þ•ýdÏgzö6ÔIhÙ%fV«´·æö*Þ¹¿°ã’l¯šO@zSceëu¦bÍ¡×`¦; ŽbñVÓt¢ :¦g²F²®¬˜ËÄJF‹¿e÷²"Gã”ò3D2ß’j9 —å¥áhî]àA6¥¡;*ƒçÑ1Ò{?ô²¥0<é=SéÜy´‹ä\ Å£nÆXŠÒ·›+R~î䯸E,kñw”ù  ŠjCe_à…+³0Ìè^®™X_§RU47êý6p„—4<Ü";¥âþðq‡½Ü#ðžŸo\bP¨,¥1ÔçWß_™šû Dàðņ"„;Ý>8oÜUË¿Meòº!]ì.‘ÃG¸×”§`½;ý;%úvu,Ô’äøØ.¡.«¿ æd•ÈÅþ®j ð§áhNÉ0{Èj‡W¦ÄÂÆ ŽÄ=Ú_GØ OrQ_VØh)ÌÁZÏò¦¾¨Œ³£²y5¥°ò’‹ùÍ8.c†€«Éàн‹­Î¼H"gØ›GìøÄèdà'†;Ü”Øe‡ê¬[g¢‰ÄKýBÄîÖþê§t,ÑóÒåǰÖ*X ‡ÒI<-Û¨äp“¥Ôݰé%\cÝ•,y£ÖfÖ}E¼½qð!\Y5ì4þ«jã~TÅ5/•A€¦žXêCŽuE æ*"К/­tz~Z3·™JNtÓù&¢=p⳺†ñ^ޏv³8ò—¨f扠¥š:TÒÁ²|²˜©dômŸÐr|öž46GL*­È¥¬¯ë—ŽKøõ­f `ꈪkムð­»¹_6Dh•ÿ·Žü(ÄÔ6¥ÝØdíªU»Óø'=Á8Å'Á…¿`ó ,7§ùùBñüÔ_ äήž,’û„î¶õ=4lêr,Uwô¥sô`ÌF‚·HtûŽ.!MÛ–Q„¯“)®Nª<ªžŸEJúMœ9˜)ÕôÃÐ5òép¯SèɱÀ6_s·Ú?˜F¼|D7Ü+ÉB*p¸¥”$Ä]™ å×z¦Ô®Ã¦WÐÿ –tUQÔ•‚ú¯Ö,Jfà#ýÊLÙcWsÖ»;èÅÂCbx -M×Cn* mÄA|NóË= ¨kÁ{†"ÚÂþ^M/Ëé³jÒ¿ÇÙw¨åd€<ëgÑF€{FÔà¡ ãСþ*RUÒ’ÅůRšë]ˆòýäuàÆp!Ó·V°g_<Ô’òÞ· B%¤Í„1?:TÂEª†¶¾¥ÛÃЛ–aŠõ÷¨¥÷aNmvž›_+šñ <,s€õ6´žO_sÎÔÙX뮂ÀÖÕŽM ßNò:h 6@€«ª?}* 8ZEÿk´å§ê×þ©'¼‘­M\;¼~ÚTÇžóôCû1d'ší ú¡ºÙ1##¾3øÁÚäžbL•u|ÎÍ.í¶ÜÉÝW˜ŠÓ"˜J¸gÖ7¬¼_Å'¬H-ÒL(eÃ>)’C’mí½5l†Ýn“dßÙÝœˆî@°Ñ)Ô¯åÃlÄÒýÜ +ù—loª¡ïÕÅÜ|<#H½ÀÑ(ÄÍ&iÞN}þ]ëÂå¥ù’ÁÞŸ>júÖ¶1 ÞZH¶ƒÐ[["±LÓ¬Öêû¬Ø¶,iˆ4hx6qÄd§´ j†þk³¸ _«Âþ‡¢qMžb2|B>ÆËÇ‹Œ ²Cl_£›vã.«ÅÍòçðÅ.¤¨w|àW2RpÞÙ¶åJL®B ´³Z™…pq|‰i¬­ —Iiþd”À«õGÃàJiÀy 'ËØýüNõ´fëªh”Ú¯Fðh˜øgDÒëd]â“DM ¯—L@jfÙñáþ£œz´†+Hª¬µžœÄ ¾wÖVdqÌöò÷·«æÉ¾}œe%4öJÿò¥£)þùK~`ƒH»j•{6šI'7X[Æ\mÉ>áyÈøz¶Èb#=…(ÝôÂ3bšÑ½:-aüa†f¶@[œw±G~tID"Þá ôC ‰9lÐAeÏTŒ™r tt´Ó¨fZ‡dQwõÅÄXšŽ{²cM|¿zóÇ-¬ΈK­ò¥öCgöÄöέ g93Uî…t4s`Ò¡Ú÷š²6áØŠzy~ƒ¡|vc3]S |"¨qª¡£n¾çòÒ¨ß1õA4먭⣒’ýÌ‹î·w£{åöt÷“êr_?ДÊ4Äu¶Ú3óB éÓ,Þ»Wªþ0k|©Ïõýñ£‹ôe ¡W&I¯7OímåÚøj¡v>ì${—8Ñhó̳”¶u Ajg §,­Ë‡#‘QÆShg63u{@ëÔ¹ÿMM¹ðýiÚ:Ïmidž­Êš€GWMÑ|ñm™í{gÒܯ$Sý—¯ƒ7+v¥à× ÂùE³_UæÐR¸m7üE¼µÍfßtØû/O«NRÇ‹!öbÿm7|QÂk3å;üz#á«W¡ ÷ ²öù>zg8C+OBìQÄÿÖ K‚‚uTða½zÀÒ1“µ¹,#«DvÙÓr”ÚÕ†xn⛟f`o„Cô} õb£ƒ6•>jšÝãéóß‘~ã´åSpLadM˜ÑÌgüeVIí~JŒ¸ãRŒsŒ²,Êÿº¯û<é!E˜‡Äì%k¯^ÏRh ‚EqÜÑ㺫”Õ22P˜C*†Yûµ«yâ::–Ç%\/A6ï*Ó9Ýå6­\ŽÊIü j“òO„«œM!ÓT}ÒÎìVÒ±UJCH›ëf!EDÐúyaì+7êÇÏĸp+˜@A^òÒ¨T—À6jÖêæ¿çu¡/eL-cжÈgëX;a8žfoÑéS_†Ï P̮ꦚ´h—mÔ›W°ú YÔKˆQ[ß6¶ ë­ëÑÉÎ é€\¸í,Òíc«‚XFÒ`P¿™¦R…å6w$ÆãF´ŒèHBÂØòáµ2SòÒnèÜ Bì™}7½²›û« j~i¦ã¨”…T†Öг_wt½fŽ÷iÿšWëú E!Г†k¯â°xi9mbò_ªÕ6¯Ñ‰ž ƒ‘:àŽ¯îÓp/™i>Ö\š8ù¿¼‘¾¤} œYÌ´ÙØcLs}—Sô;¡áA~‰Ì©OÇæÒö²d ñBÀy³S½ã¸ÿLüøâ?êr1X|Aô§ÔðanóOÎ÷v‰®ë¾÷UÆfýfÛ뽟™ÆÕã šg‡•¯9f,¼2Ôç·£z mgÃÈ»èZ‡‘ bã‘IÐHúb syjÙ1Ó¶„.i²(Œ\1,•Ùk{xoµõ©\ côåD‚3pf׌7Ì‹ôùbóÕGÆMOf'£KP ú+êô)üpL`ÑT`qÈ—B‰ÕEêÀ7I…>‚rú³bæA© []}Fê?vË!÷mm·x¨ýél§É]mË…—è–x|P¹Bȳàg«‚^ o;§»ú«Ž0è•5y:àÚ¥(Mô>Nß+ª¼õ Pò§,Ú#®/=t¯Î$¡Ãs“#|Í­HÁ£mEEfñ+½\n‡:@à™òð{„e㦤@šír¿ ׿x >J¬?ê@!Œ¨‘àW–DbÐ^.ƒÀÆ: ]œHio¦äeÂ{4‚O¶;¾qQ)å ¨à“v!ºNžoŒ“ªÃ?¡•òúVî"ÄèY÷,¦o¹\`Ê~Ú1é£fùûÊœö¸#qIÿÙ1dâ«þÕwF¯B»:Çt‰Ë2D0Ã9"RíË™ŠÇ%“ôÍÐ!X³mLòHA|ÂÆt€ËÁ1õ ŸV+JEuww€½1–ôms>³Õ ×Êíç`—¢=y±‚¤SÈ#µ]p–0O"àÁDDª+°ÝÓÙEˆÓ0»°«§UåÑyµá¸ƒ8Ôå%f#úIô¸û²YÌJiš“BQqs|ji¥ƒ’^•§ˆ1šúS&N£þyøû3­ úŒSxÖ:9Ú©m¬i¶:·1…ÚÌÁ”èâŸÁw$°C«&:od«ìŸ)F‘™mmÂ`fǸ4 ìžäÓŽ¸±¤òÏ›ˆ0Ž O©¯ÔwÃ5#“¸.¸;ßA‘SuuêÝ4*DOYÀSÒgß ¡êã£b¥ªN¨”RÞW&¼ JéÚo¶D³ ]íÓ|³+¡B‹A¯©„êÞÖc 5MCÅž’ñhLf¯Åžcúªë£.YûÑL(˜_ÀÚÆ`V®ëɸN,:YLÿâ,¢‰2ˆÖ¦àa‰Ç¡K«Þ¦2Ë÷§7}<⪱\Kc(6~L¦v¿½b^о˜i1öìÑÝî° ;ö¾ÊKS,àÔÙ0v².‹Æ³C3úS;조؟ΟõnJ<ö_!1Zi³°Ü}É úŠ|Ÿ#ºê[Í>5’Âr¦@'d´·¢*bþDì¤êÉl,)}á©‚ô뱨`Ôz¨Ý~üÄiÆÂÝÍëtF ¿Òx|h *êú\?\|-‰âº Õ±eúrXE½À= ÛÆû ºƒJ8oX—²ÅKí ùÀ9·Æ1ñ¶¨ŽÜXGÿ÷f\‘îРTu 3+Òhl’ç!¶g*(946R ¯”÷Yz—7‡[˜Ò¡l“À¯`⪴¾“˜‘U_rÙ®K£ávÅW±«ÿËÉÑ@ùÑ>1á]ô0 .B'2Š(£7Ã2‘ÃmTC–¦’<ÔF8gУOÌt:ñt»t9dFçâðüñ%LÌlš @è•4?µ—ÆÇ>b±žÅ|†|fw¡üB•O©Óˆu®a§»çg–²Ã%€Ò`”n4 žH\Ì2'@Ûñ®Û¬5ˆTƒÒZø¢öPÅ Xƒˆ4Œ\á*س’•aA}Oœ§Pj°|“ 'éÑó·¥ÀýÖ[2°µ©k€S1y¸S«.@Góò({”lÊkð9ëÞ=› h4<;u*¼¢å“óƒð—k¯ÊŽ )æÝÖ»$$$»re0Aãb,¾åÿ­ÕøÃ+œ‡6u²Ž32ðM÷ŸÆ¡•æ,lÚ´¡ Ø"EÎ;§:HÏÕb›Q4Hçf:;DQäÆÅƒHÿÔõÝÑæÔô(ÔE”æšB+ãËMßX¦43R*fòÑàºà8\U#™§8¸z…¢ØÈËÁ©K“ëî^®nŽ˜Á÷… Sýç)úP!ããçøõ£»]ƉÅcs²-ö”ÔùW 6^iÌ}{vEÆŠàòff+…šzÍ€›±þ<ãWQž“›m€ì„9zí› ZÅ„ªD™Q`îJëS-= "Úßßel—8¬¢/Ò–Dxæ½áŒjG;‘Ö×Z[(pAWàÖ~d+£3zCDh ˆE €å‘0!`x*¢3+ûƒdˆ³)ï“@¬" ù4–Œ~Êå„ÓLM ä±ý.î1Œˆ.ÆÒðsØ Äû'ž!ªS«;·Àò ½fÂ5ÓªAaVÇì´·ó(oºƒÝ‡Š¶:*×]æ• ûÞÉnTÜsÛ9ªóÜYö‡øè–¤b (ïc|ŸÝ‡B Q?%¢ï‹S륆‘™ŠU!¤Ñt²‡~qFq#_Æ#ÎÒFb™Ñij_+%Ú~íñ‚¢¨ãᤎí…‘µZU9á½¢>Ve~HôÐtVƒœn̽Ù芭—-ÿ.뚺α'\Y†éfRX¾év¬Yäå[ùÇÚ­üûR+tÍ[ BùÝS=ø)d ;€Ë*lßµ;ðĽ._ª^fÓ“²ÞéìsS§ý¾®|1Ÿ·1npž§#_ì(Ë…Ñ•˜Š~*‘ò'u÷À˜M–ɨP"3–¤Ïü¢<ÿTòD§$KfBÿ“øqxYø Íÿ•(F©ü|Þûš0.VÀ…óƒÀeÄ%Søõ‘61¥°îoÁpMG Ñ‘ª­`ºÎ±'\Y†éfRV¶e8tüòëü%úùRªR-Ȧ_a›¹ 5[Mχ?Š3ˆÚlhQJ¢Ž…ôÄ ?6h™‘h"Ï©‚RU™þph# Ù}é s@5âޜҟ*@¾áö˜¬ž^P•%Œþ¤ä@>Ý¢ Ó‚tcò-ßæ?YœV|¯^ãV¯Ÿ^12b/û¨¦y Œ¿rí&™³ dåw^ùãÆnÑ.Æj@9ËPa÷Û ò‚õ­mù0ádUûÙÚZ··ökvƒ²~N`Èí:P¼¶»RR»¤Ã:ôo™«Aq4óØ‘ÏBøñÚ«çÆ„˜ß¾7vT)@ñÅõ–µ`Bî’M›¦‰éºr7múy"ü“ï©å ÝŒ_ˆÒ¬¾šT‘f•}׈ÒzáÄÂ>M Ùw§ñ2(|"ê;q_PÌ øµó%nÏÞjO< ÒïötÏ—î ìÝ\w`D\d X×ÝçG7¯çrI¼ùÚÏ5€d÷ôÆNÁ ¾Tc=ïƒìÄ»¾Ö°é€wM~x< !¥¹¦]9©âŒfêGìL¶kHÀP jÆl”Jã$îL;œ•–>‘!Ç1äx†<‰!OfÈSòë ù †<•Ö) ÇümNîMdwãØÝxvw»ë0¡PN& p²¤´ÓXuu¢þó߬‚¨é}#õ‹~<ÛP”HƲ5ê®xˆ:ÔÙ¬®äfxåÃø6PÞ 2LÅ P¦VV-ï׃ìxrRâ¼tˆIµµÞäÃxÉáSM }ç\éÛëº`lòSO¯ ¢×]ëè¯Ëy냫È@þ×òÖ³Ýg@Õ¸ÆÞµ4¨’¯O.¹ÔBå\^ÝOqVõm@ž-Eªð‹9_mNqgACÖ•vë?•Êâ•­5õ o,› 6Ÿù’¨òÜ9æfØìA¦m»wi> »îþžÙT 1xÊ>µz'È·üxJWÖȆ¾&²çÈOtgŸËÝ‘k;G­~µdó‚ªg[Ì4#aìÞv7hægmßÑKÍâ—*A%^Û[ÚÕòyåá ölÙƒMG ýƃ²iï1mI((§ .wÖï©úà™†î"áöÁ‰8Ìþ$»±«§5³àÎêéYZCbµZ½‰ª¯9a3â­–…ÒGðø´ìhܲ-pc cpD‚Å‚“(‰*ß$(w™S!æ²ÚìoEõËÑ<Œ£Å?шëP6„ÏA+Q"•:zçñÈ!É€B;gG‰ Õa¦$̦'ŒV’²„F/Œe:LoÄÝHèP»Ô帇e~ “¸¦<ÖŽD°ñìiÄö™*Õsaqûì>JA®5it8Cb×7˜ÝYtxÂÊòäq}ö–à¥J›ÖvïìõHü6yXÏáècÚ,¶?ƒŸˆn­ÃíÏŒd/º>ÒHÜúݤÑ9g².˜{A´ ÆVY1ÂhÆ,äc2÷ ¤¦$¤Î|¦d¨3˜KxÜÇE8/=n!Q=é& ¤É›ºTg# ï›ñ “H µ@—ŠR ÜÛÇÃ~WUr¿5¹ÓÁùE:Âh0£¤+Ôƒ¢Dœ0k¨@¸i(ŒØJ`V×c6›Ñ’7H€SB‚=é‘x&+ž4ëBÔEtgñ`/Äè¿W×(›I\›þ/¤Ï¿>ŸÛÚ£Nþ[—ó#Òð¤q%tE‹5& “\|vTŸ‚2¬DñiˆO¦'ÖY*±,ŒXç¡Z˜e±j,+3œ¨A•‹p“1×8žµÎ?zŠÿ 8ó?óûoligoClasses/data/sfsExample.rda0000644000175200017520000000263714710217345017747 0ustar00biocbuildbiocbuild‹íX[hUþv7ÙÝlv7IcµéM{ÃKmJ6É&QQsÅ`ÒÚÖÖ¼­“ÝI²:;³ÌLÚ& à]ôAé‹PÄKE° xÁ‚A¼ôAðEÐAE|QT¼=4~³3Ûîü›í¶´¶ œÍœsþïÿ¿ÿrÎ?»»G¦R±©€ ‚I~†øØäG€£‰#fÍX£•BQSuˆÝxAÑçg”¬=oª&ç­å½%þ Ù&Ų”…ÅVÞÆo'9Ú9ÖyÏç5üFÕƒEÓ¢c NÞÂïW¼Äõ0pˆF;†ù¼¸šìo|Øô4]^^¬9@ù‰;L¬Z¢¯7÷]¿›‰è¶ïÚ(`ð¶| $?c`¾§Í•@ôV`í3@þ& ñ uNsÿ+îe¼ Ð~ò}`üQ óJâøÜ<Ü6>Oû×qPnõcÜשãM =F=´¦žŽ×Ð=€}ø{õ"çM·Qvãï‘óµÀõ/09/Ò×wèÿ rÝ ,ÒŸöŒöëæÞ?äÏõ&(ø9pÕŸäÿ*q$ÐF^f72VÒ‹]?RÇ/ŒcÛAŸFÉ%ö y#n+åžöÒǿҗ[€gù¼ñ-êå~„±Ò^t‚>|DýÐæãäBa86lMýÑÏÛ—?æ:ùG úÉ…`œœØÝA›äûšùcüãP79ÍüÅ~Çù¹þDûœ'™«–íÄöSžùkËQv°¡@?˜ËU” üÀ=òŽ0ÆaÖ@Ò‰Ó5ôõþŽöïclg§#\þ–¼³ôã î±&Ö‘C ebwÒ—<×ÛÐa€ôK5œ¾8ÄZø’ܧQêIåÞ'Üý×£ ¹%V+÷"ðä>`}]¿…<î¥Þ6êgN·E`-׆Èo¯"NX(—§;H”Ž3sãÔ¿‰RDW ªå¹ wh7—÷÷츫«³kÛ ožó®mCb¿ržø”À§>%ðÝß-ðÝß-ð=ß#ð=ß#ð½ß+ð½ß+ðiO |ZàÓß'ð}ß'ð}ß/ðýß/ðý? ð? ð¾Õ­·ÒzÄ*µŒ.ÿ4åŸvû§=þiï™®ù3ß)ΩºQê;Õ ¬­3“ÉjìLûTÓÊz&C¡vOÀ9H!ïÙàÆòIj­X\1¨ë†­ØjÎ19fRDÂJyö*aQ€%„#E%{¿2« +‘¡¼1­Xj Ÿ›÷+æ¤j+¹R· UžtǧÄ2΄5u¿ª•½ –¹zýÓd'&2.®yI0 ;¯†yšLlIèjÕ”iUQ­¬™/ÚôµìKvNÑuU“y3•F Ë1ÇËÎ7ÒU¡h¨ˆ³³ÒèH´”%.|}û}æõ<áDIæ¡ÙÅìðÂá,%Ü¥aC›/”ËÆñÄWV5«1.}®WQ3ªâ¼åùÏQÓRýã“–jrªb/ÅYrN,yéøÓ\Ed™‚ô%ûœ ®ué‚Ùåf|¹Ÿo3öª²M^ÂqïWÞ$Ioí"]%IöÕÌTÝ>ËÛË«SÝtr|prô‚^ §{‡îñJäK7/‘:"‘¬¡ÛìŽuÄí¼­Õ3U¦-Û¬¯,4ojuDšŠóÓ“jn<'_aªø»¦üAn'ç¦Í|.¿¨Øn¨—•Šë†Yf LC«%“(šjÑ4²ªeåõÙB†=Wú±¡b³*ñ•Uq®Y)n¡»o(> êý"\#gÛÈÚÿ©9ÖxLÊ ãâ¿^òþûß¼äU]Å—êîT]6TÔ¥C*æFË·ÖèÊú 9qEŸg¥ú’×à‰vWË–nhuj—ã¹cØ-#wéd 6‰=zqÌmx%Áe)Å -?k ;_ÔJÉ9õåò_í[‹•Ç»€Èz ‚Jé*nñ/,]•ì‚&‹}j»Ï³Û?¾É;ßü¾ï½~ß;ï$Ì/j¨e”%F3¡™ô£®tJ45¡.}¨aA Kõ,µÿ\¦”´>t£§¸Z§úá$®]§{ðØÔÔ—“5!WI‰ûÐ:TÑ\+ȱ+,9¢uRÌTض¥—¬4óçAáÍ@áí¸>í`wÚĈîWOMÊj›:·­ˆ.ó–]gï®Gf¬Ê/Ûî÷›žSg²ìÙÀ›'éàRY;Èþñ:éZ@“ó½žnI‹ÙW~(,ôÊ¥”vß=À/ ²°ùù(ð>Ü“Å*Üܾu¢Od»€w*ìôÉM1àt¦ðAõàpýñ°¤.›¼¿?œ%_p <¢âV®m XÃý–б׋Ñ/~>hðgÅ»€•ÇwÞ];¿4`¿˜±uh+`|å­³1­€Œ¶9ð¬ôðú8Õ+L€ìäü}ý{À͉جñ©î?ö6FswPö®=š—[ ‚O•æ KÁ¹ñºcÙrðã‘“ÀÉú´êÒsÀþêÉ:Rq¸KªÓ?[؃‚¤Í.lªk?:ÐK/|‰zúÓÌK?4^Aé|MC®#O»[N%ÝÕN‘Wðy¢: §;S¿ÝÜŸ"Ñ´âðûåàdÙ(ú›ƒðçæe]Ê/´4ÃÃZVh\ gYÔc`z2`âWw[Õv7°Ý-7ÂÎíWEà/¯€n8^ŸQXfë9²ù$ g#ª£2½ ÞaÞˉ´Ú5Qyé8ïÁû¯Z잓™õûÅY °^ð(½¡ÐÈeNÓönäÅÊS)¦îÀ?·ÿtlšðG3îÕí®WÁåâÆÔNæ14=3²¯æŸV=•Fçk{nŸ¸Ê¤ìÂ= å6àÖYn<æ\±·3¢Ð’£Õ76ާÈ\lûŽæWzÏY)çH›”wSáF†ß>.+‚Ç*V/Ž )úv5x· lZyx6¼ñù À¾Ve¾µj 8+Ž“8É€]xyõ©Çh@´o;X[Èáà€ƒ§›€0e¢¥»°™W†EÆ­—<ÚyñÂtÒÌ2_X, Ø\¹ó½س£ÊŸzîsÑ0Þ °¼%’pŠ VÙö˜pÇÔ¶ý;D‚/sq^Œ=p?¿¤f‡$Ã×y»- m׆*³vÈäñ`1P);ýä0%ðª–>tûŽ _ï‹·{ð¤‘ä¡’y€]~–¶w&Ðý함ä ;Ÿï­¿ÐЕgöO±ò…FXÃ$cIFî~È,Vmü„U·›å+jþdŸUµ¯*y £Æ…ŠÒ¿‚ÃbØ Ìõaà_4-_»ôŸàuïú‚òTà©«Yr`×—ÐâÖ7¿õî„Ü›àâ AÖ´DòÁ_jl£©³¾ôx–™«ðNÒDGàÄŒœÖÒ^¼-•AÄðóÀÅóW¡›7‚»MÞ)“Ïj_sgÕ A6rL ÖÇy¶"±¶©&ÜgNÿþŒ9p“û,*Ùa:~Óš|p=¼cÈÓp‰}×îC±FƒßÚ: YqÑû'r) ?ï˜ñ µ}=°6æâ%ÊR@'Jnžõ/nkCàüá1à뿺&ù1 ÿ íë÷ÀžâUxЬÄ,á¢àW— ÿ‚:}ù»—'¥Ÿ´z¶lqtàú·•mµó$ïqZBæàÝ”[qhõBo¹jr+øN°âàÇ'À¹‰ïhÃ٠ب{!çüôÈ>ÃaØK*“¹¢£—ìÞhÚ¸ÅÆŠ¤T·9•P©% yl,²Ó´Á£ëdí -ftõ2,½I[o¹\Aâ$!Öª¯¢ ÆË:Rñ×_f®3@m6S⢙x"a¤ÅÌG¢ˆÇÕÄ|¶š«B¨£'îè _9ÄzíSc´#KŠÇR?B-RI”$e‰qUŠ7}‡uYod©Uê–Ðéx7ËLõL26å­vÔ"X]ˆwO#CŸ©~5X–.Ÿ»Ž’UçšP]8´SÖS¾ i²¬+‹ZO ²üFrô3ö¹·'8™¬" im¥é½ÝÿF›ºYoÄÑ·´¹¿æ·1õ«èÑ¥ÕFóÎHöG×G¶]ú»HÇÔå\Ÿuýtsíús”„J"#ää[2ö g„z‡ø¿S²½®3òN:è/¡±R„ëb&RÈI\DöcRÚ›:s<^Mªzߌž¬’ö±P&LJâ@±ñÛ§›ýU©ëƒÛøq¿¤Ôx•D,™‹“¡îÅ”+T2_**…ôMk¥ŠPª"B­–Èßb(È$Beø°[âõYñk³n‰w½£x.$t6¹FÙL*D 韅ô÷/¤¿ÏÛº[üo½œ_‘†®G­Q–Ñ2˜cè†>¹è†Qý ”1H]éÖÛQ*‰p‚|½®›j³p¹rr¤GÍL…T’¨ðÕö´ñ~Õ‡ÿÖý ¹oligoClasses/inst/0000755000175200017520000000000014710217345015204 5ustar00biocbuildbiocbuildoligoClasses/inst/NEWS.Rd0000644000175200017520000000355214710217345016254 0ustar00biocbuildbiocbuild\name{NEWS} \title{News for Package 'oligoClasses'} \section{Changes in version 1.18}{ \subsection{New class: GenomeAnnotatedDataFrame}{ \itemize{ \item GenomeAnnotatedDataFrame extends AnnotatedDataFrame but requires columns 'isSnp', 'chromosome', and 'position'. \item Accessors for the SNP indicator, chromosome, and position are defined for the GenomeAnnotatedDataFrame class \item The assayData elements must all be integers. Copy number or relative copy number should be multipled by 100 and stored as an integer. Use integerMatrix(x, 100), where x is a matrix of copy number on the original scale. B allele frequencies should be multipled by 1000 and saved as an integer. Use integerMatrix(b, 1000), where 'b' is a matrix of B allele frequencies. \item The featureData in these classes should have the class "GenomeAnnotatedDataFrame". } } } \section{Changes in version 1.14}{ \subsection{NEW FEATURES}{ \itemize{ \item ocSamples() and ocProbesets() propagate the value they are set to to a cluster (if the cluster is set); } } } \section{Changes in version 1.9}{ \subsection{USER VISIBLE CHANGES}{ \itemize{ \item Major refactoring of classes used by SNP/CNP algorithms. \enumerate{ \item New class: CNSet, AlleleSet, SnpSuperSet \item Removed classes: Snp*QSet, Snp*CallSet, Snp*CallSetPlus \item Genotyping algorithms will use SnpSet instead of SnpCallSet } \item Replaced thetaA, thetaB, senseThetaA, antisenseThetaA, senseThetaB and antisenseThetaB methods by allele. \item Exported DBPDInfo, ExpressionPDInfo, FeatureSet, TilingPDInfo \item Added ff utilities used by both oligo and crlmm packages } } \subsection{NEW FEATURES}{ \itemize{ \item bothStrands() methods for AlleleSet and SnpFeatureSet. } } } oligoClasses/inst/extdata/0000755000175200017520000000000014710217345016636 5ustar00biocbuildbiocbuildoligoClasses/inst/extdata/gap_hg18.rda0000644000175200017520000000153614710217345020731 0ustar00biocbuildbiocbuild‹‹àb```b`â’Ì ŒÌ’ ,L@1FN ÍQœZ˜—˜›ZŒEŽ­,1§(ÃÀÌ äI€e@¦€˜ˆYAª€˜dƒtläb éãb õ @,ÄB@, Ä"@, Äb@,1ÕöœÔ²Ôœb¨N ¨(KrF‘!Û‰mŒÄ6Ab›"±ÍØæHl $¶%”Í ²Ë™cˆÌ1Bæ#sL9¦È3dŽ92Ç™ƒì#d!»ÀÙóHìH´ dMÎI,†…$<|Ó“Kò‹€¬hÊÙsRóÒK2Š¡‹xbëùSsRsSóJ|SKSK‘ÝÌèêヮ#¡”² ò,ÿ‰ÙÇÌA9©è^-HLÎNLOE vϠļtPÒF±—%æ¥ ² Óh&a„dó¨¡ÌP]ŒÚ0†.Œ¡…p)þ¸aý FDNaбÿ‡°9þíwNtËy¶"‹Y>°—$•ÀR »Å„ÖòogYÓg0}.e:²xss0/sÑg¦yûU˜öß` »ÒË,(<—IÈÌ’á‹ ÃÓÏ /n&0Iص1õÔ2¼úˆqÖ¥4Æ ç72ÌéS`Xóðs4'ÃêòÃè–—g¦”dÀ“¨’#ƒî±ƒ :Š`V x¦E=-dÂÅ¥ËÛ2ˆ\ó¥>Ê¡èãwrD·ÜÏÑ×5üp nhÚ ©,ÀHS™y%©é©EdD"†Hˆ@  XŠû¢ürHqévÖ< $,Ó#¥3„æœÌâp>cBr.’“ÁŽc@¸„ÝÁÌŽ~‘d'Èn·" %ä¥dv`]—™—–F˜ £Õ Õ 0\Ѫ ¾=»Íùª•ßr?Ñ`æN›‘Îu| —þ. ÎòŽí¿¸8bÒR8—Oä`ž²€ýq]ÛÙõ,lá|ž¬¿y³z§–±lb¼ÆÒY²ùìgæ›j˜Î83}³Öà´>}‹¹°{z¶Ë,ŽOÎ,J.ÍIš &ˆD %F/&ÓSóòsa™Tgrþ‚¡Kc/‰‚¡Y{äuBf2¶lH¸”sÇ[Êa7ðýzá oligoClasses/inst/extdata/gap_hg19.rda0000644000175200017520000000145614710217345020733 0ustar00biocbuildbiocbuild‹‹àb```b`â’Ì ŒÌ’ ,L@1FN ÍQœZ˜—˜›ZŒEŽ­,1§(ÃÀÌ äI€e@¦€˜ˆYAª€˜dƒtläb éãb õ @,ÄB@, Ä"@, Äb@,1ÕöœÔ²Ôœb¨N ¨(KrF‘!”Í b sPdŒ9ÆÈdŽ)2Ç ™cŽÌ±@æX"¹Ù#d×!»ÆÈI‹1Û‰mŠÄ6Cb›#±-ØÈΈ@bG¢%krNb1,$áá›–˜\’_dýCSΞ“š—^’Q @XÄÓ£XÏŸš“š›šWâ›Z’˜’X’ˆìfF¿Pt ¹• ”Å‘gùL¬È>fÊIE÷jAbrvbz*Zذ{%楃’>(p0ˆ­¸¤(1/‘e˜þC3 #$s€Ä˜ÿC e†êbÔ†1ta -„KñÇ ëhd0"r PŒý?„ÍñŸh¿s¢[FȳEYÌòµ¸$±¨–JØíªO1…ýžÎ,®Ë$|ïÃfdNs`’Ö«d Þráõ+%ÆŠ¹f¬ '¥'Å)2¬±sd8ëÀšòoÓ×W™ŽHp27® c.½¶›iÎÛåL—Žþg®[îÃ0Kï%ºåå™)%ð$ª{ì M1šå~޾®Áˆà‡KpCÓnHeFšÊÌ+IMO-"#ò1DBmÀRÜå—CŠ{L·³æ%a™)!4çd—¸€ó’s‘ €˜ vÂ%üèfvô‹$#8Av»-!/%³ëºÌ¼´|D¸0ÂL­^ȯ^¸€áŠVeðÝv¶å‘˜ÍÁÃiÂþ+ë;Ûݨ0¶466™FÖ¤-Ž,×>œbYëÀÜf3¯îm/óÁL÷ÒÓ™ùn”qŸ*Çr"…ëD —1“5gs:Çΰ2ެ}ß9m0w~GYîÌâøäÌ¢äÒœDP¡ j‚H4 Zbôb2=5/?–éAu&ç º4ö’(š…°g@^wP d&cˆ„K9w¼¥v³F«ôá oligoClasses/inst/extdata/genomeAnnotatedDataFrameExample.rds0000644000175200017520000021161614710217345025550 0ustar00biocbuildbiocbuild‹ìûi8U_ü8üŸ³×pìµÖÎ* J¡¹4‹†Oƒ…Í¥"óPŠP ©Ð,)*• •¤Aƒ i¤L…$¥"„Jÿý½¯ï}]÷ÿ÷è~x?ðàåý^ïuα‡5ìs]؉DÂI8yñ'H¤ ŸD9±&•@ /Fê½ÚÝl½çêu«=WK$@ùÿê’HDà_"X.6èä²ÎiíjÏmîÿ[TtÝäç!V¶tÝæáäé´Íå;ÈÚMîÛœ·yls^ÿü*ä²Úy½Çÿ~øÿ]TغzÍú­³×{¬uwrý¿>æÿÿM¼û6Ãÿçÿï£BN–.®ÿÛûk·®öø?‚üÏÙnp_ý?/—ôüoÿkþçÕÉ1ÿ{zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^½zõêÕ«W¯^ÿß'H$CÆHØwÉ µp‰~ÂG‰þ+]‰Ü"‰9)1p •Œšb%•¹Z2ª&A2z‘¥dôùTÉè‹ý$£ŸŽ“Œ]_&»ådlÛBÉD &128,12&1ÊG£‚ ’ÉÛ:%“=Ó$SÔc%3_Q•df‘ÌLS”Ì*Ÿ-11]$1yR ™mY&™½ÌZ2'F[2§a’dÎÉœžK’¹ï6Iæþþ$™·ô°ä¿èñ’îj’…s=$ çùHο.Y˜}^bvõ”Ä,ËY²xìoÉâÃ$‹/5J–ôË,™n"Š•,™»E²ämˆdIe¸dIÕ<É’†­s…ÍsÅs½Kó%æ#ûĶ^–˜OŸ&1/~&YÚç¼diàhÉr7Éòó±’å5r«_Ñë¼ÄzЉõ!(±Nô“X_ê'2•Ø]Ô—Ø]>*Y9a¢Ä~ L²êÙaÉê…ý%«mÿI6ÜQ—l4Z+ò‘8M9-q*}%qª¼"qê"Ù¹Pâ¼w¹Äår†Ä%ÙL²Í5UâjÛ$q}Ô)qÍé'q+]*qoX ñ 'ñ<Ì$^Ë®J¼·:I¼ì•xR‘øðß›w$¾ÿÞIü¸Û¿A6¿íÞ?ÿ'¢’í î’ór%;NèKvæN’<4’®9(Ù=)F²{ê É%»æK‚Ç´K‚Çn“'‡Hön[/9¶Br J~É”lœ+9¦,9Î%±í}%§êJNÏ”œî*—ÄvJâv/’Ä]å%gNKÎ\>$9+ï'9{#U’ˆIâ_Éù…U’óEA’ ƒ~J.ŽZ/¹ÜGr¹FWrÅ5F’l2_’B¢%);%éã$7¾vK2óC$™M}$YíÝ’Ûnw%Ùš’GoJ9”ä|ä$û‡J^””(<—” ””GJJ#I©×/I©Ÿ¶¤4¨BRFfIÊÔKÊÄqPæzUR®¾QRþüŽè‹¤üÅTIÅcIÅÎIEÐBQœ¤â„…ä­ “¼5M’¼Ý$'y¬)yûé?É;ÉeÉ»%ïF]’¼3Xònì!É»=’wû”%•vI’ÊS/%•·ÎJ*ï•T ·“ThJªF“TU’Tµ–Tý¶–TK"$ÕÛL$ÕQ¢Iu¾š¤ºàœäCß6ɇȒ“%í”|8ƒ$>§H>|y/©•Í’Ôf\‘|5Fòqeäã^mÉ'rPòiÿÉç@^òùbš¤I½ª›ä >+ùâÑ(ù:¿Dòuý9Iƒbº¤á„–ä»]?ÑJISŒ¾¤)Q[ÒÜ™/iÉz!iïçÏ_Õ’6¾[ÒIb% _$m%UDǬ$Š%=‹ä¤ýÁRÉý[ÿ³PðÛ[¥|ú)h%eê§¥Ì|˜”Y—JÙŠ*)»­.í“óFªxf°T%|¦T%"CªRq[ªúi¯T­O¶TMiTMy¾T­ïy©šúK©úkKi¿½¿¤ý¾¦K5³×H5ÿ'Õz&ÕŸ¥ÚÚJRm«Òþ_Kjß•ÚtK:èê[éÐñS¤ÃvÖJ‡íJ“êiiIõ§Jõ —êEʤ#öJG|ï’Žœï*5Д‰þ“ [(*•$iJ 2R¥†’eÒQù'¤£Š;¥£^“Žv蔎^Ý_:zí;éè ¾Ò±oå¥ãÙr¼R1ÇþÌñÏqü Žÿ¢'úÄñm%ß8¾+’#†­ÝÆ‘…a¢"ެÅ¿TŽÄ½àÈ;7Žj¦sTK›£:ÞdÅÑ‘5öç¨OG}wsôè?Ž~@ëkÂ1õ5{'ϱ÷\Êõ‘Máú8çä¯uqòi›8ù[+8¹÷œÂˆxNÁn§PÕSx?_TÈ)4üäC8E¬Ã)üã”– ç”,ü9¥‡3D9å‰&œrZ"§â¨Â©ä÷ãTÞzpª};9UõxNUCŽSu8Õ'9Õß˸¾-K8µÙñœÚ‚NmÑNm·5§Ös’S_áÀ©ú©g]æÔë2¸~Û;¹~QK¸~G£8‘'8ÑRÑ™ÇTüÉj»ÎnÖã¢ÂãDM\ô{Q'3¨ˆ‹©øÎšÎ¥É5YÏ-ŸÏ­XÉûø;a™ÁØß´šÉ\¹Š;ùÁœ;ùíw²!š‹ÍúÎ%p'¸„1¸óÖÜÅí׸˻rW†Ÿæ®X˸äyq\²7å’ëÏqÉ µÜÕèùÜÕš~\Š—r?™Kù1K•dr©â\¿¡}ŸË˜:KäÊe¶ßãn½ˆænµºrYWz¸Û §¹»sw]¹{1ã¸{×]¸Ç¿Îr¹é߸¼a[¹üÑ\¾]<—ßPÎå7=æž(¦p…S¹Â)Üó <÷b€'÷"a÷âM°è÷¢ÃWô“{ñˆ{Ñ=—{iƽÜüŠ{¹•q/o®å^fbîUÈ6îÕ•a\‘yW¬ó™+ÙQÕD,áJ×)p¥-E\ɽe®Ü[Ë8îÝQ[®rÄu®Òë W™•ÆUvÕq•Ý%\Õà¥\Õž1\µÖ®zD ÷~Éîý]®Æù÷!^àj—¯å>.=Â},¼Ì}|º“«‹¼ËÕ½Ôãê5ÏsõŽ?¸úÆ}IUå¾mVçf®a‘ªh9×°ØŠk¸ÝÉ}_œÇ}·’ã¾[âÉU®Ét×4'˜k:{kªÁ5+rÍ:'¸æÚÜ 7D\‹_×r°›kyÚ̵ÔMáZ>ÍçZ§ÞãZDp­»¸Ö\;®µð ÷óû9®Máצòks\õÝÔ]âÚ7ëqí a\Çühî—¤›û5Z‘ûeîÎýòIä:çäsV•\皥\WY×õ[Žû^ÌýþSÃýu’qËÆsÿŒã¸¾€ê•4KØu&À;LÅÈÆ™#<< øû[ÿu9 ¸PãÀ4“Ó{úä @žµy¥±@íÆJ <¨ïÔ÷íêý€ú{Ð/M&²ZeJ@[Ü`µÝÐN9úsŸÀ—$ ³j©ÈèlŸ†!0ÄY éÊC}ÁІéz€a…e`8w çM€ž›avŒŒ½ôŸš O`8]Œ¢.`T†uwõPŒÎxFgÛˆêÁ˜>`ÌÎu`Ìí `ìØÕ`ì80v‚DdÆÎðc—ãç5ƒñ;£-Àè0z ¦üËS%†`ªt˜JÅ|Þ 0Må ˜¶ÆL[;L‹\¦ Ó‘=˜¾x"˜¾t˜Ù.˜QfV/ÆB06Ö³ÒÓÁ¬kÛ€iŸ·Àt¡ ˜šåSç³À4´0­Úf{³½Ç‚Ù1OÁ|ûA`JXÐÿ!X0à7X0|%Xçšgˆ¾‚…ÏLÁ¢¾+Ù,`Vù˜UQÑq°¸",ñðKž/K^œKê߀% º`É÷À܆s¿p`žêÌË‚¥eé`iÇ`Q,>3`9´X7K3X.³¥K«•¢J`¹ÚX®Q–»”e·X¶Q,×íËÃÁòƒóÀò(U°<¦ ,?’¬ €•q°šµXÙé«Õ߀չ`u©Xý¬ÇÍÖ“~k³±ÀzÙRÑ!`< XW¿6çæ›/ZÀæOè<°éQ+ü[mO`«ßl§Ž¶G°=:ØS¶;°[Â;óÉÀÎ: Ø­u=vëÆ» ï`hì‚Ýs`7Ø=4öcžû±Ó€ý¸À~üz`ë$°ÿ­À à°~p”žŽÀñ^p,:‹CÁªÿEÁ*³›`ÕúH°ÊY«.gÕª `õ†)` OÁVÖôyÖ ÝÖ ‹kô5£ìÁ—Ÿ`ç|°ÆëX㳬ñmkþ.½Õµà X»<¬=»¬M*8s°aQ Ø`¶l0ÿ 6Xn­ìÁƦ°ÉKl:ylŠ6¥›~:§¡ù¢¯Ài¸Žh6pZD·Ó: pr‰N'#S;›}ŠÀæã™`‹êQØÒÒ8·y—U}Ë\¢v—/àrä p9n \Nk—’“`›…)Ø•\%W«ô è,píû ¸ªo®&Àuôdàzq5p-xÜä·7Eà6êps¸-YÜ®NnmNÀ­;¸ý©îsª€ûÕÁÀýº3pÏÔî/C€{‰ p¯8<Ðà•€Ç0Uà1Îxœ5%k§¤x*ÏÀsÝGà¹ÕxnÛ<ïÉ€ç« àÙæ <¯Ôtà•s xåÙ¯|ð~xëÞ“.ŸG¿Ï‡ràSû øªg_Ûnàë»øßÓ­À·p%ð}ª|ߊª[ßêdà—sø=©ÛÇLÛçõÛ÷S°CrìXõìðúvøÍ;Â\€ÿQÀ_w ð–%úüΟ~Àÿz ð¿QvÞ; ÌÀÎú‰¢b°kLØ5}"ØeâA@© Ô u‚Àá@ ž9ºŸj Ðsô¾ /$€À+c@àãHXx>UÊ¢ °ë(ؽ8ì¶L»½Aš»@¶ 9· 7T ‚jM@pÀ^¼{-98 ìáW‚= N`ÏôG`³Ø<ìéö{ÇÅ€½ÓÞ‚½+&½+o‹ºÀ^û4°×áØ»ë3ØÐö,{3¢À¾õM`_þR°ïé-úåmû;ç€ðÔ&^rDÀ÷ ©DlN·ÊÀµvp@½pz ä}òp h8Pœ$Ê‘7‹ @¤³]ÖƒÈü6pÐR ,ê‡ À¡R;pØø8ù>¼®¶QêO@tˆÇÅÑâ0pLŽ©+ƒcôÀ±OÁqEWp\ý582ßKÀñpÂËœÈÝNüi'Õ8Ùß œtœÜœœáNîÛ‘÷ÀÉ;Á)I 8eâ N¥O§nÕØ@¬])ˆ×îØO@졇 öL'ˆ=7Ä&iƒØÂBûôЍÄ+ƒÓUÿ¸iZ Îq;ˆ{ñ œá3{ç‚3û_ƒ3ÙGA|éZ_6Äš â›MÀYÕsà¬Æp6à'HXÖ \ÓAâ1gxâ5H<å sœ@â‡`ø±/HüR¨‹6‹ŠÀù•5àüº!àBÿ—à‚ÕNÑ5pÁv*¸›.œ™ .N:.Nq€‹)wÁņ"4g0HJ¹#jI©$åƒK{ Àå¡gÀspe·1Hî;$©É»ÁUð\¸¤ýAÊÜ ÅbHÙù ¤® ©>‡Aê H¹ R3Ž€ÔŽ©¢&Ú™ R»†Ôßbûï<¦´ ¤)Ë4½¦Ÿ ÒR²@Zú$ž§ Ò[ÝÀ5ï1àÚKp­z1¸V«®µE€kàFŸÉ"GpCÙÜX`n:2‡‚ÌegAfœÈÌó·N|YXdÉ\AqY}–ƒ¬7 @VÙepoh2¸§AÔ î­Î÷vL÷{÷æ‚{¬À½ÏQà¾i)¸¿Üϳ÷«‡‚k‚ë xpì4x8kÈrãAî¾M ÷{Èýqä9¨‹f¼üU ¯V ä}ßòë@¾ÕS¿v1Èwkùï‚IO@×CP; –Þ¼8 Þ|:Þ´O%±o@É??Pªú”Ö9€ÒìnPZo ÊÄõ¸¬m(Ÿj ʧåÏ?ò—ÓAyñPþÚ”¿Íå•Ï@…f¨ˆvÇ"@ũԼ?1ÔÈ,@͉Ÿ æÖ)ð!&|8š>OòöÚ=GAíµ(P{³ÔÞ™ j;ÂAí¯ð‘í rÀÇñêàã¡Xðñpø˜˜>68ƒOÃ’À§ÕÆàÓÚ)àÓ~ð)ì(øto:ø<`¨·,õ¯ƒú¯œè øbª¾íß¾Œ þ Áü8hX! 7wƒ†Üûàûià{F øž¹ |ÏZU·€Æio@ãòÝ É„M¯û¦ÏcASýÐ|74皊æüzÐ\p4·}?€hñ½ Zü‚–;m åþÐò0´t×ÖA) Õû.hõq?ŸYŸÅEàgÅaðó­=øY{´±ë ½vhÿd:úW€ŽQ‘ ãåsðkæLðËy°h–(üÊ ¿ê¾_ß¾ƒ_M*àW÷Rеj¬hèZ=t%€®A÷LнªtŸþº³K@÷ƒã ûû|ð{ð&ð{J9ø½îøí¡~ăßámàOàNðçm!øSiþê\oŒ³kAÞkÐ3¡ôLœ z&=«tAÏê Ç¹ô¤,=Ö çÁ ðï¤ üûÝJÌàdi”¼ð„’zu(5²‡Ò˜p(=?Y” ¥7@é(ý饿õD_ ôßjÈ…Ü„Üëûîa …ð_D% úp¢Oë†8ñ2Ä­]ÿ̃²YK ,蔪†rý¡\á(Wvòª#!?’i+!qS†ä± ¤ê±j}†´b9d-åPè_…a³O°Ïâ{°OŠ9ìSo!*ƒòã¡|ÚF(}”9ÊWgAI,T˜þ *æ âg9¨¤•ΧC¥d/¨¬ý*gœƒÊ4¡rí@¨üÓ*w,€*« Jà¨\ UnTB• Uª§@•š±PUHBÕW¡jÇ"Ø7NûÖ§Bµ™ûE PÍd#T›Õæ„êJ%P]y(TW[ ÕÕs¡z¿ÝP}ŒT÷:Õ}.@ußkP}×1¨~ܪ?´ƒþ9P#Àjö͆šê­PsZ(Ôœ5¯ü€šÍ¡æ¨%›µä\DñP«ßv¨¥õjWB­ÂoPÛy ÔŽ×m‚ÚgÃþ3§ÁÖ£á€í§á€Ëº¢R8PÓôýîƒÀQ¢ãp`S;Ô‘9B¥PÇ®êìœuÓà`÷ïppä8´e!ÔÕÛu4¡î÷pX¿08Ì~.æ6sÿ ‡y¼‚Ãï7B½IP¯¢ê½[ õª·Âs‰æÀóºáˆØv8Òü ™˜õKå ~ÙO¨_a õºCýžÏPÿß$h Þ 4>Cíÿ ½4Xk ¼±è%4¨R‡’¡ÁÇ*hð©|= ü áêÇÐ0¾?4¼+ÆW ¢&8ê|3uYGo´‚£_ØÃÑMIpÌ´K¢GpŒ±:c6ޱ ƒcìºá˜»úpìê86ÆŽý¢ Çìãâ&Ãqdp\’w9ŽKVµÃq-ḊËp¼ÊÑ{8Þf¿a1¿±ŽÿÞ '¬Ë€ÖC8Qa!œX“'áhäþ NîS'+?†“WŽ…Sb.Ã)ÇnÀ©êpê¼pªË85` œÚ\§ÕDÁé3þ]‚ÓgYÂéó‚átS8ݹN¯.†3ŒÌàŒW›à̉pæ¤Z8snšHŒ–ƒàÌepfõbhò?Ò…Æ9 и> w8@“‘‘ÐÄü4YzšX4A{Ghr!š$™B“ËK¡I¾4ušMŸ÷…¦ÝEp¶ÒQœCƒáœ=p.§ç*¿† ½'Ã…>gáÂh¸0F fVÀ…o:á·p‘¢2\ä§m׃‹çŒ„KV(Bóø¥Ðü± 4Ï›ÍÿhÁ¥àÒUçàÒØ!piš&\úo9´˜} ZXeC )´è¶Ý…–š ¥öh¹´ Z†¾„–Ç®AË Š¢Ðò¢X¯-†Ë®êÂeÕ·àr]+Q\žt.ÿZ—û—7ï‚ËÛ@+ÉhMæCëqg¡ÍŠŸÐæ'WLJ…+Œ¬D{D)p…u?¸ÂFATW-‡+BOÀûßÀ9OàŠÇ³àŠüÙ¢B¸¢À®hê¶šRh;R"*€¶ës íãTh7C;kh™íšA»7¡Ý‹p¥w3\¾ ®üdWþ] íå×B{µ hßÿ+´_™”k ƒutødÄ9îТ õÒ¡ã„è8©t4µ‡Žs‹¡ã®ÐñÄèxq tLEÐñZ“ Ï) èg }®í€>YÓ¡¯Þ)è»ÍúzÆC?÷ÓÐo—ývç@¿0)ô‹8ýî̇~åE? _îh‘5Ü>h5Ü~{Ü~GK4nÿ¶îèûúkÆB·OÐÿy(ô÷Kÿòxè_9î®'ú \aÀ6WpO‡‡àn÷!pwÖHÑ#´Z€AëÏ K´û9 :ƒÎÛ‹®Šîà›÷é‚Áò 0X±+7Á`ÕlÜwªÈ«yÂ`;#ìp»*‰"`Ê€!r£aÈDUb$Zr†ˆó-d­ Ù” C"ŠžÂˆÜ_÷ŽÕ‚{oÿûbÁ}ñÏa耳0td( ]8Vt†šåÀР)0ôÒ¸_Ñ îWÆ¢÷0¬Ÿ! Ó~ÃN¿‚ag1 »Ü Ã’Saص!0ìún’ ÃËõa¤ÅO¹üŒ´z#¯†‘7âàAõ:xP#Ô\ ’ÁƒC»áA«±ð Í)Q-<èà:šÃƒž¨Jx0Û¬Õ‚‡úî‡Ô^ÁC#ºá!ƒrxhµ¡(Ú’ýt„‡Ú3àáàáÃcáá»7D¥ðpu<üg4Œ¢Ý0J0ƒQ c`Ôà0jØ5­ FÍôQYÉ0ªÀ¨_`´|ŒVPÑÊ?`ô¢6=tŒ>óF_hÑOÊ`ôk7ÝøÆœžc*"aÌÛ9ðÈjxô„Áÿü]<>6_»|…Ç]?Ãã© ðxùÁOÀÿÉÃâ^qbsxâÆQxâÖHxâ©<ñ|8<ñ²žøpž3žë/Š…'ÍZáIóÝðTÓ]xªù;<õ{+Œý²žÖZOÏOÏÞO›§ÁÓ§Â8 #×^ ãº>Ã3êOàƒ ð̪i0>²žÕ[ÏœÏq:¢Ïð‚ðÜ oðܘHxn‚<7u<çc*Ê‚ç’À&„%Äö&˜8¾ &Nˆ‚‰FC`¢ç`x~W¼0"^/ž½/>Q—ÜW R`òU˜ràLý«Óî¼…i÷Á´§Ëaúö)0ýX Lݯ/ƒ×fo‚×ÖL„×v<‡×ÎM‚×ùðºž=¼¾Y^Z ¯Wü€7äìà Æ‰ªà ÁÞ˜óÞð-…7Þ¥‹~ÂŒ…90Ãe4Ìpmƒ~aðæ‚þðf@Ì”÷…™£{`æÝ0óÞ ˜™oÛoMÜo-yÃ[S>À[vð–£.¼µFÌ×À[e#à­Š3ðVíx룼íô ÞöoûWÁÛÅðvI!¼]:ItÞ.ÿo7Êàá?áCïŒJ‡wÆMwæLw Ç»%ðn™>¼[åïÖnƒ÷݃÷rà=Çzxoý+x/h¼·—‡÷Ú’aö¬Í0Ûô ÌŽ] ³óÎÁû‹)¼¿y2¼¿å¼TÞ¿ñÞ¿y ÞÏ=8˜ÂÇg‰ªàƒ“ÅðAœ"|äáC©ðá‚ûðá¢Eð¡Ù:øðÛ8øð× ø(ë+Ìyš sžo€9Íÿ`NÛ?ø8}­è|ü; æî‹†¹ßýaÞ‚Z˜ç}æù.…y‘ 0ïŽØ¾kó^;Á|{æ§=€ù5F¢;°€ lÃÛ§¢JX°µ¸*À‚³J°àQ,È׃O¸Kð‰Üpø$b|rÔª …ªa¡Q,œ,Æ™sa¡‰>,œ;Î ­lEûaáIsXøö=|*”§òøTÑMô>u`ð©çøôœ|šŸ&–À§=·à3•ÅðYß½¢ ðÙ¾åðYØeQ|và|–ºTt >{9>+²€Ï¾™Á¶Á—‹œàËìTøjž›¨¾ú¼±°H|~)Šü‹Äg³`QêCX”¿l†EÍb½ù,Öé‹«6Â×s¶Á×ÿ …¯ž¯Åýçõ–0øÚm|R _‹ßÞ,†o¼¢a‰0–˜•Ã’“U°är ,Éðƒ%_CaÉÏJX:Ø–] Kõ7ÃÒ­~°ô’,M†¥©º°l¢",Û¾ –í̆e_ý`ٷݰ|Á!XÁz`…<…ƒtaÅcX‘5VÜ+‚Ùn°âþÑXñi0|[Û ß6…ï´4à»ê2ø®&VFºÁÊ8Xß+ËÆÀÊÊÙ°ò‡'¬l Uö¹°j[_X噫¼²aµf7¬«MÕºVŸ[ßÏ‹†ïéÂ÷§VÀ÷ñõðýe3X£~Öh¶ÀšY‹áÇ÷àÇ%vð£å2øqóø1¸~ܧ ëx ëuë~º„é°.ÑÖ]N€u¹¬ËÛ…ð“n6ü4büä?ùšÁO•¾ð38?w¨ÁzcXoÿÖ;ô…õŽm°>q7¬Ÿ…êS4`}ÁXÿä¬/¼¿Ì …_ÜgŠÄüÀø%ÖWt ~ɲ‡_ ø•Ì¥À¯ì'üªù~ 1]„_#6Á¯‘Žðë¥[ðkÝZøÍ4~›í¿YæÀ†æk°qù<ؘý6Þ/…OÁ&r 6õ‰‡Mò aS_mÑØ4#6™Ã&»ë°iƒ l #ê€MÒ`ÓÛK°ÙllÞp6;%à _áuFð‡Ëøãñ&ø£)þø9¶Àë°åõ,Ø ´`+¿¶š8ÃVÓfØzã;l} `ë»ñ°µ­¶þ› º?=âáOO]øó ü™*ÖþUÃ6É\ØÆ´`ÛH5Øf°¶Ù¯†mW`ÛSoØö'Zt¶ýµ‡ít0lg7a»ÆIØ®©Ûµ¶‰BEÕ°]{l_Ûò°}årؾV€í/aûvÛwªÃöMØþ´¶×2Øþoì`“`‡FØ¡}v Ø;ž%ÃŽAbÛVv„÷ÀŽˆ.Ø÷v<ц¿”ÁN©ìÓ;Dùf°K5v î‚]ËŠa—øÛ=8v‡gÂî(MØ„`w–;ìþ »ý`÷ßãð·ü"øÛÐþ]G›Ã?sçÀ? m°Geì¹öö¼Ò€ÿtúÜá¿í5ðßqëÿÙ£ÿ’Ê_@Ò#aHZk†¤ è"4d†ÈKô¡¡·2PýAhì „lĺM”èB+ÄÜvè#B»Ÿ!tÆ¡7®•|AXêˆ0·aS3„­ÿC8ÿ7ÂÝ“Ìê’Šd—ú"¹AD\ýAr{~#¹½æˆ2ñÿ6 ²t¢Á×}r±Ýc˼ØíNÄî~F,»±œs¢&Ä^ V¿ ²4$(ˆŒ,°Ü éPÝ÷¨ýÔçÀ8Ôç˜?ês‚¡>)ݨOz%êÓTäµï ùþ™H~7’M@òû­‘üoe¤Àˆ¼B’3R¨Î@ ?â‘BËIÑu¤hÒ„”´"¥ã?‘Rù|Q=R)Y„TWüEª+_ ÕkqHõž+ê;pêkiŒú®àPßm¢8¤¾-©»‰Ñ]õÓxƒúi›¢~‹~£~žµ¨ßçHCq Ò&A†¥€4lrDåHÃv Òÿ‡4®E#7ÙHsÀk¤é§Ž´ÔZ‘VSÒú1ik#íþÎH{ @Ú:ѶŤÿiš!íÑH»ì*ÒþE>¨¿°õ_Ä¡þ›ëPÿmÖ¨ÿ¿h€ô°rœèà< ˆŠ¼1BJ ÑÀ'¿ÑÀ§OÑÀg“ÑÀâ`4°ô-Xñ ÒÏBƒì¢Ð •[РW»Ñ OcEÉh°Çz4øÕ'4øµ<¢¿ ™u ‰ß†.ªBC?@CÌÐÐ6„t¹ÙH·v¦î‚†õ{…† ¬AÃtV¡aC2аñ>hØ©çhØi±ïtœè†KCÃçmEÃoÌ…!½ÙîHÏgÒÛ^ˆFŒ E#ÆÚ¢KýЫ"4Âæ$ñh·¨(vE#­ß¡‘i‘¾jÒ_¸é›]DúÁ0d0|2±¼ß€ ê#ƒ_;‘Aw2샡‚24ÀÈpÃqd¸ç2<Úƒ ã‘áå-hT Q5%šúš7:…F+„¢Ñï¢1¿ÐØè 4ö~"¿Ó¿ÖˆÆ‹ãxü½½h|ö[4AÏM˜`&,Î@ŽÄ¢‰¡™hⵡhÒGk4©¡I?ÚQŸ5ÈhÉYdT؃Œ*f £Ú÷Èèãdôih=š¼õšì2M ®ASº_£©!/ÑÔò4µb•¨MsíBÓrÜдÇþh{ƒf(Ô¢+ôÑ ÛF4ãôi4S±ͬÉFÆ}d,ÖÅqa¼ÅGú£YNñhÖ–eh–ï4kûo4ë`6š•¡L’k‘©|š½ãš²Í~f?9„æÈGsT 9jŸÑœýÑœ‡úhÞyúon8úoáô_å&4Ÿä£ùBš¿ÜKôÍ_y-¡-Z‡ph!W‰òÑB²SÔ‰²´PÉ-KGKëÓ‘…Š.²Ê!KÉ^d9`Zfó-;0-‹ô@ËbN£e׳в{rhù3Ñò—vÈJÛYÕGV?3ЊÆ|dkׄl?lGv#ÑJC´rô(´rLZ9C ­œ¹­ ÑF+÷$¢•aÐÊÃheÉOd?g4²ß5Ù¨Gök‘·9˜i‹ž!‡Å•Èaé ä°Ñ9ö}‚×5 UƒjѪ kÑ*7+´* ¢Uׇ£Õ«¢ÕÇ_£5&Áh­î'´väD´Ö³­ˆD†hÝèch]ºZ÷­­w›‡6ÈßF4þ òhãr€œÊZS¹ Úb‹6‡¶¡-³¿ -vЖt_Q‚è9Úº¸mõ¾‹¶ú´¡­%÷ó·äüý9rQŠýC.c†#—9³D_‹µ ry5¹tˆ±£mÛR‡\´"׃o냋ȵι¶š 7á*r³ŠFn+#÷±‰ÈÝ1y ½„<ž¼@ß ‘'œ€<õî Ïýg„+òÌ•"Ïò4äua,òN™‚|V®F¾^FÈwo&òÝ׊|ŸB¾¿¬‘_R<ò»Y޶[z£íË3Ðöµ;Ñö_<Ú1vÚ1Éí°Ü…v¸g£ñzhG‡üÝú#Räi ò=ù— Fþm»{?´K7íþíZàƒv-Ü„v}úˆ„÷(ଠè®E¿¿£ÀqQ`Ì]X(æ_SPÐø\¡‚Þ.G!Cæ w< ºQØ™'(ìú1¡åƒ"›ÑÁøÙèðˆH5³E­û‡¢6'¡˜¾èÈ4td‹:òj/:†¢c³Ñ±ô@t,ã :öú :>³d=è¤útÊ|:u8ŠšN÷Y…NÿýâØ.·b,ŠûíƒÎŒ=ƒÎ¬±BgÖýBgÖoDg®ÿEñ2Qü6]Q6:+¯‡ÎÞ[†ÎÞß‹ÎæLAç\þ sÛ>£s®}Ñ9·qèÜmMQ:W^νˆF‡‰.£S(Á×%\ãQBU7J|‡›%è¼aºð6]\,.~½†.6Ä£¤Ÿ#Ð¥ËCЕìcèJÎ(YÂDËQ²t!J–«@ÉãBPò}y”ü@I´]½°¥Œ*D)k(Jq.G)Ç^¢”ØS(åŽXËÞ‚RjÍQZß|”¦6¥i¿F×gMA×M&£ëWëÐ …n¸v ž…(ÃUe„Û£Œ‹¯PÆå[(ãûUtÓ² Ýô_ƒ2ý•PfÝf”Ù"A·„AèÖI-tëôetëFYÊJOBY74PÖÍH”•¹eݽ‰nƒ‘è6Yˆn nèÎæíèÎa'tçÌ(toé^toÙ_tÏŽ¢{öÑ=N†î9Ö {«”Pö(»uºÏ½A÷G ûÿy£ûqJè~þWt¿@ST‰À2ô@Û =˜}=˜³Nô=XpXÔ„øz£;žgЃýOЃ°ÛèAølô z3zH+ÑC¯ôÐÛ= -Aá‡GÞ£‡GõУ·{PÎÌX”³$åqA¹+òQnà”ûû&Êý»åIZP§†ò”CQÞRM”çBQÞíá(¯:å+¢üÉsQþá2”ÿþ%*øü=F B}^ @O˼ÑÓrôLË=n†ž‰ÇûlNzæð ½°/D/î>E/åÑ‹ŸÐKS_ô2NŒ·Æ¡—Y/Ñ«ù›Ñ+;CôÊ¢"¨ƒŠ0FErcPQ_T´æ*ªñ@ÅÙ¨øðô:ô*±Jµ× Ò«OPéûm¨ôC=*CWPùá?¨¼ú>ª ½ÓrFï¦Ø£w;Ñ»5SÐ;§oèÝfSô. ½‹»Žª/½BÕWö ê’}è=–Gïe½?éŽÞÇ ÷â=|ïŒÞÿxƒjÆ$£šñ¿QÍ„­¨frªÙ5ÕTh¢š6)ªé8>Œ¯Bµ!Qmø)T›œ†j¯v j~èãØbôqZú8ÝÕÿ„ê¡O蓦ú´{(ú´_}ŠYŽ>½ÒFŸU”Ðçzè›åVÔ`35xÞD Yi¨ávj¸{}Wì¾ÏqC߃3Ð÷C}Ñ÷è!¨QÃ5j¢Æ™Qãò‰¨Ñ&5Ú&¡F;}Ô¸25®š‹ÏġƤ§¨ñz9jÌP@ÕPSÀRÔtc j–,CÍŽŸPóލù€:j>lƒšŸ=AÍÅêèÇ}Š~<ÿýx]†~”lC-róP‹Q jé8ƒZ³ÔÐOÉÔ¦´HŠÚ”ëP›Ê>Ôæ‰P›W9jËÙ‚Ú¾¶¡¶oö¨­A@mß÷¢öá7Qû„"Ô>ϵπÚsPûKu¨Û£ý9¨Ã/ul?‹:Ž\@wÏ¢_߭ЯŽèW·/ꜼuÎ:‹:MµQçýw¨ós1ê¬?:¿}E]:;Ðoë2ôÛÆýÑhFÕ´Ðßà¨gJ5êyÕ¥õ-˜‹ Ûƒþ|ýŽ¡âE •”D/0œýõ£1Œú€ÑÛE>Æ(f$FÇ,E¡½(ÇèKÆË1¶‰ÄØö$Æ+m0ö9…±ï/Œýb¼Óã’ó¢VŒËfb>erNX6a:–µ,ÅrëŽa¹è:,ws#æÕ1±¿É–VLê'`òÍÓ÷°°þüò±°ý)ö@Ügê!ÜG¬õ JÃ}BqŸp,?b5Vx=+M2Ùc¥ÉVr«ÇJ^)Xy\x›¥"Þ»»N;ƒ]§«`·„=H)ö Øcž&öX¢‡=6OÁáùØãcöü뉽´Ža/mìµêöºb‡½UO‰2±·ã#ìív{_?„½Ÿb﫱wÍìÝöûp¢™ØÇdöY|ûXÆ>>IØçÕ;쫲 ûêtbß!s°¯göõÚ}żô!öý}ûÙÇ~+OŠ~c¿@Mì,ÃÛ%Gñö}6x‡TWT‚wÈ.ãÝäñncy$޹`"ŽÈ؈#o´áÈ6o|pÛ |°©>¼q>¼iŽ6ÿ…£-ûáè’U8ºÔG—Ûã˜æ•8¦¥ÇtFˆÒñÑi¢F|lý|ìö|üõW|¼Bÿ€ÿˆÁÇ;ÞâÇïâ“F^ød`>ùq>ùu>µ`>å°ŸZ}ŸZcˆcç[âØÀ÷86àØü]øt¢ŽÃãpõÀgP">³¥ŸÙZ€Ïì~…ÏìéÀñ³ÎàøU=8>î-Ž¿Ù…ÏÆiá³·Cð¹°&|.â>wh?>wã>÷ø#>—ۅϽk?Oℱ³qÂ…ñ8áN:NT£8ÑzâË|ùa|ùñ*|¹¼_Y{_‰hÅWlÃWŽšã+Çœpò2‘Ýzœ¼a1NÞœ“Oªáä[ '—tá«L_ÕÌÇWÁWw!œ¢¿§,Æ)£Ä(®)·ã”zEœÒhŠSºvà”î]8Õ°§žóÀ©â¼O ³ÅiâúYÓÎâ´ä`œ–y§=½pÇiÂpúäÓ8}/Áé±{púÕ38=%§§ãôëÁ8½ø%¾Vè¯ëâëƒÂðõE›D¹øºå^|ÝZßК‹oýÆ7fÄ7ÊGâŒWÏñÍ‘ëðÍÙñMß,|3Æßlëovdã›7ñÍž-8SßgŠ{SfÍNœYë‡3»ôqæŸg8ëÔ|[±ßVÄ·S9|ûc%¾DñøóøÎ¹øNâ6|§=ß}w߃×ÝÁyŽ™8ϵDÔ‰ó<&ˆöâ|ùÕ8ß9ç»ôÃù!«pÁ\ðß+üdü.üÄ¥?9:?ys?)Ù‚Ÿ”V‹Úñ“2CüäÓ<\8§f>ÀOÕ^ág¾_ðó1žøùØiøùûÃøÅ )~u/ ¿jÉÄE³î⢠\yÔÄÅŠ1¸8]¿vůËVá×öøÍòQ¢4\2T—lÛ…K|¶âÒK¸LÃE”€Ë¾Uàò9¸|®¶¨WtŸÅU'®žºWäâêºfü~º5®3×L,Â5‹Ÿá?+ð‡?ÇðÇUüñ…'þX^‰ëpÝü7¸Î,×™[㺥×Ý’áOÞ¥ø“ïüéy*þÔÍãÏšñçþÉøs†-þü( ~Žë%Õ¸>\½ÇõQp}‚5þÚ? d…¿Ž’௮‹rñ×=Ü ”Š¿kúáïë6ãïúàÆ¡q£î3ܘ,‡«úŠRqcÛZÜ” ÁM=ÃDU¸éßÜ<¨ 7˜…›õ%¸ù¾þñå%þñu6n¹<@4·”'à–Îբݸõµþù·i/Ám¿¶ˆŠq[W>nŸ¢ƒ;6Ûà_ÖåøWû\Üé;Kã®n¸Ë¶w]™»>Gá߉øÏu܃uqÏþ‘¸çL9þ7W_&E dÒ˜%¢N™ôhLz,U&=õLÆQ?ÑgQ·ŒK9&ãÒädÜïY2wÉÀÌ2³\‡ “!ãï2d‚eh¾« ­¸!z&C]ßÅ‹œ(“y†ËdîÈdé29´T&·©K&w/L&—sG&×3^&÷/D”&ãm–ño•dD)#ßeäæ"‘ƒŒÔvÉÈ×u2¶æƒŒmh–±j2Vê cÕî2AIQ&Dõ‘ ×ÌeÂóP™üw™üH(“Ÿ¢%“7ž*“7ñ”Éo³’É»&È´~É՟ȇ͔)™O–)Ó»2åôQ2-C™JúW™êÅe2Õ›Ûd}UYßå²¾¯¥2µ#Oej§Úeje 2u÷12õ}™ú¾v™ú C™zÅM™ÆL™L#B"š!ÓÈ)ª—i<Œ”iT$Ê4/ –iæçÉ´xM™–ã`™Öšp™Ö~3™ÖKs™V•iÇ¿–i_$²þ3ÊúÏÖ”õŸwGÖ¿TEôUÖ¿-D6Àdè•lÀ¢²6{eWTÊ®ž.¸+U6p_Šlà™ŽßhÙ ƒá²A_ódƒwž• ÞuJ6xO¾lð‰XÙ­dC¢¼eC~œ” ù5Y6¤sšlè÷4™næb™îd™îÃ.™nŽ(O_¦ûôŸl¸¾µl¸ÓÙð˜Ùðk2=ÝO2½Çge#V^”p0µÊF8Εˆø+qè¾lij]¢3²†ËF*n–Ô"©§&9ú“l䘳²‘ÉFº‰,d#=ÍD/e#ƒ3eú’÷2ý!V2ý¡ñ2ýq¿eúûdú¡‚LÿÙi™þK=™Á¾I2Ã>É2þž2Ëd†/ÊFI¨lÔ`+Ù¨šÙ²Éhˆl²ãfÙäø"Ùä¼Ïr :¢+r &@.a~±\‚ów¹Ä€!r‰a#åÎ_È‘;Ÿ´Aî©—» ¬•»ð Uî⥡rWL—É%Ërå’Ÿí—KþqJ.Å»H.µI–©äîÝ_'w¯KY.êÊeó 岇e‹~Ëe/¼*—½ÒY.Û~‚\öjU¹ì®?r÷wˆÊåXXÊ=š™-÷¨àŠ\Žv¸\ŽNª\ΰ¹£|¹œE_ärV×Êålê+ëçäròRå§M{œž(÷øš¯ÜãÜ+r¹:P.w±‚\î…!r¹—_ÈåÉËåÍÜ%ú)—7{\Þåry)VryÕ åò~Èå5êÉå¼%W0g„\Áñ³r'€\AÕD¹:i»\Sîq¹æÍrÍÛ~É5·‘ûam&÷£ã¼\KÔ¹Ö™ÓäZɵJ“ëèï"÷«:Tî×'-¹®¦rÕ¡Üß~åþþç-÷¯Ÿ1/ñàQë>¯ëÏËíÛÅó›õyþâ2ž6Ÿ'çñÔï#O«xú{)ϸVžlžÅ§ñ¬ü8/4¬çû\˜%ÚÊ÷¹ØŸW8Á+Úc^ñà+^ñ˜Ÿ&¼âÏw¼rŒ¯÷‚W®:ëèOàU 3x•ÑE¼ê ^uæi^Õd¯ºä ¯êšÉ«º}åUàû6òê«ïòê©»xõ4C^=g¯þD«¿×àûí·àû=1á5NŸä5òÎóù¦¼F­®h.¯ùÒƒ×,šÇkë‰ÜxÍš—¼æ‡q¼æ/Èkù_æµ—\àµ]ÆòÚâyiçªðÚyƼv>ⵟ¼ãûOò]åû[ |ÿßùþ×óý3ñý_šðý_ ãû•ð:cð:«,y ëEÝ¼Îæ.^'f.¯“ò˜×yø×éØ*jáuºêøAËOòƒ|òƒíCøÁ'ßñƒoÚðƒoóC-¿óC—¥ñC/Ÿâ‡¾ÉáGÜÚÏëáGwäGŸ•ðc6ÝâÇìLåÇÄ[ñãR>ðãíŽóvtñ+îòFú·x£çx£cμÑ9±ý#ŠŸ¼d?ùØ~ò¯Á¢¹ü.‰ŸBóS&Oå§<6áçÅ…ðóË¢ùë^ñ‹ ãø%CçóæòCyó;³yó{e¼ùÃ+¼…ß]~Ù~Y¾¿ü‘o¥'åm×,âmwþæm›D³x»±Ñ¼ÝÄ>üJµiüÊÕ¼ýŒ]¼ý¶ÞáèyÞáØBÞ!OS´ŽwÈg¼ÃŸ.ÞqâSÞq²-ï¸óŽÇxÇ.ȯ:YɯÊÝįV|À¯ÎÝÀ¯)Z¯”ʯõYͯ͟ȯ}©Î¯­8/ªåסV~LU´”_7Û”_g»Ÿ_w{¿îžXËå×÷Mç×{Úñëþâ×—Åñë+†ðÆOæ7Eò¦æ7L¿Áo8}Xô„ßpî7¿¡ç¿Q5“ßäÀoü5‘ßø»‡ßD6ò›hï´³’w*Êo]ñ†w–ðÎZ‹yçþú¢¼ó Þùï¢Ìoˈá]ÍVò®Ax×?x׃¼ëÅ“¼ëÓ?¼ëÛ±¼ÛõǼ[ñ2Þ­~°È„wû2OT˻ۯàÝ-ywq|»—œåÝK y÷òѼg-Êç=Ð Þ“Ëâ=ÿ;Ê{jòž¡yÏý¼gÄUÞ3æïyá=ïyU‡÷¼]Ï{ÞÌ{~}Î{~‡¼×¶ÞËSž÷Ú^Å{í\À{]Õã½Ró^µ¼×Ç1¼wŠ3ï³öïs´•÷96÷‰µâ}íÍy_kÞ×y8ïëÈûFåò¾Iÿñ¾¯Ûyß·sxß*3~;õä·OÞÂo?Iù¾>üŽ½æ¼¿^_Þþ_Þßö ïïôß©­ÏïÔµçwÖ¦ð; %ˆ²ù-©¢wüΟƒù]ë®ð»‚?ñ»"Œù€ùm|@ã­÷ñ»•ZøÝ…Cø €ù dÅ‘>h°>”àÎ%~æƒÒ5ø ;|ÐÝT>è¡ÀÕÅñAŸ ù`Ù1>Xçƒ7©ðÁþ‘|pö_>D>‘±þȇ¬\ɇøùó!»Wñ!a[ø=#þã÷ÄÌæ÷\âøÐ©ùÐŒ‡|hæz~¿ò~ÿ[->œÍæÃ—<åï¹óÕ§øˆ÷ùþ@ûQ>rÆ>rq,0b °™ãþó–¥ü¡ÕùC[|øC1­ü¡Ó*üaó|”Ê>j4å£Âkù¨Èu|Ô£|Ô³¿|Ô«|ô„h>zÑ3>zÅg>zå]>zM+½þú“ÎÛÈG?ÆÇèÌãc\¼ù˜|LÀþȬfþˆK‚¨‹?WÃ93Š?ªÈóÇÃÌøS‡ ùع±|¬Ã+>öt%¿ITÅÇv™ó§eüéWn¢óüé²þtÍ>Îz/&‹fóg¾_àãÅc9·)ˆOºžOЭâUløÄô»|âÍ|âóY|âßnþ|_ÈŸû?¯ÇŸÏNæ/è'ñž_5ò^QþB©)á­¡Ú¿ða¡Vƒ¿¨µ‘ORÍ_­Á_„¿4u) Lô™¿”Ç_êñæ/«à/ï$:Å_Þ{†¿³ž¿œ´¿\>žOžµOHå“Åù”|0A”'úÇ'_Ã'߸Ä'šÉ_uÉ_]·ƒ¿zOUçٶóiñûø´óSøôyA|ºc-Ÿîq”O?`È_[ûš¿´_”À_;û¿öO¿±¾”¿Q½Š¿ñþ'Ÿ_ñºùŒð|ÆJ>ã¥"3¤š¿¹G*ºÍßÜûž¿y™¿y8ATÉgúÄð™;Fò™i=|fúEþ–ì8Ë?¿•éÂß*ÌgEóY·Ÿõ܈¿-¿‰¿­~‡¿¼¿ÖÁß>0¿}d;í!G³Œ¿£u¿Ó8g@+gàdþΑþÎÑ$þα¯üù;_šø; eü]Ûaü]‡þnÐ(þnK ·]¬uç³ðÙ WòÙfê|¶KŸRÄg?mᳫïðÙ5wùì:Ægןæ<ºÇ?È­äm4ç¹+ñv‡ðJ¶ó9#Õùý™|Žÿ>çÌy>§"ŒwоñåüùÇŸgó¿MçsÕÛø\Í…|®öj>wäN>wêi>÷¼ Ÿ{Á‘Ͻ¸\”Åç^¥½ås³ÊøÜY|Þ’s|Þªm|^Ѿ@³š/ëÅŒÓæ ìþñ+Oð7ƒø‚¬HþÉáhþIÒ}þIr!ÿ$UÂ?¹#ºÉjªñ…)3ù§Š”ª®Á?õÈáŸmŒâŸì㟛>}çŸÏ~Á?Ÿ»œ¹c)ÿ2:ÿjO ÿ*êÿªj+_/ñE A|ѾèÚx¾èæE¾X.Š/¶+ã‹üùâÍJ|±û6¾Ø/Ž/ŽØÇ*å‹Óò¯G3þµ™1ÿúûWþMÜ^þM[!ÿ¦ó_Buù’Ÿ†|I›ƒ(”/i¿È—j¬àKMsøÒoæ|iÓy¾Œ‡|±áËüù²ø²ør‹õ|ùª×|ùjÆ—_såËo©ðåY|¹¸ž•wìâËóå«ùòßA|ù¿ï|'ÏWìÅWŸÆWT çßqäßêoâßýÇ¿ÝÍ¿S_Ä¿óVàßÉóïö¾áß…)òï"—òïžs|峇|ei<_%;ÅWÉ1¾Ê1’¯ZUÆW=}ËW=×竺ßóÕzùjC¾zjÿÞx‚¨‡?{!_3Á“¯Õ æk×~àkýOò .ò §ðŸo}å?ߎâ??êËîxÍ×Ç àëÏlå¿lÊ㿸㿴o῞<É}Í-Qä¿RþÛ"'þÛâü·¯ûù†5Ê|£±ßhÚŸo´K}â!ßx,“oR-à›ôûñMkõù¦Ý/E_ù¦Ó=|SÜ|¾y¦ßl•Î7{+ñ;Oùf¿£|sHßÜËÿ0´àì_ÊÿÈÉÿ(šÆÿ( â[ïIøÖwÛøÖ/ÅüOÕ&þ§÷þçŽ{|Ûþ¾-l/ßn>DTÏ·ïÊäÛ´øŽ+|‡¸Ÿu„gó‡Öò±b~ÑH´”ÿ5ëÿkölþ×ÞQß9¨”ïÚÈw%ñÝãÊùîñV|·Ã3¾{•ÿÛó¿3Oó¿›ëù? ýø?‹jø?KÞŠþðÌÇò—Ÿåÿ&&ˆjøž­ü?oÂÿÛ ø×[ø7ÌøãEó‰är(‘\#’Î+DjñH¿ì%Ò wdáJF®Å…p­OØN ¦óæØÐNðß¡D–¶…Èÿ rn‹Šˆ\l:‘;ÓLäÊâ ¯¹ðn§_t…ç›ñ0›u„­yJØáß„%švá"aÉM„]o'ì½k?öí0aßa&ˆ"{"¾!ÂÜ>DðúMß~DÎ#Â^W"ì;A„+ë‰ÐTNúHUH^ôÑûCúèŸ&}|F’>ÛˆÂÑýDáæZ¢©@²Þ…|%¢¸N‡(nÜLÏ®í"Š7bˆb&Š·VÅ"(©L#J}3‰ÒТ4ï!QòŽ!J~KˆÒŽ:¢´ÿQ ßG”² ‰ÒD9ù&Q~\I”óü‰r%Q~ñ‡(w"¢"Œ%*J˜¨¨„Õ¥DEc6ÕOôŒ {ö€ {±¹­œK†xO†#º%zK†D†¯˜O†ïùD†Õ=£;DÏC‡ŒxnIF|çɈ?ÉÈãÈH[@F>Môw!¢Dƒè—ž"ú]׈Áê±ÄðÊb˜¼^/$†ª¢»Ä0s(1¼­N .&†5È(Å2JYJF©D’Qjd”º.Õï=tmëDÆŠãdlw §ÐIÆ©‘qkšÉ¸¿jdüŒSd¼q.™0d3™XØL2B&}°#“ þ‘Éó/“É&‘ɇߑ)*‰dªÆ2mX™fðLG¦]C¦¥Ý$ÓÒuÈ´üdúx%2½`™!YOfØÄ’áqd¦É82óÈ[b|è<1ŽV"³vh…AÄĪ?19{Cô‡˜äO!&O)1©¸NL‡SÛ"bºÒI”@L]ÎÓÒ.bÚ&ºBL›VÙÚÚdöêÃdŽÚJ2g¾5™³Æ”̉þJæf&q0÷%ŽÊ/ɪÕMd Ó#kó^“uôYdCÖíË#ë®>"ëÚÏukɺ®¥dý^M²~¿ YŸfGÖ?h F9‘BÙhC6úÞ%ý6§ÚÄ©¤™lFdsçT²åÄâl6Š8»ž&Îa±Ä¥½(ƒ¸¸¾%.gçWG\­ôD›‰«u q9ޏY˜·ZÑ'âösq¿êLܯw÷“ˆû­<âþâqù€¸—ëˆr‰:O< /yWˆÇÆ6â±)€xlµ‰ííÄÃÿñØYE<ìˆÇ=%âQœF<>û/FÄÓô/ñlÛM¼ô~/KMâUæ#ºF¼Ê'¯ ±Võ—xs†Ä{±»è(ñ¶ØE¼WŸ%Þ))Äûú+Ⳏø\ñ$¾.ˆï¶1Äï€ñ+ÞIüÞ”ñvdG‚ñ›AüÇï&þ·ã‰ÿ!dçcHv”]ú6d—á?²k”=Ù5æ0 x—Gv_=I‚û‘àšé$ä¯ Ù3ÿ$Ù³FJö”\%{*’=ÕCÉžúådÏ7?²·'Ù«“FöêO%{G/&{ÝŒÉ>o²oß{²ïŒ ÕJBt‘Ðã< MœAB¯Î&û}|ÉþDw²¿§‘„…Z“°°•$ìÉd. $áRJÂ-RIxÐb±(‰HG4Í$‘#ÂHäbM¹a‰t@"k¢ÉA…äî"‡Ç+Ãùí$ªïZ¥öYôDi:’(í#$Ê*ˆDYoÝ'Q6P´“D­¨ Ñ#’è…™$zs ‰Þò…D‹ëatñ!ãOެºFެ©%Gœ´_ENž2m#§þÙ’Xù5$V1Ä*í'±*2Q"‰½ªLN+!§'öÓYäô§w ŠÄý®!g*jÉ™úxræÛ r¶§•œóCÎyWs~ȹ{³Iâ„C$q’ 2#Ù“ VÉ›.raÅIráš!IÚnG. 'ÉHJ–IyÓ¤Z¯ù“k“‰’l/E’]rŠdWÄ‘ûùµäöQyø_y¸¤ˆ<|>‹ä ÈúýÊȇÕäÃòáS6ùðõ/ùÐlGjÝ?‘ÚØQ"/R›y€Ôfÿ&µ¦‹ÂIí×eäãìò1ÈÔÍÍ}!u yäÓÌäÓó—äËÃäË_gÑWò51—|Æ¿áqäÛ@7Qùf×J¾^@¾]|L¾ý}Lô#HƒÁ+Ò`hLFõ†)¤á¨;i8 IÃÙ1¤A¼ßµZÉ÷¢Æò½Y4®üHš´–‘¦‰v¤©ò iޏO~€äGð+òc5ùñO…´(¸‘–ÒI¤¥l.iyÛ@ZÞçVkÒj7‚´·‘ֈǤõ@"i­KZë‚EIk{ùIÆŠn‘Ÿ“ŸS)ùé·’üLøHÚÖi¶%ÒkKÚ^- mE ¤íµiëáI»—5é8hF:®JHÇõâvòËL™ü²¯$¿¢Åüü:ò+¿žüz7JdG:oM!Ýré¤{½é 'ÝÁV¢«¤{O=éNøtß÷"Ý%¢ò'äwÌòûèmòGSüŽÉŸ;É_°‡üU_Fþw$GN'=}¬H ÒÓ9鱊U‘k}òl ÿ’¦“w·“9×Eß©døL*¥M%ÎC©ô…%åBë(Øþ›ÿãü°¡¦¿ Pî%…üt GߥH®€"3Š 3(rƹDRtÈ‚¢¦&ŠÚ¶QôG¬ÿ}L±^?*»5ˆÊš»¨Ü*Lå‚j©Ür*w÷3•kÝMy6òŠ—(‘Ï¢tmeä&eº ”ÙèQ¶r ey>”•Ϥ‚ê\*|l }dþ¢_´Ê@ÚÇ ö¹|‰ö¹²ŠöIýFûÜË¥ò°¯(Ê£Tžî òòTþôk*_ÑDåßA*ßäHdÍTÁ÷ UHË¢ ×·ˆª©ÂMªðÀ†*Â%T±©€*i|¥JSš©Ò•Vª”¨òünª¼ÁœªüúEUÁuÚWΕªMò¦j7wRµÌrªv;‰ªÝi jfTí©„ªoFÕDÆ´ŸÁ]Úï±9íWêAûUìõP ª1d*Õ˜PI5L^SC§©Æá™¢TãĪqÒ”j”£š:?¨¦¡2Õl,¡ší…T³ëÕVv¡Ú*¨¶úTªÝOjkN£ÚZnTÛ´jÏ^O˜šÒ³‹é€¹›é€ÿ¼é€ù1tÀ±gt`Ï4ª3lÕ¾‹ê˜L¥:«S¨Žû ªã›@uöÞ¥:q3¨Î[_ªSYBuªÄXíB…åÓAét°û^:§CdtˆÊ`:Dÿ’þš©;!*¤Cg§C]ÆÑ¡OÞRÝçc©î ŽêŸ£º•©nÕYªûá%ÕýE‡…Óa/Ña¯‰ÒaŸÕé°o›ép5;Ñ;:üx ~ï w ªGgP½†TÏP½w¨Þg+:b×w:".›Ž4µÓ‘ÿUБ –Ò‘¾áT?ô!5iPƒ9㩃;5N¦¨ÁÁjp(þÖ]¦†Õè(n3âé¨ Á¢tQ+µö&%ÞƒQ¡ttÁT:ºÐÑÏŸÒѯFÑÑEÇèèâttÓI:º§‚Ž~™Ž1[KÇ,"*§c–N¢clòéÛ«tŒGÇ8hÑ1‘&t¬j&«®AÇÎN§cË·ÓqJÆtÜçB:¾ö&0Õ€N8©'r§N•Ñ í»é„Žùtâ:Ñùè>Wô‚NôH¢·gÒ‰;uè$t‰Nš=‰NÊO'u.¤F¾ÓD+èd°•NJ§ÝO§Î( SM•èÔ’:Í®œNË;C§å¥ÓÚžÓi3è´ž=tºB Þ/€N×xHg™¾ ³DP9jÂÿ¢&$•šPj²RÓ¨vjzd65M–ŠæÓÙ'•蜛éœ}GèÜiÖt®ý}:o¾2gÕEçí«¤óBµé¼!táaOº°Îˆ.×N?N-C™ï§‹lêé¢MUtÑãxº¨à(]ToG}±¥‹¾o¡f£7S³ÿZ¨ÙªÔ,ÿ=]Œýèbõ`º¸ ]¢eG—è]¥K.«Ò%µ é’/S©¹ë*j~IBÍï| æÙqti-ºtñj4E—¨…’2µð–£§Œ¨åàÍ¢¯ÔrÈsjyP•Z~^J—Óe£'Òe>¾tÙ£ßtYîjº\é!]>GŸ.OF—Wºüã,jÝ7‡Z«=¢ÖWSëרuñ{€zŸ[B½/ùPïë2ê}[‹ú¸¿¡>^©¯¶h-õ9eC}ŽQŸ¤¥ÔW{ õõð¥¾>«¨ï‹õÔO3‘úiUR?ŸËÔÏ/’úíh¤~þ/©_ä#ê×¼‰n×øC·O´£Û'¯£Û§ô§Û§Ï¥Û5évÓ&ºý¿ctûêßtûš(º}­.ݾ^‘nwKw”DPTê?åõ²¦þç%Ôÿ2¥;g™Ònt§‡—¨ƒîLJw~j¡;ëé®íóè®ÛQtWÃ?0ô 0H¢£ŠhÀèp°È‡„¯ÕÓ€È4à¥÷iÀ×8ФJ¯ÿ¦A+Ñ •{hðÌ4xÎtrh Ýçs•îÛI辺ïÝ—?î{Õî+Љ}%ÿÑ}¥+è¾2cº¯­‡îk¥¡ÜrŠGÐP¹ƒ¢ó4T?¡ ˆ†fn§û ÷Ò°µ•4lÓiæ~ކݤa‰ÿÑpõ+4\#††¯@Ã#&‹âixäQ=‘†Ÿ=IÃÒð·+høÏI4Âш‰ÃhĤDáòFx£A§iD°=°o h*=p(˜ˆZAĦâÚèé[e4’M#Éq©ÅÑÈêô`Ázð…=d4™ .£‡=¤‡,¡‡e9ôðùôð?z8¹=|5¾~˜FH¥Q3ШØ?4š‹¦Ñ·Òiô«/4ú‡2QNcÔvИ-4f©<9´“Ƽ¦15Æ4¦Î’Æ|Ù,úBèÙÒ#N6ôhe;=ZÝI»~¢ÇߨÓã&ôÓ£'tÓƒ†Ð¦WèÉ5ÇéÉ͔ƚ›‰iì†ZëªBcÝrèéUhœ¦"3øGãwÓ¸³ïh\B%=£žKÏ$Nݤñšh¼Ö|QïßMãçì§ñsÏÓø…¹4ÞÙ…ÆgµÒøÛ'iü×Ç¢Ï4þ[8=뽕žÝ1ŒžõO§g¯]§g?fÐs'»è¹'hl£‰2š˜4“&ÖÏ¡<–Ћ¹?h ¥Iü4iØ zIA“^ºÖB/=O§—¯azùúczù†2MiC“G}¢É»Jiòî£4ùŒ-M>KD éÕ¥ ôªÅzuùEzÕñ½ºn=½º-¦HÑð¦È¡)cMI>MSRwД\-š6G‘¦Ð\½!_B3&\¥™’43]ŸfÞȧ™ebüZB3¿éŠ¢h›éýk%ôÁŽãôAÄX‘“(Œ>8ÐBÎ{GÎ÷¥ä¾ÒœZGšÓs™>VúLk¬¤w=£¹ò4×BƒæÚ}¥¹ktiîÚ«4÷ª;ÍͲ½¡yd9ÍÛxŽæùZÓ<ÿï4/”Ò¼ŸZ4E5ÍߨEŸø¿¢O‚zè³ú5ôùùëôùÓúj³"}åRF_í ¢¯ön¦¯^Ž£Ej‰´hÀZ¤kN‹FŸ¡EΓiÑe-¦˜Ë¥ÅJ§hñÔ@ZÕL‹£/ÓâS7DÏiñ‹>ôµ$¾1 oæ†Ò7n´dÑfZb¶‡–„ùÓ’ð,ZªâIKUwÓRõ´Ôí -[8œ–Ù7Ò²Íoi¹e%-?x‹–YI+L'‹6ÓŠMôí wúîØ+ú.q­LÛE«Ö?§ÕfŸiµw$­~êE«£ï·;Ó÷þmô}¼<}ÿ Lô—¾hHkú-¢5ƒhÍZsÎ]ôÖ$:ÓÛüé‡KôÃïWôÃ_+Z+-¢µ ŽÓZq<ÔÖ)Ó3CéÇïUôcãzú±}­SºLëÜæÒºr-ZWQMë¾Ü¢u_/ÒOuÅô³ÎOúyÐyúY¯ž~vøL?¯Ÿ@?GÞ ŸO]¡Ÿc½éç3Kiý"WQ4­;GëOÓú¤Zÿæ ­ÿ—E¿ü·€~m¿F|«iCábú=ïý^ñ†6ê(ÐÆAr¢-´1·6–í¥5}iã?@›Ô·ÓæýGéË4úû›¶ÕÒ–/ÇhK£mi.£­4‹¶ “i«ÇUÚ¨D[¿KEhëï}´ÍÐ6ÿÉ¢hÚ¶_¶Ì í1=´ýÄÚ~:‹vL”ÒŽ…´c×ÚÔJ´£¿FùÑ_£7Ñ_δ³<…v-÷}¥ÝJ´{´=í^¹‰þžr‡þY¦Oÿ\}Dÿ¤‰ñ•¿èœ¨›þyýƒþø‡þ]àD{”lhϼA´çyíéP£ÿ†Ý¤ÿŒÓ«ÌEL¢gÁ¤r{˜Ô.‰qšðØÍÂR†z†1<Ì›aO†Oz1Y©“»Ó—ñéǘü¦)L±Ï>¦èÍ뺘RC¦¬¨È”½K˜Ê!U¦óˆ©±f*_R˜Ê7¦:î#Sñ©Êd}?Ž`êšaL]K…©Û3 ‰;Óx¯Ç4¾dZw2­­?˜Öži‡mgý}ÛXÿˆ:Öÿ@Ó™ÿ‚élÓdƒwX³Á;W²ÁßEßÙõh6D·’ iIbC§ì`CMƱ¡ÿ fC¯í`º|Óµ”2]Û¡lØÖElØî±løk¦g*ezî±}ºÙˆ¿ÿ˜þ±@¦ßiÁ 2™Á-fp{03¸;ˆTª0ƒ˜Áç«ÌÐf3lÝÆFIrÙ¨!bÌŸÂFÜd£gX±qwO±ñ$“×:ÆÆ’± ¿° ÝÇÙ$œË&NeFÉVÌ(u23z7ŽuT³É2M‰ÍdS³©ÝÛÙ4S?6íá6]û›>¹™MߢÆfH&²}«ØÌ¥öÌØ¿†ß}ÏLΟb&%Ì4ÅŽ™/yÀÌãò˜ùïAl©û3¶4ñ³ÔPd–ýg0KÓf™°™-ÿï[~w[^ƘՎ:fõJUtYé0k#f5ÙœßÊl^.g¶«™íÆçÌ.6‹Ùu81».fOƒ˜=+cöÇÞ0û"Êì‹ç3û×ÌBæÐàÅçH™c–è2süõˆ­½•­šíÅVÍ1ck9U¶v÷c¶öK [û}#[o4œmØ¢Å6JÙF°mDélãÔGl£¥Ûx%Žm²Õc›ŽeN³Í˜SÊp¶uý¶õ“"ÛúY‹mý1”mýYÂ\Ömc.?«Ø6ßÑlÛΗlÛÞÓlÛ±*æªÈ\õæ0×=ÓE^Ìuï æúô(s­7bn Ì}´#s»[ô•¹O›ÉÜß a‹ý˜‡Wóx’Ä<>W0¿k˜GÏræiSË<×ø1Ϥ;Ìó:bž7&3Ï æõ1”yµ¾b^mý˜W{:óö‹dÞ¯1ï7&"Q,ó.Ìû³ØþœÄ|0d>ß™OãÌWùóU·d¾ú;˜¯Ï&曯Î|K˜ß ó›mÉü~ŒbÛÍãØöøÿØŽÍŸÙŽ}ŸØŽ›ÿ1]Uæ?b<óûü£™ÿwm¶SKƒí|’í2ßÅv­Ma»R¢Ù®’Õ,ÀК¸æŠšYÀQopBÌ–±€_­,p@* ¨ÅÍYàñ.¶Îf»Mo°Ý+_³ÝöZlwC Z5›/YÁ‚WœeÁñ«Yˆ¶ ±Ž¥°Í{D…,$R“…dla{Á¶¶Ïá/Û縟í[½‰í;úÛw)œíkNfûÚ&²}J,g¡ræ,´Ð™í¿”íßÐÂö;­`ûoز0#o–oËÂmYøÊ,B]‡E¬»Í"ŽU°ˆ“ÛÙÅaì€2cTβýÙѦìÀ¸ÓìÀwIN³Hùø‹4Ïf‘–oØA§Wìà÷ì°ö6vxÿivøÌ&¥ÞÍ¢9•~“E]›Â¢®ç±h«,Zû‹îâCDïXôÃÝ,ºå‹ù²†Å|õ`1M÷ÙÁ˜y½…iýÌŽú*‰v³£~{ÙÑíIì,e§œóÙ©‹“Ù©ä ì´ûIvÚã0‹S aq®GÙ™FEïÝÉâ}!‹ß#Ïâ÷V²øðµ,>YC´MTÁâ/°³G\ØÙ¾ìÜO3–p:—%ò~¢F–HRYâä ,q^ »pi» ®!·Žgߺ³$ëý,©êKªîd—Œd—œž²KLJ³KÙ—ØèÄ®àNv5f »zäK‘V³Sg–¢ÅR²)K…oYzz!»–Öî]³g×Å5ãzCvcë,Óà)»åçÂn.`Yßg²Û~}صòìî0EvwZ?vw¡º(Ý]$'šÏîzس»žƒÙ]ï v÷¤Àî>\Ãî–Š}¥QìÞüv/¤œÝÛ×Êî….d÷.|b÷ Ö³ìö‡ì~þvÿ}!»ßœÍîwÞc÷»¾²3SÙƒÐìÁË)ìAU7{P3Œ=h6c~(°‡3þc72ÑmöHøÇÍm`|aÊÿc9£÷²‹,g¹<˱šÆrÖ\a9ëSYΖ“x”å\Ldg,·PÊrŸ{°ÜæW,ÍcyêãXÞ¼,Q ËÛ¡ËòvŽgyi“D.,/Ý™å‰ã&ïÚI–W©ÈòuDc»X~¼1ËOÊòŸýc—~°‚º]쉳 {’ÖÉž|{Å åóYá±m¬ðб¨™¦Æ±Â·~¬°Æ@äÄ ›¬Ya‹{º5=uQdO÷i°gë3Ù³¢±ìù3+Q;{þ9’=ÿºŽ=ÿ¶‡=oÍ^ЕìE?EÑ.öbÆQ<{)'/r`//²—~–ìÕê+¬Ù±"Ûï¬hm+V¯gÅѬXs.+|‡Ίçé³â¥/Yñ:VìcËŠ÷^=cÅû׳âk+¾‘Áг³âgØë`yöFâÇÞH—‹|DÙì ¶g%ׯ³Ò¾wYéˆ3¬tÅVFÕXYÒKVöÞ•Õôge-ö¬|ÂSöÖ>‰½uºÁ*…e¬êD0«:™Æª‡)°jÛ3¬:LU‡±êɬú~-«n±cï³î³÷6ì}¡«1qa5˜Õ¼›Åj¾ù²›ÆˆŽ³NK؇ÆìC@_VkuŸÕzV²Ú²Ïìc?9öqž9ûø.”}lzÌêç³:§a¢E¬nÇ6Vç?˜Õ%=auÉí¬.{û´t©è ûdÝŸ}Ú:œ}rÝÍ>«1ö¹,‡Õï¿Îê+‚Ù—ù€}‰5f_,c_#=Ù7ÝNöm…9û”ƾçØ·ú¢·ìÛ·ËìÛ÷lö­°o­¿Ø·®÷¬ankXôŒ5±†¸ì{òfÖ8ûkœs‡5šÿc'uXcÛOÖ¤‘Ëš¶.aMk leMAçD÷YS<`M÷#X³š#k6»Èš—d°fK7ÖüךýØiÏ~ì^Î~|ÆZd.¬EnkaëD©¬EØÇZäw°–¡KXË$oÖbôµLöd-3ö° k1u`-Gޱ–£#XË1uÖ’ÀZn~a-™¬ÕÒŒµæØ±ÖÜY¬µ”°ÖЧì§ä&ûÉ岟“ÙÏùáìçBÖ®ë,ÚÍÚ‡dí³°öPQ kß¿—µŸ^ÍÚã‚X{òAÖ~c—HŒI¬½t¸è3ëHñf©z¬ãš%ëÈ`¬£æ%먵eõÿXG³„u´³ŽÖÕ¬£­–uüZ"êf¿Ä}îWÖöë¡ë¼ó…uæ]f]ʬ۸…ýVÎ~»žb¿/g¿_ó"ö»úûÝìÆ~·9³?Ò"ö‡ƒìª±è(û3Ø‚ýI<ÅþäX¢­‚TÞEæxÒÜÇ‚4‡À¾¸Ç'îõ{3Yà¾æ àž³JCtü¶€'b/´ð»"Wf ²åk™m• ‹þ(È.…rÓëÞvÀïIø— ¢fE¾¨¯@„¡ésU òöY+PY½À™À.F ¬8[`¯ÓV’*°ÒÎÙBŸ¨¡OôVA^.ÈË ¹ˆJy!Kï3C÷Mäý òq#ù³wùÄU‚ü] Aþ±« ÿ³UPð ¼ Ù-‚Be¹ Pó@Pø÷ZPëŹ5‚â<,(;/(ž<$(¦o”Šì¥âÅ‚R›© °CPÎ,Tv½T­Ü„¾ú…¾£4E»„¾Ù¶Bߪç‚Zßi‚ÚÆ›‚ZÂ9Q£ –Ô)¨¯tÔí‡ êf‚ú6/¡_Ç ¡_Wƒ 1'JИ»AÔ(hì_&hÄž4Îí4®« šC š±‚fÄ[A3MAв½/hÙÍ´I§ ½DtMèò…þǽ…þg+„þçV ý¿ø?ìÎDAgÙ+a°Z™0xìba°éqaÈê?ÂõL²±]â|P²­B:g‘ÈKÐݶDÐýuJÖ°Y~÷— G7 z#o zû®‹ò…‘#¿ #/¯F¦íF^ÂÈ.3ÑkAŸF ºýã‚Áò•‚u“`°â´`pd¹`ðr“`PºL04Æ‚¡é$Ápö ÁpÞ@a”‚†0Jeœ0ê¿ÏÂh‡MÂèè7ÂèÄÙ¹0aÌ·%ÂØ¸áÂØ3{„±)g„±­òÂ8l&Œ“ Æ) ãÖ]Æ%¨ ãË]„ η„ Û „‰W ç#ab\ƒ0ñR­0±ôº0±m¢0±C]˜dµH˜´"JÔ-LZyE˜äpN˜´Ï\˜zK˜”±X˜”¿ZT#ý7I0²X$YþŒîŸe F. “gž&û즜&Lym%L)ï¦t… S~— S‡¸ So¦æ– S«/ ÓŒ Ó¬0öI˜9{ˆ0s%f:U Æò¾‚±òÁø ŒE Æç& ³ªu©D0Ùè ˜DôLZ3“NcÁtœµ`Z˜,˜>wÝfÏõf¯æ²!ÂÜAÂܳ®ÂÜsIÂÜ ÑÂÜKb­b³0÷Ócažœ£0oêaÞÁ:á?Ö.ü§<\˜?úˆ0Nº0i—0ߟ• ®h ‹&ž‹–$ùŠŠ„¥æÿ‹Ù±‚Å{ÁbéyÁ"|±`Qê'X”¯,Ç,/-,“ï–WëËš×Â2",SÚ&,Û%,»½B°Þ8^´_°‘,lP“`ãã$Øl‚-›?‚íìTÁþÎ[Áá|‘°Jg²°êéPa °æÞaÍýÂZ#=a­U»°.ÿ»°^·NX?,LXÿö±°QUOبæ$lÔû!l4è6N|.l\U(l\ç(l û(lÚç%8y6ª6ÿY#lÙâ"l‰% }¶Zþ¶fé[«vˆRD—™‚‹qªàzåŸàúh‰àš["ú+¸n\vn¦Æ‚›C›à–ôCpzVp7ú ¸OŽ܃~ ¡9‚ç‘"ÁóäÁ³xŽàùZIðy£,ø4üt-„O€°kÚua׆sÂn5ea÷¼$a÷®çÂî¤T!hV§rè°òG*ìQoö\södaïŒsÂÞ —ÂÞðaŸU®šqOÍôB_ê ûGζ,ÂBÏ aû…°0UÑ?!ìÙ:!¬ñž>lž>\KŸ¼Gw^&:/„»D á®B¸ßc!Ü_Ìýÿá;ë…ðà$!<ÄHÏ€¢ïBøÍZ!<ËP¿óN¿k&D(Å ÁBĘõBÄö!b× !" DÔ!Dt½(/Tx ‘W©ÙòLˆlU";† ÿS.|,\d,\rU8.ç¢þº Ñš1Bô¾ïBt˜¡h±Ý-/Dÿ»"S¿,K(œX`$œxÝO8eü]8õ¬I8õÂTˆMvbS„Ø·û„ÓQC„¸Äh!îüM!> ‰#¦ çÍí… ô„paY½pñ¢²p1é—$µ’†+ I©BÒµwBÒÝ\!)»¿p®ìÚ/\ Ø,\Ù-®TýÿÚ{ï¨ý²²¾{šÌ0pE"Í]ÏÞ›ª4¥ ‚€ˆHd@F! b"R„¨h,(¨Ø"Q!4i*"BP©":JQç½¾wXï›Ì÷ó÷kÖÊCÖ‰r|žßsßçì}í«|ËÏßxxþÍïxþÏž{xþçpxÁ­þàð‚Û?øð›ßñ‡ýÇ·^|Ï=¼øÞ?uxñSþñðâ§>ôðâ§½îðâŸ>ïð[ÏüÓÃK/|ûá¥?þðÃK_úìÃKßðàÃKÿøo/ýìo~çw;üÎ^ûð»_¸Éáwÿù¾‡—}ý /»ã^öÓ·?¼ü†ï9¼üÆ_sxù-Î=¼ü67;¼ü.¿søïg\ÿðŠö«‡W\pµÃ+~ýþq½ÿðŠÿzA\/9¼â8¼â…gÅu÷Ã+Ï»øðª èð꯺ÞáÕ×ýžÃ«Ï¹Õá5W}õá5郇ßûý»~xø½=éðÚ_m‡×¾îç¯}ãó¯}Ó:¼öó<¼î¹ÿöðúËžqxý³/<¼þç>~xý;Î9¼áZï?¼á.W8¼áYW<¼áu<¼ñjuxãÕosxã5¾ëðÆk>êðÿ|Ñáú5‡7}ïûozî:¼éo>uxÓG¯×ëoúûSt¹þè379¼ù…·ëçoþüE‡·îpxË—>ñð–+üéá-Wüìá-_~»¸^ׇo¹Ïío»ì_Þv»ÏÞvΩ‡·=íC‡·×gÆõk‡·¿ùwãúüáçÝûðŽÇyxÇ}óá?÷’ÃÿxÒ·þâsÏ;¼û2O>¼û¬7 _ux÷Ýf\çÞ};Þýƒï;¼çËïqxOùÜá=wyêá=w{àá=÷ú‹Ã{>òüÃ{>ùïâzñá½_ó®Ã{¿öÓ‡÷ÞâKï½ëù‡÷Þãá‡÷¾ä‡÷]xÃû¾ï͇÷}ÿwÞ÷š·Þ½÷Þ¿¾.®‡Þÿã79¼ÿ§~èðþ_½úá_ëÃιéáw¹Üá|Àáç?þðGÝýð§ýÂá/?pçïõÎÃoþç‡^ð²Ã¿÷a‡>õëüÙ7þêzçþêÆ×>|è´Ÿ8|è+_zøÐS?øë§œsø›+åÃß\ÿ7ó¾¿:\ô3¿x¸è—¿4®{.ú£'Çõ²ÃßÞù‘‡¿ýµ{.>듇‹¯·ßÿËþÚ÷>|ç>|ñ7>ü‰þî«ÿëáïnôÇq}âðÑûýÌá£o~Ñá£ÿð‡ÝëÇ}ÿÕû³>ö·?|ì 7=üý­þð÷w¼Éáïïüó‡¿îá‡ÿåÏ>~ÑûŸxü3Ÿø¡ÇõÉÃ'ÞúÉÃ'Ÿó ‡Oþá}Ÿú»G>}×>gègιÃá3ÏûÅÃgßÿ踞røì_¾êð¹'=ûð¹|Çásϸðð¹?ÚáóW½ððù¯¾æáóûÔáó?ò]‡Ï¿äC‡üÐmÿø™»¾~öð…;>àð…sntøÂ#âÿÞ[¾ðœ§¾Ïû ¯¹øð…ß»0®ÿvøÂko}ø§q^\ï;üÓ¼ÿáŸ^ð‡záŸþéew9üóö‡þÆÛÄõÀÃ?ÿ»oëE‡¹ê­ÿ²¿øð/ïüÔá’+½ûpÉ­ß{¸äî‡Ã%÷:?®W.¹ï_.ùÖ/;\òu¸äÁ9\rÑc—|ø§—|úâÃ%ŸÿæíÔó…íÔ¯ÿḞ»zï»o§>ò¦Û©ÏzòvêO^};õùOßN»ò/o§]åúÛi_ñ¾í´oyävÚ~u;ýIOÝNÿÏß±þ_·yΓ·3â¦Û™¯¾ÆvækÏÛÎ|Ã+¶³¾ê®ÛÙÿÂv¹¯}çvù§¿c»üÛ^»]þïþ`;¼è®ÛöO‹ë¹Û—¾ú÷·+<ëÛž7¶/{ÉCãúõíŠ~îöåß÷ùíJßðäíÊüþíÊ?öëÛ•üyq½z»ò¹k\ÏÜ®üS[\OŠë×¶+¿õ¬í*åZÛUîý‘í*Ïøªí*/zðv•¿¸×v•OÜ=®lWùäý·¯ø–çn_q‡ËÆõ„í+¯¾oW}Å—lW}Ík·¯:÷EÛÕ®ùÙíj||»Ú‡î×Ããºh»ÚÅk»ÚÇ^»]í]ín´]ý®m»ú=³]ýo²]ý™ŸØ®þægmWë‹¶¯¾ÃËãzËöÕùð¸~~»Æ“¯×…Û5þÛ·o×xés¶küÓöküËÏo×ìÝ®¹¿d»æøé횯ºãvÍ×|åv͸áö5ï|øö5ó‡Û×\tæv­+þÖv­/ÿÎíZ÷ܶk½æÓÛµ>{ÿíÚ×øìvíg?m»ö¯~l»ö¯ýÈvgþ×í:uÃíë®öéíëöïØ®{Ï7n×}ÍS¶ëþál×}Óµ·ë~øO¶ë~ú¶Ûu?{ïíëŸtÕíëŸ|×íú_ùñíúWÿ³íú·¹x»þw^n»þw½o»þÅ—Ùnðµ_×-·<ücÛ þÃ÷m7øl7ø£Çm7øìl7|ÈŸm7|ÙÛ ÿûëãz÷v£›Ýe»Ñ_ßg»ñMß³ÝøŽÿa»ñ]>µÝøþ?µÝø»c»ñùWØnü¼·o7þ‡Wn7þä[¶o¸ëOnßp÷[lßpá¶oøó—oéêuK·=uK·{Ú–îxƒ-ŸñÙ-ŸõÜ-¿å­[9¼s«ÿþ–[ýÁëoõ¢Ëlõ³WÚêç~{kzøÖë…[ŸÛúC_¾õóÞ¾õO|{\ÏÝú§pÛ¿ìâm¿âs¶ýŽOßöçÅõú¯Ûfù¹mÝò:Û:ïVÛú¡Ûnë#§o7ù’Ûnr™km79óYÛMê#¶›´÷n7Ùo×wn7ù–_Únò§ÿv»éõp»éyÚnú˜ßÝnö¥OÝnv…ŸÜn¶ß`»Ù·×v³ýÖvóû=r»ùk´ÝüuwÙnþ‡¿¼Ýü-wÞnþ'Wßnþñ³·›ê[¶[\ý/·[|õÕ¶[|M‰ë…Û-qåí–‡±Ýòž÷Ûnùc¹Ýò#ßµÝòciûƧ½xû¦Ûß4®—mßô[Ønõò›n·zõý¶[½æqÛ­^{ËíÖ7|ØvëÛ~ùvëo½p»õƒ^µÝúÁÏÜný¤+m·þ¡m·9ýÛmθßv›g¿{»Ío`»í.Únûôn·;û×¶Û]þ6Ûí¾ì™qýùv»+ßh»ÝUï³ÝîêW+ÇõÎívwýÛí>³oßrñS¶Û_íúÛíçØn÷km·¿×/l·ÿ¿µÝþ‡n¸ÝþŸÛnÿŸOÝîð°ÞîðŸ¾u»Ã;Þ²ÝáoÞîx£ßÜîx³ow:çÛîrííNw{Øv§ÇŒíN¯ÿàv§¿¿×vçëÜ.®?ßîœçvçx¿w¾ÝÇõ7Ûßõo¶;ÿÙ·s¾î‚íœø¾íœ=};ç#¯ßÎù‡oÛÎùÔ‹¶»|ó7nw¹Ó³¶»î÷ØîvúK¶»ñ„ín_ò®ín—ùüv·³~e»Û]¯¼Ýí¾m»ÛOž·Ýí·ÛÝ>ÿÃÛÝ¿êâíîÏyÝv÷}ãv /»ÝãW.ÞîñÂ+o÷ødü÷O?t»ç=î³Ý󽿷Ýó’ûm÷zúã·{ýä“·{ýÔ{¶{ýÅ»·{½ï¿l÷úÔWn÷þoWÛîý›ïÚîýªó¶{¿æ!Û}þëWl÷ùºÝç…?·ÝçóOÝþí|û·¼évß³?°Ý÷o¸Ý÷C߸}ëS¾t»ß÷f»ÿ·Ýe»ÿ·¿w»ÿó:®ßÜîÿ¾l÷ÿéÛNýží_òWÛ¾ôç·|ß¹ÛÞqÿíÛÞômÛ·ýéOmßöÁ²}Û§º=ðòÏÛ¾ý»¿}û>º=è/ÜüéOn=¼};÷¶¿û#mßýÖßÞÎûÎ{lç=úyÛy?ü°í¼_zÖöˆó?¶=â‚GnxÎomßóoß¾ç OÞ}ÕOm<õÃÛo}ïvÁEÿ}»ào{Ì _¹=æ•·Û{›·m½íU¶ÇþÀ'·ÇþúmýÇn}ÍÙÛ÷^ñfqýÄö½ç¾=îÖß¼=îîñ?ýyÛãbý]ø¨[l~ÏqÝ»ð#7ëéÛ÷½ä¯·ïÿÄÛã¯÷Œíñ¿ûí g>b{ÂYs{ÒÍß²ýàßÝi{ʶ=åW®¸ýÈúÊí×¹ÉöŒ_¼ßöÌwÝbûÑû\cûÑ—~Óö£¯}×öìÿñÌíç~øEÛÏßþ·ç\ø®íÿó_n¿ø“§n¿têiÛ/}íl¿T/»ýÒÅWÞžw¥woÏ{ÐßnÏûÎmÏ{ëó¶_ùôK¶_ûÖço¿öçoÝ~ýg¾ýÆ×±½à®Û^ðàØ^ðïî¾½à%o/|áoo¿ùß¿ýæO}ûöÛ×»ÃöŠúÖí•?þží•?s·¸~y{å³ï»½ê¦ïÝ^uóÙ^õŸ~o{ÕG·½êl¯¾ám·Wà§¶×ÝçáÛëŸñ¤í §üäö†w>z{ãµ^°½ñÎÝÞøOØ~ÿÌ×l¿ÿeß~ÿº—lpÚm¶?|à­¶7=ò÷¶7]|¯ímßð𸞶ýÉýn´½ãΧŸ½=õ«¿ä¶¿ïŒ+ýÎËO¿ÿ7¼í´íÌ×~ÿÇnt™¯ý…3OùÛs®tæç^õCgÿíͯræ½_ûÇ—ûä©g5Ïzùåžõ®yÊïzÕ³ëÍ÷9û¦_öõg\ñ#—\özçÞäÌ×ÜåÏ.ÇkzöÏþÅN»Â½õìÓ¯õÆË}×ûŸq¹W?äÅgßó׿å´ßyù“ÎüÜxù)ûÑÏžö®‹î|ú}ÿ䆗ýä‡^uÚ¿ùæÿxÆ;^úŒËßá í¬×Ýõ‰gÝ÷žqÖÏ=þŒ³îö——?ïãQÓ=àµg<éÁ¿qÚ/|ëþ’Û~××θó—_梧üÍeŸøæ_<<ð™O8|õíŸ}¸ÝO\ë²ÿæF§¾âÎ=ëߟý§½å«>rÆå_tË>ñ¢ÏŸý®¿åYŸû¯žòÝ·ø§ý˳®pÚs~ùCÛ}ÿt;û«Þò¦S¯ô¶^þßþi¿õ“ϺàÑzæÓ>ów‡þÌU.óö—<ôŒß½ïË/÷Ù—=ò”Ó~æÂÃÍË_îƒoú‡Ë>ùkŸsö•.s›³nuíï?ý!ÿò§?ê’7žùm=묻^îM§}é¹>í×oñ§?ûM×¼üó^þ½§^æn¿rÆ'®÷%—ýá÷ÿí©sùï:õÌO¿ôðøë<ïô§ÿñ[.s—ŸýÕË~æM^ö“çÜòrøøóÏxÙgêÜüJ…O9å:9þç©'×Éur\—¾žxÊñ?ÿêŸãä:¹N®“ëä:¹N®“ëä:¹N®“ëä:¹N®“ëä:¹N®“ëä:¹N®“ëä:¹N®“ëä:¹N®“ëäú߯'žrüÏ¿úç8¹N®“ëä:¹N®“뿞ÿŸ®íÏqr\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\ÿ]—û?à3œ\'×Éur\'×ÿo×O9þç_ýsœ\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×Éur\'×ÉurýŸv=ñ”ãþÕ?ÇÉur\'×Éur\'×ÿ%×i'×ÿI×qvIüïWˆëôSÎ8å²ñ?¿äÜ îñÈG}ñ¿œõ¨ó/8÷1çžÿÈ/þ÷³üðGŸÿˆó/8ÿùŸ¿~úý:ù‹?q¸Ç9w}à7Ý(ïcäÑ.usä9W²ŸœmßíæÞšýä^ê*—¾9û¨öë3×y鿾ïs ûÉVú´¿¯TÖ¥?|©} ÿF¥ÚÍßÈn–9‡£µÚ¥?ÒH3-ûëñHÖ´ŸÌs\úŒÔ»}¤}ÖÑí»¯Õn®xvv3Þ’ý¡žRñ·Y[±w_i؇oµg{òmoö:âýîµÛ£‹?eÿfÉ-ùw߇}$=:ÿF)/¿YGö÷Þã[Úònk.{›ñ”|ÍÇoWûš¹µy韹ŒýÒß}ä4|-µ[ξ{›¾z¼ ß2Ó?çHuVûõÕ‡}÷½õºü'iÕÍ´'ÿÉ4üæÞ<äZvÛ©VØq%¶§Ç¥žýߌä«nT[u£G´¨¾¼#^دÇR¶›-Ö2üõb0nfûð#r¿ô_›y\úÄæH#„t{Ž't-­Èuü™b!hï¶L]«ÛóŒ¿ÛJ}Vûœ­N[!£µl+9nVX`ñ‡<ÎÒ`u_Éc¯Ír dq)ÖM·µÔû²U·¯;ÉÃoñ »|CûöaÍX"Ôå+yRðã ÞÑò5?c%Ú™ŠÔ¾ß«?äø@Ý·L-Sט¶ßë^ìEšÙÏ÷9v?¤èuÄéË&ž‡=ñ<›ÍÖ‹‡ %¶¼ã)×»í÷øšv3NânÏ3âš~DÎÖlEÂäJŠÍi?©]l_3²-ûFñèf±¿¾´œ<…‹<È~=¯?ÏØ°¾À"2ùÛÔÞ¶›‘ÅØÍ¾:ì£8w}wDg¯#çbKܰrµ%ÖÒnÏ3Òƒø'ì)åìiaDºjk©ìÉÞ{ü›±cý×—± ýuDþèO©Ç_÷ÅyŒ=–üЛöâô9=Ñ?Éž‡Ê8Îì#EÙ-Ú”xqž¾*†ù¯û‹© ÛGq'A\ªðèšòJØ\¶êâ³Gjç¾Bœ»çÉ%rwHávOxzä^MìçãfóL êÙÙ¿Y ”‘*ÚÍ(üm*5²÷;Û?Räuž®–-ámÏPEêï(ÎwÿH…âü~jGñ“«Ïä+¹ç)ñÞáÔÖ¢÷›ÃÃÅêÍ#íš^ਸƒ,hU?zÒðÌ?Š‘i)œÎ#ßÚ«ìP0ÖR Xâw§‡ÊëÆè"mì$zž~ði»û;*ÕVr{Ãë#eé~ D Li!Tå%%Å‘“Bf5}ÇÕØFë*t9z¼:V ªòR“×29â…·>,m#dèðôLþo./ꇲ–8'¼“ËÓì}xj´jó3ÅÏÚÍHw|1(9±×?è™ÿ^!…Kñàá/ ¿ñŠ×™U »¯Ó£âUOÔº~"D°‚ÏÙ›x-C¿®{²÷²—êyì.bÃB»oBê9ºGÅÞ²'ÏQ ø¯GÊâí”èp”çäµvÎË“¨¨ ÚÄÏú©½{’K÷Ú0R8_uQ$@楥×ïñ‰ðÑÙ¢ëN%£Ÿ›yzŸ!ª3ë­EXéiãfõP?éyH$éÞ³ŠÉOÕÿm"‰¢4Æ£wœvnFa;¼Ò2²{¶Öà0w ‘¶W‹Ÿ{׳÷›Ó+(ÐgHž3Ää}ÚN‰¥¯Ù>Òh«ØReÀq¶ì(5[“×q«MëÏk~äÏ3Ê/êW‚¶OëÉô9{dªÐ>m~”œÇÍ S¡ Cºž¡I’ZóÐâ·¡“Ÿ`»vÏÖÒš>×^ÃûK£Å h&É‘Ñûªëź[‘ehu¦êï(nú&‹v‡®f÷g+þâ"Ù‚Õˆ§Ô¼‚–bíÞ¦è*ý×—wÈ#Jï^EÆén)±ß·(Ë}kÓùÍekIMf›qvx–Þ;´¸{‚ÔâÿѦ«ÃGØj`‰ªÅ3@Í€ì8 #ûõÒý»C‡gÖ s™µvÉ>"Ô#v˜küu€eÖ]üÇ7WÔ ÞˆÇ÷QÇÂvAÁX²åãè±ÁŸ‚LêwhÍå¨"¡*OÞ _æïÂÇš`Ãê úbè;œÃ{•qVOözslLÔG@ËÙ›xQÜ*I‰¿âȽá&4ˆú*^Ç÷ñÜ{‡_}íeµœ/›š»×Úµgh†ïÉbH¼¢æñ3ö6<ÏÐıÃȵ¶ê0B²Ç¥š})ªæòÔ(ªoÑÄ?êë3Êb€åá¹âŠlÑ‘NQ”ûü(û¸$v±G0íbZÞÝH‘ìÙ_–Ø7슧ìÊr|²Â/@AÊîEÓ*0nŽ¨æ¹† ÞŒÔÆ!U=[Gb(ÌûÙ !0aËÄÞ†Nþôt«Ž¶L„OÿFmúøiÒ‡À–ÏÏÝc]ü“™^P4Eè‹c@w„0jߓÛG,:À¾N¨‹{™ŽöÙg¶N ~Lób+™Šå– Ÿ•ìÊ^»¥êºÙ Þ{÷~Ý‘œÄj°Çœ=å_3Þ¦»Q$ºoQyÕ½(ð€‡‹Üt³G‡„Çôª'·©æîí}uÈ=†´xu4÷›¹zá)ñ‚”8C­œ@¥{3G§DZÀH± ö9¦eAP-QHyô®xsúä.>Ÿq×CºŽ#Þ…0<5d€¦š™z‡!ŒÉ3ÿÑ+Ñ—fƒRN¦ôª‰™½¦sÂÛ¼kzH’ËI^=6feo\Çaè'l›ÐKOÅ[4ñ@-¹÷áx›‘é8;>fïpÆÅyäI”PÇJrdc”ø†@¡s92g5áÔäÁ_8úð€§£Ç󥵜,)#à!¬)Ú8šB$FèYA°Š°äA5Ç+ö³cÂ6ìÅ [µ:}%Ï8ô¡O;ŠÜvß?4z´ùšDÑ”Ï~½f Í•êÕDšŽ¢‰u¼<‰*«øFèô“QçC{*ï4ƒ^¶;à¬øA?ã:`9zdA­ñ0D¦ðܦOªtÕ}›º¼?¯ àï½:J6Þ&o\óÖqDAJŸÇ• ‹¶W(p"Ñ„.\+ÄÅè~ô¨ ôcBW3Êb@W rî¯cwLìŽî'WiPÆÏ9*>b·Ÿ†)ñ6eŸËD"ú|ä¯Þg(Ù×;Õ°ê{%U`)F°óXW“O~w`|K`¹vÀUÖƒ5¡§êcˆØÉ©’# &͹¼Ú,Ý·v¬nhâÅOB 7SºöâÓê(0@K:¥jSÀ†ÄÎ2"I ¬Ï>†ÓZžPñ?ãÔKŠnu ôqÎåYú*~¯äc A¼dk èK¤=_ÞC_ònöŒÝé `sþë(Ï 9kôk@®˜:«æ¨¹cãÎ u ýä¹BÍ~H»ÐáÉðŠkRÒ€´°;ÓSßG‘¨Bã:N]/î Øã A3j6oe˜àˆømÉ-پéÝA¤~ R]ÅBô%PvPHh¤oÓaZ­ù¦7 tòwQ¬hŸÆ7‚ó¨CV†gÂVCuæÒ+GH¿G›ì\!`k4àÅ% ©vÕ=ü‡GZÁ’ü';ÞËb<û°»,¬ä‚‹Ø%+9â¥iúæñèñ1)S-©“t$|yÇшA5Dà&p-<ƒ¸{O ž¤¹ ±A'¿€ŽzN^€—Ý‹I…x÷ ªU/Bõœ Ö‘ôJ‚Fœú>TÆ×$5˜ÔáרTÕä°¢Qc)yø”F²7 T-\§ì-y ?ĉê 3ño.øÉáÁ_M‹GZçiáp1EEO$° Ä÷D7•ì8ûÐ-a¢zœ=‚:à~¼âg9|w )ôîºÇ¡§‰4²Š£>"*Â{6—àPO•@õÐÑ$ô9åãØ…©P‚œVÙž‡ßìíèXÝþë"GÇ¡·%ÎwgÈëbCáP ó,ä…N€“ Àj$74ásjüî¯#§#v€v‹bë1YJXhܼ ¯K™D*b tÌÄ€.Üô { €@¸.4ß$ Jl¡ÔG|…LŸ€ÇÍzÉÙ%±€wV#˜ë"ù¦â0l% DÖI´!Ãl—(]œR T,`¦¿PŸ¡/_uQ+{zg±ÿ’@c0òq?"‹:ßpvÀh#R8‚;úÍœ}r't 0gL-wm,hâŃó(V7Ð0MŒ¸Á,Àf‹$é–×ÚCD)_Ÿ.Dk «`ÖÄZ‚‘–ø!ö×I/hf›ŠÞ¾75ð‰ÂêÌÄ•01´)œùu܆p@ƒŒäQ°Òoî> ­Ãa„Òt‚ £Ô}|Ígÿ7ópdcäzË[ÇQðyyÕ¡ÏÍÃ…¼*t$Ò€ѱsmh‘.GD jâ9zjû^3À]8[\¢vÀiŠLJ¶Ýg(…5¢XöÃt% -ÐWŒcÏO„ªD /„’]¤Àéc¬Ùš·µ{'`TI¡ÐßQ”Ð^éGŽO¨ÈCÂè]t(sN} ,´ªMGd {XŠ7%íCý?"5DX ˆD@‡Rhy‹F(ßÔ=·‘âßuÊ.ž´Ž«ó/¥Ø½ËqœÁZ-/¥KÀ ttÊ(¯Ë!ƒT¦#çð¤~ˆ/›ìKQOÒ×b›mÎï¤4aÐI°wVàkGU· bÚ~½%büu`Á¤7¥…è€.XKÇ|˜Íáâ’©8°6 ‰–F=Õ5•4uÑ&AX“4›Çy?;Ô}…L5% ©V ï DíSÊëÚí¾N¿8ø<«LÝ!¢º{¯RthûT‡*E`ñô Þ:Œ°cÕÐÔÅŽz¬%ÀW?ãbyCž§ e€ i?\ÉVX#ÁDÆ:{“è K,Í[€ßCÍUwÇY©åð¼ Ò•`Ó«¢žä.A*êEèfÇ¡­?7uHy…;Æç›’ÇÅ]8¤Da„i‹ÓmâŒ)0e¥€ÿÕî JMê'ƒÎIóXwT^ËR]X€ŸÏ”ðˆçAò#É›cêÂy«:ÐḀgd€@‰íê¶ê˜ò ÛÜÒAÆ|,¢6H‰k¥X'•j_ÞÓ ÄyH¹E#lP±˜•˜ ù|ó¶¹dgü<Š ”ÅsÚ¸IŠ(ÙU€”äCš!™&¶€Ð(€S¢†Ýñšq ©™b¢IJmÞ R ‡”ubþZa +·C/¨y °¥wžU öðÙ„Mþä3ð7ÕZåj§{‡³ž×­LDQ68ð™~ÔɳJ×B”6šÇVv˜MÄ#–,(­ä$/±Š€Ì›Aï"e—^‰@éá7Ö1Aæ!ˆ8aýÔž.ö®¡’‡_‡@vÎ#ö•`ƒ‚ÐæòSæx¤øM’+ày€ÿd!Ä`¤P$žõ‘Œ¼´ ð"R¾}΄âºÎœ’ a7—xUKÖè¢,öºCWŽ|Ø.7Œ†ù(X{ÚÝË ¶a#ÌøM8µ£{¢z³€t¿TN¼šÈ fy;%Î|¢è‚HKï®ó¯ÚÑ}¸&³Z4ÝÁeMj2Çy¼Ýé;N˜=([Ü,>ë?½¸kbÚûÍ ·(È4ÁkC)¢A£BÕ³ºç`;¨mH¸Úåë#,Á{Áœk‚‡Å‘^ówâ4U ÉF^æ«N $?S©B/=ƒ¹X®nŽ#‚¼£øê~H5(ÄRLO Q›{¬è4ó‡¼`) òàÓ©ñŠ0¸W˜àÄ^9iÑì à!ã*¢Ã„±ƒ äç@¨$ghG'òC¡®QTRsÀ‡„ø›2jÑia--(pŠ;:©Öõ®æšŽN%Þ­rPI| >H"†ºÙÄ õŒêäØ2¼@9‰¨HòMÁ•#žAg‹+ IøÅKŒH‰!Kd3A q-7=éÃóOi¬zPÿÀ_‡ÛY‘*6H ÔÅXXJàË£·ÒJ˜ŒLžQ‘&³çÞÖðaMüq’N…vJ&åYÁzz0\e%6—cte” # CdÉ×{Ô½Fˆ ¦Õu‡.œd¢üf,Z_ °o(ÈÒѽä´ª¼ŽËÓ“ÒZßÑe,Ó³}ÍLÏåZIb7ƒ¬\sGш?©ŠŒ§;‘hr= VqµÃÀéu2t­x‡½iÃK+ó+UŸ0 #èèâÈœØÅ.¬‚Ô')§éÀb(îÐ*Cg?I úÞÀI±”}1tPV]ì¨xcÑÒî 7ê]âAà–H ½¬ži]Nñ ^ºïXâsd(<‘dƒ;Ò²³Å£úŸ ‡e‹ü`°O^Ad§£OU^ù>Š›sUÅG¢aþ‘ZÀá\Ùß{,Y¬äÕ@lxžÜë~ïO^ÍBð‚–ÂZ>e]ЗwÚ!ÚÄêöÉHÎT¿wðlXT,«¨ÁŒ/¢7ü› 8f¥ÝQ-[´¸ç$bÎóeY›ùóÌ ™#n P¼Ñ* ky _ìÅò"œjê _ŸÁJ»’¸f‘þ63xÁ4À (£öÑ[D0\”ýf€—H‡ÂÓ˜á½ÊˆŸš94‹0Ò”œøSÚÝ»Y€i"ÓP‰æGÇøëY@(S‡Á´´¼@˜ÝG™bXÀ6\ÐW“°¯@ÈR?(À\ˆµàÉs‰Ê˜‰@*„@Ÿ¶À°f@ª¹wVÇŒn‚Ø{.dì[€aÑw€5xtQ9gDu4„˜‹-- —N:ä4~jn¡¶¹7{¬Zh°ïžÓ‚zN¢Ó¦Jõ¹¹$©r0þ±<½|1À*®¡¿öòüS“ðìÎÀèñäý×+ØfI¬Ø©ì]¸£\´’`ø5V# Ð@L~”ôàÀÞA/Hv½UBÑEÐl,„js'/ÙˆCœ—Œ¥¿w 'Çæ€ØÀ °hóʌڼÍ[RýöC6Y¤}ÊQ`ÙD&Òýê¯Ã¢…¶ÚÉ eC„k•Ðþ!«l±€{¾Wsî`%3ÁþcF8U×ú¦Äóœïk‡­I)T‘…ªžd4oöŒ¾»ü½(î–.0¼ŽRÀ³¦ƒ`ZínÆ*Vqu¸\ð¾g7·=šaä&¶"X™»kŽ¥N² ½‘Q2ØËö¹bDJo FD÷¨ºxú`ù-»]HÝáì( FE%Òtß›ƒ kGј½+€5ÊóP²ù’Óë#ôÉh™þ‡–Û¾¨› TÍêÖfÇš fÝ+Sâàô±Á®ù0|A=Oèb¤áøIm-MPnI;¨çÕ Ž9µîàaQ]¼t?*xúÍê-¶Å *©rËÒäÚX @énu¤<|wÈ?óô`¥‘` !Îu̼lÉ>v<~N“¹VÒÑJ›l_À fº€¼Ädhª‰СcE`ÄD >8OJÆ=€C$ðÎÓøžðŸ~ÂF>Gd¢˜Ý€tîÕѶ$0œÝd€½¸¶O,Îå5‚Ô´¾ä=qÍ Q©'À õzÔ€‘HDÄ[;hGGPó¡íN´ñ´¼:©L×GùòºX ï­uÙQûG‚2°ƒž€¶»Wg)JmFN´¥~é8E†D$MÀ^®Fàï=¶Ãì,©€÷×|Ø °79¡FPN€–. "ÖØÔY©§Z¡´¯‡tžÁ’^âûëâkB×Èï:{þsñ?$Ùò‘{ˆjP?¤â39F"AÆ”d2úKG_Kàk»ó”È}@«Œ4°„£®b0DžzÔ3Îm¿Š»åíý¡æ`ÈiÑ›¤«ÀÕ¨U?Éð“&5I¢ú÷,(7Ÿ™Æ~–A™ ‹Ô °•’#ŒÙg¦5ÒBpBá°ƒx¾¨š0Xi w$û^ºPþ`ÙDU@+&Oc¦ó4WFcJ([:ü¡>ËfA–3P ˆÔ¬ ;HÕ jKŠ©ID{—Œ¨ Ý+V1é}º¯ö4Óá:búào¯¾hc)º¡žÎbPèŠHëýäÝ­¨´É*|W5½_òê®|¥_Ìp ”Þž;êAqQ j® IéšÎ Ô´šÜC ‹RŽå”ÒX`Þ¼oJà e`Tg åU€0XÀG£ŠƒÃ4A-*XÉË–£è ì#à¡TÐÈP ^w’Ãê>‡Èˇ *êIó€(u'Qú²ÓØ'8 •>Òê¬Þã·¡-Ù@uvî."Ã`ãVByU’_^ $&÷‚ª“¸5X!#Y2%€¬â*Êœ5œwÒÝDÍôý|£LQþ<-toñxé ÷+­#¾†$? €ã&xÈG†±=º à" Ïp‹¼u¼ÞÜaj¹*Tg¢M¼y _ÅÈd´]@@ü$©¸¼„xñîVä  ?HF²yV)ÆŸ»ÄyíßLàn“p,¾C¤mñ2I…ò:`a+Oöò?%p9I9A7f÷JÿØæ,œ—²Ce˵“ Hî¬ Ö' b²`EŽ‘H¤doÌCö+[Lؘ‰cDëZ“`Eîl¿ìîŸ":Ñxàyµ¹¸fg^ˆEfå³³ÚAduÏèª<‘!.IÀ/üIq—ñ@<¿EváÝ­Ò‘dƒÈUöDWms²}Zù ù !‡Öˆ+0êô:¦÷iÕ´÷j"ö†oí¨ ó'µÌ¾hþÞ@7»5w:Zm&w0[Fžì‘vM@}”ªÈ_\ª{*€[«¢Ú.ÎD!‡)›ô¬ å5Á•¸5ÖHÜ Àê4aŒg Š|Óá%{„OÀƤ”“ Üãiêk){“d%XÞ½@óa%˜ õ ŽN9O]ŸzQ‰ÁÚ’#!+R8{ЀµÑܸJ”亅‘{–‰¦cÝ#д¥ºK©`é^•Ž=º¨ ½¸^¿+y†žÈLãTÊÖ|ýyÙ‚æì£(v ûê¦3ñ<Ѫ& øDþï$ë"?S_È’Á¸ªuKÃ߆ÍØã¦7I†0b`)ª_qòÀ~_¸¹\!!nºŽ„â<ùròâNÕ*Ðë€0¸vP‡Xä2thüebÁ@-RbPþO@ŠBßÏbÐòÚrZvsúÑGr`d—ˆ»=ùÊÁ@%Õ¨wŸ°òM9‡1´ђw %Ü9ÃñçüÍ8vAŸV$[ÏÒ«[.*1sfM”,®Ÿ,U%/Õ[ð@¼uÝ.ð‘$è烀¹Ãl¢»^Pdø €› \Ìšb±ßÈnÐ9^¦-@=¨ õ±Â‰¢ñÜ“NÌ/?7s‚©¥\ AÒñÁq¬í®)*­$R²õþ§„tü0•Õdþ.atTIôÁæN¬ö(P<†T‡ m1½ë®Rß¿‘ËLc‡ÞXµáÆcTôÜf-(š‹ë ›WËÞËÓƒIª röv 8ûDÆu„%บ­ÄÏ —.g ûœ™:ºú öä'ŸvǾJÊ$MJçæb›Ç¶¹ïŽ k>"-xÒ”•£Œzî“ûîæ¶Ç¡¼Õ¦‘3ˆ¥gÔr5òÖ‡$úMꎙè ¬nÕ³tI!Âü½;s!òd˜„F5Ó–ø˜þoÖB<xGµ{GByÄyp:–›”§Fs€§’¼°½:„%¦´P´J€“e ¯ê¨x„a ]b ¥``8À½»ÑÒñhÉ(ÕWóQû^ݯg—˜¤¸Çt¬:2¶XÞ:V ’¤"-M[Z|x ÖUäE­¤”&äK`+¬6ƒQ±#`Å—úRAþ#?Ö¼·)”I€nò>˜Nm€ÔÑm‹ô“‚[ÛÛæ5¡ñôM'IWC´ôé-£\Gˆ¨"3KrœU_Oîhô™}rcÙ 0VvPì‘Çü$l® d a³! ×x*Ýè§'HSv@y©ïí+¹Âª è§æ­OÀ#*ÂŽÛ›-ˆƒÏ;ZöaM¬º8wËË}vh†7P®ŽTô“Hìªf<³"AènIÞÀÕc8Q´ o¯˜°1qpùRŒmãæ ¥:%N—ˆ‰ø <Ó”ò'Wb°*nd}– R¥DÂ…‰äPNI;À—óv#2Tð?JÍ»Ùñà@,.‚?Ì7á”ì'w§ù‹§"« D,å»âgqæmTÕP¿7zïÝ;'lj¨Ò‘jÍvµ£W¦Í ¯#ŠØÚ”ÿTaOªƒGª Ô|p¦Âšï÷QzJ`aÙÉÚ¬CÌ šcÂ;ú¬§{ª´\%ÛåõÑ3SAåM˜²y¡'|ì´§d–@)ÊÒÇÄ5xCˆ‰ À]T `Š›ì~:¥»Ï 5&^¤‡tBy>ß¡cu‚ì¶ ßޏª“HñÇUûÄdvRÛ¨Îi’X¼b2…obûÛtPÓÑîÜûózA);]æóþŽ¢ $0F;¿îç‘”äfû#ø¨xòÄÏ$Û ö±“å\þ@úôP)ÅrïYãš|ä8¦vŽŸ\ R¥s‚tžIüÙGê­Áp!7@Úçä Q¯H´6W¤,PÜ9)^8Uï‘zOv˜EJ×O'ÍÉÈÆ““p”g_I:•Œ§¥Õuöv4E‚)p”À ¬~LÄŽ«b™aÁ˜l‘o øV× Êÿ]S-ûšÝsoÕ°`÷3È܋׆»:ñÆd²°$®z$Ï@t.3#ðÝZsCª žð0,ò Ø(t§LT°ÀP£bY*)ÀatÈ´:Q`)’\ºJ†€(0m9ò¨}y7 É6p¸¤â {ï"åîGd«ÒuÂ’W&Èz$YÁ;ôTõüS”(@¸°FœïÝÂQ "ßýÏ1 ¬ÞAù5ˆÞâà@Â3üܬÕ'bÒ$ŠÙ¥z:P>ð­ †ÄÏѪ~qµì@ÄSð>XŽ42jè¥Gd ‘kstJJ0]í$àÙ îXxç%99ØÍî|Øc—ŸüoÜØ ­õæu\W3ÝÍwÀƒíǾ9d•À¹[ Ã“ÉÉ+ŽRùÏdêÞâ’($ƒ³µ¢D’ØZðŠAP:>Ð~õ”ýƒ¦¨”êA·p¹n¡™}\Ò²«eªe=å-¯£¥2 Ô@‡¼w G-/Ôxñe3]ð\¿ŽÂ Ð]Â]¨NïýÊ)NÐlÙUÐã书|ô.¢ª&7mÄ—Ø8ˆ³\c¦îŒó–ËuÀ–´’– ¢~ŽrÑ&`|ï”çøœ®Ï #?7ãà%±5€Î°Sëcº‡¯N(šï}T<ƒZ:äªa†RÁd 䆴;@Ô®WèHˆ7ìK áFÙÒ¶´›PÃjöí©BP‘ã„ÇèýNÒ÷T |9ÚÃ& è{‹ tÅâ á¨@–³Lxò‚`jé€.¥[@¢ô@ÓjPª—a<:X!Ù”â¹àŒ@]Gúöá+¨“µê¤cÙ²ûà/Nr'æÌV†²Ä ÌøjsE}ÕúÔaíº yòNß ´p’æ-QÈÀ5@'=8ÎJ&©º º[­6à4 [’,R@BìQnB‰AV°ÃÕÚå#_s<­ä==ØáUHJãÃ{)$6.ÀÞ*l®ˆ53t ùÇɾ KODöI@l\€å‹œ>”½RÓ Pܪºìæt?E=¤§´µƒ7;3Wè/µÝýLõ<3Bµa”  /)цª|÷é@ZPÇÅ’÷Q»¨@Þ/€æM©Ê=±4Ú"‹ÇOëäB¥ÜÁíæì #Iâù-û£‹cË»FªZüÉw°Á•÷ÈÎ,pd5ì åœÄ çl2ÁÉ@JqVÈ.œï‘FÌ ‘¾b´äØê.oqo-‰IÃÍÁµÁÈ ce×H ˜ ÒƒAäè dɱ€§?x.Äb¶¸ÎCûCcÀ¬T=5óéª2M¨€®%B:žÂI“ðÞð9  ¤—lr2ôùQÓl„h@’¸·¸+ÀðÕº±ŸaØÕ?`¢ò€ðë]MiæI0»+oå±–a;HWµå‘A*¾`ÉÔIXø›â,“aäK{.€Wœ Œ©»OppFd@Ü+èì%3ýu@ï¢Õêékë Í{Ôå´·¹Ài.· íÓwŸI)ZÇË=VŽy¿ŽLB¸Ým³äݘ87ýkVЩ ü;â ”²ÑX|҇Q{+àÿÞIFRä{PŒµÌžaà+m¸ ”|æÀMPÆÐ¨ÔŠàìØs‚‘ ú¥ Uy*.‹ úuZ7ÀµcªêÖ¿æ¿´µæ-šAJ#;Ô†Òå€#T€ŽÄpè˜QZXAƒ}F ð{÷U?6Ç<_J âgöm‰„7Z£qùuÝA5±Ã Z•©ß\¨Ûš0©ï ¾”B;øÔ‹²ì!ˆì&{Ù±¼2Ò"œUr“h ¦As,‘m‚Ajl.;Š?O  æ&8§dòÅ(² ò›îr"¦<õÖ`\Lÿ£>òÑ› ²!áñï0²±@‰ªÔG{wcô¼’ª!Ø+´ùR‡ *Jrá!_¶IY¥‹¨k%ÓFh'¯ê'‚Ú)@ñcbÈÆ¨%[}n(·H²›I½à©ã’Bõ±fA¹eæ9¶Pr• íR`£O—V“±ÃcyC œ@n(AT<6È=IÐF[âºûÍï<"Û,P­ßÈaòÁ4vv«Ã`Ed0(–wÏ~Hp)›X_Ž»ˆJ\c øíöìôº#šÌs°Bì<BKe”ê]&E|oq÷¼]ùMx>¿;‘Yð\X„$É0›ˆoq)>œï;XCfgÖbA7ÝêH<³ûõ¨_ï½ïðH¤BaöÚÈœé*@{Äiè@N÷\o 1‘ÄÏ °ÌÈMcÖÁ“®M°X•eCªÊîO~ѸW(6‡OFô<š £"ÉÏq,qã+^¿k6¸µNÄð,­œ&•-ÐŽ–{½¯—9›þ‘´–`8;ˆ×&ô½¥È7кǩémŠÖ¡¥™·OåËæ91&tc⌫ЉJ`Cõ¦€"ÐÂS¢†Æ"ʉœ6Iæä¹3T˜MHÜR8ðX)ñ5=)Í0­Žªø *„0HÕÅoƒÎ^†Ô({Ó^~‘à­³Sð®' ­ ܶ­ÒP‡³ØWñ¡ü¾D]€hÝ­hóú6’c…cT¦#Tº—–¶Œú³ºä¸ªrÐݪ Y‰€ÿué<Áë¨+ê2¡°HpÅ-ØD„›Ð¯‹|!ݪþá÷± 6iDé!Ý×üÑR6,L«ÇÎÄ/ÀÕ§¥äH ðuâ¯û“O~nj†A&h$J©ª÷4o˜ã¨Ï>bÕmždšJ¡Ó=êDÁRL¨É'8¢“_@$Iä›r ÐÈS>9ÎÑ;ºqœy­x½MÐ(hÐtŠƒœ¤«ÜÅì8ð¾ y¥8A¥%ÙSãçÜ`Kî› ¬žˆÎHmx¸¢éQ Þy–h1= ¿” ËqìhXdX ù0ŒÅWŽƒL@à @MÂ[¬`<º;}^Öf•ŒÃm•éˆÞ•q¤F J¥`5ô.J÷骲5H_›w_ÕÕL~÷ùÑQ™„òü„ô$ˆ#Ÿ‡á‚:ïÒ³†é¿G)[z·°4pêšÄúÍኦ‘Q´Í¿‚ò€&î`D;\}üCÐpß>|¶«ÃÔ×|,D/ÙöNôӺ¨H.n.&>,D›î=Uä QÁ ú  –‡1¼âìO~ˆä)” é ZIq¢Bj$þd.³¯SHÇQHyòÜA€NVÜ…–×"r4 öfêÏ‹ÆGDž]¬éÚæG·t/ÙˆnÓ3tž#²@³ƒ¨ˆ¦þ“ $ÇëpF¿L‘|)ÆYêÛ0 ‡;F"mŸÆ++r$öæ &¹Îxþ ߦ]Gñ=ù=øôp’Vü‚o® C^T»%¹†t0+Ÿîí™QöÀÒ;êõ9mÐÌ)Rëô8bêjú‹“Д}÷ZÜßC€eŠr)¨ç5Á)|wH}jsÁÛ\à&0 É߀(r}¥Ò@òòÂa:Ú'âd•;Wkò±£¼›Á¬X0-N]ï  b‡€¦(Œ dätª3ÿ«2§òä Ò+rÍöîkî ¨R ÄH¤ ¦–€UBîµáýxt°µ+ÔG½Žnßݧi¼r0ñÐT,|ê2õ˜/Ë‘\,›HC€àuGœQN š¤#!¼ ´ûÀx¥w÷LÜ••Âh°[ÒöŒzÂü]½9?Š{eŠ6æ^M{ëÀú¬è*VyùŸº£ŽÅñþÒ¤¥XÈÁ­ì4-¾v€"8`d›÷¿f%{U~”‰‚?ä3)òyðïDÒ``ðÊlÓqÔrÒ¥ms‘F ÷ PÏÈýgà¶È¢ä.»W¦‘œÀt ‘u”ü"ÀÈ5Ø…Ì—½ž5ÂÁ ¥ùl7"­W= óÛ<˜¨î@džðá|x!(ý)™µà2`<]@2·A¿N°açkg q‹01ycÔ†ë:”ê”±h¤‚½xåZ‰^„îdh²\‰qÊП§ŽXŠ @î«äJ‡TKÀÅHjzPòi¤`ÐS­•@#&¶NCýÿš •Ý9™/;ñV’ÉÊŽà( £ÚÉöt óLiéàc›A°7‚² µ'â,Çóï²TvxóLÐŒ¬4ow˜®. >hVîéë^0JŠÖ{ºFâz°ªà ÑH%KŸ|šDZзQaëCºÈ}¡ \»‘+Cee0ËÃa2Á™”äß@ H•£äó‡ÜÉó«îŽá™;(-÷ >õm:ÂM]I@SdÐx‰›«:ÞF&S@ååjmm/–IFÈÓ$8@YHRÞÐS먪ÜÊoúHKJP]X€êœ;Ø4gг ¶ðz$Úh¤4"Ó¿ ï¾'ű’Èø€|0­–Î3 ²È'H‡üIT$ËH‡§‘Ê߀º#â§+$”Ü@¼GÈ1çwd°«U”Ù:ˆT'èDÙ¶nZñ‘œ8ÌU]^,#Ý× 3ý¾ƒœKÉ0;KÅiCaϬÊ4ÚpÅ m@Ï n,(éÅΆEÛýÑíúŠ•D€kiŽ»h;¸­ÅIN9`·$ü¡rÁçLŽŽ–Ì0¿Rv¼ˆ_žrDÎ@*ýË;ù]h‹KÀ¤zß_ܬæèQ €ÀWž'× Ö“½D­ã:!üŽ<¾ BŽ‘û ñ„öÆKóçyT/!Kðð] #ш€Ù2¬Ï8P¼96'4IJöœöhÆêÿf…4F‚(×UgEHŠYs=j)x@«³'ßq{¤>çZÁ$ G9¢%iwT¨eJw’ÂÈàÍQX‚®ærÊžr l…¿£ìàÿ8ž)ß!¬5` ‡ŒZ,‡³´âL躷“¦Pˆ}‡ÒÁÈ[Ð/‚na>†0&ÍP2¬ºx þ@rò9lZ8a°uÒ›§>¼û*ü<Ô\ªͰ½phˆïTk:X.ðm‰d˗ͬÙ{ªØÂwwƒíO‰¡÷½|Ï \(Ôí:¥Œêr‡ÎóàžIÙtà•dÞxð޼ pªnS"yïHRé?¦'ö Ñ2 Ñvá\ÁJÆÿÆŽ®ñ"5hïWPˆ-ŽúF ¨pà¢{t‘ · ;(ê5FÊÞ}Eb.H†×+”Ìë+Y.‚£$Ç}‹›ÚÑN}=Z‚:ql€]¯Z²öòJ”(èU$ݘ`E¾ßw8Êû$+à V›QuÐD ¤SkkŒtV»ªHhÞîÀ‹”sPÌàˆŒM ¸_Ñ%}¿ƒÃŒP ä‡ÖI^ðÞ}*±"@Ž È~¥?[†4ØcwéÃ)'ªv¡«•)èY¯P"ßzòòç)š* Û€ô5\­ÐÝÆ´z ^%W•?’:^B:Qs‚ìLüq?¥éY’ö~],yrNiÀ¾/.ð¥0Œ)£ñÈ’wá´l@S´Â;Êšá°1â®zOu‚‡ïîè[f5ï½€¼mdVà=Ú\ÜL6ÀßÜÁÈ;xU²r€ÌàÐÚ¹ºŸÃmt@ã0Ï‹¤êÆLÐ[ÛA¹¥U@uÖâÎzË«ÉùÏ3Vrâ+y—²ŒŒŒº[$2e5èY€35 û”€ú9íÑIÑw1 "Ö˜-»Ò j '•ƒ‡ F–v•ìe‡c$Ä…?¾åþ›rr 9Ù «W Ž£)äö ø%ÀýÅÞ}o®4–ìäS麓Ì)€Äi6F¤…Ó°;R"«Þ“Ìäu mgxXwlº´ds¸h­– ÷¥Xa®&É\0øSR ¢LN$lÀB;˜¤È»Ðæî‘z| ¾.0š>©p€=Ú† ôƒ¹Cö E5‚/›6AÓIÏ“çæ¾zJ~vMàÈDöž*”«G5ãÚi¾ þïQqyŠ à}ïxîÞcı×ÄðŒé8·<.iCú –v;Aå ù²ÅZ¤¹ƒÉm èóþŠU¤×;øZ¦ ]Í$4†ßt3,‘Ò‰·®“ ¹”V‡e*Xù˰>w™DùÛÌ`×Ûj÷®£ºcYXdf}éSjC0qh®“¯êˆjíIŠÐÎ80,ÓPÜAyºføQXR#4í‚vôÜý„• â¯ó 4™³TÔíÉwxòK•‹/EÐö‘{'tx æZHñ£‚ê—„‰=}]0ä•/Ä"°€%¨8ìk‚û¼¼\A²Òd‚ÊJëàå:Wóè4¼ŽF,øš’ †e†¾÷ž\óöÈ΃ޯcJ5 ôÜ{VPˆmÂ#;VS†N~vH£ÀOXÈ.ı%q‰ìéÖžàÉÇ6€BšF’f£#Ëš,þÝÝ4Aƒ– ¤øž9€¿™É›,Þ%èð,0¦»J!Z H^y@knˆ’e[Fàû7Çk]‚ÁD‰àɉª3o¼L·@°…”1V6DJîÔ©¹!ÈÆ˜ŒÈ­Òo–ã( g¹‚ÇŸ(M0Lô&ØPJ+ñd»˜ ”;@|3cªG ‰® Œý#¹VüÞtÌøZ‚ÙY[à(=¨;½¯|dcATY ;ô¾6¼70§›‡*Oâ©7¯zÔj Â=¡ž ™³`ä7«Ÿ\‘q@¿nKKÒ©ð‘`Û‡ó¤}J1dø“«¦ïŽæ˜çH4½£ #y&½.»ºã‘>Œˆ·‹HÇÉÑæêºƒìLóƒïh:ƒÜU•ÆyÙÙ:Š` ,\É9¥º‰äáBà‚ä™2¼` Ô T¦2‰„0Dƒ† ªfí¨5Q¦jØhŽ3àÑÅî€aåÿ8É¡ ¬î¥¥*ðÞd܆¸ïDZºG0ËŒ #d€úÞ‘=gXê2Û‹›0ƃÔ\É™bîî ¼£ G(ON4 °h3á„•l  >@ !j pö™]¶¨Ê{{JLOÈóîQ1“kÌq4mk¾9:V8SDjâù̆:°±f=%Žê ÚZIk÷|I@Žž@)=â÷}ËÏ´‘{\ºnº,pØAŸ6’B UfWn9ºHÀàÍ3Ñd$}Ií¯a•ˆÀSrð@ê‡~‡²z/`I¿ðëÙK¸cÊ^j$»g4^ܳFVGð‡ šà9æz"1mÀœ,Ò_Z °K<ûFÝ…_"YÊ 6@A^²Àp' hЃ£' Òtð×c»ƒåb$ÔU@:WÇU)DZˆ Ò/ÅrèÓ‚•Œö+ Jû\&Èœ-.î@‘ëðÂACu:ÊAâ•à¼ákEBàï/Å¡ åUå«UHX8r˜¯a™ßùˆÐѽ€”Í*Äm™àn#>–/ï±X ˜í>½’(“‡ *©ûFÒƒØäÃMÑYüˆT÷èÞ Eªaz¥S~’TRw/1Äm¦èLàœ2W;%ºËå¶ôŽ„28€uÐy.?ÕÀôX'é Å“[%É ©aƒ¤„³n.@%-2®’z= ÐiΕâÖà& ®õ1ÁàÀSÍcz3>Gh‡5Ðá¬È¬àäêˆ:XfïÀ]í´¸AÉvhw~³‹cÝujƒ¨2ø¡ 9u€ÂÌ|ÈN¶ÂÓÁÕò.˜ ˜Ciϼ*ž¸ä£šðeSÉʰˆÐg‡g=ð»îèY¤HwüÉךá‘?ú£K «°tt@{’OÌÄ9aÙ¨l•~hhÔ ø¥Zûºë4tÄurUr HPäY@寶;Ìqvy @ (fq-ªSHd Õ]·¤ÿ‰îóÐBLàM–Šwc†¬ÁceAç¤A–^Qè'Ç+†®”:¼$-À2ACãsõ %Ó±„‰`̓È@ÔG>+šÚ* èäë Hdê}#@!¶W÷ߌeLºÅ¥–Ôu'‚`òEJ‚by8$ '²÷ê”’RS’ĶڔĖSöD „hªr%p}Œ@Ø’5&‘Õ òéÚ’G*x8÷_€X‡p`‡h#-OÈ+ôX޲ð~ì’nvÄ?ПoÎÈÐíÓav¦ÄÒ$ÊC ‰\õ 0liÑø¨(¦”ê¼gµ SÍÙñKj)€ìvƒ|~íîe  I¯À1AÆ¢ò`¦Tçb4Ps= xzOUŒVûCÀÓÞ~qw5ÂØGÓ·öTçÐ+òo´\º*òOÒ³*®E£®»·£Û*@å c‰Aô¦Z†¡Ò˜∄îÖ>3Ù@8 û( ø%[È@¦°lZœ†Ð„×Ñ£~‡–lòX·ôêík67’¶ãçK‡c·‘¶yë‹]çtwö½ìbÿ¤/†ˆaŽ|è@[Ô R5ˆüWG)ƒÔ\¼E³O<9åÿ¢ÚÔÏ8w´‚PO¦\•0¥¦W™ ^gJ¾ ²á&Ä´“úÖ@¾EH”•kÀÆ ã# X ÙU|Õ´÷‡,zG½ÖއDv*;%¥.I*ÑoÈÖˆ0e˜·Os‘V'MA0=*fp>#ý&”lÃÉ…àj÷¨’–e¿NÏ5úX€Ùk0¯Åæµ@.8¹t€ú`bÌÎPØnH+œ×ï;|NA=©…Æ5Ñ*cÙôìÒÓRÆ^å"¹ŒL*ÓÍ%õŽTwßÚÉç9Àè-;FâXˆùOvW€×¬Ç·ao ¾›÷zvl¶ü¤€ÔÙ]mX-Q˜Ë —Ý–È*Ь:¸Y5ªÊWͱՀƒ#äÉÉO™xíÔ$3.e`¹Š òŒpÂJ-ÓÃE¥–l”Å@¯ë.{˜©GÝ¡Sº‹è Œªe`‡‰˜\N}wÈ[Â_±+êär9¬I­xá"ýÑ 8"× >ìŽ&h®F("3tö&€1"S%™hZ!ݕꣂ‘A«¤Ù]üY'R™fdöæÚiVr–„¡ü„ EÆÑ`GüMêU óì;nBó¡ (à \NäÁ 0W0¢•›4ðø<…¿‚ì?R%­cè/pKæx›”@ý^–v¬ºsĤÈGÞdàúÚ–‹¬C%Hl»ö : rBûóŒ rt`¯îà&vžgéGCh¿Iÿ&ù„Æ6 ¢ºwbȨš‹cQ$uí©JM¼^]]‚Ò *N$´Î”—ËË8 ®¢ -gB ’‰O7NÈÆ¨"ù´‹}ï¹»*²*)@2絛 sª4›&àÙ Ycw¬‘Z^Ø-¨|l¡œÑa¨‘!Þ1L1¤×[øH@Ù›¹xþ©g ÑŽ3ñƒM™€ )\üœ—Õ;©©ª÷›† jØùú¬@c™TÇíÜ‚"ƒÂ4 âe"«ÎhÞ ~(m‚±šÔ½¨Ÿ Ûô" ¡Ì „‰ Žœ;Pí&põ‰l5·|o&óº Ñfv˜b4øëµ/øC{ñj¢Ç¹ vлèÓi¿êäË+EާCFY­ƒ@wuiµcV º…PˆlÈâŒq«¸HžA“Dç¶EÅš9Ö7È;TRªÏ0P냴¸1('ZP•waᣆ€šCVB€ <“H3<òq/Ûpø½:^ WI©Ñê>¬‘1§FK'<¬:À/Acˆþî+¤ÚF±âJúŠBJA´é®Ü/ØUkdrÇ.9upŸW-"lŽÞWLöt«$—Ôîu$à™º‹*åC!ÖU§Æ>€À’wïj6rÔØÌq@~—÷$']`3*5¸ n€j@B“Ù;ºÂžú.žÝ—·¸^¡ìÕóº£ß®§F0Ò’6Ь:ÿ¥tÅHxüÜÜi- ÙCÕR³ó\A¹:WØÚ21%[ GGÞ£u‰{ßD¼ PÊ¡:f Ô,C{øu˜€×æü#)1Bôî jèhWjÒÀÁSŽÜ\"æhpà)G‹«9Ü×RBd´lÈ &N€ë8nôXÍ—bÔQzd'ÞÄÛ!óO ¾)rïð,÷DVvˆ‚ ø¥2݈A#ïfG!‹6SÑTZ˜Á®W(%¤ÂuØ\­¸Z‘,|<°¡ ¢O¨ºmå ‹vMq•ì­zšk d[ò6ܦY©;·Nr¦èD–ìÐ9‘Ó;h@üL X¹ú\;ŽRP˜Ñì Æ%àƒ#´¹óµwIi†È"!ú0±J6î"$\c¸ÆÄ~õHÛúYF™²£‚S+šÇZ¤›ào“ä‚5©µ`”ByÕA_Qø<?!ËÚì±.* ÀHì~DÊtzVyúÙÄÕ^R”Úêî"-2t‡¬b €|‚ç ,­CÚ> ®#Aˆ6ÏAÃYêñÀ±KµûàÈô“ qî P÷¤&(ÄŠÙâ<…œ]"WbÀ]äæáBÆ@r q38¤²‹Åij H²ŽØMBÝwq« (#š•ƒ¸Ù"ÃÇ%›ö+p@½ ÐÙ;ÂSÈÊp€¤Él`½§F¬Ïæ7ÕNö¬²Ar²šËÆ .îÏ3R©”À+y7Oè¾6É!X`iÓÑS±jÀR$WØÚ|p"$Cî ¶­Gwh2ƒbykõœ»{L ù…Cu ¹ü Aɶƒäž«/°´oW]ì!èl¼ `Á¢ì 76†_Åñu2üg‡§”;ÈœF çÝ#¡â#1íJÕnö´ŽbÅ{Ô†€žBÿb˜ØŽþÍ9<.EÈœ äÓA ¢ékÀ¾¯fz­ÉqARr9¬î7#@om6pN‘À‚¯Ï< á‰àÀ‰âhÞøî<eî OÀÕúàÎP2¨Xì2ÕUÝ»D=èwâˆMÒ|¨®Ë!ËZ¯ãº&‡~  }€=M$pd]Á³¹¤žò*Èp–cwx¨”Û€Ù|Âxtæ`¤7²DBô<¤Î ¤ãECä-YuÝNæEí!TiwÚZZäèÔ\¹Z“4ɤéÔÝDÞ#0~"ãªKž3H?2UtŽ0ïUORáb/®’Ää‹á¿®ò¸WÀq(àã ‡ðëÙ–?é Ò\åO¥xÆ.9¾áºVУ®¤üßZ¨ÓÜ— xãF²ŠúÉ©FqA“Dz@_òaͱ«IÄO&àå´‰. 4"n­ð,ž4PÌö–I¬ÃÕ\%w 2>Q±B‚ŸqÂÐ@ ž`¥µ€l+àXD{óÒ½‘5Žg‚½â œz¡Ð¯Û½Ó¼ŽšÉy \áŽæb~Æ¡»"À dCæY¥¶ @RÝHvo)¬â"±Š¼•¤AÀ†©¨@¼*Ë‚ó=U'£‰ª ¸J€“‰‡À0{ `„RrpèW­nr*/-Ï“+Äq„Ä ӫ äéß±oq³âO騖ScW˜‰CÊY2·uF•Â<ŒÞ *æž %9óKýOïDE1æ2àŒÛ³´Æ3uJ}Õ-—ú”¡3qBö¹ À›ã³ûÉ$nѨ ¦»¯¥žÁŽŠZñÀ@‡<ªUÈÀÞ*øGô%' Qïô<¥A (Ùq~‚"™‡JõÐs Ì:X¨8¶ L«wмMÞ|º2¯—+«‘ÌÙZÇñ‘|P•v(ÒôøãÐ…›; yeXn¾ȶƒcø±wºÞŸ?¡½ÃÓA3g'/ìX Š|ˆp]*ô› eÎæàî-p‰‘@‘[@¡¤Ú=ܺTG$èrì®u<ަv~ö{œÐ£ÙnŽ ÅûuVHNÆòÔ›ËËjÉHBÙ²Š#Î=è³&ŠWêîûól`Õ«-iÇAß{wÊÞ.cèÂRœ‹PI‹\J ùõ4@u®HÈØЧÕC&i áŸsíä5‰¬äÄ×R…!ÈbÚ²¹3Á½_{G ‰q‘°†rZ€và ip…*|$!|ý7Áì"­‚•·d3pF†"¨eº„»¶àÜ, w±D>€  ÕÓIsGÊ º¸™p^ˆÍŒ^0¹ËÙ#­€(@x)d( ¢6’ÃJ²BôÍÕ'Ð@ |5p)}6{§ì"»Ñ¼¸Õ^ª„20ÔÄ|ðÅм.À Ôq3Ø•J¶±Û³×wð«±á}ZÁ÷*½G€ K¿Ø+) cÀO˜™æå*j²½òiKÉÔcÉ ÒÔ†óW ¤ã8³!cbÜ3àã<ÖÆpŸ˜ò®^¢F¾¯OÉÒyΞÈmÀ#’ŠuÎXÌêÍî¹·¾;1$G6Š×b2ñ£Ô%†@@ˆL"–0Â&IÒ1@%5¾;Ü$®ejÌN>¶RYñó½€¶D< êþ9Õ1ó,hí Í›jc êƒ*õIAú!IcÿF ¶Ù–ëÛ¨–çY€&˜µ©Çºš`«!ެcc"ðvß‚Ér&õæ6ÁH1B?P9–Kpˆ¦ öäÅÈ1ÙsÐÀ`„póŽ®S(Wµ)h}  Ê˺1Îr=Zë‚ÀxLG± ü£4oc¿ßî ƒÂé’¤q“tò—ËÈÍܽw?UÀ3¤…ÍFèn­âªØü„%~‡ù`" ݃&)?ßÁq,ò€J!X!&RÐ$-/ONÆp'nÕäíèìÑ}Ó3Š@:í΃ ìÔUõ¨ÎH²Á#µ¾¥îa­¥´÷3hâEnÃÄâ8+ Ð+€Ÿ_“$Ô«\{s~G` ',™ã4?µcÃÀCn ÇÒ B:£`Yƒ 5€â&ué©À¨¨‚zP“è°@úð÷ï&Ëê+z )@âŽG4Mê¥I)ŒŠÚ‚Aj•’„}$ÔÌÐ}•™•·«ëƒé&Ã;5×HÈ})v°dªPÜF#Á½ƒÍ7½ÿy;è'Ç÷ÙnP½pV0;d+ ÌÙ£” iyAï7½ÉÛÈÐ…ô¬*äKQCrRI}4ƒg¿d\x¹ÊB dú@îR ‚Á¸$‚€FÈ¢ºñJUÞ~2{þÁŠ쉦ÀËAMq<=Sü%à^ºéÒBä“^:‰i×>õ|"Y󟔂ŸÍëÍ(l“ccÖg´J’;uG¹ ÷µ<*ÿù)Sù%[ è ‹G&z,Ù×ÂÑàø2QM€qU!›’âº9ÁÙ!¿ïÏêX£µƒlWoÎ?šøø±[ALž €Såÿ5xÖ.S$ H0tŽ#,íZ’WêÀŽDÕ3{}Zÿý¦3ªäÂã݃ÜÓ³3(•ƒ›À£H00½‚‰X#jLYŽ¢‘ü2€«• øòÞ¡·6è'ðôsF@¦¢¾d'G:zÈÔxYøˆª t&ÑNã ÉH§©;Cè—jÞÄÛÁ'TëÓ·Ìî¤cu¢|0)ð¹È1gOÎ+—b¤§dgd¢ #Â陪øq~rEôôä¤7€“Ţʴчo@[ÎŽ%L«g`Í“;ÀŸ¤:]MÇI%Ç&h`Jå´ŽÁEbÅC†^PqFUÔÚÄ*Òu¤$æZ^‚$TFj.Ч•hˇžÇ©º'À“ŠXGö4  J®æ˜ A(øû {ô}ñCZI¢úSŽ¢Ù{;Ÿ² 0E:ììçJ%Ü*ËRçrʳ:¥/×(8òß© rÁ;å6;È7‹ö6õ1dUìÏ3™`CµLÚG´yå<Óá]¸HcdkÝ?’¢¢ëÂE1ᙀôP®z\G`¦ßIÒ’@ô»L ›K¸º¯ vÇ~Re¹Û¯|ê¡#Q€v¡ž*˜‡ºæ­w½G-¤=Ü„CªWpÈêM‡Ï;$œå]¸Þ3= Ô23¸˜å‚ØC¨ãDÖâ*S†þçrÑ8~|xòžœD"ؼ­;X [jvçû ÍxUÃÍ;f*F@© *¾Þ¡Ã#ãH5‹¤º:ô“UzfEÜx!¨1èq>R#@}8Cf뎣ýÉÔ‘€™iY€Ž^è ¢Ar.<Ë@‹ä(äÃý„Aïæå¨¤cåe s4‚Óph9ÒqÀ¥/–ågJCF5ÀC‘„ÿõæNIGIRR‡€zŠn¯4?гêÃ-é¥0“¦áí>™e­`áVñ¿.•?7[Ïþ6õä=KïP Òw„8Àȱ”]PeˆG5—ç!Ç©ŸïN¸ æ2 8˽ƒr“3“@DžDœ÷¢ ‰ÄÓFªtcݲœµÂM5c@ú`‘Oûîÿˆx‹ºÉnƒ@Mïîg*<¦#VÁ)Óà0]ÐÙ;6²`*DÚ RÉR¢…“ rï²|„-~‘æ I§:¶0wP]P÷ÕW]u™>YÅÃЯ2@`6>¦OD¾6P‰SF•Z{¾‹£²O4ï‚–lK$&³À»äè¾ìéÁ]MÀ{ÇO$ / "qÃCŽ{pìãKI½–§çu¥íÓ |1$äq Ôuâ,|H‚4Ar\@SpúE¾.ÙÿC޳’Ñ’÷*s†øåäŸJý¦Ë7ÅîÀ”Ÿàª©ð 9C¹ŒæTé²CôžW/ÈÃÚ"êò\€fcœgžèF‚¬²k¸ƒ¹C´ôH héG8„wN©µ/GdÉÝh•ôèôÙ}dPœ¹ ±wŸËŒåD h£e¨&ö(7ý8.º¨‘4,Úœ&jÍ‘r wÓ}W}=}U7ô. Ú^‡Ta´AdŠ2AÍU´3ŸE&(B#„žÿúRÄD0®×W) :¡`ìj*ÀU ä© ³ M\h‹µ©ÿõˆÞ{ $Ö<¯;¶§€n3>AGP’*SF®6%ñ‰À*®;¨IÃYPn!©Ï¨µ½2ÕÆ×R!ÜØG ç¿’œÚ@8@Y=]%U#-ÿðÒ‰òÏÙÀH±ŽÙQøÐþPUy™"ùˆPt2¿ (í.á.b"1Ô ýz&ÿw(êEdvçŽãÑPùIž ²”©Ïš¢Ü?£â0pËзiî¡&Î`NˆXƱ¡2N)/À‰lg>釀ÏH™0«Ä*ŠháO>òTßG»d0|AëcðË.A}ÀY¹¦”l Y}¶¹;NUZ4 |]@ã¥{š-ÏYªÞÃÚt=’@Q\žãß„œ! Ð…ëÃõ~¥ŒA>#ŽÀ¸ 2×ñG N"ê {ìmˆŸ$ÎÉ[²úÞI ¿I”Òáè'¼~×åÇY­ ¯˜þÙ™ðL ÜcBãZ½ûC”ö¾À±c<}íÍ¡‰G™h0€ƒ¸4ÀEM<v'0¸v½€ò²ZI€á9ù¸;I£tÌ”çBw ©€pO.f¨$Ês°ÙÁ317¨Êã‘Á–[2©ÁSàB2)Åݽœ;ÿõ ]â¾;,SÙ`C¶àpRò<#î? ï””¢­[‚¹t¯½´ § ¸w ŸÆg÷ø©œ?U€¥µÀðQLp›u€Í¨$õ|ÑÊ\ÜÖRœО·5uÌ@ÉáOR]ï§joFo½9Cíhè2Œ(äì#ø©N³å‘A„k›b ÂRe&õ•RË›|««Ÿew±âÑv€&ʪؗ÷ £¥ì½ô}€¸:Ô`ïàŽž˜IÓÎóÏ ç¨:À飻¾¢­£x™¤ÐµÃ·CC8/tŽ7ä]ŽÒb±“n°ruvÑ‘­ãI¼_{ï  s¤~N7ÐÖH²¤Ú­úH²É!½€ d[`´ÔÉèóH:±çÿ$0€ C>#ÀŽ#÷äFü£u±²B!¹x°jÉÅÔ„f8 ÌV¸)˜8O5œÔ?È[7Zx|rÍòL@)‰Ÿ¬”["üÎÏÐæm‘›¬:p»Ð ŸÀ–¤! EýÜÿ>ö&@(ÉØw9¤_P:(p$¸fߨ UX{…síØÙ¤Ð5a6ÑA«sGçæ\Š, 5çôº£E5´¡_ñ`„u/»“‚üAÀs–¸ Ò¯›0Ÿ 2Õ(V!¨&ŒÕm‰Ô£vDëQ· ÒNòq˜à-M8 aä¯äÈÒaP5}wH< $88:µáŸ ˆA|o¸[åQ? ÙUéÔtXqQe©j„r¸‚œäÁÁÝfM¨µé]a· w±¨û:@T9 Öˆ€ä1¤fp`o ±5v`çÅS†ó¨šW“Ƚ+̵+˜ed01÷¾€3˜êçÂQ¾ÃáÏ9¡Ê‰Ap’ ýÓ”4ÚðŸ”7#”ê ÕÔq©(´‘3EÛ[Ëòï ‰×d붨I [ÿHp4IäÌã‹¶Áu¾=£€­¹áXÍH$œß)˜K[D¢ o³Cw+ö<œÝWè(™ë72Hñb¬ft³;°°£F¹¶•i®nãx6𨿸ä’zÇz³÷C´B@ë8Î=H¢€Æ²¦ûZJ \_‹ƒ-åççûDë ­¹xš md“WÀÝfLòÅÈ”j&LJÄQ¾–u:Ž%¾‘W»zJ¤çï.Qr‡ÁtÔÚþ<§“)„pV&˜eÅ€Ù 3©Ÿ nFîÉ"mü Ü&4^¢`‡—ì"WrÌmI0oe‡¯Yv ¸‰ºå=–È<û-à³Ü ñ¹ªÏ ¹õjÃäãt‡JŠ?ÒÛôþ’l-!pÏšH–H¿.‘¸nv³ IGÆK†!H«tÆç„J.ôIROܘíRm(Žš+@÷É*\N<Ð*Øà6à™ N4È*›Ä}<¯šÕÄáìò_Ó´æzMûÞi§€¾b.Þ¾{söñ”¡Rƒ©ú–Yd~—dCaŸ³€zž,?ïþšíB­€…úž;ÿ ‚øèÐBÌ ¢Ö¡s²Ëšî7Úî*CvTk{Ñ/ηŒÔÁˆ§%I=`MÐg ¢j¯zÆpù¦ã ´e2(-ÏÞaÖ3(W ;~ýÁ?U÷ÊT²î`…„ݪDúh¿.Ÿ»QCúø©Mb.d8ô™ÀÕ*àÁàÉG‚#2)xJ °ÄÍQ^ñ„NáÂI2>Ðó¦Ùãçt‘q2 ¡2ÑQÛ¤™³à|OÝÅ!Ü…ÜÜÒÅ#!™©äyò€ÐXÒH°õÙA›"rEh›7 ƒ•5WD|H *2ôçc-ù!>)·øÑ#·5îV?e/ËV %€¹ƒŠEvò¾žÀ~š !,P'€lA »‚°[D×£–yøM$ಕØåb´Ê‚iÀïP¥O1¤‡±¹VÒÑ„fÐØ–ÄÈ;7RTäD6O> Œf»Ð…ë¥ûê”èN°SÑøÉoÊ1 LÕΛáÍ ²í>Ú |5+ R×׆tEp»ôTÁM5Š] ç1$ƒQݬÜ.v8 H÷Sbxò.¨rl†ÃOz"¡¼ÎO.ÉDA 3¾2áI˜ÈCåå«–Í;(G èùçPö\1Á²Ù3X‚6”n$׿ú´»²g€i÷¶¤(Qð9›«üI0 æ°ƒ€qpˆ:¥2=“°Œ|XÃà_T§t_a6‘©:ËÎÎSfDÑÞ•<(5UaÌ/n @sX?‹Eµ‡<Äû!¹ÐT¨¯˜‰’KÀÌðΞÄ%€è” ÷.ÉjÒ !2é‹OIàüáMf•B T©—øH+ Á´Ô¶eCZ(Qz›€Šïhª;hŸªOà b½E– æMdôÙˆÎÐÖ`ËUœÝÜ `”¼Ï"ÐBc [0Êì0.Ù5 %¥e/â + *{öJi¡&+S_)X Rjš®k$ˆ­?ÏL!h-ÇìM·Á£ :º&öþüî¤y¾ÂÍÑÑbøz\*Œlr,ÀÛPJJŸ#,Ð’•1†/EÐ5Ú+fvzîͳ_ŸsutÕ,;Øs/²ˆIÄ$Ø æwªE ÇR`4s„ÿôXç;„a:%»h7 þÌȶ¼Ë9Pá:P‰䟕¼6"=€\AËEÀ/µáëSóP'kž+Ž´‰<–W(«@‡gM? c}ÒI‚Y³€æCËÅ#w­€³RGn‚6ï"‹«ÖÀºTÊÿ~Ltè@Êñ†5ÐWŒŠÏKíÙÝ4HÔ.ƒ.GÄn—4i8œÍ„Ñ鸂Y°HíbõûºÀËu{]"› M½oS¼6”ʘ3æLàÀåà1@þN1 Cái¡€Ð ?g)H£ƒÖœrZþ•ˆªÏˆ‹Š‘q”BÍ•]éØpó¸Dsº¦2+p…Kº…;#u¢qâkäO†“| a‚ðõ^œ¡&Þ®7Çz'/Â4sÚÍœ6`¬½íh8Îb±/¹Û‚‹kR‰äDeƒà‹L,ü8Ù™¨E XÅ~‡ Nö˜œ X†É1Ò°ÅŒç»8²- /UÐú ¹¿÷†2‘ðkôL6¸äPÐ# "î*¯€ßn­NOoxúËG™ÇI(ôm€o(J€GZ¥?zçß®Ëô¹¶ÆŽàn‰âyÊ» XÎÍLV\jbð÷z³x%ÉwÇqPxÚâxïVÝQ €Ìvžx$p”³qT¦I–e~DG,öIͻܺ$¶«)3j0^Ês©Ùè½n€¾·,V Ô7e²ê§ÌîèÓ,oö£êmí Æ+}‚'²Ì2ÀÐÄao£èY 0“†›=S÷¦˜”H€ÍhëÍcrƒL@ªòä¯xßÉ›L¢‹~jò!Ÿˆ m#ð¬™Þ…‹‚ Ïå hÉxH^é«4’Í;!ëØKs„—@ÿSV™ÀçI Õ·›—2ãà‚hC=ÿ¯XÑÆßû˜ w Øb.à¶Äi“¦ â{¤-¤6 ÐîÝH2Aƒö~',Üt‚°ƒô:< äGÏð×%ñêÿfìC·€7L1œ¾Ç è©k“·l8Zu.ùõÀlB˜ â¹Ð“ö‘gòSý[}êAxYŠA ¢vcOÄp4MÕ}y×â½ ÄÀa0Ñ0žç®n8œ›Í){ʶü&%OÚ\É;'âþé[äÖn#¥Ôi9×R‰È‹M'ÅËVXÃØy’ ‡¶$ŒÅ÷SuI’€Òˆs-Å]ÕÙHý}Í/屢™p¹PØ¿IhI ÿûJîzV(ävóF+‰ü¯Ô óœ@v¦€…Pg¢&ËÚæ:<|õéGùLn5ó§¾'' `0G¸¸# õ!Ž˜;f_³‚`J®tw<;@‰ø°;WIöÐ;­&ªE ¨…>Llr†ø9_6²\ô¨ØÀÉkÎê;.+?ß%àáUd*D%?è\<¬EB ô¥ؘÒÝB(R#˜„æèhå`0ìžÔ¢A|аeç¾µwº@Úïp” ¦ ¦Šüb¨a'ö® vieà¸ÊÜ¡´»Xq„tb`J]&娦ð8¿ W)ãïD5×ÈRŽnzF­ì\ "êB yδL‘R­Î$I€Ð…ƒTª óO „³*XGÅa :fͻң¦‰ƒOl…ÝrfM£X äC;qÿ¡‹TÑ÷æÊ@å"4ýá¦óȳÒÁd*ÍâÝòüJ)¸fkþ„,8PÒ„~Hš®< X;ŒH’ÄåðwbÅ¥‚¼˜šá “_€¥E²ÛB@Hd ¿é.f㶇=M1<Ù‹ÄÝ3M1üßÔÙã)8 FPcf÷’;£¿#²G\úŸËåŽî´ G]aô¶»,’28œwÁ-Cß&J6`X€Õ¦xäõæ²Æª‹¡^VÇyäãæ½ƒIô¾“)çª Þ{rã…O¡Á>"~A 5ü¤ûŒÁζ‚ÚÆQïÒC:¨µËO+Dái‹UÁ,x”îˆË´Åt· ŸL¶ƒ³x3G(WZŽ Þ»0•D Zs‘I«A^×ÝþXPèÏ×á…X« üµ à‚ª7¥¡áh4)¸“n¶÷½.°§Y; dtÌ$råuqr`¹¶ ,ïÆ+R€ƒ2 ‹6 PäØSM®£+äH¯€Þ¯„t,´ƒJ@ó tJÁ*Ö‚‘Eá!ì+¨‹7':QØŽOžÀ—#´§µ§¼Q–+$v+-ÀÛŒbÅR¡„ ôTÕ€ÙÔÍZP"ÿŽ5pšâÅMÿÉúŸBÞ‚vô~ì–Ö|"¶'²Ÿ#$Þì.(-À (Ä6wpS?,04Ôò¥8À%jx?y×l×· !^Ú¢L`Qm¸ Ýࢻï@)•„:´Ñ:Ô†q ¤ÿŽ»+!I(pÑ B©$|xH_ÛͬôKÄ5ˆÉô¬H£uÁô*÷ `6pÈ’ÚñãhGïM”v>pÕáÜžÖû!ÔŠâ1`{zÏJH{G!6Wñ‚è;Õ›ËðJ¢ T‚†°ø24UÜEÔ'`X6€™ }•>‚3Ð÷âú`ÊÑýäÊ•†ò€Ì‰èf—µC°*À7Ÿô¨)ÑM`)ÒbÇ$à÷ ÉПwD«Ü¬SZ!u0*Š"tJHhöš·½¹o L‰¼u,Õ/`‹w€Õí~ä4êÔåºÈz¡IuhMÄdˆuÂ^y–¾Ž+"´r%‚ÈP@\Bú~ÂÂæŠt¾û‚G'ëh`Ë ê¾ž¡ºRèè4²Ôžê+¶ÉìR6õÞ š”«'xC¨ëÂDËYØ*… îàš- ‚@[rÀ|BVy¤qÓ Dû ÞdêÍÙGJ.=½+/#• N"Åg˜ªâ¿KÈÁwqú’ 8>Àw—.Œ®²¢ 8(í47l * †éX’䃓«gÀHT±Trâü Ô­Hü"!ái?¹4:ƒ*ÒO' - 2ÑGxßqD9©ÅåGTà€ø3r¯ÀM\!¨7Àý¯»¯å®Î).¹7w–'ð;“mx¬Ðë¨rˆç9½çß²—BNõšK³Yà„:¸ZcG@ŠN÷±•ü |a@¹@ÆG]#ØÅÓk®ÑÈóKª_rè·›@ᑵœqäËÜUuÈA—8‘ñtª§Ï”¸lÅ}5ñ€FÝ@‹»%艾@MμrWŒDQ;=(¿ ^í‘s€ÞZu™hs@Я«‘² БȊ I OÈJêÀµLƒi8=$nº–¬ 8€ûƒ`0Øy0TŠƒòñð …Ø‰å q©Y•A ØŒFU 5‚gÚG`-±HV®lc&¿@¨”‡®—ÿ’ð#åD©,Ô+ ‘Éj4ÇÜJ[FÚZr ÅA¨ºFA¼#4ÝlE0¨ß3ÈÊMPº‹¬ _pká€wÞ!ܸ æ}‡q¯ÐÕ¬PŒ¨Övô©Ä @ ax-#I|ðqÕ¯%¡RÞŽ6—?—‡ßN’ø Kð< ðó ðŸdm&äˆ.ø*‚w…˜Ü}ÅÍáe oɪçOÜj2O×SÕ¡ï F±‚`ðGX÷ã'9%zó´$ÂÉv·ÄGyÛøæþâdfLyòJtP°Jv@XA H œsðu>¨:Új€±…7Eå ‡!súôÝ•X?ËÞ \(5j0¬‰øhŸäÙ¯Ì\@|o9=9ΧDB?iL¯x?¥æ¯XH ×­¬Ò@*ù¤IN^`PIÉ–<4ˆõE J~  ƒDV…ÐË+„DF!ñé‰Ë晪À¼ @ýš]®M¸ (pJ`&¡dliŒ×° rÅ^¼.ÞµåEêy%“UǸß8`yO„¬ˆ¨ÄpnVúÉìLy g‘5]ðGÍ1(#øCÍå J…:?øf¤éP€…P Š¬A=ì8·ÉÓ¤ÇÙy³ƒ‘¢Pw@å Ä5ù ©€X—¿‹íhmc sD<ˆIW<£AÍó¥ ò¶©‚il•Lª}¤Î±>€.??ûHÍ)'B§€ÈjÊT"¾žÓ6—ÿ•-Àü*Î7”hƒ»ê cˆ.'€g¥:W]n5gÊ«éÿf–Ÿ´ÿ›Ëãüª žŸÈl=‘ˆàw¸b¹H4þâZsá,AÔ<Ý’Þ9äu  ’JƒÏY>Âm wÄÛ% :ù¤^vÐtZîz ŸÏ gqâ‘…í¿çÍL𢳚$da¹{¹*f ˜P _õ좾ñ@•hà å¨çïzøh®PÔE¢ß©A,¿#uöú(‚?P9 5’°@•`†¢¶9È7í¤(Õ Q öÚ \ÜfTÄhæPöKæ#Gô)P áäŠäœ•ú „3 ªÄ)kÉÝi÷Þᕃ•’¤Ù‹Š;bü5X!±µk$ (c8dz¿¨ïbÿ÷¦êiùTúñ‡ˆ%¸ÆH{L³Ë±j‚㤤Tw€MO$öcæ§v±âE:Ï­“Áp ¤ä m`à !Ô"áV˜„‚¥òÆŒ/0ÄÅ!Iâºû* å-åÀ/öþàö+½Ÿ#$NtM¶m#Ж¢‚øSr;*ñ&@7fºÿ» {`ïE„A™rz©p•ø2¢<ŸrÆiq]ÿ‡+Äuêèìï|Ðctã‡>úAxHü·ùŸ?õÿþ_/ûç>âNúއœwÁí´/þ.ÿЇ<è1}ôCΉ߻à‹÷¶/Þ»õùç=ö¼àRÿÔ—Ýø|ðyºà‚{?äÑœ{þ#øÀSN=ýË?5®Ó¿ø¿ë:åÿû´§ý¯Ÿö¬/þò¥ÿñ3õ ÷ƒöK}¹3ouîùßñ  þ—ovÚ¥¿ÿ¿é‘<ÿ1zÌC¾ó6ñ n÷¿?ûû_ùÍyäùxýŽ~þ¬Kÿë—?ÿ¼svþ­õµrÁÿüwOù—ÿR"û“­oligoClasses/inst/extdata/seqlengths_hg18.rda0000644000175200017520000000073114710217345022333 0ustar00biocbuildbiocbuild‹ r‰0âŠàb```b`â’Ì@& `d`aàÒ\Å©…9©yé%Å@i^ ˆ!ßžÝæ|ÕÊo¹Ÿh0s§ÍHç:¾†‹K—gyŽÇö_\1i)‚Ë'r0OYÀþ¸.Žíìz¶p>OÖßÖV—9³rò⺕ññ¸oüôVŸ`[¼Gjž'{{=ɳžò5ƒžU^¹b.9ëþÔ´×ÝæÞè^{¬¦(öx›ëí· ×ÝægÿÖËα‡Yö9‘p–¼ëõn«ržœjžÂq} ž¦{ð²&°©f°éÔxƒúªiÔíÛ=P?Ú‹:óLØÎB2#?‹ØY¸@ùoÆýþÙ²Vü;žv¸l†¥ÿN›5Ä þÞ+ìÅ5‚Øp)”…Â`¡0D„a;4ˆp‰0\(Œä‡ÜÆøóðžŒH—“® ]IºAÒ ‘®AºaÒPîÒG!×%Ù8ÉÆI6N²q’“lœdã$'ÙÉ&H6A² ’Ml‚d$› ÙÉ&H6I²I’M’l’d“$›$Ù$É&I6I²Éˆræ­ß_lïªj\ oligoClasses/inst/unitTests/0000755000175200017520000000000014710217345017206 5ustar00biocbuildbiocbuildoligoClasses/inst/unitTests/Makefile0000644000175200017520000000146114710311132020635 0ustar00biocbuildbiocbuildTOP=../.. PKG=${shell cd ${TOP};pwd} SUITE=doRUnit.R #R=${R_HOME}/bin/R all: inst test inst: # Install package cd ${TOP}/..;\ R CMD INSTALL ${PKG} test: # Run unit tests export RCMDCHECK=FALSE;\ export RUNITFILEPATTERN="$(file)";\ cd ${TOP}/tests;\ R --vanilla --slave < ${SUITE} release: R_LIBS_USER=~/Library/R/2.15-bioc-release/library R-2.15 CMD INSTALL --no-lock ${PKG} export RCMDCHECK=FALSE;\ export RUNITFILEPATTERN="$(file)";\ cd ${TOP}/tests;\ R_LIBS_USER=~/Library/R/2.15-bioc-release/library R-2.15 --vanilla --slave < ${SUITE} devel: R_LIBS_USER=~/Library/R/2.15-bioc-devel/library R-2.15 CMD INSTALL --no-lock ${PKG} export RCMDCHECK=FALSE;\ export RUNITFILEPATTERN="$(file)";\ cd ${TOP}/tests;\ R_LIBS_USER=~/Library/R/2.15-bioc-devel/library R-2.15 --vanilla --slave < ${SUITE} oligoClasses/inst/unitTests/test_RangedDataCNV-class.R0000644000175200017520000000140214710217345024031 0ustar00biocbuildbiocbuild##test_coersionToGRanges <- function(){ ## library(GenomicRanges) ## data(oligoSetExample) ## ## RangedDataHMM and AnnotatedDataFrame/GenomeAnnotatedDataFrame ## rd.hmm <- RangedDataHMM(IRanges(start=49825223, end=54637167), ## chrom=1, state=3) ## if(FALSE){ ## not exported yet ## checkTrue(validObject(new("GRangesHMM"))) ## gr <- GRangesHMM(seqnames="chr1", ranges=IRanges(1,3), ## strand="*", seqlengths=c("chr1"=1000), ## numberProbes=5L, state=3L) ## checkTrue(validObject(gr)) ## library(BSgenome.Hsapiens.UCSC.hg18) ## library(BSgenome.Hsapiens.UCSC.hg19) ## seqlengths <- seqlengths(Hsapiens) ## obj <- as.GRangesHMM(rd.hmm, seqlengths=seqlengths(Hsapiens)) ## checkTrue(validObject(obj)) ## checkException(as.GRangesHMM(rd.hmm)) ## } ##} oligoClasses/inst/unitTests/test_annotation.R0000644000175200017520000000266314710217345022551 0ustar00biocbuildbiocbuildtest_annotation <- function(){ library(oligoClasses) library(genomewidesnp6Crlmm) m <- matrix(NA, 2,1, dimnames=list(c("SNP_A-8575125", "CN_473963"), NULL)) gad <- GenomeAnnotatedDataFrameFrom(m, "genomewidesnp6Crlmm", genome="hg19") ##checkIdentical(position(gad), c(564621L, 61723L)) checkIdentical(chromosome(gad), rep(1L,2)) ## genome annotated data frame with additional columns gd <- new("GenomeAnnotatedDataFrame", position=1:10, chrom=1:10, isSnp=TRUE, arm=1) checkTrue(validObject(gd)) ## other approach library(Biobase) pD <- pData(gd) mD <- varMetadata(gd) gd <- new("GenomeAnnotatedDataFrame", data=pD, varMetadata=mD) checkTrue(validObject(gd)) gd <- gd[1:5, ] checkTrue(validObject(gd)) x <- matrix(1:25, 5, 5, dimnames=list(c("rs10000092","rs1000055", "rs100016", "rs10003241", "rs10004197"), NULL)) ## preferred gd <- GenomeAnnotatedDataFrameFrom(x, annotationPkg="human370v1cCrlmm", genome="hg18") checkTrue(is(gd, "GenomeAnnotatedDataFrame")) ## searches for hg19 by default ## checkException(gd <- GenomeAnnotatedDataFrameFrom(x, annotationPkg="human370v1cCrlmm")) checkTrue(is(gd, "GenomeAnnotatedDataFrame")) gd <- GenomeAnnotatedDataFrameFrom(x, annotationPkg="human370v1cCrlmm", genome="") checkTrue(is(gd, "GenomeAnnotatedDataFrame")) ## request a build that is not available ## checkException(GenomeAnnotatedDataFrameFrom(x, annotationPkg="human370v1cCrlmm", genome="hg19")) } oligoClasses/inst/unitTests/test_classes.R0000644000175200017520000001253214710217345022030 0ustar00biocbuildbiocbuildtest_dataExamples <- function(){ library(Biobase) data(oligoSetExample) checkTrue(validObject(oligoSet)) obj <- new("oligoSnpSet", copyNumber=copyNumber(oligoSet), call=calls(oligoSet), featureData=featureData(oligoSet), phenoData=phenoData(oligoSet)) obj <- new("oligoSnpSet", copyNumber=copyNumber(oligoSet), call=calls(oligoSet), featureData=featureData(oligoSet), phenoData=phenoData(oligoSet), genome="hg18") checkIdentical(genomeBuild(obj), "hg18") } test_GenomeAnnotatedDataFrame_construction <- function(){ checkTrue(validObject(new("GenomeAnnotatedDataFrame"))) checkTrue(validObject(GenomeAnnotatedDataFrameFrom(NULL))) data(locusLevelData) if(require(pd.mapping50k.hind240)){ ## might be an exception in the future GenomeAnnotatedDataFrameFrom(locusLevelData[["genotypes"]], annotationPkg=locusLevelData[["platform"]]) tmp <- GenomeAnnotatedDataFrameFrom(locusLevelData[["genotypes"]], annotationPkg=locusLevelData[["platform"]], genome="hg19") checkException(GenomeAnnotatedDataFrameFrom(locusLevelData[["genotypes"]], annotationPkg=locusLevelData[["platform"]], genome="hg18"), silent=TRUE) checkTrue(validObject(tmp)) } } test_oligoSnpSet_construction <- function(){ checkTrue(validObject(new("oligoSnpSet"))) library(Biobase) data(locusLevelData) require(pd.mapping50k.hind240) require(pd.mapping50k.xba240) cn <- integerMatrix(log2(locusLevelData[["copynumber"]]/100), 100) oligoSet <- new("oligoSnpSet", copyNumber=cn, call=locusLevelData[["genotypes"]], callProbability=locusLevelData[["crlmmConfidence"]], annotation=locusLevelData[["platform"]], genome="hg19") checkTrue(validObject(oligoSet)) b <- matrix(dunif(nrow(oligoSet)*ncol(oligoSet)), nrow(oligoSet), ncol(oligoSet)) dimnames(b) <- list(featureNames(oligoSet), sampleNames(oligoSet)) b <- integerMatrix(b, 1000) ## with BAFs oligoSet <- new("oligoSnpSet", copyNumber=integerMatrix(log2(locusLevelData[["copynumber"]]/100),100), call=locusLevelData[["genotypes"]], callProbability=locusLevelData[["crlmmConfidence"]], baf=b, annotation=locusLevelData[["platform"]], genome="hg19") checkTrue(validObject(oligoSet)) ## instantiate oligoSnpSet with 0-row featureData oligoSet <- new("oligoSnpSet", copyNumber=integerMatrix(log2(locusLevelData[["copynumber"]]/100),100), call=locusLevelData[["genotypes"]], callProbability=locusLevelData[["crlmmConfidence"]], genome=genomeBuild(oligoSet)) checkTrue(validObject(oligoSet)) } test_CopyNumberSet_construction <- function(){ checkTrue(validObject(new("CopyNumberSet"))) data(locusLevelData) ##trace(oligoClasses:::addFeatureAnnotation.pd2, browser) cnset <- new("CopyNumberSet", copyNumber=integerMatrix(log2(locusLevelData[["copynumber"]]/100),100), annotation=locusLevelData[["platform"]], genome="hg19") checkTrue(validObject(cnset)) ## instantiate oligoSnpSet with 0-row featureData cnset <- new("CopyNumberSet", copyNumber=integerMatrix(log2(locusLevelData[["copynumber"]]/100), 100), genome=genomeBuild(cnset)) checkTrue(validObject(cnset)) } test_GenomeAnnotatedDataFrameWithFF <- function(){ ## test instantiation from an object of class ff_matrix data(oligoSetExample) data(locusLevelData) fdFromMatrix <- GenomeAnnotatedDataFrameFrom(locusLevelData[["genotypes"]], annotationPkg=locusLevelData[["platform"]], genome="hg19") if(require(ff)){ ldPath(tempdir()) gtMatrix <- locusLevelData[["genotypes"]] gts <- initializeBigMatrix(name="genotypes", initdata=gtMatrix, nr=nrow(gtMatrix), nc=ncol(gtMatrix), vmode="integer") rownames(gts) <- rownames(gtMatrix) fdFromFF <- GenomeAnnotatedDataFrameFrom(gts, annotationPkg=locusLevelData[["platform"]], genome="hg19") checkTrue(identical(fdFromMatrix, fdFromFF)) } } test_CNSet_construction <- function(){ library(oligoClasses);library(RUnit) checkTrue(validObject(new("CNSet"))) a <- matrix(1:25, 5, 5, dimnames=list(letters[1:5], LETTERS[1:5])) tmp <- new("CNSet", alleleA=a, batch=rep("a", 5)) checkTrue(validObject(tmp)) tmp2 <- tmp[1:3, 1:2] checkTrue(validObject(tmp2)) tmp2 <- new("CNSet", alleleA=a, batch=c(rep("a", 3), "b", "b")) checkTrue(validObject(tmp2)) checkTrue(identical(batchNames(tmp2), c("a", "b", "grandMean"))) require("genomewidesnp6Crlmm") fns <- c("SNP_A-2131660", "SNP_A-1967418", "SNP_A-1969580", "SNP_A-4263484", "SNP_A-1978185", "SNP_A-4264431", "SNP_A-1980898", "SNP_A-1983139", "SNP_A-4265735", "SNP_A-1995832") theCalls <- matrix(2, nc=2, nrow=10) A <- matrix(sample(1:1000, 20), 10,2) B <- matrix(sample(1:1000, 20), 10,2) p <- matrix(runif(20), nc=2) theConfs <- round(-1000*log2(1-p)) rownames(A) <- rownames(B) <- rownames(theConfs) <- fns batch <- rep("a", ncol(A)) ##trace("initialize", signature="CNSet", browser) obj <- new("CNSet", alleleA=A, alleleB=B, call=theCalls, callProbability=theConfs, batch=batch, annotation="genomewidesnp6", genome="hg19") checkTrue(validObject(obj)) checkTrue(identical(sampleNames(batchStatistics(obj)), batchNames(obj))) checkTrue(!is.null(batchNames(obj))) checkTrue(all(chromosome(obj) == 1)) } test_BeadStudioSet <- function(){ checkTrue(validObject(new("BafLrrSet"))) } test_BafLrrSetList <- function(){ checkTrue(validObject(new("BafLrrSetList"))) } oligoClasses/inst/unitTests/test_conversions.R0000644000175200017520000000150514710217345022741 0ustar00biocbuildbiocbuildtest_conversions <- function(){ p <- matrix(runif(20), nc=2) integerRepresentation <- as.integer(-1000*log(1-p)) int2 <- p2i(p) checkTrue(all.equal(integerRepresentation, int2)) } test_oligoSnpSet <- function(){ data(oligoSetExample) checkTrue(validObject(as(oligoSet, "SnpSet2"))) } test_makeFeatureRanges <- function(){ data(oligoSetExample) gr <- makeFeatureGRanges(featureData(oligoSet), genome=genomeBuild(oligoSet)) checkTrue(validObject(gr)) gr2 <- makeFeatureGRanges(oligoSet) checkIdentical(gr, gr2) } ##test_RangedDataHMM2GRanges <- function(){ ## if(require(VanillaICE)){ ## data(hmmResults, package="VanillaICE") ## checkTrue(validObject(as(hmmResults, "GRanges"))) ## obj <- as(hmmResults, "GRangesList") ## checkTrue(validObject(obj)) ## checkEquals(names(obj), unique(sampleNames(hmmResults))) ## } ##} oligoClasses/man/0000755000175200017520000000000014710217345015002 5ustar00biocbuildbiocbuildoligoClasses/man/AlleleSet-class.Rd0000644000175200017520000000511414710217345020247 0ustar00biocbuildbiocbuild\name{AlleleSet-class} \Rdversion{1.1} \docType{class} \alias{AlleleSet-class} \alias{AlleleSet} \alias{allele} \alias{allele,AlleleSet-method} \alias{allele,SnpFeatureSet-method} \alias{bothStrands} \alias{bothStrands,AlleleSet-method} \alias{bothStrands,SnpFeatureSet-method} \alias{db,AlleleSet-method} \alias{getA,AlleleSet-method} \alias{getM,AlleleSet-method} \title{Class "AlleleSet"} \description{A class for storing the locus-level summaries of the normalized intensities} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("AlleleSet", assayData, phenoData, featureData, experimentData, annotation, protocolData, ...)}. } \section{Slots}{ \describe{ \item{\code{assayData}:}{Object of class \code{"AssayData"} ~~ } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{featureData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{experimentData}:}{Object of class \code{"MIAME"} ~~ } \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{protocolData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{eSet}"}, directly. Class \code{"\linkS4class{VersionedBiobase}"}, by class "eSet", distance 2. Class \code{"\linkS4class{Versioned}"}, by class "eSet", distance 3. } \section{Methods}{ \describe{ \item{allele}{\code{signature(object = "AlleleSet")}: extract allele specific summaries. For 50K (XBA and Hind) and 250K (Sty and Nsp) arrays, an additional argument (strand) must be used (allowed values: 'sense', 'antisense'.} \item{bothStrands}{\code{signature(object = "AlleleSet")}: tests if data contains allele summaries on both strands for a given SNP.} \item{bothStrands}{\code{signature(object = "SnpFeatureSet")}: tests if data contains allele summaries on both strands for a given SnpFeatureSet.} \item{db}{\code{signature(object = "AlleleSet")}: link to database connection.} \item{getA}{\code{signature(object = "AlleleSet")}: average intensities (across alleles)} \item{getM}{\code{signature(object = "AlleleSet")}: log-ratio (Allele A vs. Allele B)} } } \author{R. Scharpf} \seealso{ \code{\linkS4class{SnpSuperSet}}, \code{\linkS4class{CNSet}} } \examples{ showClass("AlleleSet") ## an empty AlleleSet x <- new("matrix") new("AlleleSet", senseAlleleA=x, senseAlleleB=x, antisenseAlleleA=x, antisenseAlleleB=x) ##or new("AlleleSet", alleleA=x, alleleB=x) } \keyword{classes} oligoClasses/man/AlleleSet-methods.Rd0000644000175200017520000000556614710217345020620 0ustar00biocbuildbiocbuild\name{getA} \alias{getA} \alias{getM} \alias{getA,SnpQSet-method} \alias{getM,SnpQSet-method} \alias{getA,SnpCnvQSet-method} \alias{getM,SnpCnvQSet-method} \alias{getM,TilingFeatureSet2-method} \alias{getA,TilingFeatureSet2-method} \alias{A} \alias{A,AlleleSet-method} \alias{A<-} \alias{A<-,AlleleSet-method} \alias{A<-,AlleleSet,matrix-method} \alias{B} \alias{B,AlleleSet-method} \alias{B<-} \alias{B<-,AlleleSet-method} \alias{B<-,AlleleSet,matrix-method} \alias{open,AlleleSet-method} \alias{close,AlleleSet-method} %- Also NEED an '\alias' for EACH other topic documented here. \title{Compute average log-intensities / log-ratios} \description{ Methods to compute average log-intensities and log-ratios across alleles, within strand. } \usage{ getA(object) getM(object) A(object, ...) B(object, ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{object}{\code{SnpQSet}, \code{SnpCnvQSet} or \code{TilingFeatureSet2} object.} % \item{con}{\code{AlleleSet} or \code{AlleleSet} extension.} \item{...}{arguments to be passed to \code{allele} - 'sense' and 'antisense' are valid values if the array is pre-SNP_5.0} } \details{ For SNP data, SNPRMA summarizes the SNP information into 4 quantities (log2-scale): \itemize{ \item{antisenseThetaA}{antisense allele A. (Not applicable for Affymetrix 5.0 and 6.0 platforms.)} \item{antisenseThetaB}{antisense allele B. (Not applicable for Affymetrix 5.0 and 6.0 platforms.)} \item{senseThetaA}{sense allele A. (Not applicable for Affymetrix 5.0 and 6.0 platforms.)} \item{senseThataB}{sense allele B. (Not applicable for Affymetrix 5.0 and 6.0 platforms.)} \item{alleleA}{Affymetrix 5.0 and 6.0 platforms} \item{alleleB}{Affymetrix 5.0 and 6.0 platforms} } The average log-intensities are given by: \code{(antisenseThetaA+antisenseThetaB)/2} and \code{(senseThetaA+senseThetaB)/2}. The average log-ratios are given by: \code{antisenseThetaA-antisenseThetaB} and \code{senseThetaA-senseThetaB}. For Tiling data, \code{getM} and \code{getA} return the log-ratio and average log-intensities computed across channels: \code{M = log2(channel1)-log2(channel2)} \code{A = (log2(channel1)+log2(channel2))/2} When large data support is enabled with the ff package, the AssayData elements of an \code{AlleleSet} object can be \code{ff_matrix} or \code{ffdf}, in which case pointers to the ff object are stored in the assay data. The functions \code{open} and \code{close} can be used to open or close the connection, respectively. } \value{ A 3-dimensional array (SNP's x Samples x Strand) with the requested measure, when the input SNP data (50K, 250K). A 2-dimensional array (SNP's x Samples), when the input is from SNP 5.0 and SNP 6.0 arrays. A 2-dimensional array if the input is from Tiling arrays. } \seealso{\code{\link[oligo]{snprma}}} \keyword{manip} oligoClasses/man/AssayData-methods.Rd0000644000175200017520000000564414710217345020615 0ustar00biocbuildbiocbuild\name{AssayData-methods} \Rdversion{1.1} \docType{methods} \alias{corr} \alias{flags,AssayData-method} \alias{nu} \alias{phi} \alias{batchNames,AssayData-method} \alias{batchNames<-,AssayData-method} \alias{nu,AssayData,character-method} \alias{phi,AssayData,character-method} \title{Methods for class AssayData in the oligoClasses package} \description{ Batch statistics used for estimating copy number are stored as AssayData in the 'batchStatistics' slot of the CNSet class. Each element in the AssayData must have the same number of rows and columns. Rows correspond to features and columns correspond to batch. } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Methods}{ \describe{ \item{batchNames}{\code{signature(object = "AssayData")}: ... } \item{batchNames<-}{\code{signature(object = "AssayData")}: ... } \item{corr}{\code{signature(object = "AssayData", allele = "character")}: ... } \item{nu}{\code{signature(object = "AssayData", allele = "character")}: ... } \item{phi}{\code{signature(object = "AssayData", allele = "character")}: ... } % \item{sigma2}{\code{signature(object = "AssayData", allele = "character")}: ... } % \item{tau2}{\code{signature(object = "AssayData", allele = "character")}: ... } } } \section{Details}{ \code{lM}: Extracts entire list of linear model parameters. \code{corr}: The within-genotype correlation of log2(A) and log2(B) intensities. \code{nu}: The intercept for the linear model. The linear model is fit to the A and B alleles independently. \code{phi}: The slope for the linear model. The linear model is fit independently to the A and B alleles. %\code{sigma2}: For allele A, sigma2 is calculated as the squared MAD %of the log2(intensity) for allele 'A' among subjects with genotype AA. %For allele B, sigma2 is calculated as the squared MAD of the %log2(intensity) for allele 'B' among subjects with genotype BB. %sigma2 can be interpreted as a robust estimate of the signal variance. % %\code{tau2}: For allele A, tau2 is calculated as the squared MAD of %the log2(intensity) for allele 'A' among subjects with genotype BB. %For allele B, tau2 is calculated as the squared MAD of the %log2(intensity) for allele 'B' among subjects with genotype AA. tau2 %can be interpeted as a robust estimate of the background variance. } \seealso{ \code{\link{CNSet-class}} } \examples{ library(crlmm) library(Biobase) data(cnSetExample, package="crlmm") cnSet <- cnSetExample isCurrent(cnSet) assayDataElementNames(batchStatistics(cnSet)) ## Accessors for linear model parameters ## -- Included here primarily as a check that accessors are working ## -- Values are all NA until CN estimation is performed using the crlmm package ## ## subsetting cnSet[1:10, ] ## names of elements in the object ## accessors for parameters nu(cnSet, "A")[1:10, ] nu(cnSet, "B")[1:10, ] phi(cnSet, "A")[1:10, ] phi(cnSet, "B")[1:10, ] } \keyword{classes} oligoClasses/man/AssayDataList.Rd0000644000175200017520000000126614710217345020004 0ustar00biocbuildbiocbuild\name{AssayDataList} \alias{AssayDataList} \title{Create a list of assay data elements} \description{The eSetList-derived classes have an assayDataList slot instead of an assayData slot. } \usage{ AssayDataList(storage.mode = c("lockedEnvironment", "environment", "list"), ...) } \arguments{ \item{storage.mode}{See \code{assayDataNew}.} \item{\dots}{Named lists of matrices} } \value{ environment } \author{ R.Scharpf } \seealso{ \code{\link{assayDataNew}} } \examples{ r <- replicate(5, matrix(rnorm(25),5,5), simplify=FALSE) r <- lapply(r, function(x,dns) {dimnames(x) <- dns; return(x)}, dns=list(letters[1:5], LETTERS[1:5])) ad <- AssayDataList(r=r) ls(ad) } \keyword{manip} oligoClasses/man/BeadStudioSet-class.Rd0000644000175200017520000000612514710217345021077 0ustar00biocbuildbiocbuild\name{BeadStudioSet-class} \Rdversion{1.1} \docType{class} \alias{BeadStudioSet-class} \alias{BafLrrSet-class} \alias{BeadStudioSet} \alias{baf,BeadStudioSet-method} \alias{baf<-,BeadStudioSet-method} \alias{baf<-} \alias{copyNumber,BeadStudioSet-method} \alias{copyNumber<-,BeadStudioSet,ANY-method} \alias{coerce,BeadStudioSet,data.frame-method} \alias{initialize,BeadStudioSet-method} \alias{lrr,BeadStudioSet-method} \alias{lrr<-,BeadStudioSet-method} \alias{lrr<-,BeadStudioSet,ANY-method} \alias{lrr<-,BafLrrSet-method} \alias{lrr<-,BafLrrSet,ANY-method} \alias{lrr<-} \alias{show,BeadStudioSet-method} \alias{updateObject,BeadStudioSet-method} \title{Class \code{"BeadStudioSet"}} \description{ A container for log R ratios and B allele frequencies from SNP arrays. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("BeadStudioSet", assayData, phenoData, featureData, experimentData, annotation, protocolData, baf, lrr, ...)}. } \section{Slots}{ \describe{ \item{\code{featureData}:}{Object of class \code{"GenomeAnnotatedDataFrame"} ~~ } \item{\code{assayData}:}{Object of class \code{"AssayData"} ~~ } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{experimentData}:}{Object of class \code{"MIAxE"} ~~ } \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{protocolData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{genome}:}{Object of class \code{"character"} ~~ } \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{gSet}"}, directly. Class \code{"\linkS4class{eSet}"}, by class "gSet", distance 2. Class \code{"\linkS4class{VersionedBiobase}"}, by class "gSet", distance 3. Class \code{"\linkS4class{Versioned}"}, by class "gSet", distance 4. } \section{Methods}{ In the methods below, \code{object} has class \code{BeadStudioSet}. \describe{ \item{}{\code{baf(object)}: accessor for the matrix of B allele frequencies.} \item{}{\code{baf(object) <- value} replacement method for B allele frequencies: \code{value} must be a matrix of integers.} \item{}{\code{as(object, "data.frame")}: coerce to data.frame with column headers 'lrr', 'baf', 'x' (physical position with unit Mb), 'id', and 'is.snp'. Used for plotting with lattice.} \item{}{\code{copyNumber(object)}: accessor for log R ratios.} \item{}{\code{copyNumber(object) <- value}: replacement method for the log R ratios} \item{initialize}{\code{signature(.Object = "BeadStudioSet")}: constructs an instance of the class} \item{}{\code{lrr(object)}: accessor for matrix of log R ratios} \item{}{\code{lrr(object) <- value} replacement method for log R ratios: \code{value} should be a matrix or a \code{ff_matrix}.} \item{}{\code{show(object)}: print a short summary of the \code{BeadStudioSet} object.} \item{}{\code{updateObject(object)}: update a \code{BeadStudioSet} object.} } } \author{ R. Scharpf } \examples{ new("BeadStudioSet") } \keyword{classes} oligoClasses/man/BeadStudioSetList-class.Rd0000644000175200017520000000630614710217345021734 0ustar00biocbuildbiocbuild\name{BeadStudioSetList-class} \Rdversion{1.1} \docType{class} \alias{BeadStudioSetList-class} \alias{BafLrrSetList-class} \alias{oligoSetList-class} \alias{[[,BeadStudioSetList,ANY,ANY-method} \alias{[[,BafLrrSetList,ANY,ANY-method} \alias{[[<-,BafLrrSetList,ANY,ANY,BafLrrSet-method} \alias{baf,BeadStudioSetList-method} \alias{baf,BafLrrSetList-method} \alias{baf,oligoSetList-method} \alias{calls,oligoSetList-method} \alias{clone2} \alias{clone2,BafLrrSetList-method} \alias{copyNumber,oligoSetList-method} \alias{initialize,BeadStudioSetList-method} \alias{lrr,BeadStudioSetList-method} \alias{lrr,BafLrrSetList-method} \alias{lrr<-,BafLrrSetList,matrix-method} \alias{updateObject,BeadStudioSetList-method} \title{List classes with assay data listed by chromosome} \description{ Container for log R ratios and B allele frequencies stored by chromosome. } \section{Slots}{ \describe{ \item{\code{assayDataList}:}{Object of class \code{"AssayData"} ~~ } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{featureDataList}:}{Object of class \code{"list"} ~~ } \item{\code{chromosome}:}{Object of class \code{"integer"} ~~ } \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{genome}:}{Object of class \code{"character"} indicating the genome build. Valid entries are "hg18" and "hg19". } } } \section{Methods defined for the class}{ \describe{ \item{}{\code{clone2(object, id, prefix="",...)} Performs a deep copy of the ff objects in the assay data elements of \code{object}. A new object of the same class will be instantiated. The ff objects in the instantiated object will point to ff files on disk with prefix given by the argument \code{prefix}. A use-case for such a function is that one may want to perform wave correction on the log R ratios in \code{object}, but keep a copy of the original unadjusted log R ratios. If \code{object} is not copied using \code{clone2} prior to wave correction, the log R ratios will be updated on disk and the original, unadjusted log R ratios will no longer be available. } } } \section{Accessors}{ \describe{ \item{}{\code{baf(object)}An accessor for the B allele frequencies (BAFs). The accessor returns a list where each element of the list is a matrix of the BAFs for the corresponding element in the SetList object. While the BAFs have a range [0, 1], they are often saved internally as integers by multiplying the original BAFs by 1000. Users can restore the original scale by dividing by 1000.} \item{}{\code{lrr(object)} An accessor for the log R ratios, an estimate of the copy number (presumably relative to diploid copy number) at each marker on a SNP array. The accessor returns a list where each element of the list is a matrix of the log R ratios for the corresponding element in the SetList object. The log R ratios are often saved internally as integers by multiplying the original LRRs by 100 in order to reduce the memory footprint of large studies. Users can restore the original scale by dividing by 100.} } } \author{ R. Scharpf } \seealso{ See supporting packages for methods defined for the class. } \keyword{classes} oligoClasses/man/CNSet-class.Rd0000644000175200017520000001304614710217345017354 0ustar00biocbuildbiocbuild\name{CNSet-class} \Rdversion{1.1} \docType{class} \alias{CNSet-class} \alias{CNSet} \alias{[,CNSet-method} \alias{[,CNSet,ANY-method} \alias{A,CNSet-method} \alias{A<-,CNSet-method} \alias{allele,CNSet-method} \alias{B,CNSet-method} \alias{B<-,CNSet-method} \alias{batch,CNSet-method} \alias{batchNames,CNSet-method} \alias{batchNames<-,CNSet-method} \alias{batchStatistics,CNSet-method} \alias{batchStatistics<-,CNSet,AssayData-method} \alias{calls,CNSet-method} \alias{calls<-,CNSet,matrix-method} \alias{close,CNSet-method} \alias{coerce,CNSetLM,CNSet-method} \alias{coerce,CNSet,CopyNumberSet-method} \alias{coerce,CNSet,oligoSnpSet} \alias{coerce,CNSet,oligoSnpSet-method} \alias{confs,CNSet-method} \alias{confs<-,CNSet,matrix-method} \alias{corr,CNSet,character-method} \alias{flags,CNSet-method} \alias{initialize,CNSet-method} \alias{initialize,CNSetLM-method} %\alias{lM,CNSet-method} \alias{nu,CNSet,character-method} \alias{open,CNSet-method} \alias{phi,CNSet,character-method} \alias{show,CNSet-method} \alias{snpCallProbability,CNSet-method} \alias{sigma2,CNSet,character-method} \alias{tau2,CNSet,character-method} \alias{updateObject,CNSet-method} \title{Class "CNSet"} \description{ CNSet is a container for intermediate data and parameters pertaining to allele-specific copy number estimation. Methods for CNSet objects, including accessors for linear model parameters and allele-specific copy number are included here. } \section{Objects from the Class}{ An object from the class is not generally intended to be initialized by the user, but returned by the \code{genotype} function in the \code{crlmm} package. The following creates a very basic \code{CNSet} with \code{assayData} containing the required elements. \code{new(CNSet, alleleA=new("matrix"), alleleB=new("matrix"), call=new("matrix"), callProbability=new("matrix"), batch=new("factor"))} } \section{Slots}{ \describe{ \item{\code{batch}:}{Object of class \code{"factor"} ~~ } \item{\code{batchStatistics}:}{Object of class \code{"AssayData"} ~~ } \item{\code{assayData}:}{Object of class \code{"AssayData"} ~~ } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{featureData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{experimentData}:}{Object of class \code{"MIAME"} ~~ } \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{protocolData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{datadir}:}{Object of class \code{"list"}~~} \item{\code{mixtureParams}:}{Object of class \code{"matrix"}~~} \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} ~~ } } } \section{Methods}{ The argument \code{object} for the following methods is a \code{CNSet}. \describe{ \item{}{\code{object[i, j]}: subset the \code{CNSet} object by markers (i) and/or samples (j). } \item{}{\code{A(objet)}: accessor for the normalized intensities of allele A} \item{}{\code{A(object) <- value}: replace intensities for the A allele intensities by \code{value}. The object \code{value} must be a \code{matrix}, \code{ff_matrix}, or \code{ffdf}.} \item{}{\code{allele(object, allele)}: accessor for the normalized intensities for the A or B allele. The argument for \code{allele} must be either 'A' or 'B'} \item{}{\code{B(objet)}: accessor for the normalized intensities of allele B} \item{}{\code{B(object) <- value}: replace intensities for the B allele intensities by \code{value}. The object \code{value} must be a \code{matrix}, \code{ff_matrix}, or \code{ffdf}.} \item{}{\code{batch(object)}: vector of batch labels for each sample.} \item{}{\code{batchNames(object)}: the unique batch names} %\item{batchNames<-}{\code{signature(object = "CNSet")}: ... } \item{}{\code{batchNames(object) <- value}: relabel the batches} \item{}{\code{calls(object)}: accessor for genotype calls coded as 1 (AA), 2 (AB), or 3 (BB). Nonpolymorphic markers are \code{NA}.} \item{}{\code{confs(object)}: accessor for the genotype confidence scores.} \item{}{\code{close(object)}: close any open file connections to \code{ff} objects stored in the \code{CNSet} object.} %\item{coerce}{\code{signature(from="CNSet")}: ... } \item{}{\code{as(object, "oligoSnpSet")}: coerce a \code{CNSet} object to an object of class \code{oligoSnpSet} -- a container for the total copy number and genotype calls.} % \item{corr}{\code{signature(object = "CNSet", allele = % "character")}: ... } \item{}{\code{corr(object)}: the correlation of the A and B intensities within each genotype.} %\item{flags}{\code{signature(object="CNSet")}: SNP flags } \item{}{\code{flags(object)}: flags to indicate possible problems with the copy number estimation. Not fully implemented at this point.} \item{}{\code{new("CNSet")}: instantiating a \code{CNSet} object.} \item{}{\code{nu(object, allele)}: accessor for the intercept (background) for the A and B alleles. The value of \code{allele} must be 'A' or 'B'.} \item{}{\code{open(object)} open file connections for all \code{ff} objects stored in the \code{CNSet} object.} \item{}{\code{nu(object, allele)}: accessor for the slope for the A and B alleles. The value of \code{allele} must be 'A' or 'B'.} \item{}{\code{sigma2(object, allele)}: accessor for the within genotype variance} \item{}{\code{tau2(object, allele)}: accessor for background variance} } } \author{ R. Scharpf } \examples{ new("CNSet") } \keyword{classes} oligoClasses/man/ClassesNotExported.Rd0000644000175200017520000000024214710217345021060 0ustar00biocbuildbiocbuild\name{ListClasses} \alias{initialize,eSetList-method} \title{eSetList class} \description{ Initialization method for eSetList virtual class. } \keyword{classes} oligoClasses/man/CopyNumberSet-class.Rd0000644000175200017520000000502314710217345021133 0ustar00biocbuildbiocbuild\name{CopyNumberSet-class} \Rdversion{1.1} \docType{class} \alias{CopyNumberSet-class} \alias{CopyNumberSet} \alias{cnConfidence,CopyNumberSet-method} \alias{cnConfidence<-,CopyNumberSet,matrix-method} \alias{copyNumber,CopyNumberSet-method} \alias{copyNumber<-,CopyNumberSet,matrix-method} \alias{initialize,CopyNumberSet-method} \alias{checkOrder,CopyNumberSet-method} \title{Class \code{"CopyNumberSet"}} \description{ Container for storing total copy number estimates and confidence scores of the copy number estimates. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CopyNumberSet", assayData, phenoData, featureData, experimentData, annotation, protocolData, copyNumber, cnConfidence, ...)}. } \section{Slots}{ \describe{ \item{\code{assayData}:}{Object of class \code{"AssayData"} ~~ } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{featureData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{experimentData}:}{Object of class \code{"MIAxE"} ~~ } \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{protocolData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{eSet}"}, directly. Class \code{"\linkS4class{VersionedBiobase}"}, by class "eSet", distance 2. Class \code{"\linkS4class{Versioned}"}, by class "eSet", distance 3. } \section{Methods}{ \describe{ \item{cnConfidence}{\code{signature(object = "CopyNumberSet")}: ... } \item{cnConfidence<-}{\code{signature(object = "CopyNumberSet", value = "matrix")}: ... } \item{coerce}{\code{signature(from = "CNSet", to = "CopyNumberSet")}: ... } \item{copyNumber}{\code{signature(object = "CopyNumberSet")}: ... } \item{copyNumber<-}{\code{signature(object = "CopyNumberSet", value = "matrix")}: ... } \item{initialize}{\code{signature(.Object = "CopyNumberSet")}: ... } } } \author{ R. Scharpf } \note{ This container is primarily for platforms for which genotypes are unavailable. As \code{oligoSnpSet} extends this class, methods related to total copy number that do not depend on genotypes can be defined at this level. } \seealso{ For genotyping platforms, total copy number estimates and genotype calls can be stored in the \code{\linkS4class{oligoSnpSet}} class. } \examples{ showClass("CopyNumberSet") cnset <- new("CopyNumberSet") ls(Biobase::assayData(cnset)) } \keyword{classes} oligoClasses/man/CopyNumberSet-methods.Rd0000644000175200017520000000521514710217345021474 0ustar00biocbuildbiocbuild\name{CopyNumberSet-methods} \docType{methods} \alias{CopyNumberSet-methods} \alias{copyNumber} \alias{copyNumber<-} \alias{cnConfidence} \alias{cnConfidence<-} \title{Methods for class CopyNumberSet.} \description{ Accessors and CopyNumberSet } \usage{ copyNumber(object, ...) cnConfidence(object) copyNumber(object) <- value cnConfidence(object) <- value } \arguments{ \item{object}{\code{CopyNumberSet} object or derived class} \item{\dots}{Ignored for \code{CopyNumberSet} and \code{oligoSnpSet}. } \item{value}{matrix} } \value{ \code{copyNumber} returns a matrix of copy number estimates or relative copy number estimates. Since the copy number estimates are stored as integers (copy number * 100), the matrix returned by the \code{copyNumber} accessor will need to be divided by a factor of 100 to transform the measurements back to the original copy number scale. \code{cnConfidence} returns a matrix of confidence scores for the copy number estimates. These are also represented as integers and will require a back-transformation to the original scale. } \keyword{methods} \keyword{manip} \examples{ library(Biobase) data(locusLevelData) path <- system.file("extdata", package="oligoClasses") fd <- readRDS(file.path(path, "genomeAnnotatedDataFrameExample.rds")) ## the following command creates an 'oligoSnpSet' object, storing ## an integer representation of the log2 copy number in the 'copyNumber' element ## of the assayData. Genotype calls and genotype confidence scores are also stored ## in the assayData. oligoSet <- new("oligoSnpSet", copyNumber=integerMatrix(log2(locusLevelData[["copynumber"]]/100), 100), call=locusLevelData[["genotypes"]], callProbability=integerMatrix(locusLevelData[["crlmmConfidence"]], 1), annotation=locusLevelData[["platform"]], featureData=fd, genome="hg19") ## There are several accessors for the oligoSnpSet class. icn <- copyNumber(oligoSet) range(icn) ## integer scale lcn <- icn/100 range(lcn) ## log2 copy number ## confidence scores for the genotypes are also represented on an integer scale ipr <- snpCallProbability(oligoSet) range(ipr) ## integer scale ## for genotype confidence scores, the helper function i2p ## converts back to a probability scale pr <- i2p(ipr) range(pr) ## The helper function confs is a shortcut, extracting the ## integer-based confidence scores and transforming to the ## probability scale pr2 <- confs(oligoSet) all.equal(pr, pr2) ## To extract information on the annotation of the SNPs, one can use position(oligoSet) chromosome(oligoSet) ## the position and chromosome coordinates were extracted from build hg19 genomeBuild(oligoSet) } oligoClasses/man/DBPDInfo-class.Rd0000644000175200017520000000327514710217345017730 0ustar00biocbuildbiocbuild\name{DBPDInfo-class} \docType{class} \alias{initialize,DBPDInfo-method} \alias{annotation,DBPDInfo-method} \alias{DBPDInfo-class} \alias{AffySNPPDInfo-class} \alias{AffySNPCNVPDInfo-class} \alias{show,DBPDInfo-method} \alias{AffyExpressionPDInfo-class} \alias{AffyTilingPDInfo-class} \alias{AffyGenePDInfo-class} \alias{AffyExonPDInfo-class} \alias{AffySTPDInfo-class} \alias{SNPPDInfo-class} \alias{SNPCNVPDInfo-class} \alias{NgsTilingPDInfo-class} \alias{TilingPDInfo-class} \alias{ExpressionPDInfo-class} \alias{NgsExpressionPDInfo-class} \alias{GenericPDInfo-class} \alias{DBPDInfo} \alias{AffySNPPDInfo} \alias{AffySNPCNVPDInfo} \alias{show,DBPDInfo-method} \alias{AffyExpressionPDInfo} \alias{AffyTilingPDInfo} \alias{AffyGenePDInfo} \alias{AffyExonPDInfo} \alias{AffySTPDInfo} \alias{SNPPDInfo} \alias{SNPCNVPDInfo} \alias{NgsTilingPDInfo} \alias{TilingPDInfo} \alias{ExpressionPDInfo} \alias{NgsExpressionPDInfo} \alias{GenericPDInfo} \title{Class "DBPDInfo"} \description{A class for Platform Design Information objects, stored using a database approach} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("DBPDInfo", ...)}. } \section{Slots}{ \describe{ \item{\code{getdb}:}{Object of class \code{"function"} } \item{\code{tableInfo}:}{Object of class \code{"data.frame"} } \item{\code{manufacturer}:}{Object of class \code{"character"} } \item{\code{genomebuild}:}{Object of class \code{"character"} } \item{\code{geometry}:}{Object of class \code{"integer"} with length 2 (rows x columns)} } } \section{Methods}{ \describe{ \item{annotation}{string describing annotation package associated to object} } } \keyword{classes} oligoClasses/man/FeatureSetExtensions-class.Rd0000644000175200017520000000501714710217345022526 0ustar00biocbuildbiocbuild\name{FeatureSet-class} \docType{class} \alias{show,FeatureSet-method} \alias{FeatureSet-class} \alias{FeatureSet} \alias{initialize,FeatureSet-method} \alias{GeneFeatureSet-class} \alias{ExpressionFeatureSet-class} \alias{ExonFeatureSet-class} \alias{SnpFeatureSet-class} \alias{SnpCnvFeatureSet-class} \alias{TilingFeatureSet-class} \alias{TilingFeatureSet2-class} \alias{GenericFeatureSet-class} \alias{GeneFeatureSet} \alias{ExpressionFeatureSet} \alias{ExonFeatureSet} \alias{SnpFeatureSet} \alias{SnpCnvFeatureSet} \alias{TilingFeatureSet} \alias{TilingFeatureSet2} \alias{GenericFeatureSet} \title{"FeatureSet" and "FeatureSet" Extensions} \description{Classes to store data from Expression/Exon/SNP/Tiling arrays at the feature level.} \section{Objects from the Class}{ The FeatureSet class is VIRTUAL. Therefore users are not able to create instances of such class. Objects for FeatureSet-like classes can be created by calls of the form: \code{new(CLASSNAME, assayData, manufacturer, platform, exprs, phenoData, featureData, experimentData, annotation, ...)}. But the preferred way is using parsers like \code{\link[oligo]{read.celfiles}} and \code{\link[oligo]{read.xysfiles}}. } \section{Slots}{ \describe{ \item{\code{manufacturer}:}{Object of class \code{"character"} } \item{\code{assayData}:}{Object of class \code{"AssayData"} } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} } \item{\code{featureData}:}{Object of class \code{"AnnotatedDataFrame"} } \item{\code{experimentData}:}{Object of class \code{"MIAME"} } \item{\code{annotation}:}{Object of class \code{"character"} } \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} } } } \section{Methods}{ \describe{ \item{show}{\code{signature(.Object = "FeatureSet")}: show object contents } \item{bothStrands}{\code{signature(.Object = "SnpFeatureSet")}: checks if object contains data for both strands simultaneously (50K/250K Affymetrix SNP chips - in this case it returns TRUE); if object contains data for one strand at a time (SNP 5.0 and SNP 6.0 - in this case it returns FALSE)} } } \author{Benilton Carvalho} \seealso{\code{\link[Biobase:class.eSet]{eSet}}, \code{\link[Biobase:class.VersionedBiobase]{VersionedBiobase}}, \code{\link[Biobase:class.Versioned]{Versioned}}} \examples{ set.seed(1) tmp <- 2^matrix(rnorm(100), ncol=4) rownames(tmp) <- 1:25 colnames(tmp) <- paste("sample", 1:4, sep="") efs <- new("ExpressionFeatureSet", exprs=tmp) } \keyword{classes} oligoClasses/man/GRanges-methods.Rd0000644000175200017520000000605014710217345020261 0ustar00biocbuildbiocbuild\name{GRanges-methods} \docType{methods} %\alias{coverage2,GRanges-method} %\alias{coverage2,GRangesList-method} \alias{state} \alias{coverage2} \alias{numberProbes} \alias{coverage2,GRanges-method} \alias{coverage2,GRangesList-method} \alias{numberProbes,GRanges-method} \alias{numberProbes,GRangesList-method} \alias{findOverlaps,GRanges,gSet-method} \alias{findOverlaps,GRangesList,gSet-method} \alias{genomeBuild,GRanges-method} \alias{sampleNames,GRanges-method} \alias{sampleNames,GRangesList-method} \alias{state,GRanges-method} \alias{state,GRangesList-method} \title{Methods for GRanges objects} \description{Methods for GRanges objects} \section{findOverlaps methods}{ \describe{ \item{}{ \code{findOverlaps(query, subject, ...)}: Find the feature indices in \code{subject} that overlap the genomic intervals in \code{query}, where \code{query} is a \code{GRanges} object and subject is a \code{gSet}-derived object. Additional arguments to the \code{findOverlaps} method in the package \pkg{IRanges} can be passed through the \code{\dots} operator. } } } \section{Accessors}{ \code{object} is an instance of the \code{GRanges} class. \describe{ \item{}{ \code{coverage2(object)}: For the \code{GRanges} and \code{GRangesList} objects returned by the hidden Markov model implemented in the "VanillaICE" package and the segmentation algorithm in the "MinimumDistance" package, the intervals are annotated by the number of probes (markers) for SNPs and nonpolymorphic regions. \code{coverage2} and \code{numberProbes} are convenient accessors for these annotations. } \item{}{ \code{genomeBuild(object)}: Accessor for the UCSC genome build. } \item{}{ \code{numberProbes(object)}: Integer vector indicating the number of probes (markers) for each range in \code{object}. Equivalent to \code{coverage2}. } \item{}{ \code{state(object)}: Accessor for the \code{elementMetadata} column 'state', when applicable. State is used to contain the index of the inferred copy number state for various \code{hmm} methods defined in the \pkg{VanillaICE}. } } } \seealso{\code{\linkS4class{GRanges}}} \examples{ library(IRanges) library(GenomicRanges) gr1 <- GRanges(seqnames = "chr2", ranges = IRanges(3, 6), state=3L, numberProbes=100L) ## convenience functions state(gr1) numberProbes(gr1) gr2 <- GRanges(seqnames = c("chr1", "chr1"), ranges = IRanges(c(7,13), width = 3), state=c(2L, 2L), numberProbes=c(200L, 250L)) gr3 <- GRanges(seqnames = c("chr1", "chr2"), ranges = IRanges(c(1, 4), c(3, 9)), state=c(1L, 4L), numberProbes=c(300L, 350L)) ## Ranges organized by sample grl <- GRangesList("sample1" = gr1, "sample2" = gr2, "sample3" = gr3) sampleNames(grl) ## same as names(grl) numberProbes(grl) chromosome(grl) state(grl) gr <- stack(grl) sampleNames(gr) chromosome(gr) state(gr) } \keyword{methods} oligoClasses/man/GenomeAnnotatedDataFrame-class.Rd0000644000175200017520000000513114710217345023211 0ustar00biocbuildbiocbuild\name{GenomeAnnotatedDataFrame-class} \Rdversion{1.1} \docType{class} \alias{GenomeAnnotatedDataFrame-class} \alias{GenomeAnnotatedDataFrame} \alias{coerce,AnnotatedDataFrame,GenomeAnnotatedDataFrame-method} \alias{getArm,GenomeAnnotatedDataFrame-method} \alias{initialize,GenomeAnnotatedDataFrame-method} \alias{makeFeatureGRanges,GenomeAnnotatedDataFrame-method} \alias{position<-} \alias{position<-,GenomeAnnotatedDataFrame,integer-method} \alias{updateObject,GenomeAnnotatedDataFrame-method} \title{Class \code{"GenomeAnnotatedDataFrame"}} \description{ AnnotatedDataFrame with genomic coordinates (chromosome, position) } \section{Slots}{ \describe{ \item{\code{varMetadata}:}{Object of class \code{"data.frame"} ~~ } \item{\code{data}:}{Object of class \code{"data.frame"} ~~ } \item{\code{dimLabels}:}{Object of class \code{"character"} ~~ } \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{AnnotatedDataFrame}"}, directly. Class \code{"\linkS4class{Versioned}"}, by class "AnnotatedDataFrame", distance 2. } \section{Coercion to or from other classes}{ \describe{ \item{}{ \code{as(from, "GenomeAnnotatedDataFrame")}: Coerce an object of class \code{AnnotatedDataFrame} to a \code{GenomeAnnotatedDataFrame}. } \item{}{ \code{makeFeatureGRanges(object, genome, ...)}: Construct a \code{GRanges} instance from a \code{GenomeAnnotatedDataFrame} object. \code{genome} is a character string indicating the UCSC build. Supported builds are "hg18" and "hg19", but are platform specific. In particular, some platforms only support build hg19 at this time. } \item{}{ \code{updateObject(object)}: For updating a \code{GenomeAnnotatedDataFrame} } } } \section{Accessors}{ \describe{ \item{}{ \code{chromosome(object)}, \code{chromosome(object) <- value} Get or set chromosome. } \item{}{ \code{isSnp(object)}: Many platforms include polymorphic and nonpolymorphic markers. isSnp evalutes to \code{TRUE} if the marker is polymorphic. } \item{}{ \code{position(ojbect)}: Physical position in the genome } \item{}{ \code{getArm(object, genome)}: Retrieve character vector indicating the chromosome arm of each marker in \code{object}. \code{genome} should indicate which genome build was used to define the chromosomal locations (currently, only UCSC genome builds 'hg18' and 'hg19' supported for this function). } } } \author{ R. Scharpf } oligoClasses/man/GenomeAnnotatedDataFrameFrom-methods.Rd0000644000175200017520000000403414710217345024374 0ustar00biocbuildbiocbuild\name{GenomeAnnotatedDataFrameFrom-methods} \docType{methods} \alias{GenomeAnnotatedDataFrameFrom} \alias{GenomeAnnotatedDataFrameFrom,AssayData-method} \alias{GenomeAnnotatedDataFrameFrom,ff_or_matrix-method} \alias{GenomeAnnotatedDataFrameFrom,NULL-method} \alias{GenomeAnnotatedDataFrameFrom,array-method} \alias{GenomeAnnotatedDataFrameFrom,list-method} \title{Methods for Function GenomeAnnotatedDataFrameFrom in Package oligoClasses} \description{ \code{GenomeAnnotatedDataFrameFrom} is a convenience for creating \code{\linkS4class{GenomeAnnotatedDataFrame}} objects. } \section{Methods}{ Use the method with \code{GenomeAnnotatedDataFrameFrom(object, annotationPkg, genome, ...)}; the argument \code{annotationPkg} \emph{must} be specified for \code{matrix} and \code{AssayData} classes. \describe{ \item{\code{signature(object="assayData")}}{ This method creates an \code{GenomeAnnotatedDataFrame} using feature names and dimensions of an \code{\link{AssayData}} object as a template. } \item{\code{signature(object="matrix")}}{ This method creates an \code{GenomeAnnotatedDataFrame} using row names and dimensions of a \code{\link{matrix}} object as a template. } \item{\code{signature(object="NULL")}}{ This method (called with 'NULL' as the object) creates an empty \code{GenomeAnnotatedDataFrame}. } \item{\code{signature(object="array")}}{ This method (called with 'array' as the object) creates a GenomeAnnotatedDataFrame using the first dimension of the array (rows are the number of features). } }} \author{R Scharpf} \examples{ require(Biobase) minReqVersion <- "1.0.2" require(human370v1cCrlmm) if (packageDescription("human370v1cCrlmm", fields='Version') >= minReqVersion){ x <- matrix(1:25, 5, 5, dimnames=list(c("rs10000092","rs1000055", "rs100016", "rs10003241", "rs10004197"), NULL)) gd <- GenomeAnnotatedDataFrameFrom(x, annotationPkg="human370v1cCrlmm", genome="hg18") pData(gd) chromosome(gd) position(gd) } } \keyword{methods} oligoClasses/man/SnpSet-methods.Rd0000644000175200017520000000627214710217345020155 0ustar00biocbuildbiocbuild\name{SnpSet-methods} %\docType{methods} \alias{calls} \alias{calls,SnpSet-method} \alias{calls<-} \alias{calls<-,SnpSet,matrix-method} \alias{confs} \alias{confs,SnpSet-method} \alias{confs<-} \alias{confs<-,SnpSet,matrix-method} \alias{checkOrder,SnpSet-method} \title{Accessors and methods for SnpSet objects} \description{ Utility functions for accessing data in \code{SnpSet} objects. } \usage{ calls(object) calls(object) <- value confs(object, transform=TRUE) confs(object) <- value } \arguments{ \item{object}{A \link{SnpSet} object.} \item{transform}{Logical. Whether to transform the integer representation of the confidence score (for memory efficiency) to a probability. See details.} \item{value}{A matrix.} } \details{ \code{calls} returns the genotype calls. CRLMM stores genotype calls as integers (1 - AA; 2 - AB; 3 - BB). \code{confs} returns the confidences associated with the genotype calls. The current implementation of CRLMM stores the confidences as integers to save memory on disk by using the transformation: round(-1000*log2(1-p)), where 'p' is the posterior probability of the call. \code{confs} is a convenience function that transforms the integer representation back to a probability. Note that if the assayData elements of the \code{SnpSet} objects are \code{ff_matrix} or \code{ffdf}, the \code{confs} function will return a warning. For such objects, one should first subset the \code{ff} object and coerce to a matrix, then apply the above conversion. The function \code{snpCallProbability} for the \code{callProbability} slot of \code{SnpSet} objects. See the examples below. \code{checkOrder} checks whether the object is ordered by chromosome and physical position, evaluating to TRUE or FALSE. } \note{ Note that the replacement method for \code{confs<-} expects a matrix of probabilities and will automatically convert the probabilities to an integer representation. See details for the conversion. The accessor \code{\link{snpCallProbability}} is an accessor for the 'callProbability' element of the \code{assayData}. The name can be misleading, however, as the accessor will not return a probability if the call probabilities are represented as integers. } %\section{Methods}{ % \describe{ % \item{\code{initialize(SnpSet)}:}{Object instantiation, used by % \code{new}; not to be called directly by the user.} % \item{\code{calls(object)}:}{accessor for genotype calls} % \item{\code{confs(object)}:}{accessor for crlmm genotype confidence scores} % } %} \seealso{ The helper functions \code{\link{p2i}} converts probabilities to integers and \code{\link{i2p}} converts integers to probabilities. See \code{\link{order}} and \code{\link{checkOrder}}. } \examples{ theCalls <- matrix(sample(1:3, 20, rep=TRUE), nc=2) p <- matrix(runif(20), nc=2) integerRepresentation <- matrix(as.integer(round(-1000*log(1-p))), 10, 2) obj <- new("SnpSet2", call=theCalls, callProbability=integerRepresentation) calls(obj) confs(obj) ## coerces to probability scale int <- Biobase::snpCallProbability(obj) ## not necessarily a probability p3 <- i2p(int) ## to convert back to a probability } \keyword{manip} oligoClasses/man/SnpSet2-class.Rd0000644000175200017520000000513514710217345017676 0ustar00biocbuildbiocbuild\name{SnpSet2-class} \Rdversion{1.1} \docType{class} \alias{SnpSet2-class} \alias{calls,SnpSet2-method} \alias{calls<-,SnpSet2,matrix-method} \alias{confs,SnpSet2-method} \alias{confs<-,SnpSet2,matrix-method} \alias{exprs,SnpSet2-method} \alias{initialize,SnpSet2-method} \title{Class \code{"SnpSet2"}} \description{ A container for genotype calls and confidence scores. Similar to the \code{SnpSet} class in \pkg{Biobase}, but \code{SnpSet2} extends \code{gSet} directly whereas \code{SnpSet} extends \code{eSet}. Useful properties of \code{gSet} include the \code{genome} slot and the \code{GenomeAnnotatedDataFrame}. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("SnpSet2", assayData, phenoData, featureData, experimentData, annotation, protocolData, call, callProbability, genome, ...)}. %% ~~ describe objects here ~~ } \section{Slots}{ \describe{ \item{\code{genome}:}{Object of class \code{"character"} indicating the UCSC genome build. Supported builds are 'hg18' and 'hg19'.} \item{\code{assayData}:}{Object of class \code{"AssayData"}.} \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"}.} \item{\code{featureData}:}{Object of class \code{"AnnotatedDataFrame"}.} \item{\code{experimentData}:}{Object of class \code{"MIAxE"}.} \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{protocolData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{gSet}"}, directly. Class \code{"\linkS4class{eSet}"}, by class "gSet", distance 2. Class \code{"\linkS4class{VersionedBiobase}"}, by class "gSet", distance 3. Class \code{"\linkS4class{Versioned}"}, by class "gSet", distance 4. } \section{Accessors}{ The argument \code{object} for the following methods is an instance of the \code{SnpSet2} class. \describe{ \item{}{ \code{calls(object)}: \code{calls(object) <- value}: Gets or sets the genotype calls. \code{value} can be a \code{matrix} or a \code{ff_matrix}. } \item{}{ \code{confs(object)}: \code{confs(object) <- value}: Gets or sets the genotype confidence scores. \code{value} can be a \code{matrix} or a \code{ff_matrix}. } \item{}{ \code{snpCall(object)}: \code{snpCallProbability(object) <- value}: Gets or sets the genotype confidence scores. } } } \author{ R. Scharpf } \seealso{ \code{\linkS4class{SnpSet}} } \examples{ showClass("SnpSet2") new("SnpSet2") } \keyword{classes} oligoClasses/man/SnpSuperSet-class.Rd0000644000175200017520000000317714710217345020637 0ustar00biocbuildbiocbuild\name{SnpSuperSet-class} \Rdversion{1.1} \docType{class} \alias{SnpSuperSet-class} \alias{SnpSuperSet} \alias{initialize,SnpSuperSet-method} \title{Class "SnpSuperSet"} \description{A class to store locus-level summaries of the quantile normalized intensities, genotype calls, and genotype confidence scores} \section{Objects from the Class}{ \code{new("SnpSuperSet", allelea=alleleA, alleleB=alleleB, call=call, callProbability, ...)}. } \section{Slots}{ \describe{ \item{\code{assayData}:}{Object of class \code{"AssayData"} ~~ } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{featureData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{experimentData}:}{Object of class \code{"MIAME"} ~~ } \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{protocolData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{AlleleSet}"}, directly. Class \code{"\linkS4class{SnpSet}"}, directly. Class \code{"\linkS4class{eSet}"}, by class "AlleleSet", distance 2. Class \code{"\linkS4class{VersionedBiobase}"}, by class "AlleleSet", distance 3. Class \code{"\linkS4class{Versioned}"}, by class "AlleleSet", distance 4. } \section{Methods}{ No methods defined with class "SnpSuperSet" in the signature. } \author{R. Scharpf} \seealso{ \code{\linkS4class{AlleleSet}} } \examples{ showClass("SnpSuperSet") ## empty object from the class x <- new("matrix") new("SnpSuperSet", alleleA=x, alleleB=x, call=x, callProbability=x) } \keyword{classes} oligoClasses/man/SummarizedExperiment-methods.Rd0000644000175200017520000000245214710217345023116 0ustar00biocbuildbiocbuild\name{SummarizedExperiment-methods} \alias{baf,RangedSummarizedExperiment-method} \alias{chromosome,RangedSummarizedExperiment-method} \alias{isSnp,RangedSummarizedExperiment-method} \alias{lrr,RangedSummarizedExperiment-method} \alias{baf,SummarizedExperiment-method} \alias{chromosome,SummarizedExperiment-method} \alias{isSnp,SummarizedExperiment-method} \alias{lrr,SummarizedExperiment-method} \title{Methods for RangedSummarizedExperiment objects} \description{ Methods for \link{RangedSummarizedExperiment}. } \usage{ \S4method{baf}{RangedSummarizedExperiment}(object) \S4method{chromosome}{RangedSummarizedExperiment}(object,...) \S4method{isSnp}{RangedSummarizedExperiment}(object, ...) \S4method{lrr}{RangedSummarizedExperiment}(object) } \arguments{ \item{object}{ A \link{RangedSummarizedExperiment} object. } \item{...}{ignored} } \details{ \code{baf} and \code{lrr} are accessors for the B allele frequencies and log R ratio assays (matrices or arrays), respectively, \code{chromosome} returns the \code{seqnames} of the \code{rowRanges}. \code{isSnp} returns a logical vector for each marker in \code{rowRanges} indicating whether the marker targets a SNP (nonpolymorphic regions are FALSE). } \seealso{ \code{\linkS4class{RangedSummarizedExperiment}} } \keyword{methods} oligoClasses/man/affyPlatforms.Rd0000644000175200017520000000055214710217345020110 0ustar00biocbuildbiocbuild\name{affyPlatforms} \alias{affyPlatforms} \title{Available Affymetrix platforms for SNP arrays} \description{ Provides a listing of available Affymetrix platforms currently supported by the R package oligo } \usage{ affyPlatforms() } \value{ A vector of class character. } \author{R. Scharpf} \examples{ affyPlatforms() } \keyword{list} \keyword{misc} oligoClasses/man/annotationPackages.Rd0000644000175200017520000000044414710217345021104 0ustar00biocbuildbiocbuild\name{annotationPackages} \alias{annotationPackages} \title{Annotation Packages} \description{ \code{annotationPackages} will return a character vector of the names of annotation packages. } \usage{ annotationPackages() } \value{ a character vector of the names of annotation packages } oligoClasses/man/assayDataList-methods.Rd0000644000175200017520000000106514710217345021502 0ustar00biocbuildbiocbuild\name{assayDataList-methods} \docType{methods} \alias{assayDataList} \alias{assayDataList-methods} \alias{assayDataList,oligoSetList-method} \title{Accessor for slot assayDataList in Package \pkg{oligoClasses} } \description{ Accessor for slot assayDataList in Package \pkg{oligoClasses} } \section{Methods}{ \describe{ \item{\code{signature(object = "gSetList")}}{ An object inheriting from class \code{gSetList}. } \item{\code{signature(object = "oligoSetList")}}{ An object inheriting from class \code{gSetList}. } }} \keyword{methods} \keyword{manip} oligoClasses/man/batch.Rd0000644000175200017520000000221014710217345016345 0ustar00biocbuildbiocbuild\name{batch} \alias{batch} \alias{batchNames} \alias{batchNames<-} \title{ The batch variable for the samples. } \description{ Copy number estimates are susceptible to systematic differences between groups of samples that were processed at different times or by different labs. While 'batch' is often unknown, a useful surrogates is often the scan date of the arrays (e.g., the month of the calendar year) or the 96 well chemistry plate on which the samples were arrayed during lab processing. } \usage{ batch(object) batchNames(object) batchNames(object) <- value } \arguments{ \item{object}{ An object of class \code{CNSet}. } \item{value}{ For 'batchNames', the value must be a character string corresponding of the unique batch names. } } \value{ The method 'batch' returns a \code{character} vector that has the same length as the number of samples in the \code{CNSet} object. } \author{ R. Scharpf } \seealso{ \code{\link{CNSet-class}} } \examples{ a <- matrix(1:25, 5, 5) colnames(a) <- letters[1:5] object <- new("CNSet", alleleA=a, batch=rep("batch1", 5)) batch(object) batchNames(object) } \keyword{methods} oligoClasses/man/batchStatistics.Rd0000644000175200017520000000207214710217345020426 0ustar00biocbuildbiocbuild\name{batchStatistics} \alias{batchStatistics} \alias{batchStatistics<-} \title{ Accessor for batch statistics uses for copy number estimation and storage of model parameters } \description{ The \code{batchStatistics} slot contains statistics estimated from each batch that are used to derive copy number estimates. } \usage{ batchStatistics(object) batchStatistics(object) <- value } \arguments{ \item{object}{ An object of class \code{CNSet}} \item{value}{An object of class \code{AssayData}} } \details{ An object of class \code{AssayData} for slot \code{batchStatistics} is initialized automatically when creating a new \code{CNSet} instance. Required in the call to \code{new} is a factor called \code{batch} whose unique values determine the number of columns for each assay data element. } \value{ \code{batchStatics} is an accessor for the slot \code{batchStatistics} that returns an object of class \code{AssayData}. } \seealso{ \code{\link{CNSet-class}}, \code{\link{batchNames}}, \code{\link{batch}} } \keyword{manip} \keyword{methods} oligoClasses/man/celfileDate.Rd0000644000175200017520000000074214710217345017475 0ustar00biocbuildbiocbuild\name{celfileDate} \alias{celfileDate} \title{ Cel file dates} \description{ Parses cel file dates from the header of .CEL files for the Affymetrix platform} \usage{ celfileDate(filename) } \arguments{ \item{filename}{ Name of cel file } } \value{ character string } \author{H. Jaffee} \examples{ require(hapmapsnp6) path <- system.file("celFiles", package="hapmapsnp6") celfiles <- list.celfiles(path, full.names=TRUE) dts <- sapply(celfiles, celfileDate) } \keyword{manip} oligoClasses/man/celfileName.Rd0000644000175200017520000000264014710217345017477 0ustar00biocbuildbiocbuild\name{celfileName} \alias{celfileName} \title{ Extracts complete cel file name from a CNSet object } \description{ Returns the complete cel file (including path) for a CNSet object } \usage{ celfileName(object) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{object}{ An object of class \code{CNSet} } } \value{ Character string vector. } \author{ R. Scharpf } \note{ If the CEL files for an experiment are relocated, the \code{datadir} should be updated accordingly. See examples. } \examples{ \dontrun{ if(require(crlmm)){ data(cnSetExample, package="crlmm") celfileName(cnSetExample) } } } % datadir=list(dirname="/thumper/ctsa/snpmicroarray/hapmap/raw/affy/1m", % n=2L) % fnames <- list.files("/thumper/ctsa/snpmicroarray/hapmap/raw/affy/1m", pattern=".CEL$") % fnames <- fnames[c(grep(sampleNames(cnSetExample)[1], fnames), % grep(sampleNames(cnSetExample)[2], fnames))] % protocolData(cnSetExample)$filename <- fnames % tmp@datadir <- list(dir="/thumper/ctsa/snpmicroarray/hapmap/raw/affy/1m", 2L) % protocolData(tmp) <- protocolData(cnSetExample) % % data(cnSetExample2) % tmp <- updateObjectFromSlots(cnSetExample2) % tmp@datadir <- list(dir="/thumper/ctsa/snpmicroarray/hapmap/raw/affy/phase3_1m", n=1258L) % protocolData(tmp)$filename <- tmp$celFiles % phenoData(tmp)=phenoData(tmp)[, -4] % cnSetExample2=tmp % } \keyword{manip} oligoClasses/man/checkExists.Rd0000644000175200017520000000365314710217345017555 0ustar00biocbuildbiocbuild\name{checkExists} \alias{checkExists} \title{ Checks to see whether an object exists and, if not, executes the appropriate function. } \description{ Only loads an object if the object name is not in the global environment. If not in the global environment and the file exists, the object is loaded (by default). If the file does not exist, the function FUN is run. } \usage{ checkExists(.name, .path = ".", .FUN, .FUN2, .save.it=TRUE, .load.it, ...) } \arguments{ \item{.name}{ Character string giving name of object in global environment } \item{.path}{ Path to where the object is saved. } \item{.FUN}{ Function to be executed if is not in the global environment and the file does not exist. } \item{.FUN2}{ Not currently used. } \item{.save.it}{ Logical. Whether to save the object to the directory indicaged by \code{path}. This argument is ignored if the object was loaded from file or already exists in the .GlobalEnv. } \item{.load.it}{ Logical. If load.it is TRUE, we try to load the object from the indicated \code{path}. The returned object will replace the object in the .GlobalEnv unless the object is bound to a different name (symbol) when the function is executed. } \item{\dots}{ Additional arguments passed to FUN. } } \value{ Could be anything -- depends on what FUN, FUN2 perform. Future versions could return a 0 or 1 indicating whether the function performed as expected. } \author{ R. Scharpf } \examples{ path <- tempdir() dir.create(path) x <- 3+6 x <- checkExists("x", .path=path, .FUN=function(y, z) y+z, y=3, z=6) rm(x) x <- checkExists("x", .path=path, .FUN=function(y, z) y+z, y=3, z=6) rm(x) x <- checkExists("x", .path=path, .FUN=function(y, z) y+z, y=3, z=6) rm(x) ##now there is a file called x.rda in tempdir(). The file will be loaded x <- checkExists("x", .path=path, .FUN=function(y, z) y+z, y=3, z=6) rm(x) unlink(path, recursive=TRUE) } \keyword{manip} oligoClasses/man/checkOrder.Rd0000644000175200017520000000157114710217345017346 0ustar00biocbuildbiocbuild\name{checkOrder} \alias{checkOrder} \alias{chromosomePositionOrder} \title{Checks whether a eSet-derived class is ordered by chromosome and physical position} \description{ Checks whether a \code{eSet}-derived class (e.g., a \code{SnpSet} or \code{CNSet} object) is ordered by chromosome and physical position } \usage{ checkOrder(object, verbose = FALSE) chromosomePositionOrder(object, ...) } \arguments{ \item{object}{ A \code{SnpSet} or \code{CopyNumberSet}. } \item{verbose}{ Logical. } \item{\dots}{ additional arguments to \code{order} } } \details{ Checks whether the object is ordered by chromosome and physical position. } \value{ Logical } \author{ R. Scharpf } \seealso{ \code{\link{order}} } \examples{ data(oligoSetExample) if(!checkOrder(oligoSet)){ oligoSet <- chromosomePositionOrder(oligoSet) } checkOrder(oligoSet) } \keyword{manip} oligoClasses/man/chromosome-methods.Rd0000644000175200017520000000357314710217345021115 0ustar00biocbuildbiocbuild\name{chromosome-methods} \docType{methods} \alias{chromosome-methods} \alias{chromosome} \alias{chromosome<-} \alias{chromosome,AnnotatedDataFrame-method} \alias{chromosome,SnpSet-method} \alias{chromosome,gSet-method} \alias{chromosome,GenomeAnnotatedDataFrame-method} %\alias{chromosome,RangedDataCNV-method} \alias{chromosome<-,SnpSet,integer-method} \alias{chromosome<-,gSet,integer-method} \alias{chromosome<-,GenomeAnnotatedDataFrame,integer-method} \alias{chromosome,GRanges-method} \alias{chromosome,GRangesList-method} \title{ Methods for function chromosome in package oligoClasses} \description{ Methods for function \code{chromosome} in package \pkg{oligoClasses} ~~ } \section{Methods}{ The methods for \code{chromosome} extracts the chromosome (represented as an integer) for each marker in a \code{eSet}-derived class or a \code{AnnotatedDataFrame}-derived class. \describe{ \item{\code{signature(object = "AnnotatedDataFrame")}}{ Accessor for chromosome. } \item{\code{signature(object = "eSet")}}{ If 'chromosome' is included in \code{fvarLabels(object)}, the integer representation of the chromosome will be returned. Otherwise, an error is thrown. } \item{\code{signature(object = "GenomeAnnotatedDataFrame")}}{ Accessor for chromosome. If annotation was not available due to a missing or non-existent annotation package, the value returned by the accessor will be a vector of zero's.} \item{}{\code{(chromosome(object) <- value)}: Assign chromosome to the \code{AnnotatedDataFrame} slot of an \code{eSet}-derived \code{object}.} \item{\code{signature(object = "RangedDataCNV")}}{Accessor for chromosome.} } } \note{ Integer representation: chr X = 23, chr Y = 24, chr XY = 25. Symbols M, Mt, and MT are coded as 26. } \examples{ chromosome2integer(c(1:22, "X", "Y", "XY", "M")) } \seealso{\code{\link{chromosome2integer}}} \keyword{methods} oligoClasses/man/chromosome2integer.Rd0000644000175200017520000000206114710217345021103 0ustar00biocbuildbiocbuild\name{chromosome2integer} \alias{chromosome2integer} \alias{integer2chromosome} \title{Converts chromosome to integer} \description{ Coerces character string for chromosome in the pd. annotation packages to integers } \usage{ chromosome2integer(chrom) integer2chromosome(intChrom) } \arguments{ \item{chrom}{A one or 2 letter character string (e.g, "1", "X", "Y", "MT", "XY") } \item{intChrom}{An integer vector with values 1-25 possible} } \details{ This is useful when sorting SNPs in an object by chromosome and physical position -- ensures that the sorting is done in the same way for different objects. } \value{ \code{integer2chromosome} returns a vector of character string indicating the chromosome the same length as \code{intChrom}. \code{chromosome2integer} returns a vector of integers the same length as the number of elements in the \code{chrom} vector. } \examples{ chromosome2integer(c(1:22, "X", "Y", "XY", "M")) integer2chromosome(chromosome2integer(c(1:22, "X", "Y", "XY", "M"))) } \author{R. Scharpf} \keyword{manip} oligoClasses/man/clusterOpts.Rd0000644000175200017520000000374414710217345017630 0ustar00biocbuildbiocbuild\name{ocSamples} \alias{ocSamples} \alias{ocProbesets} \title{ Cluster and large dataset management utilities. } \description{ Tools to simplify management of clusters via 'snow' package and large dataset handling through the 'bigmemory' package. } \usage{ ocSamples(n) ocProbesets(n) } \arguments{ \item{n}{integer representing the maximum number of samples/probesets to be processed simultaneously on a compute node.} } \details{ Some methods in the oligo/crlmm packages, like \code{backgroundCorrect}, \code{normalize}, \code{summarize} and \code{rma} can use a cluster (set through the 'foreach' package). The use of cluster features is conditioned on the availability of the 'ff' (used to provide shared objects across compute nodes) and 'foreach' packages. To use a cluster, 'oligo/crlmm' checks for three requirements: 1) 'ff' is loaded; 2) an adaptor for the parallel backend (like 'doMPI', 'doSNOW', 'doMC') is loaded and registered. If only the 'ff' package is available and loaded (in addition to the caller package - 'oligo' or 'crlmm'), these methods will allow the user to analyze datasets that would not fit in RAM at the expense of performance. In the situations above (large datasets and cluster), oligo/crlmm uses the options \code{ocSamples} and \code{ocProbesets} to limit the amount of RAM used by the machine(s). For example, if ocSamples is set to 100, steps like background correction and normalization process (in RAM) 100 samples simultaneously on each compute node. If ocProbesets is set to 10K, then summarization processes 10K probesets at a time on each machine. } \section{Warning}{ In both scenarios (large dataset and/or cluster use), there is a penalty in performance because data are written to disk (to either minimize memory footprint or share data across compute nodes). } \author{ Benilton Carvalho } \examples{ if(require(doMC)) { registerDoMC() ## tasks like summarize() } } \keyword{manip} oligoClasses/man/clusterOptsDeprecated.Rd0000644000175200017520000000400714710217345021602 0ustar00biocbuildbiocbuild\name{setCluster} \alias{setCluster} \alias{getCluster} \alias{delCluster} \alias{setCluster-deprecated} \alias{getCluster-deprecated} \alias{delCluster-deprecated} \title{ DEPRECATED FUNCTIONS. Cluster and large dataset management utilities. } \description{ Tools to simplify management of clusters via 'snow' package and large dataset handling through the 'bigmemory' package. } \usage{ setCluster(...) getCluster() delCluster() } \arguments{ \item{\dots}{arguments to be passed to \code{makeCluster} in the 'snow' package.} } \details{ Some methods in the oligo/crlmm packages, like \code{backgroundCorrect}, \code{normalize}, \code{summarize} and \code{rma} can use a cluster (set through 'snow' package). The use of cluster features is conditioned on the availability of the 'bigmemory' (used to provide shared objects across compute nodes) and 'snow' packages. To use a cluster, 'oligo/crlmm' checks for three requirements: 1) 'ff' is loaded; 2) 'snow' is loaded; and 3) the 'cluster' option is set (e.g., via options(cluster=makeCluster(...)) or setCluster(...)). If only the 'ff' package is available and loaded (in addition to the caller package - 'oligo' or 'crlmm'), these methods will allow the user to analyze datasets that would not fit in RAM at the expense of performance. In the situations above (large datasets and cluster), oligo/crlmm uses the options \code{ocSamples} and \code{ocProbesets} to limit the amount of RAM used by the machine(s). For example, if ocSamples is set to 100, steps like background correction and normalization process (in RAM) 100 samples simultaneously on each compute node. If ocProbesets is set to 10K, then summarization processes 10K probesets at a time on each machine. } \section{Warning}{ In both scenarios (large dataset and/or cluster use), there is a penalty in performance because data are written to disk (to either minimize memory footprint or share data across compute nodes). } \author{ Benilton Carvalho } \keyword{manip} oligoClasses/man/createFF.Rd0000644000175200017520000000072714710217345016756 0ustar00biocbuildbiocbuild\name{createFF} \alias{createFF} \title{ Create ff objects. } \description{ Creates ff objects (array-like) using settings (path) defined by oligoClasses. } \usage{ createFF(name, dim, vmode = "double", initdata = NULL) } \arguments{ \item{name}{Prefix for filename.} \item{dim}{Dimensions.} \item{vmode}{Mode.} \item{initdata}{NULL.} } \value{ ff object. } \note{ This function is meant to be used by developers. } \seealso{ ff } \keyword{manip} oligoClasses/man/data-efsExample.Rd0000644000175200017520000000045114710217345020271 0ustar00biocbuildbiocbuild\name{efsExample} \alias{efsExample} \docType{data} \title{ExpressionFeatureSet Object} \description{ Example of ExpressionFeatureSet Object. } \usage{data(efsExample)} \format{ Object belongs to ExpressionFeatureSet class. } \examples{ data(efsExample) class(efsExample) } \keyword{datasets} oligoClasses/man/data-scqsExample.Rd0000644000175200017520000000042114710217345020462 0ustar00biocbuildbiocbuild\name{scqsExample} \alias{scqsExample} \docType{data} \title{SnpCnvQSet Example} \description{ Example of SnpCnvQSet object. } \usage{data(scqsExample)} \format{ Object belongs to SnpCnvQSet class. } \examples{ data(scqsExample) class(scqsExample) } \keyword{datasets} oligoClasses/man/data-sfsExample.Rd0000644000175200017520000000042414710217345020307 0ustar00biocbuildbiocbuild\name{sfsExample} \alias{sfsExample} \docType{data} \title{SnpFeatureSet Example} \description{ Example of SnpFeatureSet object. } \usage{data(sfsExample)} \format{ Object belongs to SnpFeatureSet class } \examples{ data(sfsExample) class(sfsExample) } \keyword{datasets} oligoClasses/man/data-sqsExample.Rd0000644000175200017520000000037614710217345020330 0ustar00biocbuildbiocbuild\name{sqsExample} \alias{sqsExample} \docType{data} \title{SnpQSet Example} \description{ Example of SnpQSet instance. } \usage{data(sqsExample)} \format{ Belongs to SnpQSet class. } \examples{ data(sqsExample) class(sqsExample) } \keyword{datasets} oligoClasses/man/db.Rd0000644000175200017520000000143514710217345015661 0ustar00biocbuildbiocbuild\name{db} \alias{db} \alias{db-methods} \alias{db,FeatureSet-method} \alias{db,DBPDInfo-method} \alias{db,SnpSet-method} \alias{db,SnpCnvQSet-method} \alias{db,SnpQSet-method} \title{Get the connection to the SQLite Database} \description{ This function will return the SQLite connection to the database associated to objects used in oligo. } \usage{ db(object) } \arguments{ \item{object}{Object of valid class. See methods.} } \section{Methods}{ \describe{ \item{object = "FeatureSet"}{object of class FeatureSet} \item{object = "SnpCallSet"}{object of class SnpCallSet} \item{object = "DBPDInfo"}{object of class DBPDInfo} \item{object = "SnpLevelSet"}{object of class SnpLevelSet} }} \value{ SQLite connection. } \author{Benilton Carvalho} \examples{ ## db(object) } \keyword{methods} oligoClasses/man/defunct.Rd0000644000175200017520000000176314710217345016730 0ustar00biocbuildbiocbuild\name{Deprecated} \title{oligoClasses Deprecated} \alias{featuresInRange} \alias{featuresInRange,SnpSet2,RangedDataCNV-method} \alias{RangedDataCNV-class} \alias{RangedDataHMM-class} \alias{RangedDataCNV} \alias{RangedDataHMM} \alias{RangedDataCBS} \alias{RangedDataCBS-class} \alias{RangedDataCopyNumber-class} \alias{state,RangedDataCNV-method} %\alias{coverage2} \alias{coverage2,RangedDataCNV-method} \alias{mean,RangedDataCBS-method} \alias{sampleNames,RangedDataCNV-method} \alias{chromosome,RangedDataCNV-method} \alias{findOverlaps,RangedDataCNV,SnpSet-method} \alias{findOverlaps,RangedDataCNV,CNSet-method} \alias{findOverlaps,RangedDataCNV,RangedDataCNV-method} \alias{findOverlaps,RangedDataHMM,RangedDataHMM-method} \alias{findOverlaps,RangedDataCNV,AnnotatedDataFrame-method} \alias{findOverlaps,AnnotatedDataFrame,RangedDataCNV-method} \alias{sampleNames<-,RangedDataCNV,character-method} \description{ The function, class, or data object you asked for has been deprecated.} \keyword{internal} oligoClasses/man/exprs-methods.Rd0000644000175200017520000000123414710217345020073 0ustar00biocbuildbiocbuild\name{exprs-methods} \docType{methods} \alias{exprs-methods} %\alias{exprs,ExpressionSet-method} \alias{exprs,FeatureSet-method} \alias{se.exprs,FeatureSet-method} %\alias{exprs,SnpSet-method} \title{Accessor for the 'exprs' slot} \description{ Accessor for the 'exprs'/'se.exprs' slot of FeatureSet-like objects } \section{Methods}{ \describe{ \item{object = "ExpressionSet"}{Expression matrix for objects of this class. Usually results of preprocessing algorithms, like RMA.} \item{object = "FeatureSet"}{General container 'exprs' inherited from eSet} \item{object = "SnpSet"}{General container 'exprs' inherited from eSet, not yet used.} }} \keyword{methods} oligoClasses/man/featureDataList-methods.Rd0000644000175200017520000000067614710217345022024 0ustar00biocbuildbiocbuild\name{featureDataList-methods} \docType{methods} \alias{featureDataList} \alias{featureDataList-methods} \title{ Accessor for slot \code{featureDataList} in Package \pkg{oligoClasses} ~~} \description{ Accessor for slot \code{featureDataList} in Package \pkg{oligoClasses} ~~ } \section{Methods}{ \describe{ \item{\code{signature(object = "gSetList")}}{ An object inheriting from class \code{gSetList}. } }} \keyword{methods} \keyword{manip} oligoClasses/man/ff_matrix.Rd0000644000175200017520000000123114710217345017245 0ustar00biocbuildbiocbuild\name{ff_matrix-class} \Rdversion{1.1} \docType{class} \alias{ff_matrix-class} \alias{annotatedDataFrameFrom,ff_matrix-method} \title{Class "ff_matrix"} \description{ ~~ A concise (1-5 lines) description of what the class is. ~~ } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{.S3Class}:}{Object of class \code{"character"} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{oldClass}"}, directly. } \section{Methods}{ \describe{ \item{annotatedDataFrameFrom}{\code{signature(object = "ff_matrix")}: ... } } } \examples{ showClass("ff_matrix") } \keyword{classes} oligoClasses/man/ff_or_matrix-class.Rd0000644000175200017520000000115214710217345021052 0ustar00biocbuildbiocbuild\name{ff_or_matrix-class} \Rdversion{1.1} \docType{class} \alias{ff_or_matrix-class} \title{Class \code{"ff_or_matrix"}} \description{ A class union of 'ffdf', 'ff_matrix', and 'matrix' } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Methods}{ \describe{ \item{GenomeAnnotatedDataFrameFrom}{\code{signature(object = "ff_or_matrix")}: ... } } } \author{ R. Scharpf } %% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \code{\link[ff]{ff}}, \code{\link[ff]{ffdf}} } \examples{ showClass("ff_or_matrix") } \keyword{classes} oligoClasses/man/ffdf.Rd0000644000175200017520000000112214710217345016172 0ustar00biocbuildbiocbuild\name{ffdf-class} \Rdversion{1.1} \docType{class} \alias{ffdf-class} \alias{list_or_ffdf-class} \title{Class "ffdf"} \description{ Extended package ff's class definitions for ff to S4. } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{.S3Class}:}{Object of class \code{ffdf} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{oldClass}"}, directly. Class \code{"\linkS4class{list_or_ffdf}"}, directly. } \section{Methods}{ No methods defined with class "ffdf" in the signature. } \keyword{classes} oligoClasses/man/fileConnections.Rd0000644000175200017520000000220614710217345020413 0ustar00biocbuildbiocbuild\name{fileConnections} \alias{open} \alias{openff} \alias{openff,CNSet-method} \alias{close} \alias{closeff} \alias{closeff,CNSet-method} \alias{open,matrix-method} \alias{open,numeric-method} \alias{open,array-method} \alias{close,matrix-method} \alias{close,numeric-method} \alias{close,array-method} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Open and close methods for matrices and numeric vectors } \description{ \code{CNSet} objects can contain \code{ff}-derived objects that contain pointers to files on disk, or ordinary matrices. Here we define open and close methods for ordinary matrices and vectors that that simply pass back the original matrix/vector. } \usage{ open(con, ...) openff(object) closeff(object) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{con}{ matrix or vector } \item{object}{ A \code{CNSet} object.} \item{\dots}{Ignored} } \value{ not applicable } \author{ R. Scharpf } \examples{ open(rnorm(15)) open(matrix(rnorm(15), 5,3)) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{manip} oligoClasses/man/flags.Rd0000644000175200017520000000137314710217345016371 0ustar00biocbuildbiocbuild\name{flags} \alias{flags} \title{ Batch-level summary of SNP flags. } \description{ Used to flag SNPs with low minor allele frequencies, or for possible problems during the CN estimation step. Currently, this is primarily more for internal use. } \usage{ flags(object) } \arguments{ \item{object}{ An object of class \code{CNSet} } } \value{ A \code{matrix} or \code{ff_matrix} object with rows corresponding to markers and columns corresponding to batch. } \seealso{ \code{\link{batchStatistics}} } \examples{ x <- matrix(runif(250*96*2, 0, 2), 250, 96*2) test1 <- new("CNSet", alleleA=x, alleleB=x, call=x, callProbability=x, batch=as.character(rep(letters[1:2], each=96))) dim(flags(test1)) } \keyword{manip} \keyword{methods} oligoClasses/man/gSet-class.Rd0000644000175200017520000000565114710217345017305 0ustar00biocbuildbiocbuild\name{gSet-class} \Rdversion{1.1} \docType{class} \alias{gSet-class} \alias{gSet} \alias{checkOrder,gSet-method} \alias{db,gSet-method} \alias{genomeBuild,gSet-method} \alias{genomeBuild<-,gSet,character-method} \alias{getArm} \alias{getArm,gSet-method} \alias{initialize,gSet-method} \alias{makeFeatureGRanges,gSet-method} \alias{show,gSet-method} \title{Container for objects with genomic annotation on SNPs} \description{ Container for objects with genomic annotation on SNPs } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{featureData}:}{Object of class \code{"GenomeAnnotatedDataFrame"} ~~ } \item{\code{assayData}:}{Object of class \code{"AssayData"} ~~ } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{experimentData}:}{Object of class \code{"MIAxE"} ~~ } \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{protocolData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{genome}:}{Object of class \code{"character"} ~~ } \item{\code{.__classVersion__}:}{Object of class \code{"Versions"} ~~ } } } \section{Extends}{ Class \code{"\linkS4class{eSet}"}, directly. Class \code{"\linkS4class{VersionedBiobase}"}, by class "eSet", distance 2. Class \code{"\linkS4class{Versioned}"}, by class "eSet", distance 3. } \section{Methods}{ The \code{object} for the below methods is a class that extends the virtual class \code{gSet}. \describe{ \item{}{\code{checkOrder(object)}: checks that the object is ordered by chromosome and physical position. Returns \code{logical}.} \item{}{\code{chromosome(object)}: accessor for chromosome in the \code{GenomeAnnotatedDataFrame} slot.} \item{}{\code{chromosome(object) <- value}: replacement method for chromosome in the \code{GenomeAnnotatedDataFrame} slot. \code{value} must be an \code{integer} vector.} \item{}{ \code{db(object)}: database connection } \item{}{ \code{genomeBuild(object)}, \code{genomeBuild(object) <- value}: Get or set the UCSC genome build. Supported builds are hg18 and hg19. } \item{}{ \code{getArm(object)}: Character vector indicating the chromosomal arm for each marker in \code{object}. } \item{}{\code{isSnp(object)}: whether the marker is polymorphic. Returns a \code{logical} vector.} \item{}{ \code{makeFeatureGRanges(object)}: Construct an instance of the \code{GRanges} class from a \code{GenomeAnnotatedDataFrame}. } \item{}{\code{position(object)}: \code{integer} vector of the genomic position} \item{}{ \code{show(object)}: Print a concise summary of \code{object}. } } } \author{ R. Scharpf } \seealso{ \code{\link{chromosome}}, \code{\link{position}}, \code{\link{isSnp}} } \examples{ showClass("gSet") } \keyword{classes} oligoClasses/man/gSetList-class.Rd0000644000175200017520000000623514710217345020140 0ustar00biocbuildbiocbuild\name{gSetList-class} \Rdversion{1.1} \docType{class} \alias{gSetList-class} \alias{$,gSetList-method} \alias{$<-,gSetList-method} \alias{[,gSetList-method} \alias{[,gSetList,ANY-method} \alias{[[<-,gSetList,ANY,ANY,BafLrrSet-method} \alias{annotation,gSetList-method} \alias{assayDataList,gSetList-method} \alias{chromosome,gSetList-method} \alias{coerce,gSetList,list-method} \alias{dims,gSetList-method} \alias{elementNROWS,gSetList-method} \alias{featureDataList,gSetList-method} \alias{genomeBuild,gSetList-method} \alias{genomeBuild<-,gSetList,character-method} \alias{initialize,gSetList-method} \alias{length,gSetList-method} \alias{makeFeatureGRanges,gSetList-method} \alias{position,gSetList-method} \alias{sampleNames,gSetList-method} \alias{sampleNames<-,gSetList,character-method} \alias{show,gSetList-method} \title{Virtual Class for Lists of eSets} \description{ Virtual Class for Lists of eSets. } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{assayDataList}:}{Object of class \code{"AssayData"} ~~ } \item{\code{phenoData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{protocolData}:}{Object of class \code{"AnnotatedDataFrame"} ~~ } \item{\code{experimentData}:}{Object of class \code{"MIAME"} ~~ } \item{\code{featureDataList}:}{Object of class \code{"list"} ~~ } \item{\code{chromosome}:}{Object of class \code{"vector"} ~~ } \item{\code{annotation}:}{Object of class \code{"character"} ~~ } \item{\code{genome}:}{Object of class \code{"character"} ~~ } } } \section{Accessors}{ \code{object} is an instance of a \code{gSetList}-derived class. \describe{ \item{}{ \code{annotation(object)}: character string indicating the package used to provide annotation for the features on the array. } \item{}{ \code{chromosome(object)}: Returns the chromosome corresponding to each element in the \code{gSetList} object } \item{}{ \code{elementNROWS(object)}: Returns the number of rows for each list of assays. In most \code{gSetList}-derived classes, the assays are organized by chromosome and \code{elementNROWS} returns the number of markers for each chromosome. } \item{}{ \code{genomeBuild(object)}, \code{genomeBuild(object) <- value}: Get or set the UCSC genome build. Supported builds are hg18 and hg19. } } } \section{Coercion}{ \code{object} is an instance of a \code{gSetList}-derived class. \describe{ \item{}{ \code{makeFeatureGRanges(object, ...)}: Create a GRanges object for the featureData. The featureData is stored as a list. This method stacks the featureData from each list element. Metadata columns in the GRanges object include physical position ('position'), a SNP indicator ('isSnp'), and the chromosome. The genome build is extracted from \code{object} using the method \code{genomeBuild}. } } } \author{ R. Scharpf } \seealso{ \code{\linkS4class{oligoSetList}}, \code{\linkS4class{BeadStudioSetList}} } \examples{ showClass("gSetList") } \keyword{classes} oligoClasses/man/generics.Rd0000644000175200017520000000070714710217345017074 0ustar00biocbuildbiocbuild\name{generics} \alias{baf} \alias{lrr} \title{ Miscellaneous generics. Methods defined in packages that depend on oligoClasses} \description{Miscellaneous generics. Methods defined in packages that depend on oligoClasses } \usage{ baf(object) lrr(object) } \arguments{ \item{object}{A \code{eSet}-derived class.} } \author{ R. Scharpf } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{misc} oligoClasses/man/genomeBuild.Rd0000644000175200017520000000131314710217345017521 0ustar00biocbuildbiocbuild\name{genomeBuild} \alias{genomeBuild} \alias{genomeBuild<-} \alias{genomeBuild,DBPDInfo-method} \alias{genomeBuild,FeatureSet-method} \title{Genome Build Information} \description{ Returns the genome build. This information comes from the annotation package and is given as an argument during the package creation process. } \usage{ genomeBuild(object) } \value{ character string } \note{Supported builds are UCSC genome builds are 'hg18' and 'hg19'.} \arguments{ \item{object}{Supported objects include \code{PDInfo}, \code{FeatureSet}, and any \code{gSet}-derived or \code{eSetList}-derived object. } } \examples{ showMethods("genomeBuild", where="package:oligoClasses") } \keyword{manip} oligoClasses/man/geometry-methods.Rd0000644000175200017520000000064714710217345020574 0ustar00biocbuildbiocbuild\name{geometry} \alias{geometry} \alias{geometry,DBPDInfo-method} \alias{geometry,FeatureSet-method} \title{Array Geometry Information} \description{ For a given array, \code{geometry} returns the physical geometry of it. } \usage{ geometry(object) } \arguments{ \item{object}{\code{PDInfo} or \code{FeatureSet} object} } \examples{ if (require(pd.mapping50k.xba240)) geometry(pd.mapping50k.xba240) } \keyword{manip} oligoClasses/man/getBar.Rd0000644000175200017520000000051514710217345016476 0ustar00biocbuildbiocbuild\name{getBar} \alias{getBar} \title{ Gets a bar of a given length. } \description{ Gets a bar of a given length. } \usage{ getBar(width = getOption("width")) } \arguments{ \item{width}{desired length of the bar.} } \value{character string.} \author{ Benilton S Carvalho } \examples{ message(getBar()) } \keyword{manip} oligoClasses/man/getSequenceLengths.Rd0000644000175200017520000000241314710217345021066 0ustar00biocbuildbiocbuild\name{getSequenceLengths} \alias{getSequenceLengths} %\alias{setSequenceLengths} \title{Load chromosome sequence lengths for UCSC genome build hg18 or hg19} \description{Load chromosome sequence lengths for UCSC genome build hg18 or hg19} \usage{ getSequenceLengths(build) %setSequenceLengths(build, names) } \arguments{ \item{build}{ character string: "hg18" or "hg19" } % \item{names}{ % % Chromosome names (e.g, 'chr1', 'chr2', ...) % % } } \details{The chromosome sequence lengths for UCSC builds hg18 and hg19 were extracted from the packages BSgenome.Hsapiens.UCSC.hg18 and BSgenome.Hsapiens.UCSC.hg19, respectively. } \value{ Names integer vector of chromosome lengths. } \author{ R. Scharpf } \examples{ getSequenceLengths("hg18") getSequenceLengths("hg19") if(require("GenomicRanges")){ ## from GenomicRanges sl <- getSequenceLengths("hg18")[c("chr1", "chr2", "chr3")] gr <- GRanges(seqnames = Rle(c("chr1", "chr2", "chr1", "chr3"), c(1, 3, 2, 4)), ranges = IRanges(1:10, width = 10:1, names = head(letters,10)), strand = Rle(strand(c("-", "+", "*", "+", "-")), c(1, 2, 2, 3, 2)), score = 1:10, GC = seq(1, 0, length=10), seqlengths=sl) metadata(gr) <- list(genome="hg18") gr metadata(gr) } } \keyword{attribute} oligoClasses/man/i2p_p2i.Rd0000644000175200017520000000132514710217345016536 0ustar00biocbuildbiocbuild\name{i2p} \alias{i2p} \alias{p2i} \title{ Functions to convert probabilities to integers, or integers to probabilities. } \description{ Probabilities estimated in the \code{crlmm} package are often stored as integers to save memory. We provide a few utility functions to go back and forth between the probability and integer representations. } \usage{ i2p(i) p2i(p) } \arguments{ \item{i}{ A matrix or vector of integers.} \item{p}{ A matrix or vector of probabilities.} } \value{ The value returned by \code{i2p} is 1 - exp(-i/1000) The value returned by \code{2pi} is as.integer(-1000*log(1-p)) } \seealso{ \code{\link{confs}}} \examples{ i2p(693) p2i(0.5) i2p(p2i(0.5)) } \keyword{manip} oligoClasses/man/integerMatrix.Rd0000644000175200017520000000127614710217345020121 0ustar00biocbuildbiocbuild\name{integerMatrix} \alias{integerMatrix} \alias{integerArray} \title{ Coerce numeric matrix (or array) to a matrix (array) of integers, retaining dimnames. } \description{ Coerce numeric matrix to matrix of integers, retaining dimnames. } \usage{ integerMatrix(x, scale = 100) integerArray(x, scale=100) } \arguments{ \item{x}{a \code{matrix} or \code{array}} \item{scale}{scalar (numeric). If not 1, \code{x} is multiplied by \code{scale} prior to coercing to a matrix of integers.} } \value{ A \code{matrix} or \code{array} of integers. } \author{ R. Scharpf } \examples{ x <- matrix(rnorm(10), 5, 2) rownames(x) = letters[1:5] i <- integerMatrix(x, scale=100) } \keyword{manip} oligoClasses/man/is.ffmatrix.Rd0000644000175200017520000000107214710217345017523 0ustar00biocbuildbiocbuild\name{is.ffmatrix} \alias{is.ffmatrix} \title{ Check if object is an ff-matrix object. } \description{ Check if object is an ff-matrix object. } \usage{ is.ffmatrix(object) } \arguments{ \item{object}{object to be checked} } \value{ Logical. } \note{ This function is meant to be used by developers. } \examples{ if (isPackageLoaded("ff")){ x1 <- ff(vmode="double", dim=c(10, 2)) is.ffmatrix(x1) } x1 <- matrix(0, nr=10, nc=2) is.ffmatrix(x1) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{manip} oligoClasses/man/isPackageLoaded.Rd0000644000175200017520000000066414710217345020277 0ustar00biocbuildbiocbuild\name{isPackageLoaded} \alias{isPackageLoaded} \title{ Check if package is loaded. } \description{ Checks if package is loaded. } \usage{ isPackageLoaded(pkg) } \arguments{ \item{pkg}{ Package to be checked. } } \details{ Checks if package name is in the search path. } \value{ Logical. } \seealso{ search } \examples{ isPackageLoaded("oligoClasses") isPackageLoaded("ff") isPackageLoaded("snow") } \keyword{manip} oligoClasses/man/isSnp-methods.Rd0000644000175200017520000000237714710217345020037 0ustar00biocbuildbiocbuild\name{isSnp-methods} \docType{methods} \alias{isSnp-methods} \alias{isSnp} \alias{isSnp,character-method} \alias{isSnp,SnpSet-method} \alias{isSnp,gSet-method} \alias{isSnp,GenomeAnnotatedDataFrame-method} \title{ Methods for Function isSnp in package oligoClasses~~} \description{ ~~ Methods for function \code{isSnp} in package \pkg{oligoClasses} ~~ } \section{Methods}{ \describe{ Return an indicator for whether the marker is polymorphic (value 1) or nonpolymorphic (value 0). \item{\code{signature(object = "character", pkgname = "character")}}{ Return an indicator for whether the vector of marker identifiers in \code{object} is polymorphic. \code{pkgname} must be one of the supported annotation packages specific to the platform. } \item{\code{signature(object = "eSet", pkgname = "ANY")}}{ If 'isSnp' is included in \code{fvarLabels(object)}, an indicator for polymorphic markers is returned. Otherwise, an error is thrown. } \item{\code{signature(object = "GenomeAnnotatedDataFrame", pkgname = "ANY")}}{ Accessor for indicator of whether the marker is polymorphic. If annotation was not available due to a missing or non-existent annotation package, the value returned by the accessor will be a vector of zero's. } } } \keyword{methods} oligoClasses/man/kind.Rd0000644000175200017520000000137214710217345016221 0ustar00biocbuildbiocbuild\name{kind} \alias{kind} \alias{kind,AffySNPPDInfo-method} \alias{kind,AffySNPCNVPDInfo-method} \alias{kind,AffyExonPDInfo-method} \alias{kind,ExpressionPDInfo-method} \alias{kind,TilingPDInfo-method} \alias{kind,AffyExpressionPDInfo-method} \alias{kind,AffyGenePDInfo-method} \alias{kind,AffyHTAPDInfo-method} \alias{kind,GenericPDInfo-method} \alias{kind,FeatureSet-method} \title{Array type} \description{ Retrieves the array type. } \usage{ kind(object) } \arguments{ \item{object}{\code{FeatureSet} or \code{DBPDInfo} object} } \value{ String: "Expression", "Exon", "SNP" or "Tiling" } \examples{ if (require(pd.mapping50k.xba240)){ data(sfsExample) Biobase::annotation(sfsExample) <- "pd.mapping50k.xba240" kind(sfsExample) } } \keyword{manip} oligoClasses/man/largeObjects.Rd0000644000175200017520000000302014710217345017670 0ustar00biocbuildbiocbuild\name{initializeBigMatrix} \alias{initializeBigVector} \alias{initializeBigMatrix} \alias{initializeBigArray} \title{ Initialize big matrices/vectors. } \description{ Initialize big matrices or vectors appropriately (conditioned on the status of support for large datasets - see Details). } \usage{ initializeBigMatrix(name=basename(tempfile()), nr=0L, nc=0L, vmode = "integer", initdata = NA) initializeBigVector(name=basename(tempfile()), n=0L, vmode = "integer", initdata = NA) initializeBigArray(name=basename(tempfile()), dim=c(0L,0L,0L), vmode="integer", initdata=NA) } \arguments{ \item{name}{prefix to be used for file stored on disk} \item{nr}{number of rows} \item{nc}{number of columns} \item{n}{length of the vector} \item{vmode}{mode - "integer", "double"} \item{initdata}{Default is NA} %%FIXME \item{dim}{Integer vector indicating the dimensions of the array to initialize} } \details{ These functions are meant to be used by developers. They provide means to appropriately create big vectors or matrices for packages like oligo and crlmm (and friends). These objects are created conditioned on the status of support for large datasets. } \value{ If the 'ff' package is loaded (in the search path), then an 'ff' object is returned. A regular R vector or array is returned otherwise. } \examples{ x <- initializeBigVector("test", 10) class(x) x if (isPackageLoaded("ff")) finalizer(x) <- "delete" rm(x) initializeBigMatrix(nr=5L, nc=5L) initializeBigArray(dim=c(10, 5, 3)) } \keyword{ manip } oligoClasses/man/ldOpts.Rd0000644000175200017520000000240514710217345016537 0ustar00biocbuildbiocbuild\name{ldSetOptions} \alias{ldSetOptions} \alias{ldStatus} \alias{ldPath} \title{ Set/check large dataset options. } \description{ Set/check large dataset options. } \usage{ ldSetOptions(nsamples=100, nprobesets=20000, path=getwd(), verbose=FALSE) ldStatus(verbose=FALSE) ldPath(path) } \arguments{ \item{nsamples}{number of samples to be processed at once.} \item{nprobesets}{number of probesets to be processed at once.} \item{path}{path where to store large dataset objects.} \item{verbose}{verbosity (logical).} } \details{ Some functions in oligo/crlmm can process data in batches to minimize memory footprint. When using this feature, the 'ff' package resources are used (and possibly combined with cluster resources set in options() via 'snow' package). Methods that are executed on a sample-by-sample manner can use ocSamples() to automatically define how many samples are processed at once (on a compute node). Similarly, methods applied to probesets can use ocProbesets(). Users should set these options appropriately. \code{ldStatus} checks the support for large datasets. \code{ldPath} checks where ff files are stored. } \author{ Benilton S Carvalho } \seealso{ocSamples, ocProbesets} \examples{ ldStatus(TRUE) } \keyword{manip} oligoClasses/man/length-methods.Rd0000644000175200017520000000046614710217345020221 0ustar00biocbuildbiocbuild\name{length-methods} \docType{methods} \alias{length-methods} \alias{length,FeatureSet-method} \title{Number of samples for FeatureSet-like objects.} \description{ Number of samples for FeatureSet-like objects. } \section{Methods}{ \describe{ \item{x = "FeatureSet"}{Number of samples} }} \keyword{methods} oligoClasses/man/library2.Rd0000644000175200017520000000055714710217345017026 0ustar00biocbuildbiocbuild\name{library2} \alias{library2} \title{ Supress package startup messages when loading a library } \description{ Supress package startup messages when loading a library } \usage{ library2(...) } \arguments{ \item{\dots}{ arguments to \code{library} } } \author{ R. Scharpf } \seealso{ \code{\link{library}} } \examples{ library2("Biobase") } \keyword{manip} oligoClasses/man/list.celfiles.Rd0000644000175200017520000000172414710217345020035 0ustar00biocbuildbiocbuild\name{list.celfiles} \alias{list.celfiles} \title{List CEL files.} \description{ Function used to get a list of CEL files. } \usage{ list.celfiles(..., listGzipped=FALSE) } \arguments{ \item{\dots}{Passed to \code{\link{list.files}}} \item{listGzipped}{Logical. List .CEL.gz files?} } \value{ Character vector with filenames. } \note{ Quite often users want to use this function to pass filenames to other methods. In this situations, it is safer to use the argument 'full.names=TRUE'. } \seealso{\code{\link{list.files}}} \examples{ if (require(hapmapsnp5)){ path <- system.file("celFiles", package="hapmapsnp5") ## only the filenames list.celfiles(path) ## the filenames with full path... ## very useful when genotyping samples not in the working directory list.celfiles(path, full.names=TRUE) }else{ ## this won't return anything ## if in the working directory there isn't any CEL list.celfiles(getwd()) } } \keyword{IO} \keyword{utilities} oligoClasses/man/locusLevelData.Rd0000644000175200017520000000215114710217345020177 0ustar00biocbuildbiocbuild\name{locusLevelData} \alias{locusLevelData} \docType{data} \title{Basic data elements required for the HMM} \description{ This object is a list containing the basic data elements required for the HMM } \usage{data(locusLevelData)} \format{ A list } \details{ The basic assay data elements that can be used for fitting the HMM are: 1. a mapping of platform identifiers to chromosome and physical position 2. (optional) a matrix of copy number estimates 3. (optional) a matrix of confidence scores for the copy number estimates (e.g., inverse standard deviations) 4. (optional) a matrix of genotype calls 5. (optional) CRLMM confidence scores for the genotype calls At least (2) or (4) is required. The locusLevelData is a list that contains (1), (2), (4), and (5). } \source{ A HapMap sample on the Affymetrix 50k platform. Chromosomal alterations were simulated. The last 100 SNPs on chromosome 2 are, in fact, a repeat of the first 100 SNPs on chromosome 1 -- this was added for internal use. } \examples{ data(locusLevelData) str(locusLevelData) } \keyword{datasets} oligoClasses/man/makeFeatureGRanges.Rd0000644000175200017520000000205714710217345020775 0ustar00biocbuildbiocbuild\name{makeFeatureGRanges} \alias{makeFeatureGRanges} \title{ Construct a GRanges object from several possible feature-level classes } \description{ Construct a GRanges object from several possible feature-level classes. The conversion is useful for subsequent ranged-data queries, such as \code{findOverlaps}, \code{countOverlaps}, etc. } \usage{ makeFeatureGRanges(object, ...) } \arguments{ \item{object}{ A \code{gSet}-derived object containing chromosome and physical position for the markers on the array. } \item{\dots}{ See the \code{makeFeatureGRanges} method for \code{GenomeAnnotatedDataFrame}. } } \value{ A \code{GRanges} object. } \author{ R. Scharpf } \seealso{ \code{\link{findOverlaps}}, \code{\linkS4class{GRanges}}, \code{\linkS4class{GenomeAnnotatedDataFrame}} } \examples{ library(oligoClasses) library(GenomicRanges) library(Biobase) library(foreach) registerDoSEQ() data(oligoSetExample, package="oligoClasses") oligoSet <- oligoSet[chromosome(oligoSet) == 1, ] makeFeatureGRanges(oligoSet) } \keyword{manip} oligoClasses/man/manufacturer-methods.Rd0000644000175200017520000000067514710217345021436 0ustar00biocbuildbiocbuild\name{manufacturer-methods} \docType{methods} \alias{manufacturer} \alias{manufacturer-methods} \alias{manufacturer,DBPDInfo-method} \alias{manufacturer,FeatureSet-method} \title{Manufacturer ID for FeatureSet-like objects.} \description{ Manufacturer ID for FeatureSet-like and DBPDInfo-like objects. } \section{Methods}{ \describe{ \item{object = "FeatureSet"}{Manufacturer ID} \item{object = "PDInfo"}{Manufacturer ID} }} \keyword{methods} oligoClasses/man/ocLapply.Rd0000644000175200017520000000153314710217345017056 0ustar00biocbuildbiocbuild\name{ocLapply} \alias{ocLapply} \title{ lapply-like function that parallelizes code when possible. } \description{ ocLapply is an lapply-like function that checks if ff/snow are loaded and if the cluster variable is set to execute FUN on a cluster. If these requirements are not available, then lapply is used. } \usage{ ocLapply(X, FUN, ..., neededPkgs) } \arguments{ \item{X}{first argument to FUN.} \item{FUN}{function to be executed.} \item{\dots}{additional arguments to FUN.} \item{neededPkgs}{packages needed to execute FUN on the compute nodes.} } \details{ \code{neededPkgs} is needed when parallel computing is expected to be used. These packages are loaded on the compute nodes before the execution of FUN. } \value{ A list of length length(X). } \author{ Benilton S Carvalho } \seealso{lapply, parStatus} \keyword{manip} oligoClasses/man/oligoSetExample.Rd0000644000175200017520000000151214710217345020371 0ustar00biocbuildbiocbuild\name{oligoSet} \alias{oligoSet} \docType{data} \title{An example instance of oligoSnpSet class} \description{ An example instance of the \code{oligoSnpSet} class } \usage{data(oligoSetExample)} \source{ Created from the simulated locusLevelData provided in this package. } \seealso{\code{\link{locusLevelData}}} \examples{ \dontrun{ ## 'oligoSetExample' created by the following data(locusLevelData) oligoSet <- new("oligoSnpSet", copyNumber=integerMatrix(log2(locusLevelData[["copynumber"]]/100), 100), call=locusLevelData[["genotypes"]], callProbability=locusLevelData[["crlmmConfidence"]], annotation=locusLevelData[["platform"]], genome="hg19") oligoSet <- oligoSet[!is.na(chromosome(oligoSet)), ] oligoSet <- oligoSet[chromosome(oligoSet) < 3, ] } data(oligoSetExample) oligoSet } \keyword{datasets} oligoClasses/man/oligoSnpSet-methods.Rd0000644000175200017520000000403014710217345021175 0ustar00biocbuildbiocbuild\name{oligoSnpSet-methods} \docType{methods} \alias{oligoSnpSet-class} \alias{initialize,oligoSnpSet-method} \alias{baf,oligoSnpSet-method} \alias{baf<-,oligoSnpSet-method} \alias{coerce,oligoSnpSet,data.frame-method} \alias{copyNumber,oligoSnpSet-method} \alias{copyNumber<-,oligoSnpSet,matrix-method} \alias{calls,oligoSnpSet-method} \alias{calls<-,oligoSnpSet,matrix-method} \alias{cnConfidence,oligoSnpSet-method} \alias{cnConfidence<-,oligoSnpSet,matrix-method} \alias{callsConfidence,oligoSnpSet-method} \alias{callsConfidence<-,oligoSnpSet,matrix-method} \alias{position<-,oligoSnpSet,integer-method} \alias{updateObject,oligoSnpSet-method} \title{Methods for oligoSnpSet class} \description{Methods for oligoSnpSet class} \section{Methods}{ In the following code, \code{object} is an instance of the \code{oligoSnpSet} class. \describe{ \item{}{ \code{new("oligoSnpSet", ...)}: Instantiates an object of class \code{oligoSnpSet}. The assayData elements of the \code{oligoSnpSet} class can include matrices of genotype calls, confidence scores for the genotype calls, B allele frequencies, absolute or relative copy number, and confidence scores for the copy number estimates. Each matrix should be coerced to an integer scale prior to assignment to the \code{oligoSnpSet} object. Validity methods defined for the class will fail if the matrices are not integers. See examples for additional details. } \item{}{ \code{baf(object)}: Accessor for integer representation of the B allele frequencies. The value returned by this method can be divided by 1000 to obtain B allele frequencies on the original [0,1] scale. } \item{}{ \code{baf(object) <- value}: Assign an integer representation of the B allele frequencies to the 'baf' element of the assayData slot. \code{value} must be a matrix of integers. See the examples for help converting BAFs to a matrix of integers. } } } %\examples{} \keyword{methods} oligoClasses/man/parStatus.Rd0000644000175200017520000000052014710217345017254 0ustar00biocbuildbiocbuild\name{parStatus} \alias{parStatus} \title{ Checks if oligo/crlmm can use parallel resources. } \description{ Checks if oligo/crlmm can use parallel resources (needs ff and snow package, in addition to options(cluster=makeCluster(...)). } \usage{ parStatus() } \value{logical} \author{ Benilton S Carvalho } \keyword{manip} oligoClasses/man/pdPkgFromBioC.Rd0000644000175200017520000000141314710217345017716 0ustar00biocbuildbiocbuild\name{pdPkgFromBioC} \Rdversion{1.1} \alias{pdPkgFromBioC} \title{ Get packages from BioConductor. } \description{ This function checks if a given package is available on BioConductor and installs it, in case it is. } \usage{ pdPkgFromBioC(pkgname, lib = .libPaths()[1], verbose = TRUE) } \arguments{ \item{pkgname}{ character. Name of the package to be installed. } \item{lib}{ character. Path where to install the package at. } \item{verbose}{ logical. Verbosity flag. } } \details{ Internet connection required. } \value{ Logical: TRUE if package was found, downloaded and installed; FALSE otherwise. } \author{ Benilton Carvalho } \seealso{ download.packages } \examples{ \dontrun{ pdPkgFromBioC("pd.mapping50k.xba240") } } \keyword{data} oligoClasses/man/platform-methods.Rd0000644000175200017520000000044114710217345020555 0ustar00biocbuildbiocbuild\name{platform-methods} \docType{methods} \alias{platform} \alias{platform-methods} \alias{platform,FeatureSet-method} \title{Platform Information} \description{ Platform Information } \section{Methods}{ \describe{ \item{object = "FeatureSet"}{platform information} }} \keyword{methods} oligoClasses/man/pmFragmentLength-methods.Rd0000644000175200017520000000071214710217345022174 0ustar00biocbuildbiocbuild\name{pmFragmentLength-methods} \docType{methods} \alias{pmFragmentLength} \alias{pmFragmentLength-methods} \alias{pmFragmentLength,AffySNPPDInfo-method} \title{Information on Fragment Length} \description{ This method will return the fragment length for PM probes. } \section{Methods}{ \describe{ \item{object = "AffySNPPDInfo"}{On \code{AffySNPPDInfo} objects, it will return the fragment length that contains the SNP in question.} }} \keyword{methods} oligoClasses/man/position-methods.Rd0000644000175200017520000000217114710217345020577 0ustar00biocbuildbiocbuild\name{position-methods} \docType{methods} \alias{position-methods} \alias{position} \alias{position,AnnotatedDataFrame-method} \alias{position,SnpSet-method} \alias{position,gSet-method} \alias{position,GenomeAnnotatedDataFrame-method} \title{Methods for function position in Package oligoClasses} \description{ Methods for function \code{position} in package \pkg{oligoClasses} } \section{Methods}{ The methods for \code{position} extracts the physical position stored as an integer for each marker in a \code{eSet}-derived class or a \code{AnnotatedDataFrame}-derived class. \describe{ \item{\code{signature(object = "AnnotatedDataFrame")}}{ Accessor for physical position. } \item{\code{signature(object = "eSet")}}{ If 'position' is included in \code{fvarLabels(object)}, the physical position will be returned. Otherwise, an error is thrown. } \item{\code{signature(object = "GenomeAnnotatedDataFrame")}}{ Accessor for physical position. If annotation was not available due to a missing or non-existent annotation package, the value returned by the accessor will be a vector of zero's. } } } \keyword{methods} oligoClasses/man/requireAnnotation.Rd0000644000175200017520000000163214710217345021002 0ustar00biocbuildbiocbuild\name{requireAnnotation} \Rdversion{1.1} \alias{requireAnnotation} \title{ Helper function to load packages. } \description{ This function checkes the existence of a given package and loads it if available. If the package is not available, the function checks its availability on BioConductor, downloads it and installs it. } \usage{ requireAnnotation(pkgname, lib=.libPaths()[1], verbose = TRUE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{pkgname}{ character. Package name (usually an annotation package). } \item{lib}{ character. Path where to install packages at. } \item{verbose}{ logical. Verbosity flag. } } \value{ Logical: TRUE if package is available or FALSE if package unavailable for download. } \author{ Benilton Carvalho } \seealso{ install.packages } \examples{ \dontrun{ requirePackage("pd.mapping50k.xba240") } } \keyword{data} oligoClasses/man/requireClusterPkgSetDeprecated.Rd0000644000175200017520000000176214710217345023414 0ustar00biocbuildbiocbuild\name{requireClusterPkgSet} \alias{requireClusterPkg} \alias{requireClusterPkgSet} \alias{requireClusterPkg-deprecated} \alias{requireClusterPkgSet-deprecated} \title{ DEPRECATED FUNCTIONS. Package loaders for clusters. } \description{ Package loaders for clusters. } \usage{ requireClusterPkgSet(packages) requireClusterPkg(pkg, character.only) } \arguments{ \item{packages}{character vector with the names of the packages to be loaded on the compute nodes.} \item{pkg}{name of a package given as a name or literal character string} \item{character.only}{a logical indicating whether `pkg' can be assumed to be a character string} } \details{ \code{requireClusterPkgSet} applies \code{require} for a set of packages on the cluster nodes. \code{requireClusterPkg} applies \code{require} for *ONE* package on the cluster nodes and accepts every argument taken by \code{require}. } \value{ Logical. } \author{ Benilton S Carvalho } \seealso{require} \keyword{manip} oligoClasses/man/sampleNames-methods.Rd0000644000175200017520000000052014710217345021174 0ustar00biocbuildbiocbuild\name{sampleNames-methods} \docType{methods} \alias{sampleNames-methods} \alias{sampleNames,FeatureSet-method} \title{Sample names for FeatureSet-like objects} \description{ Returns sample names for FeatureSet-like objects. } \section{Methods}{ \describe{ \item{object = "FeatureSet"}{Sample names} } } \keyword{methods} oligoClasses/man/splitVec.Rd0000644000175200017520000000146414710217345017067 0ustar00biocbuildbiocbuild\name{splitIndicesByLength} \alias{splitIndicesByNode} \alias{splitIndicesByLength} \title{ Tools to distribute objects across nodes or by length. } \description{ Tools to distribute objects across nodes or by length. } \usage{ splitIndicesByLength(x, lg, balance=FALSE) splitIndicesByNode(x) } \arguments{ \item{x}{object to be split} \item{lg}{length} \item{balance}{logical. Currently ignored} } \details{ \code{splitIndicesByLength} splits \code{x} in groups of length \code{lg}. \code{splitIndicesByNode} splits \code{x} in N groups (where N is the number of compute nodes available). } \value{ List. } \author{ Benilton S Carvalho } \seealso{ split } \examples{ x <- 1:100 splitIndicesByLength(x, 8) splitIndicesByLength(x, 8, balance=TRUE) splitIndicesByNode(x) } \keyword{manip} oligoClasses/tests/0000755000175200017520000000000014710217345015371 5ustar00biocbuildbiocbuildoligoClasses/tests/doRUnit.R0000644000175200017520000000372414710217345017106 0ustar00biocbuildbiocbuild## from xmapcore package if( require( "RUnit", quietly=TRUE ) ) { ## loading Biobase below b/c we're simply Import:ing it, rather than Depend:ing on it ## then functions from there are not visible downstream library(Biobase) pkg <- "oligoClasses" if( Sys.getenv( "RCMDCHECK" ) == "FALSE" ) { path <- file.path( getwd(), "..", "inst", "unitTests" ) } else { path <- system.file( package=pkg, "unitTests" ) } cat( "\nRunning unit tests\n" ) print( list( pkg=pkg, getwd=getwd(), pathToUnitTests=path ) ) library( package=pkg, character.only=TRUE ) ##xmap.clear.cache() ##Fail on warnings ##options( warn=2 ) options(warn=0) ## Get the pattern (if there is one?) patt <- Sys.getenv( "RUNITFILEPATTERN" ) if( is.null( patt ) || nchar( patt ) == 0 ) { testSuite <- defineTestSuite(name=paste( pkg, "unit testing" ), dirs=path, testFileRegexp=paste( "^test.+", patt, "\\.[rR]$", sep="" )) } else { ##testSuite <- defineTestSuite( name=paste( pkg, "unit testing" ), testFileRegexp=paste( "^runit\\.", patt, "\\.[rR]$", sep="" ), dirs=path ) testSuite <- defineTestSuite(name=paste( pkg, "unit testing" ), testFileRegexp=paste( "^test.+", patt, "\\.[rR]$", sep="" ), dirs=path ) } tests <- runTestSuite( testSuite ) pathReport <- file.path( path, "report" ) cat( "------------------- UNIT TEST SUMMARY ---------------------\n\n" ) printTextProtocol( tests, showDetails=FALSE ) printTextProtocol( tests, showDetails=FALSE, fileName=paste( pathReport, "Summary.txt", sep="" ) ) printTextProtocol( tests, showDetails=TRUE, fileName=paste( pathReport, ".txt", sep="" ) ) printHTMLProtocol( tests, fileName=paste( pathReport, ".html", sep="" ) ) tmp <- getErrors( tests ) if( tmp$nFail > 0 | tmp$nErr > 0 ){ stop( paste( "\n\nunit testing failed (#test failures: ", tmp$nFail, ", #R errors: ", tmp$nErr, ")\n\n", sep="")) } } else { warning( "cannot run unit tests -- package RUnit is not available" ) } oligoClasses/vignettes/0000755000175200017520000000000014710217345016237 5ustar00biocbuildbiocbuildoligoClasses/vignettes/scriptsForExampleData/0000755000175200017520000000000014710217345022503 5ustar00biocbuildbiocbuildoligoClasses/vignettes/scriptsForExampleData/CreateExampleData.R0000644000175200017520000000355114710217345026143 0ustar00biocbuildbiocbuild## Adding toy examples ## Saving the script that creates the examples here ## so we can improve later NS <- 5 FS <- 9 rp <- 4 ids <- as.character(t(outer(1:FS, 1:rp, paste, sep="."))) sns <- paste("sample", 1:NS, sep="") fns <- paste("feature", ids, sep="") set.seed(1) tmpExprs <- matrix(as.integer(2^rnorm(NS*FS*rp, mean=12, sd=2)), nc=NS) rownames(tmpExprs) <- fns colnames(tmpExprs) <- sns ## ExpressionFeatureSet efsExample <- new("ExpressionFeatureSet", exprs=tmpExprs, annotation="example") save(efsExample, file="../../data/efsExample.rda") ## SnpFeatureSet ids <- as.character(t(outer(1:FS, c("1-A", "2-A", "1-B", "2-B"), paste, sep="."))) fns <- paste("SNP", ids, sep="") rownames(tmpExprs) <- fns sfsExample <- new("SnpFeatureSet", exprs=tmpExprs, annotation="example") save(sfsExample, file="../../data/sfsExample.rda") ## SnpCnvFeatureSet ## TilingFeatureSet ## ExonFeatureSet ## GeneFeatureSet ## SnpQSet set.seed(1) NS <- 5 FS <- 9 ata <- matrix(rnorm(NS*FS, mean=12, sd=2), nc=NS) atb <- matrix(rnorm(NS*FS, mean=12, sd=2), nc=NS) sta <- matrix(rnorm(NS*FS, mean=12, sd=2), nc=NS) stb <- matrix(rnorm(NS*FS, mean=12, sd=2), nc=NS) rownames(ata) <- rownames(atb) <- rownames(sta) <- rownames(stb) <- paste("SNP", 1:FS, sep="") colnames(ata) <- colnames(atb) <- colnames(sta) <- colnames(stb) <- paste("sample", 1:NS, sep="") sqsExample <- new("SnpQSet", antisenseThetaA=ata, antisenseThetaB=atb, senseThetaA=sta, senseThetaB=stb, annotation="example") save(sqsExample, file="../../data/sqsExample.rda") ## SnpCnvQSet scqsExample <- new("SnpCnvQSet", thetaA=ata, thetaB=atb, annotation="example") save(scqsExample, file="../../data/scqsExample.rda")