altcdfenvs/DESCRIPTION0000644000175200017520000000212714516022764015444 0ustar00biocbuildbiocbuildPackage: altcdfenvs Version: 2.64.0 Title: alternative CDF environments (aka probeset mappings) Author: Laurent Gautier Maintainer: Laurent Gautier biocViews: Microarray, OneChannel, QualityControl, Preprocessing, Annotation, ProprietaryPlatforms, Transcription Depends: R (>= 2.7), methods, BiocGenerics (>= 0.1.0), S4Vectors (>= 0.9.25), Biobase (>= 2.15.1), affy, makecdfenv, Biostrings, hypergraph Suggests: plasmodiumanophelescdf, hgu95acdf, hgu133aprobe, hgu133a.db, hgu133acdf, Rgraphviz, RColorBrewer Description: Convenience data structures and functions to handle cdfenvs License: GPL (>= 2) Collate: appendCdfEnvAffy.R buildCdfEnv.matchprobes.R buildCdfEnv.biostrings.R CdfEnv.R cdfenvs.R copyCdfEnvAffy.R readFASTA.R removeIndex.R unique.CdfEnvAffy.R LazyLoad: yes Packaged: 2023-10-24 20:15:48 UTC; biocbuild git_url: https://git.bioconductor.org/packages/altcdfenvs git_branch: RELEASE_3_18 git_last_commit: 86cec42 git_last_commit_date: 2023-10-24 Date/Publication: 2023-10-24 NeedsCompilation: no altcdfenvs/NAMESPACE0000644000175200017520000000022114516003570015140 0ustar00biocbuildbiocbuild importFrom(graphics, plot) importFrom("BiocGenerics", "combine") import(S4Vectors) importFrom("affy", "indexProbes") exportPattern("^[^\\.]") altcdfenvs/R/0000755000175200017520000000000014516003570014127 5ustar00biocbuildbiocbuildaltcdfenvs/R/CdfEnv.R0000644000175200017520000001632014516003570015421 0ustar00biocbuildbiocbuild index2xy.CdfEnvAffy <- function(object, i) { indices2xy(i, nc = object@nrow) - getOption("BioC")$affy$xy.offset } xy2index.CdfEnvAffy <- function(object, x, y) { o <- getOption("BioC")$affy$xy.offset xy2indices(x+o, y+o, nc = object@nrow) } setClass("CdfEnvAffy", representation(envir = "environment", envName = "character", index2xy = "function", xy2index = "function", nrow = "integer", ncol = "integer", probeTypes = "character", chipType = "character"), prototype = list(index2xy = index2xy.CdfEnvAffy, xy2index = xy2index.CdfEnvAffy)) ## --- setAs("CdfEnvAffy", "environment", function(from) from@envir ) setAs("CdfEnvAffy", "Cdf", function(from) { m <- matrix(as.numeric(NA), from@nrow, from@ncol) l <- ls(from@envir) for (i in seq(along=l)) { tmp <- indexProbes(from, "pm", l[i])[[1]] m[tmp] <- i tmp <- indexProbes(from, "mm", l[i])[[1]] m[tmp] <- i } cdf <- new("Cdf", cdfName=from@chipType, name=m, name.levels=l) return(cdf) } ) geneNames.CdfEnvAffy <- function(object) { ls(as(object, "environment")) } setMethod("geneNames", "CdfEnvAffy", geneNames.CdfEnvAffy) ## --- setMethod("[", signature(x="CdfEnvAffy", i="character", j="missing", drop="missing"), function(x, i, j, drop=FALSE) { if( !missing(j)) { stop("Improper subsetting. Only one vector of IDs should be given.\n") } if (is.matrix(i)) { if (! is.integer(i)) { stop("not implemented") ##stop("when a matrix, 'i' should be of mode 'integer'") } y <- x y@envName <- paste(x@envName, "-subsetXYcoords", sep="") y@envir <- new.env(hash=TRUE, parent = emptyenv()) ## make a Cdf (faster lookup for XY or indexes). cdfenv <- get(x@envName) cdf <- as(cdfenv, "Cdf") idx <- xy2index(x, i) for (i in idx) { id <- cdf@names.level[cdf@names[i]] tmp <- indexProbes(y, y@probeTypes, id) ## implementation not complete ## pm or mm to be sorted ## and idx appended to tmp assign(id, tmp, envir=y@envir) } } else { if (! is.character(i)) { stop("when not a matrix, 'i' should be of mode 'character'") } y <- x y@envName <- paste(x@envName, "-subsetProbeSets", sep="") y@envir <- new.env(hash=TRUE, parent = emptyenv()) for (id in i) { ##tmp <- indexProbes(x, x@probeTypes, id) tmp <- do.call(cbind, lapply(x@probeTypes, function(pt) indexProbes(x, pt, id)[[1]])) assign(id, tmp, envir=y@envir) } } return(y) }) ## --- indexProbes.CdfEnvAffy <- function(object, which, probeSetNames=NULL) { probeTypes <- object@probeTypes ##FIXME: hack for compatibility with 'affy' if (identical(which, "both") || identical(which, c("pm", "mm", "both"))) { which <- probeTypes warning("The use of \"both\" in 'which' is deprecated.") } ## if ( ! all(which %in% probeTypes)) stop(paste("'which' can only take values from:", paste(probeTypes, collapse=", "))) i.probes <- match(which, probeTypes) envir <- as(object, "environment") if(is.null(probeSetNames)) probeSetNames <- ls(envir) ans <- mget(probeSetNames, envir=envir, ifnotfound=list(NA)) ## this kind of thing could be included in 'multiget' as ## an extra feature. A function could be specified to ## process what is 'multi'-get on the fly for (i in seq(along=ans)) { if ( is.na(ans[[i]][1]) ) next ##as.vector cause it might be a matrix if all probe types tmp <- as.vector(ans[[i]][, i.probes]) ans[[i]] <- tmp } return(ans) } setMethod("indexProbes", signature("CdfEnvAffy", which = "character"), indexProbes.CdfEnvAffy) ## --- setGeneric("index2xy", def = function(object, ...) standardGeneric("index2xy")) setMethod("index2xy", signature(object="CdfEnvAffy"), function(object, ...) object@index2xy(object, ...)) ## --- setGeneric("xy2index", def = function(object, ...) standardGeneric("xy2index"), useAsDefault = FALSE) setMethod("xy2index", signature(object="CdfEnvAffy"), function(object, ...) object@xy2index(object, ...)) ## --- plot.CdfEnvAffy <- function(x, xlab = "", ylab = "", main = x@chipType, ...) { plot(0, 0, xlim = range(0, x@nrow), ylim = range(0, x@ncol), type="n", xlab = xlab, ylab = ylab, main = main, ...) } setMethod("plot", signature(x="CdfEnvAffy", y="missing"), plot.CdfEnvAffy) ## --- setMethod("show", signature("CdfEnvAffy"), function(object) { cat("Instance of class CdfEnvAffy:\n") cat(" name :", object@envName, "\n") cat(" chip-type:", object@chipType, "\n") cat(" size :", object@nrow, "x", object@ncol, "\n") cat("", length(ls(as(object, "environment"))), "probe set(s) defined.\n") }) ## --- validCdfEnvAffy <- function(cdfenv, verbose=TRUE) { if (verbose) cat("Validating CdfEnvAffy:\n") envir <- as(cdfenv, "environment") keys <- ls(envir) ## probe types if (verbose) cat(" Checking probe types.\n") n <- length(cdfenv@probeTypes) tmp <- rep(FALSE, n) for (i in seq(along=keys)) { if (ncol(get(keys[i], envir = envir)) != n) tmp[i] <- TRUE } if (n > 0 && sum(tmp) != 0) valid <- FALSE else valid <- TRUE r.probeTypes <- list(valid=valid, invalid.ones=keys[which(tmp)]) if (verbose) cat(sum(tmp), "invalid ones.\n") ## XY if (verbose) cat(" Checking XY coordinates.\n") tmp <- rep(FALSE, n) for (i in seq(along=keys)) { ip <- indexProbes(cdfenv, which = cdfenv@probeTypes, probeSetNames = keys[i])[[1]] xy <- index2xy(cdfenv, ip) if (any(xy[, 1] > cdfenv@nrow, na.rm = TRUE) || any(xy[, 2] > cdfenv@ncol, na.rm = TRUE)) tmp[i] <- TRUE } if (n > 0 && sum(tmp) != 0) valid <- FALSE else valid <- TRUE r.xy <- list(valid=valid, invalid.ones=keys[which(tmp)]) if (verbose) cat(sum(tmp), "invalid ones\n") r.details <- list(probeTypes=r.probeTypes, xy=r.xy) r <- all( unlist(lapply(r.details, function(x) x$valid)) ) attr(r, "details") <- r.details return(r) } ## --- printValidCdfEnvAffy <- function(x) { printDetails <- function(y) { if (y$valid) { cat(" valid.\n") return() } n <- length(y$invalid.ones) if (n == 1) cat(paste(" ", n, "invalid probe set\n")) else cat(paste(" ", n, "invalid probe sets\n")) if (n <= 5) cat(paste(y$invalid.ones, collapse=" "), "\n") else cat(paste(paste(y$invalid.ones[1:5], collapse=" "), "...\n")) } r.details <- attr(x, "details") cat("Probe types:\n") printDetails(r.details$probeTypes) cat("XY coordinates:\n") printDetails(r.details$xy) } ## --- validAffyBatch <- function(abatch, cdfenv) { stopifnot(is(abatch, "AffyBatch"), is(cdfenv, "CdfEnvAffy")) if ( (abatch@nrow != cdfenv@nrow) || (abatch@ncol != cdfenv@ncol)) valid <- FALSE else valid <- TRUE return(valid) #r.dim <- list(valid = valid) #return(r.dim) } ## --- # setMethod("initialize", "CdfEnvAffy", # function(.Object) { # }) altcdfenvs/R/appendCdfEnvAffy.R0000644000175200017520000000135614516003570017422 0ustar00biocbuildbiocbuildappendCdfEnvAffy <- function(acdfenv, id, i, nocopy=TRUE) { stopifnot(is.character(id), is.matrix(i), is.integer(i)) tmp.m <- match(colnames(i), acdfenv@probeTypes) if (! all(colnames(i) %in% acdfenv@probeTypes)) { stop("the CdfEnv only knows about probe types:\n", paste(acdfenv@probeTypes, collapse=",")) } if (exists(id, envir=acdfenv@envir)) { stop("'id' already in 'adfenv'") } if (! nocopy) { acdfenv <- copyCdfEnvAffy(acdfenv) } m <- matrix(as.integer(NA), nrow=nrow(i), ncol=length(acdfenv@probeTypes)) m[, tmp.m] <- i ##DEBUG: a consistency check (i.e., the index make sense given the ## geometry of the chip) would be nice... assign(id, m, envir=acdfenv@envir) return(acdfenv) } altcdfenvs/R/buildCdfEnv.biostrings.R0000644000175200017520000002102314516003570020617 0ustar00biocbuildbiocbuild mmProbes <- function(probes) { len_probe <- unique(nchar(probes$sequence)) if (length(len_probe) > 1) stop(paste("Different length for probes", "(and the handling of that case is not implemented).")) if (len_probe != 25) stop(paste("The expected probe length is 25 bp, not ", len_probe, ".", sep="")) mmpos <- 13 ## First write. Using DNAStringSet, short and elegant... ## but unfortunately unbearably slow ## mmseq <- ## lapply(as.list(probes$stringset), ## function(x) { ## replaceLetterAt(x, mmpos, ## as.character(complement(x[mmpos]))) ## }) pmprobe <- substr(probes$sequence, mmpos, mmpos) mmprobe <- rep(as.character(NA), length=length(pmprobe)) mmprobe[grep("[Aa]", pmprobe)] <- "T" mmprobe[grep("[Tt]", pmprobe)] <- "A" mmprobe[grep("[Gg]", pmprobe)] <- "C" mmprobe[grep("[Cc]", pmprobe)] <- "G" mmseq <- paste(substr(probes$sequence, 1, mmpos-1), mmprobe, substr(probes$sequence, mmpos+1, nchar(probes$sequence)), sep = "") return(mmseq) } setClass("AffyProbesMatch", representation(pm = "list", mm = "list", labels = "character", chip_type = "character", probes = "ANY"), # should be class "probetable" - S4 don't seem to cope with it validity = function(obj) { if (length(obj@pm) != length(obj@mm)) return("mm and pm should have identical lengths") if (length(obj@pm) != length(obj@labels)) return("labels and pm should have identical lengths") if (any(duplicated(obj@labels))) return("labels should be unique.") if (length(obj@chip_type) != 1) return("chip_type should be *one* chip type name") if (! all(unlist(lapply(obj@pm, function(y) inherits(y, "integer"))))) { return("all pm should inherit from numeric") } if (! all(unlist(lapply(obj@mm, function(y) inherits(y, "integer"))))) { return("all mm should inherit from numeric") } return(TRUE) }) setMethod("show", signature = c("AffyProbesMatch"), function(object) { cat("AffyProbesMatch:\n") cat(paste(length(object@pm), "target(s) sequences matched", "against", nrow(object@probes), "probes of chip type", object@chip_type, ".\n")) } ) setMethod("combine", signature = c("AffyProbesMatch", "AffyProbesMatch"), function(x, y, ...) { if (x@chip_type != y@chip_type) stop("Both 'chip_type' must be identical.") if (! identical(x@probes, y@probes)) stop("Both probe tables must be identical.") pm <- c(x@pm, y@pm) mm <- c(x@mm, y@mm) labels <- c(x@labels, y@labels) chip_type <- x@chip_type probetable <- x@probes res <- new("AffyProbesMatch", pm = pm, mm = mm, labels = labels, chip_type = chip_type, probes = probetable) return(res) }) toHypergraph <- function(object, ...) { stop("Not available for the given signature.") } setGeneric("toHypergraph") setMethod("toHypergraph", signature = c("AffyProbesMatch"), function(object, simplify=TRUE, ...) { if (simplify) { target_match <- unlist(lapply(object@pm, function(x) length(x) > 0)) probe_match <- rep(FALSE, length=nrow(object@probes)) for (i in which(target_match)) { probe_match[object@pm[[i]]] <- TRUE } } else { target_match <- rep(TRUE, length=length(object@pm)) probe_match <- rep(TRUE, length=nrow(object@probes)) } i_match <- rep(as.integer(NA), nrow(object@probes)) i_match[probe_match] <- seq(along=which(probe_match)) nodes <- paste(as.character(object@probes[["x"]][probe_match]), as.character(object@probes[["y"]][probe_match]), sep = "-") hEdges <- lapply(object@pm[target_match], function(x) Hyperedge(nodes[i_match[x]])) names(hEdges) <- object@labels[target_match] hg <- new("Hypergraph", nodes = nodes, hyperedges = hEdges) return(hg) } ) setMethod("toHypergraph", signature = c("CdfEnvAffy"), function(object, ...) { targets <- ls(object@envir) nodesEnv <- new.env(hash=TRUE, parent=emptyenv()) for (n in targets) { m <- object@envir[[n]] labels <- apply(index2xy(object, m[, 1]), 1, function(x) paste(x, collapse="-")) nodesEnv[[n]] <- labels } nodes <- unlist(as.list(nodesEnv), use.names=FALSE) nodes <- unique(nodes) hEdges <- lapply(nodesEnv, function(x) Hyperedge(x)) hg <- new("Hypergraph", nodes = nodes, hyperedges = hEdges) return(hg) }) matchAffyProbes <- function(probes, targets, chip_type, matchmm = TRUE, selectMatches = function(x) which(elementNROWS(x) > 0), ...) { if (! inherits(probes, "probetable")) { stop(paste("'probes' should inherit from class 'probetable'.")) } stringset <- DNAStringSet(probes$sequence) if (inherits(targets, "character")) { targets <- as.list(targets) for (ii in seq(along = targets)) { if (is.na(targets[[ii]])) { stop(paste("Target", ii, "is NA.")) } targets[[ii]] <- DNAString(targets[[ii]]) } } else if (inherits(targets, "list")) { for (ii in seq(along = targets)) { if (! inherits(targets[[ii]], "DNAString")) { stop("Invalid 'targets'.") } } } else if (! inherits(targets, "DNAString")) { stop("Invalid 'targets'.") } labels <- names(targets) if (is.null(labels)) { labels <- as.character(seq(along=targets)) } pmdict <- PDict(stringset) mindex_pm <- vector("list", length = length(targets)) for (ii in seq(along = targets)) { md <- matchPDict(pmdict, targets[[ii]], ...) mindex_pm[[ii]] <- selectMatches(md) } mindex_mm <- vector("list", length = length(targets)) if (matchmm) { mmseq <- mmProbes(probes) mmdict <- PDict(mmseq) for (ii in seq(along = targets)) { md <- matchPDict(mmdict, targets[[ii]], ...) mindex_mm[[ii]] <- selectMatches(md) } } apm <- new("AffyProbesMatch", pm = mindex_pm, mm = mindex_mm, labels = labels, chip_type = chip_type, probes=probes) return(apm) } buildCdfEnv.biostrings <- function(apm, abatch=NULL, nrow.chip=NULL, ncol.chip=NULL, simplify = TRUE, x.colname = "x", y.colname = "y", verbose = FALSE) { if (verbose) cat("validating 'apm'...") validObject(apm) if (verbose) cat("done.\n") if ( ! is.null(abatch)) { if (! is(abatch, "AffyBatch")) stop("abatch must be of class 'AffyBatch'.") nrow.chip <- abatch@nrow ncol.chip <- abatch@ncol chip_type <- abatch@cdfName } if (is.null(nrow.chip) || is.null(ncol.chip)) stop("nrow.chip, ncol.chip") probetab <- apm@probes cdfenv <- new.env(hash=TRUE) if (verbose) { cat("Processing the matches:\n") pbt <- new("ProgressBarText", length(apm@pm), barsteps = as.integer(20)) open(pbt) } ##FIXME: warning("Check index for MM probes.") for (i in seq(along = apm@pm)) { if (verbose) update(pbt) xy <- getxy.probeseq(probeseq = probetab, i.row = apm@pm[[i]], x.colname = x.colname, y.colname = y.colname) if (nrow(xy) == 0 && simplify) { next } assign(apm@labels[i], cbind(xy2indices(xy[, 1], xy[, 2], nc=nrow.chip), xy2indices(xy[, 1]+1, xy[, 2], nc=nrow.chip)), envir=cdfenv) } if (verbose) close(pbt) cdfenv <- wrapCdfEnvAffy(cdfenv, nrow.chip, ncol.chip, apm@chip_type) return(cdfenv) } altcdfenvs/R/buildCdfEnv.matchprobes.R0000644000175200017520000000372014516003570020747 0ustar00biocbuildbiocbuildbuildCdfEnv.matchprobes <- function(matches, ids, probes.pack, abatch=NULL, nrow.chip=NULL, ncol.chip=NULL, chiptype=NULL, mm=NA, simplify = TRUE, x.colname = "x", y.colname = "y", verbose = FALSE) { .Deprecated("buildCdfEnv.biostrings", package="altcdfenvs") if (! (is.list(matches) && length(matches) > 0)) #&& length(matches[[1]]) < 3) stop("arg 'matches' should be a list as returned by 'matchprobes'.") if (length(matches[[1]]) != length(ids)) stop("'matches' and 'ids' must have the same length.") if (length(matches[[1]]) != length(unique(ids))) stop("Some elements in 'ids' are not unique. You probably do not want this.") if ( ! is.null(abatch)) { if (! is(abatch, "AffyBatch")) stop("abatch must be of class 'AffyBatch'.") nrow.chip <- abatch@nrow ncol.chip <- abatch@ncol chiptype <- abatch@cdfName } if (is.null(nrow.chip) || is.null(ncol.chip) || is.null(chiptype)) stop("nrow.chip, ncol.chip or chiptype not defined.") do.call(library, list(probes.pack)) probe.tab <- get(probes.pack, envir=as.environment(paste("package:", probes.pack, sep=""))) cdfenv <- new.env(hash=TRUE) if (verbose) { cat("Processing the matches:\n") pbt <- new("ProgressBarText", length(matches$match), barsteps = as.integer(20)) open(pbt) } for (i in seq(along=matches$match)) { if (verbose) update(pbt) xy <- getxy.probeseq(probeseq=probe.tab, i.row=matches$match[[i]], x.colname = x.colname, y.colname = y.colname) if (nrow(xy) == 0 && simplify) { next } assign(ids[i], cbind(xy2indices(xy[, 1], xy[, 2], nc=nrow.chip), mm), envir=cdfenv) } if (verbose) close(pbt) cdfenv <- wrapCdfEnvAffy(cdfenv, nrow.chip, ncol.chip, chiptype) return(cdfenv) } altcdfenvs/R/cdfenvs.R0000644000175200017520000000304114516003570015700 0ustar00biocbuildbiocbuildwrapCdfEnvAffy <- function(cdfenv, nrow.chip, ncol.chip, chiptype, check = TRUE, verbose = FALSE) { object <- new("CdfEnvAffy", envir = cdfenv, envName = chiptype, nrow = as.integer(nrow.chip), ncol = as.integer(ncol.chip), probeTypes = c("pm", "mm"), chipType = chiptype) if (check) { valid <- validCdfEnvAffy(object, verbose=verbose) if ( ! valid ) { printValidCdfEnvAffy(valid) stop("invalid CdfEnvAffy") } } return(object) } getCdfEnvAffy <- function(abatch) { if (! is(abatch, "AffyBatch")) stop("arg must be of class 'AffyBatch'.") cdfenv <- getCdfInfo(abatch) cdfenv <- wrapCdfEnvAffy(cdfenv, abatch@nrow, abatch@ncol, abatch@cdfName) return(cdfenv) } getxy.probeseq <- function(ppset.id=NULL, probeseq=NULL, i.row=NULL, xy.offset=NULL, x.colname = "x", y.colname = "y") { if ( is.null(xy.offset) ) { xy.offset <- getOption("BioC")$affy$xy.offset } if (sum(c(is.null(ppset.id), is.null(i.row))) != 1) stop("specify one and only one of 'ppset.id', 'i.row'") if (is.null(probeseq)) stop("the argument 'probeseq' must be specified !") if (is.null(i.row)) i.row <- probeseq$Probe.Set.Name %in% ppset.id mm.offset <- rep(0, length=length(i.row)) mm.offset[i.row < 0] <- 1 i.row <- abs(i.row) xy <- cbind(probeseq[[x.colname]][i.row], probeseq[[y.colname]][i.row] + mm.offset) + xy.offset colnames(xy) <- c("x", "y") return(xy) } altcdfenvs/R/copyCdfEnvAffy.R0000644000175200017520000000015114516003570017115 0ustar00biocbuildbiocbuildcopyCdfEnvAffy <- function(acdfenv) { r <- acdfenv r@envir <- copyEnv(acdfenv@envir) return(r) } altcdfenvs/R/readFASTA.R0000644000175200017520000000776314516003570015761 0ustar00biocbuildbiocbuild## ## Set of (hopefully convenient) functions to extract ## sequences and headers from FASTA files ## ## Laurent 2003 - under LGPL license print.FASTA <- function(x, ...) { cat("FASTA sequence:\n", ...) if (is.null(x$header)) { cat(" NULL\n") } else { cat(paste(" ", substr(x$header, 1, 60), "...\n"), ...) cat(paste(" ", substr(x$sequence, 1, 60), "...\n"), ...) } } write.FASTA <- function(x, file="data.fasta", append = FALSE) { cat(x$header, file = file, "\n", sep = "", append = append) cat(x$sequence, file = file, "\n", sep = "", append = TRUE) } skip.FASTA.entry <- function(con, skip, linebreaks=3000) { ## skip FASTA entries in a connection for (i in rep(1, skip)) read.FASTA.entry(con, linebreaks=linebreaks) } read.n.FASTA.entries <- function(con, n, linebreaks=3000) { ## read n FASTA entries in a connection ## return a list of length n r.list <- vector("list", length=n) for (i in seq(along=r.list)) r.list[[i]] <- read.FASTA.entry(con) return(r.list) } read.n.FASTA.headers <- function(con, n, linebreaks=3000) { ## read n FASTA headers (skipping the sequences) in a connection ## return a vector of mode "character" of length n headers <- vector("character", length=n) for (i in seq(along=headers)) headers[i] <- read.FASTA.entry(con)$header return(headers) } read.n.FASTA.sequences <- function(con, n, linebreaks=3000) { ## read n FASTA sequences(skipping the headers) in a connection ## return a vector of mode character seqs <- vector("character", length=n) for (i in seq(along=seqs)) seqs[i] <- read.FASTA.entry(con)$sequence return(seqs) } read.n.FASTA.entries.split <- function(con, n, linebreaks=3000) { ## read n FASTA entries in a connection ## return a list of two elements: ## - a vector of headers ## - a vector of sequences headers <- vector("character", length=n) seqs <- vector("character", length=n) for (i in seq(along=seqs)) { fs <- read.FASTA.entry(con) headers[i] <- fs$header seqs[i] <- fs$sequence } r <- list(headers=headers, sequences=seqs) return(r) } countskip.FASTA.entries <- function(con, linebreaks=3000) { ## skip and count the remaining FASTA entries in a connection ## (handy to count the entries in a FASTA file) ## return an integer i <- as.integer(0) fs <- read.FASTA.entry(con) while(!identical(fs$header, character(0)) && !identical(fs$sequence, NULL)) { i <- i+1 fs <- read.FASTA.entry(con, linebreaks=linebreaks) } return(i) } read.FASTA.entry <- function(con, linebreaks=3000) { ## read the next FASTA entry in a connection ## (note: the parameters 'linebreaks' should be increased ## for very large sequences split in more than 'linebreaks' lines) ## return a list of two elements: ## - header: the FASTA header ## - sequence: the sequence getnext.FASTA.header <- function(con) { line <- readLines(con, n=1) while(length(line) > 0) { if (substr(line, 1, 1) == ">") { break } line <- readLines(con, n=1) } return(line) } bioseq <- vector("list", length=linebreaks) i <- as.integer(1) one.integer <- as.integer(1) header <- getnext.FASTA.header(con) line <- readLines(con, n=1) while(length(line) > 0) { if (substr(line, 1, 1) == ">") { pushBack(line, con) break } else { bioseq[[i]] <- line } i <- i + one.integer line <- readLines(con, n=1) } if (identical(header, character(0))) { header <- NULL bioseq <- NULL } else { bioseq <- paste(bioseq[1 : (i-1)], collapse="") } r <- list(header=header, sequence=bioseq) class(r) <- "FASTA" return(r) } grep.FASTA.entry <- function(pattern, con, ...) { ## grep the first FASTA entry with a header matching the pattern 'pattern' ## fs <- read.FASTA.entry(con) i <- 0 while (! identical(fs$header, NULL)) { i <- i + 1 if (length(grep(pattern, fs$header, ...)) > 0) break fs <- read.FASTA.entry(con) } attr(fs, "i") <- i return(fs) } altcdfenvs/R/removeIndex.R0000644000175200017520000000161714516003570016544 0ustar00biocbuildbiocbuildremoveIndex <- function(x, i, simplify = TRUE, verbose=FALSE) { if (! is.integer(i)) { stop("'i' must be of mode integer.") } remove.me <- rep(FALSE, length=max(i)) remove.me[i] <- TRUE tmp.env<- as(x, "environment") ids <- ls(tmp.env) ## copy env y <- new.env(hash=TRUE) if (verbose) cat("removing duplicated elements...") for (i in ids) { tmp.i <- get(i, envir=tmp.env) tmp.ok <- (c(tmp.i) > length(remove.me)) | (! remove.me[c(tmp.i)]) tmp.i[!tmp.ok] <- NA tmp.new <- tmp.i[!apply(tmp.i, 1, function(x) all(is.na(x))), , drop=FALSE] if (length(tmp.new) == 0 && simplify) { ##if (verbose) { ## cat(paste("removing ", i, " (does not have anymore elements).\n")) ##} next } assign(i, tmp.new, envir=y) } if (verbose) cat("done.\n") r <- x r@envir <- y r@envName <- paste(r@envName, "-removed", sep="") return(r) } altcdfenvs/R/unique.CdfEnvAffy.R0000644000175200017520000000364014516003570017535 0ustar00biocbuildbiocbuild##setGeneric("unique", function(x, incomparables, ...) standardGeneric("unique")) unique.CdfEnvAffy <- function(x, incomparables=FALSE, simplify=TRUE, verbose=FALSE, ...) { counts <- countduplicated(x, incomparables=incomparables, verbose=verbose) tmp.env<- as(x, "environment") ids <- ls(tmp.env) ## copy env y <- new.env(hash=TRUE) if (verbose) cat("removing duplicated elements...") for (i in ids) { tmp.count <- get(i, envir=counts) tmp.i <- get(i, envir=tmp.env) tmp.ok <- tmp.count == 1 tmp.i[!tmp.ok] <- NA tmp.new <- tmp.i[!apply(tmp.i, 1, function(x) all(is.na(x))), , drop=FALSE] if (length(tmp.new) == 0 && simplify) { ##if (verbose) { ## cat(paste("removing ", i, " (does not have anymore elements).\n")) ##} next } assign(i, tmp.new, envir=y) } if (verbose) cat("done.\n") r <- x r@envir <- y r@envName <- paste(r@envName, "-unique", sep="") return(r) } ##setMethod("unique", signature(x="CdfEnvAffy", incomparables="logical"), .unique.CdfEnvAffy) countduplicated <- function(x, incomparables=FALSE, verbose=FALSE) { if (!is(x, "CdfEnvAffy")) stop("x must inherit from 'CdfEnvAffy'") if (incomparables != FALSE) warning("'incomparable' not yet implemented !") if (verbose) cat("Initialize...") tmp.env <- as(x, "environment") ids <- ls(tmp.env) p.type <- x@probeTypes tmp.count <- rep(as.integer(0), length=sum(unlist(lapply(indexProbes(x, p.type), length)))) r <- new.env(hash = TRUE) if(verbose) cat("done.\nCounting probes...") for (i in seq(along = ids)) { p.i <- get(ids[i], envir = tmp.env) tmp.count[p.i] <- tmp.count[p.i] + 1 } if (verbose) cat("done.\nAssigning counts...") for (i in seq(along = ids)) { p.i <- get(ids[i], envir = tmp.env) p.i[] <- tmp.count[p.i] assign(ids[i], p.i, envir=r) } if (verbose) cat("done.\n") return(r) } altcdfenvs/build/0000755000175200017520000000000014516022764015033 5ustar00biocbuildbiocbuildaltcdfenvs/build/vignette.rds0000644000175200017520000000051114516022764017367 0ustar00biocbuildbiocbuildR=O0uPڊ0"P 1ZɹX$vd[mǡ\R)Đ'! |L >~UA29lrK>˕CGJ/[ȕ\T9M[h'Y-"Z[%QL"9HkU4g@dV,G8+M1JͭٹHygٹ::kAc/:!4%R_I[s\CUƠM۔2D2i""Oϣإ i OPzVl\ a|v'J2f\Me!؏7J5QFaltcdfenvs/data/0000755000175200017520000000000014516003570014637 5ustar00biocbuildbiocbuildaltcdfenvs/data/cdfenvEx.rda0000644000175200017520000000156114516003570017074 0ustar00biocbuildbiocbuilduUMI w UāY@i\0$( h> 3a搏v^U隘pMl%QN\)SIhy?ޝVaX7݉O7bz˿<[ԏ1B2y=h/Cdns0LtHJ,s+~M4QRӸawm̟CjuǜNju莏=3x:H%#h;=;OTLec>h䄢&1B9/X$;JJMm4Nƒ)e}F%Xẍ́fدHʠ= dj1r& AOہ4J\5j3*EK%m &jJ9<؞U6P#T#檐 RA b?8e!T|Y` *ж x d`+R CT40\`i/4fcŘ= q`6CS,X\gZ \C_茕p;DLCQ RðXq PH9[1hH*/ 8\ ( fZ \H VVj `& d : 9 FW`0 P!v@˖ GnüpũhAkLyD/P,s`!ST#'\ 0b&73y _kUtF_(gw<(wK|9^gwKy{1>\n]>nYfcY>nPzq?:)zaltcdfenvs/inst/0000755000175200017520000000000014516022764014711 5ustar00biocbuildbiocbuildaltcdfenvs/inst/CITATION0000644000175200017520000000102214516003570016033 0ustar00biocbuildbiocbuildcitEntry(entry = "Article", "author" = "Laurent Gautier and Morten Mooller and Lennart Friis-Hansen and Steen Knudsen", "title" = "Alternative mapping of probes to genes for {\\it Affymetrix} chips", journal = "BMC Bioinformatics", year = "2004", note = "5:111 (14 August 2004)", textVersion = "Alternative mapping of probes to genes for Affymetrix chips Laurent Gautier, Morten Mooller, Lennart Friis-Hansen, Steen Knudsen BMC Bioinformatics 2004, 5:111 (14 August 2004)" ) altcdfenvs/inst/UnitTests/0000755000175200017520000000000014516003570016645 5ustar00biocbuildbiocbuildaltcdfenvs/inst/UnitTests/AffyProbesMatch_test.R0000644000175200017520000000360214516003570023045 0ustar00biocbuildbiocbuild library(RUnit) library(altcdfenvs) pm_1 <- "AATAATAATAATAATAATAATAAGC" mm_1 <- "AATAATAATAATTATAATAATAAGC" pm_2 <- "CCACCACCACCACCACCACCACCTG" mm_2 <- "CCACCACCACCAGCACCACCACCTG" pm_3 <- "GGAGGGAGGGAGGGAGGGAGGGACT" mm_3 <- "GGAGGGAGGGAGCGAGGGAGGGACT" pm_4 <- "TTATTATTATTATTATTATTATTGC" mm_4 <- "TTATTATTATTAATATTATTATTGC" probetable <- data.frame(sequence = I(c(pm_1, pm_2, pm_3, pm_4)), x = c(10, 11, 13, 13), y = c(10, 12, 11, 12), Probe.Set.Name = I(c("12_at", "12_at", "m4_at", "4_at")), Probe.interrogation.Position = c(100, 120, 130, 140), Target.Strandeness = factor(rep("Antisense", 4))) class(probetable) <- c("data.frame", "probetable") ## test mmProbe mmp <- mmProbes(probetable) checkIdentical(c(mm_1, mm_2, mm_3, mm_4), mmp) target_1 <- paste(pm_1, pm_2, sep="GCGCG") target_2 <- paste(pm_1, pm_4, sep="GCGCG") target_3 <- paste("GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG", mm_3, sep="") targets <- list(t1 = DNAString(target_1), t2 = DNAString(target_2), t3 = DNAString(target_3)) ## test match apm <- matchAffyProbes(probetable, targets, chip_type = "foo") checkIdentical(apm@pm[[1]], as.integer(c(1,2))) checkIdentical(apm@pm[[2]], as.integer(c(1,4))) checkIdentical(apm@pm[[3]], integer(0)) checkIdentical(apm@mm[[2]], integer(0)) checkIdentical(apm@mm[[3]], as.integer(c(3))) ## test merge checkIdentical(combine(matchAffyProbes(probetable, targets[1:2], "foo"), matchAffyProbes(probetable, targets[3], "foo")), matchAffyProbes(probetable, targets, "foo")) ## toHypergraph hg <- toHypergraph(apm) ## test build env altCdf <- buildCdfEnv.biostrings(apm, nrow.chip = 15, ncol.chip = 15) ## checkIdentical(hg, toHypergraph(altCdf)) altenv <- as(altCdf, "environment") # cdfenv <- new.env(hash = TRUE, parent=emptyenv()) altcdfenvs/inst/doc/0000755000175200017520000000000014516022764015456 5ustar00biocbuildbiocbuildaltcdfenvs/inst/doc/altcdfenvs.R0000644000175200017520000001225314516022747017736 0ustar00biocbuildbiocbuild### R code from vignette source 'altcdfenvs.Rnw' ################################################### ### code chunk number 1: altcdfenvs.Rnw:71-72 ################################################### library(altcdfenvs) ################################################### ### code chunk number 2: altcdfenvs.Rnw:91-94 ################################################### fasta.filename <- system.file("exampleData", "sample.fasta", package="altcdfenvs") con <- file(fasta.filename, open="r") ################################################### ### code chunk number 3: altcdfenvs.Rnw:99-105 ################################################### fasta.seq <- read.FASTA.entry(con) while(! is.null(fasta.seq$header)) { print(fasta.seq) fasta.seq <- read.FASTA.entry(con) } close(con) ################################################### ### code chunk number 4: altcdfenvs.Rnw:127-136 ################################################### ## first, count the number of FASTA entries in our file con <- file(fasta.filename, open="r") n <- countskip.FASTA.entries(con) close(con) ## read all the entries con <- file(fasta.filename, open="r") my.entries <- read.n.FASTA.entries.split(con, n) close(con) ################################################### ### code chunk number 5: altcdfenvs.Rnw:149-151 ################################################### library(hgu133aprobe) ################################################### ### code chunk number 6: altcdfenvs.Rnw:156-164 ################################################### targets <- my.entries$sequences names(targets) <- sub(">.+\\|(Hs\\#|NM_)([^[:blank:]\\|]+).+", "\\1\\2", my.entries$headers) m <- matchAffyProbes(hgu133aprobe, targets, "HG-U133A") ################################################### ### code chunk number 7: altcdfenvs.Rnw:175-176 ################################################### hg <- toHypergraph(m) ################################################### ### code chunk number 8: altcdfenvs.Rnw:182-183 ################################################### gn <- toGraphNEL(hg) ################################################### ### code chunk number 9: altcdfenvs.Rnw:190-194 ################################################### targetNodes <- new.env(hash=TRUE, parent=emptyenv()) for (i in seq(along=targets)) { targetNodes[[names(targets)[i]]] <- i } ################################################### ### code chunk number 10: plotGraph ################################################### library(Rgraphviz) tShapes <- rep("ellipse", length=length(targets)) names(tShapes) <- names(targets) tColors <- rep("ivory", length=length(targets)) names(tColors) <- names(targets) nAttrs <- list(shape = tShapes, fillcolor = tColors) gAttrs <- list(node = list(shape = "rectangle", fixedsize = FALSE)) plot(gn, "neato", nodeAttrs = nAttrs, attrs = gAttrs) ################################################### ### code chunk number 11: buildCdfEnv ################################################### alt.cdf <- buildCdfEnv.biostrings(m, nrow.chip = 712, ncol.chip = 712) ################################################### ### code chunk number 12: geneSymbolsSLAMF ################################################### geneSymbols <- c("SLAMF1", "SLAMF3", "SLAMF6", "SLAMF7", "SLAMF8", "SLAMF9") ################################################### ### code chunk number 13: getSeq ################################################### getSeq <- function(name) { seq <- getSequence(id=name, type="hgnc_symbol", seqType="cdna", mart = mart) targets <- seq$cdna if (is.null(targets)) return(character(0)) names(targets) <- paste(seq$hgnc_symbol, 1:nrow(seq), sep="-") return(targets) } ################################################### ### code chunk number 14: loadTargetsSLAMF ################################################### load(system.file("exampleData", "slamf_targets.RData", package="altcdfenvs")) ################################################### ### code chunk number 15: altcdfenvs.Rnw:322-323 ################################################### m <- matchAffyProbes(hgu133aprobe, targets, "HG-U133A") ################################################### ### code chunk number 16: SLAMF ################################################### hg <- toHypergraph(m) gn <- toGraphNEL(hg) library(RColorBrewer) col <- brewer.pal(length(geneSymbols)+1, "Set1") tColors <- rep(col[length(col)], length=numNodes(gn)) names(tColors) <- nodes(gn) for (col_i in 1:(length(col)-1)) { node_i <- grep(paste("^", geneSymbols[col_i], "-", sep=""), names(tColors)) tColors[node_i] <- col[col_i] } nAttrs <- list(fillcolor = tColors) plot(gn, "twopi", nodeAttrs=nAttrs) ################################################### ### code chunk number 17: altcdfenvs.Rnw:362-371 ################################################### library("hgu133a.db") affyTab <- toTable(hgu133aSYMBOL) slamf_i <- grep("^SLAMF", affyTab$symbol) pset_id <- affyTab$probe_id[slamf_i] library("hgu133acdf") countProbes <- lapply(pset_id, function(x) nrow(hgu133acdf[[x]])) names(countProbes) <- affyTab$symbol[slamf_i] countProbes altcdfenvs/inst/doc/altcdfenvs.Rnw0000644000175200017520000002546014516003570020300 0ustar00biocbuildbiocbuild% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- %\VignetteIndexEntry{altcdfenvs} %\VignetteKeywords{Preprocessing, Affymetrix} %\VignetteDepends{altcdfenvs} %\VignettePackage{altcdfenvs} \documentclass[12pt]{article} %\usepackage{amsmath} %\usepackage{hyperref} \usepackage[authoryear,round]{natbib} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\scscst}{\scriptscriptstyle} \newcommand{\scst}{\scriptstyle} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \author{Laurent Gautier} \title{Alternative CDF environments} \begin{document} \maketitle \tableofcontents \section{Introduction} On short oligonuleotide arrays, several probes are designed to match a target transcript, and probes matching the same target transcript can be grouped in a probe set. Between the time the probes for a given short oligonucleotide chip were designed, and the time an analysis is made, the knowledge of expected transcripts for a given organism might have changed. Unless one includes the latest development in transcripts into an analysis, the analysis could suffer from what we like to call a {\it Dorian Gray}\footnote{From the novel `The Picture of Dorian Gray' by Oscar Wilde.} effect. The chip itself does not change, which means that the probes and their respective sequences remain the same, while the knowledge of the transcripts, and eventually their sequence, might evolve, and in time the immobility of the probe and probe sets give an uglier picture of the biological phenomena to study. Being able to easily modify or replace the grouping of probes in probe sets gives the opportunity to minimize this effect. The package is directly usable with {\it Affymetrix} {\it GeneChip} short oligonucleotide arrays, and can be adapted or extended to other platforms. The bibliographic reference associated with the package is given by the command: \begin{Scode} citation(package="altcdfenvs") \end{Scode} \begin{quote} Alternative mapping of probes to genes for Affymetrix chips Laurent Gautier, Morten Mooller, Lennart Friis-Hansen, Steen Knudsen BMC Bioinformatics 2004, 5:111 \end{quote} If you use it, consider citing it, and if you cite it consider citing as well other packages it depends on. To start we will first load the package: <<>>= library(altcdfenvs) @ \section{The class \Rclass{CdfEnvAffy}} Each instance of this class contains a way to group probes in probe sets. Different instances, describing different ways to group probes in probe sets, can co-exist for a given chip type. When experimenting, it is highly recommended to use the functions \Rfunction{validCdfEnvAffy} and \Rfunction{validAffyBatch} to make sure that a given instance is a valid one. \section{Reading sequence information in FASTA connections} The package contains simple functions to read {\bf R} connections in the FASTA format. Typically, collections of sequences are stored in FASTA files, which can be significantly large, one can wish to read and process sequences one after the other. This can be done by opening the file in `r' mode: <<>>= fasta.filename <- system.file("exampleData", "sample.fasta", package="altcdfenvs") con <- file(fasta.filename, open="r") @ Reading the sequences one after another, and printing information about them in turn goes like: <<>>= fasta.seq <- read.FASTA.entry(con) while(! is.null(fasta.seq$header)) { print(fasta.seq) fasta.seq <- read.FASTA.entry(con) } close(con) @ One can foresee that the matching of a set of reference sequences against all the probes can be parallelized easily: the reference sequences can simply be distributed across different processors/machines. When working with all the reference sequences in a single large FASTA file, the option \Robject{skip} can let one implement a poor man's parallel sequence matching very easily. \section{Creating an alternative mapping from sequences in a FASTA file} \subsection{Select the constituting elements} \begin{itemize} \item Chip type: For this tutorial we decide to work with the Affymetrix chip HG-U133A. \item Target sequences: The set of target sequences we use for this tutorial is in the exemplar FASTA file: <<>>= ## first, count the number of FASTA entries in our file con <- file(fasta.filename, open="r") n <- countskip.FASTA.entries(con) close(con) ## read all the entries con <- file(fasta.filename, open="r") my.entries <- read.n.FASTA.entries.split(con, n) close(con) @ \end{itemize} \subsection*{matching the probes} The package \Rpackage{Biostrings} and the probe data package for HG-U133A are required to perform the matching. The first step is to load them: <<>>= library(hgu133aprobe) @ The matching is done simply (one can refer to the documentation for the package \Rpackage{Biostrings} for further details): <<>>= targets <- my.entries$sequences names(targets) <- sub(">.+\\|(Hs\\#|NM_)([^[:blank:]\\|]+).+", "\\1\\2", my.entries$headers) m <- matchAffyProbes(hgu133aprobe, targets, "HG-U133A") @ \subsection{analyzing the matches} When the position of the match between probes and target sequences does not matter, the association can be represented as a bipartite graph. The method \Rfunction{toHypergraph} will transform an instance of \Rclass{AffyProbesMatch} into an \Rclass{Hypergraph}. <<>>= hg <- toHypergraph(m) @ Currently, there are not many functions implemented around hypergraphs, so we convert it to a more common graph. <<>>= gn <- toGraphNEL(hg) @ Since this is now a regular graph, all of probes and targets are regular nodes on that graph. Node name-based rules can be applied to identify whether a node is a target sequence or a probe. <<>>= targetNodes <- new.env(hash=TRUE, parent=emptyenv()) for (i in seq(along=targets)) { targetNodes[[names(targets)[i]]] <- i } @ Since the graph is relatively small, we can plot it, and see that one probe is common to both probe sets: <>= library(Rgraphviz) tShapes <- rep("ellipse", length=length(targets)) names(tShapes) <- names(targets) tColors <- rep("ivory", length=length(targets)) names(tColors) <- names(targets) nAttrs <- list(shape = tShapes, fillcolor = tColors) gAttrs <- list(node = list(shape = "rectangle", fixedsize = FALSE)) plot(gn, "neato", nodeAttrs = nAttrs, attrs = gAttrs) @ Whenever a large number oftarget sequences are involved, counting the degrees will be more efficient than plotting. The package contains a function to create a \Rclass{CdfEnv} from the matches: <>= alt.cdf <- buildCdfEnv.biostrings(m, nrow.chip = 712, ncol.chip = 712) @ Note that the size for chip must be specified. This is currently a problem with cdfenvs as they are created by the package \Rpackage{makecdfenv}. The class \Rclass{CdfEnv} suggests a way to solve this (hopefully this will be integrated in \Rpackage{makecdfenv} in the near future). When this happens, the section below will be replaced by something more intuitive. But in the meanwhile, here is the current way to use our shiny brand new class \Rclass{CdfEnv}: \begin{Scode} ## say we have an AffyBatch of HG-U133A chips called 'abatch' ## summary checks to avoid silly mistakes validAffyBatch(abatch, alt.cdf) ## it is ok, so we proceed... ## get the environment out of it class alt.cdfenv <- alt.cdf@envir abatch@cdfName <- "alt.cdfenv" \end{Scode} From now on, the object \Robject{abatch} will use our `alternative mapping' rather than the one provided by the manufacturer of the chip: \begin{Scode} print(abatch) \end{Scode} %\section*{Creating an alternative environment to store only perfect matches} \section{Always up-to-date} Even if alternative mapping is not used upstream of the analysis, it can still be interesting to verify probesets highlighted during data analysis. The \Rpackage{biomaRt} package makes withdrawing up-to-date sequences very easy, and those sequences can be matched against the probes. First, we create a \emph{mart}: \begin{Scode} library(biomaRt) mart <- useMart("ensembl",dataset="hsapiens_gene_ensembl") \end{Scode} (refer to the documentation for the \Rpackage{biomaRt} for further information). \subsection{Casual checking of genes} In this example, we assume that for one reason or an other a researcher would like to know more about the probes matching the SLAMF genes. <>= geneSymbols <- c("SLAMF1", "SLAMF3", "SLAMF6", "SLAMF7", "SLAMF8", "SLAMF9") @ The vector \Robject{geneSymbols} defined can easily be replaced by your favorite genes; the example below should still work. We then write a convenience function \Robject{getSeq} to extract the sequences. This function appenda a \verb+-+ to the HUGO symbol (as there might be several sequences matching). <>= getSeq <- function(name) { seq <- getSequence(id=name, type="hgnc_symbol", seqType="cdna", mart = mart) targets <- seq$cdna if (is.null(targets)) return(character(0)) names(targets) <- paste(seq$hgnc_symbol, 1:nrow(seq), sep="-") return(targets) } @ % load saved data (instead of connecting to the mart) <>= load(system.file("exampleData", "slamf_targets.RData", package="altcdfenvs")) @ The function let us obtain the target sequences very easily: \begin{Scode} targets <- unlist(lapply(geneSymbols, getSeq)) \end{Scode} The targets are matched as seen previously: <<>>= m <- matchAffyProbes(hgu133aprobe, targets, "HG-U133A") @ A colorful graph can be made in order to visualize how matching probes are distributed: <>= hg <- toHypergraph(m) gn <- toGraphNEL(hg) library(RColorBrewer) col <- brewer.pal(length(geneSymbols)+1, "Set1") tColors <- rep(col[length(col)], length=numNodes(gn)) names(tColors) <- nodes(gn) for (col_i in 1:(length(col)-1)) { node_i <- grep(paste("^", geneSymbols[col_i], "-", sep=""), names(tColors)) tColors[node_i] <- col[col_i] } nAttrs <- list(fillcolor = tColors) plot(gn, "twopi", nodeAttrs=nAttrs) @ \begin{itemize} \item Watch for \emph{SLAMF6} and \emph{SLAMF7} \item The second sequence in SLAMF8 can potentially has specific probes (the rest of the probes are matching both SLAMF8 sequences) \end{itemize} Comparison with the official mapping can be made (not so simply, a future version should address this) <<>>= library("hgu133a.db") affyTab <- toTable(hgu133aSYMBOL) slamf_i <- grep("^SLAMF", affyTab$symbol) pset_id <- affyTab$probe_id[slamf_i] library("hgu133acdf") countProbes <- lapply(pset_id, function(x) nrow(hgu133acdf[[x]])) names(countProbes) <- affyTab$symbol[slamf_i] countProbes @ The results do not appear in complete agreement with the matching just performed. \end{document} altcdfenvs/inst/doc/altcdfenvs.pdf0000644000175200017520000052567114516022747020323 0ustar00biocbuildbiocbuild%PDF-1.5 % 3 0 obj << /Length 1744 /Filter /FlateDecode >> stream xXK6ЭVE&(qC\Pn_eoK\Lr8CȷS$gz<2-cQއ7ͨmFqh&ex'E;>w-!q*$ǣ$.R N.d F-+g,!̫hjX(B.I'<`GY&y 9|]EiY"` .˜ \-c^paѪLdHp=S58kKJAI 3'=gaըa\^8%^z{lKe ffN6tZզے4nV%D>b< oޭR7^봳zgV j8wVs)^V&b̼}{pzY?T4xn 9-!C,CYnFt9Z>f=v9c dqʒou`Ys˹\u9|9Zx4ңx0 e qVsn,9|i0e\>pگ~UQ#2!6cݩaR 9Œi7|{ ZfcOcR]e2Z 5RqΝȾxKwNZ?;7ѺRM"[O{lw:}.G s0.22V%C#Ï]zIXۼByOFr\l r(#rre3C7۝{HvrόBmu"YujNtUџ ^\=mspi^ jZx~zZnîT8q*a žW] ND jc>FTBURMCE#^Uo */89xUR2K@3]2ΤĦ=֜j0.2㠛 ^ƹhAa. 4n(<2wsN%c mk)+p ZݣzeK3|3ux !#~WW&y,dA^5l@)xɱBü ]rud,<.YsRr\`d>#h+8M}JqxC?ʄg(M> stream xڝWY6~ϯ. TF֊NK IWCS\Ȕ#{\J)$r8{^\YU'gY:[EXF@i~="17ֽmL"J¡f jnxgW%N3<˳@q|63h+Zq0nUy9cˋk}<.'YE;Q(@g\nV޺s,l E0 uz[vilng7YЭXca@Zu=/.?Eiyqgq\a6f'ީ=i ?7@"-])dO׶ 2xUM\Jl'ek}W_ɕwmwkr&삳cWBb]2ɼ@N3 t'z4g2$S((t S(O,YmAq 3wcy;qOrThF1!]ܒ.get-sѤ.dz',mVz4zygAKezӫ뱧F-UIg( !*1 \J`fAA H"qYé֝ V mnQ_NUaYC>1$vubhV|ElQ!FQE1H^eNn,p7܁V- ɝƠ 3MCƄ@D{lpZhÇ&5n aP"exihN!MFW"1J u |)M.I?x2jM x!3h%M!AI'|;Ga Ϛ:2ð/Jaqݷd}D*, Jϗn#PW|7>DaR4,@]?! endstream endobj 23 0 obj << /Length 4785 /Filter /FlateDecode >> stream xڵ[ko#DZ_p\ XqIb x˹H lbQ)Rl?>]Rky!uٛwx<\fWb9,7|O;\}Wx:N|x6ǟ|=^4touv0?5ߵNϣhmV|~CO{u5wzu_97Ozh|h/ڻns<'_<m e^lb7_bBv_%ۭ:Y~;ƣf^ۯ~h,yy;ib>xDӶ۽mfx 藿T٧*R9RrV,%R*cM{׎u@,AY>ǢMXws⣊SN+Z1eҸ|!Aߧ7`#n>>'v_L|uM\ ?̉ОO%)Kحa'YHOWJltz1?=૸ŝ pp tXp9, f+&Yw a[]+Nv]NA MCw%t2NgQe\+ V9$ W_;d#|}h,ؗ77TIq%hBPe%*56A텰! LWIu`h{g跓gWAV8 8B%_wFy|4Oқ1] PÝ Gz%saN탘֢-QFTEӤЅwPp*-h/rΕg?좍de)kGVΟ!S`)B}i`vC@mi"m{;Q`42*wL|M2 G4/%n w {Q9.>Ff~SȅR K%,GwO2TnTT# )iT*1u,]8ˬtP{247zji}jjjt:zU?7ԗ-C޳rSmO?'|~P5>ԀJj rf"?AK-H{ Ph@ڊ I4nhli'rdjaP`^  cЗd:\o@?; wKλLg`3$W1*#2+UH?f8S.CaXMRSY~a)d9e:FS4L~Wi'Bؠ)0%V%sBDaEL"%2D l)”."$4722#+Fחf4fОĚ Kd>(j: H"'b>JLL20뽬(Q,@*L]D}ęQV.炛V"/RO}'Az)@2ioN,d%ǔKX@Op|JY€/LD;[3)v.)D 9C~f@tgKPir92 hg :醉4.IࡘZW/( "1@/e>[QmHOUΗ]H bth:-:,8PDE~TkŌcg%Lg%*,/c&.RN6JL^T?dY%NT)γ**iC%:+A/T3 esr.J.џJN.:k5SS?"`оsrOg3@N1ꔄB=*>aя{rz󘞏"r+HtH'&Z_T>F+E8|ZT"4/=0ԅB0Ub& Z.9 h剩nܛ"f\PT#MNAVJ8W1'q@ :Mqnh0.aOaQ8 Ϣ]dy2~EHs=t Q$ܚJtX4H}&㬩~ +Z BStF\U}d *.!pEx]])VRG _knɏNYf9 *YIUV\&H7,0WB(n%9yl TVqHgQ*$!$sl սWژ`Iq"KMsR.鳵sZ:͎Z4 @qҹJ\Kj8)ZPHdWu7y)JvNKšE.(_.flI|YIE.xE0 h 1b ǔ0P%ζM#Swr+UѼuPiYT%F8DE)q\|ʞf8긏cYؓ#q-HSmTtaF7twKKܻIBE{0û#/Q'to&w}ŰY.8mΗYw›wrx1͖SnWӦi3ڝةtߞ|WC{Z]M{\|rѯ{zx:l?r/]:Y3Ԯߎƹ۬ߜE=L'#t9LgKTh!~p1Jx4|ma.̫f﫥oNOXm(Uf,,22o'ыm<\)~rw3p!}tik:oTMe;ln϶ 8 Vᡫn|%e_M@;|i*_?, ]kkv O1j|:vs;/4=/ ;eu׮r{4MZYg&pO2(Lӹig_MRa endstream endobj 28 0 obj << /Length 1389 /Filter /FlateDecode >> stream xVK6WN2vňzZA`S$YMP [M[D*I7pe[[nK!93㼹y]8geߛGK,_lh3 ^/ŒE[۷Y`+Iv߬&a%ٻO7W$JAy-o~E,Mkki]x:seV\^vl9l( j3nhmݵOs֝mbC#Q;Rl5pl/fZYoF``a\`&)˳t4® *Z"LBEn(0|D1 KeЋ"./, Nty~,NcNQI3[ {E!+hy |#+ }I/N4 ߇$nXWZ:Cg'TBS✂ .&$zʐLo!k|? OTPQc>J }@\T=\S`x=/X,IGDIDʦk%Ijź_Z$r+q>S(AA F XaU&^';0YV *h`XS6 U#d^(>e N{lt8e~Z!Gq 7_;k3Lw|(Wh\#O>)EV>Ej*GĴĿQP+d: ~:|={*%ƩJ%Dk.9禮4OGmoL= #Y c|AJ#ciki r3(_ڳRVY~E_1TVtOHyW9No4>gr51H}EݜߩZ{ԇ2#&OJp454ٜt@Ǖ;;.h/D9n"m7 ʞaXiv3O K=j#QG㲄ccvD?n"n_ M%6(Dj4|4| > (p%Cff_n\r6ICO% JmY3ش2UO@Ns '1dcC,ZJMqۛg1 endstream endobj 32 0 obj << /Length 589 /Filter /FlateDecode >> stream xڥTn0+hR*(zcTE©S%%WJڃ@jw9bp3KB'II'^茳|qM \D}"m k8y?_bY拻{[Rp]M~xFWw xc vK%D1ȕiKaMůS4lGH%;~kIWU_'= 5!w38KㆩMR[?|MFn8I*&CEƨkMVt? SDcz'5vS1(eb Gf PQ n'Qz$ iI{P!d?1]'jD?뙀XXWsgWc:/qwi'Z1ZI2l\/Tqs%},okr`4|L4н zKJ*0,0?HRВty =p&%d_58Za#`GlO~O #XZr VBD~;LAPa7ʉ[^Ǝe Ebʦ endstream endobj 35 0 obj << /Length 1084 /Filter /FlateDecode >> stream xڕUˮ6 + ̢zlɏ`n;}- HE ŖcVƲ__R34}!@,%<ǃdIe aaÊ$˝)?x U9wэ)8+L]eIx.]QIi*T^MMˀmt5Ch5=Vz??"twHU9@ևI]oD(J`Lƾ |UK`b;y譇ЩYBqhӬ&I̒\ S1_rn'!8C endstream endobj 29 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpJyoGp4/Rbuilda2ad753f96bea/altcdfenvs/vignettes/altcdfenvs-plotGraph.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 37 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 38 0 R>> /ExtGState << >>/ColorSpace << /sRGB 39 0 R >>>> /Length 9042 /Filter /FlateDecode >> stream x}ɎlKr~EHJ>!<3G l?ǿ/_#;Z>Z٭/YgKog)4_>G{K|h:,6^^sG Ϣq/3.9ǵWE&(,q#y^H9[=tP >_5LqDPOS<'9C Ӑ!t BVc(BS+\/ U|"N&Q!6"Xe~8!ӝit*t,q6+KCx9uXU|p(AߠBcRP ص1h9shy4Erj7aIf2oa&,E)a6 M#AZ+a3c>-L෷?RC"xo+r, G[\ N袙@+doc\/6>P_Wbt֐aG;nf`Y4F 3⑊ItGxw8uUOv9q:B\mc8OlIP@r-jh7H1w0 U|`5~m#ۈ[aF 7F[@rd VL'1GIKvQv` M;2J2\BS;0'7H"(PC9kY{ڧ1%8@5\`Tk5G5w\!" .o0E٫-m)`8 b憿lQjfIףQs#sG8B7KPSrc{& rOZrᖉɕUG<8~fmPjOǃl)P\D(w>?Q!d, lx7ľ]rnch&풱\ij'؂՞~d}o#~Vl;X֤,}fyD Y Ϡ ZT*/kר~SԒoyPOmiK|%@^LTWK0ykBp8T|mr'_ D >(}_bo}"}_X}QIھyY,e/uo}ٛmMx^[/{nYifA+J{o:}Q'xeM; B7^D}xڵd^ mI|w^1joj>?]5Yjdٟ'`l\㝸M{z`0\ir(|lpCZ~>˥oGMbd\'y=qp/{1w{= {K1-v{i=n) L‹DzzԼr(r3;[r.<.5 #N^Crr6/I|ɑo_ɟ?qt=^x|χ=_|:_|b/G>9_|f󝭯·>;_|jۃm/Ƕ=9_|nۣm=;_|r͍G78_x|vݍW·79_x|z퍗7:_x|~ z`Z/,_7~^|A k5{ r{ ^?^p%<sF4a?mDJ/#G}LfM4h NA3fr lJ+;l88m 2O!oBi!0$2LR콣=M37dJ4T:eyk 7pE'-iBɹlJJ%= O>oN4*H9?cLk\cPz_aHMxTFNez57y,M-<}N2Ai%KfA2IҊ=3y&甬WPHtCIx&G>>uz܁ɓGaXa<G_FU>Q7vMG_2gyA\±'XH'1cg:h'ײw -HO8$/#3B!,/CFS僗p̀_ JDž e P~-Xů{}4|YJ??w]xAkrG Oo&GnOSUM Y/}.{$ SٿG{J{v9\xX= /pRx_xG+3eB /)烧t-zr:xMs%ӟ\2%]GvGq?򗻿Oxx=||`ϧ='>8|dog>:|hΧ=8|lۓmo=:|p۳m'78x|tՍ7g79x|xwΧ7:x||7;x끍^x7t^|A k5{ ^|A `$iBO8z/:-y4 'NaZI3x`IwMq d&v*1#i#mjФ7MVmbd& M`Pkd"$@1]BAQxئ( CՅfa蘸 @VЅ.,46N0h]@p88n t!~<Y|@S*8AԄ9a3Q"9@`CD!f_lS1OyN̦2ՔD32,q<.rO|>D%yS!!X":u 5j t\-vr:NJ*i< "ԥ3T~pO5VBL"K;(ºt i9C_G348ǥרQ{yJ=FSM! 4crh"!~ >In+s; x ȌrY@ d&?DžLrp9 "Ӂ9VP0!^ da(POH\Z4ZK Td{᫘ߛ⛷oۿy7o߼o{n8f]ljW]pe\ RՑYJ%G2X< eg-U'<)8$7iM]$J1 8uÆ拾 hwu "q5~Bp$!MiT`!g}^lE-;EP݅ȓ!dgx)94o!~ K@Ak4ZJmK:՜wbNkTB7)k@lV͚d:O瀁i/;mcJFIioo 7h׸:31C_Ʋ\bWX>Yh܋DbO u49O+~rj`j_%ν&z_5}6kb#jB2HmotN QuƎLku$ z&AB(w%8 XڢLc^b6<3N{WzR`TMUSqY\<2D164ѐKò+63\hMXeTڐXDG# A{ި%Q`ɋٓKIJFMJKV%J&U㞥PV2}Jn K%g^ddUdR%w4CuL.~!uBοWoy{z ̈,"b3>og@ƍBÝE ͙c @8'@#m򮇠i݌*r V3Y*~TGRidV҂(T#*5NJ\8_XءT|nSգh cX/ٰb6Ӥ9UǬwq(UHc*~ЙJP#OaXC\ s\Wzb YC^~Ō6*`eI2κQ=R rPhH>ƅ CR DžL%wX] YǠ\XPT0XbP9)dŻ.1myb.I9.;{$7!uyYz<*P>Ғup,oq md)]~/ҽhWv2K^+uaRы6t+ LwSD2bVAz/;+bJ́qI/CfAFL奫ʨԲ CUܲVmGGܒpo3`/,{ KD2Gq*Dsd yC!W/p SÒ1$sPJU(R<nI[^&R?^f{ie~w(f<ⷍWw U] gœU(XUWƾMum9^ؓȻ$r[pak<ʵ`Ec;LW=cz:WRW)x7 \bR9 Ga= *hMB&Ԇ*ꊰ[\WX$c ,/9yBƘcL{ͬ#pZS^IK^|LܫB;a >ÇcD˸kYH+.+vQ̯ߝ2DZ1|,^U) MRKv",zL*c/vaMq-wY- m{>ߋW>gfyR7_<6WjWA' OV놵Ą 3(Q/epL?\rxxgpRU~\ѳ 5D]٩gbΗF" CrrI+GO9=*.K;$s9y5a` 9_i]B֤.zQ N|@$]?aeaՕ}C2tt+Z|]怒 [@ odͦ,MBd5tދy^ȑ]Ƭ<'9)+/4r9u0/hWޗd啅yoib^Xy\ceZ+ CHdH; rʴ6|I̲̐?6TK9݆8<&4qeu0-msK;Ђۋ]&ŲBZ:HTivOiAdK+{3r՝)rxb\]Mt~ gs4Mo )6WKkmVF Sك,oge׮3^-]VW_:GW>h1A~Z Ӝ}ۑ?~iZᐏ|]MC 4Q7nW~z]wa׶O{NßW"u, EkRfyB|&({ʔISebar~C~^>*%U Wpt̵f6R#ȵZU$z1oykم~9d?4υF&i O!ݒ/+-9 $$v2Hۃ,"{ *pkxфaΌ=S^i](&,^̑.Ū34_}/u}-Q( 1{Pq3P{BA 3cy8jd248H,>*+Q,*1)hvy諪Uuwйؐ,!dU?YI+, r8vTE%B5Ke$DG\"ZPz0/|-N9z9;~ ">\^ѫ7KtW__şQQyQ4 `b8G{phvا b\95| b`(R6`%Q0 &00tiW^OE<]T5ې˗<8!qP,=ᷧRug)t(DyA@\e'xEZ؄1\,J(b#n~1]OfNk7LZ!?U)m^Bk5=2JM~L+?p}'kUhUe(sǘzB~aA{Qw ۣeʉyW/\%_ 'ھL@9"rؔqDDb{"qO/} anP<6b^C`^^$jcIkRHYC:bT LQN^zdRs/*_-Z&YݴkZUW>oD '/壵|Gōw,[/,}}@ endstream endobj 41 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 44 0 obj << /Length 1544 /Filter /FlateDecode >> stream xڍWے6 }Wxʓ5#Q6ɤd{iCIi-?_,)f+A<=zz4SWQ3?V|fzSt Bӷݐ,iު&2gmrW[$ssGiu'IYjdmW~ndz8 Xt(;Fmic<{e|zƽOo}w6/faiLn7 wTSm~:usIS \oο2tf$%GEY҉I+IUG$I+ѶE}~w0&~[/IY[45ZQ; O VUu2_V-v2T:t9hy[U[7t)L0lb|(ͦƩmy#Go.[ ~ IEo=-7!Ͳ+.dzn5'605qZZVr}O''-IЦ!U?&-oLaPOxhԨP/ z_kژRjWV>?(K{!|: #Is#b8C!̋l CLp*wQD,&EPjWu$K 4&`=AI I,9˜eq7q^|wcGz6J8hIu͗7|LĆ#{\}S:!olcڶx4|5EL lɺF-u@gipe*5&J<)(/$V\P-E6/v!\(L0~7=`o ?i 7EᡆS$!f4upVOY}@Gs&Gq(5.¡34e{toR߻I`Z~4|4!`(~&!0Tѝ-E iQBY6޶:VtO{RXEx-"7K1{IBӋjR#I\ mMaoa-ama)̍?c&{b6$sp[/#kR|aL1@SE6Ld~ ^Z Xg6dC 3[C2Zy> ,+e<B lb|j1 endstream endobj 49 0 obj << /Length 874 /Filter /FlateDecode >> stream xڍVmo0_QE|HE⼴D &bMRd ;>.ݺ!u{{og>d<3b=` 8庭`MT|lSfCW ܉kbtW-ogS@=v!OQg"Ri Wˇג/[VOsvEx]_n& x '|G{vEe_J*m{x+ٽŞkWZMޤ.>$pF&މhpQԴ>ف3n+lBlntͫ^U(=X>_ ILeQORf?6e endstream endobj 52 0 obj << /Length 692 /Filter /FlateDecode >> stream xڕTmk0_a>0,`VhF cYQb˵;6aw=KC4'̋9# ^f$cIj/7?uf٥BK]K!zk sR_+T~j}9<`U jݰͦ/' y ,}>Z, ިD勜C{ 1r2A>塹 endstream endobj 46 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpJyoGp4/Rbuilda2ad753f96bea/altcdfenvs/vignettes/altcdfenvs-SLAMF.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 53 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 54 0 R>> /ExtGState << >>/ColorSpace << /sRGB 55 0 R >>>> /Length 14634 /Filter /FlateDecode >> stream x}K,ɒZ¢ ?4bs%U..yG>j(0wf?#?~>WIk??_>~5z>]<>?[ =x<)VKgW\c_rߧyO?ߖ?vC5ϯǟ?M鳯o? ?>j_+~qWU;X85(\-gpoP֥_}ĤclQk{^4?θz:W7#Gߋkao?B^c3o%楾˻S ̄fAͳ-yegN :W5Tx~vͱ墯)ͿC7E?X->Z2܎-F[ZFw1D$)RQq3%(o+_c]co祾~qǶW{= ~_330h9[٦ĸ-sGߋkQ>cRo祾~q eyLV>FXIuQZpX prypE;Z-D[7(\F ӼClklQ~=/};Z?tRK+mf8^;T3N- *&Xl(I(|^nIڸbZʊ;=ئxӼa\69BY˳|ut͑/߷LiU?kSY8(M5c)i/I±M\O~q'R7 GPwl$˙$ Q>Lޔ^s3}[Ј_ %s}:JkɌ;{ }k);욚`uBa+T46:Zl瘌klQt~3UߧyZhG玐zCIJ'~D$ϲdœoj|4ؠc~Ei_c_iӤ`ЀK3Ѥc@.7&cP@:^ђ! z(,EL͊`jhc<%u|gr",G-<^8aBр%wmPl᪘R;qCBl+JCՐa*y}9~9}i7)a2_rT\1,%?$%_~3QK=,<Ɩ/;" Tcdr~9ӔߋCqaN7nx07x 5K 0(|$zhNqO!a]?>7u,cY>vX3N;_nXA)Ammz??Ft5K5Aq2qEf?맚ݧF;˪5t+}ԱÏ;y|~]~]O>bL\.fV"~ٸ}opgO*Zr*sNYsp .+ U];mxvR~*~&4 gz}F?įs*MF .ّ#Y# }k91qɘeXo]yy2?cZA}k$X5_c"~3ey1nb\sWch%WSrɔ^aG# p澦eFKVGʭc_rߧy:t|8  }oټnlwdžzU+Bz~u^Wߠ8Z-\{؜5(=/}k&dDExT* lRؔ]$q)w@k)@[LX{^4w|@[TQl3-8Eo:(?k(ɾAil[o9z=~3Ma~ǖm.kC`L߷O` U#H28 R3H6>*77Tq\48Θ{,sf4;;̤#J4S_gLI_Af~ٸ}4R,_9_F=_?7,Q42D j-g~1栗p5|y?j͗ZnKiU9~*GDhԛyl1uPEH?l>׷cQSXAY'VY="ZГnwA A zP~"n ?>wXʁ-_s׬=hqR܅PExq4GjZW?iRAfWv#Gof~Os}Gm\g0f?ph8L(kOdݰD䧥ĸ*-Tw;̀QE = V! |.# _@ ̢5XqGgp\g֨R̸n9f*"6`Tq\OL"Us_ h8<`/x~AD nb?eww#F!N7Tq\ԢmR >?~uc׍jNa [}ۺm"^xz~'Bc+"rTکM?l>78uD}ct0(~4L B=%D ~z^^Ql8&eUXSs}U`еQ+[ MMnRu9Q)^lˆu|s/qa v?@v&M7Y5'Rje4܆y'[Dg*ZxE0}* OհQ?GziTS<{g0Ulg/mME<`ne ?xE|ШcwFU9U"5={Tb Ug~cgqkAxӼk@1OBLB2gt'G}`4jlio'g⺺<~(*K!6 R I5Lʹ_ڎ~G jlioq }QLuD{9_QHg2t"v~&4 CC}o ;t^{uѻ7Q)Cj0HLhh.$H&NI 6:{8b|Xga3S4vl+=A370 ~"4 6N-QE`lj>ѷ1lڑ9pL+Y/B ;Z%6LxF7 ~"4 '9yC~Po#FqI~̛ct)^g =??CP즍g̬Ou?= ! Ǩ"n@\?>׷Qrj~ےmh9q"no?L IktQE~ٸ} "|ߏz<"=z V(uM UeϿWqK)SP};`Mȏ,Ny"3D!|/rLAs秸/nS>wsTI\a7z3'e|R-DҸNf%(I-űy$7oW،ԓrǧI]uZh湶/:Dv0ΨەW'|dΉ 6 N-uAilZN%Ry÷P*.V8q,u~7A"+B r`rN,H=*7x5d[4n'op&{<͈LH;o &|E+4w(~z^Thh =6[ -1 <%u|aFlq3x0l~W р [+XD8 @p 032~e<j\߈(8*;+^.ç}kwJL8?2ה_ ᄚ45(m?iMιXf= JABmOEz@Iӣvu .( u?E= J4T1>`GDk]}8٬,*ktk b)VKPW01s}g*s:Q :<R&].jl$Zy7eЕKHK( )z*QaIς4q~<? e~XjH_&8VɡgbrC&,7WmA[%̦&w ?lB;2yi8@<{ _IhDlAz^x4,;d*WM8 NJ gP<ܠ]N|C|Y̞(UT01Ve<CZu~ =#un㎛ MYүp5kss?\5_Ҕ24cBUƓwhbd B3)hbŇiHq$=5]NE7Ȥ({aJc փ@a \Cն.x0 yf2π#~"O+xPyއ.Bub@/ۄr]ҋ3^5; < <aͣ]òf ޥ5^~J, s$K7Ūfm%WzfpČyy8BExW-7WajhgFCV-f9.YBV-t@ rvYnY '^ٰt7 uiӨ^U'ICPz?>7%&x0n)q!/)#JJ$%o4롥.lWYOЛ:ƚ@X t׌ -AV*"k;b_NjMj"ul8ɖkkg le& ]SUwZ:'U.Q?I dxHľ* ]dP˛K+ܷSkz!#DY<}(`/J]Ht+*(K6`FiK+S6dP3>̇mG^ eDkt\!Fό +C,#F'P&N?& R4Z`dfC^wqYuY'#>XQ@:YV 31c,hݭ tNj"7w* g'SPxـxTN₼USU3mKfyo> 0'SPVTS°˚z1't=(+ZQUHU \>1ʰ(hI7߰Yr,m1+i5MdGcZJoXJW %挕]bhxGԷIdvJV0JXv ޸5z:ӻǔE ;BoHiY˶aZ$mOZ{1'k+e{>ަjxN<,&(XB&S& {16.+p; cEu渊uAhGd͓MΎMU%D2X5u˾Ƶ%^H'ŘL|ό 4O\3l}6|.`j{Vt]+[gP/eM1Rڔ&1$;+뢳Ftժ}gҌ)HӒAH ӤQ3K5eC1た«%H7A*hUW%g\mj+4mصD'V4**Zk-6s&GJ:{Gթ0oq0$ݲ&m@6|afjRf.g @ gV bbϥ"Pt +5O$&Ho4=c7P8N\gl/ Eu0?uڃ2V\Z2@52/ xa;ݲWpEmjѣ9DžRL oYdU&b &M9@Ƕ:5[;l;8|Ly\UZ>OΘaVVZI8wؚ4հ@ Sy U8Rij_mP5^j6 E֑ uZ)EJ[> Ԑh[2dfHv ɂC ;<]U?${boE76Uo ҈ٔN!W}[Èʛ^|K(<J`#(Y@KC Hw 1BU̐_n(m`f( 1CpWl@k)BZ#Qu2qd,Qe:xbh%@Lղ4Vhi}ʺE[D]6+h&=P.%iٔa }Ϥ>5 Rz^[cVv6Ϻd>EaҢ,5)E3cq䬡uvYqt+Ym Yi?Ce ńpUuɒGӋ By|M*˞ާI-QTp4U6Dz<.X튎o*<7[ߍiSpMkM~wnOqNXƀ`ȎVyLDrX-s2C<$#>q$%Y? q6K>KJMqwv^ɖTɌfȞӪyigCt[f7fIۛp/UOʦɑWJw'Asl-u )r'ʼ`qn^bIJtհfRڬUlO!}u@U,^D榣[$d< ,z 5_eČW&fPj׫73W(w%4>MZ@PP.#fJDJƱDCnRcQA[VnXŐV]oVpѷ˶o@ft\YvAqMk5iVw 搇ëKP WAE݉uFRf7)<@tgkZ1. -bNK"IC(GЕ~cҐ\Jݚ}2~F(vl7#b2DծzX~];c2.r׎5E(';رQŜL#?C9\d-ܞWt 2v!U1?d#؛TS'P28?366F6 0VYXT74jU~ҽ3_i6맴[Vzt-Sܼ;6pONyiCLL;Z5A79u(IeXRxUYa\ f, ^V(K.#F/Uv8FXf_m,3spf'dt\zcr쏋}uCX_$2Vq=W}XCBuU/&ؽ?ʽ+B+eߛ o l?ҵP)+.R`Opo ܂,incM[gdxA"W\ԗDȅp^I2p!ê_<xSƽ:RpU0yUwԚљ1_%q6Դ&iH zܿo-!h_WX[z[4ZVcBg2(M6لmM؈[bZ^#?Y^XDey!p'C08'Wz8mu9 V$I] ; ?|<aI]$ `|\NB߆1I8nqp/Mst3azWm}ΕbhɢrȊU=5a;pg{?و2؝v"+}\l}> !;{9*ergup4Mi;m1P_(I0! şGpE+Z>rj[r3o&"o~0lj-Is3%6;DJZ9W.R%Ѭ?1֛nHnnG$H5gFPR4c<)29kLUAܯ.];"N{ɛ]B~5r䌑%##QowrwVh8jޘ>4X8;?WO- jqEnj) a$Éa(7H䑮!lk/GA*<0Q=I$GmEf\<(c;Îۗ!؛9`INS:Hᾚ,q92U?7[Uw.|v}++ne[דV u)H{D$qݷ'od#Vet1'1#}_hr\)hd~es i|dRo|KEw ]MfjMd5kq F 2y8YgB:Lɂ,_3듭vfևMUidUjZ~wy*M]? . O$Y A[h|SASf0_.nIBXklGe!괄`B tך0 ٤cpf%P ~Ws)Z5'z[t5WY +n!H4E4OŜP,:>"Ir›:zd)Z|GnޞU,T@#%fl7>\S2MDB1^ :^vaj@ %֋IUA %[fɠXSoGɸb!&d4,$-ҜIʁ7/Eߑٞk0Xx"OSpJhg ] IcM0/n'.702ϴ3˩gB֞B;S4h!0upcFX. AỔy%׌*6&}[WRAM8U|4Ko J `OxTSiW%2kϭTnEG9B+Ma\֡J>2aIVS[3<:9q\ߝg]ӭمM 3B{e52'iH}v7lԔѲaqk?rFeKͭ`ҹEk6H>w]1#eJo+(um˺^.Yw;1]:w$eŷ=*H)I.ˉ#G׎r=ers)kkQU>"UZX`e,+[CޗNqJ a Tg4rSdVvu5u/͚^Pq`leg r=U6V|<|d!#Y4h3ODF. m(7z.׶9FQ9OءcGb(/*b" }iZPa#D&XH([l>N"oe#Sz *Ԡv8ڈ&=S^U$x -ai@;ۥ+B E6e>L`oL :iqCb=&+g3M9͈yDCƢa8U<"mX0< HWʶe3W0do^\5UTս,*3.:#?|*-ˆ2ӳr^MӕOΊ*9  VW*yИKZGkMa[9J93G.jC+]*H!7p.kr`]8 2>2UЯpZ`VuUuRg3`c\~z[0A2̢#R]ޮXqmxj ]y:;^鮏 dTVd*>]dn :Ѩ΀Ȁ/6m"_JSZYɕQcraTԒ2[+IFhԯٻiMWʐgŅNxϫE1Y2lkiCaz[n2s˩kc]6o x[*EH%%\BbQ4)^ *]:75UB?TPV- ];U fyX_xU #m.KMR?fA endstream endobj 57 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 60 0 obj << /Length 228 /Filter /FlateDecode >> stream xڝO=o +:` Q;-`$vU{nծsjȝThjXkt/'GG \R)KHrߴ0'~r?8Ϳ3/2Ss|HPƓ%~4,!Ƒ$UEq棇mu w' /G@+iV4m>-%&~<=,-ʥ2i s6et endstream endobj 61 0 obj << /Length 123 /Filter /FlateDecode >> stream x3532Q0P0P06R01P03RH1*24(äs< =\ %E\N @QhX.OfAcՓ+ ^) endstream endobj 65 0 obj << /Length 161 /Filter /FlateDecode >> stream x337U0P0U0S01CB.c I$r9yr\`W4K)YKE!P E? 00(?;h0a$>z A?$h LF N8\ù\=Y endstream endobj 69 0 obj << /Length 106 /Filter /FlateDecode >> stream x3635Q0P04F f )\\@$2ɹ\N\@.}0PRTʥ`ȥm`@#\\\hE*a endstream endobj 70 0 obj << /Length 338 /Filter /FlateDecode >> stream x͓?N@gC6QڸHaRK vF8%^0 Z-;;3|qvrXЧhsJL6~Em*iS^o*\R[}OT@WdR;Ȉ,QG9Ci 7rXK0A@$s;:>GOÔ11PVGG { r(ܑ  J}1*7S($;SheIL>oC^fi0ӤIΧ C4qHGnJ谬cC +{7Z۶> ࿢*E!en/ endstream endobj 71 0 obj << /Length 346 /Filter /FlateDecode >> stream x}ѱJ@?lv_@p] !p` A+ RK E;!hM7HqfwO`vv23)Vf0WI%X8=Uk3UqaUASSbmn*Sުvm| 82"7@б, }8$tHIR2>JJ =MT;4[6R׳ā~D}~k.:6ʃHϐDJwk81ۇ=Isz6WBJI7l:ahJ7Cަ85,φkVq< /XYd|vRJJ}I endstream endobj 72 0 obj << /Length 270 /Filter /FlateDecode >> stream xڕJ@'LsL 'BB> stream xݑ=N@FJisX[N"GTPR; 9BJGZ0; Jifw<~EqUQAg9T )fT3j4wTN\IM}MoOhf7s,hSv`ځ_ hv= {H 񞡱B [r%kT3. 0=;  ڿv>;bC _\Af #c,'4/+;hq1h?7p% endstream endobj 74 0 obj << /Length 243 /Filter /FlateDecode >> stream xڵN0/`?BdS` Heꀘh XI-#d`stgۿ~Iy)x 5_XQ&oG\7vWEF<z{O5 Tb!ȣO!2J`@;PP<;Gg3E9c̈*l09t / inm';)),bߘ^Jq݂zlgF endstream endobj 75 0 obj << /Length 244 /Filter /FlateDecode >> stream xڅJ1g"0M!`Dy[ZYZZ(ںy}<•aǙP1|?IO :1H=>cTPc;Ocw!^_[^ʙ;V8?dmgPj\Rq :dĄ* |Vbn;gE d1o( ؁ahDBc!D[o1En %in6N:\Z` æ]H_I<?y뭜 endstream endobj 76 0 obj << /Length 175 /Filter /FlateDecode >> stream xн 0>B L*)j3:9vtPtnG#8f:M|~3z> stream xڥ?J@'X&G\@HBL!he!RK E֛L2ɮ9o[,Ƴw565>UU7v1.tqoYKtq ˣ|QђCDF"RcB|&;J e%wpU3B?O|G(^'f ]THد|X9/O8E.> stream x373P0P0bsC cCB.33 I$r9yr+q{E=}JJS ]  b<]0$0a aÐef0x:`P?H e00?C(v q'W l2 endstream endobj 79 0 obj << /Length 138 /Filter /FlateDecode >> stream x3635Q0Pacc CB.# I$r9yr+Yp{E=}JJS ]  b<]``0f+ɃԂ 0a@\\\٥; endstream endobj 80 0 obj << /Length 243 /Filter /FlateDecode >> stream xѱJ@)nMD BzQ|-#w_Z˷euG|]KkhFrw[r??ܓ[]rKn7-74B,? X -,fXNpMV%\{`r_ |7fZlP \X~r['-pG NZpZY̊4_HWn$ endstream endobj 81 0 obj << /Length 107 /Filter /FlateDecode >> stream x3635Q0Pac cCB.#K I$r9yr+Yr{E=}JJS ]  b<]0a\= endstream endobj 82 0 obj << /Length 232 /Filter /FlateDecode >> stream xҽjA W#>WZL+vrp!ET+ -vXqt;';됱j-->xsiNY-gOّy+#CYEI O$Rx%4DJʤn ׮UH@Y$߸Np⧤D@(Ax^ 9Eۄip xviC endstream endobj 83 0 obj << /Length 184 /Filter /FlateDecode >> stream xѱ@ & &]xHLtr0NUy{ጃ zw6d4JBGqlfiG{1+P)QEz@-ibc|!Pi ౮!`{.TV6ߡA_y48+po endstream endobj 84 0 obj << /Length 231 /Filter /FlateDecode >> stream xڵ0kHnЂ0 &2`A3<#02^KL%!_s{I!.qa@CT9 +@P% 7 v+@x0> stream x͒N@ ]uG_.!MBH 02<Gx۹F:.˓"J:lN錞c|,5<WO(m(KѭEGWbtK=b$(#!@5@oJ 4{aŌfJ`o}4.lO%wm_mte4](z`_TU` endstream endobj 86 0 obj << /Length 169 /Filter /FlateDecode >> stream x;0 t#' VbTD$02`nQzT dj20XY陞c+4xRps?aq@iA W<ix=   E^6ɱC:_:Wѫ}O_ /h m Ij^ endstream endobj 87 0 obj << /Length 259 /Filter /FlateDecode >> stream x]1N@4;ۊB$\ Q%ڬ\vY)yTk.拊57 UIJ/Kn6O\k*ybx[~|nXp8HDF#々~7'QȔ^;LKZ+45qj@.dtv!"ieh֔j]dV絳Su ?hgcfKxhGZ endstream endobj 88 0 obj << /Length 186 /Filter /FlateDecode >> stream x3534S0P0R5T01Q07SH1*21 (Cds<L =\ %E\N @QhX.OON2bH$;&=A$3?8HAN7PJ`$H `( E` qzrr:p endstream endobj 89 0 obj << /Length 187 /Filter /FlateDecode >> stream x1 @   fl1[ZYZZ(Zkyt {O!(VhpZ0(j. 匴F91J3FNPf4W.dI K#ZX+ސ8 w6 .n N<sUv848n endstream endobj 90 0 obj << /Length 310 /Filter /FlateDecode >> stream xڅ1N@б\XG\8M,  * D "To+l"0DQXO]yx:NbYٔOG8'M~ea חG/pl%ގqtg%Qm3 "Vϊ<X1f3j ԄMVl!ey o+ =̃Zy[coFG\{SZƛЦQ?䍉`߈=m;4M?l½};YTjĭjө IPZlklku釾2#}UJ.҆Rymaɽ endstream endobj 91 0 obj << /Length 232 /Filter /FlateDecode >> stream xm1j@*x-"cUZp@R)b.X:#T!vRYH ~Y7zVƷY v_ԿQ[ݓ;N{{W߹ʭ޵۹[J0)\$x " LY$> LQ~ 3 afˈLXF,@' .L h22#戜#䑁rm\-jhp endstream endobj 92 0 obj << /Length 137 /Filter /FlateDecode >> stream x3337W0P04  )\\&f  ,ɥ`bƥU()*Mw pV0wQ6T0tQ```c;0D0I~0Y"I ?&D(I"\=VI endstream endobj 93 0 obj << /Length 301 /Filter /FlateDecode >> stream x}MJ0)YؖG_]x>.]W҅h=Je? گiftߟ ChÞ6 s/\knCs%ux^ߟ\s>k o@B,D'DdZ"-,-B/63"x甙k p7q|$pF暿 dL@AvZHFӬYM5k|,ZdIeb4j`Mg!@Tt`[Bͻ.A8Ew̕bԊW'bt7}t endstream endobj 94 0 obj << /Length 225 /Filter /FlateDecode >> stream xڽнj0 ['Pt!tP2;4qh~?G$C@Bw&,+]po1}R28^~в$IF~{͒/wu|'ܯ8&旘knLM@;&ED-tw>5 pU/jh:؊,PW+D5^ԝhma#:YVp=Dӊb~9ag/uwiS]]q endstream endobj 95 0 obj << /Length 285 /Filter /FlateDecode >> stream xڭѽJ@Y lGȼ&H +PN-`bu>r"X?L6']x\c[awO}͚L> stream xڍҽj0p ['l\z)C:NI-ͬ<ŏуUgcD8OWU>|*cPθ/Ԡް,@>Am^0(H[1,iGu7j}Rڇ.z u&pyN&nfr0)Mݣ9/]L; >Pf5x4/uaʶ8jvƌ YW Cܛs{\e endstream endobj 100 0 obj << /Length 329 /Filter /FlateDecode >> stream xڽN@Pl#/%r"9D ,ii:_נr .\8-%!f,u/F[]f)Wt/jW^JVi}>UԈjUDDl ,QlB0b (J󷥐G|ZHsW$@`-5 Dg'm219  K6L̒Mzjn4&3W;euЬ1鸷~q' 3wo )>!x$#Q}jPKS|* |󱣨՝B endstream endobj 101 0 obj << /Length 170 /Filter /FlateDecode >> stream x37ԳT0P0b3K CB.3c I$r9yr+s{E=}JJS ]  b<]z( EC}POe* 4@ۉ&L*Pi4]OՓ+ \f) endstream endobj 102 0 obj << /Length 291 /Filter /FlateDecode >> stream xѱN@PL#0/W T$Ha:--ޛ*qf $/.?7(0 ,f9YC¯>`SA{z;$[lb  ?%ՂqDͯrr5*Q+D bLDb~7R ѩ+:k#Б?mxȯ^`;oJ0^ef/]rf=7uҤpEsꧼBьycq{I^>z F?6~ܥ:}w< endstream endobj 103 0 obj << /Length 194 /Filter /FlateDecode >> stream xұ 0Ж[ L3D$ ftrAPGE]"8d y%hx5K> stream xѱ @ C!pyEZT vtr'utPtnRppc\ U—\  `Gr]:I<Ť{R%/rHG qR> stream x}ϱN02D%{pBUW"" & `v-GȘ!Tɖ>g]u]T҆*5zz7K9y}սF>;-URQy@sY?]ί܂tz$WҀ<`ZaQfI0\0ˣ|&V)nn J{>=1|41L&Ɣ ҉Ę A2sVb<&3 4O%Sk Iz endstream endobj 106 0 obj << /Length 333 /Filter /FlateDecode >> stream x};N0Y&G\JP*K" * D pre(Ɵhe$ ;vlg.xccw/x]kgk[Zz~ATصnUT+lDu'1Q06ؑ!?v d;;)vjQ04@X,ra?Ýgk>THy(E045A׸Y@לbpѧ- Ee ? BR䌕Œ"gcNQ2R RmrK2QIX+!5E*uQj¨)Kf"JSfbRN׃`+ϐ endstream endobj 110 0 obj << /Length 159 /Filter /FlateDecode >> stream x-= P7l7Ȟb'BBR(L![8L SIK"6fxo<j" T=/oM3 endstream endobj 111 0 obj << /Length 216 /Filter /FlateDecode >> stream x}=@FPL t.˂V$$RheaB5ͣ():B ٗu?P@ވ tx(i@IRGN2TBT ʖt܎&)iT3j v:Lμ\{%@H G*rx>9k,V Rsꖶv7ja9W ~o7o WH%gWHe8p7T endstream endobj 112 0 obj << /Length 215 /Filter /FlateDecode >> stream xڍP KnG/E'Ltr0N GzI``poRH.Mtc\M|E@c˨-=+nI=rOT 0Ș)T `WV B‚>` }$P{efw]UaldQj7e&Tdu;[UnY:=~Y endstream endobj 113 0 obj << /Length 197 /Filter /FlateDecode >> stream xm 0ES o'}I$ IOS ;EhDCý$AZQ '3mvXQ,qQ(=H4iIsVGQ;2iQ0rwN8v5/ 1EP ȅP!y5bG46jSJ endstream endobj 114 0 obj << /Length 152 /Filter /FlateDecode >> stream x3532Q0P02TеP01T0TH1*2(Cs< -=\ %E\N \. ц \. @<@ {j@zb@`!1CbA:.WO@.U endstream endobj 115 0 obj << /Length 197 /Filter /FlateDecode >> stream xm 0[:n#4NZ NT]:v("6~Gc N/9JQ8AmQ`ˮ Lve9r`98&{P9zgϼ&j˗aYƍaDRH֎D@;a%wGPݳ$LDS3+1L)3i36zDX([O endstream endobj 116 0 obj << /Length 171 /Filter /FlateDecode >> stream xڭ1 @49t n!he!Vjih!kW/#SL N 4!6a؀Zt;(vfA(:"}BVsJBp܇#Nxr #u_[X s endstream endobj 117 0 obj << /Length 171 /Filter /FlateDecode >> stream xڵ1@5$p,HEVJ--4Z8 G ЙLi q8Ew>$rAnA0JAo nx]A '*U>QPjĴc#1Ș@(rt5tQ=P:R/t endstream endobj 118 0 obj << /Length 163 /Filter /FlateDecode >> stream x3532Q0P04WеP01Q0TH1*22(Cs≮=\ %E\N \. ц \.  ? C@l ? ?```Ga#2"[n> stream xڕѱ 0-} hNZN⤎h}>ChL.j`pG ;AŦb<[=d%F1(fx:w %W592wy!]\~QsUmA؅P\6Zk O,]IՌ4Uj{:kiJ<ry endstream endobj 120 0 obj << /Length 216 /Filter /FlateDecode >> stream xڕЯ0Ē3{ @W?0A APD@@GQBYNT̬'滋tqO+N|Vt(i!9])/I9JH2rÏB2.Y,8> stream x3532Q0P0QеT01U5RH1*21PAsDr.'~9BIQi*S!BA,Ճ,r N[1 endstream endobj 122 0 obj << /Length 149 /Filter /FlateDecode >> stream x3532Q0P02& fF )\\@ IrW0 s{*r;8+r(DUry(070`PF1FAPĀ? G?P<Dr \\\YUB endstream endobj 123 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532Q0PBS#J1*21(%s<L=\ %E\N \. ц \. dKCHyـ D?LBAd^d? Փ+ Nl endstream endobj 124 0 obj << /Length 148 /Filter /FlateDecode >> stream x3532Q0P04S54Q06Q04TH1*24 (s< ͹=\ %E\N \. ц \.  3P170C=?? ??0HI.WO@.sk. endstream endobj 125 0 obj << /Length 99 /Filter /FlateDecode >> stream x3532Q0P02 )\\  Ir p{IO_T.}g E!2E@!ncr {XM endstream endobj 126 0 obj << /Length 124 /Filter /FlateDecode >> stream x3532Q0P02 & )\\f@ IrW04 s{*r;8+r(DUry(0T0c 1a@4g?P\=]) endstream endobj 127 0 obj << /Length 127 /Filter /FlateDecode >> stream x3532Q0PP0T05V01RH1*2 (Cds<LL=\ %E\N \. ц \. <|&?؃IybP2?.d"'W ?Oz endstream endobj 128 0 obj << /Length 108 /Filter /FlateDecode >> stream x3532Q0P04R0T01W02UH1*2(Aes<M≠=}JJS ]  b<]@8r SK+ endstream endobj 129 0 obj << /Length 149 /Filter /FlateDecode >> stream x3532Q0P0P06R0T03RH1*26PAcTr.'~8PKLz*r;8+r(D*ry(030$`f lvnȸ:c? ~&.WO@.AW endstream endobj 130 0 obj << /Length 212 /Filter /FlateDecode >> stream xڕб 0+zO`[iM vtr'utPt>Z%1Ct0ː0F|F)RNH/wNi gW?Uk>*ۇe]< 4\A-8T.h7뷌׺ endstream endobj 131 0 obj << /Length 313 /Filter /FlateDecode >> stream xmJ1Yr#d^@k[ۂP+<'Aћt }_%,/gH+aC&?88g?fx[3'~rso/q44o:ǧ;ϗ'X|WM@|/Ēemث:l zj_ͥl*R,e`w[uRie.7۽ endstream endobj 132 0 obj << /Length 294 /Filter /FlateDecode >> stream xu1N0ЉRDr#$Kv%*K" * D h>;#Å;AP<)3f҃>'NzOxSzwn_~&_a,Z}<~sG14ZPr.25 QWQHyRdX>Y'?1bMƵЦvc]FT0x7:cRvج_K }n㿪UY]> stream xeϱ 0-}V[P+AAAQZLDߠnxilKB .ݠ|BRVS3 B#Jckd>>z HdJF򥵔l)R&uL/R0:Yڷ)FUcKYjoZ!H3Ycd_EUZU(QK H䎸fBHKJ)L endstream endobj 134 0 obj << /Length 248 /Filter /FlateDecode >> stream x};n@A.``ZKHqDQ2|=–.y dYgjXRI 'ZUuIP~pbNu+bnt<c=7QQ`c &[@7adS4=\/0rΑzӀ4)7.(yp)&7l%!0:RFMek9txag \_Z|_%׫9 endstream endobj 135 0 obj << /Length 258 /Filter /FlateDecode >> stream xڍ1NPPL |sVv#YD ,nFkf#PR7> stream xڅѽn@ `  $HJd@j9h< xC>Ҵ}XoV< endstream endobj 137 0 obj << /Length 213 /Filter /FlateDecode >> stream x}ѽ 0+ 'Z]?`A'qRGEI}4Ci\(Z_.\HPHmθG݈616uhJ3YpbW1Ht< fCzDˈ#_sd\ ¯ECkə½ E r^aȜh"VHrsdj4s(A4CrZ еPߦ endstream endobj 138 0 obj << /Length 198 /Filter /FlateDecode >> stream xڅϽ 0[Fj3:9::(:G#tPB \?at:[`f.)^)> stream xu1JP )L#d.Id +BBB:/k!? ˂bK3Uq*%c9(*ePe}>Jʊ39k垳ʼnm庐EyD_Qկ@wXU9}SOH0 zl??tvq#ǽ.̢O'Τdo{"k}k ꧝L42n^}&Ratq:b6o+H-:OE endstream endobj 140 0 obj << /Length 216 /Filter /FlateDecode >> stream xuн @ Byۊ-8j;:9::(:GQ;(~pHIO3h*'S)+&ԑ)y᎒Õt1,t=I]>eAp=2n|gM}uYg# JлRې/y hxd$gJe\Hb#') ?\e&+',qoQ endstream endobj 141 0 obj << /Length 178 /Filter /FlateDecode >> stream x}1 @ a9$m Fp A+ RK EBbV9oS=#jKrZ!xw endstream endobj 142 0 obj << /Length 258 /Filter /FlateDecode >> stream xڅ1N0e>i*B7," &H`CIBPdܠ^&C5Ssv|tA3.3TN1=ˋEJ]'jvJQPPґv%[:7t5|{odԖ![h􃔕컑d96&ڼX 9y ԃy9e(} ؉iPfnn\;<t endstream endobj 143 0 obj << /Length 238 /Filter /FlateDecode >> stream xuбJ@R f>! L2` A+ R-V$6ÌÎw6#JVB 9«N且7\g_FH9o.ՙ^m)7+̓#վâbB%Z32|%J#YYl tͦ dѠP,&Z#vVtn'0Ytx?D*!kާ endstream endobj 144 0 obj << /Length 214 /Filter /FlateDecode >> stream xڅ= @/X2j?` A+ RK Eh9Jdm[wÔr_xē!4])uc“9^hqZL*_8mI-x99P` @(JfkkAa 'Lдy߆ۨ2Y o M/ xNo룜,LD4L!}6ԂA˜9 endstream endobj 145 0 obj << /Length 219 /Filter /FlateDecode >> stream xڅϱj@_,i| ^δ1KuE.eGQ|K qea"89G#?|鋊uR/nT5^(}56':?k~9RS3@)"=Fgh3b)BC#I6<C<`E,b ^99zGE.Xv > stream xڅѻNP!$ (mI5D+ cZZFs< @IA8-1 y{I t樻gcڝ+nk1-_]zG'vUJ)-FZ";ިf0r~0_e_RLWfE^]NrB9Be"1OdBL ?+/I[Z(*QO+>OɃOc]$3wQ7D ֖ endstream endobj 147 0 obj << /Length 270 /Filter /FlateDecode >> stream x]1N07sH$,-D $(PR@)SXfĮpVŦZ:mhڼf'aEu;S>P3ĦnՔ+Myǚ'8'x`^bYȓg bA@ٟٜ4ʫA9msLzEBNI:ڠnpԯR.-QD> stream x}1 @ ir ܬ$An!he!Vji(XQ]g} c}9WjXN}h endstream endobj 149 0 obj << /Length 242 /Filter /FlateDecode >> stream xu1n@б\XG`.$*KT*>#WI'gfgab y,diRçk6;)Wl^z>YeF*UjtHU[!%Hz#uPuiZ=8ꁎ'Ξ1N:p u!TqUL GxS6:nPkGrkwO3z\" endstream endobj 150 0 obj << /Length 228 /Filter /FlateDecode >> stream xڅαJ@i2O`! 'B,B:_,`aaǙ]Bca6 [ +-=Z|2tNϸm1Vb;z{}|&w`8b!aܧ> stream xڅ1N@ PG)"#ɬ&PFZHPQ ]"qt\c0e~졁?vlON7Q:9 Fb/_8ZI<Nbd1Z^ߟoo.$}ǝ!Amuf> stream x}бJ@9R#d^@ kL!he!V`hyWݵ?qtr; YtblqʧդSuLUG2,RTL:*]-:o~q4bi4,GvHqD CJT![Q|-< endstream endobj 153 0 obj << /Length 222 /Filter /FlateDecode >> stream xmN@D6 )U$\ AE2EHtS .]XY@͓vvfk5zuK6T9^~?=dJxF u }J]iǨ{l3P͔,N.]r |71Ղ]g?.H??ҙUz6 Er_n^] endstream endobj 154 0 obj << /Length 259 /Filter /FlateDecode >> stream xmбN@%L#케rKZL0Xy| _7x-?kr1J_1L/7 M[OoT7(\<Үn~zrwwŞ=?z> stream xeN0 u%p~Hr'*EL &C0G#t)lSۿoUZ"Hgg5{|~x+}+/AwDDBdT9ՙ6U&L6ZbHAW FY1_?(dhB̐2 Cfr\3[5:UFq "⻎ Fx endstream endobj 156 0 obj << /Length 201 /Filter /FlateDecode >> stream x}н 0H->*B08Q;  Q 3t8O\, f36[|>^WЋS+> stream xu?N0 ]uG/mQlH017#V(=BKv*$OkO:j#;_96tzq7`}Ga}%qkz{}zwsA-{o9'`fGy )OZX#Ba `o ``C*BbQ>*g1O`ӆa$ "ҧ[bšriΖ,JufR꜊* h2k f{\'iגr>1f2ǢW,2f7_LLn1 endstream endobj 158 0 obj << /Length 207 /Filter /FlateDecode >> stream x}= @i> stream xڕϱ 0sn'0M[[V08G#ttU;QRDtLYL{'L2#_bw ZS)*z@U,Qmє7xw4_dXk$?[@n@ G\C̕u!U837>_0 endstream endobj 160 0 obj << /Length 260 /Filter /FlateDecode >> stream xڅбN0PW"OUj H01 &jWO ?!qw6D|>w-݊nν{ ;yh( m G뭻#o/-{j/JhāhG N?IRtRvRLM?$ͷ6SN$(p>!/)ԼKYXLͅdN;F$t>E2'"Ϙ4)p-|ⷊ endstream endobj 161 0 obj << /Length 162 /Filter /FlateDecode >> stream x3532Q0P0b33CCB.c I$r9yr+[p{E=}JJS|hCX.O {LA08v0& =hAԃ d}F%\=mh endstream endobj 162 0 obj << /Length 216 /Filter /FlateDecode >> stream x}1j0`xKt86pR@3e(Z5c( zҳ!C+eە"yn)pǣ3'[<{I_'Nʗvk_7('B<P; !,G GIJHIPjhŠ]Ɛ\fa:Và'f$ ?U?~ endstream endobj 163 0 obj << /Length 198 /Filter /FlateDecode >> stream xm1j@*x%¥V *v¸JRHkh>AB^fV)~LUx)d*{y-V; ^yײ{e'|^{)5r*8se%5(Et){o `{VfdNjW|n.Գ墺p%Euщ,7>F`1wCG,0w endstream endobj 164 0 obj << /Length 225 /Filter /FlateDecode >> stream xm=N048fH"-D $(PRv.]X#!|ŌgyoOyÞ,n,Ş f2w\2>n.ؒ9#zЈ-1p҅FcFR+M*ȝaZ~)\?(ߴa<-֊w%<2%RTN:ȱP5772L n endstream endobj 165 0 obj << /Length 266 /Filter /FlateDecode >> stream x}бN0 P:TO[+D$G1!j#8vbiSB'쌊S|b- m6*.$t۫3J6}?%wY X7:([x0/Xw?.1}Ď~4;V!0X^G`Yi|3KK[륰ӃrIsz ãFav+_ endstream endobj 166 0 obj << /Length 267 /Filter /FlateDecode >> stream x}нJA ,[ Gy[ZYZZ(ZtҼ^F8" $:j[Z6utv ִZq=`uMsc5\VSjMC-[(m1D9˜h8K,LbRVz;g?Y[Z#J}9Ovʼn N n[pe%WE?ul~و6mCl8d`PWghF endstream endobj 167 0 obj << /Length 203 /Filter /FlateDecode >> stream xڅα @ B~\ N܂'+~B1`A%!DyH>-Pd|Mt8E'ZKUyAoJ4!6B0s>a~1[GBTG@ \hYc&W=倢'ci4XQ\K5g)YMbW) k: endstream endobj 168 0 obj << /Length 229 /Filter /FlateDecode >> stream x]1JAE`]О^5XWpA#H ޣQNPLYb" O~IgD^c^up;a|<`o}~|b_S¸} |N$@'" CCwDǦX]X<M"J= ЋVM67xQmKҠk:Άj*9hwcf{ endstream endobj 169 0 obj << /Length 199 /Filter /FlateDecode >> stream xu1@PL &T$&ZY+h ތpJ 8FHO!XccQ>Fp4 1|*]QpCi 훑𷂈Z~]K9@ae%d p-5J҃J!Mq^.q@GaOkn endstream endobj 170 0 obj << /Length 191 /Filter /FlateDecode >> stream xm1 @ )ir4Y݀] F0Xz#XZ,;fASOFcM9MiIOZI)Q  iBj̚%]/#fjFִ65؂q h," g |U^e>*414,e{)3c'Θ9{6a8opo{ endstream endobj 171 0 obj << /Length 200 /Filter /FlateDecode >> stream xeͱ 0+[|VP Nj}EбCiˡBKd0L)1ok)>XJ쎘h֔Z4s)t9_h4S$oR^2Ӱh!l P؞ZɅ'z3Ē@mP,g({b_%C>G ׇid endstream endobj 172 0 obj << /Length 214 /Filter /FlateDecode >> stream xeέP <]ʏ#6يM@! X(jSqe`QtM(1_r1qZ.ۦ[t{:&arFnnQz(9(4w^7'NӪVsmՆڐi{-J@U* ֵR_ZX\ZhF`FS|g endstream endobj 173 0 obj << /Length 242 /Filter /FlateDecode >> stream xUϱN0 PW"y'$_@Znt`b@LXnRB>cꌝ "5q8g筭lߦmcj|vJݝm83ͅ}m"(>(g@@ĉiB$}J|D| >&A2 ʕ/*O}b1rt1'IK?tQ fTr%?B-z."&~he )x-;w! endstream endobj 174 0 obj << /Length 261 /Filter /FlateDecode >> stream xUϱN0:D%{H]#" & `ő:t&2fjg8EZ]/WTeEZӪ7;OKZï4X<9=}ޱ<ܐbKϊlr;}mGvð&d$0 nΓ :ye~3Sc?@hD ɑv!F]Ko țo|-xc`3O-'yZ?2lm{ endstream endobj 175 0 obj << /Length 203 /Filter /FlateDecode >> stream x}00#pO`A``"AL`qRG&nh> stream x}нJ@9R,Ly; 'BBGr#L?bX~0;yhK: mbCyݍn{wEݎ=5O`uy,'qQG9Ɋ6WZIlqmԉ]FFdFNKecϡpZ*K*f#Ȓr{=ۥk)i6osҨWx%H K%l)^x쀪 endstream endobj 177 0 obj << /Length 181 /Filter /FlateDecode >> stream xeϱ 0  zO`j3:9::(:G |>BGx:h_;dF(hi8tvG 5(͂.eBYӆ'hj@ #ZJf[Y`I];{n!Aȱ>$.u'Jz~gWFfx endstream endobj 178 0 obj << /Length 244 /Filter /FlateDecode >> stream xmN0C[O@fTD$Sad*hy>B VD Kt?ۛvʷ27w]uK-_|MKR=󽯩W> stream xuN0 n%o@Kio$qHt@1#(}w"çwlvִHmM^"cӊ(>5-1ta{wEÎ# yf.*0P Gp ~$OfHm F9՞xdP4Ƌ$5vSr`ءܿ4ȖVwluy@lCĭUB]_l e.{ endstream endobj 180 0 obj << /Length 281 /Filter /FlateDecode >> stream xm1N@ E4M0$dWiY$R AE&Pq9B Rм39t\4myƼbͻv}yx6TܵԲ+~{}2S&";)2Y "drrl"ATɏ6D|9ʕ!G7OȫL>b1OT"$ȀgrOO>rR1vti5QqR4FCܘǿ endstream endobj 181 0 obj << /Length 214 /Filter /FlateDecode >> stream xe;@!$p,/D ,ZZh3q`IA@v!Yd3!{}q yt.Euc";R#v}d^ Y_GЉ{4%ڮri!-{[ّ B>v%)BV`4BVZڐSLG3R1Ke6DJ-xJ_8N;JKMjJ endstream endobj 182 0 obj << /Length 272 /Filter /FlateDecode >> stream x}=N0'Jai!sH,eHJ re(MXH'k~_ߞo:iBZ鷲so6~g^y?p}/]5\7RZJA<9g dRHD>#GDA"etGG dQP> stream xڅ=N0RDrN@]YZHPms3|!e + ;y3+hyּe>> stream x-ɱ 0 g 2'0-k3:9 TGAEfڢ|7lXU:x@='e; m;P=fpq}kw+*\ǣҟ;ZFy2ddL*R!sBY ,P# endstream endobj 188 0 obj << /Length 94 /Filter /FlateDecode >> stream x3230W0PaCsKCB.K &r9yr+Xr{O_T.}gC.}hCX.Oz 0X [\w endstream endobj 189 0 obj << /Length 131 /Filter /FlateDecode >> stream x3230W0P0S06V04W0PH1*24PA#SLr.'~PKW4K)YKE!P EAA!0s z ocr -# endstream endobj 190 0 obj << /Length 194 /Filter /FlateDecode >> stream x3331V0PaS SsCB.S I$r9yr+p{E=}JJS ]  b<]Bc``D@.0L1S?UB7@`JJ=SP (<9P@=mrC%hAC!@ y`> stream x353R0P0bSCSsCB.s I$r9yr+s{E=}JJS ]  b<]d `6`RAI68؀L2`%Hv0)"G'!P5Ⱥ AJ$ `G@%\=Mx endstream endobj 192 0 obj << /Length 254 /Filter /FlateDecode >> stream xڭѱJ@?l&yM"&`p` A+ :--7`kMg+ & XKf]{t\)pp{ =SuV=UvT]j__Z]>5(6S`-̗oնd IS03aLlB".!1Ox&pcJ&HۅrI)ܔ_,v0{ltT颧 endstream endobj 193 0 obj << /Length 239 /Filter /FlateDecode >> stream xڭ08#^@D'D::htGxWm~_LyxJsNgo(I5M7?/&~I#K CԼ*x1F%)dB 񑊅A8EjGU(Nk4, ~j}> stream x3535T0P0bS#SsCB.K I$r9yr+Xr{E=}JJS ]ry( , LS? 0adT Y;PCuP7 .ĵ'W K endstream endobj 195 0 obj << /Length 150 /Filter /FlateDecode >> stream x3Գ4W0P0bSsJ1*2" Fr.'~1PKW4K)YKE!P E?<@0g`A bP>T*L`)`J+F Hʃr Wr endstream endobj 196 0 obj << /Length 307 /Filter /FlateDecode >> stream xu1K0W v8b vtr@?')ΝCMHH^K^Y/PX.8\> stream xm; @ . Vf.1L!he!Vji(X({8Qښ}i<"Ńf{Qj{T3Qes:.{TŘ4 5E&6%/_x/PAP02g0yp&dBw:+0}ATyM6Ӣ5l.5iK|T endstream endobj 198 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0R5T01V0PH1*21PASKLr.'~PKW4K)YKE!P ETD0S$00|`A; 00* ?8Q"I&PMb`߁q ̍:]'W ckA endstream endobj 199 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍA `'?(   AZDjX.̣y҅Tcu 7f: 5P L % MBb%_/#jƒ&Ύ҄Z{Ue5TƩ-ՇW6j@-OӉ;*`{^[bTd7 wSZ= endstream endobj 200 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0V5T01Q0PH1*21PASKLr.'~PKW4K)YKE!P ETz !HԱ` |P=iu D)ph<krF=A?0`> stream x]1 @\B/ 8M(+Tr!bI q23;9nvdC)lGUgwIBf6$32d@fr@&m)2ϩ\^sϵ2HQRQO5QJrh MTrL@V@ endstream endobj 202 0 obj << /Length 141 /Filter /FlateDecode >> stream x3236W0P0bcSKCB.# I$r9yr+Yp{E=}JJS ]*c<]70| C`003a`\=&[ endstream endobj 203 0 obj << /Length 155 /Filter /FlateDecode >> stream x3134V0P0bS CB.C I$r9yr+r{E=}JJS. @-\. ?&iNa`D~700n?D䇁$7 \\\y endstream endobj 204 0 obj << /Length 122 /Filter /FlateDecode >> stream x3230W0P0aCS3CB.C I$r9yr+Zp{E=}JJS ]  b<]0@A@8~? q0\=(CE` endstream endobj 205 0 obj << /Length 108 /Filter /FlateDecode >> stream x3230W0P0aCS CB.C I$r9yr+Zp{E=}JJS ]  b<]?0! ̃`qzrrƂQ. endstream endobj 206 0 obj << /Length 177 /Filter /FlateDecode >> stream x33R0Pa3scsCB.3 I$r9yr+p{E=}JJS ]  b<]?`@=:773n? Da`N``` O7Nszrr#߈ endstream endobj 207 0 obj << /Length 147 /Filter /FlateDecode >> stream x3134V0P0bcsCB.C I$r9yr+r{E=}JJS. @-\. ?00`D~70n?D䇁$0I.WO@.e% endstream endobj 208 0 obj << /Length 188 /Filter /FlateDecode >> stream xڍ1@E #0e6 &naRK v9GTd)HN^f̦ǚ95(EqߜR{cRkI ? ldM*H&g8^WSQdHVR!J*- i~ nN/ookg$AH> wlzZIK endstream endobj 209 0 obj << /Length 140 /Filter /FlateDecode >> stream x3635R0PacCcsCB.# I$r9yr+Yp{E=}JJS ]  b<]3P?n3 ~o0ah`?PszrrjF endstream endobj 210 0 obj << /Length 195 /Filter /FlateDecode >> stream x=αJ@Xf x{`TSwZ * W6`"8%Gf|q~K.4pR^j<> stream x363T0P0T5T0P05TH1*22 (Ads≮=\ %E\N \. ц \.   W  @ @,?(fQ 0pC sC3=;?f.WO@.uH endstream endobj 212 0 obj << /Length 153 /Filter /FlateDecode >> stream x3134V0P0R5T01Q06WH1*21 ([@ds<L =\ %E\N @QhX.O `J`pB`왏I@.WO@.1c endstream endobj 213 0 obj << /Length 183 /Filter /FlateDecode >> stream xU̱ P#k[WJ' rjj Ɔh>`Phj @ B\Q#HEldȗ$"Sg3:.{|LVkRj_ ..X ,g0i) <p&A=j|c(vk]b=(ԿOI |F? endstream endobj 214 0 obj << /Length 219 /Filter /FlateDecode >> stream xUj@Yi nZ$sSEGQ|x I;=F(N8^D!qiIs ǔB3I-1QYAg//74gZv* 0ÿ+]SCE@QsϰF,IqSn/'gCb^mmjg`1'>ڟK endstream endobj 218 0 obj << /Length 116 /Filter /FlateDecode >> stream x363P0P0b#sc CB.#C I$r9yr+r{E=}JJS. @-\.   ?0m'W ;> endstream endobj 222 0 obj << /Length 116 /Filter /FlateDecode >> stream x3632W0P0bcCB.#c I$r9yr+s{E=}JJS ]  b<]xlj0ĦPqzrr- endstream endobj 226 0 obj << /Length 347 /Filter /FlateDecode >> stream xJ0_!K^@L^`S:=z ԣ|&ChMҮ$ӇKl R;Td"Kslh?b=IA{ irm7hR܈ϏLn/D&/GZ\ X]z锯.f0H:i9vB 1QVXa3gND3/VmJ 5qgpʃ *Ey\,F_j\Lbʃ`W8Hŵ4"A2S;ɠ2*<&p3'zx7,-w' &?荐ofVC7#E|yo /ez9̾vK zGn? endstream endobj 227 0 obj << /Length 246 /Filter /FlateDecode >> stream x]ѽj0`0=ANJc!-,~? :%tۛ gxonQbGP&QH/X֐`C`^!g i&^2P{ԾQ`|J'Ql¦g9nٞQ7R&Mb?;F;klJjIr~V6̢NM;!) ; {vF=B&?Ň endstream endobj 228 0 obj << /Length 290 /Filter /FlateDecode >> stream xuN0/> stream xڅJ0)=roжKi]X`z ԣAl-G1q&I]D{J?IgZJL1t 3*FS,~YnkbeR_ǓL dû {Y41 aX]L6 6T8вiR%p V+4hg9Aol3: 385ScjfT濞}9>t *S|Ե=R"um1⽨}[+ؿ–Ԙie-o endstream endobj 230 0 obj << /Length 279 /Filter /FlateDecode >> stream xmұN0"G'p H01 9y4?J ;;&M9Y\^md-uxZk]4;;TORP݅*^~}~?A>7~ |x@0\+!Ч_BBeb̠&s {7C1 f3b5> stream xuбN02D@(.CHHd@b* *5G#d0g'1OwWWŒ2RkzU{fW{{uTOQVrpC9 msʞqUOA p ~x,.,=<fx$i~a J2Xw84pPG=9vx8GC ta9p> stream x}J0)AP;?m=z ԣE~Z>cq&eTO1yY {dԊ :0+[UGQ> j *h!XXƅaJ{k:Ztc_}N3V 6V][͔\a}5ՠvhWJKCMnTEh+0W endstream endobj 233 0 obj << /Length 218 /Filter /FlateDecode >> stream xڅ1 0[ |'0-M N((GQzҘDi1`Ixɒ$8L1DjxX4 '1^,vgFsFȑ1)eú O ?Y1Xr[K`dL-AiH o=&l,<|y#45%uTPRP&e'ykx Z endstream endobj 234 0 obj << /Length 350 /Filter /FlateDecode >> stream xmAJ@7dEzs"SYr!ԥBb+ x`A.B6a/odxR51VcTݣ2VT&XI~^d2 ȮC - ϣA;#:o[sF4P9vcaر?:v9@v ]|hl2g.#_'9.:;G U5uC,W endstream endobj 235 0 obj << /Length 281 /Filter /FlateDecode >> stream xmJ@)=`^yMJڃAГ=g- =H|d! ,dvu~]PF-in%,V\̴"3o0}b 1n1  |90h7 g5E7_({[#W`k51 ` uQ':HU_-h _>/qAzJq;[j{R=ev }!(w5i:5ѝ  endstream endobj 236 0 obj << /Length 293 /Filter /FlateDecode >> stream x]бN@Pl} M3D+ cM,h([R\U_e׺toTENE*gyPJ%OUrGeT]%ۇdS~QN@ a{F4讉>C]6q aO̪qӂphA;'[tž {%V^*"iFVZw_F/ DŽ3G9r:C;> stream xUϱN0?` @BR$2TuF@R?Z$^ďCUYb컳u/ /l- kZ]W/ﴮ(bk(:Ֆ>(_?ܲT7,vTmr^HT[ s碆ou@3xMT#zU#iGu;*Y}(92&4i)uQEmfbD%bp&a)u=ԯ9ߕUH Z endstream endobj 238 0 obj << /Length 241 /Filter /FlateDecode >> stream xUJ0Yr̥o`4 -~la]A> stream x}1j@пXF7j&@!* I¸rR;a(:J"q?wqn`k{f͜Wk>_ddS[ vԐK%#GqB0"jD $=Z#9ܘ(v8G~o0Ay! 4f3Hv;AF<ğ҈V5RF0 endstream endobj 240 0 obj << /Length 263 /Filter /FlateDecode >> stream x]J0s/ymYw{qa]=yOQpEaͣ|=tI6?:UX*Tt>+XtZ55tE}/P,o/QA#+dG[;y]Ċ&rG|!nMʶr9&s"s< 8%v\-AEpA&}jXnEr0#SwDJx'4;wsl_o"ٛrwi\p(tg endstream endobj 241 0 obj << /Length 217 /Filter /FlateDecode >> stream xu=n@4A<ełRa).*J CxG.,gD4v! _{x S A^N2TG&(Jܧ7⪵~-uS[ Wu$ bJ hƤ!ˌJp3""Q4zj"| Ĉ404Lg(HIBI_YU!'J endstream endobj 242 0 obj << /Length 246 /Filter /FlateDecode >> stream x}ѽ@,ibr)BRT&bqu`k7Hi;wbNl@^U``CԇOr[`Z̡/ .V38Q!%)y\HX֔ң>t u5Zl\?dEqbƒ63kkSǬM><9,A٣ئZ5⋪]!6E*)z!Pk$ endstream endobj 243 0 obj << /Length 264 /Filter /FlateDecode >> stream xUнJ@H&/ d^@\e<VbWZ(څKW L"$d%ewYc1G$bfc9W2F|n^hQx&Z)ncGc )2NAp* Ǐb4(*b FZ¯Z"nTX'{8N<*Z[8Ϳֳh`[Nho.w?uD_ߩn 6+/ި#Mn2&"UFw v endstream endobj 244 0 obj << /Length 263 /Filter /FlateDecode >> stream xe=NP!L `. ./YD 0VjiM,J(#aHHUN1-$쌖9=&i˘V㓇gn)P]UqMoO67]B=[耯^+Bϭ3k\3X;o!wZ=|U%mI Zy2VɰȌj"T&vYѷш 1 Ake;(/xA endstream endobj 245 0 obj << /Length 210 /Filter /FlateDecode >> stream xڍ1J@ [,L^@\@7@B@L@+ yRXE!.#lBM"_39= d鸤P]]h*  %Ǩ =?ܣΩDmIZ7o+d? &/EP"xdQFXpyH3y-Ό ;,TlUQy|R> ?bkFW endstream endobj 246 0 obj << /Length 271 /Filter /FlateDecode >> stream xeJ@ {XC 6%@`hŊ:gЊ⦅jl3Ǻhl=[;QՐCVA5osbPNCϟ[p|,-FJh}~%K;pgF{jޜ=N8\nWo"pN|wr+u endstream endobj 247 0 obj << /Length 311 /Filter /FlateDecode >> stream x]1N0`C} -mV*E"L  Fb`1a*< n+{Fs|O:wb<խ"=H)iqoD:?=ԙH"KQ,4acv J*Ō,ѓP/ЕoWw@'!9H.h VUq0PL†bxn h'ƍ|PLj1ϑ:v[BdfBOP0BZQ\}%80p B?- endstream endobj 248 0 obj << /Length 251 /Filter /FlateDecode >> stream xUαJ@ [y#;/I`C8<8O0Ub) W'A,7YLNgsz*,?Wf`{%W5W%ޢRlg gl,Rcޜ5C.1y6sNú4KH9 =nNU,uJ7N TlD)bx!?n{Hv1DT7RT5 Y*qwN29"'.޽LVN%#Q a endstream endobj 249 0 obj << /Length 214 /Filter /FlateDecode >> stream xMϱJ@I&y,GHL!he!V\hy<–[;g(|,?9riU˴b^^hۑ}UMVd;z%aGvOgv ~Ll|*C>pD6aF&y+\(?6/Y g!.)ӼP &!+GeƷfkږ[/д9h}GZ' endstream endobj 250 0 obj << /Length 254 /Filter /FlateDecode >> stream xMοJ@oI{Ý$L!he!Vj)`!1kaGGH"\5ǯaqQre%璜2zjʧ'*Jn8/(:%%=R:㌒5fQfD5jlp,3a ]o^ʘ5M P+l'e> W P&%7XN֩t王SvC&o5b,&u6pc(A] w endstream endobj 251 0 obj << /Length 196 /Filter /FlateDecode >> stream xU= 1 S h6l-,J- =x=JrşDDx3j)ƘbSָRĕ1@/9$9 15ޤ dtsVї(ksiU7ǃU)?aIb cENz'KQPO<6 )'w/nL -EB endstream endobj 252 0 obj << /Length 226 /Filter /FlateDecode >> stream xM1j0d0A.jh ĐPt2mI Cu4%GءDeRI|BTLo t\\>p 3u7Vg-bG}.Vw]:l#RsPI;Rz < H`х#JCs;H ehQHs&I翃edgc6/s~#Cr_ɓǃC endstream endobj 253 0 obj << /Length 189 /Filter /FlateDecode >> stream xڥͱ P# " *C AAM TEk(>chp~pܹC!$txC7!>+)=5( = x$"$iBFJJYJJ˻%D~ь柼Yإibc)g'lB 5F֨]-\/N endstream endobj 254 0 obj << /Length 225 /Filter /FlateDecode >> stream xMϱJAo` f^@7GV؀H"xXpBѮk#\"^r`+f?sx9/yqN^KLq;/*21N>.R]ɓZ 6_`v ̴s( EDynܠ {Ob{b8#%=i2 @' Tl(r} F|SPs endstream endobj 255 0 obj << /Length 239 /Filter /FlateDecode >> stream x]ϽJ@1 }36pA<VrZ * br{(J_!O )]#ok913K.'%cW%R> stream xM1N@omai | mXH!HJ@J9{4w\#Gp"r'.^_K&erOsfr^?츴ܦ> stream xeнN0>]ӂNh_\ߣ4Q1oo龠6[=2b7{5V=l-+h!cGQQa\0NJ`$SzBC+B~y~;n~8Mec?D BtAZ;Kq*<\rɥm풒\n|-(\>54% $ex=jb>^6x?; endstream endobj 258 0 obj << /Length 263 /Filter /FlateDecode >> stream xeJ@3b`6y$@`\+u)> stream xڥ1 @EX t$ L!he!Vj)(rM\ ~}>wU>$]HYDQLbJX xɷH"ZMYVx@h egR4ah#Kju4ӒJ&YHrb`.j\+hcc%*t!AfM* endstream endobj 263 0 obj << /Length 207 /Filter /FlateDecode >> stream xڥ1 @EXS 8ͮ(VbB9ZRZX&^x hec5a㣤 jtLaLbJXV oD$N8x 0lX@/C7蔻B f 4VVkφcx}A#/k TZ;ƺԷt%E" }bS[. endstream endobj 264 0 obj << /Length 134 /Filter /FlateDecode >> stream x323P0PP01P02P0TH1*24 E,!2ɹ\N\ \@a.}O_T.}gB4PO,C}?K` @cs3; CPՓ+ a'V endstream endobj 265 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 266 0 obj << /Length 95 /Filter /FlateDecode >> stream x323P0PaCKCCB. \.'O.p KLz*r;8+r(D*ry(177? 'W  endstream endobj 267 0 obj << /Length 166 /Filter /FlateDecode >> stream x337U0P0U52U01QR - 0\.'O.pc .}BIQi*S!BA, !',@( p8#D` 0D >\!졅e8=2=-#2,)X7\=(o0 endstream endobj 268 0 obj << /Length 105 /Filter /FlateDecode >> stream x323P0PaCKcCB.CrAɹ\N\ \@Q.}O_T.}gC.}hCX.O9 Ėc `3Փ+ ( endstream endobj 269 0 obj << /Length 147 /Filter /FlateDecode >> stream x323P0PP5T02P01VH1*24(As< =\ %E\N @QhX.O9 Ėc L1?K` @cs3; CPՓ+ L2 endstream endobj 270 0 obj << /Length 137 /Filter /FlateDecode >> stream x323P0P0W01P0T0TH1*24 (YBds< =\ %E\N @QhX.Oxd$,  (< X3pzrrV'h endstream endobj 271 0 obj << /Length 94 /Filter /FlateDecode >> stream x363U0P0T0P0"CB.#3D"9ɓK?\ȌKCHx*r;8+r(D*ry(6#' endstream endobj 272 0 obj << /Length 181 /Filter /FlateDecode >> stream x1 @/BnV@` A+ RK Er#Ep"[9-6 :'r"qMg Ɂn?QVpZHKXr;V3֤rjvT ,d<[ih1 ' %WqJ|k;pQvGƺ~J~JHw endstream endobj 273 0 obj << /Length 193 /Filter /FlateDecode >> stream xѱ 0_:n#xO`Rd@+AAA(}j]Arnc6ܗ<2|Lڇ) džBnIK^nGՌ# o#6;JN-(_)/|bAU+V]U"sbh9RI+[9hJm+܇Ͽi&c|/?yJkzo endstream endobj 274 0 obj << /Length 227 /Filter /FlateDecode >> stream xҿj0d0P= ";͐:v:;4$[@ŏуdPB@ ohMgsNy#_p{F_Z퓖 skx;|]>?rFm+U%E+H>x(I L:QGӢŒJrѠj0G]rnu\dHHIoDE[UE/t< endstream endobj 275 0 obj << /Length 257 /Filter /FlateDecode >> stream xuбj0d=A-pHRB;u(@19G#d`d |' 󟖋;}O5\RQ`ȻO}c~[zIc%a,D!Q$mbG2bWh*^jL/.i AjS]3}`qd;<z<ĠuH> stream xڥѽ 0ةP+AAAѹ}> stream xڽJ@ƿ%``  h`xp` A+@--|tv)-­WXZdow*;9-8㒏 >+1*R̸*gZ֔Sz-eJ~{}ty{9+Sb 頁Ș2ԠFJ -_5J5f҂Fvh4P"VeF T߄iӹ{ =#0s@7IMlVMts~!|.G9#٘0\f {qo@W5/XI endstream endobj 278 0 obj << /Length 220 /Filter /FlateDecode >> stream xڽ=0$N`!!U'D::htq@ZmIjlB-$CϐOj^gHs`[1e ,_z?Kse0C (eml dE|QbM*mhVK;-Fi,IUAmluΧl.CNZ=xں%giz@6 7 endstream endobj 279 0 obj << /Length 202 /Filter /FlateDecode >> stream xڅѽ 0+n/ t N&X؏+blkqRv= (+%66l8T(ԏPL]jFyb8QbL51|=3;*X(mu }6f\-~ͽ xTk݋6o]ÖoW1\9_?D߭k endstream endobj 280 0 obj << /Length 180 /Filter /FlateDecode >> stream x3333V0P0b3 PH1*25\Dr.'~)PKW4K)YKE!P E?|@``PL1C(F*  %CA(6ŃF1dP(UPP9J>TxHJ(`\=|3 endstream endobj 281 0 obj << /Length 296 /Filter /FlateDecode >> stream xŒj0OxܢGн@kg!M ԡm-@^[^[WI qUutqE+ z+̟00=}c~ =T`!gA@jT, 8_=eCAMF^ |:I *@=N` ڝ 垻ḱ69&>0s!of &jɤbu gϫC0IF)Zm* endstream endobj 282 0 obj << /Length 130 /Filter /FlateDecode >> stream x373T0P0b3K3 CB.31s<L=\ %E\N \. ц \. ? Ph707000c~4ȫ_4,q.WO@. endstream endobj 283 0 obj << /Length 112 /Filter /FlateDecode >> stream x3634W0P0a#3 CB.# I$r9yr+Yp{E=}JJS ]  b<]A~y) \=i endstream endobj 284 0 obj << /Length 295 /Filter /FlateDecode >> stream xeұJ@ )^@>IDb<VbB29,|2IHyEqwv0Wlfl~_ڑ0)>a:q{q kY Ԥ/Mj[:cЌvt֡XQ(jE/:A f SZ xv;]EoclZP7cC+O+h8"ΰk=8Eѳ>̡(Ɲ0M4yt^i$&"귁g^* endstream endobj 285 0 obj << /Length 152 /Filter /FlateDecode >> stream x33г4R0P0bSs3 CB.S HrW05r{*r;8+r(D*ry(*P 2C@,dBPBՃ)A0@\=R endstream endobj 286 0 obj << /Length 258 /Filter /FlateDecode >> stream x}J1 ] {-(tdibVp> stream x]ѱJ@ Lᾁ'p<8O0)V"*+ϑ:Ygw{tx-(9bA1=3?k*hmuAoh]MN-V+rn`f \uǦxY> `=jx烷li'^ b8vUx谈 endstream endobj 288 0 obj << /Length 280 /Filter /FlateDecode >> stream xڽn@ Ǎ2 y/D%dCJS کC!Q&<#02\M90qwYSL)ݭ(K(3SR7n oN>f3?_h/{B@J lF3@.!-@A> Aވݜ*PB QAo"|s Fà \Ji oץ%Ocj{:T~LpaE `M5(QlWq2 endstream endobj 289 0 obj << /Length 252 /Filter /FlateDecode >> stream xڥҽj0p [hd`e3$)C 2@!!G3U?& w0 ,N=j7>FTҿUx4F=E_%\ᵀ=/ɸh endstream endobj 290 0 obj << /Length 289 /Filter /FlateDecode >> stream xe;N@rai=`;qѰR.@T@I.J|7a҈$Ci>˳؝I}^M iI/y78K6'of֘)nb-}~|bvwE)XQd9!a"[d72EW:,wX=0;rؙnW-WzUR,k9M<Iz:HxDLՐc|c=1;2؉^]Aĺ7_lo'kH;tۀ_"=\lhsoW endstream endobj 291 0 obj << /Length 160 /Filter /FlateDecode >> stream x3731R0P0b3s3 CB.31s<̌=\ %E\N \. ц \. A70``a~@ m :y 4!B3  4'W +q endstream endobj 292 0 obj << /Length 210 /Filter /FlateDecode >> stream xҽ 0+!vuФZj? N⤎nBh>PWj#:,{)=F(c[eZJ *8~91d plp/ër endstream endobj 293 0 obj << /Length 333 /Filter /FlateDecode >> stream xڍAK0 ^{6LSaNAODGaRAaԉ.x ?dJg9*9g9Цӯ'9+ezӉL/h[%=tvuLx0ȶ `ka5@!F֠%~ CnɱCȅsZnpIm1u2c!/Wܣ[P `Q P{&{6Gq.L!qvNCQ&yи7> stream xuϱJAba yh+RPK E;1 tƽpS|?;?xžjs3TC=-r+SrgkkrKyrM͒a{ծlB-`a:`u)xuwGW2&e˯ɦnh huaǨk} [ bԪob"EzONoɌla endstream endobj 295 0 obj << /Length 213 /Filter /FlateDecode >> stream xѱ 0; 4X-P vtr'uTt7)7&/“ h4"rMӘzd endstream endobj 296 0 obj << /Length 203 /Filter /FlateDecode >> stream xڝ 0OKдv vtrAPGAEA0G#8:ANȹ-Lp;"dJ Z_V[UglJ#IWc>NҽIs-0pu@܀_x vZհu/{#ҡ^EA^UzN4 E A2;Wa V4'VhLr endstream endobj 297 0 obj << /Length 212 /Filter /FlateDecode >> stream xڽϱ0$7 x/$N$ &:9'utf,ƣ Fp $K8q b~bNe/DF4AFGi[?2%72byg6Nh:]hBQ֩L)϶?$nId[XmFiǞzՊuA63` ^j endstream endobj 298 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 299 0 obj << /Length 156 /Filter /FlateDecode >> stream x33T0P0bc3sCB.cc I$r9yr+s{E=}JJS ]  b<]000```!$T ?h A30c T" h2FG&\=ak# endstream endobj 300 0 obj << /Length 275 /Filter /FlateDecode >> stream xڝN0?+C$/~ @pKV*E"L02`ȣD`7я$7d*:}$ X endstream endobj 301 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 302 0 obj << /Length 125 /Filter /FlateDecode >> stream x323P0P0b#S3sCB.#C I$r9yr+r{E=}JJS. @-\. ? :  .WO@.P endstream endobj 303 0 obj << /Length 161 /Filter /FlateDecode >> stream x33T0P5U52P02T03WH1*22 (Xs<L=\ %E\N \. ц \. 6 ! Ր#0$z $!03`a |\=[3 endstream endobj 304 0 obj << /Length 220 /Filter /FlateDecode >> stream x1@`CW ,I0Q ne!V*Z'7J+)Shfe=1fOA2∇n'MxӞ#슓U|<)dg9P1csK^4Ї g Z7-Vj]p azկTP)*ܨF7́ ,a 0@ A/vP`iCiyA_ endstream endobj 305 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 306 0 obj << /Length 203 /Filter /FlateDecode >> stream x=@H\@ȜM B0X({+ba8垫|>2Pԏ~?Ѥ$|@jRRod5Ԍ;*gX@l$u8lSyEȞn!X#xiTCƩFHjODO'0vBJ#n $"&ݏ endstream endobj 307 0 obj << /Length 159 /Filter /FlateDecode >> stream x3534W0P0bSCCB. HrW01r{*r;8+r(D*ry(0a@R` `$@z ɀ a/ m?C&\=?qjS endstream endobj 308 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 309 0 obj << /Length 218 /Filter /FlateDecode >> stream xڭн0 p[*y#4"t7p  }4бCHpH'n[~8{`zz9> stream xڭϱjA` H;eTI%>: fsᅦ2ts.zwVlJRc铪&^}.I OIEsJՈW@w D[wS`$C F AG# nZѝtz;Ymΐ#[GGq.z sE3:g endstream endobj 311 0 obj << /Length 144 /Filter /FlateDecode >> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 312 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 313 0 obj << /Length 160 /Filter /FlateDecode >> stream x36׳4R0P0R5T06V03TH1*26PA3#Lr.'~PKW4K)YKE!P Ea9$luPفX$N#Ccagc{  00?r Jm endstream endobj 314 0 obj << /Length 162 /Filter /FlateDecode >> stream x1 @ᷤL fqC@Vb--+'Gˑ<@Ⱥ!X l3pjZ>DŽm:L#c^[z?.6 6KNJV- -reByDz 7U}`(D,uxI0nҷWR hhKob endstream endobj 315 0 obj << /Length 202 /Filter /FlateDecode >> stream x]= @Y6sݬ+0Z *ZGQr!n5|ś7ȈBR[^0$)?G19]/bLւ :c:k{-Ŭ`m88u t&p2 lB̘Ϙ> stream xeɱJ@; $p M!澀dF 1` A+ Bv362e]X'qι>giF'5Tkè;.:TQ݆UwG_oTZSE%yB7zȷ CD`Al`^Ѓ\F&i!Qڤ5#+]VڂQS"w)͊S28`?ah֌+.1%t}z= endstream endobj 317 0 obj << /Length 236 /Filter /FlateDecode >> stream xMJ0?0> stream xeпJ@o \`^By]  @-G̣R^w]9 Opj8>xPS5ZOLIppu%?^^qDzŷ;JW\ׅˡ~ lr&Vg{'´N2;s8Gvn=ЪQob]pл ~^8:g007~ʞJT Ͼ4sM^!yJ[X' endstream endobj 319 0 obj << /Length 197 /Filter /FlateDecode >> stream x=ϱ 08nzO`Z j;:9 y> stream xڽ P FҡмVn?`A'qRGE7f}>BŚނ*3$|9VuQۀ}+5͞1%kTڤ|18Ux*%V738 \A&rOP deyܿ>X ?c\%#'q(IfNĴ) endstream endobj 321 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 322 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 323 0 obj << /Length 257 /Filter /FlateDecode >> stream xmJ0'y h[ 'i((ysƙ$;dfjj5u=5mMrPٿf~jg6wW`G*`Z@y`5@N08F  xP f͡HmVJ[\8 )qYTN KJ8L3#ęgDUk-2gB8&%1Dw>vq endstream endobj 324 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥj@@CkB  A GAẸMb/hffӱZ'd?$u{<l(潽x3\h*fTK> stream xڭбJ@?4y1[8O0Z *ښ<>=BKD+f+.yG\4P -Kn;r׼ΥLGrSm `# JT&e 0m?HMF3CP J@#J2 _.N^v2%5+w:gY9Cb)@;@f,BMB~2YGW e endstream endobj 326 0 obj << /Length 257 /Filter /FlateDecode >> stream xuпJ@o"0y!Dr1SZ) ɣQ[X2N[3.脋%?NEav \d^j??^(]_sNs0y("=I 5poIu~ѽv ڧ5F r q/oAz Fx`cο=!)a$ܠkkR:5.̈% endstream endobj 327 0 obj << /Length 219 /Filter /FlateDecode >> stream xڥJ@ Ci X/b ͡PB,M$G#xP .C3;&z8YQ> stream xmN0Fȃ%/~/IQ:F*E"02@bH͏GȘ!s[uY:9˅/|.|U_ݔOZ~̺1/ 2l~||}&ǹ/L'bFzNEؠtX !v$tS2WSK8Zdef-UwN: VBDXMvU=+OD6($8ㇸb+N==BZ!r5B<$gVZ}F=sӘ{~ endstream endobj 329 0 obj << /Length 262 /Filter /FlateDecode >> stream xuJ@O};/I$7 \` A+ RKAE;Gˣ#L2&" _ɚ3.5%LErHk.2J__(\rNorn2 h!P#a]a:x-}bh~mh!?0B~! ?#;CsŨ^JԴIPG^`M !A#`xBo~^}gt tچpYzLG%NC:k>y endstream endobj 333 0 obj << /Length 210 /Filter /FlateDecode >> stream xڕ1PDXl 磈V&&ZY+h G(ˆAB,ٙ}P!#y8ф.fsULԖI%+]'R5w=%1.iFe:o[ xcmrD/+lQa^n%k\h[%~Ҭ5.NnwZb.HhC5~X endstream endobj 334 0 obj << /Length 204 /Filter /FlateDecode >> stream xڕ1@EXL `EHaRK &vp4,- JBg7N @\e(D͡+QT쎜⇬Uz`.d㉻<U&);Q rDQMԱ@a1PıMmc ]y Z ~/:] {>tٴc_> stream x3532Q0P0U0S01S05UH1*21PAKDr.'~PKW4K)YKE!P E@=Č D?%8Hl˂ձC@@.Xe`~Փ+ KK endstream endobj 336 0 obj << /Length 98 /Filter /FlateDecode >> stream x3532Q0P02RеP06P0TH1*2 (Ces<̹=\ %E\N \. ц \. 55jj\=f\ endstream endobj 337 0 obj << /Length 152 /Filter /FlateDecode >> stream x3532Q0P0U0S01S05UH1*21PAKDr.'~PKW4K)YKE!P E`D<> stream x3532Q0P02PеP0P0TH1*22(Cs<̹=\ %E\N \. ц \. 4|H (\=di endstream endobj 339 0 obj << /Length 118 /Filter /FlateDecode >> stream x3532Q0P0VеP06T0TH1*22 (Cds<̹=\ %E\N \. ц \. d {?q=Z@'W /z endstream endobj 340 0 obj << /Length 100 /Filter /FlateDecode >> stream xU=@@ww]YD'J!* BVPd *^QcQ1H-Q1V}uF i6;?@a\2 endstream endobj 341 0 obj << /Length 143 /Filter /FlateDecode >> stream x3532Q0P0P54Q06Q04TH1*24 (s< M=\ %E\N \. ц \. ?aC? ??PՓ+ .q- endstream endobj 342 0 obj << /Length 99 /Filter /FlateDecode >> stream x3532Q0P02F )\\@$2ɹ\N\@.}0PRTʥ(Dry(3773pzrr{ endstream endobj 343 0 obj << /Length 174 /Filter /FlateDecode >> stream x3532Q0P0SеP01U0TH1*2 (Cds<-=\ %E\N \. ц \. @`"j@&~ f0H@L`F؃ ! D4$f6a&I#$l0L  *@'W OF endstream endobj 344 0 obj << /Length 157 /Filter /FlateDecode >> stream xڍ1 1E#ir4;nv +Pj9J2Egh:X!-pBk3 ȔB3 G2E|ܟPvau!w+S!7Yfyfo iƑG>b/N9 endstream endobj 345 0 obj << /Length 113 /Filter /FlateDecode >> stream x3532Q0P0Q0T01W01RH1*@hd Irs{=}JJS ]  b<]C=l q~!nr P endstream endobj 346 0 obj << /Length 103 /Filter /FlateDecode >> stream x3532Q0PP0T01V02UH1*2 (A$s<M≠=}JJS ]  b<]` .WO@.E, endstream endobj 347 0 obj << /Length 125 /Filter /FlateDecode >> stream x3532Q0P04T06R01P03RH1*2(äs<,=\ %E\N \. ц \.  v  S 1? ;\=:] endstream endobj 348 0 obj << /Length 180 /Filter /FlateDecode >> stream x3532Q0P0b 3CCB. HrW01r{*r;8+. ц \. >000`Ad "0 ?@$DA }<H N #u0! \\\Zt endstream endobj 349 0 obj << /Length 279 /Filter /FlateDecode >> stream x}J@H&A'B* NK E;GˣL1fv7//fTЂ*iqI%Ұp{UM+o5ƼWTbǒ'lP~_' DD4 ͆o\享[v{d3 zBRD!t-2f.bamzCξS8̐`.`LcovaW4Uu b譫Tиv7 n{ endstream endobj 350 0 obj << /Length 205 /Filter /FlateDecode >> stream x}ϱ 0[|Fq+ vtr'utPty>JЂVCAn C>)NB<pmkq jZZpTvfJp4A!|ܚRieuݪ,;鷸"Umddgf$/qF+Q+]KC8ptj䐆ŀ "#$ʣN[ywa endstream endobj 351 0 obj << /Length 208 /Filter /FlateDecode >> stream xڍб 0Д[ DZ N⤎S ;!b #wBaj/9A]FG oPjT ߂[|>^Wn\1ڹ^Wöe;>w"ȑbne!'pΈlr1wE@vؒi`b5olOkuV lL$=o endstream endobj 352 0 obj << /Length 244 /Filter /FlateDecode >> stream xڭбN0 `:TG_ҖpCL &`J~> Uq,ĉ_]"hKZ_=n ; Z0+5RaK~5C%'>;*\ $U+u+}e'}^ܧ_"dj_V˿*'1S9}q2.Wl9ɒCТfeDE3vgZyٴfȅ endstream endobj 353 0 obj << /Length 200 /Filter /FlateDecode >> stream xڭб 0H-} LSZ N⤎Q;\Oh 䃻 jh1W/qz1pAf@Pki| }Qa|cpÖqA# KN2lɠw:RE99[CO#/Jǎmݐg'7ΐl9gXɣ endstream endobj 354 0 obj << /Length 158 /Filter /FlateDecode >> stream x3532Q0P0bK3CCB.3 I$r9yr+q{E=}JJS|hCX.O@D~DBD00H2? Iy0i߀ZNĥf2TV? r > endstream endobj 355 0 obj << /Length 153 /Filter /FlateDecode >> stream x3532Q0P0b 3CCB. HrW01r{*r;8+. ц \. A=e?0a``'d~"$}6$.0hO$8,'W k[8 endstream endobj 356 0 obj << /Length 241 /Filter /FlateDecode >> stream xڝ1N@4M/R.JHJ t(>BqLM󊝑v*.s|Q傷}-1e&oﴪlؖdL_;2;.Ȭ5&r2x:J缮4U3izdS!a1O*.}'%6+_%tlsp,)9SamG{Kj>t{}Ȫ}M zG endstream endobj 357 0 obj << /Length 124 /Filter /FlateDecode >> stream x3532Q0P0bK3CCB.3 I$r9yr+q{E=}JJS|hCX.O?$DC=9Pn I.WO@.^4 endstream endobj 358 0 obj << /Length 115 /Filter /FlateDecode >> stream x3532Q0Pb3CCB.cS I$r9yr+r{E=}JJS|hCX.O7@s ?F?H\=u endstream endobj 359 0 obj << /Length 128 /Filter /FlateDecode >> stream x3532Q0P0b 3CCB. HrW01r{*r;8+. ц \. 000LC"A"YFsĐ@$R@?,Փ+ V~ endstream endobj 360 0 obj << /Length 213 /Filter /FlateDecode >> stream xڭб 0-}{O`@U8 kTfИXi${NRuZ:AW` D{JPhݯ=RO39ǰOX",@,scm$61/Vq?*{b\ Sg% nQ6Zi/Zt"Md!N r endstream endobj 361 0 obj << /Length 199 /Filter /FlateDecode >> stream xe1@5&pj,$&ZY+hGqblGN}> stream x10gLxжXX &v08Fg<G <`v2$)"SUr¢8((kR(J:)g%A[=D:4Lhn&~^i/c.ĭn,c endstream endobj 363 0 obj << /Length 197 /Filter /FlateDecode >> stream xڽ @ p؞:jotr'utPtnG#tt(K>ȟK'S7xp> stream xڥϽ 0H>AAA9>ZL@3wS̰o8xp|)30-l1Y2rf3ǝtC)"l˒PK^QtJ*X endstream endobj 365 0 obj << /Length 259 /Filter /FlateDecode >> stream xuJ@'LyMr.'BBNK Eኃ()2dოgw\nZe+tyiZtW?zEN>?^_K^  )t"Y33BsrA㙢ƑJF :jD.$ &0X@ X {i6zCEPL> VlqZ`I'<EHf|F[(<|,ޛ endstream endobj 366 0 obj << /Length 137 /Filter /FlateDecode >> stream x3532Q0P0bK3CCB.3 I$r9yr+q{E=}JJS|hCX.O@DH2` #d?# rzrrӄ endstream endobj 367 0 obj << /Length 190 /Filter /FlateDecode >> stream x1@EXL DhI)L0VjiQ8%q/a67?h!!Jl%r|8IuNW 6{C6kl< l&E.6*NT+nZ!D~/!rG(Q @53`cɭRN=B[2r\U;~W) endstream endobj 368 0 obj << /Length 225 /Filter /FlateDecode >> stream x}1n0 Ed0EG0/ ԡȔdР7 dPK#O'O *k!XnKVz>uөg^3e݋}N7Oo#XnkR 0,H"`nX,2d;F)ԃ"G ٦)eC$9َ}r9H>Gime2bֿɯꢻNǀf endstream endobj 369 0 obj << /Length 223 /Filter /FlateDecode >> stream xڭ=0 S1T#4T HbF(=BN1#2|QlSL``: Ҍ f}a^cstz=^NЀ`|U|+Q܏JfL5IbG|86*Um%1x(VDFN{ܙmw^{Ǜ)5xu Vϗr endstream endobj 370 0 obj << /Length 208 /Filter /FlateDecode >> stream xڕ;n14s5,r%[D ")S$"r4Gp`(RF}?i7> stream xڥ1N@Y478n- T)UL(ԛ,IdUq n#t-l#k&ĖH endstream endobj 372 0 obj << /Length 225 /Filter /FlateDecode >> stream xu1N0E49BM,)@T@"萒(9K. #3?pW=w<~(ё6[;ϝFOْSxϟ_dw7qB#h%^J"s-,&ï& M ugTi: d)ȧֿHee_3 Y}ETԼ4rs$jYh%t;#k} endstream endobj 373 0 obj << /Length 166 /Filter /FlateDecode >> stream xŎ1 @EH!%q1[ZYPUx!㎝Vd7<[W-SÉ@fޒYFLXr;)svdJ9{ %_@"-0*rࡐZ'pGb4"mz!IoMSK?7W endstream endobj 374 0 obj << /Length 283 /Filter /FlateDecode >> stream x}J@Hfa4]<Vr YlWX `D9-4oɿ3eP=յj隣{^u\\:ݙ{z|bu~*.r冻D6 !#"%I\(3}Cc{mPD߄%:N4@&qTDMK2v ;Q9(nhK Idvd="Т>y &ɹf{[ӎ N4:58x'_'/t endstream endobj 375 0 obj << /Length 178 /Filter /FlateDecode >> stream x= @ L2'pH-,J--ףy2ŒmkO1rX54])/ UԎ URvL,=&dk6>s]PFX`* tB &66aQְsdmN|*38w ]ZZ錀 endstream endobj 376 0 obj << /Length 141 /Filter /FlateDecode >> stream x3532Q0PbS3#CB.c3 I$r9yr+q{E=}JJS ]  b<]0000PX?Po?=``D xr "cn endstream endobj 377 0 obj << /Length 231 /Filter /FlateDecode >> stream xڭοJ@=R#d$G \%'BBCܣ796[D@~9nֺLҮFR\3dQֽTvRT>o_Z_j7zh}+F e>XLΙ垞tQ8rnl`l`Kv❷ xuw0$nz_,ǟM 7ݲ]X`DtqY/W ^ endstream endobj 378 0 obj << /Length 127 /Filter /FlateDecode >> stream x3532Q0P0b33CCB.cK I$r9yr+[r{E=}JJS|hCX.Oc`'\{0 ?0%\=Rm endstream endobj 379 0 obj << /Length 175 /Filter /FlateDecode >> stream x1@O75pD ,ZZh:JD<@J ˆbb%3򎃮i0f3c3n[6DM8eŠ8NDRrpEEVn4TKUT|(UBMҸHȿ(? endstream endobj 380 0 obj << /Length 170 /Filter /FlateDecode >> stream x1 P t*d |BB`A'qRGE> stream xڕ=@ #0e't$$RheaB5pJ 6&Wd^狔cy9ƹjzPRei.;-+RGN R[&U|H-+֤|Z3/PDx"_  {MءlQ5򃠳RkD0qM]Is Fk,Uel m*:9n endstream endobj 382 0 obj << /Length 235 /Filter /FlateDecode >> stream xڵ1N0EEirqd":K" * D ra8 j$\<̟|Ҷ9~JSJ/q]Ngr |y@T2bH!iY)0DI~B& #;NvWV #tb9w?1&쵹+'KUwι9mkQڎHQ*mAi7t-} endstream endobj 383 0 obj << /Length 230 /Filter /FlateDecode >> stream xڵ=n@4@XZDGEJJ "9G k*U4hgޛq1*=,y\-@~jݜ'~Ӽ"~Jnm}r3;r^pAՒELZ[jCm`&H[d+RAv MFM7#zBL#PoNmz'[z >YgY$jcƛqH"WڔVU!, endstream endobj 384 0 obj << /Length 172 /Filter /FlateDecode >> stream xڽα 0@εIG882:Ht>85g<G5oHYc\lːIN͌Od>"YJq&S"EE\-u׋p*X&.EZ7-}K7-^D_~417yi endstream endobj 385 0 obj << /Length 227 /Filter /FlateDecode >> stream xM=N0j K.Yo?)@[%h(pGH"1&+Ai4絻RF.x/~-O_yUì o[^fv'^TGnBe*TRUCQf4.,B"tF) F#a~̇ Lͥ2~"1e`9Cf1YD5- VM4kcЇA-ʭ endstream endobj 386 0 obj << /Length 177 /Filter /FlateDecode >> stream xڭб 0+ 4%q- ftr'>#t =/u AIn(ƚ!kxB%N_C!Q-$Ft9_Ռ$h+3;tA|y=8ނM?`|ҋ-xI ,vQOzxE:Vv܄#Jsk|jVmx endstream endobj 387 0 obj << /Length 165 /Filter /FlateDecode >> stream xϱ 0]r cptBp" hX ;;rpcHQT2kv%d‚ϧ˞L%SrPE^ />" _*?_^ӗw/ķ=yD-L@@+z]l endstream endobj 388 0 obj << /Length 201 /Filter /FlateDecode >> stream x]α0# $XJD1D'㤎]GQx!Ԥ%Coƒb Ly۵-(v$S+NQkg͂g\:]:r9쒮 < د׼C|V{ˀʠB6נ?b}gk{[[\2e endstream endobj 389 0 obj << /Length 251 /Filter /FlateDecode >> stream x]1N@б\D&Gع؎HT+  * ()@*>Vu,7O?_f竂RlSqAENObQ4xz|M=%&>ǤgL6aV[2(̭v 9LJt'XX=YjUI+.~ЉgPws+CF`CHeD%;#7R NJCwX}xU~ endstream endobj 390 0 obj << /Length 223 /Filter /FlateDecode >> stream xڥ@Ba2 .HK^rh(<%anY .l;kXㄓ%jP89Ssߤ/]'R5-4GGʷ _* R#>^SoVAԘ5auHKxcO(, m chr >O k>:p6gȹGN;­z endstream endobj 391 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532Q0P04&& fF )\\  ,ɥ`l̥U()*Mw pV0wQ6T0tQ``|F ~8!"AD=$A= HԱ5 ?h .WO@.h endstream endobj 392 0 obj << /Length 234 /Filter /FlateDecode >> stream x}j0h0G=Ae'S!M  ԡtJ2vHhʏG#x`t/jJ)TBuuu|F6+9U|Eۖݳ%C̲kqf}N^*)_ %"י2S]`GNMOtdf@C)  (RX%&aȁbrq7jzor0qy42LXC#y|Pov} endstream endobj 393 0 obj << /Length 261 /Filter /FlateDecode >> stream x]=N@ !䇰4HE"T+*Ar!ehYS|٣޼ijjhk62hs6/|NXj,wz~Gga,d(cE.q  ~@1Bn+~Pcѩ*)&e7RcD5V_BV!1 #ctiCK*f ӱ`=k@o{|_ᅪ endstream endobj 394 0 obj << /Length 203 /Filter /FlateDecode >> stream xڭ1 0y'0mV Nī&;ƼtxA?Y> stream xڭбJ1YXf[ x{wVbuZZ(ںytG2E8s J#L2ìbSG+t48zr}Gze=k)o-=8qRs+$W89ps q+h<d"4IzrP?2BFRN"*:O^2 ixΝ)5]@\tDXs&݈w[! endstream endobj 396 0 obj << /Length 262 /Filter /FlateDecode >> stream xm1N0E i @%ҲH@m (9,+c7k4V^]#O//~c{~zp#-yn9p"H:QiST.*NU2JUrAd S\1V`"iUǬ(ǯ3&aFEd+B @ogh&ùJe.bA.VFN[Y-bķ? endstream endobj 397 0 obj << /Length 199 /Filter /FlateDecode >> stream xڝϱ0[|VI;`A<#0:ך@, mD)Π90 R |J_cz<]Pp+0ځΨT13z5W/j'Z|V7J!̫Hi\LP &2]p';5صB3i}kXok endstream endobj 398 0 obj << /Length 256 /Filter /FlateDecode >> stream xڍN0`?BZcR$2 Ā:c":;G#d8.H7￵QE֖܎5[,Z{P%B܉RX (#:@PLPQgh 4?'jpB|F!{Y\i~0~Z6xfqQeNe7 1=ŧď\!Ɯ^3yN9/} m endstream endobj 399 0 obj << /Length 261 /Filter /FlateDecode >> stream xm1N0ЉRXr#d.I춑E"TjAms%Gp"ˊEzmwխ^ttїξ۾N77m}k[fϏWﯵA:mxP)E*"(@J 1UT-Ru* sb8/D"D"?p"N. ˰R+Wv#ffzp9vNs# SS5Aތj endstream endobj 403 0 obj << /Length 96 /Filter /FlateDecode >> stream x3636Q0P0T0P06T02WH1*2 (XB$s<,=BIQi*S!BA,\\\5^ endstream endobj 404 0 obj << /Length 187 /Filter /FlateDecode >> stream x3332Q0P0bSKsCB.S3 I$r9yr+q{E=}JJS ]  b<] 9?~0a``cR؁:5S`)`R(C^ yP:5>Փ+ c endstream endobj 405 0 obj << /Length 291 /Filter /FlateDecode >> stream xڍ1j0a  jR'YbHSB;u(ڎZڭؾI=JIqT`$/VI~k,sOxym ɓYSH{dsf=;#ҍkTNUD38L41裵>+*bT)?d C~yE}QKZq<8ZTb+Ώ1ܼn NqA(F.gEㅸ$ > stream xŒ=N@ M!$)fE"T (AKrSXؓ,=S$_> stream x3731R0P0b3S3 CB.3rAɹ\N\ f\@Q.}O_T.}gC.}hCX.O@>`AJ3Biz(m4?f 43+F3| @3hf4;`+hz~v1HiP~ r ϐ endstream endobj 408 0 obj << /Length 104 /Filter /FlateDecode >> stream x3137R0P0aK3 CB.cS I$r9yr+r{E=}JJS ]  b<]lQ3\=i% endstream endobj 409 0 obj << /Length 251 /Filter /FlateDecode >> stream xڭ1n0: w֠4YDH!d̐h9 G`j1RaKd}22yPD zIP"eDݓ̛ ŖdbQQdoiSEN܍WƩuJ3dkYAW fuM<7'Mn݀ASwMR \So'%uvrCh2<>\+#_2ocibBר?i h endstream endobj 410 0 obj << /Length 305 /Filter /FlateDecode >> stream xmJPO"pyfaa]Vbv ɣQ)#\83w.x9zuhI5t^Sҽj-%]2on۸+n$>?^];z,i<H90w{1c]< h=Q=6 zh,݌$d1b׆ا#XA}ăiM֩S-dpAí$ r0cGݑ"y*\'5 К?)ԜhVVQnܽ endstream endobj 411 0 obj << /Length 162 /Filter /FlateDecode >> stream x37׳4T0P0bs3sCB.3K I$r9yr+Yr{E=}JJS ]ry(D11o``!`G0 5#Fʨ e02`'\\\T. endstream endobj 412 0 obj << /Length 232 /Filter /FlateDecode >> stream x}ϽN0Jl;Ta?pۜ7kBjikVb7/;8jC'_o6RsS-3[&0`Q0|T*M *pӌ_2 $Lo1ÔJc4|ݜ~82;eSz)<8`͊N9y{2hl endstream endobj 413 0 obj << /Length 214 /Filter /FlateDecode >> stream xڭ1 @E'l&G\@7E1#BBBQRgEv>'S &3!3c4#NqRdn uS:]L> stream x1 0yд*N`A'qRGEx 7бC=q(8 vي1&]lwqy,N1y 6n_pa8&:2)љBztUUN+IZ^>j$qIMMR'*mse cL@I 9Lwni endstream endobj 415 0 obj << /Length 226 /Filter /FlateDecode >> stream xu=n@gbi|eYGH@TDjh> X VyyD%JC80/*v[ dvջ\/_Gvxv+١hJʞ2Ն(W FOFFl@&%`}b zdeL,>2~dgygL[41Ƕ hKyJ BasQ D endstream endobj 416 0 obj << /Length 167 /Filter /FlateDecode >> stream x3632V0PacsCB.cK I$r9yr+[r{E=}JJS ]  b<]700P?aA<$AD0H0 A6b#4o@ endstream endobj 417 0 obj << /Length 281 /Filter /FlateDecode >> stream xڕ=N0’!sHE"T ()@`)<؋$'{Iן5-5tA-ukZw75oZOv3RpC/^Rk-=ԣ/qZqg XxqdWjIpnIUi+W%KK"5-CiK #;A58E, k΢SvYlK S^`%*#G4dPɲ1:^.eiiC%>+^ ~ endstream endobj 418 0 obj << /Length 167 /Filter /FlateDecode >> stream x3332Q0Pa3 TH1*25\Dr.'~)PKW4K)YKE!P EObPFS@ >? uBP?(lԁD(.WO@.Jm endstream endobj 419 0 obj << /Length 131 /Filter /FlateDecode >> stream x3634R0P0b#KsCB.#1s<L=\ %E\N \. ц \. 5 7?D # P?P1?H{pzrrD endstream endobj 420 0 obj << /Length 107 /Filter /FlateDecode >> stream x3634R0P0bc3KCB.#S I$r9yr+r{E=}JJS ]  b<]0q7c.WO@.S endstream endobj 421 0 obj << /Length 209 /Filter /FlateDecode >> stream x? P C!;Bs_ZA,T;:9::( n>'GoqQzJcߗdڍZE5eujh}OSXcu4vB{%gQh@&lJ2DxbΪUdK 9T`P+XU.> stream x3332Q0Pa3 ebUej 䃹 \.'O.pSS.}(BIQi*S!BA,C}?7T10@ 6P?|'W [ endstream endobj 423 0 obj << /Length 213 /Filter /FlateDecode >> stream xڥ1 P #B[SV N⤎h=JбC1&E\|>?dј>c &tA$GOX4 "4 %]/#d5#MJ[h6%y=\0`..Y尀AK<@\@Q#6-WQwu;Sw ?kBKn&j״1a>7k.sk|]ŏf endstream endobj 424 0 obj << /Length 227 /Filter /FlateDecode >> stream xڵѱjAY,i|tNWbe!V&e->B|-XDTX>euڝLJ+Hޗ,ה?8G۹)ϲYo؎^$e;E*ɒPS݁T+(5OT@u%BMwF=poH-eua~nl]Tȇ`1)6AbXi DA O  endstream endobj 425 0 obj << /Length 237 /Filter /FlateDecode >> stream xڵѽN02Do@1-`b8o+ yV?0N0X?lپ> stream x3137U0P0bcSCB.cK I$r9yr+[r{E=}JJS ]  b<]oH?1"~`? L7?bl'W n endstream endobj 427 0 obj << /Length 223 /Filter /FlateDecode >> stream xE1N@ E?b%790;"E"T (AKq%GH"4o4v]_+^sk{w6[{T^o(=fKdJ~|Q_stgj8UR:EZ ʷcVG@VjU'3rع: Fg u1vM#bj2;4@* endstream endobj 428 0 obj << /Length 173 /Filter /FlateDecode >> stream x3135S0P0R5T0P03VH1*26 (@ds<M=\ %E\N \. ц \. Xv8'=3,X w'C=`?`A<7@ ? r  ,t endstream endobj 429 0 obj << /Length 166 /Filter /FlateDecode >> stream x+@i*6#06&$  (D@@/G[58"e9P!Zj Z)%eʡ^Rv3:N[|LuM+C]MD ! a9PIcУd/-x>o;w*!aVB78\ d endstream endobj 430 0 obj << /Length 216 /Filter /FlateDecode >> stream x}=j` `-A䳋M)PH !SڱCC |'ꫯo4J$QLS<Üh'+v 3v/ز^e`7O$e7e*Ɋ*#3Qs;*ؗ /@ih#2+1@[|iơy(sG=ַ G#ʳpH endstream endobj 431 0 obj << /Length 276 /Filter /FlateDecode >> stream xڍJ@ 970&X9z l o=3wR<,gN1SZqBxyy*N}8_Ӆz7\-HDHC!ڐ%ZCƫ%\:Pm)(0#tB%S@=ERPGK(b'$GWP$d9Gmj9h m@Mi^Hv:vP{*j1uE!7blEDna^ԟ(¯n  endstream endobj 432 0 obj << /Length 267 /Filter /FlateDecode >> stream x}ϽJ@Rn7p h~(b`]VbB !y&)Sdw̙SRqKu&Zso\iLs9 gRiή1笹ַRpBGn6b-eFGZ0Ucc^pG))$)Y= Ư㗥itjuGj wAlhA_Bg6UT2u2Ho^_˄>> endstream endobj 433 0 obj << /Length 126 /Filter /FlateDecode >> stream x3530T0Pb 3SCB.c I$r9yr+[p{E=}JJS ]ry(000```` H0@,0%#zl'W  endstream endobj 434 0 obj << /Length 266 /Filter /FlateDecode >> stream xmбN0|G/qCyfίF0t^ߟlߣO;O$9 1!rHdڈ4f&pBl9{Ð68,ִ/vKqbҷ+tي%+NC7"EB8сVP #RI*h~j:Rᕤ[Il`Φʗ'& endstream endobj 435 0 obj << /Length 258 /Filter /FlateDecode >> stream xڅN` {@ $g%^Ltr0NzGh< @= icu]RHRb)U?XHUw>5?1r~geΛ{p~z< 7g!ґRUcR;Q2QP:X Ja2m0{tƔyl[J8 XϠ-AvHxiOzMYSgčV6oGbǝ2ClčLU[ϟ]~(6?d endstream endobj 436 0 obj << /Length 216 /Filter /FlateDecode >> stream xڭбjP r7DpI *NJ'utP-4|-7_խmzޏs/{Ck#ґS]ŲdbkFR̋&1 {*|ZL4XL_m̛3ul󇚴] I@BI /s'sABNjAOB/#&-'5o#Rԑ endstream endobj 437 0 obj << /Length 253 /Filter /FlateDecode >> stream xڥ1N0 `?uGx^:bF4G  Gءj]&`>EIc;Gy:r>fG}=~@{M;vyJn-2ЀL]_~EI-jV8Yz&? }Bs훃$ShjMM|wSSYN-Nm8NZT2f5JD 2Mr[μ̐51= x_d endstream endobj 438 0 obj << /Length 214 /Filter /FlateDecode >> stream xڥ= @ )f.@LVbh)SuvVqvF? "j )iØ 1 Q%S:N[TِT#Zr @gϽiKs13޴镻pabgZ]  7SDA ѷ屍ݼ3fR(Zt~sW/89>? endstream endobj 442 0 obj << /Length 95 /Filter /FlateDecode >> stream x353S0P0R02S01Q0PH1*21 (Ads<L =\ %E\N @QhX.O @9HS endstream endobj 443 0 obj << /Length 223 /Filter /FlateDecode >> stream x퓱@ 8tm$ &:9'ut  ij!09䒯r№cFx3MP|Nΐdlq!XrlA#)" L#cS'^mr^Lr+¸J9q@\JZ!%ts7y"O&$gj&7]tgh,B} l = endstream endobj 444 0 obj << /Length 382 /Filter /FlateDecode >> stream xڝ1N0D,yJȀb J(> U)",eUM~VJ^R, bm~|}gOvc;^|}~|p#$˷YU[LU7KeYF-1zVt qV9-Ti̬jcDG:U#F)R]"X )h[7(RfRd Vi%(E:8A}$](E7URhw.BL^dx')z TT2%AaΕ[Q/a`D a¢jBLx5 J%aQ4>TɨW;N˹IA 0!@Cn+~?]T endstream endobj 445 0 obj << /Length 402 /Filter /FlateDecode >> stream xՔN@l6< 5wy&RheaBh< @9aY]H$;;3;y~ә볍γ-ݙ~իowFߛqEJVW_~xVB*=\g:Ի@]V}JU! endstream endobj 446 0 obj << /Length 200 /Filter /FlateDecode >> stream xڳ432Q0P0bKCK CB. 1s<,L=\ %E\N \. ц \. ᠁L$<Ɏ`2" Hz)ɏNɌHH3 @$+G0L0&D2\d 9iĄQ&$B3L.WO@.up endstream endobj 447 0 obj << /Length 107 /Filter /FlateDecode >> stream x3533V0P0acK CB.s I$r9yr+s{E=}JJS ]  b<]?\$ ( !.WO@.!8 endstream endobj 448 0 obj << /Length 328 /Filter /FlateDecode >> stream xԱN@%[L#ܼO"9D ,Zx4°96 dJcK<:A_ೂwPYn3Tm>ªެ^ Hztu{ 5>(\vVIWL-{Fv/@^t R!-\9J]5$>Wf/+tgL?lle"h elPTO*@CHEVSt8eT'5> stream x}=NPLJPwlV$HaRK ֏xQ8³Äw>7kU:YӍR=TYl-{?]#ފE\חGQT%Ty'"" D%ВdЀ(0Z@5QVD5Ǡ}۱(et"+Fr$ ; BI~鞜1PW!)fh=h۩﨏5`"!&7]kJZ.Yo'd-&$c%4>Cf~Ml3EHL1f XB ].֗0IAYeUÆ1:iCH_²Sq#F mnw',ڻ)8oĵkc endstream endobj 450 0 obj << /Length 192 /Filter /FlateDecode >> stream xԱ P# YztT\`955DS56Ih>JxUZG`/Wp€zeX]'d =dE,zE d1m&19XZHKնo ㇒xdflw4u VP|u+Ӿ0xZA7\a^J( endstream endobj 451 0 obj << /Length 308 /Filter /FlateDecode >> stream xڥ1N@gCA2 G`.@lI|&Rhea|x <Ć0̲ϼDmd`ggCګT״}Iz>\|ʼn|Ƣ=,VgGTaˊ+lvuLC! xr~`]T VIm o0/m+H-8٠HŴ̃%'b eA lR(~ FYtG%4xڂ~V *L ^TjCyĺ=LKg 9鏀-uO endstream endobj 452 0 obj << /Length 274 /Filter /FlateDecode >> stream xڽ1N0E"4>BHح,-D $(PR%>Z#l"WAg}{+nǚ^يXq{NiQy͖K9TꞺ=(te!LJBzpLa'=0s EsB5qgZoVVPJ}!J,D;'^Ezdg|F WѮ9!!9&g1#&$| 3fkj`GsA?M[ũt }gz endstream endobj 453 0 obj << /Length 271 /Filter /FlateDecode >> stream xұj@ 3 Z+4fHS@:u(hyD оY~wW!7˩]%vβ˷<#Z qMUѨL྄Gc endstream endobj 454 0 obj << /Length 275 /Filter /FlateDecode >> stream xڍj0 e2hCI PhS۱CCZJf endstream endobj 455 0 obj << /Length 191 /Filter /FlateDecode >> stream x313V0P0bS CCCB.SJrW05 s{*r;8+. ц \. @H2j1TH1P(y8gJ1R `JL1Нg|lG'W  endstream endobj 456 0 obj << /Length 369 /Filter /FlateDecode >> stream xڭN0/K~H*J#HHd@uFL x?GVn*Pb;]V-YsZx]XDsV4a]4ÍzxR-DQ nŰQhk$"THtPpA|ANmCb=\I*WEI?AFc.gTET{H~?d&>CKF (,@aR7C;aʀ a Gi11X"bW t>XV MNq2вI3 :f=>;3 s\raj.YI]l!fq5; „sp endstream endobj 457 0 obj << /Length 210 /Filter /FlateDecode >> stream xڳ0S0P0b cCCB.ssJrW07 s{*r;8+r(D*ry(0o`Ie1 Xp( Ube0`V`Y1b`X@=p8 h=?zzu/a50,`t ih endstream endobj 458 0 obj << /Length 146 /Filter /FlateDecode >> stream x31V0P0bcKCCCB.cb%r9yr+p{=}JJS|hCX.O ?D PB1X/y`i؁A0za?J.WO@.3 endstream endobj 459 0 obj << /Length 111 /Filter /FlateDecode >> stream x31V0P0aCCB.cSJrW06 s{*r;8+r(D*ry(0o`&A(1` r .s endstream endobj 460 0 obj << /Length 258 /Filter /FlateDecode >> stream xӿJ@+ }s8@88O0X`e,,ME}I @Xabfn?w^ͧ{]]"kvfř{~zlu~]+\kv2HɎY@КѩY`;zjeRZ58J$}¤A/yB$Uީ>?ï~_8zѝn7wEf7a9j=)BVM endstream endobj 461 0 obj << /Length 198 /Filter /FlateDecode >> stream xұ @ ДBE j;:9: * nS:vc!K.!K| %)E!֒639-ij)UT US*]@cfWl:%uW+~Ž> stream xڽN0utKʼnnJ+ &T9}>Jc(;۲,Ȑ|>.Uu(Gko+.h+u #4Ox?wh6tRdD gft: sQģ_zm>rU"Q-Ø whJ"5v[\nil4r?:XTG2oJI~E⁦$lt?,m/p{" endstream endobj 463 0 obj << /Length 285 /Filter /FlateDecode >> stream xҽN0`W"GȽrON" & ㊁GiŏCgmfȈb}E)^yEd^Mqz`V|IƮ,on>f>A@BN j]D;hH Q1Q󍊶e7F8XxiVWE} ?r^ ;jfԠӪUX{#[t屿-YպvZmc|y'˿ \p [a endstream endobj 464 0 obj << /Length 296 /Filter /FlateDecode >> stream xӱN@PL#0/g<)L0VjiWM7\qaYO JcC,LvHsтst=晬e&'IyJO,ώ(dE)ͮ\"UBN;ӁFɮZ,,i* CdT@b{uY*$ګ(uoGyCc^ю췻汝a7K* yy/ %rp`%KA*%Ox\W endstream endobj 465 0 obj << /Length 184 /Filter /FlateDecode >> stream xѽ 0-y'06 ftr'uTܚGQ;祝\݃~ +0.0xH:: eOPZPwA%ޮ#r5 )&;3D"Z*rLD^cj&Uؑˈ^t;;jUxa|t-?>W`na o? endstream endobj 466 0 obj << /Length 296 /Filter /FlateDecode >> stream x]1N0E"\)sHR4HE"TjA-G\0hŒO?h,5yK%k5k(2Uof7Էrm>?^M{zjy6Þ1 (+bv`柀UJ"~# N>t%%1!*0jQAzj:ޖ> stream x= @ )2(I#XQr)uv! jc_13{b-lHlH\J@2$]kH)F1!AtG "Ù`*Coz_kjSӵrgFOT&.Y<,I(d&t^Pkԏ-b0P0+f endstream endobj 468 0 obj << /Length 199 /Filter /FlateDecode >> stream x= @ ir &H~@` A+ RK Ex )SHY,{| iP2(mc)}"lǨR.ft:w9X._nY#4RFH}Uʨ|#yAmܚ[+wcw蟒/sk2WVr @T" endstream endobj 469 0 obj << /Length 293 /Filter /FlateDecode >> stream xڍбJ@ W#d^@hs BB>y)l ]>vϞ$x f8? Ky1yvaC,肗!/&&  c +c,drP ,fӖO|ٌxHv'T7eX _%~5(PYQTiVw*I]ڪ$u3SXmn'ωS5^%%^dۨ^>AB e~OD3j'Pj*[N^soN! endstream endobj 470 0 obj << /Length 370 /Filter /FlateDecode >> stream xڝұJ@YR#d_@E),J--˂/+_#֙l XowvYcc3?4V?ip97ٰwήLg縮¼<>lyybN͍5.O/B{7UD) R=8[Q+Vj3ZIFuv[H1ZV'呢Q jI X5kKHH0ʱ> stream xڍҽN0:TG_%tR$2 Ā[dc%oO"]\LK}ɽ(@"6 Ub)TelΣVN֎X%ҲFV8!TZ^՞j#{)'F2N4jvQWQڱ/";6lC4*f}X `aUca7Pl*L5L> stream x373Q0P04ff & )\\@ IrW05 s{*r;8+r(D*ry(0!<S;SAX~0aT=(r * endstream endobj 473 0 obj << /Length 344 /Filter /FlateDecode >> stream xڕұN02DGR҅HHd@1#f(yw+R:Ш_e{X6\w ux]i_^cشmaeCxZPp)"b~8yxɘLXbj45NP .s>* ؈)Kr)׉4n,I4x\sf{4RQV:+uYPVbyI9Y4~جId2qd2+bx&u zIzA\D3|xwP@i-hJN* 7}?: endstream endobj 474 0 obj << /Length 348 /Filter /FlateDecode >> stream xڝ=N0&G/٠UV[EZHPQ *A-GR<_BO<nw P+~^ J n¾ww]ʭo1.|}~p S6Ϯ>cL3:'V<Z^O1{ ֚JDR‚& L.Zȴޒ?:3D 5 ϭ00322 d:ɨ<^˫2{U|vRMThD<<hU錩& (QX.]8񐐍p3d|+}e'C)ij'{=Lp. endstream endobj 475 0 obj << /Length 252 /Filter /FlateDecode >> stream xұN0Z,G=NDմK"E"L 02*[(y"3$9wYv1Ǔ]jO)i}2 KX>^ɯo7CɎ->*̤޾C0X',Phv@*(@w@+000@u h8rN[l@*( F``R_Og+誤;z endstream endobj 476 0 obj << /Length 328 /Filter /FlateDecode >> stream xұJ@YR!D +PGG&ŒufgT8Qju492iM4~Me6^{]^)<=>r}~lj]nUmko(O@ gwt(Z NG :ri_ќb%6'Uo)<`/2yI3"oEcQمgRrlM'}9HyHr/͉'cLܓdNq2;S-5vS&{/J3mRy'm$ endstream endobj 480 0 obj << /Length 141 /Filter /FlateDecode >> stream x363S0P04P52V"CCCB.C# L.9ɓK?\ЈK(PRTʥ`ȥm` `P0C  Ȱ! 0`< `r W( endstream endobj 481 0 obj << /Length 347 /Filter /FlateDecode >> stream xӽJ@ )Ӥ}EVSZ]!Vji(7  Orq|63`gO]!{-d> 9\d% c| Iq"!Y8O`Zƶ֌IRumnYuvLb\d_H׾\ƂTH3 I-sƫIaMUZRl,TʧXIۿa4Te* r;־<'l(u^ф W˝XÔ4ļ:Obn<*ߙ/nBn&_^ZV(,toJʤXXK endstream endobj 482 0 obj << /Length 160 /Filter /FlateDecode >> stream x3734W0P0a3 #CB.SK I$r9yr+Zr{E=}JJS ]  b<]S  Q~h8hv݀JPJCJz - xh.WO@.p endstream endobj 483 0 obj << /Length 316 /Filter /FlateDecode >> stream xœN0 }>BЖ^*D$n@L(} I4!ϯo.J]TW#*oy|xK%z.x@GF D[,e@2Y]d=86jh֠f|5gNÓYv?NWJ)^xby LMIGUJGo'KE`mz%5q37]q$AvuD B$'$~ endstream endobj 484 0 obj << /Length 253 /Filter /FlateDecode >> stream x}J0 9`^@輀e͢ ɃxR|> stream xՐJ@'KޠI  ēzTdh(y=F]lvAg.rS}g9+YUײݼ<-璱ZM&-W = I?(wta@.(BDa 4`j5,DeDIs_[_ +Θm$@ޑ i xu%2qi֥/+^' endstream endobj 486 0 obj << /Length 230 /Filter /FlateDecode >> stream xڭ@'l&o`MF,@S^uX`}}}+Sg6ػW33_f8'3]G4fnP)P/XF,|Q׫OQiSfNIس @lUlhmt 3OV GMwڰMmps$r1'RVIƐ4 9{ qf"1w{4ï}fc endstream endobj 487 0 obj << /Length 236 /Filter /FlateDecode >> stream xڍбJ@H0MMa!L!heqX偊>>>–WqƋJd횳7Ӗ9wK~j镼pGSZ֒dլMldPdg߆cl?MY'G-IXE&SbDof{ jp endstream endobj 488 0 obj << /Length 130 /Filter /FlateDecode >> stream x363S0P0b#s CB.## I$r9yr+q{E=}JJS ]  b<]?00``E@Yr?H? #.WO@.6 \ endstream endobj 489 0 obj << /Length 170 /Filter /FlateDecode >> stream xϱ 0 ): I}> stream xڭ0KHnB&N$Ltr0NUx4Gpd &&߯}j>]b UnBIJ9]! BkA > td# # :ګ^Ԅ/B/ (/)} f>,E,r3/FדG}oI\2i6C=,c1ҭ5yVvӲ{ endstream endobj 491 0 obj << /Length 167 /Filter /FlateDecode >> stream x3132W0P0aCS#CB.c3 I$r9yr+q{E=}JJS ]  b<]01?GF  ?0I@ `L0 " fsh'W c endstream endobj 492 0 obj << /Length 168 /Filter /FlateDecode >> stream x3132W0P0R5T0P07QH1*26 (Bds<M=\ %E\N \. ц \. ~TBNÉzH07ȃpI("0@"L|`z?В?r ~'W Bf endstream endobj 493 0 obj << /Length 180 /Filter /FlateDecode >> stream x3332S0P0Q5T0T05RH1*25 (Cds<LM=\ %E\N \. ц \. 0TH1;Ŏ!P d=%P^@{xH1`oR$`(rzrr;7 endstream endobj 494 0 obj << /Length 225 /Filter /FlateDecode >> stream x͑1@EXL (HHaRK v9G$8KDK7d#ɥ!M|::xǢMSGug c4ZV~B+\ωG`2` =n@+JV3AcfhFn ] 3|V_,v>l-Odp8뺭SU^*;]2" >e endstream endobj 495 0 obj << /Length 293 /Filter /FlateDecode >> stream xu1J@7Lbs3'0 fWL!XEa !ser%{Fccf?df8].|iKfׅ,ӫY&Ue5y}k??_L^PK;"Jbd([TOnO:PvS2PJ ~#݅w;14ZK-~-΋3z&ۣd*ިALʯR 5  Z0D+5 )) "׈k7r|,GVp(8b"U %|9|1Gla5׵3b endstream endobj 496 0 obj << /Length 293 /Filter /FlateDecode >> stream xuѽN0> stream xڵj@=, 'nД-z)ОzAڛ/Eq.?,vI__v PV嚲Ԥ%ULy"}9!,a="M،> stream xڍԿJ0 Wb?Sf }@}T ( C-( SȴL> stream xJ@ 9,@i4IB1PAГ( -u&@Cfwg?INc:$dD/{,יnr.K.J}nM୾Y23*]嘱vw}d`Y "7+/ endstream endobj 503 0 obj << /Length 319 /Filter /FlateDecode >> stream x?N@pk;'َd])L0VjiQ8%ad6lh!e\\_Tur<'4~pg_?hWP4*MPRﯟwJv7PF/T \aD?M&([}< p}oyP=fsP6YF4l:b%K%TG'Pp4gdhWAobu^!+or0bbU0m[ yblD. sgIY).T":"n}vs n z_]] endstream endobj 504 0 obj << /Length 234 /Filter /FlateDecode >> stream x= 0ABU8VQzGէhd ^C">zֶ@>qx4>@o3]Js4]yVdLT8U9Ed 1$6.1ҾhJ5TFcL"t.ILeA`S[g? (D e"ac! endstream endobj 505 0 obj << /Length 338 /Filter /FlateDecode >> stream xڝJ0 =rՃE`<'(ɅD|Cɏ B5Lgd_jv+gJOM%.Z;1oDqt)7,T==>ߊb~v*Q,e+,@-C*ql`a[i!Anp ,]v ݝ<-ctnKd G,ׁ렷>nj/8da"@!bh 9ƄuA+Da H v䰉Y]GoآzS*5{u.xpO}|;`Z\K0LWPG6S q.>Po endstream endobj 506 0 obj << /Length 290 /Filter /FlateDecode >> stream xڭ;N0'ri߀ IABiY$R AE HGQ|[b<|μch]}y~MPWC06 11@EcbؖC4o>}3r0X.ҙS-ˮ!qIhf!3CvApHYK&hfAyg772?xG0sIPCMBnEW8\h >iIk1i *LoNe@ endstream endobj 507 0 obj << /Length 147 /Filter /FlateDecode >> stream x313R0P0bcsCCcCB.cARɹ\N\ \ a.}O_T.}gC.}hCX.Oy 1&VROhw=X~` c.WO@.F endstream endobj 508 0 obj << /Length 123 /Filter /FlateDecode >> stream x313R0P0bc C#CB.cCJrW06 s{*r;8+]b<]?0 31C=C(1'W % endstream endobj 509 0 obj << /Length 289 /Filter /FlateDecode >> stream xԽJ@9R,L706r ;KAE!]h(+n2Ό,N"KLqN1ّ8|DW9ޙ%e5_ WL\pm@۴S[i#GLo8j^IU~ ѤnF/}6ӏ?vR?;wI'Щ!"&> stream x1n0?`-!8Q[H$2 C @ r`@yv]kߖ> stream xڽN0 ]u䥏PEF"D$02 (}o.NpN:cߴŮLC5ni`Ew\wX>Rbycj,7TS݆ seN; s;)䜔, ~8s'ڥV`jzcv [fߝ'%yAssJ`y#r؍ШC7NOTMUB 0r-uTN} ^ś ɋ endstream endobj 512 0 obj << /Length 201 /Filter /FlateDecode >> stream xѽ 0+[CP N(GIqpӎxi'0?w%;}< y=q> stream xmOJ0tQ&GH.t BЕ q.]( .d:73G̢b&/_m֧͹]ڞT>ƾT]k\٦I#oj۩kUp*[ݕT]=ng3!r"W(hL2@A.C`/0I qH1C%|b2P E|Qebm5R sPoeC<7ĹKZ?,0 =,) 1-^L4;3"Q{ ëx>$9V]w^ endstream endobj 514 0 obj << /Length 215 /Filter /FlateDecode >> stream xҽ 0+ 7 hjA3:9: *>Zɘ-tq\.OMsj7m9{P [R+D6ydbFel8G6F1&qy}ó-5i(KwEj1ob5+iWMO:E TiRgpг9iMu3R}oݘN. endstream endobj 515 0 obj << /Length 310 /Filter /FlateDecode >> stream x}JP+.@d" r4ѪZSZiwB?^eT;xL!yQ rq(8"}_@ߗFF,uT`G5c9ZF\HD QaZդÉ4L3RV']# qϢ?QB+ j8ÄZ+=P&LgPUo7pXn&9=I?jT٭)j 5xySɽ \ endstream endobj 521 0 obj << /Producer (pdfTeX-1.40.22) /Creator (TeX) /CreationDate (D:20231024161535-04'00') /ModDate (D:20231024161535-04'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) kpathsea version 6.3.4/dev) >> endobj 14 0 obj << /Type /ObjStm /N 92 /First 782 /Length 5128 /Filter /FlateDecode >> stream x\n$Gv}WC`Բl@#` 4DZI,4s"3oجb!\bq#5 fC).287v .)!?x;3CʇcuuխwxjڔLq@/d9892L{ vvF+u$f(^7)~M&#~/4_J\< _@ܛz{{zty`aB2|oNvoaϷ׏V?>lPUט-x}\wۛO}??ݽ_?<}~ڮmkuf{7ŭ_HAV\O }U 4܋h8gboQ T\:z0r!q@6 #@M |pCLY-sL|)mGeۇ[R5 wSTm@zGIZI#xkW[l~dQ2,Ym?D\Vz#Y־ gp k^W^E2AsX^}^^U(# ]8un 2 Ʈzoi _bh/s,09aXgX=`X i8 uj}EtZ9tOy9j^H^V5h֐퀨hu^)صSoW(ԋ0*vHԟA$^;V`Vk:#FFvdFɌcPXJ Ɩ) StU}u*Tԁ鄲Ӏ3i8x 1}CK~P/.AZ7 ` -²JYT5+TEj U1 U2Q׍#uqt&)t&+t(tt*tt(tt*tt)ttV#\$H$=- b?ƱP}YØS|w/5rU1-Rϭhı\r~[⨸;ܚu3U.1= }C4R|JLƃWjz5|>r#O*#7ȬnJ* !׻M[ {uD8ꉫc;ϧ'f~^%new@QS6}5z_d V+G ]h]}"V!#iOgaNSS>> վA@1՘  nn1 t̉! :ijJ<;123]}7wPw󮲘+D;9H9-CTv I琵|EPe:Z-ҺjVs֮Suzs Yd$~.DEAT,޻iHiH;WB/kS;y78Y K-D 8ì BIʒk> f4}n݌DT Sյ`Y՞GK§'纪TfvDt=_8HanLQiSyMDW9HqTzFOˑ}7(Lp ۱y+|nO>sWz+$^E@ 48P^L' ~ .Eq nl]^c.MT$;J . i" #<~!N %4řD)W M}Gb:RT|+f$>QVЉMNLl`)boY'6ZrboW(-7Ŷ5i]۵hLn~bƔ)sLnLڎwLncr+TV xoV xMn:6mTJ/a /^` /b:+U *kaG  s   } ~ްa(fB6sF4 XQY,]OC^ BClP?TeJ8[ZzآAzUbP/g]l| خ5xԨ>X{t hjjjjA/fbz1=X'SI~)$[2]bIB>bgS %Bi E A#* /ZֽB /W%9+GGV)>%ߣT.Tv TZo HhuR9T'z %U zWy]% bVT }Y=W*C1L\⏵P\LμyPNcwdžp c`Jp1&&#:WضK1cO&|#DaKcyTDDlW3l L8Jks$MQٯF,~ cLtm*h4g'Dp,QF}N^,䶛5m-JE6oS(DX6aߏT >AU jO$~jO$E B{pAJTU" TU"`hP퉀՞HPU̲TU" S\IJ`U" hQ$A5Ew~Ǹ>!u";.dh/fN%H=`D2鹟S#e4߬&BBQ%9(DM'ji4Q@<yv#0ӹt̗VSG7rFbuS7B,qZ` ASNQPg?txSvPD}qJڛ:g0e")kwnI>χnȶvh=-mڎX#6Ph`}Ԯ@ˆiWR)INf"L`^p*glWf|0rEqQlL }EC1({)^FbP8%QA1 cP^?ixI~u!.տPl?0-a &flw4N5>bä 3LsY40k*oWS]e0[ endstream endobj 522 0 obj << /Type /XRef /Index [0 523] /Size 523 /W [1 3 1] /Root 520 0 R /Info 521 0 R /ID [ ] /Length 1558 /Filter /FlateDecode >> stream x%yNu{e1cw`PDP*^(*{DeM=ɚRy1*0qu[f'Px-> YYpJ2YRE.T_C PC<P>V5dj.ZCSV ՠQ!h\ qkZT5.HZ UE]UDuVKx@h%SMvRQRt$(}b;g=tˋWRk6W}U.AoMx, o< \Sz Cl{[yk߆@F\z(m;t*z))VIag0qBe:F0CU7Y%`s}D/_PvOgz"TcKҎmXVW*W`6Xsu}T߮ML.S)?D֪mQD]Ql;v]ڮSg{xWOO VASGOGuSXǿjpJ U?=Ψ0s3,qQϻU]Q\դtpӄf-% kşv/zC~^<Sn=iiH !3߈ DC^X8&gZxIf'0AYPc(C'{Y C#enh:э\!%識ZoC1xrm olP ށ^twfxwy>hޭ|heޝ =EGyoJyЗ~zGр*u0Xe:UC/j-ڈgj po5SQ9Z{㴃e.0yj䶢h/:1 ]w endstream endobj startxref 173219 %%EOF altcdfenvs/inst/doc/modify.R0000644000175200017520000000147214516022754017073 0ustar00biocbuildbiocbuild### R code from vignette source 'modify.Rnw' ################################################### ### code chunk number 1: modify.Rnw:35-36 ################################################### library(altcdfenvs) ################################################### ### code chunk number 2: modify.Rnw:39-40 ################################################### library(plasmodiumanophelescdf) ################################################### ### code chunk number 3: modify.Rnw:47-49 ################################################### planocdf <- wrapCdfEnvAffy(plasmodiumanophelescdf, 712, 712, "plasmodiumanophelescdf") print(planocdf) ################################################### ### code chunk number 4: modify.Rnw:68-69 ################################################### #indexProbes(planocdf, "pm", "") altcdfenvs/inst/doc/modify.Rnw0000644000175200017520000000516014516003570017431 0ustar00biocbuildbiocbuild% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- %\VignetteIndexEntry{Modifying existing CDF environments to make alternative CDF environments} %\VignetteKeywords{Preprocessing, Affymetrix} %\VignetteDepends{altcdfenvs} %\VignettePackage{altcdfenvs} %documentclass[12pt, a4paper]{article} \documentclass[12pt]{article} \usepackage{amsmath} \usepackage{hyperref} \usepackage[authoryear,round]{natbib} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\scscst}{\scriptscriptstyle} \newcommand{\scst}{\scriptstyle} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \author{Laurent Gautier} \title{Modifying existing CDF environments to make alternative CDF environments} \begin{document} \maketitle \section*{Introduction} First we need to load the package: <<>>= library(altcdfenvs) @ The {\it Plasmodium} / {\it Anopheles} is taken as an example: <<>>= library(plasmodiumanophelescdf) @ One will adapt easily the code below for other chips. \section*{How to build a CdfEnvAffy object from the cdfenv package} The first step is to wrap the naked enviroment in the package \Rpackage{plasmodiumanophelescdf} in an object: <<>>= planocdf <- wrapCdfEnvAffy(plasmodiumanophelescdf, 712, 712, "plasmodiumanophelescdf") print(planocdf) @ The numbers $712$ and $712$ correspond to the dimension of the array. If you do not know these numbers for your chip, the easiest (for the moment) is to read CEL data in an \Rclass{AffyBatch} and call the function \Rfunction{print} on this object. Hopefully, the cdf packages offered on the bioconductor website will be modified, which will make this step (and the complication to know the dimension of the chip) unncessary. \section*{How to subset an environment using probe set ids} (see the vignette `n-genomes chips') \section*{How to work with given index / XY coordinates} \subsection*{Getting index} The method \Rfunction{indexProbes} is implemeted for objects of class \Rclass{AltCdfEnvs} <<>>= #indexProbes(planocdf, "pm", "") @ One can directly work on the CDF data, without having to load CEL data. \subsection*{Removing probe sets} The function \Rfunction{removeIndex} let one remove probe sets given their index. \subsection*{Multiple use of index} When crafting an AltCdfEnv, it can happen that probe indexes are used by several probe sets. The \Rfunction{unique.CdfEnvAffy} is designed to help one to deal with the issue. \section*{How to use this environment} (see the vignette `n-genomes chips') \end{document} altcdfenvs/inst/doc/modify.pdf0000644000175200017520000024556214516022754017455 0ustar00biocbuildbiocbuild%PDF-1.5 % 5 0 obj << /Length 1303 /Filter /FlateDecode >> stream xڕWɎ6+>Q)R'āз8DyQSqSŢzb8jޥb#eRoF$diUQn/G2cuZ9Ӥ`K;/±fOػ36Ot3ݙG$7Yɋ\nbxt'dU^*Ȯ(pDn$:\|?x@ٯf?vĒk'DQ0nU&2 zˍȹZX䒋BmbUB.J6>Wsۻl[˅];Nh*ٚv>zפRk4Z(֡~4Sxn{`'pll%ϩ'3Ӯ4D֤fB/D |J@^YLH<{rܭsA7Y8XJ4WY2^U`DG'^SBK#Թdi݋5*ȴx> 95qN+F2iR<+CFā`*Oj۴HlWMΊd>/Ev UYBr%`&uvkHhGRՏo_RRvmE\ܛQ!BH>AAg;R4XѧPWCB)uW.;] |# خAaØ HІ8CQi9Z=rv{k3@PhZn'(`ֽ5sˡgq2?ŠEwgוB!TG5m0GhVg_g)Ɓ:n: |"9(.|[(-(l SH!T_iG<(!2qqRׯ0g1S;:#<6\m :CK8݅>5S\'+j`U[F0~[l_@`6c{5~` |):pä._H//_ endstream endobj 21 0 obj << /Length 800 /Filter /FlateDecode >> stream xڽUK0﯈ʁTzcゴ,K &NH8-{Z^8e273OWԣ1aTpoYzqJ%1I- /(u _x7HLN*㸩VQvPt}{RK4!`am$8`a5 M,|]Y!+%vj]%~Uwc.A͐$LIҿ5m+ԯꍱHZ7ZP3~E2-]rhWmJyEa؝|EH`вr}XK]AN(0~E$m== GCLy kQ4Pl{̸\odp C"pv蛢Uə;/B{8A1O )#h4CT%̺̊ŸrO] 7w9uU6A1E#<{"٥ VF*[jMܾqrO xI$bA[\TV4-%ťRaZ9\P)$I4rosT>Yc<4nbV<o-f5v81N Ե8OX͏y}Vjs h'9UYa -4[a-.s $;Ӟ{1ie5y.vc0`}`_$eyrƑ<̝_ɺըd1f2-َ@N * PTqca90.n^ endstream endobj 30 0 obj << /Length 349 /Filter /FlateDecode >> stream xՓN0 ]uPU"D$02`nyMNIܻEJ8v?ϊ xc\=83,OݣZ*ƲR9UZ_Jt79f^! 5Dň6X;ЖuH@cN.|͎r.m@γۯF|=Mb ִ`]Üb{)$U2ئ' ÄcW|rƬ,e9sOx^cfu=z.{6S1;Ae&oVgۛ`_#7ğ)NG YmvM٭f !&\oVW ?! endstream endobj 31 0 obj << /Length 311 /Filter /FlateDecode >> stream xڍԱN0o#O \<'H3D'㤎H GBI%)+,`z aJOJ}o 9ƙ={MyqB<>@<1f#q8&t3x=%T]_'V1 S>8|bGx ~ه_(Jf2Lc# ן8~w[stJptU,r,]#c},=3ֳTc)frLiGvKA;+DE 1]*YB8k ~oL endstream endobj 32 0 obj << /Length 290 /Filter /FlateDecode >> stream xڵӱN `H&GJkNM3NIM{4"Rȍ%) ~ٜoK<+>Lcuz^aہxĦqkAtwb{%>X> stream xݑ=N@FJisX[N"GTPR; 9BJGZ0; Jifw<~EqUQAg9T )fT3j4wTN\IM}MoOhf7s,hSv`ځ_ hv= {H 񞡱B [r%kT3. 0=;  ڿv>;bC _\Af #c,'4/+;hq1h?7p% endstream endobj 34 0 obj << /Length 253 /Filter /FlateDecode >> stream xҽN0T"GȽu~n! & 7+Q!ʟĄd嗋l4\jU<sMo4HQ {N^Kls/dKɮꑚgʱw_ s=$p8E . (sׅ42*ȱ| ]6&ܴLpڋ_IHGN!X>] 7#f".F?^Q 3ҙ b= endstream endobj 35 0 obj << /Length 244 /Filter /FlateDecode >> stream xڅJ1g"0M!`Dy[ZYZZ(ںy}<•aǙP1|?IO :1H=>cTPc;Ocw!^_[^ʙ;V8?dmgPj\Rq :dĄ* |Vbn;gE d1o( ؁ahDBc!D[o1En %in6N:\Z` æ]H_I<?y뭜 endstream endobj 36 0 obj << /Length 175 /Filter /FlateDecode >> stream xн 0>B L*)j3:9vtPtnG#8f:M|~3z> stream xڥ?J@'X&G\@HBL!he!RK E֛L2ɮ9o[,Ƴw565>UU7v1.tqoYKtq ˣ|QђCDF"RcB|&;J e%wpU3B?O|G(^'f ]THد|X9/O8E.> stream x3635Q0Pacc CB.# I$r9yr+Yp{E=}JJS ]  b<]``0f+ɃԂ 0a@\\\٥; endstream endobj 39 0 obj << /Length 107 /Filter /FlateDecode >> stream x3635Q0Pac cCB.#K I$r9yr+Yr{E=}JJS ]  b<]0a\= endstream endobj 40 0 obj << /Length 232 /Filter /FlateDecode >> stream xҽjA W#>WZL+vrp!ET+ -vXqt;';됱j-->xsiNY-gOّy+#CYEI O$Rx%4DJʤn ׮UH@Y$߸Np⧤D@(Ax^ 9Eۄip xviC endstream endobj 41 0 obj << /Length 184 /Filter /FlateDecode >> stream xѱ@ & &]xHLtr0NUy{ጃ zw6d4JBGqlfiG{1+P)QEz@-ibc|!Pi ౮!`{.TV6ߡA_y48+po endstream endobj 42 0 obj << /Length 231 /Filter /FlateDecode >> stream xڵ0kHnЂ0 &2`A3<#02^KL%!_s{I!.qa@CT9 +@P% 7 v+@x0> stream x͒N@ ]uG_.!MBH 02<Gx۹F:.˓"J:lN錞c|,5<WO(m(KѭEGWbtK=b$(#!@5@oJ 4{aŌfJ`o}4.lO%wm_mte4](z`_TU` endstream endobj 44 0 obj << /Length 169 /Filter /FlateDecode >> stream x;0 t#' VbTD$02`nQzT dj20XY陞c+4xRps?aq@iA W<ix=   E^6ɱC:_:Wѫ}O_ /h m Ij^ endstream endobj 45 0 obj << /Length 259 /Filter /FlateDecode >> stream x]1N@4;ۊB$\ Q%ڬ\vY)yTk.拊57 UIJ/Kn6O\k*ybx[~|nXp8HDF#々~7'QȔ^;LKZ+45qj@.dtv!"ieh֔j]dV絳Su ?hgcfKxhGZ endstream endobj 46 0 obj << /Length 186 /Filter /FlateDecode >> stream x3534S0P0R5T01Q07SH1*21 (Cds<L =\ %E\N @QhX.OON2bH$;&=A$3?8HAN7PJ`$H `( E` qzrr:p endstream endobj 47 0 obj << /Length 187 /Filter /FlateDecode >> stream x1 @   fl1[ZYZZ(Zkyt {O!(VhpZ0(j. 匴F91J3FNPf4W.dI K#ZX+ސ8 w6 .n N<sUv848n endstream endobj 48 0 obj << /Length 252 /Filter /FlateDecode >> stream xڅбJ@YR#d^@7l 'BB+RgvE8X>Y؟/Η%YJyN^RaaB> stream xڅN@EPL'~ >X<&ZY+h+| K$\gfX){ʪߗu%B-k_Weʡ/ϯ7/nyS壼'7e"0қ0Dr92DI-٨l+s@!٘b4Hfoq!C?I?b`6|tC t} lLD2r1uIU'TuIk*T%5P%5!.>Z/1 endstream endobj 54 0 obj << /Length 210 /Filter /FlateDecode >> stream xڕ1PDXl 磈V&&ZY+h G(ˆAB,ٙ}P!#y8ф.fsULԖI%+]'R5w=%1.iFe:o[ xcmrD/+lQa^n%k\h[%~Ҭ5.NnwZb.HhC5~X endstream endobj 55 0 obj << /Length 204 /Filter /FlateDecode >> stream xڕ1@EXL `EHaRK &vp4,- JBg7N @\e(D͡+QT쎜⇬Uz`.d㉻<U&);Q rDQMԱ@a1PıMmc ]y Z ~/:] {>tٴc_> stream x3532Q0P02F )\\@$2ɹ\N\@.}0PRTʥ(Dry(3773pzrr{ endstream endobj 57 0 obj << /Length 108 /Filter /FlateDecode >> stream x3532Q0P02F & )\\  ,ɥ`hȥU()*Mw pV(Dry(3773r - endstream endobj 58 0 obj << /Length 103 /Filter /FlateDecode >> stream x3532Q0PP0T01V02UH1*2 (A$s<M≠=}JJS ]  b<]` .WO@.E, endstream endobj 59 0 obj << /Length 205 /Filter /FlateDecode >> stream x}ϱ 0[|Fq+ vtr'utPty>JЂVCAn C>)NB<pmkq jZZpTvfJp4A!|ܚRieuݪ,;鷸"Umddgf$/qF+Q+]KC8ptj䐆ŀ "#$ʣN[ywa endstream endobj 60 0 obj << /Length 208 /Filter /FlateDecode >> stream xڍб 0Д[ DZ N⤎S ;!b #wBaj/9A]FG oPjT ߂[|>^Wn\1ڹ^Wöe;>w"ȑbne!'pΈlr1wE@vؒi`b5olOkuV lL$=o endstream endobj 61 0 obj << /Length 244 /Filter /FlateDecode >> stream xڭбN0 `:TG_ҖpCL &`J~> Uq,ĉ_]"hKZ_=n ; Z0+5RaK~5C%'>;*\ $U+u+}e'}^ܧ_"dj_V˿*'1S9}q2.Wl9ɒCТfeDE3vgZyٴfȅ endstream endobj 62 0 obj << /Length 158 /Filter /FlateDecode >> stream x3532Q0P0bK3CCB.3 I$r9yr+q{E=}JJS|hCX.O@D~DBD00H2? Iy0i߀ZNĥf2TV? r > endstream endobj 63 0 obj << /Length 115 /Filter /FlateDecode >> stream x3532Q0Pb3CCB.cS I$r9yr+r{E=}JJS|hCX.O7@s ?F?H\=u endstream endobj 64 0 obj << /Length 197 /Filter /FlateDecode >> stream xڽ @ p؞:jotr'utPtnG#tt(K>ȟK'S7xp> stream x}1n0 Ed0EG0/ ԡȔdР7 dPK#O'O *k!XnKVz>uөg^3e݋}N7Oo#XnkR 0,H"`nX,2d;F)ԃ"G ٦)eC$9َ}r9H>Gime2bֿɯꢻNǀf endstream endobj 66 0 obj << /Length 223 /Filter /FlateDecode >> stream xڭ=0 S1T#4T HbF(=BN1#2|QlSL``: Ҍ f}a^cstz=^NЀ`|U|+Q܏JfL5IbG|86*Um%1x(VDFN{ܙmw^{Ǜ)5xu Vϗr endstream endobj 67 0 obj << /Length 208 /Filter /FlateDecode >> stream xڕ;n14s5,r%[D ")S$"r4Gp`(RF}?i7> stream xڥ1N@Y478n- T)UL(ԛ,IdUq n#t-l#k&ĖH endstream endobj 69 0 obj << /Length 225 /Filter /FlateDecode >> stream xu1N0E49BM,)@T@"萒(9K. #3?pW=w<~(ё6[;ϝFOْSxϟ_dw7qB#h%^J"s-,&ï& M ugTi: d)ȧֿHee_3 Y}ETԼ4rs$jYh%t;#k} endstream endobj 70 0 obj << /Length 166 /Filter /FlateDecode >> stream xŎ1 @EH!%q1[ZYPUx!㎝Vd7<[W-SÉ@fޒYFLXr;)svdJ9{ %_@"-0*rࡐZ'pGb4"mz!IoMSK?7W endstream endobj 71 0 obj << /Length 178 /Filter /FlateDecode >> stream x= @ L2'pH-,J--ףy2ŒmkO1rX54])/ UԎ URvL,=&dk6>s]PFX`* tB &66aQְsdmN|*38w ]ZZ錀 endstream endobj 72 0 obj << /Length 141 /Filter /FlateDecode >> stream x3532Q0PbS3#CB.c3 I$r9yr+q{E=}JJS ]  b<]0000PX?Po?=``D xr "cn endstream endobj 73 0 obj << /Length 127 /Filter /FlateDecode >> stream x3532Q0P0b33CCB.cK I$r9yr+[r{E=}JJS|hCX.Oc`'\{0 ?0%\=Rm endstream endobj 74 0 obj << /Length 175 /Filter /FlateDecode >> stream x1@O75pD ,ZZh:JD<@J ˆbb%3򎃮i0f3c3n[6DM8eŠ8NDRrpEEVn4TKUT|(UBMҸHȿ(? endstream endobj 75 0 obj << /Length 170 /Filter /FlateDecode >> stream x1 P t*d |BB`A'qRGE> stream xڕ=@ #0e't$$RheaB5pJ 6&Wd^狔cy9ƹjzPRei.;-+RGN R[&U|H-+֤|Z3/PDx"_  {MءlQ5򃠳RkD0qM]Is Fk,Uel m*:9n endstream endobj 77 0 obj << /Length 235 /Filter /FlateDecode >> stream xڵ1N0EEirqd":K" * D ra8 j$\<̟|Ҷ9~JSJ/q]Ngr |y@T2bH!iY)0DI~B& #;NvWV #tb9w?1&쵹+'KUwι9mkQڎHQ*mAi7t-} endstream endobj 78 0 obj << /Length 230 /Filter /FlateDecode >> stream xڵ=n@4@XZDGEJJ "9G k*U4hgޛq1*=,y\-@~jݜ'~Ӽ"~Jnm}r3;r^pAՒELZ[jCm`&H[d+RAv MFM7#zBL#PoNmz'[z >YgY$jcƛqH"WڔVU!, endstream endobj 79 0 obj << /Length 172 /Filter /FlateDecode >> stream xڽα 0@εIG882:Ht>85g<G5oHYc\lːIN͌Od>"YJq&S"EE\-u׋p*X&.EZ7-}K7-^D_~417yi endstream endobj 80 0 obj << /Length 227 /Filter /FlateDecode >> stream xM=N0j K.Yo?)@[%h(pGH"1&+Ai4絻RF.x/~-O_yUì o[^fv'^TGnBe*TRUCQf4.,B"tF) F#a~̇ Lͥ2~"1e`9Cf1YD5- VM4kcЇA-ʭ endstream endobj 81 0 obj << /Length 177 /Filter /FlateDecode >> stream xڭб 0+ 4%q- ftr'>#t =/u AIn(ƚ!kxB%N_C!Q-$Ft9_Ռ$h+3;tA|y=8ނM?`|ҋ-xI ,vQOzxE:Vv܄#Jsk|jVmx endstream endobj 82 0 obj << /Length 165 /Filter /FlateDecode >> stream xϱ 0]r cptBp" hX ;;rpcHQT2kv%d‚ϧ˞L%SrPE^ />" _*?_^ӗw/ķ=yD-L@@+z]l endstream endobj 83 0 obj << /Length 201 /Filter /FlateDecode >> stream x]α0# $XJD1D'㤎]GQx!Ԥ%Coƒb Ly۵-(v$S+NQkg͂g\:]:r9쒮 < د׼C|V{ˀʠB6נ?b}gk{[[\2e endstream endobj 84 0 obj << /Length 224 /Filter /FlateDecode >> stream xen1 } p~r$7 1юZ(yc+ d/dj I8&,‚}bTl+bY\2L5N{Gs/Pܠ 1?3W-%_} endstream endobj 85 0 obj << /Length 251 /Filter /FlateDecode >> stream x]1N@б\D&Gع؎HT+  * ()@*>Vu,7O?_f竂RlSqAENObQ4xz|M=%&>ǤgL6aV[2(̭v 9LJt'XX=YjUI+.~ЉgPws+CF`CHeD%;#7R NJCwX}xU~ endstream endobj 86 0 obj << /Length 179 /Filter /FlateDecode >> stream xڭ @ @#B~B^=] I{O3鬛A.oď9”Cg ι؟nm8]r;W3zw6%%YUH×y4g Rd\\\grI,'rI65~\x\ endstream endobj 87 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532Q0P04&& fF )\\  ,ɥ`l̥U()*Mw pV0wQ6T0tQ``|F ~8!"AD=$A= HԱ5 ?h .WO@.h endstream endobj 88 0 obj << /Length 234 /Filter /FlateDecode >> stream x}j0h0G=Ae'S!M  ԡtJ2vHhʏG#x`t/jJ)TBuuu|F6+9U|Eۖݳ%C̲kqf}N^*)_ %"י2S]`GNMOtdf@C)  (RX%&aȁbrq7jzor0qy42LXC#y|Pov} endstream endobj 89 0 obj << /Length 262 /Filter /FlateDecode >> stream xm1N0E i @%ҲH@m (9,+c7k4V^]#O//~c{~zp#-yn9p"H:QiST.*NU2JUrAd S\1V`"iUǬ(ǯ3&aFEd+B @ogh&ùJe.bA.VFN[Y-bķ? endstream endobj 90 0 obj << /Length 199 /Filter /FlateDecode >> stream xڝϱ0[|VI;`A<#0:ך@, mD)Π90 R |J_cz<]Pp+0ځΨT13z5W/j'Z|V7J!̫Hi\LP &2]p';5صB3i}kXok endstream endobj 91 0 obj << /Length 261 /Filter /FlateDecode >> stream xm1N0ЉRXr#d.I춑E"TjAms%Gp"ˊEzmwխ^ttїξ۾N77m}k[fϏWﯵA:mxP)E*"(@J 1UT-Ru* sb8/D"D"?p"N. ˰R+Wv#ffzp9vNs# SS5Aތj endstream endobj 95 0 obj << /Length 246 /Filter /FlateDecode >> stream x]ѽj0`0=ANJc!-,~? :%tۛ gxonQbGP&QH/X֐`C`^!g i&^2P{ԾQ`|J'Ql¦g9nٞQ7R&Mb?;F;klJjIr~V6̢NM;!) ; {vF=B&?Ň endstream endobj 96 0 obj << /Length 239 /Filter /FlateDecode >> stream xeѱn0n'AnHi"!R;u:;Jfh< ȀBj| k*+y>W?l>w-7[6GeӞ{=ٽu^kW)#zc, zޅ Z kzo6~ubNׅvw(OD:>&αy[eۤ.S-_ܑ endstream endobj 97 0 obj << /Length 232 /Filter /FlateDecode >> stream xUϱN0?` @BR$2TuF@R?Z$^ďCUYb컳u/ /l- kZ]W/ﴮ(bk(:Ֆ>(_?ܲT7,vTmr^HT[ s碆ou@3xMT#zU#iGu;*Y}(92&4i)uQEmfbD%bp&a)u=ԯ9ߕUH Z endstream endobj 98 0 obj << /Length 210 /Filter /FlateDecode >> stream x}1j@пXF7j&@!* I¸rR;a(:J"q?wqn`k{f͜Wk>_ddS[ vԐK%#GqB0"jD $=Z#9ܘ(v8G~o0Ay! 4f3Hv;AF<ğ҈V5RF0 endstream endobj 99 0 obj << /Length 263 /Filter /FlateDecode >> stream x]J0s/ymYw{qa]=yOQpEaͣ|=tI6?:UX*Tt>+XtZ55tE}/P,o/QA#+dG[;y]Ċ&rG|!nMʶr9&s"s< 8%v\-AEpA&}jXnEr0#SwDJx'4;wsl_o"ٛrwi\p(tg endstream endobj 100 0 obj << /Length 217 /Filter /FlateDecode >> stream xu=n@4A<ełRa).*J CxG.,gD4v! _{x S A^N2TG&(Jܧ7⪵~-uS[ Wu$ bJ hƤ!ˌJp3""Q4zj"| Ĉ404Lg(HIBI_YU!'J endstream endobj 101 0 obj << /Length 246 /Filter /FlateDecode >> stream x}ѽ@,ibr)BRT&bqu`k7Hi;wbNl@^U``CԇOr[`Z̡/ .V38Q!%)y\HX֔ң>t u5Zl\?dEqbƒ63kkSǬM><9,A٣ئZ5⋪]!6E*)z!Pk$ endstream endobj 102 0 obj << /Length 263 /Filter /FlateDecode >> stream xe=NP!L `. ./YD 0VjiM,J(#aHHUN1-$쌖9=&i˘V㓇gn)P]UqMoO67]B=[耯^+Bϭ3k\3X;o!wZ=|U%mI Zy2VɰȌj"T&vYѷш 1 Ake;(/xA endstream endobj 103 0 obj << /Length 210 /Filter /FlateDecode >> stream xڍ1J@ [,L^@\@7@B@L@+ yRXE!.#lBM"_39= d鸤P]]h*  %Ǩ =?ܣΩDmIZ7o+d? &/EP"xdQFXpyH3y-Ό ;,TlUQy|R> ?bkFW endstream endobj 104 0 obj << /Length 182 /Filter /FlateDecode >> stream xڝ= @ [03(@PL!he!Vji(XQ$-4`yjZ53 yCBE̢1,{ Cw4O endstream endobj 105 0 obj << /Length 311 /Filter /FlateDecode >> stream x]1N0`C} -mV*E"L  Fb`1a*< n+{Fs|O:wb<խ"=H)iqoD:?=ԙH"KQ,4acv J*Ō,ѓP/ЕoWw@'!9H.h VUq0PL†bxn h'ƍ|PLj1ϑ:v[BdfBOP0BZQ\}%80p B?- endstream endobj 106 0 obj << /Length 251 /Filter /FlateDecode >> stream xUαJ@ [y#;/I`C8<8O0Ub) W'A,7YLNgsz*,?Wf`{%W5W%ޢRlg gl,Rcޜ5C.1y6sNú4KH9 =nNU,uJ7N TlD)bx!?n{Hv1DT7RT5 Y*qwN29"'.޽LVN%#Q a endstream endobj 107 0 obj << /Length 214 /Filter /FlateDecode >> stream xMϱJ@I&y,GHL!he!V\hy<–[;g(|,?9riU˴b^^hۑ}UMVd;z%aGvOgv ~Ll|*C>pD6aF&y+\(?6/Y g!.)ӼP &!+GeƷfkږ[/д9h}GZ' endstream endobj 108 0 obj << /Length 254 /Filter /FlateDecode >> stream xMοJ@oI{Ý$L!he!Vj)`!1kaGGH"\5ǯaqQre%璜2zjʧ'*Jn8/(:%%=R:㌒5fQfD5jlp,3a ]o^ʘ5M P+l'e> W P&%7XN֩t王SvC&o5b,&u6pc(A] w endstream endobj 109 0 obj << /Length 226 /Filter /FlateDecode >> stream xM1j0d0A.jh ĐPt2mI Cu4%GءDeRI|BTLo t\\>p 3u7Vg-bG}.Vw]:l#RsPI;Rz < H`х#JCs;H ehQHs&I翃edgc6/s~#Cr_ɓǃC endstream endobj 110 0 obj << /Length 241 /Filter /FlateDecode >> stream x]ͱJ@ba B4ɑ@*L!he!Vz) )vy}K S|30rVr%_d\ S6n^ִ(y%(Y_sFɒ2NZ2R?n-bk#3qnOdzty|.; b+z9lzH#tB8CLFZb3v]zqnwfwaoUdZ ԀT@h6 endstream endobj 114 0 obj << /Length 216 /Filter /FlateDecode >> stream x}=@FPL t.˂V$$RheaB5ͣ():B ٗu?P@ވ tx(i@IRGN2TBT ʖt܎&)iT3j v:Lμ\{%@H G*rx>9k,V Rsꖶv7ja9W ~o7o WH%gWHe8p7T endstream endobj 115 0 obj << /Length 215 /Filter /FlateDecode >> stream xڍP KnG/E'Ltr0N GzI``poRH.Mtc\M|E@c˨-=+nI=rOT 0Ș)T `WV B‚>` }$P{efw]UaldQj7e&Tdu;[UnY:=~Y endstream endobj 116 0 obj << /Length 197 /Filter /FlateDecode >> stream xm 0ES o'}I$ IOS ;EhDCý$AZQ '3mvXQ,qQ(=H4iIsVGQ;2iQ0rwN8v5/ 1EP ȅP!y5bG46jSJ endstream endobj 117 0 obj << /Length 197 /Filter /FlateDecode >> stream xm 0[:n#4NZ NT]:v("6~Gc N/9JQ8AmQ`ˮ Lve9r`98&{P9zgϼ&j˗aYƍaDRH֎D@;a%wGPݳ$LDS3+1L)3i36zDX([O endstream endobj 118 0 obj << /Length 148 /Filter /FlateDecode >> stream x3532Q0P04S54Q06Q04TH1*24 (s< ͹=\ %E\N \. ц \.  3P170C=?? ??0HI.WO@.sk. endstream endobj 119 0 obj << /Length 108 /Filter /FlateDecode >> stream x3532Q0P04R0T01W02UH1*2(Aes<M≠=}JJS ]  b<]@8r SK+ endstream endobj 120 0 obj << /Length 149 /Filter /FlateDecode >> stream x3532Q0P0P06R0T03RH1*26PAcTr.'~8PKLz*r;8+r(D*ry(030$`f lvnȸ:c? ~&.WO@.AW endstream endobj 121 0 obj << /Length 212 /Filter /FlateDecode >> stream xڕб 0+zO`[iM vtr'utPt>Z%1Ct0ː0F|F)RNH/wNi gW?Uk>*ۇe]< 4\A-8T.h7뷌׺ endstream endobj 122 0 obj << /Length 209 /Filter /FlateDecode >> stream xeϱ 0-}V[P+AAAQZLDߠnxilKB .ݠ|BRVS3 B#Jckd>>z HdJF򥵔l)R&uL/R0:Yڷ)FUcKYjoZ!H3Ycd_EUZU(QK H䎸fBHKJ)L endstream endobj 123 0 obj << /Length 258 /Filter /FlateDecode >> stream xڍ1NPPL |sVv#YD ,nFkf#PR7> stream x}ѽ 0+ 'Z]?`A'qRGEI}4Ci\(Z_.\HPHmθG݈616uhJ3YpbW1Ht< fCzDˈ#_sd\ ¯ECkə½ E r^aȜh"VHrsdj4s(A4CrZ еPߦ endstream endobj 125 0 obj << /Length 219 /Filter /FlateDecode >> stream xڅϱj@_,i| ^δ1KuE.eGQ|K qea"89G#?|鋊uR/nT5^(}56':?k~9RS3@)"=Fgh3b)BC#I6<C<`E,b ^99zGE.Xv > stream xڅ1N@ PG)"#ɬ&PFZHPQ ]"qt\c0e~졁?vlON7Q:9 Fb/_8ZI<Nbd1Z^ߟoo.$}ǝ!Amuf> stream x}бJ@9R#d^@ kL!he!V`hyWݵ?qtr; YtblqʧդSuLUG2,RTL:*]-:o~q4bi4,GvHqD CJT![Q|-< endstream endobj 128 0 obj << /Length 222 /Filter /FlateDecode >> stream xmN@D6 )U$\ AE2EHtS .]XY@͓vvfk5zuK6T9^~?=dJxF u }J]iǨ{l3P͔,N.]r |71Ղ]g?.H??ҙUz6 Er_n^] endstream endobj 129 0 obj << /Length 259 /Filter /FlateDecode >> stream xmбN@%L#케rKZL0Xy| _7x-?kr1J_1L/7 M[OoT7(\<Үn~zrwwŞ=?z> stream xeN0 u%p~Hr'*EL &C0G#t)lSۿoUZ"Hgg5{|~x+}+/AwDDBdT9ՙ6U&L6ZbHAW FY1_?(dhB̐2 Cfr\3[5:UFq "⻎ Fx endstream endobj 131 0 obj << /Length 201 /Filter /FlateDecode >> stream x}н 0H->*B08Q;  Q 3t8O\, f36[|>^WЋS+> stream x}= @i> stream xڕϱ 0sn'0M[[V08G#ttU;QRDtLYL{'L2#_bw ZS)*z@U,Qmє7xw4_dXk$?[@n@ G\C̕u!U837>_0 endstream endobj 134 0 obj << /Length 162 /Filter /FlateDecode >> stream x3532Q0P0b33CCB.c I$r9yr+[p{E=}JJS|hCX.O {LA08v0& =hAԃ d}F%\=mh endstream endobj 135 0 obj << /Length 216 /Filter /FlateDecode >> stream x}1j0`xKt86pR@3e(Z5c( zҳ!C+eە"yn)pǣ3'[<{I_'Nʗvk_7('B<P; !,G GIJHIPjhŠ]Ɛ\fa:Và'f$ ?U?~ endstream endobj 136 0 obj << /Length 198 /Filter /FlateDecode >> stream xm1j@*x%¥V *v¸JRHkh>AB^fV)~LUx)d*{y-V; ^yײ{e'|^{)5r*8se%5(Et){o `{VfdNjW|n.Գ墺p%Euщ,7>F`1wCG,0w endstream endobj 137 0 obj << /Length 225 /Filter /FlateDecode >> stream xm=N048fH"-D $(PRv.]X#!|ŌgyoOyÞ,n,Ş f2w\2>n.ؒ9#zЈ-1p҅FcFR+M*ȝaZ~)\?(ߴa<-֊w%<2%RTN:ȱP5772L n endstream endobj 138 0 obj << /Length 266 /Filter /FlateDecode >> stream x}бN0 P:TO[+D$G1!j#8vbiSB'쌊S|b- m6*.$t۫3J6}?%wY X7:([x0/Xw?.1}Ď~4;V!0X^G`Yi|3KK[륰ӃrIsz ãFav+_ endstream endobj 139 0 obj << /Length 203 /Filter /FlateDecode >> stream xڅα @ B~\ N܂'+~B1`A%!DyH>-Pd|Mt8E'ZKUyAoJ4!6B0s>a~1[GBTG@ \hYc&W=倢'ci4XQ\K5g)YMbW) k: endstream endobj 140 0 obj << /Length 229 /Filter /FlateDecode >> stream x]1JAE`]О^5XWpA#H ޣQNPLYb" O~IgD^c^up;a|<`o}~|b_S¸} |N$@'" CCwDǦX]X<M"J= ЋVM67xQmKҠk:Άj*9hwcf{ endstream endobj 141 0 obj << /Length 199 /Filter /FlateDecode >> stream xu1@PL &T$&ZY+h ތpJ 8FHO!XccQ>Fp4 1|*]QpCi 훑𷂈Z~]K9@ae%d p-5J҃J!Mq^.q@GaOkn endstream endobj 142 0 obj << /Length 191 /Filter /FlateDecode >> stream xm1 @ )ir4Y݀] F0Xz#XZ,;fASOFcM9MiIOZI)Q  iBj̚%]/#fjFִ65؂q h," g |U^e>*414,e{)3c'Θ9{6a8opo{ endstream endobj 143 0 obj << /Length 200 /Filter /FlateDecode >> stream xeͱ 0+[|VP Nj}EбCiˡBKd0L)1ok)>XJ쎘h֔Z4s)t9_h4S$oR^2Ӱh!l P؞ZɅ'z3Ē@mP,g({b_%C>G ׇid endstream endobj 144 0 obj << /Length 214 /Filter /FlateDecode >> stream xeέP <]ʏ#6يM@! X(jSqe`QtM(1_r1qZ.ۦ[t{:&arFnnQz(9(4w^7'NӪVsmՆڐi{-J@U* ֵR_ZX\ZhF`FS|g endstream endobj 145 0 obj << /Length 242 /Filter /FlateDecode >> stream xUϱN0 PW"y'$_@Znt`b@LXnRB>cꌝ "5q8g筭lߦmcj|vJݝm83ͅ}m"(>(g@@ĉiB$}J|D| >&A2 ʕ/*O}b1rt1'IK?tQ fTr%?B-z."&~he )x-;w! endstream endobj 146 0 obj << /Length 261 /Filter /FlateDecode >> stream xUϱN0:D%{H]#" & `ő:t&2fjg8EZ]/WTeEZӪ7;OKZï4X<9=}ޱ<ܐbKϊlr;}mGvð&d$0 nΓ :ye~3Sc?@hD ɑv!F]Ko țo|-xc`3O-'yZ?2lm{ endstream endobj 147 0 obj << /Length 181 /Filter /FlateDecode >> stream xeϱ 0  zO`j3:9::(:G |>BGx:h_;dF(hi8tvG 5(͂.eBYӆ'hj@ #ZJf[Y`I];{n!Aȱ>$.u'Jz~gWFfx endstream endobj 148 0 obj << /Length 244 /Filter /FlateDecode >> stream xmN0C[O@fTD$Sad*hy>B VD Kt?ۛvʷ27w]uK-_|MKR=󽯩W> stream xe;@!$p,/D ,ZZh3q`IA@v!Yd3!{}q yt.Euc";R#v}d^ Y_GЉ{4%ڮri!-{[ّ B>v%)BV`4BVZڐSLG3R1Ke6DJ-xJ_8N;JKMjJ endstream endobj 153 0 obj << /Length 208 /Filter /FlateDecode >> stream xڥ1 @EX t$ L!he!Vj)(rM\ ~}>wU>$]HYDQLbJX xɷH"ZMYVx@h egR4ah#Kju4ӒJ&YHrb`.j\+hcc%*t!AfM* endstream endobj 154 0 obj << /Length 207 /Filter /FlateDecode >> stream xڥ1 @EXS 8ͮ(VbB9ZRZX&^x hec5a㣤 jtLaLbJXV oD$N8x 0lX@/C7蔻B f 4VVkφcx}A#/k TZ;ƺԷt%E" }bS[. endstream endobj 155 0 obj << /Length 134 /Filter /FlateDecode >> stream x323P0PP01P02P0TH1*24 E,!2ɹ\N\ \@a.}O_T.}gB4PO,C}?K` @cs3; CPՓ+ a'V endstream endobj 156 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 157 0 obj << /Length 95 /Filter /FlateDecode >> stream x323P0PaCKCCB. \.'O.p KLz*r;8+r(D*ry(177? 'W  endstream endobj 158 0 obj << /Length 166 /Filter /FlateDecode >> stream x337U0P0U52U01QR - 0\.'O.pc .}BIQi*S!BA, !',@( p8#D` 0D >\!졅e8=2=-#2,)X7\=(o0 endstream endobj 159 0 obj << /Length 105 /Filter /FlateDecode >> stream x323P0PaCKcCB.CrAɹ\N\ \@Q.}O_T.}gC.}hCX.O9 Ėc `3Փ+ ( endstream endobj 160 0 obj << /Length 137 /Filter /FlateDecode >> stream x323P0P0W01P0T0TH1*24 (YBds< =\ %E\N @QhX.Oxd$,  (< X3pzrrV'h endstream endobj 161 0 obj << /Length 94 /Filter /FlateDecode >> stream x363U0P0T0P0"CB.#3D"9ɓK?\ȌKCHx*r;8+r(D*ry(6#' endstream endobj 162 0 obj << /Length 181 /Filter /FlateDecode >> stream x1 @/BnV@` A+ RK Er#Ep"[9-6 :'r"qMg Ɂn?QVpZHKXr;V3֤rjvT ,d<[ih1 ' %WqJ|k;pQvGƺ~J~JHw endstream endobj 163 0 obj << /Length 193 /Filter /FlateDecode >> stream xѱ 0_:n#xO`Rd@+AAA(}j]Arnc6ܗ<2|Lڇ) džBnIK^nGՌ# o#6;JN-(_)/|bAU+V]U"sbh9RI+[9hJm+܇Ͽi&c|/?yJkzo endstream endobj 164 0 obj << /Length 257 /Filter /FlateDecode >> stream xuбj0d=A-pHRB;u(@19G#d`d |' 󟖋;}O5\RQ`ȻO}c~[zIc%a,D!Q$mbG2bWh*^jL/.i AjS]3}`qd;<z<ĠuH> stream xڽJ@ƿ%``  h`xp` A+@--|tv)-­WXZdow*;9-8㒏 >+1*R̸*gZ֔Sz-eJ~{}ty{9+Sb 頁Ș2ԠFJ -_5J5f҂Fvh4P"VeF T߄iӹ{ =#0s@7IMlVMts~!|.G9#٘0\f {qo@W5/XI endstream endobj 166 0 obj << /Length 220 /Filter /FlateDecode >> stream xڽ=0$N`!!U'D::htq@ZmIjlB-$CϐOj^gHs`[1e ,_z?Kse0C (eml dE|QbM*mhVK;-Fi,IUAmluΧl.CNZ=xں%giz@6 7 endstream endobj 167 0 obj << /Length 202 /Filter /FlateDecode >> stream xڅѽ 0+n/ t N&X؏+blkqRv= (+%66l8T(ԏPL]jFyb8QbL51|=3;*X(mu }6f\-~ͽ xTk݋6o]ÖoW1\9_?D߭k endstream endobj 168 0 obj << /Length 180 /Filter /FlateDecode >> stream x3333V0P0b3 PH1*25\Dr.'~)PKW4K)YKE!P E?|@``PL1C(F*  %CA(6ŃF1dP(UPP9J>TxHJ(`\=|3 endstream endobj 169 0 obj << /Length 130 /Filter /FlateDecode >> stream x373T0P0b3K3 CB.31s<L=\ %E\N \. ц \. ? Ph707000c~4ȫ_4,q.WO@. endstream endobj 170 0 obj << /Length 112 /Filter /FlateDecode >> stream x3634W0P0a#3 CB.# I$r9yr+Yp{E=}JJS ]  b<]A~y) \=i endstream endobj 171 0 obj << /Length 152 /Filter /FlateDecode >> stream x33г4R0P0bSs3 CB.S HrW05r{*r;8+r(D*ry(*P 2C@,dBPBՃ)A0@\=R endstream endobj 172 0 obj << /Length 280 /Filter /FlateDecode >> stream xڽn@ Ǎ2 y/D%dCJS کC!Q&<#02\M90qwYSL)ݭ(K(3SR7n oN>f3?_h/{B@J lF3@.!-@A> Aވݜ*PB QAo"|s Fà \Ji oץ%Ocj{:T~LpaE `M5(QlWq2 endstream endobj 173 0 obj << /Length 160 /Filter /FlateDecode >> stream x3731R0P0b3s3 CB.31s<̌=\ %E\N \. ц \. A70``a~@ m :y 4!B3  4'W +q endstream endobj 174 0 obj << /Length 333 /Filter /FlateDecode >> stream xڍAK0 ^{6LSaNAODGaRAaԉ.x ?dJg9*9g9Цӯ'9+ezӉL/h[%=tvuLx0ȶ `ka5@!F֠%~ CnɱCȅsZnpIm1u2c!/Wܣ[P `Q P{&{6Gq.L!qvNCQ&yи7> stream xuϱJAba yh+RPK E;1 tƽpS|?;?xžjs3TC=-r+SrgkkrKyrM͒a{ծlB-`a:`u)xuwGW2&e˯ɦnh huaǨk} [ bԪob"EzONoɌla endstream endobj 176 0 obj << /Length 213 /Filter /FlateDecode >> stream xѱ 0; 4X-P vtr'uTt7)7&/“ h4"rMӘzd endstream endobj 177 0 obj << /Length 203 /Filter /FlateDecode >> stream xڝ 0OKдv vtrAPGAEA0G#8:ANȹ-Lp;"dJ Z_V[UglJ#IWc>NҽIs-0pu@܀_x vZհu/{#ҡ^EA^UzN4 E A2;Wa V4'VhLr endstream endobj 178 0 obj << /Length 212 /Filter /FlateDecode >> stream xڽϱ0$7 x/$N$ &:9'utf,ƣ Fp $K8q b~bNe/DF4AFGi[?2%72byg6Nh:]hBQ֩L)϶?$nId[XmFiǞzՊuA63` ^j endstream endobj 179 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 180 0 obj << /Length 156 /Filter /FlateDecode >> stream x33T0P0bc3sCB.cc I$r9yr+s{E=}JJS ]  b<]000```!$T ?h A30c T" h2FG&\=ak# endstream endobj 181 0 obj << /Length 275 /Filter /FlateDecode >> stream xڝN0?+C$/~ @pKV*E"L02`ȣD`7я$7d*:}$ X endstream endobj 182 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 183 0 obj << /Length 125 /Filter /FlateDecode >> stream x323P0P0b#S3sCB.#C I$r9yr+r{E=}JJS. @-\. ? :  .WO@.P endstream endobj 184 0 obj << /Length 161 /Filter /FlateDecode >> stream x33T0P5U52P02T03WH1*22 (Xs<L=\ %E\N \. ц \. 6 ! Ր#0$z $!03`a |\=[3 endstream endobj 185 0 obj << /Length 220 /Filter /FlateDecode >> stream x1@`CW ,I0Q ne!V*Z'7J+)Shfe=1fOA2∇n'MxӞ#슓U|<)dg9P1csK^4Ї g Z7-Vj]p azկTP)*ܨF7́ ,a 0@ A/vP`iCiyA_ endstream endobj 186 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 187 0 obj << /Length 203 /Filter /FlateDecode >> stream x=@H\@ȜM B0X({+ba8垫|>2Pԏ~?Ѥ$|@jRRod5Ԍ;*gX@l$u8lSyEȞn!X#xiTCƩFHjODO'0vBJ#n $"&ݏ endstream endobj 188 0 obj << /Length 159 /Filter /FlateDecode >> stream x3534W0P0bSCCB. HrW01r{*r;8+r(D*ry(0a@R` `$@z ɀ a/ m?C&\=?qjS endstream endobj 189 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 190 0 obj << /Length 218 /Filter /FlateDecode >> stream xڭн0 p[*y#4"t7p  }4бCHpH'n[~8{`zz9> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 192 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 193 0 obj << /Length 160 /Filter /FlateDecode >> stream x36׳4R0P0R5T06V03TH1*26PA3#Lr.'~PKW4K)YKE!P Ea9$luPفX$N#Ccagc{  00?r Jm endstream endobj 194 0 obj << /Length 162 /Filter /FlateDecode >> stream x1 @ᷤL fqC@Vb--+'Gˑ<@Ⱥ!X l3pjZ>DŽm:L#c^[z?.6 6KNJV- -reByDz 7U}`(D,uxI0nҷWR hhKob endstream endobj 195 0 obj << /Length 202 /Filter /FlateDecode >> stream x]= @Y6sݬ+0Z *ZGQr!n5|ś7ȈBR[^0$)?G19]/bLւ :c:k{-Ŭ`m88u t&p2 lB̘Ϙ> stream xeɱJ@; $p M!澀dF 1` A+ Bv362e]X'qι>giF'5Tkè;.:TQ݆UwG_oTZSE%yB7zȷ CD`Al`^Ѓ\F&i!Qڤ5#+]VڂQS"w)͊S28`?ah֌+.1%t}z= endstream endobj 197 0 obj << /Length 236 /Filter /FlateDecode >> stream xMJ0?0> stream xeпJ@o \`^By]  @-G̣R^w]9 Opj8>xPS5ZOLIppu%?^^qDzŷ;JW\ׅˡ~ lr&Vg{'´N2;s8Gvn=ЪQob]pл ~^8:g007~ʞJT Ͼ4sM^!yJ[X' endstream endobj 199 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 200 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 204 0 obj << /Length 151 /Filter /FlateDecode >> stream x373Q0PP56S0T04PH1*23PACdr.'~HKW4K)YKE!P EňN?h44B Ck (uިF7+`'W ii7 endstream endobj 205 0 obj << /Length 237 /Filter /FlateDecode >> stream xԱjP'J $)!LBcvwtO?3tʘ Gsn--7V {-Cvg/ﺮ5{r#5zwo7v(,zcA$Hi"{H;{";`pV#fd) c97GO1xrO3vSo.NdE"nWw9_2>Ժ#G endstream endobj 206 0 obj << /Length 382 /Filter /FlateDecode >> stream xڝ1N0D,yJȀb J(> U)",eUM~VJ^R, bm~|}gOvc;^|}~|p#$˷YU[LU7KeYF-1zVt qV9-Ti̬jcDG:U#F)R]"X )h[7(RfRd Vi%(E:8A}$](E7URhw.BL^dx')z TT2%AaΕ[Q/a`D a¢jBLx5 J%aQ4>TɨW;N˹IA 0!@Cn+~?]T endstream endobj 207 0 obj << /Length 402 /Filter /FlateDecode >> stream xՔN@l6< 5wy&RheaBh< @9aY]H$;;3;y~ә볍γ-ݙ~իowFߛqEJVW_~xVB*=\g:Ի@]V}JU! endstream endobj 208 0 obj << /Length 245 /Filter /FlateDecode >> stream xڝj1 9沏y ݋k{쩇ғAћ=H؃߲CL`-lo =|oK.aN<|-dT^mlFmٌWcoqn> HɁX 98;[e"D}禇Mw,,#V j su몄=]}cSY}]w`O` V ~֖༶_%j~ endstream endobj 209 0 obj << /Length 125 /Filter /FlateDecode >> stream x342T0P0bCC3K CB.CCARɹ\N\@5\@a.}O_T.}gC.}hI\. A#C.D33Pa7#̃ y9ʣ>:"'W v endstream endobj 210 0 obj << /Length 107 /Filter /FlateDecode >> stream x3533V0P0acK CB.s I$r9yr+s{E=}JJS ]  b<]?\$ ( !.WO@.!8 endstream endobj 211 0 obj << /Length 436 /Filter /FlateDecode >> stream xڝ1N0Em&GO@bBeHJ ٽ{!e c'LKzN<}Ę&ln_P߅>ruWmVp>TFudt>N# %!RD9\# Kdyzx9#pjD@b8=& G@P\%5jsVA5B.(-+Uղd@4@h,BA4QK3,]sl!!/`j'FgF{obkΌZC25R:&]MBEYzDha+Ia+Iexd,CG3UU3*jJZ3^ϢPcY͒^1":^Ʈ\ESjNwr_3l˹+Q 3=A4fF͠}u endstream endobj 212 0 obj << /Length 313 /Filter /FlateDecode >> stream xԱN0aG"ݒGĕ@eB*E"L 22`Mhy?B Q}>_bpR~[*uq^FRr-w A)8/oi~{VPe; Z*Iڭ4nagoh~ Qs8f"gU{93F{n ?l Bt4z UT;n)T_B <6OՇ9?%Ց39D#gl8%>%ZU(B)Ӆ8BǠ*ę>4dbZC! biPHC7ˆ.dCǥ0TEҳTf _MܴU]( endstream endobj 213 0 obj << /Length 308 /Filter /FlateDecode >> stream xڥ1N@gCA2 G`.@lI|&Rhea|x <Ć0̲ϼDmd`ggCګT״}Iz>\|ʼn|Ƣ=,VgGTaˊ+lvuLC! xr~`]T VIm o0/m+H-8٠HŴ̃%'b eA lR(~ FYtG%4xڂ~V *L ^TjCyĺ=LKg 9鏀-uO endstream endobj 214 0 obj << /Length 283 /Filter /FlateDecode >> stream x퓱N@ e%ʝNX*E"L @0< y{{iZQAɿo>%Ct`inCp&YvwsKM1;a8?>^ҕ%s`Ko F*MwR*^nJom[w)}KDJXĢȾUAB֫~o)2PAշ%{Sh7ԃ]nۅ߶> stream xڽ1N0E"4>BHح,-D $(PR%>Z#l"WAg}{+nǚ^يXq{NiQy͖K9TꞺ=(te!LJBzpLa'=0s EsB5qgZoVVPJ}!J,D;'^Ezdg|F WѮ9!!9&g1#&$| 3fkj`GsA?M[ũt }gz endstream endobj 216 0 obj << /Length 271 /Filter /FlateDecode >> stream xұj@ 3 Z+4fHS@:u(hyD оY~wW!7˩]%vβ˷<#Z qMUѨL྄Gc endstream endobj 217 0 obj << /Length 275 /Filter /FlateDecode >> stream xڍj0 e2hCI PhS۱CCZJf endstream endobj 218 0 obj << /Length 191 /Filter /FlateDecode >> stream x313V0P0bS CCCB.SJrW05 s{*r;8+. ц \. @H2j1TH1P(y8gJ1R `JL1Нg|lG'W  endstream endobj 219 0 obj << /Length 369 /Filter /FlateDecode >> stream xڭN0/K~H*J#HHd@uFL x?GVn*Pb;]V-YsZx]XDsV4a]4ÍzxR-DQ nŰQhk$"THtPpA|ANmCb=\I*WEI?AFc.gTET{H~?d&>CKF (,@aR7C;aʀ a Gi11X"bW t>XV MNq2вI3 :f=>;3 s\raj.YI]l!fq5; „sp endstream endobj 220 0 obj << /Length 210 /Filter /FlateDecode >> stream xڳ0S0P0b cCCB.ssJrW07 s{*r;8+r(D*ry(0o`Ie1 Xp( Ube0`V`Y1b`X@=p8 h=?zzu/a50,`t ih endstream endobj 221 0 obj << /Length 146 /Filter /FlateDecode >> stream x31V0P0bcKCCCB.cb%r9yr+p{=}JJS|hCX.O ?D PB1X/y`i؁A0za?J.WO@.3 endstream endobj 222 0 obj << /Length 222 /Filter /FlateDecode >> stream xҽ 0H-} h[ I(>B]*I!a/#wy&|EH2+B3x>]  d)*Q^-$tes$hUoj}g9ONCzb\yވO-y7yewRQtoxPe'UfuH b endstream endobj 223 0 obj << /Length 286 /Filter /FlateDecode >> stream xAJP. :'{ U,]W҅b/xGR!d̼y$ L'Ci$%!, aJE:ۑ>NAO"j$Jj/XS:Q3j4~7N${%u,JXR7Աn()nͻy#_%\7 vP endstream endobj 224 0 obj << /Length 111 /Filter /FlateDecode >> stream x31V0P0aCCB.cSJrW06 s{*r;8+r(D*ry(0o`&A(1` r .s endstream endobj 225 0 obj << /Length 258 /Filter /FlateDecode >> stream xӿJ@+ }s8@88O0X`e,,ME}I @Xabfn?w^ͧ{]]"kvfř{~zlu~]+\kv2HɎY@КѩY`;zjeRZ58J$}¤A/yB$Uީ>?ï~_8zѝn7wEf7a9j=)BVM endstream endobj 226 0 obj << /Length 198 /Filter /FlateDecode >> stream xұ @ ДBE j;:9: * nS:vc!K.!K| %)E!֒639-ij)UT US*]@cfWl:%uW+~Ž> stream xڽN0utKʼnnJ+ &T9}>Jc(;۲,Ȑ|>.Uu(Gko+.h+u #4Ox?wh6tRdD gft: sQģ_zm>rU"Q-Ø whJ"5v[\nil4r?:XTG2oJI~E⁦$lt?,m/p{" endstream endobj 228 0 obj << /Length 285 /Filter /FlateDecode >> stream xҽN0`W"GȽrON" & ㊁GiŏCgmfȈb}E)^yEd^Mqz`V|IƮ,on>f>A@BN j]D;hH Q1Q󍊶e7F8XxiVWE} ?r^ ;jfԠӪUX{#[t屿-YպvZmc|y'˿ \p [a endstream endobj 229 0 obj << /Length 184 /Filter /FlateDecode >> stream xѽ 0-y'06 ftr'uTܚGQ;祝\݃~ +0.0xH:: eOPZPwA%ޮ#r5 )&;3D"Z*rLD^cj&Uؑˈ^t;;jUxa|t-?>W`na o? endstream endobj 230 0 obj << /Length 296 /Filter /FlateDecode >> stream x]1N0E"\)sHR4HE"TjA-G\0hŒO?h,5yK%k5k(2Uof7Էrm>?^M{zjy6Þ1 (+bv`柀UJ"~# N>t%%1!*0jQAzj:ޖ> stream x= @ )2(I#XQr)uv! jc_13{b-lHlH\J@2$]kH)F1!AtG "Ù`*Coz_kjSӵrgFOT&.Y<,I(d&t^Pkԏ-b0P0+f endstream endobj 232 0 obj << /Length 199 /Filter /FlateDecode >> stream x= @ ir &H~@` A+ RK Ex )SHY,{| iP2(mc)}"lǨR.ft:w9X._nY#4RFH}Uʨ|#yAmܚ[+wcw蟒/sk2WVr @T" endstream endobj 233 0 obj << /Length 293 /Filter /FlateDecode >> stream xڍбJ@ W#d^@hs BB>y)l ]>vϞ$x f8? Ky1yvaC,肗!/&&  c +c,drP ,fӖO|ٌxHv'T7eX _%~5(PYQTiVw*I]ڪ$u3SXmn'ωS5^%%^dۨ^>AB e~OD3j'Pj*[N^soN! endstream endobj 234 0 obj << /Length 370 /Filter /FlateDecode >> stream xڝұJ@YR#d_@E),J--˂/+_#֙l XowvYcc3?4V?ip97ٰwήLg縮¼<>lyybN͍5.O/B{7UD) R=8[Q+Vj3ZIFuv[H1ZV'呢Q jI X5kKHH0ʱ> stream xڍ=N0F'Jɍ$,-D $(KI:(VnrR2|Ю%[o쌟f]s֚ڜcjsyazSۓ<}Ӷ[ݕiTu0Tw01T4"LBG `"'$$PƌDPiMB A-BsT'!Q(+Β[>5PK9NT> stream xڍҽN0:TG_%tR$2 Ā[dc%oO"]\LK}ɽ(@"6 Ub)TelΣVN֎X%ҲFV8!TZ^՞j#{)'F2N4jvQWQڱ/";6lC4*f}X `aUca7Pl*L5L> stream x363S0P04P52V"CCCB.C# L.9ɓK?\ЈK(PRTʥ`ȥm` `P0C  Ȱ! 0`< `r W( endstream endobj 241 0 obj << /Length 347 /Filter /FlateDecode >> stream xӽJ@ )Ӥ}EVSZ]!Vji(7  Orq|63`gO]!{-d> 9\d% c| Iq"!Y8O`Zƶ֌IRumnYuvLb\d_H׾\ƂTH3 I-sƫIaMUZRl,TʧXIۿa4Te* r;־<'l(u^ф W˝XÔ4ļ:Obn<*ߙ/nBn&_^ZV(,toJʤXXK endstream endobj 242 0 obj << /Length 160 /Filter /FlateDecode >> stream x3734W0P0a3 #CB.SK I$r9yr+Zr{E=}JJS ]  b<]S  Q~h8hv݀JPJCJz - xh.WO@.p endstream endobj 243 0 obj << /Length 316 /Filter /FlateDecode >> stream xœN0 }>BЖ^*D$n@L(} I4!ϯo.J]TW#*oy|xK%z.x@GF D[,e@2Y]d=86jh֠f|5gNÓYv?NWJ)^xby LMIGUJGo'KE`mz%5q37]q$AvuD B$'$~ endstream endobj 244 0 obj << /Length 253 /Filter /FlateDecode >> stream x}J0 9`^@輀e͢ ɃxR|> stream xՐJ@'KޠI  ēzTdh(y=F]lvAg.rS}g9+YUײݼ<-璱ZM&-W = I?(wta@.(BDa 4`j5,DeDIs_[_ +Θm$@ޑ i xu%2qi֥/+^' endstream endobj 246 0 obj << /Length 230 /Filter /FlateDecode >> stream xڭ@'l&o`MF,@S^uX`}}}+Sg6ػW33_f8'3]G4fnP)P/XF,|Q׫OQiSfNIس @lUlhmt 3OV GMwڰMmps$r1'RVIƐ4 9{ qf"1w{4ï}fc endstream endobj 247 0 obj << /Length 236 /Filter /FlateDecode >> stream xڍбJ@H0MMa!L!heqX偊>>>–WqƋJd횳7Ӗ9wK~j镼pGSZ֒dլMldPdg߆cl?MY'G-IXE&SbDof{ jp endstream endobj 248 0 obj << /Length 130 /Filter /FlateDecode >> stream x363S0P0b#s CB.## I$r9yr+q{E=}JJS ]  b<]?00``E@Yr?H? #.WO@.6 \ endstream endobj 249 0 obj << /Length 170 /Filter /FlateDecode >> stream xϱ 0 ): I}> stream xڭ0KHnB&N$Ltr0NUx4Gpd &&߯}j>]b UnBIJ9]! BkA > td# # :ګ^Ԅ/B/ (/)} f>,E,r3/FדG}oI\2i6C=,c1ҭ5yVvӲ{ endstream endobj 251 0 obj << /Length 167 /Filter /FlateDecode >> stream x3132W0P0aCS#CB.c3 I$r9yr+q{E=}JJS ]  b<]01?GF  ?0I@ `L0 " fsh'W c endstream endobj 252 0 obj << /Length 168 /Filter /FlateDecode >> stream x3132W0P0R5T0P07QH1*26 (Bds<M=\ %E\N \. ц \. ~TBNÉzH07ȃpI("0@"L|`z?В?r ~'W Bf endstream endobj 253 0 obj << /Length 180 /Filter /FlateDecode >> stream x3332S0P0Q5T0T05RH1*25 (Cds<LM=\ %E\N \. ц \. 0TH1;Ŏ!P d=%P^@{xH1`oR$`(rzrr;7 endstream endobj 254 0 obj << /Length 225 /Filter /FlateDecode >> stream x͑1@EXL (HHaRK v9G$8KDK7d#ɥ!M|::xǢMSGug c4ZV~B+\ωG`2` =n@+JV3AcfhFn ] 3|V_,v>l-Odp8뺭SU^*;]2" >e endstream endobj 255 0 obj << /Length 293 /Filter /FlateDecode >> stream xu1J@7Lbs3'0 fWL!XEa !ser%{Fccf?df8].|iKfׅ,ӫY&Ue5y}k??_L^PK;"Jbd([TOnO:PvS2PJ ~#݅w;14ZK-~-΋3z&ۣd*ިALʯR 5  Z0D+5 )) "׈k7r|,GVp(8b"U %|9|1Gla5׵3b endstream endobj 256 0 obj << /Length 293 /Filter /FlateDecode >> stream xuѽN0> stream xڵj@=, 'nД-z)ОzAڛ/Eq.?,vI__v PV嚲Ԥ%ULy"}9!,a="M،> stream xJ@ 9,@i4IB1PAГ( -u&@Cfwg?INc:$dD/{,יnr.K.J}nM୾Y23*]嘱vw}d`Y "7+/ endstream endobj 262 0 obj << /Length 319 /Filter /FlateDecode >> stream x?N@pk;'َd])L0VjiQ8%ad6lh!e\\_Tur<'4~pg_?hWP4*MPRﯟwJv7PF/T \aD?M&([}< p}oyP=fsP6YF4l:b%K%TG'Pp4gdhWAobu^!+or0bbU0m[ yblD. sgIY).T":"n}vs n z_]] endstream endobj 263 0 obj << /Length 234 /Filter /FlateDecode >> stream x= 0ABU8VQzGէhd ^C">zֶ@>qx4>@o3]Js4]yVdLT8U9Ed 1$6.1ҾhJ5TFcL"t.ILeA`S[g? (D e"ac! endstream endobj 264 0 obj << /Length 354 /Filter /FlateDecode >> stream xڕJ@/ 8ONat ԩCtn ЋGoBx83%'tp8O='~nٻGX_3\N@_WCf7%Z##6Ћr-.*mZ[v?Hvv?ii^Mh lAz:[n>:h8>`Jv ؐ:U@"te2`aa0Ŝƀn з1 g]6r5V~Y{%9F;e;X=Ut U}2 HIS g9\/{} endstream endobj 265 0 obj << /Length 338 /Filter /FlateDecode >> stream xڝJ0 =rՃE`<'(ɅD|Cɏ B5Lgd_jv+gJOM%.Z;1oDqt)7,T==>ߊb~v*Q,e+,@-C*ql`a[i!Anp ,]v ݝ<-ctnKd G,ׁ렷>nj/8da"@!bh 9ƄuA+Da H v䰉Y]GoآzS*5{u.xpO}|;`Z\K0LWPG6S q.>Po endstream endobj 266 0 obj << /Length 318 /Filter /FlateDecode >> stream x1K0<:V O8=Z)ˣR03FSzܷgUr EKWI}oO*Y_o.^$gzhՌĿ~Krj8ETVM+dZ!݆mi|`Ɂ=|͛6B+ U\h߳z+Q/.C_G9_ȮɽǴZNbR7̤_BHsx5:ys4=$?8Nm.ju>4C endstream endobj 267 0 obj << /Length 290 /Filter /FlateDecode >> stream xڭ;N0'ri߀ IABiY$R AE HGQ|[b<|μch]}y~MPWC06 11@EcbؖC4o>}3r0X.ҙS-ˮ!qIhf!3CvApHYK&hfAyg772?xG0sIPCMBnEW8\h >iIk1i *LoNe@ endstream endobj 268 0 obj << /Length 193 /Filter /FlateDecode >> stream xӱ 0Д[&V I]m?Oء̅ wK. Vrƫ yr[;cr _ d_3> stream xڵJ0Sz(7[W ba]AY3XZ{* DDXS툨#;Ic֭ڤa  A )#(z' p`9R,1t64MI`SSC \1O endstream endobj 270 0 obj << /Length 147 /Filter /FlateDecode >> stream x313R0P0bcsCCcCB.cARɹ\N\ \ a.}O_T.}gC.}hCX.Oy 1&VROhw=X~` c.WO@.F endstream endobj 271 0 obj << /Length 322 /Filter /FlateDecode >> stream xԽJ@ #d$ǝw\<VbAhy} 82 jD vwRc1QդT<|fJnêRgPa(3|XUPUkh*II $JYI˪P?@Qn(5,Y6vG^\UG\钵aRlKLDO)^X;R:2@DޒAJ3mu[G{ǚD|HD`7#Y"'z9X!8~7R,앛|pwDp!c=KS롱*4pY endstream endobj 272 0 obj << /Length 123 /Filter /FlateDecode >> stream x313R0P0bc C#CB.cCJrW06 s{*r;8+]b<]?0 31C=C(1'W % endstream endobj 273 0 obj << /Length 289 /Filter /FlateDecode >> stream xԽJ@9R,L706r ;KAE!]h(+n2Ό,N"KLqN1ّ8|DW9ޙ%e5_ WL\pm@۴S[i#GLo8j^IU~ ѤnF/}6ӏ?vR?;wI'Щ!"&> stream x1n0?`-!8Q[H$2 C @ r`@yv]kߖ> stream xڽN0 ]u䥏PEF"D$02 (}o.NpN:cߴŮLC5ni`Ew\wX>Rbycj,7TS݆ seN; s;)䜔, ~8s'ڥV`jzcv [fߝ'%yAssJ`y#r؍ШC7NOTMUB 0r-uTN} ^ś ɋ endstream endobj 276 0 obj << /Length 201 /Filter /FlateDecode >> stream xѽ 0+[CP N(GIqpӎxi'0?w%;}< y=q> stream xmOJ0tQ&GH.t BЕ q.]( .d:73G̢b&/_m֧͹]ڞT>ƾT]k\٦I#oj۩kUp*[ݕT]=ng3!r"W(hL2@A.C`/0I qH1C%|b2P E|Qebm5R sPoeC<7ĹKZ?,0 =,) 1-^L4;3"Q{ ëx>$9V]w^ endstream endobj 278 0 obj << /Length 215 /Filter /FlateDecode >> stream xҽ 0+ 7 hjA3:9: *>Zɘ-tq\.OMsj7m9{P [R+D6ydbFel8G6F1&qy}ó-5i(KwEj1ob5+iWMO:E TiRgpг9iMu3R}oݘN. endstream endobj 279 0 obj << /Length 310 /Filter /FlateDecode >> stream x}JP+.@d" r4ѪZSZiwB?^eT;xL!yQ rq(8"}_@ߗFF,uT`G5c9ZF\HD QaZդÉ4L3RV']# qϢ?QB+ j8ÄZ+=P&LgPUo7pXn&9=I?jT٭)j 5xySɽ \ endstream endobj 280 0 obj << /Length 361 /Filter /FlateDecode >> stream xڅN0C$~ҊHd(T*E"L ԡR` y> stream x}Mj0 ! h.Ъa:΢Ю(]] =H%GpBLKB߼I]^%ن]lJV*KAiUɫ9+Z{~XUnp>?^ib`=b bw4xZᡈQ4bMV0ax(bϡ+hy""wEQ;j99E+"*WWt\-D+wRHM nKVUln΄j[3o]RhIL5 endstream endobj 285 0 obj << /Length1 1398 /Length2 6210 /Length3 0 /Length 7171 /Filter /FlateDecode >> stream xڍtTS[-){ {轃J$IґDt^)ҫAQ) wxo19k^k97? D`ĥ$#s)i(#J[0p795 C"@ ap>]3B">p @J^YJAHJ"]/ 0"Por~$ su/@, RRRa``¸A=q+Ap bUBH A)KJI<%hWua1 0zCѾPc'dK7oBC8"q> -00AA~ %!w?? A`0B 0~Kň@O |A089p] gW( dP/ vYMB.!0(C 0hhp"@``  CS熺qaw8I?q pWmKFb2qi9)"@AwSOR .Hfq}m]#- `KRoYn+,+A0>8 jY#(Q -+my_aS,V?E!Ho[ .W ,1WοC h?9G$i99@N($ pA@w7tqiP_?/_K}h~_JBP0 yZ'Jm桰x<眊4C6/|E+c҆ЉmM1if߂.S':^3 ?8I!n+:̃ ېGʴԯ_8P8=e]+rR<*nX4sk$q+"t'_ / SDɃe֤,?acc$<4d ([Efa[LlwǕXY$  'H,I%d58Ths3I])z vHlEb3}r1T[C+w/[8ۺBߺ5.[,a  &c}w7D 1o'~ssN]{F.(}|N/Jmly9Em2ͦC [(skw:Oco0TZU^jV)>"A 鬅 f}̇I ]̺al#GcϏKŁԔtz[SIrJM} ?o}NyX [e-It~l0!h۷1d7*J9o7bzi%(!`R[B ~0gtz8Zy*7x0[\^"O٣6TÎu}K%I7Y :v2L~ȷft-:Ғ[(_]}6>29/bHO/R?ZiZ%9\0S|-I"}R +2ZʷγmNr#JżZq iWzE (~4g~i!me:WV2z<91Ty Jnܓ.rtu>Q>XGౚՒ tz[<2ׅ\vkV9oᝦACTg9:A2&y?t,mH&O g 4/Io*x@+isLC, r~ˇ xeR9:%?Ƹ &QO'7Dc Gigdhu9=h.*Lh=@͡b/堄\Eܨs=4,Gu$ Ľ4'V+d?ţ JB* C7$J[dnt= %ٲjf4&IH4Ľb0|}G>ck/$WO~uˮq+hۚFW6Nlf~2?T:) e$KH16iVG'>=ogmy"h~0>W4D@sɏfQ Gd[ ɩ")UH d20Kg=R]Q!QtZ~Se>e\_'e{r[!XI ^U{s&[Jf}Z/hZ==B+I*%*nWrð?x!,]?`ŋ{c]u )@'*9Z@Ĺsjo?mWYE|{ߒU)󢨿""$,73(NbXvhc J=Biccxf]'?Tgs냡JLl4eq,FAI Z8-;:<2=/GIJxP assU ڀ%YgO)>ፋ?Hӽ$爞[^^+Ʌ~WN:Vkʟv x yߝك-0exqmȲPr)2[Retn-x[!Jm. LA+w2 "&zdrW,YJgӬ|(ܜ4BFIdo:LYO5A€u&7(=%4 +eC!LVK>JJZyі߭={/(]Eу2P+ož o:Xdi<ӰP͜2P,f e+(4; V|%ݟFޖߕG'e!_ґTdCW{ bF]w fh('[`A&-ڽIgrxs]?<`Y[s&r.ذIQh][EؖH5wF!Rnr3k=YWSbvSh"Ɔ5_.p.`i g t_F>) Kf!X!f:C@Oʼ%9L 8amqGE c5 ^ ɢJfɬl0y-9BFvIð|lܼI$2<NKrݗzw ]%_ 9bgHV\ B:!Z>Jމ'`jb-gP( ;u7V]X:BBսSwO8yt|L!gV%tjD.O"O[#*ʽ VSzd0ەTgW]۟í.e EiUX0ʛg}yٴ4빲rQ8`TT'8bQzih A]hl*qAiB̥W= Y7n( 餴Ug2'1_yd j/_4Wh_5r>i{8< xo(B?"İDvBojk>LKmYJݣtq4?G =6~bLLGſZ>F y{+_uJN輚앓g%&טԧxlW[+H5n^4`pUIΥ~.Iaw ֭~$=p ryZ%%IœP x+,6]SeAMF."/IGjT|jDĞeJ[hN*_̪T1J9󽣫pE}jPѷD_BI|"8[֝Do=O CW*Y48FGP-U2nU5*4($ س=0q1:Rw1 xmv%}=zyZTzP x$Y祼JDR5[azڋ-S~{&m[,pN-ҷt#3Q4c[6.0&={5Z0Mo$YzD;?h߉^gw,6D,fˈx Qґg52;G$3}tWjEI1/L^EhemP|EV *&µ؏ l^ E% ' 8CW2lS}|%&[ĝj)o ; zSy~(윿$seˆQD&! p> %m\F[q"U-VMk'KaAqל?Koj:,av K%)}Ӵrtc{ˠ `vQ;4#;2[ĤGY+D7Z3<$l4,!h ,6[;׭~;MYSTJ!(i=w~Ӛujf}xƭ g-<w9IO?OR5/tmrm=⑞^I(",ki oog,6'J/~{sײalj;Ye@RիPLNIͧt c5M-f$E,y.=R\{w]L$ξu);cp]v΍XJ>|.7y_BN9㔺(itl o>ݹڙ~BS6!#.=`,\<ɉZ GʯV^Q_IULOpHlΗ-75"`bjʋ8dX1#1Gx Ͼ.UzzㅗbȣqZW!orK"$,rHD5SO;۬A}.:SzM(A' Z&^|fvB&@O3;5vt9MA duTs[纡\|9 Z$M׻;g+N' Q(V.hX)~Bucg?SK(E^WdUkw-[iW28%קf /RehTLC&I [FNrd4|N,{if"._DTd?}.>mwjYXnӧ,m6:I"&l#ǴlF;^<[LXdhe^+x qL)Sx6cU[5 ˻ }Bx ja, s}iZ*)̨HX0zջ-sƕ3܅Wȥ7dm 9K7\ SYFGP#ۑx0c|^Y\i؂e7Fe ׈ F~Ԙ#|.H#Ju~{ {$ք]ש'Sَ(0 7 >:!C!?.-P,IN9D%}w=D$T8u%iUwuIZT&B$Ӗ觧 SoiҴMI8;u48ݓY5^<У5[$)Ye[9W2 endstream endobj 287 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdCmU^!1H#x?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=M;7rfnj-eSӵOLg~8 )ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L> endobj 2 0 obj << /Type /ObjStm /N 57 /First 463 /Length 3293 /Filter /FlateDecode >> stream xZm_^q@/uZ4niGsg6}KJwi"ey\28DCL&d =o8 dMŰ3!{ !m9Ť ᯠhrIxA vh%EpCjMA5dz<-U <1 ȸ͸dZt@={nAh˻4Z dC!;-_L!.NznAvdB1PL^j8zM ̦d ͭ)ha9c@3lCFe$ \SUH=Z)u1\Hz1TEv->,_ׯy0ߘs<^,_,^_/Ϯv[,Yo?\ZrnzzycQ1p^{M56:sÇwRI~`OʹDCr/[##5O#EW椌񜶲Jƴ:VjI-|ޙ7/iz:LS@asI,UwiA0ӂ*!}N hVs x5pJ[Oլ/ֵQFfv6;i ~;J=o< L="]:O?a=57ݳW7Ք!6v?nr{Z RVzZjoȺQ#XfJ-[Ґz|/7,0V|Sp7ʏBshyej~~bl~a [|hJ^W׻wLJ(AKd^ٵ/8\M7M+ SUaz+TARU䥰ޤrKr Klikni)87|ˈm1N--J!!--sou}Hk47 ~}R2gߞk4&=M¤+ - +fх,C.F\yXrJԾ~~=;nqxXad70za^ ˗+H[4L` mu A;zEԋlG8p&ud3[܎ph^tZ @x;gr;W 0"P3`<ˠ<*)3\dw#cYgpp0q>qֳݤ8fƱ(4N Y8'VhB8EƩ#+VKVМl4gRМYAsv s@M\ߞ ~VĐ=cHL!1@1b1qλ1ӟH-S}%W57t+59  MoM5@V4 < =F('ExT+)p0YA^XA'uT%tk-[kIBKVZP)&*%Fpnd2SylTJ6)K%Aʻ{Z=Ģx6p u: W8^!FNKpn#'DŽn2ќӠ3߭zS'R8FNS?9;[ħ_ܸC0+TtH`ʝѼ$DB(FrBQ!ۍN}QЁ8vC`U6;VnX=`u{Ӵ=5!yM}Hŵ2^1!-}{H8Խ% g@RD^${ p`?C:,肰 kHp ڋmGXz"tTK (rV.P7ĺGM/#XbvEa9 s1֣P[L-rht7q!2Xj1H7Qy&كIr@XzM-|Ruݖbź`tq@IޔTMIޔtMIc_{(﹣Z9X\UU]UU]UUҮvUiWUvU%hWBZS]UuU$NAce2:{g5f[$\Bb.Lꐫ$DF1sjh)53]sb~zR)∄ $x3$r&U~T&lwbXt$ow@U<9Kw(Gy:zUV& vw;2"bA!!STHȔ2eLE!!UHL Y!!&̚3kάI;&̚3kNvvӤ&4igI;{v~y_p[<{#W0VGü |es@2h9:VDU^v5,T~ gsS٭4Q} 5p:4r|Czwhug#^ى>U!텱C:sMF& 6`YbI[s ekʂL-Tdj " R"hā4h}xԆ GVM7A<(NzO9 sXpY/*qL> %ˁ7Ac@? 3}zU^ *2~)E %F4óGA gt'>;q>qn7%̪RXZ0DLSrܣq{T@VF^WBu` 'bR< ڈաIcKih'ރ7qSvd˛hœߐ[a?ax,R첉?^|@כ?" ҈<{LOՇ哫nvZO5b WvrQSdy Pv];W)NQп0&WؠՑ#e'4yc[2xWŒa>J0QeŒ<ڮ/w߉ȉUF܅(OAZḤPs0|Z0҅i*f$Z+ݚmjA~ 0j Kbi$xރ/n_}}\Ɍq}f ! endstream endobj 294 0 obj << /Type /XRef /Index [0 295] /Size 295 /W [1 3 1] /Root 292 0 R /Info 293 0 R /ID [ ] /Length 867 /Filter /FlateDecode >> stream xypWsB"ܬ"lB Ih6AVD0Zؗt„2b߷RkK0RfRsy߹Sf6ѓ?磛$QY"B w,&OT}*>%|,5x-Pp;!pT3/P@͞ ·B͆̾вZ݆an&wN"ִ;B{/:NNEYUA(t{ cG |zy5E.z}~jSg8 uA W]CpJ `&8R}>Vx9ˇo4;m0!&I`4ri0=9B%a%̙ sa^qypL«X/Kò\=]+aDX׸`mÆQ.5-!lUWG`R~n%g ?/a+w9~qE@38 jgUr* ;‰+pg-ʥ/uE77%jÍ~pSw ]N{^xƩ9^u)UJu]Og3@x^>׵.zNK ua?hÿI΋"њ2||*85L2z:]&Ȇ%֏<zegAgBHކ"I$[[]#kS*4nmloݿp endstream endobj startxref 83728 %%EOF altcdfenvs/inst/doc/ngenomeschips.R0000644000175200017520000000324714516022764020451 0ustar00biocbuildbiocbuild### R code from vignette source 'ngenomeschips.Rnw' ################################################### ### code chunk number 1: ngenomeschips.Rnw:35-36 ################################################### library(altcdfenvs) ################################################### ### code chunk number 2: ngenomeschips.Rnw:39-40 ################################################### library(plasmodiumanophelescdf) ################################################### ### code chunk number 3: ngenomeschips.Rnw:47-49 ################################################### planocdf <- wrapCdfEnvAffy(plasmodiumanophelescdf, 712, 712, "plasmodiumanophelescdf") print(planocdf) ################################################### ### code chunk number 4: ngenomeschips.Rnw:60-62 ################################################### ids <- geneNames(planocdf) ids.pf <- ids[grep("^Pf", ids)] ################################################### ### code chunk number 5: ngenomeschips.Rnw:66-69 ################################################### ## subset the object to only keep probe sets of interest plcdf <- planocdf[ids.pf] print(plcdf) ################################################### ### code chunk number 6: ngenomeschips.Rnw:77-82 ################################################### filename <- system.file("exampleData", "Plasmodium-Probeset-IDs.txt", package="altcdfenvs") ids.pf <- scan(file = filename, what = "") plcdf <- planocdf[ids.pf] print(plcdf) ################################################### ### code chunk number 7: ngenomeschips.Rnw:86-88 ################################################### plcdf@envName <- "Plasmodium ids only" print(plcdf) altcdfenvs/inst/doc/ngenomeschips.Rnw0000644000175200017520000000654214516003570021011 0ustar00biocbuildbiocbuild% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- %\VignetteIndexEntry{Alternative CDF environments for 2(or more)-genomes chips} %\VignetteKeywords{Preprocessing, Affymetrix} %\VignetteDepends{altcdfenvs} %\VignettePackage{altcdfenvs} %documentclass[12pt, a4paper]{article} \documentclass[12pt]{article} \usepackage{amsmath} \usepackage{hyperref} \usepackage[authoryear,round]{natbib} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\scscst}{\scriptscriptstyle} \newcommand{\scst}{\scriptstyle} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \author{Laurent Gautier} \title{Alternative CDF environments for 2(or more)-genomes chips} \begin{document} \maketitle \section*{Introduction} Let's start by loading the package: <<>>= library(altcdfenvs) @ The {\it Plasmodium} / {\it Anopheles} is taken as an example: <<>>= library(plasmodiumanophelescdf) @ One will adapt easily the code below for other chips. \section*{How to build a CdfEnvAffy object from the cdfenv package} The first step is to wrap the naked enviroment in the package \Rpackage{plasmodiumanophelescdf} in an object: <<>>= planocdf <- wrapCdfEnvAffy(plasmodiumanophelescdf, 712, 712, "plasmodiumanophelescdf") print(planocdf) @ The numbers $712$ and $712$ correspond to the dimension of the array. If you do not know these numbers for your chip, the easiest (for the moment) is to read CEL data in an \Rclass{AffyBatch} and call the function \Rfunction{print} on this object. \section*{How to create a CdfEnvAffy that is a subset of the 2-genomes one} If the identifiers starting with `Pf' correspond to plasmodium, it is an easy job to find them: <<>>= ids <- geneNames(planocdf) ids.pf <- ids[grep("^Pf", ids)] @ Subsetting the \Rclass{CdfEnvAffy} is also an easy task: <<>>= ## subset the object to only keep probe sets of interest plcdf <- planocdf[ids.pf] print(plcdf) @ However, this is not that simple:{\bf the environment created does not contain all the probe set ids from Plasmodium}. Unfortunately, one cannot rely on pattern matching on the probe set id to find all the probe set ids associated with Plasmodium. The list of plasmodium ids included in the package can let us build a Plasmodium-only CdfEnvAffy (contributed by Zhining Wang). <<>>= filename <- system.file("exampleData", "Plasmodium-Probeset-IDs.txt", package="altcdfenvs") ids.pf <- scan(file = filename, what = "") plcdf <- planocdf[ids.pf] print(plcdf) @ Before we eventually save our environment, we may want to give it an explicit name: <<>>= plcdf@envName <- "Plasmodium ids only" print(plcdf) @ \section*{Assign the new Cdf data to an AffyBatch} Handling of AffyCdfEnv directly in within an AffyBatch, or AffyBatch-like, structure is being completed\ldots in the meanwhile, the current mecanism for cdfenvs has to be used. If your CEL files were read into an AffyBatch named \Robject{abatch}. \begin{Scode} envplcdf <- as(plcdf, "environment") abatch@cdfName <- "plcdf" \end{Scode} From now on, \Robject{abatch} will only consider Cdf information from \Robject{plcdf}. If you want to save this further use, I would recommend to do: \begin{Scode} save(abatch, plcdf, envplcdf, file="where/to/save.rda") \end{Scode} \end{document} altcdfenvs/inst/doc/ngenomeschips.pdf0000644000175200017520000026310014516022764021015 0ustar00biocbuildbiocbuild%PDF-1.5 % 5 0 obj << /Length 1138 /Filter /FlateDecode >> stream xڕVKo6W"FH=:maoMĵUk)Ap}8J<>~fWo?d")s6Ye%<*hDn3s˜8Ҋ]%W۱w;lLT0{GT\@D*^%YD^u,5o %JQi|21 `ZʛHEW:s=qB7*SU$ .V7(ђ@]l{DΚ}= i$v r.K'<- f3"lYX@7Mf4 SX+f;JTTĉuq"X{;bn=Nc@ P2yn&.ٙihЋ۵/`,P mgZsż yQT :})@^ױ`KeSgZ؎s%M"p"€6 P* eZPtyMؙOIێs(TRЙEEWkM 4BE܎nĿ/ P }$r)#})zR%X!x, Uҕ>-䙊r..${GNX;B ̇sj}$_OsGMRyH[Kz n[pr txJ˳ U|1@o6#; ,H3AՋk"$Rݏ9.GiZ l?E\*"R2' c0:FmG'"ˋ;DRiΪ\31j̠Ȕ MCd;5!#)FkZD&;22;xj,fWK5@oYv.3 rc-[xwN4Q_bȡg| zuy2/ endstream endobj 21 0 obj << /Length 1282 /Filter /FlateDecode >> stream xMD_lQ"ZڊPEjELqvmy&~=glpqW'_M31lUEϲ"(٥}'wiy0}Wo|H}C${BkaR#ӻNY4 b.XAldm%I2i%Ҁ ь1,Y $'θ׭?rv6{Htrю]FBGԣ! 4MeR<^}NB<ȿy~jKyjw \yH , {b [ e#5P kfG%Mqjۙ9ɝ H\mhC>1'RZ 'A u{ykCx m1hjBE~q{09ݪkt-Ņ BW<; AeGBMcM`sĆ2m( p!P}m d `v-l9͂y4VI9Vh?)K ( MڒS򊓪0%&]ZPr0"BU,Ch@_*%b }ek6tþl/t-]e?:(»~Kt휴N5N H„/UZ05ϐCr'alt|2kkZIcxhF۰VU ˆqΗai.^KS,Q@l_Ec`V?yӇ@e3<4-D,ZK?;!wvh7 7WxEYk$ ^r;s/={DpG|XV5/[Y,B-qQd))dUP<_l{w6qsU߸Y_UɛՓF endstream endobj 27 0 obj << /Length 673 /Filter /FlateDecode >> stream xڅTKo0 W9)@zk0ۺjˍ0G*H?Td3)>?}Y=2 3%M%I.dS'?]7LEȰ5 8s@CݠփN5:ݽ0!z+TeIR)$9XvukijP1|tK^=Zkۙjh}vآ\ s·2Yk_A0ѭΠCw&9~]!T{kSe\&|C9=uvv h\c0ɀ*HN]=nuyFh0DPncXdkb4.]E_B?#G;S#GGx躄O+rIF?Se.  *]ۿU$aM[,v`樀>Cwh:bʶZ%嚓âyɉEܨ A)`6S*z[_ӱ:N;T4ҘA*xvh.vJ.'?cbɀ`U?jr^CWq"{8(ڌ\WwxqTc[\ dpv#b&0 VLhjiqf5U]τ{3 24/b"> stream x3735V0PasC3 CB.3s I$r9yr+s{E=}JJS ]  b<]co100U@  P3 v,f[=n/O~085 )cpzrr\ endstream endobj 31 0 obj << /Length 232 /Filter /FlateDecode >> stream x}ϽN0Jl;Ta?pۜ7kBjikVb7/;8jC'_o6RsS-3[&0`Q0|T*M *pӌ_2 $Lo1ÔJc4|ݜ~82;eSz)<8`͊N9y{2hl endstream endobj 32 0 obj << /Length 229 /Filter /FlateDecode >> stream xő; @72M4(SZYZZ( h"8P+q3z ;MVYmcsd4ٟ9ą!8~̸+fܒ^ ke"e, tGd?˄b$U5Ҋfl$*lMgn CJhVʷ3Fip endstream endobj 33 0 obj << /Length 214 /Filter /FlateDecode >> stream xڭ1 @E'l&G\@7E1#BBBQRgEv>'S &3!3c4#NqRdn uS:]L> stream x1 0yд*N`A'qRGEx 7бC=q(8 vي1&]lwqy,N1y 6n_pa8&:2)љBztUUN+IZ^>j$qIMMR'*mse cL@I 9Lwni endstream endobj 35 0 obj << /Length 226 /Filter /FlateDecode >> stream xu=n@gbi|eYGH@TDjh> X VyyD%JC80/*v[ dvջ\/_Gvxv+١hJʞ2Ն(W FOFFl@&%`}b zdeL,>2~dgygL[41Ƕ hKyJ BasQ D endstream endobj 36 0 obj << /Length 167 /Filter /FlateDecode >> stream x3632V0PacsCB.cK I$r9yr+[r{E=}JJS ]  b<]700P?aA<$AD0H0 A6b#4o@ endstream endobj 37 0 obj << /Length 167 /Filter /FlateDecode >> stream x3332Q0Pa3 TH1*25\Dr.'~)PKW4K)YKE!P EObPFS@ >? uBP?(lԁD(.WO@.Jm endstream endobj 38 0 obj << /Length 131 /Filter /FlateDecode >> stream x3634R0P0b#KsCB.#1s<L=\ %E\N \. ц \. 5 7?D # P?P1?H{pzrrD endstream endobj 39 0 obj << /Length 107 /Filter /FlateDecode >> stream x3634R0P0bc3KCB.#S I$r9yr+r{E=}JJS ]  b<]0q7c.WO@.S endstream endobj 40 0 obj << /Length 209 /Filter /FlateDecode >> stream x? P C!;Bs_ZA,T;:9::( n>'GoqQzJcߗdڍZE5eujh}OSXcu4vB{%gQh@&lJ2DxbΪUdK 9T`P+XU.> stream x3332Q0Pa3 ebUej 䃹 \.'O.pSS.}(BIQi*S!BA,C}?7T10@ 6P?|'W [ endstream endobj 42 0 obj << /Length 213 /Filter /FlateDecode >> stream xڥ1 P #B[SV N⤎h=JбC1&E\|>?dј>c &tA$GOX4 "4 %]/#d5#MJ[h6%y=\0`..Y尀AK<@\@Q#6-WQwu;Sw ?kBKn&j״1a>7k.sk|]ŏf endstream endobj 43 0 obj << /Length 227 /Filter /FlateDecode >> stream xڵѱjAY,i|tNWbe!V&e->B|-XDTX>euڝLJ+Hޗ,ה?8G۹)ϲYo؎^$e;E*ɒPS݁T+(5OT@u%BMwF=poH-eua~nl]Tȇ`1)6AbXi DA O  endstream endobj 44 0 obj << /Length 161 /Filter /FlateDecode >> stream x3137U0P0bcSCB.cK I$r9yr+[r{E=}JJS ]  b<]oH?1"~`? L7?bl'W n endstream endobj 45 0 obj << /Length 223 /Filter /FlateDecode >> stream xE1N@ E?b%790;"E"T (AKq%GH"4o4v]_+^sk{w6[{T^o(=fKdJ~|Q_stgj8UR:EZ ʷcVG@VjU'3rع: Fg u1vM#bj2;4@* endstream endobj 46 0 obj << /Length 173 /Filter /FlateDecode >> stream x3135S0P0R5T0P03VH1*26 (@ds<M=\ %E\N \. ц \. Xv8'=3,X w'C=`?`A<7@ ? r  ,t endstream endobj 47 0 obj << /Length 166 /Filter /FlateDecode >> stream x+@i*6#06&$  (D@@/G[58"e9P!Zj Z)%eʡ^Rv3:N[|LuM+C]MD ! a9PIcУd/-x>o;w*!aVB78\ d endstream endobj 48 0 obj << /Length 216 /Filter /FlateDecode >> stream x}=j` `-A䳋M)PH !SڱCC |'ꫯo4J$QLS<Üh'+v 3v/ز^e`7O$e7e*Ɋ*#3Qs;*ؗ /@ih#2+1@[|iơy(sG=ַ G#ʳpH endstream endobj 53 0 obj << /Length 210 /Filter /FlateDecode >> stream xڕ1PDXl 磈V&&ZY+h G(ˆAB,ٙ}P!#y8ф.fsULԖI%+]'R5w=%1.iFe:o[ xcmrD/+lQa^n%k\h[%~Ҭ5.NnwZb.HhC5~X endstream endobj 54 0 obj << /Length 204 /Filter /FlateDecode >> stream xڕ1@EXL `EHaRK &vp4,- JBg7N @\e(D͡+QT쎜⇬Uz`.d㉻<U&);Q rDQMԱ@a1PıMmc ]y Z ~/:] {>tٴc_> stream x3532Q0P02F )\\@$2ɹ\N\@.}0PRTʥ(Dry(3773pzrr{ endstream endobj 56 0 obj << /Length 108 /Filter /FlateDecode >> stream x3532Q0P02F & )\\  ,ɥ`hȥU()*Mw pV(Dry(3773r - endstream endobj 57 0 obj << /Length 103 /Filter /FlateDecode >> stream x3532Q0PP0T01V02UH1*2 (A$s<M≠=}JJS ]  b<]` .WO@.E, endstream endobj 58 0 obj << /Length 205 /Filter /FlateDecode >> stream x}ϱ 0[|Fq+ vtr'utPty>JЂVCAn C>)NB<pmkq jZZpTvfJp4A!|ܚRieuݪ,;鷸"Umddgf$/qF+Q+]KC8ptj䐆ŀ "#$ʣN[ywa endstream endobj 59 0 obj << /Length 208 /Filter /FlateDecode >> stream xڍб 0Д[ DZ N⤎S ;!b #wBaj/9A]FG oPjT ߂[|>^Wn\1ڹ^Wöe;>w"ȑbne!'pΈlr1wE@vؒi`b5olOkuV lL$=o endstream endobj 60 0 obj << /Length 244 /Filter /FlateDecode >> stream xڭбN0 `:TG_ҖpCL &`J~> Uq,ĉ_]"hKZ_=n ; Z0+5RaK~5C%'>;*\ $U+u+}e'}^ܧ_"dj_V˿*'1S9}q2.Wl9ɒCТfeDE3vgZyٴfȅ endstream endobj 61 0 obj << /Length 158 /Filter /FlateDecode >> stream x3532Q0P0bK3CCB.3 I$r9yr+q{E=}JJS|hCX.O@D~DBD00H2? Iy0i߀ZNĥf2TV? r > endstream endobj 62 0 obj << /Length 115 /Filter /FlateDecode >> stream x3532Q0Pb3CCB.cS I$r9yr+r{E=}JJS|hCX.O7@s ?F?H\=u endstream endobj 63 0 obj << /Length 197 /Filter /FlateDecode >> stream xڽ @ p؞:jotr'utPtnG#tt(K>ȟK'S7xp> stream xuJ@'LyMr.'BBNK Eኃ()2dოgw\nZe+tyiZtW?zEN>?^_K^  )t"Y33BsrA㙢ƑJF :jD.$ &0X@ X {i6zCEPL> VlqZ`I'<EHf|F[(<|,ޛ endstream endobj 65 0 obj << /Length 225 /Filter /FlateDecode >> stream x}1n0 Ed0EG0/ ԡȔdР7 dPK#O'O *k!XnKVz>uөg^3e݋}N7Oo#XnkR 0,H"`nX,2d;F)ԃ"G ٦)eC$9َ}r9H>Gime2bֿɯꢻNǀf endstream endobj 66 0 obj << /Length 223 /Filter /FlateDecode >> stream xڭ=0 S1T#4T HbF(=BN1#2|QlSL``: Ҍ f}a^cstz=^NЀ`|U|+Q܏JfL5IbG|86*Um%1x(VDFN{ܙmw^{Ǜ)5xu Vϗr endstream endobj 67 0 obj << /Length 208 /Filter /FlateDecode >> stream xڕ;n14s5,r%[D ")S$"r4Gp`(RF}?i7> stream xڥ1N@Y478n- T)UL(ԛ,IdUq n#t-l#k&ĖH endstream endobj 69 0 obj << /Length 225 /Filter /FlateDecode >> stream xu1N0E49BM,)@T@"萒(9K. #3?pW=w<~(ё6[;ϝFOْSxϟ_dw7qB#h%^J"s-,&ï& M ugTi: d)ȧֿHee_3 Y}ETԼ4rs$jYh%t;#k} endstream endobj 70 0 obj << /Length 166 /Filter /FlateDecode >> stream xŎ1 @EH!%q1[ZYPUx!㎝Vd7<[W-SÉ@fޒYFLXr;)svdJ9{ %_@"-0*rࡐZ'pGb4"mz!IoMSK?7W endstream endobj 71 0 obj << /Length 178 /Filter /FlateDecode >> stream x= @ L2'pH-,J--ףy2ŒmkO1rX54])/ UԎ URvL,=&dk6>s]PFX`* tB &66aQְsdmN|*38w ]ZZ錀 endstream endobj 72 0 obj << /Length 141 /Filter /FlateDecode >> stream x3532Q0PbS3#CB.c3 I$r9yr+q{E=}JJS ]  b<]0000PX?Po?=``D xr "cn endstream endobj 73 0 obj << /Length 127 /Filter /FlateDecode >> stream x3532Q0P0b33CCB.cK I$r9yr+[r{E=}JJS|hCX.Oc`'\{0 ?0%\=Rm endstream endobj 74 0 obj << /Length 175 /Filter /FlateDecode >> stream x1@O75pD ,ZZh:JD<@J ˆbb%3򎃮i0f3c3n[6DM8eŠ8NDRrpEEVn4TKUT|(UBMҸHȿ(? endstream endobj 75 0 obj << /Length 170 /Filter /FlateDecode >> stream x1 P t*d |BB`A'qRGE> stream xڕ=@ #0e't$$RheaB5pJ 6&Wd^狔cy9ƹjzPRei.;-+RGN R[&U|H-+֤|Z3/PDx"_  {MءlQ5򃠳RkD0qM]Is Fk,Uel m*:9n endstream endobj 77 0 obj << /Length 235 /Filter /FlateDecode >> stream xڵ1N0EEirqd":K" * D ra8 j$\<̟|Ҷ9~JSJ/q]Ngr |y@T2bH!iY)0DI~B& #;NvWV #tb9w?1&쵹+'KUwι9mkQڎHQ*mAi7t-} endstream endobj 78 0 obj << /Length 172 /Filter /FlateDecode >> stream xڽα 0@εIG882:Ht>85g<G5oHYc\lːIN͌Od>"YJq&S"EE\-u׋p*X&.EZ7-}K7-^D_~417yi endstream endobj 79 0 obj << /Length 227 /Filter /FlateDecode >> stream xM=N0j K.Yo?)@[%h(pGH"1&+Ai4絻RF.x/~-O_yUì o[^fv'^TGnBe*TRUCQf4.,B"tF) F#a~̇ Lͥ2~"1e`9Cf1YD5- VM4kcЇA-ʭ endstream endobj 80 0 obj << /Length 177 /Filter /FlateDecode >> stream xڭб 0+ 4%q- ftr'>#t =/u AIn(ƚ!kxB%N_C!Q-$Ft9_Ռ$h+3;tA|y=8ނM?`|ҋ-xI ,vQOzxE:Vv܄#Jsk|jVmx endstream endobj 81 0 obj << /Length 165 /Filter /FlateDecode >> stream xϱ 0]r cptBp" hX ;;rpcHQT2kv%d‚ϧ˞L%SrPE^ />" _*?_^ӗw/ķ=yD-L@@+z]l endstream endobj 82 0 obj << /Length 201 /Filter /FlateDecode >> stream x]α0# $XJD1D'㤎]GQx!Ԥ%Coƒb Ly۵-(v$S+NQkg͂g\:]:r9쒮 < د׼C|V{ˀʠB6נ?b}gk{[[\2e endstream endobj 83 0 obj << /Length 224 /Filter /FlateDecode >> stream xen1 } p~r$7 1юZ(yc+ d/dj I8&,‚}bTl+bY\2L5N{Gs/Pܠ 1?3W-%_} endstream endobj 84 0 obj << /Length 251 /Filter /FlateDecode >> stream x]1N@б\D&Gع؎HT+  * ()@*>Vu,7O?_f竂RlSqAENObQ4xz|M=%&>ǤgL6aV[2(̭v 9LJt'XX=YjUI+.~ЉgPws+CF`CHeD%;#7R NJCwX}xU~ endstream endobj 85 0 obj << /Length 179 /Filter /FlateDecode >> stream xڭ @ @#B~B^=] I{O3鬛A.oď9”Cg ι؟nm8]r;W3zw6%%YUH×y4g Rd\\\grI,'rI65~\x\ endstream endobj 86 0 obj << /Length 223 /Filter /FlateDecode >> stream xڥ@Ba2 .HK^rh(<%anY .l;kXㄓ%jP89Ssߤ/]'R5-4GGʷ _* R#>^SoVAԘ5auHKxcO(, m chr >O k>:p6gȹGN;­z endstream endobj 87 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532Q0P04&& fF )\\  ,ɥ`l̥U()*Mw pV0wQ6T0tQ``|F ~8!"AD=$A= HԱ5 ?h .WO@.h endstream endobj 88 0 obj << /Length 234 /Filter /FlateDecode >> stream x}j0h0G=Ae'S!M  ԡtJ2vHhʏG#x`t/jJ)TBuuu|F6+9U|Eۖݳ%C̲kqf}N^*)_ %"י2S]`GNMOtdf@C)  (RX%&aȁbrq7jzor0qy42LXC#y|Pov} endstream endobj 89 0 obj << /Length 203 /Filter /FlateDecode >> stream xڭ1 0y'0mV Nī&;ƼtxA?Y> stream xڭбJ1YXf[ x{wVbuZZ(ںytG2E8s J#L2ìbSG+t48zr}Gze=k)o-=8qRs+$W89ps q+h<d"4IzrP?2BFRN"*:O^2 ixΝ)5]@\tDXs&݈w[! endstream endobj 91 0 obj << /Length 262 /Filter /FlateDecode >> stream xm1N0E i @%ҲH@m (9,+c7k4V^]#O//~c{~zp#-yn9p"H:QiST.*NU2JUrAd S\1V`"iUǬ(ǯ3&aFEd+B @ogh&ùJe.bA.VFN[Y-bķ? endstream endobj 92 0 obj << /Length 199 /Filter /FlateDecode >> stream xڝϱ0[|VI;`A<#0:ך@, mD)Π90 R |J_cz<]Pp+0ځΨT13z5W/j'Z|V7J!̫Hi\LP &2]p';5صB3i}kXok endstream endobj 93 0 obj << /Length 261 /Filter /FlateDecode >> stream xm1N0ЉRXr#d.I춑E"TjAms%Gp"ˊEzmwխ^ttїξ۾N77m}k[fϏWﯵA:mxP)E*"(@J 1UT-Ru* sb8/D"D"?p"N. ˰R+Wv#ffzp9vNs# SS5Aތj endstream endobj 97 0 obj << /Length 246 /Filter /FlateDecode >> stream x]ѽj0`0=ANJc!-,~? :%tۛ gxonQbGP&QH/X֐`C`^!g i&^2P{ԾQ`|J'Ql¦g9nٞQ7R&Mb?;F;klJjIr~V6̢NM;!) ; {vF=B&?Ň endstream endobj 98 0 obj << /Length 239 /Filter /FlateDecode >> stream xeѱn0n'AnHi"!R;u:;Jfh< ȀBj| k*+y>W?l>w-7[6GeӞ{=ٽu^kW)#zc, zޅ Z kzo6~ubNׅvw(OD:>&αy[eۤ.S-_ܑ endstream endobj 99 0 obj << /Length 232 /Filter /FlateDecode >> stream xUϱN0?` @BR$2TuF@R?Z$^ďCUYb컳u/ /l- kZ]W/ﴮ(bk(:Ֆ>(_?ܲT7,vTmr^HT[ s碆ou@3xMT#zU#iGu;*Y}(92&4i)uQEmfbD%bp&a)u=ԯ9ߕUH Z endstream endobj 100 0 obj << /Length 210 /Filter /FlateDecode >> stream x}1j@пXF7j&@!* I¸rR;a(:J"q?wqn`k{f͜Wk>_ddS[ vԐK%#GqB0"jD $=Z#9ܘ(v8G~o0Ay! 4f3Hv;AF<ğ҈V5RF0 endstream endobj 101 0 obj << /Length 263 /Filter /FlateDecode >> stream x]J0s/ymYw{qa]=yOQpEaͣ|=tI6?:UX*Tt>+XtZ55tE}/P,o/QA#+dG[;y]Ċ&rG|!nMʶr9&s"s< 8%v\-AEpA&}jXnEr0#SwDJx'4;wsl_o"ٛrwi\p(tg endstream endobj 102 0 obj << /Length 217 /Filter /FlateDecode >> stream xu=n@4A<ełRa).*J CxG.,gD4v! _{x S A^N2TG&(Jܧ7⪵~-uS[ Wu$ bJ hƤ!ˌJp3""Q4zj"| Ĉ404Lg(HIBI_YU!'J endstream endobj 103 0 obj << /Length 246 /Filter /FlateDecode >> stream x}ѽ@,ibr)BRT&bqu`k7Hi;wbNl@^U``CԇOr[`Z̡/ .V38Q!%)y\HX֔ң>t u5Zl\?dEqbƒ63kkSǬM><9,A٣ئZ5⋪]!6E*)z!Pk$ endstream endobj 104 0 obj << /Length 263 /Filter /FlateDecode >> stream xe=NP!L `. ./YD 0VjiM,J(#aHHUN1-$쌖9=&i˘V㓇gn)P]UqMoO67]B=[耯^+Bϭ3k\3X;o!wZ=|U%mI Zy2VɰȌj"T&vYѷш 1 Ake;(/xA endstream endobj 105 0 obj << /Length 210 /Filter /FlateDecode >> stream xڍ1J@ [,L^@\@7@B@L@+ yRXE!.#lBM"_39= d鸤P]]h*  %Ǩ =?ܣΩDmIZ7o+d? &/EP"xdQFXpyH3y-Ό ;,TlUQy|R> ?bkFW endstream endobj 106 0 obj << /Length 182 /Filter /FlateDecode >> stream xڝ= @ [03(@PL!he!Vji(XQ$-4`yjZ53 yCBE̢1,{ Cw4O endstream endobj 107 0 obj << /Length 311 /Filter /FlateDecode >> stream x]1N0`C} -mV*E"L  Fb`1a*< n+{Fs|O:wb<խ"=H)iqoD:?=ԙH"KQ,4acv J*Ō,ѓP/ЕoWw@'!9H.h VUq0PL†bxn h'ƍ|PLj1ϑ:v[BdfBOP0BZQ\}%80p B?- endstream endobj 108 0 obj << /Length 251 /Filter /FlateDecode >> stream xUαJ@ [y#;/I`C8<8O0Ub) W'A,7YLNgsz*,?Wf`{%W5W%ޢRlg gl,Rcޜ5C.1y6sNú4KH9 =nNU,uJ7N TlD)bx!?n{Hv1DT7RT5 Y*qwN29"'.޽LVN%#Q a endstream endobj 109 0 obj << /Length 214 /Filter /FlateDecode >> stream xMϱJ@I&y,GHL!he!V\hy<–[;g(|,?9riU˴b^^hۑ}UMVd;z%aGvOgv ~Ll|*C>pD6aF&y+\(?6/Y g!.)ӼP &!+GeƷfkږ[/д9h}GZ' endstream endobj 110 0 obj << /Length 254 /Filter /FlateDecode >> stream xMοJ@oI{Ý$L!he!Vj)`!1kaGGH"\5ǯaqQre%璜2zjʧ'*Jn8/(:%%=R:㌒5fQfD5jlp,3a ]o^ʘ5M P+l'e> W P&%7XN֩t王SvC&o5b,&u6pc(A] w endstream endobj 111 0 obj << /Length 226 /Filter /FlateDecode >> stream xM1j0d0A.jh ĐPt2mI Cu4%GءDeRI|BTLo t\\>p 3u7Vg-bG}.Vw]:l#RsPI;Rz < H`х#JCs;H ehQHs&I翃edgc6/s~#Cr_ɓǃC endstream endobj 112 0 obj << /Length 241 /Filter /FlateDecode >> stream x]ͱJ@ba B4ɑ@*L!he!Vz) )vy}K S|30rVr%_d\ S6n^ִ(y%(Y_sFɒ2NZ2R?n-bk#3qnOdzty|.; b+z9lzH#tB8CLFZb3v]zqnwfwaoUdZ ԀT@h6 endstream endobj 116 0 obj << /Length 159 /Filter /FlateDecode >> stream x-= P7l7Ȟb'BBR(L![8L SIK"6fxo<j" T=/oM3 endstream endobj 117 0 obj << /Length 216 /Filter /FlateDecode >> stream x}=@FPL t.˂V$$RheaB5ͣ():B ٗu?P@ވ tx(i@IRGN2TBT ʖt܎&)iT3j v:Lμ\{%@H G*rx>9k,V Rsꖶv7ja9W ~o7o WH%gWHe8p7T endstream endobj 118 0 obj << /Length 215 /Filter /FlateDecode >> stream xڍP KnG/E'Ltr0N GzI``poRH.Mtc\M|E@c˨-=+nI=rOT 0Ș)T `WV B‚>` }$P{efw]UaldQj7e&Tdu;[UnY:=~Y endstream endobj 119 0 obj << /Length 197 /Filter /FlateDecode >> stream xm 0ES o'}I$ IOS ;EhDCý$AZQ '3mvXQ,qQ(=H4iIsVGQ;2iQ0rwN8v5/ 1EP ȅP!y5bG46jSJ endstream endobj 120 0 obj << /Length 197 /Filter /FlateDecode >> stream xm 0[:n#4NZ NT]:v("6~Gc N/9JQ8AmQ`ˮ Lve9r`98&{P9zgϼ&j˗aYƍaDRH֎D@;a%wGPݳ$LDS3+1L)3i36zDX([O endstream endobj 121 0 obj << /Length 171 /Filter /FlateDecode >> stream xڭ1 @49t n!he!Vjih!kW/#SL N 4!6a؀Zt;(vfA(:"}BVsJBp܇#Nxr #u_[X s endstream endobj 122 0 obj << /Length 171 /Filter /FlateDecode >> stream xڵ1@5$p,HEVJ--4Z8 G ЙLi q8Ew>$rAnA0JAo nx]A '*U>QPjĴc#1Ș@(rt5tQ=P:R/t endstream endobj 123 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532Q0PBS#J1*21(%s<L=\ %E\N \. ц \. dKCHyـ D?LBAd^d? Փ+ Nl endstream endobj 124 0 obj << /Length 148 /Filter /FlateDecode >> stream x3532Q0P04S54Q06Q04TH1*24 (s< ͹=\ %E\N \. ц \.  3P170C=?? ??0HI.WO@.sk. endstream endobj 125 0 obj << /Length 99 /Filter /FlateDecode >> stream x3532Q0P02 )\\  Ir p{IO_T.}g E!2E@!ncr {XM endstream endobj 126 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532Q0P0UеP05S0TH1*25PAssLr.'~PKW4K)YKE!P E0Q({zd&!dh2#V? jP, 'W &QL endstream endobj 127 0 obj << /Length 127 /Filter /FlateDecode >> stream x3532Q0PP0T05V01RH1*2 (Cds<LL=\ %E\N \. ц \. <|&?؃IybP2?.d"'W ?Oz endstream endobj 128 0 obj << /Length 108 /Filter /FlateDecode >> stream x3532Q0P04R0T01W02UH1*2(Aes<M≠=}JJS ]  b<]@8r SK+ endstream endobj 129 0 obj << /Length 149 /Filter /FlateDecode >> stream x3532Q0P0P06R0T03RH1*26PAcTr.'~8PKLz*r;8+r(D*ry(030$`f lvnȸ:c? ~&.WO@.AW endstream endobj 130 0 obj << /Length 212 /Filter /FlateDecode >> stream xڕб 0+zO`[iM vtr'utPt>Z%1Ct0ː0F|F)RNH/wNi gW?Uk>*ۇe]< 4\A-8T.h7뷌׺ endstream endobj 131 0 obj << /Length 294 /Filter /FlateDecode >> stream xu1N0ЉRDr#$Kv%*K" * D h>;#Å;AP<)3f҃>'NzOxSzwn_~&_a,Z}<~sG14ZPr.25 QWQHyRdX>Y'?1bMƵЦvc]FT0x7:cRvج_K }n㿪UY]> stream xeϱ 0-}V[P+AAAQZLDߠnxilKB .ݠ|BRVS3 B#Jckd>>z HdJF򥵔l)R&uL/R0:Yڷ)FUcKYjoZ!H3Ycd_EUZU(QK H䎸fBHKJ)L endstream endobj 133 0 obj << /Length 258 /Filter /FlateDecode >> stream xڍ1NPPL |sVv#YD ,nFkf#PR7> stream xڅѽn@ `  $HJd@j9h< xC>Ҵ}XoV< endstream endobj 135 0 obj << /Length 213 /Filter /FlateDecode >> stream x}ѽ 0+ 'Z]?`A'qRGEI}4Ci\(Z_.\HPHmθG݈616uhJ3YpbW1Ht< fCzDˈ#_sd\ ¯ECkə½ E r^aȜh"VHrsdj4s(A4CrZ еPߦ endstream endobj 136 0 obj << /Length 165 /Filter /FlateDecode >> stream x3532Q0PbSc3CCB.c I$r9yr+s{E=}JJS|hCX.O`Y Hv!#!|=lGCH|0!#( rzrrSq endstream endobj 137 0 obj << /Length 238 /Filter /FlateDecode >> stream xuбJ@R f>! L2` A+ R-V$6ÌÎw6#JVB 9«N且7\g_FH9o.ՙ^m)7+̓#վâbB%Z32|%J#YYl tͦ dѠP,&Z#vVtn'0Ytx?D*!kާ endstream endobj 138 0 obj << /Length 219 /Filter /FlateDecode >> stream xڅϱj@_,i| ^δ1KuE.eGQ|K qea"89G#?|鋊uR/nT5^(}56':?k~9RS3@)"=Fgh3b)BC#I6<C<`E,b ^99zGE.Xv > stream xڅ1N@ PG)"#ɬ&PFZHPQ ]"qt\c0e~졁?vlON7Q:9 Fb/_8ZI<Nbd1Z^ߟoo.$}ǝ!Amuf> stream x}бJ@9R#d^@ kL!he!V`hyWݵ?qtr; YtblqʧդSuLUG2,RTL:*]-:o~q4bi4,GvHqD CJT![Q|-< endstream endobj 141 0 obj << /Length 222 /Filter /FlateDecode >> stream xmN@D6 )U$\ AE2EHtS .]XY@͓vvfk5zuK6T9^~?=dJxF u }J]iǨ{l3P͔,N.]r |71Ղ]g?.H??ҙUz6 Er_n^] endstream endobj 142 0 obj << /Length 259 /Filter /FlateDecode >> stream xmбN@%L#케rKZL0Xy| _7x-?kr1J_1L/7 M[OoT7(\<Үn~zrwwŞ=?z> stream xeN0 u%p~Hr'*EL &C0G#t)lSۿoUZ"Hgg5{|~x+}+/AwDDBdT9ՙ6U&L6ZbHAW FY1_?(dhB̐2 Cfr\3[5:UFq "⻎ Fx endstream endobj 144 0 obj << /Length 201 /Filter /FlateDecode >> stream x}н 0H->*B08Q;  Q 3t8O\, f36[|>^WЋS+> stream xu?N0 ]uG/mQlH017#V(=BKv*$OkO:j#;_96tzq7`}Ga}%qkz{}zwsA-{o9'`fGy )OZX#Ba `o ``C*BbQ>*g1O`ӆa$ "ҧ[bšriΖ,JufR꜊* h2k f{\'iגr>1f2ǢW,2f7_LLn1 endstream endobj 146 0 obj << /Length 207 /Filter /FlateDecode >> stream x}= @i> stream xڕϱ 0sn'0M[[V08G#ttU;QRDtLYL{'L2#_bw ZS)*z@U,Qmє7xw4_dXk$?[@n@ G\C̕u!U837>_0 endstream endobj 148 0 obj << /Length 216 /Filter /FlateDecode >> stream xڝб0 $ &:9'ut\G -&T pwÈa #!GauLv{im3KIkao:L: iyҖg_> stream xڅбN0PW"OUj H01 &jWO ?!qw6D|>w-݊nν{ ;yh( m G뭻#o/-{j/JhāhG N?IRtRvRLM?$ͷ6SN$(p>!/)ԼKYXLͅdN;F$t>E2'"Ϙ4)p-|ⷊ endstream endobj 150 0 obj << /Length 162 /Filter /FlateDecode >> stream x3532Q0P0b33CCB.c I$r9yr+[p{E=}JJS|hCX.O {LA08v0& =hAԃ d}F%\=mh endstream endobj 151 0 obj << /Length 216 /Filter /FlateDecode >> stream x}1j0`xKt86pR@3e(Z5c( zҳ!C+eە"yn)pǣ3'[<{I_'Nʗvk_7('B<P; !,G GIJHIPjhŠ]Ɛ\fa:Và'f$ ?U?~ endstream endobj 152 0 obj << /Length 198 /Filter /FlateDecode >> stream xm1j@*x%¥V *v¸JRHkh>AB^fV)~LUx)d*{y-V; ^yײ{e'|^{)5r*8se%5(Et){o `{VfdNjW|n.Գ墺p%Euщ,7>F`1wCG,0w endstream endobj 153 0 obj << /Length 225 /Filter /FlateDecode >> stream xm=N048fH"-D $(PRv.]X#!|ŌgyoOyÞ,n,Ş f2w\2>n.ؒ9#zЈ-1p҅FcFR+M*ȝaZ~)\?(ߴa<-֊w%<2%RTN:ȱP5772L n endstream endobj 154 0 obj << /Length 266 /Filter /FlateDecode >> stream x}бN0 P:TO[+D$G1!j#8vbiSB'쌊S|b- m6*.$t۫3J6}?%wY X7:([x0/Xw?.1}Ď~4;V!0X^G`Yi|3KK[륰ӃrIsz ãFav+_ endstream endobj 155 0 obj << /Length 203 /Filter /FlateDecode >> stream xڅα @ B~\ N܂'+~B1`A%!DyH>-Pd|Mt8E'ZKUyAoJ4!6B0s>a~1[GBTG@ \hYc&W=倢'ci4XQ\K5g)YMbW) k: endstream endobj 156 0 obj << /Length 229 /Filter /FlateDecode >> stream x]1JAE`]О^5XWpA#H ޣQNPLYb" O~IgD^c^up;a|<`o}~|b_S¸} |N$@'" CCwDǦX]X<M"J= ЋVM67xQmKҠk:Άj*9hwcf{ endstream endobj 157 0 obj << /Length 199 /Filter /FlateDecode >> stream xu1@PL &T$&ZY+h ތpJ 8FHO!XccQ>Fp4 1|*]QpCi 훑𷂈Z~]K9@ae%d p-5J҃J!Mq^.q@GaOkn endstream endobj 158 0 obj << /Length 191 /Filter /FlateDecode >> stream xm1 @ )ir4Y݀] F0Xz#XZ,;fASOFcM9MiIOZI)Q  iBj̚%]/#fjFִ65؂q h," g |U^e>*414,e{)3c'Θ9{6a8opo{ endstream endobj 159 0 obj << /Length 200 /Filter /FlateDecode >> stream xeͱ 0+[|VP Nj}EбCiˡBKd0L)1ok)>XJ쎘h֔Z4s)t9_h4S$oR^2Ӱh!l P؞ZɅ'z3Ē@mP,g({b_%C>G ׇid endstream endobj 160 0 obj << /Length 214 /Filter /FlateDecode >> stream xeέP <]ʏ#6يM@! X(jSqe`QtM(1_r1qZ.ۦ[t{:&arFnnQz(9(4w^7'NӪVsmՆڐi{-J@U* ֵR_ZX\ZhF`FS|g endstream endobj 161 0 obj << /Length 242 /Filter /FlateDecode >> stream xUϱN0 PW"y'$_@Znt`b@LXnRB>cꌝ "5q8g筭lߦmcj|vJݝm83ͅ}m"(>(g@@ĉiB$}J|D| >&A2 ʕ/*O}b1rt1'IK?tQ fTr%?B-z."&~he )x-;w! endstream endobj 162 0 obj << /Length 261 /Filter /FlateDecode >> stream xUϱN0:D%{H]#" & `ő:t&2fjg8EZ]/WTeEZӪ7;OKZï4X<9=}ޱ<ܐbKϊlr;}mGvð&d$0 nΓ :ye~3Sc?@hD ɑv!F]Ko țo|-xc`3O-'yZ?2lm{ endstream endobj 163 0 obj << /Length 181 /Filter /FlateDecode >> stream xeϱ 0  zO`j3:9::(:G |>BGx:h_;dF(hi8tvG 5(͂.eBYӆ'hj@ #ZJf[Y`I];{n!Aȱ>$.u'Jz~gWFfx endstream endobj 164 0 obj << /Length 244 /Filter /FlateDecode >> stream xmN0C[O@fTD$Sad*hy>B VD Kt?ۛvʷ27w]uK-_|MKR=󽯩W> stream xe;@!$p,/D ,ZZh3q`IA@v!Yd3!{}q yt.Euc";R#v}d^ Y_GЉ{4%ڮri!-{[ّ B>v%)BV`4BVZڐSLG3R1Ke6DJ-xJ_8N;JKMjJ endstream endobj 169 0 obj << /Length 208 /Filter /FlateDecode >> stream xڥ1 @EX t$ L!he!Vj)(rM\ ~}>wU>$]HYDQLbJX xɷH"ZMYVx@h egR4ah#Kju4ӒJ&YHrb`.j\+hcc%*t!AfM* endstream endobj 170 0 obj << /Length 207 /Filter /FlateDecode >> stream xڥ1 @EXS 8ͮ(VbB9ZRZX&^x hec5a㣤 jtLaLbJXV oD$N8x 0lX@/C7蔻B f 4VVkφcx}A#/k TZ;ƺԷt%E" }bS[. endstream endobj 171 0 obj << /Length 134 /Filter /FlateDecode >> stream x323P0PP01P02P0TH1*24 E,!2ɹ\N\ \@a.}O_T.}gB4PO,C}?K` @cs3; CPՓ+ a'V endstream endobj 172 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 173 0 obj << /Length 95 /Filter /FlateDecode >> stream x323P0PaCKCCB. \.'O.p KLz*r;8+r(D*ry(177? 'W  endstream endobj 174 0 obj << /Length 166 /Filter /FlateDecode >> stream x337U0P0U52U01QR - 0\.'O.pc .}BIQi*S!BA, !',@( p8#D` 0D >\!졅e8=2=-#2,)X7\=(o0 endstream endobj 175 0 obj << /Length 105 /Filter /FlateDecode >> stream x323P0PaCKcCB.CrAɹ\N\ \@Q.}O_T.}gC.}hCX.O9 Ėc `3Փ+ ( endstream endobj 176 0 obj << /Length 137 /Filter /FlateDecode >> stream x323P0P0W01P0T0TH1*24 (YBds< =\ %E\N @QhX.Oxd$,  (< X3pzrrV'h endstream endobj 177 0 obj << /Length 94 /Filter /FlateDecode >> stream x363U0P0T0P0"CB.#3D"9ɓK?\ȌKCHx*r;8+r(D*ry(6#' endstream endobj 178 0 obj << /Length 181 /Filter /FlateDecode >> stream x1 @/BnV@` A+ RK Er#Ep"[9-6 :'r"qMg Ɂn?QVpZHKXr;V3֤rjvT ,d<[ih1 ' %WqJ|k;pQvGƺ~J~JHw endstream endobj 179 0 obj << /Length 193 /Filter /FlateDecode >> stream xѱ 0_:n#xO`Rd@+AAA(}j]Arnc6ܗ<2|Lڇ) džBnIK^nGՌ# o#6;JN-(_)/|bAU+V]U"sbh9RI+[9hJm+܇Ͽi&c|/?yJkzo endstream endobj 180 0 obj << /Length 257 /Filter /FlateDecode >> stream xuбj0d=A-pHRB;u(@19G#d`d |' 󟖋;}O5\RQ`ȻO}c~[zIc%a,D!Q$mbG2bWh*^jL/.i AjS]3}`qd;<z<ĠuH> stream xڥѽ 0ةP+AAAѹ}> stream xڽJ@ƿ%``  h`xp` A+@--|tv)-­WXZdow*;9-8㒏 >+1*R̸*gZ֔Sz-eJ~{}ty{9+Sb 頁Ș2ԠFJ -_5J5f҂Fvh4P"VeF T߄iӹ{ =#0s@7IMlVMts~!|.G9#٘0\f {qo@W5/XI endstream endobj 183 0 obj << /Length 202 /Filter /FlateDecode >> stream xڅѽ 0+n/ t N&X؏+blkqRv= (+%66l8T(ԏPL]jFyb8QbL51|=3;*X(mu }6f\-~ͽ xTk݋6o]ÖoW1\9_?D߭k endstream endobj 184 0 obj << /Length 180 /Filter /FlateDecode >> stream x3333V0P0b3 PH1*25\Dr.'~)PKW4K)YKE!P E?|@``PL1C(F*  %CA(6ŃF1dP(UPP9J>TxHJ(`\=|3 endstream endobj 185 0 obj << /Length 130 /Filter /FlateDecode >> stream x373T0P0b3K3 CB.31s<L=\ %E\N \. ц \. ? Ph707000c~4ȫ_4,q.WO@. endstream endobj 186 0 obj << /Length 112 /Filter /FlateDecode >> stream x3634W0P0a#3 CB.# I$r9yr+Yp{E=}JJS ]  b<]A~y) \=i endstream endobj 187 0 obj << /Length 152 /Filter /FlateDecode >> stream x33г4R0P0bSs3 CB.S HrW05r{*r;8+r(D*ry(*P 2C@,dBPBՃ)A0@\=R endstream endobj 188 0 obj << /Length 280 /Filter /FlateDecode >> stream xڽn@ Ǎ2 y/D%dCJS کC!Q&<#02\M90qwYSL)ݭ(K(3SR7n oN>f3?_h/{B@J lF3@.!-@A> Aވݜ*PB QAo"|s Fà \Ji oץ%Ocj{:T~LpaE `M5(QlWq2 endstream endobj 189 0 obj << /Length 184 /Filter /FlateDecode >> stream x3336Q0Pa3C3 CB.S3 I$r9yr+q{E=}JJS ]  b<]dEL0 JP 0QR(ڡfZ D}L1Nqzrr) endstream endobj 190 0 obj << /Length 289 /Filter /FlateDecode >> stream xe;N@rai=`;qѰR.@T@I.J|7a҈$Ci>˳؝I}^M iI/y78K6'of֘)nb-}~|bvwE)XQd9!a"[d72EW:,wX=0;rؙnW-WzUR,k9M<Iz:HxDLՐc|c=1;2؉^]Aĺ7_lo'kH;tۀ_"=\lhsoW endstream endobj 191 0 obj << /Length 160 /Filter /FlateDecode >> stream x3731R0P0b3s3 CB.31s<̌=\ %E\N \. ц \. A70``a~@ m :y 4!B3  4'W +q endstream endobj 192 0 obj << /Length 210 /Filter /FlateDecode >> stream xҽ 0+!vuФZj? N⤎nBh>PWj#:,{)=F(c[eZJ *8~91d plp/ër endstream endobj 193 0 obj << /Length 333 /Filter /FlateDecode >> stream xڍAK0 ^{6LSaNAODGaRAaԉ.x ?dJg9*9g9Цӯ'9+ezӉL/h[%=tvuLx0ȶ `ka5@!F֠%~ CnɱCȅsZnpIm1u2c!/Wܣ[P `Q P{&{6Gq.L!qvNCQ&yи7> stream x]J@K'phJB`<'у(>JM?v76Us]\po˚w%}ТuK=x}uK ;%ÆK[~.xvnЧl;! {:@~UB>V?gjaH/!I!9B#$ K$,9Bd$i2I'嘜igf]H LhRdBsKF2+g6e$as+voC27]B-=f endstream endobj 195 0 obj << /Length 229 /Filter /FlateDecode >> stream xuϱJAba yh+RPK E;1 tƽpS|?;?xžjs3TC=-r+SrgkkrKyrM͒a{ծlB-`a:`u)xuwGW2&e˯ɦnh huaǨk} [ bԪob"EzONoɌla endstream endobj 196 0 obj << /Length 213 /Filter /FlateDecode >> stream xѱ 0; 4X-P vtr'uTt7)7&/“ h4"rMӘzd endstream endobj 197 0 obj << /Length 203 /Filter /FlateDecode >> stream xڝ 0OKдv vtrAPGAEA0G#8:ANȹ-Lp;"dJ Z_V[UglJ#IWc>NҽIs-0pu@܀_x vZհu/{#ҡ^EA^UzN4 E A2;Wa V4'VhLr endstream endobj 198 0 obj << /Length 212 /Filter /FlateDecode >> stream xڽϱ0$7 x/$N$ &:9'utf,ƣ Fp $K8q b~bNe/DF4AFGi[?2%72byg6Nh:]hBQ֩L)϶?$nId[XmFiǞzՊuA63` ^j endstream endobj 199 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 200 0 obj << /Length 156 /Filter /FlateDecode >> stream x33T0P0bc3sCB.cc I$r9yr+s{E=}JJS ]  b<]000```!$T ?h A30c T" h2FG&\=ak# endstream endobj 201 0 obj << /Length 275 /Filter /FlateDecode >> stream xڝN0?+C$/~ @pKV*E"L02`ȣD`7я$7d*:}$ X endstream endobj 202 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 203 0 obj << /Length 125 /Filter /FlateDecode >> stream x323P0P0b#S3sCB.#C I$r9yr+r{E=}JJS. @-\. ? :  .WO@.P endstream endobj 204 0 obj << /Length 161 /Filter /FlateDecode >> stream x33T0P5U52P02T03WH1*22 (Xs<L=\ %E\N \. ц \. 6 ! Ր#0$z $!03`a |\=[3 endstream endobj 205 0 obj << /Length 220 /Filter /FlateDecode >> stream x1@`CW ,I0Q ne!V*Z'7J+)Shfe=1fOA2∇n'MxӞ#슓U|<)dg9P1csK^4Ї g Z7-Vj]p azկTP)*ܨF7́ ,a 0@ A/vP`iCiyA_ endstream endobj 206 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 207 0 obj << /Length 203 /Filter /FlateDecode >> stream x=@H\@ȜM B0X({+ba8垫|>2Pԏ~?Ѥ$|@jRRod5Ԍ;*gX@l$u8lSyEȞn!X#xiTCƩFHjODO'0vBJ#n $"&ݏ endstream endobj 208 0 obj << /Length 159 /Filter /FlateDecode >> stream x3534W0P0bSCCB. HrW01r{*r;8+r(D*ry(0a@R` `$@z ɀ a/ m?C&\=?qjS endstream endobj 209 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 210 0 obj << /Length 218 /Filter /FlateDecode >> stream xڭн0 p[*y#4"t7p  }4бCHpH'n[~8{`zz9> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 212 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 213 0 obj << /Length 160 /Filter /FlateDecode >> stream x36׳4R0P0R5T06V03TH1*26PA3#Lr.'~PKW4K)YKE!P Ea9$luPفX$N#Ccagc{  00?r Jm endstream endobj 214 0 obj << /Length 162 /Filter /FlateDecode >> stream x1 @ᷤL fqC@Vb--+'Gˑ<@Ⱥ!X l3pjZ>DŽm:L#c^[z?.6 6KNJV- -reByDz 7U}`(D,uxI0nҷWR hhKob endstream endobj 215 0 obj << /Length 202 /Filter /FlateDecode >> stream x]= @Y6sݬ+0Z *ZGQr!n5|ś7ȈBR[^0$)?G19]/bLւ :c:k{-Ŭ`m88u t&p2 lB̘Ϙ> stream xeɱJ@; $p M!澀dF 1` A+ Bv362e]X'qι>giF'5Tkè;.:TQ݆UwG_oTZSE%yB7zȷ CD`Al`^Ѓ\F&i!Qڤ5#+]VڂQS"w)͊S28`?ah֌+.1%t}z= endstream endobj 217 0 obj << /Length 236 /Filter /FlateDecode >> stream xMJ0?0> stream xeпJ@o \`^By]  @-G̣R^w]9 Opj8>xPS5ZOLIppu%?^^qDzŷ;JW\ׅˡ~ lr&Vg{'´N2;s8Gvn=ЪQob]pл ~^8:g007~ʞJT Ͼ4sM^!yJ[X' endstream endobj 219 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 220 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 221 0 obj << /Length 257 /Filter /FlateDecode >> stream xmJ0'y h[ 'i((ysƙ$;dfjj5u=5mMrPٿf~jg6wW`G*`Z@y`5@N08F  xP f͡HmVJ[\8 )qYTN KJ8L3#ęgDUk-2gB8&%1Dw>vq endstream endobj 225 0 obj << /Length 95 /Filter /FlateDecode >> stream x353S0P0R02S01Q0PH1*21 (Ads<L =\ %E\N @QhX.O @9HS endstream endobj 226 0 obj << /Length 237 /Filter /FlateDecode >> stream xԱjP'J $)!LBcvwtO?3tʘ Gsn--7V {-Cvg/ﺮ5{r#5zwo7v(,zcA$Hi"{H;{";`pV#fd) c97GO1xrO3vSo.NdE"nWw9_2>Ժ#G endstream endobj 227 0 obj << /Length 382 /Filter /FlateDecode >> stream xڝ1N0D,yJȀb J(> U)",eUM~VJ^R, bm~|}gOvc;^|}~|p#$˷YU[LU7KeYF-1zVt qV9-Ti̬jcDG:U#F)R]"X )h[7(RfRd Vi%(E:8A}$](E7URhw.BL^dx')z TT2%AaΕ[Q/a`D a¢jBLx5 J%aQ4>TɨW;N˹IA 0!@Cn+~?]T endstream endobj 228 0 obj << /Length 312 /Filter /FlateDecode >> stream xڽj02n#XOPKz)C:NM ?ŏ1U )ϲuwVJK%oݭՍV7+E놪WYztT5Orj|/5US<]bf Zs`q0>p7O\1 <^ rC]M\=)gpVK腁ANOlVpV![^tޕ?dc ,c忘/S$l6C{mF^r!Hts^J endstream endobj 229 0 obj << /Length 402 /Filter /FlateDecode >> stream xՔN@l6< 5wy&RheaBh< @9aY]H$;;3;y~ә볍γ-ݙ~իowFߛqEJVW_~xVB*=\g:Ի@]V}JU! endstream endobj 230 0 obj << /Length 245 /Filter /FlateDecode >> stream xڝj1 9沏y ݋k{쩇ғAћ=H؃߲CL`-lo =|oK.aN<|-dT^mlFmٌWcoqn> HɁX 98;[e"D}禇Mw,,#V j su몄=]}cSY}]w`O` V ~֖༶_%j~ endstream endobj 231 0 obj << /Length 125 /Filter /FlateDecode >> stream x342T0P0bCC3K CB.CCARɹ\N\@5\@a.}O_T.}gC.}hI\. A#C.D33Pa7#̃ y9ʣ>:"'W v endstream endobj 232 0 obj << /Length 107 /Filter /FlateDecode >> stream x3533V0P0acK CB.s I$r9yr+s{E=}JJS ]  b<]?\$ ( !.WO@.!8 endstream endobj 233 0 obj << /Length 308 /Filter /FlateDecode >> stream xڥ1N@gCA2 G`.@lI|&Rhea|x <Ć0̲ϼDmd`ggCګT״}Iz>\|ʼn|Ƣ=,VgGTaˊ+lvuLC! xr~`]T VIm o0/m+H-8٠HŴ̃%'b eA lR(~ FYtG%4xڂ~V *L ^TjCyĺ=LKg 9鏀-uO endstream endobj 234 0 obj << /Length 283 /Filter /FlateDecode >> stream x퓱N@ e%ʝNX*E"L @0< y{{iZQAɿo>%Ct`inCp&YvwsKM1;a8?>^ҕ%s`Ko F*MwR*^nJom[w)}KDJXĢȾUAB֫~o)2PAշ%{Sh7ԃ]nۅ߶> stream xڽ1N0E"4>BHح,-D $(PR%>Z#l"WAg}{+nǚ^يXq{NiQy͖K9TꞺ=(te!LJBzpLa'=0s EsB5qgZoVVPJ}!J,D;'^Ezdg|F WѮ9!!9&g1#&$| 3fkj`GsA?M[ũt }gz endstream endobj 236 0 obj << /Length 271 /Filter /FlateDecode >> stream xұj@ 3 Z+4fHS@:u(hyD оY~wW!7˩]%vβ˷<#Z qMUѨL྄Gc endstream endobj 237 0 obj << /Length 275 /Filter /FlateDecode >> stream xڍj0 e2hCI PhS۱CCZJf endstream endobj 238 0 obj << /Length 191 /Filter /FlateDecode >> stream x313V0P0bS CCCB.SJrW05 s{*r;8+. ц \. @H2j1TH1P(y8gJ1R `JL1Нg|lG'W  endstream endobj 239 0 obj << /Length 369 /Filter /FlateDecode >> stream xڭN0/K~H*J#HHd@uFL x?GVn*Pb;]V-YsZx]XDsV4a]4ÍzxR-DQ nŰQhk$"THtPpA|ANmCb=\I*WEI?AFc.gTET{H~?d&>CKF (,@aR7C;aʀ a Gi11X"bW t>XV MNq2вI3 :f=>;3 s\raj.YI]l!fq5; „sp endstream endobj 240 0 obj << /Length 210 /Filter /FlateDecode >> stream xڳ0S0P0b cCCB.ssJrW07 s{*r;8+r(D*ry(0o`Ie1 Xp( Ube0`V`Y1b`X@=p8 h=?zzu/a50,`t ih endstream endobj 241 0 obj << /Length 146 /Filter /FlateDecode >> stream x31V0P0bcKCCCB.cb%r9yr+p{=}JJS|hCX.O ?D PB1X/y`i؁A0za?J.WO@.3 endstream endobj 242 0 obj << /Length 222 /Filter /FlateDecode >> stream xҽ 0H-} h[ I(>B]*I!a/#wy&|EH2+B3x>]  d)*Q^-$tes$hUoj}g9ONCzb\yވO-y7yewRQtoxPe'UfuH b endstream endobj 243 0 obj << /Length 286 /Filter /FlateDecode >> stream xAJP. :'{ U,]W҅b/xGR!d̼y$ L'Ci$%!, aJE:ۑ>NAO"j$Jj/XS:Q3j4~7N${%u,JXR7Աn()nͻy#_%\7 vP endstream endobj 244 0 obj << /Length 111 /Filter /FlateDecode >> stream x31V0P0aCCB.cSJrW06 s{*r;8+r(D*ry(0o`&A(1` r .s endstream endobj 245 0 obj << /Length 258 /Filter /FlateDecode >> stream xӿJ@+ }s8@88O0X`e,,ME}I @Xabfn?w^ͧ{]]"kvfř{~zlu~]+\kv2HɎY@КѩY`;zjeRZ58J$}¤A/yB$Uީ>?ï~_8zѝn7wEf7a9j=)BVM endstream endobj 246 0 obj << /Length 198 /Filter /FlateDecode >> stream xұ @ ДBE j;:9: * nS:vc!K.!K| %)E!֒639-ij)UT US*]@cfWl:%uW+~Ž> stream xڽN0utKʼnnJ+ &T9}>Jc(;۲,Ȑ|>.Uu(Gko+.h+u #4Ox?wh6tRdD gft: sQģ_zm>rU"Q-Ø whJ"5v[\nil4r?:XTG2oJI~E⁦$lt?,m/p{" endstream endobj 248 0 obj << /Length 285 /Filter /FlateDecode >> stream xҽN0`W"GȽrON" & ㊁GiŏCgmfȈb}E)^yEd^Mqz`V|IƮ,on>f>A@BN j]D;hH Q1Q󍊶e7F8XxiVWE} ?r^ ;jfԠӪUX{#[t屿-YպvZmc|y'˿ \p [a endstream endobj 249 0 obj << /Length 184 /Filter /FlateDecode >> stream xѽ 0-y'06 ftr'uTܚGQ;祝\݃~ +0.0xH:: eOPZPwA%ޮ#r5 )&;3D"Z*rLD^cj&Uؑˈ^t;;jUxa|t-?>W`na o? endstream endobj 250 0 obj << /Length 296 /Filter /FlateDecode >> stream x]1N0E"\)sHR4HE"TjA-G\0hŒO?h,5yK%k5k(2Uof7Էrm>?^M{zjy6Þ1 (+bv`柀UJ"~# N>t%%1!*0jQAzj:ޖ> stream x= @ )2(I#XQr)uv! jc_13{b-lHlH\J@2$]kH)F1!AtG "Ù`*Coz_kjSӵrgFOT&.Y<,I(d&t^Pkԏ-b0P0+f endstream endobj 252 0 obj << /Length 199 /Filter /FlateDecode >> stream x= @ ir &H~@` A+ RK Ex )SHY,{| iP2(mc)}"lǨR.ft:w9X._nY#4RFH}Uʨ|#yAmܚ[+wcw蟒/sk2WVr @T" endstream endobj 253 0 obj << /Length 293 /Filter /FlateDecode >> stream xڍбJ@ W#d^@hs BB>y)l ]>vϞ$x f8? Ky1yvaC,肗!/&&  c +c,drP ,fӖO|ٌxHv'T7eX _%~5(PYQTiVw*I]ڪ$u3SXmn'ωS5^%%^dۨ^>AB e~OD3j'Pj*[N^soN! endstream endobj 254 0 obj << /Length 370 /Filter /FlateDecode >> stream xڝұJ@YR#d_@E),J--˂/+_#֙l XowvYcc3?4V?ip97ٰwήLg縮¼<>lyybN͍5.O/B{7UD) R=8[Q+Vj3ZIFuv[H1ZV'呢Q jI X5kKHH0ʱ> stream xڍҽN0:TG_%tR$2 Ā[dc%oO"]\LK}ɽ(@"6 Ub)TelΣVN֎X%ҲFV8!TZ^՞j#{)'F2N4jvQWQڱ/";6lC4*f}X `aUca7Pl*L5L> stream xڕұN02DGR҅HHd@1#f(yw+R:Ш_e{X6\w ux]i_^cشmaeCxZPp)"b~8yxɘLXbj45NP .s>* ؈)Kr)׉4n,I4x\sf{4RQV:+uYPVbyI9Y4~جId2qd2+bx&u zIzA\D3|xwP@i-hJN* 7}?: endstream endobj 260 0 obj << /Length 141 /Filter /FlateDecode >> stream x363S0P04P52V"CCCB.C# L.9ɓK?\ЈK(PRTʥ`ȥm` `P0C  Ȱ! 0`< `r W( endstream endobj 261 0 obj << /Length 347 /Filter /FlateDecode >> stream xӽJ@ )Ӥ}EVSZ]!Vji(7  Orq|63`gO]!{-d> 9\d% c| Iq"!Y8O`Zƶ֌IRumnYuvLb\d_H׾\ƂTH3 I-sƫIaMUZRl,TʧXIۿa4Te* r;־<'l(u^ф W˝XÔ4ļ:Obn<*ߙ/nBn&_^ZV(,toJʤXXK endstream endobj 262 0 obj << /Length 160 /Filter /FlateDecode >> stream x3734W0P0a3 #CB.SK I$r9yr+Zr{E=}JJS ]  b<]S  Q~h8hv݀JPJCJz - xh.WO@.p endstream endobj 263 0 obj << /Length 316 /Filter /FlateDecode >> stream xœN0 }>BЖ^*D$n@L(} I4!ϯo.J]TW#*oy|xK%z.x@GF D[,e@2Y]d=86jh֠f|5gNÓYv?NWJ)^xby LMIGUJGo'KE`mz%5q37]q$AvuD B$'$~ endstream endobj 264 0 obj << /Length 253 /Filter /FlateDecode >> stream x}J0 9`^@輀e͢ ɃxR|> stream xՐJ@'KޠI  ēzTdh(y=F]lvAg.rS}g9+YUײݼ<-璱ZM&-W = I?(wta@.(BDa 4`j5,DeDIs_[_ +Θm$@ޑ i xu%2qi֥/+^' endstream endobj 266 0 obj << /Length 230 /Filter /FlateDecode >> stream xڭ@'l&o`MF,@S^uX`}}}+Sg6ػW33_f8'3]G4fnP)P/XF,|Q׫OQiSfNIس @lUlhmt 3OV GMwڰMmps$r1'RVIƐ4 9{ qf"1w{4ï}fc endstream endobj 267 0 obj << /Length 236 /Filter /FlateDecode >> stream xڍбJ@H0MMa!L!heqX偊>>>–WqƋJd횳7Ӗ9wK~j镼pGSZ֒dլMldPdg߆cl?MY'G-IXE&SbDof{ jp endstream endobj 268 0 obj << /Length 130 /Filter /FlateDecode >> stream x363S0P0b#s CB.## I$r9yr+q{E=}JJS ]  b<]?00``E@Yr?H? #.WO@.6 \ endstream endobj 269 0 obj << /Length 170 /Filter /FlateDecode >> stream xϱ 0 ): I}> stream xڭ0KHnB&N$Ltr0NUx4Gpd &&߯}j>]b UnBIJ9]! BkA > td# # :ګ^Ԅ/B/ (/)} f>,E,r3/FדG}oI\2i6C=,c1ҭ5yVvӲ{ endstream endobj 271 0 obj << /Length 167 /Filter /FlateDecode >> stream x3132W0P0aCS#CB.c3 I$r9yr+q{E=}JJS ]  b<]01?GF  ?0I@ `L0 " fsh'W c endstream endobj 272 0 obj << /Length 168 /Filter /FlateDecode >> stream x3132W0P0R5T0P07QH1*26 (Bds<M=\ %E\N \. ц \. ~TBNÉzH07ȃpI("0@"L|`z?В?r ~'W Bf endstream endobj 273 0 obj << /Length 180 /Filter /FlateDecode >> stream x3332S0P0Q5T0T05RH1*25 (Cds<LM=\ %E\N \. ц \. 0TH1;Ŏ!P d=%P^@{xH1`oR$`(rzrr;7 endstream endobj 274 0 obj << /Length 225 /Filter /FlateDecode >> stream x͑1@EXL (HHaRK v9G$8KDK7d#ɥ!M|::xǢMSGug c4ZV~B+\ωG`2` =n@+JV3AcfhFn ] 3|V_,v>l-Odp8뺭SU^*;]2" >e endstream endobj 275 0 obj << /Length 293 /Filter /FlateDecode >> stream xu1J@7Lbs3'0 fWL!XEa !ser%{Fccf?df8].|iKfׅ,ӫY&Ue5y}k??_L^PK;"Jbd([TOnO:PvS2PJ ~#݅w;14ZK-~-΋3z&ۣd*ިALʯR 5  Z0D+5 )) "׈k7r|,GVp(8b"U %|9|1Gla5׵3b endstream endobj 276 0 obj << /Length 293 /Filter /FlateDecode >> stream xuѽN0> stream xڵj@=, 'nД-z)ОzAڛ/Eq.?,vI__v PV嚲Ԥ%ULy"}9!,a="M،> stream xœ=N04Mn@`m,)@T@ "(>–˶%H 3`)eGW(K| Um?qU f@4buuo4kL!lL[EA{SBKe639TP2h"!Gn< Q%{.1>&!S-(.Jޅ? _?rr+=jyI+ Bba_.L#DE_E4ЩAضNg˻6!pp8Bd \77ҚZ endstream endobj 282 0 obj << /Length 292 /Filter /FlateDecode >> stream xœJA =8H3oyce<-,J-- Qmea+q1 {h_I 8 K o<@Qg߇7_bQ?>=>߁_cƫ^5Ɲk /aBcL#^G=E;L[IqrxS,,Ј"ЊjF:AseԑE"9q;s}E7MjqSV> stream x3530U0P0R06Q0"CCB. m\.'O.p49BIQi*SPE!#E?4Crzrr8 endstream endobj 284 0 obj << /Length 415 /Filter /FlateDecode >> stream xڍԿJ0 Wb?Sf }@}T ( C-( SȴL> stream xJ@ 9,@i4IB1PAГ( -u&@Cfwg?INc:$dD/{,יnr.K.J}nM୾Y23*]嘱vw}d`Y "7+/ endstream endobj 286 0 obj << /Length 319 /Filter /FlateDecode >> stream x?N@pk;'َd])L0VjiQ8%ad6lh!e\\_Tur<'4~pg_?hWP4*MPRﯟwJv7PF/T \aD?M&([}< p}oyP=fsP6YF4l:b%K%TG'Pp4gdhWAobu^!+or0bbU0m[ yblD. sgIY).T":"n}vs n z_]] endstream endobj 287 0 obj << /Length 234 /Filter /FlateDecode >> stream x= 0ABU8VQzGէhd ^C">zֶ@>qx4>@o3]Js4]yVdLT8U9Ed 1$6.1ҾhJ5TFcL"t.ILeA`S[g? (D e"ac! endstream endobj 288 0 obj << /Length 338 /Filter /FlateDecode >> stream xڝJ0 =rՃE`<'(ɅD|Cɏ B5Lgd_jv+gJOM%.Z;1oDqt)7,T==>ߊb~v*Q,e+,@-C*ql`a[i!Anp ,]v ݝ<-ctnKd G,ׁ렷>nj/8da"@!bh 9ƄuA+Da H v䰉Y]GoآzS*5{u.xpO}|;`Z\K0LWPG6S q.>Po endstream endobj 289 0 obj << /Length 288 /Filter /FlateDecode >> stream xڽN0 uo.HCL cDhy>Nl;b>vlǿkj;ê'lkVX^_Z\RՒnoqX;/Q0 ɨ;q;@fa[q7mpᒤk`-zL3.&x|Mp}w̿q|Q119DoTG=27bc\,d pYG>v) xd( endstream endobj 290 0 obj << /Length 290 /Filter /FlateDecode >> stream xڭ;N0'ri߀ IABiY$R AE HGQ|[b<|μch]}y~MPWC06 11@EcbؖC4o>}3r0X.ҙS-ˮ!qIhf!3CvApHYK&hfAyg772?xG0sIPCMBnEW8\h >iIk1i *LoNe@ endstream endobj 291 0 obj << /Length 193 /Filter /FlateDecode >> stream xӱ 0Д[&V I]m?Oء̅ wK. Vrƫ yr[;cr _ d_3> stream xڵJ0Sz(7[W ba]AY3XZ{* DDXS툨#;Ic֭ڤa  A )#(z' p`9R,1t64MI`SSC \1O endstream endobj 293 0 obj << /Length 229 /Filter /FlateDecode >> stream xԽ 0[|VvP N(G"fc~ H]G Gum:tqpLXc!A>ȣp#yf.9s5U)j 뻲TR(PR\̏SSz> stream x313R0P0bcsCCcCB.cARɹ\N\ \ a.}O_T.}gC.}hCX.Oy 1&VROhw=X~` c.WO@.F endstream endobj 295 0 obj << /Length 123 /Filter /FlateDecode >> stream x313R0P0bc C#CB.cCJrW06 s{*r;8+]b<]?0 31C=C(1'W % endstream endobj 296 0 obj << /Length 289 /Filter /FlateDecode >> stream xԽJ@9R,L706r ;KAE!]h(+n2Ό,N"KLqN1ّ8|DW9ޙ%e5_ WL\pm@۴S[i#GLo8j^IU~ ѤnF/}6ӏ?vR?;wI'Щ!"&> stream x1n0?`-!8Q[H$2 C @ r`@yv]kߖ> stream xڽN0 ]u䥏PEF"D$02 (}o.NpN:cߴŮLC5ni`Ew\wX>Rbycj,7TS݆ seN; s;)䜔, ~8s'ڥV`jzcv [fߝ'%yAssJ`y#r؍ШC7NOTMUB 0r-uTN} ^ś ɋ endstream endobj 299 0 obj << /Length 324 /Filter /FlateDecode >> stream x咿J@'ls%SZYVji(XɣQ+8v;O $6;0eQN I0K0=ƻX=t#}PBטNUx.TX\˽ gpU<>? َ֧JhRCí7ɒKӲK9Fpr2,HN t;viGmר[z5ڻziN?ގ;K!K_:,q ֆӂk_Hkt%"L DSm'q&ЀIJ}֥ endstream endobj 300 0 obj << /Length 201 /Filter /FlateDecode >> stream xѽ 0+[CP N(GIqpӎxi'0?w%;}< y=q> stream xmOJ0tQ&GH.t BЕ q.]( .d:73G̢b&/_m֧͹]ڞT>ƾT]k\٦I#oj۩kUp*[ݕT]=ng3!r"W(hL2@A.C`/0I qH1C%|b2P E|Qebm5R sPoeC<7ĹKZ?,0 =,) 1-^L4;3"Q{ ëx>$9V]w^ endstream endobj 302 0 obj << /Length 215 /Filter /FlateDecode >> stream xҽ 0+ 7 hjA3:9: *>Zɘ-tq\.OMsj7m9{P [R+D6ydbFel8G6F1&qy}ó-5i(KwEj1ob5+iWMO:E TiRgpг9iMu3R}oݘN. endstream endobj 303 0 obj << /Length 310 /Filter /FlateDecode >> stream x}JP+.@d" r4ѪZSZiwB?^eT;xL!yQ rq(8"}_@ߗFF,uT`G5c9ZF\HD QaZդÉ4L3RV']# qϢ?QB+ j8ÄZ+=P&LgPUo7pXn&9=I?jT٭)j 5xySɽ \ endstream endobj 304 0 obj << /Length 380 /Filter /FlateDecode >> stream xڅJ0顐yav`0 ɃxR(}{(I_bahKB KwZ po=]!{Z_Yq>?^DT!WGQYCH jku=ݐ(4Gqش#e ׾VIe6'9 fƶ[5 vL~><ӿ}ijIcA3W_F4N+=+0-5 VOc%Cj$jRh 5 !!# .O׈kĿ!1 m{FoDgd`ÆL -ІkG@P5q ӉЎmB܉Y endstream endobj 308 0 obj << /Length1 1398 /Length2 6210 /Length3 0 /Length 7171 /Filter /FlateDecode >> stream xڍtTS[-){ {轃J$IґDt^)ҫAQ) wxo19k^k97? D`ĥ$#s)i(#J[0p795 C"@ ap>]3B">p @J^YJAHJ"]/ 0"Por~$ su/@, RRRa``¸A=q+Ap bUBH A)KJI<%hWua1 0zCѾPc'dK7oBC8"q> -00AA~ %!w?? A`0B 0~Kň@O |A089p] gW( dP/ vYMB.!0(C 0hhp"@``  CS熺qaw8I?q pWmKFb2qi9)"@AwSOR .Hfq}m]#- `KRoYn+,+A0>8 jY#(Q -+my_aS,V?E!Ho[ .W ,1WοC h?9G$i99@N($ pA@w7tqiP_?/_K}h~_JBP0 yZ'Jm桰x<眊4C6/|E+c҆ЉmM1if߂.S':^3 ?8I!n+:̃ ېGʴԯ_8P8=e]+rR<*nX4sk$q+"t'_ / SDɃe֤,?acc$<4d ([Efa[LlwǕXY$  'H,I%d58Ths3I])z vHlEb3}r1T[C+w/[8ۺBߺ5.[,a  &c}w7D 1o'~ssN]{F.(}|N/Jmly9Em2ͦC [(skw:Oco0TZU^jV)>"A 鬅 f}̇I ]̺al#GcϏKŁԔtz[SIrJM} ?o}NyX [e-It~l0!h۷1d7*J9o7bzi%(!`R[B ~0gtz8Zy*7x0[\^"O٣6TÎu}K%I7Y :v2L~ȷft-:Ғ[(_]}6>29/bHO/R?ZiZ%9\0S|-I"}R +2ZʷγmNr#JżZq iWzE (~4g~i!me:WV2z<91Ty Jnܓ.rtu>Q>XGౚՒ tz[<2ׅ\vkV9oᝦACTg9:A2&y?t,mH&O g 4/Io*x@+isLC, r~ˇ xeR9:%?Ƹ &QO'7Dc Gigdhu9=h.*Lh=@͡b/堄\Eܨs=4,Gu$ Ľ4'V+d?ţ JB* C7$J[dnt= %ٲjf4&IH4Ľb0|}G>ck/$WO~uˮq+hۚFW6Nlf~2?T:) e$KH16iVG'>=ogmy"h~0>W4D@sɏfQ Gd[ ɩ")UH d20Kg=R]Q!QtZ~Se>e\_'e{r[!XI ^U{s&[Jf}Z/hZ==B+I*%*nWrð?x!,]?`ŋ{c]u )@'*9Z@Ĺsjo?mWYE|{ߒU)󢨿""$,73(NbXvhc J=Biccxf]'?Tgs냡JLl4eq,FAI Z8-;:<2=/GIJxP assU ڀ%YgO)>ፋ?Hӽ$爞[^^+Ʌ~WN:Vkʟv x yߝك-0exqmȲPr)2[Retn-x[!Jm. LA+w2 "&zdrW,YJgӬ|(ܜ4BFIdo:LYO5A€u&7(=%4 +eC!LVK>JJZyі߭={/(]Eу2P+ož o:Xdi<ӰP͜2P,f e+(4; V|%ݟFޖߕG'e!_ґTdCW{ bF]w fh('[`A&-ڽIgrxs]?<`Y[s&r.ذIQh][EؖH5wF!Rnr3k=YWSbvSh"Ɔ5_.p.`i g t_F>) Kf!X!f:C@Oʼ%9L 8amqGE c5 ^ ɢJfɬl0y-9BFvIð|lܼI$2<NKrݗzw ]%_ 9bgHV\ B:!Z>Jމ'`jb-gP( ;u7V]X:BBսSwO8yt|L!gV%tjD.O"O[#*ʽ VSzd0ەTgW]۟í.e EiUX0ʛg}yٴ4빲rQ8`TT'8bQzih A]hl*qAiB̥W= Y7n( 餴Ug2'1_yd j/_4Wh_5r>i{8< xo(B?"İDvBojk>LKmYJݣtq4?G =6~bLLGſZ>F y{+_uJN輚앓g%&טԧxlW[+H5n^4`pUIΥ~.Iaw ֭~$=p ryZ%%IœP x+,6]SeAMF."/IGjT|jDĞeJ[hN*_̪T1J9󽣫pE}jPѷD_BI|"8[֝Do=O CW*Y48FGP-U2nU5*4($ س=0q1:Rw1 xmv%}=zyZTzP x$Y祼JDR5[azڋ-S~{&m[,pN-ҷt#3Q4c[6.0&={5Z0Mo$YzD;?h߉^gw,6D,fˈx Qґg52;G$3}tWjEI1/L^EhemP|EV *&µ؏ l^ E% ' 8CW2lS}|%&[ĝj)o ; zSy~(윿$seˆQD&! p> %m\F[q"U-VMk'KaAqל?Koj:,av K%)}Ӵrtc{ˠ `vQ;4#;2[ĤGY+D7Z3<$l4,!h ,6[;׭~;MYSTJ!(i=w~Ӛujf}xƭ g-<w9IO?OR5/tmrm=⑞^I(",ki oog,6'J/~{sײalj;Ye@RիPLNIͧt c5M-f$E,y.=R\{w]L$ξu);cp]v΍XJ>|.7y_BN9㔺(itl o>ݹڙ~BS6!#.=`,\<ɉZ GʯV^Q_IULOpHlΗ-75"`bjʋ8dX1#1Gx Ͼ.UzzㅗbȣqZW!orK"$,rHD5SO;۬A}.:SzM(A' Z&^|fvB&@O3;5vt9MA duTs[纡\|9 Z$M׻;g+N' Q(V.hX)~Bucg?SK(E^WdUkw-[iW28%קf /RehTLC&I [FNrd4|N,{if"._DTd?}.>mwjYXnӧ,m6:I"&l#ǴlF;^<[LXdhe^+x qL)Sx6cU[5 ˻ }Bx ja, s}iZ*)̨HX0zջ-sƕ3܅Wȥ7dm 9K7\ SYFGP#ۑx0c|^Y\i؂e7Fe ׈ F~Ԙ#|.H#Ju~{ {$ք]ש'Sَ(0 7 >:!C!?.-P,IN9D%}w=D$T8u%iUwuIZT&B$Ӗ觧 SoiҴMI8;u48ݓY5^<У5[$)Ye[9W2 endstream endobj 310 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdCmU^!1H#x?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=M;7rfnj-eSӵOLg~8 )ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L> endobj 2 0 obj << /Type /ObjStm /N 56 /First 458 /Length 3439 /Filter /FlateDecode >> stream xZm~@/u4niGs2Nr>C.ɑNӝ6>jKgI3 VVYRA!R8RND(P2Fy{}FYAlPMńY%^T^GcEA7-m&!pIt5mc!s!3*sBIBGqENEĩ c 4yO,P`LDKh#`h5AC^NV ׂt "B{KhW= x_m^nze1߫ųK<>[Z||:[<\V\ljpubK՛7J @34B;V6K? &ã9iw^P/^yy',g3z摱Fv3Ѯ5zOm jɵk )lj^a>Svqt Ń'N^\*b̍v!S$pꐄ3$b: ,l?w _WeTϗ5<ׯkeQXM_8T_1 U vJlrڜ-~e˨^&O7˷ 鹿k-3}S4KӞ &[^^X{q[_ J8`~<64@>aԽ$B.St:%I qx8ޛ 'c@@o؂ Z+72frQR8 <7Xh7Q|sdbB M&f*4?P>! I|(I|4(@ P>F1 Y| O]5aN]rKw {k t_~JŎD!u6eo `@VU9fnwC-kws43GE&jN:+ʠGੂe@h0֜O>]S*Y:;p嵩Uԩj9l$.Gm׭Im]խ|3r&-#.ϝp'Kw*01EEr;7F,G#r|<'1O8wMǷ?/ld{ ή\P@xlO0ߦxzx7{CI7$]ODִ, ׳)K=)*D={Dz,!E6LP2!bDfFFhF%Dy[xHhf/D3"DC"DCd4d4䄇4䅇4R44gx|CcC&u^6b ?ltaFyȬwJ\3*1N1-S*a6DarTM6wtRgZHSI_F]|R;G|N= +5H] .-dgL:H+'R0ںSF=% =Rt Z{,sf0AvIb3Ц&8@@#v`b{'bD@w@yw@w@w@ PlAw0p^&;л;;]zX':6 o{Ǧqx=H*ε)XLCGj$>S PuQjΕjMto}zʆ] Qr̒ъS|pJu9s8fh_Q菤+X9&s Jz[b Vcdǟ9L2m C`: ۛGTK/Ec }*>A~\`^cجbl{|hlWٻZWYu%y6n׶1avl<yZfZ8Ed`{*(\#,s *eM_X-CVXr7mNMXσMnҟc e9e@F7m^cs8|AtڷG&@$\=acB-=&/lGLȢ@2 ,!kIG2I:#JNR%AVF8ȔcdVKȱZ onsU7_=?>y=1x|UN998h{_9OZ (Ɲs_.߾[)ˋ׿61bsZlWZ].v <4403C9965ECE38CDD0A8EAD52FE1438E>] /Length 943 /Filter /FlateDecode >> stream xyu{{k]{vb.hɑ)DHh7Gl3DJ똆$FQƔ1~>8m?YMӓV{@)RE"Jt"T h !'Ekshf.3vDl!*-9AzxCr4DBjP[!"E;si%WCL!k1t͐o"( d#tԺe) }Tlmy+t9 w]kgk}g"z_{@8[~;q/h#b eྉPݯUkɚZ8>X~$!0ٛ>^$Ds0dx ՆTبnZOVx> /Ja v|;U]ZrR- TЁYuԒߨǿ]px2M^^D0׬]Զ'6p2N)-";s ~ guV-E/I[%\-py%/\Q\UsyiZw,Adg4n܎ߚcVk!&Zs=XND;-+DY7ErXT,f agC{m ZZ d)de {,gnl|UG|Hs#S1730546 membrane-spanning 4-domains, subfamily A, member 2; Fc epsilon receptor I beta-chain; immunoglobulin E receptor, high affinity, beta polypeptide; Fc IgE receptor, beta chain [Homo sapiens], mRNA sequence /cds=(102,836) /gb=NM_000139 /gi=23397640 /ug=Hs.30 /len=3723 AACCCATTTCAACTGCCTATTCAGAGCATGCAGTAAGAGGAAATCCACCAAGTCTCAATATAATAATATTCTTTATTCCTGGACAGCTCGGTTAATGAAAAAATGGACACAGAAAGTAATAGGAGAGCAAATCTTGCTCTCCCACAGGAGCCTTCCAGTGTGCCTGCATTTGAAGTCTTGGAAATATCTCCCCAGGAAGTATCTTCAGGCAGACTATTGAAGTCGGCCTCATCCCCACCACTGCATACATGGCTGACAGTTTTGAAAAAAGAGCAGGAGTTCCTGGGGGTAACACAAATTCTGACTGCTATGATATGCCTTTGTTTTGGAACAGTTGTCTGCTCTGTACTTGATATTTCACACATTGAGGGAGACATTTTTTCATCATTTAAAGCAGGTTATCCATTCTGGGGAGCCATATTTTTTTCTATTTCTGGAATGTTGTCAATTATATCTGAAAGGAGAAATGCAACATATCTGGTGAGAGGAAGCCTGGGAGCAAACACTGCCAGCAGCATAGCTGGGGGAACGGGAATTACCATCCTGATCATCAACCTGAAGAAGAGCTTGGCCTATATCCACATCCACAGTTGCCAGAAATTTTTTGAGACCAAGTGCTTTATGGCTTCCTTTTCCACTGAAATTGTAGTGATGATGCTGTTTCTCACCATTCTGGGACTTGGTAGTGCTGTGTCACTCACAATCTGTGGAGCTGGGGAAGAACTCAAAGGAAACAAGGTTCCAGAGGATCGTGTTTATGAAGAATTAAACATATATTCAGCTACTTACAGTGAGTTGGAAGACCCAGGGGAAATGTCTCCTCCCATTGATTTATAAGAATCACGTGTCCAGAACACTCTGATTCACAGCCAAGGATCCAGAAGGCCAAGGTCTTGTTAAGGGGCTACTGGAAAAATTTCTATTCTCTCCACAGCCTGCTGGTTTTACATTAGATTTATTCGCCTGATAAGAATATTTTGTTTCTGCTGCTTCTGTCCACCTTAATATTCTCCTTCTATTTGTAGATATGATAGACTCCTATTTTTCTTGTTTTATATTATGACCACACACATCTCTGCTGGAAAGTCAACATGTAGTAAGCAAGATTTAACTGTTTGATTATAACTGTGCAAATACAGAAAAAAAGAAGGCTGGCTGAAAGTTGAGTTAAACTTTGACAGTTTGATAATATTTGGTTCTTAGGGTTTTTTTTTTTTTTAGCATTCTTAATAGTTACAGTTGGGCATGATTTGTACCATCCACCCATACCCACACAGTCACAGTCACACACACATATGTATTACTTACACTATATATAACTTCCTATGCAAATATTTTACCACCAGTCAATAATACATTTTTGCCAAGACATGAAGTTTTATAAAGATCTGTATAATTGCCTGAATCACCAGCACATTCACTGACATGATATTATTTGCAGATTGACAAGTAGGAAGTGGGGAATTTTATTAAGTTACTCGTTGTCTGGGGAGGTAAATAGGTTAAAAACAGGGAAATTATAAGTGCAGAGATTAACATTTCACAAATGTTTAGTGAAACATTTGTGAAAAAAGAAGACTAAATTAAGACCTGAGCTGAAATAAAGTGAGTGGAAATGGAAATAATGGTTATATCTAAAACATGTAGAAAAAGAGTAACTGGTAGATTTTGTTAACAAATTAAAGAATAAAGTTAGACAAGCAACTGGTTGACTAATACATTAAGCGTTTGAGTCTAAGATGAAAGGAGAACACTGGTTATGTTGATAGAATGATAAAAAGGGTcgggcgcggaggctcacgcctgtaatcccagccctttgggaggccgaggtgggcagatcacgaagtcagtagtttgagaccagcctggccaacatagtgaaaccccgtctctactaaaaatacaaaaaaaaaattagctgggtgtggtggcagtcacctgtagtcccagctacttgggaggatgaggcaggagaatcgcttgaacctgggaggcggaggttgcagtgagccgagatcgcaccagtgcactccagccttggtgacaatgggagactccatctcAAAAAAAAAAAAAAAAAAAAAAAGATAAAAAGTCAGAAATCTGAAAAGTGGAGGAAGAGTACAAATAGACCTAAATTAAGCTCATTTTTAGGCTTTGATTTTGGGGAGACAAAGGGAAATGCAGCCATAGAGGGCCTGATGACATCCAATACAGAGTTCTGGTAAAGATAAAATTTGATACAGGTTTGGTGTCATTATAAGAGAAATCATTATTAAATGAAGCAAGTTAACACTCTAAGAGAATTATTTTGAGATAGAAGTGAAGCTAAGCTAAACTTCACATGCCTATAATTGGAGGGAAAAACTAAGGATAAAATCTAGCCTAGAAGATACAATAATTAGTCATAAACATGCATTGTGAAACTGTAGAGAGCAGGTAGCCCAAAATAGAGAAAGATTAGATAAAGAGAAAATAAGTATCCATCAGAGACAGTATCTCTAGGCTTGGGCAAGAGAAAAGTCCACAGTGATAAGCAACTCCACCTAAGGCATGAATATGCGGCAGAGAAAACAGCAATAGTGAATGAATGCAAAAGGTGCTGAGAAATTCCACACATGAGTATTGTGATGAGTAAATGAATAAAACATTTGCAAAGACCTTTAGAGAAAGAGAATGGGAGCATATGTGAGAAATAAGATAGTTGATTATGAATAGAAGGTAGTGAAGAAAAGCAAGCTAAGAAAAAATTCTGTTTATAAAAGAAGGAAAAGATAGTTTATGTTTTTAGCCTAAGTATAAGAGTCCTACAGATGGACTGAAAAAAATCAGTCTGAGAGTATTAGTCACAATTAATGAAATAATTACATTTTATGTATTGAGGATGCCAAGATTAAAAGGTGACAGGTAGATGTTAATTTCCCTAGATTGTGAAAGTGATCACGACAATCACACAACAAATAATTAAGTGACTTGGTATGCTTTATTTAATTGTAGGGCCTGAGGTTTTCCATTCTCATTTTTCTAAAATACAATTTTGTTTCTCCAAATTTGACAGCAGAATAAAAACCCTACCCTTTCACTGTGTATCATGCTAAGCTGCATCTCTACTCTTGATCATCTGTAGGTATTAATCACATCACTTCCATGGCATGGATGTTCACATACAGACTCTTAACCCTGGTTTACCAGGACCTCTAGGAGTGGATCCAATCTATATCTTTACAGTTGTATAGTATATGATATCTCTTTTATTTCACTCAATTTATATTTTCATCATTGACTACATATTTCTTATACACAACACACAATTTATGAATTTTTTCTCAAGATCATTCTGAGAGTTGCCCCACCCTACCTGCCTTTTATAGTATGCCCACCTCAGGCAGACACAGAGCACAATGCTGGGGTTCTCTTCACACTATCACTGCCCCAAATTGTCTTTCTAAATTTCAACTTCAATGTCATCTTCTCCATGAAGACCACTGAATGAACACCTTTTCATCCAGCCTTAATTTCTTGCTCCATAACTACTCTATCCCACGATGCAGTATTGTATCATTAATTATTAGTGTGCTTGTGACCTCCTTATGTATTCTCAATTACCTGTATTTGTGCAATAAATTGGAATAATGTAACTTGATTTCTTATCTGTGTTTGTGTTGGCATGCAAGATTTAGGTACTTATCAAAGATAATGGGGAATTAAGGCATCAATAAA >gi|28626515|ref|NM_007257.3| Homo sapiens paraneoplastic antigen MA2 (PNMA2), mRNA GGTCATTTGTCCAGAAAACTTTGTGACTGTCTTTGAGTGACCTAGTCTGGGACCCATTCATTGGTGGGTTCTAAGGTTAG AAGCTCATCCAGGATATTTTCAATATTAAGTCAGTGCATAGCTGCACCACTAACAAATTGGTGCCTGTAGAGTCAGAGTG GGTCAATTCTTAGGACAATGGCGCTGGCACTGTTAGAGGACTGGTGCAGGATAATGAGTGTGGATGAGCAGAAGTCACTG ATGGTTACGGGGATACCGGCGGACTTTGAGGAGGCTGAGATTCAGGAGGTCCTTCAGGAGACTTTAAAGTCTCTGGGCAG GTATAGACTGCTTGGCAAGATATTCCGGAAGCAGGAGAATGCCAATGCTGTCTTACTAGAGCTTCTGGAAGATACTGATG TCTCGGCCATTCCCAGTGAGGTCCAGGGAAAGGGGGGTGTCTGGAAGGTGATCTTTAAGACCCCTAATCAGGACACTGAG TTTCTTGAAAGATTGAACCTGTTTCTAGAAAAAGAGGGGCAGACGGTCTCGGGTATGTTTCGAGCCCTGGGGCAGGAGGG CGTGTCTCCAGCCACAGTGCCCTGCATCTCACCAGAATTACTGGCCCATTTGTTGGGACAGGCAATGGCACATGCGCCTC AGCCCCTGCTACCCATGAGATACCGGAAACTGCGAGTATTCTCAGGGAGTGCTGTCCCAGCCCCAGAGGAAGAGTCCTTT GAGGTCTGGTTGGAACAGGCCACGGAGATAGTCAAAGAGTGGCCAGTAACAGAGGCAGAAAAGAAAAGGTGGCTGGCGGA AAGCCTGCGGGGCCCTGCCCTGGACCTCATGCACATAGTGCAGGCAGACAACCCGTCCATCAGTGTAGAAGAGTGTTTGG AGGCCTTTAAGCAAGTGTTTGGGAGCCTAGAGAGCCGCAGGACAGCCCAGGTGAGGTATCTGAAGACCTATCAGGAGGAA GGAGAGAAGGTCTCAGCCTATGTGTTACGGCTAGAAACCCTGCTCCGGAGAGCGGTGGAGAAACGCGCCATCCCTCGGCG TATTGCGGACCAGGTCCGCCTGGAGCAGGTCATGGCTGGGGCCACTCTTAACCAGATGCTGTGGTGCCGGCTTAGGGAGC TGAAGGATCAGGGCCCGCCCCCCAGCTTCCTTGAGCTAATGAAGGTAATACGGGAAGAAGAGGAGGAAGAGGCCTCCTTT GAGAATGAGAGTATCGAAGAGCCAGAGGAACGAGATGGCTATGGCCGCTGGAATCATGAGGGAGACGACTGAAAACCACC TGGGGGCAGGACCCACAGCCAGTGGGCTAAGACCTTTAAAAAATTTTTTTCTTTAATGTATGGGACTGAAATCAAACCAT GAAAGCCAATTATTGACCTTCCTTCCTTCCTTCCTTCCCTCCCTTCCTCCTTCTCTCCTTCTCTCCTCCTCTCTCCTCTC CTCTCCTCTCTTTCCTTCCTTCCTTCCTTTTTTCTTTTTCTCTTTCTTCTTTATTTCTTGGGTCTCACTCTCATCACCCA GGCTAGAGTGCAGTGGCACAAAAATCTCGGCTCACTGCAGCCTTGACTTCCCAGGCTCAGGCTCAGGTGATCCTCACACC TTAGCCTCCCAAGTACCTGGGACTACAGGCACGCACCACCATGCCTAGCTATTCTTTTGTATTTTTGGTAGAGACAGGGT TTTGCTGTGTTGCTCAGGCTGGTCTGGAACCCCTAGGCTCAAATGATGTGCCCAACTCGGCCTCCCAAAGTGCTGGGATT ACAGGCATGAACCGCCATGCCTGGCCCTTGATTTTTCTTTTTAAGAAAAAAATATCTAGGAGTTTCTTAGACCCTATGTA GATTATTAATGAACAAAAGATTAAACTCCAAATATTAAATAGTAAGCCTGAAGGAATCTGAAACACTTGTACTTCCAATT TTCTTTAAATAATCCCAAATAGACCAGAATTGGCCCATACCATAGAAGAAAGAATTGGCAGTCAAAAAAAAAAATACCTT TTGTAATGTTTGAAAAATAAAGCTGTTTGACTTGTCAGGTGTTTTCCTTTCTCAAATCAGCAAATTCTCTCTGAGTGCCT GGCTTTGTGAGACACTGTACAAGGAGTTACAAGACTACAGCTATAACCTGCAGTTGAGCAGTTATAAACCTACAAAATGG GCCCTGCCCTCAGAGAGGTTCCAGTCTAGATGAGGAGCTGATCTAGACAGGTAAAAGGCTAACTAACCCTTTGTGTAAAT AAGTTCATCACCCCAGTAAAAGTGTCATCACCCAGTGAATAGGACCACCTCTGCCTGCAGATTTTTGTTGTTGTTGTTGT CATTGTTGTTGTTGTTTTAACCTGGGAAGTGTTCTTCCTGCCTTTCTGCTAGGTGTCAGATAGATGGTCCCAGAGCTAGG TGCTGTGTCAGGCCCTGAAGACACAGATGACTCAACCTAAGCTTTACTTTCCAGAGGTCCACAGCCTGAGAGGTGTCCCC AAAGAAAGGGGGACATGAGGGGACTGCATGCTTGAGAGCAGGGTTGTTTAGGGCAGGTTTGGATTTAGTGAGCAGGCTGG TTTGCTTAGAGAAGGCTTTTAGTGGCAACAAAGGATGAAGAGGAGAGAAAAGGAACTCACATTTATTGAGGGCCTACTGT GTGCAAAGTGTTTCATGTATATCTCATTGAATGTATACAGCCACCCTGTTGTGGTATAATTTTGCTCTTTATAAAGAGAA AGACCGAAGCTCAGATGAGTTAAGTGGTCTCCTCAACACCAAAATGCCAAGAAGTGATGGAGCCTAGACAGAAGCCCAGA ACTTTCTGACTCACACTAGTCCATCCTCTACCATCACGATGACTTTCAAATTGTGCTCTGCAGTTCTGCAGATTTTCTAG CAGTGCCATCTCCAAAATGTGTTTTAAACTCTTTATTTTTTTAATTATTATTAGTATTATTTTGAGACTGAGTCTTGCTC TATCACCCAGGCTGGAGTGCAGTGGTGCAATCTCAGCTCACTGCAACCTCTGCCTCCCAGGTTCAAGCGATTTCGTGCCT CAGCCTCCCGAGTAGCTGGGATTACAGGCACCCACCACCACGCCCAGCTAATTTTTGTATTTTTAGTAGAAATGGGGTTT CACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAAGTGATCCACTCACCTCGGCCTCCCAAAGTGCTGGGATTAC AGGTGTGAGCCACCATGCCTGGGCTAAACTCTTTAAGTCTCTAGTAAATGCAGCTAGATTCAAATGGGCTGATAACCAAA TTTTAACACATCAGCATTCACCACCAGGTTTACTTTTATTTTCAGATTGGCTCATTTTGTGCAGACCTTAGAGCAAAGTT TCCTTTATGGTATCTGTGTACGTATCCAAACTTCTTTTAATTGTTCACAGATTTTAAAAGCGGTAGCACCACATGGTTGT GTAGATCAGACCTGTGTATTTAGATCAGACCTGTGTATCACGTAAGTGTGTGAGTGCAGTGCAGATGAGCACCATTTAGT TATATGTGCTAGGCAAATCTCCAACACAGTTGATGTGTAGTCTTGTGGTAGATTTGTGCATACTGTAAGCAAATTGCTTA GCTTCTCTAGACATCAGTTTCCACATCTGAAAAATAAGAAGATGAGAGTACACGGTTGTTATGAACAAATGACTTAATGC TTTTTAAGCACGTTGCATGACATCTGGAACACAGAAAGCCCTCAATACATTGAAGCTCTTAGGATTTTCACGATGTTCCT GTCTGCTCAATGCATGCTTTCTTTATTGTTCTGACAGTTGTGTGGTAACAAGCTAATATGCTTCCAGTTGACTTCCAGTC TACCCTGGTGTTAGAAACCGTTTCATCTCTTATTGTAAATTTGAGTGCTTGTTGTTTTTTATATTTGTGATGACTCTTCC AGCAGTTGTTGACAATTGTTAGAGGTTTGACTTTTAAATAATTACTTATTTTTTCTGATTGTGGTTCAGTTTAACTGAAG AATATCCTGAGATTGTAAGAAAAGCATTTTTTAAAAGGTATCACTTGTGATCATTTATCTTTCTAAATTCTATTTTTAAT ACTGTTCCACCAAAGTGATGCAGTGGTTACCATGACACCCTAATTTCATGTGTTTTTGTATTTATGAAAATAGTTTCATT GTCATTTATTGGCGGTATACAAAGTAAAATGTTATAAATGTGAAGTTATAAAATAAATATATGCTAATAAAATCCTGAGT TTTTCTGATTCCT >gi|31377729|ref|NM_020143.2| Homo sapiens putatative 28 kDa protein (LOC56902), mRNA TGGCTTCTGCGTGGTGCAGCTGCGCACGTGTTTCAGCCGGCAGCGCTTTAAGATTTCCGGGGATGGAATCCGAAATGGAA ACGCAGAGCGCCAGGGCAGAGGAGGGCTTTACCCAGGTCACCCGCAAGGGTGGCCGACGGGCGAAGAAACGACAGGCTGA ACAGCTGTCCGCAGCAGGAGAGGGCGGGGATGCGGGCCGCATGGACACAGAGGAGGCCAGGCCGGCGAAGAGGCCCGTCT TCCCACCCCTCTGTGGGGACGGGCTCCTGAGTGGGAAAGAAGAAACAAGGAAAATTCCAGTCCCAGCTAACAGATACACA CCATTGAAAGAAAACTGGATGAAGATATTTACTCCTATTGTGGAACATTTGGGACTTCAGATACGCTTTAACTTGAAATC AAGGAATGTAGAAATCAGGACTTGTAAAGAAACCAAGGATGTTAGTGCTCTGACAAAAGCAGCTGATTTTGTGAAAGCTT TTATTCTCGGCTTTCAGGTGGAGGATGCACTTGCCCTCATCAGGTTGGATGACCTCTTCCTAGAGTCTTTTGAAATTACA GATGTTAAACCCCTAAAGGGAGACCATCTATCCAGGGCAATAGGAAGAATCGCTGGCAAAGGAGGAAAAACCAAATTCAC CATAGAGAATGTGACACGGACAAGGATAGTTTTGGCTGATGTGAAAGTTCACATCCTTGGCTCCTTCCAAAATATCAAGA TGGCAAGAACTGCCATTTGCAACCTAATCTTGGGAAATCCTCCTTCCAAGGTTTATGGCAATATTCGAGCTGTGGCTAGC AGATCAGCAGATCGATTCTGATTTCAAGTCAGAGACTTTTTATCTTGCCTTTGGACTCTGGTGAAAAATACTTTACAGTG GTCGGTCACAAGAAACCAGCTGAACAATTTCAGTCATTTGAAGCCTCCGTCCCTTCTTCCATTCTCAGCCAGAAGCATAA ACAGAAAAGAAAGATTTAAGAGGATTCACACTCAACAGGTTTTAGGATAATTTAAATATCAAAAATTGATTGTTATACTT AACACATTAGGTATAATTTATCATTTATCTGAAATCACATGTAGCAGATTGCATAGTCTGTAATCCTCTCAGAGGGAAAC TTCTTGTTTAAACAGCTCTATATGGATTTATACTTTTATATTTATAAATTTATAACTTCATACAAATTTATAAACATTTC TTTATAAATTGTAATTTAATAGATTATCTCAGAAAAACCTCTCTGAATGATGACCCTTCCTTAATACTGGGTGATGTGTG AATATTTGTTTGTTGGCAGACAGGGTCTCACTTTGTCACCCAGGCTAGAGTGCAGTGGTGCAATCTCAGCTCACTGCAGC CTCTGCCTCCTGAGTTCAAGTGATCCTCCTGCTTCAGCCTCCCTAGTAGCTGGGACTACAGGTATGCACCACCATGCCTG GCTAATTTTTTGTATTTTTTGTAGAGATGGGGTTTCGCCATGTTGACCAGGCTGGTCTTGAACTCCTGGCCTCAAGGGAT CCGTCCGCCTCAGCCTCCCAAAGTGCTGGGATTACAGGCATAAGCCACTGCGCCTGGCCTTGATGTGTGAATATTTGAGA GGTCATAAGCAGTGGTTTTGGCCATACCGTATTATACCATATACATCAGTAAGAGCTCATCTTGGAACCTGTTTTGCAGT TTCTTGCAGTTTCAAAAATTAAAGACCTACATCACAGGGTTAATGTGAAGAAAGCTTTATTTTTCAAATGAGTATTTAAT GAAAGTATACATAACCAATGTTGGGTATACAGATGCTTCTCAACTTATGATGGGTTTAGGTCCAGATAAGCCCACTGTGA GTTGAAAATACCAAAAGTCAAACATCATAGCTTAGCCTACCTTAAAAGGGCTCCGAACACTACATTAGCCTACAGTTGGG CAAAATCGTCTAATACAAAGCCTATTTTATAATAAAGTATGTTGAATATCTCATGTAAAAAAAAAAAAAAAAAA altcdfenvs/inst/exampleData/slamf_targets.RData0000644000175200017520000000765314516003570022713 0ustar00biocbuildbiocbuild흻%D/{D LGr,PW껆 "z#"vxryzo//Oo?v}﷪̮-:XOy49~]jz<:k5X=x{}ztݫ>&ZonS'^רkcBkGa2^y`բt5\XK-R3^&Xm0R_s[?֏腘.t߲Pcjˌ.kikIVCGwizxXDFrzXAHTa 6S^k[\;fZZ:/| LO8eGVkUf ])%1xGYfQbȵJj8W+JD)58X¾2j-uQq%>1fӃPc,^$#Ԇ!J)}\"^pp}8P:1Y}"+jUղTCKY' 4 `BhLoQi9Q ƑB0*$ Y4 496̀`_-m_)B+X&Zy&Ӷ2+< ,gRF5^16tʜd# Nȅ/IVb kh86k,D! ؐM 2H 4V6h $W?ʉH'Y 0J 2L ~h ^duEV6Y}^\媟G?)UޤhV 33Zd_WTA9ޛ ^##@)gc@J-]Rc Oo#3)ؓk G-Rh>iBC]*ĆmmNem OgZ{Tf,Sj"J":7MUۆbՆ,=Yg-ˑ6'!5i;EIyt|4RrMʔYGbJQHBg(ٵtmNeWI`ذɍi烸p,Q`BkdKES v]w1{ؾiq46ٸ~j2i#y54 ST*3E3)\7':laK C| 4. є?{l,~F̠o *YP2 &(HQY5lp}3O;HIQ#x{sLXgg%`T,wV?I {j_%^/z׫_/zK^F>?NOq>scQ+ aPW͓iQ$T0X~HH$& SΑr 0k0MZѵiaE*Z{ozՎ3)1ń&%5me Bdjӫe`[heCq.lQ` 'ЩD?ܧay©}`͜h󪡰4吶iLnuh-Gn$J'jB4ė8:<,՚5ҰGQ H*h"LtGK,cuHKv Ѳs}kK 4z˕BQ  k59ЗQDt!V{jLe]0R8כQ\ ],Ӭ5ZDQ̈j*0>zWx>V8a u?Hꢃ5 |]GƂٌ_¸%(ܞhm%Na.$M~S"e u9"WÑ1TFA!"bE%: eC̥ G%^_~!T#gr/E'˜2$u`-5ũzM Lt_7{Q\s/ˁjJl{t(3Rf>U͚fk)gs1*FGy{ҙߎμߥ.wK]﷭^.wK]μt3/yKg:, b&J#Nj7)c7kC0"48$$*yj;iDii8odߟ)SQ0ab݇#vV^-yCҬm%8Jck!nfl=O$/DFX(JsDf!HԫsӜe f{.:9!d|Y mBCMar9 t;\!RAiiN O½cʍ2<cdAT{aHI{m( 40ک47anQ, یmBO끟MȮ? }0ŲJ#t &&PAt^Vی2(L >VN@|X=dAާ`i9Z `ފiJQ(" <)c❘Zre8q"NwoY%r9 δGi;<1;VS#^MQ0LJ2^=aQSV3`3Ce$cۨl g͡F3̫gf*՘iځ޶O3#$^wu\!&=Ӻo@HIE*@]1Z VqU=,Ez_Fhfc/rpa¾8HĬ&(m;63YS).4%k.p6iDþw[MfL`T^dkGB,NN3%/}K~_ߗ%IDv9(($,}FlP$`>aaq*}L(42 56t:d\V+n4"s5;ʍ[ҀH 51R"euiVkǠEL {&r&} ;.%a?Kn@ոz7tfgR"܊5-(Ȯ|RT> `dL117p'_"Lل''{0N{ԅ#j'O/q,ialtcdfenvs/inst/internalData/0000755000175200017520000000000014516003570017311 5ustar00biocbuildbiocbuildaltcdfenvs/inst/internalData/chipspecs.tab0000644000175200017520000000021314516003570021756 0ustar00biocbuildbiocbuild## A tab separated file to store chip characteristics Name nrow ncol HG-U95A 640 640 HG-U95Av2 640 640 MG-U74A 640 640 MG-U74Av2 640 640 altcdfenvs/man/0000755000175200017520000000000014516003570014501 5ustar00biocbuildbiocbuildaltcdfenvs/man/AffyProbesMatch-class.Rd0000644000175200017520000000353114516003570021112 0ustar00biocbuildbiocbuild\name{AffyProbesMatch-class} \docType{class} \alias{AffyProbesMatch-class} \alias{combine,AffyProbesMatch,AffyProbesMatch-method} \alias{show,AffyProbesMatch-method} \alias{toHypergraph,AffyProbesMatch-method} \title{Class "AffyProbesMatch"} \description{ Store the results of a call to \code{matchAffyProbes}. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("AffyProbesMatch", ...)}. An object will store the result of matching probe sequences against target sequences. } \section{Slots}{ \describe{ \item{\code{pm}:}{Object of class \code{"list"}: each element is vector of index values} \item{\code{mm}:}{Object of class \code{"list"}: each element is vector of index values} \item{\code{labels}:}{Object of class \code{"character"}} \item{\code{chip_type}:}{Object of class \code{"character"} and of length 1.} \item{\code{probes}:}{Object of class \code{"ANY"}: the \code{probetable} object used to perform the matches. } } } \section{Methods}{ \describe{ \item{combine}{\code{signature(x = "AffyProbesMatch", y = "AffyProbesMatch")}: combine two instances. This is can be useful when splitting the list of target sequences to parallelized the job.} \item{show}{\code{signature(x = "AffyProbesMatch")}:Show the instance.} \item{toHypergraph}{\code{signature(object = "AffyProbesMatch")}: build an \code{\link[hypergraph]{Hypergraph}} from the matches.} } } %\references{ ~put references to the literature/web site here ~ } %\author{ ~~who you are~~ } %\note{ ~~further notes~~ } % % ~Make other sections like Warning with \section{Warning }{....} ~ % %\seealso{ % ~~objects to See Also as \code{\link{~~fun~~}}, ~~~ % or \code{\linkS4class{CLASSNAME}} for links to other classes %} \examples{ showClass("AffyProbesMatch") } \keyword{classes} altcdfenvs/man/CdfEnvAffy-class.Rd0000644000175200017520000001172214516003570020051 0ustar00biocbuildbiocbuild\name{CdfEnvAffy-class} \docType{class} \alias{CdfEnvAffy-class} \alias{geneNames,CdfEnvAffy-method} \alias{index2xy,CdfEnvAffy-method} \alias{indexProbes,CdfEnvAffy,character-method} \alias{plot,CdfEnvAffy,missing-method} \alias{show,CdfEnvAffy-method} \alias{xy2index,CdfEnvAffy-method} \alias{coerce,CdfEnvAffy,environment-method} \alias{coerce,CdfEnvAffy,Cdf-method} \alias{toHypergraph,CdfEnvAffy-method} \alias{[,CdfEnvAffy,character,missing,missing-method} \title{Class "CdfEnvAffy"} \description{A class to hold the information necessary to handle the grouping of probes in set of probes, and to find XY coordinates of probes on a chip} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CdfEnvAffy", ...)}. Typically, there is an instance of the class for each type of chip (e.g. Hu6800, HG-U95A, etc\ldots). } \section{Slots}{ \describe{ \item{\code{envir}:}{Object of class \code{"environment"}. It has to be thought of as a hashtable: the keys are probe set identifiers, or gene names, and the values are indexes.} \item{\code{envName}:}{Object of class \code{"character"}. A name for the environment.} \item{\code{index2xy}:}{Object of class \code{"function"}. The function used to resolve index into xy coordinates. Unless you are an advanced user, you probably want to ignore this (and rely on the default provided with the package).} \item{\code{xy2index}:}{Object of class \code{"function"}. The function used to resolve xy coordinates into index. Unless you are an advanced user, you probably want to ignore this (and rely on the default provided with the package).} \item{\code{nrow}:}{Object of class \code{"integer"}. The number of rows of probes for the chip type.} \item{\code{ncol}:}{Object of class \code{"integer"}. The number of columns of probes for the chip type.} \item{\code{probeTypes}:}{Object of class \code{"character"}. The different types of probes stored for each probe set. In the case of Affymetrix chips, the probes are typically perfect match (pm) probes or mismatch probes (mm).} \item{\code{chipType}:}{Object of class \code{"character"}. The name of the chip type the instance is associated with. This is useful when one starts to create alternative mappings of the probes on a chip (see associated vignette).} } } \section{Methods}{ \describe{ \item{[}{\code{signature(object = "CdfEnvAffy", i = "character", j = "missing", drop = "boolean")}: subset a cdf, that is return a new cdf containing only a subset of the probe sets. The subset of probe sets to take is identified as a vector of identifiers (mode "character").} \item{coerce}{\code{signature(object = "CdfEnvAffy", "environment")}: coerce an instance of the class to an \code{environment}.} \item{coerce}{\code{signature(object = "CdfEnvAffy", "Cdf")}: coerce an instance of the class to a \code{Cdf}.} \item{geneNames}{\code{signature(object="CdfEnvAffy")}: Return the names of the known probe sets (of course, it depends on the associated CDF).} \item{index2xy}{\code{signature(object = "CdfEnvAffy", i="integer")}: convert index values into XY coordinates.} \item{indexProbes}{\code{signature(object = "CdfEnvAffy", which = "character", probeSetNames = NULL)}: obtain the indexes for the probes associated wit the probe set name \code{probeSetNames}. When \code{probeSetNames} is set to \code{NULL} (default), the indexes are returned for the probe sets defined on the chip. See \code{indexProbes.CdfEnvAffy}} \item{plot}{\code{signature(x = "CdfEnvAffy", y = "missing")}: Plot the chip. It mainly sets coordinates for further plotting (see examples). See \code{plot.CdfEnvAffy}} \item{show}{\code{signature(object = "CdfEnvAffy")}: Print method.} \item{xy2index}{\code{signature(object = "CdfEnvAffy", x="integer", y="integer")}: convert XY coordinates into index values.} \item{toHypergraph}{\code{signature(object = "CdfEnvAffy")}: convert XY coordinates into index values.} } } %\references{ ~put references to the literature/web site here ~ } \author{Laurent Gautier} %\note{ ~~further notes~~ } % ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \code{\link{indexProbes.CdfEnvAffy}}, \code{\link{plot.CdfEnvAffy}} % ~~objects to See Also as \code{\link{~~fun~~}}, ~~~ % or \code{\link{CLASSNAME-class}} for links to other classes } \examples{ ## build an instance library(hgu95acdf) cdfenv.hgu95a <- wrapCdfEnvAffy(hgu95acdf, 640, 640, "HG-U95A") show(cdfenv.hgu95a) ## find the indexes for a probe set (pm only) ip <- indexProbes(cdfenv.hgu95a, "pm", "1000_at")[[1]] ## get the XY coordinates for the probe set xy <- index2xy(cdfenv.hgu95a, ip) ## plot the chip plot(cdfenv.hgu95a) ## plot the coordinates plotLocation(xy) ## subset the environment cdfenv.hgu95a.mini <- cdfenv.hgu95a["1000_at"] } \keyword{classes} altcdfenvs/man/appendCdfEnvAffy.Rd0000644000175200017520000000236314516003570020137 0ustar00biocbuildbiocbuild\name{appendCdfEnvAffy} \alias{appendCdfEnvAffy} \title{ append probe sets to a CdfEnvAffy} \description{ append probe sets to a CdfEnvAffy } \usage{ appendCdfEnvAffy(acdfenv, id, i, nocopy = TRUE) } \arguments{ \item{acdfenv}{ instance of class \code{CdfEnvAffy}} \item{id}{ identifier for the probe set to add } \item{i}{ a \code{matrix} of indexes (see details)} \item{nocopy}{whether to make a copy of the environment or not (see details)} } \details{ The \code{matrix} \code{i} must have one column per probe type. For typical Affymetrix chip types, there are two probe types: \code{"pm"} and \code{"mm"}. \code{nocopy} set to \code{TRUE} means that the environment is added the probe set 'in-situ' (this can boost execution speed if you add a lot of probe sets). } \value{ An \code{CdfEnvAffy} is returned } \examples{ data(cdfenvEx) ## pm and mm probe set m <- matrix(1:10, ncol = 2) colnames(m) <- c("pm", "mm") appendCdfEnvAffy(cdfenvEx, "blabla", m) indexProbes(cdfenvEx, c("pm", "mm"), "blabla") ## pm only probe set m <- matrix(6:9, ncol = 1) colnames(m) <- c("pm") appendCdfEnvAffy(cdfenvEx, "blabla2", m) ## note that the unspecified "mm" were set to NA indexProbes(cdfenvEx, c("pm", "mm"), "blabla2") } \keyword{ manip } altcdfenvs/man/buildCdfEnv.biostrings.Rd0000644000175200017520000000320514516003570021337 0ustar00biocbuildbiocbuild\name{buildCdfEnv.biostrings} \alias{buildCdfEnv.biostrings} \title{ Build CDF environments} \description{ Build CDF environment from Biostrings matchPDict results } \usage{ buildCdfEnv.biostrings(apm, abatch = NULL, nrow.chip = NULL, ncol.chip = NULL, simplify = TRUE, x.colname = "x", y.colname = "y", verbose = FALSE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{apm}{ \code{AffyProbesMatch}} \item{abatch}{ \code{AffyBatch} } \item{nrow.chip}{number of rows for the chip type (see details)} \item{ncol.chip}{number of columns for the chip type (see details)} \item{simplify}{simplify the environment built (removing target names when there is no matching probe)} \item{x.colname}{ column name } \item{y.colname}{ column name} \item{verbose}{ verbose \code{TRUE}/\code{FALSE}} } \details{ % ~~ If necessary, more details than the description above ~~ Whenever an \code{abatch} is specified, \code{nrow.chip} and \code{ncol.chip} are not needed. Specifying the an \code{AffyBatch} in \code{abatch} is the easiest way to specify information about the geometry of a chip type. } \value{ An instance of class \code{CdfEnvAffy}. } %\references{ ~put references to the literature/web site here ~ } %\author{ ~~who you are~~ } %\note{ ~~further notes~~ % % ~Make other sections like Warning with \section{Warning }{....} ~ %} %\seealso{ ~~objects to See Also as \code{\link{help}}, ~~~ } %\examples{ %} % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ manip } altcdfenvs/man/cdfenv.Rd0000644000175200017520000000265614516003570016246 0ustar00biocbuildbiocbuild\name{cdfenvs} \alias{wrapCdfEnvAffy} \alias{getCdfEnvAffy} \alias{buildCdfEnv.matchprobes} \alias{CdfEnv} \title{ functions related to cdfenvs } \description{ A set of functions to handle cdfenvs } \usage{ wrapCdfEnvAffy(cdfenv, nrow.chip, ncol.chip, chiptype, check = TRUE, verbose = FALSE) getCdfEnvAffy(abatch) buildCdfEnv.matchprobes(matches, ids, probes.pack, abatch=NULL, nrow.chip=NULL, ncol.chip=NULL, chiptype=NULL, mm=NA, simplify = TRUE, x.colname = "x", y.colname = "y", verbose=FALSE) } \arguments{ \item{abatch}{an \code{AffyBatch}} \item{cdfenv}{A cdfenv environment} \item{check}{perform consistency check or not} \item{chiptype}{A name for the chip type} \item{ids}{a vector of probe set identifiers for the matches} \item{matches}{a list as returned by the function \code{combineAffyBatch}} \item{mm}{The value to store for MMs} \item{ncol.chip}{The number of columns for the chip type} \item{nrow.chip}{The number of rows for the chip type} \item{probes.pack}{The name of the probe package} \item{simplify}{Simplify the environment created by removing the ids without any matching probe} \item{x.colname, y.colname}{see the \code{getxy.probeseq}} \item{verbose}{verbosity (\code{TRUE} or \code{FALSE})} } \value{ An instance of class \code{CdfEnvAffy}. } \examples{ ## See the main vignette } \keyword{manip} altcdfenvs/man/cdfenvEx.Rd0000644000175200017520000000107214516003570016532 0ustar00biocbuildbiocbuild\name{cdfenvEx} \alias{cdfenvEx} \docType{data} \title{ CdfEnvAffy} \description{ An example of \code{CdfEnvAffy} } \usage{data(cdfenvEx)} \format{ The format is: Formal class 'CdfEnvAffy' [package "altcdfenvs"] with 8 slots ..@ index2xy :function (object, i) ..@ xy2index :function (object, x, y) ..@ envir :length 2 ..@ envName : chr "ZG-DU33" ..@ nrow : int 100 ..@ ncol : int 100 ..@ probeTypes: chr [1:2] "pm" "mm" ..@ chipType : chr "ZG-DU33" } \examples{ data(cdfenvEx) print(cdfenvEx) } \keyword{datasets} altcdfenvs/man/copyCdfEnvAffy.Rd0000644000175200017520000000074614516003570017645 0ustar00biocbuildbiocbuild\name{copyCdfEnvAffy} \alias{copyCdfEnvAffy} \title{ make a copy of a CdfEnvAffy } \description{ make a copy of a CdfEnvAffy } \usage{ copyCdfEnvAffy(acdfenv) } \arguments{ \item{acdfenv}{ instance of class \code{CdfEnvAffy} } } \details{ Make a copy can be needed since a \code{CdfEnvAffy} contains an \code{environment} } \value{ A \code{CdfEnvAffy} } \seealso{\code{\link{CdfEnvAffy-class}}, \code{\link[Biobase]{copyEnv}}} \keyword{ manip }% at least one, from doc/KEYWORDS altcdfenvs/man/countduplicated.Rd0000644000175200017520000000167514516003570020170 0ustar00biocbuildbiocbuild\name{countduplicated} \alias{countduplicated} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Count the number of times probes are used } \description{ This function counts the number of times the probes in a CdfEnvAffy are found in this object. } \usage{ countduplicated(x, incomparables = FALSE, verbose = FALSE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x}{An instance of \code{CdfEnvAffy-class} } \item{incomparables}{ (not implemented yet, keep away) } \item{verbose}{ verbose or not } } \value{ An \code{environment} is returned. Each element in this \code{environment} has the same identifier than its corresponding probe set in the \code{CdfEnvAffy-class} and contains the number of times a probe is in use in the environment (instead of an index number in the \code{CdfEnvAffy-class}). } \author{ Laurent } \seealso{ \code{\link{CdfEnvAffy-class}}} \keyword{ manip } altcdfenvs/man/geneNames.Rd0000644000175200017520000000074514516003570016700 0ustar00biocbuildbiocbuild\name{geneNames.CdfEnvAffy} %\alias{geneNames.AltAffyBatch} \alias{geneNames.CdfEnvAffy} \title{ get the names of the known probe sets } \description{ get the names of the probe sets known to the CdfEnv } \usage{ %geneNames.AltAffyBatch(object) geneNames.CdfEnvAffy(object) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{object}{ \code{CdfEnvAffy-class}} %\code{AltAffyBatch-class} or } \value{ a vector of mode \code{character} } \keyword{ manip} altcdfenvs/man/getxy.probeseq.Rd0000644000175200017520000000422614516003570017753 0ustar00biocbuildbiocbuild\name{getxy.probeseq} \alias{getxy.probeseq} %- Also NEED an '\alias' for EACH other topic documented here. \title{ A function to get the XY coordinates from a probes sequences data frame} \description{ A function to get the XY coordinates from a probes sequences \code{data.frame} } \usage{ getxy.probeseq(ppset.id = NULL, probeseq = NULL, i.row = NULL, xy.offset = NULL, x.colname = "x", y.colname = "y") } %- maybe also 'usage' for other objects documented here. \arguments{ \item{ppset.id}{ The probe sets of interest (a vector of mode \code{character}. } \item{probeseq}{ The probe sequence \code{data.frame} (see details). } \item{i.row}{ Row indexes in the \code{data.frame} (see details). } \item{xy.offset}{ Offset for the xy coordinates. if \code{NULL}, uses the default offset stored as an option for the affy package. } \item{x.colname, y.colname}{ The probe sequence packages have seen the names for the columns in their \code{data.frame}. This parameters exists to let us follow these changes.} } \details{ The \code{data.frame} passed as argument \code{probeseq} is expected to have (at least) the following columns: \code{Probe.X}, \code{Probe.Y} and \code{Probe.Set.Name}. When the argument \code{ppset.id} is not null, the probe sets } \value{ A \code{matrix} of two columns. The first column contains x coordinates, while the second column contains y coordinates. } \author{ Laurent } \section{Warning }{ The parameter \code{xy.offset.one} is here for historical reasons. This should not be touched, the option in the affy package should be modified if one wishes to modify this. This function should not be confused with the methods \code{index2xy} and similar. Here the the XY coordinate come from a \code{data.frame} that stores information about an arbitrary number probes on the chip. (See the `probe sequence' data packages on Bioconductor, and the package \code{Biostrings}). The methods \code{index2xy} are meant to interact with instances of class \code{AffyBatch}. } %\seealso{ ~~objects to See Also as \code{\link{~~fun~~}}, ~~~ } \examples{ ##---- Should be DIRECTLY executable !! ---- } \keyword{ manip } altcdfenvs/man/index2xy.Rd0000644000175200017520000000160714516003570016546 0ustar00biocbuildbiocbuild\name{index2xy} \alias{index2xy} \alias{index2xy.CdfEnvAffy} %\alias{index2xy.AltAffyBatch} \alias{xy2index} \alias{xy2index.CdfEnvAffy} %\alias{xy2index.AltAffyBatch} \title{ Functions to shuttle from indexes to XY coordinates } \description{ Functions to shuttle from indexes to XY coordinates. } \usage{ index2xy(object, ...) xy2index(object, ...) index2xy.CdfEnvAffy(object, i) %index2xy.AltAffyBatch(object, i) xy2index.CdfEnvAffy(object, x, y) %xy2index.AltAffyBatch(object, x, y) } \arguments{ \item{object}{An object of class \code{CdfEnvAffy}.} \item{i}{A vector of indexes.} \item{x, y}{Vectors of X and Y coordinates.} \item{\dots}{Optional parameters (not used).} } \value{ A vector of integers (for \code{xy2index} methods), or a matrix of two columns (for \code{index2xy} methods). } \seealso{ \code{\link{CdfEnvAffy-class}}} \examples{ ## To be done... } \keyword{ manip } altcdfenvs/man/indexProbes.CdfEnvAffy.Rd0000644000175200017520000000244214516003570021226 0ustar00biocbuildbiocbuild\name{indexProbes.CdfEnvAffy} \alias{indexProbes.CdfEnvAffy} %\alias{indexProbes.AltAffyBatch} \title{ indexes for probes } \description{ A function to get the index for probes } \usage{ indexProbes.CdfEnvAffy(object, which, probeSetNames = NULL) %indexProbes.AltAffyBatch(object, which, probeSetNames = NULL) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{object}{ \code{CdfEnvAffy}}% or \code{AltAffyBatch}} \item{which}{ which kind of probe are of interest (see details). } \item{probeSetNames}{ names of the probe sets of interest. If \code{NULL}, all the probe sets are considered. } } \details{ The parameter \code{which} let one specify which category of probes are of interest. In the case of Affymetrix chips, probes can be \code{"pm"} probes or \code{"mm"} probes. It the parameter is set to \code{c("pm", "mm")}, both are returned. Should other categories be defined, they can be handled as well. % One can note that the method \code{indexProbes} defined for the % class \code{AltAffyBatch} in only a convenience % accessor function (since logically the indexes are computed from the cdfenv % information). } \value{ A \code{list} of indexes. } \seealso{\code{\link{CdfEnvAffy-class}}, \code{\link[affy]{AffyBatch-class} }} \keyword{ manip } altcdfenvs/man/matchAffyProbes.Rd0000644000175200017520000000460014516003570020045 0ustar00biocbuildbiocbuild\name{matchAffyProbes} \alias{matchAffyProbes} \alias{mmProbes} \title{ Match the probes on an Affymetrix array } \description{ Match the individual probes on an Affymetrix array to arbitrary targets. } \usage{ mmProbes(probes) matchAffyProbes(probes, targets, chip_type, matchmm = TRUE, selectMatches = function(x) which(elementNROWS(x) > 0), ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{probes}{ a \code{probetable} object } \item{targets}{ a vector of references } \item{chip_type}{a name for the chip type.} \item{matchmm}{whether to match MM probes or not} \item{selectMatches}{a function to select matches (see Details).} \item{...}{further arguments to be passed to \code{matchPDict}.} } \details{ The matching is performed by the function \code{\link[Biostrings:matchPDict-exact]{matchPDict}}. The man page for that function will indicate what are the options it accepts. In the case where a large number targets are given, like when each target represents a possible mRNA, is it expected to have a largely sparse incidence matrix, that is a low number of probes matching every target. For that reason, only the index of matching probes are associated with each given target, with the function \code{selectMatches} giving the definition of what are matching probes. The default function just count anything matching, but the user can specify a more stringent definition if wanted. } \value{ \code{mmProbes} returns a vector of MM probe sequences. \code{matchAffyProbes} returns an instance of \code{AffyProbesMatch-class}. } \author{ Laurent Gautier } \seealso{ \code{\link[Biostrings:matchPDict-exact]{matchPDict}} for details on how the matching is performed, \code{\link{AffyProbesMatch-class}} and \code{\link{buildCdfEnv.biostrings}}} \examples{ library(hgu133aprobe) filename <- system.file("exampleData", "sample.fasta", package="altcdfenvs") fasta.seq <- readDNAStringSet(filename) targets <- as.character(fasta.seq) names(targets) <- sub("^>.+\\\\|(NM[^ \\\\|]+|Hs[^ \\\\|]+)\\\\| ? .+$", "", names(targets)) m <- matchAffyProbes(hgu133aprobe, targets, "HG-U133A") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ manip } altcdfenvs/man/plot.CdfEnvAffy.Rd0000644000175200017520000000150014516003570017714 0ustar00biocbuildbiocbuild\name{plot.CdfEnvAffy} \alias{plot.CdfEnvAffy} \title{ A function to `plot' a CdfEnvAffy } \description{ A function to set the axis and plot the outline for a CdfEnvAffy } \usage{ \method{plot}{CdfEnvAffy}(x, xlab = "", ylab = "", main = x@chipType, ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x}{ a \code{CdfEnvAffy} } \item{xlab}{ label for the rows } \item{ylab}{ label for the columns } \item{main}{ label for the plot. The chip-type by default. } \item{\dots}{ optional parameters to be passed to the underlying function \code{plot}} } \details{ This function does not `plot' much, but sets the coordinates for further plotting (see the examples). } \author{ Laurent } \seealso{\code{\link{CdfEnvAffy-class}} } \examples{ ## See "CdfEnvAffy-class" } \keyword{ hplot } altcdfenvs/man/removeIndex.Rd0000644000175200017520000000334414516003570017261 0ustar00biocbuildbiocbuild\name{removeIndex} \alias{removeIndex} \title{ A function to remove probes in an environment } \description{ A function to remove probes in an environment, given their index. } \usage{ removeIndex(x, i, simplify = TRUE, verbose = FALSE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x}{ An instance of \code{CdfEnvAffy-class} } \item{i}{ A vector of indexes (integers !). } \item{simplify}{ Simply the resulting \code{CdfEnvAffy} (see details). } \item{verbose}{ verbose output or not. } } \details{ The probes to be removed are set to \code{NA} in the CdfEnvAffy. When \code{simplify} is set to \code{TRUE} the probe sets are simplified whenever possible. For example, if both pm and mm for the same probe pair are set to \code{NA}, then the probe pair is removed from the probe set. } \value{ An instance of \code{CdfEnvAffy-class} is returned. } \author{ Laurent Gautier } \seealso{ \code{\link{CdfEnvAffy-class}} } \examples{ ## use plasmodiumanopheles chip as an example if (require(plasmodiumanophelescdf)) { ## wrap in a (convenient) CdfEnvAffy object planocdf <- wrapCdfEnvAffy(plasmodiumanophelescdf, 712, 712, "plasmodiumanophelescdf") print(planocdf) ## ask for the probe indexed '10759' to be removed ## (note: if one wishes to remove from X/Y coordinates, ## the function xy2index can be of help). planocdfCustom <- removeIndex(planocdf, as.integer(10759)) ## let see what happened (we made this example knowing in which ## probe set the probe indexed '10759' is found). indexProbes(planocdf, "pm", "200000_s_at") indexProbes(planocdfCustom, "pm", "200000_s_at") ## The 'second' pm probe (indexed '10579') in the probe set is now set ## to NA. } } \keyword{ manip } altcdfenvs/man/toHypergraph.Rd0000644000175200017520000000053014516003570017442 0ustar00biocbuildbiocbuild\name{toHypergraph} \alias{toHypergraph} \title{Transform to an hypergraph} \description{ Transform to an hypergraph } \usage{ toHypergraph(object, ...) } \arguments{ \item{object}{Object derived from class \code{AffyProbesMatch}.} \item{...}{Unused.} } \value{ An \code{\link[hypergraph]{Hypergraph-class}} object. } \keyword{manip} altcdfenvs/man/unique.CdfEnvAffy.Rd0000644000175200017520000000206114516003570020247 0ustar00biocbuildbiocbuild\name{unique.CdfEnvAffy} \alias{unique.CdfEnvAffy} \title{ Remove duplicated elements from a CdfEnvAffy } \description{ Remove duplicated elements from a CdfEnvAffy } \usage{ \method{unique}{CdfEnvAffy}(x, incomparables = FALSE, simplify = TRUE, verbose = FALSE, ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x}{ An instance of \code{CdfEnvAffy-class} } \item{incomparables}{ (not yet implemented) } \item{simplify}{ simplify the result } \item{verbose}{ verbose or not } \item{\dots}{ (here for compatibility with the generic \code{unique}) } } \details{ The parameter \code{simplify} has the same function as the one with the same name in \code{countduplicated}. } \value{ An instance of \code{CdfEnvAffy-class} in which probes used several times are removed. } \author{ Laurent } \section{Warning }{The function differs slightly from the generic \code{unique}. Here the elements found in several place a merely removed.} \seealso{\code{\link{countduplicated}} } \examples{ ##not yet here... } \keyword{ manip } altcdfenvs/man/utils.FASTA.Rd0000644000175200017520000000541714516003570016774 0ustar00biocbuildbiocbuild\name{read.FASTA.entry} \alias{read.FASTA.entry} \alias{print.FASTA} \alias{write.FASTA} \alias{skip.FASTA.entry} \alias{read.n.FASTA.entries} \alias{read.n.FASTA.headers} \alias{read.n.FASTA.sequences} \alias{read.n.FASTA.entries.split} \alias{countskip.FASTA.entries} \alias{read.FASTA.entry} \alias{grep.FASTA.entry} \title{Functions to work with FASTA files / connections} \description{ Set of function to work with biological sequences stored in FASTA format. } \usage{ countskip.FASTA.entries(con, linebreaks = 3000) grep.FASTA.entry(pattern, con, ...) \method{print}{FASTA}(x, ...) read.FASTA.entry(con, linebreaks = 3000) read.n.FASTA.entries(con, n, linebreaks = 3000) read.n.FASTA.entries.split(con, n, linebreaks = 3000) read.n.FASTA.headers(con, n, linebreaks = 3000) read.n.FASTA.sequences(con, n, linebreaks = 3000) skip.FASTA.entry(con, skip, linebreaks = 3000) write.FASTA(x, file="data.fasta", append = FALSE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{append}{append to the file (or not)} \item{con}{a \link{connection}} \item{file}{a file name} \item{linebreaks}{(to optimize the parsing, probably safe to leave it as it is)} \item{n}{number of entries to read} \item{pattern}{a pattern (to be passed to the function \code{grep})} \item{skip}{number of entries to skip} \item{x}{a FASTA sequence object} \item{...}{optional arguments to be forwarded to the function \code{print} or to the function \code{grep}} } \details{ \code{countskip.FASTA.entries} skips the remaining FASTA entries currently remaining in the connection and return the count. \code{grep.FASTA.entry} returns the next FASTA entry in the connection that matches a given regular expression. \code{print.FASTA} prints a FASTA object. \code{read.FASTA.entry} reads the next FASTA entry in the connection. \code{read.n.FASTA.entries} reads the \code{n} next FASTA entries and returns a \code{list} of FASTA objects. \code{read.n.FASTA.entries.split} reads the \code{n} next FASTA entries and returns a list of two elements: headers and sequences. \code{read.n.FASTA.headers} reads the \code{n} next FASTA headers. \code{read.n.FASTA.sequences} reads the \code{n} next FASTA sequences. \code{skip.FASTA.entry} skips a given number of FASTA entries. \code{write.FASTA} write a FASTA object into a connection. % ~~ If necessary, more details than the __description__ above ~~ } \value{ The value returned depends on the function. See above. } \author{ Laurent Gautier } \examples{ filename <- system.file("exampleData", "sample.fasta", package="altcdfenvs") con <- file(filename, open="r") fasta.seq <- grep.FASTA.entry("NM_001544\\\.2", con) close(con) print(fasta.seq) } \keyword{ manip } \keyword{ IO } \keyword{ connection } altcdfenvs/man/validAffyBatch.Rd0000644000175200017520000000142014516003570017634 0ustar00biocbuildbiocbuild\name{validAffyBatch} \alias{validAffyBatch} \alias{validCdfEnvAffy} \alias{printValidCdfEnvAffy} \title{Check validity of a CdfEnvAffy.} \description{ Tries to see if a CdfEnvAffy, or a pair of AffyBatch / CdfEnvAffy is valid. } \usage{ validAffyBatch(abatch, cdfenv) validCdfEnvAffy(cdfenv, verbose=TRUE) printValidCdfEnvAffy(x) } \arguments{ \item{abatch}{ instance of \code{\link[affy]{AffyBatch-class}} } \item{cdfenv}{ instance of \code{\link{CdfEnvAffy-class}} } \item{verbose}{ verbose or not} \item{x}{object returned by \code{validCdfEnvAffy}} } \details{ The function \code{validAffyBatch} calls in turn \code{validCdfEnvAffy}. } \seealso{ \code{\link[affy]{AffyBatch-class}}, \code{\link{CdfEnvAffy-class}} } \examples{ ## To be done... } \keyword{ manip } altcdfenvs/vignettes/0000755000175200017520000000000014516022764015744 5ustar00biocbuildbiocbuildaltcdfenvs/vignettes/altcdfenvs.Rnw0000644000175200017520000002546014516003570020566 0ustar00biocbuildbiocbuild% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- %\VignetteIndexEntry{altcdfenvs} %\VignetteKeywords{Preprocessing, Affymetrix} %\VignetteDepends{altcdfenvs} %\VignettePackage{altcdfenvs} \documentclass[12pt]{article} %\usepackage{amsmath} %\usepackage{hyperref} \usepackage[authoryear,round]{natbib} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\scscst}{\scriptscriptstyle} \newcommand{\scst}{\scriptstyle} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \author{Laurent Gautier} \title{Alternative CDF environments} \begin{document} \maketitle \tableofcontents \section{Introduction} On short oligonuleotide arrays, several probes are designed to match a target transcript, and probes matching the same target transcript can be grouped in a probe set. Between the time the probes for a given short oligonucleotide chip were designed, and the time an analysis is made, the knowledge of expected transcripts for a given organism might have changed. Unless one includes the latest development in transcripts into an analysis, the analysis could suffer from what we like to call a {\it Dorian Gray}\footnote{From the novel `The Picture of Dorian Gray' by Oscar Wilde.} effect. The chip itself does not change, which means that the probes and their respective sequences remain the same, while the knowledge of the transcripts, and eventually their sequence, might evolve, and in time the immobility of the probe and probe sets give an uglier picture of the biological phenomena to study. Being able to easily modify or replace the grouping of probes in probe sets gives the opportunity to minimize this effect. The package is directly usable with {\it Affymetrix} {\it GeneChip} short oligonucleotide arrays, and can be adapted or extended to other platforms. The bibliographic reference associated with the package is given by the command: \begin{Scode} citation(package="altcdfenvs") \end{Scode} \begin{quote} Alternative mapping of probes to genes for Affymetrix chips Laurent Gautier, Morten Mooller, Lennart Friis-Hansen, Steen Knudsen BMC Bioinformatics 2004, 5:111 \end{quote} If you use it, consider citing it, and if you cite it consider citing as well other packages it depends on. To start we will first load the package: <<>>= library(altcdfenvs) @ \section{The class \Rclass{CdfEnvAffy}} Each instance of this class contains a way to group probes in probe sets. Different instances, describing different ways to group probes in probe sets, can co-exist for a given chip type. When experimenting, it is highly recommended to use the functions \Rfunction{validCdfEnvAffy} and \Rfunction{validAffyBatch} to make sure that a given instance is a valid one. \section{Reading sequence information in FASTA connections} The package contains simple functions to read {\bf R} connections in the FASTA format. Typically, collections of sequences are stored in FASTA files, which can be significantly large, one can wish to read and process sequences one after the other. This can be done by opening the file in `r' mode: <<>>= fasta.filename <- system.file("exampleData", "sample.fasta", package="altcdfenvs") con <- file(fasta.filename, open="r") @ Reading the sequences one after another, and printing information about them in turn goes like: <<>>= fasta.seq <- read.FASTA.entry(con) while(! is.null(fasta.seq$header)) { print(fasta.seq) fasta.seq <- read.FASTA.entry(con) } close(con) @ One can foresee that the matching of a set of reference sequences against all the probes can be parallelized easily: the reference sequences can simply be distributed across different processors/machines. When working with all the reference sequences in a single large FASTA file, the option \Robject{skip} can let one implement a poor man's parallel sequence matching very easily. \section{Creating an alternative mapping from sequences in a FASTA file} \subsection{Select the constituting elements} \begin{itemize} \item Chip type: For this tutorial we decide to work with the Affymetrix chip HG-U133A. \item Target sequences: The set of target sequences we use for this tutorial is in the exemplar FASTA file: <<>>= ## first, count the number of FASTA entries in our file con <- file(fasta.filename, open="r") n <- countskip.FASTA.entries(con) close(con) ## read all the entries con <- file(fasta.filename, open="r") my.entries <- read.n.FASTA.entries.split(con, n) close(con) @ \end{itemize} \subsection*{matching the probes} The package \Rpackage{Biostrings} and the probe data package for HG-U133A are required to perform the matching. The first step is to load them: <<>>= library(hgu133aprobe) @ The matching is done simply (one can refer to the documentation for the package \Rpackage{Biostrings} for further details): <<>>= targets <- my.entries$sequences names(targets) <- sub(">.+\\|(Hs\\#|NM_)([^[:blank:]\\|]+).+", "\\1\\2", my.entries$headers) m <- matchAffyProbes(hgu133aprobe, targets, "HG-U133A") @ \subsection{analyzing the matches} When the position of the match between probes and target sequences does not matter, the association can be represented as a bipartite graph. The method \Rfunction{toHypergraph} will transform an instance of \Rclass{AffyProbesMatch} into an \Rclass{Hypergraph}. <<>>= hg <- toHypergraph(m) @ Currently, there are not many functions implemented around hypergraphs, so we convert it to a more common graph. <<>>= gn <- toGraphNEL(hg) @ Since this is now a regular graph, all of probes and targets are regular nodes on that graph. Node name-based rules can be applied to identify whether a node is a target sequence or a probe. <<>>= targetNodes <- new.env(hash=TRUE, parent=emptyenv()) for (i in seq(along=targets)) { targetNodes[[names(targets)[i]]] <- i } @ Since the graph is relatively small, we can plot it, and see that one probe is common to both probe sets: <>= library(Rgraphviz) tShapes <- rep("ellipse", length=length(targets)) names(tShapes) <- names(targets) tColors <- rep("ivory", length=length(targets)) names(tColors) <- names(targets) nAttrs <- list(shape = tShapes, fillcolor = tColors) gAttrs <- list(node = list(shape = "rectangle", fixedsize = FALSE)) plot(gn, "neato", nodeAttrs = nAttrs, attrs = gAttrs) @ Whenever a large number oftarget sequences are involved, counting the degrees will be more efficient than plotting. The package contains a function to create a \Rclass{CdfEnv} from the matches: <>= alt.cdf <- buildCdfEnv.biostrings(m, nrow.chip = 712, ncol.chip = 712) @ Note that the size for chip must be specified. This is currently a problem with cdfenvs as they are created by the package \Rpackage{makecdfenv}. The class \Rclass{CdfEnv} suggests a way to solve this (hopefully this will be integrated in \Rpackage{makecdfenv} in the near future). When this happens, the section below will be replaced by something more intuitive. But in the meanwhile, here is the current way to use our shiny brand new class \Rclass{CdfEnv}: \begin{Scode} ## say we have an AffyBatch of HG-U133A chips called 'abatch' ## summary checks to avoid silly mistakes validAffyBatch(abatch, alt.cdf) ## it is ok, so we proceed... ## get the environment out of it class alt.cdfenv <- alt.cdf@envir abatch@cdfName <- "alt.cdfenv" \end{Scode} From now on, the object \Robject{abatch} will use our `alternative mapping' rather than the one provided by the manufacturer of the chip: \begin{Scode} print(abatch) \end{Scode} %\section*{Creating an alternative environment to store only perfect matches} \section{Always up-to-date} Even if alternative mapping is not used upstream of the analysis, it can still be interesting to verify probesets highlighted during data analysis. The \Rpackage{biomaRt} package makes withdrawing up-to-date sequences very easy, and those sequences can be matched against the probes. First, we create a \emph{mart}: \begin{Scode} library(biomaRt) mart <- useMart("ensembl",dataset="hsapiens_gene_ensembl") \end{Scode} (refer to the documentation for the \Rpackage{biomaRt} for further information). \subsection{Casual checking of genes} In this example, we assume that for one reason or an other a researcher would like to know more about the probes matching the SLAMF genes. <>= geneSymbols <- c("SLAMF1", "SLAMF3", "SLAMF6", "SLAMF7", "SLAMF8", "SLAMF9") @ The vector \Robject{geneSymbols} defined can easily be replaced by your favorite genes; the example below should still work. We then write a convenience function \Robject{getSeq} to extract the sequences. This function appenda a \verb+-+ to the HUGO symbol (as there might be several sequences matching). <>= getSeq <- function(name) { seq <- getSequence(id=name, type="hgnc_symbol", seqType="cdna", mart = mart) targets <- seq$cdna if (is.null(targets)) return(character(0)) names(targets) <- paste(seq$hgnc_symbol, 1:nrow(seq), sep="-") return(targets) } @ % load saved data (instead of connecting to the mart) <>= load(system.file("exampleData", "slamf_targets.RData", package="altcdfenvs")) @ The function let us obtain the target sequences very easily: \begin{Scode} targets <- unlist(lapply(geneSymbols, getSeq)) \end{Scode} The targets are matched as seen previously: <<>>= m <- matchAffyProbes(hgu133aprobe, targets, "HG-U133A") @ A colorful graph can be made in order to visualize how matching probes are distributed: <>= hg <- toHypergraph(m) gn <- toGraphNEL(hg) library(RColorBrewer) col <- brewer.pal(length(geneSymbols)+1, "Set1") tColors <- rep(col[length(col)], length=numNodes(gn)) names(tColors) <- nodes(gn) for (col_i in 1:(length(col)-1)) { node_i <- grep(paste("^", geneSymbols[col_i], "-", sep=""), names(tColors)) tColors[node_i] <- col[col_i] } nAttrs <- list(fillcolor = tColors) plot(gn, "twopi", nodeAttrs=nAttrs) @ \begin{itemize} \item Watch for \emph{SLAMF6} and \emph{SLAMF7} \item The second sequence in SLAMF8 can potentially has specific probes (the rest of the probes are matching both SLAMF8 sequences) \end{itemize} Comparison with the official mapping can be made (not so simply, a future version should address this) <<>>= library("hgu133a.db") affyTab <- toTable(hgu133aSYMBOL) slamf_i <- grep("^SLAMF", affyTab$symbol) pset_id <- affyTab$probe_id[slamf_i] library("hgu133acdf") countProbes <- lapply(pset_id, function(x) nrow(hgu133acdf[[x]])) names(countProbes) <- affyTab$symbol[slamf_i] countProbes @ The results do not appear in complete agreement with the matching just performed. \end{document} altcdfenvs/vignettes/modify.Rnw0000644000175200017520000000516014516003570017717 0ustar00biocbuildbiocbuild% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- %\VignetteIndexEntry{Modifying existing CDF environments to make alternative CDF environments} %\VignetteKeywords{Preprocessing, Affymetrix} %\VignetteDepends{altcdfenvs} %\VignettePackage{altcdfenvs} %documentclass[12pt, a4paper]{article} \documentclass[12pt]{article} \usepackage{amsmath} \usepackage{hyperref} \usepackage[authoryear,round]{natbib} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\scscst}{\scriptscriptstyle} \newcommand{\scst}{\scriptstyle} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \author{Laurent Gautier} \title{Modifying existing CDF environments to make alternative CDF environments} \begin{document} \maketitle \section*{Introduction} First we need to load the package: <<>>= library(altcdfenvs) @ The {\it Plasmodium} / {\it Anopheles} is taken as an example: <<>>= library(plasmodiumanophelescdf) @ One will adapt easily the code below for other chips. \section*{How to build a CdfEnvAffy object from the cdfenv package} The first step is to wrap the naked enviroment in the package \Rpackage{plasmodiumanophelescdf} in an object: <<>>= planocdf <- wrapCdfEnvAffy(plasmodiumanophelescdf, 712, 712, "plasmodiumanophelescdf") print(planocdf) @ The numbers $712$ and $712$ correspond to the dimension of the array. If you do not know these numbers for your chip, the easiest (for the moment) is to read CEL data in an \Rclass{AffyBatch} and call the function \Rfunction{print} on this object. Hopefully, the cdf packages offered on the bioconductor website will be modified, which will make this step (and the complication to know the dimension of the chip) unncessary. \section*{How to subset an environment using probe set ids} (see the vignette `n-genomes chips') \section*{How to work with given index / XY coordinates} \subsection*{Getting index} The method \Rfunction{indexProbes} is implemeted for objects of class \Rclass{AltCdfEnvs} <<>>= #indexProbes(planocdf, "pm", "") @ One can directly work on the CDF data, without having to load CEL data. \subsection*{Removing probe sets} The function \Rfunction{removeIndex} let one remove probe sets given their index. \subsection*{Multiple use of index} When crafting an AltCdfEnv, it can happen that probe indexes are used by several probe sets. The \Rfunction{unique.CdfEnvAffy} is designed to help one to deal with the issue. \section*{How to use this environment} (see the vignette `n-genomes chips') \end{document} altcdfenvs/vignettes/ngenomeschips.Rnw0000644000175200017520000000654214516003570021277 0ustar00biocbuildbiocbuild% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- %\VignetteIndexEntry{Alternative CDF environments for 2(or more)-genomes chips} %\VignetteKeywords{Preprocessing, Affymetrix} %\VignetteDepends{altcdfenvs} %\VignettePackage{altcdfenvs} %documentclass[12pt, a4paper]{article} \documentclass[12pt]{article} \usepackage{amsmath} \usepackage{hyperref} \usepackage[authoryear,round]{natbib} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\scscst}{\scriptscriptstyle} \newcommand{\scst}{\scriptstyle} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \author{Laurent Gautier} \title{Alternative CDF environments for 2(or more)-genomes chips} \begin{document} \maketitle \section*{Introduction} Let's start by loading the package: <<>>= library(altcdfenvs) @ The {\it Plasmodium} / {\it Anopheles} is taken as an example: <<>>= library(plasmodiumanophelescdf) @ One will adapt easily the code below for other chips. \section*{How to build a CdfEnvAffy object from the cdfenv package} The first step is to wrap the naked enviroment in the package \Rpackage{plasmodiumanophelescdf} in an object: <<>>= planocdf <- wrapCdfEnvAffy(plasmodiumanophelescdf, 712, 712, "plasmodiumanophelescdf") print(planocdf) @ The numbers $712$ and $712$ correspond to the dimension of the array. If you do not know these numbers for your chip, the easiest (for the moment) is to read CEL data in an \Rclass{AffyBatch} and call the function \Rfunction{print} on this object. \section*{How to create a CdfEnvAffy that is a subset of the 2-genomes one} If the identifiers starting with `Pf' correspond to plasmodium, it is an easy job to find them: <<>>= ids <- geneNames(planocdf) ids.pf <- ids[grep("^Pf", ids)] @ Subsetting the \Rclass{CdfEnvAffy} is also an easy task: <<>>= ## subset the object to only keep probe sets of interest plcdf <- planocdf[ids.pf] print(plcdf) @ However, this is not that simple:{\bf the environment created does not contain all the probe set ids from Plasmodium}. Unfortunately, one cannot rely on pattern matching on the probe set id to find all the probe set ids associated with Plasmodium. The list of plasmodium ids included in the package can let us build a Plasmodium-only CdfEnvAffy (contributed by Zhining Wang). <<>>= filename <- system.file("exampleData", "Plasmodium-Probeset-IDs.txt", package="altcdfenvs") ids.pf <- scan(file = filename, what = "") plcdf <- planocdf[ids.pf] print(plcdf) @ Before we eventually save our environment, we may want to give it an explicit name: <<>>= plcdf@envName <- "Plasmodium ids only" print(plcdf) @ \section*{Assign the new Cdf data to an AffyBatch} Handling of AffyCdfEnv directly in within an AffyBatch, or AffyBatch-like, structure is being completed\ldots in the meanwhile, the current mecanism for cdfenvs has to be used. If your CEL files were read into an AffyBatch named \Robject{abatch}. \begin{Scode} envplcdf <- as(plcdf, "environment") abatch@cdfName <- "plcdf" \end{Scode} From now on, \Robject{abatch} will only consider Cdf information from \Robject{plcdf}. If you want to save this further use, I would recommend to do: \begin{Scode} save(abatch, plcdf, envplcdf, file="where/to/save.rda") \end{Scode} \end{document}