Gviz/DESCRIPTION0000644000175400017540000000311113175732505014231 0ustar00biocbuildbiocbuildPackage: Gviz Version: 1.22.0 Title: Plotting data and annotation information along genomic coordinates Author: Florian Hahne, Steffen Durinck, Robert Ivanek, Arne Mueller, Steve Lianoglou, Ge Tan , Lance Parsons , Shraddha Pai Maintainer: Florian Hahne Depends: R (>= 2.10.0), methods, S4Vectors (>= 0.9.25), IRanges (>= 1.99.18), GenomicRanges (>= 1.17.20), grid Imports: XVector (>= 0.5.7), rtracklayer (>= 1.25.13), lattice, RColorBrewer, biomaRt (>= 2.11.0), AnnotationDbi (>= 1.27.5), Biobase (>= 2.15.3), GenomicFeatures (>= 1.17.22), BSgenome (>= 1.33.1), Biostrings (>= 2.33.11), biovizBase (>= 1.13.8), Rsamtools (>= 1.17.28), latticeExtra (>= 0.6-26), matrixStats (>= 0.8.14), GenomicAlignments (>= 1.1.16), GenomeInfoDb (>= 1.1.3), BiocGenerics (>= 0.11.3), digest(>= 0.6.8) Suggests: xtable, BSgenome.Hsapiens.UCSC.hg19, BiocStyle biocViews: Visualization, Microarray Description: Genomic data analyses requires integrated visualization of known genomic information and new experimental data. Gviz uses the biomaRt and the rtracklayer packages to perform live annotation queries to Ensembl and UCSC and translates this to e.g. gene/transcript structures in viewports of the grid graphics package. This results in genomic information plotted together with your data. Collate: Gviz.R AllGenerics.R AllClasses.R Gviz-methods.R License: Artistic-2.0 LazyLoad: yes NeedsCompilation: no Packaged: 2017-10-30 23:27:01 UTC; biocbuild Gviz/NAMESPACE0000644000175400017540000001204013175714140013736 0ustar00biocbuildbiocbuildimport(methods) import(BiocGenerics) import(S4Vectors) import(IRanges) import(XVector) import(GenomeInfoDb) import(GenomicRanges) import(grid) importClassesFrom(biomaRt, Mart) importClassesFrom(Biostrings, DNAStringSet, BStringSet, DNAString, BString) importClassesFrom(BSgenome, BSgenome, MaskedBSgenome) importClassesFrom(GenomicFeatures, "TxDb") importClassesFrom(rtracklayer, UCSCData) importMethodsFrom(AnnotationDbi, colnames, get, ls, mget, tail) importMethodsFrom(BSgenome, providerVersion) importMethodsFrom(GenomicFeatures, isActiveSeq, "isActiveSeq<-", exonsBy, transcriptsBy, transcripts) importMethodsFrom(rtracklayer, chrom, close, getTable, "tableName<-", track, ucscTableQuery, trackNames, tableNames, import, import.gff, import.gff1, import.gff2, import.gff3, import.2bit, import.bed15, import.bw, import.ucsc, import.bed, import.bedGraph, import.chain, import.wig, seqinfo) importMethodsFrom(Biostrings, consensusMatrix, consensusString, unmasked, complement) importFrom(Biobase, listLen, rowMax, rowMin) importFrom(Biostrings, DNAStringSet, BStringSet, DNAString, BString, reverseComplement, readDNAStringSet, DNA_ALPHABET, stackStrings) importFrom(biomaRt, getBM, useMart, listDatasets, listAttributes, listFilters) importFrom(Rsamtools, scanBamFlag, scanBamHeader, scanBam, ScanBamParam, scanFaIndex, scanFa, BamFile, scanBamWhat, bamWhich) importFrom(graphics, par) importFrom(digest, digest) importFrom(grDevices, boxplot.stats, col2rgb, colorRampPalette, extendrange, hsv, rgb2hsv) importFrom(lattice, current.panel.limits, panel.abline, panel.grid, panel.lines, panel.points, panel.polygon, panel.segments, panel.xyplot, panel.text, trellis.par.get) importFrom(matrixStats, colMaxs, rowMedians, rowMins) importFrom(latticeExtra, panel.xyarea, panel.horizonplot) importFrom(RColorBrewer, brewer.pal) importFrom(rtracklayer, GenomicData, ucscGenomes, browserSession, BigWigFile, FastaFile, TwoBitFile) importFrom(stats, loess.smooth) importFrom(biovizBase, getBioColor) importFrom(utils, assignInNamespace, browseURL, write.table) importFrom(GenomicAlignments, extractAlignmentRangesOnReference, sequenceLayer, GAlignments, summarizeJunctions) importFrom(grDevices, "dev.cur", "dev.off") importFrom(stats, "setNames") importFrom(utils, "modifyList", "type.convert") ### export(".chrName", ".doCache", "AlignedReadTrack", "AlignmentsTrack", "AnnotationTrack", "DetailsAnnotationTrack", "BiomartGeneRegionTrack", "CustomTrack", "DataTrack", "DisplayPars", "SequenceTrack", "OverlayTrack", "drawGD", "GeneRegionTrack", "GenomeAxisTrack", "HighlightTrack", "IdeogramTrack", "UcscTrack", "addScheme", "as.list", "availableDefaultMapping", "availableDisplayPars", "clearSessionCache", "exportTracks", "getScheme", "plotTracks") exportClasses("AlignedReadTrack", "AlignmentsTrack", "AnnotationTrack", "DetailsAnnotationTrack", "BiomartGeneRegionTrack", "DataTrack", "DisplayPars", "GdObject", "GeneRegionTrack", "GenomeAxisTrack", "IdeogramTrack", "ImageMap", "NumericTrack", "RangeTrack", "SequenceTrack", "StackedTrack", "HighlightTrack", "OverlayTrack", "CustomTrack") exportMethods("[", "as.list", "chromosome", "chromosome<-", "coerce", "consolidateTrack", "coords", "coverage", "displayPars", "displayPars<-", "end", "end<-", "exon", "exon<-", "feature", "feature<-", "gene", "gene<-", "genome", "genome<-", "getPar", "group", "group<-", "head", "identifier", "identifier<-", "imageMap", "initialize", "length", "max", "min", "names", "names<-", "position", "range", "ranges", "score", "seqnames", "seqlevels", "seqinfo", "setPar", "split", "stacking", "stacking<-", "stacks", "start", "start<-", "strand", "strand<-", "subseq", "subset", "symbol", "symbol<-", "tags", "tail", "transcript", "transcript<-", "values", "values<-", "width", "width<-") Gviz/NEWS0000644000175400017540000001664113175714140013231 0ustar00biocbuildbiocbuildCHANGES IN VERSION 1.20.0 ------------------------- BUG FIXES o BiomartGeneRegionTracks can now deal with a featureMap list to provide alternative conditional mappings for different Biomarts. CHANGES IN VERSION 1.18.0 ------------------------- BUG FIXES o Various bug fixes. CHANGES IN VERSION 1.16.0 ------------------------- NEW FEATURES o AlignmentsTracks will nor use the transformation display parameter to adjust the plotting of the coverage. CHANGES IN VERSION 1.11.0 ------------------------- NEW FEATURES o BiomartGeneRegionTracks can now be created based on a gene symbol, Ensembl trancript id, Ensebml gene id or ENTREZ gene id. SIGNIFICANT USER-VISIBLE CHANGES o Streaming behaviour for BiomartGeneRegionTracks. Already queried regions are cached, and new data is fetched from Biomart on demand. o Proper handling of UCSC genome identifiers in BiomartGeneRegionTracks. Automated mapping to Ensembl genome versions and Biomart archives. BUG FIXES o A number of significant fixes. CHANGES IN VERSION 1.10.0 ------------------------- BUG FIXES o Various bug fixes. CHANGES IN VERSION 1.9.0 ------------------------- NEW FEATURES o The new CustomTrack class to allow for user-defined plotting functions. SIGNIFICANT USER-VISIBLE CHANGES o The collapseTranscripts parameter now offers more control over the type of collapsing. CHANGES IN VERSION 1.8.0 ------------------------- NEW FEATURES o The new HighlightTrack class to add a comon highlighting region for multiple tracks. o The new OverlayTrack class to merge the panels of multiple tracks into a single panel. o The reverseStrand display parameter lets you plot the data relative to the negative strand. o The just.label display parameter adds control to the placement of group labls in AnnotationTrack and GeneRegionTrack objects. o The box.legend display parameter to add a box around the legend in a DataTrack object. o extend.right and extend.left now also take relative expansion factors (as values between -1 and 1). o A new shape type fixedArrow for AnnotationTrack and GeneRegionTrack objects, and the arrowHeadWidth and arrowHeadMaxWidth parameters to better control the arrow shapes. o Display parameter schemes to persistently modify parameter settings. o The new featureAnnotation and groupAnnotation parameters to better control the feature and group labels in AnnotationTracks. o The new exonAnnotation and transcriptAnnotation parameters to better control the exon and transcript labels in GeneRegionTracks. o The new AlignmentsTrack class to visualized aligned NGS reads in a BAM file. BUG FIXES o A number of significant fixes. SIGNIFICANT USER-VISIBLE CHANGES o Some display parameter names have been reworked, but the old ones should still work as aliases. o Overplotting in AnnotationTrack and GeneRegionTrack objects has been minimized to be able to make better use of alpha blending. Also the way composite exons (e.g. part UTR, part CDS) are plotted has been changed. Those will now be merged into one feature as long as the exon identifier is identical and if they can be reduced into a single range wit min.gapwidth=1. CHANGES IN VERSION 1.6.0 ------------------------- NEW FEATURES o The DataTrack class now comes with a new horizon plot type thanks to input from Ge Tan. SIGNIFICANT USER-VISIBLE CHANGES o isActiveSeq and isActiveSeq<- are deprecated in GenomicFeatures and their methods have been removed from Gviz. CHANGES IN VERSION 1.4.0 ------------------------- NEW FEATURES o BiomartGeneRegionTracks will now make use of the available CDS information in Ensembl. o The constructors to the AnnotationTrack, GeneRegionTrack, DataTrack and SequenceTrack classes now accept a character scalar that points to a file on the file system. A number of default parser functions have been implemented to read the standard file types. Alternatively, a user-defined import function can be provided. This feature also supports streaming from indexed file types like BAM or bigWig, in which case the data is fetched dynamically upon each plotting operation. o The mart object in BiomartGeneRegionTrack objects is now cached in order to speed up subsequent queries to the same mart. o When plotting DataTracks with type 'gradient' or 'heatmap', a color scale is plotted next to the regular y-axis to indicate the mapping of numeric values in the false color range. Thanks to Mark Heron for his code contribution. o Sample names can now be shown in heatmap-type plots by setting the 'showSampleNames' display parameter. SIGNIFICANT USER-VISIBLE CHANGES o Complete refactoring of the automatic font size adjustments to provide more reasonable defaults. o Tick labels on the genomic axis are now show in between tick marks when zoomed in to single nucleotide level. BUG FIXES o Fixed a bug in IdeogramTracks where all bands in the rounded caps at the edges of the Ideogram were missing. o The way genomic ranges are plotted is now according to the Lego block model suggested by Herve. This is only relevant when zooming in to the level of single nucleotides. o Tick labels on the genome axis show only significant digits now. o Sample ordering in heatmap plots is now correct. o Numerous little fixes. CHANGES IN VERSION 1.2.0 ------------------------- NEW FEATURES o A SequenceTrack class has been added to draw genomic sequence information on a Gviz plot. Possible inputs for the track are DNAStringSet objects or directly from BSgenome packages. o GeneRegionTracks can now deal with coding and non-coding regions by means of the feature property in combination with the thinBoxFeature display parameter. o StackedTracks now have a new display parameter 'reverseStacking' which reverts the horizontal ordering of stacked items. If set to TRUE, the lowest items are moved to the top of the stack, and vice versa. SIGNIFICANT USER-VISIBLE CHANGES o Updated the show methods for most tracks to give more meaningful and more compact information about the track's content. Availablability of data on other chromosomes than the currently active one should now be indicated. o IdeogramTracks can now be constructed from a cytoband table via the new bands argument in the constructor. o AnnotationTrack objects now by default draw connecting lines in a light gray color. This feature can be controlled via the col.line display parameter. o Sliding window summarization can now deal with NA values. o Exporting drawGD from the name space now to allow for sub-classing of GdObjects in other packages. o When building GeneRegionTracks from TranscriptDb objects the information about UTRs and coding regions is now retained. BUG FIXES o When zooming into the emty space between two grouped features, the connecting line will now be plotted for all classes inheriting from AnnotationTrack. o An error in calculating ylims when drawing AlignedReadTracks has been fixed. o Numerous other little fixes that mainly aim at improving performance. Gviz/R/0000755000175400017540000000000013175714140012723 5ustar00biocbuildbiocbuildGviz/R/AllClasses.R0000644000175400017540000037627113175714140015114 0ustar00biocbuildbiocbuild## All class definitions and constructors/initializers for the ## package. Note that some methods have to be defined in here as well ## because they are used as part of the initializers. Constructors ## and definitions that are exported in the name space are marked with ## (N) ##---------------------------------------------------------------------------------------------------------------------- ## Some usefull class unions to allow for NULL values in certain slots ##---------------------------------------------------------------------------------------------------------------------- setClassUnion("DfOrNULL", c("data.frame", "NULL")) setClassUnion("MartOrNULL", c("Mart", "NULL")) setClassUnion("FactorOrCharacterOrNULL", c("factor", "character", "NULL")) setClassUnion("NumericOrNULL", c("numeric", "NULL")) setClassUnion("ListOrEnv", c("list", "environment")) setClassUnion("GRangesOrIRanges", c("GRanges", "IRanges")) setClassUnion("NULLOrMissing", c("NULL", "missing")) setClassUnion("BSgenomeOrNULL", c("BSgenome", "NULL")) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## ImageMap: ## ## A class to hold HTML image map information ## Slots : ## o coords: a numeric matrix of rectangular image map cordinates, in the order x bl, y bl, x tr, y tr. Rownames are ## mandatory for the matrix and have to be unique ## o tags: a list of tags that are to be added to the tag, where the name of the list item is used as the ## tagname. The value of each list item has to be a named character vector, where the names must match back into ## the rownames of the 'coords' matrix ##---------------------------------------------------------------------------------------------------------------------- setClass("ImageMap", representation(coords="matrix", tags="list"), prototype=prototype(coords=matrix(1, ncol=4, nrow=0), tags=list())) ## Constructor ImageMap <- function(coords, tags) { if(!(is.matrix(coords) && is.numeric(coords) && ncol(coords)==4)) stop("'coords' must be a numeric matrix with 4 columns") rn <- rownames(coords) if(is.null(rn)) stop("Rownames must be set for the matrix in 'coords'") if(!is.list(tags) || is.null(names(tags)) || any(names(tags)=="") || !all(sapply(tags, is.character))) stop("'tags' must be a named list with character vector items.") n <- unique(unlist(sapply(tags, names))) if(is.null(n) || any(n=="")) stop("All items in the 'tags' list must be named character vectors.") m <- n %in% rn if(!all(m)) stop("The following values in the 'tags' list could not be mapped to the 'coords' matrix:\n", paste(n[!m], sep="", collapse=", ")) new("ImageMap", coords=coords, tags=tags) } ## Allow for NULL value slots setClassUnion("ImageMapOrNULL", c("ImageMap", "NULL")) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## DisplayPars: ## ## A class to control the plotting parameters for GdObjects ## Slots : ## o pars: an environment or a list containing parameter key value pairs ## The initial idea was for the class to uses pass by reference semantic, allowing to update the object ## without reassigning to a symbol. However this turned out to be problematic whenever a GdObject was ## copied and to avoid confusion with the users about unwanted side-effects we decided to deprecate this ## feature. ##---------------------------------------------------------------------------------------------------------------------- setClass("DisplayPars", representation(pars="ListOrEnv")) ## The initializer needs to create the environment, we can't take this ## directly from the class prototype since this would result in using ## the same environment all the time setMethod("initialize", "DisplayPars", function(.Object, ...) { e = new.env(hash=TRUE) args <- list(...) n <- names(args) if(any(n == "")) stop("All supplied arguments must be named.") .Object@pars <- args return(.Object) }) ## Constructor, all supplied arguments are added to the environment. DisplayPars <- function(...) { return(new("DisplayPars", ...)) } ## Update function and deprecation message to show that an old environment-based ## DisplayParameter object has been updated to a list-based object. .updateDp <- function(x, interactive=TRUE) { if(interactive) message("Note that the behaviour of the 'setPar' method has changed. You need to reassign the result to an ", "object for the side effects to happen. Pass-by-reference semantic is no longer supported.") if(class(x@pars)=="environment") { x@pars <- as.list(x@pars) message("The DisplayPars object has been updated to a list-based representation.") } return(x) } ## The accessor methods for the DisplayPars class. (they need to be in ## here because they are being called in the prototypes). For the ## setter method, the input can either be a named list, or a single ## keyword/value pair. The DisplayPars class was first implemented as ## an environment, so we essentially had pass by reference semantic here, ## and the object could be modified without the need to reassign to a ## symbol. However this somewhat broke the the R paradigm, and 'setPar' ## has been deprecated in favour of the more standard 'DisplayPars<-' ## replacement method. The getter methods either return the list ## of all parameters, or a subset of parameters if their names are ## provided as a character vector. Please note that for convenience ## the result is unlisted if only a single parameter is queried. ## Since version 1.7.3 we have introduced an alias table for display ## parameters in order to harmomize parameter names without loosing ## backwards compatability. setMethod("setPar", signature("DisplayPars", "list"), function(x, value, interactive=TRUE) { x <- .updateDp(x, interactive) aliasRes <- .dpAliasReverseTable[names(value)] new <- is.na(aliasRes) aliasRes[new] <- names(value)[new] x@pars[aliasRes] <- value return(x) }) setMethod("setPar", signature("DisplayPars", "character"), function(x, name, value, interactive=TRUE) { if(!(length(name) == 1 && is.null(value)) && length(name) != length(value)) stop("'name' and 'value' must be of equal length") x <- .updateDp(x, interactive) for(i in seq_along(name)){ aliasRes <- .dpAliasReverseTable[name[i]] if(is.na(aliasRes)) aliasRes <- name[i] x@pars[[aliasRes]] <- value[[i]] } return(x) }) setReplaceMethod("displayPars", signature("DisplayPars", "list"), function(x, recursive=FALSE, value) { x <- setPar(x, value, interactive=FALSE) return(x) }) setMethod("getPar", c("DisplayPars", "character"), function(x, name, asIs=FALSE){ aliasRes <- .dpAliasReverseTable[name] new <- is.na(aliasRes) aliasRes[new] <- name[new] if(class(x@pars)=="environment") { name <- intersect(aliasRes, base::ls(x@pars, all.names=TRUE)) tmp <- mget(name, x@pars) }else{ name <- intersect(aliasRes, names(x@pars)) tmp <- x@pars[name] } if(!asIs) tmp <- if(is.list(tmp) && length(tmp)==1) tmp[[1]] else tmp return(if(length(tmp)) tmp else NULL) }) setMethod("getPar", c("DisplayPars", "missing"), function(x, hideInternal=TRUE){ pars <- as.list(x@pars) if(hideInternal) pars <- pars[!grepl("^\\.__", names(pars))] return(pars) }) setMethod("displayPars", c("DisplayPars", "missing"), function(x, hideInternal=TRUE) getPar(x, hideInternal=hideInternal)) setMethod("displayPars", c("DisplayPars", "character"), function(x, name) getPar(x, name)) setMethod("as.list", "DisplayPars", function(x) as(x, "list")) setAs("DisplayPars", "list", function(from, to) if(!is.null(from)) as.list(from@pars) else list()) ## An alias table to define display parameter synonyms. Essentially this is a simple named list, ## where the element names represent the preferred parameter name under which the actual value is ## stored, and the element content is a character vector of synonyms. Please note that this structure ## is also turned into a reverse lookup table for fast access. .dpAliasTable <- list( "fontcolor.title"="col.title", "rotation.title"=c("rot.title", "rotate.title"), "fontcolor.group"="col.group", "fontcolor.item"="col.item", "just.group"=c("labelJust", "labelJustification"), "transcriptAnnotation"="geneSymbols", "fontcolor.item"=c("fontcolor.exon", "fontcolor.feature"), "fontsize.item"=c("fontsize.exon", "fontsize.feature"), "fontfamily.item"=c("fontfamily.exon", "fontfamily.feature"), "fontface.item"=c("fontface.exon", "fontface.feature"), "lineheight.item"=c("lineheight.exon", "lineheight.feature"), "alpha.item"=c("alpha.exon", "alpha.feature"), "cex.item"=c("cex.exon", "cex.feature"), "col.mate"=c("col.mate", "col.mates", "col.pair", "col.pairs"), "lty.mate"=c("lty.mate", "lty.mates", "lty.pair", "lty.pairs"), "lwd.mate"=c("lwd.mate", "lwd.mates", "lwd.pair", "lwd.pairs"), "alpha.mate"=c("alpha.mate", "alpha.mates", "alpha.pair", "alpha.pairs"), "col.gap"="col.gaps", "lwd.gap"="lwd.gaps", "lty.gap"="lty.gaps", "alpha.gap"="alpha.gaps" ) .dpAliasReverseTable <- character() .dpAliasReverseTable[names(.dpAliasTable)] <- names(.dpAliasTable) .dpAliasReverseTable[unlist(.dpAliasTable, use.names=FALSE)] <- rep(names(.dpAliasTable), listLen(.dpAliasTable)) .dpAliasReverseTable <- .dpAliasReverseTable[order(names(.dpAliasReverseTable))] ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## InferredDisplayPars: ## ## A class to allow for querrying of available display parameters. Essentially this is a normal list with ## a bit of a fancyfied show method. ## Slots : ## o name: the name of the class ## o inheritance: a character vector indicating the inheritance structure ##---------------------------------------------------------------------------------------------------------------------- setClass("InferredDisplayPars", representation(name="character", inheritance="character"), contains="list") setMethod("as.list", "InferredDisplayPars", function(x) as(x, "list")) setAs("InferredDisplayPars", "list", function(from, to) {ll <- from@.Data; names(ll) <- names(from); ll}) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## GdObject: ## ## The GdObject is the parent of all Gviz objects in the system. ## This class is virtual. ## Slots: ## o dp: object of class DisplayPars to fine-tune the drawing. ## o name: the object name, used in the title panel if needed. ## o imageMap: an ImageMap object holding relevant image map information, or NULL ## A bunch of DisplayPars are set during object instantiation: ## o fontface, fontcolor, fontsize, fontfamily, lineheight, cex: default settings for ## all text unless specified someplace else. ## o col, lwd, lty, fill: default settings for all plotting elements unless specified ## somewhere else. ## o col.line, col.symbol: default colors for plot symbols and plot lines. The default is ## to take the value of the global col parameter. ## o col.frame: the color of the panel frame, if frame==TRUE ## o col.grid, lwd.grid, lty.grid, v and h: the default parameters for the grid plotting, ## both when type=="g" in DataTracks and when grid==TRUE ## o alpha: the transparancy for all track items. ## o background.title: the fill color for the title panel. Defaults to lightgray. ## o col.title: the font color for the title panel. Defaults to white. ## o cex.title: the expansion factor for the title panel. This effects the fontsize ## of both the title and the axis, if any. Defaults to NULL, which means that the ## text size is automatically adjusted to the available space. ## o fontfamily.title, fontface.title: the font family and font face for the title panel. ## Defaults to bold sans serif. ## o col.axis: the font and line color for the y axis, if any. Defaults to white. ## o cex.axis: the expansion factor for the axis annotation. Defaults to NULL, in which case ## it is computed based on the available space. ## o background.panel: the background color of the content panel. Defaults to transparent. ## o showTitle: boolean, controlling whether to plot a title panel. Although this can be ## set individually for each track, in multi-track plots there will still ## be an empty placeholder in case any of the other tracks include a title. The ## same holds true for axes. Note that the background color could be set to ## transparent in order to completely hide the title/axis panel. ## o showAxis: boolean, controlling whether to plot a y axis (only track types where axes ## are implemented). ## o grid: boolean, switching on/off the plotting of a grid. ## o collapse: collapse the content of the track to accomodate the minimum current ## device resolution ## o min.width, min.height: the minimum width and height in pixels to display. All ranges are expanded ## to this size in order to avoid rendering issues. ## o min.distance: the minimum pixel distance before collapsing range items, only if collapse==TRUE ## o frame: draw a frame around the track ## o size: the relative size of the track ## o ...: additional DisplayPars are allowed. Unless specified in one of the subclasses, ## those should take the value of a valid R color descriptors. The parameter names will ## later be matched to optional track item types as defined in the 'feature' range ## attribute, and all tracks of the matched types are colored accordingly. See the ## documentation of the 'GeneRegion' and 'AnnotationTrack' classes for details. ##---------------------------------------------------------------------------------------------------------------------- setClass("GdObject", representation=representation("VIRTUAL", dp="DisplayPars", name="character", imageMap="ImageMapOrNULL"), prototype=prototype(dp=DisplayPars(alpha=1, alpha.title=NULL, background.panel="transparent", background.title="lightgray", cex.axis=NULL, cex.title=NULL, cex=1, col.axis="white", col.border.title="white", col.frame="lightgray", col.grid=.DEFAULT_SHADED_COL, col.line=NULL, col.symbol=NULL, col.title="white", col=.DEFAULT_SYMBOL_COL, collapse=TRUE, fill=.DEFAULT_FILL_COL, fontcolor="black", fontface.title=2, fontface=1, fontfamily.title="sans", fontfamily="sans", fontsize=12, frame=FALSE, grid=FALSE, h=-1, lineheight=1, lty.grid="solid", lty="solid", lwd.border.title=1, lwd.title=1, lwd.grid=1, lwd=1, min.distance=1, min.height=3, min.width=1, reverseStrand=FALSE, rotation.title=90, rotation=0, showAxis=TRUE, showTitle=TRUE, size=1, v=-1), name="GdObject", imageMap=NULL)) ## We need to set and query DisplayPars in the the initializer, hence ## the appropriate methods have to be defined here first. setMethod("setPar", signature("GdObject", "character"), function(x, name, value, interactive=TRUE) { newDp <- setPar(x@dp, name, value, interactive=interactive) x@dp <- newDp return(x) }) setMethod("setPar", signature("GdObject", "list"), function(x, value, interactive=TRUE) { newDp <- setPar(x@dp, value, interactive=interactive) x@dp <- newDp return(x) }) setReplaceMethod("displayPars", signature("GdObject", "list"), function(x, recursive=FALSE, value) { x <- setPar(x, value, interactive=FALSE) return(x) }) setMethod("getPar", c("GdObject", "character"), function(x, name, asIs=FALSE) getPar(x@dp, name, asIs=asIs)) setMethod("getPar", c("GdObject", "missing"), function(x, hideInternal=TRUE) getPar(x@dp, hideInternal=hideInternal)) setMethod("displayPars", c("GdObject", "character"), function(x, name) getPar(x, name)) setMethod("displayPars", c("GdObject", "missing"), function(x, hideInternal=TRUE) getPar(x, hideInternal=hideInternal)) ## We add everything that hasn't been clobbered up so far as ## additional DisplayParameters. Also, the dp slot must be ## re-initiated here in order to get a fresh environment for each ## instance of the class. setMethod("initialize", "GdObject", function(.Object, name, ...) { ## update the default parameters first .makeParMapping() .Object <- .updatePars(.Object, "GdObject") ## now rebuild the slot to get a new environment pars <- getPar(.Object, hideInternal=FALSE) .Object@dp <- DisplayPars() .Object <- setPar(.Object, pars, interactive=FALSE) if(!missing(name)) .Object@name <- if(is.null(name)) "" else name ## Finally clobber up everything that's left .Object <- setPar(.Object, list(...), interactive=FALSE) return(.Object) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## RangeTrack: ## ## Parent class for all region-like annotation tracks, storing information ## about start, end, strand, chromosome and the associated genome. ## Slots: ## o range: object of class GRangesOrIRanges containing all the necessary information ## for plotting. The content of the metadata columns may vary between ## subclasses. The strand information may be provided in the form '+' for ## the Watson strand, '-' for the Crick strand or '*' for any of the two. ## o chromosome: a character vector giving the active chromosome for which the ## track is defined. Valid chromosome names are: ## - a single numeric character ## - a string, starting with 'chr', followed by any additional characters ## o genome: character giving the reference genome for which the track is defined. ##---------------------------------------------------------------------------------------------------------------------- setClass("RangeTrack", representation=representation("VIRTUAL", range="GRangesOrIRanges", chromosome="character", genome="character"), contains="GdObject", prototype=prototype(chromosome="chr1", dp=DisplayPars(), genome="ANY", name="RangeTrack", range=GRanges())) ## Coercing all input to the appropriate form setMethod("initialize", "RangeTrack", function(.Object, range, chromosome, genome, ...) { ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "RangeTrack") if(!missing(chromosome) && !is.null(chromosome)){ .Object@chromosome <- .chrName(chromosome)[1] } if(!missing(genome) && !is.null(genome)){ .Object@genome <- genome } if(!missing(range) && is(range, "GRanges")){ .Object@range <- range } .Object <- callNextMethod(.Object, ...) return(.Object) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## ReferenceTrack: ## ## Parent class for all tracks that provide a reference to data somewhere on the file system. This class is virtual ## and only exists for the purpose of dispatching ## Slots: ## o stream: the import function to stream data off the disk. Needs to be able to handle the two mandatory arguments ## 'file' (a character containing a valid file path) and 'selection' (a GRanges object with the genomic region to plot) ## o reference: the path to the file containing the data ## o mapping: a default mapping between the metadata columns of the returned GRanges object from the import function ## and the metadata columns that make up the final track object ## o args: a list with the passed in constructor arguments during object instantiation. Those will be needed when ## fetching the data in order to fill all necessary slots ## o defaults: a list with the relevant default values to be used when neither 'mapping' nor 'args' provides the ## necessary information setClass("ReferenceTrack", representation=representation("VIRTUAL", stream="function", reference="character", mapping="list", args="list", defaults="list"), prototype=prototype(stream=function(x, selection){}, reference="~", mapping=list()), validity=function(object){ msg <- NULL if(!all(c("file", "selection") %in% names(formals(object@stream)))) msg <- "The streaming function in the 'stream' slot needs to define two arguments, 'file' and 'selection'" if(!file.exists(object@reference)) msg <- c(msg, sprintf("The referenced file '%s' does not exist", object@reference)) return(if(is.null(msg)) TRUE else msg) }) setMethod("initialize", "ReferenceTrack", function(.Object, stream, reference, mapping=list(), args=list(), defaults=list()) { .Object@stream <- stream .Object@reference <- reference .Object@mapping <- mapping .Object@args <- args .Object@defaults <- defaults validObject(.Object) return(.Object) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## NumericTrack: ## ## Parent class for all annotation tracks that include numeric values. This is for ## dispatching purpose only. ##---------------------------------------------------------------------------------------------------------------------- setClass("NumericTrack", representation=representation("VIRTUAL"), prototype=prototype(name="NumericTrack", dp=DisplayPars()), contains="RangeTrack") ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## StackedTrack ## ## Parent class for all tracks that involve stacking. This is for ## dispatching purpose only. ## Slots: ## o stacking: character controlling the stacking of overlapping items on the final plot. ## One in 'hide', 'dense', 'squish', 'pack' or 'full'. ## o stacks: a numeric vector holding the current stacking information. Not usually set by the user. ## This is part of the prototype only ## o stackingValues: possible values of the stacking slot ## [c("hide", "dense", "squish", "pack", "full")] ##---------------------------------------------------------------------------------------------------------------------- setClass("StackedTrack", representation=representation("VIRTUAL", stacking="character", stacks="numeric"), prototype=prototype(name="StackedTrack", stacking="squish", stackingValues=c("hide", "dense", "squish", "pack", "full"), dp=DisplayPars(stackHeight=0.75, reverseStacking=FALSE)), contains="RangeTrack") ## Need to fill the stacks slot here, don't want to recompute all the time setMethod("initialize", "StackedTrack", function(.Object, stacking, ...) { ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "StackedTrack") pt <- getClass("StackedTrack")@prototype if(!missing(stacking)) { if(!all(stacking %in% pt@stackingValues)) stop("Problem initializing AnnotationTrack need the following values for 'stacking':", paste(pt@stackingValues, collpase=", "), "\n") .Object@stacking <- stacking r <- list(...)$range ##stacks <- if(length(r)>0) disjointBins(ranges(r)) else 0 ##.Object@stacks <- stacks .Object@stacks <- numeric() } .Object <- callNextMethod(.Object, ...) return(.Object) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## AnnotationTrack: ## ## A generic Annotation track, storing information about start, end, chromosome, ## strand and the associated genome. ## Slots: no additional formal slots are defined, but the following are part of the prototype ## o columns: column names that are allowed as part of the internal GRanges object in ## the ranges slot [c("feature", "group")] ## o featureColumnName: the column in the internal RangedData object identifying the ## feature type ["feature"]. If a display parameter of the same name is specified ## the software will use its value for the coloring. ## A bunch of DisplayPars are set during object instantiation: ## o fill: the fill color for untyped items. Defaults to lightblue. ## o col: the border color for all track items. This is also used to connect grouped items. ## o lty, lwd: the line type and width for all track items. This is also used to connect grouped items. ## o lex: the line expansion factor ## o fontsize, fontfamily, fontface, fontcolor: the face, size, family and color for the ## annotation text (i.e., the track item IDs) ## o cex: the font expansion factor. ## o size: the relative size of the track, if not explicitely set in the plotTracks function. ## o lineheight: the text lineheight ## o showId: boolean controlling whether to plot track item identifiers ## o showFeatureId: boolean controlling whether to annotate individual exons ## o col.group, cex.group=0.7, fontface.group=2: the font color, size and face for the ## group-level annotation ## o shape: the shape used for the annotation items. Currently only 'box' and 'arrow' are implemented. ## o rotation: the rotation of the item annotation in degrees. ##---------------------------------------------------------------------------------------------------------------------- ## (N) setClass("AnnotationTrack", contains="StackedTrack", prototype=prototype(columns=c("feature", "group", "id"), stacking="squish", name="AnnotationTrack", dp=DisplayPars(arrowHeadWidth=30, arrowHeadMaxWidth=40, cex.group=0.6, cex=1, col.line="darkgray", col="transparent", featureAnnotation=NULL, fill="lightblue", fontfamily.group="sans", fontcolor.group=.DEFAULT_SHADED_COL, fontcolor.item="white", fontface.group=2, fontsize.group=12, groupAnnotation=NULL, just.group="left", lex=1, lineheight=1, lty="solid", lwd=1, mergeGroups=FALSE, min.height=3, min.width=1, rotation=0, rotation.group=0, rotation.item=0, shape="arrow", showFeatureId=FALSE, showId=FALSE, showOverplotting=FALSE, size=1))) ## Essentially we just check for the correct GRanges columns here setMethod("initialize", "AnnotationTrack", function(.Object, ...) { if(is.null(list(...)$range) && is.null(list(...)$genome) && is.null(list(...)$chromosome)) return(.Object) ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "AnnotationTrack") range <- list(...)$range if(!is.null(range) && length(.Object)) { if(!all(.Object@columns %in% colnames(values(range)))) stop(paste("Problem initializing AnnotationTrack need the following columns:", paste(.Object@columns, collpase = ", ")), "\n") grp <- if(is(.Object, "GeneRegionTrack")) values(range)$transcript else values(range)$group if(any(sapply(split(as.character(strand(range)), grp), function(x) length(unique(x))) != 1)) stop("Grouped elments of a RangeTrack can not be on opposing strands") } .Object <- callNextMethod() return(.Object) }) ## The file-based version of the AnnotationTrack class. This will mainly provide a means to dispatch to ## a special 'subset' method which should stream the necessary data from disk. setClass("ReferenceAnnotationTrack", contains=c("AnnotationTrack", "ReferenceTrack")) ## This just needs to set the appropriate slots that are being inherited from ReferenceTrack because the ## multiple inheritence has some strange features with regards to method selection setMethod("initialize", "ReferenceAnnotationTrack", function(.Object, stream, reference, mapping=list(), args=list(), defaults=list(), ...) { .Object <- selectMethod("initialize", "ReferenceTrack")(.Object=.Object, reference=reference, stream=stream, mapping=mapping, args=args, defaults=defaults) .Object <- callNextMethod(.Object, ...) return(.Object) }) ## Constructor. The following arguments are supported: ## o range: a data.frame or a GRanges object containing the information ## about the track items. If a data.frame, it needs to be coerceable ## to a GRanges object, i.e., it needs at least the mandatory 'start', 'stop' and ## 'strand' columns. Additional optional columns are: ## - feature: the type of the item. Can be mapped to colors via the DisplayPars. ## - group: a grouping factor to connect track items. ## - id: a unique identifier for a feature. This will be plotted if showId==TRUE ## Note that internally we use the value of ID as the seqnames slot in the ## internal GRanges object. Defaults for all missing columns are generated. ## Instead of using the 'range' parameter, all these values can also be passed as ## individual vectors, in which case they need to be of similar length. ## o start, end, width: numeric vectors of the item start and end coordinates ## o strand: the strand information may be provided in the form '+' for ## the Watson strand, '-' for the Crick strand or '*' for any of the two. ## o feature, group, id: individual vectors of equal length as described above. ## o genome, chromosome: the reference genome and active chromosome for the track. ## o stacking: character controlling the stacking of overlapping items. One in 'hide', ## 'dense', 'squish', 'pack' or 'full'. ## o name: the name of the track. This will be used for the title panel. ## All additional items in ... are being treated as further DisplayParameters ## (N) AnnotationTrack <- function(range=NULL, start=NULL, end=NULL, width=NULL, feature, group, id, strand, chromosome, genome, stacking="squish", name="AnnotationTrack", fun, selectFun, importFunction, stream=FALSE, ...) { ## Some defaults covars <- .getCovars(range) isStream <- FALSE if(!is.character(range)){ n <- max(c(length(start), length(end), length(width)), nrow(covars)) if(is.null(covars[["feature"]]) && missing(feature)) feature <- rep("unknown", n) if(is.null(covars[["id"]]) && missing(id)) id <- make.unique(rep(if(!is.null(feature)) as.character(feature) else covars[["feature"]], n)[1:n]) if(is.null(covars[["group"]]) && missing(group)) group <- seq_len(n) } ## Build a GRanges object from the inputs .missingToNull(c("feature", "group", "id", "strand", "chromosome", "importFunction", "genome")) args <- list(feature=feature, group=group, id=id, strand=strand, chromosome=chromosome, genome=genome) defs <- list(feature="unknown", group="unknown", id="unknown", strand="*", density=1, chromosome="chrNA", genome=NA) range <- .buildRange(range=range, groupId="group", start=start, end=end, width=width, args=args, defaults=defs, chromosome=chromosome, trackType="AnnotationTrack", importFun=importFunction, stream=stream) if(is.list(range)){ isStream <- TRUE slist <- range range <- GRanges() } ## Pipes have a special meaning for merged groups, so we can't have them in the initial group vector mcols(range)[["group"]] <- gsub("|", "", mcols(range)[["group"]], fixed=TRUE) ## If no chromosome was explicitely asked for we just take the first one in the GRanges object if(missing(chromosome) || is.null(chromosome)) chromosome <- if(length(range)>0) .chrName(as.character(seqnames(range)[1])) else "chrNA" ## And finally the object instantiation, we have to distinguish between DetailsAnnotationTracks and normal ones genome <- .getGenomeFromGRange(range, ifelse(is.null(genome), character(), genome[1])) if(missing(fun)) { if(!isStream){ return(new("AnnotationTrack", chromosome=as.character(chromosome[1]), range=range, name=name, genome=genome, stacking=stacking, ...)) }else{ ## A bit hackish but for some functions we may want to know which track type we need but at the ## same time we do not want to enforce this as an additional argument e <- new.env() e[["._trackType"]] <- "AnnotationTrack" environment(slist[["stream"]]) <- e return(new("ReferenceAnnotationTrack", chromosome=as.character(chromosome[1]), range=range, name=name, genome=genome, stacking=stacking, stream=slist[["stream"]], reference=slist[["reference"]], mapping=slist[["mapping"]], args=args, defaults=defs, ...)) } }else{ if(!is.function(fun)) stop("'fun' must be a function") if(missing(selectFun)) selectFun <- function(...) return(TRUE) if(!is.function(selectFun)) stop("'selectFun' must be a function") return(new("DetailsAnnotationTrack", chromosome=as.character(chromosome[1]), range=range, name=name, genome=genome, stacking=stacking, fun=fun, selectFun=selectFun, ...)) } } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## DetailsAnnotationTrack is an AnnotationTrack for which each fearture (annotation) ## has a detail plot (e.g. a scatter plot e.g. using lattice). The details plot ## is generated by a user defined funnction that gets called internally with ## arguments start, end and chromosome for the feature. The details plots are placed ## on top of the AnnotationTrack. As details plots can take relatively much space ## compared to features of an AnnotationTrack it only makse sense to prove details ## for an AnnotationTrack with few features. The details plots are distributed evenly ## on top of the annotation and can be connected to their corresponding featurs (they're ## providing details for) with lines for better readability. ## ## The function must have the '...' arguments. All items from the list in ## detailsFunArgs get added as arguments to the function call as well as the ## arguments, start, end, chromosome and identifier. ## ## foo = function(...) { ## plot(densityplot(rnorm(1000), xlab=NA, ylab=NA), newpage=FALSE, prefix="foo") ## } ## ## Note, use plot with newpage=FALSE and an explicit prefix (otherwise plotting ## get more and more slow the more trellis plots you create!). See '?plot.trellis' ## for details. ##---------------------------------------------------------------------------------------------------------------------- ## (N) setClass("DetailsAnnotationTrack", contains="AnnotationTrack", representation=representation(fun="function", selectFun="function"), prototype=prototype(fun=function(...){}, selectFun=function(...){return(TRUE)}, dp=DisplayPars(details.minWidth=100, details.ratio=Inf, details.size=0.5, detailsBorder.col="darkgray", detailsBorder.fill="transparent", detailsBorder.lty="solid", detailsBorder.lwd=1, detailsConnector.cex=1, detailsConnector.col="darkgray", detailsConnector.lty="dashed", detailsConnector.lwd=1, detailsConnector.pch=20, detailsFunArgs=list(), groupDetails=FALSE))) DetailsAnnotationTrack <- function(...) AnnotationTrack(...) setMethod("initialize", "DetailsAnnotationTrack", function(.Object, fun, selectFun, ...) { ## the diplay parameter defaults .Object <- .updatePars(.Object, "DetailsAnnotationTrack") .makeParMapping() .Object@fun <- fun .Object@selectFun <- selectFun .Object <- callNextMethod(.Object, ...) return(.Object) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## GeneRegionTrack: ## ## A track containing all genes in a particular region. The data are usually fetched dynamially ## from an online data store. Of course it would ## also be possible to manully construct an object from local data. Particular data sources ## should be implemented as sub-classes, this is just the commone denominator that is being ## used for plotting later on. There are several levels of data associated to a GeneRegionTrack: ## - exon level: identifiers are stored in the exon column of the GRanges object. Data may be extracted ## using the 'exons' method. ## - transcript level: identifiers are stored in the transcript column of the GRanges object. ## Data may be extracted using the 'transcripts' method. ## - gene level: identifiers are stored in the gene column of the GRanges object, more human-readable ## versions in the symbol column. Data may be extracted using the 'genes' or the 'symbols' methods. ## - transcript-type level: information is stored in the feature column of the GRanges object. ## If a display parameter of the same name is specified the software will use its value for the coloring. ## Slots: no additional formal slots are defined, but the following are part of the prototype ## o columns: column names that are allowed as part of the internal GRanges object in ## the ranges slot [c("feature", "transcript", "symbol", "gene")] ## A bunch of DisplayPars are set during object instantiation: ## o fill: the fill color for untyped items. Defaults to lightblue. ## o col: the border color for all track items. This is also used to connect grouped items. ## o alpha: the transparancy for all track items. ## o lty, lwd: the line type and width for all track items. This is also used to connect grouped items. ## o lex: the line expansion factor ## o fontsize, fontfamily, fontface, fontcolor: the face, size, family and color for the ## annotation text (i.e., the track item IDs) ## o cex: the font expansion factor. ## o lineheight: the text lineheight ## o showId: boolean controlling whether to plot group identifiers, e.g, gene symbols or transcript IDs. ## o shape: the shape used for the annotation items. Currently only 'box' and 'arrow' are implemented. ## o rotation: the rotation of the exon annotation in degrees. ##---------------------------------------------------------------------------------------------------------------------- ## (N) setClass("GeneRegionTrack", contains="AnnotationTrack", representation=representation(start="NumericOrNULL", end="NumericOrNULL"), prototype=prototype(columns=c("feature", "transcript", "symbol", "gene", "exon"), stacking="squish", stacks=0, start=0, end=0, name="GeneRegionTrack", dp=DisplayPars(arrowHeadWidth=10, arrowHeadMaxWidth=20, col=NULL, collapseTranscripts=FALSE, exonAnnotation=NULL, fill="orange", min.distance=0, shape=c("smallArrow", "box"), showExonId=NULL, thinBoxFeature=.THIN_BOX_FEATURES, transcriptAnnotation=NULL))) ## Making sure all the display parameter defaults are being set setMethod("initialize", "GeneRegionTrack", function(.Object, start, end, ...){ if(is.null(list(...)$range) && is.null(list(...)$genome) && is.null(list(...)$chromosome)) return(.Object) ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "GeneRegionTrack") .Object@start <- ifelse(is.null(start), 0 , start) .Object@end <- ifelse(is.null(end), 0 , end) .Object <- callNextMethod(.Object, ...) return(.Object) }) ## The file-based version of the GeneRegionTrack class. This will mainly provide a means to dispatch to ## a special 'subset' method which should stream the necessary data from disk. setClass("ReferenceGeneRegionTrack", contains=c("GeneRegionTrack", "ReferenceTrack")) ## This just needs to set the appropriate slots that are being inherited from ReferenceTrack because the ## multiple inheritence has some strange features with regards to method selection setMethod("initialize", "ReferenceGeneRegionTrack", function(.Object, stream, reference, mapping=list(), args=list(), defaults=list(), ...) { .Object <- selectMethod("initialize", "ReferenceTrack")(.Object=.Object, reference=reference, stream=stream, mapping=mapping, args=args, defaults=defaults) .Object <- callNextMethod(.Object, ...) return(.Object) }) ## Constructor. The following arguments are supported: ## o range: one in a whole number of differerent potential inputs upon which the .buildRanges method will dispatch ## o start, end: numeric vectors of the track start and end coordinates. ## o genome, chromosome: the reference genome and active chromosome for the track. ## o rstarts, rends, rwidths: integer vectors of exon start and end locations or widths, or a character vector of ## comma-delimited exon locations, one vector element for each transcript ## o strand, feature, exon, transcript, gene, symbol, chromosome: vectors of equal length containing ## the exon strand, biotype, exon id, transcript id, gene id, human-readable gene symboland chromosome information ## o stacking: character controlling the stacking of overlapping items. One in 'hide', ## 'dense', 'squish', 'pack' or 'full'. ## o name: the name of the track. This will be used for the title panel. ## o exonList: boolean, causing the values in starts, rends or rwidths to be interpreted as delim-deparated ## lists that have to be exploded. All other annotation arguments will be repeated accordingly. ## o delim: the delimiter if coordinates are in a list ## All additional items in ... are being treated as DisplayParameters ## (N) GeneRegionTrack <- function(range=NULL, rstarts=NULL, rends=NULL, rwidths=NULL, strand, feature, exon, transcript, gene, symbol, chromosome, genome, stacking="squish", name="GeneRegionTrack", start=NULL, end=NULL, importFunction, stream=FALSE, ...) { ## Some defaults covars <- if(is.data.frame(range)) range else if(is(range, "GRanges")) as.data.frame(mcols(range)) else data.frame() isStream <- FALSE if(!is.character(range)){ n <- if(is.null(range)) max(c(length(start), length(end), length(width))) else if(is(range, "data.frame")) nrow(range) else length(range) if(is.null(covars[["feature"]]) && missing(feature)) feature <- paste("exon", 1:n, sep="_") if(is.null(covars[["exon"]]) && missing(exon)) exon <- make.unique(rep(if(!missing(feature) && !is.null(feature)) as.character(feature) else covars[["feature"]], n)[1:n]) if(is.null(covars[["transcript"]]) && missing(transcript)) transcript <- paste("transcript", seq_len(n), sep="_") if(is.null(covars[["gene"]]) && missing(gene)) gene <- paste("gene", seq_len(n), sep="_") } ## Build a GRanges object from the inputs .missingToNull(c("feature", "exon", "transcript", "gene", "symbol", "strand", "chromosome", "importFunction", "genome")) args=list(feature=feature, id=exon, exon=exon, transcript=transcript, gene=gene, symbol=symbol, strand=strand, chromosome=chromosome, genome=genome) defs <- list(feature="unknown", id="unknown", exon="unknown", transcript="unknown", genome=NA, gene="unknown", symbol="unknown", strand="*", density=1, chromosome="chrNA") range <- .buildRange(range=range, groupId="transcript", start=rstarts, end=rends, width=rwidths, args=args, defaults=defs, chromosome=chromosome, tstart=start, tend=end, trackType="GeneRegionTrack", importFun=importFunction, genome=genome) if(is.list(range)){ isStream <- TRUE slist <- range range <- GRanges() } if(is.null(start)) start <- if(!length(range)) NULL else min(start(range)) if(is.null(end)) end <- if(!length(range)) NULL else max(end(range)) if(missing(chromosome) || is.null(chromosome)) chromosome <- if(length(range)>0) .chrName(as.character(seqnames(range)[1])) else "chrNA" genome <- .getGenomeFromGRange(range, ifelse(is.null(genome), character(), genome[1])) if(!isStream){ return(new("GeneRegionTrack", start=start, end=end, chromosome=chromosome[1], range=range, name=name, genome=genome, stacking=stacking, ...)) }else{ return(new("ReferenceGeneRegionTrack", start=start, end=end, chromosome=chromosome[1], range=range, name=name, genome=genome, stacking=stacking, stream=slist[["stream"]], reference=slist[["reference"]], mapping=slist[["mapping"]], args=args, defaults=defs, ...)) } } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## BiomartGeneRegionTrack: ## ## A GeneRegionTrack that fetches its information from Biomart ## Slots: ## o biomart: a biomaRt object providing the connection to the data source. ## currently we assume that this connects to a esembl_gene source for ## a particular organism. ## o filter: a named list of additional filters that are passed on to the Biomart query. ## This is defined only in the prototype: ## o columns: column names that are allowed as part of the internal GRanges object in ## the ranges slot [c("feature", "transcript", "symbol", "gene")] ## A bunch of DisplayPars are set during object instantiation, all of which are ## transcript types as returned from Biomart in the 'gene_biotype' field. ## This class mainly exists for dispatching purpose and to keep things as flexible ## as possible, the actual plottable information is all contained in the parent ## class definition. ##---------------------------------------------------------------------------------------------------------------------- ## (N) setClass("BiomartGeneRegionTrack", contains="GeneRegionTrack", representation=representation(biomart="MartOrNULL", filter="list"), prototype=prototype(biomart=NULL, filter=list(), columns=c("feature", "transcript", "symbol", "gene", "rank"), name="BiomartGeneRegionTrack", dp=DisplayPars(C_segment="burlywood4", D_segment="lightblue", J_segment="dodgerblue2", Mt_rRNA="yellow", Mt_tRNA="darkgoldenrod", Mt_tRNA_pseudogene="darkgoldenrod1", V_segment="aquamarine", miRNA="cornflowerblue", miRNA_pseudogene="cornsilk", misc_RNA="cornsilk3", misc_RNA_pseudogene="cornsilk4", protein_coding="#FFD58A", pseudogene="brown1", rRNA="darkolivegreen1", rRNA_pseudogene="darkolivegreen" , retrotransposed="blueviolet", scRNA="gold4", scRNA_pseudogene="darkorange2", snRNA="coral", snRNA_pseudogene="coral3", snoRNA="cyan", snoRNA_pseudogene="cyan2", tRNA_pseudogene="antiquewhite3", utr3="#FFD58A", utr5="#FFD58A", verbose=FALSE))) ## Helper to return the default biomart to feature mapping .getBMFeatureMap <- function(){ return(list(gene_id="ensembl_gene_id",transcript_id="ensembl_transcript_id", exon_id="ensembl_exon_id", start="exon_chrom_start", end="exon_chrom_end", rank="rank", strand="strand", symbol=c("external_gene_name", "external_gene_id"), feature="gene_biotype", chromosome="chromosome_name", u5s="5_utr_start", u5e="5_utr_end", u3s="3_utr_start", u3e="3_utr_end", cdsl=c("cds_length", "cds_start"), phase="phase")) } ## Helper to do the actual fetching of data from Biomart .fetchBMData <- function(object, chromosome_name=NULL, staged=FALSE){ if(!is.null(chromosome_name)){ chromosome_name <- gsub("^chr", "", chromosome_name) } ## The map between Biomart DB fields and annotation features. The individual values can be vectors for cases where there is ## ambiguity between different marts. This will be dynamically evaluated against available filters. origFeatureMap <- list(gene_id="ensembl_gene_id", transcript_id="ensembl_transcript_id", exon_id="ensembl_exon_id", start="exon_chrom_start", end="exon_chrom_end", rank="rank", strand="strand", symbol=c("external_gene_name", "external_gene_id"), feature="gene_biotype", chromosome="chromosome_name", u5s="5_utr_start", u5e="5_utr_end", u3s="3_utr_start", u3e="3_utr_end", cdsl=c("cds_length", "cds_start"), phase="phase") featureMap <- modifyList(origFeatureMap, as.list(.dpOrDefault(object, ".__featureMap", list()))) needed <- c("gene_id","transcript_id", "exon_id", "start", "end", "rank", "strand", "symbol", "feature", "chromosome", "u5s", "u5e", "u3s", "u3e", "cdsl", "phase") if(!all(needed %in% names(featureMap))) stop("'featureMap' needs to include items '", paste(setdiff(needed, names(featureMap)), collapse=", "), "'") avail <- listAttributes(object@biomart)[,1] ambig <- names(featureMap)[listLen(featureMap) > 1] for(i in ambig){ mt <- match(featureMap[[i]], avail) if(!all(is.na(mt))){ featureMap[[i]] <- featureMap[[i]][min(which(!is.na(mt)))] } else { featureMap[[i]] <- NA } } featureMap <- unlist(featureMap) ## Deal with the filters filterValues <- as.list(object@filter) start <- object@start end <- object@end for(i in c("start", "end", "chromosome_name")){ if(!is.null(get(i)) && length(get(i)) > 0){ filterValues[[i]] <- get(i) } } ens <- getBM(as.vector(featureMap), filters=names(filterValues), values=filterValues, bmHeader=FALSE, mart=object@biomart, uniqueRows=TRUE) colnames(ens) <- names(featureMap) if(staged && nrow(ens)>0){ filterValues <- list(start=min(ens$start), end=max(ens$end), chromosome_name=ens[1, "chromosome"]) ens <- getBM(as.vector(featureMap), filters=names(filterValues), values=filterValues, bmHeader=FALSE, mart=object@biomart, uniqueRows=TRUE) colnames(ens) <- names(featureMap) } ## Only those transcripts that have a CDS length will be considered protein_coding ens$feature <- ifelse(is.na(ens$cdsl) & ens$feature == "protein_coding", "non_coding", ens$feature) ## We may have to split exons if they contain UTRs hasUtr <- !is.na(ens$u5s) | !is.na(ens$u3s) ensUtr <- ens[hasUtr,, drop=FALSE] ensUtr$ffeature <- ifelse(is.na(ensUtr$u5s), "utr3", "utr5") ensUtr$us <- ifelse(ensUtr$ffeature=="utr3", ensUtr$u3s, ensUtr$u5s) ensUtr$ue <- ifelse(ensUtr$ffeature=="utr3", ensUtr$u3e, ensUtr$u5e) ensUtr$u5e <- ensUtr$u5s <- ensUtr$u3e <- ensUtr$u3s <- NULL allUtr <- ensUtr$us == ensUtr$start & ensUtr$ue == ensUtr$end utrFinal <- ensUtr[allUtr,, drop=FALSE] ensUtr <- ensUtr[!allUtr,, drop=FALSE] ensUtrS <- split(ensUtr, ifelse(ensUtr$start==ensUtr$us, "left", "right")) utrFinal <- rbind(utrFinal, do.call(rbind, lapply(names(ensUtrS), function(i){ y <- ensUtrS[[i]] if(nrow(y)==0) return(NULL) yy <- y[rep(1:nrow(y), each=2),] sel <- seq(1, nrow(yy), by=2) yy[sel, "end"] <- if(i=="left") yy[sel, "ue"] else yy[sel, "us"]-1 yy[sel, "ffeature"] <- yy[sel, ifelse(i=="left", "ffeature", "feature")] yy[sel, "phase"] <- if(i=="left") -1 else 0 sel <- seq(2, nrow(yy), by=2) yy[sel, "start"] <- if(i=="left") yy[sel, "ue"]+1 else yy[sel, "us"] yy[sel, "ffeature"] <- yy[sel, ifelse(i=="left", "feature", "ffeature")] yy[sel, "phase"] <- if(i=="left") yy[sel, "phase"] else -1 yy }))) utrFinal$feature <- utrFinal$ffeature keep <- c("gene_id","transcript_id","exon_id","start", "end", "rank", "strand", "symbol", "feature", "chromosome", "phase") ens <- rbind(ens[!hasUtr,keep, drop=FALSE], utrFinal[,keep]) ens$chromosome <- .chrName(ens$chromosome, force=TRUE) range <- GRanges(seqnames=ens$chromosome, ranges=IRanges(start=ens$start, end=ens$end), strand=ens$strand, feature=as.character(ens$feature), gene=as.character(ens$gene_id), exon=as.character(ens$exon_id), transcript=as.character(ens$transcript_id), symbol=as.character(ens$symbol), rank=as.numeric(ens$rank), phase=as.integer(ens$phase)) suppressWarnings(genome(range) <- unname(genome(object)[1])) range <- sort(range) return(range) } ## Create an MD5 hash for a BiomartGeneRegion track taking into account the Biomart details for caching .bmGuid <- function(bmtrack){ digest(list(genome=genome(bmtrack), host=bmtrack@biomart@host, mart=bmtrack@biomart@biomart, schema=bmtrack@biomart@vschema, dataset=bmtrack@biomart@dataset, filters=bmtrack@filter)) } ## Retrieving information from Biomart. setMethod("initialize", "BiomartGeneRegionTrack", function(.Object, start=NULL, end=NULL, biomart, filter=list(), range, genome=NULL, chromosome=NULL, strand=NULL, featureMap=NULL, symbol=NULL, gene=NULL, transcript=NULL, entrez=NULL, ...){ if((missing(range) || is.null(range)) && is.null(genome) && is.null(chromosome)) return(.Object) ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "BiomartGeneRegionTrack") verb <- list(...)$verbose displayPars(.Object) <- list(!is.null(verb) && verb == TRUE) ## preparing filters strand <- .strandName(strand, extended=TRUE) if(strand %in% 0:1){ filter$strand <- c(1, -1)[strand+1] } filterOrig <- filter idFilters <- list(symbol=c("external_gene_name", "external_gene_id", "hgnc_symbol", "wikigene_name", "dbass3_name"), gene="ensembl_gene_id", transcript="ensembl_transcript_id", entrez="entrezgene") staged <- FALSE for(i in names(idFilters)){ if(!is.null(get(i))){ mt <- match(idFilters[[i]], listFilters(biomart)[,1]) sfilt <- listFilters(biomart)[mt[!is.na(mt)],1] if(length(sfilt) > 0){ staged <- TRUE filter[[sfilt[1]]] <- get(i) if(!is.null(filter$strand)){ warning(sprintf("Cannot combine %s filter with a strand filter. Strand filtering is ignored.", i)) filter$strand <- NULL } if(!is.null(start) || !is.null(end) || !is.null(chromosome)){ warning(sprintf("Cannot combine %s filter with a range restriction. Ignoring start and end coordinates.", i)) start <- end <- chromosome <- NULL } }else{ stop(sprintf("Unable to automatically map the %s filter. Manually provide adequate filter list.", i)) } } } ## We can't have only one in start or end if(!is.null(end) && is.null(start)){ start <- 1 }else if(!is.null(start) && is.null(end)){ end <- 10e8 } ## filling slots .Object@filter <- filter .Object@biomart <- biomart ## Extending start and end positions to capture genes on the edges. We also need both coordinates set, or none. extend <- if(is.null(start) || is.null(end)) 10000 else max(10000, abs(diff(c(end, start)))) .Object@start <- if(!is.null(start)) max(1, start - extend) else NULL .Object@end <- if(!is.null(end)) end + extend else NULL displayPars(.Object) <- list(".__featureMap"=featureMap) genome(.Object) <- ifelse(is.null(genome), "ANY", genome) ## fetching data from Biomart range <- if(!is.null(.Object@biomart) && (!is.null(.Object@start) || !is.null(.Object@end) || length(.Object@filter) != 0)){ .cacheMartData(.Object, chromosome, staged) }else{ tmp <- GRanges() values(tmp) <- DataFrame(feature="a", gene="a", exon="a", transcript="a", symbol="a", rank=0, phase=as.integer(1))[0,] suppressWarnings(genome(tmp) <- unname(genome[1])) displayPars(.Object) <- list(".__streamOnly"=TRUE) tmp } .Object@filter <- filterOrig if(length(range)==0){ .Object <- setPar(.Object, "size", 0, interactive=FALSE) }else{ chromosome <- if(is.null(chromosome)) seqlevels(range)[1] else chromosome rr <- range(range, ignore.strand=TRUE) s <- start(rr[seqnames(rr) == chromosome]) e <- end(rr[seqnames(rr) == chromosome]) start <- min(s, start) end <- max(e, end) } .Object <- callNextMethod(.Object=.Object, range=range, start=start, end=end, genome=genome, chromosome=chromosome, strand=strand, ...) ## We want to warn if searching was performed based on an identifier and now values have been returned if((!is.null(symbol) || !is.null(gene) || !is.null(transcript) || !is.null(entrez)) && length(range)==0){ warning("Search by identifier did not yield any values", call.=FALSE) } return(.Object) }) ## Constructor. The following arguments are supported: ## o start, end: numeric vectors of the item start and end coordinates ## o biomart: a biomaRt object used to to query for gene annotations ## o genome, chromosome: the reference genome and active chromosome for the track. ## o strand: character, search for gene models on the plus strand ("+" or 0), the ## minus strand ("-" or 1) or both strands ("+-" or "-+" or 2) ## o stacking: character controlling the stacking of overlapping items. One in 'hide', ## 'dense', 'squish', 'pack' or 'full'. ## o filters: list of additional filters for the biomaRt query, where the item names ## are the filter identifiers and the item values are the filter values. ## o name: the name of the track. This will be used for the title panel. ## All additional items in ... are being treated as DisplayParameters ## (N) BiomartGeneRegionTrack <- function(start=NULL, end=NULL, biomart, chromosome=NULL, strand, genome=NULL, stacking="squish", filters=list(), featureMap=NULL, name="BiomartGeneRegionTrack", symbol=NULL, gene=NULL, entrez=NULL, transcript=NULL, ...) { ## Some default checking .missingToNull(c("genome")) if(missing(strand)) strand <- "*" if((!is.null(start) || !is.null(end)) && is.null(chromosome)){ stop("Also need to specify a chromsome when initializing a BiomartGeneRegionTrack with start or end coordinates") } if(!is.null(chromosome)){ chromosome <- .chrName(chromosome)[1] } if(missing(biomart)) { if(is.null(genome)) stop("Need either a valid Mart connection object as 'biomart' argument or a UCSC genome identifier as the 'genome' argument.") biomart <- .genome2Dataset(genome) }else if(is.null(genome)){ genome <- biomart@dataset } new("BiomartGeneRegionTrack", start=start, end=end, chromosome=chromosome, strand=strand, biomart=biomart, name=name, genome=genome, stacking=stacking, filter=filters, featureMap=featureMap, symbol=symbol, gene=gene, transcript=transcript, entrez=entrez, ...) } ## This filters for genes with refseq IDs only .refseqFilter <- list("with_refseq_dna"=TRUE) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## GenomeAxisTrack: ## ## A track for the genome axis ## Slots: ## o range: an object of class GRanges containing ranges to be highlighted along the axis. ## A bunch of DisplayPars are set during object instantiation: ## o col: the color for the axis text, lines and tickmarks ## o fill.range: the fill color for the optional range annotation ## o col.range: the border color for the optional range annotation ## o fontsize: the font size for the axis annotation ## o showTitle: boolean, show or hide the title panel text ## o background.title: the background color of the title panel ## o cex: the cex value for the axis text ## o exponent: the exponent for the axis coordinates. E.g., 3 means mb, 6 means gb, etc. ## o distFromAxis: numeric, distance of text from the axis ## o labelPos: character giving the position of axis labels, one in "alternating", "revAlternating", ## "above" or "below" ## o add53: boolean, add a 5'->3' indicator ## o add35: boolean, add a 3'->5' indicator ## o littleTicks: boolean, add second level of smaller tick marks ## o size: the relative size of the track ## o col.id, cex.id: text settings for the optional range annotation ## o showId: boolean, show range annotation ## o scale: numeric, if not NULL a small scale is drawn instead of the full axis, ## if between 0 and 1 it is interpreted as a fraction of the region (otherwise absolute). ##---------------------------------------------------------------------------------------------------------------------- ## (N) setClass("GenomeAxisTrack", contains="GdObject", representation=representation(range="GRanges"), prototype(range=GRanges(), name="GenomeAxisTrack", dp=DisplayPars(add35=FALSE, add53=FALSE, background.title="transparent", cex.id=0.7, cex=0.8, col.border.title="transparent", lwd.border.title=1, col.id="white", col.range="cornsilk4", distFromAxis=1, exponent=NULL, fill.range="cornsilk3", fontcolor="#808080", fontsize=10, labelPos="alternating", littleTicks=FALSE, lwd=2, scale=NULL, showId=FALSE, showTitle=FALSE, size=NULL, col="darkgray"))) ## Only pass on the stuff to the GdObject initializer setMethod("initialize", "GenomeAxisTrack", function(.Object, range, ids, ...){ ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "GenomeAxisTrack") if(missing(range) || is.null(range)) range <- GRanges() if(is(range, "IRanges")) range <- GRanges(ranges=range, seqnames="dummy", id=ids) .Object@range <- range .Object<- callNextMethod(.Object, ...) return(.Object) }) ## Constructor. The following arguments are supported: ## o range: an object of class 'GRanges' containing regions to be highlighted on the axis by colored boxes ## o name: the name of the track. This will be used for the title panel. ## All additional items in ... are being treated as DisplayParameters ## (N) GenomeAxisTrack <- function(range=NULL, name="Axis", id, ...) { if(missing(id)) id <- names(range) new("GenomeAxisTrack", name=name, range=range, id=id, ...) } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## DataTrack: ## ## A track for all sorts of quantitative values ## Slots: ## o data: a numeric matrix containing the data values ## A bunch of DisplayPars are set during object instantiation: ## o jitter.x, jitter.y, amount, factor: parameters controlling the jittering in xy-type plots. ## o span, degree, family, evaluation: parameters controlling the loess calculation. ## o col.mountain, fill.mountain, col.baseline, lwd.baseline, lty.baseline, baseline: ## parameters controlling the colors and the baseline position in mountain-type plots. ## o fill.histogram, col.histogram: fill and line colors for the histogram-type plots ## o box.ratio, box.width, varwidth, notch, notch.frac, levels.fos, stats, coef, do.out: ## parameters controlling the boxplot appearance ## o size: the relative size of the track ## o type: the plot type, one or several in c("p", "l", "b", "a", "s", "g", "r", "S", "smooth", ## "histogram", "mountain", "h", "boxplot", "gradient", "heatmap", "polygon") ## o cex: the default pixel size ## o ncolor, gradient: the number of colors and the base colors for the gradient type ## o collpase: collapse overlapping ranges ## o min.distance: the mimimum distance in pixel below which to collapse ## o window: average the rows of the data matrix to 'window' slices on the data range ## o separator: number of pixels used to separate individual samples in heatmap-type plots ## o transformation: a function applied on the data matrix prior to plotting. The function ## should accept exactly one argument and the return value needs to be a numeric vector ## which can be coerced back into a data matrix of identical dimensionality as the input ## data. ## o aggregation: a function to aggregate values in windows or for collapsed items. Either a ## function that collapses a numeric vector into a single number, or one of the predefined ## options "mean", "median", "sum" "min", "max" or "extreme". Defaults to "mean" ## o stackedBars: logical, draw stacked histograms if groups!=NULL. Else show grouped data as ## side-by-side bars. ## o na.rm: remove NA values before plotting ##---------------------------------------------------------------------------------------------------------------------- ## (N) setClass("DataTrack", contains="NumericTrack", representation=representation(data="matrix", strand="character"), prototype=prototype(columns=c("score"), name="DataTrack", dp=DisplayPars(aggregateGroups=FALSE, aggregation="mean", alpha.confint=0.3, amount=NULL, baseline=NULL, box.legend=FALSE, box.ratio=1, box.width=NULL, grid=FALSE, cex.legend=0.8, cex.sampleNames=NULL, cex=0.7, coef=1.5, col.baseline=NULL, col.confint=NA, col.histogram=.DEFAULT_SHADED_COL, col.horizon=NA, col.mountain=NULL, col.sampleNames="white", col=trellis.par.get("superpose.line")[["col"]], collapse=FALSE, degree=1, do.out=TRUE, evaluation=50, factor=0.5, family="symmetric", fill.confint=NULL, fill.histogram=NULL, fill.horizon=c("#B41414", "#E03231", "#F7A99C", "#9FC8DC", "#468CC8", "#0165B3"), fill.mountain=c("#CCFFFF", "#FFCCFF"), fontface.legend=NULL, fontfamily.legend=NULL, fontsize.legend=NULL, fontcolor.legend=.DEFAULT_SHADED_COL, gradient=brewer.pal(9, "Blues"), groups=NULL, horizon.origin=0, horizon.scale=NULL, jitter.x=FALSE, jitter.y=FALSE, levels.fos=NULL, legend=TRUE, lineheight.legend=NULL, lty.baseline=NULL, lty.mountain=NULL, lwd.baseline=NULL, lwd.mountain=NULL, min.distance=0, na.rm=FALSE, ncolor=100, notch.frac=0.5, notch=FALSE, pch=20, separator=0, showColorBar=TRUE, showSampleNames=FALSE, size=NULL, span=1/5, stackedBars=TRUE, stats=boxplot.stats, transformation=NULL, type="p", varwidth=FALSE, window=NULL, windowSize=NULL, ylim=NULL))) ## Only pass on the stuff to the GdObject initializer setMethod("initialize", "DataTrack", function(.Object, data=matrix(), strand, ...){ ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "DataTrack") .Object@data <- data if(!missing(strand)) .Object@strand <- unique(strand) .Object <- callNextMethod(.Object, ...) return(.Object) }) ## The file-based version of the DataTrack class. This will mainly provide a means to dispatch to ## a special 'subset' method which should stream the necessary data from disk. setClass("ReferenceDataTrack", contains=c("DataTrack", "ReferenceTrack")) ## This just needs to set the appropriate slots that are being inherited from ReferenceTrack because the ## multiple inheritence has some strange features with regards to method selection setMethod("initialize", "ReferenceDataTrack", function(.Object, stream, reference, mapping=list(), args=list(), defaults=list(), ...) { .Object <- selectMethod("initialize", "ReferenceTrack")(.Object=.Object, reference=reference, stream=stream, mapping=mapping, args=args, defaults=defaults) .Object <- callNextMethod(.Object, ...) return(.Object) }) ## Constructor. The following arguments are supported: ## o range: an object of class 'GRanges' containing the data coordinates, or an object of class data.frame ## with the two mandatroy columns 'start' and 'end'. The coordinates (i.e., the length of the GRanges object) ## have to match the columns of the data matrix (see below). ## o data: a numeric matrix of data points with number of columns equal to the number of coordinates in 'range', ## or a numeric vector of appropriate length that will be coerced in such a one-row matrix. ## o start, end, width: numeric vectors of the item start and end coordinates, have to match the columns in 'data' ## o genome, chromosome: the reference genome and active chromosome for the track. ## o strand: character, display data on the plus strand ("+" or 0), the minus strand ("-" or 1) or both ## strands ("+-" or "-+" or 2). Currently has to be unique for the whole track. ## o name: the name of the track. This will be used for the title panel. ## All additional items in ... are being treated as DisplayParameters ## (N) DataTrack <- function(range=NULL, start=NULL, end=NULL, width=NULL, data, chromosome, strand, genome, name="DataTrack", importFunction, stream=FALSE, ...) { ## Build a GRanges object from the inputs wasGR <- is(range, "GRanges") || is.character(range) fromFile <- is.character(range) isStream <- FALSE .missingToNull(c("strand", "chromosome", "importFunction", "genome")) args <- list(strand=strand, chromosome=chromosome, genome=genome) defs <- list(strand="*", chromosome="chrNA") range <- .buildRange(range=range, start=start, end=end, width=width, args=args, defaults=defs, asIRanges=FALSE, chromosome=chromosome, genome=NA, trackType="DataTrack", importFun=importFunction, stream=stream) if(is.list(range)){ isStream <- TRUE slist <- range range <- GRanges() } ## Some default checking if(length(unique(strand(range)))>1) stop("The strand has to be unique for all ranges in a DataTrack object.") if(!missing(data) && length(range) > 0) { if(is.character(data)) { if(!wasGR) stop("Columns indices for the data section are only allowed when 'range' is of class 'GRanges'") mt <- is.na(match(data, colnames(values(range)))) if(any(mt)) warning("Unable to match data columns: ", paste(data[mt], collapse=",")) data <- as.data.frame(values(range)[,data[!mt], drop=FALSE]) } if(is.null(dim(data))) dim(data) <- c(1, length(data)) if(is.matrix(data)) data <- as.data.frame(t(data)) } else { data <- if(ncol(values(range))) as.data.frame(values(range)) else matrix(nrow=0, ncol=0) } data <- .prepareDtData(data, len=length(range)) if(missing(chromosome) || is.null(chromosome)) chromosome <- if(length(range)>0) .chrName(as.character(seqnames(range)[1])) else "chrNA" genome <- .getGenomeFromGRange(range, ifelse(is.null(genome), character(), genome[1])) values(range) <- NULL if(!isStream){ return(new("DataTrack", chromosome=chromosome, strand=as.character(strand(range)), range=range, name=name, genome=genome, data=data, ...)) }else{ ## A bit hackish but for some functions we may want to know which track type we need but at the ## same time we do not want to enforce this as an additional argument e <- new.env() e[["._trackType"]] <- "DataTrack" environment(slist[["stream"]]) <- e return(new("ReferenceDataTrack", chromosome=chromosome, strand=as.character(strand(range)), range=range, name=name, genome=genome, data=data, stream=slist[["stream"]], reference=slist[["reference"]], mapping=slist[["mapping"]], args=args, defaults=defs, ...)) } } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## IdeogramTrack: ## ## A track for chromosome ideograms ## A bunch of DisplayPars are set during object instantiation: ## o size: the relative size of the track ## o col, fill: the border and fill color used for the highlighted currently displayed region on the chromosome ## o fontcolor, fontface, fontfamily, fonsize, lineheight, cex : the color, family, face, size, lineheight and ## expansion factor for the chromosome name text ## o showId: indicate the chromosome name next to the ideogram ## o showBandId: show the identifiers of the chromosome bands ## o cex.bands: character expansion factor for the chromosome band information ## o bevel: the amount of beveling at the ends of the ideogram. A number between 0 and 1. ##---------------------------------------------------------------------------------------------------------------------- ## (N) setClass("IdeogramTrack", contains = "RangeTrack", representation=representation(bandTable="data.frame"), prototype=prototype(name="IdeogramTrack", bandTable=data.frame(), dp=DisplayPars(background.title="transparent", bevel=0.45, cex.bands=0.7, cex=0.8, col="red", col.border.title="transparent", lwd.border.title=1, fill="#FFE3E6", fontface=1, fontfamily="sans", fontcolor=.DEFAULT_SHADED_COL, fontsize=10, outline=FALSE, showBandId=FALSE, lty=1, lwd=1, showId=TRUE, showTitle=FALSE, size=NULL))) ## Grab the chromosome band and length information from UCSC and fill the ranges slot. setMethod("initialize", "IdeogramTrack", function(.Object, genome, chromosome, bands, name, ...){ ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "IdeogramTrack") if(missing(bands)) bands <- NULL if(is.null(bands) && (missing(genome) || missing(chromosome))) return(callNextMethod(.Object=.Object, range=GRanges(), genome=NULL, chromosome=NULL, ...)) if(is.null(bands)){ sessionInfo <- .cacheGenomes(genome=genome) .Object@bandTable <- sessionInfo$bands bands <- sessionInfo$bands }else{ .checkClass(bands, "data.frame") cols <- c("chrom", "chromStart", "chromEnd", "name", "gieStain") miss <- ! cols %in% colnames(bands) if(any(miss)) stop(sprintf("The following column%s missing from the bands table: %s", ifelse(sum(miss)>1, "s are", " is"), paste(cols[miss], collapse=", "))) .Object@bandTable <- bands } chromosome <- if(is.null(chromosome)) as.character(bands[1, "chrom"]) else .chrName(chromosome)[1] bands <- bands[bands$chrom==chromosome,] if(nrow(bands)==0) stop("Chromosome '", chromosome, "' does not exist on UCSC genome '", genome, "'") if(is.null(name)) name <- .chrName(chromosome)[1] bnames <- as.character(bands$name) sel <- is.na(bnames) if(any(sel)) bnames[sel] <- paste("band", seq_len(sum(sel)), sep="_") if(any(bnames == "")) bnames[bnames == ""] <- sprintf("band_%i", which(bnames == "")) ranges <- GRanges(seqnames=bnames, ranges=IRanges(start=bands$chromStart, end=bands$chromEnd), name=bnames, type=as.character(bands$gieStain)) .Object <- callNextMethod(.Object=.Object, range=ranges, genome=genome, chromosome=chromosome, name=name, ...) return(.Object) }) ## Constructor. The following arguments are supported: ## o genome, chromosome: the reference genome and active chromosome for the track. ## o name: the name of the track. This will be used for the title panel. ## All additional items in ... are being treated as DisplayParameters ## (N) IdeogramTrack <- function(chromosome=NULL, genome, name=NULL, bands=NULL, ...){ if(missing(genome)) stop("Need to specify genome for creating an IdeogramTrack") new("IdeogramTrack", chromosome=chromosome, genome=genome, name=name, bands=bands, ...) } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## UcscTrack: ## ## Strictly speaking this is not a class, but rather some sort of meta-constructor for several of the previously ## defined track types directly from UCSC data. It will fetch online data from a particular track (or a sub-table of ## a track) and feed it to one of the original constructors with user-provided argument mappings. ##---------------------------------------------------------------------------------------------------------------------- ## Constructor. The following arguments are supported: ## o track: a character of one of the available UCSC tracks ## o table: a character of one one of the sub-tables of the track, or NULL to fetch all ## o trackType: a character giving the name of the constructor to pass the data to, one in ## c("AnnotationTrack", "GeneRegionTrack", "DataTrack", "GenomeAxisTrack") ## o genome, chromosome: the reference genome and active chromosome for the track. ## o from: the starting and end coordinates of the track data ## o name: the name of the track. This will be used for the title panel. ## All additional items in ... are being treated as DisplayParameters ## A simple caching mechanism for UCSC session information. The overhead for establishing a connection to UCSC is ## quite significant and we can shave off 5 to 10 seconds here by caching sessions and associated information ## for a particular genome and chromosome. .ucscCache <- new.env() .ensemblCache <- new.env() .martCache <- new.env() .doCache <- function(token, expression, env, callEnv=environment()) { if(!token %in% base::ls(env)) { res <- eval(expression, envir=callEnv) assign(x=token, value=res, envir=env) res } else env[[token]] } .cacheTracks <- function(genome, chromosome, track, env=.ucscCache) { genomes <- .doCache("availableGenomes", expression(ucscGenomes()), env) if(!genome %in% as.character(genomes[,"db"])) stop("'", genome, "' is not a valid UCSC genome.") sessionToken <- paste("session", genome, sep="_") tracksToken <- paste("tracks", genome, sep="_") tablesToken <- paste("tables", track, genome, sep="_") cenv <- environment() session <- .doCache(sessionToken, expression({myUcscUrl <- getOption("Gviz.ucscUrl") tmp <- if(is.null(myUcscUrl)) browserSession() else browserSession(url=myUcscUrl) genome(tmp) <- genome tmp}), env, cenv) availTracks <- .doCache(tracksToken, expression(trackNames(ucscTableQuery(session))), env, cenv) track <- match.arg(track, sort(c(availTracks, names(availTracks)))) if(!is.na(availTracks[track])) track <- availTracks[track] availTables <- .doCache(tablesToken, expression({query <- ucscTableQuery(session, track) sort(tableNames(query))}), env, cenv) chrInfo <- seqlengths(session) return(list(session=session, availTracks=availTracks, availTables=availTables, track=track, chrInfo=chrInfo)) } .cacheGenomes <- function(genome=NULL, env=.ucscCache) { availToken <- "availableGenomes" genomesToken <- paste("genomeBands", genome, sep="_") genomes <- .doCache(availToken, expression(ucscGenomes()), env) bands <- NULL if(!is.null(genome)) { cenv <- environment() bands <- .doCache(genomesToken, expression({ if(!genome %in% as.character(genomes[,"db"])) stop("'", genome, "' is not a valid UCSC genome.") sessionToken <- paste("session", genome, sep="_") session <- .doCache(sessionToken, expression({myUcscUrl <- getOption("Gviz.ucscUrl") tmp <- if(is.null(myUcscUrl)) browserSession() else browserSession(url=myUcscUrl) genome(tmp) <- genome tmp}), env, cenv) query <- tryCatch(ucscTableQuery(session, "cytoBandIdeo"), error=function(e) { warning("There doesn't seem to be any cytoband data available for genome '", genome, "' at UCSC or the service is temporarily down. Trying to fetch the chromosome length data.") tryCatch(ucscTableQuery(session, table="chromInfo"), error=function(e) stop("There doesn't seem to be any chromosome length data available for genome '", genome, "' at UCSC or the service is temporarily down.")) }) out <- getTable(query) if (all(c("chrom","size") %in% colnames(out))) { out <- data.frame(chrom=out$chrom, chromStart=0, chromEnd=out$size, name="", gieStain="gneg", stringsAsFactors=F) } out }), env, cenv) } return(list(availableGenomes=genomes, bands=bands)) } .cacheMartData <- function(bmtrack, chromosome=NULL, staged=FALSE){ uid <- .bmGuid(bmtrack) req <- if(!is.null(bmtrack@start) && !is.null(bmtrack@end)) GRanges(seqnames=chromosome[1], IRanges(start=bmtrack@start, bmtrack@end)) else NULL if(is.null(chromosome) || is.null(.martCache[[uid]])){ data <- .fetchBMData(bmtrack, chromosome, staged) if(!is.null(req)){ .martCache[[uid]] <- list(data=data, ranges=req) }else{ req <- range(data) } if(length(data) && .dpOrDefault(bmtrack, "verbose", FALSE)) message("Loaded data from Biomart for region ", paste(sprintf("%s:%i-%i(%s)", seqnames(req), start(req), end(req), strand(req)), collapse=" and ")) }else{ rr <- .martCache[[uid]][["ranges"]] dd <- .martCache[[uid]][["data"]] if(!is.null(req) && suppressWarnings(req %within% rr)){ genes <- unique(subsetByOverlaps(dd, req)$gene) data <- dd[seqnames(dd) == chromosome[1] & dd$gene %in% genes] if(.dpOrDefault(bmtrack, "verbose", FALSE)) message(sprintf("Retrieved data from cache for region %s:%i-%i(%s)", chromosome, start(req), end(req), strand(req))) }else{ data <- .fetchBMData(bmtrack, chromosome, staged) if(is.null(req)){ req <- range(data) } .martCache[[uid]][["data"]] <- suppressWarnings(c(.martCache[[uid]][["data"]], data[!(seqnames(data) == chromosome[1] & data$gene %in% dd$gene)])) .martCache[[uid]][["ranges"]] <- suppressWarnings(union(rr, req)) if(length(req) && .dpOrDefault(bmtrack, "verbose", FALSE)) message("Loaded data from Biomart for region ", paste(sprintf("%s:%i-%i(%s)", seqnames(req), start(req), end(req), strand(req)), collapse=" and ")) } } return(data) } ## empty the session cache clearSessionCache <- function(){ assignInNamespace(".ucscCache", new.env(), ns="Gviz") assignInNamespace(".ensemblCache", new.env(), ns="Gviz") assignInNamespace(".martCache", new.env(), ns="Gviz") } ## (N) UcscTrack <- function(track, table=NULL, trackType=c("AnnotationTrack", "GeneRegionTrack", "DataTrack", "GenomeAxisTrack"), genome, chromosome, name=NULL, from, to, ...) { trackType <- match.arg(trackType) if(missing(genome) || !isSingleString(genome)) stop("Need to specify genome for creating a UcscTrack") if(missing(chromosome)) stop("Need to specify chromosome for creating a UcscTrack") chromosome <- .chrName(chromosome)[1] sessionInfo <- .cacheTracks(genome=genome, chromosome=chromosome, track=track, env=.ucscCache) if(missing(from)) from <- 1 if(missing(to)) to <- sessionInfo$chrInfo[chromosome] gr <- GRanges(ranges=IRanges(start=from, end=to), seqnames=chromosome) suppressWarnings(genome(gr) <- unname(genome))[1] query <- ucscTableQuery(sessionInfo$session, sessionInfo$track, gr) if(!is.null(table)) { table <- match.arg(table, sessionInfo$availTables) tableName(query) <- table } if(is.null(name)) name <- if(is.null(table)) track else paste(sessionInfo$track, table) tableDat <- if(trackType=="DataTrack"){ tmp <- try(track(query), silent=TRUE) if(is(tmp, "try-error")){ warning(tmp) data.frame() } else as.data.frame(tmp)} else { tmp <- try(getTable(query), silent=TRUE) if(is(tmp, "try-error")){ warning(tmp) data.frame() } else tmp} if(is(tmp, "try-error") && nrow(tableDat)==0) stop("Error fetching data from UCSC") args <- lapply(list(...), function(x) if(is.character(x) && length(x)==1) if(!x %in% colnames(tableDat)) x else tableDat[,x] else x) if(trackType=="GeneRegionTrack") { args$start <- from args$end <- to } args <- lapply(args, function(x) if(!length(x)) NULL else x) trackObject <- do.call(trackType, args=c(list(chromosome=chromosome, genome=genome, name=name), args)) return(trackObject) } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## AlignedReadTrack: ## ## A track to visualize sequence reads, as typically produced by NGS experiments ## Slots: no additional formal slots are defined ## A bunch of DisplayPars are set during object instantiation: ## o detail: the amount of plotting details to show for the aligned reads, one in c("reads", "coverage") ##---------------------------------------------------------------------------------------------------------------------- ## (N) setClass("AlignedReadTrack", representation=representation(coverage="list", coverageOnly="logical"), contains="StackedTrack", prototype=prototype(stacking="squish", name="AlignedReadTrack", coverageOnly=FALSE, dp=DisplayPars(detail="coverage", type="histogram", fill="#0080ff", size=NULL, collapse=FALSE))) ## Recompute coverage on plus and minus strand and combined strands for AlignedRead tracks ## and update the respective slot to hold this information setMethod("setCoverage", signature("AlignedReadTrack"), definition=function(GdObject){ if(length(GdObject)) { str <- factor(strand(GdObject), levels=c("+", "-")) gdSplit <- as.list(split(range(GdObject), str)) covs <- lapply(gdSplit, coverage) covs[["*"]] <- coverage(range(GdObject)) GdObject@coverage <- covs } return(GdObject) }) ## Essentially we just update the display parameters here and precompute the coverage setMethod("initialize", "AlignedReadTrack", function(.Object, coverageOnly=FALSE, ...) { ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "AlignedReadTrack") .Object <- callNextMethod(.Object, ...) .Object <- setCoverage(.Object) if(coverageOnly) { ## from <- min(unlist(lapply(.Object@coverage, function(y) if(length(y)) min(start(y))))) ## to <- max(unlist(lapply(.Object@coverage, function(y) if(length(y)) max(end(y))))) from <- min(start(range(.Object))) to <- max(end(range(.Object))) .Object@range <- GRanges(ranges=IRanges(start=from, end=to), strand=names(.Object@coverage), seqnames=.Object@chromosome) .Object@coverageOnly <- coverageOnly } return(.Object) }) ## Constructor. The following arguments are supported: ## o range: a data.frame or a GRanges object containing the information ## about the track items. If a data.frame, it needs to be coerceable ## to a GRanges object, i.e., it needs at least the mandatory 'start', 'stop' and ## 'strand' columns. ## Instead of using the 'range' parameter, all these values can also be passed as ## individual vectors, in which case they need to be of similar length. ## o start, end, width: numeric vectors of the item start and end coordinates, or their widths ## o strand: the strand information needs to be provided in the form '+' for ## the Watson strand, '-' for the Crick strand. ## o genome, chromosome: the reference genome and active chromosome for the track. ## o stacking: character controlling the stacking of overlapping items. One in 'hide', ## 'dense', 'squish', 'pack' or 'full'. ## o name: the name of the track. This will be used for the title panel. ## All additional items in ... are being treated as further DisplayParameters ## (N) AlignedReadTrack <- function(range=NULL, start=NULL, end=NULL, width=NULL, chromosome, strand, genome, stacking="squish", name="AlignedReadTrack", coverageOnly=FALSE, ...) { .missingToNull(c("strand", "chromosome", "genome")) ## Build a GRanges object from the inputs range <- .buildRange(range=range, start=start, end=end, width=width, args=list(strand=strand, genome=genome, chromosome=chromosome), defaults=list(strand="+", genome=NA, chromosome="chrNA"), chromosome=chromosome, trackType="AlignedReadTrack") str <- unique(as.character(GenomicRanges::strand(range))) if("*" %in% str) stop("Only '+' and '-' strand information is allowed for AlignedReadTrack objects.") if(missing(chromosome) || is.null(chromosome)) chromosome <- if(length(range)>0) .chrName(as.character(seqnames(range)[1])) else "chrNA" ## And finally the object instantiation return(new("AlignedReadTrack", chromosome=chromosome, range=range, name=name, genome=genome(range)[1], stacking=stacking, coverageOnly=coverageOnly, ...)) } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## SequenceTrack: ## ## A generic track to visualize nucleotide sequences. This class is virtual. ## Slots: ## o chromosome: a character vector giving the active chromosome for which the ## track is defined. Valid chromosome names are: ## - a single numeric character ## - a string, starting with 'chr', followed by any additional characters ## o genome: character giving the reference genome for which the track is defined. ## A bunch of DisplayPars are set during object instantiation: ## o foo: bar setClass("SequenceTrack", representation=representation("VIRTUAL", chromosome="character", genome="character"), contains="GdObject", prototype=prototype(name="Sequence", dp=DisplayPars(add53=FALSE, background.title="transparent", col="darkgray", complement=FALSE, fontcolor=getBioColor("DNA_BASES_N"), fontface=2, fontsize=10, lwd=2, min.width=2, noLetters=FALSE, showTitle=FALSE, size=NULL), genome=as.character(NA), chromosome="chrNA")) ## Essentially we just update the display parameters here and set the chromosome and the genome setMethod("initialize", "SequenceTrack", function(.Object, chromosome, genome, ...) { ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "SequenceTrack") if(!missing(chromosome) && !is.null(chromosome)){ .Object@chromosome <- .chrName(chromosome)[1] } if(missing(genome) || is.null(genome)) genome <- as.character(NA) .Object@genome <- genome .Object <- callNextMethod(.Object, ...) return(.Object) }) ## We want the following behaviour in the constructor: ## a) sequence is missing (NULL) => build SequenceDNAStringSetTrack with chromosome NA and genome as supplied or NA if missing ## b) sequence is DNAStringSet => build SequenceDNAStringSetTrack where chromosome is names(sequence)[1] or the supplied ## chromosome if available, and genome as supplied or NA if missing ## c) sequence is BSgenome => build SequenceBSgenomeTrack where chromosome is seqnames(sequence)[1] or the supplied ## chromosome if available, and genome is the supplied genome or the one extracted from the BSgenome object SequenceTrack <- function(sequence, chromosome, genome, name="SequenceTrack", importFunction, stream=FALSE, ...){ .missingToNull(c("chromosome", "genome", "sequence")) if(is.null(sequence)){ return(new("SequenceDNAStringSetTrack", chromosome=chromosome, genome=genome, name=name, ...)) } if(is(sequence, "BSgenome")){ if(is.null(genome)) genome <- providerVersion(sequence) if(is.null(chromosome)) chromosome <- seqnames(sequence)[1] obj <- new("SequenceBSgenomeTrack", sequence=sequence, chromosome=chromosome, genome=genome, name=name, ...) }else if(is(sequence, "DNAStringSet")){ if(is.null(names(sequence))) stop("The sequences in the DNAStringSet must be named") if(any(duplicated(names(sequence)))) stop("The sequence names in the DNAStringSet must be unique") if(is.null(chromosome)) chromosome <- names(sequence)[1] obj <- new("SequenceDNAStringSetTrack", sequence=sequence, chromosome=chromosome, genome=genome, name=name, ...) } else if(is.character(sequence)){ sequence <- sequence[1] if(!file.exists(sequence)) stop(sprintf("'%s' is not a valid file.", sequence)) ext <- .fileExtension(sequence) obj <- if(missing(importFunction) && ext %in% c("fa", "fasta")){ if(!file.exists(paste(sequence, "fai", sep="."))){ new("SequenceDNAStringSetTrack", sequence=readDNAStringSet(sequence), chromosome=chromosome, genome=genome, name=name, ...) }else{ new("ReferenceSequenceTrack", chromosome=chromosome, genome=genome, name=name, stream=.import.fasta, reference=path.expand(sequence), ...) } }else if(missing(importFunction) && ext == "2bit"){ new("ReferenceSequenceTrack", chromosome=chromosome, genome=genome, name=name, stream=.import.2bit, reference=path.expand(sequence), ...) }else{ if(missing(importFunction)){ stop(sprintf("No predefined import function exists for files with extension '%s'. Please manually provide an import function.", ext)) }else{ if(!stream){ seq <- importFunction(file=sequence) if(!is(seq, "DNAStringSet")) stop("The import function did not provide a valid DNAStringSet object. Unable to build track from file '", sequence, "'") new("SequenceDNAStringSetTrack", sequence=importFunction(file=sequence), chromosome=chromosome, genome=genome, name=name, ...) }else{ new("ReferenceSequenceTrack", chromosome=chromosome, genome=genome, name=name, stream=importFunction, reference=path.expand(sequence), ...) } } } }else{ stop("Argument sequence must be of class 'BSgenome', 'DNAStringSet' or 'character'") } return(obj) } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## SequenceDNAStringSetTrack: ## ## A track to visualize nucleotide sequences that are stored in a DNSStringSet ## Slots: ## o sequence: a DNAStringSet object that contains all the sequence data ##---------------------------------------------------------------------------------------------------------------------- setClass("SequenceDNAStringSetTrack", representation=representation(sequence="DNAStringSet"), contains="SequenceTrack", prototype=prototype(sequence=DNAStringSet())) setMethod("initialize", "SequenceDNAStringSetTrack", function(.Object, sequence, ...) { if(missing(sequence) || is.null(sequence)) sequence <- DNAStringSet() .Object@sequence <- sequence .Object <- callNextMethod(.Object, ...) return(.Object) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## SequenceBSgenomeTrack: ## ## A track to visualize nucleotide sequences that are stored in a BSgenome package ## Slots: ## o sequence: a DNAStringSet object that contains all the sequence data ## o pointerCache: an environemnt to hold pointers to the BSgenome sequences to prevent garbage collection. This ## will only be filled once the individual sequences have been accessed for the first time ##---------------------------------------------------------------------------------------------------------------------- setClass("SequenceBSgenomeTrack", representation=representation(sequence="BSgenomeOrNULL", pointerCache="environment"), contains="SequenceTrack", prototype=prototype(sequence=NULL)) setMethod("initialize", "SequenceBSgenomeTrack", function(.Object, sequence=NULL, ...) { .Object@sequence <- sequence .Object@pointerCache <- new.env() .Object <- callNextMethod(.Object, ...) return(.Object) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## ReferenceSequenceTrack: ## ## The file-based version of the ReferenceTrack class. This will mainly provide a means to dispatch to ## a special 'subseq' method which should stream the necessary data from disk. ##---------------------------------------------------------------------------------------------------------------------- setClass("ReferenceSequenceTrack", contains=c("SequenceDNAStringSetTrack", "ReferenceTrack")) ## This just needs to set the appropriate slots that are being inherited from ReferenceTrack because the ## multiple inheritence has some strange features with regards to method selection setMethod("initialize", "ReferenceSequenceTrack", function(.Object, stream, reference, ...) { .Object <- selectMethod("initialize", "ReferenceTrack")(.Object=.Object, reference=reference, stream=stream) .Object <- callNextMethod(.Object, ...) return(.Object) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## AlignmentsTrack ## ## A track that represents aligned NGS reads on a genome. This supports gapped an paired alignments. ##---------------------------------------------------------------------------------------------------------------------- setClassUnion("SequenceTrackOrNULL", c("SequenceTrack", "NULL")) setClass("AlignmentsTrack", representation=representation(stackRanges="GRanges", sequences="DNAStringSet", referenceSequence="SequenceTrackOrNULL"), contains="StackedTrack", prototype=prototype(stacking="squish", name="AlignmentsTrack", coverageOnly=FALSE, stackRanges=GRanges(), sequences=DNAStringSet(), referenceSequence=NULL, dp=DisplayPars(alpha.reads=0.5, alpha.mismatch=1, cex=0.7, cex.mismatch=NULL, col.coverage=NULL, col.gap=.DEFAULT_SHADED_COL, col.mates=.DEFAULT_BRIGHT_SHADED_COL, col.mismatch=.DEFAULT_SHADED_COL, col.reads=NULL, col.sashimi=NULL, col=.DEFAULT_SHADED_COL, collapse=FALSE, coverageHeight=0.1, fill.coverage=NULL, fill.reads=NULL, fill="#BABABA", fontface.mismatch=2, lty.coverage=NULL, lty.gap=NULL, lty.mates=NULL, lty.mismatch=NULL, lty.reads=NULL, lty=1, lwd.coverage=NULL, lwd.gap=NULL, lwd.mates=NULL, lwd.mismatch=NULL, lwd.reads=NULL, lwd.sashimiMax=10, lwd=1, max.height=10, min.height=5, minCoverageHeight=50, minSashimiHeight=50, noLetters=FALSE, sashimiFilter=NULL, sashimiFilterTolerance=0L, sashimiHeight=0.1, sashimiScore=1, sashimiStrand="*", showMismatches=TRUE, size=NULL, transformation=NULL, type=c("coverage", "pileup")))) setMethod("initialize", "AlignmentsTrack", function(.Object, stackRanges=GRanges(), stacks=numeric(), sequences=DNAStringSet(), referenceSequence=NULL, ...) { ## the diplay parameter defaults .makeParMapping() .Object <- .updatePars(.Object, "AlignedReadTrack") .Object@stackRanges <- stackRanges .Object <- callNextMethod(.Object, ...) .Object@stacks <- stacks .Object@sequences <- sequences .Object@referenceSequence <- referenceSequence return(.Object) }) setClass("ReferenceAlignmentsTrack", contains=c("AlignmentsTrack", "ReferenceTrack")) ## This just needs to set the appropriate slots that are being inherited from ReferenceTrack because the ## multiple inheritence has some strange features with regards to method selection setMethod("initialize", "ReferenceAlignmentsTrack", function(.Object, stream, reference, mapping=list(), args=list(), defaults=list(), stacks=numeric(), stackRanges=GRanges(), sequences=DNAStringSet(), referenceSequence=NULL, ...) { .Object <- selectMethod("initialize", "ReferenceTrack")(.Object=.Object, reference=reference, stream=stream, mapping=mapping, args=args, defaults=defaults) .Object <- callNextMethod(.Object, ...) .Object@referenceSequence <- referenceSequence return(.Object) }) ## Constructor AlignmentsTrack <- function(range=NULL, start=NULL, end=NULL, width=NULL, strand, chromosome, genome, stacking="squish", id, cigar, mapq, flag, isize, groupid, status, md, seqs, name="AlignmentsTrack", isPaired=TRUE, importFunction, referenceSequence, ...){ ## Some defaults if(missing(importFunction)) importFunction <- .import.bam.alignments covars <- .getCovars(range) isStream <- FALSE if(!is.character(range)){ n <- max(c(length(start), length(end), length(width)), nrow(covars)) id <- .covDefault(id, covars[["id"]], paste("read", seq_len(n), sep="_")) cigar <- .covDefault(cigar, covars[["cigar"]], paste(if(is(range, "GRangesOrIRanges")) width(range) else width, "M", sep="")) mapq <- .covDefault(mapq, covars[["mapq"]], rep(as.integer(NA), n)) flag <- .covDefault(flag, covars[["flag"]], rep(as.integer(NA), n)) isize <- .covDefault(isize, covars[["isize"]], rep(as.integer(NA), n)) groupid <- .covDefault(groupid, covars[["groupid"]], seq_len(n)) md <- .covDefault(md, covars[["md"]], rep(as.character(NA), n)) status <- .covDefault(status, covars[["status"]], ifelse(groupid %in% groupid[duplicated(groupid)], "mated", "unmated")) } ## Build a GRanges object from the inputs .missingToNull(c("strand", "chromosome", "importFunction", "genome", "id", "cigar", "mapq", "flag", "isize", "groupid", "status", "md", "seqs", "referenceSequence")) args <- list(id=id, cigar=cigar, mapq=mapq, flag=flag, isize=isize, groupid=groupid, status=status, strand=strand, md=md, chromosome=chromosome, genome=genome) defs <- list(strand="*", chromosome="chrNA", genome=NA, id=as.character(NA), cigar=as.character(NA), mapq=as.integer(NA), flag=as.integer(NA), isize=as.integer(NA), groupid=as.character(NA), status=as.character(NA), md=as.character(NA)) range <- .buildRange(range=range, start=start, end=end, width=width, args=args, defaults=defs, chromosome=chromosome, trackType="AlignmentsTrack", importFun=importFunction, stream=TRUE, autodetect=TRUE) ## This is going to be a list if we have to stream data from a file, otherwise we can compute some additional values if(is.list(range)){ isStream <- TRUE slist <- range range <- GRanges() stackRanges <- GRanges() stacks <- NULL seqs <- DNAStringSet() }else{ if(is.null(seqs)){ seqs <- DNAStringSet(sapply(width(range), function(x) paste(rep("N", x), collapse=""))) } tmp <- .computeAlignments(range) range <- tmp$range stackRanges <- tmp$stackRange stacks <- tmp$stacks } ## If no chromosome was explicitely asked for we just take the first one in the GRanges object if(missing(chromosome) || is.null(chromosome)) chromosome <- if(length(range)>0) .chrName(as.character(seqnames(range)[1])) else "chrNA" ## And finally the object instantiation genome <- .getGenomeFromGRange(range, ifelse(is.null(genome), character(), genome[1])) if(!isStream){ return(new("AlignmentsTrack", chromosome=chromosome[1], range=range, stacks=stacks, name=name, genome=genome, stacking=stacking, stackRanges=stackRanges, sequences=seqs, referenceSequence=referenceSequence, ...)) }else{ ## A bit hackish but for some functions we may want to know which track type we need but at the ## same time we do not want to enforce this as an additional argument e <- new.env() e[["._trackType"]] <- "AlignmentsTrack" e[["._isPaired"]] <- isPaired environment(slist[["stream"]]) <- e return(new("ReferenceAlignmentsTrack", chromosome=chromosome[1], range=range, stackRanges=stackRanges, name=name, genome=genome, stacking=stacking, stream=slist[["stream"]], reference=slist[["reference"]], mapping=slist[["mapping"]], args=args, defaults=defs, stacks=stacks, referenceSequence=referenceSequence, ...)) } } ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## HighlightTrack: ## ## A collection container for several track objects for which a particular area needs to be highlighted. ##---------------------------------------------------------------------------------------------------------------------- setClass("HighlightTrack", representation=representation(trackList="list"), contains=c("RangeTrack"), prototype=prototype(dp=DisplayPars(col="red", fill="#FFE3E6", inBackground=TRUE))) setMethod("initialize", "HighlightTrack", function(.Object, trackList, ...) { .Object <- .updatePars(.Object, "HighlightTrack") .Object@trackList <- trackList .Object <- callNextMethod(.Object, ...) return(.Object) }) HighlightTrack <- function(trackList=list(), range=NULL, start=NULL, end=NULL, width=NULL, chromosome, genome, name="HighlightTrack", ...){ ## Some defaults covars <- .getCovars(range) n <- max(c(length(start), length(end), length(width)), nrow(covars)) ## Build a GRanges object from the inputs .missingToNull(c("strand", "chromosome", "genome")) args <- list(chromosome=chromosome, genome=genome) defs <- list(strand="*", density=1, chromosome="chrNA", genome=NA) range <- .buildRange(range=range, start=start, end=end, width=width, args=args, defaults=defs, chromosome=chromosome, trackType="HighlightTrack") if(is.list(range)){ range <- GRanges() } if(!is.list(trackList)) trackList <- list(trackList) if(!all(sapply(trackList, is, "GdObject"))) stop("All elements in 'trackList' must inherit from 'GdObject'") ## If no chromosome was explicitely asked for we just take the first one in the GRanges object if(missing(chromosome) || is.null(chromosome)) chromosome <- if(length(range)>0) .chrName(as.character(seqnames(range)[1])) else "chrNA" ## And finally the object instantiation genome <- .getGenomeFromGRange(range, ifelse(is.null(genome), character(), genome[1])) return(new("HighlightTrack", trackList=trackList, chromosome=chromosome[1], range=range, name=name, genome=genome, ...)) } setReplaceMethod("displayPars", signature("HighlightTrack", "list"), function(x, recursive=FALSE, value) { x <- setPar(x, value, interactive=FALSE) if(recursive){ x@trackList <- lapply(x@trackList, function(y){ displayPars(y) <- value return(y) }) } return(x) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## OverlayTrack: ## ## A collection container for several track objects which will all be plotted on top of each other ##---------------------------------------------------------------------------------------------------------------------- setClass("OverlayTrack", representation=representation(trackList="list"), contains=c("GdObject"), prototype=prototype(dp=DisplayPars())) setMethod("initialize", "OverlayTrack", function(.Object, trackList, ...) { .Object <- .updatePars(.Object, "OverlayTrack") .Object@trackList <- trackList .Object <- callNextMethod(.Object, ...) return(.Object) }) OverlayTrack <- function(trackList=list(), name="OverlayTrack", ...){ if(!is.list(trackList)) trackList <- list(trackList) if(!all(sapply(trackList, is, "GdObject"))) stop("All elements in 'trackList' must inherit from 'GdObject'") return(new("OverlayTrack", trackList=trackList, name=name, ...)) } setReplaceMethod("displayPars", signature("OverlayTrack", "list"), function(x, recursive=FALSE, value) { x <- setPar(x, value, interactive=FALSE) if(recursive){ x@trackList <- lapply(x@trackList, function(y){ displayPars(y) <- value return(y) }) } return(x) }) ##---------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------- ## CustomTrack: ## ## A track class to allow for user-defined plotting functions ##---------------------------------------------------------------------------------------------------------------------- setClass("CustomTrack", contains=c("GdObject"), representation=representation(plottingFunction="function", variables="list"), prototype=prototype(dp=DisplayPars())) setMethod("initialize", "CustomTrack", function(.Object, plottingFunction, variables, ...) { .Object <- .updatePars(.Object, "CustomTrack") .Object@plottingFunction <- plottingFunction .Object@variables <- variables .Object <- callNextMethod(.Object, ...) return(.Object) }) CustomTrack <- function(plottingFunction=function(GdObject, prepare=FALSE, ...){}, variables=list(), name="CustomTrack", ...){ return(new("CustomTrack", plottingFunction=plottingFunction, variables=variables, name=name, ...)) } ##---------------------------------------------------------------------------------------------------------------------- Gviz/R/AllGenerics.R0000755000175400017540000000712113175714140015242 0ustar00biocbuildbiocbuild## ============================================================================================================================ ## All generic functions defined in the package ## ============================================================================================================================ ## Display parameter accessors setGeneric("setPar", function(x, value, ...) standardGeneric("setPar")) setGeneric("displayPars<-", signature=c("x", "value"), function(x, recursive=FALSE, value) standardGeneric("displayPars<-") ) setGeneric("getPar", def = function(x, name, ...) standardGeneric("getPar")) setGeneric("displayPars", function(x, name, ...) standardGeneric("displayPars")) ## Annotation accessors setGeneric("gene", function(GdObject, ...) standardGeneric("gene")) setGeneric("gene<-", function(GdObject, value) standardGeneric("gene<-")) setGeneric("symbol", function(GdObject, ...) standardGeneric("symbol")) setGeneric("symbol<-", function(GdObject, value) standardGeneric("symbol<-")) setGeneric("transcript", function(GdObject, ...) standardGeneric("transcript")) setGeneric("transcript<-", function(GdObject, value) standardGeneric("transcript<-")) setGeneric("exon", function(GdObject, ...) standardGeneric("exon")) setGeneric("exon<-", function(GdObject, value) standardGeneric("exon<-")) setGeneric("feature", function(GdObject, ...) standardGeneric("feature")) setGeneric("feature<-", function(GdObject, value) standardGeneric("feature<-")) setGeneric("group", function(GdObject, ...) standardGeneric("group")) setGeneric("group<-", function(GdObject, value) standardGeneric("group<-")) setGeneric("identifier", function(GdObject, ...) standardGeneric("identifier")) setGeneric("identifier<-", function(GdObject, value) standardGeneric("identifier<-")) ## General accessors setGeneric("chromosome", function(GdObject, ...) standardGeneric("chromosome")) setGeneric("chromosome<-", function(GdObject, value) standardGeneric("chromosome<-")) setGeneric("[") setGeneric("position", function(GdObject, ...) standardGeneric("position")) setGeneric("imageMap", function(GdObject, ...) standardGeneric("imageMap")) setGeneric("imageMap<-", function(GdObject, value) standardGeneric("imageMap<-")) ##setGeneric("subset", function(x, ...) standardGeneric("subset")) setGeneric("coords", function(ImageMap, ...) standardGeneric("coords")) setGeneric("tags", function(ImageMap, ...) standardGeneric("tags")) ## Prepare tracks for plotting setGeneric("consolidateTrack", function(GdObject, ...) standardGeneric("consolidateTrack")) setGeneric("collapseTrack", function(GdObject, ...) standardGeneric("collapseTrack")) setGeneric("stacking", function(GdObject, ...) standardGeneric("stacking")) setGeneric("stacking<-", function(GdObject, value) standardGeneric("stacking<-")) setGeneric("stacks", function(GdObject, ...) standardGeneric("stacks")) setGeneric("setStacks", function(GdObject, ...) standardGeneric("setStacks")) setGeneric("setCoverage", function(GdObject, ...) standardGeneric("setCoverage")) ## Plotting methods setGeneric("drawAxis", function(GdObject, ...) standardGeneric("drawAxis")) setGeneric("drawGrid", function(GdObject, ...) standardGeneric("drawGrid")) setGeneric("drawGD", function(GdObject, ...) standardGeneric("drawGD")) ## We may need those for dispatch in the name space ##if(!isGeneric("lapply")) ## setGeneric("lapply") ##if(!isGeneric("sapply")) ## setGeneric("sapply") ##if(!isGeneric("head")) ## setGeneric("head") ##if(!isGeneric("split")) ## setGeneric("split") ## Internal methods setGeneric(".buildRange", function(range, start, end, width, ...) standardGeneric(".buildRange")) Gviz/R/Gviz-methods.R0000644000175400017540000076074713175714140015453 0ustar00biocbuildbiocbuild##---------------------------------------------------------------------------------------------------------------------------- ## Some rather general accessors to extract information from all kinds of GdObjects ##---------------------------------------------------------------------------------------------------------------------------- ## Extract the full GRanges object from the range slot of an object inheriting from RangeTrack setMethod("ranges", "RangeTrack", function(x) x@range) setReplaceMethod("ranges", "RangeTrack", function(x, value) { x@range <- value return(x)}) setMethod("ranges", "GenomeAxisTrack", function(x) x@range) setReplaceMethod("ranges", "GenomeAxisTrack", function(x, value) { x@range <- value return(x)}) ## Extract the IRanges part of the GRanges object from the range slot of an object inheriting from RangeTrack setMethod("range", "RangeTrack", function(x) ranges(x@range)) setMethod("range", "GenomeAxisTrack", function(x) ranges(x@range)) ## seqnames, levels and infofrom the range track setMethod("seqnames", "RangeTrack", function(x) as.character(seqnames(ranges(x)))) setMethod("seqnames", "SequenceDNAStringSetTrack", function(x) as.character(names(x@sequence))) setMethod("seqnames", "SequenceBSgenomeTrack", function(x) as.character(seqnames(x@sequence))) setMethod("seqlevels", "RangeTrack", function(x) unique(seqnames(x))) setMethod("seqlevels", "SequenceDNAStringSetTrack", function(x) seqnames(x)[width(x@sequence)>0]) setMethod("seqlevels", "SequenceBSgenomeTrack", function(x) seqnames) setMethod("seqinfo", "RangeTrack", function(x) table(seqnames(x))) ## Min and max ranges setMethod("min", "RangeTrack", function(x) min(start(x))) setMethod("max", "RangeTrack", function(x) max(end(x))) ## Extract start and end coordinates setMethod("start", "RangeTrack", function(x) if(length(x)) as.integer(start(range(x))) else NULL) setReplaceMethod("start", "RangeTrack", function(x, value) { start(x@range) <- value return(x)}) setReplaceMethod("start", "GenomeAxisTrack", function(x, value) { start(x@range) <- value return(x)}) setReplaceMethod("start", "IdeogramTrack", function(x, value) return(x)) setMethod("end", "RangeTrack", function(x) if(length(x)) as.integer(end(range(x))) else NULL) setReplaceMethod("end", "RangeTrack", function(x, value) { end(x@range) <- value return(x)}) setReplaceMethod("end", "GenomeAxisTrack", function(x, value) { end(x@range) <- value return(x)}) setReplaceMethod("end", "IdeogramTrack", function(x, value) return(x)) setMethod("width", "RangeTrack", function(x) if(length(x)) as.integer(width(range(x))) else NULL) setReplaceMethod("width", "RangeTrack", function(x, value) { width(x@range) <- value return(x)}) setReplaceMethod("width", "IdeogramTrack", function(x, value) return(x)) setMethod("start", "GenomeAxisTrack", function(x) if(length(x)) start(range(x)) else NULL) setMethod("end", "GenomeAxisTrack", function(x) if(length(x)) end(range(x)) else NULL) setMethod("width", "GenomeAxisTrack", function(x) if(length(x)) as.integer(width(range(x))) else NULL) setMethod("start", "IdeogramTrack", function(x) NULL) setMethod("start", "SequenceTrack", function(x) NULL) setMethod("end", "IdeogramTrack", function(x) NULL) setMethod("end", "SequenceTrack", function(x) NULL) setMethod("width", "IdeogramTrack", function(x) NULL) setMethod("width", "SequenceTrack", function(x) NULL) ## Return the number of individual annotation items (independent of any grouping) in a RangeTrack setMethod("length", "RangeTrack", function(x) sum(seqnames(x) == chromosome(x))) setMethod("length", "GenomeAxisTrack", function(x) length(ranges(x))) setMethod("length", "IdeogramTrack", function(x) length(ranges(x))) setMethod("length", "SequenceTrack", function(x) if(chromosome(x) %in% seqnames(x)) length(x@sequence[[chromosome(x)]]) else 0) ## setMethod("length", "ReferenceAnnotationTrack", function(x) 0) ## setMethod("length", "ReferenceGeneRegionTrack", function(x) 0) ## setMethod("length", "ReferenceDataTrack", function(x) 0) setMethod("length", "HighlightTrack", function(x) length(x@trackList)) setMethod("length", "OverlayTrack", function(x) length(x@trackList)) ## Extract the metadata columns from the GRanges object of an object inheriting from RangeTrack as a data.frame. ## For a DataTrack object these values are stored as a numeric matrix in the data slot, and we return this instead. setMethod("values", "RangeTrack", function(x) as.data.frame(values(ranges(x)))) setMethod("values", "GenomeAxisTrack", function(x) as.data.frame(values(ranges(x)))) setMethod("values", "DataTrack", function(x, all=FALSE){ if(sum(dim(x@data))==0) x@data else{ sel <- if(all) rep(TRUE, ncol(x@data)) else seqnames(x) == chromosome(x) x@data[,sel, drop=FALSE] } }) setMethod("values", "AlignmentsTrack", function(x) .dpOrDefault(x, ".__coverage")) setReplaceMethod("values", "DataTrack", function(x, value){ if(!is.matrix(value)) { if(!is.numeric(value) || length(value) != length(x)) stop("Invalid length of replacement vector.") if(!is.matrix(value) || !is.numeric(value) || ncol(value)!=length(x)) stop("Dimensions of replacement value do not match.") } x@data <- value return(x) }) ## Extract a subsequence from a SequenceTrack. For performance reasons we restrict this to a maximum ## of one million nucleotides (which is already more than plenty...) setMethod("subseq", "SequenceTrack", function(x, start=NA, end=NA, width=NA){ padding <- "-" if(!is.na(start[1]+end[1]+width[1])){ warning("All 'start', 'stop' and 'width' are provided, ignoring 'width'") width <- NA } ## We want start and end to be set if width is provided if(!is.na(width[1])){ if(is.na(start) && is.na(end)) stop("Two out of the three in 'start', 'end' and 'width' have to be provided") if(is.na(start)) start <- end-width[1]+1 if(is.na(end)) end <- start+width[1]-1 } w <- length(x) if(is.na(start)) start <- 1 if(w>0){ if(is.na(end)) end <- w rstart <- max(1, start[1], na.rm=TRUE) rend <- max(rstart, min(end[1], w, na.rm=TRUE)) }else{ if(is.na(end)) end <- start rend <- end rstart <- start } if(rend10e6) stop("Sequence is too big! Unable to extract") finalSeq <- rep(DNAString(padding), end-start+1) if(chromosome(x) %in% seqnames(x) && rend>rstart){ chrSeq <- x@sequence[[chromosome(x)]] seq <- subseq(chrSeq, start=rstart, end=rend) if(is(x, "SequenceBSgenomeTrack")) seq <- unmasked(seq) subseq(finalSeq, ifelse(start<1, abs(start)+2, 1), width=rend-rstart+1) <- seq } if(is(x, "SequenceBSgenomeTrack") && chromosome(x) %in% seqnames(x)) x@pointerCache[[chromosome(x)]] <- x@sequence[[chromosome(x)]] if(.dpOrDefault(x, "complement", FALSE)) finalSeq <- complement(finalSeq) return(finalSeq) }) setMethod("subseq", "ReferenceSequenceTrack", function(x, start=NA, end=NA, width=NA){ ## We want start and end to be set if width is provided if(!is.na(width[1])){ if(is.na(start) && is.na(end)) stop("Two out of the three in 'start', 'end' and 'width' have to be provided") if(is.na(start)) start <- end-width[1]+1 if(is.na(end)) end <- start+width[1]-1 } x@sequence <- x@stream(file=x@reference, selection=GRanges(chromosome(x), ranges=IRanges(start, end))) return(callNextMethod()) }) ## Set or extract the chromosome from a RangeTrack object setMethod("chromosome", "GdObject", function(GdObject) return(NULL)) setMethod("chromosome", "RangeTrack", function(GdObject) GdObject@chromosome) setMethod("chromosome", "SequenceTrack", function(GdObject) GdObject@chromosome) setReplaceMethod("chromosome", "GdObject", function(GdObject, value){ return(GdObject) }) setReplaceMethod("chromosome", "RangeTrack", function(GdObject, value){ GdObject@chromosome <- .chrName(value[1]) return(GdObject) }) setReplaceMethod("chromosome", "SequenceTrack", function(GdObject, value){ GdObject@chromosome <- .chrName(value[1]) return(GdObject) }) setReplaceMethod("chromosome", "IdeogramTrack", function(GdObject, value){ ## We have changed the class definition to include the bands for all chromosomes, but still want the old objects to work chromosome <- .chrName(value[1]) if(.hasSlot(GdObject, "bandTable") && chromosome %in% as.character(GdObject@bandTable$chrom)) { ranges <- GdObject@bandTable[GdObject@bandTable$chrom==chromosome,] bnames <- as.character(ranges$name) sel <- is.na(bnames) if(any(sel)) bnames[sel] <- paste("band", seq_len(sum(sel)), sep="_") if(any(bnames == "")) bnames[bnames == ""] <- sprintf("band_%i", which(bnames == "")) ranges <- GRanges(seqnames=bnames, ranges=IRanges(start=ranges$chromStart, end=ranges$chromEnd), name=bnames, type=ranges$gieStain) GdObject@range <- ranges GdObject@chromosome <- chromosome return(GdObject) } message("Updating chromosome band information") tmp <- IdeogramTrack(genome=genome(GdObject), chromosome=.chrName(value[1]), name=names(GdObject)) displayPars(tmp) <- displayPars(GdObject, hideInternal=FALSE) return(tmp) }) setReplaceMethod("chromosome", "AlignmentsTrack", function(GdObject, value){ GdObject <- callNextMethod() if(!is.null(GdObject@referenceSequence)) chromosome(GdObject@referenceSequence) <- value[1] return(GdObject) }) setReplaceMethod("chromosome", "HighlightTrack", function(GdObject, value){ GdObject@trackList <- lapply(GdObject@trackList, function(x){ chromosome(x) <- value[1] x }) GdObject@chromosome <- .chrName(value[1]) return(GdObject) }) setReplaceMethod("chromosome", "OverlayTrack", function(GdObject, value){ GdObject@trackList <- lapply(GdObject@trackList, function(x){ chromosome(x) <- value x }) return(GdObject) }) ## Set or extract the genome from a RangeTrack object setMethod("genome", "RangeTrack", function(x) x@genome) setMethod("genome", "SequenceTrack", function(x) x@genome) setReplaceMethod("genome", "GdObject", function(x, value){ return(x) }) setReplaceMethod("genome", "RangeTrack", function(x, value){ x@genome <- value[1] genome(ranges(x)) <- as.vector(value[1]) return(x) }) setReplaceMethod("genome", "IdeogramTrack", function(x, value){ if(genome(x)!=value) message("Updating chromosome band information") tmp <- IdeogramTrack(genome=value[1], chromosome=chromosome(x), name=names(x)) displayPars(tmp) <- displayPars(x, hideInternal=FALSE) return(tmp) }) ## Set or extract the name slot of a GdObject setMethod("names", "GdObject", function(x) x@name) setReplaceMethod("names", signature("GdObject", "character"), function(x, value) { x@name <- value[1] return(x) }) ## Set or extract the strand information from a RangeTrack object setMethod("strand", "RangeTrack", function(x) as.character(strand(ranges(x)))) setMethod("strand", "GenomeAxisTrack", function(x) as.character(strand(ranges(x)))) setMethod("strand", "DataTrack", function(x) x@strand) setReplaceMethod("strand", "RangeTrack", function(x, value){ if(length(value)!=1 && length(value)!=length(x)) stop("Length of replacement value for the strand information does not match the ", "number of items in the track") r <- ranges(x) strand(r) <- value x@range <- r return(x) }) setReplaceMethod("strand", "DataTrack", function(x, value){ if(!is.character(value) && length(value)!=1 && !value %in% c("+", "-", "*")) stop("Invalid replacement value") x@strand <- value return(x) }) ## Allow for subsetting of RangeTrack and DataTrack objects setMethod("[", signature(x="RangeTrack"), function(x, i, j, ..., drop=TRUE) { x <- .deepCopyPars(x) x@range <- x@range[i,] return(x)}) setMethod("[", signature(x="StackedTrack"), function(x, i, j, ..., drop=TRUE) { x <- callNextMethod(x,i) x@stacks <- x@stacks[i] return(x)}) setMethod("[", signature(x="GenomeAxisTrack"), function(x, i, j, ..., drop=TRUE) { x <- .deepCopyPars(x) x@range <- x@range[i,] return(x)}) setMethod("[", signature(x="IdeogramTrack"), function(x, i, j, ..., drop=TRUE) return(x)) setMethod("[", signature(x="DataTrack"), function(x, i, j, ..., drop=TRUE) { x <- .deepCopyPars(x) if(!missing(i)) { x@data <- x@data[i,, drop=FALSE] displayPars(x) <- list(groups=as.vector(.dpOrDefault(x, "groups")[i])) } if(!missing(j)) { x@range <- x@range[j,] if(ncol(x@data)>0) x@data <- x@data[,j, drop=FALSE] } return(x)}) setMethod("[", signature(x="AlignedReadTrack"), function(x, i, j, ..., drop=TRUE) { if(x@coverageOnly) stop("This AlignedReadTrack object contains coverage information only and can not be subset") x@range <- x@range[i,] x <- setCoverage(x) return(x)}) ## Split a RangeTrack or DataTrack by a factor or character setMethod("split", signature("RangeTrack"), definition=function(x, f, ...){ rs <- split(ranges(x), factor(f)) lapply(rs, function(y) {x@range <- y; return(x)}) }) setMethod("split", signature("AlignedReadTrack"), definition=function(x, f, ...){ if(x@coverageOnly) stop("This AlignedReadTrack object contains coverage information only and can not be split") rs <- split(ranges(x), factor(f)) lapply(rs, function(y) {x@range <- y; x <- setCoverage(x); return(x)}) }) setMethod("split", signature("DataTrack"), definition=function(x, f, ...){ rs <- as.list(split(ranges(x), factor(f))) ds <- split(t(values(x)), f) nr <- nrow(values(x)) mapply(function(y, z) {x@range <- y; x@data <- matrix(z, nrow=nr, byrow=TRUE); return(x)}, rs, ds) }) ## Extract the coverage information setMethod("coverage", signature("AlignedReadTrack"), definition=function(x, strand="*"){ str <- c("+", "-", "*")[.strandName(strand, extended=TRUE)+1] return(if(!is.null(x@coverage[[str]])) x@coverage[[str]] else Rle()) }) ##---------------------------------------------------------------------------------------------------------------------------- ## There are several levels of annotation information for most RangeTrack objects: individual features (e.g. exons, biotype), ## groups (e.g. transcripts) and even groups of groups (e.g. genes). Not all are relevant for all subclasses, however we want ## to have accessors and replacement methods for a clean interface. ##---------------------------------------------------------------------------------------------------------------------------- ## Helper functions to extract or replace the various annotation data of a track. ## o GdObject: the input GeneRegionTrack track object ## o type: the annotation type, i.e., a metadata column in the GRanges object ## o value: the replacement value, has to be of the same length as length(GdObject) .getAnn <- function(GdObject, type) return(as.character(values(GdObject)[[type]])) .setAnn <- function(GdObject, value, type) { v <- values(GdObject) if(length(value)>1 && length(value) != nrow(v)) stop("The length of the replacement value for the '", type, "' annotation does not match the number ", "of features in the track.") v[[type]] <- value mcols(GdObject@range) <- v return(GdObject) } ## Accessors to the gene-level annotation of a GeneRegionTrack. We actually need two methods here, one for the ## human-readable gene symbols and one for the actual gene id setMethod("gene", signature(GdObject="GeneRegionTrack"), function(GdObject) .getAnn(GdObject, "gene")) setMethod("symbol", signature(GdObject="GeneRegionTrack"), function(GdObject) .getAnn(GdObject, "symbol")) setReplaceMethod("gene", signature("GeneRegionTrack", "character"), function(GdObject, value) .setAnn(GdObject, value, "gene")) setReplaceMethod("symbol", signature("GeneRegionTrack", "character"), function(GdObject, value) .setAnn(GdObject, value, "symbol")) ## Accessors to the transcript-level annotation of a GeneRegionTrack. setMethod("transcript", signature(GdObject="GeneRegionTrack"), function(GdObject) .getAnn(GdObject, "transcript")) setReplaceMethod("transcript", signature("GeneRegionTrack", "character"), function(GdObject, value) .setAnn(GdObject, value, "transcript")) ## Accessors to the exon-level annotation of a GeneRegionTrack setMethod("exon", signature(GdObject="GeneRegionTrack"), function(GdObject) .getAnn(GdObject, "exon")) setReplaceMethod("exon", signature("GeneRegionTrack", "character"), function(GdObject, value) .setAnn(GdObject, value, "exon")) ## Accessors to the biotype annotation of a RangeTrack. setMethod("feature", signature(GdObject="RangeTrack"), function(GdObject) .getAnn(GdObject, "feature")) setMethod("feature", signature(GdObject="DataTrack"), function(GdObject) NULL) setReplaceMethod("feature", signature("RangeTrack", "character"), function(GdObject, value) .setAnn(GdObject, value, "feature")) setReplaceMethod("feature", signature("DataTrack", "character"), function(GdObject, value) GdObject) ## Accessors to the grouping information of a AnnotationTrack and a GeneRegionTrack (for which this is essentially ## an alias to the transcript accessor. setMethod("group", "AnnotationTrack", function(GdObject) .getAnn(GdObject, "group")) setReplaceMethod("group", signature("AnnotationTrack", "character"), function(GdObject, value) .setAnn(GdObject, value, "group")) setMethod("group", "GeneRegionTrack", function(GdObject) transcript(GdObject)) setReplaceMethod("group", signature("GeneRegionTrack", "character"), function(GdObject, value) .setAnn(GdObject, value, "transcript")) setMethod("group", "GdObject", function(GdObject) NULL) ## extract or replace the content of the imageMap slot setMethod("imageMap", "GdObject", function(GdObject) GdObject@imageMap) setReplaceMethod("imageMap", signature("GdObject", "ImageMapOrNULL"), function(GdObject, value){ GdObject@imageMap <- value return(GdObject)}) ## Context-dependent meta-accessors to the identifier data of an AnnotationTrack and a GeneRegionTrack. For the former, those will ## be the content of the 'id', the 'group' or the 'feature' metadata column, for the latter, one in ## the selection of 'symbol', 'gene', 'transcript', 'feature' or 'exon'. For historical reasons, logical values are also allowed, where TRUE ## is equivalent to 'symbol' and FALSE is equivalent to 'gene'. If not provided explicitely in the 'type' argument, the identifier ## type is inferred from the 'transcriptAnnotation' display parameter (a.k.a. 'geneSymbols') for a GeneRegionTrack, and from the ## 'groupAnnotation' parameter for an AnnotationTrack. The special value 'lowest' should work across all classes and provided the most ## detailed annotation ('id' for AnnotationTrack and 'exon' for GeneRegionTrack). setMethod("identifier", "AnnotationTrack", function(GdObject, type=.dpOrDefault(GdObject, "groupAnnotation", "group")){ if(is.null(type)){ type <- "group" } id <- switch(as.character(type), "group"=group(GdObject), "id"=.getAnn(GdObject, "id"), "feature"=feature(GdObject), "lowest"=.getAnn(GdObject, "id"), group(GdObject)) id[is.na(id)] <- "NA" return(id) }) setMethod("identifier", "GeneRegionTrack", function(GdObject, type=.dpOrDefault(GdObject, "transcriptAnnotation", "symbol")){ if(is.logical(type)){ type <- ifelse("symbol", "gene", type[1]) } if(is.null(type)){ type <- "symbol" } id <- switch(as.character(type), "symbol"=symbol(GdObject), "gene"=gene(GdObject), "transcript"=transcript(GdObject), "feature"=feature(GdObject), "exon"=exon(GdObject), "lowest"=exon(GdObject), symbol(GdObject)) id[is.na(id)] <- "NA" return(id) }) setReplaceMethod("identifier", c("AnnotationTrack", "character"), function(GdObject, value){ type <- .dpOrDefault(GdObject, "groupAnnotation", "group") switch(as.character(type), "group"=group(GdObject) <- value, "id"=ranges(GdObject)$id <- value, "feature"=feature(GdObject) <- value, "lowest"=ranges(GdObject)$id <- value, group(GdObject) <- value) return(GdObject) }) setReplaceMethod("identifier", c("GeneRegionTrack", "character"), function(GdObject, value){ type <- .dpOrDefault(GdObject, "transcriptAnnotation", "symbol") switch(as.character(type), "symbol"=symbol(GdObject) <- value, "gene"=gene(GdObject) <- value, "transcript"=transcript(GdObject) <- value, "feature"=feature(GdObject) <- value, "exon"=exon(GdObject) <- value, "lowest"=exon(GdObject) <- value, symbol(GdObject) <- value) return(GdObject) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Stacking controls what to do with overlapping annotation regions. ##---------------------------------------------------------------------------------------------------------------------------- setMethod("stacking", "StackedTrack", function(GdObject) GdObject@stacking) setReplaceMethod("stacking", c("StackedTrack", "character"), function(GdObject, value) { pt <- getClass("StackedTrack")@prototype if(!all(value %in% pt@stackingValues)) stop("Problem initializing StackedTrack, need the following values for 'stacking':", paste(pt@stackingValues, collapse=", "), "\n") GdObject@stacking <- value displayPars(GdObject) <- list(stacking=value) return(GdObject) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Recompute or return the stacking information for different types of StackedTrack objects. Stacking in needed when ## annotation regions in the objects overlap and when the stacking type is set to squish, full or pack. Since stacking ## can be dependent on the available space (if feature annotation is added) we need to be able to recompute this before ## we start the actual plotting. For the different sub-classes of StackedTracks we need different behaviour of setStacks: ## o StackedTrack: there are no groups, so each feature can be treated separately ## o AnnotationTrack and GeneRegionTrack: features can be grouped, in which case we have to avoid overlapping of the whole group region, ## i.e, from the start of the first group item to the end of the last. In addition to grouping we have to factor in additional space ## before each group if group/transcript annotation is enabled (gpar showId==TRUE). To do so we need to figure out the current ## fontsize on the device, which means that a device already has to be open and the appropriate viewport has been ## pushed to the stack. Hence we have to call setStacks immediately before the actual plotting. ## 'stacks' should return a vector of stacks, where each factor level of the vector indicates membeship ## to a particular stacking level. 'setStacks' returns the updated GdObject. ##---------------------------------------------------------------------------------------------------------------------------- setMethod("stacks", "StackedTrack", function(GdObject) if(length(GdObject@stacks)) GdObject@stacks else NULL) setMethod("stacks", "AlignmentsTrack", function(GdObject) if(length(GdObject)) ranges(GdObject)$stack else 0) setMethod("setStacks", "GdObject", function(GdObject, ...) GdObject) setMethod("setStacks", "StackedTrack", function(GdObject, ...) { bins <- if(!.needsStacking(GdObject)) rep(1, length(GdObject)) else disjointBins(range(GdObject)) GdObject@stacks <- bins return(GdObject) }) setMethod("setStacks", "AnnotationTrack", function(GdObject, recomputeRanges=TRUE){ if(!.needsStacking(GdObject) || length(GdObject)==0){ ## No stacks needed, so there is just a single bin bins <- rep(1, length(GdObject)) }else{ gp <- group(GdObject) needsGrp <- any(duplicated(gp)) lranges <- .dpOrDefault(GdObject, ".__groupRanges") gpt <- if(needsGrp) table(gp) else rep(1, length(GdObject)) if(recomputeRanges || is.null(lranges) || length(lranges) != length(gpt)){ GdObject <- .computeGroupRange(GdObject) lranges <- .dpOrDefault(GdObject, ".__groupRanges") } uid <- if(.transcriptsAreCollapsed(GdObject)) sprintf("uid%i", seq_along(identifier(GdObject))) else make.unique(identifier(GdObject, type="lowest")) bins <- rep(disjointBins(lranges), gpt) names(bins) <- if(needsGrp) unlist(split(uid, gp)) else uid bins <- bins[uid] } bins <- if(length(bins)) bins else 0 GdObject@stacks <- bins return(GdObject) }) setMethod("setStacks", "HighlightTrack", function(GdObject, ...) { GdObject@trackList <- lapply(GdObject@trackList, setStacks, ...) return(GdObject) }) setMethod("setStacks", "OverlayTrack", function(GdObject, ...) { GdObject@trackList <- lapply(GdObject@trackList, setStacks, ...) return(GdObject) }) setMethod("setStacks", "AlignmentsTrack", function(GdObject, ...) { if(length(GdObject)){ bins <- if(!.needsStacking(GdObject)) rep(1, length(GdObject)) else disjointBins(GdObject@stackRanges) GdObject@stacks <- bins ranges(GdObject)$stack <- bins[match(ranges(GdObject)$groupid, names(GdObject@stackRanges))] } return(GdObject) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## In some cases we don't need a range but rather a single position. Most of the time this is simply taking the geometric ## mean of the range. If numeric values are associated to positions we have to be able to extract those as well. ##---------------------------------------------------------------------------------------------------------------------------- ## The geometric mean of annotation ranges setMethod("position", signature("RangeTrack"), definition=function(GdObject, from=NULL, to=NULL, sort=FALSE, ...) { if(!is.null(from) && !is.null(to)) GdObject <- subset(GdObject, from=from, to=to, sort=sort, ...) pos <- if(length(GdObject)) rowMeans(cbind(start(GdObject), end(GdObject))) else numeric() return(pos) }) setMethod("position", signature("IdeogramTrack"), definition=function(GdObject, ...) NULL) ## The numeric values of data tracks setMethod("score", signature("DataTrack"), function(x, from=NULL, to=NULL, sort=FALSE, transformation=TRUE, ...) { if(!is.null(from) && !is.null(to)) x <- subset(x, from=from, to=to, sort=sort, ...) vals <- values(x) ## apply data transformation if one is set up trans <- .dpOrDefault(x, "transformation") if(is.list(trans)) trans <- trans[[1]] if(transformation && !is.null(trans)) { if(!is.function(trans) || length(formals(trans))!=1L) stop("gpar 'transformation' must be a function with a single argument") test <- trans(vals) if(!is.numeric(test) || !is.matrix(test) || !all(dim(test) == dim(vals))) stop("The function in gpar 'transformation' results in invalid output.\n", "It has to return a numeric matrix with the same dimensions as the input data.") vals <- test } return(vals) }) ##---------------------------------------------------------------------------------------------------------------------------- ## Before starting of the plotting operation there are a bunch of housekeeping task that should be performed on each ## track, and the mileage may vary between track types, hence we add a layer of abstraction here by using a method. ## Available arguments are: ## o GdObject: the input track object ## o chromosome: the currently active chromosome which may have to be set for a RangeTrack or a SequenceTrack object ## o ...: additional arguments that are considered to be display parameters ##---------------------------------------------------------------------------------------------------------------------------- ## For all track types we want to update the display parameters setMethod("consolidateTrack", signature(GdObject="GdObject"), function(GdObject, alpha, ...) { pars <- list(...) pars <- pars[names(pars)!=""] pars[[".__hasAlphaSupport"]] <- alpha displayPars(GdObject) <- pars return(GdObject) }) ## For RangeTracks and SequenceTracks we want to set the chromosome setMethod("consolidateTrack", signature(GdObject="RangeTrack"), function(GdObject, chromosome, ...) { if(!is.null(chromosome)) chromosome(GdObject) <- chromosome GdObject <- callNextMethod(GdObject, ...) return(GdObject) }) setMethod("consolidateTrack", signature(GdObject="SequenceTrack"), function(GdObject, chromosome, ...) { if(!is.null(chromosome)) chromosome(GdObject) <- chromosome GdObject <- callNextMethod(GdObject, ...) return(GdObject) }) ## For StackedTracks we want to set the stacking (which could have been passed in as a display parameter) setMethod("consolidateTrack", signature(GdObject="StackedTrack"), function(GdObject, ...) { GdObject <- callNextMethod() st <- .dpOrDefault(GdObject, "stacking") if(!is.null(st)) stacking(GdObject) <- st return(GdObject) }) ## For AnnotationTracks we need to determine whether there is group label annotation or not, and we add this ## information as the internal display parameter '.__hasAnno'. We also precompute the grouped ranges together ## with optional labels in order to determine the correct plotting range later. setMethod("consolidateTrack", signature(GdObject="AnnotationTrack"), function(GdObject, hasAxis=FALSE, hasTitle=.dpOrDefault(GdObject, "showTitle", TRUE), title.width=NULL, ...) { GdObject <- callNextMethod(GdObject, ...) if(length(GdObject)){ ## ids are shown if either set by the showId parameter, or through the use of the transcriptAnnotation or ## groupAnnotation parameters ids <- identifier(GdObject) sid <- .dpOrDefault(GdObject, "showId") ta <- if(is(GdObject, "GeneRegionTrack")) .dpOrDefault(GdObject, "transcriptAnnotation") else .dpOrDefault(GdObject, "groupAnnotation") sid <- if(is.null(sid)) !is.null(ta) && ta != "none" else sid hasAnno <- sid && !all(ids=="") ## element ids are shown if either the showFeatureId or showExonId parameters are TRUE, or if featureAnnotation ## or exonAnnotation is set sfid <- if(is(GdObject, "GeneRegionTrack")) .dpOrDefault(GdObject, "showExonId") else .dpOrDefault(GdObject, "showFeatureId") fa <- if(is(GdObject, "GeneRegionTrack")) .dpOrDefault(GdObject, "exonAnnotation") else .dpOrDefault(GdObject, "featureAnnotation") sfid <- if(is.null(sfid)) !is.null(fa) && fa != "none" else sfid displayPars(GdObject) <- list(".__hasAnno"=hasAnno, showId=sid, showFeatureId=sfid, showExonId=sfid) GdObject <- .computeGroupRange(GdObject, hasAxis=hasAxis, hasTitle=hasTitle, title.width=title.width) }else{ displayPars(GdObject) <- list(".__hasAnno"=FALSE, showId=FALSE, showFeatureId=FALSE, showExonId=FALSE) } return(GdObject) }) ## For a HighlightTrack we apply the method on each of the subtracks in the trackList slot setMethod("consolidateTrack", signature(GdObject="HighlightTrack"), function(GdObject, chromosome, ...) { GdObject@trackList <- lapply(GdObject@trackList, consolidateTrack, chromosome=chromosome, ...) return(GdObject) }) setMethod("consolidateTrack", signature(GdObject="OverlayTrack"), function(GdObject, chromosome, ...) { GdObject@trackList <- lapply(GdObject@trackList, consolidateTrack, chromosome=chromosome, ...) return(GdObject) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## There is a natural limit of what can be plotted as individual features caused by the maximum resolution of the device. ## Essentially no object can be smaller than the equivalent of a single pixel on the screen or whatever a pixel corresponds ## to on other devices. ## Thus we need to adapt the all objects in the track to the current resolution. Things that are closer than a certain limit ## distance can be collapsed (if that is desired), things that are smaller than 1 pixel can be blown up to a minimum size. ## All collapseTrack methods should always return a GdObject instance of similar type as the input to allow us to keep the ## collpasing step optional and for all the downstream plotting operations to still work. The internal (mostly the GRanges) ## objects can be modified to whatever is desired. Please note that this method is called after the drawing viewport has been ## pushed, and hence all the coordinate systems are already in place. ## Available arguments are: ## o GdObject: the input AnnotationTrack or GeneRegionTrack track object ## o min.width: the minimum width in pixel, everything that's smaller will be expanded to this size. ## o min.distance: the minimum distance between two features in pixels below which to start collapsing track items. ## o collapse: logical, collapse overlapping items into a single meta-item. ## o diff: the equivalent of 1 pixel in the native coordinate system. ## o xrange: the data range on the x axis. Can be used for some preliminary subsetting to speed things up ##---------------------------------------------------------------------------------------------------------------------------- ## A slightly quicker function to compute overlaps between two GRanges objects .myFindOverlaps <- function(gr1, gr2) { gr1 <- sort(gr1) gr2 <- sort(gr2) gr1 <- split(gr1, seqnames(gr1)) gr2 <-split(gr2, seqnames(gr2)) queryHits(findOverlaps(ranges(gr1), ranges(gr2))) } ## Find all elements in a GRanges object 'grange' with distance smaller than 'minXDist' and merge them along with their additional ## metadata columns. 'elements' is a frequency table of items per group, and it is needed to figure out whether all items of a given ## group have been merged. 'GdObject' is the input track object from which certain information has to be extracted. The output of this ## function is a list with elements ## o range: the updated GRanges object ## o needsRestacking: logical flag indicating whether stacks have to be recomputed ## o split: the original merged annotation (need to work on this, currently not used) ## o merged: logical vector indicating which of the elements in 'range' constitute fully merged groups .collapseAnnotation <- function(grange, minXDist, elements, GdObject, offset=0) { needsRestacking <- TRUE annoSplit <- merged <- NULL anno <- as.data.frame(grange) for(i in colnames(anno)) if(is.factor(anno[,i])) anno[,i] <- as.character(anno[,i]) cols <- c("strand", "density", "gdensity", "feature", "id", "start", "end", if(is(GdObject, "GeneRegionTrack")) c("gene", "exon", "transcript", "symbol", "rank") else "group") missing <- which(!cols %in% colnames(anno)) for(i in missing) anno[,cols[missing]] <- if(cols[i]=="density") 1 else NA rRed <- if(length(grange)>1) reduce(grange, min.gapwidth=minXDist, with.revmap=TRUE) else grange if(length(rRed) < length(grange)) { ## Some of the items have to be merged and we need to make sure that the additional annotation data that comes with it ## is processed in a sane way. needsRestacking <- TRUE mapping <- rep(seq_along(rRed$revmap), elementNROWS(rRed$revmap)) ## We start by finding the items that have not been reduced identical <- mapping %in% which(table(mapping)==1) newVals <- anno[identical, cols] ## Here we hijack the seqnames column to indicate whether the whole group has been merged if(nrow(newVals)){ newVals$seqnames <- elements[as.character(anno[identical,"seqnames"])]==1 newVals$gdensity <- ifelse(elements[as.character(anno[identical,"seqnames"])]==1, 1, NA) } ## Now find out which original items have been merged grange <- grange[!identical] rRed <- rRed[-(mapping[identical])] index <- mapping[!identical] annoSplit <- split(anno[!identical,], index) cid <- function(j) sprintf("[Cluster_%i] ", j+offset) ## FIXME: We could speed this up by running it in C newVals <- rbind(newVals, as.data.frame(t(sapply(seq_along(annoSplit), function(i){ x <- annoSplit[[i]] if(is(GdObject, "GeneRegionTrack")){ c(strand=ifelse(length(unique(x[,"strand"]))==1, as.character(x[1,"strand"]), "*"), density=sum(as.integer(x[,"density"])), gdensity=ifelse(is.na(head(x[,"gdensity"], 1)), 1, sum(as.integer(x[,"gdensity"]))), feature=ifelse(length(unique(x[,"feature"]))==1, as.character(x[1,"feature"]), "composite"), id=ifelse(length(unique(x[,"id"]))==1, as.character(x[1,"id"]), cid(i)), start=min(x[,"start"]), end=max(x[,"end"]), gene=ifelse(length(unique(x[,"gene"]))==1, as.character(x[1,"gene"]), cid(i)), exon=ifelse(length(unique(x[,"exon"]))==1, as.character(x[1,"exon"]), cid(i)), transcript=ifelse(length(unique(x[,"transcript"]))==1, as.character(x[1,"transcript"]), cid(i)), symbol=ifelse(length(unique(x[,"symbol"]))==1, as.character(x[1,"symbol"]), cid(i)), rank=min(as.integer(x[,"rank"])), seqnames=as.vector(nrow(x)==elements[x[1,"seqnames"]])) }else{ c(strand=ifelse(length(unique(x[,"strand"]))==1, as.character(x[1,"strand"]), "*"), density=sum(as.integer(x[,"density"])), gdensity=ifelse(is.na(head(x[,"gdensity"], 1)) , 1, sum(as.integer(x[,"gdensity"]))), feature=ifelse(length(unique(x[,"feature"]))==1, as.character(x[1,"feature"]), "composite"), id=ifelse(length(unique(x[,"id"]))==1, as.character(x[1,"id"]), cid(i)), start=min(x[,"start"]), end=max(x[,"end"]), group=ifelse(length(unique(x[,"group"]))==1, as.character(x[1,"group"]), cid(i)), seqnames=as.vector(nrow(x)==elements[x[1,"seqnames"]])) } })), stringsAsFactors=FALSE)) merged <- as.logical(newVals$seqnames) grange <- GRanges(seqnames=chromosome(GdObject), strand=newVals[, "strand"], ranges=IRanges(start=as.integer(newVals[, "start"]), end=as.integer(newVals[, "end"]))) cnMatch <- match(c(colnames(values(GdObject)), "gdensity"), colnames(newVals)) mcols(grange) <- if(any(is.na(cnMatch))) newVals[, setdiff(colnames(newVals), c("strand", "start", "end", "seqnames"))] else newVals[, cnMatch] }else{ grange2 <- GRanges(seqnames=chromosome(GdObject), strand=strand(grange), ranges=ranges(grange)) mcols(grange2) <- mcols(grange) grange <- grange2 } return(list(range=grange, needsRestacking=needsRestacking, split=annoSplit, merged=merged, offset=length(annoSplit))) } ## For AnnotationTracks we need to collapse the all regions along with the additional annotation. ## For GeneRegionTracks we essentially need to do the same thing as for AnnotationTracks, however the additional annotation columns ## are quite different. We do this in multiple turn with increasing levels of complexity: ## 1.) merge all individual items within a group that can no longer be separated ## 2.) merge overlapping groups with just a single remaining item (optional, if mergeGroups==TRUE) setMethod("collapseTrack", signature(GdObject="AnnotationTrack"), function(GdObject, diff=.pxResolution(coord="x"), xrange) { ## We first add the original unmodified GdObject as a display parameter to be able to reference back if we ever need to displayPars(GdObject) <- list(".__OriginalGdObject"=.deepCopyPars(GdObject)) collapse <- .dpOrDefault(GdObject, "collapse", TRUE) min.width <- .dpOrDefault(GdObject, "min.width", 2) min.distance <- .dpOrDefault(GdObject, "min.distance", 2) minXDist <- max(0, ceiling(min.distance*diff)) r <- ranges(GdObject) ## Compute native coordinate equivalent to 1 pixel and resize rNew <- .resize(r, min.width, diff) needsRestacking <- any(r!=rNew) r <- rNew ## Collapse all items within a group to a single meta-item (if collapseTranscripts is set) if(is(GdObject, "GeneRegionTrack")){ ctrans <- .dpOrDefault(GdObject, "collapseTranscripts", FALSE) if(is.logical(ctrans) && ctrans) ctrans <- "gene" switch(ctrans, "gene"={ newVals <- unlist(endoapply(split(values(r), paste(gene(GdObject), strand(GdObject))), head, 1)) newVals$exon <- NA newVals$feature <- "merged" newVals$transcript <- newVals$gene r <- unlist(range(split(r, gene(GdObject)))) mcols(r) <- newVals GdObject@range <- r }, "longest"={ r <- unlist(endoapply(split(r, gene(GdObject)), function(x){ xs <- split(x, x$transcript) xs[[which.max(sapply(xs, function(y) abs(diff(as.numeric(as.data.frame(ranges(range(y)))[,c("start", "end")])))))]] })) GdObject@range <- r }, "shortest"={ r <- unlist(endoapply(split(r, gene(GdObject)), function(x){ xs <- split(x, x$transcript) xs[[which.min(sapply(xs, function(y) abs(diff(as.numeric(as.data.frame(ranges(range(y)))[,c("start", "end")])))))]] })) GdObject@range <- r }, "meta"={ newVals <- unlist(endoapply(split(values(r), paste(gene(GdObject), strand(GdObject))), head, 1)) newVals$feature <- "merged" newVals$transcript <- newVals$gene rtmp <- reduce(split(r, paste(gene(GdObject), strand(GdObject)))) newVals <- newVals[rep(seq_along(rtmp), elementNROWS(rtmp)),] newVals$exon <- paste("merged_exon_", unlist(lapply(elementNROWS(rtmp), function(x) seq(1, x)), use.names=FALSE), sep="") r <- unlist(rtmp) mcols(r) <- newVals GdObject@range <- r }) } ## Collapse overlapping ranges (less than minXDist space between them) and process the annotation data if(collapse) { ## Merge all items in those groups for which no individual items can be separated elements <- table(group(GdObject)) rr <- GRanges(seqnames=as.character(group(GdObject)), ranges=IRanges(start=start(r), end=end(r)), strand=strand(r)) mcols(rr) <- mcols(r) rr <- sort(unique(rr)) mergedAnn <- .collapseAnnotation(rr, minXDist, elements, GdObject) needsRestacking <- needsRestacking || mergedAnn$needsRestacking ## Now we take a look whether there are any groups that could be merged (if mergeGroups is TRUE) if(.dpOrDefault(GdObject, "mergeGroups", FALSE) && any(mergedAnn$merged)){ rr <- sort(mergedAnn$range[mergedAnn$merged]) strand(rr) <- "*" mergedAnn2 <- .collapseAnnotation(rr, minXDist, elements, GdObject, mergedAnn$offset) needsRestacking <- needsRestacking || mergedAnn2$needsRestacking mergedAnn$range <- c(mergedAnn$range[!mergedAnn$merged], mergedAnn2$range) } r <- mergedAnn$range } ## Reconstuct the track object and return GdObject@range <- r ##if(needsRestacking) GdObject <- setStacks(GdObject) return(GdObject)}) .aggregator <- function(GdObject) { agFun <- .dpOrDefault(GdObject, "aggregation", "mean") if(is.list(agFun)) agFun <- agFun[[1]] fun <- if(is.character(agFun)) { switch(agFun, "mean"=rowMeans, "sum"=rowSums, "median"=rowMedians, "extreme"=function(x) apply(x, 1, .extreme), "min"=rowMin, "max"=rowMax, rowMeans) } else { if(is.function(agFun)){ function(x) apply(x, 1, agFun) }else stop("display parameter 'aggregation' has to be a function or a character", "scalar in c('mean', 'median', 'sum', 'extreme')") } return(fun) } ## For DataTracks we want to collapse data values using the aggregation function provided by calling .aggregator(). ## In addition values can be aggregated over fixed window slices when gpar 'window' is not NULL, and using a sliding ## window approach when 'window' == -1 setMethod("collapseTrack", signature(GdObject="DataTrack"), function(GdObject, diff=.pxResolution(coord="x"), xrange) { if(!length(GdObject)) return(GdObject) ## first the data transformation if needed values(GdObject) <- score(GdObject) collapse <- .dpOrDefault(GdObject, "collapse", FALSE) min.width <- .dpOrDefault(GdObject, "min.width", 2) min.distance <- max(0, .dpOrDefault(GdObject, "min.distance", 0)) ## When an averaging window has been set, split the data up into these average chunks window <- .dpOrDefault(GdObject, "window") windowSize <- .dpOrDefault(GdObject, "windowSize") if(!is.null(window) || collapse) GdObject <- GdObject[,order(range(GdObject))] r <- ranges(GdObject) drange <- c(floor(xrange[1]), ceiling(xrange[2])) if(!is.null(window)) { rr <- if(is(r, "GRanges")) ranges(r) else r fw <- FALSE if(window=="auto") window <- min(ncol(values(GdObject)), 1000, ceiling(width(range(rr))/(min.width*diff))) if(window=="fixed"){ fw <- TRUE window <- 100 } if(!is.numeric(window) || length(window)!=1L) stop("gpar 'window' must be a numeric scalar") window <- as.integer(window) sc <- values(GdObject) agFun <- .aggregator(GdObject) if(window==1) { sc <- matrix(agFun(sc), ncol=1) rtmp <- IRanges(start=max(1,drange[1]), end=max(1, drange[2]-1)) r <- if(is(r, "GRanges")) GRanges(seqnames=seqnames(r)[1], ranges=rtmp) else rtmp } else if(window<1){ if(is.null(windowSize)) windowSize <- (max(GdObject)-min(GdObject))/100 if(windowSize %% 2 !=1) windowSize <- windowSize+1 rm <- vector("integer", width(range(range(GdObject)))) ind <- unlist(mapply(function(x, y) x:y, start(GdObject), end(GdObject)))-min(GdObject)+1 rm[ind] <- rep(sc[1,], width(GdObject)) runwin <- suppressWarnings(runmean(Rle(as.numeric(rm)), k=windowSize, endrule="constant")) seqSel <- findRun(as.integer(position(GdObject))-min(GdObject)+1, runwin) newDat <- matrix(runValue(runwin)[seqSel], nrow=1) if(nrow(sc)>1) { newDat <- rbind(newDat, matrix(sapply(2:nrow(sc), function(x) { rm[ind] <- rep(sc[x,], width(GdObject)) suppressWarnings(runValue(runmean(Rle(as.numeric(rm)), k=windowSize, endrule="constant", na.rm=TRUE)))[seqSel]}), nrow=nrow(sc)-1, byrow=TRUE)) } sc <- newDat } else { if(!is.null(window) && window > diff(drange)) window <- diff(drange) if(!fw || is.null(windowSize)){ windowSize <- diff(drange) %/% window }else{ window <- max(1, diff(drange) %/% windowSize) } remain <- (diff(drange) - (window * windowSize))/2 ir <- IRanges(start=seq(from=drange[1]+remain, to=drange[2]-remain-windowSize, length.out=window), width=windowSize) if(remain>0) ir <- c(IRanges(start=drange[1], width=ceiling(remain)), ir, IRanges(start=drange[2]-ceiling(remain), width=ceiling(remain))) ol <- as.matrix(findOverlaps(ir, rr)) scn <- sapply(split(ol[,2], ol[,1]), function(i) agFun(sc[,i,drop=FALSE]), USE.NAMES=FALSE) if(is.null(dim(scn))) scn <- matrix(scn, nrow=nrow(values(GdObject)), dimnames=list(NULL, as.character(unique(ol[,1])))) sc <- matrix(NA, ncol=length(ir), nrow=nrow(scn)) sc[, as.integer(colnames(scn))] <- scn r <- if(is(r, "GRanges")) GRanges(seqnames=chromosome(GdObject), ranges=ir, strand=unique(as.character(strand(GdObject)))) else ir } GdObject@range <- r GdObject@data <- sc } ## If groups need to be averaged we have to do it here groups <- .dpOrDefault(GdObject, "groups") if(!is.null(groups) && .dpOrDefault(GdObject, "aggregateGroups", FALSE)){ if(!is.factor(groups)) groups <- factor(groups) agFun <- .aggregator(GdObject) dat <- values(GdObject) rownames(dat) <- groups datNew <- matrix(t(sapply(levels(groups), function(x) agFun(t(dat[groups==x,,drop=FALSE])), USE.NAMES=FALSE)), nrow=nlevels(groups)) GdObject@data <- datNew displayPars(GdObject) <- list(groups=levels(groups)) } ## Compute native coordinate equivalent to 1 pixel and resize r <- .resize(r, min.width, diff) ## Collapse overlapping ranges (less than minXDist space between them) including the associated attributes using ## "|" as separator. For both "strand" and "feature" we take the first available entry, which is not optimal but ## seems to be the sanest thing to do here... if(collapse) { minXDist <- min.distance*diff rr <- if(is(r, "GRanges")) ranges(r) else r if(minXDist<1) { ## We have to fake smaller ranges because reduce will merge also neigbouring ranges width(rr) <- width(rr)-1 rr <- reduce(rr, min.gapwidth=minXDist) width(rr) <- width(rr)+1 } else { rr <- reduce(r, min.gapwidth=minXDist) } sc <- values(GdObject) if(length(rr)==1){ r <- GRanges(seqnames=1, strand=strand(GdObject)[1], ranges=rr) GdObject@range <- r GdObject@data <- matrix(rowMeans(sc, na.rm=TRUE), ncol=1) } else if(length(rr) < length(r)){ startInd <- sort(unique(sapply(start(rr), function(x) which(start(r)==x)))) st <- strand(GdObject) startInd <- if(tail(startInd,1) == length(r)) c(startInd, length(r)+1) else c(startInd, length(r)) vsplit <- split(t(as.data.frame(sc, stringsAsFactors=FALSE)), cut(seq_len(length(r)), startInd, iclude.lowest=TRUE, right=FALSE)) agFun <- .dpOrDefault(GdObject, "aggregation", "mean") if(is.list(agFun)) agFun <- agFun[[1]] newScore <- if(is.character(agFun)){ switch(agFun, "mean"=sapply(vsplit, function(x) rowMeans(matrix(x, nrow=nrow(sc), byrow=TRUE), na.rm=TRUE), USE.NAMES=FALSE), "sum"=sapply(vsplit, function(x) rowSums(matrix(x, nrow=nrow(sc), byrow=TRUE), na.rm=TRUE), USE.NAMES=FALSE), "median"=sapply(vsplit, function(x) rowMedians(matrix(x, nrow=nrow(sc), byrow=TRUE), na.rm=TRUE), USE.NAMES=FALSE), sapply(vsplit, function(x) rowMeans(matrix(x, nrow=nrow(sc), byrow=TRUE), na.rm=TRUE), USE.NAMES=FALSE)) } else { if(is.function(agFun)){ sapply(vsplit, function(x) apply(matrix(x, nrow=nrow(sc), byrow=TRUE), 1, function(y) agFun(y)[1]), USE.NAMES=FALSE) } else stop("display parameter 'aggregation' has to be a function or a character ", "scalar in c('mean', 'median', 'sum')") } r <- GRanges(seqnames=seq_len(length(rr)), strand=st, ranges=rr) GdObject@data <- newScore GdObject@range <- r } } ## Reconstruct the RangedData object and return GdObject@range <- r return(GdObject) }) ## For a GenomeAxisTrack all we need to do is collapse the optional ranges setMethod("collapseTrack", signature(GdObject="GenomeAxisTrack"), function(GdObject, min.width=1, min.distance=0, collapse=TRUE, diff=.pxResolution(coord="x"), xrange) { ## Collapse overlapping ranges (less than minXDist space between them) including the associated attributes using ## "|" as separator. For both "strand" and "feature" we take the first available entry, which is not optimal but ## seems to be the sanest thing to do here... if(collapse) { GdObject <- GdObject[order(range(GdObject))] r <- ranges(GdObject) minXDist <- min.distance*diff r <- reduce(r, min.gapwidth=minXDist) } r <- .resize(r, min.width, diff) GdObject@range <- r return(GdObject)}) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Truncate a GdObject and sort by coordinates if necessary. ##---------------------------------------------------------------------------------------------------------------------------- ## The default is not to clip at all setMethod("subset", signature(x="GdObject"), function(x, ...) x) ## For normal ranges we clip everything outside of the boundaries (keeping one extra item left and right ## in order to assure continuation) setMethod("subset", signature(x="RangeTrack"), function(x, from=NULL, to=NULL, sort=FALSE, drop=TRUE, use.defaults=TRUE, ...){ ## Not needed anymore... ## Subset to a single chromosome first if(drop){ csel <- seqnames(x) != chromosome(x) if(any(csel)) x <- x[,!csel] } if(!length(x)) return(x) ranges <- if(use.defaults) .defaultRange(x, from=from, to=to) else c(from=ifelse(is.null(from), -Inf, from), to=ifelse(is.null(to), Inf, to)) lsel <- end(x) < ranges["from"] if(any(lsel)) lsel[max(0, max(which(lsel))-1)] <- FALSE rsel <- start(x) > ranges["to"] if(any(rsel)) rsel[min(length(x), min(which(rsel))+1)] <- FALSE if(any(lsel) || any(rsel)) x <- x[!(lsel | rsel),] if(sort) x <- x[order(range(x)),] return(x) }) ## For highlight track we just apply the method for all the subtracks in the tracklList and finally the RangeTrack method setMethod("subset", signature(x="HighlightTrack"), function(x, ...){ x@trackList <- lapply(x@trackList, subset, ...) x <- callNextMethod() return(x) }) setMethod("subset", signature(x="OverlayTrack"), function(x, ...){ x@trackList <- lapply(x@trackList, subset, ...) return(x) }) ## For DataTracks we cut exactly, and also reduce to the current chromosome unless told explicitely not to setMethod("subset", signature(x="DataTrack"), function(x, from=NULL, to=NULL, sort=FALSE, drop=TRUE, use.defaults=TRUE, ...){ ## Subset to a single chromosome first if(drop){ csel <- seqnames(x) != chromosome(x) if(any(csel)) x <- x[,!csel] } if(!length(x)) return(x) ranges <- if(use.defaults) .defaultRange(x, from=from, to=to) else c(from=ifelse(is.null(from), -Inf, from), to=ifelse(is.null(to), Inf, to)) x <- x[,start(x)>=ranges["from"] & end(x)<=ranges["to"]] if(sort) x <- x[,order(range(x))] return(x) }) ## ReferenceDataTracks need to stream the data from file and then pass the results on to the next method setMethod("subset", signature(x="ReferenceDataTrack"), function(x, from, to, chromosome, ...){ ## We only need to reach out into the referenced file once if the range is already contained in the object if(missing(from) || is.null(from) || missing(to) || is.null(to)) stop("Need both start and end location to subset a ReferenceDataTrack") if(missing(chromosome) || is.null(chromosome)) chromosome <- Gviz::chromosome(x) subRegion <- GRanges(seqnames=chromosome[1], ranges=IRanges(start=from, end=to)) if(length(ranges(x))==0 || !all(overlapsAny(ranges(x),subRegion))){ vals <- x@stream(x@reference, subRegion) x@range <- vals mcols(x@range) <- NULL x@data <- .prepareDtData(if(ncol(values(vals))) as.data.frame(values(vals)) else matrix(nrow=0, ncol=0), length(vals)) chromosome(x) <- chromosome[1] } return(callNextMethod(x=x, from=from, to=to, drop=FALSE, ...)) }) ## Only recompute the stacks here setMethod("subset", signature(x="StackedTrack"), function(x, from=NULL, to=NULL, sort=FALSE, stacks=FALSE, ...){ x <- callNextMethod(x=x, from=from, to=to, sort=sort) if(stacks) x <- setStacks(x) return(x) }) ## In order to keep the grouping information for track regions in the clipped areas we have to ## keep all group elements that overlap with the range. We still want to record the requested ## ranges in the internal '.__plottingRange' display parameter. setMethod("subset", signature(x="AnnotationTrack"), function(x, from=NULL, to=NULL, sort=FALSE, stacks=FALSE, use.defaults=TRUE, ...){ ## Subset to a single chromosome first lx <- length(x) csel <- seqnames(x) != chromosome(x) if(any(csel)) x <- x[!csel] if(length(x)) { ## Nothing to do if everything is within the range granges <- unlist(range(split(ranges(x), group(x)))) ranges <- if(use.defaults) .defaultRange(x, from=from, to=to) else c(from=ifelse(is.null(from), min(start(granges))-1, from), to=ifelse(is.null(to), max(end(granges))+1, to)) if(!(any(end(x) < ranges["from"] | start(x) > ranges["to"]))){ if(stacks) x <- setStacks(x) return(x) } ## Now remove everything except for the overlapping groups by first subselecting all groups in the range... gsel <- names(granges)[subjectHits(findOverlaps(GRanges(seqnames=chromosome(x), ranges=IRanges(min(ranges), max(ranges))), granges))] x <- x[group(x) %in% gsel] if(sort) x <- x[order(range(x)),] if(stacks) x <- setStacks(x) displayPars(x) <- list(".__plottingRange"=ranges) } if(length(x) != lx) x <- .computeGroupRange(x) return(x) }) ## ReferenceDataTracks need to stream the data from file and then pass the results on to the next method setMethod("subset", signature(x="ReferenceAnnotationTrack"), function(x, from, to, chromosome, ...){ ## We only need to reach out into the referenced file once if the range is already contained in the object if(missing(from) || is.null(from) || missing(to) || is.null(to)) stop("Need both start and end location to subset a ReferenceAnnotationTrack") if(missing(chromosome) || is.null(chromosome)) chromosome <- Gviz::chromosome(x) subRegion <- GRanges(seqnames=chromosome[1], ranges=IRanges(start=from, end=to)) if(length(ranges(x))==0 || all(overlapsAny(ranges(x),subRegion))){ cMap <- .resolveColMapping(x@stream(x@reference, subRegion), x@args, x@mapping) x@range <- .buildRange(cMap$data, args=cMap$args, defaults=x@defaults, trackType="AnnotationTrack") chromosome(x) <- chromosome[1] } return(callNextMethod(x=x, from=from, to=to, drop=FALSE, ...)) }) ## FIXME: Still needs to be implemented setMethod("subset", signature(x="ReferenceGeneRegionTrack"), function(x, ...){ warning("ReferenceGeneRegionTrack objects are not supported yet.") return(callNextMethod()) }) setMethod("subset", signature(x="BiomartGeneRegionTrack"), function(x, from, to, chromosome, use.defaults=TRUE, ...){ granges <- unlist(range(split(ranges(x), group(x)))) ranges <- if(use.defaults) .defaultRange(x, from=from, to=to) else c(from=ifelse(is.null(from), min(start(granges))-1, from), to=ifelse(is.null(to), max(end(granges))+1, to)) if(ranges["from"] < x@start || ranges["to"] > x@end){ x@start <- ranges["from"] - 10000 x@end <- ranges["to"] + 10000 ranges(x) <- .cacheMartData(x, .chrName(chromosome)) } return(callNextMethod(x=x, from=ranges["from"], to=ranges["to"], use.defaults=FALSE, ...)) }) ## For the axis track we may have to clip the highlight ranges on the axis. setMethod("subset", signature(x="GenomeAxisTrack"), function(x, from=NULL, to=NULL, sort=FALSE, ...){ if(!length(x)) return(x) ranges <- .defaultRange(x, from=from, to=to) lsel <- end(x) < ranges["from"] rsel <- start(x) > ranges["to"] x <- x[!(lsel | rsel),] if(sort) x <- x[order(range(x)),] return(x) }) ## If the object only stores coverage we subset that, otherwise we can use the RangeTrack method setMethod("subset", signature(x="AlignedReadTrack"), function(x, from=NULL, to=NULL, sort=FALSE, stacks=FALSE, ...){ if(x@coverageOnly) { if(is.null(from)) from <- min(unlist(lapply(x@coverage, function(y) if(length(y)) min(start(y))))) if(is.null(to)) to <- max(unlist(lapply(x@coverage, function(y) if(length(y)) max(start(y))))) x@coverage <- lapply(x@coverage, function(y){runValue(y)[end(y)to] <- 0; y}) x@coverage <- lapply(x@coverage, function(y){ if (length(y) < to) y <- c(y, Rle(0, to-length(y))); y}) ## ##from <- min(unlist(lapply(x@coverage, function(y) if (length(y)) head(start(y), 2)[2]))) if (max(unlist(lapply(x@coverage, function(y) {length(runLength(y)[runValue(y)!=0])})))) { from <- min(unlist(lapply(x@coverage, function(y) if(length(y)) head(start(y)[runValue(y)!=0],1)))) to <- max(unlist(lapply(x@coverage, function(y) if(length(y)) tail(end(y),2)[1]))) } x@range <- GRanges(ranges=IRanges(start=from, end=to), strand=names(x@coverage), seqnames=x@chromosome) }else{ x <- callNextMethod(x=x, from=from, to=to, sort=sort, stacks=stacks) } return(x) }) ## AlignmentTracks can be subset by using the information in the stackRanges slot, but for the actual reads we need to make sure that ## we keep all the bits that belong to a given group. We still want to record the requested ranges in the internal '.__plottingRange' ## display parameter. setMethod("subset", signature(x="AlignmentsTrack"), function(x, from=NULL, to=NULL, stacks=FALSE, use.defaults=TRUE, ...){ ## Subset to a single chromosome first lx <- length(x) csel <- seqnames(x) != chromosome(x) if(any(csel)) x <- x[!csel] if(length(x)){ ## Nothing to do if everything is within the range, otherwise we subset the stackRanges and keep all group items ranges <- if(use.defaults) .defaultRange(x, from=from, to=to) else c(from=ifelse(is.null(from), min(start(x@stackRanges))-1, from), to=ifelse(is.null(to), max(end(x@stackRanges))+1, to)) displayPars(x) <- list(".__plottingRange"=ranges) sr <- subsetByOverlaps(x@stackRanges, GRanges(seqnames=chromosome(x)[1], ranges=IRanges(start=ranges["from"], end=ranges["to"]))) if(length(sr) < length(x@stackRanges)){ x@stackRanges <- sr x@range <- x@range[x@range$groupid %in% names(sr)] if(stacks) x <- setStacks(x) } } return(x) }) ## ReferenceAlignmentsTracks need to stream the data from file and then pass the results on to the next method setMethod("subset", signature(x="ReferenceAlignmentsTrack"), function(x, from, to, chromosome, ...){ ## We only need to reach out into the referenced file once if the range is already contained in the object if(missing(from) || is.null(from) || missing(to) || is.null(to)) stop("Need both start and end location to subset a ReferenceAnnotationTrack") if(missing(chromosome) || is.null(chromosome)){ chromosome <- Gviz::chromosome(x) }else{ chromosome <- .chrName(chromosome) } subRegion <- GRanges(seqnames=chromosome[1], ranges=IRanges(start=from, end=to)) oldRange <- .dpOrDefault(x, ".__plottingRange") isIn <- length(ranges(x)) != 0 && !is.null(oldRange) && ranges(subRegion) %within% IRanges(oldRange["from"], oldRange["to"]) if(!isIn){ cMap <- .resolveColMapping(x@stream(x@reference, subRegion), x@args, x@mapping) seqs <- cMap$data$seq cMap$data$seq <- NULL range <- .computeAlignments(.buildRange(cMap$data, args=cMap$args, defaults=x@defaults, trackType="AnnotationTrack")) ranges(x) <- range$range x@stackRanges <- range$stackRanges x@stacks <- range$stacks x@sequences <- seqs }else{ x@sequences <- subseq(x@sequences, start=from-(oldRange["from"]-1), width=to-from+1) } chromosome(x) <- chromosome[1] return(callNextMethod(x=x, from=from, to=to, drop=FALSE, ...)) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## The indivdual bits and pieces of a Gviz plot are all drawn by separate renderers. Currently, those are a y-axis, ## a grid, and the actual track panel. ##---------------------------------------------------------------------------------------------------------------------------- ## For certain GdObject subclasses we may want to draw a y-axis. For others an axis is meaningless, and the default function ## will return NULL without plotting anything. setMethod("drawAxis", signature(GdObject="GdObject"), function(GdObject, ...) return(NULL)) setMethod("drawAxis", signature(GdObject="DataTrack"), function(GdObject, ...) { if(as.logical(.dpOrDefault(GdObject, "legend", FALSE)) && !is.null(.dpOrDefault(GdObject, ".__groupLevels"))){ pushViewport(viewport(y=1, height=unit(1, "npc") - unit(.dpOrDefault(GdObject, ".__verticalSpace"), "inches"), just=c(0.5, 1))) on.exit(popViewport(1)) } type <- match.arg(.dpOrDefault(GdObject, "type", "p"), .PLOT_TYPES, several.ok=TRUE) isOnlyHoriz <- length(setdiff(type, "horizon")) == 0 if(!isOnlyHoriz && .dpOrDefault(GdObject, "showAxis", TRUE)) { callNextMethod() } else { if(.dpOrDefault(GdObject, "showSampleNames", FALSE)){ groups <- .dpOrDefault(GdObject, "groups") sn <- if(is.null(groups)) rownames(values(GdObject)) else rev(unlist(split(rownames(values(GdObject)), factor(groups)))) cex.sn <- .dpOrDefault(GdObject, "cex.sampleNames", .dpOrDefault(GdObject, "cex.axis", 1)) col.cn <- .dpOrDefault(GdObject, "col.sampleNames", "white") wd <- max(as.numeric(convertWidth(stringWidth(sn) + unit(10, "points"), "npc"))) * cex.sn samNames <- viewport(x=1, width=wd, just=1, yscale=c(-0.05, 1.05)) pushViewport(samNames) nr <- nrow(values(GdObject)) if(nr > 1){ yy <- head(seq(0.05, 0.95, len=nr+1), -1) yy <- yy + diff(yy)[[1]]/2 }else{ yy <- 0.5 } grid.text(x=rep(0.5, nr), y=yy, label=rev(sn), just=0.5, gp=gpar(cex=cex.sn, col=col.cn)) popViewport(1) } } }) setMethod("drawAxis", signature(GdObject="NumericTrack"), function(GdObject, from, to, ...) { type <- match.arg(.dpOrDefault(GdObject, "type", "p"), .PLOT_TYPES, several.ok=TRUE) yvals <- values(GdObject) ylim <- .dpOrDefault(GdObject, "ylim", if(!is.null(yvals) && length(yvals)) range(yvals, na.rm=TRUE, finite=TRUE) else c(-1,1)) if(diff(ylim)==0) ylim <- ylim+c(-1,1) hSpaceAvail <- vpLocation()$isize["width"]/6 yscale <- extendrange(r=ylim, f=0.05) col <- .dpOrDefault(GdObject, "col.axis", "white") acex <- .dpOrDefault(GdObject, "cex.axis") acol <- .dpOrDefault(GdObject, "col.axis", "white") at <- pretty(yscale) at <- at[at>=sort(ylim)[1] & at<=sort(ylim)[2]] if(is.null(acex)) { vSpaceNeeded <- max(as.numeric(convertWidth(stringHeight(at), "inches")))*length(at)*1.5 hSpaceNeeded <- max(as.numeric(convertWidth(stringWidth(at), "inches"))) vSpaceAvail <- abs(diff(range(at)))/abs(diff(yscale))*vpLocation()$isize["height"] acex <- max(0.6, min(vSpaceAvail/vSpaceNeeded, hSpaceAvail/hSpaceNeeded)) } nlevs <- max(1, nlevels(factor(.dpOrDefault(GdObject, "groups")))) if(type %in% c("heatmap", "horizon") && .dpOrDefault(GdObject, "showSampleNames", FALSE)){ groups <- .dpOrDefault(GdObject, "groups") sn <- if(is.null(groups)) rownames(values(GdObject)) else rev(unlist(split(rownames(values(GdObject)), factor(groups)))) cex.sn <- .dpOrDefault(GdObject, "cex.sampleNames", acex) col.cn <- .dpOrDefault(GdObject, "col.sampleNames", "white") wd <- max(as.numeric(convertWidth(stringWidth(sn) + unit(10, "points"), "npc"))) * cex.sn samNames <- viewport(x=1, width=wd, just=1, yscale=c(-0.05, 1.05)) pushViewport(samNames) nr <- nrow(values(GdObject)) if(nr > 1){ yy <- head(seq(0.05, 0.95, len=nr+1), -1) yy <- yy + diff(yy)[[1]]/2 }else{ yy <- 0.5 } grid.text(x=rep(0.5, nr), y=yy, label=rev(sn), just=0.5, gp=gpar(cex=cex.sn, col=col.cn)) popViewport(1) samAxis <- viewport(x=1-wd, width=1-wd, just=1) pushViewport(samAxis) on.exit(popViewport(1)) } ## if any of the types are gradient or heatmap we want the gradient scale if(any(type %in% c("gradient", "heatmap")) && .dpOrDefault(GdObject, "showColorBar", TRUE)){ ## viewport to hold the color strip shift <- ifelse(all(type %in% c("gradient", "heatmap")), 1, 0) pcols <- .getPlottingFeatures(GdObject) ncolor <- .dpOrDefault(GdObject, "ncolor", 100) vpAxisCont <- viewport(x=unit(1, "npc")-unit(2-shift, "points"), width=unit(1, "npc")-unit(2-shift, "points"), just=1) pushViewport(vpAxisCont) for(i in seq_len(nlevs)){ ## create color palette cr <- c("white", pcols$col[i]) if(nlevs<2) cr <- .dpOrDefault(GdObject, "gradient", cr) palette <- colorRampPalette(cr)(ncolor+5)[-(1:5)] pshift <- ifelse(i==nlevs, 1-shift, 0) vpTitleAxis <- viewport(x=unit(1, "npc")-unit(4*(i-1), "points"), width=unit(4+pshift, "points"), yscale=yscale, just=1) pushViewport(vpTitleAxis) ## draw a rectangle for each color if(all(type %in% c("gradient", "heatmap"))){ if(i==nlevs) suppressWarnings(grid.yaxis(gp=gpar(col=acol, cex=acex), at=at)) grid.rect(y=unit(seq(ylim[1],ylim[2],length.out=ncolor+1),"native")[-(ncolor+1)], x=unit(0, "npc")-unit(1, "points"), width=1, height=1/ncolor, gp=gpar(fill=palette, lty=0), just=c("left","bottom")) }else{ grid.rect(y=unit(seq(ylim[1],ylim[2],length.out=ncolor+1),"native")[-(ncolor+1)], x=0, width=1, height=1/ncolor, gp=gpar(fill=palette, lty=0), just=c("left","bottom")) if(i==nlevs){ suppressWarnings(grid.yaxis(gp=gpar(col=acol, cex=acex), at=at)) grid.lines(x=c(0,0), y=ylim, gp=gpar(col=acol), default.units="native") } } popViewport(1) } popViewport(1) } else { vpTitleAxis <- viewport(x=0.95, width=0.2, yscale=yscale, just=0) pushViewport(vpTitleAxis) suppressWarnings(grid.yaxis(gp=gpar(col=acol, cex=acex), at=at)) grid.lines(x=c(0,0), y=ylim, gp=gpar(col=acol), default.units="native") popViewport(1) } }) setMethod("drawAxis", signature(GdObject="AlignmentsTrack"), function(GdObject, ...) { type <- match.arg(.dpOrDefault(GdObject, "type", .ALIGNMENT_TYPES), .ALIGNMENT_TYPES, several.ok=TRUE) if("coverage" %in% type){ yvals <- values(GdObject) ylim <- .dpOrDefault(GdObject, "ylim", if(!is.null(yvals) && length(yvals)) range(yvals, na.rm=TRUE, finite=TRUE) else c(-1,1)) if(diff(ylim)==0) ylim <- ylim+c(-1,1) hSpaceAvail <- vpLocation()$isize["width"]/6 yscale <- c(if(is.null(.dpOrDefault(GdObject, "transformation"))) 0 else min(ylim), max(ylim) + diff(range(ylim)) * 0.05) col <- .dpOrDefault(GdObject, "col.axis", "white") acex <- .dpOrDefault(GdObject, "cex.axis") acol <- .dpOrDefault(GdObject, "col.axis", "white") at <- pretty(yscale) at <- at[at>=sort(ylim)[1] & at<=sort(ylim)[2]] covHeight <- .dpOrDefault(GdObject, ".__coverageHeight", c(npc=0, points=0)) covSpace <- .dpOrDefault(GdObject, ".__coverageSpace", 0) pushViewport(viewport(y=1-(covHeight["npc"] + covSpace), height=covHeight["npc"], just=c(0.5, 0))) if(is.null(acex)) { vSpaceNeeded <- max(as.numeric(convertWidth(stringHeight(at), "inches")))*length(at)*1.5 hSpaceNeeded <- max(as.numeric(convertWidth(stringWidth(at), "inches"))) vSpaceAvail <- abs(diff(range(at)))/abs(diff(yscale))*vpLocation()$isize["height"] acex <- max(0.6, min(vSpaceAvail/vSpaceNeeded, hSpaceAvail/hSpaceNeeded)) } vpTitleAxis <- viewport(x=0.95, width=0.2, yscale=yscale, just=0) pushViewport(vpTitleAxis) suppressWarnings(grid.yaxis(gp=gpar(col=acol, cex=acex), at=at)) grid.lines(x=c(0,0), y=ylim, gp=gpar(col=acol), default.units="native") popViewport(2) } else { covHeight <- c(npc=0, points=0) covSpace <- 0 } if("sashimi" %in% type){ sash <- .dpOrDefault(GdObject, ".__sashimi", list(x = numeric(), y = numeric(), id = integer(), score = numeric())) yscale <- if (length(sash$y)) c(-(max(sash$y) + diff(range(sash$y)) * 0.05), 0) else c(-1, 0) ylim <- if (length(sash$y)) c(-max(sash$y), yscale[1]+max(sash$y)) else c(-1,0) hSpaceAvail <- vpLocation()$isize["width"]/6 col <- .dpOrDefault(GdObject, "col.axis", "white") acex <- .dpOrDefault(GdObject, "cex.axis") acol <- .dpOrDefault(GdObject, "col.axis", "white") labs <- if (length(sash$score)) pretty(c(1, sash$score)) else pretty(c(1, .dpOrDefault(GdObject, ".__sashimiScore", 10))) at <- seq(ylim[1], ylim[2], length.out=length(labs)) sashHeight <- .dpOrDefault(GdObject, ".__sashimiHeight", c(npc=0, points=0)) sashSpace <- .dpOrDefault(GdObject, ".__sashimiSpace", 0) pushViewport(viewport(y=1-(sashHeight["npc"] + sashSpace + covHeight["npc"] + covSpace), height=sashHeight["npc"], just=c(0.5, 0))) if(is.null(acex)) { vSpaceNeeded <- max(as.numeric(convertWidth(stringHeight(labs), "inches")))*length(at)*1.5 hSpaceNeeded <- max(as.numeric(convertWidth(stringWidth(labs), "inches"))) vSpaceAvail <- abs(diff(range(at)))/abs(diff(yscale))*vpLocation()$isize["height"] acex <- max(0.6, min(vSpaceAvail/vSpaceNeeded, hSpaceAvail/hSpaceNeeded)) } vpTitleAxis <- viewport(x=0.75, width=0.2, yscale=yscale, just=0) pushViewport(vpTitleAxis) suppressWarnings(grid.yaxis(gp=gpar(col=acol, cex=acex), at=at, label=labs)) grid.polygon(x=c(0,0,1), y=c(ylim[1],ylim[2],ylim[2]), default.units="native", gp=gpar(col=acol, fill=acol)) popViewport(2) } if(.dpOrDefault(GdObject, ".__isCropped", FALSE)){ vspacing <- as.numeric(convertHeight(unit(2, "points"), "npc")) vsize <- as.numeric(convertHeight(unit(4, "points"), "npc")) pushViewport(viewport(height=vsize, y=vspacing, just=c(0.5, 0))) .moreInd(direction="down", lwd=2) popViewport(1) } }) setMethod("drawAxis", signature(GdObject="AlignedReadTrack"), function(GdObject, from, to, subset=TRUE) { detail <- match.arg(.dpOrDefault(GdObject, "detail", "coverage"), c("coverage", "reads")) if(detail!="coverage") return(NULL) else { if(subset) GdObject <- subset(GdObject, from=from, to=to) cov <- coverage(GdObject, strand="*") val <- runValue(coverage(GdObject, strand="*")) ## We have to figure out the data range, taking transformation into account ylim <- .dpOrDefault(GdObject, "ylim") if(is.null(ylim)) { if(!length(val)) ylim=c(0,1) else{ ylim <- c(0, range(val, finite=TRUE, na.rm=TRUE)[2]) trans <- .dpOrDefault(GdObject, "transformation")[[1]] if(!is.null(trans)) ylim <- c(0, trans(ylim[2])) } } for(s in c("+", "-")) { pushViewport(viewport(height=0.5, y=ifelse(s=="-", 0, 0.5), just=c("center", "bottom"))) dummy <- DataTrack(start=rep(mean(c(from, to)),2), end=rep(mean(c(from, to)),2), data=ylim, genome=genome(GdObject), chromosome=chromosome(GdObject)) oldDp <- displayPars(GdObject, hideInternal=FALSE) oldDp[["ylim"]] <- if(s=="+") ylim else rev(ylim) displayPars(dummy) <- oldDp drawAxis(dummy, from=from, to=to) popViewport(1) } } }) ## Draw a grid in the background of a GdObject. For some subclasses this is meaningless, and the default function will ## return NULL without plotting anything. setMethod("drawGrid", signature(GdObject="GdObject"), function(GdObject, ...) return(NULL)) setMethod("drawGrid", signature(GdObject="NumericTrack"), function(GdObject, from, to){ if(.dpOrDefault(GdObject, "grid", FALSE)) { vals <- score(GdObject) ylim <- .dpOrDefault(GdObject, "ylim", range(vals, na.rm=TRUE, finite=TRUE)) if(diff(ylim)) { pushViewport(dataViewport(xData=c(from, to), yData=ylim, extension=c(0, 0.1), clip=TRUE)) panel.grid(h=.dpOrDefault(GdObject, "h", -1), v=.dpOrDefault(GdObject, "v", -1), col=.dpOrDefault(GdObject, "col.grid", "#e6e6e6"), lty=.dpOrDefault(GdObject, "lty.grid", 1), lwd=.dpOrDefault(GdObject, "lwd.grid", 1)) popViewport(1) } }}) setMethod("drawGrid", signature(GdObject="AnnotationTrack"), function(GdObject, from, to){ if(.dpOrDefault(GdObject, "grid", FALSE)) { pushViewport(dataViewport(xData=c(from, to), extension=c(0, 0), yData=0:1, clip=TRUE)) panel.grid(h=0, v=.dpOrDefault(GdObject, "v", -1), col=.dpOrDefault(GdObject, "col.grid", "#e6e6e6"), lty=.dpOrDefault(GdObject, "lty.grid", 1), lwd=.dpOrDefault(GdObject, "lwd.grid", 1)) popViewport(1) }}) setMethod("drawGrid", signature(GdObject="AlignedReadTrack"), function(GdObject, from, to) { detail <- match.arg(.dpOrDefault(GdObject, "detail", "coverage"), c("coverage", "reads")) if(detail=="coverage"){ GdObject <- subset(GdObject, from=from, to=to) ## We have to figure out the data range, taking transformation into account ylim <- .dpOrDefault(GdObject, "ylim") if (is.null(ylim)) { maxs <- sapply(c("+", "-"), function(s) { cvr <- coverage(GdObject, strand=s) if (length(cvr)) max(cvr, na.rm=TRUE, finite=TRUE) else 0L }) y.max <- max(maxs, na.rm=TRUE, finite=TRUE) ylim <- c(0, if (y.max == 0) 1 else y.max) trans <- .dpOrDefault(GdObject, "transformation")[[1]] if (!is.null(trans)) ylim <- c(0, trans(ylim[2])) } for(s in c("+", "-")) { pushViewport(viewport(height=0.5, y=ifelse(s=="-", 0, 0.5), just=c("center", "bottom"))) dummy <- DataTrack(start=rep(mean(c(from, to)),2), end=rep(mean(c(from, to)),2), data=ylim, genome=genome(GdObject), chromosome=chromosome(GdObject)) oldDp <- displayPars(GdObject, hideInternal=FALSE) oldDp[["ylim"]] <- if(s=="+") ylim else rev(ylim) displayPars(dummy) <- oldDp drawGrid(dummy, from=from, to=to) popViewport(1) } } return(NULL) }) setMethod("drawGrid", signature(GdObject="AlignmentsTrack"), function(GdObject, from, to){ if(.dpOrDefault(GdObject, "grid", FALSE)) { yvals <- values(GdObject) ylim <- .dpOrDefault(GdObject, "ylim", if(!is.null(yvals) && length(yvals)) range(yvals, na.rm=TRUE, finite=TRUE) else c(-1,1)) if(diff(ylim)==0) ylim <- ylim+c(-1,1) yscale <-c(if(is.null(.dpOrDefault(GdObject, "transformation"))) 0 else min(ylim), max(ylim) + diff(range(ylim)) * 0.05) covHeight <- .dpOrDefault(GdObject, ".__coverageHeight", 0) pushViewport(viewport(y=1-covHeight["npc"], height=covHeight["npc"], just=c(0.5, 0), yscale=yscale, clip=TRUE)) panel.grid(v=0, h=.dpOrDefault(GdObject, "h", -1), col=.dpOrDefault(GdObject, "col.grid", "#e6e6e6"), lty=.dpOrDefault(GdObject, "lty.grid", 1), lwd=.dpOrDefault(GdObject, "lwd.grid", 1)) popViewport(1) } }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## All the drawGD methods should support two modes, triggered by the boolean argument 'prepare': ## In prepare mode: nothing is plotted but the object is prepared for plotting bases on the available space. The return ## value of the method in this mode should always be the updated object. If nothing needs to be prepared, i.e., if the ## plotting is independent from the available space, simply return the original object ## In plotting mode: the object is plotted. Return value is the object with optional HTML image map information ## added to the imageMap slot ## Since subsetting can be potentially expensive when the data are large we want to minimize this operation. Essentially it ## should be done only once before any other plotting or computation starts, hence we expect the GdObject in the drawGD ## methods to already be trimmed to the correct size ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## The default method for all StackedTrack types which always should be called (this has to be done explicitely using ## callNextMethod) ##---------------------------------------------------------------------------------------------------------------------------- ## Although the stacking type is not stored as a displayParameter we still want to check whether it is ## included there and set the actual stacking of the object accordingly setMethod("drawGD", signature("StackedTrack"), function(GdObject, ...){ debug <- .dpOrDefault(GdObject, "debug", FALSE) if((is.logical(debug) && debug)) browser() st <- .dpOrDefault(GdObject, "stacking") if(!is.null(st)) stacking(GdObject) <- st return(invisible(GdObject)) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## The plotting method for a CustomTrack actually just calls the user-defined plotting function ##---------------------------------------------------------------------------------------------------------------------------- ## Although the stacking type is not stored as a displayParameter we still want to check whether it is ## included there and set the actual stacking of the object accordingly setMethod("drawGD", signature("CustomTrack"), function(GdObject, minBase, maxBase, prepare=FALSE, ...){ rev <- .dpOrDefault(GdObject, "reverseStrand", FALSE) xscale <- if(!rev) c(minBase, maxBase) else c(maxBase, minBase) pushViewport(viewport(xscale=xscale, clip=TRUE)) tmp <- GdObject@plottingFunction(GdObject, prepare=prepare) if(!is(tmp, "CustomTrack")){ warning("The plotting function of a CustomTrack has to return the input object. Using the original CustomTrack object now.") }else{ GdObject <- tmp } popViewport(1) return(invisible(GdObject)) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## The method for OverlayTracks simply delegates to the methods for each of the elements in trackList ##---------------------------------------------------------------------------------------------------------------------------- setMethod("drawGD", signature("OverlayTrack"), function(GdObject, ...){ GdObject@trackList <- lapply(GdObject@trackList, drawGD, ...) return(invisible(GdObject)) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Draw gene models as found in AnnotationTracks or GeneRegionTracks ##---------------------------------------------------------------------------------------------------------------------------- ## Calculate all coordinates and values for the individual stacks first, and append to the ## input list 'toDraw'. This allows us to plot the whole track at once, making use of grid's ## vectorization. Without this tweak, every stack would have to be drawn individually, which ## can be painfully slow... ## Because all of the y coordinates are calculated in the coordinate system of the current ## viewport for the respective stack we have to add offset values. ## Compute the coordinates and colors for all track items (e.g. exons in a GeneRegionTrack) .boxes <- function(GdObject, offsets) { ylim <- c(0, 1) h <- diff(ylim) middle <- mean(ylim) sh <- max(0, min(h, .dpOrDefault(GdObject, "stackHeight", 0.75))) space <- (h-(h*sh))/2 shift <- switch(.dpOrDefault(GdObject, "stackJust", "middle"), "top"=space, "bottom"=-space, 0) if (inherits(GdObject, "GeneRegionTrack")) { thinBox <- .dpOrDefault(GdObject, "thinBoxFeature", .THIN_BOX_FEATURES) space <- ifelse(feature(GdObject) %in% thinBox, space + ((middle - space) / 2), space) } shape <- .dpOrDefault(GdObject, "shape", "arrow") color <- .getBiotypeColor(GdObject) id <- identifier(GdObject, type=.dpOrDefault(GdObject, ifelse(is(GdObject, "GeneRegionTrack"), "exonAnnotation", "featureAnnotation"), "lowest")) sel <- grepl("\\[Cluster_[0-9]*\\]", id) id[sel] <- sprintf("%i merged\n%s", as.integer(.getAnn(GdObject, "density")[sel]), ifelse(class(GdObject) %in% c("AnnotationTrack", "DetailsAnnotationTrack"), "features", "exons")) yy1 <- ylim[1] + space + offsets + shift yy2 <- ylim[2] - space + offsets + shift boxes <- data.frame(cx1=start(GdObject), cy1=yy1, cx2=start(GdObject)+width(GdObject), cy2=yy2, fill=color, strand=strand(GdObject), text=id, textX=start(GdObject)+(width(GdObject)/2), textY=middle+offsets, .getImageMap(cbind(start(GdObject), yy1, end(GdObject), yy2)), start=start(GdObject), end=end(GdObject), values(GdObject), exonId=id, origExonId=identifier(GdObject, type="lowest"), stringsAsFactors=FALSE) rownames(boxes) <- if(.transcriptsAreCollapsed(GdObject)) sprintf("uid%i", seq_along(identifier(GdObject))) else make.unique(identifier(GdObject, type="lowest")) return(boxes) } ## Compute the coordinates for the bars connecting grouped items and the group labels .barsAndLabels <- function(GdObject){ bins <- stacks(GdObject) stacks <- max(bins) res <- .pxResolution(coord="x") gp <- group(GdObject) grpSplit <- split(range(GdObject), gp) grpRanges <- unlist(range(grpSplit)) needBar <- sapply(grpSplit, length)>1 & width(grpRanges) > res ## If we draw the bar from start to end of the range we sometimes see little overlaps that extend beyond the first or last item. ## In order to fix this, we just substract the equivalent of min.width pixels from both ends of each group range min.swidth <- res*.dpOrDefault(GdObject, "min.width", 2) nstart <- start(grpRanges[needBar])+min.swidth nend <- end(grpRanges[needBar])-min.swidth sel <- (nend-nstart)>0 start(grpRanges[needBar][sel]) <- nstart[sel] end(grpRanges[needBar][sel]) <- nend[sel] strand <- sapply(split(strand(GdObject), gp), function(x){ tmp <- unique(x) if(length(tmp)>1) "*" else tmp }) yloc <- sapply(split((stacks-bins)+1, gp), function(x) unique(x))+0.5 color <- if(length(grep("__desatCol", values(GdObject)$feature[1]))) .dpOrDefault(GdObject, "fill", .DEFAULT_FILL_COL) else sapply(split(.getBiotypeColor(GdObject), gp), head, 1) bars <- data.frame(sx1=start(grpRanges)[needBar], sx2=end(grpRanges)[needBar], y=yloc[needBar], strand=strand[needBar], col=color[needBar], stringsAsFactors=FALSE) labs <- .dpOrDefault(GdObject, ".__groupLabels")[names(grpRanges)] if(!is.null(labs)){ lsel <- grepl("\\[Cluster_[0-9]*\\]", labs) if(any(lsel)){ gdens <- as.integer(sapply(split(.getAnn(GdObject, "gdensity"), gp), head, 1)) labs[lsel] <- sprintf("%i merged %s ", gdens[lsel], ifelse(class(GdObject) %in% c("AnnotationTrack", "DetailsAnnotationTrack"), "groups", "transcript models")) } just <- .dpOrDefault(GdObject, "just.group", "left") rev <- .dpOrDefault(GdObject, "reverseStrand", FALSE) sizes <- .dpOrDefault(GdObject, ".__groupLabelWidths")[names(grpRanges), , drop=FALSE] pr <- .dpOrDefault(GdObject, ".__plottingRange", data.frame(from=min(start(GdObject)), to=max(end(GdObject)))) grpRangesCut <- restrict(grpRanges, start=as.integer(pr["from"]), end=as.integer(pr["to"])) switch(just, "left"={ cx <- if(!rev) start(grpRanges) - sizes$after else end(grpRanges) + sizes$after cy <- yloc algn <- c("right", "center") }, "right"={ cx <- if(!rev) end(grpRanges) + sizes$after else start(grpRanges) - sizes$after cy <- yloc algn <- c("left", "center") }, "above"={ cx <- start(grpRangesCut) + width(grpRangesCut)/2 indx <- which(seq_len(length(grpRanges)) %in% queryHits(findOverlaps(grpRanges, grpRangesCut))) cy <- yloc[indx] + 0.5 labs <- labs[indx] algn <- c("center", "top") }, "below"={ cx <- start(grpRangesCut) + width(grpRangesCut)/2 indx <- which(seq_len(length(grpRanges)) %in% queryHits(findOverlaps(grpRanges, grpRangesCut))) cy <- yloc[indx] - 0.5 labs <- labs[indx] algn <- c("center", "bottom") }, stop(sprintf("Unknown label justification '%s'", just))) labels <- data.frame(txt=labs, x=cx, y=cy, stringsAsFactors=FALSE) }else{ labels <- algn <- NA } return(list(bars=bars, labels=labels, align=algn)) } ## The actual drawing method setMethod("drawGD", signature("AnnotationTrack"), function(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...){ debug <- .dpOrDefault(GdObject, "debug", FALSE) if((is.logical(debug) && debug) || debug=="prepare") browser() imageMap(GdObject) <- NULL if(!length(GdObject)) return(invisible(GdObject)) ## In prepare mode we need to make sure that the stacking information is updated from the optional display parameter (by calling ## the StackedTrack drawGD method) and also perform the collapsing of track items which could potentially lead to re-stacking. if(prepare){ GdObject <- callNextMethod(GdObject, ...) bins <- stacks(GdObject) stacks <- max(bins) ## We need to collapse the track object based on the current screen resolution (note that this may trigger re-stacking) pushViewport(dataViewport(xData=c(minBase, maxBase), extension=0, yscale=c(1, stacks+1), clip=TRUE)) GdObject <- collapseTrack(GdObject, diff=.pxResolution(coord="x"), xrange=c(minBase, maxBase)) popViewport(1) return(invisible(GdObject)) } if((is.logical(debug) && debug) || debug=="draw") browser() ## If there are too many stacks for the available device resolution we cast an error, otherwise we set the viewport bins <- stacks(GdObject) stacks <- max(bins) rev <- .dpOrDefault(GdObject, "reverseStrand", FALSE) xscale <- if(!rev) c(minBase, maxBase) else c(maxBase, minBase) yscale <- if(!.dpOrDefault(GdObject, "reverseStacking", FALSE)) c(1, stacks+1) else c(stacks+1, 1) pushViewport(dataViewport(xscale=xscale, extension=0, yscale=yscale, clip=TRUE)) res <- .pxResolution(coord="x") curVp <- vpLocation() if(curVp$size["height"]/stacks < .dpOrDefault(GdObject, "min.height", 3)) stop("Too many stacks to draw. Either increase the device size or limit the drawing to a smaller region.") ## We adjust the color saturation to indicate overplotting if necessary if(.dpOrDefault(GdObject, "showOverplotting", FALSE)) { dens <- as.numeric(values(GdObject)$density) if(length(unique(dens))!=1) { minSat <- max(0.25, 1/max(dens)) minDens <- min(dens) rDens <- diff(range(dens)) saturation <- minSat+((dens-minDens)/rDens/(1/(1-minSat))) bc <- unique(.getBiotypeColor(GdObject)) baseCol <- rgb2hsv(col2rgb(bc)) desatCols <- unlist(lapply(saturation, function(x) hsv(baseCol[1,], x, baseCol[3,]))) names(desatCols) <- paste(unique(feature(GdObject)), rep(dens, each=length(bc)), sep="_") feature(GdObject) <- paste(feature(GdObject), dens, sep="_") desatCols <- desatCols[unique(names(desatCols))] displayPars(GdObject) <- as.list(desatCols) } } ## Now we can pre-compute all the coordinates and settings for the elements to be drawn, ... box <- .boxes(GdObject, (stacks-bins)+1) barsAndLab <- .barsAndLabels(GdObject) bar <- barsAndLab$bars bartext <- barsAndLab$labels ## ... get all the necessary display parameters shape <- .dpOrDefault(GdObject, "shape", "arrow") col.line <- .dpOrDefault(GdObject, "col.line")[1] border <- .dpOrDefault(GdObject, "col")[1] if(is.null(border)) border <- ifelse(is(GdObject, "GeneRegionTrack"), NA, "transparent") lwd <- .dpOrDefault(GdObject, "lwd", 2) lty <- .dpOrDefault(GdObject, "lty", 1) alpha <- .dpOrDefault(GdObject, "alpha", 1) rotation <- .dpOrDefaultFont(GdObject, "rotation", "item", 0) rotation.group <- .dpOrDefaultFont(GdObject, "rotation", "group", 0) just <- .dpOrDefault(GdObject, "just.group", "left") ## ... and finally draw whatever is needed if(nrow(box)>0){ ## If we want to place a label on top or below the ranges we need to know how much size that will take up ## and adjust the plotting shapes accordingly drawLabel <- .dpOrDefault(GdObject, ".__hasAnno", FALSE) && !is.null(bartext) && !is.na(bartext) && nrow(bartext)>0 && stacking(GdObject) != "dense" bs <- as.vector((stacks-bins)+1) if(drawLabel && just %in% c("above", "below")){ labelHeights <- max(.getStringDims(GdObject, bartext$txt, subtype="group")$height) labelSpace <- as.numeric(convertHeight(unit(2, "points"), "native")) avSpace <- (1 - max(box$cy2 - box$cy1))/2 vadjust <- max(0, (labelHeights + (2 * labelSpace)) - avSpace) bh <- 1 - (avSpace * 2) bhNew <- bh - vadjust sfac <- bhNew / bh if(just == "above"){ bar$y <- bar$y - (vadjust / 2) box$textY <- box$textY - (vadjust / 2) bartext$y <- bartext$y - labelSpace box$cy1 <- bs + ((box$cy1 %% 1 - avSpace) * sfac) + avSpace box$cy2 <- bs + ((box$cy2 %% 1 - avSpace) * sfac) + avSpace }else{ bar$y <- bar$y + (vadjust / 2) box$textY <- box$textY + (vadjust / 2) bartext$y <- bartext$y + labelSpace box$cy1 <- bs + ((box$cy1 %% 1 - avSpace) * sfac) + avSpace + vadjust box$cy2 <- bs + ((box$cy2 %% 1 - avSpace) * sfac) + avSpace + vadjust } } ## Plotting of the (arrow)bar if(nrow(bar)>0) .arrowBar(bar$sx1, bar$sx2, y=bar$y, bar$strand, box[,1:4, drop=FALSE], col=if(is.null(col.line)) bar$col else rep(col.line, length(bar$col)), lwd=lwd, lty=lty, alpha=alpha, barOnly=(!"smallArrow" %in% .dpOrDefault(GdObject, "shape", "box") || stacking(GdObject)=="dense"), diff=res, min.height=.dpOrDefault(GdObject, "min.height", 3)) ## Plotting of the boxes box$col <- if(is.na(border)) box$fill else border if("box" %in% shape || ("smallArrow" %in% shape && !("arrow" %in% shape || "ellipse" %in% shape))){ .filledBoxes(box, lwd=lwd, lty=lty, alpha=alpha) } ## Plotting of the elipses if("ellipse" %in% shape){ ellCoords <- .box2Ellipse(box) grid.polygon(x=ellCoords$x1, y=ellCoords$y1, id=ellCoords$id, gp=gpar(col=if(is.na(border)) box$fill else border, fill=box$fill, lwd=lwd, lty=lty, alpha=alpha), default.units="native") } ## Plotting of the filled arrows if("arrow" %in% shape && !"box" %in% shape){ .filledArrow(box, lwd=lwd, lty=lty, alpha=alpha, min.width=4*res, max.width=.dpOrDefault(GdObject, "arrowHeadMaxWidth", 40)*res) } ## Plotting of the filled arrows with fixed head size if("fixedArrow" %in% shape && !"box" %in% shape){ .filledArrow(box, lwd=lwd, lty=lty, alpha=alpha, min.width=4*res, absoluteWidth=TRUE, W=.dpOrDefault(GdObject, "arrowHeadWidth", 30)*res) } ## Plotting of the item labels if(.dpOrDefault(GdObject, "showFeatureId", FALSE)) grid.text(box$text, box$textX, box$textY, rot=rotation, gp=.fontGp(GdObject, subtype="item"), default.units="native", just=c("center", "center")) ## Plotting of the group labels if(drawLabel){ grid.text(bartext$txt, bartext$x, bartext$y, rot=rotation.group, gp=.fontGp(GdObject, subtype="group"), default.units="native", just=barsAndLab$align) } } popViewport(1) ## Finaly we set up the image map ## FIXME: we may want to record the merging information here im <- if(!is.null(box)) { coords <- as.matrix(box[,c("x1", "y1", "x2", "y2"),drop=FALSE]) restCols <- setdiff(colnames(box), c("x1", "x2", "y1", "y2", "cx1", "cx2", "cy1", "cy2", "textX", "textY")) tags <- sapply(restCols, function(x){ tmp <- as.character(box[,x]) names(tmp) <- rownames(coords) tmp}, simplify=FALSE) tags$title <- identifier(GdObject) ImageMap(coords=coords, tags=tags) } else NULL imageMap(GdObject) <- im return(invisible(GdObject)) }) ## For a GeneRegionTrack we just set the showExonId alias and then call the AnnotationTrack method setMethod("drawGD", signature("GeneRegionTrack"), function(GdObject, ...){ displayPars(GdObject) <- list(showFeatureId=as.vector(.dpOrDefault(GdObject, "showExonId"))) GdObject <- callNextMethod() return(invisible(GdObject)) }) ## The actual drawing method setMethod("drawGD", signature("AlignmentsTrack"), function(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...){ debug <- .dpOrDefault(GdObject, "debug", FALSE) imageMap(GdObject) <- NULL if(!length(GdObject)) return(invisible(GdObject)) rev <- .dpOrDefault(GdObject, "reverseStrand", FALSE) revs <- !.dpOrDefault(GdObject, "reverseStacking", FALSE) vSpacing <- as.numeric(convertHeight(unit(3, "points"), "npc")) type <- match.arg(.dpOrDefault(GdObject, "type", .ALIGNMENT_TYPES), .ALIGNMENT_TYPES, several.ok=TRUE) ylim <- .dpOrDefault(GdObject, "ylim") ## In prepare mode we need to make sure that the stacking information is updated from the optional display parameter (by calling ## the StackedTrack drawGD method), and compute the coverage vector which will be needed for the axis if(prepare){ if((is.logical(debug) && debug) || "prepare" %in% debug) browser() GdObject <- callNextMethod(GdObject, ...) ## The mismatched bases need to be extracted from the read sequences and the reference sequence if(.dpOrDefault(GdObject, "showMismatches", TRUE) && !is.null(GdObject@referenceSequence)){ mm <- .findMismatches(GdObject) if(nrow(mm)) displayPars(GdObject) <- list(".__mismatches"=mm) } ## The coverage calculation and the height of the coverage section if("coverage" %in% type){ covSpace <- as.numeric(convertHeight(unit(5, "points"), "npc")) if("pileup" %in% type){ covHeight <- .dpOrDefault(GdObject, "coverageHeight", 0.1) if(covHeight > 0 && covHeight < 1) covHeight <- as.numeric(convertHeight(unit(covHeight, "npc"), "points")) covHeight <- max(.dpOrDefault(GdObject, "minCoverageHeight", 50), covHeight) covHeight <- c(points=covHeight, npc=as.numeric(convertHeight(unit(covHeight, "points"), "npc"))) }else if ("sashimi" %in% type){ covHeight <- c(npc=0.5-(covSpace*2), points=1) }else{ covHeight <- c(npc=1-(covSpace*2), points=1) } coverage <- coverage(range(GdObject), width=maxBase) ## apply data transformation if one is set up trans <- .dpOrDefault(GdObject, "transformation") if(is.list(trans)) trans <- trans[[1]] if(!is.null(trans)){ if(!is.function(trans) || length(formals(trans))!=1L) stop("Display parameter 'transformation' must be a function with a single argument") test <- trans(coverage) if(!is(test, "Rle") || length(test) != length(coverage)) stop("The function in display parameter 'transformation' results in invalid output.\n", "It has to return a numeric matrix with the same dimensions as the input data.") coverage <- test } displayPars(GdObject) <- list(".__coverage"=coverage, ".__coverageHeight"=covHeight, ".__coverageSpace"=covSpace) } else { covHeight <- c(npc=0, points=0) covSpace <- 0 } ## The sashimi calculation and the height of the sashimi section if("sashimi" %in% type){ sashSpace <- as.numeric(convertHeight(unit(5, "points"), "npc")) if("pileup" %in% type) { sashHeight <- .dpOrDefault(GdObject, "sashimiHeight", 0.1) if(sashHeight > 0 && sashHeight < 1) sashHeight <- as.numeric(convertHeight(unit(sashHeight, "npc"), "points")) sashHeight <- max(.dpOrDefault(GdObject, "minSashimiHeight", 50), sashHeight) sashHeight <- c(points=sashHeight, npc=as.numeric(convertHeight(unit(sashHeight, "points"), "npc"))) }else if ("coverage" %in% type){ sashHeight <- c(npc=0.5-(sashSpace*2), points=1) }else{ sashHeight <- c(npc=1-(sashSpace*2), points=1) } sashScore <- .dpOrDefault(GdObject, "sashimiScore", 1L) sashLwdMax <- .dpOrDefault(GdObject, "lwd.sashimiMax", 10) sashStrand <- .dpOrDefault(GdObject, "sashimiStrand", "*") sashFilter <- .dpOrDefault(GdObject, "sashimiFilter", NULL) sashFilterTolerance <- .dpOrDefault(GdObject, "sashimiFilterTolerance", 0L) sashNumbers <- .dpOrDefault(GdObject, "sashimiNumbers", FALSE) sash <- .dpOrDefault(GdObject, "sashimiJunctions", NULL) if (is.null(sash)) { sash <- .create.summarizedJunctions.for.sashimi.junctions(ranges(GdObject)) } else { if (class(sash)!="GRanges") stop("\"sashimiJunctions\" object must be of \"GRanges\" class!") sashMcolName <- if (sashStrand=="+") "plus_score" else if (sashStrand=="-") "minus_score" else "score" if (sum(colnames(mcols(sash))==sashMcolName) != 1) stop(sprintf("\"mcols\" of \"sashimiJunctions\" object must contain column named \"%s\",\n which matches the specified (%s) \"sashimiStrand\"!", sashMcolName, sashStrand)) } sash <- .convert.summarizedJunctions.to.sashimi.junctions(juns=sash, score=sashScore, lwd.max=sashLwdMax, strand=sashStrand, filter=sashFilter, filterTolerance=sashFilterTolerance) displayPars(GdObject) <- list(".__sashimi"=sash, ".__sashimiHeight"=sashHeight, ".__sashimiSpace"=sashSpace, ".__sashimiNumbers"=sashNumbers) } else { sashHeight <- c(npc=0, points=0) sashSpace <- 0 } if("pileup" %in% type){ ## If there are more bins than we can plot we reduce the number until they fit pushViewport(viewport(height=1 - (covHeight["npc"] + covSpace + sashHeight["npc"] + sashSpace) - vSpacing * 2, y=vSpacing, just=c(0.5, 0))) bins <- ranges(GdObject)$stack curVp <- vpLocation() mih <- min(curVp$size["height"], .dpOrDefault(GdObject, c("min.height", "max.height"), 3)) mah <- min(curVp$size["height"], max(mih, .dpOrDefault(GdObject, c("max.height", "min.height"), 8))) bins <- stacks(GdObject) if(curVp$size["height"]/max(bins) < mih){ maxStack <- curVp$size["height"] %/% mih sel <- if(revs) bins <= maxStack else bins > max(bins) - maxStack ranges(GdObject) <- ranges(GdObject)[sel] displayPars(GdObject) <- list(".__isCropped"=TRUE) bins <- stacks(GdObject) } yrange <- range(bins) + c(-0.5, 0.5) add <- max(0, (curVp$size["height"] %/% mah) - max(bins)) yrange <- if(revs) c(yrange[1], yrange[2] + add) else c( yrange[1] - add, yrange[2]) displayPars(GdObject) <- list(".__yrange"=yrange) popViewport(1) } return(invisible(GdObject)) } if((is.logical(debug) && debug) || "draw" %in% debug) browser() mm <- .dpOrDefault(GdObject, ".__mismatches") ## The coverage plot first xscale <- if(!rev) c(minBase, maxBase) else c(maxBase, minBase) readInfo <- ranges(GdObject) covHeight <- .dpOrDefault(GdObject, ".__coverageHeight", c(npc=0, points=0)) covSpace <- .dpOrDefault(GdObject, ".__coverageSpace", 0) if("coverage" %in% type){ cov <- .dpOrDefault(GdObject, ".__coverage", Rle(lengths=maxBase, values=as.integer(0))) yscale <- c(if(is.null(.dpOrDefault(GdObject, "transformation"))) 0 else min(cov), max(cov) + diff(range(cov)) * 0.05) if(!is.null(ylim)){ yscale <- ylim } vp <- viewport(height=covHeight["npc"], y=1-(covHeight["npc"] + covSpace), just=c(0.5, 0), xscale=xscale, yscale=yscale, clip=TRUE) pushViewport(vp) res <- .pxResolution(coord="x") gp <- gpar(col=.dpOrDefault(GdObject, c("col.coverage", "col"), .DEFAULT_SHADED_COL), fill=.dpOrDefault(GdObject, c("fill.coverage", "fill"), "#BABABA"), lwd=.dpOrDefault(GdObject, c("lwd.coverage", "lwd"), 1), lty=.dpOrDefault(GdObject, c("lty.coverage", "lty"), 1), alpha=.alpha(GdObject)) ## We can compact this if the resolution is not sufficient to speed up the drawing. mminBase <- max(1, minBase) if(res>2){ brks <- ceiling((maxBase - mminBase) / res) x <- seq(mminBase, maxBase, len=brks) y <- tapply(as.integer(cov[mminBase:maxBase]), cut(mminBase:maxBase, breaks=brks), mean) }else{ x <- mminBase:maxBase y <- as.integer(cov[x]) } grid.polygon(c(minBase - max(1, res), 0, x, maxBase + max(1, res)), c(0, 0, y, 0), default.units="native", gp=gp) grid.lines(y=c(0, 0), gp=gpar(col=gp$col, alpha=gp$alpha)) if(!is.null(mm)){ fcol <- .dpOrDefault(GdObject@referenceSequence, "fontcolor", getBioColor("DNA_BASES_N")) vpos <- tapply(as.character(mm$base), mm$position, table, simplify=FALSE) x <- rep(as.integer(names(vpos)), listLen(vpos)) y <- unlist(lapply(vpos, cumsum), use.names=FALSE) col <- fcol[unlist(lapply(vpos, names), use.names=FALSE)] grid.rect(x=x, y=y, height=unlist(vpos, use.names=FALSE), width=1, default.units="native", just=c(0, 1), gp=gpar(col="transparent", fill=col)) } popViewport(1) twoPx <- 2 * as.numeric(convertHeight(unit(1, "points"), "npc")) vp <- viewport(height=twoPx, y=1-(covHeight["npc"] + covSpace + twoPx), just=c(0.5, 0)) pushViewport(vp) grid.rect(gp=gpar(fill=.dpOrDefault(GdObject, "background.title"), col="transparent", alpha=.dpOrDefault(GdObject, "alpha.title")), width=2) popViewport(1) } ## The sashimi plot as second xscale <- if(!rev) c(minBase, maxBase) else c(maxBase, minBase) sashHeight <- .dpOrDefault(GdObject, ".__sashimiHeight", c(npc=0, points=0)) sashSpace <- .dpOrDefault(GdObject, ".__sashimiSpace", 0) if("sashimi" %in% type){ sash <- .dpOrDefault(GdObject, ".__sashimi", list(x=numeric(), y=numeric(), id=integer(), score=numeric(), scaled=numeric())) sashNumbers <- .dpOrDefault(GdObject, ".__sashimiNumbers", FALSE) yscale <- if (length(sash$y)) c(-(max(sash$y) + diff(range(sash$y)) * 0.05), 0) else c(-1,0) vp <- viewport(height=sashHeight["npc"], y=1-(covHeight["npc"] + covSpace + sashHeight["npc"] + sashSpace), just=c(0.5, 0), xscale=xscale, yscale=yscale, clip=TRUE) pushViewport(vp) gp <- gpar(col=.dpOrDefault(GdObject, c("col.sashimi", "col"), .DEFAULT_SHADED_COL), fill=.dpOrDefault(GdObject, c("fill.sashimi", "fill"), "#FFFFFF"), lwd=.dpOrDefault(GdObject, c("lwd.sashimi", "lwd"), 1), lty=.dpOrDefault(GdObject, c("lty.sashimi", "lty"), 1), alpha=.alpha(GdObject)) if (length(sash$x)) { grid.xspline(sash$x, -sash$y, id=sash$id, shape=-1, open=TRUE, default.units="native", gp=gpar(col=gp$col, lwd=sash$scaled)) ## print the number of reads together with the connecting lines (currently no scaling/resolution) if (sashNumbers) { grid.rect(sash$x[c(F,T,F)], -sash$y[c(F,T,F)], width=convertUnit(stringWidth(sash$score)*1.5, "inches"), height=convertUnit(stringHeight(sash$score)*1.5, "inches"), default.units="native", gp=gpar(col=gp$col, fill=gp$fill)) grid.text(label=sash$score, sash$x[c(F,T,F)], -sash$y[c(F,T,F)], default.units="native", gp=gpar(col=gp$col)) } } popViewport(1) } ## Now the pileups if("pileup" %in% type){ cex <- max(0.3, .dpOrDefault(GdObject, c("cex.mismatch", "cex"), 0.7)) pushViewport(viewport(height=1 - (covHeight["npc"] + covSpace + sashHeight["npc"] + sashSpace) - vSpacing * 4, y=vSpacing, just=c(0.5, 0), gp=.fontGp(GdObject, "mismatch", cex=cex))) bins <- stacks(GdObject) stacks <- max(bins) yscale <- .dpOrDefault(GdObject, ".__yrange") if(revs) yscale <- rev(yscale) pushViewport(dataViewport(xscale=xscale, extension=0, yscale=yscale, clip=TRUE)) ## Figuring out resolution and the necessary plotting details res <- .pxResolution(coord="x") ylim <- c(0, 1) h <- diff(ylim) middle <- mean(ylim) sh <- max(0, min(h, .dpOrDefault(GdObject, "stackHeight", 0.75)))/2 boxOnly <- res > 10 if(boxOnly){ x <- c(start(readInfo), rep(end(readInfo), 2), start(readInfo)) y <- c(rep(readInfo$stack + sh, 2), rep(readInfo$stack - sh, 2)) id <- rep(readInfo$uid, 4) }else{ ## We first precompute the coordinates for all the arrow polygons uid2strand <- setNames(as.character(readInfo$readStrand), as.character(readInfo$uid)) arrowMap <- unlist(setNames(lapply(split(as.character(readInfo$uid), readInfo$entityId), function(x){ str <- uid2strand[x][1] setNames(str, if(str == "+") tail(x, 1) else head(x,1)) }), NULL)) readInfo$arrow <- as.character(NA) readInfo$arrow[match(names(arrowMap), readInfo$uid)] <- arrowMap ## The parts that don't need arrow heads sel <- is.na(readInfo$arrow) | readInfo$arrow == "*" x <- c(start(readInfo)[sel], rep(end(readInfo)[sel], 2), start(readInfo)[sel]) y <- c(rep(readInfo$stack[sel] + sh, 2), rep(readInfo$stack[sel] - sh, 2)) id <- rep(readInfo$uid[sel], 4) ## The arrow heads facing right w <- Gviz:::.pxResolution(coord="x", 5) sel <- readInfo$arrow == "+" ah <- pmax(start(readInfo)[sel], end(readInfo)[sel]-w) x <- c(x, start(readInfo)[sel], ah, end(readInfo)[sel], ah, start(readInfo)[sel]) y <- c(y, rep(readInfo$stack[sel] + sh, 2), readInfo$stack[sel], rep(readInfo$stack[sel] - sh, 2)) id <- c(id, rep(readInfo$uid[sel], 5)) ## The arrow heads facing left sel <- readInfo$arrow == "-" ah <- pmin(end(readInfo)[sel], start(readInfo)[sel]+w) x <- c(x, start(readInfo)[sel], ah, rep(end(readInfo)[sel], 2), ah) y <- c(y, readInfo$stack[sel], rep(readInfo$stack[sel] + sh, 2), rep(readInfo$stack[sel] - sh, 2)) id <- c(id, rep(readInfo$uid[sel], 5)) } nn <- length(unique(readInfo$uid)) gps <- data.frame(col=rep(.dpOrDefault(GdObject, c("col.reads", "col"), .DEFAULT_SHADED_COL), nn), fill=rep(.dpOrDefault(GdObject, c("fill.reads", "fill"), .DEFAULT_BRIGHT_SHADED_COL), nn), lwd=rep(.dpOrDefault(GdObject, c("lwd.reads", "lwd"), 1), nn), lty=rep(.dpOrDefault(GdObject, c("lty.reads", "lty"), 1), nn), alpha=rep(.alpha(GdObject, "reads"), nn), stringsAsFactors=FALSE) ## Now the coordinates for the connecting lines lineCoords <- NULL if(anyDuplicated(readInfo$entityId) != 0){ stTmp <- split(readInfo, readInfo$entityId) mateRanges <- unlist(range(stTmp)) mateGaps <- gaps(GRanges(ranges=ranges(readInfo), seqnames=readInfo$entityId)) rmap <- mateRanges[as.character(seqnames(mateGaps))] mateGaps <- mateGaps[start(rmap) <= start(mateGaps) & end(rmap) >= end(mateGaps)] gy <- readInfo$stack[match(as.character(seqnames(mateGaps)), readInfo$entityId)] lineCoords <- data.frame(x1=start(mateGaps)-1, y1=gy, x2=end(mateGaps)+1, y2=gy, col=.dpOrDefault(GdObject, c("col.gap", "col"), .DEFAULT_SHADED_COL), lwd=.dpOrDefault(GdObject, c("lwd.gap", "lwd"), 1), lty=.dpOrDefault(GdObject, c("lty.gap", "lty"), 1), alpha=.alpha(GdObject, "gap"), stringsAsFactors=FALSE) lineCoords <- lineCoords[!duplicated(lineCoords), ] }else{ mateRanges <- setNames(readInfo, readInfo$entityId) } if(any(readInfo$status != "unmated") && anyDuplicated(readInfo$groupid) != 0){ pairGaps <- gaps(GRanges(ranges=ranges(mateRanges), seqnames=readInfo$groupid[match(names(mateRanges), readInfo$entityId)])) rmap <- GdObject@stackRanges[as.character(seqnames(pairGaps))] pairGaps <- pairGaps[start(rmap) <= start(pairGaps) & end(rmap) >= end(pairGaps)] gy <- readInfo$stack[match(as.character(seqnames(pairGaps)), readInfo$groupid)] pairsCoords <- data.frame(x1=start(pairGaps)-1, y1=gy, x2=end(pairGaps)+1, y2=gy, col=.dpOrDefault(GdObject, c("col.mates", "col"), .DEFAULT_BRIGHT_SHADED_COL), lwd=.dpOrDefault(GdObject, c("lwd.mates", "lwd"), 1), lty=.dpOrDefault(GdObject, c("lty.mates", "lty"), 1), alpha=.alpha(GdObject, "mates"), stringsAsFactors=FALSE) lineCoords <- rbind(lineCoords, pairsCoords[!duplicated(pairsCoords), ]) } ## The mismatch information on the reads if needed mmLetters <- NULL if(!is.null(mm)){ fcol <- .dpOrDefault(GdObject@referenceSequence, "fontcolor", getBioColor("DNA_BASES_N")) ccol <- ifelse(rgb2hsv(col2rgb(fcol))["s",]<0.5, "black", "white") vpl <- vpLocation() lwidth <- max(as.numeric(convertUnit(stringWidth(DNA_ALPHABET),"inches")))*0.9337632 lheight <- max(as.numeric(convertUnit(stringHeight(DNA_ALPHABET),"inches"))) perLetterW <- vpl$isize["width"]/(maxBase-minBase+1) perLetterH <- vpl$isize["height"]/abs(diff(current.viewport()$yscale)) res <- .pxResolution(coord="x") mw <- res * .dpOrDefault(GdObject, "min.width", 1) mwy <- max(1, mw) if(nrow(mm)){ x <- c(x, mm$position + rep(c(0, mwy, mwy, 0), each=nrow(mm))) y <- c(y, rep(mm$stack - sh, 2), rep(mm$stack + sh, 2)) id <- c(id, rep(seq(max(id, na.rm=TRUE)+1, len=nrow(mm)), 4)) gps <- rbind(gps, data.frame(col=rep(if(!(lwidth < perLetterW && lheight < perLetterH)) "transparent" else .dpOrDefault(GdObject, "col.mismatch", .DEFAULT_SHADED_COL), nrow(mm)), fill=rep(fcol[as.character(mm$base)]), lwd=rep(.dpOrDefault(GdObject, "lwd.mismatch", 1), nrow(mm)), lty=rep(.dpOrDefault(GdObject, "lty.mismatch", 1), nrow(mm)), alpha=rep(.dpOrDefault(GdObject, "alpha.mismatch", 1), nrow(mm)), stringsAsFactors=FALSE)) if(!.dpOrDefault(GdObject, "noLetters", FALSE) && lwidth < perLetterW && lheight < perLetterH) mmLetters <- data.frame(x=mm$position+0.5, y=mm$stack, label=mm$base, col=ccol[mm$base], stringsAsFactors=FALSE) } } ## Finally we draw everything grid.polygon(x=x, y=y, id=id, default.units="native", gp=gpar(col=gps$col, fill=gps$fill, lwd=gps$lwd, lty=gps$lty, alpha=gps$alpha)) if(!is.null(lineCoords)) grid.segments(lineCoords$x1, lineCoords$y1, lineCoords$x2, lineCoords$y2, gp=gpar(col=lineCoords$col, alpha=lineCoords$alpha, lwd=lineCoords$lwd, lty=lineCoords$lty), default.units="native") if(!is.null(mmLetters)) grid.text(x=mmLetters$x, y=mmLetters$y, label=mmLetters$label, gp=gpar(col=mmLetters$col), default.units="native") popViewport(2) } ## Eventually we set up the image map ##imageMap(GdObject) <- im return(invisible(GdObject)) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Draw a genome axis ##---------------------------------------------------------------------------------------------------------------------------- .expLabel <- function(GdObject, tckText, prune=FALSE){ tck <- tckText exponent <- if(is.null(.dpOrDefault(GdObject, "exponent"))){ exp <- 0 while(all(tck[tck>0]/10^exp >= 1)) exp <- exp+3 exp-3 } else max(0, .dpOrDefault(GdObject, "exponent")) if(exponent > 0){ tckText <- tckText/(10^exponent) } if(prune){ tmp <- as.character(tckText) count <- max(nchar(gsub("*.\\.", "", tmp))) while(count>1 && !any(duplicated(round(tckText, count)))){ count <- count-1 } tckText <- round(tckText, count+1) } return(switch(as.character(exponent), "0"=sprintf("%i", as.integer(tckText)), "3"=sprintf("%s kb", tckText), "6"=sprintf("%s mb", tckText), "9"=sprintf("%s gb", tckText), sapply(tckText, function(x) bquote(paste(.(x), " ",10^.(exponent)))))) } setMethod("drawGD", signature("GenomeAxisTrack"), function(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...) { debug <- .dpOrDefault(GdObject, "debug", FALSE) if((is.logical(debug) && debug) || debug=="prepare") browser() ## Nothing to do if the coordinate width is 0, so we can quit right away imageMap(GdObject) <- NULL if((maxBase-minBase)==0) return(invisible(GdObject)) ## We start by setting up the drawing canvas if(subset) GdObject <- subset(GdObject, from=minBase, to=maxBase) xscale <- if(!.dpOrDefault(GdObject, "reverseStrand", FALSE)) c(minBase, maxBase) else c(maxBase, minBase) ##pushViewport(dataViewport(xData=c(minBase, maxBase), yscale=c(-1, 1), extension=0)) pushViewport(dataViewport(xscale=xscale, yscale=c(-1, 1), extension=0)) ## Create a useful data range for the axis pres <- .pxResolution() curVp <- vpLocation() cex <- .dpOrDefault(GdObject, "cex", 0.8) lwd <- .dpOrDefault(GdObject, "lwd", 1) fontface <- .dpOrDefault(GdObject, "fontface", 1) add53 <- .dpOrDefault(GdObject, "add53", FALSE) add35 <- .dpOrDefault(GdObject, "add35", FALSE) lcex <- cex*0.75 textYOff <- pres["y"]*3 textXOff <- pres["x"]*2 endMargin <- if(add53 || add35) abs(as.numeric(convertWidth(stringWidth("5'"),"native"))*lcex)+(textXOff*2) else pres["x"]*5 axRange <- c(minBase+endMargin, maxBase-endMargin) ## We want fixed vertical sizes for axis tracks to avoid akward stretching effects. color <- .dpOrDefault(GdObject, "col", "darkgray")[1] littleTicks <- .dpOrDefault(GdObject, "littleTicks", FALSE) dfact <- max(1, .dpOrDefault(GdObject, "distFromAxis", 1)) labelPos <- .dpOrDefault(GdObject, "labelPos", "alternating") lwdAdd <- (lwd-1)/2 tickHeight <- (ifelse(littleTicks, 2, 1) * 3 * dfact + lwdAdd) * pres["y"] ids <- as.character(values(GdObject)$id) showIds <- .dpOrDefault(GdObject, "showId", FALSE) && !is.null(ids) && !all(ids=="") rcex <- .dpOrDefault(GdObject, "cex.id", 0.7) rcol <- .dpOrDefault(GdObject, "col.id", "white") sep <- (if(length(GdObject)){ if(showIds) max(1.5, ((max(as.numeric(convertHeight(stringHeight(ids),"native"))*rcex)+textYOff)/pres["y"])/2) else 1.5} else 1)+lwdAdd pyOff <- pres["y"]*sep ## In prepare mode we just want to figure out the optimal size if(prepare) { nsp <- if(is.null(.dpOrDefault(GdObject, "scale"))){ (sum(tickHeight, pyOff*2, textYOff*2 + (as.numeric(convertHeight(stringHeight("1"),"native"))/2)*cex)*2*1.3)/pres["y"] } else { labelPos <- match.arg(labelPos, c("alternating", "revAlternating", "above", "below", "beside")) if(labelPos %in% c("above", "below")){ (sum(tickHeight, pyOff*2 + (as.numeric(convertHeight(stringHeight("1"),"native"))/2)*cex)*2)/pres["y"] } else { (sum(tickHeight, pyOff*2 + (as.numeric(convertHeight(stringHeight("1"),"native"))/2)*cex))/pres["y"] } } displayPars(GdObject) <- list("neededVerticalSpace"=nsp) popViewport(1) return(invisible(GdObject)) } if((is.logical(debug) && debug) || debug=="draw") browser() ## Plot range if there is any alpha <- .dpOrDefault(GdObject, "alpha", 1) ## in "scale" mode we just plot a simple scale and return ... scaleLen <- .dpOrDefault(GdObject, "scale") if(!is.null(scaleLen)) { len <- (maxBase-minBase + 1) if(scaleLen>len) { warning(paste("scale (", scaleLen, ") cannot be larger than plotted region", len, " - setting to ~5%\n", sep="")) scaleLen = 0.05 } xoff <- len * 0.03 + minBase labelPos <- match.arg(labelPos, c("alternating", "revAlternating", "above", "below", "beside")) if(scaleLen<=1 && scaleLen>0) { # calculate and round the scale scaleLen <- len * scaleLen ex <- .dpOrDefault(GdObject, "exponent", floor(log10(scaleLen))) v <- round(scaleLen, -ex) if(v==0) v <- scaleLen } else { # if the scale is an absolute value don't round ex <- .dpOrDefault(GdObject, "exponent", floor(log10(scaleLen))) v <- scaleLen } ## work out exponent/unit label <- .expLabel(GdObject, v) grid.lines(x=c(xoff, v+xoff), y=c(0,0), default.units="native", gp=gpar(col=color, lwd=lwd, alpha=alpha)) grid.segments(x0=c(xoff, v+xoff), y0=c(0-tickHeight, 0-tickHeight), x1=c(xoff, v+xoff), y1=c(tickHeight,tickHeight, tickHeight), default.units="native", gp=gpar(col=color, lwd=lwd, alpha=alpha)) z <- len * 0.01 if(labelPos=="below"){ grid.text(label=if(is.character(label)) label else label[[1]], x=xoff+v/2, y=0-(tickHeight/1.5*dfact), just=c("center", "top"), gp=gpar(alpha=alpha, col=color, cex=cex, fontface=fontface), default.units="native") } else if(labelPos=="above"){ grid.text(label=if(is.character(label)) label else label[[1]], x=xoff+v/2, y=tickHeight/1.5*dfact, just=c("center", "bottom"), gp=gpar(alpha=alpha, col=color, cex=cex, fontface=fontface), default.units="native") } else { grid.text(label=if(is.character(label)) label else label[[1]], x=v+xoff+z, y=0, just=c("left", "center"), gp=gpar(alpha=alpha, col=color, cex=cex, fontface=fontface), default.units="native") } popViewport(1) return(invisible(GdObject)) } GdObject <- GdObject[end(GdObject) > axRange[1] & start(GdObject) < axRange[2]] if(length(GdObject)) { rfill <- .dpOrDefault(GdObject, "fill.range", "cornsilk3") rcolor <- .dpOrDefault(GdObject, "col.range", "cornsilk4")[1] diff <- .pxResolution(coord="x") GdObject <- collapseTrack(GdObject, diff=diff, xrange=c(minBase, maxBase)) start(GdObject) <- pmax(axRange[1], start(GdObject)) end(GdObject) <- pmin(axRange[2], end(GdObject)) coords <- cbind(start(GdObject), -0.1, end(GdObject), 0.1) grid.rect(x=start(GdObject), y=-pyOff, width=width(GdObject), height=pyOff*2, default.units="native", just=c("left", "bottom"), gp=gpar(col=rcolor, fill=rfill, alpha=alpha)) vals <- values(GdObject) if(showIds) grid.text(ids, x=start(GdObject) + width(GdObject)/2, y=0, gp=gpar(col=rcol, cex=rcex, fontface=fontface), default.units="native", just=c("center", "center")) ## Calculate the coordinates for the image map map <- as.matrix(.getImageMap(coords)) if(is.null(ids) || length(ids)==0) ids <- as.character(seq_len(nrow(map))) rownames(map) <- make.unique(as.character(ids)) tags <- lapply(list(title=ids, start=as.character(start(GdObject)), end=as.character(end(GdObject))), function(x){ names(x) <- rownames(map); x}) imageMap(GdObject) <- ImageMap(coords=map, tags=tags) } ## width<1, we can return here, no need for tick marks if(abs(diff(axRange))<1){ popViewport() return(invisible(GdObject)) } ## We want two parallel lines with little hooks on the ends pyHook <- pres["y"]*(sep+2+lwdAdd) pxOff <- pres["x"]*5 grid.segments(x0=rep(axRange[1], 2), y0=c(-1,1)*pyOff, x1=rep(axRange[2], 2), y1=c(-1,1)*pyOff, default.units="native", gp=gpar(col=color, alpha=alpha, lwd=lwd)) grid.segments(x0=c(axRange[2]-pxOff, axRange[1]), y0=c(pyHook, -pyOff), x1=c(axRange[2], axRange[1]+pxOff), y1=c(pyOff, -pyHook), default.units="native", gp=gpar(col=color, alpha=alpha, lwd=lwd)) ## Here we plot the top level ticks tck <- .ticks(axRange) tck <- tck[tckaxRange[1]+pxOff*2] y0t <- rep(c(1,-1)*pyOff, length(tck))[1:length(tck)] y1t <- y0t + rep(c(tickHeight, -tickHeight), length(tck))[1:length(tck)] labelPos <- match.arg(labelPos, c("alternating", "revAlternating", "above", "below", "beside")) y0t <- switch(labelPos, "alternating"=y0t, "revAlternating"=-y0t, "above"=abs(y0t), "below"=-abs(y0t), "beside"=y0t) y1t <- switch(labelPos, "alternating"=y1t, "revAlternating"=-y1t, "above"=abs(y1t), "below"=-abs(y1t), "beside"=y1t) grid.segments(x0=tck, x1=tck, y0=y0t, y1=y1t, default.units="native", gp=gpar(col=color, alpha=alpha, lwd=lwd, lineend="square")) ## The top level tick labels label <- .expLabel(GdObject, tck) ylabs <- y1t + (ifelse(y1t>0, 1, -1) * (textYOff + (as.numeric(convertHeight(stringHeight("1"),"native"))/2)*cex)) ttck <- if(min(diff(tck))==1) tck+0.5 else tck if(is.character(label)){ grid.text(label=label, x=ttck, y=ylabs, just=c("centre", "centre"), gp=gpar(cex=cex, fontface=fontface), default.units="native") }else{ for(i in seq_along(label)) grid.text(label=label[[i]], x=ttck[i], y=ylabs[i], just=c("centre", "centre"), gp=gpar(cex=cex, fontface=fontface), default.units="native") } ## The scecond level ticks and labels if necessary if (.dpOrDefault(GdObject, "littleTicks", FALSE) && length(tck)>1) { avSpace <- min(diff(tck)) spaceFac <- 1.8 spaceNeeded <- min(as.numeric(convertWidth(stringWidth(if(is.character(label)) label else "000000000"),"native"))/2)*lcex*spaceFac nTcks <- (avSpace %/% spaceNeeded) if(nTcks%%2 == 0) nTcks <- nTcks-1 btck <- tck if (!(minBase %in% btck)) btck <- c(minBase, btck) if (!(maxBase %in% btck)) btck <- c(btck, maxBase) y0lt <- y1lt <- ltck <- NULL for(i in seq_len(length(btck)-1)) { toFill <- btck[i:(i+1)] ttck <- if(i==1) rev(toFill[2]-(avSpace/nTcks)*seq_len(nTcks-1)) else toFill[1]+(avSpace/nTcks)*seq_len(nTcks-1) ltck <- c(ltck, ttck) ord <- if(i==1){ if(y0t[1]>0) c(1,-1) else c(-1,1) } else if(y0t[i-1]<0) c(1,-1) else c(-1,1) y0 <- rep(ord*pyOff, length(ttck))[1:length(ttck)] y1 <- y0 + rep(ord*tickHeight/2, length(ttck))[1:length(ttck)] y0lt <- c(y0lt, switch(labelPos, "alternating"=y0, "revAlternating"=y0, "above"=abs(y0), "below"=-abs(y0))) y1lt <- c(y1lt, switch(labelPos, "alternating"=y1, "revAlternating"=y1, "above"=abs(y1), "below"=-abs(y1))) } endPadding <- pres["x"]*15 sel <- ltck > min(tck, axRange+endPadding) & ltck < max(tck, axRange-endPadding) if(length(ltck[sel]) && min(diff(tck))>nTcks) { grid.segments(x0=ltck[sel], x1=ltck[sel], y0=y0lt[sel], y1=y1lt[sel], default.units="native", gp=gpar(col=color, alpha=alpha, lwd=lwd, lineend="square")) llabel <- .expLabel(GdObject, ltck[sel], prune=TRUE) ytlabs <- y1lt + (ifelse(y1lt>0, 1, -1) * (textYOff + (as.numeric(convertHeight(stringHeight("1"),"native"))/2)*lcex)) if(is.character(label)) grid.text(label=llabel, x=ltck[sel], y=ytlabs[sel], just=c("centre", "centre"), gp=gpar(cex=lcex, fontface=fontface), default.units="native") else for(i in seq_along(llabel)) grid.text(label=llabel[[i]], x=ltck[sel][i], y=ytlabs[sel][i], just=c("centre", "centre"), gp=gpar(cex=lcex, fontface=fontface), default.units="native") } } ## The direction indicators rev <- .dpOrDefault(GdObject, "reverseStrand", FALSE) p3 <- expression("5'") p5 <- expression("3'") if(add53) { grid.text(label=p3, x=min(axRange)-textXOff, y=pyOff, just=c(ifelse(rev, "left", "right"), "bottom"), gp=gpar(cex=cex*.75, fontface=fontface), default.units="native") grid.text(label=p5, x=max(axRange)+textXOff, y=pyOff, just=c(ifelse(rev, "right", "left"), "bottom"), gp=gpar(cex=cex*.75, fontface=fontface), default.units="native") } if(add35) { grid.text(label=p3, x=axRange[1]-textXOff, y=-pyOff, just=c(ifelse(rev, "left", "right"), "top"), gp=gpar(cex=cex*.75, fontface=fontface), default.units="native") grid.text(label=p5, x=axRange[2]+textXOff, y=-pyOff, just=c(ifelse(rev, "right", "left"), "top"), gp=gpar(cex=cex*0.75, fontface=fontface), default.units="native") } popViewport() return(invisible(GdObject))}) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Draw DetailsAnnotationTrack ##---------------------------------------------------------------------------------------------------------------------------- ## Create a data.frame with the distinct details function arguments (like start, end, ...) .buildArgsDf <- function(GdObject) { groupDetails <- .dpOrDefault(GdObject, "groupDetails", FALSE) rr <- if(groupDetails) unlist(range(split(ranges(GdObject), group(GdObject)))) else ranges(GdObject) args <- data.frame(start=as.integer(start(rr)), end=as.integer(end(rr)), strand=as.character(strand(rr)), chromosome=as.character(seqnames(rr)), identifier=as.character(if(groupDetails) names(rr) else identifier(GdObject, type="lowest")), stringsAsFactors=FALSE) return(args) } setMethod("drawGD", signature("DetailsAnnotationTrack"), function(GdObject, minBase, maxBase, prepare=FALSE, ...){ debug <- .dpOrDefault(GdObject, "debug", FALSE) if((is.logical(debug) && debug) || debug=="prepare") browser() adf <- .buildArgsDf(GdObject) args <- .dpOrDefault(GdObject, "detailsFunArgs", fromPrototype=TRUE) groupDetails <- .dpOrDefault(GdObject, "groupDetails", FALSE) if(prepare){ GdObject <- callNextMethod() GdObject <- GdObject[order(start(GdObject))] indices <- if(groupDetails) seq_len(length(unique(group(GdObject)))) else seq_len(length(GdObject)) xscale <- if(!.dpOrDefault(GdObject, "reverseStrand", FALSE)) c(minBase, maxBase) else c(maxBase, minBase) pushViewport(viewport(xscale=xscale)) hasWarned <- FALSE select <- sapply(indices, function(i){ iargs <- as.list(adf[i,]) iargs$index <- i iargs$GdObject <- GdObject iargs$GdObject.original <- .dpOrDefault(GdObject, ".__OriginalGdObject", GdObject) args <- c(args[setdiff(names(args), names(iargs))], iargs) res <- do.call(GdObject@selectFun, args) if(length(res)!=1 || !is.logical(res) || is.na(res)){ if(!hasWarned) warning("The result of function 'selectFun' has to be a single logical value. Forcing the value to 'TRUE'") hasWarned <<- TRUE res <- TRUE } res }) popViewport(1) displayPars(GdObject) <- list(".__select"=select) return(invisible(GdObject)) } if((is.logical(debug) && debug) || debug=="draw") browser() n <- length(GdObject) col <- rep(.dpOrDefault(GdObject, "detailsConnector.col", fromPrototype=TRUE), n)[1:n] lty <- rep(.dpOrDefault(GdObject, "detailsConnector.lty", fromPrototype=TRUE), n)[1:n] lwd <- rep(.dpOrDefault(GdObject, "detailsConnector.lwd", fromPrototype=TRUE), n)[1:n] pch <- rep(.dpOrDefault(GdObject, "detailsConnector.pch", fromPrototype=TRUE), n)[1:n] cex <- rep(.dpOrDefault(GdObject, "detailsConnector.cex", fromPrototype=TRUE), n)[1:n] border.lty <- rep(.dpOrDefault(GdObject, "detailsBorder.lty", fromPrototype=TRUE), n)[1:n] border.lwd <- rep(.dpOrDefault(GdObject, "detailsBorder.lwd", fromPrototype=TRUE), n)[1:n] border.col <- rep(.dpOrDefault(GdObject, "detailsBorder.col", fromPrototype=TRUE), n)[1:n] border.fill <-rep(.dpOrDefault(GdObject, "detailsBorder.fill", fromPrototype=TRUE), n)[1:n] minwidth <- .dpOrDefault(GdObject, "details.minWidth", fromPrototype=TRUE) size <- .dpOrDefault(GdObject, "details.size", fromPrototype=TRUE) xyratio <- .dpOrDefault(GdObject, "details.ratio", fromPrototype=TRUE) if ( 0 >= size || size > 1 ) { warning("details.size must be >0 and <1 - reset to 0.5") size = 0.5 } selection <- .dpOrDefault(GdObject, ".__select", rep(TRUE, length(GdObject))) len <- sum(selection) bins <- if(!groupDetails) stacks(GdObject) else sapply(split(stacks(GdObject) , group(GdObject)), unique) stacks <- max(bins) if(len>0){ if( ((maxBase-minBase)/len)/.pxResolution(coord="x") < minwidth ) { warning("too much detail for available space (plot fewer annotation or increase details.minWidth)!") popViewport(1) GdObject <- callNextMethod() return(GdObject) } rr <- if(groupDetails) unlist(range(split(ranges(GdObject), group(GdObject)))) else ranges(GdObject) xloc1 <- (end(rr) - start(rr))/2+start(rr) yloc1 <- (stacks - (bins - 0.5)+1) xloc2 <- ((1/len*seq_len(len))-1/len + (1/len*0.5)) yloc2 <- rep(1, len) ## draw details plots (via user supplied function 'fun') pushViewport(viewport(height=size, y=1-size, just=c(0.5, 0))) w <- 1 v <- 0 vpl <- vpLocation() r <- vpl$size["width"]/len/vpl$size["height"] if ( r > xyratio ) { w <- xyratio/r v <- ((1/len) - (1/len*w))/2 } indices <- if(groupDetails) seq_len(length(unique(group(GdObject)))) else seq_len(length(GdObject)) j <- 1 pres <- list() hasError <- FALSE for(i in indices[selection]) { pushViewport(viewport(width=1/len*w, x=((1/len*j)-1/len)+(v), just=c(0, 0.5))) grid.rect(gp=gpar(col=border.col[i], lwd=border.lwd[i], lty=border.lty[i], fill=border.fill[i])) iargs <- as.list(adf[i,]) iargs$index <- i iargs$GdObject <- GdObject iargs$GdObject.original <- .dpOrDefault(GdObject, ".__OriginalGdObject", GdObject) args <- c(args[setdiff(names(args), names(iargs))], iargs) pres[[as.character(j)]] <- try(do.call(GdObject@fun, args), silent=TRUE) if(!is.null(pres) && is(pres[[as.character(j)]], "try-error")){ hasError <- TRUE grid.segments(x0=c(0.1,0.1), x1=c(0.9,0.9), y0=c(0.9,0.1), y1=c(0.1,0.9), gp=gpar(col="red", lwd=3)) } popViewport(1) j <- j+1 } if(hasError) warning("There have been errors in the detail plotting function:\n", paste(pres, collapse="\n")) popViewport(1) ## plot AnnotationTrack and connectors to details xscale <- if(!.dpOrDefault(GdObject, "reverseStrand", FALSE)) c(minBase, maxBase) else c(maxBase, minBase) pushViewport(viewport(xscale=xscale, yscale=c(1, stacks+1), clip=FALSE, height=1-size, y=0, just=c(.5, 0))) GdObject <- callNextMethod() grid.segments(x0=unit(xloc1[selection], "native"), x1=xloc2, y0=unit(yloc1[selection], "native"), y1=yloc2, gp=gpar(col=col, lwd=lwd, lty=lty, cex=cex)) grid.points(x=unit(xloc2, "npc"), y=unit(yloc2, "npc"), gp=gpar(col=col, cex=cex), pch=pch) grid.points(x=unit(xloc1[selection], "native"), y=unit(yloc1[selection], "native"), gp=gpar(col=col, cex=cex), pch=pch) popViewport(1) }else{ GdObject <- callNextMethod() } return(invisible(GdObject)) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Draw a data track ##---------------------------------------------------------------------------------------------------------------------------- ## Helper function to return the absolute extreme value in a vector .extreme <- function(x) if(all(is.na(x))) NA else x[which.max(abs(x))] ## Map numeric range to values from 1 to n .z2icol <- function(z, n, xrange=range(z, na.rm=TRUE)) { res <- round((z - xrange[1])/diff(xrange) * (n - 1)) + 1 res[res > n] = n res[res < 1] = 1 return(res) } setMethod("drawGD", signature("DataTrack"), function(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...) { debug <- .dpOrDefault(GdObject, "debug", FALSE) if((is.logical(debug) && debug) || debug=="prepare") browser() imageMap(GdObject) <- NULL type <- .dpOrDefault(GdObject, "type", "p") type <- match.arg(type, .PLOT_TYPES, several.ok=TRUE) ## Grouping may be useful for some of the plot types, may be ignored for others vals <- values(GdObject) groups <- .dpOrDefault(GdObject, "groups") if(!is.null(groups) && length(groups) != nrow(vals)) stop("'groups' must be a vector of similar length as the number of rows in the data matrix (", nrow(vals), ")") if(!is.null(groups) && !is.factor(groups)) groups <- factor(groups) stacked <- .dpOrDefault(GdObject, "stackedBars", FALSE) ## The general "col" parameter should be the default for all relevant colors except when there are groups. pcols <- .getPlottingFeatures(GdObject) ## In prepare mode we collapse the track to allow for aggregation and so on since we need the final data ## values to draw the axis. if(prepare) { if(subset) GdObject <- subset(GdObject, from=minBase, to=maxBase) xscale <- if(!.dpOrDefault(GdObject, "reverseStrand", FALSE)) c(minBase, maxBase) else c(maxBase, minBase) pushViewport(viewport(xscale=xscale, yscale=c(0,1), clip=TRUE)) diff <- .pxResolution(coord="x") GdObject <- collapseTrack(GdObject, diff=diff, xrange=c(minBase, maxBase)) popViewport(1) ## If we have groups and stacked histograms we have to adjust the ylim values, also for regular histograms if("histogram" %in% type) { vals <- values(GdObject) groups <- rep(groups, ncol(vals)) ylim <- .dpOrDefault(GdObject, "ylim") agFun <- .aggregator(GdObject) if(!is.null(groups) && nlevels(groups)>1) { valsS <- if(ncol(vals)) matrix(sapply(split(vals, groups), function(x) agFun(t(matrix(x, ncol=ncol(vals))))), nrow=ncol(vals)) else{ matrix(nrow=nlevels(groups), ncol=0, dimnames=list(levels(groups)))} displayPars(GdObject) <- list(".__valsS"=valsS) if(stacked==TRUE && is.null(ylim)) { ylim <- suppressWarnings(range(unlist(apply(valsS, 1, function(x){ x <- x[!is.na(x)] sel <- x>=0 tmp <- NULL if(!all(is.na(sel))) { if(any(sel)) tmp <- c(min(x[sel]), sum(x[sel])) if(any(!sel)) tmp <- c(max(x[!sel]), tmp, sum(x[!sel])) } tmp})))) if(length(type)>1) ylim <- range(c(ylim, vals)) displayPars(GdObject) <- list(ylim=ylim) } } else { if(is.null(ylim)) { valsA <- agFun(t(vals)) ylim <- if(!length(valsA)) c(-1,1) else c(min(c(0,valsA), na.rm=TRUE), max(valsA, na.rm=TRUE)) if(length(type)>1) ylim <- range(c(ylim, vals), na.rm=TRUE) displayPars(GdObject) <- list(ylim=ylim) } } } ## If we want a legend we have to figure out how much vertical space is needed grps <- .dpOrDefault(GdObject, "groups") if(!is.factor(grps)) grps <- factor(grps) if(is.null(grps) || nlevels(grps)==1 || length(setdiff(type, c("gradient", "mountain", "grid", "horizon"))) == 0) displayPars(GdObject) <- list(legend=FALSE) if(as.logical(as.logical(.dpOrDefault(GdObject, "legend", FALSE))) && nlevels(grps)>1){ pushViewport(viewport(width=unit(1, "npc")-unit(0.2,"inches"), gp=.fontGp(GdObject, "legend"))) grps <- levels(grps) legInfo <- .legendInfo()[type,, drop=FALSE] for(i in colnames(legInfo)) legInfo[,i] <- any(legInfo[,i]) && !any(duplicated(pcols[[i]][1:length(grps)])) legFactors <- sort(names(which(apply(legInfo, 2, any)))) boxSize <- if(length(setdiff(legFactors, c("col", "cex")))==0) 0.1 else 0.3 spacing <- 0.1 hspacing <- 0.02 lengths <- as.numeric(convertUnit(stringWidth(grps),"inches")) heights <- as.numeric(convertWidth(stringHeight(grps),"inches")) colWidth <- max(lengths + boxSize + spacing*2) availSpace <- vpLocation()$isize colNum <- max(1, availSpace["width"] %/% colWidth) rowNum <- ceiling(length(grps)/colNum) rowHeight <- max(c(heights, 0.1)) vertSpace <- (rowHeight * rowNum) + (hspacing * (rowNum-1)) + 0.2 displayPars(GdObject) <- list(".__verticalSpace"=vertSpace, ".__layoutDims"=c(rowNum, colNum), ".__boxSize"=boxSize, ".__spacing"=spacing, ".__groupLevels"=grps, ".__legFactors"=legFactors) popViewport(1) } return(invisible(GdObject)) } if((is.logical(debug) && debug) || debug=="draw") browser() ## We only proceed if there is something to draw within the ranges, but still may have to add the grid and the legend. ## Legend drawing causes another viewport for all the other graphics to be opened and will be called after all other ## drawing has finished, hence we call it in on.exit if(subset) GdObject <- subset(GdObject, from=minBase, to=maxBase) alpha <- .dpOrDefault(GdObject, "alpha", 1) ## The optional legend is plotted below the data grpLevels <- .dpOrDefault(GdObject, ".__groupLevels") if(as.logical(.dpOrDefault(GdObject, "legend", FALSE)) && !is.null(grpLevels)){ lSpace <- .dpOrDefault(GdObject, ".__verticalSpace") pushViewport(viewport(y=1, height=unit(1, "npc") - unit(lSpace, "inches"), just=c(0.5, 1))) on.exit({popViewport(1) cex <- .dpOrDefault(GdObject, "cex.legend", 0.8) legFactors <- .dpOrDefault(GdObject, ".__legFactors", character()) pushViewport(viewport(y=0, height=unit(lSpace, "inches"), just=c(0.5, 0), gp=.fontGp(GdObject, "legend"))) pushViewport(viewport(width=unit(1, "npc") - unit(0.1, "inches"), height=unit(1, "npc") - unit(0.1, "inches"))) boxSize <- .dpOrDefault(GdObject, ".__boxSize") spacing <- .dpOrDefault(GdObject, ".__spacing") dims <- .dpOrDefault(GdObject, ".__layoutDims") for(i in seq_along(grpLevels)){ row <- (((i)-1) %/% dims[2])+1 col <- (((i)-1) %% dims[2])+1 pushViewport(viewport(width=1/dims[2], height=1/dims[1], x=(1/dims[2])*(col-1), y=1-((1/dims[1])*(row-1)), just=c(0,1))) if(length(setdiff(legFactors, c("col")))==0){ grid.rect(width=unit(boxSize, "inches"), height=unit(boxSize, "inches"), x=0, just=c(0, 0.5), gp=gpar(fill=pcols$col[i], col=.DEFAULT_SHADED_COL)) } else { if(any(c("pch", "col.symbol") %in% legFactors)) panel.points(unit(boxSize/2, "inches"), 0.5, pch=pcols$pch[i], cex=pcols$cex[i], col=pcols$col.symbol[i]) if(any(c("lwd", "lty", "col.lines") %in% legFactors)) ##panel.lines(unit(c(0,boxSize), "inches"), c(0.5, 0.5), col=pcols$col.line[i], lwd=pcols$lwd[i], lty=pcols$lty[i]) grid.lines(unit(c(0,boxSize), "inches"), c(0.5, 0.5), gp=gpar(col=pcols$col.line[i], lwd=pcols$lwd[i], lty=pcols$lty[i])) } grid.text(x=unit(boxSize+spacing, "inches"), y=0.5, just=c(0, 0.5), label=grpLevels[i]) popViewport(1) } if(.dpOrDefault(GdObject, "box.legend", FALSE)) grid.rect(width=(1/dims[2])*length(grpLevels), x=0, just="left", gp=gpar(fill=NA)) popViewport(2) }) } if(!length(GdObject)) { if ("g" %in% type) panel.grid(h=.dpOrDefault(GdObject, "h", -1), v=.dpOrDefault(GdObject, "v", -1), col=.dpOrDefault(GdObject, "col.grid", "#e6e6e6"), lty=.dpOrDefault(GdObject, "lty.grid", 1), lwd=.dpOrDefault(GdObject, "lwd.grid", 1), alpha=alpha) return(invisible(GdObject)) } vals <- values(GdObject) ylim <- suppressWarnings(.dpOrDefault(GdObject, "ylim", range(vals, na.rm=TRUE, finite=TRUE))) if(diff(ylim)==0) ylim <- ylim+c(-1,1) if(all(is.infinite(ylim))) ylim <- c(0,1) ylimExt <- extendrange(r=ylim, f=0.05) xscale <- if(!.dpOrDefault(GdObject, "reverseStrand", FALSE)) c(minBase, maxBase) else c(maxBase, minBase) pushViewport(viewport(xscale=xscale, yscale=ylimExt, clip=TRUE)) ## The plotting parameters, some defaults from the lattice package first plot.symbol <- trellis.par.get("plot.symbol") superpose.symbol <- trellis.par.get("superpose.symbol") superpose.line <- trellis.par.get("superpose.line") groups <- rep(groups, ncol(vals)) ## For loess calculation we need some settings span <- .dpOrDefault(GdObject, "span", 1/5) degree <- .dpOrDefault(GdObject, "degree", 1) family <- .dpOrDefault(GdObject, "family", c("symmetric", "gaussian")) evaluation <- .dpOrDefault(GdObject, "evaluation", 50) font <- .dpOrDefault(GdObject, "font", if (is.null(groups)) plot.symbol$font else superpose.symbol$font) fontface <- .dpOrDefault(GdObject, "fontface", if (is.null(groups)) plot.symbol$fontface else superpose.symbol$fontface) fontsize <- .dpOrDefault(GdObject, "fontsize", if (is.null(groups)) plot.symbol$fontsize else superpose.symbol$fontsize) ## An optional baseline to be added baseline <- .dpOrDefault(GdObject, "baseline") lwd.baseline <- .dpOrDefault(GdObject, "lwd.baseline", pcols$lwd[1]) lty.baseline <- .dpOrDefault(GdObject, "lty.baseline", pcols$lty[1]) ## The actual plotting values pos <- position(GdObject) x <- rep(pos, each=nrow(vals)) y <- as.numeric(vals) ## A grid should always be plotted first, so we need to catch this here wg <- match("g", type, nomatch = NA_character_) if (!is.na(wg)) { panel.grid(h=.dpOrDefault(GdObject, "h", -1), v=.dpOrDefault(GdObject, "v", -1), col=pcols$col.grid, lty=pcols$lty.grid, lwd=pcols$lwd.grid) type <- type[-wg] } ## The special type 'mountain' has to be handled separately if("mountain" %in% type) { mbaseline <- if(is.null(baseline)) 0 else baseline[1] fill.mountain <- .dpOrDefault(GdObject, "fill.mountain", superpose.symbol$fill)[1:2] col.mountain <- .dpOrDefault(GdObject, "col.mountain", pcols$col)[1] col.baseline <- .dpOrDefault(GdObject, "col.baseline", col.mountain)[1] lwd.mountain <- .dpOrDefault(GdObject, "lwd.mountain", pcols$lwd)[1] lty.mountain <- .dpOrDefault(GdObject, "lty.mountain", pcols$lty)[1] .panel.mountain(x, y, col=col.mountain, fill=fill.mountain, span=span, degree=degree, family=family, evaluation=evaluation, lwd=lwd.mountain, lty=lty.mountain, col.line=col.mountain, alpha=alpha, baseline=mbaseline) if(!is.na(mbaseline)) panel.abline(h=mbaseline, col=col.baseline, lwd=lwd.baseline, lty=lty.baseline, alpha=alpha) } ## The special type 'polygon' has to be handled separately if("polygon" %in% type) { mbaseline <- if(is.null(baseline)) 0 else baseline[1] fill.mountain <- .dpOrDefault(GdObject, "fill.mountain", superpose.symbol$fill)[1:2] col.mountain <- .dpOrDefault(GdObject, "col.mountain", pcols$col)[1] col.baseline <- .dpOrDefault(GdObject, "col.baseline", col.mountain)[1] lwd.mountain <- .dpOrDefault(GdObject, "lwd.mountain", pcols$lwd)[1] lty.mountain <- .dpOrDefault(GdObject, "lty.mountain", pcols$lty)[1] .panel.polygon(x, y, col=col.mountain, fill=fill.mountain, lwd=lwd.mountain, lty=lty.mountain, col.line=col.mountain, alpha=alpha, baseline=mbaseline) if(!is.na(mbaseline)) panel.abline(h=mbaseline, col=col.baseline, lwd=lwd.baseline, lty=lty.baseline, alpha=alpha) } ## Also the type 'boxplot' is handled up front if("boxplot" %in% type) { diff <- .pxResolution(coord="x") box.ratio <- .dpOrDefault(GdObject, "box.ratio", 1) sx <- sort(unique(x)) sxd <- if(length(sx) == 1) 1 else diff(sx) box.width <- .dpOrDefault(GdObject, "box.width", (((min(sxd)*0.5)/box.ratio)/diff))*diff if(!is.null(groups)) { tw <- min(width(GdObject)) spacer <- diff nb <- nlevels(groups) bw <- .dpOrDefault(GdObject, "box.width", ((tw-(nb+2)*spacer)/nb)/diff)*diff bcex <- min(pcols$cex[1], (bw/diff)/20) by <- lapply(split(vals, groups), matrix, ncol=ncol(vals)) for(j in seq_along(by)) { nn <- nrow(by[[j]]) off <- (width(GdObject) - (bw*nb) - ((nb + 2) * spacer))/2 xx <- rep(start(GdObject)+(j*spacer)+(j*bw)+off, each=nn) - (bw/2) .panel.bwplot(xx, as.numeric(by[[j]]), box.ratio=box.ratio, box.width=(bw/2)/box.ratio, pch=pcols$pch[1], lwd=pcols$lwd[1], lty=pcols$lty[1], fontsize=fontsize, col=pcols$col.histogram, cex=bcex, font=font, fontfamily=font, fontface=fontface, fill=pcols$col[j], varwidth=.dpOrDefault(GdObject, "varwidth", FALSE), notch=.dpOrDefault(GdObject, "notch", FALSE), notch.frac=.dpOrDefault(GdObject, "notch.frac", 0.5), levels.fos=.dpOrDefault(GdObject, "level.fos", sort(unique(xx))), stats=.dpOrDefault(GdObject, "stats", boxplot.stats), coef=.dpOrDefault(GdObject, "coef", 1.5), do.out=.dpOrDefault(GdObject, "do.out", TRUE), alpha=alpha) } diffY <- .pxResolution(coord="y", 2) outline <- apply(vals, 2, range) grid.rect(start(GdObject), outline[1,]-diffY, width=width(GdObject), height=abs(outline[2,]-outline[1,])+(2*diffY), gp=gpar(col=pcols$col.histogram, fill="transparent", alpha=alpha, lty="dotted"), default.units="native", just=c("left", "bottom")) } else { bcex <- min(pcols$cex[1], ((box.width*2)/diff)/20) .panel.bwplot(x, y, box.ratio=box.ratio, box.width=box.width, pch=pcols$pch[1], lwd=pcols$lwd[1], lty=pcols$lty[1], fontsize=fontsize, col=pcols$col.histogram, cex=bcex, font=font, fontfamily=font, fontface=fontface, fill=pcols$fill[1], varwidth=.dpOrDefault(GdObject, "varwidth", FALSE), notch=.dpOrDefault(GdObject, "notch", FALSE), notch.frac=.dpOrDefault(GdObject, "notch.frac", 0.5), levels.fos=.dpOrDefault(GdObject, "level.fos", sort(unique(x))), stats=.dpOrDefault(GdObject, "stats", boxplot.stats), coef=.dpOrDefault(GdObject, "coef", 1.5), do.out=.dpOrDefault(GdObject, "do.out", TRUE), alpha=alpha) } } ## 'histogram' fills up the full range area if its width is > 1 if("histogram" %in% type) { ylimSort <- sort(ylimExt) yy <- if(ylimSort[1]<=0 && ylimSort[2]>=0) 0 else ylimSort[1] if(!is.null(groups) && nlevels(groups)>1) { valsS <- .dpOrDefault(GdObject, ".__valsS") if(stacked) { curMinPos <- curMaxPos <- rep(yy, nrow(valsS)) for(s in seq_len(ncol(valsS))) { if(!all(is.na(valsS[,s]))) { sel <- !is.na(valsS[,s]) & valsS[,s]>=0 yyy <- curMinPos yyy[sel] <- curMaxPos[sel] offset <- yyy offset[offset!=yy] <- 0 grid.rect(start(GdObject), yyy, width=width(GdObject), height=valsS[,s]-offset, gp=gpar(col="transparent", fill=pcols$col[s], lwd=pcols$lwd[1], lty=pcols$lty[1], alpha=alpha), default.units="native", just=c("left", "bottom")) curMaxPos[sel] <- curMaxPos[sel]+(valsS[sel,s]-offset[sel]) curMinPos[!sel] <- curMinPos[!sel]+(valsS[!sel,s]-offset[!sel]) } } diff <- .pxResolution(coord="x", pcols$lwd[1]+1) tooNarrow <- width(GdObject) spacer ## FIXME: how do we treat this if there is not enough space to plot? sel <- !logical(length(subW)) if(any(sel)) { subW <- subW[sel] valsS <- valsS[sel,] subX <- rep(start(GdObject)[sel], len) + (subW * rep(seq_len(len)-1, each=sum(sel))) + (spacer * rep(seq_len(len), each=sum(sel))) grid.rect(subX, yy, width=rep(subW, len), height=valsS-yy, gp=gpar(col="transparent", fill=rep(pcols$col[1:len], each=sum(sel)), lwd=pcols$lwd[1], lty=pcols$lty[1], alpha=alpha), default.units="native", just=c("left", "bottom")) } } } else { agFun <- .aggregator(GdObject) valsS <- agFun(t(vals)) grid.rect(start(GdObject), yy, width=width(GdObject), height=valsS-yy, gp=gpar(col=pcols$col.histogram, fill=pcols$fill.histogram, lwd=pcols$lwd[1], lty=pcols$lty[1], alpha=alpha), default.units="native", just=c("left", "bottom")) } } ## gradient summarizes the data as a color gradient if("gradient" %in% type) { ncolor <- .dpOrDefault(GdObject, "ncolor", 100) gradient <- colorRampPalette(.dpOrDefault(GdObject, "gradient", brewer.pal(9, "Blues")))(ncolor) valsScaled <- .z2icol(colMeans(vals, na.rm=TRUE), ncolor, sort(ylim)) grid.rect(start(GdObject), sort(ylim)[1], width=width(GdObject), height=abs(diff(ylim)), gp=gpar(col=gradient[valsScaled], fill=gradient[valsScaled], alpha=alpha), default.units="native", just=c("left", "bottom")) } ## heatmap does the same, but for each sample individually if("heatmap" %in% type) { ncolor <- .dpOrDefault(GdObject, "ncolor", 100) valsScaled <- .z2icol(vals, ncolor, sort(ylim)) nr <- nrow(vals) yy <- seq(min(ylim), max(ylim), len=nr+1)[-1] ydiff <- .pxResolution(coord="y") separator <- .dpOrDefault(GdObject, "separator", 0)*ydiff if(!is.null(groups)) { valsS <- split(vals, groups) freq <- table(factor(.dpOrDefault(GdObject, "groups"))) cmf <- c(0, cumsum(freq)) for(s in seq_along(valsS)) { gradient <- colorRampPalette(c("white", pcols$col[s]))(ncolor+5)[-(1:5)] valsScaled <- .z2icol(valsS[[s]], ncolor, sort(ylim)) grid.rect(rep(start(GdObject), each=freq[s]), yy[(cmf[s]+1):cmf[s+1]], width=rep(width(GdObject), each=freq[s]), height=max(ydiff, abs(diff(ylim))*(1/nr)-separator), gp=gpar(col=gradient[valsScaled], fill=gradient[valsScaled], alpha=alpha), default.units="native", just=c("left", "top")) } } else { gradient <- colorRampPalette(.dpOrDefault(GdObject, "gradient", brewer.pal(9, "Blues")))(ncolor) grid.rect(rep(start(GdObject), each=nr), rev(yy), width=rep(width(GdObject), each=nr), height=max(ydiff, abs(diff(ylim))*(1/nr)-separator), gp=gpar(col=gradient[valsScaled], fill=gradient[valsScaled], alpha=alpha), default.units="native", just=c("left", "top")) } } ## For the horizon plot we can use the latticeExtra panel function, but need to reset the y-range if("horizon" %in% type){ nband <- 3 origin <- .dpOrDefault(GdObject, "horizon.origin", 0) gr <- if(is.null(groups)) rep(1, nrow(vals)) else factor(.dpOrDefault(GdObject, "groups")) yy <- lapply(split(as.data.frame(vals), gr), colMeans, na.rm=TRUE) hfill <- .dpOrDefault(GdObject, "fill.horizon", .DEFAULT_HORIZON_COL) hcol <- .dpOrDefault(GdObject, "col.horizon", NA) separator <- ceiling(.dpOrDefault(GdObject, "separator", 0)/2) pushViewport(viewport(height=0.95, clip=TRUE)) for(i in seq_along(yy)){ yi <- yy[[i]] horizonscale <- .dpOrDefault(GdObject, "horizon.scale", max(abs(yi - origin), na.rm=TRUE)/nband) yr <- origin + c(0, horizonscale) pushViewport(viewport(y=(i-1)/length(yy), height=1/length(yy), just=c(0.5, 0), clip=TRUE)) pushViewport(viewport(height=unit(1, "npc") - unit(separator, "points"), clip=TRUE)) xscale <- if(!.dpOrDefault(GdObject, "reverseStrand", FALSE)) c(minBase, maxBase) else c(maxBase, minBase) pushViewport(viewport(xscale=xscale, yscale=yr, clip=TRUE)) panel.horizonplot(pos, yi, border=hcol, col.regions=hfill) popViewport(3) } popViewport(1) } ## plot key-value pairs defined here. plot_args <- list(type=type, groups=groups, pch=pcols$pch, col=pcols$col, col.line=pcols$col.line, col.symbol=pcols$col.symbol, fill=pcols$fill, font=font, fontfamily=font, fontface=fontface, lty=pcols$lty, cex=pcols$cex, lwd=pcols$lwd, horizontal=FALSE, span=span, degree=degree, family=family, evaluation=evaluation, jitter.x=.dpOrDefault(GdObject, "jitter.x", FALSE), jitter.y=.dpOrDefault(GdObject, "jitter.y", FALSE), factor=.dpOrDefault(GdObject, "factor", 0.5), amount=.dpOrDefault(GdObject, "amount"), alpha=alpha) ## The rest uses the lattice panel function na.rm <- .dpOrDefault(GdObject, "na.rm", FALSE) sel <- is.na(y) if(na.rm && any(sel)) { x <- x[!sel] y <- y[!sel] groups <- groups[!sel] } plot_args[["x"]] <- x; plot_args[["y"]] <- y; plot_args[["subscripts"]] <- seq_along(x); ## confidence interval bands if ("confint" %in% type) { ## column-wise SD calculation vectorizedSD <- function(mat, na.rm) { ssq <- colSums(mat^2,na.rm=na.rm) sumel <- colSums(mat,na.rm=na.rm) N <- nrow(mat) var <- (1/(N-1))*(ssq - (sumel^2)/N) return(sqrt(var)) } debugMode <- FALSE my.panel.bands <- function(df, col, fill, font, fontface,...){ upper <- df$high; lower <- df$low; x <- df$x; y <- df$y; na_idx <- which(is.na(upper)) ## case 1. there are no error bars to plot at all if (length(na_idx) == length(upper)) { if (debugMode) cat("\t Case 1: all empty. returning\n") return(TRUE) ## case 2. no missing points } else if (length(na_idx)<1) { if (debugMode) cat("\t Case 2: one continuous polygon\n") panel.polygon(c(x, rev(x)), c(upper,rev(lower)), border=col, col=fill, alpha=alpha, ...) ## case 3. have complete data with some or no missing points } else { curr_start <-min(which(!is.na(upper))) if (debugMode) cat(sprintf("\t Case 3: %i of %i NA\n", length(na_idx), length(upper))) curr_na_pos <- 1 while(curr_na_pos <= length(na_idx)) { if (debugMode) cat(sprintf("\t\tcurr_na_pos = %i, na_idx length= %i\n", curr_na_pos, length(na_idx))) ## complete the current poly idx <- curr_start:(na_idx[curr_na_pos]-1) panel.polygon(c(x[idx], rev(x[idx])), c(upper[idx],rev(lower[idx])), col=fill, border=col, alpha=alpha, ...) ## contiguous empty spots - skip while ((na_idx[curr_na_pos + 1] == na_idx[curr_na_pos]+1) && (curr_na_pos < length(na_idx))) { if (debugMode) cat(sprintf("\t\ttight-loop:curr_na_pos = %i\n", curr_na_pos)) curr_na_pos <- curr_na_pos + 1 } ## at this point, either we've finished NA spots or the next one is far away. ## In any case start a poly and move to the next NA spot curr_start <- na_idx[curr_na_pos] + 1; curr_na_pos <- curr_na_pos + 1 } ## there is one last polygon at the end of the view range if (na_idx[length(na_idx)] < length(upper)) { if (debugMode) cat("\tWrapping last polygon\n") idx <- curr_start:length(upper) panel.polygon(c(x[idx], rev(x[idx])), c(upper[idx],rev(lower[idx])), col=fill, border=col, alpha=alpha, ...) } } } fill <- .dpOrDefault(GdObject, "fill.confint", pcols$col) col <- .dpOrDefault(GdObject, "col.confint", pcols$col) alpha <- .dpOrDefault(GdObject, "alpha.confint") outg <- NULL if (!is.null(groups)){ groups <- .dpOrDefault(GdObject,"groups") by <- lapply(split(vals, groups), matrix, ncol=ncol(vals)) mu <- list(); confint <- list() minnie <- Inf; maxie <- -Inf; df <- NULL outPlot <- NULL mu <- list(); confint <- list() xvals <- position(GdObject) ## buffer variation to set final limits for (j in seq_along(by)) { mu[[j]] <- colMeans(by[[j]],na.rm=TRUE) locusSD <- vectorizedSD(by[[j]], na.rm) confint[[j]] <- 1.96*(locusSD/sqrt(nrow(by[[j]]))) curr_low <- mu[[j]]-confint[[j]] curr_high <- mu[[j]]+confint[[j]] minnie <- min(c(minnie, curr_low)) maxie <- max(c(maxie, curr_high)) } names(fill) <- NULL for (j in seq_along(by)) { g <- names(by)[j] if (debugMode) print(g) df <- data.frame(x=position(GdObject), y=mu[[j]], low=mu[[j]]-confint[[j]], high=mu[[j]]+confint[[j]], groups=factor(g)) my.panel.bands(df, col[j], fill[j], alpha, ...) } } else { mu <- colMeans(vals,na.rm=TRUE) locusSD <- vectorizedSD(vals, na.rm) confint <- 1.96*(locusSD/sqrt(nrow(vals))) df <- data.frame(x=position(GdObject), y=mu, low=mu-confint, high=mu+confint, groups=factor(1)); my.panel.bands(df, col[1], fill[1], alpha, ...) } } do.call("panel.xyplot", plot_args) if(!any(c("mountain","polygon") %in% type) && !is.null(baseline) && !is.na(baseline)) panel.abline(h=baseline, col=pcols$col.baseline, lwd=lwd.baseline, lty=lty.baseline, alpha=alpha) popViewport(1) return(invisible(GdObject)) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Draw a AlignedRead track ##---------------------------------------------------------------------------------------------------------------------------- setMethod("drawGD", signature("AlignedReadTrack"), function(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...) { debug <- .dpOrDefault(GdObject, "debug", FALSE) if((is.logical(debug) && debug) || debug=="prepare") browser() imageMap(GdObject) <- NULL detail <- match.arg(.dpOrDefault(GdObject, "detail", "coverage"), c("reads", "coverage")) ## Nothing to do in prepare mode if detail is not 'reads', so we can quit right away, else we need to set the stacking info if(prepare){ if(detail=="read"){ if(subset) GdObject <- subset(GdObject, from=minBase, to=maxBase) ##GdObject <- setStacks(GdObject) } return(invisible(GdObject)) } if((is.logical(debug) && debug) || debug=="draw") browser() ## We only proceed if there is something to draw within the ranges, but still may have to add the grid and the legend. ## Legend drawing causes another viewport for all the other graphics to be opened and will be called after all other ## drawing has finished, hence we call it in on.exit if(subset) GdObject <- subset(GdObject, from=minBase, to=maxBase) alpha <- .dpOrDefault(GdObject, "alpha", 1) ## The optional legend is plotted below the data grpLevels <- .dpOrDefault(GdObject, ".__groupLevels") if(as.logical(.dpOrDefault(GdObject, "legend", FALSE)) && !is.null(grpLevels)){ lSpace <- .dpOrDefault(GdObject, ".__verticalSpace") pushViewport(viewport(y=1, height=unit(1, "npc") - unit(lSpace, "inches"), just=c(0.5, 1))) on.exit({popViewport(1) cex <- .dpOrDefault(GdObject, "cex.legend", 0.8) legFactors <- .dpOrDefault(GdObject, ".__legFactors", character()) fontsize <- .dpOrDefault(GdObject, "fontsize.legend", 12) fontface <- .dpOrDefault(GdObject, "fontface.legend", 1) lineheight <- .dpOrDefault(GdObject, "lineheight.legend", 1) fontfamily <- .dpOrDefault(GdObject, "fontfamily.legend", 1) fontcolor <- .dpOrDefault(GdObject, "fontcolor.legend", .DEFAULT_SHADED_COL) pushViewport(viewport(y=0, height=unit(lSpace, "inches"), just=c(0.5, 0), gp=gpar(cex=cex, fontsize=fontsize, fontface=fontface, fontcolor=fontcolor, lineheight=lineheight))) pushViewport(viewport(width=unit(1, "npc") - unit(0.1, "inches"), height=unit(1, "npc") - unit(0.1, "inches"))) boxSize <- .dpOrDefault(GdObject, ".__boxSize") spacing <- .dpOrDefault(GdObject, ".__spacing") dims <- .dpOrDefault(GdObject, ".__layoutDims") for(i in seq_along(grpLevels)){ row <- (((i)-1) %/% dims[2])+1 col <- (((i)-1) %% dims[2])+1 pushViewport(viewport(width=1/dims[2], height=1/dims[1], x=(1/dims[2])*(col-1), y=1-((1/dims[1])*(row-1)), just=c(0,1))) if(length(setdiff(legFactors, c("col")))==0){ grid.rect(width=unit(boxSize, "inches"), height=unit(boxSize, "inches"), x=0, just=c(0, 0.5), gp=gpar(fill=pcols$col[i], col=.DEFAULT_SHADED_COL)) } else { if(any(c("pch", "col.symbol") %in% legFactors)) panel.points(unit(boxSize/2, "inches"), 0.5, pch=pcols$pch[i], cex=pcols$cex[i], col=pcols$col.symbol[i]) if(any(c("lwd", "lty", "col.lines") %in% legFactors)) ##panel.lines(unit(c(0,boxSize), "inches"), c(0.5, 0.5), col=pcols$col.line[i], lwd=pcols$lwd[i], lty=pcols$lty[i]) grid.lines(unit(c(0,boxSize), "inches"), c(0.5, 0.5), gp=gpar(col=pcols$col.line[i], lwd=pcols$lwd[i], lty=pcols$lty[i])) } grid.text(x=unit(boxSize+spacing, "inches"), y=0.5, just=c(0, 0.5), label=grpLevels[i], gp=gpar(col=fontcolor)) popViewport(1) } popViewport(2) }) } if(!length(GdObject)) { if ("g" %in% type) panel.grid(h=.dpOrDefault(GdObject, "h", -1), v=.dpOrDefault(GdObject, "v", -1), col=.dpOrDefault(GdObject, "col.grid", "#e6e6e6"), lty=.dpOrDefault(GdObject, "lty.grid", 1), lwd=.dpOrDefault(GdObject, "lwd.grid", 1), alpha=alpha) return(invisible(GdObject)) } vals <- values(GdObject) ylim <- suppressWarnings(.dpOrDefault(GdObject, "ylim", range(vals, na.rm=TRUE, finite=TRUE))) if(diff(ylim)==0) ylim <- ylim+c(-1,1) if(all(is.infinite(ylim))) ylim <- c(0,1) ylimExt <- extendrange(r=ylim, f=0.05) pushViewport(viewport(xscale=c(minBase, maxBase), yscale=ylimExt, clip=TRUE)) ## The plotting parameters, some defaults from the lattice package first plot.symbol <- trellis.par.get("plot.symbol") superpose.symbol <- trellis.par.get("superpose.symbol") superpose.line <- trellis.par.get("superpose.line") groups <- rep(groups, ncol(vals)) ## For loess calculation we need some settings span <- .dpOrDefault(GdObject, "span", 1/5) degree <- .dpOrDefault(GdObject, "degree", 1) family <- .dpOrDefault(GdObject, "family", c("symmetric", "gaussian")) evaluation <- .dpOrDefault(GdObject, "evaluation", 50) font <- .dpOrDefault(GdObject, "font", if (is.null(groups)) plot.symbol$font else superpose.symbol$font) fontface <- .dpOrDefault(GdObject, "fontface", if (is.null(groups)) plot.symbol$fontface else superpose.symbol$fontface) fontsize <- .dpOrDefault(GdObject, "fontsize", if (is.null(groups)) plot.symbol$fontsize else superpose.symbol$fontsize) ## An optional baseline to be added baseline <- .dpOrDefault(GdObject, "baseline") lwd.baseline <- .dpOrDefault(GdObject, "lwd.baseline", pcols$lwd[1]) lty.baseline <- .dpOrDefault(GdObject, "lty.baseline", pcols$lty[1]) ## The actual plotting values pos <- position(GdObject) x <- rep(pos, each=nrow(vals)) y <- as.numeric(vals) ## A grid should always be plotted first, so we need to catch this here wg <- match("g", type, nomatch = NA_character_) if (!is.na(wg)) { panel.grid(h=.dpOrDefault(GdObject, "h", -1), v=.dpOrDefault(GdObject, "v", -1), col=pcols$col.grid, lty=pcols$lty.grid, lwd=pcols$lwd.grid) type <- type[-wg] } ## The special type 'mountain' has to be handled separately if("mountain" %in% type) { mbaseline <- if(is.null(baseline)) 0 else baseline[1] fill.mountain <- .dpOrDefault(GdObject, "fill.mountain", superpose.symbol$fill)[1:2] col.mountain <- .dpOrDefault(GdObject, "col.mountain", pcols$col)[1] col.baseline <- .dpOrDefault(GdObject, "col.baseline", col.mountain)[1] lwd.mountain <- .dpOrDefault(GdObject, "lwd.mountain", pcols$lwd)[1] lty.mountain <- .dpOrDefault(GdObject, "lty.mountain", pcols$lty)[1] .panel.mountain(x, y, col=col.mountain, fill=fill.mountain, span=span, degree=degree, family=family, evaluation=evaluation, lwd=lwd.mountain, lty=lty.mountain, col.line=col.mountain, alpha=alpha, baseline=mbaseline) if(!is.na(mbaseline)) panel.abline(h=mbaseline, col=col.baseline, lwd=lwd.baseline, lty=lty.baseline, alpha=alpha) } ## The special type 'polygon' has to be handled separately if("polygon" %in% type) { mbaseline <- if(is.null(baseline)) 0 else baseline[1] fill.mountain <- .dpOrDefault(GdObject, "fill.mountain", superpose.symbol$fill)[1:2] col.mountain <- .dpOrDefault(GdObject, "col.mountain", pcols$col)[1] col.baseline <- .dpOrDefault(GdObject, "col.baseline", col.mountain)[1] lwd.mountain <- .dpOrDefault(GdObject, "lwd.mountain", pcols$lwd)[1] lty.mountain <- .dpOrDefault(GdObject, "lty.mountain", pcols$lty)[1] .panel.polygon(x, y, col=col.mountain, fill=fill.mountain, lwd=lwd.mountain, lty=lty.mountain, col.line=col.mountain, alpha=alpha, baseline=mbaseline) if(!is.na(mbaseline)) panel.abline(h=mbaseline, col=col.baseline, lwd=lwd.baseline, lty=lty.baseline, alpha=alpha) } ## Also the type 'boxplot' is handled up front if("boxplot" %in% type) { box.ratio <- .dpOrDefault(GdObject, "box.ratio", 1) box.width <- .dpOrDefault(GdObject, "box.width", (min(diff(unique(sort(x))))*0.5)/box.ratio) diff <- .pxResolution(coord="x") if(!is.null(groups)) { tw <- min(width(GdObject)) spacer <- diff nb <- nlevels(groups) bw <- .dpOrDefault(GdObject, "box.width", (tw-(nb+2)*spacer)/nb) bcex <- min(pcols$cex[1], (bw/diff)/20) by <- lapply(split(vals, groups), matrix, ncol=ncol(vals)) for(j in seq_along(by)) { xx <- rep(start(GdObject)+(j*spacer)+(j*bw), each=nrow(by[[j]]))-(bw/2) .panel.bwplot(xx, as.numeric(by[[j]]), box.ratio=box.ratio, box.width=(bw/2)/box.ratio, pch=pcols$pch[1], lwd=pcols$lwd[1], lty=pcols$lty[1], fontsize=fontsize, col=pcols$col.histogram, cex=bcex, font=font, fontfamily=font, fontface=fontface, fill=pcols$col[j], varwidth=.dpOrDefault(GdObject, "varwidth", FALSE), notch=.dpOrDefault(GdObject, "notch", FALSE), notch.frac=.dpOrDefault(GdObject, "notch.frac", 0.5), levels.fos=.dpOrDefault(GdObject, "level.fos", sort(unique(xx))), stats=.dpOrDefault(GdObject, "stats", boxplot.stats), coef=.dpOrDefault(GdObject, "coef", 1.5), do.out=.dpOrDefault(GdObject, "do.out", TRUE), alpha=alpha) } diffY <- .pxResolution(coord="y", 2) outline <- apply(vals, 2, range) grid.rect(start(GdObject), outline[1,]-diffY, width=width(GdObject), height=abs(outline[2,]-outline[1,])+(2*diffY), gp=gpar(col=pcols$col.histogram, fill="transparent", alpha=alpha, lty="dotted"), default.units="native", just=c("left", "bottom")) } else { bcex <- min(pcols$cex[1], ((box.width*2)/diff)/20) .panel.bwplot(x, y, box.ratio=box.ratio, box.width=box.width, pch=pcols$pch[1], lwd=pcols$lwd[1], lty=pcols$lty[1], fontsize=fontsize, col=pcols$col.histogram, cex=bcex, font=font, fontfamily=font, fontface=fontface, fill=pcols$fill[1], varwidth=.dpOrDefault(GdObject, "varwidth", FALSE), notch=.dpOrDefault(GdObject, "notch", FALSE), notch.frac=.dpOrDefault(GdObject, "notch.frac", 0.5), levels.fos=.dpOrDefault(GdObject, "level.fos", sort(unique(x))), stats=.dpOrDefault(GdObject, "stats", boxplot.stats), coef=.dpOrDefault(GdObject, "coef", 1.5), do.out=.dpOrDefault(GdObject, "do.out", TRUE), alpha=alpha) } } ## 'histogram' fills up the full range area if its width is > 1 if("histogram" %in% type) { ylimSort <- sort(ylimExt) yy <- if(ylimSort[1]<=0 && ylimSort[2]>=0) 0 else ylimSort[1] if(!is.null(groups) && nlevels(groups)>1) { valsS <- .dpOrDefault(GdObject, ".__valsS") if(stacked) { curMinPos <- curMaxPos <- rep(yy, nrow(valsS)) for(s in seq_len(ncol(valsS))) { if(!all(is.na(valsS[,s]))) { sel <- !is.na(valsS[,s]) & valsS[,s]>=0 yyy <- curMinPos yyy[sel] <- curMaxPos[sel] offset <- yyy offset[offset!=yy] <- 0 grid.rect(start(GdObject), yyy, width=width(GdObject), height=valsS[,s]-offset, gp=gpar(col="transparent", fill=pcols$col[s], lwd=pcols$lwd[1], lty=pcols$lty[1], alpha=alpha), default.units="native", just=c("left", "bottom")) curMaxPos[sel] <- curMaxPos[sel]+(valsS[sel,s]-offset[sel]) curMinPos[!sel] <- curMinPos[!sel]+(valsS[!sel,s]-offset[!sel]) } } diff <- .pxResolution(coord="x", pcols$lwd[1]+1) tooNarrow <- width(GdObject) spacer ## FIXME: how do we treat this if there is not enough space to plot? sel <- !logical(length(subW)) if(any(sel)) { subW <- subW[sel] valsS <- valsS[sel,] subX <- rep(start(GdObject)[sel], len) + (subW * rep(seq_len(len)-1, each=sum(sel))) + (spacer * rep(seq_len(len), each=sum(sel))) grid.rect(subX, yy, width=rep(subW, len), height=valsS-yy, gp=gpar(col="transparent", fill=rep(pcols$col[1:len], each=sum(sel)), lwd=pcols$lwd[1], lty=pcols$lty[1], alpha=alpha), default.units="native", just=c("left", "bottom")) } } } else { agFun <- .aggregator(GdObject) valsS <- agFun(t(vals)) grid.rect(start(GdObject), yy, width=width(GdObject), height=valsS-yy, gp=gpar(col=pcols$col.histogram, fill=pcols$fill.histogram, lwd=pcols$lwd[1], lty=pcols$lty[1], alpha=alpha), default.units="native", just=c("left", "bottom")) } } ## gradient summarizes the data as a color gradient if("gradient" %in% type) { ncolor <- .dpOrDefault(GdObject, "ncolor", 100) gradient <- colorRampPalette(.dpOrDefault(GdObject, "gradient", brewer.pal(9, "Blues")))(ncolor) valsScaled <- .z2icol(colMeans(vals, na.rm=TRUE), ncolor, sort(ylim)) grid.rect(start(GdObject), sort(ylim)[1], width=width(GdObject), height=abs(diff(ylim)), gp=gpar(col=gradient[valsScaled], fill=gradient[valsScaled], alpha=alpha), default.units="native", just=c("left", "bottom")) } ## heatmap does the same, but for each sample individually if("heatmap" %in% type) { ncolor <- .dpOrDefault(GdObject, "ncolor", 100) valsScaled <- .z2icol(vals, ncolor, sort(ylim)) nr <- nrow(vals) yy <- seq(min(ylim), max(ylim), len=nr+1)[-1] ydiff <- .pxResolution(coord="y") separator <- .dpOrDefault(GdObject, "separator", 0)*ydiff if(!is.null(groups)) { valsS <- split(vals, groups) freq <- table(factor(.dpOrDefault(GdObject, "groups"))) cmf <- c(0, cumsum(freq)) for(s in seq_along(valsS)) { gradient <- colorRampPalette(c("white", pcols$col[s]))(ncolor+5)[-(1:5)] valsScaled <- .z2icol(valsS[[s]], ncolor, sort(ylim)) grid.rect(rep(start(GdObject), each=freq[s]), yy[(cmf[s]+1):cmf[s+1]], width=rep(width(GdObject), each=freq[s]), height=max(ydiff, abs(diff(ylim))*(1/nr)-separator), gp=gpar(col=gradient[valsScaled], fill=gradient[valsScaled], alpha=alpha), default.units="native", just=c("left", "top")) } } else { gradient <- colorRampPalette(.dpOrDefault(GdObject, "gradient", brewer.pal(9, "Blues")))(ncolor) grid.rect(rep(start(GdObject), each=nr), yy, width=rep(width(GdObject), each=nr), height=max(ydiff, abs(diff(ylim))*(1/nr)-separator), gp=gpar(col=gradient[valsScaled], fill=gradient[valsScaled], alpha=alpha), default.units="native", just=c("left", "top")) } } ## The rest uses the lattice panel function na.rm <- .dpOrDefault(GdObject, "na.rm", FALSE) sel <- is.na(y) if(na.rm && any(sel)) { x <- x[!sel] y <- y[!sel] groups <- groups[!sel] } panel.xyplot(x, y, type=type, groups=groups, pch=pcols$pch, col=pcols$col, col.line=pcols$col.line, col.symbol=pcols$col.symbol, font=font, fontfamily=font, fontface=fontface, lty=pcols$lty, cex=pcols$cex, fill=pcols$fill, lwd=pcols$lwd, horizontal=FALSE, span=span, degree=degree, family=family, evaluation=evaluation, jitter.x=.dpOrDefault(GdObject, "jitter.x", FALSE), jitter.y=.dpOrDefault(GdObject, "jitter.y", FALSE), factor=.dpOrDefault(GdObject, "factor", 0.5), amount=.dpOrDefault(GdObject, "amount"), subscripts=seq_along(x), alpha=alpha) if(!any(c("mountain","polygon") %in% type) && !is.null(baseline) && !is.na(baseline)) panel.abline(h=baseline, col=pcols$col.baseline, lwd=lwd.baseline, lty=lty.baseline, alpha=alpha) popViewport(1) return(invisible(GdObject)) }) ##---------------------------------------------------------------------------------------------------------------------------- ##---------------------------------------------------------------------------------------------------------------------------- ## Draw a AlignedRead track ##---------------------------------------------------------------------------------------------------------------------------- setMethod("drawGD", signature("AlignedReadTrack"), function(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...) { debug <- .dpOrDefault(GdObject, "debug", FALSE) if((is.logical(debug) && debug) || debug=="prepare") browser() imageMap(GdObject) <- NULL detail <- match.arg(.dpOrDefault(GdObject, "detail", "coverage"), c("reads", "coverage")) ## Nothing to do in prepare mode if detail is not 'reads', so we can quit right away, else we need to set the stacking info if(prepare){ if(detail=="read"){ if(subset) GdObject <- subset(GdObject, from=minBase, to=maxBase) ##GdObject <- setStacks(GdObject) } return(invisible(GdObject)) } if((is.logical(debug) && debug) || debug=="draw") browser() ## In plotting mode we either show all the reads (time-consuming), or the coverage only rad <- 0.015 xx <- -0.01 loc <- vpLocation()$size diff <- .pxResolution(coord="x") radv <- rad / if(loc["width"] < loc["height"]) c(1,loc[2]/loc[1]) else c(loc[1]/loc[2],1) if(subset) GdObject <- subset(GdObject, from=minBase, to=maxBase) ## If type is 'coverage' all we need to do is compute a coverage vector, create dummy DataTracks and pass everything on if(detail=="coverage") { if (!any(unlist(lapply(GdObject@coverage, function(y) runValue(y)!=0)))) { ## Nothing there, but we still need the strand separator panel.abline(h=0.5, col="lightgray", lwd=2) grid.circle(xx, c(0.25, 0.75), rad, gp=gpar(fill="lightgray", col="lightgray")) grid.segments(c(rep(xx-radv[1]+(radv[1]/2),2), xx), c(0.25, 0.75, 0.75-(radv[2]/2)), c(rep(xx+radv[1]-(radv[1]/2),2), xx), c(0.25, 0.75, 0.75+radv[2]/2), gp=gpar(col="white", lwd=2, lineend="square"), default.units="native") return(invisible(GdObject)) } else { ## We want to distinguish between strands, so an extra spitting step is needed for this to work val <- c(0, max(unlist(sapply(c("+", "-"), function(x) if(length(coverage(GdObject, strand=x))) max(coverage(GdObject, strand=x)) else NULL)))) trans <- .dpOrDefault(GdObject, "transformation")[[1]] if(!is.null(trans)) val[2] <- trans(val[2]) ylim <- .dpOrDefault(GdObject, "ylim", val) for(s in c("+", "-")) { cov <- coverage(GdObject, strand=s) pushViewport(viewport(height=0.5, y=ifelse(s=="-", 0, 0.5), just=c("center", "bottom"))) sel <- suppressWarnings(runValue(cov)!=0) #changed from > dtr <- if(any(sel)) DataTrack(start=start(cov)[sel], end=end(cov)[sel], data=runValue(cov)[sel], name=names(GdObject), genome=genome(GdObject), chromosome=chromosome(GdObject)) else DataTrack(name=names(GdObject), genome=genome(GdObject), chromosome=chromosome(GdObject)) displayPars(dtr) <- displayPars(GdObject, hideInternal=FALSE) displayPars(dtr) <- list(ylim=if(s=="+") ylim else rev(ylim)) drawGD(dtr, minBase, maxBase, prepare=prepare, ...) popViewport(1) } panel.abline(h=0.5, col="lightgray", lwd=2) grid.circle(xx, c(0.25, 0.75), unit(rad, "native"), gp=gpar(fill="lightgray", col="lightgray"), default.units="native") grid.segments(c(rep(xx-radv[1]+(radv[1]/2),2), xx), c(0.25, 0.75, 0.75-(radv[2]/2)), c(rep(xx+radv[1]-(radv[1]/2),2), xx), c(0.25, 0.75, 0.75+radv[2]/2), gp=gpar(col="white", lwd=2, lineend="square"), default.units="native") return(invisible(GdObject)) } } if(detail=="reads") { if(!length(GdObject)) { ## No reads, but we still need the strand separator panel.abline(h=0.5, col="lightgray", lwd=2) grid.circle(xx, c(0.25, 0.75), rad, gp=gpar(fill="lightgray", col="lightgray")) grid.segments(c(rep(xx-radv[1]+(radv[1]/2),2), xx), c(0.25, 0.75, 0.75-(radv[2]/2)), c(rep(xx+radv[1]-(radv[1]/2),2), xx), c(0.25, 0.75, 0.75+radv[2]/2), gp=gpar(col="white", lwd=2, lineend="square"), default.units="native") return(invisible(GdObject)) } else { if(GdObject@coverageOnly){ pushViewport(viewport()) grid.text("Coverage information only for this object.\nUnable to plot read details.", gp=gpar(col="darkgray")) panel.abline(h=0.5, col="lightgray", lwd=2) recMid <- c(0.25, 0.75) } else { gdSplit <- split(GdObject, factor(strand(GdObject), levels=c("+", "-"))) st <- lapply(gdSplit, function(x) if(length(x)) stacks(setStacks(x))-1 else 0) omax <- sum(sapply(st, max)) space <- 0.1 ratios <- sapply(st[c("-", "+")], function(x) if(omax==0) 0.5 else max(x)/omax)+(space/(2:1)) y <- if(ratios[["-"]]0.75) cex <- cex*(0.75/(width/wfac)) pushViewport(viewport(x=0, width=nspace, just=0, gp=gp)) grid.text(chrnam, 0, default.units="native", just=c("left", "center")) popViewport(1) } else nspace <- 0 pushViewport(viewport(x=nspace, width=1-nspace, just=0)) ## A box indicating the current range on the chromosome len <- end(range(range(GdObject))) fill <- .dpOrDefault(GdObject, "fill", "#FFE3E6") if(!missing(minBase) && !missing(maxBase)) grid.rect(minBase/len, 0.1, width=min(1,(maxBase-minBase)/len), height=0.8, just=c("left","bottom"), gp=gpar(col="transparent", fill=fill)) ## Color mapping for the bands taken from the biovizBase package cols <- .getBioColorIdeo(values(GdObject)$type) vals <- data.frame(values(GdObject), col=cols[as.character(values(GdObject)$type)], stringsAsFactors=FALSE) ## For the rounded caps we need to figure out the overlap with existing bands for proper coloring bevel <- 0.02 ol <- queryHits(findOverlaps(range(GdObject), IRanges(start=c(bevel, 1-bevel)*len, width=1))) st <- start(range(GdObject))/len ed <- end(range(GdObject))/len stExt <- if(length(GdObject)==1) c(0, bevel, 1-bevel) else c(st[1:ol[1]], bevel, st[(ol[1]+1):ol[2]], 1-bevel) valsExt <- if(length(GdObject)==1) vals[rep(1,3),] else rbind(vals[1:ol[1],], vals[ol[1],], vals[(ol[1]+1):ol[2],], vals[ol[2],]) if(ol[2]0.9, "black", "white") bwidth <- (c(st[-1], 1)-st)/2 cex.bands <- .dpOrDefault(GdObject, "cex.bands", 0.7) sspace <- as.numeric(convertUnit(unit(0.01, "inches"), "native")) swidth <- as.numeric(convertWidth(stringWidth(bn), "native"))*cex.bands+sspace sel <- swidth1 || (maxBase-minBase+1)>=10e6){ grid.lines(x=unit(c(minBase, maxBase), "native"), y=0.5, gp=gpar(col=.dpOrDefault(GdObject, "col", "darkgray"), lwd=.dpOrDefault(GdObject, "lwd", 2))) }else{ sequence <- as.character(as(subseq(GdObject, start=minBase, end=maxBase-1), "Rle")) at <- seq((minBase+0.5), maxBase - 1 + 0.5, by=1) sequence[sequence=="-"] <- "" if(perLetter<0.5 && .dpOrDefault(GdObject, "add53", FALSE)) sequence[c(1, length(sequence))] <- "" col <- fcol[toupper(sequence)] if(lwidth 0) { if(asIRanges) return(IRanges(start=as.integer(start), end=as.integer(end))) range <- .fillWithDefaults(data.frame(start=as.integer(start), end=as.integer(end)), defaults, args, len, by) } return(.buildRange(range=range, asIRanges=asIRanges, args=args["genome"], defaults=defaults, ...))}) ## For data.frames we need to check for additional arguments (like feature, group, etc.), the chromosome information ## and create the final GRanges object setMethod(".buildRange", signature("data.frame"), function(range, asIRanges=FALSE, args=list(), defaults=list(), chromosome=NULL, trackType, ...){ if(asIRanges){ range <- .fillWithDefaults(range, defaults, args, len=nrow(range), ignore=setdiff(names(defaults), c("start", "end", "genome"))) return(IRanges(start=as.integer(range$start), end=as.integer(range$end))) } mandArgs <- c("start", "end", "genome", names(defaults)) ## Not quite sure how whether exisiting chromosome information in a GRanges object should generally have precedence over the ## chromosome constructor, but probably that should be the case if("chromosome" %in% colnames(range)) args$chromosome <- NULL missing <- setdiff(union(setdiff(mandArgs, c(colnames(range))), names(which(!sapply(args, is.null)))), "genome") range <- .fillWithDefaults(range, defaults[missing], args[missing], len=nrow(range)) range$chromosome <- .chrName(as.character(range$chromosome)) grange <- GRanges(ranges=IRanges(start=range$start, end=range$end), strand=range$strand, seqnames=range$chromosome) mcols(grange) <- range[,setdiff(colnames(range), c("start", "end", "strand", "width", "chromosome", "genome", "seqnames", "ranges", "seqlevels", "seqlengths", "isCircular", "element"))] if(trackType != "DataTrack") mcols(grange) <- mcols(grange)[, intersect(names(defaults), colnames(mcols(grange)))] suppressWarnings(genome(grange) <- unname(if(is.null(args[["genome"]])) defaults[["genome"]] else as.character(args[["genome"]])[[1]])) return(grange)}) ## For GRanges we just need to check for the existence of additional arguments (like feature, group, etc.) setMethod(".buildRange", signature("GRanges"), function(range, asIRanges=FALSE, args=list(), defaults=list(), trackType=NULL, ...){ if(asIRanges) return(ranges(range)) if(length(range)) { mandArgs <- names(defaults) ## Not quite sure how whether exisiting chromosome information in a GRanges object should generally have precedence over the ## chromosome constructor, but probably that should be the case args$chromosome <- NULL range <- renameSeqlevels(range, setNames(.chrName(seqlevels(range)), seqlevels(range))) missing <- setdiff(union(setdiff(mandArgs, c("chromosome", "strand", colnames(mcols(range)))), names(which(!sapply(args, is.null)))), "genome") newVars <- .fillWithDefaults(DataFrame(chromosome=as.character(seqnames(range)), strand=as.character(strand(range)), mcols(range), check.names=FALSE), defaults[missing], args[missing], len=length(range)) if(any(c("start", "end", "strand", "chromosome") %in% colnames(newVars))){ gen <- genome(range) range <- GRanges(seqnames=if(is.null(newVars[["chromosome"]])) seqnames(range) else (newVars[["chromosome"]]), strand=if(is.null(newVars[["strand"]])) strand(range) else (newVars[["strand"]]), ranges=IRanges(start=if(is.null(newVars[["start"]])) start(range) else (newVars[["start"]]), end=if(is.null(newVars[["end"]])) end(range) else (newVars[["end"]]))) if(length(unique(gen)) != 1) warning("Tracks can only be defined for a single genome. Forcing all reads to belong to genome '", gen[1], "'") defaults[["genome"]] <- as.character(gen)[1] } mcols(range) <- newVars[, setdiff(colnames(newVars), c("start", "end", "strand", "width", "chromosome", "genome", "seqnames", "ranges", "seqlevels", "seqlengths", "isCircular", "element")), drop=FALSE] } if(trackType != "DataTrack") mcols(range) <- mcols(range)[, intersect(names(defaults), colnames(mcols(range)))] ## The genome information may or may not be encoded in the GRanges object at this time but we want it in there for sure genome <- if(!is.null(args[["genome"]])) args[["genome"]] else .getGenomeFromGRange(range, defaults[["genome"]]) suppressWarnings(genome(range) <- unname(genome))[1] return(range)}) ## For IRanges we need to deal with additional arguments (like feature, group, etc.) and create the final GRanges object setMethod(".buildRange", signature("IRanges"), function(range, asIRanges=FALSE, args=list(), defaults=list(), chromosome=NULL, strand, ...){ if(asIRanges) return(range) if(missing(chromosome) || is.null(chromosome)) stop("Unable to find chromosome information in any of the arguments") range <- GRanges(seqnames=.chrName(chromosome), ranges=range, strand=if(!is.null(args$strand)) args$strand else "*") if(length(range)) { vals <- .fillWithDefaults(defaults=defaults, args=args, len=(length(range)), by=NULL, ignore="strand") mcols(range) <- vals } return(range)}) ## For GRangesLists we capture the grouping information from the list structure, unlist and use the GRanges method setMethod(".buildRange", signature("GRangesList"), function(range, groupId="group", ...){ grps <- rep(names(range), elementNROWS(range)) range <- unlist(range) names(range) <- NULL mcols(range)[[groupId]] <- grps return(.buildRange(range=range, ...))}) ## For TxDb objects we extract the grouping information and use the GRanges method setMethod(".buildRange", signature("TxDb"), function(range, groupId="transcript", tstart, tend, chromosome, args, ...){ ## If chromosome (and optional start and end) information is present we only extract parts of the annotation data noSubset <- is.null(tstart) && is.null(tend) if(!is.null(chromosome)){ chromosome <- .chrName(chromosome) ## Seems like TxDb objects use pass by reference for the active chromosomes, so we have to ## restore the old values after we are done oldAct <- seqlevels(range) oldRange <- range on.exit({restoreSeqlevels(oldRange); seqlevels(oldRange, pruning.mode="coarse") <- oldAct}) restoreSeqlevels(range) seqlevels(range, pruning.mode="coarse") <- chromosome sl <- seqlengths(range) if(is.null(tstart)) tstart <- rep(1, length(chromosome)) if(is.null(tend)){ tend <- sl[chromosome]+1 tend[is.na(tend)] <- tstart[is.na(tend)]+1 } sRange <- GRanges(seqnames=chromosome, ranges=IRanges(start=tstart, end=tend)) } ## First the mapping of internal transcript ID to transcript name txs <- as.data.frame(values(transcripts(range, columns = c("tx_id", "tx_name")))) rownames(txs) <- txs[, "tx_id"] ## Now the CDS ranges t2c <- cdsBy(range, "tx") names(t2c) <- txs[names(t2c), 2] tids <- rep(names(t2c), elementNROWS(t2c)) t2c <- unlist(t2c) if(length(t2c)){ t2c$tx_id <- tids t2c$feature_type <- "CDS" } ## And the 5'UTRS t2f <- fiveUTRsByTranscript(range) names(t2f) <- txs[names(t2f), 2] tids <- rep(names(t2f), elementNROWS(t2f)) t2f <- unlist(t2f) if(length(t2f)){ t2f$tx_id <- tids t2f$feature_type <- "utr5" } ## And the 3'UTRS t2t <- threeUTRsByTranscript(range) names(t2t) <- txs[names(t2t), 2] tids <- rep(names(t2t), elementNROWS(t2t)) t2t <- unlist(t2t) if(length(t2t)){ t2t$tx_id <- tids t2t$feature_type <- "utr3" } ## And finally all the non-coding transcripts nt2e <- exonsBy(range, "tx") names(nt2e) <- txs[names(nt2e), 2] nt2e <- nt2e[!names(nt2e) %in% c(values(t2c)$tx_id, values(t2f)$tx_id, values(t2t)$tx_id)] tids <- rep(names(nt2e), elementNROWS(nt2e)) nt2e <- unlist(nt2e) if(length(nt2e)){ nt2e$tx_id <- tids nt2e$feature_type <- "ncRNA" } ## Now we can merge the three back together (we need to change the column names of t2c to make them all the same) colnames(values(t2c))[1:2] <- c("exon_id", "exon_name") ## t2e <- c(t2c, t2f, t2t, nt2e) ## This is super-slow, much more efficient if we build the GRanges object from the individual bits and pieces vals <- DataFrame(exon_id=c(values(t2c)$exon_id, values(t2f)$exon_id, values(t2t)$exon_id, values(nt2e)$exon_id), exon_name=c(values(t2c)$exon_name, values(t2f)$exon_name, values(t2t)$exon_name, values(nt2e)$exon_name), exon_rank=c(values(t2c)$exon_rank, values(t2f)$exon_rank, values(t2t)$exon_rank, values(nt2e)$exon_rank), tx_id=c(values(t2c)$tx_id, values(t2f)$tx_id, values(t2t)$tx_id, values(nt2e)$tx_id), feature_type=c(values(t2c)$feature_type, values(t2f)$feature_type, values(t2t)$feature_type, values(nt2e)$feature_type)) t2e <- GRanges(seqnames=c(seqnames(t2c), seqnames(t2f), seqnames(t2t), seqnames(nt2e)), ranges=IRanges(start=c(start(t2c), start(t2f), start(t2t), start(nt2e)), end=c(end(t2c), end(t2f), end(t2t), end(nt2e))), strand=c(strand(t2c), strand(t2f), strand(t2t), strand(nt2e))) if(all(is.na(vals$exon_name))) vals$exon_name <- paste(vals$tx_id, vals$exon_rank, sep="_") values(t2e) <- vals if(length(t2e)==0) return(GRanges()) ## Add the gene level annotation g2t <- transcriptsBy(range, "gene") gids <- rep(names(g2t), elementNROWS(g2t)) g2t <- unlist(g2t) values(g2t)[["gene_id"]] <- gids values(t2e)$gene_id <- gids[match(values(t2e)$tx_id, as.character(txs[as.character(values(g2t)$tx_id),2]))] vals <- values(t2e)[c("tx_id", "exon_name", "exon_rank", "feature_type", "tx_id", "gene_id")] colnames(vals) <- c("transcript", "exon", "rank", "feature", "symbol", "gene") ## Add the genome information genome(t2e) <- unique(genome(range)) ## Finally we re-assign, subset if necessary, and sort range <- t2e values(range) <- vals if(!noSubset && !is.null(chromosome)){ ## We have to keep all exons for all the overlapping transcripts txSel <- unique(subsetByOverlaps(g2t, sRange)$tx_name) range <- range[range$transcript %in% txSel] } args <- list(genome=genome(range)[1]) return(.buildRange(range=sort(range), chromosome=chromosome, args=args, ...))}) ## For character scalars the data need to be extracted from a file and we have to deal with parser functions ## and column assignments here. setMethod(".buildRange", signature("character"), function(range, importFun=NULL, trackType, stream=FALSE, args, defaults, autodetect=is.null(importFun), ...){ .checkClass(range, "character", 1) .checkClass(importFun, c("NULL", "function"), mandatory=FALSE) .checkClass(stream, "logical", 1) ## We first check for the default column mapping and whether this is a streaming file defMap <- .defaultVarMap(tolower(.fileExtension(range)), trackType, stream, !autodetect) isStream <- !is.null(defMap[[".stream"]]) && defMap[[".stream"]] defMap[[".stream"]] <- NULL if(!isStream){ data <- if(is.null(importFun)) .registerImportFun(range) else{ if(!"file" %in% names(formals(importFun))) stop("The user-defined import function needs to define a 'file' argument") importFun(range) } if(!is(data, "GRanges")) stop("The import function did not provide a valid GRanges object. Unable to build track from file '", range, "'") if(trackType=="DataTrack"){ ## For data tracks we take all numeric data columns regardless of any mapping mc <- .prepareDtData(as.data.frame(mcols(data)), length(data)) mcols(data) <- t(mc) } else { ## For the rest we use the mapping as provided by the constructor if available cmap <- .resolveColMapping(data, args, defMap) args <- cmap$args data <- cmap$data } args[["chromosome"]] <- as.character(seqnames(data)) args[["strand"]] <- as.character(strand(data)) return(.buildRange(range=data, args=args, defaults=defaults, trackType=trackType, ...)) }else{ if(trackType!="DataTrack"){ for(i in names(defMap)){ if(is.character(args[[i]]) && length(args[[i]])==1){ defMap[[i]] <- args[[i]] } } } return(list(reference=path.expand(range), mapping=defMap, stream=if(is.null(importFun)) .registerImportFun(range) else importFun)) } }) ##--------------------------------------------------------------------------------- ##--------------------------------------------------------------------------------- ## Interact with ImageMap objects ##--------------------------------------------------------------------------------- setMethod("coords", "NULL", function(ImageMap) NULL) setMethod("coords", "ImageMap", function(ImageMap) ImageMap@coords) setMethod("coords", "GdObject", function(ImageMap) coords(imageMap(ImageMap))) setMethod("tags", "NULL", function(ImageMap) NULL) setMethod("tags", "ImageMap", function(ImageMap) ImageMap@tags) setMethod("tags", "GdObject", function(ImageMap) tags(imageMap(ImageMap))) ##--------------------------------------------------------------------------------- ##--------------------------------------------------------------------------------- ## Show methods for the various classes ##--------------------------------------------------------------------------------- ## A helper function to plot information regarding additional features on other chromosomes .addFeatInfo <- function(object, addfeat){ freqs <- table(seqnames(object)) freqs <- freqs[setdiff(names(freqs), chromosome(object))] nrChr <- length(freqs) msg <- sprintf("There %s %s additional annotation feature%s on %s further chromosome%s%s", ifelse(addfeat>1, "are", "is"), addfeat, ifelse(addfeat>1, "s", ""), nrChr, ifelse(nrChr>1, "s", ""), ifelse(nrChr==1, sprintf(" (%s)", names(freqs)), "")) if(nrChr>1){ msg <- if(nrChr>10){ c(msg, paste(" ", head(names(freqs), 5), ": ", head(freqs, 5), sep="", collapse="\n"), " ...", paste(" ", tail(names(freqs), 5), ": ", tail(freqs, 5), sep="", collapse="\n")) }else{ c(msg, paste(" ", names(freqs), ": ", freqs, " features", sep="", collapse="\n")) } msg <- c(msg, paste("Call seqlevels(obj) to list all available chromosomes", "or seqinfo(obj) for more detailed output")) } return(msg) } setMethod("show",signature(object="DataTrack"), function(object){ msg <- sprintf(paste("DataTrack '%s'\n| genome: %s\n| active chromosome: %s\n", "| positions: %s\n| samples:%s\n| strand: %s", sep=""), names(object), genome(object), chromosome(object), length(object), nrow(values(object)), strand(object)[1]) addfeat <- ncol(object@data)-length(object) if(addfeat>0) msg <- c(msg, .addFeatInfo(object, addfeat), "Call chromosome(obj) <- 'chrId' to change the active chromosome") cat(paste(msg, collapse="\n"), "\n") }) ## A helper function to plot general information about an AnnotationTrack .annotationTrackInfo <- function(object){ msg <- sprintf(paste("| genome: %s\n| active chromosome: %s\n", "| annotation features: %s", sep=""), genome(object), chromosome(object), length(object)) addfeat <- length(object@range)-length(object) if(addfeat>0) msg <- c(msg, .addFeatInfo(object, addfeat), "Call chromosome(obj) <- 'chrId' to change the active chromosome") return(paste(msg, collapse="\n")) } ## We have to show the name, genome and currently active chromosome, and, if more ranges are available on additional ## chromosomes some information about that setMethod("show", signature(object="AnnotationTrack"), function(object) cat(sprintf("AnnotationTrack '%s'\n%s\n", names(object), .annotationTrackInfo(object)))) setMethod("show", signature(object="GeneRegionTrack"), function(object) cat(sprintf("GeneRegionTrack '%s'\n%s\n", names(object), .annotationTrackInfo(object)))) setMethod("show", signature(object="HighlightTrack"), function(object) cat(sprintf("HighlightTrack '%s' containing %i subtrack%s\n%s\n", names(object), length(object), ifelse(length(object)==1, "", "s"), .annotationTrackInfo(object)))) setMethod("show", signature(object="CustomTrack"), function(object) cat(sprintf("CustomTrack '%s'\n", names(object)))) setMethod("show", signature(object="OverlayTrack"), function(object) cat(sprintf("OverlayTrack '%s' containing %i subtrack%s\n", names(object), length(object), ifelse(length(object)==1, "", "s")))) ## A helper function to plot general information about a ReferenceTrack .referenceTrackInfo <- function(object, type){ cat(sprintf("%s '%s'\n| genome: %s\n| active chromosome: %s\n| referenced file: %s\n", type, names(object), genome(object), chromosome(object), object@reference)) if(length(object@mapping) && type != "ReferenceDataTrack") cat(sprintf( "| mapping: %s\n", paste(names(object@mapping), as.character(object@mapping), sep="=", collapse=", "))) } setMethod("show", signature(object="ReferenceAnnotationTrack"), function(object) .referenceTrackInfo(object, "ReferenceAnnotationTrack")) setMethod("show", signature(object="ReferenceDataTrack"), function(object) .referenceTrackInfo(object, "ReferenceDataTrack")) setMethod("show", signature(object="ReferenceGeneRegionTrack"), function(object) .referenceTrackInfo(object, "ReferenceGeneRegionTrack")) setMethod("show", signature(object="ReferenceSequenceTrack"), function(object) .referenceTrackInfo(object, "ReferenceSequenceTrack")) setMethod("show", signature(object="ReferenceAlignmentsTrack"), function(object) .referenceTrackInfo(object, "ReferenceAlignmentsTrack")) setMethod("show", signature(object="GenomeAxisTrack"), function(object) { cat(sprintf("Genome axis '%s'\n", names(object))) if(.dpOrDefault(object, "add53", FALSE)) cat("5->3 label is set\n") if(.dpOrDefault(object, "add35", FALSE)) cat("3->5 label is set\n") if(.dpOrDefault(object, "littleTicks", FALSE)) cat("littleTicks label is set\n") if(length(object)) { cat("There are annotated axis regions:\n") print(ranges(object)) } }) setMethod("show",signature(object="IdeogramTrack"), function(object){ cat(sprintf(paste("Ideogram track '%s' for chromosome %s of the %s genome"), names(object), gsub("^chr", "", chromosome(object)), genome(object)), "\n") }) ## A helper function to print general information about SequenceTracks .sequenceTrackInfo <- function(object){ msg <- sprintf(paste("Sequence track '%s':\n", "| genome: %s\n", "| chromosomes: %s\n", "| active chromosome: %s (%s nulceotides)\n", sep=""), names(object), genome(object), length(seqnames(object)), chromosome(object), length(object)) if(length(seqnames(object))>1) msg <- paste(msg, "Call seqnames() to list all available chromosomes\n", "Call chromosome()<- to change the active chromosome\n", sep="") return(msg) } ## We need to show the name, genome, information about the source BSgenome object as well as the currently active chromosome setMethod("show",signature(object="SequenceBSgenomeTrack"), function(object){ cat(.sequenceTrackInfo(object), sprintf(paste("Parent BSgenome object:\n", "| organism: %s (%s)\n", "| provider: %s\n", "| provider version: %s\n", "| release date: %s\n", "| release name: %s\n", "| package name: %s\n", sep=""), organism(object@sequence), object@sequence@organism, provider(object@sequence), providerVersion(object@sequence), releaseDate(object@sequence), releaseName(object@sequence), object@sequence@pkgname), sep="") }) ## Here we only need the name, genome and currently active chromosome information setMethod("show", signature(object="SequenceDNAStringSetTrack"), function(object) cat(.sequenceTrackInfo(object))) setMethod("show",signature(object="AlignedReadTrack"), function(object){ cat(sprintf(paste("AlignedRead track '%s' containing %i read%s all mapping", "to chromosome %s of the %s genome:\n"), names(object), length(object), ifelse(length(object)==1, "", "s"), gsub("^chr", "", chromosome(object)), genome(object)), "\n") print(ranges(object)) }) setMethod("show", "DisplayPars", function(object) { cat("Display parameters:\n") for(i in base::ls(object@pars)) { cat(i, " = ", sep="") o <- try(as.character(object@pars[[i]]), silent=TRUE) if(is(o, "try-error")) print(object@pars[[i]]) else cat(o, "\n") } }) setMethod("show", "InferredDisplayPars", function(object){ cat("\nThe following display parameters are available for '", object@name, "' objects:\n", "(see ? ", object@name, " for details on their usage)\n\n", sep="") for(i in names(object)) { cat(i, ifelse(object@inheritance[i]==object@name, "", paste(" (inherited from class '", object@inheritance[i], "')", sep="")), ": ", sep="") if(is.null(object[[i]])) cat("NULL\n") else { o <- try(as.character(object[[i]]), silent=TRUE) if(is(o, "try-error")) print(object[[i]]) else cat(o, "\n") } } }) ##--------------------------------------------------------------------------------- Gviz/R/Gviz.R0000644000175400017540000037324713175714140014005 0ustar00biocbuildbiocbuild##---------------------------------------------------------------------------------------------------------------------- ## A bunch of package constants ##---------------------------------------------------------------------------------------------------------------------- .DEFAULT_FILL_COL <- "lightgray" .DEFAULT_OVERPLOT_COL <- "red" .DEFAULT_LINE_COL <- "black" .DEFAULT_SHADED_COL <- "#808080" .DEFAULT_BRIGHT_SHADED_COL <- "#E0E0E0" .DEFAULT_SYMBOL_COL <- "#0080FF" .DEFAULT_LINE_COL <- "darkgray" .PLOT_TYPES <- c("p", "l", "b", "a", "s", "g", "r", "S", "smooth", "polygon", "horizon", "histogram", "mountain", "h", "boxplot", "gradient", "heatmap", "confint") .ALIGNMENT_TYPES <- c("coverage", "sashimi", "pileup") .THIN_BOX_FEATURES <- c("utr", "ncRNA", "utr3", "utr5", "3UTR", "5UTR", "miRNA", "lincRNA", "three_prime_UTR", "five_prime_UTR") .DEFAULT_HORIZON_COL <- c("#B41414", "#E03231", "#F7A99C", "#9FC8DC", "#468CC8", "#0165B3") ##---------------------------------------------------------------------------------------------------------------------- ## Check the class and structure of an object .checkClass <- function (x, class, length = NULL, verbose = FALSE, mandatory = TRUE){ if (mandatory && missing(x)) stop("Argument '", substitute(x), "' is missing with no default", call. = verbose) msg <- paste("'", substitute(x), "' must be an object of class ", paste("'", class, "'", sep = "", collapse = " or "), sep = "") fail <- !any(sapply(class, function(c, y) is(y, c), x)) if (!is.null(length) && length(x) != length) { if (!is.null(x)) { fail <- TRUE msg <- paste(msg, "of length", length) } } if (fail) stop(msg, call. = verbose) else invisible(NULL) } ## We want to deal with chromosomes in a reasonable way. This coerces likely inputs to a unified ## chromosome name as understood by UCSC. Accepted inputs are: ## - a single integer or a character coercable to one or integer-character combinations ## - a character, starting with 'chr' (case insensitive) ## Arguments: ## o x: a character string to be converted to a valid UCSC chromosome name ## o force: a logical flag, force prepending of 'chr' if missing ## Value: the UCSC character name .chrName <- function(x, force=FALSE) { if(!getOption("ucscChromosomeNames") || length(x)==0) return(as.character(x)) xu <- unique(x) xum <- sapply(xu, function(y){ xx <- suppressWarnings(as.integer(y)) if (!is.na(xx)) y <- xx if(is.numeric(y)) y <- paste("chr", y, sep = "") head <- tolower(substring(y, 1, 3)) == "chr" if(!head && force){ y <- paste("chr", y, sep = "") head <- TRUE } if(!head){ stop(sprintf(paste("Invalid chromosome identifier '%s'\nPlease consider setting options(ucscChromosomeNames=FALSE)", "to allow for arbitrary chromosome identifiers."), y)) } substring(y, 1, 3) <- tolower(substring(y, 1, 3)) y}) names(xum) <- xu return(as.vector(xum[as.character(x)])) } ## Make a deep copy of the display parameter environment .deepCopyPars <- function(GdObject) { oldPars <- displayPars(GdObject, hideInternal=FALSE) GdObject@dp <- DisplayPars() displayPars(GdObject) <- oldPars return(GdObject) } ## One central place to check which display types result in stacking. This may change at some point for some ## unimplemented types... ## Arguments: ## o GdObject: an object inheriting from class GdObject ## Value: a logical skalar indicating whether stacking is needed or not .needsStacking <- function(GdObject) stacking(GdObject) %in% c("squish", "pack", "full") ## Get the coordinates for an HTML image map from the annotationTrack plot. ## Arguments: ## o coordinates: a numeric matrix of annotation region coordinates (the bounding box if not rectangular) ## Value: valid HTML image map coordinates based on the current device dimensions .getImageMap <- function(coordinates) { devSize <- devRes()*par("din") loc <- vpLocation() size <- loc$location[3:4] - loc$location[1:2] xscale <- current.viewport()$xscale yscale <- current.viewport()$yscale fw <- diff(xscale) fh <- diff(yscale) u2px <- function(x) ((x - xscale[1])/fw *size[1]) + loc$location[1] u2py <- function(y) (devSize[2] - loc$location[2]) - ((y - yscale[1])/fh *size[2]) return(data.frame(x1=u2px(coordinates[,1]), y1=u2py(coordinates[,4]), x2=u2px(coordinates[,3]), y2=u2py(coordinates[,2]), stringsAsFactors=FALSE)) } .whichStrand <- function(trackList){ if(!is.list(trackList)) trackList <- list(trackList) str <- unlist(lapply(trackList, function(x) if(is(x, "HighlightTrack") || is(x, "OverlayTrack")) sapply(x@trackList, .dpOrDefault, "reverseStrand") else{ .dpOrDefault(x, "reverseStrand")})) return(ifelse(str, "reverse", "forward")) } ## A function returning the amount of vertical space needed for a track ## Arguments: ## o x: an object inheriting from class GdObject ## Value: the relative vertical space needed for the track .verticalSpace <- function(x, totalSpace) { if(is(x, "AlignedReadTrack")){ size <- if(is.null(displayPars(x, "size"))){ type <- match.arg(.dpOrDefault(x, "detail", "coverage"), c("reads", "coverage")) if(type == "read") if(stacking(x) %in% c("sqish", "full")) 5 else 1 else 7} else displayPars(x, "size") return(size) } if(is(x, "DataTrack") && is.null(displayPars(x, "size"))){ type <- match.arg(.dpOrDefault(x, "type", "p"), .PLOT_TYPES, several.ok=TRUE) size <- if(length(type)==1L){ if(type=="gradient") 1 else if(type=="heatmap") nrow(values(x)) else 5} else 5 return(size) } if(is(x, "GenomeAxisTrack") || is(x, "IdeogramTrack") || is(x, "SequenceTrack")) { nv <- displayPars(x, "neededVerticalSpace") size <- displayPars(x, "size") if(is.null(size)) if(!is.null(nv)) { size <- nv attr(size, "absolute") <- TRUE } else size <- 1 return(size) } size <- .dpOrDefault(x, "size", 1) if(is(x, "StackedTrack")) size <- max(size, min(floor(vpLocation()$size["height"]/10), size*max(stacks(x)))) return(size) } ## Return a particular displayPars value or a default ## Arguments: ## o GdObject: an object inheriting from class GdObject ## o par: the name of the displayPar, or a list of alternatives to go though before finally taking ## the supplied default value ## o default: a default value for the parameter if it can't be found in GdObject ## Value: the value of the displayPar .dpOrDefault <- function(GdObject, par, default=NULL, fromPrototype=FALSE) { val <- getPar(x=GdObject, name=par, asIs=TRUE) val <- val[!sapply(val, is.null)] if(length(val)==0) { if (fromPrototype) { val <- .parMappings[[GdObject@name]][par] val <- val[!sapply(val, is.null)] if(length(val)==0) val <- NULL } else { val <- default } }else{ val <- val[[1]] } return(val) } ## A special version of the above for font settings. This will try to extract the respective parent ## defaults before finally taking the provided default value. ## Arguments: ## o GdObject: an object inheriting from class GdObject ## o par: the name of the displayPar. Can also be a vector in which case a number of alternatives ## is tested, then the parent default for the first element until finally moving to the supplied default ## o type: the sub-type ## o default: a default value for the parameter if it can't be found in GdObject ## Value: the value of the displayPar .dpOrDefaultFont <- function(GdObject, par, type=NULL, default){ name <- if(is.null(type)) par else sprintf("%s.%s", par, type) val <- getPar(GdObject, name[1]) name <- name[-1] while(is.null(val) && length(name)){ val <- getPar(GdObject, name[1]) name <- name[-1] } if(is.null(val)) val <- .dpOrDefault(GdObject, par[1], default) return(val) } ## Return the font settings for a GdObject .fontGp <- function(GdObject, subtype=NULL, ...){ if(is(GdObject, "OverlayTrack")) GdObject <- GdObject@trackList[[1]] gp <- list(fontsize=as.vector(.dpOrDefaultFont(GdObject, "fontsize", subtype, 12))[1], fontface=as.vector(.dpOrDefaultFont(GdObject, "fontface", subtype, 1))[1], fontfamily=as.character(as.vector(.dpOrDefaultFont(GdObject, "fontfamily", subtype, 1)))[1], col=as.vector(.dpOrDefaultFont(GdObject, "fontcolor", subtype, "black"))[1], lineheight=as.vector(.dpOrDefaultFont(GdObject, "lineheight", subtype, 1))[1], alpha=as.vector(.dpOrDefaultFont(GdObject, "alpha", subtype, 1))[1], cex=as.vector(.dpOrDefaultFont(GdObject, "cex", subtype, 1))[1]) gp[names(list(...))] <- list(...) gp <- gp[!sapply(gp, is.null)] return(do.call(gpar, gp)) } ## Check a list of GdObjects whether an axis needs to be drawn for each of them. ## Arguments: ## o object: a list of GdObjects ## Value: a logical vector of the same length as 'objects' .needsAxis <- function(objects) { if(!is.list(objects)) objects <- list(objects) atrack <- sapply(objects, function(x){ is(x, "NumericTrack") || (is(x, "AlignmentsTrack") && "coverage" %in% match.arg(.dpOrDefault(x, "type", .ALIGNMENT_TYPES), .ALIGNMENT_TYPES, several.ok=TRUE)) || (is(x, "AlignedReadTrack") && .dpOrDefault(x, "detail", "coverage")=="coverage") }) isOnlyHoriz <- sapply(objects, function(x){ res <- FALSE if(is(x, "DataTrack")){ type <- match.arg(.dpOrDefault(x, "type", "p"), .PLOT_TYPES, several.ok=TRUE) res <- length(setdiff(type, "horizon")) == 0 && !.dpOrDefault(x, "showSampleNames", FALSE) } res }) return(atrack & sapply(objects, .dpOrDefault, "showAxis", TRUE) & !isOnlyHoriz) } ## Check a list of GdObjects whether a title needs to be drawn for each of them. ## Arguments: ## o object: a list of GdObjects ## Value: a logical vector of the same length as 'objects' .needsTitle <- function(objects) { if(!is.list(objects)) objects <- list(objects) sapply(objects, function(x){ if(is(x, "HighlightTrack") || is(x, "OverlayTrack")) any(sapply(x@trackList, .dpOrDefault, "showTitle", TRUE)) else .dpOrDefault(x, "showTitle", TRUE) }) } ## Helper function to set up the text size based on the available space ## Arguments: ## o trackList: a list of GdObjects ## o sizes: a matching vector of relative vertical sizes ## o title.width: the available width for the title ## Value: a list with items: ## o spaceNeeded: the necessary vertical space ## o cex: the character expansion factor ## o title.width: the updated available title width ## o spacing: the amount of spacing between tracks ## o nwrap: the final (wrapped) title text .setupTextSize <- function(trackList, sizes, title.width, panelOnly=FALSE, spacing=5) { curVp <- vpLocation() trackList <- lapply(trackList, function(x) if(is(x, "OverlayTrack")) x@trackList[[1]] else x) spaceNeeded <- if(is.null(sizes)) lapply(trackList, .verticalSpace, curVp$size["height"]) else { if(length(sizes) != length(trackList)) stop("The 'sizes' vector has to match the size of the 'trackList'.") rev(sizes) } whichAbs <- sapply(spaceNeeded, function(x) !is.null(attr(x, "absolute")) && attr(x, "absolute")) spaceNeeded <- unlist(spaceNeeded) leftVetSpace <- curVp$size["height"]-sum(spaceNeeded[whichAbs]) spaceNeeded[!whichAbs] <- spaceNeeded[!whichAbs]/sum(spaceNeeded[!whichAbs])*leftVetSpace spaceNeeded <- spaceNeeded/sum(spaceNeeded) if(!panelOnly) { ## Figure out the fontsize for the titles based on available space. If the space is too small (heights nwrap[allCex=sort(ylim)[1] & at<=sort(ylim)[2]] atSpace <- max(as.numeric(convertWidth(stringWidth(at), "inches"))+0.18)*cex.axis[names(GdObject)] if(is(GdObject, "DataTrack")){ type <- match.arg(.dpOrDefault(GdObject, "type", "p"), .PLOT_TYPES, several.ok=TRUE) if(any(c("heatmap", "gradient") %in% type)){ nlevs <- max(1, nlevels(factor(getPar(GdObject, "groups"))))-1 atSpace <- atSpace + 0.3 * atSpace + as.numeric(convertWidth(unit(3, "points"), "inches"))*nlevs } if(type %in% c("heatmap", "horizon") && .dpOrDefault(GdObject, "showSampleNames", FALSE)){ sn <- rownames(values(GdObject)) axSpace <- ifelse(isOnlyHoriz, 0, 10) wd <- max(as.numeric(convertWidth(stringWidth(sn) + unit(axSpace, "points"), "inches"))) atSpace <- atSpace + (wd * .dpOrDefault(GdObject, "cex.sampleNames", 0.5)) } } atSpace })) hAxSpaceNeeded <- (max(axTicks))/wfac title.width <- title.width + hAxSpaceNeeded } } else { title.width <- nwrap <- cex <- NA } spacing <- as.numeric(convertWidth(unit(spacing, "points"), "npc")) title.width <- title.width * twfac return(list(spaceNeeded=spaceNeeded, cex=cex, title.width=title.width, spacing=spacing, nwrap=nwrap)) } ## This coerces likely inputs for the genomic strand to a unified ## strand name. Accepted inputs are: ## o a single integer, where values <=0 indicate the plus strand, and values >=1 indicate the minus strand ## o a character, either "+" or "-" ## If extended=TRUE, the additional values 2, "+-", "-+" and "*" are allowed, indicating to use both strands. ## Value: the validated strand name .strandName <- function(x, extended=FALSE) { fun <- function(x, extended){ if(!extended) { if(is.numeric(x)) { x <- min(c(1,max(c(0, as.integer(x))))) } else if(is.character(x)) { x <- match(x, c("+", "-"))-1 if(any(is.na(x))) stop("The strand has to be specified either as a character ('+' or '-'), or as an integer value (0 or 1)") } } else { if(is.numeric(x)) { x <- min(c(2,max(c(0, as.integer(x))))) } else if(is.character(x)) { x <- min(c(2, match(x, c("+", "-", "+-", "-+", "*"))-1)) if(any(is.na(x))) stop("The strand has to be specified either as a character ('+' or '-'), or as an integer value (0 or 1)") } } x } return(sapply(x, fun, extended)) } ## Compute native coordinate equivalent to 'min.width' pixel. This assumes that a graphics device is already ## open, otherwise a new window will pop up, which could be a little annoying. ## Arguments: ## o min.width: the number of pixels ## o coord: the axis for which to compute the coordinats, one in c("x","y") ## Value: the equivalent of 'min.width' in native coordinates. .pxResolution <- function(min.width=1, coord=c("x","y")) { coord <- match.arg(coord, several.ok=TRUE) curVp <- vpLocation() co <- c(x=as.vector(abs(diff(current.viewport()$xscale))/(curVp$size["width"])*min.width), y=as.vector(abs(diff(current.viewport()$yscale))/(curVp$size["height"])*min.width)) return(co[coord]) } ## Deal with composite exons and provide polygon plotting coordinates for them. For all normal exons simply return ## the original bounding box data ## Arguments: ## o box: the data frame with the bounding box information ## o type: the type of coordinates for the composite exons, one in 'box', 'arrow' or 'fixedArrow' ## Value: a list with three elements: box, the non-composite exons, pols, the plotting coordinates for the merged composite exons, ## and polpars, a data.frame of plotting parameters for the polygons .handleComposite <- function(box, type="box", W=1/4, H=1/3, min.width=10, max.width=Inf){ box <- box[order(box$start),] boxFinal <- data.frame(stringsAsFactors=FALSE) polFinal <- data.frame(stringsAsFactors=FALSE) polPars <- data.frame(stringsAsFactors=FALSE) bss <- split(box, box$transcript) for(b in bss){ ol <- names(which(table(b$exon)>1)) boxFinal <- rbind(boxFinal, b[!b$exon %in% ol,]) if(length(ol)){ b <- b[b$exon %in% ol,] r <- IRanges(start=b$cx1, end=b$cx2) rr <- reduce(r) brs <- split(b, subjectHits(findOverlaps(r, rr))) for(j in seq_along(brs)){ if(nrow(brs[[j]]) == 1){ boxFinal <- rbind(boxFinal, brs[[j]]) }else{ xlocs <- as.vector(t(brs[[j]][, c("cx1", "cx2"), drop=FALSE])) ylocs <- unlist(brs[[j]][, c("cy1", "cy2"), drop=FALSE]) fh <- 1:(length(ylocs)/2) sh <- (length(ylocs)/2+1):length(ylocs) ylocs[sh] <- rev(ylocs[sh]) ylocs <- rep(ylocs, each=2) if(type == "box"){ polFinal <- rbind(polFinal, data.frame(x=c(xlocs, rev(xlocs)), y=ylocs, id=paste(brs[[j]][1, "transcript"], brs[[j]][1, "exon"], j), stringsAsFactors=FALSE)) polPars <- rbind(polPars, data.frame(fill=brs[[j]][1, "fill"], col=brs[[j]][1, "col"], stringsAsFactors=FALSE)) }else{ polPars <- rbind(polPars, data.frame(fill=brs[[j]][1, "fill"], col=brs[[j]][1, "col"], stringsAsFactors=FALSE)) str <- brs[[j]]$strand[1] offset <- (abs(brs[[j]]$cy1 - brs[[j]]$cy2)) * H / 2 if(str == "+" && abs(diff(xlocs[(length(xlocs)-1):length(xlocs)])) > min.width){ offset <- rep(offset, each=2) asel <- (length(xlocs)-1):length(xlocs) bsel <- 1:(min(asel)-1) d <- abs(diff(xlocs[asel])) afp <- if(type == "arrow") rep(xlocs[asel][1] + max(d*W, d-max.width), 2) else { rep(max(xlocs[asel][1], xlocs[asel][2]-W), 2)} xlocs <- c(xlocs[bsel], xlocs[asel][1], afp, xlocs[asel][2], afp, xlocs[asel][1], rev(xlocs[bsel])) mid <- length(ylocs)/2 asel <- (mid-1):(mid+2) bsel <- c(1:(mid-2), (mid+3):length(ylocs)) fh <- 1:(length(bsel)/2) sh <- (length(bsel)/2+1):length(bsel) ylocs <- c(ylocs[bsel[fh]] + offset[fh], ylocs[asel][1:2] + tail(offset,1), ylocs[asel][1], ylocs[asel][1] + abs(diff(ylocs[asel][c(1,3)]))/2, ylocs[asel][4], ylocs[asel][3:4] - tail(offset,1), ylocs[bsel[sh]] - offset[fh]) polFinal <- rbind(polFinal, data.frame(x=c(xlocs, rev(xlocs)), y=ylocs, id=paste(brs[[j]][1, "transcript"], brs[[j]][1, "exon"], j), stringsAsFactors=FALSE)) }else if(str == "-" && abs(diff(xlocs[1:2])) > min.width){ yoffset <- c(rep(offset[-1], each=2), -rev(rep(offset[-1], each=2))) asel <- 1:2 bsel <- 3:length(xlocs) d <- abs(diff(xlocs[asel])) afp <- if(type == "arrow") rep(xlocs[asel][2] - max(d*W, d-max.width), 2) else{ rep(min(xlocs[asel][2], xlocs[asel][1] + W), 2)} xlocs <- c(xlocs[asel][1], afp, xlocs[asel][2], xlocs[bsel], rev(xlocs[bsel]), xlocs[asel][2], afp, xlocs[asel][1]) asel <- c(1:2, (length(ylocs)-1):length(ylocs)) bsel <- 3:(length(ylocs)-2) ylocs <- c(ylocs[asel][1] + abs(diff(ylocs[asel][c(1,3)]))/2, ylocs[asel][1], rep(ylocs[asel][1]+offset[1], 2), ylocs[bsel]+yoffset, rep(ylocs[asel][3]-offset[1], 2), ylocs[asel][3], ylocs[asel][1] + abs(diff(ylocs[asel][c(1,3)]))/2) polFinal <- rbind(polFinal, data.frame(x=xlocs, y=ylocs, id=paste(brs[[j]][1, "transcript"], brs[[j]][1, "exon"], j), stringsAsFactors=FALSE)) }else{ offset <- c(rep(offset, each=2), -rev(rep(offset, each=2))) polFinal <- rbind(polFinal, data.frame(x=c(xlocs, rev(xlocs)), y=ylocs+offset, id=paste(brs[[j]][1, "transcript"], brs[[j]][1, "exon"], j), stringsAsFactors=FALSE)) } } } } } } return(list(box=boxFinal, pols=polFinal, polpars=polPars)) } ## Take coordinates for the bounding boxes of annotation regions and plot filled arrows inside. ## Arguments: ## o the data frame with the bounding box information ## o W: the proportion of the total box width used for the arrow head ## o H: the proportion of the total box height used for the arrow head ## o lwd: the boundary line width ## o lty: the boundary line type ## o alpha: the transparency ## o min.width: the minumum width of the arrow head. Below this size a simple box is drawn ## Note that the last arguments 4-9 all have to be of the same length as number of rows in box. ## Value: the function is called for its side-effects of drawing on the graphics device .filledArrow <- function(box, W=1/4, H=1/3, lwd, lty, alpha, min.width=10, max.width=Inf, absoluteWidth=FALSE) { boxC <- if("transcript" %in% colnames(box)){ .handleComposite(box, ifelse(absoluteWidth, "fixedArrow", "arrow"), min.width=min.width, max.width=max.width, W=W, H=H) }else { list(box=box, pols=data.frame())} xx <- yy <- numeric() id <- character() pars <- data.frame() if(nrow(boxC$box)){ box <- boxC$box A <- box[,1:2,drop=FALSE] B <- box[,3:4,drop=FALSE] ## First everything that is still a box osel <- abs(B[,1]-A[,1]) < min.width | !box$strand %in% c("+", "-") xx <- c(A[osel,1], B[osel,1], B[osel,1], A[osel,1]) offset <- (abs(B[osel,2]-A[osel,2])*H/2) yy <- c(rep(A[osel,2]+offset, 2), rep(B[osel,2]-offset, 2)) id <- rep(seq_len(sum(osel)), 4) pars <- data.frame(fill=box$fill, col=box$col, lwd=lwd, lty=lty, alpha=alpha, stringsAsFactors=FALSE)[osel,] ## Now the arrows facing right sel <- !osel & box$strand=="+" id <- c(id, rep(seq(from=if(!length(id)) 1 else max(id)+1, by=1, len=sum(sel)), 7)) d <- abs(B[sel,1]-A[sel,1]) alp <- if(!absoluteWidth) rep(A[sel,1]+pmax(d*W, d-rep(max.width, sum(sel))),2) else rep(pmax(B[sel,1]-W, pmin(B[sel,1], A[sel,1])),2) xx <- c(xx, A[sel,1], alp, B[sel,1], alp, A[sel,1]) yy <- c(yy, rep(A[sel,2]+(abs(B[sel,2]-A[sel,2])*H/2),2), A[sel,2], A[sel,2]+(abs(B[sel,2]-A[sel,2])/2), B[sel,2], rep(B[sel,2]-(abs(B[sel,2]-A[sel,2])*H/2),2)) pars <- rbind(pars, data.frame(fill=box$fill, col=box$col, lwd=lwd, lty=lty, alpha=alpha, stringsAsFactors=FALSE)[sel,]) ## And finally those facing left sel <- !osel & box$strand=="-" id <- c(id, rep(seq(from=if(!length(id)) 1 else max(id)+1, by=1, len=sum(sel)), 7)) d <- abs(B[sel,1]-A[sel,1]) alp <- if(!absoluteWidth) rep(B[sel,1]-pmax(d*W, d-rep(max.width, sum(sel))), 2) else rep(pmin(A[sel,1]+W, pmax(B[sel,1], A[sel,1])),2) xx <- c(xx, B[sel,1], alp, A[sel,1], alp, B[sel,1]) yy <- c(yy, rep(A[sel,2]+(abs(B[sel,2]-A[sel,2])*H/2),2), A[sel,2], A[sel,2]+(abs(B[sel,2]-A[sel,2])/2), B[sel,2], rep(B[sel,2]-(abs(B[sel,2]-A[sel,2])*H/2),2)) pars <- rbind(pars, data.frame(fill=box$fill, col=box$col, lwd=lwd, lty=lty, alpha=alpha, stringsAsFactors=FALSE)[sel,]) } if(nrow(boxC$pols)){ xx <- c(xx, boxC$pols$x) yy <- c(yy, boxC$pols$y) id <- c(id, paste("pols", boxC$pols$id)) pars <- rbind(pars, data.frame(fill=boxC$polpars$fill, col=boxC$polpars$col, lwd=lwd, lty=lty, alpha=alpha, stringsAsFactors=FALSE)) } grid.polygon(x=xx, y=yy, gp=gpar(fill=pars$fill, col=pars$col, alpha=pars$alpha, lwd=pars$lwd, lty=pars$lty), default.units="native", id=factor(id)) } ## Take coordinates for the bounding boxes of annotation regions and plot boxes, also making sure that ## composite exons in GeneRegionTracks (i.e., overlapping coordinates and same exon id) are merged ## appropriately ## Arguments: ## o box: the data frame with the bounding box information ## o lwd: the boundary line width ## o lty: the boundary line type ## o alpha: the transparency ## Value: the function is called for its side-effects of drawing on the graphics device .filledBoxes <- function(box, lwd, lty, alpha){ if("transcript" %in% colnames(box)){ box <- .handleComposite(box, "box") if(nrow(box$box)) grid.rect(box$box$cx2, box$box$cy1, width=box$box$cx2 - box$box$cx1, height=box$box$cy2 - box$box$cy1, gp=gpar(col=as.character(box$box$col), fill=as.character(box$box$fill), lwd=lwd, lty=lty, alpha=alpha), default.units="native", just=c("right", "bottom")) if(nrow(box$pols)) grid.polygon(x=box$pols$x, y=box$pols$y, id=factor(box$pols$id), gp=gpar(col=as.character(box$polpars$col), fill=as.character(box$polpars$fill), lwd=lwd, lty=lty, alpha=alpha), default.units="native") }else{ grid.rect(box$cx2, box$cy1, width=box$cx2 - box$cx1, height=box$cy2 - box$cy1, gp=gpar(col=as.character(box$col), fill=as.character(box$fill), lwd=lwd, lty=lty, alpha=alpha), default.units="native", just=c("right", "bottom")) } } ## Take start and end coordinates for genemodel-type annotations and draw a featherd line indicating ## the strand direction ## Arguments: ## o xx1, xx2: integer vectors of equal length indicating the start and end of the gene models. ## o strand: the strand information for each gene model. Needs to be of the same length as xx1 and xx2 ## o coords: the coordinates of the exon features, needed to avoid overlaps. ## o y: the y value for the arrow bar, usually not set since it should always be 20 ## o W: the width of the arrow feathers in pixels ## o D: the distance between arrow feathers in pixels ## o H: the height of the arrow feathers in native coordinates (the total bounding box is usually 40) ## o col: the boundary color ## o lwd: the boundary line width ## o lty: the boundary line type ## o alpha: the transparency ## o barOnly: only plot the bar, not the feathers ## o diff: the current pixel resolution ## o min.height: the minimum total height in pixels for the feathers (i.e., min.height/2 in each direction) ## Value: the function is called for its side-effects of drawing on the graphics device .arrowBar <- function(xx1, xx2, strand, coords, y=20, W=3, D=10, H, col, lwd, lty, alpha, barOnly=FALSE, diff=.pxResolution(coord="y"), min.height=3){ exons <- IRanges(start=coords[,1], end=coords[,3]) levels <- split(exons, coords[,2]%/%1) if(!barOnly){ onePx <- diff if(missing(H)){ onePy <- .pxResolution(coord="y") H <- onePy*min.height/2 } fx1 <- fx2 <- scol <- fy1 <- fy2 <- NULL for(i in seq_along(xx1)){ x1 <- xx1[i] x2 <- xx2[i] len <- diff(c(x1,x2))/onePx if(len>D+W*2){ ax1 <- seq(from=x1+(onePx*W), to=x1+(len*onePx)-(onePx*W), by=onePx*D) ax2 <- ax1+(onePx*W) feathers <- IRanges(start=ax1-onePx, end=ax2+onePx) cur.level <- y[i]%/%1 sel <- queryHits(findOverlaps(feathers, resize(levels[[cur.level]], width=width(levels[[cur.level]])-1))) if(length(sel)){ ax1 <- ax1[-sel] ax2 <- ax2[-sel] } fx1 <- c(fx1, rep(if(strand[i]=="-") ax1 else ax2, each=2)) fx2 <- c(fx2, rep(if(strand[i]=="-") ax2 else ax1, each=2)) scol <- c(scol, rep(col[i], length(ax1)*2)) fy1 <- c(fy1, rep(rep(y[i], length(ax1)*2))) fy2 <- c(fy2, rep(c(y[i]-H, y[i]+H), length(ax1))) } } if(!is.null(fx1) && length(fx1)) grid.segments(fx1, fy1, fx2, fy2, default.units="native", gp=gpar(col=scol, lwd=lwd, lty=lty, alpha=alpha)) } bars <- data.frame(x1=xx1, x2=xx2, y=y, col=col, stringsAsFactors=FALSE) cutBars <- data.frame() for(i in 1:nrow(bars)){ b <- bars[i,] cur.level <- b$y%/%1 ct <- if(cur.level != 0) setdiff(IRanges(start=b$x1, end=b$x2), resize(levels[[cur.level]], width=width(levels[[cur.level]])-1)) else IRanges() if(length(ct)) cutBars <- rbind(cutBars, data.frame(x1=start(ct), x2=end(ct), y=b$y, col=b$col, stringsAsFactors=FALSE)) } ## fix bug when no introns are present if (nrow(cutBars)) grid.segments(cutBars$x1, cutBars$y, cutBars$x2, cutBars$y, default.units="native", gp=gpar(col=cutBars$col, lwd=lwd, lty=lty, alpha=alpha, lineend="square")) ##grid.segments(xx1, y, xx2, y, default.units="native", gp=gpar(col=col, lwd=lwd, lty=lty, alpha=alpha, lineend="square")) } ## Extract track color for different subtypes within the track and use the default ## color value if no other is found, lightblue if no colors are set at all ## Arguments: ## o GdObject: object inheriting from class GdObject ## Value: a color character .getBiotypeColor <- function(GdObject) { defCol <- .dpOrDefault(GdObject, "fill", .DEFAULT_FILL_COL) col <- sapply(as.character(values(GdObject)[, "feature"]), function(x) .dpOrDefault(GdObject, x)[1], simplify=FALSE) needsDef <- sapply(col, is.null) col[needsDef] <- rep(defCol, sum(needsDef))[1:sum(needsDef)] return(unlist(col)) } ## Compute pretty tickmark location (code from tilingArray package) ## Arguments: ## o x: a vector of data values ## Value: the tick mark coordinates .ticks <- function(x){ rx <- range(x) lz <- log((rx[2]-rx[1])/3, 10) fl <- floor(lz) if( lz-fl > log(5, 10)) fl <- fl + log(5, 10) tw <- round(10^fl) i0 <- ceiling(rx[1]/tw) i1 <- floor(rx[2]/tw) seq(i0, i1)*tw } ## A lattice-style panel function to draw smoothed 'mountain' plots ## Arguments: ## o x, y: the x and y coordinates form the plot ## o span, degree, family, evaluation: parameters that are passed on to loess ## o lwd, lty, col: color, with and type of the plot lines ## o fill: fill colors for areas above and under the baseline, a vector of length two ## o col.line: color of the baseline ## o baseline: the y value of the horizontal baseline ## o alpha: the transparancy ## Value: the function is called for its side-effect of drawing on the graphics device .panel.mountain <- function (x, y, span=2/3, degree=1, family=c("symmetric", "gaussian"), evaluation=50, lwd=plot.line$lwd, lty=plot.line$lty, col, col.line=plot.line$col, baseline, fill, alpha=1, ...) { x <- as.numeric(x) y <- as.numeric(y) fill <- rep(fill,2) ok <- is.finite(x) & is.finite(y) if (sum(ok) < 1) return() if (!missing(col)) { if (missing(col.line)) col.line <- col } plot.line <- trellis.par.get("plot.line") smooth <- loess.smooth(x[ok], y[ok], span = span, family = family, degree = degree, evaluation = evaluation) tmp <- as.integer(smooth$y1 && tmp[i]!= tmp[i-1]) changePoint = c(changePoint, i) m <- (smooth$y[changePoint] - smooth$y[changePoint-1]) / (smooth$x[changePoint] - smooth$x[changePoint-1]) xCross <- ((baseline-smooth$y[changePoint-1])/m) + smooth$x[changePoint-1] newX <- newY <- NULL j <- 1 xx <- smooth$x yy <- smooth$y smooth$x <- c(smooth$x, tail(smooth$x,1)) smooth$y <- c(smooth$y, baseline) xvals <- smooth$x[1] yvals <- baseline for(i in seq_along(smooth$x)) { if(i==length(smooth$x)) { xvals <- c(xvals, smooth$x[i]) yvals <- c(yvals, baseline) fcol <- if(mean(yvals)1 && tmp[i]!= tmp[i-1]) changePoint = c(changePoint, i) m <- (y[changePoint] - y[changePoint-1]) / (x[changePoint] - x[changePoint-1]) xCross <- ((baseline-y[changePoint-1])/m) + x[changePoint-1] newX <- newY <- NULL j <- 1 x <- c(x, tail(x,1)) y <- c(y, baseline) xvals <- x[1] yvals <- baseline for(i in seq_along(x)) { if(i==length(x)) { xvals <- c(xvals, x[i]) yvals <- c(yvals, baseline) fcol <- if(mean(yvals)0){ minXDiff <- ceiling(min.width*diff) ## Extend all ranges to at least minXDiff xdiff <- width(r) xsel <- xdiff < minXDiff if(any(xsel)) { rr <- if(is(r, "GRanges")) ranges(r) else r start(rr)[xsel] <- pmax(1, start(rr)[xsel]-(minXDiff-xdiff[xsel])/2) end(rr)[xsel] <- end(rr)[xsel]+(minXDiff-xdiff[xsel])/2 if(is(r, "GRanges")) r@ranges <- rr else r <- rr } } return(r) } ## Tables containing the UCSC to ENSEMBL genome mapping .biomartCurrentVersionTable <- read.delim(system.file(file.path("extdata", "biomartVersionsNow.txt"), package="Gviz"), as.is=TRUE) .biomartVersionTable <- read.delim(system.file(file.path("extdata", "biomartVersionsLatest.txt"), package="Gviz"), as.is=TRUE) ## Helper function to map between UCSC and ENSEMBl genome information ## Arguments: ## o id: character scalar, a UCSC genome identifier ## Value: a list with ENSEMBL the genome information .ucsc2Ensembl <- function(id){ mt <- match(tolower(id), tolower(.biomartCurrentVersionTable$ucscId)) val <- .biomartCurrentVersionTable[mt, ] if(is.na(mt)){ mt <- match(tolower(id), tolower(.biomartVersionTable$ucscId)) val <- .biomartVersionTable[mt, c("species", "value", "dataset", "ucscId", "speciesShort", "speciesLong", "date", "version")] } return(as.list(val)) } ## Helper function to get the ENSEMBL biomart given a UCSC identifier ## Arguments: ## o genome: character scalar, a UCSC genome identifier ## Value: a biomaRt object .getBiomart <- function(genome){ map <- .ucsc2Ensembl(genome) if(map$date == "head"){ bm <- useMart("ensembl", dataset=map$dataset) ds <- listDatasets(bm) mt <- ds[match(map$dataset, ds$dataset), "version"] if(is.na(mt)){ stop(sprintf(paste("Gviz thinks that the UCSC genome identifier '%s' should map to the Biomart data set '%s' which is not correct.", "\nPlease manually provide biomaRt object"), genome, map$dataset)) } if(mt != map$value){ stop(sprintf(paste("Gviz thinks that the UCSC genome identifier '%s' should map to the current Biomart head as '%s',", "but its current version is '%s'.\nPlease manually provide biomaRt object"), genome, map$value, mt)) } }else{ bm <- useMart(host=sprintf("%s.archive.ensembl.org", tolower(sub(".", "", map$date, fixed=TRUE))), biomart="ENSEMBL_MART_ENSEMBL", dataset=map$dataset) ds <- listDatasets(bm) mt <- ds[match(map$dataset, ds$dataset), "version"] if(is.na(mt)){ stop(sprintf(paste("Gviz thinks that the UCSC genome identifier '%s' should map to the Biomart data set '%s' which is not correct.", "\nPlease manually provide biomaRt object"), genome, map$dataset)) } if(mt != map$value){ stop(sprintf(paste("Gviz thinks that the UCSC genome identifier '%s' should map to Biomart archive %s (version %s) as '%s',", "but its version is '%s'.\nPlease manually provide biomaRt object"), genome, sub(".", " ", map$date, fixed=TRUE), map$version, map$value, mt)) } } return(bm) } ## Helper function to translate from a UCSC genome name to a Biomart data set. This also caches the mart ## object in order to speed up subsequent calls ## Arguments: ## o genome: character giving the UCSC genome ## Value: A BiomaRt connection object .genome2Dataset <- function(genome) { map <- .ucsc2Ensembl(genome) if(is.na(map$date)){ stop(sprintf("Unable to automatically determine Biomart data set for UCSC genome identifier '%s'.\nPlease manually provide biomaRt object", genome)) } cenv <- environment() bm <- .doCache(paste(map$dataset, genome, sep="_"), expression(.getBiomart(genome)), .ensemblCache, cenv) return(bm) } ## Return the plotting range for a GdObject, either from the contained ranges or from overrides. ## This function is vectorized and should also work for lists of GdObjects. .defaultRange <- function(GdObject, from=NULL, to=NULL, extend.left=0, extend.right=0, factor=0.01, annotation=FALSE) { if(!is.list(GdObject)) GdObject <- list(GdObject) GdObject <- c(GdObject, unlist(lapply(GdObject, function(x) if(is(x, "HighlightTrack") || is(x, "OverlayTrack")) x@trackList else NULL))) if(!length(GdObject) || !all(sapply(GdObject, is, "GdObject"))) stop("All items in the list must inherit from class 'GdObject'") GdObject <- GdObject[!sapply(GdObject, is, "OverlayTrack")] tfrom <- lapply(GdObject, function(x){tmp <- start(x); if(is(x, "RangeTrack")) tmp <- tmp[seqnames(x)==chromosome(x)]; tmp}) tfrom <- if(is.null(unlist(tfrom))) Inf else min(sapply(tfrom[listLen(tfrom)>0], min)) tto <- lapply(GdObject, function(x){tmp <- end(x); if(is(x, "RangeTrack")) tmp <- tmp[seqnames(x)==chromosome(x)]; tmp}) tto <- if(is.null(unlist(tto))) Inf else max(sapply(tto[listLen(tto)>0], max)) if((is.null(from) || is.null(to)) && ((is.infinite(tfrom) || is.infinite(tto)) || is(GdObject, "GenomeAxisTrack"))) stop("Unable to automatically determine plotting ranges from the supplied track(s).\nPlease provide ", "range coordinates through the 'from' and 'to' arguments of the plotTracks function.") ## FIX the cases with identical "tfrom" and "tto" (one base-pair plotting) by adding +1 to "tto" if (tto == tfrom) { tto <- tto + 1 } range <- extendrange(r=c(tfrom, tto), f=factor) range[1] <- max(1, range[1]) wasNull <- rep(FALSE, 2) if(is.null(from)){ wasNull[1] <- TRUE from <- range[1] } if(is.null(to)){ to <- range[2] wasNull[2] <- TRUE } ## We may need some extra space for annotations if(annotation){ rr <- unlist(lapply(GdObject, function(x){ gr <- .dpOrDefault(x, ".__groupRanges") gw <- .dpOrDefault(x, ".__groupLabelWidths", data.frame(before=0, after=0)) if(is.null(gr) || length(gr) == 0) NULL else c(min(start(gr) + gw$before), max(end(gr) - gw$after)) })) if(!is.null(rr)){ rr <- matrix(rr, ncol=2, byrow=TRUE) if(wasNull[1]) from <- min(from, rr[,1]) if(wasNull[2]) to <- max(to, rr[,2]) } } from <- if(extend.left != 0 && extend.left > -1 && extend.left < 1){ from - (abs(diff(c(from, to))) * extend.left) }else{ from - extend.left } to <- if(extend.right != 0 && extend.right > -1 && extend.right < 1){ to + (abs(diff(c(from, to))) * extend.right) }else{ to + extend.right } if(from > to){ warning("'from' range can not be larger than 'to', reversing range coordinates") tto <- from from <- to to <- tto } return(c(from=as.integer(from), to=as.integer(to))) } ## Figure out the colors to use for a DataTrack object from the supplied display parameters .getPlottingFeatures <- function(GdObject) { pch <- .dpOrDefault(GdObject, "pch", 20) lty <- .dpOrDefault(GdObject, "lty", 1) lwd <- .dpOrDefault(GdObject, "lwd", 1) cex <- .dpOrDefault(GdObject, "cex", 0.7) groups <- .dpOrDefault(GdObject, "groups") col <- .dpOrDefault(GdObject, "col", "#0080ff") if(is.null(groups)){ ## When there are no groups we force a single color for all lines and points col <- col[1] col.line <- .dpOrDefault(GdObject, "col.line", col)[1] col.symbol <- .dpOrDefault(GdObject, "col.symbol", col)[1] pch <- pch[1] lwd <- lwd[1] lty <- lty[1] cex <- cex[1] } else { ## Otherwise colors are being mapped to group factors if(!is.factor(groups)) groups <- factor(groups) col <- .dpOrDefault(GdObject, "col", trellis.par.get("superpose.line")$col) col <- rep(col, nlevels(groups)) col.line <- rep(.dpOrDefault(GdObject, "col.line", col), nlevels(groups)) col.symbol <- rep(.dpOrDefault(GdObject, "col.symbol", col), nlevels(groups)) lwd <- rep(lwd, nlevels(groups)) lty <- rep(lty, nlevels(groups)) pch <- rep(pch, nlevels(groups)) cex <- rep(cex, nlevels(groups)) } col.baseline <- .dpOrDefault(GdObject, "col.baseline", col) col.grid <- .dpOrDefault(GdObject, "col.grid", "#e6e6e6")[1] fill <- .dpOrDefault(GdObject, "fill", .DEFAULT_FILL_COL)[1] fill.histogram <- .dpOrDefault(GdObject, "fill.histogram", fill)[1] col.histogram <- .dpOrDefault(GdObject, "col.histogram", .dpOrDefault(GdObject, "col", .DEFAULT_SHADED_COL))[1] lty.grid <- .dpOrDefault(GdObject, "lty.grid", 1) lwd.grid <- .dpOrDefault(GdObject, "lwd.grid", 1) return(list(col=col, col.line=col.line, col.symbol=col.symbol, col.baseline=col.baseline, col.grid=col.grid, col.histogram=col.histogram, fill=fill, fill.histogram=fill.histogram, lwd=lwd, lty=lty, pch=pch, cex=cex, lwd.grid=lwd.grid, lty.grid=lty.grid)) } .legendInfo <- function() { legInfo <- matrix(FALSE, ncol=7, nrow=17, dimnames=list(c("p", "b", "l", "a", "s", "S", "r", "h", "smooth", "histogram", "boxplot", "heatmap", "gradient", "mountain", "g", "horizon","confint"), c("lty", "lwd", "pch", "col", "cex", "col.lines", "col.symbol"))) legInfo[2:9, c("lty", "lwd", "col.lines")] <- TRUE legInfo[1:2, c("pch", "cex", "col.symbol")] <- TRUE legInfo[1:12, "col"] <- TRUE return(legInfo) } ## A helper function to get the currently active chromosomes, also if the track is one of the collection ## track classes .recChromosome <- function(GdObject){ chroms <- if(is(GdObject, "HighlightTrack") || is(GdObject, "OverlayTrack")) unlist(lapply(GdObject@trackList, .recChromosome)) else chromosome(GdObject) return(unique(chroms)) } ## Plot a list of GdObjects as individual tracks similar to the display on the UCSC genome browser ## Arguments: ## o trackList: a list of GdObjects ## o from, to: the plotting range, will be figured out automatically from the tracks if missing ## o sized: a vector of relative vertical sizes, or NULL to auto-detect ## o panel.only: don't draw track titles, useful to embed in a lattice-like function, this also implies add=TRUE ## o extend.right, extend.left: extend the coordinates in 'from' and 'too' ## o title.width: the expansion factor for the width of the title track ## Value: the function is called for its side-effect of drawing on the graphics device plotTracks <- function(trackList, from=NULL, to=NULL, ..., sizes=NULL, panel.only=FALSE, extend.right=0, extend.left=0, title.width=NULL, add=FALSE, main, cex.main=2, fontface.main=2, col.main="black", margin=6, chromosome=NULL, innerMargin=3){ ## If we have to open a new device for this but do not run through the whole function because of errors we want to ## clean up in the end done <- FALSE cdev <- dev.cur() on.exit(if(cdev==1 && !done) dev.off()) ## We only need a new plot for regular calls to the function. Both add==TRUE and panel.only=TRUE will add to an existing grid plot if(!panel.only && !add) grid.newpage() if(!is.list(trackList)) trackList <- list(trackList) ## All arguments in ... are considered to be additional display parameters and need to be attached to each item in the track list dps <- list(...) trackList <- lapply(trackList, function(x) { displayPars(x, recursive=TRUE) <- dps return(x) }) ## OverlayTracks and HighlightTracks can be discarded if they are empty trackList <- trackList[!sapply(trackList, function(x) (is(x, "HighlightTrack") || is(x, "OverlayTrack")) && length(x) < 1)] isHt <- which(sapply(trackList, is, "HighlightTrack")) isOt <- which(sapply(trackList, is, "OverlayTrack")) ## A mix between forward and reverse strand tracks should trigger an alarm strds <- unique(.whichStrand(trackList)) if(!is.null(strds) && length(strds) > 1) warning("Plotting a mixture of forward strand and reverse strand tracks.\n Are you sure this is correct?") ## We first run very general housekeeping tasks on the tracks for which we don't really need to know anything about device ## size, resolution or plotting ranges. ## Chromosomes should all be the same for all tracks, if not we will force them to be set to the first one that can be detected. ## If plotting ranges are supplied we can speed up a lot of the downstream operations by subsetting first. ## We may want to use alpha blending on those devices that support it, but also fall back to non-transparent colors without causing ## warnings. hasAlpha <- .supportsAlpha() chrms <- unique(unlist(lapply(trackList, .recChromosome))) if(is.null(chromosome)){ chrms <- if(!is.null(chrms)) chrms[gsub("^chr", "", chrms)!="NA"] else chrms chromosome <- head(chrms, 1) if(length(chromosome)==0) chromosome <- "chrNA" if(!is.null(chrms) && length(unique(chrms))!=1) warning("The track chromosomes in 'trackList' differ. Setting all tracks to chromosome '", chromosome, "'", sep="") } if(!is.null(from) || !(is.null(to))){ trackList <- lapply(trackList, function(x){ chromosome(x) <- chromosome subset(x, from=from, to=to, chromosome=chromosome, sort=FALSE, stacks=FALSE, use.defaults=FALSE) }) } trackList <- lapply(trackList, consolidateTrack, chromosome=chromosome, any(.needsAxis(trackList)), any(.needsTitle(trackList)), title.width, alpha=hasAlpha, ...) ## Now we figure out the plotting ranges. If no ranges are given as function arguments we take the absolute min/max of all tracks. ranges <- .defaultRange(trackList, from=from, to=to, extend.left=extend.left, extend.right=extend.right, annotation=TRUE) ## Now we can subset all the objects in the list to the current boundaries and compute the initial stacking trackList <- lapply(trackList, subset, from=ranges["from"], to=ranges["to"], chromosome=chromosome) trackList <- lapply(trackList, setStacks, recomputeRanges=FALSE) ## Highlight tracks are just a way to add a common highlighting region to several tracks, but other than that we can treat the containing ## tracks a normal track objects, and thus unlist them. We only want to record their indexes in the expanded list for later. htList <- list() expandedTrackList <- if(length(isHt)){ j <- 1 tlTemp <- list() for(i in seq_along(trackList)){ if(! i %in% isHt){ tlTemp <- c(tlTemp, trackList[[i]]) j <- j+1 }else{ tlTemp <- c(tlTemp, trackList[[i]]@trackList) htList[[as.character(i)]] <- list(indexes=j:(j+length(trackList[[i]]@trackList)-1), track=trackList[[i]]) j <- j+length(trackList[[i]]@trackList) } } tlTemp }else trackList ## If there is a AlignmentsTrack and also a SequenceTrack we can tell the former to use the latter, unless already provided isAt <- sapply(expandedTrackList, is, "AlignmentsTrack") isSt <- sapply(expandedTrackList, is, "SequenceTrack") for(ai in which(isAt)){ if(is.null(expandedTrackList[[ai]]@referenceSequence) && any(isSt)) expandedTrackList[[ai]]@referenceSequence <- expandedTrackList[[min(which(isSt))]] } ## We need to reverse the list to get a top to bottom plotting order expandedTrackList <- rev(expandedTrackList) map <- vector(mode="list", length=length(expandedTrackList)) titleCoords <- NULL names(map) <- rev(sapply(expandedTrackList, names)) ## Open a fresh page and set up the bounding box, unless add==TRUE if(!panel.only) { ## We want a margin pixel border borderFacts <- 1-((margin*2)/vpLocation()$size) vpBound <- viewport(width=borderFacts[1], height=borderFacts[2]) pushViewport(vpBound) ## If there is a header we have to make some room for it here if(!missing(main) && main != "") { vpHeader <- viewport(width=1, height=0.1, y=1, just=c("center", "top")) pushViewport(vpHeader) grid.text(main, gp=gpar(col=col.main, cex=cex.main, fontface=fontface.main)) popViewport(1) vpMain <- viewport(width=1, height=0.9, y=0.9, just=c("center", "top")) }else{ vpMain <- viewport(width=1, height=1) } pushViewport(vpMain) ## A first guestimate of the vertical space that's needed spaceSetup <- .setupTextSize(expandedTrackList, sizes, title.width, spacing=innerMargin) } else { vpBound <- viewport() pushViewport(vpBound) spaceSetup <- .setupTextSize(expandedTrackList, sizes, spacing=innerMargin) } ## First iteration to set up all the dimensions by calling the drawGD methods in prepare mode, i.e., ## argument prepare=TRUE. Nothing is drawn at this point, and this only exists to circumvent the ## chicken and egg problem of not knowing how much space we need until we draw, but also not knowing ## where to draw until we know the space needed. for(i in rev(seq_along(expandedTrackList))) { fontSettings <- .fontGp(expandedTrackList[[i]], cex=NULL) vpTrack <- viewport(x=0, y=sum(spaceSetup$spaceNeeded[1:i]), just=c(0,1), width=1, height=spaceSetup$spaceNeeded[i], gp=fontSettings) pushViewport(vpTrack) vpContent <- if(!panel.only) viewport(x=spaceSetup$title.width + spaceSetup$spacing, width=1 - spaceSetup$title.width - spaceSetup$spacing * 2, just=0) else viewport(width=1) pushViewport(vpContent) expandedTrackList[[i]] <- drawGD(expandedTrackList[[i]], minBase=ranges["from"], maxBase=ranges["to"], prepare=TRUE, subset=FALSE) popViewport(2) } ## Now lets recalculate the space and draw for real spaceSetup <- .setupTextSize(expandedTrackList, sizes, title.width, spacing=innerMargin) ## First the highlight box backgrounds htBoxes <- data.frame(stringsAsFactors=FALSE) for(hlite in htList){ if(length(ranges(hlite$track))){ inds <- setdiff(sort(length(expandedTrackList)-hlite$index+1), which(sapply(expandedTrackList, is, "IdeogramTrack"))) y <- reduce(IRanges(start=inds, width=1)) yy <- ifelse(start(y)==1, 0, sum(spaceSetup$spaceNeeded[1:start(y)-1])) ht <- sum(spaceSetup$spaceNeeded[start(y):end(y)]) htBoxes <- rbind(htBoxes, data.frame(y=yy, height=ht, x=start(hlite$track), width=width(hlite$track), col=.dpOrDefault(hlite$track, "col", "orange"), fill=.dpOrDefault(hlite$track, "fill", "red"), lwd=.dpOrDefault(hlite$track, "lwd", 1), lty=.dpOrDefault(hlite$track, "lty", 1), alpha=.dpOrDefault(hlite$track, "alpha", 1), inBackground=.dpOrDefault(hlite$track, "inBackground", TRUE), stringsAsFactors=FALSE)) } } .drawHtBoxes <- function(htBoxes, background=TRUE){ htBoxes <- htBoxes[htBoxes$inBackground == background, , drop=FALSE] rscales = if(strds[1] == "reverse") c(from=ranges["to"], to=ranges["from"]) else ranges if(nrow(htBoxes)){ vpContent <- if(!panel.only) viewport(x=spaceSetup$title.width + spaceSetup$spacing, xscale=rscales, width=1 - spaceSetup$title.width - spaceSetup$spacing*2, just=0) else { viewport(width=1, xscale=rscales)} pushViewport(vpContent) grid.rect(x=htBoxes$x, just=c(0,1), width=htBoxes$width, y=htBoxes$y+htBoxes$height, height=htBoxes$height, gp=gpar(col=htBoxes$col, fill=htBoxes$fill, lwd=htBoxes$lwd, lty=htBoxes$lty, alpha=htBoxes$alpha), default.units="native") popViewport(1) } } if(nrow(htBoxes)) .drawHtBoxes(htBoxes) ## Now the track content for(i in rev(seq_along(expandedTrackList))) { vpTrack <- viewport(x=0, y=sum(spaceSetup$spaceNeeded[1:i]), just=c(0,1), width=1, height=spaceSetup$spaceNeeded[i]) pushViewport(vpTrack) fill <- .dpOrDefault(expandedTrackList[[i]], "background.title", .DEFAULT_SHADED_COL) thisTrack <- if(is(expandedTrackList[[i]], "OverlayTrack")) expandedTrackList[[i]]@trackList[[1]] else expandedTrackList[[i]] if(!panel.only) { fontSettings <- .fontGp(expandedTrackList[[i]], subtype="title", cex=NULL) vpTitle <- viewport(x=0, width=spaceSetup$title.width, just=0, gp=fontSettings) pushViewport(vpTitle) lwd.border.title <- .dpOrDefault(thisTrack, "lwd.title", 1) col.border.title <- .dpOrDefault(thisTrack, "col.border.title", "transparent") grid.rect(gp=gpar(fill=fill, col=col.border.title, lwd=lwd.border.title)) needAxis <- .needsAxis(thisTrack) drawAxis(thisTrack, ranges["from"], ranges["to"], subset=FALSE) tit <- spaceSetup$nwrap[i] ## FIXME: Do we want something smarted for the image map coordinates? titleCoords <- rbind(titleCoords, cbind(.getImageMap(cbind(0,0,1,1)), title=names(expandedTrackList[[i]]))) if(.dpOrDefault(thisTrack, "showTitle", TRUE) && !is.null(tit) && tit!="") { x <- if(needAxis) 0.075 else 0.4 just <- if(needAxis) c("center", "top") else "center" ## FIXME: We need to deal with this when calculating the space for the title bar rot <- .dpOrDefault(thisTrack, "rotation.title", 90) gp <- .fontGp(thisTrack, "title", cex=spaceSetup$cex[i]) suppressWarnings(grid.text(tit, unit(x, "npc"), rot=rot, gp=gp, just=just)) } popViewport(1) } ## Draw the panel background, grid lines if necessary and the panel content vpBackground <- if(!panel.only) viewport(x=spaceSetup$title.width, width=1-spaceSetup$title.width, just=0) else viewport(width=1) pushViewport(vpBackground) grid.rect(gp=gpar(col="transparent", fill=.dpOrDefault(thisTrack, "background.panel", "transparent"))) drawGrid(thisTrack, ranges["from"], ranges["to"]) popViewport(1) fontSettings <- .fontGp(expandedTrackList[[i]], cex=NULL) vpContentOuter <- if(!panel.only) viewport(x=spaceSetup$title.width, width=1-spaceSetup$title.width, just=0, gp=fontSettings, clip=TRUE) else viewport(width=1, gp=fontSettings, clip=TRUE) pushViewport(vpContentOuter) vpContent <- if(!panel.only) viewport(x=spaceSetup$spacing, width=1-(spaceSetup$spacing*2), just=0, gp=fontSettings) else viewport(width=1, gp=fontSettings) pushViewport(vpContent) tmp <- drawGD(expandedTrackList[[i]], minBase=ranges["from"], maxBase=ranges["to"], subset=FALSE) if(!is.null(tmp)) map[[(length(map)+1)-i]] <- tmp popViewport(2) if(.dpOrDefault(thisTrack, "frame", FALSE)) grid.rect(gp=gpar(col=.dpOrDefault(thisTrack, "col.frame", .DEFAULT_SHADED_COL), fill="transparent")) popViewport(1) } if(nrow(htBoxes)) .drawHtBoxes(htBoxes, FALSE) popViewport(if(panel.only) 1 else 2) tc <- as.character(titleCoords[,5]) tc[which(tc == "" | is.na(tc) | is.null(tc))] = "NA" names(tc) <- tc if(!is.null(titleCoords)) { tcoord <- as.matrix(titleCoords[,1:4]) rownames(tcoord) <- names(tc) map$titles <- ImageMap(coords=tcoord, tags=list(title=tc)) } done <- TRUE return(invisible(map)) } ## Try to extract the (unique) genome information from a GRanges objects with the possibility to fall back to a default value .getGenomeFromGRange <- function(range, default=NULL){ gn <- genome(range) if(length(unique(gn))>1) warning("Only a single genome is supported for this object. Ignoring additional genome information") if(length(gn)==0 || all(is.na(gn))){ if(is.null(default)) stop("A genome must be supplied when creating this object.") return(default[1]) } return(gn[1]) } ## Write all tracks in a list of tracks into ## a single BED file. exportTracks <- function(tracks, range, chromosome, file) { if(missing(file)) file <- "customTracks.bed" con <- file(file, open="wt") writeLines(sprintf("browser position %s:%i-%i", chromosome, range[1], range[2]), con) writeLines("browser hide all", con) for(t in seq_along(tracks)) { track <- tracks[[t]] if(length(track)>0 && (is(track, "AnnotationTrack") || is(track, "GeneRegion"))) { track <- as(track, "UCSCData") writeLines(as(track@trackLine, "character"), con) ## nextMet <- selectMethod("export.bed", c("RangedData", "characterORconnection")) ## nextMet(as(track, "RangedData"), con) .expBed(as(track, "RangedData"), con) } } close(con) } ## This funcion is broken in the rtracklayer package .expBed <- function (object, con, variant = c("base", "bedGraph", "bed15"), color, append) { variant <- match.arg(variant) name <- strand <- thickStart <- thickEnd <- color <- NULL blockCount <- blockSizes <- blockStarts <- NULL df <- data.frame(chrom(object), start(object) - 1, end(object)) score <- score(object) if (!is.null(score)) { if (!is.numeric(score) || any(is.na(score))) stop("Scores must be non-NA numeric values") } if (variant == "bedGraph") { if (is.null(score)) score <- 0 df$score <- score } else { blockSizes <- object$blockSizes blockStarts <- object$blockStarts if (variant == "bed15" && is.null(blockSizes)) blockStarts <- blockSizes <- "" if (!is.null(blockSizes) || !is.null(blockStarts)) { if (is.null(blockSizes)) stop("'blockStarts' specified without 'blockSizes'") if (is.null(blockStarts)) stop("'blockSizes' specified without 'blockStarts'") lastBlock <- function(x) sub(".*,", "", x) lastSize <- lastBlock(blockSizes) lastStart <- lastBlock(blockStarts) if (any(df[[2]] + as.integer(lastSize) + as.integer(lastStart) != df[[3]]) || any(sub(",.*", "", blockStarts) != 0)) stop("blocks must span entire feature") blockCount <- sapply(strsplit(blockSizes, ","), length) } if (is.null(color)) color <- object$itemRgb if (is.null(color) && !is.null(blockCount)) color <- "0" else if (!is.null(color)) { nacol <- is.na(color) colmat <- col2rgb(color) color <- paste(colmat[1, ], colmat[2, ], colmat[3, ], sep = ",") color[nacol] <- "0" } thickStart <- object$thickStart thickEnd <- object$thickEnd if (is.null(thickStart) && !is.null(color)) { thickStart <- start(object) thickEnd <- end(object) } strand <- object$strand if (!is.null(thickStart) && is.null(strand)) { strand <- rep(NA, nrow(object)) } if (!is.null(strand) && is.null(score)) score <- 0 name <- object$name if (is.null(name)) name <- rownames(object) if (!is.null(score) && is.null(name)) name <- rep(NA, nrow(object)) df$name <- name df$score <- score df$strand <- strand df$thickStart <- thickStart df$thickEnd <- thickEnd df$itemRgb <- color df$blockCount <- blockCount df$blockSizes <- blockSizes df$blockStarts <- blockStarts if (variant == "bed15") { df$expCount <- object$expCount df$expIds <- object$expIds df$expScores <- object$expScores } } scipen <- getOption("scipen") options(scipen = 100) on.exit(options(scipen = scipen)) write.table(df, con, sep = "\t", col.names = FALSE, row.names = FALSE, quote = FALSE, na = ".", append = append) } ## Construct a URL to UCSC showing the custom tracks ucscUrl <- function(chr, range, spec, gen, open=TRUE) { hgid <- system(sprintf("%s %s %s", system.file("lib/testUCSC.pl", package="Gviz"), "customTracks.bed", spec, gen), intern=TRUE, ignore.stderr=TRUE) url <- sprintf(paste("http://genome.ucsc.edu/cgi-bin/hgTracks?hgsid=%s&Submit=go+to+genome+browser", "&position=%s%%3A%i-%i", sep=""), hgid, chr, range[1], range[2]) if(open) browseURL(url) return(url) } .updateObj <- function(object) { availSlots <- getObjectSlots(object) availSlotNames <- names(availSlots) definedSlotNames <- slotNames(object) if(length(availSlotNames)==length(definedSlotNames) && all(sort(availSlotNames) == sort(definedSlotNames))) return(object) commonSlots <- intersect(definedSlotNames, availSlotNames) missingSlots <- setdiff(definedSlotNames, availSlotNames) newObject <- new(class(object)) for (s in commonSlots) slot(newObject, s) <- availSlots[[s]] return(newObject) } vpLocation <- function(){ xres <- devRes()[1] yres <- devRes()[2] ## find location and pixel-size of current viewport devloc1 <- c(convertX(unit(0, "npc"), "inches"), convertY(unit(0, "npc"), "inches"), 1) %*% current.transform() devloc2 <- c(convertX(unit(1, "npc"), "inches"), convertY(unit(1, "npc"), "inches"), 1) %*% current.transform() x1 <- (devloc1/devloc1[3])[1]*xres y1 <- (devloc1/devloc1[3])[2]*yres x2 <- (devloc2/devloc2[3])[1]*xres y2 <- (devloc2/devloc2[3])[2]*yres loc <- c(x1,y1,x2,y2) names(loc) <- c("x1", "y1", "x2", "y2") size <- c(x2-x1, y2-y1) names(size) <- c("width", "height") iloc <- c(x1/xres, y1/yres, x2/yres, y2/yres) names(iloc) <- c("x1", "y1", "x2", "y2") isize <- size/c(xres,yres) names(size) <- c("width", "height") return(list(location=loc, size=size, ilocation=iloc, isize=isize)) } devRes <- function(){ ## find R's resolution for the current device if(current.viewport()$name != "ROOT"){ vpt <- current.vpTree() depth <- upViewport(0) xres <- abs(as.numeric(convertWidth(unit(1, "inches"), "native"))) yres <- abs(as.numeric(convertHeight(unit(1, "inches"), "native"))) downViewport(depth) }else{ xres <- abs(as.numeric(convertWidth(unit(1, "inches"), "native"))) yres <- abs(as.numeric(convertHeight(unit(1, "inches"), "native"))) } retval <- c(xres, yres) names(retval) <- c("xres", "yres") return(retval) } devDims <- function(width, height, ncol=12, nrow=8, res=72){ f <- (((ncol+1)*0.1+ncol+1)/((nrow+1)*0.1+nrow+1)) if((missing(width) & missing(height) || !missing(width) & !missing(height))) stop("Need either argument 'width' or argument 'height'") if(missing(height)) return(list(width=width, height=width/f, pwidth=width*res, pheight=width/f*res)) else return(list(width=height*f, height, pwidth=height*f*res, pheight=height*res)) } ## Record the display parameters for each class once .makeParMapping <- function() { classes <- c("GdObject", "GenomeAxisTrack", "RangeTrack", "NumericTrack", "DataTrack", "IdeogramTrack", "StackedTrack", "AnnotationTrack", "DetailsAnnotationTrack", "GeneRegionTrack", "BiomartGeneRegionTrack", "AlignedReadTrack") defs <- try(sapply(classes, function(x) as(getClassDef(x)@prototype@dp, "list"), simplify=FALSE), silent=TRUE) if(!is(defs, "try-error") && is.null(.parMappings)) assignInNamespace(x=".parMappings", value=defs, ns="Gviz") } .parMappings <- NULL ## Show available display parameters for a class and their defaults availableDisplayPars <- function(class) { if(!is.character(class)) class <- class(class) class <- match.arg(class, c("GdObject", "GenomeAxisTrack", "RangeTrack", "NumericTrack", "DataTrack", "IdeogramTrack", "StackedTrack", "AnnotationTrack", "DetailsAnnotationTrack", "GeneRegionTrack", "BiomartGeneRegionTrack", "AlignedReadTrack", "SequenceTrack", "SequenceBSgenomeTrack", "SequenceDNSStringSetTrack")) parents <- names(getClassDef(class)@contains) .makeParMapping() pars <- .parMappings[c(parents, class)] finalPars <- inherited <- list() for(p in names(pars)) { finalPars[names(pars[[p]])] <- pars[[p]] inherited[names(pars[[p]])] <- p } finalPars <- finalPars[order(names(finalPars))] inherited <- inherited[order(names(inherited))] return(new("InferredDisplayPars", name=class, inheritance=unlist(inherited), finalPars)) } ## Compute ellipse outline coordinates for bounding boxes .box2Ellipse <- function(box, np=50) { t <- seq(0, 2*pi, len=np) box$width <- box$cx2-box$cx1 box$height <- box$cy2-box$cy1 x <- rep(box$cx2 + -box$width + box$width/2, each=np) y <- rep(box$cy1 + box$height/2, each=np) a <- rep(box$width/2, each=np) b <- rep(box$height/2, each=np) tau <- 0 xt <- x + (a*cos(t)*cos(tau)-b*sin(t)*sin(tau)) yt <- y + (a*cos(t)*sin(tau)+b*sin(t)*cos(tau)) return(data.frame(x1=xt, y1=yt, id=rep(seq_len(nrow(box)), each=np))) } ## We store some preset in the options on package load .onLoad = function(...){ .collectSchemes() options("ucscChromosomeNames"=TRUE, "Gviz.scheme"="default", "Gviz.ucscUrl"=NULL) } ## A helper function to replace missing function arguments in a list with NULL values. The function environment needs ## to be passed in as argument 'env' for this to work. .missingToNull <- function(symbol, env=parent.frame()){ for(i in symbol){ mis <- try(do.call(missing, args=list(i), envir=env), silent=TRUE) if(!is(mis, "try-error") && mis) assign(i, NULL, env) } } ## build a covariates data.frame from a variety of different inputs .getCovars <- function(x){ if(is.data.frame(x)){ x }else{ if(is(x, "GRanges")){ as.data.frame(mcols(x)) }else{ if(is(x, "GRangesList")){ as.data.frame(mcols(unlist(x))) }else{ data.frame() ## stop(sprintf("Don't know how to extract covariates from a %s object", class(x))) } } } } ## Prepare a data.frame or matrix containing the data for a DataTrack object. This involves trying to coerce ## and dropping non-numeric columns with a warning .prepareDtData <- function(data, len=0){ if(ncol(data) && nrow(data)){ for(i in seq_along(data)){ if(is.character(data[,i])) data[,i] <- type.convert(data[,i], as.is=TRUE) } isNum <- sapply(data, is.numeric) if(any(!isNum)) warning(sprintf("The following non-numeric data column%s been dropped: %s", ifelse(sum(!isNum)>1, "s have", " has"), paste(colnames(data)[!isNum], collapse=", "))) if(sum(dim(data))>0){ data <- t(data[,isNum, drop=FALSE]) } }else{ data <- matrix(ncol=len, nrow=0) } if(all(is.na(data))) data <- matrix(ncol=len, nrow=0) if(ncol(data) != len) stop("The columns in the 'data' matrix must match the genomic regions.") return(data) } ## An import function for gff3 files that tries to resolve the parent-child relationship ## between genes, transcripts and exons .import.gff3 <- function(file){ dat <- import.gff3(file) res <- try({ genes <- tolower(dat$type) == "gene" ginfo <- mcols(dat[genes, ]) dat <- dat[!genes] transcripts <- tolower(dat$type) == "mrna" tinfo <- mcols(dat[transcripts, ]) dat <- dat[!transcripts] mt <- match(as.character(dat$Parent), as.character(tinfo$ID)) if(!all(is.na(mt))){ if(!"transcript_id" %in% colnames(mcols(dat))) { tid <- rep(NA, length(mt)) tid[!is.na(mt)] <- tinfo[mt[!is.na(mt)], "ID"] mcols(dat)[["transcript_id"]] <- tid } if(!"transcript_name" %in% colnames(mcols(dat))) { tn <- rep(NA, length(mt)) tn[!is.na(mt)] <- tinfo[mt[!is.na(mt)], "Name"] mcols(dat)[["transcript_name"]] <- tn } mt2 <- rep(NA, dim(mcols(dat))[1]) mt2[!is.na(mt)] <- match(as.character(tinfo[mt[!is.na(mt)], "Parent"]), as.character(ginfo$ID)) if(!all(is.na(mt2))){ if(!"gene_id" %in% colnames(mcols(dat))) { gid <- rep(NA, length(mt2)) gid[!is.na(mt2)] <- ginfo[mt[!is.na(mt2)], "ID"] mcols(dat)[["gene_id"]] <- gid } if(!"gene_name" %in% colnames(mcols(dat))) { gn <- rep(NA, length(mt2)) gn[!is.na(mt2)] <- ginfo[mt[!is.na(mt2)], "Name"] mcols(dat)[["gene_name"]] <- gn } } } if(all(is.na(mcols(dat)[["ID"]]))) mcols(dat)[["ID"]] <- paste("item", seq_along(dat), sep="_") if(!"exon_id" %in% colnames(mcols(dat))) mcols(dat)[["exon_id"]] <- mcols(dat)[["ID"]] if(!is.null(mcols(dat)[["gene_name"]]) && all(is.na(mcols(dat)[["gene_name"]]))) mcols(dat)[["gene_name"]] <- NULL if(all(is.na(mcols(dat)[["transcript_name"]]))) mcols(dat)[["transcript_name"]] <- NULL dat }) if(is(res, "try-error")){ warning(sprintf(paste("File '%s' is not valid according to the GFF3 standard and can not be properly parsed.", "Results may not be what you expected!"), file)) res <- dat } return(res) } ## An import function for bigWig files that knowns how to deal with missing seqnames .import.bw <- function(file, selection){ bwf <- BigWigFile(path.expand(file)) if(missing(selection)){ rr <- import.bw(con=bwf) }else{ si <- seqinfo(bwf) rr <- if(!as.character(seqnames(selection)[1]) %in% seqnames(seqinfo(bwf))){ GRanges(seqnames(selection)[1], ranges=IRanges(1,2), score=1)[0] }else{ import.bw(con=bwf, selection=selection)} } return(rr) } ## An import function for bam files that distinguishes between DataTracks and AnnotationTracks ## FIXME: We probably want this to be able to deal with Gapped Alignments... .import.bam <- function(file, selection){ if(!file.exists(paste(file, "bai", sep=".")) && !file.exists(paste(paste(head(strsplit("xxx.bam", ".", fixed=TRUE)[[1]], -1), collapse="."), "bai", sep="."))) stop("Unable to find index for BAM file '", file, "'. You can build an index using the following command:\n\t", "library(Rsamtools)\n\tindexBam(\"", file, "\")") sinfo <- scanBamHeader(file)[[1]] if(parent.env(environment())[["._trackType"]] == "DataTrack"){ res <- if(!as.character(seqnames(selection)[1]) %in% names(sinfo$targets)){ mcols(selection) <- DataFrame(score=0) selection }else{ param <- ScanBamParam(what=c("pos", "qwidth"), which=selection, flag=scanBamFlag(isUnmappedQuery=FALSE)) x <- scanBam(file, param=param)[[1]] cov <- coverage(IRanges(x[["pos"]], width=x[["qwidth"]])) if(length(cov)==0){ mcols(selection) <- DataFrame(score=0) selection }else{ GRanges(seqnames=seqnames(selection), ranges=IRanges(start=start(cov), end=end(cov)), strand="*", score=runValue(cov)) } } } else { res <- if(!as.character(seqnames(selection)[1]) %in% names(sinfo$targets)){ mcols(selection) <- DataFrame(id="NA", group="NA") selection[0] }else{ param <- ScanBamParam(what=c("pos", "qwidth", "strand", "qname"), which=selection, flag=scanBamFlag(isUnmappedQuery=FALSE)) x <- scanBam(file, param=param)[[1]] GRanges(seqnames=seqnames(selection), ranges=IRanges(start=x[["pos"]], width=x[["qwidth"]]), strand=x[["strand"]], id=make.unique(x[["qname"]]), group=x[["qname"]]) } } return(res) } .import.bam.alignments <- function(file, selection){ indNames <- c(sub("\\.bam$", ".bai", file), paste(file, "bai", sep=".")) index <- NULL for(i in indNames){ if(file.exists(i)){ index <- i break } } if(is.null(index)) stop("Unable to find index for BAM file '", file, "'. You can build an index using the following command:\n\t", "library(Rsamtools)\n\tindexBam(\"", file, "\")") pairedEnd <- parent.env(environment())[["._isPaired"]] if(is.null(pairedEnd)) pairedEnd <- TRUE bf <- BamFile(file, index=index, asMates=pairedEnd) param <- ScanBamParam(which=selection, what=scanBamWhat(), tag="MD", flag=scanBamFlag(isUnmappedQuery=FALSE)) reads <- if(as.character(seqnames(selection)[1]) %in% names(scanBamHeader(bf)$targets)) scanBam(bf, param=param)[[1]] else list() md <- if(is.null(reads$tag$MD)) rep(as.character(NA), length(reads$pos)) else reads$tag$MD if(length(reads$pos)){ layed_seq <- sequenceLayer(reads$seq, reads$cigar) region <- unlist(bamWhich(param), use.names=FALSE) ans <- stackStrings(layed_seq, start(region), end(region), shift=reads$pos-1L, Lpadding.letter="+", Rpadding.letter="+") names(ans) <- seq_along(reads$qname) }else{ ans <- DNAStringSet() } return(GRanges(seqnames=if(is.null(reads$rname)) character() else reads$rname, strand=if(is.null(reads$strand)) character() else reads$strand, ranges=IRanges(start=reads$pos, width=reads$qwidth), id=reads$qname, cigar=reads$cigar, mapq=reads$mapq, flag=reads$flag, md=md, seq=ans, isize=reads$isize, groupid=if(pairedEnd) reads$groupid else seq_along(reads$pos), status=if(pairedEnd) reads$mate_status else rep(factor("unmated", levels=c("mated", "ambiguous", "unmated")), length(reads$pos)))) } ## An import function for fasta file that supports streaming if an index is present .import.fasta <- function(file, selection, strict=TRUE){ ffile <- FastaFile(file) if(!file.exists(paste(file, "fai", sep="."))){ if(strict){ stop("Unable to find index for fasta file '", file, "'. You can build an index using the following command:\n\t", "library(Rsamtools)\n\tindexFa(\"", file, "\")") }else{ return(readDNAStringSet(file)) } } idx <- scanFaIndex(file) if(!as.character(seqnames(selection)[1]) %in% as.character(seqnames(idx))){ return(DNAStringSet()) }else{ return(scanFa(file, selection)) } } ## An import function for the indexed 2bit format .import.2bit <- function(file, selection){ tbf <- TwoBitFile(file) if(!as.character(seqnames(selection)[1]) %in% seqnames(seqinfo(tbf))){ return(DNAStringSet()) }else{ tmp <- import(tbf, which=selection) names(tmp) <- as.character(seqnames(selection)[1]) return(tmp) } } ## A mapping of (lower-cased) file extensions to import function calls. Most of those are already implemented in the rtracklayer package. ## If no mapping is found an error will be raised suggesting to provide a user-defined import function. .registerImportFun <- function(file){ fileExt <- .fileExtension(file) file <- path.expand(file) return(switch(fileExt, "gff"=import.gff(file), "gff1"=import.gff1(file), "gff2"=import.gff2(file), "gff3"=.import.gff3(file), "gtf"=import.gff2(file), "bed"=import.bed(file), "bedgraph"=import.bedGraph(file), "wig"=import.wig(file), "bw"=.import.bw, "bigwig"=.import.bw, "bam"=.import.bam, stop(sprintf("No predefined import function exists for files with extension '%s'. Please manually provide an import function.", fileExt)))) } ## Get the file extension for a file, taking into account potential gzipping .fileExtension <- function(file){ if(!grepl("\\.", file)) stop("Unable to identify extension for file '", file, "'") ext <- sub(".*\\.", "", sub("\\.gz$|\\.gzip$", "", basename(file))) if(ext=="") stop("Unable to identify extension for file '", file, "'") return(tolower(ext)) } availableDefaultMapping <- function(file, trackType){ .checkClass(file, "character", 1) .checkClass(trackType, "character", 1) ext <- tolower(if(grepl("\\.", file)) .fileExtension(file) else file) vm <- .defaultVarMap(ext, trackType, justMap=TRUE) vm[[".stream"]] <- NULL return(vm) } ## Helper function to handle defaults function arguments .covDefault <- function(x, cov, def){ res <- if(missing(x)){ if(is.null(cov)){ def }else{ cov } }else{x} return(res) } ## A helper function to process alignment information from a GRanges object .computeAlignments <- function(range){ res <- list(range=range, stackRanges=GRanges(), stacks=numeric()) if(length(range)){ alg <- extractAlignmentRangesOnReference(range$cigar) rp <- elementNROWS(alg) range <- sort(GRanges(seqnames=rep(seqnames(range), rp), strand=rep("*", sum(rp)), ranges=shift(unlist(alg), rep(start(range), rp)-1), id=rep(range$id, rp), entityId=rep(seq_along(rp), rp), cigar=rep(range$cigar, rp), md=rep(range$md, rp), readStrand=rep(strand(range), rp), mapq=rep(range$mapq, rp), flag=rep(range$flag, rp), isize=rep(range$isize, rp), groupid=rep(range$groupid, rp), status=factor(rep(range$status, rp), levels=c("mated", "ambiguous", "unmated")), uid=seq_len(sum(rp)))) if(length(range)){ stTmp <- split(range, range$groupid) stackRanges <- unlist(range(stTmp)) ss <- disjointBins(stackRanges) range$stack <- ss[match(range$groupid, names(stackRanges))] res <- list(range=range, stackRanges=stackRanges, stacks=range$stack) } } return(res) } ## Check whether the current device supports alpha channel transparency .supportsAlpha <- function(){ d <- dev.cur() oldwarn <- getOption("warn") on.exit({options(warn=oldwarn) if(d==1) dev.off() }) options(warn=2) ok <- !is(try({grob <- grid.rect(width=0, height=0, gp=gpar(alpha=0.5)) ##grid.remove(grob$name) }, silent=TRUE), "try-error") return(ok) } ## Return the alpha display parameter from a GdObject, respecting whether transparency is supported on the device ## or not. This is either drawn from the internal '.__hasAlphaSupport' display parameter, or, if not set, is ## determined dynamically. .alpha <- function(GdObject, postfix=NULL){ support <- .dpOrDefault(GdObject, ".__hasAlphaSupport", .supportsAlpha()) wh <- if(is.null(postfix)) "alpha" else c(paste("alpha", postfix, sep="."), "alpha") alpha <- .dpOrDefault(GdObject, wh, 1) if(alpha != 1 && !support) alpha <- 1 return(alpha) } ## Draw horizontal arrows into a viewport indicating cropped read alignments .moreInd <- function(n=3, direction="up", ...){ nn <- n * 2 + 1 x <- rep(seq(1/nn, 1 - (1/nn), len=nn-2)[seq(1, nn-2, by=2)], each=n) + c(-1/nn/2, 0, 1/nn/2) y <- rep(if(direction == "up") c(0, 1, 0) else c(1, 0, 1), n) grid.polyline(x, y, id=rep(1:n, each=3), gp=gpar(...)) } ## Compute mismatches for AlignmentsTracks based on the read sequences and a reference sequence .findMismatches <- function(GdObject){ rgo <- .dpOrDefault(GdObject, ".__plottingRange") mmPos <- mmSamp <- mmSeq <- mmStack <- NULL if(!is.null(rgo)){ ref <- as.character(as(subseq(GdObject@referenceSequence, start=rgo["from"], end=rgo["to"]), "Rle")) cm <- consensusMatrix(GdObject@sequences, as.prob=FALSE, baseOnly=TRUE)[-5,] cmm <- colMaxs(cm) css <- colSums(cm) cmp <- rbind(t(t(cm)/css), 0) rownames(cmp)[5] <- "N" sel <- is.na(cmp["A",]) cmp[,sel] <- 0 cmp["N", sel] <- 1 consStr <- strsplit(consensusString(cmp), "")[[1]] varRegs <- which(cmm != css | (consStr != "N" & consStr != ref)) if(length(varRegs)){ rvg <- ref[varRegs] sel <- rvg != "-" & rvg != "N" if(any(sel)){ varRegs <- varRegs[sel] rvg <- rvg[sel] mmTab <- t(sapply(varRegs, function(x) as.character(subseq(GdObject@sequences, x, width=1)))) isMm <- t(rvg != "-" & mmTab != "+" & mmTab != "-" & mmTab != rvg) mmRelPos <- col(isMm)[which(isMm)] mmPos <- varRegs[mmRelPos] + rgo["from"] - 1 mmSampInd <- row(isMm)[which(isMm)] mmSamp <- rownames(isMm)[mmSampInd] mmSeq <- mmTab[ncol(isMm) * (mmSampInd - 1) + mmRelPos] mmStack <- stacks(GdObject)[match(mmSamp, ranges(GdObject)$entityId)] } } } return(data.frame(position=mmPos, stack=mmStack, read=mmSamp, base=as.character(mmSeq), stringsAsFactors=TRUE)) } ## Return the default mappings between the metadata columns of an imported GRanges object and those ## of the track's GRanges object. .defaultVarMap <- function(inputType, trackType, stream, fromUser=FALSE, justMap=FALSE){ vm <- list(gtf=list(GeneRegionTrack=list(feature="type", gene=c("gene_id", "gene_name"), exon=c("exon_name", "exon_id"), transcript=c("transcript_name", "transcript_id"), symbol=c("gene_name", "gene_id"))), gff=list(AnnotationTrack=list(feature="type", group="group"), GeneRegionTrack=list(feature="type", transcript="group")), gff1=list(AnnotationTrack=list(feature="type", group=group), GeneRegionTrack=list(feature="type", transcript="group")), gff2=list(AnnotationTrack=list(feature="type", group=c("group", "Parent"), id=c("ID", "Name", "Alias")), GeneRegionTrack=list(feature="type", gene=c("gene_id", "gene_name"), exon=c("exon_name", "exon_id"), symbol=c("gene_name", "gene_id"))), gff3=list(AnnotationTrack=list(feature="type", id=c("ID", "Name", "Alias"), group="Parent"), GeneRegionTrack=list(feature="type", gene=c("gene_id", "gene_name"), exon=c("exon_name", "exon_id", "ID"), transcript=c("transcript_name", "transcript_id", "Parent"), symbol=c("gene_name", "gene_id", "Name", "Alias"))), bedgraph=list(DataTrack=list(score="score")), wig=list(DataTrack=list(score="score")), bed=list(AnnotationTrack=list(feature="itemRgb", id="name")), bigwig=list(DataTrack=list(score="score", .stream=TRUE)), bw=list(DataTrack=list(score="score", .stream=TRUE)), bam=list(DataTrack=list(score="score", .stream=TRUE), AnnotationTrack=list(id="id", group="group", .stream=TRUE), AlignmentsTrack=list(id="id", cigar="cigar", mapq="mapq", flag="flag", isize="isize", groupid="groupid", status="status", md="md", seq="seq", .stream=TRUE))) if(justMap) return(vm[[inputType]][[trackType]]) if(fromUser){ vm[[inputType]] <- setNames(list(list(".stream"=stream)), trackType) }else{ if(is.null(vm[[inputType]]) || is.null(vm[[inputType]][[trackType]])){ warning(sprintf(paste("There are no default mappings from %s files to %s. Please provide a manual mapping", "in the track constructor if you haven't already done so."), inputType, trackType)) vm[[inputType]] <- setNames(list(list(".stream"=stream)), trackType) } } return(vm[[inputType]][[trackType]]) } ## Helper function to go through the metadata columns of a DataFrame and match their colnames to a mapping if they ## are available .resolveColMapping <- function(data, args, defMap){ colnames(mcols(data)) <- paste(colnames(mcols(data)), "orig", sep="__.__") for(i in names(defMap)){ if(is.character(args[[i]]) && length(args[[i]])==1 && paste(args[[i]], "orig", sep="__.__") %in% colnames(mcols(data))){ defMap[[i]] <- args[[i]] args[[i]] <- NULL } mt <- match(paste(defMap[[i]], "orig", sep="__.__"), colnames(mcols(data))) mt <- mt[!is.na(mt)][1] if(!is.na(mt)) mcols(data)[[i]] <- mcols(data)[,mt] } mcols(data) <- mcols(data)[, !grepl("__.__", colnames(mcols(data))), drop=FALSE] return(list(data=data, args=args, defMap=defMap)) } ## For an AnnotationTrack or a GeneRegionTrack, compute the actual ranges for a complete range element group ## (i.e., a whole transcript or track group) and also add the necessary space for the text label if needed. ## We add this information to the internal display parameters '.__groupRanges', '.__groupLabels' and ## '.__groupLabelWidths'. This function has to be called before stacks are being computed because 'setStacks' ## will use the values in '.__groupRanges'. ## Note that the computed ranges are not quite right because we are only crudely guessing the size of the ## title panels at this stage. .computeGroupRange <- function(GdObject, hasAxis=FALSE, hasTitle=.dpOrDefault(GdObject, "showTitle", TRUE), title.width=1){ if(is(GdObject, "AnnotationTrack")){ finalRanges <- IRanges() GdObjectOrig <- GdObject GdObject <- GdObject[seqnames(GdObject) == chromosome(GdObject)] pr <- .dpOrDefault(GdObject, ".__plottingRange", data.frame(from=min(start(GdObject)), to=max(end(GdObject)))) if(is.null(title.width)) title.width <- 1 if(length(GdObject) > 0){ gp <- group(GdObject) needsGrp <- any(duplicated(gp)) finalRanges <- if(needsGrp){ groups <- split(range(GdObject), gp) unlist(range(groups)) }else{ range(GdObject) } if(.dpOrDefault(GdObject, ".__hasAnno", FALSE)){ ## The label justification just <- .dpOrDefault(GdObject, "just.group", "left") rev <- .dpOrDefault(GdObject, "reverseStrand", FALSE) ## A crude guestimate of the space needed for a title twidth <- if(hasTitle){ fact <- title.width + (hasAxis * 2) .getStringDims(GdObject, "g_T", unit="npc", subtype="title")$height * fact }else 0 tfact <- ifelse(twidth > 1, 1, 1 / (1 - twidth)) ## The labels and spacers are plotted in a temporary viewport to figure out their size labels <- if(needsGrp) sapply(split(identifier(GdObject), gp), function(x) paste(sort(unique(x)), collapse="/")) else setNames(identifier(GdObject), gp) xscale <- c(max(pr["from"], min(start(finalRanges))), min(pr["to"], max(end(finalRanges)))) if(diff(xscale) == 0) xscale[2] <- xscale[2] + 1 pushViewport(dataViewport(xscale=xscale, extension=0, yscale=c(0,1), gp=.fontGp(GdObject, "group"))) labelWidths <- setNames(as.numeric(convertWidth(stringWidth(labels),"native")) * tfact * 1.3, names(labels)) spaceBefore <- as.numeric(convertWidth(unit(3, "points"),"native")) * tfact spaceAfter <- as.numeric(convertWidth(unit(7, "points"),"native")) * tfact popViewport(1) switch(as.character(just), "left"={ if(!rev){ start(finalRanges) <- start(finalRanges) - (spaceBefore + labelWidths + spaceAfter) }else{ end(finalRanges) <- end(finalRanges) + spaceAfter + labelWidths + spaceBefore } sb <- spaceBefore sa <- spaceAfter }, "right"={ if(!rev){ end(finalRanges) <- end(finalRanges) + spaceAfter + labelWidths + spaceBefore }else{ start(finalRanges) <- start(finalRanges) - (spaceBefore + labelWidths + spaceAfter) } sb <- spaceBefore sa <- spaceAfter }, "above"={ featureWidths <- end(finalRanges) - start(finalRanges) additionalLabelSpace <- ceiling((labelWidths - featureWidths) / 2) additionalLabelSpace[additionalLabelSpace < 0] <- 0 end(finalRanges) <- end(finalRanges) + additionalLabelSpace start(finalRanges) <- start(finalRanges) - additionalLabelSpace sa <- sb <- 0 }, "below"={ featureWidths <- end(finalRanges) - start(finalRanges) additionalLabelSpace <- ceiling((labelWidths - featureWidths) / 2) additionalLabelSpace[additionalLabelSpace < 0] <- 0 end(finalRanges) <- end(finalRanges) + additionalLabelSpace start(finalRanges) <- start(finalRanges) - additionalLabelSpace sa <- sb <- 0 }, stop(sprintf("Unknown label justification '%s'", just))) displayPars(GdObjectOrig) <- list(".__groupLabelWidths"=data.frame(before=sb, label=labelWidths, after=sa), ".__groupLabels"=labels) } } displayPars(GdObjectOrig) <- list(".__groupRanges"=finalRanges) } return(GdObjectOrig) } ## Calculate the vectorized string dimensions and return the results in a data.frame with columns 'width' and 'height' ## The unit of the return value can be controlled, and additional parameters like font size and expansion factors can ## be passed in as additional arguments (all in ... is passed on to 'gpar'). If needed, the font defaults for a ## subtype can be extracted by providing the subtype argument. .getStringDims <- function(GdObject, string, unit="native", subtype=NULL, ...){ gp <- .fontGp(GdObject, subtype, ...) pushViewport(viewport(gp=gp, xscale=current.viewport()$xscale, yscale=current.viewport()$yscale)) res <- data.frame(width=as.numeric(convertWidth(stringWidth(string), unit)), height=as.numeric(convertHeight(stringHeight(string), unit))) popViewport(1) return(res) } ## Check whether transcripts are to be collapsed for a GeneRegionTrack .transcriptsAreCollapsed <- function(GdObject){ res <- FALSE if(is(GdObject, "GeneRegionTrack")){ ctrans <- .dpOrDefault(GdObject, "collapseTranscripts", FALSE) res <- (is.logical(ctrans) && ctrans == TRUE) || ctrans %in% c("gene", "shortest", "longest", "meta") } return(res) } ## Create list for drawing sashimi-like plots ## using summarizeJunctions on GAlignments ## plotting is done via grid.xspline (requires x, y, id, score) .create.summarizedJunctions.for.sashimi.junctions <- function(range) { range <- sort(range) range <- range[!duplicated(range$entityId)] ga <- GAlignments(seqnames=seqnames(range), pos=start(range), cigar=range$cigar, strand=if(is.null(range$readStrand)) strand(range) else range$readStrand, seqlengths=seqlengths(range)) juns <- summarizeJunctions(ga) juns } .convert.summarizedJunctions.to.sashimi.junctions <- function(juns, score=1L, lwd.max=10, strand="*", filter=NULL, filterTolerance=0L) { ## filter junctions if (!is.null(filter)) { ## if filterTolerance is > 0 than pass it as maxgap parameter in findOverlaps ## make sure it is positive value if (filterTolerance < 0) { filterTolerance <- abs(filterTolerance) warning(sprintf("\"sashimiFilterTolerance\" can't be negative, taking absolute value of it: %d", filterTolerance)) } ovs <- findOverlaps(juns, filter, type="start", maxgap=filterTolerance) ove <- findOverlaps(juns, filter, type="end", maxgap=filterTolerance) ## combine both Hits objects, select junctions present in both ovv <- rbind(as.matrix(ovs), as.matrix(ove)) ovv <- ovv[duplicated(ovv),,drop=FALSE] ## create row/col index for selecting the correct strand ws <- strand(filter[ovv[,"subjectHits"]]) levels(ws) <- c("plus_score", "minus_score", "score") ws <- cbind(row=ovv[,"queryHits"], col=as.character(ws)) ## rol/col subseting will only works on matrix M <- as.matrix(values(juns)) rownames(M) <- 1:nrow(M) ## filter$score <- 0L filter$score[sort(unique(ovv[,"subjectHits"]))] <- tapply(M[ws], ovv[,"subjectHits"], sum) juns <- filter } else { ## if no filter ranges were defined ## select strand (default both) juns$score <- if (strand=="+") juns$plus_score else if (strand=="-") juns$minus_score else juns$score } ## filter based on evidence (default no filtering, 1 read) juns <- juns[juns$score >= score] if (length(juns)) { ## count how many overlaps to determine the y ov <- findOverlaps(juns, reduce(juns, min.gapwidth=0L)) ov <- split(queryHits(ov), subjectHits(ov)) juns$y <- as.integer(unlist(sapply(ov, order))) ## scale the score to lwd.max juns$scaled <- (lwd.max-1)/pmax((max(juns$score)-min(c(1, juns$score))), 1)*(juns$score-max(juns$score))+lwd.max ## create list juns <- list(x=as.numeric(rbind(start(juns), mid(ranges(juns)), end(juns))), y=as.numeric(rbind(0, juns$y, 0)), id=rep(seq_len(length(juns)), each=3), score=juns$score, scaled=juns$scaled) } else { juns <- list(x=numeric(), y=numeric(), id=integer(), score=numeric(), scaled=numeric()) } return(juns) } Gviz/Rplots.pdf0000644000175400017540000000703313175732246014512 0ustar00biocbuildbiocbuild%PDF-1.4 %ρ\r 1 0 obj << /CreationDate (D:20171030192407) /ModDate (D:20171030192407) /Title (R Graphics Output) /Producer (R 3.4.2) /Creator (R) >> endobj 2 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ ] /Count 0 /MediaBox [0 0 504 504] >> endobj 4 0 obj << /ProcSet [/PDF /Text] /Font <<>> /ExtGState << >> /ColorSpace << /sRGB 5 0 R >> >> endobj 5 0 obj [/ICCBased 6 0 R] endobj 6 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 7 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] >> endobj xref 0 8 0000000000 65535 f 0000000021 00000 n 0000000163 00000 n 0000000212 00000 n 0000000289 00000 n 0000000390 00000 n 0000000423 00000 n 0000003118 00000 n trailer << /Size 8 /Info 1 0 R /Root 2 0 R >> startxref 3375 %%EOF Gviz/TODO0000644000175400017540000000055413175714140013216 0ustar00biocbuildbiocbuildA to-do list for the Gviz package General structure: o introduce file-reference classes that draw genomic coordinates and associated data from bigBed, bigWig, BAM or tabix files AnnotationTrack/GeneRegionTrack o get the data from TxDb objects o speed up .prepareGene (may need a C code module) o deal with additional annotation features (UTRs, etc.) Gviz/build/0000755000175400017540000000000013175732505013626 5ustar00biocbuildbiocbuildGviz/build/vignette.rds0000644000175400017540000000034113175732505016163 0ustar00biocbuildbiocbuildmPK 0*B좛"]t4J@?UO^;iMiɛߛ!L #lkl@r#OK<DX,ڼp/td vTh~hL b3Yfx1ަS79"*r>9NVHu?7K:]3EjQOnqӯUDpsғ^~˪Gviz/data/0000755000175400017540000000000013175714140013433 5ustar00biocbuildbiocbuildGviz/data/alTrackGenes.rda0000644000175400017540000000613413175714140016472 0ustar00biocbuildbiocbuild\[$U鞫sYv5. ºAnфbe3;(CMwMwUU57"+B4I HF QD$d|!Ƅ0Tթsfg5RT-L/ ?q\7{ 7irz>E}˦]zN.ZpŴ| \c6mT<(Ƶ _u ]Ƽc\nؑlDPli&";An:WݵVF -Jkm;NB Xf/[)C5V7\T"PEe9;\3uǪԨ‘T!O]աߦM[1Ru\{ -JQgZgNEW@ׁ{]gݦE}q,sͨneTIk(PFB[IwPiCuo]5oZr|Ռ}B}AQ.|%Χ4WD V촤NE8.;r-kʅQWg7ѫŮ.HKѽxzq!bL*Y&ko@<,\i,%UFV R64.XGeG~0`$ޣ,c%D)z !rDab0uh#hw+=.ѡ`5%԰.麱7w$SbrG``sA*xz\L?2>} O3 N]EӆQ:)G"ږit$pѠ޵& LLė(o_r~gZZss}Ԃ3dZMӫ.%r<+:r0S3z2rQ7Sըk,Vg ı -z6)dg zHsvd2oiXZ[-4j {FGqC}٬՘7Ȃj|<,F/Rjl8m;a/2QO4M{fznW4V|  ;0;qPr\euYm˚o)Q2>;nJHB2$jdG y뫞ϊD5 ƅf|yeiuc)vRcwy;4vt/"ݻf-de{p*{0`-tQ6\^E^mq3gvo mQ{(Q2ia`ݡf\F#= vmb [^ȋvp "=Q8>'bs[/>7l%N֥Ɲ9Ǖ"-s+=>Wz9W{\+^JWzm~@À/`!.C!&F CL=CTy8C<|>7[!'ķ&3n'?&Cnm }%obp .${3Swr?HpJƗ&y#K?<OĠp x=ox` Тx u{Я:i.b]A 6DO o#Px<2_0bxU1Ф{">m|7b1E0QGJTOxyp \#ƫD~A`8ƣ^'t&n'p.&'gNe,Cx%_l1o,bmqBƾ~) ۋ6nM[3A}؎sgO?6]_.vjc|1q#JG^̆u/aa3'N͕P;>hW4Zˊ*Tݡ/kV:taCwkfO3AZKZM$IJyAcQA-ʕ,݂$n" vggH"4˻,"eV&8N욨)V8V4I0oOZTU)g / eRVvK(~&NrhQxr]y얖dQ!ΣeM4VI-IV$ \.R4wYa4NZx"fI& cɗe6MYZD-# 2;i̊,/-JU2!%c΋$*95v)t3&I,k jE.gӬ@r̬т1&2M "̵LL%ٺƘ$e^/^T=qcPf>mѢk0eIt[ZƮѰ3hb.- ϚO-ޕ3hEy^T^±'rXMU4Cc%L/ Oh -jhH_)(aӬٙuDطGt'GIoIGGPI{SdI2KTA_J%WWɏNw/ W4xb's23SӕN{<\swt)fN0N&ތS)c85涗ovOCTzJPMTz3c9~uv_T'-8'G0r?F9Joˑ;FA__xc9i8ry7"ť[0ѻ]$)ئljhQDe+/}Yvn{/_{i#^~M^z+*~ǯ_LD/6:=U9^e %w%b鑡L>}zg2Q%B.R_j~Ўlڋ5 &3~&Hz1KS&1(弪o Hi9б"F#=-kl5B gedXmҲdө\2=~̵cw*N'ʹzXfuc[ʒHIM"͔ceNd KF{v IVJ"z@rgb$Mh"sz)jb%1`x=틓Ct;1;{fH!SKo_kφY;{Q<*% ʚ[cp.5^ʜslҖR+Xi|E2 /5F7; HcӜ0$ (ll wX%X~#/]Lj2Td*n6+!QvJC;t>sFj'J3˹rqNƗ s.?g}FϬbBj3ٚ!Hņ)z/u|rpva Ѳ=-oۇɑlh;28֡T{9Q~O:g8-$SفTfз\ssdU6(uMl/F63D4ь|&[NuCRd[vwnߞN}C>?x!ܘk/A@aYݘ|_(U}ɽLw&-$ lW\XG 2|!/pWYb0+Yݻ:+\mɽpI޲_LJu{W3;$Bi0uCAvg?J;$|H/]o&mW¾=~JkR|Bg؀i-{Z,iltP(|hͅK6 ڵAah|>)KiNw%#T!]; 9-Ffs8I>6ybo*4#HB(3 }q0e&OX'R2ӄ泾n|(J7h`1E n,[2Pl̞]jp1\!鴋uƷݥQzUꬮ\X=y ΊzRtbB4.Mkv.J^T8 繒}ɺ~vnLfJNEw՛/⓴Q,\򗌤حbjae5k~ݚO^: ONLsW妜yU:o!C% vQa^vW3I&I3lLBd3Tzzq Ym}9Id^~*[zuSnCV]E; O&փ,v:FWy7̻:r'˸|;#G/yŊ8fWȱ+o%>{xx 9 `ೀƁ?UN}Sؗ/p#9N%ǵ~}rܻ丫[ʕ5'3#9~՚*yl ~G 쏆w ύ/EC(~A?xPk;.\w/bAc8>dA\C%ď|c)$ On1'hsd!k"KɢoF}}]d?^Frȩ"(p=іm&ڎyD?w~}1 b!bł?.,}[:1 b^p1BKDb$,!/k7k2{q7umuÿq eJ?VƳ[ş_)nyE]]Ē/^NaϓS^&]w>@7SiJvu{ 닦;~+/z?e>ItWu_y|ŋGq_hŜ._rta2]3"Cb']}2.j^*b;/,Zvh.~,ڸ:ahHG::7=.V_G:>I:YH:-lHǕA:!YakƏ:7m.!}]??F:_Gf`?z27"s?ȿ Qs"373Hxl/$avv8h[LhH'K/D{y)PSƲ[X>ug~ѷV7b̿9*1O][aN^WDǟ%{$9?'?pJzvdcɚSV5u9'I.> }ў08>y'gHOׇ@z_|^W#M-+co\N&A1M-(M^ ܵgz8pCUy ť(D_ESh t 0}>Ij>v +`*ril{؋k=c 1FYF@z `^WH lKPIX4ķyd,}҂!>uEqڎtKrǼW ɵGvJ}۽OnsH䎽hv2^: xŬ!|p[ n7~!qG6H& ߂%6l; BEA<D'b=\!V?A%\g4&Sz7A[؅^;S]s#RJ-6%i;t\@5<lpvN(h tl<.{pU6z=y7mr@ Zy8߃?wlW:N2s[WyOz~] 8uy).h޸9""o7[Oe Az>j˺-(~Z~<[#yzw۽ޜcSBOx7;r8;VZmr.[;TN_O^k;m(.gll웟e5ӡ,111Yn:3ٳy}I>)XFC35̻53Z?'sJכ&v2uNXeiwM;1;=XWtM}z4]Nckt?}lepc6f?2ƞWWkތ-p}7Cllllll̺l٘=Z ;65{Uln.3t\5 #Qgw'spYA ~PAX'ecQLENnj-?4;>!/,誽昍7;}/K[#t[6Ԙ阎阎阎阎阎阎阎阎阎阎阎阎騴TOfVMiӚӃV )٦\5mZaL.چUjʎfٰ^UӪ,[o٦1u-Gf@M1Td4uPt~ҍ阎阎阎48.-u[sO]?Zq YXԵ0R*5-|11111111ӇoI޴n FDC6Ъi8],lKӑ;g1ӔV5A=ւ5YF.tLǴ?.mґqYG1ӓF`ߧj᭩uiO)0R]~wЦiH˃&311Ӈ2ͿqUӲ"+hfimhoزU eÖy!e8Bk0jѶ倛-R@[ZH ##!оGkc"uYj:/Sm뼂8*U#;6Ockh&XjPu;4eTyMK6Њ5E%"zTSC"2b 4SWձT>K[v/p}[ 7UE5^ mOlHi j>;7\kC:Cӆ5kt-4 ?#Rqd!\ׄIWqiZ0ҐR'hb* ũ mtVLf0d۔cc#sJ >Zwtw-RǪ멉92"IPkb80!.NdM蚪Y'=,3Ԡi`Th"2He#5'=@+hj6u=V6b}`-lpBT44ެjYE6TEW-d3CZM+<Њ" AjTA( hͰ!S:`NBj} p*F%~*k!DRUcO:H3d\jak!oR"0M/k DmCGRE6 l6B,YuD]s`* >$#`8yi;lF6c /lbXtkB,#[ڄNQh#C UE~P@-CG63"цiUQUQ+^Vu9pTG-I\(K kHPlY lDVWzхO0@+gꚂKYa`rtmR q wAU" RU6mޕsT[Ev2!,SR6HώTp llА4e;(27{aTk*i n"n ;I5 S懫Œ{4dG ]uPP0IL`!1bTt?Ţ[6Hgдh]y&udHǶQBkZ5؅ ?)m hDQ0mXPݼEvpt[4Z|6Ĝx5l}h.,AAdѰ$4dcȆ1N6~G1N+/6rjb^X$͒lhV%ves8hA)U(]Xz`c-NUtYȜV\bkG㗝$2s&,+).l"=Te@wud6V'2A -j!8+t B 5q`ī(iKp"Ԗ-G۲cJxg|%Rej `}̗5M9,YEf" SZi+*i#,aHGvTUGNRMֱm h:pxCFo4Ti`RӨ *8m V=hs&a"e#4߈c&ثi y$ dHD0[ba@vDb}noi HTRӎ: R+.5h*voFD&nfp^"f*iEm Vq/ 4mԞ4AD[@;?(CCO sh{,ګD'"P[!M#6rgA@SOĴv6⨨W hXM"҆v3 53*4iXaHQ1L?| #ae֠ƛ|QDi6 U:ᴡDDh34 @ل ^Ne,$-zT* .0["*iGI--FjZJ@ 1ht16;-.5w"1qFhV |`jy1N+nc\ַFo];eqjt{;AS+=BGȏRjC"HAn XnYe`'dZWZ7"65?,kb@uF~+C,4L/&C} dd0DgZPi'4=v+ mZݑ= m97aL7bE 4+r4c h\}+m` wiu_' u)=(hA }a9^7b`{Է͠+׆][ ;$c 1Ο:omƖ-'-h !'4J{wڌAgu\e ^xQ)]'rRhx */|*hCu \xQTʸu&u:$Չx)w4G$Z}GHW$DWzO։5Κ8e9}j#iR,Eř|Mt[Sf֡ ]I)P&L$[4q!,1D@[M%WO+j&SGv~Kkm| jg<;_ן5'rZO66hBݽ(Yꦆ46hlC]H B {6^jҪ !|j,4B[5S:U@odyx7*;#:ury̘4'C&-Kv0k D4!ֿqZ%wDMlD^:V,j&(KC1CU6u4w8a/b3d:(hg)MzN$M8x}G$lO+ttH#q$đ8GH#q$đ7SdfJ4`*clL0k%u İ[6+JnTmcʕJGwb :uOBLkV؇ZwӖ+GƊZZV6!!TLs+8GHOmsɦlX׻RVSͥKKP uKJbl})زqE)hr۽tE%ű8Xcq,űC>uۺ@l-=4RLٻQXqhJeZqF1-8g Tc&f&i.0NDk䈕[;TG[XS͕O"kv=>m6&t)&l/ep3V6ı8ǦMLe,Tcء{KV&lgB)a)_=V*WryIgyD(z.+ +PΟ?HzW[Q_VWτYȤ_"9l>|12!H^'11!H^y'1!H^J)LzVQ滘IϦcC?i t tg’+9l džט*}3ƄL`:Ig0?>%&&Ϥ0岘a|c-aұv7Uƅp~@Nt<֟ .O+C#<,1Eh~[([$&\΄Lx IL GǷJ//VO<&W>܄v&by}gJՅ7&?agҳNb҉SAяD\Շx\?#w9"zͯQj_i}Xuh[t tLak4"x.}^ {d~y`xNA%˳J(<ʏgN-8HTlQT6I_IWyh*9W ~ɧb}WW+9 ݋s㇂&^R`|W[6 ʐB ZE]pl>5lc)_?J7ȳyewōS>$g<]w4+G8 "rJs~p4yCTcq'lQ!1O9)0\xԋ($5A9hv@9}g2Q%h`2Sܛ D&ߟK +}C;i?-< D> p<ϓ{u =JgB!D!:J frsl.f+PJВO^Jё]9LZ:,좂g'%5KfSt"G$H6j8Kvנi5E Eώp+Vi˚-`2/=(:'B+u&Xv(G U˅\= \ZSCpSpuE*;@`*ٚK_,(@ӚݩKzKo Gviz/data/bmTrack.rda0000644000175400017540000004417013175714140015514 0ustar00biocbuildbiocbuild7zXZi"6!XLH9])TW"nRʟXgqjn]LW$ s[rQQp".;zsgK-~R`3Q`\mҲ{>lEC[!aW( vb#cl)Αvb}%wK u*zo.VcQ :rd2'lr'ȮȫFc~*H"7i3Q@eEs}/h{^->pNrWyl~f3H}ؤqa %ԕ,ZrLd& jre"RODն-!e,D:"a:sA,eR|ԯ,C4/!l Sm#7dOX 0EIrM_P=fgHw@mnrj4E[7%PrVkFx{;d%}j3`U]A P;OX18^Z|,m`Sپ_wUx< 6=6m$A3Kg͝La\*)2UO/vԘ>H}-S6ًY8 f7shWIF- iq cRQ37[.0N# QO47$gk Ҟo&_Nb%%%.2Dl3i骪,:$*&`7T=]$FMNZ'埙1Y9х+/A5cw#޸suCF×kMUϛ]&>z ۄInlp,*>k6h&|}K6NHƦC6=Ǒ-խ$Fno8nXYud. L ookAaD{?y 7BwRXɮr-˄.X?XA^v0%1}mikQ{v^.nEW.ZC3{jF8H P~aHk{+jcMHM("hy/[x$'_;I6 P$Th姧d>n/ô b Gk857Zzؤ.X #:wz/w/&DNqS)$ukۯG{{|]; _%Q}xicYT}oq)UijAl<{Q O)$9ADkĶ)ːcIVЯxĪ w `>SD6 @rB/^J@{Xfy@R ym"DuV,Sp{+*} z>M;u A? ^IU(HhB'W8Yʕ3B^!`0/:53[2F U &u_.4s=ͭN3> '9I3cGq-2 jA{oma;t9 Yb ˚B7NvB`T;pkO}O9E߶(Ԯ JG{!ZwKg(K(~(,=.4Wxܽ:/ T& Yyt|Ov#ekDBEY }%Szk6'S0(,!b#2B7 -R2!Fv|tlMk$S6j~6TnSx!~*fhepvgeSq- KF\ *IYYWsQyFL?/O$vQ nUU_wF!fVL 39 UzJK5B%4]$ f5# 42)R瀞X o١7s"OXPa2VzRJXQBdZα&K~݁SE=ؔHU@՘S?Hpd=ǎC=\X5u?:-b:|iaQXԹH֦*@r}/=/ܴZ0uύj>ZbS :E++{ٱ;kf˳1~ܠ-"L~Whj|WWW7hNj3_d!{ͱnG#Dd TS8?Fo񒨣nPt?2:+U yD S `WdT6{7E0Ģ;54$H(0"O,mMKĬzVUg$:Lf?8EqJ Ž[j 2).UY314?KGG̊Lے͓> ?&62f~wiI$ϗ\Ӏ %oIa9E~sDA%9N bS`lQV$]n#A> :6{#ם\>X+7Ihw{O'X1E.f.an#i \wio>iGhԼ7L0y'$[t"Boqi L-߰oL)V@G&z86D 3,͆ [ЉSP~Ycv=cHRI D $FqaS>lΟ;3ʳ m {`^r;loFb;'rգ& j|cS״+\iH{bOkm YZD)$[WYTv<.1eՊg`ZC# v*ss|`Upհv Bg@C(~ނ Ip6#`@Iյ:M%lwT0 1SB|n82-yh0C_E>$t*_,q PU૳iVQd QQMSەқVvm%lK}R,!Xd?Uj%كPL˾;hӡ43>M[mSWo^ʌBCTwꭂx~+2YW?.Rs N9 u#L/WL^ ˤPW1Le _5H??2rsĜ()-ih$A6E06!/' +JEհn6"Il0&9?Uu:[jˎU©~TGPΓsEYS g$v9;H}Q7Y(}M ^K}xviL)얞ir5m}!ٚzbaDXUfQQ>pva =gl;:ۀWst;!v7Sv CtSjη WI-K(e;@ Iڡ8Yl,T./..Ni5% Dύ{% #03/jmo5 f< ]b.dž+~:m>HKj}jdi ٺzAl a=:?YQ>1T0'xݜFdbٛh9gHbO)l,a +-04Cz! I ]x0-$j`$ʡ'N T)g~]mk-K;2իΚM9ܝCdD'Klҏ{I|$F_M#X3! t5wTJ2n!zY^1z0별Xֿck Yأ.iIpP'EdI f-e&8s)+{FK`WZA\x'g83wӑ#g~`bibO RQCxg#U=+F=B$Pbf(뵢RŴӂ܃b.]:dORcF%ix$#4Wze!|ROCvfLM`;qV^ϞաU_Z;$rzMȫOy6bG1woLK(_` 5l-cq >^/WB:U-;J^l0vgsN2e 1$4C?vM&E<>3# `yvTAz2bIn5\{G.cB5Z51B!e\i%2h81-l^.mlu<*hQr ɮ7̈·'?`4#VxD E4Cw%#YUAԗQԵbZ,hrx\G)͜mԛ9pS9 KC٤}]#<8ɟyJLSi}Aj{r9 x|]/0< yJwqOz;  F'xI&|iO[D ` HuVT˧빼UUcM"I9&ed!-N_xE߭Yk˝/pЦyB%u61#LfaF~C 3q|I:MSxE  P(zzeL}VepNIAZ Qh Bղ@KIGML[WxZx=&[(oGQN+"S.qG(CIn:@ˈ1Z2I`y)]|><|`I2+82ĝ>x 땑9fB]\8Ӛcg}lټlp>8O0vJP/+jkTrBs^$bD^Ql-KPT"59YfZݠ?FU-5cn?5)_7lUA`-qUꏝ/"Ȇ{q d)x- zaQ$  gY[M yqn 1/FOj_ w3hkRDi+5ڿW Igz0/v~5NFfS柔#Cv ="QnQ~1AL>(j?ݤe?ZfEdz۴~ l#2!qݻHH 0կ$$iAPפ%洣;szo߰wk aBh Lp6V#_n{)v*{}R(@D@O" Ssp+u!3!MRzX#s& fsR[霑kvsY ށ x?q#~Q.Y.QL.Q3u%*V;i;3@#.m*m'+xur&d‰ 0k|7ZBP7-=a*Ir4X=d}+& 7Nm66% K-lMn =f/j4RFz-HDXWRK|tg~>nvbOG ؁߫`83у#| hA6 0Jҝ~ N/ a^ Q{6i䬑0K<6 M 5ׅ4rYy:=C%_鄫W#T=t; ќÿ~08lKaF%rC~`:DdŮwXC{vXs;{fMWⳲc5o&&h5׽=z6_估9E#ulI=bSsU{2*Vq8_6*L8Lg%] T& ]FVV yC(մuG3=>8}^&kSw $)ogj[(t/`Ҩ~bVImo%- n{$psrUO|tjJ Ȅ\FU7g/lgB'ٯcԂ.Lq_'/Q<*Rn_C{5d> }sUVr$DYY&0( ahR'uBzC)fM%'erUKO77f:d\wY d3Fi)9: @Wd^ym]PbIh1ծ3MTXdrZB']⭣ crYQw-p USt8R7 3=;Jd@<dSj8JIh"w 4 (bB\wC?'1)S@؞9r"nM4&]48+o-'ՒaFwD$E8h]73sSV\ _W7w+ ۵eLr?}WܓΦZ7m7 \=!Nl.##Rw7;F1y]j0Iռ';8/xX.@GcsQnG4A1;c\Ҁu?ߜbYqnͶϥA@ P.P$9@'&fEY6\l(jo0}rJAPbƆxr [e9$ U9:e/\bW{>ž.-&4bc5aN\i Xz+.|,q,.EbDNQT36Hb\o,۬ԟL*86]\u[|WQռ=œ(A(](]nG%K(]ͨhyThmk~:t3(僓A`߸NS3ia콢@g ^f=dl嗐*3N-X2rx}Gr؟شpZv>bIH2?ĺyЗ^Ϭ)O&(#~D2"@" :e 1u䯨>LkkM_{+STGVy"/O}-_|Q9mG>֑MMpDM.X:[4vUTU"[ԉIVo#ݵn _Sf {k'KwGSW9@7-')"AzymU7'qmstTC"bgv10|)̴9%rQp͊CԀmO̭ri؀d^<-;!g5˚ ]s%v|.$ƀ~ .=eDLpix$ks̮Gd݁L UΞS`{Q\kO6븆Tdk5}v!?d=tڴ}g` $Af2өNH'@DŰӿ ta'mZ@n %J]/..n 8*X*om ALxw(,,q94*sH0u^'Z BQsόo)ѹw$V66 ]~A 쪋ѯe5Wba0VȐ<{vz5p*N8 }-^q'1U!l4(㠸!FRT![ i=\ ߯my&TC<*c#u ^WC;m0e0D1Қ\>OPdY̗ݭki^;r 7te¢j~nfx]hĭ6So%4qkˋ[TV;ZTYw-ڶ$kQATDWn|̴IP/(eopm4q_DP'=_ sC /Ψ☉::VǨ̖uƼlNgEm.ީG.2"VU7uYB&*t\$|a[fK~{"G=8׸tcֱ M4W3>aV_;] Lq'LoI:L-"*OۘxxaU&w)1J?gi$tD:hXijϤ>t*tL^m)My7%Z*;p m7p8TDmk, I^sD CUP\j[+wPg+EޭK70{҅P%М^@lRaf;NHDoZO#d礘7%HJ\MН t)MCnd/qYΪ簖vaE3KBND..=dPv'.p@ӋX6x?&d^] m̫h?s$!mDByTЅY]=N_H4d_8CċD?+~GQUJ 'Eaz7ۧA!YHԗ̯W c3,/ MO8?zxX*e*@7& H!EJeLn p֕yf[s#ԅHin6 "\!no\< Y.(Q9e]䭼+xU,j'oMh+iP:-#DU Al-ۈ$Yl 奬X",O ⠫'_[JO\#9dCި^&^+bXن JwՋw;{*k eb @k,yYbS ( ( VhUu9- ׬l`bEtyB}GUޗƠB7*VTgo>7A(ڬ~aX>d~Ye(;vYj(4SrsT*1YZfaUg:J+? 78Q_Nx^4 d TO^_3+%7 kA J 2?:Iqw8 NJbhb3mv ^5GcU#\& ?$\-_RMjGZQ<\;..>pq o"oH%j!~1VqbID餔\U/}?G_ zPر AA kO7jTm \,|H^>Mҏ3UאFoC,<; 865UJgY{l^Q`/ mj(y_#sC2q_~*1ˆ[,V[6ۻ DA~}?iTfjvS%W'#o$%ܕP꿿`Gޙ5!PpU _PwRc/T=BFU'eMgX'Y0ZIEt:gitc b3gUq[䇅0C㈀PWF-JLD/ W834ObMp_u{ѐ{֥@Or/ԓkݭpBawQ"*sYQfµW|r* }+z xsx{БHR9!L0IH#f> VS׾Vr㘇H늹̹BT ݐ~ =tߨj tVGe#g^֚tZ`gojC_k>s28ICϮ-W?6 KB^l5M箽H]'DZ432QөYD7gJɨCqx8{k.mU쌃7p%0Nbm!Ec f蕚_z bo\Qt*gzEhF I~ҭr9ԃV]Z87Eˊx$D@hX̉)V0F[,$#JXX|FۻSmRgWC.ߒڊbqNfaQ!zh/tN2Y€ѪGXjH665YVͷ Tb=?(gD<lHaF>ݕ~ /:@:e{j{>e[ `A jpwTx".i}[ h;XD8U1$N,P@Lj3;Pё S;}(0::A5*φlXWZSTU0g߷P #7{֧f6e\ vP5oDm9>gC)TDge9:fv"n)8[.ߊ DɄY+*D&9C/sAท\4b^PŻk' ž5%=v rXY*1탭: Sd6c$kzZzhqe &cl5hXjXhuP‡)2@PP>-"z '7[0n"HY 3suLɉAb^:Sw zRlYja iI=s.FN9O> 2r,-ɶ~bh wsfμ*a< єv ^ @`V0\i. ա~ųLhm3hqi.bG"u2@Vg* >Y֜̀77\?[ .T]/Ď5 C&vk>dhhSD&Vg2M.CT9~eݣv3hY4$|'gr/#uJc @c,Y=eϖ*p 9iPop>x 7J_9ڜClGxB\l:zĜt65\ΗcR1жEfvЬs-P1;Uu/k?{?h&nhpLS}R#I\|7fB7v'l],_5E9WrP6ϝka7Xn{Euթ>QPVizz4zj !֩B.ғqic֯]IO&X*ߌiBc焔R'k1ş?ys?AWH6CcamZ/ }[EƜ+m$=;>~ּ1pQR7"w]e\ Pwh}JpIW&J0fj`>߿2R"G$eDٯUW)[{bY1}QF۝mL{q7ĜiCGPaQ3 )٦c6aNGΊxZh ӂS Ùڠ }| tq&7VШu|4ħms7SǬϸln<u~n o 34+Sȃ,)^%rROڀs𛝕VbծWp 4'47(1uiS]`y Ȱ/{I'/ [ZDuGx[< Ϝ5oК[Մ#0k,^a[LXL.OX*d OϗDcV5K{rv_s5Yϳ@u^j|83QX!)@ v]hqm~L_ulktseJnl z Euv2z&o$X+IFUwpF`KQN)M6NFtlaz\7l"vLd.'S$ۅ/\u^$|1GPIq:1~U̖sIYr g8ѐ<$>0 YZGviz/data/collapseTrack.rda0000644000175400017540000000230713175714140016714 0ustar00biocbuildbiocbuildXOo5lpqP+N$RhT UpBΌwxw=q+.|$$Nĩc{vh2=޳{NNz:j٨ïj.|[Hj;Hۏ4)zJ<"XLRqMォ)(z锦gv83G R[+lo8;@q'Mݕ6 <M…3L#&}C[RٟH=+׎g]Ac훟|,25io$\)&h6;N. ^|ݦ8ߛB˯V* -C+Q*;k]ׅ݂܆ݽo+Mt*(GG(&&ɥQEJЕ|v>RL0.b7ڔ 2&5[F?VXps*Zk&2àXd?6 ;ʎ)`۳~}b]}mZ;W݋US.;ר"Qą"{@_][_7?smuW O)\u&5R+9_ʵ%R>ʜFӲ9-[mdYuhOʰ5Zc#oY<ΓnJ0ʂvvWFi摅n& OݲGC5<.VCsB_&)q Gviz/data/cpgIslands.rda0000644000175400017540000000103413175714140016210 0ustar00biocbuildbiocbuildTOK@IlĺA~"E=mP ]'K)~(?'oՓǞM_I'q Lx7/o`o! iux`02P w}FxGXUOw9ҲOD>{?}9tĢ8*! xQNaXV S.rJ&Ǎ ͐(~x%Dr8ŨJOoĥ zp7R(jЄKgaNK=aTOwCc~hʘ Ug] ܻ{YDcT%2%f`nfpp˗8>GK_ >xOVdeg!( @; |3KM\|qHg~{\R1{P䔊 9EQb/Wrts 1911dEopEy|颩n)ȯbLjH+.彮:F}.y%z(7 g.Gviz/data/cyp2b10.rda0000644000175400017540000000117713175714140015311 0ustar00biocbuildbiocbuildՕ=o@vC -TgnDP1@ADqIؑ$TB= bBLHv6>l4<ݥItiwo{?;ݝ#T.AA1B*B^vZ斁.@j_v9v&, ?M4֘A'S]6jB Pz/O72EFJgtSz/?1^ z@ۻZ5`;.-#C)Cs28@?l5j\UVD(,8aZeHZIh3˵h[v}T&hnί^uo&<2>ȋE99g8%N8ڔҤﵡmˣij u\E^C%F3~} [2nHJ=ڤ'Q[vt'vnp}քNٙYře`AcսM?ﭿQXb>?\1zt-mD{Izaamw̨Ǹ_LHEK׻gDɵV)(vGg" _X;1G,<# ot\o.{-4AިZTtԮ88Ѻ(+b‚b0KEK^Z\/m&;ʐQZDOfehSbϖrxcGehd5t-;?h4PɞTjBŨgX3 _˷]}m[78M%In'GͿ`-[?|/UPqYtVOiʘZGՑ2}fI,ߨ(+!Id~oU'tFY'C!pe2*7H^rt.*M/;+netY FhRzdOo mdZ ֩046IQx 7 ru');܌D]2*0?DŽ{.fegH܌qV(N^kGsŏ_7-_*ee0׺?qr'܅J>Q+꽟Uk%p_x6WoO}oRD F6ʞBp3v,F4EKXP4P$H=S}_;|Q wzv#w}7R=L;hEg3EGӄlc~uOKA 8DV<W~;)P\V<~l-)çMbk!ߏݦ Mc#am 4>}wܿѷg}{*m,8}>Z>T߮@^DE߄>ϔES/bnzD֯kᖳuYËխY_,wN F:FdY-#N@N}LJ 7jF͵ǡ暡5Fgp8LZ Ƥ93kyƼc>n1_l˜b̖בilz21R7w]u#uH]QewKOD #uH2^7!ҭHRoA " %"h R q4R@'zV'MF}ڽ 2v*OCj9v7,l!n6]pAR rƠ0L :i j:J;܅NQڵ JgDiPz(4Jҁtxf(=w1J[(tBG>Agpgc0{88Q8#q-qmqq hih?i|16`+ MC㐿+oـ;B]q˒Psᙨ)IAMQf|9j CMN1V >q n. =G6i6 fND3v͑H[i7DvH[i+#mH[?Go Bk"?)B ߝw׾5 c>3*/?Wb_Va=0'ZM-QuT=&gF zzTy>(AՇhT}<׼IX웱Xuĺ?ź&aQ^ۭXwX[k]u@-/#b,<(,<2,h)ƶ[׼c_10M]=cZc0vT؁o v g#stdEyJd} Bg! (]>elE(M=eP_P(<eoLFٛGQNg{޳D|0ee݀Qw(wmo;(ʶ~BS1)KLJ^I0pGpp,\t-kn|' W_ =׮k2ʞX\9'7aqAW,΋`kPRT:b˱oDFT ֿ9hNv 0k3wcHҲC W.O_._ ,*v8/b͂7QS5wEMuԬ5wGmɨqԬ=Qb jn^eofr?_T׊1g͸Q\>J/D#GQi0J6GɆWQr'( %k%ۡdU/%], P zyoQ~*o>;qW"898&t;%DfcЭyot;9ݲѭ`3MݦG?Ej/p <C폡gbqB  _Z C7^Чпa` ?2ЗP8mD бM!:m'\E;czVTՃC97{ ܂' 9D%)#Bd}%S"~>n)O< 'OAv٧"o+dAУy6 ]wdgއiȞ}oս}rdWo@=f3r)xSڔ`ʡ-0C0G11>#Fz ?@zȑ^ ҧ;  }<[K~UH_{4.=CC^ɵ|.YW^u).{u)N͛SĩP:r; _!_#SO-E_]]f"yr>5"krnz-Tq * \f ^uo Ǹr+lvnS_`_U`F; /:`>gnh\+\K# iw^i>iO?iƴoca14L?Ptn ܈NkF+_Ɣ.S0S0˼?-g06g[/BŒ+p­/6.ZʓCy(oCr9;/l0fe٬' |;i޿4?c\+.yұ0拓1"Ow0Z; _gz|X7_M5τ}U}g] qohz`T1*f`T:c5FoQ`Ԉ1jc5%*=.x_bRTL< G9MP{T+~06>u6FF`9yvܿJpc00q| &Ē9xQ*&wǢ!'aѵ#胜.DNXkr?FΐQ5iT͙kJ01sF&æwkѽwDM{M+x^1ރ'{mz 3laD;L53sYΣ"D^q6xsv+OŢM{Mh}>:FFC5:VGOFc/*z4Ǻ 6֕NŘq/ɣQfSŃnGGbB(&&&t.„ń7`·%'wFɐP%.|%%Q2/J.)F}GrS[T*kAe7@=pQ~0m6k}3Q]T/d:*Bw易o|$/BƦҸ/?P0`ACQ9 .C >!ZKd1?`lQ0l= NFA(8/C9磠9Ũ[6/]fXs<9p\sp9t>)טixqIॸ\;д'&3 ݀-QEr.؊Qș!̥ȹ̙[ 0&^&>4&McnG]sTfVjf?KFeU5sS\5WA͕騹J9j6\cì;<齪1~N L<cz^PEGczq _Wd`d>{2_u-_w$/Z܏CŇըpT|Z` Z⦅`?NDf/kt]3NBIue;tEMףsBwG׏C-_&qߝźXר^faX8dkNuKg߫{#cA7}g뺟kg+Xxn'TAw?}Q( E3Q^6|򷦡\^9P( P(~5ʟ+BPD?=/Y0T?~$k'P@dT_P}1W |> |]0ك8` x flĀ%0j?YOM8XR8<$,_2/;g`yay4< ^f4^،YϴÒs.ŒU,);K%a+d)^ ]fllcf۹;r!z9 mH)zOmzgVq{>u>m cQ?Ѫ4gqWV 7=zބ aY~m SӐ;j^n d rW}un;&}|շ/́}Mֲ?bܩ dv#,KXvڱX}eιXe'?{ׯ"6YZ'?7M<쟸&턛p os`h\E 7K芊۷IܨFmhh'vx>E4,Hmh3DEGD[&Ѯ L웢 %P olr.0ڋzцU E 䧉M.k.h>CQ}?6G;^-+D+@66R*$: F죣h:M3GGR{^]3C~Uݯ+s=!!`hɣ(^(߽]$"^EǹꝒE_Iq%/%+=D{R[E{\Zܟij,!5WKE{A*t\A?t/3E4o#gP:dASʾD;^l%]SBe,V|O ]SaK(_e*5'>|IA 5b(~ⷍĸFIzחx&2^g%B~òi5Go^'/r(Z%/bB} kUspz_>J>#W+_1].~cߏVїFC^cy.;q}AY$| }]ꁷD[QOg|6<şS)wR_#ÂjK_IԼK]%+z:2.=RORF˔Ln|wbqGLίXq}+FCi+r{~sx%:we;*~+~msɹ䵷9ڵ'uX)䑬0:Y)#*9F-7BBoy'xw5fY/\jĚ Rl5'M8RJh'm\TSjRy/3ry[RέeA.Y˫!dBڿpw57Bkz_⾂ ݕ~͕JfqL|:Dbv(L>(+C Z _.9͗c}$q^H#7odLg)|/R|Ձ#}m<}P\_&G@3eDΡ\?7ͣJSy磔@_<'K9ZM[HAfr. kg_]5G}Ү Spo5^&{Ps mчl>Z<'KLQX4(u_XqKHګ^G{79N)˓~-mhf1Kq'ԜK9>VDoi_n>H'|)>oMmC?7+֟Ucz@#eV곇\tϳ\J,jXC\X͓9hl6*ߴZa)R6GϹX\J]"dɥj.o\ϋ_{Bɑ|lF4ISĚ 5"w*FmHOR5,|m5G]haq$R' }Y->mMNPS菖+HHٗ,WI_0[6U^&P[Jk#uЃa|7NInT}|k9e~|5Sk}܎I9J*u/KjT,Ejc )YxJ>XpyJbOɘzjn H/uǟ닔IM:(| [O|Kk',+I6\.VPG' ]{{Ȟ%Ş9Ǐq<9eF /c!a$τ|dEMRo2՟B cܬtzXΓY*L_$5?ߩxz\8 g#LB$U2!e E\vnw'K~D,zr#bq^(~XA,ŏ )9 //zdSdwJ|?mb&E|ypL>kCڱ}Tj,Br՜H`~lmʦ(b3}395e>~ʇ>d߾X>#y{ RPU;Y%)S_7eSFKE7u?q; %d2&Y!&okMJ/yI/;H-}rʁ>hq\c|s*&o>vYRO:Sqm$Ɏ|PO[Y=s3geq[A*o.elhw$mex,iZci7g>n2o(3ql/NRH99ߌ˱|۳B;[ėUK}Z#ܺu _rI{#⭤S e, ׼B1i8!T{ 4;ADLӍ&>~p_aј"jYb9q!E E$1 p!¦ VԮS5-_m:MRMa:NbqJK)@W)'O"DwYj=(XDn,!q#D^nJ]81[;{+"PZ SCH1MF\8 'XNbv/ΉI, rb._f1'!M+$OwY3!ϰ#DDfq~F"!⡛6v؞G'ͰݏE^#$ODcb}.NmG2B&LfrGg9Dk+{qqɬ$* +R_հ-g#OQ/bf4\-#c Fv݉` kE6$pu*,s'ansqٶl\:7AU#,5(e^n?!<Ҙ^?AÞȯqPLw1=t<0yޞ@sof;0H4#d.@iD| '1AnnL 4ܡ5: HQc5D]yI|"bxpC'AIPVID N_LZft.06^ca1͌%H ؎񿊨5KvԲMOj A=HX{OK_APILiٶm}/NQILF5}b .bW#9"ҫdVi0Slp%,z3vNf w7t?Itf̉&MDXlh$JkW'D0t~TCg,Ìhէ;sˈxo"|'%.#sXžw,O"O$"̈@(!#* j )?&Tӯ]V\wb^6 ~G+FCD6RNB?7!,rYw6ךg:;m%|$^1J75dE/ÙS_ᰳ8+u;a"{%rM|nG(B p{'?aY: :f|I;ub,ŒQ}w0l#!e:a{axyxpw#v3" di_O<48pXNv.^#cXf6i!l;SCD}^uc3bg]3P1DDR^]&E݄ J[8~ 'jCb_4VԉA"by '|~#͉u!?I`8p]`Z(N#cnF\ÖXk;`ijI;FHExB/.́f/N9ɈZWNxqq Mc8I\$qpuebgF[5;=={'B89#f&$U2]xNLj7GhJb1A%@\gp_)刺~JQv<7ᔞA?DGRވ3J n@jEl d)Z \_p__QYa$|G)?$|']Pu(uQO0;\b Dp0`3`1Ę(Se LA)2Q ԕg7r=/lxL,'2yL,aLTxlLs2ќ aւQ׶񚭌`D+Xx!1V1V(1~e%rpYmP\V5.+!ՓLxLxLԫ!ShH$c ʀÀ֛̀ŀɀA@$fcxa*l$vq,a&,ՠjc5X z=VAՠ0LH4k_09v!a&:^1my<9=SZ2/5iefiՔYA1lLGs4 p`dd5,H{OU{\bYXX Y#Y=YWYqY6YYY Z'ZAZ[ZuZHSX,abb_b/bbbbobmojNv㥩7^sm5E4ZE8UM5gj39fؤd>  20a)`f͔gkZ,ievM `oP MMY&{5&Wfkol66qS;I V&V&V&V&V&V&j=reF0f\[1$ ' (.Y`6ƴ"vbƴ߰ч(;Q!QMAjAgC^Ɇdc12Llx ml(M6&Wͮc bLA)d77p' -2yᏰKag!nD R18L8L8L;ik1VDw i9k(k{zl=S"q-^yǛ'oxyǛ'tynǻ}ySwfqokj^;qv={7-r.wr.wqYw\B+xirݰyiڼ4m^6/M 548hpT]dbWG]ߛ8"fY< yT[Lr5:H^5Gb\1;ЏhMŦbSmy:=Yunnnnـll^s'j#B-x`M#5]E'ߞnjp-=CyC Y\ D^.rxrHʻ{ļ~ ^Y |-=\;G X\8*Z9 vͿ9 p~$9oaESa "L8L8L8L8L8LA)2Q D(Se LA ?hyfrKDYeCv"=/=<=I=V=c=pcCT :9!$WEcQFDyp=gW슖ԲZB5{(\qiEC 7,8cXqyTr9r"+Z.'3$ 0#; 0")x\qq-y"(>WV?cG@ƴ^k1{mk' ym~lLLacx j\nQݢE1vb-[c(nq";\Bpqeor{bi.Aaq 7((rIwp ?1-x w+,ޭx w+,W{U۳1;wx]K%Q%.4[i3^+ܵ3'ͷE 88Rу8]x#kkX.0QI=.3iǞsVYP>eSOz|fӬs>x?g<ǥE;l\6da#h .p\ùU gq C Xqq,YIpi7gqpn[ C"GOg.sَh'8Xh(Vi^Y^YWV4s9h{D[a65SZᔡe kDCuUѲR|氂s{Lk|3.tyN])`geg?{mnp$fp"$!Q..rqyDL K (WxEy+&(,QMȹ,)먩ɛVܨVĕ=v>XXqgiuv~I}Jj7DS0zlfzؙSj'B~VNȋS3nt/Z?OlNj~k=X<1ҾƎ "汈y,b"汈yfX䰈y,b"汈y,b*cjilv-Q촵;W&5c\Gb<1>M>( c]0BGXb$\Zrkr.gzeW;ZB+31:l6qͻq%>>v!ޛrx񴮵 ?-G'wfۏI!쿱ߛ%\-FJ~hz ヘ8G%hMAMAD;HzDxq7l GK.r9;8G\78ִ[zqzqMmܫz^fF.7&?N>ĿE.5!7Ph;!3#/_@VB7(x[e֨{lg`Wމ6q㼄5'^\ iyyy(ɞT?gqGviz/data/dtHoriz.rda0000644000175400017540000003055713175714140015560 0ustar00biocbuildbiocbuild}y\Lmߓ=J*m^S8W!ViӢd !HTBRTBRILwFy~?q:Y_uܹcBBy 1 L @o%1LC[G?k/]^ -$$+i$$(gagocZHXѻu>Hx~.!81oGj^|@[:'ǹH/5/<<|SexAASm3g(hS`?B |=]HXݼ $JWnyVZYqBGJIn$Nk|y )T,?m©wrrji*T/C/OrńDDoFX]°bA!u6q,W[} ١d L%Z ;L) H$D+ >`>mB6a_0GpW=gR%2C 5BF8&tBq-{!\5? 5 .?]@؎@~EKLOW& (D&Xwp;J7%3$b2_ !?‘[)d+$|=1Tz/M:;a @QjdQ=I-io&/?JrTVcnJNؒĠ^f_SȯM8 DH(v Wa Vt c) "}GvX$~eT'0nLD  *  g WX!~jBJXwV{ (ţ^1ޒ h;Md 8ZHp2^uyUn/=~5b;ޯ?j[Q H&nb+ڵNJóQӅ_X<'I "7É-Pɉ cpFpAlu60 `4O'$;IU012# 42}²0˶4dIYf,-X!Ʀ iT#΍16' g;%_wH#?QޒȇIz8{BԍaRd5UJ}VwBXp̖swsqs_ A^n&}]N3&Fn '[ b΍$(g/O?Tі2\Ï<\-}CR}wٳc%:tINGQy-],lIc7wvO,DP~s9FWب nl~# od$9yzd ~i@ lvEu*gߺ]3{ G< 1/8^Zca\rn N0Тn>c9\$E۲8HG98wu(EMqwdl3ri EiCۢ틿w8ε_2m~qɩpAYs~ eUE9\hćwoזs⦛V}u¹)}{6FifP\R\^ޒs.7EÞWv_+=5na۩a#vĻ=8q.޳D5V3ƒ*]AqFeEoåK/*GĻ${ʠ(Nܠ嫼lrوY6|Z_.jyM|8ZHWr9g!==MkR!i 9~7_.HUN?w ͘,A d ,d2.kǗ+ Kѫ1"DZ+.^-Sl :fdKMߒ5^TV$)i0GrT#b5]|rC!wwD x/OR$sԗg93YCy>|7/ܶ=&:~#j8˴.t= s–|R]q=z=l;~5hÛt3;yFS5{-K`1/(_%b霕RQ_tސyolrs;M~ʽI"JlɷCp䉵+Vҩ7^grT _Ror{6V}.mgFfgn_  ˽?T'mؗ,TQw~)NO@7.2oKf]G}aH7יŢALM;Ft|9M9p_7oCZ(E'nSIq 5 3 x95/W0קm6[x3徭yeIћ㼡蔾ŵ5|x=l!ﳭhmUC6΁$]rރ!(xuPy]6w*e"zLKuH073rbM=\o(D!j&cCD9_yNUj=Q]O u>_ھJ:B#2xu礆BjswP eZrxgh"_AһEk=">euSeZb]ˁsq0xWdlO4Ԛs.~ 'e2m^nlWyO(x3'?({3WQךm9!?=TyZgVvӸ5۽䚭$2\RZCN ]zZp7Gs7Itפ'uSȍ!;&2e7q[#? 7rS%KڹhJd.{>̿UoRu|Cx/Y>rg/y͏̅Nq3lɵ*g|DguҰ_g$\c{ yEc?B_gD96 ~Cg; cDdM />i7_;􉆯- ,I62Q# *Ph[H8ô*zO_w!_~97AlE}<ߨY$^c뻷PX[Tp] d9r/x\OrZߞOH X(!iN*P V_WҪocu뱏2N`z%=?,*U:G <ٻ+/,Me{\(|US&4QCgoPK8 %d}Orbeza+_vs6osf|Rw)GP4]LWj[ ۣ6ŋb4k) FrƮ6ts%Ӣq[}X~פ[CQCX'he@(pxz>-J*/CNr9)Jf-G0HؗoӜ 4 ZC_= %i; v;lɛ(R=9.u,}%ؗt/Oƹ5N66Y0Q:vNxRtQrxܤPVh9WkF}]5_\(Q5j 2l=i/-L5oOP|zߜ{gڡuVwcsN!#s~ӎy28@e9~"^|c=܊9VG}Lvb(y8*>+3^ ҉f?Ƅ_ {5M?}|eιrNZgrA.t3ds4M{UNWFG ?'Ϳ9PKjznX_},r>%1, ^jm"|5<6dF(Кo«qN^ym\\0Ҍi8 yJwn$LN֙ϢJ'YK^@~2 FN`|k,,Sk&'!*`j ד~܀KL!>F+Q#4.^o +z NH&_Iھn:lѻZAl-5_X*=\˹L~)ۥ K*UUv:ДձS:SЙ9 U ]H=67ѹʼnuؚq#& hcoBջmovFqƤS#SKUu-֜C[!S/ޜ*qVl 1PsP,~^^u$ird5t&,G֪s&LjUQ͜lj޼Fux} (=0R+4sTv`;LQueI?#3#jkPa1ON*i-]@׏VbmmĮ }6ʫWѿ{BU&C~#G5xGdZ'uT\=9T*CFLmU:“6KqE-P,v19G"c~>満szmnӿ:wq퀺 硌ƩaS#9ǿpN/<-Sf,2Z*Z$9w׼z_2&;T(fDؓ ϳ?<6CӃW: 3p` Fgp{o|܎x6>S[>o%N]Vz8" Q?j8Pž 5˓Zsnmz {L ut]5^0"P*.vBJiXgVGZy΍uV~Z hM΅9s!qzh5ıpu~uPU?@/~;5\E{;> M3b=ԋCR0W6X]b|~%*ϾmqJ&Ze).PeP;o\tŭGeAu*\ i6?\r$$']_s7]&*W,%jDžBiVkd#g[Ǒ8`\RøAVVٶ). Ҫ`v:M KU3eՎ-|teؒxeYrp)Кgގι@+£2Ѩo:606CU((Y?NiN s;,N=囊K]~˔0&D#R.wlYk&·7 3!PIiL=6O/gC^Xh[=ß;%o@FV_|[}pR9ti(9=rȗN0t#4otx9ae~gVÛG>uVh(x]jdTNR %Goi[u \vrVin-?[s8p er[bQ_HLY|\y9*G+)BI،{rA 71:ܘbF@W?q?i=b >ur(~ڔ CltAkl02J j➦;u J[z9]o CWt5mb՚P<۹T|y]*t`]Wؽ}tFhik49K :ne-=4n444 V)MΊ@ctg wtt..~|#E/Ԋ_~y*gA89YhI~t]B&ȆRSoBK媑ZR#fNYEsLVuFmvk6_/GLo9k&@>ssPZ.ԪمcbOSK{ӼM s#ޖ!v4v8꧟O"T:ރZM=e8֡~a$mi?k̰4~9nw3]EӮN/GO)fnOxz:gp?ZoŚ?X[,mYApR(x<rg7 >hNe3?fGcW8{bQ6#cNi21^kʯBqqRA~8TyC|*}Uk$5_W}pkMlKo\&of\;|V]v0.eB.ȅ7^l{4Dg;EA+O&N#_Rpc\(l-_)gaXK;! Y8nSAI75LlZ*.:C]+2vN+͌A:~X<bO5Z8ڗ/OL2ͩUZ&@+~L%;?BFq\d\L󭸒+[KM埙jbӡE 6%eTxBK5p5.5uzzȟR8pQ .1,\E2.FĎihBi_YK01jVIg;]y=&Leu\; ֨tt\ _w%GC9кՓ0Par9_8 4lQOpg8pSC藳p%kTxa$z|8ʎPunRy(_p T6.kvލ_; uC:\тu".~5KJK:;,;oW:xV/_LY;ܫyw$9ւ˞ot(4^T̾aр+M ԀK\qr^rqnf t=Tih1x[-PӚ2ʓT]+rÎ jU,\钃io}: 犭W7&zJݒ5o}\I~_Pޤ{S軕nָOpoE"'Td_D֤ iBcИ!4f YBc#И6+ a6c`1~L&F!3dH :ŘF`Йܟc#1X6MaldD *f *`(d;l:U0&0`jF`eLcBg1XF,N1"bDc3ɦ1FF Uc1C0c:&` rCT:E l1!`1fSYdP6j̠ FNbDl#69 l*n`0),al\x2fL'Mc2BN%At:˲$Ň%PtlN#͠`114#r}T]` I`FUHHB@X]JI # H CU0 I0 U![ bh&SE-ୱ1X (,l`(3@3t4 Tl"_ϟ p c|r(FƂ"8ġt&M@]A(N8=N84&-DHqPE;'C3;cUB%}r9,:q9l !""à8L.D3-F3j"jrP fLjBe ZzMBtr9(2[Bc?젊cQlFuO fMgS-;6!h)`!r%AmAw*F NEJe rl#XݏnbpP9 d-FTCEJZVYL jJF.*U&SFSC*MXX ;T&sИAjwi_uOrE+:>stc,Q\?BIW']iBxdi+Nĵ '?GzpfΛ>]>YI.cMs܉+ ,3eWq|1GHdw"$3H0fPZ9Dd{,]Ѣm. \Dp0D7=GTaz F"Fh;hD!S ECtKDfXDB%Dj0l$HmD86!D 5Dވ (' -H%"4F :9-"d5D11 Bac}Űʈc!Bv݅99 Q #h) 1lss,DB]EQQd"@DQ *C è(aT#D!;!;4d' m "D;!UY:>줇#J@T (' ԈNd ;W=.guD`̜4rnO{yh_jcn~N.N>EsAu-z*.vmmEs$s<{6JLot caҩ'ZF$wFvD/b.N^b=0w&szs i_ o=A%R$ kK?Ⱥyػ8Ͱޫ?3Xl1gIbGviz/data/geneDetails.rda0000644000175400017540000000115313175714140016347 0ustar00biocbuildbiocbuildUkQݷ!EzVA 6BPAuI߾4xzѳţ?z=xVHwIk 3ߛͷ3Nsw5@JTR@*ϚLP @!R}z(W:3@jq4IXE5HHri K{}ޱ/̷E/:0&Ae6֥*[[2ي!M?Q^Q<+qLg@ffvPT@pw3eIjIҞLS-Lr};2u,p8DďreUįg/=ydJ"%Xu>`~][G` u@c+x^.8rwRPyw?Ap6 Rpys- w2eJgы,8`6 )B d>&-TuьC5 yS%#YKmbFwbfAl v vk?eۼ?d%h?YV#pq)[#V E/YI/;3ХP X 8<㝔tq˵VTϱ?}EZsWdVm8Mb!Gviz/data/geneModels.rda0000644000175400017540000000313313175714140016205 0ustar00biocbuildbiocbuild{lEwz>"(>P3;3P XyhC^p0i?kM?0@1A1 1b?x(1P{;{w3] @|gv^<.ơi5ZM+<jFC}DO,Ҵ,Gp|˔X+GR`('FDh]<#oԒ$ 72|5|Ҏ2_p< (;k3eFY4X_ev~2{@}}c(;rB˱˩w?Rd)4!"P =havehlKpeN.3(e;7˱˩Fv_dp73G'\̣0'+pe"֧``3(w?5 8 < 鄦5vC^: 18`[Ztx @~ 0cI)ʼ(<WW.`W`%pklw\a|>5ǝg7\: tq|U xy^d?|2lPHmz7HV/o2m:WSr ee.( U]ɖmD:60l430]b{һ_lO'/nUgr{\wu uZ3;׬[,l`lLA( -.˄P[91N hnt*7h4z^MŀV܄ځE)B熽Xs=1pHe,͚{ܧ' ,~ q?wy-W["nq-TG~L-rЙ[R%,"!ĶܤA8ĔdEdQJ8)b9 +dRnm1j+dN-IۀUTl-Y(@xɞ d PME; 9aG&AƖ<fQ[YMAFuSh Ʈ%G 226!RcsxEm4'2SiA6My D1bȘٺ-̨ㇲ OSX3Nl*q $w<m˖LiSmF1B"Р?vڪg Ce̲tȧ+tGk㌾I+/5Si򕫦׿ȯy"$uuÒgĆ%1$:Ԕe4ֹe@15lOlQx2If`]o8ܰXET*-+Ӫd/sepi-@87uP /slh"K=7y?ED*1}SH2-PI{H!7IoO>ñ]!-T49-]͉$C Dґ$tl(o8|7<&&&֮,Gviz/data/idTrack.rda0000644000175400017540000000762413175714140015515 0ustar00biocbuildbiocbuild\ xUf&rQ -M*9$4iPSQ‚nU\AX,֕eA+vZ7LeVwM22_3g)g) * }" HpZYa1AHYsMrv\fg[Qc h AF>:i:1:#"]~!tmT`n0m Mpm-C :T`:+b=iO8<gFI3xfiH, h(,󟅥g|Dz" .!a  3IUu2K<=ڜRs/6|Q'Stt̰݁nf{1>e-)3* *>~1UΙlm]9:XxfrÓ=WR:wSldvH,n0"sc$x<j7VYD:ǰ_fByzY 0¼PLoK܌_2k2^ٽ"2D7{4`-8a03e1^c &4&/usn]9ޅ|x2Sũ3!u_LVJNm:=~ ɯڲ :3.;T¨7ne6-bj0]9o)aW rx$ugh4 {?maZ5r6|uAi;ޒn|cr#!ac٢U/'|žvx|p2ܾ?V@qXḶv-EXc58u &7E~&oj-3p=t:?d'g;Y׫ B:dT^&0,뵔dB U9 oݟnv~4w)zsÑ/&<1ZsGUoK2qrsé2xE0a.v9`AG%EtXF=e.3ls+ ]$HgҤdQ/z:jIEt,t΋sMWCd&(S?W!l!Gn[I^ڛ"~DM}v:Uvf3X*kTO2a|M;B_LYd(f~BʒQ$TܳFs+-$'f8hg>bzug߼&ݲ )Вɟo|JJS;Rí*p)}U^+̎a̓Gi{gS+6Pp]5 > s/,2NՒO]|o9sK_x9liW/N33ҽ~KA1Hs"ܟQ;o \ջnbZ.xJzy̬!3U6_YF^$O,A8-8^ns#gD۟5IU̶̢ocgLëj@e1 ܾS~]g ^ <;2.c%ׇ' *zezXrH&JYq#4nzzRY ɉȊ~L *; oLE0< {m?L=3#` =%MOϜ@ kT巩^Fm> +Ðll_9iAn]TzڭҽufB0Xyj7Ñ믴w6v zy|SB]ĮxL揅#܅0a(0XcBAp/41p?\y e:cLNB:B?2deD0 ar+yr"z! 8xB"(c0]p GFф_>ff`6k GFw= Q?N~߷TLB _߁ 7 {2}(^tDCHZ\W 'kR ߸DX?v?D7VD侗/n 4Opc1ۛҥ)^MqZC|{L_|Dkx C ?OG67  [<)/DhL(d$'ljqRR%5Q*X'H8E"N襠^Z\۩Tv8".ڧܡݡݡݡܡܡݡݡVai7NHZkp5IkJJ&HDX))1N]6wmd[(Zl-n+kqZ\VVVZ-I~I,t::\KJrtR/H\Rp>I}" 4U2U"LŵLŵLŵLŒ K-.M~/}6BHUO27-(&xժszga I/eRq Qygan݊ێxDydW؆0I ^pj)s-BrT.Zq0{U+0אwRg2$[yV}a}877z8L,DxQU8M r:@o]/Hi6xg3 I;#%j]9 !>LVS.%M4ב4=#CNȕZg"@V])7Mca'{3Ja$8g4ͳaI'oVJWXMB6)hb=u"ލN']\4Q'Vf4t?%|6IGviz/data/itrack.rda0000644000175400017540000002321213175714140015400 0ustar00biocbuildbiocbuild] | RWQTIe':Tլ$"$lQu*5ڢ^(ꨖ*E[Jg6d'-.ofޙ}yyc}Om  K[0@+Z3s;RGmxI8a0Y|kI)Ք鿋(6FnsTPGwuo-_/zadU"B*Un >:=3L"<= н MD(4&bD[4ƎrcGۑ"rG!} rG4NSƉ1=̑Zԩ1|hRK}%} زS%<²]^ m '".]\L EbbD,̒ud"UeH%.3=X|N-$46Q 7--[m\`TOUu+XKY[΢T4Dph}yJ/ ŐAĐԆRȔb)D+:ɳXU&._Dl۹ՅTHx+<>?D4o#TykdMI"L:& Y*RiD٥,QV9.zxo5Q-Lbm5`XKh<X~"Y-G/ -EkyuCu1Vh[m(~$GHAyw AjH ѓQ51b y`C},.Bt. DIkC$ .vvr<h?c6%'Z<"b\K}%,N",ȋue> PTtL}uZΝ4H]t$:'K_![+_̝%&!HfV?g亘 EK͗YKBl"[DkQQAKxwIֹ5!..\`m+Ho?m׺A58V/r'A3\`U~`UX"bVxx /\_F¿X 6ią<2K|PDHR"@};E+dzð TyVlklm X6_qYZkR׼Ӫ$`Pl2APSwʃNHXK"bE%lE'6xi?=^779%6e|~H ߳]kLɔԶi? m2}l/`:yN oiЅWX=kuoC ݬu TulHU[R̃w |R$wMra /Kgǁbkص{2/DpZߖWvG'D<٪T@ SukN#_3!&Ll2sf[['^$զV ,'5KXk&: -~=7UXO"6;./xP ]ܵ"vz'Y"@ V-|y@5{Py*@=Mˇ]G%Uv 5t»m̏$KǭeӂevZ U4%G^5YR;yOŗf ,>kcD yI+O4D reQ,xlν!b3)+Wqo Pobil8 -%rXm|KXP'z+7Nl?mAל)1Wt3[}p.P0K/+jv ӇDu\"Id^jO}.k"U=E?S^Q_L#)NR X.+YlX"bDwK2&-Աǔ}">!heHCx>Ɯ];GNPŠ>Rۊ*}3;V)tRY;=ܾð26xƒҏ2&쐼+NŹW_g^A{opνvns/ێo繗;Ns/oeDqɭ!`pCTfݕUm Qw)*Bxb.|E!^X&ĻA|b C[Wk> և);;B$C$A$*+IqAp=!#S*DDDBqd)y_XJ9rIe!J .@qD7 RAiF,DCyܟlс(; !( (ccj{1f C; vBbħA7]  B4)mm& JS ^(!@ ;%!#/!@ӄ_TFLtʂEv1 涤яC̀ ,"ëA,'v3awAy>1 b,sL 6ѸeY eא;6N-!ށXb]˳#}EwgB;3D'_G^NG@@q15c ]h#lhcƴGІ aFq9T\ *UgG1CPi8TCMFNIu)]N.]ӮrrZ[:D⟚qbq;OrHv:ĚՄ>eץ8Bġ9mNG  hp:F$*RW,RW,RW,J$R{J$R'INHTHTKQ(9 D N-: H }ʮKqh1+]NWC_qbZ`uթ N]`u N4:uթ N]`ur ՉV5E:Ss:ښQ3Ȯ3#Όt8+銡jv N[p"&"t).Ў(D"Zh.PGz5h\hbP cP1W՞EKEKEK>GC'z.N]λ8Ի8wq:tޥm]λ8wq:Be'z.N]λ̡šq8g8g8p:t>z9;с(894rhPl-q-q-!]Q"ukH"6t϶ٖy?SrJ<7^iC~ϕ0 ύ='0&WcJ}=A22#/}5m͌g3jVY=0clW3xsmX-igO3?2oƟ.٥|x6+O'ßF=V<1aW4lշ=._g<[F51ͬ/k*^|鶢e⑙}W}f|dh[EmFx4kK_X 1f 澿62_-~yE'@K@T PP$h4k h*޾7qWoR:c܉Xнr%b 6_߳ATϧy][ч'1ό|yXKE?YfvҲnkK}c!;v}Ӎ[b˴m$A&1]YEmߴ={|44f۲oӃvX~:dٺpJ~Ŝd5xa7(4R&&%xH}%\(} wAc>stjB/U̻S)/|htSWd0FSvcƃӶDB"2bڏEw>U{9UՏo?\4 et}|Kx ~lDnG=2,+t?o$j)y%,szNU]K읈={Yǿ~E —/t_C4Ԑ2T> }Ŵc 7`=<\}v#X1y%bU|"=*boiΏ͡ӝXKelףwm#꼳*b gT5+W꧿Qb#8-]Du, 6{$+3wE>{8]6eº_uSw9@LX8%ǰ巯=%}' QL #}d`jLLG0[1Ȟɍӟ<}>|}7oN,1?C2[Y6RH`5,=5-MZnyi~ޫͪa'5\'~?KT봙oO 7?-T7?&f';^y_+?f'̑V%ٟ0?vbChl~ye'L|n?awn sOO}n?|# uC'۟PUןǑ5Cem3V~+{V}rH$pCG > Pb xb0{bC :>GI:B2MV_'M!Нs[[y.^P赆^26C۳`+C-|mѣ/_7DRWfo>@[w^5wk!k{_uг}I"DDryE챑0zQ~}٥Q'}C.c;4P /[`Խ}Q|w@d/h>fٸԉ\EڟmLt(J9| c3ֻ9:VۛnȏE$ԱvVۉ`EwǢ;c#[my,<p־&n*E7jqgl=333ynGK{=q:PuġC#NSG8TqQp޲ZxTxTxTx5QQQ5Gk1^&"[pT j4؉؉؉sDDDM;vQ$IԴ:0ICF" e' e' e' IZ!Y$I2d]5.j\vErոq5%xĥ'\z>Pd27^qrf y$ Ìrh{^EtlƳof]>FɁ l1 rbUL?F?vr?;QjL%VqJVq8U-q;~F:І0$U}9ŕx U{54g6?[8 7 sHot  ַRb`VIpN^Z -V+*ʜoI->gޅaD`FeOſkVX=޲X׽V@B]H z&6Q>-?sPVN44ҺcjʜCdgsbDf M_Gviz/data/twoGroups.rda0000644000175400017540000000303713175714140016137 0ustar00biocbuildbiocbuildV LWF)*J_EDeʼn|@CAԂxe XAnT _9#{ } 3<睲~gKgbEV?" ̦JWw]`@Ezr޸W 1 -[? T\}cKMT$TO-{E2haNc'3V1I7xN 7^~l e) #z+J .3.!uc!Ac(b! U[.+ 앷w<|WG=b"3`]dUW j֗P/XkПՈ/5oBP X[w~['m |rujeпBvcBzܧ'yxAЉM3-AOZw#Yڞ}ّx>+4_HMz=3=1γ6S$M=\C8-K\$ؽ!{Rg,2yo.@oz;uZY[' 3a1e4ط+xlnF:@jV?j~oˆ Gviz/data/ucscItems.rda0000644000175400017540000077271513175714140016105 0ustar00biocbuildbiocbuildV *HwKA$TJi TBE}t5Lk |?>/uk]b>,d>>>|⥉gx'O1qAi7~f*a6=:E~{ hӭ)}n~EI ukӗCvz_ztɻERuף_=~mڷY5[WtO &zv.~n~Z^&lmeO\ׄ}cw(ohj[dž`|÷ 0S)?~PIIdsr(6%ļ}kӧܾ_'UWˋrs~~js`L8eO#%`}Iuۯ|K eb I^ǯ^`^5D3gHH6:]?yq&H_Gw}?n׹Ox1Kuѳ,HbRE8,JУMwukKЫM/$ڱOڍ9.?8i}zܭ[n/JFORy_T|mJM}}VYצzf,,HH=M~~}z׹GGōc:W:<_l~D=7ZȪЊuة˿A¾=un"[1s"q{!P\lYa7nUgxUB)]nXCѵ$u+ Ļo!ou׍iF7ߣ}~<J?m3gЫM?QgYMivkӫؽs"1]sN}Q╄1֔B(Zɫu۫[ T5tzsF^^O; O Wј˳IѮg~}DW=^PG[4}L既4y.ǦyAmfu%A=-x;8ɕFQOvs K)]secڡCӤ1=_#O&lƸmSUkD'5ԎG/gs]3{Ҏ} ΏJTHE)uծ_!׾ghT>u}Lg]ʽϓ^7w7cLS{ _vK=_׻ދWע%14dN2DKf}g֧2Ru|9 F<:ޮMkC'Lf}f5uF-#jU>o㟱Sz#etbƜ*=#t= Gm|DžPC/_, EG~r>1x7W-l+blR3yG5_K>dg}[k=^g[FuQ:eU06lfO 7n(wؼ#-3OmRPع}ڶ3 FnjYj3ϪgYգ!^6:i}ƶĩF5q Z>1X எOL$g'Fa0E uV,BK??I>HB"i=#@}rU/#;riZ6Nn;{V$ _H~+[MゔO4/̫+)-,}~a)\{)ҹ1./BYFUigFZ, 4yNyY_Y,ϿL.H]#;ts:"20}Emz VK_>x[͟+K0Q -Ϭ+D̉Y.Z=!dwk.N?$ 㚷W\.%ۻOi~,n<3yx6f^̟K;ϿN. >/L\d㌪6^]'b.-c)0|]_ y|y],Pט<zՌ͘:LfmcJ݌1sxbƬfT5ij a~{=aks'_q/qSV(k o gY fefCA5x1c^3y_͘v?I}o`ɧ ejTyCjիWQG&UmU+W/.U*WVZ%K-QD2ūiK/[[JWqSP$hӿ_Oҳϟ|m ܞ$|Ow6=|p왼$RLضۓO?8qsy|1|{DާdH@E)|7/RY=w4Dk'y?8Avx[8#fd?~o 6ydz~O&iۦ3߸x@?2p^ɟ}7 hyK̐ev<6pO =R=R}?kD=NhXi^]D;hs >xTOLg4kS0y4v]W~P~}#Sd%o1?(5j>5nO}א_eK; g[>ؿO?%1_n7߳.,eZkfkAmh}Χ*n:unRbUNcufVI~2wW4 s${lGdog~zd4µ R|Z]^V㳼J>0ðo~VhUˏ'lkmژ5xb|{37Bg~Yr+J`?y }b}Ej?nTpwV8~;).h}bT^+ {niڎ2j= N4_}舶]|5n|>NW95]=b't_ [Q?UsTέo^Y0%:=jҌGW7.qs)R:] NㆼSxv8cŘ"W '^aonnիނkeݪzlcͅ/~4v>\zd=%!"荽f5/h-%v}(SZA{]Е]uʺn? S}-rܹ D]\a7 ܬЩR$_Fx M)84vPsZ_CFpź}ıY'Y'.z^N㑁޵tX2Aj=.,,iYoF:\:6z_ݺDn]h~BW܌?y>*w$RO]$Ή3pu>-|5a]<|G_@? O1zymj+oʺVAEɋR r["bWG%/ZaJ<zZpdUs Q8> =e/y<6vDoBS/Ko}[CDF+vB>\-+z!u#T'Ov@ xO$^Ǚ k!8e/`}NN+n<(zrAh=9u/^|>꾀u<0[CK;sxS|Olb/is߲:qƾwlпO֫>Zjʁ+-Vt[T^şСh=u<)=@M'zk1j=]4_t>r}Fqn%zNr^}~GA^DO{t]s/}'!,M!i1yOi<822<<~D}'yw(x=}?c HzdGD~񭵲i:/ FOsߩ{p~=Vc_ޛcLjK>5dO \ojju7گn'Q!i+c]iwp_5t8Vy4a #C?M0kkuW *Z79۲|NO4"爧yo#M-C_wAKǡo՘[W5=oj%.|_߾fw~~]0tcmjseF:Zbf{J璀$Ǯf-9"pODnm'Wȏ^?dJZ>9zYC/^;]00{y Q3S4o!zsۤnwnnl<;ouE}֞&?7;p .'GC~/jn݄D??~ade7BO7z:k }tcS@U?r _5}y/CG>ܾY?v9%|r~h'E#]3@ t;;If>^9MYayѝov'qC_&U Nn|kxEN{_U ^:tڻˎ,y|'kعYk-yX uJx)jȾp27S/D^tuj|GJCrerC^o׆ĩG(y:dUy,&qe׬I>Eo~/G'rQ'kW887qȅ*K.&/8?yO.|xB_%M˺Ҟs؁u9"/џ8 _):qL~T]+>kGK 'H5yXGoKߘ1ɲ,7ZoyGC幑sy'řMnֹ/veٞ/e酥ؘ9P-rgvPdKE.sa\S\q$_8/JXC;[<6W# opc~ĵ,]bGm7凸]7R3P*ԭ߫:/xk<{9o775_(:u%K_!:Ks߿8f9;>.}B}˞Pyiy^i7ŵ?4xRu<6Sǚuߎ-on]f8 y./'GR7wË^c5-܈bjU Ϝ/+3 eyQt+KXkYgnw<቏B^lj"cENwZ߽MKײ{ԟvۗn}֥AϺpL;ﷱ_⹽3S3uy,s=}7u +礜|gW5-Cjbo >>ʐkZYÓ}|Kۮ?2?x  (a+N׶E5BO5KܘP;훋zO K}?{'m{\mu*m[;D?xj/owg>BG_8]]gcOht틿}=gf[#K{)>Eˡ\%_~Cikml?uc;d=-s{ؗtN׾?dGxTOQÊakTzeŭ=Wu`.~hpr&t7s;(eFu-ziWoSh}_6~jD~lYm:UH<bewrHܸ_G$ƎP_B}=b}N-965C?ek ڽmwg9hȫ >@cN@ ˇ }f::o";g㳡+iJE|x`=qb#yoB vDp^NzrK^Vp_t:OJ~G=ݏT,ojsS:?:_< 'W ]+ցkpE>1rPƭ=7Aia/s[>Uy~jeڟ~j}}FpY(} xOs=7<*o+ӎr#8Oz~K-ퟖhKE>-f99>Zt֮Rܱ:(L;䵮zuWW?.u cz`;-4}}}݆f;?`W_x{nj+*~=t/|sy';BW]CGgqUE=ы89v#zCߓuv1g=x..x062. gz>7o}]S}Ӻ?b1TsNċ% _zHܿʜC$G"򜺬5=OtƑǧc[^~qǹ\ߟrgY=;f4yJk=_-?;rF>/uԙ:CŏuG^Q~a7_}e2s'K(|U}z;>>CUف7:J^q#\;ѣ±CۿY'_t ]&GG>H]eq>*;N+ʿ2}N=\밗:<_M9;O>5zȊe[`]K]}n]YYwaqYz0ކ>ء"./twJqOz i9Q_ .=|Żsfz]=AZ~p߁-F`;m;†J&l)tqgC&nuwg}%au~[ TfG|:o;ǻL\>Ps挚˨w u.U%'濻_}J,_|3GJ>\c{L/e4qLUz27=Ϥfd2"ɰ7XBˡxs#0`Sv\uO.'*iؕȃ^b{Gp^sdžkGa'xX:vP7t]F֜M7v~..^G~}YO^unb\JNboGMwo/)Џc|9WaXq[>%g_:ڗ~5olc=q<=] bg9WyXUƹķkވ-p_][4y:zᚿcu1|z#_\Wq]׸r?0?D.XS,}ψc/nq+cϜyҾd  [1{yw+Q_vssF {̭nRrǎmgM3RunN%Bl'kM!l-pO߮wq?Y7]ٳG{<7/y.#|>˟9z^Ԇ_Vkh9Z,^ǎ/}Xq@6_-KL!rbCϓSo,tqXη9_l5):,zodì1[{8$u,;$6af}J9rτ' >cu~|_)xZ<ϡ%je.7ʝ73bck|4S#> 8{-ophߏxpOTąܻ#C\po>e=~vUp͋KG\w|ofyy{X qO?0!7fcC/|#y93J+}& xxe|E>gIp#Kwn7vFOyYv 3).YS7?KU!^ݨVB.Zs/0v#U'y?(z?C>.C7 FCNN\;vnC/fxIGwJ~?zЇ>y(y>K/tI"σ?7e~_dž.#7x.0.O~Ms't}>0aֵ%ȶ6Q9֏x7]YKOsm_KP7t]t~Ůڞ!3}! ǂW8⛸U7rGzWW9ĺUua|?1uNpO|O*yNssfnC{j$'@~cB]1~BGVg:>e?d=}}%ht`.kQ=?~qw?gS<-meo(.#;:xj eϺg u {Qb7_\M/Dx >!Uyr}g}QƟ?jS׺ZɦO?5W~Yߎ"/Vt͵wX\}zi.OJ'nynhI}U6_{'_WNɓ?>f/7y-b Q+ꍅI&z{*Xe/lvoȋ^y=6 ޞ w_<,a{yI{_ˊuτ K/{)s;]h$tُ^%U) Jg?)(Of5`Jp'(5~}!eߞg(h 7mwwGMEQǔ\gC1s:X󇟒Cs'::xuOō=Mq=^~-3Eу_5~k~WZ\Oz"u<:us]Gtt?a/惞!]&wq#?>W'>/ }Uz>:]Ɲ/|<Ͳ R׌Ia;K1([H^Q}=B_>ZOc$Nx̡g/qJCD%*sqb1y iv6yQA?L9W¿|&E0i[i橼"uIX':I/tG˕^9]OP_pH?>?U\zPz؁ 7A+ʺz%#1~N:NU~H!O8y}.y㻩*'s#ypUGz3_Tw;u*9W'œxb=t9W$W"黷[?`_]#|vÑ9'iE/9G kURy@򔲣A?sEǡS w_П3Β_fqO5Je$M_3s]˽~nAg#yHL|O&} Ce}YO1d˽> r/ MIOb=Mguܫ<|fuM?нw#jϛ}$9E7vyH?>qOC딺tC9_M_uRM8bw1~;cw:>8'uKbs=N?b'^ދ?:,uVu:|ZK'됓|ϡ>Fn=g?|nuxz|>s;' _9]s(*ܦ x 8ßw587 }ؓ>Ϣ?tU|#']q+x>}yO}6g^S"Ȼ|C`.T]+ꧪoBy%K }.y _8}CA?E^TntuWuП?H</&.KS;g7qQk)v{Z}`_iyѦwfZ|$մɬ_<ʓ_Hj;ۂy^oh2#~T=n޾X`}ٻ}z9u?atuh{7 ?+-9.[kYYzd_`U+]>?RC֣O9^YјVO3;Gb7h{|{ 6{Al]h5>9~A~k;#W-!t/|oZ=ndAB歿^9Pmzdn\P#/#x~Uȯmk/ ?ug z?:P}ĸS,޺X|G,ysl43fXֹW;vXZ,+4% ̏\m9S-]cUR'vBė}ougX\oKOu:b7֩?4m(ϩ7Ľw}VJť 3tjtVDC?{78@%CZzC'lg^ 3FnmȠn9:ɈC?ڞnw_B>J}:>?kq~$_A<+9x@$MYRم"|#Iټ:~?v~xkWѧ?ߌ7v1I|\ǞslwjQoR$/syܬ3F]ma# >{>C>''Q:|ww80;fZ!}.#Λ:#<~Aџs>smT[۷/Ӱ'ju|؋| QG?>y~{jܫ(ɧ-\&*y]O=@o+uQL9Rׅy,89X!0^u/>cmx~\!n s5rI?}y40 k|@:lId8n0}>Y{݇{4BG˥~ ǒon3H~o@_Ut'}yZSq |E7_ܲt\3\K#CpM{soݾޫ%DNΏT]{C_/~#_|*1br?%1W'!t>Wdϡ+,㽺GZʻ j>z1)è:+txcd?Ì|=k t_+[sm(ٽbo!c<֓\E{5"0gD~_ܫW`_~}|ޢ}|Gp(: SĞ;OOO isΑ':1*{ ?kƎ鯕O냩G >]iz7~񣮿碮I^s%y Qkp zW}q㜣[L߃G7:wmY%[iII'O s y Z򗾎{ ys ݩ~\}Ͼ[)~i]v2F>,ɘY͜"ف s5%@\N;~Pt部}=ݘ<=/ޝuohف~,ݝjG.Rm3z˜mwٵ7yn^X7V<еn;8*u?@O [_kهvkoY\2>qC=>@%^*=3c$>>nm\~b' ^}~@_?GȽ殲}G]Us} r;]jvE&;Hb= Eܹ7 ?~̭#鋶q-v Z쯔 nO~9`nw3JO1 woYfqVUbO{į'Oi%ugD)Rl$y ?MpߴbG^i/s꽌a&}% ˬgy/~Q'"?{Ѓ}v!ojH>'.< 밇Ec~r$>C8oƛ3N毣*ը\#~f$`oȏ |P?|r=~D]+®5l74ΟQ-47IgF#uOxq:?=fb_pb~.#uug=ɗwz;cCZoS!c藹}mn<ŝZ<Gu hQG=丛m/^ھ&?:ѓk2qCe~X-~2W}B'$Oj{ӟzcۑدSp3O# #g'?8;'gE :oVN/`yɳE/ OOO9{Si!Ӭ:&y[/$ߚ8QCO&|I!t/q]IC}g } yO>_/nպA/[8y;q=yoGJӵ;֩&kft҄s2;?K~JznkyTz !`@{‹9o֊a X[{)zݐf.>:\8{f佽Ñ+p|ى?Xۊw7}֫>=MK`h˳k%f^yȇ\7^ݤf-\8rmUNcp_XWD.0A_^VdYL;"s^x﯐ubO>5bV-ߕ@ol_1Y>ev/aB/bn͜ȋ nIyG#?Qs>}Ok'}lr]}X0w-L(r_D^$K7L魯;Y* 45{::v<9ψ|<Ǿ:a3NuㆼkQJOw^BGťSM /;7v1ŏ|C|(_~.vC^͟uۑ?z\M~v/Ş*cQ][.9յ 3Ee+푫TD3e^[G'@}~K|S__WpzY"^q3_"8Ž!*I[F'9^!ϑx%Ve;|h=OAaT`R]Cȁ\ϯ'QC Nܢ܎z~wеVu3ȁ/~7RG~G~ ;+^">QIޥ1z||R}UyT$qM us'8^—o:Ȉ?w^o?n=za͟!8szCG&NG$T:ÈWW?py|3k:~̮5l'AGO79yHCprQu['Or%n9 >~{)yAg{tBa[1.9+b_xt}*x=q~iouW7v>y{҇ponSA;58?pnދs`_ɿ)n1zbT#?2O E?者DWG*/qRs+O](yx'*_J>`?#ϱ@o}ȣk\oD_@ޡ{Ry,%9}8_CVNm\FEzi#ʓ\Ƈ!r?:f[tco[BG%J{l|WJ^"Y/\8s6mK2^RQmxfý*C&7zξ3Kl_;~aqYEpà}Gd;wgp(׬sWy{ȺSFVp#f >W[wl!~4xoDZo]F=C+\Y6y <<9̃?ų/enB.ދ9?qr㛟ƥ=y5\ vc{=~C귻4݋2LB+|{?Y+eN^/|h1Ut"?tc'y-oF>C!h. ?KGPT~["eUxE#O\ۗz Fy~ LM |ŸEszQy9r+$F?9_zٖ\Cݗ<s-{!7}/8nRo3x~C;{!?[Kf򀬇u|gZ?c1v뛴d=_{O7뜼qgȗ \ڞQ^?,N!n'=IJ.= Ѓ>DG>/?}~>gb;!RO?_\ΑāQ~P';yTG9sWpsI1}#tQzFRW;d2O_W Cc{N❹HFu*^tr?K#/\iٓg\sĭG:*9N3y_ЋL6+@S>gW lp<:4#87gJuP˥!/u>;E+\*qqiܐ4U?&}F~!k/:r_E?G/x#K'guʎy|Z_s uH_~yu 8}{Xz=pSb']ɛ9F3m_egG=uMmo}No~B[̷' b =鿍|3?Y'G9>|@\_#~~| ]O}U]OGt$|0ǽ,[RNΥ:ЃPy^c+^߇x0:kߙ?yoo>4Y^>2t/m]:MC߫2y=uo.7Γr~F䃏ĵٯKv:'~ E_r]- pړ*bPYN~{voozǫ5m^^q/V}cV,$huYWclT%ssdbW}˛4_uA"sO7wlI[F~KߩnxL< UAg9KM*H3=:w_9bOB^޴aFQ읊~WE?Oy?x3vdn4kj.N?$}Io;iϜx 싉fu3vd 6cG}y3%iD^>}QEeY'{{[u5+ߍVpwV NK |o~7aS*Ԁ=#+Ut^w($V84 qz!gak'+"|>a1ף9'*;j|/SC.E؟}R˥qZ|zܧ\I7yu(z~S눏ks W7|M􌬸j#Gy{d};Q OUr@~3YϨx:'gnk?NG#r!gZ_-{W=bgz\K%ٹZǷEo ޙ"o9K?wõ~qk!?ߴI#K&}Cمjr%M«Z:ccK~'p>o66A:w}z!@Ns{D/v$Bnpkph'̺9}q=iK+ggqaXE} hwy_qB#?'W{[[:9NoMzm~&8{j=tV'f yKo;bȓ*.~HB}WQqGZ.#@;E>&3tyq_>wp"'~Am'4~K䫸+ޣ7 T ]ꢼG.}^qQ'u߅a3=xY5~M߷kC]U's3J) U{Zb'yI-E8>9޺?ָux7v&.7{X:!o8jxf?}9O#n{9/h܃?_܋AE\I߫ι9bGfI^4s8X_鸏&~M)bGa5s9ه}yXG)\Z7sޢ_:Ϫ{u'O~ZSpC>a"zc$;]c|?-ߠVeK|Z:Lk\jǚ[稡Y7I ї,}XOu꼭{w|˩?|d? %;&.L??}uom9|Mie(xy~n/7+zixsԱj]jBoV5~w[EZ^7{?]ۄD=GR׮fEc΃7lYds힫ti+2b'h۾%~Aߊ}]Čwrc_7v_?gmh-kGw;* }2F>o Fz#^`쫵k&zo4'?PV Įa[}ddw:] Y#gXF{o-5_]O1ea1}jD!A/zuVw9Fq'Zَ"{/W?V_ˍ<'i{B|}k%`gE'Z v"Q?{Bnз[v;ĝVмC۶b_(*\'$7MaܒW =7kM93\-F?9|:u.#~' z.~q)҄;%b]x|ngoīK!OġK>/{ί+xS#O+b ~s7?MiUWſ[M [{|LC|Gy|=pP,yMl#'}+v}'q=|-yumK+ނOy9s1#'ǾE\O[T]-{̽:'o\g.}84:/ C_Zz{ݛ~Zޓ8?:!q?*mϼ{/o~WI/Ͷeoof\ϙ x3YϾWFz[O O7/؅s {K !R>lÂ+]T_ ?awpK] |9u{ @PqL"M}yKC;I{ꂮo^3q.8P}}7~z+5%}p9FÈ](֦֞}:_= >}/ἡ9@q>"?pE<'ؓ>C>oPzȈ{3ʮ"uLr#. <9#xG_/Gbu~ݜ]-'@~s:{"Gȧ=}̱V:0'@G}d}>Ş\$}~ǎ*7M2_18=\#B_7]FWǾy\WyAbnW}quÌ7VG}%=y~NūLOc_cgoÞZN}}8{H7O1?_o_2z?} ~zcCIQ8N1 zs0OEsӼpgK<>q> ?>} N\zgHvs!pUCJ>5`y6ϴ-˟~X+铟k/gnEg_qI?XycZ.w"Ygq2B_/{H]g]>޳bK9y=I("]3 քEU^%r@Gw>ڑBŲI }qu4O+td;-)|TuvϿ6+;ٍ3'N3c}ا ݸlWkE"+>%ے$2JYOd{(ȁ =^IC'V wʶmFv{O8)mu2 C>~ *fX{Ws{^/B)}#z3a8{ c`oN!]ZCcuI^e=\=!| =oȏ~A?o>:{b/AaˇƯ&#~豏<^:e<6|w!,rF/?r8u=܅#aE.\"sa~?rع駻# \j{!s.no#߈=McoG0}l]l{}CK^~<{L}\!0—x@?pyyr䉶X {IU|>=0B3:yܺ7\jѓBN:[NK^8Ş'w+~ĕrYꪊ[&oOX\[f-s[a,)84$$o_UV8~C~xy"+8'uBC?>z0I3qG!x&7:N< ^A5t'ٶw~Z^Wa/[Rq#9,{O5ї8) !uc~%U#BĮ~#~#U_#v@U NI݇!xF~'>>7R'-\Ľv.AYοf;#9g^>}>?s貟EOg?/Qb.&z%ۥ>!Ηb7NYE-}1qr*GPîqԹYC|=z}YgKQ _쨋^}!'vc[%^n5ySۙ741-79y[E8R֧Ց-:E$N#1 ?8 v_\փ{N|+x'&{YWt\ۏ{uؗuN$+sp!z38|b$c~_6GE87}/#8DzZOeG8P{jӜy"M,pE~ ; uNCi\iz伤1/@cz2?d|m#<?SOԟл{e~rN]W/q}L_ud u/㍒u\|M5x{gĤZ-r\+>}h_J8ֺYn󹔕3ڻhs7/ |jܱ}}?W0}yT*Zۖ=Q8Y.=ɫú^[//PU+٩eb0僭]OVb1tx/xec =_9 Z;yponn}7>UB]GƐQWUF{[ѭ^O}+˞6+1"ߎxOȧ ]OC/Z]M玶B+Oְs3`Իg#̟ȦLLOBWSu;&x.@alZe+tD.@/7~NR͙? .cl͛oOao?~ucD?G߱<&ubŘ"W=nKQɅER? ^z托%'fВ{r'E~G[OsC_Fs؛g>ha%ꑾGK|+9{N:IM' |-wZ7p/t?K ?gC?G޽[:~1eWު~-8vb?ucg7s Zn]\˅yU< ~MzFC<|>Z.Iߠ p ke?q*yzKySq'vSq$}=VaiDž3]ǨǬ[5>:^\FOk L6I.>ӷS܏`{mS]=ZΓ|#ggg>s?M>o;i7?_Y#'1'snC_3C%vUi},S;נC~>ܿW) X{!w/vT7 ϜcGС.ҷU?$+>S8չZM`%;3瞅9'N]~އ{&!~?Po:gKޒ]Esybw7{Qݧ<~Ŀ' sM?C.(xPvȲI[ZW8#/qq{iU~c7\Εwt^㞂{D \rςؒş}V58>C 3r|9ר?Ŀ{c~?Թ\梇>ߩoJSoN>F'j[ߟqWu=~ZOG>0s\7ϝtbnqn@/[c:^фsm/]iߖ:֮'ZAvoyoEd}[NIL}@l.{Q3k-=׭7?nn⯱>쯓69{!wy>OK7ޏ龂 ^i|Kds!B/`N{$댞Ѩ^Hd_Ȋo_^׾/.fTڋǥ>痂yeKʥ/~3xmzq=s`[a9@ny.5rٻ37ފ[!rzރ M|ykZf8üvA"|+ ]F m_\膆shG:Q9u7l|+B/`˲@ڿOˁ=+Gzv2!9~E;!W={a+'ycِ_)v +v C?XM=y Dž:V݄5Bd.o/Kѫ{o93L|_ƒ_l#za]=3g= -I_u1'E;k&]p/>n 7sCK@?}01T/tS# ['_K.|#)Y?%[dMO~:v_C>u~ʶI<}?^ vXxIE\-g:Nub'W9yNc;5hKSoμ>_٧??"7#v49#~RV\_葧LxPuNF=t"_3&)8~R!t?g;GG|,smCI39I[}L>B\Gaw5^%\:lދ|^grH)Txț:/I}3K:#y~u`tV;,qsO=AWVJ^}> uz{W-[n[I`)L'q]8O_UsnRAxt sYؑ<Mgn׭_=狿#5xKCU)3 'ωwqA\fG*W=>KuWI:SE2_𗼊 _9rC~|}+)]L?/B_,zߕ< }g4vxN~G9*/-[xO_/os}_Ud=瞆{f8k?9cD~9[O>1{-I7V'纾[WG>|3p!ϑG:pKbzB<{-JQ!ge?G|#7s.\ ?x'#yϹ#V:fިǜ$SYG>OPy\WROɫFw(=0zz}Bw[I~{0`{Up?GS/Ǫ_<v>..X-ϺUt>R&~/c'ɠ#CWp yyP#>_P[`?L;)%v4sy#~Vݯ;ۡ^!]C#xQz|J = t\~)'>h9TRyK#?/OWVy}G9>gП:) ]}~"aꙎ -'_{hm/,b~#+Crṵ`&~+c~%7[!'9qƦ/1Z6_21LO@܋z}p_ޚʶCgf/+x[?<ذVO[\=zk[GDUUOs|e=v75Ɋu8LD92W1"ecA* ?ſ M9z?Ok?룪 |}ʳnj6gDC Ž4)hYwjn_y?ȇS^>}O[pރC ?x8C.ƹk|_۽[ORc:?:/ˢrzKk_itǁC-sȊmyšェgG|~W*9q[g.N+-|FW#9GW%=%^ jkY/q`Q< {p$@[ᎯmVW>Z/cpru<=w:zWsq}陑Xdܴȭo*O)yN M0OnuݡyFTt̬ Nّ/#_%agSta}G _&q ?7gFkD <ȺGyO_u$Αw^}{kB=1Wq%ד`ܚ^=L@nV/4#?K2':I=4>Xk ^ CTyRӡ#v69{y/]r*@ y>}~8u;π]M?Rwψ "t?w;}_2gboo{+ݿ!?t9}P￞ו]'<i{sУ6E8 |8ucsƥr9G;:' }B$O8'ėovp}9>4ENF7Ԍ2roK'pB}jIF/]sھm%eDI_/ _7kǜ9u }.t3 %.4DVz%7|΃>U=3tu^y?wp==#"|n=uEW'^L(o#wqD=`=oȅaO~ " xH~/c~FNꚚH]ȍ}t,ո#Ot{/yNѓNyG/%EL GCKPGu_\$_#_+ǹӿ$4z>X s!{y=sS9=8O k^3vw'e<=8ggS"7ƚ5j2[,OiYѾ|:ȔLhC 'z֑]{o9ܱavК-*~03s ?pXz /N c~^"et7VOn?zN1{|U81;T+:/_%{1~3s+Ⱥ3KK^'CW?Xo ~&?eܩA>9#}CG ~Uxb֋x5=gNU=y=i"80ukИ.q< /u GQLD.#<7q&r|+yBO< ӸoվT#NuKŭCO-"hV>"}qy;+V̯'QkQZ'⯷+>BRu}yO=p[S#S$ga=3c]ŧSO7vi YOB0Usnc]a~}Dl԰n>P 9}'"?׼e>ɫ>G9@KKc]/K-2'i;oŞ ;|&r}VocTX_~K"yȁr`g kҏoq>y=Wŵ7WaK#ϫs wB[1z"u_K_'ȧN䛇M]#.{zN]'A ضTћ:[T܍#85Wq+=kx9@/ |$ۧfO =}ZGS)WqD& t|'sA\|_{:uWʎbޫQIveI}~~:^|H\:Jr{+_~AcүOu?)t>9/ .7~ћ:_'] 2yZݎQ?AW W'}$~xGEz:oȃן_h+n}yH}Π5cwc?|Tvq7_"|y 4[emլ7k[u2s2w{;paY)]}ƚ3KVfO}-іuwzk}K.]Hyօ2v?}B{~'vkm{ߕWLS+W RǏEZs|3F˿6bxAyFaꓥԭQo-9԰}K(1r;pjX翕g.1{3/:Fo;㣩_ܓiKzZ¾υG&_T}}=$t෧ZKz/?zuH+ K3O?r?C]ſ\箑ă[ZnLy{O,~$|r9kZI`ovgl-K+?Cp@eP!&ǃ3#@zpa^/,xicF~5Qw59_~ē?UOb&v&x~[:nїu#?+_M;W;:7RGQĀZx}C63Ne.o]b%_Zvi}/vt]f=]g,Ξu5[>zh>ur:U {o:W6rx?S#~"~=g֋_a>C/[Z֟͞OX ?&s?"_bǐ=_Ć//rŮ0W_'t4z>tB_cSw5}z̵ujM+xN}c>:"C'-W>Og!cK_gl91ckzOyv=;`Q?=Kgǣ Wq(v}uR}/_Oh%k];'uē ؏J]WOyѝoʜ>Iዾ+s*QeVRR|ysoʘI< sݿENmdУ;[gyu<'C>%yUQ~?~=Pyι{p~!<{]m'COȼzӥRmoCp'r3~o.Z7Fˇ\1nS O2ǿZNvb~*/$h;#t3ri:z=|"7u/y񁜜j>4s0_׸_y~@딟d3bWwjWozsy8Dp)<ѷ1rC18\uJ?ý 8:٧^-Z':,bd2xj3sG>~Qvtȉ:ϯ'vmF־K%_ٷs݊H[~ޕ:υM.qg}Dav9QF.s}}Y}"K>i\mZWFzz8}~UJmeaOp_2g5=os~6^J.5N9r4Ț^ Ǟ\n]6 Cvd)ku͛L{RX Am$[9'pA=P**ty.{iF/ыqa#}ɾi_-Pg?cYߍCVNkCе ^9_ci쁿z978Oj!ߝ_ĖB[h?;{c=v=AyWuW[UJY}/EVd9aN\ƒ49>7yH\?yIo䅮r`NgKeX;"O"/^/k`x?1[􃾛?o|—vNgLe"|DUBn9-o#so [[L"yhx2צ9.t\x|Otž>ԍ?^+me/;9G=yZ_}5>U\ .:yT|:r 7iʏo.Y3~a%y@|PXGTyY>ȧ2G-|eޡ{ ΨC緿V<}':z"?NzDaš^g:(ݎ~ο3q_yV%Yo(ϡ?MB>9 Zm.J}C>.`Zwu)߾dG+?3,.롣+/ =j>OC>J.zi;GJ'x n4n~}Nj7ዼ:M{?[ȩ1GG}T}02k+h=ZM7[gaؓxC/wr)x͜\pFoj仯Hag=8 'QG{|梟Nęh={;Eʏ\Cc_`v*{uaE=DO Jo>s|jl/^bG-Orܗ3Dn y' 9(2Wty8p_=}ֵ th|L`]4gguU%~i{RyOܯz|ƥyvH Tּ|dϷCyc7˕iG Y[n!UY+$j׈XI"}1ԋBnٗYޯE*Fk5aX%ӦB +l7~HupQ"KW8&Dm˱^_j}?cWXwy}{+bEzr<"yqj ['gy-ځ J0"g 댽؏ȭc_˾Rxۅy>߶SN>uãY^R֧?L:^t_W+bFON/K2 >'3u7iƣO\~H@-~4?ǝo=hGobw }C̍90u=giiȻs+ =y"鳞8v59nO=kt盅. ?z/8#> '#^ko/ioe|#8$;#tOw*fK\Cy3zp>ǞF?CC俹{af{VN^<:~>&#$@_+y$>S }M>Qž[~ڞs_ԫ|,KمGۑsCϕE.DˍOFn;8СQɿ~Nȯ{Gy}(v@WyGWO~N$|SE(-n }1v>OK_ .2BOEϥ8-<Ʈ7#q:_:+v+a3 Ẕ=t^g$?ոܖ(G:p\q⑸gg֦a'u@:~¿sb;ċ꧄Gu+*׃spuŽQ{yW>Kq*1vĮZ.l>s.Ļ껅x.SH[)~)YCxE?O^)j娃J2o/#798x׼)wg'.5}{&@ HT!#>)@_k&agKsu]oG9ҋĝ~@e? \+psOo$}|kƵ:s>y$qj#?9F+zɹ_*v޺.Q=OOw@C>?y*5<8Sq|abgeo'_~~稟7e?|zSzsXOSuJ:߈ُتVZ΋rCs>/a?}/GpaG~U~L8W_gyuP8xUD~%$NA_$v#NO,~9Sr4 ǹݬn8z@Cܢ Czƹ@G?m>wzM+}U#kCsQ ;'}Ԫ.Z([;u:{0|]9s/Szo}{ue-|!CxnX|/ss6.>~dٖԼD :n/mo+.S+7lnxr{#:_=MMl`OWa?#)jk={{O̯+޷H0GzIü _'ۤE.#r?Ɉȉ Q9[>XU?&l{;vd],5ƙ';b7}'O]0EvXϦ4MD{c|s#}q蓀/sL|Kx|#ݞ&>EeJ<p* };ಞUCn [_Q"uzlWk)GW9Y+btߑ~؍xch~G?m+lFxEF֡?v]@9+rBO8%~l1X'8dύw_b7C.M+yyMޖ|M\M >OUM G^#x5K.fK&SwL\7:o:_ɟnC_-1qnB攼z y.ۃv'r=t!c"7q'~WR=O'U<["J)oKS#mK_a֭sdž^,ChΟZ_߫7}M>50C>3[[m ӧy y_2kfGI/(=yΨ !S@^m1G='zRrK?ayU>Oo9$''qRGT>>ƞ|\G&N礜|\;YĕO!`WG; p7_^5 c?'1GuuR7ُ}qŜyAQco%V\䲣ے/?8=q3;j{-UscOǦ#7?y?z=?!?{O ߨ:#I!vF?շI~W$y[ѧ+?)Ďz@V3ߜ6rȥ}d|? ȇS[':wz~:9b_g'ćY{C:.9'Hz/\E:RWTS/oBs+q25w:7{\k|ԋE>dշ:L"~O7녯h;3NW+>\FUGc?Np|Յ؉OGV3]#4}<?_ -tjzHQrpuۨO䌍^\׫}Ÿ{X E^WϕE/˿k^=*w,8'xz!Slk.%zOHaW u|FQ߾UI}%s$g~>= Wt;oܻYW.>۹G]_yKLu;w5SpIkg:sv/};Wf×1qPGx-_'s/؛>ڜ;t_Iwߖ{yUcstu_js}>rC?<'?EWCnc垅>Zqs =s#\_z=@p }.%7GIYYy+I{;%}_};趽ݛ>.LG[tOp%uҊ>׽ od-_ xbF>%3~e L^}xρeC+[~{uoV>ct"U%%d<+ޭn1'y ?[Ǟzڗ}-{=~r|m]?kZG~n W3KXcYoˇ/evcfk]g N6uunO>h -cfFևWL+w[9F#]o]oQ?}e9ӝ?S}inKt!I ,MW!XggxaYGAȭ6WG#?\B?loH++ [_[8ոtcpe4t1i}jNP?cKV=:u>0;yCK%2>E+7W9TEF^ҁq%z#n)y=^<>JN-:Qw؇g. ˷ݾվ;+ )Z5s`~jIezC^= 뙓7S%x$n~7ЗŒwn!@NS](Kv>b++?p~ҐOVaVa)'犸#~Gd},tɻ:.x? }sp@_yAǹ/G߃߆M?(z>r [o-dZ+[vl~P,gsu}4 #'ʶ@('rQO %3G'K^.`g܌<»ۡٯ-Op)8ɫ"v\=I0"|eÛ8k7in ao+|­|8FDC_ep vBN} |9"?Ioȃnnчp!% "ȏ(ָDO^Q^З{u!~G_!wa7Ċfx^KˇKGn*:y' X%/X+vX=8o\:K/zOnM=?GzV#ϣ߄D/(U~s3WW'f/5; rvmɇ9zicgrӏ J߄zzVJfѫKFjEvV'CҦw|hﬗu[ywX/[Ϭ;O[MGY޹ekgKk1Z'ʲ>Ѣ'7!|Пf9tv^w L __|3Cn*DF{o p^!果`rC2nEnYg`f7X?9X|u"/ N~ghLTk֖) jiOd4Y}_bip%uJ|v19>xEpr/f ֵ2Y{C=xbdoeZN;O ENc;pz'LbWvTۅ%r|}_Ou\_ὡ++~"|-imN; 7qA!17vg0&q]Xg㘺M|~Gat4 m$jlo]d'񿮓& N䦟'vo@.ߢ?WPS}?ȁ44KCs(ϧiVhUY -9JKt=R/#|9ǠuZ_ P? ?!#|C~MuG>СN7yp- Y4:;wz|~߆.sRpn,_Zݍ w/Ys-]9S/n΃ҟa/M\=ͭ~::*^D^p`?c3~{!Ro9wSZB=|zop4mvGegsnI/빧C/@nֱ_=7'}_uniKAp4=-ƾ錂Xq﹟>9ߊS㍨c^HjFyk=;yvØ~g_}F7[Ҧ}2 zdVP?ZfZch֚T->_Jjψ>x:Y#e7/6}ͷ^Ӳ'/9k_omMٰ廟/;hﭕsToNAím޿2s󃾭6(r ~&7d_h2rȷ`k@ϧ#_ +$rGH^| ^繖߼/*և!]]1A{mQfyw~Z^8U;ܼtF{ۇZjm_?sՀ=9nWzO/0#'>)M@7+79ten q\oO JO/_-(ּ/=uy~FͮqgcáۺK'wٵrqƍGo>%zqo8%)q ]busX_9,87c0UGqWV ^Vח΋n8#b?;J>}^ظ!gVjU =ӺA6@,U筴z>Z::gt~^]9u2>;ky{|ֆM}ow̬, }s}]K ܡ *~zt˺) oY3U^Tuj,}fכfP_/Y.l[:s: 9s2w|>;l;wk#޳ŎظdB䜫wO_)=$7R &ȅ~̑t婗Z ^xnLvٲ>,in9*:V_> ޭ0^OOL=VWyZwcTcO \}.Cn?d_S)g`]O~>Lc3ZUQB& >Ryn 5Jw&s_$ujA;[g. oʈD~od~^Qb!D\ w2c1>{Nsi 8@)t3>S:̹^w(,]]}-|+sp̈%ns) >3x?~E=#sc?o؛k?<+9]$fN_F8E'W]K&t- |aF ?%D+\ '$/Կ \3nTI> n", _[!B'BA"õ[ɇ~RV;}Oj.v4Ƶt>K^[>d?? Y?j䓝oF_gc؁ϗ3n% |"8Jyώ'^Uޕss}fޗ^zB_%|҇Pt?&×Bϯ\K-#q=7o}_B_>?aP Y4;ǽkɋF/ڝ)-p_#t~ws6Gt۱)=GrޣuR3COq|^+8ȣ'd=xÿq?'>NW //5_[Yp_A~޼Ǻ=iMk+diVk߿1gf74t=ynI՜gF3f-ZPo;}#ko~gC^;5~oﶯ}OZA~31uɂ֟ǭe?1Džaնmˬ~0ޱ>iܓ;q/gMC)>gHsL6xUB%mۀwϋ3eSvIG}}}~tZF{cv}=E;^papf6.~'zj#tOP|bgv2`߷ ߐb.`ݑAzaȋ>ASh9eeRmpX[ iӣB_'Eg9#ts-Iߜ8A~ o7۠ė>CF 3+SS(jʙM{-aKm_ssN%oq$Ƽfiί `Kwy}%Isu 6Uko4f,֩ŝZZ9yAzOB%Ll` -ZV@>-46s;lF>:;J!Oi|RS܌^:Q}O7;7NƯOZ7<*yD%hDe^:6neOāu!~koWSoM~t}ޑ>zB~5y>q7t'ÍEgDƓ?7 TJ HJBRT)$IBRJ"9C%S)u<1g>΀~G~ُ=k{_:o/ܮ5w|ςo}ZR]-M 7f)_]CG;z|Mo>կ6}V~ia.^ӭ_iWmc]qwwVu>{αVz/=_İko1|Aǭ7\t\[NG^'okG2OXұqM?^wu `z_w}ȎQuqIZg f]~!P[Ng]SoUWw׼ZZs|W>6=l{\8|w:.ї'Ys?n}e"^;t)VN76rBʰskF_S dw)atG5rcXw$̝g"Nuv:C#N7:le}]ѻω9W2-뒊ͨ0E-;>V&Rhq9Gџ q>8Ӟu[|:c7m:|wQ5^_5_ȇ?AqzW?U8;"+CW>n1>3.zrO`f(ƛ}nGOK1SGo] W?Scg=/}~=9ؕs>f뒱Y uVbM};D89oS7j՗Uԇsǧo|:Y>8F-}|:yL.wz-y+7-+8QlƯzkqPwRRڿxFWes&qtORM? XU%toӬ;-~鲫d3brr;?"l}_br!Oؿԕ%5 e;t?tNXzK>@7kq)"Cq0 i:9zFO%4'7xO=[''8 r]A>= p"C0{B{!c_n?!5/h%/];? 4oQwbgZF~oh^0S7BWqw/C3<bЁ_ΥϰC;Zk/k#pnJ#ƔdW:x|}i??엺~{h9G_#ϻ";1u/C>"qu.mv"W:#R"np? W̠E |YrN7}'pvmqG~h/x%O |EK qWȡR~Gnw/)?=ޑ gK)kI _v㞈W7v#xGGm׼|ý_N+CK?[Wls; Cuoy__,;މyN$BGGްO@XlOh3 SKm73?y{@_b{[#qY \#g <{C\{&U^ڵ y0}2P`%x]Y=Љ+ջ/^fv=C>q{?2v= /ϒOo 4?rnj_y!|{JbҊa#u:q>%Ι}@wBƩ{s˹Yx;斺pi'?79㣏䁺qK>6%5Leo^)ϺK_۠IE:>vN\qiv_7~Ώ*ZB-?2 ^|n;3b?dҝzgn۝mg7>{'&Xywdc'<˛_j ,W!kX/ϥ^B=k/s?p4nݸ S~|"#m=y/փ 'ij gαgtٗ\m|$w/>tЗ ]O{8/i˹֦djH^ܮ#>(Aߜ9JORÏSqǞqۢމԺ:ct^!=y7п80N6xźߪ:90x)_mzv.x0>mu<>|uae>y"ͲntǩS{0&.(4^Y|!m߼ƗZu}?sit7Q%kgL\\_ Ϯypv6_1^ɿY[4'rܓ<}ƅ/;q}HӘ.T~U~}kӇluG&7l{ey;!C죮@gÀR$93Z۸'LhR\ք~؁ _DZ{f~px?'1b)nLm_5w:I?RuL\^z$9O>[b#3[ݾ?ԧw\v :P7]ƓsY{<˓ޢ }w@K?3^>QGC?=;O[cCx'a?nsp"I}imJ@.μp>}3ˬN{lxOƱ桧8ؿ0ح}U?U9G=W?ޗ_!ez!Ug/U}rG脍z$}fo-8QѡnǞ45[':Y>/Y5_<$^o\{uOm;!Ȃ4A[ǟC*=tςo~7c|{ǟg?vz2?m?WO^N˸,:%?tGo_'>xf|oOy:/ӛ;Vatu_SO w6fi0W]\$G~|D ㍶٧"wns?: ]_[>.wtΟճz!ocdy~T/7s/8?Xחwy䗾qc>2prz7o@|~\|y&ؓ[o*}_7͏K]ߜšFMZp87aYjl4y__Vߺ:pU\yi&j:G#)_|yWݼ5$ޯjt8?8;ϥ熟@^v3H/i+кy3CZ_|m![y =4~A}aĤk;ޜھQϿ{nxߙݯظ{?m!RNJy?c}yDN#~SO w.9Zp 1:$4)j|#v\i<w<uZGty&1 i%}UmnNwvP ]W*pZ_8]Bڗ|qEDR\xT, WhFQ{oz.[{O>m ?s|`}zve~AOW~~?[}sZ K?T˔d烿?'hP3v`[ssL^Uk8B?uϺOvO ;@~W2g7A _ >Zxz/6w-'ӻɓ[9zϝu>R 3K`_5gE_jtXqqمh=/uriƛS?~L b~F}K_3u93'mt,˜'?җb|K}byqhK'H1ZM])GXbcv}""n~w:S|hłЗs׏ȔT}/|dvSы;G<ڭUNد?"kvqx½c7س싸qt-#nF}ctgA^%pиaɢ }:=hati%.[|Bxz"q-P/!]w$_="/𠾁/O~ju?}ݧ}9~ӊGVqgeZW[_۰y~@ F]8u{9V|GooY Q_4dK +kT޿.0{Ww[\z?o<ݑzz ?pcj.|ݺ-L/ SwЇo-}ԇ\KE|f#cKZox|s^+뜽};=/쒼tN8ϣe0?ֽkK8O]%~!Nqo'pS??w{"^W(exG׸<9}MSc:M>~vm67~»{L_~W߱-~Cq8r8:C~=;9hO鄵x)nt7ݯEև ::mk*OؕŖz)/66ξ?N}uѷOؼ>|3ǶY]ჾ㏸X~ռc+;w5|YJ\pTfo8$<[$k}-2<'903ZfJÉg?ʻ6>cc~nyYQ3}bfZE>ջk|1>{M r^MZA~p5?rt?"N_SeFaM7ܿ߅z6 j/u<?oϹ{r_bg_$.~]Rׇ!]oe=[!EJ0>CG7K/vwyůjx.q+TϚ'h vi˷<6.t\WaEPԏ4C~8B_OWGK~r~^]&V['>?Ѕ/#;xWqћtgn-/u?}p >'%7K_Q/?ueG΁f'#8qz>v]6<*8>v?m[Pq?z,Ojq:N /zr~l7~ {5|G?W0qDds62إCRu7ӆ[<>LAfХFޔo-jG>\К^\/q<B[>/ޑ_CjC^Y~Z)>;Z/5h>UϴvL'ΆOwuq\$~zկ0AKUT?aVk"c}@~4NYwʣrLQzp_Z˽(=ڕ޳KХ[[(N"wzz ?$2PL;] Tog.{?㟿ٙ 䭀jSOPcRrNXRkahKώy#.\k#-ɍ~8c\^ʟMC>;(n(Rٽ{FnjɖšsGZA\.?z.Z~{yx~WptMJ>½ݛa_=nػ+Yݩr3=}Mo;f7ܓ/ygоc܋oSޱ#Cp/~az^ywqy՘g&h&oԎ]}w^;ا3Q|Rk4;@{ٵʡ#7G~yc~&>'^LŜޱ-}4N-;kau?\>nKO[׬製}vnUr?>:گ/ys/R6z֟lYdE=Tδ{jiK[8]ϰΏV+Cmh5E;}yhErgtOKtي5}Q8۵i8W]{7zKJ2.F?Y/a;9ݭcz˻|.{^o]sw?<ΉrĽg__h,l?>_Zdu}s郣[_LWjo~O|L.#h?צp/cizU>[~jøBO >;Ç[~ްf{؛glo#4qvgvľ_*t'lM^nKMyQf|G~IT=yMg!dЇOѷ[z=oiH>Uog/'_t6)/xkf|4j|3\!vF|_k\ߝk‡[!y􋽻q);-\m%_Lobz|`%9yygu~18BgzܹcvaƤi_n~ȻXkb@Oo-Y/tkEkMnq޵-~@q '7zn]3<}S=^0CgGfN)Gȼ٭+!ѓM_|T-w}yU?D~@v'ˌG\GL_ux%.8 CRф.,L}N'u('} x6[N{^$ޘgso\K>'?e/;3w}wg63C,q~hg~,Vg?0;08:i?m~~w:_\[gW/6ްi-uq?QNq>OO7:ơR 碃+ڼ7yA?oxǷu- tNg^3 ps3~o?:;n~2GU_d7ܴz\ sF,v}z?!sog_ZFeNT뛿։v) +'KO_7?p<1Sm[ P2:_#~kzV>U8,TgӚ_?w^y^]3=Asbb6v2|sx_oj͑O{WN{o#/,Xh'V+qӏ'p5< ww%r7c}8uQb%|go8eG]ѽ,Qkxa| qF_'86RoBw8cǢ+~9HO/J',n)^:=m9/,90 Yg'L{  Kԓk8XڑI&Wz@$/dk39vsum~C#<$?yuޔ\ey9[+{_ weܓu]iyPG\`͏8e:apet+7xK/_]K.1}O[Qۗ?ٞLne8a'Ǿu+쀼 \/G_'"qzw@.:+;ԭCC >Vܿn]e}{ JGI;J~t\ÏݳO=$~o]x}a؉0+8{cq#tZy`ĩ{Fz"Szϼ?O}-~U69)p'8yv7>X_G|'ub w_''F'+T컘w>qSW/z#>&qkXd=(^+ qnSˏ;c^wLO~B>հz9>byu'ݪO=Z\W ?3Aߟ;}wE.RG۵ zwih)nh诲}a>_iQ{c`o\kxq)Zǂ'Yoq*!-&c-q:BK=»)8cywgZ콏 b?>o8v> P'Rns-qܼOZ1vnB?zg_Mѹ'̬ '-+y@O\_KzƟx8yX!>a_E;m?@tܫOf~X_ ϹB+#+ǯhީ'?_yGWyl+˧<bתo?Bbf'}?98ƉKR> vhtbp5rnq}]^7 >Â!y;ọ˗foN#g=rS_p.q`=]ZǮ9uwvO&u|}/✯xLG׵S%=g&Pn-߶Dž]y[pji[Ga'WOM~_}#_Wyĸ!ƄE?%#gε1/kdX~KohSkX.^5nE&ᷫIG\z >M?=I 1uF?;s: >1WZC˽e&~'Dzc\ ޢ B3Gïkhg|~%· _r[nla'bc`h/F-}yy]C[/4j%ejl_C8o~\ܜwbROlojz`~ץ|k ȼЅ^ݿԛ (7KZ.eԅo6̪ՏRυx>q->`'7=5NzSn=>xN^ߑv3#WBW i?ٿ-ީw[v0Z>N#so&;ǧ?a wo;0{l=Ç8}YGvtlz+r}o }7t|bxEl-`7џMoF_hoU?Ky?Z_Nnu6SL{vϤ,TnZ:}Gm8c\kt_繬nnSyUQ6%xw,tOܺ-P"0u.xˣ;uu.-18|nǝ󊎲su^W;m:+[+?QUsu|'mmdӃr/?dw&w.hiX=Gcg/zq٬NAzr9y5;t#?WO1Y3h#9ح5g/>/Xb!q ׸Zg%PQ׻:\=y{ܻԸ09xsEFk3_nׇfr/2SVyz8nO7wCnkpX%.#<*i<7N._g$g+)O'Qo@YRױ.ҵs@]Aq .UzΡx ~W؝O?C{D'4x!򮁟޽;껈'(Nh G}'?/j}:^R_׼`ZS{8tu}Bᝉ-y'~m9yz3'_CB}'yįM}G + _.-ց'=>ܽ؇=a♋7fi`VEG,z_侤AO}Or3ЏviqKȉG7꽛y} o(q4܈Q;ީ(7 UGbw.}x@WD·.\ܴ]ї }V?4صn.hڷ[iw}5pO3NKBH'wcw5#+ߙ.7q҅oۋ.j~lXGY?2Ӹ:ȸc]U֟h{_tS3z7b"g30n|ͽg\e>m~|-jO*}m(ڦC ;zֹqz OϞ3?v7=?cvl7s|cwᅺjGL_ȹ}槞ssO W5<?W[m$r\gzpڮRcFAS2#x.ɡe^9fnꝹ|mRN_G^Kg<;}r.zcq+^dQ78{#޹ 7hC/[g^|?8̔E7;ޛc;5s%sN>9:t5V?BVՉRco7Tгk8uaq]=9}1q5S5fGЍ+tp Bߍ }/nsly7zq2ٲ:w|)07ǯŇ[4'?p6=!Ka/uC&qx_ثsqzF{qǮ"+Wr^ N~촎j\[ Kj}e%z hsΉ;g}!!~G٣2C=9q!6}]|O8Wq~K0~_BJ<߱@q O<%ok<?3+zzv9G89X?ۿ\oruCEo;bxRq87$_+Th1t,N__U5ȏ{<۟7{~7~%ޢ+lczk_u$ S?`c%Ϙ^${'na͵)wj}K|ۥՌO7^@a?+wU B+]U&|kUZ֒ob-xB:~I\eȽ>_oq5ޣA;~\\<żmLNs ?w5I>7#rozzľ S tEFZ+_m{{{]aO솼JǏvy#F| fw `GR;rK}er+Lb'{>_9{ WDpxZ?b㚷ȋȯ/}SxgxUA-ToyyZy@8yŽK\ȉWw@Ϩ+,^*~kkLH1xn+k}Qw q}O{_Ml@}U>9v;2Ȼ\Rџ8'+_E׌g!u;yIC8>vOrGyv>r{޸hz+療J3.+Y؏W!.{L[޳ GNb$O>vwrHތ|;s'oun_{sp}t8?'{ ޵߭Mب}/)C&i5V<9uݿǬ7V\u}@|ǽ-}uxM/n ~Gp]:`oi=o3O΋;u!<'ެ9Ui_jGQW.` _7|< 8g']_s؏~Zƣץ0Lp4|yo9⦊پ3Ӈʇ ZSP{.s.8v~c t_!ыS]uzC x3\c̳-^~q v G)~&~\19 :..`atŎn\`wo/+8|vBܕ8oͺ*6T-+t[s /sR,Lz[gz{7t~1JU;4wj<:xwy}?zK>?tgr8/"㳏hL[=/Z0;΁J/xX ΊՋ)I\м ?|rBX^|WX݁=(ȇ\QL^,~CA"{w4 )לAz3 >#qjjƟDtVwz_`QkYރQ?i5>iV~ʸ[ JuUWS7ݦloYoO A~a7=|R]菺 _ o~5c\b7xuoq[c?[R'عԩwًՊu-?vl9N[C Jl(wLNquG>ZÜEd=ힹ5{GbgZO N}8O^o/!loPL?Ef: G+ߚM⏍C{  *}ssOǏ5QR_whvE|;#i38k%t`=Ǟhq4ďl-9*fHurZpuygi[:|{9x{OZC3;}5Jǭ9QORa7ǟt0NXD#3~M.SV "ُsO}.0=?q ӧ[yc6e:br_>F=-?,N2~]ܾ^}u+KaG^jmyP>0EuwM]k}O]Aùy|L%HXa#pxYĹG.r6<ץM/ C..~vw#2ze'>Ȳ6{ſ|㿫6,gb_w"m~ުF~s}鸎z? ~gZ7ztk]sOgO~K>La܁O(3_;y ڿ!Jmye;7jNl7ĕSeu1y!FnygW78/i>oz5^}oJQ5gk3#ic݅;a)NGͣ}OOt_/<#o2/Rr)GQ/20>sy WU8]Sb- NkVlϙi75-urAKX}\ӛ~;OH_ߜY~yfv3LN',_0ε*iϧ͍7˫EdMײl:LP6GN|ÿcc^ ];\O>[FU>ZB_pAY{k0oM};9.Fdjܺ- <1?MY#<"/3>b҂r-ۈP2Qm6 >u|pwƅ?? ;Y|:5D~Y8ㅿ=N'ux!Lg/'5ni(~|;%|$޴nfcǺsR?q~0͖oB.]6:8GSOUc/sϽĹ_QE^TUE?qE_x]c73GѯJ EޢiYG<|Mg'ۈEmp3!_`}lKn6{`?>nfiuy~YOŞ^LXGLn\\X#abg8g8O?N O}yA7G瞜 {O/Wzgz'g߆ge(Sd@EGWJ3A=;!XLۭKoߵ˿qޱrͮs9qib{7?ӟ;huzCſ_ø{vsL휓n7 i]ևֲs8?ot.u.?cw'Nv-sl?߉A_U703<nv曞RwentnY~P?|y͌sOEޡcFN īSOD/lO?.ץl̗zAnI+w*W48W?:Tyo}銛q[yEZߵ~7:h~sO}-?^}vwn.]~ )(ǹi9[ӧW3e|5k:h\PML.A>>|AgGka]g?q}akߐXCkI_~ʏ5כ_q^ڨ16_/Lj`8k|oܴIű,^;_+у5ٺs؟OEdxɷw|KHs#Y.pzF'h;q0;2ka͇V,>2ѢBD|ںy37Ծ:88>L.ƓM`񔾵=O}<n]A_<őxA>pD0o ?7NVǝ:/og]繺>0Bhq(3mRްk}#m/~K^b1վ'TayUi#~%؊ G[O8ku粏wvh|8%kSfYT$--',oJfzb֩Ѕ_ט+_ȝvfOlrm%t0r!쾁~K~rjjv~*95zw b=/@݁?p +>K&Nf*WavjuA"7~\+o}#84~w냃yvU|̼ ~O}E_'ɼ_٭|GAȩ-8SN֡hɫbt̽WZXEV {"~!O{= Ӷ^2oucZ/fة9n>oGɳ%sܷ>δN<O9Df%?кD?rﯭgq>^\z#.Կ0X] yv=LG݇ҧUzy8՞4΃7q>MON8q8 MjzzSy7vS Io2}ӧ {߀/|?z='-0~[>%.Oaz^Mkyu +zKCsاݸSOի.} >;̿:c/G. -'n2}ܗGVh;*c©G7%9X՟G]Y;҉{o9M~vxC.͹o염1_ͺT۹):Gd1%y{wn\;O6}쌿3?}wJO]ʀz4VLʠOcO=1PF};qu&뙇gz6ǟUBF~w?ʞ-MnǷ{ڱά!wm\x&7]绻I?XSx?)@~ۜwhwk[h if&c..{,7Ӈ)|k$l[fWΎO3{GvJ N~_+D퉦1v)r|/ "|_}ώ|o'Os.ȿ~'sgG'v|Gz?xpp}axe@ ęs}0oNRfqėsvb}SDM~sKsos?eٿ/ti;~}D>>տ7nvOE^cl4wxy.G:<`w^qcl>2ٳ]G~Tz6!9r%}>uzaOkуwL}s[Kn3=7Wp|>=b_&eɉ<:"8?~~zrۚ߉ xhO{?cq nh(5 'zq]e먿<׼tȓrkR'Ϭ|G=?7=Z%$ Mc59+?ѩKY|w^gOW@&ŷ(ЯA:pE_rtqI2Gm k yC;r8}2%NOyԉ&uC=@ܗDv_rpΧΆcvGXq=mCދ45y,޳a8}K}&k^~~W}/do=a_xWl^ }{ktS%8Nϖ8\>{xOxDr;/|e%}:os<ٕNxV:giݦu{aBuRW'? +|jawط{G{y̆y?n6;8/.?'gV'r޹7yjgWA_Zoi޳hY:~ǮC}qoW_Ν {[x!kuO?\}oq8hG%؋C 4u}!^qzB?.RċWqW[uC<^1bƌpQ>gh](CF 9]>h#]ޕ,>unޯԏ|i\'_QYrqQ"}r6>X޵=zp;w$!Kx}Ԫw+\ W ::;rx7P}E^q W/XaT vuuZoj=};Ź̻8H=n8>|`r|c%ޗw=aKu 3'q;`دjK~Op>|~ {ߠK gyL⹾.>0w̆w*{)ǥK۴94ޙewß}?;?j&7v}nP+gWݾ>Cs}G_AC͞\=;y{G)1pg+N/-~xnFO,xaؙq :&?zgckO8-0=ן:4hI@'niwvzuvGm\/X!xټgxϹW.w/ wݖCS#j|?8·k0x=¯ yp {zvm2iGx S#W|xcgs}']_M_1`o-'F;{)1"20;xecE ䷳gTaɭv ~q8\>8Gw͸e3կ%i]>!vŏ.jnփ+q}b葼p7?%g_%AS5&=,n;zg ;6|Ee=wi_T.L_rᅝAxߜ| ?99jגo"nvxO ȉ ѣk͞__p4~u~j/j,^i=Zpn ױ^_eOi-Dǟپ؂ߧ}Iuwo_nC^/rmcO:p:`~I/pBo's=寜8ݠCQN/W {g7"u\wӋY>QYO3+)̥K{M^]ց~I~G@))Ë?'yzz}D?yXEY7v`5߁?Hs$Y]*i~:ىSg\3oP=9R/;wdSW*' ~..Edzj#l_(?_2uh['u.{v=7 :n<"K_g)_ы_xM~zާȴγhyz .1<7Ak?Br}- u {_9_&78zgr/^"u yGyr~<`7 !^jR/=0{uHczyG4{%#7+ʻS^#uI.:8 ؃}:a9wF{M8/gL:`%~*t_ _z19?7W"I|1+n<"CB7onuaTzv-Ik.uA]X^>U3ↈtjPW]}avAZ`[nvFjROS~ jIyg'}>CpxZ';wSus{ti1WOHޑ#2, NEs~O\nѣkLOqw?Y{/g#?5>~|Lw@\arsPKd"z ؇|xC˹j'p&~zqئн9| |'c?g{w?{'%UJڡ+/=a?jUL7rs'?_rǭSuy%fU>#w՟btOP΅_ơyM[yݩ< vn_?9;sٹ_Ё۾+j7{u~[G^.WpFr~N\4Ώl8otVozr|եoMmo֞<o:~QOy^_OW;S{?ap ṋk3<;< UH;^O}u½ ke~8:CZe9\Ϳ]^[qa{9oq'rR?b[,ortgsߙG. g4RWYOFQwW9blh͎cuy=a>$pE^ч-;3z13甮9xE\ wu'w$~M|?ʦ6'n$ )^ԕ{@/JU=_sZORq?WٽkZG'z<~E9Ijv:)1?~O~=PI]l-u}Oo_Z6 ]~}2Nw }Op ok@O<{.~/#k}:'1+?yn_z_ry%r/>D\\η;borE㏸}T"/黐و#3B<)VxQOQgO+Y;~(ώQo4z>KkxM;_ o kA^~ #_2@^>}<[O>wh>yw\Ç k!Ω{.eG_)'o|pZSv= 俐3Ko{޺wV<nc=R?u+}p}/ #|iJ X`=v㼻OM;v>[ ~z>qDEtRLi?Kg쟺e>z^z'n+wI%q?0}''kAzV,q.P{Wuzz<pN}~:P@soppt|[z[G}>7b@z_b.OzP;ϛ^;{v]>{S6OV\b}XXu6^[[oW=)1D]?~|ǤܟgieӶ!Z}޾e%(x7b%|XJnu_q׿uO h;;[OK2y=ئ%u7.ԓuoz'tm?rovΚ.r\GۥF8^dy%z1"/9Bzq(0ğ3^[v:9bU'7H~z,f c>[ x Zakϝ}^qNrv,:i/8g#Gg]냟3;"N%9{W]miEz{)㎧_2`„9ȃݩ]Ζinb-oafvc)؉с_?Xɉ>{N-'" zX87}# ~s;\4=A&qC/Cy+%T D8sށ*RG~Rb?o_ ΢'Wq~?%[O@aC/sCQYƍ'5qz_|:wjw2=;wOoo}fײyꘐwɣSzο[^m=- -H!xaUM]Nw%{b'/v>Y!vlHyZA|a>GկBe^Lz"r\~ꃦG4~}yC$;Hw+z֩<;'f֞Yi~/򖽷M7J3>{}\_, O;(z%ޚ|~bﺥXVq7vS+]I\ǮNy

s쌺O.cDZoEZ9eR/4=Ou q#nR9sr)؃{CI=kyG;8A|"'tr0{=԰}^\rE|'|' |`}1%N^z*}7zž|ӋN^{_3jß~7@>Ņ{2D~"Ss>y9Z+;ްK]ׅn>(lO3Nȓ?r5|7ww1j ۉKa ^RS{۱qΥ-iy3*L8Kz#}Y^srgmϼgޞ|+?rԺQƯ+ty͓E?qf?B3O|˟ 6ܿ#Ow?s$iPh7UF ?yl?嗕ŗ^;w'o|^ o*Tgf+ݰ_C_99:OWfQs> nYO r*r{9:bbWNJx_ . \p}7"R'^s>X_bG ;*-sCޡ\m۔|fͻ9qVmgkym>rS/MۖΥ_pzOp٣у>z?mM4G[nqU> v]ѧ>^g7%?S_8QC^^/^MO1ůNt^[ c^ `~B܁>toj\8Wql=z.゛ىS#~ 눣'8+ym[OŞ9{f}nK.1\%/ƣgd<|r6t{lnO-x1VxߖŏySu[{bO<%AύGdH{ީ=ns g) wouX?ͷ8˹ g^y{.qi zD#78<}Oh2RzDxo~\؍[^qɼuOG?ɣjˣƷy>.8@~sV:tU~!*Zj;G1"mXzuGX8&a-ӂoVL%^:~Wy/V[Gi^>뾰}gzrls맧뵏0 }Vwgz|3W:~KKKV .rpW3z7Ou:Bu>=>wC_'u&ʡ]0aNzյZ/]C*߰6.L.]0=!Z-^c}5\|iK~W=!vf0K)c}d14.װW~G0\u+G]-`'B(܋z~}+Sf*/thx O9pϓu桫r)pjSmٗ/~avk>|҂3xW4_wPu{߱w1}þOTE\{ C/cA߃WjjQ~8rVVŻE ~u/;?} ;5/}>N׫#'yտq]wmމ/DO!q(,y?P}j}vn'֩|%9Ϊ\!;!yY^C0VՁߧU>JC9BUm_-vbr nR7K:6ꛒM_G?WB OZ%XڿNsNJ'3=8r'N ]yo@.#?>8$սI-fyc6v2%@y=v7I2|R "O77z97ue&~l>T)JtAW\ ů ^usesٙ nݿ*_(緩1퉟͞uC?yezlY3ȰwgeohGOU9M^ݧ|87c]l<#?a|(5pз߷?wG';WRqRr3]%~:pvq?~f:u-x2C-F΋y~Gm>9iv/XqO'vtY.P}R/}?}M|r>@ȋzaѷz羠(t./ꮰz9W45΁+n~7m{({ć|NA_O*g3_7;sB~kʛ9{i&'.ICɍCىjwsة;F~k>. ع#|`Gؗާ!gz/Z;t/ 1/{QSQqf~lj8̰J.#.>Rg/o4!|i ~jӺ}=?Rs^ZlO; r۱U_]'_kAq/Ww/c|s_/rђg]]`~)q yzsJwq$>W k. y{!;]u~E>.}KO4FdfӆjE<8c~]?ب2]ѿ#Mqq2n #Gg/wjsC{Ҿ̈́V^NVwyC+:ܿ^KwO^;W>@{7\Zg'~oSo_S^ֿG#t5n5w_ѲO\:󉗬>yRyWpS55ib8qC?~G˻Խo{ hU~Z]|xFO {E{'rOQ}crA\SGwue(=kb~Ǔ{x`WzRy4a[g~=a9n=79[~C\}x\kgԾvI^'ΣgG̦Ohɟqy|!y*PG&ؑyT C{O~QoO֛KT S{GXf:/Plih饢OE kSޭmX/Su%xcv:k~/K7u9xrY)cy*SS3^d\yMu:5ōvW}R|?)ß_Y) }Z˼m٬uc9@Mm-ok}?jx=cGw Ɨ;^>׾0{ԛ;Y8sޱk>9R¿3'Nmne7x>tY}-~8qN|_b30Nc=xpɹݼq+]2cBEPQi𿜲^76_C\v>OOWUGAsT|μG+2p;eH_0hSjG|b'죎V+|\/=xׂ+{ykO7-rҺ<(aKUVaW*0j}9H<ͫ\o ϣf=˴*8h8W[q>>}?X~9n_֋|IќGm3ś>t\}Gݥ ]Py#w.~!)nnuk<]l1kѓ%Gw>ҳtN\h_NyPO-%W./AcުC^݇]u{iz֒S\Vqq iΑ}M[puUz^_WO Fީvg6`Զw[sbOxVA&-Y748^Oh?~jK ܸtރFb3_c|YgḽM_g7؟̟^QJO,-ۑkvoG3@Wnz3>/qZ/6}3kFM[npnl3fTG_tE?*㒣^gv7j?rw?cze_Gz?/ѧډc?g/$nn׬;^1g[qqӢ/썸;MR;Ln7n]qxz4?xm~D CV.p~Dܓ{?5}_אָ8%zCQY}'80.\ z{ >,yLŧ&޴l^^۸g/fvq1a韾^rTH_85;85,}CQ_׸?fO꿩yl?UCQ{C*Gf[>hygL^Zo=ԡW|NGMθ;f>=>SG..ROXγbj7%tys?fdy(~eq&ԋY;_>\O0>Y^9< :9L~֥7c-N@;qI_ >~#S/JzPui_Ѕ_#+/6ܼ!7;qo?ַhq/Fٙgz.8ӇOWWWzozyLaj|NnÄy0=eqGy=sk<??}3տ;__'&mjx cQ$޶.aQك/cz!>;&_ QP?yardvށLz(yDO`z"[΋{ӞTl^='~##u{ z.;z@]L kq{vOz)ʇl+vCsEs~J'M4ȥy<[wu"xbNޝM1ޕ{¹ȏ~B\ySO2x??M ؋ _{pFnqr6!: =I<|Q rǏٯ+ZH}wR{;r@%Xgu볏xF~~Og~O~߳{~=]}zzw@Sw=ۆ' %>ڻӣ٫~3,޶)#}x[F1xN%lQ[|}rtF?c68zu4[;O헻\coPGؙؑamhvaqgyj^GO}&f'?:껼[?!_/>Ӌ4ӓOoeۇU 1"mQ{~Mb9NX N#+fo7&NM~ps}?]4]}|ͭN۷|;=塚QkwMܐyW&LK|g=K]6קs@K.!λ^|BSN}EÑ׻>;?=\9p'CQ}z^az OpRxcM Kr_|z ؓƹ(m~_gk~k#<Ro^(lX?T$W|[^$y?:1"wӃn䷵ѧwp {||u>U;v#HG6ըLjf)w^~aoTl]N˸,mٸH&YVvڼҥ+qOߍޑԑ,y|Ͽ%4_dU2+y/+t^mu/T˿,l٪pӇ" ?;Q,Qs7{wKgo̞)6Pصrڊ/ cV9i3t; m2 [8ɿ|6 Ѕog>Tў_Vc-zpzץX?t ]X*7 }4Mo`g?tу?a?^8;|Ka>Ѩ}غm_SϿ{?bv&ޡNZ\.><[CL?5(I 9$]b78]߶NoЊ'_qGt8T}/4jѺxoy(.~Ҡ#n3:^ѕ:tp^a2`o^,F}oǔ[evO?z㓜>m{'n]!79s/79lzP{|Ǐz_DUs^Z<x5)<{C=@ kNEN𗺑Z(y:!Z#e.Bo/w wydz{/c=Rw?'~m?z{ؿ^vCMN/C:\/x*K7Knzar?l!<~i\̪,-bq> attN>{ wɋG5xX2[J/xw}/!>9b]uZQQzp튷)7qHGݩuC.{^q"2orc:9VWSؽzۑĩ tͻWCp!c7Ѽ[ x?|eWеKn*{zwT ܧK ]l"qro>:z6+?𞆽p?euwE}*̹d?> =|}2"r}zmܽ 'xw1p|b ?ϰKǻypCZ_ֺ#pdov.w#NZE/R-qV;4k8{09#%]yoεž n0X/W+dDP!~ _۹n:ty߶> Z_lh_ ~/C]xuq6?B_ }'K|q*3nm3ayУp0yx"/ FyÊ-mQU3\u=nvEG9z'򳏾ԛni;}ה-a/}7眧x쏺3ɉվ{_ޯzw& 8GO;/M0g>9z.7yaN@=K{p@~Zy|ٳZ+n5WH?[w \9_ufЂOlƧU'HozuϽS^ջ8;㱧:{S5;/2(gt7%x7ٹ+yXOΛ3۹Ҳq2:wqw_#6bR7Ϲބe|,_Pd/ϫwuloFŻ߯p *t~*RC z:ѷ^ќF~^oX˒)+{7/F5jcS̮~XK:Y9?{6ۥ7x[_ﲶǽY75[> m[-7NvcRb!;gݍ2_{֮|}isG&Wmso2'?rZG#W+bfڏ N 8iqd)C{GޝC_5ik_&ۧ]KenCt/{*W=aC;JS?b"}jϘ<:ѷv%_3ݗ4 /ڣҪ{[4к8exr>qǧȶ>y&O0(@bFo릴a}b;݉K= 'o@S灧S(b8ټ/%:О~I|ߞ!/E2?'>PuAy/w''%8A Wd:+pN_9sѿ5ٓCorz9Wᚎ^p$C]ц扟I:1mˡ7ݽ2.y4|@XLкzD O4'|B-,{n oϺIpI}zזafϊVjބ%[!:WbիNI|B>Rߚ^1T_r}s̼z-4zp xnyW+(\?f~c{VmgN ?{]{)-FOԅo6}Z{w1Sa;b^HP`F.ެw+? ӳz-oggE'8No^I#ޏ$=nɛW?WzL{M*J#x$rN;^~vK/skU }÷/]iyݕx>9?o-Nwȡhy'q{c=<83ɷaءC]T>SWq;/Vl?̓.y-ӆ#-q}O }C/){e|c'>tY+x݄en Уe?8)=e\ ;a~}Ig0hY/'qtfeq}v̚@-ޱ'6\ v~ƕ09 0t\<<ȄC|mRZG/oW'3x:KܿVj臵8^oyə ]'%0}!^=Tߝ2 ;92y[FS'L]Ba qn@θ ˓€e/a!gݑ3޺uuA[GnGڰuax=NqQ}Ge{S/Ϸ+:=7}]o^w7N]᭥ >5葇_19rV6罱x󫬅>~vYrj_\;ue, &wݷvs@Z} =^m.z^ZCضz?;}/}7C?|Wr7~v>-t4h/8@i#݋|zFV_OWVqd.6_+d=@ͣ^U~dի?`e8@q鹥vh^|*vo{gYOa-u-v^v*}Ń6'ӻOܰc&KՃux7?}g6z7|gzNrv}EuYwU[kMa^*u7NGg7FG?c^U>臍GX|`8M\;Q= ,^W^qƮ7 KZ@~7Ї!N>?wX{&_7NWg=+8s+}"u].>  #V7sSn7>D)u$NX~+^T}d`*2*2DډR^ ڮGUunĖYg;:CEọ0zvq浵w Yhx޻ѓNgyHUo/^+u󾠸*N^'-gwF?vbyO㞾hwN}?W溺+zg=ߵae_#zպD*#iO}q̾:::ԷZizFEiF݋;\{r O՞^fojJtq{~POOς0|iu=t<n/o}4=~IzzQwCFH.atӣ6OP;f7}C ӓ~ /} [vNiJn^^ {{-szų00:M;_ 7u<=> If>ϗ/~`ɣ煝/xtM?[J7l\Na vUC|IxgGG]]]\/Navq{ z?d/ғGaX^vwά9aGX^zW<_UmOPq@5q|0w;7~1mPK4koҲ>gvww[ϺBSVMiwiu(5OBUؕ{/k"ػn{<8%O|93o< Ͻsu,~tA߭;=>]`?vj/Zv^Ҙkmm_M_ȫvιaSX}O)W9͏ WS]CS1\zwУ>:6}dޝo]6Mh|2˝]~.֋L(/C,Fg֗*}fYBwo_!ڪO3ԫVEn}K5 NQ,%OawԫE>~Na~oMwlY~> KL@ oڮm^(6=\;uircۻ\G+>zmO [FW}Zg'F՘{&y<􂜇׽e3Y{~=_؏qQ}0|^= <][K~PG~Bї{pϕiue;eL3(?e,`Wh82:=1[Ys}4iHY;J5??zw_T8~\'lN{"f5} JfjK;&6~9_{[*W-=5}w4ɫzcӏYe{c?vrB>s#u7 KԻ/~/Xu"T?}th5] ~]voξUͳ*,Oo>`G>-T=?hz>Lӓ+L_K|~ǀ~_͇o ߞB'vo'֮[OoBiB$M9w[Z\;Ug[̽޴Uiu=5+Wlv~ 'xG/cדKX#Ues~ۻ[UxqGfѱ§Y_*m{yc<ĭX?mtF/%>q@S|`=?m->!;΃=w24D^ȷLGx@NURQ8>y]Gd>[_}p߄>oͳ^N_^{teJ;u;SmDz'Ck瞴AW~q|_}+[3XTͅZҭ펛+]ׇ/zޡ['6x5۳|}`9!?tZ_e^ o',W8?`b4R|6sdkC}*_ZKZCSf~7w:7B{y;5`9ޠvpv>/Υ=b:᡼mS[gZwnLX! {{ΉJyǼ{YvίZ;~z̫anvʔld7nbFw.{@?|?hx~G)m?>9Nj}yŇe}{0uasHKw|kr*Tslη>Ïs_xGi"o_9>у5߯*]ޜ\S}s>s"L61 wov._,3"gj}QO0b>4pf'Q_c߷ROmRزxؿRn:R,p.vsC5O9sw~S֏/7&Κ}"#h8c~05gˋo G/z'}'z̷} 8K<@+5K6r|aOƗ/z3l#nE;7qҋ=7i#Mo[_=ݾvOA}O|yS0PMky?Ŀ?'ɉ+Gȩ:7Dž?VU_+tGRX\SNGjwZp>uDWQGϬxn oJbehB^2oL.?gq#tuzU;%j .eat1?zwy@|K՟l:Ğ >_V]*>Wq$kς){k!+z 98"xZ}?1C?zmj&/{6kt~+t3_>jvGb6e? F-?)Os>|S7-]JHEd)[}~5VyWOs>8w]zV>iOADk^cʯG^4OB)p~糞| }zVQ}h_qPU6?Kݸ-qW'_ nN=k$5io>GOZW/:%Տsrz&ohzn"&%ױǸO9fG݇SGs/yI ɫG7>JT{$# t!X_ӏP;{Qw2F.c 8=AOɡ yDN{Gz쏺W8,d;-ywnjku_?qޥ?bOwww?ػ+븇N_b̓#5;8 =o}IމO^^4^A}-kq3ԏ5Uywd͵i-u&{"o};68Opֻ8u?,c<&?УeW?/q?8GC owMN8o'_p%xcߠq՗ED xI\b;lu O`, m~I\_yC$-qu<o+Z߰zOwȯq=i> }KWQT?e{*59VUsk-zѷ~Z褟e~@Zg4?t|+sxgWkAozKdqKfQH[l#~94̩ն~؇*?wa?[׺TʹzWN8* "811"(8*IT`N0:Pǀ:(I#( " 9}?֯.?j<ߜ|ipOxvqn/?qWnW=}u9zs[wǿKqߜ/?ٗ||׾}w+ϟ]SsOo?s-'_?w[IsR_+s>^_˺ݮ_y[>zop[ϟ]nҷ|}OnY_I_O7:ӯ~}އ^?z`{{}k?h7 <_ʯ|W󽵭F|ާ>/\<^sv:/W[/,|Q:^󾾮~+O?߯[]uuoyߏ&_7?:N^Ş'~[_??;z^zyyw/zO{7>?ceݷ}~}|泃?/}/|~O{6}?_<~z;џY/:n}ޟy?w/?/N}eϿ*=Q_i{'yN~˯2_=ۭn_}}o>~λ?~۟ϟ]oo[_}s;_}6o߽V/sn3??gMͯ/>w[m~|X}ƿ?o>_7/U|g}w~|W}y-?_<=W}ԯg9t۷K?}|>m_os| 畗6^ o ~~[mn]moqs6//[~~wO}0|^yo_<߷[w 9?w?|nv[y9x~_=KϿ7ݼܮvݟ嶯{/>zu=ݮe]1\үyvrۏ[]gE~zou<|}Y{o'oxr;ox; }VG}~wn*Cwyp;wK?^И{e<> csz~1n>NN^N>t/s~={­>n_<~m~ߞknV9s˷{~xq>˿܎{pv/=`?Ww=]mouu zxqw!UyV~t?}+8oqo~o>8'5o~~}7y9oMÿ>C~߬[T{/?|o/?|[_ss{={zk>[~{/_y/3;7^ogxշf?u?vo}[7;|/ _t{}^_3?[d\ǟsڣӧ~{qWѷʱ7}۾T#͟|37_7:N?Cvn?I}G|~}7_IܽO?ۧׯwO%_|?:|}/7nן綞o|N?}G|oz>u܎zҿ_>>߷g-νv}}}moy'~s5w~uݮmn񺾟y{zy>uܿ}]}{q_˛S?{ޱo-o7z]mF+_|.|/:?up|nn/Sݽ}~w_3u\7{>}[qz?+/upۏoVGvo߿]S]__'SϾy6 o.>}ܮvyo}׷~3ww/뷾%yH??%o}\n_߮>>zo~../~{~;v^_s<ͫ~_}oϯ?QnU:xo}VϽ{9ov_Sv>z߮oo'yOmx+wQ﻾vyQ/}<6gnz?>{[yxu'Þ_u>}ގs{ז7|/|eݷYe}ߎvWn?Vw/nqۯ[zy<_>?/ ?__#8?~v]uqKwu?Uz_û_G\oG{u>?;Kn ow}fwsyǽ o\]yoy뽽x.{>'޻_gϿ8uݾe{=q;;{YT;ovG>/=]?ks>?ȷ9GG{[G?^VW>܎.GU~4t*C>S7,w+O~g.D˟?)+'J|B?/A|%/_*MX ߒ//-GL=r+W[U5u?o,DQ3&fm/_wwwɿ-#+FO_~@~P+=@d(#D^Tf2,e%kVvɣ,&%$aD%&qIHRRd%'y)HQ )IY*Rԥ!MiI[: ?F+_ˏ/?AM]~$o俕N~ϐ^~>My_y??ϑ+?O~y/_,D~2 `GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w.]w={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}????????????????????????????????''''''''''''''''5f̓yR3OjI<'5f̓yR3OjI<'5f̓yR3OjI<'5f̓yR3OjI<'5f̓yR3OjI<'5f̓yR3OjI<'5f̓yR3OjI<'5f̓yR3OjI<'5f̓yR3OjI<'5f̓yR3OjI<'53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C53T3C5343fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143fC3chf ͌143f?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O?¿_''Ʉ 'O? 'O? +__Y+eW_Y+eW_Y+eW_Y+eW_Y+eW_Y+eW_Y+eW_Y+eSZ?TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7TSoM7)SO?)SO?)SO?)SO?)SO?)SO?)SO?)3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9 /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_57o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o [o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w{={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={=????????????????????????????????G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3/_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_5%$aD%&qIHRRd%'y)HQ )IY*Rԥ!MiI[: ?F+_ˏ/?AM]~$o俕N~ϐ^~>My_y??ϑ+?O~y/_,D~2 `P˯_)*k##cʯ_/A>N>^>A>Q>I>Y~|&T[go.Lw-G~>?,-#?.B||)g ʟSE,E5b7o-KDT2?(_)oWW#H^AF[˷ʷɿo)!)%J[||>~Ay/yd,y%S\e#[^r"????u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:u\p:uA\r:u A\r:u A\r:u A\As=h4׃z\As= A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? !C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C??C?!C?!?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?wqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpwqpw?391#`s0bF91#`s0bF91#`s0bF91#`s0bF91#`s0bF91#`s0bF91#`s0bF91#`#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8qO? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4i? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>????????????????????????????????C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?f1c?f1c?f1c?f1c?f1c?f1c?f1c?f1c?f1c?f1c?f1c?f1c?f1c?f 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O؟?a 'O'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)Sy7y7y7y7y7y7y7y7y7y77jFQiFQiFQiFQiFQiFQiF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iLf5ӨF4jQ3iԌ3g?3g?3g?3g?3g?3g?3g?3g?3g?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s/_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5k_5ko 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={?????????????????????????????????#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w?????????????????????????????????'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o????????????????????????????@REQ܋spwa:ǟʪ???????????????????????????????? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?0a?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?(QG?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q?8q??????????? Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&deB Y&dY҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M҄-M$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?$I'O?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}????????????????????????????????!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?!C?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c?1c? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O? 'O?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tG~tGf:6ӱtlc3Lf:6ӱtlc3Lf:6ӱtlc3Lf:6ӱtlc3Lf:6ӱtlc3Lf:6ӱtlc331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331333g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9s?9 /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%K/_%+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_k_5k_5k_5k_5k_5k9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kל9_s|5kלo8p| 7o8p| 7o8p| 7o8p| 7o8p| 7o8p??? 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o 7o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o-[o;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={={????????????????????????????????#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?#G?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g?3g? /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_ /_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_+W_7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o7o;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w????????????????????????????????'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?'O?/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_c?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?fc?f}3onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}s7onܾ}sooooooooo7o7o7o7o7o7o7o7o7o7o7o7o????????????????????????????????/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_?? xOϽ!JB܉$.;)9U6 $'䜐aߵ+ޢlS')SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?)SO?iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?4iO?43g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? 3g? Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?,e_e_-ӾeڷLi2[}˴o-ӾeڷLi2[}˴o-ӾeڷLi2[}˴o-ӾeڷLi2[}˴o-ӾeڷLi2[}˴o-ӾeڷLi2[}˴o-ӾeڷLi2[}˴o-ӾeڷLi2[}˴o-ӾeڷLi2[}˴o-ӾeڷLi2[}˴oiߜiߜiߜiߜS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ95לS_skN}ͩ959s?9s?9s?9s?9s?9s?9s?9s?9s?9s?y?VZUڝGEU[mZ9bM[iu+hv<k٧_To޸ym07hϊ;\mيp޴]En53oXio%ThիعmUjkm޹_׭,Zf;l̺Mk;m_{խΤ-:Vlo/isFk[d@qg2p/mǶeoYmզEO\l5ۖ-zNK'Ux|ZvTmKŐ^p?\p.#_;o\|T |},۰em^nN֦w۱aՙ9~zcs棿Dz=붟oqg?s;,۴bklӅg.~yglXem޸nSV'8=uFM[S{z4Z֙n [-j[eƶ:QgONy\O>VoL?Wݱqܱb%MPڴnT-ڟ_TG;c^{#5z[tYFES>8x;7ߴy2r>ػkՍ8hЈ.΋9,U۱Jr NLش|l?דzZGDmbۺ-HΜ fiywع4y4Dƙ2ͭ WmZKv]NV)ڸ|CS;}5w5|NW Ow/ } &l۶y٧" {SC;wT8mZ1΄3{XYp~m\kD;n[jm6Z[^Gs?<ɉ㿗'Q'ќqG3N뜬` ~iO5>jR1_xn?}t8cM7zVirJ)鿥G' _˷o''SºN<+[+^VH]#cVT=2m#zdᾪGzRȒCUWUlkQȎkJ#z>xhn#O{_ew9o|֧n.2Jy<vϷ- ,m߿p-9ǿ[U̘߻pǩ'WtEur2;ZIte̐{#ypdj2Ө4,!uH?R!5djT{HciHԭr#19qY0{т7r䰡A 42AC̰A |fh3"9̈?|fQ̨?޶!C 4bFz4"bi# 9l*}B.UjTä&jX\>a$.ry հ٦ ,7r?|fĐAuNk76Mno}DKyg߰t{jNw9m䛙ܢ䛙N3ɯj͟fVo|*֗ ZbM;N~JobVlVދ*}7Ri:[moHw]}G׫WсVڜqJſ߿"x俧D}\-7ڱm݊/q Ob8жU]zwkZU6꛷Sg,M|o?8鯧_?iTNߝ:Eo; b4y{cSPw9q2˧]mI*ՊrBMOi*ê~ŤQZT9uAsSVOvFm]ţL(o>Tm;錶|z;c3YX&ؤڗkhZԶj_ѶNOѴ36eO~ɾ8u (oUNYUNՑ5ɿn'oO=v݋8*uJsg.g/g2V}jcU{tܸs6|UM,۱nת3_3߫hwٯSyg?߷hy Q+^__3x=x5~~aowͳ_?Zg??o]y|*?װʙU~K:g??ϒm۵xYgNrEaG[׫-֯7-iRlp󣊟oXoN1x9~WwTT{ryM^ޘ@_jϓozǞk4; o~rlw{iQog??ת?ߦlEB5?T/jkv*gjǶgooo׷lO146F}PD*姿gcnHU`?N.˛X.U}Gz|ߩt}|lS 9ޮg T9Fݞng/wrr/+_1P~_/O.{/UJO):{yS_θSKiK*%-̿O]R'?ǽ˟_|S?>V_me;5N~G˗urrȭnӊSVN\ OPoSԩrUq˫];gO.ˬh/S쓯yC*NmyyZxzuoWjӦ7)mT~۰y+Qۦ N=?b-o[z|dy{xMmVkoۗ Gӊ8L9JJY?sv-gҵ|o?QXo:oe`K:Sw_tcF?ں~?<01c_u;vֿ~We7tgW:ӴlY jڵl3ɯmU<]Wzl3\l3o+(~ *=fEZyOm'm;~5P;'G6ڵj7#~TDtnygE#޼mX}әnrݪM6<7jjT&>͖Oiu~rVN<7ʗ?Pk*޳,[9sTJu2ߣPT݈;\~::q(ԟ⮧uQǩ㎇qGE֯D..ڿ~w)n8wh*OC44Znu1vc%~qg=Ɠ|z`D\ytuQQvĝƽw^@WگsCP@ֽ(q7QbǨOE~DBehV|^|1%/C~s܈PF9~q٨q;_D~J3Gݨ թP/u\[ֹ7^oxyfT=P=|VrOvDփϫC/|!v<1ǣկ+sQq݆Ϩq_x:ZgK_D:?<+4D,RۿB%4{%Sֵ~C;߯x_༡R,%ޥ+n{qs+9r5X_:wC!D`/ĽWzwQu\-fGcQYj o1祱ǯJdQ'4)~_q3xx:qAyOP݈GmϹz|<3BλKױJQ1j;"78nC=/Dkqf?-^^%!YyazUi.xIqǭQu_t|BQ[Ώ<3-p:_ˋܮ'Ƨw;`9=Ku[\Biv DhB+9,n}G>K=q糥ow?J=;NѨ5yb盢;H߇'ĜŞ[io}q=S:Qx?㎓QG!QCs`\Rh?/NGPĽ.)ӯ kyׅ[ů/yWux-4OԮ{_G~EnGuU+TCW^Si1?"[ C|~ڿx+=uQP{md{]\yq2j;Q8?s/Ηu#rzsvF ΋"!E/4 [1퇡z#C+n.8w~j)rKרŽ5oͨuX/3=:*u~]8_7Q ͳ+5;Cnu<C<)xXyG~|"v=폪SQu%j?v>O%_\TW1煑^x%"<6rE̋*P}n~Eǭu^Wx}}YP Wܟyk}cn_~Bَq!twߡ^8bλ"ۿ:n9|>j=q(TB-|)漸RNQ9}xx0C,n}۾qŜEkqzu3#TCכxڿ`.^NzEh_Ub݋:ܺ_C;Qc3n} y9wƓR}ye~T?m#{G3~8:rԿM{ݷyM߅QqYJ (?ϵ.ƫG`_C:+=wu|#}{ƝoBˉQgb ͋"q3T'K\qT{:ƝW=_{Q>B\/!qǕP?ێvߝyBP]{\ϱFq\?q\|E"4kpCmY|J}n"p^P mGDKq&tܸRs:UBxy|:n%b;1'yhQu$eN܎+rίBx`:>#DԛQGhJl-ٮqY|&TjyA4v[;ԏboh _5AT=ǺE<췡Ad;lϨ~=$j܎=Qu1&uK[Chz u&E{=$Tq^Qw^J@yuR'nCsƯ󚐗Rq~Zw*޸c1BB6=~WK7UѾσ7Od;~DmO~F/4.uTb?=^XNCˍjP{Us8^EաKGJ ~yθǸih_u'j:nQET/kǡx;bwv|5u߸>K1ۻTQ};΄}WP^yθǥx;E*xUq?9ld=ڿq Jފ3C |bd ͛#ǭ<.c{hU#p}1>ŝEՍ]Ƭuq9|6n?-\cGCBм$Mq2YT c'B|6iW*p<*mOΛBu*7TCu]0n]97ƻR_?`?rGqŝ>Kmм%0_}|B=@zjq.J:}?S8yw>w<ۮqDDZIh^uqXi?C!BG_#<XAQǻߋw=#W:BADmDEnG~qssR/=o &j>ZN㟦+K<~!w4z-ymwzN˩4xr#궸NaD;DSnWvQڮq.~|aQEmh}YOT mo'}QYi?%uQW!Ehn#?x8QwB.xbc/ߢ'CE\o7Q\\o[:.E-,n}o"Sj? y{⎫q瑥?먑Xod+uUGB%Cj祕;G'FmGw|+u>Vw ~tWj?-c~b^W^g)G.'|=9%pZDPnDP u ձs_F P-fh~Q'q u*ϟyg`vr}|)zc~'buq?O{'9~yĸj}֨TR.%z#[笊1ԯBZo&(眂+ |+w>#S~|[sbT /]Eգ ~Q'ΕDx%n= ՕS,UE },T닷3?74"bt9߫=QUB/uQ7#-7OTr; *wC)|ܨv,=ڸ1^WvW%;4k:㞗:)/TppgqNj31ϒUr_xbo_Gե~Vz]uR9C| }I1y%ߨ(ޘ; noyFP? =:K#KsOqOםq%WT]9s<~%bޞs py~V=E;Tί/C.t}3Fէ)J%kR?#W~XOvW<(4 ԇ#JT/*jll@? ?ΛC)VZOk:Xq` d?*qկ#?<#ߡykM:^`|ܿ'%^ORaq ];~: =u^%긔J%J!m5קK{c}q=kOK<.pP{Jq;+ZqR=;:zݼzYbݍ}{Plov9o=/o`;>^u\W~<?F]7v;~\~G݆ Ϩ=牡^h gq"|/<,u)G?!?WC?׉ݡEcfhq=qvk~^wQqJ,|!L?7su"_74NƳB6xisVqEr#cT`\q绥wyIMzmQ"4FgqR'qǙP s!|q=a`bם1qRRLJPݍ:.1*EJ> g{q/q#Kuv/uŝw~"_[\ǥ֍/%8'JOWxw"^E/8=C#)xB$b9ոאP9J|\_xSEq 'rw\ꇡv wh:~Ʈߡmd*u^GC穡z"o1uP-f*r\ BgYT84ߋP{ĝk wGPD߷ }K}jM}QRjݎ;ϊC3nݍy1jc)ߨq Կ+W<.z{hsܯJs۸~uKlŝ?mK^xQ1}F։6xZO"AccQ=j<9ߘu*TQq<$_'tB;]O ϒi<-n(/q+CJyd ͗B&⼠"q-=·>Eu1Kum<\9^*<*qFKdWq,>3\~hYtwq=C^,u~B^CiCĽ5 <->T7DXgB'x;CgιƅR# u%TQb?#KϷG/t|JܾqR].54^QKШ <8j|sQf~7GիP C<\MT g_TթB&bc׭(ϡP?`Xo#r\9r؟FEmo֍PձN+/}c`|OzMq}cQEh xtBw]<>=z]{] 4o mG|q=RiP=_q۹ׅ)4 GD(zB穡Zj] mG>k }޾DOT?Bu&TJ1 'Q#ϓC^CAQA+hyk'XǢΏCfhRy\ov ԑJB;qqs6q:_ZoVjR?_q\#@GQuׅD!C&(ވ_@T{#oBu/ סw}ܺCD=(>Q=j\B7!GJ1n/bXuFmWǝ׆ƅV|=j;BKĝ7EoWgW_FP+u^ګ/TVu;g~(4_~=m_ƽn5OZáyfOF/޾J^ C^*]\?q{XTYq=t5-'r>jP-Y`>P\߂?ŏG}WDи.Q_T ~|66TWC -ޯK=; SAP(|żg牕'}KCQ(~rh(Q|)ԏJWRiBP[CP?ˋz^3v~z_,%BF&ZIn{AyLUySҒ?^gɿ/KV~U˪RSIci!mt>2Ph'ȇr\)elK6[G)y^^'$W$/s9"GW!u46QIo Ce\ d̖r\!d-S r%#<'/ɻ_+ɿ|#/UHu# UzI"#eLir\$re쐽r"w}}_>}_>}_>}_>}_>}_7 o߀7 o߀7 o߀7 o߀7 o߀7 o߀7 oCߐ7! oCߐ7! oCߐ7! oCߐ7! oCߐ7! oCߐ7! oC߈F7o#߈F7o#߈F7o#߈F7o#߈F7o#߈F7o#߈F71ocߘ71ocߘ71ocߘ71ocߘ71ocߘ71ocߘ71o߄&7 Mo߄&7 Mo߄&7 Mo߄&7 Mo߄&7 Mo߄&7 Mo߄7)MoSߔ7)MoSߔ7)MoSߔ7)MoSߔ7)MoSߔ7)MoSߔ7)Mo3ߌf7o3ߌf7o3ߌf7o3ߌf7o3ߌf7o3ߌf7o3ߜ79osߜ79osߜ79osߜ79osߜ79osߜ79osߜ7-o [߂-o [߂-o [߂-o [߂-o [߂-o [߂-oK[ߒ%-oK[ߒ%-oK[ߒ%-oK[ߒ%-oK[ߒ%-oK[ߒ%-oK[ߒVo+[ߊVo+[ߊVo+[ߊVo+[ߊVo+[ߊVo+[ߊVok[ߚ5ok[ߚ5ok[ߚ5ok[ߚ5ok[ߚ5ok[ߚ5ok[߆6 mo߆6 mo߆6 mo߆6 mo߆6 mo߆6 mo߆6-mo[ߖ-mo[ߖ-mo[ߖ-mo[ߖ-mo[ߖ-mo[ߖ-mo;ߎvo;ߎvo;ߎvo;ߎvo;ߎvo;ߎvo;ߎ=o{ߞ=o{ߞ=o{ߞ=o{ߞ=o{ߞ=o{ߞ=;߁w;߁w;߁w;߁w;߁w;߁w;ߑw#G;ߑw#G;ߑw#G;ߑw#G;ߑw#G;ߑw#G;ߑw';߉Nw';߉Nw';߉Nw';߉Nw';߉Nw';߉Nwg;ߙw3g;ߙw3g;ߙw3g;ߙw3g;ߙw3g;ߙw3g;ߙ.w ]߅.w ]߅.w ]߅.w ]߅.w ]߅.w ]߅.w ]Wߕw+]Wߕw+]Wߕw+]Wߕw+]Wߕw+]Wߕw+]Wߍnw7ߍnw7ߍnw7ߍnw7ߍnw7ߍnw7ߍnw;wߝw;wߝw;wߝw;wߝw;wߝw;wߝw;{߃={߃={߃={߃={߃={߃={߃'=O{ߓ'=O{ߓ'=O{ߓ'=O{ߓ'=O{ߓ'=O{ߓ'=/{ߋ^/{ߋ^/{ߋ^/{ߋ^/{ߋ^/{ߋ^/{ߛ7o{ߛ7o{ߛ7o{ߛ7o{ߛ7o{ߛ7o{ߛ}߇>}߇>}߇>}߇>}߇>}߇>}_ߗ/}_ߗ/}_ߗ/}_ߗ/}_ߗ/}_ߗ/}_ߗ~?ߏ~?ߏ~?ߏ~?ߏ~?ߏ~?ߏ~ߟ?ߟ?ߟ?ߟ?ߟ?ߟ???????? @? @? @? @? @? @?  ?A ?A ?A ?A ?A ?A ?0`?0`?0`?0`?0`?0`?0?!C?!C?!C?!C?!C?!C?(CP?(CP?(CP?(CP?(CP?(CP?0?a0?a0?a0?a0?a0?ap?8p?8p?8p?8p?8p?8p?#G?#G?#G?#G?#G?#G?#HG?$#HG?$#HG?$#HG?$#HG?$#HG?$#HG?Q(G?Q(G?Q(G?Q(G?Q(G?Q(G?Q4hG?4hG?4hG?4hG?4hG?4hG?4 c?1 c?1 c?1 c?1 c?1 c?1 cX?,cX?,cX?,cX?,cX?,cX?,cX? 8?q8?q8?q8?q8?q8?q8?<x?<x?<x?<x?<x?<x?'? O'? O'? O'? O'? O'? O'?O"D'?O"D'?O"D'?O"D'?O"D'?O"D'?O$'?IO$'?IO$'?IO$'?IO$'?IO$'?IOd'?O2d'?O2d'?O2d'?O2d'?O2d'?O2d'?)O S?)O S?)O S?)O S?)O S?)O S?)O*ST?O*ST?O*ST?O*ST?O*ST?O*ST?O*ST?iO4?iO4?iO4?iO4?iO4?iO4?iO:t?O:t?O:t?O:t?O:t?O:t?O: g?3 g?3 g?3 g?3 g?3 g?3 g?&3Lg?&3Lg?&3Lg?&3Lg?&3Lg?&3Lg?,g?Y,g?Y,g?Y,g?Y,g?Y,g?Y,/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/6lg?6lg?6lg?6lg?6lg?6lg?6?9s?9s?9s?9s?9s?9s?.s\?.s\?.s\?.s\?.s\?.s\?.|?>|?>|?>|?>|?>|/ _/ _/ _/ _/ _/ _/! _B/! _B/! _B/! _B/! _B/! _B/! _"E/_"E/_"E/_"E/_"E/_"E/_"KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK_b/1_b/1_b/1_b/1_b/1_b/1_b99999999999999999999999999WWWWWWWWWWWWWWWWWWWWWWWWWW%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%W%K_%/ K_%/ K_%/ K_%/ K_%/ K_%/ K_/)K_R/)K_R/)K_R/)K_R/)K_R/)K_R/**************************e/_2e/_2e/_2e/_2e/_2e/_2e/9_r/9_r/9_r/9_r/9_r/9_r/9_ W+_ W+_ W+_ W+_ W+_ W+_ W%+_JW%+_JW%+_JW%+_JW%+_JW%+_JW%_*WU_*WU_*WU_*WU_*WU_*WU_*W5_jW5_jW5_jW5_jW5_jW5_jW k_5 k_5 k_5 k_5 k_5 k_5 k_Z-k_Z-k_Z-k_Z-k_Z-k_Z-k_Zu_:u_:u_:u_:u_:u_:uW5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W5W=_z=_z=_z=_z=_z=_z7 o7 o7 o7 o7 o7 oF7o#F7o#F7o#F7o#F7o#F7o#F7Mo&7Mo&7Mo&7Mo&7Mo&7Mo&7Mof7o3f7o3f7o3f7o3f7o3f7o3f7-o [-o [-o [-o [-o [-o [-o+[Vo+[Vo+[Vo+[Vo+[Vo+[Vo+[6mo6mo6mo6mo6mo6mo6o;vo;vo;vo;vo;vo;vo;w;w;w;w;w;w;w';Nw';Nw';Nw';Nw';Nw';Nw.w].w].w].w].w].w]nw7nw7nw7nw7nw7nw7nw={={={={={={={^/{^/{^/{^/{^/{^/{^}>}>}>}>}>}>}ZZZZZZZZZZZZZZZZZZZZZZZZZ::::::::::::::::::::::::::zzzzzzzzzzzzzzzzzzzzzzzzzzooooooooooooooooooooooooooFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFoFo&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&o&ofofofofofofofofofofofofofofofofofofofofofofofofofofoooooooooooooooooooooooooooVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVo6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6ovovovovovovovovovovovovovovovovovovovovovovovovovoNNNNNNNNNNNNNNNNNNNNNNNNNN.........................nnnnnnnnnnnnnnnnnnnnnnnnnn^^^^^^^^^^^^^^^^^^^^^^^^^^>>>>>>>>>>>>>>>>>>>>>>>>>>~~~~~~~~~~~~~~~~~~~~~~~~~AAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaaaaaaQQQQQQQQQQQQQQQQQQQQQQQQQQ1111111111111111111111111qqqqqqqqqqqqqqqqqqqqqqqqqq IIIIIIIIIIIIIIIIIIIIIIIII))))))))))))))))))))))))))iiiiiiiiiiiiiiiiiiiiiiiiiYYYYYYYYYYYYYYYYYYYYYYYYYY9999999999999999999999999yyyyyyyyyyyyyyyyyyyyyyyyyy__________________________E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_%_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e_e___________________________U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u ?~?~?~?~?~?~?[[[[[[[[[[[[[[[[[[[[[[[[[[;;;;;;;;;;;;;;;;;;;;;;;;;;O?)SO?)SO?)SO?)SO?)SO?)SO?4iO?4iO?4iO?4iO?4iO?4iO?43g? 3g? 3g? 3g? 3g? 3g? 3g?,Yg?,Yg?,Yg?,Yg?,Yg?,Yg?2/㿌2/㿌2/㿌2/㿌2/㿌2/㿌2/㿌2/㿌2/㿌2/㿌2/㿌2/㿌2/?9s?9s?9s?9s?9s?9s?y?>>>>>>>>>>>>>>>>>>>>>>>>!!!!!!!!!!!!!!!!!!!!!!!!!!11111111111111111111111111 )))))))))))))))))))));+rN#gYJ"!$ (lّ8i_QrUrQ+>x?v濻~vցu_ׁu_ׁu(((((((((((((((((((((((((8888888888888888888888888OOOOOOOOOOOOOOOOOOOOOOOOOO$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$O$OOOOOOOOOOOOOOOOOOOOOOOOOO4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4O4π π π π π π π π π π π π π π π π π π π π π π π π π π,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ς,ρρρρρρρρρρρρρρρρρρρρρρρρρρσ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ<σ=_׃=_׃=_YQ_ 0B&O5%A ؿ,R ,ر]`ٴVtPKeΙ;ULW ۊ*yɸbz mIE۞G&tQ^E݁g3#7SbEnZ9nZh jr۸괵{k3Cm_eG331W/GoA$tI/˳VQ']Wj^Uܗ}p$n^XҊS-Fpśn]CCQCѻ@{ Ek;Ad$9: jvRAPhXn:sC+-Zf8ٌ͸ٌ(lf|lDd.&f&0i/1iss@mں4Վ^ w/g͟ =iiߍ~S;g4OZkj{fv^o;]zL#&J]6r8rQ^se{oZm:}dYߏ|h[遶7Ԑsiu5/~s}̧Wڻg[RvFz}T@Q)n ~A!Y_ g_[^4:Gs'Zgz묟۶ӗtںN6f/k.OfT_骂e[YaᆱAM)Ou8be2_!uOz{{E6_T#n˟[e9ū,O3KEO-B_%ZV< s7t7mi-# [%+w!/!oo-=uc1BQFg4׿sY:|~*=1 2 d[9ϑ?!b?ceݓ묁E뻇˖:Og~KRoHq<9Vr awoגWds2Xo$lwAOG!>[>ྔ|g?bcr?8}I I[&=O|GI{~&[" ?xwcūjg4gOKM=!JxVzOaIkӻ~b~bQCu?G~Rag0'}ζ̓y?]+'vy?w~b^{`Ol v~b;v~b;yOl+wzĝX~7uO,{qKhI}OC;L7 k~Zv?> :::9: i'Bӡz͆N΄ΆT9 C@ЅEPCo5=zgt 4Wy/#u*ttNY휐 @^Xr7 M]c=-bꠗ=Ԗ|bQojm[Cھ?e~'P{C@|M4C/X{Nv4B3Y6kmg-}z?#o&zZ^p(ttvu0uvz?{_U˘9^6)Cɞs=LJ-rׯ' s=z_O 1itn˧.B$'ele4.c6cv/K}zֳgY؝ek=gmz97mz9=L l5k0buuuuuH*FKA3ꌤQ igM;mFسv#[Fڍu:nd7ȶN#:l4QϤƙF;4Ɇ3 g&L&iiYF)6Ŷ,Mf,:ۈrl6l(g3I#Ftܗ=k:RZy֛R/O2~|VVoqVf_T[Z^ڸ{zkc3żc׹7c9[y-{;.}Ef|K~-4^;r{+^]Gύޮa{c[@l)uptw9?[y=lj:oo+ej 3`i 7QQu- {q^ L^jckZI_7k2/njf_|yTq}Hd:sfQ0BU^<۵wiڋo_m "uEΎ@$b6M?Kڿ "NHDC0U;S#lo ,jVW)j7}W2cPWJʪ?M^bo;p5Vk͘r:NijoKCzھ=܅UQ.JH[a\޽ ժF/ 4]i_nحچst.k\} L-v qIpePVs4j]˅^~mk(\N$z-hoYmKh [DBF / Z jZVyqXGhXwN]Y/lF-\f-"*I(ɳG#mZv2[Q!“C]z=k5CYs,͡ή@Kj_$+h tT>r//@^`fW׮ZcC(z̽M7nC;s< kk.?ششyx?l/ 4_Ajgn鱫"EX=1IO3&vh7H!PQ߿\]2^Xxa]S+5 qlO.H,}œ Tlg/,5 Um>M+iِ~JП I ;rE+k5ӋTT05}=諶5ϴy˓Vw0O_߸qv) pe߮PK]wqh)YIf/8'#4[p1џ]^n#jDK/}e@׊}-t>4EB+mXn we9Ovzųeeŵ#׷3gl_.l8bzXssN݉`o{-P~Cl NDڻ#}UiZݴK 柦aw1iH[Bζ[֨e`ŽH-xȥ1jKJiޱbQ4_V޷|U'iV۹yUvkzݎMe,{VVܙ.޺()4L_d^%rv:p.knv-; d\k]BU3.nD'.Rsw;3 =Z]^chef!-JuƚH{W+A1?ZHGk{WW(?k FZ( bNo.M[n޺*}3za4KOQ켚$t4ZwG78tQKD9W:eT>y Aԅ#^>Q# lo ۾}VzDcQߜ}ck jvˡq. ZJ šx pʮ48= =+DmFt~}g:gj+=W/zEƳ<˳<;Y~YY~YloFMv.i"W[om绁}wLpՔ֮hr8].:x@tWXVUXVY.^Zai؍y~9&ȗ|9K_mCGU8^tVaG֔5ÝWzb? GGi[B4$t7hgubOZ4?!bLJ |"Ƈ!bNCvyk6D̆ ]QjC*D*s[Co }PHW!]Q"w5ǿ0B惖}yRܷ1eLgʘJ]=BqʮZT)[?nC;-/;T;QbSٷ1ߍEo􏛊CEyN:8reMT?ʿcwxN_hfh\(~!zj)ߟᔋJiC* _>'}Jאtb UL˶k_ֆ|vX" ܟ2BKi_xվ}0؝;X\i,[+l UzCz} ;X6TvC|#(upÖ=HJx ⭥}ĹTƬᅌs:_} wPMcMV9v_ˡy6쥢w(YYYYYYYY)YYYYYYYYMY5ų<˳<˳<˳<˳<˳<˳<˳<˳)[GW#P.A}en`jj;7ib 2w5߾ww¬ĝ;vi^p9mk8_=2˥!M{K?---uvskǮ;zOܙg]woK"u\ɦO_GK}qmͤgվUODQWr>hb 0&b&Al->:jS S%wϔSB< ΔSzoT^:hgڅզ:I{mGWCwC={Hϟ =>|%=IOϞo迡MC7;HI϶0Q-uf@ѿ% FG5~P6Ѡr{݌~n7c(uЕ*DөBuV+kFYvٿYP\ԇpQ.E}>\ԇpSnM}7>ԇpSt><ԇ$><ԇP P A;I P P P^K}x/>P/ԇR>/G}>5G}?>ԇ$:MS~O}Qc0uFi$]Fm$=FR1^#3:[Vgx3{vY9BopPFL{VҦ@;E(> -?<::: ::D(NvtPl)M^ eBq7QpP Ϙڔr6u6= !Z>%Th6tPj@ht?P6m<}](N1C~ƴ7P|l43C(^σzW[=ON ٴZ688WntP6x8mZ/_m yBQ@Rk2.JaTX ⫰Ja8+,}uNwSaQ*, 7[\ K]Ya1Ǭ(cVs̊bYQ1+^s̊5ǬxM1, RaVX|b>7`8+,昕6fCz.u8YO)n&"c-]x+,(Y*, d)kSaQ*,ڹd1\%9foYb8 ¢TX6fpzTWq9݊nx8L^)+r&fzu.w ky5Y=r,8\؇=7<"f<]uՃ+(Zcq>==N+=^[qOWGq#>LEO5xl ><k6̆](02z3`:wKx(DƎ⃜ jå 'K{. ~36g)\>TGviz/inst/0000755000175400017540000000000013175732505013504 5ustar00biocbuildbiocbuildGviz/inst/CITATION0000644000175400017540000000200213175714140014626 0ustar00biocbuildbiocbuildcitHeader("To cite Gviz in publications, please use:") citEntry(entry="Inbook", author=personList(as.person("Florian Hahne"), as.person("Robert Ivanek")), editor=personList(as.person("Ewy Math{\\'e}"), as.person("Sean Davis")), chapter="Visualizing Genomic Data Using Gviz and Bioconductor", title="Statistical Genomics: Methods and Protocols", year=2016, publisher="Springer New York", address="New York, NY", pages="335--351", isbn="978-1-4939-3578-9", doi="10.1007/978-1-4939-3578-9_16", url="http://dx.doi.org/10.1007/978-1-4939-3578-9_16", textVersion="Hahne F, Ivanek R. Visualizing Genomic Data Using Gviz and Bioconductor. Methods Mol Biol. 1418:335-51 (2016)." ) citFooter("This free open-source software implements academic research by the authors and co-workers. If you use it, please support the project by citing the appropriate journal articles.") Gviz/inst/doc/0000755000175400017540000000000013175732505014251 5ustar00biocbuildbiocbuildGviz/inst/doc/Gviz.R0000644000175400017540000014056313175732505015324 0ustar00biocbuildbiocbuild### R code from vignette source 'Gviz.Rnw' ################################################### ### code chunk number 1: style ################################################### BiocStyle::latex() ################################################### ### code chunk number 2: init ################################################### options(width=65) library(xtable) source(system.file("scripts/documentation.R", package="Gviz")) xtabDetails <- details addParTable <- function(class, skip=c("showTitle", "size", "background.title"), add=NULL) { Parameters <- data.frame("Display Parameter"=names(xtabDetails[[class]]), "Description"=xtabDetails[[class]], check.names=FALSE) align <- "lrp{5in}" if(!is.null(add)){ Parameters <- cbind(Parameters, add) align <- c("lp{4in}", "lp{4in}", "lp{4in}", "lp{4in}") } Parameters <- Parameters[order(Parameters[,1]),] Parameters <- apply(Parameters, 2, function(x) gsub("_", "\\_", x, fixed=TRUE)) rownames(Parameters) <- gsub("_", "\\_", rownames(Parameters), fixed=TRUE) sel <- Parameters[,1] %in% skip Parameters[,2] <- gsub("\\code{\\linkS4class{", "\\Rclass{{", Parameters[,2], fixed=TRUE) print(xtable(Parameters[!sel,], align=align), sanitize.text.function=function(x) x, include.rownames=FALSE, floating=FALSE, tabular.environment="longtable") return(invisible()) } hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") oto <- options(timeout=5) hasBiomartConnection <- (!is(try(download.file("http://www.biomart.org", tempfile(), quiet=TRUE)), "try-error") && !is(try(biomaRt::listMarts(), silent=TRUE), "try-error")) options(timeout=oto) ## Uncommenting this helps when the UCSC server has a hickup but still lets you connect: ##hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") && !is(try(IdeogramTrack(genome="hg19", chromosome=7), silent=TRUE), "try-error") ################################################### ### code chunk number 3: loadPackage ################################################### library(Gviz) ################################################### ### code chunk number 4: AnnotationTrack ################################################### library(GenomicRanges) data(cpgIslands) class(cpgIslands) chr <- as.character(unique(seqnames(cpgIslands))) gen <- genome(cpgIslands) atrack <- AnnotationTrack(cpgIslands, name="CpG") ################################################### ### code chunk number 5: plotAnnotationTrack ################################################### plotTracks(atrack) ################################################### ### code chunk number 6: GenomeAxisTrack ################################################### gtrack <- GenomeAxisTrack() ################################################### ### code chunk number 7: plotGenomeAxisTrack ################################################### plotTracks(list(gtrack, atrack)) ################################################### ### code chunk number 8: showIdeogramTrack (eval = FALSE) ################################################### ## itrack <- IdeogramTrack(genome=gen, chromosome=chr) ################################################### ### code chunk number 9: doIdeogramTrack ################################################### if(hasUcscConnection){ itrack <- IdeogramTrack(genome=gen, chromosome=chr) }else{ data(itrack) } ################################################### ### code chunk number 10: plotIdeogramTrack ################################################### plotTracks(list(itrack, gtrack, atrack)) ################################################### ### code chunk number 11: GeneRegionTrack ################################################### data(geneModels) grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model") plotTracks(list(itrack, gtrack, atrack, grtrack)) ################################################### ### code chunk number 12: zooming ################################################### plotTracks(list(itrack, gtrack, atrack, grtrack), from=26700000, to=26750000) ################################################### ### code chunk number 13: zooming2 ################################################### plotTracks(list(itrack, gtrack, atrack, grtrack), extend.left=0.5, extend.right=1000000) ################################################### ### code chunk number 14: zooming3 ################################################### plotTracks(list(itrack, gtrack, atrack, grtrack), extend.left=0.5, extend.right=1000000, col=NULL) ################################################### ### code chunk number 15: zooming4 ################################################### library(BSgenome.Hsapiens.UCSC.hg19) strack <- SequenceTrack(Hsapiens, chromosome=chr) plotTracks(list(itrack, gtrack, atrack, grtrack, strack), from=26591822, to=26591852, cex=0.8) ################################################### ### code chunk number 16: DataTrack ################################################### set.seed(255) lim <- c(26700000, 26750000) coords <- sort(c(lim[1], sample(seq(from=lim[1], to=lim[2]), 99), lim[2])) dat <- runif(100, min=-10, max=10) dtrack <- DataTrack(data=dat, start=coords[-length(coords)], end=coords[-1], chromosome=chr, genome=gen, name="Uniform") plotTracks(list(itrack, gtrack, atrack, grtrack, dtrack), from=lim[1], to=lim[2]) ################################################### ### code chunk number 17: DataTrackHist ################################################### plotTracks(list(itrack, gtrack, atrack, grtrack, dtrack), from=lim[1], to=lim[2], type="histogram") ################################################### ### code chunk number 18: displayPars1f ################################################### grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model", transcriptAnnotation="symbol", background.title="brown") head(displayPars(grtrack)) displayPars(grtrack) <- list(background.panel="#FFFEDB", col=NULL) head(displayPars(grtrack)) plotTracks(list(itrack, gtrack, atrack, grtrack)) ################################################### ### code chunk number 19: displayPars2f ################################################### plotTracks(list(itrack, gtrack, atrack, grtrack), background.panel="#FFFEDB", background.title="darkblue") ################################################### ### code chunk number 20: displayPars3 ################################################### dp <- availableDisplayPars(grtrack) tail(dp) ################################################### ### code chunk number 21: displayPars4 ################################################### getOption("Gviz.scheme") scheme <- getScheme() scheme$GeneRegionTrack$fill <- "salmon" scheme$GeneRegionTrack$col <- NULL scheme$GeneRegionTrack$transcriptAnnotation <- "transcript" addScheme(scheme, "myScheme") options(Gviz.scheme="myScheme") grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model") plotTracks(grtrack) options(Gviz.scheme="default") grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model", transcriptAnnotation="symbol") ################################################### ### code chunk number 22: schemes (eval = FALSE) ################################################### ## .GvizSchemes <- list(myScheme=list(GeneRegionTrack=list(fill="salmon", col=NULL, transcriptAnnotation="transcript"))) ################################################### ### code chunk number 23: plottingdirections ################################################### plotTracks(list(itrack, gtrack, atrack, grtrack), reverseStrand=TRUE) ################################################### ### code chunk number 24: GenomeAxisTrackClass1 ################################################### axisTrack <- GenomeAxisTrack() plotTracks(axisTrack, from=1e6, to=9e6) ################################################### ### code chunk number 25: GenomeAxisTrackClass2 ################################################### axisTrack <- GenomeAxisTrack(range=IRanges(start=c(2e6, 4e6), end=c(3e6, 7e6), names=rep("N-stretch", 2))) plotTracks(axisTrack, from=1e6, to=9e6) ################################################### ### code chunk number 26: GenomeAxisTrackClass2a ################################################### plotTracks(axisTrack, from=1e6, to=9e6, showId=TRUE) ################################################### ### code chunk number 27: GenomeAxisTrackClass3 ################################################### plotTracks(axisTrack, from=1e6, to=9e6, add53=TRUE, add35=TRUE) ################################################### ### code chunk number 28: GenomeAxisTrackClass4 ################################################### plotTracks(axisTrack, from=1e6, to=9e6, add53=TRUE, add35=TRUE, littleTicks=TRUE) ################################################### ### code chunk number 29: GenomeAxisTrackClass5 ################################################### plotTracks(axisTrack, from=1e6, to=9e6, exponent=4) ################################################### ### code chunk number 30: GenomeAxisTrackClass6 ################################################### plotTracks(axisTrack, from=1e6, to=9e6, labelPos="below") ################################################### ### code chunk number 31: GenomeAxisTrackClass7 ################################################### plotTracks(axisTrack, from=1e6, to=9e6, scale=0.5) ################################################### ### code chunk number 32: GenomeAxisTrackClass8 ################################################### plotTracks(axisTrack, from=1e6, to=9e6, scale=0.5, labelPos="below") ################################################### ### code chunk number 33: GenomeAxisTrackClassTable ################################################### addParTable("GenomeAxisTrack") ################################################### ### code chunk number 34: IdeogramTrackClass1Show (eval = FALSE) ################################################### ## ideoTrack <- IdeogramTrack(genome="hg19", chromosome="chrX") ## plotTracks(ideoTrack, from=85e6, to=129e6) ################################################### ### code chunk number 35: IdeogramTrackClass1Do ################################################### if(hasUcscConnection){ ideoTrack <- IdeogramTrack(genome="hg19", chromosome="chrX") }else{ data(itrack) } plotTracks(ideoTrack, from=85e6, to=129e6) ################################################### ### code chunk number 36: IdeogramTrackClass2 ################################################### plotTracks(ideoTrack, from=85e6, to=129e6, showId=FALSE) ################################################### ### code chunk number 37: IdeogramTrackClass3 ################################################### plotTracks(ideoTrack, from=85e6, to=129e6, showId=FALSE, showBandId=TRUE, cex.bands=0.5) ################################################### ### code chunk number 38: IdeogramTrackClassTable ################################################### addParTable("IdeogramTrack") ################################################### ### code chunk number 39: DataClass1 ################################################### data(twoGroups) dTrack <- DataTrack(twoGroups, name="uniform") plotTracks(dTrack) ################################################### ### code chunk number 40: >= BiocStyle::latex() @ \RequirePackage[utf8]{inputenc} \SweaveOpts{keep.source=FALSE,pdf=TRUE,eps=FALSE} % \RequirePackage{hyperref} \RequirePackage{url} %\RequirePackage[authoryear,round]{natbib} %\bibliographystyle{plainnat} % \RequirePackage[text={7.2in,9in},centering]{geometry} \RequirePackage{Sweave} \setkeys{Gin}{width=0.95\textwidth} \RequirePackage{longtable} \RequirePackage{graphicx} \newcommand{\code}[1]{{\texttt{#1}}} \newcommand{\term}[1]{{\emph{#1}}} \newcommand{\Rmethod}[1]{{\textit{#1}}} \newcommand{\Rfunarg}[1]{{\textit{#1}}} \newcommand{\scscst}{\scriptscriptstyle} \newcommand{\scst}{\scriptstyle} \newcommand{\mgg}[0]{\Rpackage{Gviz} } \newcommand{\Reference}[1]{{\texttt{#1}}} \newcommand{\link}[1]{{#1}} \soulregister{\link}{1}% necessary for compatibility with LaTeX soul package used by BiocStyle for inline code highlighting \newcommand{\RR}[0]{{\texttt{R}}} \title{The Gviz User Guide} \author{Florian Hahne\footnote{florian.hahne@novartis.com}} \date{Edited: January 2014; Compiled: \today} \begin{document} <>= options(width=65) library(xtable) source(system.file("scripts/documentation.R", package="Gviz")) xtabDetails <- details addParTable <- function(class, skip=c("showTitle", "size", "background.title"), add=NULL) { Parameters <- data.frame("Display Parameter"=names(xtabDetails[[class]]), "Description"=xtabDetails[[class]], check.names=FALSE) align <- "lrp{5in}" if(!is.null(add)){ Parameters <- cbind(Parameters, add) align <- c("lp{4in}", "lp{4in}", "lp{4in}", "lp{4in}") } Parameters <- Parameters[order(Parameters[,1]),] Parameters <- apply(Parameters, 2, function(x) gsub("_", "\\_", x, fixed=TRUE)) rownames(Parameters) <- gsub("_", "\\_", rownames(Parameters), fixed=TRUE) sel <- Parameters[,1] %in% skip Parameters[,2] <- gsub("\\code{\\linkS4class{", "\\Rclass{{", Parameters[,2], fixed=TRUE) print(xtable(Parameters[!sel,], align=align), sanitize.text.function=function(x) x, include.rownames=FALSE, floating=FALSE, tabular.environment="longtable") return(invisible()) } hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") oto <- options(timeout=5) hasBiomartConnection <- (!is(try(download.file("http://www.biomart.org", tempfile(), quiet=TRUE)), "try-error") && !is(try(biomaRt::listMarts(), silent=TRUE), "try-error")) options(timeout=oto) ## Uncommenting this helps when the UCSC server has a hickup but still lets you connect: ##hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") && !is(try(IdeogramTrack(genome="hg19", chromosome=7), silent=TRUE), "try-error") @ \maketitle \tableofcontents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} In order to make sense of genomic data one often aims to plot such data in a genome browser, along with a variety of genomic annotation features, such as gene or transcript models, CpG island, repeat regions, and so on. These features may either be extracted from public data bases like ENSEMBL or UCSC, or they may be generated or curated in-house. Many of the currently available genome browsers do a reasonable job in displaying genome annotation data, and there are options to connect to some of them from within \R (e.g., using the \Rpackage{rtracklayer} package). However, none of these solutions offer the flexibility of the full \RR graphics system to display large numeric data in a multitude of different ways. The \mgg package aims to close this gap by providing a structured visualization framework to plot any type of data along genomic coordinates. It is loosely based on the \Rpackage{GenomeGraphs} package by Steffen Durinck and James Bullard, however the complete class hierarchy as well as all the plotting methods have been restructured in order to increase performance and flexibility. All plotting is done using the grid graphics system, and several specialized annotation classes allow to integrate publicly available genomic annotation data from sources like UCSC or ENSEMBL. \section{Basic Features} The fundamental concept behind the \mgg package is similar to the approach taken by most genome browsers, in that individual types of genomic features or data are represented by separate tracks. Within the package, each track constitutes a single object inheriting from class \Rclass{GdObject}, and there are constructor functions as well as a broad range of methods to interact with and to plot these tracks. When combining multiple objects, the individual tracks will always share the same genomic coordinate system, thus taking the burden of aligning the plot elements from the user. It is worth mentioning that, at a given time, tracks in the sense of the \mgg package are only defined for a single chromosome on a specific genome, at least for the duration of a given plotting operation. You will later see that a track may still contain information for multiple chromosomes, however most of this is hidden except for the currently active chromosome, and the user will have to explicitely switch the chromsome to access the inactive parts. While the package in principle imposes no fixed structure on the chromosome or on the genome names, it makes sense to stick to a standaradized naming paradigm, in particular when fetching additional annotation information from online resources. By default this is enforced by a global option \code{ucscChromosomeNames}, which is set during package loading and which causes the package to check all supplied chromosome names for validity in the sense of the UCSC definition (chromosomes have to start with the \term{chr} string). You may decide to turn this feature off by calling \code{options(ucscChromosomeNames=FALSE)}. For the remainder of this vignette however, we will make use of the UCSC genome and chromosome identifiers, e.g., the \Robject{chr7} chromosome on the mouse \Robject{mm9} genome. The different track classes will be described in more detail in the \Reference{Track classes} section further below. For now, let's just take a look at a typical \mgg session to get an idea of what this is all about. We begin our presentation of the available functionality by loading the package: <>= library(Gviz) @ The most simple genomic features consist of start and stop coordinates, possibly overlapping each other. CpG islands or microarray probes are real life examples for this class of features. In the Bioconductor world those are most often represented as run-length encoded vectors, for instance in the \Rclass{IRanges} and \Rclass{GRanges} classes. To seamlessly integrate with other Bioconductor packages, we can use the same data structures to generate our track objects. A sample set of CpG island coordinates has been saved in the \Robject{cpgIslands} object and we can use that for our first annotation track object. The constructor function \Rfunction{AnnotationTrack} is a convenient helper to create the object. <>= library(GenomicRanges) data(cpgIslands) class(cpgIslands) chr <- as.character(unique(seqnames(cpgIslands))) gen <- genome(cpgIslands) atrack <- AnnotationTrack(cpgIslands, name="CpG") @ Please note that the \Rfunction{AnnotationTrack} constructor (as most constructors in this package) is fairly flexible and can accomodate many different types of inputs. For instance, the start and end coordinates of the annotation features could be passed in as individual arguments \Robject{start} and \Robject{end}, as a \Rclass{data.frame} or even as an \Rclass{IRanges} or \Rclass{GRangesList} object. Furthermore, a whole bunch of coercion methods are available for those package users that prefer the more traditional R coding paradigm, and they should allow operations along the lines of \code{as(obj, 'AnnotationTrack')}. You may want to consult the class' manual page for more information, or take a look at the \Reference{Bioconductor integration} section for a listing of the most common data structures and their respective counterparts in the \mgg package. With our first track object being created we may now proceed to the plotting. There is a single function \Rfunction{plotTracks} that handles all of this. As we will learn in the remainder of this vignette, \Rfunction{plotTracks} is quite powerful and has a number of very useful additional arguments. For now we will keep things very simple and just plot the single CpG islands annotation track. <>= plotTracks(atrack) @ As you can see, the resulting graph is not particularly spectacular. There is a title region showing the track's name on a gray background on the left side of the plot and a data region showing the seven individual CpG islands on the right. This structure is similar for all the available track objects classes and it somewhat mimicks the layout of the popular UCSC Genome Browser. If you are not happy with the default settings, the \mgg package offers a multitude of options to fine-tune the track appearance, which will be shown in the \Reference{Plotting Parameters} section. Appart from the relative distance of the Cpg islands, this visualization does not tell us much. One obvious next step would be to indicate the genomic coordinates we are currently looking at in order to provide some reference. For this purpose, the \mgg package offers the \Rclass{GenomeAxisTrack} class. Objects from the class can be created using the constructor function of the same name. <>= gtrack <- GenomeAxisTrack() @ Since a \Rclass{GenomeAxisTrack} object is always relative to the other tracks that are plotted, there is little need for additional arguments. Essentially, the object just tells the \Rfunction{plotTracks} function to add a genomic axis to the plot. Nonetheless, it represent a separate annotation track just as the CpG island track does. We can pass this additional track on to \Rfunction{plotTracks} in the form of a list. <>= plotTracks(list(gtrack, atrack)) @ You may have realized that the genomic axis does not take up half of the available vertical plotting space, but only uses the space necessary to fit the axis and labels. Also the title region for this track is empty. In general, the \mgg package tries to find reasonable defaults for all the parameters controlling the look and feel of a plots so that appealing visualizations can be created without too much tinkering. However, all features on the plot including the relative track sizes can also be adjusted manually. As mentioned before in the beginning of this vignette, a plotted track is always defined for exactly one chromosome on a particular genome. We can include this information in our plot by means of a chromosome ideogram. An ideogram is a simplified visual representation of a chromosome, with the different chromosomal staining bands indicated by color, and the centromer (if present) indicated by the shape. The necessary information to produce this visualization is stored in online data repositories, for instance at UCSC. The \mgg package offers very convenient connections to some of these repositories, and the \Rclass{IdeogramTrack} constructor function is one example for such a connection. With just the information about a valid UCSC genome and chromosome, we can directly fetch the chromosome ideogram information and construct a dedicated track object that can be visualized by \Rfunction{plotTracks}. Please not that you will need an established internet connection for this to work, and that fetching data from UCSC can take quite a long time, depending on the server load. The \mgg package tries to cache as much data as possible to reduce the bandwidth in future queries. <>= itrack <- IdeogramTrack(genome=gen, chromosome=chr) @ <>= if(hasUcscConnection){ itrack <- IdeogramTrack(genome=gen, chromosome=chr) }else{ data(itrack) } @ Similar to the previous examples, we stick the additional track object into a list in order to plot it. <>= plotTracks(list(itrack, gtrack, atrack)) @ Ideogram tracks are the one exception in all of \mgg's track objects in the sense that they are not really displayed on the same coordinate system like all the other tracks. Instead, the current genomic location is indicated on the chromosome by a red box (or, as in this case, a red line if the width is too small to fit a box). So far we have only looked at very basic annotation features and how to give a point of reference to our plots. Naturally, we also want to be able to handle more complex genomic features, such as gene models. One potential use case would be to utilize gene model information from an existing local source. Alternatively, we could dowload such data from one of the available online resources like UCSC or ENSEBML, and there are constructor functions to handle these tasks. For this example we are going to load gene model data from a stored \Rclass{data.frame}. The track class of choice here is a \Rclass{GeneRegionTrack} object, which can be created via the constructor function of the same name. Similar to the \Rclass{AnnotationTrack} constructor there are multiple possible ways to pass in the data. <>= data(geneModels) grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model") plotTracks(list(itrack, gtrack, atrack, grtrack)) @ In all those previous examples the plotted genomic range has been determined automatically from the input tracks. Unless told otherwise, the package will always display the region from the leftmost item to the rightmost item in any of the tracks. Of course such a static view on a chromosomal region is of rather limited use. We often want to zoom in or out on a particular plotting region to see more details or to get a broader overview. To that end, \Rfunction{plotTracks} supports the \Robject{from} and \Robject{to} arguments that let us choose an arbitrary genomic range to plot. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), from=26700000, to=26750000) @ Another pair of arguments that controls the zoom state are \Robject{extend.left} and \Robject{extend.right}. Rather than \Robject{from} and \Robject{to}, those arguments are relative to the currently displayed ranges, and can be used to quickly extend the view on one or both ends of the plot. In addition to positive or negative absolute integer values one can also provide a float value between -1 and 1 which will be interpreted as a zoom factor, i.e., a value of 0.5 will cause zooming in to half the currently displayed range. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), extend.left=0.5, extend.right=1000000) @ You may have noticed that the layout of the gene model track has changed depending on the zoom level. This is a feature of the \mgg package, which automatically tries to find the optimal visualization settings to make best use of the available space. At the same time, when features on a track are too close together to be plotted as separate items with the current device resolution, the package will try to reasonably merge them in order to avoid overplotting. Often individual ranges on a plot tend to grow quite narrow, in particular when zooming far out, and a couple of tweaks become helpful in order to get nice plots, for instance to drop the bounding borders of the exons. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), extend.left=0.5, extend.right=1000000, col=NULL) @ When zooming further in it may become interesting to take a look at the actual genomic sequence at a given position, and the \mgg package provides the track class \Rclass{SequenceTrack} that let's you do just that. Among several other options it can draw the necessary sequence information from one of the \Rclass{BSgenome} packages. <>= library(BSgenome.Hsapiens.UCSC.hg19) strack <- SequenceTrack(Hsapiens, chromosome=chr) plotTracks(list(itrack, gtrack, atrack, grtrack, strack), from=26591822, to=26591852, cex=0.8) @ So far we have replicated the features of a whole bunch of other genome browser tools out there. The real power of the package comes with a rather general track type, the \Rclass{DataTrack}. \Rclass{DataTrack} object are essentially run-length encoded numeric vectors or matrices, and we can use them to add all sorts of numeric data to our genomic coordinate plots. There are a whole bunch of different visualization options for these tracks, from dot plots to histograms to box-and-whisker plots. The individual rows in a numeric matrix are considered to be different data groups or samples, and the columns are the raster intervals in the genomic coordinates. Of course, the data points (or rather the data ranges) do not have to be evenly spaced; each column is associated with a particular genomic location. For demonstration purposes we can create a simple \Rclass{DataTrack} object from randomly sampled data. <>= set.seed(255) lim <- c(26700000, 26750000) coords <- sort(c(lim[1], sample(seq(from=lim[1], to=lim[2]), 99), lim[2])) dat <- runif(100, min=-10, max=10) dtrack <- DataTrack(data=dat, start=coords[-length(coords)], end=coords[-1], chromosome=chr, genome=gen, name="Uniform") plotTracks(list(itrack, gtrack, atrack, grtrack, dtrack), from=lim[1], to=lim[2]) @ The first thing to notice is that the title panel to the right of the plot now contains a y-axis indicating the range of the displayed data. The default plotting type for numeric vectors is a simple dot plot. This is by far not the only visualization option, and in a sense it is waisting quite a lot of information because the run-length encoded ranges are not immediately apparent. We can change the plot type by supplying the \Robject{type} argument to \Rfunction{plotTracks}. A complete description of the available plotting options is given in section \Reference{Track classes}, and a more detailed treatment of the so-called 'display parameters' that control the look and feel of a track is given in the \Reference{Plotting Parameters} section. <>= plotTracks(list(itrack, gtrack, atrack, grtrack, dtrack), from=lim[1], to=lim[2], type="histogram") @ As we can see, the data values in the numeric vector are indeed matched to the genomic coordinates of the \Rclass{DataTrack} object. Such a visualization can be particularly helpful when displaying for instance the coverage of NGS reads along a chromosome, or to show the measurement values of mapped probes from a micro array experiment. This concludes our first introduction into the \mgg package. The remainder of this vignette will deal in much more depth with the different concepts and the various track classes and plotting options. \section{Plotting parameters} \subsection{Setting parameters} Although not implicitely mentioned before, we have already made use of the plotting parameter facilities in the \mgg package, or, as we will call them from now on, the 'display parameters'. Display parameters are properties of individual track objects (i.e., of any object inheriting from the base \Rclass{GdObject} class). They can either be set during object instantiation as additional arguments to the constructor functions or, for existing track objects, using the \Rfunction{displayPars} replacement method. In the former case, all named arguments that can not be matched to any of the constructor's formal arguments are considered to be display parameters, regardless of their type or whether they are defined for a particular track class or not. The following code example rebuilds our \Rclass{GeneRegionTrack} object with a bunch of display parameters and demonstrates the use of the \Rfunction{displayPars} accessor and replacement methods. <>= grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model", transcriptAnnotation="symbol", background.title="brown") head(displayPars(grtrack)) displayPars(grtrack) <- list(background.panel="#FFFEDB", col=NULL) head(displayPars(grtrack)) plotTracks(list(itrack, gtrack, atrack, grtrack)) @ For our gene model track we have now added the gene symbols of the different transcripts to the plot, removed the gray border around the individual exons models, and changed the background color of both the title and the data panel to a yellowish hue. There is a third option to set display parameters for a single plotting operation (rather than the permanent setting in the track object) by passing in additional arguments to the \Rfunction{plotTracks} function. We have already made use of this feature, for instance in the previous data plotting type example. It is worth mentioning that all display parameters which are passed along with the \Rfunction{plotTracks} function apply to \emph{all} track objects in the plot. For some objects classes a particular display parameter may not make any sense, and in that case it is simply ignored. Also, the settings only apply for one single plotting operation and will not be retained in the plotted track objects. They do however get precedence over the object-internal parameters. The following line of code exemplifies this behaviour. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), background.panel="#FFFEDB", background.title="darkblue") @ In order to make full use of the flexible parameter system we need to know which display parameters control which aspect of which track class. The obvious source for this information are the man pages of the respective track classes, which list all available parameters along with a short description of their effect and default values in the \Robject{Display Parameters} section. Alternatively, we can use the \Rfunction{availableDisplayPars} function, which prints out the available parameters for a class as well as their default values in a list-like structure. The single argument to the function is either a class name of a track object class, or the object itself, in which case its class is automatically detected. <>= dp <- availableDisplayPars(grtrack) tail(dp) @ As we can see, display parameters can be inherited from parent classes. For the regular user this is not important at all, however it nicely exemplifies the structure of the class hierarchy in the \mgg package. \subsection{Schemes} Users might find themselves changing the same parameters over and over again, and it would make sense to register these modifications in a central location once and for all. To this end the \mgg package supports display parameter schemes. A scheme is essentially just a bunch of nested named lists, where the names on the first level of nesting should correspond to track class names, and the names on the second level to the display parameters to set. The currently active schmeme can be changed by setting the global option \Robject{Gviz.scheme}, and a new scheme can be registered by using the \Rfunction{addScheme} function, providing both the list and the name for the new scheme. The \Rfunction{getScheme} function is useful to get the current scheme as a list structure, for instance to use as a skeleton for your own custom scheme. <>= getOption("Gviz.scheme") scheme <- getScheme() scheme$GeneRegionTrack$fill <- "salmon" scheme$GeneRegionTrack$col <- NULL scheme$GeneRegionTrack$transcriptAnnotation <- "transcript" addScheme(scheme, "myScheme") options(Gviz.scheme="myScheme") grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model") plotTracks(grtrack) options(Gviz.scheme="default") grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model", transcriptAnnotation="symbol") @ In order to make these settings persitant across R sessions one can create one or several schemes in the global environment in the special object \Robject{.GvizSchemes}, for instance by putting the necessary code in the \Robject{.Rprofile} file. This object needs to be a named list of schemes, and it will be collected when the \mgg package loads. Its content is then automatically added to the collection of available schemes. The following pseudo-code exemplifies this and could go into an \Robject{.Rprofile} file. <>= .GvizSchemes <- list(myScheme=list(GeneRegionTrack=list(fill="salmon", col=NULL, transcriptAnnotation="transcript"))) @ Please note that because display parameters are stored with the track objects, a scheme change only has an effect on those objects that are created after the change has taken place. \subsection{Plotting direction} By default all tracks will be plotted in a 5' -> 3' direction. It sometimes can be useful to actually show the data relative to the opposite strand. To this end one can use the \Rfunarg{reverseStrand} display parameter, which does just what its name suggests. Since the combination of forward and reverse stranded tracks on a single plot does not make too much sense, one should usually set this as a global display parameter in the \Rfunction{plotTracks} function. The function will however cast a warning if a mixture of forward and reverse strand tracks has been passed in for plotting. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), reverseStrand=TRUE) @ As you can see, the fact that the data has been plotted on the reverse strand is also reflected in the \Rclass{GenomeAxis} track. \section{Track classes} In this section we will highlight all of the available annotation track classes in the \mgg package. For the complete reference of all the nuts and bolts, including all the avaialable methods, please see the respective class man pages. We will try to keep this vignette up to date, but in cases of discrepancies between here and the man pages you should assume the latter to be correct. \subsection{GenomeAxisTrack} \Rclass{GenomeAxisTrack} objects can be used to add some reference to the currently displayed genomic location to a \mgg plot. In their most basic form they are really just a horizontal axis with genomic coordinate tickmarks. Using the \Rfunction{GenomeAxisTrack} constructor function is the recommended way to instantiate objects from the class. There is no need to know in advance about a particular genomic location when constructing the object. Instead, the displayed coordinates will be determined from the context, e.g., from the \Rfunarg{from} and \Rfunarg{to} arguments of the \Rfunction{plotTracks} function, or, when plotted together with other track objects, from their genomic locations. <>= axisTrack <- GenomeAxisTrack() plotTracks(axisTrack, from=1e6, to=9e6) @ As an optional feature one can highlight particular regions on the axis, for instance to indicated stretches of N nucleotides or gaps in genomic alignments. Such regions have to be supplied to the optional \Rfunarg{range} argument of the constructor function as either an \Rclass{GRanges} or an \Rclass{IRanges} object. <>= axisTrack <- GenomeAxisTrack(range=IRanges(start=c(2e6, 4e6), end=c(3e6, 7e6), names=rep("N-stretch", 2))) plotTracks(axisTrack, from=1e6, to=9e6) @ If names have been supplied with the \Rfunarg{range} argument, those can also be added to the plot. <>= plotTracks(axisTrack, from=1e6, to=9e6, showId=TRUE) @ \subsubsection*{Display parameters for GenomeAxisTrack objects} There are a whole bunch of display parameters to alter the appearance of \Rclass{GenomeAxisTrack} plots. For instance, one could add directional indicators to the axis using the \Rfunarg{add53} and \Rfunarg{add35} parameters. <>= plotTracks(axisTrack, from=1e6, to=9e6, add53=TRUE, add35=TRUE) @ Sometimes the resolution of the tick marks is not sufficient, in which case the \Rfunarg{littleTicks} argument can be used to have a more fine-grained axis annotation. <>= plotTracks(axisTrack, from=1e6, to=9e6, add53=TRUE, add35=TRUE, littleTicks=TRUE) @ The \mgg package tries to come up with reasonable defaults for the axis annotation. In our previous example, the genomic coordinates are indicated in megabases. We can control this via the \Rfunarg{exponent} parameter, which takes an integer value greater then zero. The location of the tick marks are displayed as a fraction of $10^{exponent}$. <>= plotTracks(axisTrack, from=1e6, to=9e6, exponent=4) @ Another useful parameter, \Rfunarg{labelPos} controls the arrangement of the tick marks. It takes one of the values \code{alternating}, \code{revAlternating}, \code{above} or \code{below}. For instance we could aline all tick marks underneath the axis. <>= plotTracks(axisTrack, from=1e6, to=9e6, labelPos="below") @ Sometimes a full-blown axis is just too much, and all we really need in the plot is a small scale indicator. We can change the appearance of the \Rclass{GenomeAxisTrack} object to such a limited representation by setting the \Rfunarg{scale} display parameter. Typically, this will be a numeric value between 0 and 1, which is interpreted as the fraction of the plotting region used for the scale. The plotting method will apply some rounding to come up with reasonable and human-readable values. For even more control we can pass in a value larger than 1, which is considered to be an absolute range length. In this case, the user is responsible for the scale to actually fit in the current plotting range. <>= plotTracks(axisTrack, from=1e6, to=9e6, scale=0.5) @ We still have control over the placement of the scale label via the \Rfunarg{labelPos}, parameter, which now takes the values \code{above}, \code{below} and \code{beside}. <>= plotTracks(axisTrack, from=1e6, to=9e6, scale=0.5, labelPos="below") @ For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{GenomeAxisTrack} class by typing in \code{?GenomeAxisTrack} on the \RR command line. <>= addParTable("GenomeAxisTrack") @ \subsection{IdeogramTrack} While a genomic axis provides helpful points of reference to a plot, it is sometimes important to show the currently displayed region in the broader context of the whole chromosme. Are we looking at distal regions, or somewhere close to the centromer? And how much of the complete chromosome is covered in our plot. To that end the \mgg package defines the \Rclass{IdeogramTrack} class, which is an idealized representation of a single chromosome. When plotted, these track objects will always show the whole chromosome, regardless of the selected genomic region. However, the displayed coordinates are indicated by a box that sits on the ideogram image. The chromosomal data necessary to draw the ideogram is not part of the \mgg package itself, instead it is downloaded from an online source (UCSC). Thus it is important to use both chromosome and genome names that are recognizable in the UCSC data base when dealing with \Rclass{IdeogramTrack} objects. You might want to consult the UCSC webpage (\url{http://genome.ucsc.edu/}) or use the \Rfunction{ucscGenomes} function in the \Rpackage{rtracklayer} package for a listing of available genomes. Assuming the chromosome data are available online, a simple call to the \Rfunction{IdeogramTrack} constructor function including the desired genome and chromosome name are enough to instantiate the object. Since the connection to UCSC can be slow, the package tries to cache data that has already been downloaded for the duration of the \R session. If needed, the user can manually clear the cache by calling the \Rfunction{clearSessionCache} function. Of course it is also possible to construct \Rclass{IdeogramTrack} objects from local data. Please see the class' man page for details. <>= ideoTrack <- IdeogramTrack(genome="hg19", chromosome="chrX") plotTracks(ideoTrack, from=85e6, to=129e6) @ <>= if(hasUcscConnection){ ideoTrack <- IdeogramTrack(genome="hg19", chromosome="chrX") }else{ data(itrack) } plotTracks(ideoTrack, from=85e6, to=129e6) @ We can turn off the explicit plotting of the chromosome name by setting the \Rfunarg{showId} display parameter to \code{FALSE}. <>= plotTracks(ideoTrack, from=85e6, to=129e6, showId=FALSE) @ The chromosome bands in the ideogram come with a unique identifier, and we can add this information to the plot, at least for those bands that are wide enought to accomodate the text. <>= plotTracks(ideoTrack, from=85e6, to=129e6, showId=FALSE, showBandId=TRUE, cex.bands=0.5) @ \subsubsection*{Display parameters for IdeogramTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{IdeogramTrack} class by typing in \code{?IdeogramTrack} on the \RR command line. <>= addParTable("IdeogramTrack") @ \subsection{DataTrack} Probably the most powerfull of all the track classes in the \mgg package are \Rclass{DataTracks}. Essentially they constitute run-length encoded numeric vectors or matrices, meaning that one or several numeric values are associated to a particular genomic coordinate range. These ranges may even be overlapping, for instance when looking at results from a running window operation. There can be multiple samples in a single data set, in which case the ranges are associated to the columns of a numeric matrix rather than a numeric vector, and the plotting method provides tools to incoorporate sample group information. Thus the starting point for creating \Rclass{DataTrack} objects will always be a set of ranges, either in the form of an \Rclass{IRanges} or \Rclass{GRanges} object, or individually as start and end coordinates or widths. The second ingredient is a numeric vector of the same length as the number of ranges, or a numeric matrix with the same number of columns. Those may even already be part of the input \Rclass{GRanges} object as \code{elemenMetadata} values. For a complete description of all the possible inputs please see the class' online documentation. We can pass all this information to the \Rfunction{DataTrack} constructor function to instantiate an object. We will load our sample data from an \Rclass{GRanges} object that comes as part of the \mgg package. <>= data(twoGroups) dTrack <- DataTrack(twoGroups, name="uniform") plotTracks(dTrack) @ The default visualization for our very simplistic sample \Rclass{DataTrack} is a rather unispiring dot plot. The track comes with a scale to indicate the range of the numeric values on the y-axis, appart from that it looks very much like the previous examples. A whole battery of display parameters is to our disposal to control the track's look and feel. The most important one is the \Rfunarg{type} parameter. It determines the type of plot to use and takes one or several of the following values: <<>= types <- data.frame(Value=c("p", "l", "b", "a", "s", "S", "g", "r", "h", "confint", "smooth", "histogram", "mountain", "polygon", "boxplot", "gradient", "heatmap", "horizon"), Type=c("dot plot", "lines plot", "dot and lines plot", "lines plot of average (i.e., mean) values", "stair steps (horizontal first)", "stair steps (vertical first)", "add grid lines", "add linear regression line", "histogram lines", "confidence intervals for average values", "add loess curve", "histogram (bar width equal to range with)", "'mountain-type' plot relative to a baseline", "'polygon-type' plot relative to a baseline", "box and whisker plot", "false color image of the summarized values", "false color image of the individual values", "Horizon plot indicating magnitude and direction of a change relative to a baseline")) print(xtable(types, align="lrp{5in}"), sanitize.text.function=function(x) x, include.rownames=FALSE, floating=FALSE, tabular.environment="longtable") @ Displayed below are the same sample data as before but plotted with the different type settings: <>= pushViewport(viewport(layout=grid.layout(nrow=9, ncol=2))) i <- 1 for(t in types$Value) { pushViewport(viewport(layout.pos.col=((i-1)%%2)+1, layout.pos.row=((i-1)%/%2)+1)) if(t != "horizon"){ names(dTrack) <- t plotTracks(dTrack, type=t, add=TRUE, cex.title=0.8, margin=0.5) }else{ data(dtHoriz) names(dtHoriz) <- "horizon *" plotTracks(dtHoriz[8,], type="horizon", add=TRUE, cex.title=0.8, margin=0.5, showAxis=FALSE, horizon.origin=0.7) } i <- i+1 popViewport(1) } popViewport(1) names(dTrack) <- "uniform" @ \renewcommand*{\thefootnote}{\fnsymbol{footnote}} \footnotetext[1]{A different data set is plotted for the horizon type for the sake of clarity.} You will notice that some of the plot types work better for univariate data while others are clearly designed for multivariate inputs. The \Rfunarg{a} type for instance averages the values at each genomic location before plotting the derived values as a line. The decision for a particular plot type is totally up to the user, and one could even overlay multiple types by supplying a character vector rather than a character scalar as the \Rfunarg(type) argument. For example, this will combine a boxplot with an average line and a data grid. <>= plotTracks(dTrack, type=c("boxplot", "a", "g")) @ For the heatmap plotting type we arrange all the data in a well-structured two-dimensional matrix which gives us the oportunity to add a little extra information about the individual samples. Depending on how the \Rclass{DataTrack} was created in the first place we can choose to display the sample names (which in our case correspond to the column names of the input \Rclass{GRanges} object). The plot also highlights another feature of the heatmap type: the y-axis now shows a mapping of the numeric values into the color range. <>= colnames(mcols(twoGroups)) plotTracks(dTrack, type=c("heatmap"), showSampleNames=TRUE, cex.sampleNames=0.6) @ \subsubsection*{Data Grouping} An additional layer of flexibility is added by making use of \mgg's grouping functionality. The individual samples (i.e., rows in the data matrix) can be grouped together using a factor variable, and, if reasonable, this grouping is reflected in the layout of the respective track types. For instance our example data could be derived from two different sample groups with three replicates each, and we could easily integrate this information into our plot. <>= plotTracks(dTrack, groups=rep(c("control", "treated"), each=3), type=c("a", "p", "confint")) @ For the dot plot representation the individual group levels are indicated by color coding. For the \Rfunarg{a} type, the averages are now computed for each group separately and also indicated by two lines with similar color coding. Grouping is not supported for all plotting types, for example the \Rfunarg{mountain} and \Rfunarg{polygon} type already use color coding to convey a different message and for the \Rfunarg{gradient} type the data are already collapsed to a single variable. The following gives an overview over some of the other groupable \Rclass{DataTrack} types. Please note that there are many more display parameters that control the layout of both grouped and of ungrouped \Rclass{DataTracks}. You may want to check the class' help page for details. <>= pushViewport(viewport(layout=grid.layout(nrow=9, ncol=1))) i <- 1 for(t in c("a", "s", "confint", "smooth", "histogram", "boxplot", "heatmap", "horizon")) { pushViewport(viewport(layout.pos.col=((i-1)%%1)+1, layout.pos.row=((i-1)%/%1)+1)) if(t != "horizon"){ names(dTrack) <- t plotTracks(dTrack, type=t, add=TRUE, cex.title=0.8, groups=rep(1:2, each=3), margin=0.5) }else{ plotTracks(dtHoriz[c(1,8),], type="horizon", add=TRUE, cex.title=0.8, margin=0.5, showAxis=FALSE, horizon.origin=0.3, groups=1:2) } i <- i+1 popViewport(1) } pushViewport(viewport(layout.pos.col=((i-1)%%1)+1, layout.pos.row=((i-1)%/%1)+1)) names(dTrack) <- "hor. hist." plotTracks(dTrack, type="histogram", stackedBars=FALSE, add=TRUE, cex.title=0.8, groups=rep(1:2, each=3), margin=0.5) popViewport(2) names(dTrack) <- "uniform" @ \footnotetext[1]{A different data set is plotted for the horizon type for the sake of clarity.} If we need to display some additional information about the individual group levels we can make use of the \Rfunarg{legend} display parameter to add a simple legend to the plot. Depending on the plot type and on some of the other display parameters, the look of this legend may vary slightly. <>= plotTracks(dTrack, groups=rep(c("control", "treated"), each=3), type=c("a", "p"), legend=TRUE) @ For a grouped horizon plot the group labels have to be shown in a similar fashion as for heatmaps, i.e., by setting the \Rfunarg{showSampleNames} argument to \code{TRUE}. <>= data(dtHoriz) dtHoriz <- dtHoriz[1:6,] plotTracks(dtHoriz, type="horiz", groups=rownames(values(dtHoriz)), showSampleNames=TRUE, cex.sampleNames = 0.6, separator=1) @ \subsubsection*{Building DataTrack objects from files} A number of standard file types exist that all store numeric data along genomic coordinates. We have tried to make such files accessible in the \mgg package by providing additional options to the \Rfunction{DataTrack} constructor function. In the previous examples the \Rfunarg{range} argument was a \Rclass{GRanges} object. Instead, we can also pass in the path to a file on disk by means of a character scalar. The \Rclass{DataTrack} class supports the most common file types like \code{wig}, \code{bigWig} or \code{bedGraph}, but also knows how to deal with \code{bam} files. You may have realized that some of these files are indexed, and we have taken the approach to stream the data from indexed files on the fly when it is needed for plotting. However let's first start with the simple example of a \code{bedGraph} file. These files support a single data sample, and thus are equivalent to a \code{GRanges} object with a single numeric metadata column. \code{bedGraph} files are not indexed, so we have to load the whole file content when instantiating the object. <>= bgFile <- system.file("extdata/test.bedGraph", package="Gviz") dTrack2 <- DataTrack(range=bgFile, genome="hg19", type="l", chromosome="chr19", name="bedGraph") class(dTrack2) plotTracks(dTrack2) @ As we can see the constructor has returned a regular \Rclass{DataTrack} object. The function to be used in order to read the data off the file has been automatically choosen by the package based on the file extension of the input file. Of course the number of these supported standard file types is limited, and a user may want to import a non-standard file through the same mechanism. To this end, the \Rclass{DataTrack} constructor defines an additional argument called \Rfunarg{importFunction}. As the name suggests, the value of this argument is a function which needs to handle the mandatory \Rfunarg{file} argument. Upon evaluation this argument will be filled in with the path to the data file, and the user-defined function needs to provide all logic necessary to parse that file into a valid \Rclass{GRanges} object. From this point on everything will happen just as if the \Rfunarg{range} argument had been this \Rclass{GRanges} object. In other words, numeric metadata columns will be shown as individual samples and non-numeric columns will be silently ignored. We can exemplify this in the next code chunk. Note that the \mgg package is using functionality from the \Rpackage{rtracklayer} package for most of the file import operations, just as we do here in a more explicit way. <>= library(rtracklayer) dTrack3 <- DataTrack(range=bgFile, genome="hg19", type="l", chromosome="chr19", name="bedGraph", importFunction=function(file) import(con=file)) identical(dTrack2, dTrack3) @ So far one could have easily done the whole process in two separate steps: first import the data from the file into a \Rclass{GRanges} object and then provided this object to the constructor. The real power of the file support in the \mgg package comes with streaming from indexed files. As mentioned before, only the relevant part of the data has to be loaded during the plotting operation, so the underlying data files may be quite large without decreasing the performance or causing too big of a memory footprint. We will exemplify this feature here using a small \code{bam} file that is provided with the package. \code{bam} files contain alignments of sequences (typically from a next generation sequencing experiment) to a common reference. The most natural representation of such data in a \Rclass{DataTrack} is to look at the alignment coverage at a given position only and to encode this in a single metadata column. <>= bamFile <- system.file("extdata/test.bam", package="Gviz") dTrack4 <- DataTrack(range=bamFile, genome="hg19", type="l", name="Coverage", window=-1, chromosome="chr1") class(dTrack4) dTrack4 plotTracks(dTrack4, from=189990000, to=190000000) @ As seen in the previous code chunk, the \code{dTrack4} object is now of class \Rclass{ReferenceDataTrack}. For the user this distinction is not particularly relevant with the exception that the \Rfunction{length} method for this class almost always returns \code{0} because the content of the object is only realized during the plotting operation. Obviously, streaming from the disk comes with a price in that file access is much slower than accessing RAM, however the file indexing allows for fairly rapid data retrieval, and other processes during the plotting operation tend to be much more costly, anyways. It is woth mentioning however that each plotting operation will cause reading off the file, and there are currently no caching mechanisms in place to avoid that. Nevertheless, plotting a larger chunk of the \code{bam} file still finishes in a reasonable time. <>= plotTracks(dTrack4, chromosome="chr1", from=189891483, to=190087517) @ Of course users can provided their own file parsing function just like we showed in the previous example. The import function now needs to be able to deal with a second mandatory argument \Rfunarg{selection}, which is a \Rclass{GRanges} object giving the genomic interval that has to be imported from the file. In addition one needs to tell the \Rclass{DataTrack} constructor that data should be streamed off a file by setting the \Rfunarg{stream} argument to \code{TRUE}. <>= myImportFun <- function(file, selection){ ## do something here } DataTrack(range=bamFile, genome="hg19", type="l", name="Coverage", window=-1, chromosome="chr1", importFunction=myImportFun, stream=TRUE) @ \subsubsection*{Data transformations} The \mgg package offers quite some flexibility to transform data on the fly. This involves both rescaling operations (each data point is transformed on the track's y-axis by a transformation function) as well as summarization and smoothing operations (the values for several genomic locations are summarized into one derived value on the track's x-axis). To illustrate this let's create a significantly bigger \Rclass{DataTrack} than the one we used before, containing purely syntetic data for only a single sample. <>= dat <- sin(seq(pi, 10*pi, len=500)) dTrack.big <- DataTrack(start=seq(1,100000, len=500), width=15, chromosome="chrX", genome="hg19", name="sinus", data=sin(seq(pi, 5*pi, len=500))*runif(500, 0.5, 1.5)) plotTracks(dTrack.big, type="hist") @ Since the available resolution on our screen is limited we can no longer distinguish between individual coordinate ranges. The \mgg package tries to avoid overplotting by collapsing overlapping ranges (assuming the \Rfunarg{collapseTracks} parameter is set to \code{TRUE}). However, it is often desirable to summarize the data, for instance by binning values into a fixed number of windows followe by the calculation of a meaningful summary statistic. This can be archived by a combination of the \Rfunarg{window} and \Rfunarg{aggregation} display parameters. The former can be an integer value greater than zero giving the number of evenly-sized bins to aggregate the data in. The latter is supposed to be a user-supplied function that accepts a numeric vector as a single input parameter and returns a single aggregated numerical value. For simplicity, the most obvious aggregation functions can be selected by passing in a character scalar rather than a function. Possible values are \code{mean}, \code{median}, \code{extreme}, \code{sum}, \code{min} and \code{max}. These presets are also much faster because they have been optimized to operate on large numeric matrices. The default is to compute the mean value of all the binned data points. <>= plotTracks(dTrack.big, type="hist", window=50) @ Instead of binning the data in fixed width bins one can also use the \Rfunarg{window} parameter to perform more elaborate running window operations. For this to happen the parameter value has to be smaller than zero, and the addtional display parameter \Rfunarg{windowSize} can be used to control the size of the running window. This operation does not change the number of coordinate ranges on the plot, but instead the original value at a particular position is replaced by the respective sliding window value at the same position. A common use case for sliding windows on genomic ranges is to introduce a certain degree of smoothing to the data. <>= plotTracks(dTrack.big, type="hist", window=-1, windowSize=2500) @ In addition to transforming the data on the x-axis we can also apply arbitrary transformation functions on the y-axis. One obvious use-case would be to log-transform the data prior to plotting. The framework is flexible enough however to allow for arbitrary transformation operations. The mechanism works by providing a function as the \Rfunarg{transformation} display parameter, which takes as input a numeric vector and returns a transformed numeric vector of the same length. The following code for instance truncates the plotted data to values greater than zero. <>= plotTracks(dTrack.big, type="l", transformation=function(x){x[x<0] <- 0; x}) @ As seen before, the \Rfunarg{a} type allows to plot average values for each of the separate groups. There is however an additional parameter \Rfunarg{aggregateGroups} that generalizes group value aggregations. In the following example we display, for each group and at each position, the average values in the form of a dot-and-lines plot. <>= plotTracks(dTrack, groups=rep(c("control", "treated"), each=3), type=c("b"), aggregateGroups=TRUE) @ This functionality again also relies on the setting of the \Rfunarg{aggregation} parameter, and we can easily change it to display the maximum group values instead. <>= plotTracks(dTrack, groups=rep(c("control", "treated"), each=3), type=c("b"), aggregateGroups=TRUE, aggregation="max") @ \subsubsection*{Display parameters for DataTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{DataTrack} class by typing in \code{?DataTrack} on the \RR command line. <>= addParTable("DataTrack") @ \subsection{AnnotationTrack} \Rclass{AnnotationTrack} objects are the multi-purpose tracks in the \mgg package. Essentially they consist of one or several genomic ranges that can be grouped into composite annotation elements if needed. In principle this would be enough to represent everything from CpG islands to complex gene models, however for the latter the packge defines the specialized \Rclass{GeneRegionTrack} class, which will be highlighted in a separate section. Most of the features discussed here will also apply to \Rclass{GeneRegionTrack} objects, though. As a matter of fact, the \Rclass{GeneRegionTrack} class inherits directly from class \Rclass{AnnotationTrack}. \Rclass{AnnotationTrack} objects are easily instantiated using the constructor function of the same name. The necessary building blocks are the range coordinates, a chromosome and a genome identifier. Again we try to be flexible in the way this information can be passed to the function, either in the form of separate function arguments, as \Rclass{IRanges}, \Rclass{GRanges} or \Rclass{data.frame} objects. Optionally, we can pass in the strand information for the annotation features and some useful identifiers. A somewhat special case is to build the object from a \Rclass{GRangesList} object, which will automatically preserve the element grouping information contained in the list structure. For the full details on the constructor function and the accepted arguments see \code{?AnnotationTrack}. Let's take a look at a very simple track: <>= aTrack <- AnnotationTrack(start=c(10, 40, 120), width=15, chromosome="chrX", strand=c("+", "*", "-"), id=c("Huey", "Dewey", "Louie"), genome="hg19", name="foo") plotTracks(aTrack) @ The ranges are plotted as simple boxes if no strand information is available, or as arrows to indicate their direction. We can change the range item shapes by setting the \Rfunarg{shape} display parameter. It can also be helpful to add the names for the individual features to the plot. This can be archived by setting the \Rfunarg{featureAnnotation} parameter to \code{'id'}. <>= plotTracks(aTrack, shape="box", featureAnnotation="id") @ <>= plotTracks(aTrack, shape="ellipse", featureAnnotation="id", fontcolor.feature="darkblue") @ In this very simplistic example each annotation feature consisted of a single range. In real life the genomic annotation features that we encounter often consists of several sub-units. We can create such composite \Rclass{AnnotationTrack} objects by providing a grouping factor to the constructor. It needs to be of similar length as the total number of atomic features in the track, i.e, the number of genomic ranges that are passed to the constructor. The levels of the this factor will be used as internal identifiers for the individual composite feature groups, and we can toggle on their printing by setting \Rfunarg{groupAnnotation} to \code{'group'}. <>= aTrack.groups <- AnnotationTrack(start=c(50, 180, 260, 460, 860, 1240), width=c(15,20,40,100,200, 20), chromosome="chrX", strand=rep(c("+", "*", "-"), c(1,3,2)), group=rep(c("Huey", "Dewey", "Louie"), c(1,3,2)), genome="hg19", name="foo") plotTracks(aTrack.groups, groupAnnotation="group") @ We can control the placement of the group labels through the \Rfunarg{just.group} parameter. <>= plotTracks(aTrack.groups, groupAnnotation="group", just.group="right") @ <>= plotTracks(aTrack.groups, groupAnnotation="group", just.group="above") @ Arranging items on the plotting canvas is relatively straight forward as long as there are no overlaps between invidiual regions or groups of regions. Those inevitably cause overplotting which could seriously obfuscate the information on the plot. A logical solution to this problem is to stack overlapping items in separate horizontal lines to accomodate all of them. This involves some optimization, and the \mgg package automatically tries to come up with the most compact arrangement. Let's exemplify this feature with a slightly modified \Rclass{AnnotationTrack} object. <>= aTrack.stacked <- AnnotationTrack(start=c(50, 180, 260, 800, 600, 1240), width=c(15,20,40,100,500, 20), chromosome="chrX", strand="*", group=rep(c("Huey", "Dewey", "Louie"), c(1,3,2)), genome="hg19", name="foo") plotTracks(aTrack.stacked, groupAnnotation="group") @ We now have our three annotation feature groups distributed over two horizontal lines. One can control the stacking of overlapping items using the \Rfunarg{stacking} display parameter. Currently the three values \code{squish}, \code{dense} and \code{hide} are supported. Horizontal stacking is enabled via the \code{squish} option, which also is the default. The \code{dense} setting forces overlapping items to be joined in one meta-item and \code{hide} all together disables the plotting of \Rclass{AnnotationTrack} items. Please note that adding identifiers to the plot only works for the \code{squish} option. <>= plotTracks(aTrack.stacked, stacking="dense") @ In addition to annotation groups there is also the notion of a feature type in the \mgg package. Feature types are simply different types of annotation regions (e.g., mRNA transcripts, miRNAs, rRNAs, etc.) that are indicated by different colors. There is no limit on the number of different features, however each element in a grouped annotation item needs to be of the same feature type. We can query and set features using the \Rfunction{feature} and \Rfunction{feature<-} methods. <>= feature(aTrack.stacked) feature(aTrack.stacked)<- c("foo", "bar", "bar", "bar", "no", "no") @ Features types can also be shown as either the group or the item annotation on the plot. <>= plotTracks(aTrack.stacked, featureAnnotation="feature", groupAnnotation="feature", fontcolor.feature=1, cex.feature=0.7) @ Unless we tell the \mgg package how to deal with the respective feature types they will all be treated in a similar fashion, i.e., they will be plotted using the default color as defined by the \Rfunarg{fill} display paramter. To define colors for individual feature types we simply have to add them as additional display parameters, where the parameter name matches the feature type and its value is supposed to be a valid R color qualifier. Of course this implies that we can only use feature names that are not already occupied by other display parameters defined in the package. <>= plotTracks(aTrack.stacked, groupAnnotation="group", foo="darkred", bar="darkgreen") @ Stacking of annotation items to avoid overplotting only works as long as there is enough real estate on the plotting canvas to separate all items, i.e., we need all items to be at least a single pixel wide to correctly display them. This limitation is automatically enforced by the \mgg package, however it implies that unless neighbouring items are more than one pixel appart we can not distinguish between them and will inevitably introduce a certain amount of overplotting. This means that on a common screen device we can only look at a very limited genomic region of a few kb in full resolution. Given that an average chromosome is in the order of a few gb, we still need a reasonable way to deal with the overplotting problem despite the item stacking functionality. As default, the \mgg package will merge all overlapping items into one unified meta-item and only plot that (see 'Collapse' section below for details). In order to indicate the amount of overplotting that was introduced by this process we can use the \Rfunarg{showOverplotting} display parameter. It uses a color scale (based on the orginal colors defined for the track), with lighter colors indicating areas of low or no overplotting, and more saturated colors indicating areas of high overplotting density. We exemplify this feature on an \Rclass{AnnotationTrack} object that represents a good portion of a real human chromosome. <>= data("denseAnnTrack") plotTracks(denseAnnTrack, showOverplotting=TRUE) @ \subsubsection*{Collapsing} All track types that inherit from class \code{AnnotationTrack} support the collapsing of overlapping track items, either because they have initially been defined as overlapping coordinates, or because the current device resolution does not allow to sufficiently separate them. For instance, two elements of a feature group may be separated by 100 base pairs on the genomic scale, however when plotted to the screen, those 100 base pairs translate to a distance of less than one pixel. In this case we can no longer show the items as two separate entitites. One solution to this problem would be to allow for arbitrary overplotting, in which case the last one of the overlapping items that is drawn on the device wins. This is not optimal in many ways, and it also poses a significant burden on the graphical engine because a lot of stuff has to be drawn which no one will ever see. To this end the \mgg package provides an infrastructure to reasonably collapse overlappig items, thereby adjusting the information content that can be shown to the available device resolution. By default this feature is turned on, and the user does not have to worry too much about it. However, one should be aware of the consequences this may have on a given visualization. If you absolutely do not want collapsing to take place, you may completely turn it off by setting the display parameter \code{collapse} to \code{FALSE}. Please note that by doing this the \code{showOverplotting} parameter will also stop working. If you opt in, there is some considerable amount of detailed control to fine tune the collapsing to your needs. Let's start with a small example track for which element collapsing has been turned off and no adjustments to the ranges have been made. We plot both the item identifiers and the group identifiers to exemplify what is going on. <>= data(collapseTrack) plotTracks(ctrack) @ The first thing to notice is that the for item \code{d} we do see the item identifier but not the range itself. This is due to the fact that the width of the item is smaller than a single pixel, and hence the graphics system can not display it (Note that this is only true for certain devices. The quartz device on the Mac seems to be a little smarter about this). There are also the two items \code{e} and \code{f} which seem to overlay each other completely, and another two items which appear to be just a single fused item (\code{k} and \code{l}). Again, this is a resolution issue as their relative distance is smaller than a single pixel, so all we see is a single range and some ugly overplotted identifiers. We can control the first issue by setting the minimum pixel width of a plotted item to be one pixel using the \code{min.width} display parameter. <>= plotTracks(ctrack, min.width=1) @ Now the item \code{d} has a plotable size and can be drawn to the device. The overplotted items are still rather anoying, but the only way to get rid of those is to turn item collapsing back on. <>= plotTracks(ctrack, min.width=1, collapse=TRUE) @ Now all items that could not be separated by at least one pixel have been merged into a single meta-item, and the software has taken care of the identifiers for you, too. The merging operation is aware of the grouping information, so no two groups where joint together. Sometimes a single pixel width or a single pixel distance is not enough to get a good visualization. In these cases one could decide to enforce even larger values. We can do this not only for the minimum width, but also for the minimum distance by setting the \code{min.distance} parameter. <>= plotTracks(ctrack, min.width=3, min.distance=5, collapse=TRUE) @ This time also the two items \code{b} and \code{c} have been merged, and all ranges are now at least 3 pixels wide. Depending on the density of items on the plot even this reduction can be insufficient. Because we did not merge complete groups we might still end up with quite a lot of stacks to accomodate all the information. To this end the display parameter \code{mergeGroups} can be used to disable absolute group separation. Rather than blindly merging all groups (as it is done when \code{stacking='dense'}) however, the software will only join those overlapping group ranges for which all items are already merged into a single meta item. <>= plotTracks(ctrack, min.width=3, min.distance=5, collapse=TRUE, mergeGroups=TRUE, extend.left=0.1) @ \subsubsection*{Building AnnotationTrack objects from files} Just like we showed before for \Rclass{DataTrack} objects it is possible to stream the data for an \Rclass{AnnotationTrack} object off the file system. We will again use the \code{bam} file as an example. This time the default import function reads the coordinates of all the sequence alignments from the file and even knows how to deal with grouped elements. <>= aTrack2 <- AnnotationTrack(range=bamFile, genome="hg19", name="Reads", chromosome="chr1") class(aTrack2) aTrack2 plotTracks(aTrack2, from=189995000, to=190000000) @ Since \Rclass{AnnotationTrack} objects are somewhat more complicated than \Rclass{DataTrack} objects, the constructor provides another level of flexibility when reading the data from a file. More specifically, the user has the ability to map the provided metadata columns of the \Rclass{GRanges} object that is returned by the import function to the respective columns in the final \Rclass{AnnotationTrack} object. If no explicit mapping is provided, the package will try to find a default mapping based on the input file type and the desired track type. The current mapping of a track is displayed by its \Rfunction{show} method as can be seen above. The mechanism for changing this default mapping is quite straight forward: if the values in the relevant constructor arguments (in this case \Rfunarg{group}, \Rfunarg{id} and \Rfunarg{feature}) are character scalars, the metadata columns of the \Rclass{GRanges} object that is returned by the import function are mapped against their values. For instance we can map the \code{id} column to the \code{group} attribute and thus suppress the grouping of sequence alignments that originate from the same sequencing read. <>= aTrack3 <- AnnotationTrack(range=bamFile, genome="hg19", name="Reads", chromosome="chr1", group="id") aTrack3 plotTracks(aTrack3, from=189995000, to=190000000) @ Please note that if no metadata column can be mapped to the constructor arguments their values are assumed to be normal character scalars and they will be recycled accordingly to fill the track's slots. One can ask for the package's default mappings by using the \Rfunction{availableDefaultMapping} function. <>= availableDefaultMapping(bamFile, "AnnotationTrack") @ We can now plot both the \Rclass{DataTrack} representation as well as the \code{AnnotationTrack} representation of the \code{bam} file together to prove that the underlying data are indeed identical. <>= plotTracks(list(dTrack4, aTrack2), from=189990000, to=190000000) @ \subsubsection*{Display parameters for AnnotationTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{AnnotationTrack} class by typing in \code{?AnnotationTrack} on the \RR command line. <>= addParTable("AnnotationTrack") @ \subsection{GeneRegionTrack} \Rclass{GeneRegionTrack} objects are in principle very similar to \Rclass{AnnotationTrack} objects. The only difference is that they are a little more gene/transcript centric, both in terms of plotting layout and user interaction, and that they may define a global start and end position (a feature which is not particularly relevant for the normal user). The constructor function of the same name is a convenient tool to instantiate the object from a variety of different sources. In a nutshell, we need to pass start and end positions (or the width) of each annotation feature in the track and also supply the exon, transcript and gene identifiers for each item which will be used to create the transcript groupings. A somewhat special case is to build a \Rclass{GeneRegionTrack} object directly from one of the popular \Rclass{TxDb} objects, an option that is treated in more detail below. For more information about all the available options see the class's manual page (\code{?GeneRegionTrack}). There are a number of accessor methods that make it easy to query and replace for instance exon, transcript or gene assignments. There is also some support for gene aliases or gene symbols which are often times more useful than cryptic data base gene identifiers. The following code that re-uses the \Rclass{GeneRegionTrack} object from the first section exemplifies some of these features. <>= data(geneModels) grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="foo") head(gene(grtrack)) head(transcript(grtrack)) head(exon(grtrack)) head(symbol(grtrack)) plotTracks(grtrack) @ Both exon- and transcript-centric annotation can be added to the plot using the \Rfunarg{transcriptAnnotation} and \Rfunarg{exonAnnotation} display parameters. <>= plotTracks(grtrack, transcriptAnnotation="symbol") @ <>= plotTracks(grtrack, transcriptAnnotation="transcript") @ <>= plotTracks(grtrack, exonAnnotation="exon", extend.left=-0.8, fontcolor.exon=1) @ Since we have the gene and trancript level information as part of our \Rclass{GeneRegionTrack} objects we can ask the package to collapse all of our gene models from individual exons and transcripts down to gene body locations by setting the \Rfunarg{collapseTranscripts} display parameter to \code{TRUE}. <>= plotTracks(grtrack, collapseTranscripts=TRUE, shape="arrow", transcriptAnnotation="symbol") @ Collapsing down all the way to a gene is not always the desired oparation, and the parameters offers a bit more control. For instance we could decide to plot just the longest transcript by setting it to \code{longest}. <>= plotTracks(grtrack, collapseTranscripts="longest", shape="arrow", transcriptAnnotation="symbol") @ Or we can plot the union of all the exons in some sort of meta-transcript. <>= plotTracks(grtrack, collapseTranscripts="meta", shape="arrow", transcriptAnnotation="symbol") @ \subsubsection*{Building GeneRegionTrack objects from TxDbs} The \Rpackage{GenomicFeatures} packages provides an elegant framework to download gene model information from online sources and to store it locally in a SQLite data base. Because these so called \Rclass{TxDb} objects have become the de-facto standard for genome annotation information in Bioconductor we tried to make it as simple as possible to convert them into \Rclass{GeneRegionTracks}. Essentially one only has to call the constructor function with the \Rclass{TxDb} object as a single argument. We exemplify this on a small sample data set that comes with the \Rpackage{GenomicFeatures} package. <>= library(GenomicFeatures) samplefile <- system.file("extdata", "hg19_knownGene_sample.sqlite", package="GenomicFeatures") txdb <- loadDb(samplefile) GeneRegionTrack(txdb) @ In this context, the constructor's \Rfunarg{chromosome}, \Rfunarg{start} and \Rfunarg{end} argument take on a slightly differnt meaning in that they can be used to subset the data that is fetched from the \Rclass{TxDb} object. Please note that while the \Rfunarg{chromosome} alone can be supplied, providing \Rfunarg{start} or \Rfunarg{end} without the chromosome information will not work. <>= txTr <- GeneRegionTrack(txdb, chromosome="chr6", start=35000000, end=40000000) @ A nice bonus when building \Rclass{GeneRegionTracks} from \Rclass{TxDb} objects is that we get additional information about coding and non-coding regions of the transcripts, i.e., coordinates of the 5' and 3' UTRs and of the CDS regions. The class' plotting method can use this inforamtion to distinguish between coding and non-coding regions based on the shape of the feature. All coding regions are plotted just as we have seen in the previous examples, whereas the non-coding regions are drawn as slighly thinner boxes. The distinction between coding and non-coding is made on the basis of the object's \code{feature} values in combination with a special display parameter \code{thinBoxFeature} that enumerates all feature types that are to be treated as non-coding. Obviously this feature is available to all \Rclass{GeneRegionTracks}, not only the ones that were build from \Rclass{TxDb} objects. However, the coding information has to be added manually and the default value of the \code{thinBoxFeature} parameter may not be sufficient to cover all possible cases. It is up to the user to come up with a complete list of non-coding feature types depending on the source of the data. <>= feature(txTr) plotTracks(txTr) @ \subsubsection*{Display parameters for GeneRegionTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{GeneRegionTrack} class by typing in \code{?GeneRegionTrack} on the \RR command line. <>= addParTable("GeneRegionTrack") @ \subsection{BiomartGeneRegionTrack} As seen before it can be very useful to quickly download gene annotation information from an online repositry rather than having to construct it each time from scratch. To this end, the \mgg package also defines the \Rclass{BiomartGeneRegionTrack} class, which directly extends \Rclass{GeneRegionTrack} but provides a direct interface to the ENSEMBL Biomart service (yet another interface to the UCSC data base content is highlighted in one of the next sections). Rather than providing all the bits and pieces for the full gene model, we just enter a genome, chromosome and a start and end position on this chromosome, and the constructor function \Rfunction{BiomartGeneRegionTrack} will automatically contact ENSEMBL, fetch the necessary information and build the gene model on the fly. Please note that you will need an internet connection for this to work, and that contacting Biomart can take a significant amount of time depending on usage and network traffic. Hence the results are almost never going to be returned instantaniously. <>= biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome=chr, start=20e6, end=21e6, name="ENSEMBL") plotTracks(biomTrack) @ <>= if(hasBiomartConnection){ biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome=chr, start=20e6, end=21e6, name="ENSEMBL") }else{ data("biomTrack") } plotTracks(biomTrack) @ You may have noticed in the above plot that the track includes \code{feature} information which is displayed by the different feature colors and box sizes. This information has been automatically extracted from Biomart and the respective color coding is part of the class' definition. We can highlight the feature classes even more by using similarly colored bars to connect the grouped elements and by dropping the bounding boxes around the individual exon models. <>= plotTracks(biomTrack, col.line=NULL, col=NULL) @ For dense stacked plots like this it can sometimes be helpful to control the vertical spacing between the stacking rows. A simple way to do this is available for each object inheriting form the \Rclass{StackedTrack} class by means of the \Rfunarg{stackHeight} display parameter. It takes a value between 0 and 1 that controls which fraction of the available vertical space on a stacking line should be used to draw the feature glyphs. <>= plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) @ The \Rfunarg{filter} argument to the \Rfunction{BiomartGeneRegionTrack} constructor can be used to pass on arbitratry additional filters to the Biomart query. We could for instance limit the returned gene models to RefSeq models only. Please see the documentation in the \Rpackage{biomaRt} package for details. <>= biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome=chr, start=20e6, end=21e6, name="ENSEMBL", filter=list(with_ox_refseq_mrna=TRUE)) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) @ <>= if(hasBiomartConnection){ biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome=chr, start=20e6, end=21e6, name="ENSEMBL", filter=list(with_ox_refseq_mrna=TRUE)) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) }else{ biomTrack@filter <- list(with_ox_refseq_mrna=TRUE) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) biomTrack@filter <- list() } @ Sometimes it can be more convenient to get a model for a particular gene rather than defining a genomic range. One could use the filter mechanisms as described before for this purpose, however the \Rclass{BiomartGeneRegionTrack} implements a more generic way. By providing the gene symbol as the \Rfunarg{symbol} argument, the track will be initialized around the locus for this gene, if it can be found. Alternatively, one can provide the Ensembl trancript or gene id via the \Rfunarg{transcript} or \Rfunarg{gene} arguments, or an Entrez id via the \Rfunarg{entrez} argument. In all of these cases the constructor will also fetch models for other genes that overlap the same region. If that is not desired one needs to provide an explicit Biomart filter. <>= biomTrack <- BiomartGeneRegionTrack(genome="hg19", name="ENSEMBL", symbol="ABCB5") plotTracks(biomTrack) @ <>= if(hasBiomartConnection){ biomTrack <- BiomartGeneRegionTrack(genome="hg19", name="ENSEMBL", symbol="ABCB5") plotTracks(biomTrack, transcriptAnnotation="symbol") }else{ ranges(biomTrack) <- ranges(biomTrack)[symbol(biomTrack) == "ABCB5"] plotTracks(biomTrack, transcriptAnnotation="symbol") } @ \subsubsection*{Using custom biomaRt objects for BiomartGeneRegionTracks} \mgg tries hard to automatically set up the necessary connection to the Biomart service to retrieve the relevant data. Sometimes however it can be advantagous to fully control the Biomart connector, for instance when trying to retrieve data from an archived Ensembl version (by default, \Rpackage{biomaRt} will always link to the most recent version). To that end, the \Rfunarg{biomart} parameter can be used to supply a \Robject{biomaRt} object. Please note that a data set has to be selected in that object. A second prerequesite for this to work is that \mgg is able to guess which of the values that are queried from the Ensembl data base represent which track feature. If there were no changes in the schema of Ensembl, or if the schema for all marts was similar this would not be an issue, but that is not the case. In the following example we show how to fetch data for the same region from the older version Ensembl version 47. The internal \Rfunction{.getBMFeatureMap} is helpful to set up the feature mapping which is necessary because Esembl used to call the gene symbol field \code{external\_gene\_id} in that release. <>= library(biomaRt) bm <- useMart(host="may2012.archive.ensembl.org", biomart="ENSEMBL_MART_ENSEMBL", dataset="hsapiens_gene_ensembl") fm <- Gviz:::.getBMFeatureMap() fm[["symbol"]] <- "external_gene_id" biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome="chr7", start=20e6, end=21e6,name="ENSEMBL", featureMap=fm, biomart=bm) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) @ \subsubsection*{Display parameters for BiomartGeneRegionTrack objects} For a complete listing of all the available display parameters please see the table above in the previous \Rclass{GeneRegionTrack} section or the man page of the \Rclass{BiomartGeneRegionTrack} class by typing in \code{?BiomartGeneRegionTrack} on the \RR command line. As mentioned above, one additional benefit when fetching the data through Biomart is that we also receive some information about the annotation feature types, which is automatically used for the color coding of the track. The following table shows the available feature types. <>= addInfo <- t(data.frame(displayPars(biomTrack, names(details[["BiomartGeneRegionTrack"]])))) colnames(addInfo) <- "Color" addParTable("BiomartGeneRegionTrack", add=addInfo) @ \subsection{DetailsAnnotationTrack} It is sometimes desirable to add more detailed information to particular ranges in an \mgg plot for which the notion of genomic coordinates no longer makes sense. For instance, the ranges in an \Rclass{AnnotationTrack} may represent probe locations on a genome, and for each of these probes a number of measurements from multiple samples and from different sample groups are available. To this end, the \Rclass{DetailsAnnotationTrack} provides a flexible interface to further annotate genomic regions with arbitrary additional information. This is archived by splitting the \Rclass{AnnotationTrack} plotting region into two horizontal sections: the lower section containing the range data in genomic coordinates, and the upper one containing the additional data for each of the displayed ranges in verticaly tiled panels of equal size. The connection between a range item and its details panel is indicated by connecting lines. The content of the individual details panels has to be filled in by a user-defined plotting function that uses grid (or lattice) plotting commands. This function has to accept a number of mandatory parameters, notably the start, end, strand, chromosome and identifier information for the genomic range, as well as an integer counter indicating the index of the currently plotted details tile. This information can be used to fetch abtritray details, e.g. from a list, and environement or even from a \Rclass{GRanges} object which will then be processed and visualized within the plotting function. This may sound rather abstract, and for more details please refer to the class' help page. For now we just want to demonstrate the functionality in a simple little example. We begin by defining a \Rclass{GRanges} object containing 4 genomic locations. In our example those are considered to be probe locations from a methylation array. <>= library(GenomicRanges) probes <- GRanges(seqnames="chr7", ranges=IRanges(start=c(2000000, 2070000, 2100000, 2160000), end=c(2050000, 2130000, 2150000, 2170000)), strand=c("-", "+", "-", "-")) @ For each of these probes we have methylation measurements from a large number of different samples in a numeric matrix, and within the samples there are two treatment groups. The aim is to compare the distribution of measurement values between these two groups at each probe locus. <>= methylation <- matrix(c(rgamma(400, 1)), ncol=100, dimnames=list(paste("probe", 1:4, sep=""), NULL)) methylation[,51:100] <- methylation[,51:100] + 0:3 sgroups <- rep(c("grp1","grp2"), each=50) @ Of course we could use a \Rclass{DataTrack} with the box-plot representation for this task, however we do have strand-specific data here and some of the probes can be overlapping, so all this information would be lost. We are also interested in the particular shape of the data distribution, so a density plot representation is what we really need. Luckily, the \Rpackage{lattice} package gives us a nice \Rfunction{densityplot} function that supports grouping, so all that's left to do now is to write a little wrapper that handles the extraction of the relevant data from the matrix. This is easily archieved by using the range identifiers, which conveniently map to the row names of the data matrix. <>= library(lattice) details <- function(identifier, ...) { d <- data.frame(signal=methylation[identifier,], group=sgroups) print(densityplot(~signal, group=group, data=d, main=list(label=identifier, cex=0.7), scales=list(draw=FALSE, x=list(draw=TRUE)), ylab="", xlab="", ), newpage=FALSE, prefix="plot") } @ Finaly, it is as simple as calling the \Rclass{AnnotationTrack} constructor, passing along the wrapper function and calling \Rfunction{plotTracks}. <>= deTrack <- AnnotationTrack(range=probes, genome="hg19", chromosome=7, id=rownames(methylation), name="probe details", stacking="squish", fun=details) plotTracks(deTrack) @ It should be noted here that in our little example we rely on the methylation data matrix and the grouping vector to be present in the working environment. This is not necessarily the cleanest solution and one should consider storing additional data in an evironment, passing it along using the \Rfunarg{detailFunArgs} parameter, or making it part of the details function in form of a closure. The class' help page provides further instructions. Another use case for the \Rclass{DetailsAnnotationTrack} class is to deal with the problem of very different feature sizes within a single track. For instance, we may be looking at a rather large genomic region containing one big transcript with many widely spaced exons and a bunch of smaller, more compact transcripts. In this case it would be helpful to provide a zoomed in version of those smaller transcripts. In order to achieve this we can make use of the class' \code{groupDetails} display parameter, which applies the detail plotting function over each range group rather than over individual range items. First we define a function that selects those groups with a plotted size smaller than 10 pixels. We make use of the unexported function \code{.pxResolution} here to come up with the mapping between pixel coordinates and genomic coordinates. <>= selFun <- function(identifier, start, end, track, GdObject, ...){ gcount <- table(group(GdObject)) ## This computes the width of 2 pixels in genomic coordinates pxRange <- Gviz:::.pxResolution(min.width=20, coord="x") return((end-start)>= detFun <- function(identifier, GdObject.original, ...){ plotTracks(list(GenomeAxisTrack(scale=0.3, size=0.2, cex=0.7), GdObject.original[group(GdObject.original)==identifier]), add=TRUE, showTitle=FALSE) } @ Finally, we load some sample data, turn it into a \code{DetailsAnnotationTrack} object and plot it. <>= data(geneDetails) deTrack2 <- AnnotationTrack(geneDetails, fun=detFun, selectFun=selFun, groupDetails=TRUE, details.size=0.5, detailsConnector.cex=0.5, detailsConnector.lty="dotted", shape=c("smallArrow", "arrow"), groupAnnotation="group") plotTracks(deTrack2, extend.left=90000) @ \subsubsection*{Display parameters for DetailsAnnotationTrack objects} In addtion to the display parameters for the \Rclass{AnnotationTrack} class, some additional parameters can be used to control the look and feel of the details sections. For a complete listing of all the available display parameters please see the tables below and the one above in the \Rclass{AnnotationTrack} section or the man page of the \Rclass{DetailsAnnotationTrack} class by typing in \code{?DetailsAnnotationTrack} on the \RR command line. <>= plotTracks(deTrack, details.size=0.75, detailsConnector.pch=NA, detailsConnector.col="darkred", detailsBorder.fill="#FFE3BF", detailsBorder.col="darkred", shape="box", detailsConnector.lty="dotted") @ <>= addParTable("DetailsAnnotationTrack") @ \subsection{SequenceTrack} So far we have displayed all kinds of ranges on a genome, but never really looked at the underlying genomic sequence. To that end, the \mgg package defines the \Rclass{SequenceTrack} class which can hold genomic sequence information derived from either a \Rclass{DNAStringSet} object of, even more convenient, from one of the \Rclass{BSgenome} packages. There is not formal checking of the track's genome, so it is up to the user to provide reasonable inputs to the class' constructor. As with all the other track types, the constructor has the same name as the class. In this example we build a \Rclass{SequenceTrack} from the human hg19 UCSC genome. <>= library(BSgenome.Hsapiens.UCSC.hg19) sTrack <- SequenceTrack(Hsapiens) sTrack @ Here we retain the same benefits as for regular \Rclass{BSgenome} objects in that the actual sequence is only loaded into memory when a particular chromosome is first accessed. Plotting the track yields the expected result: a character representation of the genomic sequence in the current plot window. It may be worth noting that the color scheme that is used to encode the indvidual nucleotides is defined in the \Rpackage{biovizBase} package and the user is referred to its documentation for more details. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20050) @ Sometimes it may be too busy to plot both the sequence letters and the color coding, and we can assign arbitrary colors by setting the \code{fontcolor} display parameter. The convention here is that we need to supply a named vector, with one entry for each of the five possible nucleotides (A, C, T, G, and N). If any of the entries is missing, the respective letter will not be drawn at all. <>= fcol <- c(A="darkgray", C="darkgray", T="darkgray", G="darkgray") plotTracks(sTrack, chromosome=1, from=20000, to=20050, fontcolor=fcol) @ In this case we are plotting the sequence on the forward strand and we may want to make this clear by adding direction indicators. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20050, add53=TRUE) @ If instead we plot the complement sequence on the reverse strand, the indicators are automatically adjusted. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20050, add53=TRUE, complement=TRUE) @ So far we have been able to fit the sequence onto our plotting device without overplotting. I.e., all the letters nicely fit in to their respective position in the genomic coordinate system. However this restricts us to very small windows which we can reasonably display. A much more compact version of the same information is to use colored boxes rather than individual letters. Those boxes can be stacked much closer together, which increases the possible window size quite a bit. The user does not really need to worry about this as the plotting method will automatically make a reasonable decision based on the available space. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20100) @ For added flexibility one can set the \code{noLetters} display paramter to \code{TRUE} to always force the drawing of boxes. Of course also the colored box represenation of a sequence has its limits, and if we cross the threshold when individual boxes can not be separated anymore, the plotting method falls back to drawing a single line indicating the presence of a sequence at the given position. <>= plotTracks(sTrack, chromosome=1, from=20000, to=201000) @ Finally, the selected font size is also contributing to the available space, and we can cram a little more sequence into a given window by decreasing it. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20100, cex=0.5) @ \subsubsection*{Display parameters for SequenceTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{SequenceTrack} class by typing in \code{?SequenceTrack} on the \RR command line. <>= addParTable("SequenceTrack") @ \subsection{AlignmentsTrack} Plots of aligned sequences, typically from next generation sequencing experiments can be quite helpful, for instance when visually inspecting the validity of a called SNP. Those alignments are usually stored in \code{BAM} files. As shown in some of the previous section we can deal with these files in a fairly crude way by coupling them to either an \Rclass{AnnotationTrack} or a \Rclass{DataTrack}. The utility of the generated plots however is fairly limited, and we want in particular support for gapped and paired aligments, and show differences of the individual read sequences to a reference. The \Rclass{AlignmentsTrack} class is designed to help in exactly these tasks. In its typical manifestation it is also a member of the \Rclass{ReferenceTrack} class, enabling memory efficient streaming directly off a file. Even though this file does not necessarily have to be a \code{BAM} file, the automatic import will only work for those. For all other file representations of alignments a user will have to provide their own import function, and this topic is further discussed in the class' documentation. For this demonstation let's use a small \code{BAM} file for which paired NGS reads have been mapped to an extract of the human hg19 genome. The data originate from an RNASeq experiment, and the alignements have been performed using the \code{STAR} aligner allowing for gaps. We also download some gene annotation data for that region from Biomart. Again, creating the \Rclass{AlignmentsTrack} object is as simple as calling the constructor function of the same name. We set the \Rfunarg{isPaired} argument to \code{TRUE} in order to tell the constructor that it should expect paired reads. Please note that \code{TRUE} is the default value for this parameter and usually things will still work even if the reads do not originate from a paired end library. In other words, the default setting could be used as a poor-man's autodetection, however it make more sense to supply the argument explicitely if you know what type of data to expect. <>= afrom <- 2960000 ato <- 3160000 alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "gapped.bam"), isPaired=TRUE) data(alTrackGenes) @ <>= afrom <- 2960000 ato <- 3160000 alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "gapped.bam"), isPaired=TRUE) bmt <- BiomartGeneRegionTrack(genome="hg19", chromosome="chr12", start=afrom, end=ato, filter=list(with_ox_refseq_mrna=TRUE), stacking="dense") @ We can create a first plot of our read alignments data from a birds eye perspecive, say a range of 20,000 nucleotides. <>= plotTracks(c(bmt, alTrack), from=afrom, to=ato, chromosome="chr12") @ Now this already shows us the general layout of the track: on top we have a panel with the read coverage information in the form of a histogram, and below that a pile-up view of the individual reads. There is only a certain amount of vertical space available for the plotting, and not the whole depth of the pile-up can be displayed here. This fact is indicated by the white downward-pointing arrows in the title panel. We could address this issue by playing around with the \Rfunarg{max.height}, \Rfunarg{min.height} or \Rfunarg{stackHeight} display parameters which all control the height or the vertical spacing of the stacked reads. Or we could reduce the size of the coverage section by setting the \Rfunarg{coverageHeight} or the \Rfunarg{minCoverageHeight} parameters. Please see the class documentation for more details. <>= plotTracks(c(bmt, alTrack), from=afrom, to=ato, chromosome="chr12", min.height=0, coverageHeight=0.08, minCoverageHeight=0) @ From that far out the pile-ups are not particlularly useful, and we can turn those off by setting the \Rfunarg{type} display parameter accordingly. <>= plotTracks(c(alTrack, bmt), from=afrom, to=ato, chromosome="chr12", type="coverage") @ Let's zoom in a bit further to check out the details of the pile-ups section. <>= plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12") @ The direction of the individual reads is indicated by the arrow head, and read pairs are connected by a bright gray line. Gaps in the alignments are show by the connecting dark gray lines. Numbers of reads supporting each gap can be visualized as ``sashimi plot'' \cite{Katz22012015} by adding \Rfunarg{``sashimi''} as an additional agument to the \Rfunarg{type} display parameter. The axis in the title panel shows the relationship between the line width the the number of reads spanning a given junction. The height of each arc is not informative, it is optimized to fit all overlapping junctions in a small window. <>= plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12", type=c("coverage", "sashimi")) @ It is also possible to filter the junctions by including the coordinates as an additional argument \Rfunarg{``sashimiFilter''}. In this case only junction which equally overlaps with specified \Rclass{GRanges} object are shown. <>= introns <- GRanges("chr12", IRanges(start=c(2973662, 2973919), end=c(2973848, 2974520))) plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12", type=c("coverage", "sashimi"), sashimiFilter=introns) @ However sometimes the aligners do not place the junction reads precisely on the exon-intron boundaries and it is therefore useful to include also junctions which are shifted by few bases. This can be done by setting the additional argument \Rfunarg{``sashimiFilterTolerance''} to small positive integer value. <>= plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12", type=c("coverage", "sashimi"), sashimiFilter=introns, sashimiFilterTolerance=5L) @ On devices that support transparancy we can also see that some of the read pairs are actually overlapping. Like before, we can not display the full depth of the pile-up, and the clipping that takes place hides a lot of the reads from the view. Another way of getting to see at least some of them is by reversing the stacking order. We can also play around with some of the other display parameters that control the look and feel of the reads. <>= plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12", reverseStacking=TRUE, col.mates="purple", col.gap="orange", type="pileup") @ As mentioned before we can control whether the data should be treated as paired end or single end data by setting the \Rfunarg{isPaired} argument in the constructor. Here is how we could take a look at the data in the same file, but in single end mode. <>= alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "gapped.bam"), isPaired=FALSE) plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12") @ So far we did not look at the individual read sequences at all. Even though they are contained in the \code{BAM} file, their value is fairly limited without the reference sequence against which the reads have initially been aligned. Typically the mismatch positions and the variant bases are not included. (Please note that this is not entirely true for all \code{BAM} files. One can store base mismatch positions in the CIGAR string, or even the full variant description in the non-standard \code{MD} field. However very few aligners currently make use of these features. We may implement support for those later if found necessary.) To better show the features of the \Rclass{AlignmentsTrack} for sequence variants we will load a different data set, this time from a whole genome DNASeq SNP calling experiment. Again the reference genome is hg19 and the alignments have been performed using \code{Bowtie2}. <>= afrom <- 44945200 ato <- 44947200 alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "snps.bam"), isPaired=TRUE) plotTracks(alTrack, chromosome="chr21", from=afrom, to=ato) @ Somehow we need to tell the \Rclass{AlignmentsTrack} about the reference genome, and there are two ways to archive this. Either we provide a \Rclass{SequenceTrack} object with the reference to the constructor function via the \Rfunarg{referenceSequence} argument, or we stick it into the track list that is provided to the \Rfunction{plotTrack} which is smart enough to detect it there. For this example we chose the second option and re-use the \Rclass{SequenceTrack} object from the previous section. <>= plotTracks(c(alTrack, sTrack), chromosome="chr21", from=afrom, to=ato) @ The mismatched bases are now indicated on both the individual reads in the pileup section and also in the coverage plot in the form of a stacked histogram. When zooming in to one of the obvious heterozygous SNP positions we can reveal even more details. <>= plotTracks(c(alTrack, sTrack), chromosome="chr21", from=44946590, to=44946660) @ Just like shown before in the \Rclass{SequenceTrack} we can even show individual letters here as long as there is enough space to fit them. This can be controlled using the display parameters \code{min.height}, \code{max.height} and \code{cex}. <>= plotTracks(c(alTrack, sTrack), chromosome="chr21", from=44946590, to=44946660, cex=0.5, min.height=8) @ \subsubsection*{Display parameters for AlignmentsTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{AlignmentsTrack} class by typing in \code{?AlignmentsTrack} on the \RR command line. <>= addParTable("AlignmentsTrack") @ \subsection{Creating tracks from UCSC data} The UCSC data bases contain a multitude of genome annotation data for dozents of different organisms. Some of those data are very simple annotations like CpG island locations or SNP locations. Others are more complicated gene models, or even numeric annotations like conservation information. In order to provide a unified interface to all this information, the \mgg package defines a meta-constructor function \Rfunction{UcscTrack}. The idea here is that we can express all of the available Ucsc data in one of the package's track types. We use the functionality provided in the \Rpackage{rtracklayer} package to connect to UCSC and to download the relevant information. As a little illustrative example, let's reproduce a view from the famous UCSC genome browser using the \mgg package. As a final result we want to show something similar to Figure~\ref{fig:UCSC1}. \begin{figure}[htb] \centering \includegraphics{ucsc1.pdf} \label{fig:UCSC1} \caption{A screen shot of a UCSC genome browser view around the FMR1 locus on the mouse chromosome.} \end{figure} To start we first need to know about the available data in the UCSC data base and about their structure. A good way to do this is to use the table browser on the UCSC web site (\url{http://genome.ucsc.edu/cgi-bin/hgTables?command=start}). Figure~\ref{fig:UCSC2} shows the table structure for the first gene model track, the known UCSC genes, in the table browser. We can see that there are multiple fields, some with genomic locations, other with additional data like labels or identifiers. If we go back to the section about the \Rclass{GeneRegionTrack} class we remember that we need exactly this type of information for the constructor function. So in order to take the UCSC data and build an object of class \Rclass{GeneRegionTrack} we need a way to map them to the individual constructor arguments. This is exactly what the \Rfunction{UcscTrack} meta-constructor is supposed to do for us. \begin{figure}[htb] \centering \includegraphics{ucsc2.pdf} \label{fig:UCSC2} \caption{A screen shot of a UCSC table browser view on the UCSC Known Genes track.} \end{figure} It needs to know about the track for which to extract the data (and optionally one or several of the tables that make up the collective track data, see \code{?UcscTrack} for details), about the genomic range including the chromosome for which to extract data, about the type of \mgg track that we want to translate this data into, and about the individual track columns and their counterparts in the respective track class constructor. In our example, the track is called \code{knownGene}, the track type to construct is \code{GeneRegionTrack}, and the relevant columns are \code{exonStarts}, \code{exonEnds}, \code{name} and \code{strand}, which we will use as the start and end coordinates of the ranges and for all the exon, transcript and gene identifiers. Here we make use of the high flexibility of the \Rfunction{GeneRegionTrack} constructor in the sense that the exon coordinates actually come in the form of a comma-separated list, combining all the information for one transcript in one row of the table. The function is smart enough to detect this and to split the annotation regions accordingly. The full function call to create the \Rclass{GeneRegionTrack} from the UCSC data looks like this: <>= from <- 65921878 to <- 65980988 knownGenes <- UcscTrack(genome="mm9", chromosome="chrX", track="knownGene", from=from, to=to, trackType="GeneRegionTrack", rstarts="exonStarts", rends="exonEnds", gene="name", symbol="name", transcript="name", strand="strand", fill="#8282d2", name="UCSC Genes") @ With a similar approach we can construct the next two gene model tracks based on the \code{xenoRefGene} and \code{ensGene} data tables. <>= refGenes <- UcscTrack(genome="mm9", chromosome="chrX", track="xenoRefGene", from=from, to=to, trackType="GeneRegionTrack", rstarts="exonStarts", rends="exonEnds", gene="name", symbol="name2", transcript="name", strand="strand", fill="#8282d2", stacking="dense", name="Other RefSeq") ensGenes <- UcscTrack(genome="mm9", chromosome="chrX", track="ensGene", from=from, to=to, trackType="GeneRegionTrack", rstarts="exonStarts", rends="exonEnds", gene="name", symbol="name2", transcript="name", strand="strand", fill="#960000", name="Ensembl Genes") @ The CpG and SNP tracks are slightly different since a \Rclass{GeneRegionTrack} representation would not be particularly useful. Instead, we can use \Rclass{AnnotationTrack} objects as containers. The overall process using the \Rfunction{UcscTrack} meta-constructor remains the same. <>= cpgIslands <- UcscTrack(genome="mm9", chromosome="chrX", track="cpgIslandExt", from=from, to=to, trackType="AnnotationTrack", start="chromStart", end="chromEnd", id="name", shape="box", fill="#006400", name="CpG Islands") snpLocations <- UcscTrack(genome="mm9", chromosome="chrX", track="snp128", from=from, to=to, trackType="AnnotationTrack", start="chromStart", end="chromEnd", id="name", feature="func", strand="strand", shape="box", stacking="dense", fill="black", name="SNPs") @ Most of UCSC's \Rclass{DataTrack}-like tracks are a little more complex and represent a collection of several sub-tracks, with data originating from multiple tables. To make sure that we get the correct information we have to be a little bit more specific here and also define the particular table on the UCSC data base to use. <>= conservation <- UcscTrack(genome="mm9", chromosome="chrX", track="Conservation", table="phyloP30wayPlacental", from=from, to=to, trackType="DataTrack", start="start", end="end", data="score", type="hist", window="auto", col.histogram="darkblue", fill.histogram="darkblue", ylim=c(-3.7, 4), name="Conservation") gcContent <- UcscTrack(genome="mm9", chromosome="chrX", track="GC Percent", table="gc5Base", from=from, to=to, trackType="DataTrack", start="start", end="end", data="score", type="hist", window=-1, windowSize=1500, fill.histogram="black", col.histogram="black", ylim=c(30, 70), name="GC Percent") @ To add some reference points we also need a genome axis and an \Rclass{IdeogramTrack} of the x chromosome. <>= axTrack <- GenomeAxisTrack() idxTrack <- IdeogramTrack(genome="mm9", chromosome="chrX") @ And finally we can plot all of our tracks. <>= data(ucscItems) @ <>= plotTracks(list(idxTrack, axTrack, knownGenes, refGenes, ensGenes, cpgIslands, gcContent, conservation, snpLocations), from=from, to=to, showTitle=FALSE) @ \section{Track highlighting and overlays} \subsection{Highlighting} Some features of a typical genome browser plot are not specific for just a single track, but instead span multiple tracks. One prominent example are highlighting regions. Assume you want to draw the attention on the plot to a particular genomic stretch where the visual clues across serveral or maybe even all tracks indicate a particular interesting behaviour. Because the individual tracks in the \mgg package are all represented by individual objects, there is no straight forward way to define such a region. Here is where the \Rclass{HighlightingTrack} class comes into play. Objects from this class are essentially just containers for one or several of the previously described track objects, togehter with a very simple range definition that is to be superimposed over the individual tracks once they have been rendered. Going back to our final example from the second chapter we could highlight two areas on the plot on the \Rclass{AnnotationTrack}, the \Rclass{GeneRegionTrack} and the \Rclass{DataTrack} using the \Rfunction{HighlightTrack} constructor in the following call: <>= ht <- HighlightTrack(trackList=list(atrack, grtrack, dtrack), start=c(26705000, 26720000), width=7000, chromosome=7) plotTracks(list(itrack, gtrack, ht), from = lim[1], to = lim[2]) @ One can also build multiple \Rclass{HighlightTrack} collections to create gaps in the highlighting regions. For \Rclass{IdeogramTracks} we never plot highlighting ranges because they do not live on the same x-axis coordinate system like the other tracks. <>= ht1 <- HighlightTrack(trackList=list(itrack, gtrack, atrack), start=c(26705000, 26720000), width=7000, chromosome=7) ht2 <- HighlightTrack(trackList=dtrack, start=c(26705000, 26720000), width=7000, chromosome=7) plotTracks(list(ht1, grtrack, ht2), from=lim[1], to=lim[2]) @ \subsubsection*{Display parameters for HighlightTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{HighlightTrack} class by typing in \code{?HighlightTrack} on the \RR command line. <>= addParTable("HighlightTrack") @ \subsection{Overlays} For certain applications it can make sense to overlay multiple tracks on the same area of the plot. For instance when dealing with multiple data sets that do not necessarily share the same genomic coordinates for their data points the design of the \Rclass{DataTrack} class is not optimal. To contrast these two data sets an overlay of two separate \Rclass{DataTrack} objects however can be quite powerful.The \mgg package allows for such overlay operations by means of the \Rclass{OverlayTrack} class.Similar to the \Rclass{HighlightTrack} class from the previous section this is merely a container for an arbitrary number of other \mgg track objects. For the purpose of an instructive example we will generate a second \Rclass{DataTrack} object and combine it with the existing one from the second chapter. <>= dat <- runif(100, min=-2, max=22) dtrack2 <- DataTrack(data=dat, start=coords[-length(coords)], end=coords[-1], chromosome=chr, genome=gen, name="Uniform2", groups=factor("sample 2", levels=c("sample 1", "sample 2")), legend=TRUE) displayPars(dtrack) <- list(groups=factor("sample 1", levels=c("sample 1", "sample 2")), legend=TRUE) ot <- OverlayTrack(trackList=list(dtrack2, dtrack)) ylims <- extendrange(range(c(values(dtrack), values(dtrack2)))) plotTracks(list(itrack, gtrack, ot), from=lim[1], to=lim[2], ylim=ylims, type=c("smooth", "p")) @ It is important to know that \mgg is fully unaware of the intention and any specifics of the track merging operation. Any track type can be merged with any other track type, and there are no limitations on the number of overlays. It is totally up to the user to design reasonable merges and to control critical aspects of the plot, like the y-axis scaling or the grouping in the above example. During rendering, the software will only use the first track object in the \Robject{trackList} container of \Rclass{OverlayTracks} object to set up the track title. Thus, the ranges on the y-axis are those that have been automatically determined for the first of our two \Rclass{DataTracks}. Only by forcing a common y-range for both objects do we actually plot the data from both tracks on a common scale. Had we added another track object that is not a \Rclass{DataTrack} is the first element of our \Rclass{trackList} there wouldn't even be an axis. In a similar fashion, by nicely setting up the group levels for the two \Rclass{DataTracks} we can even ask for a legend to be added. On devices that support it, alpha blending can be a useful tool to tease out even more information out of track overlays, at least when comparing just a small number of samples. The resulting transparancy effctively eliminates the probelm of overplotting. The following example will only work if this vignette has been built on a system with alpha blending support. <>= displayPars(dtrack) <- list(alpha.title=1, alpha=0.5) displayPars(dtrack2) <- list(alpha.title=1, alpha=0.5) ot <- OverlayTrack(trackList=list(dtrack, dtrack2)) plotTracks(list(itrack, gtrack, ot), from=lim[1], to=lim[2], ylim=ylims, type=c("hist"), window=30) @ \section{Composite plots for multiple chromosomes} As mentioned in the introduction section, a set of \mgg tracks has to share the same chromosome when plotted, i.e., only a single chromosome can be active during a given plotting operation. Consequently, we can not directly create plots for multiple chromosomes in a single call to the \Rfunction{plotTracks} function. However, since the underlying graphical infrastructure of the \mgg package uses grid graphics, we can build our own composite plot using multiple consecutive \Rfunction{plotTracks} calls. All we need to take care of is an adequate layout structure to plot into, and we also need to tell \Rfunction{plotTracks} not to clear the graphics device before plotting, which can be archieved by setting the function's \Rfunarg{add} argument to \code{FALSE}. For details on how to create a layout structure in the grid graphics system, please see the help page at \code{?grid.layout)}. We start by creating an \Rclass{AnnotationTrack} objects and a \Rclass{DataTrack} object which both contain data for several chromosomes. <>= chroms <- c("chr1", "chr2", "chr3", "chr4") maTrack <- AnnotationTrack(range=GRanges(seqnames=chroms, ranges=IRanges(start=1, width=c(100,400,200,1000)), strand=c("+", "+", "-", "+")), genome="mm9", chromosome="chr1", name="foo") mdTrack <- DataTrack(range=GRanges(seqnames=rep(chroms, c(10, 40, 20, 100)), ranges=IRanges(start=c(seq(1,100,len=10), seq(1,400,len=40), seq(1, 200, len=20), seq(1,1000, len=100)), width=9), values=runif(170)), data="values", chromosome="chr1", genome="mm9", name="bar") @ Now we also want a genome axis and an \Rclass{IdeogramTrack} object to indicate the genomic context. <>= mgTrack <- GenomeAxisTrack(scale=50, labelPos="below", exponent=3) chromosome(itrack) <- "chr1" @ Finaly, we build a layout in which the plots for each chromosome are placed in a rectangular grid and repeatedly call \Rfunction{plotTracks} for each chromosome. <>= ncols <- 2 nrows <- length(chroms)%/%ncols grid.newpage() pushViewport(viewport(layout=grid.layout(nrows, ncols))) for(i in seq_along(chroms)){ pushViewport(viewport(layout.pos.col=((i-1)%%ncols)+1, layout.pos.row=(((i)-1)%/%ncols)+1)) plotTracks(list(itrack, maTrack, mdTrack, mgTrack), chromosome=chroms[i], add=TRUE) popViewport(1) } @ Maybe an even more compact version of this would be to use the lattice package for building the actual trellis, with \Rfunction{plotTracks} as the panel function. <>= library(lattice) chroms <- data.frame(chromosome=chroms) xyplot(1~chromosome|chromosome, data=chroms, panel=function(x){plotTracks(list(itrack , maTrack, mdTrack, mgTrack), chromosome=x, add=TRUE, showId=FALSE)}, scales=list(draw=FALSE), xlab=NULL, ylab=NULL) @ \section{Bioconductor integration and file support} This short section is supposed to give a very brief overview over the different track classes in the \mgg package and how those can be constructed from the typical Bioconductor classes that deal with genomic data. The list ist by no means complete, and a closer look at a track class' documentation should provide all the possible options. \begin{longtable}{ l | l | p{9.5cm} } \hline Gviz class & Bioconductor class & Method\\ \hline AnnotationTrack & data.frame & Constructor \\ & IRanges & Constructor + additional arguments \\ & GRanges & Constructor or setAs method, additional data in metadata columns \\ & GRangesList & Constructor or setAs method \\ \hline GeneRegionTrack & data.frame & Constructor \\ & IRanges & Constructor + additonal arguments \\ & GRanges & Constructor or setAs method, additional data in metadata columns \\ & GRangesList & Constructor or setAs method, additional data in metadata columns \\ & TxDb & Constructor or setAs method \\ \hline DataTrack & data.frame & Constructor \\ & IRanges & Constructor + additional data matrix \\ & GRanges & Constructor or setAs method, numeric data in metadata columns \\ \hline SequenceTrack & DNAStringSet & Constructor \\ & BSgenome & Constructor \\ \hline \end{longtable} We have seen in previous examples that the \mgg package supports quite a wide range of standard file types as inputs for the class' constructor functions. In this section we summarize the file support for the different track classes in one place. \begin{longtable}{ l | l | l | c | p{6.5cm} } \hline Gviz class & File type & Extension & Streaming & Details\\ \hline AnnotationTrack & BED & \code{.bed} & -- & Genomic locations from the mandatory \code{chrom}, \code{chromStart} and \code{chromEnd} fields, and optionally the strand from the \code{strand} field. If present, the information in the \code{name} field is mapped to track item ids, and \code{itemRgb} is mapped to track item feature type. All other fields are currently ignored.\\ & GFF & \code{.gff}, \code{.gff1} & -- & Only the following basic GFF fields are recognized: \code{seqname}, \code{start}, \code{end}, \code{end}, \code{strand}, \code{feature} (mapped to track item feature type) and \code{group} (to allow for track item grouping). \\ & GFF2 & \code{.gff2} & -- & Same as above, but feature grouping information may be provided either as \code{Group} or \code{Parent} attribute. Feature ids are mapped to one of the \code{ID}, \code{Name} or \code{Alias} attributes.\\ & GFF3 & \code{.gff3} & -- & Same as above, but feature grouping information has to be provided as the \code{Parent} attribute.\\ & BAM & \code{.bam} & $\surd$ & Only start and end locations as well as the strand information for the reads are used. Read identifiers are used for track item grouping.\\ \hline GeneRegionTrack & GTF & \code{.gtf} & -- & A somewhat looser format definition for \code{gtf} files is applied here where gene, transcript and exon identifiers and names can be parsed from the \code{gene\_id}, \code{gene\_name}, \code{transcript\_id}, \code{transcript\_name}, \code{exon\_id} or \code{exon\_id} attributes.\\ & GFF & \code{.gff}, \code{.gff1} & -- & This only supports very limited item grouping and thus complete gene models can not be properly encoded.\\ & GFF2 & \code{.gff2} & -- & In most instances this is identical to the \code{GTF} standard and it could make sense to rename the file accordingly.\\ & GFF3 & \code{.gff3} & -- & The gene-to-transcript and transcript-to-exon relationships are encoded in the \code{parent} and \code{type} attributes and the parser tries to accomodate most of the exisiting GFF3 variants.\\ \hline DataTrack & BedGraph & \code{.bedGraph} & -- & \\ & WIG & \code{.wig} & -- & \\ & BigWig & \code{.bigWig}, \code{.bw} & $\surd$ & \\ & BAM & \code{.bam} & $\surd$ & Read coverage only is extracted from the \code{bam} file.\\ \hline SequenceTrack & FASTA & \code{.fa}, \code{fasta} & $(\surd)$ & Streaming only possible if an index file is found in the same directory as the original fasta file.\\ & 2Bit & \code{.2bit} & $\surd$ & \\ \hline AlignmentsTrack & BAM & \code{.bam} & $\surd$ & ALways needs an index file is found in the same directory as the original BAM file.\\ \hline \end{longtable} \clearpage \section*{SessionInfo} The following is the session info that generated this vignette: <>= sessionInfo() @ \clearpage \bibliography{Gviz-refs} \end{document} Gviz/inst/doc/Gviz.pdf0000644000175400017540000572441113175732504015700 0ustar00biocbuildbiocbuild%PDF-1.5 % 137 0 obj << /Length 1226 /Filter /FlateDecode >> stream x\Ms6WHΔ0 ^\IS*!ɯ/@BIgiϞ =`*uI8e)I(`„$e!%ٟ7糂$B0_@dI^ ˡG\pQjZe9I׍1תl-?M#yUc)pY&zwuϻg$#!(M+f,a uӲJ/nõ}'8 CG\/'jdq;F5Y^RBD8H޿pC8V$ y_M  rY[9Y%7٫Ͼ2_K՛E.!8 כqЄΆЊKX.tCm9:wW."cmݬ-ک6#8U[mu;=%TʔG $VD"W]%1pw)A8߁.nGs)AZoǴX*a%0@*=t'wPzP",˺#~ % `DeMȑ$:udyF(N+dӿ}XlT׍Y U6*Gtv1@"}R>ҍ7 '?^jUG5/GW !5ܱ}J$eEMcX`(0< DӫVF&$K"8\f,g8$B w⥘/Խh1ڪz=Ү dSZdäVQbfr!&o>Mj>MXxGq&oN'eM=n5ېeVV皁ߟJbl^J!jÉ}}R!wQ>1%C B qeGI(a):^r*<NTbCOlq%î ߧCbBF;FIMMWېu1`{I2!1wPrntfdr54&d>1k06{ucя<}*S[#0ۻngBXˈ24.T8/gL޲ endstream endobj 150 0 obj << /Length 3402 /Filter /FlateDecode >> stream xZɒFWȎp aFXr8&l@,-_?/7Ht[d2A]W7|2V~nVeYJpZ~wa_=ԿKJ_gGA؏4tcC? hC.ʱHC:lCFI~~x%Cmb+6[lν^!<ֻKo4w],B#aߩZc?hy1黽 uTWzd5Գzao^w24K?>k2Q V7jo/xusQNnM̬9+iJqg{ێGEqYJW%AWt[!ݣGoke:K $U=H ]IilkYgNђ>Wr:Qv;R;݁[)rje׶㈃F,R^a/-6k_Ĵ'.+sd ~sz /~[o`A! /^zOZQU"闖#7{Wҁ3&R83ACng}&r&Qs5^8~!3I*PM=餱F>vw<E5DWq䷖.bG0F|hzPS;\ {l @*q{q(' Y}qե8,Nn:S U[f%/2ɟf"LQ~jz*}]<kQ8!jɺ1؂ӮY-hyi$Z;8.ə%p]6` -ҸW Q .^Tc{@,J0M:2"mbo.SŅ0 HKn5gp@R"⧺Ea(,|r<e, Pɇn*h˓h2'H=Ez~p}u1LOޥz3Z֫Vߧnw8Ao!AV$V(1Xa0;:a8B`CcGkA'NQ ]񠜊::Pj9ɼTKn]hK!-lڃ#&t :05X" %юEܠmrٙ'Όn,pJTBWP׶lN1E(iF4qW1F%%]l6Qhj4v'Z %;tS_s4O }*!HW|-LeϊA_;h4ji5C5V 2fj+v,I`Xсj6:pejOH_žTϡuk4T!/͹Һh2QZs$$@`CFȰ¨S'ƽAh 'Ӕ7;MYH6h:bj[98l+\q?sWnFxSC$2SγcL[G-Zyq.>_f9oBT cQhDՒB 12W*20qAD}/܋s/t"#m윺 Pl+A>BMKr/IV틖Fy;3)Г9%'E󩎌CaqtJq }%\GNPk/S}YGFE3fvGӋnơkh',84[Cy$Ѹ/Z MaDݶ׬"Sbg$ ѩUqO' .8_p*=ƑfxjI.|v1]c[?޳x`)6hVg? )ȳoe[0ox~\Z+vyu-( (\fwuU9Gd?0X@." _M_G> -Qp^GVu9\>VL)Yƃv<ܮQz$E!|tس7#8#(k⡽`%'K1up]mV 3ZY`>(n G+@tyKY*>}E}k.v6T>11O }Vra˗ZKr\[9dT P/̧X4<mq!b-f@2+Ag5% Rnɒ/, NXf R5M Ӌ#%j'i҂i pCc1 <y"$xa$NюuWhxIS/K$'9OyA]@9T\sЂم;Me4Ot?yمKΟt9KjGhJ~CaQQm{+i(| 5V̥41k7wYL D\;$/GgҘeA]lGgpظ ? c,CG|ۇrfZ*C-DԒ3JWVw>wPa$Ӝ*+]pIg@CӋ, YŅ\ ԷJD!]mLY9ChA0G "Ϙ-hb!8HH{,GfG%$4~(KnS9gg|gS򝪸좕V=fuR6޶v4%悀{QLw M=Լ 2O|:pb[;r1DD?opylgEgğ,Bx`D,g愖~>E<1s&:/?P(/txX6ÕHۻx?ɽG>eyRw& endstream endobj 157 0 obj << /Length 3446 /Filter /FlateDecode >> stream xr]_ ށNS{C$y%h~}eAeHAbsa2[͒۫ooycL$qdbv$NS9sZFbSt7ҥwз+ﮒ7oTrF|FED)㎮9/FDا,F27EZp_QsS_CoEɋ#u8,MY͞[i!lY?^}.L'.vLŀ N9`Ҭ?|, 38I;!38DJ¨D&ZLЗtY,NX< ,;@8wO΍2b3yWHF]K`h! srQş_rQ黗-Ouv<_;aY`~ϯy7ᄏb7oG(b D1 $Jhbijd? !j8QbxYd?A&ܪ|XaL.0*%L}w^sgH6?'+4_=g<0/=uLxOƵHt糛GJ 6籜Ea:.v5,2[% X5猾 JSJbT/Y?,fI_Y+¤!˃2mEnULFyB+}5нGBN V2-ǒ I8OU/"v@#ri|[ X>I_rf6ɀd 4hz2h20K“,𰾜go?gwBzv_#NIЉ@HHGOH^~Q(4"WG}KvLFS{^Zf<2nA~ ^/i{4OApSn/{l r9`ϼc?3z?=cDS"UI /cu Erx^FbPYzPmiw7Rp+OF*K6>y`| -[9z'_T*'; sWaA;B>Q#:AqI}ֈ\X;m0D0nE乑<!t KcGas^hW0~bl1lVyآ}9a(wDS:Nч1sO2xDڍχ7 2nqC!|'&h9'pku-eΥL p脐 \0vl c+$k!}e9M(8g?#Ր+%9YW,4Gnk2@Du ;te%ßWd*I-]Ck}M W#8F}-62hxg/sH%%hp@9V |ĺ *aLV#F?YMtД`W\PvntEX urz]+ћB _r'=vDzG?UHmH%:8sg cK:-/ 3cIpb2R @b1@XY6$n>@8eK2[0z#ٿ$3@w ޒ}>n& bS1<_'XBG>_- ln$q[GS1HŞ* a틫7dIi@(1!BL(9rRs_>Bu3ח"|ŝtuXc[#qRVs2@DNR -L * dl?J%s?n_FvL{(țhAlyݵw.GatO;B0j_zn6qs0h-IG@ocn#aIWý6W_@q4v3QJeY~?~y,M%]`)`0-tX` endstream endobj 163 0 obj << /Length 3074 /Filter /FlateDecode >> stream xZY~_1oȊqbaZr&g%αr"@X>hYDW7_<&Q ETzDaE0zqZmRgyPƥ6+{ݷ7ݍBP„qi87aiN "5nBxzn |R\$1L4OPxn&ς: +UrYvG*P\AooUf S6}2v孆>C] UyUCYЇ4Jqw{ꡡɗʄI\$[0hHeOm\Kp5v]6}7SiƮϝgL"ΝGGz*x\r`nW^eM/50 <z`c_ !ջZLYlp!&r(BW[ US:g}B=pva[Ll"^{|c$M7/m~q0^853Tx<yT}-sL+Zu /+T>=1Y *HLLT=$TEp2PAsdJ`J`Wg-VX?nr[&WXVe[YrǡVeMx}ۺ2v1qpL\|enP'Qo5} zRK7}OȵʠedYjk)lb V+_`Hp`U0rU%29"%E2E}*)B.N) u} ˃ל OPd۝%ag!"LT=@ >)><0_qtҤ!{0aV3 I19x,Q&DkкE (4{ !Iu6 mʡ>HmUb2y'/.lRjb~r dGCv j]#B̀ڒ2?ԝgh;>XYqd/yEV[96*^7UB7M" \޶;&hdX@߁d+SU\/~ D݁74(v ~lTR[^q1dpg9yL>LjH'D V"*=2]yoB_- yh+]y3u/ JoIxITEuT_P>A,` .Br)VFi͑$tOPgO% `1 ak҃y"fP\8A :l9J"S\x:G@KzSn& ʫOp|w9l'¥.R99n;m f Jη_lXA.x# )eŮr*Zk튩GjU'n(F|1L5P3r 1mtutSz2?nu4.O `-`l0cx %0DZ L<z޵utq` zX;YH ZOx-7Av-(ÄRǏ9H/z|aW 84dyZJ'evix j v` ( c+p5=P̜ߞ54SǗde2BbbvsSL xEdLL瓛pW1~=cr]L9L~4tDγ0 !ޕ> mIu }cJ5&mXPeG(ފqk<.]4:LO\ȃ4jRJ j:sc]K-Fe`g= L@-|1l> dހƅ<*=DfhZ4z9##MQdwΕ^(pL/ܐ<4 nV„ٞg^UMVQj""?&;% K&P&,k`XX&&vv`hU}4|SLCIEb JFu 9(-ቑv^rLccSSO%KQ0$}K=U, J ڸ+_äcOHVD)'kf\]pc@D&CF(H:1RڮlG]M$L(E`cҭ"u$o1%9KFf~7uQ& (zt@=F&Y4 |/}1qjm+i {(sTXնvѰIhjhC&RЖ`j0v,e >Y0wzq[uc.XsϓXhYAĪ?~Bb^neEhORs'czojlwE%Km-5l3U> /ExtGState << /GS1 167 0 R /GS2 168 0 R /GS257 169 0 R >>/ColorSpace << /sRGB 170 0 R >>>> /Length 432 /Filter /FlateDecode >> stream xUMK1WQd- KmQwVTad|\{Ft 9xUUPZ *xaf+&<n@8E!}nվ[Pپc}: UXA.&KhWݾ,W q\CgXOL_=δ:#j)JH3 |S(5ң5S5MD]D.2Z03ԂPQ&)-tVZM(qY$cIʀ70 u ue*т [R!,.DB rE+GՁLjÆYbol#LH&RƷl§֎5R ua4ŁLur > 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 160 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-plotGenomeAxisTrack.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 173 0 R /BBox [0 0 540 79] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 174 0 R/F8 175 0 R>> /ExtGState << /GS1 176 0 R /GS2 177 0 R /GS257 178 0 R >>/ColorSpace << /sRGB 179 0 R >>>> /Length 619 /Filter /FlateDecode >> stream xVnSA Wx c{*U &!E 'i( s}Όc \Z"|ًKX,J) ~7@g#0 _t,AZɠ%߬RN.c&E}Ɣx\tTiT(}-j#)E v`LnM3[K:i?ܝgdb"'gĞEզWQh|R(Uh]uynHt]__rLQsT"-ָ dW;xaq[?F\sc)2.ޟzxx~g\ a^s@o3i2,T|]< w*!hE/J)\|"yTvk@9*ew(O'#·#Lއͽ;EL\$Nh+Mh[QGJ(3Z GĮa↲-̡fVz;+ j#kxtMYP7)@ۊh-0!E nlJ֥!NJmآmWW> 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 186 0 obj << /Length 2105 /Filter /FlateDecode >> stream x]۶~'/MO4 _3mg8|"! =IΗ_E4v=`^(Aū, 8* n7AGeB'QTp owz2|}~evt7WP}*$RJg8}?{{sJUZ6l=<ة!i跃ˬHw؛5]#gnc=!*ILW̜= ۸L*S1_xcxڙ70밴`rƣiݯzdqEN<#V*1QR׋S٩NzwtʢTgA^Ƒ*_!B%ΓS`ՏE2("2bdRE:KY·_IQO&_>W/fYq~[4,iE땮֚Q,럙#M$c ˊm6c2makZ%KF;Nfݺqىg X3mx2(P#9+l)WUQWmy֘\r 80_~yïX;I@C#y(d|]<wB"=/bAQ$4UFu`X48; XYRH AǗѭ[{NiͱNB` yp$4]8{I)>3??K*p*!$U,?1Ly*t<."R*U$ o$gvW`醡eZle8|?obo޵{8D@H{[{?vDS89JKi b+SSs,) f%XP%ɄV4|L(.3E q~B#E1-ƹ]N$|&!y :Kr'ܡKڰ ‹74{qFjAs )HrnT2od j*|"+}m8qd47JTV'*x: ury&5n7Ti89ģJ}dGGJ /Z*sHf/d{ %oy'guws Fډ.Ņ7P[`MYG;`]͓Z;U0es 6< 07_b 0 Nb")]MZf,@x"=+a^S=k.bV#$ʍ9@` v^#3HҳU4H%PɶI^s`y3 e qI:υA -HNSJ4FgXB #Vi~+),YdRkQӪ!{'[wP}?{2E;Bf!o%8Jw[^ٳ< ((Ț{Bnۆ&\±a1ق~\>Y!Qs"#hFB%*ņ Y*fᙚo61l-Ks}fHR@/eK5\ٗga`޾α m j9";=#;j&GCʄ>%QHLf#IY}(9=?EK S[+o˰4 ĈR#JHFm."H' /dw]"|)SukƑ9#]j5Sa$ž>h]jF}B@?-훾2lf+N;_7[TNar ׼ƤȘOx$9F׭I-G P}82L{RԩrPs|?JA;9Ē8\QгA\XAW'e *@D$zR(# C4JIQ@[> /ExtGState << /GS1 191 0 R /GS2 192 0 R /GS257 193 0 R >>/ColorSpace << /sRGB 194 0 R >>>> /Length 2180 /Filter /FlateDecode >> stream xZK$5 d~\w+!3exjsc;S=L7Њ>L~G9Lx^ݫǯ߾6ov:yKmݷg~y9y`؅JGs/@~Lt6eSh=\M o̯B}PL-6FښLȶ]=lפ3`ݽBd:/ n}4 ^|???ht:>;[$R0o!&,4,h?nOS۪i@SD@+y`|.-xڊ/0S*M~mfǴ)Zlo{. 6svL .#c 64&e`ϵǭcbl0m2XcQlo=ۻVM8:wv wF# Nߍ SAɅ0p|Y.ps""Hi52֓*K]$Fā*ڝP!@àm? ֶ<jy؊!"i! f~;jyuY+AMXꃂkr[s⊪u>(; *VQ=CGԸ'wk:'~&! r]*<&Bu}2Бyv>`Q9+NБIeBJ 3FAӌ/y52Va&5 9:**}XMTDMTDfDT޻R)՛R)՛Rݑ5fsemgڅ2~EԾ: 7ٮҾ: 7Ӓ'JKnmpc2t~G?y3~'HbBv`Lz9!a 1̸4@ l_ffؙrteY˰}@?A" I)ps| +sjfWP+\I81^Asxۧ{(r@)a|`.wJ[/_ħ+ɋρK7|9y)3GןOc}ՓN ɿ]x(pXcpwuu@d_.ۿ=T*3 tڲ瞂vHyHsdMxYF<ў= EF\F$}GH#D{F:2.mCJw V E/u> stream xXn8}ﯨa%/`_& bfmm%.A{Jq @*EI,iAHޓIMR1$ `G $eL)R6T4c-I#jIk2B2=8耹"IVQdam,Yg8f'kȋ@֓7fI Ϝd`-pGP"Sf 㵈eC3X<">6JD8 }Hs%HD% 4 JxHoq+g;\cdD9fc@Iyֲcex`d}hV8GvTt>O M4}z]nqkGkKo͞njE_{:M}Q-ojcHuqkHG^+R|VKgώfI>89Y~vmus PE=Cjŧ킴kA7/Rz<^G'>3,ii9,n›YnRH{IԼga>~]ankXHzPx/fOw_4O H"uxoR m1]L8n>ҥ@|TWm;DdsDx,'xs>Tezsv1-,ziQ]rZfH cWMNɫVOZ?d'';9NMvjSd';=fQgqS;R&Wy~rvw<=]⤒y|+C 39Fb"r*ȬVL : 糀R.S89"Orp23!s8i6 y؟9@OfpaH .)4W|f GD4:3\d:l91(Vs2wH6R!S8kn8-fyFFFs\C\#,"Js(\*34`n80pr9ZjpaXbЩ,? 3>o(-3)GN8 상/z˴ZwÉ{ _AR8g>U Ow(f|+l?Q擒а|;3ofy-@AB|'#QhsLIc’|ɥb$w$!ࠅLO(Z49yܫ~?ݪ"CadW(i@pX`%t*A׃bzzm&_=WAXXѵMy@jӗ( bӊG&(9t'|?g\6z@R%D|6+Y}>Zz=: "GD9Z]5i'zvw%vi>f۪_:k۪ P>pp)g% &.a_ŇWef1?e3k7濷ո?.zGǰ@n|Y cQW&0+VQU>+U>-5v]ߴŇЧrX^/Ǽ/m]`,|^a gs%X;ohi 2]E'GU'%c<6Ax/wMy^ww|]/DM?G~0Mʰc^|̫yNw& endstream endobj 197 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 202 0 obj << /Length 1710 /Filter /FlateDecode >> stream xr7jb1ǡim&tCF$NVKgv/@Jֱ!$^ 0O6 O]xHDsVYR(t%U2]lle~ t7ڕ^~î..<I%Y]dxw ^g;.H-=OՈKt.Il.+MCu!jig{ĨDEjLWD YdcZKtu L:,{*Sc+3ng۸h@o.@^MnWv JtݹB(^CW/l6/$@p͊ ۛK6WބɍE T77Hkm?QU$W AQ ƺ`ܘs@3; NZb[B"'y2]!p?.8Ti? um A^;lA9׃ZWkq] ;KFc |)zPBޠc@z|p w@i+ɱm74JN!`c" UdA1Bf0n@%8|A(W#6:E2 km=iWX=4kL@^nC:7 Nw=ӳbeO2IiCmEGҵC=pPe3ݾ% Kd  V"T\pΣP1աBP%4VBn f;S,"g|͓ĺ;5_Va&B!iń(!D*sX?&@39Z\*[x)/^Koʙ][-WrjWi)Eԑ{[A$MCV soK rLQ74TԠb9i^J}r:[_D͡`wɆbFWީ[#ݕ8qw]žN{$ ȵq ψx [- a\|eEmK@իBkI6Hn&xӻfmvJf]Nܠ d.MN(kꮱ &,uK$Cߙ:2߹(0qOilmZt}K4ܦ?gR!v]/22./-|ME=#ghA,|c|3v%Ǘ׶ng&ǜ>mBWP=Om)Y& }g%,3S[|"?cz>\,\7 |~? endstream endobj 183 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GeneRegionTrack.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 204 0 R /BBox [0 0 540 216] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 205 0 R/F8 206 0 R>> /ExtGState << /GS1 207 0 R /GS2 208 0 R /GS257 209 0 R >>/ColorSpace << /sRGB 210 0 R >>>> /Length 4147 /Filter /FlateDecode >> stream x\MemׯK{7Wv 0imc5)x7U5/mԢ ")]go`|}݇v1~~_뿦p8?=w' l1g}paBn6&QwIqPjp[z7͹#a-&w_Gi6$ jZW81~~O6hχ [(r3u |껿矾H>>/kҢ=k.Y=QoX07[[П31~bo*"VHnxuTpPyؗo&c(||-ڵkm1uҸ5G6܅[͜ps+ a{ fkDŽьW9TW۶7oKn6x6M5wxG67CCy\mwixzn%m[zdAn|ۺa{&`>܌LfMSm!N1/7;\E˲j.;N.lgM FC3QSKJ7ܛy wulm~Sky'~/+ו^.aVKׯLa[H`S8O!g"ZʤJb=M|găM%TP&Fs@>J0_:nȤb;C;?=xr/I!ʅd7OY 35>'_[J1v ?6좌~_C9)r9e~-yA6Fd;n/ =AFdĹA\di\9-,u%UA^)AE}1jχ`s@iġ1?8ЎDsë[>ʫ %WN?c '<^t,M uBWV;\aOE<% i 32^jg]as`M.c] "YlV2k€O/ -;𚵳l_>ׇ/O+  ]`q09BiLe~a+A++++.{.t7-^2/Πpsx~ru{lE>)wSM*xB7&kh$vuR tfؗ.2)삗:;Ug,lstx+dw3`1e{V-p-t3Xpe|nOg[t ]f } 7%umy )'Ej d~+?󗡸PI;{1\iH=$[up Wpr;MN#Sbc!6; Fi4NCldQ.6vbi w* ml5ĆQbc!6m5Ć w񱭆P.>ʃǶb#*t ObCyVC4LOTGNEOwx`o!1~qyƋq nqc}7F7͌[_·34 ͸5.|?A׸ÌG_34 /o /o3/^o"Ѩ4QVi 6pSbc1J#^ll4Qi`#)|ldQ.66 5; Na`CyNc<]|l1P.>lx.66 ; 1?Y+oqyK$X&k5A>hD|pH<>ؠQ2jĀw`5jd|/B@ضe ūF,$ރ fHxA5MAs 2ь' _OhR'^m 8aF6ƀq6Tr>'O2Fwޖhb r>Sa8OWS7G v9 3^J4>7{+~q5/b%9Wpo.8/7q?'xhġcG'l>`~pK7;R![GTQBU4ZD5ZDe *+Sy""* kb4hFl ~O~z-$d&٤Ƿ"ķRG.h=͌ؠ4 4l4khQJdшn^і[GdnۣK\r{ka؂%-[KǾ7C{[ǝ'3'gZ -Ƿ/# 0; \ҋY Y4>O_{,ucaWgbk6[;0)QxJK&{xM0)so@iڻL0GhAu2z^3a[l~ )#hYx*nFg5H)'R6W|Wu٠@ҏ봳 W %=i)ӯ/-O34 endstream endobj 212 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 198 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-zooming.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 213 0 R /BBox [0 0 540 158] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 214 0 R/F8 215 0 R>> /ExtGState << /GS1 216 0 R /GS2 217 0 R /GS257 218 0 R >>/ColorSpace << /sRGB 219 0 R >>>> /Length 3199 /Filter /FlateDecode >> stream x\oc{fI]m4@+=(qZ6>/pFKYp|}ro),|,tͧymۖ_ʿF?,ӍY+?o 6XO̫m˻vgiߪjaBۿ/~+톶UoU65,έ1-Ɔ5rjbk/k-1#g?U~pͷ?/iSB`㧏wK͟>-xLϩ)g ʫ7n%Z~ MU>Yƕ<z{y5n`Cx╍kw\!p>^Lqkr!N 3n'!7k 'ZԹE[M"?{䚭$49sSj`f?eܚm}[4(ag3;kW9/pk _myN$',X3㆒, N֗Ssα(IfM&wt S"~t%iےNܵ~R:JJ&65b'}(nb0#t]rcEPO~F<5wy'Z`J~i.%1ħT`/[LK^?LV*BY^N7չ1ϟqbšOK|e js[ѳ"8K~n>+{Zݗ=禭#4 SyE(^v)طqxw{N).1 pm,.G;ώб p}5,Sǩ:iCÑ}˘{MbeEM bk6֦/``{=?O \)n1@Z֎ 4^Mf[/!ľ&m&xJYp0}1n3t}O:.Ϸ+m0gk6\3GXsp:0\`x f)8~Ka< 6y8Xoa QpyE[,ye /OtD@?í*`3`36|)8s/o8Xp&Plhq>(؆!_mqM@"=;C>C|WpS{̗O>X } /Pwlu)8aG\9`y|C/<#4Gř SŞWř *N3;3ʟ{ίGοbb^_qǀYGCK#txKE3'4޴<~M ''_oTߐ!R}D~NhP}F7oT|+Շ4~N%?)_P}JW7TR>ǔϨ~|G5C)_R}Nwʷ)3bqCb=׷~⺟'~'t{ЯBV 7Z|Qo[E饅|pYUԇ\7j 6dQ*}Ȣއ<҂H=ر>SWB|jkURbY cSL^|x8j zTdw CA5߇om ׍nsmwmiw>B&%q@~㉫g~-rcLwL.:ZZK͊xgE_vs`V|;D=&.%{ʔ)O#I5y7rj]ukkkӛ/_J\n!pqǝɃZ̳>H>h1(<ϒZz nJ?Yo$ogc_Vo³^jMxKY z/7Y/a&H>h1(<ϒZz̏Q'<󬷒Z̳^ &<륿@o³^ &<륿@o³^ &<륿@o³^ &_^o³^kMxKy z/7w}=~bpnsߺ =ǝZ̳>H>h1(<ϒZz nJ?Yo$ogcNNyKY z/7Y/e&<륿߄g~;/7Y/&<륿߄gp?Ng³^iLxK8 z3w=HτghLxKτgOׄghMxK߄ghMxK߄ghMxK߄^kMxKy z/7Y/&oG*<7_@7X+71,mGbV?Xq6z^|oH->{|3؟t1> 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 225 0 obj << /Length 1480 /Filter /FlateDecode >> stream x]6=osЋkɟmv [S ú$Vjɹ"s6t0)e8qj|5{2ejdqT2(ReRu{BePiC?V?bj&,(ee h̓EE\gjc<~j*ލ$1>$Q'o2 fgyت,;<N4;Jv}bMhf32E %Z ׺ang-Ѫk[# /8/o&Z:6hȄ WѮVnY:2*gLӘ88ko$Ee=h=H,Hu>1Y#@fiRf> /ExtGState << /GS1 231 0 R /GS2 232 0 R /GS257 233 0 R >>/ColorSpace << /sRGB 234 0 R >>>> /Length 3172 /Filter /FlateDecode >> stream x\K ϯcrHm-]md ,1Cw ;Y#>Dmϸ7.0EQ$E=nnq˻wo^ݻW/wۺmb?_?w-?޹/ʭ˽YBXKX\j0 _aΖ5BZgimiq5!, $r9e/^CJhRcO_io-=i9-/շ㇏.ww|y*Mq^kغDHkAOF $OM2әmy팮u KXSWg[=Q`? TuI. e~.t٭!|MCZcQCѓnmM554>D#n <]QWl3FKn{T(]kZTp xk+F|E{Lzun ";=UNzǸ6BX pZuu36]gilZeF|_8%Ω+3nW Nz)ĄY?Cﴡ"rus6[>Cw$, 8w[eܚK%,e⾘R Cu)dU+IK%Z_ɣWyzddx{8TZO5,Oemjlt_I`_XO}jpT<ʁDJf뢾]aDKs\SqDGZY20 xqA0 L< 2FI< BU < <ױ iXW5* +Yْ< Ϋ+$=5Nj] d,t't{$o*l8Xf'NE9^B`8c$$MapX;$ l) 3u8F9  1!aq&C<3e^_4"h9 ~kifgV[7={@vq}RY8/Ts\& 7vN7= p4&`vNt]eSFתqFh?:kL"nCш<4 ..qd$E릩 qLi܂AEd n$d'hM38`4# NuKTlr>yؗˢWM/b/^sŞ$_|z/yZ`bEj ')EߤRaBUg)ߥJx"Ej,')8ޤBxU;g)8ޥ:| # -9HF*SGRrʖT2|(3K9JV?cjg<֛Nn;NwJV[j[m}o?Vd?d}9sC/!2ro r;pq?K:k\x:x'x#8w028od<=QOt ?3|z=Dka i0$OLp#?8Um@kwM;@9pP^jKJwf<.2. P0n704i @1~%S_pxO7G7N"7/ UBg9*J ~#9x˓"d%D?* i~t^^zl?kc9]ۃ}ڒ=C}:۞(c9]yQGTze(5y~(GtXG8rÑQrT86ILx88vqǁ;< (;%nhp@ֶv|Ѓ4dY=%Jg-'1t)o56K[ɊLIɬ(4 :wB94+=mr8m7R8Z;m?gG\vC?0HCK"tsT Si8 ,4=>'mJK<0i|l}y ; endstream endobj 236 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 222 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-zooming3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 237 0 R /BBox [0 0 540 216] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 238 0 R/F8 239 0 R>> /ExtGState << /GS1 240 0 R /GS2 241 0 R /GS257 242 0 R >>/ColorSpace << /sRGB 243 0 R >>>> /Length 3177 /Filter /FlateDecode >> stream x\͏\ _/OAc @ k"'Nc7nC"hƻIsEQ$E}˿?_w??}o_-_mm/%-Ƿ˶|疯; 7w/n+-g a-aqc++<ܿ/? s)5,>--5%A$[.?Hi>Mj}+m~Jφo~Xi kkqmywKݟkmX[)wm#d\C&?}:-5na klDZ2*U =.ɥ!e@V|}r=:dwxHk,xHWT7s.z6⦎V E40";Fq^cqӐF45'qt8&&%i.\7MUf2M4".&Sp#6p$8iF\4E#n; op{ż\bKMþ<^ej=xQ{+%Ytj]{8/Rk?I)& 2R?K.UǃQ/RcqʕTϤ|'1C9_JeT*oη9o W;U#tc1I%M+l5{dk,:.Ž8эCgz*#AXeNsgU'Ee5'+#I 2/#q2-0~P+21pj+zxEї--EdZ=CEdRJ[JXd0=EmGoe<5TZW)@_Ŋ G-|uQUssG|O܍~⫇eK6wm龼FO{sQ8ꁣ8ǡ2ځ8ǡ2 . M@0-yzrB{z=Mc)]7 C9ݴ{z8ҍW40 a/%zz۱:18ͧKzz۞ގtmiKp.oӣގtm_ܜ %zz۞ގtm _1(дm{Q(b`EG;3 kG!8IQq3a9oS Go+GQ|$b0^o8>02̦YjATeQhdFj*z_HС+,lY&+2%A&7 ZNBG .c>fQi{6 Vr6הt&ˢ?謟|Iv$ɰ(4z/kb1s{39%Kp]x堈qi8 XYxA٪l=ip WQKF&O-L%=_i4jƽ?D\z qْS0"NaXH)RZ+6- ]:%+%8-E F8vb"91@r S4_mbajAg֡,p^ekwviԣQn+ 累AiNۍϴNyXm֤$\ f%N:l*ҵ4mMD7 {TߎN6iޝuqOuf:m7 ݼ>c^Pf0m6 s= U$NoNxnCf&h|Lߠ5{O> 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 250 0 obj << /Length 1406 /Filter /FlateDecode >> stream xWM6Wx89Sl$С0CNAJb[AZٯЙjJa!`ϻͣ'xeEc$ ^FIQO[elj}müWpq_s>kWۼpؖ|=/8Kߠ8KD̫"i,*0*o}mvBzJ%9Γ } V3XN5/GeXY-ȻV>]S1K*b$mR;Gyv:um-GՐfuӸ*Qb%;N7cP~7yL Y"H% $nVoŏƋX`lQe:YWy5Ƿq?v(1>zCpx(a*T֪ale׽'3 Qf y5T$+ִGWsC8q"U=\Ӓ1i(3@dR#P"'|%|i ީw'@A`w>t` uz,]"]g %'Z(uAi_4Hsk'ٵl iK~I+0EHZ.ro!\de FO'KO7;mtSʲ>Ddʲ؎0gٙ%o.t @b l2 +ʰ|w) AEd-g)@9pPq.'ګ juV"TX\JV1&^/2 M±nJQ$0rYՊF60ߣ :MVjKm@lGkDISdEݼ o.J/iO uÆ@ &7`cz@DŽ1˓^YB7OGYPkL}Q.T0 jR 6 }>.7ڞ"nY^0=$kW3̽ZkKwV=: ;rت%6g~ct \H^a~Z1/uy x{/9q.4Kyk3ok#4V.A0gqfQ^˽`Tx}pT>Buox7. lysH6/$ s KȲfKΚDFUYt'-Cj9"^oxead OW endstream endobj 246 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-zooming4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 252 0 R /BBox [0 0 540 223] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 253 0 R/F8 254 0 R>> /ExtGState << /GS1 255 0 R /GS2 256 0 R /GS257 257 0 R >>/ColorSpace << /sRGB 258 0 R >>>> /Length 3624 /Filter /FlateDecode >> stream x\MϯcrP*c$ 8@ "[N Jtdڮ,,sؑGb=fa2Ӈ鿇ֿޙ__}ӛ2/2wo n烙~H6cf_]o4[9jߧ%NcǤ gSC$GtnhM S[bAj__5J fNIds[^w!}Ote<|}O2kLIί89t^1p-pCz;ܯD;?ZRQ',W < ͷ2Ԥs[Jo?6jG6n <9Eb825s8k &yb4祐.lx0R0n}&)Ψ&g]S"^;]aiϖ\׼UhzIv ^q SȺzAn!y9:y'9$5h^j*h^iKWO `⺊6N).\okEq;زz߯c.sZv!W9Sg&MB+*G%/̠8)k9_tkõ.OźV&]G=ֈ.mR /GzܡK1SpEHs5v0<7S]dfӶ8mki`ᝰxÆك»3 _R#ƌ<Zq݌&+>P1ه6{S7TTLWZ ,)e&B{ 54m'.0LQxN&.J?Y\kcrThʍ@2UbJs e @E!s{--b+,ʱ*[ )gy.CaLL0!Aa|7vt[a݅+0\k=C;S]g]9w=vo* p֓ aƥJDfX&acO|g VUzv.W/Xig$jm6naqi6m/6e/`8VO~̕i~>l_zZjxp Gla_n'#u#_g#%6a~C/If/`܄ׅqA8v3"Awm7- ³6nRF9ON wGN(G7tD8f'#:8feJ-Nٌ=WGNℍqt8lI]@:ll[^]Z'e>tLk-uk%0?s:͗ZfT6jc|m%^ϭ5V_|ϚoZ}ZQ_kjmg5V_|o[ö<֓G<m?pt ngd~wo¾Uط 7Zazw;ƖӓxqWac\74b Xx1>]cdqY-q:mU/yf)^sӧfZ{ԃuRN$6 )8k7ط!|ЦC{\n7 >`\44U1@yo>fcj~%[:h֔amjǜt8 ;OBsB*֝P'kMBg̓Pz'!_-= oHTPT9}*O8_Kr_6eS ۮ7e+o5j=ߔ MDtS)wO[N0tXO*e aѻ-CSX-ϿlVJo|?GrfnEZnșU)MxSUi]wDpoݔ-ӮYlB#H UhžB" (]+t.I.ޅFW]Xa} .z(4PW]8ᤋ}ޅ Tz|VSQ]YNEw!g%;dлNEw!BB$;ޅ Hv* A>Tz| ٩(.@SQ]dлNEs|(٩(.PSQ]dлCNEw!ȇBB%;ޅ Jv* A>Tz|(٩(.PSQ\8A>'٩(.dлsBBIv* }W+C6l~8]QQJ}9Qs,能"g{3ʍߗVF9H}9(Gi/g{7ʝߗ/+~䗕Sl?J)re%y_ ~H)rG~"g_ ~H)rG~"g_ ~H)f#PO/Sl? %9ۏB?E#PO/Sl? %9ۏB?E#PO/SލrG~9?E#"g_NOwq1tG&COo@&_G*lGyf<9ۛQn(~_0AG9J}9ۻQ(~_#"g_VO/+ț=?E#@O/Sl? $9ۏ?E#@O/Sl? $9ۏ?E#@O7{G~"g_(~J)rG~"g_(~J)rG~"on䗓Sl?I)r$9ۏrُ3vL 5Mh5YQ(ky$?@BӇ<={0~:8; яk_y bRK/p8z $d_YT {8lG;7s0u躟CK6R jډ4鼘1HZVz"Hs}';|ZmE_+v'^[ν@H{ik^"b:2q⨡}&PDqpRS^s|>̯҇G Ө7=90'>3Z)n[sZ}D'1*ݏw2G Ө%sNAHڡ G˫zwJJ KdX..%"Nn.!+/ _R!}nϱ> endstream endobj 260 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 264 0 obj << /Length 1393 /Filter /FlateDecode >> stream xXK6WDF _C h6pCWm"H_J^gY 3$΋6Oū_1JrhJQ&I8e6^r3}ta`K|}Aê 4bQ.D<* Q*0i:8- mG?7?Ij!FD) 塚]?`G[?>4~n[^NHlum,#; ~ڪ Yr򝢩m3i?xBEVLD ֥-,lNt?X\ھ4n}Yl0M+)XP)F3V[|>MgeN9E=cD]! 7w MkqN=NwqxcgP_S{39u]jק7uo6l7"h{ǃQF<(7FEfqvBƽ$zWM]4XJS)9eBDl{SZ=+ 5B?x$ Λvm[;֣\?mu뵕yu86kKf&q.0DB"S’8#2hDWd)1!(1 <Hɘ3x$Љp">;fp2¥깬ӌ\cӕcp"8OG≌0%.rd}oÑRdt+,I/+oߌy{ʮ2eBDƂdwoVݻPYrZA%bLP1=q׿􃡄]Sî^Py4|]6V_;JWLg+P9:ޤ-HطHBBy `njy?Θe:B u lC@D -+vuۨ, zsg+9 ऄ_(?  b9Iz (!/6Li2dC͙gp.謸fS3SYȓɺ QU&T'9#h_Q/!oa)=ᵉ <P)SU; n.!^yg.N\.e4. ,¤M}{-{tD_hxYR_@f 7x=/~O~&zLE!JNp!ʏ'1B endstream endobj 247 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-DataTrack.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 266 0 R /BBox [0 0 540 288] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 267 0 R/F7 268 0 R/F8 269 0 R>> /ExtGState << /GS1 270 0 R /GS2 271 0 R /GS257 272 0 R >>/ColorSpace << /sRGB 273 0 R >>>> /Length 4338 /Filter /FlateDecode >> stream x]M}pWHA/$JC~&8\m6氳*jX!zfR>jWJm/ ߇޾4oLhZ|{8ٜ߭ތ {K~j3~W/'`V38묿i` P*o[ٜ޳M݂²U@_%hc?x?W˟tɄ |>>}?^s?)gdTip!O .q?i$C6f&Yepč/: U3ڠ;]Ԟ᷎jp\:ܷs<=؃g_*'aᆎ9Ajz?/W wm :nTq~q갩s\Mjeq;r=o8tt(%7`=V7ۑ8/=7] dk]8 ܬ'7l,VsF֝`=w)ȴ;殾56CoP;=ko3_G=D['}v|_z;z;N`R 7O`d;|+؁'g#OhsNrx-[ W"_ھgh.EW!ڌu-Cj1ۯ~:o9_}M/6um.m[}?CWhǮѮ\>~dvqckMj@Ʀ]lBǦ?COHh'6ŋoծLhkٹ/MЮ'δKvnmShG ICo Z"۷FvnLCm'ٹW)>Ko7٩wjn|l.m{?c:?<<>+\_<>s};^p{r ''_Xo߰9ar~zοp~7oq+ܟ9%?9^p~W7r<8x5Cο9^r~w97 ]'bi}>qO}>q2q=Cg w9&e^5{MܥC0AoC6]E8߇l'͏7RÌU/NŊ2כ،ʺ\^Yw P$ݫSiuPƌb 228!=_kOC:C6I-c*i} ᬥ} nGjZQh[=` *a~`N0XIQ> NGY:3 ^[yuWO.63%Dk%}[~6]{RRr$gXCK4urզVy@݁wx5 C8q; =tK @Ld R7lӜճG%.71m'F̯_z폯<8c=C *;?*&1[;K[ .su(1%L/~ : a :(q :$i :,y Q~1CtZ 1AtF 1AtV 1AtBf qA3D!ThPt:CtBAf 8P46CtBAv qAc3D!Z!:v qַ>fC1Ct"J!P46C4'P46CtBAn q(86CtBn qA3D!TPt:CtBn qA3DB~ qA3D!TPt:Ct}m:ܦYO!pqx 8@āchQ 1C4$y!GD85pS%8@chF 1C4B7thBn8 ݠ)qASD*tN!TNC:"/TNC:"Pt:E4Bk`~li&]ր< 8f" 3Dq$H 8@c88h!SDq0 8@؁chBf8 ͠)qASD*4N!ThNC :"+ThNC:"Pt:E4 ;hlhBAv8젱)qAcSD Ʀ!dM rƦ!MC( "tnSD*tN!TNC :"Pt:E4B7thBnqpxB?thB~8 )qASq--;3; pySK蜍 3QisZg!p!rY%"īy/5{zdhbx٪ uXhشxw倗+_)Z9/."7̈+uܽ1G|U_\ bU<2#[Zˌ;F \0u^w^ >*(k@pMZ\6'n Rje q V* 6Wծ.ZhiXpЛ,3 Ry%չY,xܱ<2x(@ȷ[S^%{]|~OrO^~s}O9út?kZtpJſ! a9SR f{nX? ~d%-GkwG Mi|6/tjf]OW3*Yך+qQVtZEZK n8_;v4 NZ T^sm%Ҵ+u45&a If܋=ݡ #W|igq]C.ϗu}({& xtD ,R 'h/]ԜR'BqfKgPrtqi)Bi]N~aaxFm0J|%%S t #}_ŭ)XoTκP:6V:v`Axl7n|iH]ı0;PHqiDsT:btnb#LJ@CbXU47bEjtBB钵zQeZtl] pB[KgW .]2;Ph`fsJk1\VK sV }Pa10U1Kn;6_B.}m%tZtťөŜ/ NV񮜤X+kC]MN4B;4|ŸRP:lZ\(DXx+"ŗ'tnBi:)K:Q 4Ხtzk,Ҧ ^)%%ffsZ(qlҫ6|-e|xn֢* r4-0VRHJ{FpB_? b\f7%Wy!ΦSׄ/=Nqm endstream endobj 275 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 261 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-DataTrackHist.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 276 0 R /BBox [0 0 540 288] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 277 0 R/F8 278 0 R>> /ExtGState << /GS1 279 0 R /GS2 280 0 R /GS257 281 0 R >>/ColorSpace << /sRGB 282 0 R >>>> /Length 4486 /Filter /FlateDecode >> stream x]M}6?2b Y9ȖZ)*Xlr]w ٘.EX=C_}bFJoMm?[ˍFݍ?ڹ^U>~}ݵ;AlVoF=%GyGxv P /~h*ͮ*,#w&W+~|w7tdBrd`BM^o_|_߿^rW B<)gdTip! .q?5Ik͆ngJxхP!^3ڠ;]林Ԟ򂫭s[]itb8p}^!6rf\E~q~G/'aSMNZmcܣp݊T`~QaZv7բW35ݝ(q ݖ=1nGhqżVc?`@mqA8m''U;1?=[ZgKckȳ"w0 MJdu5b8/nopMoqE>{Vܰ< <'tm 19VSVgxq'̜m~L {t-㉫'Y q۴{P0X8dЪPEw0^΋VS<}b x5xӢWX7%?1r飩9M+YJZ3jhfS<Qo`;/F{=bw>,~)"l ضٙl#؞8_y~|G/v ]Ƿh9ޒo *5]>C;w.:n_ɇh3a3$ׇ$1ۯ:o?o5e=4?m^/ڱ4_7x|QmDh(AE>>Ѯz#mUު]hk%, m?|322Ѧ`$?$CvVΒ<קO~|-#9_q}gw\_s>%O~|؆WP>a=Y߮yxaiD,vN]ݶa*BZ3c@ޔe)w 1ޣl4J|WO5!mvCX(3ᬥ n65\w5C/*zw4b0>``u&EcO`p:C cx/wm2-|^a}+wXmU[~-j,ߤҥHď:Mc]oϹP{gP T + /&ȐN\}c-]~2fKGWdL37l߽giF֎!qVP+OY:btyV׎ i3~D$ D2 8# 0q,GqX :4 ı@ty@c:~X!:= ı@tf@c8쀰q *4NWcPtBt ͤTh&Ǡ 3il;(N[!:AAv q Vc};c8ѷ>Vc};c8ѷ>VcRvc+D1(N[! rVcP4Btܤ q *tNWcPtBt ݤT&ǠB7t8I+pA~ q *NWcPtBt ~o1̖ؖ~z ?qD8V"N+p&B8Ҁ !pjX!SBKpa&B8̀ ! ݤ%B8IKp *tNT&.1M:]"cPtDǠB?th~PtDǠB?tA~! +o_<}/kɖs! !a@c8 ıBGiX!#RY_KH[f #m}XCشZ ^.$h[ ּ㡊/ ŌCP6h 戽ॆɋ w^|e&[ˌ' ] bݨvGo3͍N Dfis}Pl ؼoboeVC?EЛ-6d>teƣNif'vd|nQz9|ΟUu_ݿ~-/z۫o/).SJ{SsMϷ/K4$Bh03<w(ΌH8񠍪N:LygBqF-Wj^U7徸{1.)2A>X -!L~ qWiHwGXIsؚ@ 7󕰾$^ꬎCJ5^m0x:.wO=RnXV3`o=NKsN{.cXmQؚE77eq[t>FcK#6Eȓ rS$뻘(cL)K.yk[qN܅IMS5qrXLw?"-sߪ/J/Zg[alsqPJA[=f+nyFfŞHmq0E \2x 1.@o>d;6H>ŠO^ymybҁv׷_3>1%.7^eR)敨Ryl7jئ cs1y%ڮ-a4ORŧIթ%(/MgSNNWoF d[zAoIԘPV xėxKyߒ<[ډ/>Ma!uv]8 UNkan z45J+Y:,KR s?v endstream endobj 284 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 287 0 obj << /Length 2167 /Filter /FlateDecode >> stream xYܶ~`C/-"񵅓OJ[=|;J9sq?,8C m8ūD"f$q2ȴ)M 7{Z,oOLFW߮b/+Dk`C_:[,La@e2~2A* oM=Z~Z6vd-v%!tMem3Kf*Jt٦=O sA&oR x2iz)/^)X1 ۬rv7_0_l TBoWkJ{psX~2kdHl4uYoD*s+HTDDQ7"vN2}if~$,Ri#q=q(¦pcJ7Bp= ; n[+:725b$T=`/P<˜ A֍/;( uw{:;M"bU b󞧉nm!~Ճwz;eƎRTƤhpf(KU95p݈-m2̧@d7>8~t/xjNT,!qwD<IHrDHަk~UBcZbnCPwyɪeXl#LP$#h )`Q`N (a*`C%" U{gf|2A+HSh;*-?Jd|A`GJߛ_dN0YA뀣{J 6@ !7HEX+!%f  bQz~xKh\<6Cv ]_@^=!I["#8qR&0`YP?t! 2"#hcvU۾牤[tc c=c#v*uBݞ7ܜU@RaTxnP*D aJ wQ'@ft5Řcr}cw+6\?e"א&//$=C^ře1%SEwP j\MU@`o(Ǥk?6i UM O!CSRDP8BFOrKC|RO MI1K4e `8#epe'0C>ze:'4>1{"@Aul?Cu5'ȈXm[C-Ė?ά0=bLLC$LD8sӗ;/'8]nZz: ڱ 7]{⇿*˞UgksfvOW/_ mN<{Hyg"P$׀SR=x0zT endstream endobj 292 0 obj << /Length 1245 /Filter /FlateDecode >> stream xW[o6~>X lR$:dúCƢ-nJr-ִ^Ly.h-=.( RRo"$AĘ7˼w,W K^ewoZ8Zgjaӈ8`,4f=Z7ģ}dݹv3e۞< 6) "B22Րe^54SDF0WͧxAȂ$vÅM=Rѕ8yud?g1(9pb]α`:4XE <8#a\hPcK[(٭e /A5LNs՟ja65Fר{][KexF3;Tz003s>$f.s]PgG.Q|6VJK*mk<(*u! L0OеqPJx/& \Lmdl]u?2+L$;H7 endstream endobj 289 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-displayPars1f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 294 0 R /BBox [0 0 540 216] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 295 0 R/F8 296 0 R>> /ExtGState << /GS1 297 0 R /GS2 298 0 R /GS257 299 0 R >>/ColorSpace << /sRGB 300 0 R >>>> /Length 4323 /Filter /FlateDecode >> stream x\K c|H&*Vb)ū\Ȗriu!;IvAS~|n}wW??}Ϸw~޿[kpn;e;?;o{f̦\v7~-)6ʾUufiWw-_M]ME#n>vS4!Dj$H~1CwOwrt}n :*/dw^>~xx϶?4ip&jad>iSIέ`]c{_MƇ0rfPclfw9Ǯ/ϛ&mNQʖiFkmRyҸ9dk6ܸ=4 7 fW7\)\εwV-nq=6,b[j1oKo-x6U5<ݚj OiiKk% KOZ=j;6 ضqyvEzRەLfN]õ!Njw \s qر1~T/ȕ帐sMr Mĕ"=ŕ85+.c}3(L^}Bݱ{?re 䠳\;N.W-gI zgI#&t(oI1% b^:7={BM^yeJ}B5.tb\bҍ$\(@@fDAjd.H#T!qO'BYMl=ˤd;)K__厝D}h,;6;!A\T[uvW:AԚF^V :͋ڌQ /Xz?k|QEN5>b I#U{W%b(\S,rxr"Ǎ3S|bf<U~=1,GL>v2> /mdeAIx_gY7i dȮqO9(qn}('Y f8s|N dee݁e 9dբ,j5SPn"J@A9I98 G C5VNIbX=S(D΀oI EHEKF9JF9IY)(7)]+# e/kYv%/n6nKAyNj.'eeo't/J< '_ jGe_!J %Z\Gz2Wa޸H5W.h=sH D\?R ןo>x++o)qKc\?S)o9S].~ k窂\Up!W\c)'lBHJ.Z ȁVLVٱYT,h M=p :WQ8sT:*&2m l,DӂD wzxz~i|EAA lbv%[_!_6]_U 7M;V.w7yмiȔy~[jn+r2hRry*[LKMbU'ea<qeGܚ1ĪNNk9l,Iܰ g."(LWtVʨW<[pv[ -X ZF~reT}`T9CU-XreT}`c9U-X Uf"}̰΄Ek(j |R"VG_RXH9G1~+^޾osk!d:\=>1~,pc 7gÍgKG<O}[gpx8S?Ǚo׍;q5u?Džoz܌9.|vqw# 3~^(_x& Q9 iH'6V/%]"|s6P)2amvа'6Vb JClfulXx, {ޑV3{<)ScOq7\ 9U?q3x7=nGoȟ S#7cћç%pO# ?xssܭ/pW# _s\ȟ·=nGq7{0,xx8Giq曣a U?Dž{\9.|fq# s\ȟ2YNWa59<0{܌9.|vqw# xs\ȟ=F~p/zg׌z\9.?? \{0,p# /3~_f) ג;|^<̐ؓrY  _>hY×Cۍ7xXV#Ṃ+_Li4|L  "nX#шx._4j((2&#U!UyK GE#DH*knxc G=I<F(b3r_Ap 4x{>dLsQs~D`E3Gzw48űwk/zx]1x鋏U{эFA;r8H,tY bwp^p\O'zjV-'֠hzZD|DCvK8ElƁ/d<"c/fJ'ApBc.xi_TS_Ćx7xeپf*8Ǹxq~e?jǯ 8~S%`3+8G䬚|Esڄ݃՛w{5<3D)jaKLI}䇨7_ZI oέn%Z>uhMp΅Xկq ZR_5UvׅoŴfGAjt0g3x`xx)@ -g)s/'iv5sF~R#wʪ̌PJU*yX VdC\?՞d3W Yet*8z%f3fjW!W/`,Nb_`/;bS jM uƂKcL~k!Ze*8 7 Vs\%OAjtO` ;' ]T89S37T1i4,@* ,)4bz`1#`TxNt&7/hJ*9/ϞG Bg @ _={M?" x>.|] +}<ڂÏsórA[r6Ͼ^XSfDKZ^'<(ғ'˝3a/'SN|]rP:he{#O˿.\ endstream endobj 302 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 306 0 obj << /Length 2070 /Filter /FlateDecode >> stream xrF]_@"p(lzr%~JR[0$g  0|vOHwr탄9f8x}bq|X(s,,A*Y8UsXOF{寋/bO\c`&~\c@"&9p@+3!Ұ.mO7 -J ۺ%Wga:ۍ>A~Rx2óňDe--|mG0Ϙ( 8uX]0|,*Ϣ4WAus4*" :,/~z㨖0/\D2A:!{r]^Xŵ-~OWONfNb7V]kh[4&ٟ/y#`k,*N?C_sVpDy#IFt>]$s7ƃ-O'9;tg3_F ^ CyvNm_> Fw:[mQ܁{7}=h1،fkSO݂IL:>,Z6kk)7,zEKK N)O 54IRv(JVN}8¯،C9I`dXiBӃV Hi@g|}E+0R9mw'( S]8@n)b:kH =%j3[:d:ZpiD ~OZb296Wq.wu}z"\Y$4 G!4 l*<:VI=N‘x8f*L lNe7TE1O@:By=ȟF`Bpϧ H.ٷoʴ s8W=dt&XvuB(80P>AϚ 9%bsĆӭd (OO,1"~jy˦w\I,b? ^,Or3@d%șRPٱrL(^ 6Gyu ~mJ*)U*!sCT܇q1 cQ:z/bNÆ҆g8"L:!6*625aiSnѰJXh|=-4n٩r,aŬ6CAKvu[6)Jm .jэ =ߞ4ox\`%#)6FT&Pk=P'mP֟zMCC~"O-VeQ! μ؊?e,|~K-'AY08o@U[eLtmؒNԎ\QP,GQc]:N([do>un^_"Mߐ(y= ĵ J5>nL?bӀcTvlvC#U?:-pԿW|zh7۷#ϛꏋu4uGͯ߾x߀:pNw CC)~>&$ CqFYWU:ϮM}wz&#E#~qC#m6#|4u&DG$ſ8l/@˱#H(dxr7vKp{zcPspWkoS/ 2R吞O^B)XJY endstream endobj 303 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-displayPars2f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 308 0 R /BBox [0 0 540 216] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 309 0 R/F8 310 0 R>> /ExtGState << /GS1 311 0 R /GS2 312 0 R /GS257 313 0 R >>/ColorSpace << /sRGB 314 0 R >>>> /Length 4345 /Filter /FlateDecode >> stream x\K }H&*Vb)ǫ\Ȗriu!;)a?|h>@fھѿ^ޫ>{ۋc?ck_55w~wj"N՝uĝX7=_wo3ffS.AOm o?eߪ:4w-//=,Y;lv7fǮk]Y5S7WFvG؃\{;NM{;}yȱՏQiW90$봽z>y_={>^tWk_ =ڣr0yE$pfg+H5ak7ԨyJ~yT}y4tmp•Ud}vOkk{}ʓ_iWl5:jO w;jt}pGQg9`q%zW]jvhwdz_TnOlxJUMs Zuw(ixXz ZAWilQŶݏ+Ƹ-֓mݮd2s*}qRe|ql+wŎZ~y4G-Džn\j')dLQ)$^q Ago(k MvrYj9OjxԻM>Ot4OFyO ).oUm=չ1%nZٌ˜vN\Z=W+ykV]cWuyM쵹bs娤5)Gc␻#y.WeS|Hpn&UIR>3p&@ (Vy#k!EjWۊ#_޽Cebay# CA-(@$y$6~,2EFŬڐlE6Jfa<&$1;+1cG1"RQD -7@p1,㰙,b+ R@K 2D]C͈]A1rxGUka_"Vr]-P[HyNE쯃|_D$@:I}l+WOc˔2 j]P Ť1@[E9pI P.͈4#]AFB N4$C.2{OIw4Spӭ;`WXv$md7+vB.:0:~u5/ 5@tQ^(~9j|G ' ȕJ|ŞQm?7 \OpA+\ːrC̕;Je'hqFk8Z\z ;~x%?)p}JWW\R<~x5S)rxȚgta7oo~n+zVa*[}oo¾km˿Q5jL}mh>oF4bT #M;;J';3/:ny\kKG;[.M}9vVmrD1TVN RP n5DhXaT7(tI>Ǣp S1t-ԹP (h3 #[1Ye:<8NSMRjUdaKe,@p:^ps|5޻CDG5.01Z/0`B*Sж ]`R4-h;py|4=YCGr O}'BeW4 |퓐=BC)ְ;hlA#Xh46 Ol,4qH'6kBClcPFcC B sbc<ȜJ1x9Fc B1x9ӕzs0qx4Su9|W _s\ȟ7=nGq7]?Dž{<9.~~8 _;~?v.~~8 \q-pc[~?{p,p?? \?.t<oG|7# ?xspx/pW# _s\ȟ·=nGq7{0,p sYn\ptbcۈjbU!7K>ۊk ژ"sm {bc!6ܠNl4Fi_25 n5ȟ ?u9F>~I _S7#7|vOo{܍)]?0x39fyn5+F×݀;)0!ֈ5b(oF:cZ #e@dTJ;*o)`h$<Icr oL@'G}2ElA+0Nx/c |Gi88@/xOVLxHuh]2C޵8wwS/k;=}#cxѨ6hG)ł.6+DPw^)דoɴUK5h=5DV'(a:ѐEq`K?O #҉"6}>K1^ :ukګ _Fi͎%` fSxxVųZ΢SH^OҮj pG`?U:3p9DWN@'t7Lȫ=g@9HTpJğTw詻C^pX$J_ vz< n՚0 -,8,:C8Tpt9<nt8KҟH-A8wN:7 p s>g*cSiYT X޾<iĨ !cTGùLn_Bєԭy8域=;t|~44ExˏA=րSbO_|nǣ-8;wO} ܒ?ǚr0Zւ_tQ6K<(|k/.x岞`xAz$>rs0 Etp~ ىO`|IߣK]vj7}BsL~zwh; endstream endobj 196 0 obj << /Type /ObjStm /N 100 /First 883 /Length 1419 /Filter /FlateDecode >> stream xZMoFW1>Ի;[C44vʤKR\A;;3;?s%й1@B:8:pAX> RZxep"8r"s/rp B+ˊ0+Zc?McNMtiW.wi/pa04 0Dc0DgdYa~g@8+y e>IP<֘GL5QUVb4rIV C!fd0#K,=[yax0~r,gU.j2µ왜¡. Pk, ZXei#d1=XpJیPS"' N{^C`7"H81rn,ςqP+$B3P" FȚˁ1P[(ß1N(3cOy@co2 Cf{EdC}T,XsNW4" P˃?n89  ',x ЁAǜ>-ADW>2o xT_oq |Qgb&ib!IUe~3gu]6㪾QoR&^ kJA;Xa`w'̃|_Qu~Ti*NKyY[o4IqMtZɋN(.ɲj|ndWMI^eM,Sqj*ws·,ӸLۋhIwhVWENd$NtR,?>v-Pu?ܪC`0 vi~W#規JmqQ~{:Fs8| ÇwaO '?U3zvu9y?A{j䋟 rwqvf;5j3 vj=4_}Lʋ)@\Fr(]񩏶SsF8}?i endstream endobj 317 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 321 0 obj << /Length 2101 /Filter /FlateDecode >> stream x]sݿ5p@`uڻI&M&>$(R!(__], ιńv~/%$K^^}u XVȉLbX)z+%3䍠Rg"%SYЌvMiUsN/?fװPKN$ٹd) A\eۅ(RKhᬽum&#*}<oULFS"9hMAZ&KYRJ&>gzU݃O_< @K a0ytlw4]mom wUm K c:ŋOTZs>sE$s,(l,ю=}!\7d s$> {jlRT!`%\K}Wrڄ8~! smHǥy\XY\K|KnS?'x7&v [ѼeH;!\kBH;:t:%Q9Bw~Adu>"qnFAk L^HR 8_!2o! n#iq.(՛\~CCuO(qb/>]QUͳↀ 9,QqՆU=6n'?D7T!E5VN/ØA~ϊ>}KS`w:$ծ#2xG٠,lO[\ʸ@c:9+LɌiPg sTC ,PWO0_Fm]s!6kw(3iEV7&.#w `d^ *Ժo]ŤT9+_W1Ad*Jf\yѺ9u7ǖ`>CNoD DV'86xuY5+M`|CE3T=k؇޻}G@(<:B䄈3ӷ3z8}s |[g\@|o4:+!gkj'cqa85\MulK3a?XG_'qQ(15[aͦi顗j}wϪQ?:Wa|L$Q=*{5۬# 'Ppy~訙4!7m~m[w3z՟p~߻63_%g~"{儻}`Sv?e |cǍn3dԘOCJ@-4/ m<ңx=ڟNe8syvϥz9*vHiS(TƑb}ޏ3c)aVqAzfCXU 9zslp)bhϱ2K+ƥ[)r^9f5G@@hf=I>F"u_wv JfS{%> ^D1. YK0Ü7MO^y'D83-;{-#+XrКowh%58/]F a_ˎ0rcKl.d4 _ČPh* îC mz# >FCeɍzāM< Z|)ǏF@ne.8M?;z670c-s q9/D endstream endobj 318 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-displayPars4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 324 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 325 0 R>> /ExtGState << /GS1 326 0 R /GS2 327 0 R /GS257 328 0 R >>/ColorSpace << /sRGB 329 0 R >>>> /Length 2069 /Filter /FlateDecode >> stream xɎ@y.\)H=`$̓ߑk,=l<@Ә/+Ȍb:q_Ϸoӷ^ZC? Z?~6/|x-i~y>7?1ˎ%_)׍n>|Tp#\}1/Yx1Z0۔XIo>o^Vj/3?;QoTMWl>Ƽez(W&ԡ_}7z+yuؽ^.ׯ}ׯ}ݬo9@ rek0>q/gvxH_WΫu~I_99 }99$}#d2~pmB1㲾ΣK_髜(}?rr'γUNyʉ_8W9+M*'~c(Oe<>Gs2~tN|QƏΉ#9GsH2~t-Izՙ_۸5Gq+|qr{νUNyʉ9W9I*'~ ?>m?{R圑0trpXsg)oц+$ƒM} sx`3_#9|#6ڇ|8 _#}#Z|Կy]oKRg |?r_t'pDwN7ȱ|!~#|7}_꿛GDZ8O3>g?E;QyI?.`8>f}:sO$~;>>'̸chzQG _sl}!_C_WoO&$a7nքr }%GF; WVq<"\Q`xe+3zX̏:lgDZ;,[Y`1>V۽d3;~mXaK@\Sj+dّX){Yaٟ?7s3ޟ=8S uYuK[6c1G7?URk1-To'xWR7˄gzDx$yL(՞TtEUƴmz]ִL}>+vĽҏވ֏N͝ Ev\~qRvb\L?}Y>bq=龓ee%Jq̏'lM3cͤyzNq ۃ ]p A9۴SZ1:gb <\N)'J| h9%MҬmss,ϏNsMu/V@re1rK)i+bRχ[բQkyz:oUNܔS]j} -m?7ǣ &9Rl Jr5I9aby endstream endobj 331 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 335 0 obj << /Length 1780 /Filter /FlateDecode >> stream xXo6_!e23h6P k>{`$V+KD'(JbhR`xͣUģ˳狳g/DXF gy.L H-}X\fy|ySCwmWWv3^TX*?^51(U }Z zp4ʵ|6pzHKNӔeRD f\FEgoBJ9?.cQ Uh"ǻׯize_oݳ휡Ru X C"+KLfWi`ai5hf7rUmLf"l V@  iE[.G(9(_pJצGBl} D2-,##QݺFY* b<߮F+KP4=%}ʞ 3ЏZYn37*bH Yʳ9 uH|ptRLMwzЎH2 9{&C_ IfP7q1duiv LcY׏>40f3DB8٢E>@_U4M~)U  x NKӒN5rM_S]@60ք4$TqcJvҀ:BzDm* ~8`^`ooطހS F7֒Ok9v]k"/wqtK 4.,"Ѱ[Fh*x¤Mm\ΰo6Tk$x` eiߢdpE `@|[B!B![})QK 9y`ϑ.C¦0 c {聑/`ttצ= O•0LJ`GN0gB"M)2<&XE1qoЈGR9ɑJ,ב +tXC1n|SXc gSv; KF0ޛ@ͨ3"p;Pñ}Bك3 6ׁ jgLٽgj.~3AsE2y&w(яȾ|u<1O1_\{H=:W“<_}6!/bpj].~mtΏzGOsܙLҞyCw;k#i$$!Zj;4#: 9CɣdYi;u=  4$?̶ }hhSAL,BO " endstream endobj 332 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-plottingdirections.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 337 0 R /BBox [0 0 540 216] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 338 0 R/F8 339 0 R>> /ExtGState << /GS1 340 0 R /GS2 341 0 R /GS257 342 0 R >>/ColorSpace << /sRGB 343 0 R >>>> /Length 4327 /Filter /FlateDecode >> stream x\K }pQRJ8%{UrR]bC Ahخ9hJ~M}_wп_>ۋ; !_}~ۗwHv`6w7i#ܩ~Wan/'FصV/&%[)+`v7+ͦ8h7|RS:Bm~ 럶! "Tqi)F~>y_={?^|4GR>##SZ6*rO܍Tր3~$~ ؇+niTڅnb{y޸ol]8pe,WlݩcEkm띔iҪ)ek:ǵFRT[|>#ƝS؈+:j.nlΦ~5ǣeKx6^q Ɏe`AW`Gaڌ1cʌ<ț&SW/sfaA#mBb)X gcG2 2Cr- xaP{ ,K~ lEwF q!cq$Fio>2s೮YJXF}XY6Moj(j?AR ڍPf2աx{mh=>Kmh=.[mh=kmh={m)E/)MO)Uo)])e)m=]/xz8ԛ~n~J_uطa:[;zoC֯%'6\%nDm6|WQ>bXK4~O;tG^`h\37 '?]J'|u?Jh$ Rb\-H-V & K "XV !W $ZT-Cl!7R׬[ 6jp@ՂɳlAK. .E-`܅rFg RdA?Pp(ljAQp8_rgvH#j?/vݏoc(xe`]udrenr7H*^[F:v! Ft!Jx0>XH46 6 9HDcC*l,$؆Dm$a Ɔ$B {hl 1hl 1hl 1hlABl,$CC$CC$؆Pt%Ѯ W-~e J TϚWU<뇞g}~ԟzލsmQγy3y=G9ը?Y_<[U_%[Ǘo~_r}|1<%[Ǘo~_r}|1<%[ǗoW>蛲U1lj)[uVBR*) [$T%Tm,%F$JmAl$؆$JmAl$؆$JmABl$؆$Jm 1`"#9% :0_~P ^Qx<뛞ףg}jԟ/3:,PGx@SH+à?~ԟy7OF|o{ތS7=G)WoUQ7Ũ?>s 9<ݛ@|,s}Qγy7yַ=oG9ͨ?Y_<뫞Wg>>? EϋQ7/ŸIN+{=F9?Y<۞g}fԟ{^sUϫQγy9OY*oTs7=oF9?Y_|WU<뇞g}~ԟϏoy;yWY_5g~~8 eQW<g,c^*Pzs Ј7ߔsd+!ׯ8׀}>yij'Bhҟ?~{y<,|GJ-ML*~) =yTCW^pqsx]}HxA> 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 351 0 obj << /Length 2228 /Filter /FlateDecode >> stream xYo6_!IFZK=\7H tHƖ\IN6Ȏ Ԑ93N`?W?8\Q "2R*6vi^տqvv+yE(εAd)440KH"0!fY+n|Z\p2â\{G+Et q +N$JŧwX,w3w&98NjB8x\E:ỺjKp=P|Yhynכ-~LOfdwE-Olv(FI8tEyC=:z<ž9n";87RG"ӘfU8k~s&d"+|nergolgNL,3h*&]Bd;P7Pz ^U;;lZǹr| Lsv,4u&ⰪÎ"th@k>@bѵS5Oh7kb U{~a>߻Ҹ^Ė[6 ?l_!za\ԑ҉$R̃c$^MK۴;纟v%iF 2:qo@c*Fnyr3<\7VLv*z .uYsg)&\?h d;l/9JGY~/Վm}|k{Esw0 Ei1?\mGB'gHFΩ k2@zPorUD..owxKXb  LW\l"!I0gC/'NۓUy Ms܄HN0{-uAg /ӳ,Ȣ4&Ⱥq;j"J>x lΏE旽ɩhC'W;D&jdLor 옥@&xyKeHԵʶPǔ&͡}սޜHx.Rm*M \C#pxR0/vNGB[zS碙xHSߍuHX`i9ۢ+1!'7=# P1~aĽ.l0D8l?آ$͈9O"3O4Kwtqdա3 iu~x6 G7>MTk$$|Vq;VVLOc"`tm /sD0o1Ih9T_ pE1(_DEʈ2sJ|ި٥m'9[5[cϙ B#ѿ`Sw=ifiN^Aվޠq'R8f)\[P˞* 9K$D,R,I,]^1}m@M:ψvDl(+zFدR, 44'*/A%̹گamLnh\ vjcKs9a|UO0 kݓRض- 4N9NThsDa(S15Ȉ[ ? qrsk@tl.qpgq>QCqnHrkۡS&uGBOr-}gn\d5f"9g$'Gk~[U)cm^+#(vE:s^΅X٦OMNML)z[$ӓ֏'5=\~$95Ա0C]QhLyT3Qi}R%QsNddT -3ec4MhN '%%C| U"-U٨ g bGn?Y=-G($f i/BɳQh($2幷+B,qکIiQcl% 3iIWsI*"r*ؔ ,}ˤGH'rU񛇮&Aڕ}Kwٓo,y`7)>y/m&KͳW s҂l$" endstream endobj 346 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GenomeAxisTrackClass1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 353 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 354 0 R>> /ExtGState << /GS1 355 0 R /GS2 356 0 R /GS257 357 0 R >>/ColorSpace << /sRGB 358 0 R >>>> /Length 357 /Filter /FlateDecode >> stream xMK0sK63j‚A~@q$&Evɛ4"la7qb!s QĚ; A'5.zZٸ̀ɡD,vRnܢtd+㦂}C|{JY endstream endobj 360 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 347 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GenomeAxisTrackClass2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 361 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 362 0 R>> /ExtGState << /GS1 363 0 R /GS2 364 0 R /GS257 365 0 R >>/ColorSpace << /sRGB 366 0 R >>>> /Length 410 /Filter /FlateDecode >> stream xUKK@ﯘ^;εE Mx W-Ua|lVWvl"癔/^`i12Q|+x#Q4 Ҹqzj{/45FCwfhCF)340d4Pr3)t&'6;[yj[Pц#7M!z fJn) _Ƞǿ;}[I,}"2ş[  R / ?Ϗj_{ϳ(166p$as{ ݚtQ+.*j *j JXO Kq6$U-lvX]%+HD endstream endobj 368 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 348 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GenomeAxisTrackClass2a.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 369 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 370 0 R>> /ExtGState << /GS1 371 0 R /GS2 372 0 R /GS257 373 0 R >>/ColorSpace << /sRGB 374 0 R >>>> /Length 467 /Filter /FlateDecode >> stream xUMo1 W8u+TJ#q@ЊESj:@b/p {uqE<.hc v{yo# |T׼ %^+\/^d7ِ{|D,ţv`<sĆaڕ͐' OLz@}@$mQx'&1tصYĥ"3L#%I>͋a9{rK`)Ahe PTeV/V,$gAFl.:YVdKy[SKW'QtOW8}*igB4XB=' 9㾒$ٷppN8x.D]pBWد ۀXVpDk|لp\CG~R? endstream endobj 376 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 383 0 obj << /Length 2438 /Filter /FlateDecode >> stream xZKs6WrRW>%[5[L͞6NaYMw+VK=J-Iű{&'R||`?n޼<,JYʃ@$GZf7Z$&|PJ[nyҷU:;j+035L_yhajOH,vzTLh*JH g)pijƱz]siƠ=QFƑNzhVRpC(âj ^֒,uu_nm|eS4p8E]e@cSYGd[jsr)epTۢ{8\UD"U%E}Z;EH#宏9_88XNӈ+lWBG@bn.hOI־IĒ JaFf.Ń)( rPu~\#>^eQ֬,Oئgϯ*4,_䙊Wb̂V=a~m7X bq{i &"nfD.pE a' mt$G!DpN2mۗžpqS`>P1sDlQsgb 9/u$1twqdԯQ>Z$ >cAe&*T<,qghDBfkB&B"S'N0)}S>w@g@ccvHID_NbU'@;Sppv(Հp?@ۖb>7a|n"s$7zBǮg7N 9ɕ IOwa/- pP#H[PQx^_)rɴFt`l28S$[vk|v;/>(!e> /ExtGState << /GS1 389 0 R /GS2 390 0 R /GS257 391 0 R >>/ColorSpace << /sRGB 392 0 R >>>> /Length 449 /Filter /FlateDecode >> stream xKK@)^;L-Z((hċ _WD9DI,Y.y]*.eWxjgIn+z,my-}چ.|v[~^#$m3G_vEEYz w'PoiD>cQQkP4Ϫ),Ya{z,-rNL`ImOM`p=lp/K㣱AP5H[.&ڡ++.fT endstream endobj 394 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 378 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GenomeAxisTrackClass4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 395 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 396 0 R>> /ExtGState << /GS1 397 0 R /GS2 398 0 R /GS257 399 0 R >>/ColorSpace << /sRGB 400 0 R >>>> /Length 924 /Filter /FlateDecode >> stream xWn7+%n(XHt+@ طpw R .b#o_/f1FgVf Ͷ McK;DzdFpwF̹5ՠwG3CĆ=֐ f&킲GHQz,3qQ$}{)Jlu4ϗfl*>ӾW(avf2#|?x:d>nH|EL)Ar|OU 2xm kVOpMVPAfNh/'C5d>*Nu81lG$!!PY 2 S 0EOp!4]թ؆Sd_tM~Nbfr]ȨdtE2nE{%k w-K_bݯe R&KW2w*a)qМ2x$B|)JIz\K@Eq-Zu!frZNK{(5uk`ġPnvyEy)A#y[FQqr9D& vYKde-e=9_8kmj˟^s_L=Z"Le/h?3" endstream endobj 402 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 379 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GenomeAxisTrackClass5.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 403 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 404 0 R>> /ExtGState << /GS1 405 0 R /GS2 406 0 R /GS257 407 0 R >>/ColorSpace << /sRGB 408 0 R >>>> /Length 558 /Filter /FlateDecode >> stream xVM0 WoIsH08 Nˇ4b`}i;u"8Ċ~ug'Cpڽݞӱ9s蜃߾_;p#u(;cPh>~/9"K,S~oF5.pX3>ː̨9&%҆,@YeױcXYn.JB."s 164fṆT~vegb=9FkI[}BY}nRڧzOxKU|Ug8k_UJV|Ugn> 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 380 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GenomeAxisTrackClass6.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 411 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 412 0 R>> /ExtGState << /GS1 413 0 R /GS2 414 0 R /GS257 415 0 R >>/ColorSpace << /sRGB 416 0 R >>>> /Length 405 /Filter /FlateDecode >> stream xUMK0WQ/L>.-x/~b$MtYe T> 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 424 0 obj << /Length 2462 /Filter /FlateDecode >> stream xZKsFWt T1-ov9JmCePHr{z %YTGwO?GG=?{ΈHpLDUd8KSY-2/_]̤M7_q0v],x6B$w"3?L<IϢ 4Ld6YsǯqG)T[x4%^.㫲n|.{EծR#ܷ< ĶYQ93pxxN\:a)?@4IAӓea-cO=gMBbwLNi2U7mQ4& qK7LaN S|ᶮji^pN,Kha"oj~NgCeT:PmT&Pq@0'Dj @+`OIφqt)QY=-1@%D>΄Bc΅t v#,`s_ԝh@l0wex8B8E*JP,9Ukx3=  Pfˢ{I#҄MX8H;:\0ˑPiA&5# #w 2>wUuo:/Rdi"-ʼiˠo_yU"^89؄% U,K}h 'f  ֿ:?WqO6tIOKHz@U4&hT_ݴ#c `(hW1Xjz:bQDU|0< js?I;w$kPAU>rd1RPP%\@5wm( h`"z I)#+^wp".~׿#>PZkS( b$Lw'r܎/?>D>RrS\5/gY1d|l cj}~h\#X'yTff? @sOeEXq|bl!-;LHϥ:-33fI+ne7#}׏]},}`1^0;STΩDpOK >+xNkT;C˝7* WM%~cX]N֛&q"bxR떖iL0SӮq-}QwhMCp诼=:`R9Sl}~ ׻8kN>AjX-S{M]^˻jyz~Ck|~J:"דl(~XɃ%o'PƅzˠP%Q/옥6ҒOrŽ ?>K, endstream endobj 419 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GenomeAxisTrackClass7.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 427 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 428 0 R>> /ExtGState << /GS1 429 0 R /GS2 430 0 R /GS257 431 0 R >>/ColorSpace << /sRGB 432 0 R >>>> /Length 232 /Filter /FlateDecode >> stream xS=k0WYlΚ )t(] $#KrkB Xp݉w<1*0j%ƴ4cGcaH )%h6׸$vĨ\=kR?p!bS?z5U%YNY. -X.kIŴ!3~F)?qC9t%b}#:}8{[IQ`-8mL`kZڟo;g8 endstream endobj 434 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 420 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-GenomeAxisTrackClass8.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 435 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 436 0 R>> /ExtGState << /GS1 437 0 R /GS2 438 0 R /GS257 439 0 R >>/ColorSpace << /sRGB 440 0 R >>>> /Length 226 /Filter /FlateDecode >> stream xS 1+&&1i (hbO+}s"`C6;a¬)4YCN|>o39hSh\iǖ>RI8M%\v~8` 5 8Y_i3::.#Ѿ/GUY32 ޓ*i> 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 316 0 obj << /Type /ObjStm /N 100 /First 881 /Length 1379 /Filter /FlateDecode >> stream xYKSFWy(Wć.pUPvJh%Z  &"2g1_Z+V(A AahIx8V`0:1` ""TI"( 1BkC 5vIvK`aOX%tT A`,Ec DkX71881 w 3q>pLp>q-sp\qf@pP<5F# f8Nwz[x`(!hı%VMAJ46PDX]9-1 , ÊH `} 1=H% HdA3=Q`Nj֓@ QV)v+@\8K9PY|=(B,-N@A6'$ ̱;hzXZ;"Dh=qH-"06 j18wĄ!-bsDݐsX7 D8[XF@*rHa@|< SSӺ9-$o [ݼj$w\ Y s{h<'i|^ӮeY }UU,_ȾM<+mq"eU妗&\Nk懡9-lVlO&%*/_' B*(a6޺6rvu&x9MQ Q<>Z{}Xk#ήE/X$my 9j^x!:k#Ħj/ġXH樐{];FW6 g\}76VvǺ{[k+\u}/v~4 "q6B;ڻh/^Wx3C1b:TU؉ٸ2kvD8?<qL]_3^ 9?UV;7u ~J)>As*7s6;[iIMp/U7JʼU 4;5{Oʔܝ2%.T?PzUe-ӛ__+ߺVd[[z NZe.gKmK}۴$$Za1{A bj5DD[1Dn-[e2DQXef<ʗ 1W{܋B;=@ED7ъ7 "|g! 7 ȓH|nmb4Bdw/Z~9Q7ɫ6ƫ zWcZDk-5f"._ҺE|bnyf5gPD endstream endobj 449 0 obj << /Length 2740 /Filter /FlateDecode >> stream xZn}W 7^\u^/$k>P$GØC$ǒ9=3lX շSUA<;{|ګmTo?nmŹ2#,E&qoizБ҉$`HͼHb0Wuy*pRzӌL:Y8!EGYrr+r742_r^Cݕn-v#$دYc5l+Tdtl7kZ0 {Tt48Ny8 Z&R j.7xL-<ԗMƕn$C_@$T8tp^>r5~\Bk>hL91罾mKes=>[H׫O]V\ pT=$$E.>֛rE5[M'!U[O5f1=ړ&zU1 L ҉L= 2*O2>{ ~m,6^sې*9{]$1aUHerk d`ylLRH'a ׫J5n٢sU]G}5[f=*.qt I֧t8B;+PwD'0iݘnVԥ}|\7m˵6ZmfV{hK6ΈDvU[4IXdc±n*j~}6c`F'duFvcHr/q̨T5]1Yn2^)ɫ}in7s}8MjA)>Ol;-hkG\Cm- qdU1YN®.!dCa GqO_sO\6&Rj:2yZn&hN7NuQeLDjWL[GT#ڦ>JWՓOPI竍zT\GnviNҦr3Y/C[!Ja*NxvC]]hPʻCTh{\s*E1Vx0B1gZ`n?JLqi4RmhM䖷չ/+pD0Ux4Q&&X fw 4]A<;㳌6XFu9|Iƫ2q2ڛ8j8ʥ@)$qn99ިy95/1w'D sL#D ZOlgAAP˓_!g Y],F),|4@wގasdId?CX~Up(VۈcJHAmdăm a8f1CTF(hrKҵ/#rv"HI|=͚'|98Bbez_<9< ݘؖ<_w52NA:"VHˇJ :f}_ƦS~ooqPgbrmgw/ɻ16W oЉ?&rXPǴ`ҥUފ 2RuaSN[!>THT.&)Sə]!CP& lc3hnsHNJ}4J ปrL{?p ec/ HDl{ڟ9xUq7nl9&h~G‚cʢ\VF!h0 ׿hīؠ0+NSK6Zڭ. Pԥe[/rˍhqwdmLoz1J|XI2P{DJg{znK>G7(ލH'A" MqO$va>9FZQ!mE/xFaL?AsR~JNY-G.v$eJZʜoyu^,JD0{WE'Hg6,+'0 Ecm7]%Eú𗈳?UO9f݃>$Hr+C рO4JOmM!EAuGoO .OMt#-j3߭.E#m ]څFZiˑfo,2qIE$sf~Q8=BɻH8C:NskDqlnޤfz\"w߯Fd.01++׭j6d@?uSbhs4:l/ATm2"2Y%xZzϯ%9K6o/)[SLJg/M ?{Xڳ?t?.G1@p GVL8z/[6 R*)Q@L<0DJŃӣcp=䊘 b=4iVHy;d*Q=2a|}ѣ {셿\lQy EVOϮG?EW4֣+X}\(*4w.XGR"ۺpmeE;wE.4vik%-ƴ]%1Xe/6,j| ,`&`@P&6MI?@5x{MgC{BgzJ$י 䐴5 @| endstream endobj 444 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-IdeogramTrackClass1Do.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 451 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 452 0 R>> /ExtGState << /GS1 453 0 R /GS2 454 0 R /GS257 455 0 R >>/ColorSpace << /sRGB 456 0 R >>>> /Length 1640 /Filter /FlateDecode >> stream xMo7 +tl/D}_@Z%i"&h|/)Ԍ& P{؉k$%gbo^oޙ?gw?|n^gsf}=[{Wo7ntnG?&}ɼw=TfLIzۂx :.hzw67on>xؕƀFb4fz23&v>jw5XM|5#?i'kp-4N=qwf`{9M["-v9-x([OɺO[OoENh! j8]l9Y8c:v(]]io~EON=t׭Ge=lY~[ byOzIB.5~)نt|/rz]%)HX$IW OݜhNi=L~ Ed Ja+jaꍃciExQdߙy>jQ?"OԺH![*TBS&'Tʤ:bI[yJϟ:{Nvu+½s݉~6Kxa`Yew^w R=14O8=ip#"G H hd!QF$R*H"4ʑj @jUzK뎬YQ3)f#T4 '*H٫2eU j* TJDTT*HP7h#bqVX)dB B!a>a,6TuᄹV[Fؼg'LnlBzC3$A0=} 4nQ"јfc =V }@&(' NSc 3y5i &,aESzՁIEcU!l^%q10uZJZ cֻ^p"NæXe"Vgq[d]%"\p-B#U]J/>2)n|R,r0HPʁ$ՖLJ1iQ)R9sKo!'tVrpI?)) 't2pKR  tO,#ZH$M tl,_αI' t,^ڍ^k7zFڍ^k7zFF~l_̚FuE7/jfk}77oo{G7?B:|_hxn endstream endobj 458 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 445 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-IdeogramTrackClass2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 459 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << >> /ExtGState << /GS1 460 0 R /GS2 461 0 R /GS257 462 0 R >>/ColorSpace << /sRGB 463 0 R >>>> /Length 1579 /Filter /FlateDecode >> stream xZMo7 ϯ_H59z(zqvևIlEY"9 5?SXx\B!Zs9y[r>R\jbRrFps5qW@ϸ{_Rzk|b`.>tu- 8阙#Ņs맫l:f>uIBԐ*Hiƺ8U5`^7Ŋ8)LkdB?L cu>Wy=At:#9%,M3jv,PW8䰹2q::elF[".UN>% o:WK>tX%^TB]Ӥ J 7K%])5UB}Sp])7W*MOqsh]>{M2vKBr}OVY}rQa|~U#7/wǽBݿ}sBgr"yp @at< |ga`T*>OHրwy+a ϞaIr$)VZha3eq HZ Q4 8@բnyVtGH;F؝*MiPa^P5hJQϒ\TF"k#US<@ &$DX!*xdTU.֭f᫱Q(DER0B}#r0hD!]L#\C%F !M]USBTIp(!V3EwKDUB.W]'`܇`i;`O>kv60N0F T,dsxME>ӔI9$88O0+ HV#ʑ`=QV `Eΰ"$AJa7_ QV#1 `D`00BİH1&`91 &|B@ G)ZHDXV'E"z@}=4 4 4 4 6 I6'I6.I65I6<)mR*(Ji"+%Y Xt)~B 8:)t!DӉYG!5":PD$2㒈R"A:h@&#o"}:܉0'9!_/#M 6ajoh<&ۄy0omi?Ci'ʶ,˻\$wowعn?[߽]wϮopN_w} endstream endobj 464 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 467 0 obj << /Length 2359 /Filter /FlateDecode >> stream xˎ>_xhld1Az''gْS"R3~}M5dcU]]~x{QAY6Q"0*c|Y=^tGɭҮ}]x DqT߅&JFCH/ L"B$1 .ӀQr?"ADP%Pu:_h9>u-N$mwױb ï neG!Pkg?Oi@ p&UW͎'햿'ށOyUMKfgGn;wv6klXeU,l@^*9p$bDx -#?E8@#  - o#}P6|f*h#B3;6kaPtIHryհB y%\ۄU'K>w]E&L OjP S[rC"HZԀD ,O^NoKIlΖH 񇰥#Mzr;2MKK3M&Lg+19@i U#d Hʜ>(O >K4)!56\X&ӗ_=9Ҟ Ā\\/pS,`:Id UJ -ʒWlIˬ&"4~DZjPh- tٟlxū!tL8aǀ{RV`g2 .|tݡ%moxl/&&̙lSvBtkBNMYrH@1-췱HPJ x2Q:%n.G jK:gő!3 K-8A_HGһT3qOS|b}M&}A]LzDeXPn҇lҮHŽ(fo(WUpe 0tVM|DX@{ ^)X2{W-J3|[lv~oB>'\Ƚ(%YeEDy{<{o#o0l\/.<=h~2XW9*=]ډFNzhv`Ҏ*,?\ ~]J8 hg'qFvĈs'* ㆃ'3kQQ5eTgt >6VDإZc+ͼdz~ho1fVg%r&Պ=PUwXVw l)jF|V&^wץl.޾}(5n)nX| iX&oz lWkP6 %>/m8KBawۥXBӟN&PNaF]ju ~xg|s^P=hHBj< ϥ0tP_}' mҡ5߹9,"iRO]_ ^FFΞCS[ Sz\ "XPowmA=Gi:6; o_%Xi $*'imzU4v{; [ +?y6. +5y LLZͲA<:棨 zCRtm*.+O }q'#E&c,,Y/w<>\:L0 6C1l)xeY.$p{n?DGd\v_D4> /ExtGState << /GS1 473 0 R /GS2 474 0 R /GS257 475 0 R >>/ColorSpace << /sRGB 476 0 R >>>> /Length 1655 /Filter /FlateDecode >> stream xZMo7 ϯб}M%iS>Hi P{ڡ(3^oo̧'ys7sά?_K2/f}-->`~X/Z_FS$`!￘He%4ѵ90?.Т-T1oЇ~Jw& ?v> _]gl_w6*m $- `,rt ɦ9Xrlr jK 6Fkp).S8%>{W00r=:ZtHLl: *Nަymm5Y_^?]e3 uX74כkuCBO Z'PwÐfNE^'GAP6NHx%<,ˡؙ~X;,?S8*zK8|2~ _-{ge"C7tHa%PiΪE.qs6>Q澊\W{OeՌwUꘪ BlKCO~S]>{MvKg}(r}OVY]Aa|~U#_m?8g>=,d{z(57ߑ!t{JBƟ ~6lra:)u;r==v)G2lƎ3F F.Kw `䓞Q+QԓAte@Da$FO$4}u?VjaaG+Bng0H vkٖ> ݴp̩H٩ғj/nvӕjQ7 8X 5 #4ۙ(ZBe02Kӡ+@WW ^]A.PBmaWX[%r:>sNc 8}u ̃ aD`#dS$X6F&L!F}я Ѻ!aVHQV Eΰ D^)9I!6GQ20ʰ ,aa'XaykwOop˫{<`uoT1ҿv)/O$ߚۻ۳wxJ\]^ݛ7l' .jm|k endstream endobj 478 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 482 0 obj << /Length 2423 /Filter /FlateDecode >> stream xڽ˒۸>_ڋ*&$T6vU9$9l! 123} ER"F7޼zQ,I)ŃL(<-_ۣly7#ٙ[ͯ?Ğ"H[v:@S*7w5C`+<2%a<زs X(cG;wph Jt/p-CK nvx+u}UDF2$yrMdG\Id+<ڛO*[^ y3do+ {oA#Atcr  qkFVakݛV l;> 3fVԚšsvKCeZCIxbՃNC4?%\Q4,4+B< |J@k'?9ʮ)ƫB5Q9<75t >Y<'IIG%c4,P@3lp;.&[$'q~zrDv]_]ypԀ$RFq&]u_9l Zo~'4e11 RS[zydq&Ty6qBBo#0b2 f˲@Lٷ8J.%T"GRB"=Q,qe\Q^qfJZ>,Ѱk }۵\J@l,>pB&'jwpkPU  i 'XdW{A.m ʸ;:u?Vu 7>N״DhLQ&ɔک9@80DJBr\Ey|~ / 2C̀qv.\oK.$JHE*"ݎ5#(SSEZ׷ùʒ<C#/-`꺷=#P 'CCu9.PхG<80-ҁ\ !}`u.Uy*WD3%E4 H`uWoB.tQCC~]'x(\F\LX'P>+Lط`Q By <- $5t FEi|I ?CKsgh`Vzn-EEKZ]?P}VS*).Fko3 x5JL2T7*0qz[,8m=패HG$of{Ai?T=ם;D>Ҭ멹fӓFt}MC-%NV:ț.uL?+&vv2.z9y uMi. ؟(" jL g&eR! tLwx=<ԧY\Ee0xF&zIѵVy^P\ۖvw9S"#@OXl~*P,RZ8ϿI^Y8JG>xʺzhI žv̿[sh {?ԵzQ|h=Qh|ql}/qhv;Q[Cyqhv<'x!> ((;S xM`T蝦d]0}}AqR7iT8/"ӼX T0r?bpӝԚAL|}t0M̥/x%o\ZtUXy]ی/,Wjg3cYV2¡ .%2ҧNsVߤ iēe.s4^e\$cr6!jew/lk0fN FM#6\4)]x#s@4&RF,_G2p/ gߊyx) endstream endobj 479 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-DataClass1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 485 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 486 0 R/F8 487 0 R>> /ExtGState << /GS1 488 0 R /GS2 489 0 R /GS257 490 0 R >>/ColorSpace << /sRGB 491 0 R >>>> /Length 1290 /Filter /FlateDecode >> stream x՚Mo7<ڇ0:hhVzrJ6j:wO=h96ܘ?w?7=>ʼuΙݏk݇ƙ;oyy uUh\~5o|LvSIL/~1~`jOi ՜^?//>q_pz=Eá>*_Xo d~)[WM:sw-n ͻ[3fatܭOs)ii6q>z̧^_}C4#۰8#1ś.faq1${\ЗMɶ|ȅDҔ1u҈XՖ K;~ZoZ|>D{߿\wZqZR4*QlϪIݶ6_2'|@"]8 +sx0Q_̱Z݊p98A&td9o;akY .WFDp AJR^ hse"\1d"<6> k{dj0Fؔl[d w*,M^OGU`*DˠQGoЁ1y*;Q+AceøuYn#![i31n1ebpBJE# hP`sj܃Fe*L4ig=/xۉSVc2tnE.6wDut2 ٭QmҲXԱ#17iDeOLJc4/i%ZU:ԵAKCi\HU:D;VDDm} a5egC j$czI'NvHU[IWSUjtTMi\t֩JN+:inv՜#|ՃhL[OS.Q Mgy7Шk]=͙PE6Ocgz)QŔiLS RMQ7Иݹ)ڔ0 wL2lj]\,tϕHIGT:ϫ):PXJ> 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 498 0 obj << /Length 954 /Filter /FlateDecode >> stream xڍVKo6WHkF$E=zk͢pEFb,beɕ(g3ʱZf7:KI||={ghI6%C{1ʲn[=S!ID%ttYӄA6~` ~n9v]>g:{5/ d`b?m@~ +r^B(hӓò ~RGM6/1|!a2{qrykKy_H_? endstream endobj 494 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-typePlots.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 501 0 R /BBox [0 0 540 612] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 502 0 R/F8 503 0 R>> /ExtGState << /GS1 504 0 R /GS2 505 0 R /GS257 506 0 R /GS258 507 0 R >>/ColorSpace << /sRGB 508 0 R >>>> /Length 18423 /Filter /FlateDecode >> stream x}Y%9r{8c`%3*6 n$"wכ10iu"d`, {~oo?}}|cn7_? ~僩Ǐrr-;ߦ>&ssng~}Kx77G/n?Xvy t{珸)=.Ncnw_io}~w+_ 9] 'w)'ʩC{ iɋ?z%!.Y7s混or6=M粃>AcZ'D4GpBԡi;?:#MHu~q 4ʦtw{2Nw]}㥈i,Ki>|cH3w'?^`$F1aLl?]ql?@ϙzɼ³'Գlg#1} =#DwFS/yMaJ5&=q`0|}g,e`϶#_<{ԙ 5Niyg $7S癚z.Ϟ@_,<n ޲$^0l|l u ubqg;aK.Sg SQ[Vy {`[ښx<MBG3#;M>L~zZ$^ 1hqFbDs"Ey!YDȧY٬wCЌ|w!>1y\ƶ &qȚQnLy2$Qfzr{!9|v~ &p:!3FnAJ&Ȋc…wLR3=ڨ|3B31㕧q4#Bek?w:1^w .ޞuT|3?Y7 Ȝ?1OU#-{pZ}!=rv#(r3i)KC3g aˠ0Iz D_ wn12~uyf*l4ix,X0{{]ϴ_a`i>=c(7|jzx,*u͛9D{<ǭZֲ"[C1/;Zr%5.g_ncU[;<{!Jpk>]n2ܚWŅVUr!ՌC ujJ.r!5?Bpk~V3.=W[*jzj+y\n5iho0Mf>v!z> _l] nּ\ n͓Jp+_<]n͇ 0W[B+O.{6ӕV+y] n5cœܚGJpk»ܚּ\ nG+y] nܕV3&JpݥּQ_n|jKnJp+HW}Xn.D yjV7(Rp[9t![A4"ӧK&\ n҅+y\ nRp `W\] n' v !.Zw)5wJpks)53+  +y] n+Jpk6W[A \Bp*,[2vDhfJx 3] nb| 2xx 硻s)Վ]^QV;rp[bcׂIf&ܚ͕,\ nӥ.Jpk.1ψB/B yܺek4 Z&hLH't6L?Bycx CR*λ\jKR$(d9AL~ a;]DN^p!ȅ1# o,ïh ka}&4@.Fc RNZ R(HJJٵt&DA ߸a ;+Jh= tc * P\Z ^(8rb؁= |5}X-YG@sγJ)_HE˝%_w)G{g-*x %-bLD0p-*&wb )N;D`+&<{_֖`hbd)1U-r0VFMM{~3I`XFƞV`DZ=}ԟi31[$_)8oMbr9[#u dA 𢰝x *8vͣ(mDbTyc% Vg)LNbI{-b V\s,cQϴr>,@<E5A|p  dg-*8PlQ)qr]teL'xآ uآ _)b–>vrCI)Ul ɥ / -6NBjY|_ F 12]iLed0#&tF 52]iˢ^p#!7JGBQ 92M̑y#\vg΄ qGO$cZwDpAD.AI_"aR!c/QxzA(/)3r0m4A^ >v riśD# bxAqUĭsP7)Ad,AӰ !s5u2(= "|s~)LtXTyPz쪼([k&U*Jfcwsbb`b b ೉SbĮadlaQ4maflaglahl3ajlaklb[16X77Ebbbbġruc c/U^c/U^*O*/OбC&fCCuX Ty~zTy:,-,-,vRT:6\!::%bĦcka1tla1tlbW5:6\I:6q(uX-,].;,Ml^ `np)-$k|Fp]׾ٯ1N Xs)Sc&ǝB+Aloگqn_#]._ۀ{pO5pe۽('G5~ ȑנK  nkCqw 5x>e"n)v ޅ!a-5dޮaOonOwk0x`׀ASÃA1րpr]e r^ 'cFN Ѿ,<ꂻe 5QU;5hF24 Ԡ "j}};5p__vk~hƒ@B;t~0SÀ^ f x[ܓwNd;5bAp_V75 ՀkDԠK`\`uv a0^kDR*m(jY5-:K2OU~!5̬þm1etvLg1utwLg1t&xˌ<0f13O c1Ǽ} @O?|?>u[IkȀ)K>èx0ɁEGh:g8pU,X>:1q*:@Q-*0>ET.P{$[y0"}>ÖSAPH*h(_T/Y- _ƇPp|?S &~[2ټDl_,h!Bup?|p|:H..qdLڣ{CQp/xq@t>}AvaQy֕HρE.>fŅc\im 0qbvh 9H/$_bd*K6o&XE+K@\ߴ5^\)c]U º.5Գ+>+ t&awӃ+~GWD:#>T"^Q i2E2&k*3 E'??4Wh%d$4VC &s׸ /U;J2\BU'hB݅ W;N$:R4Qa$R.tЃ m}MkqQi]:袁<T*@R_KJf0gRtU=f4TFt aD2fU*z4"pC*32$_R.\U̟>$.kڰҹۆ:K]bPf8x]LEJ'}g4N \W*?̦ fK7paJ,8oUJ,)g%UdX UyLZP/F+dK|%GXvێiQ>.ӀT)ۤl'%??ƒmcWUSB-|~Ejg]bQP/J Re#d3 KWWi_gT:HVjXחxU}r VfZ?U)ʻ;yi坝}swR;hO+k<_+6wVa}CwUw8sVx)bCzRinSZ9;Vڼzrf X+arʵreJ9i `k%SsQgRA} Ƌ`>!y迯%$eRrYAV<Ȋ_H7;9`h鎆9phӡ鎇9hycgD!;$SbpLL;DͻY6 ~mox7GFV|?vfVO'JUdڂ %(V vFz_O7W ~ SB)g@M+~ f{ߪy .{gm?W%9ϩpp@ Iq{**g?_3gyQb_%{n*&*DU` ySP%|o:ƣjo}^>鄤O|ϋK=/R<>%N C'T>m|$T1KSԢpr/>%. <*Ny_>oO|ϋK`竄(OϜQ_>o<>W쪄p> l7>O~_pU n3?}Jv9쫄 o?smVOާĹYŽ?ͶJ I'N F"'`{l U`'V㧍no}x? փN[N *??}_N!9W)~ ~U{JH N@]tATJ ]'F-\%~U}VXIݿ>h{_Ֆ\V\q\|ZN` RxxV}=9 hWڟpN ~vV>^!tT mUnvX.rzT}=L0_toؿtnT_P獽牼t/* ]0Nx~:T _~J<ڣ>??U#m m_'yACƟ788;{wc>7;+=Q{ƞuhohܷtq^0?oՍ>@tDyZ߸|>wV}9}ΑՇ'ǟz^>7O7kO;O wHw^(wȓ!}#Wˈ'+9 JA/3bm7 BO~Ө+ Bù..07e$/ 0ߣAP[ѥ*w{8F2z =x $PäK8lں{D]"%hoۼ~W5qȮTMf#7 "BLz)pv=vPiQ! ` vPi&w1a$?\x !`bF*|ګ}hc%H 5%06tC_fLI@ȼbL|qo=TeEd˒g3)|z9)Ae:D/@>'4&8#6C_!iizǤcl:!9܃wai+^w@ZEX?'Sivaj`H=߃>,m}ūG,5H\t1_=Ćo&/U)an+^ {87G ajD8ŭ>,mN.mdFļ0iK'M{}MA7e/OƁҎ%;fRo$m@8?o_4&ȟ7FtFw:~ 2] 0]5#DA)PycD#K(ycDVLHnNNϛ@'ZWkM~.ga#;5Iן7mHI,,`kFI|1o#c'Db]FY)xp++RrTT֊‡Z'B\P^/,($bX-KjE²fY40iѫF6l,'] Uez(S:CY<0YWPY>І[<,, xK5X $/ RWlL͚VX$/RR?GyI^\ kWB63qP?-Jр)Bj$GNtNxf[ ThQb+tJ4.\ VoKi䔾r:X3:KNM ,SrϛS#r:(qXxL%w 5S!a x7S!MUTHC.ĕ3S䲕hoG AȪPLE=.SG TX\DVf*rEtيpBV\պE 2URqV]&U* .RVJUHEF\UD-{dQy\@Ez }Sqx)k*eXH. U𪸬*|@.RVNU軔*|jE.RVOU\ںV‡"e)[,pѺoLnxpŴ@TgJs?߀m«´ϲoOx \jB:qpt>qj8O g{%؄W?Nm#,@ŏ|cwxz!ϓՐmy\89U9l0q]|ɠ1fd(<P{ߔT{4 |vZԴ1:d=Z#lv9ZRYiG­̐4sayEԴqNZw+E> SCv̮P}cbhXKzgwiqhfw.x#Xfm;1=.l1w-fiݩq1nEw][YxӼ3qJ֗\K:\ Tԩ{81y\BKNOs©2/;c=bxۭK`2ܚPncjPhp˝t(ymKvCay6ׂ+,5Nb̑W{30yc0b0DS(NaaE*%z`XJh- ]ZJRSؕt IqC0oC'`2܏{-4a)rb/#_L4Ŕ^0EO/b3͈xy2yɋV#>^B:Ś/!p"0Eӈ{xwiq."G\t."M#~]B:օΌxuq."u#.]DGYB:E?.#XB:EiKHHaFԎ` +!"R?{EaJHt+"#WD:[ 逷.#VB:iEiϊ4fJH|ԎxX*"#UBU $!/rϯ*yUb2[>U7v6q^p}N\}*ҍOSNw0 )%h9ce,U ,-kt(k*Fӛҵekd(L^.Mҵ<>Fo ubp[t;ňHזҵw|<5\8 |<5w8%ESl7}by\ +R^5ݔO wmR= 1*%b&5}Ba><|Oh.Vr'Nx@eEϝ _r'=-%53BjvԺT5 ȡa=#$Q̓%;5}10 :jwny$r8Aox7}byP'[ .aPN(kJU'X`P,NS'vDžvj%j{t@NBy@/`3ǯOs>s'd~O=CS ҩR5}MŸ> BצRӯnJ ,΢ׯؔ'Ƚ+WKUZAz{mCG=@c7 =7}!GMDO3FA\^a_j_M8=lx!Y1?p/*% <36waudn;Z^uoPD RjlB}tq 4pWA > nmbxlAcQ1׾8[q} ⒂fB J u(xE~~ xEF)Io !TI'4}#8ZxeiHp @Ws2o>END|ah4 pk '\Θ98[x:lv [ v 1 QKw 7* SYUM<+)V@`:07]!Bd 7 üJl]Ք }C^}ūcpkmw}z`CpY4>7x_pZ?E ^QepjkltS0FpY]H:)Ȫf-hB_A+(`&~>B^.aA1ku[R2+ 2>pP-[? f1Y3%\c1: Π`X[^.qV0T_5/;USoNzWqYKjlZ0U O+t`1YaE/T "%='cNyLN > gS^.f]=pgZNKP8(Y}WrQz)wS^.V r D\`$ S{0ݡɕ)wٺ4|cWX ?pvH{_qb+zB0/x ]q"ϫ<[y#qEb)z̾p̾f[&novV}a Bf_\ I3 BFoKKaR1zA rjsd._2f-D "Es/iIX{A׈ dΈ9 GwA Ľ.ywAAG!.(yl Mz.Y !.(V]N̚ꂐU4yʌ ӂM1.(,[!]W칠Y}?f΂7Ux17{_+ۯ`=r}u 'l1WHa! A<8< aO\}Cp~0A­0<1I s|:GOp7?g\ė3@iN3O̜ƅ7{'gf5wٳw8[ly\2*A/w/GZ̗A1fI3 c!ciƹɜyv5oa[:0sEs _7¡'ǻ q2Ο 3jH9L[As=L[]4ݍ6N fS䭛Hl;.*ؘodp7&Ɲ7vGȹA5KȺ>»̻u{m(jlD]f=ݱCu* t3&e/_пr_+,hlmS> 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 515 0 obj << /Length 1585 /Filter /FlateDecode >> stream xXݏ6 _aZa{.}jJձS$#Eq0\[`w(H oًג{<`Yqod43޲˭/$޵qzq,pZAYy]z}q0x|=Nd^!; %Y63z>N^ʒ@J [&Xid_8}YwF KVDLEV 9;5R;C[@9e&Y}E8n 0^7\Lڸ`ZoDH0k54Zu;ƨ3ՆV.3RZ {EUJu&lxw98v2bić?M$X  ֫uaR gLFU:f-sJűJRLÛmK s۰\ Iϒ u2- Vc¢ڠݞ(SfA(w19-)PI2MĄN!uIi-۹to6_EL&6X,wQ"ŀh Kt};v҉NC0 Rtc6;xik.X80ƶ[I]?^C=ֽ+_l8B' |˶? L-߾{u#O}lNf=@_raġ)14oIB>4WB&{aCI2V%)dw! +_m׎pƛ g ;bQ7pI}2+Shٶ&;jSۑC*o8b2$(3a *k-p -H_ W0M|ivO'D7"(FfKڊџ 1 tF-]Z ;EdU pFJK@5Ua)vMB9ZAM,lM" nm=䄈p 70&Dx/pᗆ >1; ׈[ErQTmwi r5}+κwd&>ʢ>9gF[M%6Z}ir-*b>x)sG(ϾhkGbЛ H[p8 pF?+kO+zx9z2 (FctW#KB 'F/H5[<~. Id*:A΅0 /f_F{ endstream endobj 495 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-mutitype.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 517 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 518 0 R/F8 519 0 R>> /ExtGState << /GS1 520 0 R /GS2 521 0 R /GS257 522 0 R >>/ColorSpace << /sRGB 523 0 R >>>> /Length 2827 /Filter /FlateDecode >> stream xZMϯt0$2 r0|Y'"( ?U7{9frczbY^U}t}r8~)~=}?~p?)'[__~\SʚinOß92o'Wg7g7$C~ C9L!m[>zL~v1MwgCKwVЫkִL8f%ڬ%Mt+f˔bmVYmW~x/^oW7e¨#,}{g +o^Ҵ.kҥ߾\]-tԕ MnɓF4ڟ:O5$,z:ՠY뻰%N!~}gQnb`yY2_d iYڟ7r+?xXL%)f" o56Zu<K͍XfŻ3fy7fj;ܢy]$P!)<3|,f74SDlf74sS zCG#H0-ŕ:b! -#D/ #}"eQ1{3%+RVKCj^^N+VNQR.Ѫx襡l/$9Saf =Db:Ⱦcmhe} j^ CsmYr7NsT$`pzǰإ* | +lsѠEVMTwQns6W/A"ù% %_/`@7 ]uV c\aLq \R;MހC@z>g/ (1܀t![zOP JY$6 Ψ8wP zUE ~ 6W&b ꈬP ]+la$6 6g,Q+|1ly(RZ6R{oBuա5Hǰ6Q(`e;b{C"k6W/2PZyWC4s-HWճCz>fȫP k#A):5!= D} Iu*( :߀taKHǰ6QUYһA[Rp!]u(;\| +ls"QnPfzWoaE#Cbuai^P:T 0f݀BlHǰ6&ggH2UqS:3,+n9xYPY&F4h=ų۠7{JRK XcvlWk`'M/֗a+b }X b%~v 62;-VHKajG,jO s_iT}m\`75%X朝A_6Q32RS(ĎZv fͥbꡚNƺڝ338j̨-PcoLgŞA黗Atf@2gFFvݝ>`ۙLJ3;3$> 6xh=,2 :3pُ`Kәa/'6f #3Xwf~d < <2bgF}M*PGfB̐#3Xtf#3Xtf63(ƝXo7*P;3L7fP~:3p 5]瘪ggM38eeli眑eM3eFF6Ͱɞ0c1oM38CmЌ> l5M6ͰɴQϦP$fp^" 7@Ev* =2v~ )Lѣfh-r5_ȶq UlͰGEB^kF;I4 ~ aM3XZ˜Va%.jVoaedih׌Vyg`5eJM3:3PfT+hȌA3;:3ͰlkCM3 DgƠ6No1hA4̠Htf aTΌA3 Dgƨ DgƨHtf̠Htf̠Htf̠HtfyLe̠T^M>6ͰI@6cZjfΌA3U4úLV[[iwٮo\׌7}Ugƨ DgƦ;wS?d& /H|zWKүx`|ҿϋ+"-@r@鴨R \d%DuQn?Z[ž;kuOR-jdIၝG,}O:i ݬM#O, %G%HI;!U5r;dL^?rߋ~3/; 3WG/qϢ5,EYTÞPS#qnfs}C>پd:(lm68+?cT256:_YMk!*dlAJVv2ӷWl\Jm#:f[Z()^pm:s垭Lt[Orҿ2j6o endstream endobj 525 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 511 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-sampNames.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 526 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 527 0 R>> /ExtGState << /GS1 528 0 R /GS2 529 0 R /GS257 530 0 R >>/ColorSpace << /sRGB 531 0 R >>>> /Length 3084 /Filter /FlateDecode >> stream x\Mܸϯ{XM]H0 bb^v4*5Ta׼X_dLj0OOjׇӏ˼,_c=˴L>MLxpv&Pynz|~ϴ.SkӿiDßy.3kӨ_?Da`xjvzk_yt,ij>&=B-@jjRniz˻~{묿>< tN9JL`Ҫκ"xN.>ݤos2=3/DJNfhJgM̬2i3eDE3X['4>N9)iv3unq6Z~ۭeFw7֓_NSv.^2Ը<*1Ԙ9%G:4K.a߲ 2D.f94<Hj1~2? oPs U]ba Y.t#{ИbshZׇ.YaPQ1Mek҅4bE!CsR(|{R(DP /V"EQ1bE7Y5_%z+ "'QЪRO:2RcXYP~&_e0q9)V$9ҐNѠU嫄 A AI@M#_EhN K"ړbezPɠX!(b@)TV*b膸*pxR4lBSq=)VlUq]N([:)V aت\IBP]99)V(kړbگ;)V DY[m+EU>b~BVO^N=7ä~{::ڎ8rz;)qf=&HyO^=xF͑ퟝD)ugqz֔FpkoL3]Z#;ukݩKإ>ԭu6kFքiFXwjmdBUBʈշƚH p[sV-Јjn[  _DmRr2nJl4V- %a7n[-QEC߬ecNJtB *nX@'ww8+;q trǾ,wr| tr`܍V4Sr#_NbqKbJZ3q7V-b?4`n6q trd{2nNU>W"-;PGyٸ+d< n?U[we3 -GN؜4V- Jmw+',ܒ,B6ηV-IiVvl܍qKX-GZ+SI9̙?iR%qq t7+6ߍqKN]㸛l|M$q_[9w-qK*N@܂vؗ r2nGcF8%p%:κU[zJ߹wvzq7V-Y郫El+:+Ga%= xw+d|- @' y9|rV}G>7:m[;M:Q[+ܷr7Lkeܒr9ýwceܒt|-g z/%[|/D'Qd5 ] n?r[O̲ŗ=[ğ\#`܍qKvܻqKt2/WpD[;[OuD{-M8'GƄ$c]/X[d,l[^ylmeܗvoiKȟnnYp'%sQ]?+d܉%:kP\ n? [ROSV>gA+ĝ{TQw]%d8'KIGuI>!nId<^nNVh7 Zece}S_ʸ:ozl[rWh8_ p9 q_?!nq k-ceᾤb0/22kK} ,$ pq_r%!K-l~A'ϝ?> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 537 0 obj << /Length 1378 /Filter /FlateDecode >> stream xڝWOo6 S6{hTK$kvڀ0l;ul/v}y.0 j(ǿI}F/7g#"-xE*ey."q6eG9d-L\DֻS%m~^A}|6lw%._ ?Oo:Z4-N-{{h:SƒGٻ+%HnG6>=@#e1E7Fd6`QW7j8:Vxɹ2-|7,i  6hvFs *(INN'Ac]r(pc{4+M^' 8`j}ݷ*jpR >9[^ɄsӺC8 "㡥m.Jϭ711R!-9U.c*fɖ^”3W7e&) :g@Եz_]0d*Cq>"H_Hse_kќ9uLہoY mHi Rw*]؅gLZ-a8wOIr EbtƚBǿn pXOS`|m$[Bh#.9˔U٣ +F.µ,NmMk -3L@<ߍAء%q(''Mr KaXVEE; Ӎa-ұTˌܔ!O{$~># iM0iHv89TFp">N&J?NV &+ w> /ExtGState << /GS1 543 0 R /GS2 544 0 R /GS257 545 0 R /GS258 546 0 R >>/ColorSpace << /sRGB 547 0 R >>>> /Length 2316 /Filter /FlateDecode >> stream x[KoT7ϯ-EBj6@,*mQjBտ $sUb1ߵ}yaȼ7~w~}Oͳݬf>{7G+c͛??`~<~İ ]5g@_h7r&1&Ukjj.}tbx} }=xCi~߯.e=& 9y~!n6ܼ3U8h]V[7罷fo[cʬ.%^}Sx^Ӛ)×Xs Y ΅a/Fj2bE>O.*YT SI7C_vw0[|/ _H] ;,:`ɫ/vw^U~ux5Q^\pVG^ nU9cA e-^ ٧Rh%}X BDRnNECE欮A{T@NjhCz4bmQx!p,dh.T~lxtQO;:2O0F;[[T*" &09l˰̽"(@jx4UUoAc_@u؉>ǣScl* Snx(mGs<\yP Gv1Тy ֕!&243h%:кb-(hiFC7)8+M!-Tv b'C;8$9P㷓TDʑZIBWZNfRr`8} yxg\r4h΋-WhKаQǠpjXI=M'_B9#N TDrEGbVAy=%誒C9 ^w06Еh51:ڇ4Rh5YP5WuSGAck1$4ylT_5d,\PQcUkX^P1vBUֵzrRH_ԃ-۰M!R;H=/zg;W|S;W>IRn^trOQ~o}N^L'W?R I0z;t'|7#=`qZ{Lbwtq%@bgb&w:P4?7WwiVɏOWxx0N~03' ~I-a:IʓE#G/JpA endstream endobj 549 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 534 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-typeGroupedPlots.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 550 0 R /BBox [0 0 540 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 551 0 R/F7 552 0 R/F8 553 0 R>> /ExtGState << /GS1 554 0 R /GS2 555 0 R /GS257 556 0 R /GS258 557 0 R >>/ColorSpace << /sRGB 558 0 R >>>> /Length 15968 /Filter /FlateDecode >> stream x}]$7v ov \X-k +GZ A~}x>y]U3;rFzS,nۿׇnˇn,[ےn?mw}>8~'.{?#>E-cZz  ?kg/Oe,KT}?u]Byu>˫|C~ };,.n?~iVxxӎж׷L;B[jmv_oݷ%.V܆Е7o۷?9ӛo.b=[p}x(Ǖʄ-$\gS3#=7/ B*l~[>$JyvQyW'5Xp;?*]{wj>`>s~qRǵc"|{8v\p\|NWMH/CLo{x~1P[H=X>+VXuV>a^X`wWÝ9z\!9gdy%`A9#xv?~Zauu$ ^ꏶg3C޼66f~?f_Au(umPK; 835C1h jZZ jg u(ARu3C*bPr`P!տAmvZ . - tvl2wБt0չ%ЄG=^h80UǞ{8D=FsL.= 5V;صqo]pqBÙ]}2ʿq$z); ]pR g= ,nرWv~/G^~ 8DžB]50?>`w~x;3#xxk^pA^@^?{;ǃJ{^~QÙCF03dcTn<` q)ʰy)aQxyQy[pC{>9 ;wGB`(^1*٬À]2c^YHpaOkw!ye!>l9qcP0Dsj#q{5F9 .E榘G[\h:aGQטCkȜ?č6G,|ׅ.DUshʼn#b^mpuD6\b^$ @沚O[8}#,NC[ j=ŎAcq׍7 ~0s+j]:̉y4_q9™A͡ pT=žѻ8y6w'yyq=ռFt~#jm0ŠٜjU= 1VE8VW2a0S,}ΤU'lV_(i~BJ^WV/y_IZ%>q4iKVƥ_kҊNZAٖIZevI4I%WWI+UҊmϫANv VNZ٤wVέV!~yI+O< OO3I=H]߭6s _K Qh >%oo)!lrJzL `FJ2ޞxg{~:z;fz G0kGY܌5Xk>O3; ~>(?JOX[{lu^2POW||kE^חJYox9_n~5$lг!}/f(ƃpް޸S5x=|CMTpOг*܃H{RY0̦{"e#p- 5}}{26 wnkn Wn`i©W{\ =WPp.uq^Iդ 6ʱ%҈J+=a2ؘ/$mTZrV7=ͭ؁Dž'W~5q}+p:; @kte<% "ncS1Me*G^^6}GN!ԭJZ4./ZKvHAEWvHBa}lR=Zm!ehi@)pڢRiCs)/!%QO?xJ)}I>wIU %!Ek`F`cla"ۦ)Ln:zB3:(nd'`TԀtO wIdj:O @ BALr7M[Li%wESӻF`Lx3b[[ӇTу!_Wvg'[J{:(A >,m_JGG},z>:`zz~%G ߗ0yIkA'SWn]_#WuCC_07S|r=LGC1vJ~ޢDu09LlpN)'#9甸tRs9]999gp:9d pB[9rB8GB99Ω sԋ2T阾i*紷,prNW))\0 $9XĜ(H$!!A9-[ᐟr'ɥp;sY΁zd8'G9P U a7g9qN8Tb  T;gLlK>#O}> ׼/'@ O/7]~隿}?f_0^M`-q.Az,Sv0rv4i|/7ZkѲz 奔 z~yO7%a?闿?prx3fJ:nn|H脾'V ?v3//-lt˂¶gVks ;]_Sk vXRf07'f:<xG\V/D:-m`niw 1sv# o,lY#1uee gl7黌JE ?T]C2.ܚ'*6Ux~ K|STx )㲯f\ #z, 9c , [Ȕ!C@_GA[`}0wq Ԁ2[=L껾=[x}Z %)>a//w^1MTG-.F;0#<0 Z* = 3' yQG^3Ww0?LoyF'n`a}FzIseG8~i> #*ӬY{Ѵ?Yκc-fg S&<ƅNco|U=KlNJWpzs> p&y8ǂ1fpfz}tncn s  ayC,[iA28[0UvI>Mov*ŌZ2 Z= f`>{qZfgWƅwBN1ǘ9rg0yi&x Ocg>qX+q^X#+~`9R03t q0+n: 5ۀ˂`ذM ~=#fW1ǾMql̰J`9Ue h YsG$^C1}=@4gJ38o"t[??r#H_۟r~oy{Wywtr3-?={@ݫ׷A' {u¬Q2?1`q/\y;K`W,z{ěX{{0^EB{eb O<8 3ݣ#`yJVNGu(8HL |\T\NӗǸn޲B QT.|6GO03'X5U- n|'M7 x< G1\@O8brGM_bgp7byfzPԄ#2,M.u.|5|'B 3=(jQxgnO1>;ufzPTp8ؽ:ÁgAQS%JQbr{05 X:$`rgng*cҶXa'儾⽌ cˠ\B8,EJzpLpszwib-?\8W ~00]yÍḃ1?L0Bys,ѡS;s\R-?É8-XT4D'oph9^,ƥL =(j*0~XdzPT$WdCE",{LϰЃLг{8p5_xc;?E2,jb̼ǘ>Ǟm1?L;<BYENbg-jb\=aSԔsW>o$86/~g8PdZ2O˭h;SV6|p9NOw1ż*{ KE>Ȥ2zI}Zg8'UV/MImxKl^b%1hj^R/M;٤ॡm2 n%a^zx%A֗3^b^"=4x%{KV//d+/T%"{Gy%%T%^*](^"^"=4x%Qߩ^b^R ȼdRQ /YŶ1zI!KE ?0OF/1/qK_>B^"^^zxIJz^b^j(/^Ԣ&ee"zvOdk#7;QT圅ĦYxf`Z{yzj@73O<|HL]] _{bELbLg"ݑvSM=}b@4b8r i3ua =Z[\'Һbmz+H +օOP#i]H\>w"t&->ϤWZVB'g>bYOut7JXZE2ŗ9z,K ժBl&gN0c>iu.-e,[Li1zDŽa|2-h('??>KGe:խΦuٞM}۳iRK+M]~&v7셇&wt8CSi_4|8혊ᴟu^z8߼g;L7nA/wsi2?󱴻7i/B`v]k.4Xs0/ڴo'|sANvWǾnڷ4yףEs جo,w/a8[鹓xQ߾z0{_Qߌ:: ~߄ŏݎFz-|.H]_Q_kђI_܈} /Fϝo:q2ʺfNx!w# 0{ 9='c;`2ʺic^fq14K3.^X0fv]1/,(̮f?' ޯ@0Tn~ =+Bj|'g rX9i|'Gh'U;0^wсo]NL\TF_7{dj_?4i#IؐT2yIJEףQLsBgwF)rFߣ0MTo?(})gktRѾ+3x u? /Ì^X qJEsS*7Ox$}W{L֝To=8}g$}lS*LT:3^uHg y*S*ڷLIJENeqJEsS*w*S*7̟{TTqJENeqJE;Nh:{qJENeqJE>:Nhߩ;Nh8^HSYwRѾ~㔊ʺ㔊]fktRq&NR*D֝To? /ę;Ih4G')w㔊 ^8u')gktRѾ3YwRѾ)Wx!dIJE>:Ihߙ;Ih4^3YwRѾa㔊ɺu5:Nhߙ;IH_?u)[g=Nhߩ;Nh:Nhߩ;NhY$}8}g1ʺ㔊NR*wNR*w&NR*ws;Ihߙ;IhY$}g$}g1ɺNR*w&NR*DM$_~q-mG7vEA-3/ɝכrb]\\ `gdff2}+!JCzjINȬА޴i8C҄j2nZ .eܴZҧ2`3޴i86<UMaoZ- L33޴hoIu$V+sR +|&|n]>'P3ߛV$+s2r7si/ɤɦuE|N&UfN6H;gX|aͦ~> u+Үxԕ}_4}i_OY/s/&0'K̜lZ- s2|7si]>W@fN6Hy/1M+l}zaL1dji_0O߃B܂}|9d\iB2Vi8VV[v HоOJ|N<2Vhz^i˓}V^䂌}X_ W}.O5Ks>aK}>'~եig%q}aN+avfdi]~<Z9}j}u}Aa9_dݵ9yX 3z޴h KsO"/'><,bӌ_ W'J sX'A ^i_߉μOW WĨɜPm ޷#S~jIygo+~J:NhV4:!i[-[djI_4}I]o4ӓVKLEզ. ܷh_#~n+^9y`*s+dܷڔe:u++d]oWg/˖-jSFW$Npq>ZrꜬͷ.COTey@VIꜬG9qþuE>[m<4n}qN4o]Ѿ8'Z&%etyL}UPχeJ*< %e ^i_Ҿ8'n[m2LC2seѾ*OeUV2GevҾ8'Pޑ}r蒸K_(z^RFmphۇ2}uN;<Voۀ(XeL?"B?~x6"^PtW#rE]E 2Dpȧ"f3; PfPl]y&|P/N6lx"cG'>Rkfə4s)Mx/@<Z}/IPNNõ@GL3⵸6ȴmط/B~H:i}^OLx:C\W!W!, /Te #cwx7,zplUef89GZP!}nᜌ`Kss ;LxjWoF)![8U nBW;@aY/.]FW[qUk}F}ULoМ% - ¾ У)>`]1 ڽ}.(>3.m?NIu?-7` oP.y.@!컢_ , N¾-KVȅ< 尦Oߗ4}gA?RA L ٓ'šCCMa7}黀kQ#WMa';\͆Nw|zG#>=(:|z!`8)3}j~>W^}zRŧ)Z!a iz0$#4}h~ﺈl&Pi0D@yAM[cMq>UFAs X"t\iy #5sV 4AfAd(BDP^Yd(Zًd(B#? UJ&L@ R 8 ݉Y2AEM P3dGSʜLʉm6AFT^&Hd 2 Mϥd<  ?&D!  LMd &B2ADd@4A 2 "*$d@4A 2  LQH&Ȁh &B2ADd@4A 2 MQH&Ȁh($d@4A,vױ 2  LQH&Ȁh4l &C ҹt2A:ixߓ aQ' ҧ(Ry 5zcVi鯰PtM}#2A 2`Md Xcd@4AMd &Ȁ:6ALvױ Leg6AQH&Ȁh($d@4AD塐LY&ȀA 2  l JD! X6^@5r j( bUOʌ4}OLӓ4} i)ȚQ5=X'UӓMO4} 㰮BBBpbM?*"Ě^!i5X+$M?`E[nbM4l55՚a6jǚ~@VdM?`Eآ-&[Ś^!i-bM? jQ+$M?`ehآ-F[%TPTPa}RA4TPaNJNK05RA_K ikM?X 4_rșCsJ4}oH* 3XWT4}D ŸX8H]L>=@O @h*gsSd}zo ͑>C{ç_#WO૦kzb>P)Oo?0Rԧ$ħ)iRU|JbE|L5=DW%J|k$5{YWEد|''e>f7WW~_GJO8>=WOU }`&>}!cT|ƅ0DV i\@.aM_kY&fEsE{*<@p|/;oy dqƥ3ީ&_>˿Bn?By^%} Q>[o]A?ޤ5jJȴ"i+"ZAk+JVUo}ꠔ*h))EGguS7Ⱥ;:,E iOO"S*y YOAE?©2u/o۷ߞ.P"  Wؿ+>q/%=/9ދFL[趮#/ʼ vh 6uBGA"nv]D)EݐH/5F%>&! x7@î/٦r]G4AbCLWqhS+|FVÍRcoPZ6X< n18Q; oZAvQcцM (QKtpB 4ܪ#[yiV؊ng(rRkNFy㹇bE?E\hqL۞g8?"0Qa=7p*Cƌmᶊe jr]ZžmB2Zl`†hpܖ"wݑf7V$)77ցڑgBvizcl`Ҷ pMu9xIضYy~0x~/oᲹ~2z% Ȇ-QYZYw}h(h~PEÄ.Wfdb@aݘ̕&l&`a=FҖ'Bn7TGӘ>/`9FM[a;R{ MM &/`(ްys&uqr0s64hC0.ypB[퍍ȬzcFrAN[K{T3Qnѣnh{|loKL#''ǖYLBeSc?}\5{ endstream endobj 560 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 565 0 obj << /Length 2384 /Filter /FlateDecode >> stream xZs۸_Ki_i;ӛr77=,HHNbAZddq_Dpbo?,Y'Y컋4OxƊU3fHL \ҋ_,#~>/~,do-c2ι<4̎~s$$_-M[EB@mWDШcHn:0ɉ9Ρ=.-:ag]''f9K||F2$δ54yf tOsipp+wTHhzPA;/\d IW.jn.DMz/0(\K,bL6m7{"Wz׬WDyIU{ln!zB!m4߸ru=LI')O2/Z6!h0Bm`Os!6biI][B->uul0nB:#+KueA@AB a @F :2N &|^W825VU𭣗Y>2@% J̸'8z fDXF$_Ohr䈳GB+ $n <DIvd D1Qp0B7clEe?&WD#2O4Q{B Cڣ_W큂˥ŴSoY D۲wڟ4ld` EN  "1/؂$Do@Xޭ^ HE<뮥uq=UC@VY\̌1 O I!S80zL>BPi!1J)$N!8%?| 9( ps1B1/ vGiǁD8/%mp)V- lgQ]E`ּA(+#: $i2B` Λj 4pHn^< ; g\.=†lrylCQ&n"u z͹zo(7dLn1>"h W &,U*:~6ޯƂ*UHʆTP:pהp)O1}e0o| VB&&]a6uǘ:(3"Ip {?>瀣Z75`dGGp ɕSu^ :C>>1 @5R@j4BoPǡvuH°vkxCყct-uL $gݺP,K?{ia7sQ tug?(:Yjp)ĨA w 62 endstream endobj 561 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-groupingLegend.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 567 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 568 0 R/F7 569 0 R/F8 570 0 R>> /ExtGState << /GS1 571 0 R /GS2 572 0 R /GS257 573 0 R >>/ColorSpace << /sRGB 574 0 R >>>> /Length 1809 /Filter /FlateDecode >> stream x՚K7+ !%R2#eXDe=q}m{Uyx.fy|'s_'e g/e*yVm\|Zif`[j^[u]K{m͘YڵV{%O.ۣcxOw(1{QpƷlc\moxʐ_(?>'49-rji.͖0] n}2aCy×9rRVSoRlIݶfBȒ.&k.w]xo1~5еeF:=`zo  EʊKægŲm.d[ +Z,Sk{Xq%jƫe؝Q`]6%i5ƫKN4u6Vuppt2nbxI&sB̷-kQwq+jy!\l;!\KT09ZO{ U]*嘂HU/oD jYW ىVu 3nmlsMڎTݩ(6Ձ Ar԰KPß3=WuI2<U-=\ySű$L1G.TS-_*˝cSYo&3MaDϙXjik:$l窖dSl r<-$|Fɨ rq1ye+csU;j ' &Lze8x3'Z&|%D4Z;esU|3;tB婪܃xkč꘬gDAksiU'Uj{k@|oPcBEk (X.Qhl#)Xq3xBDN :^ڠxezcPO]?zE \"?zdz 굈k6'굆6xQwr _ߡ^GP/cv7^ۡ^Q0P+[^+KdAXNj@izQPρ;zAzL滟:%Ʋ{}CM-?ՇF> stream xZ[OF~PH6j;7%" RA̹̹|11e0 T`Jj%3 W͜{Ü!e{\ez"dL AH&@ IbE6瘴Vgc s<ģh; x"[X".f&3΂ɔP0 P&`Q3T P 4 A31LkERIy[ pR; RRQ nZ@DYZ(;$Lč6)AU(V@zR"YW̐|RD8djݒRJUX YZ0kX-Ac-Re%Xۀ`Z"F`BgQ'N-Po FfHgiz$)4C9r fQ^ (N/Ta)(i(,yBf$Z < l&n\): Hh ҉lu565`;-:7s |/{쪹RɜJͦ*XDFMjD8Az$ⷼAI{2 7/NRwhWmSM5du:٩W?.aKm^tPp4/7McVU"Og>0HfR;6/6ߘ枍{@)9m`x9wZת~VWG#|]6SS|(2O3hXT#,z\{ҸoAsHz D֜B$ A,x\YZ]áPpH=ܵz.vYי{ڗt36џt Bؿ'+bq0A1} :¥z3~h@䵁eskr{]ˣ⍚; cs}s7"WKgJк?lŽW&J_ҁnV[CK+Z->5D G.',ApBA5vy2?vkyXmԷw>'Cƥ:}&ҿkE]|rE] oO/@J endstream endobj 577 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 562 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-horizLegend.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 578 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 579 0 R>> /ExtGState << /GS1 580 0 R /GS2 581 0 R /GS257 582 0 R >>/ColorSpace << /sRGB 583 0 R >>>> /Length 7330 /Filter /FlateDecode >> stream xϯuRZUEr+'1  ᅠ X9[͛7Ņl6_uab2}9-ӷ<|Lӯ|114կ^{ye7ijyMO=:b;)t6ߦ?6{kݳXio /_Ȃ/a/GG-y_<}f87 ǶOK-W_~?-Oo}7_qyX/^zfx},xv hAݠwxq$xn_I5 { ghO]{u?fig?ac[a?u]p=J^='>īʺ0֥=qjg]q\k7l]y.Ã#6}c쪠/ڮp;Z˰hIՌh-iƣ{oICF[_#oǐQ;pY}-ٱ8}Ұ⃎Ѱ8c=ޣ w]?v5=ޒۼX&%o蓁O]mghbMhׇab1`_e>;ױցaijw@aWv}=D2.{Bv}vҝۀ{3.{>h}rxǖ,vn-YZ;ll6ʮs6N2`[qa :9l\%! {veeUU.[%:9dN>Y:9 l8C.&: yhxؘHlZdOֵg?? ҷjnhI?zwtp@z'>( x>T'Z>㝨 >w߃ ݉rۃpuك x݉ZՃ u':=JEz|;AhT;QAx4T^&CIAeh3 ܉`o';mLm'j;ֶ/Z~tK?Pvu ih$~^J۳i)SHqx/oAvW6 +Kiw{)v160Hd|m{ǫtv+vLg/o8ԶTۆe/蟡lk;U*g} e^~PRv-ʶK^P l*lQ := (e l8YVueU?Aes1neʾ*;LCNuPLv9LDQAP-Iù)Eܔ( 919vv ىfe+ANtrPLFv ؉6*CNeg2т|@wibw2qMab J')O~%'z^度@r QҒO@~ 9度ziI } ?-?YEo}9@9ȁ|G r ?nl@~9>ȁ|G r ?@~ >ȁ@W| Gf| mbg: e/3M:J"}. EH"H H"H"H H"H"H H"H"H H"H"H H"H"҈H"H"H H"H 蓉ww5oڿcKCxvgeڇSMҾXHbkH'#a@j?O%V Y͊wR(~> SF}O~`kQ@Y pT1 ʋ'bu P^ pT1 bT p<.Qԋxv{1 g^ l5b@`x?_k?KnGw4 U0̙î}.HG?~lġ5]x>Mc~aB?Ag4{ڿk>L3ww3?[.R#и/]C/M524m^9Ր;zg)l8b9'#e#E3=HјHAD+]qĐ3M 0xq3H@#}cqW#UZqn98bX88RqDWGGy%"$"2$"$"2$K&"2$"$dIDID dI,d dIDID dIdqTIcK*2$ֱ%GGGGGGq2$"$"2$"$"2$"$"2$"2$"$"2$"$"8*$"$"2$%GGGGGؒ#'GGyIcK*2$"$cK*$KK2>8xgHbPGőDđDđ@ƑDđuRq$g@[j?wp D7Dh?Oq Dh?O@j?ODh?@j?ODh?Dh;O}cigE 헙J;_ /+K~QBK] 1I=|aWoKL߯ P+}=.GL폫ƍRp/,$gYr2Jqjߐj߶)DhP@EHIsP|('-%ۮx~о:hߐ(Pi1."_x;|kgoW;~")4~"H'B~`Hi?/J=P P];\04 j68o.\?Q$i/ZyRڷCe\~H.~Y!oԾ ilԾ!+Ծ7Xǖ:~ ' G=a' ' xvz OOr΁0|QO @>a 7_7<oRE+I}(vxp`Vr O=٠ 0`a`[,tԃDaChX _֋ AҾt~DDhN:d|i}qҾ!fH5}V/qbڟ_.wUо!Vjrϗe eŰke}Y*>pIlRm^Y|&!r2T3T9b1*VqpƑ 2NشH+_EI!_e;*/F+Qe-w|'Hy8b/[G9j1đּ8bV#qp,n2؇⃝lGGGGB1∩ ۧkIb{ qi9őđVt8br`q8|!]{q5BVFh ƑA( #U_8_,Wa⦅GWWG.X#qbCA8/g#CGUn8bQq^~137fiP*΀cfWV#MY+ndΠ8ҏ Ό# rđHSRGaG aG HH"88bҠHoa-Z7qĐ%G WiŇGU:B!{a d$H"T#######elIő@ƑDđDđ@ƑDđDđ@ƑD,q$q$-88$cK*$KK2>8888888888d d`=b?>/;Q"i߉/RBj?w@jQ}Gj?ODh?Dh?O䜃@jXsPy9z 9]iA 8jA rAxsOG9G@h?s5 s9\zY|pT!%/GY|\|hxŇye;z{!#A#N#AuBqRIDID dIDLD dIDI@,>C ,>8C *>ȁ^GY|dQŇ@Y|pT!Ň@^|d!GY|piC *>cH/>cKz!-GGY|pT!\ZrI/>⃣Ғ*>Xǖ⃣ulI/>88Ϭx_U!Ň@U|d!n/>⃣,>Ň@U|d!GY|DGJwQGB#v؇F!Gl0"^(D`[G!GO8fB1G| 0_q`W9Eqyk|Σ`IDID dIDID dIDIDqTIDID dID FW/Yk/\FO89R~D mW@䃵 Q֡r DS Qt /:9K~ReXdپeԾ;k{v/>BU|d!}O,cw\!χT|ۥ7Ծd2P\CY|pT!ʋ*>> QziIKQs<}"gB}"QGBQzQ_snڿ ~~}~8/'w]>p@ZF߫/ ۫ݠjSLt*n_k%WW~[ooIΦwh}\o@w>A۫Hnu? iZ[(C}qy9V`9:vƢ#"Y8bdbGX܈/|q7G샶aS])ZGKq\/O>87_8b)p#O=c88rJ#v=܈#g,d#########$##pY"H H"H"H H"H"H Hb$H H"H"H H"H"∣H"H"H H"H 쓁?[tֱ%]~bni?O9QS Y|<dzۧjȩxT@N5tT@h?Dh*&ڟFkdBi_}fٵ?s1i>hԾ!\nڷWhiM1Hq#~RҾVv1K>H_/-s}.׾5t7͖5o_nڿkO}k?2(BԾXƖt;K@=XXǖ:Z,tԃҒzIqJO5<9ŧE}ʵeW]Zo_+Ҿ/{ kSD/ku k,q (lfdw6=?,= endstream endobj 585 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 589 0 obj << /Length 2451 /Filter /FlateDecode >> stream x˒>_I|T%esHʛCBm>|̮(؛r"n0v^轹Wȋ {zIye: 8+{qo6qohue~|](f:RovKKo?ǻwz=@iuQyy*m\&^da I/3?IX=9ag;&k&>6!{BH.LӀ?{#YĊQ?=`0ˠwYp6%G&mA_9۔Tsw'+qwq[AZ-L{w4#桳nn SR3bI32@y$ r9'[NFysWNuߑlb V{a.pMfRMa2{uiEjѴAޅP)!*tcBA(m9Sߚ.MT{mȀ8AaT?RR!.ڏ[/uws2V? ,y튨[ ,l :p DJQ?N@Yd "0yyy$CDqG~ū?3G} k#OGL7)=:!v&F8^zng<=C?8^:VF-ǖ?zGKwBYĵE=-{tVX0aWjtJӀupvskQJQ+ 9sE"ȳ%dӂB f |ngi|S0" 㑆,6-գBqWW*_Q)`þ.<쬭-` +i_-ZxSy$vB!("s;ZI44+iB>MX%L6u!ʮR{AYaph^Z] vi@al1N™t&n?cH +MKGWq4=I (L{3E ī;@4P%pd7oM~ 4N^[HrU} 5Y9ɠ>hݎr pQROO@=*0:6`U8:a x@b%e_0MrB%Yom8H\ '4  T endstream endobj 586 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-filedt1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 592 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 593 0 R>> /ExtGState << /GS1 594 0 R /GS2 595 0 R /GS257 596 0 R >>/ColorSpace << /sRGB 597 0 R >>>> /Length 442 /Filter /FlateDecode >> stream xTN$A +B)tJK"F@DPv?1,Ym![|ҨM:; ׊XRQ6šS/7 -C%o0Hم!Wkir}X GRMyA Y5d.c~֢% <7(XffUVah|Vm@kvhTmVm@+m9 :[^*xePTNRdx=څR.JMJ],m*zrЀ6 H\S/_tkӑߪM!J_<&M/o/Oef(o^:F&f[NO|aȡsP.wUeLnNMWX͕%g59:2V 9pT,Ǖ7{\ endstream endobj 599 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 604 0 obj << /Length 2156 /Filter /FlateDecode >> stream xYo6_!F״(X6-+nՇWM?f8"+NuCp>~3C67X_)Pfi$3EM[r%ͱZ?sc0_o$eTJѢ1jmMcl(ۆx0M䋲ҐӅ4PqZ:y[מLg6:-WRHNmNne^_qegK83=癋Eow*O]ɐ HMASMT3k|+q?w'Pxu0d(y8U;XLnqbiho3tݴKHc"7', lfČB(fII&&yQBhY!JZ^[EeS~Ӧv>ÛvCR<g:ScYU4HiN4r5'40wا7#)txO,t꯱O. i y>_cu +4[s)$sUι=JfGm0Y ۯPVnMg8h3D,YUX"A 'T#0#TRgn^Ɖm8bP pa*}U q?1c8tT-ڑF V_CrCt㭍@4WX A1zg[aa4= `+27E[%ʑ[(֮gmQi{}~ynB$m3mȕ'K{YN[op.ۗ5fJ@ PT+D G;"{뾭-1*ØSxcocDkJp LpZq&K$cZpP`#類aہ$$v$M:kH#D:bق@LXOnӺa`:b˾o*.e -VzS \OӅu|P =`lܫߝ(B:ƂHLq[&ac G"8|%seN?ܱ8šn~ U:fKG GUf\5+kە6*AAy1@e,`=Rn#ن., 9uJȨ#1uH0 hR CND_ endstream endobj 600 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-filedt3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 606 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 607 0 R>> /ExtGState << /GS1 608 0 R /GS2 609 0 R /GS257 610 0 R >>/ColorSpace << /sRGB 611 0 R >>>> /Length 2093 /Filter /FlateDecode >> stream xXɎ\WԑsS-Yە- 3L F2,+"S(4][VfddV6>)|:y#?~}U៷-qB-wc-ޅ_ VVVG s7ӑ{" IA\};]&d"}e3q[V <_ Rsc]QGרGש}K1rџ_!ŗw1[G]x۟tħ`/Ϳw)R-߻#ҶBZ9@T鏐9-@opU/_\^p OoyY>l&%(l֘?9z;fmr8\6QX>j%47:I|vĆ0 # nI(P3S<˳u2؋6LWfjnq'ӑ1 ռ,&Ȟ)6)ībg}|S %4ܥ+3DB*g$,J))poP,G#*0.}{ KQqY7l-k^p*ѳн!][ɥWJ bOR fh&"9XfI갩%Z+u=+ ɜݙ{1! QNnzPݺT/m8)偓+fF *)p qې,sf'p:D6s[J.6_@|rru#pF4Q"BƒxVV/¡^SFI][N&U$y}c1s|s̷UX!2(VaMRUV>Tv^%)~A_鞍ĊkMyhd_m g" oi7S"IQ(SVV4"«> 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 601 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-filedt4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 614 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 615 0 R>> /ExtGState << /GS1 616 0 R /GS2 617 0 R /GS257 618 0 R >>/ColorSpace << /sRGB 619 0 R >>>> /Length 25953 /Filter /FlateDecode >> stream xԽK/;s7?Jl7ǀHl@fy/Q{7dR,V~__/?Wۿ<^y~߽~?f=/>?~_O>Ӕꟷ6냔߿$yjq7.__~鷿u?(ow"褾SA'Q*77;~sxٯ~?O?|ſI{_h_MQg<]_^W_oj?}?߭]ΓC#G_hd7h,hڬG֗(o-W鷨|/{) 'm.* k?VʘꛑocQa1:&z~=FYVm)f#$ExOzKRd)N9m/I3N\`)oF֯uFj VֺJg9ۯ~T_r|zdZto'$_wX}e~/Z5:~/isCCqQh|\ϭ+rR\ؕՋ\\i=Ӟ$P7ʞҪCVEm,LKsP ZɯiͲO_A#nis7KF_Zm}hࡷ/~]ύ{DZzV4[}P쑆z\~Ũ*L9g~͂%OR/\zO̜5H=9tk:糗fuۺ:hgK>Z_CWZsѕ֯<1m0Y.1Ai"`D(g$/mʹBl_Wښ#?4jCždWEWZ\iʥ^iC=瞲FKc:&qhr-vh<9yR\T!/SJ]D~(s|Rɹ%ϴ"o%B&9ϸrHes/F934s/{EѸ(g/EΑTK5PG" 9gT˒48 #ϑ}/sQR/}94995{;1ق9ٓs #.%LKI,蠎i3 œ\wN~l/ٖT-žpWg) Y6gI]b8DMhYC/_%_g0an~9q]OArI]iV@ôxqi0~Ky@y~`)P>4RBbaТ~L䬝–nxV8/~!V'_]Z]8pMh~xڅYqq{sv.KP>UgjkHJ] `nсk'gĝ 'U0*kD?gpdxՅsNubvZX 煘ClٯEG:/ύsϸ 1fY}-zRj)j SD/*o56l)7>=fvXX*QGf!G38&na !N!v}Kr'kDt~Dqlmhssϡ4syշ-*F %aM_F\JcBNL!#7|ȖAlU~ ME}=̜gߊPbp|Fd1Я졆q"h+{XHbF\Ŗ<㞭j*Z_YkX޵7 t /.:Tff* VŵL?vgVԑ?Uf5ZY*^tcf*Ƃvr5Q%NY_YN I{X/W-sν·FUa&\׏ޑjfV*AO‚IS__C(~ﬢ_XƻTx G`6*1 !E|_~X3Ҫ ब0o(Ձ'%=Q9{>oυ!3]h7D_٘,zoϖ vG# ʼnT3FI X٪TOOa NlXDӉ#ߋZNCdnsbMZn:rָ8LǘE^4sljճPcn{ƾF %%.j"OvΕ= if8ԯHJ]Z hPtau#^!0?JTH6se^fa]$GnTYIm^8sYXJendb%c[~PjBv~0/rP)7!4mÄ8/~%7=w:.lEEFHAARyd} T!K[-@'BP ef/>;5/s4m 3Cu/̙9ӹ '5~ջ^{:vA[R:GYT,`)Q%o5B(ϹN;`'v@(0!@dQiJ+)՚ )@1'+l#G/o.̭EP.1F٤7©r4=Jl\L3U!zL/biÌ=Y8ќD憥7S 3TT"NF ]/q#g9^Bv~ MmT@7Ұ %oTΘ5f#|rjR-u=hc=PF"SUX0{N+첬@ u>R_vŘBOf~A-/)dXHm9&eU{g YՇ27bg<{KBRq#7Z[ZX` %&DQF%ŒM5 [jl:+Z |WHfĨ|$S5A?XnjoأIb{T,LP5͘jA 3,آ}&kVj5tZSXrqΩ)gwjEȣBz/G[BV=, Y R*VI~^ٗ*p!'ZlkRĜSsnLM;2G-GKsQbEo Wr[nu룩֜bSv.QP5zGn-o}1vXؕջEc0L&B׋MuO}wjxEJUǪx\"XVmy*9.fv໨zz;SA Ub²BK(U̐I`q΅S};+@Rp]s*Z=7[p{bp o׭Cw{u2NjScEשR4\v*Nuh V UfR5zjwXN_,nXbtҳa=1T/TDjT_?1K5"1Uwj[#|۰1:%Džq?5[cfktշ%QQZַ|oS _ި|oU!]gVU9qu>Br}&7f(ޱʏR:>;yf/񅾐-=u i[p9dVn9Q (75$s⤚[/~g# JyRvf\>϶)꽫_5uvrn9{*kS}ײEW[^̹=gfw#sߡJ52]5r< Px+U<;:1iyo4t,Fo̬>%oSW\p9QՁoKvW.mc +;0PsYUI.UsBsy2:Uߺ>;+1 kS*ωb{]|o =91aiWjGehvhI[= 6RV_`/g8{Θ7-n5 k`WiLĩBYYuξTHjdVqlK[8Ucڧb5( S?aM [q_Xt)VT*ͅ~\r ,W.(U C8Uh͟@eeNw'pUA_'ag8A-9Q][˅OƬ gChtZf~aٚ=b^Xs~aS;cѻ]vJղ_߲_N~Tvgqg'#FӏrQ5nO}'Ơr99o9]ݪ6;5 ̹o̜󌾺jXnGuA9;ToWV/bMׅz{*hwٲMRSD4~Ѽvvr1϶Q.b4F<7Es FhA{]ĪKќ9lumScVu76S={vZMsT;ewԨ2OTA9ԯzfjeBo)m}qF)ƝU~}ӋF~_WhW;FPlW!JR\U\(58<[=-94m!BHzֳ3pbޮн8T]*vBeN|yQB' Y޹>,=OHSYaс7~%bW;E7ۍӿIaJձف]w4Z4?6ir?~Ԥ6wv}VԊ"143lYAro5)\Lפʹc+gBb id&~[f`N &aƱͯ0F MfϽm|2a7+v- F~%IS&uc:S76{J,?!f/zrq*[hH=kr7Y&O&*dˬq]H g{SSٕUT =sjiu=5HUNR=1u/8rphBU7وõl;zх8[>4[/ڍk~_cA =n,BL¦RT3wVY*~422)nkO3}HӜci\˅]\ "_iऽAVP ƍjgarƂck9bƳoW3nT1"F؍q8>*+CO!sU9Ts~tP_#g+ώsPadiЏjV?RQz系qz?f78;UȑT-T M9X;_؝ce+[=BM\tٺ $ THr"EڀTH9\\<ʪ}͉.UIΣHiWYM" JaFtʅؘt؍h+_HG]zU.úCCRWRE WwQM#ݒK~4YEL c)C8siv蹵G:mxg۞;-$9MBA.!󲞆!EwO/u^ K(vW8=hh6F@5a "osoo|O95lk{rвp$ [Uen4ܥE6A1=|<+w)B{5hc/dߊ?Tźs^~2{nk|Cn\+@WSiGUHy:lU=OMN=w&MOS8_ ؊:"BxU )=FƣbiEѲdNW[uZ6 0ɂ" hCD-{MAT`l.f.6"S".rw8.D΍0P$n?y"|a}CX]gN3ڣ.YQ*}GNkC6?s#U; )g7׍k|Wꀫg{8߈k~hyi CL xpN#qgFn:Tjvh\f*云ۙ@\&L_ ٞ{Gj3㍰r׌((HylAo\" $_081a~8S9婥I !jjҫ,N\u2:gSgA$3穜ߦ3|5rnr)cZpGNff$NȒR4r5FikGN&׼&%HmitZ:rR5${|M#<Ӻ0R1k%ul 7x̜H_ <[cȓc}꫐5mo-7f}[Qen2"ܤ8 y!nl8~L3~L˙&t嫙G&-GJ׏'c,H9Иgܴ 2LI; ݍi8Sv2Tޚgj\MÙ=f*QMٙuI&Pa I?sVNͯP,fԞ-ɏ穯` ycfin\5B?f@"Ě5w35 KTrc;L҅A0~rp,'qqD1wrc'gQܤOœ:8O{x2SU(JY*l)0+uVn"nxaf9xJ"e* J D;;PBrRaN HFʁGbnyM&#=TwSDĄi]xȘ0JE|f#b T%Uҍ,] _)}fv0d.O gbƭdwaYŔ hS*:LȠ0^6BAezvY8a=B“Vw0^ΜSp#. ߱I3>׌*CbyBB|Ua]UR*WZc VU狪^V,Y0 b1AZ("1$^XmcHq0ep!Tmq!6ͳV >:Xҹ-];71߃B,v An匨eg~¢)ϩBA X Ҹ!ey-Y ε7cyRcp2g Rt+R+ ؃` g=MƘ`șA-sΠ(gH>7 "b9[-F`Wx>h ޡ2# lλ3>;`sv~\IjTt#J,m7w\ĺ&LF@%eo4]K̜w1,SzjlT1<]zꁫ@ER#SXS5 +B{R^Պ43^qAdUn5DFÉ=gEjehfĒ [" KS S?ld_YatwtB+T=~6ЋzF'Hz̋jlG,71 #%f`kL+<}ir o ;Dyb?>Qu 0&[bn( 1pC/>=dTpDJ̊}7SFӳDF={S|/sa Y& p: 5ThpB=mَ>5]`;ԿM"&GqQA B|0n;`BoW JU?n߮r~N7my5FcXS6{O=UYefWgNnDϦUIaۗ4! ˱UT+h Bt|}Q. i5s)1g~H_GhB97С.D< %{T*P>. Cb ?v:f;FSr{.+*sa;R^c4[h8@QVw*PT ͮRwǘd.tm}蓈B9T!P-ED3C; 3!4>=\X>]>[ۅޘNL-xn٘.6s1X%C4Hn_#lW\휎{zD꽑 ;U}yhb+=P>Y9t!~<>MN q>׃ .oX|c>fw˺,j ($_! ˺*s Xak 9HpI̱ڞ=`phx輳m?,rё|a; 14ދE~:.i*z6=*QRmqGdt@֭L Keuj]EӄEӝqpXOóz޼JEWE8FD1nš}+^GSktX4U}H#ey`iTw~6JAߊ]4Xbub3އzml=<5EP<ԝڞ}=v^l2\-"W#.L5.>'lcc)TT6a$:5&@荌QΐH(2h8'CM9cJP;g\XqߢEegܩЌ=E#d1EV)G,+%dE3C,Th'ahb4Bڏuju1<ۇȈ|_6cSYV}qSS,*S.z)Fx ]*$8KŒߕ3»@ӕf8RT|:aͳ8yr8< g96&9ʪ~4<9mv=9!W:Uαy(?~)1x)YPjTa!iOhv,<\_ 1Ķ>xfj<غ UHZB\Ij~Q)te5)v5T !UI#n,-k6sT*2Cj9S31n`;k8N9p|#6/݈ۨ.xSXbc%.#!>E.{hpSKDV l1f\nU>BmrK8vƅ~ƍΪ#3 =U~L*g r85`Sqd:Xh<#6M֕VCYYJsYlՍd2$3y}*ɻtkb Ж ![hru91$ q.WBm2bo!'k3hB?n憋K /2\Rra}1‘Ms aBad Z?8.- q#pCƺ cX˻ , Rah=7ھ &>EwE_Dž33<0 Pli1xSE k= {+Zb@Cpl9BXwz6mFLۅV{# /NClUtЏq 1{üB]^3|<}B \md) IKhi[#fqN_#tKvBt`r-*\ kZXv2ܦ㈹inna*mm"i'y?74v_]6ۦTBϱ7Zݤvг81*Dņ)9&*g3u;ml0u^".ӶC0ƸqUIwnQz+ٺT^?fêD`d:~p^;g ~㼐M Mv+lvQ~+qc҄8׏gӃ"Rg9 V=̀L5ȊZRJz~Oۘ0{cP<>eastG~ ]n8q+{cnTvay1rc2\p`vc ~㼰sdqh:+gzީz1(~v.G Q{:F1"acDLGE jRoqW:xtW6}pM1!],1郞M, $ψ>镌Ucy,N󦡅X &\xxT|qHsrЅ0-)cL;'OĠ y=fCalNq攫scQnTqVtc2'Oj|G3<:13ľ cٜbY˟G E%c0}VԼC[څ8ο}KbbMU}Jo1`DC9b:8i'j!س)udm zLH>y 0Ho 's ]l7- R8D2(Ya#XE +#ÖEq,47sؤy?F gӋ"c׼+S]fVFg.rff:\k¶/tD('.#eV/5,&BLˍAgh7 ~71Dz5-U+ Kpf`Z+-,B\>)*CTK߾pr={ p.)1װ J oXXyJ1V 1T*OLb,>Pp'9Un>Q.S? a?yp^"xBԨ8}Ob쓚ľC/OynGVQ@ԈRk[Q#?ڶ›4.b1h Ƞb ^Ayi BG7sqBjsa,g~<{FWq.MYUA`G„앎?ۅ\g&\q*AWTbp~v~Sˍ幱]h¸7b^ÛN&IADslļ+r#B bREoIuǼ 6^XOX}#'w1;ՏX"{g' 8w(m׀BET>O tB[iV8F<졿foinĀ璂)Oq4 U+ طB?qqnMgBrF|]}4lS*bB"d `<<z*"ZrC(~ Dž8^9xe#"jE/BB{Z}~P ~s9M"GHj+ă8ᅡ, ?1*&1& xaegs 0:s 1`1ppaÅnns8iXgBg qڂPzwg>:U\}o? TA?AU)~la<ǷRz7pIo87*={WEoF!F5Ʋp FU;x1\Y㶙8Ωt5F=ekCj4qu#~<{sd p3bOuՇC(zݽiW*Q\^Y'ES} vof2NQ`,PV1aD F$Z6B*cljPuZ)g3օWxsIxp2¹0Tq+tnI',Ƹq^hwWW9m?7w.]U~QAi2v]Չ03Nv]Y5 5>NJi*QtN?q 0gxz2NN^C;y qT@Њ˔A N串a?hύU} S 2PiELF F3^_zsjl05p҄p'k۸T}^9=|`L-vp1X>ڏ=8.ǟ~ ~beV)#ahdt|֪U؎޻BU| Vy4Aa2oQP~  SθUH`J5[ӅYEt9h7ƍTy|5Y0Ωe7SlئNlÅtfѳEVlӢ{!ܽ1[1.f6(!CHh/J;]鲽~ǘE"!舳 S6o0P F$//s_`_ ]{ nxO::aO{ :ϪBG /`!{ J^3#6^&~ape\h7[>[nT봍 `}Cmyal+1x qz+K5 ]zu8N/].ۡItiRy?^Tya+5X_Rބ8# FYy}/A  `7IH==s`!,,1?:BTP秾])7Ź*`]Rq+hV'OӪ?g= ŹI;yl2~| EaΨxtj)DOR>@$c.Wՙ)Ne=p$autr0_u N>ƫY`1cF? Gt"Jv0n88dX(z0,ŠmKhP2Uh> z9cDiY 䚰}NGgq x.Ķ}f}cP1$F(6_a kؔ 30غA;T${rR~LFJE`)çIB0&}6r!f12R/ۅ/XLŘqLnËRۋp D籜h>2ӏ{\BW?vodXۧq42S=k|o(8$I@wʝt韕86GZSryҏgN7LSGv;;kdslǐ`1ڍ~cp&Xg(LSbGЉA:H#WC>serZ8UE?&DYk q 6J쓍7w".qˣgag; E5e\ @Aٛ)qabd̼3>w -"xJ/H1p+mNϣc*{<)3J,9-CDžD.BF/hb"qm84,ĔkQOYRU?me*ٖc7oܶFM+y\JhP*QjBeg@d<:/Օ I՝IucO OV yӈ8a Mh"ُFĉ JA2Hѳ}1$Vg"̪L`n{XΩGmD߁.w$π*x煡03YBI=kǧ&DΝ:U}btwtJ g޶7e⹼/pk?RעPe{ݰ{Ĭ<1r1/xԋg=K7.g; s?BD;}͹}xɨw,^X{uEW~Eu؈hB}\O~jz<ޠmbB l?[c -5F?>yQb<.O.8:!,c( "Rh`JفɉUнT}}.~{b\WיFdП1XUV=VHB|ТPKdTcxTJ)ӏ͏ev^!YvLEA72l Ǖ32ĖܸSۧN:vgd˪g^.U*xۅrw(7nzxRs75X*V_/{,M#6--de*P#ȕM&RI7r,䫥i{P8l m QΛ0AI0b@..'U?_/1%T`/CvqgqY,"CDQ0 ddM1g!Y U6R}Eҩ+>>- ɏASDSSJdWlB_=ˬX]㻴!Tw!aE^>D(P ae QvNy%80H. *.쟽$$0[!fi ?@/7.PWbOmdۅ7ڙ3EBpǃ</m5)S϶&=yVT[T;o)k-?ʤ-:8/D|3Og&#n>٤F4#  -:k!\Uq tbDD/\hzQNc t_iK9_h7.z!cNs1B l<\(aܨɝiu<,'Շ6>*)~?V@J)T~ЄsX>K8D&|;Ieϵp)r*ٱzﰿj7r"5V4;p'r²MJ3XOR3:V54M4PYX2g y^55{zTX]j5|QS1VM9Þ,D˜~lYRY>;S?lnTΞ5zvu~WoTXb$8b\j5p\c!Kǔ Qʐ?%Q,sы"\2yk.ha"nTkT7ƍvRk5 eVkrՈmY=Rυݒ^ߨe!j\*Fܳs,VoT{Uޯg1Zr<$CTV;_ N}c?jW0vQƍɶ<>s{"0eJO3 *F5*?ō~**q8k5b;OJ9]{X00ʥمugU?0{sqNԄ)s '>q>F7UIw~pT%ea7׏xi1rkSB`|;]}2 }&|*N$cK8vR(b5CPNA:)dEݯ< }~)w]K[ZD$/CkϣSM?KwSCLY&cь WkN.H51jDb_zis-O䁻Sf ߮ 25;TA#0-s* =Ļ*JP){.\3H(bQ ;yc^#y7F M$6s=/WX?T`_|? K~kỬ+kti>kZ|K .a"\2{HM}JU̱W5\FS5Tp)+|oW![f5l֘*}{KLjHM\MMk{XPyk™v=Fڰu qBK4aܩ- :^p#f7<vYXw49vmkNz.dEx:ٳh$tnvN n7scq\X35ϏPiרHqךB@-?tv5Q]*'qЁ >YkPƋttik:xY+[2(䙲K/ZӤMkJUK>yFLM+߫d@;#&qc~rP1Fʔ:sHA F)!@ .MB➯2nXf36MU红Tu"g.m8ԑPM㢅CskiSͨcvgHzN Ț M)C<<)dm 5k= ݇gN͵\rf'؉kwS!>b@J "gWSt6Zk!1\ʡk]>7BRNT(ʺflӎfZ—[ Fޮ̹\s~.Oykcysa;u=1oRR=?7AT Jz M~ccsՏVlT]Y4]{'#+׳}`rkȺw*k*QO&ws!idJ~6`UpJHťrNEY5L`ME,s)qoZ}lxAQ ^ɥ6/ =Jh Dp&3Ȁ㴌i:iyՊg[xph:zkZ譥t^ҫŜ]!47媉dCV4n_C`@HlؼS#[O587hb3g >FY㩬V;c}g#zZ_\&(ߪ5j![Jx *wn A_Mr7]OhHlJYff`SΨ{,v li$fk<̯ҪwIUh}{K%UI45AqJ!ijDoTKK轈%}k`zw̞2kJgXW3+GJF12iNZ-ݐ5ﰽs0<朎B߷$8rwVӔ&C:U:|dy۟tSR}| ؗ%fYBQ.{E/7 75 ؃Z.l7"^P̻ݻ`T=;77qR)b8x8tg(z0"=x_ | rk~|{Xve6"LX,.h.lO,Hőn׳s.ك0_"d(^jY(uG q W:Tyں+=mY檈@E7x jޡGnss)s"ťr>BjL= GTL917\ώ/M*:>Cj byvvDx{g{fD{,mGE G9s]W孵y/B]mSCs27CrPg}F~a#/*^Fo/6ڍq#8Ѿwx"7*C`3ڧFS $3 Bt1URaGo7~%Dt< ?YCA}*+8w4Qҿ[v01ggǣp0ZF(*)%( qo]h(G::NXqG/+CbcbVaMK:{d]Rhm Ɲ3T^D_'GQ DןvSQh룢gM&+aJ;` ⼷x$I lbz5"n4r{]." u>VQt/݅[žX\Ea#7bH%O9wS@;yUܕyQ{;#s|ߗ#Rv)uB+_.`XJeHARD!+@q.)zAkG]Sb +f _ů?bs!Y9YC{O=#cFҙ {blIx~m8>o=a}Bz|OayZ۝Xj/Z[;?$T-G׍wis>Fۍ/Qf4e+fWQ%;'h*u1"dh5>]_sfDI ]E8]xzC#^ (Ud8<ס?7HO86Hn>Yj>w0"Ɛza5F\͸a:j>9kuAJGQ 4 l* qleڤ3R*3C63C64拳yU >x(KOnm M_u=[1eY[DLAW0|9pL^Z2owa+D3Sިj`3(dw_n~qS{U1~QF'+EWBS{KWXzzh:"X .~REBxd\uJ]#ˍ:QaoOzc}5y>[  'zqj|To|@vNor{>}*⬸~SZ孴Q~SY17\"ΖVpYM7]띞c{b |6o:>ՅpUfzuފ*+ůД.tS#-zlf27ڼ8qIߞOK@8ފjY1뚩Na1}}uY_uD~:ś ZD.z\ ,1RM'7σ|C؞Ux,!b>4:YG ߥ6cLA=xlҔ҃Y63!VjQzzVOY!z"B*J<+ aUB>TOULI&A|x"fD(aa;4p;65Ş5pKo*W.d6쒻nDfum""b-EλhX|\,ޒ9bَoӆTu6a9&\Bp(YC~*!-A#LzpabD~/ bv |p-X^၏2.yZnxkxaa5'MaAw(*LO<.Dt5@̀#ʢ]mn_D"d%@+8 /VqTWE#VڪQ[5j3FhԒo%{Y+bwޘG3k#gmժXUK^UwVVZzk6j3ֻkEVQ( oLC;ڡ2a+0}v?G/m E_;lׯ?I6 endstream endobj 621 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 625 0 obj << /Length 2278 /Filter /FlateDecode >> stream xYݓ6߿u/̐֒,* !˦kfTǜ-ӭ=ƷG. 2Z?i]](qCb"Δ]msw2۝Z f?^A"]v۝̲I7%=H7:>nΙȇìS6IevtQ]ٶ! 1U:yeob  |rwĿy7Nqmӻn;RVL*A*"vMURylovF6-ASbqºұbҰu\qE[5O{Cmh"ChiPq}чn_ì"<!+T6Oe)@}}$QD?q[yb"doz1z4S1ږ}?BvP"aq:,"̘.fMSSWH`$g1՛7]M>"jG1|`+9{SΉ2^?}&,Kt9>{4M[/^xhC17~.ь"٦l-xv1Q(\S~ VIO.,W|ENrk)kh>)q?4{ya%_ >-vL)#3G*PyHܐϕ@3pBFtO%CsDRg@gDةv#.H~ohG@ǷrrT .>\S;3|G{@>FC6G|ҍk ߏK,D)rdYs CČ endstream endobj 622 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-biggerdata.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 627 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 628 0 R>> /ExtGState << /GS1 629 0 R /GS2 630 0 R /GS257 631 0 R >>/ColorSpace << /sRGB 632 0 R >>>> /Length 4071 /Filter /FlateDecode >> stream x[M-m˙ˢH}mLj {@Wd`?9UJdE7*?}|~7_}HGJuWoJ׷C^bǥt~^E?*c}F?ۏ~ϹO{n/ۆ{|C6!L'C ?g[ףOv@ozM#-Gے~ ےvLe|{\{q>Uhϯ~!_>O߯!\\GکSuuOVďt*rdyBOO#thGYTި Y%c`o_ k__׿{}֗p/~xqh#ӘX@aON1e8#ّwzʊ]KVp풵C٧i׫GK6u_䔍]{wR#/e92wahWuW?ٗ/k;J㧦JBY87HBFb4 eP˾M4u?2eQkfCHs\Gٮi@]ȪS;ޑJ wc)Dl)?v:'Ⱦ|lD0GDQ/kE4W|DKI7 }v jز>pArH~P$V(FݣSC!Dc`u oIrw)׮S!(,]a")q T1n9L)bLTPJqI3y`\pZoR{I;6lt<-o8h xlқ^|[4C P$+/yB9mI@-;HvCJPasg5yIǛ9'{=-`.qd٣&ˋ 7 c7Er$ v _VA66d%liߛK։'l{pꝜ]2ql؞9iL#nu.u0%"#ة"тX1|`G&"P^cco)D:nBC"aɱeg(F},Ҁl`t B~_&ym*HTA6cd`/-{F.dѮT`/-mJ|NrF"u,ek2򀝭1옄o"hN0 dgA3x L=UD|^[pz-S˞DE]-5wZLv2ݝ;k Jt'وc9 āk fz#Fږ5K o ~\ fD|T[sWh%Zk.d srBڂJ0 vF5P:#wBT#> d_#bO{mIHvbAJVl{aa &4 :5g!} ; YVƲvgO͈gY+ ؕ@(LW\TN0 bQ 07;ᙅ VUp'~ #-TFȷAJjT38^D\/ۉ|{A7=No@Z 8RΡ|;woC5)%)yU28^;lme5-9~Oۜ7\B!Rp5%PFfT0 KAjqd. uSI 㒀cVO%h\G  V_\e4%. C`Ө i\p)U. %O6 ,:pU`45U8y bݽW?{)t4AfEF* tPW\Lz/t-@@ROmKZ]>\mpQwLaGg [5oPgזr{c&np?ݷ zftUGpX]T)W R}/A,SsHeIdunƥChX<0.US"=;*5= k&B:PbCcFaDEAC)=ogeuI~zj}{ЫV53Oªw, H݈g$A] =Z10_HwKlV\Ka4:t+w'K݁g}?]5~~>#!хlFF@}?]McH#9ʢ")x/^!+xY>`5 g+i^Z7$G@}?]uEv}UNP<`k 'nyVx,FS 9JHʣGoDHWWaBWxIuUd 4pHUtE/F{ xEfhQcz}1mB@PV+ 6.9dACXWnU1§P#}0n7N<0aYz𕨲Xʌ`%\oHhpau-cn> xg}Pc3dGR˨cCRAjߓ)M0K#~;ڭybӫ1Af^NZ`%}6e&<'kpɄ )YjsWqu0a(Aw{Pe_ܲ=3=\~J^VRbhܞݶk<ͥ߱i U 8rcM*U |AjD*n㝹Sh,ƔvB&԰vpčbHvd)*?en[;cDadF-\m Sz.|F5*^N7:+C^VZ 2Gp 5ZJ1Fk<罧g j+ˠrCݬ&n(>qs;;5h >wTAsHyڞS 1q~jFdc!lH-_&*>YQ>>Kx endstream endobj 634 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 640 0 obj << /Length 2205 /Filter /FlateDecode >> stream xYKܸϯFFH( $LN{HnzLTjug=^D*y;/Tx" KP)S)ѿM s{h>PFLZo~MīyG% KyAba,7A\ f>FD}55C-Or"zYU0nPϝTcǚߵM'Pnde'88L9큱D OjTun7]9i-u?MG9u:Hj&=mTBG"ջM La6kS昹 !&"RHU{?k݂-.˅JTT =B)zpl"R{, #̀[Z^7ē&?`j AKXe4*wY;﹮YE"D]v.׻_nI4E.Aa Iި!YTGx[ 1 4!uJf1t᷿RH] U#30NK><8kl +P*a!/t@EK`: BQw/dHFߊ1؈r:B X ݋"i?߈@TqEF.|g`jVh 6̓BhWC ߆ρa =VFE"fSmKpX*gpjWQuO05]@#yD_;&[|  ؕgmPIB9H'~"~*Y `{=W,2:qRY--z]N%VDCOҧ/ɜZ:ENd"Gȡ.IL,Z)uC! &"ȥa)JVfwKAST|o>6}=<#>G| $*GrgSVU1  VZ6!&}߃V $GY' o/ɑl/Ӟ0^J®jlD-݊X0sDzxib*!YyP_:nM'+t$bHwaqe0F%y*8;њW9mN$M%f[>֙8`}y`Weu驖ӡ\PrɻQp>'8~WP5ƽ-FZ w:U_$ov)bQ\=_5~sp~h5kӽB^aAH/Ԏ<;̷ K~aѾ$3vF" vҰRź6bX*>,yz[z9yȄnv 1v߻0 g''y ǜx3Dpt?t氣ၠWX0sŸBǩ$/ AF!ӱ!ĜY %Yv3$̕xe*LUqF n"|z'2aį'I,>Y-<>2ugXE'U0Fױ.>e:; Tg/PjC, }ӊtX½gy 9O10]dv9ִ Hاv,y_-Q EH4ObDfpLӑp3\om (eqR:^5rOB]ܝ}1:VĜ)L*E騹>!_b"ǬVK8ߑg0XǂpϮrGaYsh|W9}=" eH~P;qW_0hzuFZzˇ-u~6R=L?ɱ~7Q?eS8E"5R2#J]5Sٻ;@w!b8w iKE 6/\Ɨ7+_<3ob/bA4qɣ #= g:qP\?'i*,#R &u0 endstream endobj 635 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-aggregation.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 642 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 643 0 R>> /ExtGState << /GS1 644 0 R /GS2 645 0 R /GS257 646 0 R >>/ColorSpace << /sRGB 647 0 R >>>> /Length 843 /Filter /FlateDecode >> stream xVnF +fCk `{.(j$ڋ _KvU%{se\ޜ~,.קšsi my|X_?->Ap_n#y5FR\{xKC:=>~y^4P#aaϙxK ?VO"(_ƪEkRFy'f>WD &x>>G?J7<՚x]j v0 endstream endobj 649 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 636 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-aggregation2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 650 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 651 0 R>> /ExtGState << /GS1 652 0 R /GS2 653 0 R /GS257 654 0 R >>/ColorSpace << /sRGB 655 0 R >>>> /Length 3925 /Filter /FlateDecode >> stream x[M-qϯ襴P,2 0r - ySޮb,ȫ,fޛ9,XuN'~?~_?ҙR:߿?o{=8ξ~O_z^O:Y191;~e,g[!_6$6ookל\֔9CU!-L_>ї_G Brz~xZڈvV>W~zvH?K;>ǧ>-?7̳fXE ƾ^6fK:fb&_AgGg_}_p|&l!o.2geplez`^ ?"fdG-25,'V3bd4fe?(NJy$ _9۩i(N7 sjz1+K)u 1+qCDC{r'^?DҟJ'U#"K44:kehh m㽝yښQ%nqC'EC"h'+vE;ao {"N#=3Ɖs'(cd ~.{Uuovx0`SFD{疙8"SB934Df4v*bߣ*b7hX;`޹=RF[*Y! +_@E "Ul"ho K,eS;w4v3!"6Kny4e$fGYy b3Coƶ2Cݱ8k&v8)8-x)taB Ӎv،tvHjL]400E#=9ۉ,*1rW!N8n|_Ž D ,$Rh=FM%&;$، 4WvLAk@0Cd`&v4"Ȗ`!nh4wE5] " )Eoa3(ȁuG9B^LPdfU. p)v"$MbAi3&mzg%:hLFl$.LD˫tӝZ$*XZ{J\ȟ'lsA~)F$vcoy@!lJ$P%X@lite;Դ|@ydM 4Ivŕ@8},%>H:=l^T@|٢J#4=z泌1|uFxXɢlQG .ZmGPFup'Y_B'wck"{zb~ɦlc]mF"];@(IVjf g i2%$k^P$7Z~t'ʣ<(IG'yա Cz_ :%4@i^d$A@Htmr']ubZ$ldR^i :|rDM@^<C`lј+P+H WWf7t>Tu[D2s tڶ@ghpL`1ݞbKSbo5e撫=IJ.0Ԡ A/ؼ<.Mq0dLL"W D$"*^lRsBY q sacf%޸zj>ڨG9㙍8M<-wyeI̓c+'FrHTHPTb~ ,2qFRӚP%rIݔΈt!Z)Ʌ7k7ϒ5AHKKPȑO"E!\C-]-(Nܣ;uA!vSfDD}wDઑ&u?}yyQȝY͠4 '7\GUb%f[lqB\r7\M)T1RB8N"M+Px%9{m O\(B&0M^ȄD#k{6NDPsFػ)ȚB"téG~+A p2w"5&Ҍ:pBp›6h+ P&+%L;nodNn\{&W֕BįԵBBBpuM+3 E A]5Cxq`>KWbw/Uwܣͦ|B pG?Bp(t'"ʽxTЖ^Y5eĄ&RVn>/2\ ,tY>@ ƃ J@/)w[)1e`;X [!5e}W0a5}MqQwP Tc;U0&K,q008ͨ0T0؜ y_!{[ \UAX'7E‡j?qg0foLm;ѾCUm3WJ"ηX/aB"|wLݱJt5b{ eй>*Z endstream endobj 657 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 662 0 obj << /Length 1603 /Filter /FlateDecode >> stream xX_s6 ϧɾ,zvݥus>(lk-RҦ~Aڒcniv a$O O~={iD"8x&<19'T fLh,m7m s7լzî/g$SLsXř*)Vg;@,L<{"lț='M'Ô +VnԖtt Q9o0l z-9^laHPoL qQ]6t'bT-u 拰6oʠyP~cA@,iӈ&mF% m'B1cHŶٴ Vw W-Kx8q TU]լU#p{N?m-2Ǽ8\@2E%lSF]dDcAsF>Db 7|W:1DϪvS{N 7{C2/DT3BPyZ@; ξ9RNEI?HWAMcm&פqQF2-M"9z}U'{hdeZKL~02 ?ٖ JJa0h,Oj~O,3m^|hqg ?Ұ-7(VYwۦ>ݶ<S\0QVOwwrî{2I~EOpsL(@|z~̉eͺ SH^?/rJ pZiwWWeX.%0۲lb1bĊ`S)> /ExtGState << /GS1 667 0 R /GS2 668 0 R /GS257 669 0 R >>/ColorSpace << /sRGB 670 0 R >>>> /Length 3010 /Filter /FlateDecode >> stream xYM$ _C-H Hd@ {d流Լ {rxéZJ,Sr|w/ߕ_>/??xruy:RK_=(ǻY9<:V/ϵ~Ogx@J,v/O^m^sm!߿{F{X1Ӎu93Oďw񻉻oxfu9qǛ߾8|}xegZʙkÙb%Bo :ⲿ~bǛ|+nA/26;Gh_;NϏh֮WšA—fn!vZn]0`lXN^Nʅx頸`~VYm6^y^jC_76 IjK9 ^l~c^YN[/mYj9/ѫ"X`W%tc ^ ūU=HW ^ ^ ^,bȫ/ /X.O ?fU RRRRt(w'sإD*0el)JR9+ )ڕOquRJz1&\h=p~EmveVCEsة*u1y5!*SP+ )jgW)ٔcź@\'\'c&uuuu'A.!'T9\@^\'(e(Z5? fJ3~WtiH/&(UjT/? p =J3hRtjp/Ё)( ;K5|iZ,.M?H0;iV1jdmM1vTz.uEBf̋!43G 0}hƛ@3bf(D m+^N/-āXc D[!p85|YHLnhV W5p]BL +Q!H 2ɤ|Piv>`DZdۓ2Faͱ fXpDBhOǃ]40K鞙rL ?}"?3D'wt _Y-3pdkk@3ysj>DxW6Ux9/+l{[hfuGLFߐ\&x/dE@ӸZ)QLLcfGHB&pv+H ",\j g{Mi \XmKx] A#N&мθ#aE䜠S_\ GDޘ2b쌱tsG$qR4NqNm7 hF po3 pOCq*9p 6E| PdӴ^L&Q5$fц' F٧`Q{siQ!R.V\hՂHQ!`TȄ)5ENM0*dB LHaKѪ#MI0 tkah CѩA&$5|p < c]HQ]+I+CKIߊKXI%fќ d.kZQZu-) 21ZT=J3  GѪ LA&LѮVE"?a 4Kqͪ!NE]KKCTv-- 24 L({f Wjii SԵ4ꔢ]KKcA&ga )-_O4-ZZZZZdb*ZZdb(ڟhA&fA&\ѪA&LQd*ڵ4Ȅt0 2Qt RZ\--m> 24O]BOmBLH ]N-- 2!A&$d}dBiPA&)C&.E4%;TC"_O}CL2!4u萉hd_<߲p<ȿ\/A[Q8gc[b)DtY^,Kk#OFD!^6XS7MEGSϬ`4}?=^bݐ DApCySRMT*#Yp\t-L!4c+& "v?,b B4F~T$f4]4{t0v3:*U7d4{ƌ_ຨ2aA2Q͸AV2Q 1gES/eh*]8|s6WP4Qh7fTf ,-K6dbؠJLfL~FT#O]Tl ,z2A&Zл$96O ߨ&AmFS,;6ąm dS>6Qx6 66`$C+Q0g$=#Cc3 УVXvN69dcde 2coL0(i'J{2 endstream endobj 672 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 658 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-groupingAv1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 673 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 674 0 R/F7 675 0 R/F8 676 0 R>> /ExtGState << /GS1 677 0 R /GS2 678 0 R /GS257 679 0 R >>/ColorSpace << /sRGB 680 0 R >>>> /Length 1272 /Filter /FlateDecode >> stream x՘Ko6<ڇ0yu0!ȡpE~3ױEKy"sj\_?w~<1&gsf~g[g8e"sr"~4"?RC߶lY$gɛ2:ۜiy7sxM.§zvj#Ruzfr. @))ۢNTY/f_zDHrCt#7WDO> 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 659 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-groupingAv2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 683 0 R /BBox [0 0 540 108] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 684 0 R/F7 685 0 R/F8 686 0 R>> /ExtGState << /GS1 687 0 R /GS2 688 0 R /GS257 689 0 R >>/ColorSpace << /sRGB 690 0 R >>>> /Length 1250 /Filter /FlateDecode >> stream x՘Ko6<Ƈ0yu0.CC8E ?е~gHXcEKyF"sbȜ_ӆ7Ӈ_?Y9o>K2LgNdNpO O/#E;mwf6Lr,͙~3Weor>7{oNd8}]/DW/& `.Ǩے6wgY8.<-q?Gll-}yvcnzNJl~3n^ЋC^wVxN44$>񳙜m"bK0F{G/nFr\"ZDR48w_xg]. +rXbIm-fk5kȆlJqdE59xpEG |:> 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 695 0 obj << /Length 2862 /Filter /FlateDecode >> stream x[_s ϧ[5O'wݛܴCfZ&O_dIvٽud9KIxw5Ox\xrsY+8B$7͝^c?"m_orY{/6Y( SҌz+z3﯅MH҉AʎwEhGR,*"E.8ߞ懢eF&oNDh.35˸N\2*mYyvߴ(vX/+Z"H(KVز4(D]/kɪIT Uw@*=ɤic~WQS7>ȃP詻Ye3l.jЕz2}3X65Nenǹ +Z%UeBg&:y?[Nq'.x7WBeIƍH+'Jv>H7& O6p9j&~ xto.iyƸMCqy *%{wd,758: Z3%;r'8gβЩ٥h>w'fF|+wBsLޖ!Cw@[W2`hr9۲-[HC'2 \: y~3,x䰇6?|-, )k90?2 Gzn7σgᘕAQom۪ 8GCjA?:Έi=+wW]K.c=x!`O( `S2 vfrj{WeSLŨ5[ןK @MG5~ldq4 ꪥ! ̢ÉХA Uӵq*gZI`Ql”Se3ICѻRY1)`2 (%#5&K+aRD;˜{e%6?SqƵSԾb7*mnl^io}a|wEY 's>[xlvsKcM(ʖ:Pa0>H>c;mEESˤ7 McX$ab.jֲD&HkQB~,De=KL!3 ͉Ymw:Ou'{06?wEW` >4|Z0\!#Pb&nFp S1 ?ʯ=nLPu ;ktn#d& w VĈIJ,;RӱP;\\aS1YW<-5UT a(\Gi6:d4<%&f;(Ot9Cj3،vi3.HZ Ņw3*q_0Ou9И[oN3dRf *\Y3d"3PcN+hг"LmˏqHG>=n~ 2apn@-}l#COd"(l RYnjͶ?Uh碉<&D(pI|(^=ntsM,ŤrnSlѯ4tP8~zy28"S·A؟i%g}i_lot76K.X43ҾĹ uLAҲ鿝ַTf}g}ǡ؃abד1|!BTǁ#CDlPqrb6}]VI%C%AqwA9r~_esƀetJϔ\0P NGLm[ X zs }0 7&'Wo5u8q2]bSv%0 }Sc0Y`t6 i:PRf`T{x5v2};4,+( Er 5W#{}Fg^VQ3Vd⯐@T!u>g?Ϫͭ)`Ѵڦ?4QWp-&,Өqr )}r-&Ml bfkXfEb=\i'p{E";_xIwe5k5O/iE@S%hedäP#Hb5Occ^[4덯}ДD*v_HH" Lp O#GQ3gbٕ_Qh1_2D4YQ +^hݎ4td J E+%^QSra14\=)_aAi^th}2n/><}R eN@@-dN<39?D_r2q( s CNf"A;L+s˃*& RC~`Xtz{P cIԬ/ߎ%5ÇL~xBbo?YZ3K2-D(V/*Ǽ_>bŌk0k7!*$͏+-Aٱqϊiv _$=U̾t,徊##n@au PULiNIKqag/%\k\ZT6>OM}Gô{fYrAo)7*6vOawiO|^#,/})Xxbe"3h?@BXgإt endstream endobj 576 0 obj << /Type /ObjStm /N 100 /First 883 /Length 1375 /Filter /FlateDecode >> stream xZKOHW19,^HI f8OC;جF+&Q#]UP-bm4VhNpB'F7G%a^Ԃ-|4"("XN+H! ʰ@ZcOh-FXcNM`$(,>Ф@XqL(cd`%F (ƨ(XXˬ(3D @Dk€L8aa} 452+" k*BZ(#!e^1qB@< d  z"x6a,ē-kA d9P+qƱT"Hpa9 '\`qԅ8GìCR#8 Q'N1sl$HeށBBN3=$2C4B@DN!Hsy!%~J 6UR`Iip`0&(Mixj&O@j2@2 k3 V/bamA@a@ *0A=-P^w/ۦ/ΰߏ< gyļXȍryImM iv/Ns!7 RmY_&{3. 9kyI}pTy.vUyT7\$ mgGpr<+O,ϲj8:S׳iGeյ2@rZļ˵@v-хFhڧ<4iϧkt<=7WGxbxtq&и,N^vʧػ!'"^sdty'khO.o')+Vǣ?;ѕ ƉD $U]="b7r 1U+/MUyMa.F}[m|n𰪍cj#mG NZ2N^';twD7k2~J-vD8)}mmڋ]rYjgϩKۣ˅xф_0¯-=KK-0B.=n~AxZ2N|Xmӽ蛻VϷG?CKJ&أ^rأNE|(&X~@Gka}7.+ dVms;;+S8UZO;oo6,L-;mKii8 >!SM endstream endobj 700 0 obj << /Length 3272 /Filter /FlateDecode >> stream xr_w36<$y%Jb_n4˲ggǒ]2q 4Y%i4Oxʲ42)sN$VqHɿfJX7|[J7>Eq?_ad:\q#+aMZro򊧙a_ 7WUR͚%?]^Yf?aZ,amܮEPMC bPmYokYh^u?i@L1+.V!6/W-.]/$LUuJE8,&tdݯfesL~.]p %\3gEbky2\`v+d0+⯿D)8fSSZymQF<<3tDIע`$WBZ&EFT4ߩTUŀ;m趘ud4ӧk^Wж(ǢCKoشgcY̌Y-`.^5xnQ_cvuXQҷ[t vzCY8e~چzCm2B^.2!Mb!# Δ'ayQ9. ܸAN^`3x(<6 U8)Vb6TC~ݯ+fVv$`_2ķ 3RI0 G!<5cƩ8@AqҒgwe`f] Gԟ Sl 0@pYUlW^B)fwb_Pc7iBT]hBtPcB8Mٖq:߮ B:R99WpA38 LKj7z؁c:fqfB-V9AsD(p͇ƣPLtf.6׈ X.B2n * :(аN b\fSN( `CNB:cqFq>F%V1eOX u|!_M) k2DK9} F:Wqs]l'4tM/Uj-8T s^,&QֲT_&PCQٌA4)cҸ2B\g.,CS,{m8B*'XO}60m{Ou 6nh)!C(Z:+}!Sn]ч|Bև&,j:PalÙ8/l9]oJOdxSDټ2Ztl'Sոxc|^NUK0=tGЩ1:_ \q9u#[fcǏF@+ut.mނqK/`)H ǚ?}e w U 1~?='t7fgAW?GzUz8%GG:})}ׇOP҇3gǼͯѝ㇏ R@cшaQpн+iu:BqU r UhT1,.4T;#B 8 6~ ˲,fT#RJ&hY&^>hfSNMd >B7=3 J6p5|].;(6< atB6tJzXIB6jЋǚG駅9Fъw,4J yP)r/aFK_lF_7F[d0` ~btH_#Qb4>j0e/i0 c2b0_uG!CETڣf򥔂ė-|>7*L` tB˲ B/ -!B'xr'Y-1O8.z壆8mr*>P8l 1Keq0 ~_c`ILjxE0iPH&"5,U`;#Ÿ"Nn/dlgg=|>%88Qqҧ`LHkKc*n6~1>}lkwIV n9rz`CFp)2bͭSa IE q 0Qk ey(e2>$7 1A+coB{r͙Z*UG'K#{"I~dAF e:ɟJAω$g,zz[ *RY}$̈́a4-05deiM;aƶ0/R7%64_k^ )BJRb|<}kїa>§Anۜ7G},idžulg4sBqA !~yu/DX}{kn/U IO2{~w_k=,A|XHքl|Gs endstream endobj 705 0 obj << /Length 3666 /Filter /FlateDecode >> stream x\K6ϯ2j f7yI2AE`ն6XrCdOIds0L,~U,Y&Yw|/iB3b3KDfhAd,]$?fƴI}(?ҿbv墸WY<;f0&Чﲞ7UsL ̪+'r"I2x621 Agcڑ n p+dЖdF}x h3\}swmgDi4dͦ*nN4-u5VA?/o?I ;ݖl檿I(X$$B0`a ,Hoy}>cKv…S`,XLa- tϻ_4ux7.q xJ'Šf[t*j`:b4.Pu0^侭=U>7GS䨓y#sjlFJeOJGxCE Dgdny[ hyUv9.DNBEM cZI=wZr{92EKnR/A_$ƺX$^x7X- |o0<V.pm0}?g2{y!]ddM0A'ٟ@dz<:(UR`F2嵂H0M ;¸D)qtrX7M̮m.R*\hغH <38C &egb݀A&5O *cS7Ǔ&.hTOSv):sZ6uF4@ ӕrN? b=)዗ adL^+XEx9!E )=(iv}5gPv8E9|8'fHH*&rk $=޳g|u :f>pi1El$*Ef|o^)`.t~ɒ4~ ٣u ?7*b+;d)%U'0$}6Ų>Xesj3TkX/u!z|dė퀁MaB_]~{c8kҗv,; Dj&F/zr} [}}pp|| ࢁ9PLOi>rѝNA~'{s=ib-`xF/Μ#$1vGDŽsCPØj+I.bP,ݺWxPvYx.r!d\G3`GRH̠դDL'hϫ4 mWKĐi[~aPʹϩ^ZC`e+c wm`Uc$NC猋:Ry:^81kbr:+-.@$gv'[cK4-mr#-DS=9gUz8!g=kBqoC(~~FZ>`/s4\d7^"[Pw h|aks=6` bBuMk 惧_p E`Fz~nUnf Z!MF:%!A2PW<>C-hLV`nfʲ,Z*m2/]t"^v N(|ƄEA"s>hn[z>/aB]b.1BȘ| ͦ+.YP"^;iJ)F5c"P D%Ā"@MqX,][N wgƬ7h- r~b.}̏9  * )s^pB@PP3Є 3+ p4 ~_֞qЅVs1}zG7ZB6&Zs`0B`kyp~T%FYsO@pJA0|~ąaY2Jt og%DfĨ SU 0-PWEV 7/ z4_.OQ8> stream xks۸_B7BHǤN:˸ EDIw Etsk?\,ž/xqsۋWo\Xdq&sj)R_-UꢛGcu_qꍎ$R!WKhs pj)2 #ښGghEk_6׀q&W=2J+24]\m# yW$ZX1k}M3pQs GƹdlE&%$R7 {- x>šeɼ1+] -Doȗ$RfPF;-q^$Sݴ7eUyICZͪkZ; eSp(?r unVl+Q,Zf LZC u̢݁ Qga|S*"v\ 8M\.*gцֺtHUN驰aik2a{]UuiIbRV'vH``. \J6|@UӒZ5y CXn{7]ECRmh&4 WqQEMw]Q9bP0ba@6P]4iV(*(PHM[v` -G+$#<)?hE9e#PSqWn 㿞b>g rWefd;T*4 5ב/]dlX[Jx &D2,q}EFAg76FxpܮVSXqEbILy$̰~;ʴ:os9{?Gjqup?PAy [ԁ1te,<l]r]:kR @ZC8¶eԻfA]7]Ƀa ;%FEO>s_M X4sK L8Z hπc22vVЛ$j8p-q22/qX<"R灔!WT:)TrA}qPEc84G$Db%4ʢ 8-0JFo9`ϒeÍM熡Yn N~ s3w%xpCr-3HgvX)g_5SNF?k$:AG\|Dq 'Ԇ`9 9c5u@qGX0UM&K~>y\*dlW'KIQRD>@uLp|| W<>)g ָH}vhXRuIη/0䰭8h!ӚG,.B&[&}SQEgF4 /@_XH _ +!%'s=K̖ia#LD 7**zjQ6rBezRC-%V 2}& Gĸ c윗˗sGK̘NUF_pP.,oQ]O4ʬV罛&s ʺ%;6kޛT~v޻wp1픰=s#iޘ75wC2\oOK2(VfthaxyZzXRݩS)6npG;% pC UDwT+pߢZCBLwh ^jVk_$|W.L W~PC}X 4uŔTvf^U\Š2!p~PɢH6!$ۖ7.\"tm/Tia8vpPM=XwP|N7pvM=.03~I"dE"# tv#,B?-pw WfV@O>82Ntzc8~33db'4e5(/}੐)´A&) ΁{?oʢ(PZ w|ߓEe`hs'N+}Ν@B6U?R0}%$eY;cY&pjWuYE 4Ώ?$$?}%f`#g`dB[> /ExtGState << /GS1 716 0 R /GS2 717 0 R /GS257 718 0 R >>/ColorSpace << /sRGB 719 0 R >>>> /Length 358 /Filter /FlateDecode >> stream xTjAWQi{H" $3xq!C~?xM+(ڑ/ޏ?h:q4o,F1p0^B5'UoirGb$]S`?`7ؕ/T݊] |bX̠O_ &urghn&p2HΚ`6beb$KZ1kR榩X&{T'1uLViG endstream endobj 721 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 708 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-anntrack2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 722 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 723 0 R/F8 724 0 R>> /ExtGState << /GS1 725 0 R /GS2 726 0 R /GS257 727 0 R >>/ColorSpace << /sRGB 728 0 R >>>> /Length 369 /Filter /FlateDecode >> stream xUKO@ﯘ#=l^A4jmpB06FBn>ʉLu"$;y6/%S(c >ߛJLg $rw+w*.tA(r6`x <`G 05/ '+hrrHlÄqH1lFQ\ڬg'" &n1do0, E KUYlI"r=`AP|a'۩RiU݊a`2?:~Yɩa$\#i;ѧ ӧz ҋzQg,h4>&4䌴9rdP& endstream endobj 730 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 709 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-anntrack3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 731 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 732 0 R/F8 733 0 R>> /ExtGState << /GS1 734 0 R /GS2 735 0 R /GS257 736 0 R >>/ColorSpace << /sRGB 737 0 R >>>> /Length 1107 /Filter /FlateDecode >> stream xOo7)|L?BڼRK)T";cfKTrBⰫ̻^{y~;!\^\Av{xjK1ޯȿ6 B m.@6lQ_Zw/•/W)*sRJE%}>!ݩIo4ӆr !BKω_f;yzr{0'hs>uxz<` g77rtdGƈwV'c밯þavں"c$c;pYzF 1b!X#vz.%ϨRb,(Q#>XIQb*QC$Y1s8*QQ,82'UP;$yE Y̬8H TX Yo,G3ҥ).dYjzf]ҥc5Q"7LXP{ԖJ:.=,@R\s!K~pͳ憚W~Vj]t%F$rRz7%Kڱ]͐ssy s4Xs8LpaÅюMX)N YՁ9.8 Ȗ_LC\0~!0&ߍ`଱;0(: Z$:' N1OnІeC% #}Vy$6n7rQ4g DWZB~׈PʴNePBFaXkƵ``kFoh8ʶ*pJjx!ʷJl+Ƹ2b+AFe+}ƹi k% t KINTrЉ` t38sgA'. R tJ%vp;?^c-;E{6^ӻvc޶DzpKe(^8APA N{-{{% |`ko8 * j! l+2b+Ae+}i kp8hXGкbnF|l5{b6ÆϳH4,Yp?WX> 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 746 0 obj << /Length 1659 /Filter /FlateDecode >> stream xX_o6 ϧ0Rsזm@݆tȰέϺھO?/NdYyDR$Ef*bћNN^kq,2,1FD":]DƧk;o6v:'%TTEsn6y-Kt}+'L&y*9-MrЀ| *Š8U] <6qXEGmAv{&m;?ۜD6<dUbj`^ͺ UvLfAYԫ(`ĭVu ` >lEլr)k=J5lhtZR%B GAeӸ+ .afXǻr^&֯o`U8O_\5͂U?}: TFi&Q9 %(UQkѻ{H)c"dGs y"b") 0pn &CD^kpe)gൄBw//U'e2Q "L 0mQ~L(K휾e3ͺh{~Gғ5{A3n`4!_gHIuÈ @j1_t1aPnunc/Y;Aj'[:uV@"O CCMg<=FBx7;~ʅW%ɏnWmEujkΡRv=^uV2* `& $!PIOOG&5(0"kX'?oTrPxs>R) S~=1=z~u5M虅.Jg~V ŢPC}z:GP2Ws[S :QU W ԉq22ID I::K+j/0P+d2kޕ OC.Ǽ(*(h7_"W>KT}K$5<|^8\ .z l3ؗQ.PⰤ5֟4 15#@ۭ8BZkjN H4`% pن0\ O[V}~<{yI8[ :gx/G4,>_W K|Wna4AΝ-w]Y . Ы&Dvs.Mp[4~Iڭ0d]Х!z%-ɝvC1B^~a8-v\vxUqw@YӖ/! ylZW=/J~ʔbq(`di g}D0ܯv۾T_0Py.vA$P -Zh,*f.cK3*MXƯln;pjx)88V)-sP C=d8X:_\f[?Qalj9!\9" t `e,"SmFΌ0s [Oe@*~Mhhs>1o *NWA8k +#hk-}&#78Zم2ybG١˿)AL,UǘIu?#& endstream endobj 740 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-anntrack4f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 748 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 749 0 R>> /ExtGState << /GS1 750 0 R /GS2 751 0 R /GS257 752 0 R >>/ColorSpace << /sRGB 753 0 R >>>> /Length 540 /Filter /FlateDecode >> stream xVKoA ϯ190E AVPBiQ3{vJ98gXv׽8XJ(\Oz  |tڗ/$9UV:%Q˱R2DІ>ݿnvݯ酃0b8i,-1nRN%vCI''~TuHfY9KgNdGߎjZFy6{6u0@?4Pg4Z& A5Fip7VI͉mc?:֜y<֢e4WŘ:%hA%XM~h:|kK%o5|s>NV/!6&iicי:*J/.-*1=sk,Uk&Z&bH9rɈʦ0Q5*L> TlLT =kkF5Y#*h?5̕eww}l;$3.RgsƩH1 o)J-k8{ endstream endobj 755 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 741 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-anntrack4af.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 756 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 757 0 R>> /ExtGState << /GS1 758 0 R /GS2 759 0 R /GS257 760 0 R >>/ColorSpace << /sRGB 761 0 R >>>> /Length 533 /Filter /FlateDecode >> stream xVIO[A ϯ19t>Ж**H'U6BxGn$c-vl怰m/Nfp` !`(g aߒa").Q?`%})xxPbץq}o^:C&H #D/iωϺ}&sweCBNtF}p90lWهn4zҥ̩1{wN#ƅ>7v*E -vC:~ ׆* T- V֠jIwY>i!f]WpˎXSjΦ«蚥TYrLԁmc-f[2NhB+BIH^!U/:Btŧ1]x˝X(]zm깅-!`(D}HjtAD0d(>i鈴10y?H~ʔէ8|<~^%]\c6 endstream endobj 763 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 742 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-anntrack4bf.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 764 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 765 0 R>> /ExtGState << /GS1 766 0 R /GS2 767 0 R /GS257 768 0 R >>/ColorSpace << /sRGB 769 0 R >>>> /Length 538 /Filter /FlateDecode >> stream xVMoA ϯ19ڳyM +PBiQ3;m"J@a3ð5PdNW`,W[oA]\WŰLk}~ԋװDGXŶD"h#DpÎ9Jjn8hcIyp.|* =50B?6#lCDM n]AGvcv>FeYTpdƢ*ކ ydoEQr_VJȁBNp\HzUX Mo> 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 743 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-stacking1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 772 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 773 0 R>> /ExtGState << /GS1 774 0 R /GS2 775 0 R /GS257 776 0 R >>/ColorSpace << /sRGB 777 0 R >>>> /Length 508 /Filter /FlateDecode >> stream xVMo1W190( 5 *=m"RELfv=&K X񩮓8}>[JHRخN?_q~ eZkA Xy #,I˹"(S;8tޯv醃08i[bl=(Bœ _tj/mHݔfټ9ɣK fJl_@oI)+0w<}(/i}!PDTv7@FսMl۾6g edYRҰWNYrfB.xd.)a2a[e7D-z[CiV8!V:*1s|٭sE[0Rfܢ'.Ѧ+ۉr Thۯ篦Iʤ~&qwOΡ-{ҭ1,3 endstream endobj 779 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 785 0 obj << /Length 2520 /Filter /FlateDecode >> stream xZKs6Wtj=0"d{fR*$jic# rHj$;d2xL(ޝ[#,xt~Y+"8BDEK|qg+al:׆}Yο?I¬d:0UR? ÜJn΄ooBuoq9qn/]߷aUwu,`T 4ɋ} jjn\Kz-4ԴiЖ7uWpi֫v;[i-jXX$^fƵME= k>__U7Tۨnl({mߍ8 [D2Xj lok\w'г(]#wԂ%g|zʦm꾺m)?$oj:&th^E52y-M0'N8\G"͘Ld)3G 6HEoԺ"]Yfץ_V rþ6^ ؒRj8W/+6,&fbFw~S6kL` Wd'͘ҹ9 r%R;1sp%ZW^,ܔ9Pqpp%( O8l#6ÄMðP- 4 ǶUs5 i3ʠr`iIJ߁o`,e+Aޱ`e ! Ad (5o4w Mp,~3۵ϯ-.>nl%jvЕ۝7q@h+T3w |<(bljС?jcWxo6u[:*nm =B;If^W8BY:$/(͇"&04O|Ԙ#Q:m()Tz ƾXDI ~us[>e/?d'1|5v:l ^>20'u3%(tX3rlt[o_IGjxKp9RB+ skд7"$}8`64I~D}}D}RdqnR:|-%n cҿH|φٟgG߲NzGY"n*RN-'>q iES]gX M“Gg9ER5&CdKnGq+*}>3|$B˛P9ﺴ7 o"-]eGE spKzmn26#9H`㎺;bP>1 ;B!M:@!.|,$$F`´F;XP9#|<90,='_#Uqԁ1obO/q"<CAg g!K"02d#(@6>EHgKM^搛g}Yg,߆A,:RUzCɚ ,L,Va|!u)\o#4]&g(CwAQ3c,} { S)](gL4L>TəDP4Uf0j+]׳^w\p}sB$R5M7KsƴO/;E/2y{ݺb_O|9ѡ,(qga(t+ endstream endobj 780 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-stacking2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 787 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 788 0 R>> /ExtGState << /GS1 789 0 R /GS2 790 0 R /GS257 791 0 R >>/ColorSpace << /sRGB 792 0 R >>>> /Length 424 /Filter /FlateDecode >> stream xTKK1W̱=y][PP.x(^V(}{d'ɶ[P ;;߷G0k$hGCFt 9a1]?pKԺw0r:|S1FQϰ$)Z6~'VfĮ}\.|\_TYセq:qC{z j`@=#&TԚbR6z+ 0XOZB@ T)-p_[ 7^ܹ4AR^(:JsjWaȟT5mlг*c"*C_—"I1m0jAd^F " 3_LM#GpaK--e6\a* dSm.lg [ ǜ&8 orZg endstream endobj 794 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 781 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-featuresIdPlot.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 795 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 796 0 R/F8 797 0 R>> /ExtGState << /GS1 798 0 R /GS2 799 0 R /GS257 800 0 R >>/ColorSpace << /sRGB 801 0 R >>>> /Length 556 /Filter /FlateDecode >> stream xVMo0 WJk@ b`k M5Q2eٱצCЃ0z)a?WW+ qqv˕PR)}Bz (!4,il,Ч:H&VBg`.ƶJPVw@2rw:pKA{}z{tA-))-޼E3?jm:uלKGa`oY͠ǝ8<&z(w ۱h2hmOVhڂ47_J (J`v9UQjIze &S,m8=zdoMUҩsdnvM5nf3c y߱Mpcgܱl\ܺͥE=9s-X沗 -܁7Zv}R$b5%YP/ e%l}> 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 807 0 obj << /Length 2873 /Filter /FlateDecode >> stream xڽ˒>_=UZz*;n6WqcƓ^ԣG[Z]}  v{wI腁_E=$\yYRCp1GOq0&[<.=܅+"?ǹW6w OsjҐ[&$~n(8+Gp;ˏ=(;t'F=ڮM3psdSg+Ydkݍェ_|CwCQ0h֝ FvP~1$.ZvBΓCot`0)FxBJ>n4c`.] @o|i>*SmV".p(-;zozFgkãW:F@P}oŏCF 41cPa2kXwܸ4v=\4ɵ'>E p'F|;@R0}G)ѴުWIf]Aaټa♴-V@pkG3.B0>nNv0)5´iݶ-Jp[Pŝӳy~S{C5a?GmѦ2PڑSweWJEp1&Kv@+2r({f.9HYEb fNܥ3 @ HIW|ؒ;9% ޓYEk8:q S `;'ro.`9KDASG#[D75yebK2`GVpxd_ /C݅So8A9z0qnw]doIsU_HW-w»f(E93v25+ 9A^F ]|QX \F˜98 S۟O 3WAθAG*J3/J8ʽx'H ?u^( ucB?SPJWsN+=͔U4` }~;odu^%c~;)0  ˘!U6" 2&HT%@y/\ޚ&7 LJ,O c$ƃw.e[֭tN`&*kͷ"HA%A"@ZV<~*,ƂȽ-9Y+ 6F'9A?elXhO}1~a?03/Od~(waw!}1T'X޲ a v|҃ >ʢ@.l,#iqԇ7`9S]t*VEE23W@)E\S_s_"s|-qmE[oK˸:aD1Bzg9g4;b%ꔨdhP 5K@1%0sN}JAtHZ^+CJjוT5דSaĶJWR4j1.*!fk#;R~ T<qå+⠮~)@oX\Ԋ)7ue׎|T--{ؘv1_e=}Ҷ},(y}H틛D%qBk3ETiЌO0זD`JRaс.aX )8_!qB3bcK=AfGިx|Q@"0嚜'`ͅ.&^ >(ŔyEV endstream endobj 782 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-featuresPlotf.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 809 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 810 0 R>> /ExtGState << /GS1 811 0 R /GS2 812 0 R /GS257 813 0 R >>/ColorSpace << /sRGB 814 0 R >>>> /Length 525 /Filter /FlateDecode >> stream xVKo1W19z5"@CKKFU{=m"R IfLם8}>[J(\~OGqq e>kHUUN)hK;('W]0z+u]I{`cFfil!}swSRkN vZl_BoIP> 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 804 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-overplotting.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 817 0 R /BBox [0 0 540 54] /Resources << /ProcSet [ /PDF /Text ] /Font << >> /ExtGState << /GS1 818 0 R /GS2 819 0 R /GS257 820 0 R >>/ColorSpace << /sRGB 821 0 R >>>> /Length 6434 /Filter /FlateDecode >> stream x],qSxovjXÑ|#"Hwfź|}?O??=~ӷ !S3gz;y *h==Sj9%qY ^}иomOW߯㖾u<Rg3LO>ܦ<3'9"ozql>|>~<<ŻOa2/ϥ> ?<uI|kj[k<΍ }y҉bߩtr9ď V y^ /L(N9 i?cp?,r$àP\ [p8 j{! 3>áP, p8 6.OZ ?揉#0b|!U?1%q: =c\ Q?p<Xjڨƿ0h% ma/ \'}rB&޾8ApO_"kP(1>xt8 5)=á֟'O|vxpgavߟ O 06g? @~j ?=Kp?^6AI$?&;B_G B򣓄m ~ A#!}f2`~!F2svC&_F@*ew0ؿ mKtá_C;cLv;_ `~ahg}/p(3 ο0h.A+\\)P&\7G; p4w"4W?8O# ,kv8 j{!ڗ0h Bl gu8 6gǖ.'oj/"d|.JAO<(a_eà_B05LW_e=m2t^/Y8?àοo#OGq8 y5Cfàߌٰ*?a _@OKcn@Yk =7,@B_E|_20h!@Nj;VGC ݲ&ts4!Zm9mOGCinsJ6WxVX3:Mfsd f`f(+ff{: }}f8g,ěϐWb6P>CF8PWROc2 e”OD]W]q>v^D_=y%8~^=Wp=m[̆v%lڞmט| un3Afp(4MBdT %𞄏h(Ҷ zrIۗ` }WV捍k7ubm [KamxU< Zbu8z du:aW 8Fàm@bU9?p( +7]&3Bo}ߜ_MD[+愺VJBJ6@t=9lE+i5u"tCρmf$à  hP豊b>KA[_\d/9mE<oEV|;W[5l6 n/O<@>׉ۇ.á+?nBB~RlA[!bh^b$PƸ,+[?~m}OCߎPs%+gٿ: 2AٽB¿60huUJ 6_WX9s90hֈo]vXWs8 &U>AWؼ}Jd39(35TX%@˿P+ (TG!W&@N& _M áOAnjj`=Jژƿ !N%S( x[BE!^b1E|jB79ʲáce !p5uà! zR"och2meOwü ymT#HBDjA Jd(CߗZ;">g/suO0 dJT1Pc/ TA{ }5>P4^{0wCLj`FWh~kWp(+9ޒݥ-X!O{B_fZSrs+4ěܶ_v_Ɣ~>_b{ KIS{O7gup4r~!`}ʠhpB0Y~gW,RT7JTB_K cV^?I7k X'k> I1󝫠0e qwc_?c0ՆU7*ʦDF6@01Hsd ֯T)kv N=b_VEOO3J;Uz6oJw§OA -v^>Lݙ-P"PCgBuJXl2%m%Zk/P^߯}FZB뿿Sf9ggls?}-)5ςYyGʿ;[̮BPKwo3]laj'[M60 wP{(POo 64cEjv]J3ivC3-<.!qU _|Miɦ2R;I8ru};_iF|r`Qu1 GB&JBݬP_{ܨmUl{um*)\\BUʨjSGi@NlAYlF׾baڿ@_oiN6K[@~A?$l;xQ&|;qG2 j*jZlSRZv@(ĵ6kCSh1^k?ɖ]ۙj +%:Rs2Z?s%֞ /k{N DGV{#M1َ v׸MM+d_YA ?$P!b_L71aYf!99X~sbs'\ӼDtl_:cIºN9nu ?K_s\_v<+Z:Ma'{O\"ƥei=Sވ&L"pW!s xEx޴gwZ-B706>y$qKH% $cX^yV*|qilXlcB|'Q\<P(۹G⹝dh߲7 liX)dD/v-g6@.Kd&~/7B;XE0T]js6ڣ]plvA)֞;J ʛB|6;8w=%X@Q;5^Q{9-z8齀ads$4<%d5jYaWqosW Of9X;9Bn9٤Zp>i4G03g0Fv&\Q1]tMU^yTR,S?sZM^w/PڒG_FVS?cAi^B *C{&9ݬuֺ\1ܷ݌vBB|Cj) z=ѭG9fc4wn4Ν]-[-oeCRfpDT\ O6?Cc[<7v}^cܞ:, j&½Yv`U~ݹv'w2_\hbe(9 bv_+zB|ch *HV {sಪUhUqzO-+N䄗`g 2<F<&<'8"F!7k}΂7`MQfVefhQf&1hsf m~{}X(>z4Š$ 0O$7t5Ǽȡ's8ġH#pgxZu}CefEwFS6H =!ͮ)M,lTs`SC1E٪yA `dqyqȦI~BY!j!,8 gNTX +/U~mW?ed$GZ%U O!+Q:3SC@DgFԙ9x`PA+{jah:B2M endstream endobj 822 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 828 0 obj << /Length 2574 /Filter /FlateDecode >> stream xZK۸ϯ-*&uH6۵&;[9dsH5E$4cק_yb<>n@ &"YYHJtqYdI\jQ4ΔZ\vr2zsSdvWHdԗu2(j44]r%jho/U}8Zn\l2?Z_wm|,*~ü8VwCkduBmmq+eTU40d4-r\;4v.Tu:xAeI}˜sh༗E@̻z"v.2Do0gϟ*VYRe]< `|q^׫w),"*6y<.TX/p*bsgt("}oh"50a RS2e )%ght>ϧoN pTpk f̡e˫'+R j $W,{ Q\H wn, c=uUqO`2gѿ+uGîhx[Fk;V),2i:4ö̋,q%-y,uyz(ۺi!UF%I”p"'ѧb;x&\.KVˡ_.HZW]; \IaI׍;>;VhƚA`w  l:)n D r:#-R6-v=Wokcb[1nQ+ rㆵ-CՎ]),u(0rh2'aZmۉ%,iq8 II޶[lgh_⬵[Jхaiw{Gk]>}|-;6`{_|`[Ep+B#荿GB,Kc]蓋P  )O9Cdb* .@0 /|%Y"G]v҇Or._vPYPXXtyIX4~{[i-edP)8 [MR?A3h"Z"bꕈQ d,<3|p( gTUY(YYBWg񑪪@L'd' @Vsݱ&(Qנ|ԖEw@bD ZBIo.fQ;zIrS^8'P1hz-s';?N%+nӴ1O|5W,F2{~}mGNs("CK0cL#[>6A/֤ÑV:*Ƥ$ȵ!Gt4Nc7yI4;SN3\aO*L֗Q.:&S⃆5gY^#r73M`*PU2绀mx0!!ǮC]:4z"(+`9e.؈yOYeP'KOQ)U!O oK*B_]05"yR_YFu/Ww[ yt\j(Y_wz4pꞹkoD 'NF: B=aWYd942FN>{VGM! 4&mb0pNf%eFr0?BcյP >*E2.f=Cm?BDb@L =?da )LyljP%Y\ ry8cU`^iuxbBXazAݷЪspw2*nu Eل:}lon5&>kPYBc fSɩ!Ay/&^2‘1w8f'pmVEY.I:E7(-8M$K|+-dJ|1< c9[2"cji ]^'l䙛)=eL,4`ZF5&82`v0VPj *PkAsQS> /ExtGState << /GS1 834 0 R /GS2 835 0 R /GS257 836 0 R >>/ColorSpace << /sRGB 837 0 R >>>> /Length 714 /Filter /FlateDecode >> stream xMO0sd/ jZݕz@(m8C+qw}&G)(CO nv/;)жt[՝N)]Nuڧ?(ey \(<&z uX^Yy mww]IjѬn"%KqDݣf[^mAum~PumI`<-m ɲʫ~kL7j)p - ZH%?Z\~ (u*BIt嵓GiQRJy ,G 'gmY)ucV3dSֱ~Sr;3id? OG8m}1gxriZx>ֱY|67Ѫ)_gA5핚$C 3j  Xm7)R^V!?&-r*y94RMy5D-tK^'C%׳I*77\卪 hU\RѬHllE({ɯ ٷd-u"+4F+@ }vps:djq2'"?">I?#R|!>#G>htߣ endstream endobj 697 0 obj << /Type /ObjStm /N 100 /First 885 /Length 1377 /Filter /FlateDecode >> stream xZMSFW1|(W]88+Y$\^ |* .AEzVDHV(Rɉ0NcH7opVC+6"j+rB("^AhEBkh&ΎӵXkĂA;  BX FO#G&! v]yF XaL;Nxc6FmmŖ]MaU J x2B: 5aݚku*"B+aAX0c= b;0Hl9 E &&ÂN; D;) <9B`pݰ*A@,1* 8.ljX ۍ[0" gBBL2pC%gyF+R"~FC'66!̘&L\rnp Oq䓓f<ʏYgY]5O$ӲF2`IYUHp1griI>| NCsRvzٞMe{TœtOҪxo&K+Uk}_ԳdwK?cW;=lӢx߹{u?~ō31BǬh1 J1'qy[I~sy2OY1O];I\=]d`:@Ԣ#b>/>~;Υ~b2)_ 2Ky)peR _jiHRir٧{egO=e'* _JT\|żRn(;? ݦCp*;VvȪ{s̃K: endstream endobj 840 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 824 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-collapse2f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 841 0 R /BBox [0 0 540 61] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 842 0 R/F8 843 0 R>> /ExtGState << /GS1 844 0 R /GS2 845 0 R /GS257 846 0 R >>/ColorSpace << /sRGB 847 0 R >>>> /Length 715 /Filter /FlateDecode >> stream xMo1+^\k+T $H$U@#gަT[H=3;{ƫ𡌃ㅂpx|GA )%=-N@jPle(OWz#8m:ЇA_7{[=nHIM6RJ= [&ɫ٫j:ϻ]W?躊J"rC6Ejzdma_FjaUn29q:C[w${.[a赐H^ 9nBQԄ"Aqj6o'UB̶>*>fE@17ϲٸS^[cV _ y;,+M&| >)ډ"+{鼪dg/"u=$t$Gx>7Fam勬|6yŕW6l/r' ,r]%y&OtVul|#_;pU[B`y {)I%=>,WÛeϳITb.i$Mj>|y=v}G%QY&ogph䗹]ؑ٤B9Pkɯ \[juȞN]gm>%wPg鈛8om#3> 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 825 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-collapse3f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 850 0 R /BBox [0 0 540 61] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 851 0 R/F8 852 0 R>> /ExtGState << /GS1 853 0 R /GS2 854 0 R /GS257 855 0 R >>/ColorSpace << /sRGB 856 0 R >>>> /Length 720 /Filter /FlateDecode >> stream xN1sL."!RH= 4$QBۤuХJ*8k|l`o&g'p:mRB=NO%HnӳnFhexQ8}G'^E:um]=q?mb$qF8G,n̄ }&ɫ٫j^m[z<^Ut%-q,tA& u^MKz[# 3eH- L=G#[5ڊ6i!m<`jc c ũ-ێrIbl;uC}*JƳl|s\u|O5ڇe5Yv@6>9=ou+/|O5T/Y$)D=d兵ϲɸW>^Y/_?5U/ɲd\WYn(p8KOfUqN:-o8D*-0[7ofStE~LZw󡤑L "WCITV* ybf0 _2T!Ob«Hj.vDi%@.F1E-~%E^QHTk"R]K}i %Mxij7z}u'qZy~`u#|#% o+Vő#S "ۘ endstream endobj 858 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 863 0 obj << /Length 2134 /Filter /FlateDecode >> stream xYKFWs A` Fr`q=dK E|A~|)˳gY ,^/^+8M(xJ)΃uwfikgZ7,_/^xU ?nú+Ͱ!-¾ڷdowgAWOۦ+$Ogg:C ݙȦ64\4Cw)M; h,][CVLDJ$3Ȇ˰Kݢ}t <(_Q" @@Q遣tG;l;{mmÞwH'wU緟 c(:i;!v $dx?Hg[jqUgzV咱$8U`Տ.)$I~D9 Zlpe)4*";QBNLOt R̢tr<;`0S CM$Q19\%Qh 뛮޷̼ٙLo5h㑄cL߹rAPٺteJP[ңc'b2iw+ߙy (BSf2JO#3D ~gP2x>L _>Me,gLi^ e6ZC8v)f6ݭbc%jfsBfG;3P4&5ܙx:z-r  A7Ѧm LeUkty1)b.]@Pd ߋy{(%7bYJF2|-^O b>'ʀUO{03`38HAݞ7M4%.LQ(AV2x||l _:!K][/Dp [o0EmDc^ @~z]rQN8JC?fDBs_8>/JC%v0pkzc(Q lv C"K@c񏈏8@뭶5u=S1pP2Op`'B.}v%8x"c*wjT Xrne}#\Nr(w%d:qxz;7CMka[QPG @?G'Xƅ8O;H`\nC팻HnPHYpR ̣]**ۚ"EG1n6 }K+"F4sUzX"!OH!H!pj|$*(~4me|ޚ'\,p%#bhW~bft jVUTsp~xߏlLF~K> /ExtGState << /GS1 868 0 R /GS2 869 0 R /GS257 870 0 R >>/ColorSpace << /sRGB 871 0 R >>>> /Length 698 /Filter /FlateDecode >> stream xVMo0 W\TQԇum([PPi dHY܏`/Hz2) ,G)?'SŶ9~>9iqz ~5gA8g٠ƄBZ 9LB ^|iG^Uu°[m"I*!mgɯӤ.p&ofof{=A=G p4 pkWyQ9S[mS`<k%bUy2NU .CPd|hE^L&Lb%W=tP`gۣ֡+>Lϰ'd5,Wm[~g\[`;'\JX={RX[gXqG,*|ta {B6o|ɿ}x~7,kD0)~(UEg(Yi_/`̮!o4$:HIU6l -w14bż6"b,J¼͌V:4ajUi`=, e(*Ϣ%?6f*1ʳ#k#AORGywTñcw0n݅:̇2rif|| [w'O%GGbϑ-}O-- endstream endobj 873 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 860 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-collapse5f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 874 0 R /BBox [0 0 540 46] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 875 0 R/F8 876 0 R>> /ExtGState << /GS1 877 0 R /GS2 878 0 R /GS257 879 0 R >>/ColorSpace << /sRGB 880 0 R >>>> /Length 671 /Filter /FlateDecode >> stream xVKO1ﯘ#9t{HH&RmIQ~^ȡ87g99joSv~_)(e]w c>}F3n zh^Mh!nuݘdIp`9R$icތ\*:K~J~}lffuY.9zH ޠY7$1FoȡQo=zcQQ 4z H!u(Q$8"H2D2$qAK^xSth8J(fT x 3o9ogz .Ib*8 +g*p+|꼭羗䀳V#>/A0nsŸ`G^.Ku6?LC/[al"y~\Gj*RK䞒ܣy5LQS6.RO ɰ^ޭeg1h`0'{3ٯfv I9iWDbHgT=;!H7|ҌkapAjJ&6iQ<VB> 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 887 0 obj << /Length 2257 /Filter /FlateDecode >> stream xYݏ۸߿XDM+9 v>@˴>Kd7ádKk6/9$p7xųz,3>YťTqݬfnnZCrpLq̦fŇ 3ޟ=Q \JhƳt5Kf닟#ai5-LŰAR$ޭչ[Q]%5jwu ?w.궓.Β$qv}VWk;αi6nWԛX*V/7+$ʦX7E7^ч,taB׌Y澋 0d._P| zmRxjp2N~_W*lalx.Nz;') i0dH3`}_MgoFF(XZ4̟ݯiry2L:mS[Qj؜G~XEyS" 趶>{8ei{xZ02go2D`{t(LE=J?}s~G-ʹ 3JwJ7k"K>ˢ,:uG {gW0FD4{yU:6_(D+fQ\^ܖܨa+vˠR*ж0ˎn_ÞLCx9hn:nyS=wJIg@Ԡַ׶޸Ts%%u}G2\?MP>8p[JLݠudiEc_NlmyN"?dc٠([uCOix6hBD Yl|TGCYSPsm ɂ HrkE[QwȆ z+Z>ƬK+GIámwγM?/K2Є[[\KmN {qCv9ڑ[pzzT Nts 9.(]SFwp3Z; Ý* K0|}h ]wEx dhp$BocBR EOGOzy:ғ%/1 rEwHg,m(]_]quS'\n7<|q%|i8N\4߂cӲxX]UƓ[4z@:u_OHQjR(GZJ&9#kҦ?#U6U6Vx/l'LT>KB&oB%k}O #*}ۆƒ0yMyL+WigiO +)Hwh@!$ִgeK`[$`[ZCAwG$* w]^9퍥"geQH(}K Ei#6l 5  ̇.zhCDT's-3.9? &;J*Eb|0 n`r'e;N,kTb.ѥܟN#Kw@}+ ѕݓ]H{1~y1!6RfSl+D 9L 4GDO{rrN8]_Օf@2FJB; endstream endobj 883 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-fileat1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 889 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 890 0 R>> /ExtGState << /GS1 891 0 R /GS2 892 0 R /GS257 893 0 R >>/ColorSpace << /sRGB 894 0 R >>>> /Length 2562 /Filter /FlateDecode >> stream xZK&ϯ}pu]a 6XzذU+Nۉɯ3#H_/Ͼx~xW_9>ruv;ۗt|)?_Ǘ7_}o?xs^״r(sk~ׯ_>S@h<Ǯw3*~_7Y5m%;3ϔ .g1յ>\y<癧4ߗWZyH@$OkFגϻp嵌'Ef`W=j۩aui󚴧;ڳ؋i_>V63.ޝE%pugwskܚN|zܻs{oΞ<*O:S,-;''{{X49 '_/mW~3>`J;U}?j=꽎*P s-M~4GŮ>^ 8$MC![ ̫t k,X}d)lPulױr&0uXǶPyqȹK֌ÐqD)!>;9DINp2$ρAbܪS'IEV=yM+N~ilNUZ/ JHDZYIeT9RTsV!BRJ!gi8UNeT}'ZIeT9P27p/*J)@RaEyתA%QܓS&R+ J=;U|<; Ш V:`۳7,}s *QOYIeTI<kaX*3@U=̳JEH \UjUÃݬ,v{TW;SKqIJZRϾͩ jiMR+ J=& ;`@gy`/e ٩ rUʁR+ J=*_ɒ@yH4GQI+7 ԳoA?W5]g l`ʬDnWNrۏ1w!vήf Rzv*Di U!oABW\T!꣌ YjZ3K=J C>ewJZRϷD({0EPXeZ35B!o{AڮH5\J!R# R pVE6<=W+ J=9vK\O%A Z1Ϭ,ֽIYUb7+*z_SSlHNVRzT(KxP&5j!`򭻐C*T\Ԥ6p23(e  5DA 1`"FVB1WB 10T⽹H"Q5ǐqƙ lna'&ܼ%DjXY "5P++$Sd`VRdnMJnWBvsJ*̭#3_tYoB*̭J*l˶t*^ Du2+sA$<0/# GG@vs.x8dO{Nl[QơWkFJ*@Wʬd=*\ʲb =WRkyV SMȺ$Rdp J*RρJǭf BP򄙤Y+ LN4cugݐW ubŰ^1( ã?xߧ`)PTAe/BŰ #X!tqp>9VȊA97VI juJ2*;,ڞs `{+URR1AߍJ suǩ$ sꪕS]sOjyBh 2R+AP?40_ 0Tr矀Tj%AP@f>ۨw HWx#O,&:o}5ncJOOO*o V?/I endstream endobj 896 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 884 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-fileat2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 897 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 898 0 R>> /ExtGState << /GS1 899 0 R /GS2 900 0 R /GS257 901 0 R >>/ColorSpace << /sRGB 902 0 R >>>> /Length 3003 /Filter /FlateDecode >> stream xˎ& L)Z6 / 01"!N/gN~~%Q˩?__]zwٗo/}ϯ/޼;tou?/ە^{/es׿g\ޣ^qy=p:>R~2÷?GA31rsWihޤ7I?dN῔tw~{}I|3=ջ<e׭/[_/_e?:[˙Vg>[@j(j d~Tb_} ᫰F[@e-4תgOցJjoBJ:P%P9t`YưTYmX@jcXhP9 C6Ta3P" 5)P"&e.yew6,TE ڰPi(hmmi?9V+<%QJCqP+:Hé @ց*̡iR U)3W@+ZJ2 &JC.Q@̡i^aXВ>ðPhsDU*ުByV(UvdUОܨw-OxjT8zh`Baޢщ8WZq(@H$s;P'} 2OL5|b5xfCq5DUnU1GD3sըmk#xE"Uj-E"̡Vi HCFmJ2ߨ>ԡn$@žh: ΎdVmeS jAy`#XTtP 5h֒x\>8tgU课vH PY%~33*0^ H O*0Z\y1k{f(y춡C;TmOdL_a}rV`T{`$֝3f\[E׃QF=`F%˨;zszH P Xl1%Jtw.zhH#F>`QF9`D9~|T匵9Gz0v0ϲ\*0,pqrEde9 } w C_9Z|ǑSʫISJ$hJX%8hy~|r?դҍx9PD%Q=UĉP'|r'wf۷r endstream endobj 904 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 908 0 obj << /Length 2524 /Filter /FlateDecode >> stream x[KsW\9x38$)'^n$kmD% @IίO$@m>V ӏ 6wxuX(hƒy('F28OgM.wBql].h6do~ҷYw-2"M \Ds$Kj/LgK U ")ж8}\jeanjf~ɋՕ'XH )sfiĆM>UYuV]w0Έ]@M+:~ )ڭvl󶨖XބÄԕp4o6zzU==u;(2C84VtŴI/m.p{f1zf HɃ35a0'JZ˓G tB$_2W#3e[L|ML>Qh-ZCMw20Â^ o:ͯTѲhZ||aőy]-Ble^>~djq%v(`i7.@V[`駺'o*8< E54xzz xv\n,' W܀x &nuD_E*駀Wy= ׺ cs"\V]OiX>@cXQMf!K0~QyV<JRY: =:XMۏEߔ; `Ὠ(M|qnc L{ PM'סY@$#u0jXpCrS؃-\ս3- n{^ޕ_ʅ[ѿE(8H7[n刿WYls<ߖ%/(l-zcLp!Z luЁ.i\ia5 Rmt0fadK g|(7eS $< kmaK(q 7aivޒDBH-OP@zpw&~]SZ"$4oL0jBa D6:'xjcnWzh `xG5dpv]M\G,},[;7Ģ@lq"Ģ[ӌz']S"I]q8rJ*VJL >:J@PA/c(%A5&4F;"EF%f Ϋ:Ae{x9p0 gTr.1,dxP"4ؠKCVFGt*UKq:GtDl,Keò`hZϝ2w5a_*NuE9Vu)spu8i#yRPVR`{scXH`rfOL-K9V1PTp zݷ=ej{/}K $n%Hϰ~K\g&2@I` e  &MF|qA(NW]HnM¾sU18;BF)P[;v,  E4|'T_~TWf>9_QuC RXtʦ@4GŠV-AeM׃rPXqTg;DێJn={ K cgIa3k endstream endobj 905 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-fileat4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 911 0 R /BBox [0 0 540 144] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 912 0 R>> /ExtGState << /GS1 913 0 R /GS2 914 0 R /GS257 915 0 R >>/ColorSpace << /sRGB 916 0 R >>>> /Length 5056 /Filter /FlateDecode >> stream x[Mfq_q_J$A0^xl uzdsvUw*ޗ_~׿?5yoK?&.Uʄz W^]}8נ-^߯?%Q]S$HXuHϏ>)g?rlZ{GK~zyzSTysO(Me$4V|iN_3yw?tш~w}?}'+esX4RHK8O$)8xVm<&ѡJ±_8:Qoo?]_;Ҋ?~o/ʾc?hO1%_w>$,hXu"1oE/ U]7/щL0Zlg=P|Sԋx9+1bYK!΋B\DgVߏUǦoo~ų-Ϳ^<[kYu.$tD`&L͸wwRΓ2-xk 7.iq7~9/xX.dSǣݱN"ČwF鸎Rgd[2 MUwXGX>j޼rK`\1MO! !61#1(+@ʹ1*P5;,)3-u&t&6TAe1m! #B\xw"!\K|(*}*F #ET׹Ick j[I7%~&+^I?,DEZE7's+9%xnT`TR."9TǺ0:$!T!iJ*R{؍`x-ɏL&*I߷bl0)I##yم22S[=WzK1JJvMR^Oś/*Xؽx-V7 &_Ύm|VX*O9Xŏ)/:(a#SwPW$jsn>;,N)$]1^G?,߂5 Qi7T/ٞq3ȘUnq0|4g*&7ƇXx|/f,35tN4^:Ox/GOx0VBdǸ#hnE;2Q Ļ-n#1б5Y|_c.KcG)[@#3ߺ&im#cZVde;F>|SrVRCpfwul!2MtdDzgC',h]Hc;ЗLx!p9.0zS\Z:¬Nu9lNsOX_\"ȢBy:4܊4k@g+'c$/I.G#5rw=GJ@AOIe)!y#+f}fvr{Q+z48WnD)ɇIחܷ>9HyCRkbk&rhF/͝X{--￐J:!{>I|RC?TBd~?_n]oVAo~ۅ wB:7%YT97s8sK2έNǹ8q7OpK5ĉ69ei|uQ)ͪ608swy`;՘m N;'މ{wn@q.b#`;q9YIRr܀-ę[v t֕#7bp tnga?bB_u%T^5&{5BRS68Im˥s=܀ ĽtmAڢi p&1}@qpWk9 -)Э*q윽ȅsgnvm+.ѴsιsV f߹5w"qstH;';i č+>n\j.5'q}٘B3*%{09gj% ,8A^I&wum)|5HM?U$X[n5b{mbXJl]Sw8I$ q\jne.0d.Y惍n_82mU iܳWAd:yg|^ ?/yd~^X*kpco458qe q+tng", ٩[&fa N"Uap qpfʷ2gŽ=ƥsgniىiUh'fElj͏zp:77≼C+&?1-8NL*Ap tngn~tviqmRqZswlrn@q̺5WYúĸɹ[&X&5' ѹq܀ č Q*L&5':362:77YES߹s;n>I \3\;7*oBܹ8qsey5 ~SE:-QPnBrIO/tn'n^Z,юkiP%1"mrZY܀-ĉʥK 6WLj NRk:77йAW(TkLj*qht"c:73\jqiSĤ$5r{܀-ĉ{ʸ߹6Dl N;r5p n-ę{Ww~b̳q:1qlbʹę<I߹6*m N;jčFs tn7_52nk"uč =s:73wPnRӎIt*&%Bq󫪰1lQ(tn7U'P ߠhUԹ%c{^Ί9c ~9Ou"]C^xVmTcTWnF@MUǫC[̽{Fm!5ymﵐG(ԧzgZc3<- ʠ>ZMQ] Zs.uWZG!W5\W}A+0sJnyn(tJV\x#oĐa }ʥPU9jW~)xRCjK^fNK=]_j>Ƞ-եKaԗRhKa蔳H?g-:H?MHQ -cYqS}})yKaԗRhKa^9D'z= 5zpЋGaТfN~r&B2_zPh r =U> 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 921 0 obj << /Length 3372 /Filter /FlateDecode >> stream xv6~/F<ГIM✒h PF|T@Jdh̜a' O]F$"]$,ӂ)yczowoط)ۯx[wA:ɍ6 .[˲xݯFܦ_>2KŬCJu #'%Hb GGuTW4Ru] y@Eض͏f DD!Ԕ4Gĵ% &>#<Sh5O\K8ei\t-=p]U܁dVeKc"S"J1jOLgOʵ6>êC۫_ P_Dj2'(&Lf˫0$E'A $c\Bx SF@VM!agLf{X`4*T%)Ԣ!^Tt;&S6i$c-|efOV! 1XOY$4 ྌT]K~k.ޔTVѫҪ"D!0֐E[..+Z-fa)O#ZDKۇ~^t9i5ŁU9RFRӌoURL1g8ev/fRi4auWz֧L0Y`2A8eZ_AHیoŝ>F۔L *^/ 0*1ٺ^a3p9Hj];AΜ6LqpBFڜa[{\ϑ$E)1O9Y+hz]~}I0YF[+ ipY, HU֡eRaU-E XXɘ] L@qeQT 5{&9stLJbkfI?E}$h< }b"0JBcGnT1,w1HE5;$D:0C/=߇weYހ՘N%#-&Gu|Rc_58TK zZvCɡOO=C\tu9.G'qzGCd5LX3$iO]'no srN4[KܝPлG"KDGX=r e "dܟ#OEQ*Ťڇb(,K)?rZ; x>=jX!7 @){(~Y82WY6q qKv|xҥIw=2ёȊN5gJS'*~ orJԞ (3uk H_oyɔ8"B߬ LQnѲ]$?<5 Gc~r߿:?R_X2SN/`4V.Ul9H90Aj \ q4v!vY_P`}A,M?5-9"{v`rZ ΁l{AJ︸qe5˭Jd g8I!ad2,dNxʇs=w75WLsĆ~'sP*@f. 8T\%`H9=Iq%p9x:˝#9 Ax>|*gt7i0N|eS^ &O540Ν`kr#A7l,t<+ ç|/~օ:-\Yֳb uCHrYFoFCӔZA(Rm7x4,]6m-AKКcQ~Y  .+GnAD.Q]WŮe3H~݃?dzv.W *r^LzhxZMU=N\% MG30SM>@aPG,S Yr(q.b w>=.DAh;Uꩁxo^ /s۪ zU(4Va]9De ?Y?uv}į+*;U/!fϚ֛YiŦ7#7^Vn{d6melC1AچTѬ*D(&B+`,熡Uv)!8 7B.8 aZ}M-7]:^U!? bT{Lp^C}Wϩi996NU ~ԡAG' /Zg{}'65B]nVqɁ?45_n.B9ЁP( |&C~*X|L0 왭=7%X\Q_} ?K_QHge5m_o%MY!qBgӐ!PঘŜjd8: !:kX,Jj1Mu@V endstream endobj 928 0 obj << /Length 1370 /Filter /FlateDecode >> stream xXKo6WTF#F|I&==u{`dVWwȡZ'EIу!rpyLfj649&E"sKJAd,͓L3VS~sm37?fL5 J2!',8ozS4\ޮHmgdHVTj7VOa Eui6Sӻ׷(zl ϋQ Kت hڸH<B8p&aSu3, N6h}& ^ PJp2H [|GxJejCq?Om}s8MNns߸MnHb=8oH2L LJN2y*A)7hgϳ !oR)MyIIJIo-zQ"eCs"UoLgŢx*Bz(t}`GEűWKnAK0ًw,إYbX@:$8%EEd0>ԂJX8Ov5NO0umúF +ax/o"hw-q ǙͦuԎr̛ rL͝#y)t ʏ E ,&AuGή#m7eXqB! t3V tm]{fOmoO{l+* h> /ExtGState << /GS1 932 0 R /GS2 933 0 R /GS257 934 0 R >>/ColorSpace << /sRGB 935 0 R >>>> /Length 1986 /Filter /FlateDecode >> stream xM5+|Ltv_7H+(@"_US)mό*=cԽ2c{ߞ./~zu^>\V_oV\/\X ~R{W0> s[tj/鏸٤/q!"RorLj~}z^HjjXE.=JmnTmw)㻖>7YevXfwA~y>}z|HFצ]%p z}eeW˔ݩ˔9ܖBy=aLTڳn r_2Ss_#2(Oܗ9|wpi|çu< /8|Oec3dj~zhnq?NyGe?Q~p_̇4 Pn/sr}w{_p4zOy>]_<_>g<|GX?sA}9Ѝ"w~^){|Pn/sr}'<W {,G~|)7_pr}÷;s_=2(߹/#4)CǑp 2o)ܗ9|G{=e|G#e/82/;? i~8? i~8? ?P//x~qw |/_JmqYӳwDziY EA(w־R>^qDVf7ogyg-,m'{Y+[Krv{br׵e8UjEYf}댌sËs{}5B;˷xٲEzFv}> 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 924 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-generegtrack2af.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 938 0 R /BBox [0 0 540 180] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 939 0 R>> /ExtGState << /GS1 940 0 R /GS2 941 0 R /GS257 942 0 R >>/ColorSpace << /sRGB 943 0 R >>>> /Length 2226 /Filter /FlateDecode >> stream x[I_t0{#V"[ ''2 Xl+k꧙ C[جHZo6={y_?]}EJ o_~ϛu۫ a{}1##v{^ mnxwsl:J~})7>B}_~DR%V>~Jԃq{t螞?ϭ.o{׊RrbԞnva{ǧ?ow."T>E$&'H8_y_y_y#4~==f9wcR!bݫ<-dxNJ1bbGb4yUaX2C3Ru=+g= Ɔv~a8`cc~X1#cJ'a9՟h'qeB eeeeeee,I2r\އEzUL/H)n^đPr#zGzGq"Ei}X^?2(hݨZ9JqA2Q{k_7\/7\/㠷w\/w\/\/\/n&#yQX1! ;yM+xxNJcNJ1b!fX= `Sn 0a& `ٷS},#L+xDƈNJ TKAߦ%/vz>q@ >2~)@V6"Fy#G,OrH=J}bIJ,# u(`C_J|r` aYס<<0]pa/`1#}\$=xmmc#v E;E58x [c]D-z:L#Czl{leޡOѲ-۰oF퓑Kty@.[#F{\G짣מ?%<<8. ޻NF7bx3R ]5!U>s2rU&)-`յ}xk"7=x#c=W}Eh}=pQDsbZFhsU{53Q+jU}2J#D*f>c|OGnvƽ}[TkS\8aШX_U=lY3c0jhOEC4A{ڞ_= $c(Ήn어yL}#c#M֦1{ FlY1S%]GjGuuEe~FϪM!kuJ״L0CBRd-33Y<|Y9F9]bw> |kR/qZ3 cY}uJ`&+ڰ<8XouH u/(Du1lAVMbt ,DǂTJq$\;#1KJMqVɧU_S{/Q(uħq52eeRnyc-w}w6E绨kB*_B#~ܾ1^e'7O7rKrI=t"Bo_2naC-|OSVo!Q)ʭX_StaR>RD%7 Q}׶|qjʳ#>k߶cq3O|uub?@] endstream endobj 945 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 925 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-generegtrack2bf.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 946 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 947 0 R/F8 948 0 R>> /ExtGState << /GS1 949 0 R /GS2 950 0 R /GS257 951 0 R >>/ColorSpace << /sRGB 952 0 R >>>> /Length 844 /Filter /FlateDecode >> stream xN0y9c8HHEjw'Z* C_ɴlE/8Đ;^#qla^| gpmWp}>.˱\L?}hn~|^q&yh N0>]<^}:aLRR vw:VDھ\uZп_Ol}96wSss7BmO&#`4asGw38z|> 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 838 0 obj << /Type /ObjStm /N 100 /First 881 /Length 1377 /Filter /FlateDecode >> stream xYO7~߿CϿ E < R"6{l{ҽ]D~^.4)Dž$Ў=7Y# k?'txza330N O#lY50FhKrvQߑ`WBk "6cvOX\ty/WY /#0FL`"Q@9B!` fEX#"t,(`9XPaf\\oB0EC' 2 fXXA bXKyv z(ڈPcTE 9hpJsA N"Πs9bJAgV  Q  6kdmBta! 7o:OGKk!cb-0H3tXxbc᝭P!h|cf@b 60"eDTPG fS"ш׌EY"[ !9уC 1`18ʠPsdp .Αc^1(]lmݧ$˶ y0|fԅ<ͺXry,䋦jus2ųguIK]Φ;>rPǴ@ߨK|Lq(<ї`._Af^ޭS*!.Of ,4Ӷ']ydY }UU,]ȾM<-m.CʪJM/5s9i~eelV^u~Ngm_Xm7?+t9$;]*mvdgp mzZFݻO^W}x3gCۮUN<]殧oS-^#~,R\ ]+<=$C2c|'H*fͮLǝЙA/Q`MJp1\o>KNqYX2и ,#ARv%x.zq-Of"b4G17.~C7$wckn/aPਐ{];0GW6TO$n,;J{#lnV_te>6'YO>/|*Gz=[w#Ю`~@c` Tڛ.V~WwV(^V?^+ߙ99< .<œ)^y=]诎gtȟ:^PѬgt gtX{arO{7ޝ?&Ժ81`wMys$iwzCgJSnL/oD$U lW}q>>]pV6'9}> stream xXKs6 Wh|+oQvMt6=Ȓh#K^IN$Y;fI.&  `brvvX(Ih‚:PÃX28yg*MxqS㨏]z޾̋_fke1<MpjR/3Ҁ k ΐ/iIbÂֳO5r8MCb-DR8 K;4jef'~֊Ǻn/w㾾sR`SW~"&;E$(ẩY0or`j`/3nvi_Z4ZuFN߭ߥ4>3|܄ Uzc$YY31wWifU;~+7ЫX`P6kֽ"%nW!d`p9T{8=zaWp O|GP5{i+ȝ{!_9QH4Э{"Ќ'B‰p*: M4XY(c*,:y0kඳhĈpo=Qzy I'oFԁl32=?ھB8: GpZ;lYX ^ ^>2o#wkRhӆŒp<%m̐6g?FҐLɉ!N' endstream endobj 956 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-generegtrack3f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 964 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 965 0 R>> /ExtGState << /GS1 966 0 R /GS2 967 0 R /GS257 968 0 R >>/ColorSpace << /sRGB 969 0 R >>>> /Length 558 /Filter /FlateDecode >> stream xVMo1Wu<#4 +rIZ*!p߯׻ m!r[̛} ,a ?׼.+vqOab !oW/oA7k0:#HsPkê#:)XBt<.gYIzpŽ,19SK^'RܪJ.|yQ.4{iUڏ9ih`=ڌ3[h}3l>jZHNi_OO?wys{sO B`3Cpc$3Ci͝)!@S@A݇wL"QW+:F'(*u>yp6]#n]l\ :;3eD'I-*dTSRU Qw,D>F v v QE6sr:Ԣ VZTt J2*q)glpAF#INvW>r148cE.d"'ǣh{ d)ݩ PYT/6O.x.-`j>K&lo=*!Q<ڬ6 endstream endobj 971 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 957 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-generegtrack3g.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 972 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 973 0 R>> /ExtGState << /GS1 974 0 R /GS2 975 0 R /GS257 976 0 R >>/ColorSpace << /sRGB 977 0 R >>>> /Length 757 /Filter /FlateDecode >> stream xVnS1߯eL"(&Th>c{MA.s{3k' ~ 9:^ vsX8Џ'| 6 AD ҥ?2B/R)H`B__ E̺4jA?qT"D?>_)4H͜n!)JX\BMIo$gA4LXfr=w0^dxOGIdLh3W+?άUЏ@>j^3Env^1!9BcFvjxoyA!4sFti^ Kۋ[Py &xg'{{L-h2ĶQFZ&tgmg~ F-H3Ζі-(1 =) 0{uNQUUz ɽ:'حaS'rSZ mB+< zT9 m \k+ (Y3LsI򋠭0[̥f*3d}KE3 WRJzMƕRNY ;A[a"wB{ncV 6  M/K*g D;#M+l|$N(ѽ˞KuLަ]fra6ܻ)oE&'&Xk'kr \-%?t#vef2ɂs4ބ칙${aueu:[ʃD|͖ʗ  gá endstream endobj 979 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 958 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-generegtrack3h.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 980 0 R /BBox [0 0 540 72] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 981 0 R>> /ExtGState << /GS1 982 0 R /GS2 983 0 R /GS257 984 0 R >>/ColorSpace << /sRGB 985 0 R >>>> /Length 939 /Filter /FlateDecode >> stream xWn1W9`~7(m ~=)8rUٞqw{ʼnV|JLJh5)]R(qI8L 5>՘ aVY\$p.{ɓ^ڋ++Mxt|TS }Rh#s'ŝ0&H:iaLୖ.sK8bI$m|1IQIC)F&{Ռq', - 9oe3QG|~lNzg)- }gL. y?> 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 990 0 obj << /Length 2120 /Filter /FlateDecode >> stream xk ᾜy|Yz"E?4--Ѷ"?>3JlML͋Ù/Lֽa(|zw4ZrP@)(xƸ=Zd* X"F" qfv҆pKDDnta[iǒ *}l1穄%yiZ;(uA qvĉ 6g~6σUOAABgS1=s}x(5^(%i[ơg-#R΢,o3d"I/21H$ulWr}t+c8!"< (@ 6wZ-Kƒ /& Fc(,\,.úZw{|,\BM>/=fB_BmEJBHƇ,/ M.JKHE.xe1陾(hX!U5˫_0\&z~8RHT& ݭ?MRE 6`Y^u~%%|t]u=@f؛( -ve0:pPj+_ ^yWLypQ2uk-fo SX QHϣy{#\IQo *lr|yx@̣k p􏓪{*gnD,`%:VMx k ZH endstream endobj 995 0 obj << /Length 3908 /Filter /FlateDecode >> stream xv-{&W4gq2_ْ%M>U] 5grbUݵvlv=cg^x2gW343x],gF7|.LK_WMt_U_ll4窨udk(].>+EA e^^SClhRv}uXa]TmTcӴ4!k| &\j^nws.c,a鵻ͫ .eպp7PMltwj>B eU8@d0Uޕ/iح?\zV85pzpR*ߴyhs<l=uPrIsv޼U :-etG}9p/ ]Xhf}[elg=^_BϬ9Dï̷'19ͮ$^LgilS XjE|pƩS|Ug6B1B~T|7fOOZ]eFWJ4A,sGjXe9AM,N:!T@םS Jb(ID1P?FRRƌ#BɗZ2cuYxep0UjX+ҜNs~/nA#z쇇zz?"ҫVTr%oRLI6ˋ͸ 8/8@g+{/S 2 (|hh1SO7e`V%bwq&tMfP]nbICjЦXG;u.ju  * :6qjDذc&ċ  d%?WY#:[tW٦&R X4ބ0t[A̴Mc * f\T&(P Rc+(#BLtrNOpMMT7Y4x֭ЅJd20nehf3*vxir Y<"z2JзYS?I`w!]`9jI"rؒCjð"oZj^urGyOĘ MeȩnWL^:a⯸{ [3:V2/0]EI$xP 1~CF~QgtWH5pf#s8`P]ݴ*WPXY15 3p[qv2ld$(}F%MJzEdޟ1)HPǠHth .p3l` _CV $lys@qRvX+|*^cï7[VG? H 87Y0P< "BPbe @*cWO(}޸m).ieɦ( 4'AWc-\]c$2 &<k )@LAr߈{r!>hA›7+(%ycP#T̥1Ӓ a[QL7ic k1@g?7Muێt G =dDM!Fld8 ^OcBlO]=z0+u\.P?kR{o!VЌͱKy tlN*]a1l9`(gFτ5Ld;Ԍv7iro̮?Vcv(#E.zWURݯsE4ҺU`%4oL*W,9:cl,+^a{Sb/"J2$C5=>4Bj<6MטZ a~FׄFrfyQKl KL+#@9ҿK6>V'unDp#dԂD*]| 3<. #.:g!.3@+r5P yFcM50iɺjZ=/2LL>zݽǻEf FrQeJ}E]  ϘHB[<C %BLm17<(͖hygh50- ;,HNq:gPzJs gSpʌ:ܹ<:L3X s>;֯[pᶅGήw˼T*c{K`e[ -pacb!iD3mprY0\GI|t6 ?{+(!|ݔAw߂rٟ%.ʿvCZi0q;c>cdVk Y :Su` kNcnZ %(%{ qZ5ؘ$ Dpry@Hlsa?qM'|hsB' ՗'bK,ԛ V:}}HI >mR/1a3)Rc]Vg<58%AOIvG S1WT$NAhnv2{ vȮ(8U# y"+lg" DNџm9 MP#ON'~L {H`="lsSݽߛBu @n||Jj;L33~"{1;;\J;&ޛ?S O1:^|" ?RoBVVFiZwqK_i\صͅ>L5|̻!y%h]Lزiܒ̤gC.,ݢdmAb``݉E g}qOjf-,.u/mF)>Aߟ!1Xfgl\㗓}hyW endstream endobj 992 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-generegtrack4f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 998 0 R /BBox [0 0 540 25] /Resources << /ProcSet [ /PDF /Text ] /Font << >> /ExtGState << /GS1 999 0 R /GS2 1000 0 R /GS257 1001 0 R >>/ColorSpace << /sRGB 1002 0 R >>>> /Length 2281 /Filter /FlateDecode >> stream xˎEc+- `,0lzس̌̈{;R0E:u],ayϯo>o>u۶~eo_|~~˟^qݛn|-)GZ1u\BZc___wX-~zGjD{Aө71G֧uܞ[!w9Yݾw{{^7⚏%܏^O^ֽ˲ݧ^@r]:IK6a#{>W?"\W"L7p WB~G3|D W#L8gǾO# WF?c'| &?c'\}웸}pq}&^>MǾO7q ~ƾO7s Wf?μ'\}L8_o<>Wpq2߄y&|M8_o‡/7\2qJKЃ\zk:.W? \W /\}S3c'\ žχq>"τy~&\}3|D WF?Ҏ'\}}#'웸}po>IoxN7q W&?c'|f?c'\}웹;p1|e W+M8_o<>W7| mZ>uBT= DՃ :rAw66z@Hw#H']lV=aD}lt auѱLp>6:D Fǰ6Qw&c3Fǰ6Swtcy iFDZ4u>6:Uq2Mci|ltLSc Uq MUoGXwZ0eWgeziىÆ'hmMnh$ף&\fr=nZ=DT]Kս^ztG #͆KՅfåBHRu`.UgRu`.U F&(KՅT](KՅ T]Xe֠KՅT](KՅt fRu`.U fRuafZ.U^3T]LsRuar2͕KՅ4W.U&'\T]LsBsRuar ͕Kˇםeo٪YnZyK+7 G:Y&1N%']*r*/R,]kٺaVu@:ʏevڊ*mA= 95 =-m-J[~:*;mֆքw%|OCODҙ}[rvyvtY .r\'.'/]=OaCD`,U2X_.ߝ/u%޷y0YKgIrjW yX/2)TY/t`!Z )\&< L k,}Zc|%ID4$pQ+P@,|=/{3Tڑ, $(٧ܒk$$$qQKRD,/-ZI$>I\$F}rX7g=蹿4~w[ou~)[Y{}u [?d֛nmfu?ܺ_ekq{R=֭na`[?Gnt;s=i#d?Sz 5f endstream endobj 1003 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 1006 0 obj << /Length 3269 /Filter /FlateDecode >> stream xMs۶_#=SzH$N_;/vNm4 IPJR_v)ىINbwt,(x{74"IzȈh%(ygx43tZ[w"7_zU|ã%i$: k%ueuY_2B4J2iUEՙEfiF˙=2D]Ђʯ+0MK`4Ix('R$&ެO:a熋"0+ͭBK.K!#CnT)̴x*v c?XDi7+Sa#zY4!CC[-ȉ91Bέo2A1i~N q+~[zd-!ȶ'{Z>D9 mrҷ [ja$gT z~`P6+ĮgYլ1iޔ7ڣq,l4ifM,*"DL(-ŠHcXANS󈊈WN8gP( aTBE|J 5;4D?!TC@[ɋKl/`:TbYuqn:6sοL-h%^.+?@; BcM4  \^DU@HF$K >GjBQ9 AQ'lLw_?*dߚ;`V dR 0%NI(hh$IA"θGإ l;3u϶3=FdםqeڹV~nrcq&9@nlZ;h,G$~Je}5(uhUhig8Jf2W?S-l: mVn;` +UˁXds7?X퟉Dq2ΰHlD# '8?.[rEss]zcZҭº~o]pɑ9zr7l!BG޻Q>vuWi }vcPgoxERO(9R#@ nI2vWRD%fWrA4~\#>guYZ]k'PDi=AKlGzF^Nrt" Oa`19/f9&gy!O٣ˎϕZOqE80FN}A;"*{RS& wdl\Coz7JB ӓ Wf?to|´Ʀ3 IZ*Dg0! GN :ab!&\)IAԞtˢzi 5iiTɺWMe½/֋`y> Zn_fun&hͦ]MbGX[qWǻon NQO4%|&Rgkk}\ynYbmde]$wyOxiJm Ż79-J^ _yb=Stg|.*oVqCGںߝ:4\.̘ؗ~lO+PmhyQ4(du-&p֟qWG@@A7WZQBgD3$^)l4N-~1 n31H$q TfR'`}P%8IPDYQ9G1IHO8`3{6xOwʚn þ7/~z +p@ t9 pΎ\Bó(+ P&FvD"3(&"H)Ǥ]X@5pno? ,nG4sFˢ^-xl%e Ea]Bã#~;c b /kTuUE~]XnMѵ\kwgSdJ? ]8 ߸а5J mB)?kjq^.)SEwϾBۗAk޺4H,}k6qMj p`hvْ*R ?6UڥRaڏo`Φ)rkl;jylN eBve<`Rb0~9+|v'FJP0Tz0YUZ%`&W^4&sE |K<Tf7umoիI[~Ą%z ĸ;h^hl6|Qma"}IKߛb8e7WW\+OԵnXw6ojݯLj,03= +@H ^ fC16y`Ƃw endstream endobj 1013 0 obj << /Length 2132 /Filter /FlateDecode >> stream xYm _aKe\h 4]z=EZ{l"K>&e]0 9Vͷs57{}3{6sBz~'*h:Lh~32]~mjmL95G5_ 5,jX%AXAagO,v5TmAX_*b*Pe#E]{Wf+e]Qm5nY;ʮeiYX- 56# 6Il-ib$ط0KmI~2 tt,޴{|Qu1!|#}"J>pAb}@w}&\Mz靶s xLM?tj2 Ѭ>3\u:WalH|aû y{uނOMdifhdͼ׼GQL>L71c7bU/q1xV=PJ_+$@0Enj%ޑ4z)L;cav-sۨAfae/oђsȥ^{MbdRY[i} G:Q)M_m A};>eg޶;̂DC{^9>y0JO26P)n'LmVo:ǚ7Kdf/FwOݶlJ{^[ #nm}%AVsITu, 8 +E8JxL0OTMMaq,Uh5SU/uiPEZSxÌmҼmukn:EFLn\~oTVMB-WoٔtqAk"X۞=sn%N_f<͙`%&^}-\N;g)BŢ?pYů½΃]yg8[1^˸ju0YiȞ">9AOq ,/U-A܄i>iX: K0^7ذ [wUDTs^qF{ts 1w32!6CqCrZo.m-弉Xʫ\5ՂzYwU ) x,կ4hrߕcM XE!,|<o4/f` 6p"ilq&W^??4&]\9K&Xe%p5A_TnPgWmw5~e/(Bx T.V! lF^QAA%V2S}V,+fgʕylH˷Bᾞz u눾 ۼ!?a\zI(=q۲q\~*F-{ylo-+'y9)8PD(mu@*b^^-qN_pa/QRtW f-XQbTtA=N4!콓ц?78Qyrt$ߢWC > /ExtGState << /GS1 1017 0 R /GS2 1018 0 R /GS257 1019 0 R >>/ColorSpace << /sRGB 1020 0 R >>>> /Length 4987 /Filter /FlateDecode >> stream xK$q+hܪ|W^)KM>>ɒ`xfDDOO|1ꛬW<3jnOW!o_~?|;q~{;n߿oOwvFtaos+>;y6Ny?N [? krq?_MЏ\cؐ{cxϼ}R;s}wۖMChGaYpzkk/kTq*jn4B63^?D$)m8K[{xQ# RzLgq=+NGYQU{uÏa_sogfS /ky'銺JFǥmHWZu&Zsh w6踴 j;7:/mCjhuIWK.Bo]چϯvq1-%x~U ŪGZ$J)ɳ嚱#K#KCQʸ˸ṷ}=`k9Ҥ*GM wٱw{)HP5h6M踴 iOWQ踴MXsAk[ܗޥgC?=r_Mes( %/a*KKlQ2-q/i4905C#e%s4s<MOr|8DAm4|8\{<0^GO%wl|qL,skxy8lslTO|2N}5_;vy^r/m>n i/;nos$ 8\0d,@42 'h _Gv( UI5ǣjoK?'m%?C_Aqsn  <@Tdox@ڃL`*a4\6^$B!bχdldtymvya7}}J 틗oQI}zN8OI}.qV//8OǗnoigWڋHT38,&=O{Iҽ8͞zzϧ=pq^$Oq^$׽= n,u8 $:ka7:»8 q`nK;|+=89|>a|X}ϭ=P.n,s=sUa|X}ϋX{'8u׽80ha>H`ި'+zn/9OezX46h5dИ[T1ơW{[m:6ڱ yzQAn35%f:묭nXTqTcQnQOʡJ3"g&n7x6O'4XA da-5N*DžK6ha̜˜7 bl5]./yk8Mns|-ʪ%z/ KWƋ{ϗV{N7N|Wg[mln,[8jd={{llllg[mlqتdcBug vv:C)C< ՋC3߼GE.!)ҜTQEYexyeSo ;Fd)si~w!T$p) !7̻w ,V˳r,y|$8I$yI<%y'|ڍ%y'I<vcI,yI<'[%q<$ydK^d|s5\re1#R8"K'5j/{Ffw =\~8qM[1?7|` "XQX|O)CK6/K>]L.&q6Zr ldp>Y˫Vŗ48Ln.<7">`q]+U\{ox>8 7of'۶FFnWu40Kq6:ɑw|bT<#wjdj[HV &J3}3='=8ދ>+*,8Xt yS/̯SDRN\=v|.,'q9s쿄ILe=;ϭ  CEL3P_y}yqll|_|X _u-1#l-ꁿ_)#c!mIѾj[<OzHʞD0Ad]5F£sљ_?>NW{bQ" 2^.Ɛ/ 5Ym>0xa6ah)OHc&EB1X0>Vq;)Ō "EEoIC(IZTx2c/a>jJ jbQ QoGoE}|-=q#? TqERjAB0d׌(TAC5gn>I(T[ B5AOjx%7-'M [DgbzL%iZъ.+JKV") M1DZ"#ea)|B&)qIvbvbT QX陖tF8aBRsY_m1=e^QQZ|Yd .:n>[x'`˦ֳ ܱL `QmF蒪a;q C&ŰS](]e="7v3`z|z_:je^9b%y{_"5jOƌ=$_̤Anߤ u-}J)PI1ٟ}U!xV jaVÛh-JVO~I9T^Ĵ~6,Ѷ8@B$!G"A;j!BNV|3JAK"n'_'>H|%3B&fuL˘x &䋙IixN0}^i&{[do>IL1d%J$E5GrGHvL~N>Jι_ R>^B>"VixA:>w&^lĪ^+;+cQǃN1{\9iUA[1W J1Vh)TGzǾ?]h endstream endobj 1022 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 1009 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-BiomartGeneRegionTrackCol.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1023 0 R /BBox [0 0 540 90] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1024 0 R>> /ExtGState << /GS1 1025 0 R /GS2 1026 0 R /GS257 1027 0 R >>/ColorSpace << /sRGB 1028 0 R >>>> /Length 5184 /Filter /FlateDecode >> stream xI%+q䞼J n`9y@`,`VMu0C:k&3I`)\ˏ ?|mnv?|Go?p?%+7.)^[TX/m?0O4? sv?.p?b/W߿vX_J'7kh~?]?~o?}uY2O([nZը3W ~g*jܞ9\rIK*h BCXp>{* }~i=@gy =>yU)}\0h7z*uȸff1K=7^1k=R^nOǕc{[oyC_jk+֥жvh6/^orrhٶ.ںtm m.mBKo຾JH\x5ѥSBˡK!#JvJC_ũCU0=BY ~_v(9W};%tz3< &S<&w 6w/U}aͽ/x_Sv(H5ͺ/a޸m m.-}xr7_QvhQmr<圧<>ISIV^i*RX>Y#mY YXn}[-VIqZx^85V ߯{3KgD,I ozC%Tɛ.Mql-cw}p|(w1p|(= MoL7_9 (N7N?9 'lR)ti5x _Ro%-%_%_R/)ǹ%/N/Y/_Rp,OzcKm%/N/Y,GI9KD 3xdچV_7nEeuFN4/*./̚lbpǣtQӣoC\V-D`qSr^-E܍Kx[y^dv'ȴ_4tMY P#[Z834ASfB9Z)˛ޘfn= 6Ϻq(ItUp1UKj^G>zZp (CƝӥQ 9h, .qi`,D˒`3mCq* U]2Y>R( N6⼙` VZweδ kbR܄)`8 `8 M]Q<0Nf)˜3]>7kfύ5/#TtH )G7ZsX 'M5]oLMh8iB -k{Ԅ70r 9_=4Ch4C}NaVB}1Yy/N-ozc~_hs 4b;h}sLVr!TN1Y=DO1r&74&S1d;3VvR`cbb¶NVl+"咃ɡmhɁ;q9%6.͖>mN+ i3d\H(EnUһ[o_dT濯ō;){DUXg('k, ^. ˦L|N~2<+f)uGY|rBO-!?:g}5=RZ(# ©w7 }{Jv :opQZ Ql=o|;SQZA7uZJ1K3ěx0fw%k6~V?o_SϚ@?:!f>J}].hS$l\U{-,N~cD`mՑ-a֓R~r/(mFYUpFD%6̺p˺iC^y*\6 I//iE]eQzYK/8M/8.NNg gW!D<7tO/qg|ɯn K1D^[0[u3|qúJ7LC 9vrxL,rle6жk#7.[ʸ^Ya=-O~靓蜪; n%\cy^G |ϙ(cg+C"c>(|i<ɻ8>ߎ~1|rؘ"hODDICr6bŨg|7/":o:+BE5+y`%>܏/yvM:؜(Gl⩕c"ظCP149J;?|\QX=s'mW|Q͍v|G74ŷ"aq̂(]bP kFd􁼽gICk"뉵MRj~[j]R:ŸY97<ر_PV*O^kFFUz7졊uˬ-|ZÇNX] ?P,Ey }|*{*YZngBlAoXW92>M =CoJq7ZC" !(i,Pܨɗމ"9>S>.<흛.d7g\'}F}F']Ƨ5 7Χ]ƛDTMnF&s7)DnI2$mɻxDn;$*8nsOprLxZpKgK6vLx6#gLKG5gʾ ]qr8}kk?M1.Qg Wn"ݮP_l mY]o0]9vqf^7QTf\<E?o7 endstream endobj 1030 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 1035 0 obj << /Length 1721 /Filter /FlateDecode >> stream xXYo6~$#Y.-"M[A%.Qr($Iha"px;?: X)z?1l/!1 "L ~*k-U[ZQF+s>\B~5y̕}xF5RȘJ0~27bm[>]!M^c&Y+%NZӌeZ4O7vyJƕڬko -PX?+qO_4N f)`nՊ7'  }f_sݫf& *U?W.Z(co pTY,5ı/|wǦ.{(-eC-UN9-1U}ظP؝!ev-uh$$aqm]5Y& ~R_(_!\i>4'^An'ؿr"2J4VÈ}q옮E -ҝQ궖7bHIA #/B@8)͟ʵ<3k @^j]! b:1l:Gmt<̑7ePzj_8/,}RmSǒ~aFU  YGLƬD6^AwP6oj0%CTX ڵEfnnc \m%$í;qT/2:TaKV^jUopꍄ%ocfז *}JWݡu*gbIN>ؑ=iJ#yowv{%ڝRZpQcUK${$3 (qjWJ">Du*tS~MV;4\Yf͵*Mv} o*Iuޥ7wx/!lz#x2Ædn~ʲl& yD,j H4,p)pv$BH^8vraWۘaWkwg_l§}]#`е,^m!s J?JG4u8{q ^*B V o̗`Xxp3Rް eCX낥KAcADgni[ZVs0+a omwDK 5@%1;!A.9g}i!MUMJm;ZvSn0iB;$n έC,]O8RQk˜yWa8B#j xS;^KYh J{a]r|ACIߠB? MטA㧧ߟ> ?f Z1=߂#K? ,o"v7F endstream endobj 1010 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-BiomartGeneRegionTrackHeight.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1037 0 R /BBox [0 0 540 90] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1038 0 R>> /ExtGState << /GS1 1039 0 R /GS2 1040 0 R /GS257 1041 0 R >>/ColorSpace << /sRGB 1042 0 R >>>> /Length 5189 /Filter /FlateDecode >> stream x;-q'5t` 80ɒ%d٧k'0m7|4*Vp%\~?ӿ[_~>mo8޶rߏvpGpGl\?_ICwIB}zi;5𯗿OKәcN.2&|>9#kkI?{}<OH?]Cc|~?O?~_L eטne\:s%ޝ__N;*j^sz咆Fȗ^zOqU\k:Mi PZ?2~ߣ/-_[Y{vK+c̯ʗԮCW1MvCGKʈ̧l6;XJ!_sKqwxW}n:6R5QVxϝe]3m m.9_7t$Rr(R)[Ze]*eBۡKl_h?u\W^`D]*XZe],OלTkOVW *Oh[nc̺/Q0^exگw;tH5&ݗp!yqiae]Zl]Ϭ$]Iʐ-z0 FgYu![GTNƭӷ`1)k:l>zRS>þ/&oSX޵©^a>|y10 0 Ƈ>o,mCO\!Z?ƶox*E/&\C.3,bƧu~/Tp`fԶrPۖVjrPQmj[AVj[9.N[iqYaq*iy eq*c(^s]M\?|<:5޲XJ]+TKGӼr[ˡyм]+ GWoy"+EU3CeLE=8NijXic o+֊ë[ӋVdگ[A,PjC1.lg|k KYlwka6wAW%I/pЗMS64v}dTZ]VZP҂RJTh| _aS [ P2"d) ZZ‡rE 4o U|8*۰rk,+[޵Bh(/Į1`XY5]vh(F9 kY ղSEk|Z5}f]tUZy#G-ik>m WgBCA#,!)he R `3mCqs_ilWQUlWucd o$BAJK#w[ʔϿl9a$ 1`8 L0d&>0AW ̫62}ma9r#/0y)i0e/%B V˻V(j8jB -B4 &9,YmiU<ˋ##B#BpDh9*rڂ.-8 ϰ00hbx`bC`+=Cd -Py3;*﫚-P0+77+(WRSfhb߮/ o>x;DdE;rN>Y=x'R9dQ>d'>]_O|2d}-l;Ba7h=-[l;m`.&J)H)@hj[-r\D9CYELJam2fuD`xZOUܺo;23osqЌ= 4(ms sgSMޮ{GG5g[tb)=lug:Ԝg0X=g}+DŽNN|<3]P3ږͫLN*mbqzWSkvLlj& 3yZdZV1чXQh_Qeqr0 {\FI=$:I =ݎ'P۶0Lr, x0gîtNqۣ`eXv8gʎtUN"i늓h7w<:?ofbK'%b.O sgvY# S۔0[OPgI0?mͷvvU38iV̩ei;Ϝ5?ofWR 5}&r0n#Rll{$O4;߃!_w̞\G "nK9r乹6Fƅ#O; gxb3f-Վ{.Tn(i3N1 աdC_p1\Ÿr WgLMd̶t1vE k/NvVaDG먷HBs*q]Fc"tKv}{x˺6)ٓ,׶Ҫmp+м.X/ܪ'̼MGzl:>TaJj(tr3L?zMGF܊Y: *i\Ώ(͙c@!`)\qV2i6q^{^ "O\ODX{QN@{D܀">]`~@D\׍3us"2N@o2s}E@Df(\ { G Bw8x!<²o*";4sfzFP3,lgfalA6ZE4jnχ3au9Err[^ {%oc ٞ,g( ey0}e<ψZ ΃`~ǔ!TCwazpSei,dDvvaF(XZOTY(h),oJ׍/P8-QgWTy皜u~,H .f[dߖ˅CA$}P\N?J1=@{; ˖eo}+P\/k;ݣg-\ak{ .ܲzp tt^޸r /e E % ^v `nx-'2n'\]&k%[3 tO呯:/q g|w {y^|R~!j ^n90y&]q] ʱ\cxe)flhq>r{^tfV蜪; ]J8_Ϟ{E.3QϢWPj؎^gp9&`~{tet gx~9E̳ rtgxgx$29Ep_(K ,g#Vz?v _;?W*OvJ*yy^ыu/+s[l/q4M'6'U>虙c"9 ]Cfhbv~"z1ng_^E 7wVnhoYbQ vY !ό1y{g5t_zbn^hu@'D.θe18 _i}dZqͿ k^sb;AVp{Crˠ[w3o۷7z)'n&7n=ƷmRct䖭?,}8v^hgs?rɲZ | .p/s?w=]ɷW܂I)X8]Lv0e {lt?v&岲/OK>T>C}Y]?aY\B#oC tKw+YZngD0gm.CH;s|et_ ]]zڑVR1JUN&9kYʁ7E|-G7}}wǹl87~%Y0ɝE-~$[ޚk[C*!Qq#ʹD9C"=:$r /![Iattv+_dpsg^tIL.erM3-\,1ea>;!w?jkTg^?TpÀ(8 een6wɾfÜw swy;g1xfRVxQ}gt endstream endobj 1044 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 1031 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-BiomartGeneRegionTrackFilterDo.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1045 0 R /BBox [0 0 540 90] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1046 0 R>> /ExtGState << /GS1 1047 0 R /GS2 1048 0 R /GS257 1049 0 R >>/ColorSpace << /sRGB 1050 0 R >>>> /Length 2126 /Filter /FlateDecode >> stream xId5 +uЀ %4$KTiqb;vw|y[wxu|pZ{χϾoK:a//KL_?G#VG^SOrϷ? _\ ˁL)WϞܟN y+ xk\?8>z_}q Ƽa F e/K?|>|HQ=?StZ2P?ᩘZ{^XoE:MmeS5ΫWSܕ|vk5BS_EedwTdB쎊lYhQm mW;d 'b5ܤ}aGMG4On,>Txpsуٟ|UǔfLc|+&QG3,'flo+u, Mn`WF}5OK/lJU޽*NyŴ&yXdgtLv/c7𑚊w(MnGSԏm6?3SwMף'V]5h>h wXSh|39Fqpᵍ-ɮq֎وkx+< qUxyGjuRɚ ,_8y|T&/&ywN^ mLͯ5ݝ)2,<ĺ"/:.'=~#4/#X'=y:)u_žȋ{.L>ɯh_4kN,ɴrj qՍO^UAtM5-<j^dކoo"ߠ O#dFA^ LK ϦYŋ0x7_))ޫs^yw}xEB~,Ik ^6[rbN9L:L)#<y3htAsjGꅃz͋5o@ꅓz!jz͛ (c)W&/fUSpHUE^̔8\r5;9\1 +?h~|T/̯yG k4h~`~*׼ȋi~'G+׼ȋYNJ79V<Ҩ4@}}4MZDꝽ!wh^T9ջѱүډ}bTFɀ7-`8' a2<#ix$]Y=a1G1:wR9÷ݜ]^8X_-8&y~3FZLj|o&ޙrx_&iu׶Mvh-3ϲ81qFw{F OFZOV,`ǁF#9^woygfvY0(ݏ uR1>93+\(%Sv{y^ʽ4;UCk$c>P"X=u1zAE]"i>h0Ѯԣ߇pX|qgk]-Ӟawuռ0(m娛gI3" ÊOlqQZY3ڜBXn;R,R;]?r'6HNVb1,juv?\qΪ îՖQ XU4Ϻ[}.W0P°;;grgjRh8v2~{꼓|> Ͱܽ+DC/w툝oVg[l_YnW*^uͶ:f{2˦KV7;d[9 L}z~?D_܌7/nf9m |\{9t33t_ܼC7` j{G-{ \|[I~RO.gmxFta#Ö$iϵ\}a;P&.gڟu&5_c > endstream endobj 1052 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 1032 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-BiomartGeneRegionTrackSymbolDo.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1053 0 R /BBox [0 0 540 90] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1054 0 R>> /ExtGState << /GS1 1055 0 R /GS2 1056 0 R /GS257 1057 0 R >>/ColorSpace << /sRGB 1058 0 R >>>> /Length 1830 /Filter /FlateDecode >> stream xIF߯#b܋{92 H9 NdP@J搿] 3C~gkcGյ5^ʼ۾n_t/ޛv5}zysq'?yG3m)خYIy\W~(}w$[tv@f۬AwۤN8tu_h}S?f0ݔͦd|{OOfr^p? z'p? >/8y~/8y~zK,8y~߂O}; 2 z 2 z SZ;u\ۋ_夙,*ZNs/:G}WpO,:G}HΧ>W^+~};a v" Nxإ^$9#(:G=o_?x|_p;έ<3_>}]ɳԫo%j#>nc1ڭc}5Iy† ~GvD_v#8yR 8TҳCHžO*0Öiy`:}6p9K9T$ypLt ul+J"cpxp .-?pG[z}'fJa}grFbCNxڂGoc`&NgPj'?BM.GpCOy3?f~6t@y7EnYnv#rnY.u#Gx|''n~»''y3?Xn5#rn=I71?Csn~p`9w?7PaNw`.,g =?-7z.?[r|{'g,*UxA҃ K%}Obx_M~=@?~2mYZà3t~ۮ',Ջ)X=P: Ãư{Z&~Svža|<}on^M<ՃT⇬xwA endstream endobj 1060 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 1064 0 obj << /Length 2827 /Filter /FlateDecode >> stream xr6]_UpQz+N%丶 WrLrh~ he*OW_ &۳Wg/h2zhTLK\^,doRvWθߕ3)!4i$I0 `/ ƒL{~nrC.M[}W;sR] u++m-Uy}!$ Cm3 Y$(N -XMćSfI.nV[RBaž ۊ6_x Pc[j.DfrFiihjYm,?QEq!"P)H._Š(-pA۝XVKi X$ ?T;;$n lW0o4%5n@f0:fuglCCR=>8Eih몠!!*XkъlZS:^-SE׮h.Pxd4e]`J8 K6+.)ljLepo\ٵ9%iXYE]4'3 ZǽE!b-yyK qLFjZՠeg2eO$@UH `nZlMK-[x;gRT'#Rz>%7JNE7yO3 gpC"oaA_y4=aGE,gY+`ELnz}} 2R}}`;Á(a" V g?}%0$Qkwb 8Q1%m`M'Șҽ v3ҘHKXXⰬZJ _<jidkpG;-[~T-6_wzdk`F3/ ::o|=ZrK~1%o:#nV) rKj!ߙ`vΎ>*qxQ I^zCwG-f[-][j2S"|-j_V]nM͜ fhV# ڝ! a *{3r?/׃C0B;cP rW综h~P WfH7+D҄iq-MJ s( ߕ4H (Cd5}ImQnwqWۂgE*& Q u;j5NAbeg >Q "9K5) 2 lx4"hVx( Vr(ǎT̘" #$!lLi1CxLkNF,#!yQ'jG}oͣlbJí-SEKu 6{?GhxM)=gmgA˂}r xם&:|\ި&5;<LkA_xls>B'Al<?+{͇D}x`ye(ElJ!`Srf.ȁ`Fp"z"kDrJN[#!y@ȿ\3 h~hEzN@Zo(Q\Q=8y"XU'-q".$?*Ӽ\B}S(z. nv˂`ޛWW̃6RLêzs~9w7 2.8e{d?|xo? ۫ߧp @!s1Cd@~fT?^v fK^L~Ke6Efa9L}\!O{~ ͹w3wJd>%<J/X( F!2EHՏ||ge@%ӌ~x5(vثldP endstream endobj 1061 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-BiomartGeneRegionTrackCustom.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1068 0 R /BBox [0 0 540 90] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1069 0 R>> /ExtGState << /GS1 1070 0 R /GS2 1071 0 R /GS257 1072 0 R >>/ColorSpace << /sRGB 1073 0 R >>>> /Length 5424 /Filter /FlateDecode >> stream xK-9+ΒYpHF $WbX15 cy"O.FEUwW·on@?p~_޶m7/?ζr۟rnn??߽˝?*ܣXom1N48df׿.`^~toM_?w_g|(x_C<7OH?p&no_vܾEdb P|aXը#Wg?Ovٟ^s{yj&cqibZZm]*mB롭Km[h;u 퇶.!i2S}4?׈r4[WpҴ1 a!Z\۳쩌%qg_GCB:?#MLW^oUzjG:T}r艹t?'\?=P脋$Ÿxlsi똴СMp?G+ӶvhRib({t1ѲrhQm[Zm=mBۡGm_h?}._CN`D]*XZm].O)}V:FJ4OލĔma};\OŎqJ|_JA{Wr }܍{eL1=>;Δ1>{-&)7EǬnћe8*_{n} ھFNt ѶvhQm;畻y#C[Jې478q:-bKSJ¬._6S|5#! ̞++Ac3x8" vOa^6x@{ʇ%19MT˽:DަQ+ZNx>[cu?;oɼ|cFv̂v̞!=teh!z6Hq`T>e_x9Ɩw1)ņ63C»J}Naza_O O;^y_xR|Dss7/4=8vKim< '&OӬZ>:]ync@ԕ'=1y!qh/Uy':g"4^gI TxhO9ȟ YÕQÕ|؀ScxGؖ1`GP+s)cxsU3}}3G>q=[5_Urxhp<˛Pmx )K oʡo-+[r{Q[(A-k{P|˛7_9(Q GWoy GWœT$ f|p 'RkQ0=JQLBƣTQ*ѳi#Q G}ir(%CIOGi9xWb:~܌votrY 4-C!b&ӂŚlN#-L!6MqL7A/|Q1BZO0W"Z+S OW;1iT0Oa F zAFOà 5GӕC[^v?t9:nF4# # r0c;Knz,J0Nsa-ozBgwû^PgwN)Ʒff.T)(<%cJob9%1(15(QNAp J zBǠǠ'4(QNAp J Ǡ9%)(ApV c"zDǐpdwoZDŽiŧ2nj(of} xd^rxն\ߎ큼xW=!WјhLyQyNa]4#K@xhV9h堵Ak-zAZQkZhᨵAk-k{Z˛5V9h堵Qk GUZkyQp(80!6s)BХP7=1xT\s)&OthBN!hX\6l&ü*Μb6to]'j\T> 1ZꞱb%,f.ԁ9,{Iݮ mQYMhZnB[T7{옠ELj$ < 9d:yY[$)Kܶ/[eyҭwth % %TKhyd ӆ7{ViE)->l44#漕w:; JK (#YfFd)%CڡrfjTMF$ u!gDTWiuX85)H"5L$S .&7|!S#akL꺥sY}9Vk^>VR`3w7]9MOȻ.|Nַͳ8I PU6)&+KmL&c21&1]/1rɄcLfx)L8d=d7=1Yy0fb l)_69R̽ S=1qmV"=YBbnyLfay|YjZ`K#Ƨ)z9TsZʕ8Rzz׏54b?zջre]އkgQA#3=oL#Ȍk?|r\  3w &b+W/maXê%bqm%J0vv\۱ډz}{>=* *)a>{eam뢈~rE՚@ElnS4fmm< <7R]]X}u]DҎjnjZt. ֹ[[cm]/|%QqV}zZ̛tiIgR1.[gq&+&){K=ɏIGl{ ]{DjJQ#SنsE\AY˒cm0N^H 'kzy"f^H\b'O3ΞnuD9y"O'OO*X36Z}}[1BU{>ܑ _-e>'ˇVTqY  lct!mpF=T\N,˨jn؜t/.PF\թUmJY1$Gdi'RG6׬*:g ׂŬ^+~eMNUvғv1{|Mq!Ÿ >Ý .] (maؠIF#"Bld6ՌADnm8ί6yg" 5W*Slj=V[D=vfGs#@lP$f50]Wfpe_宎^3^_|/,LҦl {LpΈm!\(kE']7}Fd (,n̏湝3sSdÏdx>Bv`n m'{^-A5l&I7=̜~DC8ί-}po4;-)+nz[i#ckMEg8`7 1vb6\W =ߎ66ygRefbk3]gveWGגNϯgN&tH3pVuKf\̀WѮ͉x{!0'vO vBVB6B~'AbO෣m>->.CND,E ~^,W.VzǠ_˛) mޚt VŽ4/ AXu͙&>_%z]7.ut[rVyhĮrl~tdU7z7  oISቲ XЙ7>N{n\7{霴NpUF'e$\6{( 3ѷHCh2J_>`mRz0> &襲_# iwYϯoRݲ~LGfWN<=#h"W*Og$I;u~> 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 1078 0 obj << /Length 926 /Filter /FlateDecode >> stream xՙr0~ S md&vMP  dҧHG`;$|ѕ >NF)zr&B1 Byc0I39_(Y"ܳ~nFHB'1xa@<Akz3p'c/͸}7 s,( MpJ3!kww.#Nu" S/q&k ܩ(Ww319\WE$:+9/9q] 0 `G}n­y;(c \DX%)2kf(3)xPC>u<;:xp+( QbܱR:@V=fR1mJ}zougn!8D2s4GZ0ILWi'Bi^Wbꁈ+ b$+dQIwB2 "zF'C}8G3m&mf> stream xYܶ~/^zP-ഹ@+ Dϼ$p93 yʻ͵P*B*˒0QnޮQ735^hjkW?~wDXE&yN4dam-H47({S(=Ns[EO¯tԆZk_WuCeWϧ;mьUr۬Bg[p+^#oƁN Q<`۹*DZF^¸EPhEv>mL\$K`( T!|DZW"4%x(3JUFo"3/nڝd|d I`][\A8e[ք̵5Vݙmd[!]ío4l@ q4۱ 8NҔ3Uo[Boo>^"^<]A^^\}Iy[SA &'0+ W$# p`IVܣ,UY0{&A XND$uz֡v4U=N*S\A/u8} j5v+ݭlj;& GQ?+cU+qH!I8(7@K-5g[ !%`2$vzヅ NDytPM5 @QJVc<B}u"$*]}V8sJ~gݴ.x8svJ%=RC{s׎Tm M'¢5ޯ$xPx2vRA&&Zsy gC"0D"\p]kZsciNpgsE_noP b"Y1A6F HᴊzX.b?IKhg nwH- Vsm3J1ƲHS8K!Uv4>낂ITTR]vPBQ2Fy3b2Gh `<>i`Lod c SB"TR+b Zopwl]h܄vjFxF$ҖMA 7 RAIP$a{GCoØ$: ߴ \p_e:HwXL S;iPW8uMU C>jTo<ua?{3MTؚ1?/ g/^sUųwG`ȾRK \LTOBÍ "=Yiҗ `enR\<]WzY8]I3"y񅧩X唠 hTK =ėa{s2r E2LgŝX*sOH'C7vj52h#N" S;פDu|Ca6$^%U,DqN-*.(j~銓es^hL 8Dl&L}"xC=NWJTNOy5~) 37koC8Ų+ϖ endstream endobj 955 0 obj << /Type /ObjStm /N 100 /First 949 /Length 1520 /Filter /FlateDecode >> stream xZKSFﯘc8dJQ2`UqBqVHD+#XX ୭ 3H"*N0 ~ R2~3k#~#sҳs~ N,FI!-4z˃Dq#-ɤ5 ;A  ]$z !_!LF8U $%SZ)3v#=BDa]д@9ڕ/bLEsQ@ d)j(ϴ IT# bB*#ثvRt :(!(ڔJ)`:*u4yN3# eQ47Ҍ mKP950dL9OP9DI>#V86IeHq%CVҌYIhP+.{o'oH3ؠ?Cr6 4$F dPMӄ9g P'gkAElsF]%lj&WOCߐxEMG a!b3,i-y?l )w|AxH ^59~> 9JD s$@Y`mmo3`h%s9@< !T ^>A/gwu)0|bȮo0u{o.:v<|nNx ۼb>O?}ǛӦNc**8b9N2op֍K,{p"7 '''{.ٹ~O4ѱ[D5NK:bFg4޺n~>نG()!>&t4?㽐[P읨E #9f>v$Ѭ;:H*xZe<]cŌG6DF[~b]_pKvȀKBǃ+J n%uZ%^ NHxnhn#T߅w]z puOvO=&\p۴4z%8=H n_%חo_[9pRz(CH.wPWmRSLͺKgWNZdAvx-"ӿ*7 ҅Lˇϼ/W 5':F!F!ա ;@5zB\[[h endstream endobj 1087 0 obj << /Length 1776 /Filter /FlateDecode >> stream xYݏ5b⮽ޯ @P8bo;3Rh Þlhѷg_/Ξ_41)FUƤ(XsJRƢ2eٜ+N-⻳؟ qJW^讗(#:QFΣj{󜥄yT$KHhu*9v\G4E 1.p*s~r6b6~s[^|DͯqWGv+q|X( ??nvY֜&$奓l6ObOjۈ4ZtIK92 6N&NSNo^>w)xa)}ּ={ef]gBqZvw1Y>nBj&?q=HqH eaeٴjwHG_X>wґa]Z/s) e)oFb1+;2Rt`VoKŴyW=NSȦa+˩Cq0 Ӝ2ς]G^aJrꇎ^w3`NB<5rn:ԯq+ w\An8pr2DV ΏZtjjYL38ﲭ".۫wW;8[ӓٜ'll?-p Q5=A:aՎ!$wW6,<)#F0hdpq5a%YIJ2p*Mh*b(sq.x`CxJxz`/w`QfL@OhMZО2F Dd3.mJKC0vMlPf׹YQn7mmA!wY8Kyk oeSNs/o!RB8l>km kHX 0MfCnY5ZQ+nC2P+nؗrOQe|+Wږա]QP.,ԥdp1p'iz[7HmnJ+fHXw'|tݥ`FXњC(&r7Y(c]Ծ'3MWx* Yic<רu#&nŞhzl}͡QCu\u9<Μ 'U mCkq)C}%oDM%ߥW~ze-o^z^tуW-lx_B;-W*dwcdpP */rX.A ױ PAZP`օ ,Z3'IP1gF}LJqhCض vh?m'N3lGqzܬi991@%ښÝZnm]~šVɠ@9^Ƨvl,d;=YW$ }.6-RȢqA؛ h endstream endobj 1092 0 obj << /Length 1857 /Filter /FlateDecode >> stream xXY7~_QӶ} DD(h<ݞ>&}, Q{p@$UZ]eW剂u/.~xtid #G VD 0JWU:RY}=mr]"R0Zđ b#EӠl.i%-8k ^6i<.~2B1َb86TW865Xm7ZO,dh{˓qSeJ7L8~-me_rMSv5v|͜ t'Z8gb-âx玲kx#vfCٻ v>r0*FrۢbqFM{ Y0nр?^r3/B *e^5pȓbo—i9aВtES۸0Lh=dF>h VL$&ȸxH@i𽵞~dQ,3vRVU?8{c}A8.Mn1W?8 +FD94('~|c)Kγ^Q״oɠ7R{dTL9 z-:<shUjDQ*ʍYzjJ{ NLtrlWÎu$$i7l0Cne{l+mY+f,PR c}Yݍ#uu7|@4A@xT@srm(t=vj*Wˆ f(3q <4[C:dXAx\wA:(sg\9  5dlPf)z1 p!FNv }+8`f >$ۦTDsmDk޾]!N3&#RߏIpQɑIݝY!~b Qv?irlM=ݙ9%E'#{3ழT6xũÀ tHG"|zn56zhj3"xq?H.1>FG<*2̣"&q\BM'K&24VJ8m~cV~DϝgկB ]sh޸. b > /ExtGState << /GS1 1098 0 R /GS2 1099 0 R /GS257 1100 0 R >>/ColorSpace << /sRGB 1101 0 R >>>> /Length 25419 /Filter /FlateDecode >> stream x.Ir$8Kr3qr @@n@,J=Jw3gK-s|q񸸹yʷ?Ͽ*~?o_~P~(q:<?~.gѾxo&K\gsX:ok^Ѵ%oa{Vݼ{WtbJ~O~?KW|G~_{ME޾PdPڍm]_ڮ4?SY{Ƈ|G݁<v]}}џRO߾/]7C7wm6yz~ܿw?l\{m+g86*T5'|~gE _W++~P*L{h{ݿۯ)Gm{[J>nn橛l#vD--0kdy>zYo#kmc:jӨeLE9}O%wwMEc}-v2 ؖ*c`|AGA_5+{:-'#kh:J˾֏C>^J}4Bニgî񽳷Xő-on#4JNwwo9VLܹH>=sޙDݖfHBIu4c+0M `.g,n0X&l(` r6I=3^rE$\+!l{fX$%% &`.]yw V߻7a篰v%eRΙ%Glz*KMVńdv qN`9MMfw,h2klߑMvC[;zӄd򫭰; _ɫF'd' ɢ `4],[ƿ%6nyh_MvqmoMvFkFKq]G0l4|`ύy-AF wMˇ7&wh5 o Ȏ cpLhY0bS3Ԭ &JMv QQP.|F0F(1.hz F 毞M5Ҍt^0,&/ah{0nX0+|o&}$4h^0,Z!솭F-^ QvCt$sH4s]9h#Hdw78l/aw8ue`r;Fݽa4 ѯVzz&4})7&_4VKM3ddo7`QMUznF\$%]tMMcFY MCn;JVt`ݶfQd7LfVքi;_; aTG怨:27ɁQ&aX<mQvFYXo& e|T4- ػEDG9180ʌo``A=k^=& tevc`0'QvO^0, 0vf|+2ce7ģrb'0ԁQvϡsF n*Fcp`0'QvO֓0FMv+`xJNQvD]0qA5sN5M&QvV1Ԅ1Ld7,`4ٽɥmkFXI51Z$&aɰ#aa-ae,T05VN&k3Wse7̋-x΍'QvƋ;V}F5t4B@QvAX^v^MVb0ːad7&+O(((kbb5ں9d43e p%^0 jܩ,d=,Mv\Ņz^Qv\`0膆f]8e7Lø8. b@<$&a ,v+.aVR@#ضja0m*p,T>"\[:a( b3{\,J0&J7q ,vl ׳BAi(FYl;`K搼a4Yl<`6[jad [47tliтe0l &+Z +`K.fa`6@^+^2hc|e/QVioX4}y}5^pd~@6 Lp U>q'sqQm\'n{ģ}uq~b_xO>޷}b:?' '{ğ8m/_ӿcqҞK{/qJŸٿҞU9Ҟ#/<ҞK{/IO ҞK{.g{~` |2>G{/|lR,?ڳ|7h?ڳ|7h[Ygi8 },_g2>oў7^}G{޸'l/Ɵ8}2>˗Y?g{v62>˗yyƟe|='ζ_=e|=_=ϲ!p2>yOў_?m|_k Sj셫}bS\?^X`ƕ]%f{n̕_`g. gucNY f{I\1sU/ "v,̯Fܱ2tҼ{9>'vu+"nXW(yo$pCg޷bKljS[(o8>s4Er$'JWܛFP67;6l?vaxaϙeA̭ܰS`:P߱77^'va|jblage6/(y~Kj_O{W=oy+5*lO|=;=]il&TWv?È9>{'y+h`O׶'_2>[::|mOgFn'/mK3'~ݸ}kSq|>x̗lȾ=>m#m=_xjsiˋPh̅FUY2>2vsq/?EU9.U@Ht$]\&R5,'J ;yB*0jgԤ-v/H UXX|ڏ(xphGSlSj1hgނvaIGeqpwm:FI?D;" 䳘 8IϏvRlzRkeXűD{' ˉ3~.@-gtnOZ7~PXz,Nyh|y }RvC:!&_8z<&k~t/չۦVZpkr9GW{ݞWd2.SN ɿZNYXºM y>aޘ"^u`C@7W<TVzl-m{r~6zak@8&ȍoP<["*?"{m~zn8Ht LsrnXz\VęM&ܬIL^*y+]l C7.O/U%OߓEQa"rn3yBrP9Aν_rUhApx3̃">s MH;#$Krw~ɘdu6Vȕgaq@7y1Lo3XAU6//qG/cƹ~'U9f`xN w؆F s}WtŦO Q 0g8Is&kS!ic֬l@g~~cq:H=&**$+ō$qpfNtKB1>.ּ7fpA8h.a`ALC':>ŨECb[njI  cNxa$PsqœqHu3NA z5hIp!Y7`qqt)] SWq' \]|o2/~Kɷsw30#6:dD 1 Tǁyd("=C 6hh_4c=XF|^suFt%Q xtQN,u7,p[Gq8vDAcw39`vtN PJs0:\?V;c S- $nj*#gX|^뫮>a"h;F=JHB \Ղ3g[)͍@0plGut{zs!õĤ=gްF<[g._c<t~'?% Iy"3=Y.0c&=3WpjGM'd!o`tZt?%'Y>xI!۞{=fgbE1+8NSYW{pIaq Df.]&bע9# ͽxq8qE.(%XFE4|>CXf·i W9A_ A9,!Ji6 0x&O1xq"97tvB62&>`w]íۜ1p)~C~~F&8RabՉH!]|r8Pkshƙ3NЌy3,qxj`1؁h,᜘q,E7 y8G84P3X`\TL7 `%C˜b!d\b@KB$W08VŒS- #vy0x'_jp@X^l/j*`Mα)9āUgU~~U@E}|ߐƨ0.jTZ /TbO|ԛO ouG} !s&|3>X?gf'πQM.E}@*"^PHQ?qySpKI 碎(>׵)NNh?;)]ȟߤNLs Dah1)aSw/iJ~gti!t22dA>iVB3U^kG~ )&\p#t wRN) /__,\HA-ĭߍ-(y!9}RRu= )/qcjDȎO)Z̉߂@;G^I~ !=o[W6PTK^f9^ _ڞv։59Vڦ6boX[?]ϢWhwŮHϹW 1/Կ52sNzwQ"_z?WP.k/\ O('BɉpY<.9SY9 OZk.Hh0!(PƗQ˷#sa&v2;yMW; L(;jw7~GO3HI|`xy?Ol_i^)R?N!4VG: vF͗ty~#ǏUY8> kӥ?v{]G\F:#['vMbFȒ,9fV] Պ1uj|Ja^MB8҅vY{:ɜRHIIuH_zy{ܗlE@-bfj$J2!.ntLN.04<2~0L߃O:ձ/ mLؗ)̎,{&C{ M';r=_{7w}K ]3 W)q/ pw -. ~TDO"e!<"zc_o .gGX/"k@50\`@EuǺPy4҈A{.G8s^11?!3+Bh\׳<>(`_T$4p&7t-ؗI"f$ʵ` OOQ?0)4]eѾH'8?qcWؗ/g!p ee5P) e4'SjY//$ ٫m ˻<( 21Ax_> <x{{dpNJU>q}ǘ'p7~ IQP+Ub;w]Kg^ |PkYEx"#A8OuU̗ {8˫)UW`Ĝ{'nkP qHs;vTL~H{ . K^Y^ٶ}qW~ut J S?Ox"\z|820&ppY^¾xTuׁKO (d։ Ž` )~]ݦ q}8C3,Y!.?Rq ,S҅"'1saׅY[*oy oLP+6?a_P1ň90É98~h_*oAc{о0z3dm7Ļsc\pKO桽۶/XKUxl kĴgXߵK -0v`LF+f}"˧Ds /{ۊ5oc(y OVUhHsUO<qFI_/$,Mҙ9'ƪu#w19~>i8G~͸=6E5E&W :Ly&NJO) GSC(݆Y::wJo?m 5ڰ-؇Sc>.$OWN@Klٕs͝c.%KD ?;;Wdsn63&VC+UlC $l {YS`lI!؅!&6a:م}g|wH%4٫K6KlB&\]ӄ6{B!WdO+Vd7֥h C4ElCMlA |t [(m6U]qzdb.mvf›7b*d%ȱtuH$/Uk!>tC~srAf,#CP p~ 9s;|Auz#.Bl7`L/R?@zVz."a&[oլb{"Ȭ<-2H&Ćߗ~)±z_x*~V."Bo5T 9}Q)5]bQ iȪdw/v\C*N/HgZ d_~tp4 9i#lv]a{"W`F9yk=oaY=M8@~pl u#}9uFU T~^ m i?_`KP ;gA 1xHB6^Þxa?ClE츌jbFxz7(mUAwnBѐ Ll2{y8:s6'lkx ټKlBy ]MĮ3̧d/&M/۩B`,ebA7[R.O=5|hן9pT!EobÃ]J܍aq =33 ft"nX/7ᰟ~M#ׅ8Q0.dϋ-W'; C`poSσɻ]!nbV )lC݆F}=9V,Fi{nl6܅$i2d:Ŗfbׅ4&9Ƀ}0a.v"tMNaM~{=~~D28SpD&m% g~vDc~$`Fw2)N;l+L2'A~x]lVxk8@aٛߚr{ؿ}f8XOMl%#WmP&vZzFyd ӠOަw}a>3Ss"?lOBMT/C4w{Ƥ+h.ӘYemV?7{^b9';2J,.dP]^b Q`M6Boh]XXUv*rCʅ^l4w}"A{&}p+l-[e? 4?#ʕMhىAiGXy֕q:,bW&$fgAfG`6C&DٗshMvCoaqP 'x"ٰ`}5+zuhh1ٯXΉ%-kuT;o׿)KJ Vwy 1aX.?!ߺ` ,dNO}2ªcR_zՐ^s&,)vF~7&pb=wz\װG$ Kww/`<Է5Zl~ALl~)Rx=<X > }`lI\΃Kˈ)Eل`zE {{U&- 7G\k0t꼧ם0>'VF,0o_ YÊJYp_@!6(ܷ}ٌ׬}+yH7 υssLS\!׭p<+㹂u*㹂u<+" ~p@E9SoP19Sokp/p(!P9jT`Ox Q3 OD۵@s۩~yw xD ȅ׹jT]+nj(=>y"x_.5G W@ӞghjGRQu; j)[Aǃ8rI5f ;|vw;6G# u?G"_KyTN8A;e> aRNPz8ZۙX] 5gꆟ:NgiMi^ '"2Q]\}{+Cc8&!b?[@J)k!|wmb)ǙTJ:RL-Fΰ$S0M+i"^9c iR8sy i_p0ΰ )iT_gw~L:|gTKid8~WC`D P (|ƶӇT{5 tF<3͔pwL1U ߝxR83TJ$NK/IIX%NS/T_INNd!p{=;}ltӗGQg'cmxmT ʽ8($y2_ d Fn2TF{Rqs2m+1>986/ X=8s .rJG{K`hF ߮lڷthSܟ)9 'q*7&U]2'"^3q ܠPϿ@;w(8H4k񸲾0wpp9+~}.𹯡B]8:DpfB>EqڍܥQc_19S`|N*G޿< sv'$G/+1>){Z0>WDb `D8pc E "2. >SO=(Feh G;+ [1>ȩgQr0F,GhAi=u*"5*Pv"yh9CoJ38ڳ7/8s1 (wC6Qs[s|k:84qf;8 49vCt W*dq]QAҩxAњgsd?9jU1>m֨ a'N8wX%G{A͚#mIry= o8cA">Ќ9ؾ 1 ҟI3LrnZĝNLN 1f'p%ˈC*\`*8W=or"؜i|ab+EGr49ZC +֨^_'ڗU3pti T\b]ף oH q7'|aFn8r5x}>8Nl琢9kq|R>'01p~ Pf5'h܌A1@`@f6b[U}!8+8f;3B/Ƨ \8Esq w*>wgYlf+K Zo'3j4¾b3&a6@7n|brWq6189hf{nܘ5'kjO׼==MoĨ,ywjn:'3|b!*x.Z9Ƨ4W/a\q SڈA'81 u>0;05n0}IYƧ8IG89N|FSp8x^y|1>89Ԑ qk/1> \ l /f`ja1>ũlFZCIt7t^6T}1:wnc|qkدO8do 7&Gvc]1ۓxqmخO{=՞X[=+c4bf>R{¾9ÓxW\jO'ƥLt_R{b/s {߁=ǧ(`<7s'wo~QzlTop:8oFhRe4o0 aG[c>j  P\^6Sc#U`f}wo$ca|*#I`)0>5 s}p7Ơz~bd=1%:Aĝc| S3B+J`pqg=4֧?n`|J>NL3lj)MlOlOPtgf{a%<`{59>sr|2&'05~LYX߄WyCg֟!Eӹ'|g'OfS z_SFqOB<CsS4w4bj~Ld4wL#x$[R)m9ОP sWsg'{S18B>bN~}?vjG pqF#&Vj$҅|o/"+(^7&9Jdu?~Q/1r:mcZ?YoZv^%GU"ȊB4G#.'38% lB4p^w~F#Ρ~ {m>L!ϠJS$lg͓|NFܖ*?J)y($$0{eFogͰ^v69%+#X2'iNu`CVp-<#jʍGXvӄ%>aNJPuIK9;q˚B?6fY~ 6NMⴠfWb@<]*bqV;3F&a|`>=l"^/bxmEv~+14Ȟr)/>b>۽{b_1G}[B6R]P ӬA:]-Ml$mvOGul'zYP:;~rx{W'Vb~ /x]l xTc b[f'TdhC.Ħ|󩸵ĆhW(5Hv-SX[&: 9^ȶ/d(Ac1mp@אz kQRl+mc쬗hƃG1?wX0XƒZlpX/`ةXযn~]؎~싧Hl*V3AAFE&NګQYlF|c֤0u@{lLS'MV,tPPT JvYKv]'&q;AAm2T\7)6AQiIJqQAz+Ml} W.]`Wb^lw]?J&.9&@N+_(82) 'fɎAbqEx7咭>ME.[֗صAZbU͖],ŀY5k;qD}u6Q_]ϟY_p֗&~/S/oj\/E@4 w=iU켎股߳콂-]iȷ.e~oib7~scũeb'!vQQNUfbl.dXbX.<ž|Gs=gt"bmͷ3DL ĦY_~RrjȠP>4f(]HlñCtbBj %&,Ș[X6g4- gTNv"Q_Cl[(j؇+)bf3$PgUF# 0ס_d?v/ ] 2(uEQ]lzCƮT?뻿;#Sz[fb;F}* Oы2t ΊyY_=HE z Oт8zJzTƃz@ƃ)'3 LA.MQ ]qCF^Ħ^B6ٟ]lK[/l!nυR%!_ά/OS~p/:]X*wD/viRBh/.K_T_SlF,6)kz^ĺ^˄Y_dVٟUëVmUvMcόHӨpꊆ3nT dS6e!Zj;[d_n{S-;Sh/<^ ̘w_ x]Ì F㈮vP_3Bx'Hb#F zcFag#dCqe .6Wmq~q(02 ލ '͑6FFh6T:1Z\]!ټpԗi=bZOkMsd}YNjdg@ƹ*v:g߭OE/]ob ; mU;  ^mS_`W MbsM6y sm&E3Bu{3% d?" /M+F;Uu7^o2&ۺ|bF/vC}g;,U_lG4~?W}ِU_6lȢu^&{޻OhZy{(ۯ蝋X*6罫?tP}m\`/XP}}꫊-\5U_.W f}=z7;ݿt=q63ߌyx_F?3#Bt!5ش L_R7'p{wtϸr\zW"6a|^b={˿43'[S3Zg~n/E]fo6wAFiEDJ>pb}!ZʟE[ob^bFUb]qfӎh>T|b+iS1념}v4e|<M_vFn[i Z?}dbfS}~E;(`ͫY_d0bۏld`Nvo'z`tH#* kG +|DHhwb}Ǜ=Gtj8;zy]GzO"3#D>buhN#CF3p}ӷK`\ jCV)-~_[:q)ϡ!mK^RlIJv`"O=Kx=<硲1hDigA#l ܀4c  K;$!R'1%PLh]/J=$ 5 ԸƗщ,̴]J(NbI2B, 'NIɁJI*pZVk/R$t]( oP $mRZwN%&p<ع {TH+IOkџ5zʘS+C" X');pLISҼR&T]OpSH ̔P }8O/$ :Iz^';r}wςAZ;ڇ!MgCn\ѿA||G3-Y 7W~yLarZ^_$ti wr=)Pg 4xvjKC#|uTxH qh\a?$/ P{TtH`{:HP@e3%DgL#ô^1ɴsgnX:^ 1N{6Wʃ(R )i\'hߜ)D])m0߸#SnHat$)p\gʎeͿRRw UOxKā/bA;R7ALc AEA 2DT+_S 9eA;E)\ =o!O'|BTbۇĠ)Ot!eP),""'EO`~BʋLHBJ1"6`BJ| )C!iw>-`?Iڥj$_ 9h ~\ALb Ҡh)Hc?uJR4!BJ_GPy9t)EK`hiA'/)9dd.̠#^HyFzCtCA*u։R`un4cDV ѷ2)|~S >)|Пt>DI8ĎKwD0J#rLYʠ5SPFz쇂2d?!A b1)z@)N_&Ih;Ň;EI td3DSR{zPy$c>;ďQv=w|U*91Sp?@wݿBJPs< j?ַ8@zaOy? 69>߇A|_aJ#150|`y=y=y=z>^n 2\ƻd:_ r}Ka?m@_?%QjƵBٟO? 絻X)#+GUGuRucl6IM~ƴM/?XS#>bNRr׳ۻO$ss ntPIZ b˗~בyGNQҞNwLi T; Nz8:Q\,Sl82]G|_ ks]?c_b nA{:u}*hS9Nz%uGB᧯`{=u}'l-{% wǗkd;hbiڭ΄nU?Iݶ{<=paIZloO1%k7 Jw>^ IxLo+w ۧOd)0]q:{J(5S y{b9$$Y:x7p:xcR7K~`n߄wkȻlEJML l LdvHhiOy/0M M0mK@9Ǜ2bvy(滿&NLyONɲ5gq{y{/Hꊝ&q]xO=`W]]`gt/򶑍ڷئL<S7L6u_7S*U+ ;$/}.z{>]/CۉHm.[hoK޷)H[筙8ڕމ {$ Ayd~ H] Noe+SB".,oX;3vmvz׶؈=]G=kvgGHwa{I禭AwJڸĖAO.OwyJWJoo$oZO۞'c{ϮMx?4˻uYK޴ҳ?c_ŖSU2uz?=[MHOy_'$w{!,`L)~R4,ݟ = c{.ovەZ-]T7ر>]x:Dټt XzTybbc HH12LIS]ރQHN ޱp׺ 彠?ޮ Nv]ZZ+j6fuEGPE|E\Aa) s *oC22<3Qr̖Ȏ&.oW h#CLh6䍁~+x N7BR@tuwɛh3^dFz Z_\ y:󢿚{ضwl{y"^\Ym-H$wy.G7?yR/݂%o`]? 6MKiK$)? ߅ز}݆7˛M<gbGOD)Sz`p`'*LP HsGB)DA'd&DJSD ͮElI׉<+)Axp}`f]lHȎϬ`C0ay`[#7EͪhJI'7 k3=Ml#uw'gCOͰ}hv-荞-# 01;m2}~k `qm7'%{B#r0id1%!þ <q"ڮi~IJi`M&\4^ċa='3/hJLv!MIަ TkClG߉ڸ^l&6>Oܯ籿&}jd<(z'R)``c} boE4]k\oMw (׻RjRcJ$.I/*_MxhU_1~%+l] ]l8Wd~J Wyx>-$kX//츅f/yd5=)*GG J)9$]M).Xql.Ofs]z>Sb}wobS- P"80%sYw˔RIJ6bIbwSؓ:jE[bmu ~V`΃/]O ZطzO6ꛍԈۛmͼEF?'6h!zbdb .Ztn/r}`'@ %\7dgm_?l7&[n]ƒ,nvopYPf!:B*dce&+G֞-*_+1T.ݿ/]J%KGn=~zK`{d5O65/ƿ_Uވ G!nc8'1َDExVO`BE\)^?N'&;uyyLu& BvE\_ldgIA1Čv(zda ؕŸ䍸a~e@1%W`g> C=|D+z#0S:R:5k`)&~g Ex%.x1S8=QE3g4|E0KϗzS`J~%In#H*"W;~tsCWxƗt- uL nƛගV x} endstream endobj 1103 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 1107 0 obj << /Length 2271 /Filter /FlateDecode >> stream xr@)b T9J*JA T=(ٻ&zz1oG7.^_ 2jάQ3RFWM2]~h]`b&?_/gHESm#yK|7uyQ|]]WT7T+Z+͋D)dUltwW5nz5#X4( MbFg$x7P!d#Ս  ЅP4\[(*zCiƱj JV{ jE4O\v?2*e*U*cTcf!TA<墾>V<fbRb+=J13CY7EOF2rAA{eonb2t`U !M6қ!+YŐG ٯ Ŏq ʕq]&v r@42_ ?a7L(TXFB,HKq_CP1H=8S`P}oA8ZIQTѧh/xiWO ;ϟ8D'ކ<<@]o=üb$-3gUUۄ%t7JXE9&v"rMSh[Qa&Ʒ;4PZ,ҙaփd4.Gܖm{$_lAIC$M8f]*49@ah6*n yP|ۡCx ʮՔ$v71dǗkw;,U Ve7qF&LSƩ{ ,&#~[|JM ބāfp $e:2A(d$d8vowhe>Q\2qOk .G$aBHLKCt: _GK0" ]H6J& x4:j# ٮHq84H ˌBk_7^κaƂ S?=0dj԰ endstream endobj 1104 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-DetailsAnnotationTrack7f.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1109 0 R /BBox [0 0 540 144] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 1110 0 R/F7 1111 0 R/F8 1112 0 R>> /ExtGState << /GS1 1113 0 R /GS2 1114 0 R /GS257 1115 0 R >>/ColorSpace << /sRGB 1116 0 R >>>> /Length 1831 /Filter /FlateDecode >> stream x\Ko7Wh8A @ CCEimrgHjm)Ƒ[x!9ĵdd߫_ūs]{y\˟޲Vo2ޯ${ ?W2O+h4eAwc'N߲GCYrMю;5wN{F\&rѧoT[q'\o԰zUF$ B{dC#Q>Rvzyrx|#v_iAqD<;bO ܉g\{&mG L,4?i[N4R&g~Dm-Ő4jj}I~uȋ`Ɖۉ5\w}-]04!1i 1lzә9SU&&ߛ/9rHb #a04C:-esRM٫CqcdeGì2M#Z<B endstream endobj 1118 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 1122 0 obj << /Length 1873 /Filter /FlateDecode >> stream xYK4ϯpq)vd}EQ 8[IT8vzHlofgᔶ_?)4$4_I0J ZfHJV)n&9TJDP5K /5V׊f瓺GS#A&dɄDHsuiov:O^u׏k&w-h‹<9AD(k7O>=N]OLrt \%0\{þ)WY]C_̈hWfzm:ŵ,( 8E[5Uem 1Gv6Xagz[RCUz8zE?-jvrU{9Wx&t>01t;sܖa]wa+M_m/A XsPipHӎbwzxQ*:H01| ؃ǩDZa2U? ڍiO#Эev~δ@.q9AHD6ѽ\+5a$#"Á(yo\mYL,Q-'\8/l z6W?jo =2ȏc`n/xTD Hn2SNAg^LAڱNq2h247.Slq5&e]xv|;Uݟ]N60m9?CAyc@ࣇ}Xv= .%:9s;DD =yj2]$xqn_h=#fGv%OYRl; .BAчq "5j5EC[Tܗ@+h6cFȄw 8Âgq/Sgp3}Fھ7}w~pٽ6cNtKZ렵` a:9Bg<.RSbw5* Ľ`7H8$ťs~ʼy _i܆=ѿN5]сS8C־B>= = -!%ӗ!! ƣfcϕZKH2 UePaM PH?E'#&*أH}{`̞nOdd^e 48 ęEA)lQ/msht?@1DbiT@pO*gr.w5tJfNϪi*oSVOZxfTu_u|m n"^ \!ujM;].6_C A0\#j{q4{ y*y`O GP-Gbjw4F^1|ukS=n0/{E i9wz2Y{4SH%>q)IWV|DdDoj endstream endobj 1119 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-DetailsAnnotationTrack5.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1126 0 R /BBox [0 0 540 216] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 1127 0 R/F7 1128 0 R/F8 1129 0 R>> /ExtGState << /GS1 1130 0 R /GS2 1131 0 R /GS257 1132 0 R >>/ColorSpace << /sRGB 1133 0 R >>>> /Length 24912 /Filter /FlateDecode >> stream xKmɑ6_q]efD-H<4)[M>k<|]EHzpoU#+Vo~oUݷRʷ߿7?o~ן Բ)OW_iFַV%/+IZnW6=/yGli7_ͿO_w_֫GGY}oÿ~߾緿_o_ן]_ԋ}o㧚_'[1w=}x,߻iy^o}f'yPjC?z?lJn^;v_z=~*,xǔ#U{wV~#7/> _uZ17?0q?uGVZQ-j]mJtt\e:*\'<|Ы*G)c" ~HG}dzg new{Qk7eV({]<]/˧M~/~bӵ?n~xa?{=,<}c|o&󪻼f,{N].:˸,ںi׬0L]<{X.˫5QkufO+h+\4/({.LͯzbIi`f(7eʶL&XY5Ckl˸c= OO#Dm/Z=Ǫ6uXigoYXk] M6dor' }?M^j2A6&d 7NߐM&&d GAqQ'[Ľ}?O\rm}>>O"}?x|}bOW{-ӔO?۳?۳i=<ҞK{=g{/9g=_s|=ח\_s}iϥ㳃?si=7=OROў_ g8K{_gY+=Yg{OўEBhe|/?ڳCe|b}?g{~iώsl/~u|iOz=lρ҃e|g{{ğe|/?s?K{nr /}|g+8~l_g2>_=[ig2>᣼oax.ٞgڊSZ>1`:+ry03W~s|v5gy8 -xG=7՞ˈٞy. 1dzb#WQ]nEĆwfc= 6<;㓿K'z~){;'q}0]d?h> --ɾ:v;ОF쫝}{k>UWKϰ?E๔Qql:\Cz%w7?=>kqV6ơ\>:5fClb LAp]d]dA Bb zKo} b;]%Q,!gqE5%"_:H7`oG~%}n4 n&%rleU y@so)!&>'m~W6k튾_pTٯ(o汅ZC.w6nFh*\e_9r/U$k:Q$4X4X*1:T!&yHVrf`sα *+<+Lv0[y8!f+(̎eWT6jAt_ U^p+kM#3/{=|`#7:v J%G)X3.EL *r9p^ W* Nboŧ;`lF@oN+:2>ZwһP~_>IMJPLtN8q~37ZTC2*`LgGGʳFvQh{DA8WEA Wp~ے8:8*N;|w1k$*ۓ 4n#9a&s9 nrIBdjoP=,z' A0sjǩWTDfЍ1&i%gp$#mK8 P[N"j1s!s3N%e.$pEjvlt |]dqua%r0_/8!0p39膈!NVSu5')Ó~r?q4j"}:ZfdA'/ 8?kam[ +s#=?v|d6ʂW-޼ 2Óz-gZ\6X+LT=Nby\BV{AsدʝHܹFzAcs>#u|v+ oV}r/_'aEpޝA$n;\ |dm2RY~7Sэb7#:L.dn|d% 1@0/ȟ=9Ro2f0f1 C+ gةgg13zČ8'~90d'(@œ˂O;IʿU=_sfy"`01wyØZ?2e+]tkYЌÀ8_?m8-LKP@eY@c/Uߧ.`d\lөZ.ŷ. Z l0āGUvGkHy-pð] T4@(#u1>! hk?H}{|p_dl7| 竞x4|RE_$^O^wDZb">9{ay'30>/ɽ0ᘟo^&fȒ-"{A|Aq" R!'Q&%B%ӉPӉWt,`ЛrɡNHOg)!!`@H# UiriĊxĒ 'ZϥYdF /(D,h0nbM7E$ICىpc@#KEA}*1'93IL!(tq#&PPJ&1ggĤh %P2 l7#} cxfb]W|&v|/(@\߻b`'ʃ.Mr>@)?'_|ty(D/QNY?K?K]`w 1SM_O j, b^F JZnԇ0Ʊ[<['4[O j>PP_q?/6[ARRx?Cl$~>Vh?k՜U #g~NkSs^C}զ-󴿵if=Mswm#`n(>EO}65 boXoVX[#1>-?Sbeui6awO(?xhh~_x]7[ػUw?C\q@$蹃\>qD 7BQ::\'sו+IJ&:mGtdc/!]uTUx-)gHR2.b_=ߥ}۫\:h8GhJ:Pϛ^BF!Ӱ&Bޮ"6O!jZ{eUm7unTc`Vzi|bo_wuϓviHOECIA*l]\v?M)Mom+&h1Gԯ~Rߘ$UБ׈ȇr͈Etc"^|-:jr…2ʃK`N(vj~E#9uĸ~Hp,…@!<#Թy,%2.0c}l#ѹU'I #^8BOL]ܲR9p6O9uPX/pM ŷCU! ?0yh ]QSSG-GċG@AnIh8I.it.]O-F`TA<4(</p+I*U.E xXp#|1U#uf,0C pQ e[E"< 'ղ!/z>xf"}EES_?''p׋KgQ. =ٟ`_?þ$}X/:e.~ xOhcQޠ@x(oTsF˹?MePbR,u|pBtԒ<~B Æ}Rmٰ/C..)BPY}pq߇~}e3J$Q9lؗQ9?l+gP_6ԥ2 Z"vO,/q;Kp(k ~'vgtoؗW?#!70Z{Qfް/b;O5^ao( $ yw87TgyDb!iU6 Ѿ})ȿ¬){{a_BF늠Esc?uf|kr+F6i66T/F"`k3CQ^W}1F9DdnG{J1#pGկƸF]w]> 0磬FXxnX78U%( n)~a_Z#N J'8d띩t=(2PANbS(9ua_R}þא(6zx~ؗ:?2!%*qG1Yz4RD?Y2pE-1D`Kiz_RW 1x]B\;.(0yП+K]qDXdBjH 0Pyu<,1kzOW&qEX6}-b~[;R Р/M:e}Ryu<n/Dٯ3:1:{+(NTP`CxNuGp ߭X"Z#%/{iɄ :ahO]_\(&xg;"1[&΃'!0h?peN0߄/)¤.^4TUe}(;!5>4SyMY^Ck?״hfy_U޹jWY*UֿLgyq>'1^qگ<ؿ6T6_laCU& ٦'TöTY,?}j M}k[5V!fyǾ`Ҏ}ayN@܏6;u; 0˛,o},c/ 9lVe?a~O DY*{zɣОVUӚ2y1c>>'ψ~XTcLgM_8֗TTgv/XRy/T۶TsKGQRKk 3v w;EQĘ<~z~`}E o |-_щi?u?ӑ-a~$LӾy;Q!Go!-FT۱^tS췛[fWn* "L7uG2rBsJ ԘYzԻ|]{Wy=&X^ue'P/֗>8N$f |' K'<?Y/*o},T7N$s%GHc`'fyXRylϥʃr Uxd~Rs#ꘇ;9PrW% +Εy!1 LJ Y[ ukQwwjyb>Pny:%}#=T*]L7 .i}^zhdFF>ڠh-2%nWrv#yܔN8} 4BQwY*y?II:n,S"N~qefhV[w ѹtfxxdkm_Y7fɬ64W@W7֦r;ECؽ Fj^w1+ekqj|f[n~ !XN`K%TUNLNu'SlBJCF{b/Rh}7ېKĴNdI~['{Y!Flv!ElC[u fu 4={Ov!vdj2ݓ?zq좢[CcmO6aTcW= ON; ]I7#0o]wUEjbN.؄ <oUiw.ك}d{@ve{~{ NL9}>o;lC NMxtrB-mбE<؅f%v:/ُ8Md$;l%`*6ΆԸzۣ TKv "Mls#@{0OnL:B]o_o}?vکl '0p̓2FLjMlMJM$d6)G憺lb?"@ Wa?l@~a?cLYkSې6*odׁ]lU8>K$Nr ilova.2գ؀[0)ِ=*S1ے)D+ִ#S!n ܐgcڵv!4_]쑂w1_š7pʋ*ذdˁw96d&I6t/irb/Buz d 7y)foP: ۠[ ]lđ-:Ns |m<{=`{;xnU >=/ٟH{.!BW5^8bM`4@fՍ9pzlf }ob+%m_+xi8s{qqO/b$J(nk]WmŮkht=ٸKl(xmT87ǿx`Z7}=m-"v3}@U&PE4Q1g!MaΣ<~tl"\\!loMߏFF| d[3U.adBDib=S߀} "GGczdXHɶ㵦[20cl^=ȶkS5i'0mR'MDnz>gb3B oH6*Ւ]lnkbTbdׁr"b9d@KNoG~X&oh|cP&be4d5fYic*w`gE&\쾚1WJɻ lm57Isd5 A;9Ϸo usÖ֟ll-ݸ,b5Şgl&{mnb6(7Y?Z}Nl`ǯÎk`zOg]z- CUl V"{El%$pIvrz~׭u*V)=%~'RC캍d"Z27p`ׯÆ~6o?a#$paĎ Y޿Ml,ZҶr?a sds!aD2]l> fˉMgVCA'$_춎M[uQ*=kҠ8&ZaalzdPQ d h%~ -?^+O9R_46Շ#Oe{S$m%޷ǃZ7qc#fr S}co6gB)Yac3ىH]S+61 QW\ZIQ'7`O'f4;bC4dm b^[GR^_?f[{mbuDh6+gUW&]lUXylbA02=Y)O|O;m'3z`y(`?~] f1:3Wq}e߃w*6YTuh3{n/>tIV{G'D`:Svy-mjb<ll_El&_J /Eo}gd:n<}Cl}7 aV 6ح'p Q7hniMs>~;񀿆G}o ;G]XWu cлaXaX_C0?  GÄHO).90Y}&mgR'=d3t`eFS39΋ m;kK0>03󰾷r,=Fd0EasS#y,o +OzE"a >`FUuJLx?z  #I`efs"{+ EN'V#V"a~`+AWwrgS7FNcWxoXZ-zq~ ~ѱUc;}ޛJ܆.łr}I.{E4@j0_ rdn+Wk^4Bey,A͡8wZ^<4e<^x3.#`c eeaglǷzr\ n ]5\aUC+Wkx5V)\2q7a[Vt8sYǭ~O{+EgtykL+ϴbQZa4 0}VI;w}ZiHf3&Lb\B̤yGC`&<7Ϥ|jf8 OF2#4|h%pg 0}$/d**k1io؄|l#I/r7(百A*8]cR'9-xCMxOߨxPQtOpĆбfr8'G{3|+$97u<ɡ1H٤bG{J ݔ ǓxkT WWr…==$*H;q,;9\gi(RVNP=R'8$=b},sP7'љxq -c OHyNo(1>G!AmG{;=DW(\ ҪG=pg—Q!o]'/c>۩C㛊=ɏY'3lnPHNMɡ2rr{?ўcES!3pǷ#Ƨ/gLz_c8'}8> )lɨısD #WpSw**6$'pxTs*V;a|G{[q Fў68^Ƨulp]8-9}8O۰R4ٯia|V7s>JkȚbW y " >[ag3por7r%ho(\cNaΟ .*&8KSON|0>+9FzciƧ87>r☁¨YM㳞 dN(#{H&290BăE8V)Φ!pҏޜ,q ˨TH7khOr# {109XY yMkmN&X{Lڮ|a|VrL @NΙ T@ `d98>]e3݄UOsz8>ߊlry6*.F{~')&8hQ,xp9>+STTpqs|~~ U+8Z/8'4w*`Nbf܂=*ƛc|Bx1f;9ySAvO(n=zיeu|bt(KAU>(#&,o) .}Ƨ*rokޕۥX.AW'lҾzWF5R8au8 Bܩ)ЈmE ?rr8S;l)N!;gt }h>Pۏ2*B^?Ks}1 z )s$x^z'ujN^8zpbq,+qGy{U{=Mblσٞ|=Y=}1'äQ>'՞ϊ'o1ف8Kϋs98 <io+1؁ DhyBgFL!S_:'3nH)|tOO;'corNFzs|]:O|9>]ɘO]<4S-MgϵO Or@K/T8yߨ~tp|XzߓiIs$'30χAQr0S۟FLͤ1{=8>x' -0:y0`qNٞ]y0i=y0ۓx=&g`lσٞ=}pX՞^>qx'N{Vb8jFV{Ӟ̰u'$ѿOYԞ?༟lO{|.lOylOͦ}MOOدَb' -4o& iN5ߠ?LWFa[|/Γ''5fkr|vke4 ̘ϓd`{dx Q^?_NOf ܸ>h[ ˻G K 8fPܨ߈Q뗹sx[8?ICs&'5nYj9:ccbR?]g||ag#M =O3>+Fu[\t^:Tĸlb۩%G^C14!{1܉Ӿ/io1ǧ5gM`~Zbr0?b>bP~}?R!\хsJ%}ЦtYHl6R!+ĔmWA(;䒼H e/"F΍qd7g$=NՐvC#NN ΛXhW!OqK˕(MYvz9|sѫ(w#NRRĐhe֚d\VN>--%\U8 _&r \Y SIMao^Qs#]~3!1̴ְ?)iBr9o)*&nS WJ]ZJ2]^N]ZZFЕ>ja3on lGlNMuBNӽuUy~&b7cs7l"쎱o.v;"v`eyڽS2]ovF*.N[|C;O{E]y:RNcw[ۆdKM)wnw&nw'fW;-ؖ{b& GŰ> .Pl)*IŰILEx;`35> oSuEjkC3ɮjb{CaS퍌u ɾd &K7 p iۣHjm!vJ= F\)[lp*Vco5(%&ߴ.v &o9yZnP8EbG!pE&9Q1 ~?PLvy 1(z|3ŧYPPEF/; AA7,6f_ j]Ґlr^b%{(r16 -[9Dc`7~?c1?؂PlT ?x㴛a}#aoZ駥q}EסbCdZ8f:;q#>l|r30(>1bh4xkB1~$r ;U7LF7{@DزC(ʎ*6V4VZ߀]?]pշؠm]gM!\7Da1CNUwZ۵"k>p(F#Eob[TrUlz :qFKPA=o 뉶^O{爎έ˞{J1'.Q!!';wo=)3#&P1FPP/eAANj~` +!AFdQA_ǑQ或ao`>E&6bXm)n4yݑ@*l #2:Ał)cfeágUlCxL ^T gtDQwWuxpcElOD5O$ؓPOEdWvd8J*}QĎBp%>˕x}ią;@1x>oT 磾x)=pˇw1T`f@Xbob?aje 泾7k?-.݈^9Q_[lhM{Զ؀^Կ7'*6EkuD/BkXϳa>x>_U_SlR ^a`shIE;|Ot+dM ]-ԉD0zÈX_8~=!({8fQ{Xd?O'EX9(9OzaEhhd]KrlqgSw%n(-zwAi;w?X+Swk⳺Y/x4YY::\'|_GE:If{F4}$J3WfT?lFsHK{ɝ;?wI 3c]Iӟ1;^Nm Y(ݤ~BSҝ흊wܨ:fyuu൸Tčǩ5d nG/Quu 7aN5˘f͸h~3`p^vҺo代VJX_%7U]79eb)w7#'e̙.frnkĐa^*}0N0(yvY㌿ ׋^wu뺾ͅ*MxߛR9aY9 7zxyX/X.z.y.z?sV r`QT]78obiNx<x?O~S7kӃX 1=Ո;<mSO+1PO=7=Ibp~G[X ?X'=֛SS_lymWYR\S+/3xqFY%!ܜ/9ߗAuCoTȌx/K3bR/'ä o1R'3†μɨA{r^#GxPϹ'ƒ<=Bwƨ߇-u3W#/Nl`\5=6 &BO0"/06#`F=\Iv0\'qF4}fj$2zw8>A`2`<`49뛌v0ؑ'úҾ2BDl #hTFWDzWBDgdf"Pd+dّ>7@ Z?8#~#Ȱ ч'W8ghĈih<{隯N{sf sاC8WSwD VxsScӿmx#^ȟu8 `۪ف?aG 3"}̯ьxb~[œ}WF 7D:"m/822 G2SADw,i ժSd+G'v/0_yR3E+Bb1boD:#20}pP`c=ض, l*/󍐱H̔Cm]wQ_AS`zψ#< 1T<vw#"h?;"h1([<1fS`ߋ`BmHmX8vb}ȿ w(o"RO1-@DzS^"40{nڧWeNO>;xcobc}D]Oyߌ|Fd'~1i3|Ȉʈ}#g#!8/*q8[5+ҁ3`خ__::&`Ā CC:Q5 џjWK*e]W=`x)^Q@#4=pNEf;՟2C%p/#8\(ù3_Jv31A '}?kd_ 3ߌOoE'Ž|*U8i|,_4ٗw~ 7QX &/Oil't0xK Z= *:=/?Fl#6!gFe>GyEBO >FE'"% bgDD^H~31c1F~A @Fy7SyY'UF4Ϣ|uy8W1$6G֗Ô}j;_Ehh1\ %L=2/#OD 0ߩSå'G#~+ N쏈&FLu1<`{oČ KC=~Gaiy&"4]~)=jFDF}3?" ,O~R/߇ҹތzy=拈`~E>鼞׊\6ǖ~:#c+`??lٟ0}SYtpٟf: ϟo"YԟfQGQU 5ԟ6GR#V|=tSD`P?߉ٟ`fS=ȧW:??̦040SU{T\RC|?ӕqR19'ta;/FMg><늸`ċ+/".\O=E/|?ag"K琞:g/=!K3T?7=<{9~牘)̗2x="^obG<^R`>Z`: /(`"?:zD bwĊHVD{7+On_ > 7GI_~\ΩqV}6!3M*e^NG+}(+vI#.w$+2Ӣɺ$3 ;p}yYu'7>&8zU:.s^G7\w?nl /*ȁ) :eOS9Rոu]Ր\_˚7Yvc3n +6N/qW_2buҲ\.~;MvȫKʫvK 2J #2߷1 zÛS=u܍vkwovݕ&jɻ~z~NpZ[ zNvFufiPxnwLy㨯t}MOwz) xt{̎8^ 7] xG:O{>un㭃w'zy|=7>\? o~Ux;mۢ]zwzu;?c 67 QKkU;oE:6ݿv{x=2{ג=l[kxz>穧.owo:t}-Է-4`xF=:o)?qzbK v3v؝ґt8ٕ5޻d{2[|zvûf`3SXד}oypZ ;8]Rء~}=R%u_Tx =Ӣӷ8 8N9 }u>:m` ]~kwy}ӻFx#^]{nڠ>~ozB}y ڃ'NS?S ؍'ɛ6w 1v8}UW$e~M;+KzEG vg A޷8b}h|$}h,Hw197u;ҍAޱ U^xz7zl o'e]@:>}Az] 6؍j1lSOщ|#MÈ`6yג8]J1G5E[MQU_Mpf~%;Tl vC{پlUoK7ؐMުcw,^aMްޯd_6W4DӈmJVtc7Y7..oVu4NDԥAtH]oYі_ulALv?l) z]. w=zپ)ozMXi3>c=JoW]ЋK@D% u[ &cP)c=`ko[sؤ}lR;-GYl!oT=u›jh*Rv-W҃N~c'=Z-;دKީMt`<=ĶZ`X`WuhoU.hW쯫88d Y$}dK-DU`bp}PBD{w 虅|rlp\Mє Z}^Dvۺ0l1eYꯘ_ ҉^[l_Y{r~׮g{oאy`?6)I<&yu?k7ؙ?*=gv^8w[û*z}wA0]&Go9Q~ا?ȟ!N$lmUb&6ߪp0t0SE芣^ +ۦ|?GjSGf}V8ێ*6F>$; ,=_]y0G:x{a&&ۆq)`Qz??_ 7uO6T6C(; s*iaaka=>odq| 퉻b*Gk?1V,6pOlg{p}׆> vSfQߜbcmbfP;l?SMe}dMuN,uEź_T9Ml-o#={iXq>G`$t[u}}1ٗOF?8`AW%&tb&f~"Ls]ē\x=b_{5; aSb/'V#fCiČvxQ-fskxW5-bjh ]:)Qghj7X|WZUz`?j>=kzV#vM/k?F|?_j;&f>:Oω׃x?a+קGߓm|CWQ_no/̂-mea a0 Ȕ͒}ِ=?na$|}\co֊vY FRq}C+0s|j??3' endstream endobj 1135 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 1139 0 obj << /Length 2294 /Filter /FlateDecode >> stream xYK6ϯ-TkUd=vģ=P$q"e>4T~|R3岓\Dn4 ^]]z(GID9Hډ|%]bؽ=sԖ+i_!_iG@q(Q0[4H;j4H:K?Jl/PRޙO)3Z(-zf hOzɱ| Nr cZ,}tc}X5ާ',9?f bܢ}^nfLrgzZ9Δ\CGky4'S35iQMz<@° K+YQK[C(y(x`Rxڟj@.{9^kPx k`o, 9d.8Ot CmIeWdj!-=$2 O2rJfT75Ҽw{Unʲ=B*Kۛ0ǴƜCuʗwi7ƺ'C.nCmSbyތ{P}7iG;R~ +vȏf U{887P:ͻex /dɼ\0$BJHa-o + h[k%A\HL\WaD' +:>YZx*B@U=g\5^AUF"Itƿ: *񊂭J7zi9R-'RYW71ND!zƔC24وcQ-Cf jp*cn G~H(kqA8\+ ?,: ц#>@7 [3˹C`^EoP- ݬ9 \ \}8ܱiH$fǁl,UQ z8/z if0ഇ$fdHuA|PvYek*GZ-+jN5nRo1T{!M!L CAkˬzk3VvAFsY$YL?EZj!x%/ߌ;I AP 'Ga(Jy={ ^ت (}}a_Ua,b飧?]+0&Qi!J*؆ %7O@ُ?<L#[jxgQp2 rP=E{RH92C#!8\:^tQ֌0qYhc8p. b6pr"IrLDQl_p_vVt!=3s2~2L> /ExtGState << /GS1 1143 0 R /GS2 1144 0 R /GS257 1145 0 R >>/ColorSpace << /sRGB 1146 0 R >>>> /Length 601 /Filter /FlateDecode >> stream xXK1 ϯб(,q6BJOп_M1t63ۃ}#}{ i6[ns蜃ݮٯQw38u4lJxͯ=? s0@ $Bb::%>xҞxR r*xO>W]w!4^ao'O۹JbMZ]*XfGKH $(_B^33O-)eDS? dQLAG^5,\ROdv9% XԛG;ENUxݐ> 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 1156 0 obj << /Length 1808 /Filter /FlateDecode >> stream xYK6zҢ5K h ) MSۃVjH7_Ȗ;@7 gpGZׁ ^\|y%E.s,A,EEAj(X^.4 _쪿z=؞yje/\t!Y+(3J%Ή^wԳ @'F rM ADAoů5qDHer-3d%o.uD}oDMVE/>X<+@ Elr2˅J/ sԩqs˾( hI6] ]cg " u_vw\Gri̤12J1^@d$&Ø&$گ{قu.&J}"i9?g0&l;QM5UE* o/,-asU{M܆ك}mɭn)[8-L'o|hkN)ތõצuX֖frGtZъ^U-]Wͪ]UeA|L:#z */ ˼TW=(bZl]F:VOL${ G4c"QLrSI>-ʼnT~iA}))vL]! mY\,pcֆeCZ[o&3VvWo+鶬Z^8^\.4_ +30 ecs94Zȗ0У@V-UXpn%N7T|OS_3RvFxv֗* m=1FWn È;Vx vA0àMUnd@,S1fL7&%aEt3=RYvxMQ:ꅛ8c@ik_eĆ؟9aǣk6΢(>9<Lړm'ȮZm$bdzY={0[CCQYwx<][rDz?~)1>8'6琸!PbF,5TrLff"j#h[8Og?K2ucgN))@=+؝=T(_8l0nKTh[a6]0éS#RfT$"g=>J{e9uH Y̘f"ǵ ݧ' qpFfBF:gңTӿpGgར>F>g{5#Rmޏ$;G_K/kUed`UE=tGJgpT6C1ؖtz _!W8uWT[-Q/~@LtGm%N|E1J>G\=E" }װq2g@4I=fȀK),j^!.|go?`> /ExtGState << /GS1 1160 0 R /GS2 1161 0 R /GS257 1162 0 R >>/ColorSpace << /sRGB 1163 0 R >>>> /Length 503 /Filter /FlateDecode >> stream x՗1 y Ǝ$GJ+ⴰ+Ub%'VDƧ8)-gx͖aVOXoC#,v~/_!·@p.a/Tï='zb@Z2cd`9zv4fYy*,*TY7?ۛ7KǰzW^.;͎HPڤjz .OL' t}=P(XKts=j>4',WpI(ї =;P1(NCQR,NGz j3edrMli=:ZgI:YU3sEμZ89YXZe”l#lm:zv$JjNܺW)Iώ,giFfّC1gjXo3&q1'<)€"?FXmyYU]H^j{G[tJ۽9;*=WW" endstream endobj 1165 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 1150 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-SequenceTrack4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1166 0 R /BBox [0 0 540 36] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 1167 0 R/F8 1168 0 R>> /ExtGState << /GS1 1169 0 R /GS2 1170 0 R /GS257 1171 0 R >>/ColorSpace << /sRGB 1172 0 R >>>> /Length 623 /Filter /FlateDecode >> stream xXKAϯz XP xO.h}k&1I 3BT}]~tf!nv׷tspn7kT}>ww MqB 6]X0gD1ﺺLb.$Qs{]ыpHŸXS{lxʇ|l`}rn^'+Щe^@^3.C=)=d*x%\RIjY<^ 8zZ$Q\ ɓrZrO)6-IO(C^1TLd͕zI@Ҁ1.w4llP *rBֶ.aڠ5SX9ƅ%j~ez~w5gՐے SɺxJ6g'g֓s=_o~kFb}VD|6PV97a endstream endobj 1174 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 1151 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-SequenceTrack5.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1175 0 R /BBox [0 0 540 21] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 1176 0 R/F8 1177 0 R>> /ExtGState << /GS1 1178 0 R /GS2 1179 0 R /GS257 1180 0 R >>/ColorSpace << /sRGB 1181 0 R >>>> /Length 627 /Filter /FlateDecode >> stream xXKk1ЭeyH-6zJhĻ ]T4F75k><}p΃M|v}]۹밿uUm:qB.@\8?|i4cFrxdю"j)ҩ#ߥݐ!Ippp̬&wjpDz2I$% ýzvwݛHF <!&4^f!ӨlL@o/˽7#mb i⭲_"k2I NGшr)֕ r+w+LC27r%t?*Df-gwIg=*DY窢0+*ϧ0C^ie+6Vu3"LRA58ќpBXU4LL =A&󌑁T T/%O !,@Dc0ll&c*-5\'[  9'>.imV`n/ ݀m/+PɀIg!HV-1C*kVKԂ0Udu32x-X\* hV-:T\>^/{!Ɉ Gdɿ)>,Y endstream endobj 1183 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 1152 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-SequenceTrack6.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1184 0 R /BBox [0 0 540 21] /Resources << /ProcSet [ /PDF /Text ] /Font << >> /ExtGState << /GS1 1185 0 R /GS2 1186 0 R /GS257 1187 0 R >>/ColorSpace << /sRGB 1188 0 R >>>> /Length 790 /Filter /FlateDecode >> stream xX;o1WLI9}]0= [n/6_ԠT-JRmc8WwQ^UcC/Ujן={rVkD|͓Ɗ&PP%"CVdr{#ےn٬jݝAxM l̽وxBCZuw1>Qйy+VfA@_bf:3Zl"Yz6[v u>fSy! <dy$V2\e+_d>Mh=V KfYt/ !XDH&K,1 2V۶+ĵ#ԹL^e%82Q Vk4 %TK$khm3HĶ6(0 ˬ@ .s\@Ŋ\rDPub+m>HcAc%s@F+FLVlb2(Lėl( l c"KZU F6L\ ]4Y9vxusQ[-9jɺv/dvi4b 6hpO_i]yz{4"4jgZ4.M{k%hK jm@9vߕցbWzV A-4=@ݭj >MEەļd§˳4 endstream endobj 1189 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 1193 0 obj << /Length 2536 /Filter /FlateDecode >> stream xZYsF~ׯ#Xkxnڕ卙''0uo vŒKshًWg9EβLFF H}siMjvueWs^ HDb(%&ه3fxfn¬2m?=g::N6$!:^m4LVJx@ʔJ6lEhB_3ʢ;+a־< u%mk⦨ JfP-={b*.qSm?l[Z^t1^śƶT vk%vO*ǖ{[Bj`,BqDWzmZj@W0p- Ogٻg G<> !*9Kx(Mʍ}Ed$('8K$wMR!lWWbk ;q,z%$ir4]У_1 i tuwuu5pj5uOiNp͊%w IpRG;KƞKqD h1}B-Z+6O͟eBL9^!1*YH,,)K{ɎP u5D&wHáΆ*B ws]6; ͸>(qGRTDCcui%%8eyՎc[MC۱ 0h6Ocץ}3bLaz]=2;Ldmh0m, /b1܃l^C*Ch܎=^Y4.ޟp7-_M@ ~ia{w4j%> /ExtGState << /GS1 1197 0 R /GS2 1198 0 R >>/ColorSpace << /sRGB 1199 0 R >>>> /Length 198 /Filter /FlateDecode >> stream xS= 0߯_$mW  nPT}ӴX;H%iV\QTmX03B˵M4?q$¡$Y'`E* MQCl7,KR2a|9'©>ԕ^ѐ0sLvPViض/Y#)4'4J:vF$3{ (پ endstream endobj 1200 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 1190 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-SequenceTrack8.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1201 0 R /BBox [0 0 540 21] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1202 0 R>> /ExtGState << /GS1 1203 0 R /GS2 1204 0 R /GS257 1205 0 R >>/ColorSpace << /sRGB 1206 0 R >>>> /Length 922 /Filter /FlateDecode >> stream xZKk0W^&&@ .PzJhC~g7ivE-{-HI'|f<?^tw t\FuOw_t7v (~_am4r9(xr?&/c v:_;R~T)nsr{ qcd;LIdkDqM~stԇESG~p//nx-͔/[.Nk+:w G+{fI Ld+bAOn͞P p ?m8Q [#xׁ4mn\D p@d@Ikn'F'ZDR{S{pi .4?=C>Ӧ3p6RzbJ=,&P;q`]e\;Qju`Aqwj%D:& vɌ@2c>!]W H&h{ L-ԃ!J9BDe4`pFȅ G{K&X˜q`.ԇLVω3lL|E{5$ɐ4[ m0؍ ] ڐ9-fǢg~<Մ@TC]4j8Pؤ]z|X;:#oh1w &rR1sjwg ' Ӌ*Dx}g~j5wu\Hrq0G%*H T#h{YɒI#p-ǁ bkq`,*y;䫕/ң SQכZd,})8'%DR\$zj껐h7]ȏR|oYØ!4}hҋ wդv$kQ]UJ4_6Q Yj]R8^ endstream endobj 1208 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 1212 0 obj << /Length 2511 /Filter /FlateDecode >> stream xY[oܸ~%ԣH$u]>,qfX2%;﹐t7,sw8jV^_zī8 WWUy.VDU9Fdy[?Z=8djwg[[-TZmTZy0[OvIX]% " 4.m=ƽDR5ؖfhzT)wxݳzѮИndz`o0Qد7JE#B ˜(YiEc_|e0 O:\.8szRBY\)U<<\oTqi4BPo9;uͯ-h#bR^O'[RU쥢b6X<]bhȓ(=)TSSz]N**0~e+ilPsNqP~٘]aac/2``g9{D["OaN#oM;ڸ:kgjQ۩#JrbE@V@cӋjVaK7ZVY׀Gq%-$* E~L04O !F|I&qB kpԂ_sC߽g(jg`lL풗=4 GH;#[&?-.<3`R.@T='޹(6Or]is Ȥ,J"j@=\ƻp-,u\1rTN̏rQ9 csr-[͢$,P`gO[=ȧqVubTP,t̶QsqfQra ;& QGtu K)&37FN"8GG .mdhjnp_N,C\?46ؚſj4} q W6X8WX;!6߄km95 H!Bnf$M `75Åd'{”n&/\F׌ Tp/NC^}ȀQ5 ^B t1\" +qYwl+Itz=$ENS\d[$ā е~ā ' )Pٖ7鍡At"/#I쮘&< K8>Q ͽ:MpO8{ba\98硎 {P~@q72,Ћ02|)_t=~- 7jyI#0 6(NOB.)HѬK_$vm5˝ a+ ^@Fux]/`؉8XX,cv<bX%{:>?YdOƀ<$x4l&[/:cG<-[TQ+8'u@nrϙ0譅;%SYCW4ӹm1\<yZwVcq^r"G@Y +U\V8a"E2 s 駁Kr(TNpmڍ򵗮̭>xvuL=c#F_Ew=_ _(qL`a1*r~ z!AyC|$LN)-).?a endstream endobj 1089 0 obj << /Type /ObjStm /N 100 /First 981 /Length 1453 /Filter /FlateDecode >> stream xZMS71JQ2!>$N0 <2Cfg\c^g[Ę$[=JLX&i! flY8#4+d$Yj$,̒ XYFzBW"KAցrG,'-!@Ӥb;`"!r^湎 _tYs`*M ˔֔d9r† ɮLR%^]ŨɮV@UYP>ʹ2dWOL, g-b f,cf,_b3tY'Q@Zf(`SȌ heNE3A]l!BV 3hwOk.2k Ms6$5V>b{h+|VoΚ:>LǷjt_*oUʨ7NL幧J0+)+'# T Rb+t}[wT:+Z<&б~mA*teTUmTRʠ퓫 jc¢βVƱ[R¨cb|VY%D\XY>PY*˲l6l7Oٮ*[Of`seuh@@ǖnP)K^ .e7?c_X5c5cٷayC ͇-k#]jϊ&}򺙿_Q/ s7̺I%'|3'J%6N{j[[W2B[Rgq oRi |NF3c+/%/0ř~  endstream endobj 1218 0 obj << /Length 1132 /Filter /FlateDecode >> stream xڥVK6W9KRDh}dڤpCW-zmw;P)bp3fL"=٬_ 1JJZh%RG:=4zBOG_'=z͊oV LIFy FdZDU{E *s.H/NwͲ$L.:RzY9:Xu4O$el39U;jUaj@OAv_Zvףj*핅UחD0}{FfD!czݺB KJ,dlN2.1Jx\C5!ɝFo}cq8/xAqWv؍{k?v,Tԭ4> #ks45 %Md\8D9 e"p-h'k*<4j2znq!2.};XkHYhQ)~Wf]z(ĥ~bJzǵԐJ*hF̭,R3uRvzF?FTqj d{,c}r]KPE#BuXc} ˜ǿ_ F_r G=9Xis'u_O`7W^Tѓ`K>/M%)Q>NCmvEn[b}/IYlGgOMIY--̊Yo~YWIFRU'4*׭mW p6>?=="a Be#cRIEɰeXl^ ms&8tZo!63wED<}>> /ExtGState << /GS1 1222 0 R /GS2 1223 0 R /GS257 1224 0 R /GS258 1225 0 R >>/ColorSpace << /sRGB 1226 0 R >>>> /Length 48728 /Filter /FlateDecode >> stream x%Mv6@{llfhI0}E~}羯UMv7)z[k<'3c__~~W?oo/_<_oݿzߔ|o~S?.eWIko~޿=mto[cs>/21=>?Loo/emom'޿O/m XӾ~|m=?ƷU~{}oomo緓ji*ߧ$}!~O&0{/%?Zz~J['s5,Qˆy\߶֚mt.gGF}_u ^J sxo'3η^qlc>:޻~{[ZH#R؝W̾kAӟ6hN^QZ%yitN__;Ѿ~xo"}5j+ο > OFsۻʟw?Cs^spfF~k ??vyG~G ~Y{3D kz~P?|?#c~;__Q?6ܞz>]V,_pm? ܿuTڒ/h ?Z|.to{;&y}F󻖙j Aw4x7s?=JJw7|cd{CERZrah^}? W{t:ȩnk{}MzWu]~(l󛿺Nߢ; ]{4{{η> cO] ]./~}!_*_Xb4F>8_o7o#^CNzGLzPIZP;I?V~cH]ǡMr2u}1M;g4oxhHv~qa>yu}'__}>'r]_\W}A< S"}]x?|qpe6q⩈OƴL\^]_x\x^v]_/>qgqyu}c _GGL0Wqyu}cC,%"cw|}^}\X舓?_6OƔppppu}> ˅a;_ u}纾S/UD_x\x^x]x_$L˅m_/닱_=os}|+a_ɇ|Mã2+pa4$u}Uܔ˅ۅDžׅOv]_?ʃ_x\x^x]x_d W~]__ׯ#^A/|2~珌˅ۅDž煯~}u}Q*rzv~qyu}o]׷{ srzu}}];x_dLY“1#~|] 'r]_\GYqɸ>.^W{珲 #rzv~qa>9Pj5>z 6c>^o\ K?x\7 6]F~8D~޼Got?4$\fVp?2>Gu}뺾wqppp\w;QWE/<.x1|&l)QndWuU~0'C}+ . PZw-&woѥ+8z<5# jV{١p ESwNp'd廅(tc3o|2qf>+ MdTϚԳ'IdW;/jJ7i<9/Jr ۓc|rh}s W{rp季9=;c[G,t凅wU'Xhfp 5<4R5(kP[x&^8:fRm'5]MO#:1˰9Ə9HӇ eX-*,F d ⍓ZaAB|X Z $=߰[TEn^ѕ {M =tILͥu4Ϥ?M15O 1?nI[R%~d3,ԃ(*>apa*,Њ---0|VΓ=rVn!ʙgPsyZȠ49ݏ1NEELC,/ %<Ѧ,cxg8e|&{1)yGv($AVSr) AMP(_@3z0)%Qk%b@ QC-w(<ýCI=zfB\ri}}de2+ JFd&(yJ+e_J9+%x֔+gΎ9;~L>h2HL4c$6C}$6Ϙy cU8->8 C.e6C+4dJf >CGHTaJlY6Ծ/54O3114b+GpZJKPWcZo%zߜ; ]a`| aA"‚b|0eo}k}*Ye4ʙ+)WRΤppJb8ldSn%Tpuxf.؎.~ҥ|p8%>~0rFɏWw K]r ៯0>ɮ \su{]s{\tf P/ Ƿ-l7#==B?灚j ~A ߰!H]%{ wlAx )I1^L|#ni-`Lפ&WTRz"HSJ_ej3-<*5NwP0.|>'?(?_/[\J5Ǜ@8 bX·@q-k d{Xʦ7֠qˁc`t"Xޝ1_8>VN'룅[菜hap7ö]:*?zpBS+9}=v^ |gSWsP+4C]i5ZjrC #W*BNӓI?)^ȏX8ۓ]H4 s$&j"_Ήr1} -$}軞aQP(뼯eQQDu\LCr eΉޝoz&>TR1%=T\eRӇ!r̠nŌ1-{VnI=#j|)Yx. ea_>&ECK0\敡t(@I(uҽˆh#CrXT-H-(-7_  -U=m%u[I]S,Q/8p 3E~*xBvoql'\𐪙{*8Y"Vhj%zdAVhj%LW#ٿRis0np ͂d-(-pD,-xxŹ  Ser. L 2HXY_+%cE;k1,SKH *Ȯkg>Vp<G`7-- >i4gl^xxU~l~/>7?gjhb{uŠnJ{2w | ܝ,(v w KXڪ_VtL_՘Ti5t#[)|?WP|.1c[ѯqw 8WxkxK'zqeW+4ѳ8%sYڄIw~d)re\vtR%,6 Ə3sf%d}G ?g 0R +!4 Z%ȲwB_B5AW 9"6$XVc ܛJN1*:֏AP}Gdg'dL_q0-u ÂS,;[b7EfF$A" 3LM.lfP\FS 94@B9gcI; ]K4_k5[ WU|W3 5A-~4B5J;IӦhW+4CM- jI+o[r"0|)%{ --'DXeEZ A^mJB$fTT]ؤb[Ħa-)UÂT ݂򓅽 ~WǞY\B,l("Cy֫>)p/BYn/{+r/kGzz@gh1X`~|!Zaq%#,HHXPR 52O{!uy0F0FӬk t`>(O0+`> 3raeraeL~^FmP(Jy|ܗ}6+9f :G|YCDR jؖ=k=R$\< C}%\K҉A;嚨BTBmPhӃcWK5b1j sȹZ#Ls]w4On-~fV6{4c0T}qA9RKގ454 Su>OR54=<a32WTRG`T>RFO:XN$|_mpVpV/ MB)X=@wKYB=B=BIIaҘ_H{!~L0UaAי4Db%)Jǔ{ C( :Y%|x Z(+[(+[x҈#y'VWUxKR!ɱ"80cs CƢx88Bi:;d/RPPILWZĩEqHh"=|&{hjU-8VŘЩ_Czw~ Mx1\+b"FLsGTP5)$ CP/ ]AT#c,֨I={RϞ#Grq7i7A]Z>' 'U;Uנn3Lj4m%<ҫ6,Hﲰ,{J:u-NZ6'wI]zѦ؟M!Vų%?՝v͂^zG8̣5!њ5<@UZC0eq rzWrxK"LJF5}3PϞԳ'5]Ѧ6t#OYȋQ=c]R&;yjPpG m?iؑvd ݂SoLj-ɞ>lziB vALc{E^AyF=ߒ*ʒ3gV4{/z &hucvGݘQfL de_HVjdeIMj5#arc:JvrX*aA[P~p*Z.aA1X8:Ĝ| A{0j8|Ϥod|bCjx-u012-F&TW+ I#ӮRdM VX uc`d'XbS MP״G5Q g=WGY`u G5U jea_eadEQA>}Wrxu?;seivem}Ev`{ىjJ7KRM>:[+~4yrtFi"â3c%'Y E,0-PIO^o͆Z^ٰhalala|ͭb)5[, C}Y֫?62jՀu ktI4d}Lkb!7F.TY Ö7at&UkzzPk@;zaub|Ҥ ZhvY(z$UIu?xRT@OR3s)iK=m~IG6yoP:j[OZ>Y-㊝ [G `alala(9Vg[T=s<#Ό3"4F-)g %Z:\cQkzJ7rˎiUShEƔ5&GVfu^ ח+?V4-6 Ƈ5uVFmBB“fۖ& K%iP"9dj!ӠҍjyVhZW֓w,,pN2XTu n'DCq"UC *[Ae|xΓvɂv^C ؃ >xǠ*9"dQc4Q/k|ghJN@u SjWry`WTJAf(9=v(ez֣7=+R𪔂]T\ei<=jrOJZQ0nY0[8%A^LYӓ:(;8O;C}ZzMZk^{R޽w=K NX>NNHz>I=ʕ3Ϛ3~BN}}Rf̙3g6ϟ3[ӳ~zNϔgoTI7&ٛ{vFݨ/#sWW)ijVr1>8LrEq&2v$mP(eXj䥯[ ۺ)~nwlX 僅Gr=B\-(+RՑrJm\:Lٓzͤ^3gGu>߰'G)jW'YWEm>|vJ*~C8I=NRugz8f#jW>v:.B:yP0f0Kq I}jػ) ͂vej?i Âb||%q %ٿLjV2&GQLmPFx^FV 8E =Tjqyݐ?ss·QaAnA`}9O7oKvuښ]-ӕvWPAfj&Z}2R2>(C'м:T3xE|~cZMV7U#,gBGX6c?fx@3w ݂g朓[5!۾ѻkw'6l݉ewqT}`Wm֬wS+ 5]mm{-Ş@ܟAϚ,(v ʿ+!-5@@zp`+^%Uޗ S}Q/JVF@-`?:bO<_+cL꾓n+gDCRNG^:]Ϥ;N2Q{|[_,};}d nAnAyK۽ShJqt 궓ד3xMcp-wpǺv~>K$=",(v w jIY.^Ҡn1X݄VV2N0SoF}%AIվC2Ci9AOb?eOr#3N_N݂*!DTg iѨOR'?w = t_ݲC]fROz[>^3Xgk6;f[P(T_;(ŠFENzϤ3Ook_P|!'W"W~ꁨw-z ONp@JnUr~} y4Dڠҍ|Gؑ-ݠO5%% =R&B'E:Jh'G:5dUum-Ͽ@cow/}g -TkIꄭv@B[)9VHJP}ZR;(4,Z#KC\-fVhj%cU^L)acBk89FWrjr#B9=iUݝ>ӓiR9 G_)JDvѺEdB RrDv-msnRN6]ZKYp%d8)Wk3SMU|6 nib+cAơc?|]2OG^SKa~a[.iE ss;lIyM2cOXw]F% P. ILoؙv&ɓnA%'}CiPFe2hgS+ uO52(G*1DH9U}^okxJ5(?jH ԁà +9Ε'I}jR01Dad֠Y]ɮ5Q#E*D^#EPe'Yc Wc9lY= | [Wl#l!7P>F'l\l~}#W0BJڹV!w6`NI8{F-`wW:gmɷH)w C\|]4~ņߎB˧cn_RNk ͿSW&/I].SrT<{`VnUjp--`-ke9,,,<jA pX~X4K&@[&5FlRu$aZj MV ۼ2Y\%h)>ZJL6#\TԹ+0%3 1h8 #W#{XCy^CP;.#RTrdg-Myw@W 9wAuM ]]cA\"\XqEN[0>ƵEkЩcB@ոûZ~lW tNAze5SlW|=rTݟp?|JCLP?3e=o'⊍|w-=J#HվrS%DW mid\)p^[2I/eRLʇ!6?[Żz(Z~GCI(Rڭ/W/WrV2Pc0f)ENЦE멏$PMDNgu(ݏ*d(7[{Ts8R3I=9G?>᧎~P!Hq 8̊^+ᥡ3q؝p|TqluVeA?7`uAՔũjk_ 9ɋΩ(e~py8p;p]&݂bT˼/K*c̋c;S~L+Xx$3{ԡ1kãpamd|rZKޓm9sQ-g}|Z(9ȕ\PJ[Sٔ+L Ph,7 3?r,}@^B+:BPOZ ~c%WB%u =[ '0j}Ocn0j};JԵ%umI]ʭt~TJNszϧ/I$uO_pS}q8J[$؃`[ꓦ1^G_ \Z}VG_XhA8$` `F?=б6038f3ØV,6Ͽ`-wh{@z,)"/ W\r̕\̕\̤lŲ򘺒PV-H5zk<[\:XpA!\~G%u>%PN̝R#81>"BS=9A}jRD5G`BЄ p!Gd [1Xݕx 0b ö/4>fN} -PiJm򪶂0dhR+J Bo*a:Mzh^e$_ %OLєdbP 9KM4V\;WC/-rϤDnU.nUrJm|'z&];kw|[S?5NNTAwQ!*?jꦞtbl\:ʝʝʝ\u?ԥ'uI%v8vzZvM׼pG]wt\tRtRCy{PhY&QICr((<D_m(wCncW{焗pz&Oa,. CX47,m~ht ȩHj8J{R>)P?)Z\Z\L|:wD9:軇^wݝ?;.MTB*Z A63%PNTT>i"&4-(v Oy \rs~tn5hBKRss~OAj:q{s ͂B8XPS nA__jwPxRX}vM)EL)ȔD^(|a/]ךn=L>:='sz-嶋s% Mݮv ;}6&Y9XN'q=r`ǓI궿REVƮՎ-NiC][[0F:{@U>@?^IU{[ GW+"XΕWw%wHhaH[zgb9)Ŝ,W*9y6NuIzRv7xjم~r,--JN^N#و`Ulƹm$uȡP3^)\XY}Ƙ^9sNBpܯM+416줮'I.dzS #c ]`!n+SXl@\cd)jIpfJZ3%\P k&cJ;|٩G9cȝt Msr0ɗ\uj99Ҫ+5f qRvR"NJNSwk ftRZ:Y-}L#Y*K**%+iap-kK|PT:XC0oÂbԇ,zk胓*L 20Cyd-f'%ZH˙OJ$# %c ñYTZTB CRrD%\!CM箐a_r-?]@W5L"}Oж`J4`~ە-\!Bݯ:+W+׽B^$|B^1.0:=ȋ f f ;)tzBfP֌5IQzn'ŨוJ2+5j)j]FqC¹c=qw ZXP _F)QGJXC& DSҫ-܂ \c#ݪval|>\ROO`|ܩr5W,0,0y e^cٴE5#C̉yRS'j)yw Z6?_+ϟw'7Jwl=QhG5J)C|j2 #豥.Z(F9{Wٻv>ܻv ]Œ `+])Ȕ„5ONJ8bCE'ȩ>Z(#c}B*m'u?IOR;fT)W/@P'V5~Q[c(Ea1y(I=JRsP&К -C[n3Lگ̙㉎,jIuZt{ 5}C - #N8&hʼncjԑuB?-]YՑu&h6X#ǢMX- aA[P~d]u>m3jOsAsu"lYhE !ws S 3Kޗ:Nnlhy'ZfB'Zv$TփʗJFY HLuJRrJ)Z>)i>Prvͷsmk6(]R<*/v('0XnD2|f3q/ =YP~$xdkNVh}k%'I֭\1jH_ڀ_ѓZil_ kFI֟J8 }ѱYG|*Sь٣] >,1ryXG@~[0lvbd{Rs|zrTtڛ ACN>T]]qdJa))a8˽QFK۴ΡN[:jys AnP tCM/nP}ɱ!7'X8 2}W ګW5絆ޫ~jZ }oZȑNQh"J<Î#SS[ APb"J"`+fZbI3+1M a^p3}f3)?a*x zb`خaANҷ+~- -DFZօV6;U F[p/#[Ӯˠ/v]NoC!]X^ɹ:>[/X^^cZ#FK6)ǻ~z%{-%m{J"PռV롪yU[R  f_"l}#&WFY‚cU8-n/qiQ 02Tlh[;VV-Me4U(E+:-PRH+EŠG XSq - ,(v w |^t XΏrr %JV5Ԗ-UsAX~.7r컊1H|E|d 5IY2.x`q wEFa-(?v>.?'Qci9}\~b,6  eB_*,(v G?浠p^ P2x-djnjrLl ]5Ԟ| W0/tvF< A9yy/LKșKg)Dޑqw՜j~N"RN"B]XpXⰠ-(?z+#TjSOϵ${y%+\gg:;@ўPrYbݳTNOgrjckIZ9W+ qV?aOQSk&U)J(y4q咪dJw[ɑp*+p*GTe©XȀEx*h޷Oa|ڸX8r {Co!CatkhL BaGz{PHr@*6(9Uq+Isz*>y1;ƇL` q2,(v :V fF ښ}&Ρƞ uO3㩲ɕ Ⱦ:9ھZaswuk}F5^yM k ~`ک1«QJF8I={RϞ#u$+SKt *XC|}&VBy|U -qP[?4%!]^͗X}·vd тs~KC -:v -NxUB bNg$Y)錯obLlE\6?))Ix*&u@fRpMu ȌsA[=j6OaapA 8,?eglktRVALkQi@h>t!iyM)V)<cQw.EԉM} Z7[EWyRY=[ ng*)M &onN}zF'E_Xe!׵B2oشFǐUl+uQjwF):*9?`ɡHy\arr)'EA LsrNT)atf:HC$u f:^IXɿk/4ްWNEѰ[WgQrE+Z0j=TLW99I}NRjAe]ڄc]9jEȼ,F OaGC 1χscM;sczPld<7^ORԻ$J1;0c-#1cW2r%3C5@ evc2R>x4--( =,Ɔjcftt ;q 3c| 8CzL̘T= B8& bk=f*W8,(v w |w=f*?j͖8.be3}ŗДgz)9Ƥ;OMSuv"#xFи Vh,P%UXhچ璮Șz~QzR)O2 [} G ^/o0qX~." 'o#KKa]Z;lE،X8ǵg Z HǖZ \8*96oßo`CaR_II2g:C/_;WURVY^d@^#/ޓ.Y]IjhH~kN#bNaA[P~v>:3>kzCj 4rT^?ˇwi2=J^)W̕L0#sp%NR)޶u$`gXGIF*u[0ldMTs ݂2‹IxFb/W7y~0+)7OTƠ>&Fzoi-%Wld62$#\<8C$ =ʆ0pjPĺm'u~^xbZEtRhCcĒP? aj]-'tc*г1 J\IjH,L_%kV׬.I--fTsnEPe:pOTQ)KIB;RrqP C}ZGQ?RhGJ<&ᵦn)OӠj)oj>K BS+9K<RY.8qWk!S+4!C\SC~nw|,n%y:Kn#"kdĔ~Y藅R*w@I+ Z܁=ޞԽ%u#GԂVk P'6[FePseP3 5QK 3NLԿu';w:I=i9jځӖؿ`4NZ>NV AlȮdB)O`v+5en+[h+[4g:y (Q%gLqg~8ӝ,ؙ 31l**'z@-EUAKPhaJ ]ฺH>ȡ4dy% V;QKkƺ!^- 8,T*:x55=Y55aF*Tm n;Wp㸞 Buf^YPYrBn-(?wg]RÂ%q Z-6 ƏoߢK{[?չƳ Wl.Q4wp%!*sne)ǺT-E+Sk%_rew]ϥ4y zs!C)!]5gM*2\Ǟ4R-W0N0NЯӾ5I}ZPUñY0~:Uԙh3L+*UhPO[0x<'d[$u{I=6D.i?a -RU8]ԭ&uI]˴H沊_W{z_j@ 1F] FFZ Y!$I}jR:'OCiC(#{<5u]I]WRqbTz_2D(?Faũ*NTqjS6aR ·Z]>ɰP^)0fc:zecn=_)=ΏC@u ۺ>9R#\XPٓcUrUrq*QBG͕--`sԾOBsqD{VwT 2AH1,IQ{|lKMړPگ\ |R+'gI~tJ1?` sLL|{h iWpwGzu{anwMJB$&ԫkr޼,m 8,?qX#q ʡS3gV'$=jO 5{ G"'n6 w `ܾ?xb{E+ilXK+y>wPsĦBMkpAP@WP}Ⱥ& N߱'W>t8E,--Euڹ]';; b'IMiA)"FG )+&8ͳ'[Q95}MմK[И'`,?,hL^C{5'_Cm׉"nu9:]NP+4u-6GXp^-WKbsϪN *ȡ򲡖&Vhj%Z+Zjm8p.2т‚b|RRW( }}#dȀWKTTky3swyVoVLݠݪP Ԝ#jN @W 9}v- Ɬ"P tzfI={RϤ>|jFf3!^RO8ߙa;э-DcMQa_`EX1 ҍώh=h @mzæ0~X$'|IRq{>_V:/lalalala|-Z+_Bk0d7)%\4AMdPq2wн±z;Omia!-8V݂vkOS\bU*G@/DZo^;G@*`k`V{A/(8sciJc.Oe*]oY &@e8ha$ |}w.y5yOOӓ}Ҵ\uq y(&Yndv/pINB|J9~QݟqϸAP I+' dJabLWfLP}{ Zg6+?Ot9p ݂Dgk9?mX 5kn& 1u4FGÛnTYPCc?uz*Mn#[h#[ȕ&(bʢXloc2Ə E 8VJ>nA[P~:J\QIӠ4j/%$ak J#Lg1R$-v ʇ*I'}i'}ATԑelb{3򙂲<,PN&岕y ЙKWfWӰ)_a^05hmRY=qld̀%GKђL ]lImlIs~ʖ#[XuY¡_<ԇQIbkZ֓zIkrE+\_qׇ1=a]3͘Stmt!:IѤѤ;ŢrPsP t]1nY =11~Lc{a.^˼FVF-֠~9#G,0"I+E[,BERry"h5(i ez z*_à$ʉ/hd$e -tC)贤~FR?6d Vl^ڠ6W+# zculuP!/۠SJyzN|] |]kK#!ZVhj%cWQ@ŗBJaN55|N5 1TSL}4 *Ȩ5OKӒzXkqZ [#v~Y藅zPه286ldsfR?;j àn1ըdBzP>|dj+gxފ#к .Œ f9+ v Da? X,&-` Np  4? Y;doŒ8f(9˕@2C1\&ZFW2JR=#Q]ZROM'tm;DHyD =jӦU\er4p`PF| ,ST#=klljd$ 7FEZɡee jV%GF>20>c{YPMv؃G!Sr]z]Ȼv9E[u^Z%cS5S5S:vmؼW#Ⱥ3mseAL)PJܕܢƕL)LWV:J>skbE&R'%MJD(h> ׄzEO|YSf&a -̜(SdwꄜkfI=fRi\>$}_,dUކ!]=i=ғjHg̣+(?lalal1))3e|ˤDX,m-(?R9j!r$B<{g9OVIKOzj+J مn]Cv W[Wcr9T*]-"3wcF E(11tT_( rPg]Kb#=;_g+;lal.Ž )9œGJ9燅&[ 2f6 Oe^e$ |r|r gdɉ(R C+vQx w 62Ƽ',1)>%iRK4σC_ڷڮ֫[R`8Yۀ<*ndgp ǘR?dx~%DG2Y_zS##Gtխ25R߰wPƊuHZ1OǟU6Bbjt5k`40]2G~pVd$SNrQ2so5oCRHPe6$R@YրJw_Gh퉝xo=wG8-fug#Gp}φwH`:\;\lyYC>|{Z穲 *:)M6pmkoH%;RB4RbKP?%[gqHX̸)7[{4^jլ8N D& 9غFL Wq7_~m_1F+u79qw~qǝѬѬUmAl܇U)Y܇7:G>٢ 3:W(4ŝBR)4-b9w1˅:(ãsd%FaV }C_Վ5Bk/P#3Opgl'6wW&pVO&cW㥑W y= JR#@B8#pbX+Et@gխfr>@Q\|4j5Y"@֐/Nmw[c>Hλ7n{{k$}*|\hOT<=1ss,d1B߸gqcQk=%ꋘK}ѬYWޏf 򥀤|)ɗZ92nvY'}2=SRO` +{!mvTm;mĥe1kنT6"[&!oyGk: kw,owSoޯtY1CL^5v|wv0=y{pUerPux+}*0o9q~jvOZm$ɬ<~ ϼAʽެzEbz'5B݉?]6kց~VPbWj㭫Âh?ޏ_K6$`iTӨރ)`*:7pIޔ{ۺF8pqP*~`>BAmk+w8_'R|Ԡ2"'S~֝2(e۪,CehzW9rU!WzѐFo#Dɽ݈nP7dhww};ߡE̓Y‡]JuWu]JKM[}y.^[EC-3(eႠoȢႢ#Tl#|qANV=dibU9Km8x$u)1t7d5IMJ½2%fYr-ՌɵV3&1j0sf߳2@oL Ġ2@`,3#WHk(;GB)΁X9 ݈%/!/??}\sq{v{vw afV#@og=^[.NU]Jm(}bQ~=--|3UJj6WCz /ZK\B*eZC:zwNFCnu#"> U= Yw)CL(jS$wnWHk(jM2;NwPqSmmV(=R<;ż(^۳)LbYw1~:mO?4V#GXGq#Pj1#LRH&Y?[v! E1땡  eJL3jsFKpДepx>j1z>q|FX(s9j̺5Om]DK)1 kY>k^2%Zv[ʸ$!*<}Ѣ5Duw| zհq|ɾ#JY.﫢9]p*+3FSu*-껯}u>q Rw.68HicfEfY3^n*}m-dϻYcgd^π2_l%;E#@з%~h7Dg5 Gc{fpo1)ދ[OG؟徢mѹ%b~)da6v ܊m>΍6F?ZˆcA!,(ebA:"8OFh9oد!|φφҙw|_?n7h ?S_lN?<9ؔ:C٬לx"e(RddW"5e@쎻I1,"ad#@V#|MT2=2\}m#بz=B !</Ğ;cpV|c6z3Uy|z&ʬYtFGvRП?vl?+޻+ѻ+{h')blΚiEGol:^UܻUUe=d7÷&NhP4Ϛ6m۬CY֋n˚5)YX[, $0>8WApB ('SXVpAz5DZC#}aS^vzmMy ꁒ+:ZM ez?n?˚)&B:1 Jza:C_U7 c1 k Sʕx}(Q$FxFeϓ9sqt z{p )977,KiSOT2(NCl^ʭjԬCd (^tn3zީSHzHzH=RkcR?l(WoǠLBf8>V#S#@Яu1`={-ߩrw֖0 9o(zNk,AZS:e=.N*4{# `SUBHPJHa0fd0fW(T83M ܺ7P.6XwkdCܟ^:f}4e@]ُQh+0FL4* ϊa}yFc tӎS%&(} ,(sk}Jkd娎(~O#6úP\Jo3Z{}#~Zޙsg\~^Jƽ )VGt)Lw%Υ) -o|#p^yl{帚z[hkmmٟ_ghdWHk(ΚSI<-Snjz(B$\.Ieæ8zhf=:XMF\bŪ & f}f}f=0< Ѻ:YOf=[سrD)JVev#8Q< l,`~gGΟ=|jfK.HPe0ٲge)[]6_m5,uW%da=ƃ5O BԷF kF~{^E¼JX2ꂥ:x0ը F<B-f~qm")b#\#F&qw3fd3~Wk#Vw_#G1(<ʍKɘpLӚ"ԩ\y:iYC5j;H` ~f}Y}ڲSU_)Y)[|+YqoBG&+uț8yaWWe\F#:" z]C49٘YQ 1TJS+qln{\nt^D:JP. :ӕuM|ݚՐQ."(ju"ORd}^i}{>u \P.ϓ(e}oޚhHA1sm,SejR}}#C#'ˡl}g#ޟ8ǪNXӓUV<,SUV42,,Sejކ߿;>cܩ\FkEZC"K ;؃!=Lxbg4X(eB_$Ff(ӣ3V2cDTq%H=y>µpvX;d_(*{KJAڪUCZwchMT_~^_G~h%h.Y8W7? );OCʎG8cUg{5_F9|1''* ,lΰ!tvj'_#pT)~E+WlogmGGx1(Z2٬% Kʭ٬٬YgacuF8?(>?(/|Fx>#܍`iYhKEy܌L 8БZ#\# E@l 3 N.@ZC,P5o?,+Iy㯖dF(HFH}p#[`bT> dYD,_dkL)252,I)25@;gG>>BlmTgN=Ǚ\9{zdf ԡ\֚)cE%y$ObG.m05Hr}Y#@_#pX]~:t6/#O}Osg\D9qOLsκraV}D`>&73WF*.X$nmq(FGNȑ45c2&Щ{D 'ڊ [Oxv1M1T߻pekEW)1_ÏYama73&&D5lˁ5I` P.kvw5D\ɣu=ZNo TJ }VkhZgv֡iUo*U+_,5[3[}Z5x -q4˓5Hu(;NeZf `!K^[73#0>ٻTJCc!DQz]u9 utDtRfn=O#D FHFH}ɫFI#\#~V9ُyco~EYYY*utbV.Y>7:!ݺӝ3, E$] ffbYO"l9}N%KƱ5ٲJz|:C:CN#dFKEQ ɠ_GGZlYC5e}gc8CvƼ퐚o; Rʝl7{?gF@/$t̿n3>\3J) y-ؼo"KVE&j,FLFFXFO[O#ʳAި]m#wG@Q{hW5IJ~/6;>:>:־=0vJ^+}_ms7;eq_mWm3.[6WDe3֜%T$YL7.l #0>µ0⠔~Ao`j1F3IcQGH$[ScK8m96RޗKG>An[c>mSԭ1۝s0[D'Rb<"5+:--Fːdf@td,Cb)w:[ulzfee}n%dl,t|4’ߓ_{X@`=ϫd98fC tdѤ/tw8BA2,:O.NH.˭SsO.)˷#,svgdvFa|X am](~xR/C|2/~=NFL@ª>(㣲7rE9c!u(u0ʕu e PvfW-Aš>5*/j_ QhqAYǛ1[‰ߊ2/nΐ5,'>Š[9PF$}G|fW̳m "6BmkԷmGl)Me1땉4zLږNV lZmKTX]{g-rb|FFxFa}mf7 3 (87=̡,s-ѼPWQ|Jeu LYGee-SSd|+.|ŅY\oq7mp~~ G Ӻ{1kQB3ؼnDž!۬y8n{dcf!{ ](e7;cl6B5BG{d=c 5VluXKִsqrwQPwQ.\kk̨dB_ok @K1y.@wk{V6?,>?,+~>ټA2;HPz\[o_^(}(芑!&~Td=F}ŽONpE E_)i(kdvnl#;~(~E|ztv>=:;~a%.U@~ce7?gJx>Ȫ _ҰFȎ5B5B۝ק>Ǐq% : Z.h $GYђLwH:cNK5ߛ#ݙhV%߾*%%o~1 ^+_C^ΊpY-Ep[ FcFF3o\{hZ:HkTd-eǶSbv|xkDʼ-cՙG 5I~'b[|-ntߝ%VyE("EeTYuۏw?K}A}P4՚M lfUɟ)`R -Ђ8N{:!<@=|ƨ4 =ge$#&z4.?U1WgL٭+y3,rU$Įh`vJ& +Sumz6#{fB 4^Xo .[qwR^0uvk[ZSQ8n(%;Ga +r=cUg>["\ yՑdIB$WY{{kIZE1U<߫Y30;dx үZw $\c@,2GI+'#_r(_uߍ+5G܀Ed*/}b811Ѹ/-3}yRQ!Ebqx5e0>H7p̝?6z(?$\{\{:`'ӺIf @!{_O02w;'R# kwn?Pof1-Ce"2;X)['_JՑ/JI.p=n+qzk֨_Ƞ+R"3Vj:ױ;1uf{N\W oq] ýA#dF~,)n-xւHn-(J?;~ 5w?߃-k-??_umb}~$SG\=yWoQO췈>E|ji}}~EBhlqĤ_ ߹NBϏsyb}h) dY>wHTι],hiJiLiH1CI1qy#84>3Ac?x7#gX4H?E<.8$n\xpZ)PNC2kִ~C{/v>>w#݈Son#iy!{i2kdke y6FossF2KnVӚnD3q{pw}}~>>D~͞~=]svf8x9[/s|{L[$hYkw5wb=Ewm)ڛhlO¼ڛSOfZ~Ї&Evu s2y2vBhZpvȬSOd:%;R84{AVoO>M|R}zgw:+з{:q@3s x'ZU\P~^>תmQ|R}:7lHiJl;GxsyT@&U4tTjOm;NwR;f@)>q VIjfs~}>nH4 g">1>/s5s[hS)OϞ^~ν^L79cc9"?ywv:vW_j»nwS_=?NkyR:hظzvPgLr$#f~V. |~Q}T絺X'72 1=j7 /u n 0 4I^<: xd!^ H9-!zз@þv/0+[s[Psrα=/QK^Po#[:uKZ f58Q3HdɢLV+`95՚4Q(cBe t/p- hW r߃q<+xúXU%ZUyNS.P '^v01;!83;a:<'d͝EptiSsW`z¨VYTkU_o>|ŷì}V$Z k>_[aF l$#E6f@l1y A:F5g-y\Qr]`v?P؄-ߺ++;OKc4[c6f 6 ={ 2"ޢONVݒ%I4T'ӳN ,"]FC@eTp`-ÖӓNK>eӯQo[%^ychyY9 [r7t~u^dvŝgWfA@SWkFXCz?O? ?:~ynHGhƬEVE v9>s?7rgVq61#`f DlI@7:Y,xsL f6H?k 0\RzUnms52K@|9yq+ٳke~VZ͗*3vjEۂzv?u9<,ud>nD%V -N˶izY'n7{lƧE{A&ӽ,ի+J^%O(Cn8 2q7`ffQ>? g%^gMdb}IhsrW5\ c8|1$ͱ-]Rڗu'aф~dLpW$!+*= niovoc]1%f3xl͘ ʲ̠$K66UJ3mE\X!quM;oI Wc'dD IƝJ- 1E{M(,-\$sЂ{sNn sjƒ :[ l\ ݦ%,?,Oi%S%yVwOKejsZx]6Ox!בm40Jjo9軧U[gmz_[߀.2k͚:Vs.m;7{Y>296A7/$=JaS!3+:7;—}q@sߺaɓZ'gw] =3QOX׋<rw!KMkobBW5D22C0µml]s-̳)&cӚG].}]ӷђ7-7?է8o(X,YO)k}}Kv-1ÇE>Am#Xig0+ړ^~_6"JƩidH/4mA@-2i_{FFLIhzb7+_~Zŋs=#~~,v//czvVuEpq5G#(kdx R K9%wLCԃ޳d&d/X{^Cn`ITpΖ84<ҙ,Hܧ;{UGBvcK֬U˽N"z)tifp1F^AxW:*u#ÖSn{rR_iWPh@؄-PWjK-siUapݧT{,Xd> v3]n 7m 3u3hqƒ+Er;KMٮ |=s5eWAM$=_iÛ8w|]V2/Y޲τy:vڡ!lo Z)"/k溚-@J_nWo2pB֬7UaԀ- \$ /cttU?f?yP|bG+l";:?i6߼_Bn4^­ E5_#E%+ reDyâ 7?9ZQ<+g}vP:#*f&)^O ڵflufrKqj_mEV+kca rഽ;eņ@*顢wS%by޻ OKScGC/i!3U}s!UokkpWm;~}_9ζ"s2J'LQ;$ቅĭnx)C*(c> xܶ{+{O޵2yw{W{sqzJI>t sjg\7DBh]Q+pc}~m=tcLj@`*:–o玫Uϧaaw";V{i|\/Odz==^eE{ F^*ǧ=,tgy?j v|秒%#9+u^GѨ> UOD "'hǺuE;z<\Z8ʁI+ڞ^^;_o֞K`{SD4!qcmj< ,>8Bq(]yᙰ {p1NnEγ MF?YڐG!E8fj>-xo5Y>^m9 aw2?~ozu횢n+V!ՇwY"8;t(O@Ҳ a`]_m}()Qn[Ge{Ka')ǒ+OPZ m{ҙU㹧_ 89o5 LM㗷R22,\\HpVњ5 QmS }kNnۚü?$#MhvX /c=znS>K|3mfӴq?X"~X͆ͦ EcFyqN?/;6xS jW:3/0烓9f=V(m!qY\f9,^f,rzCu4t5cu ڽW.+ޞ}ޯx!V._;/=xZJz lUY%N0Q39x-cojpc[+&'&QrF֛m.Z;+%Z=lY?[tNjeh\$ʂ$ɾY2B/ߕ* P:ǀ@hA#0k*ѵ= xp/U|K}=%z+֙k:f?iB`+-\dQ M7jJ߫Y<.2ܶk%(3IPL8_W `9QqoY/[>dIT}-PMSboyNiz  Me\c{p|6W5(VQ_Uh^bmU6rł~9؎^L{Vb7W,dV{{| 3|ӹ Aw`A@nFؽϞ-Cy&g/#M7665k|$Ìb̿uajEuT*]@: fpUzOl`w8}8`.HJ:ޭwCy㿲? VtgV`RN\"ϯ xWQ"b@8wOKXߟF1ECxt-7 ?Jy *%"87>W#P:(1bn4Qȥvԏ6LWwyl6ɠo-sMj ,sN]6*}Mq jP4"[ءx}ͮ}y߭,o-$20k=j 鼿dBFvQ#u֔1Za*Ptzo'Bq.0 k „ e$vS!'Ӛ.c8i%''^poTd49~F`:{f_=|ZU-7l#,Fg,oU_Rd)- kν6^}']֦Z$*7GYdoKxD~hIö+>>UkuzMڊ˽D0i-V@,qN6ҘëQ2m z1u8A/،Tc<^H*5.%H4)j;犕gU:wɀGϏ?wfez+FI;5o 3~ejRqRf@e|sŲ[y;&!t6RSk D~*buƀp,9,zǢ_IڹOhڟYSxThwu;DC{V5tsz&1uf|}e' ;GlNF|O'9|5Z<7m]AC {\#w}OҤ_n mvP59zggygzO423{'g=ߴMSf+GS_trc{QLY Wf UϢW} ]a$0PgFkU>KGpWHsYQ<]f3?XPofk^a$eCl`ZVq0Ee{u[9K/ p endstream endobj 1228 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 1233 0 obj << /Length 686 /Filter /FlateDecode >> stream xUo0v!9&P81YҺ$爮4@BߗabkN8+8)D3j T Ak;OEnїvQ64 ;V~]9ᤐT1AȜԛ͙hGg7&'o&]c{A<$c:YB\bsam橔<$e5*P?-]t> /ExtGState << /GS1 1238 0 R /GS2 1239 0 R /GS257 1240 0 R /GS258 1241 0 R >>/ColorSpace << /sRGB 1242 0 R >>>> /Length 53210 /Filter /FlateDecode >> stream xM$]r_,ɅZy` `6BMKj ;oD{ș!Q,=OUy?_|?_7_~s}Ϳ_/oM {??|}|Z]mm}gxڈ3߿b}ne_:-U׷9s+xK^z/_s<k}׏Q }w>oWg6/z~+3޾Eo+>-z}=ߞ*zޏSp_QѾ[iĸ!|1we\#3ʷ'߮Z귕Zڷՙ1Lh׷~ou0л*_3귚ߥ<=tW%.3_jѷη֟n?z+zoO~;I`>|Mx9m[Wfofֳ~xiNgۻ<4b 7c/v+zػӟN^5&l{k6XRgwگ^ dhoGW;^q^w~7]߹B];_|tՋ5\a\٧_}[>EL ~mB{.f1 1w_C]|Yw{[SMw݌Ջ~3E{\{_xme/bw?J,)&"oѢ}!2O_-kkme?8bc`!C;M+>^MߺÏCqRٿOx{CER ZOخ]l?? ~ϓZ2cu/j,e>)Cu[ulǭ_@z]/_{_n_+4w,K1wַ|ן]ۿ[yWynlJ"}`rjKK0Fr}GDMSJO>~Kw?|??ןyۿܟ}$ugoN]G,Ƴ_t:zct9?$ʇ+f ˞ [=Ñp%د U|Uݮ省6t7 yt/+x<.Ѫ~xwT'˪9yNޗ1F3Õ|VS{/ |yQn0GjUX=jëj+ߺXՙJp]U7Z~U ߫z\3lWpdp%v{'IsrҚ;ɶB ._2ہ뻏ի+3b}~}q}Ůq#G=ہOUX6,C^L .vu/aO~g_߭.x}~ ρˁہk~};1d|9p9p=p;p?8"a=دOu\\y\f܀y"><_狌?\׏{ځksrzv~qq};3E~xxxe[<,˞?دOrR.>d˯OGe3`hA ^_/MoI<<|\c=q}帾r\_?zv~qy;d|q}z\݌W}5>wq}㸾q\;܅q=p;p?8>>o;>:zv~qy;d|9q}q}q}q+w>srzv`>5~}ި{o`з~>Wf'˨b\p^?=$wUGzv7*ǁW}q}㸾wxnq}븾u\Nzw|+.;j_on%=-x(.7~] X? /ѿa? Gpqzk]x}8翽c ywxh~nsrzv~qyq|\_=IW)CwY]~G龦 Y/yXOEPhw/쏍j51APR~蝵cE}ݧﰱJc7~o }-l6?,n?}i(;ۣ6z̤379t*x X5>V e sd ’}n~?6?sȀ ($MI! kݿw8"*-G-l6-כ,.,(  Kv޵tpA]7.wnAIPkc ]w[{N ]. k[#(Ӑ>7+kaFLWzn|wlޗ8,Bz|M?%o7rաBJ,Wk ndzG͸ZӕoHW^*b#x-Y(2na?,n0,OplfKFǸ~ w mC}D6}#{O2̤21Ŗnua6 } W&MivS*" ~d<Ņ`Z8}}ad&[0,,& ke }䓅Jf ݂xOlA0Ykq7b-aF,]``I: ndeHH/ZĪЖ( E WMjP 9VLK}nV߅ ]3}-;k3S³Žv~qy‚aWWlalalaN'_M- VFQv%"6r^lOkE] ^z'Z`Oܽ ە^U3o¾)sج&E~$VKV ]m$\1zc'cF.I懅+%-2OÏNRYݒ}w=_Q oPjV2MjqZͧ=Pkĸ nNkz^{orzfAzMNQcm؀6D#f].+c/n~*1)_9_ 5WjP9e Cmj#z|7W~{%_;WR+yrUͿqaA]_Pe5Av/+w;g= (85>Zo*YglacaAr;/OേO .N0Yh4Ӭ|'86P~jZ=noֺuܓ4n[0[IksZp^2o;^hB͞uU6{ki. c BYlAi3JRۼd {g  Ԇ+'x|OVqpZLGP~|4R߸C! >Y(z$",v w ]wf_)b/P>N6(#GV5PIǡĸlP=؀]j_doz[ƙmۇrX(ɂɂ,6ٌe|IYaAa$4ͨfT1 9z%H-0szO-t#:KęLduI]kRSPf{J"Oa9U c ɂ=k\c߫ja)8/-,l{=7!||>(ʝ7ϰq'?a-OZZ̧z=Dﭖv+L3r:b&v\ޞZ0tmC'Vѫ6gd v.߾;1sH.3c)3fl [S -?%Nb,B @۶̻$>k'P?ic)?8NIqJ*԰-,y"|^cA F_h8~凅zo'Aj ;gPVg<3>=,<簰 S\y2X|IPFyY0,ZjR݊߭|ӓ1worg zא" 5q4͒FYH&d{Kjr~ɒU'ҍ%,Cmj#ZbC-PȮgis8d>溜KWdWKamF~zkc^}9v Xm>P}ǡd|lPO l4\mj#=? ]5 5Kɂa`n%a*'D|o|A,Kϴa,-,)lʀ ی{Λ۶ϟ_W E/Ce5ٽ Km Cݴ ]dW5$8 ":4eQD:҃rJ(t~KO ='.nai$[XMHXjnmCc_K_iSIY{YF ~oayi#̓$ 䦇laÂD_xlEkX08+n[0>[SGa>< -X[P&a@<.?d@B?W+tI.=WW9/pBW+9Զ{E^X1^|ZY3HBY )Gx%W?é V 5 AGP|WȮK֦У}VM'EaF&TBR?s8\loqFCj(}Y{e;=9gu-I-0Bf˒ qAtj&^~W?T#~ݣ~ FjXvրKV׬Y]^V}O*LuXH}G3}i~q8tyn(Bj~O4ͪ;o߰ u+ɂa`|Gu?Q =^u/e$uI}9*_)#z.uG;m<)1,E=`glr9F':WW=Ulݤ6rnf]mj#zQvu]q ٳt8g5gXdWO}سڌ #ȡ+@VKX7duO1c1XJޒ-^qXP~ZSVV[ǐa} $z%H"R֋z<sX,3WKk$E.XZ#w׆5NW2 ?Y}ͤnP6-3i5- @>t%G@ ؼXme.#wI1 #B96OH`J`-?yzX6N}{*DZR܊[Q~XPg{)ݕqIsy\' G5Y0/]2v&w&"?z֣xg/O vFSh=V|JNJF{Ai>s] ?,N_qwt'Aj*E8-GM)I=. 34 !u] htou^cYc;q~_]B:,LgGfd~4Ej~_5b#Ƥrh,On3(юF$9r v)Â)s/VI+A`y:?Cz%kT5`u3Xvt Na*,v ̇=8#mc;M1lOړZAv5֛Qz-:eNw0$^ܙ%[-[-[hOL'뢹Dz{$>-%P?)zHqݳ㪾2qi A\a5AvޗlW ⽍kЬ\f4`JRԽ%]q5y%jjQHCWÕm+5 J=,P)<|A€R20Imf4jXMS~>;*͂cS8,2,h`-?>ŵ(#N)ẔΧ+n\l|"wJFN9\){!5[ؑlA0Y~oՋ<=V|7q:~/UE  SG 6Jߑm_8dll9pJ& ̶;6J5rda RάAЍjKE%t #Ȩ' zCRo2YK b2rycuT8 us ޢ-dzCZs`Wc`2/f?[=9uYf>Y<@@Ns͘- FBmPҼ}p9EA72'h?H!?Iv<]lt,YhW ,P|<|˰Ѽݩ>QA*H]OR yFY@TA:_Iݯ)p}MD>lCnꩆw*,( -[.'Ukf?Zcʓi15]s>2{~H5h2S?E/S?E9ۨOoymcT܂|&W([=\ϔXy# 2+p Xyj˟[ϟ5---BTsvIEe86ߵrlY³;U5;^x6k; ২K>(wG: , IO=(JO,^plղDjU @Ca%PdZɮֱb!ӕsMCl3 m$YwI-0BY_8k ؅6奺fKL=Pg77x]-;eűSV>ﵫw" 2g4yhQ装irLy'Jct rj҅={V{ܴcl~D^2۶s϶ce;}ۨm4',v O_9Y0LsHsE ?{@!u=ړR#;љ@bdwZz6F5@x_N/0*/P5jjB^{pXyX?Y(TFU `gx̟o`'aauإim[擶S "Re_)( {eE#1ʑiԼA5@`ꯔ,l_7[ؘ-l~XqC5uu s?b se se #;hnw+jQDǔkgupP>D3zH w|ԝeԵ˦1 }mW*R(!ĎjI`Q9ty:g<3E\!Þ+d|:;ckh5_C}N W-=[o0$Ӆ-y€ [zSǻ Zxom(SU =kO>=  㻅4tFm݈mAr'u^]ޯG*kh/jcnIrrPn+%/6$76{6YMv MN<Po#GvpϤ^WR+G/7xP4cFtP-<5[(=[(=[xrHj㨻=Յ{!W9ԕ55B]S,wqXmhd)Zȡ6X}dǡ6X}+Py(Tw -= ]J jPbjjᝡZhuu(u,J9w W 3zPB\erG2퀀rï+F&9Y.sfY'4YٷOZ'iFTSwPd^OI]ж NX=zducDN׆j߅c~mi5nd/pk[0ϵ*Y*Y*YH::F%tz}RҍarRG4f `xg(NL|('Ώ8wjq^-]%hd舒t1xĕtu鶩+cXxb >&z4+ϝ1QYrXna[0>>İX FCԻڊAmj#se%j@̑{&zs~>VZ=Ҕ{_@j~.V˹xt~ g/4",,( g ]kVkkZ>Ge:;dppaXX04a'+9 #3hhYݲ{hL>cqQl)OR'H3d|Ɋ=?d +GHNr4p@!(srRu mX2ǰ>gZZx?ɀ?gl ZȮƺ7 pu߃ QYM=;Y0S]N+!TB@3%7NZ9"+u '8Swގ"Z ,pGI%砞bY/F欗ғΤ3KʹBu5#A Fw{R?3w?G>=.oD=5t:K'C,r }>5T /geRe&s9M6X[>_;n5‚a`|QXc-slRP 9Գ&ndXs*;"I^^ P{֜tR!rzۿ0++cX?.D]T=*{] -+[hWPN gE  8wO'NW^fo6[;?fFB[Bx/x5h7 h hyRϞԳ'-^#COO]S} 󚰅TTݙO,?Â{_ nbxOF><+y@z& nWZrwO`Fxubւ} ?Nw5Q8B4rZw'Slj@~bfxPsj@uh}C͙%wBKQn+U s=N^I{/Uw0o-[!h*+UOtЩij1}X kkڵ5Z ?vBW+9g~HdnNJ-TCSBӴ``- wx\ 2zT*ӇCm05ԅV,)&αP+SU_ lk| `ץ~S#@`9οI^ORϜ+ysu1y3-E:~ZȮFլ.ad|T'•,12iѸ}>cT 5,YxwH;vC?b qd GG舢r V0F}H>0s[~s/YlBB_,$}/>+*RR)KoaTN=\ |o387uvUZQNQ>~,,,\Gտ',Z>1ttت-pW(ఠ`IȥdR##ْԖdjMAve$CmɡT=~}{oH]WܽPyDB޽P){wu%uAGOԙ:pJr#Fꖫ˵=VN4 :9Q'QeG* nI} /J!pkdevnBW+9cb 9"ZJ5rlscvnn+ s]4'^DD: Ff>%BBКxR 4rװjR_=\aͫ=[֫=(ZGԳ%lI= u+폠u- @fQzux'`;+MfִȢ,B|EV:R::Ԓ$W[a FЬXcAm0eC XZ:?-' Wcj+"*C۩~cBBMYmOnƧC|ʑՖ;NuS֞,PGo>95ޛ}NzIÂseQ`E wP~%aжPI =$k܀%K'Jk%5K4xDO)c۝;woPs ݂S\ce{&uYtŅSZ\8ZhN7IIm?R:"DŽ%_è> |^} O9u.+,PȮfdV2ծeB/rKn`4grRŎۜits+&þbSo) KZNZp~x|-@/@it S)I}ߧ<9sͧ4J~%u=Oi5ڧ jAZ 5w_ uI#/-+ߔ6X4&V5) ȩ{I3A 8~4S쯉f i9"h 0N`na{a(&ױwL-8YHҹ h G>dZJ`ww} GČ<Ύ<ΎgcIђzʛ-2G4NyݺZZ`{Rm1vCD>!s]=z=Ir)kIy`4wYZ@Z`j/ E.P= *WHV"T ű QBql;9& )HQΧ ;;MElW̶6]7kޘ=ІiWpz7-WNId \5KݗJuu΀U'wM+EL)H5x j‰5rൢ%.TjprSB V+smKG}@+GٓH꺒rRoOq8u`\ygIYZȡlW BmP yNWq-NfsOn0I?D7"E7"FddScu9j@⤶ |X8n/hX!hFP 5Y0~XT*ycN}O"#TFM oif;)62BĥHKq)B樖;O]ԕcbVa\8a'L_dBhvlr3Y9)Ku\fˌ}ړԽ$u/IݞSb0V/ը 2Y̤~fRߩw͒&I)Mך|k< PЄ(2ݰvw 7#Ttm_kV K8C>+N<<3,- cq~Rj)W:EkRCJ{+ۋOMo8yX,gQV/zBaR se{%uI}窌6Oʔڣ?)ÚHzX Sd~JwZ=Z4rm7? 3A("Y]h11B9|CEђZ`{R;.&hh`.̒7,-v Ƨhh A@ `E@CVИ^%pJobWJ+ATav>Hu*W!r`R:Gwz؎}|TC"Y£QnI=s')'yG9W#6X}.dGu=w:2┚Ե'uI][>~{c+J~aSW u9_X8>w9ZG5F*gi_/#Ds]Iݮ.+Վq8`Dā1u{*BkWv~E;ͻHA{+ [0[ HMv`ώϳt{؂& BC;-1oGrKMR)zvoN攜roCr_pcS7\]xW.4NEAkOI sG#C=r9yqN{׵f=YIS;mm?>vq.L Ń FufܸHkGGh‘sd!GJje'P.5á FԖU=_ FvDP.Jc/~шn0['Χ|usd~SYΕw-uQڧcEQ!ukɂE pB:Q\~ǯ2tt9J:% .~k^/iR o)IotWϼi+=iulwc A ݂S?\$ru.Bi@KC&BOd:MԼyKQuW]0~T]{-N7j!H>d(J(025LnwR;:V*fjK8ȏ32Q~jRԥ'Sy^̙o]=4VfKڲ-NT%^pĉ*0NPU@W̱~NNq' ; RO~'94Tn G G1Α;g^sz!5ՀF3Kw!2qQALۦ/|) F<]] Xlllky_gmw vJ@m[C #T%qZ]B~'xr$թDZ[0~X@0VM~{tuA[|Oeub64qgȮ[rpNC HZX4Zv4 }MdZuru0W+tCǐY0My± bG$<3,HnAF%s@`\aS?ESd"^ {6=K2,P?i/ rKXvPgrq&g8,.WKjnr5|5*\[Q[Gn+U֩UO{=~Ԓo,1YzKлD.JeJ FSzxSgق d Ė-H2|Z- iࣦ81jNǸWWR;5ʏ_DM sB-I+Z`kʗrQ WnaQ0"uwX`; ݋E(B2#v(PJAf($LQwyEr ujN^OîW u\+b` 咃 (@JE*3)w6*PGD*(9edPzi[^! *$9*$L;ꝡAjшR*Sx"dJSa ]֊a\䔊aψsvrkb9n'1aNt P| OJYgV_ s&s.R=[PV^nD)vq/G)9 PϞ9 氶7`-ʹ2-#0ԣ3U4zxB;,ϵJ((l5]-GDAI|)r}T)rg̈WWvוTf(uٰ͖"EF[FUzR_\+Rɡnp;ж s'ٓzͤ^3g%E1G j|Gwfx]GgItd;㘯굸#!jsPjPjo[MoD!"i@/vFC)/G]ܱwu(jPF.L9a#GԄzJ, 6WroG|Jc1 Ni\r ʕ-x=1U8ilav 7Y| N '?ulRO a' "qea7 w+y' \_F&O]-P+$u[1J&ɘG[E\6 5nB-ldeFYҪDZT+Y R6Vn kxjk82D%x r%yEdszNUg|{O!⨇H+vv/[ؘ-\-j/KM3^cQxxZȮN(N`T0UŬG^"^;^|C3>ͱ9?b5{yXհ`-?,#ͪ XvSȮ),v OݼJ"XYDT3 {-ݜzj@l:66YZ)떒#GVuҌ B]]Ui罹l \5r ~zTsB=‚a` vx 1Av9]nxWȡ~ԻG\ O*AEN}OzG-;[9C AǙ_'ޘC& zh6{G= 2gRkiPWd##]#ݛ"?Ԝ .n'Mn'M4D#Zr~7T'Ʃ`%:p=W빊\%^T0>9js "ȑo¡~~R>kqpT+p}W*zwrdQ_M urԂS'=sS' Iɩ$\zE EH굒z^ҚbĜ0Sw !-v V{n1Թ6r%uI]Ӫ@O|SrT -UA]D%`s}2EWEu\ 'r%.iBDG iB/*M.=_rQΊ" Gw+xQj#5{Mj!ZGmWk,2W V@2rfZ}퉳$5@v5z—\)_ww)֨w0 -(+l ߷NP'bO$^#qFR_#E4uئIV߹ϓg<ΧZ----,iy]V&y]u ֏M|d rd[0>M:՚r>EͶHm05ZV>4rI ĈDr!UmvێýNwoZ  [Z=yϵbv y}KVr sB=KRc:~x|zc|ԥ[xjlN4hk"kZ=ߞY Mkg#'0FJI nV-+[ȵ4u\H9oVndv,{1o.bOBNI5{Oޓdٝf+nRpD)c<Y`N۩Aqx^aaA۟dAotSFwl{9B굒z/'3~BA{xR=<7$uj+Q HV#uW䪕-4ݳtHBnzEy QnRC-P;]U2C)3;F}]BoFQBIx:G!tzv%SL%~>I!79E4/jn0*vw#.|QG\`;>A T/\c]I?>J"a֞ }~Qa1?OШU'[0~dF)nټz/g˹̾u$FZjgQ= qfF8I]KRWR9ԬwE(y],JRFτj!ZQq_\qdyHr7𕻁ƾҞQ״%WMUzDGp/O`9߰d ễvi8zql)ƞTf22\f>)Ǡِg 93YhOM9YsAƚJYwp<^W")luV#DD^P<eqsP 2QYf:*vFQ; ^78,TX;ZayYmgzY%Sڙk\vڷ}+zz)+泅G0܂a`SI£G?,X4`u0,U.Ƨ?uG)lO>IQ m[VVיnP#KVF`VU+ٲp+!94ߎIBJEP*ӕskՊó hTݯjўP uYF=^4ٖ:zTQsX|QTZ` VKlqy{MRx\E,]V .WR+jiɆl ې-aF\!i.OR'h7 ևw =չ c s/A{+B2#߿㑔ﮜN(w7Pj0i~Ըs}y%zz=I=2PGEţZ*:^H;8*l*l B=g9Ꞙi_i,xSmԋp?qX}RBc _ {Ýc>:l&aFO ~SP/jP=H]h+=`Tdх*4`|Ark(Wժt`R^OGf1 hmJMi(ʙ7885-#,wzh|`_pD;@>vtӭ%tuRda{R\Ńd' ~D>Z-Z`j/]}~OA#nH5[(01r;-7AȆ ߰y-y-v w vOig8 L'AOgI,fQ/[)1R E:F Ci(f~/}j} ݗ>Srz':eBRԚ(8Dmt#s.IjNϊ0{ RKw~YIRSW׾XLy@K8HkRYDHj>gjl[{Rm&uGE=Ag/o՝ԣ$(ISl齵r@ejP9Բ,T> AjIN:Yudsw>˰`-5U TF#?ղp PֽvԷs9R%]]!FA]hFfdӌl\b%6Yݳפ5{Rf jMw5ANþOuwHv> l!a~rV?pK=, hՕ\ FN]xd DsEM  ,_-y1_RuuﯫxzFFzu[%8b˛o2i\zI$1lIֲޮR3C-dWˉ9j )&]mÂⰠ|`4 %[ȂⰠ|>֪A_bD8.:lrhll `Pnhh}.]WwrP4z*N8*7|ݻf e~#Pt SLZ`g|u LSr1NP;#)6AIŶAI^;ƽv{dl?gy1rUEH-AʍB8ýB'<(do՚>jV&`VbU1}+>Б ^赧诅u2L`X?NK*y[LSFYV 9.%RRDž٦RkPa\a㓯^Q_bSc|/Wbc퀬Fm^T_iYO`҉[_` y^0y+̟ n خ0J8. @XwRuߟ..uǡ6>N6qIgj!zZGèRJ]]-%Bmj#:؋;]`sRQߔ[:& -YJ'Mrq N<%I%UyL{]A;HL.RB+9Q rZf )}c_[V#BߕL{P=Z2UzKW>zӕ_]>jpla]P|l~7$,T2 ݂DS0<.i+1媶]XFkH#u#Ҧ#uYFr DCyƱ+Ώ:nHt6.-[(-[tvS^.Bccfқ[0N׹. <I$u88 yjV>eEnv Ƨj ՃqNCVTz|JVU_xW5B]JFvD-V:6ǭDaAV-,@,ߧo`vKg8?dƀ*5np6ɥ%ubQ2,/1\\0/kcZ9yHSy6Ygf}舶蘶lmR`{a4?hSYJk_YC5U@b~~|7:|7گ.7NUbx|?[z7FYcS5ESYHk(W\YGE0ZTGEg.juh¬˭> jeWU/VyY(Зh1%v橽RhJ7X!(⒩jhӬ7Si a(NNwɽ`֬U]/X@b{~<\ϲFQK糯FgCFZ_mm*ia<19HZ-8 ;Cݾ8LDʕH}eƘk8C)55_cH(⒩\sڏشu*z;--i!2rEĀuD:IJwN}Ō7JL%r2yi ,2zd-SSL{_vSTweeN",#Wu%,ԥ>6!dyyȢfyHoy,З+UqE?+Qb*kfMX֡,k<Σ%BUBF`@gYgfʅSXWUlNyKD- g9H)"ޝU(Cr8PŴ*GqϾاqGEqCjeg 9hbAqx1Hֹ3F}n̲䄬!ڨk䡆Ujq *qm&R!u(zm2[;Jv+ώw?;ȁizHb q|MxKX m+嫩yI: Y)Y_m%EZC|#mXi eYR>]`a0PɅU(@AM){o[sPV$:"9v;yGGCL̩SLдV07SYo-S퀬l-_rӦ9Kw)>5aJ֬ZxxY2v<:g{?#ƞ[τF` (Ki=ܣ{=Ͼa0}f_m9ko%;TNd"!;eda} y5V2 QqR/恆~q0<~<9GIO'bLH$({W٬ͺv Ͼo9Ͷ1j{EF¬dWQD/%dn651J9c~<`I7FC1e&2::'qS&: y@nB(%ˎ+9PnhլYGNB$1W%] DĭnvY5cM5zc`]5ZQV/krYkE,>"ӂuT "n'~9@Ԑory8>3Qሐ[($MQTn[nE:|r9v#Qi eF}Ge={!ľ&͟~q\SS 7>\\D)(;i֙%ufzumvz ;@ivzYf'%{6?a}C|?g%P667~RYLS> ",a'%O;If59t :{R"[x\ؽY%e2XEOTn6 BKч<$l>ȉX|H_"$l3)^Xn!k>2OH>b}>^7^72?=d<\RMz6AL>(H`f:b!m)Bf ðȐ[:~wňrj{Ӫl(cbz6j֗-Tl}PXK4~;N~7s$ Z g|:@oQ6S<@I;8$ NM6|Fzbug>z9mtEůӾ6L%'errP89MBtw=Ͻ; Kɗޝgfnn4eGVn kg,1s YgRAi δ#,/kT߃qUDJx{k-)~ߧʋ~mgn{zfeC#ڸFO'HM{a6;2rFƅ'=~YX5S#B٦5ձ&=jWZ{/!yx*S<{==[==[=Vc!h!g33Jt!@iC$,ʅ&!5DCWώ.٩\Xby@#v Q#[HЅ[NKfOTJNODʆlِPx(se5;&TNnJYC5k}6 Dj}Z/jluH:G;kdo[)QYHN듅Zw -KlO%z ĘwGӒdZdXH_ՃWO~~ԓ5¬Yw޺Jk|+V$cCX$k4!8{Z?( RT,e2~)K z)KezA@kК"ԩ,k4볯i!#<ԏ3m2m:2<<+K3') ,aTek#orYC5ݺeF4)_XGYGYC5er.f2j-Gs=ɿy+xO )uxA87XC:s6nݬ8MnZb%bR9Mop7oWCTndZuhѬ]8;U"~{x-ٟ?Cm0ڑwjx2=P<9ܯ!f5lpɖ6I|޲![4[=[pn|qVy]fɨ0K_{0ah&~idcR:p1h\L$(>as{->ջpYc=%l:ebө&?9w<@/:~ կa5l=g-<7φ _?>y7p?]n6XAg툒J*`J\dy~yXϘλ!ַ~%ü<\Ŗ-:ukSgvkԙݚ؉~b]T;lO~~,dߟ<ϙ3!/s2>/26/NM!ێ.|昜OcRJ9&[gžh{GЏ*>AXӃzn(1?5yȬ߷YoeYIзϕv>x$ R4/'/J:S4x؛}M{X[`ë?#owtx8~Z8~Z潹s;[$d$![$7h 3 QX;qեh\u_ ~6(5^?u9@:'•."}u~a]6W&lA2,_=2JV*RbmT%U2٩iYj{_6VS'p:[l![r(zZG+IR!ޙB2dt|ܚܚu(ߜz6䠙" 8PivAS!rfz7֑5"tB٧|>}Fg}FB2:%*⬄d_nr}YO7˙[yѸ!16]9ZK&z6]9x 2=P{W6J&Ga)OBQ={gp?~|^Xl^d &~Ź{8a?C0Xؑm. eΩ_2n=@藇u"-^R.Ǟm5!guBCNhB_-M-ESYR˹e)jhj5IJ.fI]e/˩>cn9eO>D>Pn:am{Lf#G [)JeZ1ȔsJkPrY'&\3Y'_!>d؁jM)FZhN'|u#khOMmӽmNȻղ!F5PVHOk3Rbʗeҩ Kk4l)V}z$t .Du\hc61}5U^[HA--kDht=p"vB$!BČkyȌly,g}FST}IN'NȀNӘd>ۭ)gI9o@44'bs濯f=F=cp}-]g_>w;aurPLP.U)Heש,'YS:=6BHAB 1=UyX #I)6[4A-yf=GYO$Gu$QDՏ>||h]|mUKUHZb{5rd3eyミ\|{Ο}U?Ȉ&CjD:IJ-߈2M!W1ڰme2Qz!ر2-o즐;-<@<ĚN|ⲠL E=VP/|y ('7i݆Yt1xj 67_L7f}ӟH5ỉOi1'(TnӬY\BWpGlU-X$Ϛ0_avw9ș }٘ 9ϫd'{P)LVFdBV&+arB[,.Til|Ɖ\mв lsZo1Ԓלki獡2ƒ+y5Ca6+k(Yvmy{X (/ռyH/MME2Wrә,Szy{ȟUAHQr}I/3^n~H4A.n7=ei^Y/0z xU6 c&^iݮ\0hC5EQd(<@ea E:"\qr(X9"\8׈x4h+N3٬Y_o>gX٣kg([-[nL#gz=ts !3ܻ>ox>UhLT﷖WD,e,P5K0e-̴^ʾ=Z1y}i/I6i>;M9 .[ЬcUK4lwh-):eUwa>o#K}SU0eW@D+ػwwl&E%O1Yy13E,|2JZS:]^ Yз(;Y/OrUu(D\L=Wzۚf>THes;?rR(SDnֿK[0̬:) Ÿ𿝅{p_9cdPP=-gƬn}vrC)(ybgLN!8suY׭ٯ"@ϪPDʟʪY։5DZCh-묐"\`)ԕ'Y 9u ϣqwPmskskw3ќk`}t+ +fXlV⬶Fpef2 ԯWsC[mn%2 SzWOZ%,Tjdy~9),s+B *W3Vֲ`YC5e'1eP/'fAg{7sZggc3Euv0g5:EYYc,=eJeeM.r |AIeq&]Y_i+/D m4~T MY^˙k,s-dc85.P'?wմcbPAZsǦ >ez~u<#D&P5:jIoݬ/rYMÌ)"rqdÈDi eY/qMN,ru)R/֞tی2 af'*{4m֧cs6 TQT;V`CKC5AUnx ;▽]Kw4dp^|,[F?56DQ= ryHJZ:8*l ?:!l8pʚ͎Hu(+?vѮ:ڕ{rýdstŐ?b?b?+Ay8O<[l!籗۷C =u/i =>1gT1E4SYo:>YۺYU(Ƃ|܊Uh7a`%\2e撩_赯;ko|9k!e~jqв͘ܛrVls49ܛuβΗ])6ߜss&yx>xIu#ʥ)V^"}ʣV-fYȜ{rQ}ụuVPd CY֬,֍+~Tݘuu,ezr@L.*Kūٿ{@GfS*ta썬!i9ԧ|,y4D9syx}g|w ;)DfA6$]EKdֽx9@q@6eJLͲL,%˔hLp-灖 MYg:!!+ d%Ye˟J&+ <";Ě}S3+k1(Kd0B)@$(ʅQwЭY?gX0콠{-ZLNeY iCY֚>˕i2\+c&&*Mʖ m@m Jfw^YX֡8asؑWZ_kR*Go>yR5ESpjZeV;fη{޻Sh_D SV s$+yLԯse7V<$!}!=ݐpn Ó /yHny,w.m{o{o'ﶣYgn; $+; awp<,!7H$9)N:RbYOcq\/t8PG>E}TLp>zԏNQܰTw2;}Z?+"_=XAw"^U*]_Buh"ԩz ~c3HYLICu IG"H[ K٬o`\U+[ <{p}v/QqlުdGB(S <V;Xs3⌃Y'ˬ[GOOx{8Fh05OVCGycYKN㐦Li 5daja2qLzB*-?쏻ףּsdlDN|reF$dc ",뙁;6X*~ {mu*7v78%/q<\ HΉ]DAeM]=_M=Hk(O[㑤˪ wyKOW24`m|Qx!c~Xb$yH<~yXۦf/d _̳o򄸇svx岳mElH^SYl:C#YC,ems1nA_5dvw$c8 p%<@6ɘ51EdLeUbl6s6s6+@ׅϻyMλ'c6yxgnNݘA%}~FQ2h{ڬDeV@T5WE$z bLYo5$<i$O uRȹߢr{3)LYAme 2se; kɩ˂5@ZZa)::nDYm*eʖgNU1<P<,@bX,^kYǰ^eV_dl0׺f&K[2=P־ v} ]Gk{WaFZ20FGgy N{$ek )y }8]b~v!З>;(P!YBgpL#iD3npPGqƝ2.C. #dTg2.F@}yXYl #[D3@20t녬0%u C,dquNɑuN~ REmf>EC;WK>b}h 8\_({/egtY`6+^¯I<3Xg1l[cC_C! DF1)#(Wi%fz?2hYگX&RC4>;!r/uNeY'H):V؊8R.ﹷ;^Kt9#ٯ\L3_#˔unWXonLYqȉR:+ѻ<$wyHo-ѳJ-d/TF| wO-_'O#N+y,oo4P_5uQ#q;*%.%?>8KԻgȕȕȕxNOQ5 z_Oؾ^f5*wXr5:L{Uv"S=זʝUN|k P#[WNΏrv~(7~ӬB3s1{{~(J=y*6}%嚾Wޗ_T{D}P3-P5+Ξ{C$;;ub:$s#fsU˺`SzD}+l,x s-;/ǰl&;alB?~jV{ʷdԺ7rc =[Feq ZS:x|04>S⽶'&Qd:7X.ܿLw A =3߾x<_2(sYC[13 ;Zy\ Ph Tn؇N-3SK:8'3ؓUA`ϲYN"g)K> y"o rsލnGCDVvߔ^So% 7-#dy~V(uOt"'xA@opp) i([h?mߐw@71;n(r.! ("ܘ7ɻK~1m Q^+_@^yt$cep|:)%w$dy~*eP&l؛mlΓ)^pƱwDw=X /$/Β{oȾI̷֜!4ju<Ȼbxi8ڙ3Ӳ 7ڪ([L(RvJ_krfS{Gdʤ2ŗc*OY|ӂ/ZxZBWf*"3QD3AD}=E'h%ߖߜx#ZSPʬR3_ǔ17Iıv2,6^Lǁ2zsmd!37ꝮWt eu&ݧ/ޚbM_ e\EgfR~o޹i0ڛ1E,f SX--(e :ID$DT a0+*~svc`B>tD5Rd"WQ2+l+f\A,I>Rf?dV;d=C>OZIS< gƕ=!biEJ,)Kk;V=Nz)~1wF/ ~d* Hæ:E1Zj"{=R#in(x+*epPH$HE$[ئlC Hlẹ-sΑ,ʀ9QPʀB={yI^:P),ydy?jISC*C<%5[co!hm:kztX6~, MԾ?Q/xeϊ~AoD*3ox?Sg*7coh[rY<O wlءo,8OC2הBOz(*REbI?o+;~_9O;ke;FC?٣A]!s)o3!TO]߶plu}!G%`ݟ_~} hTOѯ/'e_߶2pu}!SN,{smS_TOh!u^>׮-)u>S?D~? #-"/"uZ5mhz? Q?оDAcO=]={Ow[??DwL׎YJp!ߴZ?ӾO!h|{>p|>p|b;D OT |Ww^哲j1J___=?<} w|4>\uBϷ3|,0St{><g4~6 k}yOx?RG]O?q'0Of䈿d]{;^ܛٟ sJ_̔xCN1)kK5{fSt\-?庅 ng꯿o=)oixfjMYoS2YIWb~ה6h|gs3ʮ;*Ti淪HZ VB/ 0=EHO"A}WƊ0Z =E}Bk'ɿN'+=Zwt{tYOV22MJێ۞u*$4NNN:"%V*Rʿ$IJJLmbq1gŷg`oLpkpصa7foFOnO~yQk/\xsͅ=RZ|Z puX yu߹fmϮ8㙷V[#:& GߎyjP,6"R+r+a5($!q!V ¤8u mۧۤ׏ppc9 qnQ^^P]P~MD %ccԏ XAE%7 [n> X4hV,U_q}Mȡe "qE* HHT"(xu'yf9ڍkU:+6W6iW`!4}T ›#^xIv/uogإ.\Õ*h5.8<0DZ_ Y!DV]&k7ByySMF8U!(կL)$@jT_櫁_S18y_Pp ې[ž%PjE|vQ)%WԨ{ Sh=uْw-yzZo 0yK0Kc>_ 1i莭iNΏh>s᯿-b~}jSar]hvK"Z~u䑱>vXw}8sw &ӿ4KC>5Piཕ[i j F=AƓ,i=;' sFSJ-]W*j]اu™K]uLZ4 o6;=1htO>)sJzNPz {Jnٺd3&X=cރgLyIϘ4I5K sаw>FGQu+']靳)>`{  >Г, =а#t?=^Ɏa>9)~J}h}pŦHs8/N'])|#:~ 's$5pҨ+ﺦ]r ŏӎ0:P5~3ӵ+8J:_݇dymO?-ePz7 .{@_qnӘžSv=HЖfNBB;i-g $_{G!a[Θ\K~Ue52 YW0oboi.iK#1 JBVa$` nV}j}1-1xFGަ=A6pŃRG@ z9I{ZsfbsbB޷<_~FP@']ovbAVm7#{Ў[siG+&UuVkD. _r'ݵ%c9<7 g?9J_ e\2Jd{ RD9ԀF\5a~^Zquך3/zN_Ztc9}< He$Gf\1 _yLc,YuC}sK>c̜clc'mM%- G843/<* #9j툇6d/c$i.W4ZԉW~Zn̴l5gvש|v8ZL^ޜ_ުm~{`EOƏd: Xrnՠ^;El˛K/mVɌ/˪D;!ceP<0I-o٨ԆK$N=Թ}zZ*iUPXK 9J6ˋƘʋշm']a˷b՘2OQWr~QqMIغ?1 _%p(kum8X//u =3x6qݓ#TYa+&:M]lEb,k2gWm8E_~s#Ty.')h<-)l&jEKr-3%΅C"D~>azO?-o{|Ag;HT|'?[Fdge0r}[TVW m$YGms0<7P߆WGUp%a6(_ؒ y8Mh L:xgk"}̺ț?OM?7 ~bpؾw:A@JVh0!]IZ'! <7KEkgnv]?voM"{މsV+yY.2fr [[Y+H.{t K\a$S L `9*^c~ T Qd3On\T KZl S5끍ik3KZl$IjEk5`cZmE."vJ︡5[swSٍT DYOucwGbXb7'*F=*vXy^[:ۆ6m~'f!G49~>\jO[FBlqԋ{OEo=+%QsGlWqްWZ<Eh9Ԍ2u kvpIeLuSĔE{(4H`5\QZ׾`/چZ _Mpz::ݜ>zfϷ'̧2ijPwR{і\Jw T&f, '}m篵R`oTf6ـt9΀tSr fFU+<萦b[1 U7[ǹ,:<mo"6y[䓥lɣdJt$SC%h+P9"Ep2p~ ̤6h f 804"DQbeh+~xο 0hm2<:'u.az&K/ Tߊ׸%O/=-hN(@C+LY rx]uI?NOm;eπoy #dصnUE\\mWc09w+^E[3y`ckL1>lof>ܜ]-Zu]Q@#9D=qGt(4li֩ʷJrؖw525ndLmgK|gJǐr}TٕX#IkqF$;k RA\?rl1FQ盒P,Cܝ uǷm4a@n}l7f~G&Ξm(T޵1`b ձ2-hjZD?uB={)/ZqqL8$GKRT9e/.FVv=H[CM8|B}: { k\NqdP'"*P^U^QH0X>yl{q2qJdŠ Lrx>Btՠq֣ӡ*%Zʞ΁t+gXJe]=ͺPM{h+ϊ9jP^q? 7pciqwr6-+Zy fkGRXQ'*QUA7찺ߟo#""<O/0 W#[:6V"> u#|o<Ր +|[9N?[=6sxwNI8t؊DŽN%@C]Q"\TjQEC11Y o6Fd"G4CHLaaX@I=:?a` W%z2zΤir$(XS1:N7rkzbѷDZÁ|Rsv}"߸LB@luO# ($p$V;~Θ^1U،baNJvzm ǚ5"k@Qq>rø$ ~}u2YOh &9'T1޶?e`~F'AhE|srg8_J0D!֯Fv :;:[2 J;g~2i֙k7^źOoIg|EV^] O@TKl og1we)'vq>}0Jl$+0rӿ, @:>;PGW  0|Y1C϶./y%!Z^E4kV?YkIxZZ ,܀8ZQ!~>}|x͙N˾koqZY;|Z o?ٗbFO!V OA_otAG_"îXD{[: }:wt1v&ntJ^q~`q[T<<o͗ze5sHR鷀;zf&yG\W!!Mtc=/=:=;1c/imiFJ#(;Jwz1ϫcX /f+hמ>z&}jQlld"32Ӷ8A[%:h-aGAV,8-!ňr3| }Բ΢٫ -XbUO:}kK9RHx4N8Qۨ' Ikbyޖ~aM: 8tB>cYX U8FRQFsTQF|a[X\X U޳S[rSNA YF|!(dKٟF7n|O Z[;$͈x`煾uO+-,}K L'';*x(0x$S4uA([~Xȫ@q1؟a$3I[eF:f Ee1 `sf `D! V\hho͙Q2׏Zl-ޘ>AcWюK휲vwxAHSmA,a|2x*SQ\c':,+Ǖpǖ3 )YGbTFh 0fGLuwXru3!?9:jչY`Or sfÙḳaժ[ #Gc#F2ItTsdڼ{2-{DxK SJ3ۇ}|2@i[+ߒm^WA֖N~m]$VlH94f~Zx}m|^6TWѽIE%Tq=cOMP7X;gr}6$jhIzo(XOc!rj,~fŽ|BdVhǜt0np[4(TKcM0v`)"ټ*ceHrp ;]콼7jϽ5HNDy ~|c45>qo7,0!#F=i㧷6 GֶT|_ 06h.,VBڙXFXv*ybOiN֯?#'g2f{P1cl\m^Gc#Bg8=IFޫ+wV=9یmIZx{qI&y?@ g@tnҚh%y`\mA жЕ*ew=li= 42^LT6#`?>@Ug9z7r5BRz@H8nkY?rCEd:OLAsȔUH ;;X @86b>jwfFL͌!SY=![c\*l ; P'Ǩ;3{~B aDfNozjBնaM6pE:ۮoSG롱'ﭔ}k ;ۓ=/sd֑X6ݩfBZOkc@F3R֘_ zn֐wruVF^X;5{LuE`PQUoTd4XKm1O4Jζ]٪Ӿ(⋈p*Vu a{ HZ}Ɋ @|Xy T0O - ?nOa~-K :: VH*cō#_$+FXyń:xR–`N% W#fs[>s b (zWZxm0Z?wˬNMw)=2T)m=/rTO̼ Pw{c,Zun$km-J|Y`_>KyiHM{qE護 ^|{|+a~/|mjX8kqXbOvnxT)Xz1?{6mFAa zܧ뮼>:@5w9 8m LzRWlHNlN8FmND[3l#-yꈢ_~{r{QI * G솱: V4Ө|owf X KsqAS*2ͺ<a&6l/|^byF8z=0y8tkdsk7 vsX:ae '$8hemG!̷ LÄ5)25)mߞò~tݧ- yŶ?6LY6\ wdX|ٷzP}4F.>t}Ւ8)h巷-H3y W})8q?>isȼt:Z޼ <u>_&$Xheg%)"NlP2[&x@K?Fw ,#Ҫ$Nj^vK7De]퍼SҜ9n^'raW@"hՆhZhCjDZ5xVFjje_)Qv*[@(d-2G<8kQ k^4o,_$Dx>Ҋ x>hn+7癅Nc/8q[O#LJ*(| ALWzp^ BF@Joboqm:,ķ;<{l=Qv~bK\TLUH-r6挾x1Mpʁ.99k1JxZNg_{k66Ѕ*czrdĨS o?WpK)"Ø9zMaǭ}#Iz&9O9+Uֲhybl mzqgC4rSI~OL8̱QZC|+.: in4A{&%+/ӆ6/#l)%D,b@Fk=8-$p>Go[s'?w`[gBoY䑧U0N?ܣg5 T"OE+UN Gl beiV]0n׶duT\sq,_ylU2aK'gVKR[La'yi+^v'^No^FA]u ط9xd<ү v8n4x< l >Y/iJ>d&S#OR@: ,S5ڍtU-`q  S1eq`\^4Op|o禌[o+lP9կMTX̑fU $x62O;gKD}3-HY&vZ~[H%c 6a#=Cx,c8'-i h#OE0|Wߤ4oD}ZIx%uZ<{|>DTWM7Y)F obV*o?:j wM_K?Q endstream endobj 1244 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 1229 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1245 0 R /BBox [0 0 540 144] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1246 0 R>> /ExtGState << /GS1 1247 0 R /GS2 1248 0 R /GS257 1249 0 R >>/ColorSpace << /sRGB 1250 0 R >>>> /Length 2627 /Filter /FlateDecode >> stream xOoSpi/̽w. `Z ""q dq~{g8癶%AmC = y89#Z/\}+Z~}}߿{|{u ka?忧X-剬Rx?/W?KhɶX(˫OSOzJ+e|@?ZJvV⅘Wݽr(05iDDk e;ͲQViWA:vֵiWM|L~&\Ze)xU:M\?^.OO׾wVԯuں5I&߳fͫ$)ITjYU?__?.5,O~S-<vLs^j=Kl*xtbrl+ܖ0š/vnn%l1E PR/L9 PJFRЌnY\+F-U*XfbV*E/S S^N%YIJ./hM4% Y Pj3հ|jOSX`FiRh`[R1:k;ƾ䷔S( ?K/M$`nHCQn4lהa2󕺚01:TEl+qTW6YvG/pt#!2 FĄ "mwon 6Ĉ޽-g"ٲ}FBdDALCF,R@$DFĈ`BW4#96M/ȎÍ5A 1#Ċ]i1"&ČX+b0|bbw}A&5!fĂX@ѳjw4AMUBW ]i8aElcTa>0Ǵ07+1Þaͱlv*7@{&$DFĈ3bA S+0y„ bEl怄ȈjJ< +bQ4 qIсzWK^xev,[@N" #9Rb^n Gl&ČX+bdtńȈb#bB̈"6@ ѕ+AW≱cA Py_jDL*4if; !2 FĄ b؏72l'P#bB̈"6@v@BDW]tN2aF,j"# bDDW]UtNqH(1!fGYSr,y誁"!4 FĄ bEl퀄]l^|q}X/Q'eጠQv$U}uQ ?zKX>=zb?zV7rv{({w`ﳾΛ>Nw`t$r,ygyHq{?f&È#Ccw(!ޡGw8Xoc8w,HXAܡo9X/"UsssCGǻRy|zo6;n6o[]XhзO_jcKVۿHmC% c'w5]z9?߰? endstream endobj 1252 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 1257 0 obj << /Length 1319 /Filter /FlateDecode >> stream xWݏ6 _aܓ5>!ÀSK:k9w#Er}6`I$E“]“O7HgDKrδI Kl]ݷ,uz}oߎvMuţ_+R,2r*b%ׅi`"AWw̼MԹY( ~(c>YB-ȫc[Owp4kmؚG?fjZޮNiԬecA+ Fn-tcxc/xYEԽsZ2d~"vhEkzyzmO;#f';whgdP`N,G+]!u@V(ThoGvK[nCxC8a!ptmM'hRG/! ea=إ392t/N$2!rƲeP)/^@8( |@rg@M t`"`k0lav/l8d<ŃZ;bFbIo)`+Y̧i/"%\Cg./N%l(u),u@<6R5٩k7vDsڟIsȰ` nɍJ{ sHD<o/;fDB<'R".9vAGI@߷ (>BE\ uM{0~"uwT_`.EQ*P*KaTR@8*Htv0P avG.n?ĝ;@kb1B"y>b̂b]O,TKLLTeiT2toq hhNOmPA]啦q) xMɿ90" "R@ȉ B_LP\p_WKT٦+ y1s̮z^EXB?O׏(KVJ Y(}#)H ( a4iۥkR( (P,CX>u~TĦRņo'OgY]΅;$xBざVB|cѡ:aOS;iڇfRp-z=m gcp#|F6-4 ]apn Z}Qo?۠`'@gϡSe?N+vZ7!qtŸ%Fݜ~2wUB~;Q[\V3E`/a<>95do=S\ endstream endobj 1230 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_5.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1259 0 R /BBox [0 0 540 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1260 0 R>> /ExtGState << /GS1 1261 0 R /GS2 1262 0 R /GS257 1263 0 R /GS258 1264 0 R >>/ColorSpace << /sRGB 1265 0 R >>>> /Length 8015 /Filter /FlateDecode >> stream xϯ$mWqvI*0Ccq7@?$~"agDU*z[Qߔ?O}۶[ao?nWmTn?(?KݷvݯF+r5樨Gq~- .ç?9/\r/]Q:qGW֮.SQGr/v?>5=<}o[ C1RW]$FKm%JGJ?ZLE]ٺ:r_gb2A}:wMNk/⺸6B+z9|b׿F/oyA!>pC}l༠[qy{*Nߢ(47kW eY ZiNv.Y7$;wcʟ7G2Nטyj3ğ9y}p]mƎ/Zk{/:bp yQ6_0>w9 5~z/sG&Ⱥߧh= zg|bss^(WKh"ϟ_?s aރ_}7~}6W|=}׷Ͽ"ӝO.k S~)u?ߝ-<%|hV,+9cks[XW\:Wժ_j}ű Kˊu}ŶjU_U}jLJb]q_xxW+^ ^UjյZu:ckmKxOq{x$V%qM'nɾ+ɾѨs5%>{8ٷ'dߞ=H|#29 cBb=-5pO<_+X0x,X%>{p*Ics1<.|܄;,9.k9v3__y-! osA{gqxyW&{>'E9!D`f"e/O^_0OzN|_0. zb5g0|}PzMAlҪR,_iiB\ -|ބq\/&Of?{O<_+Szm\{H|&Gk#w$d[=H|<%qM;}gLMGkeڮ\s} bz,y|NA</`:^PWoΧ"?пKwz2_lb̕R0N(|9 NNH||mKx"H|&Gka)\{H|&t#ʅo]z0z?:sM'n'7aUҔf/k=qK|$>#ۓ}{oEngx$Vc咸&Nd_KdJZyKxOɾ#w$(5rI\[#'{'zoGngx$Vc咸&NdHdEDrI\[#8w%>|,zMQ?wڇ$C6%pxNSWwJ{Bݻ|oE웗 Run&[پ+#2> 5%NMQzx$Vv咸&3 |=H|XQ&70ǟG?{Z5N;j[#',\ɾ3w&qsgGk?V.k=qK|$Nd_OdD.k=qK|$>#컒}WoZ#G3qO<_ \{H<##+5%>'J$Jo"5%>{ZyOɾ}m}t{rPBw=W]sq'+}aIfu2%?}rW+Pvoy7(2;ﲾQ&oO΋4(dft !|!6iQdǜS3&4=N}8p߫?9.)wBS6c{oT@*+Z[e34 COd.di9py7oj'5k7 ='2jaf ]d]i3-OaYٿo MY9oiZ U" ] R[-7٫zi˭- ܶeo5н;[ac]6Irƞ6wCEK>en>Igby33iLlOmOmWbEvUwBzx3 `kbt< 2fonvORFC=v"=|GԠl\moAˮA]aQG=U+&S2RKwX!{λixM#j|ƟvhDXi`w[PkU/#y. y*ćC#FN@hFCRt',4`@Fkx5H5k|aQC沩cn!Fǻ<=xrp>X{iTk Fbޥ&aj<ơ^77dGnoVF0`Ą4oO Z<9IԢC*K~\#BTؔ=e4ϧ*a7ER&&+п"OWϫފWaM+7csa-1V3Ee2Н8003+Zfa3kC]̋aB$0gl~x;4҉&*-<.a~B+Y{YtOY4kNT!s}*2W 1wG,ji1ϫQ`=Lm*$TrW$*˔%2ka-g0=<7iL35qzNfG$7 Dk viTs>UYm'=a=̇s:2FwTk6]4+ISLw af?OފǢzcI{c Ʉ ,$S4qՔEzU<.3\22/q,қIAü̈o5 1!{DƎ;)n8hW7]zXF_W&q%{ϸM>mHm8O#}%ԛ7Z-P{'|O#yt!8x=O^k]{РlT>h@&ΛґC=82aOþȻi5 塥¼CsSxU]0S,{խ25ĕi|$4)q4/fT>v$\Iq gЈgw ~k>+[C{O|xp5nj:&mauthM ;UwLNe6*4J+dr !E/ϐ2~z\WFmt cF (cRIfKNQG]7\=.yueTq|\^@G4hzG3vAY  PrmZڥ C8Ek.=oeӠA4l\.|dF5r5O=Qxدf Eחخ'=O,xXϏag2K@Ƌܴwćj}Sl2ͧz/xGA=ޢx)g{ehkDaNV%C7랑U|CB\}G([72wTJHKrfZRV)fh -Y^!dkkkR0}}kPc܂+4,1,S0G,jtm Vˠ^@U"6:ЀWG"JµYl*TGpUw^.?ZZ HSCzм[!S;i^s"3R5YS̚{2B[I$Cp$|IM4VC;ZVU/zE{ԠWҢ_H 6.޶-.=UnQyԳjXsLV>h{?Z k]"b{[t y%/63# viNj_Kx$UC3 (.|(.D־TP m>gҺZ }oQGd4ͥi_ysJ?%c& Y"WJJPBI^BI~,A+PPl\8yrU7uiw LA^ !D>-H@Xԣ/E(2^ Ue/y/V5V+E;4d~xRQ=o  y >#|+m$?-§K^N 0Ч\A@3PTdK10- ͆B>dGUhUׁ(pc,g8/g8x[gxs0k Q/~@8y?Т#|KgLb=^MIkʬ*@meT@ުhԐU]dZIj*̘T>VSi "4P`/m7ҮQb CeB>TJXUe[գʇG9>U!YOu[&[D:[ ʇp-L{k # ϰ`; l 됌 {C_C@ ^')i0C-y*,yu[ȃtZ +B鴵VbehÏ]4 rm&¾m-}+zk1xy6/QQGq7Y״\>YBJ})Z^(Y?55!vjHk<qjԐnjZvJDid(øEla0e+JV81sl% yFJ 3&o-Ra؉g8Jf0;]v~+Wk#괐xe rB@A. rU>xu]cnnɕPnȋ[-U;vsݤ,?ȪdñSYp/GcԲC848hDK!p[k.[Y1pp7eBGbٛm!jF>fsȃOu;-DC=P^A+=(up[<)~ D]/Ў#72]?[/eŮ_Zk!֮Mk#֮'n3}Rɘvζv|H{7|Kqkik8W }L__b5#ÿLoI]Ѯ+o%vCL@.4w̎$k  CGY>F6l[.rA}e8~i=dܨ] M>vMF=ѦA^*$%䀸KbytDD-KmnBe=lf+6_m'ï9e_$% OG.q1r2>h0/},V/=&M1슚ǰ0KYx1U0[C+*%vEp;~@}jTg@vD ਏov}a!ْǑ\>3d4K=-ffJw :'IK'y"r>E#{oڱرt%H<9N-+++nYIZT%$]R.$0@g y4@HZc-O+?f>f=x= -ob]_Z>>#$ۻ䅏%iZ NG{Dbv̭sI }^![!s+lTAJGwJ?敋?)__6}8h4KϤ=M>"o_'&5V" )Ɗ%0=o+§cyK,/y֗D|G/!;kwDG|aLз/Y$tY_Fj5{o)Gr3tB>#AA$D_n ?oC#6DL)xxu\`&pvZ># Gj~WG^]÷1\S W˱84YS=oa4h(a`r5+v*~cQ~'> 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 1254 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_5_1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1268 0 R /BBox [0 0 540 144] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1269 0 R>> /ExtGState << /GS1 1270 0 R /GS2 1271 0 R /GS257 1272 0 R >>/ColorSpace << /sRGB 1273 0 R >>>> /Length 3668 /Filter /FlateDecode >> stream xKWRZc , /b6h SFʌ$NzHOE*noq~ǟח_OO.a!lݧ_{q-lsKOz/?|]?oմǸ4ڷ>6͂?nWC'Xq_sGWQ<#~{LzA=^xhoVzOsw~{koƀ变v~ 9ORˮw@g;FQBsWvoۋoeT"\mѱ^o_ ~`ڃOδ'ãGcaf:AB*৚|~fű;Z)֭ /M*u:JMuƵV lZt*{nRҭBµVu8JW~JOYMT`☶桙S 4OfA'+2d'~=7ՇA_çŮ Zbij_<˿|W6?}_*[U̚V\óݟ}:j3|}D`7k/GꗗPBE 5.4&gmZBI( *Ԅ[Ŗ.l9+*ԄgA( %!e-ClF]h3 P*BUHlb[UA1ŨbQM+E*UQ*0+ŪP)(FE*UIBM+)9`TLY(UYjUUS kbQM+UEUaXbR̊E*6Ů8 Dېmb-)fb+VŦbR̊jUWZ*q)hB~Ƹ'b" kZ~ƢXbWSpEX膵aZ6(VŦ<}!Tha:92NZa^-zܛn7?]ew6JnY;^=L.^I(;f nf--ģqx=j )h)3FŤ%uoXbWS.bVTZU*({('S.bV,U)UMjjFq( lhs=wH;2e\q_GD·C n3>=G#9ے-|hg;j-8 T^0*&ŬXZ5-7h83G0*&ŬXbSCQ|Yr$Fb &ŬXb[o؉+f3NVFŪPgIQjUV1+)I1+ŪVUI+BbR̊E*6Ů8ժV5 : bQM+)jUWZ bWS/bV,jPZmS.bV,U)vEjUyȕaƑRi\:)~ y- <=vH4+h<yuhmI1+EXv / FŤZԪVAc? FŤb%=Eb[-iơ8KPaR̊e!Wd4W{l1 7}]ȌvihWֆf"{N3K"C VP`Xjs 5AC|Tm4): j_V<~c3<, +nfB73J2Aǀ8Kj/ r it3«'3B }yϲXe4nx:/&_g ߰Jl G G!skm0lNM/wwyIL-Qf3[k,0y f+}F?`n14GA<ԕ4^R6v5"ڿ,?\$Q[$>, ^5[ORN6iFf943le'>I}9u`tNB]r[iZ:ӂw+fێa)'w;UArr Wg^2xbp%=be?'3 &d.;KwbJ+42߼Sх'J^i&T>m,b.,-dCH*\fԂ0! ֕7NRmصGwmJvD웿aw!u j<c_΁ns๥&{ԕóm ˵e18`k\8\2Ob5aarGǑd> 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 1282 0 obj << /Length 1247 /Filter /FlateDecode >> stream xˎ6|XKJh$mHꠇDҢ"Qn3+'$mj8/{f.`w3΢!ԎH1ڳcsƞ`5O"޺+!a  W{ԙ<^z&{ם#U/wj9"EorG=kRinZۛũ>*WP!S}$4 0i"'\ϔHؼc*.[4@lsPb!^fת~SmK@e9O"meҩW^٫#ą4&z)k$clkh,!O@n݂9|kvԞxɶc>=xwo=QȄCmBbF[urPCާ 朳l'rCmZAY۴;:# Asggn<֢WY$)wva1 v~=y Zg*h¶( K0ϣ;d]$RI er:GETHai(O68J$b<'%ͩg[ #,e0S2,*8@ &.yXcS0Kr%0vK4X :0;Bn!ƩS<%"v2#p{ɦ}`ʎ0XpB"Ҳ`J¤hnyHmV*@e\z{oE(S4jٽbKD%®j=v 1 C8Σ$Wa챒>yy=/ب[Q wo҇HBӆyNtZT M*AnE5]0{/=X|'4V="`139ܛĩ | $ n0E%^Ҝ'"6Ԏ7,0UJ uфUKKc<饝Zg^1+8_RP`ƹy _Ѝ}t2dwb`ԃ}o얟hNwJHD!й"{ɻ,9Jo endstream endobj 1277 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_5_2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1284 0 R /BBox [0 0 540 144] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1285 0 R>> /ExtGState << /GS1 1286 0 R /GS2 1287 0 R /GS257 1288 0 R >>/ColorSpace << /sRGB 1289 0 R >>>> /Length 2547 /Filter /FlateDecode >> stream xKo\ڋ0$fc{|tZ.ͮnQ[.o.7Xנ GiQ:KG(9g(=2+qce;o205hMmFú[mϗח_~tG/=w'9x{Sw⏙]llV\ϏnbO.W%3U?=L(jC^Zǵ4uY5,M\KSgiFy1K$iI8wOcymPԟ˧5Sx,n'sXG7?*Ρg+cC՞̨寞_{ۿ>_,Jy=7S͟>9Dۆ$$#ȂȆH0*¨ȢTdAVdCv$$FcTGX ّhcA !)HEbTQ F%U86TdAVdCbTQ#*A6݂" "#В3vf̕T,ȊlȎ@_IHF jUèFiO@O3ig |" "#plH*z7:ygY}" "#L>L`DeGJ0`/t 1w-VpKZ-7)s]J Q^F8;%lI)]Mme]ZKn~f|xNF5Nli=La="=oe,θ-ɲJ,'qFVCT"2k.ymk[ jAٍhٷCe@_ڜIHF R}dAVdCvZfĨ FU0*N$$#ȂHbTe"9DFk9=)Ne{4.aoO&ZKlݝ#>sұFq·%QӖ%.n;Kkvj`Gey !)HE$F5ڹ1S, HA* +!;X"`Yk2R,ȺhW<@Ψ N* +!;r=$$#1*ѳ6#[ݬzqd-\v9iqa]]h|*%Ur.crv˔M<>q">!g> 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 1278 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_5_3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1292 0 R /BBox [0 0 540 144] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1293 0 R>> /ExtGState << /GS1 1294 0 R /GS2 1295 0 R /GS257 1296 0 R >>/ColorSpace << /sRGB 1297 0 R >>>> /Length 2586 /Filter /FlateDecode >> stream xKo\ڋ0m{/* PDV›rs캅E׵s ݶUhBR;(:շŹ ֹjhOgb=M/CukQ6KQJjJ=Բݪϼ/l[`|dHǶ+]].6]\nدAE.%4u':JSg)mՓQs*P{dV7=ԠUіny=_n__~}gϾx#=qؓ'mzU+|W`%`|~te{u*YaB?V>%KٮMThZJgki,U]yYZ_45#Ҽ£tޟ Ix};zJر`ĻS̟h嘽1GR6$ P5P @   4A,M|*P5PY}AKX:bܠS Ac@bT@ˀX2Ѷ! HA* +!;"0*d Yِ9! Q1Ft"#@B2RĨ:yL@ HA* +!1*Ũ֠Eel1oAF RY ّhII;3HANdE6dGO$$#Q5aT 4''򙴳qǍ\>SY ّ86Ea3c>SY ّc&{n]&K0#l%QyK::apsv+[eYޏɊ&(/#dv [Rv lK=Xv٥ո4gȧ`iYƉ-)j|G$}8%}>n3ny|$ٓy8#ǡ*UH֋~YfwZ-KK5x ~ ٠ev`GO$$#>Y| +!;r- HAbT*eM'vZfTdAV$FU1QtH~TQjNOzY-#MKx,SG-m0[~wgܷti)}aWg|TeI~s<ݮؑhYHHF RQv9:;r<@B2R,ȊlȎĨ(fTDe=HA* ~ܛ^\?s9:dB2R):ȂȆ%-kKkZ%w [Gj)?=coZrjJKƢؑk)HE_^x`CvZT$FcTM@@B2R,A0cݙws̎@ݐëz?O?!;r=$$#r +!;r=$$#QUbTyZk@@B2R,ȊĨF0*L HA* +!;rF50QYgȂȆ1LB2R,Ȋl>Eq#6$!)HEdEbTQFeu"!)HEdE6dG`TQ D ,޽ͣVv=|f[\Lڑ{*2ŌViZi|~oг߰'qr],U洁 _oXK]J,XuJ9eZ*^c`X UXw] }XeY(٪t9cN&.RnFT)jLZ=پx'hhnr$WT)ĉA͔YJܓ}r(\N;05]|dW.7*>T_>`c9~!?qY9QcnG<wFͽ'J{ǔHYd²ۮ윃&kgdڅW\/ Xn]>) xE},I},Cx'#Ss''R endstream endobj 1299 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 1303 0 obj << /Length 700 /Filter /FlateDecode >> stream xڥUn0+$$bHQR4I[E=5=2- Jt;ȉltR0g{30r,k g4g9'ŚHF,"i̩"R ̿^DɶW:Zؔ8p ĒLloMYd.`&:dx悼;)g8Kx6q,r ˜q՝NP]>ch[eKY!˾3CA}zu+eJ5DžP1VAMȶ!T9b cUFCֶ G먍htXPzSA6ڕ6njƐ`VW*u]WͰ+ rA(#Gח>]٠yyDf!--[s~tVf=Q h9ÃG)ck2)\nۏ}{9hq ?XJ*3I7sħ_5O endstream endobj 1279 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_6.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1305 0 R /BBox [0 0 540 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1306 0 R>> /ExtGState << /GS1 1307 0 R /GS2 1308 0 R /GS257 1309 0 R /GS258 1310 0 R >>/ColorSpace << /sRGB 1311 0 R >>>> /Length 6278 /Filter /FlateDecode >> stream x\M%INׯebdFH-],x0b%;4 ĀzQT#i0맿ş_e~W}UcoU& >~u3g7t6:6zuz55}@l*1oAQ򘏁%ɨ8L:b[S^ { j[y{Dx+`oSh^մqWO[ְ-;?98qLzlu:5=?3ZZ7>r9 i˚Hj]W,"=m,K59}e__Zׯsڔ}~M/^~tWntWo~8}11أp@ֲ?c3/󶹎rM~RϿ?ᤲ4ٖUyXks{_zM⾛ E& UlI҆Rj>mfaoԟqC3z;ߚmɔ%~C2#e^<>m0:֫$a!n@8mE^w=Y.O+ΛmƠ6}h;SĀږNou}o!ik-uC9n`QĆtrB :赚L?b_(ٓR//͵9c38s$K$$%$,m$3}~ȟ4Fs$-}Fx\ޢlQ=p~pߔ$2? ~ILؖvK#}}8f9b&$3C 9IX屖IB[NOSSiEks;\aGc9Mralm:g7bwVv^!b@k[-'A RS $ɞf,7Bn@8uEZ8mIQBp|$_=DK"u*h:tM!蓟-PkV[Zy᳝Kp9lmn}gP19H̫a6=D׻>v9:-O}1kzo&J_։#Fqr7!I,n[ uyDKzv[q7?]S2!eBt7[^B7m'ݴI !A̦h] Hr47I0|.X3wT# '5!\DŽ9:zө}#I,v.6eƒ~v6BBZjK")+Fǻ-zpBvWJY^iHtknG͗1o;?meS-[I_Đpo ."KʏrgUշMIЇ{ Zi<`D/Zݎpߚ8EvtbJ $XK W^G`>?r}NnFe;  nMNO"#E4CH"{$԰wG>2UZG&S/fUHJáޤCՔl;myl`WA 3xCr8 3v H'^:o%unm]#{_3 ) -~.pmAj;i#_1߄8pkv`/`؟T;%?$v<_[k1%UCHR~kuWT/Xb+7[܍In1wp[G8ts`I}H$~.vJ Xaj_%Svim .cܜ#M)cG$Ks ӹ-+Iywyd7&B嶷C€Ll*2l,MVbscV'9ӽޕt}wr BXm+$7C;V>;SȪJh/~Α{?Ĕx)JS{ޡap^,w({(Ҳb;#]WTi9z.ZS9U”H!NesۙfR)GU=Ndl'hhV5 VdV[ZCq&(a~4'8:-`]rϙtl%#H`~Y;HZd;%??73PVRЬ*ECzLa֙T"ΉS jۥG*gˬb$ӤWs\q]QoZ!T`QJH`YR6dcrX8%0KuiN4:+qEl/,2V$SG5;M)5W{'^o}p'31!۝tVb0R[$Td0lCT&4'c:.t*@ܜ& ~ g0/$Vm_`"䧉tdo]IչgcO9=eVR| v.c|6Xشc Qz?]ͱo71TXG&}1钰{}$V SIO@),|SZN)5=%8*˲@\Kl@~GSԩi=a=}̕8N= g.CO+S܉OC v&Ӂݏ,w2 dC FOME 1=,DT9VFLFkQuvJcT5y* DjM{填*(оHX|HX!B2ۣ\Y>e4$;›U'8$4g{=!ؑ$yʨܫkVܙpzm%B:&vJP}^ST34)T#,%% ۱&%)7 h*$U3#̱o#ϕd-wDUډiu-Ym~bSCunu`U]o9ǩsVl_h(ږڼDRPO)u+ , ={X;DJRJ,Tj.zd!gkRnkp@Q"𢬭Vu0HCC$Wm4T|L+yF½λwdI"TB~t`⠗ŧXW!c _ؙ D@>c\"bS,˳7NOF)us !(A8OVu`w[r$[G1Š-.QF'3^@QЉsKnP#9N[U(|`UifdfpߐatfJ !K A~х &N+, 'Vh٣JCRjD0pzN3{;%=<\'i;m*@EjSCV5L ٭QvH*?Ggٗ:%8 ,P0vPP,nPȘgA_#*$8ĉP8"f@˜L b0j! * 2:d%n&c ~UԒ`gđ;$qn0;rZ^sE-a Ϯ7c}O>:L08(zu+< ҪֹZCK€uj)[3km*[l b+oN!_j_nM% B%ICl_!&BgߢݫkՎ9C!?l~2}f7Ռ0T Q7#%n6ܬ$ yLn(88^B$Q1&M$)N~ g7]oyf ŘG؎ү>o+EZD1huhUg +DAM4")qЎ*S\&q=~G%uu# ]o9w# |&Q"E^,S8vFJ:FnTUw(D[7EgX尡I[IyxJ5l#V/x7<3ondIJ߅;yFk{BAs6|L~ۼ<>|d5 IƯt'iN?#a58q!#Y4|#C ߥc53~ہc_)xMK]W'ڿ?#ݞ^vKH׻M@V^_!vx_W]܆v邰DA!Hd5u=oy70k嚊ۣi£O.jq( i9k2y{M;ow| 2pߋ-_n+< ݍyMݗt7Pq+" 0_hR2[&}'#ٵ,8W e95ཟCu;[Wncpzױv7(B wʽ3Tªc(N? JϙGl م5C~;.=A'-yZK@Jj(('L32T k1+èJއ,lP|5GJX9*CMPP(iOIE)iY?י$ 5N"#9 #91WA1`hJ9)FUSL 8北3ԆTi>j\Y-uizC"0vnwRgiYI#/ƟOofP endstream endobj 1313 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 1317 0 obj << /Length 1459 /Filter /FlateDecode >> stream xXY6~IF /]@S`$Hnצl"𰵮i9gR*|y"FIA ($yIFΣ2%tƳ<ݙӭ f_Nl>a@ЈE H&"ɇ hvÈKA32zL~_XyR{A wt&xjʳuv,Q7=UnzޯfgܼʫA ݹ UULJ?:hk%бֆ>c$pY4uLєD'p̭W6'*[*$cit>ZKw6٧Hd"H]H @Q <\($ f 2Rͫp`o08tH^[HؔΊH8ŃĪC5TY *V;4 6[j.ʬ*:!4aka8)ߘn`s߁0LzPa֨w{չG8ۉ//a鼓 7>Kq`xaeƤ?L?r endstream endobj 1300 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_6_1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1319 0 R /BBox [0 0 540 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1320 0 R>> /ExtGState << /GS1 1321 0 R /GS2 1322 0 R /GS257 1323 0 R /GS258 1324 0 R >>/ColorSpace << /sRGB 1325 0 R >>>> /Length 7541 /Filter /FlateDecode >> stream xM,qWRZxdel$$@ daxF-D 8gXiv>n_ۿ}{oN?~o~uןm׿i=n鷿mn_o?!pORן~Gm/徝R۽]~a?޾"ӯ|T._-oIr̿{yn~R.(nxo康2龟r?{ay {ݷ-?$ÕVe{%vSuG?[L\Y91a< :{׹T7פKZ~/mj _>s׿D?/oyA>p۰zA~l`?[vy{>E!UսpjO}ڽ]qjyilW }W?M2zY"Zjt}~޾ؾ}_C=[6~d}cvM5ijpa.~R6"= G?sfƝM?~w/om}>e߾/wVޒ:K=Əvߎ/S݉6~wo0ɜ:PLmŴb^QcYX\V<ӊyժs\:5VaƌiżbYXqVժZպUi´b^q_xxXWl+^ ^UjյZu#~s,+++ۊׂi9>wkZ+9>R/qy {|[`ۃ}{o% \=X9΁}%W}w\C8 y9>kW'vXa=p |>-rjZK.gVb3 wѦ%w\m,؄3Xc|y['E$E8 ixO»y/pQ#|j{j}ڭ m? 1k8C8|2$q,K˽(S_" ^Tf*/O;__w|va|_|j}E^9_orL{G2\E #5H|(|u9_2M >y5p |}GuK#nX9΁}g /cZy-}㶔:~BXr Orժ| 꿔{w,?—} c <*î| }>b-Ns} .gSx\u -r-I9ߏ*K# EYmk=;9>kZy=Gf.gVc8`_ `ߨ陵[k?VNs=p |>`#Sx\5p |\}5W}}|[k?VNs`_ `_ u-rhVNs=p |>`ߵ7?u, MpcpϪBCܫ7zI%ݾscV)p.}:s _+r KCx\MkZSx\? p _+[8]3G3p _+p `#ϋ;_+wr K#pji8G3p _+_+wy|[kSx\}5p |)p.K#Sx\5p |`߾.>_:|V._n7t^vR#HmGd`Yg+'~nVfXՃݧT ~8(=\r;<>Ls`uc4Vhw\$u I>J~ps\5dY%xbŘ&WeF~oFIWU㈫UpM~Z]&,Of wr,' Nͣr?g `/}UAۛ~15e2i44ns(;t&Ɠߍ ke5NVF6i4VcgF쮱Wzz_v?p4Uoi5X5v=E)أqp^ fyaF gkg08663{cjMfλE$ 7O# k3 {ܡsQ$IWp=M0r31)(ޛhNmC~30lPRE .Iqq16)Ȓ=4 #Ne{@~[t~˲ )3L%.odG5 oplɃ<.Al5f兺B#/D \փ9idȹs,4=g3&w1=0jsn0jNoG+dٻQ.nFVg$rLQ 4-G)Y30JC2G)svD)Qݧ)z6]cc kgLaB=:zܳʈ{qnj)t5o= kYcLlDfLaSLc1ŮO1#~KԁޒQ6! 1) 1԰C[) Ml`\ǘǘNjXXmjfh F6!2#GB~>  "\ M  1[ղ Slr ,V$X 6EF,y`nT w f1;&1ذ7<2԰x6@c&s =~ аd"BCc7l&aDf #"Gv ƘU04@5ccɣ*e\EuN6!*lB  w fFv F0nZ`4&0Q86 #nǭtk2"aC#F;W*˺y*M'51l$ڡ].Otyl(lBiSi:M1eZD;5&רQǥq1P{ Ar GhFwz~rΑیM>iC]xq׿&gƁ&FUޥ6ɢg;gFׁ}, 0v6P5QE <ل5c `hk0666mbl04@5&'G|Ovnm6Pl4iU4V-)#B;r+>az02B#r+h FdFڙY)# } F=s$X婳9UaT+ y˜FVa˜VaUXUyN뫵*fҲ}"fyhe맪ߠ:7>U?'5*O=1#|Xd&gQw=Ƴ*?g)1klٞDzֽ717m힫XMAY5  ko7Vc?I{B>4^fAJǬ.IiU ldKH(󣝉RC=n/?T_iωNK=9m13_I+*&FփSocZش$lxa$ugRc -փSb){/Q$^I>I餆`6jj´OmކO9'u(b4RlMl&qfCd&u&Ip0&hmKyÓ:;&u`&q&$6ՆmJ n"Me:;LLLItBjXGZvmbRg60ML&&q +O6YZHLC&$u II3 ae i!MCd}?zmԢ 7i?a zB܄~U2pvDy7Mqh 4qRe MW9;†4Ei zM͌Y9f`f&,-4ld oܷ4efl,[=ˆNhXYmbӎWMe,7l,74Lƛ)a$WlBm3l0lgML~co7MC7fya#6"o@}ܗǔe1eȲM޳lyoLr g =0e_vh@)oRΡ듿]ԗY O?;K*[fES$}PЏmGhO z. ׄ=jї,D>481.oAS񧼛_mq0EvSɂ؇ Υ})F5澖]⡼çGo"#%<\ðI2v/K=P~FR id9>aLj=FƤhG OTs\"c)S5>dԔ5eIO5e+졦,"2<.fM|T]՗E{u՘UBBY 5.dJ \R 댦uFcM~TZȬTӓOI[D҆M#i`,f{7 Cؐ6©SN .\f63wO܁s6#yjgVcmXUN+2ddI\uM4:*?vB ***?iqp_9Nf?`fW4&TYT˪ﳗUWvxVX2.KU5b+Vg`VaV~`\rz1wAUVTlsȢ O%SJ4j z^j|pᅒ* }Dȟy0&D6^WӋ + 㶆؏aϝ >-aO } 窾>vsG6NJ>ן}!aO },sIGV5HdElmeŅ> aW%ҟ]]\ ovuQ¯.,9E+ aWk|W]Bw4 m)mPuv]:`$LgUrz֤۳Lo:y ų@ۼ-Pխi~JO LZmLBm^ϫyWټ Wq6l 3bAn.9Cn|1+l_?PM endstream endobj 1327 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 1331 0 obj << /Length 917 /Filter /FlateDecode >> stream xڵVK0WXR܀r!u@/yt_n]$X@b6RRD 6P\#I bZlY:?"m ?._HzQ p,CBRy D+.Lp4%˝腛xH:!Nq9Ay͙n n`ayf#XTj[*Dx~)SHmMM-gmQ~RǞi= :sCVɟ֮mk2m7`chV4+-SXrc )G{9.2]x.]qSAκT4+j~N3A/mLj̕3~|4ˤ <Eܧ϶ NLZs$Q9'*F t5]e)5ʾ.n Ql8Nl5| @$)_ x (+HO>: -{RPBI*D7w-v"_lBJ, k:J~\ endstream endobj 1314 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_7.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1333 0 R /BBox [0 0 540 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1334 0 R>> /ExtGState << /GS1 1335 0 R /GS2 1336 0 R /GS257 1337 0 R /GS258 1338 0 R >>/ColorSpace << /sRGB 1339 0 R >>>> /Length 23163 /Filter /FlateDecode >> stream xK5Kr6bɁ>VUfUe MB&@n@A"L݀+bGwuBwX ` :ߤz#>綠똟뼿[uyg/|~?_y_b]_jݖ_EfLt;w|-}/-_'m{ym5$ɭ:Znǯvo$|Y v^gz}sZ ?X^?wxs`9>7nuza׶H߶ jq}=lv×ӻWkwؽx~?v=.IOiǍoЛy}}z.ioi(r{= >oq= pߴ 7LJb׻!:𠵡m i (8q|8v[`}@ܮק\DoF?Wun^N;6P^R xDc11V b7ڃn6~q}d\ӱm{#4 qqqM`:4+lU\aˊ''>xŁ ۖ.8};,N{ݶwu{`s >M{ii/n^Pvn۴˚g0ׯmkl[ޝ7?kfmޘemÍ|1}1[~oOzp#~-ן펹lxbk>[~K6ۼw{pxlXHo9jۡ gf۲՞Ǵ7i/W{qy%^bb]ϴ_ۦl^,{y^/aK?i/ئ&~[i/ s?M{aXyv>__?z<n^86a_Ϧu bl^N{a'm b;sl^>~{Exq*ӵ=y ~=ΉnW>^u _^,x=kX~pw<#M(}u%lny~\y~[7f7rroοp^ԲiJ.~ޱq߸rd]Ҟ؇=Nq1±~6>K7qr%_LO߿ޥ_gn|i?ֵi?5sWa~Nok~zڦXa6 sO;<Ǻ~Mni?h~8z~i? i?..7K;Wyn~@Jvvoi? ~MA;O0|Oaa.ڴ~ 6i?Hk4 _ο?N1x7v}~nnOڴڵ9i?H>_o]>kܯҧX\/:zѧXǺ~nώȝ.?sާ EK}]ڏOayp5{>{P~mo( y߻~ ⿜nC4C<+%l>?Lú8X93z Q=\x{~}Z:>u~INj\cy~cx~L|a?|}kׇpݯ}{7lܚk#GTm=^_~?u~`?/Xx{`^\wmڏ]ݿi?Űw0w9nnOi?/{~~y >|?i?ðއi? s?٧~wp>i?}c[%קIϴۖ>}>Ͽi?H_/<~n_i?OǛcwq_x} -٧}H~i?o/paNj}~ħ'}~}(s)~=~!cv,l=[XSxcǍ;w{~*>>ͮ/B_o EQqտCw m5i̧;Uߙ`YቘG?:e Dߟ0ѹB,i 훰5 wIIQ8E.E K|~y{淛vniEǺ~Prΐ[Ј%t.X_4oշo;[gHgc`w}} ./%:}F6F-&ţ}n,msi oOlkj IZO_4_=/iW>L34x<_˼Ds{OyA-5Wx&=4Rht?ܱ=řl֠w?CKo;F4L _4v8%- oB$:a E߹jrJmkXnn'FF/}ر `Ƨq~?J_aI̓764KSig29>y&7}b$+܎yj=4Rh\-QVl藛dX'ϵJm+Y4 2a3R&Ce!yb:GvFf'<"3^Wh) (l(bo qi8 SSB'7}$sai6s?4?4efɮ]ǞXdA(;z%Ne)^Qm%pD|d&F>zYoV=Vsz\o su=X Vͥ`2FF dbvD~q+ qsJ( ѩ@⡏K4{pQF6d5W}87|FUC~/$YG a?AR@ԇ kymN~/ˁZI-_4 gpWk[(G\~(IX\1,c)`ihdHXa025ẓOݓ_Ď%ۋ 7C#lu梍(k* sM \cX>sն@Y4b˰ȟvഈ6td,kfF#f,a'o{づ~|bijl"j؉UBTix^G/eqo[ILmqݶ PAOȴ`bz #s ~/mx[.8Srq 撉.pb9odC2 zȪd l[F-0!Um?`jЈ佭7*nc9~;~/Km]oKа֞;qnQ<"<8|%64&2%B\FD҃uԄ}͏Y0aL䉿Q o&?4?MT :k+HU0w%RG(|TvF,,Ȁ).GLa:2DB@h <[q`KS#X;ߖ ؙX&2H̄_V/#k=xxrRFPfYㅲ(YnCQOD2Mq'^,OwP)-Pfik.gϥкE:O1-4ijXXCqR 0`a1ӂ@|;4nnѥA .bc[8-s 7\/BDR4̃an N !M\6ӝQt]s㺙=~5rؘbqj\,=Ke{aIo;\$/ex\mt8Omġ"sO6`By[_QGI+Ʀ)B}PHM$].8m$k lI:A(SvFMSQqpb¸=]V|C>]RNLl S#O!RZ;şk)=8AKf=y&xl|Y˪csqlbSߢJ )oب p޽Z;S/eIVےp2; Ԉ2dl2U*}z|bi.ӓci0NW^X~[->RyRO,ᗕϧo>G*;RZ̡ uXqyVp^`Xu;$/e6ġ3GصN0'R\ Uc.UL 7jYV"o5 v9/4q*}h=qnO(YMM[Fně^܈xxkOCc'ϭ=RT^46&6u 8e)f+1WR).\V+&0zDqȗ=ϿjCZK)HG|[Ά_ppWHf/V9ʞiJeCufۊ \V Cw E%^n [wX,4J>4U]h7u+aQll-AgTUBJ L%5_V|>cniW֘/|ѸXbͼݓr/H #2%agPO(edexGu2˽pi~*y49wfAPd$%ԤKCU?ߋu;v7ܬ͙䫧DD ۰4^nw84hdCw Yw9,/1=Ș4(駌5DL/4*Kg+-\ e\ |@tHmytBY:RCͬ.'[hx[h@Ί|ѩ!C#^JnV킮-3n1F&!u){h7~J> LEY2xQǏp+VN%gŲWhy;衑E#J%*̔*EFm$a!PB 浙q 9YQq]R%xrcGyHj*_k'Nxuc0vٲ>[_y>a(sT=&@yӶ鋺8]ZoӍ۳'/W[ܱjw۳ csŔ4;{]JiɆ2z]L;Cg),_ifig8,W05= 35.(L󔒨nؼ{V z"P"I J*m R/t͛_dr\X].ٹ{^j`7ga "=߂UiYFj]x]JַZF6gG屢h(=j>0+܃zcv c]둽/~']%U.pEk>ğKȖ ò|"cÂB?=}:Aw܇}מ{%5FkJ5~eg3׫9Jѯ)> |EPR(l/mH7{UA,Q6!qZ3%+  z~'$/]kPZsܔnM4J>4<ڊZ|͈YT\#6NCA[ܟ4Gے\n=.|[1'V'H#WC#S5?myMkLolwFp@FϑfwXTJK6?Y wybJyjt4?5bC S2J] R㞑e^=t!5Jl lO, /9]h*yl>䍥>p4"!2QhWj0E=\[̂_>m.sQzLE e.[[4=(>f2^.x]|ʐOXmZu8 !K['rH>E96Նqt>4?4ޱ^-0!ۈBe .xƒ.u̙Wm $rN>dM$-ݐvD"Uzf!4-IXں$,tA]KZ$knY>gYﰕ2KSeX6_>`ÜDm;JK4I\ѡ'T- v#ّvƖTm+( LH,v_C=̙SNO[(ɥ(31FqQO_4zZTAjd!lyh\oP6EOՙSg{ct!:k`6 ~a݋KS#?3 QS qs Jt| f#"IF7kY|X+t"U')zߊ| esyO(i2Si,d{V>M<\ p˳5ߋ7hIFɧ%xNİo쥝>vl~d ~+έDPqj]%/U~E֊H~!FO_Vc#GJO(gV K>+cI㒕}^`xl<49J~R#'X_&rp~F8#fq^IyqFLOK52.4J>ϨGq\T2ηQBrPx5KRS7ڴ!Ooң{t_%f0xiaٽeBv8ƛ~hI2/YZ FY1/ \.1.n;X8#mMǮ(|m|F1NИVk>ph$j>x! 'mX,J<3%=W/.lʺ 3S|t\yO<:񗬷ͻGת(N !>%ʣ97*%L#Ue}G*;ܟ08s!+gr&>42h%SqL?|28W?^_߃Myop,0"p,DߢrDs{w^ `,Ri2;Ҽz?OdǦ#[=-G"競ՊJi[w9}uP2"o@PVy~DdC5JR3V c-yѹёxF?fB*?4G^ F;L ]?9Ah@s14JR.Y(S\hGe|/ ЙK Ղ|VJzdA>teSo"J L%$ +b|PSZ[H2rX1ڽţ^V9m:8]ovQ>5ү\Ռɑ}9Gb4Mf+Y̽|`#9䃠3@{ ,#@_wO/QΜ:ҴJ%2p #dX}K'-hd9ҡS6Q+v~| (ڗFa?4?56n9vJV$@{m):-eaEFɧ cnZjx\c}p^8ձF./KϷ]s_'KNtwL5>(4t^FIO._5bxIZ`_~-i0AgKG :%U݅Kh3.$F )h/4o&|C>p@FL_<$#=ے1qqa>ʼn?qd̟Pє1Nt*xh,} oXsߏht|v4a>/u\/>?\Dc VPS%ȹ{5bvz":0Xѣ#K&bs`#"*r_lFz-׾>3jҳϯW%\nfܘ2۵Qƿ s?`Տ?5z_SMwvE}B sNY-C,E7ѐ@γU(X} *V?qϪ;YɲldzK=4R>5rN*em1̺瘜̺KC#zdžk! X9KS5;~oo^F1b'{/FHȞK\0F-ţ5TeΨ9ZnͿt͛|jz agG?9_4:yYWC^֕&ʩITqfcsvt]35;]ۑ<2Lcr$}[noT.dT#ҞBJT)l6l/0.82D(Y~Y$N u UZa(sR: J1|)t UXT-ÔMπ3Ǒ'xku]'%exRKXqRL;D~~Bb| 'u:ZE2ʆ2{Y>0v? sRZ zĜ5DYk4T,Oxϗ&>˾|eGK.KKbo˩B UhNR~Xبv5g#*E.[y!Β||Fk+g.؇D{*J}N l-}2+ܚfi7Y]ѻΧ#yP#]CU }y=\Sv /eB'<`SnMfS)s&qNB ^ݰ{qw]т1< KCu}bK dž-zf#7Dˀksu X(2x LRxAF篞gB&DOxFْQ+˖ uR%] .C3e:t̊(5{⨱"VDy ˢEuFʗ- Dʘ@gGM kuȬl'M*anϵM2\6WUflkǦ,ӖΆ̙y)oU `m-D/ހ;RpRZ8Y#6bm؄۬# 6 J }:(]%1e5/SRvcYY~ȯ#[J/*|3G#QԷ7}5VM9vyy4Yb(t#d`*UP!0+WT%p[P)9bwҥQ귋۽fn_vW͖dTӤ)_zcJЌMU:4[#.:O3_=\jf/貢n WhXԤ˰DdR!;?qTg?5*:? !n!`ğ1KC~7[҇ti|hD4t2}DHA_.RНI.[p:Uҗ|vԵnOΜʮCK_ظ蓸/~h-,8X({E.YIu~9kN^yVl#sʚȹ[J[[jTeSRUA1{lbRU9&G cߗ' e\!W=ABGUO<`֯:w=z$O'kq@ }YZ4};-<7oO KՀzXh1W6vjvڀ~$=#o9DJKf3H{zI>Ӕ|p%-GxO'qK|Kc&BݏE: e3 }u]tVi=a(sҥɢgI_d~Yi*Ąt؝T%i*t ל u '=:S>4FϽ(08?4?5"&E((?NȜY*XFM@ְE,.X6uG?>fA?v*bsBre[ 1%_Gfgd֌Df^& E/ U^l{&]Ix } ̵qJ vPͲ@mdQ 1Gm`ۊx*e32ȧRW{cx(|V/J7طRyC#F2fWvS;ԺIڠ_.:_+^xߢ2-EKv1Za\Qb̹uzfjАjJiɆ2NV>9n+8&n&kw䒳;Oc{Zݑ[݅AE#!F67^l~ġE[K{a͢FW_Q+CKxP'VAgA `쥓!n^:.O}#sT$m7&%mm/)_1[L,+%?qh$I,qw]&="Kuܞ ~}." !ɟOq>XCoĮgkh-ܰx *aMUy!{` 5l`)G!0-ua 6,xEƥ[futa'=쪽 bSs#QES"%{Դ#UeLTA4]IW#Q:i rL~~B s >ϧƛMp.hi,*)}8xAEKdW !<>h!IOHO, Oҕ#wl}\κU_3T}Y}tuP|T_X'Q9?4Ccu% 1ߚ4BS.2{Tki!\OHi12W>6&y8*ҚJ*,E}F3gnG_H~@x9jح ݚX._g0glPfl_F%kQ_,Yuh6<|JdGpgk~$5|.ǽyWxRx,y[Q ~-B[]$n=Jwӷw>IŎf_ӡ;5\VMLeH/T2.>/рmeK%w,}-7*ɨk~B8a‰c2fَ6gܔr}~Zxژ-^oIaJ-]4UvXzQP'S2A/ ҧ'yss%Jh-NNkZpkʧrG,/CxQX@Ma˜ڗ_!sI*cux ϵ4Aድ KŜ~OP5wWvP@첡6)!O DeE3aUL8'C7/Y1w+{Ɯmsf=2Sj>we3Q=1Y>|.]"r+K~a?+iOX2^XQ=^- l:BQpj!yH %M⧵ d1w'ȯL-ޤ:74',*)R>(75J ).=Ϳe]0TeR6KqsZs:ޱ3L{m=MO:u<T9/9#U(HC-R#kOHi12썶p#-&sFi)ՕӧCG[O=9*afBΆe 7o>[ucow[r "Q6{YI@& Jp?}4*̑bQ3mdxާNC%8UTM*0ү"]<\|>4:(G {3\bfTE1N*}y"ӟKԠ!0c l^[I~ٽ'tx.k'G;Ti-/;=l#T㑶C%85B.YozQ{Ye-":iZ"RZ,_gz!ޠR IE[r@携>>\&\pwm5ۣtn\J滧tnRrM}NcqF̵&6h^ICR2Mj`l,f/6%ps 79~q"50]6M>;M&s*;}>K]\5OȞbaDf?7EN,񧾃a epz=e|\t\o!yXJi0ꁝ3B5LPoMU;yY+q5FyRNْ=mBK<jV"jFٌ^!jJ8Ξb~ ϕ[GkzxZeG٘biá0A& 9rjs GC% _}J0ήa k؈FfaN͆uf'hVs,Ѯ<˻.#9@w{'ܯ{tfl ayrtzʧC] Vi~#jA__v#D0x@D\B+.+tM}NaUT/*^⏏m3=6/m=18-X/ +Vz6\Ksf:%Փ93NB(sL=z٬Kf]sL%sLzYHpx)_j(Bi_Kv:XtYhɧŶg.it6]cX非]vzlMxh`ٚ^tC>N9rVymUSggDފfn+&_&06=<)=% B(x<γX8]&UeJF(ud4#hsCl^>zG 7KRWjּ4tl \,Jxu ?5%Ea" oVumq̘BiB>{Cl|zw4j|!:!>?Å uY~:>?{\6$XAȠ=~f>Ro(A{B9.dۢam l*p0}-)k#Ct$_ZY}j{{ṣ@е|ppp0q΢,aVSl>JaOl[{:9“JacF揱ma$(_q 5z8Z3(_׋w+TVt$'VTyK)G*FQ Ǹ{pNxwk(a.Oede$`V3kƳ/"fAנmgLmX'ן8Q/;zEx4wO"3Yscv'msCEòbHs3esMu C=~̣Ptm$_7sÌJܧS)YT&-K6s}2qaY ƣaH3 іp^eƻ?0=P~*'C~XD]_+xHȯ5#Ag<#\>ݱ#q)_mz -0ǦDAgJDG_?\T7*p~V_~ @SV\ ru$NQ|}nyFI)3{nǁ-5~f59^2^.߯[g٣a7z _+~ݒHϴbZ9k]h{u KU_|nVf^-zn]Vu 2߯[pkkjk|5alfZ ;[g3HaG5MzgkrݿL~&LV!=É-i@׊Va8{n!;פJϤIR /|hPefSX<j5- kjZzg"6m8Csj1î9qa{P j~ծ>FXذwN#M6ռla?:YVmŎIaWmVf2RACuYj~8408Kpzw7U؃iiyDg죷FͲtz#|ɀ;&6 `sdߋ1eS9tjn];!rCmymulp (ƍ*Ce8$sבc͝Չc_Zi me,&>hv1udCD dWQ #822RG1[i{5~xٰ:zꯤ ZCgbB5 Dr߫ 엹6 jX np!s_d61y]Tqi 1MC¸4ej2S Q&w}[6ߒG<YhkpGz5;|n ^Կ_1N/ޯ7)m--KJ&Xf_N_A"b4io3T8n`'m8U E?ar/^!ܺ4_>QYb^G9bH[.8zk~;Gbl]^#+0ºʝvkRcWrfq *A}ŵ-_L;#Dw}p:I!͎]b![(aa6V+7.OX T,2 Y>6,6UonXbڒVޚ__֖Q_iQ{u:8nG/g{,q9ҖlREGZKl7[:_{t5-ܫRmmlu0Jc ^G|,,|k~Z@;|eƛχHk-k&ku/֐tY+Kkw~4+kI@i9[֚=uZ^::ݾYKgw5׼UkfFfΘN %}GXkZ%CVYbO7nW{z2~݆Ȉb eOpe~F/7*Fka11nN[olE>-;k kOKFoM'ǭ%q++VWdX'+m4eTHDw؉8A|y:5݊z GGczR'mOJK9׬JKR젏.]ʵXFrV[ٯs6L2ӆ!- _ԑԆR-Oj'vyBǸY[qȖ6w[KiDX[Hk |ղmi#q<}$ &j)|lnKXba)ԊˬXJ+҉Gzvnֶ<Ձ~Sme;>TLnFTͽlN :n*:9.#8.wNw{qRpXvxIZC 'l%Qa#}|!.Pt=:# 3|澗SFS I`%6ݥ8ʐigQfBA,:Nsk)[:Zͻf=rr<>%@zk9|fKӃ|%Hzv:nG{j T[BmhZ(|WUui^{جb5$,7S+>usy `(Dby%,_>1ZJ3_n7KS 1R֚#6 xw"m<;pk73-f̷/eԴš1W}Xk| >,(kvxY[dI]fmG% 7m7KoYc$[TeV6ʔn۝K|b(ؾym[ZJ 0+~)sswjZjrsezOߋR,;8lN-;j^-;Y[gb~kEEֻUa3?oU:cw󖒄؊FݯrEKT@IQvH4C|ɟਲ਼GcY\nUoɒqVn@t;ׄ۾_S2N Ǟn7r`=W{okdQ{vsiU|jU ]GGG%T9GH\1PbJw츭.Q 8G銃9,O^JpOPQ:t%QsfvuL95dԭǭv;EwuŸf5硣,4Wrݸ 'VRJIJ:3˹ )by?OX endstream endobj 1341 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 1345 0 obj << /Length 607 /Filter /FlateDecode >> stream xڥM0ίhTN N`xP]@#LGΎ5$}GQ(ZG/ gQRҒj8%B$I}UUR>#@_mE4X}]E1T$ 8#"-P=D"RPYYZ ܼ2G-U:1:<ϩ˃'yN5J,2N <FrZt62liQ.3ٝ~R\𬄐']eYDzH:fSUet*o0 .౓z ;m'ӎ@U!کJ2mY ;j09*Ϲ=hwjR9nނ؁}w/خe:]!ۑQԽ%0դ;1֧/A41,ᄕ#4*q O@Np+w{҂0ыxdjtaSNkL;#F3ksx=aW27NNYK,y:9w1ISX?솠뾻P8?N2` endstream endobj 1214 0 obj << /Type /ObjStm /N 100 /First 986 /Length 1504 /Filter /FlateDecode >> stream xZNH}ӗ EDE<8ClcGd~OK%X"rwuUu9v7h%F~Q¸,hAѲ`  < V8r,8|¥<*1FdB`D,X G5$,1ֳ0 'clșЋ95I97 1& rz4 c-|`ZD yx$r0\9,mm!^ wRxB>5y 0-pfsE.2)- 8 ɱ,0'A+^LizQ>p֠y+L"+nKHa=X̫-[($I!M@!}p >|y&`/bAy,%! 9nrcDpV|/+BRe)jEl9R@ "9͉|69Qiu q=;@j@ĂӧkêB}.Quً ч Y5;p[5yDTvj,jV8d!"}/],.jBg=spѣ`QUT;]Uu}%lZ wTsx[ r/~#b6Uǽ4Sq妍«0Û>?rߋs],RE5_uYg)Yݜ-y- ?{[BMmexgR^ۓۣ]&zGl55 Qgy ghj^ Q9kE-Ϻ}%r+Y]9ΫKY%ϋk!EY rVŢ^iTv-Kn>/nY be{6;Lveu]qw̍%Z5c 6|~żj_*&$"]"3"|"DLc#qBUP"s?rߨ@#, Σ*dG7m햪x`fwnwWp sy\\qѕu~+PcR]փ{LHY0W[kkݼlnVu B˝ik'J4OUJb|zA)M&m]̽E}OʺÏJ~{q{l4L]o4|zkm4hŧ$Ѕ [VNwR|pG%:VZ-)ׇZ(>-|=V.v|K0~xw?ⴼ[[OrnD+FD3o2Q/.|_zָg劫U_4V?:V^q]'[ީYwWwi߄don;J! endstream endobj 1328 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_8.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1348 0 R /BBox [0 0 540 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1349 0 R>> /ExtGState << /GS1 1350 0 R /GS2 1351 0 R /GS257 1352 0 R /GS258 1353 0 R >>/ColorSpace << /sRGB 1354 0 R >>>> /Length 30058 /Filter /FlateDecode >> stream xMr%6ڃ~,DF@i 2h DZt 7@~XUkU=zpêD\_?'oß֯?׿˯eYiؾ?Z?֯8_XkW_[]ݎk4S7eَxz9VK_E~k_m֯Z]Swض_U|Xh___q4nxj7|z- .s%qA>7M'Sse:bGO&믖wz9s_8e]믥(k]"3^Yo_eVu]~cݝI_k[^-:ιǺ_uWYۯbL9^v;mrӵN;hٜvu$OV&&;?ːOo_|5/_/\wQPV@퐕b#-XЇkU{o9>U6˜ +Rt+!deٝ;sZW!\GmUvu K݄k-2']p~,L Phw5nwUۯ]>ΙƢP ;ᐟmmnzr)o36F˅J|ptwtச=cp69z^ t)Ld 2zpTow탣\w]k{vW尟? a:T"y4B1v?hU`uan]xץ۝W~'Ⱥl׹.juw0ۺ ]&? Zz?Wk`Rك^wwu#, e𡛼a^4|eszsq /_b{u%UjWߺH<CwzEm{Do{Dq\p%'c]Ew_նJ-6b;V+2ֻ2pF\m|ذY3e98>l_u_r?usWʿ;zݯ<WPP߷vPe //c*S_()zL}_E#I_`[eF'g[~jʟ hi?PDqE?Rq|^o7T}*x E *S_(1|,xS W̯/^n}/ O-U֫bp}Bnlq1;HexL}2}S_i `ݟ)Cb 6z V_XL}qŕ></s~M}lہkʁzp2`_{3=/vbS_(IL}lo ~XJlij6GC9lS_(.axSB7]0~UG9'.w^.m\뇑׉_y_EwjnfGW}SE$B]b\_Ǻ)0[/#ÖtCyB6b3j1{B.Op.w}&L %[Yb7l g~1lת}_brŸ~mz$+-65m1 \A /u`] c=S?d/aظD[C1G7W~7/FIowꏹ$yaʛCq3 mTNq;|o?/muM~cԦXxms> ?c٦uw  [WWkʟcjS(zަ^ zxx-vS@ނ o8b|/m~ĺ6Y8|E'HWGW4z?T?{WַV4=[MGޯ菴h?zG oW5/C ;-Īf7QUWq mWyUD^~5}>?a;p?? ?m0~O6\p%uoE!|(yjMx2m`=S\q>clNaEbMx5}fw ` Ц(k'mī^o?G)oS(^>7wmĻ].vnS(y~Mx-0ۂ;|-?:XmR㼵-amNLî? T߿MxMU?'.Uڈu?zFs._8msjͰ /vb~qt\u!]y}mU]\728z^s>D9/٦[[_0?|w :/[yw oHxC;?nmc#{Ox=5^WWw0tx{[qե3{;ء_|[W )PgujsZ.>q?~\|~MSlOtvlӞα=u=}[B\ë9o4edžZ_s&;s~x?{sW3O͗˧OkU!uRGbGVB=i9^{ga{9ݞ3˕\9k]Vba~kl[;ΧW.q.=;~HXͬĄW]B^nb)`LJI.!CIl=} Mm^Y?q Nn2ݻԋ[7ߠz?ݞ+z2A\QoxRRc>Aiڧ[*M#>| F;o[?j {@m ~lϧ߶k+s2~(&ӹvUt"o|[]}dh'Y@_n~Vxk[6?H?; [OcHdpv'ӜmeP|:!_ e|{G?”*+D׿pFQ-~{~E쯍2u{cτ+X>Q~%{7Jd~%J,oS')/Sɯx|7lzH[.OlHN[ O}nl12˅XWYv>R>_$Qf|HVK+|||gok^~$sf{uQ<2 ?Awzu[ ׋Q_ qᬓtz y~M1>k#O[5?^%9SC'/2x|jo`?7ٕ%-7KjIMd}ϬkC>=m[^nx+MheW/y[?@PI[>5S0<[_1,an namϝK[ea ?wV8MδWK^$QU57FoP?~(8| !J)(۵<7[]RŇ'<[ g 7-|՟`Hpz(2;ܴ [,4P'L7Wr"v{L O%Y)siy |]<*g 8n,Z5'IKC^Q\P2R؝ۊYѕ5$)!q>EWǑjZUʢK_Zin=qBFW ,,q$9Zc J(QJ>h75)D)" N$ZT\7-"VDqÛnt+SEO0%%jIf%7+'џ`dpzo-Vvr4FfKhUDCSE%jx2ʆ>jeVy3కb]qJ$HJ@MxYl.x :[KMW#I(FCCD)g7înZNj!xs~3oZwԝ m ab9W\[aŻ1Q:ӗBbQL =Hz8IQmܛf5lr=[K=nZZ1z^~Đ.QT諁ZXo|Y?7j.i^S"]h%]u1PRy?!G3聿c0lԓfkC]b"UkN*`tCA)~4+oZG Y}{Ha va_h %IGր:u#{|,Uʓ7rܴĩSVd:νvz@a2Fbd~{ i7';Eһǔ@(rMr oZ?_q53@BN,n7 uR(a=x8$8KGGelGfKX\F{r2 GGz ZyjȐJxwTxb[B ,I%>$J6RhK&b(rK=m5/+L>bJ$}|H\8Wڰbp+UID=/>L<Ð!\w2Pi aȐEk2H9`cJ }H.&M`dyitvԌ_Ws~k)uMA9MjN0 aZmxr; )F~Z-m5`:9Jn0t3$Ja}Ife5Lh!fI K(V- > fdpS(Q_[6-B)bu Ʀ!]"!q0f =?6E $p#ݣlLeq%}HJ5\ qVXqaed{jk-]9Mk*ĮΐGLwri5ojśWR7mv[үXo:9Œ7 \ 90Mwtri=jXFMwg&|QQ{z%@8艿) hM@Owb?ǗUKt%F7v/ɚzmYlIMݡ%Ycph9;du]fZ*D-{<.QWLohd5ec7i9YwoW99N ZVf[b㻹<[;H|qܴbH&M).qKnĔt} ZQ0b8L&G FL)DVza]qȵT~ՖVg-<Az_K(n%;=?$Z]WZ.l}@ k3akION7y]TaԳ:̱jnkp':7%0R<)!ol,]~'{M.YDgf*pR1\>nbwweBSܭIdQ-jp[ $v̤9-icV|yaLcӦhpⶍc7ӦA8m."x\a_v|YOߟb!i5kb>c;zg35zG@_ iMrY_ I¦<,q -.֢ÆݣtˆUMvM.;@%e$<]\^Áqw?8V}6>=LSC$KбW@-QѹڋLi7-?ҲĦ5q]"C`V; 8v8JFl5SPLs s=҇DC=i0MQb Z|CfXRQHWmf'Gapr8=top =UXQpׅɩB\^бUAdƈql֗%Ob}4X_8.Qc7X5MD}q,6.KjO/$"}S"c8`e\4*੍kmԺ%BMۢ=Y;Hn0i$+nӦt7m$ M&&-27֤u{'d?ۢXu{AQ{σ 䰸(Dx#=@[=D+j!]bQbޑM!ulkhCVs/l79 uQ{^к$iJHffFsqnq[fMߖ7TfL Oh+GJ'KSԹla*:KRV؀hyl5i[WMXAQ 60ƎNֹ:6<'T:%1/i)V#0VṞI#Rs^qgjAq0D46hu9o~C[c qz)O-\`="Eb_˨w9EBQ  WuS[Mk+mv֛Ā5Soɹ͍h:}ua:OgT[[ZTtƸYO'֥Ur[ü]⦽K0%>I\c ]RїnKn4SyBD,k #DһIJ {ӎ{q|_ߛ85 +Da}Hz(]jZo˨oH~o퓶4ro3Lf{Đ.!rPptX}}5ZvԣjD'"Y9( {tmTx%b5uqzC`CU&y0mu|L_ }/Ta_l|Lغa}̞-ڈwU58Bv uM|]y.I"75tE W/ WUc%G95\B+8vV˖OEkle(P"@cȎVb|)Dkİ,AN$Edvb!LNHc_9)DȞe )SC`X4n'*2%b[ pK,<W$0Ti1+n{8RG\P:R,k[( 6-"U9$¨ m+"U1CHBPK}k)H#|@TTŻ$ahqK'ځ `>6h%>)dkGjڂ;Ք w>(ʽzօxbY癨\'Zlq:獊qSXI{HjWmq.v@8P: 6]0WLr_^(tYN%%ȦyO0§éиC!_>N䏰4 }9j_vI9jcOGҤQon0(&sT3h$G픨-vʥXe\ܧ;Ll+lmQ:-3ιh۶ZWmmhm7J-]#rFO,f5Fl[H#hq\&-17àE`_B"rBRgG?Zb"zǾ}O+IbHWy'>lzZBJf<d*#U9-+9iff,F]0 jZM3Nm>P$i2r bly3).QWF?z d '5"sOO 0^i7qr4o>=Lvo}C%wM!آ7F}!]"Kwl=p688΂dj]<*eF:ʥCӧæe{fr#ū?ve~䮒=&o33OBjiQ r, ':j1PZ_ 3&^%1vc6oEQa-[f7 PN fWΝco[ &3 DһDVa'/;#?q؁5jblaHx=*fdB =Vy<[> Aq,Ѫvy.ɓI]R'o.(= =s!gn#1SCbMIu ev3az:>TЬ#o)S%:whWKbJDЇD h?xÚpoR'.24;†Vxک܍,܍XǸ^ƈӦl^f7[rn@xM9b7N!Ou5W'>'su"VYbɴVJc0%>$9lQoۿ~e0YcPhI޹a86:i%|"ivVw}~6ܲquaİHa valM}vKͤ?v?߅,T)DFjc$т62J%q!O Y{ b[vX*\AHnZ 0*F~ojݒ=҇DUHX'G18D:GbĢ*<`'sX)S5{,cDA8QȐ)rMƥN)v>ȞAcpfs ZT#"1k ZO1̿K[ <`F>lK8%$Q{ S"#آ.);¡JAp=?$*m~0%>iɚ~W+aO9188>LaT9 m.c{)4yZ5]X M)ڬ$+n#'6R ITY I*JyJy\4Y^Vtڣ.v.^[qHp(m|űmǏ)@z_m!Co. JMM9ΊL]J))r:w?`?~>_|iY90n~ٯ&9m t'#[lMEL7BMk/mc4$\VG,Q.eu " d ^AgVӢeO=5tQftm(+gTb܃yG!cK=vM5IE׾?QoNx^O RAV~>J|J|i'ĜF0r|pOk\'vŐx '0&كiOD#13$^T3MC83@1e㨍d#RZDї qgW븶\MSvGҘ>δB.1}HfibJ$KDOWQKA=e'ÃQn{fc>i?bJ$KV$߃=5f7z"{DYk8ykI-~3gPN7Gr!36)XsdZ$7v7ۼݶxOG& i?0<Ii?RT M-,Aĉ=nn%q(bŇ :7Y,P1:,EˈEV.w5EIM[z򑼡few~3»/oJX&d I%5Yg&6-R"hMKqŶpeQgSY\Zs ާU;ojJO`'s$,]_3&Ufȋ3yS)G1hCJDH_{X آwNomZ# 9 P[!8[1} a6GQl09I=ެÑz)EkaJ }&AKS!6݈/*lgGץe[!y6ySD~ -NbNקȺi2'Ha]S!8&b |Qi/;> qzxOﰔbH~=+3(za'7Ϗ۹~Bp–;avVvp|.c1^^mMOQ1$8K<,puO(8 )GQQN(<]-h*Z%G*w^0^I㨏ӔI0eZGKD1%>$ SnIu$.i'!qHP]΂ɜ$9i"Ūjګ)=vsD;j=xAj_ 9ﱥ7\3q[}!SC5-*XYJU1?K{bM RzM >`# 6?HHijroFx3Cqh.b73S4Ww%a9F1Wg|l^Ezo^Nw \y7,C]F۹Re ޼JKCa!^+C󒛇"y(Vg3b:HfSYq92N={=E>nՏ)Up{ٛʥJz*xB5$ѢA=OWDt3M8\Fo~/f=8'YV5 Hy #Fϳ"McVǨ 3$ 9h{A=GL(z4?RܤHDD4"[*V=,O(ڏ>VeV/ҏbVqJ$K9<'$ l3%C+wԹFgY\.Ay;1^A g8I~AtaF؈6P2D"A7KqqO6)͚=h 3!voKE3IVyŕqY|Yg>bv'KԢ^fESqxI96,*LK)6g`T)s}B6[#B>HPWh;Dl+1O5NP|Ie(2F&6[چqKx5%̍˞ӄz4!{RSy,\Ɨzk͹XpKڜ ͹o1ZQx'Ѯ^. V}|&VS"]|(ظIarfo36nZ;@vxڬhԈ_)RC,O{ Ч_=Fh\R_{/DK> HN %G'# .x0 |[Q/oC[,Z7 kZ6!8M!rWJ))uEMFQp m LGjJ}}H_2_}|gmhpS7,"'>$Ze} M;[\#NU֬&;56ƛE bv 4i?&s)NM9QaVG wĹ5 $f!W$nWWjuZQ_7vűob};ncOq<%0N@[Av+jУmo W$'Uj'K'lx\0Œ7NcN,#飛NB`o qq {+ V2S^dSm)$t][W{nno9'u(i,Zc"; #tW''vx<oZhF^^#-R3>Q8ȥ-oN(AZq!*U!Ѫ͆DS"C""=*q)*\k5ixKRZA UB)WN[2hK\DHT7O]|fI͒H1Ɇ85xmxiS'{;&vLv{0E#s'=zm"J.=r%?Y=Q0AU/puu vsâRe[Bи{Ha aCE.l9¾FsQ@#rkhl\ ~q"mZ8ĦpiÉԳ2wjqǗ^G0 ݌Օma7FH(+m1-ղL) !LiF\\Z#YHk%=`JҒ}QR:STDDnyEB◮ c[jڥbY!Xn}vd(-7l }.YO=%JzN8ӫȟ$ZO74ϒ%3ǽSa ިiX'%n둮%>>Ri4?`;}pF}Xt3!.ϒIvI aG7;Ga"oլBHXGժ?bHLfPLX(;"ƩzI[PН(CQ=`o &G~ON&ۼnngqJ$Hܭu3+]1*~6?`TtzڤxEJ%NDGRij-Ռh̺5e+=5csԢw=ѷ5`O:8{؏܋ $=,VЇD#d5|F>Qb&5۷D-a1qJ$K/R"y Ch^4/1SF2ZU>%3<@FG؅nQmFX^M_Bn vKcQMHxw51p/,Y踃w02y:7 =-Zh41,Κ)2-T[,Uab(GQj17T=ZʫߖHa f~Dsyl9+gEGa_ދ(^dSߋc#KlV3GRick> pBIhd6e "[]$mAK!A^Nd-yӏMU'm&d?kVxg`tA[*0v(hHMKXaF8$8KuU;7ؿA()L<0hf) H_ d{*_ ٢ eScP=6 ̩yv{G4E)LZX$vaҌT\\4tS!^lDٗ|e@5`(+->Kp5D=$``Ң,TgHI \oKY#pE _)>qWLw4h`:H;!ڗػjcb\r`ƨDi x8#f%YY})!QRev@TݶjKFa!ufH`vTSPgI{v$s0%>`HpzUWOv3(g!|<Ef; FLx/W̭Z4sQ$Rdqk2q=҈#-s#gF/=zk؁O s Kyh1߾plvݣ>YV}^ɢj𲗲ڶkY(" ͏o[D|lVGҖ ^7?nBXͿBX9&+ɯ],&8n䏂nf^sn;Y[{/?S;7:}ba1ʠF-NeY.pKm8[MML~)fP޴l\:7ɒ2眜$8=(Ͻd)H.g!3P#j[5P~P[ @1,דw۪[}O/Ezb9|l$Aʋd8{Vh~h=FK/V+yftqey\Zk|XmjF{ȓ)㠊a"-qAB _7C=>N76݈-R iz-3hnuỢFKbm˸׶ydW9vrd߱R.W$D ##BS: `bk C(jFB҄@"U2Pc3[&eQ=cpKw9%6U[s5Y6 3ƞ>1YN-G6ICC'Er~v "[ܑfcN8#M_ܝ&\NiM_:7wKuEگgnHoZs ;¹o'd)o(jŠb1ֈ#6QYkD˲ NMmל Vf)w) m$|baԳ[l/cGsf=^QiNZԹhJ='ʇ0qoH@O4^\.ِb9yI\HyK4U+,ߋVX׬(+VH͠E5a(8}MV[KnYcD;n.Zk_ݖĖ7ц`5Q% qlad8.zfcPAJv? Bf IZ=EwvyHby=9 f( A q6=iY LQ45h]4/<ōs㰺;>fUmh#e{K ٬9ՠdkRG3}9xIrն}fFnt2NFJfxx5 VO{4Z3sbJk"7 rk.K$70y#Bd.Ԓi̮m8_9WoL.ac1&dKS/kʠF{|gv*tꩁM-0%SsMbV{V#}XS],ƧyQFd-OS O2p & ;K"Чrَ N fT#zv9$arfKĐ˃szR¤}RZӐnyI9ÇZ!l)a%` zTITXzq#z,UXz"ޝK_}԰m2Q(o7(Dg$sN~R9+ X& ǮY5QZT Kc@8 rxdM= q(5%K5m`6utVa=ӲJ7<1S.[%ܹ͝㴳?6& *GpU/ۤӉQ9T"R"C4HIf a`e~MKsYSn:&~M cN{(YSh擭{ *ȓ$}o\'UI)?q7~OVn]q d6ߝ{u7~MUҧrBYNt?`nI-y<:y=}"Y<:c:?9$2ӞCܬK8;@?:@1cr0'7}r?ߣfS,mMQEcgqjhG,iRiRF,nQsB싵Z2 9cG\%)&5Lq rjBjBhC%I_b!W6uq(ܖInkq,8s}H[fӉكq=ϳNvp]{tԷTXn]% sRe1/S%?TB-fRjMg|^-LZiI )mr1KWt{ɗCpvg6vh3IyVJ̖SMHNě;)NC r!TyuTN~FG-!]g'BvOBF=l O$?w~?“]I]җ |G7>7/ .wOtܴktdSJz~lG'QNHdwkΏ&x.(M#Z7FI;ю.{t-wցq@'ٖ[cK*<{|bB}h6+ Sʼk\|ڔWj'q\dohW> -÷ބ\vM{'bH;F˛J8t/DFK E~}c\cK hliRO>ߚh!b?>}VY O8+5D95rt;zK_gxOB'#8L"d@46_ǰ:}o>'@n@wP;\w|I@ H )|qAgAz,\?!S:rz$BDbIb>+FNdX&~*ܠw 7b,2~o5/_`-u+3Zo͐1r0ŎW$ldX\- zA#&BM]x[!1`~-P'@u$$:P? 9@-OL-O_K.hٽz1CBE$1'b  ._}U,brk$@'c\q?ƅ?AWGP׀C/Ft{Ư \?g N;Ԥ :DÓN5gO&aqyF9(9hkuG#Z@g"Džq\|gw&5IKv]S0w ϻbVʞ5U&dR7%COtp\ʐ(D鐈Cs'6M3-qh|M MX.#qTpmItc\[sۊNkԄOY.a/.|:XT |^Z~[ xwnĿK -30_Z5o` [tL}Cr4S[zN9 S‘OBoį?v^>=>[Q>r&܄!%|v{M 7ط' {!iڜS5'eIF&cW[M8>Zv iQy1yVcQ |:5:ZAMA7YW$BJI,H;)Q1.yĞs񝊣{ Ynf1 Dge.5z^52~;DO$Vn.YGq=++i77[m5NHu?t=K=8f; Tsv\gX7:QQOL}~z({hTPI ,N_~>>I;T,#Ϻ8<6Tp1{A_o 7oĴV)쾇1+>Y{oVg |f'OXE3Rű?q=aI5rX~k y @Fdp:k ~gV uK'! 3H,2E$c~M ~]l( ߴv7RLFKz֛V |N{{۳!&|v)c߯2*c߯22~15ri-3_^[f-[W%|f' 7qƞد]S2.cީL |:f&>{6GͮH,eaׄȎvzෞDxsFI N(5jg`FǮik>kdߵEF3p{b̂Rziw30*9=[جbfu8Y7tM7:8֣;:8F[:~/Oܯ8kq.%Ky.!}:{~دQ.2yĶׄ|OQ{פߤ{MY[!$H 2 ~띃'~p\#~~3HH`vwbBٞ5?ޮOa7WXxR=3?ߛy֢(~GO `5j,/W}˽a0(c, ]Ƹ琥j%+K4 {=d!HFr3: c^#p1X^OqzjsybuYO| Nګ{z^qܯr-(O^ ~amzLh~`=s-M1&|Cye }ք~ߚ25"2Y)k<29W铗 ־]k߮o/)^ggLA7@"XŌI O ||ޗU*d>Pp4lp haPp=?dGt!JyD̨$(%w+nŰV%)'K@< vWi|w#w^gHofQ/>'Ɯm'S̹k :~C|Z-x]Z-~iOV -r1,Eds.d aETbd8}ߘLb ̌` a[Hr]ȠuQ:被[g`_sSv\elUv\elkL0~vAk ;Bxhg`xd>{hGJy$|/22O=y<3|k;4\!NS⑭<ٓ>{5oy۞[/׸x5=?? >5 ga^e*c>[}H leqQUFWjj!N׸Pկ!ukzގ+.,אmUƶ]elUƶ޳zNCDÐh-+'hgsN*NGsR|@;R9vO@*' c>ä2,̗ہ^\[i9#YR/,OKV)ݯ1>5۳Y$$}~V ,VOYmWd ]v&C5n30KEUϚ^Wa>{7D}9R45zIr> >AO{y|OSS}Oq)c,)ˆ[/>\,>OqZ;1T8< L [; ) A*>j.9_Ԛy>;7 t86Ԟ☉LWqǮ1дq$|:IW ) g>:.--3e#8~Gއ 5} ~wwwwby ƸHM8qFa]552~w}Rg;/m) atdD)zjJm[]SR5w4HXRai5 m/>zK8Ϻ];ߗX5rZ<=JYoiW9X|ecٮX>xm\m\c$)]#\$ {_'a<іۙI|\i}_.߈/jt˅.[E$[N'a5[R_r\׶_Y]Ezx k0 ߻wgᶶHq߁5'Hd>{QgOЏIJxI鿜%wx$gQj§hZ.~w?|kGgqןhU)PJNn=wp+ù^;ڰc:nRC;)?U[ݾd]cĤW.aZXL~}6=ih#m-ϫ^_5 к!}-vd|h[վxs\:8Z|5GHy5.A_Fqˉs<7m uCB_SefͨQMϤ+&8`]b-j׾?& ioBQ{@.Wtqt(4qoh8{*ʸŮKs9heXJƭ5R룯Gm&:NВ&m:&-)=ˎӠ[g>?}hP?‚1V`w{_ՄƆAo&n_@ύo_:n)N;ɸg]<Qk344M&muC:YB6Ed@:tϧ`n_\(FJ_ڪ.1:3uSC?)զ6I|0:ܜ&=ǐ ,U+S%D$"ؐ6SǧaSJntTWUNz nAojanX}y HF=prZ\kf vH&׾^TPlTpR[,B{$'G8Zh0%Pw99{ͮ#BusRJ46"Hj]Q"4UwU$7_tUPw]*_&eXr-jY.y\HQfC j;-l&'}\Bl0Ǩsq=S7?Bjm떔X ,kR~ݒ՟h,BDՖr[n^:#)u%%*UZ՚A ] 􉍣|[C54tgr\]&}#SSF:棢ѳu #IMzLDP5kúQIojIѓH:gcͧuaغosCۭ(XYw+<zۛ2uREa)>nmmԸYvu. ']8*l.xR^u kI!9jKyZ(u[5\RB-I%?E'[8S:gItXb1TDzl+5YQ(Z:?}Sx *.D)5/HgԖ.#E{.;=EJa ]X̲urЅZ\tТBԅˇ.oPCY%Wl eȈԦ me7f 62/ڦXGO_/-syCԶ2.\˥w>Жr摵pm,Bk(Km&'mqjc lAm-C[JLԶwm暬XDeuV-N39%}*r%TƔ@ЧB1g/9T fd9'`cAgDŽ'c9,l6iFMQ[Jz1. l&$MN[ɼhuح˙S VTiW*ыrPv/T>Gҧt1i®@Cbؙ γP&2h6J 1.d> }Th:+MBY@tp=64+EupZg-%RN$-ڲXPAu~\X,w1J6/ue.Y/ϩs\/2rʡ-VB)Qsa;X-)#eǪyzcmz#}A&Et[I3HfJ_kj&DROUl%=%=$T%#Y\˒drg=dzځ:AkAH=S tGpSCP/-LINIїIJD]&U ]򝑔,\\Wn#|HV5T P LN ؀ᄉ^>AXLgHvש[F!dHRbJ$ө 4Wi0cjm`$4Ve@-B܍-BA0CJCfLk#"1E) ,f_=J_+ϻhmD%vJĎQ\2NJ> ٨ L'dDKMK ՚h*)4.zbFRiRhyދmƴ<О7R*+ NU H~ThP[nIqS ۘeRqY.O%ЎwNEsgV=ֺ> ͆RDFD%ݠS '-Qč !MN궻W3a~m hzp6q4Z-K}Æ&qT*ٺFݓwv7ILcj 2\vFѪV0"?$D[Bbċ_ XtIf4dV mXSşhS>Q/$Dnp[1 f05< qr zz<5VRVAOg*}k4j?Ëy?c=d7{zQ- ˭xWB1^ll|tX~,yBbmdI[!"cl%1{Nki@7ʐE ɢج'Z%YSokjHWNv.2Hi9jK wHˍ1cMrD]xܸK>6jTo zSS_XJ>6'b!?^zvpֳQd3te 3ϫh{+eZh݅uqr#R/Ui3x7RFH'FeYŸCq*+eL?> 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 1342 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_9.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1358 0 R /BBox [0 0 540 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1359 0 R>> /ExtGState << /GS1 1360 0 R /GS2 1361 0 R /GS257 1362 0 R /GS258 1363 0 R >>/ColorSpace << /sRGB 1364 0 R >>>> /Length 4099 /Filter /FlateDecode >> stream x\KϯQ:| H@Ŷ ?Uؽ]H|ag-EH֓1u|՛~x_"|28͗.So~k _wፍ? Sb 3]uX [y5|S4->Ҿi w*ncMIPs9s]R~ 4KH:\a)vyshU<. 8 SvM{Cn6홤W]`۾Y vYgG$Ja_ ic$ h:uOn9 IzƗvyS^5]󋻮,]Ky(v^ڵ!Iٺ>u_p[0ߖz'InƟHii BKv֦ҴU3^:ƍV9N#-i1OCd~.Җ+,Hz2Rƴ?5q-ކ<6v2oi6>שׁoM,JFO{vTwJCtpnZ93dtko58HMOߤmi;5oHKl]ߜ0v-᳎ZΑwVڷjΑpܷIj6g[N}fcMq+B4քM=Ҽ2#+>/? ^Keز\Z|s]w$,fEoߜ^!R;…\ku@ xْ ?fm}2>SfXN;x"aٚ.ؤ(ܹ#xfalLⴰ}IT6rv3rWusIغ\SF S>bfĐ]jz@ 1PC sn[Lȶhn^`KpEh,FDa+NlnF Ot8Wy]8uB$\|s\3&E4YLX $)CEb{8r7%7x#Rĩ 3@IRz+z/b95_n]RHKgX:@r%" !kuq_ 9XRtEI%eVޑNDő58w1F-D\b/+BKN & dp$.| -HW@W-lgL7(µ/\BaPSpf FR=[ݨ- RArT-XTm[DH7 4|EHʗQmt@|2cj|ySe.gMj^iHz|gb##.34Cqp tJQb+´l9dfΚÔ@mTܺI7 G'&594]Џ8|GUBz ,3ōϒ%+]t͸LL0-pL2BV֗w["<$k늮ZQiq(SInFtUtҤWU[1~% ZWR=+>.sN*:I;IVimYhogR+2߫֒] vJ~s?$!b@F1Yi;sBW:ZQljXb]u/OUKq,H~Q œz +hlcDc7a{UŕJb%fw8̤&q qvWB h.M[EEWA!lj=ǹG{`tGiӰFo!&x;YwfsRl"$z $zӧ˫B5:MBKXqЃz?XB n#ኈ$ab.-[,jAO{4*2O^)58>Fx&*ǐ11NCj>0}+]K8`8|R?ON)$ZjCKIR($SY.U3&4UtʭI21=;j>ׁOy|0K֡o$b)" `D$~﯇|k<1Oз{,13>Iw08Q9)9` U51cØu7)> +M DZ.9sz=1c>gϑ&0owC1xxb*e vUiV6dv,oaiBYam%vYVo'5a¦i*kW]]Ka_zlڥ6oׂ{]ka_n%9T1¾aZ\ ZJ)*N֪+Y, FWc +E{`>&x.mZ Bc{;#^XVîͭmP–/5edk֪25Eo 5b֮E2^or<ߍ{˛ܯ"*I}w$%eYT;q~^x;xUyTiޟ˙(Ye2xhkX~ߜRpW7_,|ņIz>'Qmվ7_gNV{rW]@,4' qƕjAz}{ ~rzR7g:Jо95gɨWɾ5_u^J%Cu_[d#YsQz=$'cyd+.j5fƕW߸I;_; JH*d q}ro\MtW qy"Y6ɶuW3w]2}^?1 endstream endobj 1366 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 1370 0 obj << /Length 1771 /Filter /FlateDecode >> stream xXKs6WprAvڦ$>@SĚ`I~4E4zy8;OX(hƢ6J(њGd$ dOlkl\ؗԀN 6e%OO(u$NCk @ (N1 ]HFk_ri/pԄZQ?,WPúˋ-Mha?yO݄;0@ںڸ9{t0Cnx +'̤J2귶~NU*PdJOmQսB^BA2k PV'H ًY &F ܓ$`$U4M$v\y$wlx[\:\v7[uBBñ*wMm_/^,yfb?H(Bʹͤ$Pꐤ0INuLU:q*/ݐȵ?8 8_3q@FPRTD1k*JfV d۸mv!aТ';Y)SbZd*48Lâq@>b- G)"ʑkA2 n&&Ck⏨㯈$c\2,GPeyBWB4xg.JO)Ja*]pkƫ4%>wm]J WqD&y gXyG >:ZqFU{̳AiġVHx6>vaP f*~f+C6w*%*:YdPLjq!I=e_CrvMW6P/r} \o R9'ëj^Ms?Q ꦥ ʶ?03Aa"'X nn+wz5Gq;o۲*>pR'+ 2/kde'ee^Vdew۷<ۦwҜ̯: 0]ۻmRh<|tU~ֻ~wPp>G폇3`6⍹* YAQZLg`; 6*W1PvU{zv }Q5`2-P[€˽fzBp/ Mt #5mLuOP:+%fPG.(h)?Sjx/eΫ&{WspP3'n%E Go7VUox벂xr_ ]d{e3qv[]~޾7uKSn $ЦqgY(|?*2WvfwڑΟy&DX{̪óż'$d $_* endstream endobj 1367 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-alignmentstrack_10.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1373 0 R /BBox [0 0 540 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F8 1374 0 R>> /ExtGState << /GS1 1375 0 R /GS2 1376 0 R /GS257 1377 0 R /GS258 1378 0 R >>/ColorSpace << /sRGB 1379 0 R >>>> /Length 3814 /Filter /FlateDecode >> stream x\K{̧Hm#1`  cqZ  ?Ut'>0 J$X/_vy/Wg×Of4 / Mqo3dEO'/6/? I!Ѻag\2NХi~C%\(VE^Wchh>C844 3C1rzjW^fqݸ c2m`786NfB'؏qrx8-Hy}0˚Iz'I1gxqH#\cɰ32wϧ?G\_ |ѹiZ8:Όv~7kFFְO55e 2Ŏlܲdaq`'0ly 8yu0Ii]4Z0WolEnOq)\L`\%?~0_ ݷר>v^1OcN[d_?* َ~*l WMre?WuCy+Կ&@A`Tu DgNBH\3[Pa}iVjX4sYprapJc]wcaR.wμ#!+6&XԍCC7n*.Ұ3Oma:A*bW]Aupװǎ2zaФ1U 4S7>}4j_:boA8+f~\Ͻ>w2_bIbÃ>}l|Ч=OM?O__:cpܘD`Чu0Fv|p,aHWp4a-m>}T twG8cR^|ZY}3 ߔgOoaBa<^{8n- VG 38  uV ]^٫kqcYn $wpA|k'80>=י5[ 7c~ձ{?.XהQU S!]9ଋslEzM1Ep:8ma^SݢXwlZ´.(zrי9S""I2EcJ0~lי9@UlԖ*[HE`C,&^?MvBGUü{w/a="2E2ӈ5?(LT>-Y ӫ =<]D[80UKi<߳T]/ P17TShɦ+yL>KphyjFgmLȚO)W0Նi"NbubjwF8,UKÙy; / O)nFȳf{/ OxN[]*2k@HxӴm 'vf!@ j5e-!;jsct.-; PLԾ羂`\$FfM̑`NZ'#YCWNl w \ fP{I2[x!W.,jNku݊,f)k{΂- :K!Dž;+?rX K Z@V] ?0ۿ-#]T)X/|E u@[-w\k%[E1z%F.wޑѲꝘ$҉Hckc(,´7 nH׬Adς# }eQW;'m'D݁p?H.@K~Xp%Dֽ7[8$V[V[ZWI8o(|Cُ,2hw^[խP8md$$JAgi! +_ /C!g}AM'QU:ANүU:uU:AN{rMڕr/Sܔ(7A&]i8t>"cm!nJ'ؤ/v^r{)|K>FAQU:wskM, m,AGW:?:?"ޱzJT:uU:AN;Uk=*WTbgWʮbyVWn|-?OuXuM84+v-P$o$(ȡ*lSԪB/X%Pִ(EπK<æZ4py#k!!f@-,:BC%B/IļID]ijqRM[ \L=ZmU|R鄔iedL,P)Vnͯڅ]3nݒ! v )n(j$,ٛ >E`P, 5]r/|ҩPU:;MJ'҉x>A]j~Ig|K7:?:?"4#4VhS*X|voV敫;jr']dpb+?\VPg q[QXy/nuT:A|YMMP~^Ӷk^J_>$Q 6gb!nT:A|mp 'FS3Ԯ;7 Y^Pj*Rعr7I4HaWǩ;I̡ol _$ B7u[Lâ㤣4 EwRwX|'}UYV]F!|u˵rG8a.v/wsb=2,pv;Axts1g*R)5ؿZ18k7q~u7gLu@YNVlPMGLANekoRk|DX suÖyh< XmN;4aN㱧N}#^n boxesxYwgqP4b\՛X 3|>iM;4?F>aΩ~E)ab-џҁNJ=ҦgQ}Si^i5k);[=ƞؔUl8|> 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 1384 0 obj << /Length 2777 /Filter /FlateDecode >> stream x[[w6~|NFxM7i{ݳ-AREʎ .IrbG1A .3oC&&~{]F%$Dk(Hyr;K~. Wzo}6튙+V}NfDf*)關K[_0jɏUcHIhO5דm>m|FTƏؠMvMV~D^=a}g.v MK] Yu[mZ>:Υ"Bw<8iwMw|¹h0zGF -&ne0i F.4&0)e' GmXW~v38Oay婶//TT}^pVmVB#G "z 6yV+?5Üuk_̛>uu4!y7?±Յу)/Za޴w| ;p;b0nl$u n϶l&B}}<ߕѸ[ x摎N:qKF~am14$5"Nn@*%|? )NbAJW̙fO88=pOX(å GQ:x1ec{|h}|r$_Dg/USN8+pZXh]ôfՃk) q]N=rQވy\c;yOCyfu|uLzf?<߿AĊt8#9a<@C1k_>ft^;܇B=Dl1ӨkT>b:X3"[?{ds#[ cJ%#"i0=iBOibXF-#`jZ2,Eiqa pw[^& /W!=w柟*\򈱋C??U6dٿ qGq oܳ[Z<箳,Yq_v免HxrbpƗ].p1] n*j ꀄd.c_,#xf&^y"KM!ʤtu MMW~!\ME3aǔ!U<ʢi@ruv] uO?WلM5Q`t\8Cvh;Po>C:;Ժg!;`F]&Z_SFFXCe:2Ff%k #$pP/Ď^5h_tU?ֶJOum: $W;B 9&45'W Ia`, b0nA ./Cy 1y`O%NI*61ҠHIS1G0ypǔ@?| #E$ %$f/z꓾#ED6^Q_?]-߿R5!8#Yإ1 9gȌ$T/A1(Np^p T7:2CC79õ58%1!/w>b(KݞCbR?~zVXv3MV{Ji?*'W02|ty?c(̘?n0᪎;5&7vY\C0dd}^]}[fsD NW 1p- `*}ʁV>(Ծ 8µR LVC*x~ ,(x'pW u> %\U2 sRIa4˜pL4'ng B4˒$\H* +C߇z+`lGhWZ RfL E VO*C3kyVjp\.\X)S}֥u.leN:x.cе0*R("97D1S<#&:3c2=d-Ҝp?4'o!JfC Eûyw\\Pf?Ȳ5i'yps$o~+ͺiSլû/wiRd1+`V8f]^99ycK\wD N@hu0ò u6ğd:]r?q~&3 $pL~}t/c fμv B>9rHjˉiWnmt>%~qR۟±it;l-0vV|6,`{SY8zw X(k$~!gO a? &AЧSmو:j7m|Ѩ0%͍Dea bt_ endstream endobj 1393 0 obj << /Length 3251 /Filter /FlateDecode >> stream xr_3+ ^:lwtҦ:Ӈ$I)RI;﹁i&ޤ/"8 ۅZ[ZŅ*vp*dY$YܮD;LpS<їM*bsW"oE_ӯoHV3]ag66ȴ3^C#,|tT*#=eNpV1kE%uY CtV6o%MΪU_)Y %`"-Diwjbyu{X`(]//@Hc @@+9)gRḛS#ÒActKҢ&u.DiIC NTtna6|b b0p v܄h/)2ꇵ@`K#:jڽ Ma~38O`KA"Y*L( &&=1mـ;<'Riv)wk; Ǿ;>pyZxM]_`ݥkW]鮃3Q:Ù㟗B9_bDY G lr7dssfC⡦Dsx| 3Li>،uEHy%M(%<Q gSbr^A%v57z{qjc:-PLaڍ֖Jl0<@Ixg, Nğy%0 YB7$-n8liۦS/j0^=N >b3R"_^*ĩ:x`㓤p 0Snl  @ݢuBSR\ #:pњQ*]3XUA8P>P=˻Z^K>n ,izi2a#JNƹdQ } 6:ч*Ce]Pᬘ#Usy|ht).n~󏗌RvM#`LH*t_A#%eԚSn0CG?hyl[6}/zݺ/9_XLѧ'8z!*a%JS0&qQd/]$0.A~;t\kWLyI.1)B?FP@9.+'K?FuӿK-OfzƳMrhT-4.)gӚ?P?D endstream endobj 1399 0 obj << /Length 1786 /Filter /FlateDecode >> stream xYKsF WHT}rt4vNuSM钔؇LR=:X[`EeD_.ON%)MYty)Jᑖ(ΣE1\9&>+uԇh}ߦ\/?c߷' @HY$P&|} ig H;w4~mN_`{Ԑ4I$*݂4=++~tZJ#JUFW'T ]DώUSoQ͵fުo޿qr6g4kvi̘ﷶ+ ᙸ)z}8?/&t^t0  T,n6_`++|t9g_F<D1_4q9|F3/<>BW_Ӝ0v+. m#'L!B%\pbwwHX\Ţsd߸ 7-lanG^q*Ր#8y`>QE3l4}YU}AW`+$qWmV~$ -:Q99ɢ"˻2u: X4pESMI &_jЅ ҇TG( [!Q[Dߵ;"RSЭ@p)bR*?}Ƚ 2 {*qfc#TN lH'c.mc.Clc΅D#qQYYu A*9 )*$xA96Xfu^meWml{ 4~h[58%`p"w@/vw3`313LN+"vL'1gAvtV]5 ꪬ{\² =-9yd{͕\lG+ nuʲ 6uwf{Snq=Ĕk^e]vlP=oMP|ֈȷ B&W\e Mx]pA$J!g/ ¦ nfeXký9ǁN$H`Q jrF*a$q Qո0ܗp3Ti^ØLV^q80u)(w8.C30RG1(+lP*qʁq%B>Vv0n`K/jL-,w gg_9uL6QR`k81X'c}"k72`(L#}and!Bu+BH捖/űZbJTEHLsևS'ه:Ǭ AoEMxN :$3._@i},[?Z*BUL拲WL!ՎP,kf밖]|d;*j-]VIu%!@t0z?n/7$e aE~ 3'Qhdn"Mm5%/*EݗEAV~b -o_վ'UY錺(S|1Ё8I([$I'qDe%D(uLjDxv @beH1,%B{0*ϡJ_QǤ4ڷ˨} o"ٿ{v^XqsJ[WҰ֭>N0e+:ր㿟% Uxk6Z~ endstream endobj 1387 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/ucsc1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1401 0 R /BBox [0 0 832 582] /Resources << /ProcSet [ /PDF ] /XObject << /Fm1 1402 0 R >>>> /Length 40 /Filter /FlateDecode >> stream x+TT(T0B c#S #Tp<}\C|@ endstream endobj 1402 0 obj << /Length 1405 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 832 582] /Resources 1406 0 R /Group << /S /Transparency /CS 1407 0 R /I true /K false >> >> stream x+TT(T0B c#S #Tp<ԢԂL> stream xUY..xЄ#J\qww&ϸklLgf@I~nz>]]TթX{]X}";,ӯ(LE偧B๊S%1gKbVXP~4lY4;U9uak8Vȷa\ZΙg#ϕF.>?2ӟφ07V%4VƳs$"tQXM_CaЙк!QgKN'*s|9ki!n?L iHIاm8uҘg yрƊ8t_چ(?Wb/( Q1kOh,KBN5F6 CBJBJ2]*sgUIE^ŁBC(JҘ8 +@fNGaJ} Hg&g潍O+\m ܝOIdfKFn v67$Kŝb*3ünZ1yiOh+ &o[3yĠNz]1Êc·.5-ll8"lrkw=mMd<󰫺oq-+7E`PJbo ]tܔ1n sI?ʊBMˢy#'ݡȡTafvl-AQ^Dk9?mK\>yX}py}E)ܮ(ųU'B6_)Zwi%?2s^ü7!s$@/པgx5a+I8g r5mB~s%k[fyn q.9Rs6^2{x,L'c.?jG#/ %70՗YC6[y]p깅C.cEo?cCzUw6N>|y \fdElX6iāOIp/LBO?Σ`W^\օzmM?޶ğ1}3cֆm0Z~+quX]h$)r:kOh0~Yvol=W%*~ES:BoƟ p;? |yo=O%4_)+]8LUJ5E4V7$4G)?]X)[mIpMO}EOmAhc푺41Jk8oqF)yr/aqqPܐt?,p$5çG ]8]ewM7L;s3@9qp5Ws4weQU YAz};o1릏'ngo# 5N uߟ{ų޶vv?w$-ܷ,ÿwOwҿWO3O>t7|=sO~G{NdcCN|*DW;]vm9~Dgx9[m+jqb^2?E2^"\ƦhVCVRLnU4<㩢|l6YmL/[nah/~ukNmr{OKSrDmx/ș{!pwOmfwh;-7^y\“#Uv[Oc.uPN|?[T ܻKhSo4ôx6/ŝ`co~|73&XՖ?|`' hss7٭~Nwa[nڿ'{׭_u87T㏳ۚgcwlP*,=wO'v˿6kioوew)M/f_pA_u<#63[?g9p_\y`"s/ȟGXkKU $&')DP#.8o:~Z_;]N4i]!<-&?9}Ցu쟭:]t !~ +"{ I[ubaBM( Xb Sg/hi‹lNFyV8we\BP!|+2=`ɇJu~Y8gvԆ;B27`r1p4r1}c\EcoI jC!i̹{{^M1}.b_#xAD-kZ qW&w(W$s%яra늃| }ữpvj{njm&m .kߩӪàhCIl./>7ݹp64$i]i䭱8<[WV /Sdc ^ʐ3ekB qDѿ.F,&'} ; Vv` '7;ۢZl|ņob}K筌'>L~u4u"鷍M6Xlrbm㩣VOD`(~3q* `?ƿ-?PC 祐( R4NMVSh!XQ緣{@ܲj?w>ؾ;XO>GsZ_ E+cz>LmUfH9un63/?PgXphk?6i 8K3{{msfL&zϩc^\l 1(M6ozΛ/Tf?>暫d4 o f5_Y¨]l7y. g)(~C災8OZϺ*M8b"27/\kr~.. |;)ph8yDmSloQw!|cވ[kou~Ud_L$!\aOUal6(٢0vC7*#O) NOFyanXӥ|s++="EѶP6o6#,W8V'apuOj99_ycѳ,!س/?f{ !LLSs4G*#GXT̍?⎴;7.|S?N~ =vBlб3?rPJƐ_țb᯾\`ngcIxʗ[ȫi)^MiSs2j!37MӄLEEV^g䉨qwU9oɟvrhHGW'cz' cjslu7m;o>/mvf3wN}~>oϟf)\t8PuDW/gCoo)?ʑQú{}:{IadîG pډ)Qf?y\f:?=i?%{-LUj4j;6\ G+1~_2Sٌ?ۍ(%~<4-CY'q#v(|?GYG\ Hτ[ x5f/ut8q#{!^yo?"Zn-"m~<6SY~WͲXOpiU 0E j#A&6l)^2\TVܐ|xdyUe5䆢`H*+"bs<; @r`J"]mxՊ!;t^-lP&M)[Z#gg׺%>ȕ Cx@<%NY!k_x\/n ?y|sB}oc,hޭk$xEUFJu@FUK\ֿ1Dj"3e̞:B*+sv/Ks)Lq?z0ȟa۞=ZNKdlf@i_qwh mlDeQd/Fu߻8 kCe j0\Y0#oGbY7I__ a9В4YG\h^e^hq?9?əhW'pwV!|6̠T ZDVpHk(/Uos[hWx4l_EFYp1?Y+R}++OxO;H06_\yj̇My'< ,I)M-K=505/^ uuS;uʯ6MHpaOU5zǁUR)fksC Oz"|4'!2#P_^'5a랅)<ԥ:jղS]xCiQ~XYf*}1y*&/Dg޴asoX(ջȿH^StB˿$;u䟚`{q ~n:Tst`1'=AuTsDY-ʖ^zm LGieyp{ZBpSFـtڬ+@3Or)N8[_6GyooiO ϙ2c"?ģhWЗ>Bsim eLUquYAUV_ulc{;*os^uUvc- ;h;RZBh CʫsE6BP{   (F"u&_~9v#)qsBcEڳmZZ=WMwQsi0.' pu =oG"lkL-o z&_{1p.)WfoAhQc] XSs̲dfYOjF=14H(2- ;]XJY0q53?"7+2qGTVP}F~Db0: ul8|3Gh勦(BRJ–|uע'lUϚ{/jA14g4vOu>>p=|p"fwcuT]AsO:E* #3&?0Gk?U3jS7EXpx5?3};ni~>xO=(_d4E_{N ovWώs||_Ljta.MCkL/ qO?e(sv.m}NM7 F8vK"<;7L oUඵQ՚% ȟ)H';g3?JPv$zQ"ۅsF"߰x)ACWL[sd︙GI o@b6ɣ{?}/=xq+`Mv5~?~6o\Danm}зC2>#vx޵># Cu_c"-뎛|mIh(jo0Ow[iamia// _h<"&AGB|%湙*rlw^#{>0uӴq_=Ƚ/>豰?_$ v eF膑Uw|Ec3Wgs$(&5_y fi }guoחݻc9~4rOl>g˪ɂ?LCKğ.o-$7WiG]G r6ukEuhخima^3۵i]MqTSX玶~s aE s$";/? _d,Iy_k_D9#$Sݗɝk6g׍?zܹXÒB2?nOc.K9ln"*W5V^Ƒ}~^YбC7M+'#nx]u-LfG'}.p?{|5|d>uXq/I(h\צ'.2 s^pe|nvo%rs҉`.nň][r}un6YY?j\ʔ6-7'ƜSHPqX%hl=[ Lc^iq-)XIY3^H NקLY,sya*:.:Yc]ֲm%f \B fT1/GoP{&"Ӎ H1U;74䷀X^%<ݡ,X!3HvT\ OdkP8&RtLJJv2ݷahC܅#BdߟW^|wı c5uתQCTqv/_3_.B4~wd+\ADW븀}\y쑢;7|g2Eo3Dg n _tn)S`8.LkU3ۘ8oBv9(VrY28/ʞN9,>[}A!Z ;/ү迌qhaM*H ǏY"S#D3:sOMiĭQY!? eR-a/uwZ Dym-#Rg/|^;]Ϙ8cDEZQNצ;4o?SM&ț0@Awo !vIFŸdgiSA!*kv7TQ)Wm\1Qg&'*jsB([VjEK) pt Yo.}ӆKc_<G۾/-&y\ Mk\,vZ?Iǒ)qv"I= Б4RCi K̗)-^W]`tಂ_=pmE).bO)_9S@+YJ"z|~['L5[VMQ)>Ϟ$Pb?Z.LC߆Lo5M B2|2GPCUF5yfrN)S2cs)\%<-_zM-wJQ2I9ZcnG;OCO8J%9~M(U(O7fzG•$Ly} ;#ע35FT=wbC,#he`ݖkE<|Cp3!K|ϳ xqiBI4(>\?!t%\MTi[IW䟛$*~[a"bnȿu\Lb8(rN 8GqTiF#1T-C>7V2*L!|2c1j >#w*N@ NUloy'wݳL*G/D h:hdˆȿ" *BQ6f1W,Z"+ly:/k9Xj~cY3YLvoă+O!姸5vlwF- BNdRSG=S&Y^ ?d3|3inO4Shn첚>oK9,}8Lj7C3ԒdvxlK"iM,Pô=jrR#w/\gOht[ܹVet;/ӊ6yw|!6׍rMIt%}fr5}5vXWvCMO 5[.Tw&CC~ȿcv}Lo'w9`UN_RAo߹VF/d =Ћ}?s&b R.h i@S+UyUMA!_QC8S|2ۧ2Nj&߷r4TIPm_c% ?WQgC V6JP8 #;@2 SgDO *HS!{JxGxK$ك1~T;LrVAw \^^RVF]BsgKC~ 8[FZEkj38xV" /Ż2Yʙ R_lhrx=/<ѡ$1d?oϿ|+d>[g`{A SNF<o)(U#_zE79ֲ#<6&Ň#3+dkZۻyԃBoߠӼ NJqC]\훸PvfY;UdAV}0cJk `] y:q51ú+rK [,$~G_xrSct~; 0Rڊ(7!/מE~wqS~8G2+bSkoTSIaW=:Q617*r6qT/i|"ۅ3AX}VUC7i'P_nL?q߬o|8o G4ܧ=;p.?Giyhv#~$Xm&^7]g)貶r% -Kv'1f_4{n;tfO%qM7-s2Z#>X. tZgM+yio-Ёft .:AE^  q0R= )nطkMN( 5mokǯcDnT~6_#+Qܚ!:Ð #7YT=1z㧱;!o Gj\D>+1Q؄o_oy׺)3=<r!My TacQ.Ċp|nXlα}Hjk2|KOx0)g*Ð!%Yjj'팒CKj$uo4?s@Z}F"esGAp䮴){OIN؛OٯM47o}{|[՘xcRjȑL/s1׵U|:.BKgYrh'31S#v9dlG13l lλ̌8_ 7N"P[&%{q!6&H[ w;D=:5~eva;gb:?4٢/[eo)!>u/ㄑݑߐ?϶dp}#a*9Ma ,1Ah7.};O&sU@s4*gȝE^vL?YY$iyi겂?XW'džni,#Oq23\kzlz㕧 f ;y>XEs$FLCÖ Oi Q k&H)| Аp635vUAe & U[aBA۷;;Cv|kQ[Zq/k_UxMﻷɝW3NVLy/;~(?k󆖿>M1>||y*7y茭@ <wl?et#v胑>۴SO?ăFMX-"ơd3;ԧ':[.9ԜyU7xyQgHJjpY>HO}u_O."o"n)耯&=q?x4[qpg0;A57ui-䄿H؞ٟ2D0Ur36!W}1O6͂ h`?Y of9`cyGD>뗍? b֐VXnc"U W[WO:yAzSY4K437ß^FO3epϛɿEk&xe(a;]"k߻ed(Ͷ5!ʣg)ME/M7'!9OJ=M۳~ˮ%6 wגI#ʦ /:٧g A(UˏӇ0qP5-/߻ɺ C&($2qܱP쯃Kc3^ 1뿣5cV]m?TEQC bh;$ţKQKCBTmM5cGY7n-f4b 0742FBA& G5zs,EފN3KRQ~* wAPy򲘞_z.ߏLqR Oc͢G-7NGWLO)kG F\490g?Lm#UKK3J'"%hUfVAv?#W#҉<w:\ܤ"XuԤZm󆖿> H#ba/NR^~/7? ?oA% !xW/+#z3;'Fl' .\'X8' BOB߰lsњ0E۷LTѭ꿙ez8Q?s@7DbiB9SŇH>׻oZgN?nx7^糡0H\gի1ZvZ^on/ϔgo(WFPF~DN)c '\%Rl?wҹ#GW`e?[7?Gq ,4VT Fp@ο?ړpBs9{-,L=6pk?+Z6wuRA+\p5OoDY+ڭ?/?X&Κ8HMjLJrN tHbK= +~[ AZ@}-%W%{-<8b&?|m5Dq#k7rZ.mFEq%,4?@f./%wi֦ 7߬msܳ\ߜVC6Wvi-oL6?DGm_J~NfV$*r/bX;7@W78|ſӷ֒,Y7ml9K{K>!>I-})]Uaq>-g&'9cZ+*p8pn(#/0`j5 J`1$1(OA؇Uf[)4S1o䱄rOqf* 46QMiGeDSɤ*,IE)9X^ 4fE(_&?ϲX^d3>PU`zhy7n.FCTLчFsON͎DO4x=H+Wct^"3ѹ"d;mپv7G/9>xhf藢vQƠ֦k[2B3>#Wh1sd`"]ZySOۼOS͐95WFZ~ߚ߸B*,&oiC8IT7=vwitR th'%ْC~~?Azcd?"t=ԑ&Zf~X._Xק9^`l oYm %࿙յv@˿\G__3 ҈ǬV9B!lviÙqe7AjHo'ۍ?q;q:uB1PţX^ 1\,\{|]VrVƫyR^+ /G:z `rz}vOOrgmh$\ci8]gYd%k$[JvlDlʻZ`᳏^/Js)Ed̟uڵPV P8v|eH~eȦ2 KhY@əwm7{iT 0~I7?"c߲f~MpV_UE q۳LIEg v&*Ϥ tlq-?WMUX-I\I?b`}KڇX7AAf\<^9/BŴ) <K\ )"L7vOo ۭaAa|3X2o)/_C~TU贖>o7.Vߝf?F嶬{ncFn[DQڲ[?'3_{E]Wsۅʀ2U22l䄔}"W_z?Ǭ%?Nٯz:5@B6DI*c?9^`VQG/o'?R~ 3Y¦HL)M4ojz#~ltO#Ko堲k9n3SəAOe(9o>zPF P-Ņ~h=ʷ8Y$vOi0o ?ˠ(R6fh|O~)EBl%aF>s:{k>UOKa !Ir5??l]1) ܰdhj'c Ł7N9 lp$n;Jz!CdP  `r~w4~_}uZʅn?NNT u"`*g?@F@@| ;7Nv` AL՗GoZ-6O'{!tn^N3q+5-K7)~;䫶j™Cx>iՏtxO^w.Y7[j3%{A7lm?|=-P5qݳit^Lc * H[ 1x5W4K 0dKUM͂?O9ӞE*bʟӛҙe, wv3I5O?v?}a5/jx~>0yAoO5;S'AxX87;'hYfmZ1gKH v#̙_uˌ?Zῳ(f\ầJDIaUWޣ - =}vTIc-aJwsK~S̰EvD\C%R"/=!){2#ߩ2-gfxR9k]{/mKtԳ(tI)OF4?dTXNK8,o,5ށiX+''ӞILM"}!GtGZ7DB몾7_pݨo65KS⟷rmóج]h,6#!}S?eՃF1vw݂{i:};lnJf04޹fck1%tןjJ6(goY) jT)/tHAĩ+S`ы%07 v򉃋(/| TG9 fވ:BtZ7L2 SSX=;Tm,P$C%a*^OVڷrQM qXei*7R7V/`6,݊3=62y7M/)ڊ\m2:yϢ1 $BaSfK(eIĀoOf~Fæ2 Vh%0 )Ii v/ Dp-1zcd0C_tvޗ(J@GM.$s,gj =ږɿxѩ߂c7_i ПůB^@" ɊQLEYx9-Q{B:t=\Nϣ%tݻ8ӏEi~nWz9?y6UO #nλ-eV(ݢAT := /絒qj?h>=ǟIF-A89uPV-- r\{2^'e= #^Z5M i+`FmLn??٪be~k)מy'w?]060;NK`pWgXk^J?'].5.%&"Xoo>?ŝP9`,(&2fQEs1bD LSq$bׁ]s/?=j_~}W $*4a/mJ)^76v#* GnFؔ #k 5#7\Jӌ(2\-y*ϛ ߑ*dq(T&7oj5.3NQbgfCoNeP^J^hjEx"68<F- 3_쫖kBu(!w8 A8tJR(m?b#EAįBSao2Q,Š, -EB~U)"A2Uh  xr}!<<1"B1QcbA57|+؜i!) %aV>=_TSԦ+ )cXQNƪD EQMVP7[eJE3^[U/PY,.,WD@ !jb|665WJbDTy0T,7r ܕgQd?.•Q[VGYGnanpeNWxR uQj:eWeVgթ"jQC*ç6Oo(u ;O0k{eQ%٫:>5Ď^ܜqt#LL,\ju>BM7'˲<- + `sd+S܀LUGHl_Z T` t.Vfוԕ0-YF>ã"G1kjbߥ}axQϖe<5RˬUOj]-9DׂcN6kٿo]vj}{?jGP+ KvߵeуCo1aPNx ..K wƍȭ]39a -szpoO(7W;7-I;t ?HHo^s܂q߶z:׷y-Qɡwq ܹyV gjZ rj7y*"LwQ$Sp8Q!^t"yl5АKWŖ21 y5/?x39ج1a~}z}f~}z=hצYZ.I<}=~O #!6/A[G Y1]fO5ʖ0zy%'T__A-yoʾ Qm6Lg -*r_˭,gUu˅??f "sCβ^Kkf?jGzgaaD?_U334o07E:R_LYDF1 OU :gX. 9(rĈB被S|(!Nyo05QMROe )¦ `RdXCaE'݈У]BDCCe˞r?ؑO΄U{5Nve˖Ē3;A}Br5y9,jJ,ፑVwA9.~>F\,Z?_]:l!p j5Z/v'>7үUr뼰 1]K IjP?XO4sMh/`7YqdXA\@ũGT]Ugܽ!{~\{(Vzb?ZӮCr C`2%KXݲfy|*'BTy, =h |z!P ~mmEa|'/ [#[GUPiY,Ò ɞ7ᚫa)xN*rZ<,N )2^p}P! `j pQ #x]EO9AeQB{T5 37N+5OHۓe#v<OCVQs}נ(BK:)v<2ki3fHOOG3/iӦm]99ȳILU^M.Gc7Qc+ ڶn5XF(4/EO7o_?Gі3NI-ݾnQKϸu@&GiS/ǭ/Ҙͫ"p!|PEoؚl D#_ ʌ0 `DQkƬ*5]n}wOs&0d˺ACZ|D+NYUu- (J:g˚<{ӭriUVL#299e|C6_2 ׺jf}&dqEnߴi5h '2Gq߶6iYuYAD~GَpE hj4"yXODb% P$l3%r(f;RoHM!yvpCfP;T&0P8EH8 C6;Dq)'aG`3RԳ*G7!x#%v-;wn^^^MMMWS]g͚dR'Mpvjv.V{&3=?έM7:h/HGӎ%'a6\p1RM |åV 7k VMJ*gȜl߸⁴So4 G;Ճ&I q`r07~?6L"YwDbư$=X^YYYaaay֖_ۜ[L$3ʶ+)y)C} {,f]oF sAYh7X8u`[Y9rwlܹ( JC0J׊ߪiiIvco#悻DgS\p^@ۂ\`-ϚLX̘4ߜ;gz\oއɂZ>\[UDy&oٿ"ӵ{'c=:Z>;wfwzp ])R['Wd:8tPnnNAaaYi)JUWiHaOtfee~奙njuyV{VݸzEYL;{kP=uFزKOߨC̡T[m_Sض-ƃ&&\`L=`z?bwr-;iL;  Q^d7~xɻEl𮵳}OOnXv|{:~xy8wmv矷=hZ̏7D<Ѽ_!|{wtheLz#{|ꩧ>3FSnu'$$t~k4C+k$+2~fgؼFB';Cx[vfX<Éw' 2zbo! ּl_3Ѐ/dgY:w,P@N=Vĸ}~ߞ0r.݃kf}h^~lvU ''}Yy!޳#jQ'z)y2].:ZpA4AJf3)M翦ۿJ* &?[HވA(3ԦZ3üi#oVh~f׀Q1a?-< >YNq{\6 s".\=vk/`yy~byGz~ |_%΋f0ސ%:9n!M:wyQ2Uψd Vp "|:rSsԩLTQ-] y &';֢c1\j`m۶6\ߕdǝ6sfmۧzv*7ow:ƶ]2 +׺ra>Ipx)h@Ѩݭ,sP |gp[+Owaطuⓟ}&7?m%bS/?%ċ>C>D7~`D fbR!~UxPۯ?gB W^xߒ83a>p·{} x?޿rri0R?uR2'7҆[y+~ypClyqd\_z({̍ᖽ ͂AUEc"R,4ɛs" 7oE- ҥI i7(:Cɷtao8})FɓE0l ċ!!|Wy$F\ 8r\PN(ݗ}>}bDz[a8c7Mfي WVu3iw$\~휽,X?=dut:v.5YGnU+9亵T +o8زe˳>c7|z{oh`;)֯*x7xUπPC*Hya ۺ5Q()L'cu[+ݻwC঴h"KGAG@ kxJF/Au2v"AiӦ'x?|0zC/-p}Q-mH^ۘZk; KjMi qAJ}ڙPe~͑.ʃ,̀,Nw(x>;F~`9cڹU̿$́߆{8TyJ_J5Bvo?&I/?렾W۟X8hEry|F\h. s!%Ud8Or X=2xv %s)Q2TDF+1CZ#Tp)NUtIAr,8B{+[KmTKS|K]tUgmm ),bW3?u&PM1hޱ ˒Yj^X?&5HȨ]/s[t,dVйCI|=w"|o[3ZM/?Y?TDc}'.g7rf q üٳf K0i!rF,テOܣi5ގ:tދ&*:TwHk׮_2gΜ.v-tp񮡽~:ToW#%57P\ 2I#Xӝw1cQ)U v˚ڸjʢY]YA@7XL#o|;Ƞ8m[o_s.وly&MO?|?3xgOS]ttRKe ?~5k@n`=܃ ~z;ZkD!r.Q٧OѣG{{{Էw/F~wMrJwx@ՍI]?dz"ӻ >6 ;0СC={CEuGeݺucƌ aDn҂*婈4wa}\P@H'{țf)Kf(6!u7~[ybg/k &B9qJCpΦU\{P?B#z`ߦhߣW%G~']u<d: WR{SrtW#sS`bNP ryb7H,>ȯ@ASX8MP\U80U%N;udtȈl˔Ć Y0raQPi g89V0.' .#OLM02bH?~GZYne #QG :kj7vF/ rłqL(ٶv:mrȆ5dCʽ\]HY,acB߷x1ĉ?8$}#x2Ja;uX(?WCz/z:븻oՁ{:]ؿ7qKR\m,~+qAλjɦQ BJG0H3v7V~_] h+ R2îo(@UG7nѣ?8iq᪯)S0ZZ|ɹs:hz9p0%}g sܾ:A4QB6*RR [|i?jƜ*ĐOo? )sovm!1-_0}7oº aۂF/r4}e]ǡ$xPC;m"˥ OtUVoxIɬP#sS 4?R2 tA?DK\`p):S Ks(HrQ8T#К +EdnC{7PMȩYXqKI*(J*C슳IXRD\wDpo0>y,/qGbf} ?ᾙ?exCz3Qfx*a(KǖJ>Yeu)h`+G]VP[x1&oT@q0/=a;R(nҤIXR~@r8h:!䪥3:RQM *Hr(MweZ*ЕP%"NQD櫖N=b51qDh\ ;Z'yv/XtzGur},O^}U }U][,|V$XSv խ^ m~\4%)K@H"~LAv!iO<'Yb=sbѬ#HX~'%Ct'uy*N/_oV`p WqMRmB8\{;vL2uT}؀M#Ok.T]YAłR#Y,~g߾}1/k1AQE߯iŽ&*G2}.8Ive oO∬{1*mъRC_*<5!}Z`vL~Nkᄐov6.ʜ6DT=!^ 2d/=O#~bu -+;AI=י>y,z?p!O}?y_fO?__ ?k¨A쿹vϴ𳫯 eR2'Z-6zp^%yfN 9_gCL<.,| < '~IsNuL[hE{)kD@* O7.oS$քFW M+ C¤0 iI{Q[eo=8o!a9{u95%lOae-1 aLq=0{=t 5pHqmqs8zї<\+Uoo|zJܔX"-k.՚sv).ΎY0Quq',Zc;4~C Q'sYU|WWex\օH31ve0ޑɨQ[Qy%98c^u{90(.?fٮ.NO8.!lc8kܺvFE;Qf\عÎ &a@5j(Um+vYy1vFaE2c]̶USc].F@Ta-,}woA-3fQX;m8_O="s6= AD۾'{=l1ᵃ|i{rݕmiNis'yk/>9kMt<e_a^p:Ő|H /wCAɢcBXSwECpJ #8ub*vⶵ3ق\(ٹ+O>~PCp 6`O?5>xkGw,+駟O#-펡cw܁ۣ-iӦ}VVVǁȕz{}т_; sblվJy';lsOvth#?cmC>O? 8;=oN9NhL})_>v"V-pj56Q^GY`xv+>B5b6\gןf\7OwmGك ɉ\Q=Cɫyy]X}{kۅ0O.N[,e^ ͈8ӁHQ$ Yh!E# !deᔦ:)E #HTN) 7QP ~kH=p:UE߮*4 E'_*5I͸!1zI3=%9;2f7_ܰrmRcj{ ݛp몣y{;*rWpsؽhV7;up])n1CcJT gR_> eGxUH؀ñM;Ne0Fk~'NH^GRh8TH=0۹[GrϡIuRQ3g.`_·6݂Y?D rZz4~W}^svA,&B 8"X.s~W6]UF?6{DkFqhܸ,L>\1}_[dȆ-1w8 '~)CEW3MͿv~ǐK QK%+65ٞ{O9 4E3'j2[[akSic7W96eϢٿ%/1zGeMDEʐ"_<Z#P plY_"I5.7a*Ày#2݅:K4MEhA'T7-r/$cD y'ͩ !"!e&᪣W el 7\[b.WG꣈ VW^7)cFxrH]l}Vxɲv+ C;tBgheJ>}pe`AMMMFI{w5?i/ev.͉abcyIN̷X3U+ZYQq 7- OQU7档Zmy6I?ݞ:X2{yɎۼ8;mW/Q+̲ڱ^具ȟ .XY.[lN7&Sc'z,5@*mK NuHKd(TG?BU$[GzփVâ8m=?{OHXX?hA-ފ0zvr B'd;݋W#Q׿1|q?hAՖ=ł2̆˲M #%3_-޿yANYnRlhM^7g(bE!ë'٘Iդ +[e TUxbTdk~EDk`qlM_pTF*R(ČA\WI}i8S'|y9tGLH+\#kCORCK&l4g Y2]l/Z=BOPH~4tΎ6_g\gɂiS& 9{YrO #ӄo/tm]3c7֤pF_w7)/.ί-}[%Ho( ?w}t4:z| QǍg>/Ǎ쫕~f#8 _g>+G'es8qOE;b w0Oj걚g|/s;/F%-kO&|D Ө=zݖwR[Ő^̳ cb2ti52zF}9E)?R:OAu0M ͣn?i8H-q% Z.pdD/MzrQoAvim}F` 2IU9vx)-?LvO÷߁dvl[`֘ 㾆ۥY#ʊ֏ fF]kfHi3ynv-_0c / 棄Tn:c8?72o=-SO5jiY 7'8M2;to0qfkJ:Ўߪlos\8g\3҈eqKy4.!hL8~xϳ8%B0E*2'?q,خ3}-?l^ Y}z .+sdsYDYgCQVDH]c'CEµQ}VcB;sh+b#]s_KaѥcL_u] KCR ǚUY:}0*[S6nX'V{V<4@kvIPpўQViU > IxQ "T#fٱvQ~Ǣzw:x P!B:-:nwsA];G׽>;aAC.Ɂc !gH9Z\DEt2ǃr?mz~{~Kq:g;q_ױ C^{:so#^ >gy6G^gHQ28掂낥*p p;*>n0hGZ%JH`[I;"8Dˌfu̙2i *&jA%4@dݪ(N[ AyUG1*N X颩Ddj"HE7ǩ)*H@LENG Fģ˕(vgP Mta hfr㚢C^<~8bcq'JBkӮJq#={^]\0ZcQve! %yـz$`ObQs]jݨ; \ATWWL wQLe;VIL2O2\o TK! /Rq֗!UZIq~o;C'b׊Y+V[WRZ[P_TY\.7)()7Fr#5r}v=}j dϭuee^BM$)ꢮЧ/?ˋ_ "b ;+)a%!s}&eyd f}ueↃ' NL%vd"b)`(nq 8OY*jSTVJ9Mi*!vm#!n4S+ N+-'Uq\yI`: bJa@/#&q9z<80D&c?&oq}2׆ʣcC( 腑VDT` [}apu/@R[M8ќ[J!G}Ypq=R-1jQv) C jS ؃Ft.X")(&sJTZU9E$ZٔO4d\lohQT;,MFr ׊ђc])vi'x)w VjmK簹"L"9W! PpƉ]K4i Ia&c״vcοJ 4\CH OZZQmՑ7 9iQTMz~0frK =PMMLtT(#bpHFӗD66ͿiMo?&&b״v` 9!UwTA&$x( !(~TʀF`"OoM `L5H>r7T<$H']EV xLiMo17ZOA6pv8/J oZ.8N!obFl#b0|lʪ 9Hi@8V`6Dq2.-@ias$Tɛ8/x2@Y \d8%BΑ%b'foلEcIdL^-toفѶJf!d#MRpr"ƙ!<[#2.J…! nI@aiMo17쒦\On\2}mDC#L8Z# 0CY8W *ÍT) $&zpbN0d\˹$/ U@895i9 +E KZUri:SrM  70bJa mM8"Ld{$o6gBEI/\^8 zdTdhKEhHɾb!`DH:Tl/-02@AXdmLM/ҴvT9e?%)V`Cr)pZ @. 7 k qL #HlbeKF֭hp9ۏA Y|%:]\!9?ח0!tT< 7 B 疦ؖȼT$[.8|¡%GQT'WFWãWJ=@q o)QҶ< 7Кr$#CK9D&c?&oMKelrFaFdkuA{5F'R'o AQGzFvj"rll,ߚP5`WqR@+gVq2 -y r- gUk[kIobW&VpE)QIڊJo ⇪( IZZ%lJ*?qMe|5 IʭQ3Ң:2xli cp8.,)\.1^Lo17Ws i(vo&12P-aV$i1CJQSVb%d``="b* QhфN-u(pr@[*hY^|* 7X!)&&p乖t~nq,N][KcLy'7ɳМQqb%bIPsqM D"-\1kbFBM8Vʂs<9A~( _T[2l؍Ԅo50O.4h!rhbo$QM 6q:4&7^rE5Jk #BDOL 1'}aR"!S%Ua&h*RB%0NCfABZ.b5Neg#E((ՀfB PFQ@^N1+vBVd[Dp"U=MW BCk\A1-UyUN-$5x6Қ }rr /7B(j EFG:]$( B ,Б4ԁ4@8ب+#D bBb 7`,KV8>J!68r-57'$PS2??Dj{绶kA?`U\ j,swi*rT-Z"t7 ۔VKW_G:2.V1nOhaH倳-L/L|i5]?*1=[Ւ1F H)GUy 4 M"b7X8s_elL~&eQzU$"C5@!+m ~:s^D y+Nw*rmǵodYEEU):_[i<\ ÎZ/kI= ] Ȟ\L6it "Vb`WT xa'pZPݩRxSɍ#3Ϳ7Jd?&)Li ;!d0C~oJpR` ?IbUX+P>/ Ց /QrW X# ؒ4/j5Ѡ;o8M7ԗJsDF/V?taueP-jSt ,woD axJ ӡ?m+rg"?'61M]Rz_ai3^ A- Ҝ/$0Zùs(NTU0wW$=j iMo17ŦW\ hUj F"ɡ6[%C6S &P$oT>(ȟFȣ3TV`Dq(XNQ>ɷZBy~`WPj'mioi'Ή]ༀK. `Mԣ_e E)^i$V)qMUdr!1 ba86ӣ[ފ)VpWtT"5،uer4s#3`F.Br˕ԑ@ $u7Ϳ1Mi:2#{P4B7>Q ,hHC\g 7r6TKr"rH#Hh48 x PFQAm3łD[1CFHTފP Ñ(u^_b_*?m5{8z huleoyG}wr_SwSHȔJ0@mQ HZȍTsw-nv۸)P} f1!ən7775k|-Ԥ&G_.߿2۫W|?*ũ.E)#|)u$͕RVᮾd¶sf$¹d*]m]uDsr+^\A)J/IuBwu!*!ʅ11MNpo7z2\M~kr}HgYQM! >zj.IqʿhW^'Y| |jKx<ՙRpeyؔ9MWSUwO.t.Iw + +LqOrq)r-v*pw-B/7 8Jl)TiٕXM/o 7%CgJ]^ B)Mwmi/NuPQ4؊`FOixF@DF^M Tšv@-u 7-BA*2\IOa *jr,|]wc) *,ӫ8ͥԧڿ&RA?0lBs/8,P #GQxh RRȖ3 @ ZIQMUOCi?ϝ>l̈?GcF̞>nd|۲^>{f6fܙ]U,p&EӃ/"d#{W͙1iL>&eKZK-^yQ"D * ɛL+o KɺNQ}Ң#ZPCWKe`KT s+Ir+tib04g1؆( IXZ90O)0Mh&+Ec)2 ?!|_J|A4UajK}n6($݃L76N oGG:Bή/7ؔg8P@讥>NKe8  _n"ƃ?͹&6$rZ`ThEbY :Wc .^ِxJ?LTӬCLߚ@oL j jii1VÛC%P4*Z ]+ ^: GzcLX[M:aWO~[nU*+ueӤp:v-eͯ:7s+aHBT/&FzEz#sSܬ:Ųe222n_}}}ZZڒ%Km_o/WFиo;ùяd%bj"/0QuU'ە}$ tBϝ1i_}ZޖC.W`zgO_y h@v9wsmYCGM/㩯ڷWx=Hzb8ce=) ;}sMUU(eN xS^ ,d.R!Fh(OiPG M$o5xQ%_(MqH/ȝ0 VG`MbA x!DNDO2p)ea*1+WJA' pD/Ztʼn\Ԧa `BSk9JEEՄ*aV}6K,Rޭbෂ `6 zpI !gZ+8| _Q[ķ^W'{=lMi$}-MOߐ6+AۊYh4vyԤ؊:?X ;qժU555_M-XVL Cy͉-x Frz \Ac^&3nMpwߨ'1nX,q_~WbH;}7^}aexX֋s5HmYJOՀoh5?gf  ]HEo8Q SSt٨uչºp2~O+o()T}&bVX- TMYoHˠ3 EY7*(6+e;E e*K6˽xk( o4ܻ䤮쥈d2LJ[ky%E~qSUŗX%HX)|qtMa Zkr ;;6{+_ls,盦3gTVV&%%555uRl=%%%F#@&oa3 Ұ:׿|rGeeet^onnNIIV^^^VVfԘYWWgԨ?lwfiן*6|m랠NO4 lS <}py^47MY+r-1v*58 W$==.qP axَw)]F]Xh~RTAAGp=OCy,e#NϿ@H'G!e ~iFqu-j'滗[*YȅrԻC}UE=ԈI9]ao|3͎TG[99' /H  PR'i 7Hڢ)[1{cj'c'IWQ8_ 0 rֆ79 ܀,߆@3[9?}?!{'5"- ;у|䱃kT:sS5!f;X}*H}é۵q?"/ŏ;g^}''^4vۯ?sOxoS#ƫc}w#ϟp];ݒvjʄ!LzǫOVS-g`?>x Ĉ&yԨQ쒟|| Ę1cy< 9::K۷9_~o&㓨ꩧ3lݺUӧ_ԷV.}~gwޭ+okkK׻˙O?tXXEP8aGG}o~~|+Ne_|=Z5t:sϟן* _mڴ_}gSn ~`QC442;dES>[΀/Ӗ̍wƷ 3aČ_~<(ۅfN1Oٹ!ч x 5BQ§VK;Ŵ:'EPwV*ݑؽijȭ(ž-:SPXXVZ RU<2^4 C8 >Ӣ:G hN#bС \m3SؾnŒI ?/bD?- >1aY?Gp3[.S̿~_z7LU+O?wg?!31+F!KBNoq\MW[lmJ̦Fa=[o>W8cu2 '4{zg=cl?};ýgw'9عOlҥE} ~k+Uʷ%Đn]ARv_m_m矽&?(BM+`b~@ܚ(]դ[Y` \.)ϰ]r Y1-P@kgE*O1LuR$)yDy*5M&27G"uyE>5ĉ Gޢ47y6cYWzѥ:ݛ,_z%/׊{v$YEZna^z-Az*Bm]7hQD~f⅐uםC9֖"pr~TmILJo}CaG < A۝ڄoN >'~;!:dUSׄK'>5po~F*Ջ'^td}yǩ77ow6M%?c=߆>yxoUcر7n|.\6z'x3ծRtKbs;oSLCO?m޼YC*n6 }{Gm۶mo6܆wI&*lL63ӧO?[o-a}# /vgBzP^W^Q" VuDj|ݙa`'N yCDv /eTB eHo qߠW__0m USXw&qoyV-[V- V%-ٖSO e$pd E(q E.o9ݽOuw,gߞTuUo[y\2Y+_j:F>7|l5D"O+FZxmב`,fRn~qM;vMrԿz駡>{yއ4e˖aYgų< _"gZe|(!Uv;33:AimR>(>ЗSKK&;I.er`r-tH-ZF_\>7/x~\wr CnUÌ_UGoz q]\<ҵ(3]㨯}p ĵW#/8'r,_M}.1Twm7^c޿sy|?{ƱZҌ;SqKSQ'Hw @kx(swN%I'0CM`Ȃh%cT}=|#[KK<>e:?/\>3_G ܂9Cz!_XHܑ$?m96 4D@1Xf(>4* .Wռi%C%i&IKƼ5"/*(NkS(/*klӈM`T 54Ԑ7"U G.$7AKX~9-q&F7s^xΉ!FD6ۮu.6i!Γ_o~vQ?sN=m*Tt/;)dx.);~q|4pU`ޭ$sVIiq1ڗ ~|Td>|$5q\۶gY}17g74o%FUkpG_ ;蔣Ÿ?^u陪/<DRG^1.aLS~?'xB!"xuQ`Z|ǘ׽˫5%0`W94G׬Y2lPGI\D?KQFGr̯g敏Ueٵ6m,"PWx :\r3vOԬzj퓵ice|tH CU?*~!&!Tf{ftd ~!@M{ykRtw5}e?:x~PGzwǥK.in{{y%@i̚(4'Ϯ: |?o'MEݿGT>1bN FGZ6=̈́~~[_hMoS ~;$?8?wSU}_Ō5{WĢ)?s} N+<7>i@3MxGuL3` P33 ~P#o7Lyv ƒi1`3-'SiQ/Vaq )T76q8c Y.7ޛhC$ &A^$SH ?wϒ/Sp3x=o5Ej>Vۉ5~z T.]L ‰}1giޑ85n_މ_M5u'}_SЎj)o{Y'%%W!:;ۧt/~"O{7vMO 2޿q7Ɵz[^zw`chzN0A-b ej)3#P&HtjeJ0EQN/׽߿I w>߮uIKskMBMW7%mϪU7sÏ!xXHkq/ߩ^b  AKJ~7ȋwU?n[xx/.c3J&<%:wl_G,i;?ܖE#h?y#{QX~p v60@g:8{M{:vw=SȼW'Ew[x W-7{bvXĝmO~>_ &0dgJ]}-3{ ~ޘ"1*؊r}h)'?_r|pS1He@#\V2m–3ڔr`mo\7Ѵ~5ç IޘHɷ CtP Il1-ē2O64d47dց̫)iUG4X4įLTÑ:j[%,ս{Pk&$P_g>~n__/IVlb)D>ȭⴭYq ?HG龖<̔٧άu/RJ x7}4/~?c?Eyruݷ\sc+k V勲k6>Ԋ7svO M{wƄ@]gzӛޤS0a Sq (&6{Yɬ\pzSuɒ%J3rrLc܃`/G=Ϧ) `T>:)1)Se~4T& R0ސ5^y,N7^tAضdMu_S~hg>SѲ{ٵec 7*ώ?~WL# g3W2ƥ[~q5c? #~ntTb# 8A_ ?X x^tE\Boy߽ewQU=+϶yQE 1q(!>Vz&W_I3e΃\{'Gsu?LC'ggJgg_Xyeoz +]#9wY+#nU/?7x3+ 3,|U+oKH'ï㿾x ~~uQ_g}bmމ__,;~M.Kfof 经KD9(}47A+pU8HΧ+}.\7[gu=!۝??rLXx+SGWogl~DwX"Y{ ?d{ʦM3E𛞚2>Lk`v\<o &/7a=X#+˒X. 6rbed@jw.b[S֚O򴾆|ʏtO-  ;3\zuW;WU<-ן_x엉Fc5_[.C7k+_}Sf| F.='=~.诮.~#W7.9wcLi+7ɻG~dc7?߽}S]wv_G.F‰zrP8ٕzoy_k񎷿e7g\…w*˫z\2=_yi^` PlP7 Z+^N~8II@: auccСSũ4Z0;80!@5 Ӈ)4) ga`C'PFgCrD@lG>TQSbGSjn-gB _̀;IY&q!TI ̾0W<~7$2cD`pǺVl_˨rq-~oPk΋;0#\T՟,^WW[GԽwU?7w>&銩zdU6_:2e7? ~tBg$pzj\zQl|Kc|}KnΌo_(bCY,@A\xdDgށ}9IŪOML7Dot95]>@M2nxGOS 2L*$@`H܈4͗@8Eh$Sy Sbg׺wo)&?^etg> ܎]s1i+gg3@A 0ȳowp#bÌ]LڕEb$OQ̨e}Y{s}k{j}ۺ9?<0(~XxC7'A>%U0FcP!.Ώs@G4O˰*`Q7?G*uL`9SiuRTRUS_q_xc]^Ɇ7md\x]-T?ڰ^}ɢZ^R+ @t6_2BkKܵFHwPlB?Ԓ0UCm9;k+aY6S߹ꂓ??.<̢m{3/lsw9p%3'VŞ'vv6}^gjgsK$㋙(S?,i` m?kQMLpp-$z !4^ [^т0e 7TB8ئ0(7@Rs1ah1V(*#|6d o!} 3R'P`HLc\k> +:8LRdHtj/V c#LMLsFMb`e Bi)z*B'M*eU`E@4D&ܮ=Wax+H"_Ғ2?b_-o/ǞWd9rbRgN)pzon?Xں]N'Td?[>GD SZB(xƺƚ3usR\~O/5ȭD\wvY kd󈟺WR(/T<#s_+4^Xh߿ VqgxՋ3=p8Au+ږ?e X[axa@& .RF&,L脠(5÷Gn "tjو+`$?%S$x3L&l-3SZA5,lb8Ey,'St>+*TNRpڹ5T m+nٲd~dŧTFӎ_o}gr?<,x̙?|(^tI'{'H! AXY?mz;zI~ݳh4xGu1g"4gsN>S,bQ|vo]]vٽ_diqG#X?Pxdp6] zSe= { \&%|{/rL>K!bgz̙Y&fr'M:;%F YDYNaW~ `|cc.Y WO@WXۋX,oJ4Xa|C5߀@Xa1 jykT}&߰.ʂӘ2h8ĝENqHo5@P\Wȍo%,ҫ%M8OMojT5?{IY|9?aH@:/@) Y޽)$1e -]Xذئph%o sYoWG\/Y8\F&o0]mي]YpddfS/t9Kv+Uߘ  S ;jKZ_n7O  (7X$H` KHA8q4 ނ#Ɵ0?wG`,:~B(/H)LqF.+50w$B*79t8+dV(!Έxd#iPlV1yJ*8Y.bC%\r`)GKMdF J__lL5\_&L9epf:)~c \:Ki?FibhAI2]<:b1&>1A+d 0P)m%[M6BPrl6K,-/ ߅u7W Clwz|ڱ#(N:` 0/a)L4CO!R~\~AH#, 45d4Pr,oS %:EY9_b? *`aˮ>x_ @dh XJGb/Ys'ep1 DW9̲%,ƉVeM[/2&Kd \пoA>!޿?/pN5l 7&Occ!7ɑ[:`StWH:]D5ւ 0iaGS@ @!O7nYT'Cq,#qȱIp Tln>xCf8rJʼvWb|ӕC]^E,vД3$NT-eX&&Aw(iL56A=ث9n WᣘAAAAAAy.  MIiABo};3d2缷H ~t‹yM{d fu}$*YDq ]~k0h h h h hi&ޘ*9܂sW噹Bl_%Pje͹)@f<1le$B){+4ozi3Ào f*ZTM}fjԈǞ!l9YߪK kߦYŞS ~C/!Rf9˛JE%XKMft i\?q!!o E6\!9 oa x5np;BAA^<.s ydʦ|6`%H[M fL=d.E [F9 (x~&1i_2?uJoX]f3's h8X": jjyo)6˱ځx#sкRH9{wg;KPi2 Ω ]MrLl {ğ纡=ȱn,Gx汎‘|%F[cZrG ) - xuhmbX;Jz*\TfaJ1 H[!SMğ8&3kXn,ASI;@ZY#r g[Ӗ&K3~^Aкp@n4A@k6/S8^+8ď< &Oܣ.xA{*Lqy3Hߘ tbc] (PS:Д &(n=N-r۫cwyk #ᄦ PMQ p1J&\"/Rb33r:nO.b!61~1w1KU)xc r%0EXԆs4~.ԅSx7ay3s wӨq26ߜ/UR⧬Q"OLmz [`c^Үc @q YblQ_aM}7n9 9r9 - x5`z*7p8oz#Gjc.w2׫y3Ƙ(5Qm{V/?@~&pkfTݦ@;9ܩ ٱj`,lM6eEmL%4FfI5QnKuvs ic*oᤴ1'9T2#mƛD*Ms7k9ݦ1N&Gpe|R/_i5O¯ (ӧ}Ikv*|Cݚ)0页'BD,|!T@=e)C+٧2vKˏT]9šeU[]Q/De"ǁe!o#yv: dJf7ɭݘѐז?D9Xo 0  M='u,cuAwl[C,z$uLdހmm&:#n:0 f8lq 7lt\]%t@a=7o̎"„1hO ^aS*f2vULdC&*a{TR4")-/O*o$zPW3r*l{;*Һ$@[Q3fΠ;NdjƠt,U1#"2z׏1!P~zڵjG۫/无j]UzqH_)EIcRڿ/ӑpYY%B|gL@ ʇ@تCog~\WY*ULSG)‚\ 8 A~y xo{b.1Wfa!)&jɪє;؜m= )M͊o ko 7m ˛Cw_N󧺁֜TOMEHHI D+m\Y^o0Tvqed \Nȃ${! %SBශ*`FɐT"<.B`ͣL#?4안/ͧ#vOsJi-!ODƪHJFk4NQ #I FjHLĔ`$Ғi[T̄#ug GhkK$=ezaFb>)Z>h[䬉R}Щ$|4|OkKLGT86Bi%t_g}VcTR_Vvh%9v*Bh{`/fm0IeH?Nk!L̤^[QV~qZo@DĔcsS=#.a@B𛄎V9UG o$|hwxI2ɻ~jl0F ," $i{Դ7 &DTwLxsNU};VC$1ʱBXSDK.U Pm6r 6B D(;P`EbegR޴CM0ʃhMLlOZ$n,8 C( TZ,8 M0͐cu, ~o~k!,dq P>tHiTD~~9k#%bWOgEtMU,el@6$%LZ"t5҄gIBkNk]& aP>a2Y1U"giLá9#77B*a/7i&</hd:O9viE~mE9?sZT6ٽ68 {cHB>aRy?|0)kO o%CDR #oI+UϱSFhi<xulcz~7[m1lL{_ô+ oX V2 P ޅJ/p20SDm:\v[ ٱM8"Z2 ~ 3ԐX86ֺ".w3Uޝka1%zj*Zqq FXDgξUV&'+5Q,oLx|/+82M0`o&IjW9Sd @-%*_C?!"Ks"\s|+U);PZzU*:~6'^J*_rk2&)ϗL%~ SZ,q9v#_7Fi@({˧ y6^qpD$0R#WWK8I+rZKڍ֫_vULo vk;Q7X!e{0%8sކx׃-#y,7na;`/[~` W# X&nGg@cUA `\׎u}{A F=2ئ^LvNɡ7icᾦB>ʼ2fO\wKJݵ{;j8'L@C>YP¤zIVmƢ`k`Áڽ.SoHgkr9m`wѿ+&%9 ghg8YbN \ߦ.>nMDI*dw^Y2NB SNZ`[lLpce :BV]z0 ~&:1NfM bٍ {A8 II PD̜wg:e @ y ~# !@`j9cВ Rbv1 ̚7ضFfǁzP2Oő7@PK~cэ]3@SdANϹa9*FdYPzkikgӁFTe"aI<&'Vj6dY߶sz,rÍ>Bl ^A lC:h h`uZX+{ MLk) #,=evC&blL~| ޺%Gg1|lAh.8xc0‰ xsn2^$1^039 -_zW,`_ X, Klܻ.~*Z4M] 7t%&B(jBJ5TpoV`Ģb.Qh$Xn "5ƺ M V-3rݽD.m#&Y+6ޘFp[0vqES*ցJi9&tȍ># S<$0^b '%zpF2ctS )t vE|ivHDaq ;'޿?`<׎2z_?3?n8%wjB`ojX#U,Q]<&ќ9ڴnoG6,NtV`TN%6:X /x3[uWmQDfi&i ad6B19ߘgL sΰQzB9%̾ Q`e-X*@!XOUʹxH56A&M9ce.u;SLqn.(P5y18~0sa O){P'f ` "vYcpȬ"=+*[oDd_$+#4KtHA7f͓W&KclߙjMc6&XՒl-r&$Dqэ0K (OfsMIBi6NQLWsqnM rǫWn BAKg6l79jiŀ,HlwߺQ޵@Su4qa O7q B@30͹A_~+(oL`5ug%UO匶k]?ٙtU#(|K\rXk\VO,@'I50P ,)#pP}j|aS?Xf7h! &*vꂦv 6VA+ȤEBa w'Fr-Lk?zV ͗W^R_Ɵ00T?7)ܵ>+1VmMq2o2 |֬y*[_ށ8XKYlMumdQDLg2-@aWj#b4Fr0ll#V5~qNFQ[_C6 $^Ŏ (7 @Ø&1AC̡21M݌F }@[#o'>K0P-LGaj٭k`jNPm:buX> ).a6?=0R=[2-)i{1'0! }C`v#ëW|؆i3QuS>*Wl7 AL{S)h`}&V8I1"xWid;4s̭2uJoҌ~~Ri ToGP@5 `1៰G1B$3Ӻ|x FF) ߈KUmLweo8N?DA?2 DA?2 DA?2 D7o @n8Ic!c <1NAp{~ߞ $;t7Ou--| -#=+ෙt~5JoҌ~~Ri`( HߘT,NǎE"7;PٍRܣc-yBP{v*T~I;!TOXJ?9r=iOY$#+56mxN xlDDbXcđyO5<?M病Lj ^z ~xa/O)*cI)䃌")T-<\IՓ"UW(j8 : &h N MRvҟF=J*hhD.?% SC{2|W6*o?T?43:N=dDD,< SHR"'Z9t`kOg{B]V?X@k߰±pNf d'+b-ή"l6 ! &ߴ@8JۡOD&7T UFswrJhK݄h] [{Ur:9A?6lx ʙM9A&KP`#duyh1tv2M~P '! !ԴӦ"Jx-0W /(-Nvvaa2z_dVɰX(t[78ͦĂc367o76Кdߌ; 3lI jo~=i,pP~oOa L*1%𛯬d=rff iVi=^ ʧ 9=6Y?֍j1ΫY?ޭ$%M?߀gpoXs e,۴57Y@jb0xVg,LS*m.7?m>zЧ#>۔"R-Xuѻ?Ӧ2*MSdLIj1O[>q ZA?qo9=ocapokhL l.M,7R !6bfiދ?8ʏafIA~ LG?ڷ.PבtJJ35 {7|[ ՝ػuO4eoxK18%럂d4>ͤ0Τ'ѳ>Pס]΃Fn޾=YP1 c:0\~|fMV"o[OYա8gO gv6ෙƐ6?zg:>ۡ0yСɮ2,o1QqȂp&Z[ #Bo/Ԅp9eF9q|lo3)1!5JoҌ~~Ri`jXڝ1*ZU$!*  ^pMo,5P~!7`y -=lo ta||o~8ZOC9vOrVk[9 8O6IQx#[U\6R'@@0g4d~U؅e|:Z摄hmN3i7b2ƁP!rT߯;6&-r|ӘV_ޅqR `k2&E>2)ǮŔ3'Rh2N%(=2zIR2g}jQ*aF}3xƙL6RuoVLh3SLHe/ĘVωe2~!*fkqL@ &c|amTf*(Bp(?y6Fb#M5em*?ؒX!JXUZ#_iFkM"}Ò^%"4R9XAeⷽ=/0M``EԞJ,oZ85 ַ'8 (\%Gv8CA=f2JLqf)c 0R_NR#2ZB.7fRrpVeD+MJ*UȡbLۓFƚ)NY]Ie*9΍&Y!McgjS W6DŽI*gVSƱXiv8~9ƴU>_Z]Q2UF[b՘JFuJ/jPT*+""cezq;aM2ª%'|OT{pXkU&(m_^+*BX{Aq)_`x{1)DƻJr1$ ` Są]:ؘMC$nS]nl#Dءq`FDhVcsw08J})=03'iicjKV߿Jeˆ?kuUJUF/id(}T(11%f#c*adZ_ &&cWEL|6++_ ѳIe"8NJ2"^`2Ɓ?; ]2sU4ڡO[uGX9e嘼re|bTH*l%Y,e(ٿHM [?̽:mTYSL~TooS U6#6ڜmid%MF9` ֺҴV%+.mXf-.r|}Z_`nH~~ZxtH?eF6Sv*~C NSrsిa|Sv`3U~Hozw37Gfړ^?2zjMg:{O9cw'׽iUz:r^< _Gx=򼒶6"cw'Yifme0=54F 7]yA0^O%56oSKbyyQIBP\oz9fK]I~~Ri TQ~OO* j(k\6dU 8OqFM]G)7x{ ~Йo8<76slm=}g I7RiFA?A?40o}Co!x!1 Mꔕ0Bi o8KvLp ]/pi` ujA?A?4F*(?''^}CPVO%6?`p[xNMt xbTgӎ} ߀j66o7i#I4W/j)պ׽o23Hd0" <$nvq4s 1H8ԎŭcYTFxOچzݗY@6ژSic`jFʲjn`x _PFƢ 6M󿑿͟ŝutđ׽[1=u ag@mGS>OhcFO姑e>o|rLK.Ǡm.VFc3dhp37:HN^9yvo$6sO姍zm1#}Ԯ +Y^a]VOӾm!?[[8_O򽷯fS +Tn?dDCX坃omgvH}&y_}08ycm2FaabK鳢;|сc 3[v#nAE&r2̒b4lJsUq1c[IdU.6Dp,+J,`,K-\qvSJc6%!;}uwob T014M!բwmWp+$f$o9[&g{4%rϽy={JZ55?l 3MôG]e|kJf/@m6_edHk4sXHӎg Ňx:8n%gU _v^JDp,o {r/˚%PG{Fs/gFƟ"C5}?lM;mdaVї\61(G_4 ;p:|Pї]e %zFf%zr P{*Xi+`q8:q۸ޛZ6(*Kp}lklS6lo=VJHE_KĦj"{bPsYm}u@aڐeWTfrɊF w,}mtHQ1zqhoq,w.]`lj+?!YOʲ{RMۻowW<7>c\f=366>͜L*TVA%-}=D~e-V)r[ \j}J?7.M,)iU<}bFIp̡,}'rژFxy.l"8eqI^4^FS/6"N1D3 '\m"\)9OdOʲNʺW|Sz}7z<~ov^{yly5>¸Tt#-匟Miʏh*?X95~RuIޘWs@6:~::fa _FWg6S-_b6Eds_|CN\Sز4Y %}KƏlkb#wQכYm[C)&єE4*>1cc6ڠ#D_QS1沶tK6Ҕ{h(uy<E[lxb3*4Mtrı2MFHVddOFHV?):#L9W a lw {-ۧy;]F7?em/i;]*u}o)(ozȳFl~74zkաaQ Qѯl&BɩX۠S*3Xm"2s+mhR$w_PxT^6e#˝cc1('*3ddOFHVddũCܼG+-'s{4:oF$r; tn3{/vo?y%Ғ _C[v֦]omNyQϵdxjT_mgAO姍zm1Szm|Y {3\zIvsnttmvō,ۻmVD}F(w[~}p-RS7]ߺ/j;7YnsZ6fT~F3ީF6 byS67֩gKI[E߾ۺwr431[}FڶMWwxZ󷶳6~R&_\'@UsW1P6fT~F3ܜ!4-E;ogoo-\lsxn°Wsw,pd?eA0U5؇꾄E@4Kg6y.Z=S8dY9#c `v=[ԓՙӵ;'G[OF,0?},plok gy'p噚ujkvAcϾf Lÿ5D5\[&ryT\Go n!)FWR¶>p4y/|Fo'^5842\ VL$HF-oxC#e E?:bQkjɢ:c >wmfH`Md+?%'QSlr$j&C6sK]p$o *n7 ,}p͔n);>-~z nmrkthC^x"Ebnl Qk+/ҿw Z@ >'3鋧rftS&S``ⳅ,MPIs5ϼEeOm9Xo^Gxf ;oY:0U5a-RR Z و!5ʜj&i*-ļWW~*?m rm,kƖ1;/nOD"oL]ޜ2pP`7H_c)]p Ge)CmgmH}.,sEŇ˶}::Zn+e Eh;# Q Z<}26%զ++?Q4beT4 I7^)Dg^ӱ/½ۺ^Run󿍗ЪogxښMb>gT~F3W~*?m LPxyJ! $olon.d<7^{yJGj:HۙR_Il^>oW琳jW׏8,]DwPF`8n(Dm6P61X+?N6j*Nd+?%'Q35~ߘM7ffųo cae^2.- S9[ʗco|yB6}D +4wis#׏8,]d2qF 'zl1ZqʶQSq"\)9Cu4 ki -}=vrn7F2ScDRl|8_*բg[<"2S"}* _/|c*ǽYXt 8mf"jK acnH_,槱V@aC8m(!Pr8m Юl̊R{91[S 1VjLgjF[m-[ϖ ,U`ߜϳκ=E]na<# J LWynH(pV$DAb& ̮)f"^N|5VYYmLEPiAIY#IΖ#{ GS ;^7_惃3)s#mg9' ;tʥtm/g꺄]0[`0Emi%gF yjhj~t4 ԥx߬moA~7A8Q4b ,n9623oVF-16߹-iaz2v{u7phj3u]B.-sEŇ˶_~l:jiEqTlDƶR}u@M-fl 3h3?m~ѯ"gcl;Z;PF+"+06c̊R{9u<.6 Xee1B姑+'eYۍ+wOg߮ͥ{<0 *Mi^ޮz][`1gER-ǟt5aZ߳tZbYT87`rX*0||NیƇ&q,X PFC(0RVvMq1+K8.6 1FFCS( =oo^ͩ^7? Ng0[j _7462::>hƳ6oؼ=_(үy:kWuS0PF`8n(Dm6P61X+?N6j*Nd+?%'Q35~Ȳޮ#yKP5xpOL#:k4,*ycOא/ټ.o}_(үy17hF#׏8,]d2qF 'zl1ZqʶQSq"\)9w?\8ߘOg=b.,,7,^÷p4SvYH^xBE$ZvH}6*?6ƌO#)gnÍi{7XEe*Ggؤg8 Pj#mcccیMWVi3 m%bQ6@ ͯkV jkj1wgmcѾڢ-{hoj+?!Yq"?):b&%)0HMS/Ã7^tpg|v!ɛ67K8#,k)Vee17se ֨`({"6HhZɦlZWbώ08(3h3]m~ѯ"gcl;Z;PF+"+06˘beT_es(_oٖܦg-?7VGF(Ljl+Wbώ0 1;wp*Ax xh:ƶձe4 jA"kYmc<+ 8iˣ'jJڔDM'Q!byٷ;ҋCųnkmo76 [H#vxZt es(_x/U2}|Sg ~0ƦwGE_g̢¹AWtSsf 6>4y,cdYƢl2B 冱2dBkj}s\d~UVMI^6'*3ddOFHVY}wv+xuηW^|CFF7'\󷶓;o}(үy:kWuS0PF`8n(Dm6P61f?f#X(l&*-w4682i +6=cnl_$Yo~qkl>|qk=&}F_󷽇ߎ^)hhh}fvoo)'BRyԎ ><#׏8,]jqe4 F~ =c6m&85vѩmrGh܍#6qݰ"l3ƶQEe[K1lx;o)y;nl+vnu,oyޟmk.mkwWn-^<"$H.J]{? E?C:bQKlG~1 S!},s_EbX9mP#q PFCh8d! Ю>BYUѾZ56YmY4N#V[ņe[5{uokV=otze{1xJ?Ck,b*iwٔmU}Z0Z̐$fm;8ύ~ <N<,ً ;PF$f#/M廫΋ goKGߤ_xPmz! l!Eb|ruƬcYkNͯ"i;GjZ6cŶ8**e ־kVz81o G(+2*WV*cΌ)zXdbò %(ro~*k(,&楇?8:")So;yiolݰCnfJmWlówӌYgDPu~~a";,?4 m8cMMٵ㶙 8 qFJ r7{4iwrϘFʹ Ɵ)'8ޟ34Y iVG%ycbҶ-M3'o3! ˿B7^9%m_=A>OhcF*1󿱥Dvmk1MGjk֧YDNf_b߾Ҷ;]pie0@m&xgQ]rqu_}p.kS0 ,?4 m8cMMٵ㶙 8 qF(md17Nj+AQogw_f߾]{v76c`^Fۏ˞O?m 7_7&ahhco)XS B_G.Խ!4}) l,]dAk0?+hf<׏8,]|,WW١?f#X(l&*QɃgt:1fMd,UXt ,FwCoLD/O5o g_Bkh~S6o99WI]zfɩ{- E߳m%6jbmΘĔ8,m~Iec紱V@aC+His^6@ o#t8M,@be%BWEjPPde8mXm s ˶j2x̎v(Aq{SVYSmLE)ei7?e#_1y:RJRu<_~ i)m͝ώ@;ںW55 TiXLƔe{id!/?33${"6TY4Nc˦l:Fmjj1dG>Ab weqp*Ax xh:>fch" 1W"kYmce+ cn14 G ;h<1VYܛL0?>Md#SEb]Z~!/L5QtĥmKس)oLY|K_9z=:X{ka2/ӘIen(KhyߎgX[!1$䩝рP*~YRadB Uwmƥ'573D~RŨ4ȔyxJse7N6*9Oޭ3<KhMΆ_o7쿨7A5p߅o,bYiEɟl&BXFcjUé̓# Q 1;<7U$ 8tP}_$DAbƯ|EdcbPW@A5ch`Avxḇ!P<7K`~2},VF&]fyEvݗwXŞ47%x+.#Uc;^%a#s#C_}˨X N?9 g*=C'',hMG-Pk=mΘE~:ȡjX*5}Nki6>6(`%f}u&]SkK,6(ꈪ93T̊ g &k+`YejdYgs'! /0 1 $oFnyEҼ=j1/vEDqi\*JޜxEE$Z~8Շ߲˫#4N3fAuS0PF`8n(Dm6P61f?f#X(l&*QɃgt:1fMd,+]gI,jcIrFG9\ǞeY—<)8KS^)W $B~ l܃ƫ QgP}p.kS3PF`8n(Dm6P61f?f#X(l&*QɃgt:1fMdG[nqpCJގgY߿1y/6 o"r;7d^+~V81JHH;SycT>g?O:葫[<"mS>?`YKMS2a;njޟ)nY c^4Nu5#gO u"ZPOYKCqmX+_J{d)hM,6:3dA6c̊R{qQhPqhrh*AQ[^:^M+gO=f,jc-t<ecj[YRYIlrt37j3!:KP DYjX44 {ilF7Ƭ*`K({id(Z9Bc&neOAiʡhG_ף;mc,cjn]p]$MoN{: s$u9UH WƳ6oIfc~JA ~-,|4 mDm6P61X+?N6j*Nd+?%'Q35~Ȳ~V ;/n-m;KM߿)K#.7:Hۨ)2-kk6֩GR}u@;Pd%}e4 &BNfecmD6JSr5S'eY[Ki7򷃧V ӲYow /;7,p4r!}woS8DW~*?m k+?6k#eY?]ezw'w,@꽽7FG #%aY|ǫ0FG߽}mgb૽!{UT1P6fT~ڵAu5Kҫpttvhܛ'3}yo#ԱRClSvU?5v-qDWiT~F3W~*?m |YU>b»o7vٸuylc֯n}ە{gwӶz77zS}tvoB۵6~6˯zWG@6ژCvx |Fvz[ooo#iTo#m{zLږg߮͑ѐ p;^9X{5b}t3T1P6fT~ڵAv4!y[z9wvlλYE_ 7ۭY|@Ofo8}D Wr<>1ǶQ,NO_,,+h3N W1S(|,k<=s)lyzHޘ؍@! OX`4 d/S7(kx $6bw_1 BqH-KLZF2{úaTF3W,> nrJ8ݭ} c&.CafjSr5F),k=odk$m{d,0%/s3=RJgwl-rcϨ՚M"g9z\g?4`ү-m&=5,[5L[[+dYһArɡm17G)تԨm.,TS(T~igvh&CF,㕴$=oEys; 2͛Ҷ*ZpXbFg1Y\|\PI~,]yBWthdaG l좄DأAı^ ǖ2+9̚7z1EXbK6RD8ǀy[^imghz::zjj}S}K]Nd!-vio("YWOcaXՖ66Pthۅ۔m8vF(gTY 6FѦm$WD6JBjʀ7ޢ-uv8Y#m>~94^^EHF?蔿stXSI~,]' zQޣ26YƚEr-6Vػ@É8j+ZhF_!TXɊ_$?NVoj)MIzO"Axitשǯ<򷍅5ˮ5yr|*8a姃zv3ԽC]K3>N1ĊZ ^8|-}&2˖~nSK00XVgOz~{i.+D@[:i.o}_(үy:kWuS0PF`8n(Dm6P61f?f#X(l&*-DmF@4Rg e0x!}U2f;#/"a8:z[y}o[֯0 1)Sԛ^IhchrXJ$WGȽ:jqqǮrQW_G<qXqe4 F&BNfecvm&85vѩmҲNF}l4 }pM#uVϸmoƓ=mizs3~(umm7H|;\}웴˞m=`) 8)ИM%K"6ϑ.K i4Ͳj2-cE VOXjqqǮf눧;#K?.fhqܤQhÉl"lb̮5TA]GQ؎3:MTZVÉ6wCP<}bjmҷmmJx-IҊt1,C^~;:y&),)|7ԗ?ʱlAWQ,Jf7̢MvQt@El҈]m.O]`~#W6u@|>O_ Y^n??E{~{뗿0St}7khs<`4 9xR:us{;HBlS f%[Y`E~P]2P T*2_|fcoByg( OFOn=dLwY{5#{b UKoNIƖ6gqMϽ|ȈB?[*D(G\VV>Y >p4(?e7sG~89cG7#ү4hM6&&ZCqLqk8SDe5h}8?>16dYdkJm/RL(^ϲ-,}<{xp@ BZK|F{Xf#|/|‡{og'AkAgsG~89cG7#ү4hM6&&ZCqLqk8SDe5h}8?>16)}Dv>^m{qnnl>vtBehjJ^ϤoXv6[|^PI^#8_ ɡZq~~a";,?4 m8cMMٵ㶙 8 qFJj8nG(6Y9?olto7IPwǫswo.1s/k2m/o ! ۼ}qg꺄MbWQ_-4Nuֺ눧;#Ka?.fhqܤQhÉl"lb̮5TA]GQ؎3:MTZVÉ6w<:FNiAQF捜-ȍ##ycK_|goz@oO`m<"oWk3+ rp"y#m#a#Oヷ0 yٷdt40adchSqIz;:bU0Pn+?6ƌOhcf{GoJxIzsdtl K3;F'1ߐco1~!-p~Oo݇Pk@IT~F3W~*?m k,5>um-R5>c{4SzzB?Xa1no4}_90]N[YT/}[;>CT~F3W~*?m L ˢol6ƟYioNKc^5{5^n.Ӵx -?HjvmMS>OhcFO姑7}F5)SNM.og+;HGJv<ޟ2 +/m~k$|He&Y{ VhEGtdU.F+%ցe؈5̊9jKUiAQ NVGͥ|#(x/5T%#KOc74a[?$;[Q$VGpRq?卿ѯѩ5MGV6FpsksYeqX)EقZi/e&,qƲtUl(dk|\G7wem1rfB .EXTA~cs+%P-5t<5T4 FZ7E764[ɏN%#sFF/G[Z7_ϊo=z-u|V/T~PI rt3})~J26vJ2ʈwj>"K7}4/}Eޭ29+F3Ic_RVnb~*CIPYm$8h9qQdsTŸ ˋl)jSr5F)73eqHMJw#Sj7Z]x'p ۯoōNcNG?! ,6w\");o)XSIrt3})~ʟKklXo_QoYBp71;mĉK!3UYc5> بy2ƶ1N)lc4XM)W%hc3 ̪"N4cL6!Y,lMȩ>~; C(y}V綞HoGlPO~` -c _¥Cj[vXIrt3})~Grf Vn%2Qcΐ b 2F(}Ye8.feі1[ 6A]qYc!*Zc4UjV8Sr8.US(T~ir~R/+~GL,p^C7s3}qz󍷥t1 +/P?%KӉ|M$jGpRqT~F3W~*?m L6Roͻ뷼Bm [>X_βBm{z*ZL<ޟ8ON`Mr@fSic^mH_10ȵm[g Kݴ)N^e]MT9eN9R;ƥ^*ۇi۪R*5t+fh"rZ𐥷fjeXG #XZ~|DGQ||DGQ||DGQG$fg!_9d%&a)UI0H[|c%4#76IBZߜ`Hp)We#I+DֵНa&\_w-Pc.cLGW#Ѡhe-bp$fA eE ֲݚR6%'QSlr$jZ~ȲΖ[cm7k)Qp=o6=_0xRNOݘ?d1=oJculгT{-gkVh(M_ cn"f75=Vу_-#PY+cٴʦ-Wi쨰騽T0 @u09*3wgf16֔q\erCHDe6lh/9YƢ}Ր}ilZ51Kl *k־k} &c̴mc}U6f|&wF;|ϖ)=op4u1x ԴBJKoK|Fγ}K.i讌6PelňlIS>8[:zl|<~l6Pkf"jhl_jMei,̴E˚RM0e㍵}Ҕ`ZCi:|@q6j̄SZJ%6g/:Z@a~"T1JqFAb\"2J(e6L۶-6lXee1B姑+[1ߔ|KK0""=o'$r$oSPޙ!#a o:|&b^.˜cmGzqMfzlھMݏ8/9FG-6$&VW{8cSh2_`-;* n(JzEZ26brV]bv*ˢiYeM1B姑+3)={r2"';/nF f{LS9W{o2!?צ7县G/Wߠwhh~,g6e5PS=k墄mcs+y0~@X+{l:j8*/f"jhl_jhʌ}YS ;69hcXPFeC /99(3qX6h{]jMU*cr 'BaTYƊ3"3<{Y+}1Ӷm e4VYYmLEPiʩCN?1"oKӴB}W>cޟzso,} ng3R `~ā)˧eZM[mr׾:QQda`ChPwjCQ ,LUGFURPE 6хP86lffYѮ;pѵ%.{cXc)9,CVĘ!6c4Wc}5֚UjCFc1f] rڱ̪M3W~>~x`m?4s>~T,S^zSF~8ioN4oߺOɆ5mNƌOhc;ڨF\dY?el0040=> >{S򷣕4[wyni.*ci.ߚ^H:zkɾڼH_}U~F3ީF6j ~?$0?Mf>%Kox- >]WR4FޱbL?)w_lOhcFO姍]dY,LOi)SM+/os56o:M-*0Y\N`MQvu_"qq|}<~~a", ,?4 m8cMMٵ㶙 8 qFJ r7{4iwrϘFCuMXU)/OymT6F1nu7/GC}FU76zj/kC\|rZ6D5}, :4#EYS "}vjSq鬕g3j#׏8,]ăB\@͂IІ=D@Ę]k8n :`gtj0 wȸMcv7(mT~8cz/~iJ.xZZ97mdhf@oev蚫[xE8\Gu1ޕ֔q\%qThhT66Ȅ+88 k]e!,m/qrѧ־:QQda|V14c`:x.JϠi3vncdUŢl2B_#PZ8F/-cqrCZ#(2 TT[8md`u <*6lk;xv:ìjc*J!eYi{||79p$o)yK~s뜮{67ojmlurZ;5+Xq{M^tS^6 >QZ/4VޣFrAe6e(}5EZE4ʻlʶվO}uO-fhl Z7Ws "PذnkP Z Xl3dSBu#2J,j uCB(5?js69kwt@\m2Bb1:? ,n{%Exm7#[?{q͋;#Os#{:7b{5<_qMR`U2U72Zq&W_&hhi5Q-aM-ϖ4{&NUn]qb|Q;tP'vRζi{@wr ^sF;'naoOW5ƢqP hc4XcFA 6 x{/ElbhZ!˦lZWb̎0P10ssWAx >Cv:v" 1,_%EVJcʘej"4i %dvǜ5l;xv:`f`~2MFH,v>+|c˪)cڷm=$ycR'pk |;ZlJx퇌hHK6sϿ-|][߲m6RCZhcnuuE>qlc@X~BϢtʯq:bisu\# Af,킆n+YE4R6@ ͯ4Wc}55ƹT6Pr}_j6T1G(emlX*cx}.)jSrb 髻|K2i 5sl#['1#y297i.|clVSs|mB:|뿃d"wmqǮ}ʮ#׏8,]d2qF 'zl1Pq6uuGa;6QiaAƑqO8nX_Qscۨ"qޭ3N6:F?>,o {r/˚%PG{Fs/gFuivG$^~QvuE@4}:)xEv?.fhqܤQhÉl"lb̮5TA]GQ؎3:MTZhmqdӦ1NWm{6*H7%Cc#;d,v})xx,V>ݘr緰!ο?*_M닼g9z\gSic^mH_Con!7o[^0Hژȗ)D0N;SސM&yzض2C9xmߺ/jk6ī?_ѫ(үy;8OwG.qe4 F&BNfecvm&8!,k)g_-kcaSVWpb KS?=' )_{ޘ .Mo$o-/-6/~=HQ<-J fB>3MmñM 9-$Zן[052'j"NDƙcO1]8Flbm6Qh(C4֪96B6N#U09͘}6;Kt3h~ڌš]m%hZY(!UZjZ8JNok_¦y"a2c4䘣e&WEC3+ΣocV 7;qf@. dX;dy6Mo!/nsmٍ]?;]|Y裁Pj]v-A8`+Q17pJA"ʢqkQ'jSk_S2;T;T̸3]m~ү4 8ێP " 1Ƴ]ccRƆẑjYlk;1fBR<MI|wG1twy4漢{7{~|m,]m)|6Kr *5ϵEyA \Pei3\,F 㫴A{6Yʥ#ǘZ4c{D|;!Z⧇On/49[|?:i槔>-*Tyzzd^mϖ:6yopM:hw;q{FnX+= #4D(f2ŧ mnl:j8PVm3LvA0*f}c+ <#>XcJQ%!"3QRk4Y1+!Bc6Pp'LH1~)T"W Nm>H7Ow/nn7ko77o+'sݔw=8ߤ.hX|as-rq{c|IR6 M*l QȥͧibB@{[7Xt 8mV14cƝ`:x.JϠi3vv1,cQ6@ o#Z81o#ZemcѾ:jQsjH~s8'մo=vwћs8ƥao6#=cSohˤ"NeTR߲g[yr9.4LǗkʿAAo))xEvfhqܤQhÉl"lb̮5TA]G 8Tqӝw,{o9Δtֺ8׏8,]d2qF 'zl1Pq6uuCHRNwV񓲬LƜ3O4Sҷ6t:{9j nӶ,",؇E>[vm _$Nw#Tc>OhcFOʲSf*C;]"m;?d'{|=7zN Oo-isNWJ]sBoh38}sSÙrZq^0PF`8n(Dm6P61f?f#Ap9=x3z `ʼnD~ߘzhwdnF=]y͈Dng5ލݺqvB4~'oVZasc`nskߒѠƖȱ֏M2DXdL)eb J4N6J *눧+ a"/fhqܤQhÉl"lb̮5TA]G4r {gA Y-Fv"r2^,ݜ>=]{qcp1KnQgm oym_o=o iMWt ) _7ݒƴ'j" T3Dl`י=+%ȗ8T һV8аO(:tQ1FU09͘q'NFYKt3h~ڌš]G$(Y(WkV ikj18BU6# ~E(1G}0fyp0>Q&#$yα)Գ$ms"om;^ENߘ-u>a#m&]p+ dt;KB[$"'lRrD([e.rE|J'بxoLiE44K{!խŌZ趱(PmT[ꀚZu"a\ϥ__?ld1 Pn%_@)<$Ddlbjb̴M e׍(e2PWYPm1;$ZtO|P,#3Q6?Q&#$ܜ!4-E;ogoo-\lsxn°Wsw,pd?ey2/u'ZUPel3G趲T1 )}e͵]Hi@@Ԣ]5.NJ\}P^}ݵ/ 57Ɋ!ˢ)XyޢΜ9Y=z2f!fc#;][}>Kh>/^.-;{o^^DMsﶉ0HY~M`&*u16x!ŬVE4֢O6d}}5֪bɎ0FCi+ <#T C/!"3m<۵B_ ‰1PWYPm1oOc610sv%1{Ӓ 9SfjR_?#;H u]Jΐ&%yrydfQߟFK.x4גcSm%[cGjpD.5vxJ>Dy<>᳊23DB9OG-sWOw.ڌ )el_mxkș#18BkbPc -(r#1{N&D*(s>G6ː^6~sL6'|/F?m,!/<5ʐ/omƌ Bm7N__ 4NSv~~a";,?4 m8cMMٵ㶙 vCa^%K<tҵ9Sfp6 5b ёfͦd8jb3qXڔU"Ɋnׅm@8k}]Afǚ#6e5c@0ٲTe=1K&"cQCiVYS醪grOb(k㇗Lnog9X bU,{WI/Ƌg)8#c)G[?k-s=K~=i[ED45llFV~]EF.@0l_2Y6F>7J .v]e|42PyV /c,:'̘R{TxBUaˋDVFm m#qTTmfml 1,G,#XSPUr((p&k6}r77m 1R-&>"yc/7~o7bx $ltp뿍joOE^zl>F9"Z[$RuCɑ@[Jhu϶ɠbs19vg٨VLZFl1*Fˡ4җ)mT-%Ām_ٵ50A; 6@Sڔ2@ U13k@%9^4kqLEUq?A* a{j|D͵O1xJ) $oo7n/~uz ,g^FQc^w"OAU Y6"ZAE5_ zG2c.ؘLYUKsy/\qQxqT y8CJc׎YWTxҲGzjgZ|YmPec,GJWEUG& | \5kb̥D 4WFHV6~}e7:87VͳpceERʆY/ é?wNܽ˿=me|ũ7`y}56V2gGi2ˋD(ї"2G 2uv^E7m2Xlŗ D6/P ܾb;mke\'BaCxBQ&^YQZcٚsdh(D(Z2^/m*7?A(!d> &Qʟ? J~>Kmβ/q.ݥۍTa!d9WFˏߤZ-+5Ez|'BϤd)e`)[Ŷ5 8"_@&vh&_ {ث9m6˞h٨JJdfNlChb02|2^rı&D>ʃ۔Q9~,6sQB Y6sq(ME vGѲ]GڬԨ(* R3j6~g+-?ͽ[}đv ;lUdW_rκ6Enpf@qmX0_۳DW.HihFg= , o$rO˽]c3)>3`zx Kچ~]: ,r-$|He&~j4~j gƌOk{6REC2{'K|KPwYt1=Zv;~:*%M)2rn`M#iFSc=5fo4~:HYlvc>ř+3}NŻL,enC)m#y )yɛO5NWmwO@{6jHigj4'p,;:ɤ;o){+'oidttʑgFøn`hߵJƵFicKL bT>6V#>D__؋k{q|egOFHVlddOFHVlddŏKH&/N~R!i._=mGS%oyyy3wqmBvӯXo4zޔd qb# p1#ج0||Ioc l)_4Z5NG3L^g̾q=L^ϥ_iz4?5cqh4t[*Vh5jYk_Yk\1_8fqR; VsGD6JSr5IoҘ)OfY;X'd& {l5ןm-cn7r9ZsR9AoĕE/d<㉵QeEo@ ¹KJ#ELC1jbC/`S͹NMS;?ͤþҘ tDVClv ү4<@yRx\vWO-6GE;ŏ*fȼΘq'Nz$Z1yޘKLt;C]qt 2ˌej~h_=m鬵kjx12dW#qR; 8Q&#$+6~2BD~+3OI mz6콼u{:OHt\JEdqŵF\Ib3@fScOO@{6j̴w=٨10ȳ6߿w殒7zؗ5) gj i‚>{/o=Cn`Mrw' O@{6jHile˭LA6NF융Դ~3744J۸#7ѵvSӷmM?OlԘ10ȳA3o}ͳn1kco6M[H3ΤvHm[ o$*yGppn4~j gƌOY#w5v# %D_6)YlZm<>{c11X#!W-%G]j7e0[-^􅰞RRa64Bg+D( Y26BVّD3a{}HˊɊɊJ~ȲζR'p{ sQT8={({GoXyZJƫ]Hvto/_;UvcP+_Z6Mm+ 6G̸6'BmQ[JQ+!"3QRk9_iLUYlp)4NZlN!5}޶m'm97ւkN6vN^}˖u!EgI?tVUh$gیp:AlqPRD#(emlA!X^UGkZT|3?L^4[ ]Yow6~qİ7'_]~@vy+c32>y-LIFkGFF+w[C0USo'gy#Qok%syđ&M g|)LQC,9Րs,bYE?LΝYt؝Q s˝*x.J3@ùvE=CF(G~om2~JҶ@X{toݷv@m4Rϒd)e@)[Ŷ5 8C溢)58B 1HZŦjG3|^g̾=L^ϥ_iz-3?5cqh饱q,X PFC(0RZ85Gc̊\gm;OAéb}Tt mtsV[-P^%cDߘso_`9[t?n߿WpC77.l[]RaVC91О3iF{6j L|6Ȳ.ˍn;6E%yD:MK9[M널15b؜ n1K o/K|jwdH}&9ihF?<o|Ֆf._߶^S/.̤6a^zs[6Y&/Ch[ o$6yGppn4~j gƌOﯶ^&F1xJ߿QdE7l߶Xnǯj㧵2olYl4~j gƌOA ,楇S柎~~Gvc{l@{72whz|{xo7-/BXωd)e0J[@"̈́sfp֡`JeĖF72yl8Y?!Y?!Y'eYiz?MKm>_}D'p24Y ivG%yc <"lqjm(~tj^^~|~a"9h6=t 5fec)J.ţ%;~_= 0x̝qB̲l6RŇGo) 2 9 $o윕fnuyi{b]8ʹҼTxl`͇t _I)ƖFne>Pb hb̑m]eZV A5?[hkf,^E<qXug (Y0Ucpqz_1&yz48Y< ;^!,f+A!JlWml@;>K.؋mF?K CgqI y;T:ZV޲5EsW2 `DMđjqfc(\viУR|ChcAP69B}u֪96=B6N*fΘu{?\f#߯š]`i<=@ a ~-6vMq9(swZEU9Fe0d#-N2BlXs4xv:/rLh6!-}%o߱l,X k7CV9uC2-<_\o~Nu<㉵QeE޵o@ ¹ʋƔƾ\DczMۋMO-GEELl+WԵ =aw*x.J3@ùvE_(Md#;~stQuE|c"SiB]K#Zw3pyJ?H(aSK]#s[6!JEy{0֪ ,cQ=Eg@M+7ջZ;m"?h> 6k{m82mk/s2-ܬ$j&-NVfNj=S&/͝ͱ.8ƛ/<2L뇐7d_o}toĕSoxYDMa﷉90HY^&B S%uP{ď!EElbhZʦlk=meum1dOb*x.J3@ùvEK6YQ£VBD$f+"+*VT1>_>fEU"DpVbNtdXl6L:>v09o1SyaT>e78zZQ=|놻^KRfgUl+;P#r;SL1N4oHEŦV~G3d^g̸}a*x.JC]q,X PFC9Bo_=m鬵kj1gmcѾz,5EHT;yVFdXl (D>&GvhKFߒ1~0c-9-ջ=PKo\HU[O[Q=|ߞ3~jq'Gw]E<qX.sh6=t 5fec)J.ţ%;~_= 0x̝qB̲l6R3|Sa771tOfn+y{ A1/_FHQ۞o[yִmGm//D485 ymJ>?t=Q ,mz7j8c&&k%OSFQ]'GaKvza;;el"c<?dY_`69e mXjZ— w^f.hTæt1gt5{0Jm[?_kZ6A4~?٨1#}Sc`ⳡ4tI=vyYr[o?~ct<mZ[ o$*'> B@u<a}qXP>O3PFp7jD5(k 5=f.#X(l&*-4682Ҧ3NW픧mT)q[zFogPpHct74q> s$u y!k[|xD.7poUicK!L bT+dΗ1qFr|fD4sX٘R'2i"ү4,mz7j8c&&ZCM㶙 8 qFJ= r?a;)clJ,ퟕn?g֫;ck^뿑7oindtmT1~o$u-ϕ][Hz+iM)U~K̘m 4k%cv=6nN65EZb8**`9b9U\' "QiXEF1bQ6@ 1}Ŧ֮5m˘mеʾ,U9Bl@VGbZcb1֥aY+M1>eYi7o@m߼~/it;Ma`8 ;o=SՕ% <),MVkRB,bfK ׀oLrƆܩ9m_X&iUY)۪Vijbɞ0(s5WsWAx ε+:£N\&Y*fȗ)W7 7l"LxT@dG-&/I>[HۿF_s8#k[Fso ⹌&"HVn 2QiVN8YJ~\\W,f*ߢlj>M}_[*xk~үZv*†D(7t[kVRxJb'Ęi%ʮ;Q_-fPk,Z 1۸?aaca_oOTfrE3f憒7zFߌ_콞!s6~+fѱ;*{o7V?-.3hԖEDoïn`6>g6GlwMf JɼKRQ4jȹX8ZŦmD6NG3L^g̸]=L^ϥ_iz4?5cqh 4eh55G-6vMqb2fG(Ƣ}DUc"B߈l!6=+ċ{aM)4k;\bB捩L8e۝WwGn[o_2[M6:atb]_HS}󷍶92++$jocl)gkykʫ;#K>c@͂Ѯ#D1Pm&85vѩmrOh܏#il48ͦ:+umhFKxtY|݅$lt/ϼoujmO963 RS[|Nh$n/'8Łvݵ*)Ev_PF`qܤSD5(k 5=f.#X(l&*-4682F )Ll:r~ҷmmJx/NWIҎtͱ Sv^}),뇌^%|Xԗ5~ /m#8i8L7~?5ڳQcFOg,nOyKF"켼WҾ _>dt?㷷[-k<GF6^7 bMLITN|2(fs7:]g}=-Ev ,mz7j8c&&k%OSFQ]'GaKv}_28<'l|k 'ks϶ eYv_} L2=znk~ͽmٜ=y,R4rJ7ԕ6>6f[Vq7}>KoZ6t-[뙔RW/icXXc!R0ָ( 8VWԗr)9n[`$\E<_i%K.fh Z 'z8Ęcqʶ(d(x`Kgؘ'ĘoMC,5pdk6RLw(f8VHNwo͝nΑi<1ppvW ?zu5`We g526ĝpXiAUK#e9ıNcFgĦVmQ oeWsW0|OXڅ8Fe,(!PnJ)ciMg]Sk#e=1H6j1G(9J D.oVuіP1;aȡl2Bb1eYHՎWg9+S.mԍv­7G/;^*SSS¶p/}FǶ 융>>ZY"[^6+F9"ebd GKJ`刳kaZi_PQx Z5Nl&BY3w' QP115^ϥ_i(p8׮zc(G۞g^'WWe^Ȑ/S7ŚRh6%'(#sAΖz%=roH8q{ٛOmcί78c(ՖΙ/ϊ2 YY .lc4G][YjFJc*cXĠ,V)۪Vijbƞ0P1[Y{<~ U6'BZ£VBD&;&L+ٔPv݉j1 "_>fEU!!DVb ; CVЅggcD629=~FFFFo;gz_oэҼ>l{$oN7楶+)VWolL3ޣLSջ&3 dk%ZVOl%-4ni,l:kZ5NG3_g~z K;h~j.1,cQ6@ rVJWO[l:kZ/c1AJ}DU9BȱVlp$uɝ~˶ҸD`١+İ-ḠfQeTiKlOM!sck4#u8o_Hܯ>П[d{`++]$jocl)gkykʫ;#K>c@͂Ѯ#D1G4mQTQD_ ΰ1Otlj17ߚ0dYdk|F'ۤjsLXf_Kld}v7 pݴ7LGS:ZVq[6˿#6^>]'Zq~|~a" (Y08n)pǚMM9Jl+ t5Jh]:"Ϗ8,]d9ue4 FM:NX1ZmQTQ@F<8?fY6X)Y=odkZ3)K_]pt̐!0ZAF CX) -+ƗѲ/5Md#)c 5 n͓#G:nj"]c1[`#ޯeOdA~\]]TAo_~b|uިfdYdkȍDNhߘ@d+Vne,Pg -c _¥CZ[dsoD 賂&"HVn 2QiV>D}qRZX'ZK5cjZꁺ' yݬ K~~ja͆\ mQ[JQ+!"cPclJ(DFe/Z1g ; (³l"7t1f-wNŇn h)]p TOr"m+(VUo[M Q)]jmRm2x}eT+el3[hk]MV^E<qXhv!zW9Il+J=lv<}!yS:Gé?}MLITN|m'?tP}gf8n)k6P61fjzA]GQ؎3:MTFYm&3tb7X)YO7_m=[ZSzHRi:8yciυ9߶._olv\o^SsG6 N-X2֚>Ǭ` 'KU|6x^G WOwG.|E.fhIPÉk6P61fjzA]GQ؎3:MTFYm&3tb7X)~MSPMc/[ڂQן6~A"G<ui  /_#V޲5-:9z7mlicVz=.icLXcRe>jClj 遒D(qs}u֪Ę8oebyc.Jٰ8-3eh55G-6vMqb2fG(Ƣ}DUc"B߈lYnXk0fG;/ʲ5lJN!:|u/g;/֫;t¥Uv1iiumv-f1d0l>~_;jI*5Ͽ^xF/i#{ =T%(-%qdUfdl+DMo/8=Pk_*ʅn+um1ClO\j9ǚ߫+ <JPBD$fk<۵c=11 #i1) qg͐cq퀂Ln6!HS7FKӲ Oӝ_nmoqqN_m=!$xr-|%r=xkUeYh{$(X5%ȯʗdYƱ&D4{a}+ uFGHh?WrqBel\&Y*fȗ)UoQh6L&%7|6:i^})ق zSF~:.o$odkZ .m\'$uZ˷o+[|x+˶A? /ʘ~df7DM.Wi5_]/PŦV~l&BYcpФ5T̸S`5GN獹+MOfþj.jh#2ej~kWO[l:kZ 3e6PjEꉪ3DNٲݰV?`̎v@!^e kJٔX뇤i۬oRcOɧ˳!%OSmotio&JkFHVǿY؏#u{5WOwG.E!O]@͂ѦqN=l"lb̮58n <`gtjFM&sgĘ1n6R,6oCH4̍%D<% )[J[cE肣ko2olYl4~j gƌOAe?OSit‘-Mp`*ws8#U#m,nCzڍL4L3,n|6oKP$*m&hߵ[M1#59kb&QʍiD6JSr5F)O'Vkûͧlo$oliJXmeݓWwG׭ׂK3OwG^nuktsEJe,[PZS qU~G ~0}]'Fe`˨)qb-M(P ͦ$j?RnDM'QʍOʲ_7K9c%cR֟F ޱ_{dhp7:Hގ^=G⍸Ous$Q5ًpnoj-(ߡJl\Dp̾:mD?RnDM'QʍoO7FJ7}K7;]2wηћo̤!T&n>aFCزݽxJo&Jϭs˲q~"}y1J~G8DcF2|^ۣJGWWfCٔDM'QʍiD6JSr5!;~s盻f T014-!6Ǥ6բwcWpK$f$owH~4% ϝ,bp5gAr\F!#\pe|/ Rh6%'Qlr$j?RnDD~-2N6:F?m?{-9҃/{֏@<jϽ7ZmO}Ou2R6zP9AyIFkfc 6C@cf?!Y?!Y'CdhBoo~Hc悾|KVvR] g1О37~?5 Z߾|i9ݙ}7:qtcJᶟ14UFZ =Poh;ˢ"NeT|t]I~5Ĝ>Q.}e};2UI&*r]URZ#ڳZ56,c6r*)680SDBvYMfѦ [c@kl* FRl`x\k셪+m-Xo~Qh֯lx bdlLW򓲬㿳1xo wwn՝wOGû'+n̍Ҷ 5z8Z˷Ǭi:nE:!-g^C̹]q" E(g"̆2TZ iB冮E@iNwVIYB٭l#}XFJ Q9RUH9l2G1TU-G]eǗ2.ԼD)Dc){qfc*:ϖe}"o٫5C͎'y~;:lVa _FgNgS-_t36h`S>k[6olk9׵VG5u2_Y3% 6RfUH O̦'\xQ`Vv] j)m/BZi>hVF5t. 6JdUmeoeMDıSBlMQm)5w 8yoo/? x~p-덼%mpYR\|Umw)/kw/j8%mc ƒA\BWJz:9̐]@s֔1SZǓi^<-q 'sAі&fMiLlSXM_䎢5b$RNKGZck| *kcM)4l!cm^Veރ|Fwܞ~p#9:}(o lmc~Ϋo6_>f˭elؕ-Dg^Cy?::DE G_.,c̢eh# Ad\̲2ƎGUV6ƦߦGXjEURͭ̊j]DYOq2}h&wkd&lٔryo85o4~j gL{wY}nNH䘧Xm2z|xƋ&1̎ zF o|A0xbF$gWY౏rvd}DhJJ7qQ CJkZfjיּ(\W Acn855f3֞l )+pINAo 6I C3{I䶞゙7z;Z~{̃O~'[%Ֆ6Q:ZkL}@GGaQwasjz_5N@{6j̴w=A6sK]p$o in)KmlK!<'Cc毷=tm4y ìDr([?=-ݼI4Ͳ*pJn>'4皳}o8٨1ޝl|YiPIk=뗌2|6ڜO3xΫ{|67FQOV06]p}2YA3V] UVi[v3izsbz_5N@{6j̴w=᳑[J!ooDvY0}FNY^8f(]pm0.82) 3;HJ?Ql\DfQ#3+*5,m8o(^W 4۳Qc=5fglms~æi ř:Rw6UƓO9zV}?Oi_AR|Tm٠sz_5N@{6j̴w=᳡S27Oa` K/V;YnpV 77FSƋ=aG;~?ږM[9=(|N陼 }ihFg3|6Ȳƙ^8;ߘ-Vpo~|uq.Pb}2.89&r|Ooi6|N陼 }ihFg3|6_XK)L—71`疿u?HTB&tm4_w1О37~? , o$rO˽]c3)>3`zx Kچ~]: ,r-$<*T,hV[V}EgOÏHue+mNjccYB m2_%[SB 5؏S.,Ȭ٘NI?)m!½otY;,vwnژ -u|?No  9^Tt }V2g ʖu{-, %?\j $TAdZ yo4%X4Ʊ qPSǑ 1"촉ĚuI¾PhMuLl)j|Bߒ|Nj3oWӝg,~绋wXJSFAR457jtojO:O<ٴmS??[SjJ?RddьXhf/Qн̖qyd-k#w:x&ʥMFJ3YƮרyy.D?Rj4'p,;:ɤ;o){+'oidttʑgFøV~OGCR>P}r#ѷ?Eo d(J8ÚmƅLZ$1k% 1K(Ѭu҂1mVQ=meIⱙɊQ*YEJ_Zkbm^27Ɋ?o!TM^`=f%<8:BҴ]v{FxJ8g5 g*42k[3?wZ<|1~#|'jє [*g_--ةmb6e+WQFf\+ѤQ/9^4hQn6RnDGi[3elo85m߱O@{6jH Ii11ٓ>:v[ o7vMݜ*2:lj[6PSc=5fo4~j \۳,)lϓ6M70~tT7X:ybl8!Y?!Y?!Y,xǻm̚O"F,nu6-6^?O}JyYǐoٳ1|o87)k8%'Qlr$j?RnD'Y9VJno}N0J"gqE=xu k#OK xՑINm' wO/:]`\I^},74\1 ]^ $j?RnDM'Q?]bs 2tͽz`\t){x!Hpmkt5FIv_Λ+5`ifm/P/oȺ(Or ]^t"6NZlNIS)|Terk>oyNζw[r|̶k5w|;|sdnodq'>zI.5%6(OQc}TJV6[6k]Ί뫆pjHihF) l|`aoN >Wn LJg-e\}D[VV^8ӓƟGl%dx,NjbxWnIգsv._=P ?٨1#}OYһsKWmKoF/N7ngEeT>~om2~JҶ@X{tbzB~Ko 'kږM\WcYqx._ a'-V6~LEƏ>9~n{ {6ދosN L[ y{?Guޭ>78 .}ۅ`UiRLi/hP\k `on#7w=BUihF?g,r ߿cSTLd`Ӵ$뙳մNSP,YFp|߾os4U04V6fjX"GhSnM&1>;;;͹sz_5N@{6j̴w=AWmim ?eLmsӭG>m}8?`BZ<͍ oZA)ӦIlPWh-6n^~6~~gn^~6~~gn^~~Tkj_o2[a4tEVv MoL^pmkl%683xz+=_Jh$ΦyלM)|Nؓ1О3l ,楇S柎~~Gvc{l@{72whz|{xo-D4i[4t;fIS)4~:ic*:O'-V~r,k=mCi '7l YB i-n>6Hn+H!Ø jX, KBEɒ1ߝjyά{[3Ϝ'/Z2b'3wpsmZ+Vw"vDoM4Y/oc!JT"O3.pv J `*>lH9arL.ut~\ɥEΏR+8?'o,)㜅Bؚo{ \Aw ¶7W!\9o\a#ba8 άlWqi7/Wُv_|ϟڎq-oUӨlxMZsy]wLʛ8?Tv~RNlrb5?X}zygm߸8{e-k.d8!x뾾M}oll~="{VEkqP-\RT O.-t~\ɥEΏR+|teqǛVF?:kcq,a8<@&Oe o1z9YgGh5'o=NoUl|s )KRc\ɥEΏR+8?Q*rJ~Q;eo2jV. !h ufL֟/֜<:5'<~!u*=~b{t8U^T9ƲOʉ8?Tv~RNlr%? -k5vׂ QYa89DŽp2r=~ӧy]oU(&ՅgŔQJs'U:?JEҢʏIBE.PE~f|v620a*k89+:ƲOʉ8?T h]@Qe$|ƨ9]ۇs碦Y'Y-6T {>upc%NӋymө yOߪ[pux1cʟX]L(KR. O.-gGVd}/96"R4Lۭ&ÏoRX$oٶ,~#76e6{oȒDq !3[Qnfj RuFo.BWWK6ݷTx>XcHS?sRñ/HEFn'/T8 5/;2yP7g̩ !G.ICuRXB"9%ݟ(yi~9Fk`U"s1Hz1֫TM@ou9=mQxa{p{}X58|a)cjuQ!ߐ /n/?׏[5_OuCӴ$"UY- aPZX]' O/D)cRQSA|+jſuH$4E"_.kNLIN>G^Wj<ҼGɛO T2Ck,Y"A>,R5krbog൷p78dG9Syr@*M2FLj^M:Lu9%k{i&ƭe][>$c>ܴ]=էMCSbG ^9#I,J֕k$RrԋLFɺ|.DjVS?!66|V$BdAEv,0ֽ+.\^lL5>1*s{1{qo0:+q[v,TRe7V.oAeY*RŔ [(,~^:mW$\N-p,p2”'H[/U0>FDrԦ&EPX*6Y d+[0Xfh*؂E5׮z^wbL"QGoCFGOD} XR!.o"moB [ucv749 s97䍟7۟Ek{Ƈ@E~=.rzˀ>e5a-B.an+kg@79?+?,Z>oj/oooa›7":6?Ef7:߮%fѫSt;;?O71}!j.ވvZM"~{ߘ$ ',/=7֜,a`8dBx nolR)ͳja9ΏSĀ"fD8?E x(bNvop =AWl[<ICQgR;ژ达u홌\iA9e) aG[3'[y<0ߣr秈Ëq~QLU' @eT;-l;nfhgYc"cF긿߸ˆK{[:Vq6zn<S8?E x(bFΏSĀ"fjent 'ͩx֞8ܾwԸOw=v5z9|x6&y#xc.,>e۷Dwp~g WS-s* 9GGp~J)st$ '9GGp~J)*!~;ڜ?m,xو7}Ar,JXXahƎ7' (Ȇouh{ÃQ=$7Mz|S1;^~DiV4Q/ckO1ֈ)zkەFmȒ[?(uR|-a*)R;JWAKؑihR)21DzoͅMpܘ<:9i!WW1qeY Gl&͙1ޚˎiDuoBynd,[>/oEcȊHF0QeQ/ P%vT^4 R;T֥T2\aT/n}+ cG}ւekG``Ql⢴vl^툩g5[RXwqKEui ՂȚb(jTRGDzte#o,?!lv={nL2Ȗuy#xcc76 tX0SӰap*oSacߤ~SRΩn.v!Վj,ŢڤU bS"Ҥ,b\k֦ڑ2YzR[*jR5e5"ϹQШRMQT?X!7ssBjAH.w돔RQY-(&S;b%uXF$(3Za#HrGf[gۃ,mkwޘ37n!oำj7h|O5/{[r'P16 Y/ h4WѨ VAĎU-hԎ-r"uI 6Ke w)I eT%mvx&Q4%H5.!hJzTbR֥-FV#rQ;FRZ]$Holg06E`v f8mo=IϬ(3,M̱W$r I68E$x.x<~-v!a^] ;tq {O9Q o518˾nGah!o司\ߪHߙr秈Ëq~xg}(9ӝ1B=:vLjxgcQ94/e;n?zy{G0XuyTߊnmzߪ|g#ʟ1};?O.DY{,^Qt`l};/^o`ز~HŧoͳK?%?}(*=~br~"o1#z)b( 6mc4̜0֔ol 7V~Q {՜e)7ߊmzߪ|g#ʟ1};?O.oݶ 6emp-p"*Csl-rciCwN|C8mCa ϟ^*6w!)bF3w~"Y #oa򴵘!t_o~%{o$3}ۘ,ee 1`S0ژ[íM[{#^Wp~"}#{W{rRJ`Ԧc\0֘=ܞ~f&9 dG9,=w^讌v`5}ڝgZ9%xyW\irHJߪجpL9χOB+-- EvlEkJ0j`P.uC֞ JfIV϶Ek1T(hMB8<>F:ƵIH66u3GB89>Y77aoY[)g}5rU%/ڟ}VVU_.5uE;'nGZv0+e ¤YQ;I0PMZ]1&Bj'To57N:j[%~!me%Bg_6^0vИb !`[ q'g5o{][7{ 1q i[:|]iٱRې"V( cG05#N&K`r W2¨֫HesE=if &WoQ]6K!~#fcxPM߸^%xC,*s{q^s,~,s/gm/oa% -ax;ߴw][W^ˣbG F*ŏ}vi-.k^?NTH3|]iYvlT.c.XkEۊ"0v#^]ݎXS;uU]UFjGP&HesU2B0Ȏc"*M/b0e;޸q;yMOmcim.F8y;3[,OzVie@F~|"1T~^]?i.LaV,ڕ[*nRl5۱,^]ݎش>b\u[ʒ[,Xx 5F^Ye4 X}n]u|c(HFFF oeYEυ|q.ku vꆅI7 oLR}-֬KGjA%YNuebRODS[\֦ںr-ZNe[W[nڵvRfx;Zu$WW#fŎxwESꛘRd( >Rc"lR$l#rctw'84DnVglỳ>z~hcKc <_[/pi;n'"$J^Vd'DNZhj SرU eJQ.'-k";"LOhve+QT HXX?X\`71+)Rz(]@Eƫn _#Tu8,pGadYbGSv][ [U/dy<~KٮY[/pi;7d5]9\iVPc1϶ dY#eI C~ Z4h#oGMbmx;RojG40BjĖJsU#> lb9ؤX"9|v[#ZcFFG)p!x.C#=j.>,OM5%ꪴQ4WK1(I{WD)IDbG*( >\;Qc wDdy]bA``ٗz5`P-ks#Y>S#mW#%Y;ƲoZX0NA96e#8mLO1ӣ,A%Z[c,>B jL]hM2YJ4i))+z#A ZTY"R+FauQ >+qop%r}cl]E^YLsL1Z FkDU*ɕHQjRcs=+cԔ&EVS6(WdiI ܟ+bƋт";vFqUQ>XpFĎHY-DR(k]V(1@%?DYo xN¹aMn0ǰ[os R.6B8?Xp >A/RI͖dY֨Jը+ nbA Ef+ %M"gJFR|;6i+U9+uFڥxBd'KSiG%vrXzr*I.fqդƭXn]-,#UɵaTv.- RKQkVSEUERQT\s#A>I2(@^եѺPcJ~dA660fh !̥@A]\hT^{#~c7ܘ? Ӧ%7rIp%'ʵH+G`oRM&OIE뜹'$lrCo~+0 #g\M,Go1$sDvУw^5%J-.-f-Q;5+풲ZPsE;Z\)\QYj$TcR˹I֎ "b$WjDVhԂ)FG0Z\`j҂UbA*{Z3Ĕ^).I5eRe$(?j*rՂ-FZ\[e.Rͽ Έq\m [^ _0uOn:)ՔI1bVV[0ߙ7hkh-ֻөrp {| ?!~9-rR/|'pK>5jShlj9EZ6DfOjV4&Y6.W*@_AT:/vl+ʊ>-IDxMJ6Q,U/(#ZFv,^,[ʒe" >+@`>$bc-HAr#!5(>GF]Q$(E&m]6RR6z}VU2Y(m%)E#YTl]QqM~P,5yɍ@N巽'hX@pub5SWf1#x-|YJsc[X-u7^G]־R%u;WUZ^ץjdy]c.˚_ϑwY ?6K1:X{]ڊTH*NK/nNG|s=0J pcT0[ e:5;Icpm9˞o̖2.p@V8.l'gEL_CoE#=mpMmO﫮܆ߐ>o{-_}U'"$JO޼wBe2upoE䅽1.74\ou3Nb#ߵ0(BQ<9UTwJN9Ox},jF*/ QV!u^;ښamLvhV'Wƹ#B_ {5Tc"S.#c]oiY[,v??ӴEv1Te I n9E!?e^ @X0fu!E76A -ʻe UX1r秈Ëq~oeM2XӍ緷>`9*vs1ƴl=B0iyp7.SϾզZ#Tvʙv~"o1#z)boeuڼc7B0$,Go;85¶1Y7/nw^!Cԩǔ8?E x(bFΏS@-}m=FXo6fYoNDm3uNAd [-ߊ\mzߪ;B%ni)bF3w~"*QuOt}.p%7!LnOw_eCӦ7#4㷢R**+?S΢1};?O O?go<a^P+p,^Y{wc({x =;1[уM[|G38?E x(bFΏS@e ? ;o,A% ?ed7Ζ3tۘ9B}=~+z(=~c1,:?O71PK b 0a8,>.1J6 ;M2Lg775 .ZA[уM[|G38?E x(bFΏS@e bt4D̟jnLK )qEncMX=~+z(=~c1,:?O71PK `z<NqorBqIvv)#or fQ<]D<~+zp=~r秈Ëq~DYr&*z=rz$cnk`\Xy[b dc2c ߊ\mzߪ;B%ni)bF3w~"*F:yyB֘e^b95֘6fՉkX%B#c-Do1F<.oE6oUTV 8E)bF3w~"jDYS~v;p*}-o976;Z9s6[2M)TXlXKߊZzߪج;B%ni)bF3w~"*x;8% m,> [lϰCx n}ѣ5bӰH!YEϤ>oU\V 8E)bF3w~"jo'Ӭ?eig;6f4~cx}"˙#PbƮq>{`g'${ 0XYVoeɗ=~~IO+ou[.$':-yR-e⅓;o͹([|Bu U̙2CFl*2F޸Zs+jӰaHx.; [8۵rl,G\LsJёktr~ 9CQ9?!Ũj(xe1¶°ӯc7뾺9ztomlw}8s5fY{qa\1^pyVW5̜oUSδ1};?O}(kGǭy&Oiw!=,*Ti]ߜ/ @\cS^xc)q*ߊJmzߪpL9ΏSĀ"fD8?E 7vGYv=6:뻭6.m}l{2mut06γ[an} <~+zp=~r秈Ëq~! mt6sW:ReeS{[g\2ږmϞl*TNA%~˺ =w8?E x(bFΏSĀ"f(ǜ{oL[su7FwNzK ~}xͥ.)6WĸѤZ0$WZrX~H&sԺ[*#Y0]}ָRDVI#oKv F`1AUhEEEoD>GSRVv}UQԎUFc"B凮G!2,7LFw6N5&6dq9ևpf̟Mtj?zZIߪؼkh}Jɍ.hRA*FKQY]@.JͪRVY52~$.Ir,#N)т#uCTH)M"шv)%w57g)i( *[ϪDR\;+c"B4#c`1vښfuc`sd~|8a:̲ L#oY 1t;cQߢ>V*Nob.vDF.u)Lk~"`Q"d\ŎN]X;jV4mjGK)Xň&S6¨ܺԲ͕"QIՈ]a(WjG5bP ڤbD;[-k_.5Uv ?$#0dR;UFc"B凎6s Cp7xnh;\o\jzI3{ K1^~cٝ( |4`ג Y2v4)Bt$u)L&U(bDV s,F҆( "FZgj'Ũq |OLRH.h\LbDzW;ZBT~,M"=IK5+rjGBZ jSj-YQ;IǤX͍[#xeS fNYX:{bK<#,^{Y/9Y >jYͲoU5\eOD*Jш{Wdhn$+|VY(Fj0DfTH)9ҊҬTuIv,x+wBЏBi0jJnjveAZfEu)wۤU*A?G}V]!RFmRv)1JEpc*`/pZ/`U ?Y`N(e;_1,fگ1LzooU<5ļ런wP>_]h B&|0)3|GA"eudm)QWFzoa#<]g-c1G[`)Cp,Ge)K|kJ38?E x(bFΏS;!~k- ^{c4l!6ZX@wҜ &OGxh{o]8?ί l$lVKQ4)$-gA&z H`[X+";IkG[a ;Ri9FkLhf`k #p.)¨)[T()`K5TbDN -aHD.4bPlFY\ ggwbai "FZjbx技fve#Sô+YUXW|!ys8Bv$'Rj\ z&Eлv(%FcsF\;Z+&Oy\_Xpxa7 ooe{?a)qX ?T]A!<ȷosEN5R7KkËԂ R%zUb :k6vl"S.R?"S;)X0T! &hAʺNj<҈Aeirr-RƅW!mTjQ|`X zRArEiȂѻhR̐ʭZnTDs1jAZBпL;ײ 9W|ch4,uRrcIJAɺϩLQ<#74Ybgx Tɰ_,r!\mvg ʗGqBpB}`q~!89r}t%\Ћ<\%FT 2ʷr/ߑs ԖŨk V!k6vl"S.R?"S;)X0T! &hAʺNj<҈Aeirr-RzS`ai "alH6-ʊGi?IjhlWZ625Lr1\L]u]юu򙇐<3.d'jM|"&ɕPhR[Y>j"ߨ]Ri06W`T,E*1"\f5B6Lmg'~-G X@ư[v- ߔ. "F(c HA|c iX9.%1ON'RLjbԂ W5WavHFV;lFPR\Zjlň`,[*4 re]b'5iĠ،49L]T)Y} Kۮ0"alH6-ʊGi?IjhlWZ625Lr1\L]u]юu򙇐<3.d'jM|"&ɕPhR[Y>j"ߨ]Ri06W`T,E*1BoL7ڗ[#_`fHz6e8O?C,"k^,^"fY"QoI2SLbwM- x#zUb*D8caԦՎ-[Q}*W֥[*G1"Xdj' Ɩ0$DM"\YIG1(6,MSWUp7ԾmW ?R\C0Z HWceţ$5W4C+-]r.hǺj CHÙ_&M>RJ](Ѓ4)ޭ,Fo.4Fx0*P"X77aBZ8lv8kCkL.M ө\2<7muʡV)fiYEZMTJ"hT￝c#/X)&#zU!ւڱkx[T()`K5TbDN -aHD.4bPlFY\ o~ԾmW ?R\C0Z HWceţ$5W4C+-]r.hǺj CHÙ_&M>RJ](Ѓ4)ޭ,Fo.4Fx0*P"X9ep}}WZl.p\{# =X#l$tXߘꯄ\\?M&!i^ >V`SSLjbԂ W5W`I \5RQV;lFPR\Zjlň`,[*4 re]b'5iĠ،49L]T)YS]a*DHq5 9hY+"^mZ~Г\ ٮldjvb"˹꺢몕/3!yg~]N7DJM+u!pׅDmI|O$R3Mw+ GQK**ʹ%vH%&°$8oajwގZ a'Y 1UJph{} }v*?r秈Ë(kk: a}`mxs2̟vlRomM`4moL̮F'r= C)bF3w~"o1Sw190szIoŤ{j gӣ8A9"+Xpgpg:8^ x SxvX0>͎UHXv1xm qg>w5 x{c:V6˺s=I꾾r%W}O.0]uܜ!l:2s!dݥ's Yј9ݞGtY'udxag~-oe:]۳Eϵ2#Ï(n3{ԝ9l?o0D\vt[otO{Gѣiwx5{>5bX~ȭ}@hM@EKh/2) x4?yB!q'nr1xvK,@xMn1oDnl%ǞrɅ,qGnvvtٗ9|Uhq`F  "pm6HplD8lwuKG$="rˎd{c+#oÉS\,kN&5^v2z z|9ݭX3;cqߚ Y{,~k-B2r .C>nkFu̟襳#|mŰ[] dyO&j h#r-،nYQe5LnO3vО9l:v:ߚ&~;jt'?#=O33Lv0"3zj\ct0Gn3" ǃq6(bTˣgӦVap;aߪ"|So2!(H< %YfQ]^Bc8(Q8F[ CsݏHRN !m+ᵷ'% Se̊w̘iH(\kn]3EvG9 e{GS|xU9߶`jL1]^c7~4S;+L2;]vV{}@ը#m<%Of_~8O-x:/??=%~z6>ߟ姿7}_?^^?#vUw~> stream xTkA6n"Zkx"IYhE6bk Ed3In6&*Ezd/JZE(ޫ(b-nL~7}ov r4 Ril|Bj A4%UN$As{z[V{wwҶ@G*q Y<ߡ)t9Nyx+=Y"|@5-MS%@H8qR>׋infObN~N>! ?F?aĆ=5`5_M'Tq. VJp8dasZHOLn}&wVQygE0  HPEaP@<14r?#{2u$jtbDA{6=Q<("qCA*Oy\V;噹sM^|vWGyz?W15s-_̗)UKuZ17ߟl;=..s7VgjHUO^gc)1&v!.K `m)m$``/]?[xF QT*d4o(/lșmSqens}nk~8X<R5 vz)Ӗ9R,bRPCRR%eKUbvؙn9BħJeRR~NցoE endstream endobj 1412 0 obj << /Length 1415 0 R /Type /XObject /Subtype /Image /Width 832 /Height 582 /ColorSpace /DeviceGray /Interpolate true /BitsPerComponent 8 /Filter /FlateDecode >> stream x  o( 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 090 endstream endobj 1414 0 obj << /Length 1416 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream xYy߳ksZZdd(@XxL!݃{Ѐqnot5_~m2n_g?aE!odT e4>&nE!D&sƠ89HE tj/C2 4?M܎` C7LF? 8(:2 EׯŠPMp )?rE둡l@Ύm˄QFBv1ygP@dzJR ?䯞`͘zCT3E|/:GAINdp@o5(b/6B!Vc@U D!u8eA!8 B$ÐHSW;:k_D6>FE3!/]WP+hj~Z VAuкh @Es,z+ZmCk!< ` cWp7/?Fܘ;byQDdbT=0j\E UIAQqlYk-8zE+2hA'5n׿hb176*>Z?{V@ ` lp">ApŠ Th7@ hx ^7`LO`|k D H uH2!P8 2Q:@WP+zFi+ `"b<Vû$8΃ " ^DŁDɢQF([*JA Q:T3 5Ah EEBsFt;9z=^ǐ0i&ㆡc1YBL:3b9X59ݍŞcaaǰ8 'h\$".7[f 00(12x0332\`aQQія11,c3c/4|߁/!DH%. "+QhDA% $IO ŐH5a2Iɂɏi/S S#S,3#('ss!U^F1#K K ME2H%sS8V1VV?LJcEbDdPR:(lX6q6 `l؞ͱoewaO`/a>hX·`[mY|ɹE2 :u-7[۞;4w /OOk^Wׁw7o%o"?_$I|3w(Aw>R٩Pj:'+h.+xFPP[appp𜈀6=""EEEEOv.eO II쒨x!T <%T R *ꕆUOI?hȄT e ddkeG8nʋ{_WPQU8FUR1]Y񫒔R e^&[:BQ٦ҦSUM5JNuZMD[Tm@MN=W[aWEcESU3FA󋖬V)mqmc:B:43:#T]or=A=^{}a}?* f  .i%3F?1a5q6)662֚Ι6g12?b>`gkQc1gflnEr*zo-eeݼ fض!Qp]vv%{)^;:;qpunsavRjzuM-;{{ţcq'vѿS|gܞh^W1ޮliE R9_# u 80EסO/؆Tlև1y g  oHx)9Ks]sQVQUP6p+/v4N7$n9%j9!<'Q*@$Ӥsѻ}wܓg4 L ҶWxoމTi Gӿef4gef3WŔ5]?hNXyxP`)*:$_5aG?J>ttضcԂoǽ?(ZXv"HuQIO(,~YbXR_[ztߩ1;X!VQXTxU_Wg>7~ţ6/;zju7C,o y+IQ=j<1߱O?&2'I>L)MLN?ħOk3YɟKg%f}367155wkomvþ-,s-_Q_Zu]uHZYp@_gS@A tޅRGvnl5.!L'090{xY)Yl-9yy^ (PS_Kdה(.$sM]>QaTZAW5K틆f~Y}F &OX,Z9Yn؇9plutJ{zDmqxg*jjJ=lCCya]nDUG싍wH0HIڲ=g 5iianFr0YC\)?{P~^^~#< xrả".%Z2xONM?9srYsUrlkt1oMf[]-nqW˽ֶF\Ov>HzȰG1'CO/>;ޗfi`ipU7 Co 9j^e::jS!}! |. 65sw?斧Vޯ_1_7 PYt+&눓c`g؉"H^Lj,|dy"^ÉR9['#1'@AR*O\uEɭcjm-GQ=I0c] Aie+5y +p>x{3;S={x3{O}}w9&KCdBqn%^G_9K3$:)}=[ɓ)wFfg2d{՜]߁*\=wt1qp]Ei'iņ%¥҉S]kPd\>ܝ>5jQc_:[QwHajǵs3n7ޜi~yNKcwRso5kS/ w.wvO>K~1J@`j0pJxoH]]Ңu܌MSKIOK*C}wӉ~AײCۆG%ONO __ ~DlwnisOp^!Gv$4[g] HƆɪm$t`7GɛH8 $J|dD_`&XGGk %@EPO^dGW0H\i| cݰyN:N  PVaW,|/OBi$^;&#f s gOd+r'tR)/hl\W8lY,Zq%k4SBU"b"Dd5%:ʙk"Y)%1eѭ*ҪJjZZ":z; cLLW,\,sڬsPw<~en;e= !Z;?.~`sĢHx6mﻴ|rr+"%?~DSg몊{ѣ|5F|BuOͨ֙c^g/_)59ruLh"3IMs E˥蕓k~Z? BO"&G$ϔHa,@,dWn$P(CT$F;3|X6VKVbp;p T?9Fu4<'"80N|BR'E %0,,cd:y5dgfCѪ-Μx\{uyxs:ł1Bv""EGHKVIIʔȞ;+_ЬPiXyQYUFJS#V3_VΌY_߰xT,ܼⳕu¶[.]=Ng\ݚ=Ķx&x}|silaƑQi1"=I/Oۻ֔O/3'3(u$qJ᫢RSedW:96uWj_74ξ{mЃG?󨗲_x;¸Տ3ϩksc N}^*\?UK q$d0J@#se $#z9ֆCp<"Ckc>d`XGq+.W[E( ㌪Uyi H &IH~c9y%,LC!P"إ?!3;ӅK{gJZ"xJRNE؀$$+%%_"oTE"h;tE/ؚZ[Z/؄N{9 ;y9OF{!˛s oE#gs;9RSddOqUʣ/>uD%BWz:^Rgڅ&f#wZtλݻ<S߁^Bjހ!ٷN GF[?9lCTtGO*ȉ٨/_n|:Pv^}~ʥUS?~X^o޴t2D D4Dҏ bH(?llUllD Ƚ+6Hν&4Lݼ{/!4 endstream endobj 1390 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/ucsc2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1417 0 R /BBox [0 0 1032 368] /Resources << /ProcSet [ /PDF ] /XObject << /Fm1 1418 0 R >>>> /Length 41 /Filter /FlateDecode >> stream x+TT(T0BCc#c3 Tp<}\C|@. endstream endobj 1418 0 obj << /Length 1421 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /FormType 1 /BBox [ 0 0 1032 368] /Resources 1422 0 R /Group << /S /Transparency /CS 1423 0 R /I true /K false >> >> stream x+TT(T0BCc#c3 Tp<ԢԂL"J"k4$i endstream endobj 1424 0 obj << /Length 1426 0 R /Type /XObject /Subtype /Image /Width 1032 /Height 368 /Interpolate true /ColorSpace 1427 0 R /SMask 1428 0 R /BitsPerComponent 8 /Filter /FlateDecode >> stream xUAPb") #EYJV0͊ L1^}7^{9Ùf5w׌!`!`!`!`!`!`!`!`!`!`!`!`+k!`!`!"೥0 C0 C0@.X+݊l!`!`D0 =!`!`k fnE6 C0 C0"] C0 C0 5&-zٷ^{Ƭ/ b6}Ocޙ:V1}@5L  ;> dRpFd rZ;> i!&7yҖM ?xa8Id,Ȣm*[آ m)ta >yaz^wo`F7>cXgk]R4 tY{unyWzP):uURؖPz)ڬr[ת \:;9w^!7lФ9# #iFt= uw=4kHoi*]IqVZU=.ɬNKKkyY/mnhv\c[1(utˇFsd@HSrNCm O)ѡ]gej@[2L1ڌxnl/II)dv ڶǟUa]┣t>ںôud;M&a.avso6N>ne90wd>Mw|vGz%k6g#vAF003ں5u$x IdQ;B0xxi8gL+MvxRlpE1mXgȘ<%P5&eD3 ;`[noS@dȊz5vc.]rNI Vڔni>9՛$>9dIx q)c+,Ctװ'>u; y] úִ?[Xo٥ўr$AXcKVH&&xl3oj(ǝx*{L .{ }ٰ@~EP`C/|D͈8ƺ.Ǔù]"zӴ0,tVE.D`dSxp˹I6ބpeE#`ѪW }I)\ SvPeh!idd S)mDԤ.NټM.+5:BXwwdӚUH*r/$%HTw"ő‚L\TPt)«zHHHo Eի`|/ZknK2>kyvrSԗg/wp? 2-L|mc'U l9 IMaҫx qbG I}!#Hy+ˠ v. \v-KFp+l=c]@'LQz+6a GIKA{V <,;6ܕOi %wيG #?NVpNFM"n % aTwJʣC\]4:P?V#"E gܿÁJܶ~: eXf-Xw<ӌ1ʆS)GR«;nN9,@fH ] KֻV,]wo-Zͷn88If"1ć4TaXv *qP*o S;EURzءZ9mta2O9J$#$A6"sC%>&^ @r"X|X I}!uuC6?41W'OS[^ YHNclÍ6pb7PqFUqiE2Jٕ ' zZYy(YGv.vaVrQD `5>M Nǁ=ɣgT(h)II $e+ihkϊ.#ȡ=)Hډ+0* ^`4N#d7|]"~Rݪ.شUh@ ށ6u(dUd@I0/nS" 1 )b3qlFZxpu!_(аCZ9m_~S-f<2( Iv\Z"FR UOYpJ +)/>2 0 $H5#, Ü IcȬ }[$=;ha-Pl 0Eyo'@!FKg>IՀ@^lRh bI*[5R r$QBh/Jy I3~jxİxuPg˙BnVF]+ٵQR q [VǛER#Vv   - j3/[":AE0Ud@w$>Jeeiŝ!V"iy;iׅ(Wa|uO߶IS@g;|y˞rNIFIvoX[.%>& yU镨@R}!$"FANeq, NvA[yh|K`Z[p G>@zkVvAŝ)WnvA^P:ܘ;dU}Vm;|F7s Sy㉟7f CF w,Yq2MSpK].d(`:\dDN !}4p: MҐiUǬY3ˬpC%>4 4jy] 7?,q?`V* I}!NE,y` Q  vIzw*bZ.m2{PNG 6,rfժUQg'klC0杩_gZ^Jq}=C[C- SLX%׎?({&%V( C\IJP6u#Q!m rAJ!fGk9{d! 3IE0p7̂P[Ierǂ7C2rqVa|$INoKOHxi$-bpX>IYxZgȋ녱007AܚMw˄>+IqhS2I2~0qKhj"#n8ðK'PvKp@_MI nIBZbaY@NS ;la<$alb>cUL)G0rUWCc=7{/cժ'aXHUL&eGࢗwb,?oI}!"}!IcKuxz`TŴ@Q!.GfN9,A'ɕh7 kL[|e>$ *^+c򍌬B1d  ȊmhVPئY$]bTh>ꈧbT W?n#I'E1YL/~B&ɬt$> ?"8׸WY.4pst[zA`p;Ҕ 4d,{RΘ0#AʂS%IݺiKK}\X&~Dh)'"WI.4Ic>+sD L%zHo^9-wC0 -Π8앗R+c؂gDfu]8| rL`C(fXI!DNvWӾ*fs+#kl3" aW^p5 cY oݙ䆀!Pl/l|HG88V9Pl^ZȬψ"Mi;ⶴ$| M~C0 C0 Cv3 C0 C0 5fiзo5f !`!`]`0 C0 C0.6`!`!`fX0 C0 C0  !`!` C0 C0 Ck!`!`!`vC0 C0 C0ڀ!`!`!`]`m0 C0 C0.6`!`!`fX0 C0 C0  !`!` C0 C0 Ck!`!`!`vA![,˥KjE˗M?]H7x+3I( ' d3,4-S/YR5 Z!`삇skVZwA]cZq٧6#O>! gQ}G~:$v~؁[oE'}*WW4}uQsy]vоw=7;tjH'!^3")yRSO޻F^ryIeӏ}i7mrEp}=ꐃe&@$ܮ~=v␧Q1,Bǿole:wH{t~믻4_YDdj v@o57G+ϸkG:ehaC0 C ?d7]!sU[go(QG<'”ujoM.a"|Oܢjsd MNywpӍIKI QY{ $: "I8w·m q@JgayUᖱxx>.lSΙڸ╹l"6|/rU/_yqk삔C P)|cG{gu")^?k̿~Y{/vXAyZ0 CwU &$1+Ubb ʹ,#gTݦ. ~ +C7TR,I+8Ϙ.4У|RFyg)/+PVF 0b%eP)kH y~iQ(ㅘ;52l$E}]=G?jy=ڷ;#궒QR|\+myvﭑy C0 ?5?4ݥ]Y=򈃮,3Kh׆ۖRxɈ%η=$մ 6'pqШa'{B,;KO,"'96i;8(,$nzv> Duw1D#vʛCw+?`}CH(-a$pXd}݈d3[ caT`7 7G*ݵ Vت]0e['S"_h;=42ܳ:-&̶$ltྫྷ'EQqo"Yxb&g{6${y#v+ވߗ&ʣ a^qW{uk@ycH17ndgz_業zWYvvS./bЩqюIp5IbEzukKI"r0!`f 88h0 C0@aJenE&1Oɯޕ0Z"Mhna%ph}x@#,Р w@@d-P"ȣkFQ۴n#4G!AIC 5>/f> DAiUw32M uKx3 Z a<^|QW»#˳= H^)F+.TpV j%]=Ыq~ca<)vIe03%= *gj$&@8'LsXQwA1v[K2OvDNY3T.FnB:7իC,Z4 atr^~cFn+}L w |HOAA) qp]tjIB9hF y͛;N"b 880 C0@^˙P0p&', zaLp'ɒ;9SpR<ɥ]ۓYőq//Xɂ-.=8`/`~q T dvACs:ihp` Ң]ijv@&:`Y`a9&isLJfx N%_% ,x-[[($ cR_Uj\%=\KE`WGF @9n ˶ ͛W={\مJX+˓: jxvi_5-7_^I.4a =d g2ݲi%!R=>JN`PO( HAO@^n>iY JB9"vbj t|Ioc_xz-_A.,_fC0 C ?.`":'+8Bu}>2Y'*"pH{hXhkBr[N4*.'>vp$   je2)ߤx |AL zRV a&}^V-+͝3JAjS$sӦ#V--\r߬aqG (}C[umXlRe)*k>/D<℃|4eDR.~gO-9ɡ <xNg(n3t#bsMNϝ (S;Nȫ,NQDBo<6X=D0z;x fpGC0 C.ITǑj[p@$ vAU9gZRTD ) /[: U J!s5Cy\prnn>JXC\ ) OdH amPE@Is rV#µ _"D1 F-кhj̲mDcۥ'Ke>ü# 4R²CHEcvnaPš2R+j(ZR. J%+¦ }DlTqgh􃃲!`!r g.ss?T|IowlQX^BH8IBfs|dܜ27a9 II8:*,r yM$~5hr(dVi%04Nƒrb2GH:ǂ!* 69 pq.\mA erȐ>CcG6ty)/E^-s`ՈHA$Uϰ#MgUS?aa2PlC b$u|>@ s.xXQL4[]@C$QHVQ^7_ !`A ' e֬sB+IZT$2AMskן_ɨ0Py #z$Ǽp./s x,mRJ*t<4su~@.1nX &̈{\daVYY߂۪0IJ!1l7`Kʋ;ンΛ;@魔<#L!cLcO'B,DF`!Pq(]PqPr%tdwΰZ* lFN*LѬ !`k(fΟ Ճ;gN QA@*L !`k:fR%xI5d e!`@"`vv!`!`!`vC0 C0 C0 Om{i܋YR*%s%~rL4*Ôr!R ˔V|,绺*7P.r/ PU!{KR)E䆀!`@9@ ';* Jo<=$>+̣12+> XXC"^H=v߅̹!?#W29>&ܓ7;(x8e!b6:kw L|Ѯ |FU>3_CmpF\=,N;ܟw=F0g6}|΋e/e+U\iOj|a=Q>p~lӺ%|9۴y>]_У4%5>vyǀ$0 C(kr M?1m_!UEw>ihQ,GgP"ҦLT|;>\o5{zc|!pvcB>0ja|:@|q/WЮ/^|ޡE]FSvA Zkt=>1Iw@>-{BIil+i-0 C(kr 2aP,xهʲ(]ڷFh!CP &K&U-: |5 oD&}ȠNѬ8{?ݕ*D4nIyUG$>K &5k|u'R Qӭ,:ꭲ k!1) p'}p!Gl:ȎC,wϓ,0 C(.dþ)Z4Yg|Ϗ-ȂA%%Y"kꄖ) -ݯ튆v]ue(gf^hx$]O: KŠNms$l萾DW([ddJ- +iWRL>{DlQO0GuS4D|\RM3No7[E`"_~7ʣ;1+f+OӎfI'&zYPŽ{uU@r طF_/CYys䣷^pVNk-]~Yg51Es%4?pKn~ PX({NCbM(xrk#aя`UI>r#v\׽j`aRSUV@V4$~-' ϰ@ Y.Vq^|Q4=#@Eorj*  (SIŲ-(ӧJXvhP;r˪ cOś?B-4^ . w#v1o8 ťuS@vDW&HQC&j$䇪LǴ8cб)&Z+` wjc6gf p^>}!K0e=5z `b`:%$ n!\#?,dž"ƺm0hj|֋0B$(K;GU@ۦ 9Lkkфn s K[L&wofI* vgL}p4vAZ9] ۦl`xh=ؕBaS`B⥶C0 C(]n"*<+6#Km_uWHHN8L6¨% 7k{/ *+K /d:ŋ)Y+,Aٮ,%.0 CIFr!- 5g{ srٳ'i5U4hH.`N;`5lh?y L*7{ygwaXg_Eabeogc{<HI֯: vCg7G1eXyq,PՇՔ|xTP戊.4CUqe!_̽ESJ ~ .W*vbɩS1$ /1y\]Q yׄ lǸ>*K>B>1%4 ,Ikt1A\'c1ΓJm!`@q!v(TRR\Mx_wѨUWv9 3Wk|=ի?:qU"*"CM+UIvAQ2+X+1vb+ x$bJά4?vg#@>LVԑG1ʛ#TXm**YدYgGԐ#ޢE]@}$p@DZMMQ=& B!S@yNvka`.5刁ᤄ{.& /1]0JF'ªk=ʁ P̜eY猳ds;1QW846ޢ +OB{$G$㕊x9 6nK"0 ZPwlq i_~+T2G )hckFxZK|8Y1ONpnE>|My@t0RKN^QF9O88,P˨\W% C0 B ' PwLv2j8Ϫ;ZEɶ>(xr.~+_`AGy{(d}Sсo֜Q-xgUAU .;Dh8sZPMH1$eQ5FXKD"9QvQٽ`Hm\\pU"S>%}WH*/h&8`Ł/kzGh T+cEȬ (R) 9AXj2;##Mf8膑pMWP_W2X(((K&&Y*):8xp)MMq{3xԡqLq ?y9PSERsгe@{vH$^UNy\ꗆxI.%/om*,*7hP\+gmɊ9¤iht=J6)h_Rcp` {Hw2`;P.YxBBLo40 C04Bb)d*jR4aba^5 :<ڸ>Ye^,,sA":hwU9Bn.hE**Mis "#Rap*bD/dl\0}/^zd<Οڔ0'GAdX⹃ E*}W*,b:5&g7J"FGDSg+MX.[o8Re^IɊy к Re C0 P0 "g.vRҚxE@.`wLۊJȜ`Kh!`#f`?\Mb|ʘG80ᗞG櫝U+j0 C0V?T_h>.ߒlοs ? td!`@NvA_3 C0 C0 G &W?3 C0 C0 El,r@/RkfWW Յ|C.{.|$6[ctY=Dyk+|̎GyY,[CPV< c4"=Q f%o!P( i~|K!I67@3w۞x?!%w_t t7xiNG<1+i蓉;F5BȆ@0cSm |.y<@UcAkE u٭QCO{apy F_w1hw@AZ oM0ma t྄Чu8sЃxDE+ +gHBS_AL|iQzQJL* D/pS0aq R7|h{_J-Hgm;5Z-o.8x Wi@`f xҹdzeII~؁?ŗV[nNGNŢHL( I#!="?NRM7٘GT2}NlAKª>, C/H*<Kv"sm1b,pfpÝ+Q8$…W5=q'|=Ϟ7M}G9I$h a 0gJ$GL-9; 62'$Ld?9ăiXǒKRm]hE~te)ڮ~/c?o[!`fF~4=]ۓqʼnq/˄i_|ʎ3Ki{y 2.pSƁH@:uų pҠ\ D(*wlq-, 2$#UWIv '^~fzXvcOju oխ-.9b+<aG;"O>s@$aX"Ls%h/&+ZbjȼsZVdÚ 4v̒skf׀G(^.\@fsrZcf+!y_b"H=@@tщ Bvi"ύw~}]#+ C 3fų #HyU_v|&{AŰ JMqAR7R"YagyYMx%JrrAq>0ӬYcE1H5.̿D&OaM%Haz؝^z)ںpul;uFJ#xH@0Dڣ!`ĎI;5W./qp{x' \G>M#+ C ]`^YUǡQV Ԕ Q׬0طFX[yUpwPq$S ̣ѢZNp s(m|kh24]F&Gb^{u$ܨGi.Kօ!0v(*j]vAѐoDڣ!`ĎyC|,bU\R!;,C0 ܁ OG8IT$ klSGD5Enf \jm%G7q«.3a9I$ɨpEPm屙l/.21q%FSh̰ /3񜠑xBZF (TIRuhQ5_Kzp~8hOZ!`; 3G32"##/Tw!$nO }*0F)7 $.;J&JOPptGQДU^=S|Qq8הpQcrYVŋT6UrM?'-pМ-Q6Yv ƸbG8=vT;nWP(c2sZP pH*z3Y%.Bէq0YU2N%ńO=y/XagΞy~1e:qAbr/. N ahqR@\uvHűɂ~"[VNY<`)>KWS6E @.,^;Np9Se:HlqdeI:P`}Tq@HR¤5V trjd{'!MnEqTƗN*?;#"61R}& j0C:Wb)$J/Rlsnٰ&N4AΏ9Iɴ .1aƄ"MG<\"iL(f"Ǡ8N"30$GRCM?h @ lJ]*N"8e fʼ svmDv6<^SKvI2)>BǤO7s+%8(9şhqgm gͨ| ~~n)XrC0 C 71. rIK-￯?5;o<ݼf\e5U)|ZҮ8R)9c^6QVhi[n1%/X /XÝ5^xw4 C0@삂I_,i_|QIu{6NnL#]ݬrm䝷"{oߴImy_I9M,ϯ"Iw*)ޥ)puy (=Hm0#02jԠq/A!`!G)8,yM/6fn"z{}]ih7-ڶ=whPת\yU!Cx}Vʲ Y7YՖ޻J+طFwnիή_1-DK81c[2 C0J30cZIzZ[o9$yrwخs]6'qMDвy+}>~zRRJ`w5= _gxW"^1n9ivC'!~7V[gltf6^  MG+`&{(sw eKmFת|- K_w /%ӉWw/&<}wϘ9cvSO.rwֹ*W,ۼCx?^{! aJeXר1сDuBkxas+e^=|=vmx?zewO98~z.iJyJ껨9_0?ax7u+. _Qvx^4_ EOnqH.h!`cYS&Ų [s^kyx>3umЁRzv_xY[ߜI;pUQ\ҩ Ѽ١ϋ->\IIo!x╒4~[L;Mw`u #Mψg]wU$wGv4ڵ/?/@$\F< ѯТARmb󚧟 _te evxu*b~R&ncm b'O֘h.YRаTڮ.}nxޜL8لsEZSy@\O깪͛lӺ柿Wbֿ~j5rbzL^ve@. gE.vjQsitoFԭl l1j<}??.ib,`#0/>j(8F )eX[0 CPh. _&S,iS^d*sY0,m=G\!M5 s95:[ /fq5ЋXfgM UTW']Bkub & $WPTP6PeUgFTxh[%]vJN`y ~ H<%ha^φ(UHS"$k ,bsᲅzA O:f/'oSzg_Xq蕺_c?'qEmR$ Ǝ2)MRIL,9(ګ +/q4p.;2\S{Ze:q֩mJ삑#8zWA/~ݷ˪VD sf/v ʠvC>{dVhwv9t80RꔱI݊{Ց(XHO'!<1 O UWXB 0 CP.`^ E8-n[ۘD\֨!v'J9DuE%˂UT :.@;1:`י1{$Żvn ,O9xvmO~g'(vdnB7\Gs]]7)/@i4:ڤܳ+nwK|V% *ՐpCRDq$2[o9JxyT4$h" rixzKJ]:Ki}uVEK.ۮ\Kaʓ\8VwePJm5G/"E ,M( Dj`H7NVlp>#8QI`K!᤼=HYm.'I!`Sz?ۡC0(٬q ĻvV1b}= _kT>*xmV#}ik$ |$IWJ| phij,5M@;1gުC֚D.`Rsn?\ moןRJ,=FJ@ P@KNLJ;{gx}įi@[QxhH8)Mn'!nuM~[ؾݜs:ȌvnH{JGQmW.5[6bШ%_ǻ ]u^[ip.HV*k'Dhfp]@^57۔ )j5ᖔ.H"V,`!`h`p,>a=G= nqmA?U_ R?"JT,$tc$dQ"IZLQ`7-\0Q3_BFaRnPtf6%7)o.Q r|9c.9aNC 9ׄ"p Y<_/& -i8qW)U'/[mYgܱd={9Ac.#Gt]ϸWk+˗-_VŠ՘|߽%;# (Xg#eh$u+둇 C$5#gőI* C0 A,R?^h2=C+@.!PԘטRIŵl`úXb +A?!\p@%%YZ5|]X懓&X(n$Ԣ%k9>rLQEHXkfpU!qX[#GE+x|f8"~ j$͢+!(n3hlzj3 TM?|`$*϶-غY# XV7;k>^R{1}&s ר>q~Iv0H]W]9s aCV[g|Yc6g9b DPh8-5v^pb;k\ Ax$W?Ƶ[tWnjKl@Na5rpȏ%ɒϋsl<$ʼn,,l!`8cTJ9]Ɯ.Shw%E~&.u?p3EdR٪аu-,Bf5dxHgo#+o]GԖ3œ2r: ,oŤx+ʠo% i@ۭ\z3o} sOUiϝ̸ eƼ\Y -l! ivAA;NRP@s60 Qkxsl*C@|q!6TpXһp5!`@^`4 /H&1):IR?0/:*(rL9|82wM7^΅rN97n0 C#ivAR-:I) HP Ca&oA3JC0 `4 7R*:I2a^<5R uQ 2O$!`@̘efl C0 C0 C0+D2 C0 C02 ,*vf.c0/)(FLC0 C fL K$y1+&yVpd((0 C ̘f$&$!Sxüpf˹d77 C0fL {F~2X'Y(3b˛s]M}s!7_,W"yَk D)rFK>es|C0c]PЪ $#Zz^=avx!^i˜Ȕ}s l-UxЁvǴ8c|g§ﹻjQ$1d5gk@F(M?Ѯ ܢf'_#ۣ!`T".=_IX-$ p4v~Y{/v7m`2blY>󫈜}ҔY8ǂM}[*WkOߟWB]D 'iH9ae4.yt)p;n\|ѹ6eaC!Y vg>`RzܻW]߻⡔e<_ݲ(7TBVݦC{ݾVkWʏ1qˏ+e,j \[ɕ8cR| ./0?a-!/f5%G2g[HT.KpxկӎKgwds5tH_C&dJkiub Fd ii ~9lܩ03ɻ u9:xtrjW]م{i=صI?SN>V7di^ʔ`y )WB/~}o`h7z#x!޵ ~uхu-WH3|gTT.X`n}x&Db6c]ϗ|5N P C1"i*Q1i<8$g>:}h2JDמSfL>,7]M'7mIz)<҄t'W8Rq$+$Sy k0bHI3cf0*̘eibj 'r5^O0ԩ5+<\γM: D,sDq]=8x;'$!f#zm 0= rExfXqp 2̆jaŀHJ"]6XBꢮT/ҖhTԋy[6+"!/]2[(4}EwlMiᲈ-/<ʴL uA^Ӧ~UҤO&x?蒋} wy ڻ*ՉNmSb3Ǽ? 8~]V$b 3{ W < , Cd+yd~ /$W9Ov$QɋΎJF;2$q9ݷVuԛFcѨj, c$eB|%,Ҍ:`،[`Ng;^c/] 6kea]ifCMevB(а#S (u뤩09B4YwC͊䋳N*''Ba/̍t #x<[iCO(ƭ 2xOkJswﰅ_+8hԡ{+Ojߌ_~.نpeP3;a!Qr?;tڷG T%xkȐAE"JEh_cG\IBk3jIiH&Q% @/mBJO .ٳg׃ $IiQC( fUcaC!@/KesN0#+,s̖9)X` Bacjp/\8Tܽ dx&d^ !66 qk~W^q!ijR.9(a|XZ^sy52K:f&'.QdOen([$֫A"-GX:t"tvSl䈁q8fq;, FMq ޑ!Y3[R۞q$H.R8py9s75 y[^H3bqA_`U&!p4e[A!0ƑLLK"&z15%efdsK<+nc@n0`,n2kn•†!Pa`)c@c$PemDC吼 0 ?"#n!ܰD$#9+<8s,8qeg q<JtG0XƱD(c+!_ fHYPAUcV6}&?3Sxȸڑ#D .{?Y=z9{kTOѸ$;$FخԫwArѰ 3 ˈ^x1vMe31o" cA$Z6Zq~t1z*9lyٸ;lc0C|X 5ċ)>2x%!R,MnLgˀA|19v{L(~ܘ~+g_)^#!$&<:frbG)ĺ縳NtpD㟏MEK28Zk27!M0!XUcaF8o^aQ}fjd>0bKFgCHW]P0 S8 y_8us#6 7; uQ[Fs@h"/\T&KA(B+1Qޑ!4VE"7 Տ!2'}r\z˫<ҲA>ax$$VGo-Y1HMK0Rnpa n0GC0c]PЪV')0kr9g(DMʊb dT "#A&@bT@fQ9b (²QWOrZ{驮vtUu\bK:8ȁl*CKk!`@b]#V#3pN+|wЋoTT!GzBs!`VL :$@y ,{2"d#{nJ^|wsN C0 `4 3t0eTX {|!`!P X1fl C0 C0 C 0 D2 C0 C0@mdbbӝ"RVk>9Vw qyhbx+V(w-tXnICHmK΃L+z`κڵmyЁe*/w٥92O786aV?2a2„G^}U! Rb\pǢիY.ewe([n*?3F pI^%!=*[i٩c͟kvg.Br}B%ʮ riv-=#Cˤy)?!'iOEgTk>^dI%+(sZe*1Ԏ`tm]jB  e9XW=qǨ>g s wUbTZ9cł-Q}"l^CZarrG0 t0?}ѱk˗m)Q"%[(7^s3p@7_?2! .S{٘vE).xiꆶm2ȁAomW5^ہ+v;oO|My岋>]PתڋWw$1 ( J7WKV G9 =2&tЗ'V7 C] nX^LrkܱC{yO=κ;nwr;/ M72ןQF2۸N#a#2bФק?%4MSTW!mX4 BC^lL>t,M40/zguk)оFOW7vi`MtjMzlۚ0c5*֯o/?Wt|rPyIYg%]H'>:\꣟n.(swt /4hw)T\eVVEhmw6L|eqTR i}Z0 C]5bpu0ܚgu{W'q˳{/TDuԓհyyH/MV˽02DS Gs*O'[29{;%/ܥ]@R9`t,ۆPJ3WSG?ܫT)D6%qϩ_۵ [GҎo_GM]1w"| g!? BO`!OC1vr>!AO`ܫ~} Rg/Nb'y{$v?mjxzw JSN킈yEwPH00x6t<-:R/;U+'`Ho!k`ѯo 0 oݱ}-)4 qvA!*c{^w*{@䦮TDN@Bvi5}jvA %C0 ($. <Ϗ_qF?CkY]lM\dOo?F1Sb *qvM,.iTH?-W"!`Oq 7xF%%q#bJ|SD6kH(epP@bb0OD; WngOӾx͍Hf MPK^jܱuA$jO@jy/4|~SzE+o۶p-^ 6zX7;r;)ytn4ż4% v!M .xkaZŠBșBə*vL<$JEN4¨If=3_CCڤqa%2 50 C+H'5f _װ2SJ +; $ Uq| :siTR[_ ScƎgvp, >`)1E>L&;4FUs7,~I9훆uLj|#/velL&_h>{=43VbcUTA5c =_Xl`b !r.&sbb2`2'>bHa {[8O {s{a >|T{gd!` V$ XIbie4@1Gå,ܥ| _%}&~#LA`C@}κmhaR~O^f2հ ҝN}˼b[f[OYC4CA rl!OC삄ztT̉[C^b] {Fx@j0 C0+ VؚNPx恰TTao75 C0 +BĦݧ7wxqHHⅧ1 C0+Φ$@y ,{2"d#M C0 !4@Vgo!`!`))8(&!`!`!dfh#h3L0 CꌈIb!`!ivA8q7$.0a^ J c 2$dcn!`VL dII\a8l 9"d((nFo!`$VL  _'ٶuwKUR+ͦ_h9؍]2)e?E;EZTT!lj~U9쪿~_ǰIh@QA삄dm9~8j;2ԫY_|.5?v-7g睿oի.i >~iܡCw }WEb^ROP;UCnsΙ:_d#N=$=;a@ݯGU/[>vΩCǰԑ$1 C#ivABQu1QgX 񇜅y4oDʽ=gԜlE)}>80/3ydys_7\͝w\/e7kNlrVbx_:YO^~k7ݷk~B3L4[o>zG", -| >c%gK|}#roNX|.sK,ǽK, J Oݻ$f!`oX1o}-c?_}UΝ.m& G[ L$?|߶ <XfnkyJ&nL?ڋm~hdnfzG @t1v z 7ᇹEk/FG@+ Jm}r>A{ijPz*O<~{i3;&iP8@ݫ4;s=5Gexҵ x)s&pzL%dw7{hr7 KD=")sO}i q,w f!`C3vA:57oJQ`l?Y4 YG~6,m/ċ35WO>n e]p=h+{\pböQ/ w}^~i2ENnz$mx>LBV.c,`ppSC˺SrE.}q*>Kt/MҧwC׎]%myަqcǏ[wJ̌loXk\V uѿ_]#[ʄ--|kNoѸъş{Td.zľ}uF䳷ߟ7=Lr ̌=&a{7p-;/j֨_n@7i8u׏}=Is-xxa#%.z6 1'ewヘNhسGu&8 [ (YHD]H>`U*E{$[}tc+!`x`L]&k/$bZ})}mw85y!^G(_t֙,QqcE\cc`խлN{ MI]·֭Ndh!v! ńWsr &"*1ey䇌i@=&FqE΁8p>=m؀4d4L۟Sbyf2ͅ?s=(퇖]z+OpM[VI.YE%^ /5s㦍۰ zL^QDۮן,_.ow %]9=㏙>I0Yj6#_I$b2u5܇AH'/Csx$g*/GMTi@[ d*͞ 給&!V{qJ+ы@ixwr﮴V6 C jLU?! >4A+si#tՕ]2m}D&1 @k:-U+r5z>0'zvA.RG;mqք;vhOs9pM}qP%Q`h+@v5HN.p@I zS =c:1i5o<7p@7_G\;u̧{mRcFgKKS7m9gF om?Ɵ[CoPʿ%ZFx|4;]ۖ O *ka~yGn,L0}eM|GjjOǁp,ic zp/0+pJ(d/-z{$Wz3^I(ѕևqf}C0 0XJi(OkJsLFg)u9|pdoq'7m7vCT@>*n@?:癭o _$Q˔.-~H  Ԅ?]\Oa&O=83)o\ L17tcwb+,SZxG8҉s0K2\)P L~VxpY#Ӄ'x5 C ,NuaTS$$Mu`bZt$oo<+sl}6":vXUZun;ܼs@(ny~c.pA^EݤǶ=]ԕAXR<,q ա{qKJu vis <‡? dA72HҳݡlM4gj$Tb iq©=<%>zn]E!`8?ٍ $"'ӟRY%e7_jvjG &_{+M |nuxs_.pt D@5R&Dznݕʆ!`.ɷ K%X R Ӏ]<H:-:P!xDc!3.Go@#5o3U1\zQAAU(NE)C>S܊\GGvA|`{oy ~wLԍQ űy-2wiʭjRǁsѵYhpkdYy.Ƽ" {dv[KL#Vemkn~9W:dm ͂y ? إ]@hB!F# Mϋy`_'l){kuj،4 8U(=q_H.K/-.aH"Eh](k}7hvw !`~XJo #Î t"[+k+k8P3Z݂Vh/|"s"V9qE cYGR6 @>.A?8z@.@˙q2[I fVP,RzH5֝oŰp{nA3x.S3t sEZ3iFXQj\eHM*ddH)EAªbƲV ALQ@3a3g<Ǘp10%=?TpYW3dߊGľh3wǂd#&tBʧ3Q9ZIX<VqDÇ}oEɒi={_}x|I>7h>Fxo bT'a }2C}ĈDbx0 p{ K X2͖߀RfkO~,o‹Q7fC &_Ba%RwSiH{.{&m$GWx]!`O]$xe5 L+QYX>4X/Ag& lQzz'),!%Zzx1svS@j6~]B%79ٰPpM>(/re.vaM4Y i@$9,ԳITGVZ%@=[oܝrdu/SziJ鯾,+V5\R|U*˶ԩl}澗05{JX!_߬ӥ'Oʁd7H:ve˄-Ú#Cer kcAT#U6XK lt~e#ύds vpw@MAL5wgyqkV̲D  OJ9RQw(lARi0E~Ia߾ *5~%s2^r%mR\M`+.-a pd '^ؤ$e_rlxvcAdDߋeJ~'6cG\s5!gݶG!_ )~J LUhԤέ>zJaaҺw.+~i$QnBʆ!`@B{IbQ$sb7\bF&5~utѱoeVRF4^0 b+ Ǣ$$37̓ x2l,D1\Og7\ q?sNxDܙ'aE!jb]A):IBH>s<1^cw;fc9Rk tKݴdʯBmMы$1 C b]P̋NP0O>awLHzC0 C u`L] 7 C0 C0 D0 C0 CH2I Rg$h&v/vαP~䝆4hqɱ&kao!`Dxzի>% %P_(xǩX[CŒCu:d#$զ ")O|lʽR>80/3⤻ﺅ{:I' boy)͛5ɣEk|\ona/oת{hEAPi}ƆKD/Ї+ gv`' _q/vnR1 C `L]k?p[G~-%Fu_o[FqAg{ᄇ}r_uD{tv(ڻ\zV&>?4{g#mޔ&ゟOuk'ƅքɣEknѣit!z~Z;̺:p^Z)G5[Zν㙌[rp(T?DD\ 2JtO_ٖm76{u4 ?tiU7ް'ת~gӎݺU&44hao^szƍV,4۠2 v/MaP;%iwufFoQ5 W^2i8uW}=v!8{s ^c=u٥q`+V(9I M~脆={tYX鹄{+xi(CD/s37:vshO^{9 Nm „z\8Ik !`ab&.X5Xwq̊t+,ا&rN#9ہ% q-g =hbMOjJܺ%S X"mjv=;Lt@{vDj(D ^zgf}Βy>dz =vA<E7n^Z>lOxV?2aj1]pMtI+)1:AnM`E?U&ev(ϥeEIQ\Qns \"e؆y 2X1"3oN94aϝJep6\'ke斪U1h>bxvKVQ@ɯWwygܸi6޽#r(cA(5kvg.<˗K5i%UoZ?f'deBvЖiPyX,Y3'bה2{ j0ok$QӾxs3T|G`î4Ƀ3:o*ɛy)I%=xkےB䤧%hȌB9<J  ӵw#!`"jLU?! <( O8j/5C Nnx옡\LY( &xʅ ]G] f-?'FzJhBbS@ +w8.MOe]-CQ9(TZF}P?&I2\>R].=wdDVWnMXco4W2H2P~.1ޞ3qtB@v5g&  C?͛et,O8 뛯xtC1Yl}ӓV-e/MжM90.fQh Z %ZF05;iEk/ټ# ś^P'3e=Cނ#,ܚ4>w*ElIBI(J/^`VH=P?6,HAC[/W &.8h(ǽ0 C`"$.yI~ZlY.\u mw6ԫ,n+ m$ ][W.HaۍcrYy74z7"|&1|X=|bEn}] mVo?I.G6?*9L@(6r)u+bpɬvADF$l@ .qQ֤H`H9G b {W30isE˳2 _FDPW˷ms|`-3oql. ²uռض5/s2@Kʓ'b"|n?z)SλHy7/AAJ)J22HҳݡlMTkj$Tb^ݺ^Bb6$!MFے_ PZ#@#w#!`"R|Ov"C!ҲX ][Xt2O?sJRjF8BwIc)n,J)&K+BMc U_ka@Ӽ@>L_1l~dU=h8"v'>SuǾk?QJ" ZʞgDm!߳-qA]eoܹc Lms'M̩Q}vYJXu횭'7D`G]i2(±80|xp3#@gƵNIBH\j"Ž* C0"`L]@伄[+[X bpa&u9>#݉U DС!-ݞPӬR'"%Bo"l#mxQE=0 ?%* pK7GGg5jh7& ܹcVn-U2Xbp!g/n\`萵*K)4 oKWߥ]@h"D. \?/VtiApS.fxHPGg .],NzKsO64^r7nyy+ 3pV6@w׮Q{0 C ^ɷ jśD!5Q}YЁqEsP`meMDYEWSzDZ #8^GKR Êo/W7]a`NK0e|хm헛m"VjNGC84J 2{ me;ŒX#ϗ͜-9Nw?p!a;Ȗp,f3)AAb"MS ,v )0|3?t̤ҸM(c{v<znĢő̇(` DȏMM)9r @4c%)qٷ⠳ܹcA}L:y} y48ZIX<VqDÇ}oEɒi={_}x|l'cG"vm@aWɌ_NҵŘo @X 'y-0lg^}aB luz!4g [ϫ# qΐb qD 1mDI[2 ) &.8h(ǽi0 C H:HN%"K[Ջ0^PY R/B&Q_e٥ _y"u Q!ٕ4z9 m僇|CR!&˭B6?Ds3P6&iS&$ ,١$T.uO߸;ϝ~2V+y|2Kb5YåXJL_.7Pr:/ZlK7m{yn׭ثTZ f[0yR4X$#F@14*eR`Ě#Cer vAT#O&<~Fv+,ڌqyK u"~-Zj~'^''Wn%5Rps)뾏D`jj)/ MU<" # r.l!G?,q$bX%svӘX{p&wدT:O*RJՈjR".L>n!`VL :EE'I(Ifn'e,& Xcݹ0"n<<~ $=3O4"-|1!`!X1.Hx $$a|3gl|uy:%CnZPb>> ((=H_߃٭ CH5X1.H $$a| c 2c!`@ 4@Vgo!`!`))8(&!`!`!df.I2%L^ýTT!uF$1 C0`4 ԛN 0/\ %NH 17 C0+qA2$a$0O c 277 C0+ ݯlۺ*Pqf/AF.wq"ݝ"-|*E ;x [uoꏥ^/1J,vwC0 ivA\ c$mۜuKpWMrwd\7W˳Ns+]j[ny;ߪWǍ]8J}ҴC z)#>~h{/w2/ޗ.*GoYs嗶8A{zˀ[v֙qz|; i@sc ꚱ5 CH&f~gW(8$^%:k>N}ƊrYgqJfMTˮXsJ͹f2.9q`W_fRA_&mo;^5&~ءne.+ڋ'??ۯwgooת{hEApeRJ=:vzuk.؀W ;2Q!`$VT `Ys{}љkNNGCVﺅIO ] I~~"t`a )OTi{vB%5g;k/ xݻu=7)nj"QiyޅM7}lʽ?̭,e\{54zT>ZVwW+m:q>kjPz*O<~{i3;&iP8<ϯ,GC-3?Y4 wVG~׭Ss4=-t!.|T'qŸ>[Cc{0^W?\2emU~QDУ>/4f'7v=TDE G; ..{1[lPW1;9;;U*W_Oۇ52K>Mfy1r?tiU7ް'ת~k?Fdn ?ZgkNoѸъş{T< я6fR%޿ߕP^І`?M }%>=N;hָѱ?Ǖ@abj8i8ē{߹߾6:!+ ޟ7KEfF^Gr]V6 C(J&.YY-W(_K/uuWW|!Vewn+V^6YmY1cZ0u)/_۬ZF>^q>v'r!>p+`ZGeAG[@C c,N",Drcqڊ!Q͜ΚYЃ#~2(%K@pӶ7|a]}y(hMOjDA. O.~쯾K>א5?hW)˜%(6{XP"3oN9ɪN=:Q-WL>Y+3T! #gwdzu7|̍6n.+zG&`/P(Q" k?mv?\x/ݷy|ϡ2Κ=EGcz>o!f2EL<4ARx`zuaP= @?!'iO2$"${qJ2p@#dl͋I";#GQ]yY"0Zy&Z镭 C0,Rɴ :CMGGg$!]":?E~2[EgŻcV7ታ3O?gw- ,]u5KߡSUD])cp.8PQ MP.RAF "4l Y&Cε U+r5zQ}zvA.RG;mE [Vء?UW\6IB(?ž.@` ;်  :/'<7rY8 뛯xtZ.:6ozҊ1]@ڶɜ3{#Œ6 _e`㌲n4R~헰فZNLz9(!vd9(H[.Tt)c_h J>o'w`H 0!'Sf a6L6ZEC.3u$2TkWl^Z0 C!LeeQYe^p=jcw++T/}Ȱ)^%㎣_q̐6Fs cD9k!^y-o_ei)(eJ' I&'bz|3yxY5>xt]n% l܉8LiimFۄ@v+bpٮvAaϋ0@ N`a!EB@XlQab>pFDx~f˳2 >gA;^-:Ν[n^9 g<}~ZDZ  /dˢ[UncxI=RGkRfk@)qzh /n]/!SCF as0\Ax00ѐJWlj< !`EVdIi=ԃM%>m XbAgѬV$lA!d_[Nq(ģ'/>C}EB cAu=9J]^=$L%K.=Ģ@?KcJ9.Ycч%J'J6b:RqDl~!$m>S±ڤǾk([m9,v?v=.x:ucLӽꝿNS.ٳ6b5[OnCNPHVx DUJlbf'%a]r:9a7o-l?ƈc+*l^r!L~ޅ*]U@&I{pHCWlʆ!`EVdl>c: WBI: Nzbc. H!5Kt xҠ+(<܂zb$8h2$b-b/Ni"[ao3U1\zQAgP-|- .9rA Q&Eܣӵ l^[.u6|/ʺv`8\r3 W0)/r-va&sρt]>m#6{^=TXv>:)rW_?DYz.}RbriCVNj/RM^|uk#8*VBzYg#L ot @ CHxIQϣJ;9Xs|`.siIA$ `S~ Qc1S̾llċK.>-"z,4",{1[/df{&X` h2,B_( #\+Mf$vNm2/sZC WMr=?eR~̋tw0a2ؾC-oY?_{5eghg!`fl$mۜuKpWmswd\7W˳EwwU{p/0isSF}+|*^-_pe^ .E/E]T ~/mqɃYgzc%4<ͅ_+>^mDge>[C0 $ jv|vD:_(_{qS!񇜅y4oD[H+{{T9٬Rf%}4LL#kYcפ _sKY&;ԭ,e\{4uƽۯwaoovfh|Ǣ+/U*߶{ۭխ;R~{;Fi!jb]˚ۻW=ro{).nU'usЁe4Anq5=Oi~g'*YR#Əcb[ٽ[ٳ^pG3zpfv z 7~[Yˊkh|2p]]}Rn߶=:VJ;uW}d`SI.b_N͛ٝAt/ܵ.{1[ɢY *au1ggJx]Tv/KӶuеFf;<}g[ޟi֝<#3#/Fn.m5}VfnZ%CF p* (.oP7m܆]лWL^QDۮן,_.oCeۙ5{*sPMkDx C=r:fevxlŦfa L]9}fS=-{ 3}ړ ~^r/NyǕGȦ24a !`Edmp]&{ԣ󣌱nR.@ {?>d]prc ,RO e]V.>GMuӽ.5]p9ר(D&p]ueG@im2-v,1&r] sg/+g~H𑆨ȼrHot[{ȠAtk;˦8I(R¥@v"kᯎ]GNT>1gf].9~d}uQ˥=S|f MOZ1ft (4uC6sfo^Fq lQ-6F6;P@;ZDb@6ѱ^ݩҖ ]ȇz?!4`"ÌR!L~چɦ24a !`EVd,[,Mӟ44Bb4n{u玻-uT/ET\ⴹ*oB#ya ̟9n@=ʭ#2KK4 I&'b |CX P:Kr.'#>s;Wߟ72mFۄ/[2سne`[P]&"=8$C氐"k _آž|M Zt77[9h`_9ۈaUjֹVvor!>e:my!CXݺ7w۶nWZPbn^dznh=9ϐS^Dz!/e>y&ef 25k4&?7 Mei`@ C0zɴ pV_zݰm|j;Ă΢YjeMd)8" W}Q8$ *C xw+v{OP2&t/"L.Q hh.9o?ܡc nqe?}tq "=voDk|ͭ$MjpvCDm9,v?v=.88 ]0erNnw;ibN껰 fHVBƊkl=i&=:MCe 2Z[&pRPc6 {!_8% U'4Pcı;jٵ 8`I/i!&?dSa7 l2!`@CU2vXpG硞 АNXu DTDBEON! hx#ͥT  '!D9,V9s>L/IPU @v'!ciN{S1[e.{^GIg5_dM-rµ VZd ..Cn[{uS__%:dm ͂<r2vqG35"Hy"(L1ɶRǦ8%_(WPoa_0|aDWG0i v`)1E|!KTNE˗mS{~}/m>5{JX!_߬˳&Oʁd7H:FeA[$<c QR9\09ՏiI$ `S|4 gO1JV|Ǚ%!2UG+ʕ*w39/ qemXCa &ӈܬl!P`#vA{to?-K< RR9Q-"-RLp8vq t v|,16)9\|.[=ݿEXhDYcDk_ɢ\M4@Y-eY@fP`b;Wx(=0^얲E )O42`mɯ|" Fv0 C`"ivABIzGcP̉Oݸ  CM er*qt-E0rqx) 5|7"Y &rr/1 Cg"ivAB~$ Z27Sgh2l,D1\Og1.2~;%f AƗ"\!eiDŮ!``4 `$ Z27Sgh5c挍?.jbfdv~2rHw Mr C0 EE#=$S)0OJHRgDLC0 C V̤:C0 C0 CHA.HA1 C0 C0 $#4 lϢxh>Z TT!uF$1 C0`4 ԛN 0/\ %NH 17 C0+qA2$a$0O c 277 C0+ ݯ𓩻X 0c^ :UD cLm[%z2s_/BC0 "+ 5W'w[bR_ٔ[ccAHX XuJ((>W}Խ[hz]ut/Da{gmco?H~"R9Fi!`D#jhvA4DyUuio=#cAԏ~n2(z'id={,pw߮ 08 ئ_(", -|2˜rAOs[rBBVP.vOY_t?Y4KkC0 C``,~v{ҧwK.>wwGnM: Rm߶\XԭSgx8i\P̕ _3z=.D/}R90{tࠁR ^qTիUyK>9{ nM¡pR͛Z˳Nݫ4; Nuwex޴Z;_~ި´kR˻SVCm:gI8y!`@|`,fv7i|^pڔ"7T͛bd$n /hsMn@1L?.o0Un=\W:вeW\vS&bKt,m;kG.wx϶?oӸǭ;yFfVΫna͓OUsYz7&|~iG~Ywn*~0/^szƍV,48Feg'Pyyœk-W^Lxx/4^Z27}fx%'3V,pyՉ]0foBr&_fͨDҴtF-m@пߕq(ZL 6I&'p)o{[~Q2г<}i ̾R5׫aIvmެvj!Pl`qL]>ga%`]5tkK-Aujɩkwnʕ*TR GhSC&FlzL[rnyK9 ?Z4\,7]78]}On$z 5h∀9sՎu_G& !g*+Cn :?a,}=FSm3y{mya@ROd>Q s P-WL>Y+3T!@ó;\J~_>kMaE=#r(`A(5kvg.<˗Kۼ `t'#@.Wlux>9>ktBÚG֘>It*yMaF>Ftuyast}lt#ُ &feĀ!k?I?=BӒګ*Yҥr-D;o6 e%x0^2邚X7Ť`!Pl`H]@-kȻoה[a&9(o_ Iu8| [6/rEgyг"c@L7 O? ewtX8ӱC7^+lꋓ"cI8~y_vu:'^{Z!x0g1u]O2']\8;z0~qJ 4?aэH`'y0s x{5d.{>痧c93cYm,ey?Y|ƣ}T~z~4}b#@蛞bl)cP~iꆶm2ȁq0 bA߾΁FoʢK.lkJʼs 0/N=:9-͙"SJ<b?MPy#I% Md(산[-zʍa@O^O#!`@A&vG :`q'~p%co+qjӟbeӀRtc_t3!DaV8./g.5 ̟{ -7 cA9_]PEe:mDzuռض5_[PpePz>0aع#g\~삫d][H[W[z@u =ĺpMI`>i]v `ϒZmwAܟ J޽iݤ d C0 ,7ɴ SukK>`f]6>[ƙX)sw[IsjT߅]0{F2Vl]fM_{fE{Y*`Ƅ "fAAYQE QP0Hd5w{^wU0;7_uuթS:;>t2K %q]Z=`y%TA!H\/DH/ 0uL5OxCzA DD^N zL 0:t¥QJg C0jlg 1E#HʁM13"iöxg e8 ~d-bw%+ױyqx)CT.d:^A㌀lvIVwz0z {-[oYPD0lD&;d\/;&ͭD$bD__ ǁC Y${d$X7HF`EkM@e[}yFW|'KʌY|@zw)B]+h<G xWub&SH/@"'!ː^j*?8 L}^:tI㆗zf C0j> {{~^b!ɖG ~$}kȹܳծbg]ou!~H|9ܢxypn`d~I!>UJ:'y[9IC ̟d2oK~owWB#U첊!9L,$pHA<܊e׼0^Li>dx S(nҨx%"\':5=vow=;@^BbN8 05|/UPyGhȷܱఀ#18wa/԰$e~8"sgbyѵ|Ѓ_r@ \Ԫ5[Y}_-A8"bT2`Ǵ;c8SY<毯3%4O7N$?T ,Md 18"U&?)L0*GK?j8X|`$H>9`#$H $ јў`&*aVq/b:@kmS * mq8BD ЁG\X3U^>SIg`fMBh(0 C S-zA ..0YbAx#a9=SbƬ͡lM$Fq ]^F4E/pB􈓺⬱TAA8h<慳@C<xIU*XqZlO5M"T&|cZ.H:~뻿k6 ޾(t+}K4Ex(1Y6ogIxP~!`$1M/(ꀺ2Y=dݪj84eK߳v3? rK/9n}޽ߕBws 6:rGEu}lOټ/{G,'[_]gUvީy5[hOt qz+8>Twީny.y{8mR1 v ڕb8ͧZB#(Ö0 CH?%  N (M8]y_%yK?=pXn;'3*lr9e; t뮳62r *ه{iq7(6M6m>,jɓކO6Y•rerZ6^8} %#20+>:;YmŪP]kZ켽b zA0anRFB~d #x_BNh\}s~e&3N;nGb+ٷKd:.JǢ<^"#w=@} e )¯$}nIy.q<X$'jI HO:C\imHw<SEIbY{-sgFq`G˻a~KDC5^n| /5h+|/P㭸<[0 C  R/@@e+ z A*#a|l$\8CȷRč#Ϝ#󳥲2P_6*6=Q`$z'1ދlg@PvvGECfy$A](8BߕIa7ǞFaaU L&6xpF "[єSO$ t2 4pMd g}oLr!.t"}*y`BEO(^Ǽp^/&k-W(3L- bKξd:J(}\D/` 1|!\p`gqDM@· $:;Dĩ7kB _+(3A`0HɦMr2~zmEC`wo+0 C R/@čmpʕ'P =ފrh C0 #WJדO ՟+cBš6p+%1,FFO˳Kk^r0_zᆱ/f.\HN[ /6}bp.p(Xʻ2R p7'.w !͑cRr-O R1[ћ8,U!ʈt{J18H;ّ/nDeKr+NG}8$}dQB"Ȑr|C`BR1??DsBd ZV\4,m!f1K A`2w8b%YT~S An'ܫ@ LG\"-^ ?\B # N$m!$ ܜw r­BeA&z-O\2?8WsOLMlẸEBqDHx`c$쇐$8 GeG .SN>}bdz'v'H|r<-=RM$*#P͆dbyU _.  >W/b2ɻzBt2%KL\I+椉.t/=`Q$>IHJ+ﱡp&jM7V~Fe(8ŠÓ%73!Cdb=`IQW_ag+.,)ѧgLW=b8-\uYCZ"s , <GA 3]t[/'Kʢ䶢!j4e!`)G]z kIM2Hϖ-H*Ve688!2 >0Q>!`Djaܮ?{} 0l՜qܓBH,&n>(0//r 8HgJ+I?#@*w,CAZ IKNЊLZ1g?\"XJ%\3q[D\x*3(JDz.qcÏSaً|KҰ9 .l/ p(n(/oG5t< f hw˸8r64@+|J_,v)D  ]zc"nF cZ2{yTXobxI1 Cc^Pԑuevݶ[]m涻l{v?`n槟Aνv%ԭ/._OZ+tTn{P~ℷ駆2{%kCGyqGewJߕ&3/bmHZqs,]]a,gg뭚q~{u?ivtB-hrԑm Pv[zPsneB(?^r C0j$lb~g|2 't"{?̽O:FǏ~٪.YaF>!9z 6'r"6L2_5mםѡ5ֳB μ $C4aAtG/]{1j˦(l=n4f~繯N~/B*IiB+%~@@8M\^9XT.}o帏F*3 hy11/ۯ y_!`@!Y1OҌ.|z3̩$?0߾z=1+ <1~Ml=ȏ?6ӻd_>Lvݩr uUbAןB1HK?*+ԓC (jGdoc@G D1+Dhh㑯>eD/L 1GU,^?GƫٷLxycQz]z{҄O<}@zчsNT'Pμ`fpхg4ټ1y_e/u>{lHO>$u{ P!O8UW"NbM6"G2-5Q|A[_]gUvީy*|jy%pi%!`v_TG`i*(M8]GJGq)f=6ܠ!gtKy c}"jv@6V.~2j{JK 9L6{~̦?״LBEz#&} #20 PW|Gܜ8: К ]4XYID!mӻd #c`V]eabz7#Hd~(|b"m߼r\r9L?2qqIeN,t|,JϿ˃}/Kp~'߻}*R=Κsf8p`H0%ж_ 9FL~ q|lʐrD "Jy24 7<9s{Ͼ-j':̏p1D֚ Il?%E(,B'LB]u}RX-F.l ZUnZ̕n~݄lxԻßO1rPDd eShazJ'7t/d1!3 ($WЃw0O$v %SO(K$nJξd:ڑKǢ]py%ǐ-\p`?gqDM@·  #<ґq88Q)Věn;NF2ǁ 1Jx(&|w?AaRҚۊд!`e{J){s10b? hYr3,۴?]AA]\ވ52#`.qAױhL,j,lFS:&@H-v*qvqظO>xzuRѭמa6ts$wt yI®4'BSa8(=G$l=/d, o_h-/?r|"nw٣@gjI[k5M.D|,J 1"e ZfՃ B/qnBrJb`I9Oο{+"oJ؎H fZQ L!&?Q\kPj^ΩoE9!`@ WJ364i aB\ġ6p+̇h?16/.Ɏ&ibà{HNva3W=!^MP4N]ĭI)FN5OXKU+FJ!DώFqc$*#أwG,$cG؈csWD|ԡg=s^*2ӷ} t~9E{00v a&N S}35|ʇd#~]KMx+DA/p4?`S LC OQ܇j^ΡoE!`@ YJ "Os-z{O,?tNP`E Gur>UT/ M=w-_1cb '`'_b >ɮ:dߕIZD#pIyКk.g+ .x4ލK(xmJ!DKI*Ά^wYK&T 1y+xwV(L|~ P9C/P~o v(}\z`gXAMr{K9坅HrX8L[+ߡ*vdP*9!&3!Dy+i~Zso+B!`) @28.]N$6YI\ șHMٞh2Qtr+9D6dfl1@PD.i4T[4[Cap9Ytli!^p9O0GnD%ɹmwr |[?ȉcbK|Xee'@4::\/P)-Lnp,vHn%GH,B#$VsV*SwCAx896vw9= LZ170JxRFi͕2DcQ.(x*čsU>68e^kD_@Ag_tCyxyVf>1}g"A 퀆P Dž-Ka8p$wL"cWM:òZG j,:<ފ˰ C0j 2e#A)na49@fOC,~!rmJ:NSSEZh"-IQ#G}qc9 WWד7_Hcn~NMKa=,x'OZh-Ię'FG eU"lZTKC0 "izAQǥ 2IQ9UE{o6Sy.az\K-&X"~N.,zArk!`;y}2I4)V{IL1v@" < [,D.g_ E!` izAQgBMI T0iࡊ0juD_t޲!`!PE1M/"kL5m,\l>hX0 C!PJ@vgo!`!`)DdX2 C0 C0 AdzAgQǴ0Oψa,CzF81 C0Bc^ &Ɯ9Ui4PT!`!P1M/(!"&)^a^V%[d*?;rn7tҙS<8?0wOA?V>bEECyi"eqKc^J&) K5a!o,>vSo8 Q^;5r[BqGy֙ݖ-9g6[RiT{vmwtqLǭOƿN+{CjٓxH(߰~U%_āMl:dͯX$O=ӹr޹>՜{z} o$x܍oSO_mםV]^gL2:"E-w|ZW]g;lMQ/B2x O kt3&pv?ч=Csw/*w9OdݪkN6,T&'̫}#<,={tX! ݧx䄑JZ_J/%k,*%# L(jw8¿Xiu#˼[\/YXz!.JGoڵ}1td_ƪΫD<( gk%ͼk@v\$M{m\b73[wPKTyiBX夭j6gzϚ7ֵ/?WNP^kM,efx) *hL)j^rnV@M&yp0_}ю;l;)nE,W̫}x xKAr&r0RCV]k s|4WӅyӍ]CG֟D'g=k>󧗖(%cwm~}(`~zF J+أwclEM6n^ƨTc:\>Y/Xqyx{0&/|wA^tCr-˶quhN$!RtO?#c(%.ݻ4 C^ v9*|q hO+RN'{Az M)+3/뮳5CƄ+/.SΩzƍ&oZps9ogiӧ-T/xym8KJ>-rG_-[rA{Zhyt `˃j}]|]xoey_"o-^{/u^#hJE>h [:H5 Șd p8nN;H;do"߳;:d38;?Dz)_Єk\EF@~ʮ" ny2.X"KKŜe B5i~<}<|ه-3~rs?&.t5lP P0XooHJ'WRkMJDct0)!ҊR\ZzY  x~ڬ-Mft:eo4i; uiA)pӍsbw8̿ж3{Bn)dQ=$*H_k F<_8oV|~נmY8zA޴\/hw*'#_/8or(0k"t.}#ű4=Q҃+i Npҁjɥ{'f$؆-Ug?;2upK[ǖBP+$1ed!H"t$I\i tO9@MyL(ػcF 5!UorM .nnuҢ@5VGAƈ;j ;uŹj@UK=8^n,) k.02ceD-ŏ H{{ {GeM|{!nwanIGxL0z3Nj>A ;(. u&NesFSr)J*t':&0 C\/Vhpe]B]Pi+#&Cl',w+qm% P8xJpq폈E蒍2^LuBvIu#魶ꪈj0ΰL;f.l;@F&Oz['@xs+!:!?x5 ʝ{,>Y)Y?MXQQ%?'R=# |H@W yWVUfVK إԞ=* OEb"k?&բzĉgzk/5Ԯ5ᜳgr.}(` qB# QW"LJIaKҸ5x.J - % 4Όh&HKuc%d$ <YpzBQf:X]7ژ3S`%TDIf"В܊vś@\"DD/:ТZBsHG@6/UI\0 IZ 4Ź?C#iQ/S>Å<$*vj$8b% %M/`?bDNU: [Guʰ: n_RIgĖ2վd||{1TNuqmaj^/PHJެ*՛o<"CC_szАt?z"{L{!YLtݚ]N4 %J9s )+ֱ}W_JH39K@/P/ݜKִ Db'0SZ_qD8pAV;> &se+3ÆVt9q/\$?^@R.3P:j՚ri?Pi vy0أ p8"iwK% )lRA\.ՙBhnNp\#s ;?q;)ߙ0zfXTH$Vxкfl6k%+'ܺ]& ȇ[G)~1$Fput '(JKS`߇W L>D\ǹ%KPg8 !,H_GLY XHq'7QN1?Lܚ m& tpe]ļ<кbN:#&><bVBHeKuU)^oAD=>Euh-8x @<P.?L:il]Ց$%$NcvYeǢ .sI0L,*Y!XJFq1 7qX]X 9N~L~$Ҙ.W:1Y J8"䔻3xy41h.x"D22й̭Z~h玱q&~|`u' Ǵq3;Zxͧx@ex9 Nn]g}_#͘hs~4ǎ"& u&RR`~R^'V'+ ^^&cw"/A_LVu%qzp͹  3 Xhl18"/qoar>7RgwVϤűˏx6OU<3K|0+›P7a0x'b1-f9N>8q XBْhQV|к%˺!Ay'bL/5a뮶gbaII)'ץSz =]d$+q0Q٩ZEnf4's6AlJZB!ǜ),n*3{@X?eɃ>/EJp\BTB܊;o/w~iN;N]SNyẫM$h 9u*M6|şuly!uVvˈ^Qyiɸ 8&BsN9zybuS67 xt$^r! fD*";j}CO7 ݪaac'dEmщ#@>1>y(Ss D`gRB+~jV'V; P]cXTДu2kT MA>Chr{( g{GC# H7^a'z1W!{1bvhB)q4 4$x Q&$.M!E 7vz'Fʍ8py4pVE<aLa`G}I{&L`pcLx: ީc^a4e)9ծg'3'ۗwx׍x_] wbֻ@j_jG`慱WCv8a\WjY[x KkGxEj)5/ռ~G9K{kL{~D U;P iHs4ځ bb&hYiT"ĴXXX\SREiLrKO2=]UQ`r GZ@T,e¶ӭnZf`\mD*"2D܊_F {GZ5>īKNgw2L7My33B*aVż$3ҩx1YPX⓷:Aڲ&e\7`&ewH)sBlg!LJB3>԰ZyeSSq#f7/]̖C8̜,cl C6ĭ!aJE_N/ɞ8jQ$cV[6կjW_("oRSFv))̶>hw_o=[%~79aGG~~K/>p;oQz讗)Iӵ4,Et8BM=$a+9-M+\eCd82b !@ ᅣI:>pfM"cݧU:#eaca$mT&ÈM嗻O=9t-IIB^12ʎk<6-htP'o$PfLWo7_T?}j z-1ɼuVY(n];x$M/"qP/@ u&Ar,kP-wy S 3KKi<L;g1ƍ&oZps9ogiӧ-T/xym8Kzrޖ[L9ReK.>{#M \V-I1ː^pKaG_tY,M6onET>2 A۞qzP&?qҜ'NBIghĉu犹s, ُ C?n oѻ+8yXu!E>sNsQ`H oL_$)^cW_uAM6nۭdw,ﮑDIGIo`S?h0CA1;gvCHXc}A0XE đI /6I{U 2%8K.>iviG:mު8!4vwQo={B8nFwų9d+^on+B-/O.pyK~|&,m v!\lΈ!B7m)ې#[6o͚Z5'>T  iN/Z#utezkc>/4>}t( omkI_Tot3!FYǸĉV$Xm{A 9F>v[9Lf?}A==t645(i )$i1z %!lI2+}lpנ`[\s$?M*"BRَk-_;6kfSENIߖmѤT*];T/ Mn\6Op\ek١mgG)4?BC(2pCFg뭚qaOYN~"Dp  q{Mk؞=qR=N@eP&!2^"!n)ss$MYF~?kV(]R`g-K,+Z -z,hI2 YeZs =KB؂XXNQ ʩtꘛN9I|q4 4yg!цǬ""-6C^N *z q"ei3[X?SE\{Eh^nCa@ AaG+s@ x k[P[x"V"^j Ab;. "BTbSܻ"jz 2-F{mL=,%Sd9Q V^@Id%SڕIdؚC[dbEU&ed`,!FC&d1oUVx9`6Y/~ Sk}oB;l 0E e:![((&oMlxXNad{l?iɆÝ/9DJp_„OWx#O): wkPŶ,W\Y}oZ;zFzOk{B^7KVZq95s zQUgnl@&wsH#֪q$_3zl8.Ⱥug圶"¼ GStB;UM^I0A(co%˻HB@qFSyap4 }na/ b9Ed8S$S-^nQ^@C# ɥ^n^@Zi/{{9!Hw.Nh`q"Ncgϝ\oҊ+Sb&$nh~uC ?,=zp(T=>J@ai*^ ba|y `fwl.񢺴^|ْ uz!kz:^yvF+X(߭;Az\#Ĩx|bcqOdQFt96$2<r "ӆ 4=@Id5^Lʉz' #Dw5Qga ,CBH/e]ZL٣h_T,&3m2Y23=Λ}b癣Zŋ*{ڵ&s_~^N!CKE4Crh3zl8+i-r"}sJ0 [vma%r&BB-Ɨ," zO lċj0&t*s1fqvt 31cF?/C4$8Ñ[d2*iH/r+x٣]N.'^6DНBJGlyLG'#BB}(V4?Z['na2Lyp(=>Җ7 j)$[b~Y%p5?0`^b]uU{7$ h2 ;iR%eTLm ݈ "WV1taTIP(R#z52E6[2 23GN[a\/A( R%NR6:FҀs Jh8 'drHgJˇ,i쌅|r;)UL8,K3a1 z}qDWrei`%KTDsVqy $ 5.A"1c ?mY㻄&b_COHBnug%NC0 zؖLer)! KwzU/vQE!i@<9˜)jaCàijAy*hjĪA4oYpt`q"\!g(_ P^  Zi[-?Dsq4s8oS/XoI1fy ⎖,^})PPuw_WK8b@ь^i GCO<^xʤ#ΚC`f7r'[xq ' %i-& ug%N[g я"sBN^J%.̺9A` Q]Ћ$<`i),̀L i>*G{>n^:Az%o=eDG4I"{}Nj CYn^x|ܮeѓl|< -Q uCzw YM1Khhxv%n7V4?DFCr3lqb俗ᐥ%niCX/y$ .H_P%5?jnM~DB@?lڋ S ļƋ')FF_T)"GUdTuԬxȫHfp @ ҺPƒC  i9˞)*d"*' `C,n؝$?B{}I4L裃0{Lҡ|n-SGxX~}vN;N]SNyẫM$h 9u*M6|şuly!uVvˈ^Q6^дdA戁|!9ZSc/;07tl}ɓiO!eO1()^zƽO6!܂SE*GD q e}9s ^`@tO'`x)$0Ϻɱ +>FD T.YE!E^4pOVuf$YcCT{ GtךSB^JVMNODh Bd#@0^>:3Q/l:螰8G'^ <4&N4glPqnCY KG'`Ĺ/7*Ef>,tK-[x;YRIp@ "ZzP#;䉡FX(Ⅲ)5q;ҝlZ,q/F .uO Q!]+GVZ$-vr/ ,ޱר.g9ee @D _1w~M^LJO/YQqƭCڨƩioP|"[ g?qcv 8W7AL75 e9 {ŸcZ~tJy(F ԊlԌQDʛZ+bhRI$/k̯.^ތQQP(F]Rqd8Χ[&) J̤a^bKX LTvV"j߯^NQՉR0 уMq'ܒYlC,oRH|T^d˪e옦u[&)*eJ0Oa,'nǻqR.ÙރQ@7ANᗇN_Q.T1\ f izAQ2IQ9/_yz. c3"Ɖ!`!Bdz0 C0 C0R@iZ?C0 C0 CH3!o'i!`!`!``޳C endstream endobj 1425 0 obj << /Length 1429 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream xTkA6n"Zkx"IYhE6bk Ed3In6&*Ezd/JZE(ޫ(b-nL~7}ov r4 Ril|Bj A4%UN$As{z[V{wwҶ@G*q Y<ߡ)t9Nyx+=Y"|@5-MS%@H8qR>׋infObN~N>! ?F?aĆ=5`5_M'Tq. VJp8dasZHOLn}&wVQygE0  HPEaP@<14r?#{2u$jtbDA{6=Q<("qCA*Oy\V;噹sM^|vWGyz?W15s-_̗)UKuZ17ߟl;=..s7VgjHUO^gc)1&v!.K `m)m$``/]?[xF QT*d4o(/lșmSqens}nk~8X<R5 vz)Ӗ9R,bRPCRR%eKUbvؙn9BħJeRR~NցoE endstream endobj 1428 0 obj << /Length 1431 0 R /Type /XObject /Subtype /Image /Width 1032 /Height 368 /ColorSpace /DeviceGray /Interpolate true /BitsPerComponent 8 /Filter /FlateDecode >> stream xЁ Pa 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0`  I{  endstream endobj 1430 0 obj << /Length 1432 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream x՗gT{r"0sqAa 0d k@D](*A1``P .0r8uNU?_WW8m,/ ugla2 ,vkbC\;D9Il o;N@l?<=i"dnŵ!urt_a^Қ-k#ξ+KWh+䴚'嶸fK)+™A+̉p\#c+zL2s]q[W@6,A'G'# ~LTt2qZ &0_)gmyD%"eh: MYBZ~r>)I X[܀`32 Av>>/}}vQ?(X11(HAwÎ c[Bp!!U!368j:IuS6oEx k0LXPؙy5 ?>v`ar9VEVEQVQ&mKbbbƺV~󊫎[oH'%\q7nM$(iSRK2 15])j)?Z~J L.M؛166wmaNhgΎ,Ŭܬl]]q~);hwkLnv.? Xc̏{ -@`]x'JZ{)-,=yQ_wKJ*zU:z|YtY}y1c{}<9wD}LEAŗc~:rRT꩗OwbKmTUAjnƷfim3ດɳg{9k׮?@o(8Χkد/t\4XIұFjc~Ԕ4,h nvղ7ߪʯ_x5µk3QG;t pMݷoݹ|F];VwZܽ|^}M]]mAKyOkޫ}6}:>~ށAghqOR g?<&?h8t{1<}gҟc/)/Kk' &&'{^m|5zn*/ѿQ{soۿ7L]xW^}33gf>Ts痠/siү_[{cYK^pd$@E|1Qh /E } /(N r-G ¶x#GV+X.IKkR8u.,5/,|Bg=b6?0nk`ԑյ? endstream endobj 1435 0 obj << /Length 1964 /Filter /FlateDecode >> stream xZs۸~(5GL:]be3~(Hf͇}w$m\0],.z /.:x^1A̛=I½X@qMf޿ɍyWRѭ{ЍR8oFGr< @ã\r w&1̗;FS9EK8ӡ6I`t|9ҡ7&xUDah(<3lU $V_{e8y|_2214@&<;î3]}UKeXk`N}CN~Y(>w YM(k$B 5r*9lJ^3T;<VGqJͮҡsfvYQXhm>֦b^k\eyM{)U y:lz034Y&;" % 0,g 1*L+1 cN6Ů:peϣ4PI4B[pz9{+9fpv6'ˀ{ ',y=*oSf[7Kk.g[6iOfz؎]N lWisk3aS B ,9Wzm[+gOtXsM\T08lu֭xWq8-վ+^Ùv*k TʾA_:~oAAu&[e'1 x8ag;׈*S]W:REoʮ7ղDw"$ABlh~<{2r7e7hF[7阤}M(%2ÞVbQ԰K8C2W+PxܧRrZ*s:c\p|0b9FH/<_~h]KQ_,TC>Fq?MIAl"N/Q/m?B7 (fI}s dfNv4>دփxq J]RѪv=>_Q(;xlp@%I|_)3 endstream endobj 1440 0 obj << /Length 899 /Filter /FlateDecode >> stream xWo6_AIbI}ۀk}Vh[,zRw$%TZesӡ/x aSJx^48m5]+}No*մ%08&l9Ev&gcɦ5-i8 Wj;l> t]o.NnQWU#D .cUKg ^ÞNot{r6 _0O =d @X TO4+qoˏU*r:ɺA{EL\ c3+ߏ+F]8cXX(GkHvZFySvs4UIϒʶWڜ r,G)m eFmkCxAE/.XN ̰ ƒ|N!\5lCG4L`Βodi^-,>gpѵ'ײMVJw u}8sXo8cq8~c4Ŝ'hL,4Z Y({wwOhvkuu[A==E7:rуp8ۮ.+DqugB q!H2M'̝0f3?[m endstream endobj 1445 0 obj << /Length 1677 /Filter /FlateDecode >> stream xڽ]o6=B2V+װ h5[1X=}`$V+K(9~x#%N5P"}ǣY Xpujuq&gQrA̢,Ax :\mb),:Tk:,>^0 xH1(DR]y,K2G0Y:x.qƃod"+.,R KӠ#W'KrA< 2T !YTt2y lc!MIXWGZ }{҂ߟ*K4MK_O$4N>^"% .zϢ4 5n56flrqhZvjddyGNjx.;cEY@KcF,|fOvD^wX$Dz5 |ɃfTx~`c,ƴP 'i^C+.b @kƒDĚT)`YX3]0ϩ$h9I*Nژm VVaEՎ6;Ct>u*}NVrflOZW( j)bV/ ?AD~$L<5:Ӕ Ɣ$RW-5#$Cy6xi`㳉a(i]l|zjOs<"HmR͝sF zPcXXp/"4*QPeFGD$:`Ә]^7J5Eֽ~Ҏ<֥Ą= 0 r"%s,}WS{ Ǚ7Q$8t#3 8c4SgAO/,cUv׵ 0s[?%DM V6AI63Vcz?8yCя&)n뚞'gx?8b2=>;xӟDv@$dʟ˄{6~X4|d1swo?ҧbB3];a=c^ws2 hTcUC`b w]k uz /$W3˧m?ђיvӋ$㽟 b1>H_c endstream endobj 1437 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-ucscTrack6.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1447 0 R /BBox [0 0 540 396] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 1448 0 R/F8 1449 0 R>> /ExtGState << /GS1 1450 0 R /GS2 1451 0 R /GS257 1452 0 R >>/ColorSpace << /sRGB 1453 0 R >>>> /Length 70620 /Filter /FlateDecode >> stream xK?;Ҧ&&3C5j ^;|ቌvtV"#dAF?~~~>??w?\u}zkI>\_~??I}ʇo3t+~YrkDZ?v7C_ >S1V/^OhA.M3wrhxοX9=@x[E-g!p*^çϬ}[W ̧"{&nA?~SM%vO>?/?o?~?"͙bmol [U|ݥ6vEjl]3uo3G1Pa2hڅymW뮼QFwe.~r} g}߭Dy7,y/Zʽٚ*x˟y J=q~P?]9O鳈+~tv7V~Y2\̓GS/(o- <ĉ/)х~I>Ty}zmoY ǻ/ 1=3~Dڟ}:wպϹ~h/ަ2K<4i:^?q007FEug @w|~N4~4~3Oa*~guhS D/wtQggnϡj#bY9|)dM|SqVN3NCӍ%DhjgJs?3JŶFOQZIil6p4=^mԝ/q1ގtU8?k.]]K׸=?cnuL^:]uK?%ҝ5Kg CAdr0reLd? Pa$[Yd? 0_ԇs?pOnwo;)m )JU9IM%KE|7>"*Oxڸ@xH#O}PX(ΛLoΉ?8쓣<)n+߳_꿋txEzOYIez~XB5AFw]d}~WfMF s9P }3~˛WN{fpصc]_3qw{c^33f/X!}ˊ˟ք`ۚ/,\ӉkyMFk*˚&Byke&a9nkƓ5\͚hMxfk<[5ޭukf5]X~eg߳Y,{g{=GϣJѿI|F}c-qZx."f$[}7ʷ/|ٲ΅%gGݞP|v#tH$@cF7 zGxu\kgO *%|NπT["$kV5${KfF߅o}T~fǵW+.>RG! 6ۨ ghwm'gg h9]moog{(tkO/uc~0gQYԹYn ]OQY[[[*luZwqG.,zl3$%fI-Sz W鳊$ܵ%fH |̐@A^!:CuPyնrA!:j[CuP.Z] A=;oH`32$ƿhnKxJ!:IÐ$aHDI0$@G&tDQ: QI*XX$@yW>fI |̒A^%:ȃ1KtP{蠖m- j[KtPնZ], A2~kIQA9Kt4hJ!!:"XTujI@ߟ2jڿ%Qݖ$CtJ!:"IDÐ$aHLY0$@G!tDU: ѱF%FmaI |̒A^%:ȃ1Ktyc?, A-UZ#Pն蠖 m- ATXzeP֒ԣsh$єCBtDԒ@KSdz%lH@>DU: S"\Ò$aH@A0$@G}>s/5.O;.ϧ;./;.ϗ;.o;.Ϸw+0}y>?]K"DP: I"*H$CtdJ!!:}sDۡ=g,pM^wU~P#ogiοx}?Q]?\S 5kzrnѶZ9AnYu _UwpM&x>Þv͈&xT3',=kCUҭ{fOlm~rZ{v;;|m'gkk~3Aj:&2oO~gk=YYv8{ n W+@k.3@O;~ة}cmsk{Ic~xAڟJ}%,,ߊ3ϒ.љ2@2rr5rwִ} 1~FDKb4DYE44) )-1Wr 1Wr"PN-3!cGX=Cb4Dx AOkW33%:)o駛-S.O(R[?\["EnovoS,'<012Y϶=aN O F$M={BMF'ߢT\{cMjWߏIWO1`T|gs4kH`߃ԷY,voCğ& 枲0_1YuR,Zz wk/|N74*fy 'p~#PƸ?q Ei3rՍEY_lMpksZnCCXM趬; `5_#9~!65yvW?LճfIj}Òr^%!:\PmkIj֒TA%:Wo- A=*>gIŒ$aH`9vO.8ĖO;.ϧ;./;.ϗ;.o;.Ϸ8C#s_k]ww߮[1%fI |̒^%:j[KBtj֒rA%:փjKtP ZzTP}ΒTA%:I4Ðj=v$`prĶ>/%nK“W: H"($Ct$HJ!:2IdÐ$aHJU0$@G#t_X%: SKtz姖 /O- A^蕟Z<+$@WaI@-TZZ.$@XPujIA}KtP.蠞T߷$DGN- o#}WBq_J{ t#DP: I"*H$CtdJ!: IÐ$aHFM0$DGQKtz姖 /O- A^蕟Z+?$@yW>fIj}ÒZ.$@\PmkIԒԳZ], A=;oIH5UZD`2Ym O^0$@G t#DT: БH")$Ct(J!:*ITÐ$aH5/5Ktz姖 /O- A^蕟Z+?$@yW>fIj}ÒZ.$@\PmkIԒԳZ], A=;oIH5UZ]Az}*})?UIxÐ$aHHQ0$@G"t#DV: QH($QCBt (ѿ&:, A䕏Y<+$@yW>fI |̒^%:j[KBtj֒rA%:փjKtP.蠞T߷$@\PmkIA}KBtDŒGzg=_KD%fH |̐@A^!:CuPyնrA!:j[CuP.xI /|RR-I+$CtDJ!:I$Ð$aHBE0$@G%tcR[bcÒA^%:ȃ1Ktyc , AXZΫ$DG m- A-TZj=v$@zPbIA}KBtgyUxoIh Ni`:+D OWDbqJ+жļ $h"]ĸmKsΒ+Db\ }jC?1-ĺMΨǦĽLou8H+жļ $h[b }hyHO5DbJ$x\x\C$kp x\x\C$kp x\x\C5@bH @"1\%kQq !c@1t:Pb BCH̡C$Ё/:oH$l}/QbEb>Jߛ gj-1[$f1:d[%-1g 1g{X%@7cFf?Dbǖ%-1$%?#%}%4Z$fo 1[K{[l}X%flñme/AFj-1[$K:E[b>H(1ZK"1Z%F-st5:l 1[_6[b>HAb޸0[_$Voжsݰ?nu?+9>oY}+](񴭃UT y=@\{lDoAss!cc?*ϵH|vk]cj.sXωZmNQb閘u NEbH:NAb֩H:EQ׬SXu*FB8?̑nƑN>-N$H%H%Hcs9҉Pbt[bt 1G:#Jn'H'kt@bt[3:}!+pvgcC|"t[>5$4zWא?9!5$ oא]א+>Avwp%'zS L,^ٞW#tRsH{i6x}m'gkoگjWk+;>~r;Ԫ>{CH94ɭn3zU|L3CO?Ĕ?xW;Wbo~`<9Wbo~o] )}}r-C!CC66$,uHxUwp':$?9w'1~6݇}QV+;8Ck~r Woo/o?9;8խR;8UD[ILg&گjwpCkk?9[{o~UZ\i k'W*q jwpXn;n'A٠ l 5_Ujwpe&}ߟ_C_CT}Gg'@=]P60cwFy˭rrrr| ''{@oW_W~j@N}5_ q\'K_'Yw.w0~~wԽOƯރNL|motz\K~Vx|ed7k]Ϸ?[{~6?-?|pۏ~{1sWo0k(=ZW?"'~GWP{̜E.ܯb?CĞ]S|XPr6M(_6mP _W.| 7w3!2!iw*|d v]h>څOv]d>ۅv]bڅv]fY}bBVs_=U? E v]h>څv]d>ۅv]b؅v]fPi—c gYZ _ۂ]`>؅7#l#l#lG 2#l#l  2#l#l#ְ 3;r1T[[[{fł[[[[[meAfvv} م7#lX 2#l#l#llvǂ7!fm=oAfmvmvm م7#lz,Ȍ͎͎څ7#l#l3#l!2 OP&d>\f]xo:.ao(څ" Y6\f]x+v.| oE"lM *=/#F> 8!'~|`x N:#}C3֙P5 *@FZa+7DU *=,(Ef12^*#%OqRQa) a( Ҏ5B썹*X"s(KXe,n쌳7.x.(`lAq-R+kDZ8h]Z҆8fy,%@c-b DO$&X+5Rx]A=2kT3.k@ֈtR E! P6|#X U8)!(XRVJRx.AZcmsnC R b69RY'5ˉkRx.^ڈkO /vjK y5ŮLSxUΣJA{q RQ*^MLV)-:j)'D:N7w * '3ùRRT.F̜/%*:sS1Nt5J;^j\UqLiD+NumLi|mXy 16dy_`/ 1'Esm8>DeQqz6T U곪v5)_۰cATsf`.a2Mf68y;V1!cƢ`j6ԧU,ھN:鼱6dONRΪ⃔ SޱruD $3ErLqφƍ)_K/'jSAludnUاUl(jS$:+RT!}m@Lƴ̹w9=&3s9:ұ1lp ZO:cszʢ;09Y76s,*c؞نKs&RxXe.]/ \cvk%'OThO11gRtαs*K9%/HL*u@t1kWcO^r{s*Nsʆ1s)+*>H]1`*>HVsR@ s%9r2bjb ?3MN*}&M`,ONLRNSTԙ9X)'اs0PNsTR*N;)9:i#_T^s=YkL ˂qnfIqOmL eQqzSؠɜ{rb`8*NGyN ur>9!I]czQy$m4ا4S} Ҷ*NG)}AEqnQz`+GXLkc*N#r>gM&eQ9ǘļ%&@clL`֞SZOgxN9mPʢ .` ?ST o9ndJNJ`}^5}*6QwLe FUN, YEO~Ą^jOvAAZخޗl*c{/Nw5/۰K]UЩPNyc*N,`j6 :mPlWqf1S:ѩtL$:U1s*N'kW^11=6U&@2嗜cܘ^ON51%=<{'Zp_ sj=-'trokgbv er֋Iާr{f S\0uαHYt[^*y}빢s+ffs]ߔd+v9S\.g6Ly9u8>U1LŸ16Eӂ8 qb6cܔ/oc`L105'FS(Xaԋ4'FOsb*}81}ZN#:y7QSU@U$! I؆$K/eʼnsHump~mp6xI]3- Pb3T.w9 mGOrCuCP]a!3F0B NC Ux2-P"`Z~C fʻ,v1-?KS2Cu}}9bZ>@|BIUy/yM 6 ą3 q͢Yk-Ǹl_^w_f3S]ޕ0{EG. k=LKVR9x\-0;(j~WP5YLpf~15?74!>um>:d"e&S!.>^!>B Ӫ2SZ䬚̌I7wqub2GY/(7,rDf* +o@:5l욞g@؎r"GdA 7rq.u<oz9&J181HEYi{(W1l9na <7{u$\fƊU!!{u$qC:=g )I~#(D!GY8"d/_#8^C6QY[RV7+Ðu${+au$11&gY~(f}I8C6!u:53#Y~#OqE83)3E!uC@ UeUr{ב9sP,݋:^+'6g&TY3cJ՝>9J-xf:=Yב8xO%\i'U&:{k욯TXjɍj>KS6*DL7+E*J<9<3DL59 o&ryfIݟ3L#>]|X:BT=«21äJbQ̅ >BPU Ujކ{F {0Qx‹Bo%Uzwu ')NR(Y3\"I*7JL$)_gI g[$H5J{DR,Fɻ,$k㌰TaHW(yw0{$5Qaȡ_BO_FaLB1H_U5r@k^+=(*%.|‹ɕ )L9Vm^]",(ta"lӃ,7&*){S%(x+&Gv"P!rBTMj#hʦ]g-iq+;URvJ0+䄊5/j\e3B7<%d.)Sba:Hٹ)qWv4/L){U R0x)qWz0YeaH+{S"Ѽ0 nNa e:ؕinBsh3,0RaGݛ ?] % a@)Dž\Kh?ŅO5Jf|ȊLE *| ߤ68qwS#!L Rw0]ub%Ѵװ8%*q[yH_hd%$Y .@ YeC|D!*|sJtx?yJݼ$,ZtHNCCڋwk?dї)P]%^/!كS9@a҉!ހ=q}Y_BrIy%Oc{H@%i K BEBN܁BC1x%̟/!F (N|?BN-oaΆ\/XBT!@\G(ՐT qwqnM)LԐwaF0vO%$N]i .4OU)K@EUL΀wilm',8!*ӆT+%EymH]BR'Pm>%$Y EP7w{)32rwBE*J]B"& 7Jq} J&aUE=GKHv7WK^e2%>(\YC6AAB66sm}aCf(MSSU'#TJxNzI#T7njbK4 ě>A#oGAعWڎ)gVLuASQvΓI;0Bvg\ kd.M\/(;1٢0kj;%1wybeԆOKm,Q6|ĜK*)9) U*7|V)!j( )UVKZm"2)̬\ƥK0uJ U+ַU^q;*+ܵWK3!DɪJDfpXLp,4Xd؆,6(E6ku~N]%rIxbdlelƈ~誮k*s-SW)7PUW\{Woqbm؁J]%rgR 6/AاP mH>uiR66x>ާ׈е`~1G}YU_1㈼CFTJeqDFXyU`` *l+YqZxNjYϼ<Ҧ.D'eQK\VMXiԪ q p~MؓGMWR)b4 I19I9QPS1SPB6k_xB'Wd|b)$k_(!}Tdۑ6'Ta`3d[{HbyNJټ?y)^ Y:)!S1vjAS1.)]ovRQ / #4oLrؐ]RNuw.DԙA|q;suN)bT;OsJuNsJ}3rvmcBscdsnE蘺WHʢk0u7RL6^ĎuBޏ5kpn/Gw#h{t{?]Ilw.s*Nccۜ}*Nᄅјcy΅*:uNYwo7)]cyS~HLm91ۃ0u'S5SJYې>ېľ6dy. Eޗ ې}m(8]vu7Խao mpA\aU~=_jL1i_ԽA,Xrza/ޏcx_d;{՘ ^;ԽAb#Hc6YElrV!*۰,MqllɤC#TFc^ 2nj^[4ug}APS EeCmcd8}`!/|Bq` jE;l6V R/ _j?aEHdl+9auG;F\8k^#J]{?)e(9d3yf0}an3)g0%2}ޓL`L:odGR0027'gz9Yv1?Ɨ|BLy# OR{&=@i2 #uԦ-qf|/Gt0) t7}d֌ h/I `̝! &h^'ȦxgcS"jA ̡ )fx!< r) si\=:}`cFMvFgQ g3\̫ -3k;<}=8 P3(<eQ3I%5tF neM9X ϜL6xFv 2eAC17! /0(8!@GbN01 =g2=}0)d. h3"tݞ9g5 "ohHGşyF;ϴhH0)dv Jc~Ni3tnؔ jgS*=!o6el!|+! 3ڇ vBRhlL dy !r:I5Jvp1'^2H9D99&K}TMA[%Ci=ʮx, UȦ$Ȧ$(mbSMl$Ԏ@PM`gaST|aSl1!( !<}t29&E'cs#|_`"ppMֱ) tK117(W *PP8#dS<3V&6A%6ld6A ">4xɂ1OYٔ3@*DؔuL:|BT1]GAǥlʞ 6 TSJJj0wxɊ1oީ o^G }whUOPM P *0EE{OhUti)D 8EeyAluIL# MւyDA.md$ Fc|t)LdB(tPK>P* ( ]ghd^zh¦HgVQG%P@d^Q}W t)|drL- sz#xan9]*;czQ}/ ,RZF!Kn1($H1 I.r4YF!G`4 2($QKefKSBo|L)hu$#+? >8]hRsL~tLu[ T|k2(pRar9#{_,Udt0e;H|?)?,5q&:}c;:XMF|wrF``Lƙac*R^t%ӑ·8*&$+Wf$7V(阓T<|ˬ$`̼JNvyIB>Iv7x0HF173`h=|pOPBe63Cgx(v% `I,z?䡴*2Q B9f*+TyWWwGeV0%.[ `&ń%dcƒLjTx+|xvY:p۠c֒W o 1oY 1q{U .Sdn=uL^ւByL_]KT &g3;aTϘdܸ 3Ld1_GV "osQZ"3@fjG )>Si"45phTi|<0B4, :OhS?+d'BDz!6  )7 ީM *&/O*~ RkoN12L >;q05>!CC2d?)K 't; 6ixEsmQFG>"%4W4$At9A%SǍ>`#)Ds2̠hNQf^ќ,IOp̦$h̦`{6%ZuV:JAG9^2U'.kM=:3{r:HLe/3ypM9u DDQ/3 Ny eH:$²;LQ$F(:&;9{"vN`-Ӝ~4'8ܶxRݧn4KLc >xĞ9NrsM09@FZn^& hz7af\6$#d -WTdgS( A"_zRؖqsP@6d(g  % % 22S0nxߙ<c`l`C!u%"PuvP׍l`_#dF(ˉk&'%I iB}Z9G%|$8” pΔXt#9Zhqs{/̰g|4e,30oeQYFƞB Fs>3Ngcg2ZEL/`,%#\tYe# e(c^Ρ+' 0UT 2Ϝ"d3|L(uN$L'u**'LSݴr;¡x=-n />^ON'}gJy ϝqZnsT9&wVgp`S<!!`A (O$k5&UX1oAbM0m%0P>8}b4JaN=꺄/jcV^9>@9Ag#2K#"s* 3v%+ׁE`DI &z/Sul]Lԩ0eNXTF9NW3tTa'3tpnk(%'sp K#a j`bNq0Sұɴ* sӬ 7x7( '^2ٰTcY%3lp wT/J:1R88^3BqB7 m#:9ؗ92+tqi782BI*snpf l ̸V}(tql 0Αy p  8A'u(ׅ!2tvlk*"g#.ɛm!2u6/Gf@c|gd lLvd |erf[|o {̗O#e`cB?l9l[,mͶ lof|?P6<8lREGZ42KQLxdL98|›mϘ dڏT>lx:Kd:@L 1pǍѩ̋XdZL:adR b _dR l L0)ِ}lkȤ(kͶͶ0l>l로փͶͶh;(Ȥ&2)0nɛme8]@g> s1)qAQ<2)7i3N'O$Z)2)&Ȥ ؙsL01)LILI0ON81&<h `1S1˞Ȥ8J22)HI1p>eLj@6H3)&)1&Ŝu*3q;T,LbPga>U6TnJA'#e<+ c2Fb,rh&ɤkӄQ~BַLI!2)&Y($C,^y&$+LU,s"bCwHE&c1)cbX)dE&Ŝ)̓ *?sȆfنpA9Ut**<uvi52)I1@FLns<qʹ)&`90^OKcR =,zaR\vDlW P,!9G|Me^O&$nɫ{ΐK&_!b81)&Ƙc`l`_׉I10F&&ŜuqiOq3xqm8X _`|Dt:8uiLFl󐎑 sdΑ%&'1'q:sl'J̉9H6qAY٧QbjbN <%6N|xB㴌!̉9urrw8V$$9Ni|DT9G6@A< sRL̉07eN S9G(Kl`;,|O6A<ڶ~a/!,S۝91/̉0d9fX0'.7Ỉsb)Ƕ'Ĝ)L9G=1'&Ü,yĜdCv R<ʺ91E91q;bm,`[i?ĠO0'ۈ91p׍^[Y72', ﵕSԷ E%(Kd_:KP/} |YɜΜ##a^91G76}A:斘v1'91(U9G6H|gN \~gN sb˝_\4sb|J̉Pځtq.P :9NN7+O8N%5e(爱91WuS tK̉91gM/= 20'{ủɰ~gN ̉vos<ۈt:+<!soX1>@r_fNL91YR{xvY2sbc`gAqm8A'qmm1nx:9N|lPNó91̉JȆS͚ϩ4l̩=<f3dĠ/1'Ɨ=< /!3' 4qN>ض v> ;42sb``[xl禙910^#sbܦ̜<$$('齧-3'洁4E`s̜9<0dL64Ȇu.rj~a_SmԸfE1`|.Ȗ ;_.{b/iP>wP/|Ƅ|^#`;1}|Āb|SE`[ea~|mvm7̜wR̉JsV`[+̉ỉCasT̉!T:c~`kGFP|mT` 6l+s 4̉ChsR'@Ϥ8"3)I1 ä}|-0(`l2'ummqj8(#'J:`,|-r loʙ|[0Sڱi1غL;fZ9>g-S,'A'5)xb|}r20-I*(ΠLAِ,3jCuzx5jY2-EK0gfZ $Ԡx̴8(3-|jImu9`}2-Լx2:A}ribϊ:ǃ=ǡd8T;ɡ(εÁIfZ Ֆ檎ɴ9>2O,p7G(''>Q7f]10>2AYѶSh:σ%urZ4b\cㄶO0-8Aɴ"̴4J;J,fZ |LDi1k*X}x2PNS_ O}\@j0-0-4@:0-st?B90-|xOr} G{xU=>G6xxkN;"ƩolƳQ`|C;{V vOi1pNaZ |^blCP>^,Pہi1'q; 6N>#{/Q'As|1T > >7W1c`LzhLcZ [N lWi('k#,|}σڏ?xA>>uVCb#=Gc9۰˩ٟ[ bil[}UL0Lِ|uA6 WE8N%q8Ns8:)td[}U8-s `,*(c+bpdZ SAA'o5eVxv^O_SmzQmn[hbEbi1gZL׹hPtD-7bRW'^YVxlȇxmn[0e{oɲHe1#|OkT<圊'le11bp-~Ō-b ] |H-,B_n˱N)p[R桟)e1:nY˲ڶ/N3QўSYƲ?ÑϱcmY +/bVsʼ:~_JA~~_wF_~Δ6kbtIJ,i-e14-z,/`)m&β|,sj[pHm'0s@_|7؈YhwrNvc<-n;=^ cA{~~`b%=Onw!;O,7ޖ߳-Ym[}=-ٱٖ 4p缹-AԶ,;+)gbn;Q1<,K! 1shoo̧%YѶBC _8nm΁m΁r)N`];-+Ƭ9#69b}=mX.!sG -#88b(:+pYmrR W戡81Do+pw o^ppάA>99"U622'ġab<÷ (?8P+%y8HXyf^r)AK d]+%PVസl;V4].{cN:aN a(!nVT8ro㻽q9Vɝ.cYSz9zXLy)XS{9Vؗ[SZS/9V콭)[+pJ'"+p`[X LoLϱX3|+pp)9÷M{X#L $m׼{4są˱ _б _XO 8V\S=V༱*ƚ9\̡~]*{)#r+p\XD,[c Ο G|oڷۢc\d)kk!+qXSyZ8pa{s`9g%M l$9*!gu97X 4+9M%,sn}# XahێAıDO?%BΖ[}U:78Jx#<*YM m鷂j{0=Vfo|Xcw-'wkv\JXcTxnSiMrW"XxsXCa5w+/-޹pxG;rGw Xc=]c-;fax]~r -/,37>EP/fǷtcM+bVƺK8 _v4<`̶ >[_LGp(}_L2S/b9XSƪ9T`r>L*Gqb }ۿ.<(9rޘz}~1qXhO1_ٵ~}/&Pxa\S#l*weŷdN7oλ\U`P^!8tʁ0%f+E{o;;}cvW˱p!U:fګv}\ۿ;v`o;nC PPnCA{3`SZ&ġc8t!&w廽}<0C,i)XU1qX 8}alX'i/&w G q%49=|-6Y?C^8B1q(aݾ&&a7-8? #;66b h=Pl~cU:A][Yӱ~ZXa8<̔08l`Ca'œ6?0q8' 7{ iηSvZ:S?}qOCV S'0s(V50h=c9MǞrr8Np<P1K*AcAc"`N.w,YNə~1qs4[i۾* F{Mb}9v,OiNli/;%0ӿ ~Ӎ֥yX%~~}J9"ωbc9rrfvRb [N3ϲfR {6YN:1Vp6 ur m0X6t㬝 `9| 7f;Ɓ4v.Ӽv~N󛰝8w_Sܘ4b;vz|d1ZL*ʥGsS sj~D;~,VJ {LKhV,,+w`H`~c)Gj`o;qrflR ro;1l!+=1~x`8pj5MAVnJP1ǮK.˂xZASy5j2Wܖqx5jZlTkִXnTSMNvּ{=+F{V^5bAV8T83VСYYJj v=ܦRQRe֤iIj➨V2KM%Prk$^PN /i`7Xڮ t'ڮ溲4 :Ϋ%>xL+(A~1A9{bK{kzdٱ09n 48X.ܒh [s`:OU>"$~Ns,[r9/tKJ;ϮJ[ۃDҞkV/)v {[D,7uǺE=œ` NϽ1']t\_tyYkJY/N{/%eݗu:/9-a<9ahojYx]vƸ8~N[}%5hϪ!pwkv5iǬABnmUKvٷ/i;I:|}1~aqvجlڳn% b;raSA@?m[GZ{~8'C~8wkrlNp)ܧ8:s9ھN'GsvXV9BSխe ]+p0z[C{d q8$; Nd 8 4 '1560\Ĕ4n[sdq7P%|) [=>s\۬umVwm)#xuKm3+mNo|ytl6lTaW`o;a,Yad\}Pn}>S8.97l56au kvȪa$s(+p'[S^9.YwdE b_9.#il4sza[LZKZJg_)q+88qYE?f_` 0^9sO-d+QVٰ}(7a -# g-ymJ v:|N[8D?qpM[67W`Ngtfݲ~/G>G',o̲ys[6`-A|l!?X#-YUf̅rNi;]PtX}{,X,yuWžY6F<C%f;=~aX6\5.ae3+xò$ 0iLE_桁 f-K>G|òHxFp.|guNtcNVrxf 9o|Y6F>aLlX滬`f' fp|c߼Cͼ쾣E!fwÒ<;Zd{z`nsms@99,,%#5_7qo8,q>1?r2|ϏN[/- Ωhv=hI?l ?.`~8砜A_ױ&Ű&aM C>GS51x,cX#LC97.IsfQyHS96¢`qL^,t(퉳Y|(~@*T^>dJ{|m|զ|EXWs 2,)keBnСi*+{ÂZܦ4+T{L`VN*YBi̋3ı`Mv 3 s[bȟCI4휜|-r K}s7-9qԼpqxܮȆpܘ9>s԰/ԼsZ 9sp͒B| |o=_-oŒ紤iIN`>]x8З# qxkӒ߭%5 |iI %5Ԭ8Wx崤F00-鴤FGzشW8٬)(yKj9:88PPCuco)TR-,iI %5+$PCutBz\7&XRXRbI B%5+ Ӓw_8,taR̡ ppPwiI YR,7Cuc,AviIWÍ94Ls70ۇ4۳(g;=P!@4i;*)hN0qXn;=Qvzb\lrS ^cV_Z<;9Լ묟ߑ%5v-Cl@l|鷾;o}N=Pe+ɽ%5\_,uд!$$%5,Av\[-~ޒ-ٰSHdyYRKjXsM0gz"/37'%5<ZRó%5x7~tx0c2܃vzLc m\-k}ZRƪ@O`}aE)T;PΡ ,iӒX|ܗgIM)u.q(wKjX.Ij6/)\)T, NQn%5`snVv :3e)DtC&0M~:TwbR{g̒LC&9T7YRv:KjwRn'&,y%5#?ҒMKj|O'nsB{՝P)Tc;-AmhgSx8Ox:TN0W>,鱆+yB/%5H ,AJub%5-˒Ϲ,i%5H,cJ6;Eų7]]eI ^uXW -0-ppnX;Thϡ,t{ ߙ5g_JJ_nL=ò)i%5-#%5xA-=!˒=\XCV~s 9)4 ܝn﹛_.~.n۞<`Nw 5oɒ{eI ݘh>n/AKjzܿMԙnKW eI R&-KjXR9^9vclٗO;,A͕%5syx̒g|cNrN+ZƇ,?$574o%5Ӓ~:xZRvz/)88v:~+YR3ў= ^lrZܧNKj8pzJiI YR.t{)F?mcOkI{iH%5ov`\vSSgXRᲤS=t{,t{rsZ\i;uZR#Kv, pYRet{ 咝&浵ṓZpkHiq%isHvBS.f9Tuvsd;]ўF9Kjz%5HycNrݒ,&sYRý%5=|ˊ\S>Ga>N N[P.v:VictmϷϑ+i}.`=bޘ}៰({)b8ܘ}+0:mN0ОtwJl+tysl:wN?wRۚo̾Xo^clٞ7W9pL_n_G51#kbj[oL&>r[oɚŻXq[Sk[S|-!ۚx[0^slaS51 6Κ{]`øn=n|7X1:eML=VmkbZ܇okb}PVϚ{aSOX'Ѿkkbjnkbhi?yN7۶q#in3῾oLۚ'z,g;v~f&=ļ9'<3ycpw sA|Lp3324[r9.p33<9vľܚq,{H[eM ĴSPg8Xz[X7L* K9t`ڊ}5|ۚ511Kv&wi߷9rݵ&k[Lv:ڛ9&sdM ϑ֚V&}Ǟ)Zp&͙t?ib c槸8Nw|NN?o)ĩt`ĴЈݘاOԕ;bmQ.ڎ& 0ip1iY%fR w KO[=k%cE9𰟎J>Gbm}&w?gM ܶ51;?:f_k51o,yn0lOfW&]/}bNO[HO[`=ۚ5cm+ߴ51'Xp&O /|aߒ51ݞt7Xw{&wRۚ`wۚ6&&~YSPg ΚgĠ=?yP8 &X{s v51m`|ǚykb`519l9fN}|^ks&gpA ɚ l v?7[b9sxRy1v`|Y$c_41<uN_4`A9邾$;}ڊ1nKzsJO ctҧ>>ĨsN}-Y5Қa^J`9F?ysmph6w>OpHvf#9$;]Kvcm#봝&h)B{{cm_cGu~8ĐCO1OmG0~)kbm~Cvzĝ7{Śmձ&fOX3/uӞ5151r~+q&fX#LcM̈cM&ݞu84b~;_skM̻) \p_P1&|gM <ĐÒ8kb< S&=+ɚ8gMA_B9kW 2<<8X5kЁk>4uqXl7Lv%p^#uf;MK&KvuNO[wv:Ϛ{MO[ޭyc~'<]r)ڳv}n,A_]= v`;r_wZf#Yښw9րlOvzf;kdq<f9ig;́9\%;rk[PvX;'~+pҒϱl`ߒ51c-NO𳝞ϸX#Lt ,C/ČƕlYsY3&fbM&fbosX等M[3g9N5qLTkbs- mqfM̂&-wkb~,؎*oښavlYظ- }{nW lcu-y f78s\9{Ϛns(a]g}q?8 q)V[0K*ׅyضm<_LnMYۚJ>+~kbhWV9޵!Akb&+鎾Nwt#8WYý51/s\cƘnp/9Y:O_n]whMxt7ـy`N>Gtysp^[icߛ >أXC?51k51o9Nyz=qyzo`='|%ЦZ3y&&*?0qN/`ӇޡÊ51+|ŚbMLuc~Kߦn(緩;}c:ߘs{a:650f~X[z֐bM Z^X3?-g-(X51 [Z@{ǿgK~K=&ϝMXMkb+vc~Kks(=g< 0fg ЀysXP=1fM &F'kbXu.x0v`{&]1vNs<$;M4OiwcfxbM|b1K%07R O|ļ9g=LsWPyX3\UZz=:m 9gf;}/vw w|f{>OG{|TzΚe51*~g]A\P&` xj-0 Vk1Kyu~51#JOwϲ&bM̻= Ƽ[3^[rf`|Ś~76i40gM k{y]X;`dž~]=𠟶Ճl/3r?v:= J>ǂrI3}Ńr=51dMLVnjG{--Kot_z'[қ[kWix:B?"o7N --sbӱ/&1?cxv&Śwkbvc_v7 ~d9ھ0K+0 w ovcf;:߉hb?hMLǾ$}f;cfML7c碌rXz}qm?;1OG&#kb=yrh/iKw]k>cmo+ֶdMLA?}7X0.|~5kbYj೾Ԭy΢5kbK'03l͚b)kR͚~4<=ttF>O?>np;K";z_L5ƾ΢5kb=C͚g\5kb괝>g}sƫYsT:ߦ51߽1 e:y}0f{_&k{[J>GЮ51/+K> N/t<~51;jM>G1qcR s1LvƘ j4p~a}N_ަ~ʵ6u_Ykb9Li%cgYCvy0k`uNwicøN/IRbuaS Kv咾>515kbb51O`ܓԬy|5kbXgÃr9=ؿXõ'hfMu"kb51nbnmvbl rNcx.1Dž5Ě褪51s0=kK`51/ӚJ&fa?oMšRmG?k;NXۍr]b&fadM̻1Is71.S>X^9nX{X7]9nϬZm7lٰlֶ|{Zkb6,kb6oᳲ&^X?|3kbvĘUkb8G[>Ǎ51;bӪ51{)kb֗-#kkbYwe¬Y;RٰG>jM clkbMayCys51ts s 6lz]B{MKsy.`PI}ޱ}kb;ٲ&9y51/L-kb&ڳ~Ǿa_lNi}sFhĬ6kb괝n;͚1k1)<=Okb80dž8Tp+8nM̻\˕ÍV= s|~+ݚ_51~v }hoxy@)cm}A?m_ؗ1N?{nM~c76ܖlO%y|ݚĐ51|s^~)_icA?m+NwfM | l;b;=0.|51a=랹[D&qH7&;&f [X}Co;X#l8cx=эCló_8wkbv[nM b519ZP޾o;8tq,3f >7V!~󜙻5113C!lY- 7<%00Ǵ% ó08y0.G;)oqyO9kbحycſb^f`kX1mCu?! ^[/`_`ݚ=51o~8^?ӱ&qݚ!#bz~'&֬NL5ߘӏ[>d+ ~ ʁO𳝾}歉a_9S-봝~(ݚ_烥XV`ӱNXõg51;;51r k0l'ڛ߼51;bx51;◺51;|}511kb6|3'[#[8nM (K>~nM̎;nMƹ%;g%/O\B&ݗ.mC/511kbK>7' 51Mlqp!~G&m~GM9X 9Gn8t`0C}9Xs"QϚm7lNl uNo>ܷ9`;;NdML&&G>Ga>O=ivzsf}ڇ##6Yhb51s51pyqa<k;1}aF{)X[bwȚ/#kb3ȚgMkrIsYOw ߻/}Úh0sL 1<cbx0`S/+sXW`_|yQgIΒ<{aM kbF쯇51;1YK9 <6A~aML1AsHs^ۅ1s^ۅ::vCkt^ۉזߒVe{ؿaM900mġˇ51=Ω?X<}cK51=51:8\8\7X8\)OlŰ&ŞƖ0{`MLúdML9 kbl51-#oLb}&ŝ&9`XSc/uc~š{aMLl9VƬ6!8LUļۛ00GKlCC_89tkMLyN؎.c ?߰&b-&4?&Us2ykkaMLݚm|:m&=.[y;/=d&nX5ĚϱFnaM08i;g%&~cԈ1K>G6oX[&њ>aM ϑ6ܚs51[>G?)8[S^[S;9˭)q:)+6|ߙ51ߋ51pkbJ-ㅹ&悽&fN_[ol/o;}sq~ġ#Y51oCt|W&51wU{99^X&xaM&ݗa7:8[sCpN&xVoX犃(ޙߦ3"˜?y3-6sŎdZ W<֯i} `sAS騶%*(`7g9xXt_t ('"0 ~>/eB{ob>8<|q}6wac\|`Ӣ!&͝E7r>i9g w\ : :m`iͻ/]68 s1>și-9*loNZtS14-yyp͡rZtԌ1ߒE7W8{E7lጰ ~Nqh7š)OƜ2p.On ݔpNn lSݗc4rM/Yjar. ٢ӢӒSNiMQˢӢwPg7rs,QYtS"(p.95 Χ[Scэ] =RӢE7[tSRaZtFX3 tqrnZtSr|tX0fo;iM 9Hu~ Mn$4-; =0Ӣ\NnjE71E,`ߋE7kIABOƴb-]AB|]  !`C&sP,A@<)HNs0ocO -ht0oż;y9}lzvcE7-eM F8eMo̢e K= NnG9rbM÷kYϑ:n 0\ݴHzc[@Lba9{Y@ ,i#1qXw`8ͱeM؍[z" E7r rURc+Y6|$;{!#ˢwC1Kű,gqlC?mYrl-][tC` t|<#Xt~Ztӱ9|dM>٢akptC{N v/cf;眙ŢE7l^>6Δ@B_|~bE7=bJv:~+%h(g;c/nz$[+'w?VN qy_Z)@'0~-Kྼo-N&}9{En~G qocwnвDˢwM0?~J`>O1lo\ĘgYtE7uТaz,!g Yэuעr8)O-Ùˢ<,AruR~~T locsOjbs\{QMi].=g#ے}Ǻfv[n3c/g-63lfye_3|q~b[hu637r!qC4r~QMy=ʏjb .mk՜^NY.N?D;?D¼.9\}G5.m jliﶜ=NWPΏ_K ?닕41ZGCɏjCz` ޘ8 s̈5=~r~0n/M{xA*#fږ̰Gʙ76ᑌlf9t`~~녙QM3=ELI6/N㱵m ۿ1/,~Gm f+ePfE|ȶN F0?YC!̏u{q ơ6Ĺ u]Ήs;KjvYzTu:qnG?8wO{Vz@c[51 ͞>ۚ>mM  >wۚgOjpq~~Tx! }yfOupC4 C4 |i$ʾ1= okbPĶ&L`~ksRIO`Np/oŚl+֔~mmMAr^LS5c Mwj,){!Y{D!ml Be6g8.6хJkpJEa*a?-)Vۼ#w닷v|aNZ0B{1>jge7`I? 0WӮkoԡ[ʳ0on+8P1XSZ%gil>pq)-e8Zs9LB@EijXc-Niq ?8rܱ  GSybǒR59cQNA45v,)߭u9ޠlthA_d A`&kdMacNޞdW!0>t "/U:a2sNu΁GcNBJ4jvbűZ@sS0WzU+k?br A~ĮXSFyE;JS@G?NTxVXY!h*1͉x:V!22pJCK־Jc*)L X9Xc} D!ǂU[MedM>^3.XAg]cdk[S =Rx? zV6Y<.OK9R,z2~+W5QAɚ~3~=QD%H+JG/*T*Fh ]ܠT{+͓sgePXDܱ6n$\\zOmBo'?GVC"ҰX%jtLgަ}|V %1+]ZA% }!@%y_`1N|9fz 9{Ѱ[=}9$6h|鹞7M%|֞ެmw黷T:FhJCT JNS oDp޾ ;tq0e-$2蘈ݥxXKİc1#~j* `3IYPt~J7vSmwxGA@S eEwKh*e*\MtCTXIT gүP,YC,BX2B` 40BCTMs vSϡ JGTBp59Mb\\]z卽y0~1E nWz0_l;_\bp+gk tz6zوIH%[fT>,v@a*LT0TJNShsJŬ4+tLܤ/`lOcʎZːJ =7U:򱰤I&+_*@S `5R)FLJVdOT3[ymQdWfUR)l˒JoM*T&LV~a,LV~T:ɠ@S gR)X0|Tj*%kܗ77IzG\Qm9dwAݤM%VjkppMU21)SSX:dɒMTRs>- ` xp9v)๠d x.,b3 La-n*s~ly,`*{n7i 6gϾMIˋJJ~dc1f%pM*0m\S) \ x`頜Me3 h_V40&h}V4&XD̊&ӊ&0qX~a/Gj1NZK0=Xέd:O/&XYtp`Yic|%Ln+۞o|/Mq(.[#de?.%nj3q-dtKo'ۇ&gY&3ΒT6AJ|IorxpyV6J2 Jf_6Mfbʒ_m-]-'MeK#ky1eiԒK<8[\ic3e7-ZR)sdވ1 (gwل g9;Jb?0qe)N`68u۵4I8¤o呟&β\t0b{\lY&y0K b= g{6&rgcuy5 ЗbytąJK(VoQp̩X ząT ?ѿGf|.kEesʡ1P<`HO?L5R>afKu֯ b n<_+Sv=m`K=1ֶuR?n>bK1R/dby,iazɤ.c$u\B%p#'`}9xJK+t7#ߟcz;|@*H$ MC8T])LH=tO"|R_"0)a$Ɏ%Gz,I]T'uϑ]2E ,/w $u@Sy%pj7.vM#˽$uѻ͖0%cb=QdL%S26,LxNShsJ.S +E/a㗤.zW{L.2>RE|/I]T-_SF'J\D.g2Sm&kxR!h$uW5uߧeܒJRik $C!m^~niu x19W/%RUHH$ǒpVˬl!B0 耽8ԇ һIV#Z|  d15^$" qbrш"<0M&ɑGMA 2c3t,3QP4@2h>kDy7Jd&D"g׻c#,"p". 2= |deD#n{Rf췙?w(;;6 Gvr$Cr|7١/D #{9Xb!DhPs5 kck耕z5ML[9ӔYC#neN%rd2A*O@ᄡ560Ow(T N2 vpVӷ3Ф1Mh.2eK<%01О,MDAwl~.Ǥ"`cI2l,I6+ +!w;ȶatv ᆞ 7hNH~͡ˇ:;gd BPXp =1='gc#`<z;@#L O'3#h-F|j|hFA{bavҡ/Lǯj`[4}TB4)|:/!PAAئITpmFVb-yt䚲бP'o_SVA_؈OQrM9/ 2N&"d< 8ce&|0\Msw' 5gDܝ)lܝ@ ƅ)3sw _Sh3bs,Pcd>ZH@&;A96 d"dOZfϊKQ$(ۘN(rlqd#&;q@&`8hz/3zPO0'z:@}iPÉbbD]t8.6;3AhbQvǘAy<&Ic;:I<ĚMtqadrh1d&8_%ߤ6!FA,3yWM:H&8'w"Ӆm;fh)3waX%c[aVNwOT֠/ \fj{8Krm Ơ2`msw: DF #en-sw:30N3A98};8.頳flKq=K%v4؆c 毑 I sY iߞ I :0r'd=vr)cN/_Yu@2 !„Uc@vc2`y`J2찯cND/ec?.2@_$*'Uy:tp\2 gVq'ƙ$Az ̪vɬ:O3t:љq.Uvc;y?w+i{Y5v|l 3 :8Lp~`!Uc< :hdVrl tNc9ά퉝F| 0p ikʱ #' :CA{qm t`|=q :v tz s`_^9޻0=gNce~6'> sJ2:9r}F;`Anz$C:0oDK";Lyb$!'F2L^ #?0=ōlj 9-{Is\3! d5ND>sD>v0=g-$CdhЗA2̳aazN MazN⪳099WL[`M2uf!t+rp3cVN[1995l[}t3r*&T/|5b q*rfTLƩ3+|GLʼn $`ܮv:=]X-p f' sp,"v Sp,?X&9 :7+f,HQ{0O}X#=֏}d8`n;` 2 hE& +6 m"㉭vX`T610#6O{xVh/%F2 vb}>\cbnN[05j\%Z.|L)_SS \* o:V^d($C11fD`\揩4+^dh[<-ra[A>g 28cvc;}Xþ3&r_XcRF>GXryX/J޷WH2V#]VaLǵ\cy<0.28xa̝)s,dL RaLsgJ8?X& 4bl^0!̝Yvz?XM:+g.ΔUN>G*2@98erN2T{2C';]ԙgf81iy)3$L)`|k9\,k$Crd?ϱލ 3~`$Cyp߷7X' 0SȄ&d9fL`0b1GQaL$?Nuc2Ud0K# 樓 'A9 9P$C1[}О1K&}0&D #~ɘ"/d:Ҙ C_A>ǵB21=9 shL&VӾdyhK{ Z:O5hLɡ1 d4+Ջsbr7'1QN~W/tsbEĚ`N oh.~ߘP]=cN <dmơN~'txxU[Gy }'LIh.fS6Qj 2ʌ11;|s= dQZ}z &C" tH^dyc f RW땹2=@=*lRl+eIdQ DMy A]My *fR \6s,mKJKfEtO@e %5K7,P^0=:f_q;AIm Xy+h0qseM(Y+)YLI9ו4 .j,s]Ms dg|*IE 2&RUԤښ8KZ^/q̪I%geZM*:AEYafMkdQJޛfJޛ_k\ `Hnj',v5U{Ĉ$@5|*yo,y6b#y, Y YY,Jƒ2+`Q2 `QDN.7+XYS% fBo3ˤpr T{+7|rmƢO77 !k"qUX6U&$@!g*yo t1+L&N`Qp>p\ Wu-}UXت佁\j.~#qpBU7XkeJi:`(7Yml"PL$IE PJf( (k@0N.R`%H~0Agi򃻸呼7 qrLIVBTb7gWl7Azp7J@8d7fNeWN%M60emɯJ q|&2e'e,UN%EIPQ&yEIޛ ;KA`NJYL&Pm3wNiTb22@& m|γa:JuY`0.@zQ$CJ, ]< JV#@rWd;҃/kTb`ROJ2'`th❄6E9@G\u.xYQ$]|0B-pƛ(CfORJ,TC~0(xÍ(q냞ꚙ$!A 4AIy^AJ:hSRʤ. J4AI2IANqfV<ƙ|ݥj|eYVެR2-˄9@C`k !iNjE)0BƢEIXP㻫YXL7uȽh͛{Q\| x'|@¥1R4A Xyؘ-PdQb ߡM!(?Zf15tcnvhPCbcm%`Zy|n t*T+~^Bi tK1K(tlI-ujIs"~Eg%+V,<)`c|`Wˬ@o(.DmHGcfCk!5N! Ac|Ʃtb*aNvK*ƴ!Hڲ9ǩt*95s~J1(ǩtaN8mǓSL/T:6XN҇|lQv68flΣ\4&M3$ӆp< A!]GT:4C?ٜ#iLl%a~Es¸p*2%{̼! %)AW>OCM}bLXrX D yhK&-fT"V~ʤBͬ3piCQhP8X%Y # )D3tHx6Ŋ4@RbĊO\c>Q:ojŊgExT[}*"(iDgE (7f-0蜕`vPm4D&-Vf-r979OVDq(΢4!q}VhSR/ 22it5f`PPDP\[f-;{-Gd-+s^5f-r-琦OQǺeuH,=) K)CV,j& 8Xlsl9H nY ش0 yHݘ<^tEb*RJ1ИD\thS A%RI)͔`5WޡCA)%x1Q)+q'(@@6r7Qge@γⰆ  bP 䰦0BY&܆1JzۄQ~mh3\M b6hS Ę%#Ĵn Z(KBYjA+T#~ edS_tB.1l](K5ƶ|YcۅYD(ء¢(YX5e/:k_PjPٜ.%\K6Y`%. ,Jj;bPYxYE1! l}M (fbkt,B](K5bz&H=҅V(K5{P&2( (&@Mfm,]fe;k?`C]P jR w.G8PZ8Pjڇ.P rZ( :d(@CUJ/0,2l!u ފO Xuv2;BY](K (ZX:K!|RgP:,uʜݥ+(־Cw,)bVyBYZ{X%k7qv Y{PBYZ%wAʒGA'艭=}$w>ޅ䱓r/%upl\KЗVX;.xǦK=N.%} }i5X{CPYdQZ X7|nl,0&0QEHg Ӳ4ô|Lb: w44&9pmvf2L(ƶ Azve9]`]Z`jB3,ʼnt&6͙ٔ uIgndQ歴3iYCEݥXR<zD;yQw)w҅.Z8Op{Bqjv8UvŖ ũ-qPr( Fh(9ǩC8Np說PaTa#gg) ʘބ洖XCFxV A.Gcݚ^Ƣ`&|("XmgQ*r9aVrt 'j958Uu+4'pМw⏇6+;МN( BY[Yq萺K U4r9:oOg(E (4'O־:΢thslc"J'vHhNh P/Gq)]z@oЦX8 by>rԅV K"Z{>mvZk?Mz`œ)P :P ʥ FuМVPo.GCr0r7W .4'D͉@e^J|@ŒǒE ODt9B΢`I0|CnIr^%k'4'8Kגbۅ .`y洂bcO-4'2PI ͩ= 5jDQV.G=VK=.Rt] #`…I9QIV 4'М[{HrBsZ,J洶YyBst9yС?(3xKBs.4Mq$t9hwi,CI}Pw'al2K9A JuChN# PweV*,J6rtǡS' 9qt:ZМ֒jj/ X{XJ(Tk@ЦZ{2qk(vKJxw' 9 `'(pPmKh-I@Io<@ءƢ&vA.G+T+ L}ފ7YRkJ(AZlr~(9AP5:$Drjl%c+RVs<МPBl x9-D֧]:ChNBs'4'8ܾm6( 5mМLМ jW.u ChN^" 26^ -Raw)9aBsrx=D 9(BsSnDݥkIq;DZئX{VBpl#&X{΢ć$4'?ɇi(Ίq~МpiV E-4'>9(J Paq=5qxCro BőDhN:!PBE0Br6l j(ChNUC.4'МF\ 9A$w)d9 , i Bsp ӀМK!4ʢ8 |eQb4 9exGt0fvu#.BӜ>Nh.`S'Ӝ2<(8t4ÓiN^Lsʐ~trfxdt0)ciNLs+9exLu0)q6:Y o69exw0͉] h9 i-*JhNTE)L9X@:qc1ܡXm&QPme %3³#9|:K Y7ChN\9 pX iƢp.ŕ 4u;r@$yjk X0:;{OМm3ƃ?YI!q 4'a vg WМpQ x:' _@ٸ@E0Bs @sBPhN F(^hNOhN8BEiPRiNt@sPȢܡ'(4 r@Y>{hSe? 8M(rPR.G()] 66]z {Pg9%(*TP9a'(1U(E+ >cU(M |IAI |6[ |γM9y^@ G/(W Aͩ 2oH3>'>cIy'"2+Jsh(JQfEހI%9%yYcΧМP9<ijDhNq~dj ȁ%w %r4CI |]P.G=$ggS>C%r JBs*0Bs*Zcwin BM P}lL}JK7c&4 bⳃ(C_;tܥ>A9UBs'nOP^|!yy'[̧k@z+BaI5愓-4 hݥ愫OhN92EY@Tk, b3V#D>'cLr6XCBs*pl GL9Tfv C.5p?ds*ЦZ{(Xmu+4Z k>F9e&4'$4'WL7CJBsZK_v:]jIBs,d'(Vtl$4'>М,vg洖kǽTl5@8bq,Xb z+־BEsV[{Np3NBs ʱkߡZKIA@NJ/>М7@I%%SEpqIBs˔I<PB'iY5%:g +Պʷr(־AJjY,D k@M X{5$~YcLBsGNS+4x.-P2AhN=A%œo gaQ*L( :OXYPE xtv8+/|BMЦx3)B%E.Gq%' (O|t;}?T((rp/=$3YBsވ@S;]$9R:hQʷRkmg/4'4Bsk:\I{@rXì 'X$9]4bWKc*4X6kRCb J_Yk>CUݥ/V=k_a%(bE 2#М* \IhNp%)reVJ. -4'p&9\.\Yrw^Bz9 %l=ӜMaSw)V+A8.uO9wXrQC @9ۇez92<J/P%Aqq YwW}YS*4 zS)4(Ц(.=9YМJhNru6H9YD}߮!Jފ 4'4 BsB[.PR}|Bs$4'o0.1PR=9ĥCYhNL_VӮZ9U}BsBѐs<\:Yo>Aol_.]Z:❄5>dQ (Jv”Ishr:9U0Cݥ D,'d9ո Bsʓ+<`qPCYD~ײМ v^BsjBsŗN tH > ,4'dQ) >AJkH;L0i(5@ |Fpw8A%4uB~95(O4'hSiN@alA@y2Cd7 qg[y۔7 p H7 +tHހ[,4',)4xwp_. km̛9as[9( 0:Bs갨洖()/>72yCogYz+ٜtH >MlNz+B[M7PvМ М 9" ͉J^:A!5ȩ %U(lSH8B*(aΊW譼 uʋXÅ)w"2aVhN(O8,4&|( A7 P>{gDk$[7Q/(bMJ|EE{Q洂Eo_7Q4 oD|E;(D,(j|Eމ@P_|Fp/Jw"p/C6܋4e3o"|ER (|E^|^7Q|E^|FP0Y7Q܋it}k/4|ٜ|Bs"Mk/4|!e/^hNb洂/־k:\_М܋i͉(Oٜ܋N/)/_М|?esڻ oȫP EhNE{Q洂 oDyC!bD(.]7Q^Pw)/^hN |uN͉(EhN+(܊RD({k_D( 7Qw_W&s 믿?gW_/?qR/qż}s4Y?ى_D/?}:2:~?ү7='_^]Q_9XohZoS5cyߟt?~?|ٿ_ן1~{7jOX2gVЮP?vJ,hwPkףS/\E?KD7KW(`?s\a<~Ǐtcg%XWоtyl{nU"}':h\n TI[[q|dvQe4v_+kf+v7π|b*,i~)zu~"$0ޯsWl>~?O)_Z 4Y\u\uaGۮ238qD>: h$r(hF2]I~kc;7ϳV+Зøp]Gnz?{һ t]d߮_WӮ$Tr8x.27wn¦i<@wgvK7~Uݯ%˩VYEaת~F_!7~9Q։_}1qZUO_ V Ϣ-EuC5qM441ITl+v_BCT>3ɑnoR|\php4M7ۻ:?g |:QwL@:n06K,XI!>fL:M_trQh͋}`re8ϧrrVtl^N3=N9homU+4kX&{ cƽ-,n!-{q:,r'=e}{"_yW{J}oR)SߦbӴ\,e揉5R0N ;kp 1DW>AweRב)Y!u ~uZ#=c?IeF,}O2yv=Di^ETMw 47Tub';ŷ]/?:6A;L1C"ރ:)6 RyZ*)ߑk)F;Ÿ+Lf9'}LjIj4wlS?HsI4\=YlYsOkЍ47(~$B{Iu>Aw{;/u2]^lEwυEu eYiWIw{ aTi\j&+ќidRe([>f&euVQssfpEg]vQz:orXL,NS|>OL ΋EZCJ*1CJHƞ^|lo`N0-]|> H_̲{T<*Ĝ:i4Z-[?{I09WډU/)mGsvіe:D[\V장϶mr)-LKei3 ^UĺʛIlܕ~:zClВ()g[41nl;[VI.v^bO RqߋOp&U*6+Rw:Tl pmb|6wuuUqA*6p܊x([E9Ǭuެu -=2mϟSa{.rO*S|g=qs/*K(n*#5KTe׻uvR*ATee;eK 8$2gdDq+hy5z8ca.ngwU [2v\9f#->;UGHQI )y4սS}>Oҙ7㼿{"ʙL.H#|3f7SX n>|Ze|oKmٞ˶>j:DsϾ3'^i4w ]Ĥy(*TqOkz^:aS7{XAz;vL g9gXhߎҍvwPWR7/ڞA.\3W R%'ReƋgRu:Hk+iyK❔v~:)HQ|Ҏx)x,t6aSl,F%C1F:;v/na>ΞhAގ}>LL#}TR)rn#hX/:]tvffN([6qa;f0k+8l̛{DK.;13d='6r"m˙v45 [>߹.[A6ՓAjQV>ۿ*}ˤ#Y!>×*u$i^;6fCwu\ G17p:I?.]ItUTI,gz%=?*cwr5US.p϶iV:Rz~:<&U;\EὛnRn!F7U.Zw3ՇxA0͓y]M;gP&o?nfYO/z o|c7'ᦎqaa|u} >uA|S۵_|BuyD.#rE!|B_?!ަoL35rC@y@Ay0ɶ|/nviz.~~ef mz88ov7;#tfڔW3dcA}w h5j+Mgvu^ȧspnm\ЮmyӖ_Ιgڠ>[7vў`73t>[ lc˾6S'Ov!Q_EFdir=Cu=o{6jtRϟWnX";7F="ϻh> 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 1460 0 obj << /Length 765 /Filter /FlateDecode >> stream xڽVKs@+LR&ƲʊbP&6z{^vcQt_A5"{Ed. 8MJ"chUSTAȒ?iTVn*8[} "Jck+ӗ}ޯkBZ'QS L1ghЅw/%q1A)N㈨J^!' ˜0ytmξA mB-(Nq=Ʃ~a!js㞂; l .9YvKXTy(|PnFun҈۫Na-R@VumtWA1/.6:bn0|4`gίPƚ4(dDr,Cv:ǪV0? XK7>V\m)d=bLsU%*G:9@c@ۘu59`Q2()&s[0 K`s::ʨ`6%LyԷ0k'#Rg57A|w/]uQ#_4Z& ?)p%݁ fh'ND)5[LfFxQ!O4iVV_em/VG6,.Ӝۑ b߂%Y8޶l9&Enw\e/'W~nm8bqT.mOM U@4)dnE˂ gO Gi]]??w]HrCA"O\1 endstream endobj 1456 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-HighlightTrack.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1462 0 R /BBox [0 0 540 288] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 1463 0 R/F7 1464 0 R/F8 1465 0 R>> /ExtGState << /GS1 1466 0 R /GS2 1467 0 R /GS257 1468 0 R >>/ColorSpace << /sRGB 1469 0 R >>>> /Length 4359 /Filter /FlateDecode >> stream x]M}pW HA/r$JC~.9\mSc6氣-k6X!zfORKۗ/Ԯϗ_7~z~~z`"kqnfTأ\{T~-zw&^gUp@VWI_|(]>elAB/lwSb>c3>.n!~QfwG_&*{RI*X-]dH˄z>_>}-~ᏯWg\''J;+,Р~^uac8j7!. Byx!&h掻u׹從hk|[]ݲZ稸J7'>]!{4WyȓCfpÊ;AjVo~^ֻZ!ЋToXqZ:m7I,UĆpU3Jɻč3w HG=w]n A.[n<bņzNGKhit Y^8ÿ,d2F78vxTo$n&rwL*SVͥ| #*m~N v=:񆣓i{NPovo&>5>_O_ SrIc; I@4_7MZeI)0nJrÚ{պfZdn{n1lg~vZRfZ7ۤyvyHAF옛Bm3jioPHTӟ`G7ؙ-zu؇>Qo`;/F[=bw}RY|)"aCv&۱?:+؁6 _x-o'r}K8^bxoڹwx6}>S|H9#G!_@}sϹk#?]Kڡi_chi.7]ܿh(Im mEhFhW~N^6ŋoծZſ6]mghSVG;d'hG'$%>/7?3adghS|l/($m$݌ӥtk񧱣}lW7\_yxۃ_n/=y/?9/7oX^9?b=sz/؟8c?Wٟ9d/8?x+o9qcg?s!/9?x;[6|:CCc7vO}>qO|Dg 3{_9}˰좾 jL[w!. ٺ*Qq}}BqFj<՞Xq[zQYחށ+Nd{5_w2Cj?ИQlb 3Nke5'':C6I-Cƍ6PgYK} nG\ k^ьz@TQ9`u&E]`p:]\pFכ6|/OlB_?º,̔-K c=W4)U$hXCK4ur|ݴfj9vVk7A%‰Ol>|~`PHi VʱmDs?O1K6\"&N]ͯ$bz b~ُC}mDu"g];?)&A[;K{ .u(1%L!1A4Cch8bp "puM3Dá;8&t3pL v Nf pt*4NgSt:C4 ͠da;Ac3D)!NAv pto} Gv pto} Gv ptQqlh8:Ac3pNAn pt rfS46C4]rC!Nn pt*tNgSt:C4 ݠT GB7tߩ:!N~ pt*NgSt:C4o 7m,1Zb[B)D8Cc!1CGq!#v4p‘:D8fȗpCc!1Cv!St:EGB7tNn! ݠ)B8:ASpt*tNTNTNѩ:"St:EGBYq`~li&]<w?p:D8f"3pB8r qp̻AsL¡;8f0 3paB8:ASpt*4NThNѩ :"St:EGB3t88lB;tNv! )B8:AcSpt ƦdM)"S46EG ;hl88\ 7hlNAn!ܠ)B8HX8EGB7tNn! ݠ)B8:ASpt*tNTNTNѩ:"St:EGB?t88.%ugx|Gaov6qa_A[,kiEhx&fž\#C5-v[S_KM5="[ Gz36-+]9Wrb΋zt U+O7Jˆ/WgtT\iĴ$ucʩntK4z5+pYJgJ,”/ )8ƕ{).(=b.JG~!6}$icLB1As_Y*лQV:b#y)h/řBiU͊akef:d>J@CbXU47bEjtDB钵<ʴ 8/GJSg^#3\d,:Ph`fsJk1\VK V }PazM⪘/!Ov>ȶq:q:TbΗ'G+xWRni,\+É|ZpgWJg] 5X(o@X(MX::|@G*Bґ2\ֵܑq~"O OY(8_腐ߜPZka64V-j7R a-/G\ Xk!u/7qG!.9`( aVqYBX9qR,ςR46tRП<۔ endstream endobj 1471 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 1457 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-HighlightTrack2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1472 0 R /BBox [0 0 540 288] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 1473 0 R/F7 1474 0 R/F8 1475 0 R>> /ExtGState << /GS1 1476 0 R /GS2 1477 0 R /GS257 1478 0 R >>/ColorSpace << /sRGB 1479 0 R >>>> /Length 4371 /Filter /FlateDecode >> stream x]M}pW  _I HTY]rڦǐmagUlUCr>GϷ/Ԯ/ o} ??>hlz0kgs~z3*n.=]e|ܿo? X[;w 8+TCZ/o|~2~feD Dwfy iWa vcnr)LMVi/Nl{v=aKP? F5E݃ ORW?lr!!{&zOoՏ|*Ct{BkB Hϫ5>_ژ]{xlf1%S@Pl0^;c| #U1yhڂqW9* ++)ݬȂ=AqVqԼJI!3y}aSѝ I5zk?/_-E*7QaX6PMMդU*nbCw*ΙPGv$zKہ;S. -7\[pbC磥m4v:,A/RNJuW#ƈӏzI<[7 OFRRHN7M;&v)Rg \fw6$;_qgDxݽ$[M7 b U'^/v)1ݤH pKGIƛ&7%aͽjGSVs3xhfud2=Q?f7Әa6X?;tW)S &ׅgtD#5uWKϝ@<!vvu նRkNu&5W.xcc]\k`]Cv+6wkRȟ]#`V=2~뮴s%y?k}]iOyO5|+KPrx轏T% َH\|]M@6@Mlwl+#S$;17 ?_ې]bǠMk4N_>]1Rp3mR<`;h{/vhش?~(Mi/:JmmE?h(BGڡ'Uo_}M[+#V?dg/MhW'D_7ԾFII|A;)?d{Ohg%l/,LCmn'Y+k%K|&;J&;I|G(d7Ccti;ui/mחG~?yy|ۋgnOy|O9`=pz #?WΏXϜ?9b3'8cCg9x' O9p[Gr8x7K9r?c ߯P>xԍ72}>qOw> 3{~coݷ cQc: .wxں47qm}W zCgR7RÌUV{bmMlFe]_Rz.; (O|ݩ˴: E@cFQs  228!{ k N+& 7Bz@9g-9s٢f\k_Z Fѧ׼o9R9`u&E]`p:]\pFכ6|/`_?º,,;l˥mׅ1T*x4%:cjZ jֵ Jtށcՠ` E]>?w҃[jʴNr+~ö<͹+_ط?Z,p8u5 '?| ۷~z9s=TtՃ;m,1HLֵLZnjhF2A$s |p "DÑ:D8&#w3pH=_:{܅ǧhDLJr+ 3V:*s4gqYbZ1Ј]P:%N =_ܚnkv8O 3csԎvna~ΗE ʽňFz1K#FpS>fteo}kr&La!H,(+  Hcf˰T3fa j!1,H*@ T\ :ztVkQeZtnm pB[KW .]2|e(Kk3Yi%۵H.+BǥR +R>(zŰxN=&qURƗK;Eg@d[88vqizt*}i1Key+Gx4 .pmpѕLl>-ts 3W+ʮŅ_AX |l R|yB,CQ,rt#p!JHC.ZyH8dv',xF/BHoNA(q-I50LtB`^emn)swsUaėiA,ĵҐDW8d00,!8)gAXZl:f)a}M/C~# endstream endobj 1355 0 obj << /Type /ObjStm /N 100 /First 976 /Length 1799 /Filter /FlateDecode >> stream xYYsF~篘XQzHZ*=@ DcCZp)@)R*ٔU8*؜4$ L0MdRyV0%)ZV1id ӆvYǴDfCbEI BcIS,8Kf!" (!` Ckk&vq,{hi" Hr4i QER%(/`#h" (YIZ"QvG$"2@3E)A 1G E(`vz xA:PFBKH\ -(K;0qio:Z@ـIC#JBxE'62,^Ia"*!@W*| -38cT>Qd O'd l LL!=3`% 9"4)e ܰ&q5|F~[($6AM62b VHGM2Hz'B;%d0Џ4wVs y&ܑy?DAܢs>2EC*"e B2W^)9̻d/W D 3bk_5{yon ;hU1gz6([djVCK[LqQ2?Ϻ+/n>/I_Dzf:Wdh/-+;8>02a~G%O..w{ީ-{:?/۲.9;AYUs_t<(ǒEߕڢOKUqgy65?kK`K^eqjγ9oa帚N}=~67.GȤo~5.| זJ(-Ri8BfoόP@'NodinoxGӰN] }`e1:Q_* Jw+5$+7/ReNOM>c'bNW2o tYHkJ\raEu:m_$ak`Bb]8Ǫ(vs$ё~1e:WW~kJqUV'YEqw亥^s06H\V*;~zfzzNdpφ$UH)L)! SWĐwO[z?wkӎ6(N/dS 9t",TFIޞ`A[\tмm<{q^M̊p&u=/3TiI %2itYU\),𝂬cC{.|Rͬb^dŤ m秢zün? K)3#R Yp1PE(SUDִ$;& HYI -5;M+vJk*?[y "|Uܬ@ËWy^wL!~Ug?x{p %pҿpvt폰^k/<Í3\bn'ڏh]$d\wPE[$&H(sm^fiq t>m5ORy^mQFQBe'Wqz "vt5sUSZl1b X_ph2C`MZ>>5dP*s ~P8Oһڕy)յ|P]j~ksy+U마˴2S'ՇCjܚj0 >WÐ>8Gi_xM˿q v _*o cqs endstream endobj 1482 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 1486 0 obj << /Length 2102 /Filter /FlateDecode >> stream xْ6}5OT j[rTu䧉8$q+5~vA )Kqa`ۀ﮾]]~E 8x&&М %2Xp3L]?Z}}6Oﯸϔg4g$ z> "!X `4^7|vy`B88~Sw_ Q*Yuk DAQ_ᆌYe7?QD4H3Ei8WQ3j?x :)1ӹN.b~7"D,L#2i5Z#3,h]x# ~Z(EZF,?ĦP/E1óL*q(*m l # ٙRYD ^F7x,^8aܨPvՈzTv؍8OM8O2jr\?sYeq򦀵?s3 YrÁaG؈㬎 v[iZhLa%%WdV[ӴuYKAl z< %~"'V%| rQgR}:v7@[r<0=2Zu^OTxK;E@فtqOw{4nAOc7D%Y3ꆓN/4Fqt[yNsw{^ G{*t+:sR(NpBN`&;xm^ UE/QϒvUgSG\T~9 &'0A.`1?\N|bGbT+-K<=˖D8:HJ=0R'"mM+j`ܕ#†p#G/n6iʾ3dvpBuD%{D}}GͩB Aȓk\@7dc޸J~r}j}rXHE@-;{0ޝG0y>N֥+BF4#≏ZNXC)ETG0dBܽI n} %h9ZB,&xBO'%(}]1waLr(rf"K~gP*X,$a+ߗMk.8Eg0\|C7نpPLMϙDs.L3NH3CmYV;<̵cO"vu~_k6o!!~(Vem|y5Hp˫9ry%G//;NQw~ԩttÄ1UM_c~N1&]g$9> stream xڵXY~_ADC5<$@Ŋ>0~;١DŽǮƿ>u5\Q2 lW_uuWQރw<ܽ* P*Bpyeq$QJGp}ۧ~l/kSUwJp+tK \S.Tt`AҖ& 57w6tJh4ĉ:HR͆w{+dl.`Dw;׏񱥝gY= }U\,%: b!$:V(rwʩpܮuw'Ѷcյ<5ma5]Xt|Po&i0KVXk܅#~c}N}k$/ֈV\4Mrےj<3Ŗ463+YpO$IXWM55/WѸ'l_HJHG6nR6L(tH,~iޚk}my|8C*صc2髱:9NF͡PKKݍ8O=bT'͇J #'%nwi曆I yuni.Űy33޶)X i\fU NR )x$ +M0D >db%1ާ 8 SH'轡h ͼ8A'W% i#rpr"EX$LebRQydSiؤ HmO5ce*crڪ"\!ak}8l4 ݒ($I@\b=B ,*\:‚o$-;*hoZ 1T ]: NTIimfaƩXm߀sKEb[ 8c3@t[/$y%0σ(iוG2\0|Q<Ɖ`&URrP <);Xld>e 'R2FɝcGtۯ'mhVSt!t i?-VEcɂz^I㤁ăLsa6ȧ A[̝%Zq ȘGS]_Ld%co,bRe0 +1,p2:W_j"[=kzcE J]L֠m=0}sLJFI_*aD,Aۜ:j`G¸舱M<(K%RRЀ}Oс'Qޟeu* Ҿ Aٖ8##i)L(D";fͩeDme8i:?6Fo asK}Sk珼U"rH0]89 CcgZKjM1q(Of[og M{! cdd d՚9rh0.Dx; %J!j뚿q$M6O-8PGޫN3 zopr6,RtN shԘzL3G0>BU~Y -5t 3<(ֽ&%?jʏ!Q&*j釟TJ-Byo?c>6QrH endstream endobj 1483 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-OverlayTrack.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1494 0 R /BBox [0 0 540 216] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 1495 0 R/F7 1496 0 R/F8 1497 0 R>> /ExtGState << /GS1 1498 0 R /GS2 1499 0 R /GS257 1500 0 R >>/ColorSpace << /sRGB 1501 0 R >>>> /Length 4476 /Filter /FlateDecode >> stream x\K}pF@$ ÇرV"S_Uݑ4{HnEX~zO>ۗwnwm/H[߻o;}M~xa]ڮϖʞV_jim)Ճۿn?V{ǔyb1-uǼdB//xr]:} ?}U%eL0IbD{C^=n|7_}V?^tW3xՎ+?#>nMC7Хu;l">؇D[ŁӧهԾ+پcϛ^םvgw u5{%a2v^8y{h[J{ooSϟJ}KTH&/ȡ,Qつx941hb<2N3ξ;՛M귅Ebfδܻ=lfՌ>{k;' :/79=kH=M15q6jD)(˄ w+K67-Q>Rh^#yQqqf4xnhWO]Oh^n() |Ƕ4nw5bU?ȧ|j-]ߍ`N} j"\ x/{ y-ˑx\/+ٻ_W8. Y&DUd){*sGr(x\'pwg-AFF2X#JqoL MLOJEJQ> A骴>FhHSsԠt6ywd3s 22 8Ͳg AO~x}#Mi]⼏ޛڠ%/V9k%'tgJ;W 󴔎L4hyJ}Y~DGuuОO4? qbo[i| btX氞z?_~!,,/Ðg'S>}e:%ːoW Ϡ[]zgF{ay|Wttg:y<2+Lq3=E/@_}W7EڏySzi_ؘ)]飅P}<~e}Om7~rD7/ţtk}@tk}A׺tk@/C5okAtlK~@ tK@t-K~AtOKst즌u~|u?мz>A/}oйKy-t^ twK1~c/)rqGҟ[/ygLA?~ò:#@|OOG䷌U:C\/s=~kx?R`gNK^k^OT6NHyO*ӿ0/=/?47=oӿ8?=?>a:'gfڷx%x'/g-8_<C_<ߨ~og(vCv6zcqj7S4d;*o!r';ﯪEmJ;|KJ_^4Li!Eqe}4; +_؆ /|!)|}l )-]p!McI&R :7bs0|#!cЫ5 Ug5kT5*}nT4cwBd}X7{WIxEIswbO~oçnzfpJuDPqS r4J\<k?2^!ll\J?DO5V=|fcW ɠ_ոf%bW7nUo̶[ChH[7l ]AsukX"֞C,Ob-A&Q5 0d)j4Z=>dY7_yAX9?fjgмrfä\lļa9[gNxCchtc]nhS- !YĵFJU:%X/ Zw);;=!ruk΢vFAsY3Rڵ5': z IN HVxQ$.'N3m)Z3fHs䀴y<#k ]p\2-GF'k`>G14[WkhY 5#+%?6޵jvKipF syL  ^<-['d=eDE8Xas+09;_@ c”)H̆Q|NzZƖԩnh΀u+CSiq)ʓ5a0Q@-3.p oխ@ƪz"QG=DJr» a8z&o-!ȨTKk\L&؞Z'f1Hh $Ep껾uES`r"'$[VO(bSӉ1ɷƾ5,Gr$K/U.hn;׵&J~MJBkH޲!ZHk5x"CFܛvƂ*LޥB5;aoZjHU M2ڒSԛ- 47MK>DALbY1M7v x*w,FЙ!om5Z,c ݂[2cQ΅gT \L%fm&cbY5źI+ 0ߖ+ԝ9ذ"ݖbVUS E |&07.YajLF2oAsgYs%)`ŸtvΏ`jζBX@Ck7W*]CdK*mT"%t 60D lЗۍYmh5e el[0 oSd,8V'v j/EKd-_m[,>)bE3U(MVY;Umd; Ңv1Bl۬"۸,lYsAM=9 \'66lh1S`;ڼ\ŵSkW+0͸6q,k.6|&؂jVM^4bԮT6IIM7 j#kCL"KBŦі"ڤ,~"Xr hl&[bζ8Tl\ԗ g$مK WRdgÄK$ ]~Jl'MOUf#˒]Ƿʮ($rs٤U&b~bWv&Mj*M /`SYlyg @ endstream endobj 1503 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 1506 0 obj << /Length 2085 /Filter /FlateDecode >> stream xYYoF~ R 6{z =( 4qчHYl)aYRKFqB3;E*w'RbΒDH\bW2N?ʼXu wxq"i.c$Jkcnӽ&9 sS-d&#A ˯Yzv>]v,=H 21hO ',6)! ^E*t}nwvx8!WC՗ו۹ٵ;}z;+'/3Qiڝ@KD 7US>u3cx*u_6uӰv4ѷ <; a;i+ Gq=vtlQ.gCʔ cKˁ6VjE4luNnX0e{kZD tjok "i%+&aSWw%+^^rմpief3ڍ;-/Df+؊y2as0 6C0B'+^M2Q]N[S7=ݔ-e"Ŏ6m+cGC8°ok%#40ShfPy֘ iJ &$Ft|ٹwjNۥI3G(EuN xS8EES{+@Ex:PX"J~!?)NWIJ~qe̟tA6ʥi:v7eE-)n 8m PEv/RKgȌ4j] @aYo۬[ru(0~̶K&)CKw],+G`謭Xn|WnGlZ" PV9=Sw5ګX4@E=p#@wZp8F=pct2:jtD*!hy'lVi䇷Gk/>~B k,ŋJ(FRyHAF)PQ+M pbVlDhcۊ]^R"bLY83 UpzG+9hy7b{NSd]8g 1UYEw4^sm$G1dy~4\ &ANrui8qZ_@yj"#sXNAl BƝ?yp$'AOʪ.ݹom LUӧA,^딫rX0B/X@LE]Qnv`.?/bx P ;@@) @k-JUOnĽL!_ @Cݤi1^GPz:7b=gQh?iK ,se2CPQw#uQ$%ٽt`9C;K/}sh@kle4ѱ00t"^ ĥ-GB/D:$QSXg4?ЧM,8"94۬Fǃ_Ss :\슗uf?x1_ࡽt~wky½3bx"۠6]Ei#(![[~$CoWEm?yxkE=_6ѳup[\[(کgҎHO -+46KK^^(K/`뀨SGgJ"|/oDMV KuLK }-U_f!^G0:&~fy6ÂwԌ}ٿ.џ7ai^4L YH/:Ŭiu^nlދ# `.эSf2!lhtz@DD{M,UɶL endstream endobj 1489 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-OverlayTrack2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1508 0 R /BBox [0 0 540 216] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 1509 0 R/F8 1510 0 R>> /ExtGState << /GS1 1511 0 R /GS2 1512 0 R /GS3 1513 0 R /GS257 1514 0 R /GS258 1515 0 R >>/ColorSpace << /sRGB 1516 0 R >>>> /Length 3094 /Filter /FlateDecode >> stream x[MܶQ:UUJn*#%QHFrHΈrDm`xrvw~ǻWfSRjӛ?_sOvL*|W|y?L_ɿ!.ѧA;?Fe[iw/3f ~ࢵz~0~ l@_=2qϏ>^>ð`FY:4x/O?pwsi2^3}8]`[}A.Cр}AfO6fLmFe;: uB@]8⓵ K;bV>/ }E[;SqWcpqtG<q\uc:7ևxRI&Ldkp[~:{i-}1Tk7*:Ρ7~yx"^8,N+}gMV$+u][oLU~{fib aS:n\<9V?;@ZmU;ܹ#Z>*,ʉJ vTUʓ*UFMoInAE9Oiټ*wӘN;ri v)wVA?G]McH淃T=E.䝟W>}߾e =ƶ,fxUuӘs {n7!Z}M;2L|]JJ%t<,588"5!_.5>F bS;*Vp&I '*uz'\B Ĺc `]=1@$Ό |,WV3~>T_W}MO8[?η q-clGb9&cES&@lS.Bc?!DC_ɷF]oɔ>kbCLؙ~ 綾?`?΍?GqROjE7~#yI)plXƯm_¾3pnبuMv\:}/y7j|y<\?e\_%\%^\%\%޾/2۵|'O_8Dp>|},]_^DzMG^Ez]%O ѧ'_oD2e}|&N5oĶߙo;lf䴨7Rn~⶟'ng~bB)B)B*i[aZ-N)1b6dXh--CWE_{ŭs8~ͨM?)5wRZN‚A*TC Ɯ @{@JxAaD}\1 N+ZZ҇`iᬣ-oa5kS:Ư!JPEOI=X`rgs\%d]W^?š~@[NRlBe!:`#:wb̌5Q.5DLj-Y3}1 <{vʡ=dTf5z©\i[IRѨFbj-bX5F'hi3 cJxrj2ZE狽1v ̣ ;Ŝ+VOq1*L牳-V_&gi8X Y3Jŀh N;V1<Ȇ]^]x:1=-kǗ3E k~9kH%baC kA>Q|9/ u)[`mSϴG=Pcy,mB<L3ϴG<L{3 :G; L{3δ;L;/ Viө/:L3TY)8ˤHss&O%);:2*Vƙg2j&I'kj?[t<ٚ~ 2^hQ[Bn+΂M vIq>>^]pk⡭#e@%v=6+ q|yC:մ}жmkԖcE▸usK:ݬ5V L+U[-} [5o-FoKZdyk|MG[|kW Ҹ{^n o\؇r!"6U j"oڶ4(["_M ܦ3z&r]i4pКȵMiqдA2W8hU \U+*tVpдAZrЪZUArW8h堩 WdU+xVPдKA.M4RЪ v)hU Mtӽ7ҽ4 endstream endobj 1518 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 1522 0 obj << /Length 1225 /Filter /FlateDecode >> stream xXmo6_! 6CRDۀ ktŠȴ-TIoߑ'٢8]^}HH=w2.?Lgy̛yuT?N h{+\& {m{דՀXNP$..$,ib\eoͿrVVf $5U^65NgG~ t;wt xi_a8JMRר W̄S$Uzye7z v["DFi0nD8v'^""cѥgD̋'"^Bqc(j3<"ε(RD1oRIQL(1ɦ~BPeԶL$(!R|6D LD ̔ TF/ 2V$jEZ aUcu1okgx7$'ެwf^VaւZH7V%ktQeVV8uX+{Bڝݒ%I^sy=4V ;~!&`{\#SUt!< [Y냲_!>gF/Ve2鯦j޵ lt :Eeg3c{[2:w_?h@1͕_ B# XW*ЛڭXK8iɠ4{{Zrb$h\bb 2],vu\i\%ik]Yٲ3EV5MT iґ֔8kY2> /ExtGState << /GS1 1529 0 R /GS2 1530 0 R /GS257 1531 0 R >>/ColorSpace << /sRGB 1532 0 R >>>> /Length 9379 /Filter /FlateDecode >> stream x]M$qϯȣ}pW 6`>>xmˆ<-}3*Nff]i$YL2"dF<ϧݳO7ϟ̓1f>qO/~}>8VlK_ܓk} w<G?m NmRV邿/O5l.'7NRG/+nmߟO~L61 )5tueO~~?uJRof4Sk#+6PC!/M{~a/`JmRx2rqk˯.]x~.m_]+kS-mgwzodQ io?ia]w˧noNw[ZF=z= a'L&<+OY`xJ~G7yÞ\no ։촦,wkԚ1YweO1gړ\bINr}´C^\ԶO8rbuzYS,ÞU rR ]hq^kڭ`M[Zims8cwm΄'?e=qLuޙ6i;3Ƕj߭~!'PN_w\_C췳 sM>hw.=0k2}k{w|'睏׏$w0O>19j{mcx䟄3wKU\'<ρEϟ~ra~V29Aأ=Lqq)3.}Q̯8=n)=W?'ooîq64 :^Yx7<3a34 W<'yn/KϹCV$y|?~gׇkKF԰W\O8~ f{g 'W/?_7;؋a}^:F}w =$d/ >e^>U./d^ gŷ {Sj8^:Ƈpc1g0.c'74a<b1C>!g<:%K-/q25Cߌe 8 xO˰_daa?a_Oqq{O?8=LX_p{yx_/Oo/Oo''/77G?WGgOwW_g'o7wGWgw?a/ž { 1g;װa/Þ=V,zP9߭'/X~ⱟx'Cx]|e؞/(!6J;l2@u} .UL%F?^}.Qbc"zr|Wt462Goeos ;HLuBKoYWE…|. = > ^UԜJ׋SOJy}_ѝHVz"7,<Z&hx%ZϒugK-gY(t.yxy!Ғ%kMw8;Sis\~=wwA緥'3eY*)"77s]ڑnG?rCHzp_]}U;:uei5='nE˂7#r3&)b Uٯ(ۮU*|{_exlyiZ G.gztΏk#Y7GvUd1mm`˚iCp&mccsm]k, 9$a)`$e+՝!z[pԧoUm YG&L? Ӳ$ǞVaXmRT 0-(emIQC p2ŗH6ZZ)"}9H0Ոo vx:J񝔜K+%koL=*ƣ)%Ocw;uU%n}&~-mnaTsyTXGNayvQ'vyy+N^鹕'EZ99: ƒx+r`‡I(SzT]O t4|ÂR3n~gح.'GKr<ΗowwMw=gWa0pANdy&F]E^[q,D6 'JmM*д*1,;JؼNd9euFDo©wS[ rB$70C;M- VkC!De;1=d3|o =O%=ɇ˂@?uUH痼\vL{RX71=ѵ~ɞKvlR٪#q q8'kF#:ɉrX>{;2!PC|"kP$vיD0\sy& Yt;cw=ZO@d.OBSY>}Ȑؗت}g/|i/1/ӈAfF2axh8gv@yH3#1ք%Fڣ~bMXFcO1͈'!g<Ř36##Fq1݈q'lꈁgF<0bcOG_+p4FНe40gJ3P~9 _zSci㞳|Y(ZƳsϩp~e~ s,rf,9SȄ1AA 9,`D 94`D9<@^yB 9DGA^yF9L8A_}B 9TGXA_}F9\@ r`oC{3+!G 9lqD)r`oaa|ܿwϊoշ ǏsAnp8! 2.c #Ge~,ʧ:旰sN’#x?’#Ѿ2NCOY[z0.C5x_S-ag3>0~0.þ0}bb}c"]1&J)y|G?Baä#:`P,thL"@$~s  0zٗؼɝ$bICZ%:J8ȍwG ǩ\ 5pca{@rM`I W&p?TvD@ Ad8FWqB%mȇހ*t c ѴК_u" LִO'c_Nx ͒]yu+|HDڭmG#   [QhrHV 5ʗeޯh.z^PfksrGz=UrGSJx6'sW !$\ZB8A Sw8KM&[a>r*.뙊+})&:-H {רSa'\* 7^ xͱQ Ƹ%M<_n+]:<ے om0EromYml pm{ڦgmifƯh,6ogmZtv<{Ƕ~qcLYSϒ}rNڴTYL}&WTN;t~ɝfgxC9YR[u= #my$Iן9MNgwп!''fɅv9b\wSxtN̔/eb:Ds˰'0{}y铖1zY4'/ٓ(P䈿oygOd{#:I<ߕoaIwaO!L~i }Hw}~;7zIc$g9Ӊߓ~fX>m,/$DG'r7 ??1e,;HG%}LBҦK̂79ȴlh. ;gRlK@>伊wMx~ G߭ =$QKõM\Zx܈+O/;ϊG _R6}A}~qNxƸo;c;/^Eybww 9z;];m/оwxS@=gG,oR$g_=s;ƜFq"bw~~?NXq :2}z88sϸ}:-n΃|K* cX^|Edg-20>cy _1q{\݌c՜? +Mc|8o깨:x˪{w3asiu>x yy(c|Y^JUy*C>YJVy,=WX\bsU S\e՗sUjuV}WsU_+#\{{jjV{Q1bO/o0^^ysa>ٻ;'{Me=%$/j)[k>u?/#^K{\:rGa#(w3.c'7f4a `PWVHYAudXO훱| 0<7יa$YZ:[\vYkײooqVk_;?<$t4zr4∧T~T,'⪑{ jbV{鱸jsBzECPc1 Ʋ{X]DI_bu[ ev)ng񺟶1%M4+|RD3*J&_z !.X"[0K0+ڸ`O| xR S*wRr. .|j;(KJ8s<=orϻ*ī>=rϼ^SDW{#ܫ=b\b\=#̰wðic㰫/Ǽ{奿aopc=NCC/Y/u vd;sih\)(BLdK'+x} I_(+dYAw4on2޸i ׆oR_?x&Mk":TҹSv_YyiXxjGҒKk yZ ljt:8x% +=F~ډ,Zkc^^4[B];j6] %G[G <%ZoIk9JZZ,S'P_HMj-hX淄Qr[*/7,X@ߦ2qe灾UJmFc3 =iIڑ$%)_Y bokݩ|^53Y1JmIꊏ-[PsJ~G "%i_ ^{[w' cUJGrpz e+JiS'P<O@%D<8S4Po9M~Y+ endstream endobj 1534 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 1538 0 obj << /Length 1416 /Filter /FlateDecode >> stream xYKs6WVj!XxzHǤv&rJrEX"w r$E9^BJhNhz|9{J@j Y^$Y2 dY$奝/mܻ. ;cFU4wN{ -M] Faj3sJ2MV& r & p3d}k%nJ3bϫgg_~rhr zMyU^vG*ioߪ|GggOyOadE2,4`>Y_g WOlE|;<.zT`)Q*1(!,El!,`vQ$` KͪUV+ή瘢#ʦy]'JYrM;u7@gxUEɭ G*y?ʔǕ1D̈3Ouϥv=4g:v*m*\ߝowi"luMY76ppcƹ[ڋpMioá[t 'ʹCumVU޶w3C1LW(5@"uhZ/ jB "`u{C8r;;ݦn-֙f5X7g*~%¸\+cz}zxqGt& ..mjmfShw9`'I" P 4&nl^1fsU%LgU5s*ܫ%PQ KXNI KlY|]E_W=dUE uݖ.B͕3;ۊI0G{UЫSpe%J}9x (4#8C>)nHHL$$ vCbiEqi#iUH u~9}Q'p)'L${>ٸ!{q91Rqt|Gf$=K=%|/!PCX~(#{8R=r~gL4A)7;oHԹiwIM& SMwt endstream endobj 1535 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpuM3AIW/Rbuild3e0968a7e430/Gviz/vignettes/Gviz-multPlot4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1541 0 R /BBox [0 0 540 288] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 1542 0 R/F2 1543 0 R/F7 1544 0 R/F8 1545 0 R>> /ExtGState << /GS1 1546 0 R /GS2 1547 0 R /GS257 1548 0 R >>/ColorSpace << /sRGB 1549 0 R >>>> /Length 9534 /Filter /FlateDecode >> stream x]M$qϯȣtp-` `v/Wڐ%xoFk{7d2Ɉ`x?.z?ERkez j?Yzc|/O*˨E~OE-I/Ip~N*?/?!x>Y>!NJ/:ٓQKp;cMvVKyq~MC|q~x~R[qN*,IxG\)bߤ˟ۓJc t:%K$jl]/gQݹgIS!m܀@ ^4^J5Gkbyܼ6IŢf}f>ݶ*ל߬y9X{ro s:6|'ڬ9d]7V5͆ VCm'fwҡٟ sٺڼRxz#xmϯr͑=ukD:k뽑\sZ6gKiaNnbI0{qm󥽏U)nOF9fE9OhE?k9G`"*{q݈>7:ck [ZO0 Cɉl #}ȸ᪵Vk7iC7j'ʊj@'ܱV1ݳZZg Qo> /j&q]yZ:V{!W<߀1Yq]7u \uFCXZmn_KuTp-}Ug(ǭ6| JoKw )r ؤ}O+,U@*S* R RWR|mFިW_aX2d(K C *l"C 2tyg}yIdi((kwab{rr m9ҫyF@pU0*5Óh=͉J1LJ4cK0j0iWW fcwz#ckU6f쟢zǦ>dbPk1dlhjÝGp JxR aGfB7H 3 XL x3w vD7bL p+ͬ2(2If!s 9Uuc'vW!ו0T ʮShpngUw}k0tF^X ]hZ}~VGglΰOo8n'Tb>mǮ0uuc62ʪ˼tp] K`캡0ݎt1N )cm&uLc^}sV}c]cQM=]牾>}Q:bnS[LpzQh: l6xFէ6^uoY6NO    qaQ A 1! E D'6o!TB$ @q0!dKDo;{3n6}YHrDG}DG}D4~9.uzfu9A@6oNZ=²}{Of. v>O iߋ/o]?_Bݵ.d?n_}LɂpivSQN;elK\˿foퟖxJFϢm< +{YsCf.z԰4=j {GQJS W(\ =p_ֿ]~ tEuJ`Y(-e#ʖn˿AX\iC#޵!AZ[ڴ~<#(,ݕn"SЭE_Qt( 7+]Ga֥X9ʵXyL/s3.+-.rS 0>}/٬|pv?y%sD㥩/:{ k>Ky/!ӻYw3w4!u%YN{KDw\Ry~޹N9$|OrH~Ki/+!">Zr/ezSBitr^0ÛN6Zo إ)kj![2jQwH(ZQ@׏kQaC8QZq@XlrdZʙCP$fTFp ^ET瑝hajK\ǧ Z2tP©뤰}mt9Pc=T` k[4{̾c"HQtz~ڭ7ku8sG6`Fa[=|lXnLUs;&3! :DOtoH!b*QV{J亽di w⟱V'A;'y>å6䯽Js:HXG{s〆x qm;/k5k{qGk|hluP%3n0%N0fK>\%u$Hosý)Z' W%ޒF¥>8[͒2IXT.T׮M \S4ўpO¥]ioI%\RLJ %@ޖVpIaux~[RX=_9sY‚C)) cJ ))3%ס?LI zI]ua`)DŽKq#44w^]h0hA!;g~-h5FJwǭ`8&Rqk?R;AGWOģςㅔ{'R1ީ))"S(>6Jrs$( =4Jj/SD(=6Jjrsd(?h_4ʇO%D72F)QUQRT(+?l_6ʋO%Fl շ]lpruog pc?^e{3}|>~2N} W 8tc,Xa/ca}0~ bcVyH'"9g̢=u_ (P}9Xʴ}*sTeB.Q(w3)uTH-e6<ֵz&J˿3{ Dg1sefKv1p~\DV*ē;f pd&fXϝ1Pn0PzeHK'!NjkMƪ0`DkL-r:ȣQI ֳkNJ>r#-;v۟J3!yZ3tH{d~ZVC3,* f8qY܈Hcbl|0:~C30QQL.GH\6QRҎ0%攠ߍL)?M| ODV3PӫKF:I<(JuvO3$BTu.1rcrwnR^eиz\&N[qrhk~Fiz3W9{_hn}yk.rƾޫAKUo{PqyY՝:Aksh{9$ɯ+yĸzA >S*1n(LWв*8S_>?ߒ\Go_%yzs?ݝEm%/GGUc|y%mDY$_Vr|<z&V?Ncd,{8j~{ܣ{z"]5vózDyd>)ZϣZ#& :yT\uk9= !Vo$'2ZS2Lx语‰dZhkUydL2!k[m&ْ1 yֹީzaC;PͺX௽DO;>C.`=!^5U HXl-ypzx'X'ڗl@Æw"VM :({E1WݣĮGZmDSJVk3ia^AoA:=Y582خf󝀙ָ Ҕ'X\| yՑ6*GkגwyZk&Z=#61BzExS (JsE`8GiѿnZh *1/Fe+Ozg wRjH=x-X 0&W'*eܘ؀q 6R+1k+]hO[ `\ubb Ƃxq  yΪ х3R%`\.b Ƃq!Px]> u9nlq?]>CЮ]/]]T]Um|xm C%vj|_ +8&+Lkoӂ=o%Uq9BeJƳN]t=ʧN }q BGA_AL}qF^@{q JG/^A{qN ~1 o@,)+S V 1)o78tԻo|U6o!5$UF%2J45z  bV{yD'"9e̬Z诀:}9Ȫj,v]+jK )Kr.Q[1ה?$Z=H[&^l?[@j݋>'9^喻7^F>2MVV[υ.eY{yl&y)Wx1L:ȳG+Yڛ|el~cS JZ[brZY=o {Uؘ{G㘺r+1};U{x0-O欇3͓v~GCtqCIaV)K|s>PH>]n<\_紴9iY⍓hk~Fi_崼pk.R)NiIQNKNҝ:irxs9$ɯ+ys+_df%bw.N||Ē\pf}~'9$%Ɏ\dը[rZ:v?8-xRɰYTu$D~sGB_Nw.>z;^ .Mfxy6L+8MMCLGL4Nz@Cd-|jZ]>իv?]9Q~` Z֪'ĸUmgwiHW#g FjmSPtS]Æ4LtQz=SCp0|y$5:EU#Hb<RLkuLjw*x^aii,٭<ޖx=[g|nװ×rl ^yWS..Xo1#pն\:8ύqϠBy{GX1.3kkޞy{hOW9qioD]oơcAxU]oScqX;pT^nO c푱8t{f,qqpRݟ006y]Yj3Ʈ;}R~bd{Y|pzQa:_ l6xxnIgx;?" ^>!!ހ>""^>##ށ=  ^=!!ނ=""^=##ރ?@<x$ M#ģWW!ޅ?D< x4-m-#?#?#<_,/g^Kt{.Bul"y[Ko%6+W$e^Cϼv C_)_0q^`^~KΣp'n2=r-R}yr Ckl!Zōy& 5`0-]CO`yKk}(P_̤JU,k)'h@R.Q(w3לTXyA Z-K\3V?J–^CabYϩjz ^{ėמW6V/i 3nל,qgAeje.)ZU.4TQu{d ?G 5z!9ryaFqђ4#B|ZCT|́Hxe+Yh]\Ǣc$Q-x"oRCy=72c>=晜 ]DZ@(φN:O)'s$@Lļ{wKfG)?}ʚv_ׁ0yu`RZ5^;δR ~—U }JgC@qKPCnFde y\<[z_Pi&э擤?pK>sSىׁDȍMw@):O ' jvo GgO ]뷻ȼn>p=3>@o| >|/ endstream endobj 1551 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 1554 0 obj << /Length 3409 /Filter /FlateDecode >> stream x\KsWj'٪lS9nhY(Hc}&eg)sP 6hthf#:zw%:6)J##Qn_r̍M:miv4~ŧ E:O[IQ#m,֎&_)Z:zDgoK~ %S:t,+gCnߦ}p BN]r?ơHP@\;P4U%ͦz12BB]Q/a M=B>9,|UċvE(y#f)KhǻLf4'O(OI \S``r) ""RHQPX.=r-RL&ExL;'do1m!iM4{P3*]Wb 8ьbk뼂#?Z=GRfy[L{97f+uW !6| %t>6|kuzXwymbcD+W~QF4O>O3[;%=0+V'ᓝYQBg.lH:Ԋ AAaB<;tIޚAt@g2]E'> ߯Ehn{yXgƞ_qI[U*'8R4D8351ʛȭ!1Dz Wl$X"(X\ /X  4ﲴڬQE ۍa`j>0#LÃl문dI5 "(lJ{sBqm7'"@߿{ߛ{>zsRJb<7%kG(Q3x8)*i< }N}aFӡ!A`r>/ Ui5\nV7;:,gEG6<%INX,G(h+,$LUn{<'GF]w<m 5%iOieZ?b|(~ (Gzh λLL6/e Y4?0A <=:Vʗ`%gl;a]6n 蘆 ( '#dVmo&vX!@ 1:"n?Va gXM_@wAtO*7 6F}gfu(X.ygpBG6n2`>8'YU^0>0?M_!Ä sMMa)v^0@'8Ceжg!]5fgU뭏.?g²%*IB7ώCބs>EՉ5Yu.-_2y m \.?{~Vx`9U^mGVpܦS۬;":Mrz8t΀0%Ӎz`:yJJL}2}M`\ZSVEVCN8ޛ^!=ǐ-o0Je/gD@uvDܭ@2ź`@ v/I5#c\<->98 ev6$o F>`q^O:UFf^臯ЭeM7WǯeBvmr9 Y_m(bg%*MbMٍļN ATDA|)w=ɎSmy|׋^R= Eb;P~sJi n(0>pvkl\[)3:$ R0DM z,{{q^(}ǭp9ЉOy8md,ÄX+ݧ,:b9EL˄@e{l)ŞLMIfmgu •aɴNpʣhN yP?R9f?u;4GJYs!͚85sr=r''v'dϬט$S6/ɬ;wa֪MrlK"OEk b2o"ow3{K3'K@O"l4[ҵ#hN-w>j5Q}6/ǻ305tQN 'Ϛ2W4+hMz8=26B ^GoV`z_D)G,op̊Bi9T>̑gqLwG5>eTZ)+V|S9[|>fD:lF-3_8'D2wvγKKb`?'F J ^r3`Oh"f)h=JG>GّCf}D/0C- z͇((Q x:N#E4c1[0Älja6;H=yk笍:cayDji?"iO8"5шh dk&{:K;,}U;~ۣ>go4yN&6j2e^VDo9ߣaiG&;2"νlK;Y,n=lp2&qX@JE&3>+F; endstream endobj 1560 0 obj << /Length 1740 /Filter /FlateDecode >> stream xZKs6WHT(ޏ==ɴ&@K̉D9$]B0- !oGG7W_FHk)N4MTGo]<=;:zì._hI%")9D8FHrͣ1\10@H0\ 0!#*0^hۭ7hZ=<\BQCX)ا'FӣOZG Ԛuf)~Pd03*^Ld ,MOrBw`Ȅˢt-YQ&H\.-ub2'0.'NhLk*Ӂ٤y HDƞVjqQ5thĤ[r5)| wеH(lVX\:0L>$ %: ͒E=.<3>x HyY^c j GrP1Wƶr j!NjMe:TcQ\Zsݨ֏r}*̓}+r7ܰn\iI../|wZ |ZN|O<;* ڡpJGE'P(8\ 'yP7$ 47Դ!޲jăUP$ JT0,9+;<&JEjhtF BigŶJ+m0ZYCi 8h87>꺞{ ^m:t}`67҅ {:MRZ8ZNSwV2ij&܉F4b! ùf]yc QTBQ<`34q(N6Ӕe'7yrAh}^B#@;cMhDvWR#aċ!E֎~G7CBk֔,vsIz=9at8bXr)K0>reM;`PȊc#BjOg6lB!COjMu{ގw0OkªR 9/`F@&غ<GǹTm8R} ,:X,p=u/G .u@t3爝k6Un6xQnAz a?+֦?Ľ:/]BZ `iv ` a*ֳWi6uistջ`\ȵ9$~ʡE\Dc x `Z JED]T-Sz劌mMLv#v`ʯ9,e8E3¬O hӑ^h T&4 \řxYmUtIg䛫".6xˇeUa\)tj IqkϾ+)5ҍ*3,Qr@~V4$ z0y$O> stream xڥX[F~WM4[rƘT6[)V00LsEqp`!}s?`ck`c61F.vl #!0lJ`m|;90#_oL| ~aaj`dc[8t8v#WI)5(Y)6L悘L4y4 ,OOZaZ4T,I8Pw H[~٢^+:=lz>,ԿLdr9&(%"} 7;wyA1j6"^9(a646_+d386rmw-05 BtL009]#YTW{e|Ro D1qLTԐ%\&?M/W@ElT㥁@0gʌdbn&Qq5 Y=%I%[ieX,IG!KZ @hYXdыZ5Zn}\hW w.tGz\&Y a-˟9hupql6uU|fo}%ߴE ]zn;(q(jKm'snM10%f.K/f?TL@N{u JG\]v5t׬.I绻Q]~U' }vgCJբ ?7&qeEء-s85τmW[oޏfCސ`i7] [_jNAy?BP.J9?fhwԆ?FQr`nDNǣ`;2)Ұ(ծF[L[uX] 4iQp8X,+{ԀIMWz§(=RrEK}-m%яy$G|v[R(AѸתzMΐJN^a:y Dy)P#*A69_#9%m~U Ú_HEj|u5:$\2ɷ6聝66=> stream xڥYr6}WQ~;ɾqnfNgL`5o!'wIM9">I(pwٳޝ]ܜV`7w(hr&WkFwٓ}{tmm_p*, Uo}uzssmq@v"DHY{SHB2Ihܝ}Q" mb8K}*٨Zbz)B5u*/,pR5&I%?ACHbʽ a$N {o+]d p&O0i'Ow|`zL ȸF$5٣ "iݍID'h"rB7ߌH̯FF=l&ؔBCyekH r*B}(X^HH4H<#qljTUn 5d;̖qIۜFaS&"uNcTjUcJd{l 5 )3}pBU(<m>ԕ6#HZь1kx(m#)pHp$⨴ɶ1%v|z]啾ꫲD X{rw4H|:Cg@m[t 0tġ%4i!1 +zcA SIu>&FgkB\|G=ȏz:ImS?lӪ˶ o7~]6`nFXt)nT~V;MGq{ A?Jsx%:s%ZteIsu%ؐ1(S7aRƮmA"$!xv[畱R66"¤h(=͛oYJ.L~Trx 9TL wYiCpbFt Q:"YOtD(3ӏKf |ܱH:s^ʚ#cwiss]ٹסJl[.A0 e| q1ҡecZ!aAZdf4f?i4@NW6`9(lq&+Vwe{% P!)xkϗ!~\n6xF*}ؤ`ϓ f+G^$ةAik\Gz ^*AI?C %>vHA|s!iUԙcau/%Kj)tֶApi>k`)ü&0]:,`1.`oH22G_V$*īa4U kyfJ6L\ˆ¢fv58M%K\A4mPR#e./>U?+ʭT&q?=G)K_`ZZ/{jM;Lȁ6 :T:<@SuY;\, BO#"ke t-?.ZW2#<; !@aIcܬh}دuTYҺ^8v%1Y׉6#coMNБ&IU D(9;-?7LĻ.e O`wܜQ~ endstream endobj 1575 0 obj << /Length 695 /Filter /FlateDecode >> stream xڭUMs0W(;s#L[ S8(q +#YNp"۷v0X .G(  `^ <ey n|-^}Xݴ{;Uj{'OPQ'c΁qǿ9]za(R/ 8-4h*bJ#l\0|l-YHo|T8~rEDshJD1c ,,ύZU (|XѬXE8Vƈz6b%v觎(:Zi0 0E0ZցKE]6f*s^R@> մ9 T]{7NxEףq{@uN<(2^jޮ}r:ά[)v 2݉Zݻ-݄]#ga坃iȂyF,6p+7aV~?(,S$Qx㈳1wSUSv,P4L8CC"by7zE\\I,Hꌀb0kpw=wn uBV2".yV66량W`,4swz.WL,ZkҞ_OBrıI' qcჽck%`Xmn @$?& !>P$ZM\{ v= STE'u!w8y69~L endstream endobj 1481 0 obj << /Type /ObjStm /N 100 /First 981 /Length 2815 /Filter /FlateDecode >> stream x[moF_ܷٗ"(ė4ݵHr^ %:Q+K> R2eىbǾ6);oiVǨߤ߬o `@PR.qO"E礨B"hFJ:l()c5ʸQG=Sΐ܄4`&G|eDDEW_H%TRֳuţPzqx@(6**64dJ`fּw iXYhaa|϶ =AeHwZ ;H k.$ *32.*K:ȔS[ S{Vbʇ%PTdoe/Y#NA8J"rq9 jLŅ:U`-҂XGQl Rr)#)G(``Er*8Y-5W/Q#tPbޱEH'^.uLe1.x2B1iTVH' »Yˮ8sPkb{H4rǏ7EutAnd072xT|ilǜx8c6'5Tl9>v6jWMfʡj޵cn.yhյhNEM>kF>Yf4jg]=`dYWy7nO֮Gx26wf:6_.[7xmCuˬ@"IV|֩ǏUl\ Vn<@aN~iGE3()^gD.\G<|7Ec󖝌4K;_jF:H`Ab1_ˮ^cE3؋a[[3'Ջ9o~[c]^'Hʑߏ(V}Dr}O`$]K~0<[M7oU naco&T+bќUw-ƫQQh(쒃ꤓ[4?33Xm!2閟 #e|N߷dlT!3]+OG+Fv_F̼F.ݯ6W PAW 4H@PhG&xO|ϖ2XTip3{ PeXOۼU)=XpEI8ݭ [SὡY7Hj |5_Xs?}4]pwdn8D s_PN T\ܿ8-ʼn˼N7j:.v}0c}ۗ^2Y=-^Qט6=ig{R@wR.158nt.Hngk*XN Vk 1Of8$?o׭0k"uDNb.d~Y?;ǬE8HXi,oٯǏeɈ uW/]ם['dv:_p-/0⬙vcne#֖N=kd-Q*ZKsL犭烩9iBL^r,}/h)r:]w6)(kNK|kmK8.&ዿp"k pzǮ ?dl. ,E."ýLR/?.y=f^Owkܿބj;o (z {%7N^I%LN& D|>8ba-' ;W_$I\\xv [dn3r+Ay.J x%K,tdsH6 Tp2I{$eg r\@8}pk; >aO }}ͥ-<Ŷ vca;vm/e7vm ڼaݥXxr XP(cmų.6T6R*~a旒[_R~% {-xm/|ߒ2&y7. cS&IFi OzS2z)mYezCoJB + vF>60B$%ARJ~sD, LKDd r^\w!eYZB/h3W#s Whg־( ?9p=ϐ$2jh㊁W.o}ǞH endstream endobj 1598 0 obj << /Length1 1461 /Length2 6971 /Length3 0 /Length 7960 /Filter /FlateDecode >> stream xڍtT>C7)%R 0 0CK4HItt HHJ|Z߷fߜgg9>LtOu8 dՕ@ 7ȋĤ E:B22C\P8L?0e#Q'P+$b ewzQ~^e 9zM}<jr*:OF p  B-|)Wca6p\9dtL-M@+eT)9:v?n/JnHQsoԪCnNUFQ E c"P5G( z\PQ@Pfz@(aqiC_![<^A셋zPj -m7 DP=lஸDI8 X%Zz,T¿ b;7  i$yza) -?n1Z0R0oՐqZ9Y}\XaeٝW>h2EhOiIZv0䦦4ZT ;ĝ]ZbLk@H6a[ei ]q^IS;HW7ZOmnvzFe,wrδ3pri~lo1 W9[+)drqX;9iC<&9H,Om+vS÷$qTÃ쥴Y!KMUæwۍ d6 }\ٹN..]N.hHpvi٤ ŻjqF2WUEAkUviiJ\,❶ ޢNC׭ 2)Ep%LֿOZbc`͕xP.ֽ:ɽa}McSHW'D@*Fw^d`HrܤV1u3=K|/Qhmٳ-?ڦU% 6}I*/5xNhs6nGlnvGqӎNJ'?R/eK woRs0\N){,ݪ[\j 2?C4i]JmD%epS#l2yB|qi.ƻ5q,턚&dŗ-2ʲw׃{D OkKUKqd-  xY*fF:6z/f~Q {P&~lyPm΢lpARwd*5lECd˴' d'Qgmn3 O>L3/c}}A{pYr;4.g71 k3´<_*b)`h`$MQ52m)]CNLC9Yv(TI٫*i_ޤ6&";̶gTXhHkܖ[rJa# q? DL/;e`MΟpIa5'bQOx?$OLgm3޴Dd5ojC̍&n{J2(#wY w⛶Tѻ1fW6ߧYek=v0.ƻ_= 5!ezpHc_EtBٶ2761<æ9-.AIdx?}W44ԾQہ3%.+dБc&XJR!Ѩ l0M)8s71krl~TQt$1 y1߮'G+s  n@8ȋX:+hI 6rh%Z\GA#]wC'/9F0 P~a>sҲR`AVejÌuҫSq /W6-jgoiH/l#J;a_o`'1 ?|X ʻ?5A$ L!dq~gx9hI}twX+{ *74>|^ \\Oq)?]V-WSH1u`)W[Rh;ټ_D\ݍ';Fu;noG~-bָ^QBCY>{ItOXz=|1*L7YN$ Ob^AK|v &iW|,yf; R'hpg&+t34=]<'"ͼ&}3~tĄf@zIGM ڧEYDf?C\!frKar";:dow4LgL ?|oR11:9*8E ~*Ї.l>L''UIbW̳i"ec@G7Z?krG<'d2҆YW6'6>KKܭ>CxֳJ{xOS)T ,؀oZ!> UȄP6VǩVJRC_#([ك] [ >k1sNr B&RźbԞsDaE:[UP9 tXN X`&v<0}I6c<7MlZcmQrkV*=D \ƂVro'T1z_1ԝ'u [_ ]_*WٸՊ8 S=;sC <2fIR0FqD Z]M+5J}uށ TIYEK'ƚ,'Gh\s |rqfN̞$6՜H/ߙrH3xb]6]TR!?/Gaf瘣] GZ7;b+  Yr|/2At}=%Y-1# ѨfJ<)jhw+Q0Of"&l.:m(/XQs<#mL;ɳC D=sU7o7J܀\lv Eȓo\)>(1yQ]JE{ **Zᯞ먟i4S`tS]H/"Jvbt oX$z?ФokYSgfmi3@ڧ$MȼK22ز{Ae2EBC5z Z> iQFK]RDُ6"$Ӓ= 91z XY. : =Qz=>Z}t')gbtEjɸgЙ#G`aG'3 /^I93c:mtJǍ2t {왽C (_V_|µǐ&>>^ҡ]zԆ3aXJu| #p\9ǎ!|$K5ig_q_yc3ntt/Lg|/ ;% Qd'풛^)ug~fط+3"FV?p;EZRb{P =[@ƘViq>={\ J!d}?b2lU>q]婖6JB+O& .l8>ŐR7#^: *^[y"jx}qR}rV:B&V{v? {'I(ajZ5_kKы:58}DĿ%~Lx<9QT޻3R**YԬUhl!Y=}𘭭A2/P7N>AG460{*U!4[K?&ѓq[j5Ŀ*A}ns`pD{'0Z4Foj( c\gGwM .RMLp@ft?#8G9Xd@W s[ R$ƔIWQkq+)߻T_د`-<N+P6@Gfti?i?s4\>+ hҋhTyQ4}/rߦd^s}.K)>-@ ;Fq3nX[ 6b\:zQP: VtJ&iU[6.6iyfXbo嶟EOU4ʯ5Vwug,;@lqB.^bSy*4p} 3<ǏˤyRj+SW15_9_;BJ>n4=z,{u,1n6ډ#/|x꺷hDz^;b愗 E=w39" pr}۩xwS`]Ջ;r4j-9䯱/ζnElTcM,F%BE 7=JYnm+Sh*Mw;b?]T5C*M=CM{_DrCQV^Jb2t]opa`,CH:[NLjX?5M)/Lυe~lll`o#}vnh"SVK dP{b4W_Qq#KeyQ#xQJt*9ͩTDqػ;aQ$"莧ΧVtY. t" #@o'T+,-, dµѡħiwB?IL?H._dÇ^z^j*ȻtQT#ٵ9t2Jjj͗at\){]GOy2Yũ~-{.^R@LlGBݢFmb\=> DUTS2)B·ar^K&fHo'k^dw endstream endobj 1600 0 obj << /Length1 1427 /Length2 6364 /Length3 0 /Length 7333 /Filter /FlateDecode >> stream xڍtT6E""H H I'ޥ $CE"U!4A(U@IG:HrϽZ߷֛yf̞g67 F"0 @M"@7 ɸ-(4  0uG":pHI1 P_D$JE:HMƭG1c9@B*PC0P܉8 bOxE(7E~!/ 0( gwe"d3w7ntBPPÜ4EpLPoo@" qvFzxB0 z"?pIH?Cp_C`cW('-(3 5.jH(&: u]C }60"\=E0/o "7$@89 o eqz"="0W(, 0(ohp#.0g C;:㚏l8Wv8y pWTKGSB[wTU~@a @XL4n0F؟4WwM ? 8B|-PRS(;!7!0N#qco%C]`m@pp}04u1a7ns0|V¸ 7ZpO'_&(nrys$ Ok2n' fKQs "Qd?;*! =N?{ @" PW̿Qw7ePQ86pp9kBd#Hg ǯUn /^|/8j>~ yƃYԡʓS |类Fץ:sxdҿTO6GKʛvVRa3s {?pg{y\7ʥ9m{ӎY2^.%?'ۆqf$PQRrɮH,x#A ΜÓ31tFV~@T‚c~ _P=!*^3CԴVt-f?DHRQTC4+wT߃wUn8hveBv%`}=9GtקGQO뎻j>-4[RjWbq hNMʥ>%bz,ڴ7&|ȜA"쪞2;2D,[AKw Q}/å .>I2Ϙcq#Ng:S5k7rg,Orh쪱ؽ`Vijv{+`utgsW D[-@^2>ct!m s_ ٍ+6i{7E3z#)Yw2Okom+gh"o6Ysͪ+Ř#[>zbO3Q|y,"{qh?CMs !VHWHyi;+SwMh5r8"*x.TPU`xN5 * C+>%'wV! , "IT_خ9˘rߙɎ-] %~:]Qi_:uܡ;}?# 0m̗c- J yw(]oКjxDUZCFlܶ^ۡuu>6Guߔ}\vcβ述t'J2>=n^xu=g}D8lZWdJ['@HUͬF26VI뱺QbAeRF\\k%) s6MCОf&Q1nNG:LiB%bm3iCR^RP_~-Uj}LWR_ھ@6,7peتզN|Q.c_s([\T\tl 8<;n+Eu櫘: (s8WvL齚&f]'Ku!):z41`SF0!$M|y_gi~cɛ}ޠ}npZ5hH D`yHῨz)Z]axd(sD3ߊJ[pls>mCQrY%BLJ Ǟs(AY&ZX']2휄1 lͼ6/h'tb2EV_y`keCб8'< I(b9rZM(d&9$9(2H3kA|{^x&]H.Op vӯZXȏ4 ^.31̚ 5oFEm{{N6q{p>[Ys@i4G*v8u1u}@켗EA@2f.a:zfy+r#,zYLvv(؂\l8}MiY.m=Oʘͯ?~i"ذzOAtiݨ' 'x.Jhx/DR8OS.0LpD\F &ubnQ#h P*~!O/gn~R.f^T"b#g:&X)223wWNsq_,c$(ZMfy0.UZ(5x MqJ[d[pkat_Q~G($ Y_>G |~@5Dm }Z}: pxPgP=A՟iw+>W>{Q EPq!jJ@mB{Cq |c/\O.q6+eΓv,!饬Bf"cZ\cW7qJ/i6O…Mjo82ݸu\(e@MX<.DtvNʁGI8ID,Cf[2 <#F\m{yb. ozyR]' ՔEh߄k5?M{<,x|όN ,$E0 \O ba~Jhk Li1/f*Ēgj"0!/I՟η;XEV2^4ԕƷ<N@bRK,N0޶97!|m!Lܫl?owk 5%nQ_1sZ /=oH5d$])gƣT Mc&;xH^ӥu7:Eo*lYEqo<˽e6y[ +_A]55J xʦZ< D [W><L x>T߿aAnwP6˙#o(Ϧ~ٱYJU몏:nei~|vX]SkV`O:4}Cv%IWCvqѕ{!uj}rWM"UsW LS0eUCơM7; lӍLŬV=h?!usK4˿#d'e'EMyo ǁYy-Dra{zໟ^t)ȋ] n\޶|Kt5m ~ xt(`?'8MvOa~μۺǪBܭ]hRg $ӍZh)8~&" I0ʜ![daw8?M[Gp*@vx)d%fג$Q'7}t}sY|s>i iZ,Riε@(Q1̹~{d'e_~9!H3JcUNo_9Z9t&M7MXmߝ`WYչ&X]= T%.)JSf3knM2=}p$b7"$B+Ѽȟ-juNYrrr$ B|MJ<Ū]~KwEܮ_s:AO(_b;>ut2vy/3\ #f ?k$P>83/8/qL5$7rV)^ h$;d2]BM he^:(Ap^p)Ml\+vأUvȎ)XmG#6o\jRt2lг;oL0PƼ +k/`ie'ݫb&))YqDԌy˕J΂sSQoY#moV흊,I'*%ǫt) V(Sym1adwR{=aLӖKFq=e*XM6S7}bc}ZF l֋]•Rh)9# '+ue3.BO. B\X lF,ctK GGn+v:bnYW\2}MD[uѶwFHς; ]&y"'b1V)-iϩlVMwʡG֒xv /^SFB6㉢( eFKePCy""<B<5 /9ijxnJw窦+pat fqRRL-Qk"=]LsXJ9z׉> ,4lLڥXXeVMs]#p/O|oC*/cBJzM `FV ڌX2z׎g/*7#V62MW+Lț%ʝ%>5?/~ɣXܖ= 7gW^}9vS|b2: XghKL__;u7%0h $]ؿaV^ƃѦh:V12BTSP-i%kz66>D.;Tq ZmhYOv`~kI޼;%m2|#$~!2iC[uB\olHeso@ m]4Y0(ٍxFhbyw[ۡfCMw9f!zEC/(#~/ )0k2^'Y]X\jU6܋'!̝`6M`)Q$K0iMY[šoЃou,-Al endstream endobj 1602 0 obj << /Length1 1383 /Length2 5976 /Length3 0 /Length 6926 /Filter /FlateDecode >> stream xڍxTSۺ5"wk{kI U&MHQt қ"Ͻ㽑1v\FBP#L2U}Sk \\fp 扆2P1X꣐/$IȀ$e@((7)P{á}a Cs<<.lo>HZZRw8@ }0掭#(G ^9 CFDGFy:+ | AFaF&9LQN' 5  BBalu @gs aп @P` p#`C =a/FFB4 `G,w`1|h'FfH*ĠA'pݐ(d+'8k 9~ 5 ā > qUی!(pŽ ;_h7 +bC0G3IX35= ~ _wXAQH߿῏XDCWCP[r|B!i I$%Ac?bN(_bp@e27Łe_ix!?2 U> C-aIW{WƪAe0_v8Z 1Xp$z`aEq>EXjvg]u$%6Qq G=kJª Mf03PĿxO!Gv'Vji-a0_x~p}~^#1Bd-}G9y_Z0h{,vTS#QIHÞ72HӌV?U-OO`,v^s\>U2y@̫@5ჷM^(#o" -)1.9Uj8C5b|:6A}O)TiٙBSp1qsdmZ~+AB鷅VFzWk7[QZ zIF]v/( K[&iG%YS'߹24~ ֣5q=gsRR=$ U=/vEx;Mro!Y KM6m+#)K#t+ 'صoƽz} {̔lV/^J+0oKn? \8,QK<ůb&,ĤhY*uWֳ/X, Um @?^n]vK6-N~`DZie=oM&׽MTs\ɦs;ܨ[FvY>%PA-7^șX$OCFN#h$Gk E>yN)h>֢eXJ%dēlx1;yZżT_~Oq%Ճ&Bқl^~Z$OU*2H;K1ۨrj0DE4V%6'ވ$)H1F}|5nGDn0 +kU%}xw&U|ZԉGoi~s%[TjI>O85;n?*f)ePꏖ7peIdzY`'tv<:=u2n;nȖR ތn厈x-jǗn&=]W{KQD{8jͧ;m~OSoQU\@V-zXͲ*d%gwM;ÑV.FMz=w#[cԮ"Thekzr<UE]fqEy=uY7uU`c/d}h+O,q*q[b`;I%9{8s?B*{,]TT1[R}] П~f=WuVbL>N>{Ֆ}M hե`^̃(Vqcڏ P5Ծm7 FA3/h ≅5 !Q'Gc(cflf`LrWbq9X|`$.L]dF!Oa3GuP Ju?w'JWiwT,NpJ%?UTn? ^cO..vVyOeT+_Z~4q0-(i3蹑ûUǂ3}'kYz$x𑤽{>5Ǽ2?sj9{@qZ7ijmQIsiz Pq#yƕ,JaNZ-&L흽ZCSKE KU| bON{Bcܷ  璙Ʉ%T0Dȹ$#{%t='^9Xb5Ywt˷ȩrͪbR5z"bu5"^=y휪$nos‰qayط.~b^ȗxd? `?|$$Mk,[_ S{=0;Yx:mla׍r#0,6cuь:? ÖvH1%sZE&z-4h?Gܴ7D-2ʛM'bʟm%= 'fmhb]qhPn?Rosj XWOU lu'#u~kf2C`{Í|l\I{'yyaHx(0vQGhM*E.!!(^g%[n{q o;lvbU7V s'kXDy_l,] ?8>͹f72͉U-M?(r{$R0z]"fOigW =ZC9?Gr;obuwDB{8#g<^iž{ڟM?Oc h6Ll50)n }Gt+ڸGyT69KwΛJ'=nu'H?}]%SB&x~O~d^R]gm'eah۬:zr:%&_&$jv?ktp0j\geR lB Ȩ|7sym#;%Oƅ/"°J2nQ 82_bqQ"tSnŸá$qjyxީDaO]'s?% O)li)I[h RiKY7͌]O; ^vie?`NqbH3[lo&~E?dkR endstream endobj 1604 0 obj << /Length1 2073 /Length2 7364 /Length3 0 /Length 8503 /Filter /FlateDecode >> stream xڍu\[) %n`!f`b钖.RJ iiϹ~? ߵ^׵׎ . !ܼb9 08 q⳰# `$S#!b={wzO  @n`;t5`ylqw J?m0'bϣ GB!vy GحXrP=1@f urr@  WTrwr;kO䁝NLU$ j- sxAݔ^m(DCl '( w0 +_czPkG $!k`l9ɩirW"n`G!>@m BG\ܑp- MBk_GD<0/G隀k\?GׄV׸&:ׄVDׄVrMhukB^G^ ^ ^!Qt&ЙV-hF\Z!֎y'}ge [Ý'#"cewraȋv.΀KTϸ;tWmB=n3 wNh׮ѝGC`721 Dr.;@t# W]|@tµ  }e{;[ynXB##9Vx-ĕQo:%pZZX?^mſ^G~)W ?xfqۭ%1sK9A7Rԫ]5-@6 +hzͩ Z)}7f,|yVWeu (s/>-Q?>~y߽ qڂEŷ6O[pg?ʧc2zh<#㣉yĩ^\k֐=]aB_;1^=-ۓxrBp W. 2Sz.HЖ3paD4M93G*׸nJnnM|}MerŔs1O{#( {2ywϥ nkbH,M-ӛ_Ѝiˋ3wTL*ӊbD؊ӅW ٬Ӳ,[_y (/ 0lIZ[/[QZ毰6ybM];?Xg<'mOFdz.Rc`ryڪ9%kn ZZ$/݂Y ͽl.>6e>!?'|}N:X`AyHT KW߲0X)w#Go n/]?C-S+ȿX,`#f#tY`$]>"JLj[A«bjݵ:n? ZbG3/2K\yik#td.kVfq«jARIiÿfs?f1jZ!'ԶY\T,iX/kBL=+73OL,),")- Zv 1%vbٷ1IBR]!N`0uwۦB?~뫢cqΤd%ų6g*eEwR>O i!,[CE)B:5$Ȱ{rO0xQٱȬĝ<_*XHaģ^5 Eމ~\K`Oe:6]ҋt5:㭟p7<6 $MӭdDOYbF`?p;#ݒ),6T[ 0p,'v|F\e`5A V ٣XT? σB9B${)Iz56X]5/s-V\TTPW;_L5`F}+QwQMAOc,U: BIzw'O'JT3NK6]m. l>s wZNxXt.98(DnhKv&^[֗dq.90y7Md|)^زi]nW"yRGv0Lbg*{t5]"&fLp%$l=߆5Fw4jD' M5_wq:2lNvzEt{D% 6jWJeÊ A|gQ~EnLbT{ rv_v=J",ڪ5ǡYv麗7!_sJiipԬ \}>*-,(yL5ĸ\|U!|}73W{q ˯H|w7~*]O}y=-ǬMS7{y 0O)+HrێHUe7}$^cҨOBJF1e!f#fyzfX@*4=4F_\k3S|)ˠRۡGsq:9̇dbfG.~8q?2ƎHS>-p3M^wNJ´ T`V0=sFcg$j•!z#AC?j۷ 2$ 16FmSo{hnK)^>3V>K>#(v0^YЗयEg@H'ߵ=K?lGv͇L s>攇)qKޑAya,#h B6k矶RC . {|C.NcJv;Y[ҐkRs(QIW7\L.I/eº:oy?]#ݠy#뜰{.婒[f;:tye J[H(_-^EQiG=:a<4l2ި!=$kM'qGtD??e̹NuGkyiѴnJX<"e7:&'m9>wIqT`!mca¬bGylؚ}2~zu>M:VቜÏ?L : 7UI&*X'we>IL=!}hgr`<|(/u"jF4 (&ʃs]̾ 8%6p9L.yk|c61[6 R6Ip3z _+Rȳq&=v6 +9jG=96ځ|Wٓ)b} yow/qdGh=+O"|Iϸ!Ϩ\>zZ!|ٟ d^}rqxw7SR]׀VIS EK 8ɏ{4;NE6àQW?Mi8̭gۈ%Sp>F+tQ"JZ& ½y谎 fqd>y;+:?c& |3ˍoht?&AJx]D? .#zBg#v8+ɝޖN>—"M)a$QP חbΆBi)0bU|#ݟ/fЃ4czTdзMWG]P!j4ź=.3 N+rE#SRap+=#NTǍu(<\zRg&hLRZ<BY5бY@֎%!Y_xK-QmehIs$bw4O&R7~?/QzFJ(|L Z&.4(74 |ScKPvぇڰ(-+[_uƠ$]/wś`zW$(6znf8Xgn@T74 ғbq8.,[iG,(mpXwL;z*3Kb fXi.=[IX>$d:w i~<7JD;kjLǣsZ~xPbD *1xl#e,ΡJ= IW p#ӾNp=|V Żx礍X{\OG-I˱ހX.2Dۓ{poL)O$&XZD泊澪gnGq&%W~ 1_Tj-QNVbZE0I9ZLABSI_Sg }qi1O]cTqo Tf橡= F)v'y89[?%*IzRDZ֐vUn;!>F9nt`3mn(dHLϼۤlښfrOqX ןi }3~z;&&=8{+OBXgUFj20%=J;})dEE|5Zk~TW*rn5Lm,p5Nu!C/f*9p 2&) 40٧Y=.OFPBHP`ZuOzͽO9wl`̈s_0/ =~_2|LདྷKb_6vg$^҉I{Əp4_>tԍO [H!I}O4&6hMkǤtc=}M;9 6U6V ;? jotwF1./-s,L{5*i&QMoעG! ~u>nO*I Dmd丏ĉI1bT;R?-pˊh7UFLZrGOJ /<ǃΜ?7;)d[;buӠ(1Gi=s`g|n[-hko–%%+@@x%+U/gK5Mԭimu.yi,bՈ{SZ1l#Bvxg~/3 vB3B\lbN*ݼ;{)Dl'ano[&ؑD\E5lAyE)q>a뢰m>-D2Zu%C>FѥBF3n@1^Ɲ\k]d1LZ+=rGjƑ, <:S!wGtX4tcӠo>ԲÏLڭ/7_K0N# ?c|($Q%WkiRJ$6Mrؼ1㋴!¼Ce5tuQiO0g,gbwɨrǏ'P|F]sc%"M U$I{#][9 R ,DQlʘvJ">3eږ/|) =#&Kx2p)3ID`0kgMxTHEc,s,r Kaއ{B/{$f-VLn_]Qœgꛝ! o.mv7hV8p]JHV3Rg"y썅_z5"$& <`?מYQV0d,RĐ FD&oQnݜD4}f4FfF߾cSzaޥY%n6&BEx7cs KJDXށR,.HtvGi Oj F]O- ٖN%dGG=|ūyo4 l?C1 endstream endobj 1606 0 obj << /Length1 2035 /Length2 8718 /Length3 0 /Length 9839 /Filter /FlateDecode >> stream xmvu\>HH7 t-) tHK-,ݭ4"H7Hwtttww ½>sfyf9sBYY$eudfgaԌ 6Pf%c `c`accCyk2r@%Au '`pq5a>0;;l0hyef6vMlwdc;mjLAfX'DW4j+=e `19` v*M,ˬ5CPog`l\n6<^z[8m쭍 %5o>K9&Mrؘn0 `a\ WX ,PGX `fc<V##}D|VG`X;UqXe'U="#)>"?Ƨ` ƠV#k>"? [3P#^vYL1ckvكR? 26b672A@fOc'V _abLl fkǚaXNX6Sl0e+?Hy9Azckv~ﲍScFغߙznX cn  ”Z>zayTU~\a75t3" 6gXmEr3(ԑEi6!F (DtlufO(sn멳N2XlV'nF[x;v'<=pw!ؗ9ّ`n O!GiA*J1/yFC.F] ~>ؒM5?UQݻ`H SWUjrl3k 蜝,ajy^*`TE6Ҁ鄦(!=w;Ot3F H&}$DlSOSx'Ru'Do>~L=Dz<7Ӑ 9WГRn{ќZ bl[:91rs< v)WjfyE]ǝcr#K=S](qtСFs,Wok!C"*H|qLC}v|N-ش[m^\<2;&7631'0 2LIœl #m|rKrEf%RepzRޠ>EC޶f0,y TՇue*Yk4j _UCMCYGiE'"lVucg7VhD| Eŋp__ʉ*$/|TKj({jd.+32o=,/WN=Be-~(J Jj]p[nѰJ R+]~kU-߇جL#Šg[LDOt(ɽr^XX`W :bFAЭc6YAUzA%[ Y,f)~~z'tW3!Dy^mb+mbnePYT~߭Gƣ)9x[\\鑑1H;ZI8|>x?'~֙ejNnxҵd73hq(z\,&iQ|>pTG?K$PFM|f0PbZnT<$;H rœsC;j?X@$qP1w}J|WJAR4fO6B~ 2N^f4Yedyx8t!ܨ>8amvQjfNW2bkhyEN 1Svfsv/QYǮ{WWq^:!_Xqn&*9`vdOcSۍxzMEO~{1r˄MX*(UD(futԫGtP fU/\#Z_[cZĨ[#iG#Զ7Qu[͑A'j6դ; R 377pք_x}gY?Zw>S6WYU!cgjҭS _6ҦSGM-zȃZ1?A\:qN,߃,r#HQ"<2$MϹ>=٠f LXKy"IIrENp|pe%+TbSFkXjl}>-h2KHZuYgnk]-?~pG(ZoS-4aMT+6P&s`q|rn#CIפ]'׭\qE}8Qt(:uOsOsAH?pRM%MY1[3{eտ:!m\lʍDzjUa^)X\Gfvt"}}b*VE {>|ӗpx=14e{E>3x=8mk ǔ9_:N?XK4M4HZ p! 2hAGB80hI'IZ;3aTChrnv=W^Rky'#|+"<04XI*0_Hx~JFz*9C-! t`-d?<:bf\L}͵Z듓q]Q"Nҝ&V)sddIt+Iw#_Ԑrvdzn]^C1?|N%e#vlQF җ@J/nÄGnGgYcHN oLҬezQ-z:GXNC>{ⴽMU@&T p& 0mh'qKJ[T's?`<%gXX[i7t& ƕ|f~*)AϧD%@0ECujaXRTPM3vZ3pF)BhxJ` DšMӮ"H<=G=Fh; R4De2-+׊^6)@!zA,KÈz%:6u(R6G5娕>#"kc)/Vv+5_)(@Y b5=Ȕ.L.1@E ePfU$[e.k-;!\ʭZjix}y6TigHE}#M ,B|_{c9ӅΞ[MB' Oz% `й_ѬCj.yp8:(DfmjqH4n2=>v^|*4rSu|Spn~O햯Q-O[^X3\3oXA o{jrb1䵮߼Xt Z p0Gw-7q1x7ZvذlmB๷#j{k?͔CY"Edž\w %!d.A+{|)AgonxNEkr>aeD@]/1yn HYc"CK\(%79M}Q:UT>ԊO-4в2j$+F z\nэ$~;0Mdh#j,Í C"\?[ >7+:1uX$)7鳄\Y_sq{%*,LS"6r#gLW&4Nq%H7?lϏi6?#8!9aBВ{6QҔ)I-.2+,!!ůrՋ09Fl^$,RV׀V츂6i 3\WIx*YKebBK1#<wɌGwG(`;G{uɰ.M .5Kw@? Ϛ$ǫ8v$Na}j٩p /QBnpE'ŪZ;o!锗L7k7_,g/> 9AVQ1)}^#kj+ܳMmXRnJ8s3S{ѣghUKL<~qJ:vfѐ/#@UzTf>GO')={O|A$Y 覌gO 4Dl QOXiTb0 ,@1-%(ssEk.j]d(S!ji )vMHT GhWCPH|q%@}8[6jtp Kjp^=@8xeHF Zn^C,Z[cZ9ᤥvxմozN{)"}NHepϼL @YНye!i 7T!Drvy7òλ`  <*`C1K覥b[MZ8ӓj#.E}Qfm]OcRUQr\ /yXfb#')Sr䘄+{ڨr=rNw )(e3[fk\c"+T/lnv;+_i,|`?%菥8sTt&eQb0zw9{+JchR ;QYײ-vD$z\?3 n0Ʀ`- ܇P7pESXVtxrP@m<:W ƷEz+V }t#ˆ 1>>ӂHCC|r@/ӵ(?REmx=4 KFךvR ~Lǥx&tOrmD!-1:}KS3ơ8AK|b3jgm@d^+}QZt|$w?iS@Uag/+D]^LK;t_µ?Ȁy {-6͑!FE+NOCs-XsrEL5)6v]ҎrlZ܄ə̤V?c/,NtҞ b5/Xq?>[DL,fRhl2+ybxm[Y~5-::LO4OS|Kh1+%L,k7QƒNuRBI©ϝg>^lߋ V}fwcgn `m[2D瀎>CBP/6٩4þ %?ؚєQ 8W#l-G>Ney{ȟQ`Ƕ: Z>$ G4U7i3cnؼgsċ;T8_.ϔzp 5T=~#傂VibQ^f7ȬoK.ObΗ\mNP:Rޜ fʊOSNW}X'' M^oޏ;Jr t- :C0 ,_}턳>*my9Mm21McI',a252BQ)ķ' yL)e#/ 1c.qXkg6x}@Яnhiz[LtC3|*+Z%?& {פ} |gbLt۫XM]'kZE#D4*x /UX q_SK;77h/$!_g[j]7ubRF]=)Ş217k8kP![O!_Kn~؞<(`2OU!T j]/ޣ,ʙ!Zv~8 (qptǧ2_/ Z},Q脫|IaC~yc=Cƀp ɢJv^$ɔ VF`M}ޣ5wNu\3IܴCJ~R#sU} l% 3IsС rizcO/"=p[`zu]!mNk.ѳĹ\HYn-oweNf4Ԅw;?oX~MB5ݔ@a4?Ff$~"wʧ`YqdaKo-Z뜿e9 endstream endobj 1608 0 obj << /Length1 2973 /Length2 23780 /Length3 0 /Length 25434 /Filter /FlateDecode >> stream xڴUX5nS ݭpw]  W߽߹=cXs%\@AA^(ngL U6ubfWX:XEv@n9@ `bB |AJ@ladP윜 @j-"bghaf'+=HRVvnNVC[,@ $P֦;S P, $L boo\DUT?DT@5:'Ue??U ft9OwY1!M1f?k0\N7 35_ T܌nnn f.N vf S1p9Z@@k_q5w?MXmVڀJ rɝK T?168Jcn hkhk 2t6tvq%}M(&8:!he:^>n1C['6uprv;"`ja O,l I)ˀϖ^T[gw翬p2}0s@C*fk"bgcb|:99z0?smekfM-lMLTŞQ() › `@wcs??b?bP|N@ S pvtxSo00v :h ]?6*5hZ{LrvΠ>\.r6@-XX{,ԁR9ZIh`llwaK:f_j_"?4gf?:H[lAe  `TUf/31[c; [3 GhX^̠65)F[;g `jBDF7`yCF7`/`0!f7`xCF7`zC .oE Ⱦ!7"_ @\qQ~C .*oE !7ʮ_!O7br5M_ Ph"vP0c;k@GGbc󖐙 z@PJdiAfd?.pU XZ`]͟?\2fu?M@Ky#9 ? %[j`A"\mA{zPM Y@ ]L@Ztl'wA=o2[.ȷ [ _lvKgx 3ߌWG J1ZƑT'ſg dqp[,?g--;nrcg78bPο^5NvlhŮ nsPP@PV@P=8"yfs[ϻ+ _X nazDݵ@)3HoJ@=h igfce6.6 hhgdW` _C*j%}G4w(PAQh'#o[AeњX9}e(WELhyq)n/E˅O_OCt4[!X eV:}!{7vZp;N*712fxQـ0>u~4[G0=aںCG5)y(T2ڣwy/D ={[fk)Cm앪z$2dNO{=2bZ#Ul CU7]hZ\bzkEF֙݋$L:+SSfQ]kDuáKVZaI=Ktw(c@KFD'E]1ДY2/PP 3 ǹN-j'8$ykKL2i*!YX-{OeI3JVYͰut +­6a&Q|bQiZSKT6Ż $R4APV@22˅6#N0]m˞+Ь.h< EY>Ƶ?JYн}TNph-w*#>ܗ۪)\lgR6) 9*]s q: yust8Nn}U-EjdP:f_HX^\;KD#0Z!TK2PH.U"N$GaGq]G @fچ3ml^޳-w&` ד=۹9xA3wQ`?1gf۔0&jؖU4f_3~ߛu>~BqQ"[7j5ܥT9S:[;߳Q\5wѦ3V9=J1R iȳg.5#3y (s=uS<4{@qXBH$[ϑlM<חn Jo'hpjEbMM]"[\>݅7cikױU0S/W S-٣!=xSP4Y?7ɬL@``*uFB 8[4ԺF0]uߍ Hh4$]S_ht^u'+|/;[UTgeY@\uj_ȉiT˘t4ߩ._-41Bǒ7YUkoP܄SG"xk&:~jFmEE=gv8LB"#7',]I؎sX=,I}%W2oRoD!Z,9s^%;u6#]i)Tot*A"nWVkM' ߏOK>55T ] ;uyZQFՠ6n k|3+.NI17Y0M^V>sGʏdCN$".4O`.TkAEg QOִ_l^.njTȲ9-i[(F$n|S[-kՕ'ѩK-?Kb.G'.)"˜/hory΅6)J5\}vj7,ip5iV,hv4k<*TDa Twnܯ|A5@%Kj튊aM!W,YE0M$\-9? $ g:}3҂ ?MG^$yZK ke,J}=9?R eh+z Vq攓$m[JXv#ڄ͔kRD7ʜ; (Rcԥ82G:qؖw]<2 _zөcUe?+qNstGG_tTݢ~hÏ﯁/9GKuYL pV{SIv܍ ea{%R3E-9S9n6B]pί(4B)!6/*cI4Njȸu[][ul0y6n A*o 2+< \ag90&Nb!Z˶myF!*Ow~-YWv-<;Tu܏R r#/oDђ!kd5? $% b;ٸ@Z?TB4˘xZڟl#ݱz[[ENqr,!}jْ ȏtt㟘Y KHHL_gk3DWuդٜe }iݾ<ߴ)<(bQb EN Poq @<.e%WN`hSC5Mv4=*X8 Ȏ;DO(3;ύ8)ct{.B$mMW/d5ya0 aƽP4;E,2QD\I=zG#(/)_._i@̢|+4\MwOs;IC=G"jCӏ6t?mL, GfHөYŷYL?EQi Xi%emܯ1H{9w%֜w-}JP*]&'aI7Rr8PpTnڳ<&i]ƽ >4eIyS^T,I#mc68Ir{tyՂ%̲6#NN[!՘Go7%vjsPZ[pYJK}yhq*ܨ{ɢۻ{?¬'޿ ïDtTfg=ӑ[_f|PVV/kt32Of5Z uѪT7Wt .Tp<;% |r2< £etTMvO?T<30 krʨ0BV>P1lgZ.>j[d8j;s 1]/9ъ}LjOBpWBn{.11\u}E2H v=bT)Y} ݬ^9`-UIoq)q;%TAI֪ȦB/"|Z[KnAd`mA/h'F ];ǁ4}*5swCK҂Ӧ2`cn_-ٕ0[np885耺JZM^_R(]nw) ?^? }`E[ JMrn6xȞԞ~/ߵ-DkQb:W #clѤÌR3e\fFDvYVrN&-RP3-c֩Ԣ:i|#/ϘXdB.(tYSξvg^8%l_ ᯁUBDjQI׼8sAs#a#|-py4m㱥N9ZtЃ;FYT S$DZ wԖFX)WT DulS(,3תWTzeO~  ʩ<ǞPSsv9o *S/ MP'm4|eeT#^EZ Y4X'|؈MЬ]A@bYBMa \;[cX}S#/텶Z("1xn%2GS#({Jɓkn_ M[Cp}A<]Vyۯu $R[mܕ[\}o#I^AcumMD"kKv.G3_Skwu}IMMP9ג[)o.l\Gq*4OB>Fp- YP:8om i-YB[bI}awmszl6*av}͙APtf{&aN})3q|-{$津%.[4]ey2]V+!ZRh>#8J`&5@Q/ZcfU PNK u݅D :uݩNhƸ^nY] 1iK7Y7KАtib왼ٓƣ?93P/Vsȗ"2_>2-bA6@uD/äUHaL¼0HHȹh-F|ڿ2 }@>$4\ד-cji2WL;5|$25 s-2.|C?W|c'D.#*,V)R)-$?v(P`#;wiZEX~gz;ag)쿲yQ0F&jȼ0 &vt!Z iȜz/s_׹X`X|~R4$Լ~ňT+ߞ S VmbXr , EWfcw%g8Q80e= )9 sMq'|۠`Ԃ@ %aRt˚¢+fDӻMmK>X(LaĦw`QSH x[> JE^|d}'Ʒ}#ϭVeeʓ\Q"ȠPꯄ"695;ޒO:rUJr?d'}4aH@Ň%.x/՛w2ٵ|LkB>ĕ絴-rX a0z<:cn/y}{~>8 y-r\Kü8_*ϓ72LJ$,W!S&+e]F1)ǿD],]%| /oH )M-́?sw=bx-`޿omVU}{؂(5L.;a=M+_}YR~|R0ayֵ?z 6n7g8e &ү֢USSFª|uYߒ&,,[BRs9x.3IHHX"wV>Xe:rk:r}:Va}D}4L H잶ý>ܹxTk>D>ab9H%TͿ'3R|Qi="!¡5 gK@L)؁ΠN\{1Ia&mOŇw~>R <3{Y'}P 3 Jm51b%<<>F`,ȣ|8\^U^WknܘEmEQYZ$R^(xqv!Fs1٢E;/l\$%i:/G+.o\1S)jB,,b8%s>?Cskҗw>^pG7!ta}hV,qz6%K#)ra4=FBWwJbyv p,o<0/ kf_%s%?'oOtfUvH8'W977Ϲ+7E+S<`FU֑WPQKR! of"r ۦp_tZ-Vxc?VP5Ƣ*5~ݍMfI+WF0rU1P t2'20T/Totf\7U.W^.bHR|סN>7_c-~u)OJcu .qo+s 9`'#,:#JZ[_~MF$y}u;$97)gA-4`n%>Ef|\np FnL; kPl%&LdT)J|HcszfUf&4e]i$"gvz%VھvCVgӴJ|wa$X!i։jg4Nػ R?-"gL(2dݜo; U˥Θl@9՘.c:>妪r-7#* s4ꡦ2O#^U]q &zGJB8/,tX4hL':pX*?.\WvRM J$J1ZNqf˗e;μ\9r4qn 0s.mߤû2asX,VN| ׏|$V)FR+,UPmL^tWvͿk%{kXQs<QצpVR ӴR-OY^+p`jJ+: E @ˠɰC^zj5_HR}rQY|hPJΧ&ЀI7 tOS;sH u@w G]4~j ReĪ$!̳C>Qn|05y ^*]sG83LmTLYJR2)QK#Ĩf;ݶ2Q@@COzWgޤ[ztUeD6*z$lfBpi涠,|_-F-W3=[GDCtgw~J®Ļ{;2z$wxbPD<4MYE{3f)ᮦ C%"p918pM{'9짵sCQ w(NKevʩ06hIrh aBn1 7*/]A<>(!;]hi1Ri7}q%L3)ݸ 'jLrG" +i,jsjݥ m<ǯj.U/IJT' Ns>~N$)O_=i`#? 0_Q!sw!Evzњ(Ahf&pw`{$.[+FT^*Ka=|̢ 2 M cgew T7Va/ס { 48c`Jm76e]MÔ$ =ֳ @M6T;m"rN^ Q1L.0t8)|6Jw:\W)syE[ePʳ=h@h/Jt׍v֒ѨT}Ǟ p.Neh*ݲm/a0e<8Puѳ`Ti>AUVՄ-h,üfCۨ?dE^W&x1:.ڜօo9ckv.LBɓf&3RC)K;<-I`ijC͈/S3> 뷘@/) 8(@ajijefp ^)J{Ei؈x 0GʧbskN\/ejw/Ri{mxK IEddq,;n4[Y5(SRI7C7@M.m4|Va9+=<㼈(ț,wZR&ܮ#ʀ`c&%Ju{Jv_jlYɣ`ZF$;Uk0܄7;4 y4kv6@\/{Aww0¨5OEXnZ9ryʰo~~9*3dtd}>o-; %4~ %3ͼQ DPAFP&q¡rn~ : `0͎nc0ON.}!?9{U}.o8Sr۩i{Dhc5kHxr*4n9Ɗ|d~"5)Ì0lugjP3[qN1P>$jeph%@]_,Le؏+o.N}!h$o.w›z'+|ُ|1byÑ9y_4<o5mOI[fCӭ䗵]ٍ7bDuɬ3ը ! ;;ɳDmKt ڝ Vh6#b!wCᨫZm?0cIC#KD@b4Z=O߫L,}(DVNG\=斐;Z[u\4ڔ2*In/Bafe?`nQCc7՗((]4@<=]+zY:E.Y&nKj|xJj]K.zLR`'890/LZ4h햨DB$/aK >v3pw¸Ҋwa(qMsewW^p_jH.T\S1{ i'Rʋ$)~cm(ntA5-\G~UoydJ ^ (Rh/5ЧCvr'+h9C:td^U."-եN`@N9oTxrR>=F?׫`KCDt#[3r6_܃ P0=lԞeC(-45H#ZΜH4ÙxOקCMd ܩM$o#ZLN u)@ZҬ*rJzI..ʕQ+ TI@)zC-44y&D;h韚Xıf6 SO:΄#c@pzoX徂Y*{9եk<;J3&s$קb{.ASAp1@E6aϝeh͖HB=V oiGyet`Y/qP\ҬuH9H{AMXQZòd&џ,հ8y,Irтcgj‰vrY}1ACHY4 #H EElI&!f+;XZx;1@4nauα6MOẗ́O 7?5}Z6Nyj rT+BuFݦGfV<ǖ"┺ ~pCb&E Ls4rxz ln? wZ$$ h_ힼYu52FQ/DFoCp sc Ilʲ^T9dq<ҨCG2^A;no;c^첇DoR-LE{YRB>oE1K{y:ecbF=h8AP˕/^ȧp1S;d~*=d-; cɽ L'm$S/U%63tP6ZF&L2Mr(jTZ4aHcV +P G+"8ȲGLմO,I9Yk-G9h3ď6Qr^ߙ0šfE}[;!9)kƋ0t钝P~d/Ի8},EUz6K!5Lms+oQgZ1]>ϵyCTઙ? 'Dd>ٷ_gU2K"'ޛ|yۉ8;cxEf_9vqob&<ͻ~-Vy%lJ⶷!E{:11w2+Q{ldmggPX׏~{5S\ԛ}:(FjZX%Zgms&/ uB\ E:| f%<9_BcnF$dpm%q)R6y\HqGΚb%tebZq# ^6{Sx՚O2%/D) шn'Sk> v&z?KR`J8j93ֺ̢6r##et|fgy nc_LCsuFn;/>h0h_7-*OE\{`26*(Z{ĺ8RY 2W ,! bl$47_*YDM8F*߳[eduҕk%wg) xJpEkeĥb_񳌟7cy؅*8CC/'wAMf`\ݕ+9X~k'V/QԸwD {b^nTNnVtc=f fwyЎsC0IR9 $LMȯ™wb\q|Ւbn}Pg-(RR rr*T3Ku'o 5OY*KFf` JZL?]zK)i_'a56sI0/3C1+8j\gOe; dAQK1O]h1PQl5g3#8"Q?˖Ha`<*: ϭDX똆xSb=boi~ ݝP)ZUSvXs?yE O4ə9aǰSf ƽJ5dV& 0q%=2z؁P%C 7Xvt`wz@{9xg7"!}>UyA7_9/R]mApΕ'w뚒ҵx=jaHDGF0|VfwB̓Set8c[?FTΙO9|pP4"߈,NsWiiFgSlU#ppP M%8Xq}vSph 5b:pB[Ɂl^bn˖("ÃyZm83R8LK#24(B0J7vJQ L52`'D'?Ů>=FFm@J#7f9OP8CL.v|l$u3\6j$8RIpU@@:7G@ q;x(} ad3|}6(= -}g >%<#Z6WNwj8tظ4\o# pv}P!+w;#R>1sjuML};vUC=3\P_򹾠D{ LJm ~G3_~_* xIwؕ.\gZs&Py>3_~k#'.t\bїxAS/eݩl;H~dބ ;-7h{bhfYo[61q .ߞ+]r:O*n8 Ҝ3֛q IyO?5g᛭]q.j~NÂ)xؗ?-%l7-}YC<C?4L~ CzWW}$7Qň~s%*9xsX0#)d@(RIM|A_%B~nK {*&9jInDNџΨ %b)!C{h΂s>dhiIn`z* i%Cm{hNVH--Uє3VQw+o/Xg+ҽRtx4kaV bH0_>yYWo(?^4{/=Ö|c93J I6H)hVzKh&`xev߭W[oL݋ { *cP h!{9bIrk6y [ q'<,Ǒ;_mw{Я|p Ԭ+-q%9ˈrPmQtH*&8%PU <{yTS5jq b7I;T /N5Vor7<~k~y^\e#fMH I̫{#ze0ۧE%l-(YNZt6bVQ_e-=o]oYn>rTY>!C~^).uwRK}Kjb3 L>L.^or/CSTp2F!C5ylhFD YWj}dz>3ꜩy3ׅvZؗ=dC%ȞqGQ^9Gtފ΍#Z؈+<[O4eֲuɉ4%jh]-zƚ?:9?ply4$x0xy HEf f`08Y- :kvSu 4Q ݋b@l&h(Z3nx7Ju3nیx ]Q!xKfA{7#hS$ cZ,6͙4֑;?5aâܼ4ĽaNImX΋"G PP[P7,6[! -,ULӣnRhxC 77;cuza8BX<@9& A +@sBG\+=*ؗYH"1r0w=cmDR*2kϗ`J .(ldPЋ4{%D2庩}@ (a ԋyKdi/i^F\L܈1H"[$3/WxbNd:;}lzM4s[OX_.Jql~ˉmX%{!i#V>f3)'&+S1 v;MLS;f E6Χ!2X#"EPjIե_o :ӕL?rϐ@՘ܔXTus xg^Rk4 LclK.C8 2NX&GGahNƐޥކk_륪wq&V35,bb~v%o%o܌ */^D &$aoPcus 3LJ>X?"a'krM26(L%2*B&QB1E<30ڇ6_"GN/ǒ!1&x];,;5G¦K&=o$VMPT5 ERtWun"6g$]lx Q"CPRp(C/:ーޡ99F]Pqi}+FqM֣{XJra Ddb[pT{GC8Ҏy ~n!hCno3ASA$$q&;|<ȬHzKMx6|]D8b8UsjyXhE1:&k1eWgߚ߮te@+߶tX%'\pe۱g}.>枂<~K=,>xB <نXN ]ī?/ĺg_=N&7,:0?Rv otq zQ%nsttjhIxqUJ&2$SOP,o l]Lõ"N-Lh  ՞p6O!3`v .F8P4lVLkZж+3jcTdL=_k9+l2px.ez/N$}2Yc5Χ{P(ZSamKoOgZV.* d/Qp!spq } AWF F~"732;bIpnw`9]ȹBBqy*ah+QzNBpɠ^5q_X0ԋliĆAk2C,8uouږʓ($8 /Odok&&8Po(6=O6]2}k3NY5!.i|97DGTՏ_3&tEK-ƧQ mSasKHoiya9Kur14 05>ʐ }kxzE#-tsN)\ֳT `[pB ;Bk6M-MWS1]T)$[O4&.9ͽD[zo6bvAtCSfly{;'/$mSeռ\Y\6SFeBu[3RqEKF!mJSϨcm^:ҿ8py/;9Y#\suSr^(J7Ҷ1z_,=S}{lv Xθ~u+dVHɼ,YiԿi evڃF]%ϸm^n*E#&zuO%M93Gsnv>*qiuo<}mmB9iy'@m˟z]Ǭ7F :4n_m©eEs |N!7flv`}t{_+N,b.~ߵ-랊[ыvH z),uk8Q'R`t8j2'mRQ7Z˝|~SYU)eK&Ѓ]WqKo隆l~ez tw&mv>`OZ]9W*JCHϣ ~D6Hit^tO@18\T7kasYeB!97{$5M,Vxc=d'M#'EWWC$RR%uF5l?a!dz,nAs3nG\ &AN굲Of;dꂽDEy0n찡ϬlFUYEQK\I?n[30gf"'*춯=#}WJ=h8!ۢiYL$TI<^w{MZz㖏Ī&4Mڄ6g>bvĨ$diSlu;]HA!}dRp~h!Q߮;JOf[J! `$ӃLCmޥlء&#vNNsj%j{tE9[Cڧ=?hoYORؗ*B\aL9 bYzKi7m`($/YmM'8%?0/Q30|Wl4>aJKAZ`ρIR9S-^= ϳ&|D?%Rj=EH$PH8k5oJ"-rIYyUq)+ݫ>-U>yP@f@b ;(:A8&-TpK |_+A$ǯ8-\z].F&dq*{[&z'S a?Ļ7ۍ%sHjigwL0ޖB:SIE=If[:!˩=]#ْ'@B+ UGnG Lfg<;;},M+0LuBoqH  9ePTm/>OB_~BW$c]$~OהiC^3  sď< W ? V›5g89p@ⶃc@]LbT:P#ЬY=Xzyr\,ګ) L_zȎ_"sl"Pi.Q:].A29FK{y\pP0;M3K* Af×X2aĩxBWZ)$#rYR |~V$ҡxTWomT-zU:=b)UC^C۱pP+5wMdxP6a|-a~U0ݾT [+Օ}uDdkL¢}xj4B8م&LH=ͼ@Hg7@q>E :? o'K:Dp8tm(C͟ (yۏ0^QI_s ?thurK} J\C=*bYq%({wࣿ"h >F39l랾Y<ڬD*_7ԝt{}382†Lch=f+` GچAyEД4PРL, %3bXKu~}@怵칩%e:Fbidwd~L:@w߿/@qXWbfЉ|fLu 0GWCFJȼGk\pf~d7lMjŤl2h喲5CZer{?K#2 1FO=|eCm0wEy@/# 4 O?l>Xʳ˼wɿ'k@l`]6g/+zX2|/ٚߙKZN>Gf6[3ьxm=Soy_9{(c"N] 6_FtIoOI@bfI&r^;>U]FIlI3*vkJi슙 3]+Htu/vhװ7'#\T)bb9 ȕ|ߢe>LW]-ZPZ4[c7+} @ A90ߟt3kLUÁ т)O/'HMsjd:Y(L9::Zӯd0;~{UHp @7"R9tbړ׉Tw-kKtbiMj]":gk#%̑dN%fp^DRC08YVCo~hnϗS:?omT+ 2U/kDa5ANR;Bؑ|fK] N&@Wwcâ}e`U_$Ps£Ƨ8^ѿnD@ @z'o-%lbIlV'K¿P&`ǒSެ7RY3zz0@ n OtUZURVewĐQF}X*Uq?\J`Ͳ/B!-xUҌ2ࢠ]k^j([4 E#ӿGqgc,nUg[XपlV@>x\Xro̤)U~p{2 vnZ.rk`(u0\ܼyh,O6y? kef봺AEpTk >/v(Z?W/"zMulw{dB DF,u*KP}GM\8(أCìz+_O)gI՛ 㺰S(~)pNT!1[8j2(>3I{ ЃmkKu60,X^ۗU$|AC(.鲏A.q~akE _a۸j[HJNTЩ&[%i_B= %]F׊N~5s6+_d؀zm5zˇ}01݁ ՗\nq@Ws2Co]׸ݛh ['JP푱P~ga71q?= ^`H 60âho" 56=P{O4mN_1%CK0zոl(vڀO լ+xj[Eؚŋu%TqdP@lsa§DpwȸNiP4SdpbA!o b@6Lo *|B?Kit #_Aȹ o% 4yOݟHLs;[ 1|̛Pk hCY(c`wT ([ kc,Ic~^.\xkE{ |ߌ g@;!z=d=RȔ@d!!nZ>|xUt~Gybe!B7)3HEGy;f{~1FߍBwQOo@#[sizb+u0< > stream xڵTuXݾ;f!f$EJZAZB.iAA@ ~s}yfW]{ gȣكU`P8/$@K1;X,,^` *`I|b` `ÁF`;B z?P'P89{46y*7@IAH6=:F9F Fz|!c?J`؝pI>>???^'o8/ˉ?#g7 xxz;j'- ~,Rt/!=Jx SpBp0uxH>? b 8C!oO`of >OK { p{?VQWQ64z0GOAIK / ?T R?zO O[Ba~;B GA>|PX]_0'0{|xxDyn`# ^>}% A68*XCa&)nO),77;3 q $܁nAU `pNn-?%>;k #(bvtpBBAG>]=U5EMO2@"0""@;l%x0>b}+םgmM!Rp/%)ϿYm_OyE`%TKfK咙*T 2Y3(+93JEی`ga0-5Igr3R }`v5D qxnF#b tϊ= ӿ 2?B+[xGFL"5IR<_asޮ8lBͣƙH\I+Sצ;;j f-{($a7khYb$&O]/ʩYkϏYqa Ih_|>ΨJڷ5UAG.Q꾏mDZyJO"}x,G踠GD[afnfYЊɑl K?s3!`ƔW \Ayľ1sm RUIn^E*vIp 3jLxJWOde 7uc5!"\~Qm6ef#OFq{VBAv(%M!:dlC1)$ȫ7:g6T1Җ k<""'-ĒiX>xf{QNT璧V $!@i QP޳Ƌ뒉崔Op喪vgyCPK"h6bex[eNdnWz J^ꎉ2hƭ 7B-:AlKM]YhNf/ܞ52Gy(Z KuJrҾgs2Ysp,zt5$(ԟ\Gbt*Z3AKo]n+|Z EleglƂ`}Am`Zj7 :a {D}XtД?Ine⼦)ELqk{>S6&fb|~\wۆqO=pfVl_PRc'dgp!xY v mq> h4*F G#6="{i^ZHYT|9rv-*+ ѫmVٷ!2?'7FI@;7E]:DӏM7&B^OHR߽ϳy>dRkI:e,yDPh-8W!ˏެQZA B|L <˂'u&.S-VTrQg)ӨTmRֽ@Ø5e<7*f%SUD9{du;m޶7:WQ(b\"NuRdw\Vu Ƕ'+ZGhщ02LZ9Ӝ%ThN3Ō u0HƩLvɾ4h -%]uVQ='eJҏ<6<ICAGeLc8SAf-5| &JwD.ewg]$?Rk1ab D$J~>;eۛ{..j-ℳ));A k̭[!ptJI^%qÜ--:#uZ>vhzՆM оqw,̈́L/P S&S -025y_3СeتHy?͸yw<\N}@}eKpK\ǖ[lq,<1Em-]{>Ql"1IC'tIG|f/[i̳Q12"3g`nC*be" vGUW|$f~}xdPgAO>JAT xFb-+oN'Wj-b-4Nߞ0MvlF&i vrfC̀.it2?oЍqZ2Fax$l;{ݬF0JKMnn#;ߔսCWߊ?]ܼ$,_vuosqE? I츪euC's$UW;Kh*We/C>1GqU,R:+rHsMRcfw;5ʋcT\f҉GI||>;yp@J$|Sk ' YM|EIQE>b [#.bO!78,tim`tH}UÉLf1 H.ź)"6E7|,%4w(2&Q.+osOmYl; %pR/;NkMKV'3$ h0 VQ= r<4 镊>Gg _:?oGI䑶HQ%˹u-O5"˼QW8}﬜Bj~(C~c0u7aKny¾PVl~I=nFb*i6ꗲwk:'vF)1Ab1Pm'b4`OwyG!D':Q9ig]Lլq_9EdH|Ί[spOc x{D}g27S)K XF)Jv_-6/$D5}&Q5:{Z~\*vD*W |sō3nD}JV 9&]~s2mbi,>3a,z6u-֛֮NzsV *sZٔո+U3 Ik<2}Z0|jZALlꦀw(8bT9~韟-vsJ =2w]6i{ȎY){\] z,)lnc0:ק~ol("gvMU/|-G3~6NC]7x~3rzg1r{ϫ"zG})P̮!#Bvjo,>}K. l&bC,[ oOBj#_š߂Ò\>'vv}Yd A=Sk:֮F13 \I)$pIkm ` +Xۯ^|aܬQG5顄=-:D{F(rIZnOx)+,Uc\,{vr\:=y }!KA1$*! =C''f<7 ~q$oj}T[R6"*ji/Nέ~Cd2 u,yQҋh/ۼ|wo3t-xCq[)UEW__w)pDI12^ewqHY͏l_vK cz,B7#ۉHJ/38n`1UX<JQD]O[xLHـte+R}hJ_;e;xUвWFa)ǂѯ1sB]56'Mkk^q=cՊS?{lff|)wVz-yt:4!y"6})cp"! "/h`06g|s\;S~eWyvF(5d2#;q}h7F29<>n##AMC;U1atnpGb uS&P^Kղ1FȻr{ƚYnN"`WbJ̜OڤtJ '~C'+:=;2EN4oD,X񒳬ev*ϳ]dn(8־tF(9]}<T'2S):Bu9?F*8Ua}mOJz4`* 0yJQ\}_ D;tAULO_hj+x9@Z ֑}5bTh7qL:_ѣ_葬;b<.6y(3wlSs&?eCVd|w&Jگe:uV,@1QOa>gU Cq{l‡])RT #-p'U>) r 4(\[vP~Kڀ܀Ry-~l!p>Vk0 J? FeU^+Z;b"W,h+AdQ@44%L|mλ =>4o .ݞ)P? lEws=v냈c?IIJ;Wջ]|ԉq,COAH[n/{ƫ$wsbՒy!*C(X7S}[u+J{9\~y/~`(D82I*loVP]wpFO-i, cS9x ?(o(G;mH9cOΎ.  v tx;K\),ym':Pm"Ȓr? ?8|]-mlX+z/D%^iݴC&Ax&,HWC TIMfݵwj[Xh Ы0(2Ԓ8#@kje:AvP+]z B{Kv25,(Iþ=MDi2v0A9fx5p1)vHrV }Uq+qՊ'}0`XfN{gI ثlKT@ձPg13-rv-޵(a"!U9%sVVlTQItg%J%BULUl yVz9tӮ~4uX:`eS`ӾI|+ #)K6mÔV t7$>9I miT|'%}J,S.b:OQN/8Z:< %oU^KqKȦZycz-WW̦lG8~(W IռArw=Y,&{A٭tN$[ (*L+{pR ,̸ۭZU"T ,_9S@OqUe|ƴAr0b9*ŋ/׫/nWk X&Dq*&-hI[ ՄEN;jأhė4)fyrͶ2*1g0[BU&6úZNl\}=S\t3-h2L[xˋ60],|1X Ln!*;p9CW9naœT'4| KgA|y[v 8 'dz%&u#4xF>M{csU,#{D Z$}Qэ"8n0w/JCDM *KYͶ5j(\來# tYWqƉ6mm.X݋WԅkšHVzj!VI"{/TOK{J2b:99yu~mW YN }`U~iGKbPXZ) e}zcNh3 yyoƯh{G/>zOJJ}VZ-HkhܐP1pqcyu`6CJb{秜_Tw%Wd̯qbi6EXm.~M>x}Rw^|A^uTeCMBYzJe:gag*vm7ԥ|c\6U%2Fc^7 -='˸-SgKTPx@b\Q-E@!RNVpX!KŶ)DT6>$I-1F2wVFE p(gP7UrM_Hd˅AYfˋ)+#N>媝h þ0ɹ5~/pBN.?\e]/BG*‰J${=1@~+9y) "sCs4M4;!9&ԙ=,+i˩7>!|MԂ!t'(dgA2,Sۤ?T'U>Ƃ5eʒFZ CC^$M'.'WYN֮Tp 1oYXF 5P0%M4 &Q 5u2 3c js52T"ɘE :2:1ei?=Yv/οX6ta`$"* 2#(FigObn~NRT[/GN _uW61HtS[E."\n9kURrtNK}A;qQc+8Mzp|qV#: :O5Ku8C}8(i*! Jp~ϨNsϣ)B Գѧ3QQdUC)% ?U%4twݟ4rb64tWUC*Tm%+6ypyϜ UjYom;Ab|$xnc?2ˆx+|ơ6Ʋ1Y. Gc+^k$ڹ_T&lN(}"btZmesO9öHw̫U#tߧg endstream endobj 1612 0 obj << /Length1 1962 /Length2 15305 /Length3 0 /Length 16526 /Filter /FlateDecode >> stream xڵyeT[-pwwwww PBpBw n}y (=.j@I(j`r02MAμj@+W;S' %$apX]3#XXx(@i0(]L5<ӿ iS=l]`gdSO@` 1)2ߍ6 hmjg phuji5eMuZꮎNE\]CS !! j155[14IWUde VOpzgTK'h]\ݙ\]am pwp: d>Nk 99 $/(ߓ.K}.j+ WkSrTT6  db 0 A @OͿ9??Oc;m]Ual@Ed$5ޅbTtx?D%<,\V^˻H%AיִO}N.N--m@nȬ wlV@ 0f/11`ij  x;.N@_;!r,l]e*UY:xe~go5}Q 'h.?[^RvvJ@La6vG6S%'{Sll<*6..Yߏ/U{c0.Gs[ >}fEiYUi (I 0ur2D`yW'']@d`f9]]|N,0/xG.q-YA6 {省Y Ӱ0= {i;w 9oYߩ8 Sq|p|o_OR-׊hz 89m,hd_f_ (s5-[LÛ`xk~kzVC>~i +,e:ґKZ͘'E. l Ȥ*rP3*ѡ {]oMm*mERtf>b拣^}S(ITsD"0nFS֦CFeQFl CBD>:]B[oF^Qsg#0:pvG{"%$t Ȟ2= 07 Y,{!:ՇQ#u›f&.pYu⌁uW*K݉y$€$_uyA 9(|\i[XmT\ӌ`+'4#ʍ'&RJ>0S(٫Wf]Rhm] 9r򱀈j3'rmo*;^d\> !B&Ь|T<mr3t*]XT,7"\|JT7fGWp;8?G'2G [iJ'ZFȮ'kJ͝S6 <ӂYί|~ eUAZPX0c2!O%ЊGn qDN9aTOBw" AbaMjMpd l Z!T~s^4kO~p/2MyMf&E3V]r.+My vhcOlqĠ;pY> }DS6Ig*0TN}z c@M] W#>z %gb-?$݊)dTs  C_,Dٖ Cyz^coQ!ia4nh!BJUل'#k>7QPZAR}a8'0o޾3`E<.>BG,u28MtHzF͞ԉ, (yPv(Fޜv%˓/tOUq+w6]&J<\[lR-\]+X5-w;i>Q+NVQ6b 䡃bMmyP5%v6Z*}r;-LQ8\eBUtÿDF)zJB%mmk2Z 6ߜů/)K${nZ{3l_6K~vu|wxa`o\CQ|<pP梑{A%ƭgti QU68cnkTa;ZB_q3-ʍ ľJ(;.a ~o3hZp8'lMb;)l< 959ج9ݴGS ->X􁬯<9:Ągďa^f& \W-TZZz:UsC6MS]`@C-À}P?6̵&Uw S/o0r?z}fߟ }ģd7K+qoO]Ҿ1FwfC.hf~Թk%|;I'R,yM!+ D?DTA& B\<UDsbGT1=FWZҎ+4k>E: Zk`mus;T"cfAuO{WU7$#ţzq_͢)Ym ugm\f^ֈ;[OjNQ_D 栭"S &Z_Sqx~2mAobOqDg!97iZBbg/16sW2?/d_R=5M(_4waffiRexvP_8WZ?K7#Z$/$DcTF8[Z.}3ϋy{"\)"l_Y?]<,46tnefZ}g{9hk5"#6KkgRb$W?GoL*_YYY YE1bH5D,.8XDq S!Y_BP&B@ϕ4t waT E,Юb*9ԗק~T0B\Q)=|uyQ='N SH(+vg2y17avT6鞀eW+Gv.6P; do*.Bs%Uƣ%"ToFMGCǸlΈ7v QK$r}RE)ƍQCJ1'K>(PVEMA^ݲP 0p`hń.>Ewd !UiRh!KQ6cDk&\6 ܬ2 eeII"g5Žn?oίz_ jΒ*G\4cs˦nդrDhk)v= wep?+~˓9{Ǚ xYs*@ :#i)eF߻8,;;j. d`adC~&)OLA}mBMC=T?M]4KƉtZZ7-/vDi@!ԛlSZяbUGlF[ʒȞ[!v^u=wr)5IQ'mYZ#=,v~;UL.T*i ^K!>aJ&vŞCdX9?u_:QH)jU@tK"jԴVCW&q #3)Qu *L`>n[#٩Am Vד9Ө0(Iko>Lj =}eBiZSHdk(oKԘ:HYmdٞ^wd[q\Iiq~dw8a59Wۋ8>1[yIbk D`-edw-e5^Q8OvUFcl*# k/(h3HZc(w&ӷXc#=H7v[.-S8G|+aƄiZƬ?̱^y 9&j&5FX\'=Xs̏c~&ҰlyK6caey!\g0 ԇzBR}v񁢓K'7+ྟc[F2FkNphbUI<Ę8Co|ӏLℬ/uSjZF0#Q"I'ndP\RXee. :=C *acbZj"]%vW2"~&M9yֹ(I%.,V?daG}(g2$gl[;J Fb&M,L"SiVwսLH̊hЏFF"kJG i$w{.FEdg)3Eר X /l`G쉲`U~_tFks<)1o%.=b-khRTR}nv\ڱ™X9 )t03sWCM n܉j†Kk Aޕ,Y%&r^G  avGt.#8|u(oRuZ[_;:3% ?X5PtegyNk`[ M5B'CSG<$-"$Hf5GN078v7%~3`'w$we+յJ tΛWx|A--$6Zu-TtWsms fQaj#(x9\}aX`iTmTLpbbj&A0}k=blVgX[>Z gz vw$WlEDA8f>ƈ'yOz'6bhne{;Q6cBۿ+CpRws+c %z5:yqNHsz; e[޴. RE #0'$%x]3Jd>E$& I|CˬWBVi}1 Q+8$нznsn@uWZ~/Ę  nWN%E[rB٪#u"QQ_|ܞF峌mW7E5x5F]ղ§OgV%5cw?rS$P'8Y'g85g8w*tWqrp{a[R؜"5oYr7(YQjxܕU ޙQ{ 7YPhӴvb }iO!j5< Dzސ:-}YEV颒;KMu*5?HJ~/R&&A,:pd$u4=AWmqL+'x8u޶֛-5שǷ ׵HQK_ ,ihܺr~]КVYȊsq7n9#;lwI>tUJ2*dqx-B b vY)g<9_ G?ө!Ӥ#+_Z{| wFÀ&X͛MQL;SYe _ w~/dH7ހoOӠ6vm͘ .';]px#ytPh]d!p!DSbK?INrAScM\eEcnC!ZnINDMFou/ У,!uh[[X9Z٥7ǑFj.j =F[yw#36X_,\R$HrEPQCpON&W96\cPjy ~3 a_LڍAO`DF%1쏣CG;r&ٕֆ&5St12׬GJ W7D@%,jDG`z HQ`V Al}"Hܓ+4ema>d:V&/=UA˺OhMJЎY`Zvݺ Nl.'Vmn,\ѽ< =1Կ8dD%0q P"X~2񁟮UcWLuoJ#3p9*G5`pc|jrxgKO):. s)|d`ޒ*cFf|"uE*ܫ{y^Ku/waȋoYALGGn .֛*J$iDU[*ce|OQ1;}D^gK~o w#|Z4p^'dUC.5 5^ 1?00wt5d &w@r3"U ڨg} 8ǖϾq;9vfDZ)AV97T|Ԁ洭p _`0V4U@cFZhDv\nيm<(B/D>f dB@\HKqJA/Hv_]L,=O&-c9ueie7Vu޵ZJV凔!1XHO.܅+֓Nq3u)|#WV[/y?e dl> ',ne;o=>@O<艧/A6ҁ'- `ٕ|iqarIFL#P(à:c7, Q-?BFlSH1=y v8&G˵Ȥ6[' IR]zڏJ8P竩or.LA)hGd*t,޳q9UW{v. y쯱]lc z{?PV`Ln\*& NQ<Sᩃ݅Dc[0pBo}oX2~!Dr~rȥ2Bu{5 dmQlV^ WɆgKi=)}?ufHQ5$b1"[61&zʆd.16Z N_}:Ka:/NǷ Q]vZwY*R}Ic18-v9ex()@$xs`0.i|#3q8ۋ1zHM^;zo{:Q3e!a] ͻ.OC-K?~Ye AO {)WV"ݲ3{;[Nj_U Sz珞L{HeEaTCj+G 塵0Ӱ>d_L塛z= t FM15(4YA8.&"L,(aZ>_(*?Ή:JXb,IdOj`0BjWZϬDڒ[EX9Y+5ފ<&'f`a5ٷ}WPj%Oo]No*1:(1A});.Glb<FC:z'!D9]Am2o,>.\&&x}-K[Xm~ݷ _7r;Am;X[%ȧq*W|PCo2`wPqS#:DhZHP{׵Ƈ4,bvZ.uagq򤃱^EHb7&a~S#de 1 װjߑRfUd"Y]۳q^\#[(|ק sהF҈,+ #^}TuY;,0ؚBE:4))鷬xs/U >}GK-YyzvNp%orkK]#訠W萯uξH ,"#g_%B.x-zqҹȃcK5LZ!Y4皆dvZ5ݮC#rת2gY5s`/~}p0ߦŦam]9`:z싋oRa]Ļ|-GQ$禳E.ǃHQa'`SeqbɪHZ~"Q/˽ǶWwaxż?lBaSP Mۗϳ^'_ʇ1!>*.킇]I$x))/ɷY1}jMA.5-Nygj)JU]NeXeqp xZqP%ҭ=Nt4+QE$ZFID͹=!B_,GƥjUD`(˽ 1+k|Nݎ'0|%ci&޽J0h'J2&uŭZYa4bמ8Q0ޮU v ˇc` |ZhV;7ɂC&s\գP A$f%=p35Vr۰ײvf\ɧ>9t x#Г(8r ZXS-_=FxOly''|F)!ԔuB_7ѯJ|ľސ#RXvc}8gY!,e  \ce W푘urhQ.PNl ]6`il\ʉUXOd A? /VK̨Y&[=]D#AaDFJ`a"6*!=}vE銞Gk(MRM;cy!ӈg@Qo`C}\/ 4"'Kh֒$ȺNa2Jr?jbƠxxt1A$Te)9f{Yf<12z{< ՝*\!JKeJ@=ݢjnE3sG5&Mr(;d19$(r[')+,~xТ3u͚yѸ'Hz=/t<;6YEyĽWLS \.o C3&M9ŷZ5-m.+$!І޴gʏ?}YZ+cD>dPѰ$CZVD Zy;hTM+G?^HY@̢:?H:aF.y EKɆ[iڎ> stream xڴuT> !up\kA]#{s9~ktOy[UݫW*(wa`adɫ;03lMl]VFffv8 Q'^ r(;Xy(@{ӻ ` y:YJ gcw1Hn" rttネᏧ?"cS (P3 { 2*IEu%UwǪ ETUM] &&j$UՀ[+1WVVga l'FR{75w@mhr`t+?5K+g;~vNKl @h c$[h;{Oۿ@4vVNII`gle77}Wt1vqu{ͨNuurC_" E@+ӳ1v3wu7ls٦ {g+g=V?;3+x j rg zGǞ/?x̜v{ۛ޳v;N. 'Om{?̭쀙Xgt0%ӟU6;> 3~v6v\\>.O `fe^Mwi{so{&O)Pհ4j@.AOW, W[[c; ?ߺvV_?Rq_+g +͗v1~a{ [ oֲ}9dg9K^6@gg7_";;0Ii)(+c*no 2rp= ^f@*hry78ANpv$7).R,,&࿑&#9LVFrldyco+пﮜ"?#*g?\gVE8lVf׉S7vqe~/Qw_#u׿Y<W~`~7eaac[ӿ_ 4[['ՇM@R0a j~\Jl" hOM/Тƴ}]k/1Sm+$.<&_NJs(]>LP9ix:zHWҼ?Ҁd汈׆8i-D;c5"Ձ/HQ3Pn3+Wtv6 KSHL=4G [ ;7vK0W-Y~lz:"ƲzM QX橸 ɕVO璥O(תXud[a`և/!W>bְ>G'fmɬͩ^xsjN`Y~ :(SDVZ wza1Rb83nDgd TT,̇kVZB&F~ǎrÜ"RAo˒HfӨrGu.A$[V "ݽ%}iYGr1%ShĴs{yQ`#:'5^Ɩh%5e",1? Wwz'ng@TZ )֝vPHCIf>s 9;w񟓆gp¡ZxN>^씂R*M<ǽ-^+¥Mh뾃ހV4F%zŸ;I(w/}J-sy5Dd bv5?9@V'_o#e9Gj=8|sY{Q3"$trC4/3ZgMٺi Nvi,,sHU͇Sh'L ޠNQwG5JXhYtr*os XuZ0CW@lz_Ei$ʈU}0(~dHYǑiurғjhfkfA`۶* 7CeWw# t'Ӥ'ὯՐpRy+)kJ;A@5%Pgh ꐠ԰ȥѝ+S8k .)9XХխ&ىdb Y%HP,9-UJڝA&6ʩOMMџWo>[iW%C~nIԣgJj_;!㘳2&$R;L$3􇰭6-&ČB$P+Ѵ=-9ӳڧN-.`8R_Ǣ"53al (6sJ 2Xǵ'HƵ]o$_۩{䞑|KZ2ɖ{ - *ndsk SۭIz+r,O8_ۦO.wզJu=Vwz}Tͨ Y[ybx-< Hت@cf΍4 )qac ,l!>瞦%%2kgL G"5D72m !rf9S܏lm8/($I~;& 5'5 M:DǚpPZ8>*4AAX8[|cV>DoH u,c"H-m講﷖O.gx np\$8t!|'GDQ2PZ-BqhiYshƙ)ekAӏ=i!u*MALn (Z Fq/ΒGm_q3JT7܊3'jaq̓[ 'O\ThOZ#Hʴ- tk/5>+vlV9: AE0Mk]שa.cE1%>zd ^A_$8Y?a49 YOflOS ",6jVxbZT-084H¥l yv + Ci5;9*Cx`{0礐ۏS:؆ʈ& _NpnD0*,IHuJqϓkZ/] |[ras-o9Q8l\tψ RPQgD|e@',`džT9|iyOBT eZŒA10rCoc~8pDkOJW?f7y%;P8zrJYba*~JSve[=ށ.DNN.siP(%8<#k88\-M&2P7Mґ30 r:ןK?/NKR$bt 5RiES.Yld71y0x!֞g&a,4wzi+T6:`/~'F8c* JD?w,_FГCDzP20!SKhNm|I[ ì͸My+Ǭ{+?8 p@}RuXnV <:f+}I 9KLH4%qe@x@寒/qO=y/UcY%b!(z!;o5^w RPf1}1jUZ~0 MzdITdqͰ3nf !W($,щ '8(UD,05V`hɪ(DJH 7I9`@3 K4c쀱f *~ֶ>pW/g홷مW$n1;{-=\KCeܬ-/[L'U榙\fg}*eh6d|2 L8:f1ki9OKN:*ܟ>u1/S^ᢊWRr91&gY[eRտD0.Nuq: M9>0l\' 6%gJ;,ZH>~ٷ'm,{]#mTϠ}( Sqv$ϻK3^ GvAE/׈( tݷX B\#*B^@??90.vS$ۭ֒߆tZO^}E'W~.)8X`HMX^m~dwi5ۗ5s=*$%iZ48*kb`݋2SLW37:u<'te)E55=7 *"Mv;GH]D0( c&8b G6MUxvnj ^6&Ov.Rg;PVB>GH#,C ,o&ed0sBܤ!(; )0)M޵+{P)R_diW!-o0Ru^IB. y_݌B&j+oс=1=l'YJvG(6h;qyW[FD+`(ܵ3BHsGW rluH k4AYKCևN&&lqծ8sD-jRu-)`;P z[N!s4*%x/Uosu fl{=q7Alsj❋[c1]jdT`$!)]HMr4~b_~D|od7];hαpz ]fgEz1owGe<<377!G8z(C,6j*= R8&$s/4vTdDVؔ +R% uj^sa~t$}NWB }+?& Pg{ ]̲ܼ0QC)ǝn|)ǡc <#x*D#,- 5wTLf2@QI,qn+tQXI-GhG RIS=(+xbٴ"v83n!u`E(FAuב h+?' Epgd8=JkhPn1Mq3-ʮâ|2ty,n I zm:% h w!m}pĩzrZ΁[ЯYSh=oh:}u|.!88,oe lX]ݥD |٣S7w!Nv`( S@RXAybSҼ힟* 3ihNN#{O`r" C .M3hP;JiQjЮ~1~r״UZcWSyd'މ;~Znaj3r\kmT@>hb׷^IULQo~$Z5k[z嘰i_<%5TTX~z()4];}B{ ]ЉWm˸èߟ-RcDz^*%UP[iYYѭ`Q,LCXۋA 5Sѕ9.0/5%A!a$TOJ\j?mt}:N-kz_!Jݑ ΘrM~VUn.KNy7PXtF!g^+ rAR(b{%3~ͩq$> o_3fm7'h4 1ɢPu v ԟyR~ys36؊@NMNr$d2>Jh7]-q }w3ŠֶZ"RNetaBZj2e;;+ %Ÿ,@^y;NK ,@>H>qVzJw;[͚Z13xp9c\EP߉7!7J߹2P娹/CjoBՋ}q0%' ]=p:EH|`!xyrCcu* >`rE7v9;m,m%Шi2psnq|; OBƃOepҖ _Q?*f9>8Wؒcȗdf$Oe4ǭP:[aa # b޷Ll>.$.|~ W<érKPtv7QL똈ҿzȶ.<0쾃SC^Էf67MZ'w'?; á0 aA  $+EvgY.S}뼥K~c3Kzi=$n"k+SnvG)thGB q7-J UL4C)vCWG sfCIۨBP>24[)YDqUkډ<¹bҏAHE ]lI1<'p-elF9[iN󘛼d u&AP_Ye"8KU !2䊯^$n׻ƤNcTY o6]cLls\se)fTFإN`ѱWw箸h*D>{OO_$p0TI_Q" Jh[cgig 7eY}.'5]nr~q2v"%~hޛ%l07Eo`?lyp399ʙ"xH `}d!!6"9pN\C,}-&|~E ;AIٷ?B}au.*9,Tu>m/fߒjої$%:A~;N;6WlHͥY6oJ%rjTzoY~; i ٌ̟Ύs?<'IB@ zTEqɸ@uI$Җ)xpSG-U$ПEG&YZl-\T/oupK2oI}돑Gũ&T [tzN ! 0gNs Ol^<)_\2L~?tXJpy&LpE#j*ء\dYoh VG%B:-oTyK /ۍZEX\P_XoI:x(Bj)67{/v`2T&ڤ-eᅣ)c&@gb?N fK ȶ8O>b^~[Ts$]t︡S/aݚY*6܃wBM eZL[i|B&?6j*Ih0҇HjpYgj(DO8isX'n B},e`AZŲyhB޶ޙնDf#WTol 툇݄|}3A׈tZ(/NEr;I<}{ aN̎Lk{Z/2y`ʯk3J3ei';{tcF݃6-"ӪHyxIbEmVlmnSOGS(3 h62&|mbAg.: mm+[J!͒؜y ," ^eƘdu t #8LJæhVz-ٴBE87Ψ|rWՉ`n!5R4M}V=J{sGlGٗL!^##"S/c@193!^En߲!3&fdݼ=5zU'f]hא|lPY+CߒSW~AL FQ+,XV}?C,|bP8N {x8"@yC,Z}|r9p&lUC^BF)}'na 6,)h{;Ga|Mf|ii+0yv 5ƍ]RÈ'xl#kG+V _ |="2֘( 6KcU^qHW^%>$ o9$s,s^ i&dh<"aʓv~[?ںҲ]+BڥPOFVg2R`d xE+1bKRăINgSNS+dS$4|[&>j"r2 Y9?DU yKPS$nvw7 9o~#!EL.h`S2a`$emüowߠ]S+1dL-F4jp[VztUڸC=Q)4uin/ =?]Є JO\DQ*Z{Ͼ&nVNd|Om=S뇰v%}aĬX*8C5Kܭ14{ ki j+DߙF<>HX]*㨐[BSo;:Hɜ8n5bրpbRAN& ^i|ѩ FpIy/҈"~5\Va̼^SFOW맆Ӻo0 [L `DHM Wu~$Ÿ#Д_${j\a%WqfDz Rt:t?@Ɲ_ϼHE[xɣS*#_Q_G'hc%ma&0^s.$KEtM*'^ |z߾dR˗|r,|Y XRG8%osPj I,Y]ܬ\9z9s/XA}#1:=R=lx;?JQ%](`E]з]0sQt0ө9rICĂ*ijS-4U%T-bU-b6[Xow -wi I"ew ;c&5I=%*ykz :WE >F۽זA115&HάiǼ@HJ 6~Ip\6$9߆uiʈWH#%np(X{a |9`.dL5!)/BCt=Sήo/J6+yl{ia '~4+q0eq=D]3P!pu9ɘzQe;&Lb-3>9/_:# |Ƒ闬Jd1#&,WFʮķ,6$әZSkysm˜| nFޥZ̧ :6`Zr]$cʥ ~Cؖٗ),}b.^GDD?H=!L~Do J  V:Ir@ԙ:#BCаW]| +!^YQ'+e )Ḷd!d0``WlGB8ܮUckbպwl_MIv:%AdG-7T ``{/ʤ6X dReFD{7ι__oц(J ϩMQ˟RBŨ8..z`.wUE=}IisN -GbLM*˘d]5kSwxO~(9"Mw8UIX8"HB1̍3d7?ԡ]K_pnB*o.NTEmoN(ZW0s"J&|b\:B ҷIyg$€tTw/Zv>6v'7^"t8s'lz eSzN O%kӛk&'[V"C}]Z+Ca8͞ysBW}(01 4:W}âqB"If 0҂/C4+5I11߹#Ӧ.et5oRi:GyD:W8 8Nf۾WԦ4~)qV$®iT#sЍuGbؙfb~&=N|w{D(k?qa-Hp3R35ӌȷ㐇=jj4Bk׌* $pu3aٞeb`J fch"5 JX>T~g~(L7őilUjؙu"֗z4rb)n̝'i9}fw(M x0;(.= ݡ}XGiB(|2$\jn #qWxܹ͌tbDĔpBD#V-|bl G4>%=~«/_sGWt!Dp"y= )=̮vI:zm$;/L`=5I6tsh}qk[߰D>cf ǃj<=ɔ 5TV끷SIjӊ2Y`:߶7 넅~p+ĆQ`mƈ=ߍ@_Rұ|CYu;_ap$9=p9/J[~8ɳ|lkLք fkRl7\q< MESfʗӴdվZJX"R;O9%|7He*2`5%{)r+Mrk~rJh^Ur1 vGa p4ӗ.9Ep5,ɡLzndLAPvNM/}[3nm>8BlNPCo+zq#U\t[_Y_%9`C?'D i2RoSP^R,49lR+ծǽ* !S-7́`I@ZߴnzSlFܠӘTQ1i @$StD:nL~Vܜ?:aQB խvO\lh/, s̯f%PRk>n%CJPblMϲ$Jd']i@.腚!mL%s}'RlͼG9Ń ۰jaDw~4TXZAt|M5&ǘ;WC*}{Q[5ȼz:"N2ߧ FOõOM{!zQ<ڒRS)] +Be0Xi@K,.obojʵA'+vA7Oa/rώ*PhG gEmɊ:`oKʕ!mw%p d*eDJWoTf+7Y1,5:-wMg3b JZ Ux&5Z˺z02- /aQOJ<{m`U(v0v4ig2,/Ev?j Nң%cPwMdi&hDhs\}l6~NvѰsRZ=Qpyfըǹ03A=$<Τc;-&?gDfnj_-T |aټ5Ƒ-fx1*{ncI#Ԇfv{|g$!Nx@$>O 2~%t䇆 "8d7/4՜"P75ƿW$Δ7tTĐ꫔p:u`7P`QQ GPi X})LTe\đnQ-cE݆M/s$ ERkQ0b߫]/ѬɟBOӺo?C%m,}cȿl"xGu,R)6 PzЍGZlU(G+i&Pd; %zl1U)5wV78 7+k`uC?Lgj:Lp&aZK8'mf"䏝XxvLC i=]l$6 eXxCHʿQ)B'7T]#r.q vR[`Kn5P!/y߷F[ߛoZh:ѳE@Hj~پ[c1Ԙy#Z7~UVޙRTW ȥ"=s*R]-Ñ)&TaAS}`OvpVDrPo#9PB_{ ě@1Uc(UYmәwбcYv5[0.t|CXs\B0~Eq"PT_vkf\Epz†4wjZrʦ[1hl>4X7)4?{ٙ@z;L!qUZ5 ^~ "&H> (G'hc< 1wL/,zd˔ǯX`XG`rc$2oSp$NK}Dj-vØrn jtwʽ Һ,Y7‚~˜+|\޳`\ٗ4M-x|j(e ?$c#]y#n ~zi~_WKHj 밍}T$VN~+Щlr\9Au`ol&FBb_\6oǮ75fQʮ>OIr_j/CHc;ہ~٢P"?xCE|JZ f*bXàJzbLRY죿]X?$ N`sicD8.a [BB"]J :V-GIps-FҠR`ZXzaǗUH=OЋ?~3{+$yN"^uܖS_6X;˲d_60^U)fSHTTytj X )&.m:cXMăC#䃨a:*WkR$l'X H^mnK%8RybK6e)Kh׸uy@ϰP?ttb-J(?ȿx 7kʓ_aϋjd{yC$M?fQ;%qCZӜd_[miaIڂ26qDԹno'@a4l5N u}[ig^>̌J{nJEgbW#4FpHyvZ٦{Sd4m4!Phˆ7qzlszڦrijlW;U9$ v5P n&lX4Yiӎ3š')?P*ĵ!ßUC}3IR33T<{lcOBהB\†RxGH|0z@C55٤sU_f+"hqCUoم/;K/|#c-Y܇N-fں};W35|DHO{ubk\n㯋Y{yr#J"5/*11`6#4c Z8n"/yDF56;-.AOњf~,R: P;R$)iBQ=E5%ڬ+CR=EtϊnҶ3pO añ^gԾ} UiD$a!?*8DyI2at 5?Kfpr$7# %] Fs8 r2{D‡j4ݜo5?"c3 x *2fq{x6Ep~`,#{xApj;XHݣ6qe 2f|s*^g}r't"~띥ˢO]S?'17~FXRObgKd֖:|?8Uty8DhEk}U 3ݘϨs%H6l5$rMI ƖK[: 7n3YAWӀi0g炎DDcg_?&R\لu{#G770٨sE>!XEyJBJ8sWaSrmn ҹ(oye\>m֝ ,MPVm^#S@j'7 l-v8Q/i*h=<RExbC/pl~¹'#vV8#u]a)IMNqSR&$Bh{#e 9eJ ǹFfɵͨl2'gWcQw}XάE{!v)F\a@gޭ ¦nt2.FOnarb\)P$bn_Kݟj2jaTX"TNC)ZP -ēV|v%Ly$F>}@ bߤ#4}sUQɂ  wvg(e}Jgpk˘CCߪSe~΂supP9q=]l>tS0L4Qa3c``o%>4?j'*[iX;+~ݧXKdPF9Z_/h f;K%v?w$PPEN嬏Ok pidW ϫ7AsQ~x*B3(ٝ\LJ nxPdKQ*T `)$m;/w**_%F=5wtFt$qLS{ES"50OMw5?SY)“U@z: egC#I_DN $&fI}Wڥ0`1>SV@E٧=dKYD^DqL[751e{@\Z@UNepHŐ3܇%s̶"B"nsNB3- ` Gס=[P(}u#6Q$;O)̷oj?֬{ h#b 2 v KV>V^Bbi_,EdM5ɿyt2 VpKA5/u%*\s3`z`qsoc0Kd`N״]`%.WJjZe9ǽ`Ďjkq M%3\oT1j Mz[w.@.[A&Q-H1 n߇ W%YM2jlBz ۿr&05Yщʠ0P:iep8a a <"CAIpk܇,%LX2k &:‘"ِVoRqyMƣNG}uPa.MÌCYH٭]N*sLTŧ`

a/@U'_äK6[[ IwRwi{RqD~@⯪J9hCNJeWLOjWDAbmUR|DL!A R씏~mk&ᇤ̸fIN<5`9d)~|W\RaBIC_T+&Ec\ԗ LT*' }gj7¡Vb?;-|TC1?zG,7 AV<s8sg }spZcJdz>f9mvb/ÂAc,g+O] EuA5`"B_gGҧל(cEf)2ZD|!VLݡlNҍ`hʆ "ɖAJ!9ž(BS?K[RMWAZQ J-uw@"mT.3“VF2E SQ ND1f VF.B{0:&,Q8*LlRƞbOAjgd?o\#Jbxsx 0XQ/2%Qu!:yK(Ř,tdM+KH舕JY"+ tL!ȋ:: E]Dn0Cn 5-j*ܟUu,~YAoW#pRj ^?ЌQzV nwIEϟÀBNԞEN pf`StpZFJ꾒|yhuڱQ;Np+_n@Lr^jcakj႖мbE@fak uƟ8(`ȋMev=1EH)A}hѐHlKQӃ%^R-Us q[Ax "'GH{%G.`1xQ,ÿ+/0vBG"t?4tzs7CTO to1݆x$#V֐4b =h8AEa8O:BNϋrp@*+YGlblH>`]^.a6TYo :ckv?%AVú@?*ÄL+deó8^Qev[*RnLQhb:ބXw*~+:.$5G 4XI$q*GF$o7$L]\]d &x`GcHB;B=HO1fuI'54 [oyPr6M*8m=oɈUTԺ[a3 LsHhJUMxD5^/vȿY=AmT3LԅrCe}`CxymNc-cy %rDž`FJxUOyn]]va%-:ͅ2xeMqa0|Ǚl-JX 5ɾ[l@x1;GĺR:޳PҒ S7mRF S!1)]JvCَ@z]cʄ-ApNFmt v9w_:=/ݩpU1ӈ $ RJ~?olZf!pA~`mnuٔfB{dRRqj!~4E3*L@H`)lHQ@^ˊq@^17lגٽ1q$y!AiBUzîTƺN;P'DVYV2VnM (l>B`НPiv)14ox=krfX8' #`0M J4StɁ_+11<LT,h>%ǗDM g+Ѱcd;!([_YXOD\>mDes6:w{>DS%Y?HЇutF!]CL!=p-^& 1% Q9Dv*K ~R/D9Kf[#}F ;B1јӫ,%?&-d%,HHʸKN}8ĝ 5#\$r:LsYyT6; wJaix&I=$aab$.&; Nr0w ӑң3dB;4y'?o!8hZCn$H[AgqYn}SasÂ=K̵gp*""?>pҒY?[B\*m) g(|p=kheڞoh9\(uY$*<ǻ2})ݖQwJe.o0BC F|5C#\ط'M"Š:G)d.[YM*4Ts .,` HeʦEu'fk|Ycp'mVi/`oq endstream endobj 1616 0 obj << /Length1 2063 /Length2 22954 /Length3 0 /Length 24229 /Filter /FlateDecode >> stream xڴyeP\۶5<8ݸ Bpww|w9c5]j "`S$ WP3903HbN@k0H r(9Xy(R@h0(]L=,je iBN֖V.r10'Z kbf vw E@ LV&v@ PPUH*i(0%Vsup;15u )zIPSWzoIPT'\AB]D]GY,7 ohoN` \\x-]]NvSvloO'/b\AotXύ̀ g IoT].r G+b啕&  db 0K 4@ @O ̿Noc7fru7yl30_ k;NADQFRBMA@ 7v@..y'". fߚTd.C>q7\NLԶ ; s?:0i]2B[g t0ӟB5>`3@v6q\\>406syk1A+  ɿMs(|Avs"LՒtS4Rdbomnv+[Ye\L^di|TfY}``a/[قnL7 DU%du4WͭAVN'[rpY޺WA`9LbTxL+qdlJ+ř-qLX^73P"e9b\ExWMBG&F@‚i;lVNTZKL 1@ǁO[}+E"~i˯XFl';LtvvH{pEi`pݝX[BSx 3"]A|gplC() S*$ ;h"=yvjI7S]GRȣw{l5%Vuԣ"%h~E+꟔5cO>fA} `}wz66T'DnoZGA$ m<}\kuErjSҿqBbGnl rLy-M & y*#K7'20#PܵRKj4|RYԘ'Qvo% epBD%CۜC1Z yCchD挸ܰ= DLt)k4_0@x9нَ&*K%K;0(8\ܓIudN"mS~fjznN6;tq.8ZG 7l_;E]ߎOYUs9V9ȑ Ry)^Qr}$NLV85ȕ>bt~`ɷv_rLÂADQ"\ k7 K-SIJw]AsKSPvߌgg{eu- C6eaVK*gcva+ aBH=0{p+osBZh;nYkD 8[Qd'A){ c>f# u0+ 9 :iB͝wP r\_]ʦXա*|%VֶFy&?Az~dFM:64#Őqى g8Ѣ[^h=N%c(Q Mkb;W^ O?  ; ZYY,c !\NU -"a8|@N;O٪xw!G,>q}3Q 47 h/@yS>q1,EI&U?jF- WY1AN|7IsN7RAY,?5oKW2{^Ͷz ֡Oq @kB )cKkO[| .F̽վѪ]mv-mNNUbUiY_i@LufXPMkYvxg!XhA#I¶lNH}(eEYR8b@eLrm6*Lɯ$R8Aҳ@Y0W0Av史$9M3婖JUusvi_b$i/l(ŞJϤ>I1IG3:  K:doH,dDޙơ:¥ۭwZ:v#_1Qdtk5>t99 ZIUZ&E=7 0N8-.lЄvDMݕ/JL,\F#2 S=ƶudђ ~,iw@>i !pxp%ɤdK+IgAv q, Q]rl:y*o.ւd#Gᥙٔ!4uvʦMo .B*w|naYs,G +0 ~zO)5Y15$L*cwsC_E u6/aW" >p$Ҵuf-#m~;8KF>Rh R#r"H:/xWj QgY^xe^:u`KksrgDȇ*{[N\O aHfKatKb 59pnt2Ъ[2x93 mOކQ6Շq [%A*h5oGq'1.11!A>TD %]sK8&>ۑ a!Iԕ~R Ҧэ:mmyヤF Wa凳}g.8E,W Qَ +'JЫO>n7z3W94E;)N󴔘hlV92\䢰PBVc:9H[qapE0WQ\t&ZTOE<=ɭwCe]\`  :b.@3}O_}wҟ$!_ ^5V9d_umH?MDhZsuA[tr[?>a#1TY̚9cUāk"h#ۗ3|0?i9OBqh~DwX%UOFtEX0U/Iɘ|z*YjAڗ<½~(Z@ sMխx"mЧޮRH+Y޿vNNXlR im42(Y# yA(%*O"c }>8HTzBΣn~@JQE_}Iɵb"c4OL|'ᦒ5_ta^{:Sg,!Ź+Vӭ܋GD~;;mwc0dRO gFk0.)9Iu;R8xʡ"d _v#QZR'ibx`qDTVm-Yʒ0Bk@OH W7kqAY^5 G4f 6ӟ5jpٰ<7$N(A)c9(**\\OJcQ{[l&B8eBb,2-!Ecy"ly>h) ֨,giҁI&X똊j4T&,JĬj¾!E?\mzmŞ&G/du6 pvԐ"SO:Q<*OD^N`u5xBy"Ff`0{-6ޮOt)] nIXgH?(1|E=[k]tRdW靬:AnyRTDȞ_+c >~;qsb(~P ܄#C*ͶL|R!xA˙&΅&Usk.1=xQu~bHmWp5{xKv'E)xP $@/NUgucwPUء]5#讶i}[i)r.v+U8ʷd; #JG?NǂgfhPKT6~L>eSW{Hx{x~M:rS𯆷ǟ0f!V MFTs[OFX@>__]UP}Uj+XP}4rt`dƋ -iJ-|")N lCL!ͦ qK1+aNc8=o4]ЧFƓmB6LW/1ѣ/qnL:}âj9zfT>qXP@CNi dayqRX=CWfjEf8&6w+JY6? Zu5ͻlX姤3W'hBqxey+Vw9Ģǝ%OvDDW1б (]@ɄK, RdMNIsC+^:q'\3Ul2 ЭRI8w7nDEL&~=.*hُ$pCl힗o2xx? 0smM&eQX{ 񻅌ƬsLg.XӽfkO}l)F hm|/rDq{#oQ|{}I[NB1B;G@6|rO6gCq2zjSl'F- &Y;qvA3b3@1>˾\ql"lϺ/s)8Ią=ݷ<(n>,0KtSvK?w5v{FŪE !䇎ӦW:fâi|dBAL=[c~B4I7J _R:1zW;t~:\@zzA ]@ZD_If-Yuf[~:i\YVABT'-A}"U8'8ZY~flo4rSba^Xmz6-KѕǧˡcIR7vo egsM4rdj<$gpeY;m:kUE{hҍ)4D}?&ݍ+[ wȝ{:!eN sjVι,.^h?l_0BIc{~}xkO՝mc[l ۻY>p @Z&kshM§/r3W2D| _Ië"Qշĵ}Ń-cPS10eH\N?p~קF;ЫF%3ÉEQXǞ`"}n85`>da9$`{V gL˝n) /¤:UvxgX6MhٽM=5PJ*?! [ZI?knHc cXϜnn+S$[Ui<%I 8*e1ˍ+b_ :V&7U 魗VQZ-s11 vQM#J3_\<oK"e%t]88/lxѐluGqB~wՎ-$I׎) 4RMt5a#4] &&{Xi>dM󔇿}KXC1"8v `$ 0=y,R:BhjFvgd$~g7l ruV=.S8Nӊx" yI,Mq4÷< oe=Qm'f^<樥`d0_n*!.qEFeW|ӭ?YY6VdZ,W O\x|/5^6va?<;$8M;Dä_/ IB$9 !ӝEJz>Gkr%<يTkh(MDlBba`3 x bj1}ƼYolUGfA cxd$&y` ՞QitiJyroCԸ#רxD,@fFv chJ" KOSlAM.p~t4/ 鏊EIMƍϜ.SF%FS. u3)OoC~Q u7_RK ;dqQQ[4]|KD;t{ghiw1muHұވ'%0ؽH`B5!p~G MdlReT5Nt;F8h6m!"yvN=ꣽ]fr)ÝRLN6KĀ|Q|7^2u2v')TV!= ^SOJcI2mט:+xJk$b Ϗ&') >>IIOttFvQmnOxZlR}(\pF0 9,4tΡpOnJ4l\TU^=]Ê !LJ%yD(YF=Gyh mŭ"HH *6KH0 ~g)m@|L|)"aJ.V?ORA4jջb%crn`ENZ|VQ,"ny@;f;qiӔ(Vکi=CDh*YGm*4Cזkl3b9{<0QgF]29z-Lv@fta*;ZD}@-BFep8A_iSa2]SGC1eYiZ?#Uj""Zzlm]K#>GSdx.yJEÖ˽JVRHTߵsX`drĴ/ 2O |gt-z!UT@]6*t/#BB|/ `8Ʀ̺?+ s8Q|Rd'cЗ咫a_2܀GGqѓ Z+"mg掜O~{gBH uߣbTHHzҵF0)#j#lnrqXY 2^JM .!, v4QT>? o5 nÈpןK;Y,TLH7 (' q\*y&?v2\\J>}ه+;WAJ:} 7S[n0\J>uJ]^G/Xj1ŏx_`6'l/0cCSTWc \ufiP84] w8G5dS 2ռ̨4d\}kH^DC8\uK,BpQkx b| OAf́U%]t6IڍwEw%kXh-<7>Za.i>$mޑ) WP)wj!Qy㪎_*/KYmm(#dxJ*r9]9P۰ c͖7øg_>I)C#E Y<\DhS㕍Ҁ Z*i ~,d2MӔweA"QqQVŪRϕr>9K J *;[c^. GK^krK:>tƃyfSSx,M)ΐW. -^oUd%QNO:GοL~P-}9K:ɑ' fK} }*M|H&7<;=Z4r9)זs4>,$w@cZG~Ӧ34ݖB{= u7PVI-uZ+nbb l5Ytx<#"ϴa66Cgٖpb!onTB˵뱨c*FZ(K { ~g$*)k֙ X"6EJvW_ s ɿg`zy,ff*I>).R͉NXFbpx"p`G)/B$nKfqâyId80$ן̀pgU"hȪ1 Q,%Rz7/D0CTx ox7E!w>_~.}/n?:QV?yzdîJqq߻,4;P(]^#)D@?M #=OWEy~`ћ@&а<75{믷/EX`:sT=p^EL=, -Px:7C^_s[9 ~_z5ug 4=5ֆR~Ҧ&|z05\ᷣ,@>_E[ywa'5Lv@_tCK9*)(J@[$cX*ř<j;Yur25(Q/ZW S:%"Ʌen,AA.SŬol;J\@L@%fWԜ𘻍liڬ/BG}Khj'렅ͽKc܎ 򗕚NW.-7t&Gֱ%=#~G u ӴZooxLd@OdH7 Fn JhR2&N8lۗ 1/3{nҸJI=ĊJ&Qn)J헗[?Ui惁n0]Tݗ&GO_o0WjGs嶛:i룷ZC)ҫ$HR')C1C=EjUTK z6n-ṱ q n>Ft.EVM}:qE74! _!(5#8tc>chx{O/q]D).*O\`D/6j_E 7!?H'V\&StYJ0ɠGcuv=#'.r EEg,9 ab_#T{=4;wS#am3;>P..vk";wnJ?Jd46e ^!LRrt(zd1Ňw"Yq(wP@Bxh}WjH `RcK쫣ZQxd#fOI)vﮗNM)$ZT* }ͳc]<jq[Yf|ƯE@F\yB=5,iOء'': /,<<{Xx :46?Wi dË*ݙQW8P|ucCH*Yc-OFˣBsVFkr' r:5w(kJa:5+wmL/|w:G@]&}k5/5jHeM`bH_R'8VpI+M$qIrV?yxȒRn`g'IՊqgr3+i,Ds*[)rd,ZZfD8\%gN+laSK܆y?]"[~DьTWM[ӵ)tjF ^}4;8=3:+=oCvQڐ,|Va:k3մ5F~B * 6ޞ],rJ?M_˵L+`5/2But+DSPoX/ъ!|Uhց`8n|mɟ2Q cFm l`'m[H5[?wL`k3KP\e~P#L{?R)IkTSSD@ עb>%YRhC~x=Bي6I:Lp}j[vВqľ6?;T!]TnHoҘ-DbwM@^2ٳ/S@jLUMdUHۤemvYT*AILhB~a2CG E(L.L+i.셕{ssۍx]6@ADA nM  $Tsr(^R_1d5tjq<_`ְcR|S_HGshtw2.4 o|^"± 0R(4PK!ky/97l_EOs?+5HI-H~ ut}b)4?\#2JzNQaP!^ tu jc h=>#`1NGҥ<yMӴHR6S|ϵdoW3TCNF-'*svGTi}i Ucߚ w+^CbA8#JE9)}e/W)Ӵ a#t1h "fZ g.1eM5`jaߏ$2@PQ}_B];ROuUI sN8PлNHYS%u} #%꛱/se+#v#IVSj4oo~>S =i{`;PKDb)E'GEQԨ&sH4QLNA)T$Fֵ5W,u٫`,(Ma<@% P+6B)tA:hKnov[G6f -i26qp+E{7cvi%q}ۅwۊ)ח,$//4D%ul_KpP-CFČ6eB:ϱ DNܺT jD](w2uDslh𬠝OJa"Be6&MׯbzU SNYr9/Y!ppH9V.թlj?V6up"\ zJE„>d8"xQd39Kfttjt^2қX"m6EZf)bOۧv`u#v.59X -2*eеUŭi7 dGIo~MeOI-?}^ FuݭvL{lC "~Lp T܃li\*VI:^-: (V\o_ؘXߐ_FF)[]6*7 qǔҿ) إiq'<"!|5ՎDzM_MyuhvqL|AIݍ6:[c* ߖcMQ qe@Z.)Gz1_Grx,$m# 2p$8z2u, s_iX $CWPP@`EK1>٩໒1g@= `0qrHco0L X GP,iv2F8 sAQ9@%F <[k@tY%viNNOhЭ~Ld *JImϠX};v =jlR>?$/m<>+kV?ېLlr"hK6¿>1?(fR-:9a܅q1x 5GDj 8sw<^PdC5!uЂ.z @hp(kprͭ{hHj;feL=&姥t,0q҄hprZfpCO9`:=.:DǎbxOcrʔgP?nqB?g}"(ι,ඕ}%RKՎu!&XjIGO( KuN( ︛`C>rĭ1'Tԗ[$ Cvc+ MPgk V:K@.۬Ý烃Hj4 UΛϲt6h#.JhFF|'njYx67(frYhyᎾaANiѧDzXq0)E_Y^"U[ RʯT/sd| DJEW{ϗGwn zQ^vLݰL_@t<ޤ*7HJNyWӦխmDh0V:ocι*VYCAiñk nTL&Ͷ7%'^;RN+{{{rΈg* ޶+~LA o^ý+.Kz $+ipkA=\XdnTw#AZTE::@%'tUa*_~.*q[fNA'D6XZ ӏƾPODUQ  #̂Qu*>w#po-ډo5YWْ.DhOIXMLMv}ڽwxό/(bj%K5.D4UhQkƷB*j=86+OA V؏-:| {ݼ%2\V$dj.y+WJōP Brq {,IXIԸ"Lp}WH94!4I9E(xm/慠{+5'R>5m$t6%'N7 ֟G5~a! HDy4~,%mx35E]5_* CJP%/"Efs}USo RGoQ,I)nZdt}=w% ЯOAȻB`р0&&yCQ6}Mt2 A;!>hI $MD=?v(-3\IJC[|.n"mwd 'y`L D5V2 ɹ/q^= )@8,ˮ̳JvwwrP9W TƴK8A oN .19VeOfh$ *ԥ`-t0~`cYI‡PH! }$F{-ǚ/ \:S ~e֍G){o䠽s!ujvR Վr8o`6.L>ffʌJS1it뱊[[?6`1/ H"'ut5l gYH3#G#R&y9 F^ @ej"wKS{ A?ٓ>]9A &[.!'79IjmTG)qQEޖ&rLZ ?+]0mGm; 6R紋H@Vnڤ Fm֢OOђt~$AGim'+uL`Tz jkYV1¤jE )1' Ħ1TC (x6t'8(*p7kcLT+p @w2;>S/: W|s i"ʓMoÁj ƣ^dNGKymҜHQ݀ep0@$0ho7TVxO9;9XIOt77vZ `~%)4 6O򅟞{\-Wڻ;8xq4EWsSK""Lѐ:R̢ہF6M~*qahW~a7A `mSAP͗lWq^;I; Z@H7f;]&Yͮ<fit`R5lV2p/ۃc(1|o:-(TApm.y"(ٲX,mTT[eO:6xv4.D9M9twL>HϣXPQ9)cp^رHX/ 9],dHs;ξE#`w>B"=Ji]+=سGӁSGwAy!m>?6$Wqnn;qN rb0U/W1p"d8n0|ilveq5=(J)rJU)Hh&&#֦T=]8FE.QEDA|dfU\iya9Kur14 05>ʒ%Y>n.fy VZnyA%KVu=gߵ,4~__?ڗ 99.5^wD$H*XӪ u!\C9k9gά5y0A4HЩyC3#$>GUkw-w 틄 ƾ>'po`. bJ]{U|17qgϢ̚{o/l5/I+sm[=;Zbq 7(7!YDwu[/`& K ,rijUD2HnAZPEE;cbƲͺ˴NZ >TK*j%p[=z y4Edt4S::<պ_q;&y_6bhl?(hLy0 엡>a% <<JXۮ:3 >ڪ7)\&!~UY"l .F=|&ig$N0QSֱSK?Jxb u:J&r*Φ5׮^L*<; F/!(Ջ?PyLMBoQ2ֈTK{/5Zx2N#ސ.~RE0t ];c`b%4}[uطIF&ᛣĿ[̖UIPu%1K8#"x]gՇs9:9#U+hjWkzgmkA/ 0 H":$*N_BdT\&8@q V-3{/|Mz|xݙ/.)"+G KC3A3Fd輥RGJ/ ,i֎'5D *5&Tߥ_ NGS5H_9Ɏ!)&7$[7V1+YX k ^V~!2`Lvm$Oi rUH2ޛeK!& Vŗtb z9**>YRl|:Jp5 [U;=P<899 vymI4Z0yƩ׿;KGT8+g " :>u ν/Np1(9{HAɪtj",)[kr4 }J"P0Fk&Liz$|GOӇ v~;I4o`DxRmNoHG.)6Juq3IwE^ʍ&E0 /8|'hc/=OE=P?k-l /|AXz ܴsU< eswQ__~hVǶ/'PYőqU y,KZ8LV?YWCLnJHaD핆 My, > !m]dh 2 .Hwm9ZY7$0ܯ}L\@}:$ |6ݰAT'<yw (4D⊪bi{q`Q)󛚢I8mo3|LJK}0F@4\D0+l I?Gh͑~mp5QV ]G72qj*VGaZۍsN'.S6q9y}Je6An/9!?\mmp@K`Hͬtj#d d%6kjNCp^eDߜ&Letfb1;ھcX0Hfڝ!sXNɿV6Ζ O([b_cbmKHڍJT~x3om5 endstream endobj 1618 0 obj << /Length1 2384 /Length2 24460 /Length3 0 /Length 25850 /Filter /FlateDecode >> stream xڴeT[5[pw ;w@p~w0kF P WP3waafP2rrX((Ĝ +{qc(\<)=Mi0(Aꞎ@_@`b[Xi\=,,Ac10[ kljbc072*0߄Vj{ `Pj4$TRJj4o\U=@\DQ]ԤHi߂𷻂 ,7S?;;@m 9213Z-mOlx{u"N% oe wvt[iFӛވi94.++쌭A@{c{7C1`hFw@ V9'ͿKux샭?M]\@.G̭lw}fVDe$%ϞA{F/Dy̜vېJ؛9ٽU>q7@ΞLgm7fLe2~!YAf 0di-f-~`nl2 x gW?XfVA,E7w-~ߪ_햚9z̀LO.IW[[Ec; RvvVe?ZߵR+:8Ehl2ؿ2 XXjPo}~/7;ކ`gK|#J~cw& M% y35I؛:Y[X98ƞofyj3_`bw]Asg`-qD . `b0IA,&?$d [L?AzTLAx@dvި0 {RƱc>L;OjOq%Nغ2ڝx[ +-lq`(M{ 7.HJAD20DePuxձwE,(8a} SZDs\;h3]Z}1 cKf鍢|n82H 9!o*@7 X3e?VCDt5c}n?0y7_=$42:t~տA$! !Wq%C5̃ꧧXBL WaUXt #>z'v-W0n^ynMdLtH-<b+ӇjR׶I\ɏʾvk+pWמ?K-zE(m9'@5Zz_,, kkݐuU+ꗄ)oGNkLD:4ZJu43`AX݋j&s#EƁų_'!ɚֳgː9Q;EhF"挣1> ѵZ׳yցQHI n%\cnM9FSy=D8BDJ(ۚ{Hz-E=Om4'=^JkۏU<5^e<]?w3@8>Qf{2^ Zn (6xc{8=VK@i5fq$ Sذ#ޡ}}?o\P˿G(3pJ_o} ZQ=:!UJ3@$,([bpD4T3 g/Kй8y:{dݶS4a)n𠽷x"V=7Ze vVF &6~ ʦ _ ?IѳWW[U+{tPn *ۑՉE0*9($ɌL[%qv"q]DemHZP RW zssb6k0 K.( ='KG+n]3ڻ+2v1[VIMWg ŗq/$-Oȭ]_+|LZVQcp:y1 9Ѹ9K>(҆i+ΔfFIBM/̜g Z&+VA>;98L|LJ_fT/ %]ţ8ѢcD@?;eIBbUG }ID!j#Dx[ɔF!P{rNx&5pȅww~t6arWf;*kdfpfr7:InM.w) •uNzMD6AOFC-P]6n `&R ze:8Z6ot\sKqIÙt|ef[vKKc<0T#p>˟T.r)7q)^)pHvC.9( !BɅCqTOߧ=AAeB\ܶL}FpYgjdX5+Ӿy>+fjf^ʅ V\b6ZM~LlK(8ɜg%XO$#l(wlџ0!6{Y4Ѵx Eޣ~PQ<t홗{–8 )_O[uT{FWZNIm4۹.Q,E`AB6ۛLqjص 7){#mZT9-~ws7ˢ\UBb]"u;V[CwݹN6MF4>owm7VfЃ176\aVmޒ*al0K!E%ЉZ+N,N齺U#Q aʚ|Dd̐鈝Ҫ228<]}j3`U v>*L{媂Z2 fLIDBixy-zat PXH`<3_8?RRbý.nY/JAvg$|Z!Y !bqZ=/ H} 6NH!A] =h6aúx ^go%.;W-CvWdsU=D.1F1mLVvIf\} uIK@|Hl08vJ"O%5?Dj| M`IHVzjݨlE˥r${UEu;[R~7tW,BLhM'f0G ǜЁ\Gr%>Dqby+D={CcW|30?n3𛹑S.䌭#ݥz6DHo2Gju ;Bwu- uyBK8i6Cx`4(ڨY 'GۿQFWdDvH } bo"r.-$fI{IS_D-,y^JYiqܦ뻢ןA4BQ_s^ܧ^&{=s1aJ9y8jܾ;y|)Ɍ035 na,#^!{bG _O&ϼ_YV0DR|??4j-8]H5'bKYgx($f:ߊRݘ~瀼YG7V9;g=g9'_3r!M}-*gASWtb cCN 4O nezcRp2򄩶_$# q'žIɿb ״F;n6W*%̚Ij:Vfj:j\pC$ Q{w&TqwaDrB TT~cn9E[~UCuIeF4VnE AavYyʘ{ɄE% pXcKdKy#W1/g/ L?KIV*kA*# 3[6l߃hl]FPwj]ge 7ܞuψ_̹Ͼ1N$'t܀B=892 V/-|o#H+nE1RW; #כ.!HT ʻiЕȸcI+bΎ4918cl'1bV)F*gwC(yr(MH uMw[&.h\5a'!g˒6zA Ή Þϔ|~dD<"&@'E9p]ËQ-/p2j='_4]R;{h^V΢Cki(e @PYtz<*I.aJE9 E d)U>4,&-HOC-P[KxznaAQC겛M='~(Njh#g}!P> Ny翞2;|s2:ׂ-@@Z Q-b|}m nStzғUifZ-"?!:뽄P+$U ՚C%jzΔ `RC`C_PAA=,"\n:- {q1[$^랴iL?ŕJu"!yB =4GN ~ ɑ!O:hd%"axOS_Bvz14e?fҫU!- ޑv>%Ra6uzwG" x4z0{]LK`:7^o:Jůn,l100ϕ%Ot#/S s_eK.ٱvGbx?><]D?5w("l5>L aW\|Mg_t̸gyQa4%_7f B]i5 vՂ6F1Mirh-PN*R% K~$w55reoJ&Gtؓ 7|6.GH%]ҊO[O;RJxqpI$5弻rə?-K/WqKm,%PsUS#NT{fcv(. >+Oa5𮬉#%="c"Bn:k44/a|lG^ GruVOs.BjDk >(NzӢ@ :T#@(Od`t ~+*{̰4= \8quX5ٰlHjQގկ>p~T%u8S;0AzYR'ݼ:nZ:hXr⩜?3 lg}~ 碻k%iјUhA \gqBbZU|j pS>>~yO*`^#XUOA䓔5\7`ư+ jtOC $?0eoI 0g" 9EXhx-Jcb\(C\Bw{ Fd)qvS#kix9a`e58l7$}ΫG烷}F }].L#Z:6D4F9`dvܙZE#"A{],{̭!+j&J8BnJx-Vϯ/D`9  [&VLD w7mT&]sS R'qM M]FlWϭ4YWvQ)cO`,e L a;=2Gb!XW,> Κ,HsQ@#b=Td[˵UTgdR#N_ÌHcՈeh}ۊq[ 3Y-`LNJZ0P;+Sn'T#7[ѭѾm zFnuiZ(Eskٌ81j.VbK`yGqU!J}M-p@)uCU'IopL[l?dEW ' 6D|xwOt"!/Q1A2srŭjދ!G3oV@SLgUFǼ$=Q.ҙNbR(K%| ޭE0yWx5jJY NB𶙗Jdvi+6d^sJ N?~eɍUOeK uyݕSahVGҧ2 #%Gm[+[DJP2s̍E7M/qLMY8N-jHsl2׏<`QZ~G|ki%TrHFS҅S1"4> u;\1DW gT'UoքV=ò C9|Ma>7BkEbJcpރ`2&x.zb%1%&Kոi}U<a(XC5/󗽀 |S@$L@HybQ 8PK YM?{F+Od?$[~xsr37mIo'ȑg^\[1DJz ;6)}*"EQSoLɽjq>mYkpe<ݚ՜ˉخuP۸׾YD0;jtaXi7<@_g Q&[s;ʢ-+&hsBIm݁|Z 3psڒ _(e4"Ӫ߲h{l?A(E@޻SwV'0v^qS +7Gu*'%۰-};\T'( ೱͭI!s!$k %=w/j':fn\_E>ךB+ilK}R&H=|U*_))_L{%_ZxX-+.5}WI=Rqimx>m;fHSt AJ#5!bۙXnfіzY_hiϮvlQt1uidA?y?-܋@z2>慃~A#A Ox|L=+@d74AoM=C N|:%q[Հ˺Z5 ㍵9^#g"sq2&2P&@=P\5ws>+'5QJ 5 )7'ǷЮbt`}[Vj婊EnynS_$D4:C ĝ0!{` apou?JJQc+ TJ@סw{k|\E&~aMq==7RS.jIP &EcŠ;lݷfsZDE՞NFtK \=/)x›kl;py}MFJZDTZ׆Y*qí* V#~u:̻VpnH! #^E~~ U%pRR2ćE $OhJ/#Ac,(wꞚ^h`n5!ד4c/T 'A)]}4m*18'u㢿1bVYָ‡/+;Dy"2Z0 4sܑ'3rѫ }k6%xOZfϣA*<=4-UI%-- C–R?g/&WxlI*RE)hy!ґ|- ?v3a;-GmkuuzZċ{$[9SLmIoic(Nc4.Qlm 5^]j=;tˁN-%wg՚ }l** 7x B-(ode";BZ]"dGzO8ɯLcx?g THRC^|*3=?O8CoU֡JΑ.ZzBEЋvǾWⰄ669w6ɋh5ke !o`ʅ\C|(5> D?見MPx{(Dpt?}$<79DQT*#ǯ9%)Nm_*$P ~&+z,i J.<YV3ڽSq@(_k>wK_ΐrZ״$0L̆=x_c-j{tٗ´)Sc6>Htyk(_ Lцnmo= LVa#JA~T/jB(=Ϲ~†%_!j.-p(ekUSibu~᪜gvP$۩I]}'\41wtsm 4 &-cn}kSt+NZ 1L+]R=MxIՅKzW줛_G,0f4"|֝Oz| -tOw8dĖHE.M\MJ-.y7k^ȿB ׵'Sppn2^ȯǯK_!:3z&*3|(ZQ/D H 0O\2OFu)65"ۿYd0aՓ@IY gg챰we 1_bƾMќ3SQ?A7mMs^8FB[< Om6/`wfJ%:k{#²At/ <:Lj"EIA]x;@Ս _M |)+boR&s(iGn4yY;kfOYa{ro?.y_XˬͯH)3;j<)vYVAe _`?H]IggYƕNco9Qp:P, #{˺Kmri&z]jdrO7KaDϱxaCc)p.+:B/8G*4tOYX?2]!:FvRF9u/Ԯ71ehDGn}p^vxw3xy$DlcX>15T'}s^GĀ av ic"LmvRX*'upoe02Tu䱣oiCHu-uVh oAB4~›:n¡?ܮ6s_J˜riK;a1[Pc`ܭrDonn0+iڙ/@ĉΰK 6):`4 sঁ@ i{A:2gJ#KKIdq7GXRqϞ(۔XEr ܳ2.0=PeRE46yZ L/]}R0z{9y%"@OTRW-FQiE%z1XDLcG 5wEx'#ɣqdǨkVoqZb%> (ONc!I1dI4DCY{*N|9'1'abb JdJt~ӢHҲ"Q]2HSF<_|%W|01$D MhCYhb-خ%2aに_}LK@%Bz9E޼h-48\J s-zmMqMmƜh!P$ϻoĦ0X[.xTOe^P< a"[p}K,e jDKڵF ?bo[)wNLÓ.ɢM۪"OW -3Dܞ|T`I&d# ҵfhYAПwpbOx3 |bȳ5a[YZ\4&-1NlX.:oV Ѹ>Nit7"  /GĈL)+#k৺Zm= ~U|`dvHMN}NQ!~@ڣ \wU\IYn\'fCOK{F>ti=_9cKz ڧZ0hW,ps041:eim&2^kST4J B349!jiL^ϸ*ͪz5T&M1H34*Dc0%[=A䏐0Ɛqg5p<_lg`s:1zqIKm~m}^Q@~LY{ns쓊>>W_qWURRτ~pˀ̐b-r9G>q`c3:"9c;9a35OpO4-6>X]|/E^+G9ZҢudA@R/ǛМոGbc@\ɷu ш't1,򁉝?QԺВm %! :t8x0ta?_|GSKCPd^.[ OD-ԉ3֫Z,Ȼ?cהL\&/G!c)vW *`X략g}jw솹0Հ\{mw|=ÅAXeʺɛnl<4DYANT0ಱɲ^SƒZJɠYZuO8[*oqY7-Ҏ+?`D.5,GSek"E fҁu+WJ(d][}ikU׆?xxg6TYF 抽L BB{>GQkaͽ3ڮ_HlU& 4bn8Wbn'nZ ,8 DK-7Z)nW;s'Z߱^48a) HÈ!{&d9i'ccP4֤O^> ǏϤ\>o<2 n-{VxsK~I踳K{q0DIMN/aD+"4( Dx^r#z>7!;/)::`Bn'5fk~rf cZ̛TL$O1m?u\b];:nAݙ>ZOiq"j3zhﴻϝ7RAbB^ٹޅ-+`i-dNnxjy(g=/ݭ߾%ƠEF(jD@pr|0u=?qcII46Ny&/TKuxɓ iOUpNZΨ_)i4=ڀBo+JH"r(ԒSq?-$OZcm}[n! hFP*-_gZ6oJ;"|ߞ&{ AuX%Eړoj59?/ã <]4|s!#8'$4d;Z6~xtL˘կr U31`ضjN#fq6WyU,X({8xѵwrVLӄZ`fhNOni)~AQ]ey \R%T*AÌQ/q ([qC &.pށ5~]oH6&:`=hc̛yZCWB8該׫Sⲏ&F8@=ch ~TH<-+A-~~xt.lQ[$> =m!;a gJ$<v6KDvlK C5]8=VӁqPHLj m_>~;?b[a I"vP{{Li)0#8|pjsUc#B˕9wf T4oX%61]|'!+-bv?`ÇkMBy \P@Uinwu;8wp>ڷܻ7׼>35e_0mLbm;֣KOx!xrO>(q w"K7r|I776qzgj=K/HROC@ǃ#XyM.HM磨le'X}Gݻ~~є>t\j왼\xwarTnK>7w%6NrN-Maӧ?B|r^M=- z:#B$sN_D:2WS?0iTJDcnjp@NJκ#bqف\!h%: \i=/!+Iq(z=35! P# /~&~2^dF4@wkUsFEQ !t$6%tR N/~$IDWDŏS;r _:'2F7 52t'nCj}Vm%#aj*/][S~@IO Ը, Pnr63Ҭ^V`&ۏYYͺKIs=|Sd2=N (aImؤ-m,p8I8 0g!cV=eZ%t *Z.jFS@'Y0IV`?NnUs|h^pB:]?]S۸TĿ6Ȁluioy;T%ɐibL+ Yϩj'?%? B ,kA9Սs\c Ž@Mм~9e_ z-~\uطIsZ>Ejq~fr {}k[hyk tA)jo ]]dy*?GޅI4)\(; 9!)'!50j EFK Ȃ*$3{/.1 `*qJlVHxfɔWə㰳L;  i~~`^*6m!F;7q P8l܏p v.Mj+ڷU_IaF%Wvh{풭('.lg>ie75",x[= gYȂ}yfBd$TLap8"bL̨'1zKvǥrWTh$zE*W͊:SlW'OAROgN}`bua$C\ӷ?iQ8unXj2~i=ꄦ BWKUЕAU:Q=sƇ#V< ]*H,Tn-Tˍgӧ-e$ia^15 )x|¡ :)E~v+.iqВáMn,,%c+pmz 3r^DYWAHLr0-3,#mh4zBU/,vx3pA(Ϻߍ*{frs]mX9vx&2O,;==wJE3_K̐MЃ$#OK nV0ʧ?syppknv-_TϛpgF[#6Cnx^V:¹AyQ*#CKqIFZγQ9}t,Bz`ߺc|&z$>L]v%fT7TV,퍣>&uPZo1W+]okh>'cUA0X@^ uƇ|8;>QC/" .kټi T/bdo3 FiUݬុ6NRh]0?K ͻ(!a)dkYB˺ޟȧR-rQLfc*=~1_Fv8s :4VB}YD"VNvCƕrM'3BWnF>{/- \F2H}L_^滩'CBF fjjg`֢u؎+/ka8k;I eKS hD:o(k~Z.G$3LNA)eGQ,ܝH1b""@*fg~K,vt(TuWd] .V o'p B"%5PgP' $:|FJNJvOc":;2=i,Lb:t~#`~z~%M)ODbJ辍% f`G,[犴5R2,SJZZX Cm(_βamRlS+"16r;N5ۂŞC|e'E;tyɚϓg%sA8M)?6>#vN]d *JZPAz_EЫy=pW5%qBjAƷuݧl}ڝFRfaA/61a\ tvCVĺ l*~-2K,Fvy4T-Ս/USnڏTym&OŔaa+ v3i* mM- M(tWB6C*&2ja`޾ T4̖١kOOF&GiݼZ;D0,EP׻jJ'-4l$Df} ayBR \RW͚_ Tgؼ`%a^֊,R4P̖]}t-HgZ-  QC '@WXmx? \uz'3)Npm5ӟLGfUIZD%Ov'= W%5[wuP6ELA K/C~m W{8yfvjҏ}6(};jZG^|؎Y-iyUxV1KNJPτ(FӓM%CLY6O.-X߉ihv_Khf큨I;K]<}3/0XNygY>-Qe&Hl*Da)fF&~Tojbܘ)c& KoE ~g {21Q"J,7g?bo5kyE26``*4  b'j`qiWS ǞČ;&4mCt!#" W Wch(r*iT!%wL\M[/| {XbNP%Ա*;*RЭ=K $@4yKic3J!sx̦ R@mĎb<4}Q-:qm!@9f/l~j# o''R9[+slv cenIq:"h}͈ PjdUܱ~ Hǘw(.'`H0B}RqNQZUl}-7irv ɞnwn6ԏ`4];wop6Ln:xΦhi~]ˬ A# :E\"Wj6aڑCGޫn; 0<^~&k򐁧B'9ŋJ݆PP QP\Y'7Ք-">p}P2Pn{ُw[ )h,zZAUߌKY$ QZBu*Lo{k'ryV>~3LNZ.aJ>QH`?@SjGB}n@v|^Le4jsac^R*)AdvF Y`z$%-VTPk<;l*avlJ?fVC(k>,Axp [!m 3w# :l6߉G 8}Ugjok9nfޯ2Lv,ao'oM( VٞݔֲaY혴Pn Ak~1E''ЌfSH*nsw1lx$ W쑛=RJm!4HQdwgsxӦ'|-2@|*DxoMĿx^Io(}$=#A;<Y0c-uV|24l]s-rl#ы`c2?nsؠ&>IbL8 /+/9Kϙ!?\huSt2Sz-o3Ԕվ!R]d'dMpDj'qȓo^b ,~#R)K>$-giDV0%KlFN2PPWwV)[ZuvI\xdfqZ*Xra-~ޑd8ొKD& `LOe蔮3w;7cqDAG fʤ͠7E/e쐗eQԌ_h7PEd 38wD6d%n g61$98lPk{멟zgzs`4:eE-{d.Het`ctF=.M| A)~@RY息y ЭRB4/*$7ĩ+3X9޸DLIsґuh I6/@3P%'$ݯi];rQu.{[e1Xk tOs ҃NL|[liu+VL?S*61P~-ۏ8'<Ґt.hV+/Y(zU<1*b kks oǧ&W(w 'KO^#X7bn%/@?BˆQ!Mє?BCdgfp|R^Aաm;N:! {U_d3Y1r d$` 6bw͛p'j9':߯f %=VJ6`&l=zM/0)' m6@pǺ8Z!_YۗHlWKvheo䠽s!ujvR LF0y Ae}'.= p8r>‹1*tKg;>xǟa]a63=FA(N-crOw'AiKI JQ8?wɩiXɦſ7w] Fe+`lc-^e+>#:v,ƻv@R3%gv6jc^ 3xv%o6cb:SBb ⭿n tH ;XQȖYث늤ht&FJڹ4;(=%t55T![H\yOeb[͞$3 P5@tfۥt?W̅s8r[VtWaÍ'0B_gZFX}{_Q&4]orh!gӁJR>Ih2n2:'>GljD_9*kmX4.`w/e /m͂?ƾ/L *6T#K|pE_ѕ`Af@6nOS!0ex8ӷ\Ð .\./B;)B0;NܩXkέ,`-2"^ValӇ5 KgeHuMghT#`l&(i{Aš&TSQe!nM/ u-,mh)? MK~[/Hłs`\Tn:76ƤV ~_ϣZs7'67a52.vd.+*ޯG,2S|ٞ#- \5|Z[{!өu]kUh^D|n5ÊdL.X4!Jh H"1#'_}ȏU/,9 N{MKe`<8 H!׆~ =A. "ȇA';" 84\2ne[YZb|L"%Sٿp]ocam &bпCڀ7N k@Y6*w1D`Q%q̱痎~W77$4"WfڥUoeyl\A4⍎̈dG]Kv u;ۭ8' <1 p ^%j(h"tUX?"5ۊu H4 #iZr3!ƫ*ܬm4jɢZ>,s!uΔu ?[0082şyF:{[S۶VF 7 c}iTpİD|d-龛bP 9>Sw4H4Ͼze.b&u/Z%mLXuJۃUMKo?"{ch[6e0I]7$"<cTL.D.1`vQhXp#WD3u.*?"&hk3i!Vtz?Y ,P_[/ZH JCϠN >J > stream xڭweT\ђ5Ip hiݝ @pA$G͛53?ZTٵv}Uԙ, f@iPٛ8!v#25 %M@~6 4'5@M=,BftY4//@;= }oTPk dH()d42@0bf2(́`g =`[% 08;A/ۀ@?.F9LЗ@!%/!'KL u6w9@/YU$jm @,_"- .J{yBMA`g 9;ؙz~sp [# hedatv~yӝ /՛:8y @Pg%32KNsKn+Ϡȁ-!6-\s:mݟ!ajy,,JKJLe;$?D9.vvJ/ r8/dD{6 ;9KV/R2r-T@PskK5@';6ظͧa 2i:7_l_˛EJJOSVߦT^Tjx8:>@,sC\bb0q6V'/ۿLN wKѬlK_+C,̉:l2Zi6wqrzQi)C͑W!6Y I7C!%EUn- )V/ {#=vݩ}({ 06hyehG{-(~f۞PU3O2xvKOZMu<.] fM M `\.8$jS<ߔcduSNR$y?}=jψ0K[{^ZXD}.c11Bsm&?QJ-> ϐ>`(R"Z$2G<-?girSKcZꞃ=<|D4f~?~cEڥAB ZkrV޵{~o;~\ e93-*6D颎{󲦌hY"MEFp;oa)jWd Rk@e B0G(tC7,E6'm5ܫ"#mr+,҄Sͣx쯬V~'GFu3t3c1_6!d(`,6]t涺,o s3] ~)-KԨ \1[)/pn>_-Ī]psw*3%nƦourN̈G'Mu)(f`$N)De K2U;vs. 4cL'^Pu%Ƽ}Ûr{=JXJԵ7q}֔-@}SY m dâɩ-`卞+D]㨞ϦNh)NKsmF~H`,EwJu|k[%V%vOlO^UkFz7fԙ18 1edp@pTp|nѩ)鈉H4Mz%'$%#)  ؾ30;M]Rԑh:x[96۱iàǮ/[w)ɼ(FܑD3M77Z]] ?*RӈrN ٷ%=%hɛ%$BMJ~ 6O$Li{v旁]a<+O]*V>T ۾IZ_Z闶_OLW.[KXN9j+3YjPk) 9,71H>KGEV[s @1u:˙p8[hW }BllEӧA?k#ԃ2,S/E{łസe.UQĬ&0n~j>E+-Z #vLX*fdg$5gR6 c>QK|<)Ch,Owb1@]ί){I]su5%%jRwX$O<ƺͺom"B6\+X4auI?ffh-(6E ĈHm:.e3D:~{@̴Uf]*\62_fB,0hGM59*Ь]{B$I|րk]BB Afa FUj`R8DzTiWP0b*B2Txn. }M4]ѻ*3xu⹣q<X&CT%j$̄V>ӽ#KZ!nenyg6o;Zj7!FP34 [2[b>tj}%j={3)ǖnnH{tUů*vN+ # dĪU mR4꨹" q[e}L.m"Ӵ0ۨL쪀|#]AF2>ٰ% \B.;6UL m4"Uf9 5%^S{oֹ4"VGDU@Ĕ[úoC.ơrV|wnk. x>h؁+>pEOuM< pJõ)WZcdXg[wkvEKVL @ߛ_Qw9R Ѹ4m<0N nb)F̛W&Umjb0IT>WAҾ0B>-׵YzDK:DTCÍ|#?ޞA=ݞ%Y<ši/g)!$7ࢾ\i'[rn^a( r#49N.ѽ~^}'QJNjšʞt4{[^3qϜޓcrnAn) :2FdcC$5ny·RYlLX(uP|Pc+)o"b`7J+?be }ԍ6o4!>~Mσ.g؂AVl/*p.JT U=<3?O V=A'hϷ 7KRf|rOE9*9F'W'85u۬ﴜucrvAӔP#W'pQs61^GkB#7rP+f]0Q8 q }{CGwu7OxL[gb̌)!G#$ɆUKs_v s~'W~{;j[;a79aOv(UƓZ {j)%wVR6>f+)oP [2φq';:V8(! HT? Phac퍺ps- # CiRO@yzz Q<~.WL6N~e ͆bʣ7VJv""r7$S |VxERq4__zH7&/6R#:DF-K%k]@tuc(bqG^?uR;?-\U8YUTuDgMzC[lm夏ABd?-UrQ9LW`Nl.7SPj kuul1Arݣ*!p6C~ө8N{mkYS(ŞP[^ʸ>я"_e(+MMޢ2rX,s~FɷF+}eRl3'pєO+1P<2qc7U5Qzx}y jn'mNk1RϷ& &-3A#7hﰏPaP0\Z*W/;\^3=3G<:$3{TyɁ:u!1M8V?IiHaV,sĊwƣA'/8̎{B5v>7g˩7i*cFq/7 Gv}m>)kݸpAqFf~B6h/}*GFqgY{-/[ȓHNM9ms{B/d;ۮI"SǢ1{&ϚΤJMƖAn<|=qGJNInh7ջv?H)\JIC' kyA;]=_pօ-F\hn)]Sy}D-8n?Kr͓u0Fn?sƒ-4 e ^Xn858~fZG=1{\榶^ Y[CF8^$:,c'`ʚiOR^vzVOBBM9( wc˱I EՏP`8j kUbTl Yc?\[ #!€Ƙ 4XJkf=pGmdhͩG) h[>|""OI uG=Ef)7*+`6 f.v6>HŒwxˤd3AAQ fALU_u'v1 -}sJW⪸@]f0VGV}2L^z7`D/'F!l;͈j0XGM11T%/Lĺ_J1LTZ_{1 rGwJX9H>((<`.q"Sܭ ICѥp\Z18Z>]GR]-g &Z0y[?A=M=!"Ju'K'}05_ fU:,!?(G.ǗfT3:quD%bfmx'&t؟EN˟'Uz5 t5~K](;xhvGTn\1?bIYK4r]EZZ%k70H5 Ꭿ.ևuGV.ַU fZzRN[AMv"+0pdx ~dLMwQa7#R5pWJLkU8{Jc{jL ws~A*De95M*ʯ"*ܤp z$^( wb).G"Ԣ- įKK;<;4" rK!++R$Qp9Ri +0"ϷpQ5?Vh"2Bӎnޟ^<*5jLh]ƽ'X:ō.s }W_O.t4\ȹ:H|KeL_ݰ_aԃC '4GRLj21àfr qP\/I#Úl7Ρy:~yEϵ#0uScY2:J7E3ީ;| I?{M52!%YNސЮd9@eAbc^ Bp5Og|N<|ӯ2Ghم#W5¨\T$ϗއ[&-ʦD/?(9yETNiߓ4lQ#8s5&ߓ{9!Orez[9g9$ #kď`$lVݸHܠx _S'WuUu5߇0^oV sԊZGkMcݮ +7[6advOXmZy:ea*&D jqф}ܛғZbT! &ڬcNѬ$h6 ~p|x7F2,XQq{ N{lЉ?2Dqae"Uy7MCG5JQ(ꗺDz\Ix?@شD߼ 0Ei%en6YsJߣ-.jLk]|߀׮bͦ=9_-lz&`>h*d 8[(.iN7}^A_-S6I{ PbGX!Tɫ ͌J. 9/(W )bL;+͘CKXB8`Q *IϛZ྇!wmDhMzQ~L3;=!}-utyK h cM߫^-9KL}k2E&'E7mRLޓ 'Q!u֚;I57CoR e46G}UZ*2q3n%P_=kw ^)*ھqS㜴\Ữ՛!+oq e~6.|[ K>:S]G/V=JLwqT[lUCHa&N^٨h“Ik#99,*y,zUX306OT%^/*)!MSpЕ Q%fJF{lr;bgn'O.h9<ć_{:#>e D-'ʲ:JylkZzKi11(. G`b!.\PrX-Ԉ?ELu 9I̙e~!8H[D<* cUڲ#ȁ%V/u3ԢTڸ#B ȫgIQGjkL6!F@2٩Kwۡ4)%́Guo'}l[7JWKҲP mB i"mojk;AS6.#d2^_~ a*qVj C- 4rѹԴ.=>0![ݫnQX6鴘n==s!r[îrT6eZkQ~:ѝo7K#Iw~@C$Cq7af-|,'mm 4c8M]7*Ѿ$KN 8x{&jҨIpj,! ,8>g% P]kdTIi8A1Ҫ- !c ۅ'$\yKcX˷ť(?< %fYJ"8,].ט7^3u}gFX:'ܿ7khujenB R[TK- 2f| endstream endobj 1622 0 obj << /Length1 1144 /Length2 7839 /Length3 0 /Length 8605 /Filter /FlateDecode >> stream xuwUX\ٺ-([PP 8݃%X K>{ݽÚs_XREE $cuaag vfP5+6E@@EN S=Tװv(:8vOe W@ lgP ` %eoj:8@ 59Y`RgH;x:] joFfbR g@pA"! ^#VTGk66KS l })Tj!io33;_dlP-P?[pu`ӄ]ArRY\@ ?r<̭Hd6Zz;;,M! _%l8|_?w( dr  ˿.N`>dx2|P {(p%S;MU^]\\韽;JBE E~n*"߇堖 ؿw99aSIl0m 7//<gWjҹ3@GS 7C< )l.{L`gBbn15~q {g,5 rv~qߟjPs{ 0 ?S'NN/^ko ~),ڛ ԇՊNrhfėvé4yUj.4E_N$܁y_=*Vhu\߃Df]!R3nE\J Kl!4 ƈZ3VgU.NbP:]Rj_|9{>DŽko͢.s+ E4$$wV" w6疺 8Ow/$SHK~4kN!?~+r{ټs@i|n;fǫ*X l }xv7)Ey[yXMp:}'[[K RC7y>>_ҩ[j0Gm:jEY]jYRp6A8CDNAmoGW֊0՛٥sc?TT$u/^ܡ>=.ġz|hi=5[UF$?&powxz-(^dlھXqJBuB`\bH3Z 4Iץo'z}kd9ҚPIX$ CG1Ĝگ\oR*f۪8؏?yQ7]#-c j7#Xa~[&%kxhU8D- wj-эfl)*HEq2AB(7 1|6yPt; Wy훡@-vlT =݌q++K-3,^ʇe e"?6}m_AxO*F祿O 8X XLCnY:,í+uˇz dѦ[j#:c`|]ة솀x++)-qo&>duHI/hO#>:히|2cH=^z}j'LgZ؇`x[̏<nFL˰rG|nR9|!ٺPؐLpXl7F#*ڬb!q9MʆQa垈$!4!e OO3JᏔġәgWW|Zu"M/Bzʈ Z=s|]ٜkxwIxDWnX,lUņ]h0? u"*4ȼ `1 O΋tgiLqʣzj*!9_/0Vp7.;Lob>Ӫ<ۯNl)B eJ51HCu-5uU׾';hh #Eck\Z/&~:.ɉw$#RPW-(,z%quoh t#:dt"zp{d2W4_GWx2;:?4X:d͔j{Ї W|\leҬHPC@. 1:!pv%LBAfe0,5hPuy.>av( Y)1 dF8^r`(w:dbx;:SU or>xGc,LIRb,f&JoRDߏ|) zBaB+>w.3 UA;+H,6cXA6|$4c*}3o١O cU#dGy*֫ΒADh1sn-ع>OpK藯y}gԹh,aM^NRRʥBS (Q6ΫW#4Jpg}K V{EQ֘-I~>n[4a fk[Q϶1D4@letI\Yg8^rw.bG'9uI5<8ʙ A@2Wm5|brE}xo5m tNYU* īB'pٗ2`H޸tm*&8y$r3qv)Aj2 '7@rEko *<) Kqܪy'}s%ui3+-[|PtLFFc`ܻ^y %<IaǰF gFX 0W78~Au!U{L<7YI|z85z8`PP^Z'x ۴&A<'/gd0_lnZGD{#h?h.LxpH1.w[e:\u5ᰚ.WZ8Lb!s,oC`ǻzX鷅9qDϧ=' ;?1ȼUs?=_Ֆ':W(SY Rf]Y2\6Ħ`Q?=SL]*ԝqΡ93 *IRrh aF@ǠAb`W+RqYD<)c/zaw6 ]j7@f+z@̡2G7QrR=úܟCAf58gUjazw_ BX^%d8ih0db%-1tiINj2 ]%W\mB8{gh&vxV$mDq݄?@^!;ƕX>Xږxw0|Pl+``=%9M}Cd|ubVDOSM%;YE>pwmcфt.!=7vmu %&Rw6]Xn ^ܼ͈+,i۰ XKMǥְL-`Hͧ]$*ڵAuHq*a-IlT mU~ cx:یosIi^Yԓ'WE&7c)AwӹMjTTIdcTh 96_'7UxI[2c/bٔT[4$THH(Bbx}{cqyJi6WױL4+5 }& W=q߰V13)f+9#w#+z#ds\(f6G9Iɴ _ uu,BUWY,tF^)~+"p ?W${n;W9<CkNKXe,:wO5橐pOKi~p<͏V850Ie\L|gj+OglxD{W)A_*#?yzZTth}OIyf53sǗ`Fl{MGc9*&,4ݬDjm$LJIo+ؽ dȖF:rҤaHһM{+# l&%HZ;6Mz^_R##^~.r.ѦH 7=mzfc/}Ss]ԠPyQY8Dfs6x \t< @ U-*}*Dv4R]2Uj6= F'#.#nIGmt/=Lg4=]?]>v5pSJx=V}֊Uki۶M8g?54heƽMf#LTGXbdOWn #SYRJrb`, & ZJm}qX@ؽhؾq"^!f68FC|RB<"\5X)ԁ'lbs~9yWX<(jcd!HuHpZF~d+֖#U64O3=rG 6Q߆hҩ܀Xͱ5<ِ؞b* !,f;<üldCgqq\bem;MJIos^9%k+Azb:0]|-VPL 1 " SI&NS ۪h@=O"Zw-rvGnn(MB )i5NMбGA'Lsӓ:+FҾ_|Z Z~(JD'kxiœQfw/íݩ8]#B?0 P]OG7yЎO2 ֯}5Cw[YJvHDs4EK~iy"@d@ҭKG3^4PpO!/U$mXo8=j \H7JgXt:p'<~d<%{oɠZjy{{]M*'8y,AxEl['++Gi ӂi S}%j(e:o;sWdyZy8x\;|?X یD"~n'.Ygi%o)~,]'}Et`䒴 */%jl_K'u1ICf/R֏~RUl9ƍ|E %ag1`BzoAy(O6 Σ,X M_ JˑTm#;:. \Z}eCN_Ygĵ]л`փ Fr d>V*O|ŒJ 9 Q'WѝkZMtȜd9´jPCŠyj>Tx6Tb~IUڽ]>5b&ܺѲW0+\o;v؁q{~m@NTԒz,`6є N"UFVqTr ,y%mvz EHz+ӌ Du8绖 r n3ʗ5\TwT3:wyȻ} eRլ?'%$en>-EիK\Bp,s'$@Wva Z 滗#` =, ?6FQgG#;mH;2챽~69~秙 /')2,wI_jo/ 12[Yfb|֞RiAgaf%)l/jW{7Gk&.( 9cum1 Aoh#Eͻ~ qMJI}&1}6U)>E)KmfXP8bJh $jŽǭSKsKl9Lp/H#x|z:Y? _&EW-.KF4E2[pأNd[[l5 fͯܓ9 I!{7n\ۼ;p&D;C&ow֬MdHiE\f2K2o?"#毨NY14/-=ԥ-qqPSZ}Ge [LzB(6jE iҴNSMC H/\N~c~V[CuӹZУ+IpS(v#Wl.(g|5zI6oxae!|`a0z+S5my|T@y9M.`?"-7.<\/8D*@+H >(Ys >H/"i+O&xH޴ײTrW~49^Cax3ƆB_=4.dqn5t'Ow;Ns/ klX©OG^KK-90s%|]GL$EÙ'e梋z-hݵRIzF2|m_14]Z NQs\++ 9S$Oy|N?Do.ظ'cIڥn<˃ ) vkV]miE_鎽T`&!7d?YTZ!'elC!`W۶bp:˛.u7#'qI [xԉ؏f|BJ$ҭT-O9 ?kdC,x`Uلi:6.#݁,+ز,R^!3_I*1=5AFƭw nOLܦ3k2s1=.dgI(I"Wbz k!Qgm&7k{ڶ8)aqs"seGw7IO5ꫮ=R< WN1#lJ,?1EBX]K$bH)?*%0QBx77>cӞ8 ǽd)uBDI4 ׾&xBgqpkٲwA1ɽSaKdLk[$/h"> stream xڽ[n}W1Bp'@I8 0RߌfY;_ӋG4DZ4+M4UUi-N`-&Z|4J\  \IbV٢^{|Li =nU_ͱG?YJrXrxWO3:tEOQ"rً[o9w BbKNtjz=YԳiyZ GMyf7=9yn8'g| !Y]t19o&-.><|֋ɻly2ί&~4aDygy.6@紲sC> }J?{'@? ==]LW>F ~^]M9=O0<'S~n|^~g)%]3k@eiX6w]/9 |YW44P\6H]%]_FvrQtϜzv拚~o;OjI=;:yīiEayTģ@[b&>&W@r2;YӬy MzwJ }JbQO=J H**$cv'^||m}bB$VZ NSj\./FIL#?9n#7ʠU}r^wN$҇,fU|T/z٣(@-w Ł-'*( Ȥ2Iijg'Oys75(KL;o oȊ(cnP$ٴJb0 UCةxW/6|z>z(6Be{]n*' d =|O Zs7OígG_@ Md>O5 Bj3̢04''𝎐_oh׈i4RMőиb2e,om^or;z th[OxgL\Va"k;)JyxNr.ڮӛa:.K"}')տ9zǜJCT1HlNˌJ^RK*y3&Sl^oCHvoA9wY$ D$CDM˱OJj z*¸g"BG])!j[r(Cq*SX=~%)qPAVYF-vd1}&-(]c釢Hj#kMt7(y?!$fy b5 NOVbDQ@H;ӕN5>,f~w>},+RzO'I|uodr ~߫ͫoؗ0oOlwwn0LAq!g _nʷ w̽`uu(l!Ua0UYpA1Mbir5Gc8zͨlbE䉫|i䉻:@fҵ鯰q#۞2 V8]9]_MNV)Y(|X6;y~mTb]уeg 7a 6_JQufXk}_!SCxɋd#42}C^>}AoxٖRɂJkMۨBfH\%&{׉s_1;+>0xGN endstream endobj 1658 0 obj << /Author()/Title(The Gviz User Guide)/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.16)/Keywords() /CreationDate (D:20171030192659-04'00') /ModDate (D:20171030192659-04'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1) >> endobj 1657 0 obj << /Type /ObjStm /N 1 /First 7 /Length 100 /Filter /FlateDecode >> stream x3435S0ಱ,HUwN,IOHLO-V0432W0P/-̃Y@s|SS7?%U?8 51$3?OΎ !r endstream endobj 1659 0 obj << /Type /XRef /Index [0 1660] /Size 1660 /W [1 3 1] /Root 1656 0 R /Info 1658 0 R /ID [<1129A82D25171A0E6787222283C77277> <1129A82D25171A0E6787222283C77277>] /Length 4164 /Filter /FlateDecode >> stream x%yp]ysWjt{e˒-Yl-K־[e CP@<@'4 )i@gJo84rRZ&PqX MiaB&>3=9z8"q9YPEx@r!j 룍A Ǝ& i۞X/m +c6Ҍ3v6rkb6n61E[uAqqstЖ@3ՌӖA9ckVƈy`3c+n'6C۠c5n*Ʀ;HXjXcikNƚhwsgIeVk5luJF[]>[]U>~[][]A[VͶZCF[]UתV_ԪV7ia3Zufle+ZuVJ/A1QP(^a'V a8{SZ!Nڮ8[j 0 Sp afi8yXKtaɏ-,[hU˵:qܡeeL䫞=ʩ=gtr9$ŹW[pKY/n _w ˂ po\;*(_?%I|mpNRm`3p}{&<5]V$Nv7DP 9#|Hq~^hFG7X(;^e#"yC[x<<7(OGP)e8!t xlvʢȕjYB`ZgOG)˃/>"uinARlأDIj[ <7B@CO޳GyzX>{C6m& [`+;"ޮ`j5P+q@^hF+DJ~`햞ҵDrvVyB3h6hHE.N GG"yp`$ҲaFa a&%ooÖ~ #:-ɧ(h5pÂDuIX%XX5\>޴>aqS/W"7>-Dgȟ!,|]kl$2}Bq/:l=U[.Bh!Bh)8&-i kfȚ!k ffQܗNڷ,"¯;j@1 p! 1]$!Y iHtG:$=_[ݺlʇ PpKa.wum ImwA9TFa lN? vNANnZaA=hۍ{ԑXbY~~`p@+I{tr;t@'ta#+-?2uJWQU>2@  È>+Fa a&a 4HbyXK.[WZ/8O$v9m#D 5/*[~/8~~G~dy: #Ґ';u2IHG=V$+=N&^=yD#zH۷/b?-pJcmILz@ƽK:HG=D$z ;kbeo?:y G<H)O²1ˡta%B[y(:ylD#zFy#uބ+$s]Ac'G=BȟGeL⏎j[ YWal-IC쀝P F/y5ˇ.k=m۠a/4@#&}N 4!hVjo%6~DmBtBn8=+WaDçJ~r'}aDߟ^QqIcC'O q0/+uEXeXUXi{i`m}o>hy}ė'`rؕ$tl]IJ2{BB.Avе}m:tr tX<f$ږK⥗"Hf$m֖sוn5$=kIߧtY3;$/)gFɬS55#m [Np't ]idu2Idc1t !d?tv0Y7j-Dt۴JDec1t !dOnINI"C5Ėݦk$GArve;t͸$oz۾.Xc$yU9^5ǀ8Et"l]9!GeOvkKvcF[*Ep\[SW?9!IHAdCZR&.rȓTm(B@C JC]Y IQ@6P%;AףI#mvz z7cHVRtRu3W2 MN~8A JӇtrCtBn8"Y:z(A? IVyJ'KV͠}CUkp af%N9spaN¢dM4_}&bM/Vs%dwǷ!%R>] >ɟO|${+"}Kinxd(D$$H:8'~)`PqΫjV Y QmɋO}D$$ѯRY]Q ׷K}DNҧ79|F7{SRג Q7>-y'>ɟHgdBɟO|wIAN: G$.IO}D$$'#92J.mgL=sS@|O~F{ek0'9'>IIOE >yW$gU klzR| D( .ߡSZ%!Y iȁ\ȓt#>@r !EP %P eP.2fj*%woUmahC7];9vAhe7:mx&/W;AzIB)ն] .ת:(HAg+j5}Rצm?V JP0C0 #0 c00)H5 o|O8/J鴶0'`$,,KmV``C_HBF%sM?),LHwjKÔ&LKs%81̃|@BIkӐRjKBB mH@CnJ)#zF)im2D*$~gXM!,W \X{%=^$EmFHvCd-lAd.[Bd~O[7'JO8 ۾c@a|[UHI80&SuǩH$WIZ+$\2\*\g#%K{Y<FdVd~]mV1)1Zť;wjUR*%ݮUB~^{A#@ԯa1IsO30 zYӍEXe/WA:\`=|.˽9# endstream endobj startxref 1546175 %%EOF Gviz/inst/extdata/0000755000175400017540000000000013175714140015131 5ustar00biocbuildbiocbuildGviz/inst/extdata/GSM461176_S2_DRSC_Untreated_1_bmm.bam0000644000175400017540000143370213175714140023210 0ustar00biocbuildbiocbuildBCϏ@LJKbxݤmf3-KY֖E OM@m17O^^MxԿq:lY6i}{ͫU[TNҠ]F 9+T.f)|C"=(cHb TCHV,Y  T4B9xj CʦIU*i,<T=t=P1*Dw.%*v3u84*j^+u:HV+DT7)Iz9㶬b2_ȍ̝;ϟ:ahva;O9 [ܴL!kFת}/"62q^) Y<e_,o,_(*YYN&TdUhdrjr6?oM9Y=Y®( Mɺ3⪞ȲθGgN]DɓMgy Y +ˢK{tݨ?ZsPͤI%`~L x^w#Ss|x偔b*TM)#|s;7ೂS}S zk-Glj'o^.8!WF#,~XBC@}[-k^W]UVշnU'v7LM/dBzF&%!QEP.*`3Qb* AA0>xoM:gݻ$/.. w\O~u/I//Ϗ,o8N$7W7Oεssx|vW=Qʲlh6m^nWm-=|?b_|Th.&фfq fC#=7Պنib(Q`y3C6( k#Gt~:=CIVHoNl4oV6ds5fml!z@ ?, <îMRtAuǶV-3ijf@tfUK,U e6{muJ)f$"Xw =;!mewi`T"10h0It h( As?Dl1fq#}JED`94"]Qd]Y;4c!M(Nm*J~|}G%Ȩc6+[nFrt~TGK3;O oLOaciF\}egh[Ia_|Z盧k !P$`") Qrmrc_Fu~Gmg}\rMg0V+-v쵾ӓZi#CsOe3秃1.'6\PV5~k C ~*P$}dȿOg?;2}UJܱ zcc-4.dS=nsD!>i \Ql㕊h,J(!iHRcB "i^" Ô߫PTt/Ai&ѮVnڑO/<+/?:A޿yD0%a`Wsm_lR:_i_\(|ObzȹӉ xduHO 7"/V~ \gdщDeqխGR6H2W$S4NTA6?fDCMZ;AAZq4lhf@4i.P$Age: f}*(5diLt&&д~l?Ph3NTӘ2Q#)Ql|v.1g\%fqASIwH9Qq_rQ~HKI L.z994I4L7E4:66>]ThY/7v+h v&(F C2; \[X74PXZ$I&owxN#D @j <*ݵA]&(¸#JG57baS7mKal yB^tMf?bS)OEBys (syp/w kW_De߉0AFڽ0&!a0 @o]q0okIkEYY!yS!U몃!YߧOͬ_b~Tc[f.B9,~K-0S8M y$Q ˒Q;@!YAɠM(Oo^yVd*C5dA\oM-'~CkF2ptu-NFe&A) FnvXbxSpyeJ),;/9e~~Qt }W=rhAAlű ،TrM$&a&IGb+B:(+O#{N_N 9DVA`[YEY#cudũu"L/ 0"?Z#q)TYr֥^YJENF ^EEX玬%oP0b2]l1DIš2#yxߧQxȅ A>O|bH0b0Ryخ'n"B. f(]XCayp_>SJk ɳ 1Jx*(R/~s8.g?;l)eura9ID[jZb iZ;Ln2! o0̃$!t|Z+nhdsey0zXG X"y(Dzy:Æ@.B3 >Ju\ Db 拐 Dõu _b,lCk 8M=4M)f$~d8V "f:zIb F G$Eg!† _/|~n@e#~aةLjeK*V2%v\mD)X( >e/lie12#d4⥅>I])cu kَPOlҢS9:I e^z͋Rx6M!}?)dC~^H9@^?A﫢:3S5 cEЄX$q4Onr'g:gш ").<41Hhm^n*j:f"Dz%$LԠ=*%ye3!mW1<ȣk[8Z;K4 , zU`>S#KNw  VmP9) Գ<9ÆJ)G$ǻ1&X`wQ6` 8>1=8]8&e>3"h0ҭ]FnO%bSUknBә-GrQy:G Lgi1oW2p5$]F]݁ JQ*W>F$ rBgazx>N+ `\M;*8iF5olJBu#i=.wQv>:M=/I Kݫﯝ{2Ć#uHgEײY4X,MΓCwۈ.6WsI}>)DDזQ.+/28ey6}&͏0I~VyA#>\1!Ov 3֛bʅIi"|Xfl̴΋e"GQE8a$|e1s T?쩵8QEڤ92w$%Ki ]7dJwݦp*HPȽ3qblXm!+-ER \O#l|&mr+h*K5L nko ("(iGpGZc; o茡9>M $}tn ]nsS#BT(Y4^ c c+ˡ[#&qUh8 pAߍ[B%h{shp>t>Pms ABTkg89l0 l M?9W" \EVrj ˞ ,Cz>:= >ǯdA<M&HBN4$:]az>k09w'yox:iGͅNŠ1q/`Cȶ4 O ͒ rF\M+bIQA3VByhuUw9O֫YɦATcaAS r@EM5&=Myfslteh`/,\VAkaZ埖gid[="Gq C:i"S_#zhRw];)iKefU`3GY:N=͵9%Eeapkh [}^5ah20X7`[E<ͳ` ;_wMͭO^,@P|7ϝ*Js \$"26!\76V͇B`OU~lp((ͫ% Mi}>҇"6(Jq"8=\krtou0^86$R>)Bg"ht͕}h{qi+4 S4B$]Q*Ϝϱ0J܏'8hN3>[ݵ?[8IrEQ+m/UVXCn7 6Wr,Ƀ,S8v8\_!FdfJH R;71~~66&o ;M FUH蠹ʦﭳPNϞ-÷WwiYKY֊Q?LDqa_goǻa2eڎ=*m9, vќ-;mM袩Y X1AHl 9Gv$ ºn)˗"e[[ʨZa3fOذҪḉ3^v,|q8zve:ޕ`R<0 q6ʧhyy2ŧBϫY$sLtoūvF PҢZ"B]: ReuJ@÷eد:PiYa䛓;j cAbAɥf9G)&کP#teI1 S2Mޒሇ^Vޓ Li:Jn o aa Y0D !k4A 5acІ<4I;ev0/v0! #h $B6 ,:C5҈nhvW>OoN..V\=y&(7n?h m1j*d@s`tQ'ֽ1DSSn[^Y2rܚ.˃7&dlgpf/{l.|\D8&Aݏ"2 K\raˆe}Ctb"(Kyb,xڅ^7[aIZhN7@W^k[xp]f([k,pJEH=44kj{iq,z |vZo7k2FExM=C4}s})dߧ5҆is6"7ߜaM Z4as^Ll7bS" huazƮBLщe yO+9>'A*灒K%]bQpKŽ_l!:@-H8 J sLLLW8'O¬ȚAֱ/)E_ph!NP~ ˊyq:pwzF8)GS]ΧN-҆k:iTH{l0 "f3sc -NHBHI`t,cSӈM~ C͡SRK0nn}_48 ͡ ) 3^m3=8CZBgqD-7〰+VݱeA4,BEh6PaNƇW|s0e[W1۲Gz Ş$ caBJ4׭Εg;ná lMTjӹcS O|蔁i-@ ^KUwrqeޮL˲dݲ`y8Kyt:&tv+Tl\9&b.ppj$zS8}C^y9o#x-dc~vA5Y$jŪ ^#SVQ y,w&g(f8B"$9YZvG͡|G{ !XV&ޏlETm**Meʎ8gq^!:nbؔC>:QT`@ 9Ս!@~ Ͳ5COYw?.+ pIo;4ƀXʗхi]}BkLK~= EK!1?&B;.5zO5hHub?.iŒ%ѳiR\bsx!OP*Dq 9rv aԩ-D0jx .ûrS`ೢMy6uB )WW! D A0(\]eѩ=1486VoS1LQ WXNkk M6,.h75  x:0K)vԋgYk+ eixWM1vSm|ZLg<偽ޫ(:RyyYh0s׳h|>ir|Z >q@CLX`sV!Нʲn$¤hsXy9H7l$d1>˞U˲3EZa !&ea.3K< ;~NMބ2v[|GY0G\ޕ@.iafN\DE8Ƥ2\8:q}-_sh?g+{-uhPl"Д &/P1$q6\)^Ip=!7*àaUqy=H" f8cXj$mjFWĆUvB8%W9x.wZ D7o }AT4B=oa#]A\$i3'jf c/|[,ꅯxc|i; ,8NKn@Chb঴W&׌eo!w+3DlȮ%'WmQdYMj6.ibwR?Ӫ29&Wc2GFq 6tGA,"GQV^hšNoɨ} $+486).6EmбA )4aU+6ϥشє3hTf8FF6!.Dn<˒4bc)KK{8pC$㰖!Y4zQLQ E9Q ͩbA10dTcbxX+pi_l^Z`Nc5lcY7"\tjlK=6x- ?N C0ũЬp~yq$guD%sV(,뱚1tU{-hu^ZÌ*$U6_-G%ǘ*1ʲ::OKZ1C$ n7xo=!bW V,b[ \C~hm-n,ϫVm0p` yro˘ikS j6u4K.齘B>GrO]4bGf5/ [(ipR1|[@MT PoO2V[n32<w DY(s,I`T¯3yfZ XrkCz:0Eű 腹\ZKW3 WR[[Wl&b_g~5*FÊedA>Q!1C^%U;^̂5I+Krl<jek>3i0 n9IÃti*\qϳa.r) &įV%՞̧,䀵\#T;|PŮʧy ^## bS%=8y.ދ2NSfxW&ƳL "AڔKUQXZ%u5L+;mP{;+ xgB&h^h~Sھr欱k`1d*EA{ȧ~e2!8A-YIpǯ a!8xdUXk ֋pޜC\Sq?pSݺمc8صdp,,/b#zC;雲T*-<70d pS R|2CZ6hAt QxGZt "fIGIy3 [:Q3RyFs@YP=vN=0\$$ '.[%{[VKWR$۱%Hgd sRs{ $NY]vV>m2eћw{ae +N  diX~v]Ou]O7t]fA6l˱?Cy_oz) "1nG0Ġ6eS3EoOGq,9Z#G;0 m̅Ќ~"V&֫ס9BF E]=DY,uf唳-{uK?'4(}8n Tt)&Z T7ċ~2ϪVׯٚ8_:2*ÈqNӬ\ϖbš b7ܿ9z3R!_}!`[\wpȎb;9v9,h<lDP_58KpE9v2 a[5'R5`NL!XHju%qͫ+0R;q{Q>WhSA}zTO~{ڗɃ `̷ ʄ* p2J2D;EŻrrN 0x >6|_z՜7YPrn F]jڴAKyx-(je˄(4"sENtd&,+m0΢JvFcѲە ƵCČG-4{p Ub> z{e:ph Mq<z\n#iJpX5AA,kj9l1px?^A/М/ "rg)Ȍ e#̡dD:D"8 yn:1 6WtnPz㚟15{pv852L as<)4!p 7'ϘYm"@}[Sp)6+a5J8 X@H8 NT(BܲY̑G]:\u 3CbgaymLi4r@9:w66,869w87|Ū#T+v*S)4ZlK=QWUQ>2VtvvtqR/jouwm{EuYe*3,rl]¶x٭7.K=4' r\H븢(:\r\w{ҍwZϾ[%$P ɍJ;XyXhA֧o~PЕ1f78}E@U(xV/nOU돈s?Mv1mvjШ08ddjk:`G}? jOɁc3ę<Tq^-%ެUʓss(1 .rcX3Jx"&.)4\p$:Ϗ7wA٧r ߵ)FPd%qRÞqPjI8Uфgyk6Erq&Yt ]}ETld../32?5EQW<ǫ+_}.&ϒѬWh>"+(ޙsFwM"hp] 6f#m씻t&ĢhCbϋj(jObT l4XN%ތ)0.걾c2@n39'h 8:EPo\y&2/W 8?yNq}p :5\hP'!{ٱt\ulNfŁ>~T?0^8ytSM??S ,>R--leO(n0& hL˅S+ f)Ca\™ E:hJMΟ==U&(ơUO-o^ĢbU{.ɲ,I,GP" TT2ٮ c]#,(e u(\vE $}Os]ŝtV8Bum% μʇt"avIֳR.giJ\Ato!Vh\..j$u3Ck@XIm=G.)M@xղ3yYODѬa 'F-󔭦(m),E[R[l#°͜Z/W明aqnc_ꡙoJ8|[\]ݿ; `luc@y[U"C @ b,<ܷ`eup u2?w1$|WfyGpj22/08zCb?ScX?!B?͒F[v Ż  a C2~DS'FBlŚD7Ϭ OUxFQL%)tv[oKmn \\ :0 W Gl򽄉s* b0ƙ,maY]Τ\>z.3i'Q:z> ͊[<{)T)QLdmi˧LML#˳z;;0|މJJou\kl_S2\lSVG&[0 -O~LoxjS8ccTO7JBT~urLv[r$Q/2D^Ȇ:p= 4"?C]x=F_|Ʉ0:J>5X s]/~ y`} OwNs|DQgn3x pyg3-C?-`pQ8?@p I 5WjMv%fJ^;D?ICu}:^#\eTFsdBs͠.n5eK2iE>jyO=,Tw@%|n]ozV0wv c`a}yJt>O[ / 8=jBjE$yQ4)@§S˪; tWV"h ~b"Ṉay?%cea X%nb0$ xi7V\2gu~~ 777Woo(Ioo~{ 0")/wh/wp7F/?V+K[Qd+4hQ'~<)_l7"Q-F|{k :!@ >Du8H -vC}j#BtN)Uv}D5/_̜CaFAl{^Oi2x2- ֿ; O;GaË>xo;<>hoe[gyu[qAM2Iٟ nY"D$ C~@4O1-" 5~sF7IX{VV3<Fύ뭼},M,/6EOn >8u/v 1̢0*sh#뀁Ӱm+|Y7jf>ZcYFEsA8 Coi٬Re@uo^&OPhVhz_4:I$1saTAh633z0x "++:;wt~xނ[mC #Q!@$}A,+Nۈ:/$0TFW8=lo5&9u~`gekJ!^ y;>z,c(bU9:!*jee.lTV*bhZ'x2Oy^>b*Ї1-s]7tS#`2)'?~_ |XZ[ BCW2o',MBejƭ=+6=S?( -?tհMfh"Ezh^+ f^v4Z'hui[KD "✴/fo?0t/^?0H;2p@?oW[z.4NҖ;B$ |͆h$v EdE-"J#BӘ{Zv}Dr QEs,U5M,IϐD :B(-ʤr5hv@^cy8XeDx[#꺬Hzt 1Ͳ - 4m8n5O@[p?dKD%qC D0 NqkXk2~뀅/tQu濶C$p:ÿ,(,shH<h#Ŝ;,8@ 7`U_|om牞oykX|s phȗ$tE0/N:qk-A"JKϡQ h:MU)`[kS!<)Z}H09]z# I)`M]l T 6J|w.7R𞋰/FƚDu!{>cw9Da\/͋^L,1*hLq,:7%77e^ `Oł4;i.F'11s]P Q B?еpPVUAUAUU h`*U3}WT|n\s;hI[$^IZչ1Pvާ'zZmǶgoFW(2rHC^A% !c[:4Na@O8ȼ*YN}]Yn4X"<ֶ5~?t#Q6 1Da/O#yS :>`PAnY]] /Ȍ%aVyw=~~D&2D"f\3Э,DERD5aF.ebn7&5Fٕṍ<a ~91rn FD"$r_ ڠIv@Iux*T i|.A8cQw^jB*R )..:_CuHFe݌ hχ'&LUIfMt1sy"0iyta`GADURѱQ389+ˇ/FbnOƠG n`-ҸLNCWz`;1jpxn?2|MǗj}.[o'> `kuY޿EySg@ D x۶ujiDQqH+s=mvǶ̊o(,KyA :4NLaI@D:[(ol{bqq N̓{x@gilK1F!J2 ;6/>"9'W0*9u "ɀBimL:"霋tk=yZI+f/cM}m]ǬXh4z Q"wt`>Ze-0$Ս@{ aelFEȶR۷HdaDqa]v| ޯ6V`ϢIR!}ލs6FP8~ ~c;6- hG˜k^%^3f*T 3Wlj5QFmg=-~(†PXBva.  b`i 8Fv {;4Y]?3/ۋ.=>n1e.d6bыEAAڶ@NH9T ,Gd3UH+%I2u`8jz{b!TXʂJZ҉amlQNӫ(d,H[٩1ۺb3 :Z\ Fu:zJ_'3Puudzi2va%.p d"jM\?glhi[ct?Q!Xŭ[Y5ElJa,!@%Y NE:Bs>NJ6ߪo'oW+Y4I q۠h(hS`xAI%~lf. <1*}&ݎ#:R=zOEח}pQ4M`lݚPyR 2Ϊ>oP2>|ˢ R"|qaFN24q4 43`(xvMymY3o_=ퟀ%? ~Ai,ՍA XG`S$?Y31y_PJmazm QzRT= Pv{k~GoaT( N6,Ǭ0 L i˱%U~gj0 r~8_>LɒȻmDT*f{iY GP`( oL :/’iنed+b?\T_0*4Op8>Yȳ>(]*+^j2Gam{Ty~m78"L KpEaYh5gݙ`rZ|U rTVS$𔎺[݅i0l>MX_s9'2L l@i2/AnL2kM̾mַG1t61}rDcQ J utĴFSD"aѲ`eA<4T/AtIw0sv0oX&α8F-j+~'aqto?zxO Uncm\iޭuiDggRҒ6UӡN"kDgvK2KPΠ_>>a'1J:|^k擯-G$#"W-$ *QE ht4,x$fՋ b{~8Z$i+"5YgFRUUV)[͕3H6۪:0*"jGD=* :p#!G_!bN"v6X?Eyw]B" R4C7!$ʢ%Hաq-8΢Y%eX+Y3}G-x4i?sBDeYY%Đ][eqs5V`^_ gخoi)ҸȦ5QG/|A$0"ZO/~v-y"4iE̙ӓy 8asl g,C'q%D*)SέFw:DIkFtS׉^MRw0/&)kX)i{_) T*20 p ZGx^ ScQ@d h >t%/?Nrw{|l׳Us4CB/ 8u}y!M̯p8A28R5/@;m׷LūޅN-p; QS5&+`W9n{++QE?0#VSvn34a4bD`X_ oA ]XlNj1Nƈ8Gx3w(&1~k Wd%`g0C1M B]\G=~=p1/d0g=usQקpIT2>Dz% 6mn$rs{ʻMMIS(O P~hs0A^H|kc``moqxk:N<Φ[z,,ؐC\k\h҄[ 9}{ zP@a>+33;,^tSoA Oq56Lv COԱ07g~Y50{ئv)[4siC'OtMWͷMi4h}Kyrx~,)X6Q}EQ۰&}Yˋ_㨈2o 3pK?´)¨2\æ1Â}9sWYyvƀF?v$(bV Y:Di);mc]D뗻ݹ e6h88$KL0Vw{ }B72E5ҭjvvm`;3KhJܥUtn%jUu2i)Gӌ+e7oEJ6m8e~ˆm=\, EyC0lÄ1ᢍ+@#4~:|z,E\9y,Z<k[|r2> Lq%*S @2Tu?ΗI9l[-Ð4~vy^!$Kj_LZ5D/TYDz4Z} "v2 pvh]'ȨÍn||2t3E] Qyl4*DHñȷ#!yٸ SA ذSn:0e9)8syguh͊ʜ#>1`E#uŬ{M,?/aG]980C[ lT :,Zo 8(iGae:/˵֕V(Zf?s&޹lE,H>܄CN|:Ǟ 8-x.>=F*lq"Dx~#˴G :!C%F/IaB4Ի<(_ޮWrlX9Okfs~lkj0*C@탭YF@ĄR<_Xٔ=E \π%=2sО20TX""߼aRyDi3c6lkz(A=?NU͆\F+жyeh(˳ BE"qtf,3~J? ,ְW3M\Cyn(#RImS|-Slr4e0-2.s7z{tz~i,T~N$"~FF_ȃʎO2Cnsg="J˴ S~rZg٦f12}n_q'E]J<]0wo'[ &P/e(s~A^!;%i|9%vkAy}P4ˑt9\3EjC5 nqwuO-K&♉"mG.q7mƖȢR&(TRgjQ,F!G9!OP(x;ޚ빖Sr2U.?ңчnKCղ&a!fwg~wSbB\5$/6o,ӅQ<ϠpP!rBuh@ԓ8K`(b0"u$U2Mþ JVm4v5H<%5؆ۀ4`vSl[ hMyNx(Q0M% q_cO/+iu_'Ru?V98} Eu)e f,x&-E+~0 5 "OYmy;]Ħ #|z?m^XZ0:GMlCu,gaA˹yXdIir?eDm/p:˅lS6N[|XD(( [>N^]:Ч=]q>MRz)蝶!s?`H%B!t<0_|F4pwz܏d=-lM=iK<\nP]t|N,C+'YUvEshzZy#y^]oǝlsH,+$8M#t {)]W!1IKT #hٞ)!2W9î6@&H"Z:§|kY_ >X{^Aww rzɇ8JxHXS~{(.hf [وR=DaI-Wͭkecrx+>}0pDg:,5a*|[(Uz17;<Ԉjhfמ雍, 1EQT$SG#ir͛x)zd$\wk d$zJ+%FE2~){EqgD,갞?\^[3Otk> ʇJBJv/Z)؋ Mh%eFnR`{Y&X죩j@g+HXv%QUu@Π9Ge!4~HiT4*:ul9Ou^T*n8 ?1LE,Shz^tb$Rǻ |Irg+-Ud lQgXZuFnR?ݲ%L٢Q3%L9u zϖe uo?7Xb776q:7D[0M\DG~;{54)%V`ė'Ў7ӟ[?Yg9Ns1 '^ݚD;~_i]], :Gy fwcOPF&[ǹJ "6[󋚝,4kC>cYR w &G Gkx? o;?5?l+|ǂk%[]iL-pJrG7ZXIZb}@DjږiԮjnW%Oq͖}BN3clgbϵttFt&w7n`/ , #D>Li_!4^HpRHz`Dj!XW+ qEI.H˺p4'qٹ4Λ$D,8hض%nk4ܠ)eT `> T |6F\ ٦W=*>¤H8nGӯ%x}> ZTk-߸[Q=8Ї3^8lB*Q}ƣ\s nNٍ\pBC"QfBe۲[? j,ϵxmfVer5S|J4yayMuxn#4+Ӣsh$ a %\V]94"+p#C@<%тr0Ꭰގy.@\G]I £Tꚷ ;Dӳ¨fssvSI(;xӧ1E}*ageyʫL({[]k@C/0CDWf`՛dtCHݏcOHTLi* W 1Qf+[D =S.MP1b Ř/;b)&Ɋ$ zךn=r4!LN*SmǣjG >8:ǎbDe9(2B{2y˛:=A6'QՎ، x|/jhX7ʸss E:,,@Z* 5UQbĴ.Rn3$}vS-mmɒ 5pu!kWJ"9-,뙆?CiԬYarfEuSc*QƼHi|r rZϋS1%1"aJfˆsܔYoC?)x[xWvgr4%Fy}`OD o-\׬3V[8 Qգ3h%e{-ĭ]] =!ٌia9q^aݭY*׾꿸(i<[bQLul~8hp+KO1NXkcE p6Db< $Jϡ * mŴi_X`1fYs+  +Kj0c ρSabu\l‚tS'%ftX${@}GtYmN[4kc-&4Eto *_̱Kc"%hfY8Wu>f-hyy g:9@rz99"kSqaQi| 0w',Y t&&Rcu"8Js&؜xk'q,] `c&1gCJϡѨkD:M~}fՓ曺HZqYܸhK/ݺmcNm`:[WhG\`V;6<q6> fs Ly:s<.*Cs p# GmS;vLt5,,1.cmvf?~*挴 b̪F<Ѡ-A~r%Ln0^wdςaXų>W#[7e*9n&0nww1*8 [щ7t^]:,0BUejd:OjխǧٺlzG뙊`K%,z Map1g8緼U{ R /*.5ˋ\,+qLMQ5+ݛm˘t,jH cD4my~4&Eyt D|J⒦N3H{4b+P}`$\B{ڏ]c.4aV7|rwa1ę2.OWG{k4J3ł(40w7QtKeWQRnL/MbҸ:4q$I͠9z'4_*2KĪbVQҌ]#L$_0MZH*۲d~$<&7{W9b! [okaL'8r+6JQE!hP,*dLcB_^mO(`uU!l-  (w;u\  mbIr1crT,ox 1GtpTfG p3'ٟU7 %)-H!FeQQݔBDf[h_?A, 2 tHT] m7Vja׋%_v]j %ФnE68{|&5o[x{-O=㺄Dh\qӉDwBؒd [ +]Q>yuaHFuC;ar0iԬʾnbjʜ)E5(II4& =芬TqO5\CAhP0\! [r}/]sC+f ugW*>-c[`PqF+&faJTȦaS{' ҈s&I]abzX4(J"D@0 D,~8v "j_[3#+ʢUx4[z;ƄOl˖8*<=W!8 ^q̳= PD[Uԉqx".4\D$-It\FWQűEM=׈ 1 \ijr5pb;0##;7<,֘L{u׷&a lzQ 'q -5lDEwF:@A^O}&l|bpZTĮDT9hՎ#nT=5]hط 4:y cǏEr;FOU$@+l\jRVD1@3j*HU$6xʙDx"62)6/3[V[ 3Ea$YXowϓS ֌7`$d˺13ܱ֎/M:ޡ0C njwOC7dLAViQog$ Z>׷ng inZqtrvxwr0zч|魥Ȓ&$^w#g4ó)/F/ƹvdk[߰쭁3dYi$/y?l8 Mj#njڬM,[#e"ػ%QyD:MsvF=4W:qq6 pFlzpd_{pϫ뢅exƺPi9nhv ~푛G7Qc(:c,I6qbLKZ8H zߓ|Np@c=Ik<1N5pEѥ>|3/X'JMǰ,}yXh5ݜG31am0ᱨ!HLVf*(౦y|gvL&(&Wꭥ `3$&81tg͕Kp"Uqp2ŷSx9c g&a:-^x~n@t[7I< "@)/,-%|syBT\,l {?l,àvc#~WjZR| Mo.,Ҹnݜ8L="F.E0ג_挵0FPY>24! F Rc=nPLvj  KOeVӦ3`=B,4jt(_ qY-8ԏMm1؝UФEY"QRd(&3Vajwm`z7^ 4 wJDbX2Ħ@eڛpuYvoaLECzkKpai$H HB"֭AF'~ (2ۙI﷫sEϻ, ׮ `b3,=4tOE (>A%C>n% Y5Xe [䘖Aдf#ݞzT񯨿1p]$,n&=}BCD,}~45U_].UGb=3;m͸^͌;IEl ^88R"#"\!`EH JD)/$VBXI+nե]g REJeͶ c0RL~B+xA򞇾`F~$?f7'I0\ C_4PrRY@WUh<('ߢz=~lӧ4 Đ9Ҳ +%Sr'gHyrt4lhUUD ~"ޒMWtο= Micgz9Eը} ͐i> 3jsȃ8GpTQeMTM2Mg:)IGRU( Բw}|Cs^#_D#Rqj C4Bs:|4˨oOwa芡DTqVߝ& ~Zu,`c:Sf/Keb%ڞrU3]K6ryBy(iϥAQA١mK3^Lfp,8 0>FMW4UWt۶INWTEiF<~"ZU97OR9YDY0S)R?ʩOrp0ȳ)e6j.ۏgUqR}?x4 ش!M0<4Iih0xPUBx'>gY^e0K nD@&p\#~-@iC,~ј|R>^vA _T`F)3 RJ b+h^$nLA1lP*Hr*O󏳌yvRv1U2КzF9LqQo}`j~ ߮ᨥ(s@!}@k}8*}/{a@/yM:yRNr3ƻGȚ,cR@#;M9'?@ɂ`Rf,+Ԡ }@5}: D \>Fb*|̡y e4S~4BE٤*j0 4ϡ.miڥ.|ODT%)}hQ|2) 6hX`(3]MF!ة/E6*-StLǚB34M6`ϊXX@.Mehlizx8v;t1p!y|$ȁF94j*-]o{kH=AF [fE[`ABp-gq\┤G%* 3 hc䱞>D Q>~D>TsSSOa" *mӇww_K7ӆߛ9~z+$aB, ZE'Sx],^J'&*X,!rayAPeQ5ysiyk~lۄqq|JԾ@ jͷzm(pҒD6+<,/ bo]Λ$y'Tuvz=|,C<̞Ayyq$E7scQFץiԓ (2_k{~JD2"h@?'Oo~?h:gyo{4Jv\̑ʫh-_m DX˃0JFDw;Ѳ 4+\$jq&)s 3gn=5ܼY6q%J^zd.xQP(m#|/Z.rOyazth[I$T%V~;#葨yjarB vbix.EH϶MN BNyn? <2Y17#aRG/ Uҹ$4̚Ȁ:kˎl8ш'&cK!%lŸJbM**vf:72M%a26)aqSѩ ̙!"," =lNN@qa6#!QsTv);Oqvhy¿$bU RoZ?C'I=yAC2U45 ,3݊DnkP( /DvFD~ieH4F\ȃܫv,X]:nkTS8fbzNu4 $_YYPTT6̒F&VVj{uٞQd8M޸Cr_ d5&. ;YSR8QR9Q^VJ> y)DJc*6ǎ?؏((Zq̆i8Y;-Zyk#"142GN)=#" 3crC(IRi&0bpxx75ڵنj q=D^66XZ@9ek,ʵcǯ]I4@T\kUuMU]L6X{ko/6d\?M$B"5p,Wtv%A<]t (Lc9,Zs#'tU#EH rLl:Cv{bIR.BH uF&< xڻ>gjγkBGDdQC#8E 1GVv^plMU,)RSgqz. T7Qǣt9Y8AzMЏr? AE^*TWA/C7aY0'+M p.:o}Њ(*lm]@S~q)ʗ@iC2)F6qJGToZTo&$L(`RKgS}rf #ڳ}"EE8[w+^+ogi1E_(ոOhI8*M'IJ8s)/,h^؎gk?mE_p1. SBO9khb*+ ^7<׀d0fMlgi ^LBb]$eDW)J<*U1P[73cdž[lْ"|J>Y9Umgy[ʙ6J_xy&P>Œ (RIhAL7"5 k.KJ<)ѡ n5vjh|:>4lr0hi\aǔ6WkG c_8WK4R -KYeSky(HVq&Q]rInJ"}[wF=IS6Ll ^Nr6,#/wUxn} v|ܟ,]Ӽ,ɓ$Ŕb!vZضD5_6ܞCns[+݄lY#ae_R ^y%T[+Ȑtl0)5 JԶ?SM4 l؄h%Wg8+". {L˗cem`\nyFvF/kZ [i wWG-D慗0I6d@`P =n~GsMm, 20h1|힍9C3EOQPTVIN Y2pEtp$MѸ1QBs' "9ujuM:,y[m D((s=  .y!˟ڂ׆^ ۾}Cs ۴kmh5Rf*@Y E6ZZ9!J`km1[3 mgCMCG4jEV,-Kc S Z=yk"laxTK533g=yG;2Q2 ɴm2ɲ©\jyKt_6(V+`旣[1Gq7iyXkeLe5OglJ$qa92 4h)]-YTEurs4$EdC4 h-!TN y(H@=bSˊBf]jLxQ745'QB3c=#cbH_Z@o|†+ctQgh&"Ls`#{86v-OBNfV 0LN">ij;6(N\k hcm6m"J!/ yN{"h\YI5S0iKE/{h(RY{ܳhpؽ7&HDĬTҗuLQw ;Q9BfqݠψLxWKq?[k~&r䐗w+C5 ۴010g uC4D"bD5}!ei-]s`)&J 7@xBR\Y/Z9˸iha Mګyh K)".+TVһhf&|J#`c,߀2_ C7, w|aX%ɩKuN)6\[RH-L5OƗUq,+l5膡(9`ܺǹ~uoΘ̟׬kO;QsяeEcYY(6I4#,M[ضɗPdY `b?sЀAE8IR㼍9ݰhB\F0[|tM%`>^]zRg)On5`\0 S"R:Cٶek571hg~V9#{ ̕k|#8mk&ys\\l` {'M>g j9z;/4)ιui4FV%rA&MO@'j3w' IfzS 㺠w"a- vosUc\WFXy6)4tbyUs2IG]4%wbm֬f5.0qp gaRb%c`3-:4Q n|UjТM;@2?㹄aZ{ "؈[5eA?4K}w{ǟدTܘ7N!Tomn@'FUBUB I%dSzS|YaEPY1!^6Y~tRb YzC4ge*- &Ϣ݉nݶ͓Y_\D`ۏӤ Nhv5<uSR+EOR"}Ƹl!49w:ahѱIX9Yŵ,Kw{;ߝ!(HI3r]dgk>gl9mQLYJ͍ N̩],7K&\[XcqC(MMY%KA8t/c OF;%y"hf~Va1)1Yv"^^REa`[⏵vfsA<<43-$zX6p  _pq,Lc7i,c)QeU 5HɨcՄm)css&3\bM@>|^ MGEį<y^qIPE Y2.So|Z 92 fDB3X/UX u,YOckY!i>j5$гѯ`J2!iH”R!da. G\>U2ub8%Sf >;U*7xnK׼V38^A=㶵tj-iy^tA9=] v4EFyƗ*,mn6U5QU(VG9h(>9M6eEm9-6ǻ̖ >ii eͅ"<@tBQtcP6kRy" koi5m8*VS+)̖aQ`DoVNf[Vr?^v  Pa&.tP_r Lh5tcHZ+k[Jg PLT"ME5 -EIu,z& 3@0!ڦ*kJzd!{$C%K5SwPng=Vbqb8yhV-%A"QǺX:|90ն<2YR*>!jev\ mN%1nRo#o u :h(IzTUmY[;9tC%i"XHqZk]rpbCq)sP#ږ{輻Wmf t6t"v[c33Rðf? iY3ߔ&bhp4-_\Ď oUV.6ͮZE݀U &-9\0g-ׇ߬uxc2%g 0pnKOY8,lVʦm:dkiJ 24,NEuxm߼qp"Xx,qnyb[fO6SZZbݏThE6C5]Di@p ʠ].1ӜVkF~4x4 ɣA cYЉ:}D+qZq(67=Cx6ѳLfM) J1C>!:_ ld"xS@Li*0MDN,[k--^nb cQKienNtTgMpZdŭou~>~J (KԎKs,ǹ|uUj,ٳ,[*d44 C)T 'xR'>-Enĕaɰ lgkSdt砉pVݯ&(&iS^@@xjø 'Ouсgdux[FU];WڟJe3QЁiUMot.o_>.N$XRM߸ҵč"tkLqui7xOGեAɃ3<]!=ѼvЀx*2%aT7 ]dж Y`R~Z%G}a+(5WIre1"ͪ{';X$0Cz\M̏|2v3>=ibV@lzcirrXpY嚯{QUM\fהzoꔇYQzN^7^mx/UXdjDō&0~'7dA>mB56Y7]eլs7uHTXv,/-Ȩ [i1c]~,M~A{:387s sf=0X"Zଢ଼Af6 D9:r!w}6 JyaѲ}5AvɽMyaq7Z&5x`|fLEW?y<rI牗L~g!<{;X,r}VqZaW9 6% R5J׏*TU½zzqVg5 nP Z9Fa"A\FM\W!gMhy5ԋhC4T(;՝2yJ\IuG% IVۇ;Edu! *5xyc%`xث̧Z1+9zFtx-|{srK%jVzʣڀv%,=x;Mσ$m㛻}xxMY9 1@GJ25 &,ʲ!3f %] [OO6=͢MYP9-0/EgT{Tz|qAUMU"<A=4LAykMH EC fe&:SO+%Y7{}΂y4ˍ)ztcڂy`ܳǃwv@?XgE78:fPZc!<1{\B9!;o:e!SӨ JIEܺґÑ`Pg8QZ,pV!v wΏ15|e`h Bߘ8?aQk]dK{1vԇ~} Ps.6c=OԔB&' |=xmxT҉)Yu^Qe~0T  ,EVFD }B={+b`SO(Bs5$8 .'Pꩆ >cL-a[wc* yþDT9}LB5%ӐVk%YֵM\gY^:gR^Ym&L-ޣxzôlN8N8a9S'q&B88d\ V52E<;Ng<,$e~dI^eMm,*;pYXQTYy(..¡9n X@LLO۬3ȝe#`ju;l\uΠ_<Vn/\N|Tq[&v6y^ia޺$2 x{RWӔ=vMu9/3E3hO8\g>J6u/1Tf'CgyW~!/Ș﷖ %K}aU")wdHE~B=;-nӧv hox"DoU^""v-@F%So6.,7Ww6mMdIIqJ ViDcjI\\kbdE~ "(n̦#{\XغL8?1#rP?3I#a5![.P9d q%\BEJлh< ̃? >^;8 h24(c(3=Ъ{bu~]4 L45N8YT{O8=.y~ֻޒ"lC ʂ;҆[Fii&hTYڈ@q>[f Ӱ~ o1ArB@?9XxƤZ97ڼzLW<Ucuu Vgƙ40p $nG,L~ ~^׼Ϳ>+E$WUFI}ٺ -钥01%V '@CI TshU۰uX}0B\ϣ:0ek'R:aeq;s``(~aRxBt$(8G.:|QenU/O"Uw_#:S??#у#IǧQ?IQ [1lKlaa4< & .lϏmIQ 8b;V_ }E]c87yU^z j:YnKZކ8dR[L1q|Bs)Q<K @`pԤdu17tlMmzCp ? +#14f@˚pGz买-̲jCKe)YC)AAt*^iZ9GS<öEY9@\]E)g8d^^\xYΪ"-ꁭ 4TJ5^5a;$_Xەfɂbs O^#$u8]q;T~}pLʏf~lG!la,*Qw!!Xg]WsJ9*x?7+d=#u,U Ep2d0|sՋY<ǡ[MB6y8B+DC""JDI"w{|<߇*ar%:<.u/j0FqH<YY]˚}YéT/MS2M,q:qD7$c#ݺ*թ^eUKڢ?ѝC#3%ovfw=pܺVg~J xqyk[;/*[AM'E3,.wXCk\lIdI$ \CzMPt^1$w3 th!<>ݫ۠a{W[wUOG[Bev9:gOq!# z0"cņ-n\lŠ )mڕR? 6$pZݵi-T$II?5pW+x?q?><4%^ F%x7 j2x^Z![^VYyQ-enV.5Hݝ?c]( Ig}"\]f =>"V9-RZf8c:eWUp߫x(Bg`bVYXǚFi x>&~M,A}Pel{ڇ}߰iLA$r=}?2KHC(\!"z\;hN߸9fETY'}6Ȣ DF#d@yCM{u@h[MYnOʼn_fಧXLÜK?q%a}7Fx?m\RԆ}c$BC,Bk%v{[wAnm2 64D 8{?@؆$!t6{BD7 N?BM D`q[]9ggu|yqqï?C٬.~^oMaa!JH_xwq7ap86h~A$< ?ˀq7a98+ ĸ%,a>?!;ՇJ"3 JZi# ? 6@G29-4Q!NB Q~ j+]5Cu]꺳MIA}Hc6QvoD&.;D35ӭ-sdG;\By^^}Z-؀T=W@ QI@#d =M(Q)B@t w$QUAT)M,PNYhFU>=@ *8oNxnQxZ/{$=ǖ$ B&Jj ^(¤|4fPq)l=Q[zY?2)|8$U$P3~\i2v:4-ZfOATUt6AS:=Y2KdqQZVWEIuj^`{ CYR:_y40,S`0T0R.+}ewLK4q%a^Q}>ײ2[(|sD%qtqZs̲H5# :t :*.zB elzG8d*#˱vw+eM1 !>ߛ2>7L <9vr"i*J:4Z横c]ʒ*|qUBCpp'Y&M+pxSh+lb:^ ?#6 h`WQu~\a:3hhVrs۠P4袋*(R|BAŃ&qRf'ic.ʍS8uL`ĭj#I2wu #j1LǴO/Bi݋νXV7^yOf!`yjOR( D`Z 82y*h.)tPHTuI )SS$%iJAZ?@$AHd>qN%B(k,[KB\+l gIWDH?ϣv_j' "kLp@A͑4K%W', F3o~2򴮗h.}OY_r)fP=iڨ›kz@ʆ@;xWwۚ-g>f}hUcaed[J&l@#3DҦF#Ĕ(s$<:^76n&'-UmDFi7E%N?nŶ6yx`%|J`=*f <.`ǶWA'|a%ͫLJ)A\ 5k 4љ#nOvNmѥ%fWG{u=/=28 Q"Z1|٭։3tc{qD҃ w3K9?SLS3 P#j5-;  ߽-v.p3J%*65-l7'ǐq'O *ufhr<GhN{QW:~8ԓ$,H"L@icԟ0jKWVqz$9zpu u]T*Þ#m M'8$.Yx=ANT$ڑle Ǽ[JO|ɔ*M[3r^,G5`Xm1?sNzNitmH|L#7QI^DqZ49A^? l. j ׶D ϾmB1I΄Z?S[.P4cDdR՟J*`ӣpx?v +Өi:I@IH&Zy.0l fs?PbBjbı?Uy\0tSD ̾je&1DH5w/Y,|zgnԡΙVE E 5ǫPvan~`Fl/yUVUfHؙ-L"bu eu hNf1*x $㸮0PZ xoS+"kҧs|zqt2@|XR F7q)45`#Q"*0[j5r/svIQNt}E>V_]մ(s7Ŭ,er1{2_ĩ?2ݙgˆ"7ޞ_)F=I@臱!:~Uw%`߹$K6uuwOݦ".&&uꍮRt$8(!9"]&d I72&RQWD +h^C8RT'بrՕm~>~s'?~EJ\4ϣMrouA3yJJc^I1{R܀Î%.4cB {SN&99_Dhuc5mO"3aT%'sjˊ (?*n|Z\0PW&~iLZFV^~(b]5kUh^{h7CӔ>jZw.7q &rd2ICb&hun7 Јa1S\I,']C>]k-V TCO ҵgpYDw4ʤ~wGqLts|8.W}y}mʽ HB$a*eׇ\}h Dpo3TBwDL_RA5VЛVG;}ҟЉ3.:5T߆n4c!v%G ghr$NUKuںS-7} \XFQIyk@AP@n+\s q g!ݏNSNt`ʦ=-n#|w_~ _W]{uE;;6 8l^RUU:VS40򬬒e4Z11}hY 󜓤Sgױ|.L {hޞQo#]44 Q(fp PZH^bLi3]dvbhGMg6QBa8qUq Tx' ڞM[U Kr`s|Pau9lC}ljq vP9 J>+[pz[5u&+@Vضߦ̦iN?9sڋkGm, USYzծZd˸ :la% 2SD$<.c:YʪGV%Q3տR>*òf},.ˋ+~zȪ{eOA7c`78Ucm4BZI1~R+}QI\RAbr]Xǜj{q4cN*0OcLC?pMk`L+`.d4;'εL8uR 'i4~ݬ賕Æ jhdcڝr™Ǭ$v9-٘qt1̡u!*M4F8O {~ZC0 ߑ)a+iRޠ̆e+;>kTX"<ŠS`.PM Q'˦G.Aw@&wdx3l:G]I~tYp-3*-G֒)DS߻s-<A=>7}oS7lK!KaKזs)eE w?&óJ_bf[C\*Off[x[^ gcpˮ3_)ߛ#ةNbK9XAPFqjۂm[.3^[P3l>l4e4iAjKh|צ%:$/cĒsbSgku% VօќiR>m^d)/5YCaFTvneA\gsVhު[/6m:e LM%MCAbtAkp-lC0C _A*ndPkn2L]vcgoz6i&Қ6~`1bJZRk+JS0xOJ> 4lD47Т,9V?5ۙLDb}6bN4:qmI\BW÷_~i@ x+4 _:+.DeM}P<Ň& v} ec:Ccrk w‚8.RN Gk Ұm4D@&*Fz6-xM(>`ɥ; y嵑ò{ nxut.{-"kMdL4Oj Q$`%`f݈p'tM|Y.8ﶣߚdBa>+ xۧ×),o9mQ/\u@_|rڧ vam[S&ݠQ蓄Q'K鶗ZgIMY4W"N4< Xb,2;Kh_ K S>i~n1`IA'' t.k2DtD/úNzm7v_*K"CYʚ'$/G@45};؜$-P֩^I$D\<hJ9yv~qMa^0]e;~-,?t"JshpGg ZF6n- 3*OmG4> 7e.۰Q!t(X1;q62_!@2GjMMis6. ap^ ,p}6IsЁaPuz&>xcu546ncQxaFvZm7ڜѠ!e؋ms_;7HZE7Q*h(֒H^x(s |'[4ga^fMa%H핺Z> 91)pV& 1%Zpx=&lq7Vlǁt7 TOmdz~=LO,de% vcH*.GÜ`s Aʸwuz,( ~ ;KHyb{K96㬊 ;\0FLP<49Twv(:f֥].;6͚Ch Uk(*#NGom:O@6y[S4~X4bp@ +VM2i|ň6,v\J*1AF[;"v^aJ$y7J|qY;7IP 9\Л9iopFeլ"enZ㓰%4[I%I3=ژta䕕>Aο,bmz7p]X,ò.}lĦ`;<,I$Bv$Q5d.\FƲd:˕ˢ̚gdP'I'86Lbk$QRU؍~&+6MS0hxk|0.򯹸$UX4~ CxKM~: ?`Cc:ǪiسeYQa(4}qZu<*F 'HO MW:u^W˥ǮOPIUy޿܍H3n^3&Ff_z^VUޠx hP?1m7R:' q 4 &ٙI27Jg}3nAvN^FIFq5Ozۗa9ijnS>r ;D˚!GgA1`yoV. %/)k C"2x8tƮx"[+фD形[ݵ,O,KH*$K"M+}8G1?nChW4Myĵ)WByw˿~H , ?׮GZQrwFo:rh|eVEPvz:6x.\+ĕ1X~}/<%3=.gSns9h[W+yE4C4 \<Y%b#4t^J%Z|2q8*U5Vd}nsӷ8O`Z, :2@7M}il\*<*(K>hl. {/"IȒ6A\$sF6 >0w}!lpσ0"ͣhưr8O}v;t B, ??kC+f>Q|_|^7Jkls7B`cj xf!mTUZ`w8?8BsGocFHS߸I]]6+ sa#o#>1d~4Џ$Ev g ,!< A,ЗD$/&xdOiwu<뺳Ekhmt{oKrI,6K#<>؃Ta>7<cKx4J#^84*> }}zLS (K*D(ΘiHB n%iv].2yG$9RR-̼܏3}El&jlq5ńL ͹R pI{F=Z=QbJ*QqmyI4^S?&S^ڨ*zpQTx*q>SԳw^];.! NU5Xw=} F M|[|k@/{`8fA|8F/醶p}τ@BSつN"2&|Xq xSK;T$E𓆏J-4М#}X}A";:BP$ ek2@iEsf~?6>%2u" * hP~RZBwWz9ŐެONe &UgTq#==5"Mㆡ6xDj:9phWwy?0[|<_>Y3pQfQz7.Ψʳr},{|vne01enaXzrym׽΋7k7vjckk?m<8(`HX_r:e|R>65Mfqu,J/}9"2e5B аl.r0ZqYV|gu'(:j{dZ{8>i7: xm_v}}x^)6UWk ;24p\<okh\*(bӋ @51sɕ!ltVWem;92iSKw8]*kɞB~9񼾓˜IQfaѠ@3k'n4Z۾dl 8BsZ|"FqYƴN@{55QQD)*M'Dj*ʅw7(բ 4՞-l QʹmkM.sŢ0)FYҠ L{>BVM' n7#+#Drq3̴hl{?˅GK&Bk*6^BxYdWQx^#oBCU՞bBF_M2@j4ډ ,0GʨjwͼJVAOܲ_ʵLl3`vwL:*Mu=f k͇O4hE}p1ݍ%9;/\nwn*:-u>pdwyf̈́ q`KǼj'䊴0lybUb~'Y~FnBt 3tՅ()pLY'+y^>hlYit\ț14u@i[A-d8juzvE槯u@_iy| +ESP.]f:0 &k wCkjA|KS4NG˔4CUlꀫg8QK"mɝ+27=ǽ݉9f`=:Ee0S垞gt\ʪ$&?]yzsr!Xw'idI!vJ=Ft}0x` i9 v\EМ~L.jFCd\M D[3&Pȫ9^ q pN_Gїe"oH&Ɛ8MM0 mJs~<+c?:t`[M)%[+.r_WLYnkszi?&Xze[$e ;+>fxl{v7M4Űp1yKja80,ҸI<7?0?ʐ\u\׾nX_f+tA%vv}ۼzwIT%QU"*d*wRa+F݅ݯ ~q7Jgg_>қGk#=ӄUzĶ._7SA{_jEٟhuk3rC$_Q ' ^`:dڥ3p'a(kx˲tZH4ShzWwկ?9Oϯ~y 5./D#ZSrWw+ B@ ^[Ĺtt+˂8iDe' M ;lfJh.[?EZ-m%rKBmSWq6N;H੫ ak58Gcl*֨M5U 0=Kk(:cr=u{noHʢ \AسKV<6-h&xQ[KW蚼xWse *+`NցdYXɆTh$_&b|ЂV<*$K"}"2 yxʼnᴎcf}hEv0,+"xgNwS8HvUmӴ]8 q▚,KGD㱚y;#Ǔ9{~Y5GVf(p̨Զo[Z@s`*Shߒ[ͥgZ54aC)x6Xe=H4{WnQڶ3n:ubH|Re NnW{>Ԡr'A͔4'l%9 u=([92yg00| D|lr$2LFpy?=M6}&pH9xmDC&GhhsO2Ϊ.Et;6UMh_3?Q^9NT3D47&ѽuw` +cxa3?eR5)} g(K*G㹮vI-kJԵ(Fɂw(3yRǽ u5sN! 8hSx]}mѺo=NĦ fsχ-ê;!SZ E sO NX$eŖv[Npž0߽cY43 o g}y_{~ 2Ni'֣ O@Jo0pfT^jJC0(EfURWo jcq.Hؙ8)jӻ#ڃMÎ;p՛iYMWI~cӢIٱю%`!i]KcUQHmoيut<4O58Nf75 $l̪P l`Le_L4UixabƨY6S~,t8%, 8;?>s]d Keϓf^ضYyTB]WAH0U>! oKd oI QCQŃeZdG4aHܪ rX{nZK^unץU O Y zsTG٣:/׸!~!q .U;@ L@U}nCX.s,lh<Z.x£u [t{\M;< y([D",dnU_:,JcP|ǖBhK?5MГ0*NQWCQQa>E3cG%:e6QgsDU،,i .7nl_ 0P⽌8yox%የP6`50@0 M iaZ4Yy 5WJV+M5[Eh2Bd oN3Є_Un0Ll#nxyq؅C7mz{⩿bhp7r:l{S>Ry&ˆsoK&Z h Ç&s߫ Whצj&Msi\"j*7S~{jektTbuef4Ʀڦen̾N< {3:@!zZ444+<;8NAjЧ06|$WМKVes20fޢ4=3^~必oʣ8+<wֶ(^-|6$Qj!ɾHz :|-LgcPtW2@MpSX[YUIY?؁b\sgZa h [oaմ/ w h~ 9Պ7CE<|'X+]&*XZ̒5MeSQ fl @CRhP2V`2R?X[&~5g #v4&AᙰkwGd j`ނ;" x>eHtI^ R%r|`QRgbJmx Ti,T~'״sӻ[9V@ĶmApLJQ `| >a:B4!].&}KcFkX>++zU` 'MQ?"O|N1ByD.sJċN95!j?td4 cS;B=HG!E~ J>`-d9G+IsR(馦H'v i)~g_ǿ40<]bx6o>/z˾?EXҬ Ѕ.DV(}/ C4Q4+zAٻ.y: UU#JTjR&ʺ2Ehj9h?O<;¿~ uH[,{ڼȳLg:!b۶,H)ȵ=;c5}a3hGv6r}щ@$]UrDjFfv8"KJ4t u ?L ;YCD;.65A)5-nbhCsIvAfAqv{DwGKtqܔ}r]M咝E[#dU{-\YsMj4?%;IEq34`_Onh,(Ȏ⭐M+%TpKs܊[I":iY׀_di Y QAbdr.jIs(-(yZih+.nQYV kDQt]S0A,ˤF?} aTaz cc`MmJ+ dx6_mWD4J+A^nrFEI$ULEL|b4>  r}y#q߬p^.lAuSCC/5 $j3S ^?BR] 5˘utIPz  "j Vq4N}莨 @(LTgRrR>qy>q}?.&A]$wFdM cf(g7 = 8r\ʳ6y~{$-4T6t#AK0 }gnIP H6"A i>8 ۾ H4FD_!]@9΢ ) Pu7o7`PR#BCy!{JԜv^Px8 8ꡩihUk& :cH͖1})̃!"%F8~w4d{9wi$QE.lڜ"ɒ *ьlȺ..Hi}"SGIҍ"i Ju;zzQŃ$UOz eIeWԑ]ZjK`ް,j隁,vx#y0& H<9~zUРbD:^YӨH.~X&BXT|ja7f\UIY6D>%s6K?9; F>HD] Z_Tt ,ag:qGT93sVo]W/P +i1\sCj?ڐ4Ϣy#(h8K"Ug+f15GP m])1OSfva umNsNGt:Ӭ.lK H}[ȏfO1)yeڦQ__O'Eg |3mɴ.f]ߩw8nUI.yZFIl倵s_W_M|zX(ɣ"2 DoЀ,MDp NLJoi[A,ca#h, ?ُKۗy b܁GB }_5(K⳩|׺mYM2TaJ9`짗}ž:sAcP9&&i$Ҡ0b8cR.k=kWXV!'2QhW8HRDuiMi]Gpq*Aƞyp AӢVmE՟Us~<߿Cy'XKMӼu``/UPx*r}UHtU6N5auWk\~40L2"ڿMۂ.3C˔eO>!KnJЕб>(?Y'i| ͥoxZ8-31$8ah ͱF2)6J7,;qID8+0H/ڱ)ArGS撆#,X)sMqiaCFc{u 4َk85bK K ڗڕFqVӋb?lĒ5'sgQ+A/%mF9n?V6cqС_ʭ&+%f=W˦vY4liu:h"_7=C5Tj K5Wwq){YyZhRj@1TSjW9G! ;ݎ`ȌnJjk@>S2ŨsyV9(eAlA.cem)eb`TQ_BeF(qV+wy yv\&_i^\ BdHcLPf&=kک%]73zeZ̃cBc]+B&bAJD+!v$e0!:ŀMdR~&JUSBRy-GNwk\ ^C%i,K'wy.*̨'.y!U[)|$L9dCsUhC:iÀF_p1*  qHUѥ:۴[ZB?rU)c0 EUX7T)z :e nY*iYo[mp y0 ƣ`v/T`iFajO%UjY$v"㒷;g_ljR80q9K$mD?8@ "j\G(q FM+IxV1m잀8M{튊 ,0C"ɑ8e8 H؏?dP@y2 f1a<M&`1hty{A aJJ  \/ÿbv{<ȺufB?̑#[>?0&AxYXU5U٥NC mS ʫ([1-HEп7hYv{pǧǬKŵZ瘉S3.صfADE|Q{/|8\ bݲٚ;Qc }6u(ӬhaFisTLc9Y3D T|˧ee@#Omb^)N_Dz4,;|C8S9 ]V힎FfLs[/fÇui[[ ;ITiqRȵ @(Q潧(]2H2)zMh.%%"2@e:HlBSr.Pu|hͩflO}XeR@uҗ\/Yi 8105 ¥,2MsxsAt 6݃o lE:>|u-XRV*W_oD(Le3COoV5U^ U݆F̃t}PFeC>qÿ,Ffmj8br GWS7ma?E~%]͛*- vK3DPUu+3anJVhu-CNDzL BMm~UғIH:ͣ3;TcF]W7zA0ϛQDomwjѡ,F90΍|dՎSue6-7>FQEkiȯ YgV.fK{mhADHEן#D0 jtDxgXLU$,(R}G+a WI jc[E $S$ez4q|F^on*m rvD<4yJHX`mi&`ZTuur> ](Wu6+H[g>*yϊHn(BY0MtgTQV$_? a:cvG$UVتq.F Zg@NJp k/b(uH(e 6K&K/WȜ$QF dxyzӯ?Uu!٤hf\AU]ޞռءR(dk⤇\Q')Dvèϲ+QDB Btc֏ oO !# =Чw+ہb7R5o6ZM'CITݤKbf);9S@FܪѼu$&)G_є,\X7 ?cl Ḥq5'0SoaO߳0a HnD?#Ԃ,|z='abä6ooȺ [A:!l12Dc1^P\5DNr<*8y n%9SVGnubV>Zyu^Vr,rwdscܸf3<[/noz_АOˇs9۱ew?bG ҕ~QSGlbG#a模VC'$ϳ*B5@.wYS4o]~5,)M猯nWsVYDiSɱlIUuYX~osfg 0=նyƶۃv; #5}n]MѸ=u k]*%U&$mImMHI紧DmyLrAuoD}06-76xRE%UE穀x~]A+>:b}@XDZakaJ,XɢRvFH<_YPӲqg퀇S}fn]>^t̰n m9ڄtM'h@.=UïcR{ш&,98^'XZqTYWG쾰1%^SqZHR;F6e,J6O ^sQt0<)4SYeBs Nai'2ǡR>u:ƦEٕ 0&qŒNS8#kcauq{}-<$&) x,˥;'WuӛiE~y59B*MS%I$SZ·_:,>L ?ȅ&(L@qP A@-[;V#8s\y2jiCMAL̯Kd0d0DsAQTQ4]e2𽌹4K|*v)IG0"z|}{:$hfC@:_o!9-M#kD9'AIL˄쓨v:E|"1YQݥɦˍr<:& ;a!Ƀy g˲m=9DҬ. Փ}_9 0S}V9s#NmJ8`vK4=c\aj\byÔv0UŦCŦc,~c0:8^9XzKv ?}rs;xˆ @1FP O{6ͳ9jیWqͨqi@ PoH4y\8ڑӫ6wdraڅ|MEsbd,h&C;N麺ڌU1٠K%\N1}Wx./j38f]^DB;m5́"yewgcܫ3Y3d2jYW9K]i%1A-*NE R$*j}ASt4 G}RT =(^t4zuz? d j+,Vɚ<_>KJ/<>xSۮ.O/Wo4 Q^="0i<=rű z|(Iϱ@(MCtp-!8_-f1d5* dNmö;Txhjd:fw%¶XS2nJ\[9bI0?oҕEsܕ Eb]vJvsOaZ4c9>&DD`5h4>d|a]Þq@eˣ+Q:\(`;z%`iNy S-щk8@Vf HCI !'M^!W\gZ?5"5GT:2vp*; 0yZd~@O"zLrD(£6584R?{pNz綫M10 ?%Y|g0; 2řW9Ę(jEユ(X䧶٦* !,MNQ|f'Y.|McWӔ.V$q>MA`A.O%8b? 4Q|n0\ZШ*&GK9ДODs绬3l߈"LZ,{!le9\ 5C,>8)/p:]5|li` >|4{\}N LlVd9EC/vH,OKNLN/, ~s\_~tm[՜"Xɚ9 J9>q7@z9,t*- MnafEQ]i(^^%L5hu˶g`\9O,9|5V ֮.w Kך25QĤFI-h9AP!Ȝbڳc1S+Bs0qX=3M pUւjG0?KAv/e2@hME]+y"ǶUxc cƲǟ?S<'QPՎ<=GXe5CzKm ?5a )-a} 5H~hsvָA厊I+aCmBs`^4^vwf*a$z\%5nNX ߜ4x*(3!>xyXK)fq 4.EÞ9$nXŵb򽓩c5n 0=29 C0C"'^޲qJw?M?"L|#,n8BB\Ln5o[vGWU2y˷{>4||unT>R(Ș?Go{VHxs#B.OaQ4DaiEvhyop4+ 5D6h4]eV <\SXuH,U@ MJ20ȍi؁mA׼8V Ў+j 3o˨E}NX|h0KchNgWa3ȃ"{msm:9qX#g`+Knp/hU̝_{1iXc\S^xƦ^6˾ot$d Scô&ؼEܯosw{BײBR"&?X@3mB;B—jnv,+FɁiF|ӹ P p/q5bH ?)/q&Szxz'C4e؅~سm Sˋz '̍1Ey LoU),Y4mR^H)'/%)~3rs ߩfhh(TߐH41/n >,Q(q)j^m=3ͤ.ӹL֙Nk >0ȑAQ&wws+-*9=笡MԖcV~ViWȫ%5%M{Y kXR fu2/H"bGMT|uK"1 k[48A` 0۔n"k("M^èST= pm6zM՚~7Gzho9;yxzvh]$>\:TgC@Im;8m#\3ƓY}ׂ\â*돊ގZ'3=\`6Fx b7lIMS{@|Z^{\QV1ŭ 4}7zh.,́<ͫ9|34RF–|wGID&Ws>ߦlgJ9a;>s\sBk[3)=4 *%)5 >HyzJv~_?,HT¬FꚷRՍڄ}aX` ~@"׿u9roVtDHDsQ[wBp7PBw2e{6 Wx)ԙ\EEiTsKӕd|P Tɲ@~GQ$%w_OsAakb>8 DS4\aXSD,3+8@c[1x~=W;eyOq J]PC4f)w*rs^HӒn,Vvl[ñ].c1vLB#+=k+OpAq\agb]A  (iC?e~؏@|QDɶESu|h"|(+>|FӉ݉j/~xbrE=T3c*Zkmtx]{y{SM%ۓ{C|6YJMmpT6iR׌EوdacU5הsI_gro=v*AѶ\TT+_ck5~}$)nf5gพwq~/Ⱥ8MOr0,xgc14LU2ClMRx?x l= #S%@&(\Qpѐ# 4A?m4rsN_?Tmқ$1m+&(hQOuE%]쑀AHJOqF%gwvw޽F͌…}E땟`5 rrݑKX]0̆Z"wS2,*a!Gtr͛}ڟ\+z= 1>臣ĝ6240ϫ+c9o+P>UdIc׌%7dkcF⃩|lQ_k49lYsd=}MGC!H8(c P/jJ)paCq~Տ^Gҫcwfq}wlNaV\I}Uk ^$v#8ΜpI;U⊹Gd5DU[H=%< 'yjC!D5S Q~e%0'5ն,[!8!3yxl>KcO?4iTKhTkўmjB\[?÷)!nVg Ȫug?B틤צc'jKkC>[XOu6aR\DAy`8Ď Sn |I g_u gͭ3 #1닄 -lIԨyĘ<\, 3EfZZav^[[3j.jlP~댘;|3MqR<5U1^U`ݚU(_JVL'E|GUR5_ DQ'|;].\~; 8P$uʟfE؞؋Uh~h..A"W4I"&g:</G<o`w^/TG(: z\lg4*9ث7qU+tC,^B"X'дjN6)gkӧ֋ ?k?(x_˄z.a.WȱWK-_岀q~7㉽%v%u7,6s.=a]'`3<^TOמM;wB?_8M89Um=o+f81A'ԃDKqEvD,_Wu h~2t Z-&C P>v A4}m-4Ju.b[HlZ~KZ!"vD51[&i=LAOv=' EE]O>)RHc.!Z[F# oL׹jQ@45W0A1YVR(s2`KzE F(+e4.h5[5ՔpN~;IeQuw/8KK>]l;psc(0#%d7JEP@>Xzmo ?ۉp\W_^ƈ._; SHyRfMG[`\4/M17aٙcOpqPuܿ]8Z,, g%]ͷfMEV9OKP(ڶ,fPs@[ו'ϦeM0E%3rhI>oV{cXO ;lbIO_dW"JA@rp%97&8GDp@eơ+՟@ I34RSCUsf\§ p&C\&m"DBLb: ~nH~LoHvF9 ˶n5uo_Al6 e:ժlg~WlJO&p'V+p.9(ƪh\3B_7J.}Li}@& 4Q"y ~:hpkTwMۃR\JS? ;U!IaCkn]Hi 0z4DY< m@5ᕺ7g8p$,yڨ#qHC"馩̠+Vи}}` +K8Ăş:xsiijF8/;n5CM0"+ PVmNM]r5ԯxWX= o\(-A R ZBO`1<\ŕ\3 U;YO|yu^{xs+ud }h.4[fN`C_qCjtDG\~:m;kA"ڶv9;G~#dzAQ4# ӫ[8lzl6>q$IZrlI g[砄8HRrnr~\?^*~i PٷqctWSͽ6%Q6*ڧ? <\UN߈&$KNV*4OGw<<Wqã˭8.*#U!bU"SSs0@Pf'f*BJ*Ծ8.N ״tWܧ(sœ5bOC6oD@ѹ^#:^YW(jl,*@OdQU:o>5gADOr zҿ-pk׵-ճ/y@*#?pTT8@RKű A[JQZ@b 9d5C  < Ke& ox$i16Ӟv׋K !HT6 e`-@~Ґ`+{[%lo;~߭X:J!:"m00k^/OUmg% nDyU5HsAlsa챳,l>BCB{-[zTUWZU:șv{3~B=qf3RC1x˵*T+jC=(,?~n]48AV%<1QWhpqωa++/dgpuبdǸZtehrwAR4ѳv 6}x՟|O?O_BY?\/v8#[v",E9{$+hkA1_.ɋrY]%{?>/KL zIEA 5p7yRTI(d!k3ǫ9}qtIVLQZCѩA@3@1[VrЌC@7L诟.(AK&IjhDrYE1=Y^;WY5ɢB L<^J'ʣ2廽sA "Q4Mbk$̶%82[4uɪ:.*f:&1!4QooxRI"KƝf`0-:̡6D2"?.*iQx=,U9.( JMS!T> :n"˫qxs_(>S v`Zr|4kHskjhOv骡9-S@Sp{jtTq܀CsRҨED{'x'S Bc=.Q20PuT7ݹI64e'LWF7jgfh\alwK!sjNDS$YTc4@u;9ʀTkD+ye2@e4 {͕߆h|so%9)E+x*HCqhIq1C L`J B }Cb$Wbh DR ٰԏ 7tKB*DW."rN|q^+DxI0c֗k 9&K <\}Dg@sˬH#L;xG?K\ LASCI ӱ=.'t]UUw.w/?ۭ/y\EgIA։r6p^`et/0ݛm~(C%[MH\15M'dh#}edu`;b?~0}0]T0/v)uyYg*@'+>}9Y~Ck]$|iDh ܯk72&NShJ,NPce9Zj*󢬫>V"sbQ^mhuGb?-,(Ճh߾Fyh6+jdך&SQ>f(íQZk`,:0|0h嚘`K;Y1 8ԲVeyx}=WbhyTQr졐W765VhxٖuZ2悴)8_s`z+\ ɱ[xڀ)KzJ|fAmp9_[kiE9T62?'!"Ne+F/rsS#4 ]::8`YA /#,WTubt=Ld ~+m:^)ccoҸJ6ȓOp  s %̂4'ͱ.!nf`v F[51EU2zy!4YBA3J L$bB M9&'hnz4M -dz𗀨(fnwn{g::Ai&yػO6 ^ů~ %wYQ/7pyxK%JU^]C'h j yQt>s@mBE8Ƕ1ώNb^+*4]^=`kQT2pvL ]i@ÙB>0N8c\bX'<zZs A.e vAy:Q(0?G`xYL \W!cp&PDXO"I/GP ^p^/_z>Uٶb?H(*Tiˌ%zD$e:;s,ExTT="78@kcxL1a4n`C&o?`Z;3 rO9 dP"NۻD4UM`*&&cTuvOM:4I(eue꘣b%| b*~6IHpGᱎakԘse4Gݮ8˫@o6uq: <M]@rYY_u^CL\*qvH<07XDܵ@7q4_7z&bS#O TjKݝ0j>KSMZyf?Gssuκ''ܹ74`tnʫ!"hKlL洹޻H>3;Ĝ Q4O Ǭ: 웻\La4ml[\ gT yȪr ;nn[CDB}8zSHTO:f}!k#r0[ ΏKAL p_˒<ⲯ0&wL: C#O!PTC36\sş?̆8U%kx^~{a3ai3 }z"9qо{u,aiFEeF=ιXSGǑ_8*/)fʀd5Nм>FmW(,S7LǵQboEk9i˫[xXrFKib/q塥j (Mk o¾ i?:Xpx},@6whX8i5%BS6\l]B<^7M%4PV\*jZjpl۳Ǟ22mڄ!t@0B$K&0fi en;PG3q*SͨBhYdi;y y77۶ lмz; h~$Op81ci`X[%(.tLϾ;Bj94v5֤ì[$9hcli g/uho4lvɊ )OhWuğ_>q>O?9u)2ZK;sBEfbX;iL0%YX*|o :{x TdGs#q}Q>8s2Ti6,[[q40)Ɋ]&nzH#m˲>N;iCgIk˵,tM"2HGbwŌCWi( -۶qdX| 㳍EU8ޅ_W72Vi`%ni 8Cчo eZ?*(d[Q,.ldXw@, 37-'/H1Be\4 )j nGO-&f~aG'{`/X}&Q͕̃ab:h#tӸ.1P,b˵=7#5ӑgKi*% ]_*otqGJ @aMR!j2t}\|sx`8A\?;gɲ$~$Ţk0|>ޥQ:;P8*(:}{} iaR̘.%Q UoXҴ)8: @\B΁5Z"1/%n"A}/m!_H%6۰(@Ae4"ҼwpgIn1ڲ8*X צۊz/K6DYZ6y]7gD 2_ܱ[,j&:(TBOʲ*CwF[ 0`a'!qv/*˒eT0JTҨjơ,SEDDFYeW=G QY[ϝӏ4ǟ%sW!={]OPYh G (&UEmԯ>[$Pӊyd%|&~ۂ=5X&a.3Jx4hh:hF-4l3(և/܃;-0B5ͶA޺ښl,[~"6uڄ.Gw`0 bu`rl.ܴJhFuԁw!2%`OW-UɯCo6L'b%@fo 11+/!ͳOʊG4` XXg ӝyau"wE@f ge[q̅eCQj;N~*dҼ*,uD7Qt%Ssmih^1w:˼\/Me\ c;{n%(vX w2~x8ڴTTڏG~?0X)6QuXp93VVAۅE,Z1b[M{jµ ps5|azdZF֭"j`t} -@kd߈4R5wu\ j%wf;Ӯcgi ⭬္$OyTd1yq6$;]q2ZhvR$K>ln܀mx`X,T#Mv;eEW:Z0ܳ0sUs} ϡ`I4κS6liK2}D 15U~(\teělkVnZ b3 6tګGqhe@3C3\ǑٺV.ƢV kq]w&uuut|{BҐop$^X#& l(zop]&4E&c/24mCZtGd:R9Pz 07l A$U7syMܺ`ߠZѶhˍХ -yVvm* ϼk#Y*HXTD R8Z{ߔ8AR{Vt4B$ . Usf*U;B'˃ VG!h7L%Hrbf/7kF'yKy ֭YvYЩh0&ECc&:_ :%c`M1^.hM篴\H֌wd,EyDw9wL) W~ ̒H/L3qNމUY/K+j~~;1\X0G8 0qގܼ hu?]a|^__^_2>B>~zvޮ ce[MaN(mnDŽ&Χ/yi^ũL!緸a1s6!nCרkg鱾O(5Yw {8ϲ,]~^|IujܤUˁrtsuj95,!!duZ=O7G4 } GǭH(y;߼J`[exz]64>Y p5 wN0y襊1׭jGaۃc(X1 LxӢ.MPLBz}YHdQYv}s`ocPX6>ARC3ωʫ5p/)n)47cYvt*eXBLL^TQQ \5͸lw0嵖wh2ޤ9[%߆! W2MؔM;M&Cw4gǺ*,:"LyyV6+J:P:pI3"j6$K%*%]4oё'`M\ ʶG9O9όsj!MƑ, Kdq1YҴr./aE>d䶵hqXG fb02~CC#뵇[t4/noCTqZUͮ b }C9v44n24lKiƬ4xE "pg&Em*GM&+AT06{9"D D2)^b2WMup3u+qo\N"09yk9'p-utL9ҀiƓZ FKUcW^. .ڏRGmm/MV!dpcD } . b`P+uò2[xl]HxiM- v0D&ާY/6P!Yt0i!EUR f: zϹabuJhyWc Í"c*!},| pu^ D<<_j@SSm MUŝcP&Ik0 iޱ{\_C 8m׳K[G"%HFqfNMWn'XHrbMhn6'ѫy6ޢ5!vhj sKRn 07?~vɦCiW1EOPMSً-}p5Cs 3`߫c꓉ Y~X!Dnn<ԻgލAD;x:!NDy'h/h1m?)vejQ^u3?,qQF3gp.47Bg]XVfB)Mc47unކDҦlnV44Q@UQL348=tc{, jpI3P]‹-;7ͧRCqlLD ~J2],uT `c:GxCP Mi^3:aJ㲬~1+K e߽6Jloۥ%B@Teu[pЧWA{fr{="hBDYux~O zKr}3}Q~P!-Σ:+}7@%;tW tND<.@f';1dHgy53 BŰ/lDUD`+s3xfoxƫ*f@㺮NW.<;1GF4#|IKpųh;Bp eYR;_KDydag#8+*"R.O IUکd4'dG _3̌(uܳmSa? 5n2s,33UyDff+Y>S/ФIEύ$ S"W?{ˇ7BV}:.*_W'~ke֪s"j ؊'f+柠]+&9*Cp42+M`QT@WZ1h>˸PRtbAle!~ʶ o[0o*B=s)`O9$b44QC+' pR\\NE ]TQG4:nf ӧ\ԲyhێvmYl_ QDY^$Y1Gx"y| r`c rm@ "LYY1 Y8M^F?݅QVl#RK\VDw£x p[O[o,Xc=rU󐑉b eNx,t8A'<|\,QU~2u݆]pc@P≈ o\'8ׅB;{cKX]hxtomyҮWh'99MTʹF!L<2[6wcu7`]6s&7\C^fsP64 xٶ K-Mִ:p}7.g:A+ͱITV8|ܛ_#82%qnXy4wW8B~1E7$IcZ? i`{\Q,U}گF)_+>uZ7[Y񱦸ザI1wp E(uO' ܏c ^ }9@Nfy/6VuG'aYV%148@g6Yv\Pq[_@c21[pKߟw<+ACC4*'5~xgl-0$ŰaẴꣿEL#ßQq󇡜/ Ԯ{Jxlq;gw~+Xem{/ D aOA4em/]/:|<ʣ=#"`C%Bt>;ͤfVRW|4JӲ\ܼ5oNoIiqk?3Y{~3?3 f^`@ze91&m0iH|,_&Ɯeݲ̈́>v !8ioݗfF.Ͽ&6.U'u Ԛ砡hwnE`:fzY6.L(s}(D ޼P,҈X }ٰ7+Ф|ht}R^˦ [N5;g-h2*hw-G@nUzHm +A#)'fF XH'q .in.VNt"CuL|tC)h\Iv f/. HAk CSKuwhEzn)Ģ۷4pb\Q]nz?uNNdn~pLeya ‹-l艵. y;ΦN7O'a "Ӻ*.}^ȸ0< he/O"Mw(V* wv]琩96;o;AҬ.pxsC}9bZwBjܮ$iW:Wzt;箻! X/14i'U?ι1Besl쿹6%@'i5hl`,\lv,)wBuƴƦc`tJ7xtr ݩg+N:\kwo&/Dr5' $Jgm] r Da[ɸH*5D W/,Ԇ'k.4tf:>#8d뚢YU .gWC-Azݵ*)벿٧_e擡ڹl TϨweYY"\ S-p\}P>J$uۧ %AB>uܶrwn,qG01_q[3C[^؏c8_oThnHvM[2s ̜ .o8U Em׵5ۃEx乻0pQp<:?t",U16CCt[Yxd(~PHRFQۙ9 ΩSH^UQGCt\׆{6/MUe[BG 񝈍= IߤqǙ'q`]kt{)dUQfm] ؈*V#MDMe璆0aak1_("@Io3Fq֭ ش>?ʤhK{xnO/vh|1"&"C#4 7wM!]/x[KҕP("-m7tieO"5[ ,X,Bk|{a$˳q;e"H,:чڐtuey4N@r%N5rMCujCƮNGx~rH{x'\B{=#zFUR 3xMW]mO!:;4CRCf&{vF=f㗜w4.zvJ7euLjsmv_^ƻ.UVصh>9z br}DS;\g"q뜀2FS73 *5TLOb()43D~pɚ.-mscYG<͕*JZ(ÅxhFy#I|ih:+v(CEۆL "/D^ CxCtt|lPޑF\SxRx# X&˪LcQ(<?0o3hin7,,f1Uhn8 *`M l:y3k:ҰZUs<>38 4(Ng­pK4V_LWbl&QڶsS kt)BOJ$yM⽱#0woe e]}mX<4#^r k6uxNZVW,H$ch4)1,]s_l: ڿsޣۡ17xKePm 4q@i~n]I!w9ǂ~rSݣNb60;,~Zhc+`\1cX/1@RP-UZ@$]ˤ;9瞽c2㶡:dRl"lKY\3b=UTmshg`[x2uvgbФlTv 6>6鵄[Otٸ? +sF)2X^vt(Z{‹ryH@׸;C9HlG55"#CbQqT@(tyApaZ.G"h7EѱBm:Z?$_t{m8k iQV.jgYn-g+њ8IriJрW:J]As/."#bb%.vz3#;jdy,Žx͇D/с*̋hoݑpV{KƢ/BkWy>?YvLQ=k&gN7ypE{|♊3؅H+_gE\m#c=t< pPϊ2Ӯπ?to᠗_L;sڌ 陆k܆ȆOnr=himigRs+&MfQ<h\qd:ԙN!5QعY-WEޢgA M:h?:[/֗E0:5'{h: -ô4a3{Df`Ygqkҫ˨lŵ@l|u&aQg7h^`<=x)B@lm7Ym&!T|9}< 3Ļx:us C i7F&=2.5=rm4xƖ焁iij㰷L"hp[GQ4wVκLä hNN]K/uplְ~` cbBq|%H$p~M,cpi7RO BCA}k4_Z]SUTUץ/U/faiXx03;CI b Ff:m?ͨ_LL4ƈ T&\FA]ԩv~_Ko~Ņ~O,./̋/?xy 7q\a_ԫvכ=YOͳ,DTݰUs5s竟>rGO}G.>.&ބA&Ip SRxe[wE~%ȗFe*[ĚYU=Z&jyg yuMGO ɢTllFEDoȣ(H*Umۦm9q4O4-ghf=9rF "4?F1s6#hqryм4Ќq,DZ CK~mPUq e'eu w:)@Qv `4`e0),q4h WGiOov:&kR\53&I9M|%ρAw推J&%_*p Z/`|?[=u*( Ov`e=q?"@[S+=h:+zSf/W3O5DhRm0ӊ4Doধlr^Be6tY%x_Li9xN[1a`Pb]F3L4Ӌk5pׁ6-A+lNv>GUzFw 4~J?M&ɲ8B> ;̻")? `Fs{G21$CSZ{%Xq`TeRe viN²\Kg(f%ZvT`ayX#$1}a&KPF 1ereGC?Gւ;n Hn`2:v~Ntp ݴ{Nn_ sZ#xNpx`6>]]JD8#{ս;q}JFf3jsޞΟ٨#Cq gV$oC!D<)p 蓼raɌec~ΈoX+"B6sÉ>x\WB ,yh) " GѬ˪̰gLr/0T_+SRR[O}rQgGN *a&Tw$ð:C4+T㘷gT2N0h69i=c:h 4cUӣt7|0royTD&l8]"l hb>> c*NA4ژ,BM%I'':S,%9,]nI3ƗA(9hB=qhv*4 [Pf~[o0B4lXD y3%ЦxwMy苡1`G#Do,J?A`V|ie[3 SbDF@Wri۔ U"=BqII 컑K)D",6e؄4P9(< F2 ut+lҕg#uvˈY3왍 (cv(&4ns=tôFb?YN%,܀}@6y_<ß}}`nn'F(j˫3q?,mg<>A|tz-MqQYDqyT! ~+Xx\Bpc2Hʀj n6G6lPnqx9թ̼,x9)8>? 4;8R߅> M R&]jaI~Nce"F~)D][ͽ9z< z:sh"yӾ>5T]7/AoiJ`3TNtU]Tهy<[:ymny~5]4B/I7UIaȓʼl/6T%O3ycRGI {i9X[GX)U֥ O .x?*#EQdA@vѨs(Kq :;;7WvD~n9*Z~XAM.#c1[_&Ig*SV*G %ܫ%ye㤹mf 0g &,0BuCA uVm?β06M յstr3cOI45q al#cnE*=A4UO->((kӀ}r*[GэzD%5x94bii,yZ洇ہ<8ys΂=U:VM,BM^d3xUPè#cy0lj,er/GXe4.tCL%qs,2m =Mw_ec`Wu'!i^Dp'=c%6Ms'iiZno6%u0T hM=w04)1(J/ /0`'F~VE T<(EْƂPuhB18Q=nsCb/5{'QJatN d]>V" ~}{2qr>+ xD'%Pϲ\(VY-oA}Z%`n $ }-U͇/~~F(iFscrD (X\y-hXKez ѩQAl[PϢ|5x8rM& m@L<7m4=:chPwgah̯Q*֡aej u.Wb|V$yTrqG&?ͭzxDӭV~NDGHXY#=CYo=J :ʶpʄ UUDU;vl7ϫW~ W6R؈$"wV91"Ks Qfp% srfEY@y>Ϭw kui4(EQs?|s邲KIKBI(K"/I3i?ĕA6cPRjUBZ `e]ީXeg7VJ D0^灟ـ@# \O{Z,'Kgb:W2%t5e!fNT3>>w~֌X_V%)IgU}Zњarq3k 1hp[S\޲MP47$ :;hݦmV3P̴gT׍ %X"V 4V~1#E6uL0LmjXiDUch~E;ߘC|`*1M8mx^s0AX~CCu 5gͪl4QSbW,N*M.Uo Ez4e ޲^ML } A׊SiB$kzw6_8e9|;TlvHiM'&xUC?P#$4F>TĂ AO~yUIHT%(˙L['v0E`QcU%h 8f溁eD7М>(,ڋxMȼ r_^'SuZ%ևmRfuPk#QFR$ IQCRl+V* ˳V|~~@"e-4Lÿ 4.ʠ;p|Fs)z~]a$QQgd_''ET*u&G=gQ*T%S|k!91@\U,O3)W|~H:РɗE5ck)\&% Ij;W܃᭲;]R=Ŝ@'ѣ(+>av "SDTߦb@ Vz0Ǵ]fA"up3Uڕƕvq0>9fw0)CcrB%jDSi*_*M/pv8?SL^90lVeUQ#C`L1@]%zYN&AyCy5U̹{8d5+ԕ;_5LwkMVP"+,I!ϲd]e܌A0~V.ao("r\DJ;zss\g& YvmYIG:MjW>+,(,M[>0uxꕪ6U{?cl뉓,k[ p*QQbۂA('3u{}/EIXlQƪ6_ :"28$;h4-45"AÆaqk 1,X]&ٯyPô)h{ҸX/IB~۠8~Nx ;qV[3ZSNTZ e3vZ"hB: IЀD'bN=[Ex'H=^D\[pz̡û"j8'd]^UUbenq=rGV |ֳjǬXw˂|`hO;ҟ]Ѵ7VRTe#hWCssǮj36]gVW.]ҙaW30.h;|' b&chV48m?7cl;m 넪@ʧ]Ȳ vmsc eCgq>w(D.J=c^7/J0ky" +cfhs(D 0].LUvg4AWe8$Kch:4jZ3cle4׋ȏ":_YzQ׸0{7М0YpPoF jXeX%u4d`H/^60xǔ&% [zԙƙ5\[K ~^+$C?%7M 0J?OCUyy10}9lr 6MU$UQ\_7f6H(l.L+_DKh/YcĢĬef6WZ` e&H5*ˣ?,V=^4fb^ k],Ѹe楅] Lo:(0 :Uwv3G2,i:A3 MbUoI&= |-لvی|iAX_"IXS.ZYlNcVW<#:vk`0cS8AfXG}xHO8KYi2*7 WQˆVq14*S&ua[98,i߯0̯4=|(3"(U"qP +E#PH6]ua:wbh$(4hT1P>siSi)ƃa4K zr ,Vp1b fD/M$~#r#htJrvI&I zCCTHTV+t~>n~M+&&X !D( +is8j*cBQ0' d(Ǟ o1;ᓪ<B(gQA[Ϙ Nu&>h31nL#LCz} Pj:Y(cCD|x>zvZh="wb7l2ߏâlbR$(E"˧k}8,}qc*łt#I mmto&|\Lgg'2NcY6;iI.n]v4X}#hT,'; .KC, /:1/bٙ\.&qۚ!hyՌ'2Tf1oC^,4&CZo?䣮G^+%X:J6oC#Xe\ẛM7МU9^Vn>ew8NRkJYqH]bՃg6mod܊Xu.!-faZ [KK~J -HZB..$B.:Bfbdm'Tubyeo}Z2/l.\a̵/}R$J<̴O; ĈуqA7lͮyR OE"l$LkMw+b1yRk4Ow%`cڈm514  pl;&vFU\I"vw`&r9P24g? xxfL 4lKr*,UNc|ׅL8*{fS5r =r,X%q4)Jt8~p=+7Ų,@e53Zr=fKV]r2-灀yM?-Gp[Y}+pE(CҚ59Ks"? ^~ѹN8;6/K}~ RuV[fwaZ܂ &6k -h4M.k4Ϸj݅GgDZDӉ>Obi/]#mHD ~g'q5fw8X?#KMglRi4?"vRmb]*ȣޤa6ba}=Pf{=XaRɲَ.&USۜ<֛/r膯wϬpk:󕅳e"On<18$J-a8ĥO!0% BEjQ rMs_5}^SSӐ l`␲ZQc_ )$%*A:vX"V'DLb5)A͉HOZoq(5(}t8;䟟4 1o^h{5ҡtKFL=B`^k{329APLg>84`'O{W |Z@{t/*랮s.izW΁M a(&"> b*G*DVGwXfEkAې%\^Z!O'XI.< 4,0uY4e6Lqvfx?-$4evןP=>ʼI%~Z4zSMVp[6օ0ijz>}Nl' ޑЧ&47`ID+S9By%A} A.^i-2m*FHB3ڽ}2H;PAY2LӦKLs"?x( ^.<>X{F)tS'ܥliiT~V(l$`󁣺s\ 5?qCՖc r0xu׊R5Y5g#fXN|cVHEL%hP}HYT !/=09F=e FY %f F̟2 ӖlŃxWG:M'Wk.˃zf"CJq0iQ^jJ'_G)(:cnj֑q1M@°w~{yW8}:c +eϚb4--~AE| fJ(jyg6s'fˑ~'hNFYK?\OZGJ O/+<І "P8sZl)f8+?%Q(-h\ſ-i 1@\g8<>wn p \[v، b4pNQQ4l.f6PIJY'C`j%y dIQ`tU&tJTb]ԴqKPh>V_X'-%u//*Mr,ݜXxN9 7~ѯITf !Xn1B q.whlMI s*֩6V@A͉ (Hp.Q-Q4|纘9ǔL$ѬuxwQ++b0 $ϑVxXdz5bhΊ'zh6Ѹ=e6j(j6Xa5u&mLӤT[zbf 5'ɒ1X~"߯]Ͷ5\m" 'L4y4)! Z~ػ^! K$Fa6+hWw>%q)45r8k{p,,*|0+10TcEH`?y9hʇɌDͩ"ȣ|+<Íj5}LxMqC{Ϥ jQ ?dˣ!Skue:>|c*wO~QqφӧW a]y+4M6A4,kqT\Y*%zɤ蜛c".FiK d6&u~6:RE)H8Ǻ:m mp9}RګZa:#xcXa>.ظwi3Xҥ ;(6l.i7a[9VM'NkY}yKv؎al?Ų|~VA0G+et6cF2[j=j$|GfMæ6#P fQ6t89@3YCf@h;h m+ʡ#WU914jȍfw|AsϊqPCe&=.7u Y " /O8 h9%Բk-ϲKTTMҴDH0y"&8Lt;4iy]zOilPཱྀdCskPߴuV9kj!XMdt$e 28vwa8\I_ $INc!}LQ;j1ׅqXL]o{Sb)˥lMW5wGkf;阄PשMPP;|?s1wuv}ˏj7NqaL-DZؚ@)q՘C+r*M!e]kWk-=q'z]FP@>*vCwzJ7 =c$/PWU]eo-N QJ ? +%ۧgXܹbg5o{KU6Y)zZ&Gc-)M0v5 r{'aYJ?8&1%&-Vc%Ds APS$_3\R[>֙ R`K@ݺO|Q#=\lF;C)5Ubx4Z:BnXqtNRt-]dnƽTlILw'ʲH] x#9lגMlLcJkQiywĮFQw146u^f`pZ6ˀ݃6{u͡ g)G6f XL'NqWC2PU-T޶*叝¸CZN%[NE̫E |SX%\#ŮY QY· *(B yvv超HTu n IKMjn|o(R}*z0ɄiJw!,L1z p4d5,UՌX4l14DŽB'rbpnT¦㕡JU`¿1CNa#)5V7}ҸwWO9cԻr,d}2fBc"^ p0sڬ-|=l>NU%)]:94ћ0 #65 4M傏JSbD`_T/h:hڣ加%X렎j&2w\6rQE}'n'f}cRǍi !+"͢C5] Cchk wC"2@8tX/ֵļ77UlʆMe'hypuk0A#NZ\ $w6_t.m7IiC3tpflĔXBG'*N8-޿ 7MՒL@'ITQL2-AسpBݎT[ഀw+q}l.5*qS ~F+w|Zi[TGwe-{7eDC,öӞ1&/µ!F=_'ҦPǰܡ  Y*4%$l"DTM3NӘшl;V9K7.eM>[a2y;ICD+9`RUdRn DY`qn)pH[~aYܟA2Biؖhł]Ag<_RO]ۍսTY&*:D3M7NK xy>o#)!Sb[ u&8ZlĪ'('ohI٘,q61_-EDU0)ɣeU_I`so7NCp.y~N'7\ O2tщ"Rpt%ma7~{s# şݮ+SKD2j1q6{pp09S@sڱ’ >h }X8++2dSqУ{l(n'a>|TKPe[,<*y3׶Tb,oE_|F%:v5ɥHga=iIX&LU,5lc9W G!erpfs jSQcu]}D$ڣPOC91d- 㨔O֗_!J47hܙ0XreV:wr+ӅN&Sy8pcD`u}|&݁6}ٶh4Z!prFpvH?E'1C硉4IB` <'}%b )Y^ odJ1f蒷UiTT#I_/yo>~+Ȭ,cw*m6~N?*:qc>#h*VP^GtE`^\Д6ZV MBCBi,zzwժ:7vk~Vۑ5~0ʏd$ˉմp#!dP 1CĨ0D`AH! 7'_}U]cg[{񣛛 ~|ܘ7~97??GAyEtl_az5E >Dg=3<̼|u_lWo>n)3`08Ȏy6~f XM@a'Ql^-Ѽ ԛ;g|nꚢi F3PA~G1Esܿݹ~}WEU85~{O`hޝA>QGEvs?!fnuGdBd$mqT Dk@4 gq,xGj><;h13?Kh$MSY-IKY}ЄI~MuD6mhcS?M&Y៣,k}@q%'qźf(|ncs9dy\y4›h>A<&E%~q QBlYrfjv`(\}G ?TsfI5OqC-dJt>  30gT28LÀ0(jFd)ԒG(i?VaZ/-VدݛTY%]lk. |\"jƮ7uQ>QZN/ U1ЁQ&̷A-k<"?Fb肮*i2'ı=rr?aɋ(bX8;*iZ0Q.OB? J.c 2:]; |51ubL:j( Ґl^Oߨ Q+4/{DNL, ChZ\C~:b>.lK[~8*&Ԯ\f3%+]P7:px*è&KUl\Q^X x=(/;6,+m,i~4YdD  Z4>>`M4?EOsFw},'CC qg%q'HIƕ>@ mc 4laШ*Dkvz&@9r fW0O ^kГn"C@KӜATЁ̲afmT#@EwcH~Dwfջ~̦iMxTMQ%EC#54aB`~^Xzʵl}nII5TbWq|fK-Q1ܩO^k>$>*<:yr{!钡s9Ty{r*˶]?!rt~>:?шK9h);ͻ O1Qe`^;i 9 3h2xFb'MQ)-4{ҸEI0͵BQo 4hc?l6kBtU"zOүDyM46l@I7?Tϛd4NڄqAPs m>f94~p:̹P n/m2s~K'~Aq ÛD{uRp1.-J`%)"hZZ;^}P'ar,fHZQHŕW=1 UM~殖iϙ7Eh.Ni9&OmΗAgu%.,qAIhw_Kȋq ~V5@u؈,;h蒤DIxyA`kkAV.hDG0 nek:>O̼kaJr2kH,' 0IR??eʐϙaʀ/8ZA3E̤7=||'ԠFT Nc ;iF28r`YPT6*lV/7ʕr X2x<{8 "M6Zn{oݝT:gfXRBx)siMS@!*h DOKZCZ4+9JY%i'e=z?\jD3s(QK;!8QͿ v[ آwDZ.3\KsCnlٮ}G39B,WWiZ_ȑJ=Px*AXeɪ^AnI9FZַHCG],5^u7*Z_;ETɹ!mSP)85۰gIV)C1K|2~{1,Xk*)mbσ4ڊ-˂{#׋y_[w3D  b^|0XPZ G\2i'yC<@wxZؘ3r,k S&OԵ_Kf G`o/" B/JrvC4Z7Ɓ &A"h<0~V_vGt偅w =٭4wYRà ]|gF֭&@?U4WkK fo10#"(q4by,@ik -0bD8:_LXQdYЧ sLöM9ӘAC\Nau]h>"fCs@̈w$NTσ9ӧms,*("u^ 8Yen MՠMyHt}0 /m4̼ax6&z@ 45mVEpK7m* [78Ȓ,*iӲ ~n(4fi6tМqGp1,9ՓxgY'c~>} "BO\Ai &}>戡Q (DS'hIy0ȋ (Itmfìe? >SVVMϐD(J F 鸪Gf 訩f=QD> /alL& irGt$j:v#]Cky\VyT1-6EjpP/EW!#\sE4˂ٖzҫ ,bskP2neG`SW8a$y@|2JuO=Yl2nᰂHFPAS [dhEUyř%hCh)@S:_k]3M 6e Dޘȭm}/u7/rXh,s?qWs% ̡@o^J3¬χs@t*k.i-> D_ˆb?ƌ8b u1-knM A71>Q &],aM"8"`.48FAq [ 4s1j?ɗO jBgyRTzZKj wjEL fwWײ3@N K}As֟ }UzyuO[ C[yYybQ+Bt7UU-V:/<ɇ&óhPLN$ͲH9̡}h&i694" vj84??6r~K夙\ Ih!#YS210>K)n4I%60B\OxXQ1MW,M51^,gHcL|LqZ2MvI+npE-gW"KuJ4s?l@ג6'>G'- ZhNsI冕 3/sb&*ڰ2m엸,D)xG`IhylYB1Ip3~_:L;7Ohhn Zt*Sb*0tgKsoXU%yp/X\SxV&8  hP؀fj4E1YA& _M em4ݘMA6Rh|@@b@PюsA0 AsXW2 x%~qUJNKf(x??C=.ӈa94S`D5 D4:(qI݂5E{`1̹}1 Qz![&C9ڶLQL!4l2 ֆ=6u{KM`:%4qm[aDɴN : ĠQxj !mҞYxu Ti&oN":j\/9}\ni8%-: cetxK*I_{ NeP ؇4 5m KȓӋ kF3 = = bC/pٰ(Mj 1`w]AU0HRo 4p4 փN/7Yzl; #Dzy 1ivrrK,,-^ln'F4yCOG8cU~W6\ڷ@VY>0Ȁa&n1O0^=!E[ʪLLAl idm:q36B ,k*:o"QsW.BIA.zdд憡EEhMqsJ*<[`Ul8*E&9~5YҝieQz[djO oEDa֡ƠZ tt)u:5d[YտȥC0y41c 3s;)v+\>dYl DOأY[оBpeU[44ک֎M>4q1ۆ:@=(d[8O?mw o@((ԠX^a^6{Oi[vިm/.|?ni}}y7ULi!y|jcIRK<-B|" @ʛ8tEЩ_ g+|#' }E^[^WMS-*N'9֏c]FW7ʢ,a=OCbJTl/+ _NImKȖ^pv.*Dvh2$uO$U1ډiV{p}SjGIΦ:/]꼕D T.+3j3v4ا Ш8@?,p5sv u`v&"#;[J<:ھ7=H(d;h+4hX 3<+֟b r}*o/E)${h)(Hƺ]o5?Wm\7ݫC7uc)*BR:{ו@ppBY_2XI$M ͧ4Y# .}]G!ÙhщiK4қ^-=naG:5f8BQie1{5Z&JT[n+{@𽖒tӷ.jz_j:ʗ$d=]YUS,=X3n+*.Ŭie 1t+ U֐D^Fseq,㺗mrmhSQ" Ċ:_pNI= RkM-IDR%YYVW؄<DŽsaEqLG2ΫR+lZ^( (a!yb{uih,IX*0=/ϙ$˓Z,òTfcyQqf簔|q./%ZgRd~.> Mam6Y15.@'eMUAs<9AhjJMe1bm j*(}½~:R}ym&:Х{>acJ$t\g6[Vkx q@|F`]oa[s%h+94rXz3h_I2&`6O2UiC% ycN5 y$*]ΉqkXoqր7.?6{JGʢ:?$xɳy%p*VQ+wItu8`wFQ9LAmhޢC%? } rk`!6s}6|`%q**|N ޯ6ܬL{HĦJl1O宍讙l68eyf8.ؖ;urT?C ;I@?eg)8`u:-) *l awhNk+܀oFtCWvgYj^5B=Mt{Il Vi¼`bϵ-r&Q(Pfhƻǜ[u$M%B` 21{a޹ɨ14/Jza\ks+:Mfm-Ch|ȕ+ |fweޝGɇOjjP e6/SSEaRv 4 7ob`@/GACи-DQ ]J`Qjona4qe>vJ*@]ϘNG\ -`}ys0=MgyR҇58Ш OͤOyFCfUyIWu : \]h$OTq`),hL&^<(iQEccǕf캪_VV.bŽ"Ƿ^ٳ }HACDj=s}D/h> NQ1%KtE.5b_j"6ǹ{ϧӣ?-:eg ZMUm"N~{"t =K=:ȡ#/]`MkY~.M4M&ڳw](g"C wZMC$Dީ4zM<4hӓ1Ga3XՈJMZZ`0<ӞCm>Òx.<m hu q:~;8c:?b$Ϻ#_'}3l}@"@2;6M4CoyфA+jDCؙ&n'1'^IUќr+tb.['Dǯ}/C8FRZ;UmD {Dk#k H#eiŧ^}) RjN0&_> h=l~Gڕv_*c٬oln0EYET *ATϱyJ( chZEJhKrIU&ݒ{! Ҍݺ<ֶfjj,REO,Aȏh.uBE,U7(a;YQ|33+Su+o X0- +"OZ!rغs*ˊwr-PLDgC$SQω((\‰F'͖"4)QjX-t􈮨qN-LsQg}a]n<"5I:AD*SAI_O9IA [fo0>頹O(;50<4[0 , cq%fit-"# <{Mk\:^u.ťl \@߽#c؟U͎>O8`n@eetmWrM <%q{At 2+ 抣 1W"Ò;jRwެzŌ@kX"<(oVx*QZCy~m, 8{nl]+VkXHL/IxָƺQSQ]fcO En5Q(L5oQ+oxst7)|a(&q6FdORGQCCECx$¢IUc:˦ƧwO6coxn\{dY5TY3+`??g؞G~540D ~Oh^M٧dl!4SiSmå]GQ43[%i}e;>$񄦂CHLt)08fҭvRC<[.f"JY2ZbjI Zޑ-g5IF/̔.tql׭| nʒ-ȤB̥vSv]x]:rbuT;T@O=f"e=0!_%ZpCzH"b'GtVD_sz'wAn**R:.3m)PT0 ǵ e>iZGQRpGQ5\5vsp8" Md%XA0DTa2x/a" _z0΃*; M͝}B_72UY*D~F{q:uS,B, *^^aN|պp4g`uS \"D`FA魸W- ?O}|Cxw:?Il:/6r+i&; [;hY ao l{6lIlom)k] eEC8/Ie4UC|` !0;L:sc>mS^ᨁ>-~8Yglq$O~&ӂ-s9JTjKrN Vpr0Ϫg"u> ?գ@iݣւ|B<[eU/ƞ?ʧȢV)yX=H{O66_k@GΏrUqy94.(Ah/X2fۿ:^dz @QNІ :^'AC \6Vy^pqc.?"pE$LDAk4!(}0g,l #沎֦YZ: L봖 }*1k<gm>z}~+EVT2~:O{ək?Ww0b`M5~@;[V "/$MMC{pf5H$?ddtHY G ஈ1FˌL4xӪADز nE![vQocٟBͳ0O+BYDP[Q MU r&JwF| uU-bLH渡[x$2 !Jm7q=4o*@ѹHCQf˲Xx;Հ^ov$-w8An77Do_w opmK/msC@&jXkml,qټyF)N x-v"^67~:]34;LJ2inf{Os)( 8IOqspͺls'Ics3,֛/{\t {D;3OOdoɭ(zǑ2MyAn9zbD‹·`CJ[rz9|1ȽQJh}";W&ѵͅMSM 8J}pxrx-pvށ3%;B[QSjMhc^7 ҈y`v 0;UܥjzKJv.בFms.![<2'M14IRa<:Sc!ڕjΒCl)vss^Z1)>YQW^ɥtpO"f0e03KCQJ8*3oo( ^xm6g\ ~ʮkO$`I^m\"R'`St=rs %iVdEx2|e`EGۮF=&qE CT i"no%2;KZGu/!$oUZtm:UƷusϟ$nw}\b(ˡw>5 3{`ʰg?6]`}k/AcIn -k{@Fg״ן ( م4 شEP1]=.U?ϥu´ש}~ypmߙ!ƂCzq zaZ'D\"Y@OͬegUSZf{+ڱ4J7ZѢl">ea{}3TAL+O@ \NsanvV) Q^XChZ-H3~^(u7ZK]tI;\`,Pٺ*Rzk!/t>^f% b  cseXsLoS"[â96ri\[*5;0R\ ;(i^Σb"OG!ώ+aV1OУ3jظSʶ}gq~:5JU妠/l 4,⎻.u f4epb 4ϡ? H]>gu14Dy34C`++\8) ,܊-jr~m" è45MnwoꚊ_5ÙQu?söBP%]awh@7x \Lw:ZYv4 $4+xF/|i&<6ޣة˥+p$dWXv(oT8t\(hyeތ{nr,nTB]`#ir>"fVr(y'Q|X^4T6fMG)\ (V Å,!}F$ql:jMhs0$ʶc(a#WMWza9A\^d< Z bwR&`H/XX) Y]OLBtl>MÉãsXG'=9@l#"0Oe ˕֔2Z^Gػž<\х'5j?ƻxI>O]aiaB!o͘A|Aum>aA[uoWY+sCJZ}>xќ6Nc@dQ);.QqS0(%jز:(-j|}i ~'ߏ>Vy[E͘feJc>"xq3 )H] ]c n9w&*#{'Z-^ ZYh<sQ6m@ qe/UIn>4QhlZ(]F- m|K{MF4ϮoqiRaR# KЫBdՐ {6slו fK9޺mG>v2GPo;M7T#VjJ Jg08XGCn=3Y)a1hzk#V.k ,r9B:pZkbETW{'O`62Q[,þ5@UsX,Ђ[tjz 0RiDfHƈ4\4&/ A4iKS-:鞜cn4RzT}`M(ئdg-y\鸛ewVpfĞy\ ﻚr[|f3 Պs<1ncHF]eu9e&ܤrF;7ہ24HA6,LQV;g\^`:q5FK?<vA N",ft;}$wqht.aa&{ J(MW:%</=~\Uay⩦:\Ń!{(7)6=2PۖFv:xvB;^^KM{\.lUdn-ܷP^Mܲ . i.8{L#?|n{@TS $]NgΈF3U]DW=\r0i QIcX{fQNq#os󐙮4DU&* <,YF$\uPZqc7!PMDǗ{DCDJ!UtTUDӾeQUȽ{7:u^Qy媹mx"*H2}Ue\x=yhy^Pe>LErfA)gs\%0LJuݷ%j;sK)O~cMDXBs.?>࿟r%="ڬwa:(b%)BX QkI'3dQ,zY Ð񄁄{͹EGд?\̩B4tf|@]UO{` %1RvvΙ}JZJ &Q% k;Ke tR:B_G_o/o*oQl - H؇U۟i2/f)4K1<}nY&z:D*xpT8^?eGz!JR? sj6O7zhtVo/H"lqtrrLw2x!c+Ѹ踻q_T{}?D;)x<.j@oQ!RciU]*%CAV 5tao ?`u@ hH%~\A;~Q`1|TbX#| KURf+}[LN2E#|%v%" A710::tvVh&2`J>MJ+Q-|G:ji^(,(f"j|] zSF1j50Զ4ۥ m4正1:Ι^eaC#K|e|Lm B9+`ϻWjky uF!xqUi͞y'OF3qOԁbz{OaqNAyFZ~ t#DD(fzΪ ̓,L O;5`R1g?/<|~˪8&g\C|{K'4oz)FX \ /ҁ'IHsI'ՋV'DACehzu)i" uiS0+ f_ktjGcA ?W%@i}ZVJ8"ÐJrҐyZ]6[>s5 v]LiNIiF8 4, p%$~1@qqqY@tnֳ"eH1t]s/:8V & ь=Pqdl5!\QɱBJ~4 Is`~ElWE!4:U.)z.B_#ZYgo?uPFCM˱]ETW bXnRA y ȃwVk.*YR'@WZ 8(X-8kgRn ci#Sa"EM.̃ShZWS.ftBnc1iD&$NOdsF; 4 GIe8j`>&"*A07M̾L*4< և(uRɳ M4{L1"i~HjΊ,QV;kE#RnH#CGpY4O(D`{8^2qlp,y=Rr+^Es& ~eUX@"JVj$!6B0`e=ZCLDbnL{XDAC^~nSb 4€c(AyaRiM?y@ t]djçBu2T<?NB#O3uchc[bn "ĕC: >q2!ZۤTiUz)B. u}'S9ΨtX&LieGU+m档y0sy =R<8+اy3[?21hxs1@tגҦipl9vGߋ+?h1xІJɂ$JR-AWᙓʛל94GcswѨXD (J,4>`$G5!XdA9` )@1tb;z4 a&B,Qx(𼻐uRJtІPӪ`U R9'x_>+q*Ü/%o~'<˫MM73pŦvz.qe-hfCwCjYytvloP0BܦW~qwkf;u/[,UBH51^6t2&PQ 9qmĒD+!{T`yٔhjntg%*w HO=L4yEE|65V:恉ܯHϸ\d)DTsP ZaV+8[I3b`έWV ~\_s4CS(ˣ%QF45w\Р(R?HN}>Ybfrt X HеC'yRD]kbX7,axM],R^+>uG;NEbiIZEzk`#TYaf39&e|Dˏ8H~fMK-1}a fY&G}J1-מҜ0uy"}PQڍ`@{N"B['U) T`VL^kVHǮшiyVoHs<~lFY[pPc[|惁nAZM_~A4>,^| QPf ՁRr L']?y2"Pv-vW yM].̋.F:~/]ӵ۩:6'0S= 4VUW )ZW j'\A0$n6s3"Dӈck=(?wHq@,+?( @(!+6b+oòis ;Hi黷U`Rެ#@C{0MbM!R"hbZ뉿 mpP7}?OT`V}68X}iGch6fiNJ+IWãr3TӁYn9gh-]Us}`b Ϝ-|(IlU шMO@KGG%,dGoh9^ 0G[dDݝqu(%M9-6}\t{}c= 4l3ٰHO _}T2X/܆caa`{Q#j2c1 T\)jh9*k\8>,ݞ'郅;:k5GY,/48 ~ hX}x\:|-Br'Mת{;4gmk I~yQ$qfQ)~vmd%V e(L}T(*C}y߇ kKR4'\dAN_ ^۫p& (+ȁuazkhNb&8'M!X۠]T<MN`)&Ng~Nm]X+k% )82"ܛRoyEXKL0MX'DSک,U ȂJj bzi㤚ҥh9<*FIAQ!*߮T~{lD+G4xʝ W86I+ȳR0NFܶ4z|[ fT)sm @>2'M,զxt΂UBir~r9`: I6;2L4hd\<zCC`A bej$@ 8+g@HЬ=(*e46vf& OO>m{ Xɡ(˔ ڇ-Ll*XHlG9?,W./%Os&#T=:wU8#?߷ Β 0\SǶ:TmjՋ *oەzYC/ԂNY?,r*mpil͑qg'IY-?guf]DT=p4O뛫Csnk[.( E94 r"4w 46U!ŽY* NERQ{Mbռ7&b'8FHT˶sݞ0͎a-ϣ2[ѻ0K* ;ʩzcְRtScRC; K%ørz]2KƦG$:Pr,e{kUw7UtU[i*7#c)IX&-zM:ElZO7;m]h&థྟcCkmKs;G$~#>iN?N4"IEr̦s|7git^2m>/*.p QɰXCS]w>OHq, Duz]غGbS\zv? p18B ˠF#:E.?/ ?ԽXz6>֤xĤۭ0Q~RpiufiXrQ\P̚eaRRBO.0j6X{t Gj̦}ZnuBeE0p:L3kDHmE2 xMu((:VMdt}hDa+gaf58VjBMy9d9^qItL~HE@bL bXWṭc"i){Ύo(uUߞ,[W-M3u@tc[?-`~K.rȸ7| z[i)+f8ǫxR]yFaůc^5*OJYr< 5ߨG<zmZ+A|4P ퟕ2a Ѭ!ί?`_;xS׆ڰNDJ=s5s+x#:QKu\(DNɭ+Q.Gu[|Cpj;D;ƮNzU=Y(ZwJylɯhA7e>n*7v4hZ8bp[?$IlAkw-&VZ}!F=s?TG+ lB̅&e}Oogr Y6hYoB=U"  ER/z e£aJs9$Ehd %-aSa^5ѭ6.j578MHh!pQ,?RD_r?; ^0L\BHA Mg7Jd`!urh8Hʵpi^݌tZ%XDqc^UEf{bβQOY,&`^u0TJ WI~bIP=wD{ ~8LVr}`o`ሮ_CiGQ0YUW31;p{gR/$c5~Tl*{v֊Mf3rZTI%lA Q 4b*ZDU~ #;/'A F7Zx1[,hE"k.CNOgS`3n6egnMD/AȓȤU@v-~*694IU4c?U ^+MuzP$;,'qᅆl yTVwwhN] yF= Vq뗥VF_rj%9?aɎ < ?XlMkH6e6tw9[+lͱjZwzZD~@QXeNӿ"yXM@ lZVW_MaKZц#>=T؝TI"?-R&pn׎dySo5\ӵ/nE2r-Y{O_987ءcƚ.V*q(K ;Ğ} bb0 (K^"\1 ͵]l^sx2đub\ҫbDF{2W'iMvON MYxm$VF n`A;wdžW, [+ mjLF֦> c-m:rme&!~Ma`>.J |TJz}_IU4%USjٍ =DCqn+ʴH Jc?A^Y:Sw'#MӈQX.մyw7=/ 6&\|_aTq/ ^ɗPhh/cIv͈$5ڝ~4 6Ayz RfdION{{d`B0N:爫w]VDuj󘹨([m sE䃇m_5tcsPPLbXCX#"Rht, m%njQ$ n>W BORI1$ i~]*䃈& D˚W ڭLݵ,,l2Ry8OvmߏHUT4x wenhy~P%0v} mKL~CrLazwssws~tn4G.mZ:ͧBJHc@ƫ}d*Q-y>pTSˆ !A{vc'Qu3ð-˝BNUrl^/A-/&yX|hj@ Z~Y[8T/ĵF8iv":Z/j"ĀD}poD5_s:0E\m31_DD= hݸexl*إߒg`9ۛdЄMՏ <.b2ͼt^؟Ʉ[qվySK.moߙsנi%=M@A|fe.\ĥ [ ~[?ģE l8e"=ЯXRZ\JXTi&T{^U*>K\?Md?/eԓlh[{@t1F:丌Xy/,AV. Mx@hԠ׍V6u㭨3ݺшe`ac)ȆKQ`V}jÄ[ b=dֵq]0 ~u&slr"aT;ͬI<37\f EÁB-cE'V T;mlS` XVToic)ߑK@},i67˙8M|~ɺOok :41USm(sW2pqF&cjtA崴OzKD7ZhN$Cu5j@4 /^`asFz mH?uYVB4рXO7f:yYURZ.DjT)(㭧캋y4 K%a|ѡw%H>8Ϸ&Fttsa;F H;K9$k 1􁁗Pp%eB]M x7Uvp:+c =ؠ>HUռGj`$Z<;Q.iZ:>bSIS~v ^yQvsOq@:hePM)^ :@/[XObs:J^OZh0gUO7t} M5ٸ}WTSɫ%eYvLH1&&5W+4FwSH]FmݛXP5^c_԰^/yJQIPodB5x ~,*cz CjQlX,D^)<)[#PwנLFHHH*2pL&nuّ٢9'Z_ <17Y'QQ:tQ×@vsE4JAH9] v _p֥v αE4v[4P ͺ^->=^Uh>d2hYxϲ:'SWlK4nɭm!ݡ chzzjykqѬ7~`%\~_?=wjհ "Cҕ纐Ҹ$>KxuqbەF ܺgg .E\zzV##\`7ac ODQ T u%S5+F8ҵplqx|qY!Ր?[qعtx NsZ\yivN{ ~bfع'2Wqgl?y'Ma׿q_Cs8DEykXM}yV.M:*VSRbs4]i#ՔZWؔ*!n ?Dh9[ {LA ZD3,E3;/5a`D^<{: >芢:mSQPl&: JR˨#hFwIz yƭ+)_chESDw-"\D?+Su燛{GYNj+n?#^%k *xIZ¦NyB?ܔf~̹ë52Jm4/ 48!zDŞb__)L,0Sqǫ][>6&Mus@|M}Db~eL[`6Ow a?-%w⭖b?L7Wx {Rym N9jI8KRC@J17Cl@ͪ/p[*YFq5 Ň^ɹPU}l MLG:GYa G+vvy̖ERN1{QOgr6ђUU酁nx+~9b Lx)@Q[ ϬЕ2;@BgU!n(f!Lh _:mrpf<1KR_ \@:"}U1=8OEth8ge?ܪ4;bufQ^?]{"D_BdyP_Gۖek$O[KA@pXGDM "N>A?1o[~1l:-?s[r46ϻ9f&YxqWZWFh~ۈfq'[F>.}g?p!ƣ1/jF%*xӨC( ,PF%gt3ؚa[ȀFag_F%4:͛/ϐ/O9gvJ׌WQEz)q'~c|`gw澛lMW)",珰?jY'8sltԺ> fDu0ݹL\h1qv\:&N 4/!ٺ-D`UvȚO2GPQqTeQ`SGYf kԼеnj ?#CRJ<-Gv1]TO\uK >Fx٠U< ZI76Q1(er ]JkOPeaW\()=\ /Fk[%I~6+t؆5^碊,Coფ.W-E>zQ_'̓oUfQ!@5_5?x*ZmUiIoZ~: >1*ӣ;g09TuzuLC?E1lձ[T SO/Ρ]XГo^-p{\<+K0>HbXww^cQxMCͿNRAdYZTA/gӻGZt+`rð.I;RegއU=gwXN5Ӵg$I@.X.)K)$I֜w]#m!݄Rg؊6 rs^^/ "/>Q(}2_nܛwI?"@ؙ 19Z4uL"5O BU!kFg:x5C2*Wh_VqI.Aoٞ+ɜy{v,X */" 1 M+APg­IfUsӄYyS>!>D=_BMG{:`OV=Ek=um*C/͢0O;\:(9?Y:D>\nGq䋌Mjӗ ;x,OJe&A|Tcjix]hqű$׏)4_C~K4faD- "iC(~Mx1"tgnth "̒ TWsx\!g F:Lѱ PUl8^) ԟ^\ma@ܣ&I95qpT T& 3p|L܉n7ςST9M7@m{A՞>VmML3 glDv`#=oo[xOZ=\szJzaۖ\+v@h{BT_Ԓ^:M/z($KRE駗1V!ݏ1a]^_wfuT%^*]VKm:Op96ED/SR4L< Q?~KnP~JB0ePv2L|`V{v੷!GB<" B/Wi8 9ʡ؏//T4̖.q ]g}|' _n3H0AwCELDҧxۆx {KP'O8NЗu_j䈣%)$WBE?Sי Z;GXB Eyb}-dLtPp/D63?A8R &$뺱1PóAe>M[9";~/Ȱ.Gos34o)foTg+ %Gu?uw5޲zCQa G I#UpGk%.H 41C٥׺M/-5XkPTy&1͈l.m|>3^Mo욐L*x t[k%P h=L5%~Y_v OK#\i 62Gڀzػy$LظɈVqE6\- ]~F.@ V|1 oj؊&J|3 TkxxrJq0,p`2xދMnW&F&Ŵɾ#GrOxZC4H=b/cηNV|aCav* sRo/rځD0ڪC͕eۚl%h%*@⸃*B2[n= 0!~o bL}{TilNr髪kzM# >"1[o%fC ;qW\vG1A9,*VQ/NAHp?ܘ._rb"#앨cjzt[i%Q|%ѬE򔐡X40V~khjtW of5gתDk-9BCBA}i|kZW׿SgU]uEiξHWM Mp2wHAcﲣ}YD$2laI4|@  $F3a\ySgzC۷?y} |y?\/=// n/oyD'EqzO9\Nq-jT#fX՗ȿ 4"$4 K!3B\^Wn D{FNKF'7a'fxO~:vO[M!D)O& ;GX- n8gEH3aL,˰abJ6|qzD;[N'H(Sux]e:u 4}WMdZ:YK8hD( ka&^$<(9G3 Ͳ,W_O㫗!0K}iʠM1br0y.aq5} (0𼨉hݡXuYRUմ( ?wu#hXU7qdAp֜udejSǝWSe[*vTu?u{ P(Œ^0w:ubyJ> &Mm.hF')!2ᗥR>~DMY~ ]?TE1TrɢSYF~ c?ű:Iު+h jmSCsΰo,OJ ң=u΢AʷSwُRt<^0514d8,I'wD'ȓ;c%&:#i4F C'c]PƖ5f@sUCyH~}dNflvdْIvh!zU 9/^v&x¼y8t<5U,mLyA'#S }V,S`( eBd H.iUòE|g y0Sh tй M+O;Qmտl)2sݓ$JY⇇(yf0п7UE#]Sx8>4whJ+N {[bh 8{43!i]4Hi#dyF 1j^`֔ۄHcc\:y.ϓhIVh~4q "Zd W9ur6v AUX *N%mU@WexNY^l^Q۲)x`MӆDYU _{$?\?}^C2wY̩I2X{u, AcՐ ѩMk8TJuiVSr~yE:_W)}p9M]3tYb)0YZ9pxaToy"OOi҃o(Bxv>oU HI88h" iKr αV-U ܝ4;}`VLn."!,g{S&=eЃ@4Xua8:Re'"ƳefB9RWB&, e-VƄHr] Є&w )7OP^& ~461&6LZ&MA+΃#mt,a7Y^FjzՓh*̓+%XH*KQ!ϞiG&-^Uʆ &.>^{^Ӧ i(-P)'XFh]BuLF~Ջ:d UV e$wEt8 "R.5$<}YsN~~P;qR6!x?zlv| dZIQ?2s\]#?Ffܩ@%V+ٔLOud|opɒ4肱Ʈǹ3m8?t˲e.{!jv5cmaXn S@Ԝ[mHfi9@,Nˏi9z$=4Y*tДby (t#:]5=NFaY 'f#끲;<ݚ,s μ`GZܻ2gpl#j6X/0DftE|Z&~\zz bʤ] F `z5Bl[9SC.\h "JiOpU.jp "y(Lr,sQDљweLw6ƢEb~L6576|x +N`hheM$SG4 <9ۧꚮ` <hzU>@1ϱjx=J$N@ATMnM}bg9bϼ$lے>v _MNLvd!XlS b/sJ-Z}vCxayꜥD`my?(@Cq,>Wq' stuC$D7sWqg1U&hԎ",@&UP,L@ bDA dfoH!ZҢ}iݏS&=E-Ǥp¥S6Ux亢hhnWoXpN>uS3-E;*>yn/v2L&:< $ #DO]<蚉7gS?Agʇw`^+૒4E ԏ9ǂP4inMFq?ESu9Q:(*%2KA1mJN!m ̣Mdilk帥b Z'L4mvm4{;[( V1OZ/p+IT|8^S˔#69us܊&JVO F]- NĵK2WKJ4yqw <a'N:b|Np(Ժd.`,YMdNFC6xt_),MF4j*}@XA<DquG~..P4İ@rtUCP@-7YN@GI ؆4OpaQ'$Lm/ȋ .`:8RL!47v< } ev-lyE$yU:m9=H0:vwC{[fAA[y8vQcQ>X+ʒ$Or>TKҰ.TPd_rN $CM{ %ǭv՛ʉ=3}h,,>%N~xBh0 Hپ.ѱY6}ξ_YE!W9=/>]ˬ^W  v|]aiKhFzƨ\j-ʏôyARNa xjsHN)[XC3g(ſobS,J?-61,-Bc "^'ӈc!m HzlruD%"6v$WGݩ^4B(yvyھnrtk\ skk员 ٧p &6N7XlF,<\ǦR{$g{.VXb4UyAUD4.])v*Aí,F(P9R7>Lmrٿ/! Јk-@cw/FO* }K2%!(Z)K+051!Oi 8- ^a4XɞT7"m 16xer/յ@dH1 T3h [b㺻!4?B5%M1tF c;|QF巂04[6')Π:ZQakhSN~זQyXmV 5]s1Ž=)!gPsy%e`v6u4(heM]4l ya&qT1=چTRTx&8'=/ ċ'''\m*5Nݓ%` |C ` #qxLM_.`_&`ID)t1TV H:H3?Oqf iB:ǧ.iNE,ʳA%l? xRu֟K`cbI,c}XF eh ;FC2-ToO hNNB3hB{ ȧмBMKZ\BMxdip_ͼB5CP{tit68s/?M$irul{ԧo'/t s꺞D(dl'X+,7eZ˅|?4ZjOOISwB ݘz)˅M?@yyφ!wTg3V&"JMQяTprwŧ]fc)]T}@GȄ` ~ bf+ɸ:A7:^lZ~^ eDDzbtAca!>IziQ=hA@ɘؗlxV$ ݵ*ε=54Aqi!@%p٨6M](3WRԮWbb}aX/[`s:VdFK7‡o~|nga^+V ŪJقvڝmx 42-P]E|A3<_O~X,(E2d7n% Ú?ٞ~FŻ^;arrf󲳠Mm.Xp5-MI(c}zK׉aLyb H@1(V2zdCh@yo?*@P<)KmϦ|!gG+gdOvÝ1MTU- T-ǚ!vJ}B5H d00Ce`PG돇9Πp`5p+pn:s6d+:ԥ24$6tŧDb8"1Yq u>CnωE]12_CLz?_{$ \O隦/tq>D_A->6w`)d ޢhISNL#^C[;7g [%ajeh=UZ/.ǚH:HayeStQE@n]dZa%l6d] Ħ$ϯ E[=ДLJH:m-ݭȞR6HrlH$q!ȌZW E8m)'rY-֏OGv@@c@V/C9]׸a {;dSNc.oo XAs9f{ݑ.5DOtES:@d^ tldžjh]gLay})U]RYw{8՟xdQ^j}hYYf|[BͧZhZ.WXaΰ>h3c1}[dy!uzɣ@46HB+}#Xg!𲂛0,|~U|VTi$〾׌nx[T<#zlWcKR2MJ5j7显4ӳ5Wsw`תbj_t Ncgy[oOyBY=ܚbS}Fi+>Uݤq*Oztzxkg~&I+Ϧ,"|v" LkIAզ҇hϼoLx5!4MiqQ8=W xZ؃f]ַ,þ  x<d|Ͷgu ~*8 %SS∠ oχ8+EANm,X`QLSjm,nJSlѣ%u2Q12XUB~\<hLvPWȓ.ީYuE`y v]7Zy QKZ+:T( jҡfʬ/7]]@{;(_(-]Y%py<$HeL /ڞ:!˫խ(&n=o ]e+kwahlhntEZI#曄q eI7*x)h^,>?"J[uLo=zeeY7}CGxUf Dybí[wB:NRwC!7GLQ'>{3Aˬh5xҥ|,cç{)o ɐ ͐Ӿ8/Vҽ):?#0)&YB |}mV7N(+( *ۑTO4CBnj](=JtK~d9sa&<Κ1j#ER%CQMB.)ooQ}7 榈TY>^, )ZO3?cdu}Fg,sxI 2 ŷ?R#\rKK2?UPwa<Ǯ]Zגk*M{C EqOǡg_^+kDRɭ(<0cB5B@HN#M$t@yҞmU7kƥr >~2DU Q֥BVW$C&}SWw4g˦mz ?kȌ0՚+H4ESUbf>.J,렴J4X+ ˆwftc: _ag8!#42?A4Ջ8k/8sgs{(Oa'`.ٶeY[.yW?^qTU^&R/᝚E'vUX\^6Vqb!OꕦI#Sb`PCY9@Eﵬ*7Y&$~ _%ayD՟lb`{4899@+T"S>wu@8Xt12[w2a~Hh~%a9ar"^@;ڥ&S]3~@nA6+@ r!~9V#if_:DgFf&~ԕ! TYy%p+UnPk63z-T~<"m`aT{VszHȀg.E64J*ub1ߢza_]d~g6#<;:fg}Kl:; 4akh$T7G- 'wEhF k2T5[Piŧb ,PhCt" Ie+xLm6/;kq!Q4L Xw9> b, Ųd*S͝j'ֲ%$ 4Z+]*b<-ToPx\V s}d(?4^W&5d'R1. sP".?SBf2;تT`~R0Uwk*^I5щ ʽ$:~J@5" 0TkGƠ e7KRϹ.]`?%haE|"] ZjMk&.I.V; D{>?-df/89ʔS}ߩdc:~Z@QR+xhD&6aĂ9 j 4b* gz1_\b3\sNQT>xfMfY^Ջ"=Vpq61q^t]DŴU]/髮wix\6C#[ ki48eh @-)ƃn[[" Y1x=okiE,fL)}8?'֑ ǯBfmT`VmT[{ќMfAfMKn*=x&-Dw!קW-ªf !aL?'+/ n 66dphUj_*qp(Fl]e5j(Fye^o+iC*4:MF2˜JprwE M=hcBb ,NTp ͦfB|bYܠS:ؿHzn ͙VcV2e'Yb ~& 6\91FAĸ@̏ -8pnz8y߳*Xu+@3ewq.̀3#&jТ 8B`Pb`!rI$i@%O숐&bo@sX1_ iO#yS\ձN5N.b!MY|]0zqհ,6$xJX ni_T@vԤSS%Ylw켠>3mT@U!z,yA"v j%Ex2}%O>=٭`wUCl/&v^uqK < 4kImi8憋Ɵ9h!'hV20eX3Jps믟r>\ڋzgo¤i0HeqZN{ 6z٢q84!p*(96~ag14]N=XvVY5Y)8x1mѴRG<6(5yMU ec7xa9'V]hu;IW*!yuUw|2D4ut)NLIRNX<fu],ogASJ`= cȨ90jNCxܝ(e<D3-m#?Hq4_* {Gx;N 94 qq?fGyW@kV/2!{ۂ}pv-;{vU R4Bl5ЍC92F{i\ղvibUel d"S%xHM7P:dX ϴOpycX,k]WO*0}O N+5}uؐ ?j]6*Wt@ɿI 4nra@nq>*m{BAa`^R3MF'22&Z:yPnJi}ˎ( D` \Ʉ\,ڦUZJDgf"XĜ66s簹֋".EeYљhBE>M;s"DkF6I5bB<Uęsl,rG8։0litaK5!P> $(ݩ84r K43hVn{N&KWbfzt s/ k{O.@W(c3J5ܦ <`H"4.Gvh˵x>>T6wO2Y@A3RU>*P o/hd=;w42@ٯskA4eqp߇FeW&J\ׅX)"h |ec FQ8PgpV鿎K`9&bS7చ-j~N C\14 4[*5,N\ce3nCRX@s[s$nH%S42(kV09P!Y~|ܑimIzt1]`[ w4p7X +Z|oVG)Y8P>xaJjs/%i2!Kq΂^D@pliWhXȀJUbޅCMzweַ2ŦiWBBhQ/7@7&\ Ok{,Q,6hd"iGBY CGOF IGy΃J &ƙogSO|P I5xFͱ둬ȸM,\LtUi܃?O-W+tdS6}p w!/&MA-cMm~_NPBCA}{4kZUSzKQ`fݝeaD33;F\ب!CP@ރ{XVF%.Dh@1!d?U ?\筷>owN2<ȇЇ'`6,8 6 Ѭֈ[>],lv{r]u4:7LK2k@#&M,Oh6!6hiaJ ͗s4bTfqT20қ??/×o d>w[`YI!p4HlCG74(CJ,Hch ğ|u)|V+otu\WנoZ;)?# &&0kY8}8Oʸ Afm/tnNAf絈50p6:$ʊ(; gs7>-nJ(5t,۔Cm|q4=0;0!c`z;ޭ{{[_+$;qY){\feX`ic#&M,@ 2U}ŗNu28&qYͦf*k2qdKtFRYgSLxFI%e%7jsqjճ | sGrT fYgYn.>ͭ;9+LJȔ,$ӆ,L <K 9|P)݌ ='O40,&vn͛Z|THD! 6_sKE7dYF\_Wo>֋KE U[|N@&y'87kd>#w si}LL Q<f}$2 Y`u@G|0 s<BX}v&[hyh0I"J6dC]uڣ+h* (A3 qIOnDz%4J2Wa(74>AS!0TUՔ@2%K%uz}QJ L$K&q<^m۔yot 7V0HO#H3B~XW-]Qv]{k!14 Je*5&z˙B601tҙOJC淂[mEÙ40eV6%W'OI~E-Ѐ/2ɭj VEAǍD[!ܬA!/0S֚j4D2v(;$âi^6u/TfğW4aecy>h caYH3 .ml31lDX&M*e߂^_TAՙM$~& ,I!g ˅i&i1M絋oPkZhh4]%Mjj*gFukcxDlz|ec@}(U20&`=he ]@| +Ӭ oty|i 0}֙bGrB4c"SzDGI":w@skaԫ5">2-|WN׶nT e٩u}۸ ,Ϟ?Nv[#|^??2!%ej "4$egIr }iy>OM:&&:tSU/& 2 A4T C<:90&ؓQ4!,ncQ%1:~Ivk:Eg65TDdS%y,@Li{h,0s!4q0#`mhsH5*2:FҙmiR׭#)w L"HϮ?!/:ljjSmF%jq-:3(]!DEa]:(7/^|̌6P\[8.e5$,:Xn=լtGU |HE}Lx>cPvbv%H $Ѻnb5HJ8!305K'X! o9;?f&[L$`G,;;<'W&&MIVfKi4,٭ yw-4~Ui%8(#O}m}%͂(Fd?y-Hʹ__&aVFUZ#2 \B_՟L04U*ڴo-jyKB]*IFq]婑U뗽X4#ʛ3Y,jD9IҦ? -\zF0"m^CqL!8aY^GtٔA+y+%p3FAé3BdP{Z1"NSpyjKz3aSh٦tDIG7aՀ,o7wiX@!ZqlmD@vHAsV>j^OXj '֮qWt:kgH,8i֘D"8NGT,='ćY$Y 8ӆsf[0lߣ èȲp<L]Mw~M\VXoH C"ahtJDp±m%,7v CDaauEuͱ_eH1aJmV0(֩h(KRT~E4deca 1n%qc65@4LSC niwlN|_`Eȫ,CDYei,H0Kyw!bѨ2Ìd Ϙ@~OÎC9E:D[3RpT#vl14/$Y<ф|mA_販O4}fY7DVwK 4,"`v6G&A0m~r$aJ(^~ U8~I͂Vcɕ*ИߦYQ^&I,iA@j_>2xN, (AL%e.z9e::w;Kna'>.essӘWv;?,|K*WBtCēIJ[A뎼eї'8~X KQo>Ĭ#*hYɲ=Ex}X{iH˰6 xe'DZQQWa^*;u 4.yܠ, `.C~5, 2s BRuY0dg-0"cs[6~p8@#BxA43ʻyq$,5Pl{: 4 2=2mb""p8-̈,xGuWf^'[3 HD qFɋ A^<芦: 7w8&~BL)g%aFq?b* *YU%KlFÌ=0WCt!:hH-ZGW^4Pq[a4$'#,@'u}aJCL24r> g@8ax D+t.n=8Si<(JA;OtL'-p ͧh9;9ڻS% [ApuFcK?A}~<74+Nknұ{M 9DvBl1vM y $-u݂m/S'] ȼ sr_8MΨKpaf2: ב7-T_tQ3!TIXAq^L,eYfI~` ?@1MWqTOo{M4'JC`FQF_Tm2jOuBXEfA7̿$0hI~3ĻKgz^k~0lYM>'!yQYԧ_b"_wFhgPŚMftw;n`lʄI Ϝaľ)%+%M5_ a۠Z5+kSLoZ&ď($Yc3l`Ñ.!t]1TCUs gVCM]Au)qi"С2NBISvt tR{o*.4+h`1 @ˬ*+@FQ*VA O0:,G9ԡCbu}Lc[,7QKaxU0Ao+0t0)6kJ}m u>-W@,`\M>=q`w2{66ABVs{Ż-]}`_&׿ LlGiDGۺfYxBq> ,3 ޡ^q]_J!M:ak$+X֎l]:Y !{8xXYzL4܋>CvFIaРEjī'5,nԠ#5NDeXf}TuO&a\eAΧlF/dKU|y3z} ǷdI5p8<tVIHm`vL^@}c2+3Z/Y)wg1FA G.wV(7wks4fQPjV;<듍Y"@wn[ƧISMsy>:5L{辿7QX4C:wĩ{c/ 5Պ+DP%qT+'4g1grYgB Fĸhu=x,@Maܯ23bJ")NV0l92_C/a{OqG, o64a GSBb\9|sYjt}?sWDwԼ*VE,[qz< ?Th{>!DPaF$'|%*PlYOkcBo \&O52A4ʽAb%!T:,2H""Vä Qip|lKf8/MǴ'э:Fow 2gԂ/2BeYEkċl- &*뺬JbP]i;Gqj%z ^ ׋$OiD Iң ӋͯzUdC4I^Uࣾ-ký5e]w:_ې@OrPw ~ݯl(2omgDj9@(X?T 1SIy6X*Y5f1UG}"Op o9D6\ }^^( l$ m< U5CnjگRh? =Y,uP99@> =B5,!MNAuQwP]Ee6meG`Sڦ *Bm.e5'X *A"V cD4j-\CV˞:$Cֺ*D.N2l*T#k5] o?p]egi% {<cB.A5'1:+M@F$֠Зs1@I,uY)OU? ZdH0V5 T'a֔:ѥckEjvY(Ec4*]!ܱA`TGb2)²hP|aفqF, Do.o4 4 , [u}5 lw"~U^I\$A4>Ʌ~٨\K zݰLs pf<ϯʊl7cmW5ă,όQl]BmW(tԵ}c-:&+nyFw1kРV-54Qsnu?q_iqv-'iM2(}@Otጉ2a {\t4V\p ~,|VNa!'o4uW~pp%XfBt$N=ٺ>4rT;5k5:D¨:B\P"L]wKV#di[oփJ6% qi9LG3#&-#,6s4C7US%ƚG8MJ7fUhhHȚn٦C(e%["@6h6"G[4Lv~gl\cQv9nP(AД—|{L>2`>$ǏwDnzƦ<1(;5}8}I9 Jڴ01YnT-|m}"L Ee>H{jۜvXg/w (˘|C/T|h5CΪ>\IaGA5q|l"XMIF/!ڄaf| ; uS<޾QڼCsxCE$x|أϪYb%{MI%ޜFЅEpӧޠDuMM 3x \ycTEު!cRǟթN} i̶g|QkЀ",@pOyQaPXS1Dchg1s>SƏj>PK)]T_?_m ͻBB`#(ysI.OD ν莊;hui푥BcJS1K Py-~mƕQO4"2A7 H^-F|Q=fӗ{ Na9Dj[^&%y#4HU )n=F}S>fAaniSٵ\z3VDGu\O7h(+$gp6pר)@eYԇ٭2iaV9)p^V#kfcmqۨ|u.T*L[gKg}0fi"Jyzy᳻hXwI[Gt+cC)!y;%CX+ѳQ^F݊(k˫ UlP+zM!07 Jk88>.ITƜF74r"Ml "mo0MTȦ'QDQ6ukzS Ie &۪!t݌mNG8| Kᙐq7ޓêm L->G<;"-YcdRNy*DӓU C4"aF_ Ww:ypc5{sc?.Ʃρ f}o/ fLuY6(K\d\Z[y9' eғ<$ Q[*.'&EiRGH$e Ah%C'/Qcb 8uƸ5Ĭ'SULՔTMߩjb\8\-[\(]?& D6Nl^#;Θb:(S|ސ=lwC&`Ac6[+0hٽBu 7L<5-4ӷ4P,[y59T<xlCh6 ?qKTmtx-ڰL6.UȞCˡ[7ݮg,<*=4s)N%ԛj1 dk6TTDipbx=)Kw@(_|N 2N¦6h [^3Ԗarg~F)N4*H{ofI9jUfvOZ`r`5:-5 ޮ 1QG:udJٶ㸔ŘިJ~[[c+Ӂ[&-(-ݗ)K!ޢNR%qF̖S畽AxOռUei'PhiqPv~N,ӕxSZy4a:1TSf9tX r^zU߂DC p :}6iё:1"0 g1ȧ \Ꞛv; LG9ϜeqTޞI Y$>k`fKߦ2qaK/xX+MTj4<[_x!tLƉ/ձ s67om9fTDUXʲL[2@Љ#4]9H~WTսKY5 q.p f7׺S$X+(d} $?A<LQ~MRA&A\!޴7س [eӒΊu>Qxqcv}|{D,͒hF?+d"ŕ,B-]=ۨf\,T;]6 ;\( cU#B%v_.mE=lW謹Y?Ě&DG.]q.6dKhX ;(F%[\ eCANg;44hLSwb[֧iw4ouqY ry~!`=aR,챥={q#s5Xrmy#q=a޵1(`!A3H˰ti(jU9 N8؋bTe̅xz{nQd14EqcxMQ@h5l/*hjۦW4E i1,n﷛ͳGz?n@C1`_ z -ַr㣷}r^?o3uB̢cjHrpKה & (m #hbq,Q:M M%mMOfWmk*Fu*a'z: ߬> 8@T'VC%^[s_^eELK44Ie11DzaZpi' e&#1 }/ {JODA-4Ƣ/vDO LI61z1-l^%%! v %AaQFU5=q ";D-j.q:>!$<3 D\Q{ko@ڵgHTԖ%[װ},-,^A٠v̻`1A?)(bm]ռ2umb^/!! S Dh ̰0\ Qnj B* ?l.>Z%ç'۲L]ch&[U)OKFjS]yDFac"BDQ!A07-)N/2vi8#r'OZU:4ruI)9AXݱ 0`6 |RiC؉H =䉤u Mj ҰLwagȽw}^z6hCTo/nߩDQ56zZy8zy-j丸E)`uW=s22eS1 W}ώs<~ @5;J4%4.Z,:0V98|_r4T,V ~w?NGO,ׅO iR#4OQ=T]"ypTh!b墯FA>˞&yZGSGMnRUSBtQw\->GyZasϩMXl}l[hVXS2,[opل ,.8w2}wg<15p`T, ]S]U0O!g{F/g?; 5]^X:S꺅0_#%K?evRte4l7%A2IÈ#vV%18۶fZCo(I¬@TQfs3xU2ޝ4id~TUP80g*m@@{~,ꐱ`9??w9ձ"A4iG vxl~^Fc/AVbȲ ӀzT|xHq[<퐯΄IfS&Cf) pEQTgN"a2B3Aq7bha=ߖ iGsVpuL zyGSͯ/4f:hEaFW1f eґ]%])4R]ѷE9e[<$8 As)¥ Y$4΀cChv[ٖβޫ$&D0׶Wjxp(bG`8/۴/[9ic!INJ: HulLbWG%YMyE0 !.ĥ9 Mb]9hhUWOM7؄(WІfH8(nNtUѪ/u!7n m،6?GgO"10kerɾ?& Fd8)``EI 64_؜3a yķyiZ`A0{}.qp54X6Z!M}wA\2JEu+_#X+*0t ţyH*08|n楋F2q*Tpɡ>߹m( fG??ݱl\ [}\IrKkMd5 X@rʠW9Aq4U3_SV4ظy@FtpR_4BC 66yq9]q=w6F l`m?r M-wxq7C?u/E5qUqSk~έPB=΢7wp'N, 7MuW$Zw3 !fEnBMh.{h4eK&3k)Ĭ0M0Nf]gd0&{X )ݽCC乿'4jFUu|\"ueh m*S}+Ugrvi7Q+VfUzw:@Fol5+, tw׊mLf?(c 1,=ܻs K(8f%d{#yG(>6 e5Ncw2̻.A4 @[NT<FQM,DYÇ!F=zw V͒ Dl4tYZTEAro+n)Z$vSbh8̒8/| |z   lL5鬍[~+p\A{c}$y8ǖ ͩp82 fE-U%->F ?踏^OM캹\F5cEBj'䵙46YжBԤb:yM!.mawtZP-^Vux$ c>cl3(CxUgybh)DZ|DPw ,/zAʻ-0k2*mG oXtĄʹRQ,&Ġ&Nj/1 9^p)Qr75,=DxgCUf / 2MfҺߗKk}8 [bm^Rýwd"MLuF™S8CWtj9XG[j$+⴬* ]צ{c½y:GM: |X%ј*몌Q @H\\-4W| DWC1G%I5 |(]zX~gBiGN҅rC&*^wY\ŘɊE+Q«h{Yp |1+^:ѧL)d21s+NkoM@نv$z2Je Rϯ M3u&S[9^Y~{7mK[x$Γ"#`Yf:ajN%I۫NɅۡ,ߝ(hF/I5 j(}M w`!MuC,|xY.ݵtިKQV7 WѰIԥ$yMͬR(UJ]n@4ѭ +Eq}Ymy h"YmjD'MjHfH;_J"QMb}]lOoYk=hV:awaY.C+{ ɚZ {͎WT.^BS<م\9tڪCVPT k(s MC˶5B,2eL:1pJ48YɻGXཫ{^q\=BEVZtQRg 7a;$E6`'}!j93rG9$u'"ABր]Wz^Ȕe;{qQ!I0_TZzB0ʃ 򳟂?D/۫}e^4x],Y5`u%zk/k4(4wsϙVu*Щo/LqJ=7S u^'єI +:<[<}vMdJ(r>&?"܊nӤq3{'ER%Uƃd8vv= I43`gއhɖ<2j1;GF#Vw>xp B¡$ݘw{ iy# Qlpfqvg?ON e3w2H2&Fzn&)S$AӇdO;;IQjxL|Ĥ_,~}lSLb [t U9!<ܙ S2#dOh+.Q| 3a3&[Geg~:FTW t, [:U_p#(vBbYB31y 9f,j?8iCp&"Ǜv;uSe̦4|4m5o*<x̪թv1 1!Piq ȵ}d"w̠qW˳)ٟ3yǝ|OSٶ/Nu鸬 YϚOdqP>m{$I8\Xu@')hl o^_lxC>⫠3] 7!SEMNhgi{7 07B7C1McbaA ӇB|6o& 0gXlWnnt"r:j}%2kӊ;Se9(t͖6􉢨{[m! !Җ+fh:˦ [1ۊ,F єeiFJ8&/! POL>Q*9 -Z, Sז{]'):EnflY4n @$ YoMgaỮNKx.x%۪҆}>Ut4 CWMqUŇ4ifZ]] |>́!sߢl߷f:3eIdmı߬V88vUZfHw^Z6Va Sćm'eX5Zx0b{ ۧA4%2,߭KG2zq޵ :ܔJ噞(! @ht},% /g2Օٌ*e⨶.UMVgܷTyaxɲV̚V_]ZXW\yY ]os+[r68jL5P'O\E 27ۗ;Y̰%scnwu Ӫ{A01osJSX~ DH7\k} 9\ _ٸ9GS}PZ{h?R.BCA}[%uV頻.nvAm{N/Av!IB‡$b EQ馃c </ I W" R"r! m Yˮ3=3gIZ_{ggg*|3v:3> < 02K싯Ξv?̗;zg==ϷDUW5YLs|lu=ֿ>z4MfQKhB4MS4X@7MZ$eGQUk*mۨL|%4?†& ( )`.[0BWDt=fEa@5h~8 ,5FKז)4apaШQESUO{+c@$aDE%7w'v~jLM =hޯǤ 8 B3F%<sNe ` ov g:hxSE"iEe D`֙~ylgp'o_ ?ZSVW T sot3GaYy] &{^.TAߕ/X4矲4|沋S+F#w3O VEFYVՑȩ7@Dr&( b0䚄h<قGfܴ>Nal<ߛ?>YЄaZqW.)>.6 CWIT 7& Lr*ǖH%Ɇ`>;"w4zӀ ">[7mt5pفBs^϶(2)7!OۜisN4u~5'ƌhʤpcƫ~nZ}ݯ[LMVWDCQ$J2E{d= e0M C9~4qQeԢyTf U(dVzfIÛ>y,J$ "&U41\VW"酞M,n"m=i[ QWqdS/; Tlzyg:: *|)0'??$)<(+o? A$ERE`e} @4/?Mg;Y6k0 K"HP2t5?ܠSXdE4ׄ9Lq܉ HMu-f8P_< ߽uQ QKp%Toۊ [ !DŽhE `̅Իw%v=_(ޢ_øDb %3ZDئ%]_")zLyҧ$XTz@#ϹG7Qy9)>w{+xZ@$σ4KV> $*k4O44օ L4)<ѷzoFŠ~"NFC[뺦e*.+j2T=/TOA}OԅϷ/!ͥ&"S8lPlֿdI -P$ׂ+`H/"<7 "S.ʃTgSf| ΍`\LI%5[2!c]]'MaBCMS0l<`5^ ~)fA;sLuN!K%sŊIy&a!ZML$"B,[-w<!jDlDUa58Hg iV*hw!}4_dGeV<|C\U$(9jH7;'_doiXТ䓟si@tSu\ РŰTQ,~WS|R[ 90o o<B8XF4^[:Ŷm-}D|*",dA^g?.ډko71{B 6Dl==`W|q=쟟/_1<}L{>;fQ!z׀65cX8|l\WS<̔K2p4</`*<0$&t഼e&UdQZw,i>&fc*KP0[IKShDT{+F4{V*hŠzC]{wUE"KcdM,p-]$Bv s~Yd#}_׿]hТ啅9yK{;4 ~Yq |Φӭ״4뚨_aJ1P&;FR33sBY^9"/(Gλ=^s't|_ UQ0L-6caMa.//Rdx0d Z٠8bܘcK0,,g>P/Tخ PMrJ܁ -AQ2˱L,P?'?YB*$ ` T.Tblym'uظ6?oMaZU&ᢛ}U(BCT` 5jl뵯QrH756Td)I2aVP27mט|<l ǁHW-_.V8.^aycN5De\Yֹ/g[EWU]QN7׬:W2eCŮ"mh"YmQMR+)JuNG r_Mq\hmY pWutokk;&2 U_g4˖>1Ñj2j"ӚNYqFY8A~+^EיR.y-g򻚵`ZMmTQgPYmU|Z嶢 EP&* <̹lyuqb&˦[lo<ֺc_pFx `@KEc N BL{(6S# *@buB1~7 262F4o+' @4\o2ŁYi.3 a T23߿@SР| 亮*a5w:Ah;-EAدj !8ihN,@K`Y ` ,+SרdҀSqʹ?OYVPbŦM p+¨vXgM:32lGo1MIya4)SFtԅHפꢫGFC݄o1XSͲ1yF Ǵl@ Eqԑo3٫0G'd5W$`ܮ#fw0L'Nc(Ù&xs(N bQZ43QTj=J_?5-C<iDOuUU k9s!o3a2}H-FЀM&94u45p s Πu@!bzܞŲaZOv S~rI?]MZ/JodňkF۹Oʁɣ"6zٺzx^$eN%S'2j[Es4`׃H^\@f #lmҸSfgg E11VK6Ӵ뿳uf֚s!+U5uC_0bf6e@Cg[&':!ZDR4\#i߸]7U5yX`l >jТO_~|:%H[2Yg V: Zu{jۻ[?rI$NHni0x79Jlùq$*敞km#B &qg]4vudN9b1RKQɶ `F vaGjx ZA.sE^r+y}D9Q"p@TC,^WzaMq$K(W]pqWVo~)FZWdC'ZX8Ȓy=ga5XuH"7^yN I2 A1#jDOה>[*K<ڨz"H$\8 ?,:cYd>2/Mޭs. VgQ4<…YfJx }HH*UR qVG30ܦ paD<[B&e-PZ*+9xi$`OtAُsxQ=7]R%U|i4k:=ز3rt0(P0G;͈-P^M#Z҆i(Ѥ dȚ1,bo@ fb=2&M/Nf! =Q5eiDߔ1MLa!+P4`U-ZN@<).RH:g9CWzLʄm S!bZμ ۃ?{׿~w4 ψ. _>L%vȲo) Za[&(?W ;jxΛe4U0s:[l,:51|ZCl$|կ_ (3OUiO5= ӡ% UJSzTaZrLgX뾞IywsdhȣkLEeEsN N7ܤax }b0ek4}G=^=hݔihjfGQ4WezлPezׄе׬ϜÀ{{paoJ+߽trn[hZp}ZšsMgЀhԕ)ʦmEQ֞WTs}Ok$aqz4D T9q i0(˰6Y3hDQ!ELRp ͐z*n2xWa)([lO#A- d^>| MFRI۾ng/o1AmBKhs^N]Qw[c^݃-qhjm3asQQn/ 9ņ& 3hdeQhP âLE4ߐ=48ENC >7eAbn9 xd{˥dФq* q\J4 (ikӍ/ СH9$yt/0N&؉E3r YB"L6Y\fA*N٢Q%@ v9,l}^ټ ܊t6֨jVw6ɬ9ڸl:|k[5%'L`T[+\8$ 4tHp 3R},$OCY^yZjdww7T| @"po`Spsܜ8&pzi[洽k41( h0Eb ;<&+{A qa ޻8]eco30 ⢞1_({* ֵ,K~oxoϬm`@80h1pt8e!XVIHxF@SZ`Qo~(>ůk5X'_Uh!wM{iA-Ku #/k7a5װ>ӹs_Z@#ԌIZAH#^oZf˱{{dLPǔ)Eeևk`ЕPaq8/+p-|y 1}@}4ŖCä ׻eEQqZ;_}wut`*DM~58Su9N7t ׻;V״4T5\sW[-'ۈ)Z<]PGCynFEQ34 +4P0#0ʊ' hfjI\Vl< 9<)z$+DLC 4"mev'򉮭Air ~Ii:V\ ebbKOl]Pc ,6AY}&bgbG,dQR4@Ȇ$z~`H?7IZy?A`WFA(넟FulQPe]1*N & v 9~˰O0(f٢J4!̨qS/ gʊin1I#U1@p-4]*N5c~-'Xw6BB\`څ I'X4½8hЩ:Ql~7.Ҏ" .֌炵9:274I4.uL? g?yrŘ8 yunn6,}i g> lwѶMWH.@29aiJ+E4y-Y ғgSzD(?նz:LO[!uVX i_[}q4W#fYOϻ1ARzg d^15W&El/6㋶I;?fTqby'4(zf,"!E}%BWMV{C S\i\oĂݍ no=mه`qHYNv*(5W %֗%_6 ۴ V v?5%#}η8$)hW'A0DS )p`ՁW+p,][9\v]ɉn0+x4 kp̐f|@hG2 f5˗s恁QReLrYwksl<>#/w}ָvXnoX 2f|b+~Dg(DTΕa8<6%-]5}peɹ),TpFњjU>;`Gq7ѳM28 PxB@0.AH%$-#ۦ}胷W4MB Ѕe67f9VE|}af[Е"ϩ4%%%B=ޚN[W |k2A:x`>0I˼}!m+ಒ! 眦MGs㸿fuݍ^=(q&UpS[T #(/p1/-U7 /H`P?{W<˙¬̃0=,քtWkn kIEgFY?Ii/Dи07 T*]L@m҉N T?ca\ϋL./fM<5K,9?eA)m{gwo'a^'_lc `RQ'Ekr8TCֺPk-;"äIy2ݬSqMڢW55w2v@}Ϛk2ԟb*b\<,Ws ^cR#6)61 keh:/=I ZW{=0vsfD-"qZTUTnFȱ K 9eVA 'Ha}(LspR{T眨HW1~>T,u `\*>|hn㏞b r&+FkMXeg랝4:nY(OO{:l;X3쾅PW{ŠtN YjIvSy]y<3zaA+vK_'6Aڬ.ٹ MZZɷDMtj':hU8IqjS-jFYk\@ 3W݊ק($-ZNR WzKtNR f2۝1)I}TjykD"顓(rʲ Wg±Jɸnmax2v 1d4Io.8#[omZ">M 1uk5qkEV.F)߀T~%ylm^ C5YV5<˿Н'QD+4b* p,TJ05M` aXަtto.cXRifUМn^]^_TOyQ<[guޥ4po%H]:>< T&&̷CDK7~{mww*ێ Z,$`88/-Y},ט`xoUqVSUwllf7}iiʻT woA4J/@Pܐ |g -2=NͯlKl52|P2gfԽœF|T[GQ k|R =9ՌYmYO3KO :qczs n'֗^Mf!{ix4xpŋqX=ct /La ZG{hy>m25AHKIz𷿶cnנ Tvy^X7HqoF$yAk&i{=ǥ6Dȯ~ط"CGi>vݪֲ&$yחi*!<ٲ6Jחϋ!TㆶM.)Yj;;`F&bɋ+/N3.H㲾EinX>񪔆.uuEt<2?r 4EV/K|tQAgbda[:"Wjy R<=/P.tpmZۦcʊaMi56fY\o}1i qGFoYvs}繹s!RLB)~1ob#LVXЄx> խhHh:S [p毳,úpJL&͏ 5o0q** w5<>5``[E#zщiW:5Sar:i9)a6L˲xݞJb캚ڰEyM3hO ]${£&DZ0Yv[Di™h@ը>:jņv^5Z184\ù]ڤ/q.rG}`z1t-C-.FfW ~i]U넟]dܳg#E|x''Ī/,Pa',zð9DZ&A} c;\KUyd}Z}(WyQ$yxK2Ftq! *嵲V}6%dp'kdQ*´8>~W̡#RDE7uv~]~eSX t1M9b{9SERف&T'>Wɺ`P`qӧ[EϠ[=J$%=$dAGUUQ=7co~ #Y1‹"xG%cTZ}VQj4Q~=t)ͮHTiXaCE7 919*B4zM_v zӷFya@ũD:JcgUZ$Aq<*A'DA w=.Wq%IYPܪ9^8l7,Է5Q Xr@0l}a5vy;Í֤fl+is\ʼ=y[|Q?s\GliH2yZDEu@=VzjOM61'r3oiUʺ[_GQxd*aAA{Lh8Sw(u!|JF=WX˴F$M=Cx/[Kn41vxt1n[A8LeQSZ VʃEب)s&SX/\2rvwDY^`{ :o }FM-kFwYD@G\\7M}W7G83*vyHwj5퓶E"խ{DGZhVUw{J3e@S1,g<\?:BCxA[,vX""b=232bۮ*ױ>K:)HcEK-6vc0תRrle? o0ƌq͜^kUuT1|J/+#|{3?aQiZ$}Zmv{}wXokρ_lt]kD I7ݷg#'um'8$QQ%iUP4y=oٽj4]51ݥQ#14YRUv->lh(Yo/}XP\i!AFI 4cFqgW=/9vU ~#y*phX膱"@ASǸ,2[D--98Û  MEi.AtĆc?r>%?Qfi-cI>8TELۥ N~MqǧiK?wMX=&EyNX'M]Ï8Mߺh~,4a$957gvߑdkozXL/pp `GSfwj"au\ 6 Vz5dkĩm74cZiWewO:X7 ~pq5m6?!7#p)L!YoՓ,ɢ*,MS $n"SR)?FiVyySWӈO5 4g\xHt< BC>>qi%zLڭ["]]GuXgLᗧWCsJ8jh{x%"BX69  7wFۊ4)*4뫫Br _ppM?KWvf.T bjѠG,CT=M0lj?C.몦Ti ?T6ORU@5'_|j-F5\eV] |Z䏤z{Rݾ=R(w+Ŵ ( h+t}?Fk <|͐.|pCz] 1Ï^#T:Ũ0ZT#Id/75|K69Pp24!Xa~r9L*>hu-W@r51SnwQ:6I'%$E@H\'Pλ%qQ_]1Tkd%`:A yW< lUxޝ|Tsۄ].Y3èƏYQuzǵׄX ^"´. 4@Tj]\b tIFTi9KZ4/ݱX(/vw#!'kPh&rb&0}k7W\N'I #ӘMн OvQíPAgYAﯦ=Q c:lL0:d%IO4]k˒$ XF:;líWb{f<چ?Cpߴ;UAIz6tBrވY*Nf~@+2CF8"0Ã{vv/FRUI%:P@|HhhzeWl-<˺۝sG3z0>Cn:f}k'YUU0nTЈ&0PZ?2ͺiTM!g^%YޠyavF%|@4b*=GVG4YXݖbX!~xɦK\,ALTO+(anP "}S»w`Ve΁zzz镊FBT4o׫DI"lu7t[h?kBZ`^ ~-!s ˴,iHovUWt(B!e 0 D[yliPm`eEٲ}:26}""TGv<x+[ de3ëK%Yѷ˦9 ITI"Q%Sq3 n ?L+HfL;hU\eem([HXvO z&]KKOC q2(LB9 iU){y~I3eYh2l֐u۱`ϲ."4 I JUb+ZEwh#>DE҈HkYeAH~@$4umxK>Di )=}5!ӒK 5U[O1cy rX^O ][ĈfH`yOh?1O0kCuק""-4M|@Ox/YIzt#>7=.I%M254Rj$.۠9V Nä(KHB蕈DB>iD&Y+:X-fb:`Ŵ(K8[DwzDDm C 2JPkѩD(Og?թXv~1[m5Kq|eH@T=(z hzTϤeLFrӔUMU5Aպ)mWՖ\4U+=BH~ kDQB$ȑ Y="'QXd ivuls_1^c3 y>z.A!uc)D?x=Nڦ xI$ iԚ5GX rTqz~? 2jA]gn~csU͙2:xx-t{S^.34O?'KLU?a^+Bd֗hNN!U>y< OidA fHUl8GV%ER1kf,+U>}VAWa Ӹ˘#-E̒TƧmͧWW-Gqb+$& A hЇ! kC8症LPg㘎栬K\ц F=yZh>mږei͙Fhr|g_nѹUfh > Pynue\;4z?=]^U4,hVhF4QX>*> Oi~kcu7i˫(C O+C?!C}<.OyC4ځ3dE F=M[s͇&"3hN|&MCFY^1fD+$ MuVEd[5(CN-.CmPRW DrdkHΡ[eXuwh63) [u8{dG$9mϲ"Kѧvg>66dB@ lҨ4` 8szx5!a,WsM}ӚJDuMGH\6a& 6ז$eC͎zUW/ ;$VlŅHhJM%"T"TM%M ri,$ kIЫ8 {y=jqҍmhRL~1D(2{Nkyf9vG|~. NMeÁ'˒]YE? $Ek~Y=e`wH}/eTQgz3$8N=$t}Qcea5=4jr?k~X/%&iD 0Фeg,2a˄ZW%U"DQe,eYMtc &h+"9.@fF^'- KmwKro/,( E(e[oo >g~}8胈>Ywu2Zz蘕 A%bp!8% %&!}hN")`Le}9LCw3hss ,]WvZ(,Q8٩Fs K, g$3XY?S, Ib\zaWG5IF=(xfK!#p<3, DTE9Nq8 | 2(&zt\EaAtx~D/łVpEF sXJzz؋D:!Vw&1!BcuXF&5*d)_D#l͢hM ZϫD kj0 ԉjtLV0#2>7`wq="a˥T蜯ʍݴEmz2{Zy~Y+$ W j8x:gz8`^FE: ' hQlFϟ攲gaTa>fbFaMۦt^0D]*{M WeE|63+d8O'Ѥq}Mk,srKZmjˢx 4gJ)EF`sID9i6kRty }M]<6VXp }!sMy5|~\u d`U2[ArPf۠CR;kCZr C31)KhX*PHsmL㑝1*ϋ}7O+ ǔ'QD° QV& 6u)AaCqX޹c؆4e 491q0Xr%~raNS"zoH&tl7ILZD"}Kأ$,˳ zWͺN9L{ ?hcJ&>;J4z̺[aTeV i~yuo$ә~hBr܋ }27&6EO DԳ}z)Ft2Jrª/AduV#xt@DNi޷px0ۤ>j]xF˟;_ pays&, G5}1. ]_Z>A䷈v/>}|\ <: ikFʇ(΢*,/} \::}5}fFr$N( ۱d AY@@4H$D>yatFP7~:Kࢅu њ.k 92װBEK h&=JHb9lXWiM̄@?9ҳ ,5>+%qEB]PUs]'L 4زsj4><CXO>he/! K?ivsM#Q]v5\ec,z){NYĵH\}X!g"צyeĬƁTwMu@jEוQ%2hx/Qyx./(T$Q$y>,,flOEH*J1^③8gӒ(0<Ԏ@!aH/DT@>ctŭ{X45' %z1>> 7mGPt˄Nw }DC58L-F`0(JXQtcT"%:2eX-3Mx%i%C'w$a xyAp7CUq% $9H6) HdIt[nC?w48Ɗihi}@/X{3DBK_*꧒Ae=u>2gvh"(&h}I "IsqGsd{) *>IAUǒsOQ CtpKkS& Z遠q\0a~dsFs)м 급 nk vیs70nw ^p+;~gbۧryK膀)a.d[}ڀ$nh"4[8TLZQ5 >mK(nzR8.! ;J?LV4uq2p7]˾u܋܏qp+|̒K~:,Zvca_J} A0I;Ϗq d)4 @B,XNc*}DSQ4|% _<])l P3P{ch$ C64Eso͎vG=)3lWTQW4ucS:IC+7ؙJj.آC4/˓BN87nxPU0CT"mG^՘Q4@ C3Rjs%R X}~xj~.``)#bBЮ(e9铗QZ->n>`M4%WS\ I%c ?7XQz'HFG3%PrY?d珞 *٬ '[ Oao,mUѶ ٹ x($ϠlWR֯w!I,̛BI4X6zXcn`L^ŃNU[ѼhYQ4Cֵkٲ`&+`v\ѽ_nVH)F &I.~8H1$L Ii҈F셀ДQȎ |!kJn9EaOdG%B$0%[GHKzJ5@`[Lc%wMzM7鲶C+H5zM/{I肾t]N~{\j^ve k)jxtEiB] zR3m2~پeϦ:5|u%w=n1& 7"p{>AȮ!]5v֙c\v+*Z'}\e4x2P:Y$@DU 7TlgS$+LNNaYKFaEpT{Not'IUK ?؆ljD y胓IeaJ^iyTv3-sEgGHlh%d. "_/ ♓AM!KӞ%}=߸4Xs~ ]4tqv}bFlBq"m?6ރ4#wi֥V} ^" hJ6MehhS9Sh.| }})^=<3K8td8ꃼ`ngw}^}r]tLLpY?ε Jvv ٤0Ohtl$q\Y6}4*^ub} 4=n*{#N`mb* uv>趒LK[{>8`)NTZ% yK[ jyJv P`㊬ѩ/=EV)2zrS;N:߱IH*`WnJ4|RU],m 6koŽA^J73+Vgcwcҗ0o$x̠QtY_lŃ9dMQp'vpqRIucAmҤNQDQ1qq3hhԶEA#$隢k x;9z{I=`xpQ c 1'Xny4 6͎n7$& kgZY @6hzM *`;}qݥwhŴ4  ?]lӹ_8kNKn,S|q W^b2wO vv+b6NɦM'i_Ib Bԧ{!V;:0&u*Pqd&,u^|,Mq 5-2\W+* 6 64u;n0{DMg(s σ*pa{~uOADr((]TT HtAuһvץ_[QU .)lvzaQOrJq=_,QoN޴YhAJ@"]\]뮃"š(ɚ!qL흒 WcI\c2?7 \a|\r~\Si+#.ĜeC\dEy9mj  ฆGѤUQ,Cvh ]f& ϯ/j鋁e3E>rE\8Kdx({]phQˣ]25aS4Y.q$L_8USo_qzNMUl 4Ez~J|4b8ۧ]M"T5QAU3-_䲅QEUtLL'P4jK誮/rdIY BFӬӪ99:F/gE^fЌ ?4BE\N)6MA l;h-z+;`k5ӒN(Z9?1H<[eׄOZg}S1;Y'9eoM74s,| 7ÜxGT:&H#9NMSt>$7cRTeswBD/5OĜXҸ@ l;꾮A|M 6/ZH&8]WC%EQ$ͫ;35F i ފl^=BZ(F#J@k͑V{UPqV c=̟\217I 5Ӥ5 gпγ ]J&v;<%zOt² Qt\ ^h@jMarpVo_ :n`5Nr% ?,n4sݶm@gМ,u㺿$y%)XkKs\4@x\y EYJɰW$)9ϔ万 ZRh=VWsV[hb/mk=a`M QOK΁u;bJUwVC">mLUI&yCrmT]AEN?>㢌h5k/W^иx6S gte Q#|El*(;ݙ*Qx%|*RWC2Nds7a3N+P0ffn<hɏ1ɮy}tC D82k\:ˌc8c7_>5a-D_upƭ5pMH@KxUAEIGDoGDۏ}zD:Г$YMS4A; o׫zp}w!< ,c5I.!\R1[eׂynk_T0 u0jзa$-{a]F35g9ȃ땣*;ΐ'hS6R8:L~:$N2aCs*֍͚}ng.Ca')40fd%.kT!KU I?f$F;].m0uW Vy9y :`n0w-֏jy: .ŷC4u| iz]RRNf4=\h1 3I]3V3%rwxCiXڅ0u<0;t5Gqv Q}OM2C&nS|-_UE-͓u~ U_Y·&0ldw1q>bÃ|hT;p M^LEsBlz4*. &ɜPpK Y`/4%R(/ëW~jSiXp >c 1Xf!t5-VƑ: %|[Xɫ^ɯWޱ]j45A CЫ1<ijuhCaQ>/z >ښ$bӫ? tD9Iw{EtǾW4#ҬLY+ /l:`E 1) NKK4 Jkb]Wt8EחIXO} Ѥ93hDUVxj]Ӧ]q|h[FO W+$f&uڨCrI7ۭh4>0ŒA)^M l5Z.A:S%?]fzȭoN#:YH4c$Zr:U 5V1٭K94Ӡ_&|hRpYUt3xʄzy>uм~Ew7tЍw4ceۼ3M\-!f;.k&d9I7CYZ)AW'I%ADQs U4ͳk skC*4ngn8Р$qGyfO:vDI֍er?L~X&aZpg`,Y4P\o4ߘ'C.I ݤܿjD;rSo)xӴioXᎫI𨶠`D@Nt LU@VS`p[j^-f cqY>39}qC el$l ݲǶ{@P QE4 ń-@BV;:q`~ ipP\S+[5 zL i,! Tu|z="`TUb!Eц >#4pު.Lk*ȴi,/4e6_М-UYrl4J> -lk-l lӃ4W2,;EZ2 pTjxIm2z48esmg 1_@gqĊzxR -/,qRzJ1E8[Ls G7gsx`$m4z@?KD/zlZUؽ9-;2ְK~I֔LK\ Gqt7WA<*޻oBZ!{-u! X-v7/0%*SwPy {В&oix);*e{L)kW&=D/DMjx{{;s7u7+]%TQӶ,ρ߽wy]^{/.ުbMpq1C3 ~ny SM[KGzh^&(Ɋpq8 zC {m幇s .(͢(j!z}"R%JUMDImk=ͭDjD? i6盧Ýp{p}sw<5͵nʚRx4k2c"?㴔Q41jDe6%6$MtgaIR5U˴yn14oWh~X04Z~TfjT=}im@%*-?%AizD@%m(G״$1l §/< ; 8.8Eqys yhEYgX&/5*kDlRFN˛-,S^ygmr+jy'_#$"09Ks`tXl|%s!3&i${W߲tXjdx xfغZIDM_MwOpZqyW="ɭ߁fM@m!:k[_1HL$iɶoeɫjʹn'9hV+8!Ɉc?n^ȳݿO%, TV;4zW[]E_FATZ1%iyމPBsyuw(:(= 485i~갛S$&y X_#VOrSK$"?f-{14Ma6q;fz| "8Q]o~qL JE2-EV%%}W5G`_EYiGGvE5MMDEEuR~Єiy|7Z&}Ve ?o>ZaIrEPo,8bD  'k48Zeƙ=Ywi?葙@|jyh}/,"/>Z׏ԃu#1`hBtظC4g%*e`οeBa=Q/$Æ OYGM8*A {>T5!PQ K;ph1*y塏hSP v4 #Q{wl>ϏBm#jh0A!˞.<>aPdL5OT^1U=OIl3{Y0#O胬(ռpO)D>n_i:h"<a֟HӾ<[Irn7a)򳂃.AEc#juڍ׹u }( w ̄QT*yh.d$d瞙q-1fhfYZ떫ٺ+l)1]s N * "ô4B ]Tj8AYDAFѤOk!BS]{)8 x9+*1u` SüdV}\aq<0ϫT@05ro b֖m OQ#R'N4kӎ͐1 QIL3K*;f4aZ$?(T_)-KAf4 5qMfg" эI1%L^b-IvGFc}UA.a0C Ib_j33xqbibӾP:MW@c< _0'irF020Urb4PoҠH|8C_㺈F%+"S'3_.ۋ6Z(ec-Y Z:>(aGg۬Vh,i6u3\Nba/>W*cs~t붲S=a-` /i˞N:2zZE%ݔ;::k, 4  t7Aah9)ߌMDyqHv+bK.I$ogI+TBOgK% ^Px7:*:׏}sZ!ۖ.-S(T~Ns An;hJdq8diqTLd]7dl05u$"y8jQu)3w约e$i`H, o mZyj{vP xp}NVaozsvHs8`,|?=(<}奁iaN^9,SDIPXcy,V \Bخ*JTrW,"|#AE-4=p^`_HSQyܝZ{Dn `:VNy/=S?3TSw˼ϣt_ )^rLD+BtSW9s|7<yiC0K艡Y)mRl tZ?w C)Vhi2ľدon 4sϋ8k46Q5]Z?TL uB۞xuidiU^GJaM<ۦ?ˇ3 q=ݭrm*50 ]&o_^)VjҪ7 EI"-Ig9ض1eoI__e^daZvcOD]&ʊOH|W'` i/Tu,Nj25zjkдփvFS2p4 JҰ#yeGvoMU HxĶ Vӆw+S`Çb0ZhDnir\eiT\+ bȦN+] pnfԪb+'m[-0C0Xy溧nJ4"P-^i:bÁaV%Wt $I-fMi <ڸ^i&b{bo<gٛ=2FIJB͗>b~y_o>ŃEO6aU>]/k;U:~Ze`{UU5Y^+xk8RҸZ4 daf4`vlOfRDXUI4KC<~u)9&7wOTke՝0ut_yho%kJe |/ hoiKjtm5Q(i܈unpshh~ }ABw͛-4vЁyU7F ?Y@+'٣ޖ:e1Gղ^B2L"2hN04vՏ3 2FAk4W:2]nhs;e:$I]N62P:; ~HTA6w=0K^򺔟:SR}їjMd]HU^L' 0+âPw8Xa|sL Q.8Vo`^ =iyxCy o2vX:|kg)' ~"J(A%c^Ʃ&u&4+,J= /w֚)NA-.8W痸1l t(Nj۵V,lǴ7KȨ@0NdasiŒ0뗸:8i3OZ4:A}UYE30z?׃`w -MRŔ}4_EmJDmczw|o6Zyr%X(]f۲,X%8_=%& 3?.x&xीecRa ŃǡIB?h@޽^#-Pn58ή <ʐ8ٶ},oW+Zwc_(B.fZxvNSݩ”ˇCs̥i~/ `a$HT%`6MR/%z#f} pt>4mjP;kvKH\a`1+6l!U^i3i9`}\Ϣ)[ a&hBsh ()C,~WcГVu^' R߬S9CF4!ԫ*GLӕ**C3V+#N9m S׹<2k4qwMa{ 16:7ζSdЛa!*X>ƕuuÔ7O錰-,HG:\1 SQfU5$M',8䝶s /fi##`F bAFk^ۈA!z8h۷H'*.`6M6{!;9o?˕B2$lGIаpKWk`ܽLS\Y8ťFkXkVnC|(cB qsBG܌Q} ce.=CmewV鑨YdAvn`N_: l–ף+|Sn5ʰ-5H1Ҝ1DX+-ЛZ׼:a8a!~F,A|h@8̮inS,J X˴尯7'IZOGe w`\LcOC>4a$y<~lTu[ $F8g}rBgZ׶y,\JT\S7UpnI;*l7^w@шE8]K|%P <Cs o WGeu33=s|<*Ox·zH8OeH7 ; f020at3۝+vw^H6Pbw~/lw/wll&P 6L%Nl8.i3I"M8;b&pw8,e!a@px_!F騘?˼ݾlJixX 5/U~|4ۧTHFO,ɒY,梅W?# .Iؠ8Nc2Ui#GعchQ}|l'I%D4ZZrtzN|nQԲ {Ae׊~ܓjWe(k\YE%Q͌@:=5UY 1-2;һUaAg J+[IŖ e?~؜bu1t$ KǏDak|jdPp#VUoHۖKWRd#wG5(ͳ(ؑds(b7fnj(dw(nXfH>OxV:Hۺ5eȸPk tm)FQeI<g(+WSbYrA M?R\F; <+T+!{/ ȮoA0D,=nD?E%_~3`-l)6&q'8N !23ܦuG"csY8{8ys~z:IYWG^5۩njaڜƻ(}*D7J.JKׄvmgxJSJjݔKe@ Ƈ F=@8q!}"{H tuTzl jd_@kc.j!>{rIDEV1v-Ȭ-õaclt,JW~O=n#a=eEmkvA Q ITUY޽nZY;UEP 5^٦TeQG\Q5.häl!WeoQTψjHͲ~,7K8ޢnV :Q ۶6@n+D3N~ ՒKDdoƑ[l&篜7*s(r Eb/]▇R޳5?a! 8K*qbI,&PT^cDf:~]aV7ФPaңg ͥZ4ˆv'7:hTpS\΢zQu!e%\R=˾A  HSڋɆnQUXelS_~MFpY^IAY3 ̭KA;h-xa0SJ60!psp[PfɮZ#b<ݖ;x'Ӕl܋xq# MѩM7,$aiQKEK<%`s/x8ّkiQI9ŴMq6;zG@k]L%y<Ҩ8:4 f.GA=PDG5{$(2T^kao]*X :s`m5.ǡ@}L`ֳ:^DiKF5GbPeAVl!f'*B^`7ti= £4 3n|ph hr\G_'Acӵ{m 8VYF8UMS.n%~I- òdY%*lʮ:,.q JNq /͐2F>[栟 vNeϒ.`䶾Zn?_fqT%+cQO0>^`Uyeuш1gHfrfOg$G98dIy`hTM`5%8V"Q$(käٱݛ & Np :qFisFg&.Ni-gW0>'7}g9TvQF]8))~Gs~ߊsc]oF4G]JXaJĄeXn]Zbp-DF~awtqI2e 1dTa}|OGs'VSeG]E=Adf,j4A3{qhT`=Ll9 ~=e溦(KTF[M,3PMIyc㕀- 5X~5>6 4)2Bs{vk_#M M jleUU .E<9 *A,ƮՈ#Ug jhm%81%gKS-uOas]VA܈#-gͬq pzbR|mj*;.ݴM*gìe|ߏze0!g֞ؑSSOZK<7GUwѕ+V2{;;8< >s 4i4! .4 0*]T_jl"Շ`nhnhyjú8? /֭ںe4A ^ 8mF(q.V"QEq8*˔ a x_)<4wO+ij }R6qUˍ!:9P5bo6}˽TfaYw 6MN4E39@pIVۥW}4or. lEuw1IU8X#-|ަ#æEGoUR~,Nh8<;_Oz[XN6wkXLwr;s=Fub)עb`1qxEPTW"]4̲+bח|6TbҀ~TG[[Rjkmk)J鉢K+/GAR>#n,AAMO#F 8]k|TN=tE0 je<ܖaכKc)06i "bnsvqôYUaU*TXԲWdc"^ub|>N] "yc5, Ga|CYka>"vn[cox:26oK56q|c@׿qeQZ[Rua!¢׊L^ɢ,uӹ\iD:J>f(p G]MS.S)4(*/uk+PVu"4e'q&h0͍S;Adk\x ͱWG.݌4-}}?mtP;}#aEӼ> ^4dRL >sqW;G l6~lhH`yѨ=PpAMa8tL{aXz֔*cqTm;ڒq2y$ڶ^zy;_ply=cA@{bE{ !|6lDnLLkFl[ײJ30N}u;vϙGLbGUϿW83[kak6qs E_'ĸ8Z*\L4AOk=%R ?Y2hl~{GXq)5սDjcJܰ$2<͕`"4ܥFeyBshJ1Kd񣋲Q`>AAbF ׭&w歳WyzvK&-ZDS/6nt#_9ͣHq6hr#DYyuM 1YlN/ EEQR۹G>'Iuh/1Fy g@v<ܹ{w; a$0 a׷wOUEU eǚK ;z# cEF~qP j&(ePXG,6P=ǡ S99V;sNcKAO;c'B񁸢:-{nݞ\ZFb+KkZc&ڦW#D9D:CynsE9\ 5RDT:xeF(êj{h{}h42(1:METỤ6jciQW_&Z~6g햳#IU)Od~_Dfq*G4bJwU-swe9y}Ç(͓ VG%.+uEXaKaBHiNkhq%٫3߸h7;$R<±.Mz2{>PIizvPwWV M-GFjEmZ X Ձ=cX UIR @ (uw%}Sl6Sy2XL-T8,Hzi#)w cɬ.qW8@oqb)nI`}(nڤ6Q"*ny@ba.A=; ᇌR{J$L#Z;6 98׃(䪙 hM|H͈cBu3!b:×__ߛIz WaaQ,-%w^wy=iRe~?y}jy3?Z~$T #MC[&ςm(c%I:> CTQ T ^"qTTqgqvgu=[mu%j <| UIQd̨+:1#Y4_bU~d-KT߅{}x]wۻ[}6&}y'[IfEz(W5oSd8jj#[!UgE^((7uhe 緻}vZق))' sXCX<>'**f묀:kՕl 20@1ı5њq%-:aUf9P9oTx%K3JT0TM?T"0&OU-Vo3*I8߮@}z38L/LM6]T.$T Ԥqs>J2$D[tѰ Ieie]}6:6J$w^@+d?΀LaVL2Lp֞jIRx0͢(XP Pϔv^_XI|@O=QdW7>u":qY C怚J⸾w"((hvhݺT[%r )a+IXYȤL \U]rQrWT|mlgl (M T< BL2CTs02Txݟ* e4ut*2WWz!tFi> R( ϘPZoq w?Hb@Φ@iZ/V# <LjV 3=Hμ~Y=/< YPUZk$)%n 3oP9&i = ռ}RmW|e%Lb>A~BE+/rHP,pz3zh LI܁ J05S~6R2 sfExU$XZu^*8-Ի,QWTz֜əb YLsԌNHzYH 4֯7iYSA-EI\Ay\G1%#- 2Z> _a ZyB/I @um>׏e}Qݠ/p"&j~ԯHҡ/s 6ڲEyq Ԥd8au:+W@03ZP%w(U<@4+F4kA"XZ.T*K$MY@AhH$3|p}brfOܧ-^2΍_UQ/j Tw HR-ˬ膪VtQu _cpf ,}}wq@4N$+=MͤAESE1ɺ؏oYNU@*TQT A+6v5F*  Qz\MKU @vٿ8/>V3ʣ,[[#Cyp$Io6 ^xN#6-z3oUnD^2be PdJq)ztj 6t%fC%Eh $%G}VN:>Vž2g[ [V τt v0S q5EWnnp=U*ELj?i*(b&JC)!Pne"j hR;Y/} w CӀjT3oW@2e*lf(hzTc=u6gئa67+T%~ʪ !)Rd_h!2+4^+| :S1`x}SH 3,9JRebh"nZn_DCDsG%h([HDWY I6fy)Fqai3<7Z1S4}Q ]9v͡2$ZtXmG|G DX>|߉Ji%aߣ44aE4h45G^43lo;{ h! kaFSTtv5lvA4`"n"@>:$!%K?DR,͒P|{R2m k8^M^76K&|Ŝ s"DP45q[~x;/aq2/Zjvch$ Q̾1"ņ& OYW׽e TZ㠃LiArS{o0xomW4RdX|$r>DIy):#.\&E(F O\.\kcL?fËR\R6뤎& x8eGDf; 4£942ډf-4Gl8Mq4( RjHSzL3O `.W4\v=)؄84(m{h b#Ĩmڸh9&KG_Z\Y("n*-^:nr>$6Ic R[X&6-qiW&BbL\|jU' ^xp|Cq/DC- N&Cf $@=ʊH 5m͛L3Q250  ӻ/A|o4i4ےS`/3y#8*}_M*x>*Zzy6)dLCXPs]/}9w.#)0ڥ@y6,hpX//<9pI_z\'H1 U~sh#jBnh6 ǨK 4*&CKnC;UgpNC 0aѣy5kl<Ⱖly&'4w8w Esn-U0|Xw7СHNfIITaap) iKcIlwe`ʣWEU2:0zoސt*dY!bXvDyfԿfcTZ$aRf\ҼLT[3ՒQTt'uł"฀B8 xO805qaMG 2\YFU򏾦.F p2ٖVTفQF=?ЀBVI-M\lS<CTOj ~X\)jɺZ^!CSgԿ_8Y@,J%L^`2ף3t#؈7;3 f؛ǽDt*RhOcWS(=՘f2M/XY}=GNgMS%Ix'HzQ~~i]= ʡKyۑ$WieG~vh$R<_dDS|PfoyDڒ]R-WgSq Cv3Esttui=^u( [Jp=T#g^fS.:k8bXc l49L%psFa MF#vz4fiypÀW'-]ak[mh+D4EdͲ]3=gp?h#t{h带c@RD"rDX%Q$X664 цL8_(n4M?{c@]Lz1-=E#bi$򋺿?{{>0ko $b"5u!D^e/10qPg*3tYuZ:s2xcriyDG=pg5_fKpimno/#)97)۽{jMES!:SN*굷{S" e~h!4|dȖie%qKA1 xkBq\K;%~ وWњYDy3TTm`x6BTQ2irM(-P(WSlp륗:tA!fؒڵV*o{-W>0˖V\{:$Y(ږ`cz()diO@9 z?S9ݟzX+P3ZY&##4k63ӯ;;ڪFQB'g/:zub*J˒G"JWzpcvaxtXȓ"B=QRev1WT0:>I7izEI*K$&$az/; F a\$ dǠ:z~F7{B[[{VoPGFŰnjcz|X7븂 zc[ҰlM@?LijL^/cN ly׀dM5$7>]QdwaAk镌S[,BZlq3c>0F8mzaۻwC#k:^-Dh;,^%IAz2;> N;U\*9A7ٴzQJ!u^̄;#zCy NwmP^H<;jo|KзZ* brۘm*tiN!NFUH8K~GchYؠBZ?P=H*Kq-uhX*Oק.h;CCԾ"2]wnEm|Q QE◒28+:g2I̟UX^y#D‘N^DNҫQ '*a%Dt=Ƣ_. Q8=JaJ"<55ܺ^FەLZ4I 6XU*%M=^5ꙺmZ`UiIf=dyzrW)Q5}L}X!;!nNoig޶Xv2lq"ZÌn"2"-p- |P Jl+X*Ƚl7ٵY#6Z%!rTnazM6i!CF{NQYؠf~xP ycW.bS,Epi)&>Ҧo1e$"(⬠dDm7<#%R-FTUh!9-4T1 °&I;zPф$Ɖׄlubr@@f̱v妑^;[+a*aUk THf¥`'O+ &TMӰfY3졚v0{T׺.kDOZ3/˸P,VZ2fwazRheuiu] gxQ{T-B׻bHQ nAcI-1)AGŕ/g4dIA1!5%T$?cW?{|p UCi7%HհlAW2ѭ:sl6BVd9+2>FcZ"Ddl .{%ݖ)n24 oL B$P!0 8CTG5c$AgPn]޸ea1l p*1mtj;D_\tI%?ŁFRu284eET$:"WmӟMӢ"'id[WP@CB{6[d,'@*$ط_JU-!ڸq䵬˺J%I`wNEm?@Bn M.=JPHw+|v q~->^2XY͘z֧OC1@/hXNXƑv\Y/A(7ͶW6u!hܖUP Oۜ  3&dO6loS"pcTi dX΢8Mdߨt s;:؀hcI_l)WBe#*^҈4<{| ʆo ͲL4yC D?ú:00}XZSEV+ûsZ@$a^݊qsDhFxx!,F2ck<4 z3Q #R]O  kYEoaCTp0+3 4D?p=0BFEgP *.ժŎHFqyQὬQ:v[5 V8Eu.ŗ"-%J4 ÖTRvT!YT˶&݀Dk8)+otZg<ZQ3"jPo;r>*Vu9J4OPoUn衺;M1S.e}[B0Մ)?.Q!ݚ7U$˰+{78@7&af+)j}Ⱥ~ ~m`/-5''@}! LTW.I\ťcx8j[K>txT!0ZyXn AM*[iC<'soPFCPUQLuϾ޻](Z,4xnA$Z&% aF94݆gL用xL$m =TGՁ nKQcgͱZy=JCs!6Oywϝl<ia:ר/Saz=aPSSBʍ UR5$nT:٦guZ#CAQoN5ݹҴ=5Y o6TaNjjTWT7 Δʳ4t>*ԧ QUi?ǟLpd*ܕXAN! 2Y.'!A-&f q #¾,gk]\ozv951I}}\;lpU!2ON=ͧ@EnMK[)[-3Y3Ͷld{@풲 P`?682i&9 jJ1 Y~Eu1.[GGeQ,҉C-l) ?d+L@AWiP0pԿR#~^! tj83]" QP fTTC۸IOFbW(jTMRֲgn:~:`0QXM?aDF~$)C1b~0V2'}$Iex0Nʪ(YRu\wTfkC< .QUwSLnZnT61hb5rmGgs g:zaN@ER4PpޝDV5qk%;6LjYQasUŇtlTy~R_'xYM֐8sK'h> %Œ-$9ū1 5Jưa>[r$mԷ1n;c '_1`9}abTfY]PyH7z;~nu@3 <5nwn0- 0_F\՜閖jf /\FgH1l4]\v-M5m@8n6]ՒTK:vʶUSQ5Bx7FßBU|hv :@Yg+«3]8hiy}!J%zNee" K䗠);MʿAsn8=wRkC?Z&4pfFClMgmh6wIb2?͚I>~w8lշvQ.['J൳xmu9?+̳!}%OGV1~0%j8*=JsʳrY\mkxV̪7 MgI6 p-RAlQ24 Ee5+E5 DaIReH{je:΍WI~ý˅h]Z&18EEhn X*xl8<& 7ŎѠEa&*<Ӣƕ)xzѴv =Ȃ&zőӆ2 =LИ^kGwP i=$ex&[lb} wȭI! Y4%i7ll8wy΢_˔178"ܬMwB*͜?X>e:}/5 g'&hgݶMb~iX,bbNU[] a)ѣ$~OG<#D(*!_5:I~c܍Y%T}퉼 ,19~Q2A^<6+b :K,9 A&o5,8^'lpȨwS"?k [U)}}/乼Q-ؤ\-GLDlhAAÁ HiBӑ4tnEYѦ;FEYhJl=ɟ8S wBs7@CT$+/;וؔ5;[hԼ&iRtuT9Q9cHyRmJUwW Y^Z Meŋ|4LܯȲ,54Oe/C;SK0w`떗*mzk F?*<˕/[QgIPi *"莒$agBCσZ*ږ8>'6yCYq^+a&el`8] j, }.ظRP0 FF#]!v>ê&@"ρ4PUT1t=ͭKnNj?CeTJD""ϚH#N ~C}! _e1Y}]Zc GJV abyeAs@8Px^ Ȉ< a֩z>`"hG~hzg6_w텆у][>wY s?`"pJ!n SrgYM΋?Ck& <}+քUOveyZ nHc'X[x,r%}*;~6|?H?gE3gYn5Souu>Di&yՇi> f@ǭyY !:R\'<^)2;:8S)0[Q^7 ־P^4VS@56$_[s4fo˼mkT;8fF{St~]y|t }3 븯myuӬz6pa1[n9J4z?A.xĘKЬp)NؕUYCtvHx7!7˶ehoB&OqQ}S:wc1yQ:MV Uë9O7ȃZ`OϽcaTzpTrv+<&pLV+HRGx޴CȀshz@Ulx6LNi~j.%}z>\UC)\'cˮIW5A;{pX7#oʼn} w1ى:1%m .-8Ѥ{8kpF35D~;r#suWJH;'#V]Wh,T(R"S36a} ח~ G/LW% ''S CD"Hz7ҫexoo%Bt|oy+{p1%Ln5Q6"cdXHD\y7yᱲ}T' )64Q{agр(H}/w毲bԁ%cm~OU%8ςo\Om0+KK,Y[d+i]x47yO1=0àj2OUQZ6H|31Pr|vpЅIfȚG (9T zuєkL "p+K>Jݹ?aQ>r5QQ.<4 q>jHQt;q~oƣ~X<$MpMF#)hp+b 'NŴLXPZ\qBlI4*> ' 4M$xi6,h<U9F\~nO-suRhPѕ<4 5itWf}@#‹ϋ{N|uN~-4tYWMQ7̨ ?ݵX^8&XR;̏1)8,/5hNI5Ys:t{Mg*]')|e\^ JPhr,h4/x=hc`  ⹼=ϖ}X{<`zB74b8SF%DY^{kV~,/ Ș1PVi~aJ$0H3cLco2ҭVCZtB<m`h?Ǘ9.֒I6^ 5~:[4Eݧ2ƫ>Իg>/CH+}M %J1h9V4:(QY~Y~!w-Zذk˸0[`gf~5e3AdOHMwt%f& Nr'$9a.U(NjWka9Y&R(M|O34x` RUM%XYkggo2VfZuDvxhԕ%+\*Kg j-!$K;k\wt}vZ cczV=)61eDtq=skH -ўChnŃ&@Յ^c&KtyAa ;#+;1sCBCCۏZzֵI6ɵHEetJѨ{FjFN2rq@F4=Rw9O{K#m=Ы_?p$L(߷x)^VN oݯ~7?g~{q 8%Qw77yt6Gp|yycubh4 ڪ|w?O~|+Єq 4Ѽlp|m1 ?CdmO,o_W8U(נ-4? h/*4?Uf MPqyË~g}Mbљ4*ylXTIycWﮃ]@xs(Ȅ* Bmc,)8.iE5>o:D L_x1qE7@#Fpy + EeSU%=|-ݓFYea>oLJo pߡuJT[m3hڧ5hpw@kyCMlw|:*LL; ,NӰbulY@*ր-I*lF;hP!iv"qu=_ ddIa20&Ҫ.Ku ]C1Lbw-]qݕ9 ql-[_C4I,s 0ӈ⻞ؚQEuk*~̐>9DӓtN;-7B.qsǙ8w[=B"vQD ¿sZ?>ρwO ZaȆpLqt^7}4ZdQf;B%qIu}k4?{ < D3P'?';H/Y ,SI'90f5˖ly0W=88H̐i3՝$x;\>MGiv (S7ӏV"u|X!%gQQMSqPd%{]U5T.eWbLEyۙDAg7Sh oEL0D=_<U$Q;=^@p@,Oq4}@H0JJ-nj1D_i'CQf FD5@(uӧ/(qo!'x)|<**0>N\)E"(KAcObsF <)-`8tG$=p70$Ц[C v;20/=0s z@&K QD9#$E7߂oZ9(1œ%aWh UJ2r/x+TEL˲muSWN)KB PQ<ńQV>tqWOꐹ37H` WۼKB^iK]eм 7

Q1 UWN H5x Tʿ,؁Ϯ(ݯ1&O@.01Ԝ_2E.oҔK걒>N 8:M(H$>J\x-DtayXTF}^hUl؉nA]`fك%||!} S|~Bty/:fi [!IS}0Ί4wS`} QtC_?ggi~@v4 }|c^dQVyDo$ kN HR<zy9FD>**DJorࢾMaT1:PXu3jR3<k&1}w٧M{1QNmpϞ0`iTf M@ +-ŀ.W8a gL@EyKf4Ɋ'BU%k`~Gw+[餩0O(5uw.$˴^;]`+4Wh Hw1{|8A6zmDT ,65IG^MQ]!Z%IX*T߂;|LJ'1A- 8)TZ !BA%S TWc;CT⨾W |>l@~̹oސ^"Ը% % j=jz酾uPy cZZ`/7F ?WU@$4\b$5/wJƵBlM$DZ-P>"3TL7U0g Q' vg&":B B UGAIuZf51Qj&gĆj Űȓ'>|U־osM̊R NT2VQU:< 0~_a 4F7.tMPka*9L W[ڎQyUw4s&!}X0ֹ\@I-Pk Ԡ3^FbwTDqG`+ ch:No\:U+œҷZJk=*- aXU+uza\^M:G"zE o9M( oQ0((}*Pi$[ oB!0 5ny4,8WhFoƐ-~Ёd:)8҅pmj֊cpvk5 `59cghs *_)QT ׁ2u\#5;lj3jdbt}WM!E Gw^];jC ox:o^h05!X>Jq3uK4\=Qj"1P0}5p}LIgP/۷#u'?Ax<啺@VA{2p1 *"1Zye]*P=[lmAqCZ?odj*4j%;QT??ًNIPp$A5;..o+RFzbxoXE50G y\ZIsMfDȐdgSEQ;ktٿu{N au4חe1DϰX Db5}/δetk!$ŹGtLդe " 8ZX>RIDa\A$$? ZTg %`{A{ns aVYp<7sedxDֹ5U! ny(O8It=|EaZ#UZdEPm=@U퀹d5ϱ.犣̉QYH'ŵOTq*D@, _:UdHVP *sztJ K-<̞:dɐ x ǘNU)}0(x[78̢@L×'X7h5)6A08I漟jɠ:D̲l?`*1>6ME")fBLMZyNgS_ hK UƮC w_"dhGu뙳`޼EabFŸBpWp9DTXz{Pow~ݹ溎 Q̈́Ǵ<8҃C6S$"Ko*TkOCz8'Z^=O?g&4aT1zQAPC?fQ :~Ky\+ *Cz#Tj-\!Yo D(~7*xl1ijkYU^gVxBl! SB5b[^<ϝJ~ *.]6r!:!Zs׻-V*O" ?P;F'ҔG^p#C+Tc'YVTCTؠVm3.c3Jk>ֶ>e-, . 'Kx 3j6.R5N):JTT|x!MxHՙpĐ5LaC5@+xpKz.`F4ʇ%qƌYokC\{=T9❼Q[M?'ԪI27+jdT(} K8?llӢD[=U?Nr Oo~Bۣ/LqΙ:g6/ʑW.XQu 0 (|BٻGam;6'7ծ9_'78Ba+ CjuM}d\uyAU 0Gy֖ari}z |v[rڠf 0Ƭҥ8VXcא > NTcٙʎ6A[r~_@ADqLg5[o;k@Qz( lNs^kD1)pF\@)ibX:ko/FU?U4=5O*\d0^N;8= uA0P/E`P[i~Tp]zRu*.Rx }k*<;~*"߁5=d l˜2}n|1)1A D|Mrd*o:E$-uέ5٣]D+P b9ÕAcF!$Dt:^y&0 Y H_aYE˙{06m%,(jF~rˑCA7Lm4^5+0njkBHqtzj1|2~>wc[8 3 (4Ehjm\uy\mltV*wf;X:5)4q˞~ l^77)1x ^6<)hF)3T6P (lFb/.PQk;T>BtD.O0Jgؕ4+M(j noOlX$tLe6-y$X*CKmcIYTxI`ր(F;.&|LAu畄MQ1hiAB'B # jv]z}@-M,!5?h4qM0QD_>bW҇2c3kTޔvЎ(Jz1y>\(~b䭎'[w0OrPf)?QI C  ]lu׉;=)NgEfNXU5qoS?;vMϖ;FQu1~,(ҬMCC0E42*wj`*Ẅ&E*tHI,s[54N|zuCo 1Tn1I&0o92QCh>쾈0 j|A3-[I Z`5\ebHm " 9ecExX,h.?M<ϽQrS/5$NwQ xx*8^323$saK>oH\"Ji=E:dJ$ 3>euF s@!3)1 ]7kFoU]ؖ*3oZq ЗŻo,YSVh[sf{ئ‚}(+*dt6H[J߼/KS|ק4c؄v~h7/FhoqOQ.Q=VJ(U{Wۏ&B<={}ES,7^ضw/^8A%{}CtaOVA^oyg-Iku:aS3-R) $ \DS~xd:y]B}~zO͋{ .t|hWĺWtI2i8wC44^ :zs0ጮ)DҦB%kGE5ڧV/[-w»|EN%acv_Q܌xK9a ݓ8GMt::L.A0!3ysU|&9KUUe: &~̒,rdMc2"xX%(R̉;0KWtr߰׼c(D.;ىC^: gUijFj9%#q66:,isLyWos 䈪DSoIS/L%s˱[)9I',C,du*5㢄ebq B D)UB0;ס8ԙkHV<,yye.(Lta&o`;*943KTƜak슡M4E< yt\~]f6: lR۹V۸^EaQ(AVF6\g)u{Y#0cu,\Q^mܨWsrS,r(p5:ŵfKA.OdYLRA@7<Ɋ$IsSAQVqeu^X qr_d\Lu}«46ƃEgY,6a,."a4_/ɪ^lS]6,t{>)' _>7ٿ-V9XGr}=~T!  !`DR{vH֍UIRUE_*lUc,orP esP}:(xu/IH80.d u0duUstbZנ)нj(aSgh,̯%l@|BsI1E1Ͻl7oŽeps%ˢ,B2lwB  K3S)'TV+|r-=M{n1AE's`) y)Bޟ?y/řB3Hpe ymL"hph Gi})8bJI|D^&J]yvV _ՋVUXs(漱$ bi耈^~҇z.B}JG۲"QE€q4.VO9.v僝rFH`fYS\M|/x^;3h{4 r媩`y*h)Y1GӰV{~P?CKq;<tZ Ma_M4502[QtOE<y}Q4fw-EW Fu<14ߨ]f]91ؗ|%< 34†ܥ FSJIF4!y޷%XJܙ[s8YnW/ U"<@.k0Օʕ$[mc:vH`9ʉwkX 0%:ySγ" xzӔױ8fL̈́~S,wG? $ ꆦrf[k~a/li~;&V~>c(Th#:b1lH)iɱnDRZ0=hf\9x;rir3y_-b"4鑠1nW{4bFob Xf}gkT%Eމ#*6ky~s©7WRDit1Z |*ڌ?ۇS| SVq5L?{z"һ 6%xÁSIY FL& QeUT͞9-{>TuXaN]T&LjןB*B!$\nقVՙ1gtF۹Ip^?<3eɺ%Sl >軫dn@>8i#e]yD@#Mӵl˪ !Ę |+<D#0.I|᫒AM1_R.Ϭ,T`60/wˎno*ziĨI]tw̼ȋAtyFf|of/4zEkO7PCE=!"h/jJ0ha}/bb5;4P-[,o2T,Ҿ撊Ţ*ݼ}}ݗ`6fl3J-ۖ,i _c4XrX_[W߱{>uf7R*ee-93И7T3z=ŋ1ptY@c*%bjQpl1o¯ b[^]@,,)gfK&i5GB:.8feS"z-Dq̔U2s œZsB˒~g s$aOUg*g6%mP'o]^KF,.ea3ItNBUJ[[ה*kI4Ǘp}$](|c}6𠹡AOGƫޖ$|iּxr>vIܐ k4E~'Mrz=TӰ1~]z,/^_~Ⱦh55B`.=w((| /D[&WEfOz\\C!ܗQu4FGDo;5lͦF֚těL 0GTdQ#=YDۛd $I`K^5bX#j%ޔ. ejL\ca~D3<}k45C47HX(ʭT|\{5?/q, 1Z#puIB$]"ȎǷ鼀0!jBjdi\E=F.KDG8DŢfSHKafI .w?a Q#%uY;KnIF[Rjwf X^'̸ř)to+dc78& 76 DY["[W\nSQd^}ma(a&iBJiußjlrb/:VUǪNs Qv |/VAzB {rkĐ\U/RSoeA\ {sCͶ qaK"",Og0TAElFeƈj}zzDiB UpTz?LV|0&iЮr7>m# Bj:J"V=Њ'I3͠sƹw׮Dē0YEj@1U=h~&-sίg-D2E9]Ȫ5;v[іpdG< bB4y0]5Nw8Jstb|?yΗ4Zgyy Smrp%c[E~zqt oF1e|Rp+:aVZ4Wjb_3+F)nIȞxwtxB !u4JSas8 ب%֘6J{606տ(Խree^W[pڣ> wRDbE̘;\]붛=*ic&S\H *jUEc|e<çB_s?B\_g#Î~BS}{Ć+;}I #Osl8JJ Bp&]d8qjt:ǧH<*,iprصlVl|4P3ɮj(T}9x'A=uG'Fi1O=ԡq|<,sJ/ ](߅*QWw+DGﶏK vnWj!,G/Ep%\,LuFg>)fC&. 4[}[qxkZg! 3ur\GMW^͹%ba,tFFjI-5i ns U}3"];#~p@h6+'$~f6yDsAkCV^GXfoUecU `z.0^-|&1_8eZF'rX@-?<`26*]w%W85 T!ً)A :M@0O^¡~fZ\R#x_9F©;J52tEV@W$.vLεO2DiXTz)YN,-A4Ygsh40x!ѲGI4KϢ0Kő~pwحmeDZΕ둫ǡ8 kI~ ·S< dڸnt X8(VeBP-U{g0MYP>aˣjF_z`6u2)ΈAK$$;>?GLeno7%DUMm.\"3gl"eaX48*j6e^ 4i^]f#>:U]G2vZh.5GD8i'M=L/s=Uxþ!+VY+W խY}g9<=&bz~Fh,%Nryio:sV͗xk,2XBiiMnAa5M7jDΜA`Iej9h܋u(Y# ߷z Pܳ?r҈ϳp .Y`*DIaD>UgN+L֗{=Uo"x7!wA!i~eG#sR>>(#rܳyBJ; V9͉XIJԈ!/+>=Ny^E A;ᝧaRwl2摒c!)fZ5 ֱݲ[#&/oέUٮSeSbՒȋjqiZւў-# !`Ah~%rk> jFS. iuè'6 u}6}~NhO$A^uei8{mLqKlr#ωI5hTY54=)4?/D+U`sV".WR9S견d4A %mӪT FJ% ٨R} H1>k!Bv-v^`C{]9n™F2P Mˊ{y~\pUwհO4A?]wlѸmyc;6Fͮ6ɉ02GAm}/wf*£㩜 ,h fl44^t̂ QpA7޷{g{,`hEVv~Z!Xσz9:e0Γc/:|KS B50UwF5sH?FHM14&E)8'4|3wLg:V׀L / 6)h͟(Tk>/업20Ȋ$cٝfhlhm=Whsh,>nc-Vk$pM-Nz@';K[9v<e2tAܪVbR:dpЄip_ĉMנy`d^ݿ-NEIa|܅,mss' 6ͷD `ut^x1[>2SۗC 09E}g5x!I` E7z]^:]6m1!p,Kl[sVqwkLZBi 3]WζN+C Zk5`-*ζ9.Z gI/F7>mk5W4OXEVS!aagU{L\Z#m:BΣIw9P >3&h\O Mk=~x!غ\BTyw+l\dl8y+Ȯ4 G! ^ y,k'*tc6#ln5O|%x3[NG+eic}\R5sX8’l%3r-@w+'\=4pE|Z#=@gMsp F΅\KMA4IHp-4QS@lH}S;Bf+Lw=9X#Ĺp<5:ĸux:ӗӆ>H>*Ã?1~CꐙjI*5T^Tt,¨aTfCi+OjlB.8j9Xy.okuN:#v+b xW]jm[<'`cos.ԩɀŢQr6̲~޼'SԱxoת1'59+}!]oLJ'  <׋/FMEh(( 셤<fW<_dQR {3UH.F<~ p7Yp/ lU[W&WӇr 6k=ۥYn4ɆBceE^C1 j+^Th`y.$P\W_o̡NwRv"r'٪ۅ8po+yi;Ǯ, =ؘ7I/V)8I9>WZ_U wf8XLgu~_ 'nj޲QuZɧju6u; [`jEUpPkx1<.t \ד%Yݷ]ʽ ߔ ;CDנ(Oɱzx'Nvqey h` X18% %aD12aEo5Z4:wj4߃U%j h^NhtB+̘Δ23u:Y  "alM;ˣrכΧ#C;5ʌ;#衹3,"m"jdnn{t|I/y@Dļ"@PCx5CK>X&ăx ʼnE0 @qlIP׿=}֞5k>o~ݟ_9~쏅ITD}YZVӟxsXt8| :5$u]$Ad//X *<>g{7ǃ:۽xx=^էqi $uŷeYRe>Πy#иF3L]LAm'}>ay_UG4H"gz@-Mg$D"D_@?>|ta(Ҳ Vz~}~}!6 |  9HçKD7cDDqGqN :<5<DDA\icIx;hE"PQM2_ m!"4/HGOB۶- oz nмEyrA_/4khuT_Qte^К!`QQޠa`(ҸgA>Aa'be`tհz }8".0 SMo/yz=Ϗ 铇0w}Nwj KJ!Y!"QaUa^( 8(;k~WwtSEd(oAܧI&,uMg! mr4SU%ş䲋Yir4Ű& Sr "ܑ?Gsv'9P|yT&4H -@ 5oFqh !<]R MRG%dH8r,=A?f5ls˫UuYVfaF*i2^mi&Ej.{zi&IZ$ 9|2u):0A%iH"D`Ӥ&HׇJܠ!Y>F h*$Uj.*pJFEl{;Os\ eaU%E3!C0 | އ&+h aiAXsh>"oM\EqX]BLt#t߀:mny7m la%4 moۡ w@M|UUGef hckaƂU <x=L4TH*sg*= wdDD+jD ѦJ4mĸE.iR⌐<=o5]Gy *(+i:@\Wy9x+J@U5XiBs>C59$ QQ0c奆@t.h-@Z:u|GX(lU.f%yimzƌٯ[h+4=[4y^%4TntS74*2@Km[>'Va25 `SYLow׃u4A˲Iڴ۾h>;k$^`X!Ȑl˒:\p@|Q2@JѼl kS Tk!kո4Ku]^,D)4e mߡMמoMG3 4NI(T5ȖBQl$IDUى4jeL:KDǔZYLc_>΢4J4g5/H4qYX1NVeIunŇsn.M &AV׏ ;]|I D><~Ziij]r˶4MRUT}[|h(ҬAsB4} Xf̕~ c\iZ`:.m-p5˵tS$ ]%6ߍHsdkimqZ](ȆulRGh= ͥqtAEZUu9zyM6?-؂j QW\[EyWaa {B 70ժ 4!@0Gh^;hNgMMX>CבR?J7S*2Bu%| $ޥT}W4ew lw|BT_EUopX?p H Omh8đ(Bt=h00Ќ?`ml<=78@S0g_}j 6%rA-ŶU+ &{LY>iVaN>GTӧk>>:|>cAV兡B68"Md&, YJ>%ȧqYC)'bS[94jJrfh% jjK|̃&$8M"]%A;F,Y.H/qTS%aU~^NAz  \4=҈A%/P1ބW`4 YJ۸pJŇ8Kh$ER@$DŽ_k <!_qZDe-ur ,%5ǒ`>h؝ᗹr8JJFَ  &>J a"zc1vw"IA~^rtu:c/|` AOo'>m.>Xq aQ5@^-PyUC ˶l0h5PΠ!jw>)>\G9RjشnAYXe oCyY_[mL賩:$ު[5gkq AtAWކ&-/CrcQ :EWY<#7W8Ťt .]ԯrZYWMMWyu/iC,2a*W&, 1l :RD UW3B2<W 0yLaX s%O8Lh-eY]ktf@ @;jK@YhADifHtfi9>2x wHE+hUݵyYcö }h$, 6.% ȯf wq{~ f Xt@l M^)846tu>4YdiqM=17dyg(fCTL2ܠ*eq,fCp4X4mеZccz%0 1N$Y\qTmm )Ax@C?q mliQf h$)>L"z||A:KX7'-$ba緽yHu{ئD*j10K`r,[RWDk9!e(=nto;}e~!3rKLDn"-\ hvwe>0XwrO[I"'2p:>$y~pͥ4j̫WDu0i; tLa rp Z\AqiP_Ϧjrr,0D)8RFk;, :NvC Pv ۚ#ź@:8®$SVaվ% XJ;X`B#|1@s(˴sia h"DgSpR;ҽO =}&?Zݼ<-83RN@cb9(D'8p̬U>R4q9pljf{cHsM"o¯I0[6-tk3gy8`q2`FG\ 6GqZOI4H$4b0=HGsS L⻁-E&2b%qY3ȚU |tF%L*i}u51-o @&Ӫ{Ū8+V&g{v5լakɸQSb!}I4W~@r͊MuF+֛PhzS4Π!ʫKht v40 d*z9!;tEUA9hWSjec`J38u66-_@w\YyTљFFʥ^wFHKJv4~sLBD>|W07Ϸ8!q.4)4:ݛ` u$sh~aI4oaTrgYT\au}SV\%sUQiLF!K#f *kmQFe)ĐE4!'$uZ5ffߍ&)+H"mOjFDCtCSpKRK>TpY$8y}V$gŁ6#.CWEaMa*k_`~8x`ñ L \{@wʢ. @kX\~4f&Ь8a8 f;u%[z X Sfե#Cc9nӖW@h󚹹O4ZUEiZnYzbT\g8rC(I] qZyk[7Z,h.NoNрM-&dzK%q zh K)H> oA2OґvHqJ9-9w֠rMO _e74⼼<(6Qݬ8ChqI, xE˥ihuOІ7\BS/0{rufelHlpS8#Ynq Zl;j& .Ț[ Y2kfm(i? e&l )@8ⶖV.rf[8ʒm_=OrK#@fQG>hJ*m $+1 U]7 9 W4ECX3kS,íDTA>KH.؀^7-<+8}]4 ]i36 fMJ@PT\pӪr:Aw7Ƞl6DIyge@܅,ksr!yЈ(lFltB;p$vBOOOD|wdk@phn7"|Al)_w*zض8d6]q Eqն.=n'',p皂ɹGETkCpP"bHSk&$G5$C5DS2GHjx33y&4Z_qƩ V#Ss:Hd|[S45h64AdgW!ko3*Sscz\]MYJ)S>鷠LQiЬzhTM4~)%Xt_`r44X3G,銶CO4S.3AL.'OESKlΫQ3_խ CSeA2-P`Z,M> \>YVO8Qdto@O Df0O`qԇMe M2l`D:17H[j\/ ZY'4RPEY-nuU fWͿpq 3ۿlBYR5_*->4IUͪnFrY C4= W'Yczڭtwiԋ *WLrWiZ^D:DřS6~ ]ӔD8f<4LxkhtAGè 4 n}e %8\ ==^3exTgb.ð̣<>CZ<}A;v-,SgexrBJc{G8Jϣ_Tէ+}s=*SY?.P,-6aΛ2IK1԰y.qW _ +}M9,T]F'k?L1|}V% 4xpT\jGҦ~%iRphw i3pBf)%BԿ\Vďr: ʖ-Ո,%#?ՀWک,.YЀAwn5Nc*IK%u,/.$eWCiֻm ,.VIʊ]@c2ەٲ&/ 'XwC{J2̃&Jl d'E#$ AX'$EnXM4`)[:Fj8\' 1wt#IDIMŗ%;~{d|U¿WTo hm݋8neUTÑ3hAL7Y|VGUFl11?ݱ9!uRٕ=!(7@/b,db`:).Xevy75Z Nqտg+x?oo #T]==~ȃ&*qLE"w2cYolhe_Gkzh=4.Ct4X[%2>[lmpϥRiWͱUɆ@[UI!2%:%0>Ywo| ',!݌_fx՝]hz/}]f=2 Yfh@g@ Vl60B @vl[PmP qY$6:pT*Yufũ)sj8}|Pڢ)es=9WMXAExb"-вn:A+Ps&C{͏1434=i⏲W+5[Md96Q+>s(,מ Sv==ZN4+o.b?"Ң̘Qi{Q@ʗv# }PEX'2tG)DH)4eYYNڷVysWt}at_}qvyM )OًўD~AA;΂ <&x<+wixF#$Em;tps$Oshc>\&e:z0a={.$6یg8$EZ5sEGswrX(y8&Px[zl^6,p6;pEiTUM$ivov̯M7X˥bbɔ42|c:̷`.׏&nc@x+c5Qpb\:=dj$ളWTu\kZ;?9/߿X4Cd\CB_{\^!H_.>?cir>'2ҢJ;BۚcNOU)TmQ  LAgwz=9胅0*(oO@m>F.AN4UQ͹ljS# MVYeٵ-uYsUC\+MrZLYMEKm*TI HOrȢ #MцdvzsS\O )zžEfQJaډJIA H,Y1yK~0y4|EI鸝ۀTH7;G=y1? Ԋo~L,~Kt,C71Dmٰ;OiCdB#ue sYo*SVp@>Cܭ[9%.}4Y_,7tħ[؉61 Vi_0ڱ;xNLpQdZuT+JzیF<, G Og7Ƥ9]:=IƟqX^4xJdr p ӆf|eBm_{I2iv$,=|926&E)`fœQo8nԉ}W= QA>n/r_30ʬi:΅*XyW}_ \vZiT Hr{mѓʏGo-+w]%Dd}1tZo}2fԧfһabS T4TEuhƟ[8"@5J&n,GxbYe)=FG Gk(;-ie : >?A y{kcml[x tClb ~{mNy`tQYE HJp0X};Lsz\SI IVrYyܯHYUTDt[Xlh[pAa.IA`F9i F0l44t/zG, 2چ-ȡl@d3D"ij/qyΠ`ݤ +AdSe_=zjo[ EPD<Ƀ`T/x^v 5nEMNkVYܳ;?ί_N~${(ڂ lʠ^ahSh$HYxmj/qIY:EaiOϲs=399(,Y^_FhLxA8ڙvA ߬$o0OtIc +hxćf#ӵ,SC˨k>70 ,ICq.=O rO @E]^,aR@|!}~l9 < {]//S6A$h3;?s]<4}7EY_jdj+>˝GPJbRNsbq@!Ko# {c >ao&ckip&0~ѱ2vtY!m\콢wf5E訲͕wqC0ϓRQg+K2!J², 0oaw%kA_zM'}Fc.yB:jyo:UFsX <ALâ.o13{YDM[{/ustaok.yowiG?u5s@x9nk4!Țt_?qY:3P6ZReYBI3j +6<_:No#2.˯bk:x{jKdǝіkL&i[Smog>\8IYfм"oZb>r&IRqFspILb"#iBի,`"K2[`Gl^Ql^wwsFXjGfMo~+è ӐSCCA=v1"THh8 ]n .I+֍y{|} 2Q ^'|m9nB3VV46Ϡo[(¦ÀfcR@n7rw C zQlLŃiHћEظ0t.e?8ݟ$e[B>6w\zMRS)0!fbaEM(5km+CtlMIȱX5J3XG?8,ghgdyJt7O@"h`!7nasd(|{]Pg3wG ;z 0Q1܇ 8ZM&Fٿ+8-#cy}/: <IJ)C,c%IvdwxyoZkuXJt~Ve. aw|UMM6Rs;D=7jy~)ʹ6 ZeO|U5}v]3޸ 6~/'y`Q&[924vYV`/@ ;0\ug!lj?U+Ӂ/]Vw+ Y_k_r)| 4;gk 8Y%IKf oN蒊UI12eXx|#g:kQTTUPMvS%LyMCȔn7UoW_ ,9"U\/s nqBxDLrs0S6!f~܊Yأ>Vl]*;%Ƈ)L4617q]G7u]2tbqVrYQvLvf?0ײ$}RQZLd?TK7 V~{6]oB^-VwͩmSB4Yt6%3Fg΁~CtE]rhr {+lGSt$x1D50+*gwnךC?A 4x!_D7S3U͘CuN!.=L9^rZwm|4 MYc,K!47P׬דvlЄ|rS@{qut[&; * ^/+)tςX%M&)YhDt}igQ5ʲUp#6WQsS$i@hիniͷ;hX .f(Bru+NyVY@)'Ǚ4fSaS=8t8\8':W;(c~5+|~VZXcUW̮kA/$n:h}IJ_\Yr rב >Gk;7B:3Kɛ 08_QdWa-πqsn x(nrf}qBC7K ,m^v~3̛g2J%&-TP/]e?Irzlc P&*bPG%P)P1L U.KVO?}湻}9www&mow?y[gx5wny ?sxsYFh.[ìalv?fu6 ؔR094/ſ{|~W~y@r*\ jy>xybqJNǹ8P3QcY^|L ޳Ux8ûМ ythoղt>oJS͗Gx^|?SPT)݅sM!1R[]+nY^mZP%(4z{`s "gΙiDed<XÞ3+` 9c0&Mv}+Hyshiچmj@;ns &Xkd`h.Ϗ} 0 .>4@~ 94n2Mg쐱S942ڿ޹?܎HDJѿP6-tEGFь̦2s=`#7ニK/惜oT9'~2 QPwWIpzGSʕW1[dzV{02՗Uv45ICYppF9di r[Wf (?|sfY5VA~/̯I3 Xh<>ST_C!jc IfZQB߅ YPt%ex+n)ЙO13@QɄqڎkJmǁ?E"8Pʖ_)J2y.z*ek%-<>9ś?hFo(Y{r Z kl5]o+hM4W\JRB,X]t)^) 𚉽9?:]& a#h~Gl 8pMe MrUP\_Ϳ'f<* K(b_sKL,aL'v|\iӹzDojuW u|_&X~ż$<f |,]Δ!}NA? z{+O[GU-4 hw,d\Z@Jʃ:@sCݕ3vONV@4@薲Do+o~%Bᶷ"0ԪIUn [*p|g _j^j瓀ɴh{cBed4>KB/aO7@o4% UPa6rpmڶIIzfoT ,Noo7CȓLlj\aq=0l\vD_\}rDބwDw wSӹZ Բ gr~h|vQ*T:yiϔ)xcS\SU@2om;lGUIty̒l4 v"9" -H[P" ] tP#ꪡMAß$@D\H#m!W!:ay^eu-K6EJw_'C\~[rׁw9_t띋׋N.uS5.B2rVq)za%j,%@-->X}TP 'ʰ'n0i_A⇨VD:bpb y 2z=/&8Uٰp#?uۍE4рRþɽƌX`t܋"ӬC+UI !CO[.2<.[d2>f$g6*7 {+cc}n?yݮr9㔦2q$/%9?rw~Rn$=c\Zԇ流(Do6Þg0Ԯ0'cd) !KPjzhvH˿5FD(]c DϿzDbfyaE=:@ BT7拁JWvaa VzmcHR1dSafӆf;ߖGhϋNZ9@S4Ա]& 2URZoE]os1o`)ai;']|6Y=/6!497es`F?,AW۵9hgD2mST1_6#oh_mV2ESC(`rH-@H\ht#J[8Sk 2oy:&'Q 4liS=܃:0Ex2T!-=/!,o,[I< LMa䐢,cdB=eR#0%]JB)?߭ .-x%[lef_4+~t@z40oJ@˜:9Yl<Mꠡ>Vtjo;skEӮg:#d(JC"ƻ]صP>gGOw@ nf3̕VU?\p_W݂J Ѣ .Eu?kyvbj'z)W%1Jq~<==q)6(qSz5UbAMnw&7U'eQ:_,"vy p S ,4jn@Ijw'_#Z xE1T:a{ TX{twU D`BQ'[BOZC98ΌW:OӮu)&%eau@ 1QcғkXV.ez^ֹZ1~01:uW.a-Y-n[rLЧM8˚(qf„K;(m 07hl z>l~08 ZPzØ{Mp2铙ͦ*`T Afp(jyW8.4Ħ 0ޣzC1@oV_1@,XpS1uAg/aԦ7Y]t 1`+xB\J'LM (#jT]HPId{U,NnZr)ߓR.ܣ)͗{=#sA AP4hFmTX Q VBAl+=E cZjjh.'QiC~6P ֛mBkC;a}0 cٽ: !?+]XZJ9Px}.QA6Vlð Xȵ,>`C")GKÙf68M3MgpY4(6z&LѦX?w;6>=oAC&XyYsgYy2N\e.S s!56=Xj|PU(UvL+cX#пlyV}WcYj!|u?'HDOaaZ%}yគu]U"C^S N@}24ock;kg+_R+.O]q9;yx.s@Fddf6"7a):?K~Έ԰ɓaMW4ݲ8:N6ݯșuފi a${L |i,~A4>Jo6©G4k4fif[} 6fFVs2~E..\R1' z蚦aP(Tf7Rtc)ze3[xTE*X=(\c6ףX!87]-/ |J*ѱ60D3qqG߬!TӠe5[1~>-7ok+}舆 [߸3aVZjjIWUC @b-ՏCÁSWTSrGJ$[3n2S,%T0BژoH lXܭE7i'G/KnP |>3^ߔd z>yݼ^pI=i#..oeva% {600BVŐC^=E[L{]hzoJlOmLȞ UܟȠY7z} w,LH4[ACE-DFڬyt:=ßE7| ݂TP'(}^׮7U5`4#wڀ9DŽ3*-VHhRhnNutHJc9`7Aȉ*dc류 fkY$ ·qjnL1;?Rh•yrs XT`qb"n}9 VKmKC|)47ZBQXi:69%o{^}|ùfEOfftv%3zUKoHAtnwùI 4˴pr=!qk`!Q銰P ECBc]o1#lqԴm7/o+hNM46uSWUhXc5xFn+,i (&זa׻Lˤpכ &0߅cxHC8\,A@$4[=>f{h+‟Q/4>6Χ=20xornzE8M=8vC£zOrZ&H˻_mw"5"Y 54(O! jJ/{2pt[l: Rx@4XOwL(8>TQT?(zZ4 W;Wħ슋]Sq4{u"f׈__"PE1_M>*N*~D>^vPcx9c{Њz ҥRZ1*׊W,=_ bZ(a}N3-]9SbW\ƒ$Mmx?c> o|v%0aX||0د%"? -,Bz)4W&W3!\@Y|[ޟKmvͦhϴ<Ӝu4  )5&zf]ߒ'pM aЖt Jh c&l԰] )Vڹ` F~bxA Ϳ-7!|mؠ /(ȯ+Є!nLM < ' #!qȚve2~FW+a@ !6! ߳sH~ps\%7/X2To;!1XUԴ]_gfsw˂噖L>a"jv`<`b,>vP2۞.<ϙ^ݷC-L6! ۬wbfכ!mҍunkZAx?GUiSI6}[|h g`ܜpf틫.=bL!_+u`|k/x0_:hCCU&DZuJD|wi~*`$路wϡbR>BZp/:*Mtjy(oAfƤG^zh|\Y`ݶ(D+>?ڄ[{C8@BЦ&śfs f l`BXLf{6یׇCr/[V~^<^.)Y  ;䒾]-FRq |:*AqLUXS}խ#&vR3:>mg"E;MR}DH5 iX;>o(C5ĥ㙚P+$@/t[m*vrۄbRR껺ܿKmgY>Y48}kQLն2O)JH}(]en?iWmっcٶL w^s9 6b\r!՗" ԬZoA(nbi.ʬ\Z0@ Viȑ,ylF=Ok$گ8xɣabs0o)|͟S!|SbI.XN<ZPPhT^U 4K.6_j'WHfl,jfuIb|1䉺.|9e^494jB^żx*3WW@MSPI8nikq)ڬ7`#y4qIs~j:LucF ”&V>W+Ps*33W!x#1f c>$9 {EL]AY\v@uap1O`H,]P-)<,[}3&@`ahV\1P&؋9.\2OHe}BۅaU o D4?g3-GLNLPt}f#6cmh&v5^o|(!X 1h8% YgImmL)qۉM@)[y-!ZDdoD]940ρ; ePT?'{Nʰ\:6]it="g֚6ӑaQ6_-)죹0n6д O 2|-n]h7 4xjE Q5~Fg%VX񗂧ZR\ϣck5\7wP[-[Twم^8sI|/{4pk!}0Q]yt"U[[i2u3zpsKd=ɛly->PP 1TÊ  Tymwa)/j8g O߸N}w?#Mitۚ)a;#36T oע NMaKDwh wobR6<䂧Fh¿X a(؛_ʝr~P¯S:4^Nd냼 o*|vn±N0HL<,v_0W\iqR'wt _CTSǿ$>Dy#kh>0C!M-tS1q` :VZ_›?FƤ<4KWy va\P6 @|pc"eNw0k6(rffr 4P*삃Xp_D?TuVNVwOբ(嘆Hx>^SX(>J~YַxY Tkak#V*r-؂<4gh o\44_t=-% -V16 Fȷ"F:dZք*Jph.^WBp+5xaSH/YfۺmZ}T3/ūeޔU+SР㋳-C9&[;ӂ]OIo V:mP0@ b8_SyuTkQZCi=Wuv5ԇ kX I}50 ? ~XdMpRMP5.opH^&eITuS$߭M1+yf>4}354삆4â*8]X)<=O޵Wd~Py ®|~{MaebdXp/úϿv4M6De4؂(&w 6! FDo#KC%>]֙R ^;!ٱuJuլ~KՌI ̀k+:/"(utZhbFᦋ&ђ0s9M+Drj?2N&P3dlj<9!FF۰MXP%(Zo XS$G/LLw1M^ $&s6pqYk8?)h&%gy9Rla( XC{c$wbP 1Ǭ/؇j%&c"LNn@=zL4NpNNظ{O':4>/<g>c >"o& D1ʖ#R Y&'\o@ .J~*vs `wIkmPX.d?=z4xδ6@ۘ1D]2"`hEH8!gЄ<2K˚әQyn (D׫r )tBb^@L>,L_탢_qDty^FXZVxj.z߻va(VJ]/n4: /\wwhɷ氽O ģ]|w?~'||-% =y$\W9Vu$Oϱ)u :iKRѐ ;# UZ=LnA;z^ >ɜ#<ضf͞ixoΚ5IN*rr!e;N9Zn6O]1S5±ZR㟷Tu DؑX+84hYp {Tq9 O(Z{߸?yS|Uf;1<6E-u9m!7WA)ݳ/pZ[y-ZHЌ{t”ë(f ~DJ~m`bJ47Rhن@qG`hAx]]^/[+"8{:j˻pw\&0VqCQd?5DW2tEtʑ`iN\BNiOdgbl׉n^sGiv0o㏠yKF@A ӠC!o^#zmZmqL;S8"96m6l~w{Z#xRr[tp?0ڧkd&Zjۭ^r(3hz|4\E1! xҽ- L׾GJ=!ܬ˲eLpG">=J^њpqP}cPtu|^>X7+(x0Ax7o.'we{dfw/ƏS @;X67h_Cz_שmPB\t[o\&Q%x+%O*h4FqR4{>f䡖5( #'O;+Ihxo{؋ؕyfJQdAxadD^Mr&Ѻb-nbb-R/$y4MU/wcuKW&tbd64P Cf)_p%:R64స}xvIU߶H[Jd=Z:F# RN=5oyV&fa$Xވ4[l]\ܴa=h *WSL4GF,_n SgXbtngFb-$G1!6$\Rh}W Aّ$9俪⨒ҹO lmq'(Y!y'g\}]h )ڬ `,ݹ* YeK"ym'-EWiSk?$R=|b8,ԗ$͖̅q"|*KԬua݅S&F w{(}*WL@#p_%7P+_,h&*i^ 6s%BH+2"u'elN#Z= S ]8 BM C*VQ7߲\1'6u:ބlziGA?q>|z> *-(1.YgN@ 6i rߟBJ (yb3eN|(_[]e'+leP+!&ҝ~)USVt (@oPL`\\]W_BXc3g\%^&s%k|pl쁮 8Ͽ[m/󒌂S⹉˨G\6'hfEǎ ]޵ym}*rӂ^GsІ9~4k]569՞+0 `F qb h'lVv-]Idd88aS.9νNtwF)#_? hN4yǎu+э':LŸ>a Y DzqRpaym.هn!(@q!ueOaOA k T:N~|` :ozI~ mhN-yS+U5'v~x(KQ';)>|)6(lLfjHLÚ EՄ?:]"XbDE,;ZEVX!fv+qdGN,4f)8AS5uVq&8.Wm"sZhӅ;Spw~1x3Ci^9:ηJ5!~R.(X D 4~Ynri1.SH0^􋫈[oO"F]t>Ai>Á6Kf)\zs@{o#ʗCuaYfq~"* 5.'Unv+s%I# aݧ?`8c-KvVy-ePAM tl&D)ݺRAO} @4*̙!:sOti|(E_`#SJ~1;?EZ7wCSWR4tKX$ ESy H /]TPn^̣uBo{<~w8~t /9ө)"6F H=Vc@YO]1B3"eƋGC1ޖ7->d?NeH+#XVCX9z MnP w6vȸ=?gNi9=yEvWdng>qoqĕ+s]=iYf VժAe`ils9?M#yeu5. w)p§3xn6y؋ɉñSֽ8hhX2 e xtU0@R+ϢΠO_DXZ&p KK0UDwn(дq\l\٩;]gQJ_IB ۃM1d 2j1b$}24V&; 螼`|$e{~ <[Du t{3=3k,H%Hy'&N+[x{g[T|Pj 2\bw83c ]yOdoqSgTMC!F׮/0-\"pYHsEz4>G6YAnnMh&sR!֌EޑsI|n:'ɹAnh>0,wVIDt"q=x f8Lkhiޖ*LV4 ^%rE.1k0drh>|r4 s.f]B\I8.Qr1e1C=HI2O `@+bsD~dl[m4|'W?-eՃUľ Hz'Iˇf#2r_sx1VkRl";zbm;$xPaIN@[wUsu@lu؆ئ|b\kGdj \A QZ:ukڐ׫'c"-^+o":[fP<Ł2@OOZgc{֩"ЯLpyk_y<beX-_%XdJmtI&H\<*QZ {;B0 CY¹2S&;UNɑ#GoFH߂fSʝ~7s^Rk^@6ouwzy!p.bЃv/LǚBfcZgEBK0 +m;NRiu`|#r3јM8x>G{:{;.a"-$T36֍m6ꃾRH~D*[p@)ق#Qn H)!)y s`vX2Dӟzr]b/bl 3Ë)ϴf3Mh  }K4ϒ͎z71 [Z8E)!Ux%\{[Z:<;d o}Zw.f ǟBqLa,9DԤ9 &"Q Fur׭_mS. 9y5vLH 8f^oг`5Z2AԕIFG-~L\]H-)4%cR^/qBLhS7.b&Iyٞ'B@`|Wkz]Y@IFMI.zh>-dOYa%[41R`=s0mPQ't}4emKHaEc%fY,3x:]HZ*]mDSeoZעYb < (thNy=XۿM ,Fq5e.Y$1;.X>Y}KoWu2SMhE|ݷI! p&8{ޙG@~5RM;UjV<-וo6bgpFaN00O!l[o%k_ʦ:4}Z?ݚӸݥ׷f!`j#"$hC)ĘMˍܹwir3m g~p8B${y̖s)ts )(\Qn[%+>x ,Q;_a:8բULuBCCk,]ztwo3luݫH{ZI; Kر"wF5X(%;8d9?qHMBP. ؁ HaVU׵{sw|f?~Ã?'t0y[_>Ʈ{a{`:l9ٝwoՓ&놦,ق~Ect]~?|K4}hŞxfڬfΜp9v^kq^e,|&UUeU*h>h_fh/@Cnq~aHV%<\N'$xL e _ -hQuUR&10HC?A{Cx*P&f‡hp(G+ ѧfV +9{5"DP4M .4Y'A=';Q(aOXȜdx(!*8qt0GriA#Ӝ)"(*+Tl̻̯p mLΤL!`iDӑU M?|>ϸρ 8҉ r\k엧hCQKڇOri]ITTF9 .ri PϾPHm4au"ضCvUDY Q.LRy4Ѱ~Dgۦ>ݠ2;ګ>RMY"[۔q:S{Oppq9w'{8i;{gs0Q!R,hc _eh>\n6yЍ,e2ٽ<@h5@"MT e<_|4^[9M k?K:UMCϡf;{6CQkDfA9H+* 6g= 4`ᬜlGI6y4AF[֘LG uSr3%iG:\ %Vz_T$ zyiNL"yq E0p)6\T9&hd" du h0r.W{s.8獽?l[_dQP'UB!,7 LL~n $i?YBKNzmN{cjH!Q1ΐ6ԆDWDȏ=PQϝ4 ㋨^ntbsy1}1n-;r:dEUMXN'|JԬAnvH͙vr,O2s( ̑NB0Yf`ꢏhR/N>.ONW71VgaCˊ(j$Kyn`>@â2Sǖ;K0[7 \\Vr:Cvtvt1W`a Zԟ@N ^R'ʶӅgɜ'pa  u$!.y!er6!G'Sdk[a! Jp?"ܻIgP_t9֙-4Àgj!I-+`^-X/r"):S0E' W~Ψ/v# / X`쏗svZoYu 97ǔ6D : s?NsW ۯ9zS{SDƇR*os029#29gڗ>9 h+jrҠ rS fRh@D?By^Ϲ(6A Is坎NDHQG )E?nD4?KϿ!W|y\rW/K`~8``r+h4B053<@+0]0^R½Jr%!FdbhFmW`߄Q?Y'D.;.I lkєY6wTGXN859sG6&XhLeq_X@ͷ ,*X51c=AUV$ttPƘަN[IJ'J asGv)ѧ4)|i[sZIw8~K%'%L~ұةi;hngO$dl@x?8^6US`NRYǁh`ΫU^ө"(zYQ RORD]I$^iiYVK?tN,pPKH2͡?M Cߗdѭ$XN/I` X̍I=1"4#DT/1 $ ^BכjOGb'B=/x.;U~>}P+~yGZ Ef - VZzn'$N J"90y%i1.AFkTEL:v{\YvjhslsǞ^[q>ݵfCӀ# )r%CsC^\.0 (YHT+iٓ㫦wioV.t?:UmRۄp8f cZtXCCLcb[bOF}FOpip Q_?VKV`q.&"OkbY:m= >u2=f69OgDZrwH4X)`9Q#ÃJR;]Ph$ <7YoяlN.Ytup1FoʅB=<&) t:erf4PLŜhIc,꡺0Ьs4GJՋsx3^LtȜt99 a(h9=Μ@);<4 cVoZ @vi$aCJC+fhjJ}7J}` cXRʰHqq-2q :%OH$ C {e^dNPhsjH>AglhZ['i/=hDsw.h8% ()MrOȹ Kʲh}>;1p{-Z/ېvp8BeX-ޙT٩!_%܌q.k18_>a("&FUSLV @' S_ zu^;y@P'*@0@XqЇ'ЄhmVrޯ~Y ڬ'URi@GJu= S8fUMP}Of^JPV(rm S o`~X4v EOKme=;e_.W)ٿ@<# 9O!³-Fi"Ow8`}DIWiQ!r*BlN$4E0X~ZaN9t-k4;sxvs41PR͉`]=<\>!7)trwY}wP6J8X[<={-YWjemU\9٥7.DИ CHDkqAމ"/ QLC3dU-dk 4wa߉swwI 0tgf4ȥ$r-gWg- 8ZYHXm }:ᆬ;q{4ͅlԃM3&™ }:+.c}<[á54AԁWoCp? Y( Y[ @e}DEA?gϏ!tK=';@=)"w%՚U@rھ{sqRwe˅ITG*(#Uؙ=.DqJS`NM!6 ŋq߲И p6+6]* } X?`ս0{\?Ą@5UZ3+H\m$HЦH˱_$*ßboQr`:T1Dá8 %u(IsR'l>CjSP b*_؟A-;~Y= q13M؃颬 ^U|?JݸT͝Y*QhDS k D߸vy+zwNü9R`(4Bo:@4ɳ@]F#E}WJf71|$Իi=־TA(`}ZF1u{~iwƜaB*CmPw>ϴAڰe%N˽ ѶKY RbjX:,'d[=C\/pIz)XۖˠQD-j> QnKBALzK:xCQu>8d} p3+"UZMF#M)DNS S NY.GÃ}v(% s>5E}5p}0FX#d4If)Oqm~A9WdXs̨`'l:Z}!85DFE l4C3fabݍŭ_fMN∂\XU+'^৬kpϞ{!Ame(Z pYӇ" }Оm9=f}OCd]@ƈFw7;5%DʇnG"FvmGp$DQlşu"Tkn̥1En흳ѷaEbL&Yw훼晧眣 MFe_w2P@f3^ضQ0Tk &_7snh_{Vu.lDDs+O3@:UT,!9ACKM5r8"se;K,L>mC7RqD`d1꼈2TT  cbbT \%@w!U9}gf"Uc22>G5rZRpIمS̊e : 1u3|,{z}U^F3ɶ$0ti>M =!~4NmT)Z!S2*hy^z M4;̅I;q ʰr-&{ލHs!5STʍ"w3dKqX 6"fO $aÈ.!ꔪ`JdF Aa1k0[aڼ{'"&ǖuԱ:qK}͜[h>n/::Is|t`1 [nQqh뱎4*i'UF|BpmP[Uv=qIVN<LJ6Gh$e)Nm,tgDAq0:=`}Ek b?ܱ`l,~s0ޅeyXTN}Y8tgkg8b=drV''o: ˜ <V뢟ׁUݔ54e w]",W݊>VJAz 3 sK!+1 3G2w㙎h {ҫ;xu ᡼[h0UG&*U|nyQtMCno`3[.w+ ::"^zx6qUiĹd6%h̤ltJ4=5@{;:'\<)=b=jOw?KDi&@]cUžbLx*=*I[kØx,@| ȼ_9*oݠqBb妯<;dd1e)t$Ҁ!6-g W "9"k`ҭPrO" DSQCjۊSVp|QRȧ-MwXjH=ӉnlQG,jI30 Akr0s~L!3p:|kJyH8JoFpTܯi"[]l} ⾤ eN@aJ .,G_8S=AQ.xBUz_dvx׃dT.5Ck֋(fisD=7r"tPc26GUzmSEGH>'6)XvIW6<9e,,[u|1+C,q>&j\sQp4M/-r,6EO^xN@[pʨggBgMH74eleU/W=Y>O3#tMP5<(c3xv:+< c;ΜTSj8lpz.4fg_p!oѾn E[v9uQnFFHk/nG/"ݦQ̦[@!{; t+5݈5.+4Cx)RRRebpv ?ŁuJܤM q_J4y$#hd;&mz5UtEk@s;FIlW~C ~'qkAI&p(r?Y;?ž8A*jl 晖fY|N;R@s){ xaFLM\Uyȼ6d3iE)MjOp}/U] AWmK[*Yh & kqj#98zNmCиtVQ+U7q̧-gɔ?ׄ'n(3;6P^ٕ0l7jG.~hȵO/J/&zǑFQ8t'u6os7NX[Q*uia (#4Ui9<'u qYgy:y)Uz7 R ;\aF_,5`#r;c&rƠD;ayVG zHz݋o*1b65@W)heFɹ/@C;Uia*hQqϘn&_W4-4l vpZdqC?ݖ$ӣba-gy`T@pr几KzDԭhF"׿C\h46N0p?*Liր 4?S!⚽D A;&} hh4`xbLTGFS؆ mj~0tyX|mzphc#6;Ϫ-P2W(J z{ W@*d/菶⽝S]P,oJj fk!H-nxC!_iYaeBy:R/3l%[H(&`Ѩjasu^inq\Peae?jhCdk?U Ie^Er2I:Ҥ<ϧR]-?i6@\ɞp"5+׮7Uo@$fzS8׍E隳ws OM(Wf*ኝ!NA^Y̦Y[EGq1Ø*b^k{fIe b`Pl+.*|F/i& nܱ2;)xKY;7MQWVOpYq?نi:[\eGU224̺ٸU \<y:m>V(c-9Ck 4n(9Ǎ.;zz_pfN0grYlˌӝJlM%l9& :2S8?z>Sܢ:< Wit UL@Z>EVsgP&#,\n{7I8)&mgszA7ZLØbؗ;8)bb=z ~@s)(۠Յȼ[{I4Ml^z }h\Ú  _{)@V_уMss 8+uDK|uġn>+>Y};?5vq|}vNeuo<7ff ,@),=c<6i93A2sF}7*vncO^/]< #ȽWK4͙jJ*..qЛ98+ˆt남tχ&c( Dv~ @'vBZ[Y!s\4j1΃'e#7J9i㴾X8xW@4 +xO)Xsm|Ko8aShNyjm9 yFDb|-U3DrJ6(/wMHF؀L :kIu&[pHM+!`D5 ֲ}gU}fKcvѵ oGAЫi W^9 \\QFՅN4!h%AMI4j1/8XJK6[<p~4QZo0ɸb}7lS4` DwG\L/tboDHf Qʋ}# ",(;w>5U0*Q5w&Qxng^׸yBBG'wHM~Rorؚ@7o;.aA܉b0iiZnrC4TQ%w6+}Fؐ2u/$vTրX/\8KPqd6|_w?îϾF5X+1QMei6T4nZ؊> &hSS34:n`T63L'˫Դy鬐4\_Cgf*Z 37fgj a R: >** nϬ?UM;X>֔HNC·͋?]+QY8qF X50JYکfz< aiPg!!-wI\A 3f bgW FCk:ϖu9´H :WKkBMFW,Z.`,W ÍCw맷E$![9РSE~t&X <0<q{hxy1f{/ "IN#@9KɌ ,ɷ4`ǣ$l**PӃzf<v[3˰؛ܩsh+-^jͪE-ZWafUcb.6Ţ?%h ),h6kx7 tƉ U&E;t_U +Bc-l0nFAC1kjR']'?5~{^HSBov%s~kL48D$FX%= [}䘠tlF.)opk~5}hH9SM,l ApL׶m/J_:m!P7-`y_P\nE Y?) Fg'|q+> n݄tfGIw]A<{O47Z-4]cY| )V-VWI|,I6 SࡰNz)>8kɳFIe~k6Em fyԻ7=P %셷M"jf^:]Q̡ko6 P9e/o.'2;BW!Y*þο~ugyv 1IeдXPLlÒQ# }Ft{`5ClZ4"6.JeQ7u{1c4ҁƌجO? @I{@?LEMqٞqo鴊oA#$4|Di$zЉ*\ %,g:W(5PєNӊ¶5Џ "׿^=FTSi $\?Iy›#^ 8X@:vҧwTPvQb1}8(Z-&Ei~w&d³ަ|Ӌa-M/vX + eEMd*GMua7Q'[V\j>Sp8E(IáFh8~x4mZ+tz#\*MdYա 房?^í ២۟N݁& ĎTu6R.ӠCQmcڧe7Pg7  hXAhDQQDf DʅbJh;;;/rc7EGƁ:]'ibT] UZu5W NHvVfC к^y>TX n Ţ 4M Q.Owt>'`)Gl*d?J"&/F3:V5G9yF1Ц *` Mh>Z-Y|:} mv ҕ0Hex%0pQ|r L`U0&s(Ydsc y,EslIR82's:h0kQ¶`\h@8 dd1ՇV  wi>xQmp6#e:dZgOs-ɃD=?[hhkdF6}|;XRporePژ{nAC<)[ՃF%q%Vo3iue6PeQ D2iD_|l$)lO.+x]Mc""Y?𧸨mr)rܢ|N,KW qklTy4ʔܴ~9utB+RٝAE@\>UgTL}ڐէ9-akA@8HrFo `)DR]âךݟ6TD(n|z{Ӝ˚2dt!;(-F6;VCJ'4n{x@λK>'|( kegS謪` ;,TQkn}Bܨtv͟%܉mbc>uޫTUG_Y`v`g{-Sg 1/ᘘPk.4Xz'?gE^S贉A4.4$0^#\ҶPA)ؔ,5h>Dؿǂ0`сd[GJJox…7c咮w:VÝ|^,F1@# >j5KaGz'mgvt!;uu^03koV~@sR~Ho%tAzy Qŧoė>2&ˤ>9G翁!Le<8)sP|sX<;kIKx-fQ+w\AsBt6wťJ7O&!j_?4DѽI=n1Hs`DzMߌ=XMl>i3Z+NPtOed`9a:Ԟq SQFM˃ˇ*H2YZ"+/ D ߺu h0 d-41Xq2, ; Vc>4k`~O480s>46[ݦۻhNTA9! >TTx14.-թ)Qk/Ágh 7?a>+.BR5ߓ v)NDVx$I{LR|^N)Kw>N&s2{ ZyLek'#l@Ֆ Kw˃(Lf:q0QV|G{_6JK=Sʐt# UP}FTq'qąjzQ@%U #-tFO wB?W^:$o T2T3c m ɊT ioDOD|X"&xC,x<ssh(_i֛>F@Gޒ(w FP+ B+-t $:HhL'燼vܨ;5K E63:+BAQeElu). t(^b@dOQukR$ֆm8 +О˝(!;g8X \-oh.LqTt#tz DP_oܽa:K -0Mv U>$ $:UMZފn7ˬ T*v 4)xiFZjӷv ނ lx#V%iXLW00Ԥa%yBCF{,kvVծWzvW!vtȃőa@$ B1ݚ犹 0!D66/Y1JȀ+"AX$1H dWgw8}}f+ߺq?-W?o>&.^%"g77nnBz\yڸqs<=:D?U yϿ>{U*˒]QmTAt]'qշծȶء)F4Gͳ|yƉ*mPL W.-8j;||<>O)f*%D&*)|rUI_G=TETieyQܸݯKLAL:tǐ}g^WilwB9:~ I)K6~`,BSu ~-TT/ʢ.K|MoƑ]{mH&Gs$GtY4IZȾIdQ*%q6n믙@w=^Bh&!m#BF/sx^eqzCL]P;+ ݎF:FD%fS![yHxMn6-` tdƞϼEdˣE?0%P̾צbe*(ɣ졺HpCƬwF_lqҧH0wL3:!BE&be,t^;.z%y Q!Q|lmE5'sEI/dl4g,hM6m gTiWj˳S ,_l PU|jIn~D j}~|t~~G *`dEܨ>*^$܂R8PM ~*KIT@Q8#fhWq#J튛߭1}NA#:k6aW LkAA/фQU^F;o~Y0ߜ^7,O yD"[Ǣ(*K.̗Pk%_qB d~]"׊kg(DW3t.R̨z29r$7_P= C'y;S uqsf]g֔U "Ky(*"$0sq*'S_Ⲧ1$DEcsjD+e+S567[͒]YVUM* r" }U)h݉jVu t_@}@brCan1Wï0 p٨ =S$!%2`hq&CS|BP:0cj:>O>Rz]1A/'DtiFf@E P7k?. YYFka szmT #(Qt<6v(͖& DnI%tQtH!{hQ*ʢ0I#|Ŵ4]DURIQq48gգA첐 xO#x<}DQ(&!|-ݸ DiY,P@5ZC@^=[ï}W_˚,UdV1@H%J5 +>iD}O?*1 113fz_.y(/(LC_kG*L uFK ѧߖF+PllK=AcF~>R$M_蒖ů,ԲQ4N< !I7YC.4YGY04#s/ox>ڪ*"H9mlkDޤKZ~5f0@H"EV5oO83: PM#oER#F'a}hslHTjPfmi)/޼s.4.XhP7mJnysPd!`hF8qN4Ch޴\#MjWd Ƣe7`}y:E4eibfO/cAf:-#u``Kd=x%)myM0c4ʭw|CQDqZaswu!Ü}u: /(v:J:֥" 3BmwvŃ&AOKMREh6:[%6YfñϨ =p:éų,N, Ѵ.DW!6XM 5!_0 yOz%(E![0 4+!|tꠑEq4Ӂa'۵7rڌQfOAF򐇍D8o-|!K0?% tju_Ε b?Pρ]!eWETBÇ(wio?'< _΀8HX؄` DHdTs֋4LΆlWa  %?gW> _.ezcʥZ䓟"mXA֓0c1;֦I$'? }>ɫma_=o{-|- Ooj>Nc3E=8Os6ڴy4;RK0jGn :nX: qsx7&xn4i|q{EW)l5vt p xGIGzGrl CU;-445DT;C-RTBeS򪅰tyfY\E#&(a Z+βr5&τE̋-Ʀ {2C|1jTf;L"㪷˴A`#n+J~o/~F]09tWp0cF׃DYESȍA?7L>K 1qutEd=ں~:4w$6hoW\qic>1_4eFf:X\Z6{*ܓǸ2:wGd6t0Zv>uk:wj:; ZU8pxDŽFE^TT;c'u!.יXIh6=4>ĸYv貨O1H@kڸ͡F4U@yvivGsSqEj^αrO8MH(ը&6?J?嬒$JvF`Xh8PPLZ)nuYqmMaC:4;3x]L)@ ,|D&+ vՃ(~F_pud]k& HM1dC7muUuU$_4 r/96WOFZ'T 2( ͟eq^7!G_`YMv-,H$fP$%}>e.҈yKzyՑg Bf_'XέhB%73Ijg9! wnyS9S}W5j|,qaG\ajL%͑V>egJ/0J4fxy[VSX}H`h՘(3]2/Ab9X }D]n4KEE^V~X(M(ihP~"0;a޴MpkA VBXJtC(<RVvK)U9taawM4Q%i07TfX$,n~M9Gc͖1y0Vm|"+ [MlMڈdLf zL mUN<ɪ%:eV*֨S9BH@KE}HO]_?J?tL/?#5~ W I1 -X.q/]Vu) ~"/>ߩƙ%v]Y!uPNqkŁ&TT2C{`Vr IE4}r;1sǯSt%;qY^)B`U8A~jn[R@ *P̬Dq:5\`,*m pG.=cעV}|Bt^;MSFyUe.e7?4L -0ԗ,֑mJ86h:Vm. rl`S,}n-/de)Sa.뢮42Z~צpp {D8J3*x'k218JC!פ vLErԄ~%QS~^;Pe"h;9VUe3Gg_ή*F飁`vw[cTۧO ;V0mO;SFE0jJ8`^dɮB9cLپQtSI^.ى \G}.5uJ@FـClPvQ>r!-055\v9vN®IO M[2Qʂx$8s &+q!N 8o=@S]\rcCf=NyK~@i[v6:d1 / 24Q')I Ƨ|կ(cibcM  gu[.7\1m` :T4S($UZXw=Au2 Tpe9 KINp1*Ia4|8x| DEZmbQz$^lΉ1&Iͣc8G ex]ߞμT/uI&<Z\4M2mfWT$eՇN9?ItݔLVbgcUw_~b.MvE޴!*KP;]Vz=ۄ[S a634)EF_5f2M%gwvkϽyy~_`bQ!+sÔ!W._q p3^(=C +)+fF]&Fh*qSx[ :OZ.*V` 9Cd"L1 1hB\QǶU:'ڂq$K6ʷS}pVœCc)iCUl\/,B 6HNoJIdtٷ鲧Oȃ)ͩ#$!<<%|hOah֪ \O͞}_(j,bQ+sU^'%R;zZ1Jk]&r=U o7I3eiY.syWڰ1g͇=4(!,>"!+eK&Us'&=G9EZQUFaӁd5hF!Ϭ[ITىxIaY] q`bDs죑i@S4E[ݠud48Kΰ.7jz[m5E?N UUmAv m&Sߩ;Ad!v4T .g q`ꪠ 4< 3t8B\wIRTxMB1>YKP&/m1a6|W\\+ƻ{oWM.s2h[1u.u7^x7vx&wGw؄*3*mie(mwէ [^, sꤪuNK`wi.見yCk4Kcx.5p LeIԄU4I}iomiI^/&ezD'\8hv[/BbFE+U"c|Z y(WV T=\.\@r^l/TCs|T|m$>>FTʹ]2(L66jy" %O#s<"F\+o}4}zK$4%4Mݪ6N~INI^e6wXͦF%~ "$~h2 i4aTUmHRPHZ'iD[ sY2O|K!j/ç͚>T5%JYK]7бeQufͺ'gqY]N㰲SIͪjV@a-а ^c ܉*lgk'5h4.=H>ts5 JY;EUb϶_\+9PsIV*1fqfiM | u˲ ޙx!F#PpF@% kư|ᏠlefvoWssB0,r_WzoS`P F'zDǶ;nj#&1<|b1]]# z[ݱ%JUhAo| G|U"ӡ%[EM•-+-bA =CP&8C+;M(DdYsd.,s=)ɶ[(& m: 6aXeGUlP%yPխ<«{xZퟫ f_ȩXT)@<]Tb]ɹ}õkqW3ג`ytˍNuM.ٛciI>Y8 .vTppd O]cWMa3e] .jPE5g3gMt8K~ ?Y;2r|:f*q[#=}YSnx<%<3<3Uݐ!bESz}D:O#SF0Kqjbϔ8郏IZ]8$ 53a5&^v0mf!BݫnCr5)$ 6=hE$I$&W$O+v,g <?jwHXϒ>Ioc2jOGCTwJ"tL L2Lds: HlvV,wj]S=f"ah,+`uOt\|0Mm&hsBxq~JbE澆?G hS(3Fu} xǒǬ?U0xÏf<1Iu(nV kh+84M8cY;Y$tQ`%ey^/]cL?G4+gtZYQ^.d[`3GAF̳hmoxO;jQ9Z~t $b= bR'f3B<ʲ<;PqO-(}I$®$a(A(,[@hZmc O -m(#V|#rZax Vace.JvprtxdU)``j=e5. P#ZG7jM#_S\(!~i3{833e߿Y'RCi$غ /U]Gĺ=C; @Ӌlo?( ZͲ,m[$"ۮpZ] y B[?M3IґX@+$bâ(>+ibJ 6avq| W+ Er .;K-i]^F6qUwx ߯ D=Ղb=dH|Zڙk{K4U\悖;>k=eͤa s5WyQYϩ]5-|W #B熡hѧ'йB(]o2]*W%.~|CsEv{?=i>Hɳ@rLct^Y18ҪI[& 4:٨2.LR2j1us5~$]~\牃<+Hw ?0Xhlc5wwqR7|zYQP x~JN|ajŬ/sR$J?ux=hp}Ǽߜ 0fEWJ ͵S*wY+S?myQT@Yh#B[d~i)KǤbV%,U^5`2Uq @#8Dg\No~ԓGJRN]7xeѮp8p|w,eyϴLx7c0ū-(URyV*yB_,'ip U;`||% v!{osL=}܊9g!֜> u6Y30{Sb\IvQ' ѵZ͛ͼl Ba iId {\5d(DM۴ ͉qkTZucpyp }?PlU#SQvgЫI]FٳIcwAjp3qǭyItT/g*4lV|Yc9G$ "id`V)qMλ𲷌{r _:jN+C*QW 41P(]יں~~ x74ä @+*L0fc[&Ʃ4.Nq ( ;eIED;˧FcMorslQEp"w&ul[gx$m:}h +9Pnt]%Ry 68L!/)/$. ig0;]{oȡ.O9_ rBptRcߙ 짪VE=mH#iW2Ö]K4xȵA?åROY5Z8f.fǙ?ra 7hfMWq]l\Ğl8bqC,>4@8ZcNɍR3dKV{cPj8aÛ>sy}a [CPwjfiݛ Wˉ</ռψcʅظ蘍QY`A8j`g ߐ1U]]<6hjg+,[e/S.x$7󼏵' b;yvc/FۆVj;>l$ΪM`aR6ʚNq3y?e! "S&}6Ǩm1$ $9IZU3PK @e3 CLdܡwz ڃʲjYI$6#|b's yC4Y5 ;a&Q(0PIɵ>|-jQ}Z{wƲlE$*A15[mੌwWuꋯYQ> rˁ @jcsTP(;vjqECo6W<~`/٪Aવ8^w\k]Qf=VJa*$jU;|txz׃Ų.U&f$c5ʟnG?5Ja}8 u s(^ ih \q(w(ރvz#i n@bk .U*>-DN~Ҕ<ԁ]#P|/V\f8 +Ј0UqjWOO+Ҷ,Abϝ.Mf<_{"M!](i,3Dm8Uohcۤj#MK9/hlaorY˒񞎐fA$(f|z@ ֕ATSF [fy}c(AׯfgForp B8naQi)I-q*{+*^.j83*6#Է V2%6?בt_k-MxXiC yxd43#/8ʌb_]F$L_r q^mwhAa+eWLˑtQ?SUgNi(=fX1=bQ_i(EMї`腑rbAS.qi|*P7{v;#+fp~?uڒgȱ[ jUҸF3$ $6Tvar q!*SN mZDY}~s^*7kMO aOi7!O锾8а]VTk l8ژ :5ƾ=Um,nwMyŠ".n PuuwMjJ k<X6 + 3&W_W If5*`yE4G`%G [|:^xWRVEBsgHJeGwi,*%#h9 Dp!{[\jx~Ziy_X}l"'Xq(.dz~1@*4?E!UDow 8 {s},x4>߉*@e~EU̢(V㶀k_DMHqMIr4J19-9W$ͷ7!g_AD->>>_^c=(/$W2 efvA-9!9x1ۿp|9ϝ"v.3y6S zBQQ"RxB0_?>XAPE@4q'a!wWH|NyM |oڪaE}2W~҃bpsBP]Zlk'?FWkp M³? +<]Y3Hf=an1纀(Lwas[}룏Qk a+'ijhO8@UTz9?-pGԥ4Ȃ`ESL"llFoBF!`gD5}7Ӧƾ!p6pU ̥'ʚ& z0DtyT?N0H$@GLbۆ`{ Fu6.w+HV]T˦OHTZdIĮDT tFAmKy*aQƹ, Q G&eQ-MkS*,M3ClMw < )` ![QT7=WC6hhql j=A= ~Ԥ^NVeaԣp&~m9%sxt1lb{Qr+h3x˶>졹sn{Et?uֱY¶A쭤F[G+'EAZyyN !,sʺISY!;xnhyy5U0<{䨺U[SÃ)nH\C2@.{{>ȉfI`V/f`ۦ- 2g,˓:$wh aP ([`Iҳ[mP/Y sys&CS'mc °'fYur8&;)@'ԑ<~6r͉fjK^GeE2 wd[\ԫ-0F+|9*B!]7;뒌-QX#r7Ahw^O< $ EqodY.:iCq~}uc^d-~pp󌄭5)@Na7_EL Z= [M/_.U DiI|^2Dt8 feUoƄh6wOR\?qW=#"^ڀ(/,r, [&yc ft ZxnY_;W @ܓaMw d1ڱ5Ks|Z4yA?ٚ5ϹaRyU0bfshDkh!h4iUC6C>m)hfL(^t@em&ҫ(nݶѫ%_?Ve<Tx\^uփc~j$SGl=}dEWUIW[ j'?Ls=.̢"m @Dja˪c6uq6"0;#)R,B 5WITE$rw0l6?weu#u7wcլ*陝q1S WBC1F{,[zTծUϵ={zf9wWŐ8;'~1# HADg{g|1!(c01D#Dl @ra%V= }{+|߷ӛ~}ӿvþ_7o?7??&!ߦyQ~_yzܝߜvL0i.ԟ6S_/|hiqYtNdb.e4h57hmi7{۟D Z""z-BaFeJU6UݨC~:@'3I$WBHc1LRLS7y|и,#B9}٬3 (˜k) Y`,o|Q@r·IEr4gv:/~=Gzz_+>j+BnYf%DJLI2=dgQF8[6{gm+~擒]4C#qTBFGsX=fD崈y֐f2NS I@+ Ir @te.| $*3f`Hu<ؓ99-&2XOt Ƃ1:U._x><7c4BOp- 2O{hjG6s)ZT 쇱0sڀ$LJ,ODu(E\>uI> ߒCq('Qp? CaʔH iJ`ϗqYV^9݁F64M&k9n6m`Lt0E\z[#&ipy<%$@ø3SL!|7$2X[S:NƏ/6 wsX?6>N/owFizðm˰S+un LoA/K&b|炈vDuq]rm4S*K>#sPYRdqv4>Pǧ3iއT@#:ox)Jdvŷvo IJ?O>y "e? .pCpPAk%> W3p3< ٮ(c?x:ZR ~\ m6H z`󲸆fC7+ɡmzQ@B(e^J1JiTp(TlnhL%$Y> 8LsKu6P5+hzҦdZ/ Z@hon1ߚJTLCB] ],(y&|/[DUOe̶mRr Gap4|[f8vuA-T^-]!]e 3eVTPzNtwNB^xHb\i04!.6ch"sC6Ci%.Z-m{ f129mUUv#C;!oTomT4hB<,8 DgcrQ&2_Qðm(]fjw3itcB5T]] 3' Kآh:*x]nݚC1ϡЌDT5Y1.@/ S1fy'iVOj]b|d˄'TS:Oh~~RdC^^ʐSbnhx̱tCUUIQorPu?K¨q؈8w]ԍ &}ǯ`"ϩ9QeaT1elg-Q&+Jm)RfSقB,,iJMpN`u?PVhBhaڦ&TNSġp4zPFM f38FycBLp!+M8ЇshX`eIWݔt~g4u88.ape @#s=O|I%<઩BoȺ,cexؽ*A4zG`6--01!Av ?{W1˴˦ Ҷ l&ha`@xsLAxEA4)زnĔ Cu5 7m֫[zKAX>>~U綀HnXSa֠E/ vڢC5t91ZN8?Ab땫 ,{}*1X V1.sY +W21>h:ZMϡ.,ri$I2k_Vqzyodؙ2qCan `èaya:be.?$e? :sٝ$LT2Oȟtм^S̐UF75[u:kZЦ GbMxf; =qU%o`4[6$[41 @L%5lȫ8Y[A6f>*UQU]E':^q<Ӏ}@RziS3r!5#_ 4˛?ӈS$?hڙ0!fZn8:( O"qVAQ>{఺'ieoM% ,\OCy[K~.8-$ Ho0b˵eZ:&A@?'EhU-slTӇ6_JwC(OK1XU |w>ßwR@ux6g0gO]ҮNUՅ,&x.2K_uekBBHy7YR+{A5R}ZB;UNw>L~Vak|f !&|DRe!B@՘؆ybsX9vFlB0Hbռ3\5;h9bIM?bhɇY53K4uG ϿT5&<˫F_^To&nyH54~Qp3.Re|KFXO~w!smµ"1j=Oy]PНߚ'052vd#d YZL&C'AF4 UZlCXa,avs715Al [ lMN~coQm_:)i|ІnE<&h tRUT, ːmk'(̧6wp<li (glhE#΁G,KB6öq͟"ʷei-8cWۦǂ*Qy"G퍵{b*OҢ&3c*@,;'Ef5x.xP=B:.97QLkPtQx8)~Oǽn X?IW':/v AH+Q| ϭnJߪ| X>҃ ,ԩfǦ{={wW+Zw{|όo[xЀS t{!_zX-sOhvlW!pi[Il6R \wL(n(#184{mx } Nh+1}viJ Єx6g~I`Fb`{tmwPRǾKlJI縐"aߺF mQZ/H?my@}y _ (e<  XH\B\\wtw JGy6:;14h'bj.f]d}mX%a͂˶*4m`E43՛f/`}|\OyM,;b|ׂ9=5źrv< ߿qsrH4J0ñрUt:ljGkᄄ4 Mۮ&ɳ|w,se"&\LA-a׻+м\GnB+^ƽ[BE%QoLeqzX)IB$7cj)'!Mۋf9}N?sa\G3hl[]IpyMxStjO:h^3\^'Y㋥<ڸCH"Kp48c7 vMC-PDQXr|{@t( Tރ;-mM j4^d^m H1tUF^Ncl(h,`D,py#4`i>+tVY%b@DbTx7!>ޗk4@7PY]@ yDWQ\yvL D'lz~i?b6"*y_鄲"H5,MAmқ!Lк]] Bda*_/SH! D>FgvUcq1oJ%|c ԂuU1S5d߳׌O2k Ƥ߳L+fwFZW_}Z cSXΧP$h0SyVC,үsL:GS`׳2- osȬֳ YoIJpA*FݯoQdLQ. /ӴeX(tM4Jɨ94 ?ýe3_>8/!hp]Hyi @Q0`1ܰ5is=)Ìu'cOjoGUbJ0RK(dc{aFB<(xgT0akP489$ќ4S!kEiԮ 9h55d/$ӯ]":(Q+C+l.$BDCx͘(}PL1u]{ivd_>t_V@N>O-}*"&EU痃խ00jY6f&|.8$c'*;J4 )6sY47~L@p\eΣ14f UY'fE4B z;+&W2 6x%)Ҝ;:Na8^Bez[$O\Iez4Wh )z)ݡ7s}!W0ɣ΀unڟI|i5Ma#4D&x:¶L2L r12M/3Whs|D5}ND ?E,غ^O/8`.]nMs(u?J-m4j;W5\z>wx[H$U1Ҵ`xMS~UٴErI 4D_NtvB ऀ[5/9`E >Y.~ %qppij :Ē;Ya="2wGMU9nCMFdّrzrDנbX Us4@BL V}ݰϡw8XGrZq(+r/L鞃@`;âcL 7pOJPxFuIlUyќgc9#wĠTĪ (?֩4f(/3nc0TB(&ܦhM淾26Z!惬jؚYhdɕ DU( Ƈ7x/^G/E=>-+>]/IL@3{y'!4QY,( G!6}sgQ=C۰x?4 E8f9Y- F@*+]4 ͒yn6SLYT70m,B(fXy p([ckm>jQ>!2xmGeEQWM̏ږZ 3'`͸R#B/<~8>e^]OE!R7tl!Ͼ7sQ΍;W-DUK Lwk9SP:`C0 `6Y(BR"kC&ۧy]'R3 [=D(zH2ny{ b2xtD?,ĭ(YuQjϲum$X|6@s>iQϚ@Dm%} D`c6[ "ƳDPGQ7r"x7/Tf~17|eل覤*h9Aq(,9ya珝F6Վ?j<ꀳP).lI0h#b <-3@:9vzP6b_g0Q8*R/c#mu.vFx?Y?)gq[@Hxs%2ciYd/W܇|~<TtKóV`X% \ H]7H^(gD! 6UUcBdH ̶ݶQQrf u[d͊n(g#£2aՈWkBpa\/ZH SmskT" Yan^|kWLH,jP!g62Z{c`AM YM]릌S ={Da! 4 Ӄ_<[l[7|*T<Ǝf7j ST&c߷ A׾; z=*(*6_`?n5/q0-mM'YS‹)m7!:ar6\z~ ޛzt4bKJ(g^XE]5 h6<>B泜gܰDX('曋!_cim[ERSP7xsK@S]ejŭ>?&$/pn91Tx$g'Ժq>c0ðw7gKf3lKsQoKn+2JI::^mm̵jJ 6gPM'YZMhDިrkA1tSms мRL)RPD%#DOݘ* OI,Ux纺Z8'U4ڷ.7@8H.C("Z>UCE{Ve̵􇃅x8 = YʺU yV^TP3PB_l%s>_=W6Ft]5a 骯iFO#r-TXb:srlzl7't#Ids9m1AfP&8= ڦW~At\ қyjQ aYD_oNXE#7?Vm9S1۰ %a*F HTzr q|=hNjXCt7AvzB Ūŧ¶K ؚ]{F?ڻ{Sn0z#K 6hJ@ j'prH~X *ugQrYfh&)NbhϟN&ϻ~\W$L̥X.S֗8 '\ޢa˒ӹ䯿..Cc9>T0`vgcU;; sUfeYreܯ^YR;D£4F ()4/35c<^ ÷5e2צ^MVDW+&6 ]|kFiUCSK> z'Ҵ>i;'>|m>¸]KvG"hdTdUanI3K)'hCqoI j a$FvM1/T<.䒼rkT yJ!* .:xdvZ=E/ |O}0m\ALZmK• PȨؿ%ڪY$~aۊaŬ-BXa4ʰhsGfng43yMn=ߴf~y ~f\fq=PPb* !@pqsVI 6^w=#0 ]bf40t=qD⍐>_Wx_BpUSr㺽~Wh1,P]2$tA7;WtAqWc!3bI"/Z ݻA6 qmE @Q?shPhT$׫ 9?L.z@ Dvbg"B, ?Sn hFvM<ԥ3mW y0zʷyV6հ8Ol؈e@ UrWOnJ0呾y:tWxϿ4in`Wb`$^vC%v;'cŭw-}q/8*{*07ZfCW&qɮ,ST\mK ^daV_jh] oΪ(MN%C#K?/q! ѓl<*|m4 k (Fz|2u\l.DSe\f>/2-ٰ LA~h`!>lԂelj^y6eڲ2;"+oT"Bl d1;x }#!lu\#VG~AQdIW1ύn\&pqr%4<W9I[)cP{A[h%3@>)q[4YXH7$&6vr*9"=N&$qFT2 ȶ{k`Uoxo>:dҬRa1mG] 0dc1}Fޡ(lrFG%`ȶS g=\۾mpE}{J62 .<kX =$ʣnr;"I b9}@~gNnzN Ma5M᫉ Qoͩ?/1a%PqB_Y,TW"]2 O;ˀ#BSD(GD:MFq') ?il@p kQ6Ŝcd+YC4`m@_q3kzZј/˯goEdE8U.pNדq'7_ތm=N(kDQIپ[#$CvL:;c@a!DWU5HN_yuΒ*^Rf+_Woep% 5dzgY6e`ՙeyweS2tSFBA*-׾ge7dnhNld#4~zD>.[dL#Xk:ʦP9uL!:3F f?uoE1`"*V|&(pЖz1{2/ )C\k 062G5<6_ lJ #h{!;,dFԄ]]DŽo?Y|AE(MrXix2K`0O%way1"Âs*'w(e|`s's?S~migBIh'?tw,g`hC*?E0@t"=+N>]u.ۃƽ9 /4If#LOtįjASfxl) gCQ@Ebć$ϚEC6A<s]֘wٶLlÐٵZ":)qH ߍ/~Q,>M2Zw2`A'cy=ԕh^V6 8S hM.{GMt7f,"h"\Z@sx2 {3EDh 0: y){1F]M2';DE(:ȶFUئhza% Mv{E=g]:hXʆmuþu;muy r_JL~rڦ܄Va|5XWGӨTo܌=h' z쨞S%urԧ{.G^&jY4.$M:;8zPOg̹/W5K p=F}e4G2N$-ڤs°aOĶ//]sh ,/kQ>;0  jsO)4ȩ*-4Tmqp@t3dw8Bjbhr}Pql*\U6nd,7ڋˤlK'u9GJh+NRp5%CܺqT=p@s{nuK|LȒP0;fxJ7>nHal j_{}EGE[i} "Of? 4P\m/#%:E$J \'OL/FshپlP'bgOo)ՉmȖjb7q}z]12NCYoTP 8`(,; $ITsI\fE+ 0u1I,H6>©Q7ܯ2Єm[ZY⭜i,we]` @+͜1! D'ص{l+Sn5':h^e> νǎH0=tA~%U%QDuSOۮjcO0OM 5m0[k*BUdspYoDz D#2; C!|Cw85W<4=B=y5-oc3׬ͩe4l3M@{vn9ّ0+w t (i'Cn`\\ە BFS \o?<&3Dv^LNaaxxȌT瞧{Mīm XIBok!9DqǷ'aW o雠Js&mkEew~泥Q9o6uӲBL-c^DOO WNOwR7oy&t<o٬4␿:u5< G!=JӢGD/\tڭ4K{#-mPL%ft|Jc׭BCFk,~6jZem3׎7]FJ4ݷE6DdCb$r@1'=9ϱYC#@(D"bd%GD_z>{Ϟڿק777?oW~yfomqvw607kxbOs6=16z; H/x804(//Ύ7hvN"ھ/zXN,ܬ>|n, ?m{yQ2 o3v6N|!Y= r"eiB e>na/9-$N10ό#eGRy3i&:QZ`( MMlo_"MXb7~!ۜ1j[eZ0y]ziv6k.P 4fI̘ƌo(4NS_~=cݚ2M~ u}ERKYj̧-0/i8S!)ײ6R8"<4S~h~a⹄R4h<FlNLJC46N@R@uˉE(Q,Z}S3ߖcXo+$tɳB~ GBYE*2Mb93Z`6Feߕ$-Rχt w4ux.sP"iY5UJ|b0x|fP0F/,R}~W>{kwOnn %&i{v99c(®CM,:ŭoVVm߸7CD,\lh/4."6h;`j۶!v C`$A< q)g&̈́@p`z>遹'Y^ۋzw>/q_J/|܏ nZS#*5J)~Kj;`CMaA!_ lqcۓ{yv%U\Y^K Cc6U-g*\}hiLJ2$g ؘV;H-} m@6_fIqx MuU/,B ߠNkҷY2[[45dj3*@cs $}ݦ܌UVm 4 ̢r@ExzN;8mɩi*Ҭ]Q`_ s෎ل96U@4Y*h t3(d6 0 Ôɤ;%,r6g&|Bar dA躖B SjSb#CpXvw^U|ȅJQt@ah$*#\b7biw5Ꚃ2cc=R5 sf8vT?w7Z!%+,S~,!Xn;0^ i."z9`JJ!QKX{^`u#Nx>D (()4@)^.M@zMê4 -9c5H> }gYz 86q3y#QɊ}ni93-unSRC~MGѿW[%C^lkA:t XG`}ғm ƘhN#h_Q,]ϝGQ%eɋ:>j}ʩlmG@ VgspK^0N^L΢&T&!WR>9FZE8#Ke4CBSTaP!V}F^* V 1XɰB y~ 4aBG,pðvP9y-9 D]n&0K5fz6UPx˒d=*_.(9ͪܳ!22(4r<RP+H$+0#097M@IT9[ӱ8E>Ʊ)0r,@(hD*ѿ44hqá'i*2%9aABDRмɌΈLZxVS2"6D~昽4muܨ{\qLw.!`U;hPrȀm.1+F0nA!$$H'[_j2Dv .MmO2"!3@pҝˠ9wPqj^L~~0 .?SIh:p*-{IMCD|l#"* zD\"-*ZM/ɕ H%cB#*Nd4H$]M)aT#]Es(x"COܨաܥԴ&(X.J,j#PN SX'+!]W&E0*^VtJ^AQ^O$M#X $تL iZUe3@qe1Y}9dw7?=S$(0`q4BYTLg!yYdϲF7yɣ( QLŴ㼮gQOx^yJI%xi?3@TCY6]6г!E<"|CxyJn*w%Р '}ZG8Y C jOybR~mRWqŹ5%ḛfsr+4UۏI^u1b @Z6%h>C|\TcXޝoCeA8 c[haְ/%SNC HMtSS-1g+İi5]ڑ'Zle#Q,D,+C gAhHnvI;LֳLkT5l\[f6VͣLFQwT牝# BDlk|ny>Fc8`BJSAJ6]U^sƵ5&b;Kh5X8]uQNv0cumحEtlղM31D+c<]c-}8<tQIRIbhZ- WS74~и,/GN ~]=Fe`g FS1)V99 Cm+ Xxȼ'ïFI_ϋ*206,mA/k.V @zîM ˍ[Y*<|k bڋ פ4J zCCDX=Ѩ q)W[n#Du4\/f 8Yv)> rK 4'&h_5῔ .C\DŽsf<5,]6,pо0~CG2\#v, [<[?X" " ТBV[-S$q8ޡ_5@A#B,G15G]*5u?.WW]|"6>@N0I$ y0OL3CDk9-@Z3b,B0X!%D8t]8V-WbNrjaour9SD jADtj8p$E帆\HF/Bh*Օ)^u<N4kd|eE3A ԨQKXA59DWjDΫ->L)c@ۑVaϴvmګk?!5odEKӦ;Чf$M.A|T\qpںJ7S!Oʍ'_DeHZf@wA)E'SADl]'1,YdG2`$9DhZ@?{Ny~sN Љ?_@ l h3nziѴ8O x_nqknx0SgImBBgJN̆qeDg~*E 4O4O!г]u8ZpqkMp,yb8fA tYu uc?#%C;L a?{խ 'u]Ѧup=6CDoj/[FLE/Xxf=~{0Yhz,PjgqkcGG!]ͨL+ɣnlַՍ@Tv8}wǾ<{lV@NjJxnyWr߇R\OH$P^6>=0Y:ix 0rMm&6^TJmrHE A j?߿{(sD{`ḁ ]9SLګt4?%Y[<#+k {1Gy:>`RZ*ޝ`UJǟjQIU~=f fr )BM਼i(w94iB6d|.M RޥWŸj{赞'ae8aZGS>Fbj$y{( ?t3 y &IJWs-` 6z/:lTHƈ%yi U(tnm<&* 1WC5\3`Z? r9XYj~h·pD}8,R" " >԰#!ڥ8¯?uB'Fu̬! qPfg}9  }Iv5&e,躮`9H圈irfCғ-&NC6 x[ |1 :ө`Q^'FAn4CR~t>ݭ+0*}_ |!E u5Eiz͎,kj4ghpyA06 )ںQ6gAͧr[qϧ}y&P5!P4,P|gB(}7I K!=F񻀞ǻKeULd+)+ !D&|tsj:KBSTBW[p"Xt],ȫ5MUUY /J[bˋ= GpȻJH%moj+_ jͶUyG`o-6n !/쭀haPG`hGnNi/ߜOM>L"&i,h{%e8o}$<- G$oVNpsYѧ{ YAc,L耿ch._]5o}q ̱q]&k>cShT0}6jFa`Ą6ǽڅ8ӟ ^SAsxR#-C,.ٌ&@SKJڴP2tVP OgJD1O3L-}GaN\͐!XbwֻKvi[n1LE:yA_q>. )LY@D4Tq߷2jy'yjUY`W5̀ I܋"կ"lU?y0eV"pezNSjⵋ9 4̢A0 |BX7x6u#CTl ͑zL k&\]Iܷ(UUϳzK!) SurE6QDa/m}8F7ApTPwFcR`rzhMۄ5}+D1Cdh=BgNecֹu_"-w53{?rT=2<Fk1ca1:͈a.V%dSa0sZ(t)GeYQzئab11(S{fˀ8{$/Fn[%޷YNfno(zq9Ny'cOnJ=-ݧ&_&L}Vk:ayb5,({*V^h6ɒkoZX2N=OU\>%Emd ^$π9 w[->VMӱg3J5@u>0$ UT U-ወ\x ]Z°y^@c)a""x]}h/7Z$\2Q5?vS2A5Ǡn5gqmtGYZ<Ԛnm )^Ybϋ4aHNm@]jgKq N 7C4ЂoQ3bY9kr׶#ÿ.է s6w6U==c#wӛ2h09)M H ]E LՁ3i?NoHs `s>n0:HL ̰ q*LEj{M!e}]Qj-nуh` 8ORI"@ZMx0g6ӰX̯VRF ƯksoʍC_R>F(s|d}y@N7qӪ6]@!E؂{ӝQ n{]fGhjj#`w݇pbdcʗʡ%8ǟ_ ^:8VqȠH,7IHMiVx %><ٲ >ad<)3lh'A@#Tޕhg}d}qCmm= f)'rq$tCn2Kb*"L'T1Q͎0r/ˡ )g^ ߗe951^DH#MlCd8>JK,C}]{"1-.r2+!x7@7o C!zl?0 -022L_ C:oRRW"Wg'fbIv 7`xOfP仴kDKa5+g< q/4KJO\B"T X '2\YD͘0bĬћTSOJOaŘ{>cb<,pO7 qeDz4_gC4˶*Uro1g6Ո}{o*Cʐ>wZ9Y$c5pC<;vJL BNVćI;-vmuEM {@p_T5ˢ ["=g)~BtbT7Fxs)u>iG*y)9bb{1zz[a$;Zt BBQ̮m:Z>W->W!SXq$3"s`u>nynȪǵ5G0 s o#L.KX]]N dRtX5~tyZᇕMpE:4jf?t IRMWJʝ'\ʠ>P߻CS .P+c;g!htGDшlS`I4chNs$[lV[}6\*tL(Ȃ.7 F;wqZx v,p➭4 4R`l/A *_ltACaDl zTp8.7 HC/e7M.I]]cuOf ?ON~uԝ$Y9Uii4r0Pzӝ{.x]{_H}l>e6wcvxAx.`f{lG2s ~ :Bx[D˖8x3}U'MU6TKnz(^YcWvpGh}?m6Fֵ&uiЈ/XLy/ 4#Ʋ.mF>FyhE)!8௒hڸa0\&cRO>JpꀏP^C/rQF͗.%~x\/n`M, cU1<`p* B աLdYgaZϵjܘ9~ %/7tZLwxMD8$5 CTSS9~W<;YhӎkYQmaG`%C<5-%qCwe=e{<CP˖r5tw{Y{tZMqD W*Jx3~S@}twL#9>1U [#1Ql5aҕGZ.DasS- _ۓ&)I5W$z~|~auAnzrc~V—nLN=]Gvk $Ԙe Ezdo08ZLE_+bOh]ʔhY5|s)j=:j`tLNvQ;9E/?1t@ff]]M @su2Ճ6}ЈURceTsjZ?/!ȸœ1cӈ?3:44'>n!ntmF|pL/00t M)AHyd՛eǰEw]4xRBZg[ ƸUƇγ7c 4dEVC姂bKXAltF iZZU9)cZszdM=|9{ |'jaS mJZj pI"ѰhOm|GQ4Ga9܃V(d^oDT0u?F7EKU7K Ͷ i(lᶢEgިۗgdyulwt^+Կ}94ǿ-c=sgp=c^8[x+qA@rK,mp-{^z޽DԢ ̹֛ \@jNv ޒno/ԡrh\OMpYhҗ2o# {648dw(;6&XT[^ϔ@#&0}Mmo*46$s`Zy2cYHLJOXxlJSFp;pNɽJw Tw:xUa(er)iҼx3@Xt%^yx%(A}Rv\Jcq|ly8&ɷ#Sh@| q}Zd$}4phމ)C^ٸ_s4/7SA_BMkN9^ЄwNN4Z] eD@܀̖Sz4ÏA锩(*! u1hQMw+v}NuhKT o[NSx7>xğjsݠ&zXnIB9UY~yie hkG{->yqqӬKl6ysA u6^RCŪN N}_GW"<K5"Lo_֥0ߏ[^IcD'g/7j4!FNJ-{8z_KIʓE5'4qKi0o`q / y(\q:lxê@0.N1K ,E4F8-SO'±nI*pvՋ[h^.%r58{.C445{\sh'K2i(G~>lU EnpnQh 6GU}'9Rdp١zrrDEQ.,%kXHOhu,+-jFosWhكM?S+)N45E"Y9M}ǣ//$ !|\` ]='VD 5bjĨ+)!ЦwHN{f׌\hEf_̚*ON4o85?Ș٘l׷rp˴<. }[vNx_ oUj.!-|a{nf l~-̿KJjT1`y\8a1 "pg ~Cs'!t7^a-U[}Ua=ua-wiT>/wXHAG!@n*8K~mlc' rLˆR^ μmUoK] rk4\|qH*7}ڔ8(ڿp8v4@V!a0@|lxj I4{!>F$۽ڥ+7L&GeDo۽6hЫ3ץ +qd-%*H,:L"^+,~U1hBz&K54'E=7bKO&U ;ICU_muVM\gr\ Yt4Vp;⹓Bn) %,/fI1dWZBVƆ# 1:N.~\BSd(v:/3ݚj6;5ɤNIA?j{͐Ab@Fxobij./8FyZ9$&`z89E 4z^Fz{Il1:=Q>Z͉V8 іb9,_n˗-e8P4gD͂_B>5Dr ~ xrHZtFsPb ( -};hxFtŤx_C[n/(q 4;^Nb8rGś,n82pǺUM1:ϯo^It.I! n66 cA9 JN`տJnQq4[1!~-tRYq bGcltپ#n0R$ #W W23p[sۋ8j`jW]~MSMURuI94l%дz85I8.Fׇ -4/?IJ0#`X01\I2H`4݅b,'$e80)WUw))|I$/~ّFH~dӵu10I{HM}vTߵ" w9.2_$TJ8K@w͸("-\EWu!h"tl"@!bېAQEw⋟!ws<JTWgwI9@mUFEBlNO')@]#o&m`i5U5&_>0Sq9*C|ܤb=ćz|eN)>_>h ]׍j9%Ոz.N}rYF^tb^L 2\S.0rX)Ӌr'y}gē 0JApEʨ4d|p!4vЬhQDT2)ryPTï˭6nmMwgЬc[B$^"Ѫn@i;~y]\BITy3j%yFG%T.\0*(aHwK0 N'sqayYMPA `V}AEU F>eZd  kYј +YY,t&x/SVZ9! Qm;Fy(\X*P}4[ΐ>>6s0PkNڽcvQhx_WwXuvҾT*ϳ˰BՍk`H&0apژ "GS*LMPѼ)CK @>ظ(D8J>ÛsʨuT0Br('^-\#n㯋8,J'%Hg]4Q|1~l)&4x8 k)I4J4"D:6Zt a+sPh} ݄g͢zRjZ4af[4*.Ӱm?c<IRtW'r|kXso^[31vf&Xn+y}̎}>߂|t|To+ ´$Qs{h:94Y1zvIp_1q셳{Ҩ0}ͨEl\ 0n},)A&!udmz!3*!3,{~M4*#RKzvycb~']X,-\@>R'Mٶj17gC43 2 Blq[Gcr1~26Q=  uvp.ѿ,uH[`Wj6tq͠+6<ѫQ43?*%ϣ OOZ)W&hcM6w+x=|yeՠe}6Ӛ~]H yscFvP';igw(ߗfѺkog%P;T~0]ͲAp9VE5_&u ]}" G- BTC!1w, >AO1$nNaH֕D,@Ўlj,=42s|J:?`Vx?9WX,"]u:L:礿]+AMFD>u.w,)8xƉ\d 6T`->kpU*cH3L5A y4BB/9aA/Hotn f'䊓IzwCx˅#]5Qp mϩ@B<UYW0'ؔR1>t輱=u'NSQ/ z!6d.w"n((O{׵Z KXW͋ͽBo$SBi^ӢrۙOJUSO+>͕e.sʣC8<R*)BFф|r< W.pst'%찫̖lz< @1J0n #BRnCovq Fz!פֿ3ZU(N~Z*IOvW^ku_?h W VqHJ4H_Q,Zss̢%)4_h`e#bTisW+[}XlOӶhAr'Lvx3Rsq^7g rwbQID}q8d]T-y.,0e]0*hF`(qSԀp>fi:6Ŝ;K.PE+\ٟ*$,?RƿŇtHG,e_2hRT.PbD̘+6ehr}SRwٮ;m_^dّ ap]l?⍉ζOg^𿖼RĻ`I> V3 69g,i ݩVZngI<ȏRe=cdj p ڈ4J4㆜30ͤ+N}D5.>`Q4ȳ~05#T({t[ a*FI~^p Ă0ZQ:$]Mm^v/NeHL/|EuHKg9Q @q(i:/Y(am4XQnʹm@/-""{S^A v*~Wh9UspQ3I*TT١Lr)Sg֓2SMպn+;uȉ\/ϕ:>ιd<ա~U2 Tjd|I VK X| A!K"H%F&@",:U]g.};+Ǜ~{q4>8+(-o𿜂i}[oN8YbZD7LSӏ,Y<?r#EӴʪCv௽2t#t7fy0J:赃D yZ=r,6mU& /4ҐD!!K߂XƱiB/ceU.bo'|yd  uPH5#4ÕMC7UTSUao q.J?xq2;NRIRu]%.u3TBP)j% ى"O>uZN_B%\b!0?`;` rIro~ ǣt? _ځXRJZ`XT!&a %}} פ(.} ܥ8&1eŴgVz}Vywtc}+>(.U3 W ZZ\6p;\ }uD1v} L ? co@9ɋH7}\jSjZaAC4hF&$;$qga LY3q >z4>] 0E }cD!F9x>λ.$28*#H7K4ORV1s@D?!tlH0@RH- erMD(JCm[FQ~1Fy{N<@kI#߆4>>FGZxrtr ߸B=ǒL2?jjEtPn&O/w4\-9uk[6~v|~S]$!geCD;@ŷ -œ B)X/[_@hJ@_FDoa(Uuٵsݞy 8kp*0BqBTCSFM“+" 4gbEBchNt]eEWj?M$ihFǧÄRT 3SkBCu悐+!>}J@\sCO[zg&JS^H}7:JE7m~=>g B gr"|Z\_[dCLPt~1h/ qpqvN5 ia8Ciڍ?C4?id%G3fQCaM] ,TMcLOs4'WrAT1Džm|Waf9e?T_ӤЧbn|d>75MBUbQ,߈_)2=H#~]"YĴo6A:+B+IRͣ\*}z&.p K$ȭ$:TL1}Ǟ8b9d_54=fn$ivw%[u? <9kB ,`y@ha*7i(u)rp';XQukY;ǐ 8ԾȽ9n  <ƀX Ne툡ɫCTɈ6m %&X>D8trk\m\j͢_8`.&yf5 8%̲H.o*-{]DQ%4HIk0VH)qD4yUENB.++ 4E^ERSeĨOBUAlkhJ/4h$0E,4Px~lFQаi*yV>Cٲ ULr^6͘봹8!ȩ9+d`FDhæ07mڄtQB_?UnXŽL c.z Z R}-ϐV!KbK--IqhUe{UWJ{J2x'-H8t@Pze!WQVAGա2M߲l,t|jneAo@YHeYBYG% kqA@<\D QIYTDh >]I2lG0M4t}Sk*pCD#Zbf"[Sp%(EN/X販ۚI6e +AtMJb XK"~8sՈ0<f=-$t㞪CCVm.-T;EpDoDM0ˆ/LȏupSsq hݙULe@"2mCElenK gWҮ7 6eY:a{$Bd]B5uY$~=_^DUT$1wXwq@ӶL׿.Ywئ͊ OC6Q*9a}@!7,lmN *|*Y9!ibt8MBwC]p`:ن<~Z9yeIGVI * iH & {Ȭ0M"jŧ/L?66t0DCEU$#6)6_a!ubI7D41vw/R 5`].Q @tY2.*^`,=KfEp킉~Р!,Qv4aS %/*J;{8MeVo zfQ^tn3>H$w^QXג],x54~'K(jCv|X@L eeL4=mYѡ]Uƙ2ye}Z 6|)D_mU==%$pD2 T69ذk4:W. KB˨;'"a*+y\)LDe5@J:B$YxGV5f7b>Wx! =""ɴC%09Rf8wVFG!ܚFQLM5G[B![1АiW.DtUTqM &• 5qZGQ m&X !ߚ|d7N{z?Wul\ݺ1Q{L!޷b[_6kø-. z[̙oY*)er? (u2)8.gl^-;Dɍ헑F =>>)[(V7٣AgaGDvqMɏ;Þy'Ζ7\_`84FBԘWTVL@z[]L~Q՛lVz 3ʭ.}ЦXB"5(IjHZˆuT.ϲ8N> {U]V9nne=!%T'"h> Mcev(8h!JIeߤ"/LJD<6XXk̖E`AHpMOy Nճ=3]10?\<9i:X G]6No=:Գ c:%Vl7 8lF/!}{Lj77hla8rZZיn4;QR>]ըz| +&pjSpZh{Vzh$v %uJ%a?WL,/ .mq \27CM҂1wpP-Q Q| yE%v9Yu%n@dK2en0& ?^_1,vit̪46s6AGtC_ Bý6ǂXوRW%DaA[5Dxn`XڀDWz d\@ӶwJ?dԀ6eHCJorXx0# ]5xl65ä͆/tXYuFs quq[q? ԰cZXdYkܔW{5ei֗<y9Ba?:PV=(A2?kI=I43k/讅hΆ]"h*?qT #ΦW ToA) ӷ XB6!:*EFCy=ծ,0{Auvɽ,U&:|&ccҡ( pQjJmԜpAC'説B05ϑsXn{NWUz6 l VAR8o88}QʹIqVTy٠!bT"J>ֺfւ6l!{RABUQ\ 3+˺CdصLHhb\|@yoݧZVtT]A٠9Cʸ64uʼ]K9q]nDTl1KhdPu`3s4IY' B;ÐtCzvm5|+GqUڌ g&ٙKz[f\Bc2&iymnGǸh.2<HAUabTZ͵S~It4*(!EI3߆Fa"*~* LKTT˲Zb{L"067ؖZs)BlARm/J]1F%6`}7"i"+>δ!a[a|l5 d;MFoe8DjEM)@=aOpi&?OSJk _N:fSx\5,HuORME4;jcIP&˧]Mʿ*G:;[㔉*^*n-5:iڕꂤGSm&j8<+}=VuOL2VFdbCt T}ɮӤl ]m|/ԷJ 9LmbPͅ *譋k$fl}WCH{ J!} B˴T:Ez}R2XC24<ԩ =iz`Zn2/!Y52x:w)11lxPuނukx5X`Z$E$Ӹ|6"/\™-爠]$?! xւr{^T MWySMnC!E el-IW&>{* {miǃ"lGФBgVVUctzz98Qsp9!ro͹8C4ݟ? dazAW`z]laPag*H0F1_령9_s1][@N\4~36¼eTu>]"Σ4ܳt bU&-b:ؾwT(,q/ fحiEG@RCL=cH-)0AJg1Ρ4b`.;JιE2BA?&6u3ey߸F4UH4h\ In]BJ#;RMɮ;P4$6gC ,AwMڟ^Ne= 'x.1?8XeǫDpq沇ȰV Ph?M%%q7 k猢7i\I7KasA W"txoO P[*FhшtViV8 ruIy5eԤ@pX&T'5'i 0yd!esAj v byM؞SuЪ+b\b8 St?-&1ڕ-0C;~Af Du_''xQi=˴@ MLf{Ѧ-pKR/yי~1@r$-(hft]V>#{@ӆnBb9RRζÖ]Bl,>]>0$aIAu{5OwXxWEGLbМnd5A)bڦm˜Z rg$V ؁1oSP;8~RF<Xp_䐦lC,SRCg~ IU`@92bJ" m!Ɯ9A* >ED3 6 6pn6?#"-?(8*Dw( \Xy`3B+yR5`;hJ rKhhSU-:İ!t΃XCۿ?r=d[F4.6I ] _;L7B}^$I\V I?tV{_,{?A\meI7 x=Dֱ?>4.BԕdUmy<{'S tƱz>I0n趆>-<Uyg{Ƴ2p?.>Wk٤H﮵@]H'/5PK1a]0]z䢐KˆHW|?*j2_fyldE&"X-ЖkLd(5c`ӲLbAupzy0>[]kؼRE!ӱ7KӘ]nϦ;+xf3%9[^-)3hfkʌ_3/^`wf beӣ_ _!߲dGa?4˫j^$Z㨽wDI1[Rș6SwOR\mOl2"eqٴ] S,:u}cR4?'$Izȓ*h&wa6`7]Q]=Y1AXcB^Q)_ߺ#=@|;ӎ(6xϮ~kXv*nlZ0}Kӝٵ|W]ꄶg@I I`Y?/\G>s2Af6L' {͙|%L s0}(?/qQ!K(olpULǯq<&!>U'ó{Y[ u]QlqZT}1]k&ߎ+>SSWF:z3u0'9"hhf4ޟ}$VXRǀ~A eg$wwr;&:;.ʻjjD-<bYl; ;o`{6J^<ERfp#m:Ffa"S|BfNrB"+WN@-Ҽln+qETE_cB'$Vqԩ_L# )p8w[OmI904WdL4sՌF|~IJJ\~²cXNP9 S~􅡓l 4n D̙RʺP1E2}!]O{4/v6t>u= nysw~dXLLPxK1 pAk"wŖGq Wi^FnY$ۃbQcZlԪCsebȮ~re }}?#TIl^nDKHd.@_QUe4;;G bh2 L_oѼѼNiZwl9,{ |/Ebio,Xp2:\k皢? 8,S ,;0 ~'XB9 y6p3d ڝپSV́B5h.KS 흭w MVAnXmxׂY?}ipFtADfbZyִ{¬-˖j/ vHX[+L#`qܐ̟'it(j1ɯIq/|qΥ9O1<+k&B Yd.)+G +:Ȋhvi멾шFnB'"oXmݑ)ܿܡtvdAs̏1MfDӜـbYљ?A /]H~gys"o;=rE |K@_W jG)/4^.c!%wRaLjؑW,g!F^bDoCfeyk͙an|" ԨO]xFfѩU@Ӌzаk%U,DA_ۖ-Hlp=6qhoXf- !4?/60GoLh76 |Ć`!sB!Xwwg@sdhv-p%Qь9aϰObc3`TݡDH=fYDۊϒ(x؛eHMP ߣ"}y9Rlǫ#b0J.=?޵peSt6s_px70/Q|rdEugv+@",mϫi_T ۢ,!^-WyQnrI@/R.eR۵X*UPJRqZlt{} t3M{}1*4U ڜw ˩nk' |52TvPW8FI;.3t:/&km; .˒l ,P˱Qcڃq]^@N94 !;wPe/Ճ1D4"T*uN>OljS" b.FDWWs\fg``Ӿ@@H.d.)Ȓ5AGi}!b"cKpd |e!&kIl{\8@sd/[x;JS".eW4c+jȸ.>eipeϟ"iKrk5[]w\p`5Aa"]&9(9ƩJӛdM5R=QDhCԳDXXv\d(ib "JK=cGOHb9 fj 9mfRPz~|fe?1x2]齳}ߝryfT'h8I9du7{),1O'pa4@ۊհ2hH1?_)y6Jkm%4k3 h(s:;_:n밺 SjdȒ$-͗uLg$`Mtj.; LE<5>>E 20\7q٣T*G/⃠3!~y0>{ymuFTE<<%Tw]96Ǩ@@ HLRtsaXᲓ+Q4hR6*@bZ9cDP>ip$0Q%6K7=7!BsCg?c4@!}0eZ fD-1X7 ;CѤQ9YN0@:c&0{X?'ɡ@ ס̢4Oc3@ޙJe.E@CQ)a=`BZ έVQ~&9()Xˮe,M"sP$/M\ΥEGLZ34C.OPp#qت)T?$6cH ϽX-ވ+@%ՠ6icvx1DiZd_$]՞KVVסNm^HKԻ{#6tG}5oleu@@bb3'srKr>.]Z2k9LMc忸ҕU^!QctHpB1;XL8wo!r4Ĩ&ъ B-#* `Pd~a7w壮}ѨjaQ2UzCB $$Ygy'% @×1tXiA>U,$IitnL䃴gÚJeݰ a&ʗߎUON#4dpF³D!0:܋^4H_GAD]~nʱ {K&H 3*1kπAFj_7]"#3"-*7۲t`E>}IHS<L k?~"z56SlMp"\Eq#D{C껮9CCV{T#vX5Ne{)e(!o JϹ<Ă5F]ZZ0XKn8D{ߝ!%XN/O7)F(7-$J|+D^nwe{d:7)C4@ԛk%"xBlKtI镣{3/+dá8@ w  ~f߭7 5}._K[Îػ "*sǧ/A'dh %%˶d`mw|5Q^3Wu:b)Vs>z^Os{3 %d|5hѝ1܂#慏1';c$%w_L@qdL@!C~-Tΐ;bl^Z+ ЇEʛ3͍3_- 2/x޶]7Ă⌻nYA YYIqT#zEE׀Q(Ԟ&8~d~E K~h ȾF\yWbLEj"L1Ihv/s-ae`5k^>YRc zv:OŞYbVY u]z^HW|U(K򢬊m9_xDBK(v7 tX!Ň4/Z y N;:U_ꚽJkulwRAzީóE/$M;a',qm Gö< \y#B`ցќi`m NĂ\hB=8K҂s1iz0uWtÕ6* 8hןmB$Al_[bJl4&Xg}n螛>sDh1}:|a}5hPntr܈G4`~4q4PE$5 ^IC-i/+1Q$;uވrקTBoG6 cCw|pXޘ=]of"Ĺiyf„Lznթ;󏲊oWfGe\Y;E3;GO&ڈ2_)" oxwr;K_d:yEM ;PRt<Tjy"ݽ"-@n2ثˬzqpB5 +>uabr-o+]D讶׶xC-<ʮ PƻioeYQZⴜFlVlF- uhUlG IbKA#CXԸ1(Bk`n~R1@u(0^w:3Moo8ӯLl`"lpg\ֆ;k|7єiqmEىz] v(94e(C\^wM2.ǝzAD Q ˦f,]%] [+YBS`!+Y}.+9OC/ja#|Ws[[.C?`c2º<,z7)e.9%֗pbhk MLTY>iA:`*CB1=ӫ+ytQ$3NȺ/ F9|3ɳ >VIJ[$(OkXeYPuXn]I9_~׹fc]`reIs<%C,UI/0ԏb*G! 7/(⤯!bx `7W&L<'6gQ`Nbx41. έI4Òp_$eD=BEZ[[WF,ˋ2f)%G~PtE'y`l#ɿ]l).K|G||9OfkuH-$xjnFweQ$.ME0JWԔa6DB<|6m|"Q\eU"2DYwlUҟee*؟I0OchAƖ 굂Q9ׁ Qۛ膓߃y )x0t|:U4GsI;H}?2 vdt]=ɞ ӏ\ypmv\BKBTC~+g˨ꐂnP=nm k+VAkfgv!EeXLUm}^y^/#BlB܄G8^蠺>Qlf3M2t@]92;2e@0P;)mG,0@x镓hS % }\z 1&}A2Hs\麡(`uMpk+\qWLquXTlewt`RvQ_vkO]y^ -qަ+!v)4&^0BP*de^Ea"}]-%GE# ͸ ɄYcV5}FՉȭBܜvI$e$I_*W&,v|׉$;%pRUj_Q.̘[]E 5`mBǍA襛LL lF V,׫e{I{5ǔy!M&9Ix"'o0gf_Ŷ{ GY}&eDgHDIaMUǫ^y DsX#EAql㰿B?\|m(!OŧtّmM eYu%pau/6,l}+j:Ng*]iL)#%W<_!z(~]s rb0mH?8>/0KAPj{[|GXԱc dE{1fʲm0#O9m܍֨ +-O4UmD鹁eq>%Ѯ~) I!V}l~rD7 VqX]77~<;t)X(լ9$ǂd';jhڽĘuA/.%sqU>,05֗]wU +0 "ӱ4x$IQo!`Ddv <ӻՃi/M~p/8)aă齡۲䏏6EJ,3ـ@g"q0k/ZO'NFbl2=Q>htiP,u}] kFF*Хu<9ObBe~9#J6dY2 ,!J^Fh ^"CDXbk0ו`=VKjŊJ΁v6/—CVk n  baY˩  >d~XQhVza9&_Ґ;5LXgXnwVfdkvnN9M6ƽ$J_+V1/jh^mG|NB4_&1%fj`EUd6ё 6yn\f0l7KBywy_L Fr_j/܎I, |y4ڤ^+/0=) "8{4SZ&.V1Q #hXA5;}E&&5A:Qj:&k<scV>}h!oaYy}kTФ6`Thds?8BF#}}(h$ISJ e]<Ӊ'4? ϰa&kȶ)}D[:*gHVGRY2w&8ybRD *کjJ'3h(k4zDh!H6^AUIUY/ "°F~ݢ7_tJx 4*e}!xx]TѹQ$25~nл{6Rmp(ɢ0 LX)|HIY6!QA7Pi-:(X&4c}L YO]u + b,^jCU`QF5ۋ 'i2D8*JinVMDpz$#U EtJ\8QWZ5EWB2GWj>C!(ҲZeDp d [lOId"yǂ%gӍyP͂WF5>~ ژ{ܓgUmzXiB$Q'6lf/ |\{躙ǂGBD B^L+Y1qRfj £{pk~YX}@Nۜ 864̚j3:UU0${+r ⬔H 13N!r$wҗ h0U5)>O: hΰ4!1!x(11Ժl,'oql߁$M UqA/P2BUW[?~꺶9QJ n0a0@LKdP?gos8`r_5SCGRY䊒ہ>xԴ!Kjݛ7fQl$kՓ,7["Ý龤@Vk"= sz AN&&= 1LDc!'@$M(IJE].S/xlđY,”蜜vbw;#9Ɋ4i\^ QeH{C 8LO{#lH Hrlwj\+}G_4À8$90Ɲw@Wq!l;@-y:BfDۅ/ʜ~`G~=`|s1{z9J r <~@4b &T% L85<Z9@ Oi}C o"%959Ra|i# '*c_B㸶ܤt-Ir'8'vOQ%@` 1CBi75k+Ы|!MVְ\Ymx`G. &YҼ,șIVKC/ѥ'V=JzY\'j^NIu*_hJdYUZ~6i0wJ&^&?>tg8H<=^0WduMM+k1^4Xm ޵ٶIQ<)&ҙ@$Mo>4> _6,?NKf&`idI;8Q`A9CBNJpfPw~O{'"@Syځ>O;ԧD?oN1R2%MRaqTC[:q)k"'Q6r<6[\J9(.^ʏCNJni6GyWhs t t0f̣VlLKw}\z_!.Z,H}^DIy P@x&2#x -lƾo N`^J{FUEY e5QG/_uӣ%@׾bfTd;{bWxPĈ1*40*%T:AZk!ʠQQ(*x 3Y{*_t<+Y1C;$<2芢. q64̑qЏGR2hEe}7 XFQp㞔05eWV~ScuU͹U,YŊʲ?iYPUNmz8rQ!W[}YY#.N !x LpY_)Xºk43ZeE Ö'GUA#5E)6ora:Cpge`3S,Xm~#pq+Bg}e)wջtXAԺ稾 ~A,.QYy!avEԴ| +TH6&!;x@ڌ`#abHr,l5`mg婪x3+FNιlJJ'=GE~f# }!`!C-f(ɱ,WFwE?p8-D6IÝ*Z f//z(؎8Ya Cy"^#(?4xEK}>(vsZ]\UT?+Mem_vp<-O30MSG#yV96rΞH.vw0iDwXR%aS*Py!ǚ$q }.:ɦȊZ62W Bd/)\L$<)>ML#3U*zF=xLn;YY4DG3].PXV2;LK$dE&,MXIcHYdu1k,QT|L撻 ::NW2 ta f:xr r6-V;[uc;,15&(뭓zu+[Wˇʷ>_jFS"vnl;(pmCD!PSYz+("dX]Hw}T;`\F%@/ 35Ɣ41/uw$ߨJG@>_Bu{"+WN :))"BTg DFxN[ߊ˅xa)8f-Z3?fƬc^ȎT_!RxSp NinašxFv r,Ey(s' QjhIc9TVаPw9Qvt{H(p'jβ^6Ew/sJf5pL MsA7hW.Bt}0͝WFplp50|dZc}2\ѽ;,?μve"%t?KIKC/}IFQg(/frQsYd%$4A  ]!oș 70 *Y؞/rmY:3tB`A=/J r?gӺ39d|ocpȴ6F4hҀ],1oricپܺBIOG( oYv TCڀCl˽:NkJ*t$ċ-ygc 'ūC٘;qw00dh;fA iMnbI"u1rĆxEV7Ptݘ|OӍd`+ru樂O"UN> (뽾s5bk'T^$¨ 0ƒ<c/2&7;[76]B'q\kB1`=# Ɠt([*֫e$?~YLћP^WE|pƆf]V> \s `6sW#Caq(OڌJ(>x¦F -G=z5gO {v}4;t;OS;SY0`zr{Yk[VnvHNhDH8uжk[!đ҂`G8?ג,yˣAdéWCw+K`lpM|lz~[ (pp wL@~Bq܉k %Kd%uR}kt+/;ln<Ōo}>ƃQt"Q X\/q30࿗ޟ>8z["q^RN*ǻx[rr"+neF2-M<\q?[rإR >/I]]Y7Ra -eIcg*znzp mRg\b z V NֵV@ʮ|->[[u~GCiOu42!*xhQMƎ,'y'c_9;X/rXf %v˚m#$.b:T㒛<7°~vՌL"kxсP%ܦ#SS+Ri(YQEh P)iuZvvЃuf \o8mָ=uv o:Ϳ3?qsUD@.{x'Bed ٱ}WOO7챺ִ4YIV{Zbǜ toppm;дPR\<_:nK;f/|8w+Hs(ͺx~diCYf/I}Uk PzЎr'79gXڷ88w\.e_.$sb ߏq %kZ1e!@א~0£*֕qE^mYv{D7SQ/[Dž DCT„JѺʞrY4D'`h Wך5\7o2Q=Evgvș#qM_5|"iF=ds:EP&9^nq`=Fr\')gѠrLC<6гk%G@rL;lY06<~媼ZQ~/3<af'qL\NDL#dXNyR'8Ǝ`u1q'"' O^'l.9wr{AP , Op4J,0x7ZCvhҝnȓ42d0!t2m 0n|Q0yƥ]e\A0 t6YK*H )Tvɛ\``%39Mr2N n{\c'?3\+ZuFE0sFd{jT !I$gT  +Hy[hY夁o+Ս|ryfai* UϞ*#&+`՘y\VeF6I9ي v4^Eq(x h͙ ;$Ɍb;P%MR;?Ww!PΞYm8:9mO2,vdmgIjdWzE|\vFl)'FBv'Ωs<$"͙ad<hP‰bKj~Cj"A1V3ubV6e۲rV`#3Ϥo ]+.ɩBv>7eg<5!E;tYUkQ'2‰]qh1 3#Oϟ(=Go,A8{/}s d룮oOzAFټ|jkxRA|VWz,g'' bEgN` LR w 6 n+bDw*y`v"۷ኧZNJ*Ji &ɴ%[gX؝dTe<|qWmv[5)H6rizpD"mǽ cXy:!m!,M 5:u ',8;}l#=,ٱe/6&|zA0 Ȫ>ʪ'YElZ\r"Ty|>+ 6{+λg}uJK3ҨU_]o;B0Za@{:@OxVNH8#K8b3[xfuN&Oz͵1t`Nϲ; pkZwE w,X3464.CSeyLg17rkyAhe3a5Iθ8U *c'.JЯ}h\r'!wc!'59k=&J=Ѱ5<׃rg6l:r} >~YodcR{CҺ\Sέga8 }R9@ Tin=yfNY.`XA:,g|cx@5Y;G\RCfgn m\WuÞn@ۉNNڋvc+F6K=BCGviz/inst/extdata/GSM461176_S2_DRSC_Untreated_1_bmm.bam.bai0000644000175400017540000001650013175714140023732 0ustar00biocbuildbiocbuildBAIggJ7)7gGviz/inst/extdata/GSM461179_S2_DRSC_CG8144_RNAi_1_bmm.bam0000644000175400017540000131767513175714140022755 0ustar00biocbuildbiocbuildBCϏ@LJKbxݤmf3-KY֖Ŗ%xjh{oċG/ zB~)`7(3)b?!6@%:ThŢ@H)T+SS-P6MR1Oeх!)AUߑPM#xG`B(!;P[w@/A =[E+`LZiJFV-N^:X! !LYON¥ߝe Ϙ5Pn"OXU0U4RBP7e/7mh%NòNYD8V9HH,f?n`ŬX'd#oN*f3V5ˆ k?dFޔ߮GaDY(oO֍9WuE}=Sooc%*xCL|t7PK SgeYtvҁ=מ}z&LjX{KgoC~@O %F<@(1>)t?󩚀S*F8|u_[;S{t?rOr)2I-޾Z81WD}+BC@iti~vO9{^f{kʞBsḘcT@c%H>#%"{/5MMOO=c Ƙ(fC EQXE$v"BRt΢Ogێe2P$0'/AegQW/5ϧyNsMӴTcР (e òIDM2T]p5Ђ :;x>xĆ:?šA΃,ΣRg-O{$, ,:4QQZ>~zh4Y5M%@hdiD2XqiԀ)OiEQ<9-n2( Dd<桎z?@#H"XOQe[Sx4͟렙f(4,7z/}Z ʪaq5ւ/ʳVXeM;eƯ(, Jj=]XHx'Ptti`4?} O"(y^_/`b]DZf~ˌGYfY>RW~Đ bx6xqSQ4JcV+m&BYޝB=nJ~0DIF ² )yڸ6$h2,/c4gqT$iq}o:>h"0.64X@2.+J, /h@Ӵ,WAOP7u]Y5Xi~yIk>(gڮ߾wQ?aDC^vܑ"*϶9w//u"Q]1I{/t]2Z(cyTg_)/]-yR?_P?`A0Kxq {MX0 gi?өv;uIU'' Q@o6&O4J.^uG 08a˒I^;rvVO Vcrz<+j*8nh-AՈ%=L4otڞNu (⊆`#\A 8ٽn2̧O ԏo~6#y5/po>շu jjdjX My ުJX%gd,`ܟij?dUDBtn-酠 G}0/b63O $j͂wZs|)< gL' HxgJ󡉓$HҼEDA% `S3hz #Gx&noHn10.0N6߁RwVi`y$4` (mW(LlޣY=ߟwMDSvMKCxS>4I^S!"UY <3h0+|? [9bܥ1>}(sBy9A"Y'Dly:5>P:NO23joݏXQUkt1PKA<״( D,lQ ]7 p2w4$ʃԏɛ#H]44UdS]}|=lDu sP,OIs-Ah$& 0cM4Gy\/\/qC(@/c`ӧ~cnK}&7;/5-ڱiVoN`J][VU]UWI`&6c($ITjY1f`ՊSL'E9M9o 0 gn5S$V 7B*wk!OL7br4;(=I&ab*4 T>xv؁Zi k#_8qu@>xP(0q -~kh,"DsAށߩM,B W㝇9{Ȏ똖A"=ͅ"ZY*r>"E"Yz(XmzV_/!?gZ t&yբ MWП@j$$[n j\73a1D4'i~҈4f~vXepZ{rЩƽD+pq ˼6Ѓa-a ̣quLJy (3D3$ Xy9h3lBQ tWo! m_hA]̜$iYnWӉuS2EIql\f;\08˫bAh`i:odNAe "&?~?t(dtyJ]qR$Q(k%3G p_X޹% d&H2H5aw _=HHC?k w P%Q5MO}Ėy]D^h2_M:ìl^G*kP2VM עA O9`8٩h0hGsV'lj٘+ tGBT֛ bJPU͈yiu tQg<+iYEF;4x5?W:if~"^aM dڶm5rhIץ 4ds<42}As/&5۾Dߜ76n:.z%$i%~~{`63M4Fs$Kc:<>x,j=Ĵ-?̿Ԁ9ycCYSE]+BLz N'~{!.FeB׹6^A3_l (ԓn Q@gi݁~H=U`UYbq>ֆ*1 C6lE^rKD Ә2(9l@: P?bӿR}qiD>@t:5mw45QL; / Ϊoeqm[n[.3-o)qGQ+͵AHh,ʽCs>f>Mb?N_Pmg`}N-K7E"iiŕ8;3}D%"ZC#[Eq tO69M$4)`iwُ\5T,k|Ϡz0;ѶnnK {LU5^@%.纱7 !kQP|i@zUl$Sγf_\+Sb1uh9V/&wRpb.JIovm+0A@<; u߬jo%S`鑋Ђrі0=1U]qG[%ԕ9, 8Jy08HF]5F=߰5cx,,ܺmhU?a:wK^Z=F?nC.9sp)3C3M6~ڲyW}BnJ"N2zm-k6V4 ޜ0qիM w z* fʒ< kD;wB"A,rh;aZ 6"cږ +&(,4EzjnwvG eE=oT4Lj.m^)$L4yLo9xy8UϢ=-yu:L[@ Uj3߾6SOUL8ͫrCEqpDfd mi>Dޡ!+]dPu[nޘ~75b%YLSiPؤ<5 XvDl'4IqX߉2rlSFi~5h\Ċ&cľiLgg0\{X޾ZP! ;X8=B,ثvzEDž%E ?vuvYc,afm՜jRGK,}7AetqUqҼ^7% ]G7vE_Ɩ"ͫ B)^sv+*j6htbV1$Ovhosy1ohEmAՋMX6AgS PAp?&*4lߘyOwY, 4?Ь7ssW_-7$'duf(JOЇ 3&-Dag3ZG:r50Wj7iNkno16T18J$,f#\#j?(Õb>hH uMƆ`84-.lq!*j\B)g`Ϲf&a|>66W+! \Qt,ߛc]4YSd)ս]$%}4ltick8( / au,-ڦύ0x##;ͮ:~ZFv'Ky=>,Ur[DQkJN4zܻ,<傯'bh'2y^rEaA`vOF1s+[eJ ѫˈhj4AQ}1"$aU6`d Fop>BLH#j:~8^M?Rڕrgz)qHLjM&lyd{ DmZ*8c/&% AQtWxhal>B0K hۅI.ߦz9&Tpci'/g累?ƕ̏2aS.'x}lj:M;eqr+.&*Jj4@}ڸْ` Z 4;fQg FDL%kedn]co_N*o:nWƨ>OO^`I x6vxy 3PA+-/3Y㹜ODv0br/8xȢ$LܳBPq#HĹ/_slO׼V@#O2}LSty8V4˫p4i77~:q*g8"h^ lSMt~i4!xN ;inSǸ((o~쟳HNR # 7!F|桳IØ-[+Ξi9W’88؏VAPG]ɹ{q3%YSʼn4 f?N$BEfنu:dZ|>Q^$Qxʘ%4L ;|,k=DQtö@JF } C?3NfQ viYL hl-l`ЅLgN!r5;d,i |^n[r_Q"JZ>4һHwT .}ʰ)S?!zez\0,Y#5M鞻{4([QM+4 M8 gJnER`}R0Hɂ." G1fN"O/]n*aw2],5㤨Wnbt7󰣖&|rUf[IWxX'YeahѲ|FU>56[wK}Gq Ծj%B%Gm_Dw2,`FQQ rc[QU5hnst_TeU͐uNþGX!Y7+][%PpƨQUfkvwF*@Ut^ 9Y`T3ssuP-G_=G`F5FUVmA!ZTuPκLVAOٍxЪhXQBN2NYGPVweNdY Є_4oG vٸԴzT__꠹ơ5.zllW+(mҌ :=ZFf\*sDGЯfm0Xȕd́AP-b3U)Zڦ1zC,z YQ.h6 "9qwP+t![;SAS{Mc`JW\MN:}/oo* 'QnnMsWSlu T͞(Ye$+,0̏Ee|/W.# 8sAlA.28X30ԡ=!0dbB|=:)6d͒!iV'"fpjҪǡCܴsx6.k1dm0~=;]1n5Fi%`E*WĖiW8 =+M䶧k[:.xRZLy_>(XW<{UݺUR,< `6Qjsۦx+Z\qY#dzTڮ"-VO۾`z5Iqӵf`ո}k`Gy^O{.z%˟,48 CqNmG(ҨgK<.r8*K{;R~SxQa4=m:-{˘1g_/H~F2{9ۍ:xrzY.]M]%2OeiJqyoS<<$^?(󬳍|<9"~@S'gxY"QiP f³He:#NH[l ΍e!i-]~&c޾lidMl,bi<=>4%2#i]:ȢF4oF~ t A4V v 'EXY]_ʱqꠠ4;'[_sIOOf(v^&z}T2箍$(W\}TUqSX0hUp%MEQEȷ$7zihݪI _-qrsGG+\#V}4?1- KJ$7HebDC7:Xo.vc!k%wSt\4 CI>$~S]lp{$[vGG[IF8fn! 4=gڄ4oLPmCNhCxCdP4Y.D1ΨfG#&hw /o*8Hf;Z:-?ȶv"ﴯ" QQЗ N,lb#J/n}CO=*{d#8 جm*j^Tn\\^9raW畣9CbgWQVw /i2nx7tY@c_~ (kܜiHeQ9Bqt4pnA:Fk9coK7:YDq٨0 4' |#l-inplijJwͱhu HSƺZ :W05`"hHG |gf RKӪ6Xq"TA׽,MS]HIPDu.5͡moMo[t_/f>> XaSwp,;z 0Fqյ3`9>K<PH5%SXgAsA[l fFXYeYqc<؀~ip@">i:hvzra40qE͡a.o*>f˰-l|D~8 RgK;.E%X[MU,횂aȢH4: 6Z\R~Y/LM|SA+Mor5E퉬<•bxk7l8/K" 6#K Qk1H7;1}%4L( Dg0ÖVt3__$-N'%PZYO\"a[ jX8 8y:ރQNtY48ӵ\F8ë0{>VhhxejFH'ᔜ+&!sDiԔ8P[am.R]n:iσ,KP Z@Okd;,oq^C7~EQ:[8&&ʃ]> 8a/(rz|7l8(_Ff_ w`iTʱ1Ț6sw2'q-7ϓXXكl;L=d9wj? ڡ'~Flv7;EW"i=IEJ qpSs2y{4Q›I=|\K&lDӺ/( bmp:WU;+ ~?]UDAUTU{O+@տUo(9~ wpW"J0 7^ۘ-̶] >o:oFW V! Jy>v<"H״ Lw%tLI6l+zG*MQ zzy˞TfHpW Dkkȹ(`E#DI,{5s^o\Q57tV}KYEHgY<`|j[E[ %< &CA|c溈  ktZ2FcG`_"w3}Ձ)B׾bdW"Bк;DD:=eoa6Mg̢g4\]c:Iu:MC:ybC3C4[" py8ej/nn!~6ݐ0* OH=hZQRD*Jn31pcW7gX^HMI觟WIⷱpT+Zke㬜M-f,? ϕyuvs\ 궤ƲrCc`dך)0w20\ZB7&L}8sS YDzqV_,L7z0K!9jZ$8* QdAL熿AsyYKFA0R iAm<(ⵢk'ĊyJaFwmW&9SYBo/NEt7h'M/ J:sf/ P0XnharphTa9X[Bӕ:^a5$t$0_e_*kA:^ӃxoK9lY1S]Υi4DYN2<ԅ6VC%]d{±t-Ygu_fzD%Iһdқ|(3cXڵk}(hv~ 4m M F<m4\'MNe4cQGn #xSԱЧ[[Eq?K5zČ41Ns =iwȔ\񡉢0*B JkxȾy{˦z\&M/i4{m9m} !sۗvPuC6q(:Y8K5 -Smδ X9ڭczhEm}%ΣNQټq2sĵ"I,noOaVYK|\o{>8XVTOJ5x寧&)xt;ߺu)QYWր:DI?hFo)mSj) Z/eY4Z|ұtK Y"/44(xY7?;;G,60Αgvy`—aQ|f<_[˴\G'ɨG$K$tL0Mb`+"&1MESg~%'grHg7?Xf=7㴿mdjMȒdOfL `X7<;ij -~S=+7À\D^'?."Fո$+Z!NI,qn~DZV9̣$o^#ϩ#liXRRu$Xf(B|c,8L2{W})ȋb>Qn170ˡN/h>h e4~ji24=o:5u9DO @0$q4`cukDDQ ^} c`zuh*źkaNyD`w|(i7]~9ԲB@5 j(JHDчk9ΰ,{/Aݭ$,iT1ǝZ@"&\ȴCP%F'ȣ(b:DndEv#̨&b/ 9'Mx:l_}Y[+-Unŵuw4paD>(KҸ!:uU wSo1_,P֗3t 0$¯{HCF2 =JoT~՘pɍJ[vkO=rⵐ߆ |s8t/9 \:Qh#v~GW3n0KsiQ}*:(2;ԋ HR|B={ƴK_6zj;D&Uv~GAPAafYFZ{9%|iS>z˰Nũ^G fa/ TJē!(>]h8͈棜JldU:'^)shcxC+|QAqnu>…& Rx)7r3 Gξ-U/@ܩ)M%Bm(-S, $i9gxvf05Q,L-BRNՐ4h\,cׅ4 daRHt6kk gg<a`Wz{QWmSBar_# o UAYęgXICpu e>h yYSEMN[t@jt)*^IJ5ItM4>xC4nC˓Hl , ,yip(i'A̸sdЪttE#$jS˜DJ^q鐲GB0,ӈx:*+-(MO]H#?4r랊ƟYH:%N$,<<@O< 1 0(.r+nB'4 3)a،Vڭ;s+4D`b!G}z 3[ 5sݙI!1RK>uEQe~D혦Y!\k xQ"d,K@o;rE s0`>\rS"Ls?Nbh%*-,5f!`+Ʉ <~AX*;k9\ Ntz{;V*~ A^& 4G 8 d&w6@#`:)Eyx\{yFU4!KVgv, aa!ݭ;Dt.TM`[cPtE6 ;1㽌$ smy$B[۔2<$?X0=ͦ4$jc3RPL1 )@ Ӽ!2]ݺcخn؀T qp߁,:%vpn۲`h+~}IV,M,,#vߌB"ѨFySLIGY~ ? w[-3!Ĕ1Cwל3~_׬nB bTia{ ]Gyr,&dÒ)Ґ!CBe3pZѡ)t!,b)l*tIn^7ৢkTbvYv# If_]ɞZ55uqh84Rh_UneBR1uHɗq7\.`w؋ 3uI>|"F{$0t@f,^T~ZlB ڽ8'rGU$3 HKmN}Z^rDEŴW/OxAM: WAgx{5Cd6 u\K< KJI,CIUm^'ɕm^(q#Q,+lWWa]S>n䅃()lK3[co4eb< ),w'5sU20FY3yHvYL Mݭ84Z&3E+Hf{$շoi$Wۇ}!, 8G"qx<7ea(l HN<8tp(rh.L|^ \'4]ڬXvRbbC$u'GI9CP6@Z?$H-kjϠ/}l|V( јf`gcafLMڧ~NNGiF1 W &JUHt-=üp PۢAWxns q!n/<PI,uy{Rwp]2;V0`"Y"+8hWJh.,}li\wyoxG 9!Alݎy{رʲz8,9D`tXEl'^oj X&8<ǻ|fƜu؊UnsPYD:66B XĆ:=oO$Ƀ츘| Vmq3qod_Ce]̫'Q{^AywZSR*fNUK"$w(ux0b֫6=WF<_RIjiꛒ+ZoV$e?~:$!$RVЃfl Uũ+j"Nhfq7Pؼ~ۙ:->E0" })D\DT>/6žK D'&Aӹ7QqtW5P5tr  j1:hDνtjTtB"QBx^o1z>Sk 9c{uo4U@eK 6^=%+' lz}Ѩe0q70W.1ج88+(!"FtBDg,6YYadUVK\b,](J4itN=4jL%|+첆(x=ZƿCh&,H4<@=[ŝ1Fhs-Pdi~me6i*d5SV7iKӦM#&@tJl{i#jP+ͱ\ 8׊ ^aqũ>4`Uf)-4/T[̋ Bυ/ ebȲm+X[5(2+0mx&#?ccWnntBƷ-&$K4܅Sn.35}LaBs-27_S%".*VF rP!4g-s-uJ!G-K]`UHntULΕk:.P{*oB<({Rw^yƕBvJ7Mf"$$\~X6ܻxx%cx@!N aR^9=U>&" _c*Gpf+\r!~yE+;qj/I˘k c.x4(3L\X Bscӻ +76u混 @ .$ rfdYHĐL ҧSd}rjCThİdI[łV*# K MT%S˗otY< -(MM 7544=^TxSbXsӨ/+Q& %qʝ[G~\xcclޛؙ$2~4f]d#m&>}e 8Yj;n?.d^zkYuI7\<5å?.PZ ^9^Lza9^Zf@@bXgQ'y'ЃeQH ۶+ˣ6EaXRLuPG-UVZW-=:~Qڼ#Яp2>XUz_[PB9ϊ5>ڌ.;6S AC2ag Z5/f]Dԙ L4>܌bc0TTOpFύASz[՚;ߊ 9zR۟m/Ӟpd #z4 A2=\&f%=b nm, 84cP䌁FrjtiW^ݟ={`{U ^Fx #OxDle(,lH[͋8: .Y=v}; dBgp98*, ;}B%sf#$XqXz~$)xXձ,=a Dbw w> U:9w4Һ'ŘiKS#MO\ Y1hd6E}I<x8 !>өfĔLjJ|M%?UQpt}hGLj[Đ)8E) Wt>ܔwP/ʃr&˾&l!kn}:CLzmǛ>UYS)SWt7χ{[e:ise1אzQ^4L=1㝂YC8q4M)hX =Հb,nFĞw>V h5X*hԶ]d#*N"ϟUAY\X>Y6 >=`]*ds/SxVGxg+MM])J@T04tu X sVJv~\(3dWz>q1L>]*qGK?.40@a4SSᖆ[oNAa\Z횮_^Ew8̰4T͖ ?6[^l1rϏvp4i߷s>_gP[Iv JrԯێtI!םX5k'Ae立iqZ\ ESfg/mj붢Lome \JyibN]mb҂u- &LCAid}kt (ĹzcY Y֩=4bGn8 5/<{6\/iqdۖŏljp?!^y+ Ht uK)Lt?lܿ }b# 4ӤYz~w# ɒIXTv;KR-e!~0]nA9SkY8s+ aYS6 ]DqztXB<l!aUpLoV O#Q*upW< F?beqĦ qf3[l*E'ׅUH%ue Ї# gjY|!I癟snj84o;uE@>H) Fϔݺq:˒)R> R*8;CR,! <ȭ U`"L -gQ8 q4da3k }AJf Qp".M3uعy ~Z<{6[c iu\QM3UO ͝fa> ذy@O5x2dSG[!O )fK}tq} z;V \yj7AQdyű.^/'{El}=0׊FC/a5zH\3" "@N y" 5[{%~D?!$6A!~yRyjACֺk2cߚ"ǔCNBB(Xu?u> =Lc+]+{bwUKl{>gì?-0q(Ƶ'5C!HS,xwaւ4ϛm=DEA SjaH^Bأ ׸ ~וWd٘2mʊTi(P}gAҺWyi0˲_?Ͳ ]7 ;c Tmn\vga \t=:9_2V b\C#鏀H%Zl2j/RҒvp>f}<Qc){0'˹*Z>I~ջ'}z{75 {_츂co\ϱqv1Tcc(fA8mB#_+֕7p˅_k?xQɠ }cgf-8|tcc^dV 4(Ntѵ5&Yʺ/XJMvlFyU^? IӋ41+iěko~ rti?+/]B=Sn=&T kM▤xLD6}z QQw+x[P~2.MuWǮ o]Z`xgz2v)/uD ;D*̡_ԥ+6-^Gֻ'YgӐpjZ~hqh] (j*cj/֖plMV{o!iiy3U*K-Xl_{[ Z]G !X fI呹>fm(T(Dam|Z4xH(Hs?GQ1töa wZ Q|w=Sv 'Zh4Q?޳X[B[4ќzЌ6ˬ?5Ƭ>u%A_2:`^Y3残 {lھ 87'0*w(LW|Vo=_޲}P'^99ŗێ @bWuf<"٩# m #v}~ӧXpC7pQj3 mFQ>V(*_E"?2x>.YB#8EWk7YKl 5{CU3(ɽ >(kSʐ6؎3Zw?؎7fælh}p4oDXAmH2d3W!ZWՂIs>4H+&0/o  H}M2{ ?B 4˓ @z뷁urt Cuu.(Σ$5mA(u*8iD_&DX=}4:3RĎndPC6p.߃ԏ ѼZV02:><Zgݚ;]8&Q"g׋>:XkFޏdXҸ>ʱ*;8H(L!2B']Ϲ=><cC6UhsBqF!&`&ɶs \r:%?'$5jK{$A֥|Lq̿lA/vpNdDχOe6 Q_ S~g~R]M^dhyBh1CqP9%sbMsO-7Lp>zc}4,M36A;Oԉϋ'M\n|S`Uc]>`iٔc,Pvѕ+d5gIq|US"gq3+_9qgq$|~ E1I!-.!• JDeNkfXta蕇;ypc#xE;>X ULEV(p1{v/Vp\T~dcqGMFJfDgi-4<: ۋ $zt+^5VΟG!`.e% 9=[kemQo:L|bOPAe[B2K{;NsrhU DɐKDA@ʨpEeq/McC2|3wF 40ȆdikXy ^s+ofb^8]'7u۩yջSOTuь_ɎYȃ~A#@+8cHS$6F8Nsqr=gkBZ꺿/qylOZ8>(ݽ +F4ydAuF˪< S{%[f|O"O<x8(ql %u ~*&VSZ688b~5֕q4١Wp+͵֧H\?өeچ| yD wL#7 vtD+b4?@׶林Rrd- VU|퐁kIa  T$wzź_NW?%r?g△m|\+nq:[XE!TS I1:~#̥ 㔍4-pjo_'HMȗ%SMw/tH3:@\ M>Rb`Q.|E cJmyШE~Ȕ8rϘ ]8#2OU16L=;dT:yKhf( )5 = +2>PhaR3f(έB,+ Jx `)p6cOrkTWnjFͻˏ08y9fc'iؘ/SUU֑q^-. k٦mc*#9F.s=*~y(R`}u!bmIlw-5 gIŬ,&>G[f8xӷq:gw `~OQ>>钡K*U   M8C[bn*ÛWHILM9Ur9tkL%7RS$^%epG +7R$^nhF+QW/c[܃ 5:i%> y^uq{H6>YVlTY&.'zSI]M?"]fsEe{ٝKn1Ոl[Ȋ$Rl(2n+Te c\ W\!@YGyy{7!9}NlE}xSl8/+3Y04vśĆsDf[C p oAgumWH T;.mNW}-4QUU^fͽ Zʒ(iDTvCB= W$:uzM1(>3fo0v$<ar4OajOE(&Lu Pj󼸧D"ԐjX_j>}-ݧ_,&q8ŝQwA4 D#|FͩE`^:R\ +lwGZX4:f/4\`>4簼~X(/ӼfB:]Ӳ7s]dDZW#s?! orɮ\uh ցLݭS94&hL%fVGJ4qe vTCU[!\ֻ3 nA\K0O7D+ay.1_r䕜IjcT3TS80^"Ԛ?|CSD LHԵ94 8chXOW Cŷxg U oܙP5% bGy=:=vͥMj)V D,Svtjr+.?4pXbA/HwF4ǔ0`jVMs,B3ו >DG% -*ex;֋R D1ir: z>Wdȃ^6%y,Hb8r_vT `ȔLF˪MHȄ 6gz9=Q Y-1WfZI!7y~},xM7;ʞA`#lw>4ɻD&\-P#tTt._cwBA{DhuKxKXBLYκ !.AUyv[̻wOjq;nFiS7O4\OnOo|A,]dP$ ^@{h >ΟKgl)F"0I!ObQie\;sM /v.XȜԞv'C.7,Je ;]z9tGtP,6 '蘓7h?+jYe6`7~x.v5t5wYL/#DH,K<8εzfMmiAy`[uhtmNn:8$D^E,A%/(Xt=E^=E2Oib! ~ĵH$y|SR1FX?nɕOr-G48M1uˢ7HLȦo^ ߤ:geb3k?ӜW,5g蓦-bhC\7+ӊM?s92g5txK{!<8/\ ZlzX-5h9943rGV=oj G^RvɍKjHqp[#;|,QQ;(YyFKEneRk]iq@s) ^NlL=-!>v-iOU2&u<iw cA}fy[NMg?ֻK~= D*]cwFQf|k&_s2f{D~gyXnwF J?/2$ybNqM(W ZөLN JAt@H{|G2bZ3hZ3ɿ]_|:=Pu {T4s*T|H{㍀0nyd(&xOA\ɏ^K<'V}5•j4=A9CBv' =Keq֪: [B:j~AzYuD4o!҈dS40B0=>7$ʭ A jZ Czm [2Gs(]B%ɹî($Zh q4X5\f #aWeO[HՓ$ ~l8vfX>>kH__MGh<7q}㻱=BK`h~mߴS>MGNAFn>_Nۇq-nu*ЌX4B/NJ4rD#ۖf4+@#\&/ mZhT#2Q$&~c;`y p|MN(}gḞecl&?SKfXyNUeO 8?$b kdȲ$[NNE8G|?q+0 O2f-օ: 7؆ADȕ6U+Lh|8{7~~n*1+&Q!(W@ 5*xWK^xFQ'h) ߝ(TNUAQM e3]Tcuiw uuYPzhgٴKʕiZV }%Ƅċ W'e ?D ͍ʆŪ_ETbs{n 19&H4_o}9~BΡ|}(@ h! 9Uwƒ&q->a(I|}'/ %🮫faq?Yڻng3nTT ݈}K$' Bdt!e!"pU wU-=7Ӄu0 LT_S8xiEUHTM=z~`(ǐ>䙎?PmDS'\kgt8>n\5$H$jH:| wM/s`x.xʡzq }EAV$NMۄoh(m8uD*ä"?H0.*{e+l(*G+M$g4UDsPAdhqJ.;ˌ['^l"JEM'Y8!3[PQy`W'Z% 2ᯪpb7syaSAxT}9 K!`QA]}ށwDa Z.43w&jү镛13r ,\&2T`" %Z]g]nxB|r2_*OmS f5ԳD{At| gƒHg:z\9)8p+448x<>{}NoO,%UAeodt +ؓ60Na5̶&.C8lif\x:3j]3yfZ˺*hTUdس i< DpL +E*dĉS^;M%wު"o:ϰ&CLQGy{:]*GP m&&I8E'prs+NeT*n*. ]Z0}u)0D\T$X VUۇfs3&є7e]dA^]jɈOų3I'o cSr NtHK(K&G}xWv5,:fT͖zs(ĶxgvA?T)|[4/y]ѠME6_$# ,Ԃ ,ќ@2Wm4SAʄݡr(hӶ`$R>i-Wj3%bUTV\WlŚ Il qn;4 ?c9"b흿TMI~o% hyU?< ]Lj% 819KW0 ܨb _0yaʼn)([xTX޻Q·!QQm0Y3ub}l]*|1P TXGi'.C:QhN/ǦXDy  0!0}hL J|Hs$u\/s4U0L-LH[C%EcFuЄ sцo𫲤}a07/D|F c8E҈ijxǣW<(q<Z~S_eϏZ$ 4 h0s> S1 +^gJF!ߢCdx^/LO3oF2^i|bR5](^GZQNujuCĄϛy?4slslYGQgUcLq}?Ħ)q, 8eepNEs4hg& c/.Ȯm]՛o~BDY٪@0?w}^{U0⪙DDDk;'dMG_IS-\dr!y d9~R=I$>ט2gmHc]' ?1ĹxћYE&PCl%vqiT,ͿfkI M'㘈֪T}AZb M0c -W;@݊hEWN,]U9Xհa^V]>G##53hy/C&n / 9boJ̏2Y'UA3ųANv~o&2LD9 *} x߾עD"i -zfxfk{ -qy :2L`Iz:L"GHdSUC6h@ }J#6D(t7?MPU?(R&xf9(E0u%G@Ͱ*.X.rf6&_b+Ą[Ze7}ŲtUE^63ΩNZLSt<))O1&f T&}^MNCh[-FL}l{;T5[ P^}2R_{t|i)'7>r++-M"$YcBǞEPT0lя"ЏgU,AS@E鎮|{LD8;[f[:,8rw@lق("ϫD *t)ͬ8uTk9S'H X#^!3T` w#yDb>Mhw&8t'{\|$FaCh@`C#;Uɐ3^"3oV^Dj/ghh62)<.7翲5`]εYD1l8OVZM^aO*ON 6-ӔFg 4é[u :-9h ZlfW)|YꅪxS?I#f&CՀ5cANmr7q[`ԓ,c]<`8q/FS~ BXi$/i D1ۂ1尀 _e3l$3E}i5=Lo:^➢ TQfN+{i 6'Mjg"7fyeOQ /9_-Z",w||i8 cߩQ9[AߔXЫ"}7/-LkmC WW7b#bhUY,[g~P$vPeי>9p\ 22E08ƚArVGηuOQerf:82& ^Fa@xAa&Iw\ƀ؉U_W99&幁O;TW?}6)KUsL/+hLf1sXnnSGd9{YQc6^:3TuiyƲ$o7L<[ЙFI=ӰM]R'm_M؏w;=="m$! Y~]RsЬz qBu3? TUt9o`8k_7ٌ~z+եsBh=q?ňR~8 'oB40*'i؄b[ِk\!IHH2X*'<\7~$}68 hbk+ߔOpg9u=!S1e]T.ŃaJ0 (kfݩ8}Tz /A=|Dwiva&.&*o`nOg,.k3A^X ,!;«:R.T:=;9o4Bktǥpjhצb< wi@'hD"O ^[فci`ċ !Ӳb"vQ_ӕ}:2RЇ4wvB4)uU4F4Te.2RݳUvM%Yf ?Mŀ`=iD%hpuQh*b4223 r`|Mf0p = IhhL19NgMUŢ%;EPe Z@\I^`go/Vg$J\Fn?-` _ W8x7k M(D*epw66!LӚJ iq\>a+5%QھXU4Ϧhb7ƭH:M n\!|ybMwʭKN"ɚ a վ <|aFON+pr 8QD|U9ݤt޿)ҢJ,0w[U˪)PW}F;J[tc86@AN=S6pzfF^o9td+N73mX8YlͨYו8'4ٵD9R_!4׷7',it6uL8AQe0h:K~S}ЁfhI%o-4< tX퍾://LЋom63}T`JM^&J0%w"J!r(Op*$IdNTJӻhjpmc 4;q-G.rbimN/wk $9홷yr{b#-G]ֻ:%$*QtU0$Ŏ/ϟvM 9R5󯵏m^y-*;OֲGdXi?`4z.;ly[^<Д| +B3p/_bXji[ͧ[»?l2PD lSy2Jϸ9焭UhlZө}^x~~̀pE63oH=øXyy!uI4SB:( c,ڃ!xosq$~XtxGPE$&A}[0/0lIO>Ï6ޕlh hXxE&G /N5)5B+7ur5j My6ÊuK=." KYAFcc3B4p=l~ \eqszTĨ Aj(S a=JNkvH/BK*aVf nITT::4uhZc?> A:3 hVԲjQKp xJ%ȂxUTkRrk 3%ϤX:ò_S;1'@as"X3"0K2x.Yʍ-ͮM䑈 }_\R2ɵ97 ltx[${zoPZI&Y/\]ᕙ<]lh>)z@'+A ;/0S{sYeF5=4s)^iN'L.`tϳy4;Qs4}NvVHq|*r\_ԁFU˼۷djeK˼X?ayetLip!nu?YиT:a7(d՗Pu<6'>-"ptY<5=H3L8՞8~9)};ȳ}*rv -= ϲf U, b9d<)"dGgo1p4/*xNz{w:  {(vKiS,"S<͖٫stb`9p}MNI OUuYqkL RLjg?b/r7<&})a)l!B? ly o/1yIyKQˡ7]1ǜ.> N84 0cj]3 lNEWd^Hz! {Ne@XΗI!2Ȣ@j۹Ymh{:<[$햻*va -K|N>&Fe]>c}_i+h SBJ'!%n'`^5Bu[<@||"`3uK`JV4\`<ÓL7 h(Sp:dgpGIwhY/_ȻINqmLۧUɶ,ɬ8ЧɑCb]?x7T Δt"Wr؉-4ͱI@fk,:ܙWo;c|Em[l3:fJ S`-y Kg1߁ o;pp8MA>'o3̑ßNh 5D`d@B4c7B- `@D]f4ql"(ВHV1yDrϦ\!צ8L)^V~Wuq&LC5(u:h8?I&ZH+\ıAɱMv[^iq3?ʮoD0\q²-.\W49lPkmU6nLo~Mﯠ9M0?t.rV7_o=b:ގcr\Գ@D 8oIǥ:ep_u u꺘& |z( bqAph2^Tu 'az'i%=pg{Sգ҆ \FuB7#˝ [3Tteay#r%`*1 _48GNiz9Hi^mf8r&ME'YMt͛QrU)eﱹ9bɚ6a,wtuLqY>OK/I:ٶ6@P"O[hQ9̮ fjrL 4lҜWZM)hFjwqQCF5UFv KUǽXgo<k*j]Յ9dœ6Ͽ9,3&#~4j&5rFQXŅlT]`EKUL)M8Iˤdϵɫ^P8Uj0Dˎn%B*fK@)ɢ,CDoj֧]fs.8Ιj_xf@lX f6CY<,i {Ejb 1?=mI.Zog=gE :PЀ-b&4Qsn1nq$KL:l9e,<wp&Ѽ} 4#֠q0ՄY8|ZP4{hn"BHRoJPVGt[AQn3 b\\<i rYk6I嗯ꏢɌ8ڑ-s.E,/'O%$7t/so93n4߳R4SmwBëj.$_RT i!ER%UKzɥb#l9.`U qxqPj5]Wgi^^̙zb7cPfQ)m"4Nk&vLC5U!B+f/c}Z o+ƈ{Ux߈ M?v}?ȵ\OVqMr4+ҹvSd̓h>䂁-8)V,Be?ʴ!2|fͲCd>6b6;Ь LᚹN$~JkfMAo|=k2~j$nb{MzW=uSBeIr]z>Ƥ }=#/I~ i}yJ7 IDŸ P}fZUGD{Eb qٛNH}R9'_Kd:db7G.!R%[i1 $ܝIP+iB*Bo0x.qptB ~ָB#Z|QŠ)x8{*`)剂{p'f=V5ns rB6c* "L2΀F)XULc ,yڦi ߿gA(תnq\gdɚ"{4:I3޺mڟ>;것KjhgVO2q4v|Mk[w1cQ'*h}X\`:3>]$: Ī3 (xQӚժ eWN:DQt0Z*>|y$*lزvQP]C@lo4 eԝAg)"N &mCsM;zXc%YB"y}Iy]'q{YmHNz 0K`QXh'\}oH|eB4 #U0|3K]f@U0?0#٭.LM [tT+1WN*:cIHE"U}]Cd[}<0?~%Qҫ=#w3Y h0sC4A4&(t_gI4 ~Q\3Cj4 (4[KfxS5KSȖBrƲ8\) b^{O|7te;IUeYiQ4V#o~hUn+;W-]EGǫI}mpm u/M2FH#e5wT;>AO+<ۅd:xq " YT.7tmuEA(FaqGkz})IN{'~2)9כr|C/2* =Ԅ?k!^Ͳ$2h8Fِ.)`xבiِЄq(f` X"pKhBf*%jaiF$v?SVf'aRq(+; c,d0<֒qf!yӢMYv1_2JA`h~[ ]c&]P_CnP 2iň'eU60|7X'Vց i ܍f0O{Ch86q3;l3L)yCCB|u&Mm̉(3M 4gR9q` w.".?]7-Xu"(0/X)=F^Ǒ:v Mh}}[ԉ ?0iKzyGT" !m>Ru 88cD5U|iQSGe3st?g|Z\g#:S孻PPBCA@}kliZVߺש{k άEPv,b vpQ*gWj5t1j(QDD BD4p&CPh[Z4K~l{f%nfϾξv/񽧡~~j6{\u_zl3U∦8&Ou'wv>,>q8/}dIß@a5?l{x?Wz B49Fkcѯ@ Zh6(K0gjCYv뢡+ ! 2dм@Sߋ$ (y#y+6~ELV#h%бsZ%?SxBO$+ձ0]P""늬(pr6W,Yzixni6YeYW6()Fo(ii5ĜM0;?:|4BNhD#0qqa@$YV$Y &"ߊļLb/]4oh[/H8Jf6gME>w6c)?& ) MDwHQ P]B k>ȱtKS4P9Uo z15%I{. U%Ds,ӱu姢9O0QS : C5ZZ,rcZ%k(g+<@Dd=jy7C=/cՑuw XA9 <_Фq^ߑ_&Q!=:B~;Be'"pJ~^6<6%дok5j ]98ԫEũmA^͏B#(DIW @@ @ȃQR !Oc0UU4WV'tKhu΅iD2Х6:Q"69m R4>BUZjJ]#2F0Khfe4@T5~>$ MEwλ P g*;PvȄ56l>iw]͓R̈́ dbviޑ3!}]¼isnggi 1;vndI4bNl_? 4kI+4E`aK 70QtH,cѴ0 8N ѦvsX;eX6De\h*4b2'~V2-ۻi }&X?˴Vlnru$n?"ozӄŸřxEf•]Mn=8{Y.Ϸԗ5RiIh8*;HG|&iM^Y{RALW mBp^T=$(C4*`?(yfZB?J8g}D~;`. ȍ* xs6I0H| h5p4{h R^ަݹg˰BaTDC_fX*jb^QxDt|V%r0K59&=Zt&<yY#Qsʰl נ,*^ OBeK.k W;~%C(>[A+(r䊈@h;A=V~CO <ׯ%pK8- <{zBjB<&W(XbA (cB~ #/8\i ۺՃDZTӂ̘U b}9[ȂO|fٶTwǡG9}kii( TyV<`Dƞ *F]{ -("z|oY-?L~4s$k?s]Y?ڕƏ/b(0$ǐhQS]vu;^fcALzU)d&U}VtS09Gx]8D$ 4], Af50^竖=)` S-UU5Nhֽ.bzOAl2,qc10"qiSc2oQ6MͪuζAP@4+m-8(< D Ë lDo41dqIaWwS$֍+} O/!q {(7Dh|KқŒ <%]-̗!*-1 r2~hʇEiE '*TTmPUrB f*T1[gx* hSi% #?J_)>*!,~*. R0-~}ld?`-CH;)S6n%nvoACw3A N*^ Km:NbXf@܎c ΂e(р;uGzO"dyA5]LFIѰ+n{XS1j@9"*-;}y9pteݳELzp 4MyI\8chaYiPb /NQO-򚁡 H]J_4x>b`Pjv'53*<lu Mkǯ4gX/;k,vQ,6 tm˶˜˲v+8HCHBjWMh38* $:"߉\˘᤬nh6 N aGeb'wZn(dƠSȫR5 86M\:YU(/ʼwIuEBӦ@VWh*Fm=M 09TU][TOXV K$N$8M":7A`']>iٿmY%ϲ xϪiڴ>.cC ԩ ]?f%@Hf(ADu>F,˒8``dU9H`]{ÂR`B!H{ԇA<#F/"0 ^%mI*ȐInRWoWݪH0 %C1G.LDcaWUWqR?҃OŸ67q?Az֋ SZ=GSy҇r>FS/yn7f,5IPRD+Q7+RF0S'--Y=TNRq$GL0ę*6xIʦTv{ ("CbYbϠ܌lhbߋ\(yK+48O^mrLh*lU.?(+ȃz *u[xn=S7M]d^C~nzzrR.h(}mO*p8Y;VG|>gDщ#ڦ )".Dì%Plsv|?/Sl zڋ jku Q? S (KCҳ.A[ hdN^G;h(]}>אH}bz2]5 6R9Ez4Kf}4Tku$"N%p@s.5% 9Vz$j $;j6 +լ\RMM8>q8M8/3kiZVoGiS,׍Q/6cwМ zZfL|[҉rOYV'_w*J0}hC4VkYm,M{}#S姮f,M\ }N7mŞEZj$R6\\ָy2aMLYhz25R ~o[t ʖaF)~زmUnkC26:*|[A#tA>+m;lj`\ ]{>h"?>u7y?FyQS͋F[[ܠQcW*sAsS8?_|^W^Yt< xw>&"7Zj+knbOtBtH4eW" މ(4 >ii*HBkxr 4wX8 tݶ}mZM6n!YW˱k7D-QA)dSLd"?rhH(>aj)8/Ucי1sô2ġc6Tǡuķ;LTartvئC_\C>8KegQ NNswK"_f"K ˝AW!z@Ʃ?g"'hoaI3+T ,NܸK]'|}3lAs!q$(oK 2 ' ]wti7x-FSXr#7)4d5U-qvu&8*N9ChTzt=N:Zi~g2o6 K+ Q4ѧV =dԛYVۼmK˃@!u+c M⁚,K"h^"gm??mpcy*F8A_h>qWe4L֏1/xn85QxX5aQ1>rSn8H(5`i&X#^V}#me7cq^-(qJty3 6K;e\ܗ>FWf>,M6 8{<@,!tn!o9K<93>>&TyujVxnF]6H@vدA.y32i |W`fjyx 4U'qe2@35hW<mCyzϯ:aΒd8~.8&T,er(s r\wW@igPK Ю`S'r, 2  \[g* >KV0%mŦ<7m42}N:lA|ͤ =w i _{"|&354UkEVL9f!Y[._M+T" Ƿ6Jaj>]ȼi6!۷ԢH7cﲥ n$eaM8e7MMtlV'҂$MΖ{MЎpPaCB~wz2D^p<}D`3 N* ³]ѹF)J$NOdz@A:%⺗AA농NhѤ<9[:gH.h#F?T@A@18M:FxE'&. 8Z~A"2UϾ]"7N*ЇdySL/%X>SGv׳akDssH/{{ I`usKݕk5<^OV>[0 <ד1wDZƿ FS.7h5?=\J";ݕU-ߚ;{5ӌiVegb3wTu../i%6?͖8 ջi$ Vv[b9jCz`Ϣ̟ts3i|i>F|e WW wLt@8TVlZW7ԗ4+م$ oOA!3lrTN_\g56ψNؕ(c)VD+ LͳA4o}^YXGV2y(+||i_6`_K5# '<|Oc|cw%/m`8U/ʹ9HضV!\@;Z!oN4uT^Vky!$N>ޑuM"W@K1Ryuf) ?9? (HkTA+O hmYgzO9; ,C' S > -T~tQ+kZ6Z99mWRDІdNqԴtS5ߴ{j A-'$:'f3iI\.'u3GL5&ϼЫK:'U?v4;V,&FelJ ׃=]?fk2dn`&4%a_ԢWK p_R5Nh'v)fQ1+`2UACKM2iDa 7x#ވ3kꠙeDEWjq&_0-f٨l-3 s0+u$DpUwKsT{`mauޭnBܧrf`Oq&3ٍ!MZ:⨉K _zO]& 7˄:-@4:L.lWgLv?)x_Z!Vm͍31…"i/zؚ p+s\ Q^tۈ-y&h6 M%%e[Ln (,q?[Ь lZhccQ+BJNߟ- 64>dVeE`PlBYh5*ܫ{w>* - :)?~ /i zWS5[A [C9~O\W;hΌzQ}h V?߲tw+gG^v[Pӄ~i+3S`p^z0e- O3[DLK?V^:K_d \)Rp 4=I5_cE8VծG$"$,atToR8{T՜#޻>N K"䜣ΰ̤y!ޔ(Hf7%Tch~ e_1f9!3F_-΁6IC=/<P#Zn;VUݕx;z& x"O%46)L4 f (fQ 8D!v<~-#lwG4h_4ߍ9_fRp/I#Qy - dKna [4?S8!NM2aӶLlɸ{]9+Պ.8%0  *5met߳\זAr>j|@%h8^@jY0ƒWz˚@lX$3}9lr6Y%m!2ܡ$g5шƒ:=o)>ƶŔy$QboHUȖ$:c !ʌ7n:,3Aa!N1li H}Tfpc@S"V`њ~LSIBPLY]b='OM%l v]U P:1M|(U{&b͒~G䠚sm=a:,NtF&IVUIb;D1NW|=;+cIjiG;1o6C\.(˺euOǂzBnX&MZmVȲ,iunyUT:l[:U[=׻˂ p*( Qk47F$sPԌ- $,;W/\HWqKX{.AcJo#hX%(.},#ް7 Ǹh~Qp .Ũ6>wUdθ UiCfOfsL%H` 8Y}8q"%(2^`gzj*D4 CYOhAbBz]/7~amz -p[G':5MUIji-u]ȭ̪Y_ej$w6Պ=/(=(-bqЭ\ sA(0AhmԴ؇E/ fQ\Qe+A|ifU !)E_-wyꁓL.G}esͺ*?*z'o|WV0e2ϋrX[ @ DeQQBc31t2xJu,㤇e7fAo W_؂i[ņ&H8aJś2ZWeSnm4߁%xp9} >yVَ`V3ڳF޾("BM 8c DnqP;@s7͂R}+Gp dÒ `|:hNʧFc8C;U\7М?U]{soO.MfbTuͤeF͕.QIp_ѐwTKbQ@1)>H)o}7˭v+"<-4mJ-9&ͱ ơon7\Rw1S{lrm5 Z!izkCn Mm+5~l$ԧӚ8 DfѥE@ V QdU64n73(\Q_zT@։=EGOTģ().Oeclo3y8FIRp4LFI!~kس*(36i+Bt ~\w,oGޭMHad*}*4ȏR/L A`pݜ;^?;D27ɒ;9p1tsx73,OݔA}yo#24qKǰ})^lm 84-gm L$ sPu, /0)ZU{qzMaAp]b~L0klh?0^oL`ŋԻ./Ml:h$I >~y|EzQOHZ)D+K4Zhr+]U=j xŒ@g*9mOIJVˮ@ѹA8 dmcZRDƼ$-S!ZEV NX`𤐠 ^]6--#<=`Z 1lDF~Y#][-`>3ә7D3ī̲mToIUIcӭ'Lv{٫4ݙJ7mWTtJ_i ~Mc0O9׫|B8C lK'X#o_0v:$ @xq*c(":D7gLNAXI;Ȯs89a8:laA3ᐋ/{Th^b}ȶ°^8ˍ J~h@9@NGuz!~X~Cʕ1S6I;WC~GxRoRxV5"Zؾ16~OŘܔpm~j@X V/k%L W3\l8~q˺bW=e^&ݟ[0OG9L]zQ12$59=Ц?9|nNSQleH?rXv;PeS9l*.X1#wМO(SY93Xg-M]&_x-lnG%X+&v:HrCZ]6Da eN-&(hR< Vƣ=4sOLzc&fDڲ8>$G@UXt#@icE"jpWYR$Cfr*PqRqZj<>Ʀ1A[`u_f4V[~cøPNk,(uvXe_ȍ-S!Wl,{S,D8Y$@DM~MtSU {'AcZ~x]7@+9٘A/(,6zj0-lΔ切kuWo6 Wmi=!s Ξث!Ι=%&wqq!(SH˟],zX,Z&: *7@L$ )S%Pa837 Sozef,6.5 cMRi~W)[o؏-_}AszCX=g(Y؀PcƗ?IR]?i)Ȳ} d7mU3(pYhZnKK1p|STh@(ŴJ_!u=7:]:+}~?:Re$Ȉ=Dotf)tEd Ivti'|I,eAg\0A4Tύ14_΄HBg[Eq`# lBϼ2ԣn8w|L%dȬ!DArvh۠q`de"yIc[.s6~P!_=  dR^ ;?_h $=/"|޸ЩN&>ĐLO3y__˶dzoXK)|HҜ~JP7NN -}ۯvۆGEq>8#NW2yT?0+w]^o3^ai.MilU>/yƆtXNQ8h_2Y#LGC?̂5lz}G`<һ% }B:KS<ȴ9A*7:<WFg%^&]vh&(_Y}oK@J*׻y 70|g2 S3l+kL:8E~nVƵۭw:bJcp&x6Q %n-E7~%"ObXقIɻnd=S:]m=F~<7$ẵvDW0^R]$ayWPzgG*qa^CHx hEw}{#`Yj)4*#dGn#fl.,27K?x7+wJ5^g ^ t|#Ĵ-*>ǪaTxlK_X: 9rKp^ hZh?"?kDgb Ns}f ܽmĎU"a&廙^?) |lLr:b58imO`Rڕ3q*$!FDaD.mϟg}ayIӞ-lXd1<}Gmk ؋)4Hp^łk,AGsܽ6Շ8"ȩ$ e!!G _Q4px@|ubF;FPQA$4|#[4 |C"~+Sz`۷!i"J|i-A~dOSj]:v]l^.Q.8fzwclLЧkN+^Ƥ*6z& V=LW(̤ yv!* yb_w:í>_O1oO I9t ЋS7<&تe 3|; ݀ZmV;Z$e_V|fu>\WwmQBsN8Uά|TqV>% "HN.* ֶCro.Zx[Vʟyz4]K%'᪥k[{Si9 ċ˄|@t4_nq$o(SyZ4;M|* *e=@6͗G iR5sHaڴc #\3 }Zs5E" ^q%x:D희B n'6 ~wۄEW&tb裥<8_Q0o[aO?@TE9S‰x=c=.A̞ ?黽 \YBxN ϗ] uEi:!qɷM\D_ĀŌB\Fn0D VUL,f)zR4ޣ0uB7B43y_+K$IrGOrj+[Q?jiܘll}}G"F.GԆGUeMmRE*O"?0kS_ G_n/r *@ #c{? (:Y쿛rεLWZ1&(cTִ 7F3H}7JCJ||]zoÏd"Ɋ <7 'ofz% QtxYdjߌޓ#f 8qnpˉ!+I^! ýRsFLyQģ/@2VDD4c ~kU+~V88O['}Qt2_ :|ph:}#6, N$Bh^j4t@>Dw- #&x&?EM4͝$ knd?`Q c7B dbó07x?J`dҳ.sjhLaDOxNiZB ?5!00o0XpSXԯ@?g_AtZWշ攙6-M܀saIQ ]l8.xNI&] %D ,(GE_MSZG&W+ &^wǁjࣂgf !>~T$p*E ?!8\UЬ=LǏ6 ;E`XXS0LqOXo^} ^q0 t#"M:,]7Ar6m+xDM(}U除lQ*K2'q }L0A4"0V> 96A0DO_T>N+ OhuU( P:h#UӐ9UmSAcA=J}?&l{tr74? ~JRo SzppJiiM9YڡMpyF^eruz.i,&5kXDP'ٸCUS(} &D=J|fKYiFuf\-Em$i,cC( Bbu] _Mt@LU|dW7 d,}~'DY+2oě>&b("(R\`{E4A3XvPQJA&lbk|  [m6WUQ!qH uͧW @`1P0Q,u; )OLEtF% * G^ eW9# z xBqo3.郌Ra< ̒j١y,XƤr >M"ymlneVhJdllf>y*¸}[)P"lJU2HҞ<$)ׂҌ@?W;Uoge9)x{ye6\V#]n)Q^3>ۙr%:㗅.Dm}ZI 5Q87s%P# f#}:,TKer@!5s 4W/ugp~"Nwg( Ij@DnYDj.D;\u( VxWƂA@ZyyՉ~] *84Æ3UQxdCGDtӡ7Ұo ͔V@󝌣][4- ◝];{!JKDQ܎8yϴ*nmk |7[M':I3U!zOt۾$|uwDQ~]XVOA?o0`&=MF~ X:90 }UaO]`.{Fc'dy{^B~AS`-BsD*}"pZɞ_ Ǥ^~Ygܡ9[t\= $vKpZu0mF ʹPZ [kqN#?Yq|, Lݔr ; DN'/?S-98lQ[v(LabZtU{-|ztѯj)7w?t^4>>z?r7@TW$I%h2)B[wM$մ +Cͱʜ,\|c.ťysۜsq-6 UM($Nn޻d}w% ^V*v.D~Mcl0AV2x:cXM\9uQDMil\8S"s6'<1 2,Mb UrQ:Qq4(\ak3_r)w 3/sl݃pԫ"Z)+DcUPɕtT/H&YTXZ +.]"<S}Ku֙{4A5<[ =['A:i}.>-x^h6eSsP7?͔pi}\w@)Exg\Y~fi+fk(Y1ضLa6`*_`\Fap'y* _[/2~IUHOpJsuk<6UqqjvsiͮF&26%gѦVY8e]5P~%PC'iO dU4;ta[zm-I#'\ki-;eU"qzyRs}ὈR1ͯ<$&IrGxQsXSхrhlcSyNQ[6it z6E? }lc(oZ_XbYWU{w |nbUTj'ˉ*fVNƋ-*lbWX޳E>'Wwq96_/ՔzX6>ՕX[^u6;:9ͻT5X35gɭ=9&ol-A)L(ţP8&e7LsI٭,Ch518-+O~N;FHe|Zzjv9~}}4L N1QlӾ`VJT6S/:WshJoN ۤa [ΈP`˧ >yZ^jGτ*\Rmn&MuZl>k2d,"*"[3nm4 7!4 6O9;0 7MӢ-~fOfl|џ"zin(h&,ӈ&vTkM* Xy= M>fqU֤~~xNdE]*n;,J9g~n9M&RhYkp+ -^$OTQm\گ5!uNr}hX&8Z@6lN_(߼[""(Bjcw!zT_l@+ӝ^^؊XC1kk:Xh\b_߉;J,> ?ؔ& }Sƹu$`PU%@C6X ǎI8hTʟbAhmB[Fp> Y^W)/8z <qDMz9`2EҤI "p.9g0 XEh"^9"~Ieۼl,sFk@  R7"кBcѱ[#c=J0;~ꅱ_M::*uv_K郓~7}6fSȠo!qf8aK0P 'ms݂ XV,4ͮSdji>h.K-cP!8j*Itur7,߈ lb.ZS3a0W,Ng': S^̋{+/il UvXZ} /NlCw|2<@t,hYQmf |&[8I(q~2e 4t |5.d2YA a0.D3|X!z5>^UK$I`Coa;0RDMyPwlz8u N^TU :f͔~:ɶoUE8Z6 ewM twla^Q9@VB7&/y܇Ff28Aꦃk&lGϮGjOqy+^gh2I": snc֤jn?p>a#|vs:*zܦl)µrTGa&ilZO"]NEx9Sׇny4;QI/}@U68z XX,hb$ݣ4mv6wnima{[0*0IT'j=T&bt푂klp8XVhU`tb)+*-Vqְl/ hdm3˹b7Eho BNGRG w PS u:T5/+IUqk5;U< 3:+XXiԿm1ߕY!Pj⫑s("7rCE&Xg/^H)-20S+q*7/:čShs\Ԙy|~X8yNuo\T3T{QѴ۲Ju&V;M""UoWX7TiO|7q"~ΟlLtZ/uRNHNXfcqQs׆-kCU%j㏰U( ߛYX6ܚXbXvv\#LM|N0"=ǘЄQ=y+LkX5ntr#dFQ>|AEpN5b vӉ¸v kR?ϨR ܓ$NJT;\CWWZ az ܒ+ChI SI@KRPm$J&kU?~^Ʊ8} i7v54fg[1c_[=H#1Pԟ`kAtE6u ~ir/ev*n /fk"%L.AA`7zڱҀ$ʋe=`L`hSr qMqn`v`wWtzQ~e/ .>TP^|F> } T~QoLD})[E`9]:hq&P0,i 9Y_dgrB5KdgMQGU糶/9ySo9NV %>-bjԥJ@3\v}<^sް~3jWT@ _&A9/ouRpZS26PLqx/g#KY q&Xjd_d4rE'yt1zЄiHϡa[k/F"ߋ!4tYm\E*x2n$t@2$L*~FW3qH;,&;|#Nv՛LC5A?<>l'dR7&/; 5s4-hpbp+2E;@!/Q!f?8A8NeQ8L {b!@ ,psarϙݼަq~ n#`H֥\TTw1o2l֛]Gt'W*(W]gUjI;f"w^aL]w򅧹<4[N XpZo[kL&E"`w 8(tv5&o݅!|tRf*{- 7@Z#?qC Hx|`_cc;a3UXb9~}')SJDmeȭхvjQvM߯cǭCIXϔl^Tz>9=VUE.,tQ(׳c` 3$Xb5ޱ+d\;:KIkgQU|=gY.+zݙ6Uv4E7cꦈc2o[x fZV]3q/̶qU{ܲKf`3KYXgN@7͖Tߤ'ah^VYV= 6<>؄ O] ̾q []bύOJ\8=qBm, ~B͌. -LfwGۈف\936 =̓05 DƔK|'"2El^1S8ՀauJCS`SEy)/Nz>6+b )Ͼ>`4 à,6ׅ^T7Em>A4b:&fO}Ż(cN"hďt\MjX^15@yU㕖'lؚi/?aI O`6vgζyT+sc<"I$)CKL N{=R;Y+ 6Ř h*/6╎N:f9쏧י۸Q NC\?|@ĸxEt 73\>ݭxe"vrLڂ  iZkQ&`Xt:)]sUepGxuuj]װcEjApܒXzr },;)wG8ohSRhkҧ^?dZ,K-ޠCRΏ3iA/W;-|slxOZʝ٪e) m'zviu6wj@tn'N ePqŘbkA/kѫm}m ?to@ʓ MH~Y&,ǃh-QDY{,HQ<,N}7n1Yg-Wu0erx(u y4mp;ќ1Wi@ACO0 \LCN嵾l@m7c68tht ցr-,<ɔڷoK'wOAf{YnkP3܊&wݰR Ȕc/tH4V_ I'lkX6WW|V2i3IB(:V0fXdZN:2s͔WaC_I;z>{bHՈJ'&wOeM@$ s<&"NSfDÁ!1KQFg6*/hh ѩ1^Ć&p(MwˠkludN6Y,޲5[=A:&BxO}nE^>` QT!3.Y]! C*Þ+d ͲT.:GU'`/{Ht&*n4B,ww_)WqygMO{RY):x?<r[m4< 5'yngå 9NeUu]Mk2ql&Q32nvu2Ol:8xN^i9C?6>}Ƣ,|OE4jM 6`#?RU>.`iujr]9#M۷Wgd 0L/הwiw8Y3NDkey`` ;[ۉ; ڜ]Ʌ9SPs,hPQ=hV`{+SuUP McׅfI?`xc MߨX\lıFYP|͍f )6t߼R}=7ur=ӆx^]"ifmJ(rp/ B`$a>ٱAՈy޲ЄnyqkɀxG5~?o188LyUe;Z464$Hzof2uBƓi<#Kg]]&?l撬RV͹x:m csoOUvu":uuUvUEz4NQ*vZT]Ke'+8Xt[aQcm:[+E f89J9pVE-8i>ͭ#o~|nZ u~DU 9׍A9ȴu\'ɯYhx\]n[1^df;{>e55EX*bßn2 */20~y["uNM 6F9B7\h]g 48OYv)ATviQh㥡/U ڳfJ;) #0nwGwi>kCzn6 qە=ę[Ey,eiIѩkJAI7 v؉ Ď7ϥSLV)]Hi| |0Vb 'bԬ3 I<%A+~T>/cW+DV~ADe\wR40D~Ae]0dx*{o^E b3v$|sX QÜfp2UhrMM' ^o:!e+Tp}ЃGܵ?`{--S'sAxuVq(9沂>_dce *\z3L3S, guEygi Ѝ4 оt'&Z6j<cE8ɢt]s~'p|^f:?B8+eqzyRzfTeSy\\B)5|9)kXR65[&UJj~>u;ްb,^|݈amCf, o~5/ۋ):Pq4ʮX)Ų:6zv4NO:UW1G&AI3aqTʛE,WF١pͭ/1?R }&ލO9.0j=!xAPE2$5"jRA9C vuPg5@/p5ܤGrGBC?}{l]׬YsM/wtNK9wutASnio *0az:ܪш %">1F`(ƿH-ZQ~599sٟ~hd~y4y_>w3u/Q&d/|of;AT׍c:c*]wq/{y߻Vw!FAi8_tLx63fO:ٲDG9YUekތ^됨O"͂^"Z-Gm[W4EQ%ERfihg|}4-!$f|OM._4 "[Gy,} I8p)<񚮫mǷw RLOčGD0I*:/!X3 Of |!)_Z('PtI | {ړ+U:Py^y1u-ðV`Y5( x rE)ha8i;T^PfLj D9 /<&I8KF%NO M^y!A^8Lݮt?,Ach_Z kyZn&ie$q:ƪrb;mBb<Ϫ?︌n,΄?"@ζ-(#֯tZ}&qg.ysNx1PĚjй!_/2X)-*5fqyz  ޲U1z#b^IUt`$u0i4!BQbӋa~F^ fDE`hAbkf}Ћ]{EAMPw@c~dхK4en!|%TtNA]d)c^f bhe;3eL%nin=oг= ިY\l4A{IPR2 6NU^m[~ qFCQU h^7KA$'H8F\Q_Wyu2~:"EB+3Mx̤"Z={W.iģ,Cvz!r:3QjHy.(R切>%`At>};,/{xrqN9QN;N!i >ᜆTmORsixP5]5i ^_\S6GtTqǏ!Η#HFj~Ā B/6JC:_A< ޶Q '0 82KA@g 1~A|0Ed¯R3\ѩ3UdX pn >Vc@Jvtͷ|}6__Se0TgKoSX`Oèm9,>8Sޖf:<:X '+})+Aip˩r}߃QD&BdCIyo H\dj@#?NXK/ׇ׶<وi<r䭸V^՗1-xG#Άn+"Ȝ吘u~^0-:hf{NLkj Z6DSzB'C rfC7if F0%}~'}йEXDa 1,E݅X r}Lsad4~E05o&Jc/B"![p Mfn\DD̀~etWW0@l4ʬUIulzjm4_ha#7Ō,O~t%G;|yB3ध(b6",N/d0xQ5$o;eJEWjM ˨5 y[˚/ Bq:@»`2=\q`Rz5{| RQi[Q.k#I:?Ogd&̝K*, {FʞLXK' L} [n~x9/q&5,s;yf61(}1c/I@Ʃ DJ7(·qZ6YnC~;l04T5\M!g&ot:7i"_~Kih4t \h ! wa/)Oɢ=*SX0g>Ɔ 8#sڢN| <rpx9ο*Ic'H;MHݗ m);^3Q7LS317,Pij^ipq-Å-l1EQoTӿJ dFi`6 2^j)Y`K}(-;Hٮ+lS!pOlz}Ϗ!YSrc]X]}}uݲ1D3ﴏ涔>:fnR|}r"J,usM7"3- ah7M#G _eb+g*' +7)qZٮC\-V=T #Q!uĻ6`}I04(rШ h2niqhz zT׺qcs?DEpC%iFDs`GP}-]69/0w:.pB&-9盬$5ܫi S9r!u{lCǎ&EG,OWYQiZĩh'mZ4-xfy ʕ!]ҬO*UZ7v8T^Ue-,4^\弸~e!=S"6$^LXq}4FD65Linm$9ㅘ)Hi"=ZɄЕ39а AѼ9U^Ve:,r1MX+EB'% CƳ)eԃ&F 1Y8Lb!̤ELa-_POP4SP?.,IBc0|;&.sGb;f# "b2V@/5͇4ҳqLpf$gb݈wknxkQ洭4ˆc.oixO0\N7a⮈wM-Cejfj B!" J+]{%{)qTDp?3w u0¹_]M86Amj-5:4mkd-*8Ӿ$"%AyiZyS `4o)3.s u iCSw%: uePٶ[\z$cϱG{jfdߋCna9W!;7_۟[qP uQ~)IQQ mN˝wb9Th#l,O"b]Ϸ}+-ѲTQxl!V~+=P$UcS""4kf ,ϯmDke߾& fpr.  u[aFU&TimϦ`nA:&1bsH_&lj'L ߌIv5_wTL1T)S}$lq,'ؒ&~T?`$:]4Vv頑8AQx3^5GQO1Yȋ@#{Ѵz=D`h˂ljXmO1qԴ&bP| N)<[yp2_ e",>d+kԭg{X5U6v,ӱ̀/ SV9Y5Ck};M/$Pl X[3 ''PJ ox8=_]WÏE&au];U::i #469]ēݙWP@)1z<.~Ύ^j}@-C0ltSi^%u~1DY1X-, 04,4`ht՟aq rS/NbtSICc'X4]`?>W$9n.a+dy4yY-p*&Q?Z1=:! 0*'2/he(LX{G-'sWCȗ7FPvÝ,+2v+ϸ .}4)%htUSue"FhpK8*9-)olWV*坡+tqg 0(JXH6r[?"<Ń Rx4{D#ap4O'Zφ_1 WlC/gͳ?m  [ $xU@d֋~m ޅpi9;`dKLѐO1xX:&8! ?Ru[) ~&P UFL];Ń$.m60$2zkA7a!E,c]."㟹쐢T1l:FʢZ.Z A`XDE5^{8g&%%!G?gᨼ"/wCЌ/&P+ 45\lr2r0^Pp3ل)F ]4`!2/qMuwQ=mʀӕU:% $~tUq sLSY1(%X E$fOږѿgB{qD>f|FgIch^kD .!BV6GٝO3vZ~T(=K-܋ زWtM/aS76x$Ǔ'.L0'ibHSgd ɺژ'zs݊~A+%Ŕ06L;Z&:u.yx+# Üb4;| sYT[ ek-4PWzHTU'3ur>6_qV /0{~D6ha馁q}k]oH ~@_=8z:.J2,4rE6딤l-x~ [,F0N/Sf~R0!Yȣ!-xRi/J-h"ܥI2+ltY&* *Yf-Nk؝}}#~ ! < nK`$yKL\!kX/?MGӸL&'(8MDHdχE㔵4dQx狺 ޞ3X5hc+(3}8N;@m ȇde<]|o\i]ҪueKejBPkAλ&J/ 9 (66B_eJġr6ƱD;g}'Ȋ)YX{V%|m8KL㸚o ٜ'Gɪa@lEjuRdBU,eRPgX΢֑(-86qUK&S<`꜊g309&KQ =e9QE`qKEqn1s6p.-Ó|j'6`~ p7͊]^Uo[| ~HX5Xeic|f\lKl(Mܢ֊Fss8|>{ZR%b#ͰGh(F:EϞVTiz . ;vaqRQm %m7eP8y(zMaZvJU0ã1S хƊ08,XgUNS:L\l Ky<[m,԰\*-M-E4r" BJOmaZZ{؜鲆AjcK'WmS 8̪ .>=, J9vɺ[1+`PFvW 2\rD1CyI.}TE$0:w] ,|M-r0ˁυN g//֑ԜP&:*l&[q zu X1c@F~qj墁 _̟ [s8W.&*r5onz2 Pʤ[1Z`+"4~hۃHUdt$yQ{pQqV\?hhVQd4<1yQRZ^N{5 <+M Ma0ĝ6bAɪbbu%r,/Ԯ+:r4 x3j;72 y6&|X7_71')i3=Tf_4sD$7Zd~ME`b MVYaAFpðӥԇ( |NF#xWٶ} yc݄acI^ǣg(r/&Ql{BsKE9b>=0Wn(ʨsd#)ͮ+7: DvLU#˱,2%Mh*Dqa'Ք6 <@𱙧5 4!~fa h3L" ^׊ }^=YVTYX84Z1Su׼֡ΠLEΗ7 ;kG:6v>]$[lpkv?caJΔv]Lh"7L"n}XYF#eQ(,g:b9xvɠZdٙMy6Ĝif^T,r}_V$0sI!lq[0Ɩaap ˽'BMxSKP8Oa*jq2i`qv־e.Voi.bn%Ў*sIk!e_M7CIPTI&.a.%&Q,hBT>GʹB#p"jY8XX=i3G*6Gޞ%&'KE,@nINAE{a/q @{AcNMф(x+톩 3ty/r>ҽ>NB,=<>vBcjEoUJUEA],3_eCka&g=[XQU^QeEB3Y+A ,vD%#Dga"h`vO4 HkW/^z9 mZA^hQx 7 u~-[IPl7o a:/Rgsɴ +~h?Ɩw$*:/uU%P]ٽ 3?M>4XDŬ]:d%ޥmm_Բ*52ZUױEiIRH v0Òna 4腺z4tɑ33Fc*; O.L[cgIkh% }, {zyOW;Wn 3J*@EةCx9îf$ &]NjRq & Y#]háMFg`RN+֫t7Y$R?)guFTG%% 4i/|3N~Zz9.y:jEP8Ji)̦p|?hQ#*Um$\`SE{e,X'!yAs (pǍs^yuAą$p"Io̹] I&$q lm[q}2e/ŒtП>.#r,÷/UJۘzq7t1(Cm^ԍocHf =_^Z&GcuogN] /e]6*s*Dj}4}B7|p1PCi< }~sX؂0J"id`ĻɊPU|d%IF^ ;QM[/uP⸞a0Sģb[_BȔ%4ꊧB`LU5!| z/ܠZ !7|szb5¤Z3&CAp*W3*k𦊌mnHcK֛{E@'XSSTL}n @cMaӾZzsQ1fn4H jSvAV=@]).JIeW.K(烌Y8I|aO V>֍ gɐH3 |TR;(؉s\Y yn?èض!&}I*͇M4@ eQW7t2W2JTUw6z^WwTqʏt`_hn6W'"/<:/8x8noF7J$|SlIxrnld2ݡ a3(O^IştJ'a^MMl6Wɪ@v46~/S=6t$;C z=@^d C7fccf̺zcV@it>{h8' xJQ6m`T6;tțӇz1Y+`%X|ueHdGQ,<lBV cѐU#*GpMD^g{Pޡ()4=Zc玬(\tuF"܆TUh𠽬*YBtc`o`ª#V+b2 cy.QsqvIl|Ü )ض4d͵]ҲnCLu4tb'`50kPdY֖f܌"N0\ }~)Y+4/6uE<gәWěpv;u>NJ˺rUG X)G?˂ r;J6?ʖ>7.Ql/*YTSzIObSs ]Ƃ'hc;wХOy~͔AlE0z):7លZS9IUM*wӬ*]׈s/YGʼ58KoWtoՍ`2^ƞ}}'E!$KhcV_U¿Վ "J!jDzL55j exYñMnıhx.rD\&09ҦMnn2My-4rUJtDu\6*<$ :.z1P gQZd(9^o@"ocAcpQ?>u{6*=bH>g^Xl(aU?!ml7#O0Eg 8J "c5g2ESEML{l&n#(a^ǰh}EsKG(S,<@-^BWlUwp4U֮ۋi[Z J+%]!]B/\tTj;荃P'c.JC3$̐n*MhCQhHbjO3偏2(꼻Xl7ŝ bvNG SaXK3`\)#i^e|ᕄ!W/gXPH$g*?e4 Y7UJ@abuɥPȉU4p*:ϰzӦ ^;vְ2+H;ˈ_|5$ $a<'S f{t6j MipY'sf9WpxۨwF:/zLt( /FsqeѥDsL Fͥu$Ywl>ZQ /=4^ŧ-4lwby\ d si&b}?, N0n4sT2 ېlq@b}tbRÓF$P"2F; 5h@DYMu/*`4MTFYVEu,h@¨d HKј*B+~)R?Lb{m4mr(_+ݿH Bl:fp$UǛ7RedjS:G}bϬ;F:q~ѷqP84OH\kd6S]L4Ʃ3b:d+^!'~0KܤHPl*f"SQQڬϯ~^gAx`*y?KyQlk+kЂ\m˴ql ZURh#Z x슅=҈<צGVZ(M4mgzs@Z^|ܮϰI{&[$j)~\߁&T=WG2O[h.8:eqp@ fjhD0 J˜wrZwv>cq}kt]׬ֳ֚睽gtN;-_BĽlm{1~Q}8=`Q#AƯ@AĂ?2뾞y{9'ٿ&~cb}헟\__?}}㻱> }7J'h |}8,׷q7_mRXeY* '7{x߻^kU 7&ЍzyA8.,p/ˊ2шmTмL^mAc bR HNH42U&,W]F w •Htt#7DwfoD+ lqǓ(yK5eF1:2 „ Y8G\̇$Qāg_%T!| H)TǤ}7u#ǡB!Q;m)hmj.bC< *P~'AoZx}{8(s0E"lTA*uQƓ ề{nZob_-_ $v3Od~xX޷lҼ}uMU/JNj3GdJajkQy!O ԟi䄥tZQ%@ka^[q2ʠj Ϡ8q&ߵoc47姲ߕEUfe ƚhMz߇+Q[U8/}"`*}'k¯tVArbrba_ԽOmp9j)DnZO?V)ƔeC7L*@U|m, k#|&8NC18^ŦO\KgIb\Jwo[Fj%LTw1n.ӗXN]ZjwC6?.Bq><'Ul99GQiL9]g w0$TD7]2Q.}+ 7N4ô1L0UE#Ҕ`/1 wr6/i00LAl7#Y~(bUTq?۸aqL2lI8'2NȔL9P; PEnNΙ2 kjNh)ʴ?T̸;f ]ww@'Q1"`7/Vfv<H`ufu,0T"O5”o2 4#B8:)m 9l] +#2xTQIt Dbe3UsZ|ZNӠKy=;*_1u (mCh!:"՗o>h7 bU_鋗Sl8AN,BDUl]EfW3,h@n0YF j{ֱ/܌!tM~]x0OTD3-M{>ڰ@cwE")g԰4BH hj! ,9m 0lۼ[clh(qD196M$.s1 &n Uu 8aqRplG ւ'0V_5'"-V,+Ő.(*75/ sr%y vȃ+(8S@ nh,) hHw^1}."0Vo74Zd ' 2 fw/ȊOYAW9o`b׉xn47E6GQ8Ifx\v 45=)jv6s`6j= X5::•omlhB?I<{) =Ӹ cPNRtq*aYFRQ,\PόiFr<ɂ‹ V]!v蛼g?~ùbt*/͹3 byP!X+(v͔meSiԟNEQ]fчNQ_Uy]EVAVS}3NM7}TUiw`~Xe',V4~X)*'Q4Qű[Es|lrGSLQ}SQvN@H2pƅ7 EfLӍ&+XQf5Y\c}$㾴sl?8A6uDEeR{![>xVț@*~ ± Mjyqج:h444z L%1@$Ct/$of<"+”ke 1E-C*D@Uݞ"'Ay4b",hhkx@"kVkŋy(J"?_TA TA8LV/ |b-2{S>j"0LbJ`ٰ[I|?s/:MN\!*QQױG0IB@y _쇑R zTJF7L d=<I&xA,2U)'ϐIw[*KNZPel\UtU_ }Ӧ_`6ƒ*փN"IC:v胑PY *QZo`xR?҄:k34DhiXŁ *MJǃ 큏*;3HmMi`֓j(p42natz|-C]+>Mע[.4_\`RJVPR~:X/t"R5wt*jZA٦v|ԡ]iY?zPˇn& |@B'!Bz'˥txXԉI~l FyFNK3vmYت%/lԿ;瑯$jH#֏#e{]7TNp֕tGod 7N :lrD!Dmܯp*`MMD6 喤ЮXy`$M1gw6e?;Q5`&Wv+ 4#Sac1HFt&/VqL$WєF(8#,nc L9@V-WLj Rʵa@SՀ./ֆac+U y+[۾]Bp;Ћ Θwwn3\ab]-l"{_i ;%f m0[eԾ۷:htrN98릥 %m4=A< 1Fe޳5aB}L*E0L^W sSgjz@-,5D%QPp֍RΫZG5ܔW+s7~E^f ߴՑ%C /*g}5oGŪpMxP'I6KI; $q)]\2 *6|K6nױ2,F]7岩/j ;T-l*Ɠ/pYq md}ЂT a6&>勃l4}s*kcM˚,g˿o鋑,OF$mH'VLVbS ͖OGe;æNwD$QDp5ariDU}' {>; |RsBDqL}go7T5 FV3;aDCL&׿_Wd qӴ pN7VNE :-hHQ $TZa  D3@4ݡ%xBSz:E5~c"Ie^;I0M^naov}&M3"KQ BMLGr ﭸ_ *IH'xMє~mM5RDZ|Loxa䋹jɪU\̅bR;o_ޗ`C2YW>.)~\OEUIwԔBۼbLX .C `#pc?r(}Ј}tVz#FB~~?xym47{C 5q&vĎ ?QR!N'v7'"fA4ZpHv)bv >,בP2LQ;<<I qؤ6ﰁsJY Hi/!̶N͡7˱ID/֠kA`b^<3 z1 *`mwd <{*m݈Qbʺ[ulRMeb'AN,;xf0~._S;5U=>.g㖓hUU ?it]I~MU,3YPMld릍hboЂ@wŶ' VîTDbIQE ,71zJ}ꆅ>I>V@3#Qn!_g2>xd.0|-&C't ,]Ć&pwytd ˸!(k`N _mBTũ_VA:u,h}M*ik1vw ]dXbթ7ݖfݰ,fD^iozafFNѡ|fDV NC7u2؂:p0!"N(CLQp Qy).Oh<8jB7f3N8֩a0IslYj>t'pM=O=o-S0254^\S>6q;]t;R!U쀨޾?4.6NACi26Wv a}9;|.< MAL_4i&Z4Wx)^Z{tqlaU*<3OB\L;)di8re?L Bk/*>ckL( 8o)[hwNhh>SZxI*@oc^h{WmyA}8nP3Ÿ]fdww8#L# Mis!143L HRo ?sLAd_, s:4gN.8Nnpik74a D%p:هC 4%!1!)^:-.hFRm@v2\`ܘ'1n T) J±D!/LQ4~?{n~.Іp<¬I?ucڦcS2[8}ho[&j(mChd H` ^Vl`mvw6`FB'ѝᔯ^pɋawv`<>böcqMBO0y9~Si*k!:y6֜z9&u5iv*kt_CGʭt4EU5IND'H|;v$+{{<[hʶ ,KxLj 'GA'2eڪfH4j4j{A3m-()CL䝂?ŖmsOٶOf-*N}Y[m~>N~>̫pW8~;D /Vk|`7J#K[r>VqCOrt[v,nSX+4x1–!4Ì 7)[RvOX;ë$^4]ō0UsJ0ZY@x ST;vT@3l?ːlV2 pHK#U~B~mč(}.Mu3Z)LڼHġY 'ng 4l Skqg+9qnem|,KY鵮 قWe+\𮇩2[P<>Pp^&IlW.XpY~eff8XCAnDuPn6XeȤ,Ij`^hbuPWXƴD}'8ٍtc}mKyxq `&648m8 RƸvm'& 5]XzNY4G-4COEm6 L :aCSlVU$Ų-f3eV>VpowiTf0#l[;x0j,EE~ZS ͠&0_э@*Y*(cf|}5 LY_ pxVc W2ET4Ok ˶k8YBM6U-m۽y:$i1͂lWeTc11庛مζc8385u1tK{x^L8Qkkivzȋ% [unfpI.H 5N 7L-x͵j_k:sYO?F1U+ -e;+Bz,[PB3x~ eZ씏12 GChȒmvYЀ@C|!kWhFZ|H:mD0ql#DWM׳[6 sN̷tWauH4")vBeVP@?OX $'ZqMu6AݪY[;>$?ց8;2lZHfDan ܃X&K' <?~ ݓԖJU``ې&ajc^EXF>!4"Zo@u#'\gZ |2I7Ej&"yy'fTr~PqӫЅowi)QWSvQ_d= Ep|/U0*y=f;&x?֒> z s8-nwӆeJ{Ua4$h}5_du;CjF}Kl] rݝ,s ]m5ЇH C%=/ΖRV̬S{d;)?)M). La*XrE?Ԕ`7tۯ褟.Ch+T5tW'خ;6 =;$L!ܖ5Q[篴Wo"◘o`h&^qZF-\ 'E~Y0ŵ2^FLOž^bKKls0<)&Wކ?j0pq^cn,c6D,I7~Pd9>܁˃i Ui4髳2-4އ& )b<*! 8rihL*L,M3,*z>G+XO|H%n:D!x[ʶ[)^ 3ѣa S{9Sfxi&i{J:mx+eٽM]xq+*̫A")-j1Z4&ADi7?ekuimaOxxN@{<]+~mce` fk)rv ]4P3tFQ:@8д/*a+dl.WEcդj=.7c=3€%:pl&p1XbBk\L*?ቨJ*3 Q¯NDA^o>qٍD)F[2f)~Io [~ԑCl=-NڸvVz00=(=5EXϒ%Oԏ3KIua$U6<PEEn` a |Q'{n@\,lLC^#sW) þtsAOE)d=xfw/L9\B!+ЀQ(͛ͮ.5I7t`FCS /n~|Hl}FR}' Xjm6^ľ q\ϋ-iXٷ$I叧ݺIQp3%g4;ћLsc2 /6Ù_Dhj IB6Uj~uk@R,:]u2S"S*?7h;[e?` ,HۥFe[⦑6n~"o'1N*_~);0>6 n&! UL$k.6,'96.BOV#ELg>@4ĩ}4& {9z}SyQy/^fI{~ \Ata&`oh^_[J,ܔ}0ƽ_S?GTM'.93Bd l~Q4zSJ;:<~a<%%my ]ZTToO;ȕEOqH& 0Æx6l9ޛfhT ay3D^QTOԗEcM󕶇ݩ:ͨ6̯̒eJ[!Ww{ZY2c G7Բ#K6Cܔ4&:>Hdc_:Jiu;})ÔEJl#ӆgTr++QgЉ؅X%٧i ѧ—Gt,WvAm-aŴxGt]BYUj9Ώn~ٯJl' EB*mj c&v:oF4ӱՖ`4Z(*bNЪ]Zk>M>bzϴ}vc^M¼$˵6̻5$Ww[O7N>iVmLD߉CIε*U>./-^?PB Ym# ";C'q*mɶیj$$_sٗ h(=yWzw,ʌr@KDSZ] tdƉ'ݩnFoxLSUIT6S) W0jC)ov;QTŰMPobІS<;BnM9~Ö?2(j?ɀxie}" n3L73jo!OsLJ7 k9Cs*5`Zoi_b6GT*5/%qKևLT" /ާ`Aѹ.7/h6YVJF>)jF[t@2 >ook]ρ‚"'rmwU@|fR9xwBbC3.f-@QfQv㯃qDuidcӈDdҴ,)&mx.m.qz>KT6D'Nlq8S# KA^,C8kϦkFt=;t͌62!c]M߫73Ys¬0o^Xp:qk(n@˴&JO06~ ݨj^w&zW׋"oeBq% h!6NEbUo~mMMM6yZR)+a`WM+`)8&FUԪ-5pNvd%0Pv^$•Q4,6:>2K&G4pzVmֆ9E1Պ5.OƉdv ;S6F^gdVGpMk2<-@.۲- V`T{ hWáy,<U@@4ִ~1UI3L9I2suF²K.3ɼTP^D<ެ 㲸n@BAN *6 &^ov|:ogTb#f[AISdk c?Mvc2'\%YtV˳"0R>䱇^v3Ϝ*X0015ki"8\K@]L>ax^1H1t,cJ }VЌk+3%W'k@$M}hT[5 Z= UQI|wnyo$_&PAW DY)2K]_h !D7ctmчZ6e[FD"+0W![NЅoQeo  t='t4J7v#-18cp1:]Q{Si!L(K^8m&Gj/^ I؍' ;kZ 5$nt`ŁD Z(OU)ӡ'wXǿj>8@*% ǗYr_E"f@o }i4vOaXM).|te~'gkp2!)/ὑqStS'*ik%#*~ʹ&~ћ`mqu ;,͒ #rAqU1b@Msh>Uh:1}-t@%ʼU^ T4bCS kF0doc ] - (Tb`)Gs0Ib']@N{qߣh+)95 /^=^B_;0;KEK0MnZ[STc %ڔZw]>ʢqRQIb~fly!0pT"NyI.(.SR}>p|fL*v}ho)0"Y6ff jCr j~7%/NbkAi_{jBa*<5vG'~ PLeLp'EyZ-/~8<]+nM/puC]sEUbrB\KrdQk8Gj)Z >]*"b/+xTX N/_3 y+Lrqw~6ߌ2eh5Q*\8,vhqǎ:JF KqnGm%0]P(c ,(t|ZFТ ي*OIEQ%*^16| ^cUHڶ吿!x04^&#bB0 'r4 曭6; +F2PGM`Zud\[׀g@5 0,*"T=ju9`͘6wTt'_~TT#R)f͎bRKpV=9gUWv )mjUeujPS7TT( $&\ΏCl<t}BWw2˦Nj%} `+gPw>R.}vquO;4Q}j8Ei~2Gf!gaMf#uܼCyJHrM&~:GGf :7K.cf Hu5O~X\Zջc9Uְ^BX:O5Yg {8Dn%;$)ԪQ\d) WN~%G;:8v@o+.2*TvS0?e }I%`'gǶ8.M44SQz &++0_dAч:q=m6Czdz7%5aFѐ9"HMq`ĥ?24BC?}kdi^WܟsS]v;o.KϹ_ŷj (X̢EMove4E B_6`0%b F9:T/ol~>:Ltw&7c~2|8/bwc7y$}v3w{?ػڜ׫4۝7g" BS˰ ~nm/~@wJ^2Y@:a:wf給jfN-|kǧ%¿сB4t=?ɯ!c{ *Q,>̔YC 47hܧAĩR>};s"DtˆOaAD8"o2E~u SCcuE= /owh\2}K (FxM;sDD"x$:vb.F5R'BDC vq?큅MB _{Qay-pȍ8te$iDS< <=ϾM|NGcK@+^@a.'.#8OK鼿)ZDQDEA|HͦZR֐$aZvN¬T ʆ¬ +^F@jga!hRVDakIDtE"ts`ئsCKShfMGy馊b9?0ߧ{-/\:?l /w[p9sK<' | pW/:]%2zp$ !kD<p 0:e:݃%;Lo2y vCz6g=oA wTj*;<'D{S_e$4?< ]xaѨ;qeؒb~/k ( Դր8DX|u' Cߏ(uH(MJF?&hE6|"?IMM!xD^gPvԁpWlDQTUQk2Lf^pLb^oCc:ZөH 4ARWǍ2Y~avu a,i Y3aԯ>2Q"Hf QhHxAEl/Q4R?iug66dק V0(0qqШD|2LKf^M^ {B/QyٮViM$qQ7*r,$sԱ;ڗx- RwRx'S1ͯ0:9F/^&{ eVQWw7zttt'*薎q.yYԔxi~Vlz8-rsUS+ Qg"n>|eN4,͜In~o_c1;0DׁW -9O{(fÁi&7 :aD"=3*mZ7ƒ7L;l$: H8Mͷh>>d(|1?kRiN%xsUq &nG T =FqA^(a>@3RM ҧlfPGUM޲ώ>K7B>RSIUc40 fYW:Es,tEԝ `Y'jrb4g$ujܵbaE$I OCg`_'ER܃I$rѐbs$A~*h sx 4 gK4p^O6DUo*jJz+M!*"YF%\AP$J Mfd玳n"BeY,\/gW&\' ֦U=tBc1 [uQb_2SF^}u SMA>HID0i!ڞO7,0ԄMɦ"OKpEqxNy4ꓥt | Bͺ6ftAlNdM2 vؼQ3A U0}@?M:bD'.TCS~>E4G7FPe {  gNA/rЀv'XEb]ҫr%M4E đGN0k t ~*gV곘 bτmg򂉝 } 5¦bbƾ%FUx dz9t^H)S6t42L15#>0Na AUTL ,]ǩSJ@ò_֩/s x QT0Kլga+tyF'%T]#\1UjNC;; ݘ+ü%AQ&⍨~{LfFg8 iaf;s(4+!Gpk!4:kY}+f}('Y%}=oC1X 7K(/dTZriϫA4#˒#y!X@ r~!ݡES!L4y[sssa,`s'Ƚ]l,uC6Gec0'+uc e,0Ry[m'JQ?;+hIu bHY=hZedѪ"̲ g3^$~q)O((W~f.)n^Egm@\y>8ˬIJ>dq^"@6""EhFel.*k2tf3d`~h^0Q-o$ z:rj dƒՅLua @\Z3L[ƛ&? +60ÞD $aS9 aW6 ⵈq"h8}d]GXխa2ʁ&NW풟ټWn׿=)eXsf(M ƾS]*3m(j2С?.C uX*%-^tӜ-:Um_f$t6EϷe,,O!GZ6 ,p8T8q Ǹ*&/36ՁgX/NVw`dA9## 6M`?BS f?q%}ɰZAֱ`J4/dj?JmbBTA D/1SX+V|![" >rDT $M|B$b %wFi_al:NaFj`zl\l fI'tBSۭւc#=/v@ٜ`ADLLmІfi1t>IޢjHiiOsp,*M(/gKAM0^{U8$h] k:Y8I{y?64aN^jfhvch4KN)%Ef|@3Pׇ Y7p/Teb}I}C$s蔘@p`.!Uz+'/ȋhPNV Asv>I<<~|ԩ0_ŖK^q9cIeo!%+eCsؒ9N; -7< 6@%F77YyTo)& պ]uLIհLUS3!ldYz2?pR?{2maY@U97 r |,UCSLLݒKUy&9+vYq `Z@44=gD?ii6{[fv놓d[~esλ: eBCAW39vSωJA/;^ޠחٯ AEe}O9,^a <ڪŵ Y+XكXyE3SB.IUJ[lD18=.^[,FdCYƈ Ɍgs쒟G2"SyUA' 4_$NY.l_h{t/VcGB\*NaЈ ؚ-L+Kh:Xuܬ&|6=OWWY*qqtwi϶+ sd^4NZem#iB70M{N֙g!Hx&:p3muQMDgtHN:K˶ޤJ/YMaQCT/t RvfT}#Ki$\XmªӃI"^ȬazӁ(g@)E긗PlТ?4&\r/rof 0 lͩ'~" pUumx׾Η@b4QT5ÞZek|†& (Ҽ^:{@+<)d#ȌiASmL{iC^r v7''{Ndިb('W S; rw'Q"0Ħko6[ߞ?daǟǟabaТ6DAOly>|ymV6pKA@xT0%Ҷ#3^P 3}i)tP|9{XoU]ɍ -@:abߙ OkyaNiݬ<L\{r]2( Ȼ綽* <rUJNWU&L!21٬{5j )Dg:S"Sc{BU?ȴѷ([g瑜4uK'=z>SAOny=0zk7|CP2 nC>ՙ#vFȦH*&ÆRJϙJ?έMShy?j :_)z_vCldF|ݡKjN;E,l0\ 8MШGMV jh~9̳ Lo-fḙW9k-}#~M4q+ c趀Nl<1Wa2|Ǐ+!혭:^NW6Ռ_T ͿűWiBuk6VgOܭSmT qRYmGySmsq{;cjM7$4$>4h$'%4K1ؗ=$[FE3N]˗IUPL3^;y|SNR$IHfL?~mɎ0 щDfuaBQs8 {g?ևYVsql ǂͿa*S:>i;6X=ǷGS4eN8(VkǿX!(zQ:]Q[Ϋ!D M. g}k8oR9:(NF~VHñ~d^Mh`>q.Nډuۖt:i֍^,w[H!R$*y_gR2?gK>I=׳Np -θdPJoEi6]\8ЬhiB6U/ܔFDŽn1Zmr5Bay;QYYblwb8SzP"NO40BTб0uI4i(>JpxI82 Fay $Hk\/m S7AC*<|1OU\ӫOg8D&ADljǽݍz2T 2ڐ۪m/#/-f>:ȳ.FU2}८=R+ 4{e3N1,]o?m ){E_6yR*a/X IuAuG~D\U9v?nAa(9fffy^~i߫,_U*q  f`wܤ$NѲJ "l4=CÿFqq!J`\*8ҽAn؆)*j0 * |O'y#uI?pbM޻wdҭ0R2X5IMEtc_;UO2U2 f1E%phӈxHVHynSErԙKmz z%AC\| sVj]W'l .q׉zvMܾN;aej%y;N4~{hx>P ؍et݈ƞ`z6"ʷ 6x@Y (im1n.'kuž'xE Wݚ^Y,8uӉɞNlSW/'кnW4j p0C/Pӆ707Ւ5 $Ӗ ٮtO`qΧrHgBBv{ql}$€Fkv;2;bb=? NfZc{zc(~&!0 ]G7UlTPTqZ5 GNDer.1m+8C^ yu>_)͍nZsfGaLb{_EtZ:jk,Cme6X5̝nԔm- rMZ47Щ5H/e ;XXXY0nqP 2Nr%oa`/Vw4G# oZKͶ;4;hwHM^3)#Xj9[(Eae]NYݩr&xbW.8}f\h4 A010Y` SI-giqMMukhUmGM5k2Y?OrCwh/>Uka/3 mN>"Vq}Gy+^`+$PL'^iPSM%(`\jޯfݪ~ޘx zOQ95WB eD)^sXn#qҴ[rkvRTvjB"$S0e-{@]ʷsƤ~oXIuDoshBee[_W](}@c12-6/^8&$5J2/lۂOnxMj@6<&.a_V-SCU ܩ dfGǡ<a/Xj;{يա,[ FPEqɰ4rt9oV>!YL 9[t)çV*tsɔˆ&!tKDlM yZA24'x08\m4{·:.{nz͹[CMJAAVk✗xnxFC(KڅgXngc}yM+YWe0{$ɼ*UcE) =?I (b~"0%{( 1U+M(3}E;9""gE~o-ca^_i~9,&eϾ4Rz_U A9mV 6 $ͱG*e= '@} 2N4(!]ܣGS^gr@ǫ,t*DƦ9'@ SH:KM=/lNds(#ٱ.0.*\>T:hW+1{gVi_0`c&ɝIh "g) '[^lU*z̖͸n1ɫ f3HD0DCtjg3"?v2:]ȦY}P{1ģTA6Mh|aZ&)r~W1=CQi"}M0l"FDZwqɅI/Y^HƄWXy@'DDG9]40#(>W[9cu-6mVvI35Ros X^$a+Pi]$-|.SnlpP .Uxέe5 >yivvآ!Yk,oYqzAy/Ti A Dcam8'S+c6ޟs|Div6[i8Cމ&Gռ 'd>&`vU{똦P( 8ϾNxUMPeAPS]@v%&S3_`Tj :XB Tt9Y@Po9} "!SZzH^Zv_߳k+'^Zd s|<0؈aY`X-6)DyY/`L6=rLeZBYG,mY!82pVV~z~ma˞3j89lS>|+m8p6Lf@#q Ѫ ,ŵT[R8IM>%|wp&)&!i`̦.DCM|brűՑV׍eۘQz!9b}R' S[wl&x}be:TH}Cw;,cBNt̛ЀrvO17q@~Y2fa=``EFMSqU9qvs(v24=@&v6q >N/hP@&6:yַp,{kL]PNo@[ۊ}9? V!pdJg04g24+^)>1RO}Ll_>]5zGq EsC+C!iu.ZyA,~E)vcÀÚIv?C4ռ@Z*qVD4y9GEłFA>I|)&b'5<}PNS4njآm(hTJ}"%|vY;,+<ޢnF %8, t4 lQ͍&`p~IV! S[oM,U9e }^g u9/W;@Sh?͹[b+CHK. 6Q)XB<\8|av{`׺®00 {SVyX2vh,of xɇI $*/VdsENp9@mr(-1$⍨ÞBKCzD} e<g^Adze`~ELf[L0/q6K qU#ϖ9bb꼝]CА~F (D>hy -ŁyYύP77V$|Kb#e]][OϾPM&U@ ͧXn7#tl@iUow5dfo*TYmTa+< @"AxcYO~[̜:QYmBLnxIH~kݜ/˭980ۓ塪P9?xF*]W$RCtnۺ[A3P+H/BʭU n7{I$:̲ TmY($-Kmy>1xcDZU5BB@]g?zl57z-v; oJ >DqYf|!̠i|i4)4;Q^95LY( 8ZmPٲ8cǦhWafɜNȔWx?a&N6ySzN+QtzxYUa+ ]S\É8N4YM_9YhdT %WN^^уmP85U!5gFN'=!Y!^۫.LYqD8C_K7%>9hN"4}R,Ag$|:G!b O`-Im^Q<8 24s!,ķ2">clBw7ow B,ҩ#+P&ǻlwj}'*mRR Tji"*,b }k{{ [_5`J-,+8qzY7(Vq(sਗ਼?q6nž^Ϸ#pkٖAUZMIUWh+]굼#I֕o\6Sԝ"שc%=&ՍRIbf-F^N,O9ЉK7iͰa[ٲi^cؿbnQXpt_dW HSk7FXG6! fu/!Yw_NN$Sy0]'r˶fF-`}Oer?^b\7x <ՐAj0SLU^ҍ8tigOh3(}Gp]Z!"O0߀ٗa/ XW-DȵyBtK~ݬJ Hqh^ mҔMd_yQ=HuE `aIWZj7<]hٶ>e8miAݶ bZki&27ٚSK_4ujL>:p|̊MlVzu-e<yŎ"z[Z2(J҈ޗZm*:dE$RU2M\ӟ3Z|LŧCW!Po^+NVeA©ojao}ТVCKv">WclE^PVF1cڍgwHq\&zOwtNUN&DچAmL W~^Bc7/Ӊ7Y D"5zz`NWڈ=7W {&97`'1!‡vpKx²:"GR)SŪ*]*cPIyA~㤉ft?^l>9 ]Qopfɾ ^C4~K iN/l [lx5+oDd$o"ш( Ҭe#[fQ霁Oy=O\HXX!URff3hl$n}+Y{rA3[-}Fή4)j7L;)/tf"">N~M8 |\Kwx ?i>1MbҎo3IIOM.v|K;$Yy̫^oM%- AkknF"(3*(HKM~C4츹>59t헵{4yD/ڀfөaNdO.ہ5vG@Tf[{'X1-bh!ii,.;*BKݩ-͡,1??H3t[EU$GR@DS8^ Nk[leִV,8FÝVtrl{gfW]%& 9*=(Z 4tj&w6U]㈒fM.jq!}\|UnD )xdJAŃUuc*٨TV1e[xm>aW_{lu4 C ^G7 ቈo\J?T{3?/IKs{ip5R)umTZmR]>6yQ_Xc9.^kkMq {\O&R'vx\f9g8lkuᗻ UpIZ>PݳcLY4l[іz՟2,O}' ׫9l;FHmgKx_ESzcC`icF3_7m@2%Md n'/z!q[=U N)4LaACб&N4F| }~!{GEA<2>Fāhh)yy=0"yEVݳ+oMD byImܟy~2U3Azl` HI' (4&Y*cL|pBTȺn-~-O4ºd~ (rbuѡgwHEt7Plݖ( 3J8/:U &1^ ϐvf;V;}r4)ի<>Uט S<X/6lvoҘ^gѳ^Dx,MMLzwy%?/W_e U;[(W5]UEky6a'=L{tyT#ig88߻Bܪ[cܪu!a@\??J\}n ^)sw\l&?hZ`28Qu27i"A o&qߞ33[ݝ.[:7Q-&̭5En2y*hNHtgA/e詬ڤdy4(\8O"ers^w!ޣ**{Y*iUme5oG3*-p\ȘJSp\.^Kѣav|f_hI0| tCIJZTH5O_Oj)8|:ګ$qg D^^%Ɉ(s\Nt$;.ElSfOT^e^h *-ly ͩik?#{UbJgplzփfX7bixӼ?UOABv-hhTI@^P @Hoe*u_ZW:hOxM?@dBC>}i,]_׭S[W{vn{s K$ 13r$EAV@ Bx՘1K|'Pb$$D0IP"B)GO-]˩o7eFym4 nFß?W|෣~{K|q칉oFiVzs!4MչW[|ݣW D_T y؍*~3VraTSUɄ/bmߊ=q.dIeyCcQDU9Ї @=ǞgiRDD,ꍭ[ͨ7&F=/@eTWdVqB@`"kDvu4k4c͒M)Dzz3ݏ&ۖ3ģ؜ 4oy=4H"w MgbbL,aBn ~SvZXV$&2?Jb^;xđ$J ?y&Dא Q%;)ejnɍ$(,"Xe}kp Qf^+<0~ |/NG!ܬ?ڌ5ʹtSo; ;-^Js܌y,=/}GІsE=hLҒg$w8(w+n*vsgTnSq7QeKuJ4.h@ϲp4ߴeyAJcӲmb8 }]RO$*ibqxx@Ƨh|,Ț("aPzQB< 9Y%zro[f:=kcLnjcVg\7\a. Z;rks\no !%C'h]j@>z77]J 쫠Q-iDE`3Ұh#IqΤ7&.ᖘkѠE7e Q%˰)2ס FxW#DC`hy7M4SlO E@D'.J854<BbL|v 0MPD5UN-b픦SqԈ'q “'L
$Xjx'&)zJFaYÌ"c01ێ4OOl{ipښL'MQw % K/ kT};+m-jke}qw1%= 8d~c_^YT5cE3^3P2+.3 s :`@@"UcWp,`f;h 4W/0 K"m&}fA:^HC=ZKg 1嚆?'9]*H!M݈l`UG$ȾUbjXU5 d՟l+YŤ MAJZ Pނq i0.":-7{9~㷬w2" fՔaT|V -ҦχZh.t\nbe`@o~[`u͛By8J$Lr!fQeDQ 3^aJJ Go*M-6I<$چ!bGrbTkhނqM/(7K0A>E) jɸR(/%2?¢Dn%.mrkk7fIQַװ87IJ~0B?MHn5l*REtPI̷)iNHyN|~lVBwELl0Ǣ* LzmPC,ĕ_W lac RUYg TG&è, V)YEQ@h ONdWuE"F`s͍ISw XRDnp+iF$v3%HI@?DzvoBY6b鄬j}n J~EsH2~QѷDMcR_igYDEʹDSvrVWms<CJ(`QfUH֥y I#g֊-͟ZfǪ1\\R?T쨃h6_mfqTCtI7/ 1P A@xi_ y/}\4eDz5դ쮇0=Zz/װf~6j^ : :pZSoOhAnʊ84K\n}J ;,Az):$Ɠ5Lkgeo7f՘Џ1fq+ [:-P*%H43y1%ͻ#;+NtAs rJE^{ea9.j\KG/6|=W~yTf5^dN&qt,_LiZForhT e{:̘1gwR*5q^XPzgu,5 MEt0 };5lbԞ7yœ[xqъlulh~ xVy6nW)?jiՔ!CuSR7p5E ©"ajEg+"Q꼣^>4Z,y~ Cb{鲍U5Ph^k0¤;YgF\41 50֖]j$UӆcZ䥒ỿDY.B-^9>QU]eU$e4CiaVLb+89rІ̓[ô ln z~Klv)-@ntMRi[r4L0'$ObBC1/I?( ]L0[@#< )6{Ũ7r$ W!4Gt,[\A~EnQ^2# (ʊE b4! bKV=hx˶vêv6qhJpS/:bXg,F/ο%I1.%KPT٦Ml[ S'B:]JEAaVS6d G'0DٿuРHűE!Zhٛ*TƿNn!QZɧzp;(N@E0̍7H8: h c~PU<(V!Tt*:8pi$I)] -(bQɗuHH!˦A\ş.+ -P׃fEAXp{fWƼWXV}MVfq4V} zE ]FF`T!)e]_?:^SRWEh}T5X4nl=6nc5=Dql> $).HS δϭm7@#gePz'I"B qX}Blu0 I Ǫ]{ }e+Cy+5i4X-Զ53g]{3?̷ f\,uqxk: 1K4?ʷn6ΠVAj+E$lՐa6ҌFc?7$1.)~"۶uY?7&^X?tO)|ͲW5e~j A߻?o4 .֧1@Չ n?bD}-TpЏ,O">3u:=]3QGo/#E4>1nDtg `N a"C,fo׀yD[@MK2&:Uj%Bpn(tkp`\*TDsmFC#9FW>>ʫ dkgZ bX6_™ A؊O \(L4/Fʈ .OkQ.YTlW6Sc oQ9)ca) *677 ۦ66zEgDwW/b#4w+LP 8zNڨJd%ZEV[x }2X}KcUۢ~5ԯ%n>Q  XfPk?r_yQSŸ0@G LOWŊa#U Qq%j2,웩84 PP  P_@T0A@ P_giB n  ŴBݏձ :R =5[/q\>̃ d00q"X7@ ~IVO~<,Ѥ{ڜ90p\uq$RQj u|2gTӕi)\6A ,֔i 1p 8ip;i_Q9#piL$K \4B," Ю} @a Q2ke5V1U?/nUY{QFO ȿ3ʾ2|s\5,<{8 =?@!sB|Xv93db2]#o!tP@= ~Nrlз](׸/R7F?7R| D4Đ&7Du=Cfyy۸Dj^nڦtTԈKnV$KKꯡY#]l>m'x,ZИ־ d*Y rO'0 \;ϲkR׫#;BVÐ}[V|K+!b 4]⿹7CM&ִn|Ȍ8*ˏdirsQ TX$ %*LlÆu&I/Øz*C,t{jȜ^;N\/7%845Z6nf9worpœ(xS9v|Ҙ}zOӹ4ɂ|t<nljY/{"c܀*}LznnX-w bs9\0TKF씈{F~љY槇'nXU0Gj:h[B䒣g;+#t#cfAjBgBo`NK VԒ8,%OS&mTE8+״Mp.yJɭ- ڟ: [u"L&ƭhP12+L驪' -Su(ʊVAULKsc=O64L8Yn Tfk>,LyˉE4AHشPok!"Ь|crI,۹r駜.RHGv,Q%9$lKosqWNgU|LOobqʽOjz>kVYuRϢ+\cD?)m\a8Llh8IUZطm|3ƃslDO'-O|K•J\'?.pFL{VINԉ!YB?jwm,߀Z1!z3bıϷmXt sg1*4ii.KF"+C>ǭWl_`"]f:6Lz;g(]̠! =Ș;-lgh5Uo왮qM-XT648D}Uc,bijFdy1* -HX<[\doe([Jl\ǸB2*[hfu4>9Ұlqhܵ+s}pU&}O.N1WfۋEi⋖؟.z^o-UN| C4MS$#fj|Q=3(S{nYw61MY. [u";j1Qu2%C-4l`86#zfnZW cxT(9?08Ӡ q[A& D@Ł,S0B&?\3:x (@35.$Z>}oy8nv9nu]܅3DaSiUnu,ኌyi5ħamcޱO~C&P?F4>-,{ ?.)zp;)[Gd}<}E#{si,ɰ(ZH +wIcKd2T3 h M5W aZE[W8bZ&jn\N8Wy?8_/CUcb q"*Hx: }J*jAE#[E,4qFCg̾'AÁ {6DqDi9t~ ")94)hY`hhtNȟjPsKֱ YNi<9[;R)|s2'uQJ Hfe`u]aМtLg3[8< %O^R%~S`>% : _m^da?OAœT [6ܡx:إ3D_ ։m\]m+SK4$эyuO羹^K|tMbH&?b~rH$D쯥<so tΙ .=e~qnpzj^.n o`F% qHA|զ9t"&fU:S]:CH`3<5lbSu \~@D@HtA  4sfܑ BdJ&VzN4sEYP4jhih6E.~Š!TE*Hf}(u7zh&b;X~WE.47Yu,xP ,:uհEDcT)}h\ĕW^dIn9Qt秸uaA sŁ7_*ĐEcuNyṫ1~ Q}p~8w|̱q1^Miq5|/uV[Ld/OqOIOj)) Zz6ETC⿾|iy!I$ . 6B A:8kF^Y;OUmȦi8/$)ĀEM :N.Hd={`eTqBm # k =\02(12 c66ь6woԸ3 H8^kl 03s)kVjf$c2Q,EI4hEs!|I0qvzTb|դS, %:m|>}cJo.d?̟`T%uӜv,{|C8/-lS&lާWmC6uoq!J5MO)~#Q#:>;&WձqţrB0j~/Mն\mg UoWag,zB KC<܋\xr֦# jDVEiK<7I>M4:́>_LO!jG-=ٴvR+@W%ˋAQQdh[;N6S/R$d6ieB%lD^fqlg_"/Ūb9l)񈝠:xn\Td@U cv*ݎ=H[Ĭϰ5 Cl?t9DZ#]}~?t3zFK0*ʴ 0%>EQO0Xh i?(V׸+E~Tm0YGV#H6aw&ĞȂ&`BŖÒz]ܜv|SKzO .p. γx6nyƾ] y:q82L\0(xeP5 CN;qN7LJ9D=%jk=y_5 K҈&]{a1;/Cc|siM.|8\Rg:^}L#Xzr%v)R;v@=?/"MۉhJE#eQ/ѴUl|)2nr*)7=oTvB͊ErÎ}O}0>!7qk,6HC/W?UMZoI Xoum4\~-( +g/bVaXvy. )z0^@ hCa[]bD;F>W#j"p`e(Ȳ. ZC<4q"A :]A/}DC5j?/ C_.[/gew\&-n6<*fH+/h A7B3luY+˹SF_ qVxwDx1s&Ww[OQxs}8w^w5:ʴ2`|HK}rI7Ҡp]4DM7!џeTC-4YY\yB#-03y{\C/wh;vK-uLۄDnjF_D4=tF$csݲ=j J{ޙ{5o|99>N3;qpmqW6\zr8 !4ô#:ڻ\:xsn=h oσP? gك@8:WisDjgƛo o<$ڌ#:0Wǝ6 Ӊ|?WIC#=$U%|AAYTYHrw$i - D6eo^܇( ΙC?MB.%MNJ@ aRomY9-\L&ǏJ.gQP<[q ٿlֳ|WDc23)o2nyكɬ@8gqЀK ~64؎aؚ?ҽ3\`${f0aGW|j'`.zkIqeW^BW]`QŶH|=pI\jM-. hIw 5G 6شg n'5QoWUT'@.τE5n'2u] &ᰅV\X.F7ɫz3o>4}FN8!1e%0nk-4õ$?I۬0smuDZ4K0T3:]EZ`P8:-}>bg όA6}3 #S0$HoڦJ$?$E u  ,K QUK^b)*R^5˔AwLW4oT賜vύ$j`f2sO OSǂԶ{iagQ`i>Xu<";X8=1$D З._.gj{ŽQSZ#9Ȩy};%e^$OpZeX/_yau4MaL|bCi:>)C'bq+ Cl`M댋71W1|/H],ń>έcErFW}?~ևvdtrx*^y?KӸt'|t:l^@UZT{u ,:=gz. ?T'\ %Imh UXg}a2G=°-XN6S4]3Ga5+b$r2$km*'7tU[%4d-/sUl8 ;J=81Pntm[5't't{ >o^橫 \H80%lڰ*Yx>v_ ^R)6-A0vb%Cvaqq+RBt$&;<هF堍ga&07,!r=QyCw vw5JӛhLqD 3e:XhyrB/\| W.PhЬḘ;Dp:Vx>Dc𥗴qkvA3C&`x6 42F1컔,ezx03f{IuG>6q x3\7ñeM "/)3%4@ܔvFACϸ%YТf0C4-̊]ᢞG oA ~6bAф*jڸU^]J}<7UnJ%IvmQ!cC3 y6<ŴfRg~lӇ->^ ;qu˪nhמ,K].3e{.k1~Ww0cSs/p(-,13h:+S'C.oh͇^ɢ͍U oKtAC'i1ԃɣB2D4v/&xz9ˤo/ie1&qy8Mq'wwgxbBMl/\fY/)쮠Q5PbЀͭ+YN^$-{n?0S/wI$&2soI2YIdM'&F`U0j 8&A%4A3d>ҧ?D7.=x`pzNI|-Qb|C(^/(yCFc6.0-^<.f.<2881(L@f"TUG}Fs ;!%s ]!"uh"O$BCgOĕh^|2<$?3;.m§RE횎sN4*xiʀ548ގ4Ι4 <[#dP+"vp?=KWhxRӦiv^dZX.s65 ;EU]O(,o2xvp{ClC4;j'!b8c<7Qg%1N@IX2?lj4Χ{u&1`HDU7+z/I plȉUIhC@L,0˷D|퍂QL>@d~'$ M#e e}hmg4G:o($ҜIEOXcU\@|n>߭/]0MHEAN[q=jLWA%1]TQs p&C xn8h1&otVKc^. `/N-xЎ0ToF|\* -ˉ?.]ehpoS]|n#Zպ6EMeMܯָB.!!qY3h_YPDz9d$ǚ" >A4x8ĹvP`At*k&3)Jm}il}Wݾ۹nutw9]Ӷ Kx]:NlA > B0JRyR @@vHP"9Đ|P0>d> Q@1K[ސy-_?>,l_zI*:~Y>,Htz{^l|X\/'>ꙶ)SBd}w~f;idq%|4{5q-QTE]PQ|BmPGij!yH ״*IPpM2fwMö>jp4V6h'_*,gXx<=L*zoT6Q&Ð,j:j9z 77rM@6/C@ qlKՉn]HdrM8(ß fH' uw$+(P4"5֙ }(.bGw;zy&8mi ]|1S|~sawX<hRY1qu_ "A=D\lD:@1 Av<+4:bB-**Q>m졙R9ӸO1o7MJ ՠ۵.i`O-srE3bϸ\V;dI Md0zD|.N[e10%͒{*Ոf"bуbmo,TE=|3E <(0b?VzP*8PJN=T2$ cK9-)|冫yI#$ch_\bbC2hN1WM*Kc11)6_gCutGY=CK vɂwdUޱ,<(M Xws,/X]jU՜ Y6M 昿`<7sBJ'0ʚ fSg[Qe(m15:)@j [ę0@4X26`M=؛Ɔk&Z>"?,b|4{c0Yt9wd`\Ӑ; I4RjͼILYTek koݘ,|]7`1bu,"<|D(TGK\W1cEoZbu8L =^olfjN]zR~!0DQiϕ !y8PWMB2HTATAf$} &&Lf&[F wD !ps6UM/)af&* CW`ͩfLmS%4*pC=H@m(g毶-  FB3ebL̠6R`Eq\ @<~D%.8Ϊ?c 7DES5Jp7Xn"oˊ &˳4F쇀Vy4~3L<0!I!iw elôȲ n<z܎xFxҘ".!/9 3/>P&k#@h<#3yEc>jxC}!af}MɈF4*F6u5#M5dR-IQD%7f?zSujTtJܗo:\DUZr(,s:kO,E䔉>+C(/ Z-4˘kbaG^|C" 0:vȼgiPOVSd'&,|=9 I-V-_DYbx,we}+NUЀ28ӣ:-_iU\iZ?$>=*L<^y:fL[I'Û=4*҄A8pl!: z\j64,V-UIHXD QxY7Oq{ey|RX̃M24MC Im &dA=aY-R̒(͙;& Z߷8KiC,Go^X4;JK2cJ2=Ioczv&0̳ayl1Oe\.ܚ%qU`HJ,/5(^B/  PEtl'U"#,^ 9qX*I%C> Neʆ.ؘdS( el׳!b͆o/8~ql!?waN@6 j y-,IxYu kcUE10i餙0sLc1 UqWM!%ҵdP"V߽y&,f}JѰ F~RELs@$Qg$bU1'[M f\?QqoRH@DSh|4yQ)+Yh3hwcz(Ssd*IbŝKs&wu}=DypvU>U^jEoI81E [qMEMDG`3 eֱڮx'eK"@Rw@q\Y6 opH3Q 8Jq$zڒ.q }$  f\$w2@|./Y4v!NME䬂7DS􀏦3y7ǿ.6TI䇳_~zjD!68ƻ~_G !?L(WG4p%/MZ|P ,*rFnttԱ(P.&(~>[4JxK㰴Zcz=m烶Jxxv kZM&Fv{6  8 &Gv]{V!IRˮ0dlw,/1 p,|UK'>/ė~U- , %8 K?+U˾C"9 Ovv]]M?;~iig.\-Q4^0oFYk9& U66ay&a{v5UF]ș稏Օn!bw`< dʨTw4e,jnWA1XXSMXr['/!Èά$[fqZO^ovySV*Q/Ce@hq*d*AV0Z?U*ւ,m4S<"G%3FfqvY=l[)'\Qhc(el!:eFYbVq cV??r .S2K~׬#YfHTUJ]VG!yZ`?"o}ovS P'5]X| B^rb %gnq'sR}YGbcAWed\5>emL٧M3Xt3LTqK Zk/PX)͋G7:rFQ4praL3{Џ!&I3fHUpKR՟OeY%%DY{ ($e{fzL( fQXQ,\,^q&%,[,ө i4IO hvqf=R99T1NvcŘ]7ei>P C6-kUܱc`FfklHfFդ) lCp$"sD߆IWp0NvjXΪߟ$aQT{v>bVj  ϳ7fǦB;`$Rr,V!m`N13!& ܯ&NW/fۦmKl/4kK!+N b׌TQ l;TAj&rm\AyitZƳ^9pW\;ArɻH>eAv0@#+&UݳN{~RK0MVK:u} NEO QgI ^$zpkn{U DlWkV "Nyd^5Ex r&`b:j)xYB&Q)[9rxvSBVYqqElR%+)i ]'$:ḇBv89 7 !rkⶇgx}<3GSdɢ1qKv%WSCъ#YڊBY:N0I89./?oד|%kaU K4BQ\e0"jZo@IsKJ/e k|4IrZqYGkamv2mI=ϡŤ 3B" o9}qr{cFΨH'Q3, 78eCn ']4iE5}VHg,K&{uu!%Kֱv\pLãg2Jk~a3hSMӅѨD=Ш\PG "ozG{ (Xy5V7\01zhl2Y_dI'S` :#xM [^p#38{!fuHpR ǫ\WvM,ZWyMgH ir '2o>Q$Mdˁ*4kfc"P h>j}qՒK826I!D7g YEq[mIup 8eU'ƟU#(z-KH$7B_Vdb1|ͪNWy~fj-<n|x`r82 )2wqp0;ߴ w:8^w{Lt=}rA#[/oNZmmsBġ_{ #s-VƏDFs>'sRY!V114iEUlL4|VGq3^ [fit1^V:ex^4Uƣ&)x*MSY ~NHf."n mu(dYbnfjj.J0\w _Լem:Ss Uڢ8|6Cs{ %la?Kq .s9&}}C3V_ "??zB g$:!j{2 Yn9Smאv=y♰(h6-4>3BÝKqF^~TJo : mӎqǼQ`栞o[I.6 : T yYQ}X`guIbg}_^  ;d%ۣE,;"Q 1tktQlD~QHbd1*yQ#vvx"0Kd .`[P,~9`(7?6έLSC\? Ϊf3sau,Y-uc./ 0KRŒ.Ke@9P ˪YNɺ5-,eE?MaPq^ ѰNaYu {YX¹[vHgWqKr¹ϋ95a f='N ꄲ*a-ܡ煌wxh /=S>N ujIjO4k9ǺެpM0 -7dC7w%(A,OClvh"GFE@2.2/"~#QFcK^v*\\G%XjߩRzolܾCsԘd)/z.Axdh U447ӧObzYQDB6ԯ\oiC_ɡDӅ!O\>sI,Ϗ':Xv]p:cb\DhYhReE3p;,wґq%]Jz m6ܒ)/Hj/%}Y%fkU#2>Gc*FaeiZ:}bTD֐ƵU*d仪1zq ͺ_2 i"u~#fo겡ඍԄ؀GHjk H<:YKzV|fކ򫭖qdI;pmvf>hk0(]tˬ7Rt[7LS51GFnMBx_Zpy tL4jfrd T6`%y\҇g2nq{u5l@êaR'(nniXz-N|i݌"i8g ~eyZo_ъO6 ߞdW#|]õWMg,ԄUq'894mG2<-jC`I7^tu&4[k#8vrx@&:'\9<OF.;zw]G6p׹Dtv7é=O0z`x2ak,1laF҆cL/leq^ 7Th6iM%k+ hlۡnaE L4N~TA] Xg\V;օ)bǡ#WF grH񄡀T/~;cbhvR&qMl!2ҭ@#oqU2fv_G0"?L'}Bm>!Byj.unҙ3 ] !LqEj9q)w$E)AXd 7 tr'uѮ8V@4m*T2;C9ZE 128QG2fKO4K }zsw0%S shr#gjT/1eYGCеWB/-^f[BqTu;0;ŪW䱄ȓCPh7:-.M$o)—FB)W5yfcWuJ`߀~i˘e6VA`XBno~%X*IIUNWeZi\9kȉ6%< /U5=yq A9]2atƓey/lݝ+]צiXb"'s kQBTtb{ߕOp鏖q;(T2~V"1yH9,vɧ@\ Eݦ gPd4ݏFivż$|8^{nJ#s1(h݆ bcS#J1'ZNI ; nU/AaK8]ReKuGp!+\( 4ŘWͷ`]5='\QW*.Ǡ+ntT q2, D @F1b`V|?B$qP}Ƽy<"b:>+HOϖ,aIaƧ&Ba VڤZT.;.P,ʺUvt=˽EgC4}~\?uu'#=!=Ӝ^.aZ _V'@?ay"bviLh^J$~~iӞuV!,O͏1v89 G[hNG8aR 11ݫ'ݔSv)ຟmK"`ҲVe['kfbэ-9`ݼUG)͂4o}ǔAJkj}rk.$ŞI:UR9LyL4aTbAC20kYA~LЄyާͦF5U TUF!=$ʫ=5#5-6K8p0d#+W r ]d,BA?̢ݏ7V=Zxm/Xpbe EUp9R#2!8`}YT7e/0=Un74bef3w=Hj# b4x>.{3Mx-gT ~ }MS0ѯ(EI"ǺK"4eGOدVќlNAc-4e~_-05c`LuxaiMΉu{(MLȶe8 Jż WI I5"C8QPh&i'OhyW414oj v&,v\CzŽ VT-܈A_m0vw2tUM4Μ@t'l1 c+B``*'5Wzudi>UxuY7{hNXuv`긾[ڜZ=n֫ TlWw6+r}p EV-r_,r۱%E "{VR%u֣Su޵L 7EY8  o} !fPp ix@:E\fX ŵ]GNV^xzwEҐMSE}XF;"\P+&zcL@,t:*1~-D Bd$# ˎ奴;2MY+KSbřXKvLdY^*X1դ}֫a:;S4K?xj=zUbܠ GW xAm4́z@tJ̥xnEf.AST%*WUK(tI7,-i.Jzܰ;ZNq`ڣQS q  <ϐ烈f>LU;X0뇻%s-EZڞB<:Tld:Qk]z/fPN2.0T9 4'$Vr|*D3l\Z|Rq+~悹лhWx` M!DXUZoVYms^堈UypKV3Ha A<fwDzF$cؖ=?i}Z:gY(XrB|a ѻk yCmU Yc߫a' UMYֹmG(fxn.&X*t 73ICDr.^g:B8:0(&S?&Tѱ4O̹=w MFǸl8tX=Z44 ILCMwOF#al!:=5bstڨX jckemTF<']_q9hŞNyAN ~P? ګ>lO@˱b}˻IM<;~xٜfǡvTvfZoc NDWDKSltQ|`gl_\3O \%7ŁTY{| z1 AU<Z?ۙHCűtBOqH?C4uCC LÈeJ,vQ6E؇~ >f{t/4iSԇCEcDh]SR`zJnM^bҒq^m0ݨ !j(TEы4!}&fz=D ʊa1*VgWmI1IK&sߗf}R[c=0^n7}X%<;yLQ$We H1r?0rG,8clStMp8 ) .6ֱ7 F(IӢh/sTL󊴯e5DDbQa;͸~xNV%[sFlݞ yMsYuD?op xкǡS/uCǝl*v8WO4$/:hj2TgU TP ~_N~3B? 4K(DN'v}{now!PJM3۵F?x)i3n~S}j(DA5mѮh%NA H.( 3D!D~zI8yWK4|bww}NWW/f;bA U4px.9<8{)σ('um̶Rj[*%D'Ȫ*@ <2iPiM_u0<*KUGU+Gϰ/%YFYl=_nc;@1 ^ OG<7 gho7gLg33?-4ʶ%Ey2?ZjئȪ<2n/׷|NqDZ_ߪ~+wYnvruġ~eeSFrA46( 0H/1ws Q jꜻeZZvGJԃ `Re4Y5T6jOgɏ!}WjO>1 U%%]tC|^⹈haAIO g<~?wdɎpd&61 EȒԒu!sN؛7߹Ktzs\WfLJ]UQ ;b7 b>zsXc؏B?3fnZRXֵ*!_ AU!k,"%? r*04+HMvٗ|>?{VU!Qi4:k0:UbQ˲*:8O(m2pFA'bgԫ0l|s{"P頕/-uV }aെϰք)00gZӕ%ȧw~Kb 0\c|b^3ǵm!ϴvy$ ܏|hPqJ?n\qKpԾY۞0MR(Ip@8T6&ӡ7Oj~Sm7P=Uѥv6"&(_ xub:6S Dܴv"Buzή , nN0F6 4a!vryUbi|im?Tmʚ+VaA:)C8x 8̽8&kݷXjX #?pǭPHuyq%¹0UYi6qkYEڼ( Qy CqL.QIgx`Z=ҹ jTWuCU4 |? g}H<뜻K\5:2}׆, 4Ggh,XDa}DnR T}.WkҩIMN=4n:⏛/z{Bza-]=Isơ5?͗py~XXXnzf'g8+ei4>K0C3x"L>s\ہ3)> |( 9`,oI0CF̹lC;Zg,ԇfcj\TB 1Ge1@U>hZg×`5 vOD)ơq-i&_~r9dJ00;:!Im b%`IP^>=u*9e 'EWKS/IRiO< ,}^of)$zQ}R3fB腀h]l 7^^eGtME*=S03*9"?ӴKsLvL41!XNI~Dx%̐( 4P61m膆p<-z@IBN>pP Z$P  os`3,;} ZFB^u|C5$}[FCŝFL'gPAtfN2:(g=9Ձ{TO{r%{4rXY",]z.lu j]ԹBz%r^Nk&1U5)@N9QD*Erh @>Wڤ#Qg{yZ=3C[ ?kԧb$I2K/㳢 G@}r ^}/AP=Khx}CT,$0JPݕ>ltK =%?)Q))iFYxryu;40%]3fs*qv~v2okpO¡ į/xQ"D1M{s,,#kGHbVλxl]MZ]BFMI>P08Pɐ2mlT>QDFs{ySFB[N85T*iz6|n4L!x8+f_[JsD,[7~qXS{QG"j+,Ht#cmL#F@5n*6L<֋ʎo,^{/X@L \[(cd[ٟ$Tx7 ,Q![㪍*e]dDf~@MgG"W%?)hMEy|IB=&//>nʓ ]SIRvr;!^eC;p].6.0dC%.(~}ڕ@op| 8jL!>:`!ܳmHk/8VC.8ԗ]L`?jIy7O" ^ 8 XD^F]4 P I`]p>`j }pƉ354}@x] T.媴@hyX:aAWkv7_؛f`utM1؍;4dyp:@5rFmTSPMۯX:#zdqQސ4R4VHfG5ν0i:=^:^FaU#TC5-Bp >Q"ST CgG% fQ=iwAiը0lz<(`+δR9QݏG>-<I 2vS_H+h9ZD@߇?\YUuB f$&I [ cB#N(%^jr}`Z@ 8n; M"^UVY!rs8sx;}}%*C4Yp̖>gLRt8ywjw< g&?n_{PH4QZI/`>vQVm .侗Y dDi+{wy*t0NF#ht*_`?:e6 4MiOM![i'ǕmBArZ7䴿&*-.Tj7RCMK >T7mT3f6)xPIQmPTP+fW )UJjDɅdqsDvƝjU&~7#=p<Lj ߉+-WlY].v}(ꢑd~2\N$2q\SQT~)"N>yIꈊ 9Û e@ V MiNλ!+1W 1{cQگ@qˈ[AQm T:2tx3R~ ty~Qy/7bo./wJM@5P?hIZ]ۭz}[ $.!S]F(ς C3(VXli*T@b#8(6@NX+aX34N#gծV$sXDk0ᨊ$ˮՆQjU?8| $AEB]Nws4ADzɺD1p`a ܤk`oW[XpFV,=2ZyaRpC#pb?q7xb@TRĸ(3R4fw zz1' -O[=hrNYչGsZJ& ݩ 3zEX`* jPM=NA=S CF JkW@_c`zWe؄KLu/M$qfwՋd-1͹#p !syG~=W{6}Cx47*D1Wzd4s3n{,t{} l p#ͽpU)NL-9HQ%Oϋ `w9P=ypV; M! D iAhR}\yW{MNiR@Gu} بȶZ goqb jv庙g#%N7{pN^+ThVB4'JDS+S0n |x`xnǐ( p :UQM:Un 䱟òVh5-vBhӼp1pǴ\$:!l"06B /mvn!qXKr:8yQQ'd¹ܝO| yyf@6\|j6HcJ {,RDܩ.;|{;~>E5'6ƌ=/0^Qg:w>ws0S8)!*Kj7D bLth bYVFSuF.%N(&yRt2ej:!sXcN13yõ#~c"%Ĝ9KSӠmZZuowo{0 jVsbA@>2٦JYq8#FtۣC3 }F$E1iDJB|0 3 Pl&4`,CT_`h7շcu:)$ED(c8MzR&_mW˫^_cNOac~K"&(xR/2ҹ_~77X *]!t]aQV/I|vMP#l:{엧u;#aLi8TO%lbU'rAK4M#ڣ޽CB> ;ڃЉ6yFXE5 $.sb`6ybqd gFrqI|*[$#rU$ U87 _#,R 8<{[!\7Rt )@f!b%J{@R1<ެ5@ O˨̨7!V&+<mEq:/<}w3?Ɗ{GsM>Y$toc9EM}cp0 [ƳO lbn?;ZEaPН)1wEWy*jy.SyXD8 ¿$b1v|\̈lFyL'Sb*yދ58g1<)0 O$-6w0Ķ#f6]F)o<=ZnCQɘA-Pp%^m*iuh"?3|2N$iv`z ݳˆmء j4ώ(@FijHʘm>9O3i0zO?YD5Z]Ѿkn8Tk=0 =pK^8rj#~ T,:H=\9p [\ fwWjx3JYfQ˼<͹E]+c1>Lӕ㤷TdY9/F0ĕq묏g=U8E(ʼzlr)  fLRpy'[!"q5)+ WߎZXkG>>[X0/(v-~5~FfmK6ܩbtSbIUUr]oVoKtI !4yXE<1ؘaikhĵd x SU1 pHfU5UBf254wUгZ(WiNUn6Wf_WZhh)jgL)EX鬙` HKEsb>>|؀j<6 7vCw{͊ }Jb-B.ͿsGAvB0 +7Ё%+h3jXN*14qaGӠ!lVe6N>#0N\gu鮰X$#7~xo#L8/JA(RC-Δs#'Oq~Yj fLZBW>ω lȲQGJG BE$ :eetG[Qm7.ņKuAomp2xzKD"⠪9SsfHlc A0S/A4m}?#S\ٸ[WfͶ{VFw\Ys\Gr+-^ P`w:~n{ 4Ιł#ez(Q$]֌FszglrUQչ=SAbB49 qmI/{;ҙ}e (hAyVܕG)!cb)w6W'i2oT*sVTkBih+3?t]wOUC`e=oXFA3Rf>]wr !l̆jby!L2,zAxƂd`Lg^3=.KgL6ib?e(X))K{v ?m1-g:>xr'#!vU1Ef+Bw3쉮Ҷ{2h3Cҷ_-F:۾зPecWRpVf;_IgiSEu) D6X[_/ >|P#N\)N ٠}/o!9^8&8QEptVᓳ90 C2dbS;kQVH"Xz(Èe*e[T*8+ N( ^%ʒ.p0ܬ+4kD_oM$ aqMSg8)y [`}$ u˓ڔ@re+(KDY#ZK>1eכѷi|ȼ=ir ~0O0,d{8ņDG2kjƆK<VJᲹ ]C7ȵqhKeb P 1o)&~ -줞rh֥&LFLqE~^TƁn-٭Z.jdm"k:tm.9岙b(4?'PȉrE`6SZtX嫄 kqĥe걥4[D*o݁+$t{ն p uWooez*(2 :V^֕X~S9Ȳ0*͂A*E' &فm0)Ʋje,E"9:Q<5Cwj:yoGQ vBqx.PU\/Tifp|.Th1Uq+BADXs[t厍|笍orYx_:Esf[, qu3$ i!Cߟ;ǔױ™ )p|cx.0lݔ 4{x b/?N:G3CyS=M`'Dw̴4Wc/Mx;&)³f Cάc NyiRiÀ3XkQ|#<qT_`R|X/8xE,=y|Jln!Z/Xz:'57j^m(v\~Kn* LKsH951Ĺ/?i= ?2<~%^3=:uYW56u{^~v65:#Q]ׁs]ؘ9"S7m 488-6unBʄ(aר^!CGYyzvt˲{y8+{USqd qW6N\aQˮ+[T oSvf9p6;=b+3 EG9+tQa%N{ϪpR.U]3t|Cs8E$APp8*I+~x̾͞IvZ7_aYCu7|ʄ˼0Ѱ=IGGѤYQez|Y5A-VL5)r&C[Fgz|"𔡗l+~ty{10;NDq 7 XR4΂$ Y+ vijXn/.uEReE [ϱ'1bѸ]fqxg4oU;JN,.YUL6n(ectüc2mvXyCH%IN%p%vYE3=v \NUL$e 78 )hb]e6 ĖmbEiiDg&q-=3neQ'DWcx4[hnՎJD,V8u P*I46Є^L _:2Z$.$M2;ĪȢ(Ӈ=Y 2%/q)Q>[Y1[[~ř0g6!IG~/ Fq&\vߏ}n[8S+u "|j,~meh[ M!iLNgg*lw# "Y :$^R2_sf4HDIgeA^.h£ "aWL'*gyۃfb✙](X?Y0N#/(pӺ/zIq)m_Rqey֋gpNYs@vA[2By ,{g^#vqNU( Ϳ>0j[acjSCFiUhF:f L3~^jyՎm 0vASmt'pzXVif*k'f rV?~;,,$c q"Unj{ܴ{2pPTW!-\;yi(:XhQʣrLy_I<IDk5Gb#)4CT8NY6N4DQ}Cu@ (uf kful2nAJPRȒ&kCְkX6l5B[+Dc.MɵPWCm˪aJ uj1~^GH>tLŘ)x Tj5>z0LR!¬0[G˶\w Nt/hպ ul.9@,#ɳ4L>"(UfJ}&Z8^D!hC #«@?dU6':' 8Lpxʦy&T!'F>4fhJY/cpi2ŤH ڗ)զ`4˂g~o٦Iŵ`P1Xz8nf5H)K\O8C\M'B34IcI:[hx{lepj&`<=wQ qU黕v]Ypqd55N\p^{&6"Ⱦ7jq;Aݝ&r!@zb{,NKnqu?c"4N"(1/ָnܱ`thiK&e%2uT,H$a%&hWFMfKb 4\Gu 5Mc_BWkWD9x;Kf'ZnB^76nt- CWHV%yg5A)˺"1؉J^bL,͊҃]E=k~]N;3@}HYl?Y7JO[znr )Y笶-oq҂@¯ /$`7M; k`A,myzW+fCTN$h-ۘl ˯ T)jNv,4sڨ 4y89CN P.ނəq2Cm--'8  w,\*/oO0Δڍ#_v Aui+Gh;%B~: FsS#^}](^$˺ʾ$ 'mxͯ 0x)lɾ]1Hr ŏEە}G, ]wqi> ZZ1:U$|_R4xU2yD}]<:iSƬ~ G,qWoqdFHLƫ&@ƍD/OA6n>Zq4fuV+FQ·\TLZ/bV uQ+1]r\k`l4Ʈ:Now0n$qWc ;8:b#ܰ_hy]`g\663@1*2!;%RW\A+OrYTe=teƺ4(KNhi->=(9D 8ઘc>ٯZwʊa[a 5w=*ӡb?'pu1{z"CV(ZzL-\aO1UeN;V >z=2a|9ի~y8 mpbi O&M!䉇K9T,oFbdQ_'3S6M _ڏrM|SȜQyAPB5uQk{ ֔ `HNV[Z @nbQ4Oї__EQyY =%OT7 [G@9fB희Lݱkk2 Pb+;# *  PDTDQ 7vt*o,1@KqP (uhAhH:o۫k{^LY## j')2 "/\}Z]UPb-J4cF+LhRjfw^WW<.4%JeEcX io =='(O ڶ-1ޢ[Ȣy%YyBQ=J5(3cȢ#(o}@0!z`(TQ{;,*8dhnz 2)DU{shFhDtSۂk XQUUY6UQJP |n|S~~l'N&tZnr" zוԎ׺ 1 :T/(hgQqe;to$E5s1P5 uz+dY%Ge__2AdiqJ BUUpźw T'd_dYdl鰅E8Cjֿz ýЏ+|Y6S>`c;2 vJXTmSg )g@Ŭc4l8LwxeXV1A'w Yiºq5Em_vu}d kPCwR̩5ws!z, &*TPLbH8g; ((ɗ'E=_-1] Mp0 !,$CxThWуh$DiLFl[˨;I4YB&~Pll-^Ä\ZF)AlTC͍|g֏uFK<-3ثu1bt21O-wBC<}ۯ$]_WWUWկ=!]3[KBȜv'cBHIP !HDD@Btڛ,+!$\ +6hxs_].wx{9 7[~6~'OYi_?a{\oWvmK74B4Ew?.DžGg9Y%Qg~<5@=7w˵8 -˶Tq4| +(% Ϟ%G~82Mn.,2! ym]_׮;!]>AiG_=TvC,2q  >u$zD^3.4X邨&%6Rzs>PڴX6\Òm]4% Bh~ YieLDۚ[ϛ DP  "O 7KD"QyD6e˕Oܖ6%Hm׈!Esݻ`vuivǣ*^EүX>XX= y&M `y:eI9hkʨ@WeM;@#_+@aqWTz:*I+5, %S0<<E=nwL"A{(K{)W* p Tf jAY^7eY͉d&0$fzc)}%~ُ ~;>g KDDUԱ@B0g~atOCw`k&,@ہoM4K:&aEyYR#zcY IP4ɶ [N06kIGK-f~mUŦ[#Ji{AƳ/>0wM/{ IHUqZ!t5M?A aSXrmM5"i"LMӝ\+P ~DTU" mjQ'L8 >'@&И6-qQ~EyZXv@zB\#IgE QT&sHZDZx]Hema*+* RB "!%] &U XO_'>n065 En4°0(Duo+v"I*Zh͵@i\sITA@$^@#[(,ўhV,5JTuV :zVsr~aPGg0mwO9Vt]}YTt5h,(?1yFfDV Q]ubL[Ġ0YF~4pRy7DI\&)2j_wKDv΄Q]KFj~w8Ӝ"Y3xHLrYWxQN|}/Ue УC6fEM}r$"+k8hs*HmX u4'CM+ȃ(xdy>7hw 0  ~]0Fy4K*( $-4*!y_`TYeUI4o4e  4A-a޵8{C~ hXsOǯ ~%yVt zhNnnղE)xV>0N,NfE5~&B-0"d𣝲ݬhL/˃ ?,$cTPn%"VYi .# ̜'K[g#Q3Qbz ˹buM+b$IcHt*ȟ/pבӉ.BAha~+y4A+.3ׅе/flQ1(.h],b^Zh6 2 N4 v1$WˋAGW24[|h< BgjV9b!+wS/Wt0U&84jB˹cε?EUMUZ_,=24p.Ԕ48kɸH%<Js-KS% D^Za*"ZT.)W1JayQGx9<'!DߪLXsA}O4ʓ14 R](7My2(?M j^bAo*n8u.XiCXh, 0!DѰ .hnc|- =/Dق u"a؆^r 2ʕľW>B*[6)bQ.{ (Cn|Ɋ¨~q-W+H_8o-tMK1Q1Ƶ))Y hئ*8 f!?IInlMfHےtQΆ ItQg.ڶuA,D8{G =hKgJNAiXZV7O?X.qM*!7Ȑ 84d@naoBn]ɖHk@ȷ)faRvQQGݡejhyYre\)qMA{g_AIV,Fz4%*Pb$+{ OkN !-։Y{ 4G&"D5I3!0|^ưÇSH;!iIӵ}>(A#/6" J5X0~f3bL̏CwpvA@LY^I8Tԙ۫U>R0CbnR#z(DzulR,tA'_\yƥ~ItՋ:: ,Kbm.G; vlhs]Y3^ y^fވ=udI#Kh!N Die#e$3S,"-Z ݠ*iy4]t)6k/aX 4 '{{ 0&1 |&.&Xq Ae:8"ᐁ@+ sȌ{h6[*X*YU_dIj vgaĤhdfTQA42'&uw}4{ [hNA*`{%jXU; ߦhw!o$N}=CUU' Z#1{|iZ~zb7#UEٔ 胈0nMN~[B[Z6}.ASMqHU|eKe-ϓCm*!ZSh 9)*Yj55h`rnEL"tBD}aV5"ENL*"Z^bkbkUͧ􈃵t`qb%m5mdEuUCą+w?tdEqbAK->> }FS>0# 0μ:e t 7dmz3ԺIyRT *՚MvٲeЙFUZכ`'@,[7u*34*=.wmAf/B'9.w!u ~vq-ֱ?~fi1bj`e%n8U͞XEy) 8;ևˣ{. $h 8ixfОQ襐6TC2ѡhuw#neq.vH$Ҵi3tnDEqp\;*@8ASh-E*7Uz97fՄi)iw,@)ppNrVS} ːAqdɘf$# ^g㬚_&!7K4ư;eDx M6iTk\"b}⯍#~}gQaTskϠ) A's!&}0IzHcsLPjl5EqI6HSe%rwUa)oڷl)"zIlEk݋Iwr&(Nym' a)4g ꟙMf@6ǧ8YVW>t%O{D2qzAhv§Rj2y}0eg[g}|JU@:RCھN=QTޮo=<Әᾫ,鬷HT{sZ3MAie6+GUfw,yukd$H\%A җBVxU,*{Տ( A!R1ls\AWao36gPf۽4ݹzk40[SmIp)jhgQVmd[HKƄ8?6CY!4R5DA`rz 3|j iq6FQЬ 2.mV j79EuڜNwUUE`v1Vod!Rnqn}+芤@&CI'K*]>D#Vv> ɯ775>ѐk_aeE mȸ܇.ǒ. : $KbM`^7e,Hp|2E](7=v|yC>9CLNS+C*֑!G0Guhu3wO˨ ,|F\wyJOr9dA\H;Vr 8! DS[>y˧_MavulM "DL{F>(qf!AOi9-bu6EYuwwbzwx%a"nDOjaAio@c9MAׇK#0Ͻ“4FXH(҈DazX4+6Cu@ } 8#ǪPo[oę˒?@MM?W6}zKܜBq<2@SFѠ$UIGtpqLzWCqQ,ʪaz.ֻ 4(-W`Иѱ}UƦ*W), ze{dFq[Kq}5' qi`Kbİ5]Չ.X-uް^|貫tX6`RM\nfC4'AueH:/:ruqyvmn6NaU@.&Svh\O5}u&YLZvj}pW m_JgQ cXqBJUb٬.ARUu á- yB"m`Z+$)),lP1i$rQՓ&[nZc__͏$hv+D mXb1wC>Q],PJ>NU.ҥֺ %_ s1n~0ZwX)MrthƔXr]Ѳ2Wzw:h&*?bjh}bd3 .Kz$o--QFWXYM bX>RdIR^q=.\dٸۃ(H]9 PqxT]$R I 鸄I Sɹ{udlB])z\V]Ui>UYY^dcŮxd8(ȊwԵOsh ]ZpEr~7Σ +8=\+jVe o_oBUU$nbl7zKL,I#|~>ea8"h+;4Ֆ|r>Un"=r] M/f^`ID qY eǂwm!?Xw-5J\b!"I>'&5+ Yx{,vm;Rt1lhcqEHۃ2f"JS^;v2qWlV {*cUp{ץퟌ{ z`U\m\ifa+,kkn (j 1>1=`)t_)"nii᳒שm0WdM*mT]9ԟILcb\zARR:LCiԥC4ArYp.7LPfҧhc1)ba͘ϸNJ, }Ͱ lȐECv<[uV(_g ߌ/CS&/T:yzWi.nEaTa;Y'E A3TE~kP頙d (yh{8mjU~c\]0 ȫ>3EGLGlpڽ${ͨR+?J@ Gb4Ew\4 藙.Da{| 頙MC nת/U\:£Rz9>fGubXI?5Twrx*F,b!?i\&8)*oaHK#KZѴ?NA^-w3Li gf܋ >K7nmzܒUP^3h4[5?7}EyO[{AjM]J#\*hrM%Bλ(l1!iNBNz4å>l6sݟ▟^ tnji0lY$ bi9ίkGZŸфI'eR qX h?fJh%m,'#xĠHޙCNED3q ԑzAcD`w&[E,w]Jbiaiuh9h`>.eCQ]af;`?4 z`[nOq9ď Hj%D6%0F,jr?j}r2 r8&xP5e†0 2 8[jwl }ɒZӬ,2[:Ve]뙝 (-/ C?S2y$&+Y\&CxhtBkk "8sѷx=Ds & ^S:1 -03HU57 (Cה]L<$om9$|\^6U|o>4.<9iCY xA:Ӭ,1o$.[4 БL9<0-LА󡉒(@à^^E90 dgM0~Of&q2=Byo[Pi^UAyu@"0f(*XCqLӪbC-+RSȁKajb\">Z .DW@3|62. Ohh +N- 4UJَ];\|nM ]J0)Vj@<كgƆo# p(88< n3^t;bFAt%`4nk/Dsjq]C腣]ye:~k<  )4KW8D~{4>j&c@[4h|aPNĠ~9HX^X ir#/|1hƈz,^&0ʰn4z{MDoA8őLNMw>4"b' hG!ݺF'. )7:S 4!HӸ4Y(҂^)X5~ ! cHH}Hl4཮9<~o;8,)2^ב@N[.mroB i`>ݟy4_Xǭdǖlzw:@o?e)(SyadCf&@  C,Z,)[YX}О0)W "/;h&0 鋣uҴ^Hb!._h& i{<8&16yJ%~8gKcYIV4VDӴ.fA,}tyAs}Wpn糹~*+k s;zS0|vxwq'`ygQ5:gׅ<+xZ??-< эz(|W :2 r1Ч;qA!#<Ǖ3|<݁l5UҤ<g`+*}h.aK#c{_"&]ڟV1Y8n|H*ns/C,x!4.B(]H[Fs湉fJ^6EaY5ɸ-M0 ce{=]KYm]Z V .&X:6=8F 6._[XԱ4sӜZrat~ܹClS)yl*] .KB cgTaqgYaA% xOZ ]xOEU %CZ5t涥k BC e S?^װޅIV0 ڇ勯,K0 Yrc%u4'? pf`aGJ/L0:Y/^ 7ŢD׾  @40=\sgQ o'8%bSTx&~)f5BŁ, QӉcҦzvGu*8Mt>7W; 1.7L~k~KWH :jKgyIE3KI1z%ƓZ< <guYVp:=p$&h$_V^b߾dbȆ5v3$A{_tv~Hk_٦eRɂ\ Y/EqGlx_nnV'}o y/y,A9 F3hrN 8,z2Ú+ Ӳ:{{Ku0Nk*﫵ngC%4QYP6]6f^Vf˘7?2 H pYRDf%:= N NN0J4nA#ӶL}S /rM/Kׇ*>H'{WC_ayq u,Y'&2=Mz~R>s5FVuO u,of)(IUVMmTG/% 7m#x 41ל[q%Ŝ1KkE5cmU`jK\n*I֛cXQɢڿ| 0i}߭DtW :,Wwk}OtxyhhKxTV͞_ ,qdIK7ׁ/@ y޽^&\/z7˂7,R+r(NQF4֬@vgbD_X`I*z7 8ӇlmrS9Diu36f2ӟXm8B%y0Nt˽x¸m~+bHk=}^ ?g(.@4U:0T ,%ڮ>rMGVp P% gkBfTfyO)ܭo67"QLsaU=0w{y2 >TLᝢ g/ayiRHhMAƑ$ٚ~~*'i(mօ\_7Gss29V) 8 bHkՎhY@.tSwY?UpPlF6Rv,m;ı,03'܊yRK1 60{B)6e ,$lP f{J_w"N,,T~0j)j␇U ǓI{fp.xuܲm'D<4U<2&)9z&cݯq4gY,1:gqRa|x!4Q41"tֹ?3jVM,bK8UkQTk3|èAQ|Jwπ~lVز1_`:WZfI%ŻnEDkWQ!&mbz(x'fqH>D3 @WaSsYhuCjnX.dsޠe Ө.Ѽdm$ꊃ C'6FïgdIm!He/j^}ud^5{>bF@Z#[!3`)[+KwK"7.DD}!}z$Di7aiٿQTyb tv:UUK٠o$e?"v㘿2]skLj.DQZHfIQr Ltr$]/\iYS.#=8/f 3\A$edD2I "+2$J:7"$ apwNwKV <ϋE kh]qhʪ%})>4aFSj:7Mr It“!q᫠ F=K ѦJE'@ЄPǕ'pVPv&4.޻=8+. lNlzSe7&o<;{oxAq:Q1V|[\D8t}p=6BK%6AL00]@4 {m$Q/&1NF5]r$ky9w'"0l<-} G Kg`a`9h)Z6A$WoįopCչJ2QM[μnN z#6Z+Jxi6X1~$D> Zo- */t-f{p miqrMJ)ayfY:nb'3f: GI2K fG+0T X@h{qhwRe0sI YTDXFgt~> %E|+[}i|QBp~S0jq^‚hyhK\ƒǞvߺsY6$斪һʰDI_}/E9ط ak#un_ݹB4>k8l>\QFo=ڊE$lQשxH9fA0"X-,v;Wz>|!@dӦ 6 a0h]i~'Fk7~c)zB8l1W =MI7Tb`R]@o$ /K M[0}aUnZi$QnR3Ĺx~g?na1}FKUKG$G4jlB/  w]׹B҈0#8 Ю h݊-(vC\{.ܜzn-GNi</f}LM6F|?ZM!h3nZw20Ҵ:D2E.G&zC$$yNPCM_|)z;S7^l|7GF{|9iıO#OQD["UQ%AmGq'u J3Vn{\ 'Gu_R^H$h;-5,i$~AAژu rNnrOXFTن߸'RjE~/(|!mrH\)6H㧆hs׽h)m@ytኒ}?ҤK7Mݬ_Ȓ ~)&YiAI\fu?Jd+\2x1x!27'L5 } Sn1jZgv&qPr|8;rs i5#o>,ӳEd0>BuGhej+~>2tZ[ {qR'zҫy~;9:ic8BC4?}k-YV̓;>U:LUaǿ3=ݠ!48<gښtL z C@#?P B|"!10Ƶv>N>vfsOϭvG7kַ^kG̀_=[|_WEJ D_^a @>|?ʲpqϢ=[x 3[Y9 *i(/f}#'v," :9Q=3k w,gJ4h\f|QES0};ޜoo?OŰn iyiȿe5&dc!˲<GRҿRRǑra9 g |պrw $̣`𗧨+S0PГl۰]nxϿ3 (8ΨxVsw(`,T< fmc^'˃0 fjj U-ED!Jx? ,xޮlqQU4]4] 'ϗ/ ?ݠZę( a4orQxW{Wb#B[WuqX! RH$##(`O0n߿kv8ARkpVGT2zmJ淸$&q%S%:QutHq#1ߚfp_sR@Z4,@y@`G15|nubJ.S-=BLWD =Et~ ??|)q·B[#ҟ┿V`0 "|6W OVEE A@e/ghIGXa@:eElfAgl6պaC?HXz]BڏQi>riU.䝄fV坕>I^Dl.NA*ss9Ҹ `C006L'AFO ѳ F٧Ibb!+竕ǤaůtLlASRaŢ}Ţfː%-F"TDIm˲Y)/ G"8K?J;"-vɒm(-zX3#Q@sErdc21Ľ{y8@܎# 8`vcR Magyg|O#` #QFP4 0 hT.*diX?V p1(SaE\_!_S&pE7i]d[zV;6؈)W+"bS$^LcdY7۝14$`X57$^a |Q%Ӝ-ZR#[yu]!n_2h6u胫|qiǩ_~lgGR]J%-E"+Zr\ /ImK([ݞݷ <qȝ`Y~<5? 8 g7wtg`G|)qVp\D3DYREQHIKiPA |XJ)a=N:Mմk1XG| D{JK;XԜ+w.ĹiLk(ߖ}:#!D h O5;Zk%k*漫3`>Zp,]QVi>1]Y1S+t4v8鴎MזmS%P]x"aiK>DtV!‹▋W!섰'5AZoZo/#캭[4Mks s UꑢN_tմΓ~ e3y."xx8̣ C`P4C\r,f:>a ?Ì֙*Tˋ989W$. &Z6)nU1m2B//ђ{o:$|8:J=UAA0$h*j3|y8Eqlٯ-Eƽ?2$8(`b}}Z[%aQ}P3zF[hVjZZGP("TeBb>7sKw,6\.PF9/BHnUE8Ȳ8ni{=3/1$T\aOd&‰zNi> )#Zo_f 6ڢ΁-(e2$RsRR`] .nTTE^n̑\__9*sAK*Hj7SG Tpѹ $<8~d \ @3ݢn i,Kl*{U="ḧ́@ >(A!Հͽ8xKU>V̓Ⱦʁ oIPˆ̮ udFbIl1PLlw˳otMx?ʣ Qߙ<;%#\˵V/UY3dj"Ov*DTgX0(QN9 14",N-mEA@i,'%yI]Jqg}dm0Ыnk듅{2ijϏ-mBUYjw>ݤMd#-)D,y@jI %eC~a,Z9iKD r&DĉOOKL+hz\"8TAω˺ TlCuoj-G/rZ8d攨A L~sQ'euVyʝ5qEAU Tc%@,5H\QZ7%=DT 4sS9kF͐{CNhi5,Áj<aYjqǬFYx*ԞNn-pGL+ f5~Ñ݃.{vWŜFK]R)ʩs7;/➲6b(Edq쉏٦s9;К rרйbn!&qEDWՁݫF>D$s8OfkV^igbz2Q! Yh52l9Y_ 26L:!L՞ .4~dYHݹX( HѶIFġ{L6ZYC0h>@37gic`$vj.9T!:h)N.\-.]dj/S!N(>mᔷ)\YPR%oNy},Mt0]GtCooL(Mh:Zh:!5CC mu@j6>4y+fH̐tb!iMSfs6a ˊJ,&)렙hiM2MDW EnH5_88ޚbgLW&~ճoێqo!%vMU% m Ⱥ4DuSǮęD',e3x)bE ׻Iyƻ^++ނڎ0A+4Ʌ&΃(NIͭCmY6]A҆g^xqֳP @K#UJUAOW^ϊRR)t]@ϑ|U8`_$&~% ܺM3^:Y,I bKqФ/ ">əEq{%9?Y~@9DR۷OrdFǧYe,:)F9f bAKؼ&n/1nx1DdX>%d pr@ϱь *@j]@ +ɽ#lp*J1/Ae(u iT} MXj)\27Y<ce;+,#6ǔq]-Ak?@Nף3,@7뮄h`HgTtYQ3l/|= xdEtUtS}hliq:VQYXpwca2}5LSfNy0Lr%/fGݐ>hҐK0d&5͒nR,K4Mn',U+b37F_{?*+}?ecV l,̲$ ;6t?nCjh.9aC$M@3}r=fA s^ie6"^vwb (rZC 6/؊ pĺ5̞z9K hv<8u@~G /.M>o.UHZT{`9=R5aF4Ē{yat8Bi(ώ^o%iwf X[DYǎPUG@5͊Dt?!vT00}ae?|`CN\3el.*FݰEF4\80hn|%ӧlv< L LLh~OS DLE]\&MM7n[?E}0/({9)(-5I5 (rg{edՋ8-}X.q!넍'Lu/@xF&LUmN =0[qdY.&[R:NekmXWm#" }v+$|T+Z}ޞ͐yf˲v2pj7gMڮ(UNĢ2\!~_=lOQ)lYWYU ݇lkv3 ɢ0Q<7FK :Vr[uLTtH-,NqE s#X4\UJ8⣫J>?uBWT&o:f}WWm¦i,*AC+3Ќ\9Pb5#t\ܱ$P8+. z&yd(Js/+M0`::l>4 y24pL[OLM ?+m+Zs|`:y gSڱUi(p&l1G`9] :V 4ebj#I[cRH>rg7,O&{, Iw=Cc!^"^@|[Ovh,yf,$jrӦƺ0(S-?Qt#ΏH*M4QR-SdrCQwC=pڰ\4Ң)}W4nNsT$<]2%Hj $^x*-2\Qґ Hbz!-\nǶ`8BbbW*!]~)Ě-N|ln>|WIa8Δ+ao^qH]h1yuA;(΂rY)1,h!SW4"(DU tmP~A5(Ƀ az%vmbi$Ы#U0;]] !3xw_~Kc0{aesr D.9ޓj,yɝ%i0pHY6-ȽFES ;D3e}t2OC\8㔘ށǐɭRNt7<(A6D{ $,JPݕsܝWUꚻ(8 ao$*YU\M\x\Neo4ۈ s:Z:m:3@B#hPqW7;W@ ťv5[Vr_UۻAx z X-jOF &*Ts@p̺!/XgLhP} . +oa#2C $.̡%-ZjTcos7d/p@)椡ȻKZ#|5X679^, M~ehF7Zʬd/&lc䥞xRFx\Z-Z-p憅"Z`` pE YixVR]0/ދh*v= TS-QCjA =V:Vo@ ᝋCAMp/qʃ <1p37uZTD.ʨB |((Pݵ)m[01qE$& s5YױQ!eq!CЁ^0507W3m4ao{oeD |,"bdҴ]ȺViҿ4ᵣNt:a \a9Z=vò6gPGI%=mca[*/FS?|yihu;yq\rfŜCW"30up6QAN->ist9x ktgEp_nKrǶ-KDՍʛ:הIǐyt+듡)97u::_ZuGQq Ó.Yӑp-!:>&#ap*,IJߛ@5zi7mhj\t ^~IqQ S:^⺮q]$ ZWTX.&mXxcUe~ZBL]%CFmMԱEvi!#M<\$O, YNZ e5xډYcʊ}$ڲP;1+ C/ |GTť65?Ӣm슢<̓JBCtKQ 4fѓ.m<`GOrq{nK*Yg(jq,S^<7,ۗ8`GInj{‚R?4]ɭ 6ѩ\سɖ1|E>EɃ:!6EϢ'593p'Vt[I})V|I:i|2Z^p_cu mڅRU‡TQUDL 1,;%Q/5KT*4ܴeѝj6Qd@&S!C?AfNknaYxiYK뫉IY%B_ ;ȎF`xIԨ [p;3zr{LY7-i?Ř?kd#* 6#۲4* [^YkϖӖF'>8M˸,*Y9.')?TȜ ղ}7""plVosUj8Wao7P1x=C|9Qsp_ttMRY-Gqdo00ZĐL~t% ?6ѻ,8A5%SVSk| q8yPaŕ:10YA5^gK !T.Ȱcm .L6!egZr6lAV$N?틔!~˛ 7+5f}nz۶,ےb6|;HUQ}?ecA kd8C%]Hʛ溮@5[_CL{BYq|.&}+ ӕ@J$fR{y]*.c㌽3r"/ˏb?Sj/7,Yk/"{.]Fo,ZC"%i$ ݫ,f^_6~8|DX) X<%YudZG4C"Iqr9 [f랂ΎJ*A૱rO˺\DC#dDio4.y9z# -xZ懸C.e2}k )6D{bO7GW@D07=~`n!?m\m nh㠶nXѸm@y{3́ojJƁx.Ksh+Ar/pQ+Ɋ.v\d8l:GIӚ#/:zф©&k`ʖU1i/Di ܨ0΄l#Ww9ǣYИ`:L/۵ d"|OH[?s("Zp3&"KoX@m646ǏB=0狉m6"m{SFB5KӻZ{ek׽wTȸwB H'<.x P0fms>Y2 J[]i3o8}==sO@\t3hu`^UN8Lc=IDE#~Ő{Î ܱnF6ѷ3Y#p)ϥ$Ѣ'űW?|taHʳ(z%n<ڸ9G`70H-Wݱo;^q8l9,eN|V͜iCLxQR`bٞ c?:-bwlS@mѠ)Wn)YhfLKFk.u,OG 1S$%OW040.>awwyhI aFhlh/!\N೒I4)8sju`bfm=ۤefӏVG* Cn16M b&nkiLsItU!:QڙmD@UQIA|{ѥ6}&e$mi/piva"՛fI1fx$3+(_䳙(M7(v}Փ .n_*X~ w]gO|V>ؑ9Olro~y&~qOt ]uQlj_|~i`T$(l(9}o@PM]Թ͞w4 &"/Ng)iqk-g2wDz 3N{ v5L8c8IXϥ%S>a:-fZ[ɠj=NQ!osyT^ߴTu #ZqHm"G;wy{CaG3iT{_~gyxЈ^"[޽#>s2:bBAr͢A![ih݊ <ʋePL0,(fb%Kxvq= -ֲD0NFftN|uPfNϰ}H$:Wr A;y0_sqyk.ʬb6j^I8T|t;)JjMO6LBgZEVDU..6&^DƺNŇA ǶK*HtUD|T^?EcO^l8Fi'N7{zA3#/2)1bae:D%Q!r7ZhToXOVs(6ib5566YB ٬ A zg%B/ba5tZ[YlyB?1[(\7ќh"a:dMJq%#lJʯųh[a4}s~E Ͷ,4FMۢw@{+W4b2 <$R( G~-S閭WbIblS.$)N3G9XZ§88>YB gESum8jst*>h<L#z=MLbP8ʠxhDkV@qi*<&Q%{=;DA|>\WEmVyhҢ 7k+]P] UYb g+Rŧh0讨IQrqIe6âBi^>d?wϑ^Z"8ݻ%h"ͱ- &>00.%JfSw>A瘱XR<8 dOrtX&lDŽr^W`Ͻh-vnd6w r;j^0Ne;2IyL}g8G#Y*${`CɰV2zqsuE2Հlƽ#5ꩨ!㺥 (tbg0'+ΐMYZ@# w H6,ΪQٱt:/TӢˇuǁ5ȑLdIzGEѶ<;C(nU6mD\-X"xlϼpԈYE$I845ujE,v$d}HŞ%A,Q{s|)ǛQ#i<<,%j+G.Q;ČpbB߲!|6 `"mA8nuYyiȯSDL˹4rR#)Bsw&xTa\EzN4Ӷ^?J? +뛳,V,L'MAO߾q QŅձz}:RхaT4f]z5֫^x]gYNUǫ 0X_zhvL4ǭ(37GpClC 0g;i+89ԣj(Hz.DX.v)s%7eVytK>7IO[u,۔#E=z@Lwqdv4[k`DA@Ry%@{kXχGǝ^PlAWl0xޖ72 ]v-tr]"QY Y3t>"K2yfhΗVVȇjbׅcn=ooZ cV5ߣoP;.)]Ъ `,&0꣩M ~nw%[TQ|(`}n Pu.h,R} }%+2TҔNzo>ߠ#rK2;]]$HTZ,Y:T<_ E)cIJK\ܗ*@C^ᓣn,To"^zbE+*NYJbMuUZ2_c@E%Ay_@aFf3͘i34Rw_R82Y꺈S$ڴeɟ77!wd)霜ِu\uGE/-=s8(R`4Mg?B\]!i6_2lUHRBzx\hhߨ[Fg0{ K,I_B$PhnUCQ[LyyW^E0T J ~pAkO6PMz]@UfoV;Eš ]Y01|ĩA;*E-M;_<:\"MzPh|DEaVNܐԚ?|P?=l|dyG{p 8k$ $QThWI kA^"mLCp[PfQ9 oebߟrp"b{Vݕ{D> xV\Oq>?!%rw] @JKFWK|F,qP՘^4Q@, V$[Jv\PT6ź !V?8q$+x\F؅f ̴8qOUǎzξKUR RhőQYx_~(OøFT5mDEWE*|^.?X4Š)p4p5قHE0!\[K\$} aW7Ϫ80OzK,KYuK$o0.<|bb2^׵cKQQcOY wwu:H6|LQ%4WꠚX&i5#0,c!Nړzq !؇"cYzz []bZs%_xi jxymaϪ|tG-kt# ME/kX0{ >7е朱F,C`uBr-pkpϮQdJ޺<6]b~wH{=l5Caエ/b.d~F]]Y<tq6gL~+dϠYY3=r[۞?^MŽjʽMx'˲<>8F<ȼ9@q$_hwT஢,1Fé_vb ʉ} KTMf݀Dۺ\oɔ'fo6M? '+`x]~vt %^׃+EÊ ʃOhp2 $"1Zl>F5z19P [[4-D,ZZ/T;r}hd.nucIp|49$EC ߸?2 4TNTQqAuGu}6귴*[+)>^r<||q' GVpjs.'FHxPF!Ћk>Taq'2h)۠م/#1Te. QlZ\b*{}_F/Ȳ84 +k71^lVX0M<7b8fB~{Tg Q K|[QeIrE9~i|ӻL{I@US ;X]U_ZI& +TúUGZR.!ŐsX<9-eꁾ2lŀ 7 ~o!4z~tk֠Z8ly2|]ic}YyxTkpG,q"Ls L |> +Mt]MV?ʤ3WQ)|/^(J"q ™xzw"sZ:CeE!,&ybͤ!͵*D3H{UDjzTcobsqB kMz ˭C2%eq + PG @N׏Q{$~By3 {M+PSNGzY@6<`;ߴv׋~sIǂDU@5>@U%#!10cB5XW/wA$+2 5hgT( "5D]*y__]M0[>6Ϸh*`sYRgL~lI)-NӮM2.+{D|FT#70<(&ѭ븅\2{  >aGeb(@R+8H$\^@r0enzRPC"CQF3܃7jMť2x=T^Cީ[$׆՘Nz۵\fTaDk\˚ppxMP-k HӹdӁ%LLPN[E=*" "R?e^R:nHcMbg}TsEip5TGZ*|f> $<+Qa%m*aaMRQlZzjQ6- /zt9fi@IB  |%U}\w˺f>|yP!0Y7#݂d TK좪oqrt뱗Ar(:\=4Ckӏ z\9q.6%˲a`Yk*:G 7GwfţME yq""2%O̯A?H;>BC>}lyW>{:uk;)53"PWu+ 2 "r^f<bX!(|gHMqw[qo4Btj؎p+G?9Jh ? /C" :>n~ݺnq<0 inҼtxx*Q~R &};P (Dti.@O0b/P7ۇ#7p_8y6el>%"h3(|)}> ^cLtis5D7i0,?I'I~9Ց~#q5,]TI#;—h\Jوvy0#^8L.ILBTQ 4;$IglY*;~_w߻&y .bET~wD sGQc 3L.#˚5IH硉 )>i4keS 4(fo#@_oF)[ `@a^L%,^D߳ZQEp'nE" D/!c5FxY&9V<["ǖ$GUū+>Ɉ`3?qvky3.? *Ҭɢ]rʹɳԋ: n:ݺ"'9W9 J`:GzgX ɼ`vW_/,[]6IWG%>sdYg~6Bv4Q!3 ˱,wy 4k.>4A 0*4//'w7Y ٚn ~+m F|fYI)D>[*͓P]ݔ $Oq.(Ijkr\}/?0+ Ф -.?^x~0&?F ]0,3츗Bu,(Oh[[@3)Tb]PVU[~=x |6p (`J9] !mȐ(eʧ/_J^4h~LSy`pQ$uK `BGx7p+$OzU[<<;V ?8*%BLn#qA *rgU܎,!StCU5B$E ы"1r(CDa?DvL@4Tf>At#<\k8T#(}g_Yhrх|ESQ2wЌv?(v" }n[~TM!=st+c ; @iFsp.ow}!P>EL5ы\:hTaF1tMUhn-6TbhF(gV.Dc $!K=r,Yye$c^GqPS&;m?D%,uYfYWzasƸGd֝ V0, |&뚁\Ǻpz0áQ4;9•10i\gU'@;ww77L%g,]t!MiP3A<3/~1W'$ࢲ>]T=f%UĜ Y^Q??A%&sKqlbS4E앸A3^ zỪuF+}~R 2RB̓ ˵ OaYcMtK=dYY!"ن@&6\4ANr`eERtE34۫@NU:{/H3Qtliwny, +>ahD`! a]x4PpjnJ/Z hoIOIp1 r,/j}?J^8t`ql)-+Bn3 eK OK 9HA NKv6>>N >_%q$A=9u72;ij3qA鉣0J14A,2! :5TY7` 5=;uWsHcemGpG|#N#C+\3貀N=ϭQFdW0bL_l(ޘLڕ5dMd;f%3]^eq[je@lOMRġ>& 6U8eL]%!tz.%ᛲ ď cvUS D)ᠳ_l~Oʑ/mWl Z8 C'ic]z)<` t8dh chd!S!ݍc5}.u:hƻ!d&Q%Y?,;<$ͲA= >A৅ZnpGPGPir pV@N=Ξ)Cju$ 4S iqc-N @7B-GEV]=SL0& 8}zcz!$Z[˶jp=D6ӾbB14a HLuLXJ7hqIzÈ /Ŝv>hј $K4gf;ao N _h ng^Qr̡-9+UD/HŲ!ve̗餅+g ǫdDreq4$-^ NM:CMC:7^Mga!iMyicCJCgeACsF@A*0NF"i0𕦋^[q.SzaA.(f~J!x|? D{zJH[#*h[D)z[ FqB>&Bc8EjdW3氢 AiFS2^I3@p2*?Z[#9ߎOzՎ3ԙC5qRT>]@Cj0i4CEׁhLE>ls8i'R@"44h7ʧh1:n a \gM(vyUH LTI_>{ҡëo#{a>vJQ,^ L@T I-Rtg&YpYoi{%[L= juf\E ʓ<ڙY7gf3q&J#1WsnԵU)omgv|Sxaa!},VBsoKT+|E0rOFq(Iچcغ 'aweqXn} s=N`Qt%TuaCb I"6Se4~;r o g6 1„KٽCӥQQ08Q膡H[yl.DB~fYYUhB(9ET92T!6ѱ 1ʌK x'm1IIgZgGC\0Vӳ8}@Yw)XжI ̙ 0(;3}LibHZkasBrُ)6wnUA<$tщv+7gMgrj*:Μ<M!m hDuHuay[cqF}8_v\?\EC?eشV('])GKNY~%b4vo;?E@ommf!R6?U 8/? 8DQ8kc|,q駘`ϰ7,RIhfeYz*%\@~!x(U1Tc/NC\/C$ɴRcilKciT]~>$nӑ]Yff}M  B94u)I` ~+Ċ(bg7ݟBR|B `X̃8NU..UmpEd)8j!x= x(%+dhf xߢ@l`j,AhiPEIHNСа#J;iVQqh "~xqr.0B0u8%[O%|)ua˖TM4AqʠW 4v*csF^~T2;>*/.κrSgt+N0Oî#̢خ:HNNi*UJasg6 ɵaw^xq0ϲ(ЀXtr-`<4(y^68h]qb9oe a> n6%xxx|?<bƖdAodΙuuɳhkE0aV oMTh~utik*J|n1BQn@35C"Ֆ#5iTO3yt[ʪ$+S_zHKjҩ 6˱99, n _n`>8F o(4d~:KTLD[mCR Q֌??|h=M!l8 0*iHT OjVD@.FiqcvCǛ|TcK<&{^/F~U&Rs~xO"J=zqb? ihqӑcFi: ^T(ҙhlK姼'bA4BIpA)ؒf~b1NL,󠁨4J|14X.4Sӵ=+I;|ìy%*IeaikI ~I$^e^Q)hA*ƷSyoJ)0 r{~ 4@8+6-2Y1(8֥^:'$؊hKؼv<P"Oۦ~ W:+~/&BkxV{4"LAeSht譨 .. %b6-YdQޅCofu UO0}> /-}ѯqʵUAʿjbk:GN_w@?8qm<";0*Q$M![fO&@nn =APԑYgLpmw8-݈!|Q)>u a_I1P $q~ ׈nz$ ,ʺ$1zKuutLO OOvE:ę8b%a|qg8 \*:0-ޝHg>PDZe躌-b)9 Uɩ1"ӸS) aޚCiIg`#z9Mʊv[oh[,6o^MPI뱫͹%/In@DDƐ|+ya{qpZYO"1}yԧt'|sI'?މ.lJk Lc8aY@#^P5S3zwMhM "qN-O`˓@!ֆwy $q\o¹EGK ` N(KZH4~ѡN+y.ky{dgrmA 6Bz]g|Kw es;1X?H?!X TP +2&9=DT;:Ys߲+xđq9gx0/ԁ,;dpeۖox 8O0 3 gOWq+'T Ísq%dQ"ch0C:lkQ |?XD4n` QEKˈycb14Aψs*TuPD#N,>AŴ#[Wd#.͚tτW^<J+Y7Գ,\ T#~7fEqEe#e^/h:qUS@U4jvT(UTm7w"B@tR<}h"; R7Ɓ .n,ޗj9Dy? cJ} ^"ya"/ůJ̑[yxBjl0кr/;Ҩ9N~ڳ'R91Xj#_jZLÊI3u?Uce5SY!:rO}@풓 6nMi8T#C캼u8=h.̈́t"Ad5&k3:f }>cF*K qʌ~1P8Z/Sbw?n7(! xA*Qb/ DU|v @`[T%S\D+fo@y3ݺꝟl Au3L}jš&1$L!ջ ٍWY'`zjm@ s ab2(v?*1ci}eQOg~p)w}hK/D9̾QWȏ+Oc4XE1w)>ZycӢ@H){j݈_i4czx lwj-ع>ZI*RDV >ZY̤} #5f#0nO2ߏjLEkdk`N6>"n6AK=?U^荡:r:.11Zfo*p(#,kT7221zUu ;m2kd>38L·yX (Zw=Ldq≝jzbj{ͱ Fj)DQɯ+F_"$cv )Cj&W~4XD>'jJtnjU[BM9 /r6MQ'(%s[3c˪@4:=YAFuS =fhmھ‹+X5uM02 gqr7I󪻪 ܐ,l8rA1x[3 Nl֫ e\_2 I] θs[wG9ya@NnWw4\mxC|ڢgrv~~]S˲5-(<٨Q,lY]w]q K]:C@~ 鑩xWhJ9^_n>|Q/0A.ϩ- $H۴7%7:&"0 eOk3uX#.&5s +xKQY8:Ij ^M 12x `]穐a&Է4'xivܸ<'EGCf#ӱ_aIp 1l4P5ZTx  )$6])Jy4q"A_ &x+Q: ›ZTwS/6#${XEUWdNlH31t\1FiBz7`L8@8q.Dt,ɽё㰞cxb4Ycץo a 8(t|i@t[a YEJՍ|.%QTY4uMT!1*1ly{A-#ӦC4=U˹g%m3Zy^רnJ9g{G΍dhk\ 2x`Vr+{lZԸn MpsۑORO5Unht54pD4[]*,2E8n TP̯t0iFא, Lp7$Z4 Bvnz)]M^uht-t}!-I&zE]b@{u.&xc2rNKnEY3p̋8xP8n_`laa7{%]=ӄ+NWFb=QZzPhv8 Y5Ȋcϯݔ tVfN_,7ݖAK,Jàh cZ5/řh=})C1;L4fXvmؓ_d *wSšnop]IXE { Ycۮ~@$QGi4{DO2)= |3ɕigqqlz)}͌(u^U0Lv X!HdKo4P>2CJGy<4CH\!5aĦZ/jˡ(#|ۇ\-&u.1J--:T=Ҡ׊-Y{sŋ3/8^jK㛬Qq ,|D#SLRMyD?XhH=;Y9ܢbg:eH` osŁKA?UO *>aU r|wȠ*0sTa*}XTwlE[z1 xL4kTPaAWD%i( B}@}ޘ\o$Ar[j3%*w: +¿&#{mDGd zLl];܏$C4asY.&}̧E>Jyh=9[Mt!j!<|h$C$&]yf\[~oV;zCqXbg%7̀珹1$?=Ơ8DQ>fVק01]ww^t~٭|$i&.d} q>Ԕos-(%+L'qA۰sv[oUlϒ4*0k.A.ӏ iـ,Ik4ggJ0#;Qy{(i 1q ,װCƣU"ɴ7;m8G_֪@~Xq3F7L Ҝh0QI jk 4ʅ&D2,٣XM w?4%7)sO@}2͝&NI[ ܘlj!? w>n9{ŗiC. ª i[zWSsc٤x$Xk~i+ (w^s+ gMlf*|=RtzrӕQ$ s$AaYn]Ӳŋ4+,efꚊwu͚3,N4%/E#jvp;߱hkI&2XA발4 Q4ynҋayni=Oݷƻ/;vxQIqʫC]RŐDCƘ1=mze"2N|񧊌r ޡd%"68./i"܊'Biq2 {jPNm nAZUJ_ fȖ^=,x6TWTus{C:Dr0u)ZvF&GULL..41^G,G/(#zmڧ?S?(دk+6}5rlb~+}߇4 Z[.MjDv $< TǖCEñVebz, ɐ STUXxenԫA"i$rȐ";ձW,M0.`XW݇tBv "ܥ93 9OUAaebH .]b.]Ǹ%ܶ yVQ__`MY T?j>0t]sp 88=[}DzאbWKi[%:][ӫ/IDfDCE68*VK0дށ ŭ|Q+~/]-#Biީ7hInQaqix2,mZ $DZR3<rmNqoTpĩkgEA4_^(F~6x&_!?4C), >xgy() z[UzCsBg)1-=N~b5sЮRetdPm(@Dz#=my6Ї*:m$)4.*eqyns99K|9BggXs"<E q@_D4Q#^U84 ]mΊK._p~.e(~r:쐪6tk1CVD:^-zJwDwDKz[FXh$y.uXSpB7-;6} * 4.Ҙ`:hiIhU0G#ivqq!َS ~Ridih&U`˨* Yץ^8Y,nҏx;hZG/4>yc")=0qZָlۜ42U,1M&u }G J}W^֋ b9 4AݔKr 4؍eSed!s|I ج E%I Os)Vmpృgb"$wx[Rgݭh_V˞+ )v&d1$M_=ZH0^d@4cayȮC Ls\foC\AyA&1ͺJnzQ|aG" ?8g^#ZmwXYSl'7$GEYoE{/6\N)GGhuD"覩C n] d/F_sY !W )zAwũWyӇI<#PY^I44 x^U}g~ef=K_M'|iQz] ^ >[fP DO`">ܔ5W/L cۖj/v,6Dw]Z,:6T:0{IDO2>ASGh(KGܻRw'AE(EF4ZW^YXB۩3~hv;7Mq 4=DVoytQ?e9 ׶4i3{ 3:!+ʮ5҅$K2^\u[=1~ݒWjl^a_}9L [2/h4KrC/!^Cͤ(ښ^|Ҙ;{xWe|P?VVgUke *;*GiwH1b}{ 3j;wBW& !A:٫f[㑡8Abu[$nM#YTY 3Qx";M_+ D.=daBԭޯZ|TCUUA1rtGrݺ~R<hOĔg8 (UH8&-'U( sPn7kI$d[А u|9MBQ5 ay}|uҕϽsW[9 %D_,4i U xL[T Gt4/R) C͸" zF':dc$5_.wPMWOE!0; ȶct* fG 8=? &˳l2%e7OmDx-ENU||3czV'p|݁{uדּh!~:aMQIǗx%>אy5"w{';s>oY&$ ۲l3wX¼nF9w\& Jqٟjڼzp⫄xbܳR_,;X"p sJ|]$ENqVV54-{pM&5:}Mok>e_V GD^3q>VSTYKd+1D4jQHQ'x27?g(5<u|+&1p_wv?>,K/Jq͉m,Tsᶩ?1>SL lڎJȀ׋> P'Cq2}RL$C_nKGBd|&^=\=kDV{. RaU{//ZBC=}{l]׬֚[̙E{v[O#왎d @oQ@9g2B4($hhL1!+j4ZJAB67[YZsdksG'C:¯|9y~i=$R/&jj;s91mTIVUt^+lw}7Wyh8˲!4Wh,)o&4Jz!5мLA?8´fhqǂǏH튒@4%AFIs׀~r{7VEDIlC4dXBU[ ;n z5A^0oDl6s{o" 8t b/XxVM)g(ȣ5n:\"DhfX&S5мЈ~? Zܵ|I* QC/ڟY?ZƓQ 3/ý..hYlV*,րNr dr3 &? Ӧ|qc[eI4YGJ$+2$&G!c:ղ4xYuhV, w]&D(k]3 KT&3ϒc6m|8*N5Ԓw4Mӷ&/OClm^* ܏)d_- ш *5Dob?Bd4"Arzр8Qڠ"_0nÛ@sCa$A2)kiyH`(KpTrU]XԀo 47& 2?/ ˀ|Omc|&>C ^>L"I!Lm| )GċIX2e(OKRzk15Oۮu#&xia*IS~MQSy*MqchP I*jxSF0Xxs5?۸>&A}o?A#^4CA@__ݰL0D q}@ј#{~Gd;VҲ.f*XϤ"3Ft}DC멪PG73m<|̉Q|RU vL엚r\!E(n!yr' hdI.o'H<4D) "J>VkM1~GQf7Ѭ(L Oݴ0%J?h闊zݚgHj+̲i[nwSl~ɒKhd6~40Zl zD fflYE`xY 묛vIy5VWM$5 L. zOtUwT]#j"yL}+ K>a2*q sm fuq.~~D],QaJzk] TwqLp oߌ_h!8Gŀ |7W$> ~u-o(TWr[y`i0D=A`[T!.Ot WiiK@(Y #҇PkcYa;U<$fXMU}~+` Ni U @˛{QVl, 6GQ͸#\zycFiz $p rn*C48"k(jB Ut]ZR׈֊ `q_FX;~6:e˞*):`grx0{q" : ZL@+xS8ȲkLpь9I촱,IB|82ǻ:R?ؖc2<`Cކ 4͆6vq6!ˢ,]Ȳ4J}/*t<2|EJS4YQD5v8 ɓ`4i~G.< 6fJ/Dvӏl0W^D8}VoEñ4 Bz4&yFLavԪALM/ɥQe/f>sɹa&MKIOMJ05op~%OW|_iq~>%D:?9T1ۛp~e9kڥr"gpգϐNnU"'uԮ隉Z='SMF6ՆnSu^nMD#!Dx);. Q9[wZ5/q& ^eY!lkkJnzAn-U U**\Y\x(KherH_=9!ҴJ?W@7ǏZhVm4(FN^7BR8?P>9a}heȵ]UԞuCaTU!,0c$lW%>f~F3\<Iƥ܆C(;׽UeKi\4TwМî8;hO`JҎ҇zbQIdM%q-Fq]7Gy+o CkN}BI,+MKⲞ֧]+z.dBTՉBevМh{,N =KQ+?U }/ם8vԍ ӰE!D-_ cٹqAiӮ'?#F `qjVI8+aI[7fK[E;k(+ &g/z>^2D5j@86(Q:^v*S,?.h3έspBQ&"e@خ^k,!JDƟ [GA "ڒwB-(tA7JpA!ыKJLT |qzqYPee$v.yۘyn-[&xβnk=}4=e`sLLj{khSUWO]tho]4O;hNr/1ŤSYWc 4.xKxy9a-պ "5[ U&BI"Jn7XZtu/.ȠV uEqZAsb'ɼ,h}n`LQ շ!}3 +0ϣ x^"r7yvD"QK#ʶVO t{eU_u(L]uhWA7{U5f'ՁٓQ_/] 68V'2B<)FrdɈEQJM}D+$۸f,yLߘU羟{}6k*M&LJfX)?襦|zDQ -5Bb*f0tEuEg,/ΐ4f;`}Np̊ 9+Ym}2kw؋SІN-':'(Kٓ :t96KGl 5΁ EfX^ua'JO>> ?zq)ʺe ,iq O4>rWOwSla!c ?%>Iˣj:hKXm$D;(Q4Ոnk8 BJYstN+{S\$~eq-'+rxq4AԎɼ8QǕ24g!H$[ʷ d!A4.WqRhņ8 q' n|Dihw#hhsٖՒZbF q&~\k&nuAL]7U#$L$4Q̢n൚qpEtx)UeP' FCI3Z6ƛ٢&LU"v - wfh$88}oVkZߛ!w۶Aעi MQ7&통P;4VڍDfq"Mu/s K:oZyj8mь L2zR9V~U. ];L T,`:UioNOQDwAMp8wj6b%Ce@笯OQmWw&mܬ*4?UI<!v6 :l"}ԝ"|cPEYP9bC}*MEr!3|nrd~tƤN(6t zѻGy.428%YLhBL,JJr%xT\mXjPWL4,!Azh^k9s8-EMsȒ< ܻTO,W+S>W\p55MIjI^󽲽~ 3svlM̽g<& D!$9tcpxnߠ<\@#Pr.u~NV|c,(kzz$`+EvlOG{m{Ҫ6S.Oĸ4-2^hLD?:1ðފ Ϳ+ZC~ (X..VUh>W$}=n9V׸ 5u3><9B2j|mL"]*[ΐŦ ¼^# n eZV]h_Z6ݾ͕ ,xPss_2vo\[ Q>Hau<̓'xcWlU^sM˵ 7T[|GF˫Xe d\T> ͿQGq{YTxNrͣi^y̲fy[MMlZitxЄYRDfy%r|(̶эDӭbTnk|\jVv4Bҩ6,Ѹgw|(G;q/nj0WZ@LXsW&Qu4JJOu鬮ۗ/5\a6,\U-PaaazT Oѽ QIT%KWGZm3_n܌tYvmBOpE\ G<k;2`X2c=2# gWM&N9UWbWqlӠ[eEz)@S$pf\ڮeX +ʐC'^!V*}up ͎O;hNZW/72x\es5]~f\ \1g 5D2GhܓxQf`vՆm, "Ou FRTIWyw3nov?]s*/¢%}U$c9MҌ,ՈϟJgLd%eaפ>YBY!K4bK4I-1]uMhE$Y` `{-Xk<xTq0}uKW#kdyH@s!chwH2_<$+Ȯ{kvYڶkn{qP9Im%BPΠdI ,i u`r>m߼t=X> 6ӆUð1=[54i?^:QݟI3^hc"KaqJM-Gs!<ʔS#&Bz >}F^щZ;MP6e؆I!R~C Uϴ-uM]#)=WNV.4a{qTc{gh&>2Kc[yx{B-ePF/찡#:Fi%Pu$` Ys DqRߠ\_0@]ER[Zvݟ50љe|oFy}zoQHNp3;@tlJhx8/_k8R/Kza;=܀ǾvEioWd$ ^w*y$4>QXX_匿#P|eaߍ8x lίr}a&n%o\D.npA_8 x) Q>F񗲱Ѕ]T/4Έ Nt4)[T 8S8QxZ:~_> Yg.z}I СC G @M4ii ܗC{/XY=F@tlT|fg۵l[I׽9}NU`0gNg<3AՔgA/DzgiVu0 pEMU]獑բ\g1]J7.0.JР @Ytj[zx/%wx[q),M6v*o eq8 ۺMv' M%3;&B|$ɪs,YeQՉLt:_4D: 4. $ZVtM5s/k}x9l$x(d6TTc<_r.,C3`a:D=碒j4+ _]M Dӱ:I q%¯t+AAwCc_sx Byg{5ZwlauD{yPuv NbF/%'wЌ'+pV=$ Lp[J 4}h艧d-_N!Є^JhLwm yQpUAEC{񠡷f})SaS|0v + \?LSQPԩ1]HlάTYbNu_`9qϏ3/:B/=_~'USqB&:n]Dg|wyp:((u2RhփRƛ$f%K-dwQ++Y!gZ\6a:"{[Q&Y#BfV+|J^z & XLԔ7 \}mYfzh ddʎm9y,qch@UbP-!U|?l'8Y\"O[|vyjfhtzH!DCyEeo$٩][$Djob\J"xE]7QKb'S^\2K|Y4[riHfbҁ MeL-ǘ|?$tH$"% 0uu(Q(yZ#v.dIEYNܞ2]Q-x6| ^aY쪜 &K^k66Ijx{z'wtq"ɢmYgx^e*gr)g<1X^ @/<@ $HxcSK5]<SghbL~vzq?x=lGi=Wn0O2t]Qؠm]kRS\.5^EŇ&y4yd̜KLuYot-PsH|RݯUfY3M5.^\Sc`:^4Uk+7j{YHsGنH@{ }qheb58N;%4~5[Yg YT,{Lו@.:~_뫸,xI$ށN$]"O [/׼,.~I^y+Mjlw?֘;$[#E:d*.D^a8j?pB`ԭ۸ EyP^4c/7u-:U қ~As"ǹ-7$FT}'qZÏH^xj* AŨb}ԱGr۬*->15 ٜxx`5˓ ~N؄kqwЌqh&u~]Zn9E"ީKMki[Zhp 3RӅ E59u> .j[">.3Á*Μw65%fѾmW%qɲxUExW,3L蚠Խ9<>=Ge ^oX kM5^ bX(S1YFզlV(DoUɞ #4VQT,0[,OӀPaр4ۙ"d*8Kƀv/Br&<-MzsWU3빋@&%𽧡Hqec^_h/;vQ#;⊃mB m["-L-lcǍmPVIUYZ>IpɶCV|⸖I( ,/g=z ę]\@.H TE/۰Gw\wې:6!8/!6sl:>Dm2%X%ף˭8=,'U_*l/%y5qZ7$' *L @m8m\uS0Ww!^3m^ڬr;_qwM٘wH }-6ւ?Z;R[=]1Z",O,}]W Ɏ .\h\WT[h|PVWK^ʗ.=#`04CniUXD^@ooV7cM5rDG4p6z * .@=ZjqƩuGWth1=(˲nqf;w7@IpNIk\DQZ%YN}2l\ xV%<RcSo6I[^g=ap.qٽ,^4Fo;ItMN?B{6EI@Un!HʕqcH$O ҧt 0Ug$<t p[a !Uldr+B 4"^Q1{[Huꮰi∢Fn2閡jY۶ új9offm{Z>Wφ|rEvp1HZc8W*DbEaez)lUJU`jICg%AjM?=DêK,eZV]Wc|}$ADaJ Hs\mHڽ$Y4HmDN\YKcevnf8b'#B`gtB'y}bH)e[P6մϙ~WIz.'=03ȨyFȚNE5 \-Axee96q↧U*v{\eeK~(zfM "9Yh :.UMYѵ,#i_ KY75+;QA=b\Qh|MۥѠjt8ۢtT{hĞYG9NrQZ,fT^}x(X1TA=ֺoA h6b=ʹ,k"` 2Ђ&9npK:ƝTޠz5;IҫAտ"0E"qd=7yag4%iQ gTA5S4+g:%}e0^icQM1Dm[Ga7o+'IW`CtLu&bQW`J7ߪ MdHBWȭusb|Y>zCvjoe4U!dKxDzܔrs3 @%a9Eh{M?O⤇N\7Ft3[/47 ;q 8n.ٯnzZ}4 >@IQ{վoz!I,j>z|u+ 8DD+1r>Gի9<0mn.lsi,˛&T!ClCOrZ49Y7]@[fX)˰Z郱bŞ.Jj#Ѡ~Y0sֆ*&~~/_m׷!"`r殫:9,OrY:JJZH:LeN˜F{e`[;)|fe=UQ$};XNmHpq0qp*DZ[l0M360WlyiشЅǠnbb=az=0.)IP{5nIwU=lVw GmM05 ܠuW!$ޖI.%{1 Wj2&t"zX#򤺂8pQ+4 g'HJ :vY3{&5g4BC>}i,yVש}=q{uXt݊$N$%0 =3gABHX(8 D9D"Jű%p0kksX>ϼ߻/N&~/dsn%ď4g&v[~_vXnUo,8*Ȫ ?ԯ;wm~׾}b݋{z~F;_~h>Bsh6=h''OBwz5;~s~Oxm @LCƧdH>T ky%I䦱8hAxMMS}5y+==/|I@}vkµڶJI 5,o3B/u3B2bUdEQMpa hhF0C/Ixg RaaYKA1 ~qlN$ER+Gkx;8s'sK|X@GB QE(ˆaX)V>_>d6\32sÌleISYcUcRMBlɔ)q imcDe.ʼT`Ld  CzyqYQ.3 Bf|@?h(N !q|/u%njX Z`1n!Tׄ/XQЋc' w_-40l4Mwy}]|';QzٙF3Ζ (Cya璅2rɧom4j{C dH/0# 3?Be!3dUt Sf~mX"zGOPIc{TEGqWu!"8 8yu%ra]6t$fᆡ~G1Sۈ(4r,"ІD%/[% KMzf蟾DE~aY:P7tB_}l8?ƦSN?AL؎KK)LRzI Vhxpvʙh$ H@ 锟I6 HXZϖ FW^B̮kM$I*JwJ, KG!X0aqv Bk&X dU㏳=ߋa*KG(Ò1(+pܶc8d놄k }n"I1}*"[CM4sY ^n.*)$*mI`Jbn5tgveYfZ-Q>4s$iz&\:N8;075ek̬1hr0W[#&9[_j `9m_Ӛ8MUrD%m:/O;%jT ͂gJ8ɫI40˂K}h)[%E2q1MdLe(TFNnfqI>fV8N[Y!#*#ehk9>m*iO[d@ooeܵ ʀQTjEdE$[c]2agi:%br\+$CD6"Q8^@rtMDdQ[_??bkA?m}Y *<ZS<ZЍܠQmGxȰ ,:Ֆ|U~ : %Yg}|,DbRpk!j`"J8|^)DS kqqJ*E _RZ*a& 4ɵ" 48 oؕ͏0iE/,T>1M0T4] RVd@~X<; cʠuмB3襞kZSES]Vl.A(#ͨBi iXb?x\Q5>'ϦDcq7; LQ$UQ:͏1A 6>;b/yIU*Zv?O7 ut RF¦acfIn5ʒPVxELeY!zÅ!^^[)EmjS5UM AYN=#ˀx2\4N~ JؾE# ?8!UGg 2X$gL(rфqoуԟF~V1ڼB3lB J6'4DKJbqffp}9}Ї6u<#}9S^*64plU-VJn{ B>́Fzh1 K;%:VPڈ҄THZm8P: Fޓ( Ҡ*>QP,&,c5KWk8u+Dmޖuh!b"E5LS:n/^-u?h 6ʚāi0;&ʕiJNj,xxE +Bߙ"H|J:KZYCbrmV-Q׶Z͍p[[hﮡqƣx)o"!q`*iV,"X ,iOwԀ9O"0 r'X=O0>Fn>@!i5Bi[6`s0n܇h0VtkY3d>l>V]-[DEI.xD2[~[ G~YY%fMϗWl!F0VibeBckX7?Q~PuϢq]Rf*o4gAFI&QWڗ8 $n(vJ%}-UO!#IV# }.> BywͰ;5 Q#*'4 aXzW77lY6yu;)ʜf+4_Fc/䝑2!feU'jh(&vZHToaأB#K4ek[}PCM^#} .)/FM]^ǣ+}HbxhYTɀdByIR0uf@aw0UO ;27fnƴUS5geZ9 k0M0L}mMm[=6G]5D\b&, "(ts'c" ی%8Ŀ|9@.qi}M|knV$kV൧q~-آMFʠAӿ?MQ/OdZC12SL$Ei5NDW4j(7:z8 ,N:\DM>5{ !5P[1Wb C2N0TGUST S6i>49䔈v"?QdQ4͛<VC_g, u pݷb!o0TkJ^N88*gGګ W2/@W"6æGEO1~.@`M@؆o8:L0ɝb*C9TlK_ѥ;&Dt*eo7?kZ7ME)|Kb߳?d=*G{& / *+7іm: 4m7O0bY+Ue,bpbp^~["[47'hsV޹$YDG䛺k5c!uiVӒ-^U'W}`1b{sr?oUM$QRA궮7Q32 Wdd/MrZ,7gH`ɯT K~IHĝ^2]$P?2Fn>Wi%UN=XL MbsMNx0 &nOs˿3F yF>]򵛆QV,E:mV_[9N5=.uuRYgߌ0W<&|[ji#;c.gE8^fB%4A>ex`YoմQq؄s׵KyLnHƠ#yg" FaTtS0ܯ<ˊ lL  bUe7.! :^\ S,(5C3/*~`R }n Kfu@W#R(=(h O[߫R~-P< U.6t Ȃ*`fÙo'!5`qm,<%*nTHw2pA2%zXOOm C "\_XՑ2S( bP Rk <߶R+W&_E&PH4&huP$Bc[.DݫeI|1hMS~H`)<ѯ-ͲS`i S 0B26R%͜mˑ1%:dp MTL|,*s5MT(.KHdY5Of)i}G1enIS8]u9v> #gq׭6jl?vkFpfA9DT x E(o$dӐNJd#kl`mQdJxvuDfŲ}ʧLfOgjԔ (]juڭѹ* n x E[2gqJϴ8et)mBcK*ȹ켶ğgR9>()=ߴU ]\9 P9l"/ sMH-2.t9ó~VTV8twrb6acG&WX8-)FScd Iu[iI#鴝jh;[0d Yh8$h>PC3HYa@8xty( =kN̍Koأ ,4,iqM54ê ~_797gS PN4 &%`'q  tmb߯sp~-vhH 684<d%c#Ҙ6S禗EV[*-MTv̾ޮb7x&-aYHkWucLwQD9?xЛm2k>*Ni/ Fޤ0]Hp{toHb昙.o 8qV9[*HZjj3iy,-4z3\QyqpbdA ]xssNfɨx!Hol͗'em#$tXokg.`OIR^g0 MAS|qq2Y \wt ]Rէ4#i0A4ee8')0sCf:ExE'o*`µ<ikKH?ąH( 5֗$ @WՏp:GPlC[%LMS[u:]/[1(,6p׻US[o pZ79zUjkF^UN5âXH ]ԫL"{Q$)hj".pHN87eB{!Op[fP9`k fZO+bDVes <TB+.ˆab3%+D.fxB*L]Şe"Qd2Uࣲ*Vѣ2%isدB9gٝۚb %ԯyԃ6섟^B^[ڝn=i7 oI=6u_`I,`&r"[X/ޜU@PM&^bE~KS%B3"_bu^w8U C4A}%ZKv27p\*pϩsmu#ʷXN`Tk"Zo;:4CAioxH`$Lr~BHaV@ƪ'J0-m Gt*J/("^"~ÑF ghX`M$݌#Fh.C\hB ӛhqK +b2at*4]3٭\5lE~q<:E -VI !ۺkl2qP SڬJvn`;9p m-^EN4O844=yǏ alɞͤZ*dy< `2zy_\v]VEAʼny2Og5P=s0z0S꘿7)_X=9Qwc\TɬhhYn+yJdA NDrn9g,2+t_w9 ~$ 9i |W5D5(|KT6K [CMLӴeP1z@k<[{R2K"7Ug5l1 R[s2Dwj VHdYT5w6{-*[e2*$!.L>^fYv>4IKV1xL8/<.<&c\ʪR]kcr<(-QgqDOYPMC ҈V_ *_b,k'UeFpjgϩfPmkfG4EyN44SZ\W);ʐtrd*e^Hoaa)$)B4ىZM%aRЀidMq\-=@K![2fMCNܔ#K#ڷ]O3h|L&˂,L3#mKఫiwwpcW0Q&ᵒ"%rxl :uY3ˀR׼-x`2#, ^ֳ^| C$q!cϏs)c(Jq&ohUlEK񺺃Z&aˎ(ou|4Ɏ%?"jJYEfTѡt;mHbZ owLK6H`^x_CX/xx<ݷ;IgA?N탔J<+&<^ v{tEWŦE\qSv^DVo` Fk=wHF9 ̋"gL E:XݛĎlxQǪY}}xS1HR |]Dx\ӭUVA8'/+|e dR~I#ϾEl/hR4 [fhy|\i%o6xYyCh,R)a̝o#<6Ils_\NWqJ4@lE8߉ ,i~;t)U[BsY[:邕;\眐) țǀ(|j\@Z, f$Z*HAT+)- ,+Ah^*bz H"wbgȪ3aSq99bq?34neaJ&S=٦) lE; UEeI휗 , +{9'Ir4ehp @*nڗte r ^-44$NF:Ac:#j.639gzA!'SCosT{&cRن5jMj4/ ?\錽O|?F O`>7sS"/LJV{<-Jcx Hx[8-S3F0ZLlljA5(tdA{{81u[\)^WD0\3Y15,3Ijw?_Zbyq,KDMQ&wЌ@гۖ8uaڲBt=ڀjScuAGaw}gUYmt0nDPj[%+<7zv6˼]Ox%4MR$I]o x}z6R4!Hױ\:z] 42B3*ێi8RɒFSkD5;i- :',bYb X&q}D{ tM9 nA؉xAuW/QL8.nwvlGДfb86,| 7G{EJLȏF[ ]x?䲉ՂEaA^^hs46sd!qyavMUEi<⤨ j}U(\ir`4$ M.oٟѠdM<1j\Nn+3 ^q&nJ&,;׈F+ `b78,o(T/M}f/ LQH=ce`J|[O]FJ%٭ΝI1rF Lj'V6-sT"X\x5Dcus1 a1b8uK7+ŮIc'] & 7 v$M8 VdAE/Fܹ_:4r+e} 4>^ip*f]tY18 mȰn KQeg <[^l5&-5LB,oy,{Y2c o^l/kayePfAyek+dw=0i/PGʀE4idn r)@+7T(ΝH.nѹ$?K`We  4X.(HT%h½+"Fmil1 j8"B9ʔ[UQGrLLf+_&it|Mn[gz@g>gidD^) Z6}i^32eoRG1TIW99N}!VxРStW`A΍H֜pZR(Apb,"$|BX/q64f>/̚hcIZi[d@W!GZhFqW4Zp 5]5% )JQq2R$I0>RJ<3~rZBI YNSj}7 g7,^]T mLECcVT y|T]W}PdQeLTĹ7.F_w{y}AO^0uղzu8>1NL2㘜E.mvbݟ!Sߖ6G!;Aw@5-\ag46uC@/qT&2q =1NwO0*IN>Yٌ~;Y^!d8Q$>j~ 0 v*Ȃ4' ]H$0pYP&XO *dw\ j_.59~y^*G}H*7r %T̓ Q~m?<_Ϙ󰝟ݝ^5YPp\]gRՉ=ߏ!f9S*j  (XPdJ%G9FU^PLs+Q9}N8}xxXƊj%|ӧI$8sLU.W5o2 MS5|DnE-D'vE>2Snt,LW9Xj E%^ J6DMjHE]wđDE6uH)1jgM5 H?Tgk+@Bq{D 8̾ vGW/qSlC͎BTu*0oCii񾲌!VO?B6qY\!Cצerؔ"UNΠf# ~;7y^ MN*ʒ?X Ըy:V>;fQ |jKAE|N j/34D6N>QcxtihA.Y23iPyc]RS]CWpL2N}Jq軙{^GĄhPwprwͷMaSc)W8@36_w %o˒ucUAUU,ri0wN[z6_yt*2SM v -UvVYfǍ`\KlY_gvZ9a8ɹp)9prdϲudI,6٨eBՇ('}i4] aKԲI\_1z7 xqVlݬqfb{<,9t֩1D :E-Hd9݌MZh#/ bja{*X{3|Fs5Q!k|3P P@w8;7s\ׂ q34׿e2|/I:d@dC eU@VnjͻR>vYzجOǭiߝ\O4?ݰjd:LD>[5wWH07P6'r:-fP;a?5Ap>b3 I0?><6 h qG#@YSlRpk_{lscŊnnKѱ%Log)P7qs g62SiʃPq`U={, S-I-i}(afP/Ҫ F }0=h(v3d!v׸q|;+ln'tD i" ,6F!Y{BCJ{uv搜kxaS$v!g5C0d;u R)|tҕdL?k#$nZ[c NZ *uĮQ46JH),u!9Ù}ѹ;]>?ZzTWWW*W>ju5w~w7?u_}¶̲J+4+2xI8EIJ77Ki>1n7Yto6fwo~?~K~! vMTA2ϫ*7l/MYd%o~zh<@s 4<vw8lk0y~,˻C,Z_dMx؄~SXν((tԗh\=M&6pM}J(Dn~h6jl̅ Cۯjն([,fbMy~NWܿIs(Xvܱ4IUgsq6E^E~ﳝ:& 9qegdY\Z?M_Jh$-|c_u?)nGTYPi9_+[h]DЪHsXG;ޡ_0QnwFIfW QD%9Eߴcˎ >J9ew$ay.h_ ;i/g=~ Ҕ拣ӑ[UJj?=D5~;s_Y,z:Wq$KJnA9.Euiz.[4˄&l)tX.Eu?ejV($*c^ʹ"yvW?ݨEѤv~5.\.+U^㸅8ㄑsnֿ|@!h2(,f,l/MwQ8a f@w^fp j##:貌,(8Et``H{VI^8Q%CΫT:}L ( uCir<%hD”;(Dx&xa^m8DN1eim.JQzk" ;51Re2k1n("-xeLL[k!6kµod(y,j`m)oU]Ћ,٥ÐzM3i/~ .@u7~l/Xc1p+4ppGpj+495 /v( ?g܍r7ψpz&G_+ }c21 /M>S~?t A@ADt0ą$ήF#W/:0^ov,+mc"Ԇ2Q4܃<%fG".1ñm⩜?9$" W/o8 s]NWE45~w֧m Sa}kU R5箸AB~@&RbY Nt I%Lh/rDl Ώ߭*[ݱT6w5tri༡(~m jGIAl_EdA:/mx|/ZFo½O?6/+L6H&%@@)i&:L?0=eZ-ϛ>$Pb1QDSISۈ&yUX$OSkkFtUS1*SR]~}hBIV#I BrQhxq>qO\x_TFr+E'R 3xuBtHj'1_+ n2Nȏv&EfŕK,pfw|R[^"_%}|@XnӾFc*$u)$i=RXv3D}Ay@]SUıAܝV̎s̈R#cH})I`$Y<`? -@{hEC쉰-bP D.2-K5-WLbs4KҪ(aRW4lEŘ6xSnHVy1*'~n ֵj̗X%HLC b!fՂ᫬{U'r-W. StdlY}+~F2@vG#naTɔ`=S ʜP#X~sH,iA܎–ᇐ*IC.fң`6fVeXDlPbXpʲ:Wh&K,ymcb]eWeBzf̬iFHk٫tt"~?"wV&vaUM*4/RsgjIē0i_ J?MNqJ<,2|Ċ\p#t꓾#-R4]| %/ fKJO<ֿǤ7M ~$6*^KL<% jhQ㒬XI 4b+%PV\B" _(0cPX-$ g 㝿Hi̪%YQNi şcҜpA]q KZݣ TU]{Lن!\:aǐEW( D@6YS8G@=jxLu`;'*ܔ|? \Ԍ=YvTenU%1i bLd EM4@E7,n 51`fUk4PFlN7?[w:AH$ҩ]R:BTT ?&m!}b!cpt0)O@t@K%Q(8~oP,_@З_3y>RϤ8 5;$Y溥XYUIJWK,r8n7_b*nAmB `wb%jhկ d}B P.v_.f܉n1Sz̨hZ=.6:aWjFI B,5Р wEn ďntb%fMUL1>O\Ȑ:v#*G*$N6 W_WJU"6 L6_خØJ0o\^o |/9UaKWW_E;Y[9#4@ R 1ŎaMWQ|28*%ħ=ɸC&~X(y2ӃBNU£LmJh Qʢ0R/)n7a[15:.dl?ؠn(BORc`Al`9NjR3|]6F#82enlg_\JEnk;US@74"2"LvaEJ ä<(Wh$b`":ЀCDMeWfƷhũ&)f:hyrE;uL0ޗ|6D~&ʢśtVNSL.ڳ.3-{2DS֢H'u;Ibd|.xTwnQ>&CID?„h1\WHeǶiŶ|6d¨ʪp(Z4 ״vӼ؅i!F"Vm emS!J[V'-pt}5\_釫}.||>T*=Eړ 3EV'$r8%;c.̌sESlr#q0DP awف%*Ai?<5|+YO#Q8ژ0?s to`l ƍz(v@y? *a sCy'&ҾvU󦞖?2K2 vmבr ON[*`py0h,/=/w-eg]oj 5 4`nSf6{ϠT.!=aӒwyU5.%-ޔD/0-Oj!u4Pi3Xb&:iK}1@'U@s&~ow8کRQtjj<ꋤ<ӥRi_Zɼp^^VI;ڬ1(o%'}TGvGGd؞UbuMV>rkddѡ)PyiUfmdZu~5~i a5RfuSq@6YQeU) r)"Ful N0 }2P&6 ǎ{נz,9+yNFtWlf8it$wi 8= H'-:9q'K`LbuhI#s4-Ǔ ĕpX$N8L_oC̤9ņ !뚀T;" 9GOI&CԎc>N&*죳^}Tڛ9Ui&Uy} r=w4fvDZĪHI .w"*2'K yi块 zı ׫J,L!F0MN%@CA8,E#ԩo0'#Cj@+m3'NSK4W >L+ ]SeF8E, ;1/$5l.rh{ts%/I5ȋ)>q;XCvEQ3X6` e.:!2z񬫧 a6@hL36v)5W#F:wZgb}QWpB<3t*Л㾆zR=; YZBH&YQit`ޯ0)ppM@ Uް}A.[giѹ4 bu]u Ps.TqAZwpF'TvU8Kb*tސdskx44° Md:zeʳZ-Wt9~] ;mnʎIn[F( f3(g{,/_FD~WWP$l<Nq.x?h6W֚v#<^tzJ ̰쪲q&qlb[Ue) ~AzWkkw<;{ܱN cWi!3Zp$+*/Ņ|55yvY>t+.NSX>So^Qr,O\V~D'Ex^AǞ(~Cdždm6aoũ<5|1!4Μ5n탮6ͪJpmÄ/*h#NSpln<((3i nvF~􉏠dck[mbX:}N"єBĒ={ggfd)z.dqVe כf0xᤉ[8/ > 垶0j׉/JG9V~xFƏHl#7πE֔ZK:<޲YŻYaUyU?;5qߺ8 Ś>gO n0*`|긶+YNUiyD_Kk~2 ykwͼ+ٹڤ!5 I^hŊ0ęBsˀ$; u:-X)!%B\H/>2G%$?ƀwnöKd⣡cIhN8*#zz+,q%S܈A.ni{t +Q$w-&5%7m$16>:Dt sbIc3#"4i6TI[`ݳōTo3<[*zM݃b2(3N$]ڥkEYbi p 4WZC J]$1qײA*lpp48;$ppwj›"v~3H;EUwtQMm0줴ᖯZ˥&*$ q p 7LAX xrN _ y2΀ (9&9F}%QDF%I:uՒz%{]G!,j=':N %`Ie>0f&otv DtNcjE(=cUރ44Mnr:Gzq9`B{nUPa4Mnp.v byb ή`G[TezDZ%4?/:\d3'˘UQL%;x#`v+8+B8u!ڟ_iUV0$R_SA[:J1;ڇB+˼INҬ tW2u(}eT 3F8 rWJo32.W.k9nϺd+iL$GCЁʴ|Cޚ$l.DGWvO4YɕѶ@"Oy604S$J7A5,\oyy6;Ybl2 d6L_Y¬.I2,M{U+8U;8upף^yަ!Wh%LZ`YGJm}?:~g;ೂ:[#Z)4SCEC/9xYk0UT=~$yE<è;M +m:)͠ø~}1]r·"0{{[hNRzׇpi#Dc6ʄ󳳋F,: 퀭BUYW?F 'uel}r@0Ə 햖UWD (L6xݰN,=PPBiu+8KQT|Ns:] } ڭ?á!`bP;;.Uz=K'o}ˀm^YUV9ثrBjUe2lu l DGҷ>t'{*+v)#27 \UPzZ1ѭ)0m_~! Bf&kETe XW&$3﹌&0jV8cŪRlʞeK%\%w#rzΕ >$:]#R(P𹊎W%OJ?-^ZEeFetɳ`zIsb?SKuY唾E}4;?4ݡx ?{)UibqjOn4ARvqv ȧW~^/Mў-Ghꞇ2' M|␌T91JfVW '=0b L/o|m^^^i%q"Hl+7*wrtbDDtnoݐQ$`/2 {6~;gėȲK<-E|C{4?8G* ˨,۩b+p㍻S~6@@ /.YV'q>ݠ>ߝy~8l7C(//z*#^>4$ `w, a?54jd XiLNj­˽4y3@G:~0B!O1&8JL'm${wdCeX6{/\aH iF}A漐sEF'KlS3R_}p,u9N\R?RStDW}2_%{X?(:93۶,<+hڰD'_/4 I[ޖ+RVoe@vH1(DžRtm z΋:?ݢcqnaþvuf':6zXra! m+.Nϝs %C˂?4-cLMbfi;*^s.B$#i*?w:cfa]v2]e +uS H ~Ϥ٬箟[Xr+a Sd&~8$2ir0Á8E-lם2IY T>!IsM˸Bt$#N4oT-W Lݫ~nO! ,2bWm%/8CcQMyc,!#p^ܲ:w(!=N:̀x> e8F@DUUq-CϏ%Ϫ>.[jՎ)&氌"g1f8疆픅B>TFWPoB6޷s=Fs~">FS1Sgm_ 䧡Ac 8ϜD cnOC ᚿ?juo)( tQҊc9Ѱ2`LM;ҿǀHؒs+.M8vUeZu)a3Sw&A,3/9 ǪDA:Aō;TO-{?ڄ`0Jԉq.L&=p7xiHca!r]V4/1( Gl&I8Ѹv/0iJ5N:Oe֔e{c!8|Ku+u3ؙrĶ[lWῆ1ͫGKt\6w7/1|8h2ɬ '!yOAP!(A瀬?p8u;to&dNjdG5 "{GM_$$)-g/ɫ4MA$*K\S&m`t܀S%cXxtv%!3 kR|*܀#w쐘閥ךh2썻;U 1) ,@hyׇzpTYJKFH:l_0 IቡXv^f$O2bK*l FT}I0G{}%.'lR$1jlz2U]TVL9*w5+ܜK [2 FA,%Fi{QXVU$V*m`'еh>"`jm ,4bRFNxՊæ( d! ]Zѧ 1.pit~ o,Dta3 ¡װ+c3ӎEiqڹdƚA}deOQ}A4u5*r@I1& 7+Oq/m8EH (b쒅 +E|?5%GHW+nS%E|kۉLY&26Y)J{5*/?6W9szKOԹ#Kǒ+^u^(5ikpDM> Fa+c%XGHp.)TE!b ^e55a @$e*I[|a=#QF[.nQ ĜH>~c.55҉N7<ٵ18=Z \>/a^Ȍ; ͸kN#_/#DS;,pvRMbh!XOHIx x Q;~sqj!$nL.ʉsӶb >9]*pULo0>eZ?>xy=71q "YR ˼\^.OxvY4}f߸GV[}/D~0^]f8@0avv;1T ~ח.=Rh?dk=hc)Ofj SR֗ I8FZM7 C,M}zlAJӪB6Zs(b3S'oh_uMWuLW,講97L;=RiTuU.#S[]l|TX>R4/DR1q4X&1{CCuk'njY~t[s#c02 _X߬Կ;3zeap!MD4c]y66æ?gfyԮΎu"3H4L}|%1)Q;*+ MҒXiD:WťLG2O.=yLY`އyHL eɩRjTYIBs'oaBt-J[ %uM"ĚKh^0Kv ßnP2K4=H]Ǻ L4k 7/f~ l?ԕo-,#$vu -:tX.unHlX?DsFlw=:l7uFf$YZNryïPBD|cnqyT?I̊8in,I?'(ڟY:s+[Q$\t?flns~͕(u# :r1ևxfn:!E igKOo|^0Kp}s~>/>ƊW`sH[RWKMo SCc7|X/-*_M͟!TIk'i**v}3&'@ q8OaZ *A^$ݫ񁏰n UYyy_w2I"%Zu&?;٫GXhf|'$3$_Q^JbRñt.l> f9Xl/KUTUo i ^F\h捒(㪊+I9JۯKo~ pxV8MKĵK' &7G287pRp˷t.Im8*!VNp&$t}$g&9M|#L!z]XN#6PkE;_>!ԗ=OSSfgUbUCe\xGC;${*Տ\N"/D߀~ڭ̵DumdƤۮ)/xY,#ˌq^5yO4:Uw.W06C,11̈]izSI-qAfӔa{p~CQ#\yMoy5E8ai#0AƆ#$^EY  D)i7 N ^c7A')c#(qu]Xuc$tn~}k,c]שPt*;ƒ9&-E ;x~rn-|$?U*pO /H]q83OJUYՊ(|hh@*\9iHžn?+tX4ű1&ϽކhS{#$%ړ⸁OٴMe{[l+%Vi-fK+"P΄&ٍ+MӴ[.A蘃Z[h~2Z@˙jNNeYvQUj`z@BCx.~7xHʳ ohM.v]گ7).)I j&..Z{cY!k Ϫ Yy;mY:hb!K2,Q>4.8' |V^x)pٲ ôa3B^֏,Y_C8nS4>mq I's2/kuijo|Ǐw+DgsBZ}|{Ff'm 4.V8cUtleal<ݱ \ |HD.dhݎ0*+K\RȠK TFX[SO;Z0|Ny1PƨCΏ_dp1Ĭ8+bXVu1\8Y9b3@&Wܱ] Flq)yC;[q4L4>?ɆfnfGݑ$$mUtl ĮulaT6\&p l8S#t0!r&Yq¾[H@4yMLhIKh8<myrՙlDAa!ۉFhLj07XOtH)6R4˲LÉK0İNN]3w4@ Dt&Ҹ9~\hسj8vk ~ּJg ee+U^icZ>Y \saWp{0cTbG*'/6ɤAY}ufpNBLiOBiEgy<1MK_.npew`S&D(O%19䁧lPy9X:M5{YZ^af<SlfUYvng+8gzЀu R^TEA4cfHg8U{'ZOMCsoC]ItdU& >m6IUn? L~ۦ^:HLUffFx⣲HX d`[9F}f9 6Y][@ r,+U%S;4]\a ?0 ZEPo}&8tUc`^$ҷ>8 lOOÄfvu;1x1\/K^ 4I;'@?tIQM ?Ϸ"׫ 8 Nf N͞,5 hY$> g/3O)^_b MO*`LqS;w{Jh2 U^>)G:p _М]lǸ[Up\Cpj=BbAq)Ep6hh~ӌvCSjmϯ8I4ƙ!^6DBYӹ'@iC7SGp;~Oo M{髕"4Q!sS oМS8#\MT=)[;\]A8M-L 'G%ţh?h*xg~ӵ:K"2"gp+DTUo5n4;T>mk#vQCi'f%lS1h+mzk+Km"1aWYBL:b!13T-0գq*6A$ LRO4wu`ْ\W{s&44|+MӸxW>I< b\Y_)bw8NY 3յ'rj`Nf5QinbVgrL K=^Nf ` G<hi!T鄼x GMTeG `3#6u ׾f)38v3IW"ҊGQCXNcdi:ZiP &~7x}h*8܋c%!GI햮2]](QzVBRصPRw3 h ;}W:՝8:3 X(pT 'xLs lf;Q C)xAEy)&nOzII&8h{\wұ{ё+If^ٲV>!7{d~'3, u'Ωpg`88+X2h^[o'2`]CHOALWՍ⨗-e:zcj*=,̶V~ w]/VTiO1:=Oj qB^0[ EUlnr?] .j-P{4$Vf%3yড^s333L^EݜӤo)+VՒM`_g!؆MD>Uҫ@~Ct c=4o:}{̤nMm:?c:G%qv@m ;!v\D?@CU"EWq*^p./qav EcچiԵ\XQeI$?BC4>}i,}WTUWS{~33qu 1ӞApH aK>@D_~7PPž@ ! "1(!8 DıHjSKY!"iQdF4٬vv^ÚCD"ȱPEWU]-DD'xQ G#7c"I$M7yseh.qlj8tp Ф~G)dNכCY52hb^\>ui.mZ!jUBiSArxcq3Mm[;@\2w/ (Uɳ}L1" _F~~B5Br>DZ@ te _ `iTf ByXooלaBڪ>!-@貾I$OGA>%9mǣCjY1<=6H-TET9TӁX' j32Cwwmm_hw|!0TQ'ժoT?> &5/;¹\imŒ&) 3fE_,0wW1]pԒFLuaLlrۇۇWQ1 ׵MuU?ʔD~VH=HE7' *ꊢv$=m}V"!f] ]?8#s0&1t,lFqn1ڟ3Eݴцr PCac#wOOC ;\WA*hD-SqQZ|o;-Bn$N(ƍ @1)EҘ;:PL 2mKT/l0I>U(!JP2=M) ۡl\HO%>fq$Y⍢HnUH//uyB>ض??!f KAQQㇼa4YTci1"c.B$8Gױj; ɏ\Uϋı'Z>!7yE+zxѹ]28Uz]"d.?Re9D,1GWuAxe,%(iT,Nc? о/ū'X$c! )BM?IU,v=Tb ]5 U-TIKqЇ{dZ7ۻj32{H+j\X/o?%"2z\KI5s%IB^,rFZ/lD~;b VEi6ɎIMj_ cƁ-q=<~c3Ű4tǑ<@8:kJ,< fUoW@~2]8Lzm>Q@&*DJ?zFGixӡͅRjeLq<FT]tYM5o(, ?fhk&AG4c {I^5$D!3mH 5d&m-Nw=NIs(NHD&g;^Rt[ %3x4)+bswH>͕1Y!2loI1mv%gLeej\QW8+ fzK5]~NRGex3(6n?.X>7FM*H/y6U$I$Oj[ |ٜ;LjPAd1'4ˇkbiN0msRr: -4(",Ə=V=z;+aخDE7_sX2Їy2i27ąib4Sl* Mcu`w5G*tiR(~a¼59!F8gqKFRt 1o?-Uy :..t3K2(|LoowrM *RZW>9uf18CsCأlZi1UmD"R!(5X8\4J |dϣϛFDw@M+0ߝbCڱdW*IP;9 <$6˻&zvl. ^F)AlfzyGOidea^0m>sSiY1IiID2ں~EQVdX0@3G۳~۾B>wV!o]ҁ\ |',ϧh:GSB#^|<d Ŋ4N ;4XMb?#8[cGȝ;bh_K#y:6h-FJX,Rcۈ>3@NUɴ[Un}D)|ÿ9|2ZI]6Ac*AD0wFeB?Q4Cv K< (NaB3LGî%;w#(x:.|e87{SAVcmf`hd1tȥ&A4'Avce:Q\yR4vݾ":[1ns>:sA dzX hXL65F5(Iot~'Zmz5 4dtl~G>M#Ҹ(2}ݢn`UU'-M̐mپWhbfM$/J:@0ص\J !%qV$A9M!q DgY)#SLعfsTjNOr"_ QmcSRT1sNs &HR\)Ő<<8i BwgL;-l-()r4ׄP^lQ4Z_F21ѓQbh$|Rji:6!mnЄ/S?mNqM:MМdMˋ"=Yej]{O._-F at陽`%ǖ>Ŝa[hNŀ%+qhw"cS˧} ʲ)=t]\ 0/(a{s/jk3\YTqJdF^sh>Q%q7Z"`Tv1~J,G(O"|FeA!vm; sN1Z0T3 6/-zkչj(r"An59.!o\aBVCǪX!Ǹ?$ &S*p')P( 4i&]- "L Bi{5}"1i,l#ܪMP-a6@^u衙yQ屑F4 _p3H QF:KEQ(Va}G]ˏĘ}ԩffy6Q1[0&F7| Q:I'~x_nv53kK 8e+4824 :(/FL Rg ySd ¨Zw ᴯj?{ 1){~u'bl7"3Z`N\xT!+D4VpX\fQ@͗ Hw ~s833yK59CPP~1񖹘*$-GN؎ϕ9US_fRCʴyȐ 6m6;oT2NOCZUyrpO7peTf^GR rT4Z ZܻڿEc4U}^7Y\Mw vߴє%CGS`8nǦ^ІiySUa~䇀5#/EV/l#c皪bĺ`ٞKD6dEq)@,%AE0;`ӨИ,Q56G#`yhHb8+jj[_+Tp=C#O&jM%TFy2M4Îe +m=>+?5h$eѾBCDS^/KGvXR2dCw B}Z 3ԃwbdfXvAeZ QDyM Rp+;-SpDŽs*09D-xVӨT/Rj"DY 򜗢Z~@WVT'C:=S2lgoq5Dm%/ <SgӶ'C ` ^g$ʩ_.KQaw tRMS5 AJ<#BmC[Xn5]+ց˃Bt8,0UOd1}zWS/8 9脘t򎝑$/GV'zf>ty2cG$2"=&:'m~iA%'ǸQn^A4X!tpiJr~t ϖY0&вq|;AFIFm0=]$FL@:.EA/yUoyx]8Tr&6><+&i%pŦ]!rT|`'9D'aCCh6. Du¶yV>'VǻaOY}Jͩ? 4Z~nCLkoH$MFT6hI?tsBN+H ˅AF-.[CkLXI׏Ҩh|} S.Z9tҿ?$U$0Ț&ݹn!cUNQ|_(%B|}ЩCT!+xπ&8*zOxp5h?S=d)1uULX ܠBv0) 88/o|95Y TuS&1AA`a'vi0َ^&1;\U-ezd ξEZEq9ݸ@+eXKLA,?>T65bu}߸LɗmcЀ<Q/OEk^z[' ê'au3,ޡ&;cCYR H0X{\\F5R_*> 4qEyv0Bˉ8 ^~wƀbqgVjg-bhEi^݂lAZY̭B`|媺^Zm},S8`,_Ju,Ր=.abX0 tŤ6y FumrTz'4O vR|'_ϩFUoެ) 1{U" {Z^&8J)4nQ3Ŷ_74< )4&$)JgN/ a6(0#v8gvGMl<0?^`n|u XE?Gj{o♗u/\8$RE!&Oa " cVĬ`㋢S&Ρ$*Mà4`O {%q7/@ @]'\oJgUKWQhf'yC2hWn*q>l[o9c+lG0Fs`:zĠr/NP9e;ܜ3զMgO v+'3}A)4, 9Gš9mܵ?< fO !p#-ɚ>#(wH?#69d[d|OL,tn6>$3{\h:30h8]CI=7߬ߵJ]~ [}aLM&J97n}ؿ4$W1<dknWJFt^v>4 D~ˊZPӪ&gyJ[dLAf\8,aHW&V->IE-'˜oMw?xUfӫ`j\Q_j}w?q hfX̟ub?Mqi14MUɭAFu D`@Q9Eͥc<[Խp ۰:Ꙣ^زebG<()q"Bﻤ)=3IFTY%e6ͷZYջHCRs*T -ۃ\4v=?uKMs EcwNB!OSy6͡ٮ-3:ZHXA.AP# ~i3YUNO it| ;҈꺄ssM 5O`4>AqCc;r^jQ9P9L0q2q8$D7JL$GNAXr욪:Υ큳 ?:0]Ug]぀yU?޴@٫c {TpmDU W߬P\ 0Nd.{Ciĵѳ'Tk-yu~ Y4x^ fq|.* 9<Öh+RU BfksŌ_ARP{4@ʰEhG3},!J}B3-¹*~_Cv&'8Ub?qW&p+\Wlk qePh?Jl!%#Bo7~k_kBlS[.#\x1`b9d Y9Ww=, )j !^sXNX$*0k^vj}/CTQAp'{ԙ~$dٻ\r%|o^u CFw-5kA/m1)Q<ϩʔH:"¬"5{}z| [x s?)4 |M((4iݢ\в#q ME% o1@4 Tr.hYfSh ?M,=Ȣ$fbo}1aQh *U=<-vZ*ʶJ@3.xtB$ti9fO Yg\47-W'7~2ufsǓg+cٌZbαԻB /ƋkBYVǧM~@lC1qDoexZ0s_].8F~C^ &E|SMO?);Qr9Le}ƣ6qL>N g&_yuqW/8y}j4G, ϒ"܆ucڦK!gyΨCfAŹhK6Yrt]ܽ;4Qav6ml BcK*87.YP:9ׇCsVM TSlr9w"(|L~ Cyϋy]3ȳd~Mj3}/ zt[f)ױ Ӫ_+b$iN0f{c{,gzB#4.)0$K O'sS\G= q̩ FmzVGe1Ivʲ<'w3OdE cI`}ܳzqJCSFbsRaaۀ;8t<>sRFU=l;F3&hvƾ_G,y 5-yqa@xJ<%{b% ZR=\k aCr&]XẢZ0aG5hTapNflgsG3Z *](2,˰XC0h@ 2sü$V4XʗK_aZU *E1à(]~!_?ڀDd]Kd.ٲzW5:.[o;4QXgh͖{.Qp ܚwعZ\є'h9(ʟA ^Y&A Bl:卢柈 fPo1U5gvn9=iN!T/Ř{sHgr?<0H(MaQ4y4ainm\“d!~ɄWg45oAČ_X@YTb&P`y<9 8?hgWAu4%$Mo346Y'*6ǑEd{^KE3LVa#A)V)lR ƸL,Ҽ,L-4xƋMp סˡv"e{ۮT>q:4ذ Hk~M39``I/Fty5 i,QE!n~kͱvgM9Y15d`T. oůau|Ul M];pNܒ[_mh5ajJ4aSu$M>2Y 詖Z(XF)d\chi_ jU%4'doOeCqX4 B> 4GsvbEQt9hy_xk>Rqt_@[ۈ QS@ln|$Ƒ<-qOe8J/{yH$I gmAܝ(brӯhP|>ؽ> ;)Ul'[GS3Wq>"DHwP=zeU K.3j&i=y3-5e>S]ī*6L0K샏48@472ek;JWu)e(]X6˓0/hݶ$qxî`PgZkOvt*|Vϊ"&jsS*ΩN%GQ2 R Ot ^},?;f~WZ݇@fi'Ѩ(?StV#u% !EX#h`vZ)qK5LП$΋)44m?8LZmwT*Nk:z7O O &3?=>^'f A}\;87Q9Hdp_RJ/z 7o|N_!XfM7?zn_6{8}] -$AzÀ=7ѥV۶TK*m;`' j]𧻓܇ S?˲kVȨhkex+|g+.˟4`X9$'I8aǼ83D/%mGV UH~y28ڔGg1=$ʵ% 4KI|EsIR(g}}łMd NUuTFrC VDő4}YF 3\CL͉TF(S0EA,2&N=UB I~TSz|}9SV@oL8t|TZ9Poi4MJfhV:Ow{aîWV}ˇH)4Ju2z_shq\$>Zzp7zP 7LĀ󉱝A1Diaci[q9[pUp*`ܞ(`E$aǞ>[&AӍ|΢ 4&R}ϊ<aOFwM{UG;8DRnM 9Z3eImN$TTîۖdAָ1gLDRU9.jo "i8uۅ>u)Fuբt \JPDUrWF 7V b\WJ/*N|0U]ӝ, u[xQbQЅhۛA)dv XPP[ծ ]ve>bS(EEEsnOcE ?W,j}b Qxd_^Emv.vV(`{#?!:QQqɡ\*c@;(tVFŦtɴ'zqK] j4!d]/ 1xP/9wNJYG1~ 8"L4A@A; Nhxfwҁԑ٘6]~YyV[u ;26O9V{FkK,gM&Qc/׬ǺɢIY^M*99]-n͞ڬ N@/ oP^(GH40+^ ޤv>0]Hj8fQ.e0 XћŒ Ojoz6󗸎6c5^oaA24EuݹB<~Xe7==v CnUޡmnj5:9Eo˳+0Қɛ9.s-YcKӕ,ӻ-9pigl| 尪FM"׻fBCA}{l]׬YkZ^f{v.-Pb;A6TBM("RK!g{^j"R@h@D$&&&<$ {)P@Szzo߫s9gso?~h4K#n4}s˾uNh?x4ZqkYa٬֚OdYdAQd4,˺n|f?}npw.  yW*hހRbx%$O6U(#*3+Uo4Ij,IH$#$}5jh;'72('IC6==v]7 `c껞zc&p 7_9ְ܀C;I`SM7z!MM0mǎfh% | ' G_ n8EB$xQ~AFJ4r𬧢" MuS$XHL/0d:$ 7xv*+(*s~4M0m>ou:|- i4G4 Wy?ס<[2ċ0kvmF#x5#{J\ۗ.,fM#MK囉f93赀H<4]l—Tw(u0CCNh -$㱨_5(&$۳iN|41 䩪G]Qn%o|A}װ ̋ŽDރر e(@e[42k!`a/{PBmCu,t:- ;1*P2ɼ4 3E&y_DRx=ܷm("8~8V^UVߖF;Ȇ¿ٯvS b RK'SyP$*ȳLqqһ94X~w TsF")Djg/(@;AOuY^ wY&M`%0 KfKcAyq2xx=973&xxvOjILUUuNZ<ߚQJ̠ys S~ilc7:eM, 2ec 씛} ,A,^:^bSڧxh+L_]_?4MQTQQFc ܲA8T>eUAp P"ODcҒv?ׄ bY4b}]?˒pm=/_bK f0}v {ޖ|[ HtMLo8)V0L BӒ2wO&AUi$K XtlzU7wLJNA4oGߞf HyhЀI>;Ni:7F| J Dt#Jm'M-A6/x$@;3=ئ~߹UfS@9AI̍~[ ?_иOF]vvq!Sjy0TAĘ}ըtxl8&Bճ T1֍3ÂMyUM/C9rp>Xv/pINg샭~;gfZDcfJt\PG QBuId"N҇KT{x68AX*l井%g QxDn5ӂ_pQNO4.4,ajS"HF 1]*4ˁ~3*ww*8`~͢Pairy^ԉjVGH<(EIRt;xQ\k75ZٗQ!$rT#hmP;00<>Z1'bi 5QT; /;XPɢ^b=PIଅ rF7ض[1=\&T%>Ōcv_* JL!M-V'GJTW3zn[^PY0y^4T.saP"CEzD=t ~ud ëUSx@dA{Ȧ\A"̀myI:WӮ̡B4W[ =4 VUx"0ƅݲq6+Vj`{۹ []Jm6%U +6WRuÜhŅMT/vH@KTei4MYfK:Dwd>p(, )!$ɊY9;G[N>J|@u4DxQ%%&T.P#z<MtvT"벪(5zcQbC}gHntE1~,iOP\WEYVx*Q?@q8d |b㔗 #٫OW,0r jAݨDz QןEJUǫkmh`<9P"j \|ff5K%& 2hD啉 n"\k}OD\j 4lQ4;f__iA=ߊYK 5S{˩I7uF0=՟ީgG=ʣ @ jjXP+x'<'J(I25)t9 XVك^8ͬþۧ:B f¡Q᭹oe 1 T:a 2*2릮7F8Ɔ"O?Ψd{EE։XMHհ73Q=yPVg"upktTWdP\ZCRU@, J_Ы-:`^kN" TҴ Lf"W7wztp/_ BąN5TRAɂU r)l}[< TPȣUJ3hلv׊X|}l@̊zQ>+UШm)6 2~ZQk{"6wb7Kdw{S%+`5#Ͽ@4<`;q& ou<rI$*n̺%7Q f_I?\7∦& .V 2hƔO߼3&sb<븷3tcYda)U&(TyUNЧ:N>3/zqRnG"/bvClx֐ rC!xIdGE1N2? k$(u );Ĭnawq@'VEoGՔg+.Wx&e4L|/F++%a8nU &"{]'q;v`'nXv1Rʤ²I;Y8 BKI"kPk4!r;]A>v2ur2'O8,k ?i}n4zr"sA~"&wwi/x|C1.u ؖ5uYϛaaT'cNxYǢԅA10 ;\pLC5I,UxT;C<;[ol|\Y;͸LAEk&AĎIMDRBz*ͧ7UbB'Nv~H$|ʩM}I\$L"&oK݉LRpEF7C#Z۶O薥 節u~Y}ҍ fدfԈFtQanYgh.sŌĤwglͅ0*]u0~]dsvt@ DQ:LtVƪMM9/o,Pj%zE)_biZ%kXý"(@-5>[L.*':.v* *DH"rkf} !7\uT2 N'E[LU+F~@`s=s_.["4EM#2܂`S-ŀpY"+T TF&8*-doת6煾ۥNuNnu Џmc)(׋ܖvjOPnxF OOk8:Lܱ ?\y MJdNLxQ *7/}]ސ)}W&L2Fݔ2qfb%2-f:;\q0/F 'μՎSYS}rGśLCYL2άLܠOdZDSӮbd2KOjM3E~⸘i0/(c /pkkpiwhh`q~MϩWQeaSWQ ~Y#n0`r />1Dv7ʲKg|\/*tp'הbZ z'AT"{wŅ Y`{53'A2Dd&.LMh:^P&~ETS>GTذ[&HlxY9F}{QQkIY(Dkv@B՘BU2.j:ʹoV جe»ɹgv}O»},D!?=/yDt {qCPV{;4jmףV.#O 'GxQBv/pٽ4K TAHH,vV=ɢfL9>8xǞдnNPIM!2faajs=\ҪC 6J.$X{ {idmӠQaKh*#5{`r`G/c#y Xr' 4w, iDȖkh hj{ĵă֔@mҞ|p5ǘ:}</_q-ϫ!>tEU6ab)`;(q v-I=kOW%'<=qDq¼'*<F჉F5.X)>-i"I$ %ije? K<#B%:ַJY:ȝy^PyíFQ~j.Sxrښ"UDQ(B$daFP4c;N~ N2O8P=*954qxkɲd9Q0Qa_1Mn~,XeWGCmNjq+O|DX:U][jv:jNB1EbhXv j4QBY7pa2xam /FY;d$72bؽ>7I\&yőK9v7XpuuE=@ipL8?1d A@HSuwŲ:LF)6NS℮^{  ^Gy: #xF^N/6bQl! )Y}`AV?D12].Ch"?>wn5˘MT9<vei.%-Du]3LZω;pr >Pigܗ0ELjKj ]W^V4ѠԜr4l1yT qCELq8L`@9oʍt.rBmX/6 %8NM2 L.:,J#Q$I]݉$YTTLoP~77wz\NFL\Dh-݋Gپ_-7T&<4}{sCMs}Y $lAm[[ pS0X.Ï)Qǡ:^ˢAM65("Z&D`-]eZ&2H}-6l`׉,ɸ6P[]ljߝ;7 є_JAupLR]ݲ͜ha:d:}ESy[ N鳇5o0,tfe>EnK7W+\.ᭅA$Ԅ&DU;tg3?u9Yq٨3.'v7en2mLgXA'NOW'K|>EɴW4`hāg5P!AȤ?N\;(YfUYY픮TC)8khC}o1Y03?zX8K˦)[(m[/H[t9*)/QTbB|eCŁ'ߚ"XwD1Hd}J{KB>ML^$%Lp )xXb|]!VdYJ&Cmgsٜ }ϋ΀*bv"oQR'[E!a<7_VaXr{ZV;/xYNɔrѳ˴U3s3$L9UG>O%gUiij8m G3W$z_ErIx\uYff5O03S*7VׇFI>TyTi\`x@|_k& >=W>ӳPAǺ.J"T\YtSaWnV!1y3 \f~c T64,A4@)ܯdr(rX}ާt8͚ S "i @x '/t`tNm;_QW5eLet0YҪ3> x; ak+h^lr'qb7 :7i]{@u饦RJjX'ĀFPl؆ L(M*ԁkSqʙtGt 8Q^dqdnYi^4[hƠsitξs'qTL׳搣{4CkTbm^4KȽ)Ƀ \xtřTE\ \RfMfss~{tUK'}l9 Wp2Qo.V&}g`2tj آI"H7=L ':uh!J4ZQ{>}.,x߲24V A Խr_yq SJi(*B5Ru;h3J+*˜dJ1a#݀٥Q-9G؍By Qc*.ƣ 2WoC™8c]^kSz| (FŸfuP6w8ZǼ4g7)\7_P8) p2m 4pSO:(7*&4Ξ4U UkaSƝN )8Ǻn4^Q4 F9^Z aR!ͭp(gG_zjmؐ٣# (L!Oٷ 5eu+ä,~^g= @t_EE#i.Co$6n1UjQ&.}0}\>{L'<_\}L`i5O{ Cܪ<#[K 4e %݉ޯ qqp)?N;\Z5i/X>D桍-uHx!D#. rXJXv@eGM@)dJ;":yCFoY42"'!XǏ<3o?49g (nDyEe-IJQP&+һmOja),d_wbID~M&Ha7VezvւYi?kイ巍ay]'q(!6< {@s!+{ƭ,=#h>?4WvU>" 8eB͵b>ݣE_E7}0Ǧ:4?{2}h ޹.›B3tv}ё゙m?=$A7-“X[S IJ6w$7aL"gk^O5B/pYšKX47!۵*^"t=a6ңI,zK[봼p4țhM3Ch.(axN*+QՁ^ڠٴq\'BЦf(tg;v PN4l{-'mB?SVžHpaTMa#F'pCZlj$ <<&=֩$cς6%S, T\)?ُ}7c')CrY+ "â,"75 :8^uj/}V4|肯]7oeroB? Ui(r>Ь݌:VG9[0}D} rmjΘb@UZP;wǦrϋ<_A m>6bA~^Y8&b\T:oe Hᄶ})!c2.TZAǝ5J>>'mORx1l{8p 'M8TCS1{MyRzNM6*m5yȥU bB ' ܄kn#-%-tpTYκskv* MdB!sL..k,lNiMd6vk=wj/9~7nV Qs* +za.8U|9,x6AKuqxl57YSʵw^bsMU `M#Uϫy7yw^c'.o۪wn5.ZWiꑙD*`*9g`Ѫ%?˻I%U5οZ][&xRLId  X 8k(H޼7~iQ6h0QLh }2_Ŧ=/f7[/3TӜSuȭ>_͔)p?sob8o:RLzdy.4Vpi![kLh۶(sr]-!Xj`Bjokrnv޼^%.gv$JQu-( t>UTrhFNm v{)iaEhNybd2sEֵ#Z5f wAMwQU>\TIoFq^F9dz>ij'L =7U3[kh^` 0O`tfmи#H kzWЍFtyg4Zitx;&"4*4ZW#gb@`l9gۥ]2$(p8M4]I 7V]3d4!EFcUm547 BLP([8vmDǶ A3;Jh]̸)\Q_Sm.6Nx龛ziX|~?wJ*3,)( 4!Q9*BT v40_f~]^\y\IE\:Ӯ5i!UreCC( n4:}hf6ĉ90UuL@O;>X"uܟ~uJT☚k,?̤}ü=!0cŭA' |?gMz.-.m-)MjNΉnxhh}N Ф}t'`P!\[jL-gNFIv2jǃ \GG64A8Ez$ ' ǮخM9"ts;|Z MR}Jm,w :WA{M?snEKo*5EG2ڀd{R 4CภD ڴ_ Pb] -Έ&Jʵ5}h G: )<eCI3h#R ^G"Ud @DvyI%`;I?*@: q( |k[42N0{kL~>θEĦ~ E1Luv'ir46HLN.R~h+'اq~A㸏/ !\-X[^Rʦj b':A%]񬭍%)N"ҳ_^_; \r2lY<8o'z#|1iOuE8Z ~JH}b#|_Ll-ne_W}a,DKrUpf9m+Y5 S[&&kMcZnfQX+A甗: _1+EjolnU u(Y&uA萟xn=n2@c d_-TlنB[bo>/4_/j̩:UV{[I >X+?,;R{-XwcxNr4Le${z}XnN˪PKJ>U4[\0h@$8*?N|.ϵ2TshMa EO`E,3,W̸1o+rF5~<^VgHnY}:Zu8;m5UKlsC;W~ Xt?a&58^SiLh3 (sY}fSh.w5Y4nT;8_ 2,C'9@ ʭA$UЦ@*ZK?1Y 2vjuإmA׼f~)?x6KwW 'kh*ܑ/L]8QYzF1pgѥG^QLA:&UV!WKJvx,4~$^<&R/? ͅl:x[7KURE $/yvnDD pEM{)渱rdm,MlWiuϧ94]*˶ YEQ\%iy G&XCdE&<'~Y?XRn@4K+5h`/f_E(p3"߳qQT4%Ij PyJBCD} ,k^WWWUWW>uff؝<<uQ &5DLT4igΞ]VH &@P Ɛ D#\u誯{9gf~̀/2[ o|;/r/ x'g_r픮u~sU\L 6mZ-TMS{^a?=hV- 3?Of?hrquW~kI[: >,X,s2M0K0wYUTUUhfYhF4Qx*Yg4O5xb.Gh8M5]P> I4qx<׾{6JPDmB4bD;61 EY?IOK"H*?Pf4q~~&?eF~MUZ'9"?f%nD̂k 9 h M yq0Ÿ~- $ Oɻk$op Q¿hFk;B X"h_ u|nQSo= 4J΋}&*0L4 xtnM̏bA4!a@ssM?6aGjU6n GҧDӈY(t5"+(Ʋ,erA9G!rvP@ŵ+rШ's..g&"Y?OXUI8]\Џl#@[V<M{q>\!S5Bm̢yYNᄔCW!& Ih7B|2L5G0ȳNѦ>M=EЏ_KfQٝq kuf yA2AsrŁyBр8mWVa]oݒh@PiHvFQ92X'eHue`Se.miپvF?K\*mS\d s $>J^FRcc J> <}N9qGAȪAV(#_{1EsOq-y\$O%~ 2V\m/M^|e^+cA`$+· p/Cpӗdg2˲/`A,8°{H:C\rH( ֐&[TԑLpSs$kS߇B?B8 l W/LC1,`|2ea/kgKl?g.l5j'^[֠zmd3$ś?h&86$K3i6|+}hEwlvD,K!Q$2)oO3晑Nn<-DQǬ}T=eU3\EJfl ~x} "/TLDR۹LVq dݮlokQDb'Oww9TO ¬0}Q\]- DҨ<NUY)

!4c&:XEIZ')׮;:o!pm1O缦Kz("[&8Je JdМ;#/NP5q3 I:|t %}|lB^@6.Uڎ 9[5^bx깟фR8,e"Vƚ.V+QT4a!(w|v7|qp'IVm6{gOcUbLh 8,P4,jT\ej_*h:hgMI,s(bMKUՅ $eK#UW5wrvqQShdAs,G ~X~KL..KtETKIbQdۗJ$m-m98&6!lRe ]UF}Ȳe.ntXo?YM<,_юUf=W*bBt)[[|i5c'Kc91$ c][_]h(: ,Ɣ"yH40RW qN¿Bn+GD!uoNy_?8n}Y2 4U\UˠӰk] \EĽ7?Qq,b9La/Mt_ OAܫ `q]z۽+%A\RE ܩd.SZ ќ8y h& i ' U'qu- -`(tt-(anYOD1C%5#GqQBctVw4:=MC(jSO\jMqzr7O3<ő/4#3P\W-a:xm2mSN8a,"%k"Ype_kHCU5CFV ¿DU0q6f $q 7A1 љɟϳq a&́I 1shZ{>6R?Η3/4ҽ-orS>OeuF&DZ]SƸAwu!:<|r[l$K=~ۺBD7Zh4}<}> {u4=t a ߀,.h_4p-@W+eQ'& |*Zvr,kBCN9SLtq.TSTY6Q&ԍXa}Y؎_0-% pR4ē] ǿ s,*]*XMAXoRl(4>9- NOt!JBKc7xrtOOD–>Wٮ 6lF5Aj2mlY.jl!d&U9*c$Lp z ܔ2C'WB#itdZ'`dz 2 *~"=3ae@6-qO_o<#aWa18B,lHy>Ҿ"-Y'm? 4a~hTI B"0y9PX/ܯ[;T:uM#sY>LCwp9qgi=?$)&Gv 8:n;BK v:v5hYDgѪ[D:Vtz(+Q4g]\:>k츜V*NW-mKF"}0pԤr>+ĘTN_]!@±͋_Ҁ!_ ,>pEv!X9s:q !5M\8o#x Qc۩IXMB.^'Qiz#aEq zٮ]7BX"z'I Ѹ*a[c[A㜍$X m]Mܧri٠EQSo"0s59`{XEVhnʦy2šp%(Ovv?Spt?H{T"dȪrso^lYs1^"'$y tZLه2&i>f^-be|t͡5DӤ˙@@cz@ޠY|ݖ}u愥<SfZ7%Rϳd/d\_۽4pp }Ef2eMpGOu~7qzumȾŶ8&MG_)sy<ew˱ ! &Mxӕ[.+ Icb@i&Bd7uМ_Eq J<\h{CDζd܋aJdmv:܏-A% *1~7ù쵿^',px.xkT: y<b.a~9|Y7 l>ޓ*aՔ.DAz.0|fgOmU_¡#u"#`d:GsY,t켧8R.#kqiʖ{VzQAmqN!4AT4/,z;6V G%šMbU4F^;? 0ܭp)lkQ=9 j~h?0 ϲápT .a퇏 -|L@&1F^t?N_HEu0Ne=zH}ۄE48 6PGcDw,H25p'2)sP0cj՚g"FV`+u$ 5U\\yAXO~-"ib;Lg&ohB<Ř0NG^\H(8' 59,^si8K!" ۽l=DAb9sZ9?v&ri,':V ?q.k7LPoxq>ch*6)I[@|؃5֊2OG4e?W(y;\u$aMW1 q?e YTU\9;*0t盍s8~@{v ̹rȗͣvsX5q6wg j_Hbh#}_.ƹ砝<|f@!\,g*|>HRϫh\D6ӵʇLhDIm {4hD tLA'4/Ah͌;Z<Ҧu^tʦ#.u~3W|hRlwUđk^0? ͙ÕGgsv k\*``khԫfR^pQx *ԦxuUwb."[֮7.ju 0ݥ٧MgmVoݰ,ASEz}+šE~'V^DΒ6d-ˀD{Ne5]6>=H eF D$;uoGtTq aiJLzw݉7Nk0oۖ,"Yte}O.'QfzBAa[ޟP˼YN*b("~12Q,ibO|^|`IvVe ԭ8DQ`\zsu5U?Υf{~e4Y~R5yl܌IՙJmk^'(ˢ9%nOc}Ѫ =S' sېxQqNٖa G>@Oq$U~y꡶j{\օ`}~!hKxMe0<ֿ˨98_Umkk$ڬע4r[D̗*w]~s9$.GǰfJk\$HpWWSlnT"pta9s6jӇ%;&^[UHEq>wv,Ku!h2y7|(H9KӪpow!lL}VU9VxFUl y twМ,C|/(c>U ZYx7NFUx+3|i`#FNE~da8_".ìN\q]m >OmCRE ~E#GA'YDМVeAp@ɤ~-{fj%*ΈRݬ4:9ѤqgBv4F}i?&私& 'Ȃ^ aQ?C4x?i\,4*ZWcdMqeqRAةa.UAax%`;:B179z?Mgmf#CbC&_W?|6wo~4Zldy6U-mk(rpK[mwTlݢm,,o{HwcO~Hxy4W3R/,7̈́K)j).袠)gL%Wq83ڦm@<::Ps)_BI1ow[1px"т57G"-h@#"qkO7c]tI_w< (-/hf{a'tt*[ 8_xҏXgaV,ck+ FM}mdmWz['

vjGq3B6Q6'sO&Օ xdF= Bt41PYM"y[WR.mG*Wۇ{߯ͩD`,{y~.sN-t9pW>ܻxSc< X[xe᷿Y'yǸn[{[4R{A&$,3]wPx޳8>@0B۫iڶIPix}pΗg/@q/ۻ~iEAѱP*PSX8#Ӥq4eYn~ 4 f6 (v.OJz**uA7(<;VؐŪi $aPѼq&W +Uvi%KidH&2v=}%/r$\e]ײtC&.(n˦V橾+QiԋFخׇm5{qJ48D{k*buFok8':M||ܫiNYh4ļXӚN$MY?e2/;c/^)knj3x 2| £8Njt~?]/4 ?ֹw#}5qCU6Z=^Oِe'{at\os( - " 죩?aG.+4, >~=X*ʊʔsA"=4efw(;DsˮV UR( PEbc1hgqa^h㴴9!WehyCbcFї<&AG^k/NJO/s)2.T{t7IϪ9h x*k;8u A/*h-k@Ma0%"*DPJaaOs`6&njd:W{qllHd\[D+(ȽݳH:\\lYh)v9caMƧ 3'.":hu~,e/mĶgc"EX7]V*c+$ B^pm=?ϧ*է-R@WvF0zS[ _R0 2L35k@}Yв7q6lqi:`Z 8>M_3GZzĦRxrsln$2}ntXi5,MBCT\չ;'Tͻh_v%QOl5S"11ZfDF>{1_5qVɷMfw%Z;.*[?#Fq<.#}j[<0P[p3|R[D ai6'l[J9CL&4qncJE.(DASȒo< *LrE/(y`@~?NJ4:XHlU}8 CD= Vڥl ^*݊:tdvu?ȕu Qvo%!Al!V&5pkAtOJ!m m؋DX' DlT|$NnX,Iєq_4P`> Flzt]&. x(ᚇbxZ3$^y{i,%X]Ӆ^ACyIl.y}r!yi њ4~z6S^,=@4cԋfH *@D"7<~ttGϒ˼cuo6 T[*H}YqYت& OqxiԶV/v{4b{40nu4uc׼|^3]h<=tSW&@xVʓ)Ԭo@@d@4;.3͉$SHRWMa]xٺ؉6Vֽ$ wq5*] xfnđ&|/NO(SnVejD4aaE#DS% [>m%۸qQɋf2 bؘ`yA*NE՘M D#`./.Z֎LL\F$"V |_FVrqrg ?&fۏ9&|5ˣd vb2LS-l> )y%]Gl< ,Ou3[Y~>D/ja׵˧n6:uƠ]>H- sI]'[cJO88ӓbwse~\SooQkLt6@5mdic*汯{z 5Ud34ItZ.u.tpl:A7A*`niĞOS7Gœf)NE9Zk쨆.ǃӪ.ېi*n; n~c(5Hܒ$փ𔁛aIzDor)@<<50Sp[7 ?u pY vTAPnTH?F}Hg#Ѩs6&.%I[Yalsn!n >IoMsTS\v5e.ۇ* -k`2Cc^W~4ӛc< PA+X7;ć̫^E#Έ 8<m8Z vb1SmTja2,,\`uժj'|7|\ Ҧ`ҹYԽ| 1t3p񡉲 h41wЬ:mX49ߐѝ MD.^ mdaAN8 ,}ۇ㌼~,6cZKXପNTqlGpb碢>^v),6"vyڧ = i3GQ56ijghhD\ZMQj뇸*_oq+hU9`ڵt҄ym7|ZsutXyƻHR=M c8+^ {w#۬1^f=wSm1Lgu v#|/7XԂג%3Kؑ90mwSf w7ڇ0b6g0֐gA+7S Od:0(z>'Q{7X9q=0; XdT^ŔGP|4Ͳɂ"jG(a(`LefC*$ՙ%ղ(mtly)1k8פGsno':fZ)?Ry^̵m o"ʢ[*wt_'4Tq:Y|.7" cIw'28rIA1p1u)ݦ3= 0Pj`4Hږ.aTSǟUrWӾ6[F Ee2B{{$q9}/kfMuQ! N?JHOmf~b d,1լʫ4JqIgm> ^ֈyŚG^@z^>@"g_\$r]%05kaߠoja x|gQ\u+]l 0u#uz $WUK%PbBj bЏʡ=PUS%.-G+({Tp(S+כn/oB6(RMֲDG b6e "^Vt8w!դY9}<KДC8i f Lȑةr}{IWWfbݨ3I4ʲyɮBԻs&aqr?SIc.Tq *= 1{At^d`kQG'(]nhh!)8je) :e]R)ca[y.قP3vG]@e ]7M Und6߽ZIC,c\#\ԭ4c"zW_tߪ]"( j7kJ-~|8̇ 3dw:[Ob<4G.-oVc1.Vr,t<8 j|Π9ζ8hsLDQ|6/d9wmؒV< _41^[-WmxIk UK 4@/G(T4FگKci<2 %Iu È], No 䏨^F+zNe5e UoقȖ''%6_kOrLIS-'hOlP"!A @EIam]SO!qo,0;3/K"domamu*jz|`/=YaĹN +?C_ٌ-8< aP<| f]s1h.5,\֬_}藦#;Avup?Jt(sG)ݎd0O/mz/E|Q]GYCuSlki?loǹ zmL~f܈s89Ȧa~Π9dåa&6ΆB@U/~*Tv`x-Hǭ:8>4л༎ im؏lzAsfwy U|@mU(AYh VW.kV&\ex`鮚Zʼn,@(G?i 7sPz|сs^qi]#kBOoz+LE3"錘 ϦKJz09-TyMsD32eZaryHn8Egq,]32 mă&xi$ d>%W3O;+a@ViṦtj,U蚦FwvgnCP>!xS1tL, P_9K1Vh v x?ynxž:` e7_Wwq4^֤ٕpQpʹL{D,] f"$Ipd#FIfy GcAҩg-HNj)4x+; _cS  iu0G+z3 0.h]qK<[vÜO8ۭ39_2"L \TMz-=,erjK*+זxuz[7!iEKb)n 7b׈^ laT{~ t Ov 2.=FQ97K*萶FӛrvQ&ʹ*ΎOB/ihfgZ GQ-^ѫJUSi6FBCB}y,{^WשW[Wݺ}N@޻D<׋&.HP`Eysf83}3Q[ QǀĸĄH#.D8~U;}Ͻ̝Ig;, ~/>ޛ?TX,l>__8̣yA/U[_mŅ.cϯ}p+#T=׼gqx (OEP|AqѡX,>EX$Kp_W*iFu]#O=((d4'~㸀PA J5"zH!:!7iQiYi9%eG?/;@,H"P$*;]U}X_U۝nfek.(켯AC<]Oa/_Л/{dB\\hN=1&$H>\d1T hG%$Uy˱ D5%ˇ4(.AS>S0w!0 @f"v[fTKA I0$C7_W(CIPqSxݧ֯HZ%bPK[Y@I[ :E"3J2k`z}˚~/gW*4@4 8LN!_&*#[b(:V"ri9 Nd]š$l桖@r,/3 ieYf{1XL BӎOe`v ;s9VIP4j~Q}ŧwz ?(L/'_ -J-WeaYFiqD<DE"D5!sџm^}P^3Gi{q{Uڷ$/DE$[(5讄6ZHs"ʋ,̓o 4>@LHP AKuA $t$9EEQ0<2XR|2a-= "V6=zۻ(,se,]~iڜy7)0hYu]oZMi`5I3K"dܯ.:~k@ ~Q:1X{6Iљ43 0hje-B CH@sLǐtKf^mO ʂL1!ӈQ٢y7WazW.lz`KQ.$4<{ "bZc8Sb 'Ҭhۖ!ZG"h$X}j ^e,2%ޏ dF>B 1Y2.E\ŀ4<)L+vKIA12e5kq0RE})WdhʩדqV`eW@Bfd\f_ \x.KAWuA m:EJQ޸3Ty6B!,"@)k\' u~/0gLqXD}ܻU卤g$ɠA%M`TD2=65T 8(( S+)V9M_/hiXM#fn^geƭH4//,!"% *nTZn}1YAq{Eu7%7dkM؂BuAN JN."=mS!]֔Eׇ6bdٵ0O55iT 'yaM>aXmz]u?İ ́dG3(j缟As_I.E> eol9$-a~]új1њ$94hh~NVe\DTd9ud zpw IOH[_ѓ&`Ʈ{ú:ijH\n肦kZ) ,15AhV}ji՝I0ҔeHtY"gLKl,3hNY0;f%6:&x]^ 5@5|U(&oL ڶh':@c/! :EA_8,YI\k82H0ӌhDm:Df%$JvEו@D |Ý#Z.n%Q*)lNLPi6}Z%/Ie]  s{Q0~R|DQU b Oiz^ Gy# GbHZ=ߌK . ]jt ?R̊,F۝X^ yVy@raN5hA hDCҾ6L/jIk՚,wS}Ղ5<*RGi]s eSXOIJ4 0;AYYqE>dS//Z$M[ؠ} \nq$'WjIdAf9ı4Z:G u7~ y2y`@khFG<`ٜ.~>-"͚ qٻg.gt` %YF.4QeRgOφ 9ƿ֐nvAD%Q- sF@|H<IBqW~/;:1L۟`9@i@~_,|cRYRQ# XY;;\Ar]-ASSm غc y]-|WdqrM`ΰ  hAvノkRHT[/Qb!ЁF4uXuia LEF=}mQ)dw.u(G$[,iUKO$˸e0C$~wF-ȯnkLT1‡&$,$ufWQ]WEeEAJO0gSuu<{kS>]( No=ޯ'^H:q$Ȗ6ʕ~&P:q{@65<(+w ƈ.[9eq6u&Sn lK7ehj>h.=2)ko39<ljck6mgr9Do㒝0 !mUeGeS橆'SPr`^LMuϬ8҂ ?%zք̯nFd۹P>Au?(c|AiQ@f^ԝF7~eI$ڢm;+E_y76#1wp{i AT7'ΞC`zc'f'4I5h$#4 1vȥe皻˰Ȋn#I2.xB3N,a U6VG@, w+(gTK \h(:ls?NW6pژF81p_mNDC6q ̅m;'f!κt# F(#d:pfgޟ9^EPa;Hhh*i$.TO9W Ea3]Up3i>f ${Ϲjp;|ij<{jU%RLd*1~w 49ERwYbA;R UFˠ:]\ gy$=,-w3'Ry6ĚEt::k?!9S CV:ӗs߰<趬 ~n>%iU@]]5奣@ W$[nt4*b 6Q'SUUUאm}v8 ͑_#ԍCt8$9aYfDfRX():}=4<iaC<(27EQ]d2CljȪ&YwN#:Z, :Sx={ëgQŒIbZ  n~Q JR䘦# *i4(L_F8}mg{,ʒ~!ݹ37+?`R{8EEeW#x]E9q39|iPפ@6x htu0i~{\V$ye]SohsJcw#ːl~r/V$za[_$cU@ $iGqiD0e\D b@XUcJ15-YWnNEYR4ao9Q|ۘJTqBDb/E`Ш-}*ǰVb%pu\`rDId[RWiؗqqՖ8-%7~ 4ŰE17VΪ?cä( q!3.7Y&άԦZǕjA̓yag]uH ((L7'Llxr  ^,_UbJXa*ojhK&  pnRTBO12˻zXcK1 N d0f<{繾óCjSqMڞ>Rs\r%]e>Ńך(NyD{0ӱ&TUKqXLκ_PUoBzv阎-_00MRP%j?&hq2s-XeAEaQٹ=;Qv  E;E'vN&Yt`ZЪf,:Q <o$U ,Ȱ ';%"I8s9Wx0.nJp h&9o M M;ŪqAi._( ҨE{vnR\v:z'h~u%cR1N˺3TUyg*Al#T!tEcPr'9F#ǑD‚Xw}ǸSyNе 8<*!PuSq)$=ٴro(:"Cd@ fYh0%If&f h)44 \jEdrKhΎ0o+ M 6az<MsN$Y :"@"v="pLa ӱ}lM[] /"e_ٛz?i+qD5LH4 c,#?ښY6\[3,4G_lӏpUOQsZ%]XfOOn|.JD< ‘ (ؾ9?jIY kn}.Z,rtlx-=4m#8r60j*nK[ս6\Ƨ41IeV x dKJmX=ETDW]Ʃ NJ~RMZ* @ʚaX=pFXY?ڳ'b,H4{ޕY ˲ޟTo*9 iMʏnӲ7dEsr%i(Bm1Bt?x ޕ#$t;r yA$NRX<\XވP)xxJPT1U1ߙ|G,à$zEqq!B|abQ D|+ *kc1m6tט_МW/@`umQ2 =h@MB1@(,<=ؼO|OeVj,OEG,6}g0D%A\Px ʅhY7pQ=|IF͚wO.~s"eSn瘯q.DEEsբ&fNmUsǹWA]]Uu׼\jYkM'[h%geV)ʹ0hlEyLMrX5VxЛڽdEov=U}$hh ]SD7~k 09ɸ46i s-gOs(Ec=[5nNWd2~Jkc&T<jZ!ϟr@H%=d'*wZ=lw7(Z97 X}N JcD/WE1NTvECauLKnK3. ;]oOsz=w4 À2Xf6&h"0ȒC]At1BDpDaW˱lZm:7O0g\IzAP^姺=?JDNUqgOϢ0!Io_#žIk҉ɒd | y dB4/B-W|ScCO :"eE o9x0縎v5oMJδAx-[\aw6y4O,Gi "] U\*RZt %cߍ=<<8謭mwj,pmIʐ@Spex OG:<'gOF&a'5 Ft ѩxx Ok+ l{%ͤ;WpJ>F!lںier㧀DG<ư툲8u?z [\U-m E+.?6b,2y+gi󬿩&Wy$Ā<\b@GlYI7œ,2viDc^q²M|B+ԫ[د5mkhмx3i(Ȼ=@rC  &qGzGaCz56S7hաKQV1@w|*!*v{.%YXD5qF iS=O>7a ޛAɽOSMAiݮO3R. q~r," W^T{V/( \߭_tà ӤkAT2A"!t60%C4~.nLiSs|Mdb#guI~ ΪItYevs?Rh y""?ZeCs"<@z Jh%W,j Y>7I,1\de6I3I -ϮzhN$PeE}aX*{> RhS j5~ m/p,(;w0xǿ:{q1mڠ4IU%+ˠ(î-BG-mAK|EvbA ͅ| ʥ@^/?|K/)i}`3ZLS7$NJܝ(qEuqdadz Y9nwNômDŽ-1X$SUW{E7w#i,OZY & "ӥ*p*8c\=3VhE*y&EczV6ih†UaT9Ո2 8mxF. qyըcPnP 萬`dn65a5e<c=[ Vi8Z׸My6f̧vhւ}mj^y$4t)n Cyq/pb'O$`K }E&Q%q-DŅ$x%ÜL]m|:/GqpF\ڏ 3lo"8K.Gy1Bd6 (*`H&I6uh&^T1ۤgػ3ysHQso.2HQG`<4.4"X չ$,(B_g&/6QA}oNDZGVw>P֝ۜbݙ G6+M\n2SU8ie{֛)|H! $s吔/XM+׿bn)CԐlkDn6iMa,M EC>DsΣIZ4W?'$7ߩs }y6*";FQUUTU'h~37.Gb[]:JWڝSՙ` j U4lGX:d36KA wĸ#Ƈ'v@΍SCIR`M|=Fp4=Z9끪{Jml|E,J}:6hqXHChKl:H -|ML(nxͿu|52 z;nz$8袽4M+ x:0$|%4⸮Yۡ'P7t1z4t, naُu駩aZ`F۶xI: NuJB88M K81ج G@f8%Ails:%\Ixhf#+ NKS\6[2c]|q_nI r ۝|(kf'VXIpWut|Rlnu7Nt]0ˢcivwFb,hh(+ga?c_%XTMuez\-s2<ʓl^`fvw aC'H| C|)W3QqQё4.K*iG[`y `' ^g :콧/*+Of(Ff/D x ^|R-~_x|³9̼q\V80{KῃPEєY\` %r9cI_o3[iጅbDPx}9uh"fˁbQnkB.é:mq+qMsJҍq̕\lۨQvIYY0Sx]Ӂp P`+XD}ef3ql4f*ZɧV`uʰ}y(xbKv-^2$ Y|_U.vj2jHSWͷTL6 E} i,0s<9 ߫V+JBHΣz[֣׺ 8~lgO\͏.qn?I]UKNZ9@-~7W;-(l7Nr>$3dGcKU:RhPpLNٝG@CEIzhΏ_M$T)m|] 46 ,G~)@^]T0:1gWsU, 2,*&s{5Ws%3;S2׍@3aEUy>ý&cH!驓8 [M 8l75pdlNIM䦽Yk8=D,(8 Z^/^f m&I;;@xgmwpiu3k2m o嵷6qyi ,8;;M ; CMݵE 쁻u~_U(@vptL; M CIU3p*907_Abp7"cp}6-BW3 nԢN ;8ޫ͈a QMr)_:sR epMɌ_B %5w F;>! $OsJdA~l׵馃nu>>!>kD>pLMFտ vDQ!gėǤe5}Fʽ&"ɢ ,}Cs~)I"+f =*͓OmlInG7EUF5) oK/9{8Fk3<%Ӽt]]t܃VAsEY^QG4C,0Hˢ^G4Kd\zח;.x>Šݹ=~.?P33Hd8V/>ţ0 zCvNdN: ~4j|ȝ\*m7j`DA}\u'NX1a܆xy}N $0n,O(&H&wQף̇xyMct9uȶ$ˮc $&覺^rUK(R@ԡ<ʲe[˫!'y!huUq;V]mĀ@ %7"UΏp B*)d ¶ޣ&P/iG­02;;c<ɇc"4]6Mmex#պ7w4WM#u כ~\a:{ׯm+ H.l1ᵾv> |Ҳ۞]> 2820xB;$'Fq\|wnv}9h *,7x;)yow8ߤd: n}ndUED{IYLGy4/;w=lصƶ71ן䓟25<"c(扺.וMW@ZB;>3jh4K l|y$q&m *NaT1(m1cJ0=oP4(SR=7wTb!tON dQ,"7Hpm}I("+B,_C״,;ʫ{>²-G%܏Q3Fs2"h&'yE|cp]g.s\&cnVjzvT6qR]\7%"!*YD;}:>(ig*J~lIwr+wc7K%Ͱ5|WkX= 07ȇ(e=AwL D1 n ǀh[ f~}s`/òt mHwT!#\HqAՖxL\Ʌ$C_VJҲl$xwzHEeݱz3O%Y\bt#D.˃FNFl ]+ s 7Aۄ7A$%@U/δVԸ#_R{X[>.e>8zB&n긦&h6h_4("I0e %eI0̟SsaYVABmf3jMR%]4E5M :)?qZËm/v/؟+Za `k`џ[|{IATmjÒHQ$a dnb{g:'(YSh3혶KQ%"M\dAti!;e֍."bP7Vꊨ+\֪ uX`Ynt=,ı'h4|ݙ,i3[UjrhWDי$08. y"2ҞhT:2,$}5}h875{Rc\W¼3?ajM嚶$* *?(zTeW$ЖE<|=ݳh) *z].- $ !ɏs)#<7=8KB.5 rBǻ_<0)rEIm(n2t,+1u^Wu>eeD1PThɖSG'otk 2@;Wm/L^.ҡ4H>ǹ(kx'[Ҭ .@A>W" 0K/w :0;ƀ`9$^ThZJ+ ݽBC| F N]Ù`e]PtB[!.yW۫-rl;tbS!*hD";\=)mq(+C|% M֣Uj&;Y# ;iAٴ]WvXL]\qgnϝFe5{iUU[⩜szl81_(]5tpt[XN$!sn^,b|MS>'܅XdS>xN!i '( x2l?rY&*\ +W^ 뮁 ̶ Ʃ, c-fⲋ3Y4(Nx˥|.qKH Ҥ,~t `' &9fzV2."bdDEQS! 9ǵiD` c3EJ !%7 +zDzXљ%gGQ~Xٜ̟fO㬙g}8c 4>>peIDMc`Ѱ},=MDEhM ,,p*XI܎WOb~YrI` "GħМ}G QfK?O@9ja,0.k5BiDNK _aNuxdqͨ/>Ŷu47/>Ye\vID1ͪUضm鲦T6y }N\VA\oY9Z4:3W'iYIfjMp| /kQo5m\Jg{} RBI%4 |%( kj_:;h~'Dy^ ėp Uop3 8צOL-m7r 8 XWkt4M6;1jyD>=8Ny(S=e,_SO!Sa6;elRStn8aA·W{/#I/^L4&8OZD$Yp1zyǡGaPd͔,C~w֡㛅 lxzDsK-x6 + Ϟ}oUO$aR\.V{cccpU)FV 㝢L_ltJ*Ůh31СQYd]>MMًMC ~~Q_!BC.A}ylU_ݾw[0\g \@e1%p#"EB(C$8" ) 9Q"l DJ@")R 09Kݽ^7#g?;ˋD}2}W~V|׹x~QO>M&r],l>,v|no:mڶ("EٽpϛWg"n=q%W4aoo>X`4Sfi%Og:brsonXvArs&]=S@0\?r9n))%#TC4J4O0q4㈢âGvrKP!n]f@%i?[y< Hq r*"KD޳'M\~U^F)7]#u-lGIc5v v=q :'2Ƿ姤ϓL'C/4~u~Veچ.ydqHdO(}Ѵ$iC?BC$>& '? K5 QUȕP#z 0`ADWᘖeZv5  $oq$Ǩ^Tv  ӚgsW۶yS&p,h-p% =%]굨Sgsrs7~ 'OMؒ(~ay+`?܃eCDii.MWbU)Eiu-%y4ԃClg]mZ.9"@!Bav]Ðb@ڝFi%UA$ (F+-p 8jw(T#Ty@E8 F\z3KspݹdM$c@?1 GPk8N^DoC]D&Htk/u?5 >@)yv^yyuW2OxY3:!~{WÔ ҐJ㗺pfDTEꅤ I ;P")Lq캞݆ZCU},C4NQN$]hjaYHѴThLuv&IP(2>8 57>OY u k!_PMM Exi$)V%SFoJ tD[. %BP|wf}wAlE7bl*辆hɧ-%O!_qn[NRW1鷏&8 `";4y^̋p#yyyD}sColb FDWB4-8L] MԖXy ?3Vܓ!h*$LDM4!aRTV.N/eR YKPt5iq ]% bsB"ޗ2AT)T.Gtx|ݓ6u6G@KԊi-"8,q9t:Rgv۲)i c;oyÏ|, hjRM!ɛ{ Db@FMMeLV20 2Tgl_@kBθm Pt?M J=j.!"lx5C(b#fL6(RH,U-aѦ#<β$HilïCZ 5(iR>}cLb悚;.E=A E~cf]1S!x*o0źۢOpS<B.CqԪ3-M}'cJ:؃4]o6r$M"z]rbbYr?CP!ff>[4.ƮǨl e^+I^#=IWAS@`>8#/u Op6{ ;Ubs]V)@-}hP"Co \u|8Vw(1 <|F(YU&LAlr~%[Ǩ #FSwGDV#t_D>XCFfS'Щ@<yhˬ->Y;&&tZLp Y?s3Hь|t,4ODz'ͷ՜HGqfie2l4Pq9Nmy&YJn?𼱞\}xhu ib V43YVɢ׷1IOaT};Cg )PblJai0,޵m6q¢iU0d.dsC?+B.MwkiuT >Ulh "_fH? -$iDцAIEA:w\JN?YIR7or.8 ˾fy܏L<0()=Uo@aM`, zz+ 'Kt >m+4xCՇk@YYozeOE1׎XQ͜;kai>%L5r\.*NZHjJeEn7Q%aIj!+dv1!h jPjljؖfzf]/MP f}0U& hܠn& )-bgh@ HuӬ)8uS篳=@gz:D|f<Ō,kO+gu{-ǹUl@RP'!ޘE, loUY`}[Y9' R8IQ$]iO/.>UhZrnA$V+Qd2 G'9\/C=l64^14ӣRrї~^\Ր'LaYT]I% LPrrF-:z[Xl!OہB@TC`@|"?[A1QgJ{1wnqR4:axa) BzNiEYllInH&+Q?B[nmQ0uޞ6ȍ?|izMWM?sߊM]S6pOBxCb2Agkh4 ʫ,eЪW6Y7Q&Xȃ>>UIkZGN ӰcGs=dž&+z)Π|N#J^te(4X"ڞ{l*6Xpœ` Rz3_*8GK66 PLz۷z+-c]CfccO8D=7L *Zvu'&ii&-D]clكM<ř6tlnep׭U  8 4]7qA'yw ʲWM}v@')PwL6X!Ȃ;أ6^Hvu7y2=OE)/W=lr@ !Á\)i/TY7~)gasY,g$m -Sj{]AŴ.CW5**HT-U*}fU^ )_Jl5n:|1n[MCq&fEA{E͢|wfjlGi2@?d!ZOJzNt<⻆Z}? !⢎=-REC@l܊2⎢ FqB ->Tc7˜rj۫ˇqEuoB .}qH& "sWyq VPcF%?8hfgMdH&+ԍ'j1#/."'64AI.5&"hJ>8[sCgyWd/6asLl|Y&VR4ʧ d^Q"`&HC7?~J%7Co?%/x˭ jޘf>_;C64iET,yS2#%,hhӂrbNM3ucX~N5R6-xgU{=rsʪjf9%u4zʀb7X ѦF!aB ~s!βO \eB I&r{Cŵ`j M}`-J-]g0s&WTĉ"cع)c#'6oO)%I=ٽ`۔L nMLdoE8Sb!Ѻ6> $$S%9Ja\Gbdt| lzS5s82XEA`8kTh F K'N?ɛrz a6 Ƒomxg&4e*Bzݍ00"_!FuD?&M%cvp-MEYyun`ScOәe+8<=6 8ED2.[?fpCO" $-1^&'D3GD*(7 |]iWJ =FT wm'm:[z y9&\7EA8QDTj/9D柰y_hp.߳;#)2IsN1fc9]xXZ\OAʪv^1BJ>D4VYؓpIްN OY*i4'" 6>hm膮4hjD^9-r7r|GtTHձnO]ϙ4BOSCיr"ĊY`2A =F<Ϗ˪+ 7WhamP_0Nt >Q[T`"LIr` ƐyJ-|u[|_oeNtWqӸ^=dRAuLT>0 0[Q!@zu4}>TCsqqQ"`69ARxHAI4:5uF'_d]EF^Iδ&9AtHd#B֡r/2'Sgę!׆" GK}z7 Lzh09wx !KYqҥp4j~oxp44*Ǥ!AF/&e;܍,ۢ$!bF'd򩚒;,HK\:BO(` N K+ԿaKgٖզz'ߥV> Ϳe˧}b}s~s2#aV) v1~{]~M<,+r( @q2 rd][?BCfJ{6I7MGD8ba 9iwc ~:E@wpN77QŮeW վ'T,wջGqGsq`ܧ<\%yes2j\lN_M<א[KWᾓ9th`h:d:9  56{aChfth ]Et!>)a۴Gl& Uw@Yɥv*̠~Q:+HjS|)]b>Pir3 lnBHFpR (sͤVIDr,._k&nEI[ٴѬghU`d2ξN6haM( ru  7h)╮^)6VbADgd|eAt&aA/Y϶+.7 ]ɢ0UD`In WR$1b9.v}?Ti,C_{(TG{{} QJdjfq ۾%RdAX\H!Sq |GqL.4 Qٙg8&vMՒ'_bɅ9*ޮ6.$Nep٦>8憉޴3egndI^;pAh%9M,ȭtc`݄]mq^mtdXERQɏ7,r}>ኍ<(S]#DvSw7DPUwt=hVv>ЬNhMCvfpՕ LxQɛ,bjx(tx4<\ZOi -4@/= /f0rkf.Ik5ҪE[K1YURf 0#|:<=E]ra!1fUgppKQKXTHqŚ r-q濧h=$M!.kۦsDfNq& p׭*+Eěj3=YeB0Þeq8;xVkѣ ͊QFYfiۦk> iÍwBn \'tm0mi(*9mLDn\1hD)5c/)\)s\]H$ ,h&o~43A4fzm ]/sM]-_ͷ} Vmj<9 .94qc``&*f3 )8ˤt ï 8 Vފ#h M.&8N5!ntR&)ԍ{Ž*5 (j ]4g.Bx!j믈^d m{6ﭡ9?4d>0rcclS934}$QFTlN$#I/VQ>V]cci΢4H&0/WDU袪E}jVT?͠xY; 7n d/ßjm7">`gtL=HxI OaiZ-Vah،H.Lip T 燑NN~gbӫIV̬ui?E~%4P,VxBYGwU1/]]ϝ"I}@,Pa^ՊIJN/=ETX̼̍T:u`vZTg)} T^T 1KT埏FrG>zop&O&nZ66b{֧zmӊ DTmoqc/L Dv[<.XmYP,n,>''{ ӰK7#ۺzyZѳݡ'Wyo C)g֗w<6, B}"4g#|ք]t Ͷ $ >ock؁]7(BA\s<1 X]Q\|[X -p}.6 uaQ#R[8 `rKcKG'v疓0U?-`;Gn\οgܙzvmK^-۲!kl$(=xϾ+tES5(Ƽ 6XAg )ڬx^TSCi ^dXqCEE{Tu 0q!;dgRy>#w ej@H2ڲs"άXM b4z~h*3}8YKn ~?j~5U1ɴT 0TzOɯ2NC\^ydp [XTn]vm'{"ЏīvY2#8r taa Q[l]*7TSy/T/75h@iۮ^ aJ^ yV࿯|gxSU^zG'I7A*͊kth^އa#\?c 5e?~58LQ#XPUTNlLv GIkZrw IA.x$kXʴ;дs$ S.;8(˗]-_~ 8U-HlPfSfwlUՀ?95@m 1QXH5ywϪZ{8y]}tS_҉ Wݥ,ђIK Ho&) v~qe~< ʹx~g~Q-:ai _Qqö55MS:2{8zUh"ng ZяfIx+C32,J*֏/^ʐzφ{vnrGߚI=KLcC Yߚ[>CerϭgmI {A4>w*AaQe^yQNlSgSm3Bs^=7M,O1?j42v8_}ٝ31N!C3 S}dloh!| ` iטK^fitlŒrF߬R'/p?eX/ua -w/ aAV>LEK.%3xFJu,8<>z }{?aZ;}8HGVdAdw!εWL܊:AKY<_U\,ЋR7,)ǀ7:Cx`΀&1y4} }>-Ë3՚D& |P O!3 @+t ^/T4I?8t*B:"Z[GeeWslΠTT<0*t4&NNJ/d~v,8/ޢ8Z47򰚯֣qyɗ*BrB; p CԃOŌtq܏-T…e8,i4c a.m}geE\f,ZgH I[f(.Iu21~2KbD $)1Q8Wc`&9_CW-GӎJGt+-,qBpjpݷs+/"~@8fzsq]w\t[Cb=م"0- *mD)N` 'ïvWVՙELuU箫XwqWj* A$WQ~ Qrv,)rNRnDw'kFp r!:.GЀJ4wuZ u[TQD\7(&JӒ kjn J9hBJ23 %z&j*>Y܊) ]p63yiچiUiݤ}s!Ä6|  86qum[Y#/H,>Շg jkMo$(D 9 GXT! Bt ~pt$۲{NqP8u2Xb:מv5H^M˚ZK]CL$Sd1Z.]Ɏә-fYf#G90Q FFUY,2G=FT @ܢE^/@Xh ^ -P݄͎nZ.t8z9*p0Q 3'Y-iWSe"n"Etj'JFb/|rM%Щ?`h]ŕl퀄@)t#Wef ְ򿩞<]a aI{h3 ǭ*αc7lYvO!.E<|Hm`JLQcn zT1To8kF5,~O K;ٯ=- *H |6jmgϝl4-O1]LS%a:C~;XKF 2j9v8(8 Ix7)>ujfA];nEE ^m$z%$uOo;ЦŴ-Ě"a o"g-8tU+FZD¢0t9CtCNJ) o,Ie QuU*/3)UIq_xQgOp;ZݝCyk/.ܝ\]:v}Վ)Uw*4W؁ȫf%;fr!QussS0՗ bap|Ti`S0js\DJ<{!}mSkH ѹP:''@h=_Ϝ Y b8$dOO-*\(̐m5 9:08.x j]e;Bt pD~٬3NU"/E+?Ku^i6_*SWZYb8|2>EE:/%}~ h:Nt /"ʼ hmp,.jGzI;yEJg$ӇO~e~$M a[DӪN:;_9{A47Iuu#o)י'qRqά'a@y(-q-`/WƣӴ4,zqjkp fe{)S:G i\5-9D;wh-,n r= SWakXlVwlq=,z~Wվa iUwwv,D.KM~V4J1b mt ɺ4gE`˻Gc@b<V\ȣrڻ_aY7Z蔠cdQ:@@AuJPX R}:G, bTոu[I12yZ {^9{1]%_nS܁n:WSq^Wec]n5n}a> ?R䉲x 7C> rɓaۀByݬ‘yW5.0ghSӚ^GL,ܨbmPFe0'ʒߺp{mÄK.8ntpC`cD4ԝ8ubaz]df6S{K_efYP^aIʽЀTmfu7,U kX&N%4n,QÚꀭ1J|YCq <0~ >,9x^|}LЏ _Ꮰpc~/&gdi8 }Hbt_aY@EkBj:nfMuZH5.Ii]]2-n:y~<^ȴO¿mfs 2G.TWN!dZ,>;@J6K|k3 NOПL;+O׷K%~Ph4+ &ruKID#n>u b[.AK.1=r4-qH~B5a8Io@]gwnu֨cmCk4hŀ>SҪX| F  ETvzUL C?H<_µ=b2R6 Varc-Tk$hqd O Bζ5,WE ~&kW`.BC\m]9Ifyrsωړlv7uC3숩` `aA?,b)֛5-Vޫq/*mхC?Xk+yd&3͹s/o?l&ަw/gߍ=*tCw%ُ<ߑ^kr2-x8 xxgEo< /|O~ W[Tʻov h5ki]L2, ʻG Ia0CeEEV3{Eo{(x?Cl"]_^ม3{l630 uiȲ :5 >WJ|2;4OX4Dւ2L+1,2_XIx)Y4L hܫȉ$,#Gz]ٕfzdxNx-: 5AԴ@u#;Q]M<0,"uŅrAC H~o(K(fjVժ=P+>iey55 ZDo"D^MUC[έ\49DJr1_b>gdO K, %.?$)lF<Ϫ9ǐS:i*LZ4C/T}csu/jI^wf{Yu|!&y TQ"  8 H[HX f hb5E5?ŴJQA/nH ?5?r ABJV)NKS5j%t!N9E^y~NMw:+/ 'qg@*ή x茊x5!z#ý/8$^=ÒjƼdXc Dy$ 3 8 ,Љ^ʼn( krtaiѽx '[~^} Y5cY#- \0 lk-?i/wCω-}HYzW..H,ͫ R P{d3ןN0O4py]jU "T(̮P$ Yng=Ϗ+r@Fs2灬 t&|D4M=סKӭDId*~|hB耒^^6CGR e Ka[̄$w|%Dh  j$ *Kr~ABovC%V5E?xģ8}D۲I BNӱ̨ H31%UY,+!_MoQ1o Љvھ?BvYez 2 EEH!iN5li|M oLcHQWGLdgYy މ)H. $RPJ7ůf^_l #(A'aL Ί>?ٵ EQ=Sv<`ԹC1yuًg-I `a3SG dՉڇ^=$VaUq7n`* @ha1;$n t0_]]n;fjjYPrڜJ$Q`X&PW{Ş]uK8Kg$j2p_!8 }#2YL!;Ak dZ@,xʸ=R(*Z4y\M5m=dlI eX,9zEaX@nZ9ظtzQm'fR3W$< v@پ NG^4Ć̭4##I@$SK XG10ǚwޜnNUy^؈MͲP  TDP~1EV(YbϏuOdI\oLSEeo,T׶U 9 =MoE-й3bntj4nM2x/;L?\>:y`(ilz]yYUVյZim1eYt}xx3i;Iz`iiz K^rn) bMwpsQ:$_ka^4Psc~"|;_Ba^$T6Ӽ.,Tyfco^ XfAm1! (1. iSMeӈv*P<_'( #Rp˝?.Oj{zƒ~EaMN{ ͸I)*]QGWJ`aPn'.PaBC܆NSbxa̘'7'y FnC+Z9 ȳ4AW p|RlYe[-Dqlho7y \!Tge{$PY>32k!0ߡ\QuӒ9\ű6lzVRrk/lTfp3abwSI ? ۑ($Q.иNȡsP}<^]fsH),d%hx8TvszR^I(!pe[@Ńxk=G$>2 @Eݤ9RSHu=UJدY_9c-KwdϪ[y^U)&ᤆq0 ayFavg!փI??9cԺJ֍"/fEE>n%جU]9|~bgޣSx!N<(ʺو] I|CΝMl'WU6j䟆%#ʼneXz[@ jFCY#@U3˹ls12;Zq2I h֮)xʏ4HAg A( ~j wwcХȉ7)D0~:4(vUh(KӢ@2 'z)6 2cq?>lȭVjB)SU/qs0%m,`nQO@D^At F=<š9no3Ə|/nƸ 9NXMYN@DX'5W@(Oo;UNg9^ 0OjfQUYl+V<p|gbA@ {0 yg,M kv & >r˚;VHg3XJ.pA|!߾oYPtoL n-g1j1g6vN7a ]"{4W2>GqLCsP(\k(58[@0tWԺO^0ӝའK&@lQy% dxsłb;܏+:_&BרD]4 % ]'8۩z;-:HY+ov<=4:.z2Ԍ(w#LÓ/'%]K rFZU#2.˳,%)"oMY(Ge;϶;lcYtpt<Ò%h~o:. ^ﻬ8V[RV27K zO6^4EG^,0KYQBxE#ɱOdwt6檣%3(4&< k^<|u{Uz)Β9YyMn~K,c,)Č}H:|iRu?qczAaһTTFXuYw҄0dF݂W:̺0~sR{q^33)0RDX[wƜ a9$^䵻BPھq/) ^#J~]z|}4='W&Ud?Nb'htE/tTuHn{B7)_u-9FɚޔBiyV>h ]C/ ͖.D(= 1aL9sƒ7I&& b)W1fd%q~@I7K&9!( RcGFB$r4 ƠRDE~|<3bS3Id ;{S&5јR vӊ'4T!v9ʬpuryt~WAުtITƊQcI.~Eď%ѐ.S ̓G=l`d#fpL \1*d1MջH57K<<N?!B," <\ES)-q (yV?9gt@ mf&DToRa\K5Ě ɔt6RRcd-|9\Ƴ) &T2C9v? 4[ȢI7k*G-D8plPaDOlɖQ wyJ#)IÝNb>V;1p+sf#iv;>By=6alAToEcqzb9S̈cR$:O2.1DŽ6wtpih<!P q.1, )w33nd~t02rVV1 -tﻧ'x 0L+tsSp=IbS'3[MC-O1xR<_9>x .ecކ8=N#$zF13K3>73'>hzC `9P'AƜN^qjp +'8bTs™͘3h 1b"8i _N7"Li=~3]~|b XE3&7LOdWAgSŎQZH&86 ٚ,dt9O.X M-L̑3cg15s9h{~ 6\E'qdWBc)S̬D',=$so;SWBE t%(M$^v̅\gڌ<)qMlve-8ơS*>% ^ ' {dL+#A|_#6O; rý44/4?sUJ$8ܟu'*)4<\oaZzZb S9t"$Y; <,8_pvA$ px"BVsa47{kL$eqOgJͧ<~ j"jƄ\u݀91Abv܎i,':nqhρWtI !m^ ^h5"N ~JDŪ0#&[FY祅;Z`BcIK F"+ ~Q9 3Nr%an(WC0ٝTJL>|c Ku\fJd>~dg0SxViNQ*  H' `rKE kD%ɨuƶ̨~9m7KR#VE| ]?4M~cȪP+yᏝ[[^x*Cj&c//m>Ao6T2a!JP&6Z !3f{GMBH'w凞[Ig^ TO|SRȗN)eiP#D.5YRU$g3V| R*50~]c|$W z< TD;sVU!:c1\j^OA=)QH6LDF&?="yv+.֭lk YB7t!) IUTaE`Y'͓݊^KRQ4IΔo"Bz:k Gjaޏ¥B4PfhA(n$7N>ju2թJ%Mnv*,B?Za(#7:rpy2l5N`tF ɛzXپ aW^ׇfqSqչbNoy yԀ} F b\E4-* }7jq+xU5#¢mxW+DŽ"W[ շS6uU ٣yzig@4("1beG#x;"$7Y;A1-P fQ"dMm˝ \X1^sl6zW@kyy6`|qs72rHSDf>)JZ1,XB 83{N,l7Qbo8X2Q}@㳒r Pr42cv`2&|Ț.r|b\L68g.ÁJL?nP;nke֑MvGfrB'2XY~Џ5"F\2t %=[le@~?Z**AFHu%< O1&!$' ǾRfmN'U4GAHzrOP$DNlɅbі\N27Qhט$%.7C~0*1Q2٨y!:! 3&3[bW^JPei<)D Mqdz/,t"6X$x$fް"#|2ھt7HDv,B U}4 Ibb!<f V^Bp a9a1yD {I.U~ù"b#NCrD(Xn"mHo@ Na+$T6:7ڦt|#p,eJ<̲h*j{:W8 O OM|*Q/93b9fs@x{݁.Ӡg]5YLB64)D?X縠dxE>"ujJ(KbjuѐNiBHD6rɅXTUL#L;Sm}6n7!I8hBp$4nպގS'geX R<:e80֛`9MƷk2vL8!Qc;XĭMqIJ@׭au6a˅v{ 'hLYmޱPj^߁f_u 3qrʏH%wna q|]\ybg# όY@AH/ĸq'Yn]]^^6I\_uxal^_qA>Iw!=w?cݜRQ I#UV{^Y1gh `ϋ";ZI`nl"[DzV.I$q`-ƺ#' yuB ^HW_ "r#DfFFwT $L0 +ibPs&W>DjqE҂]@|Hҿ׹ӃCAAzFKIɦMDxE\&utr5"#fg U OaGe\*vD1ahX:U d#+=H` ϙBb>N~)kzËatv~q%H..4I j$l;BJK$Dɋ)o0JK&?xuVAQȚ$!lSbĚIQVDc ]R_wB2gNfJGH&R fZQ!x} h&v܆XTdZq8jeHpƋ!‹}D{=d5`hÂ:}Ϭ{0Ifvj}!$;* a7yiC)@,!"3=6UVR#|`b0щX^, KakY9sB Gs[PPfMա [[ԂeDܧxs"wh)UH$OrW\Qc/`jP굤L ˌdmz _A2fvs|amP](LAX,Qp[[ݦ.'T 06,KR[[4y=]E5j@THc+EFƢw骄H;@:<=XAl͋BN@cWe,1a? {=ThSQg䬝@bg(w>Lc1ZaƘgɯXB_4S8c&w3IҘBy3&QOn~܆R옳e]yrq*RT9+V_`s{kZPxI ^gs)ݷRXBF$+egkTk n'viMg9LZA *,͌O J@"UJI"P('>31#-ؕYl"upXZ.G)͗tA8]nYg)D>!&aǧ~N,U|5v>䝕]SfqKT [5HpSDSnJ*Rx3Ɔb>*Q!z%EiAbMh`hk\ƆJMr \_|KKg%;Nn.WQ_ևA*SDC:m| :'$̂oɮmi>kŠq`t>XBĭrjZQiYE[ʟ:3b05> SVұ6D*phNy*|DSL_K׭iA48-*'IG"`]IJ5۔fvJc-%Nl5!S+d)tmo wȜ:A$ "ϰ;ZJ5^ԍ=hMh.a~O2`M c*]DBnV֐ey m3!\!-VP$/A%4#qq<ώ5b&Ecz7oN ɯ՘ `y9˗jVrmŒu9E~~-w$UA\$oMYHGO}xE?Z @CHR}F"H0č|[xVevHqO̓̉NA ičt XY'EGSSROG$yBc \zJQDhc=r@qԨg&J"oE/DH'k8چ"L?P@4DZ_|g.ZX7vۨ 2baB| }~13^\B "ґ#B((fO`&3!~8'K2_p;jhEI'k_K>l 4A8!L s$_k45n$PEέ1"1d@ܶQ;^_g- ƂddT uH*\TJ*LwG)*֩=)8!?`׷ue-Pd(dh))8߉s9 F1̶kDx)fԴ /ؤƟCb\0¼pM=Ukb53H@LVH E~Dz)}X`m1"֌kzx m=LӠ0V+D8N_Д#/:)rT\Bz0p_0yIIA-r& a#"̚x}n=ZN 9xHԂ{s `B,`:sm( f1CA@Q}T[owl !7 &2dn{d MbcI$1>DA ֜p5O0ކ|ue2ޡMs/橄( xᙜ0$Q3b=ҎpӴ ?CnkuqY6N3묚+~W7W4O(&F&/<o$q p+ Œ/ur0_jUŲ/nt;^nZ)ϛyv)*AaDtyb`!$| wO/tmŝg_ƊF"!|ٚ$+ v1icEEU%Q'$lj"렣بzőOh;ήTWJ&Ś|6⶜?G\߅#G3mBhlx$,ϋiYW#KbxG8Ƽpq6&Kӱcw)f1H&x&n4yT''[e @˥)25}TrMIj>s hF |Dwd]f̬l*CXP3C:6 hIF:V(sGD4TR+0gwVHnjh8ӣRAy)w#Ն+-J~qRUƘ#z[$%Ǟv8B҉L琻iށ{@P6.%'}B4X8ǻ}(<#W@Լ%hcH-a+![NC&ݖw[e)HIJE IĹ!߳+۝ʆbCY<[-NKOE~3:FZhW8rєp2<.ӔyHumW.Љ&l6Dqn} Ůlh~ԩ uTa~` q턩HSFl'Ս5,Dj~ID4L21Jņ݁ɚz'U1Xu;}ac'MML3Ę_WoFƇr,gT c :8]˩VeՒ\a]{ J1 .1eYٜ_ MIg-Jyy`cBа,\ȯ,,$ (*?G=) g 35s5^@O2u= 8@=]9~R ʨF IU4*jb9l'UCFsxX>v˯JD\ĩ Mؒ"v $t8.Ssi~/<)BH'&_p03>x)‘w&XV_CC.6d9U!C:B/*fܠ^]yZש#6I6 :){h*RCc- fn,Xn/}dzwu_r4KJ_!27νY:-^?B'Mv|QvۇU$q.1U PO89ZQǁҗ$ō/MjhL&9u{*!A e1l}Q@P+FD3n!t,g6& \P#9m# R8׮=cv >,'ٔKS.(Q;Ȥw#SNLhF酮c@[dK`| `B I`&|T5$$XmTO,\}uھ׃|yD$n1mr\ۺ^n_*HBכ<%fM\qbǗ!¿xZsez' x<3hDr0504!LXr6XsE)]r$R@yeYZ- qTg.!R8<.:4uU d`™%X #bx#T曦坉D 0۝N>BBRjрt0;oȻ\@B?*d9? 2J3uS1 S a/m|PQ%_wNp1yqbffBT5mrfx}ky۝5:<> {pu={:EЦgl3sg hγ`g:zƘHȐ:IifOx%_4'Pm\/zH{8j4IW";{6v b%F"hvHC&vݸnƍnES7 +WsN!MbM1d.6g`+A.཈RYbEIY-~)LZTn#&VvV:rP2RJ_ȶSk6/2Gm'"Nzc2ܸdTW#E)j8@|1[)!ɏAߺ51^ gHĔZvLkw'[xȘsA jcO<$i/{+1J<Dl/Ծuc+rrl ྾o4[h%lw׉Hg{%D.0zy*Kl<}!DǩM|7c~Y6 e 6{Aп RЎG\ϸ`*1EX́I'8e#!lQAɍ Q8-i4͓,Լ trncq}ĸиfh;9#L@'vNK <)i Ja5HA% `9~|:8?8vr,{M 9*r~ZbC*y bimVv|^-APYjdȷ m_s4J1ukuÆ{7TA v}ٺug(Gul/r:T a| e= -INgM L]SUIEFTdBǤQ3B3hݾˠ'%X¯"8trG -Yֻ͝M]v%2y˲Ҍ7,}ME2O;)dB\DE%ERs{"ǘw~Sf !!_>ƘpElHTЄc~YacJ ͯ#-sLxUr bZT\?s0lkr003X;L2~cI SG9ZilZ 9g;s#;4sYOp c0"#?t{ލ{w~z}3"Cюc!xK ^TmzA p{oo'0:y|e.t}_Qd,%F!,i(AfXsrqYb\`6ucJbNfb[CZx@:#>ߵQQ#qVb$"^SAuJe֛a(f"'r/sj,e`oғ*Utb3`{^BI'b%41MMv!k.R((" nn^k= wR@sfpղ ʞ{8`GQB\ #o+bw%!!Ft갷]!A4iuΧLBA'#DO*Ik(dgM#-4vaKQ?qE/]18j3YLw.ifQ7FI$~1Nɩ!|}_AƝ,fZƉ4K^،m0 $\ 2"IH s {r Sco\r>f1c]cĨYP?=rǒIΝ2Řz^O")ݗ=S *PPDӼN:O!ŎmM5pS7K"3s'_aZ%"4op- ?'㺥UCdR~On&%}HCE%]MB+¨E" #$UCTOu'BWђwibaGll((QB>GW@Օh4,?%z|$#?0v55qEb"s]cu@.ܧ$ pk w.>ZZ#6N{x>cF]PND[l/Jv־u,gpOGMu8assi& )5O#Ru!DC6Vjҋ3WHe躗ik0P/] T*!Rf\X+vT%DStZLF)Ap8rdb;=On" \񰭓ݡ;(*y@`st2H|؟U;v{!ܸqqQoZaz#=;Vk$\Y8y { >@2)4/}-  M̈&#jmwN¢lXJk0a\w#X\b;!e*,xfA@'Qץ^FS|rJ~)*&ڠlUIb`)ȆϖK$vO ȦƩN[>;iХ Z$db Yjg+w4LoYR? щت isNUEd0 rďs{tWbUa sBQ[Sr S'dVpJHYktcENLR8g؈{%HQGa8U"""YBC>}{d[Y:rM:էcZ{vDz„ԡCe(JFɌ8!#D^ JhĨ";Q&cq80[k]+sZ}]xC_j~C/zh}{zEzh4~=w1w6x4ٌWx3[/t+z^zJɮqIj %LG1#`L"s~\л߅\nlN'C ~dCϷ @<\\,Js% d N"w7.S}ϰ 0 ӎ96lfQGx8TYkJ "A x <%)Oz e! 'r<݌DB)dZA6w?ǣf1_)zHvNfc)})i&$l#A6|zY̖V8FK[LQLMZ*`t d>Wf:;Yd} R9X>j Ia(b}~0ȆC@tO-DA=Rd1JfodըmA.. hF x (Ϯoco%ox>_ԱOGU`qԡjr;W ݞ[9Y,!RaɪB(h,fKȯ7" :s3 .SG_|"^ɥ4y$Qj9|5b~~,䰧sPډᮓnD8m!D P*`m` L@BXN9w`\lY-C,vog>dc&"7#-\\=j\s7q/AF]ĉ6x|cZt(=kWL{.=B=]. E"n *|bY9vsBBLKE , jpn!wH>ƪ s!&|9gHNP Č$ʕP2&a" Je_SGt@ڄhG)KNOYE$R?"c9A*|rd3v^ }Y},eaϐta1+* )RzQ 7#a ϔ%zQˎ$NDI'2`u=p?{!QZhQ\uy}* ӹ-,TJ?*/8A +(Zo| (_5+Ir*>Jt=1 P0 AFVi(ܻYTT1AC@R&3!N1*TC!%N;CrR BǸE0i $5#u[tm:KUmj0YhLbho#X`F.x@LRau*(;Ҵl\_Lls c8ˉKiHd#*)~A>}$7*^B@ƝR#+lQz_=1>"HgМl6=2W PQ)X? }? T9zαt+q0h˒y|Ƿ: ,gK?8KkUY"nB7f> )5jl8rnPGd8g eᱶǂ|3hwvF9gU^I! P!WA%DGTI@@rmlgW*weB ևbdn;NСBC\> u.cF~,9YC#Vy!Ȕ3L@nO>A:sӱ|2wE`>68, |?cT6bYMGVu;ScnR_d5ArVPRQco$j5n+oI{>P tkC ~ 5HkƛR#ֈq<$Wi ֒[/Cq+T6B}4_z*] 2BA$O_bwlD>^.V 5Bܛٱ)f{ Y?"]c,|1kD *Mw ҹk\]Z̫0Bb3Dsm$JFgnI Iۿ>ND2fd0M(AA*C5ZZ-H-7J[]Qyui?PS|6Rb~$Lu^=(DeS ~FID =N^-Gu_2y& .W!z8\Z (bmtxt_F >muܛU:i5c7}x'ŧƍoxێ?ʥ\onT LƇ@>2F)OQ$6Mc=6Lo1Sad2s9~rdtU#R kZD'^^S;@3ҦsCsDl+#<=p1?n*w)C K/d(R-/`ݝz>5_`#"? &wV #ǶP4M[,5Pfmmi .}YMh8d.yAOGB_2Kg%Tts>RY/vi۵ st\j#n#r4:Ly#L)ƐQQRNyn~d1X>;_-Ѓ][~aL65MB,~~Itf { _-dLJpPgr:fJ3 ۠0>l1^!6zk=sz18V%x+3Y-/*U{&bx\? (^k<]Ζ08@\XL!*)ȅ RȲ'Kujja7# Ì&B۞O6e@nL/%Fhd[F A7|aSg g,a/hj! ?ެ7|?ݖ (=Pm ^&(m*YhQ(rԍY{.- 3J6ȪӎaNYԖhm{WAf5l{d#njl/@``\1}/Ѽ ,C|uj<-H;tn[B!^>5EoH=̅=HB@Na,`,GuKsx T:)s/zg~ȍ΍GvU>w#!!u>w䐓FK}(C]D04+sdkn-SM,@.?/wTI_c>ğ[.kň\æήB .gPtD{XLI#EGD" 1*4Q$ppE2HJio g$FSZ'FG3,q$مu o g=w_4#ԚLˁo"ySj06Xh…[H'1rn}6e~> ɍ$0ec̕{=#m!g02LsZ;iFĞaaVuAtŔz}meD83* ?A) +37 3#Es(4 Q6ԆSBX4+fI$|mV_!xzj*ZD*9;zh"?޲O6>g$+(@襳krlmba(hO]xc(" LH>{C"fS(~)VJra:.@vF/D "KSB\װQ`C|a}2?V<, V9| fA0,4ZegG!E1Dlh/?BBg;T/{&¼l_ck9PN^}L86[z?1jТ"r!`̍Ka FkyrG@ؚ̚"<I*W" \tt ݾc$fK <3䗳aַq:lE^Ry%m@_Zw36;d>P0G k/Fn8#Nt+y"'N]Ɲ?8ׇ#"ON%&& =x3{>UHDE<5ljX$ D=$g٩A`|=Oi=u^;c v<`Yuac ¨izb9=14hL]XE0c|q:̵T?;n2zTRZ/{0f@w2Yw,zh (}&I/IA?4AǦ蝕lcaf+D `@'>!KJz(ij\6?UsRw%Y6/=zc㊴,,d}6uSL7(;L-MW9|HY2 Ǖ mǎyY|>WnkلKevT*ӓ]!U^+$ueʉbg{)ff==XwǿFdxWXA4ªLG}BZڍgl{{֡@U9q^ofƂdB$=>y #b[?vzQ =: "{0>Oڄ|>?"YWHlܧNLeE~>|I~ E0G2@:m/̿n/,aڟLWݩC M/W+IT= rh$B(:MTMN m_oS՛Kr2z#aAljh8inyV4vmr>nc4Os`sSAvVZ2x~xK ݩ&5z02f Ҹ ;rXa@n(.`ɰ9٨V9-hZNpviajRVXU, Xw\V JcvJa/~8# Yμ~:0^2'B D X8=9hC^A$r*ڦ26nܱ;BkMgw>^wN/0ɴ=2-mZT yiC;Y+m]eZYm$sQS[<Ƞ m2f@Ž, r8i1kΚإ S.}qWf&Έi1a$Iogѭk}zCu+@O'+?*A7#G0ZI ӼN moWd.__T A5g شҷ@gXC *Ww; K>BzCƱEiMyN\fdГV721<{ð,'B{tG\b :)AWk)z_%@_ݸ[3` Ls*|K#l%'dzgew?hjf#PR Қ$d18 ̞ dЕ\ zL?y$.$0O-p$_#ɑrԦ ~o7jb6+f/'}Aΐ @Ѕ FT(g |Bi9br[F%1 њ bƃh*fi91ǷӄlZe> pQc.{7ٛJŕ,!?TG&64\$nKw**7!Ms B)(*#!ק $TWs!7!IGGڱqUR&[Y,ÝjyA=8zF'V6Oäk=~ Ef|:׭y߄I0 cub$Rej/oSDh$ZyN-X[(@U9:JaĊJ!~"(Yy++IA+@dS`&f qTemȬ2^t>$eo qLA6Ry> Q(oElq:WXwؗ_0lhB(>Q,63*;?В,X+o>͠5G$".pV{%^{4L{\ɽq1ڜq^!Z9~;f>(Fk ^(!X:X%ML:PnP'H+TI|'wClR M`elq7Pʆ,#rD0%[a JO B[U.M*=v[A6%P ̀!_.dayG@=2٥,L?J)b{ufHbN(])a9D1W q3 25 Xˊ4u3aʇ+8P@LQzwߍn(6LʭKF\/P>5sD$P\-X'0³w06͇ 1$LYz6CqyqO U#tkx*{>_B:4ؐz6XIDAq ~prSjfyXs9-d9ڦż+ea3ض8TzYK<_,ܰ @;Lo&zDWW 4+Yњ~/5n$y-$?& (GMs)c>l>T<>|;noXLi ,b. Id\!$%Bp|w$lgӍ}!foK4{ToIvn"o[7NOOq1g Қz">n_zrƌ"Ek8_SzJNR~_g^5A>M\RԹ^ՔR@g# εe6aR鍱BܠY9E Q$ّT;|߹ϝJWQ0 C-@e- !6<ldLh9IZXZ@kdq}yӘ>Xx.2RxF8MGB!dCIFZZQ10KHp&^20Th6|VTF#t)Zq{(T*V)3~+[% i^ݎv u"2V q 9H4Iڨ! "}z<{tųZ46@0DG&28=Zq]7>x m@;Gj0ݳi؃ TfK5ӳeR`L=<ʄcSQ?Oo0ѐb kcbH,, fgwn)l1}2)HL~BTo"@S@]X(e;/՘yNG*dF@~ф1n1' :J4mvՇE =ε͸߇0~1|Gx 3Q퉡1M3ktx/0my)Egvè! o4{v)S wT37'w6+@)biG5Y-HAFਕO:x9ȴA`lÊ,ȧU{RT#]qL$Q $*_'N2Z%[X1d zD|j$(DLk1f >Yv3'9=1޵:s{$ǒ'T5b$ztEJxK,Lޯ0CE4RQ ˆ&!qWOelA_k>T-0(g;@,ڄ:6v;8 fb"P_-H.@:"Aooݭ;$2[Qmf1ׅe[6Hbj2C% a<+u(.Wf~ Li" BmwPA2 9(̨`־~*QAXlBw`QRVFþlz=;9=Ҡ`C۰WavT3W̮Mh+&*5mF9Umt>NA[kDX{~E:=ֹ#[ggwd^ĸ뜌ZF~3"D`rF Ja:6E&s6@=[bvQ饄K14* ODkbSE\MR\Ȇbr3^bIwJߠ}Z LqY,ba?jO:'n<: Av+nݾF 2maCNG%t45RyMi\^dȬ }~}~3= +6rkbwJ}vIm)s|"!χiDtie,OVHF"f1ϖ (18H9@@/3y%NYpƉkw$Wi~{Z 6WѸ PyXyjsM!:h%`z\Ss]r(Rc 8aa!/ac̀7_x $~CK"H >> *>RHEg*rKg|KSl/qWfF ꇹUʏUG-JK.&1iux22b0iϑȇ_@[w, 9i y&i z1>(͟*ITMݳ3"\>ހu{yZ}2輑:纎KS{W& Ҫ͋Va*sxxs#[PC-9Cu zL @2UE #+QzFLen'6Mz/xzØt6:̄u &R)lޚ{8_DACL:?VS$ë\PFjAIPt,^Uf~єlPf4uW)6A[1ZDƮ*#M:CBM96^4&&"䬟$vmNt kgYCn!v7L9%Ⓢ%ju0΃0[6.ʭŘYPҫŧߎVb %‹ın5)0ƺ,J틗B$9=[wЉ{6!b,|Xy;(#guW Ngk~v{ht7UisJ4mpZVB;'5pewl1oVzrMf10daC NhW)T<W 2Se2Y5[xYh٥>ȧA%}%=HLmGa3lF*CEc5!ɽz TAoCŊj*"glIIOјϰynL/q*ϓ ΆG^$u Z*jkDds4QmZB? GCRd]P#GM*Fh(5s n 2@28<|ڲ=&εs4|J1|޺cP0HyqlS(9f| c. )8AMТ;?ce ߵ*4=cz]Ib, |))p2* qWRPXhx3|R[2<3v VnSFԾnV_i&RaC_q4Y\mh]LG/uYXZ|QV-:t friL*%/L08]3 a <\gaj`fNl8[梼ி=BCBXMC7f>A6_a1=B0.*l9Әm#o+T?RC؞k`JAusرūԃt)KSBX&ԗZne9(!v̧7 rT|љw)6[*3[^eFU:8$v8Jݣ#Xǫz 92川p3d^rv.«+Uyr WR cbGvɮn4~~ajTr6Vlc1!uۄ]lB)c r A *=vg< :YqUX݇|Z gk6;YGǹ M֠sJݾ*A1t3A9SWOa9 rl:;YtQ0\33u6ZmҦ@x5ՅR0x-.6<ӏ y/1c1b:M6>|wRq o2JzA9ţ=^-0O|i# @yyI`UvIXFY?I18q=uMU\6!O??k 9>1M f7VTdt|c?^ϼ9Hc0vO匯f3ͱ&nS5HFNm,]Ǡ /{Sԩ,u]./90o "›aڐ2KoóW/oWHgWw Z7-ڿxt{rOtLwtm$6aIeݐ. 0!}t: imzYcM+DQ{^|tCyx]cr0gż?w;Vn>!dlbGI 9:~l'r0~xI_%q| ïnqG]QX. }|4\ΦYc0"0| 'bx^x^1ާ1~ {:Xaw` aԗ`h iL-|QI(ӍC` !>B /)BBȏr ?@ONZXV7SeꙌD9#qkyLI'*P1IBCQb5aaO'1aۘ1%mR40xU!=ӡB*ߋۡIksZ`1˜Sʓ%\" (MBQ2=a /9'@Ȓ>yP~TY+N6{_NfhdGtc?VߊޱyoIldbBH%x$ K nRm87 Ҿ"c)B0ϑ-^/> CCD(ߤ!gY g*Kcn_I]/H8R@V3#(yiQnT.1 WUq3K Y}nl+. tmb!!z.PD@>m#1Ҧ<k8Y#'΀SFƊ}J?Z2ɛ," b:LuUFƊ:0X{~F5Gga|ECR]iXkPaIoOzN‡4&(B6Ь݄fO'F5!0VtDRF'p&4|V>ngh:8^ 3ʷt*"gm{~f4̧gbd̘Oiߠ1Å1 gSڥ! CU҃xΣǝl!R:%ri;"}nяK~j.&`hȘ 3!=Jq#DdǷ[q8r֟/G~¬W[8k?la嘩ՃYرL00 o(OCQV"H\`&sNI#m-4<$kI(X0rG:QJ |`l>1t#0#6`J]v0q+nG*rDTimx1;< L( #45`J HGq 2%?:^_'C N E'X\Ņ-@{8X̴; FG0qBQrNz| ~d6)][Ef _C zcI aU~$OYσ. V{8hA,4d *xf $Ɖ Гic=CBЋt(AZ"ڰK'sIRlL?mDz0|].vRE!! M?!/`9M,N5D .Y4`_%f 5Nn k4)eo=Yh}̨'TxASY(BZHX*zNĔkl -İEbNrԟסfpՒFN%Y{Fn]19;M] J{z>JY$g%tD/=^:z7E565eq/Uwr{ s@^"QQ]b"5^^|! sM w^P}H~2Qy7GHXy)S3?\c4BJXyܙhD)Pf_Ŀ(u< }7O9[U81^@)A? ]֧A-u5o6vt熥',J| _sHb]vějڪ5PLx20]'@f ss.R||%4`QF=HHDYQXHGxlEB$k wgZff\RݗKg/`|oH_"!*{-XBö1&6: !Rx֟W/DЗz'$ |p t/G 6J\$vAi𹧋E%A4Z>ݯMĨ]@\}2V,\:3a om/- tHb]Fy R G|QۤNr6xl:W>F 78жO0zHtAo+d'M!3dP ɜ'f\+b+qQux:9Wn+KOVݯ*YUmZՈG"cz@Q,ZA SXfX{TXb^̇hU5Vkڨ)8odi0CvH  b&"ryH|5\)IB|9Mfa)@kd;%,U 'i;n6t{ڗ^mԒjmYmfvj{G|7hψtl[dp */3Fڿd5^Yl|8 0ܹݮ"Z =R9N&KD[tnu1k,1k2d'CX@ ܨTje߮iPxfapy\ۜS9^ ֺ`AqE"FÀ/>GUymE}By FTY7g^/`&whif񇜦,DJ#ad[>9MuNfwYW))mV\`SBSo.qbb::a]ﶻ~pA_V*5.6!MIJ#Ȥ&}jr 9l96r10H2 ^£Q^b A=ΰȯtWt+CSeih1*HykE/ 伿\̰ FYׂ8kX"Uꁲ L!Ÿ(;>2k:CYBO"F}Q4jz1gd9gAT叐YD/ ĖM`mLF]qCkdxc~'t/'a,X&>}>@yA`N;mu2k@ā D y"H1j c؏&dZx2(ʲ]ep(7?.+qJYZԭ4\m{IAy QUfE9U/M:rN s 31fţUA5gp|SY2`;u5yׅ_%mm  ,lwCv"yТ{>dfp8E_='6XUi~BȟrZK1zݠ]G%ܕe(-F>vtTd0"ؿFr}ĭh(!V/S*c@8)b|\YrܟH6 }&G|wY'x1do `&`8&tKFNIJds+n܂[&:\3SM0~ǵbO_91dELɸK9@Nةw+ !M/ R/āL `5Mo8k,+2l#$ڑ }!DHD"$`,Ns?M.G1Y,G^dQڤă| $m5=? v׋l*h3E>$fU5 üζ)kF7ZuFY/ۃgaa++Tfڂ\0b.w>`f_OYnA0.#Y qSGfm=j4}F,,[HX aÌJ[s/CQ0ڔa Tbs] ,F US<\;RLšDʬZzR",40q51q|*)v|{rn:jBI^&"BӝBL^ٹ` !yX ^OWYX6VQr@R02q&NV=2]ZPYG_r,ʸAjh씬%<%>Ouk?$|6s59> c+M;&gn?rx`A tdZT^0;)pI"9yĒyĩn^auLeHf&GTY"ƴ4,3xOɄgB9RgJ}fwYL/L:QQ"k1` ƨ6wcmDGbL=ьO14ԝ>vHrki4=pHt*Ǔ*vaj$ !ʼn!ACl*5?x_|M!0`Ć]p{^I:^7g:F3 AT2^PD!vt1 an,W:98>M'k>4"DĪ[c^|G/8%U' itqwHx!]|ĠBT O^S ] bYɷg.=Bcft3*6'$!SYۨЇQs :WF`!|,) #\YX8 [JU4]@\,'v ]r2-_K(%I+GfYۨG,q o1;䶳/1 -٬ĸ^2$ a,`A7%6՘S[ %fyҪxoY!v᠇ v{(|MOh̩['5z|'|lQRiNvȷ:ף=l )o\w ܭ"'8n]$(DJ6zJa sJH`{(&}X`B@-b F6x/H33v [|O١5п}[ĩԑ}XBƩ{;}W|O'j ʻzwBc7.y㷯9©\w-vI6R<8ce3ҥr:939fbm"FOY]_2mc>Pu[$078[d T}~j0`𒣍?|N l1V I 960y2_X[x 'S` lMLr# F8ʦRPh_bZ?z򘟱`v ^Lx@sU *pXd`5IGz|XHyO[ax"l7$ftD^enCDGhmywvq\+ ƽu܂~]׿иɻ%h/!sNVRϨvJb&;@𐈇 Γfu;nֽʕ+م@zGqusͣ9 ›Vʏd.{d^P4l.럷h9iQzk .pa`: WfI:]0~?q:It&/І&~Ã%2%Ba7bn,dqk1/өlPٜ%EqFl@ed\=bMQc*2Nm]ce;6!re1,n'Ekk]p/dZmوe6ȰA24m  >T!ܞޙzVWW~NC"7vD{gq3jmz R0x\4F eZd&s|x7 ݒd: JVZ K&?1V' %T@])¿C}ˆ->/7!1czu ՈuFA@||E2^Oޭ[[5wMpFkJ5s>!]19eXZa%TE0D% 9S ԭoul bеGmURtGqfNJ!jvFI8LNgH%-]C.?wElz۴=pA>2) ?Fo/xKFlS |bм*8fHv1g$hf]!VEpɧiB6*=nON[VtN؁5f}`<Λn}ץOR6y*8t͉#Ier)UhOI0jT8I g|ȳ89\̱hwGtwKi)*x2* "h -ZnU[ 6%sfN o4ӯ[LcV  C;I&= ȬRFJlv%XGaVvZaIauJZ+?kt|R/*NX)&s1N(G^v:a.V<9if6?e0M'3XMyr*At5̍Vk>6`q*n-ޏ:B/xG Ih5f[|"s4EWZ2Nqt4ľbzNq4.dS6̟`7lRRq o ="b %=S"qmHJn38޹򇏄_wCѹ&KC\,y&D*akp2<1q8u@{1:Mrw6O-k$~b's93 ǯ3AKAGr؎j|X-!.e6SQ'ZK_[\llC 9!vc E'zTݪ~oƱ>s",peWM.QX杩 3 ҭC u%B$g .Os G~B26hyKa2hijq6 ׋)kUI1Ky94va".Syc-]2 E|rZ tgq#S$F:60wIo43 sl<,CQČYi rwf'v̩}ƅ9|:j_«8QBNFƽ۞͇uw]/fz1\ŽDG2f| *R< BJjﲐy> [XY/' #d>c&4f0sAQoڸTMy^<>?v"Ӈؘ% G7L9@N@7ʕoܧAէowkКwAvbvh^![UF|\!;EH\37+XfTIЮ^bNxMh}I}9T; q}p Ƥ?p;X99CWx WȺp%Xu'ns#ĩ7!8YdTc#ԫ~-80!r>v>8͂9 5^ K;Aϊ^}]EG3N ,`PsĹ٬7Am {F~ :czzˊ}ィC4h:= Tǐ9.{ו[pLczƻL!q'йT+{r `{C{WL|<z vpS; )vK׎ONvhV۫zw =yy 8˖@cH߂q15.6~\Mt+NNA)]&[Áڱ\7b+T?ओo4^ _;Y7z=͟oD7\bGXqBXq*A|ו`ro1DU$" ̊׋EϹ!v䀋1mc "gkl_Nvz=4ṡ !H\=JoIjl_m uŒ>_L&٠6#QAwHX|hlo{%rp;<n'ҍZo^Y8}Nyܚ%fu۩\oxLXb[˦rKCJnL]̷i-֠r9fc6qM|<$Ǎ[8YVi8-0gk(}P|Wa\ h_9Z7`JRii!O圥 %gbP=-Smf ?v3q*ȹQ,XTDùTM"EBJA% ܮ3r d,/hrZnp>l٘LqAkp*Oq[!)|&d;krjq {Gn!r[ڭ[uʎ LBV۶&S'cxJ4 WGQ[&?^cJO9N\h'}ėVK5KA0@ǩvc7 X;Nb(l5 ƟqldQvkƻSTy0c ] ~}[J̓ r[H/ 2Vie@8cLST[kzSxG|*͵p8uSD_(vS1VuvjSM"2S<2-k*o'5_q27 Ң2[:36$\p*x5Op}P9hL^^_v#p#;,HE>ZmNc'.(),dN P1KqS5!ϻc)ηgJ 42#cYG6d-JwY|xc KœskR$?c*8@YwF[ !W\  [}Se S[NKPʓ$4 E=HgWga4U%N PMԃѧ=yV1_s(7x/f ؊T>IGyk`"S7^m0 RQ4 bv[ؿs(83ZX2 &u4dY,$χ cj~Т} $i_2yc@1a^!?Lr25W#UEl8d ?"3vdqNwumSDF*=3Ș˂IflJn/n'5 l/_fQV|3Q?wʕ!cTɜ3 f|Bڲ,IM~~"MA IH v1#b|8k,9l7l[V1AP{j]-#wdG- 17n!Mk^7H#mpʺA#ŪTW a]Q!c<Ďga Xw=I G͝`?j1N#cD*]|蚕&%2,gA1H:2b;j-ymk{Lqr dKX_ob1|ZUu#ű Hd ł'}p'H7CFèA)$#SjX,>KX:7_S%Wхb a >7ظ7-:?FxČwʖAɭ/G Nܑ_[\Q\J`zoGǑ /ASZB:A A9 D`iGb eLy(YmT›xVى:~::JYn炭w!Xm“!5fۓ^~ y::̍@bh:&yRWS'n'εޜY7& 渲=*~JC4:͝FΎO-V&@1i'@%Tt,D$]KQ1ur~ռRqҐT71iy&)Yk~v.G9x\" 5' w>Q;(΂f1p<_9qXΊ|]y$KQar[)Qr^cƴt9y9/bJAXɛj3x_c|՞M@0|8}%w)|Һds^!۩ r6񛡾r#ѫFJLC#. #ϽwF0=XȌxÅMg7-8Wg,X3jŀK?0C4w!` )qDqHJ `{0'\O1S&O;՟4;|ᢺg4gK;69V cҘ#0-N؆z0RciM_|s[.Վy};½mOi'sͧc)Vf1tw cDٛP1UVԓL,[(i<..9cǘʾ]j8`TX)' yt@.82c_$ZU_5B([3iY\9նsP>mlj~Y)?Dž|d=+cEҨKkqź~&( uB'Ƹ+f2wY̓IA:.:φ8>H{e W%į4JwT~$P+w!k[~[VvyųVkӅLRE[o"{gc.=Tę#CmU^~K1ЌtcXw4/2aMeđ 3XN:W7P/xu !8悃DfNc4olg ߗ-y)'[p/E̍t f$>N3bφ|6cl؜)_Ԑhͭƚl"1ŃL7 Q_8nfb5u۽X DFf:Dk_NA>r:?GGc1aNb=-'WZ6ߛoP;K\wg='}X"Zs2yIȿx??2YqCBՋ .?X0>zw~A ƞpL(#H(OFu|C@&AQvYօaöQPL4&y.B3$u;Ow  OkN{c~?<~C>q7yۍu#W}ֽ鍯8YfoǓb{=[&x6g"ݸg9='ǝyguNǧRA ;_~pa{G0G]wy }O{a,֓e1^'ruL>i~m?꽌 P!S> qx:SwyknM؝vlZ!=2$yytW5tCvI=䔦ˇc]u X'"Nj&$N&$X])fIEN ?m {OL'z ^14MWGi!EixK/N9)h8$_#!8FK?8pYrW#K M98AjX+sno泱:BrvGm8NȈFRn)Ai MAL&aɺXtZhC1H/W/b˜ŝ ='3CE/ȵr5^L4c>9o5Sgj͌`Ā|> A38[.'ӱFNjBQL^0 or#phc1ZB>e ޫҗ%]i[a?qubr* B[d'|NJ.g~n^YM80ᆑ%~W9֕{dMpx2p_8>Lr|zekQT#O_>{ }4d GsqHzsK&@G>ۯCGd9_pm>[̴7tkXa!cJUMIgdE[R!xZOBӏZB2X!՚ˊrZLqɦIP`jtΨY)c5!_81pGw˩!/F8;ޚr㜴XqO~KIL4+MF']pPPlAl+d|97s%&h#(5g\UW<`.M[jA*ِRЦ6N^`vAo@^rg<[pw bÚ%qL T2WF2!7 yE5?xyĴD%7 q]e ^9`\: w~1{䚎N0ŀGUA^3bY &'4SkcaA^aimMKFeTaџ=Kb˔;(>AʃreZLPIZ&|4E|}O!b,ĕ s؆N"^x&1!m2 u☴øM0t1W5`|eKSS+=s Wha13.#cOX>/b'fx=F-Q\P -lGI=JӬG5\k1#2yOf#G wmBCC >:pg\Cر٧4(sƒ~ &C e<Ҙh#?)wyO/(َUvj⭤jo\GΚ]7SwQz}Bb rqjC'$dHD5.K_8^:|&/'DTxO7c}Bzr^(J;s_|sݳ'oqܸ0wùkDCdظyvz\u~uCpr\󯜼Co%Zb PNQм1,"peKH` #Gx> bmK|<|}Rܨck@z/ȧ/^]^9gŒ{^cBgufs/M\̿ݾ#Ci,QaA<Ʉ{8\y<~I9lڭvvcᎸ_I<n7$ꅃޠǟp!kD; : R{DauY'CJ@Sl6K [.ƫiw. /&s_̩J6L+8记Nc ߩEWsX, "5g/gQtr!>O^T&'x{a_(Fd?"JB*ؐ 79;C5O"q.d l8/PIе6K0|'dp1]/qoѐ 0\w;'WyB|H3p&+NU F y8X3c[@ʲ5-1N2t~j!i?NQ/ȜoP^\ļD,- ޿x_ŋs2w vHl['ۑlw8}KB4R~LC0Dvqg#?S/5<[gtd:;kmYd9OyZII!VYџd?_LsPg4og8jl8N8lfbq˯"P}i#๷҃q5wdwE\sOkíyVur5ND; Qt|T; *l&5!kG=f+'Jcpm-ےg ;o%/oyzjj6[胣D|#i鶿^4Ȣﶁ|nyl:R3ӱs-&;SѾ @HV_]PtԂ4kӬ+AkTOvOL̕dnJӀ==i'Yv?._?`i||f0nlÊ5")$Jn]6؛> :K3V D^b X"| 4O-f]w d2 uJKLdYY ѤI1IIB#X\l5dalee/C,D՚W?wcY_.  -*J3A,bfbB'^]A`kH Mj aFrX1aWD 2+5S!5[,9>ΘW}ke^gdԽconF^{ZGwa4ް=TZnZ?h#`Ol=*( 'n&#b @lpM7UQ?h\S]Ne`=NR*Y&эaR8(r7oE r3ўn B4QAmLQ?KÐyi ӕYU+GXʴ(oץSQz")߄%0mC8箣(%"2G>- u)bYz?IiʤBgr`'†&]p2]*杖H,U^'KM㟾aâ욙lΏ[ c*;q3ATOqA/c-e9]q375d<1;!C3jY2ƒcYdҔf09X=n˞&!?b%;F?>q5Ex#;TsMI+Á3'.j҅eń̍45i&RR&yRhE?*OR=mPoańƔ845sHpE ɲd|55=iK47}T> "bɺXp)c 1!N3rdVP߉^3 [+ch^cWC.m! YhJ8y&]n41nCѠ[*"}qˈRw[ELm,}J^:Sj¿,13nj0<֐qFZq$N{)hWF3/6vb-'L|A̒~risW0"@1/H> [` Q7 dgKΏ1G-ΑTyQzd4;zw ij@ot {L`f?ZL򶋄/Ƚ]|j6g1-4'xwL;0Ld@I2 ]٫sa zzzo47aeWWu2sr'Jۚ:=~̙)/[=ʲP gOL/ ~8>3ARj1 {ROɁT 0[N.WtabɅ)/yр>7L-ģwp@H'h94l0$d.ŝAg=?~K6sn!\\^:4n:q$@cj^n֧8jcraqWNlj\F+fo,`Ii_3v ؠX)áxV-L{lcP++\2>k=CM ye*#@LS1ȎwEYWQrKMOT XDCS)]+EMc{kl!KsD(ve?{⫁1gly.z o `0(W}쟺.LďˈxPv lEp4чYjEϲA:ܳH^Uڒd˦HJoozWHSb a̜85LTًeT.W>cˑ0zWefQꩍ^5;=b e\3*x%"$kUT\aHPey=1ds1mMD77,2E~'n 7^(Hd !c2!,tinno(Xߛ`lk|Ĭ8m g?A|YbXС_7a1{m1[Z.o_e2QEllǢiW/;G6F FAHƬOX_S1Dj`mJ4rv kd*dtUe,񄬝6eVZa/XU|ʮvwEfbUXKh**ތňU<%)%%[R 0,ax Fz0 6  X8Ke~ !@KCMO&a Y1U*{VqMO:1/ԕan/L <~HxG;k(|Սh /B-|EY13 U7B:䈫;(9Cјoӊn8 Ҧ|]b|!…l4.}A] &뒙漀nt2SïEae1il1DoaХČJڨ|{Q-o1_O庍GodMK͹EW-Ci;`o4ۯy+ =^,\&2kt[T#dAF, ScLS(]R\V(S]ʤ4^K"f.9W)G\g%F jbI?x}ۨI,>!eZgfw>fV8h!%K0"v^\U(wE[Wݶ"Co yŵIQ +ȟ򊘪)#:u#S!>Ww67_1QՎ@tUn)e ZzuAp U.i:nuΛR\,PybSFA_Vd'oŢt^L0"wIa=[ FmJ{ a a2^ aznWg ԭe-EO)AuK& 3^%w،k2S}7TcV"":Qr{f于gL^PJpL}#C2YA:ԙc %\%' +rX`4Ld"[hR Kmw=/vf*R =^Lq~waOCLT-t^ݖAcFfk!J1' Tn_%wF ndCQ9?Aح{s>&9ߢU~JFMF[hl V}Y={p꨸ Cl$U:1s4dG2\a3ra j|+tS׭qqSKMÏ5U|i6Ճ,g@37g_"^IѰ}eGdHg̩vIJqǛ?Bɝ"d|sHo/4\;l)5nN/.wkZ45}Y/KS@l"NANv+<bOAGA7}2ZwOMf \-=ddb%4 2TfJIp^l+1CAOw&Qdeqe$#.Sm =]lnܲ+_oZObzjfQUjʱmVP7 !|Ksw*2Wg8H{,@a^RVih(Yo _!^+RP`JA!E*Ja29 *bJ 0${Sј:eօ}dj^q]58d 7kL IoD_Wx=#L88<2F%IJfzae/y)r_X#,Cf_WGԄ'ЂX?o"~'#B&+=4КD=rHx,r1W؋QyzfT"`g=\p>uw2l8(\ N͛n/6Jk)sтd: 1y9>ezrKėa{r3q3崘YM& 2) G ^ mE&]Lfv_/8s\=at@ad`'yray0SNcOK.=l{wK\c&$Uf/8lGy5cw5nu1?8h88lG, " P{/ G2|T L6s:+'}~Q?^|<=Jjq:ٶvME(|וe<|g ^-kL $MT\qMLL"1jF{)¯p Obͨ uZiS܏DGGC:N$'R FVvm0[he'z[3]7.5M!sP*Fj`! w' HRՏ=?Yg 0ӻWRlY !` d 3E=4'ue(ysع l{QRS7& rn!!Cr0\{Ϫ] i3̩rP7tw=_ԏ|*fetp# q&E362J$8p'Y[jvvqMBcVmאu{q ?sFj{]7&4L4v[H0wa,2fA` 0i)AYb9욿z=w\zN! T5aLž]Wކ%M3o9DUK3KP"&Cɉ. Dٷя0ӵ.5ܧV2j]'ny -o  hsyuf%٥2L^E"iY z "2Q qu`JVT)S !>gqu@f/=D\Qr>Nk׭Nc{.ƟCW;\+lR!ѳ(0uIXH^^WEEWT-+ISu{"[Rٱga0Þɢ_ ұ{-A5N洭`7х۞[\=_̙y4r\I|s/)1=[ay-I@7C .?uG 9%'AKk\~e>d~YMBT<=tĀ+AQ SR**._A@x M΃Jܛj0n:S"-1 w{izrq셶G|6'h'$a'c[̖ '|gQ8*x÷Cb]x#b1]Sj!ir")zi\}aa2B@d,'5(dp{*ͼBFj!BBT!5de'rmUVEor {ISĭ*y#ֲ6b!HbĬRSpw9*(7v+Vt⩒N!+D)cWcgG]1- P8PXO㒇3h[5u']Ŗ[eS5?A{ȸmۣO28ߋW@ =D0n@XbWRa< _LJs):\fxp=J|w]n/#l:iS}H8IAGlW`3–bq167aGp5b{2ot6wJ/h3P JB{ѪdKB_ ./O,xb8+/}\_yvz2ʎ&y;~1F2.#ZfR(e/3M:Dq[y-yiq2MPӈ]w@MdpGn=zI,I3<0})CD!,7ÚinCbؽSW9a (ϲsȩ=df3k6|͵t0nUpdJc+|U/":N;+e9&j1&THmt^D,OhV lgS3楎f.M*/s'q/=)`DmN:X'#a5)@tI ?W7j?$X/!yCPhؾn?D4?:F&rYc<7e$VO=>榼Ђ]P I1f e./#kՂ"Bn -R^Ppg6D./:haEYvs(kIX';10HIeǿBKd:*t+Y=mszE0z5pk-/AVT69:R6qI?מi'*oWuFH/He&G\$`ЈQ@hp4J c*\_Atk;R2YZﲱ 7cdď!FZa4{zqkCVͤ9r[r\} kCKs^ 󝠙P#J(`8fUh4oܯ(5DzHֵ멽geNRJ92JD]:/@l?Q?BrZ?)RHEIf]S 1*z;t ۓ;4LqhP5 BFER}a5d܇x Db K}I|l<]OF\1SJL , Hᧅ9,eƿ\LsȲ\P(- d47kJ2ݬc_LWpeظlM''rω$bGqE)8p;q^XXs̝a#ۺR?wDv *95&9c"5(qj1fo6D.?e{e!ޝ-Wd&N 6r%ַv4\Oc-5 :*/2 ԕ0Jc OvL+47ܧ`zD9єnT.!\ԫua ?6Bd*JAgYJ*'5ɢrSs`Ɋe9iIj %;F`7?Uψn<<9U/qzZ嗘ڟݬ&dUc<-T"k1e 8-#׃H;E'U敺GFk1fւtuxlO֜tVYZ;BgD/{aTOj;fifK˔gJz56‰mNJo6]9 ]B :ktbkSDِ;vV0DG$~LQIy)5"%ərfӪ~lGM( wzz<3a7VEI "!`: Zwr|@^2 ɲ3L+*"ui)+-<1@N0wnrqda#s?V'^Gro@0~ԋȲp¨c6) j6dEQ/ZY=]9dgǍ/Q.+|!'}|zBX9ݺ<_)7/z*_gT_sِɕKHDV@o3ޗaۀEiϽ86U R2^j[y ]]4 Dy}IgmMu-Rj"^Vįi/?tNxOxi"s[-hgLwp$tҺK\w!Jb=^&fL WR4rxjb9Z\59~93mXL ta 8[r{܏B7 p'qL#1b& r }| Z`|FBC釻־BCJ -Y]|~ 3sO߻V~~Lݴ1Ě|P'b$$zfzLQKKxXAa^O` ~U2XP) $"e$ZV~}O{{;k.瑇t߷erK?^=ƽ?WfW}׋790o6|߸K[/]"3$!EVd%E3E| 6wjH+|K^|-{ Wa^/jنxA ل];1r;mWnvr'O0;x[5^n/Wa9[noDF$ $bq~D?@Qd|[ыz̗b*A14~wRvr:EKo rX/%FIlA!M"2> gggmwd:^rzzuxպvj r6 D3 7z[r_b< @nVbR+y#o؇zXbm&4aTha}.=$.?m bP[7١#N֠ď:_P^6|/%nNSZ(Z_R̮C=@no3;n*Fl2~lHqǙ1eWt"PPuDu_wv,_,k13yGVy.)d x]Dq_)61an@=]Nȷt[{rn!V';!| 77f^] ȟ[DbuiՃWbҚ " fbC(JbQ|i5[ٍO;=a1_*WMF{:2F+'Q A usxҐ3~ovtHx 43_23iw/x~ "kКb.Y O(pJ1|!ɡphuJ>A{{Qb gs4$#;QkDTaBH>!v/J;Z$!cAxyٟ:dL&8-/dKJ\t]UD zIj!-d0vn!{5"b2.c} 6!Iq<] 0H( Mo La(ZnY106'*j ~a/q96 ޕ<yq<zW]rRB0 2ԕS>c_Qt<"ee}=mQ eYFs$ZnOᎬM ڭ%t0|#{wbs6L1RS?`5y[݁OCԸ*u&@| BK_ ~~lh$KoKlAF4Z5WyL@3eG~/*Y<`zWiI31c\b4QNx6$g@رp]'hו")N'NywDKbN3`;&C(s퐩CA> pQ2Y $:08fMhR4N$ތLF&g^y#S!\ӫ"[*@C|CVXe~vX,HD4)K$J)MsG^M HYb'Ld|s;,g lyYTLC(5vTrjEqba+Jtf*A/؎ح|'xB>CB@Ф0/\T;7dm1RBlFx7 xR_bݱz.#[~ f%NWmcԃgDvwctw;,# rcYf˫F0S ,XL*t)cSr6\Nhm&%M7Č, XaPIHIrhM|@ǃpQA qWK|~0:f[TWn"'y4zSrm4! =L&˜`LO]w491h|L ~8qۨ*|YjRRUe@ Yc4I͛Z")1> ׋rY۽QhYXD@T\@sF2ҬY`B^qqRV1!̈E &S^vFbޢѬ5> ;h#ZyX؅ʎ)*!-݊a-#?nґ΁Z"E$7&sˢQ0Y\40wTo ~QX;&eFj[a I^l E.ȔYF#^x1+jyCR5SHY@84gӰ"8$^ *(j>kKQ$=^&|6y6 \&GNOAZ:L~4TGx $\ƸT7&AB]t:v>7 v[;ٍ.!ERQN3ja2[.cE?4An-J 0PdA>v1*BK" P<Өez;ˆ O QݔDrН|֮^zR)4!^`;ƾ_O"dx? >_n68ZSm 28Dqt%dSU*^<+'|"dm%LM*2NE0܁0]4C4<1$ƴ?0Vqϭ寑Pt=0vc1:ΩLj0V4+[x:%h8ş6}jvK' jTNڈE/Z^ ųbԫnKFgh2sjM U#26_'g:֡Ǝܷ& r븘DZ9AwLw92,3OT]w+ʁ  6s)1t|{;He&RQ]2xs(y찏?>g4Z(m!,Zg_Niu 3ùR V⯜f_Pp/O]vP~awJ/W[Q,;wpfA*뱀1npƊ< ]GT\0GI<  S]ax4OOo?}d@bDP]cC{nq.W3 ^Zpvn-a֬PF}Ok;thv ¸Xȁ.1EIQSU)Z{?S \ ]M kAsQ@!r ),&7D<|!j@ʥL7aLAHBXYuYǿ~2DP? -U 0ImBsȻ}}4 g [_*_{ s 6 sn K"a\vN3ݘ1jNIXJ=#{SM3":^qfAcJ2Et1flO\Bbcv号3[#Hr%F!7 :t+ogbriSPЄhhF=)q&]q}re຃p2^*q.f~X3B] ]_wMu㸯Q(v#}-j;<řu_k j }Pvś MJʥ,K>ijxC}L${E!~.k2:0}Ajyn{ Fٝ,εS |(t4Rf0y!$2y<4+qB$W~Bo\vr;Is0VRJX/Xf _C*0{?k0z#:jw6Y*:J"CV% #rT:u`5Cj-΢lVqw=u}0.ևG0Q E[LB3b!JgӷL +Gjd|ox/ٕi&HJildĨ>^#gǣ񽏷>cG*y_+Ѭ* }0p5v t,Ѧ+1%idChYf36 on5|VJzyE.x :@x#u&#5wI76Λ|3桔Wwe]m6G4<>;iL9 v%U}P(AAٕcGH v؄+ bA$艶@/wUfiaE'DWIGJU3JEwWՔ4L;gd{*$*jzhNGu.Fo8Ն/ώ aػfve}gVNkU^'d(C7i- ~B؅0 k>UBf&~b|;rn>[aUT+ëꄛUZ?l'[E0jٰ1q>~WbȗX~FxԠGbo->AHmD:ǽtk^|a y^&ԢqA`v,^xGwa;̦V D~PX:ƿ!Ѭ%g[5A4z-s'|DafdԹ[P3A` xI! _ua2n۟Z[\UPf>ٯ9Y@5_m o(%YW8TOv ;)YYFH :2sjߐ^k~}/{)6HRȧG/tkPT04;1 :zi- k+2L!8DpfylV%C(?QMZPhkuM?QGp6ebx*hV>!3$BSHOը56-UNCO._ V Wus-梔Q:.A#ԽK6<4FۮxBʹqDPn(uyCc [a>qTft}YU϶^1vݑ#$ݩ6s8K( 'ړ~g1L4JY[azVN:a奩x^R%!?A^;Srku{lA!b#:C~-1 <4;n=1w3^v^aYi8pSGxV3q+}my}웽6.bXa]T"QQWw|^_~I:a5kY9AE%O!dct,IYHI -"&Kaa~LTa1?ZG#sMUP뫋^KJcFQ#H)Aՠ+?ݎ,woZ\ t  I A*uffC W~( T RjS`g 3hy`KTkLLJn5wvU0d3)Hhǁ|x/V鎾_=Nb{]rNM-t4B(aJ)_]O}yR6;AVHjl )lQj>#]kAɗ6Z ^ب9G n !ʤMjsAen.j*alC̊ I\H8 I/_ uK'W}|MLfGfQ ߆幙4wE {cDb.|R dU?Rs qZT\^ 56P]'4#ۉ|Mhc"R~Zq!z}mO!ƛ޹gP]t!M+,{uB ھ\K$ #%;=b7œZ'Jtx|I9]Zr7?lwK.Lh1l.+Z3DT.K 0 t/1tj'JoPp;wku+#Ê2" tBG}v66rsvtx9F5sސV o"n֙ rzq#AH}Z4_jJ3^!5FB,h%r7t%408#B~CKQ6=|i^<*U<~>o;ĸ)Lc}יO;'}X4Qn%QtT;j45Z="ޔ:lvx[rF,4Ti[vfϛh0!3xte 'cm#*BRPg':0Qۓ[ʎf8mG]׵yqzڙ{t؞<ρn2# +hmwŰ<~Cyww^hjY*(VĴ01x-? Ig_0R?tnp )5m&8 8,Z4Omˉ#(?1~Ha}QVg19]Ff4l>zd=\cv*1VYxr5j ~Ȋ̬cF5 ;6o|peCU<=xBImU/ 1xvߣA0!Hu3fai1d`_'c+<F\ÍS;BJ@N;d4o t|O5J?чfV쀷MT&( cn@s1-2bpfnaq9F?sƵ+'Ɲ8:;W;>yшkEd _}Y=Y$(on  ^x$98O0k.w]z+x{\oM[vr,h~:kY5=e ȢChpRWh}qx5۫Xe26sJљ8Z ^tR(':X>˼KtBG(̬k85iZ&q;W&#}n.1[FQߣꃱi _[ou 2-H]̖TByԣ@Lw Vb}n] | 䬚u9fYnX9xLݬ(^mWIEbM%!~. VhakSj5LxVi^-ًOlnjgyq;If|7Gn>QuФMIJb;-,2BUі rP^n@u6˻/]1a#&M\oCWDMڀ CWAʚ8H/K5͒@}7wy@#&4:}2 ך9ݏW@K`HCRVoV@͐KSQb:L*'ܠuT*U+lOxF/1XIiw:ZϏ> TF/x~s~ oo9).\Z 3H-EV2 :va3D"0㓚E/ދg ,̃׊ d4ILH@ M YQ-њ#Exm$,L+7MlM)N8yG`qb d1 A^|8ӭb"fh*sFN h˧+R=ic<24-/r)RXxcD7>6r=N21Hɳ@&4II`_Y8"Vx7!̛x#Wp,%1~ >\?q sL 0 @$!GĠ4%K5NFǂzko5J ^FqcNL":Mð#F}^1YwiZ+>t]F$6>霝v=-Cnlީ Mz$suJBYxwYB<q)t~NZ{GuG2Z)+{k=u]U|HŴIJ6Xn$Z">o Շ|gjdOM,Tgm.?[ ה@j{S.j" ^d:q&P猹%j玪$w!+ s W~y^CFWQ)fS")+Jk*ZCr48u0252T;Z E7\i!G~ t5[( $?Tg?GqyeuI=Xv)6`1 n ҷ!=l" J2Dlضm'&¡xac͔,_HA)|BB~]/suLI>4, q4jNX_gTnԌ}vDN4]p'j#~E |A볙bNf&2#1L^NO=+]92rmuR~׃0`-jV'@g96E@h] ?nCoUrňRM(#%vBk沒]|~P$H><8v]Ie.kDuK[!Li~%$~YFȃ/.;b ?2M\u/=h*nlO!/1ZwRMKI.^Jd&̐R9g랣EMqq\|Z ;g&8%;4É{J&CFx:ճ1*I/0Y^?.RLjIv%\T5hO؛Ԋl.hfSgl}a;~FY 0-USd PEW_ԎrjDvyNծW5aw.ρhȱ++T!2&uG4y%d겺MG5.^˓> ,.@b6r՚FűefI̶"ɭ&\:l W.E ]yH dU> Q_[\_&-𑸰Fb_H`"7A3=iܡ7  dP;B^,TH:hw|Z|5A&Q, ʗ9in \a0Z[~[ .,fnڌPN!Ҳx)!cFNsCqw268}Jtn݊Cʳsa)b1%{.DkbaTl9~8.Sѻ$+͗;#}>jYy&YI"\`X<],Yl!!dEfHV9Y\teCCFpjMgo($)X'rgn񨬔*Ε?fG`r7_Km&($6%96>ja@ᗧF*35BR&qb5eMiv휂Ĥ "U=Ѓ_ퟡc|,!j{Xo1Fg%2ж#Uq#Zw.K}^`+Gُ<6_2z݀Mc%5*ֻAk"45A/,DŽdaCX}3Ey,<^ 5o1ԼOc]b N?˓.?( 7VF'8d2̭³^@Y@{e%cQc x\T#Npm a/h IxZ3zڼE d vi}ȸ֛BH+, "u# KPX]}#}UfvE`,kD'!1h8u^FPeA9pӂXMIBsE*y;QA"EP5*@,m5(]G9tAt,ڥN#nb+L\##;arڽL= [Tb8>և׸vo fjY\[FN43BSAd@?܀o/=҆>QfI:8'-شxz7DZcbϐh&Rbk;Q;彗atƜ1-xyiB݌q#zo~YUL  "yWl r66!#L NOx4N"NxDƓ;@3G*>GY6xjP' s}՚|1'qX3;uy|{KG#pG|f hu&6%H8{i}8óǓKuN#\\+@/HXԡ E\@$!~C -HlHg)@DvjIFJѼZ!6=/#jk Z$Q9wJp4=dJ> @jnz6%cڱĒlr#>JJb!=Ҏ^yQsBSg2Caӳ;l|&9m׆gggl/Zؖ:.# ȔPS*ս`]k)Nmbm>Ƴ oN㐗zHNqGf!LB'3obXb&qveF^{{Qmx b38QYP@:{<q jp:ڋѝZ8fZ. x< D[I#xYM41 mŁv$FbCC;C"÷=p lq:r1ZDB#Tc$™<O\0#%ƦH&?˒7y.xj&-#3ȤO()R+1XO.Q-~ o=7gsjjK3vƏyAͪ?8ԲR# :"Ҍ;loFϩMK>+by`Rl!!Ƒ# ~Y z|#`n(.ɂ",o$ e6Hދ21GM6ihڑA8 =`PΧ#Z%qWHkwA~Nc?ڇaaT5 yAF2XyȏMb=űMRH j rVpjiHvs;MI$FdGҚާ!ryXA}+f._+!FiHrUѲz׵5Mяeѽ IalDaL"$Hoakr\'"ķ&br ^,Ѥt06N]<͇R6I)qc>a-4| >ep2DaR=,c ,΀1HåE+hAY] ؙ}- $m9ӘRuF=Ӹ@ RwX'sSmO>V!ŞvV@)hrt(N$:#; f5x,?P>cpzLaT)BV"yEƶq axXd6hz$V-"eZy.62ކD\/l09{Q9YqޭUi/U^2.g5MWŁxnXY9ODfR_I)7S|ºzgnCؠ28PE x髽 'U _ɶy;F88Kq^´c;5YXp_)_t!>lg vݰ !191 >w*bS]JTJSa}QH a*Ŧfr \G+&?fTa!=#)7@ThD r ("coĚz8ubsyH 1jQp߀Wie4L$DH'd.x[7q~,9}Eh(pϿf/#$d|s8&ak7Ft:݉yȴ+ c5y4M H!"Y(UUwR'v">r7c/6aVAK@ʝ$4;pJ@QCC;`;t :w]i~(RfBvtj8:C<>v?l5 ilIYF(4$c\}*C1uO'c2 `]ikp9Lc@6`6C%FCj&!/ N\ ` ЄcN{>Nー<1 Yv?8'hz{N-/h0<_UGdm"*R2pf?[@!o0h;T"G>1 ޯ-^, )aolRBC!'H ĸG#\22<T:⵶D Ws<^%Ȓj*&4OL1sT7;0\IȕD> qr=o_tg~y^} N^MBhT$DmC4bW 't]FD2:}^`d-!5N]h^뼄/r,Wmw}s?h5~<1_=Eqi4"3yb O3kcWIoIJžfŖJ etOBӐqbѢ> /p.7x7+N"L s,.^ghtBW^X4tCщep~MwA[{a^A$=o㿩G&w/WЎ NE`;y@"3<,twN(vVչtQqaZqBt]~Vޟ0ʎg?yu"1~Mb[nZLf11M,o\L\HNl4"!q;Gw m"#LO / b?j)ݡ7,[|xv?j]LPt|h<0%~̖f*$LVwW]Aƴ/ -vjt8dkF"/Bj\ժtq/`p |-lEC+޹|t FMDi>1ڸ{!zTsD l:`nL,=*>a~Wb2 hř&!cr&a0ݛzA(^aZUW:Sa|W]R7BX:2Bxm8H}^;d8j#3*]Cևn;kFx`)_Ҋ́/DJԇT:L,JP$2k2Mgg`ǷM \auo_ " EEȊ׿cgF&CR<tL ;FAc%[ z'k|ȮM#b!} SSg|1T&"JG H4L+LȐG&==G!ӄuv'x]ҫЕ]M#7/сBwC`] cL[ˌ14_e L\lY ˛ͽ@۝W 5tq̧ט!b3⾰B&ҝRuJW~&[> _)0A󸩺!ԩU[+'ʫG~ۇdG@\\7ՌMr0.~0c#yV>lFo^IJ;5OQ} S̒8M!`ѱ,.bDb$YJD@F4NhSAjZbaG _АQ;4/[woytnPD>exhoF $̎2:ƭrC0mIBCB6}{-YYKuﭺwٯkժeg3 U]CD?c]$#tCzڄA::" @j}o}zy#Ͽ=qm]?G#~ru~r\~bz~xqܯ/-^tZBS-g%urF]nӄrq|BZś( Cƒ(S~S5 >ځ[&Wv>^lև}q^Q$N?D}BM"_B?0>]y0>&0>0~)2n.V9l׻dNR'yBeg)I\K*F 9cHE9d}Q<#B]kVNΈ?%d:Ǿu9@5w@ HJH r)?ct p?\J遳4"JDx qG߭/zu1 ܭBJ~k|EFb23'%iZS4PuP#Г>XE5täg @fyq\6=[]G MN$^HQMCp Br @^H ~ԟV~u$ MC *fp8${L(5o%-m2#ԇjy~[-'qRevij;S,*Xf ,O|6 o!6M aW;` BTGJq[T!DS߃MŭAo[Px BFEꡑk5_0`_P+z;$??B$5kރ%u !3 ZWQxOׄIl9IZ<x:Ш24|]$)Ѝ3&d׷ԠB'ԡK,)<uI8 NưEPtpS+OrT:Ldއw! Ԑ9czܟIO=ƈOny8 Z.W\st,l9aW͇!pag⩾Äg`b[\]B4l=dAg((P1(=>vOv4@TXIu)HO%#_A)Q>#jcx#;{w۷^ȟMݾg7GlHZ mfAYm|J =>iIJ+Ik >xEae!ПQI#ﺭM_8IokRY>-Aci#J{=Q.iYIȲ 0aԆ5ا5@]A.DaI8ivIpEpحoV~]lտar|U] *ˑ12qR( u\~:w+ C޸*d :ERB Pn8uQ͑RM3BȜv(}-@3}:3&B*}.%S0@&`vbAx(gȤOF'!13}:Wj&9@"s'+%05N>'~ cck>sjgl(MN:Nܔ'3_}y&N21 "£ajySM7 Jen84l1c;ۣxsB&UlF [E|$4؎K`YIlxXԲt`EJvrMBA4 < F !pƾ(" 5-/Fdgi+AD1!b1Cѽc AGBWā,@C&  d!cȈ 63bl?&bޭ۽gŠ6:FHDByF}XBprn~}q8_ɸ 9j̄`Tu,k)#fi%YZ k 2RՌX^Å~$zy  y MSJS`& hd4NoLȚ̦b4{`'q<,UR 1c X?D"2M;#OfP}Lan|1jTD1#/ 0€aTȘb"P{'h&jr?鍶2sEa%5X6w"' 1PC #:T%GUr3ָ8XC]@椀!N!RNզDDфD݄nYɾGrjGEAc6 nZC`~AWd )و`QԠU$?BB( hwoUy y)xf.POTN y̴f`P>AlUKŊ*5Ib ,a,ZEuE_oĮqqOh (dSxDIŮq{N cIc$Ea/K:󆊉]u!TNB)L8eC{Q]/X`]i cyk?׀ :ȩ ~N1x͓ .ߛ Μ;sVA*BB|~^$z@۫l%GMdAFXgZM3 ߺ_laMg{%rܝ7~42p"Be;ّx~A>;bEiuH։ 4qXϗկ4 lúT6 x[8f*6#LhF4zYJNFGz/\,<.Ltg̎la{Z%1avY!c@`bMtΪ*e0XkL%mk^NO\%D{( OU3<oxX9]mմ1LR 6/(lDP?b4FHx4:!%!`%;,-ҽbz'7 rB1 ?}9vC)=Ie>yOUUԶ3"EɊ՝AcQK6k(Jz⍻DV \htYc&RE:%v:Bl4^@uDnݕEM.Zq$Ѝ'&:[Vc^`^bgy.(LBg#peyG,5 q.+wIn*̯LeCֵ㛹 bsR1GC{M,j *od-rm@q\C|:)Vk I+b7njz##š0 W] ^6 ލ݅31?Uk>n(w>@K!9`լܜ9s*[okpwyn'' v*$3gi %Ԕ+vŨ3ݥaVmalNOMN{0ę8d4r$TBtЛ>mlo[w_xC19)HQ] D@S*J/`0 'NU𚤓'J- p,z 1>|g.E0R&g$$*"ש+T ¡4M đ䩊L4 bJ+X1{mi"qcDTU Yj4!V~*UuN=7?1 !fbeJ&.Ah&G|̝C=aqHsԄF8n"%yd'D~$$ \/l"j!Nt (H#8bSnsf% ܻQ OsL5EGq2 SGH0x@.Y Dkɏ)l&'v =.U 8CgNsh#nзVz ncA=I)ղNDwAO~"OmId5Kn[Y #\hDϟyeC,מNnMd< cwZyo 0+MTd7{$b)fC08V̎Q ^ R5[>C~HAA55gjjM@y;'Stql #wEVPc{MѱgE"34Mʵ*k8pCmA6'L@w]񋘱xMlrϬ߀„x:ɜA49YBc|>Lan4`Pm!|o到3 vj௒LIWs9td3J_2bq#sswtel7R4l.Al!Uz5bCYݨ5K14&)aKj8w";WS]$98(J#+\֋Qo ڼ #(+˽*ꑘEy1NӒiʹV*ʑ*3Ը)5) þfwdC3rbM''EbO5 n"~ǣ ٜ1r |EWP*.)9w%͓)4@g&RE>! QMOة Mr ^ok[XqxhjJsKvG ppµS88LF)u_lkUep1W`m.MUK?'K8Qd& Gt/|os]̀Q_P~ a]>lP{Zol?6u34blN/HWyo#}kB1F r{rVQmo&ZܘYXN$ÓU,U1- X8h󹚰zk=&i^ƌ} =zaUZpFj_s0rK s93<\"䕗.ZC 2Dg%(؉/p1G XR fG (ʪf! !zYCY 3/Bפ^Ku8c5\[NyIxF0T䡊ݚGW J3&es۬ X-Y@,"ÍqE*u͆gߋΛ䄦W5c*kƺ;>06VYC^.>M\j>9@N 9IKzQIf(1HĜBD1pΒl̼k2XtK\8l#}KQmMI{&j;wܨ5ϴnbE[0>qh!/prgM7n{=%vASOUTB٨p}]ۍC9d!zl'm|!3zѼ=/ߧWFdjk5b|s_70J_^F5E*g~@RFgTQu~B3ċ.I@0ZDv\Zm &Ğv+1ȥju(F"ev  FޯT2D[Ԏ>t|^1d#o7*d5b%Qq:W(&7rzxb! ^",}^}~ HL[cnRٜLnXOI{s~ s \cW)nD偓,\'81v'2odhr}tH’+p;OB (TQk䍾YP4kR%.Ũq`꺮1fG=jRnȏ\ X}l;AN6Wc%&#3SJ-V5hmrQdu{>0kv' YˑL`N Z|Hhc"Ɖ:@$7*h5*}Ikzj:}:xNZ8, A-(6ܦж~=I8%SL) BgڨH+LS(R[q#^ YF`ƻڇաo5AؾPȻ yp 6NWѰ`ƀ6˲ĉ- ?/^E;#lmbZZ`YJ>xD -Nb׍l;iAXJJ +K8<؏ f*dg xb z]J7+lR;3Nԁesnќ73daScˆ?Y~+s$ɊOx`iݏ/ xD)\sO]mԉm. 8f ndB-J-ײh?5@ib}t:"uV?Ƹ&/ d(l/BExZ3zD?PJ}-ycDh06;(&q><TlVðIѥTa1+NKƭV`gžԖR;P;K!ABvZ6ʗt|r:i<ծXلOzqϴ գ|L~.<^),! Wp9J 0Z)P$TE)_3:;"=6ds4-Ҳt (qG6g[(G< Ykeap4.'nf&yIP)SuQ;v}OZbb`|咪-HG4O䩪mv.[lS{t)3lOH ߁QLLN}U'v~Vvl)92H @I4Kĝ"|:^J)ʼnp|s6 )Cw>%TVrg)si!+qƳ&w„2"5^iP[cD<ݰ q_ cR&S$%R Ԍ U6ޑ+~WC&B(\'qHlA4;nn Ey/QSei.l\aqdž-M4J7+m PqveB:Ijj4!n,pvS"i j2q]+b̂x̗ =zF /L@%Wr.Ø+9D'N_IHQ-%䎍۲bq+hJΘdW#V#=u~%;(y~ /k5/!X+g -l^j-ƈs"MQU EүI~elD(r5o0ґ*s[ET['sRLC}!Wx8W@V`z(ɋY/҉gr28V*b4ĂleUl\NU`HfHW| A T͵k $iAOIwH)N8747jeݠ?іV]Pkf= *N,roûS.z=#˂ v `Ԓ@L&5уv>1 X2pW"l9'yw m"%KNXxB1ݢW@~Y̍'K <-9]KE0u8wdL0ƹ[Tdy-ҼHI@ 86xo/bЪWԍ4bx'62*/]7XxgUQRT ?h[,qUf],u+k7͇, ;ilxØh2.Y^8Iu?|a閽 .XR0vsWqKa8FF.| 7ϯ~K0@za+{x~JʸL- INͲиNr/Sqm׋2$$ DֳD Y$&[Z-ZasV/6\xo3Q]\=_HԾ|T>mBH`>*4U; (͕3KoDՆ}7x4Njl!!MuOM 6=afG2ͨ G픥HUAF&0$+\!^LUy+QlZ0ƙ`_Z˄؆$=ecS;;.> Ի0JG'/MqHb&mNKiY9qt>;{SJ>:wr+.PEd&'l}(BX aaE;'G)W~x}EQ3Ia2NU4D" dG|TsqyU~f+ B:4ݠ9 o<7ȃ=yхNsp`ɆJW?ێ|>32^}#;8.)eE.ey6gPmDAiVEa-S(݈%4KKNrErcOΤ)xT$䏟믛56nVxVAbd;(|Y & 8͐&/p,.|8DnsnHQnҠ]_t Elomr]q))yN 8Ƈ5ERi>%~֏\ǝV15v[d#u/`HGuhrr[\~N3ˆ(qjmf+P@R\h4X^-㭊ݿhJb1_7U2 Eje(Ć -<2LDko6 dAH{j&KŤ)s8BM\E'sOȝ4N)[L&;}L:@QCݩM'P%qYrDz N޺*GNvTPuvi_ax} X4\ YiȽEmi?qWK:P1BD$E?C(n+&ěFg$;C6&Q1e+5Tu+fضc!y~?k74 ƇyCͼt] b4*>:7K#-I\xqO̝tE*-ɏW_, 5i/-G0"Ę8"; :iќI`Db{kx׫7AlPk%xɉY^ZP|rPr T V8:ƟVOw%.qQq|XvYQc'4NB՞n֟)k~;sWYR4I"hZQr͹lҕ>LO(.l3]6) RĕE6NƸ&-(o"֎;W"IJL˵l.xd7X_ 7BCGviz/inst/extdata/gapped.bam.bai0000644000175400017540000000375013175714140017611 0ustar00biocbuildbiocbuildBAI__%@Nl@as|t|`|!|pD)pD NIpDLpDJjzK$||j^@Nl@as|t|z|z||I|| ||||!|i|i|pDpDh&pD)pDNIpD LpDzj_%@as|$||||||pDh&pDNIpDGviz/inst/extdata/snps.bam0000644000175400017540000046415713175714140016616 0ustar00biocbuildbiocbuildBCisref``pp 23tK J/JK,Ir J(2246054bjgb_GRUBCmG} pdUwp燯|K>sd`XΗrl8_g\Udu=:λ?I?XtGy7LJu^{4}C*RZI%t?/='?|y-~A}p~@`9gt2$iFq{r=9wYtz1|鞟KɤbR,y.ᥫܿx/~=mY2ΰ0ԷR}*/WN3d/fj^6WB/\99:X]eo"s)OV~vR,C:hfNy'G'^Dj ÒD R$J(hE[#2?Ԡ遧JPkR aUbȣ`vH8`cɄxLHKSxJƒLxK2"M<~;b!F~R)])%"m:?Au04 QJdaH  r.K(/7GԘ>/`8+c}[۵O"}QB-0Dh6%/~:(k"k1Ʒ%&8MƳJO):grD_DǀuNSW Bc*-(z[kiXۡ5^_%z:'p9!m ̌RW{ 0ɊU9eG"5EŀD1r|Lv!f9?xQN5;\)xKAۉ&١)S(h`EoShjXM{[ir . a0]'TFF9ŭ.k@L9z+x%%M֗y(i4/ն8O\J1WPpw*wX7MP]EzxGt;Z| EԒ䥘-2;:HTHP=cr:AюFsE!EhB1=mkk7m:(tbYj KryJ`xݜm`nk"J0K_7Kcai0e\]ȅvM&~"]:/׍rLF'SMǛW} JS[C730eC@tp9 w03F'nHU8#T.jJޑʾ#TBF3>~['˃!x| nf<2^0;ъH6i 4?1z'Ln)bc͚o= FwlHH5eo=ZaHJ0Hyj쑦  ؾPlmY_w_q^C惣fq-udWR^mE!Ygv?R< ۷x9'3L12oqӌigXzYbg,O#T'Dfu_J6js.א.F|>$n:O*VEɥ  cĜFXl]ߋ7OX}o֠> &ުW5ftԿOu5RKUʩ,SCn-kux׷ج@Qg椶>0}ɟEVzSxņRwlc)0"m-4F2F޶B@1KA}UQ{8`0FHAGr7%E _ϪƃC,|k[ru6Bzkq|Yu k m#+W0.KDD6SJqz߼"/*NC`84b=秨(Tv}Rڢ*qX2%Vؙ.,g'ӑj^KNn({֚Wm[pcifVܟ@v>LK>]8w; ZmfL$5Ahe:UY}v%&XXZ#ϲ>Z~r-.|hqYWS^l"5c;Oi8>Dzٝ!U0`0'RPD!6(i*;alK۔D7ՙjHn׼ٝѠ "= r)i))ჀgĿI0|BfDF-q2uiX|=kՖz?% C] MEeGXDCF TC!E |6NL&xwCKaJJ |~ƜRƩi;V^rSpPd2؀5zBU`pkny9e}9 k# &Cc|[= 㳹o7~dm@-L@8`{ 'F6E2eW*yӵX7k37l; 2Pdo~"F?` d7dEм{. t?l=.懃@MZfKLf}ZϊV2 orv/t]*tGR鵝7 ',Jhr1|OeՇ}GaLpn=Po?A)xOWe+V$8N:{{^o?Ҵ@W9q/F~tu~z3F ]P [4D[ׂHv=sCk4/fnC(Wyų­-@װc&`L2#z؆L4 :[<1$r+R򢮿ՒIEQ@y K6x--ᇷ/\3J Pi+=6mfI5wLHZPqʎaSIJ@d6omUl4^V}[KAyL+3lƜ4VDpF/@3 r:imMQENWST)nA.)!|D%m-QqjJMAH Mb8K8uX1 + mj늍͢2v΁8=tH[X@|Onz Qgcfj=R4/Vxj}K×^h߫\ Ut9Mܱm)oGvDto2Is13Z{ۥxΰ1YgvuvPJC2J͊IZW7xd#֘Wǫ B}B t En9;f2M3uCŀ+= ^۹Yʽ=^_]jÕFg~v:r [:k5\=DMc аi-tHH?pnKFn-[Qa?J*bq6m-wmobp:ph3e6B-7^*^{Mn0_1C}P^[`l;͡A3fdK,2_˘.agC$}!o.NuQ@A&ۛ/h8v,`ڐfyEL oG [,>b mh텵Akw`_ >}*;02 8SYLF[,_݊V$G״>WTK=cLHwM&$~R}xc}') -RX*y-hfۯwAt4"p߿_v B}1sC졕駩"v H@eTt2#ˇgNi?1֬{\ebþ(89C/ʓ4Nb=hpIxiVP9@={56o{EI*HIܯJU*sh.7tgK !0ߨo[ d2u©BP;K/߇ Oc퓠&3T]/, ·Mme]IŔq{),1Myg:f4ߓF9PIDʹS^ Ih9n=7"E_S-Lb >jR-G>|gˑ)lNʹŹ:vv+<)UekN{Z𠒃ȝf`lXO,!ळ:".j2t\m:$xwbjWE/n"xƄ,$|#MNwB}?BPPTR飼o6LϭT3Ikr:9uc$Uvmj^vlՁhhZÑ}[Ct#;U<۾gQ{Νf`'#!`xP|48~+O=NCVM*~#ILFʻv{\).(Gd=[oBҗklKvCb`Ԗ"]v*М8픧ΥHftqF~UBg~O 5GKt{|Gyt2 "mI!T6.Ѯf `F\~*Q+qfKϚŝ^v~'hE&q~F4=tjEǻUgxE~f=+:a%}!%$^_<|_:3dzbenqԍFze#ǃNd9ĩlĉPuho)`DsNLJ HOLV!*Dr-"ݝ*_{xt8KciBdd ĘcQRpH p8XS1ů>iQCix/8l7bf>i .KTĄX[n ŕ^~gBe^e{ 3 )Uq M{ m2,aidZ|d8JUjw =giNF>gQ&?zX+Arj6rJX+UL&7 BpEd**rx'Ej5ž[y v[X Տ*Yݦ(Y 1<.j${ Gg'":݃拭>q'ž:n@ibTi^Ns]nn7.0Raeh uu/2f풡A=xB.5 8 `bTw% ͚)`8[*u*UH*`cWkPs3 q ;;*O7>-`Ϫ7gg筀KZR7A2h#"ƿ0~H`btP@Eݵ66 F_om6DE \/c%DIo2Dhț[`] 4 Rke@{2}NUGkHJ,U.N)ϡV""YL TI冖2^<<ks@ho4H)8RkB9Rd % 3Bzbk 9VE8C\Jl:ޑ C+m/հLe P: 3 ,nR NOsmҊ8Q[Ƽۙe7\ʔP "Kr %Ɯ؆5EU95S8H9O'6i'R 4]K?ޮQpJ܈]'{pˍj6 "4ŽYJ^o~^#oԳ&R[c*i  MEM]7VR:/m)HEYNVWt]7kcB9j,bWlv.^DYr}[%$F{CH t%9V2E:Yf ]3䵺r-WQKZƋ 湨ZC%P%*;@H# 1ho@jʮv_8gU2kNn7,g1زRkkEVVHMcRUW);\C nc/ KϽ(|L $Hxb6[҃sޭNڕ F8ٮ#ڤƚ28Ͱph*,Z+yvDȈl j sg2pƛf3OhеLH mNLEE cQj Th7+o +.G_h [&ȯI nrNZ}Q *|Ecl g]Phʹ\!7aphsd0P_Q7 Ju%&&ڎ-<B2u 3lix<'Rn-H">NfDqI)_$κHS ZD/Ą@\"k3r5uU83_kc/𼩘ٴumܥ?i/H*?UcWOe>b:p4CJ(Dm (&#C;^v^N~Zֻ`%*xPT/GrbȗJ۪OK+=Bwus[q+aB tuSkZ[c _T]Wy@y~9ZJt+8E='􅀀Qt_`/FMITf\<Xk!T01 )?=ص1ۃN] bdRe/u30UxiJ;"VdȐ96ޥVڀ!ؤ~&A:dv w]KKwKԆF?x8ؠU"$ֿ;Ub|?VQIK]:ƎQf)Tq<ӚrGDnC^zrqP%&})H.UvB<)@= ܵI)pV XLdZC3;aY "8A_-KQҷ'/kM|B-1.\P;u6UKm2VpvRma-7< Ri-NJ`W7gZEJ8NO(|T-kn`UrG*Z^l {TC*! ң1+iI1ώXoŽd/ yI?gil>DE֢ F=Rrt`$EN6kzo] `閫r~EGs\E+L񯒲3J.5<)yM. ?H?%AQ~gsjӉ)=}c3?F@@RhA}':"4BPSCB XӋšg19H*X!z=!xTS.4 iW2(Z?.Y׫8;& ˮeYLJT$='ٍ$$6 މ$e8'y aD,eE4d3Waԯ60aOիIm]gA3^.rHݍn4h$6?j؊> kn{p;ƽM[C)ʔcgN9*#@4>dpMjXyo~]ŨovZ#-.wkyYKvf&Oc4xB5[=RApgVS$4xE9e.z,m.#F7[܅Tq0FZ4(|Uz *8UoC 軼J ;Ej_ϱ4i[d gp, C[s/jt/Ĝ$fEtbwFPvx(#ݣmb|7\ܒWkWK^A{K#o]hu ,N$IcaXSP s㑖M*~#'oO nhUU&r`!3̎'k%S@{Z[CZNv=LkOdXxT1*Ӆ K a}g`ǚ4ӷ&*elzIi0I? _(ZR` *LepF=UUoXw.zL+5 o>p n!s@t?T/[uY#N=TH|GW[lDEWpi}3UvUdt\@!-g"{']4Aiʣ0JP@NchJ5Dc\] {U$Jݮ@zfLC}rfDD]xmI*QҶWDuPH R2@ͤIe#M>@tU{\+f=҇.Mշ4pLɘmͥ =s5^zD V]~N=IF'e&gm^Ef5#ldvůDk5V5>Q8ɏ֎(<>'mvVg4/h9͍zφ9-;Fkb)EwwTX%z"6E u"]@ }ֺ.ڣƺvь|o76X"a"O]  n0)h .+ϫS|4ZIsxu]\{m,*<Ĭ2HQa%B(ZEoXb4 lLݩip;5:ZXf\_Q]kx^ACZwŵp4h\c|4|6mp+vD҆E HtYj( D\I{")"sd/RO>?-^t7wAsv8;/Ɨޅ?maw#/m"ew$֝\1(xt/:|B FpKh((cE})46eVjOIS&ԱWrAoE܅{}nqyN\j[cɓ['];x5RͫS>p9dN֡8};  A&z;/ֻhZi'&X&%g,K?ei^"N)ec΀ #{QtN>8h&QǪI@=D̀ EƹQ]Q ƭTkq#K,ҲriYMgb>O3G5xdֳۜ[e+uϴan1J^zgtd@/SdLӘ i/?:%3U{M;rMn)ˋ*ekʘϲ,a}A{/ej)_UbIk{oN>5QČ.ƒ'1G-|2wЃ w[FjKƿU?`묜 %T ;V(NQi4/MV]jΨ8 !دVk!8o2w1n;:6>6tt|kcau7 FR۾=?  JS|gKmeCUEXqL>Qs )ݸ׻LtR_P׭Rr.*2/1= s|sQ /SK'gYF̙`ʲh/z7w;ID#!\x5>˼?K[tג -[aB%`E+tM&5%U4]{ڶتy*Na?>L]l}A_Wۘ_0\4f]u4k `4Y$\4f3<'/(nh`yq-}*YV2x5d]8j}J7 !i{IAS.%.lTBA 189@އ๏^QSL*Kma`C}f5sNIz'$^K^8+EKvXn{iC7=d8=9>w}}.ɯX4;Z[''y%MYerUZExqfB ٞe|6@1xݘKDeŗ^׮a_m8E:&; 2.~vM Lc%ب g_PG_#'+O֋"5_+KO'jV=8@׃7 J !G,2E%dfh{[YaMxy-vdgG ϋ%{dFg~+X}q쟶bqz 7ra0_f|^7 Йy~Fhp9Y pQjoohx3l"p*R oPf C4K(0 TsJ‒#[Չ[̌d#V'!4s H2קXw,u^M qOjdJ ネqg49s;D-7/Z^0EZz&ڲ[_ xgNJ*'r$1۬8"іv\U|U/UvnZiya %^xmlx,; 楗oJHYHzKzs2~D*=~8~^=Kzy'Žu6 <,a$#G:x`U(O;MS h/5mƪ>BbS6*ШOMA1`7+[R!\u7FCNӁ(Ԡ8 ZkozmtNMg |bn{iiiso0*w#Pl3W'?Χ6EߨOH4[/ gI*zɽnN7ёІ72C+W(dʷ]OEpgجqLxvp[xPS9]~#4 }eԛ )b5xA4'=3v)ҽTq->r6^.pP L)\NT\D1.w<9WiȚ-FJD Mh#H[c\`n :"*OosGl*#/Pp4O"Y{,/jz@5Ng]C)rtp D^ҽ3NN1DwŵGdC&I Q)2pTW!OyZ`S4[YXCr]KΝsg=SOALtV}89|3dmG8;\lkaFG\t ²ZY66sD ˢ@4ԝlD rBEzZFf7ÎTT& Y!PWQ{y^2qc'դ8yC&'!:ΏJp{>{>KI{ww׍^;=0U'XBnNdS?W;&ȩ6ڋ-C]{gusʵ~4'*t?,;iJۙ-evQZ_b!tdex8"}lK |I!ϩ }]; ʢ VA%c\Y^z*z9Zd]EQBJoZ(7ChxR]OQwn5tWuc*{$D3;}#; >x?ȃɣIpnoWFi%g<Ln~8{%&^%8q b.U+[Xo =t.:$fCBnMn: 3 H%=K?Vqn5ϮcW侩qxn#z.DؐOQN=*ZdžC'6G s8q[wY&֑S)" <,(WX {Zd$fqnm1tHnM=iү\$8Eo1Fԭ%‰0hDL2PzSut1zhoHWjK.č+ٽ -H DZm/T^6.[t'5% uV\aZNk`Luدڥ"y%C a`C0Ez#~:^μ궔gȵSx^KFtSAs\X2dQ֋)=W),z;^°ZVBFm.nF-SilOQ':ڷ1&?rmpM@@x[U1x.;aÌu48i>}^(6zsj` !q-HmV"eY%]a ד%-+M15Y=iBĕ =aAI>FycAiuÇ늛۫*Z : ]O5Gcz9^y.Iei.5-s k4(*AKk"Hel6qat&}4co,,1a w9o:Us,#޾SFҜӨ"!b8[.plJ F/SC0qE8C%Qvu?WROp H*ڏ8?|Ku8$^r:eZ(\vGBh{7W ,3 i_(+[[; c`vl s7c!iy 制쩼GyQ|N@i^YOx9>bq1Az[e@mb&NQ @D?W 궰C蘯 xHe>BCF}y$YnTvge滒ATOmr Br1&A "8l0:lˀB7k3ȈBHZX@`}~z:GNij7x~RK/ }ǟ|K5l0Vp0Y t5 ^ԡ{K4Ã)םN?ِCz>;#&gr9ܨio3Q Q1gpqBc,/8Qp 7ÿ5 .zͽ[=[HZ!M_6j:^j8_8PQ^$`"PN8Lpu4%[7RKOkPoIꀾ C#8] Gx5[)9=뜭)=Iv!=tvON~=\'gd{'m$U @%Am F#`hQ^¿ߊ-Oz;YM p'5>߹VeB K\ 1Hq9/~c=,pM!j>b.ƫx18[2n ؋6F/$K@s+\x9_OEwD(:C:Mfhkz!'5_ D8,`p){NI< x<9SW3|B o@g$|>Wә- z]7="3X( sA |$7syz9>}{(ijxO,:Cr5`>Sr9 BER`9Pé婔? eoМY@*)<ϓA$&yNΫF}Fp]fHȤ`T@[kYˊ$z=Zӛh$C@ZIEjIǞ?YS߁{? # H' )u=E܁1P| V@8l,+nV 1:jW;_/}O:e8CESc Y4X %`$>(ilPs dK~ɦܛ\[m y$1>@̷ay7l}U="9IX+v0bPmJydtC*V\1>;> %}Bh.w:L~k~E-D3GƓ$< Ydo/ Ps q{\eb9RMSn ԡ׍JĘ%%C\pb@HlvP_Q2hlR+j#ƍ'-lHH ],},yPi^a a{+salݍpn2`# 10Gd8<I0N+f q瞺|h0Qqжܐ1x kb#hjRFJinj = >!<?:~ :N1)l4op )sǦh s /5/up_Py&жx#c(<=]@ ˻_HB,>/|/`uV-A=#&߻NoWi/˒2%#7-ί<Ε+7rZ2EJ2{?ϯŴOҽ=0)JʢK|ޥK?'lhwtI;gI&]=%'B6'mҡdP@_,pVO^[/~#^-_hBh1f 텶$ E+f Yn$%<+2U̧#ZJ_&ݨ:XQw*~_1p>񗵘 Dlg>#ЬPB2@Nu&4R}6vnJ Dϋφ T/HNNgZ_RadTp F۬m8 Ie<+!x9[M&=7L[GFbPtEV(Vn,N/Zqc۳3ɐTy"u/dkcạ QA9"n;uad]Ζ`0U<<)@2P0 $ ĝg!P}Б#@U֎_<,Q},,d2e>+Ԫ:(,9BCZ{PI ù OC`5}%2rL?E-TD9ƱˁKݣO0ånQ*~0)zAԏsξ*kd`=X~\, sj o L _%Ll˅!J5yL!onAԠUD.z|r0\M mGn%2/se*9nh4H!+vh!eqՀ:n7T[-F y};m_Nql^ԌS ` 9Q?={,"{_ h fc3-{[MJTPf,2d5 *,p_gV$Eh85c Wxw89ꍱ6y[#Md4/7J/R02QS4rPS3D}A}'l. )^H-տ.+v: 4_#E5-m[ $FUƍi#u;^{_դ+yʸ9\4U%RPT` HC/ z$r00|hzeK:ЂIӡ&5{?@½&్G6NTZ3J0y*6 2o!9,+B7/$"{+3fZ݀2ŰeR6bSO; H%H=Cuf4Dw9Yh',OH7֐m8=ur1i[EX%V8}y>}< A1t!oKzwjRԧI++Hƒ'_̨ь0( !qwJBL1չPiM SmRkeK'չ8Gjn)'BI4Z`=Dy2)~MUީYg D QP ~c=~e]njANByښ˚Ѫ7V]\5qBSiǀ*^$ƈ@_l5j1c03TEZ&QŃ2hMe:K$̋]/6ڔx9T-ʳ Q_7jʕj\fZy )!=G}EX3yiS]Ϣ@d`3#2J#9EߎXo.kpNj)6Gg<^ WԊu6 U襁-Du_ S"@׷m3/u:*Ah lȄ :ÄH%D,MYJyL|7#͹lXxܗ'$CnW^\pPF ;IGdSUӁü1Kytl2_g a%Uƕ°&Vϻl}È]28XM&B.SӒz8u(IP+UjQiZ|ENt1 釃u䕅iNV1=:Os#"vwtj99w y.wPJ}Iu1V(cvU~`qO^%tZdұ` &9M CuTa,κ P^8fVP_є@(Hr&WQmmc<0F =g3&Z9'uHEe|Pwx Id[p5&ELuΈ&zX]Ixf+RLuPvSX}Vy $RC3eAݑ29RǾT =-~R`d.Ct9UeF լ}n=жU,+7 #'d@UuFN؋8~'lNPhmbbp-d<&ڰ WGE.f hl `#hMӓ^E Fʞ gM(!jP#6kceJVqOin3l*&j]ebpEwPvZ 돰fw1WHByr%[\ CV$'ՆʾVgoU NK,l : u:Uk5_z:#Ejd:2 Y8#9Aylma֖ụVȼDGxU2%zU}[x &IgwGn:+ӓM>г.:k~fT'|>`]dK=\'.ѡ~ n^>ךVsH rH_:bt<!^Xtr]tK.r*LDQ3/ p8"@~04OdrH㰥p6cBX#QEyC|o y;F?=\5Ie 7\Qms@3dhh㙒mEn^; t2p]Fbw#>8jRjLf%N?+&\jTEu=VP|VeD1.Cmhɸ~|Qda Q\%M4ξ 9 MK <,u%Mw z 84,^]ke&W& Ye\4a\5RԦ%ZrjIR҇H;MыϧrVj(!>ĩ}+Y@d}vلj w[-{Ն3-n>ZMn3u(@* 馭Cx̤j0≇##`!}7XH?j,$#^i)}KGG<4-%Rr`j, 7RcU"͊IR;}q౽Ʋoܸe8 Φ="e4c~~:K2$f!  LbQƈ qp'I-F{]ՏGjpNN[dp[*2JkaHGA*)Ձ7ea8]Dϵ(7Hj6R=쌂Qe6*qS*LqZ2Hc$w/&ghw5Nظ&I YA7Fo:/WWʙ_rSO}CZ{HQ(fށ G0,sJZ=*NS08ȴ8 )N{"Ke {GIT98\**ЪL>4+0a @#H]=5(N$ɳiG^to'KXN30 vUϺYv%I^ڵk8jo/۹LAɤ`L5{]9j,L$dvlM87fT %M]YE-G9ϙ/XETb֟ze7S*5L;IqKIaxD)rn(Tÿhm;9].V r I z ޷FSz82iL91KК [(N$~11}=Pc$PWA-Zɢ.o2Qۘ}K4M`"F}Ҫ`p>ti,NwoP}Tsa >j~\1Adk̦LH6ҼF^o a:jDcsY#50eQOi_b"Aߏ";Z%ٚpOj}C\oS=i]]~1r|8[aR&N/X4H+s9K^3&Gԥ !h9d 9g chY{qPs]1\-p^GZ03g^ ^azCU/UI\uw%1Hl%1v^yZ^JicEkv0<TT5>ȶ옮dLeBGrOaӥ*qpSX.8/p~rC+FS5FrYo ]4)vzn2g{i<zW[dJwm5xut * ~H vhx>S`b&ޱiA-Lr7JrEz:Y stY]{^o5Sm!EI;z% i)LNIOsN?aݟrOd5 Sf8"0Ym&TI^!}BXm] ?^K^{Gg2!]ҟ$XokOH'[2ßU]vPfm0@Lh;I*] 16h4i;rgdfA& xNVB BNYɴ ϲT0 =rȲ@MhZ6(JQ**]b;KWhx#4ۑ?X>n=5u{6xEUPPo[d 5|%s+=8P08To?Eµ'½??ڜar!iD3Aչ/ :<4?DqM/ JtNf8o԰bVlMǺooV6Gˬ%goS+uKq_W"BL9*@ MN;d!NWyHa%c.ݒnd}K/m)&,\D~zP#.f4v3lz@/+߶vmk&2?r 16zi#@>m1_M'Kl.E[nZ H0"Us%FV@́nj'b~fp[M[Q%Ak3vox"Fv-/7=:t9>%n ORIJ9)OѼx'Įp^(KrRiQt4Ztf)ۻ n74XY6`knq[J3[Te >itԖn˻v7wo0'fH[v-*제JbidEB+SU*Pe98^@ﲕnjO@k@ɫ)Nܟn"_=oo]r=@\BHl\R!'8m4pVo454梷&:+4iι:]˹Itv3‹^5z(MһBt?@!Yc~oѧ4EMGh ȉcm#/ܤo\m!=I\0UPN,snwq4A(<;0-/ "Wg1BO GK}";WХai]'*. .q; Y4k2yɵlEsB*eHFp$\by끯 ^|Ks2od݋ O CExZ%+gU5A 9d5P YYG?yTY&ص^Vb[)TY֊K-q՚ъt;?2[OMOF.yV*ʄr53e-9L&_μ=M8OU?}aܺAv~Ys=$jlfx{b˖qH[^6qLw}6"l oc+bxbg@03zMuJ(n,bl9]s[ђېD2[VN]G/g98-F},m$AhM,)Dz#$ QYM3"R?Vʘv6R.vf:L([3ɘApqbBBe-IMǓpծ""閫o8oJkv@Sq)hLGe,<keb!2s4UΕC٦Hq\>mzu%#'X0r2@j7FN''渠ΖCH<7#/HO|_7Ze+K^p"( _3mF|IE32]-NfQfS fl!d[.I4(KJӔ+^|S9 tt<;ܣbb>j(_}#!{攷2H +Gdf%&x:tX}r\zicyb{%zBcQRf#F|4 Vi" sŜbD1m=աkXș ?m¿<8 4S@;F Njk׿V}.pJ7GD皡P9_ 8`&!=8kc38Fzh;YP<{JR?7H8.(? ?/ K*kt0x!RLӥGʣyDy6"IѬ@%[ ɉ|.'Qud'Y zQj{<Eƞ"ópngw(0\UTf/jt$Ȝz\&_v:aa3?ڈ̭X, t yo]s8Bht/s>pz8=^H^syՉ(IVRXcSR7jP<#H3V \t!c)yIC|Am5ԓI9@"=^*g9G^HH^b=BkkUUkU+DN28sP1Jb <(;Fּ9c%vʺkHV" _ 8XERd_wGB%ꦏ=4WӞRWjvG%!7Y͔gKi_ B}s△ƐFVWUqM#U!=r rK˶7CkYD:=^ʘ#2l,IMQPOEByz14U9 )|{6@aOodd{*Yfhc^+|%{Hx ;F/{\+֥FA e|i);TLӃjVOTA9 pDP{u-Fh1Uv@)%(G}\.L1|5һZ BڻB)ݝ^is%WWNѹ?zo+C䡼,^#b_CxlzxS<,_=8d6X x8з sSrɉlfrV4h3t6aWD2.ygWQXJ\<$Ѹ2۸z6Oo6]=HoU0Ev$DYxu% iJs+ix 혭HKlf&K`7ɡma E>SE+ NUKmut /\ ;#頑D#bVd>SiۿN< .%;i=g r*q ƮdKvi]Ϋn7Gy^mj8-&Xš(fu OMJR7yF8IwAT7WlU䔾YMnAh*TAϲұ&uq&.E>c봾'S~r0;F07f ~5{meZu WGb.oi\bC[Qr5 *A{f:ί"Ije` 4ՔN:º8 v}B_d= p<m4TzUg7$H}w܉̷S^-f|Kε<ۿ)H9HaEi4P8^ӈqfllo[zv:SD!WȘ[Ŗ\QlTph2Vfӈcw gq4 9xѷ4ð|_錔5sUljyM3x )7š8p9EBeTM]I+* r:{UD4v7M;tSGPӅhX~#Rچj j ؂< ݃fLJq[mh׭yL5$aQr/gmn@n674 d he~IZ8 0(u\uqo:7?98Ns[}okTw(!y yrT.գͼhڒ~Y?4^iyG"3܉L\dT()!I7/T["!6E\C"HK)^HQT]4gl.FI$/l@ƬG81w;tMa = $-9Fɾ}}䠾sF޶Jg}s,d#PeZ۲[+\~,>dcE|T_[*}5bg(Ә0p"-Cʹ9hB_[bb܌é8G1D9 gӁqsXZXzAE-4Nj|(f#ݴzHP#v)75]z[P?D"kN]p1NJxfL_wwʻ0}V!DSjҴ)!-/Zް򱹍BϜ;1=\oyv~=@EAej 7z=YvJ2pO(n"%epN}r`znpys#UkxaJU |SY掑z9avfK=w =%Q("n &%cITYT5We,*If6uɓ&O3RLr:EDԢ1à9jas9Iz-J DJѠ096e.MsQRc=ZzU =ȟ!x^EյDj"'/ۄ)Gd0p`RELUȄ~j3v)-A˺z9bg/w0v Mcqk-"o/̴t_C\rNs+.IXJ!Z~;1Xy<Y̍vUûO7M&.^ cA ;^9&{gS [esm@~q`<^*W-Mi"f!SA3.pR`g.9CS1-%)#4+Rq'9B4m8=KZ͒4geO>4Uٴ Ael;pɫ؝{*5'MkYs Q <߷6z~[C.Ϲ44 Yϻλo %J$G?nf"5=ϲ޵eB ʜ'lTfEYv8z%nz>DI X˽W9wFާ\ݨA:m)8 rFM nt3Hb5 &u i'drmQn:$`fc/#;I6Ik"dN.9SihItu_bfj8pE?_7#>)X6g Գ+k<2n q5VԸ>_ݜѧ"}Oȹѱ&# BLJu^T_]LXC߉Fo>>b 7,jt۾բPs%%p:[WD[粡W$%8Փօ9FJcq{&yX[G ] f㺻 #4HD'WR=ИR|v 6Lםp%~f꫄Cwdyu7b 8^݀nl'u65yӶ=WWPMȸLi#C`=Ȋ&՜ 9~7»8H5lVHOYSa"Y*v{#i)ufrUr*C,?qo|1L%뮻,O(X$7J ^ Ta +TsI&3u1nU5e0Ks}^ٜA!rx tLi3 Qmsqnb۠ JqpoXNh6 Q{o͔NCN BII0ɳs}*ƹ}*Bvcxlfkv(Hf7)^Ofi>98|i}@ukk\(U1/ Z&aF Uq |&bbj=лLUN3QU1u X/8749u#EzjS >5ֽԙ"DΪ$XgB K"y)ޥK S`{tJNx?:"J ٜ&tC|Z-IYdencZ,&"[E՜ZUnS$=ܼ|4^g@.黁w 3lד #LP[ ֵKjڕ4 zB45al &"ۍujO+pȩMGثL1=EMaq8.0o4rOn/W^42;nGd \zʳ 3|OLL5|JcʹQ17TMLRRYvEq3A.BDb&u=_''5$Y>8`;?&sQnyU)!j/r) RfKvҬHMX&%eeN3x3BXaW\cY&J[<@}M!Yg_5Y+d|m`M#Kes6)V*kݟ6>ԌsKs|ƕ9e;foޥ^|G9ϫm B-Bl{'zgwKΎ!'Q$.$9\QZ$ez=˯^- %_{×ӂ\)lLٿw^i$eR]ƿpx8<䲾1hozCzwCNw9<=nd݅s? hŸvW*hGwʝ$ )"]c,e A򲗔e>YiҜZw`1{=fYCzphnXo[>Ӵ r!X7ޖuq[XTOͰrԑE, #ȴRt)Z{݇S_dV{HY ~j,Oj~a^F,X0'#^^fZ2#pIJᅜ6Hx7yD/s­v2c?[.e{h/Ȝyw[VEiF+"PZ| x77FqtN^'>QGDݳSzNf4 9%iQbjtbENeYv9ΎX-@`>N:yPA?Y;Eepq@[DfSnU$"%rH< PdY`bd~D~=arZ!mw@uXWźڕ > d!iQ08죍9ym- wF]WhZz\m6*'Wʒ`"ΩܦJ9+*$8qTܥOwg?dάBCL dU݂lUEx/B` Z ym`eMbYaf0^h,4e RWY3>/=|{9U]Ȭ^{{G7=r>Pw޾n[=֝Uۮ:^g%7vXJ-e~| _l/JHK$cRH3T!ӉN5I\s$%*/Rc& @T%I"^AГ_?zw<-*H2}M* /rПMp>mۢmj]l7<ߴ{^/qo+vz&i鳆~eMSRû%V:VʰEgB gY*,l Ohc H_qj+ #)* "0ʁdTToS@3PDF qGr_2.xȤJJk8 BZ"JTd}SE}?ɴ2Ngp-gd9G#BHo[-\"ȭ:1tj݅05;F-VĹL_Xg@sځsepT|94Us:(#L{:2/g,X JXa'h_j0D57iTe:-dAX\m 蹸RU D @UV6BuI1!#0LP!]yHe4XFx M'ccau6x鼊4ƲJq!Y<VX+sc7 -vN=&$ߘ$'rwAgSAŶݑ|ڮ"|AB05;X*s}BX-[ӊ=)MUMC:~Y%/p 6i8{Ŷŀ?@ ":@+RsaFVȷԅ. ԓJHyCoh hZrOAz@nzmt- t oNy ^?xaqz>|3E_L}e}p'!bb?i|sqƨd@4$f}[}UCx:lQ=1`LG Si8%mWn;f{n/..qx4j֭7{x}CDŌgj0:B;@#Ng_~OrX%Ӟ m=ACBje-.jH"j%Ьzj:o@SobxI&mxL5DfhCe9 g2 <ՙd:fדM~buӪCLj|;s DYj/(C.ÑI &܈V;FŹ@ Z }L6t88$h2xzG-9_P!SS uoг[$'eW )P 7qxzQcmB*h:oh8bk/Yp#d%SLI_fʝ:\N_!}ÇYhj@{e=O\Z%<(r{?%$5R_(<{:~2 \#weR}y`]3 '9pVhX T`fHM1%d)=*p:#,V^r ):v mT<0lQR*&^ ^9R"vPNB ɫ;{T 5_\+X%^9͎Z,{T dp*#wMAfh>ܸz5hE{ @0yd:8NO+/!࿛;=,aKSbX.~i#K0UiAÔ2ktmnTzGWp ]0nbWq;EMŘZWB}w P,CG:L`Hro):R!t >2#ec6JIĨdPb4`M!cWc/]0X2 &g Ugn L azbQFXF]:"}.s[R˸8oɄ#wN0iՔYԎ`Nl2,fAo@Z-q͊լQMReM dXm<_F.F)ad5zQZ#Pc(^L:Ó7ZydCfh.%3wI$Bɝʼn3hN[LW/T_1=rP2P@V),_$14K_LFf1h+)y-젾;ϼ|:3t/f&/gwadläĶF%N7/(gyA\SahsgL{4j)^6brNaWA5)(BiΤ;ʒaRYpʏ"Vp$hhEyc}@}^9b1hMѪuXϓ{lIJ =zkC=_gTOӟmUĴ Ve\ /Om%|N4K+#36f}|ܬ;P0%K%*:=IhWs$f$"gNK=x1bu4^NwiP5%-wijPEIp͑ G%6f-F]̭mb6vp IC QM$F&R>С"FbUbA,; hGQ`XY{ ) )p94W6Ԅ_6BiccLo>d#,RK Y GhnSg.wT)互̉E r)'L6=%'ar68N'߇FM U7 Ɠ>^ 7S`8d;S,[7o*Ũ?Q hX:.iͩ7FMgyN]\M= !@7>λ1,}U޻nxZ3;͟-f4Ꜹ3)JmkA1~N{˾hIG uhD* . SB%! S-LybC(UBN4g+k7F7 PQ鏖#j{f,>1L"QЊi0MvM@x8es0WsVj)H_xYu}}<ǰ`9SE2ע8 n:f׮0A|-Q;#!ãVސ,d7^n+ʍn>Wd|6gE%`^Ёs9:y9mktzRj;p',7{. e1܅Ybn&ʺ׾hE*SQe)YwJ>1c!Hr?; =4EiOZ}`~l0_N&REF!+GS aMM剏#D&Y"J*MԎ44?G-n4P:|X)uO0VvCXRwCWjbg0GI%eldiSWOl_NeƤ@A&Rq!A+f~$~I.lv3.LhVs,J 7ra9Um"M+H?ݣ?Hᰎj $P|9קn/V.)\)^*iOe>^0*mfޕ/yr /Hʞp9-p9ޫF\uZ"װHλWn$,f0q3JƘZ!3XwH\#e[6jv]Mq w0؎<.4ytRNdOH \cS.Ҷ歓=E Q.'Ӌ9E),}3z]^)}fjmտHgdIԕeBX2H\'vR. Lh~'ˤ u̘2ƶw's?О;ٓ*ٶB_ie~F@ՁLXpT FiytjD:pgX=n 8y\Q8 T[$DJ(T+ ZzT"||ǀQoTcü _IE4Lb~jI e)V8JYw{kԈ4p<c0>[NMwZT X)LA9MO臵-z!cQ̤ۛP}BDOwc.hHpOD1F&Kr{çEb|;>ggcL%;YzIxnt\lE+悃3t# #cYy lԣz̔ʜ^K殪J' ӪO ܇ж5UV=H~hdgĐKKՇ̟ ͧrÏ8L_U9ΰG"85tu,W⎦&OBu7?dM2%N랣@up(5eg{.V"[Ӻ-}2X*[$|QqbYh[,cA}(skᐾ:L2Yr<|M$ZM.cb$K#<2vv0@qi(=vHEUe{<2_f1& Ac_bmonOfģ?#xq-d1pEXWmljvo^~͊s*oiv$Ea矑cr6Z2LsZatNy8j= p3(5Y/yR+elZm9uWJQM|,m̃rzx-YC53Xy$G)c6I_PGWq4KsP6!G1ta݊u*̇H1!]Yn&ʑwN!rRk,R!d[9m|XdhN \ H9y'lnI߁gQjQ@$ I ) g̨tm͙IjNDsuomKqA\xq`-d8%µGUUS3Ii=ڋZ/dcvՀs?|*Ra 3 ":LeR;sP>ʍ%5NOe}7Yね7imCFI!)dilǒt&j~w.z$% _pN:,mo(K ,YC5=P„l6#t}v#9sLTĭ4[a_" 6R zULT1&-х6 94TQ#(3;nV'f' i;XH87?woDkALr7odyG˥L_Mw ^n>M%Qd0Ys_6`jfuG=ݷp+ m2hH^<թش3.pbW d5U-+umNRs"OWA`CyvVkUX42', St)u}t7Ƨr>#aJ~#/Vr(nMp9?N#wk-ȁi3P[%jAn݃FAF°~jڭQ gl5OlqB4#<\ ;qlGVCmSVںϋ*:[l()[Z;[ync W.̀aXwݳ>saA.Ze{9q vDYh1vT:JNwYy+U-7)M{8vd7D I]+"j7_T-}8w~sY0 v/ac!R a ڨ5xxr=|A}$}M#1hmM^r:mj5VR̋2!.])`Tzϓ{酚C5cŃ!}ؐM,%N&+*Mp8c|Ղ}E-hT u7p%)^5 z?g%sjFPnO=+VµIphtU&C@i |PH t׉yuBWaQb}RُE޵[WcMʠΣo{sȒ7h& ~BT~T g:-u^;j}xn l:MDpszӼuN\r̸McHcj\c]G?Ccߒpg|fKTW<4s\BfCqbU&Ihi*} wE!ph cAhfX!PhyͤırV[tu ;o8K/#x:@B>>cX+V:0hB%nZGi)66.V wHm]0 ̤5ձLQ6[QU&XIb$Ř!4v$* 2>YttFaJw+,~`cEb5ߓbQbPp 1az3Zc^:՘C'7ڭPJpOaW=UfYG4sCCy:<,NTb(9 Jc7 IU-9k S0 snW(>AX7 ddQ!Gϝӳd5 '#LD|pNe{F9vNFrJ2y voxLH=T-MpcH214 q$CnhgV˧\T&jTčJZ@垺Vi^G ̍kϳvY6yH͸=PقU1ےЂGdGhQP'vfelgl ˫)Ռn-u+gJEN 6)9{Uf͸%fZ&8~q( xLkwԦTd\7L [n GR!4y4)ӡD'K~VRzgvxȳc`S ulr)ЭӥYg8sXْRD pύ6=]*H8ȣ}"r4}\Ll||ƕӋz# #OqVQRܿ~3> V9_>yzЮ|:\NDW[9ij;QeG11V qN6?ӗx-c[i,c]LVd j9M_V&0KQLO]O|;G՟YgKaplwSڧEiL 3 (l#HiZ0(L Wh:!f\SgEçˎ9PDqvn7&QGX"P/`:!%8]+vzO{,=>nk7р0H-EAE- v w7+&Pfm@M!СOZ\w<>ӛLNql'G$`Bm1 ]-1PP0*3C?1ouAhjQm7..`#1?g۔&r':ѳzintkƍkG70_n~ўƠ~+ B(iT^M2,&yǿq׳G;s']?X5M/>rKT6x3$2 =""=d;(}2 D!ZGh`)d ؉O&HNUaL+<BD#blr#7_&OXf?#U~f rGс++7^m KWq2U/]aGg)y#ak#r/?vYJfc[kt!+Y;XV|P^fIh}LMbdDazP[`ax݊: 7!!v\tL_[!'P,=1Kl_FGf<ѓbn56)>'E6%IaFxhS;cY K.[І|@EH׌@mfWcI)*k )d/v 価Ƥ^n>謬쒈Ta*n;%pxON9|ĭudk\fַ%KW $ 퉅voO588vc 'u]M~pjf;Ls;b iUJ=!\.\$ȉ5SH1YCOx"9L.}^1 W0Kn}FeRKHnSA$x9t r*P=X7.0v9?B̤IT <@:N L-hdP;0*Q!v;]xHRp38oA4Cz̚&|*C#^!Y#ٶXP%B\W^C {h~zL[֡s)G҆4JeM6'SyL+W;DP$ҕmaY'8RA`b y`|Y5_*%κE@<:,1XAƥȢUbęM;)ScgFsL鰶dG,wlc]Uze{sA4cٻ_Eyx_if%cکKn0`l1=K&%0MWTAb2fSgZ=xiȇmMa},:2h2k ,,f>rl}/l馑z\;.A:]h4/'S uSOvGxX?6OEP'XV&moZUtꈕ}YYD m 57R{ SE%r}L %T̗Kg/Uh0ѲQ5*-HxSqFp8$ X۟yz?<v6oeT2I2R$oTur4*".acirئx+^tq uJ2$|qe=%v{3 _=дn1Rhd{#!BTVi#7eEvrs&X^b?٘b;ns)XC_3;`4V[gMGaN(Ex(Ogkxv68YnV+D!?̀ˍ NBp?gcw޶[}3*+_|s[7o>j9yHK^!EPm3Q7U X &Bph N%*"POd_Jޭ܃FMZ3ْcC*OrV٤dw;"ARБZuV鱻uڽ7="orѲM6dq|݈ [ޑDBd;>^ܝjꞴ8 XiCe6$Vr[V`"}n4!H#@{cnN;fp*+M}m*TMrf2!m;iknm{ι^to 'ws|>.d zj%WMR.\P)7^{M>S5GyqBmGOmyBCq7:9L9o8۔l߳Bd3- 綵 zǂCi"6YN]ѵԎ8$$ϛeجrR6 Ax 17Z*,& N.f\4/d~/[yȈdqc$-$mXWp"fԶ~TUTDeW⸵Fnah^,Cp!ðϮ|֕ǯtw0ev!ϗKg֖p_VTM}ky% Hݟx_~F pYQp%emVBǹ 4z7Rc~Ɉ\2\y:mmw}tZn;Ru_$dz2Ͳ@^mfb4X }o3KepDu;K7D4d@lXTR&8W< hphmbBM(d ?Fv'_{Z*C7`6 K.F,`ؤ.ȴF0tp#)]S MϿ&>RF}zS!+ߨB7@?QsAxĶ"EZ*K3*u%y(7SqDzHUQw7(& j:+1~2 1*Q.+D<,7b]ΟwSiHawh te:JOiLԸ׍Y' 1A1+VJVǑ"ub*Іf$ *PH:2JMFtL% ;E-4'^$>$/U*.&<:70Dhe&=gsSWuV''dfnjԵa3r+BmDl0IKԻ%۴s^^TqUU׿LQfr%`2}۰g3 c_$ԯRv_mM.nr-ñ0pةA@ gLuhVMպSeػqgay>^L9RuiQkm|}v"u' ={^u0D&W#-tL34vlʑ4Rl< =.R>e..aզ@ח«?t9pI$6I%1a[bł|.SZ˨+Oֽ8^!,pph[Xuk\BRPpmꦦPb' Y9|R= zZwGfL N\s%zm{9蔦zL 3XX0R%ES5#$dq+&^+C/^ w,c$LFw U Ixg M&1Eu ~~1 9kf4 8G<'񵔮eYp0mhPs<"7Xވ$EBL<ʐf1;O"֏dR*T_c-T1vhpD[`\xŅP(~Kp:?@&D g_Xʻ\և-gB'HMYf8eke&CthQta`dZs4'gGEXg\[ntc.GG1\hr=mPqz2Ĵv6TPsYsr}$~+C+\8Qϖz{O~/YqT#==0ѵ֗XތbM qDfXxINP{!-e*'PLA%ޭzPǽB=Y+#.ܔݫ.@^HBǺp,t[ اsFb/<-y R8uJ$q\N*Qm$A?Jtr#EtD=!+'Z_oĭWۭ?hK hx6FalO@#^Wj1V4IlmF$:S]~%,6;_]%7zo(oJ;ibgp="L8fqÑCt2%%-dm牽{p%ŨOY"U$'g7{rK{5XJ35hawb=5ͺ(#OU1J}:+ڎaF1ltb)Z~x4b}یX;Cت-ZDp|ѳz5Zh|i#pI!9yLw %,O]B2weXœwqޒ62T;3V]F|4AbM^;U>JFWB dR)rs!̓ $ST<+v%6ͱ + ޱ?Zc/o, *b[ q6nURG ~~d( W`>G `RÄF/yG1܆L;[;<= p }0SCnd 9!IUc N=!',\9_`6%@{LRp[\ c1tg5NiBP{37AtAߔa޼w+1@ؽ])&&VGh[^Sfs,NOۧW&؜nepy9JR y!G 6@064a0Z3?h3j#-xMɄ3F -V2y,\:+?H$D2ziFb_ }Wg7*}·'+W^ R[ҿ (mCgb\s z6\-yI?h49hs?zh3l&s)'5ܓxU]{OzO LZ6k8 ףt+/T7d} ڨu'7 w;Itc )lI܋X ?gf0pgGS;YM2"BBKH.E,OAgщuG|*gRRV&]PKTpոށRDUF*o%R;=[CQ$D( oKj8B XYk0`bXFTmjGAlłR=o'$G5!TJÝŢ,7(īѣe{Zz<5|Ḏf󙅑 &J7!hzxVZL&}$Z kΨgQJ돤@ {ǀ38ӥI=EZcYXӇ"[4GȉHIɌ&ou#kř-') xZr1FeI˃) UJ`҈ҹGE #ߗRZfy V@d<:!OזxMMvܫJ$EKZKӣ )h|賈?'uwԣM\O.*y|q*8vU[@k[EQJI#V}< r"MiߤߗZ~ Arg%;\A\ D> 08\ )(b .  }́QGE"QS= 4\Մfip/$IQA+;#|{UĢ^cC"Ngo-gn^ɓa3sop8\#"RoiУsAmI6i. їORRd#VH|=/;Zyʐ4jMZUx ("f$0ōA7qV PԹ T%Bn?\ci>,c05d8b|Տ~7y ?̍U%x)'48 ) y7E/ o4Ypq,r:)5c[W!̃"#-1XG=aK纇Eݻ]/(@^hA`)]=Z+Xli;o__o: d,q0@`g_\O c  +Ы1'!h[~-U 8-\ D~kGk,/"N;}6 .,R=VbjAD&OF#` Z  ?jƟAC@+a*G?fS?89b}3_φ4EIz4XU5%Ґ oo?]=[-rqOOp_R_.j% x8C:wV%A> H-)72uVKԟ!ERGjɏKMz!Sfjw v*z[2R3׫zpMY‰Jl!讥dFܖ(ؚ (LP8*rؙզwk}}GѣцF1R&:x*Q07  11ͧ>űd$Ͱ<,ܮm;>I}˹᲍'e pSX0wC.ƕU IN~s'ߔR$D>iGH9>1M O,ΫZ:/t_vr s8dK2%" ea|7w_{=> }+&edK'@P؀d3o^;Sm]z1?yvF\js<([LW;|l%㌶nR1P>#P~-"S*t*8zNP jbFTeѵ5`_dHId .xnmuzcJoM= TJZ%ұ'p$)TIsabμ^{MWez]>(h:]9=Z6w0[|ՐU @9nlM8j4 3a-[Qf;_9&zFq:>b1z# B[ʱ8/r'7wZ{7*#g+Ϧܼ =9~ſP' iemXun*%Mg_ b@XdIAݺ?+*+`M ؕ|Y+7g7q1fWR@քwzn.MWaD L- 26lA4^Ռۯ:zt]aP],Gy:9.嵊Iv^Sv.#N K<'3~fW`T$ՊBj 7h ٠A=aOIhD+yShU{~G}D%)!lV68+jꁧՕKzE)jXL'|`B H2a%/i|s)7* e-/S+M = JgjݜTܖmS5: DV11JoHJJ`Z$47 91 RNMlfnLiԁO~3e=Z ;!OSCU9TuImN]e!Fb0 QU@ ޞ4P&RW${FjH0Ԓ! APUO!$E R n23OOJ;6#P̤頮 IkuL TV%ӱ1$/=Ò&U x~W73|fǚNm ؉򯬕5d4 KCAF1 E9iH1: gt2yZbf;[RHW֍ $*XJ:T/AFmh*ͱ<:\b x#QYQĞY7<|0Y ##<P ZM|2} aW 4 Χڜ^9I!K Tosُ?f vOb!XS5=yY` 8:Q)%)f3(^EPV{ 0 X݁2G (n mfD6BnX!/Übθ~AUXތ8"1:L8xYV&A nGTL3TueL"@xߴ 7<^f\Z| ,_V+liW` ="ȺWpXXʪw!X<Xyqffbr`G16i^vR!5ƳtI9&3.[`VRHc}7-)<^l0`ehRGs`|ܾ1W) 0WN:UaE5jiY[78]ʷfL}.Z,P!V)ІKc?x!Z=r(zX Fؐb {+ײۀԠָx8-kSQr\ rwlW+d?f,xx BJoav6("|>\p82:s* 0Ecats4Ok>fmyL,\:HHڡPץ(#f_s쳘cj!gGmZф:))S 4Fcۜm6wNERUbIfT¹Q[e%C"̎C Yb)x)&XNAŇY[u*ǖi47C8ڡ61#*60xPc(cGU=)D+0> :v哜nx/U&\XvP~;O3ky)̤w4BĻUԅ|le!4:,9}{q5xN9]`aLM& 6A A*'MJLSL֬ XI0ۦ{)}FRb~J;&O 3[Y6Ҙ¥s@f*\-}X~CtJܞ2~^oO{ ewJz<]aµ7f)%N Ш1~I?~E8v!d,6 qQ\x^{RR{?̤7-f`k$sژA1"&XŶ0V$?];>;!B9"Wsz٥* Z|^TTIoF{AcPԁΛ+HOJ2UѽpIn&@& Ə}`Fזhh<ā,sZ.f6:foJOc9Zz┝=ۏi=>/(2 6k^{,`.^/ܓ{L{9?8gdzQc)b/Pf6L)(I Lzݓ ۋ狩MV4]RF@J e dp g)k8"^p2e!4 㟼2Brpp2ȻB_|^EKeI,DX^UQ ~1C L|I!4H7 *3 ʀ,/\v#-6"dTxVi UVc`ulaG")aDD\yϦz?|^z%aY,lMV5I!山hy;5|b)P'afh'rԖ z>se+<76҂"CWΒAziNb,P{߶}q (ٚI~z3KicBL*u0N '[K 7)Bϔp0Bp4S2m&pz6w+T".K$R9sP8CgzWs.V ewV+PuӤ$+WwW6DH{ OI=ٌ q,]԰r!ttbKc: A$?>̝m2kAU=y$j⻀8jq<onv%md k>)\ӻ¤87sh 3QL1bB&ӻ IehVCLX GRAg$WNW^&)i}u|(6J6Pr c nfN GGǀL8`1BYzy5b:iw@[ؽlAz3Wt(ԬxcAn* ijyjN\<`QIj.fג\thΠN6C;7(#\)ast^~L#z :;wŻڎ NƗ^x7jp|f8ӱ[NXp1H$!D_OaUg,5K˻j@wUGs\,D Jx ZʕZ' p$ҜF^WA)@TumO}l Rͧ3mvP%~(jro|ާ7wJ Osq2^M֫k0h,x B@Za~?g~#$ c/FS\NI.^ $|q.ϡ+PzHӚCO_;aHB4!3ʮv!Wefæ#8:ch):QF(}{ٔ..ܝd9cy$ǹ*u *啬yljtJ)Ӵ0_^кRU d7# !?iq)#ߓqٗ c;P=dA/mkm4G1+&;ySTC%P%;@U4"I)MIܴRZmjg.k}ܣĚ%$hCP2O܆/ ?)z,X0^b2]1<s^R~aW5:z+),z=H[ǫhF{cF]2q~ AIq|cz1UnKRY 6cy=wRٕ dW6˶#X[V+TzC@ |Lz3| 00M)_e t:a2Oⰽ=1q:З&F0Ō?@,XB5& bm HDݥpkj9/c9e9u ˫9:K* 4u.žbx9WaNq!YG\à&TJ O*Kإ7@\mUc2O==83%TMI]AV<ՙQ{1X~AOWjcf%R4lv<{G˨R0XK4`+B-ԯ_byIZBgu4nY*'b4*|/0 <%;u8n~/p#fNd"pB%Z4r" 6ltc#]`US4w]gO\R3)COT+]AFGAs>؞u ǪrU!lAR-< u -p дOq3lf#On67kTrվFsb9B9C)9H$bjB.Y\"VyC!/7ٽv8GFi!EW,v0i).BFu}-349XrY+ŭ $:U,0LZK)fH ÁI}ӚJlilJQdg`܅s2iEEP*AJCMfRmz22aԇK7No,QY{Q䳎՜Sl'j?8RzISz\!W pԨ.)yO{+AȕH=-<9-/md0m*c`Nc)]h5 bJ4QA:(INhiҵ 5 ;~*]I m{E{`U+5VO?< #S\6eǧݝ18:`q8&8A` i&t); N_#0~lEvaV_jB&D&_r>Vt>E0;";B,+9{(pΞv/p5ui?؍#*Ԟt5ݽ{кX0u HaI:jW5$$¾OD7hв?؍eB`$158+-WK?mWQdHہ97&b4% MmlXz潱8RQ>M  hނ&-it<ɂqVk5 J]M,85DĴ0DiBkN ԙ8S}-H) &TDyHq2LrZGBIZJ,w/톷ΦκV .= +ގ*6rb8 C.,l@ fJ0 aËY{1N y7xnÖTԺFG匱־`" YEQ Dh ;±)1qԦH0)(& pc 7l4|5)|RMY|I:#rjhA`Ȯk<#  `иLkbJ!7>;f"-8/\7ɣG>J?g O/\x&]Dj0Zbg3ANJr[OO]pav و %->ryc$iHO=J{S0ݼ7.x/]97H"QInђrCeX=T0)Si=`ܳjqЭ+kQDYD$w w$tθEW@yU")S_d )y8M-8k)IЄ$Tס\Ψz5zZR_pf)SєP@:eV3wI~ݘt(lhz-I  CPlA\ABl~M1ښhh4>MM6'4/%Ӝ㤆ʪ"f5G3&XS[QrUJC֑C{}=ep#SQQ]ɲ ${NQӗb- NT @u q8(AVAt$qBCE&RXBqt_{ Lrs"v<|w毤'wV/< ^YiEp8|,6A:Nۿ%X)EE`[LD|TH7.j*h&L.bteD"E"w̌OaVs!erT-E.?+x3yROk1Yc%_乔+IS^ozl+d\Rزr;xs=$Gt8Ylc$P?o|R b O$Ӯ<Ş b}"f2Rh N礭lJ4t:Nl7WJI}ӓjz{>X .U8c- =H\4-XI57[\ljQs# -܎< s,ŮԎ#~$ڗLU3 Oƛ9#^;b:*gQr~-iTl6Meb Prd+4 b7Sq@d2c9[۞՜Ul8b8)sPű)#fr' =vmr m\I쬐>>A/K Mg3ֱpu'*cLH#p %Ǒ I qQ9_ZaeOt2¢.9A$BXE1 Bfkz{W)psMS pHz4:k1CR°9:)׋bg<u*,riI )OnE!ԒP5&ix8Ģ/ӹ4ue\0h}|5̓z\OR^#@srيmѽv@D)\wGݽ'y4=z4ޜNNF'3;w<[jjk]s|}P'en]!׶!w]8>Rmz6f~sOD̡ͺ׳ncTke9ɾxGCzuL+_<V:k=yMT gi3tVVC_ܐr:F@d* K2{@~}MQ~ ';3*;J^JZjIVaoYk )L͢ߞ|#uM022BOHv?j~{28#|w#B/jP:M{8_V #'WXBZB0X#H^iɶ,-y> >|><-H4'xSE^&|shTp*#&id'C?h?ͭB?Fo[ =mRڗC:h[ݤb hA tv_!tK-w2}D?,oGK #H~ U5rjPZTDu*v" 5kSnfd{R+sYce H㺡 W7Yu* _f)KԜKǔq»f;[5{<^s6RT(#P=*( %*APeXBi~\[Y8ߪOW8U4'{X4S ?8^I;/OVQ}sLk2mL4YĴpJz:&I!#$aKG ' .nD荷-)<14^xKs>&/1NʰIbCIhYpfDH]F6,ڏÞ858g,}c>(Ji#~R}fgm; hFj7-> U\Pp[2*-T^ 6Sۀ÷N).q0Zzی;CN6h]q  m U[.?78J*M2݀CЦGֹ:$$n]B0N08yGhW*@EěۢQb =",ݻY 9'`XtblEZpu:ald!\kϧ"$;SB;@'*ǸCs wrkܚyz`l7Ƙ{5nQTSjLl, yè V+uNYF:Wk}xlnHR]${1<L0%BSQ4rRLkz 3}͖t tM@+\Rc] pB40. DZ~S[ uvaj5-4&6(-i&(S #m[r줤KL~-Jw]GL'3tb^\ i_bEAD+ݕ+oyҷ 7|1GmnP>@U|+.DHp,k_ޒg?ܭ-B`i:+ re%y(cfq׶4I{ ɟsϔDxm7>TGݭ,l2~,:y}sMpxAԊx ` Q8f8l/\DF_ 9Y#`5xu6!v~ߓѺmqy9x*h?G n"I`_f+8w؇x/<LUrwk34Hz2&al6P]톒6 E7 JZvbc\+ UyJUCEhwxLLC~@-3>D_.%Dc tySA ?|J\Q {i|#?uz$v"t)r+*^@gX&cR}= X y|c9[LpK"6"3rp} LSaT[Ic8$M< ¦T~7@hX"[/Sʭ-׋}Y6)<)qhvS4XC aAW S!~c1?]ԺYCOS ZM7u6ߨi 6&K,V@Vcli3S(gs\y+Ԑ\Tt%މ#RRP: 0I\ctFЏ4<3S/ѥs mFj`bZ6'!չR>`=չ~,GW#ղ#ʘy+¶߬9?PeG@D@lv5c<=!-LM’Vh3 ' wSE_HPVbaly{֘Ъi6[>K0KJG&R۸h.B5g@tLb'gw{yܑGO?|ؾw!t+2˾Y,zRv#zQ< GlN0|2C!boT^+ܣ[b09,}tD1MtcMv\<]ݔ̀GJ亣&;ְ 7Qi\uaa ,燐Ljt:0&,1>X>.UFcCµ"f>m/I0)f0#+/W׸!u2E)&|+IHm^?rOH0z͉jD"\7YPnN%I&VH%FwCsE66OwR4/KZԀܕ:䦭fc0->naIObrcitJ:v{ИkØ4xWX(0]V(BE]dQŒԀ.@˗l]SIe=AHiYv#Vj!TaPS, Vp #JPpPGXjP1N3.R c G>ŅDOSwkšC(ꀡؑH\@+"{>l?w̶{~$k|,IZ Vbdi3?[.]ޫ_E:#u}<=@ǜBT. { r{vGûlըM ve ֹBKP=J( Mȴ+`aG Ge:/)oЯP4T5ԹG :u}1g]mk$Mp(fPiM2q=ivV Mʍ>l4_Tp4/٪fә+|q6ۭ=n8T ϕܕ\BxBy 8oWoydCe:kϷ_ub/FtQbPC 7tN=UL}[/ՐNUf<,p*-ەP=.z)&b2=`=F4v΁=InἊjd731DL+RӊѪ < l@!]c:76/PWZNU,8E~^K7;۝aJ.`TU`]҃LVDrpǏnWe}App= [^fy6B%VSP+0nfНtqptّ] 8. \] اЋ@nLXpPT'QPb=:vpC[ b2m9Ycƺos`4Gj{4Jm]xͬ ɠ>KےO);ebG^@MA4"`ZHs>f4z:YlMŕ&>jQte7U;Sq")i|w\Cu=4锡^|к{_# QHX(u)vj//u1[pi5 5MgT= ,}fbAEm$o ނ,3Z,p/& oe' +`?.R u1]>WX"=Lܜic#&ސCF][t$Xtg (;Ju.n?_8plѤ`F _I J nE>{"Zq ߁Y9_X.7ΰ~{TRsgS՛(Nca>a"i+Zqg=G2վ7j$Khdm-/cOeJ&F>ȠZJ>`2hYTa2^3(8d~vXǨ xvt@!lz6یF'dcx'obSPe"mԥp|Dcɵ&p<)'@Lh/zɞgLz ko7|KW,n7a !1V 71چg)}\Pzq@.}n%JwBo&zPyJQaՆP,T]p/ U$*ͷ7uRPp?-z*ʘ*l_e}Z8U^ԝ^%E!;h=ծ$3xΊw͞1U8iE=?e-y|3v"ʚ90;L ds '4Oz;f[ [ ߦABC!E} d{Y%ݝ˽{fOsϓ!%ÀP;*Ѡ&ѢhUJKęhS>h)!*4*"y\ Pܛz9;ݳu~}x蒾^{RK?}Gͅ}t̓rj<V`yw_Z6oXNh_iΆ:fӾQH Øq/|^Fw"N9 \A{(($=8 n'hb-[Ϲ+woݼz9(4*Rkk/R@Go [Mj4j6gI%?ڋB=į O~] ߸5' 6"d@`yus+`p=p-ƫx>T8}*'tߢ@'ts ͟Iu||JqwF *R*c0IEGr8oNŷj9X?]$XOisZmFONaV eI(&DPɄzb'`,aI'Ia֞ϵD~`Qm'r5£r1](6EZ(QB}M $w IH$"woDdyXG gyzr9]JcX8ˣqiEx8I#ˋ3R$~q׏pt<q!#.Sʕq-8I-s YM(gFD€[ø oZq.&ƫ1`Fh>Vof m@Iip|c;1WG-q ǚ ]ecBCAqY&pJC:]Lfu3O*( "FD GPNp^p] e\#윴A]o!do>рùW oR[L"8mI'k7G'\/x sb8eq4D `GsPw+zá?ۓARrP=^DF tA(QZq’09 ~,ط,/`_A,M8:Y8e +* 1`3ҡ6Rc唍iJ0;i)Z)TȎRywp5́t[z. .SzyyA@ЧU |\ '! *m*[5 Pˬ/E$F6 X䉨<fZ*].`6g 98JLPSReR:<JјTͫhHHH}['uG>~M(h Đvg+8d]c%:rRE7:"#QL #i!]:f{+32]#:m߀mcz\0qϛfT#K8޼' 87&3r~0N:PC]Ŧ`,M[/gU H tt5O":b*n)P!DW,j4XM㱦hRv}_6*DQ_t@geq@al^6Y5QU?t K'DFeʽKGI HE"UAj=Q+@UrbfS[G$}o#9nZot0Z =6 b9=y?YLgF6a`o]HVꄕGZ>>̿Cx67A6%cKTE׶d*^^~{1!j4.&ALj(CVJ8:!RQ_:~2_Dӗ 5\l5_YGc64$Q_px'Fi>yf E"tfq(iwL_9"ȅ:D-jR,%C"6;9N$W3?9/ڂpLjFj:]J@$vH k>bZ<óiRj;$[3{9cyp>]c*踷(J H]-`+On6DzL0G FѯV{U!l>栊<*aQѦ?jEh9\ot}+Viܕ^ըtRbۚ,Y>ԏ\PCwpP_7A>=RZΠjqK>F.^''I͠HUpf@LSI#m94&iI)yYLB[=~c9*2MS,2e4KЗ+[?5Sմի?+9 gF4~&X#5q== Bͥ C) OhO2[M6">iі`+Nz]K\m*HQ#"x=K^wc4L eU:Qp0IX>1e$OFoC/l+c '0|!YR[G%]*%`V_=2vO3rӪXF. ,fX=j:T*eOGl T}_LBi0j1C]*UZ'`X9fzgQ5HSD:[4 g:hFIq0AOT 30c`19uȤW*_ l\"h)=ŠY.@"fy71E ,μs+ȤMU|R'S5$I?&:06 2*%\4(!Λ&(!s򖅎 d-QC>S|0EE34Ŧ$U7yg/b.VaKUe NܖTN0œb_M b[\댿3AK a|<$50`M TS rFMy3vRєcB8#N.x1u@95θ7z˫jB1`9:f9bH#};Eah>]ERc"w9&LhdUJ+,J WbK]I`j˰#?񄒐r p1_͗&YH'e w5WI]˯22XoG^-IH?qoUEm&4)Ў*X:ZI=5bOf 'T-EC.pJ+Ԓm< ]QLK5L'G[Kpc~ |t,$O(V~SZmT"C qf`k znx!|tx䃅94D o^c o{PHN-7lC6Ojh˱Q&ˑ>XX q)1ǝy##pgƓK$} (\A> Uk{RE+_wt6:qZ8(RW>&Vࠂ?7@m`DI)b GsBb\$ת8NloSE.u*"v*bU2^Yfr2f6\@KpUi`i$Q&Qm+դ1W9@̇foc@jqze@s?m1dʃ6Bڼwp4wu3A2X+mF1!~B"qnIm=m ? KVd5FA34i#dȦg*];|v|(he@=QƺR/~~ %llȘ x ˥IzJT:B>Fb134GmO\9ށTS 4a3_BZo7"mxHYg\$Mu ךtRU >n+&RRD1"bK9uC+> 2S^V!֥c;1hӅdnF~^TCNS%댢YOF)ڴpsPR4瘫. ?,q%7*?N4Ҏs&&kP?Q$8k}IٔjVm:\x l0Sq Fd]ER~J) k"EʞrĄwu, v3keYx8 zڄM~`$]׹=0b v8^uz?!{nQڲ<cg`%v#۽tpMyW_>ekg%@QG"̄b@S8;ti7λ NǤn|$.6l#W,lkYtߜtDL.sf:qaLK/-<~Y h{ߤD,224FiW= I&V_Ƽ?R9{p_RW5@n4r[{e4wzʄ#:Bd2`Y! i!\E2ԖORjG,^`0x2 ڡUȁJTuڔ~>Z-K{=*ԋƙq0Lqa ]!oNaiݗTY\L۬nWHfgpH&$HiکṭL`25`BKu$)I=ŏ'Iw/$4΁Z 9T >hʥe]M w|tJM1R9s1.Y**%ʉOh8z~Y1nmzxz.2'io]-&0aӱhYѫ_n);,74Uiu.h%ƠK^RcJ-Ǥ@}%=_ql DŽ0 .â.iLOQ=;R@(!79-z\/x'i|` anrksH>T,\.h)ٶ<SܗGMd8̪^i6Dϖi1"{Ku׈-|&FJW _;=Qxeidt<3MIzaɾ{-K=erϗ"}|{ijWzrHpLGlˉi"i _$\sAjy HX+7 %ѠT'2蕡{5Zu|1}V'OCŇsYR{"^INj%-NMAeǭ=z*Ň2LU*&hc%Jq?I}꾁 _3;)M Ы^J80?ifbCM=tA!}uaQim fnLRlt-Ɖv:&Ib 3, xjP1ۀ1MKѤ\ԓ<Ұ138Βl4o%ZKKO}l,B;q>R0֞'{N2/5333f45K᠚WM=R3C c?ǯU5Վ/%yK"7!!9J ;J%IKe Wa閫P{ 'r5>1ZhWlۃ&@j *N ۨ0nUI瀖IT$Y:tW._hY'? \;*_xhYkIbݫ,lq6'sQl'I-U9H [Β<_u}J☰$Mza,F¤ ^ #FBcqrz;qzN'~7TB|&V9C0 F*b{SoWpkoTfz6$5H퓍j{ѩ}ŧLt0#[U`[ڂfhD2~©.~j_<Pzf7e̩r\-ɬC U{PRoT/ڽ!j0CStki6NrP f܋+N,hJԾт7+3qS @䇫l*=3o|{8Bc0381|K |OgD2oږA[^ۆXmHS|d.aɬZ,PQ+ۄōNKmME;IBI7j< 'U!=7AWeYж%bL--f=$V&ieYGs/ X,cJEoĕ&|u :+zϑeϹ]Ǖ,o,O4_iʹ8BI\(s]qҩ=jje'js=Yq5@Xƫx46d$.SFiYFOz(4C}if%IwTłpBm%INDp0Y'2;R\!.IjЖvOfw T^ۑ>u lh %)&p@'Y)B*hfR?*^l ;Dl 0Tq gQ\| 1"{8KvbG$[L3!wh/q\M(V&b8W_);lYhF;Fz?Mm,r&;/4ڈ=)"l:tp%!KՑզ?"+rkISY[eH:Y[,KAm ̯xAsj$qucy^fW\zAh`uDCIԷ<֠1p6 u0X- Ñ ܚ,BB/ͬyZ45, <"8 ~+k$SMgxMOz~,zY/Vyt n:{{YT5J SSn\u6!uY䥂sYs-Z4 1*r%d2W ejR hͤ&'=8tK9fکb:XW|UTH-F6FzboQM;ŵm&dVq"*pBKS,~'ۿ~l;T6}5:0aw7G x.D?W8qy4/x=!v~%<4%<hykjjѷ+1EiVx5tNuʙ"KOmߴ %f~uJI $m z$K-:`Mo8M.rVOw .ocy^u;<2?\mPΚ1ҹn*XaKl&u.Wљ?1~ʽ , qrI2n[?S e X2f-6A.~F (RgrZ#i@l UF-7-gU:X0/nv`n;.[SfVr^V4 l JBRHXʳDK_rA}czwX4*u [,W8'$?P}'/rܛA+i6Yb`4jOKf-Ϟ1%]Dž#lpI}#볶} S;*FHIT8v^:/]늛8.9@f<(!m5-q0'֛Sxup|xriTׄJ\P3W3ǣT9Mwo^:ݼQ$Eg%cU4 w46|!xfKaM\_Yk'=Nhexexcrg6D7Mpو6tbiYux5Wɐf+;pGK9nw'FFtJTӢ7+N/>ӵ"[O{_PYyjSh87%Bs9+c{9e }auxrYt]V6z9B j3Pڶ.1u4%4 86!SD9_;)~R$o!̭K"؈:c|4I zyj[\tKz<ͷ*vŸbbZk(?*FHMf<:-ߛ5}}ϧ5])#\Ԓ$ =.Al:m&jVUCiL#8,q sD:>MYҚ[ezT,Wzh2P}9n؃ 2 o ;|Z ,;fH3/Tb9pV]H) ŕ_ (.Ǒ X"n&u+ZSI=HE,"@E#aZ ]3O2\H )ڧX$GUqKR!Xr4x鵟QDu%k=D.Upx@Y DWmuK~*Ii9_2-K-|GޙŹq؈ >)kTMsS.1*֨J^X4:cҭj欎%Ǧ8:`_Y 6PrƒЯ,{a|5 ^Bh#q#NzOܽh@,GJ~~cuiǑ+yTƫӓ}E'nJ=d:7B;WW{!^C=]xX0IDzwqq K| <#8z8X֣xu?G?]ſ\mõQ\qdf1""缔y/j~*= TmZ-Ƴ'SR_DSzs{n:NڭpݻmmNչ$׃Vase\z|n6Wۍ/W/@:'gϜj~B~S8M{p|ɠw5D"ZIY}.,PvsF),bWiv֭glTLm˥ ~e^QP")UZIPOIk))7fٛ{"8nvQPF7GVJ#:'T U1]YjB;H7cI!bmc*,OP)*4vP36DJV!PBBR,P©YSQ0ݧb :J22ދ(c>e@ d.6yk9![rߺ=~EIrzA8I \ƎBEaNN4f,P-׊[>_\CbʡD]pIԒ. !S;$ۃTP{t #Md&~}&.{dI$Dew`~jzuCjyYSWB'~?1 NWHaZn>ƯSSܔtܭWy^Tnj*;d)O䠖D\$Ҁ@/&Bᔃݫ/0S PI6an. Dž!C C|6˽  ε Vt*[wהy,RHUEiX{MQV$YCະ.kjF0V9,{ ;erq q(&IZc/S"Eu6UqG,'qe\LDDЇj0{Lqҟ8[s7F>|u3s=~^+W i_'IiWk5ߜ7ZE 1 /y\WjJ^V`%al D10IB<MZs/%%Un(.Ih G#W1W0,b g tY(nrb1enYR2AK0qlcа,-EɂUVZkOpbYˡ^ũvE <}6IY/nZ:ƭ tR!:1!tYm~BՇmiÈ(1a.ZLM:P*ܚ?wg:?ۈJ/=n%lDmDHH"p6)H,8 [.\ڙ G*:?*ۆYm*ia,2vc9Vh_+.Y޽v0D7$ZT5vڪ|FalEljز#N!_Yv[nNY-czlh:ls\.GNCbV^pE&Jcw;:ݼvĹ}gU1JHf{괄)b]衼P](+2>nU2Q,f9pkYrwí`2 Y-L%-\Tt+TksV~-d]`pao&Z[,>(w2UJ S5lF@ihQ;yUyVن6Wl%c3QNi?V[.UZm W8KSާU4UV\{;vϊPQ g ^%(W5Z0`/ƥmS>OcBuDo.WV]@:il;PzJ~wlwj\XHkY52}h!E[kOK")_-rJp_[usϩ yssV?XT'|u0kAl ˡnCnNYj; $Aۢ)Q2ZzZ\^X]ѐ'Pkf𽹈LR XQNqPpu5jb\-7SǓ*}wq~<SxckewBcQ`"8FrA;/Lj$u>-xEw,3 kX81p8sFGƱi 6sYd;/umT'а%> 8E7GAN,Y b+;^1cVշ$LKGN{2M;y FK3NnA&O'AMb:G8fu; H=H @ZuV4yvU[l.e :dMb["ƽHbJUկ gyB >SjpZCSOh{_j]%8t)b\KA@_Rm4{4<¿7Û5F~Wy2UߗӶRoӆ1z8aʸs5$m*ؽ<򥯮Q6f7N5N^w7jGqݻdRN@~p27B*lLTM_q0H:1Z:1)㾏{cλpT2Mq(DFWh`"Q@p`Օ*̘=]xk?xܽ/Ovc׏N; jXj1=׮]vEsv9th[\vϢuGe{-h-:kqv7Ui~/|rzg?;OY?}ȻRHal5NVb8Wٜ]vn$sg ={ݨg˳K!;g]q}u 0QO[xљ h1F"|sop0@X_̱>-/?䓈ur Th:XB1&@MF_wH'p=IH=NW3Mp FAm̨%Yk*^(=*k~I. ~W{s i?TmuJ#!dŠTR C)ʈ EZU*Dti4/L*P]%_c=I]cClzPt36&`J %?sIۻQP4h?Y_ϧu9R-nGhYi3i_Zo|?gKRRi" N). cВ6%s ePˊs 3?nG vT&wY8>g֤$T@s8H|dXO$[PH%HԯȉZ@}~|Հ&h@LpQ[R{$h8%vJj'QRJiL -} 8~qp)d2.x_#DIf`WTLt;j@j+J0{4#}˜I5\e ԭ}<'Bm4ȸt}zq\ 9Hͯ6WO[:]6K)XMG"!綡S07 CɄ!O1Pm$Wbrc0泥;-Iڽ["%+-"./A5BH6o*XPƛX#ȿ h*!|2[Җտ˵LAӟiJ!Z`VmwHQt ~y:jifp!$!+Gה,^K_R~ 뗤xh2U.G^h=C,yE{ ש>`ނΪo tQ^XJ?H?x@wvN(^?ٕIҗX${{?nUq $^?E)&_ ү˅wWVۂ4V4Dm Tl[}\KF]dmcyӉEndhLq61P\`Sj gpPJvSb_[}Q}hFq6ӡş2mP&Y]|9·-=IPAY񚨞iP>e'l> z*qnQ~o\5yA !\.4.6Lۂ3_ jR̤M49,~ `ˀKG/þCk-\ڸ̻GKyr,0Sdb\s.y1)@'nX'^|}F ?Ғ?1D8TG qŔR,,ֶD=< I}PߞK|_`gXL.J"#̀&1C4BIR 23Ry⪨p)%6 |5]b)`0[6dI@,@}!Y7ȼi$(&0b3bXlK~56l5a>N]hCzR=K{>itzD҂wY4%/u0hqH%&AR+쩍_@9UEms}T!G/J0CyS*YfTCsw`ǀya&90d6%R4t3VP5x/Jg]/>Zږ{NW\+Q%\5m8XE\OuILz`= h5P}pb34mqC`?WuLG`˹g(TQ k6lq{߯XX;שnɽh8hоR0-T lJYQKkm1X6?8,mPb^xJo@_ՁCm@hNVl ]\Jnd=[rT3jr'22re0IfLN78{DA_hL*ǥ⼨?\}ӞG#Ȋ4WtӼ.௾F(ZLǓ!6ck19Sٕ#B= YO r2U)c_$=㽽M~ N!*|] cc f_NZB=tPñx y"boe AP[%AhotzLt9JX=[9l;Gt9 Pၽ-]"=#1R2Oz"[\W$7VE&} &  ~f~PI?Vd<(6`rlq[wt J+QVkH2H {`n]r VrHڇ{o`A|u<*.]fyz 0Mip7cKgfS s*5m6Uޠ+*Vq q߬dGUݪ_ =.|*6'j>v=-fADϞHj2y/(Vqh$3PҦ K-0<-Bm69X F}G `"X3<w5h0M@ی'?p֬:lW+x3bʺWV=0~Ywx"y-a_RL8kao$W*Iɣ̤yec}Tk:^꼪$:Ÿo8m~v#Eb.gT|2SE&h1eY}T›9엇JF@"7'ֽh5{4y[,Q9NElK |͈l8;ʩ[tJ3/}pU#m2wv@CqPJ ܢN2t-WKquɍ{^s4@nOT`nsL̩qhJ4hF֓v5HD+ԋ$9x5;@Y;}f 5Ru#IR"tf; Ա'Llhіdy;1~!ywY,R "q%垶r#؄ J $I&qÏ{fS>qƠQg [e)ږޭFv1+(Sآ(Cθqfs ӦLo g4Q\G)| ,e zu{=[.qbeo[箜?\ŽQTlEe&U$*&Sɘ9p(zER2e \; 4}ͦ8J345vx;Z<瞴+"̑J^_-Ŝ1&fLİNL Icda4 /SYOJXދ@_}f19 a-8ÍhuB/E9$`BUe 'A֒o6]#:P,cY-w[vlp^Pi1~RǹI}uOl"-߫WwL{f+H+E,~Ec$7bt^wQR"QpðN*CI "MYzlw-}Ei b7ʳN\HD+Ca&;R4&ʖ); 7e<lyO i}[)TL]-/\sP `,8J>&XNh@(JvvL܊ND jC]:[;}E 8o%,'23"2ġU+mMMB8Owu2R/_"'rnl8yKhO?5*ڃ:-OJ]ND8Ϭ Ru(Q<ʣcCPgxYoJӘ=3Ѳ1U'o'N`kAVQ0Weme;"Oisz*A ~Nc, q{ʮ'؞:MKNwc{ީP 7 f (Vz>SR!fc(t/@[%tQjv4%TʆVo ӘBk+; JXDI)yGU;b-EčPAg3*<.'3-ZIi ׎tYP{dT`cDmhqKˍʵ0naqZgbɰ3Fht)Jq #i#ܴXW+ؼ2Uұσ635NW30L8Rb$MΤf1(Prq3GI̓a A$` }s](0gLhܖe;mV1mp@J'|mӀexﭢ15avf4XB7-AXe K%1=w#.g=s]_ȭM'HPv"Tvwnsf3@_'X7n>Y- F[IA8Gӎܣ*v޾2 KFse+ܼ0MoU8)>̿0ߒ[p撤X][%1K6ZU;OITZ>ܓT&K% a-v$X e7)ߜn‡AS(CiALZ,x6 *ЬpJ^ʏ+k@Id= [ 9]?<@ h< `~E[Uf " i\EY 8RmdGR AIc}w i(|zΘZq&t: VhW*P/,bs>P3JvK*1S $C"@۬u)`2/N^SvۋM~l12yH5d#o4?"<;hh&d.7hENdJm@SOK7j} K:XӬÚS,ԎjT^Ѡy3~晋NeDf-%E:V!xReuwMbkA)@FwgMVo hIҎ*vbStpi@r (`Wud/+zN漒O/J~pPgul,M[k# y3N6XJрlNB'/d2tu;5۷z,Tm>b+*VVG3B6+Mpĺ2W5 J=uJh N1ڰvQ*So17+L>I%ʫWFpLDỈm \^FaIEm)!jg DSMhѯyf@F 7תRvU7GZME:O hsՊQ5*B.u ꗔ$UwZ#`\:,HжUIIژɟ,iL S*1HJ #rLWߩ<} xoG0EJX:gۑbB%yd(2A{` ˉh8f"޾K?{Y:{JE{]>2=oV: djbt1ZvT 3erNίàLNd&;Sb6`gD4|G늣n P%8fkXT TuvROUBZI8PyB~Cz@; j!)B[ #Պb Q9\S^'J&H?1 ,r4f3QӳgrLșc[wUqA&1197"MqЫ[sPKgFxFv UIjϸVD1.tuNkmT'*zK\ ?MMw t3JVx ٹHSUyHoo-}sNG6>n{Eo=kwD/O [P3I^]35uʀzQBp%N cZ䣁pV>83aXmPRڔцQ93P*gTAћ;S9rtͿuo[*ۅC`+8BEk@]PP?>:ptyEzp=~rnf`K„.FN%J]WNckHuQjyV"/@ϡ-JgB,Z/g/6[dUSmSyηQX hK%f19$ 6X>;`;,KB)/|;d5kZ㼰(ltj4ncƱA܌r]LBSڱG msH TLx\-FV{rxDƮA-)#1[#`{ E0|̐ 4!3X9~° &B|NM/gC[''"&p/E¬cVC 6"kKEWk t<6GX"Ⱍ~zwqjh6?pnS%vH@lIsxЋǮ͒.;OXV|ԙYurb,mpIf}g3>9\Ó KƈcqmquR8N~׏RtI7PvY&MC\vyi\ܘэp<21>^<2;/~/$qmͫI6d>-0 R}~WƙH69QX>X1\q":G+$q5%W56UH*,D Jvã`KtHy)[w["6ߪW56_yQ|=0h((J h4IW mtѿ,ŏ5ְFy$}*TL*fp$84nk'OԷ2YZ[e@J=Ҝ;_-#Ǹsk% c%h{EXFe;pbSƞ­^==_(1aH㶦+fpDRfҮZO(Ii9cv=t17l T?zt߰o<mɅwҗ/S[qF4J͇g*W`KZ tEw-)zxrlJ&S}mcf>a'E0ϴc;ws=:;Vp`">-ҤF*W$i/-5~YBBN@ > 6/^>N«RݘQhV1sz>/@R: j.RWGd8k9:)~8f6=mVڈJx33Mc{:GOԯ Hcdsp[v .#&` HrObа%OA040yph:ÿSW7U4$)k;&(ԓ[yha/y`|cᔦSݍ?{튧n%`#@Fh6X w55v(TNonGs9i??.Yn9gxM+U*\KhCyiI+@ֿv?zֹ8]3}xyt*6p=;J\Jqqq9Y2:=NDʃW5"ImnʛR=sQjirk(T:ON?q::GO"Po~c+ǽm)lhIC]`FXss2[R0OCp#"f$%*CՅ1M~Z/h=6c[,l˽?jR*WwM'bzLc7:8g{K=64y4cW7%Dk&?"1"4GS9cݔ^bf#Jg3qUK:@Zp'jL#aylH#7h=Rc79.h3 [,4zh7\C%y}- iz4XJ|W8q eKZmt(+`&}v3 lD†~=yK+T\rÝ =3ѳк-H`=rmM_7p KJ-Eq`O0:-Rf8$:n2<$Q^4}G7Y뿪.3Ivfjk^,,7KfOӚxIpʭ@BX A} N ~j Óɉ>wqxz~~>;]w~K8UTXUʰ@;sGkL_;?y::~GB=~_s_UD[ؚ-cCHHhF{1b"Y km*KWWvTw8 G - MX#ye:l3?Uַwu⪹9P?Z-N!{)W06$*}tYZX[Q؆K휅yM |_ XkWeۣ+6E`z4dcW8jFx<,s-L,:Z>2'ﶋ/A{o~=Xy7| J6(1FXid߿Lmu?^p+_ZT q0ƶfucU F6= !`>:k6?AՍY%.o-`௮o;h+٦̍kͿ)WY%s :" * %`8صq`3&?,K27b`!5Org&?P?ޔ;ӊK( lRa3 0@dKFR6(vڦ6ͥPv@"zܰms4|02"I'^}nu]cިmѕH\RtEpD-WQXDE'hOûzy ~]U6ilP ڰ FϿoa\zO_sZ[6Yjڑjt:X I& wIgrPQhV j~RqbF3nGkwD{ծ&*2_D94 5=ڰCaBӶp;)T"f\(/qK3_O]5Oo_܁ },tH%f'-xA7P͊Q"bNڰ tr<>2ƿo?^Bk 9Zyzv<0߸P"x2eʹG.RjT&z#l*5aMUHMo9NYVJr骭Y-w}x%W@̿%Uĸ סO0.,  5%=;[q^r\jI^{zwh/Cb}P&R\ w? ؄6^b`JBN$h示.x#U^p23E](re0<0//շb߹5 əa#ikM 1 T!l)TmXOH@E%ց7~.LZ2Z!MmuҴ4\X>,6)59Q *W׫ Uے{I]BS,m*Zh-͟R$;'|?5bp]qkߖR$Rc:7tpϟ*(`+NwO#I@eR~ YX-ZC-E;EV8AT sK]#-e-p6B<8SOHʼ=qv6@ afP`+V8fHb:.KhEU\󩍣(BQ\=D@ n_m=kQm0@2pGѶ;5Ni^zf;jzFL[TP)24@Žt_|{Sڹ8-}L]#gW`?ςg F1ON`pj! \9 3û"!3tL'Zdq@rEK ؃o* _IeWdQw<`hgcW סBI8oUJ3lZ8yłc;\ŵI7,DXtzTr@= V8/Χc(s"`=igޜ;~27Z-^^((5&SLuQe멄vS!@m859} ӏxl\HH%A>á"Iv>qd]3QIXO{|H'a=}u]drc:E#ַ/{nȿ^jcjk=r/\#e_ Y ~#Ux"aT g CL~anw!j졨\W`Nm3N ̇ȏSn5 q l%w>t%[ԫ RkKKh8 E1 M'? \³Ęlܹ,6F4աC7=#gָvjr۰NjhM/j8L8g/1iSF~m ?6[ت*J@6ׯ72%E(y)txe'740aN0xc! UKH1㢟x~V@@^ߘ$u)Zaĩ\q~|ĩyɠ6pL>@A_rύD:a=br㷇zVgT(o%¯"kC\E< qq|;ϗ|5ܗJlh/%+l[! ߤKUX4KAA poh׷)mZ9Yhܬ D؅΋; û'`u:'" U3#Q#sjΞyW¯4I)jn%|ih7r˝UN-pIT_~Nùubsj ?Fu[ &R94Ax9Y*I)w?QYV=9JjhSZ̘w&TKZL}Ek%eQMIV*;p45«8$ ?6g.DUs>'r߶Ǵy6j*uB*[B+H;-!E~m[ʀ.dGțo0UT+f[ʹ1.zэ\")&9Ε3z2Xf$R2Mj(i) 8`\s86E)`SeUQ@.^'V[]x-j*+2-ڶ5ejWڸ7 (~"}%qM^BR@ ٩<,<¼mk3lwq`#`=G9%9@9j_[vR[1HR-8-63-Є02_KRSȭ+jػ|QAۣHAq/k+cۡĎ;O$] )c.mE6A-ApTwz=8SAK9=~4Z]9x`\:a+%HXxJ3v(6RD4e@/ʿTеW1]+ޱ͇%Heݩg+ hRa)Crq%SU_Q9+7!#GNemqV;mcl"yr)9:v[so ~Bhtztxqx.;<^ʋh'nGua=XoCOjP4 % exݳhx>7>#R/+Z38WE݃/Zgl .I xB%SKJO-<s1%\6D s?kT'ċmeD ~ ~Z/hw\K$1M# q ֙t:vƅ%dB\ƅJQ<s,5v7d8s[B)lL7n;kՓ1N}5lUMj:'͍p4tgT M.=;7óoc=luN.ѥb[\t/"`Q=HEt޹l^3ahVi\[4Rd9nu7'XBshcij۝QCzHb~~>$I>~(~Pdq8wz,8-JȾ=fcohM[ƽXIìףs,OgR+@kN-8נB Gð61ʰ0/>H*,銦BC^K} mYtW7޽u{ϰs,5 < U+ 1BPZK\e N \"D" Q $6%tF4&K}}y9鮺unU~?\ݧt=k#^{{{sd}w:{`\&`5p2M}]t.:LpO}mÏ3=>ޑusPtIS8JU@wRTV/oG|8\e֣T_!} !}\"z0Vp4XMj4Ҧ8G$럝&h*L[*I*R)$Cz^+!}Zx?nk3qB{}!J TQ,$GX&@D>bRa/.1зkĸjcA? xT$R"Kf\MIĬQS2ك2?H_H?'jH?C{GJ;Y-b<]̦HGG)%#8y© #@!.yx9E@tű?nvbvg'ӓ=8w?qwfp 2al4bJh*~v/???kkyёbA${ˋpHz@la)ɈB"3BO /F9(”4-kr~ԣ1j .A&NjtLPs>B-A΀xל)~X6MWB:1RLj~ @*Dr<'T !"IDjĜT'>5,:(s$׮*Ri~я׈'j/#`_9.a#^^zݮ=N!dq= />p4cn7;7;`{^wǷ{ϻo7- xV?g벳5z bhd xVOtUDHY!AB1"rJR-UDEth/2phY|b5ƣv>}EB*飱f'FO=xBP3GoPӷL`D݄Ăh5p D]kVRv1 U@m.:`tg`}p/.8x5,Lb=S<},zF? '˓d=<9O wYYw'Cx wɐ~ΝC|pxxO^~J4דz< $< b^yRWd Q'~CSEL' > pmIvM_J.hߴr~{XA`Fb AV<'A0: ^n@E,39,h(ED ET r?@?)?4Me='=Yj"f-$(8:VIE b%пdb@QQ9ҝ: *`//~t0Da6[. igggJP?H*I# BY!Ox7!-sG!h4 :Q~ʼo̼W9*h:\[E7#y(IƱE燽rOFWt(0pf5eb T%,'Chƺ-bhE L}( /DgNӗb4@WllDHqxKnٛ?@abu*B e`x v8ˑRkvȕW?\VCT2r wq6HGm&9lx%(>#D; Wd w0٣SjYl)Dݦ llnQ# 6=8H+0YHQ8H]T9WAW3:YN չ 6G"fRElJ"YCؘ t =Yd.!5!=F,rGUMH-"}~v3") GZ" (d({]01 `@=a-p83 98Dяߖ]>j9[W4o><^Eo"+1ZRcm&)Ń8Z{u^LwNcrޚɧk_&@.Sm;X9LH`*"\%YLQ:|@$:3vL>&@Tp2ð!N'Q3@DQ+#%*T/weY>}2c9"o Pg9H/Muٴ^.୘R`j1\BO,S8kt:3"?X##D}E~Ps3| :{TFP)*+B3dpbG,o183njWb\Q #9Qfu+#5DftL9N^\R.uLh`nUSٔ89/)Z~ ca}/(|p~]1")"Eـ$S ?rRkcx\6f6X~lW8A.Z,&|* H_ q<\97T'@% -;lyZLt0PrMyegJ& 0ߑ YXeBN*xI胶'NЯhZ`h \)لZ45yqZ㚢da HtG$Psֽ3?f>{qll}΀nhyJ+7&# O[sρsN;wκ6=~`5cRQu}00h"`SD4Os?9GwÓ;V|!S_\ ׆`ZڂjH)MH"\bי(W9[;›_(s LjtD|8/,!Rܥ,I܇ӰXc)ݏD4%@+6k O dr4<3bꪪv/N\N8PDRTYAU!`hxr˅bk !^[! P1Z=>=?>@Q @ qb%}{rwm [o?v-/h{`JE<*ȋΝpzghps2;lwz['@Ky>5'791}V}?7oA׻ C^Q+vww}d BV" 81 >Ó;B>2fg8|'3-N08nܟ }tD c4&dNPL)12yUt7^B9 LU45:#O izvO \G@ѤP2(%XE`- ȡapz0SpC~? De0W7.VK?hH0ck*ʬf32]Q2e#5+oF48|_?Y’} 8nʸ{1{V * y`'MSR`eWr iʬKAoɀ{u`U1Lgld)z { `?$b\%f؃f2c컠`]>sovZtAp\.X1]ЯQĖIL6v+qMYC _E LB@/V$GLbNԺX0{I4#4"//r=wy u4@m\jyԈogݳ3 DA-Cۖt+a jJ&GIA,#TLs_\ tRX fm$ݓbx݂~9,i ;T#e8Q.kӌgTQRŢ8dqHKI4 }Gy9<E",B ("KtZJ[J쓩`yD[&/Gs9Jغ'u0)fZc; oj9tltL#YtCIJtXƢJי i[C>ZZzo?wfD] P!egIQz"`C<̪.&u,BTE e>|>e.,Q?{kUw j:¥gT&@HQi9uھ4:2*0\2Jmr{dn_539xcj@P]2c(WӤBx$u0XO r[rfP?ꐾ!Z6FXHZ\v:v0fHbX R=WNhx2'^9qS|b=WUS&EN>#2 0SV]=W&9Ihsozc1xH/r9JTR5P-z7Ԡz2ACù'zXK56oiͮ<anb@4 ߣ$^ Owy>u8X 3CՆw}Qэ3:Rӊ h$CX].Չ-_IU}5$~s ?̍ԐUtY שh*%]_o9n,2au0tmIquc ~ح.밅ztBMyg=@B]T UϦ LOoDK^Ԗƒ-8`>?<.wF'TW7g8L%h=4sr7\%tleAIi8lQulgw2R,V]@GK3ң`};'TczB5b'MOѡ8ez0ݘkڗS}a;kB%d1Y-GCpv@A]PĄ)L z5\9pTsInuiȷ>X.L1,7b1C^؈ƨ:ޛ!(f&K&fckiW$t{}b#XGRwf15黳3:_(TfEj*Pڼ,}|k<-f30+[#8%2({Ywz-Z-G>LF'ys! f1mȺ5bL|:UMRSOU(p65Sh!XD1#BUBTzntA8E|{}D7ovv-}_u>8 z=v}JNh= r>'}n54 c9CS>,R2KƜܥ=DJܫj d6Ȳp3^W9˶ܰ(֟h/ M >p+ql.ߠ4c!?7Oeg-#t`<<Єd1 I1ga lsj|e,if(Fa%J0ߌ(UhvBw&LY~cnw漭sXl l``b\\ 讃͋< `'q`j˻s~U춗,x*BY5V Nu^W/ku:>$PQ$%܎~~QC0Dn^}/z<<nE{..}68y|>;v)`6Ԕ*H"7vU84-eS1RT i>Z8xxEAAR&iCz]nf %ЉҕIPᡌ}= 1EYkuc!x2S tb}[d2) dc/2DH*IHٮ#ᆏd:*[kgO7wl,ʱ}QtoEiAQRa{\jЗ<EP8M]gdD*oqDq&g2}~s|5Z3sRTɧmzaG6GS! H"4n4uǻ#||nIhA谚L.VtȨѦ0LR|(!&il{CcyA$y qR2bp`ahvc?؞!/E(=p~˧3(kZztˋK$PqA#9nT皚@0"T6dfA7e9?\ղpqϕ]Hn,8t&]rAQUWn;#Wyӎ@fBb߁1.8@8Q{IK^Jd':EVE c4r/EY4 lX.L6Qxw-pw&0"?jŻ^G.lZ@ n w{ƍ)5L!Q}/@:hO  Qz:ZZF;8YmCle4hPLSjOgqINN.\; B p8m0i+,LڂzR%9:\J pm@õΒp+#~qvqs2 pNƑ:Dm>xq|Ql2"*$咴^7i ܻYHԜ8fhbۍچl= \ FJW8jAƘa*PBx8߽W/;T+&e2^t<~|nY̶zf6F5$WGdD&zp!wu[W:b~6c[8p91,z(~Q ʢl)dD]nDDt׃«Ԫ3skmq"o->*͌$QGI _74 ~#C)+͋ >bRT1uN.YXSPǥpH^IoGⱝ!q03 f+zEA8I$H=Z$pSL*9!Mypie'p1h)|\~OcM pW*G" k| ԃ[gt,)8meeyT~l2MiBZ*+͒QuIVѫx #mb iW<._}oo{A taU7ċY1}YEV{qVF~,b:X 5(>=SZp[j%͑8@b JIeG`b9Unk'$ t4Y30S-|{~ ߶O]=*-N!/;8)*PT{2OpFH% |ETW3Y`֐v.$|H76I%5|I!`=aMr抇 E_FsD-8(_.h+sbP `z6$(4SR. nn1iDV\L" @/ čŧ _J]>_FlKwj]3 9#9jʵ i6 2%DL5YEhLA+.):i2?ƗS vNw `;bqI.~1xwO `{ۿ{VlU׎A{6&1ӷ1ANLWZduFЂiT\rʼ6EGLۥϬ0ڿ0:;i/OzFu1kE)$Sƌ93 N206n& )dw5,ϒ!pd}bmdCY˃,ŒfW_ky~:SuSr@r!LH.ֿ "7ADF(fg7(V۞^O{88a|n:ٚ<.o P6o/CK= 7Fe aRkGs*uSũAƌaSrKI)߀Lg/D@=Y=IȐdC__q6{F"M7^I{(wOMr^3 < nTZUkM{Cj\@ܡudHSL$x*7/qJ!?u"}u`guLfg/ԔuᨱҧY2P[ 90/m=@6rtfq/.HpxHLg fW=,=?{ܳ=? 5hݝE}(g@K$,B\}~VUH 6U z}wZg%vpK%c%Wbi\G 2 ENz4 "11S/c[~$:U=F"Hm88 i [7_pzay%Z"YQd=:O<Ap7uܦƋCLMfp%mT4Y3' 焿IdX͎s (ef` xr@/CU_ρ<:š6)A-$S9],Od,/ ؊RVb}k\m%1?cF Ϳi1-QG) v'@Ȩ'ѥwcks3ɇngCI/$25:aԧ'ں WU^E6C7|`Vp3HYF(kѝsH~S9hA 6/gcCӦWOm1`tj=SZ_W$0?ae2^Hs22Y(Ӯ!Gnz;Pͦc]1Gy!38W[Tv+}$! g~&Chl"ꈸF˞ScsCnb+pl5]#j )gp1 Zn*Ċxf$< JW%@sRQ(/YC# ̓P(0(b5pfw;PvbpuKr~fc5ױYLiQʩӔh$b?$5z~N$8(tQ0ޱnZ* .˷-_lopd}2 UbaRKzW#wShd-bT-Ff^v_`Ts"'_yq{x^F)ʧtlkߋeaqڧ C,.ۤ٘<"+qH0@ahO/)gU)-Կ`Ͷď:n~6tVf^z҃s|TiQ*JaWx/Npy=nu{[OcIDT-=HJ">*>CU#-N:RnW4b9c1NX~YZ bʚR[J*zQKac =;ЃV4w { :bkJ?rOq[NVQV.iZҞ ݶz9TˀPE6 n5z$S3:ʉSaq_ՍA[xnM u{,i[95-ҟvx(T-:fSƶ¥i YCH79E2`&p65kuYߩ s1h#ԧK5un rHZu7SBF< )p8}ܵ(aua"R1o}6$ aʜZJ1qۯ8o)&[qG db}~H,P8eT )44"n+jR2CP#w:l܄𞚏Z[perzt>tB T:b,Q<1d(SbiQZF` L ݨPZ©"OoLQnb xQ~x`Ip  % |W$S8s 9hv~&j+=zl҅ij0ep뎁 9'( ! skSJw; bH_-[uQ붘< l]@3s0t/t/zpumq|Y٧~_ow/Uw[)l 64X84i' KKlh]ce{w9lokLQX|_6ՌMD!)n^ wgKx{-BizshOz q8NrsIapmrj@:>=Lz:}5zWs.a ^*֡Ij!"dԁ?5T77ʤ8d{{Y8}5#PeNĽ1^!\T%51O?`%T}Tx@&&ݐ Z;i) n6;%T$8e6ZIq873Ǝ͡F~E,j}p`=|%`=&c+JӺemxn;#~ESf]C <uӌM*Ĝ6JWRR2ȐLekse9X16"ẙfK;S 򰳃nH:V'5a~y?b^7w<9QT{q.Nh 3bn$uĚ5 ֯ZIcދ]Ko81["( q'җ3$b+Z~@% 8RKTiyLX.PGfOݚ7E =ޯ$?1/"3b\jŊ"%qa\C̺aF+Fop/`lΧV6#sZ ̳b 9UyZc"1߯HX -fK*;ޛE4}Z2B1/2S!F7 lsWP̳É3pX߅XߐQՅyNaRT*څ)oLԳ@l§KXQb-WXN% )LpE XD8`G^\sm!}q;ObM]l vo ADvoI~oǁ!(20hwu6b3v/86lmdqǭ J6.M9)WrDH=WE ֊J xݚ?\M[h6]~PׯX?O&vAjޟn -J/q峳##HӲBN溑;lRS>Y^S(&` R$}VdK!1qn"bG"` o½AU`p{YX˱庻/h=Lu28t(Uz:x|8ebLT/d!*1Si*hLhZs r0\_J8YɆ.^ hI(ܜv6U`FV͇2u ?dqlhpFgg6|nE@ tTI׮x"^?M.I3*ͼ;{m,cIף_\1}5i&&ٛT䚋3/E~Ki8\ JRō4R[_)1s OqPk˗0xw%6M $a:́*3~XXiˤnK1bdT-kM[ 7zcUBwBM*PWZɗqyl4!@)vYyiVٿBBW4Z=_g2mI&hg 981;30v}< m0Jm/kjq"5%`VOe> fqijK"tjEKSb  ,/WdXq:j+Ճ1ƕﴵ6e7P^Ug_;@7|&m_mA@Ciݸ47zMɇGn f>S+F$}ΰr c qzD/I EY:Tk, b}vzFta\+V(+HQxٹ[3/r{φbdZ08Zq%MvNʵujXflnb!ys!Uu'ĘP.NSZ..p%~٭ؼUdV+,.>Y,ֲצs 8o(X\טʤ*YIkn` #L7UǃAU w_>h9A%&My6^`kDI SѤi6ɠ˯M3K'bƳ)Kjx>;c,-eZFY))[ +\ԙ%ĥ@j̱9/m}芠MKژ,+˓ONTTHPf=}N"L*tU{(Ƚ̈TǾjZ{[)b̖0S-ں+ 0?"ͽ┇œHsc;lY=9[;s&44&!3C`I4Q<]s v<,j۲`c&SG8]Nf TTu @bdIIyjE O }w}zW &`.-ʐ[Qu.PR.iн{U[&D1jxMg3]jEET3tw&}C~Gٹm'6S3Vd=QrBJrpި`\Hq[ɵrHeB$*0;NrtD(]*kUt1h-ij %?VW *H_@R@嵩mՒk'튰qfpqnXz*9UNFXoB~VUL) HG3<hZTFG_CQFZ78鿨y az}UcWzCB# td~5(c~45FCO; oqy1eMh}zԹHحPZ6$$WxՠBCC} mYY8a;Z{4#V."dJ%JQHB4r-$ZXU* Dfa" {AQCR( &kq߹ݧ9}|~|u=ܸ_q7nQu7GE"1|7/KPMg 0x`M D\p DXHACOAlP_ P^)\GtN Fo\hw];e~gnD{P5?PB]Gz4j>Y^/֢D6-wc(1 EprI%zb!d=YF5nYr<}R0.9zB4Řp(/ SҽU_HYE gu^gd^/P o0`aD~ 񫑤6B @P@dzg t4W劐-?B u $I2p5^䬐d{-Ym~oq7 HCbAHۨmOƩ^:,#5H|=Y·l =;{J%OTE:Y@G:v(YH}ʁ-7^귐FvSPCzE"pNS=|2sfaLȄ(&@(Y FSgy^N7#K!;DJሕ.*z5#::HjKRAU:XTR;vtOӍ(¾/Q`)iqyT?F pF \YImIzΗ~wy]*{O9vWB?>9/'ɤLeƊJ)n#D AR+X]ϞԗES=Br u4c!3gN2GP~ds@4T=/ ;Փ:FE3.uQ]9y|sI7}.wL_PbO$"K`OY'ܹAօ,ayޅo/<YO-I4b%}tYը:]NI[휉yC"작 eElxEԨzt]-Q.MoJwtws  M=as'DrH>NSަce%A*!١<e3Dq#ԟI9AiXT07ފvkM|@zYVpOwͤWEӁJUԩt^ t6qlBTO2ɚP{,Q_'Ҥi Bi2ქҨiZZT4?m Ŋ3t@bw.^L[u#c@|ÂBBAS1lZuP u:ơi \Mp2Ċ^dx%*O?9=Ic ^ GWE4j&nF\-qvh& !> ?1xFKـ1t0Ց~"}}D&(7#E NmsD|k]~T~Ixq: L#>Q MjH ~k|>ZcKj=%ަ7WG3ƁK= Ye^0Q gk<_Hx5^W#m^bB>Y|x1}dqi\i^RJ gU{HW]fw r4ױгOxe';9nΝ^C]v(U)D5@f˪ QQZcBPy@]c4魑^AG+;ͮ$oJ$ɣB Ua@)OFK>kG;"ѤG½ODR'X׻ :1)*TʮbExWcΈpTWu3i: z4D[m:g~׺\PwQ5fTZ`,2`Tt4nh: g<2sft2cOlȽwEoGLFx?3h5}S:J+ 8]]uspGt2D3m;PqQlJdϙ\DUdLzzwD$=|/t6w1k)P%校m$WE w {"&gU=3#Q.f:c~DBTLIoQzJ(oҏZ [d=^;hK=˒los, ²A?ݼ>,[~.\dK$9 1l؃zObqyTШB봓G[n,381n(K }XU35Z% )WZ`@OT eFq9iq_ |0,š $`;'oɼ,LBnTfa.aA]uu2Êz\"V i[ǵwQv:eI%)lL(՘:,M&`o#ZFN ]hrRpew5N RFai?t،U&uPAhڜ^l̨=ݼPqvʩ(Cjh=$cqCm<`R)_sIYPnzk`1fT:ۆs PPQasXfW1X͟@]6n0B遈Ix6̇%F|K+e>$Fz1BA`ZvRI*m!.rRiesV.QI *uw4BhCjh@ԁe<<"s>Ȕw"ڢ*c VR'>%DƝ @p9ٌ憨z5b 5jZu6QP/eiWC<%"ʈlbt*GZyu@i9ڌ='"jXpwDqpk8i:rr. d Z]6'XFH݀zzҚ-ԃf9)k1YCJr#l3F4΃6T[?gl>^&LLvfvY2ZA::w^үMs.7^K۠^.14:2"eoT7t N7:{^?}^T]N( \-»4ihJ_i Hƣ)e+ 2 r"1 >QON}ƒ  wo=?YRm6'`YB3!Ъ E 0ȌR29&d=$U.la0*Hg͔PPPXc7+$oZ /{ܔdAfd3[qpy˰:ƴ9rX'0zV;^O\3PJLhqaGY(4pp8v}8Lg׉ZR͊])eM S(G8H+`ti{/Kfl565g>Ԭr&U1' Q#]dx3_DU+fjK1t:ݮz?9RC~0FخsW4_u^Yw5)\ϵ)|mkYkgZӘ]Xk>s.4Rzӕi 0)ޤS[w@uΫѯ׻ڢY=j8|]5)6rbgZ.u~z0̹K¶ӻ~95:Ft<,&i/Zm%X2:Gmi4XP:Ŋ? nB:=kja/{s'}EA pHNӻF4YnHv1%OxDg![hVA8Bπ043Q1 ¿5tgS(X@XY7r9PjnZU$lr.ɡ?ۏ ,?}.b,#؟d x\/T6_(ӖjV6q&†V:LY9fV`+2dGFU<vt>Ñ*~]KGGn҄uŎ; vnd)w37cW}8DtY/sWrp4DŽ(*Eϲ-"P";s]!BSOZ6T^^VŎ;V[ͱ\jXpsLҖvBǾQPxWu9]ԭ %0hu)^koO|w⥃ 6K TI*t#$%K3T|1ތ^hXȉ}Fh:ԗ%`jkӻ;'=N]:(LWHG hBL C!L#+֞pR0&pR5RMfZ7AkRUsP5V׿J7Y D;LbaGl vzAi8Lz/;.:Oj^)Xf1B8܂u Wc&b'z-]78ji-Gla4FQ##?zBO&МLbSs@ήzBJ~zy"U4ոV}H)Kܤ)h*(ɪ"C$WS-n{﫫pQC@Uv*6[§Gsd3G/Oj 5hW(GJE;6k=>l .j2 1ϼ&&vuOqxSx,Ztqn(71LJ3mH1%4 yW)fG.75q<0۽"ڡs5O`5He9m59N2*K cT<߲FgaEPai3TӴZҵsk +%3#[ i.UTSyň֣d"+MeFM~tEMe\fW7O#gkDfbGW#=O:xOOP]\]lc#Ls>h!5֥1 Fg4G|FKb;a&bCG& .+$TDQt Sx!V df'([i>3¿}83/::ܖ{/+O'lpȿJ8k_5mu|5(6BTf(^ TzP ͉d5[ϧs8 ų* *jPaǗB7ա* yJkL<uB(uOv+rIV+hifПf\>7ѭCChpR<U,+z0$XsX Bv(7̜r)-KRSaptf@-|q#2Ƶ/¯"C{ڜ҃QHٸ7Uڠ;ޞt5"}q$$`E}W8L =At>ֶT/la9iN7YĹyq8|~Hgjڒww;V_WX7Gl!`Bd*7Y ^8":bo;iLB׃ĹݽFv%"/)<1o,QUC*i%&z>-Vpn64fΓT{ IUT`iP#QK PguW/eZS-z[\r(CdzyH'#.mnDq57H 6N 1 f[̬G1R)&tmp&pfSМQԿSDQd{s=X @Ճ{mllfSS=Tv䬺ْRD!2[ MsK]>*80pkPl#a8𹪖 hMS]HDSH&)tN(Gvf+bZnwV`R6Z M?XٖڰITرXR&֍بS&r ):MYbJ3 o4а,1k#Qb-cJ)f,2s+h*ʇP4E z)&,p1dKxZQ6arϙՕZc2Jt!雬:}_c?.\gJ&ꅅz]V{*VmIoM)b_uŎERQTlMc1- ]&'htB@7қ#h J[YDY.e5?߈Xn5!)F-/#z:u-9IJt{~Ƿ$<Υ 8F"Ew{jAK XJذ$L*{Uqr5-sw\&x=YN$5C{q`>^!]'צytQ7,Dn? HZ NVCLςp6="J"QaR@J[LuCHoK'1im)ٷ;/.ů kPwD\cg7xqmܨ0Aof2+zJl9+10K)k,c脥yxݜ׾hKf|8>|:>qbO"%albgϧ#=M%O݌1s^(NZ9|jielԾ=bhoɍ4ݣ)٘+]'P~wXY\0킶*kc77 >%hbKG4-Σ@B5)JE;QCMKeYdިt8埈8r'bЈ+5M=SQTN #H/##ZS֞Œ34T3g{8OnR>%Pϩo&X:kܚ T 7Ho;ZiiQ:_5 O\ ~%6$5I/;2lCAi49 HzvZo4}CZr? 8mu@Tе"KsXU0q.љ^4$ ȍט-FflKU|)P'AZ/g:"RvP(}әn3!vtL cۺE?[ !22UR5}ršX;:MACD޲5w=ddZ1uur28Xɧ"9r7hu_!M6b {MwV+4op]VcHqXr<6UHϲí#HI`z(rW,EfJ ¹,]Ϙ#\vt8#Vk&Yoɾ4 vڣ3; Ea*ZDxl poi)j_'^=pJ67L3.EvQLޔ1jD-5)D劁0~Fs8^S/ 8[]~8eP9ۅX&):=Su5Z;\M"8M_t\>}I0=\mn\XM_ZclDAl ~mI3\S0Sla,HCL+Y+n-"rzhn 7#4_jrfNZLzʷq2plhnN/oqNwk3ZK8>"."O8i2eP3+纂X0zx9<Kp3ۨ)&XDG\}ˍw\afJλ'4JmQhr])Y*SZ(8'A0s]X*_0z]-ٟs "'7zDOԖO|.#ogm=0#U~qRԽp*t[N HІӖX ""Fcc9x:uޙt,݃]'`ye;{sY'Y7O'>>?\Hnn+I򽴗һm7d~Bm +ᒌw"ַYưXޯWM8uJ {Bc-+owZ*>6-DC]J-U)PT|lĀ™Tw׽HP빻k^ stZڹDQ0]@REB ( Wh0>N|wj0dNo渑Wl r{l52–[K5OD*fMT<@dX> UwQ3;ɫ֫ czgvNi&;C)X6K/Bj4WȇkA};rnl4~CY0wfM5%U@efU:7rQõSOi=R1*tD J@ic;qD;[mp2E^?9$ Nҏ#I?bwa/=c0%"]BlǹDsMEy% Iuu$0PF𷇚]Ho uQ!bE$@#l]Ak9Y*q3vQ>]aḽ֖>)K{kJ2}'77MBB.` ҋ¬D7ڃa&GU~_)6I=r~+/x. w1Oc8Shh%}ӕ0CUd?= +eq%At$SCWWƞZHcjMnmVA W o(<o*jp-3M,@= JDl^s`axec0A-GzL#${ՕEcH)цRkgrU%ӺDIĈ?Ӓ?\7ȭ'B1΢Ð=?뼷 kڎ$}ҕNs 0[G uPW[ ܫ@0GK Pǻt 6z!@uYR2q [J!g =9ؑ>@yv0-K=_i WqX,cQ$X+c>iO'\iM|OuXPuj sMSuf[}Lwf,.Iɪg4$ Pk$SH@$o4  \5FKN>ާNA,Kg*zj\ nbBFA|{ĽAO%i=$NK\BRUyXR^,bSJP҄p3qn#NP}ZdLr;~~a#QƒȰ% wqB@`ֹB͕x?OAj]%O[[z>KoM?va' ͻ,IHxá˱˝4ǟ(2]ʃB8W?ovgOyHJO>1Nm9Eu՜kAJEK;00[_b2ͦő`*w"* nHHT`y3ڹp'0vfNtTE*a1o&|OA Z7µ[- zD>l&5^aݏq)հH3'n] %h/ަ%296Gs0CɬT= ƫG^R܈qVW3h@vÑEFmǂ194 XQJixs{u?%vBϟCc9SG*\8.+*2Zt&/dUb UkTxMJ9?[wyO`\P 0m)9 خ.3JP9y9ېiI:*2ho'MԍE8um`LxPTI a`xz,PlOO9F cu#e4rdJ`%` i` R _'8]=G`'~Ҙ' 3/ p5( i3Sݖ{w]/VٱDAW\}cv IЅx*GshH~ʃZ3Mi}kFkG@!8<fh^4ja”Ӽ;fXLt _\]t}_3cK԰m1@N*֚{+.G4~u˜Y:VVL5~Eofq55NpՌ*[&O&ۯ۪=lg&j–& k9 "G^;U3(<DӬ TʮuwQJiIU-6?QF7e`ErVy̺׮̉>rOr3,fs#]=j2BH-lj5x]|pyϧSq )2z,`$>]A;Pf@T5%7J& mӫF2講HXQ=UPIP(ڬ+jK"'.Qsx@YGw30nB/1eU,8B ma-}иJP4tJu9댤/Io C,j &RN|Նj0eF4< ApRM+qÉSY u3v[5|J` 3`3:h2p]o.h˾Hz744VGX?JvRurjU5.a%nk[QQY8؆w/v.Uˠ :-0*o+R4G¡rplt[=AMݨ@ /}6y#OOGϪ!+z@֋DQqj8{Ƭ@+"]uRQRmSֲ4H(A²nqtnOuMWEN)P)'|pN*p`YI^#-t h7CzI,j$#$.W= FK\;^U.lqnj! )eTAnU7׵P#GH,bLO؋p]iH~MN:陭84x¶DWDzܱG~BGcd0zZd"-)y2I…$z!S&Z^֡![K5zOXܚZfT+pnԵEJ^MK+v1aKuV`Ԕ˺lz`Mczܻ\=R5 p-@}D8i'5ꎠ$z~UpmaMVK%RnmI4Ks~AF ý3̴SoSumPzmt1qp墚ĩUDĤWm*&H^VJ{NMoaa1BjV\0UA\}U\煸~ 05,I^)]dAQ?={fXZ Uv-1v @q]ZaTC,Νfl/|'7?u^7Yz<ܭnC~9O2AaG"g? }M]ϭ?!!i1cZXy] JFQSg%>b%H?[=٣uux8C\͹:K%IK?΢Ϋ0u9g>m7o=-io_XI͛ pa:s0jN>*QWVϐuQto#dP)[zUʑؽ!*W4,|cӫ;ƈH7W@G.H){},Eٚh 2|^' 1= j)rBwSN t,i5)IXJߚ] YZT.MI'WF\Q)FJN}qۂQa^HyΰF4 +b%ȍIWJ]Ogզ8yLH.߅ )ʤ%VML-cD܆ zeK2L-eR˂>`a戙#/&7๞:^f=NjjWobv;S:z,z ZfK^JPoPm'!U1miza sVԴ#Bs M7.rԀS?m ۦInF$g^ >%bq2 O Yyj5&f傲ԿTm ߸ ~~&?2h/Ll+'Ȩ,Pk5r̒ks..|H GU> pxNΒ,.&DžPَ*Ye44886\(:$NW eM5*Wc"5JV)( 3֊7'k+e-%Mr)*GŞ VJO_ \PH>BC<\{$YY;˲޻=53]}OWM/0z/&q `bF%?h4w%5NH$.c\ (1Xpĸ}ԳޚwVwOW=ܞ9>雗us7oݼ4go8z׏zl< hw<oo#s89[f%Z։luΪj6kvBO庵l!A;O'ӗt֜ YZ()kz/?oOYP@ 诤@n^z;w^4Fx0Y4{T8͆i,gl؈JVg'%fY@d\R$\2M8>  n:ܷeHHiSSB5@hh4Mft<֚"uVp%d*J P*3-06TߟJVT0Xcx2 (Mg?%5E T׀+ E_\w"tj. JHLz+kSC}iP#j9A.Z+"k\+ ?0 fLo` jP5 T×Bh;_ _H ' {?oq^IpE[~d;UF >ko !䁂A/Hʼ,S$9 3aˍX=Ll89/]6 0#@Sh ~6)ςWzKRc0lGlԋHFK.Q<w$A8W}T0B\ή<| _@s7=w8>R}* 7ۋ86Ox8ؚvvZ |̈́b )t{PJR'! r:vK W@}mǀt<Dᄠ\@R#&4Q 6Yp}LWpRfpI<j=Rirjs15Ր*:b]XD-R$ UB}2 T 'P!wzGJB$TIk +02GRpQ_OfqANfc5x8{FP)2B( ^`Q/<eB @~(s)TZ _K%Z4|cGn1xb&4x.SsD'$&' $ү"f'p}EFQoT@FbUͤU@}K_T` !p_,Z#D/=%ad6҂05P ʫ06}}k1 hmJ<I"R ϵr 1Tw,sTP_A uuNc[A+Ӯ8(ID^SV!m}RmJ^gkT_\(/ė>*lot>."03%;=`1b.N@1n$C I*1 ̇S1:N?Rab PQ 6ZO W )6W OHԊ̥sSOz4p>`ZIw\MG`}}(_nZ5LlH4J`e%2- n@N\r,2byÊ$[YDms9*Hr"BMM{8pIu| e[ 4-sJqQ1Pߏw R!p`L.R.[auCa*Kђ KCghc ̖"_29AN=Dԯ#gRKWXOl70R!ۘZ܃r7pGpx ptl,+-ܱD (Wt\ܹt~F%۩f jooxOLTi2.^5SbIs&xҭ]lf(wh^RA~ dPS= @-\$-BxR*IcW WfK**oD'xǃ]"@ WRPkN_7w"]Tx_w5g g)d4x,N5ˀ*-*.м61AI !ف\,Kգ }QiLSv#x7B)&(ύt e-(HqV@l 'JL!qWhqhz4"~GE p: :lذQ/S c< ?N2t\Ut{$ xl6ҕ@M(cA@fjj*p) .w'vVT/)-̍`>؄8E%bVbF'VH m}ŭ1}@EFa<\h-:I4Yh.J)'"&3uA/!k ;):b)w>DǓ FV ԋ;^+ܩm4TڛP vF祖!@}q!AΦȌ \:u; 43PTE(6C0-`kmCǜC>c:Ӏ"ҷBQ!o]b)@`$mĔkGI%EE`!ULu@b؝|56iI_94M EGI\nb cnQ{@L8_I| )(af Nc*[ +xr@t5_$83NNmlë-url߾W20D<=dGe8fK&|Bu/!Ou` `<Ec+xx05^X8s*YPo/xLV'S7N \v3%8phwL*b@vhf[ .dXLy$++TB\-Տ#DrP\v:Nzu9ͦ٬6fl69ewi+xEcH7d.fk4ѝxk dF+8lk.1IAiiH<_Ywut: $߾~>3h4up90"`6WE(.0w;h:ib-7`T 6DqrId٥>q49>Eӣh~ it4'tp S75Rwhjؒ2|lKFC/aʑf\Yp\$< 1v_eW,&Od3V 6 #IFF}ќVߖ깅)d4Z.֮a͕,ҦyG2 gě"!F͝p8OW62.}TQ9{F Q-nPcn/)`m5AnJ+o4sҠnQ[Me鯠c` HHIV=*'qB*pluQ;/;h#x/8ߧ¹ٕ.'8}7`XGOK=%.8] KՕ)ókB8*+cuEey&[hPgqдo{wK9s -н4 8EK02J8f8 HفЪ=y,_;;>>`>B>U0ћ.Mպ+\i\#b+Ңa#ù+;RZ[շH@/4}؄14ܨѓ/Bx '}Z倇r7+ \:U.-L${ dqwW `9)N:UOLo8U?EH]PMm[LG^.CPTwQnȩ H%vnjGt;ۧ3[)`<-ҬO[A55q0Xڲ#qB =ӁDw|`߹|]p]'VvS並ُ}:ۨ3!cNv.Fr**Y&h6T6R'LH6K Gj3n<z0ŧ@p#c=MP0q q=RsE91MSh<[jSOmT~]pݑ/dαW>-:g:6:.E셧nuGFMjv&%c"vdz77d\ւ[z(D+wJUw]T]=V]e\#پqVss|лHk^y #)5;?BWcegswy|$*,.14:AILNQY]aeku~ &*,59=ELX\^cemqu~#)/68:>@FYfou})+19=@FIPTYciqw|).14?CEGL_ptx !)0GZ`} "(27:CENVX\^begjv{~ )/8<BFQU^fy    $ ' / 4 9 < @ M V f k r v      " ) + / ; ? C F J P V Z f n s ~       ' ) , 5 8 = A G J L ^ b e g k p s z |   & * 2 4 : @ J O T W Y ^ a c f i r {      $ & , 3 < G J N T Y e g q s #'),4:>EIKOVbin{ 149?CFLNPT_dfikprtx|"&,/246>AFL_jlx !$),16<?BKMO^bglsvy{.59=CLN^cfhnrtw'8?EH]dgitw   #%+/=DIXlpsv~ $0268CFKRVYcgiqv}&(4:<@CEILOQTX\acilr~-07;CEIPRUY]hu  "%(*/4;ADJMX^chox!*-14?GRTV]`giltw} "&*8<E_eilu| )/=EILOUY\`cfmq~ '-17<RW[cfosx #&*7EKNPR\gir  (07:BJMQekpv (039ADFKMQ_eou|   ! % , 1 8 ; B N V X i q s w { ~ !!!!!!#!&!+!3!8!F!R!T!W!Z!g!m!p!v!|!!!!!!!!!!!!!!!!!!!!!"""""%")"-":"="@"J"M"S"^"b"o"{""""""""""""""""""""""""""## #####0#3#7#B#E#K#N#U#X#Z#a#g#k#t#w#y###################$$$$!$&$($1$;$?$C$G$I$L$R$W$Z$g$j$n$r$$$$$$$$$$$$$$$$$$$%%%%(%4%8%>%@%E%M%Q%X%[%e%g%o%v%x%{%%%%%%%%%%%%%%%%%%%%%% &&&'&)&+&.&6&:&D&M&Y&g&i&v&{&&&&&&&&&&&&&&&&&&&&&&&'''''$'/'='B'D'G'J'O'S'U'X'Z'\'a'f'h'k'p'y''''''''''''''''''''''''''( ( (((#(0(2(4(=(@(G(K(O(Q(W([(`(c(g(j(l(p(t(v(x({(}((((((((((((((((((((((((()) ) ))))) )#)&)-)3)6)8)=)C)J)S)W)[)g)n)p)s)z)))))))))))))))))))))))****!*'*+*/*<*E*Q*S*Y*[*d*j*o*}******************++ ++++$+(+++3+5+7+<+C+G+N+S+U+^+e+j+o+w+z+|++++++++++++++++++++++++++,,,,$,),0,6,C,G,K,O,T,V,_,f,k,o,w,y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-- -,-3-:-=-?-A-D-H-N-Q-\-a-e-p-s-{------------------------...... .-.0.9.;.@.G.K.S.X._.d.j.l.q.u.w.y........................// / ////&/)/-/:/=/?/F/J/M/P/X/^/d/k/o/r////////////////////0000"0+0.000206080;0I0R0V0Y0d0j0q0t0x0000000000000000000000111#1%131C1H1K1P1R1Y1a1h1k1m1r1v1}111111111111111112 2 2222222#2(2+2124262:2>2@2B2E2K2N2P2S2W2b2i2k2t2w2{222222222222222222223 33!3%3+3-363C3G3K3N3P3Y3[3a3k3s3v333333333333333333333333444444"4'4/46494A4D4G4Q4S4X4c4l4r4x4z4|44444444444444444444 55 5(5.5054585@5C5H5K5X5b5e5r5w5z55555555555555555555555555666666#6&6(6*61656;6@6G6I6K6N6R6U6Y6^6b6k6n6r6}6666666666666666666677 777%7(717A7D7O7S7b7g7l7p7s7v7{7}777777777777777788&8,8.818C8H8L8Q8W8Y8g8m8t8{88888888888888888899 9 999999 9)9/929;9?9F9O9V9h9j9o9v9x9~99999999999999999999:::::":&:):-:/:;:M:T:W:[:a:d:h:l:q:w:z:}:::::::::::::::::::::::::::;; ;#;4;6;9;<;A;J;L;O;X;];m;u;x;{;;;;;;;;;;;;;;;;;;<< <<<<%<+<5<:<=<A<F<N<T<Z<e<i<l<q<t<w<}<<<<<<<<<<<<<<<<<<<<<<<<=======#=(=4=9=@=B=F=I=K=N=W=[=c=n=z=~====================>>>>>>$>&>*>/>:><>@>G>J>N>Q>T>W>`>d>i>m>q>w>>>>>>>>>>>>>>>>>>>>>>? ??$?+?-?5?:?DODVD^DcDDDDDDDDDDDDDDDDDDDDDDEE EE&E2E;E>EEEIELEPEXE`EcEiEyE|EEEEEEEEEEEEEEEEEEEEFF FFFFFF%F+F/F1F5F:F>FAFKFMFTFWF[F^FdFlF|FFFFFFFFFFFFFFFFFFFFFFFFFFF G GGGGGG G&G/G;G>GAGCGIGLGUGYGeGjGmGGGGGGGGGGGGGGGGGGGGGHHHHH#H%H:H?HEHLHPH\H_HdHkHmHpHrHuH|HHHHHHHHHHHHHHHHHHHHHHHII IIIII*I1I;IBIEIIIMISI^IhIkIwIzIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJ"J+J-JDJIJNJQJTJWJmJuJJJJJJJJJJJJJJJJJJJJJKK K KKK K'K)K7K=KKKTKVKXK]KgKiKtKxK{KKKKKKKKKKKKKKKKKKKKKKKKKLL LLLLL$L.L4L7L9LOLXLcLgLlLwLLLLLLLLLLLLLLLLLLLLLL M MMM!M#M)M.M3M6M9M;M=MFMUMXM]McMgMkMpMtM|MMMMMMMMMMMMMNN NNNNN(N-N3N8N:NENKNNNbNeNhNrNNNNNNNNNNNNNNNNNNNNNNNOO O OOOO!O&O-O/O7O:OEOKOVO\O^OaOdOpOxO|OOOOOOOOOOOOOOOOOOOOOOOOOOP PPPP*P3P5P7P;PEPKPXPaPdPjPqPvP{P}PPPPPPPPPPPPPPPPPPPPQQ QQQQQQ)Q3QQDQGQJQZQnQwQzQQQQQQQQQQQQQQQQQQQQRR$R&R1R@RJRRRTRWR]R`RfRoRvRRRRRRRRRRRRRRSSSS SSS7S9S=SOSQS]SpSsSwSSSSSSSSSSSSSSSSSSST TTTT*T/T3T9T;T?TFTJTPTRTUTWT\TaTmTqTxT}TTTTTTTTTTTTTTTTTTTUU UUU U"U%U.U;U=UCUQUTUWU[UdUgUiUnUqUsU~UUUUUUUUUUUUUUUUUUUUUUVV V VVVV$V)V1V5VAVIVLVNVTVWVZV`VhVlVpVrVvVxV{V~VVVVVVVVVVVVVVVVVVVVVVVWW WWWWW-W4W6W>W@WFWIWOWRWTW]WjWoWrWuWxWzWWWWWWWWWWWWWWWWWWWWWXX XXXX$X&X-X1X5X;X?XBXDXKXPXVXdXnXqXvXyX{XXXXXXXXXXXXXXXXXXXXXY YYYYY(Y,Y0Y2Y5Y7YcHcKcVcZc`cbcdcicucwczc}cccccccccccccccccccccd d dd d#d%d.d3d7d;d?dEdHdLdRdTdYd]dsdyd}ddddddddddddddddddddddddddddeeeeee#e)e3e5e7e;eHeKeMeQe]e_ecegejemeqetewe|eeeeeeeeeeeeeeeeeeeeeeeeeefffff"f%f,f.f5fAfGfPfTfbfkfrfufyfffffffffffffffffffffffffffggg gggg!g%g.g2g;gEgLgTgWg^gdgggiglgtgvg{gggggggggggggggggggggghhhh(h2h6h:h?hBhIhOhVhZh^hahghihkhnhthvhhhhhhhhhhhhhhhhhhhhhhhhhhhi iiii(i,i;i=i?iIiLiRiTiXiZi]i_ifiliqisiiiiiiiiiiiiiiiiiiiiiij jjjjjj!j(j0j;j?jDjOjQjZj]j_jdjpj}jjjjjjjjjjjjjjjjkk kkk!k'k)k.k0k9k@kOkTkWk^k`kjknkxk|kkkkkkkkkkkkkkkkkkkkkkkl lllll$l+l-l3l8lGlLlOlRldlmlwlzlllllllllllllllllllllllllmmmmmm!m&m2m6mmEmLmPmRmZm]mamhmpmvmmmmmmmmmmmmmmmmmmmnnnnnnn#n(n+n/n4ntAtFtNt_tbtetgtktptrtttttttttttttttu uu"u(u.u?uEuLuPuRuUuWu\ueuguluwu{uuuuuuuuuuuuuuuuuuuuuuvv"v+v8v{M{X{[{]{f{r{u{{{{{{{{{{{{{{{{{{{{{{{{{{{ |||| |&|.|4|8|<|B|E|I|N|c|q|z|||||||||||||||||||||||||| }}}}}"}1}7}B}Q}S}W}Z}_}c}}}}}}}}}}}}}}}}}}}}}}}}~~ ~~~~%~+~0~4~;~>~A~E~W~Y~b~f~h~k~t~w~~~~~~~~~~~~~~~~~ "(.ADILSVbjs| $'<FINPV[^bnsv~€ĀȀ΀рӀ׀܀ "').79;@CFHLQTVZ]bejnpv{ˁف߁ '.4:DFKQT\esv{Ƃɂ͂Ђӂׂڂ"9<@E`lruyăσփڃ!%(.9;>BDNScgɄ˄фԄ߄ "$+/57<LPRU\^behty…ȅʅ̅΅ԅׅ߅,.0:<?KQ\aeprtv~Ćцۆ  "$'/79<DMPS_x{‡ćӇևه69?HTbkrvzȈ͈ЈՈ)4:=EJMPUWdlxljԉى $&/13:BFPVgkptzÊȊʊ̊ҊԊڊ܊ %(18>FKPRVbfhlpz‹ŋɋ̋ҋԋ׋%+-/;LOY\ejmszÌƌˌٌ͌ߌ )-579ACGKUY^`ew{ōɍ΍֍ڍݍ$.47DFKRUX[^aimpw "&)/AEGLT\^aflnxҏԏ؏ #%+-37<?NRbnz͐ #)7KOTZaegirtw{őǑޑ"%(/17<ACFIKNQXbdk{~ƒҒْ $'*,05=BGV^fu“ȓ̓ޓ$',03=CFSVakmrvy̔Ԕٔܔ ')17EGTXchkmquwyƕ̕ϕҕؕەߕ "'-49<BMRY]`dknu~Öɖ˖іז %79;FHOSU[_knpv{ɗїݗ !#&146;EIPRZcgqx}˜Ƙ̘ΘӘۘ$&36=EW[^`celptvÙƙә -59;@FLX\_einsvΚښݚ $&,/4>ACEMOUWbqw{ʛћ՛؛ +.;>CFKQY[dhmosvy}ʜ͜Ԝ؜ߜ $&(+/279CEGQUdhkmsv|Ýŝɝӝߝ *4=AFHU]`sux}ƞ͞Ϟ֞ !#ADHMRV[gnrßǟɟ̟Пٟ֟۟%')258;@BEJPY\bdhqzɠѠ֠ܠ &-359HKQn}ášءܡ &(39=?BDLSUXaejtxŢɢ̢Т֢ۢޢ !%'*-6;?ACLVZ]_rx£ţȣУգ %/24;@LQY\bru¤ƤʤҤդܤޤ $<NZdgin~ĥƥʥޥ  *.15?DPRWY^afmz¦Ǧ˦ΦЦҦڦ !&169BGTZcntxŧȧ˧ϧۧ %(04=CMQ[afhpvzŨǨѨب%(*-58:>LOSX^`finpw{}թ ",2:?P_adhkm{~ǪӪتݪ !$)?GJ[fhu}ƫɫ̫իݫ  ,2579AILRVY\fpvxz|ìʬ̬լ%(5=@BMVenqyĭɭԭ٭$'?ELQ]dkqv~ƮϮѮܮ $')/68<CIKNTX]dhr~ԯޯ "'*28;>AJPbivŰ˰ΰѰ !$'+6>JQkvz}ñбұԱٱޱ &,27>CJMORVacehpsvزڲ!$/1?AFRVaceiqswųdzʳγгڳݳ #%'-09=EIMOT_pu}Ŵ̴ߴ  "(-<@CKMUY[fmrw{ɵ̵εеԵڵ%(*-03=@CRY\`ku{ĶͶ϶۶޶ &*16?BDHS\flvȷϷܷ $.5BLNRY[]fkt¸ɸ̸ѸԸ۸ !*379AELTV^fi}Ĺǹ̹Ϲѹڹ =T[agjrtwyȺպٺݺ"%,04>BLNSUajw}лջ '8<BHLScjsyɼмؼܼ "&)8BDIKNS^ahlw|̽Ͻֽٽݽ !(.>AGJRWadilnrϾҾھ  +-1<>@KSUW[cfkzĿƿ̿ҿ ').7;ACKPYaekuw{ #(,.04@BGJOS[]bdgilorv~  $'0BGKRTXacfrt|  #*0379=?AOQU_ceilt| +-26IM\dfjlq{} '-35?ADILORjlo $)/3@OTdux|#+05FJNVZlnru  '.38;F]`fms}  #7;DFPTV_otw "*-3?DQW_adilnpty ',068<IKQT\dk{ !#&-02BDJMRXZaeglx%.058MR[sz}  #%,2;>CRZ]`nqw~ $*0369=@BVY^fsw{*-/25:ACGNS[`eimu{"*-6BO\eiorv|  *-8BKRWYcgnvz #*.357?BGPZbmu %+.036?CFMQY[]`eo{ "&2BEJSYhkor|  -03=@IKMOhosz $37=?IMO`cf{ &*1;@EIQdmw #(-2IKOUX\^cjm#'+147:EGKNWZ_djru| !'*;?CGNSVX^fhmrx~#+.247>GOQS\bf|#%(,.5AJPXeorw| "+1<?MPUbeimv%)-46AGJRUWZcfjz '+.:<EHKMVZ^aey#169AKRWcgu{.379=ADRU]_nry~ !)-09?HNZclp|~ !-24FHOVZceguy{ !#'*.@CNSXbgoqz| #%+-16BFN[bhjlnpwz !#(*.1:<BFKNZct -58:CEORVY]`cfjmpz  %(09HJORTXZ`ceiuz}#(?LUW^bgkprtv~!$&/>@FJNYioqw~ (+.09;FHLNQXZ]jmz #%)0479;BMOQ[chjp  *.7KPR]cgrw +6DHKQZacfmqu  $&07FKTW\dirv{}$&(.1:?HRV]adoy #%)-/7:>CFNSWY\^belt|  "$)/;@CEOTV`emrx{  "(+:DLQU\_cfip),/8=?BTY^bfhntv| $',/8=DL[beikmtz~ &)/;M^duz|~ #%,/358>@BGMQSV[]_esuz,7:<@BJTW[hlv~ -4:=@NPR_du{~ $-46=?IOU]agx&*-3=@EIPVY^bhm ",468:=?CHNSZbdhq| %*47ASY\ahlrz "')-04:>BHNQcho #*1:AJMVZ]`cfipsx )268=AOW[^diz}  &);?DLQTX[lw{ #&-47BJNQSZ_djlqsy} "%')6JTX_hluy|'.05:?AFJMRVY[`cgorvx| (5<CGQV[^cmuz~+02;@H]_bflqtvy~ #'03:>@BHMPUX[^adk~    1 5 : G I R V c l q                          " & ( / 1 4 : = @ G I N V [ ` e p                  * - 0 ; @ C E I O T W ] _ r { ~                          / C K Q T Y \ i n s v }                            $ , . 4 6 8 > F O b g l y                        "$',.38DGKO[blx%-25>CHNTVXZ\_nqvx "(-579COTY]ahjlqsuz~ ',.=Cbegjot|  &39=@LQTX]agouw&5:=KWY^ap /14=GLORV\`ceiksw !+-3:?JNSWY_ehmsuw|!$*-5<@NS\cfhmpw .29AHLUY]egpsuwz&*/28@DGJPTX_o <GISW\`hmw!(+.3>@IKMQ[]agmu ,4=HJOQUWY[dhknvz  "'*-269<CIZ^ipty|'-137;HLOQUhrux| (.03ACUY\_fhju| !$+1:AHWZ_q       ( * - < B Y _ a m t | ~                       !!!+!1!=!F!R!Z!^!`!c!g!i!w!|!~!!!!!!!!!!!!!!!!!!!!!!" " "" ")"4"7"<">"@"D"F"N"Q"\"`"h"o"q"y"""""""""""""""""""""""""## # ###"#(#/#2#:#D#I#M#O#T#X#b#f#k#m#t##########################$$ $$$#$/$1$8$@$I$M$R$Y$a$d$h$p$r$x$|$~$$$$$$$$$$$$$$$$$$$$%% %%%$%&%,%.%4%<%B%H%W%[%]%`%g%k%o%q%s%x%%%%%%%%%%%%%%%%%%%%%%%%& &&&&!&%&(&,&E&I&M&W&^&c&i&r&u&|&~&&&&&&&&&&&&&&&&&&&'''('1'<'>'G'Q'S'X'^'h'{''''''''''''''''''''((*(-(4(=(@(F(P(T(X(b(e(i(n(q(u(((((((((((((((((() ))))9)>)B)D)V)Z)`)m)q)u)})))))))))))))))))))))))))* ****#*)*,*2*5*7*>*@*M*P*V*Y*[*^*a*h*k*p*{***********************+ ++#+'+3+9+J+N+R+T+Z+`+h+u+w++++++++++++++++++++++++,,,,,,!,',+,5,:,>,@,F,L,X,Z,^,h,m,u,y,~,,,,,,,,,,,,,,,,- ----#-&-)-+-5-O-R-b-d-k-t-y----------------. .".).,./.9.=.E.K.T.[.b.e.o.v.{..................../ ////!/(/*/,/./:/C/F/M/Q/Z/a/c/f/t/y/////////////////////////0 0 000/02070A0G0N0`0d0n0v000000000000000000000011 11(1,1/13191<1?1H1V1Y1]1_1b1o1t11111111111111111111112222!27292C2F2J2N2Y2`2e2h2k2s2y222222222222222233333#3+3.303;3@3J3Z3^3a3d3v3|3333333333333333333333334 444&4)4?4B4E4I4Q4U4X4[4b4d4f4p44444444444444444444444444455 5555!5#5+525D5H5M5O5U5W5Z5w5z555555555555555555555666 6 66"6'6*6.6:6F6J6O6^6a6q6s6v6~666666666666666666777 77 7#7)7.7376797D7U7_7j7n7z7}77777777777777777777888 8 888+8.808G8L8Q8Y8^8l8y8|88888888888888888888889 999$9(9/979C9H9J9L9P9U9\9`9f9r9v99999999999999999999:: ::: :$:+:3:7:=:@:E:H:S:V:^:`:c:f:o:q:u:w:z:~:::::::::::::::::::;; ;;;';0;5;8;<;F;J;L;^;f;w;~;;;;;;;;;;;;;;;;;;;;;;;;<< <<<<<)<3<9<=<P<S<\<^<b<e<h<r<y<<<<<<<<<<<<<<<<<<<<<= ====="=-=7=:=>=@=C=E=I=N=_=e=j=p=y======================> >>>>>>%>+>6>8>:>?>K>N>T>^>b>i>k>p>|>>>>>>>>>>>>>>>>>>>>>>>>>? ????!?.?0?6?=?L?Q?S?d?p?s?y?{????????????????????? @@ @)@,@/@1@3@6@A@S@V@Y@^@a@g@i@l@}@@@@@@@@@@@@@@@@@@@@@@@@@AAA AAAAA A"A/A1A4A8A?ACAQATAVAXA]AaAfAhAoAsAuAAAAAAAAAAAAAAABBB BBB/B?BFBOBWB_BbBfBkBtBvByBBBBBBBBBBBBBBBBBB CCCC!C(C*C-C6CZ@ZBZGZIZMZXZ]Z_ZiZzZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[ [#[%[.[2[<[K[`[c[o[t[z[[[[[[[[[[[[[[[[[[\\\\&\/\1\?\A\D\G\J\O\Z\\\_\f\s\\\\\\\\\\\\\\\]]]]]]]]'],]1]4]<]@]D]H]J]N]Q]\]`]i]k]r]v]{]]]]]]]]]]]]]]]]]]]]]]]]^ ^ ^ ^^ ^*^,^0^8^;^N^R^V^Y^[^g^o^^^^^^^^^^^^^^^^^^^^^^^^^^_ __'_)_2_@_P_Y_\_d_k_s_v_______________________`````"`&`*`,`/`3`9`;`=`@`E`I`L`N`V`b`d`j`m`u`|````````````````````a aaa$a'a-a/a4aAaFaPaSaVa[akanarazaaaaaaaaaaaaaaaaaaaaaab bbbb%b8b=bCbEbSb[bbbgbibobrbvb{bbbbbbbbbbbbbbbbbbbbbbbbbbcc cccc c#c*c,c4c>cFcJc\c_chczc|c~ccccccccccccccccccccdddddddd(d+d0d2d7ddEdHdJdOdUd[dhdldpdvdyd{d~dddddddddddddddddddddddee&e2e8e=eAeFeKeOeWeoesexe{e}eeeeeeeeeeeeeeeeeeeeeeeeef fff*f,f9fEfKfOfXf`fkfpfrf{fffffffffffffffffffffffffffggg&g*g-g1g7g?gUgXgbgigngpgtgwg|g~gggggggggggggggggggghh hhhhh&h,h/h2h9hmFmOm`memgmpmym~mmmmmmmmmmmmmmmmmmmmmmmmmn nnn&n(n*n-n4n6n?nDnPnTnXn[n]nhnjnynnnnnnnnnnnnnnnnnnnooooo o-o4o6o:oDoGoPoRoVodofojoooqouozooooooooooooooooooooooopp pppp p$p&p*p-p0p9p>pEpIpMpQpSp`pepkprpwpzp}ppppppppppppppppppppppppqqqqq"q'q+q1q5q:q=q@qCqEqHqOqRqWq]qiqlqqqvq|qqqqqqqqqqqqqqqqqqqqqqqqr rrr$r-r4r7rs@sLsQs\sjsmsqstsvssssssssssssssssssssssssssttttttt!t't/t3t5ttGtMtUtZt\tbtmtptrtxt~tttttttttttttttttttttttttttuu uu,u3u6u;uNuRu]u`ubujumuuuuuuuuuuuuuuuuuuuuuuuuu vvvv"v'v)v2v7v?vAvFvJvLvPvZvbvhvkvovvvyvvvvvvvvvvvvvvvvvvvvvvvvv www#w*w.w0w3w5w9wIwQwVwZw]w_wlwpwyw}wwwwwwwwwwwwwwwwwwwwwxx xxx!x&x)x0x2x=xKxNxfxlxoxrxwxyx~xxxxxxxxxxxxxxxxxxyyy y%y*y/y9y}F}I}K}O}U}_}g}s}{}}}}}}}}}}}}}}}}}}}}}}}}~~ ~~~~ ~$~0~4~8~?~B~I~K~X~\~l~o~{~~~~~~~~~~~~~~~~~~~~~~~~~~%+1DJOcilswz %*=DGIOYhpsv}ʀ΀݀  #169@OYdknqvzƁρՁ؁܁߁!)14;>AHNYgmtyтԂق܂   ".ACNYafhtvǃЃՃۃ #%/?BZ\jnx}Äބ#%',.5<AENV`bei}…ąͅӅڅ݅߅&35:=PUZ_fkos~Ht1 8]<NpͲ  a5#`>evЕhPc3Q# & @gl}R0S,%LɄ81` y H#; x EBH% A3NH LZB *H sB kuxGBt=Pq$tQi@K $t`^F̄& `" - 60pMK/ A߂2˜`XXQa:4H $PTqfǯ2@@ ǜH=>$B1 g1##LOR7I2 0͡"<"Jg5k%|z0}Yi<g F $(:K&#Nv?t P PMas  q10`1 #DX W/@B A@ 0F:cOAk<8dP |G P_  rDc C-ɺ L;p 05$D0; :|>.OrAq44w2 A}&4V(6',Z5:@T -'X@@CB sF`(#! S7X8c "tA* @[0!1 2D4vA4-3tpB4q#2D?[Q2OȨLb!(E&pN u $@t\ 3\C$`9܋'Gw%8H 9d,O8¹ <`0Ӑ0!#ҜܢRN)PDppaLQ}A 3 @# %}y7(ؐ%`@AKEY$p|@@- Q >L"p$\. Wd%jgDa  n2Ou_BmDL/@=MOϤ=" ˗f0 %/I'AK0GaRoF@Pa>Pv$ǥ";oD,;DCCpX˂  Ƒ]C*`EɂPT@d #;J,B|Bux2 /0ADɝț`$s(4("t4` `#@2Ly`A %AP- `\fLIXuq>J"Dt<#~@y';2Fx+bx?F -\ /1j q K" <􍻓rl@@PWPBT90 @HC16`<]q \5cjet- &$I@#rK1s FHDVMmG%t82 PpcآK>< mmH.("8"V!F(#d H/p7im]M,T p2a>b$!w&^x"(j/0C$ 8 L(3ABtC()0x#Ⲁ<rϠCo \G27Yh* J4L ,qV1L#P!Y^$ $N !4(o'&?JhE˝}LD 5D0  S;S[4B@D(0?H zATo)(Q1 I y4p+A.{^ Vx"H3f 1\ŬݬyJ7U@eI2qNQ B+ #`0!L9P ` L4c 0F;³s!# qF0 "ÀÂ0+3(j 2x; (*'8) /94 `@:<@.P":%-33A 9`Lq .)Df\!m!-(7Pn<83L>$ plaD$ <3x9,@0q)jtG'r80YԤb#tk#4/,< 6UD7)c 8˶eKAv1E3"<`D*@&,k ԠXJ*x@}J 3P왘O: S`Yi3H $ $.1ܜQ9 bqCSY8FNML`$N0@AN@3㩽2rME33l"L@_ @2=lg?Z(1 Ȭ`A#@` H1x)1D@* Ь\8kc8\ 0̓*ZhX@$p-!ʌ@0$P%Ҷ+{2D?ÞSLr3 CD3N! O2LGH8/*4m@FP3B!`mD@:#0hD0:&(p4H YĠr!P& 5`X!sEEH͊ L2K`"o 0)FF00Pp.C&F`)/p w v$5A 0k.p B\'`# D .2 4>Og `p#- pOa#4 ‹3@ X x󬄃a0u#"P($8̪,r$ @ ZC)ai$ !Y8(|`Ge=c,RD,  lc[T( O ɥ v̈`oI10z(RO N DG8} 1;y,#D$ | 3= 4Pnkr B<)h $L 6@ }C(1`Ȗ0%hLT02HNp=X/̶qLEQH$3Ó#_2LwrD-}۱044,RCin!SX08H`(H'GDHsfLq:4Ud(3"=[j{-p$BU2C ,񢛁{BP:' ͰgOSMss9b9a@G 0`4*k% uS# 0mҘ%׀TE0, q$/r @ `!$ҏV1tSEL Cd61)ex+ 3A" t4@yaG0AF`pT4Dw Xfc b040bD 5 + C,;-J  -":8jwWCSvɎ$#Y?Q0  ,K]0E;^@ : 3b^ۀ ːi:*@VĪpjA/H0@׀2@9#!-7b1ȐbB&BE8 :gi@r5B( K\ P;HC|'^=p  ٞQTXQf5p8ew0M3#$T ܔA`q8 < [ad$,vpp*_:a!1=|J :/$$iŲ#I\QT!d` 0i_>#81P%}@ ̂?`$pTfS D`r 0Nn oc;RJ|0Fp k$ @9 贂]>p1.$ͻD RK>|E^C 8.  b,nFaLjq@O)@!$Ց*I ` H@ ä8:TS͐4{Ha'4ApR5dTcX";Đ10Z? :YĆˈ!4B 8, 2Jk*p SL+D grIp"o 0]<ܴb4`b51LS @:=& DC@D$r#rPu#X&BKBpH POKGӭqRF<%2&l( TnX 0FXqX$a 8ߋ  t`: (ހ,bbP 50 (  $ 0h`iTH%K4%mr&}up$>0W Nsq Ypn@E0"M|K`G 0HA*@1T˱P߱aPq}4I(# JKG/P"9 @#VB{H[$?A2 @<.P-4 @$l0DF`|Z[H 4Dɬ  3d 4@4-ս' ;{J0`ā` %,4P =F\䠉@@F)Yz ߼$4@\l 0#n04CøHPDװ@KyIS. sg}3SL q p1"JQA)E9CH #X3n 2pH>HJKSp$at)4F.1\nj|$ ҁT3" (QL3< +FR"%2I@'6.8C@,l`(8%oI]0D;*T<̘& a A$ I@H+Y< 3x $n,o]L -TkNƠ5D&."> 34z!R*I>(F4܂ߴ@q#K((@@HbۂJķ?M w4Ë@~ pb(D  ֭F* 2XZƠTѐ<)q֏ը8L48D\|=Wpİ<F H53=I@+ S , -J #>[4G9@y] |yI9# p P-`QpȊG!?(CI3;0č^^0(  b`,h1DN<[Q|0#0$A@WQu@³lai!+2+T <NJA ]@-0VT8p`4Q;WBA7 rEK ӐBhE,B-? p\S0 1 # І :a2x$O O%K *h #'p51*> 0 ɩ%@m9l@M A$ WFL+o7pipC@H + 0<% I,T`pKT/8 R Q ` 1RAz W1D=uC_\p' hH1g#: |*@ax# DQ` ,B4*[K&0 .Ai Q qG) J)ת= ‹] x4? SȰܐQ =aeD @D<<>R `/* @8S`( B ~ɂLNl8ҍh>9Ąe ӳLH`2^cF?Sʱ+pAJ A0sN0/L/:YYH#NY?Dt 1S H8ȇCj PA r1YQ",rDLpHlcBNFhysa`b)DA<"DbtHɁS|`B@΂L]{uQJk$ yp0JBv8?D(#3K)x8$G|DkA`2P4ӰL p,4H[@-P!<+Cc'[&Ly@0A &51 \̄27 >)y 3$1-JWZH/p*kdTR= Yp(c;0@)j,86UH^eA= mW#H&p @@ «0B! -L@ 56G9ʃO+#ݳɗGSȘȊ4<<,Fo5m\kέ*0Bg8C?1$ H8C @I>6 a;h~1@A s< c6k*XbD%}ip{G@<սB3&!Sc<-i$ :qJW>JʐV0r \; _!Ŀ r[!8 @b $D :@ ^DVX;Oj4CǰEjB2*|"0lTEI:Ի 2(Cq@" o> " E G @!0 @l!(gD(/N!P7Qsc0s(/Jx s ÀJHpK1|NxJ* 0BE# rB162uV S3 2y 0aTH<  5 N0 'N1H)~-#&'"g& !%̈́ ᖠc@ :w9CӲВ&w: EbhIr ?$ Ho'=tC<>$ @$HbBM7H>|l 4bčl]t*Ls.(J̐?{8 31RDr\!@M%4,!чc6!B ǰ*ϸUU30 D䕩@ģ a0 k:Ro460j ;D4$3L3L Y"P JO1x3?B亂`$8?G<=Ho3D$0>C[Q/J,`,%P!Ѐ<8/{S[ _@^1,<z;p;eQ0 (O B0\X@]Ұ@1QpJ5Z00 { 0x"=;4$zG0$96ۉP`.#@D K># 2~0@(H``Es@sy  ) 0k? @s p2mAH~98vl, dA$LF/ltɠ6eNMsPhlIw(L9D109Rϡ҅NF]-- ( BqhL̬ן p8hDMĄ2'| lQgHXHLM SXS0!+ #ހ*SHiBzb5pci3@9X'  , c@o68 h 6<=,!F 7`S  ȒC1[G*`+ r$6 sL\4'S 9]d=BA0`ql\(ȁq SefOL@_aԀsDBX OG%9#L2AIC084)}-8U[?,mq2hE`\ɤR>1 |@!<+ B3v|Q1Z`| N 3Ap>[감D NUS; @ <0<1C̀ 1h[<g"YC4`2&Q4b@Jԉ HL$@M|Mjѽ^ h?;g`I0ޘmT]؈1P 03UrnRτu@; :5͖ 'ot>ˎmV @B"7="EC! 0HT1¬ K N0 ϧH= p0dy7LBܽ$A p < "R771b` B2@@|> :QA$J@!+ Jpq`kCdR|ySJSm fesPM9aKF 4 F x?0_dtHˠ.laP Vw<9l^HL:,#uT~1q)= @ =C ?X$ <N霼5``w'=4.&.h@<l uoLӊG8B1qp0@D„ 20A10q,`=ЁS $ ' M(@ C3*JJI C 1 Hs(t l4B~5ΐMü1΀Q0J #Att ,Bs Gy 940Ȁ&lk‡ 0<@UqIḱstrwP5-1@8u&z OC0Hz $} !z0S3A& @&KA+‹5Kw\'b8 00.0%`,$/ BP( 33 Xժ4Q9BQ D,'28;B ; DaȒC>g0.GCć0BGC,{pBB2#&!<)i!Nb&T40Or~( a .8HvvVB I:DJM ;AP(&S g@t 5x0$0(0-p w'QP(,0m +Q#M A ` 70~@'%K0O"r*#^Cwhj G42Fc0j-1q vX3(PJMk>GV%j d-L$,"0'1xx{B4ܔ 0p<D-88U9,"3RF # ;Gi!JE@D C% ! .+@=Pv7? Y[773 @jG4fQ=/2IQJ A x7a wݬ XB-F σO,?;q"5ADF p $t H z a2C,= 0!^$J1p#TLP@ +N+Q1D,))E0ύ@8}+SpAy.RyRnS!%|l "B)0`+h-oB 7 ;)20%t Pw 8BdD)e :Ϳu0$ =Qh>P J 43_ "םU61v9@vc < e!~ԁA @3l T̷ K7 @ ^B𰭃 C2B n$ S8N8r!2¥b@]RǬG$C E]H/ $A2+G_KT"u@t *9֭ y8"K-4 H2-j'|&AR"WD`?p$'C+L@3RO2BOMI#р\6BA-s0q(Ȑ(j#-AwaA3#g4@6ɋ0eWX/t@\fx$!Ip|`,;C/G ܓ '##(pG J聆>P*uAsAoE[" ;;H0ɳQ%r ӋBC.HBxnJRJbHt' #iQ@ecJA<ʘ -0@  cC7p01XOC781! +GR&6` 8dH,`0F## d7;/ Z o B`0+CHAYҭHձxK@5̺P<CJʼnԿpL怅H8蠍\f a<@9# YoN8&8!b0ǀH'6tƒ$ܕ4 DŽ <ͨ@9ܣap \5PJ C8>6Bԙw 'kIeC 51   @c  @3+T0xąTOk$ @[aGoĭp&4h1:# 5L`0p #`+ xqbd&X+*%{qe3N@? $îdH2@,C\xb.T -t Զ?%( X 3<hv,6&U='|!V$@l L@<\ z y$8a2n 7>8^ƌ Mt˪&0HЄ8̈́0 $| @;AoQރEpP3PXQDH)>c[7L:]@4EńB_MPx+]p “-1Hxd|Gɳ WAc W33@%J 2\& ǶCX1o2"D@“,!p %C402B0 $]ԍC@#15܀1\UW\"0N]5S.!5 R@H50`6r`A#>(D MnxWo;3m,h^̯{3 03X<F@PuaiI<ƆβG7S s6.2I";9ȽİT0@`b @3 HA#H1I<@& )&.pȼZnbuKҀ HL.C U%t4qTvP!40F|- 5A ծ`cxa0TP0\ D0n4 g]H/ i/# 3m`|b plr! o20t1BH&& QNs*CLƻ !< 13 d|%a烐Z Z԰'43CB$ | t~ ?:;bn#< (S3< ,Ѓ@D[x\( 81.$)g=xÅmbdH1!ss| :M̂\sHp4!DQq hdnA |{T$Py0"**4EAC ! [*9XG(@|]t"Uc(-!t4%ߔA Bi@ <0 C )0K r2);P +$౲i 1xZ @%91Q!.~8=1P gᄉ80(a0"g\2Q0F 3((4b,$FD$" Tz Jk`(kS3&2g P8 9фk`u3')s"O 2h+ 0a!j|> P`'H3P* CeD$AVp.A΁19D .+h$1@BG. $bO4+pB>v8eߡ sjS? X<,j8 1B3ĦDԣ`n@M €4%UʳH Aa9'=W3> txD,et `w%\c5;CD%"Z ! STF .dT}s+,GvSlpĀ.3PE0pO<IN # 2qWh $f;/t7r@Q!4\E1\p,1^ 3 `?SD#2`,5)΅äW`ǔ2Ф)PABP2|B1D^$,:8 M0v 9P pET$ > ^(4A.0!pn“x8qHL c*B4 0JG`(ѽzg X E0BЇ!'8`Q@$N,K  os1*L M0$1Xv`8ʋ@ ri>}b,GE@PO4% @B>48Thxuq4la5&AN5H<# C*EI^<2?U|E"O'#2 TlQFQB31f'`G1qV,#"&N62;/ӀB yu?P|+{ pa2$BIyj!AL01Hx h;PO'.M_6$@<$ ɳ lq RD@ ?}C#%OF>A(̄BHbD !Ƒfp pא !pI뻘 ! -5F?ތHD^:NM@dHL@JC518tp!a%.T&]VMA7+)#ks¡-N@1  w#8jϷ+l,d l{ o.-H N0:` +40!i' -EAW@ 'g:ԿY3HУD@!#i7L98aN@(\ Y*.)؉J\/+@B Pn #)5;?BWcegswy|$*,.14:AILNQY]aeku~ &*,59=ELX\^cemqu~#)/68:>@FYfou})+19=@FIPTYciqw|).14?CEGL_ptx !)0GZ`} "(27:CENVX\^begjv{~ )/8<BFQU^fy    $ ' / 4 9 < @ M V f k r v      " ) + / ; ? C F J P V Z f n s ~       ' ) , 5 8 = A G J L ^ b e g k p s z |   & * 2 4 : @ J O T W Y ^ a c f i r {      $ & , 3 < G J N T Y e g q s #'),4:>EIKOVbin{ 149?CFLNPT_dfikprtx|"&,/246>AFL_jlx !$),16<?BKMO^bglsvy{.59=CLN^cfhnrtw'8?EH]dgitw   #%+/=DIXlpsv~ $0268CFKRVYcgiqv}&(4:<@CEILOQTX\acilr~-07;CEIPRUY]hu  "%(*/4;ADJMX^chox!*-14?GRTV]`giltw} "&*8<E_eilu| )/=EILOUY\`cfmq~ '-17<RW[cfosx #&*7EKNPR\gir  (07:BJMQekpv (039ADFKMQ_eou|   ! % , 1 8 ; B N V X i q s w { ~ !!!!!!#!&!+!3!8!F!R!T!W!Z!g!m!p!v!|!!!!!!!!!!!!!!!!!!!!!"""""%")"-":"="@"J"M"S"^"b"o"{""""""""""""""""""""""""""## #####0#3#7#B#E#K#N#U#X#Z#a#g#k#t#w#y###################$$$$!$&$($1$;$?$C$G$I$L$R$W$Z$g$j$n$r$$$$$$$$$$$$$$$$$$$%%%%(%4%8%>%@%E%M%Q%X%[%e%g%o%v%x%{%%%%%%%%%%%%%%%%%%%%%% &&&'&)&+&.&6&:&D&M&Y&g&i&v&{&&&&&&&&&&&&&&&&&&&&&&&'''''$'/'='B'D'G'J'O'S'U'X'Z'\'a'f'h'k'p'y''''''''''''''''''''''''''( ( (((#(0(2(4(=(@(G(K(O(Q(W([(`(c(g(j(l(p(t(v(x({(}((((((((((((((((((((((((()) ) ))))) )#)&)-)3)6)8)=)C)J)S)W)[)g)n)p)s)z)))))))))))))))))))))))****!*'*+*/*<*E*Q*S*Y*[*d*j*o*}******************++ ++++$+(+++3+5+7+<+C+G+N+S+U+^+e+j+o+w+z+|++++++++++++++++++++++++++,,,,$,),0,6,C,G,K,O,T,V,_,f,k,o,w,y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-- -,-3-:-=-?-A-D-H-N-Q-\-a-e-p-s-{------------------------...... .-.0.9.;.@.G.K.S.X._.d.j.l.q.u.w.y........................// / ////&/)/-/:/=/?/F/J/M/P/X/^/d/k/o/r////////////////////0000"0+0.000206080;0I0R0V0Y0d0j0q0t0x0000000000000000000000111#1%131C1H1K1P1R1Y1a1h1k1m1r1v1}111111111111111112 2 2222222#2(2+2124262:2>2@2B2E2K2N2P2S2W2b2i2k2t2w2{222222222222222222223 33!3%3+3-363C3G3K3N3P3Y3[3a3k3s3v333333333333333333333333444444"4'4/46494A4D4G4Q4S4X4c4l4r4x4z4|44444444444444444444 55 5(5.5054585@5C5H5K5X5b5e5r5w5z55555555555555555555555555666666#6&6(6*61656;6@6G6I6K6N6R6U6Y6^6b6k6n6r6}6666666666666666666677 777%7(717A7D7O7S7b7g7l7p7s7v7{7}777777777777777788&8,8.818C8H8L8Q8W8Y8g8m8t8{88888888888888888899 9 999999 9)9/929;9?9F9O9V9h9j9o9v9x9~99999999999999999999:::::":&:):-:/:;:M:T:W:[:a:d:h:l:q:w:z:}:::::::::::::::::::::::::::;; ;#;4;6;9;<;A;J;L;O;X;];m;u;x;{;;;;;;;;;;;;;;;;;;<< <<<<%<+<5<:<=<A<F<N<T<Z<e<i<l<q<t<w<}<<<<<<<<<<<<<<<<<<<<<<<<=======#=(=4=9=@=B=F=I=K=N=W=[=c=n=z=~====================>>>>>>$>&>*>/>:><>@>G>J>N>Q>T>W>`>d>i>m>q>w>>>>>>>>>>>>>>>>>>>>>>? ??$?+?-?5?:?DODVD^DcDDDDDDDDDDDDDDDDDDDDDDEE EE&E2E;E>EEEIELEPEXE`EcEiEyE|EEEEEEEEEEEEEEEEEEEEFF FFFFFF%F+F/F1F5F:F>FAFKFMFTFWF[F^FdFlF|FFFFFFFFFFFFFFFFFFFFFFFFFFF G GGGGGG G&G/G;G>GAGCGIGLGUGYGeGjGmGGGGGGGGGGGGGGGGGGGGGHHHHH#H%H:H?HEHLHPH\H_HdHkHmHpHrHuH|HHHHHHHHHHHHHHHHHHHHHHHII IIIII*I1I;IBIEIIIMISI^IhIkIwIzIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJ"J+J-JDJIJNJQJTJWJmJuJJJJJJJJJJJJJJJJJJJJJKK K KKK K'K)K7K=KKKTKVKXK]KgKiKtKxK{KKKKKKKKKKKKKKKKKKKKKKKKKLL LLLLL$L.L4L7L9LOLXLcLgLlLwLLLLLLLLLLLLLLLLLLLLLL M MMM!M#M)M.M3M6M9M;M=MFMUMXM]McMgMkMpMtM|MMMMMMMMMMMMMNN NNNNN(N-N3N8N:NENKNNNbNeNhNrNNNNNNNNNNNNNNNNNNNNNNNOO O OOOO!O&O-O/O7O:OEOKOVO\O^OaOdOpOxO|OOOOOOOOOOOOOOOOOOOOOOOOOOP PPPP*P3P5P7P;PEPKPXPaPdPjPqPvP{P}PPPPPPPPPPPPPPPPPPPPQQ QQQQQQ)Q3QQDQGQJQZQnQwQzQQQQQQQQQQQQQQQQQQQQRR$R&R1R@RJRRRTRWR]R`RfRoRvRRRRRRRRRRRRRRSSSS SSS7S9S=SOSQS]SpSsSwSSSSSSSSSSSSSSSSSSST TTTT*T/T3T9T;T?TFTJTPTRTUTWT\TaTmTqTxT}TTTTTTTTTTTTTTTTTTTUU UUU U"U%U.U;U=UCUQUTUWU[UdUgUiUnUqUsU~UUUUUUUUUUUUUUUUUUUUUUVV V VVVV$V)V1V5VAVIVLVNVTVWVZV`VhVlVpVrVvVxV{V~VVVVVVVVVVVVVVVVVVVVVVVWW WWWWW-W4W6W>W@WFWIWOWRWTW]WjWoWrWuWxWzWWWWWWWWWWWWWWWWWWWWWXX XXXX$X&X-X1X5X;X?XBXDXKXPXVXdXnXqXvXyX{XXXXXXXXXXXXXXXXXXXXXY YYYYY(Y,Y0Y2Y5Y7YcHcKcVcZc`cbcdcicucwczc}cccccccccccccccccccccd d dd d#d%d.d3d7d;d?dEdHdLdRdTdYd]dsdyd}ddddddddddddddddddddddddddddeeeeee#e)e3e5e7e;eHeKeMeQe]e_ecegejemeqetewe|eeeeeeeeeeeeeeeeeeeeeeeeeefffff"f%f,f.f5fAfGfPfTfbfkfrfufyfffffffffffffffffffffffffffggg gggg!g%g.g2g;gEgLgTgWg^gdgggiglgtgvg{gggggggggggggggggggggghhhh(h2h6h:h?hBhIhOhVhZh^hahghihkhnhthvhhhhhhhhhhhhhhhhhhhhhhhhhhhi iiii(i,i;i=i?iIiLiRiTiXiZi]i_ifiliqisiiiiiiiiiiiiiiiiiiiiiij jjjjjj!j(j0j;j?jDjOjQjZj]j_jdjpj}jjjjjjjjjjjjjjjjkk kkk!k'k)k.k0k9k@kOkTkWk^k`kjknkxk|kkkkkkkkkkkkkkkkkkkkkkkl lllll$l+l-l3l8lGlLlOlRldlmlwlzlllllllllllllllllllllllllmmmmmm!m&m2m6mmEmLmPmRmZm]mamhmpmvmmmmmmmmmmmmmmmmmmmnnnnnnn#n(n+n/n4ntAtFtNt_tbtetgtktptrtttttttttttttttu uu"u(u.u?uEuLuPuRuUuWu\ueuguluwu{uuuuuuuuuuuuuuuuuuuuuuvv"v+v8v{M{X{[{]{f{r{u{{{{{{{{{{{{{{{{{{{{{{{{{{{ |||| |&|.|4|8|<|B|E|I|N|c|q|z|||||||||||||||||||||||||| }}}}}"}1}7}B}Q}S}W}Z}_}c}}}}}}}}}}}}}}}}}}}}}}}}~~ ~~~~%~+~0~4~;~>~A~E~W~Y~b~f~h~k~t~w~~~~~~~~~~~~~~~~~ "(.ADILSVbjs| $'<FINPV[^bnsv~€ĀȀ΀рӀ׀܀ "').79;@CFHLQTVZ]bejnpv{ˁف߁ '.4:DFKQT\esv{Ƃɂ͂Ђӂׂڂ"9<@E`lruyăσփڃ!%(.9;>BDNScgɄ˄фԄ߄ "$+/57<LPRU\^behty…ȅʅ̅΅ԅׅ߅,.0:<?KQ\aeprtv~Ćцۆ  "$'/79<DMPS_x{‡ćӇևه69?HTbkrvzȈ͈ЈՈ)4:=EJMPUWdlxljԉى $&/13:BFPVgkptzÊȊʊ̊ҊԊڊ܊ %(18>FKPRVbfhlpz‹ŋɋ̋ҋԋ׋%+-/;LOY\ejmszÌƌˌٌ͌ߌ )-579ACGKUY^`ew{ōɍ΍֍ڍݍ$.47DFKRUX[^aimpw "&)/AEGLT\^aflnxҏԏ؏ #%+-37<?NRbnz͐ #)7KOTZaegirtw{őǑޑ"%(/17<ACFIKNQXbdk{~ƒҒْ $'*,05=BGV^fu“ȓ̓ޓ$',03=CFSVakmrvy̔Ԕٔܔ ')17EGTXchkmquwyƕ̕ϕҕؕەߕ "'-49<BMRY]`dknu~Öɖ˖іז %79;FHOSU[_knpv{ɗїݗ !#&146;EIPRZcgqx}˜Ƙ̘ΘӘۘ$&36=EW[^`celptvÙƙә -59;@FLX\_einsvΚښݚ $&,/4>ACEMOUWbqw{ʛћ՛؛ +.;>CFKQY[dhmosvy}ʜ͜Ԝ؜ߜ $&(+/279CEGQUdhkmsv|Ýŝɝӝߝ *4=AFHU]`sux}ƞ͞Ϟ֞ !#ADHMRV[gnrßǟɟ̟Пٟ֟۟%')258;@BEJPY\bdhqzɠѠ֠ܠ &-359HKQn}ášءܡ &(39=?BDLSUXaejtxŢɢ̢Т֢ۢޢ !%'*-6;?ACLVZ]_rx£ţȣУգ %/24;@LQY\bru¤ƤʤҤդܤޤ $<NZdgin~ĥƥʥޥ  *.15?DPRWY^afmz¦Ǧ˦ΦЦҦڦ !&169BGTZcntxŧȧ˧ϧۧ %(04=CMQ[afhpvzŨǨѨب%(*-58:>LOSX^`finpw{}թ ",2:?P_adhkm{~ǪӪتݪ !$)?GJ[fhu}ƫɫ̫իݫ  ,2579AILRVY\fpvxz|ìʬ̬լ%(5=@BMVenqyĭɭԭ٭$'?ELQ]dkqv~ƮϮѮܮ $')/68<CIKNTX]dhr~ԯޯ "'*28;>AJPbivŰ˰ΰѰ !$'+6>JQkvz}ñбұԱٱޱ &,27>CJMORVacehpsvزڲ!$/1?AFRVaceiqswųdzʳγгڳݳ #%'-09=EIMOT_pu}Ŵ̴ߴ  "(-<@CKMUY[fmrw{ɵ̵εеԵڵ%(*-03=@CRY\`ku{ĶͶ϶۶޶ &*16?BDHS\flvȷϷܷ $.5BLNRY[]fkt¸ɸ̸ѸԸ۸ !*379AELTV^fi}Ĺǹ̹Ϲѹڹ =T[agjrtwyȺպٺݺ"%,04>BLNSUajw}лջ '8<BHLScjsyɼмؼܼ "&)8BDIKNS^ahlw|̽Ͻֽٽݽ !(.>AGJRWadilnrϾҾھ  +-1<>@KSUW[cfkzĿƿ̿ҿ ').7;ACKPYaekuw{ #(,.04@BGJOS[]bdgilorv~  $'0BGKRTXacfrt|  #*0379=?AOQU_ceilt| +-26IM\dfjlq{} '-35?ADILORjlo $)/3@OTdux|#+05FJNVZlnru  '.38;F]`fms}  #7;DFPTV_otw "*-3?DQW_adilnpty ',068<IKQT\dk{ !#&-02BDJMRXZaeglx%.058MR[sz}  #%,2;>CRZ]`nqw~ $*0369=@BVY^fsw{*-/25:ACGNS[`eimu{"*-6BO\eiorv|  *-8BKRWYcgnvz #*.357?BGPZbmu %+.036?CFMQY[]`eo{ "&2BEJSYhkor|  -03=@IKMOhosz $37=?IMO`cf{ &*1;@EIQdmw #(-2IKOUX\^cjm#'+147:EGKNWZ_djru| !'*;?CGNSVX^fhmrx~#+.247>GOQS\bf|#%(,.5AJPXeorw| "+1<?MPUbeimv%)-46AGJRUWZcfjz '+.:<EHKMVZ^aey#169AKRWcgu{.379=ADRU]_nry~ !)-09?HNZclp|~ !-24FHOVZceguy{ !#'*.@CNSXbgoqz| #%+-16BFN[bhjlnpwz !#(*.1:<BFKNZct -58:CEORVY]`cfjmpz  %(09HJORTXZ`ceiuz}#(?LUW^bgkprtv~!$&/>@FJNYioqw~ (+.09;FHLNQXZ]jmz #%)0479;BMOQ[chjp  *.7KPR]cgrw +6DHKQZacfmqu  $&07FKTW\dirv{}$&(.1:?HRV]adoy #%)-/7:>CFNSWY\^belt|  "$)/;@CEOTV`emrx{  "(+:DLQU\_cfip),/8=?BTY^bfhntv| $',/8=DL[beikmtz~ &)/;M^duz|~ #%,/358>@BGMQSV[]_esuz,7:<@BJTW[hlv~ -4:=@NPR_du{~ $-46=?IOU]agx&*-3=@EIPVY^bhm ",468:=?CHNSZbdhq| %*47ASY\ahlrz "')-04:>BHNQcho #*1:AJMVZ]`cfipsx )268=AOW[^diz}  &);?DLQTX[lw{ #&-47BJNQSZ_djlqsy} "%')6JTX_hluy|'.05:?AFJMRVY[`cgorvx| (5<CGQV[^cmuz~+02;@H]_bflqtvy~ #'03:>@BHMPUX[^adk~    1 5 : G I R V c l q                          " & ( / 1 4 : = @ G I N V [ ` e p                  * - 0 ; @ C E I O T W ] _ r { ~                          / C K Q T Y \ i n s v }                            $ , . 4 6 8 > F O b g l y                        "$',.38DGKO[blx%-25>CHNTVXZ\_nqvx "(-579COTY]ahjlqsuz~ ',.=Cbegjot|  &39=@LQTX]agouw&5:=KWY^ap /14=GLORV\`ceiksw !+-3:?JNSWY_ehmsuw|!$*-5<@NS\cfhmpw .29AHLUY]egpsuwz&*/28@DGJPTX_o <GISW\`hmw!(+.3>@IKMQ[]agmu ,4=HJOQUWY[dhknvz  "'*-269<CIZ^ipty|'-137;HLOQUhrux| (.03ACUY\_fhju| !$+1:AHWZ_q       ( * - < B Y _ a m t | ~                       !!!+!1!=!F!R!Z!^!`!c!g!i!w!|!~!!!!!!!!!!!!!!!!!!!!!!" " "" ")"4"7"<">"@"D"F"N"Q"\"`"h"o"q"y"""""""""""""""""""""""""## # ###"#(#/#2#:#D#I#M#O#T#X#b#f#k#m#t##########################$$ $$$#$/$1$8$@$I$M$R$Y$a$d$h$p$r$x$|$~$$$$$$$$$$$$$$$$$$$$%% %%%$%&%,%.%4%<%B%H%W%[%]%`%g%k%o%q%s%x%%%%%%%%%%%%%%%%%%%%%%%%& &&&&!&%&(&,&E&I&M&W&^&c&i&r&u&|&~&&&&&&&&&&&&&&&&&&&'''('1'<'>'G'Q'S'X'^'h'{''''''''''''''''''''((*(-(4(=(@(F(P(T(X(b(e(i(n(q(u(((((((((((((((((() ))))9)>)B)D)V)Z)`)m)q)u)})))))))))))))))))))))))))* ****#*)*,*2*5*7*>*@*M*P*V*Y*[*^*a*h*k*p*{***********************+ ++#+'+3+9+J+N+R+T+Z+`+h+u+w++++++++++++++++++++++++,,,,,,!,',+,5,:,>,@,F,L,X,Z,^,h,m,u,y,~,,,,,,,,,,,,,,,,- ----#-&-)-+-5-O-R-b-d-k-t-y----------------. .".).,./.9.=.E.K.T.[.b.e.o.v.{..................../ ////!/(/*/,/./:/C/F/M/Q/Z/a/c/f/t/y/////////////////////////0 0 000/02070A0G0N0`0d0n0v000000000000000000000011 11(1,1/13191<1?1H1V1Y1]1_1b1o1t11111111111111111111112222!27292C2F2J2N2Y2`2e2h2k2s2y222222222222222233333#3+3.303;3@3J3Z3^3a3d3v3|3333333333333333333333334 444&4)4?4B4E4I4Q4U4X4[4b4d4f4p44444444444444444444444444455 5555!5#5+525D5H5M5O5U5W5Z5w5z555555555555555555555666 6 66"6'6*6.6:6F6J6O6^6a6q6s6v6~666666666666666666777 77 7#7)7.7376797D7U7_7j7n7z7}77777777777777777777888 8 888+8.808G8L8Q8Y8^8l8y8|88888888888888888888889 999$9(9/979C9H9J9L9P9U9\9`9f9r9v99999999999999999999:: ::: :$:+:3:7:=:@:E:H:S:V:^:`:c:f:o:q:u:w:z:~:::::::::::::::::::;; ;;;';0;5;8;<;F;J;L;^;f;w;~;;;;;;;;;;;;;;;;;;;;;;;;<< <<<<<)<3<9<=<P<S<\<^<b<e<h<r<y<<<<<<<<<<<<<<<<<<<<<= ====="=-=7=:=>=@=C=E=I=N=_=e=j=p=y======================> >>>>>>%>+>6>8>:>?>K>N>T>^>b>i>k>p>|>>>>>>>>>>>>>>>>>>>>>>>>>? ????!?.?0?6?=?L?Q?S?d?p?s?y?{????????????????????? @@ @)@,@/@1@3@6@A@S@V@Y@^@a@g@i@l@}@@@@@@@@@@@@@@@@@@@@@@@@@AAA AAAAA A"A/A1A4A8A?ACAQATAVAXA]AaAfAhAoAsAuAAAAAAAAAAAAAAABBB BBB/B?BFBOBWB_BbBfBkBtBvByBBBBBBBBBBBBBBBBBB CCCC!C(C*C-C6CZ@ZBZGZIZMZXZ]Z_ZiZzZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[ [#[%[.[2[<[K[`[c[o[t[z[[[[[[[[[[[[[[[[[[\\\\&\/\1\?\A\D\G\J\O\Z\\\_\f\s\\\\\\\\\\\\\\\]]]]]]]]'],]1]4]<]@]D]H]J]N]Q]\]`]i]k]r]v]{]]]]]]]]]]]]]]]]]]]]]]]]^ ^ ^ ^^ ^*^,^0^8^;^N^R^V^Y^[^g^o^^^^^^^^^^^^^^^^^^^^^^^^^^_ __'_)_2_@_P_Y_\_d_k_s_v_______________________`````"`&`*`,`/`3`9`;`=`@`E`I`L`N`V`b`d`j`m`u`|````````````````````a aaa$a'a-a/a4aAaFaPaSaVa[akanarazaaaaaaaaaaaaaaaaaaaaaab bbbb%b8b=bCbEbSb[bbbgbibobrbvb{bbbbbbbbbbbbbbbbbbbbbbbbbbcc cccc c#c*c,c4c>cFcJc\c_chczc|c~ccccccccccccccccccccdddddddd(d+d0d2d7ddEdHdJdOdUd[dhdldpdvdyd{d~dddddddddddddddddddddddee&e2e8e=eAeFeKeOeWeoesexe{e}eeeeeeeeeeeeeeeeeeeeeeeeef fff*f,f9fEfKfOfXf`fkfpfrf{fffffffffffffffffffffffffffggg&g*g-g1g7g?gUgXgbgigngpgtgwg|g~gggggggggggggggggggghh hhhhh&h,h/h2h9hmFmOm`memgmpmym~mmmmmmmmmmmmmmmmmmmmmmmmmn nnn&n(n*n-n4n6n?nDnPnTnXn[n]nhnjnynnnnnnnnnnnnnnnnnnnooooo o-o4o6o:oDoGoPoRoVodofojoooqouozooooooooooooooooooooooopp pppp p$p&p*p-p0p9p>pEpIpMpQpSp`pepkprpwpzp}ppppppppppppppppppppppppqqqqq"q'q+q1q5q:q=q@qCqEqHqOqRqWq]qiqlqqqvq|qqqqqqqqqqqqqqqqqqqqqqqqr rrr$r-r4r7rs@sLsQs\sjsmsqstsvssssssssssssssssssssssssssttttttt!t't/t3t5ttGtMtUtZt\tbtmtptrtxt~tttttttttttttttttttttttttttuu uu,u3u6u;uNuRu]u`ubujumuuuuuuuuuuuuuuuuuuuuuuuuu vvvv"v'v)v2v7v?vAvFvJvLvPvZvbvhvkvovvvyvvvvvvvvvvvvvvvvvvvvvvvvv www#w*w.w0w3w5w9wIwQwVwZw]w_wlwpwyw}wwwwwwwwwwwwwwwwwwwwwxx xxx!x&x)x0x2x=xKxNxfxlxoxrxwxyx~xxxxxxxxxxxxxxxxxxyyy y%y*y/y9y}F}I}K}O}U}_}g}s}{}}}}}}}}}}}}}}}}}}}}}}}}~~ ~~~~ ~$~0~4~8~?~B~I~K~X~\~l~o~{~~~~~~~~~~~~~~~~~~~~~~~~~~%+1DJOcilswz %*=DGIOYhpsv}ʀ΀݀  #169@OYdknqvzƁρՁ؁܁߁!)14;>AHNYgmtyтԂق܂   ".ACNYafhtvǃЃՃۃ #%/?BZ\jnx}Äބ#%',.5<AENV`bei}…ąͅӅڅ݅߅&35:=PUZ_fkos~Ht1 8]<NpͲ  a5#`>evЕhPc3Q# & @gl}R0S,%LɄ81` y H#; x EBH% A3NH LZB *H sB kuxGBt=Pq$tQi@K $t`^F̄& `" - 60pMK/ A߂2˜`XXQa:4H $PTqfǯ2@@ ǜH=>$B1 g1##LOR7I2 0͡"<"Jg5k%|z0}Yi<g F $(:K&#Nv?t P PMas  q10`1 #DX W/@B A@ 0F:cOAk<8dP |G P_  rDc C-ɺ L;p 05$D0; :|>.OrAq44w2 A}&4V(6',Z5:@T -'X@@CB sF`(#! S7X8c "tA* @[0!1 2D4vA4-3tpB4q#2D?[Q2OȨLb!(E&pN u $@t\ 3\C$`9܋'Gw%8H 9d,O8¹ <`0Ӑ0!#ҜܢRN)PDppaLQ}A 3 @# %}y7(ؐ%`@AKEY$p|@@- Q >L"p$\. Wd%jgDa  n2Ou_BmDL/@=MOϤ=" ˗f0 %/I'AK0GaRoF@Pa>Pv$ǥ";oD,;DCCpX˂  Ƒ]C*`EɂPT@d #;J,B|Bux2 /0ADɝț`$s(4("t4` `#@2Ly`A %AP- `\fLIXuq>J"Dt<#~@y';2Fx+bx?F -\ /1j q K" <􍻓rl@@PWPBT90 @HC16`<]q \5cjet- &$I@#rK1s FHDVMmG%t82 PpcآK>< mmH.("8"V!F(#d H/p7im]M,T p2a>b$!w&^x"(j/0C$ 8 L(3ABtC()0x#Ⲁ<rϠCo \G27Yh* J4L ,qV1L#P!Y^$ $N !4(o'&?JhE˝}LD 5D0  S;S[4B@D(0?H zATo)(Q1 I y4p+A.{^ Vx"H3f 1\ŬݬyJ7U@eI2qNQ B+ #`0!L9P ` L4c 0F;³s!# qF0 "ÀÂ0+3(j 2x; (*'8) /94 `@:<@.P":%-33A 9`Lq .)Df\!m!-(7Pn<83L>$ plaD$ <3x9,@0q)jtG'r80YԤb#tk#4/,< 6UD7)c 8˶eKAv1E3"<`D*@&,k ԠXJ*x@}J 3P왘O: S`Yi3H $ $.1ܜQ9 bqCSY8FNML`$N0@AN@3㩽2rME33l"L@_ @2=lg?Z(1 Ȭ`A#@` H1x)1D@* Ь\8kc8\ 0̓*ZhX@$p-!ʌ@0$P%Ҷ+{2D?ÞSLr3 CD3N! O2LGH8/*4m@FP3B!`mD@:#0hD0:&(p4H YĠr!P& 5`X!sEEH͊ L2K`"o 0)FF00Pp.C&F`)/p w v$5A 0k.p B\'`# D .2 4>Og `p#- pOa#4 ‹3@ X x󬄃a0u#"P($8̪,r$ @ ZC)ai$ !Y8(|`Ge=c,RD,  lc[T( O ɥ v̈`oI10z(RO N DG8} 1;y,#D$ | 3= 4Pnkr B<)h $L 6@ }C(1`Ȗ0%hLT02HNp=X/̶qLEQH$3Ó#_2LwrD-}۱044,RCin!SX08H`(H'GDHsfLq:4Ud(3"=[j{-p$BU2C ,񢛁{BP:' ͰgOSMss9b9a@G 0`4*k% uS# 0mҘ%׀TE0, q$/r @ `!$ҏV1tSEL Cd61)ex+ 3A" t4@yaG0AF`pT4Dw Xfc b040bD 5 + C,;-J  -":8jwWCSvɎ$#Y?Q0  ,K]0E;^@ : 3b^ۀ ːi:*@VĪpjA/H0@׀2@9#!-7b1ȐbB&BE8 :gi@r5B( K\ P;HC|'^=p  ٞQTXQf5p8ew0M3#$T ܔA`q8 < [ad$,vpp*_:a!1=|J :/$$iŲ#I\QT!d` 0i_>#81P%}@ ̂?`$pTfS D`r 0Nn oc;RJ|0Fp k$ @9 贂]>p1.$ͻD RK>|E^C 8.  b,nFaLjq@O)@!$Ց*I ` H@ ä8:TS͐4{Ha'4ApR5dTcX";Đ10Z? :YĆˈ!4B 8, 2Jk*p SL+D grIp"o 0]<ܴb4`b51LS @:=& DC@D$r#rPu#X&BKBpH POKGӭqRF<%2&l( TnX 0FXqX$a 8ߋ  t`: (ހ,bbP 50 (  $ 0h`iTH%K4%mr&}up$>0W Nsq Ypn@E0"M|K`G 0HA*@1T˱P߱aPq}4I(# JKG/P"9 @#VB{H[$?A2 @<.P-4 @$l0DF`|Z[H 4Dɬ  3d 4@4-ս' ;{J0`ā` %,4P =F\䠉@@F)Yz ߼$4@\l 0#n04CøHPDװ@KyIS. sg}3SL q p1"JQA)E9CH #X3n 2pH>HJKSp$at)4F.1\nj|$ ҁT3" (QL3< +FR"%2I@'6.8C@,l`(8%oI]0D;*T<̘& a A$ I@H+Y< 3x $n,o]L -TkNƠ5D&."> 34z!R*I>(F4܂ߴ@q#K((@@HbۂJķ?M w4Ë@~ pb(D  ֭F* 2XZƠTѐ<)q֏ը8L48D\|=Wpİ<F H53=I@+ S , -J #>[4G9@y] |yI9# p P-`QpȊG!?(CI3;0č^^0(  b`,h1DN<[Q|0#0$A@WQu@³lai!+2+T <NJA ]@-0VT8p`4Q;WBA7 rEK ӐBhE,B-? p\S0 1 # І :a2x$O O%K *h #'p51*> 0 ɩ%@m9l@M A$ WFL+o7pipC@H + 0<% I,T`pKT/8 R Q ` 1RAz W1D=uC_\p' hH1g#: |*@ax# DQ` ,B4*[K&0 .Ai Q qG) J)ת= ‹] x4? SȰܐQ =aeD @D<<>R `/* @8S`( B ~ɂLNl8ҍh>9Ąe ӳLH`2^cF?Sʱ+pAJ A0sN0/L/:YYH#NY?Dt 1S H8ȇCj PA r1YQ",rDLpHlcBNFhysa`b)DA<"DbtHɁS|`B@΂L]{uQJk$ yp0JBv8?D(#3K)x8$G|DkA`2P4ӰL p,4H[@-P!<+Cc'[&Ly@0A &51 \̄27 >)y 3$1-JWZH/p*kdTR= Yp(c;0@)j,86UH^eA= mW#H&p @@ «0B! -L@ 56G9ʃO+#ݳɗGSȘȊ4<<,Fo5m\kέ*0Bg8C?1$ H8C @I>6 a;h~1@A s< c6k*XbD%}ip{G@<սB3&!Sc<-i$ :qJW>JʐV0r \; _!Ŀ r[!8 @b $D :@ ^DVX;Oj4CǰEjB2*|"0lTEI:Ի 2(Cq@" o> " E G @!0 @l!(gD(/N!P7Qsc0s(/Jx s ÀJHpK1|NxJ* 0BE# rB162uV S3 2y 0aTH<  5 N0 'N1H)~-#&'"g& !%̈́ ᖠc@ :w9CӲВ&w: EbhIr ?$ Ho'=tC<>$ @$HbBM7H>|l 4bčl]t*Ls.(J̐?{8 31RDr\!@M%4,!чc6!B ǰ*ϸUU30 D䕩@ģ a0 k:Ro460j ;D4$3L3L Y"P JO1x3?B亂`$8?G<=Ho3D$0>C[Q/J,`,%P!Ѐ<8/{S[ _@^1,<z;p;eQ0 (O B0\X@]Ұ@1QpJ5Z00 { 0x"=;4$zG0$96ۉP`.#@D K># 2~0@(H``Es@sy  ) 0k? @s p2mAH~98vl, dA$LF/ltɠ6eNMsPhlIw(L9D109Rϡ҅NF]-- ( BqhL̬ן p8hDMĄ2'| lQgHXHLM SXS0!+ #ހ*SHiBzb5pci3@9X'  , c@o68 h 6<=,!F 7`S  ȒC1[G*`+ r$6 sL\4'S 9]d=BA0`ql\(ȁq SefOL@_aԀsDBX OG%9#L2AIC084)}-8U[?,mq2hE`\ɤR>1 |@!<+ B3v|Q1Z`| N 3Ap>[감D NUS; @ <0<1C̀ 1h[<g"YC4`2&Q4b@Jԉ HL$@M|Mjѽ^ h?;g`I0ޘmT]؈1P 03UrnRτu@; :5͖ 'ot>ˎmV @B"7="EC! 0HT1¬ K N0 ϧH= p0dy7LBܽ$A p < "R771b` B2@@|> :QA$J@!+ Jpq`kCdR|ySJSm fesPM9aKF 4 F x?0_dtHˠ.laP Vw<9l^HL:,#uT~1q)= @ =C ?X$ <N霼5``w'=4.&.h@<l uoLӊG8B1qp0@D„ 20A10q,`=ЁS $ ' M(@ C3*JJI C 1 Hs(t l4B~5ΐMü1΀Q0J #Att ,Bs Gy 940Ȁ&lk‡ 0<@UqIḱstrwP5-1@8u&z OC0Hz $} !z0S3A& @&KA+‹5Kw\'b8 00.0%`,$/ BP( 33 Xժ4Q9BQ D,'28;B ; DaȒC>g0.GCć0BGC,{pBB2#&!<)i!Nb&T40Or~( a .8HvvVB I:DJM ;AP(&S g@t 5x0$0(0-p w'QP(,0m +Q#M A ` 70~@'%K0O"r*#^Cwhj G42Fc0j-1q vX3(PJMk>GV%j d-L$,"0'1xx{B4ܔ 0p<D-88U9,"3RF # ;Gi!JE@D C% ! .+@=Pv7? Y[773 @jG4fQ=/2IQJ A x7a wݬ XB-F σO,?;q"5ADF p $t H z a2C,= 0!^$J1p#TLP@ +N+Q1D,))E0ύ@8}+SpAy.RyRnS!%|l "B)0`+h-oB 7 ;)20%t Pw 8BdD)e :Ϳu0$ =Qh>P J 43_ "םU61v9@vc < e!~ԁA @3l T̷ K7 @ ^B𰭃 C2B n$ S8N8r!2¥b@]RǬG$C E]H/ $A2+G_KT"u@t *9֭ y8"K-4 H2-j'|&AR"WD`?p$'C+L@3RO2BOMI#р\6BA-s0q(Ȑ(j#-AwaA3#g4@6ɋ0eWX/t@\fx$!Ip|`,;C/G ܓ '##(pG J聆>P*uAsAoE[" ;;H0ɳQ%r ӋBC.HBxnJRJbHt' #iQ@ecJA<ʘ -0@  cC7p01XOC781! +GR&6` 8dH,`0F## d7;/ Z o B`0+CHAYҭHձxK@5̺P<CJʼnԿpL怅H8蠍\f a<@9# YoN8&8!b0ǀH'6tƒ$ܕ4 DŽ <ͨ@9ܣap \5PJ C8>6Bԙw 'kIeC 51   @c  @3+T0xąTOk$ @[aGoĭp&4h1:# 5L`0p #`+ xqbd&X+*%{qe3N@? $îdH2@,C\xb.T -t Զ?%( X 3<hv,6&U='|!V$@l L@<\ z y$8a2n 7>8^ƌ Mt˪&0HЄ8̈́0 $| @;AoQރEpP3PXQDH)>c[7L:]@4EńB_MPx+]p “-1Hxd|Gɳ WAc W33@%J 2\& ǶCX1o2"D@“,!p %C402B0 $]ԍC@#15܀1\UW\"0N]5S.!5 R@H50`6r`A#>(D MnxWo;3m,h^̯{3 03X<F@PuaiI<ƆβG7S s6.2I";9ȽİT0@`b @3 HA#H1I<@& )&.pȼZnbuKҀ HL.C U%t4qTvP!40F|- 5A ծ`cxa0TP0\ D0n4 g]H/ i/# 3m`|b plr! o20t1BH&& QNs*CLƻ !< 13 d|%a烐Z Z԰'43CB$ | t~ ?:;bn#< (S3< ,Ѓ@D[x\( 81.$)g=xÅmbdH1!ss| :M̂\sHp4!DQq hdnA |{T$Py0"**4EAC ! [*9XG(@|]t"Uc(-!t4%ߔA Bi@ <0 C )0K r2);P +$౲i 1xZ @%91Q!.~8=1P gᄉ80(a0"g\2Q0F 3((4b,$FD$" Tz Jk`(kS3&2g P8 9фk`u3')s"O 2h+ 0a!j|> P`'H3P* CeD$AVp.A΁19D .+h$1@BG. $bO4+pB>v8eߡ sjS? X<,j8 1B3ĦDԣ`n@M €4%UʳH Aa9'=W3> txD,et `w%\c5;CD%"Z ! STF .dT}s+,GvSlpĀ.3PE0pO<IN # 2qWh $f;/t7r@Q!4\E1\p,1^ 3 `?SD#2`,5)΅äW`ǔ2Ф)PABP2|B1D^$,:8 M0v 9P pET$ > ^(4A.0!pn“x8qHL c*B4 0JG`(ѽzg X E0BЇ!'8`Q@$N,K  os1*L M0$1Xv`8ʋ@ ri>}b,GE@PO4% @B>48Thxuq4la5&AN5H<# C*EI^<2?U|E"O'#2 TlQFQB31f'`G1qV,#"&N62;/ӀB yu?P|+{ pa2$BIyj!AL01Hx h;PO'.M_6$@<$ ɳ lq RD@ ?}C#%OF>A(̄BHbD !Ƒfp pא !pI뻘 ! -5F?ތHD^:NM@dHL@JC518tp!a%.T&]VMA7+)#ks¡-N@1  w#8jϷ+l,d l{ o.-H N0:` +40!i' -EAW@ 'g:ԿY3HУD@!#i7L98aN@(\ Y*.)؉J\/+@B Pnh_AhxD}?D( 4D;S6"BF",Hl,HXv6v]}sݻofC<$I@R@XF˕RkwXRhr?ϔ0@DScӵhuN0h0JӰV(2m`V 1(JN(OۤT 7C?SK|wح,yNGz37x6Ƿ^j3hXmfr}F_篾|:%qN.XJS8%~N!cJ$ϼrwrUzw]rY׻qvw;;zzzJONOή_?} uEn=D %1/_zw 1nN w*t3^ΦjN.o\0R%( A)Tܴe,!,&n'p8G'C/"/t7~0/ )MJT,Jp E U 9oAa T/? G}̣ߟ٭`*qߩ59""\砑M$!1WR`DŽ(*"im "Q rTz|?H>C6j2L˙(*T΅K-bi~yϋCD qzAy#}er # kD򢈈P:Y&)IBe T3JM# B)/ ON# @3b8 Ő ~4`BDKDVT8w# P`3hYǴP\ j*m2vA KuwntpY(ML 4/6z>ތgBC9)\eiIDbXiNRڤ!PSC)Mh~jp ׿Ixv~fj5ݬg˕RsS7)\?4֒Lצ/,! (a-ouGD--4*l[G[ZkH ^1DIcqWe! ITQ{+pSYthEāŭźFJǧ}ӧz^vp<&r3Y,GKWgvһB#S6$K\'/2&4 oW)Vf Qj!ӥPZ ,<{hϘoj3_.@pe߻ePd)~G-[6[^)R'oԳD+ߛ 1Mf` 2.^ IQ .TN!e pp,8@j^oq8 i?yg=ـwlCޗ d `JX.N"M@0G2 K#>>s߇0ziu<|N{}Ԩ NCwJ~fOp!JIr )86%2]#0!Vi2CL<0{Mt2`k7̀>FNtؿ^ǛըJUXҜX9,N6fRڀiq+Jy/t R ))|*` Z"uύRl]tvRO9> M|5YHݗ'2*wT )Sp.؇U>А ".$|na^֛S] ZFʅ"74O9٦%n6]ňHw!?pOy-֛x(s)܄QKH@$ SR"SZ/"J"j!%|!*XRbJ"w+T)8f 9>Ǐ骭ÿ,_oM>1aHѻ7Z&.—W`8ZD;i m6GlXS Uo-DOG'Jdn&0W9*DT:11ޖ]iE>xQoR~sYPP屛8,Qg;UToeUZ76U؄/V{>LGfj.n΍=guIx2NJ~!8'3! ~I D<8֯x?F7ySoY?|B 8u8*ƩI+Cxt>Ɔ`ć ,^cbLߕ}0|w`t]ԗGP=o=kƃf\.7hTaA92whR$`)8nﳭRxAmmPsV8o=I8bbu$]nBS K> (V?"_exvy?sLf>-GeN)J3BN?Q 9SM?EOa% *8`hau}m\] [_2!G * xJ5}w \D,JX3,V8|~-<bqb9$u 9y"+ ,@(ʖ!M`((}ZY,k#(AL`I^0E0shQ7 u{V/# NS?^;]vP$)V0FFֻyAwĹhihb_{[eLJ@~S),a9W *  @sB5enR2Gj3^G%U]=)oVt\&3C$4SIR`,@X J!BL "&f*{k5"^*?cGG's!-DE`)+qRʱaDd1s]3?iۇYAD-nѤy} Ϟ.NFs-2^˒Q}O"{ Hc]4v  64k$dO&lYe͔ ĺb4Ŝai݈tӛܱn^Dv}) -Ə"% E80к-|C`D"-F TLZw9~sBo" Qȼ(rr*}̰;{ne&qm?IԤ.lc۾o}?߯5۬Wf\WU|AKJ((IG*u kWw{zYB Ϟ0f=Egqf ,pPX೨cX)!a+`ǂ) MN'{w O^MRӁzǶC y X aF`aWϼU*¼0 Q-qT+ְ'}[Ŕ hEe<± T+z@9`c0aU,k@#u;}f୳5|ZN1DסiK\=J!@BL۝nA{ &l;%< ~J:CZT%)tFࢊnۥ9߰u蹯`{rJഋeors&hݺ`9PA$:!PIT飺$C2sGUT&+18,;weƚd t/0 y-rj(Xt?~klͣ;s+bMd.x{ @;W8A5]x" 3U`J:H{^]INtVB4\( OhEދlt%'wt *<}{cl[ ,hH8YY!"\&9z#\^Ak(Go߃%MtSzvc1 +8[Xu34V16ȩ/ wm{eSMèe$b.<RC)!pd\ g P[\WӢ;ՕZg }$eke؄zل!fYrռmG za.ʸPANS8^7nN0d箫5U _2lWGu[9XaD 7?d'둧{# A<|8v~c{$ r&̍3I݅KrXئ@{ v;P g`wÖKlP3׃ Ȥ^7j(mK:3"JS03pUyU^ 9.$+~آ^gvլ* QXS 0k>_ߙ[@Fy!s8C8%8A_aI uL%IfN!ubRct>d~h g r^f0d!b,r2_i.S[NcTn?d;"Ӑ. xܘjFƮ{6$~OU- IV lN|-~۶ϾO8M‹jiRJ۫ 0܅ .n;"]p~+4R E]mZk\!㑅~6 _w 6ɂqq ,z&5ÎӪ UyyB[ ٭Cە i)Ч ,x`*9ĒHc Y*"@[cmA Z9~Swj=u]+BF~9e- lg JC: Jmt.!:x[%wlg>= ^Xwvġ XdHUJYwE9I_g6LֈL4s=4=zCEyO\oY1pBrEZ4Ml3zWhHªo~[y|22b)N#h1 FcwW\ úX qhh"Rp$U֑iֳ;9 S+~Ϯa$&zz5`zYR'E!pM%D8y]@-YyL{ Q5u#QKØr"@MN Oz!2G"y!|tc4-D[|p*,j˅y+ޏ F튈C\Gźr}4*g@\y |Ni&|jRc;HZFv-4w҅ߕ¼0$#pI:RX)tCYgx5maNTa_1E6Gge5n^LKw._!N[`1>`yux8^kG:xVeЯ}'EPiG $M3 "x`1 l]Q{ßUnQ-fMCɝ O|<[8M`(VYsQb qJDB8" yѾjV 4 Rbh b?a._Ul_.&e9\q""X!iдw*SK&Qqo XyM_)[ɻp~C/:ZГwz%6lo(j/zT;T/>b//8I*SHLI,NW R @1eBIŒK?+#=Z4[R#k)Uӗ|5fOFLtL $@__D$)6bq.%?8 ^#6|pib!g:0c A"޼?zB9RqW?Z^@4vV94Rǘ Pv%+wT~JSOUPgՏO_[|.qSH †q{ʮCQ=:jtw[!wO,| P/0= wa1C ȇaYyv?;9ҮE\,fMEJH\K&݂  &5z{^0ڜ?) 9RR*t \SN]ݥR}jF߂h"E߫IK3s}{,c~7'Ӳ,UedƜ.!"Kѭ^:\1$!KB}57?msDJ WRY($#q|=& I(oؖ*0衹bzMAڽysP;m cuY#"8C Y! %'"R ǥUmےLE SqUMBO"($ {nZ),\sÁJc(8[4DS슗_fEs26R癗O $qQ 1.v!rTd`-8剩霉 ðMڙ%,xLV㥟aGbzr3(<4D(FHakF[9+]I O NuN+іlm7Vg:iza* ~9b b&%å;K[j^ze4Kn"%XB:.1HJp;Tro;A+ak$U vF'Mb~k:F^yu0Zf68y<H & 9ag2 ,uBտdvP[wK?o[w~f|o4(1YU~gdíO Ú ~M'V4ەӗ ^ܧ؇ρk`,/`lri 5B"4w>oSyAP Ҝƙd25g0l|SIjۑ ~+&XGU)+B KXp^鎎|4ںf&S~LZf@b`:hyl?;e:xea H1x.JBW&^z-}3Fډ\8*-D&BXS 8C7z ~6Fw!y@ֽh!n?LyyU=Č&\ڧnٿa*2-)XsU?E{AHEXcPs.2~Nپ4lx$j~ٞFj]NQoR⅖•Ff@dfWw_ݕ/B Vk݅ l1pºm+Ҿh[:彗ގ|CEe, p ^TKESnkQ.\~d d'hK{=h6LV2 q* AwϽ [$T_Wu[wJ@}ҥХK? z\ e@'j h6ebOsHU#J(lq*#qI۔?O1zݻy{+ǁP tQ@xm}}IWa4MMפ,l'wm@7xUE899qSp-pk8"ݕ@`r풀 꿓4Z!zÓ%ʓ{#h |=jIrR h9]b֌o$Ùnz{g D"U{9Sx;nͬ?5I[Po8z '<\[  rG>U ;FC]TNwu Ko6%yt/Agȫ!-| "Sh,+ ҏ'bk6u^73h-UjT1B[bGe#TVw =. +k]57C!]+* pN^bND KQ}3ĵI܅Tcʯ˱S:}~;ltބܪa_԰uq:[y9uyW̍][k<0ZgSM z߳}.&7̜CƅaFy;  vm%:cCãJy.^s[#O 97.//@R}3G dkX?\E|9"<"Tkztd['J:"qV&M{Ru٧bܿ}c!xYVOmk+}gq\(2e#~KzwToƚG}Kz~wŀOǻx\{kGXXpyrOT3TLZ!>h#QљՒwH;$hWxr>.La^N,aQ[iZGAIUx ^"{>h>&tol"dWw#1aJQuomiy ^DtCcs& VpeYrኂPr*a5y.FDx.z ,N9K\Nq'SYZ vhz+= n"41:JY^g~N!.xS,yV=ڧJX J@c>莋;ncԍ)Q.~*%QogͰ}҄/Ϧբd8BB mRh![QA*?`9~ J68@nu?8mkkts3Te4pr NN/ wə6 2QФ#v nQ}o=,qg<ǛbYD;X`/q{S8сmBy*P4~ƙwǭ>mFxv$/'jڪ,Oq788 y qҢ ,OC'7 xb ON}?$=~@@ ={CSFxʍ+78xqvF7jZ^w"ҼZQF4ZWVj_޷:.oO,4kh9P7$ooHGLedV@i( vdJg1뤥ATތ*DKB|hDzt:ڬ+8/K#qg[Bqg u̥&l+[;9/Y;y+w\5M'd. zpWQ,@r7)HQռP laI_9h8YtlŦa4j# ΝYP]D(ʨ|e8)Yq;EE;!0*.-0~TTy_P(%e~=/ho䡀g؋Xvغ>PfT oخ6g_ڏ/6ļ q#LiNb)}F0CJ]t-F΋*??yhOgxXh^_bH֘"׻yI+YU- aL3˿a{G%RNXIvm-m[Rǭ=vOT }!'<WH)b.CCt ^|`)F2%t3í =FDyb/C>ob3=4 #p(WlǶNydh: #j=D퇨}p,LΔ^΃㚑LU_|U6d}oɣQ^TF.a~b i)D9'!\_)+{}79J!/nyǸ Zx):Mg7AzSkg $M*x[Q9QA 8JK uFӘQ$yN!oŵM0n6i͉ gOjV6HBNJ 7QqS0@6O=W!Iѯc~[R:eL8 >9HE ~Hiz鱣$|6qBxİ).L*rx sj}CUfؽz]w>J1wH{])n T.NލV}?qE ==?n'RjN[B ) 8gqn4`-KzxWh;U(m1q\ c<p{QoNEQߌ=#e4XkN}8tFY9-ݔsjY5UjxO0KcK kw( FUz-n[5d/?v􂽜/Xz ԨO LEU9!8DuOGDzƇW6Vwjx'. R> d&uW'E7z(fo)S,Tu6j/W6~ǎz;WXZf+42 wᶹ+z_9?mi'pDűtIsfj0/c{N $FDf:NA'ҭҟ^ޛxi6r7*cdRJEl1f}}Kz%<۫Dvv4UP%"7glj^\-}.\❸>nu4^.w?`@D,Xh<K ;;k !ʆ~Is(r2U'Ϻ UkP/v) +p | Je'.8AN.H7Ez<"QĞi÷t4{9\z|vv'鱧?vAo&n X V,vW&P)W lBrNSr,TJ m ? cľ菞fGR?^6o.7żC:2qS,QLR>wzݐU,nbؾ2e`ZΔ(/,-W S_ 8GRzT&$KzNLe;6rO=lb!֨dzrgkSHD, RBls":'}"x JnKbdqqԱnxQRIL)Cx:U7V qsB0u}}LYY WnYǎӄwy,S Ny,dvUXVi 6X8J?~~3CD Uo$ kQrs̑`q[.#cgy&$MLom m3ىmǮ pf L*[EA܌q)E$4ѡ[.n+yJ=z!J{M$R$uB4z߱׏ץV܋ 8+6n_Fl2)Cp JHUܥ1T֕@`=WAUЮ.}&W@_.`9ķE"3gppd*BR'L~`uM,Ub*O]YGG-4,S䰋{w$$%ؤ)nF6#q_eF%6R9؏\O?<|o ~\&nn}%& Q84}=ukjo=:eFf9[oɬ])$2\Yq7/fGѰfsHXE5r%}RG@꾼BX%?@{:`i[}XQY1E>a_qd;:ڳ0ѣ+0r^m`WN.4%o$cqtwՎ0 ֑^q4q0Kpb.r},,C[)*I)Av"چ3ht+ 3>=XYr=cPx+^9**!3zӼuE,*8G[oyxbi6W/ S4"`w^ %=69QbVȺ&wQY k 4^5pVog%ږtN \ftXU$QĹb?@&n/7m UWYê\Q?|B2c^̅_S]Uzּ.r^&x!'LQ (T0e.]ܙ;rv4Cҿ;׻|dO[ˑE~Y=`~AA;:j; FB=LXĎFz"V/erhj; .$8cӬe5~=?-$sזU!nKvM,.,$ l͙b؁IwpU6(sbtF2S7 qXu(/zHe ?+ %f K_{ɒ$K88r]01yU􄹚bҿ+8^=?%*A}#iǎtZIU~Bx:ߺ% G+#NrO3=bY3.(CV"0q7#+.rb hż}eB<[-.}׎34H YiZ"wJ,WƮ̅".ŮZQhm5pwmxQ$ J & p\)1"Io,^ Ao~Lm;d3ҋzg>׎Ȩ+ Ha3vcsV-`0*V%v;lku,ti-R9v;sVv* RzjGfպ4־j>m^wmEΦfX.e@$Hr×$Q}.h}[]$eS/iUXZ|{ ]8ۆ7ac\.of*SP^ TnML{5T> kL\o~LHtN,ҭ4LZ ۮ\8Ѳ&R5;=h-OPW.Z }8| KN8O1H _B Ve> JOq>^џ nѣUHŗ^MٿQ_-s^H]L4 `mǎLfPؒ7j mb~ju ^kz\uړx&)K5*ս7<(缚5otzaLUEU1 4}~Z_ƺir J!PΘrRLe4*[Yh.bpnh1}Hu! ;@<9y"ù\2LcNoV ´ˆ>&˵3 [AMwջJ/%x>_KppXUu*q2Bs` 7qŪ(q0aa;jmX6 kz}ȪPwƏgh/Q;Cqeܸ{O},VyFܮ}ߕwiMWu ?CmGn[Yif5&E!P8=Ji'EmzOTa;Qo}!ʋ"•$0DP9a+-n}rM1aVםW9GrǶ{<{^ڇjA$(E2xq&(6mpdS{u#scF n"9 8JzOp,A 썞zi=G*%©|cGsFʬl(Y" Hy -"˽k|_ZL(,T~\?aMGwI;("y"N$e\`wq\1YC+L}EV "efi*l]oMf^LFxMp9s AРT $RMwUFտR%'Z,jqQX:lYdB `" QN7ͤ=Xpe5׌OYy'{;Hzr?kli=,G2;K`aX%Y4QvzgHK@_w-k֞T۝0^"=6_LǛzln bTsP@Ob@ 0Pd`݂YlmZYTQ<]3}G}~='.f^JeYRpDYK) CY- 뫦Z!ҰokV{FvB\ua֦ŵh.\ZR~7Y&yP9G+wtp"$o꣒' rG()`q}w۳msVYs/Zlt{*V:H޷_~ XvmbZ\E /˲B\bU%h3:a~&N2z`9{h' +<f)P"$8©8Iy9R׉ҀsۙpX-+x#ׄ$|! C"f $d(b'8KYnvr am٨VmKfǎ mLVDes\ #cn즸`G?O$k'1A gs^Ȁow:ENA |s`11qh[FJu4tR-_uFVh {6k xfUU4ǝz(q OdiQ4a`z.2ZVz(Ⱦ۳k>̰"5j & l(8 g1 wZEco {6ML-fsӇ.{9z2rD,*)>q6܉S 8vlwvi E{ccӗ|OF8崚)Jeߍ!f0SP |>m 3i蕎J4K^E]ް{uxWlMg]:]LՇ>dlֻtXŧn"47Rb&ciB g$(E ^ᘍcl̢h/x> $ 0 0ևn}C{@tF- IΊEQ$9)R! o^2~ ||wO9DG﾿dn;n5͌Ef[,)=}Q, S6… }o  A B C 0Qp#?Dקm^dO _(>R*S=l͆#3 оCdoIȾ`c@e!+i>rx @E>mã`F@?)RJH kAHO%$IeDa. >&mӌY[rĩ"ƄR#rD=TPBpl5p 0͢xiZA#b%4P$~|Lj7B4@ba!K'Wx60Y,t5YpH{8X-пŶd&Yb́?@+|<* #c gJHrds'"7 r`-R8j{JL OXj!#GP(IT^T|_RǪXg~b1狒?W1i)Kg@+H8M +;&z 6; +,!ff0yA4ulk$ 4ZJ|6]m jXaZlW{Q44w> F *fVs$t:~I/lxll3 $&YS["f ) hP8I^==%A8j: KE CI;^ny_;5qtۮf=Ys@ NۧH$2 ۊM$e{qcq.R i5^DC5On_k{ Fj;ʣ(e-/I<6,_Ie #nj! i{mj<{g?H@ |r.F4ް=L` \w䀬@%:  \yK(*9mC {*&uEB709 P;41*ێ.OW{mj93S@2rYόE;,+$)& 7zkgC.oB3F`WIiu,< "n.v|.nNCbaHI&x8#95$o]3maӸpD\7!#[MA''@^nX峘dR| 䨚`X E~@2`hSnhBa0jZ5a}CXwb v:˔I ca59”D`dԒV<ڧ~)-|>a8E"d5DQz5kg!J3@U@DhqATƞ@P 7!q2DScs":$<A/0LXqzlS> 4sDMflhxM2z`%12 (% ^Fyf4z?a8/Z #5$aMqfsze SFLVn<@@ G j"A|HX}:zap NApA!.A>!Cb|u5jQ:π23 0L>Ć6N5toy8sg8~3gjр9"Hsz0C''';~v( (Fdy ;r't@`:09b@#g,`"6 áFj&JzԭtZLvs&k6 2 @p;E!<; Lt:B@w܁oo^&b jZDX;aV Pt: jZ8eKx#>ѵ.}:Ua=?(jzN+>Aڬ\׋DygH<@f| yQb'ਧhm-}2ǡi!IB"*Ry8aXr,o_|_$u{Jũ_`8JuZOvVv݀doBIw4?c5]=VVB!!~ajf:Nf4S(uDPEM9ߕ.iF:Ng٫]x5|.&gOL?,:w^p!cл`@Q8 #]Gϑm>`x!u'W?wC7HU͠) B-Uh=l y'qbo4as' D6YGYH?]>trȻ>S>za"^OKg3uQJ jDQY,g_RddeuC ꜓u0LfË;c1;;{3KFC˺޽{! \^< sCuǹtx^A.Bd"IdH1ox'rZF\Wx趢1yJE@zٝWkv!sA[VEjTC=a٤ pFXHH BbHGJ Д0_l#mH_8K>+qAlhn9i؄&žNH0|TO MEZucԮ "SCzV >ĖWʛy6,Eg@ACJ5D|UQҺ%vsvOZe^qJ򮲮j- /Jo#r_=}O-z,'_m2My !+ܴ ꍇ#Ufۣ*;$:[QutXM;熔tWw`K: gXk\ޅE1%[yﳔ'iK E(&NN !U(n5mAT%+U\HvQeLھџgo'>r[M7@Cx%0i$9fBZHP'@7&nv$n=bԩ7XzMH 4Kjk0Sx2xbsLI= #*jVGf.u13̧ݾ"@5 {;X2!q.Ƚw8x1Id0)n<ȅv>T˭T`x=.+OieSG Tã`5=_{W8A-&IJԂ#eS̞3(|$A,8n;̫5VGEe/eWIJ^!>+jD=J%|u=2g_W5)Şe٦`~5f#%fъM,9ٱ1UPXQQ%b.³g{\-AJpǰ-g8C/ \I Dk6r6T1<^ J-u$8*Q<]ңq j^얕HrSYEcRю#,xؔ8-V垈U]lpS?sZ5Ư$9qpZ,il':ngު/g[>Bz>ڙzS0ppSl9^CX RxB5/i2@\MAz_,ZfԕP ۱Ɯ 7IU~_rجtz_slX3YI714rKW$8RXDQ9KZqC0ET2ydoңH9\~=vr @e>dڡ # <}Qh6n=YO&R[kJj<*̭W{V%`q_ttL}L7+ 뮖O<*T|T`a@~arZR敯En#lC[!΃LJheYw7~Pc0E$A D=V{{^;sfr eJdo֠ެ؆]S?Q O7LN6@upXp\nզ 5ߵ ³? \o'z6[~Y=RCp| %! 51'p/ %o^&j',?ڡxQ !ogr_ hnUO­$,PD65)Ă\͈*LluHkЮ)^}j] tlQcҡ㫶աt38jbnxU[08,jt8΂!J0AłpD-Ez4j~ 2s"Yg5W5VbfU?ǃGe tE5|ܔ]+!'G:bFzNdKpT%j5p']QA+>6,gfsK~K>~WJ}s 7I<ȗJ(r3CWm/֏f Ouhwci"V^|uᚸ2 Dۼ #"4-ttܞxm]9 Ho3YLʼn;.++^Wn'uU,h6  :lKR揖}9/>]7.[ln! ڦ*@uyx9H qth5Ѱl'{Zתbb o' _`kW_ Cp%x\A`4шjOu`&X?2|^.{9F"&n1_1`Bq8M*D,?~ef;}fȜ&{tfwh16^D8ؖvZH= LtV<IZ2o i2@rRlj*<} j`1"fH3Z f8Io$In#GI& kv&ԅD%W!LTlϭόishvoH@|)J5S[]3gmmE5]B<^䜜9iaApͱi4sZDfz Y>zR|M`Xہn/_v9$Pܗ1=AF/Sd͜ Id»NO beTCVyW-H(|}_&ذ]Ֆ<%r/S^ \b:2 Cm.qAK`"MI/ŵ6*2' URކut Ҥ%,tNu!"EU&5T:Lڮ@6%W~;Caon]Qڊ+z0A3[Kޢ:S}ZkMXuISVKZe4>TBCSë>bPr!b#"~AnÀu"6\(%NBd?Xʃixo0j9ZF߆v{7< ,[fôbi{^Ǩ˛xk>^'huٳC%vL6k0'-lm$5jo1eD}NzT\/, BBh[RBJ~|Ds gYIF6>5pA2.0d ݀AB|xh?.QHȽ̽ݠ[rïp}?uPlFBL0K.-%+eLyu `KܢG{Dۥss?Hu_>l4I<(iCq {r:GJi@A \׽0|HGn4 7޾𹧝n?ܐCt)t<:L[FYQPŬcu3g6)$uӟ!C'~Pu{qdZ۠_RD`D=D~[N~o_mn]Mg2ލdSR\( mUG$vZ:8αR5#uD1#t vmtpWtmʿOm)Bz@Hzrr8R%enʰcgݸ.bup6} cNڲPb|q.HG^}ۧE"zȊJme >r 9~24Ryb y||0™+]ƺ2<~v[o6xsH\Nڒ}Cճϭ:2p'~YNvl+w$-2."zb1&m]CQ3Kp8,7a/wh]x dF8Jböb2HPWKǔϪsѧo[(7r:?pN8&RsPRᠨ#2>,{|eByK/H(MnM; ro]2Cc6hbk1I hOkdё|_CU:k v>ա| Qb@r q,g yeI ="T>R52*;co䙶r:d4I|v16ZqIrӰ,c{>ę`/"A@ݦ" pWm3!RWr(wJ؂ j,d~X FCjP;&F[YW3-fʪ!|\SJzZcqET/^o* A(噓=xڔ;1Ahj7':a\Lwۉ=j c< ;j#io0$Vv`#'sA`y6s-^XE/9vΖB٪d$S=:^wfP* y0 YLB6y<{&butClm@(wv!گpls0BйP; $r (Ftѷ&S.r7dl/@]LlyC*bU`mkg_k5x6節 ڧi!6=rz'^oY4s:d[ah1-7sQN2qr dorJkf"Ʋ'I9W!t節K"3M`eEu4ɏS4q" !:uBE%4 huAF@N(EdW; e;<#V4y彣X Ru;녔~2}_ ' AD&Ԛ Y=e$8Sa_KDwY1*<55ߧsX夕G8⽰<J(R;t(Ntő@-[DQGg9G& F|f iL,RK@?P+U"֎st {t3CAC=~R"l E: ԆNssػ Qd{pLR@QO6mD}m;eK,wl[KbB0G/KBYsBXu`ۡ#׿?#jg;67E/ 73LzV@wVxW|$$me?H23'fXGVbJTgtٶH?c9ImIDv˅IXR;5X[ǘjt xv?z!+S|Xp[,ҊKP>t@Sh,ۍ)qhV4ۡ4#@\[I^QsRPόhLlJ$$0HP(ݦtu|3lSb@疍*bFK#uC@d>le(Q,&^#/DE/.C^ 7|{զg 8{J2sblOrmjR!*܉.2^RxD%OV7ˌ7!6x1Ԭ<ڵHMRv8ǹQdJHIU/x_kxS#O^:^kWFeƱMؠ63+Y%.$S~f3&FjGWhNe7K;zWp 7"eefG(P|4$׶ |΍!x3Oi.i%t{ax#m5m֫l;~"5w{s<9-8Z0w7 `by<g@Gz g>CL6>2C_D)n{dXk8@t`b6TQUU^9<5HyQXFfc{9[֏r6'Jqqm&XU!rVm8-qU1z[: !˰ĵm7‰* Zu`nLMiDo|zqSPCSlE3meAir$jj5U|ًgPvɆ2uÁ?N_|Ebjٿ>%_Ͱn!,|ވ66G;TG YMxD/pb{$Nr?3&!6(/ (lA{h|Q-0Yڦ˨T\Wʇ=|;4ga' xOߋYڬʉY0BYN DE'~JH|{O)0yZL/,1ZA}E̋C@s Wz%s[*fاI>Hm)}VR:yT&֊ܿatM΍xR؈UMUƩ喐B/G!xb#Ol/y!wd1; Q:H:>=K[0ӍruXX ]&KM+lミ-\_&UW䮺4Hwl$aow(dr)/`)|ф:*-ذ,ݍS3 JTw~YLtRoT̈!msO o0p3VdJgG8|O_KO[9==r.y![1B)Σ0/#hUQO;Pgm'K}L 44i"ª Z,.h_;Wq~[f^춳JlrӀoO@(E4N=4sǁk,b EWLxTD@O-G05ب&10~e?6Z8^s'hP;_#4$涳\dhr(pa]:=T[})voVⶎMzV=8, ~C5׭?**_zCGOB,qrw(586%{@il"M,svɳ- 1ʕ)3: 7tCɝ,Q#ƊH(]H@afWwRiM- UG yd+Xv"fIǦ 'Q4/Xz_o,ĵd)^jVE*W8iBpg_W⎠v^, b!0 ,0yfFd&5}%,>/˭J>|U#p=|8Wq$p6!b'9߭y ,TC2y7VjB)V+bj||(\Xv̞8E8-_L]XDֲ;2E |34JO g6Jd婕&# aػ2" O7|AVlvG/DgF {;΀F=ٞ<޾{ËQGyvsLmwLTyqcW#AXՐ5}W3>A(2XE5}&cAQ`P6F8ڜks~?h~,@b݌SiQh5*/n$@-\̟owbEt'v8a AlLLJas$ 9 p#TCV \_s>co-V,1Uqc{ r62,X4LD8‰\ށձr;۷ܾ`wl V8iNp?!GYs=UdX8ހԏ/u4~kv;ǔDd*1TW}VӇBVJLsf յuWK}NW;}~ۓ2]V|^^ijqұ[]K.؍ʖʩѕvgx##kX kTԫ(|A- uz =8yRzڡw1~~w12L 2?3O_`h̏ԠsYx[%RV_p~ TÈm!Wʑn}MN 3oaoDhAYPV섵K1Uk xw~ -ޒ1S [%) LM-\cbZn0 nd kvyz&ˁɮu@7 3?F\Kf;M4tOz?chq3.]bFj[E&'ޭ]b<&_Tֵڵ\\SaGo]0fgi>d^xijA*BڣXAT܀1z̓7ɋ#W8ۦ|X\ ݑ~MƘux+FFT j@E8ڈ^~Sw؞(iDZ %%d+ Quد:³Ld7l׳lz{̆)##^5 ^U:@,^ *"ц8I|( Vzi6\Jʧe|=]ֻ$+{xf*WQO2=>cpD-~'UX]Av9]IH-#1y@]\W W.a"i˱ڧA-pEOjZ7L@ s9{slR.֗Y/6ȼn"c׶_α7ˇԼUQb0ewb )L/SF耷-g1 ~u$̯Mt;wEx(\أш\^Fֽ5'#s軥`:O,KU8R)K 4XZ |ЦoD5So ~S/.={ч찧b6_#{OԕѺDR̈1n[iwnu& Z|M]8Q iE}p\,~?@TxX')t\mb!Ѡ}XzlWY$+{g#<"פa?#υa}B/ͩ^ڀ+jX;FBM|5ֳRo :OB"(@ӭ'"9˷:g{v櫭#pLZ~~x}һyh1n??zp=b{ϐ{F 5GY<~)~c}̏S{(ar)e0"\<"qc'8,D2y\BCHy%YXꪖ2]oy\oə/ꥺ4G!B80Yt@bbc4!P1 ²KA#@e13X#lav}_ۿK{pkGg峏n=?{p/}ggfLd2,_ޮdv:_N~׮4+#-hbY$J bΈ(÷gQN-J_l$_oz+. Cy ߅?~k$?(!sg;YWbL8^[bTBƪ{PA_ ~_lN6z;[ns!̋ز"ӈvaMmg$ǔ޹}lwq7Ƕ:wṆOݾq <;; jq =~Q=@1v aSXKDMz\nWĺ]ɈrxږP5/ X0 ! B)#h?~S%DIxz m'fJ.R炳| 2Cq…'u];]I T ,<l4d&(EDvpFybAt:}E{v:|2qHu&0ˤE/$,.r$/  q)分mHx i,3vMuJ%`IXD-f( Q ᧠y>3O9wϦ:9ca PK}B p'[* \Bru.}Iw Z|>FCJ,7M3XZ1A0Bat 9e(_$zM'3M!W0cMdVLMp? {qnP,~KPHyJ=LP~o M6f gEV g9 IxbѰz:_5h_p? s֦OAry).P:6q A\lh/t=Q 9lRKɠYn+$ڸCM~4lGsˬ<[!A#4CN+GLчn Kj1ݮV)DF(9$ZEKc(L6IL+jxkQejS]g8w<;(S~i4Wy ۷<+³r!L@pf!&̙Er <"9g=l Nj'ڳA[ѡh5h5uid.^X*hLnZ9iN*!FDa۱zS:#WD!"YfGFJw;+i'5k PG$Gtr_PO`d3.c{p Ġq.[z(` &rytv?+"L =bܰ2fLp@ 3> rE0:Cg/3 >RDdZ:_R@p4&d=@44#Dj 錚HqQiې~CJrL>`ڠ֭/򜍔jVц)}}϶aH9]l&nR<Hd@`т6ؠݣSЙzY*[r ˚}CJ\ArtSɪw7GLrRHwPd\wiH+Rz Nx=~>Ynfl6"RŢ,γe&!ˉIŦ$kا{*qODS d2Gtqjm{ n}SUj׷'sTtH p6I;dwzfAo޼ ão=ܸ=zl_ d9_8R e2J ú(ςbqJ!!=ZSqC\@|p3]ϯ%\Co[r…:nCZG (ni$է\5iONywC@E(rI]D]6U~GsW Kd UYIs/H {""Ml{ ? i RjzZ'? de'Nn ''tp}Dz[ӳpx:m!/sVxo9_ɤDFQ屁߁AoRȩSB;8Խ/x$SDj v.OM&@|9fZ 9IS;˘UTz\V@gm>y8*&q|ӺӗAb3d9\VaU ؋q,#(ZW4`|0 e\ H 8>^gf{q2 ;& 1b 'Qb`PuTAbKhD][/ Ao8Jb<\5l?܁ ]zQ&E%5:19ɢ5 yX*\]Q^sg2@ 1 @3&[ë@=xh{}&4#}-N%+OKQoWgxC9*m9 )* :9<\V:y4Y7`#}6zn~w )JG6vA SZou;f*'uW_`GկcJl _'Lf .2 TKIHfVn%9x+V5(#JjqaJR!:-sgB ,EyM]%il]3PO7_jbAzZQ;kqxl"^vF O= @w3!Xk?Oź ^G86Qk6@BVy{I|C;GpՔRHC?Kkz7nZm\DQ$qAs%Ql <.Q2 *%YT9OFK"!O$q2y^g 3ĵօ3N%X5!wI+szAs  N G# PQtQJID1jhb8G6㕐>?% &řmLf)Dg{ًUZV Uq? 4-xn=7q@ո=Jyd[|Ad P+z;s7eVbIJYVE8gQI{b 1^J&0'M{|F'rCiOZd"Jv2u8PX*gUFf+=º}NƄcXx`b0R0; 7t?G8; /9ng8!Q<$2d8:Zg8Z)v/s, 5ܫx6F;0765=ڼf+cJ(-*CyoKG 㒃c DXu/_XR^J%gfz>l^gpB\3l:BC?b$)>`ȝ& BS>7ې}_ ,2qOW 7t/EK1x+#is M5pCeJ1r$:++-'Z0Ib6#,1` *$߭S@#=A@b2' f]d #.F5C2<{J%Q4R@$"J"e$!I /U*Yeبƅgt7kj3YGLܰDn<~`Pj!%)uinсd=wcbz!{Zf DBi|G3JF{#%$]Sڅ6 znfv~H-:ڲx4jvEUN)VX$ɣ2b#3#aQRdY= Lޱ<(sC?[AjEZibE, 4%V[iHFҬ5PhaI I8x=P-$TCҥ`Hb[O#ci1==H xmP$wrq ,2Y= 8Иq? Le% S๬񈊴r*n}쑞x6.W{H,cHun= n|8 kƀn`!|Ǻ~bI߯ 7&zglGV>-8A2YorL2XEs7-XK*)o] UhYa7է뾽C!<ރFDbn:gZQؒyHuM)-Q;!x.̖fM!3=SBn@"O JcR8o$5sz O_C3 $*>-v ٽ֑7n6s0ғRFY}&SXR ŋe4"Y՝_LMjjדJz 1xAH tê)T Bj4}b3/'J-@OV4E$rQ׺+1ŀX8i6{+}gt*Kh*rl$܅2-Xnɽޡgz{HK#b WUkO$.xbTkBTNttgR]Ddڴû"SǍ!o;!-̷[ckBւ-Y(J`\j,"օWa|Th$bIAH y d7&G1&hE*Ը'u @Aa%^ '3PѼ(7Iց,'ˤȦ.5/to3qz]$fHXBbfP62TI_KmDᅡud83MݵC1duqI>W{ *QeЇZD`?ziP7'%kv pw DmTVDA:{ᙇ DrW y~ZSQ I*R2̰X]XU<ȆP6msa*m/D{P姯F)օn7﹞e9o|ZK$ɞ^E\),t0UC*Sv>@8Ibj:6Eԛ] ^ %7;jTZ$_eTg qB|݃%*yQA)(:ؑ&WuDW.kt}_/|~jl;{r0QJ`Q@$GDX*ZAzbCۃa 0p<8H,(cΈ$Ij2ŀibSjY26Wz'Jz]/.˵#\ŜW'{1wІ4'ImقF+Rxz@ 6sg;#ZtiryS+b !:9B~SbJ5Hx 'vv _ĥh`X!-u}UF 7jbF:(34\SG"۰@|u)=@q{.U3gChyv@Pn/,HRjFwC7EeYJ5)R-fSw/׭*R7e}2K2b_R ~o4#\ᥐ7&RuH{r\T_RmnSG׹ߩ-n*k_8SHvجFG9Py@e!mhiy-.NJ"ͧ)ó[=.i×Njb.Yڧ@f&nr (s,o9P[V9lG"ܳ4C>̘s0 v-zRZ7hCl>^ɍF}i(ݽ=pT=KH^/ +yj3/3UhnQzs={q?1sdsj3|Jڵ?/PQ>L˔GIҬ i=h5Dc~K;: '"IR-m]F@= [=91 DzLsON険H ;BiDByQDv+$0D&&zZHJ^.<`#Mc%u2&8$kmjWؑKWz販VXdNMHcMC^qB X;,Cc7L8aԠql.[m!;k!SaԿ׀.6} xWz;oeQQG s:Wx e>8`Sqѱ229N*ucYdj4t~tg+H?u5w46ehЪ l|p6ȃ%UkqeO `[g Q=EQ8}ϔAP0:wGvݥÓ# 0M :3t<RBgccӲ[`b&L jn|,mSi~Mc4ObfNH5FP_ȲƣCQsB%b!S細g:arG. \e$SۖEC; Nݓ۸6928.~z 8زOώADOz9f3|QU @Xl3]7,p`)T*VX}g;  oÜd,dwepTL7 l=y H, SL6|$퇤ηtHV-UQ4g`5xwő:ZR=/ 6q ;MBVY _ $4ӡ  KsfcWIά43@[fĖ,MFh(~ sAL*+Osu\GҨ7Z'J3}a" 9r_B`qUF*)RX?ƅV5¶vD_(_%wwQz Zg \7chWT5( \7k;ḫ|Nt5nb 8!caZ#:]Gw |\=rOEkBw?߱~u)`.980x/(ɭ ʰ=8{e<[;cc<でKh~ 8QxC iZmH; !9|cG'|\MJnd1Kx%QAΆ7w(=1;-W;D! =5tf~bN0-‰< Z}G^5:~ K|$! 1,jNТL"*H56;{5Dh@_Hd̒NoNpvBmլCrwp#JlJ 1B0Cj joR1\*ÞOz/m&fF*'?P7ru7֚|ILwhD0c" SWQ p ^S! qy|>ְ}w6LLbvȭv|4|UnƠ.Wٵ^иMSap-Ba&eFi0V*o,l^_H*^dML%1 FqKȳ,C r-j^5kd';|7{X8/t3[^EQ֎Ԥ ;J-=孠?pOoH6ƫbJ\ D1޸y؈2ؒ7*kOn(lٜ\2EvdVnjrԡlLEV>P;>P3[l} b\f:2k"iv@6Mn}[F NJ^-Dj!Bnk7F뇨e4y.!so@-ߩ?U͊/^@r[,o3% QFRu\>i8 C##1akψLFzp8t=_+|!ݵO-@M˓kj[if]#7+.C<&i$qKD!_.ƤD`*OhFo;5B/w .vl2///G8sTe;xސU~XP4nmVז>F/>us*Is(j Ab2]_*W f9Ù*R@i[gfN+ P.UհZʄ∷(VgzNVBKyC<|l˳""0٘WwSqxb Fl9>peC(Gԭ}u ~s $͋vO&e Xd;斶"r~JeaQNj>Lspˉsb@!FGW]d%iڊ/ʯ1 4 jΨClh^+}&v> bۋ3FNwF\d2])>r°ZPH-bQ2c?sjET[':Ҿsb6NSvJŸ1"8{.MPy (Y|]"8DV|CV?qD)!+@yb)i'vf:@lX6={,빀ōb!Ԃ;=;v񞮋|¬**_ />4v*D_ +mq5XT&,)2:ő/ʥ"B+=6{ Dȥ)/Aܸ;oYHg<*,Yas; 籌w1>u=-/e|=<2aeN;r@%4oInNrŎܙr\Rcz'>`Cy_nWO[p̀0$1+ $P(Ym%ȭSԎz.Yk ὞H`xkuK2I]k**oIj_Ŋn$mqV+έHE!M[WD۸Z[|&%:#JD fY `"QDͳj- ?j3u -=@'sL,Xլ:KXf!]5~1?  u}ޝes?4?|䁞7Mcu=[/2~kT́Bkp?;Gw:&PZ++b;Śl pzO :hKN= s H嗢olo~ǡxز#,,/2 fmpq Fgb,RDMG0Ď}mSCJߪO:ofKpme||9i @ƌ /vBc~ *eSz&ZlKt^?DfZo7˵>zdgͳ__ғ~d <":L+MLi2rEʋ嫲ۨAbTT\t-|Pwb>F oq+tpr&X0FYEf, 0 aFٸqIJiXhWEr"CARhRm[!J`)bŎ;H5wabڶU5;Jݘ㓚L\^VFbk%s1xl{P/R=PTc;/ UqaJ˺K/\$:̶Lѳe$ɳ-Y%`v龋_"mT+;oEk-̓72VRV}h WFO:T7nBMڮjL#w6 YA]/>&4Qk@ k\(5k:]N 1lzl[`QjgeW5jx :nGg?~ 9 k.ю3@nh\lv4DwP(n7-zN!SG5QQZ$`1֨זo*k7z_>AR-֛I(Rc}H"VWS'r<^[NOoyǃ׭Ǐj ø{4ԡv7B R L' <; 9F SԈ_x5|+Jvڈk;U*>mף'n^yKK)V̲-kW"ωMs(eČ_a ֭ {61RQ Ύs&MH:7|UDf48wX[ haMײ 9!FLTV2/)ĥSm!Dq&OǛW!$UM\ |!3Q^H;!u;sIzT`[.3s"f;^~:IYg#b︊ M;juQ+xBG<~ɨ xl|xQjI#gVN,%MdYD/K[`U Dvjfu`@h/+ ĮBFSFsIdmhY/&f,#HQD>iFV$S3-2>tWGF^0Zy:(z'RH??O6弥:]Cps S/FLSw)rEnIAKtb.1Yݲ5U2c`L}) 5[u}&WW'6#pcVE4jӣnyAok=or o+^0-0Da5:Bq ϼP[>_33Ӳ o4sS쵢me*R3ԘQwu: ?Gf||ߗ*j j;G\٣ʜRvч}g=n\]Φr> 6<*gAv%վ@T_^U,sn#Zw P(`ȰNXTexδ&QШtp FVUfFWQn$)aD2i4LZ4U9Agy#3  ; ͞Q/BkȄ^2vV$αf$!4ĤzW~B(|V/~t>g@zb:BWBhŌb87.h4 pf]bD;C6_zE##'!~ h71hΦ5nY/&nQ9&,T9!:z?oxUw6dla<*"ܶA,>X@iI~2ua n6 D7 *yrVŽe,joV~}7t;_mX`UVd[I7(𢕙i\Ȗ$-Ԝ (~ZVE.CY=8d& @/` n:Kͫ'3j1߆g^UnZz($X17 zYM\MeQ4}utAK,/fϜĆף Y;=ΊA!΃O9HxUf}2="y wHBV_5 W"'S?F3s+̑E9Ps`x0Гmff$mIa:sqMQ-(5:=f,HWwz݄oOVjEÉ:q4֖s5W#>W>󪞽h"B K[T.8^%.Ʀj 㫺g Wpz""̅?xx?=p"rύR/D4|hr,I&Ic1e8lS$ <|v+:~:G8Z%DMIVӯҾvڃ[Y /D٬WF"ZrWd|A:Q{MAOġV]K6ņ n|+H aZMIw^Ճÿ|L$^b&P:J3 +pngXk-ce{eR}n2Z#Uk}ޓm&KZFLM=eiV\iZb"YyGN#aX XI2m25=r_=X-2, /'6aEc[B"U|H[Yig fLc6Pt[_EH3341hHNu_}K;f*p?!tޮfv3K6P1'>x-,{>B8WTc>L|bсjG]pR"`jwԊf(;X򀜵 /PY ˨RաzJ`{Sp*]w^iX=Ӯ`r3('M~5'Toˑ8sDo4yv)-۠6@H3 ',os(緞W_EƄ^r< 1k>;~lZr^e)'A#|>3C6R B!Tޞ /tݟ*"mAShEe ++"g$UǤHIQ;54_'i(1pfIw%eoOkZW:B*/:YQqMz.Q 'B;L77vh<BCDS{-YY'xˣ2kսyg^+_k(i2oTJ_J1ƌ1(E@!`&a %" R'0h hTy9ƌCBOKt|Z+sεϭ:Q!Y&rJ.F/C #YIMV-(](?Ȗ6#m}õ@80̷R¯HAsb9%#esg [Q-,fa$I.MHJ$/RV9+$|+(P2E`SaXI|$-GHOGo_箧 $Ƴj'mwwR$ ]wR2 -Z[;F7"=i#n2,tܮ'xG8ycS۩$\brrk2oKE S][n%PD8tJ$\KEQh046JJuMO[*ҟv.K !n A9f tՙԒ$qY up"]lI.HW% "[x9"2dT#R FwRe%6Y:7$=Ϟvąͷt]F6T*)aDx/ 8`%YmxWxH03T^TZou"LPTs"d 2" $aɬ ~Y`u~ zRgZ# (  2>XF$u^Ke+lJBxG> %dK4͐2y)\ZUeV PTD=Fo#l32Q#d_nEv~h +YyNɼ"s5IoV!ԼcY`,hĺ~mw6jwHPZ/ q/Ik׼Sh[d {= <6.WvJ:.<ݝ2=AHqy;Y uH- B麘'$ +x9\Fct8& 0 ?4@ ¯.W 1i6YXv9fJ"pkp})x(l̅o;Q(vE·%(Eyq` uJww qWFH~FC%Fvڵo}W޾~1vެo6ơ=I |=O9ϫ**x&xƻn8QK_Ѿ;lNRzWڷ q@hţk%y/E^:#R⃯8DWF #atÇ\ $P 8, +2_wH&2f-}eE>WQE¸~ut|J Oda1-G!^U X#ũ, .8.'VI Io0A87!%̫mGn_O>Kx0'+%0d*0$ @ Jfw9(J*KP2@}ɐC II}Ƞ 8Iv68AiJ't-<^y!rqϏ$)j(hw`pa:!&bi1\Vȝb Ēы!+=  }q7qc>>1ifi1˜:C8%Q;YZR4WVh 71 7]t!A='H$2pK($WJ U\$a.ܬV@0ZN")tGY~ ޼gFKtwKGq`9d=_ӐOsREVѴl.0Aŗ^2̀4X-U- zzRݼg i%9`Fd)q> qsMP1z/z}t2UYv5]WZ$.4u*ԡǰ 3 gd:ulc]ÐL6K0]|v_c"eJ D^)p~0*kE9?:t}uG߾|ĀbE Od78Dn(%-kաs1dv"uO@v=qQ*Ӹ͂t>2*-Ttf͑ԓ9!q2rVIꂃ1[vgMŽd|cWI}>~w0'(V$iA9KwuȐƚp*+k+>qR{!jd+}["M'jOO8|uS2!,thY]vo]MA+wXh4Wi F[G"i-0, A_ mXA? *%;99:7iz8ES0 ~\{\P%] 4;mX(7@S1A*8G\&j9({ ^ D`ﮠCG}_ ۺTT`ǧPђ%/z~o|e#V$f]/7aO) C#TiT8Q,}$w q#+:p+L D(YQ>j9U q*|ۉ`%p  ]R Ɉ'Ȕ0<[m],!as@EZpr'Y1%aYj jv[&o!}?x @i6%p **Ǻ3u+*i7=rF#݋scJ'Qs0YDҡ!.g&SK]: W`R-'v.u w rM^;B2B^@nF"QLwdA@| iG$U( tǠo?lqn 8aDR+EUe$w y0+T¨ȏbo"i]v{oo<, YZc0$ 5ޮnS{Q4ԅrY>HxЮ|‚G+D%) ΅&TMɐ`NK 8oʆwGI+,7gg;R1Ū:tjOI> Q50X.6+ @c)@HE!s)}hY ?G5]^~@cVz,'ugH(bgD`^sR(ҍgJEJt9nT]k7~upsIervO7vDW^&%P)+&2qRh\B:Qm,oC%o RQh<=mJ' ?o^rGMȢB'(!J}8iϽQ7XO _~(\7?yMtf.ҧ]~M3GF\C S;vamTlKm~;eRU8%l"cqXӮ\ľu?/l]H1K@rgesu G1R q uNfd JaCɌ b{tm'lc-2l1jnIJҕ4HTSGhD/bZՠ5 UT0;$44L\P9v4pܫ w΄L0 pzUzPW! JQ5)/TURU |t%w+Ϋ2O3x2(xF]zV 7Fko; 2ݲ* ++ua 9E.'[r@pudUT6fLk 68ȥPa"p̔qMBT GkK'Mo9t.'c%5$wt]yLq~/!jk&0el5Yߚ70 VUEPB&%/q $uGs5ΝsxYu}p11b}'wa뒩fXy <$N;r lQ:Mp HEj=%m+|Yzk)+yW.,2^:lJ/ W%M@Rڦ:ؗ#JO&nNkHD.pmyIe W0֨2w3u7k &XKZon/ѕStxzhc^Z:%\[&0UDZoc1|_8jp( ov31<^R'II%ʓiUpsz(D|["a &M h!+4=T?RXN7G-I1 ]"NYE"Gg$P_=Ca!|ˆat)C*؄Y4g n6Y|l%׎ Ռ,S]=y$oR8LiLB4VJ8o-ղG!ۈv@).z 5S[DSy!6 .0@g *E6?})J$Q` q 5(*Vi[cGTMvu0 27m6%N^]d ۗ2MehZQרjq.8Y0/PQE7UiX靰a-q f& KI?e³gаj3kNp)1I 8O)NN[ukGʀ7!* $:[Ncݔd5>SI߾}\Y VK8p\p-{Z`zKa"R&2?]8B5OFsy(ͪR(J#ǢuqK8~lT?Nk]t@aӨݸIB]UI.JX@b^ndm^D#4%Z1p&+ַvoOԽ}#58r:ۮ狱B8J,Wb2㴀Sq+y[WMAYBjdCu d;G6^m > ö L\B+h8ZJմ6q=Z_9o}DZc8c‘˵{ YxZV׎]iΑl[[֩,1K,G܅1) @?%7I]WZFRG㻋 \6Ւ$|o >Ԓ(T#3_%"w)"18EBz‹敠qddg{]t$Eu9r:k]w vm:|a/R w^=zB+j.Ƴ%ns+rQ)EL[\f-O9ý}~c],pgv5^L!H l?tw\g9Qu葍H35a ϝ-$ࠔ,`%~s=o(f=?g^`7+ѷ=jsv4+] WHiQ{ qrp (%Iھ LLHg Ɔm<Ś'P =6y9_l)1r+'9k,rVdB)I5LeԬq1=UEyt9~h2x͐LVvSe@?gO];X`fx1WS̎#9&`{%)w^.e:8a{ٛ츛cLс>s48Ad*吹$$!ޔ3 퇘-p5h,%Ew40FE'X'SFfxs,gbqe't~>A0qq h h.+UU8ݧ쑞 UXb K0hVxe4gwB`f1km! tVZpO0A2{E@aq2 p=1s}ڧ~A!n |'=7e?zݻetCNcA4pC"9g!.x4y=?wsz^G{n{Cʹ ']ڜ?W)7j&+3-+r03zy*ǟj02fƽo_ IXF0ukCg{\ff7_@9gN9d "Ī fw^FV-*lq .n-H'(K Y00~T=~z|H.p؃Aaj.D&ћׇ6,e}B0'( SFQ#S\^Ң. jbϨP|f=1PIxMBVLb\ˆRwuAru\pD3:0VOb5F~!"`~ tkCOﲐŁl.׋yR怷!I] \nEMPӨ5MqSE׺Ծ bs-DzQCv\ꥄ;URoiEiX~>!0ُVbd뾃P?lX-^vKIL~0yڍc5C !aaKyng{~ }"^r ɭToܫ~>{}_}}M#[481n8tˬc#CxWSCqy`֡q%DZtlڮyŁ?U p8yZeHmuwFu i R˶s ur 5*i ghfת #KI/9^r̵4/ZZ[tfIBR*@l:F Y _XG18‘:8 ==Z 6}/^ZuVf5g HK[:wնn>~86h"Owr3_IBUO\\7jO;Lx\=bR〡{i~RMu5R x%Lʌ3K} )6m8DN:ødPRŘ;eD͹Jɞ7cTWD}j:xt=^٧$u2;IovuIkH&H $W&X' ~׳E1,ɱ7zj I's ȋJ`K*\m>v0p'Y->^/_iܾ_(ג5榥n!AJ) At.KppإȬ^=P巃X8f8L} ʬbi'R/(q*)ѭ2p *U[UR򄱩3N8=#U~VvzLPB<hx>nR3J Vp~ ݶLlY;IG*l:QZ7kB񗒠tJ;sy*)V@=vAT"T5__ RK1#WT^hwGQN -hݑ)`WyGb\6+ʯftW aY INdygHG[΁Z" vrL T5 P[U/.7 X5R8_gX!{9ur(B`@MM 1*cMF\Ed9mؒk'Q͚RmMmKݹx޽ !ȞX35ە@Q %W-nz[( p:~h1G wO3 qߺKQel`#[gHA iJe_k5ɨg|50aNS o^_H3*K ]U}~}}vq0D,4S}H+%ҝ$,8rB۰QkY1P]h7]8m ~j]!$j΁ QᨮPd@(dC^=*<|3\l|*84=0x=ϸbp]C 8ZUS2869p/ș$O,΁yVtQi^=5|J=? ]~жM- HYqXb-Jd![vٰBS:LJku3hﺺյL+VtB" ;J*&ff"+M7K% Wn F{4!P7ah^t?>w| w!Z\ Xw*$C{v=jw)3TN:~[fֽ^}/4/*gc%K.}kL)fnm 7ki_$x [f}q; =y ;ǰAHoXYXؖƢiXwԲ/'Xݥj)<!,iFTCz>d{ssH{YOy~6DS?W}힧WDOÝv]X~t ; >D0v[ _~kW_g1gJt;bnN(y^Pgqs7eIYIJP/z}l@sYbp>x֍{w >%Mf߾>: %Dx}aZUfbB4ˉpNvbdq[9ꦎ%Jд>!P=%9QBd8(8jL?~* :@7g34s.0vo@G` p308ꢉ(oK@/֫:pP)8D78\|<& 0$Mlހ?pv>|.&G~%GW__K@ LeG"!:F Z.sYi>1T TrL555΢1#u*aT\:+Pp8} ^儕mSRw7Dz1-~خ[rz:^&W.Nq^p[aw ́GWxއfV3mɏܾcX:g +)r]K//x&R{Hjz.E0f$hH}%j5hWIa;wOQ[DoU.n{ AFn %|1 $՛ó^"<Иb&:$#"Nw)Y ^2q/j*=kJILkwǚ1<(z D Pb3&fnN xzЖɰx7uT_ŵ`Yu]G1*RoF-hwSĀsqҪ^BTkq>ZL[ u(B*~rp,\̅-pe7LxUP#'1;rIjlBƣ%~c$4e#(%V%b逇2=Zl.Q.k\"rjG7+!Mo-P5UU\"nœזFCZ35)W 3EuܹcsfUH)Q#w>ϔ̴i&+*aBk@p4濍ݓi/Q< V?jO0߰'GI%r@;IB 8 ̴a֑#lL*BJ 8Kt'5ξ]1AҲ;01(XB)^(<2(i~`YȊ<-XV^&>Ћb5+:^0](Uܓq,qfOw~=ZT^ѕJtTE}fl0 jK^]9η_~)Jod9$q$:;h8=@G`C4 A; Cp/lȰۈj}@TmFg4lMn"sE!̫pgѝ%ک]D#K:~G][͟)QͫhuIq]2Q'$c VMnSs-w!ճb_ >Yzj=mr+2NU aq +<( Γr&tW`+C>c'/j g,Lpm7wa(u)Sqi!JJ\'pnn_JХI4Q+%ZJ(=Tޕ5EbF?)GJW/]Gt:o43?RLΟEeX,Ulj∣“f\)OWa^rulO#,cl3e0ޯl=?r\g8_L&\(K&,zyJ!zC X!`p(fq/~h'~ϯ$y'H;?s 9:y*ʪj^P˨^3FZ% }7SrH\ ;r*!a(H1Jp$֩0G}؎ۜ#ތ^4*H"= ^|yV`u.Es< _ܣUF*Rp 3QoR(HvDZ%O P pDXA}7&VյLf  au"Vh&|˖C1+P[ bGՉ%ejdskXaj€'"J!=Z![pQ0sjvq6l <å`cl7ڔPA,HRwG ֔0)P7JD7!PS+s9-BU=q"-ReYzt)NtЭ-SB@KZotbRkT1QYS P.J+Ap =8iyؓ7X+Og Z x:4 }D}l{9(&$pH߹f&F+5@l_+}'SBr|0]RVN~݈wx:pS ^RORUE m( b7>~K*#m')e_䬪L3uq(Vf47.knf78Th=#3*_yx?rD*aJEc؏P\O bU&,s7/70ӆ2->;ƒz\9[/[E]^+KKk3׮%26qm߀g9FIؕ;u3^22-2<'whF,$IT.T`2TM/,9pQ8;~w> o~wNŸ=+8/Ig!<Ӷ)"e%G*oݓ,JIyxRpHo<7'28@py<_0yF9Ɯ>XG,i)vW#%x]OD:MS*ДBTe; s90ΰoUM yf-n.p=g ŝ=ta3yVXBCQ}%U33tUgu2+Z`m) 2ր0VYkGQ)Eza&H!Ȓ,iFЗk4i$s2V뾼߻}{9s򜓏_яt?Wﻒ\o|<}^}lX}w?Q \D@DEh6l|]/站9!EpjeYLإ& !rbe& e $>Hzw!cQ!8 kHne~`ROHSz=oכt CB)$4V*dZ# Jiflדb|r{+sQoY_u)SMAq_qj)qk FT;ħEVv;A(yRfLV* bS0%@$F4[ZPrgڜG}^TR|<+dȻD^`O#xN=@7NXh?e &=>e1}b|4:)T,1 < \0< x S /_A|߷h =H>Wm!&%s52$apMRf2g;`Z|G-ZFtK R?|_Ң5{Dd5R)PRpEvP\&HȔсtG:C۟¼0$.l]$<%ad pe)A֡+ ? y)hF\K*lYDwz7wTo:,j.qI .V͋"c@ ig<{7By1}eYx޾S~v^NbC{ulJJG(i$q0RE@uG ZAtXk Ƕm/8q K-ځip?xiRZwO86#p9 UNc^p}DB@(~ c) ?c@ >O ,yiΖ+mJ(m.$9]ߤ4RJsR7M1Nf/o*q.m"ܑ/$ T2rE$6Y>xZ^;edHl;ߗҷ^R϶LIx`J"ATKJYKQ%%~fܳ^>{֢:!}ڂߡDεL ,dBrW-2컢XNyp0ծRڊ[f4T}li9mgT{\;)`'iA!m 1)KBR|l2CW!5T/nPwA)@JKbM ̰l1sy !,!6ެ"j$7=RH+޷P }Zvo]0PL0@1 a%%Mx~gmrD[mm}lgl BT{L=8€S} zjw7 2`zi2\ﯽ %\Lj\P| !$.yrtpDm4”^@ A2:xuݐ]=AQwLpc1 1ـ.:qm* ZP.,` 9wZfD%8]n/:1WQ׹qնy D6&[`slQP9%BzpD0XRthCh*;b{ꟂY?`E {jl/.,%8D>x7R?CP(]XiOZv.֎J(!Vj"GN4uL"nrCKcy^7%p8Lcu &lЙ#=%,#Rc9a7pN6r_K! `9셇A8 `zǞ[(qFcx F#:a1;eYM c_f>oscc6oA^cj\X6n;u'$IB<I!NIyY~כlyd4| ܋B X+ V j<G8  *) y`z,#]Y7:b糖VX/ku?7.v6.EfI餢DM$؅Ae$5 `0jif no2}q/K1^n'roE H+-de,+eFNa#ҳu7 F={2l^:\dZ<>-WjaC{xWڬ Ba$|M}#]gھEet IrFUV|wL*Xjwpٽ*,:@45lHHN o.UlUyv{kTbhi|#M%a1A3!DJ#׼OAE~+!5(k}{230y_FjRIQ$INY@L _:'J>0XFK'E l)Bl]QޓIA@bοfҎ,dJA-,mPFeK¸ˡxF}Hoz߼sq̰jQ-{áBdRеZEKX" ]& TE~em$ߔL a/@Ņ0L0޾:`_ B{ `-l9$-]tEa 9_&h$?7r"30_uō&oT3sK]jw𛦹CXl |9MJ!Zʭ#yXN !0G\Vt]-T9I @6`y" X ,DSlxl~)_TcG#˵h Dž~&}$tn39\m*m"?[`ԇ;˨p]tio NS[\U',8%M]|xtE[8Uzg V8uu]LH%i,ַ'cwwr;v5ݹ?g "0ldU4D!O!4,.H&uB34KYjo!CµoG^ j]mh'x^6)dVe FF%PEk1"GVC B 1Z,k:ͪf!HEl`H0 s!| "^ \FfQH?} l @A}#|>=w;r}NPvQc2uWAvmpEm a(L:9kН:ZW|(MY^kb^'}Pw  z~Hk XW HjQEǗ脫y~\ z^t䃬L##ܻΛh2D&x^N,ipׂAptÒ'IVN^7Se̋oŻ6#7OE"23+_\JT& `1-eI˰ma >)@GJ/7vWEDAyO !,4:<Xi )M=.J{9Qke=҅mxVOY 뉤T[I(ʞSpV9&cҤ=n wfg=L= +#9! ,yYҶlHZ"ܶOK b*]=8#/,t(; '9qSO5HQ#jhi5w/O \VqtV@x^^O|[;7H|S͓IS9a6smFK)=w{ÑN t}V$C<!9m«IDӍmQ"힨_gxپ$Iݷ"?lO&E=QXU iDҢ`%!Bj[e% sҷG_Taۇ4`/1 $Cر^MbZq$m.r kKZ̖b 6U#RhyJtG"esAdQZ@Q;Gq]xAЩ=䜵F~뽦:j%Χ+пE'ra%4RdIΉI.J$O{5QK;i`_c y5JCt1y9=6G '%EK!trFNDTbyRŨ YS`.#,#+;k 6KIE^n"_XXk_KVh b]5#6 i0ϜmA, ,uR1ayUv&2 G[f~f@ ȰHܱV+tx`Jx>,aA. 6Mn~sXm:jZPTGVqSaE xv "yxhTRXd6dd\6ȑ`CYS R/팆vH( i2q*fU zw6jQCLȥoȊ3<("! I@ )9ɭt`1h )_MpY^o@'yRڅ"r e!,I%暣8+>H 5&1SU#|l^=:-;׾u?ܮ8k2"%l'KHI-`yd\#4)enV wzԧ8PGPuY詸^:8wϓeu ^xJ:rƴ[Y6mʈ<3&f/4Rp Sj6 >wu GuՐ^7 ?kدwW8j1 Kd VK'yF3 upY[ӉmϏ'qw3ں#Q<$JI D#2&i {J BKImC4(9obUN;!2RFtWr)ׄNV-$Rugª~Y!^.qS_~-)t3bUubCh[R4`8@^vx4tM~#"/#-JT+9"Ox$G'#SGhDG#u-/ <9΁ppazU;Gށ-=Э֛#rt`UvI?~܌^>f 2fWpwD%+qhN fƽv:_`qK {B92<1ġ(֜.,|h6?I0)U2𫟸s޷ibcC ,^6%#NվUom.=FF@GHoH&S9wEb8N;85g͌ZltؙǸp虝g>'UUe]NfK )V!/˲\3-ݶ=9x4[.'27=8n)Ubϸylw ;pO&bovq;cPG\wF'q}#;VcI)`8h,vƣJXoixw-`2)WڟÖNƋt;ͪВ&bI`l nIFuF|T[^z[A6_ +TĞp|E5^ hEU:+٘쬶*EaJ>4n,q_3N~\fP(XOȈ9޸ł"ΕC&9zeθpbGͤq,T z=_֏0.ӣ 0an00g(VJ&1y*Cνx05uXĩ@tj#zpNnDHRoѺ_ؒa'8[B2BLf^3ú6LhFUtXJ!z2r@)^o%<ұͰ2Qٝaj0ig.N9mQ @^JعEotܣc ! = lR; #g4bN"uu}5s!n:n?DΩ zNrb=ƌ[ԅC!q6"OjwNVoQ ͼ3}`i>8[,] cu縿1g̙9xE@y &ith_ Q7Ϫ~&!Y¼0$ lQE.S\gx(`w /:Nl;Uu vL'3ۨ/PI"*l<㙧b%'Xb5*A3IKM)^>wtʿban섁űZ↑%U356K>ab3_9LPb~ 2y vw$x%nQcqTt"&CUcr ua xĘ+6w|伉b;mS+/%i!J<90>mA鯢zի=gF'>lnB;w KesN"PccUy[|D[a3wld !x]כjh0pDuͻ=c+ڹ ;T`#»3DyQD%O^*HfIB,n,2bT} n^egs)Jg 怋pq]x!INJL&; N \,OD`)ґJ Ywzb]Qil?*yrϣԮllE}}bi @E)0Hd"vd},摛1n7j;jf7p҇tI}\o'l]BTU$̥])sg+;=RBH}p>$cKr>"5S|]CJAyǒs, 7B$cG!VVg = c:=4_| +\}ؐ*8hRѹ"I˒s HNj4NΈr^/B;muuF: "0}倐^p;Eg4:jDv5{I C9ӡ.EUS. 39}j %&Ol3Q@R,e㐲) D5U)EM` yxd]0D{;6.8lQYV +S%gtUuԼ\ۆKx=  z%d9 "  (řSDؔ)~':Js!a`)e…@9W. FAnԞu b=ۮLaD(B )8D); yUJsHTϧSrmBz}ʌ*^~9Q& y#@ 3qU[]:p BhɎIЇDfn! 0TTjo=! [L A<*TeޞgV>7Pm@qԄ*^U(j)8e^?\A@xnY/f-e\6bQ!S{d\QBj6-@`eA`ߺ#,! jOd\%̀H8%q$9q>u+q?c@H1*=.-`ںͧ\[e#qC}L un'RZIx6옩Vg DzoslM SgC򟮓y'={al#qY( pKld);Ռ72jiۄN9 D)p7ۆV\O˯KLb@XsJX UuZ6`U8N)/p3a0X1z1po&3uު}o8)yP&L.4T!91^)Hi/Duc_Ӽ ub ȫߑ/zקL[~ߧ E4LDj^"B7%NͳCU hW" ZVSpoX^pĎNOّ{DNG'cJn*jz}!}~@Hq3oeZ'1 #r8ͯk[Qw?UW' PpێBس ~ BwK2Ǿ㙒vUvU.BgN|gfV`+w_i3q3w}&NV 40ڶMV 27%%S>(RHކg:g$,d +wW'f [qs; 2c#x51tp ,C7<9>6h9 ھşi#> nòn6KRp6`ɱZr+ L,^֞P#IiW룯NV>:Y5=5Qz3&Qzw?S6}-!ڭ B-;VEb39:;d5û:)N]<2Ϙv/!" E]ZϮl2JT벯Q?&p3xdڮUh`-%BA)),ms0}^챓|`*1 sgMupH=6::#!~[Leb]%{Hz(F{!=Y:3YYyf1K89-i X mcyguV8VbT5m8]CJ DBͧUEh@rEyei TdK;F+x 9?,3֘?$)o $i9!+o/ Bi٩`'k*C]L 6eFԯ'SJx皷Ih]lj 6j^B 3LPA Iw{;iyJI1%#5d2H}Nm[Old;P JچʆU*~j:J; éUuDuVυ?9KH_PpU ^R4bc 􏈔 b]-u 7u_D-$ETOF@ڇJF A1MA BrQ4h;VzѤܓ]5 <5{yud:ݯõO98˛Ÿ-o,! 6@h2N⻙s3ɣFrH߹>bzH~Tua3'p bAH(WbʲFŢ C [9 ygNNGwrQO\FJSYq' Q:p}svuى+DPrKSs0 9 AB&;e҅Q-krU`at% |d,6MQͰeεl\L1IXil, &%ׯ{z#<ۧ=#` #?`[PyMSJ- #ybTgC!x<JX-:AKcjpQ0s(X,p\p΂WW)pC앎yuz~iS}#~L))( ĖY 7yP9 uQީ0caϞ>y=->ocggYηjQY\ppS4eYx<"-RIsXXDWsS@W?oRG>糖Vz8Ԧr.Ί*ܝRG,击]9ʯżv?E>25d>qie86yc"2 &q(MtyFFwuJӞ*׿oڴ?hs&Zƛ ^3  a,bUE4de^K.uڥFVh(D]w ]eQIЅnu@WOæ8S5}7Of~ic!x|\. <ΙdY?hoG!qTףf_@ε~ilv9!/0!f,b0yBy,(KQ6 cq7ӦH 'rYmQ +aM@tm;5;{UzTJfg݊J0`4|i)=HȎ6tYW:2 qaSl^rJsthLOUhD8 ^ze'櫨U}:.MRkWKIq|bN6h#X!Q G:8ySP0OY4穔ah L+ѻC47ӎnb쒈1$jԷ{Ի}漚z#47]6]`P""c^~Ɖe^z}zh=hYփ݃ O>/4Xp NOX\uK~).\g^S]XD<bbDI*z-8a8X_=F?z_ܘ IJ-5BvJ[{:G8* 3(ϧ崙U@)dPѨ.}ε+ut6_Muqw&PVQsQwGT?z5;ofE6JϦ33z*NtHi9B8±8# /KRb} Q}V2`#j*n_NύEӀen!:r5SFm'˱sb;wͯvg;TU)\4X|vg3ِz kw&>1H/^Lx焗eBXTLD² Ma`݉::džlM76ao5b6ZsSWSUNHQb!0"xb'_pgMAR]aʬo'OLK JII <) 1*h;yP ە!f/ՙ(?!b * Yq?R_sy :j9zE;,TF΅̄1z\CTx›.=>]3zՓĥ=vy^WGމשq%Gpt7(cLj^%WM`rr  \XwY*"mTNBmdvsd=Ml'oI!o6_eyPHLcZVXt7VwVX۠oW_2+s'IzU~,?X!31r-}LL: 0xT=VB(9 2!rRdE-"읃޻;nslE')ԀTr MoDK@o_JL~6:찷)Puka^}Oetok~jݵbZg:-L#$n =<3k9Nj[w6z$uti[xG2}R RbQ mwjxW 1 フj}Ur+l&({܂ٷդŖC xxo6/YI!o8Axڹ.Y7~4eV03+H~Cy ,G?ێ4Ob>}B'lvXUBb'Z-,Y$f`$$ɉz<"KIkqŕM N1xF/(!aلM-A",L`pbٻI$u~DlEkkq#un;5B@鞮)6"ؽU1jkw.pも .c8 %&:';"漙ȬՎE6| Q#m;ϚFl1S|݌Ց@.4Y:d4'HmCQjA3ϫa[)GLuF|QG='F&\]zbɩXdz&փq 쟱z>R =*4vQ}D(\vY8BHLp}ReQj⫽=m,UkXd{a\_1YHjf6x>̶(y ,.q3`RĶ) 1j襱I|usv~+mp/I$N24o>ء98'&HDZ`3\zJТv)uC@5LS2nzb៛#^מk9 wI N:x+ B&|V\$+sY/p(@HUxSˊn|1 o8! CJj-Rإ$) |۹,7 #}hx^ϙp{ #d>`;2b% 0VV pR`F9̚5 ]M]4tȀL{h'[MY:9`ށJߺ` bFWv }M[rҿ{IFĎ4s4kN탨|^FɋUUb2Oo~skzedC0uOok+Ef9z X 7o6$x z(/+K$+e\o*NN'Wusԃ H @YRSRlEXgN 9 YNru0t* T'Tqnm(/D{&zkaQb}$Fz)lH:KW^!oǞ}>{fЁ¶V:V:[X89pt,1vvu7{,5~ ƥ-ۮ2h2LBCHO .uvw&/w җ$TCyPjg z-aRҔIҤt rODR@R;;h<.&g㏏.܋Ʉz>N<ϻ39?~w';&Vg/w#Z}aU刴NGoNP[T<ECeD*ms9cv㳕{ROi FPJ ʼ$(BA5(5b|KpB O#F[! j|6۫ۋCͧs~/[ji]mi$Jbhm!UXaKjl?Ab/fmYo|uң4K=7K\ NQKƧDǣFg#8!lq{4gEG>Hw̏ B]m E +!=%\rVQ4= BcN(|'}N qVE?lrz:~)KY$wd=ᲔJ@8b)\R .2QF?OA`R's/ي³H O.؉ed@e@X"O樅J0AH AŊM(ME<],+@V^4uu2}v'Xu4z\"BRc}m@JUp1*HFLƄ1B1)|>@7$n˒HĜPK:n.9/|H{bO0q#Mxe*C$`鳯-cN!wY) Pc]/h\zT.)oH,eP퐪):R3 ¼1$$#dyq&0~w 6wXDK>( x?qۖ+_}uś~5[4Fs`y$!)R ]")_Z|L 9ש=0`bV!:ˀP߀1SQK aRUɓ,؝R0yd((ŎMz6RRh)G*E(`T.!Oq?fQy_+'qEZ(μR:2K<*!T̻KxZ8 6m$XYu|LB,LZw>n+O;äufgn e|O@%$ EY [bLI4KR- G;"sxVf!yh[UMzG{AqڇSgH M]<8Jp^*rhψ+2̹ Pv*Ծ]3WyvruB@hc[lf5pP\@Г$.)l!E,jYd=wb[ggQj?i!q{A<%J pP4s䕂A)wǔ6*0 9jh]6n%+嚀%+fbK.}򻩬J -ϓLv\"y`gsI˨.FŵݫdA > &8='Y<\nwv55XD/y: %X@]E\P9k)il,6^ycaSPOH,F^|Y"ɓl(:E+t/Ymſy|?tN@,2V̂s) I<p]1PŶ9y'QUQKkLgPYv[~ffC3aCtp1S f273F:a.ZYZRRя@mɍ.Ĵ5_7/DԷ>@&9"LsIA$U)q,Gn(X%c%6()M$1_\었"\b0 qJև7-JRNZn&!L^SRBETLբ-qzU fDg+t _F+@hu)Rmx gb_Ӵ˽K]]4qRݚΘZZհ V/Sv;C4Z-7|4d$p LMwd@7^-ҳ.g(SY8k(z^]` }̷Vo?eW'-Jl*"whq<( l)(fdgC;?TUO?{ʎwGH ̡$%KNq_UT_UWnGt">h>.f߭f (OH"SzZE f$iB}30lUѧYij^-l|(2/ n5߫jl=Nȋi2`s NdL:jypQx2szA#Ndىõ21"A-2U7 LRkzѵ]ó_TEc؀fN'8$h [R {v&H>JmCn&Zy:ˆr=@BݣU}׶/"dJ2,.Se$0JuMj#akzfcUCN5&N~54̓/G$yɜT@I“"/Lcz/&A}e@?Mf@")m.&&29<)e=xA J)&gVbjeI )Rx.)$`ZТR{TŶ~z^j:۩~!Qҩg B1^?G}We/ԥ*FzcT F}!@' wc!1J+ Fʹtkavu}CZVϰis0jA [!j,.cN'QpY  ,:O ?d[z%Y9 |\!]n}>~M+-U>yu-Ab& ^KTDޫVrEMJnU!g9t5_G0 )ΓIq򨯒I^6TV3mx_4PRz}vf警~@.\w\5kҴZvc2*{xZ'O&Y̷|#ZfdXe BIp]zW7QUA J5CTr*m4xo4+m3نWc_s];Ͱb<~./JP"Ů2IH|>W}T\gXωm[ͽNMpG&SUz՗ZfZV=J!7L%IDb9l*ì:TІSؚ0I_QѩoWw sXva;XRǜ4BJ <Z4u,Rze*:JQU6@n+[]tU2:K_= o:ƚ?P88/a`41d؄ƱżYXJz$+s~J>wF0< r]Wܬ"2W&yy&IR֜$^$ÆuxvS׮*fS0 L.q iu6xg7hHWfZ鹽pTpl,y)V.IZBx][ӑ4V28ƩqDX}3`p%Vz+Y>~wԨ[#q(R%4J$de*EQj8hd]CM~gۈ16.H#8@IB6'tnHDjԷgCB:~/QF;u7w5U:xTS+z5x M*mPz;馇gurfԕ(4Ajtwal;puJһ>w MD0,%)20JxBdF!x=Ҽ4E':Oh%n?uNڽamjr\c}mz]# q50[I1aKflׇz5(ۛ~#/{\rspV@2$Rbˠkn"|Pʦ_;p>vmuFٸna#?,2Y',{vXӫAB,=K;|=$Na{i_joA@UʯXsaTdς$%YIT=)-OΫĪ-bFKE <PkZ\ULZV./FV#w,37rk+f"fae h"R8}0 DᏏQ)!@3~|DTUpd-pIkɋ:QR#Rz[Oq<BBPF0lTebX*N .aa"9.5؆) 'M~ fz_jRC8[`xD *EyY-6++.qrL5;Hy%"*N&yVv}KINevnʦh3@m<( _bϬ$x(AlRQPŁUՕ}ֽ<M4bhK0B@񤓤BH&8vxE"bI3T߬ 7[ʹMr ǫ[1y'2To ~ܦ>FHDZRRBfT'/4+һ>*Dxj>Bz¦o ָ4_k+nU8$xZP '+ӛгBAt8"նRo28RIb(TEw?7KSk\R B.%p%0E2Ɗ#/XT/Ͷ S5}ߦ  ۊ<?GIKH>P5bC"fmJW, H]f5#I\XP>I( oj]S崪 Yc/ qs)1( zLq9NV[8oI3ju3\I?jTS*y,cv#U2"J' h)-G ѡ9Rj$40'dQi!V1;YϛlGhoj!zn4a;;*E4Gh&_/[Zj59.Ľ;90Z`ZH $YBRBފK0sŀ~f{T[:;B #;u+$[mW]{15F# Qzx!0ng3 MgN5ccZ}|tg^oةW}0;KՆ,TЂHOzIqiFE]-V v#͙ӄjddG/#`pHmaBְ;" #޻"BRBYHx +h7)օMD0}Qu1݌iu[Ϫ@ЛS /qULx3EЫE89jB_E!}ƈ}IpscS7]b-Iai19@2窝Yja-s;i_UwNOlI=NN<2Nn9s]+i ͬRxK _죉3f-TalʱM8K&1l\ycH+n L9dR:OxM"@IƊ{>շ# uSvCK썃 MӏA ȭ[ Ӽks3_bl d!{#-w雭zj]w;wl6QP 0-_CV7Iku}uӀxnzE "wb)n:cFQ,_hb*}v9Q?Ps̡1DңV~3[C$.wc~Nufæ?t7٫X ,ЃKڬV*,%t`#q9q V0Ќ:qm:9SUϷMQF*  ׼ysog휴!2՛-I1Q?(^ܦn(QZu%~ }s~N0egfS8Pjmk ýhZ; 'xI[`#|e$$r>јOyl<)!"3qOpDc-#yyf÷Տs.d)BNA^N"ֶ/@{P&holS8gWa#8fF[h|o^+n-{M`L,Hb=ñ]]C׬3|YXnFlC\l2J֐ޝ?ZDӻ窙la}4KiЃEg.<$",U (QRx4qz d!-&sRY qdT9D'dezzB-guّYI0Fz*th# ~nǦjk:FB%D!,!8W:t+EոanKCS podrh>WP+8-ěRVmD^XD=c:ƷXC>] 1j|׳Zv08_Z,2Ml uY_HVó|.M-j\)1gƤÐ &PD 2yuIÿ}!@> ws!q)KpApdL$ ~ۥMnR SpMC>dgׇ$ޛ5[P &hq0|x7CRH!h"pxeh˦r 6~_\B\ptnd*[8'#8J^- Z,-\P\`XpXXJT쪟Hԝ/g#Qc+ wKW SF儙nv S7mS>q=TP_wܸP0t~<ڈ{_}u})еZ6_,y) $%:'*R=8,Cd⎃'b#^^_oX-uwT-ֱ<]\1OxI%$u1(nQmB1}CtE-kRWfx҅$@jArT^g"tUĔtT(ZsN&d)x{8[IKb${Wq&xjȷRo?6;&m%PIn{og׷mb5cqg‹ K 4>eб^"@ۜ\,h,+TuJRD'J [?MnQeAS!"ŭkbJ!)?‡]zz:?vOnOjG-h_h'RpZxY˘H]eqp$ m+ͅ>*6eH0?s1y4-a0I؀@<[tPZb!1`;8mYtcZ'Aq/`c ?"7^akvgJHf_Lgf7<&p*/t\\ .Tҩm*,~}Җ@D]rp%h8b?Ɂ{P[k/mluP]tXbaaAzVQr%q wݔzޗaUeǤ5[U߾w '\{,X2l XJ-n"HrZJUk~3_t'"zr&@Y= 6n6 ¡v-UHj8<uUID&otykF_g Hx]l6VAlNsr<t:q[V:f*+Sy#\D8 3=U%'? *5Ict}h5 |Df9H5kői}iҧ6_,HʧTTPAx%2$*=fbFjصޠF2R/FcSWjy-aku.l٪ 5$2u"KuŁe;tRcc\^xbaX9wpN-$=`%KYfpq%0 JTﲗz66VVYU-5O39q;; WRt2}i"(~AG(#zqvtN=99??}!l{cNJr;}kH !4@R^ҚQEb9oX^OVZBs '"5B<5PĂbn!{"+llOƈ.۪".>x5FU[f]7D:.3 ҥ+INHy"ϊ,B[|Ye=`&w3}&>u't5_׻٪ڴq"* pMgY)KP@_$fρ/1X͛0UUZm} 2zJ3vܚg_k';n1U5m) VEPk&E^BVRj6mz4/%^&3Ur[筻[G߫0 $ek 2@o10_1nE{cmQR䶤Ԇ_0|upX*}Hxl1%탴 t´QoT6Ɔ66o+9xc{8p Y.[v:'k3` ?Tm?ó[ø6f4M.)1t@`V^H^@". =LD./ĸ8P{rm1WO e·凭Jw`6jCU#?BH.#+&G'K%NH,< ɖCWA֢D,寯Ǐ9RE#~ GPU>'i:yaZe<;3OMܔ *K!nO)s<%&M`2oi"ms .nV!}_Max;KH!H#)/%`In4wp(HaҔtBB5ZiWDԧ] kŷXk_m^u d?nuW}}o~f{ݸi_OWku$4( rEN< Q(RDNU.I=>:c(.1{^ AĀ20ƫ k >}v|:<FL&+@(E t /x"MvDI*M˛1Doɣ$˨# NixI`IY\LWqAG>/g OG4 9€F>nc={猆Nhtzqzza͈]r:[Wݲ*.э]h6]XZRS};v+[ }n@꒚ϱȴ7UTV[9)`a.IRUc:oYP"}'6`yBJ]C?Y.#޻CDe`P%ѫU!VW4N_T4*~ ҹdwRr k}b}2xcZ!]߾X=|hr= =pwIM"%7%3ߚWWٯj$…d-V(́&`%'tŠ5F[!{к@)=5@ӫweVP|ޢp 'к~# gEVO:DPc.\M>W'&#|_lۥI yzy,ԅ.TPv !pǂ?\ЃR:46 qt?_ KmSx\ 2)ނVQƾVwF$&Jv!} }f0=ZN7i{I//X^vR^J`(46QŴxc.(#1q@f=q@krvqԮ$Z h~G 17V;iy1 ="\4nMW)pz-ByB\[WYKb=ikҰk]ۦW'f$$j dhgcFN7.uWc*qTݱvY 5BuÃTzx_&T}(!^I8N';õ@ގ%knN NJ]8gٴUkag@ `N꠾1AeһO6$%pgjs?n]^"3ɅH%JnQ7qXW\H1.uFRk="j_(oO?vַ? lJp DSF , /IJox y]fVG&\_~Ԧ*cܩ[m9Cp2/bYXQ&^0 iI{9~XBkՙw׼[m^ 37߯ksu8-xtx~!$+eYJy뮮f\[5v}X,Y跽ն##Kd"prNsIƋf]R@ ) 2[m:BF )IS ٪kiPڥ.&l$Ԭe!g W;Vj?VRiY$*h`EdOe2Wϔh6w PM"njj0eVy4_3ff50@#(U&OiF.*haWkY#T7y )Գ;㉓gqv+Q/Qd=o3WvC~{vB:k@K[gy;R%xv>^n͖m5VG N<*JV$I֍C3\kaw273  D9[F-l8=#8,NR z41$v]oh`lεԅjmR{u6xl^NUxq@HS$KK,%{|TwQdJk\ӌ+Z3 ,fk³ 9XfRfޯW^/uenӈTZkA]&BUoi>6E}m-!+pXlpiYKXst)qǕ)sl9 Qih-ĭthRcV7U="Q}QظV4+ ;hrot+_U \1lUU_[J"IDȐ |qgS{g).bMp7zHc"nx ݹk yE uaڂنH t+hBJ \Y8`/s@EԪZ8c-T#Cx{f/,1_lnPSN onX]wXaFv;ۯll%mգx2W^)8 J^V%vW~˔ၻ?v;p*@,.K/DTR܄S0G@Rˊ]¸ 0P7T.9TAxwnGxI0D0[aiQ5t߼xB(dbԓvlCTSP'[)֐>"|~(oȕ5%++]0vq=&\ۅ & uޅTIhP;_;?VS}W1ph͖k6sǑzc27\)]P?pQ馸a}ܺSՊƫ *T䕳զ02+ /$;lkc 1!(Ha2" '&`&Z:Z;+[/ Jĺ+G4;odUɝipC`C^xA&p-vb^Uiq!sd p0 \'p% 1(^?hݾ=qf5`Ql@ b5qFF/.&Vx>J(K)3Sya*w x2`@P5NrmMBeG MQ[dRڅS7SVG&GuGN7Qb,|h]lnmI2HB]f>42Nu = ?ۆk5/oǠ-/Y?7Ąr][ /oFU7F`1 INSijqjԖ_^ej7%pt0PjYm[BUasHh8́kspY8)c2L13GJx%L?<'pt6{S2-.YNk}TmzxX-J^fdQSg~v"e:PVR.m  x+ ܬQi4>S>%>@O]pO LhGwAp:qGp||מ +ﮚ)[ssCWmZt[U0'YsOlRr3Co8FFK/?+(t^]tv ght` vYw|N&c6tX+:Hholz%33̟2 EQZzMMSmdi~hRgFv[*Wznf)VUF0;Jvo8 [^9,Z7?ءr:uA׻0P`2~r<oȩZ_A1L]Mzm}{1BCT{%Yͨjr9ʋ9;L!L!   +< UE"R`IW$L d k I2hl vWh ,a̬:u*9sf=/#W~룿S+_k } wk'jg|4ĝg>s\&z4ZVp:]7_x ,\`*  "*y ~iz~% NS~~9?Oy$ gi/ ;WyΕ^߈T6"CDr__x*+JOㄠHaF)~]ACQc-SB4=H?8ǟq8"}ؾ ?hiMw"ǣz5׳r54IQEE2<sũ |%R%yW޼9nYH(JٝQo|h4r/˱^^$DEi#זj:xQ:PK@4 ʼnB!J{C]VI Ob ,KEіDmETըD㳆T]%=IO=DIHq%Qjntm/Y,uEvAx'p"͖t9MHO"'R϶R[%7WyVKVC+d]{ccwmDz <7{hi4M֫lKJ 8ALrVq8WPy^oCjUhYQ51"JH=Do<@"_JRьg JŪRR^ITF%OnAfn nP/rOҿhng|Ɠ n1Gܘݓh'*Sf% wY/#8AODap]>搓ty hA69'-R-"ȕDiDϺ"ovs0p gz9 U̧>WYYUT uzl0 oNl@brŷN]YMlOiWv Z 4J*+@eRIytC5vtwrnn>p38zi=yW>x{￟z pi<\d=_'+-JD9%%苁ˑE/2E-q?6W?rp"84xܕ;$q9;@$_!Z|pwjڸ IlNX6Zi7>k(eCi} `B`O8V։L,';<" PoqvcpGㅽwy^9y 8jL\x R -[ܸݕ;t$*xNy^U<VJUsI@DOVOO:&~ hEIKAҐOH1j;.•O8tƃQp2`P -,hNT=Ӥ^i9#δ;H3~Y.}%< VbM `@d|h).*Tfa6ׁwr}"}\-];D$@ r|AF|x1 !4N:QPe8FYDߺ_lEґp1wo#xp@r˨xxN\b[y;FI^q;sԧ ;/!@tuඦl%?pl;ȔWd4WI{~Mkc-[ظ}kgP͔hh |#ZosK!ΦK`ri$fJ )/x1($B ~ap&:' 1. F=[ gd;. 8[QVnn&=p~ P*E X҅ MAv3,ʠRgн~n/8@I; ҬQTV9@VN,LXL7~ᆳj>aԼ=ݼ?IWI{ ?DI~VQFE-( .`U4 *oqX+ɐP{>IJ[T]{;qjr!k@oejHsܓx09O@I()ω9X Pс [ |$=Lj2uX9"|} jשFA 2b7$V=G;s\.зݽ{hb:ZeϬ0XNB0@<t=ohѣ?-?[o$GɥJ `@0Ohzo|s\x!@y[⏎3oR:1VB[zh?{ R}K"CfJR,hpz4[f睰:g,9z P0:> O Xw t|^g30_\\iro_ba>JyKo8yKopH{)R,2D* &ʂyY7,}|ح$+[ؖ ~{Kܻ l=*+i!(JRHLp%p`{ ? xURxټ'\81<((Us1lO{.ܡ(υC h `DE!g5l i" $5XZ&sݓt;^h3 ]3!/#R 8S84cT$10fA;ujK뉒Hݓb^ZfBVAf& \Jz9UݒԎ! û Xrm]ipѭݽ}a294[f&*^0"@JprpDe,s ZxSKɱ*I"^K  &N[ˁ:}jH. 9b&&)""Ƚ~x@0t0T§xu|$Ѳo}0)d>^]A" H"/EQq`|+FsM7C愁HiL{MoM C,lTpDog{Io:LSL(9_w cwk7~$RC6M2>韛 KȽϾhzrVŵl]@?o4[#}:׽쟀g߯q5Zl4/89F 8Sft_hDwM6!ߦSidvWt'_"8D;|CڍEI\]*HWNP;-}:ߎ\w'Y١>x"=-t>jY'.(czנT485-DLͤ\!2Ħ E;r?zAYQp%`>Re&+|\묚edFo".Jh5=#~- UQ^DAυ*YE"y6͓D$m(xiF/hL]3c3?W{\'%(';r%f06Ζ|R{. xת4t8PL,U*`-eQsE `;%F5܂ /n/%Lk HKaDt3yAߘ|kXJ&H}ZѼֆL2&7ǍUgԾcl?1]`|b1spjxg%&WVbi'.JEK':L?21*_Cx(xf+sD^DAAmb$(|qLtD;OtYu%& ;;;^"3(T"_^.YG8%tpa > 4| O},:e졞 v1/s1' 'UEʪUA~=ځs\ ﰫ͵Mlr6VWz=wm?X^+;Ao[!i0mش@S;̎LIPѬ*mv7I7x3-tY*J*+(JEŶI-k沪A3~SQ3]C ^Z[pv| P^9xeqEqr: ~ 0QHF)?9>GgJ0[g+H-*JbMU0aO\\[>nȩѱƺGSH+#5뎤d2M ӑ|(xq%*\ܞX؃e/&SŃ0y&wЉhpv<>c`w#{YѺB` {FuYTOD`c^*u6 }:. I㾮ޙTtyoVq5.I % Dhne 6jl}0u 7^^8D$P0hRyɉ`S6xoS[:3vޣ][_Eiuxφʪb2즭0 '}LYUE߼^au-w40 dAt ..=:@"8­,}?BP} ,r҆+[rhsE]"PcFS=΂;yʛ Z:%#rHEN}åvj'|ùRpoaŰ_yp-uI`/Ƌ4VaD>K24:>?g~)d>YO]R(-{ha[ {j:-dFcNu!PvoI10 vz$IڷLρX􇏻@/1Ʋ|Lf{{@2`P8 [O5${a6I]ل>K.=ePd^;Q v6CW$Ķ/wiyQ^ϑGHI=FOh%8TQ47=K[ɇ֩t]$yTUpRFaX8N)(3ol3Ph0q]4<҇߀g_\h}r-f,(UUJOIQ`Qx+%8V+"F$N92iN~O9TCx:'*I0pp?) T$$g@mEQM}&܎,Z?61Rt=;Dqxze:[-ֳx:`i8 JrZ~xt@ôUQ|vrq@{GptI􎃣ԿqhNO6ci-"<{N-9 Ǔ b4+vjEA<(ՌVUչ&t}{c~xHb#]7Z,pcC5خ"L2L8:& dïA9ǟp{1'E% |;c8>:9I@Ӕ n8xj'\ նܴeK˖yֲu:VF/paeox;,HuUn!WlʂʊWA@)?(ά-*х5Zw5Pc5\$[ZsO.$6WA&E!srOKv{_'bj7J+b>TܥԼ5|C W [b\PaCZB ) bi\gٷNfBU?h³/ʝc`nyN+I7&Lԑ|֛< !)]lx<\\p2pz~{}ϱJBwYz-IzX~iŬ{~hcv E81 @;|2eVXd'ƑJ[Iua70X!X^X]4 a&w狩T_ Laxgėt+3ehҝ['1m]A`ftyESC;;9r2&$^1Zf8qKEAT䥕V\+ zJ'c~~e>6,X'&NS;b.I'"v⢴_okܽdS*r֓HຢǼ(D;puHƱzbҺYZwPD HNph]<|]< <[]Zr1]hPaZ$/9@cF/|x&"y%5,>`=ѣxSDN D8vIzbe0v3ʼn3?FTCOsU>z= wH'.D ,I" NoܸыO'3^=qv?;=1\9[-iJhkhiJh+X&+U)8Ř2pMSk O66dqAa4=vG[zXG^WoVwƵzE2M&d.4/(:IZFOD  T!sEߏqz҉ކf E]7=N'slOXiW"|n8Dܗ4FIHcLTPȀ*$ۖYd3Hdxy'FTKDcCŹ,5]~_TᲫ i,֓re܊Z@*}ɹ* CI.dzCu.29ccV"b&N(kwh!+@Hp n@ϛݤNΓ&V˓$41 S7O\ 8[G) Z)+ HT /Stjc+F%_YK?}~:;b`:_"Ѿ3imyxu<9w%C(*)j:/,JB-RAVY~޼bۺжj3L^o9[ .sxy D,}㱒JНd&zZ=tڤ) MTy "&rhS\SGu3#K7q :g+".]]_V)>OLIE S~@^.T XMnbAhǚK(ncu"曞Od5PQڿ& +~D"˪ '(׃P/OLn2"N65ak:7։ЍM7M |NMbBO*,)Uبpy^T(y:]_6Kxp)Λb\m,гAx cu%B"rYv ` +8 6hpa {;f ܦުƏ~E fp9+; ܋(J\(P1Q1X)XU[5qھmͧ$#weD+2ML:%ǚ8qQ*_5H GG-~u7XG ٿܡ"ќ*z2_bci" ]%,y.,"3$W=Gց[^';ԧoY ?ZNb5GZyZ/|K ' M|jbY.VArIQ@Ǎ@I!qOҝTIYI~ _xh-p=$RDP3&BMVb?;0>t&< {3!VhJT%WRv #oPP>Hov#`\<[ZV MXQ#=\VENvE|]@e,{G|rh.dlq>ep'#tEeF]y M6mȀt*&;RQh}j0)f (,=VFmmѺE=Ƨl`D;!Mg.5үTD *'ud82,X7\6Q& 6i8>C__"M'Vl8ׅc[G ,iԼHg78W7 f9\&avPd FEƼ—)pń7d 60R @]G}&8Ӛ gql(c%\\X$ 0HYWUIsUsW{t-4U_gDR\ "#~YUZz:7q?(d@A\IEsIyI^+wM ,::lvqd3!_C³߷l6\,l| x-d#6\{=Q/|PC$*J^ )2`D Sɬ2xݼUcG R81xf\o!ZHJ(.ى[?͒ިҀ%6Y<:Y:`[^5ozݤ́Ed)^Ed.'v\?}+uAfx1].u,f "|/HGŖȷ8?OuS&tΝS?{[~ \>ʕ' >fɒ-[ eS#yb5[銕^VcoitWAQ $"eǢ! m܁||7Y1K߶v@D#«J?UAq$< hl!رc&Ϗ,ai6Aj1COғ> #SO _zDK@qi]vУz.@H;a ag K'!p,Ti80-0 ;wz_/^_azt [p$)T)|ŗp(8XNʹfx@tT ӸFih @WYnDџ5L^r\ h+74wVnUÎWXf`#?֋m-e{n#~ ',-Wkz*=? Ϗ6h掦4gB>^Co&YD3?y/e9M7Y3mҜ4n?C;ICm^meҹZU{-s0Qy`y|CD}AKFmŃ#owNb[") &[dg ظS+_ݍc G= U>&9U9TQX5g5su!nzeU#ȺZBcUT<-1O*'Fp[T)Ӡ&dVt,I̦fu]\ρ8dC3:4dOg}DÅ)Զ Bv& rX @ygG]Ȱoסĭ:uԵ^f) Tf^GbBIb=,zm/C-1J4SvG Qe/>@I >>`8TV4SaxO=(Ͽ%2 e9lag̽ Pzd(ףq}z:6R 흰YzO;ҏ>x){?=\KT|;nWsVz1 ׋|>|4Y 8ΥwHT$v͔S!^{$Q}6b=G`tg-t;* ?A(`@UutCG];}>1A }z6M!pt*<ؐc7̤w.};uԜ@'`0]V4=FA׊QKtD[NRer{uT'&&"(",K\$1lvK.w<(b4ַ˅/Dl>_X( dq+YQP}ki{nX4&YTׅ!ݜƉxK!8.' ~Ln-8196<9W?Rʰ#/-A+pc X*q{3%s؈C-ٙIMuV$lm3]5ztLViF~]ޓcrU[n@; J:'S v?7M-vi%l0o_5. ;$8<  \Vrl82 9οQ"9s(IX4 XZD?nڿ)Lie.2XՔR 3"ywPe%taZd 5]<{+g1ޣWp=%y{QKnjgm::iSwk+p|&d۪*Y<   71G2E'ݵ&FX4I`Xܿu{EIor!""08x8If*^uAk-QllL/2-rҤf,l |hdOX1xߎf/dmd#"x y~*O:uII}NGbgbnǥJg>X1ƫ 7M'"+=˩:UIz`* $-pթAtwY%upJTXI=2ա sjOÆ׷ =đh q r--I28c)=R+Wͨ: c끺fٯIwc+jaD䋜pA(|Nՙz1}t8"_f@ͫq#079IDp+%(n+U9 ҶR?HNZ>Ig"KR)9/2罻;(FZ].|ppШïGq*R`].ϣɭ't>EMnh^]>~dzt׎S]?߄ۑn7V6bkE*p,h/8 2G&@C]f2ѥNˁXԘ T02×"g ٟc!j9YV v|t|3#-J,\T81Jȅ0g Rg.-,+Lp/EavOjZ @=OATA^J *(0NnEi2  ihb1|Z7 |>$BT[Ai:Mϴ0f*-pgt@:.qZn}9C7g0mXWq}E= O $:"\T`”m p=v'73g[ƅG;J*J^>$T<`bҋ+lvW G$Ʋ)&݆3{ś8PTR ..9N- !ͪY0p)H뒲 'uAGIzFj1\'yAr.%Q\AY"`taV+va:-3|%сCm-^K#]p@]ZK|UR* RHJKyjQJvyVH,|rLܙ/;ʥ}+#A 8BUPxe$h2PU0ٚnL]c(Ū醁 _s.<{~ '$ <(0 ˙pD`K'3: e"OaG0Y>Ma 4E#$\$•ҥ W4AƁE%=GrrX]֥rmӣT,&S``=w{FPbS(z|TN;~*ɢÞ"(<^vSdE.FTS^| ʊpu3{'jx#-X%ˤHK~(>X_z8sp aڎ/\O囉_ Y=1kaVE& Ɯ%1x?7LVbمRoV*+Kŀ .(S gXxN"Z'u_>N:(:cN)6-!"=4Gxt]JCԃu TXt'Uw /J:8 w]3wp0d@@Y7~IU>6o*]v\V5E⭨=}nhØGvgi^,vWyJ0BDEFBSB tZϳudPef܅9Bw-*J ,VTZ  EvW L8lH0̤8mV ]3>(}kTHY0F~k&WH/TsO޷ga޽AIllguγ2V& S%#Y]3P[:Vܴnk|E)CD~ Gtgq+zNThAIM^@NND&hk~\2}+[1ƹ7j gdPEyܠ$*9^ˬ*$toYJ(͟mG?9j>g>wӲ(R)JUኢ]*pUq^' 2ql}K_ֹf\^G:Hl^ X 4[~KUGl@NLw뿷9 bUOk9ni[5aj2=u#RQΔPbuO""@ķ;Kv $f -~U*Y+ CUBy}$ qquJJ_tv'!b5NKbpOZa1UDvwD\7{Ei?rg/vT(1U%T{] YߞWN NvEMёƩDrhrgg%x~K˄2pTEq P)@AnAyMoVrf @=n##Ҹ+7qx87_$/99xA{0А ¸'I$X,xE,S8C3@8f1J6n}ܷW؟zp@y2qCGpmĆGl>Cp<8 ޢ!N"CtdEcAV,+k^[U 8ņ"+lƬm}6?/Mb)&G;3 `+8ɍ=|/߽{nZ*t,PyP{KE*1kqv%8vTRҮI1}OXu'fvhjbZZ=aXwR~JQ+2peE/Jy7i ﷑Ͳ ]5`g-z]Gl qbx _q=X3;)iV* `>n~1c*;1_v'Wp2?"^ON YIͱua|b{Q]4 8|$RM4cJZ;Ԉ,,G}t:L-8Q* ۥVYc"་ CZHޠ[L4ܭ&z>߅Bne{j0oVA:ՌDI9H_CIh5;?N3RU`m6VJM _avJDہFu4n|M8:oj"}m.u_{j8մ.zujEA}@sYy.Znuep.=f:7Cn,>^L?h6N롭O*V(IMH ٣VO52+?HlBCK{-Wyx%\ԭn{ի6/ ݷ'Ε IR΄IUНS<0q%?$ lC&3؈6`ѓM5߷Z}i3[y9Wz|e 3w\}z/g_x;~/ևd[ozaw/|7nf\(9ElSb99呓۔QJ}||Ô??W^bauڛnݺisxٝBH0_|X DeؔF)-J06s`(RIq(m Q_ gc̫%Du6Z뮃%f7l>E@"c* 0 Sa,<0!JʹޑI)?".,%@N~*kz滣QH~>t! [+H)aG0_/f;e/8ǂ/Βn(DB%р{7ND_5w1wGg*^GJvnXIH>cQgL5$|4ј" 1}+7Wog`vY Rv.$jBc/‚]JI~W[5vGS3CM9VJAy'4 !wSdJq!8)#BШWz>C\!E0.nlA 5)Di2:9a y}DűrQcvH%'>5/|z5|kŅ RE%@WPeS3 +A/}{c2zZl_U@Wa7N@l~@/@5$kwBcMlx ZJ)==rXA%9Ft bW Άvx!ڹD/oZ I9-U&@" 8ڤ|3oV^~H)TG&y eʢrN@e[B\y#dcc<ZE3ȷM<@EmWf7[ͮ5 ~40BJn/=PX83kl.Mzaj?J S tu DeSnu$- iEr^e\F].!DU06(>s%*).zϛkgC7nqG,ӂ% 'K"IJei2LCq`##χH|_D/q'2IY!N`$mnb$ayH: #"2 ?'ȕDDR=Y!޾"7m$@*ܤfx$*н噛DN5ߤ&m)tNvEd?&l2|X$6VXiif% 'N Zg;ͬdB$h*\X@6}S駙r0q`-d Ld 8QmxFh9Xf-gRHbȉKܱy;g,)XPR]8P88ж_Ѯ^ }|ӈ8!@ ݜeDFj:m HHA`x| yuQ4A̡¶RvUoLM4e$mONg*jwg\VHܥ%ܸ(ls4 EJ7D2pEXtqrD"Q(@TFT }y᐀ $?e0 2K²I榙k$+Y<Q۶R VVF^A%uU ww0v)+SǁvTe*.a 5P(1u!&{ק 7ӏ? 0bTܱN+Yya!D@ l%c `U!cAe xX [ƒu`܅$$;!J)wXQ@ρf WѲ k=6YS [ xDoݟ0x1yVWk ]~p/ ͱxZNɣs@ -b(6gXAig ֛5œ<"f'46}C5DBB|k"2Uֈ<)0#Oݾd!6a3n4ӻQ@4,2g87*>f:Hw.دVT'vlRaU>YFf,m ] R7qlVj" ؟@#C #i=*~ 8,8'-݅H?~t$CfZ<CI ά8[8f:>: _IL<`|V,uǰ+}AmhnjJmqbk|rUjOi V;A@e>dy'j'-w6s4\C:rrx֍aN(J`@" d+/#x d,8b"O#47|P"VƴLNB&Iٞ 쒘+ȊBzͧL[9&T3jrE 0󚎔]H {arH%Ghh).~ߧL x'I^fnJs 0:t]KMU%y/"!uzK':FCY D NO^Ґ1 2Qҿ霞԰ow :5|؆kgQeNIbET& Pt7IxBGiznFc?~GJ/oφAyT2h!Eiiƥ(B0_ڽӮ}DŽ*\$䑋-PSbKxE2)B9ǏY"tUbCٺWQsN%m3SKdUwTУ11/~}n_rM_%ϻ{$[%2yI)]!МyB6ϑWO p)c$nQ^Qp˴ I1gR2գTM1( }BE>aS%t;Z/w=nuuw]V`~D $'"'Y2N,KRaSk6k٨f r͗Z]-_%37_}a8_vs9NJXT*:R(8-shai6&5;B'%LTg7GLWS_Uب|LcCBG=Ǫh*GƛЧ2+H7@]VH;y"+xRCUp&N7:~wRe(mR.,<;nU,#skei @8J%q;ǂWo$ |wMw^QřtyF0nJ#UCl|;@ :IQZPqbQJA8D&4.?&c酲OLG*yfO|D^ q8#JInsms8Hir VƤi#3:/PQtDVx]j3[7{"3Qd4veeT3,2|4EbءM]Ss|W|~i;?l^&b_J{e(D<#BX޽mX`j\m:Qpܔ [>ʴ =\W2lhl4ii.󏛤W9J,Fi(%5ZZ9= ꓦ̡.Ji9BCպ~U)Xč Lx v'"oj(]+Z^m0? mGB%*Pt v8jj;ffj[yl˭, p8Dp8zav]ER2 m98uPD*BGak1Ohz2n~X.ܾxh7bO&W5m 僱{{hL3}3fl^ !cDl*UGmjlЖ6 C#QBӆF&NEeJ 'eQiJsM8bj 1 =3=5'Tf䖎ݭbll4rq( wFPdu}>bzJl9B9vP&4M?~WMC 6+Y6jƲ1S<_9K|~~;L90#k?5OܾghlO_WH~lڋNxl;FIbSaM#lVܤރ?*WT6V Uĕ6pS涅QTIDᄝJ C,Io1 Exiqu i^:]`%&f8"ϕISsnBf|N#RuHS( OQJ_2@J#3M㌔KJ;sbp+)iV& <*,HcGДti  6 uoq.EENdY`$q j61ƉC c\S l%%=_VJ_7廓}֔ѣ Vz8۽LsRwNa"I3xXW®Nӳ2z~;$V7,k EGCEhI!!)F,G6c%zF3óX;16R XZV\X<,å?qcn}Qp*;nOj"qET.$ Gˤp)Jgs'6h̪ȱN"6"R~Lh#0d8g^Z L(~P9O t3Mm ghuP]C]ZF!,N2 >TJmi=y ]_1▗z1+ Dz\I% .)͆ k(XWF+9o߾2QrQj$NZFeV 1Mr%%5kX4I!j4fnWL&2DO.Xd|I)@˓ X lÿ1>ykQvl,Kr܍Ig:$W9[@ƍwob}*7i<1!4}?tY 6^u7ؠnA~)cw\6 EZIng*!5V_޿8e7:#ELDŽJօxi$`$JxXNtR UnvL ьJ|eri.;&}x޾lfQ_[ΡЦV*S.Nĕy`rdrUwwr}1.3=w¼4$V x\PLܴH(pΑ8efi4lڃ`Բj%]Q1^*?.yw?D;\p`Sb.z?{}}qXsb=AnQQI캠 *YiebXlAL/[1 _! wc =rK" p߹ `-%Qqf1r9.)x|2bk}U ťCb/KJP!2beSK 5/o__4[ X~.1]`<%OŜ zqg *S~^DQ^w86@!r Rv)BSbrQM1,P=J.FyQ~&zAt-r:O2zSjY-fjT3=rF()u 3fy7bm$ ܱtg)H%ɷl4oW DKҒŪY zQcVK{b3l{Wn)gJ籍yTXQ[oQYr()(oDpg|}k33f_ɒ&]\-sv~XhXu #:w$VlR=V2?}m!RHv~XWjܹ,8%o&YVm֫븾7 d |SH*JFmuCbLT`mcTk⸱^'0&LfBo4Ik&6i\G,V9P]:vyjeq_{r`yala[aU̹Y]lF% 嚣wUKFT(ܒq;dFE恋1Uj=O*.QZmv~04q-;q)Vrhdav(+L^68a=/fzSf$+X!xx] tLu*  P 6`}^aM7о*:k%7?î+ (]jY5_zzȔmq^E1).s)ux,sbJ 0?0pzsⱐ}$`;NG4bأvG#g<%wSfWz-xZ+u8q"z޺;YP>]@Lz&cz8|zזova]ԄpH0)p Up[+S=V`js\xRʮߎEW )|< F'R9$JۅG=V{Bo=&౬q8jDRO^SGgGxr2L;Pd#`J1A~h툜}JH@Zȥ L`l @|QZW:Gwty5u'7ϸ8O-5æ+z>[9&~.lUv.:䘂Q'&"̈/n `Oz 8ǧ^>K ꎧMA}yZ֘Xe8@Jvɚ+C2Q~yV<.J^4jGHHY ,nYMH_-0?x5bS16WӾH-= Bd].3ٳ= 6~>#atHl yS{yp8zj_CՐ{r)*mOs90-z+!uRdžl#7_6>[@\8e@0ÿ 'wأvo|f`RUV\ ZV NH("VD"ob'6~Y!,|Xl}-bC5|Ƃy<,Rqu=(q)+Dr\Nd%@DZ-ėw EUQ%[L\=O/}ƌi5< C-^,o V;u2CH7sL$c50 "1 +xnvBHOJܝ;i>jFD#fO kK=҃dqJ_/VH Gı]'/x\X"k*G#C;PJ*ҸMYosy=y/Zƭ#)%mgM=[ͬw #ɿuLZ[cxl5[׺yb (-#n9>JWSj4 zԨ5͟5h1.m.4Ƕۊxдu4l::4ln5}gdz{#o4-$;GRq3c*R,b abP쉢r[Zﱏ05Oյ=6IхBf򚉰8}}0(z7WP}I@֥DjlWsuF1{lBxf^A X[eW]qb8@b{K([NmbY*4-9 TXR g/4 uS`LFd$fl`*|"FDNRu{H 4HX$ol^7^l =Gk]1-piN}@Pr3Wơ'!#vThٳ.>4 j%.dYA yl\uZ̨ډtW`q(nhfw[2ZSڐt2o?kW+~`$gfNd\d%yU˘N߸s;X <ѻnnw.R:Ż_,TTwaD+/Vqƫm /%ĥtlfW0`MJu=?fQ)6֛]?c"N}ᡌowXoj1 D^&6ܖ%8o*' Y^&>ץWɉAPQ&;;ú+{ηˍ*l J.G (xgUr%Fԅ&%R6$ Mux0m+Q1|{³îQJ|)YeCprTHdYzb/HtNKTJgV_$/ktҐ>npR4O Xv-2uDq?ĀUo/`b*nv!},{t D~^r P2!&[qwpG;7ile]Y|x=e܏poB08ݳ'2 5$2FG{NR|E@dk0zHqp\v2MTy$}ߝ;dgn |A*B-uߋ\"h*gc]@ }XFţMlpZܵEy5 i8_唐R͠5Nz4y[Gtu֋)~7Pugxsr8 Eg2b}'QV@]$VL>-Û3[pImnۼlyTQhT525;ňV/ 0lbdG"$YgVьвp>*Ԋ4-J%Tlb{]Ü,v. ,9[4QE)WE^Qoj6OOM 'Au]DO z- zs$s4{ V˩z>I\'V"a7~h[eiQ^HsKe0my:x^#.RtiD-3͆<5սZj=N_/+t&{ӶDU!i-RɮW>Y=SbFͭH+ϙcKM_ fD^w[aew*Xԭ@FVSLQf\s17G{NES 8!:f=Ɖwƍ{^ct#\Eln-] B!{`ƾ^'*^gLic5uhn@=yg~tC#"ϙ;^/;o.eWڱ|XHhPs!jbѴt'>TD3o|s:( x~7Ody>GNXQı|j`|MT`&az csf٫~=?lW;,EZe1PaK@R%^ }๳n3zCt#KțVɩ,On{}Ƅ1cݗ}>' #jlZYE$~ݐW?>0|iGB+tYJ^ݻ6;ZT}4ąBTZM蚻/1<;fV+X&Xl=W|EȠ5Hl9-y:m̸ +mn}륊4VXJ+ڇb XA%j\0g[m.EE"xf?wľA,[pXE!25ZdVu-+s^ ɘym0Dj  =Ƌp7zx$_ftF,6~μˇ\x|=IF` ? w$os>rX@'Ɠ_qNess@!yӚL=3ȈGG~8Z{^_yt fH@=75\bf5^8n 2M%[fjc@J.g>y HBC`V8յZ쌀^/%.(lk )j**#3+=awgc|<I](':y!! ?:8T8Rftۙp{FOWb]iV ސJ< d4vFdϛ1C֞ -t.[Gza)T BlGHUдT04Bgh~XogY5fs-sկ}ڃsH;)ZNV[G;]!rFÃ5-A;.2rUW>w;-նH&Z"FgLƸPM2*}u0H!FKj;epr얫;:&6 1Y}Z#>:#vC%3'mNʶ{axC'H =} !a;XvR!zI!:0Km"2N:|B5В* KDapma ?kfND#{ۯuDzzF㞶r*it(q]=2¢e ʔT0?.?qUTg, DVu倷Eut?lp 3gub\ų䤧ušV+mOJL i*hs9TQ{ʿ|| .e>A8&!'B4g3̣c>,}M&1=:&_1 4_AUbxhR@VUb6z4nyCexUCQW[9@ :"Jʝ^sRƫ/R T9ě+F%'ós$[x[ͷB8 Poh˹_:-uowe-LuwJgcV;8K?$xbrt=<0/7"!g`f1{d9W _87^!vB]!- ڝRprGx|ڗ}d<{R`v9.|AbSI HCN {![j:`FG=Ԋ /-kw\C'Jy=$=qqуwtw<ɨw=U(E!NVooeV.)$9m9T1OGm=b5nTAwD|S!a j߽tPx2Z,ׇl]]DqBp#B,~a[xnM?6ˇD=7ݎ^E5v [z!,|_{sC"I  vKv:yN@32O7cQ 7E P}cЉ Z* 4rzW@k NL#BoT>tеeAj*@ ܃>?щxMI7isy334lmpjqXC,m}X("(") iQتsC ^.fqU~@Cv4b2Q:7:!2L>o7)vɩ;Wŕ9o))2KJ"-pz.E=69;v*2LLk)5/)YWI.nc;Q얥͉k$Mxa(Qa9O'+:C~G;EX@F^HS$cBpu oR+ۆƂ{afg?<\/Vj5WB9 t,ݴ]/s 4.Rl=˲'F8liQx'T.x!'FźI~Aͫa1۬hC+qHDǶ\T{-?fDun}VAZTƥCKXU_&UO(|x[;zs}H{F׈ҋhahjX-GRB7:=N O8ݓ'FahTl;1@dĊ-r^%%-i9OˌUUxs;FQDC>!~8 < ?#f~1 t}WV7mVK)"wl;[d H,-Ӕ<_DG%{L|E,шVI"J56ExxBHn^.v`POY'@Hγ:eQ786|"0l`}CHYґ\ΨOC׀/~xzD`C]e\&ܢ;%%Y_ HVG*G(E ~PJ? ^ ӱx }Lt_8~z-~/Wv)tsp'UVfmZQ*KO]Z" !59Or> Qy@򖧉|]n@׆IPt[-3'$Đ&$'^x@#&!h^Y-%t=&*4< VYu9eQQ9x)0ݣBɢ@nCУɱMܦ` 05 x}ظ6eR)'j|UG8*| . _L y-S''Vjv.u9CE\EL)PʾD(4^fΘALXfJWn r:AC ƃ:ծF|À!sHw7Mm'/ݮ*Ҥ^yab0q#hh+o)7;V(v_znXn<ݜg,wD{C WBp$Ā P<1HC7bBm} f UrX8(HeVxX@pDD&sѝ%ob;Eϭy(kjY% PHW(kE(#BAFenl寚I ǿ?$<+b^,62#e Q:4 `¯(N < Ψu5]DvQ^83$'n GB0* ̪4HO)ӠI L5&@G:ra9# ##>'c? ~d0r`f.ȱ?:kNo^7 ^l>zcJ5AZ _EN с1j4 x㡨gf$"@HB?&# Ji.ASڅa$qs“!$r7)9+ ~ڙ%SRL֜]#j4pa!|ҙ2~!\S++^K|X'aFwe(ȶe~x캙[vn;gl9fy~.NAJGڟȍZ=5$ןxx!,1zT1W@2j ,J'.KIyN†#3bwDjEMQ;naK.<.3 "rSKX9 *)!Ynqu B&Lp\rn:Sw(xy³~3l$w`7j^ w׭b% !+-3VF4. *OCOOXTS3NZ zbێEU9 n˩ rؼp>viiIaK'1EY %G[`UE(Pݰ溏w`Y ΐ ZͶ68)+M){#z,) AɊ0*~J|}/W_mUC“xl-V2PX Jv(_BY; ΂mޙe>CuO}3GF?}~:|Ar앜EZ.n9jtE iܷ 0 Un[}B^ Dgy͗;ϼD,+b$]מCB==ǭSW7ZHz/<7gspj_;`o V/3j'M%*`ubvydsmc{ C \8=WjN}#ʀo ssulVyBbhe:FM&P7f#@$2EW~?Z$ͦ DelP{-GLu!}w 1 φ4V᛭Xۀs.+W1//goY3 Xd`L߹O߿sN+@£AMiJ_v:иZ<1)Q)9;^v)/rTK8,7(v⁦Y¨-6,_ wGJ@Mԉs #nЋB zc?;b<,!}r ) o;8':i]y5Oӿ~OǎK.[9|BH6pmdѽe8{DheD}Kj'lq|_M(!<,]vMS'V4VS1m?gRv;;OvT J 6xJ28qxFyj~ux9C{w̨w_v!טn|A˘r*e=ܲhSز[!ea(䆠5} oK,ט\xr^0Sogz^, s7E;l 4a.Zua4dQְ=~bf_haW 8;<& |,-u~'Lڴh#c9v]擦(c?׊z2C xL;=RDNFljsvҖ[&@m"܍iF| D(EY,[Zdœ@5 kP7l!=6DHڃ엋V&U%vʴM0DQbZOzei^]6= )sQr94ny8'54JhD$(<{ rDt6*-qYr 7)vm˦0@wrQU} X /e$t[f&y-$HI* x,hBJX'%$^$i ? wn?RD;wݔ[.q7OH m(%3Gr$B6m(MIP qL!Mo yY-# E3jHujznp̡Tp(P4wgLt@>0"j򰗞49||%C nO>< Q?l٭@Lզ.`w'؎] a֤FD;@0Q91L\R[q\ВQbcQٜey&%+aWe#[߬}־=fj_+UU-ᄑ,7EJúŕ#ޭkuNlU\o8IxN,rZ%OpbSYUZr8|]~*%Vkx2gi,>][:UG:zQ@U&V6W4w]Qpƒ:&,/>ju0fT3U=igyz<\̶iP~8/eƪb׊9I2av8];IwS*&wuQ;$#ظ_:P5[.#Yb(fdJBbd5F'M'ڤ(06xԡv¤^qN妪c?Iz ϒ!~rvV>ŽG\tWM&*=lfƜiFGf'Ͱh(t9.vp#IlDG,y|,(^G#J%kM(w oxً=n +=-,:@#2z]DcnIus'c8V\/.y T?(b6oܾcnn>%LXV,6o'J^< ;;`)A{Vˠbh#=5M Ɋz^wӵ\0R=B5v夑+':G"λg՞J3R5tl$zlV r,Ae<%q@h ^u !f#5'*עqp:l"(|j>G`yҢK8M8^[Qݬ0㊅b|Q/.tL-gtQGS8D,\:icǟzc24v/wn.\FZ,w<;SU*dƤS8̾aU3ZE@$kG~V /R[IEn(QL*D_U=Bz$KiˍZ 2NhbRgIY"7r4,(cRuvJJj+okl!{mna۶ẉ xJ2=_l3FHrc$6׺WDT1C(5$)'ZG!rBW p%\Nޅv~W*伕C2DXzګq£esZ3hrowť@k9^:ƂF(;BB?r$PH͢Z`4>rƧz܇Dr偼b)e16G},}=݇r1GhR+۬wP}J|KxOV7 S~1b#ᑉSZI!`QR2.¨jԽxoyD}AYdGKu];{ qO&xvCb rw:CU.& Ϗ]!b?*IIxµ .t ؄xɒ||bv-ڰ;_uWxӦޣT͙~SnE}ҤzFA5y~F~mP,˯JfyL oJ2wʻk T7~$({"):`cاx =RAne|۲t(!^+XkI4oIst!jv^M*5S Dy9J6!~m׼ !жJx][ٞU\i{j[0NϘIwyx>6hob-6˅">l;#jTU,2(ʜׯsB?( _ĝƢ !4raSЫWk` W,W6g^ 1Iϝk=6AGx>=x7<~]==8 ÀSkN],QO;{3-g'jڪne1*$4cx:텑r|?ҵ@ Mn èh8&Bz AqyqZ1=Ra%|q?b.x83zΑ^Fc^{tjD]]f/SpRRIVA D2 T2sC{e]ɺP]D(ʈYb; ޮJV@tvUj{0|)XL=czțƩleک筁B\4?oWS=Ic+++ǰAZ:ظ\17 A0T{:pw@*a]ֳZ~󅂄%÷iNDWoJ,Mz=Tսv⅙@Y/S7SQ*z5lLmg[8Wxe T$HB :'VZ <2i0@$Er M1|ZL\1"dᇬ&5…5⪛ݮQf^pg>+'&.yv.:sp<qTؙq1܇,ӝG7@P8We,*";Nb ݸU Z=~Ѯ<'.n U2B%OD >8eqxYy0W)#CœЩUuf!Ҩهx"c:ʵQ}tMaB-6bXT]28y#8& zX}%3jXV?RqnJ4IEEHU#ԇ)K^eM~-Tz4@K# [d'\.QfU!GwoGs:o)v=Ri۶YkU{જl_ΧApaUCQ`z!p(6O<)4@\\‰1]ޑR nm$ݿ7+}͖~gB'Q8Iqb.jK siwjcҥCP(^uY7| 4Rb[)0*!aˑ/8/B?#1g$֓.أv !Blbܮʟ+`$R&vՓ(oZP]ISm˶h79D[}BZ,|,̀ӝ2@6>9t~23qՉDyZ9 /0^u˞ʆzk jv=3>x0QҴmWc)HIygA@i;&suiڣvHСھyyzg(ݫ@P ҌPp]@Gu+ P$x^fŹ ~#S,e-\{Qe@|c5\TxqttDqWq}czEx®Ē'*0_4Y\knpKϺ]IIr4L jlҤOYx$4J9:&Aهǧ~L;b:PXY͹;Y S9Hb{d^V[d.r,'Y\Jt$g!лz/櫕*Nsof)+ 3'*Ue^m;Ez8*#4u/H3z( |GR QMʫ܋iP_Qj~Y$o"89İ8GgQWi.xދi={c".ҙLzZzF0}G!=SfMj qhQ :4&1gYQƜ{.m-^,Ħc]>xU$B߿`~:IF7ħŘ/>k˖f#5p:yTkظn<( ) :2m77Cg fPd1n\8&N:fv6Fa>C5c,¶(1+)̻EOzޭk +$"1@՞`h[ĸp,BQ\l=2^ό߸o) 맄8=gX;!YjYb\|q oSv~b'rLG/Db hOa^f;[j&!rgpw]R%ͳ,ua%M᰹TG%S=5'UBer5Pܮc!.wbJK }eX3jLozE/߿&wkX-#kJ3PeQ@dEZ{Ea㺪6k޲Dzl l pGow=@RiBlIr$M 4l8%FLtVR?P@Y";{@ a`l_SZ 1!p̝qU +Dr-SHaPTW>9/߷vvM:Ru x<R5*q҂`"&7wuzܻյ6KUGS?#п/086m6kd v,F沉?$g͈AW^ozI9Pzy%14B3 Gz=1|kIK :]M4!$ʸ1Hl@IcPEp"mbekK5m6H`:$\\I 4&K'7ܮov-A؎e܍*vmJ!9 @g`~BAz]^5h;~L =qtkMW02)8^DHR;.n25j@0N2 4mTk ]{3\\37&u"hE{SL+>9GDϨZ .FרϼO-W5i/2C9 R-l}^*$k }|gspbKrz%wF:2 `l>F (ik& ); Gw>{~ig.0u dQ..=umUuD%~;m)K{(n` PYeNxJ,#9VKJ78RZ7}`&;8\_:|6H.ӌSʩcܔ8{>ε16G4`wԻd kA7<W4 ՀGN)z]`M0H6,_ 6R; {Ա’m2=u3sW |ASN+ԗG?y*+{|v:_U([7 /i kqӗٟg|W5ȳląQjt6)XY.vYEisRQ(I}㱇25Qx(.4"ƴee^/x?tn&j~n}tvr[Ϭ HaWXEH4ѹk}8H}o|q};)Iu' }*6^nViJ.'>;&:,(`OѐDX\bUгkEC6kw?JRM 5FTC"||nk| 3l Gg{.=ǯ|ln&Z 7b:xޡqR:9.Ҝv0t枸 W du8Y/^'oqE/flYў,eZ@uW}rVDZ@t[9ua-AVzdnAsYnjϿuaF@HY49*ʁ,t˅Ovq&y_@ 6Cݡ-ZqCz&BG S L!'èv*ڡ dFTA,ǰZƔg, 15raf!d?nvz+nZR.dPP ( :n\(ISr%Jش˳#{AՂ㚼(>~U}kQ۵\$aSRc] MP_4Q3\<wcIymH0q.,#4M,- ]@]IZD_H;314QruOHV+Xs ;nݓ3fэԝ1pukmҐ169_³4oz3VGۻ)hIYO$)'97 =6]؏/ `Cb56FpjN nEX%ˢPUu UWW#JC@cVћzIbr̪Gm\Gzu݇OCPu=a û+uQHuΧӓdFjK*V//%rvxz%AeeZFT%OqC|sxFXƺNx 'wDfƢgE4Ћ1~:Rՙ?5̖vK@vIoBxl+bٍR(1YuHyUV,4Uŋ]<a@&ԍyg*IƘ8n@0d$2wb$-  ]F>S.;Ibo= -l-².q9 "NW\ZotO:>ҵn1uVpK9cc;YX⏪P٘{Gpi>-OJb+3ŭ{.{=4$1UȊsnXzfzIdѥζ@~Ӆr lQr*v8 /8]QkfqG-j L&a}^R8QAiW0qkYUig IiʅR:ޯW$3U{I6)}w=i.eb%)KԁdYprAp V0^*nU)A5࡞p}GDjM{z|BGLxيc{rgx aI:fʯ*CW[D0>,^-Oτ+S7%>H"^ hu,Krbe€4Ka2hV;JrAOV 8y"ԉK9WW:C&-#,SIkd~#2iP=S@V:K*T[P9Ep&ɀ!C~~}vHEcّ^z!  }qXn S0Nzo ,\fJ_Ɖ8Cn=.`,vɷBCWP %YxgFRTw9Y]}]w}Npjhq yxUlVv5mp,XB 4x}!~H#@UǏQtԆ4!}?i2Nfl^.k )9a '1$!6٢hi'JVZj F(&`_.Co֛DBb; OSlXA $aa$>JW0QPC%9(']D?_#j@yD rT%+c0w%t8xQC >ƓrO8, a2/ Ow\Q@Y#_oB`˄ xv$"NǓj5_nju$8:zCGG '$Xʲ혼JᴒErxe@j%-(ΕrP'A9m!w[D'5%qlBe,hYJ?Gǥra{sc*3=# <{pD)| TB Q:c;R/ R0cw`⻐CeÜ\gFv!ȴ|sH$NR`!&^ 3H_^?/!RRƛ}y8^0DY&l9=];_J)}k.y_;[W`їDJ)2vf.<e,KaCx3%$T> -0 "( -8ᐁ [ Ix@lQWHkL4<=,T ih;CP,j$-+36C< I!E,' mE:ȠzigGHd;/zjJӘ{-83"x`( 8c,ulAV+ªTHc{nӯ1yu)G)r,DYrҕҎ&Z [Zs=Jxl&סG<+ NA d܊39j謘 ~:?OryNഀ]SAqEX zi­^~D)lD7Q^IKK`/DEceeQI>BT@X `{t,bsIPޥ9J]kiV.ϹV]eT竆J4[a R{q \򷣅8y&ӴH"s8* MWfNoc?8#_zZu+_@g sQc;Mi׷TA$H JP@SJ0>t%}m%FPzI +XC@{ZV˒لP`*IݰG Dmϥ+JJR%x$@Y,ԙrʤS"e'eg )3~ZI*lܓTCǜ(Q 89ך]yH{Zr5SLSm(du"Sx9Jɫ!/,'#^ gO0rO~: '^|!.r^\0:Bzz&xi ~kؕ(8$.esv*PQXKH~A{裯3+? ߽x]A&B ɲ`VfS-Qʀ.8~j1&؈¦ /c[PEU9p*iS>U#C@L6u!ɽlnswٜRp;Ǥd~CPHcȓ{-G5 YչBr#Q/^o;o<)m6`&6ZŸ;/^Q38b"u8sH w.WUaۘu0w <Qc l`5HJ8,#VF(=5p;nFV&0j/?x tJe)SDzBs R\r ~T.YgQB 5eR }HeHzcVԅH~ 6c:/I2^fE H̉L^$SrJa Eꗲ,-+BxB7 &w}u I!K㲤)!qfpzlM`2r8x4j3ЭA*V:P0{cg>h6XW|3Gi u'w-&{J%,лt Bzt/?ib9߮3] !z&b H屛khF5JX>HHH LCAOjpMCɰ=X01y8Jxl^ סGI@0j%elӜfYK `M:G)&.sH:)QAD]{`}IeS%)-+G6rI;<^%3P@D; 4BVF]Kn6hIJnJ"ۅߏMpcry~lh Tp `X " &Ncɲ"!-`51S'v^պk3^;6 zlW4QXqRؼȝ4)9Y"q@VFE#eZ*J`)]!& 7qkvQK4a6͞LV)2ɓ2f96Osp 2m~`a~b_9<~Lo],b:t.X -X@Ppo\na\pYӳ]DJ'<Se:EO!V1}I:"^+j஌x+}]#SHwvSvt5N P@,Kr`G1=*=v#^]W=JuSSO Sj),s $-' -@+4"e֠wyՏh$j(E$Edv) 4+>ږz }P1;uts?,T vcfFLgvb2]o盍FęAwac ;ࠅM^#:FrAb\ۈAz$/ʼn0Dj %w M3 ߉X3D2*Mb TL.u eEAnA(L1Wid{n?g>vb \]aApv2+57mvWDxu8TӢϷ^U݇Bz $Eͱa*D&$ ;9ZvFՍ'|RGuO:|2?g߸,2l+Bp`6H9V D=N8WVۇy+Y=_ !wLXa;`kdjME66ֹ}&wgsEm~bYnKSNSi,eB3\I9VD!wH*c*.vy5'~pmҾu UH2KS4sHt] +!Fn^RVSխWi}p (s{+% ڲ HM}qۘV;!Om*)y A!+qJ]JSi:ٖD $$`]!vk>900eI!Ĺ1AV]D P:/ҘZ5g,-A L" -:d P=!Ȳ;4¦57Uؿ|L= IR4mPSMsqRA)H@)RF]o j۾"l 0xgBzR?tYQe7Ҕџ|j/ #JvZnNT #pj4ǵc.dD돛^ WT+|lAƪ('J`yJAbj$/l'R:\ <6q&nA'?TSCnWH>x>Dmx*M=p$8(c8H' 5+{%#نE@O  עӡό+~xjSN4-lgeQrS;x'm;wҒmFAgB$˚a1zI)#_.Y26\Ira&KR dqDdynQ4ɪdnyK[30v W| '٩c,т"b!:!eo^5F"7W"==j@U8ȱ/OJ2zٓyE7"<~E w)!bXWgJAoH RC>6 F1ǀݔX.H\ 4G$2 *0U7,PCMH!5.ׂvA}|D@dR N6U<줖Ɨ~”x]fkݭbc{W,rw04I xLIf4BzA?; d%F.óHfM6K/IRҸDJ cOp!x6ӮڌנvEdEvt}Fv"w .'oYhXZaC+~{5Ԯ1 U;cs$b3nֺ/Nə"ԣ}倣/NH>S']H?O'IqҔX-!s a ~ GUd;jjuTd_@2R^^GJW(c9`4!R= Q08V44 F0+)Վw(ޓ_.'z9>-ژ'8TBx osCF@FlS8'В<‡) \;:]dzӏ5Ŀq/5x.Z\@cn$K`S)gɺ_ٴv 2)؀•G#PHzm|2Zs}´}#W+bg+uPU9O56j :iv$zWSmtB7{ӡ𒶽榤vF\P ef }o.tc83W{T‚ibV2*2 }̳ 3,+^ q\ ܓw<2tpƜ[g̾ڷ.e@&/i~SZA_~^BKN7v6_fG/>di \G}GͱH`CmQj:shpSVTv ;%p/LBpp'-ݨ2.c.k1$86g%D%b Wuz{{lu!,T0e{&'.WMԛ(tcjöi T2%M%55C!`F?vQL?AlgCCQ\7a/8aCwf3nxiPB>۷\=;g.e gCm 38Ľ8yKc7 __^zgׁTtL8,uRX4ILDR=cE7WeBqfo=3Xo3`˅WNmLZqѸB fSBevpPynh klay DW/q\<0OK!hӕńd"MWt]Eots{*zXob!~\> ]=. ?Q'WE9 AT$Vz\*Z:[;Ԟg9b% K.bwgD$䅾,!z BQ:p+0=ǔ YiV:ySJP%fӅ'qlDba~B3xL\iX ^ p\ut\U$ GV'8e?&OB"Lsn4%YҘsf%_yO* 'n>]gKDf:37vudT*p$8+ޠPf)P=^5&SĬF`@N}Oӷ^U`1Zy>ق9Ԥqe R '.c&RZkg;AXHA'OW`t֛Yt5P?ȅa1LFDJH.zy!FC_[edIpz 3qbQËx'WUo' I4RziݏtӤl89Ȣ e}2j<\$LP[e+ K^Eǭs Dyo"hBw%dg/OnQZ֋܇B"J8 p^&$Ob&1!q'{k1@${y{TdcG χLkbU忬!ߤt]>7vvX@2~8kXWU {?uůx_ۺAѺP%x=Qbؖn#ŊY۩z0l:xMtx\=yF! dc+ FNO_.s ,Qn.K- |,^.bA˲KFc0 8N{Vr0hnUh:YK`USԵx9Y"㲿\%":(s{Cq!d5ʨSm&Mٯ-e27l׳Fs+Q$>Icl"Q|W\Ie =Pn A6Cef{6Kk ʸH'"p`$<X p]W#˫dR8Sw0h !ՀF_h'͸o3)vUZX5p rp[pB+o-Cgܨ'zaW$Y_@|y xNPl8r[Z=sr9IffizzE'<3?{p@68hνa8@[r9LtyiI'b'bAXi-nLV;4c4!}okqW<]wŊ-M:='(ʃ>N%S\̟f iï9cpӚjkZ[~sLS۽ o;)~ᩫn(1-dx]SR \%.31i^Vfp?F=zSOY6W3|YBUy0}X}+Gf/=!=|yսLF12z]?;)lBm-w!UGǟ2Ǯq8e QI闅"W2TP~~w7oztU/^GFrZ#$.2+"+YRWX/*S6$SЫ$QpT?wS|;c'r 7O=X0 , Zk|wxAo޾=t;7L]H}%udh\'e*S{I2ڧ0UaqW F} .f/-YpVm>_үБ /b:ˬCx3/ZD 4)!ޥIlPTc?U7݀8.C&s~kd'j9}c>PR Dyw )*3|ч.eX>ޮǛv1],Uy8e, Zկ8Ŭ{Q?ǀWyFbSd{̼clx$_X`x)ReGNrƠ7=ˮRWWueiro5^n4'*(DP1q,%v+*Y;,b8[gg.cwn޼yByqWj8 /Df @My8zL/2M4 ˹bE+w«TketkR -$rƴ(qClIB n+I= kgpoӺ(}?v}5R#'^bK߿}%+yJՒq30*%Wb_Ui#curPy$!Y2|1E[=fͽB3V"PT#T,WC|=sHkSߧx] x[^,_ ۢߑR^HW̾UjW;~yUd/vdzg G8[ C‡o7U@U>ng[7Ae)Am ^.w@}+)2NΙ Y +kYk F5\Cyp2`zj_g7A&sb8Lb O2?DJp`)R1W@/“ #p#J X {=L;MwYwNv9"ElEF*S[G-NH dH|&{(~mP4A: 8_[wLy}yeY*xuFYf\몚1'+@7qBy7}D c uMK~}|U%t8wVwxっ=k.BpjlY|)丸|oڒ.oluzp`)k ;I7@(je"ճ! .=qh2*ntq-Qv>uir+Sw==e7d=K _9!. .pآb _@^7ˏ0%R߅K0ZATJLoC o)=z# U܇JbNx}xCoDSrC\&y5A|zI+K2ydԲ.Cm}y|ک^5lز ulS) ʡPl^o)x}Oo }ˁH#M6+Jh?HXYMboʺFxd`@| I6VFƛ@)N|2xxG,C1wשϷ^B;0i 쏥 ^w4WMI5r'{}FU-F/'h7JVc!yKn=Pݻ]upzoauR@ +..{卶?xdz?u !ɬZԂ}%WئM %FO{L'c %+2k +yF uAօ6`{wO$ ILjH:Iٶʆ7z9&}v!'g(+xhifl1^P=Qq‰YDcv6AG@x]R]i{̔2B5 \5h4D8mg%c NLg,bxn%݁j3qrdl|=f׀fy ҶӌC4e a"j:X+=G^GtE\;xK%iXadT]vS˟*g~˞w=*IV) ;iv28- ϑ " Nq83N :,qvNj A\^,L=io1u| lq4!XB `.,ҵPNO! itW ]t|yCz'w"j-F>uJ!Z(`ʲ,MRYK;q/z5ȇۂы'kNpB~ׁ7"ӛlຌtpzҁs"[ۡ"±,SyA">[4r+c lAg!;voWh+Ss\"Z\7$?Z=FbYLWODcT ֠(S1M3plٰ,34,rmuOgg"F w/b9r",;BXifCāsNq6AQH!Jb("4X;^@T3wtz}QnF\/Toѽ-82}Ւ+jK=PrZcj=crC` 2foEIiX45f=2$w}Txy5" nwݼ9OI u 6 @Eީ9/*w g.<ӳ}(r1ۮB;ݗO o*Sb ,tSdq/}K{zV6scmDsk5-ϙyj8ze[3¯%ɖXeu5P,dEUzb}ljΫ}D5f%j5lY?}PVx:4֨{&հ*iq[x~+yg4f ::+pyB*#|`TkhB4A0T#IE8b_O!𘯖3979<&`s sOߍ F*T#725KADSx QJ E o*f\VLx K2м{5ߩ5*XËfagxAd>xcrsP}7 1D~G<4ƋGw;W+%r15Ǟe{Zyv3g{tpJ6}=sn ћ ;qh8q °;R&lm.g͚^O>W]ۈ?zOҴO"˵aUhϩ{)+UD.0zV[Ipy{VBWPҚI] (_k~QWKJ1ʛV<;7yS- ^`6/7+;binV*6zz^SIh$/M\/#]W73]pd6M=#K9[;*@iÖfy3RZ{K 9Ӻp?0V[L>TMf(7TQ B0xy>y<ơĜ8x1G8|p#e,AwTU눺3O.MJ Al; {Ϟ躹#w)kRy]ظ}q:$~Ps{@˄qu*Z(ӆR f, %g9uO<P^sc><8c p P/3&¼>xy3AxgP2uOT˃&j6TDٖ&U~ r}>UdO䝷 $eh7sƩgAv+V Qjq^0]5ƃ9}]auOusjfup5`mL,֋vX̪8-,pZ",e+)UݓfW)#BTw<%z32⒉JfVBWqc/荎OT{j s({Ø/{ ug]B8)gt[>Ͱ;o2 LPĶm $;SrlGZW8x/N7uD%{ux_;^3ez5kMP7Bفrc93plBIw~j@ep0ZvimǠ/q<W:i2x9@s3k8^ɯ.tbwΦo1ԕw}.s@HX@j.%r |B5d'1,zV)JP, 侺{@^X pl{igprrv ?bga88^ЁR/Nܹ^}3Y`@.[œ1lg eN 8[" P $K dv\ ,X, Uq.;|ئx0ևkkvV)YV~Fò[8 b%)/S'&ILuUo PW*w >dۮ)K0![E^j9P`1F)U\w~B)u[2wFa?̶gߢ+\1[tǖ&8 86,Ƨ{ja4vO%=#@22ࠈHJ neݳop;l[k*ivh=N7>b }LFTNxK)cF<-2@&L`*(هmwM_er[*U3cdMK5W@9ywM`/|z~cT5vp^6e]AY'zu壢92TX |SF8ٌgY]?HME1@ RnilҠ&@%Y*Sf,X#))-XauURZgA"Zy^w {fn`*OstUU}AT/av AB_q]1 hrBT @`_K4ؖe J8=Jt2"9H(*V'"hC-;TlR6&oӰ16B~]7>@M4x`o &|P;\ t,jΕM¶i!csb) ޟZM+7K@&$fiNbzp^baI# qҪ__*^M3XE j Vp"ORт*#y.kҷfuB/zXo||џ0WǴr7_jHq<8R uY)5.EI"TW%acTs]~_4+i -[0r潚@MPSwy^w*E:8Mcd1k*S1cxTs;< -X&Tyl{5@x\M-؄(vv!]$SIC&H Z^K2](RQp}?֌QHPSkTn@xyaTDGg RjWS*Ze3)χjFvWh0 Bd|QRaqEsKqT 47a2?<=S n?(Kd2dDA"ٳG=qPcS+֫B%r]x&w",A҉cx+jEMOX5]n%QͬaW.p3/)PGMn'Yq%Tz [_5QtBLyf;w0[²l~ 2]$w̿;7Dh9MbOMhj9e&b>?WoTZ&ZF< M˥4v4&ba4tqM8ᶈPX|J~ \ Y`}7toy#1 Vq}$JℛEYOTϨAS]F$"٤;׷0* )eҖސi @kJJ`'QgJЦS ͠ /)D>T`Wjd/75P"s$BCGviz/inst/extdata/test.bam.bai0000644000175400017540000026706013175714140017336 0ustar00biocbuildbiocbuildBAI-?rGr?Grbr?rwV?1~Vg?Y?AY7;?7; ? ̞?̞{?{0?0|?"|G?I"?"*' rrwV1~Vjjg?YY<>B 00|O|GIJr*'. rr|"|S-r rrwVjjj<><> 0||"Gviz/inst/extdata/test.bed0000644000175400017540000000105713175714140016567 0ustar00biocbuildbiocbuildchr7 127471196 127472363 Pos1 0 + 127471196 127472363 255,0,0 chr7 127472363 127473530 Pos2 0 + 127472363 127473530 255,0,0 chr7 127473530 127474697 Pos3 0 + 127473530 127474697 255,0,0 chr7 127474697 127475864 Pos4 0 + 127474697 127475864 255,0,0 chr7 127475864 127477031 Neg1 0 - 127475864 127477031 0,0,255 chr7 127477031 127478198 Neg2 0 - 127477031 127478198 0,0,255 chr7 127478198 127479365 Neg3 0 - 127478198 127479365 0,0,255 chr7 127479365 127480532 Pos5 0 + 127479365 127480532 255,0,0 chr7 127480532 127481699 Neg4 0 - 127480532 127481699 0,0,255 Gviz/inst/extdata/test.bedGraph0000644000175400017540000000041613175714140017547 0ustar00biocbuildbiocbuildchr19 49302000 49302300 -1.0 chr19 49302300 49302600 -0.75 chr19 49302600 49302900 -0.20 chr19 49302900 49303200 -0.1 chr19 49303200 49303500 0.0 chr19 49303500 49303800 0.25 chr19 49303800 49304100 0.40 chr19 49304100 49304400 0.55 chr19 49304400 49304700 1.00 Gviz/inst/extdata/test.bw0000644000175400017540000036477013175714140016463 0ustar00biocbuildbiocbuild&g@"eg )O) ?@]p@u@xchr7gC| xS;HCA|1D ؛FAP;k$X A,0  XXYXAA l^R,w{;77yOB\(=%sI U^,2iN}s}j$~W0r^⒃FbrNVeu+`̉k͜%as ~V]-/c1{KFWb⪫3ʽGğq髍1OAf3afVJ.Sn̺c9bWzc$6dvUj%80_VsbL?.=͚VX3miliL-xzpjEUR=kR/|^o'\ڞM׽-;:>j%gڗJ.>\HYͅ=Ikv_Ael`AW]ȡ? xu;hTA""/ 6U6h!k!16AZ A%"ÊDQȝEI)Xa% X 7_~kq3g?ɲ,{8Ҭ4n6+=.Z48b4oA~MOgf_etojXB6'xw!sBߖos~}xS˵+.>9"ɠKv {jz˛8x џz:4|.M>m4(ԯt<]XN.)8>b?1*Ёۇc5brNJxqt!Cʹ`OQ>c{ eA͌tG&rUphh$gx]]Ha4Z6\̈́(+3=OY5.+knlE-4" cdEP-"-kAAY@]տ!o ʥߋ&oq8եOI8.d7W[:;djq _2%=/q+Wh$ge'xc```0Qq*cs:usm:_:@r+mA^o+ArM/[k  Py\YBN`yC3DÑ=`,9Ar'K_p,lR˃Z ' ,@o`6=_`SWh$؄؄xc```0qGTF&\"=s2rJ3nLechr1 CTANGAGACGCTANAGANAANGTCNNTGNTACTTTNNGATANGTCCGCAAGGANATAGTNNGGNTTNNTCACCTGAGTAC CGTTACANGTGCAGTAGTTNTNCNNTGATTGCGCANGACNANNANNNGTTAAATCCCANCTTTNNGCCNATGGNANGCTN CANTATTTACCCNTTANGGANCTGAANTATNNCACCTNTAACGGCGCANNANGCNTACCCCAANATCATNATNNNAANGT CCTNACATNCTAGGTGNCTCCATGGCCTCGGGATAGAGNATGNGTCNAGCCGNNTTCCNCNANGTNGGNCTATANNNACA TNTCAGCTANNANANTCNTTCACGTNTTTNTCANGTANTCCAGNGAGACGGCANTCGATGCCNATGTNAAGCGNAGCCTG ACNAGCGGNAGNTACCGGCTNTTGGGACAGGAACGTCTGTGTACATCTNGATNGNCAGNGGTTAGGGTACGCANTNACAA CANTNANNNNAAGGNNCGACTCGAAGACTNAGGTACCTANAGCCNATGTGAGTNAGGNCTGGCGCGATGCNGTANTNCGA CGGGCNCCCNNACNATAGCTANGATACCNNGCCTTCTGTGNCTTNTNTTCCNGNNGGAGAANAACNGAGNGCCTATTANT CTGNAGTCNNCTGCTNGGCNCCAACTNAACNANTCNAGTGNNGCGCNGGAANTAAACTANGNTNGTTTGNTGNTAGTNNN NNTNGNAANTANGANTCGTGCTTATNTGNCGGAATAGCNCGTTCNTTCNTTTNTGCCAAGCGCCCGATAGACANCACNCG GAGNTCGGCNTACGCNNGGCCCNTNTNCCGNCNACTGTNAGACGGGAAAATGATCAGNAATCGGCGCTCCNCCAACCTTN TCGTCNAGAGTGTNAGGANCNTNCACACNACTNTCCCGCNTCANAGATACNGATGCNTCCCATTTCNAGTTGCCGATCTT ACCAGNGNCNCAANATGNTTGTGTANCNNACATNTTTANNCATTGATNTNTTTANATTGCNAGCNTACTGCANCTTTGTT ATNCNCGGAANTTCGNGGGTCGTTGNANCTGCANCAATCACNAGANCGNTGGGCNGGNAGTAGGNTGCNTCTANATGGTT GCTNTCGGCNTCGCGGANTATTCNCGGGNGTAGTTAACATGGTCGCTCTNGANNTGCATTAAGTCCANATCANCGACCAN GAAGGAACCCTCCATCGGGCGNNCANAAGGNATGAANCATNGCTTNGGCNANTTAAACNGNACNGTTAGNGACCTNCCCN CGNCCACAGACGGTCGAAGGANCTTTTCTGTAGTGAGCCACNNNCTNTGNACNNAGGTCGACGNACCNCNANAAGANGGC GATCTGGAGTTAGAGNNACTAGGAACCTCTTANCACNNNGNGTCAAACTNACATCNCACGNGNCNTTAANAATATGNATG AGATNCTCGACNTCTGTTTAAGTACTGTNTCNATACAGNCATANAGTAAGAGGGNNCTGGAGTCCCTANGCGCNACGNCN TGTAGGNGNATTTGNNGNGCAANCNANATGGTACTNAGCTNANANCGTCNAACACGGNNGTGCCNNCCACTGATGTTCAG CAAGGTANTACCCGGTCGAAACCTTGNNNCCANNTCCGGCGACTGAGTCCACCAACAGCTGNGGGGTGTGGTAAGGTCCT CACGTNGNANTCGGGATTNTGCNGGANAANNGGTNCANGGCTCANATNNACNNAATTGAACNAGAATGTACANANGCTGA NNNANCCNCGCANNTCTTTATNNNTGGGCGCTNANTTCTGNCCAANCNACTGCCNTNNANNNGGAGNTGTTCNCAGTTAA CCNNTTANGANNNNTATCCNCNGCGTAACANCAGACCGNGNTCGNANNNCNTTNGNCGNCGTCCTCCGTGNCAAANTGNT CATNTGTCTATTNATGGATAACNCCNCTAGCGCCATTGGTCTANGGGAGNCCGGATCCTTTNANTNNGGANNAGTANAAT TNNNANNCNTAGNNNNTCAGNANANCGTAGACGTNCCGACTTGGAAACCCNTANTTCNGTCTNANGCCGCGNCACAGNTG CAGCCCGGCNNTCGCNTAATGGACNNGTNCTGGCNTCCNGTCGAGTTTGNGCGNNTGCGCGANNCGTAACNCGAGCCTTC CGCGAAGCGNAACCATTNNTGNCNGNGCAGNGCGAACNNNTTNCCTNGCAACTTCTTNNNTGAACANAATGGGAACCAAA AAAGTCTTTACANATGAGNTCTAGGCAANATAGNNGNGTGTGANNGNAAGNTGTTNGACANGNNNTGCTNCGTTANTTTA TNNGGNNCAGAGAGNATGTCNNTNGACGTTANTTCTNTGGCNTGNTTGNNNNCCTCTTCAGNNGTGTAGCNCGAAATATA CACATTNNGTGNAAGTATNGCTNNTTATGCTANGAGNCTGNGCGAGTACCNACGTTTCAGATNACGTCCCNCTNNACTTG CTNNAGGTCCGCCTGAGNNCNNTTTNCTATCCCACAGTANNCAANCAGATTNNTNTAACAGCNATCTAGCCCCAACCGAA GNCNGACTGGTTCAGGGCGCNNCCNNTCNAGANTNGTCCTTNGNCGGNNGGCGCATGTCNACANNGANNANGAGNGCATT NATACANTGANAGCGTATGGCGNNCGCGTANCGTTNTCATGCCGCANTAACTCNANACNCCAANAGCAANNTNCTNTNCT CCCCTCTCTTGGTANCTCTCNCGTCTTNATGCTNTANNAAGCAATCCNTTGNGTAAAANGATCCATGGCCNNTCCACAGN GGNATATTNACTATNNNAGCGTANNCGTNAACNANGNGNAANAATACGGGGCTTANTNAANACATCCAANGTNAGCCNGG GNNNNCGNNANCNTTCACTCATCCCTGCATNTACNNCNTNCTGNCACGNGANTCGCGTNGNTGCCTNAGCTCAAAATTCC CTCATTNNTATGNCATCTTCATCCGGCNANCANAGAAATCCNGNCTGGANGCANACNTTCNGATGGAGNCNNNAGGACAC CCAANACTCCNAACNGNACAAAGNTGCTGAGTTATANGANAATACCTCTCTAATAATTCGGTTCACTGGCNNAGNCGTTG TTNCNNNAGGNAGATCNNCCTTGCTANGAGCNNATTNGCNANTGATNGCNCNGCNGGNAGTACCCGNNNAAGGGANTCCA NTNCTTNAGNGAANCTGGCTCNANACGTANNTTAGGTGNGGTNCTCGATCTCGGAANNCNGAAAAATNNAGNGNNCNNNN CTCCCAGAATNCANNGAGCTTATGGNCTATAATNNANATCGGANGANNTAAGNCACNCNAANTCACTANGGTACTCNGGN GGTTNTNTGCGGNCTCTACNNGGGCGGCNACGAAGACCANTGNTTCNCTTCANAAGANTCGTCGTTTTCNANTAATGACT CNTNAAGAATGCCGCAANNCGGGNTNCANACCNACAATNCACNAAATCATNNCNTGNGTANNAGNCNTNTTNACACCCNG TATTATGACGATGGTCGGTTNTAGTTTNGTCNTTNACCGTNGTGNTAATTGTATCATNCTNTACATTCGTGNNTTGGGTA NTTAGCGGANAAGCAACCGNNNANTNACNNTGAGGCNNAGGCNNCTNAGGAACNCTANCNAACNACTACGNCTAGCCTCC CANNNGAAANCGTANNNGGCAGAGGGANCTATAGCCGCCGAGCTGAGAATGCNTAANTTGNGNTTTNNTNNTTNCACACA CTTTAGTCCNGTGGCATNGAACAATNAAGGNGCCTNGTGGCCAGATNAGTATAGTCCTNTGGGCATCAGCAGTGTNNGGN GNGANGAATAANTTGNATTTTGTNNCTGACNGGACCAGCTCATTGAACCNGTNTAGANTGCAANCAANATNGATGANTNT NTGTNGTACGGCGCCNATCGNCNACNANTAAANGNTNATANATANGCAATCGTTTANGTANCANNANGCGTAGGGNCTGT AGCCATAGGGAATAGGTTTGCTTTANGNCNANCGAGAATGGACNGAANCCGNNTGCNANNNAANACCNCTTTTTTTGNTT GACATNGCNATCCAGGGTGNAACNCTCTATTTTGCGAAATAAANACTAGGNAGGNGTACGNNGNCGNTNANNGATTAGNN TNTTTCNNGATGNNCGTATCGCGCATCATCCNACCAGATATANCNATTGGCTTTATNCATCATNCGCAANANNNCAAGAG GGGTGGCTTACCCCTTCCNTTCGCAACGGNGANGATTGCNGGANTNGNGTGCGGCGAGANTNCAACCNNAGTGCNGAGNG TNCTNGATAATTCTTCNGCTGNATGTATTAAANGTNTTNCANAACAANGGAATCGTCANTTGNNANNTNGTAANGGNNGC CNNCGTNGTAGANTTNTTNNNNTGTAGNCNGNGTCACGAGTCGGTGNAATNCTCCNGGAGNGAACATNNGNNCNCNGCTG GNCCAAATNNCNTCTTTAAGGCNNAATTTCGGTNGNCNCANANCGTACNCAGCNCTCNNNNCTNATCACTGTTCTGNCAG ANCGTGTTCANGNAGTGCACCNNNNTATNTGTNNGCNANCACTTAAANAAGTCAGTCCTGACNATTGCATNNTTNGNAAN GAGATAAGCAACCCNCCGGACNGGGNTTCNCGAGTNATTAAATGNCNNGATCTATTGCACAANATAGNAGNTNNCCCGNG CGNGNTTNAGTCGCAGATNNATTTACACACNAGAGATGTGAAAGNGTTGCTATAAGGACCNGNGGCNNAAGANATGGTGA NGCCGCCGCATANGTNTAAACAGGNNGAGANNCGCANAGTGGAGGCCGTTTTTAAGNGTGANCACATCGAGGCTACGCNA GTAACGTNCCAGANCNATCGAAGNTACCACTAGACTCGTGNCGTAAGNNAGCANCCNNTAGGGAGGCCCGTGTACCGNTC GGGANCANTNAACTTCAGAGNNCNNNCAAGGGTACTCCANGANTTGACACNGTTTNTATGNGTCTGTTTCTATGNTAANN NTTNNNGTTANNGCTACGCGTACTCGGCTNTTTTGGCNTTTNAACNAAANTNNANCTAGNGGTNCNTTATCAAGTGGGTG CCTCTGTNATGNTNTTCTGTCACNTGTANCGGNGANGNGTGCCNAAGNTTGGCTGACGGTCNATAAATNNNTTNNTATCA CTATAATCNTGGCGCTATCATAAAGCACNNNCNTGNNTNNNCGCCGNNCCTTNGTATATNCACGTTGANGGANTGCTTCT AGAGAGGGCCCGTAGGCTNNCTTATNAAGGCCTTGACNNCCNTTANAAGAATGGCNNTAGANTTTGNNCTCAAANNGGNG NGAAGNGGCATGATCNTTTGAGGGNNNAGNAACNGGCNTCNNCTCAAGATTTNNTATGGTATCGNTNCGGNANGATTCCA TCGNAANGTTCNCACTCCNNTANNANNNNTCACGGNAGANTNCGCTCGANNGTTNCGTTATNANTTAGACGTNTGTCCTN ATNACCGGTNTANTCGNCAGTNAGTTCNTTGATTNTGANGTNAATTNANCCGAACACGNACTCTCATGGGTAGGGNTNGC CNNGATAAANNATAGCTNCAANNCTCACACCANCCGTCACGTACAGAATNGCGNGACNGNNGAGTCGGATNTNCGACGTT GAAGNATTTGNTNGCCNACNGNTCCNCTNNCNANTGNGTTNCGANGAGANANNNNCTNGTNNTGAANNTGAACGGTGANC NGGAACAAGATTNAGACNGGGCAACGNACTTCCGTCNGCTTGCNATNTGNGNCGCGATCGNGNATNCTGCAANNGCCTNC GNACGCTACGGCTACANGCTCCCANAATGTACNGCAACGGTACGAANGNNATGNTTNNCGTAGNCCAAGGACTGCCNGAA CTTTAAGGCCCTTNGCNAGCACGNNTANTACGCCANCNNTGNGAGGTCNCNCGNAGCNNTCNTGATCCCTTANTAACGTG GGCGCNCAAGATGTTNAATAGNTCCATNGNGTGTGGTAATTCGNAAGNTATGTCNCNTCNAGNAGGGAAACNATATTCGN NATCAAACTNAACCNGNGCGCCATGATGAGAGTGATNCAATCAAAGAAATCNNTNTAGCAANTCGACNGACCCANGGAGG GAATTTGCGACCACNGNTNGTNTCNANACGCNCTTCNAAAAATNTTGGANAGNTACATNCCNNTGTTTCCAGNGTTTANC GAANGACGNGTCTTGNATCAAGCGNGTACTCTNGCTGGGNGACTTCTGANCACGCACTNCATNTTNTAGTCTTGCNATAA NTCGNAGCGGCATNCAGAANNGTGCGCNCGNNCNNATGCNCGNCTANGNGNATCNNCTCNNTANTGGGNTCTAAGACCAG TCTTANTNCCTCATNANGTAAGTAGATTANGCTNTAATTGATNTANTTANGTNTTGCTGGGTANAAATCTGNGCGTGTAT CANANANCTAATCNCCNACACGTNCNGANNAAGCTGNCANTGGTCNCAAGTCCNAACGAGCGAGCNANCGTAGTNATTNA TNNGTNNNNTANNACTGNTCTCGNCCTTNTNCANNNTCGANGACACGANTCATAGCAGTTACCNCCGGCTTNCCATNTAC NAGTNNGNATNGCATGNTANATCCNGTGGNTCTCNCNGGTCTTTATCGGCNCAGNNGCNATTTACTAGGACCNTATNGGT CTAATNATGGATGCAGACGTTCGTTCCCGGANAAGTANNNTNCCNTGGACACTNNNNCTTNACTAATATTATATCCNCCA NATANTNNACNACNGNCAAGNGGTNTNCCCTAAGTTNAGATGAGCNAACNNCGCNTCATTGCGGCCATNNCCNCNAACNA CNACCCGNTAATTTGCCATCGCGGGAACGCGTNTCCATGANAGCANAGNNGNTGTATGNCATNTCCGGGGCCANTAGAGN TAGATCTCTCCAANTTAGAAANNGCNGANGTNNAACTNNCCNACNNTANNCNAGNNGTAATNCCTNNGTCTACGAGAGNG ANCCTAGACNCCNTAAACNANTTNTCAANCTNAGNCTCGNGNCGAGGACNCNAGACTGGACGCCANNAGGAANTACTACN CNTNANNNGGGNGAAGCGCNCCGNAGNNGATGTANTGTTTGTTATCCGTGTGCCGTCTNGTACNNCGNCANTATTNNGAC GAATGCGNATAGGNTTTNNTACTNGACTNACGCTCGCGCGTACCTCCTTCNATGANTCANNCTTCTANACNNACATAACN NATNTCGGNTCGTCTCNNTTTGACCACNTTTTAGGGGGAAACCGTNCTACGCATNCNTCGTAGNCNGGATGTTNTCTCCA NCTCNTTNGCGATGATACATNTTNGNTAAGACGNNAGTGNNNGNNGGNNCTANTATCATNGATANGNNGNAANNCNGTTN GCTGACNTANNATCACGTANTGNTTANCTATGGCTAACGNNNGAGCGTAATAANGGAATNCCNANCNNNCAGATAANTTG CTGAATTNTNATTAACCCNNTTCAGGGTCTCTGCCGTTCATNTNGATGGCCGTNCNACGAATGGGCCTTTNAGCTNCGNT CGNTCANCTTTCCTGTTTNTCCNCGAGNCGGCCTTCNTTNGNGCTNACTGNGGAATATCGNANNCTTNNATGANNGAGCT NTAAGAAAANCCNACCCGGCAAAACGACATGTTCGCAGTTNGCGTAATNTTGGCANACNNNACCCANTATAACTNTCNNC CNAGCTCCAGGTCCACTCGGANNTTACNTCCANTTACGNNGGGTGAACCGGTCNNTCTNTTAGCNNAACCNCTNGTATTG NTACACAAGAATNGGAACTNGGNCCNGNNANAACNNCGTNTCAATACTNTCCCCGNNAGAAGACTANNAGNTAACNGNCG CCCGACNACACTAGGTACCTNACCNTTCCAAACACGCTCTCATCGTGANNACTTTANTAGATTCNNTNCAGATNTATCAG GNAGNGNAAGCNCNGGTNGACGCCGGGTTCTNCCGGCNTACAGCCTCNGCATCNGTAGAGNCGGTAGGCTTTAGACTGGC AGANGGTACNGCNCGNANAGAGANTNATGTCACTGGTNATGAGTGGAGGNGGAACTGNTATCGCNGGCNANAATNATTGN AAGAAAGTNTTCNNCCGTAGACCGGGTACACAACTATGNNATNNNCTCNTACTACCGTANTAGGGNNNTNNNCTACNACG CNTCTCGANTCNCTAGTGNNCTCGGATTCANCTTTGGCNCNCGACCTACAGGGACACNCAGCTTCNTNCCTNACANGANC TNNCGGNGCATCACANTGGANCNGGGTGCCTNTNTAGGAGGGTTCGCATCAGTACNGGNAANGATCGAANNAGCGCGNCG AACCATCGTATAACTATNANGTCGGNGNTTNTGTNGNCTTGNGTTCNGGTANTGAGNNCACAGGAGCCNNANCNCNATTA ACANTCNNNNCNGCCATAGNACCCNGAGGGTTCTCTCTNGGTTAGGGACTNGNTCNCGNNACGAGAGACCANGTAGANNA NNAGGTNTAAGTNCCATTGCGNNNNNTAANATGTCAACTCCCGCCTTGTTNGNTNTNAAACANNCTCCGTACATTAATAN GTCNNNCGTCGGAGNGGNTCGTNGGTTANCCCCCTNTNTTAAANCCCTAANNGACGNTCCCNTNTCTGAANAACAAAATA NNCNTTNCCACTGTCNNNGGTNGTTNAATNCAGAACGTATTANGTNCTNGAGGGCTGTNGCNAAAGTNTAGTGAAGTTNA CTNAATCAGTCCCGGNGGGCGAAGTCANCTTACGCCNCNNNGGNCTANTNGGGNANNNCGNTNAGGAAGTANTAGTNGGT TGAGTCTNNCNGNATACAGCTAANGCCGNGCNTNTCGTNNGANTTTCNNCCGGACTGCTGCNATGCCAGNANGAGNAATT ACACAANANGNNGGGGNTCNNAGCCGGTNACNCTAAAGATTCCCCTAGNCANGAGNGGACATACAANGGNNGTTTNACNG CTTCTNGTNTNTTGTATNTTCTGNNGCNTCAAAAAANCGNANGACACGCGAGACAAAANACCNACGCNCCTTGTGNGGCT TTTGAACTNCNCTNTACNACACCCTCCCCCCGCNGAGTCNACGTGTGGCCGTCCGNCGATGNTTTGAACNGGACAAANTT NAGCCTNGCCTNGCCNTCNNNNTGACGTCGTANANNNCCCANGAACCTANNNTANGNNGTTGTCGNNTACCGGTTNCGAN CGTNATCNANAANTTACCNGGTTNCTNNACAAGACTTCGNCTNGTTNTTCNTTAGCACCGTGTCNTCGATGGGTATTNNC ACNAGCAATTANATCATCGCGGCTANNAAAACTCNCTNNNCGCTTACNAAGGTCCNGTTAGNGTATNCNTNNACGNCCAA TCGCACATANGGTTGTCNCCNANNCGTTCTCAAACNGACCATTTTATNAGCNCCCGAGGTTNGGTTCCAATANGTTGGAG TATANTCANTCAGTNANTTTANCGAGGGGNCCTNACGATTNATNTCCTGTTCTNTNGTACCTGNTTGTAANGNNANTTCC NATCGCCNCGGATGNAGGGCCNANGAATCGTGCNGNCTCTAANNGAGGCCCNCCCNTAGNAAACCGTATCAANCANCNGT NATCTNTAGANANACTNTCCCGTGTTGATACCCGTANTNCCGACGGGATGCAGCAGGTATANNANTCGGCTGGTNGTTGA TCTACAANGNGNGTNGAGTGATNGAANATCGAACAANACAATAAGNGTCACCCTGGANACTGCGCTAGATCNCNAGGTTC TAAGGGNNNNANATCACTGANNNNCCNACTNCTTTACTCCTCNACCGAAGANGTAAAGCNCGCNGGTNTGTATCNNGNAC AATNNTCCCCCGATNTAGACGTGTCGNACGCCNCTNANAGGNGGGTGTNCGTGTGANTNCNCNTCNGNCNCTGAGCGTGC TTTNTGGNNCAAATACAACANGCGATCGAACNGTGTAACGCATAGNNTGGNANGCNNTNCATCNCTGNTNNGNGNANNCT TNAATCNANTANACGANGAGTTATGNNCTACANCGGNCTCCNCCACGNTANCCNTNACCGNGNACNNAGCCNCGCTACTN AATGTTCAGGNTTTAAGNAANNGCATGNCTCNGCNGNTCTAGAAGNTGATGGTACNATGTAGNCCNANNGCTGCNCGGCG GAGNNATCGNTNNTNNGGAAGGTCANCGGAACCAANGTCCAATAGCTANGNCNCGCACATANNTNNGAGTCNNGANTGGN CNCTGATNNNANTGTGNGCNGGGNTCNCNAGTNAGANANTNNANCNTANCTNTACGTCAAGAACGCCCATCNAATCNCCT TCTGTTTNGGCNGACCTNCTCNANCTTNTNACGNGGGNNNTANGTGATCCCNTGNNAAGGNTGNGANNNTNGCNAAGNAN TACGTTAGAGNTCCAACTNGGACNAANGNATACNAGNCGNATGNAATGNCTNAGNNTGCTANCTAGTNATNTNACTGNAG GAGNACTGCTNCCGAGGTCNATTNTCCNAACCGGTCCCGNTGGCATNANATNNGCCCANTATGGNAGNCNTGNTGGGAGT CGTTTCTGNGCTGATTGNTCCTGNAAANNNGTTCTACNTNCCACGGCNNATGNTNCNATATNTNGATGCNCCTTAACNCT NNAAATGGGNAGTTAGAGNTACTAATTGNTCTAGTAANNNATCGGACNNNTCGANGGGACANNCCNAACTANNGTNAAGN CAGGTGATGCATNTGAAGTTGNGCATACTACGTNGNCAATGNTNGTCTCACCNTTCCCNAATANNGTCATTAGTCTANNT GNGTTATTNCTTGAAGTGTTGCNANCTGCNNTAAGGCACTCGTNGGCCCCTAACGGNCGACTAAGACNNCGGANGCTNGG AAGTGANAGNAGNNGAAAAGANNNNNGTNNNGCGCTATANANGATGTCGTGANANNAGCNAGAGNCANTGTCGCAGTNCT GGCCNTCGNACNATTAATGNCNCNAGTTNNTCTGTNTTTNGGCACANTCTTNCNCACCCAATNCTGGTGNNACANTCGGN CGATAGCNNGNTNCANANTGCCAAAGNTANGTGATCGATNTAACTGGCANGTNNAGNTGCNNNTCCCAATTTTTCCATTG CNGACNCGCCCTTGCTTAATNTAAATGCNGNTATATNGAATNACNCNCNTNTTANTNGNANATNGCNGNAAATCGTCCGT ATANTACAACNGCAAGTCATNGGGANTCCTATNGTTTGNNCATTATTCCACNNNANGATNNGGNACCANCNCCAGAGGCN TGAACCNGCCTNCTGNCTAAAACNANCTGAGNCNGNANAGTCCANTNCGAANCACTACCNACNTCNGACCGGCNNNCAAC AGAGCNNNCGANAGGNAGGCGCCNCTCGGGGNTTAANNAGGAANCACNNACNGCNGANNCNNGNANAGNAATCTTNCGNG CTATTGNGGTTACCTATTANNNCTTTTACCCANNGAATGCTCCTNGAGTTANACTTCGNCTNTNGNNCNCCCNGCAACNN TNTCATGTGGCGNCGATNCAANCGAAGAGATCNATNTCAGCGANNACNGTACATNGGGGTNGANGATACATNTANTNAAG CATNCTTAANCNNCTTTGCANCTCNAAGTNNGACTGTCTTNNGANGNNAACCCNNGGTAACATAGCAGANCGCNANCTNN ATNTCGTTNATCGCGCNAAGAANTCTTTGTTCNGGGNAACNCTGGTNANNGAGCGTCTCCCNGTNNNTTTCCTNANNAGA NTCGATCNNGCNTTGGCAANCCGTNAAAACTNCCACNTCAACNCNCTTANTATNGNANNAACCCTNTGGNANTCGTCCTG TNTGNNCGATNNNCGTGTTCTTCNGTACCANCNATAATTCANCTGGNTNGNCGCNTAGACNTCTTNTNTTTGAGNACTGT GTCTATNTGATNGATAAACANGTGTCGGNGNCNGTNNGACAANCNTCAAGTANGGTTGACANGNCCTGTCNGGNNTGNAC AAGAAAAACGNTGNTNACTTGGNAAGNACNCGNTTTTCGTNAAATCNNNTATNTCGACTNTGCNACNGCACGTCTAAGAT ANCTACTGAAGGNNCNTTNGTGATTGAAAACATAAGCAAGCCGTTCANAAAGNANTAGCACGAANNTGACGANGTACNAT ATGGANNANGCTGCCGTTAGTGANGNACTNNCCCTNNNNNGNGNACCNGCNTGTAGCGCGTTCATNNCACCCNTTCGTNN GTNCTAAGGCANCANTNANTTCNGNCTNGCGATCAGGTGGGNTCCCCACGNNCCNCCNGTATATCGTTNTATCCNACGCG GNNGNNGCNNNNCCCGAGGCNAAAAGCNCCTGTGTACAGCCTNCGNAGGCNGTGGGTGGCCCGNNCGNGACTTGTTTAAC GNCCGCCATANNNTANCAGNCNACNGAGNNCTTTCAAATCNCNGNACNNNANANAANCGTTGATGGTTTCTNNCCTTTTA GCCNTNATCACTCGAAACGNTNGCGAAATCTGTTANNGTAGTCAGTCATAGNAACANAANCAAGNANACGTGANNNNGTC GNTACTAGNGCNANAAGTNNAGNNCACGCNAAANGACGAACAGNATGGANTGCGTTANGCNCCGATANTCATACTAAANA CCACGCAGANGCAGGNCGCGANNGTGAGNCTGCAAATNATCCAAGGNCNAAACTTNGCTTCAGCCTTTCTGNNGCCTCAT CATTACNNNGNTANAANGNTNNCNTGGNTGNCGTTNTAGCNCTNNNNNANAANGNNTGNTTGNGNTNCANNACAANTTNG NTTNACCNTTTGGATGTTNACTCACNCNTATTTCCANNTNCTANCGCCCGTCNGCCTCNATGCANAANCCAAAGNCATAT CANCGANNAGTGAGACAGTCAGCACGTTAANTANCCTTCCACNANGANGGGNGGCNTNTGCATCAGATCCANTGTTCCNA CAATCCNNGTNNNCGCNCTGCGGTGACGTNACCCTCATAAAGGTCANCCNGTCNCGAACNGNGTTGTTAANTCGTGGGCC AGANAACNNTANCTNCNTAGAATGCNCNNGCCCNTGCGTTTCANTTACGCTNCTNGTATTCGACACNCANGCTANAGCNT ATTANNCCCTTTNTGTNGCANCNGANAANTNGCCANTAACATCAGTAGGGGGNATCCNGCTTTCCTNCNAGTGNGCCAAT NTTTTACNAAATCCTCGCNAACTTCGNCGTNGCGCCAGNTTTACCGCNGGANATTGTTNCNCTNAANNGGCNGGTCTAAN ACCACCNNCNTCTTCTTNTANAGNGGCCCTGTANTNNCCTNAGCTTAAAGTNNNGATAGTNNNATTNTATCCNTNANGGC CGACCTNACAAGGNNGTCTGTGCACANAATTTCAANTACCATGNANCGCCNATNCAGNCCCAATNCCGTNCGTCTCGCGN NATGTTNTACCTATCCGANTCTNANCAATATGCANCCATANCGGNGTCCGTAGACTTNCAAAGTGTTATGGTCCNGATTC NTACTCATNCCTGCNTNGTTNCAGNACGTTTGNTANCCAGNACNGGGTAGCCATCTNGTGCGATCGNACNNNTAGGTTCG CANGCTANNGNCAAANCNCNNGGNACGNGGTTCAGAGNCNAGTNANTTCNANAGTNTCAACAACAANTTAAGNGGTTGCC CCGNANACNCCANTTTGGCANANCGTGCACGGGCGGNCTNCNCGGCACCAANTAGNNATACGAANCAGNANNCCTGAACG NCAAGNNANTGCCCCAGCTNNANANCNTCCTAANGAANGAAATNGACANCTGAACNCNANGCNNTANNCNAGANACTANN CCNGCATGTCTNCGNCAANNTTCTGCGTTNNNCTANGCTGCGNGTTTGAANGGTNCNTTTGTANNGTNCATATANACCTC NCTAGTTACGATTCGCACATGCCTCCNCTGANTAATAGATAATTNNTCNCNCNTANGAGNGANGCTTCGAGGAANNACCT NTATNNNGGANTAGCAGAGGANGTCTATNAGAGACACNNGNTCAGACTCNNNNGTAAGCGATCTCNNANNGCGGCAATCN GTTNCACTAGTAGCACCGNNNGCNAGCTNAGANACNNANAAAGNANTTNATATTCATANANATATGATACTCATCNGTTA GGGNGNTTGATCTAGGNCNGCGGGTGTGANGTGTCACTACCNGTNATGGAAGCNGCGAGATCNNAAACGGGAGAGNGNCC CTGAAGCCGCATGACGGCGAGTANGTAGTGAAACTTTATCGNNCGAGGGGAAGGNNTAGTNANAANNNAAGTAGTAGACG ACTNATCTNTATNNCCANCTAGCNGNNGACTTCCACCGTNCTCATNACATAGNAATCTCNNNNTAGNCAGNTGTANGANA TTNNCGCNANTNNTAGACGAAACAGNCCTGGCGCNTNTCTATTGCANNCGTAAACAATGNGTCTCCTANNTCATTGTGGG TTGCCCNNNNCTGCAGCNNATGCTAGACATNNGCNGATNACNANCGCCNTTNGNNACNCAANAANNAAATTGGNNNTCCN CCNNACGCTCANGAGNGACAGCNATCCCTACNTTGGCCNNNTCCCTTCTCTAAGGTNCNATCTNNNCATANANNTTCTNT TCGGGNGATTTCNGNANACANNNCCAGATTTTGTTGNGCTNCGGCCTANGAAAGGNNNGCNGTCANGCAAATATGACCNC ACNNAGNTGNCGGATTACNCTGCNNNAAAAGGNAGAGNAAAGTATTGCTGTTNATCNCGGGGACCNCGNGCNCGAAGCAC ACNCGGNGGNGGGNTNTCGATGCCAAGNGACGACACATTCTCAACNNGATCANCTNTAANGAGACNNGNNNTNNCCNNGT ANGTCTCNGANACNAGTGACGCTGCNANATANAGNGTNGAANGNNAGGACTTTNNCTGACNGCNCTTGACTATNNNTNCG ACNGNANGTGNTNGNCGTNGNACGACANACAAACCANCCTTGAGNGGNTCNTAGNAGTGACCAGAGAACNGNAGGNNGTT GAGATGTAGATTCATGCTTNCTCTTTGACGAGAGAGNGNAANAGNNTAGNTTCCCAGGNCNTTNNCATGCTGNGATANNT AAGGGGCAGTACCNGTCTCCCNNANTANTCAAANCCNAGGCTGCGTTCAATATTAATTAACAGTNTCAGCNANCCNTGAC ATGTCTAGGNCNTATNNTACGTTTGNTAACNAAGNCTCNANGNCGTATAAAATATCTCATNTGTCCTGATGGACATAANT CGANCTNCTNNGGANANATTANGTGTCTACATGCTTCNGACCGNCACAGAGTGNNAGANACNAGTNAGTGNCAGCAGCNG GGATNTTATTNTCGAACGGCANNCGNTGNNGCANCTNATNAGGCANGCNTCNACNTNCAACCGTNCGGCCGCAACGGACC ACTNNGNAGCTGNAATNTTCCNNANACAGNNTTANNTCANGGAGNATCNGNTAGANCACGTTNCATNNNATGGCNCCCNA CTGNATCGTCGGGAGCAGGTNTTGNATTGTNCCCTTNCNCNNCANTGAGATNAACCNGCGGTGCCAGCNGCTANTTTCCG NCNAGANAANANTTNAGTGAATCNTGCNCTATGTCNNGTGACGATTNCTATGCTCATCNACGNTAATCANATGGGGCNTG GATGTATNNCTNNCNGNTCGNANAGTTGNGACCCCCGTAANGGCCNCGNATCCCANCCCANCCNAGTGATGAATTTCCNG GGGGNGCTNTTGACNNTGATTACACTATGTCTNANGCGNATCTCAATANATAATANNTNAGGAGCTGCNTNTTANGCGTN GTTTAGTTACNTNATTNCTCGAGNCTNTCGNGCNTANGGNAAGGCAATNCTANTTCANGGGNNTTNCACTANNNTCGCGG NGNNNGCGAGAATGTAGNCGCCTGNNNGCANTGCCTACGNGTNGNNCTGATCNAGGGNGTACGCGANTNCGATCNNCCGC ACNCTGTTATAACCACACNTCANTTNTNANNTCGTTTGGTANATGANTGCCAAGNNGTGCNGANATGTACACTATGTTAG AATANTCGATTNGNGGCTTCANNNAANTNATNTGTNCCACANCGTGACTGGNTNCCGCNNNTNCANGAAAAATGCGCCTC GGGCGAGGTNGGACTTCTANNTNAATTGACCNGGCCTGAACACTNNNCGACGTACTTCACGTTTATACGNGGNCAGNTGN ANTTGGGATACGTATTAANGTGCCGGGGTTNAAGCANNNNTTNCGCTTANTTCAAACNNGCTCCTAGNACTAACAANTAN CCAANANNTANAANTGGGCAANATNACCTNCACTAGATTTGAGGTGAAGNAGCTTTNTGNTTCNNATAGANTGCAGGNNG CCTNTAATTTNNCTTAACATNGTNAGCTATTCANNTCANNGNGTCGNAATTANCGACACNGTNCAACTNCNATTTCGGAN TGACCCCCTGTANCAACANGTTAANCTNGTAANANGTGCCACGTGAGTGTAGNCAGGNNNAATCNGTCNNGGCTTGGNAT NNTGNNCNGNNNNNANCATCGTNGGTAAGACAAACTNANAGTGATTCCATANTNTNTNAGNTATTAANAGTNTATTGCGC GCGCCGCGTCTTCGNCNCAGACNGTNACTTNGTAAAGACTGGTCATNGGNNTCNCCGTACCNTCCTCTNTNNNAGAGCAN ANGGCNCTGTGATCTTNNNGCAACGGCTATCGANTAATGNNATNACTTGNNACTANNGGNCCGANACCCCCTTNGAGTGG CGTCTNCTTGAGTGGCAANTACNTATNGCTCCGATNNTGNANATNANTNCANTNTCTTNCCTNTGCNAATTNNTCNNTTA ATCGGTCCGACCCGATAGCTNGAGNAACGTGTNCGTNGTGAGGCATTTGTAGNNAANNNAANGGTCATCNCCAGTCATTT GNTCNNNCAGAATGCCGTTTNTAGCGTNGTTCGCATANACTNNNGTGCNCTGCNACTNCNNAGGTNGNAACTCCCNCNGA GCTNCGCTCGTNCTCNAGNGGNGANGCAGCAANTTTNNATNANANACGNANNCNGCATAAATTATGTNTNTACGGCCNTG NCTNAGNNNCNCAGAAATGNGANATGTNTNNCTGNNCTNCNANNGAAGNGGGTGATGNNGCGTGANGCAATACAANCNTG TCTGNACATNTTCTTACCCCTGNGGNCACACGTACTTTNNGCNATAACCCATGTCGNAGNCTAACTAGNNTTGTATCCTC NAGTTGCTAACCGATGNCGCTANCGGCAAAAGAANATGTGCCTGTTGGTCANANGANGCGGCAGTTAACTCTCTGATCCT TNCCNNGACGCTGACNNAGGTANGANTNATNNAGGTCCACCACCTGTNACAACCNNTGCTCCNCCCTNAGGTACGAGCTT ATGGGTTTCCCTGTTCACTGGAGNGANTCANGGTGTTCNTGATANTGNNANGGAAGTCNGGNGGACCNNTTTGAGNGNGA NTNGCTCTGTAGANCANANCCTACTGGCANTCTNGGAAGTACGTGTGAGGTNACTAAGAGGATNCCNNNTAANTCCNACA TCGCGTTNAACAGTTACGCGGGNGACGTCTCACCNNTATGGCANTCNNNATGTNGACNNGNGCGNGTAGCAANCTCCGAT NNANGAAGGNTCGGCGGTCCAGACTNCCNGCTGTCTTNNNTGCGCTNNCCCACNGCTNCGTACGNGGGNAAGGNGTCTAC NAAANCGACNTAGTGANTCGGNACGCTGATCTTATGTTGTCAACANATGTATNNCNGCNCATGCAGNTCAAANATNNGAC ANNAGNGTGACGNTNTCNNCNGCTNTANNCTGTACCGNNCAGCNNTTNCNGACNCCGTNTGGNATNAACTCTTAANGNGG AAAGNAGNNATNTCNCTTAANCTTATCCNTAGCCCGAATTAGACNNTCTNCTGTCCGNTANCGCNTAGACNGACNNNNAT CNAANNAANCNCTTCAACANCNGGCNTGGGTNCTGGTTGNACTCTANCNNGCAGCNTATGGNNTNNANTGGNCGNCACTA TATAAANANCGNAAATGGGACTTATGNAANTNNCATAACNACNANANTNNACTCNNAAGACTCNCCCCTTCATATNATNA ANCNTCCTGNGGNACACACCCNTCTNCATCTTAAATCNNNCGNCCNCCATCAGCGAGCCATAATGTCTGCGNGTCTNTNC ACAGCAANATTTTANCNCNANAAGCTTNNCNGNGCNGTNNCGAGAGTTTGACAAATCTCGCGAANAGTATNAGGCATNNA TCCTGTAGNAANNGGACGANAATNTGTATTAAANNANAGGGTGGTGNTGNNCGCACCNTCAGTTCTCNGNACACGCGTAT ACAGTTTACANNNTANACTGTNGGTACTNCTANNTATTTTCGTGNAANACACNGCTTAANGNGCNANAGNCGCGCTNGGT CTCCCNCGNACGNNNNNANNTNACNGACTCGCNTATGNGANTACCTGTCTTGGTTTNCAGNAGGGGTNCANNTGNGGAGC CATCGGCANANNNNGGTNTTTGGGTNTCNNGNCGAANATACTCCNTCATNGNTACGTGGTANAANCCNTGCCNNCGGGAN NCGTGCCTCGNAGAGGTNTGCGGTGGTNGCGTAANGGNNNTNCCCNCGAAANAGCATTGGATNAAAGAGCCGNCTNTGGA TGCTGTANCANTTCCCGTAATATNCANTTTTNTCTTGGTNTANGAAANGATCTNNACTTNGGNNTNTCANGCTGNATCCG CNGTCGACCATTGANCCNNCGNCTNTGCNACCCNNCCCNNTNNANAGCGNGNTCTGGCTGNCTTTTCNNATNAGCGACTG CANNANGACCGNCACAGGNGATGTCTGNCNACTCTGCCATCGCCCGTCACTGNGGACNAAGTNAANTCNCANTATACTCT CGCTGGAGTCTGANNCTGGTANAATATGCGGACTTNGGAAGTGGCGACNTTTNACGACCNGTGGNCCGNTNNNGAGATCC TGTAAATNCNCATCTATCGNCGATNAAGCANANTCNGGTACGATANTNTCACNCNATGGGCTCATATTNAGCCCGTTNGT NAGGANACTGNCNCAACAAAAAGNNATTCGNCNATTAAGNGNNTTCGAGGCTGCCNCTAGTNCAACCGGGGAAGANNTCA TTTCNANANNACTNGTTGGTGGCNANGCAGAGACTGNTCANNANCGTANNGAACNNCGGGGGCGACCCCAGNGTCANNAN CTTTGTGACNTTGNTCCCNNAGTGAGNGNTTNCCCGCCTNCNNAACNNGNNCAGTNTTCNCCCTNGACGAGTANTATGTN NTGNNANTANACCNNTAANGAGNACNATAATCNCTCCNNGGGAGNGNCTTTANGCAATTCCANNGCATNGGNTNCTTCTT ATCAGACTCCGCAGANTTCCCGTCNNACGAATAATNTTANGAGTNCCGAGCTCCGNTGCCAAACGGANNNGACANGCAAA CACCNCNGCGCTTTTNNAGCTNAGGCTAGGTTGCTCNCTGNACAGAGAAAGGNTTGNACTATGNGCTNCNACCNTTTNTT GCACGGCANANGCGTACNAGNGTCAATCANANAATCCGTGANCCGNNTGAGGANGAGTAANTAATNTNACGGCNCATTNN AGGNGTNCCNANCNCTCCCATCNTCTGCCAGCTCTTCNCGNACCANGTCGCNTCTNTGANAGGCNGTANNNCTTTCNCTT TATTCCNTCGNTAGGGCATGACNGGCATAATATCCACNAGGNNNNNNNTGGATGGTTNACAGACGCTCGGNCATTNGAGT GACGGATGGTCGTCTNTCTCCAGCCAGCCTATATAATNTTACNGNAGANTGGTAATNANAGATNNGANNATAGNTGGAGN NCAACCCANATCCNCATAANTATGNTNNNNTTACGTGNGGCACNGANTTCATTTGTTTGGACTTGANTCNATNAGGGCCC CGNNTGCGCAACCAGCGNNNCCGCGTGNTNNCCNGCNAGNNCCTANNTATAACCCTTCTGNATTGACGAATAGNGTNTAC ATANAATGCGTTNGTANTCNCATCNGGAGCCATCCTTCGGCANANACNAAATNANCGCCATNTNGNTNGCTTGNANTTTT AANACGCGNACAGGNNTNCGAANGCCGAGNCNNNNACGANNANAAACAGGCCANGGTAANCAAATAGGACNATCTCNGNT CNTGNNNGATTAGTAGNACTTTGTNCATNGANNTNNTTTGGCTNNTNCTNGNCTGNNAATNGNGGNACCNTCTNCNGACA AAANGGAACTTACGCNAGGCCTNGNAATANAANNTNGATAGCATTAACNGNNCGATANGGAAAGGTNNTATGANAAGATA AGTAANNNGCTCNGGNNCTNGCAACGNAGAGGGGGTGTGGAANNAACCTGGNCNGNNGANGCTCACTACNACAACNTACG CATTGGAGNNATTCAATNGANNNATTNCCCACANGCCTNTATANANNGTGACCTTACCCCCTTNTNGGCAGAAACNNGNT TNNGNCGGTGNCTCACAGAAGNTCCTTACNGCCNGANNNNCGCTGTCCGTGNGGCNTAAGCNTTCTTGTNATATTAGTTG NCCNGNAGTGTTTTCNTANGNGACTTAGGNNCNACGNCTNCAANACNCCTGTGAGGCNAATGTGATTNCTCGGTACNCNT TATANCGNGTNCACCCATGTTATCACNGTCTTGCCAACCCTTCTAANAATATATANNCNTATTNNNNCAGGCGAACANCN TNGCGAGNNANATATCNAGGAGNATGNAACTAGNCAGTGTACTTGTCTTTCTACTAATAGNNCGTAAAACGCNNCTCNNC CNGTATCNTACACGNCGCNTTATTAGANCANNNNNNTTNGTTCCAGAATGTTGCNACATAATGTTTGANGNGTGGCTGGT GNATTTCTTAGTAGTANGCCACTTGANNCTGTACNTNGCNATGCANGTNCTCTCNNATCGGAGNATCATCNAACGCTGGA CNNGGCTTCAGGGTTTGTACNTGCATGTCCGNCTCGTGNATGCGCCACCAATGCACTAAAGAAGNTGTAGGGGNCNCTAA TCCATGCTCTGTCGGGTTGNNAGTCGNCCCCAANNCNGTCCNGNGGGTNANGTTNCNTNTCCNNGATGGCTCTATCGGNA CCACGAGGTCTACCGATACTTTGNGNGCTNNTGGGAGCCAGGATTACNCNGAATAAGCGTTNGTAAGCTATCATATAATG NGCNTAANNNTACAGGTACGTACAACANTGGGTCCCGTATGTCATCNTATGGCTAAGTCTCAATCTCCGCCAGTAGACGC NNNTCGGCCNGNGNNCCNCNTNACTGCCNCGGCTCNATTNNCGNNGNTNTAAACTNTNCTNNACGCTGTNAGCCTGNGAG AAANGATCNCACTTNCCCTGCCAGATNTAACNTGCNNTATANCNNCCNNNCAATNACTNAAGTANCNCCNTNCTCTNAAT ANGGGTAATGTTGNNAGNTCACCANGGGCNANGCCCGTCNTTGTCGAACNNCANNTACTNANTGACCACCCNCAGGAGCG ACCGNAACNNTGGATNAGGTGGATTAATCCNCTGTCANNCAGNAANCCGGTCGATTNTAGATNGCTACACCCNATTATNT TNTAGCANNTANNCCACGACNGCTCGTTTCNCNCNNANTTTAAGCTNCTAGAGAGTACANTNGAGTTNCGAGCCGAGGTT GNCANTGNGGGNCCCAATGTNTCNANNNNTNNGNGNNNNATCGGGANTCGATTANAAACTGNTCGCTATNTTCTANNNTT AGATNGNGCACAGANAACNCGNTNNATTNGNCTNNCCCGNGTCCAAGTANCNGNCGGCGCAAGNCGACATGNCTAAAGGG TNCGTGCGCCCCGAGNCNNNGANATNTNCACCCNACNGNAGTCCGCGTCGTCNNTACNGACCTCTNGCCNTAAACGGATA TNGGACTTGNNCNTNNGCCGNCGNGCNCGCATNAAGAGGANTAGNCTANANGCANTNCTNTCNCAAGNNGTTAGGTNANC TCANGATACNGNATCCTGACGTNNNNTCCCNNTNGNCATTNTCGTTAAATNCGTCGGGAGATCTAGAGAACCAGCNANTN CTGTANTGTGCNCANGTTACTGTTTNCNGNCNNCTNAACNCNCAGTTTTNNTNNTCTNNGNGAGGTTAAGTGCGTGTNTG GACCNANCTTCTTANGNNGCCGNCCNCATTANTGNTNTAATATAANNCAACTGCTCGTNGATTNGTNGANTANGNTAGTT TNNAAGCCANATTAAGTGTGAGTCTCCGATCTNCTATAANCAAATATTGTCTTGNACGANANTTNGAGTTAANNTNGTTT NAANGGAANAAANACGNGANGAANNAACTANNGCGGNATNTAGGTGACGTCNTGCNNTTTNNAGNCTCANGTCANNGCCA GTTCNTNCTCAGANGCGNCTGNNGGCGNGAGNCTNTNGAATCANGGTANGGTCTNNNAGATCGGCCTTNNCTTTATAANN ANAATANAANGNNGAANCCGTACCGAGNNAGCTGTGANCTNGTGCNNCNNCNTCNCTNAGACCCATTGATAGTGACAAGC ANTGAACAANGTAGCNCANTCNGTCGTCANACNNAGTAGAGAAAAGNGTCGGNAACTNNGCNCTCACANCAAATNNCCGN NTNNGNCTNATCTCCCAGAACAGCNATCNAGCNTNATNTNTAATNGCGANCAATNNANAGTNTAGTGCGTCCGNANCCTN TCGANNCTATACTCNCCAGATGGTANGNNGANTGTGATCGCTGTNGGATACNGGCANATTCGTNCAGNTTNGCANCGTAG GTCTCNCTGGGATTCTATNNANGTNACNNTGTAGNNTNNNTGGTNCTATGGTCACNGGGNTATTGAAGNACATGGGCCGA AGACNGTGTGNNNAGTCCNGANACANGCTAGCACCTCAGTAAGNGGTNNNNGGGCNGATTNAGGNGACNATCNANNNNGN CGCCNNTCNAGNNNGNTCNANNANGNCCNCNANTNNGNTAACAACGNGCGATTAAGGGACGCGCNTNNGTATAGTTTCGA TTNGTATCNCATGNNGAGTNGCGGCNCNCTTNGCTGAGGAGGATTGNCGCAGATGCGGGCNTGNGCCCANGACACNNGCA TTAGAANTTNCGGGGGGCAAGGCTGNNCGCATTTNCTAAGACANCACGNATGCATTNTTGGNNNCAANTTCCTGCNTATA CGTANNCNTNTGNNTATGCGATCCTATGGGATCGGACACNCTGGNGANTNNNTCGATGGANGNGCGATTGACGTGATCGG TAGNANNCTCAGGGNGNCACACTNCNTTNGNNANTTTTCNGGNNCGTCTAACGCNCTTNGTNTCCAAAACGTAAGGTCTT ATTNATCNCGCTCNCGNACGTTTCTCCNATCNGCAACGTAANGNGGTTTCACNGATNGNTCCACNTATGNTTGCCNAACN CANATTGGTANGCGCNCAAGNATGAGTGNGCNGCACTAGGAANANAGNTGGNACNTNANTNGCAAATCNTTANTNGGAAC GCGGCCCCGCNAGNNCACCCCTCNNNCGTCATTTNCNCGCTNNTNTCTNTGANGCGTAACAANTCANGNNGAGCCANTAG TGANGTAGAGCACACCCNAGTNNGCNNCCGCAGTNNNGTCAAATATGGCTCCTGTGGGTNTANAATTTGTCTGTNATCNN NGGTCANTCTCNACGTGCAATAAAAGTACNTTGGCTTCCAAACTACATGNTCTACATAGTCAAGTCTTTCCGTNTANNAG GCCTAATNCCATNTCNCTAAGGNTGGCTATATTAAAGATNATATTTCTCGANATCNNCCGANTTGANAACCNGANACNNN ATCANTGAATNTATCGTNNGCGGCTCNNGTATCTAAGTGGNTGNNGTGCCNTTTCNGTGCGAGNACACACATTNNTCNGG NGAATANTCCNGCANTCCACNCNNCAACTNGGNGNGAGAACNANTCCNTNGNGTGNNACNGNANTTAGNACNGTNANAGA TNNGNGTCGGANANGAAGGTGCGTACGNGGGNANGGCCNCGGTCNGACATCTANTCNNNNGNAANNAAGCACGAGTCATA GGTANTANCGNCCTTGGCTGTNGATNGATNCTGGATCCTGANCACCACACCGTNCGNNTAGAAGTCAATGATCTCACNGA ACNCCNGCNCNGNCATTTNCCTGTATAACATNTNTNNCACGCNCTTCCGACGATCTNCNGNNANGGGNNACTCTGANGTT CNTTGGANGTGCCNNCCTGANCTTCNNTNGNGGATGAAACAGGCGANAANCNTGNACGNAAANTGTGNGNGGCTGCCNCC NTTANGGTAGGACGTTTNGGNCATACGTCTGAATGGATAACNNTAGTCCGAGGACCTGGNTANNANTNANNGTCCCCGAG NCGANTAACAANCTAGGCCGNCNCCTCGCTTCTATNGAAANTCTACGCCCANNGCGGACTGTCAAANCTTNNNNNAAGGN TAATNTCNATCTNAGGTGTCTANNGTGGACATNGGANGTGTGTGACCTCAGNACTTTANAGCNANCGNATCACNGNCNTN ANTNNTGGCCGGTTGGTATNACATTNCCGNCNCNTTTGTAANACTNTANGGCCAGTTNNGCACGNGGGGGGNANACAGNG CCAATAANNGTCNNCCGTCTTATNGCGNGACTACACTTTAGNANAAGNNCTAGGTACANTCTTCTCACTNCNTANGCTTT GTANTNCATTTAGACCCANTANCGTNGTCNANTGNCNNNTCGANAGNANCNCTAACANTNNNGGTGTCCTCTCTTNNAAA GTNAATGCGCAGTATNAATCGCTTAAGNACCCCCGNTGATGTNNCAAGGATTCANGGTCTNTTAGAGNTGATGGATCCGT TNGTAGATTGTNAGNCGTGTACTGGNTATAAAAACTCCAACAANNCTTCCANCNNTNCTTNTNTTACTCGNNANCTTAGC TANCNTTNGTGAGTAAANGNAGGCTCTNATTNCTNTAATCACACGTCCGGCNTGTTNNCNNACNGNANNCTNTNCNNTCA TCCACCNNTACCGCNAAGCAGNGTGGGANAAGNCTNCGAGANNCTCAAGCANNGNATCTCANGTCNCTNNCNNGGGGGCC ATNTGTNGACGAGCTGGTNNAGTCCCNGCTGTATATTNATGNTCCGTATCAGGNNNANCTNGTGTNACGCGGNGGNCGNA NNCAGTCNNCANGGATCTNNGATGATGCTANANAGNAGTNTTNGNGNTCACGTACTNCGNCACGTTAGTTNNTCNAGACA NTNCNAACTNCAGTCAGGAATNCNTGNGANCCCNNTCGATTAGTATATAGGTCTTCGCGNCTGTGNGTCNTNNCCAACNG TGNANACTTCTGNCGNCNTTTTTAATACCCTNTNGGNNCGATGGTGAAATTCNGCNCCGNGNNTCCCNAGACTCAAANCG TGGAATNATTNCCNTGGNGCCTCTTGTGTCAGNTANCNGATCCGTANCGCANTTGNNATNNNCNCTGGGNCTNNNANNCT TGNANNNCCNGTCNCGAGGGACCGAAGCTCTAGGCNTCGAGNNCANNTGCNCTCATCTANNGANNNNCNAGGNAAATGCT TNCGANGACAGCCNTNCTCAGNCCCCTNATCTACNCNGTGGANATNANAGNNGTTACNTATTNANCNNGANGNCNGNCCG ACCGATNCACTTTANCCANNCAGCAGCGCTCNGANCNTTNCTNTTGAAACGNAGTCTNNATATGTGTNTNANCAANAATG TTTAATGGNTCNANCCANTTGACTGTCCCNCNNNCNNTANATNCGNTTTNATNGTNACTGNGAAAAANTTTANACATTGA GTNCGTTNAATNNAATCGTNTGCTNTGAGCANNNTGCNANTNACCCACGTNATNNNNCNNGNCNAATTCGNAAGNGTANC ATNCCCNNGACNTACAANTGTTNANTAAATGCNGCCCATNTCGGTCAGACGNATGTTCNACCANNTNGANNAAGAGNANC CGTGCNCCTCGAGTACCNCCCTANGTGCATAANATTNNTCAAGGCTGTTGNACTAGCATNTATATCNAANACANTCCAGG NCNTNTGNTGNTGTAGNAACCTCACTCAANCATCNGGGNNGGGNATNCTNCTNCCCNTTNTGNTNCCGTTCGNGNTCCTN AGNGGANNCGNNNAGATCTGAACTGACNGACAGTCGCNNGACACNACAATNNTNTNACCAGNGNGCANGTACCTCAGCNA TNNTTNGAGGTTGTNTCANNTAACGGCNTAGGCGTTGNAGTTGCNNTGCGCGNTGNCGCAGTNTTACTNTANTNGANGCC CTTCNCNCGCGNTCGTAACGTTCATATNATGTGATATGTNCAAGNAGACGNTTNGTCTNANCCNCCGNTTCGNCNTTACG CATTACGCAATTTANGNTAGCNCNAGTTACGTNTAAANCANAGATGNATTAGNGCTNCCAAACTTCCNNGGACTGGGCGT CACGNNTTNCCCNCCTATCGGCTGNTGCGAGTCANNATNCGANCGCGNCGNTTATGANGAGAGNTAGCTANTAANCCGNT CNGGTCCNANCNCANCAGTCNANGATTCTGCTTCTTTNGNAGCAGTTAATAGGTANTTNGACNTNGNGTNNCCTTNNTAC NNTCCCATAANAAACGNANNCGATAGTGGGNGAAGNANCNANNGGCAANCGNCANCTTATNCNGNNTNNGNNCGCCTCAC TANGAGAATATANNNGGATNTCNGCCNTGGGGATCAGATTNAATNACTAAATTGATTCTNGNGNAAAAAGGAANAANAGT CGNANACTNANNCNTNNTGTGTNTGATTNNGGTNANCCAACTTGGCGGNNTNGAGAGGTANAACCANCTNNGAAGGTGGN CANGNTCGCNCCNANTNANGATANNNTACNGTTAAGCATACCTCCCGCTGGCTCTTCGCAACNNNTTCGCNNAAGNCNTT NACGTTGTGCANTTACGGANNTACTGTGNCCCGNTCTNAGNCTNCANCTNNTTAGGNNNCCTGCNGAACGCGGATNNACN CAGTNTTCGCCATCGNGNCAATCCACNTGNANACATNCTAAGAGCCGTNNCACCCTGAGCTNCGCNANTAACAAGCGGCC GGCACTTNGCGGGTATCNAAGTTTAANCCTGAATGACAAATNACGTGCTNTTTCNCNNNNCCAGCCAGATGAGGTCTATN ACAGTGNCTAGNNGTTNACGTCGGCNGGCNCTANGCATTNCGTNTTCAANGTCCTTACNTCCAGTNTACCTNCNGCCTNA NCTGTAGATNAACTGANNAAGGTACCACCGANCGGGNNTNAGCGCGNCNCGGCCGAGCNNCANTTAACTGGGNATCNNNA CCGCAATGCNTGTNCGAGGATGATGTGTGTCANTCNTNACNTTGAACCAANNAAGCNANNATCCNANNCNAGNTTCGCCG GCAGGAAAGCCNCNATTNCTNAGNAGNTGCGGTANCTAGGANTCGGNTGANACCGCTGGNGTNGGGTANCNGACGTCATN GTCCNCATCAANANACCATNCGCCNNNCGGGTACACAATNCGACNGGNCANGTCGTACTCCTGCAAGGNATCCGGGTNCT TGCGCCCNTGNTCGTTCNCGNNCNCGTCNCNNNGANTCNNGCNCTCGNCACNACGGCACTGANCGCANCCTGTAACTCNG GGANGTAATNCCCNAANTGCAGACTGNCTNAACTCTGNCGTGTCCGTAGNACANNANGAGNTGGCACCGGGTNNAAAANA NTNGCCCCNGTGGAANCNAACGNGGCTATGCAGGNGAGNGATCGNGNCTTACGNTACGTGNAGGNCNGCGTTAANTCNNA CNTTATCCNGCAGCATNTCCGTNTACACCCACCCTATGGACAACNCTCTCCNANTGTACNAACTGAGNGGAAAGANTCGG GACCGACTTCATTNAANCNCNATCCCACGGTCNGATNCTGTAANTNCTNCGTCGGTACGACANNGNCAGGCNGGTACTCG AAGGCACCNGGCCANGTAGNCCNANTCNCTCNNAGNAGACNTGNNTANNNTGNNCCAGAANNGNACCNGTNCNNTTCAGT NTNCNCAAAATCCANGAGGGTTTAACGNCCAGTCGCGATTTCTGGGNACCCNNCCATAATANNAGAGNNNGTCNGGATAN GGACNANNNCGAGCTGGCCNGTACAACCTTGCCGCAGNTGTNNTTTNATTGAGTGNANATGCGACATTCAGGAGANCTAC NGNCGTGNNCTTAGGAANNCACCCAGTNTNTCTNTAACGNNGTNNNCTCGAANCGATAATGTGAGTTNGCGACCNACTGG ACGTTNGCCNGATTACCNCTNNNGGGCACNCGTGANCGGCNNAGNGTCNGAGCGACTAGNGCGCTATGGATAACNGCTCN ANNGACACGACGTNTANCATTACNTNAGAGGCCGGNNTNGNTCNNNACTCGTNGTGNCTANNCNTNGGNGGCGAAGGNAA TCCNAATTNTACTGCNANATCCNNGTGAGGCNCAGACAAGAGTATTTTGAACCGNANNAAAANNCNTATGGTACNNTCCT GTACTAACACCGTGGNCCCNTTCNCCNGGTAACACANAAAATCGAGANTGAGGAGGGTTNGATGNGNNCNATGCGNNCNT CCCTGGGGAGAGGNANAAANTNACTNTACATGGTGTCCCAGATTGANNAAGGNGNGNANGNTNATTNNTNACCTGGTGCA ACCCGTGTTNGTNCGCGCNGNGNCTTGNCNNGTNNNTACNNCANTATNNANANTGGTAGTCCAAAGTCGATCNTGGTCAT CNAAAAACGNACTCANNGCTCGGCCCNTCNNACNTTAANATCNAGCAANNAAGACGTNAGTNCNNCTCAGCTNCAGATTN TGGTCTNACCGNAAGCCATGGGGACANGTGGNGNTCANGCAANTAATGNCTTACTCACTAGANTNNCNCNGNTANCCGTC TTGNTTNACCTGNGTNTGTATNTCNGAAANGCACGTCGNTNTCGTCCTTGNTNACTTNNGTANCGAGGANGCNCTNCCGC ATCTTTNGAACGGCGCCGCNTAGNNNGNTNTCGNTGGTNTCCANTCTCTTTTCTCCCTNAAAGGANACTNGNNNGTTAGN NTCNAAAACTGAGTTGTGTTGACCNNGGCACANTAAATGCTNCCCTCCCANAAGGACGGGNNTATAATANATTTNANTAN NANNCATCCGCACACAAGCNGCTGGATCGAAAGTGCTNNTGNANGAGAGTACNGCACGCNTNTGNAAACGCNGAGTNAGC ACGGNGNTATATGNCNNTGCGACCTGGACAATAGANNATTTNCCNTCAGCNNTNCANACNCTGTACAGANNTATGNACGC TNGTGCCGNTGTTGCACTNNTNACTNCCCGGCAGAACNNGGTNGTAATNNNCNGTCGCTACANTATCTGNATACCATGTN AAGCAGCCTNTTNACCCAANGAATANTGNTNGGNGCCTGNCCCTGGCANGTNNNCNTGNACTATCTGAGAGNCGNTNCCA NGGCCCATTNTCTAGGTNANGTCGGTGTAGCAACGCANACCGNCCNGTCNCCCCNCTTTACTANGATCTACNAGTGTGNG ANNAGTNGACTGTTNAGATGTCCCTTTCTTCNGANNTNCNNTCNNNATNANGGGTTCCGGATTCGGNTNGTACTGTGTAT TTTTCGCGCGTACNCTTAGCCGGCAATTAANAGCAGAGNCATNGTCGTTGTTTCCNNGCNATNCGAANAGGCTGCTANNG GNGGTCANTAGTGTCGGTGACCTACNTGGAGTCAACNCGGGCCGNNNNTTCACAGATATCNTGGCCNGATACNTGGTTNN ACGCCCATTTATACCNGATGTNNAATCTNCACNGNTANCNTGATNCTGGGACCNANACGTNCAAAGGACATNTAANNNAN AGGACTATNACGCNCGATATNTANCTCTNCTTGTACNCTTANNACTATCGTGCACANCTCCTGTCGNCATGNTGAAGGTN NCNGTCCTNGCTCCCCCACNACGGANTNGCTNNAANTGTGNANAAAGTAGTGGGNGTGGCCCAGCAAATCNGAGCCATTT GGNTCGAGTCTNGCAGTAGCCGTTNCGTNACTAATCCTNACCCCGGTCTGNAGTACCNNGNTGNNCTGTAGTNNGGGGNC AATAACAGANNCGGATCGAGTTNAGNNCCTNACCTNAATATGAAAAAAACCCTACGGACAGGGNTNAAGTATNCGTTNCC GCTNGTGCAGNTATTGCACGATANCTGGNCNTGTCATTCNNNCGAGTTCCNGAGTTCNGCCGTGCGTGATTTTGACANNG CATATGACCANCGAGNGGCGANGAATTAGCCACTTNCNCGNNACATTANGTTNTCCCANTACGGTNANNTCGAGTTGCNG NGCTTCTATAAATCGGCAAGTTTAANTGAAGCGNGGGNAAGGAGNACCTTAGCGCCGTNNCCNGTCNANANGTNGNNGTN ANAAGAAACAGCGCTAACANGAAAANTGTNTTGTNANACCTTTGGCCGANTNGCACNCTNCCCNACAGTNATCTCCATAG NGNTTAGTTCTNNNGNCGNCANTAAACCNNCATACNAAAAAGTNATGCTAGGNTGGCGNANNACCNNNGAGTNATNAATT CATTAANGNNNGATGTNCCCNNTCTANCNACTGCNAANGGCCCATCGCNCTAGANCNTTANGNCANGAGNTANCCAANNA ATNTAANGATGACGCNTTTGCCNGANNCCNCCGCGTTTNANNTTCNGNACGGGCNGNNAATCTGCTTGAGANTTTCANNA CACNNGCAAAGNNCNTGAGAGCCNNGTCTCCTNAACGNAGNTANCACCCGATNAAGGCGCGNTNNANNNGTGACACNCGC ATTCGACNNCGGACATGGNAGNCTGCNGNCATCNNCTTCTTANANATTCGCTGTAANGCTCNTNCGACGTGGGTGGCANC CTCGTGTNATAGNNCGGTTAGTTCTNNCCNNCAGGNCNCAATNAGTAGCANTCGNNCCCTAGCNATAGNCACNGCNCTCN ACCCCGCGTCCANCTNACGAGNCANNAACCATTCCATTGANNGACACACATGNTAATTTCATGACATAATCCNGNNTGCN TGNNCATACTCNTTGTNGCCNNGAAGCGTTGTANGTNAAGNTGNGGCAAACAANNCNCAGNNTAACAGANTCCNTGGTAN NCNANCTCGNTNAGAGGCAATAGNTGAGGGTCNAGCATCGTNNTCTAATCNCNATTGGNNTNCANTGTNAGCACTATANA AGCGNGAATCATNNCGNGANGTGACAAACGCGCCCGTCCANNATTCGNCTNGTCGNGCAATNGAAACCGTCNNNCGTNNN CCNGCGCAGCCTGNACATGAGANNNACTNANGGCCTGGGACCACTNTGTGGGCCTCNGTNTNNNNNCCTANTTTGTGAAG TTNTGNNNGTGGGTTNNTNNTATNACNNGCCTTTNAACNTTATTTCANNAGTCTAGACNCCCGCGNGCNNTNTTNAATNA NGTNNTNCACTACTCCTGAGCCGACNNNANGNNTATTNAGATTNTNAGNGAANTACNGTGCANACCGAGCAGATNNNCGG ANNGGANCGNNTTCTGNNGCGGNCGTAGACNNCAACNGAANAAANNTCAANCTNTTTNNNTTNCACCACTTTTCGACCCA GTCNAAAACGTTCAAAANNGGGACAANAACANACTTCNNCTCTNACGCNAGGCTATNGNNNTTNGNGNTNNAATNNNNCG AGTNCNTNNNCCGCCGATTNANAATNTNNGTANNANACAACTNNTGACGACNNNTATCGANNNANATGTANCACTTGACA TAGCTCACACANATGAGCCCNCAGGNGGNTANGCNNGGTCGGGCTGCGTNCCATTNAATGCATATGNCAGTGGCATGGGC GNANACTNGCNNGCTNGGANCATAGAGTCTTATACACTTAAAGTCNCCNGANATANTNAAGGGGATCNACNNTGAACACG CAACCTNNACNCACTGCGNATGCCNNTACNNAATGGGTNCNTCCANATTAANGNCANCNNNNAGCTAGCCGTGGNAAAAG GACAANTCTTTCNCCTNNGCCCNTGGNNTCGTNGAGGGNAAGGNCTATCTTGANNTATTNCGGTNTCTNACGACANGTNN GNNNGNAGCCGAGATATGGCCGTNGNCTGTGAGANTACNCNCGNNNAGTCGGNTGNGCACACGANNATCCNCTNCNAACC AGACATAGCCCTANCCTTTGANGGGTNGCCATCCTCAGAATCTTCACANGCCCGNTNGANTTNNCACCTCGGCGCGTNNC TGTTCTGCGGTATTNCTGTGNATGTACTCCCNTATNACNTGCGNACCNGTCTGCATCNTCAGCCAANNAAATNNGACANT GGTTGCCTCGTCTGATTNGTNGGTANGTNTATGGTNTANTCCAGAGGGTTNNCATCGANNNNCTCACNGTTCTTTTNCAN NTCTTACNGCGGTTTCTAGNCGCAGGGCCGTNCGTTATANGCTTGCATGTTCTTNTAGTATAAATCNAANTNCCGGNGAA CATCNANCAGCNTTCCGGTNNGNCTGGCGTNGCGGNGGATCNAAAANGACTNTNAGGAGNTGAAANNANAGGTACNGCCN NCTGNACNATAGCAACGTTAGTCCAGTANATGCTACACNTANGTGANANNCAAGNTCCGNGGNACCNCCCCTTCTCTANC CACNNTNAATGTAANCGCCCCATNGCNAGTNTNNAANNGNNGTTGCAACAACGGACAAATTTANCCGGGNNCGAGCTGGA AGNTNCGGNATGTCNNGNGNTGANAGTTNGTCCCNNTACCCGGCTTGGGNATCTTNTNNGACATGNNCTATTAGTAGNGT ATNATGGGAGTNCATNGCNCTACNANNTCGNTACCTCCCNGNGNCACANCANCCNGNNATNCGAGNATNTNNGTNCTNAG GANTCNCTCANTCGNANTGTAGNCGCCNNGTNANNAAGNNCNGAGNCNCAGATNGCCAGGCANGTGAGCCTAGAAGTCAA CNAACGGTAAGNAGAGGGNTGAGATGTNACAAGGGACTCAANGTCGTNAACGATAATANNNNNTTNCTGCCGCAAGTNNA NACTTTAACNNNGCTCNGACGGTNTANTATGNNNNTGAANAGCTATNACCGCNGGACGNTATGTATAANGNCACCNTCGA GNACNTCATAGANACTATGCTNCGGTGCAGAGCTCNTTNNNCCNAGTGNTTGNTGTGTTCCCTAACNCTNNNCTAGACGT ANCNATGTNGGAACTGCGGNGTTTCNCCACGGCCGAGCNTCNNGTNAGNCTNTGANTCNTTAGANTAATCAANTAGACAG NTGTCANANAGTANNCACCCCAGACTCACATCGTCGATATCGTCCNNTAGNGGAAGCTGGGGAGTAACGCTCCNTTNTTG NTCCGNNGGGTATATCTACTGCCCACTCTAAANNTTAATTCTACNNACCANNGNTCTNACGGGTAANGGNTCCNANCTTN TTGCGCCAGCGANTNAANCAGTTGAACNGNTNANCCTGATNTNCAGNGAGGANGAAGACTCCCNGACATTNNCCNGGTGC ACTTTGCNCGAGCNATGNTCNCNTGNCTCATCNACGAACNNCTCGACGGAACAATANCAGAAGTGNTGGNTTNGCTCTNC TTCCACCCGNGNCGNNCCNANGCCTCCGAANCCACNNNTGCCCTCATGGAANTCCNCCATGTTGTATATGAGTCATAGAT GNCAGTCNACTNTGNCGTTAGNTNTGTTCCAANCGGTGGGAANCGAACNNTTNNAANGAANCATGTCGCCACGNCNATCA ANGCNGGTCCCGTGANAGAGGATAGGCTGNCNCACAACCGAGTTAAGACCAATAATNGTANGNTTCACTNTGGAGTCATG GTNANAAAGACNAAANCGCGANCNGTTTNNGGGTAAGCTACTGANTCCNCNACNCATCTANGNGGTNNANATNCGATGAC TATGNTGAGNTACTCACTGCNGCCCGGTTNNTTGNGTTNCGCCNAACTANNACGACNGTCTCCAACCTTTCCGTTNNNCN GGNTAGAANCNTNCNNNNCGNCTNGGACTCGNCGGAAANTACTCTAGNTTNNNATACTNNTTGCTATTGNAANTACATAG GGAGTAGAGGCGCNAGAGTCTACTTGGCNTNGNTAGGCTGGTNCNATNCGGGTTTCAGANGTAGGNTAATATTTAGNNCC GNAAANGCGATCTATTNANGNCNAATACCTNNTGNGNAGTTTATTGANAGTNNNACGCGNGACGAGGNAAGNNNTTCGAN ANTANTTNAAANGCCCGGCGNNTTACCATGTCTNCTTACTAAANNTTCCGNGNACGGTTCGNCCCGCCGTGNCNNNGCAG ANNTAAATNGANATNCATGTANAAAANNGTNCNANCNTTNNCTAGGCNTCAGGGTNCNNANACCATTANGAGGCCATNCA NTANNNNTGCCGTGCNGAGTACCCATCATTTACACAATGANGGNTGAGTAAGCCNAAAATGANNGANANAGGTCCANNGG CCTATANACNNCNNNTNTTGNNGTCTCATCTGACNCNNNAAGCCCACAGAGNACNNTNAACGGCAANTAAGTTGTCTGTC CGAGTTACTTCNACCATNTTGGAANTACTGNTTTNNTTAGNCGGGCNATGATGATTGTAAGTACCATAGGNGANAAATAN CTGCTTCGNACCCGAGCGAANAAATGACCCGGGGNNCCAACTTNNTCTAANTACNTATNCTTTCTNNCNTNCNATNAGNT CTCCCGNNTGNNGCAGGNTCGCGACTNTGGTNAGATCNNNAGNNANNGCTTTTCTCNTTCTNACNCTGANCGACCTCTAA NGNCAAAGNAANCCCTTTGTGACANAATCANTATCAGTTTAGATTCNCTGTNNCCTNNTTCCGATTCCGCACTNGGTGTG TGGCNTGCGGNNTNNGACGGANAGCGNCGNNCNGATCNANTGTTAATAGTATNNAATGCANTGATATCAATGNATTATAA NCANGTTCANATGANTCNAACGGATGGGCTGCCCCANCAAGNTANTNGGAGGNGAGGNAGTGCNGGCACAANCTGCTCCT CGCCNTCATNTTATCATGANNTCANGANNCCNTCCCNTTATTNGNGTGATNCTAANANNCNNANTNCCNTAAACCNCTNN AGGTNCNGAAAAAACNANANTGGGGGNAATAATCNCGGNGCCTGGTACNNNNTCNCCCTAGTCAACAATTGNNTCNAAAA NGTGNTATGTNTGCGCATCTTGNNCTNAAACATTGGTGCNTATGCTGNAGGGTNCCAGTCTNTTCNGGGGNTAGNTNNGT NCTNACAANTNCNNCCACNTNNTACTNANAATTGAGGCGNCGCCTGACATNAGGGAAAGGTCTAACATCTTTGNGCNACN ACAGACGNTGGTGTACAAGGTNAGNCATGGCCGNNTTTAGNTATCCNTGAGTTCNACCCNATCTNTNGTTNNNGACAAGC TTNTAANGNCAGNATGNCGTTGTCGTNCATCCAGNCTGATNANNNAGGCCTCCCGTCGGTGNTACNANANCGNTGGACGC GGGTATNGGNGAGGCNAANAANNNGNCTNTCGCGNANACNCCAACCTAGNTACATTNGNNTNCNNGANACACGATTACTC TTTTNNAGNCCTTTAGNCCCGTNTTCGTNTNNGCGGTNTCACTNANGNAACGGCTTCGCNACGAGCTTCCCCTACTNNCN CATGGCCCCNTANNTCGCCACNNTAANNANNTGAGNNTGACCNCCGCTNTNGTNGNATGCTGTNNCNTCNNGGAGTGNTG CNGCTNAGCAGACNTCAGNCTCCNNCAACCTTCCGNACNCCTTNGNNCCTAGCCTTTNCGGCANTGACCCNCCTTTCATA ATNNCGGTCCCCGAAAAANNANNNAANTTCTATTNCTGCNCAGANCGATTGCCTCTCNNTTNCCTAAGTNCNANNNCATC ANTNTTTNNGTNTCGAACGTGNNGTNCAAANCNTGACNTCGATTAGACGGTACGGNTCANNGTAANATCCGTTCCCGGAC NACANGNCGGGGGCNNTATTNTTAGCCGCNNCNGCCNNGTTAAAAACTANNNGNCAANACTGNNNTGGATNNTANNGNCG NNNNTNNATTGCANCACNGGGGNCCTNCGATGGNNCCTGCNGGCGTGNTAGGTANGTCGTCCCAGACTNNCCACTGCCNC ATAANGANGTAACCAGGGTTNCNTGCGNGAGAGCNGTNCCNGTNCANNGNAATGGAGNAGANATNCCGACCNATGAGTAN TATCATACTGCNTCNTCNTANTACGNCNNGATGATCTNNAANACNAGTNNGCNTGTNGNAAACTCNAAATGTCAAGTAAA CGTTTTACCCTGACCGTTCCCNGTANNTNAAGNNTGANCNNTCATTTCCTCTAAGAATACNTGNCACGGCATGCGTNTAT GANTCGNACNACCGTNTATAGGGACAGGTCCGGNATTNANGGGTNNNCTTGCNNGGAAGGNTNTTNNATTNAAGTGNGNT CCGCTTGANGGTAGCCACGCTTCNGCGNAGCTGAGGANCNCATANGCTCANNCANAGAGATGCCGCCGNGNCCNGNNCTC GACTGCATGTTCTCACCCNGNNGCNCCTCTTTTGAAACCTGAANAGANNGGCTACAAACAAATCTCCGAAGGNANNANCA ATNCGGTCANCTCTCNACANCNTGTCGNANATCTTNCTCNNTTCNACNTCTTAGTAGTGTCGNATTNNTATGCGTAGGCG CCNTGCACCGCCTANGTTATTTTTTCNNTCCTATGACCANTACAGGGTNNNAGGTNCNNACNAGTTNCGGNCCNTAGAAA CGTTTTTTCTANNATTCCTTAAATGAAACNGGGACGCTAGCTCGAAACGCTGAAGCATNGCGTCGANGCCNAGTGTCNCA GNNATGGTTACCNTTNTGNAATACNACACAGTTAANNTTATNACTTCCTTCAAAANTCTCCCCTGGGTCAGACCANNNGN NTGTNNNCTGNNACGTANTCANGNCNCACCATCGNCNTANCCANTACNAANATNTAAGAGCATCNTGNGACNTGATNTTG AGGGTNNCGCGGANAGANGNGAGNNTCGTNNANNGTTNANATTCTTACGATTCGCTCATTAGNATGAAGCATNNAATAAN GCGAANTTTAGTTNGAGTTNCATACATACCTTTNAATGCCNGNNNCTTACNNTNAGNAATATTNTNAATCTNNTAGNACT TNTNNCNGGNGNNCNNGNGTTTGCNTGTTCGCTGNTNCCTGATNTTTTGTACGTATCAANCANNATCGCAACGTCACCCT ATGGCNANGACNAGAANACCCTAGTGCTNNCCGACGNACCCAGCANGNNCGTAANCTCTTCGTATTNNNACAANTGCGGC GACNAAGCNNCNCGCCGTATCGNNNACTGTACNCCATGGATGNNCCCGGCTTTTAGCNGATCTTCGTGNCTNCGNCNCCG NTACTNATCCACTNTCCGNTTCGNGCCACAGAGAGTCTNNCTCCTGNTGCTTTANACTGCGCTGGCTAGNNAGGCCCGGN CTAGCANTANNNAGACGTAGTNCNCTCGTNGNNCACNGNTNCNATNGANNNCNNTGCTATATGTAANCCTTCNAAANTCG GTTACTTTTGTCAANCGCCTCCCNGTAGAGTCGGNGAATTCCTTGCGGAGTCACTAGTACGGCCCATCCCTNNTCGCGTC CGGCNGCNCTACNCTGNTANGAGTGGGATNCGTAANTANGAATTTCGCTCGNTANTCTAACTAGCNCGTAGGCCTNTNNA TCNGTANAANACATGTTTCTTGACAGTNTNACAACTCTNNTTATNATGCCCAAGTGCNNACGAGATTTCTATTNGANTNG AAATCCAGTACTNGGGCTTCNGTAANNTNNAACNNNNGGNGTTNTAGAGCCNCCNTNAGCNGCTNNACTNANAGCNCNNN ANCGGTCCNACNACAACAGTTGTNCNCTAGTTCNCACATNCGGTCCAAAGGAGNTNCCAGCTATGCCGNCTTNTGCAGGC GGANGGCTNGCNANGATNGGCNCNGNACAAGTNCTGNNGCNCNGNNGNGCAAGACGTNCNTTNGGCGCTGNGCACNTCCA AANATANTGTATNCTAGCGGGTNGGTGTNCGNACNGGGCCNGCNTTCNCTTNNGCTTAGCGCTGTTCGATGTNNCAGCCC AGGCTACGNATTNGAGATNGAACATTGGCGAGTCNAAGGNATCTCNAAACCCNCCGGNAGNCTAAGNTTGTTCATTANGG AGNAGTCTANTCANCCNNTCNNNTAATNCANTTCCTTNACGTAATCNNTACCGTNGGTNGTAGNGANTNGCNTTNNGNAG NCNGNCCNNTNCCCNNNANTTGGCGTAGNNTNAACNGGGCTNTNAGGCCNCAATCNCCGTGAGATTNCGTCNGACNAANT ATACATGACTTNNNANGGNNNNCGCNTNCTCANAACTNTAAGGTCCACCGAATNGCACTAGCGGAGGTGGGNGNCNTCGG TCAGACNCNCTTTACNTGCNCNNTCCGNTCTNGAGCGAACCAGNGTNANATTTGNNNCANTATGCAGAAGNGTGTNGACT TGCTCTNGGTNGAGATCTANCCNNNCANTNCTCNCNAACNGCCGAGTNCNNNCTAGGNTGCGACCNACGGCGGTCCTNGG NTTCCCTGNNGGGTNCNAGATNANTNTGNATTATCAAAGACGNGCACGCGGCTGNGNTCCCCTGCNGNGTNNNTACCGTC TNAGNTNGCGTNNGTCTTTGANGTTNNAATCANANACTAACCNCCTTCGAANGTANGCAGTAACCNCCTTTTNGACCNTG ACNCNTTGGGCAGNGACNANTTTAAAAGGCTNNNAATANGCCANGTTNTGTGATGACAGANTACTGNACGNNAAGGNCNT CTANAACGATANTGGAAAGACTANCTAACNAGATAGAANCNCCGNNTCGTTTGTNTACCAATTAAGAACCTGAGNCCGNN TACTNCNGACTTCGGGTCCNCANCTCGTGNNNCGCTANCAGACTTCAATAACGCCNGACNAANTNGCNCNCAAATGNAGA NNCGNGNCACAGCCGTNTNNGNCGANGNCGGNGAANANATGTAANACNNCCNTCAATATNACACGCNNGCNAANTCTCCG CCCNTGNGATATTATAAGGNNNGTTAATCCTCCNGTNCCAGNANTGTGGCCATGGTNTAGTNATNAAGCNCATTNAGNTC CCNANTTAGACCNNCGTATATCAGTACCGNTGTGTACNACCNTNTACGNTGGTTNCGGTANGCATAGAATACNNCCNGAN NNNTCNNGCNNTACNGTAGNGCNNGCGTCAGTNNNGCANNNAATGGATTGATNTCNAGNGNCAAANACNCAAGAAGTNNG AGTGNACCCAGGNTANGNCCCTACCCGCTGNTATTGCTCTAGNAGNGTNGAGNTCTTTATTCNTTNTAGCATGCTNGNCA GANNNAAAATNAANNGGNCTGGAAGATCCCCTACTTNCNTTGGTNTTNNCGGNTGACGGGAANGTNTNANTTTTGAGNGN ACATANGNAACCAACAACNNNTGGTCGGTACAANGGTCGNGAGNNNAACANCNTAAGAGNGCTACNTCNCCNGNNGGTGG TNTGGAAANTTGACNCTACTNNAAANGGGTTCCTACTCGTTCNNTTATCNNNCNATNAAGATACTNNNCCACNCCGTGGT ATAGNANTNGNGCGATGGACNNGCNCAANACTCAGANAGTCAGGGCNTCCGCGTGTCTGNNANNNAGCCGGGATANTTNT CCCNACNNTTTNCAAGCNGAACGCANANGTCAAATTNGCCNTTGCNCNGGGNNTNNANAAGNANTACAGCTCGAAGTAGA TANATTGATGGATNGCNGNGNGCNGAANCGAAACCCACGNANTNACTAAAACTATCCCNAANGATAAANTTGNTCCAGTN NNTATTGAGCNGCNACGGNCTTGATNCTNGGAGGTATCATTTNANCGNNTTTNAATCTCAAAGAACGCNTNCNGCNGCGN ATNAATGNTNATGCGGAGCNCNTNCGTCTATGGNAGTNGATTCGCTAGGCGGNAATNAANCNNNTTANGCNGTCGANCGG CNTTATTCAACGATGTANCGNCTTGNNTNNGACNANTTTTCANAGCAGATNAAGCCGNGCTCAGAGCNCNAAANNATCGA TCCNGAAAGTTAGTCNAGCGNGGGNTGACTGCNTAACGCGACATNGCTGNNGANAGGTAANCNTAGATGNTGTCAACNNT AACCCGGATANNCGTTCATANAATCTCTGNGTTNGTTTNANNGCATTCACTGANGTACCAGNNCNTTCGCCAAAGCCGGG GACNCNCANAAAGNNTTATTACTCANTTTGNAGGACAAGTNCCNCCATCCAAGNCAAANTANCANNCACCCNACCATTCA AATGAGNNATTCANGNGCTCACNTTGGTTAACCGNCTCGGGCCAANGGGCCCAAANGGGGGGANGTACTNTCGCCANGAT ATTGNCCNAGAANTTNTNCNTTGGACGTTCTCAGCAGACAATCTTTTCCNGTNGCTNGATCNCTAGNNAANACCGNGAAA TCCTCGGNNGGCGCNNTTNATCACCCCGGAGNCGNTGGNTGNCAGTCNAGTTTCANACCGACGTTTGGTTATACNAGGAA AGCNTTATNGGNAGCGAGCNNCANTNNTNCTANCCAACNTANCNGCGGCTCAANCGNTAGGACTGTTGCTANNTNGTGCC GCGCGATATGTGTGGCCNACTTANTCNGCNTNTAAGTNGNANCGCCTGGANGTNAGNAGNGATGNCNGANTCGTNAGTTC NNAGTAGCCNAANNACTANGNGGANTTTAACCGNTACCAGGCNNGTTNTGCTCTCGTGACCTTNCGACAGTTCCGCTCTN NCCGANTATATNACNCCGGNCGACANANAGCCTGGTGGATCNGCGGCCGNGGATNTCGATNTATGANATTCATCNNGNNC CTCTNGGGCAGNCGCCNGGGCCTGNGGGTNACACCNATCNNGANNTNGCGTGCCNTTCGCANCGGTANANTCTNCTTCTG GAGAACAGNNCNATGACNTACCTTTCGTCTCAATATGGCTCAGCACNGCCACACCATATCTNGTCGGNTATGNNTNNCTA GNTCNCCNNCTGTCGAAGGGACGAGTGTNTCAGACGTNCGGATTTCAAAGGNTNNNGCCACCAAAGTGTATANNCANAAG CTATTGCTAGACACCNCACNTTGNANAANGATGGANNCTNNCTANCAGCCTCGAGGTCCTNNCGCGTAAGNGNNNNTATA CATNCCGTCNCCANANAGNANNNNGCACNACACTGNCNTGNAGTGACCCNCCCNGTCANGTTCGCTTCNNGGNTGCAGAA CAGCNNNNANTNAGCGGNGNNNGCTNNAACCGCGTAGCTACNGCTNGTCNTACGTGANAANTAGCGTGTNNCTNGTNTAA NTTACGNTTGGNGGNNNCANGAANGACAGGTNCTCNTNACTCGGGGACCGTCCCGTANANGGAACTCNGGCTANAGGCCG ANACGNTNCANNTNGCCAGTGGNAATGNTGTNGNTNNATCGAACNCTGTAATTANGTTNTGNANNNGTAAAGCCATAATA TANNCCTANACGCCAATNNAGGCNGNTACNCNGATAGATNAGNNNNCNAAANGNNNTGACANGNTTCNNCTATGTANNTN CTNCANGGNNACCCGGNNACGNACGTTCTCCANTTGTCAAACGCGNCANANAANCNGNGTCNNNAACNTTGNATGNTTAT GATCGTACTAGATGCACGAACNNNNAGGAAANACNTNGCTCACNACCTNNNNCAGATCAGNAAACNCCGTGTGNCANNCG GCNCTATCTCACACAAGGNCTNTGCGTGGGACANNNGGAGACCTACGGNNNGCGNNTCAGTGTNGCANCTTTGAGGCGGA ACGTNTGAANGCTANGCANNCCNNNANNAATTCTNTANTATTGGNTNGNAGGGANAANNCAGGNANTTANCNNCGTAGNC TCACNNTGAANGTCCGCNCNAAAAATTANGAAGTTANNNNNCTGTTAACAAACATGGCGTNTCCGTGGGGCCGGAAACNG TGTGCAGGCTNNTTACATATNGANCNGAAANGCAAGTGGAGCAGTCNGANCNCNACGAGNAGGANGACNTCGNCTTAAAT GAGGNANGNTNGTCACTNACCGNTGCNTGNAANNNTNANNCCNNTAGCAAGCTCTTAGAACANTCCTCCGNTGTATATAA CTCGGANCNATCNGGGTAATCNNGAANTTCCACNACTGTGNGAGANNGNGTTATCCGTNNGANTGNCTANGCAATTACTN TCCANCGTCCGACCGANGNTTAANTNGCATNNTNGATANNGCCTTNNGAGCACATAACNCCATTTAGNCAANGGGGAGCC ANGAGGCGTGTCCTCNAAAACNGANNGATGGTAGCCCCAGGGGAGTCGCCNCCGGNNGTNNANGNGNNAGGCAGNGTACT AAGGCNTCCTNNNCTAAGNGANTTCCCGAGNGCCNCTTNAANNTAATTCGCCCTNNGNNAAGNGGNNNGTNCAATCCAGT ANACACNATNCGACTACANCGTCNNNGGTTTTCAACNATCTCNTGAGAGCGNTAAGATATTGNAACGTNAAGNCCACCCT TNGCTTNGNNANACGANGGNGNCGANAATTCGTCTCGANNCTNCTTAGCCGCCNTTTAGCNNCTGTAGTNNCNTCNTGTN GGTCCCCAATTNAGGGAGNGACCTGNCTGCCGNTNGTNANAGCACCCTTGATCGTTCANNNGCTGAGNCCTCTNANTNTT ATGGANTGNGAGGAAGNCCTNNCTTCGGGNATGCCNNNTTCCCGCNNAGNTTGCCAGTTNCGGGCNTCGANTNGCGATCT NTGCATNACGNAGAAACTCCCNAGATCGGTNANTACGCTGACNNAAGTCNNACAATANCAGNNCGCCATNTTAGTNTTTT GNNGTNTNCTCCTAGTCNTAACGTNAGCGTCCNGGGATNGTTGCCGNNCCGNATGTANGCGTGNGTGACCNGGGGTATGA NTNTAANTNNNCGCGNGGACGNATNGNTTNACTGTCGNNANANTGANCGAACGTACTATGNNGNGCTNATCANTGTGGNC NGAACANCTNCCACNANGTAGACNACGNTNTAAGTTCGATTNCATACTANGACNGGNTTGACAAGTNTTTACCNGGTACC CNAGNNGNTNNATNGANNNTGGGTAGCGAATCTAAAGNNCAGTGATGGGGNCAGGCCAANGAAGGAAGATTATNGCNNCC TCACNATGANCANNNGTACGTNCGTTTCTNCGCGNNNCCTTGCCNNNNAANCAGGTTGNCATCNATGGTAAATGGAAATC NNAAGATTTGTTGTCNGNTANTATNNGNGNACAAACAGTCGCCNGCNGNACCCNTTCAGCNTGAAAGNGNGNNCGNAGGT AANTNGACANAAGGATGTTCANAGCAGTGACCNNCTCTTNAGATGGGCGGGNATGCNNTTCNGCACNANTACCTNCNACN TTANTNGNGNNTNNCTTCTTCCCGGNGAGGNNCTCATNCNCNGTGGGCANNCNNCTANNAAAACTAAGGGACGATCAGCN CAGGACANGTNNTCCATGCGAGAGCGTNGATTCAACCGNTNTTGATAGGCCGCNTGGAGACNNTTTTACNATNATTGCAA GANAGGTCGGNCAGGGNAAGACNANNGNTGTNTGGNNACCATACNCCCGCGTGGNCANGTNNNCGAACTNAGCTACANTC NAGTCCCNGAGNGTGCGTANCANNACNACGNTGATCNCCNGCTGCNAGCCCTTAGGTGANACAANTAAAGCTCCTANNGT GGNGTNTNTNTGGTCCGNGACCTCTNNANTAACANTAGNAGNCTNNAAACACTANNACACGTTTNTTCTGNCNCNCNTGA CCNAGTGCCNTCNCNTTNGACGAANCGANANNCCCGACTCAATAGAGAGNATGGAAGTCNTGTCCTCNATCCGCNANGGC CGCCANCACTTGAGCGCCGGCCGNCGTNTCGTTNTATNNCGNNTNNGATACGNCATTTACCAANANAACTATTCTGNGNC ATGGANCGNCGACACGTCTTGNNNAACGTNCCNCNAAGGGAGGTANGAATGATANGTGAATATTGCACTNTACGGTAANN ANAATAAACNNNCATCCGANTATGTANNCTCTCCNCGTGAGNAANCATGAGTCATNATTCATAAATAAGANATTAANTCC GAGCNAGTCNNATGCTTCTCNAAATNTTCCAGATANCTAGTACATGTNNNAAATCGAACTGCGCGGTGGCGGNAGATTNA NNTGGATNGACTTCCGAAGGNTTNGTCCCTTCTCACCAACGGATACGNNTTCANGAGCGANTGTTNNNCCTCACGATNTA TTGCNCTTACGNTCTTTNTTCGNCATGGATNACTCGTAACTNGTCTAAAANGGCTTNAACAGCCGCCGAAAATGGCGAGC TCCNGCCTNNAAAAGNNTGTGCNCGGCCGCTNGNTAATAGCCGCNTTTTTGTCGANANNNGGANNGCNAGNTGNNNATNN TGGGAAGNAGAGNNGNGTNTCCTGAACNNTATAGCTNCTNGNATAGTNGCGTACNTNNTGNCGCGCANCCTCANANGTNG GAACNNGCNGGCANGGATGANCACNCCCATAAGGNNGAATTCGATCNGTTGGCATCCACCGACGCNCNANCGNATNACNN TTNGCNNTCTCTGATGTGGNAATCNGGNTGGAGNCGCCTATTTAACGAGGTGNNAATCTCCANTATACTTANATNCAAAC ACNCNAGGTCNCNAAANTGTACNNCNNTTTCTGGGGGGNATGANTCATCCNGTCCNGANGGGGCCANNGACGNAANNANN GNTCGCGCCTNAGATTNTACCGGAGGATACCTTTNAGTACANNACTGTCTGAGANCCAGTTGATGGTATCGCGCNAANGC GCCGGATCAACGTNCGCAANAANTTGGANCAGGCGCGNGCNGACGACAGNCTANCTATGNNCNNGNGACACCTCTAAGGC GNCGTTGTTTGGANANGCTGAGTGGGGCCNGNGNCANTTCNTNCTCCGTTNNGATNGCACGATAANNGNTTNCTANGAGA AACACANTTGTATCNTCCGACATGGTNATCACCNCAACCGTGGGAAGAGTATTCCTGGCNCCTGGTAAAGNCACNTANCT TAAGCGTNCTNCAGANATANCNAAAGNCTTAAAGTCGNAGCTNCTNTGTGTNATGAGAACGCGTGNCNCGTGCTGAAGAA NGNTNAGGCNGTGCNATAGGAGAGNGAAGTGGCCACCCACNCAAGAACTTANAATCCNANANCTTATGACTTCTGAATNG CCACAGNGATCTNGGGGGNACTCNAAAAGANTCGCNTTAGAGNGGNGNNGNCTTNAACGCCCTGGNCNGNAGNNGTCTAT NGANATNCAGCAGTTTGTNATCGNTCNAGCNNTNGATNGAGNANANCGCNNGGAANGGACACTCTTANCAAAGACAGACA NNAATCAGCCTTCTTCATACGCTANANNATATCGTATTNNNGTCGGGCGTCNCCACTNATNCTCNNTNCCNCTATAGCCT TAGTCGTAAGTNGTTNANNGNCAACTCTGAANCNGTCGTTCTATATCNANGTAGNNAAAACAGTCANGCTNAAGAGACTA TNCNCNGAANTACTCAANCNNTCNAAGGCAATCGACGGTGCGTGNCAGCATCTNGGAGAGCANTNCGCACCTGGCGCATA TTTCGCNNTAACNNGATNTTCNCNGTNAGGNGNTTCTCACACNTCNNCNGGNTANACNCNNTNTCANACGCTCTANTCGG GTACANNCCCNGCGGTGCANCANNNNGACTTACTTNGNANNNNNANCTNNTTGTGAANNAANNTAGGAANTTANNACNGN ACATNTCTAAGTGCGNCCGCCGAGCGCCGCCANCCCTNNTCCTCANGCCTAACAAGACCGNACTTNNCANACNNTNTTGN TNNAATATTTCTGNNTCGACCGNTTGNTCNAACNNAANCCCGCANGATGTATTGGGGAGCCTCNTAATNNCANTTANATG NGNGAAGCGNGCCNAGTAACGTNNNCNNACANGAGNCGANTGANGTGCNTNNNACTNNCGCNCGAAACAATTAAGANCCC NNTNAACCCGGNCNCTCAAGCNTCANCNAACAAGCTCANTAAGAANCATGNACCTNTGCNACTAGTTTTCGGAGATGCTG AGTTCNGNNNGNATCCGCANCGTNTAGNGAGCGANCNGCTGANCGNACCTATCCAGCNNTNTNANNTCNAGCCCNNNATC NGGNNTATTAAGNTTTCTNGTCCGNTCACANGNACGNCTTNCTTCCAGTACANCTGCTGTCGACCTTTANTGNGNTCNNC NTGNNTTCTACAANNTNCCNATAGGTGTGGGTAGNAACACANCTNGCCNGTCTCGGGACNTTAGGAAATNGCGTGNGTTC GANNANNNAGGNCCGTGNGTANCNNGTAGTTCNGCGNNACTGGATAACCGACGGTCTNNTGGACATACNCTGTATTANGN TGTGGCGGTACNTTNNTGNCNAGCCNAATCNCGCNACCCGGANGGACCNNANACNTCCAACNANAACATNNGTCNATAGG ATTCCGNTAGNGTAAAGNTTTCNCCAAGAGANTCNANCTTNNCATTGACACNTCCTCCCTNCCGGTTTCCNAAATANCGG TGGCTANNNNGACCACCGTTGGANNAATCANGTGAGNNTATGNTCTNNAAGNTAACGGCTNNNCGNTGNTNTACNATNNT TCGGCAAANTTTTAGNAGTAGGTGACCGNGATTGCACCCCNCGCGTCGCNANATGNCCGAGAGGACAAAANGAANAAATA NTGGNTNATTNNAANNCACCNCACGGAGCTNCTGGCTNAAGACACAGCATNNCCCGGTTTNTNATANGAGGCTNCNANTC GGTGTCNACTANATGCTACANTATATAACGTTGNNNGTGNNNCANATNCNNTAGNNCTTTNCNCNTTAACAGTNAAANNT GTTAAAAGANNTATNTNGNNGATTCNNANATCTNAANAGCCTGNCTTTNNGGGGGGTATNNGCCGACATCGNANTATNNN ATNAACGCTTCTTNCAGATGNGCAGGGTCNCGGNGATGACAANAAAACAAANTTTNANNNGTTCGNAAANNGCTGGNAAG ATCGNANGGCGCAGNGATTCGANNTNCGGTACACCGTCATGGCTTNTTCNCGANCACCNGGGTAANNGGTGTGNGGGNAT ACANGGGCGAACNCAAGGANGTANATAAAAAGAGGANGCNTCCTNTTNANCTACAGAGNGGTTATGGNAGTAACGCAATN NGGTTAGTNNNNNNTACNCACAGGNNCGNTCATGCCNCGAAGGATTANAGTACAGCCCGTGCAGCAAGCGGGGGCTANNC ATTAGTGAAAGCATTAATAGNAAAAGANTGTTCNTAAGGNTCNCCACGAGNANGANCNTGTGGGNGTCGNTCNACTNCNC TTAGCNANTGATNNCNACCAAAAAGCTANNGATCGGTTTTNCACACANGACACTTGNTGAATGCTTACTNTTCNNTCNAC TCTNTGGATGCANTCGNNGNCATCGTAGNGAGCAANNCNTTTTTCGGAAATCANNTTGNCNNNNCTNTCNNCACAANTAC NCAANNNGTCCTGANNCGNGAGAGTGGTNANNNNCNANGACATGTGCAANTCCAAGAGNCTAAAGGCCCCANCATACNCT NACCNCCTGANNCGGCCAACCGNTTCTGCGAGTCNGNTCGAGTGAGGGCTCGCNTNAATATGGNNNNNGCCCAGGCGTTT NNNGCNTAGATTTGTGTTNANTTGNACAGACAGTNNNTNTTCCTNANCANATNNTGAGACANACGCGNCCNGTTCGTNNT ACCATTCNAGTGCATGAGCTACCGNGGTNAGCAGNNCAACNCTTNACTTTGNTGAATCTACGTCAATNTCTTGCNTGGTG TTANCTAATNTTCCCGTNANNCTCTTTCTGGACNAAATNCGTAAACTTAGCTTCGAGCANCCCATGNNCGTATANTTNCT CCGTTGAGANNCACAGNNNTGGACNTGTNNNGCCGGGANCATCGGCANNCTTGCGTGATAGAGNTANCNCGGGACCGNCT AGGGTTNCTATTNCACATNGCGNATNGGTCTCCCAGTATCNGATATTTTTNANNGTGNCNCTNNGGGNTCCCCATATANN ANTTGCTCNACTNNNGACGTCTCNGCCCNNGANNAANCGNGTGANGAAAATNANACCNTNGNTCGCGGNANTACGNGCCA GATCCCGAGACTCNCTANNGCCCACCATNCANTGAGGTNAGNCGCNGGCAAAANCTGNGTGGATTGCTCNTGGNCGAGTN TNCGANAATNGGCNCCGTCAGTACGGAGCAAAANTACTTANCTCGANNNGTATCATTAAATTNNANGGCGGNTANAAATA TGNTCAGNACTGCCCTGNGANCTCTNNTNTNNGANTTTTCGTATCTCCCTACGANGNGAAGCCTAGAGAANATCTNTATT ATANTGTAAAANGCGNTNTCNAANTCTNTNATTTATGGGCCTTGTCGNCGNCGAGGCTNTGAAATATATANTGAGAANCT CAGGNGGANNAGACANNATAACNANNGNTCAGAGGACNCCNANTGAGANNAGGCCGGCGNCNCGTNGTCTTTTATCNGNT NCGATTAGGAGNTTTATCANCNTNGGCNNNGGGGCNTTNTGGANATGCCAGTGGGGTANCACCCNAANTCNTGCTTCACG CTCTANGTAATGAAAANAANNAGGGNTCNNCGGTTCCNGAGACGNANCNTCCNTNNGAACNNTCCCNNTGCGAGAGGACG CCTCCGTGNNTTTCAAACNTCATGGAGATTTATGNTCGNGTNATATTGNCTCTAATGATTTAGGGTGCGAGNGNNNGANA CTAACGANNATNCGTGTNCNGGCGAGTNGCCCNCACACTTGNNCTTCATNACGNNGATTNCTAATCCGGNGNCTANAAGT CGNNCNAGNGTCAGTANNTNCGGTAGCCCTGAAAGGGNTTCGATACTTANGANCATTCAGAATCTCNANCATACTCAGCA CNAANAAANCGATNCCTNCANCGGGCNTTNACNGTNGTGTTNANCNNACTCCNATGNNGCNCGTCGTATCGGCTTATGNC TCTNGTTGNGCANCNGNGTANTTTCGCCCCCANTNATATNCCNGGAGNGCTNTGTGTTGNANCGGGNCNNCNANGCNNCN ATNNNGNACGACGCNTGAAGNANNANACTGNTCATCATCACCCNCTANACNAGTAANGGNGATGTANTTTCGACAAGATN TCGANTAGNGCCAGAGNCGTNTGCNNGTCTGAGAGATGTTNTGTGCNANNATAGCGGGANNACGCNGATTCNAANGNGTC NTATCNANNAACTNCANCCCNCANNTCTGCAANNNTGCGGTCATCGGAGTNATCANNCGNNAGCTANGNACANACGGTTT TNTNAANCTATACACGGCNGNTTCTACANNAGTCGTGGTTTCANTATCTGGTCTGGCTAAAAANNCGNCAGCACTGTGNC ACNTAGACCCNACGGTTNCNATGAGAANGTCCCNACAGCCCAGNNGCANAACCTTCTCCNCTCGGAAAACNTNGCNCNAC NATGCNGNTNCNGNNGNNTTTTGCCTTACTGTNCGNTGGGGCNCGCCTNTANCGTNTNTACNCNANTAAGGACAGAAAGN CNGTTNNNNGATGCCNNGTNCNACCNGANGGCCCTTNTGCCCGANATNNCCACATGTCNNGGGTNTGCGNGNATGTNGGT ATAGTACGACGTGCGCNANNTNNCCGGTGCCGGNCGTNCNCTCCTGTGTNAGATGGCNTNCTGGNCNNTATCNNGCANCC GNCAGNNNNCGANTAGNTNTCTNAAAGNGTCNNGAGNAANNCGCCGTACAACGCTCAGANCNCGTCNNCANATTCGAGCG AGCTGAGAANNTANAGCTACGCCCTACGNGTGTACGNCNGAGNANGTTANCACCGCTATNCNCNTCAGNNCNGTGNCNTT NCGCGNTATATGATTGNTAAGTCCNAATATNTGTNCCNTNNATGCTNTCANTCNNGGACCTNNAGGCATCAAAANANATG TTTGCGATTAGNCTANTTAANNANCATATNNGTTAACTCTGTNCATNGTCTGCTNNACGCTTTGCTAGCACNTTGTANNG GGCNGNTCGGTGTGGNGNTTNAATTNGANCTNNANNTTTTCTCTATTTACAGTCCGGANANCTNNNCATGTATGCGAGAG GANAACAACCNTCTTATTGGTGCGNAACCCNGATGNNAGCNTGGGANTCTTCCAAGNGNAAAAGAACGGATAAGANGTTT CCGNTTNCTNCCCTCAANGGCACTNTCCNTCANGNGATTNGNACTNACCTANTGCTNTANNCTCTGGNAANCCNNCTCGC GAGGNGGGCNGTATANTACNNGAGACTTAGGGNTACGTGGGTCTGAGNTTTCNTCTAGATCTTACTCCNTGCTGACGCGA TAACANGTNATGNCTGAGACTTCAGTNNCGANTAAATAAGCGCCTTGTAGGNGNGACANNGAACNTNTTNANCAAACCAA GGCTCGTCNTCTCACNNGGAGGATGNGGTTCTNACCGNGCATCNTTNTATGNNCAGANTANTGNNANTGANCACCAAANT AACTCANGCTTTNTTCGTCNGTCATTGNTCACNGAAGNGCCGCGATCATGACCTNGGCNGAGNAACTGGCNTACNATTCT TACACGCGTGAANANNAANACNCCCATACAANNCTNANNNATNNCNACCGNAGAACTCGCTNGCTNAGNNNGTGGGTCGA NCTCAAAGANCATCCATACNNTAGNNTTCTANCAGGAGCCGTNNGTTNTACGNCTATGGCACAACGCNATNCANGANCAT AGNGACGGCTTGNTTCAGNNGACANGGNAGNTNGGATACNNTACCTNNNACNTTTCNCCNCTATGCTTCANACTTACTGC TCTCTGCGAACTCNATNGGAGGNTATCATNNCCGGNNCGACAGTANGGATANACCCTTANTATNAAGTGANCGGAAAGNA TGCNATGGGTTGCATAAGNNGACCANTNGTCNATGCTTCTTTCNTTANTCCANCTNNNANTTNTAATAGAANNNTCGGCT CAGTGNTGCCGCNNCNAGTGTNTACGCNNAAACNGNANANTCACCGTGNTCNNAGATAATCTAAGTGTACTNAAGNTGGG CGAGNCNCTGATTTATNNAANGNGTGTCATCNACTAGGGTAGCGTTTNTCAANCANAGAACCTACNCTTTTGAAATCGNA CCGNGGGGTANCTCTNGCGANTTCCTNNATNTCNGCAGGGGGAATNATNTTNNACCNTGAGCTGTNATTGCTNCTCGNCT GCNAGTCCNAGTACGTNGGTCTANGGNTNANGCTCGNCGNCGTNTCATTAATATCNTATGGNCTCTNAATGTCGNCTNAC TCGNTGGGTCAAGCTNCTAANTACTAGCCACGCNGGCTANGTTGTAANANNANCCAANACNANANNNCNGTCGNTGTAGN CNCTACAGGNNGGTANAGGTCCNTTTNACGNCATAATCGTGTGNAGCAGGANTGCATCGGTNTNATTGNNCTNCCTNTGA CGATGGNNAGTCCNCGACTCNTCGAAAGGTGNCGGTGTTAGTAGATACTTGAAANNNNCTGNCGATTATTNCAGNTTCCN AGACATCNNCCANNGANGAGTTNGNAACNCGAGTTATAATANTNNGACANCANAAGTATTNCAGGACCNTGTTCGNACGC CCAGTGCAGTGNCGGCCAAATTNNNTGNTAACNCATTTCAANTCCCCATCNCGNTTCCGCTNACAGCTCTGACNGNAGNG NGGGNNTAGCNNNTNCNAACACTGATGCGCCGGGGGCCTTCNNNTNNTTCCAAGNNTCTGANCCNNANTTAATTNNNNAT ATANANAAAAANGTNTANTNTGNGTGGATNNTNANCACGAGGGTACGAGTNGNNTTGCNCANCGCANGTGCANTNTTATC CNTAGNCNNTTTNTACGTCGAGTTNAAAGTGGAGATCCCCGATGCCCCTCTGAGCANGNGTNNNNGTNNCTTGAGGNNAT AANATATNGNCCTTTTATTTTNCGATCACTCTGCCGGTNTAAANGACTACCCAAACCTTNTNCAANNAGTCNAATGNCCN GGGGTCCAAGCAGCCNGNGANANNCATCANGNAAGATNGAACCATGNTNTGCTNGTNNTGCAAGTGAAAGGGGGAGTNNN CCNACAGGTGCNATCCATCAGACTGTCGGGTCGGTNNNTAAANCANCGNGCATGNNCAAAANANATATGTAGTNGAAAGN AGNGNTAGNGAGNNTCCNCTATTCTNTCAANCTGCTAAANANAGTNTCTACNTNCGGCTCTGNGCTGNNGTGCNGTTTGN NCTTNCGTATANAGTGACGCCCACGNGTTNNGNCTANANACCNTAGTGNATNCNAACTGGNNCGTTNNTTTCAACNTGNC GTGNGTGTGCATCGATAANCGTCAGTNATNATNGTGACGTTGGGGCNTCNNAGACNAGAAATNACANNTACTTGATNGGG CNCGTNTATGGNTGGCGCGNGTTTNNTTCNATGNCNCAGGNGNGCTCNTACTGTGTGGGCGGNGNGNTANTGNNTTAGCN NTNANTNAAGTTTGGACTTGAAAGNTGATTTNCCAGGGNNCCNCNAGGGANTGCTNGGATCTAATTATNAGTCANTAACG NNCNTCNAANAGTNTGNCNTTAGTTACCGTGAGACGCCNNANCTTANCGCTTATNNGCATGGTCGTANNGGNNGANTTCG GAGGNAGGGATGCGAGCCNGTNTGANTGACCGCCAGNNAACCGGNCACNTNNCTNTAANACCGATGTCGGNCGGCTTAGT TGGTTNTNNGGTCCATAANGANTAAGTNATGGANCAAGTCNTNGCGTGGCCCNNTNTTGCAACTGACGCTNTNNNTCCGG GCGACAGGCANACNCNGTNCTNTATCNNCCCCANGNNCANGACAACNCTGCNGAGAAGTNCTGGNACGCNNAGNCCGNTT GGCCCNTCGGCNGATCGGATCCTNGTTTNTTGCAGANNNNGNAGATTNCANNCCACTGACGCGTTNCNCTCTGCTGCGTT TAGGTATANACGTGCAGNNAGGANAAACCTTCNTACANGGAGATGNNCNACCGTNAAGNTNNGGNNTNNAGATGGGATCN ATCCNTCNACNGAACCCANATGTCCGNTCNCCCAGACANNGTTGTGGTCTNAGACACTACTAGNGCTTTCCTAATGNTAT CTCCGNCCANAAGGTNATNGAGNAGTTGNNGACTTNCCAACGGGGAGGGNGAGANNAAAGCATGATCANACCCGGACGTC CCTTANACAGATGNCCCNTNNGTNACNGCNGCGNAGGGNTNANCNAGGGTNTGATGGCGNCCATCTACAANCGGTTNTAC AACCTNCGAAGGANTTGTACTGCTCNNNGCGTNTGGCGCAGTNATNTCACTATCCANTTTGTGATGNNNNCATGCNTACG TANCGACNTNNCAACATATNCGGNAGTATTNCGACGGCNNNANNCCATAGCACTTACNNGGGCNCAGNANCGGGATGTNG CTCTNGTNNCGTTGTTGNGTGTNAAGATTNCGNGNGGNGCCGGCTNCCAGTCCCANCTCNTTTNNATCANGNCCTGAACN ANTCCTNTGNCCTCGCCANTTTGGGGCACANAATNGCCNNAGGCCTGGNACNAATGATNGCANNCGANTNCNGAAACTTN ACNCTGANAATACGGANCCCGACAACNCCACTCANNNNGTCAGAGNTTTCGAGNGGGTGAGTCACCACGTCANANCNTGC CCTAANTGNAACTNTGCTGNTGAAGNAGGAGTAGGNGTNTGTGCGCCNTCNACATNTTCATACGGAGCCNATCANGNGAC ACGNTTACGTCACNTACNTANAGGNANANGAGCCTNGCCTGNNTTACAGCATAAAGGAGCTTGNATAGCNACAATNGCNG NTCNAANCTTTTCTCNNCCNTGNATCAGGNGATNNNGCCAGNANCNTGNCGTCNCGCCGCCATNGGATAAAGGTGNNNCN TNTGTACCANAGCCGTGNCAGNACCCNAGGNAANCGGCTNCGCAGGNNGTGAACGCCCGGNATATGGGCACGANCCTCGN CACAAANCNGNCGATATGNGCCAANNAGTGCCNAGNTTANTNANTTNNANCGTAGAGGTGNGGTGNCCTGTTATNGTAGA GCNCTTNTGAGGCCGGGGNCGTGCCGACAGTCTGNNTNTCCANNCAAGAGGNTTTCANGTCGCAGCAGGCATNGTNTCTN AANTGAGCCATANGTANTGAACANATCTTATAGGTGCCTNGAGTCGTNGAGNGTTTCGCGNNCCCNNANGCANGAGNNNA NANNNGNTCAGTAGCNGNGACANATTACANGTTCANTGNTNNGNCATAGCTTAANACCTTNTNNGANGGACAAGGNGCTG CTCNNATNCCTNNGNCNCACAACCAGCCCNAANNTNCAAAATAGANGTNATTATGAGNGNANCNTCTACACTCCTACTGG TAATAACANCTCTCANGTCNGGGGCCNNTCAGGTTCCAANATGNTTTGGCANACNANTAGCGTGNCNGGNACCCAGTNCC NGNTAGTGGATGTGCGCTGGTNCTCTAAGAAGANNGAGNTCCNTGCTTAAGGNTCGANCCNCCNTTNGACTGAAATGNGT TTNCTANCGGATNCAGGCTNTACANTTGTAGCGCAGNTAATCAGCACAGAANNAGNTGGCCNANCATGTGAGANCTANCN CTAGTTCGTGTGCCATNNCNAANNCGCATTCGGGCCACGTTAGNGACNGTGTNNGNCNTANAATATATNNTAAGTNTGCG TTNAGNAGTGTTAACGCGCTACGNTANTGGCAGNGAGTTNGGANTAGGNNCGTANANGCTTTGCTAGCAGGCGTGGTTCA TNGCCTNTTCGNNNNANTTCGAGNANCAATGTATNACNATCCAGNANNCAATGGNTTGNCACCATNTTGCGCCCGNCCAC NGCAANGTGNAGCATGGNAACTACACGGCATTCTGTNGAGATTTTNNTGTCATGCNCCGAATTCAAGNATTAATANAATT NAAAGCCCAGNGGNGCAATGGGTCGAGCTNCCCCGGACTCNCTATTANAACTTGNAGNAACANNANGCGNGNCNTGTGTN TTNTCNCCGNCAGGCNTGACTGTCTACNNNGGCTANNGNCATACNNTGAGACGCNTATNNGNCNNTANACCCNTAGTNNN TANTCGATATAAATAGCCTTGCTGTNCNCATNCGACTNNCNAGANTNCGGANCGACTANTCNAAAGAATCTATACAGCAG GNNATCAACCNATGANTTTANTNCNNGATAAATANGNAGTAGCACANGGAGANCTTGCCGCNANNNAGCAGTNGNCTNCT GNNACCNTNGGTANCTNAANGCCCNNAGGAGTCCTGAAACTACTTNATCGANNCGNNACATGNACCGCTATCAGCCCNAC ACANGGANGCGNAACTGNATNACNTGNTCACGACTTCNANGGGNAANNNNNNACGNAGNGTCTNACTTNACGTCNATGCG ACNATNAGAGGGNCANTNNCGTNNTNNNANTNTTGGANGAGCCNNAGCCGTTGTACCTAGTNNCTANTGNAGCGATTGGG TNCNGTGNGTCACATAGTTNTATAATTTNGTNAGATCTCAGTCCNCCCTNTCAAAGAAAACNGAGGATTANCCAANACNN AGNGGTNCNCTNGNCTTNGTCCTNNGNNAGTGGTTATAGATTTNATTNCACNTGTNAGGCAGNTCACNCCNTNGCAAGNN AGGCCCNANCGGANATGGNTGGCTNNCTATNGNTACATAGANATGAGANNGAATTCNGTTNACGCNGGANTNCNTAGTCN TNCGTACTTTGNCTTCNGTNGTTNNGAANNTCNGTNNCTCGAGNGGGCGGACANCAAAACTNAGNAGAGGNTAAACNCGC ANGCTNANCGTTAGGAGCGCANTNCGTACTANTAGNCGTTGGTNCANTCGNCNNGNCGCGTANACCACGTTNGTGTCCAN TNGNATGGTGATNCTAGTNGATNTGTGCGCGCTTCTACAAGTATNATAGGGAGNTCACTAANTNAANNCNGATACNCATC AANAAGCTTNNAATTNTCNGTACGNGGCTTACGTNTCCNTAATCAAGAGGCAGGTNAGCGAGNGNACTAGAATACTCCCA ANNGGNTNGANCNTNNNGAATNTTTCCGTGNACGGAGCCNANNAGGAACGGNCNCTNCGANGNAAGAGGNTGGAGCCGGT ANNNNNNNGTNNGTGCNCATGAACNGTAACAGCTTCCNNTGTCTTCANNANTAGANTGGCNAGNNTNAAGCTCGGGNTGT TTTTCGNCGNATCCNTCNGNTTNANCGNCNGCCAGAANGCATCATCGTCGTGCNAGCANAATATTCNTNNGCANTTNNCG GGNNCCCACAGTGCTTGGGANTNTNAATTAACANGNTNNCTNGCTTTCNATNAGGTACCNNGNTTANGCGAGTGANCGTA GNGTAGTCAGTTNNGNCTTCGAGTGTTTANAANATAGNNGTGAGATCATGNTGNCGGNCGANAGCCAATGNTGCATGCTA AAGGNGTNCTANNTGNCACGNTGTCCTCCTGNGANNCNNCGNGGAGCNNGAATNGANNATCCCNCNANACANCCCCGGGA CGCTCCNATCANNANGCAANNACTNGTCAGTNAGCTAGGNGGATGANAGCAATCTCCCAGTGCGGGTACAGGAAGNTCAG TATTANGCCNGGGNNNGCCTNGNGCATAAACTGNAGCTCNCGNNNTGCATNNANCNGCNCCTAAGTCNNTNAACNCCAAT CGAGACCGGANNGCCACNTANTACGGCNATGTTGANGGGGCTNCTTNGNANNNCGNCGNTAGATGGCATNNTTNAAGAGC TCCCANNGTCCCAGANACGACNCCNTGNNGNCGGTATNNCGGCGNGNGCCNGANCGTNGTAACGTTTTGACCCCGTGGNA CCAACTNGAGANNGACNTCCCCTNCATNGCNNCTGTTCTCGTNCNTTCTAGTTNTTNTTNCNGACAGAGTNTTTNAAANC ANTTTNNAGCTTTTACGATGCAGAGNAGATTNATGTCAANNGTTNANAACNGANGACGAGNGGCTTGNAAACAANNTAAC ANCGGCTGANTGNTATTGGGGTACCCTATTCNTGCGGAAGTCGNTTCCNAGGGACCATCGAGGAGNATTCANNAACNGNT TGTGAGANCACATTNTACATCNCAGTGCNGATGCCNCTATTAAACGTACNCGTTNATNNCACACGNTTCGTCCGTNNAAG TGNNAGTNNGGTAAGTCGANNGGNAAGCTCAGTGGAGNGAGTTNCGAANGAGCGTNNGAGCACCNCACCCNCNGNNTTAT GTNGNNGNNAATNCNGCNGGTNCGGCTTTTCGNCCGAGGCGNCCGGAAGNCCGNGCNTAACTTANCTCTCTAATNATGNN TTTGGCNCGNNAGCGTGGCGAGNGCCGTATNTGATCCCANGCAGGTNNAAACAATTTCTAAGNTATCNCTTNANTCGNCC GNGTNCAACCGCGCTAAGNTCNNTGCCTGNGNNGTCGATCACGGCCNCTTNATTATTNCGCGNNNCGNCTAATGCCCCAA NGTTGGAGNGNTAATGTATTAAGCGGGATNCACGAGTNGTTGTNAACGCGANNANANGGCNGAGNGCNNACNCGAANNCG CNCGNNNCNGTTNACTNGACNGCAGCAGATACCCNTCATTGNANNAGAGCNNTATGTNNNACNNANGAATTACNTTCNCT NNGATTAAGNGGGAANGATGCTAGNGGAAANTGATTTATGAGNCGGACACTNNNACTTTTNGTANCCATCTGCGGANGNT GGGTCNNTANTNTAATACNAANCCCTATCANNAACNCANNTNNACTCCGGNANNTACGNGATCCCNNTANCNGTTGTNCG ATACCGTGNCAGCGACAAACNNACNNTCNTGTAAGTNAACAACATANTNGNNNCGTAAANGNCGGACACAAGTGGGTTAA ANACATGTGATACNNNCGNGNNGCAGTGACGTCGTTGANGNCGCACTNNTATGCNATGNAAATGAAANGNANGTAAGCGA CAGCCNTCCNANATANTTTTTTNTATNGCGGATGACTCCGTGATCGCANTATNNGGNNCAAACGATCCGTTGCAGNTAGT NTAGCACNCTTCANAATCTAAGCTATANTACTANCACTGTCTCATGGTNGGGTGNTATCGGTCAGANAGTGACACTNTGA NGNNTNCATCCGTGGCGNANTTCNACNGTCNTGTTGCCAGAGAGCGACNGTNCTGCGTCACANCTAGNCGACNNNGAATT AGNCAGTNCACACTCNTNGCTCTATTNCNATNCNTTGCGCGANNCCATAATACNACAGATGNGNTCCATCTATCGNNATT GCNNCGATTATGNTGTCGNAGATAGAAGCGNNGAGTAGCTCCGNATNGAACAACCTAGNTACTNAGANTANNGTNTGTCT NGGCCACANTTNCAAATCTGGAGNTANAATCTCTTNTNGCATCNANCGGNNCTGNCATATCGAGGANCACNGGCTTTGNT ATATTTGCTGCNGAATAGNTTGTTNGNANGNGNNAACTCNCANAACGTGGAGGGTGNGGTNTGATACTTTAGANNTACCC GGAGANCCTCANNATCAACNNGNCNGNTGNTAGAAGGTAGGANGGCAGCCAANTGAGATNNGTANCNGTANATNCGNAAA TNAGNNTGTGATTTCANTNACAGCTTAGNCNTGNGCTNTCAGGCAACGGNGNNAGANANNACNTGNCCGAGAACNGNATG TCNATANGGAANATNGGTTCTCTTCCNCAGTCGCGNGCTGCGACGGTCATGANGAAAAGCAAACTGTCNANTTGAGAAAG CTACCACNGACTCGATTTGNCGTTGAACCATGNCCGNGCAAGTTNTTTCNGTNCTACGATGACNGACCCTTCAAACNNTT CAGTTNNTNTGAATGCNCGAGGCGNAAGNGTGGGTTGGTACNANNNTNGAAAAACCGAGNGAANTCCATGCACCAAANNG GTCCANATNCNGCAAGACCNTNNGATTGAAANAGNTTTNAGNNGGNCGNCANNANNCTNAANTGNGCTTAGACGNGAATT GGTNGTAACATGGGANTTANCTGTCTTACGNTNAGGCACACTNTNNNTAGTGCAGGNNNCNNAAGACNCNTCCACGGNGN TTTTNATCCNNNTCAATGNAATNACNNCGNTTCNCGCNNNGACNTTACAGTCCGCATNNNNTTGACCANCCTNCGGNNTT NTCGGNGTNATCGGGGNNGACGGGGNAGCCCGACGCAGACNANCGACNCGNTNTTCNTNCCATANNTNCNNCANNTCCGC TATCGNNCTANTTNCGNNAATTGTANTTGNCNAGGGCCATGCNGTACCTTCGTNTNNNGTGGCTNGANAGAACGCNGCCT AACNCANCCAGANANATGCCNGGAATATTAGGGGNGCAGTCGCTTTNGACGNGTTTGACTGNACAATNTGCAACGCCACC NCTCGGCTCTGANTCTATANGACTNCGCTCATCTGCCGTGCCTTCAANCAGTCTACCGCGNAATATGCCNGNNGACGANC AANGCTCNACGNTTCCNGNCNGNNAGCCGANCNCGGTGACTCAAAANCGCNNCCNAGAATGNGGAATCTTCCTCTTGCTA ATCCCNGAGCTANNNACNCANNTGCCGCTTNGGGNNAATATAGCNAGCACNATTAGNCACNAANTNNGTTGTCTTACGNC NNGATTANATTCGANGATACCAATATACCTGTANACNTNGGTGTAAGNGCCGACGGACAGACNCNATTATNTGTNTCGNN NGATCAATCNCTTTTCCTGCTCCAGNTTAATNGNCTATCNNCGGTTNTTCTGTGNANCNGTNTANACGCGGTNTACTNNA GTTTNTTCGTCACAGNANCNCCNCCACGTNNGGCNNGGCAATTNCNATCCATGNGTCTATTNCCAGNCANANCNGNCNGC ATCANTAAGNNGNCNTCCNGCCANGGGCCCNGGCTCGNTTATGTATGANTTAACAGNGTNNANCNNNGTCCGANANTAAG TCGTTCNTNNNGNANTANNCGGCGNANGANGGTCATGCGAATNNTNCAAGTCTAAACCNGATANAGCAAGANCNATCAAC AACANCCGGTGNNCGGCNNACGAACANAATGGTGCCCGNTCANGATGNGTNTCAACTCCTGTNGNGTGTCATAAGTTNNT TTCNCNNNTGACCCANNACGNTAAGTCCNNCCTTGCATNAGACTNAGNTTACCANGGGCNGTAGCTTNTNTTGNNCCAGG NGCANGANANCNNTAGGANNCAATTTTCTNCNTNAATTTTTCANGTGCGACNNGCANTNGTGGTNGGCTAGTTATCAGTN ANTTCTCATTGNNGCGCATNCCNGNTNGGTAANTAGNNNCGTGCGTNTAGTGATGAACTTNNACTCGGGNANACTACNNG GNANTGTCANGGAGCAAAAGNTNGNNNGCCAGCNCGTTTNTTATNAAAGCTCNTNCAATNACATCATTTCACTCATNAAG NNTATATTCGNATCNNAGAGTACNNGCAGAAGGATCTTTGAGCNGTACNANNCGTGACCCCNGTCCGNGCCNNGCTTACG CCNGGATNGCGTTTAATCCTTGACGGCGCCGCCACNNGGCAAACNCTTGGTACTTATTTATCATGNTTCTNCNGNNGTCC CANTGGNGCGTCNNNNCAGNCCGTAACATAATNCCCAAGCAATNGTATANTCCGTCGTTNGGCNAGCCAGTNGCTGNATT CCNGGNGACACCCACACTGGCTGTGAANGTCAGGAATTNCAATGTCAGGCCGNTTGNCTNNTGGCNTTCCGGCANCGCCT ANTNCGNGTCAGCNCTCNTAANTTCCATATCNATTGAAGATNGATANTNNTAACCGAACACTGGCTCGGGNNGGNTGANC GGTATACCAATAANNGACGGNGACTANGGAAGTTTCCNGNNGTAGNNTCTNCCTACCTNGTGNTNGANGANCNGCNACNA TAACTCCAAAANCGGCAGTTNAGCTGANNNTANNCCNTNGCCCCCCAGNGGGTAGNNNTGCAGCGCCGCGNCACCNACAT ATCCNCCNNCCTNGTACAATNNNNCNCCGTCCCANTGCNGCCGNGNACAACTTNGACCTAANGATGGAGGGATGNCNATT NCANTNCCCGGNCTNTNATCAGGNNGGNNAAGTATNGNCGNNTNCTTATGTGGTTNCGCAGNTTAGTNATGCCGGNAAGN GNTAGTAANNNNCCTCNGTCNTGGCCAACATTCGGTTANTCTGAGTNTGCTTNANTNGTGCTNCANNACGTTACNTGGAN TGGACCAGNTTCGAAAAGNTACNNNTCACNCTGNAGNTAACTGATCGNCCCCACCCANTAACCAAGTTGCTTCCTGTGAG TCTGACTGACNNNCCGNTACANATTNATGAGGNTGGTCGANCCGCNNNNATTGCTAGTAAGGATTGGTGANAGAGTGGCG CTANAGGGGCCNNCTGGGTANCANGNGNTCGGTNNCCTGCTTNTATTNACCTTATAAAATGAATAACNGNTGANCTANCN GTATCGTNCGNTTTNATTANCTNCTGCGCTNGTATNCTANGNAGNANCGCNTGNGCGGACNNNNNNACNNTTAAATNCTN GNNGGACAGGTACNGANATTTCNTNNGGNAATTCTNCCCATTACCGGACNACCGACGNGNAGTCNNATANGAACTNAGAA TCCNTCTGNGCTCCNNGTCACCGNACCGGCNTTGCGCAAGNTANAANAGNATANAGCCNTANNNNNCATACCCGNTNNGA NANTNNCTANTAGTTNTGGTTAACCACNNTCCNTANGNGCCAGGAATNATAANGNGCATGTCACNCAGCNACAAGAANGG TTNGTTGCNATNNGTTGTGCCTATNNNANATGAGCTCGCGGAGCAGGCCATTGAANNGATGTTNTCCTCAATNNTCCCGC ANCAACNGCAGTAAACATAGGCANGAAGGGCTANTCCCAGANGNAGAANNCATCAATAGCAATTNCANTCCNAGNCGCGN CGGNNGATTCTTATTANANAAAATNTGNNTGCAAGATTGTACNCCTTGCGCTNGTCCATTNACGGNACGNNTGACTNTAN AGCNCGNNGNCAGCCGNTGGTTACACTCCGAAAAGACGGTNNNATCAGCNGANATCGCNATGAAAGACCGGCNANANATC GTTAGTCNAACGCGCTGGTGNCNAGAANNGAAAAAGTAAGTGAAGGGNNNGCATTCCCGACANAACAATCNAGTCGTNGA NAANAGTNGAAGGGTAATCNGTCCNTNNCGNCTCCATCCAGNGTNTTNNCTGAAGANTCTTNANCANATCCGCGCCTTGA CAGGNTTAANTTGANGAANGCGNTNTTCTGNAGATANCNATGTTNATGGCNGGCATAGAACTCGGTCTCTTAANNCAGCG CGCTGTNATCTGAGANTCCCGATCTGTNGGGTTATCNGNGNNNGCTCTTAGNGAGTTGCNACTATGATAGTCGGCNTNTA NTCATGNCNAGTNAAGTGTGTGNAGTGNAGGACCGNACTCCGTGTNNTTCTTNCANTTGTNAGNCGCAGCCCNNNACNNG CTAGNNGCGTTANGGATGGTGGGTTGTNTGGTTGNCCNNGGNGNANNTTTGCNCAATGNCATNTNNTNAANNCAANCCAG NGGTTTCACACGTATANNNCCCACCTTGGNNNTNTNTGCNAACACANTGTGAGAATGTNTNNGGTGNAGTTGGCTGTACA CCNCTCACTGCTCANACTTNGNNNCNAAGCCNATACTNGTNCAGCNATNTANCTGTNACTCNTNGGTAGGNGANGTAGCN GTTACTGCCGGNTTGACTGCGGTTGTCGGNACGTCCCAAAGGGGGCNCAGGCNNTGACGGCCGATGGTCNGGCGNGNANA TTTCAGTGANNCNNTCACAGGCCGCCANNTAGCTTTGNCGTCCANCNATGGGTCCGNCANTAGTANGTTGTGCCGNTGTG TANCGTNTCNNANNCCTTTNGGTGGAAANCACGTGGTNNGNNCNNNCTANAACAGACCCGCNTCANTAACCAGNCANNCG ATCNGNNAGCCANCCNTCANANNANCATTCNTNCNNTAANGCCCANGCGNTNNGNCCGCNCNANAGAAANNTACCGCGAA GAGNANNGGCNTCTTAANGCNGNAANCAGTNTTAAACTNNNCANCGANTNCAGCTTTGTTGNCTNGTACTAGGCNNCTGG AANTTNTGNNTNGNATCTGTTGTCAATNCATGGNNGCNATNGGTNTTNANNTCGACATTTCTATCANTACTTNGGGGTCG NACTNGNACAAACCGTAGACCTGCCTCTNNAATAGGGCGNGGNANCTGNTNTGCCACTNCGCCAATGCNCCNGGANTACG ACTATCCCNGTGNTAGACAGTTNACAGGATNNTCCCGNAGGTANGANTCCTGGGCCTNCNNTCGATTCCATTANAGNGTA TGNTTANACCCNACTTCGTNGGCTTTTNCCTCTCTGAANCGNNGGNGGCCACGTCCGAGGANCGNTCTNNGCCNNNCGAG CACNCCTNANACNNGTAATGANCTGTATTAANAACCCTGGACGGTNNGCAGANNTTTTNTGNGGNGGATTGCTCCCGANC NCNNCAATTTCGGCTNTGGGNGAGGCTACACGCATTCNACAACNATNNNGNNANCCGCGAACATCAGCCCCTAAATNCTC AGTCGGAAGTCTGNGTGTACCCGCTTNCNTCNGCATANATNGNCCCNNNNAGTGNNNGTGCCCCTTATCGNAGTANGNTA CAGANCCAACGGTTNTCCTANNNTGNGGANCNNCGTAANNNCCCACAACGCCNTCTGCGGCNNTTGAGNANTTGAAANAN ACGAAGGGANNTGCTNTGCCGNGCACCAGNCATNAAACGNTACGCAGGCGCTGAGGNGGAGTAGANGAGGCCATACTCNG NTTNCAGCCCCATNGNGCTTCNNNTCTGCNNAANCTNATATCCTNNNCTGCGATCGTGGCGNNCNANAGGAACNCCCNTG GAGCNCGGNNCAAAATTNTANATCNTGTGACGGNTNAGACTCTCTGNNGANNNTTNCTATCCCNAGTCTGNCATNCGNNA AAGNNATTGTGACNAGNNGTANTGTNGCAATANCTCTCNNCNGAGGNNNGNNGTATNCCTTNAAGTGGAACGCTATTGGC NCNCAGGNNTAGAAAAACCGCGTTATANNGTTGGATATNGCACTTCTGACCCCGACTNNAGGNTATANANTCGCAGNGCG CTGNTNNNNNNAANNNTCCNATNNCTNANNANAGAGGTCTGCGNAGGCTACTGTCNCNTCTTGCATTNGGGGAANGATGA CGNTTTTGTTCTNCGCTTAGNTNCNCNTGNANTGGNTTACNNNAGGNCAGTNTATACCNAAACGAANTNCGCNGCGGAGT GNAATGCGATCGNTTATGTCANGNGAGCCATANCNCGAGTANTTCATNNTAGNNNNANACGGANCTNAAGAATGTAAAGC NNANNCTGTCGTCNNNCNTTACGAAGCANTNNTTCCGATGCGGNGGCGTGGAANACATTTNTGNTCGANTNAGTTGNTCT GNCNTCTATGAACCNCGGCTCNNCAANNGATGGAAANACNATTCTTATTNNCGAAGACGGTTCCTCANGGAGCNAANNAT CNNTTATCNAAGNNAGATNTCTAACGNTCGTCCATNANAGGNCNNTTATTTTCAAGGNNCCNNGCACNGAGACCNACGGN ATGNAGTGAAGTCGACGACGCCTGANAACTAACCNGACTTCAGCATTTNNGNGGATANCGANNAANACTTTCAANNCACA CACCCGTGANAGACCATCCACCTTNCNNATATAGNCGGCNCNGCANGANTCCNGACCANCAGNGGANGCTAGNCGCGGNT ANTGACTGCTCATTAGAATNGATTNGCTTTGNGACCCTCAGTTGTCGGANAATANNAGCNACTGCGANTGGGTGTTACAG NCTANTCTCCGGAAATCACTNCANCGCTCNATAGAGGTAGAATTTAGACAGNTNGAGTANCANCGAAGTTANATCCAAAN TTTNGNNACCNTTANNCCCANCGCGAGGGGNAAANACGCGACCNNNTTNGGNTCGCGANCTGACGNGTCAGTGGNACCGA CNATTTCATTNNCNGTTGAAATNGTTNTTNGGNAGNTANGTNNNAGCGNCANCGCCNCTTAATTCCCNAGNGNNCCAGGC TNCCNNCCGNNGCGGAGNTCNNTTAAATGGNNTGNCTGGNAGCGCACGNCAGTGTATCCATAGNGTTCNNGTNNTNTNCA NCCGCAACGNNATANGACTGCGNGGNGCCCGGCACTGATGTANACAAGATNGNAATCCTANNAGGATACAGAANTCGACA ATNNNANCNTCCCNAGANNATCTAAGAGCTCNCGCGCGGNCGANACNTGAGCNNNNTNNGTCTAATAGCTGAGGNNTNGC ANTCANAGTNACTACNCCTCAAATCGCCTTTAANACACCANCCTCAGGTANCGNNATGNTCTCGGNGTTGTNGATGCNCC GCGNGAGGCTNAAGGCCAACCTGTGNAANACGGCTGAAAGNGAGNGTGAGCNAACTGNGTNACGACTGNANGAANNCTNC TGGACGNCGNATTAACTGGCTTGCCTTNTTGNTTAGNGGCTCGTNNNGCNNGNTTCNNGNNGGGCCATTACTAGGGNNGC TTACTATNNGGNGCANTNCGAGTGNNANCTGAGAACACGNAGGTTGCCNCCCACGNNCGCTNNTACNNAGANCANTGAAN NCATATTNCATNGANTCGCGANTTTACGNGGCTGCTNNNTTAGANACATAGACAATCTNNNGGNGNATTTNGAANTCAGN NTAGATTTCGCCCAGGCTGNGCNGATAACNCGTCGGNGANCTTAGGACTGNCAGAGCGNCGTNNTNCNGTCACGNNGCAN GTGANGTTGCNTNCTGCNTNCTCTGNTTGNAGGATGGTTAATCNNNACNCNGNNCGATGNNGNAGTGCGNANGNCTGTAA GCGTNTTANGTNCNNCNGNCATGATGTNTCATCGTCAGAGGNACGACCTTCGATGTAATNNAGTCATNNGGCGTNGGACT AGGGGCTTATNCCCTGTTANTTNCNNNATTCAGCNNTNGNANNNGTCGGACCTANNTATTGCGAGTAATACTGGNNGCAT TCGTNTAANACGTTGNCTGCTTTCNAATNCGACTTTGNNCTNCGNNAACTNGNGTGTAAATTNACTAAGGTACNAACTAC GCGNNTAATTAACTNGTNACTGNCTTGCGGACNNNGTTGGANCGNTNCTTNACTATCGTGTAATCGCNTANTGATNNCCN CAGTGCCANTCNTGCNCNTAATTAACCGGCATNNCCNTNTCGGATNGATGCCAACNGTGAACNTNGGTCNACTGNTTTCN CNAGCGNNATNGTNGTCANNTCNATNANCCAGNGANNCTNNTAGTGCNCCNNNTNGNTAGNNAGTACTACAGNACTGNAN NCCANTNGGNANNATNTTANCAGTCTAAATGNGGATCCCATCTNCACTTCTCACNNTTNNTGTCATACTACAAATANGGN CTCACCTNTNATNCCGTATCNCCNGACCATNGTTANCACGTGGGTNCCCNGATCNNTTNTNTTATGAGGAACNACTGAAT AAAAANCAAGGTNNATGACNNNANATGGCAATCNAGCCNCGCGNCCNTGTCNCTGTCAATANNTGAGGANAGAGNTTANN CANAGCCTATTCNNAAGTNCTATTTGATAANACGAATNANNNNANTAGNNCCCCTNTGANTGTCGNAGANACAAAGGNAC ATGACGAAGACNAGNACGGTNGGGAANNATATTNAATTGNTGGGCCACCAGTCNACGTCCGANTCATNANTAGGGTGGTT TCCATAAGGGCNCGCANTNAAGCACCCNATCTNCTCCGAGNATGCAACCCAATATCCTGGGNANGGNAATNGACGTNGGC CNTANTNAGNNATGNTNCNANCNNTNNAGACAATNCATTGAGGNCCCCNGNCGGGTCNNTACTAGNGCAAGGNNTCNTTA ANGNGANNCAATTGNCNNGATNAAAGCACGCNCCTGGGGNGGCACATNNGATCCGTTGCCGTGTGCTTTATGTCCATNCT NATNTGNCCTNTAGCGTGANNTTNGATAATCTNGCNATAGCTNCACNGNTNNNAAGNCAGGNCCNTTAGNGANTCNTGNA ANAANAAACTANTGGTGCGCTAGATCGGCTNNTCTNCCNTTNNCTNNTNCGTGTNATANTGGGCCCNGAGTGNNAGGGCA AGTGNAGCGNCTGACCTGGCANGAGNGNAGCTCGCCGNNCGCNAATNGTNCGAGCNCGACNNCGTANCNNNGGAGGNNNT GAGTGNATTCNTTNNATGGCCGAAGATNNCGCCACCGGCCGCGGCCCCANATANACGTNACCGATTTTGGTNCNNCGTAA GTNTGCNAGTAGGGAATTANAAAAAGCTNTCAANNCTTTAGATAGAAANNGTCACATCCNNANTTGCCACGCAGGGCGCG NTANTGTCGTGGCCANNTCNGNAGCCATGGNTACCACTNANTNANTTTCNATGCGCGNTGCNCGCNATNGGATCCAAAAG AGGTAGATCNGCGTNGAGGTTNCGNGNCGATAGNGAANNTGGTGGTCCCCNCGANTNNCATGTNCNAANNCTGANTANAC NTTATTGNTNNNNANGAGCCCTNCCGCNAACGNNTAANNNCGCTATTCNTGGGCACTCTAGTCNTTGCNAGTGNCGCTTA TTTGNTANTCAATCAGACTNTCNAAAGGAAATGCACCGTGNNACAGCCAAGNGTGCNCANAAGATCACCNCGTNTGCGAC ATNNNTTGGAATTTGNNTGTAGACTGACANCCTGCTATTTTGTTAGGAAAGGGTATANNNNACACAGTCAAGGTNAANCG NNGCAGGCAAANTGTTNGGNCNNNANCTAAANAATGNCCNGAGGGNTNAAAAAGCGCCCCGCGACGNCTCGTAATNNCNC GGGGGANNNCCGGGATTTATCTACCAAGNNCGGTGTANNCCGNGCGCTCGTACGCGANGNCCNNGACTNGCCTAGCANAN TNCTGTGNTTCNNGTCGAACTNTGCNTNTGANAATNTTNTAGACGANATCGGCGCCNTCCNCNCNACACGAATTGTATCN CTGGTCGTCTTGTGTNCTATCGAATTAGTCGCTACNCGGCGAANATAAGNGCNNCATNGCNATCCGAATGTTANTCCCNG AAGNTGNGGCAACNTCGCCNTACATCGNTNGCNNTNNTGTCTNTGACATACACNAGGNCGTCGGATNACTTCAGNATNNA NAAGANTNATNGGGTAGNNAANAGTGCCGNNTTTNCNNNTCTAGTNGACGCGCCGTNNGGNACGAGGGCANAGTGTTCCA ACNTTGATNNCCGNTATCGANTAGAGTCNGNTACAANGNTNAGATGNTTCCGTTNNNACCGGTNNCCCACAATCTTATTA TCNNCATNGGTCNAGTTACTGCTTGNAGTAGGANGTTCGTTTGNCNNAAAGGCCNTNAATGAAATNTTNCAGNCNNAGGC GCTCNATNGNNNNTNTNGNGNGTGGCNNNNGCAGGGCCANGAGTGCCCAAAATGCNCCNCAAGCGGCATGACGATNTTTT CNTAGTTTCCNCNTGATATTAAGCACTCCTCTAANTNAGNNACGNGNAACANGCCCNCAGACGAGTTTNGANGCGNTTTN NGAGACGTGGTNCTTAATNTTTACGTGGNNTGGCTGTGAGNTGTCTCTTTGGCATCGTANACTATTNAGACAANATCTTG NCACANACNTCNTCGGANNGNCCAAGTNTNNAATTATTNTTGGACACGNGNTTCCNTAGACNCGCNNGGTCTATCGGGTT TGTTCTTACTCGCTNGTAGTTCGTCGAGCGTNGANTATNGGCATCTTAAGCGANGAATCTCNNAATNGGNCCGTGGTGNA GACNGGTGNATGATNNTACANTNANANCNGGNNAACAGAGCAACTANCCNGACANANACACCCTTNNGTCANACTGNNCA TGCNNGTTGATCGCNAGNCNTNATAACTNCCTACAGGGTCGCGAGGGACTGGGCNGGTGACGTAAATNCGGANAATNTGC NTCNCATCNTGNTAGAAACNGTCTTGANCTATGGGTCGCACGCANCANAANACCCAGGGTCTTAACNNTTGTNATTANCT AAGCANGNCNACTCGTATANTGAAGTCGCTCNGCCGNCAAANNNCNAAGNGGCTGCNANTNGAGTNANCNNCGCNNNTNG CCNNGATGAATTTAATGNNGNACACCNGNNGTCACGAACNGGTTACNCGCGAGTGNGNCATNCAGTTTGACACNTTNCCA CGCNANTGATNTGNNATTNGTTGNAGNGTCATAGTNGTCANCCGNGCCCGATGGNTNGNNTACTGGCATGTTNTTGNCTN TAATACCNNCTGNGNNTAGCATAAGCTAGNNCCGTNNTAAGCGAGCTTCGCGTTGGGAGGTACGCCNCGNANCCNNNAAN NNTCNNTAACTGNAGTGAAAGAGGAAANTGTNCAGCGTTGNTGGNNACTANNNAAGCCNCTANGCNGCANNATNGGAGTN GNGGGNCCGGNAANGTGNNGNNAAACCCTCNTNNNTCNNCAANNNTTCGNCNTCTAAAGGNNGNCATTATGTGGNCTNNG ANNAGCTNTANTTGCGTCTTTGNNCGGAAGATGCTNNNCGTNATCNNTNNGGTACGGGCGNACCANGANTGGNNNTGNNA CNAGAGCNAACGTGTNCTGGTNANTATAAGGNCGNAGGGGGAANANCCNAAATANGCCGATTNTAANGCNNGNNTTGTCC CGCGANTCCAATGCNCCAAAGTNANNGNCNCGNGCNTTNNAGACTNNTNGTATTCTCNCACANGATGTTTNTTNCCTGNN TTNCGTNTTCGTGTANNCCTANNGNNTNCAAAATACACNNTAGCTCGTGTTTGNCCTCNAGNTCAGGTGGGTACTNACGC TGTCGTGNGNGACGNCTNGTAGCATTTAGGTGNTCCCGCACCATTGTGNAANTNCNNNTNAAAGCCTTTNANCNAACTGC CAAGACNGTGGAACGNGNCTCNCGGCCNGACAAATNCCCATACCAANCCAAANNAGNNTTCACTNNNGTTTGTAGCATCA CNGTTACTNAGTTANANTNTAAAGAGAGNGNTTACGGCNCNGNCCGANCGATGGAGCGAGTCANCNTANNNGTGCTTNTT GCGTACCNTTCANTGNNGNNGCNNCGTTNGGTNCCNANCACNCNNAGCATTNNGANNTGAAGACNCACNCNGNGATNCTT CCCCNGACTAGNGGCNGNCNNGGNCNAAGCGNGCAGCAAGGCCGACNTAGCCTTTGAGTGNANTACNNNNCGATAGCGTT CNNGNCCNGNGAGGTNATNGCTTGGATNAGACCTATNGCNTCTCCNGATTCATCNTAGTATANNTNAGTATGGCGNCNAC TTTNNTATGANNACCNNNNGACTTTANCCTNATCCNNCCNCNGCGCANNTCGANTCNCCAANTCTGGNTNTNAATGNNNN AGTCACCAGGAGNNCNTCGATTCNCCCGNATGGTNNANCACTTGTAATATGCTNNTGCTTNATTNTCNACATGCNTANAC TGGTCGNGGTGNANTCAGNGGNNCTGNNTCTACNCTTAANCCCNTNANTTNTTTTCATTGAACNCNACNAGGCCCGGAAG CNATNNGGCCNTTNATCGTTGNAATGCANGTANGAGCGGAATCACCNNTGANAGTGGCTCNCGACACNTGNCNGTTTNNT NTTTAGCNTAGTGTAANTGTNAACNANTGNAGTCCCANCCAACNNTTTGNCNAGAGATNTTNNCGTANACGGAANAAGGC GCCACNGNTGTCCNGAGANNCACATGNCNATANGTTATNAGGNTTCGTAGTCNNTGAAACCTACAANTAAGGGGATANTC ACANGGNGNATATGCAACTTTTCGTAATTTNTTCNGGATTTNNNCCAAANTTAAGANGAGNTGTCCACCNTTANNTCNAC ACAGGNCNAGTCACCGNGTNTNTNCGNGGCTCCNANNNAGNCCCNNTNNNTAAGNNNNAACCGTCNGCTNNTACNGNCAT CNGGTACTCTGNGCGAACTGNTATANCAAACGNACTNCNTGANCCTACGGCGATCCTCGCGTAANCTAGACGGTNNNCAA TGCGAGCATCGGACGNTGCACNTAATNTANNNGCTGGGNAAGNNTGANTCNNACTTNNACGAATNGCCNCGNNANCATCT NACANNTANNTCGGCNGTTGACTCGGCTGCTNCCCTTCAACCCTACTACGCACGTTTAGTATCGANTANAGAGGGTTCCC CCTNACTTCCGNCGTATCCTANGCNCTNNGGCATTNTAGTATNGNGAAATCCAGCCACCNNCTGCATGCTATATCTNTNG NNGTACGNGGNGATNTGNNCCNGANGTCTNCTCGAGTACNNTTCGCNNNACGGGCTATCCTAGTGTGCAATGCGGTNNCT CACAGACNCNTCCGAACAANGAANNGACNGAGNNGTGCTTNNTCTNAATTGGTGGNGAGCCAANNGCCCAANGTTNAGAG ACGNGTNNAANNGCCCCGTGCGCTTTTACTCNGGATGTCGNGANCNNNCNGGCGGTAAGGNGCNCATNCGAANCCANANT GAGCGNNGGTGNAANCTTCCCCGAGNANCNCTCNGTCTGNNCGGGATCCNNTGNGCNCAGGAGGANTGGTTANNGNAGNG TCTNGCTCGCACCCNANCTTGAGACNTNGNTCANNNNGGGTATNANNTGNCATAANATTACNCCGTGTCNNGATTTCGCN TGAATNGCAAATTTGANGNTAAACCNNCGCTTTGGNAANTTATCNGGANNCATCGAGAAGNANATCAGTGNGTCNANNTN TNNCCCNACTCAGGNTTTGTGNTNNNTGGCNGGATCGCTTTTCTTANGACNNGACANNGNGTNNTGAGTCCTNCGTNNCN AGCCCTCGCAACNATCTCACNTCGCTAACNCCACGAATACNCNAGATNANTGCNTNCNCNAACCTTTCNTATNTGNCTNG TACCGGNGTANTTTGGTANCNTGTGTGNGTAANNANTAGATTANAGTGNAAGGTGNNTTTGAGNGNGCCTNNAANATGGC AANTNCAAACCGCCNTCGCANGCGANCANGGGACNNACTTTTGNANTCGGGACCACCCAGNGCGGCGGTGCGNTNAATNC NTCNCGGGACNAACGGNGNGAAANTANTCNTTATNGGGNATNATNCCGGTCNCAAACNCGTGCTAGACCACAGTNACCNC TGGCTTGGANACGTCANAGGNGTACNACNNNGAGGTCCNCAAACGNCAGACTGCCGTNCCANNCNNNNCTAATTAACTNC TTGANTGTACNCNCCGCGATNGCGTCACCANCTNGCATTGTANTGGTANTTNTCTAANNNATCNNTTATNTNCGCGGGAA ATCNGCGCAAGTGACGNANTCCATCTNANAGCATTTTTCNCTCAANNATNTNATTNNCGNNTCCAGCCAGTTNNGCNCCN GNGGANNGGGCAATGTAATCCTGGNNNAAGGGTTNATNTGNAGTNGGGTCNTNGAGCGTCGAATTANAACCTGTGGTCNC TCNNNCANTGCCGATACNNCNNNCTCNTTTGANTTNCTCNCTCATTGCTCCCANGGGTGAGCTNGNTCCGTNGCTCGTAA GANTGCTGTNCCGANTNNGCNCANAATAAANAACANTACTAGTTGANANTTTCGCTNTCCTTNGNNANGACCTTGCACGA CNANTTACCGAAAGGGATTAGNAAGNTANNGNATCACANCNGNACTTGTAGTGNNNTGGCNATNTCTCNCNATGNNANGA TANCCCGAAGGANACNCTAAATAATGNCANACGGNCCGNTTATGANGCGCATCCCNACTCGNGGCNGNAGCNTNNTCCTN ANANCNTNNTACNAAGCNGATAAGAGNGGNAGCCTCNGTCANATATTTCTCNGGTGNCTGTAGNTNTCNAACGAANTAAC CNCCTGTTTCNNACTTGNGGATGCNCACTCGCAATCCTTNGGNNTGANCGGCGCCGTCCCGGTGANCGTAAGAGACTTAN ANCTGTACTCGTNNNNCCNGCGTTACAATCCNNNCCGCTGGGTNNCCGGCGGCNTCCGACTAGAGATTGGCNNCAGAGCG CCNACGACGTNACCTACAGAANTNCCNGNANCNCANAANGAGANNACCATGCNTNTCGGTGNGNNNCNACTTCAGNATTN GGACTTACNANACNTAAGTCTAACTCATNGTTCANNTAAGTCAACAATTAGCCAGGCNNAGACNANTAGATAGTCGTNAG TGCGNTGCGGGTNCNAGNNATGAGTCNGTAACNGNANGTNNACCCGCTAGNGACANGANNNNGTCCNTGGTNCGCGGNCC TCNATTGTTCAAGCANNNTTNGATCNTACACNNCTNCTCNGNTNNAACTTNTTCACACAAGTCANCATAGCNGAGACACC GTATTCCCGGATAANNACTATTGGAGTNAAAGTNGCTGAAATAAGNGCAGGGGANNNNNCGCGCGCNGCGCCAGNNGGNG NGTNNACNTNAATGGCCCTCGCANGCAANCNNTTTTCAANAACNTCTAGCANNGGACCTNGGCGACGGTNGCGNTNCNAA NATTNGCTTGNGGGATGGANGNAGCCGGNNCAAGNTAAAANCCTNCTCGANCTTGNNTAATTCGATCNTANAGCCGACGC NNNTCCCCGNNCNGCAGATGGGGCNGTCCGCANTTGTGACCNNTCGCAGCGANCTNCATGNANTNGGTNCNGAGGATANT GNGAGGGTCACCNATCNTGACGGANNTGGCCNANNCCTTCGNNTGAGTAACNNNCGANGGGATNTTGNCTTNAGNCNTCA NGTGGCATGNTNCAGTGCTGGGAAACNCTNCANNTNAGGANTTCTNGCCCCTGACANCGGGNGNAGCGGCGGTATNANCC CNAGGANCTGCGNTAAACANTCNNCNTTNTANNCGNNNGCCCGACTTAAANGACTANCCGGGTNAGNTAAGCATNGACAA GGAANTAACNTGGNCNNNCCNNGANCGATGTACTNATCNNTTCNTNNGGGGANTACCAGATTTCNACNGAGTACCGNNAA CCNGNCGGTGANTCAGCNGAGCCCNGATCGTATTGGTCAGAACCGNTGTANCTNCCGANNTCANGANATNTNTNCNACGN NCNANCAAGCNNTTTNTTCTGTNNTCTNTGTANCCAAGANGTNAAACCCATACNNNCCGCNTTGGTTNCCTAGTCGAAGN ANAAATGTNTCACTCGNACTATATCNTGTNGTAGNTATACCNCCCCGCCNATNAGGNNCCAAGTNANNGCGGNACTNCNG GGTTCNTCANTGGTGGTNTTGGAGTGNATTTATAAGNNNGTNANNNANCNCGCCGGATNACNAGAGCANNTNCCCTATNA NANACGCCGNATNTCGAACAAAGAAACCGAGCGGCTCNNNCGCTGCCCNANNTAAATCNNNGACGCCAAAGCNATNCGAC TGATNCNTGCAGNANACTAGNNTGAATANAGCAGNAGTTTNNNGTGCTAGCTGCANTCGNTNGANTGCCTANNNCNACGN ANCNTGTANAGCGTANCAAANACGCGGTNACAGATANCAAGANAATGTCNNCCCNANATAATGNAATTCCCGCTCNCANN AATAAGAAGNTGNGGGCGNTTACNAGCTAGGTNACGTTGACTNGNAAGGCATNCCNTNGACNGNCTTNGGTCATCNGTNN NNCCTGNGGCACCCNACNGGTNCTNTCCNGTACTTACTGGTTCCTTCGGGCACNGCCNACANCATATGAAANGCTCATNN CCGNTGCACNNAGGGGCTNCTNNNACCANTNCNAGCGCGTNCGGTNNAATNCGGCCNCCTGTNCCGNGAGTGTGTNATCC CGNCTTCTGGNNTAATANTTGGGNGTANACTNNAATGATGCAAATATGGCCNTAGCCTNCCGCGGGGGTCCACANCCTNC TGNGTATGNCGGCACGTCCTTGCNCTTTGCACGACCATTANGCAGTACANAGAACTGCTGNGNNCACCATTNACGCCCCG TNTNCCATNNTATTNGATTGATCANAGGAATCAATGCGCTACTNNNNACNNTTCAGCCGTCACAGGGCGCCCCGATGAAA NCCTTACNGGTATATCNCNGAAAACTACTCGANNCGCGTNANTCCGGNATCCNTNGAANCCATTGNANNAGTNGAGCNNG TAGGCNCGGTNANTCCTTGTGCGTACTGAGACGTAATNGTACATGGCNNACGACTTTANGTNCTGAAGNNNATATGANTC NNNCGTNCTCAAAAGCNAATNCTCNTATAAGCCGNNCNCGANGCTANNCNAAANAGGAGGGGGCGGTAGTAAGCGNGTGT GAGGAACAAGNTTNGGNGGATNNANTTCGTNGCCNNATCGGTGNNCATTAAACGCCNNNNCNTCCGTGTTNANNATCNNC GGATATTATCGNCAGGCTCCTNGACCAGNTTATCCCAGNGGAGCNATATNAATGAGNGAGTTNGTCCGAAACCTATTGTT GATTACACGNACAGNGCCNCNACCAGATCGTATATTATNCGCNGATAGNCAAGTTCGGCGCNNAGNTGCNNGTAGACNAN CNNACGATCAGANCNNGGNNNNNCCNAAATCNCCNANCNCATGNCTAATCANCATACNANCGCNNNCANACGTTAGAANG GCTATANGACTGNTNCCAACCCTCNNNCACGGNTGATCTGTNCAANNTGAACAGTNGNTGCTNNACGCCACCCANGAATN GCTNCTAAANTANCAGCTNCGNANTGGTGCNCNNNCGTAAACATGNGCNATTATNCANTNTANTTNTGTAGCNGTNACTT NTTGCTTTTATNAGCTAGTAGNNGNCCGGGTNGTGAGGGANNGCACCACANGNCTACNNGATCNGTANNGCGNTATCGTT NGTNTNTNNGTCCCANCNGGACCNCNNGNNGAAGNGTCNCAGCTAGNGATGCAACAGCTGTGCGGTGCTNCATGATNGTC AGGTAANNNATCATTAATTNAAGNNNGTGGTGGCANNAAGCNCGAGTCAGATGTCCGGNTCCNAGTNTNNTCTCNNNACA NGCACATTNNNAAGACGGGATNGNNGATCACNANCAANNGCTANGCCANCTGNAGTGGATATNNNNCNCATNNTNTGCTG GTGCNGNTAGCTTCNGCTCANANGNANGANCTTTAATANNAGGTNTTAGGCCCACTTGCGTGAGANGCACNNTNNCACCA GAGNANGTNAGGGAAGNANNCCAATTATNTAGGNNTGACNGTTNACGTCAGGTNGCATNTGCNTNTTTCTNAAGCTNNNC CATTTCGGNGNTAANCTAAGTCTTNCATCNNGCTATTNNNCNTCATNCCCACGCNAAAGCGCTTGNNACTATTTGANTTN NTCCGCCCAGTCACCGTCTACGATCTAGATTTCTTNNGCCATNTTTNNTCACGTTTACNAGTGTAGAACCNNAAGNNGGT NNANCNNGGNACCNAATCTCGNCCANACACCNGCCNAGGGGGCAGGCNNTCNCGNTCNGNAGTAGACAANNTATCCTTTG CTATAATCTGATGAANAANNATGCCCGTCACAGANANTTGGTANGCACTTGTNNGTGNCCCATCGCTCNNCTGTAATGGN NTNNCTNNATACGGGNTGACTATGGGCGTNAGCCACATCACAGGCTGAAACTGGCCAGGCATNANGATGGATNACATGAT GGACNANCGGGGATAGNNTNGNGNGGTTGTGTGGGAGTCAGATAGAGCTCGGAANNGCGACATANGNTATGTGNNCNNCN GAAGGCTTGNCGANNTACCTTNNTCTANNACGATTANGCACGCNGTTAATNGGNGCTACTGCGNACCCGCNATCCNNGCN TCANGGATGGGTNCAGNTAGATGAGGTAATGTGNCGATCNTTGNTCNCNGGNNCAGTCGATCTAGNGCAAATGGTCNTGG ACNGNTNCCNNNNGACGANTNCGCTCTCGCGTAATGGTCACATCCGNNAGCGNTGAGATANGGNGACTANTTCCCGCTCN ANGACGTTNCNCNTNGTCCTATTACANTATGCCATNAANNAACGTNGGCNNGCGGGCCNCTGTAANCNNTNTTCAATAAG TGGGNGGGANTACGANCTCTNNANTNNNACGTNCGNACCCCCGGTCGCTAGNANTTGGGTTCGAACAGNCAGNTTAACCN TACNCCGNCTNNCATTTTGAANNAGGNGCTGNAAGANAATNCANCCNCNTCGGGTNCNNTCCTCAAAGTTNAAGNNANNA CCCCATCANATTNNTGATCATGATAAGATCTNAGNTGCANTAAGACAAGNNGGATNGGCTGANTAGGGAGAGTTAAACGT NGTGNAATTGAGATNACACTCANACACTAAACCTNTGANCCCNNNAGTTGAAACANNCACTGNNGGGACNGCGAAGNCNA CATGNGAGANTGGTNNCGTANCACAAAGTNCTTTTTCCTANNAANNNTCACGNGTCNCCGNCTGTNACCGACGNGCTANN ANNTGCTGNCCCGNACTCTTNACAGCGAGTATCGCGGCGTNNCGNNTNNNANAATGTNATNGTNCTTTCTCANAGATACC GTGTCANGCNAAANCNNTNNATAGGGGTGGANAAATNATTTAGAATACTTGCAACCAACCTTTNCACCNNTGNTGNTGAT ANACCAAGCTGCTGCNNCANGANTNNTNCNCGCANCGGCCTCGANAANCANTGCCGTNANCCANTNNCACCTTTCNTTCG NAGGCGTCTTTCGAAAATNGTTGTNCGCCAAAGTNNACAGCACGAAGNANGAGGCTTTAACATCAGCTGCTNCNGGACAG GCTNGGNNTTNCTTNTGTGCGCCTGNACAGTCNNCCCNATNNGNATCGAATNNATGTNCGCTATNAGGTNATGNTATATG TANTGGCTGTTTATTNNGCATGCGANGTNGTGGATANCCTAAGCCANAGGAAGCCNCATTGATCNTGAAGACAGAGAATC ATTNCTTGTCNACAATAANCGTCCNCAAGCGANGANGACAACGTCAGTGTGNACCGTNTGNNGGGATNNNNGGCGNATNG NAGACTCACGTNCGATNCTAGACTGANNNAGCGGGCGGAGCCNCCGNCANACNNGAGAAGTGTGTGAAGANAGCGTNGGA ATCGNCATNATNANATCCGNGATANTCGTGCCCCTTGNTNAGAGCNAATNACAANNGNGCCTTGNGANGATCNGGATGCA CNTAATGGGCGNTCNTGCCNACACTCANAGNGCGCGNNGTACGANACGANNATTTCGGNAGAGTGACNAATACAAGCNAC TTGAATNGANCCCACCGGCCGAAAAATCTCCNATNNGNGTGNATGGGCCNNGTNGCNNANNGCCAGNGNGNCATTTATGG NNCGATAGACCCTCTTACNCTANTGTATGCNGNCACGGNANANTGGNTNCACAAGNAACATNTTNATNCTTNNTATTCGN CANGNNACGCGNCGGGGGAGNNTATNGTATAGTNGNTCANCTNTGGGATGTGGCGANCATNAAGCCCTNGNTTCGGNNNG NTATCGATANCAGNNGGNCNATCCCCCNNNCGTTNNCTGGACAAAAATCAAGNACTNNTCGNGNNCTATNGNCTNNTTGA ACCTTTGACCAGACATGCCTGATNCANCGGCGGAAACTCGACGACAGGATGCGTCNAAGCCGNTNACANNNGNCCANGCN CAANANCCTGTCGGNCGGGGGGNGTGAAGCTTTANGNNGNGNCTTGCCCTGNCATTTGTNACGACGNTGGCAACNANNTT TNACNANGGNCGNTCTGNTTAGAGGAAATTCCGTNNAGTNCANNNCNAGTAGTAAGATNNNNGCCGATCGNCCANACACN TACAGGTGGGATGANCANTCCCATATGCTAAGGNANGTNATCCCGANNGAGAAAGTNAAATNTGTNGANACCAAATGGCN GNCCCGAGNCTTGATNATTGAGTTGGNCAGNCCGTCGCNACACCTGNGNNTGGGNGAGCANTTTCTGATCACCTNNAAGN NGGGACATTTGTAGTANACNGTNGAAGATNNCATNCATCCTCTTTCCANCANGGGCANTTGTNNCACNATNGANCGTCTG CTATNGTACTTTGTCCTAGTCNNGGCTAGAGNCCGTCGATAGNNACNCGAGAACAGTTNGGNNNANGGCATATAGAGGAC CCCTGANAGTGTTATNTAGCATNACGCNNCTAATGGGCCGNTGNGCCNAGCATGGGNCTCNACCTCTTGCNCNAANNTAG CCANANCTTTGTTCCGAGNNGACGNTCANGNGNCTCNGGNAGANGNTGNCNTAGCTACTGCAATACCTCGCATAGNGCNA NCGCGGAATCGCAGGTTGCAGCANTTGGNCCCTNTCAACTANNNAGNGTACACCCCTGGCNACGGGGACGGTTNNANATC CCCAGGCAGNNCNACTGNGTGTTGCTNNAACGCAGNTNGCANTNNTAACNGNCTTTGANGAANNTGGTCCGTAAGCTNGN CGAATNAATTGTGNNNGTNNCGACGATNNACNNGATCATCANTTNCACGATCTCTNTGNAACCCCAGAACNNNTGCTCNG GCGGNCTGNGCGGTANNGGAGATNAAGCGACCGAGNATGCNCNANGATNNATANGGATTGNCTCNCTGGCNCCCGATCGG ATNAATNAGTCAATGTAATAACCCNTNGTTCGNNCAGCAANATNAAATGCATCNGCCGCTNNTAAACTGNTNNNTCGCCN GTAGAAAAACTANACATGTTAAGGANTCCTATTTTTTCCNANTNGCTNANCTNGATTNNCGGCGGCGNGTANGNGCATCN GAAANGTTAACAGTGCNTACNNCATACNGATAAAANCGGNTTAGCNTTNGAGCNNCNTCGAAATACCNTCNNCAGGAANC NNCNTCNTGAAAGCCNTNATANGNGGNTTCNNGATNCCNCGCGAATNGNCANANGGTNNCNTCCGACGCTCCCGTTATTT AGTNAANCAGNACCTTNNGATGNGCCTNGGGAGNAATCATCCANNCAAGTAACCTCCTCTAGCNGGGGCTANNAACTTAT GTGTNNCNTGGAANTNCATGCCAGGAACGNAATGCGGTTNCTGTATATNCCTTNNGNNCTNGAATTCGGTNATCNCNNNT TCGACCGCTCGTCTNTTGCTTCNGCTCCGGAAGTCCATCNATTTCTNAAGGANNTCCCGGACTGCNGCGTGNCCTTCGAN TNCTTAAGCCGCNTTGCGNTGNGTTNGNGTNAACNGATTCAGANNAGCTNCTTGNCCNATGGACAATTCGANTNANAGGN CACNNCNTGGCGCGGNCNCGGNGTGGNAAANGTTNAGNACAGTGTTNCGATAGAGCTNGCCCCGGTTNGGCGGNACCNNC AGCGTTCACATGATGANNCNGCTGGAGGNTNTGTNGGNTCNNATATTAATNTAACTTNGTAATCCCCGNGTGGANGTGTG TTCGGTTNCNTNGGNGAGTGGTGATACCGCTNCNAATNACGGNGTGNAGNCACCGTNCCANNTGNACANTACATANGTCG AGCACTTGNNTNCCATNGTCATGACAGGTGTANNNNNATAGGACNCAATCAGGNNTCNCNCNTTGTNAACTGATCGTNNA GTACTAGNGANGTANCNTCNANTAGNNNGTNNGCCATCCTCGTTGCTNNTACANCCGGNAACATNACCACGTCNNGTGCN TGTNTGNATTCCNCGGTNNCGTCACNNATNCTNGNNAANANNGTAATAGCGATTTGAGATAGGNNACTCCGCGCCTANGC CTTGAANNCNNTTNTAAGTCGCGCGCCNTANGNGNCTCCTNGCCGCGTANNNGACGGNCGGTNGNGTCCCGNGGTNNCNN AAAGANAGATGNCCCCCCCGTCNTNCNCCCGNACACAGTCATCNTTNCTTCGNNCGTATATGNTAGNNCTGAGNCNCCGC NGCCCCTGTAGANATCAGCTGANGNGCCTNGTNTTGNTGACCTACNTTCTATANANTGCCGTTATGTNCATNNGCANCAA GAGCACNNGNGCNTCNCGNACANNANCCGANNCTNCNANGTGGAGGNAGGCATAATCNCTGCTAGCAATNAACTGCNCNT CAGANTCTCGANCCCGANNGCAGGAGTCATNCNGAGTGNGCAGCANGTGAAGAAGTGAACNAGTGNGNGTTACAATTCAA CCGANNCCGTGTAAGGNCGNGGCCTNTNGAGCCGAGGNGGGCTCTTTNACCTACCTNGNGAAATNNAGAGGGTCNGTTNT NNCTTNCAAGGCATTTANCNAGAAGGGANGTNNCNNTNCATGTGGTTGCCATANCTTGGNNNTTCTCACNTTNNNNCCTN GCGGGAGAANGGCGCCAGTGAATCAANCCATCNCCTCAACCNACNGGNTNCNGTNCAATTGTCAANCAGAGGGCTCGACC GTGNGTNCGNGAAGNACNCGACTNANGGNGCGGAGTACTACCTGTNCGTNTNNTACACTNCGTGNGCAANNTATNTATCG TAGANGTACNACTCTTNATAGNCCNNNCGTAGTGAGTNTNTGACGNANAGGCTCGGNCAANCNGGNCTAGTTANNTAGNN NTTNCCCTGTGCNGNTANGCNCCNGGNAATGTNTNTCNTNCATTGAGANTNACATAAAAATATNCNTTNGTGNNACCTAN NNCNCTTCTATGACGCCNATNTNCNGTCTNCGGNNCTCNCNNCATTCNGAGNANAACTACTGGNGGNCNCTATTCGGCAT CNNNNACANTAANAACATGCATGGTNNCGGTTNACATAGANTCTCGTTGNATAGGTCCAAGCTACAGACANANTTACGCC CTAGGCTAANTTTCCANTGCCTATCTGTTAGANTNAAACANTTACNNGGAAATNAGNTTTTCGGGCTACCCCTACCGATN ATCTCGCTTCTGTTCNTGCTCGNCAGTTCCCNTTGGAATNCGCACCTNNANCGANTTGCNNNGGACAANGNNCNCACGGN TAGCGGAANCACACTTTATTNTCTATGGNGCCTTNAGANNNNGGNNCGGCACCNTCNTCGAAAGTNGTGCCCAAGAGGAG CANTGTGGGCAGTTNAGANNNCCGGAGTCANGTCACNNANGCTACGANACAGTTGACATCGNTANGNNCCCTCCTNGGCA TNCGATTGNGNTANGTGGTTTCNACCGTNTGNTTNCNTATACTNGCGGGANNCTCNNNCCANCCNGTNNTTGGGCGCAGA NCTTAGGNNGCNATTCNTTNGNNTTNACAGAGNNACCACGTNNACCGCTCGTATATANTACTANTAGGTCNANNCGTTAG ATGTTTCGCAACCGGGGGATNCANANCCTAGGGNANNANGGNCNNTATNTTGGNTNNANNAAANACTCNGNGGNTTATTN CAGCCATNAAANGAACCGGNNCGTCANATNACCGNTNNGACAGTANGTGNCATTNNCGNAANANTANCNNACCAGGTCAN TTTNTNCAANCGANNAGCTCNTTNACGCTGNAGCGNNGTTCGCTTGTCCNNAGNTGGTCNCNANNACANTCGATCCTCAA ANCNNACANNGNCCTCNNTTCNGACGTGTAAAANTNATCGNCNNCNNGCNGTGTCAAGAGNTAATANCNGGTNNAATGNC TGNGNNGNCACTGACTNTATAGNNACCTGGCAANNCCGGTGAGAAACNNACCCANCGACGANNGACTTGNGTTTNGCCAA AACGTNAACCAAGCCNAGTTGNTGTACGTGCTNGTGAAAGGTNCCNNGNCAGCTNAGTNGTACTNNGTTTGACGGNGNAA TTAGCGCNGGTCCGGANANTTCGNGNNTTGGGNGAAGCTGNGGNCTCTNNTCTTATNTCACCCTNNTNNGACATTTNGCC CGCGNCCAGNNGNATNAGGCTTGCNNTCGTCCTNTCTCGNNGATAGNATGTCGATGAGCCTTANGGATANCCACTAGGCC GAATCCGNCAAATCCCTGNAGAGGTGTTCGANCATATGAGCCCTGTGTCTCNCCGNCCTACGAATNNNCCTGTTAATCCG CTNNANGTTGNGGNCGTTCTNCAANAGTGCGGGTNNAAGNGTACNGCCGCCGAACCGGTANNAGGNAGGGAGGNANGAAG GGGGGNGNCGCGGGAAACCACGTTGCANACGNGAAGCANGNAACCNGNNCCCTAGNCCCTCACGNTNGANATAGGGCNAG CGCNCTTNNGCNAGGTGNTTGCGCCNGAAGANTATTATTATNNAGCGTCACGCGTCATTANCACGATACACGGGGTTCAC ATNGTACTTAGACGATATCATTGGGGGATNGNNGCCACNGAGANNCCAGGTNNNCCACAACGTATCANNCCTGGACCAAC TNGCNAGGCCAAAAGGCACGTANCCGNCACCGACNTTNTNGTTGACCAATTNNANNANNCCTGATNGNCTNGTAGCGACG NACTNTTGTAATATANCNCTNNGANCGTGACNCNNTGNCATNTATAANGGCAGNACNGGAACANGANATGAGAAAGCATA CAGAGCGGTCATGCANNANGNGGNGANNNNGNANTCANCNNAANNNTNCCTGATNNAGTGTGTGNNNGNGGNGGNNNTGC TTACAAAATTTGNAGTGCNTANTGCNTTCNCNNCNGNCTNGGCCCCAGTCTNAATTGCCCTCNGTNNGCGANGAACCCGN NAANGAGGATTTTNNGGGATGAACAGAGGNNANTAATGATTCGATCGTGTTCNCTGNGTCGGATGNACTAGATTCNTACT TNCCGTCTGGCTANTNNAACCACGTGGCCGANACCGGTTGANCCCAGCCANATNCACACTCTATAAACNNTATCNNAGGA GATANNANNGTCAANGNATCTCATNNTGCGTGTCTTGTNTCGTGGCNGNTCNCGGNAGTTNTGNAATTAANTGCATGANC GACCTTNCGNTGNNNCGACTGNTATNNNNNGGTGAAGNCNCTGCNCCGGNTNGNTTNNCNGNGTATTAGNNGCCGTCGTG CNANGTGGCGNNNGCTGGGTNATCCTCTNCATCCNCCGNCNNAGNCACNTNGNNNTANNNACCNCAANCACNGNTACAGA TTTCCNNCNTNGAGTAANACGCNGGGGNTNCANNGCCGGTAAAACGAGCCCTAACCTNTAAGNGAAGCTCAGGCGNNTCN ATANTNATNCAATACNGCGACCTNTTTCTTTGCGACTGTNATGCTATANTTGNAAANAAATGCTANGGNCCGNTCNGATG CTCCCNTCCNTGTTGNNCCTGTTGGNCNNATCGATCAAATGCCATNAANNNACCAGNNTAATNANAAAGNGANGACGGNN CCATCNCGTAATCNTNCGGTAANGTNNGCCGCCGCNGGCNTATACCCCCATGANTGGTGNGCNNNAATGGNNNAGCGGGA NATCGCGNNNTAAGTNCGCNGTNGNGCTNACCGCGGACCTNCCCCTTCTTGCCNTACAACANNGAAANGANACNNNTCCN TTGTTGGTTGNTNNGCCNNGACCGTTGNGGTTNNAATAACAGCNNGNNCTAGATCNGCNCTTAATTNCCGNANGTATTNT GAAATTTATNCNNCCCTAACTNTCTGAGNTANCCNNNNGCTAAGTACNGCTANNTNGATTAGTCAGTAAGGCGTGCCAAC NTATTANTNGTCATNTANAGGCGNCGATCCAAGNGNTANTATCGCNTTGTGTNCCNTCACNACCNGACNGNCTNANACNC ATGGANCGCCTCNTCCTATCNAGAATNATNTAATNCCGGANGATNGGCNTNTACNGNGTCGAATCCNTNTAAGTCCNNTN ACCCCACGGATCANCTANACNTANAGAATGANACTTNNTTTTCTTTATTGTTTAATGNATTNGGCANCTGNTTCAGTATA CACGAGGTCCGNNGNACCNCNTCTNGNNTCANGTAGTCGNANTATCCTCTCATTTATTAGTTCCTGTGNAANTTGGNCNN NAATANNANGCTCATATTTTTAGNCGGGAGNAAGNNNCTNGNATNACTGANGGACTGCTACTCACTCNGNAAGGCAGNGT TCGCTACTAGCGNCNCANTTATGCATATTCGTNATAAAAANATTGATNCCCTACTTCGAAANANNTGCCNAAGTCTGATG CAAGNCCCATNAAAGCACTACATTTTTGGTNNATATACCGACGCTAANCAAGCCNGTCTCGNANNNGGANNTNGNGTGGN AGCACNCNGTGTANATGNATNGTANGGNGATCGGANNGACNCCNNCANCCTCTGCTGCCGNGTCAGAGANCNCTANNGTC NGTCCCNTNANAGCNCGTNCGGCGGGGGCCTAANGGTGTCCAACCGTCGGATACCGGTAAACTANACTGTCNNACGNGCG TGNCNTCANTGTCCNCCTNGCNACAANGATCGTCNANAATTTACANNCCNATCGCATTNAGGCGACTTANAGCCGTAGCG NACAAGACCNNAGNTACAGTGACACCGATCCAATGTAGGTCTNCNAATATCGNCGGGGNATCTTGCTCATTNGANNNTTG CNATNGNNCNATACCCTCCCAGGCTTACGCNNTAATTCTNNGCCGCGNANGTAAAAACGTACAATGTTACNAACACGCNC TGCGGCANGGAACNGCGCCNAGNTTTNCNCCCTCAAGNATTNTGACNCNAAGGANTACTCNNTTNTACNGGGCCGTTNAT NNCCCTGCNAATNANCGNATTGAGTCANACCNCNCNNNTCCNGTAANTGACCNGTNCGCCCCACNCCNGCTGNCTGAANA ACANTTATACGTGTGAGCNGNAGATGCGNTANCTACCCGGNTAAGCANNNAATGTGCTCAGNCTTANCNNGTTGTGTTNT NTATTTNACCGTATCCAAGCTNNATTNNNNNCGGGATCACGTTCGATNCAGCTAAANATTTACANAACTCAAATNAAGAT GTGGGGTNCGACATGNAGAAAGGGGNNNCTTAATCCNGTCCTNNGNTCTTNATCCNACGAAACGAGACTATANGCTCTAC CCTTCGCGGAAGNAAAANNACNGCCGTCGATCNTNANGNCTCTGANNNCTTNCACNANTNNCACNNCGTTCGTCTCTNNC GCTNNATCNTTTCANCACTNNCTAAATTNTACACNCCCCGAGGTNANTATCNACCTGCTGGGGGGCGNTTTACNAANTNN GTGNCCNCNCTGTGGCACTAGGGAGNGTTTTCGGANTTCTGAGNAGCTTACTTNTGTGGCATTAGTCAGATGNTNATATG CAANGNNGAGGGGCANTACCTCNTGNAAATGGAGTGCTAACANTNGTGNAGTTAANATATCCCGNAGTGGAGGNCNCTCG CTGCGNGNNTGGNANCGCCGCAATNGTACNTCTCGTTCNTTCAGGAGAGCANCGTGGCTTGATAGCNTAATNCNAGTGAT NCAAANGCTNAGCACTGGGGCGCTCNCAGTGANTGTCACNNANNAGGTTCTACCANNATNATCNNTCACATTAGCCNCCA CAGCATNCTACNNATGAANTTGTGATAAGCATCANNNAGNAANTGGATTANNGNGGTNGNACGATTNNTTNATTCTNNCN GNTTAAGTNGCTTTGGTGCTANGNNCGNAGTCTTATGCANACTATTAACTGAACATAAACCNACTNAGTNTATCAGGAAN CNGGTCGAACCATATNCNTAGCNCGAGGGCNTGTNTNNNATCTGTGNAATCACTGGTNGCTTTANTNNGGTNAANATCTC GATANAGGNAAGNTTGTAGGCAGGAATTGAAAGGATNCTATAGNGANCTGGCTGANNCGAGATTACCGCGGGNCCANATT GANGTCNGGATCNTACANNNNAGCGGCNCCNCNGGTTTACGTGGCAAACNCCTTTNATTTTTTNNNACTTATCCTTTGCC CCCCNNCCNCCTNANCNNAGCCGTCCGGGNCCNNAACGGANGGNATGNATTCGAAATCNANCNANCNTTAGTGAGGCGCC CGATCAGNAGCNTTTNANTAANATGANAANGCGGGATCAAACGGGCTNNNATCCNTNCNAGACGTCGCGTGGAATNGGAN NAGANAGACGCCGTGTTGNGNNNGNNNGCNGNTCANCCCNCATCTGAATATCGNCTAANGTNGNCNNATCTGGGNGTNNN TTCTCNNTCNGTACACNAAANNACANCCGNGTCGCNGGATTGGAGAATTCATTACANGNAAGCACACGGGTGNANTTTGG CCNTTGANGACCNNNTNTGNACCCGTGTNGACGCTCATCTCAAGNNCGGTGCGNNACANNCGCCTGTGTCTNANAANNNC GNTGTNNNATNNNACGNAACCGNGGNNTGGAAGGGATTNGNTNNGNGNTATACTGGATANGAAATANTGCTAGGANGGAA NGNACAATANGGNNNNTCGANAAGNATTGTCATNANTCNNTTGGATNNAGTGAGNANNCNANTAGANATCCAACNGNCGC TCACGCTTGCAGTGTNCANCTATCTTNNTNNTTCTGACTACAAATCCACGGTNCGTTNNTTGGAGAGTGTAGTTTTNATT AANCNNAACCTTGACTCANNTCGCTACGANGNNCTNGACAGACGCNANNNGGNGNGCCTNAGATGCTANAAANNAGCTTG GNTACACCAATCCTCTGACCTTCTTACTNNTTCNTCCCCAAAAACGTTTAGATNCTGCGNNTGAANNTCTTCGNGAATTC TGNCTGACCTCTGCTANANTNAGAATAATNCCGCCTTAAGCAANGACTNACNNGTCCTTNNNTNNTNCCNTACNCGTAGA NANNNACNATTTNCGAANNTCATAAAACACATTTCNCTGGATCTTGCTTAAGTCNAGCNNTTGACGNNNTTGGANNCNTA NCNNTNGAGCGGNGGAGAGACGCAGANCAANANTNCAGNAACTNNGANCACCGCGGAANCGGAANNACTGGTAAACAACA CNGCTCCNCTTANNAATGGTNACCCNCCANGCTTCGNGTCAGTNNANGNCTTCCGTNAATCNCCGCGTTAANTACCGATC NGNTAAAAGCGGGANGGTAGGAGTACNAAGNATCCGATNTCTTNATTNTTCTTNNTTNCNCAGANNANGCACCTNGGANA NGNAGGGNGNCATNTGGTCCTAGCNNTGTNCNNCTCCGAGANGGACTTCCACCCCGCANATATATCNGTTATAGAAGTNN GANGNNTCCGTNGTCGNCGACNNTGGTCTTTNANTNGNGATNGNNGNCAGNACTNTACNCGTCNTAGNTGNCCTGACTNC TTGCTNAGNAACCTNTGGAAACNNANTNTAGTGGCNTNTGNTCCGGAGAGGTTNAGACNTCATANNTNGNNTCTGCATNC CANATTCATGCTNAACCTATAAACGCTNCTTCGATTTTATCCGTAAGTNTGNAGCCCGTCGCTNGCGGNCAATGNNCCAN GCCGTCCCAATTCGTANNCTANCTNANCCACNNCTNGATTTATNGGTNAGGCANGCNGTGAGNNTANCNCTTCTTNTCAG GATAAGGCAAATAGTTAAANNTATATCNGCCCACCCGGCTGGGGCGTCTTTGGTNANAAAAACTAGCCNGTCTNGACTAA GAGGGCNCGCCCTATNTNGATAGTGTCGGCCNTNGANNGNNANCCTTNTACCTAAACCNANTTNAGCGCANGTCTCCAGC TGCNGTGATAGACCGGNATGCGGCACAGCANTACGCNNGCNGAANTANTCCACAGCACTTGCACTTACCGGAACCAAATA AAGNCCGTCACTCNAGNNTANGGCNTNCGTCNNGGAGGCGTTTAGACACGNGCAAATTTCTCACCCNGGTCGNCGATGGG GNNANNANTANNTNGNATGCCCANAGTCNGGTGNCGNAGTCAAANGATNTGCNTAGNGNCGGNGCNNAGTGTGTATNNGG NNNNACGTANGNATATGANNTGNGGTCNAACAANNTCNCNGCCNAATGANNACATTCAGANCAGCNTTTCNTACACGNTA GAANACGNNNTANCTTTCTGCNGCNNGNAGNGNTGGGCGAGTNAATTNNGCNNACCCCCCGAGCGNAAAGTGACNCTTCN NCAGCTANTNGNTNNTCTTCAGTCCATCGCNGNGACTACGTTNANGGCNCGACCCGNTTNTGTGTTCTACCTTGGAGTNT GCNATANTGNTNTTATCGCTCGANAATCCTCNGTATTCATTAGTCACCNCTCAAACNCGCAGNTCGCNTNAGCATTNCNT TNCTNNTNAGTGNNCAATNGNTCTCGCGGCNTTACCCCGNCANGANACNGCCTCTATGAGCTNGGCGACNCNACCNGAGC NCCNTACCNNNCAATAAGCGTANAATTANTGGCCAAACAATCANAATCTCCTGCCNGNNTAACCAANGATCCGGCAAAGC NCTATCATACCCGGACNNGTAATATNGTNATCTTTTNTAGTGGNCGCAGTTNTGNCATAATCGCTGCNNACCANCANGAA NGCGANNGGNGTTGACNGGANANTCCNGCCCNNNNNACATACNGGGTAANCCGANGNCCGCTCAANTAGCGNNTAGTAGA ANGCTNTTATAGGTAGCACNCCCNCGGCTNNNCGNGNAAGNAGTAGGGCNCGGGNNCGCAGGACAANGGANGCCNGNCTN CAGNCGTTGNCNANNTNAGAGNCTGNGTNGNGCCTTATNCAGACCTCCATNCNGTTCGNTTNCTCTGGGNCGGTGANCTC AATTACNNATTNNCCCNTTCANTTAATNTGGTTNCTCNACCTGANNGTNTTCTANGTCCNTATTGACANGNACGGGCGNC GCACNCCNCCCGCAATTTGCTACNTCNGNCCCCACAAGCGCGGGGCCATNTGAGTTTCAGGNGCGTGTTGAGGNAANCAT AAGANCTNNAGGGNANCGCTNCGATGCGGGCCANNCCGNAATGGGAATNCGNCTNTTCANCCTCTATCGGGGTGCNTTNT GGNGACTAAANGCCGNTCAACNCCNGNCACGACCGTGGGCGACTGANTTCNTAAAGCGTNAGNANTCTTAGNGCCCTNTT NGTCATNTGCGACCGAACAGNTGTTGTGTTACCATNATANNGGGANCTTTNNCCNGAANGTCNATNGGCTCTACGGNCTG AANNNANGTGNACATTAAAAGNNATTCTACTCTAGTTGCCNAACTNNAGAANGNGAATCCACTCGAANGTTGAACNCCCG CANTTCCNGNCGACCNNGNAGCNTAACNTAACCCNNCNTCCNNACCNTNGTAATAAGGNNTCAATCACNTNACGGNTCTC TTNTGCNNTTNGCTTANGNCNTNACNCNTCTNCCGATCTNNACTATNCTNTGAGATAATGNAGTGTTTNGAANCCCAAGA TGATNTANTCCGNNACCNGCGGNNTGNNCGCANTGNAATAACNCNNNATCGTNCCGTGACCCNTATCCTANTTTNAGCTC CGTTCTCCCCCTNTCNTACTTCCCNNGTTGGAAATGGAGTATNGNANNCCGANAATGCGATGCNTNNNACGNCTTCGATT TAGATGTTATAAANATTCNNTATCCGNTTNCCTTNNNNNANTNGCAGAACNCGNNAACNGATAGANTGCGANGGGTTTTN AATCAGCTNGANCGTCCNANGTNACTGTTCCCNNACNGGTCNTGNANGAGAGATACNNTNAGACNCNCACANTCAGNCNA AGACANCANGNGGGGNNTGCCNGCTATNCTCCAGGTTAGANCCGNNTGNTACATNTTNGNNANTGNTNGANNTNCTGTTG AAGATGCGCGGCNNTNCCCGATACCAATCCTTNGNNTGNGNANTNCACCAANTGTCGTTGTANAAANACNCNAGTAGCGT ANTAGNNNGNNNGGANCNCACACTAGCGGTAGATTACTAACAGAAAGGANGGTAGNAAATTCGGATTGCANTGAACTGGC ATNNGGCANCTACNNCANTGCCNNATTNNGANACTTTAANTGTGGGGAGACCGTACGCTATTTNTGANTTCCNATNANAC NAATGAANANNCGTTGCCGNTGNNTTANGGTGNGCCNNCTCTAANCCTGNCATCCACTNGAGNTGGANTTGCGGCNAGAC GAATCNTNNTAGACTAAACCTATTNNCCNAAACNNTGNACNCNTNTNNGANAAACTACNGGCTCNTNNNNCACCGCCCTC TCGCGCAACANANAGCCGAGTACAANNAGTCGTGGCANTCGGCNGCTNGTCCAATGNCCACTAGNGTCTCATATGNGTGT NGNNTGTCAACNCGTNCCTTTCNTANATNCCATNNAANCNTAGNGAACTGGNTAANTCNTTGTACAGCCCGTNCAATNCG NANCTNCCCGTTNTGCACNCCAAGTCGNTTANTCGAAGGTNATTNATCANGTNGTNTGTNNNNTGTGGCCAGATGACTGN CTNNNNATATACNAGTACCCCGNNCANNGNCTTNGCAGCNGGCTCTTNTACATTGATGGACATGTAAACNNANNTTTGCT TANTACTGANATGGNANTCTNCCNGCCCNGNTAGATCNAAAGGNCTCGGCTNCATTGGNNNAATAGATGCTCAGGCTCAA CGAACACGTTGNACTACCATNNAANCNGTNNNCTCCATGGNGTNTTNNTCNNCTNAAAGNAGTAGCTNATCGANNGNANC NNTCNCACACTNATACGGNGGNAAGCAANTNATACGTCNNAGTTNGANCANNCCTCGNNANCGGCNNTGGGNGTNNNCTA TNGGNACNNTTACTGANTCATAGNNNATNNTACTAGTTACTTCAATGNGTTNTNACCAGGCGNGTGTCACNNNCTATAAA CNGTACACTATTATCTAAGTATNANNNTNTNGGTNNTCGAACACCNGCNCNGNGNTGNNAGCTTNTTCTACTANTGTGNC GNGCCCANAGGTCGCAGGGAGGAGCANTATNAATACNGATGATTACNTATCAAAGGGNAAANAGCNNTTNGCCGNACAAC NGGAACTACGGCTCTAGNACNCGCGCNANCTACATATNCNNAGTCTCGCTCCGATGNNNGCTNNCCNNCTGGTNATNGCT TACCGCNCNTNATTACGCNTCTTNGGCNATGGACGACTTANGGANTCCTGCTGANNGATTTGATTTGGCCCTCAATCGAT CGCCCGNCATGAGANNNGCTTTCNAGCTCAGNGNGGNNNTGATAAGCACATCATTCGGANTGCCNACAATGGCNNCCNGA GTGCGCNTNGCCCNATNGGTNTTGGGCNATAGNANGACNNGCCTNATNGTCCCTTGNAAATGGTTAGGGNTAACNTGTNG CCATCGAANGAGGCAAATAAAAANGCNTGAAAGGNTNTCCGCTATCTANTGNGAAAGCAGNCTCTGGCCNTCTGAGNANA AACAACATGCGTANGCGTGTTNTGCTNGANTCGNNGTGGNTNNAAATNCCTNCTNCGCAAACNTTNTCCCANTCATAGNC NCAAACGTCTGCGNTNACATNCGTAGGACCGGNTAGGCTTNCANCNNANAGGTTATAANANNGGNTAANCCAGGAGCNCN NTNTGGGATNNNCCNTCCGGNAATTNTGTACCCCNAGCAAGGTACGANCNNGNCGCNAGCTCACGGTGGCTNTGCNATTN AGTGNTTNTANCGCCGNGGCCCGNANGAGGCGAGTCGTGTNAGTCTTTGNCGGAGAGTNNGATNTTTGGGNTGTCGCGAA NNCCTAGAACNTNNGGTATNGTNGACCAATCNCCACATNTNTAGGGGANTGTNAACAAAGGATGCNCCAGCTATGTNNAC TTCTNCCAGAATTGNGGATCGCACGGTNACNTCTCCTTGTTCCNANTGNTTAACGANCCTGNTAGTNGCNNANNAAGNAG TTGNGGNGTAGNCGAAGNANCTCANTNGTTCATGGTTATGTTTAGCAGTGGTGGTANNGTGCGGTGTATAGANNTTCTNG CGCNGNAACCNNCTTCGTGCAAGACANNGGTACACGTCGATTCNNNNCGGGCTNCAAGCNAGNACAACCANCTGTCGTTN NTGCCCGGCAACACGGNGCTGNCNNTCGTATCNAGTACATGNNCCGNTCGNCNATCTATTACNCNNCACCANTTAAGTNG TNGGGTNNTCAGGATNGTNAGNCTNGTTCAATCAATNTNACGTNTTNTTGTCNCCCANCGTNCCAATTNAGTNAGACTTN GAAGGATTGCTNAGGNTGCCNAACTGANAGNNNCGGNNNTCAGGACATGCAGTGNANANACNNGCGACNTNAACTCTGTN TTACNTAGAAATCTCGNTGCNNTTNGTNCNGAAGTGAGGGNGNCCTACGTGTCGTCANNGGTTTTGATACTGNATGAAGA TGACATNCGCGGNGANGATTNTAAGGGGAGGTANACNTACNNTGTCTNCANTAACTTCATCGGTGAGTAAGGANNANCNC NCCGCTTANTTNCTCACNTNCGAGCGCGAAGATNTCCGTNCCTGGCTGTNGCGGACTNTGTTNANTACGGATACCTTNCT GGCANGNNNANCACGGGACGNGGNGAGTCCCTNCNCTCNTTCGCGGACATAANGNGATNGCTGNANNTGNAAAGNTGTCA NAGNGNANNTGCCGGTCTAGCNCNGTTGANCATACCNATAANGNTGTCNNAAAGGGTCCGCGGACCNATCGTTTNTNACC CGANNCATCCCCCANAACTNCCGCAANCNGAGTCAACNTACNNCAAANNANANTATTTTGNAGNCNNTNGACCATGCTCG NATCNGNAAANCTNGCNTCGGGGCANGGATNNGTCCTNCTCNNATNATTNANGGTAACATTATCNNTGTNTTCATNNNCA ATNNCTTNNCNGGNNCNNCNNACAANCCTTNATTCTNGCTTNCGTNCAGTGAAAGCNGTCACANTTNGANTGCTTANCTG TAGGGCGGCTCTNTCGCGNCGAGAAACGNGGGNGNTNGGGNACTTGNNNTCACGGCNGNCGAANTCCNCTNNTCAAGTNG CAATTGTACNGAAANNAGNTGTCNTACNATCTCNNACNTTAANCANTTNCANTNCTNTGCTGCNTTNGCGTNNGCTTNCC TTGTACGGANGTNAATTNTCGGNNAGCTNTGANCTGCATCNTNGAAGNCTNGTNNCCCGNCGTTTTANGCAGAGNGNTCG TGAGAGGGNCGNAGCCCCATNNANGCGGCTNCCAGGGGCTCTGGNNANGCTTTGCNACGNCCCGNGCACTGTANGNCNCT ATGANCTGTTACGNTAANTCGACNTAGCAAGTGTCGNGCCCGTTGNNTTTTCNGTNNCCANCGTNGANNATNCCCNCAAG TAGAAANCTAGGTTGCCTAGANCTTCNTCAACGGNCAAGGGGCATGNCCNATGGTCGNNNGNGCAAGGATGANCGNNNGT TNGTGNANTCTCTTNGCNTNCGGGAGNGTTCTTGCNAATAGCGNGATNCCTTGCGNTTTANAANACGNGCGCTTTTNTNC NNNNCNCACCCGGACANCANTGNAAAGCTCNCCGNCNNATATTNTNCGANTTAGTCGNGATACNAGGGTAAACGACTCNC NNCTACTGATGTNNNCGNCTCGCTGTCCNTCTACGGAAGATANCTNCAANCTNTNNNNNAAATCAAANTNGATANANCCG AGTNGCTGGNGGGNAACCCATCTTTCGGCTCNCCCGTTNACNTNCTTCNAGNCTGNNGNCGGTGNATAGGNGAGGNTGCC GNNTNTTATCTGCAGTNCANNNTANCGAANANGTANCCCAGCTGGCNTNANGGGNCCNGNNAACTNNATGGNNGTATAGN GACNTNCTCCATNCNAATTGCCTNNGCACNATTTCGCNCATCNGNCTCTANTGTCCAGAGTNGGNTNNGTTANGGTAGNT GGNNCGNCCTNATCCNTANTTTNNGCCNAAATTTGAGGTACAGANTTCCTNANGTNTATNTNNTNNGNTTNNNGTTNCNT TGNTNCNGGGGTGTTNAAGTATAGNNATGGGGNCNCGNTTTTTGTATGCCTNGCNNNGNCCTTTCATNNGCTCGGCCTGA AGGTAGTCTAATNACTAACNCGNGAGGNATATCCAAAGTAATGACCNCGCNNATGCAGACTNTTNGNCGTAAGCNNANCC GTCTCCCTCTATTTTGACTTGTNTNACCANNNTGCTCTCTCGGTTNTGATGGNCCNNATATCNTGNNNGCGAGGAGGGTN GNTNANCTCTCNNGCNTATGCGTCCNTNCNNCGNATCNTAGNTAGNCTAGNANCTNCGAGTCATTGCTGGTAANNAATCC ACNCCAANCACTNAGTGTNACCANGNCCTAAGTTNNAGGNNGGCATCNCNNGCGNTCCNCNCCGNACGTTTTCGNGTTGT GANNGTAGNGGNGTCNCGAGAANGCNACGTTTNAGTCTAGGGTTNCTNTCTAGNAGNAACTTCGANNNCCACNCGCANCN ANTGCCGTACGGCNANNCTNGTGNTGCCGCTAGTNTGGGNTACAGANACCACCTTTNNTNGNGCNTGCNCGCCNNGCCTN ACGGAGCGANGCGATCGGCGAANCAGGAAGNACCGNNAGTGANCATNCNGANTNATCNTGCCAGTGCCTCCAGNCGAATG GNTCCANATANTANANAGCGAGACTGTTNTAANGGACTCCGNAGCNACCCGATGGTTNNGGACCGNNNNTGATGNANGGG GTTNNCANTTTGGCTGNCTGANTCTNNCCCCCCGGNCTCCTCNANANAATGCGATTTNGACNGGNACGNANGGCGGGANA TCTGATTANTGATGTANTTNNNAACCCNCAGNCCTCCTCAAGGCGCCNTNNCGTNNGNATCCTCNTNNAAGGACCGCNNA TGTGTGTCGGANAANGGTAGGCTCCACAATCATACGCANTCTCGNTANTGNCAAGNANGCCGNCGCCNCCCANCATNNGA ACAATAGNTTNGAACCTANGAACCGATGNATATACACTGATGCAACAATTNNTGTAGNTGGANCTGAGTCGGNTTGTAGG ANTCGCTGANNTGGTTCNTANNCAGGANTNACTNCGCGACCGCCTGGGTNNTATTACCNNATCGNNGGANNCATNTCGGN TCTATAAGTNCGNNCACGAGGAGCGAGGTNCATTGNNCGTNCTNTNNCANTTANNNCGTTCGGGAGCACANCGGCGNGTA NACNATGNNNCAGACGCTTACTACGANTCGACNCANCAAAACGGTANCGNTGTCTGGNNGCTNCCNGTTCGNNNNGNGNT GCNCNCTTGNNATGNCNNCTCTATCGANNTGGTTACGACCGTAATTACGAGNCAANAGCTATANNCTGTGAGCCTNTCAT CNGGTACGACNTGGTGACCTAGCNGCNNNNCAAGTCTCTANAGATCGGGNNCGAGCGTCCGGGCNNTGCNGCACCTATAT CCGGNTCNNGCATACTCTNTGNCNGCGATCATTGGTNACNTNGTACNGGTACAGTGTTGTNCCNGGNCNCTNTCGCCAGN CGTCANGGNTACCCTACNCTCNNNNCAGTATTGCATGNTGGATCANTNTCGCGCGGGNNNTGGGGTGTCGGCCNNGGNAG NCATTTNNTATGNACCNTTCATANAGGTNCTCCTGGCTCANGGANNCNACNNAGTTAGTNAACNCNTCTAATNCACGNGN ATCTNCNTATATCNNACNATGANAGAGNCATACNCTTNTCTANTGCGNGGAANANCGTCAACNCCACACGNNNTAGNTTT ANTTNNCGGANNTNTGTTATCGNTAGCCGCCGACNTGNATNTACTCCTGNCTTANCCGNNGGNACNACTTNGGAAGAGAG ACATNTAGTCGTTANCGTTCNNTAGNGTGGNTACNCGNAGNNGTATCNANCGACCTTAGCNGGNAGCCCNCAGACNCCGA TGTGNTACTCANNGTGCTANGAAGTAGTCCNTNCNGAGCATCANACAAGTATNGNTNTAGCACTNAACGTACGANGAGGG AGTCNACCCGCTNCANATTGANTCAGNCNNANACNAGTTGNNNGAANTTCGTANNACCCGCNTNACNGTANTAAGGTNCG TACAATCCNGCTGACCNTTGCTTNAAANCATCNCACNTCTGNTTTNAANGCCCGAANCAGCTCCTACNNACCCGGNTANC CGTGGTNTCNANTCCNNTTATNGAGTATGCTNGCAGGTANGGCTACGCTGGNAGGGATGNCTGGNNNNGTNTNGNGGTNT NNCGCCCNTTCTGNNTGAGGCTNAGGCTATCGGNAAAANCGNAGGCNGAGNNNCCCTTNATNTNGNCAACCGGCCTNATN GTAAGTGNAATGAGCGTGTTTTCTCCTNGTGNGTNNAATANGANGGCTAAANCANGATGTNGTGNAAGNNCGCTGTGTGA NCAANCTTNNNAGACNTGNNTAGACNTNACCACCCTAGACNNNCNGACACCCGGCTTTCTNGTNAGAATGTCCTTNNCGN TCNGCNCCCGNNACACCNAACATTATTCNANAAGCCGNATCNANGNGCNCGGGNAGAATTNANCGAAAGTCNCAACGCGN CANCCNACNGTNTTTAAAGACCCTACNGNNNANGCTCTTNGGCCTAAGCGGCNATAACCGACCNCCTAGCACCNNTNGTN AAAATNATACTNGACCGNCCGCTGGGTTGGGGTCGANGGAAGNNTCANNGCCCTCAACAGTGGGTCTNGCGAANGTNCCG GCANCTANNTNACTCNCCGAAGGTTGAAGNTACTGAAACAANAGANAGGNNCCTGCTCCAACCGCNTTCGGGANCTCACN GNNCAGGCAGTGCNATCTGTTNATCTNTGATCNNANCTAACNTGTGCCATNNNGTCGACNTGANATNCNTNCACTTTNNG CGCTCGNNNTTCNATCACTTGNGCCANCTTTAGGCAGGTCTACCGNNCTAGANTCNTNGGCCCNACTGGCGCTNATTACA CCGCCCCANTCCCTGCNCANAGNNACACCNNCTNNTNGCGGGCNNCNCTCANNAAGTCTCGCCTGNCTTNTTNAACNATG GAATGAAAACAGGCNNCAAGCGTGGTNAAANCAATCAGTGTAGCTNGACTGAGCAACTNNNNTNTGTCNANTNTNNATNA GNCTTNGGNTGCNCACGTGTCGCGNTCTTATGNGANNTTTAGACCAAAANNATCNNGNGGAGCGNAAGCAGTGGGGAGCN TAGTCACTANNCGGCAACGGNNNNNATNGANCANNTGANNGGNNCAGNANNTGNTNGNCGNNGAGCANTCTNCGAGANCC GTTGTNAGCAGGACNCACNNNAGAAATANNGAGCNCTCNATAGCGGANAAGACNATNCGANNGNCNGAANCNTCTCTGNT NGAACATNTNGTGTNNANATACATNAAGTGCNTGTTNANCGACAATAATNATTTTTANNCCAACANGANACGGTTNTTNA TNGTTTGCNAGCATNGGTGTCTCCCNTCAGCCCCCGGGGNAGGTANCAGGGCNTGGCNTTAAGNAGTNGGCNTTACTACG NTCNGNGGTNGGNCNTNTNACACGATCNTGAAGCCNGCCTAGGGGATGTCTCCCACAAAATGTGANACNNNGCNATNCGT ACATATTTGCNNAANGANAATNCNCTCTCNTNNNTTGGGNANCCNTNAAATNAACGGCGGTATCNANGAGGAGATCATNG CAACTGCGCTGTTGACTNANNGATCATCGANCCTGAGAAGANTCGCAGCNNNNTNGNAATCCGTGTCGNANNACATCCAC TAAAATNCTAGAAATNTCGTGGANGGTTNAACGATNGCNAGCATATACAGGACTAATCNNNTGGGNCGGCGNCCGTTAGG NAAGGNGCGGCNTCTGTNTCAAAACNTNCNNAAAGNNTAAGCATTATTCCTNCAGATGGNCAGNTGCGACNNNCTACTNG TTCNTNGAGGCGATCNTAACGTCATGCAGTCNNTNTGTTTTGGGCTGTTCAGCCAACTNCNTGTTTTGACAATGNNCCNA CGTAGAGGNCCCGNNANCNCCCCACTGGCNNANCCCCGACCNGCGAGCCACNNTTTTNGACTTCTTGGNNTGGAACTATA ATANACGATTGGAGTGCGCCCAAAGTTATGNACGTGNANNANTTNAGGAGTTGGCNATTCACTTAGTNNTNTTGGCGCCA TNCGCTCAAAANCCTGAGTNTNCNNNAANTNNNCGCGNGCGTCTNCACCNTATNATAACCAANTGAGGTGNGCGTACCTT NCNAANCGCNNGACAAGCGAAATATCGATNTGATTAGCATTCGCAACTACCNTNANGTTGGANATGTGCATCCGTATATG TATGGTTACCATGNTNCTNANGACTTGATNGACCGNTAGCAANCANGNNACNTTTGAAGTCCCAANATAGACCGGGCCCT NAGAAGNAAGTTATNATCCCTCCGCNNTTTNGAAAGTTNTATTGAGTCGTANANGTAANCANTTTTAGAACCAATTTTAG NGATCNTCTCNCACCNCACTCCNCGGCNNTANNCCNCAAGCCTTACNACTACCCTCNGTGAGGCTATAGGTTAATAATGC >chr2 NNTTTNTNAGACNNCAGCNTCGATTTAATGAATGCTCCNCNGGTCNTGANGTNGNGGCGCGGTTACNGCGCGCATGCATA TTTGCTNTTACNNCNACGNAAAGNNCNCGTTGATCTTTATTNGAATGCTNGCGGNCNACTNTNCTCNCNCNNAACNAANN NNCNCCNTCGTACNGTACTCACCGCANNCAGNANNNCANCTTGACGNCNTCCCNGGNCGTCAAGCAGGGNTCGTNAANCC ANNNGTAAACTNNTAACCTNTATGCAGNAACNTNNGCAGACCNCAANANAATGTGGNAGTGANCCAGCCCACGAACGNGA AATCNNNTGGNCGANACTNNATATAATGNGTGTTANCGTNGCCCCCCGGNACNGCNCCTACTGGGNANTGNCGGNAGATA GATCNGTNGCGNGCGGCCGAAATTGNTTCTANACCCTNCACAAAAACCCGNNCGTTCNNGAAATANTTGTGNACGTNTTG NNTGCTNCGCCNNGGGATNTGGNGGNCACTGACCGTNTATNTATGCTTAGTNTGGNGANGAATTGNNCTACGANGANTNN GAGGCAGGAAGNCGGTGTTNGGNAAAACCNTTNNATANGCATTTGCGGCTACATTNNGTTCAGNGCNANGTANNTGGGTG CTNNAAACNGCACACAGGNACACGAGNAATATGAGNAANAACCTATTNTCCNTNNGGNATNTGCNAAGAACGNNGANGAG CCCNNGCGAACGTNGCACNTACGCTTGTCCNCGAANAGANTTGGANGTANAGGGTTGCNGTCANTGGGNCAANGGGACNN GGAAGACAATNTCTATGAGCCNGANATANGGGGCNANTANGATTAGNCTNTCCAACGANNCNAGGGATGNAGNAATNAAT TNNNNTNTTANGGAAGCTCCANCGAGGAACGTTGNNTTTTTNCCANGCCGGACCNANGANCNCNCCACCNNAGNGNCNNG ATTTTGGGGACAGNGGCGNACAANNCCTTANCCTCTNAGTNGCANNAGCGGTTNCTGGAGGNTNCNTANANGTNAANTNC ATCATCTNATCGCACCCCCCTGTAAAGACCNNTTANNGATATGGCGAGCNNGNATAANNNCTGGNGAANCCNTNNCNGGA NGNCGGGTCTTATGACGATNATNTTGAATACATNACANANTGNTCNGTGCCNANTGTCGCACGTCTCANTGCTTANCCGN AGAATAANCANGNTAGTNGTTTCNGTGNATTNNGGGCGCNNTGCCACCCCAAANCGGAAAGCNGCGAACNACGTNGNTTA NTCNNNGTGANCNANGTCATANTTACTNGGTGGGTTNAGCCTGANACNTNCGTAAANATTACTTCGGNNTNNTGGNTNAN NNGGCNNCTNNNGNCAGNCATGACGAANCNGCNCGCCTGNCNCGTGGGTGNGACCTNNGNNNCNCCNATCACCNAAGNAC CGGGATACNGNNTTCATNCNNNGCGATTTGNAATATTGNTCTNATNAGACNTAGCGNNTAGNNGGTTCANTTNCNGCGGG TCANGGGGGTAGGGGGGGAACNTGGCNCTNAAACGTCNNACATNCANNGACGGCCTNTCCGNGGTNGNCNGGAGNGTNCG GACGCACGNTNGACNNACANGCCTACNGTNCATCCNTGATATGACATTTTTTCNAGANGACATAAGNGCCTTCTTGNNTN GNAATNACTACGTNTGGAGNCNGNTCCNTCGAAGAGCTGTNCNTTGATANACCCNTCTCCNTANTGTNATGNNGAANNAT TGCGGNNGATGATGAGNNNCATGNTAAGACCCTATANGGGGTATCCTCTNANTTCNANTNNNGCTACCCCCNGTTAANNN GTAATCNGANNTGGACGGANTNNNNNNNGCNGGCANATGCCTCTNGAACCNCCGANGNAAANATCGNGANTGTGNTNTGA NANCCAGCNTNGCTCAAAGAGNGGNAGCGGTTCNNGAGTGNNGCAGTGNNNNANCTCNGTGNTGGTGAGTNAATGCNTAN AGTACGNNTTGAGTNNANCGNACCTCACACGNACGCCNATATGNGNGTGGNAAAGCTTACAGNGAGCCTCANATGCGCNA NNGATNNAGTAATCACGTCAACACGGGNTNAGTACTCACTGTCCTAGTTNAGNATTAACGCTCNTNGACAGTATATTGNC CNTTGNNGGNCNCNGTNANCTNNNNTCATGTTCCCNACGAACCGACTNCGNCCNNATTNNCTGTCGGCNCGTCTTANCAT TTTCAAANNAACATCTACCANCTACTTGNNTGCTTCTGANACCNGCATGAACNTGCAACANNATNANAACGNATNGGGCT AGGGGATCCNCTGNNTCGNTGTNCGTNCAGCGTTTNAGCGANCNTNCNACTTNAAGTTNGTAAGANGGATNCNTTAGGAT AACTGNTAACGNANAGNCNCTTGATTTNGAGNGANNCTNNTNTCTCTAGATGNNNACGTCNCNGGTNCGGNTCNTTCACN TGTGCANGCTGCAACTCNNCCATNTAAGCCNGAAAGGAGAGGTCGTNTGGNCACANNTCTGATNCACANNANNCGACGNT AAGNCTANACAGGAATAANGAGAAGCGCATGCCNTCCCGNCAGGGTNGNCAATTAAGNGCNAGGCTAGCTAACGAGCNGT NNANATAACCCNATNTTNCATNGCTANCTGGGANTATACCAGNCGANAAGNNCTNNNNCGCGGNNTTTNANCANGCTCNG ACCNGNAATTTCCGGANGACCTGACCGTNTGCTACGAAACNCAATCAGTTGTTCNCTTTANTNANGANNGAAAANCTTCC TTCGTANCNCGTNGGNGGCGGTTNTCANCNNCCTCAACTGNGAGAANGTNTANNATCNTGCCGNGAATAACTTCCNAGGG NCNNCANAGTANATGTGAGNCATACCCTCTGTGCNGCACGNAATGNATCCCGTNCTGNNANCNGNGAAGTANANCANTCA CNCTGGAGNTNNTNCATCNANANGNCNGCNTTCNTAGGTGANGNNANANNGNCCNCGAGNTTCNNCNANNNAAATGGTGA AGNATATCNNCAGTCNNTTGNGCTNAGTCCACTNNGGACCTNCCGCAACTGAGNGNAGGGAAAAATCGGGNAGATGNCTC CNATNTCTATNAACNNAGNTCNCNCCNCGACGANGTNTCACCCATTNTTTACATTANCTGNGTAAANCTCACCNCACGNN CNCTCTNGNNCGANTNAGTAAAGAGNCTTNCGTGCANGGTNGGACNCTGCTNTTGNATNGCNTGNTCNCNAAGGANCNCT TGNAATNGANGGGGCCGGNCANNCGGGTAAACTGTNTAGGANGTCAANGNATCANTGTGGCNCTCNTCATNNGNTNGACT CNGCGGCGGATGCGGTGGNAAAATGTTTTACCTATANCTGCGAAGGACGTANAGCATNGCTNCGNATCCCCNNCCNCNTT CTGTNTCCNCGTGAAANGTCTGANANANGCTGATCNCGGTAANTNAATCNGCTNCGNNGCTGNTANGTCTCCNCCTNNNG CGCANGANCTAAGTNTCTTACGATCTCCTTGTNNAATNGCGTNNTNTNACNAGCCNNTAGTCCTCTTNGACGGTCAGACA TGTTTGANTTNNGNTGACNCGNCANNTCGNGCGNACGNCGAANNAGNGGACTNAAGNNAGGNGCGNNCCATACCCTCACA TCCGGCGTGNGATANCTNNGGNCCCCTGAAGTTGNTCATCGNTCAAAAGAATTTGTTCCGGGNCTCGNCTTNCTACTCTG TCGNCGNANAGNCCCGCGCTNCGCAGCTGANAATCGNCTGGATGCCNCTCGATGACTTNTATTNAACTGTTGNGTNCCGG NACANTACACCNNGNNTAATGGGTCCATGATAATCAATCATAAANCNCTCCNGNTTNTAGCCCTCGTGTCGAAGNTTNAN NNCNCTATTTGGANNNCTNCNNNTNNGGGCGTNCCCTGCCCNACGNGGATGGTGAAAACACTGNNTANAGACACGNCTAT CCATGANATGCANAAGTACGCNCCTGTCAGTAGCNAATTGCGAACCNAAAAGAAGNTGTCANGNNTCCACGAGTCAACGA GCANTCCCAGACNCACNTNGNCCNNNTCTCACNCGNCGGACCAGTCAAANTATAACTGNNCGCTNNTCANCANNNATANG GGGTGNCCAGGCTNNANCNCGAGTCCATAAGGCTNGNAGACCTNGCCNAGTATTTAGNNCACTGNANATGNGGTTGGGGN TANGCNCTNGTGGNTGNANANATACTNAGNTNTATCNGGNGATNCCGNNCACACNTGCGGANNTTCGAGGATAGTTGTAA CGAGATTGGCCCNNCCTCATCACGTAATACNGNACCANAGTCACATGTGTGCACANGCATCNNNACTTANTTGGGNNGAC AGNCTNGGGGGNAACTCNNGATGANTAAGGCTAGNATTGACGTTNCNCNNTCGTNTTNGACGGTNANTAACCGTGCGNAT AAGNACTGNANTGCTANNNATGGGAANGTNGGAGGAATNTCTNGTANCGNNNTGTNCTTNGNCGACAGTAGAGTTGNTAN GGGANGTTGTNATTAACTACAATNGNNNGTGGGACGATACTTNNACCGTANAGNGTNCCACNTAGCAGNNANGAACTNNA ACNGATAGCTNGNACCNACTTGAATGGCGNCACCTAGGTNCGNNTAGTNGGNACNNTNACTGTNNGGTCTATAGAGGGTG ATGGGCTATANNACCTCTNCNNACGGNNGNCGATCGCACNACANCNAGTNTTGNCGTNACNACGNATGCAAGTACCCNAC NGTTTNNTTACANANNCCGTNNAANGANATTCNNTGGCNCGANAGCCTACCANCNAAGTNCAGANNAATGCTNCNCCCAN NCTTGGGNNGCTAGANNCANCNGTACNNNCNTTCCTATNTNNCNCNGCATNATTTCGGGTATNTNGCGACTCTNNACNGN CGTTGANNNTANAGCCGCGNTTTNTTTNGTNGACNTTNNCANTNTGACTGGGANNGATANAANAGACNNTTAAGACCNTA GANTCCTGGTANTCNCGGAGTTGTCACATATCCGTANCNAATNATATCACNTCGATNCNNCTGTATNGAANTTNTGNNNC TANTCNNCNTATTCAAGACGGAGTCNATNGGTCCGGNCGCAGTNNNGTNNTTTGATCGGTGCANACTGNGCNANACTCAN GCNCNTNAAGGATCTNCTGCTTGTCACNTNGATNATCAANCCTATACCNGGGCCCANTTNNCTCNGCGNNNGTNGCTTCN CTTNNNNNTTCATTNCGNGGAGANNCAATGNNTCGNNNCCCCCGGACTGGANACTATANGANGNGTNGANGNCACANCTT AGGNNGTTTGACGCGCTCGNNNNNACGANCGTACNANCACTGANGTANGTNNNGAANAACNNTNGAATNNNAANCNAGNG CTTGTTNTACAAANTANTATGCTANCGCNAGCGAACCAGANNACTCCNAGCTAATNTANNATTCAATATGNNGTGNNANT ATCTTANCGTTGANNANCGNATCGTGNCTGNAAGTGCGNCACAGANGGGTTTGTNNGNNTGCNCNAGNCNTCANGCGTTC ANAGTAGNCCCNNCTCNTGCAATNGGGNCGANNANNTGGTGTCGNNGANGNAANNCNNNCGAGNNCTNNCACGGCGCTCN TATCAGCNAGNNACTGNTNNCTTCTCCAGCCCGNCGATANGGGCNAGGACCTGNACATGAGAGGNTCGNCATACTNNNNA CAGCACCGGGNGACNNCNATCATTTAGGGGANGGACTGGNTNTGGNCCNACAACTCTTNNTTACCGGGCANTANTATGGG NTGTGCGCTCAATAAAGGTTTCTTGTTCNGAGAANTGNANGTATTGGAGGAGGAGGGNGAGCGCNGATCTTGGGAGGCAA AACGNCAGACNNTCCGTCNTTGCCGACCCTTTTCTCTTCTNCNCNAAGGNNCGAGCATANACANGATGACCCNTGTNCNA AGAATTCGAAGGCCAGTGGCCTTAGACGNTCNCNACGCCNCGCNCCTAACTNTTATGATATCTNANGNTCCGTCCNGNGG NTGTNGNCNANCCCCCCGGTNTTTNNNTNCAACTAGGGNGGGAATCNTGNTTTTNTATGACCNTGANCCGAAGTNCTGCA ATCTGATANGNNCTCCGNATAATTTCGTGCCNANTTTAGNTANNCTGCGNCGCTNGCGTGTTTGGGGTANNTNATAAAGA NGATACAATNCNTGTGACGTAAGNACCTTGNNNATANGACACCACNGATTNGNGGTCANTNCGNACAGGACAGATTACAT TCTAAAACTGAANGGGANGCACANNATATGCCNTGGNGAANNNTNCNTGAGACATAACANNTAATTTNCNCGGANTAGAA ACAGTCNCATCGNGACCACANCCGTTGANAATGCTNGCTNTNANCNCAGCTNNCGTTNCTTAGCANGTTATATGGGCTGC NTTAGCACTCNCNTANACACGGCCGANACAAANACCTAAACCCCNCCNATTTACCGNTCGATTACGNTAANCCNGGGTGG GTNGNCTNAGNGTNCAACCNGNCTCTTGACGATTCCAATGCTCGAATCNGAGTCNGACTAATGTACGCTANCCCACCTGN NTGTNCTAGCNTNATATAAACNAGCGCNAGCCGCCTTGTTTANNAANTCTNNCCTTGTATGANGNNGTCTTGAAGNGAGN ACGNTATAATGGCGNTNTTNGGCCCCGAACNGAGNANCNTTTTNTNCNAACTCTNTGCGNNGCCTAACTCACGCCCNTAA GTCNNACNCNNGAACTGANTGTCACGCAGAGNTNTNGGNANTGNGNANNNGATNGATNGGNATCNTGACGGCGANCACGG TANCCTGAAAGATCTCCCCCACNGGTNGNNCNNTCNTATCNGAGTTANTANAGGATTGTGNNCNNAGCTNCAGNCGCACT ANTTTAACAGTTNCANAGACNNGCNACGGGGNGGAAATTNTTTNANNCAATCACACCTTTNNTGCNNTTTGCAAGNACAN NATGCTATATTAANCCGTNNGATNNAACGTTATNCNTNTCTTGGNAGACNTNCGTGNCAGTAAGTAACTGGCNNTNNGGN TGTCGGNNNGNNTANTGCNGCTATGCCGCNCNGCACNACCAGCTCTGCAAANGCTTNGGCGATATCNACNNTTNNCNCTG NNCTATGTCTTNCATGAGACGTGTTGTCTNAAATNCGANTCAACNGCTTTGGNATAGGCCCGNAGNTGTCNNTCAGGCTN CCAGGAAGAANGACTAAGNCGCCGNGNNTTGTTTATCNTACCNGCATAGAAAANTGGCCCCGTCNCNGNNGCAGACGATT NCNTANATCAAANAATATNCTCATCTATCGGTACNATGNGCTAAGTTGTTTCAACANNCGNATGGNGTTGNGGNTAAGAC NTNCCNTTCNCGNCNGTCCGTNTGGATGTNGGGNTGNCATATCGATTCATAGGNCTCNTGNAGGAATACGGGTACGNCTT CCTCAATNTGCTTCAATNCTCTCTACGGTTNGAGGTCACNGGGACTTCANTGAACNTAANGTGCNCTGANACTACNTNCG CANAGACGCNCNTNACTNTGAACCCNCGTNCTCNTTTACCCTCAGAACAGTAACANNGTCAGCANGTTATAGCGAGCNGA NCNCNNNANTTCNANNTTTCANNTTTNCGTNNCACGGCCCCCCGAANTCCTTTGATAATNATCCCAACAGTCCNAAACAA NAGCTNGNANCNNNTNCATGNGCTNTACACTACCCGNACACCNCGGGTGCNCTGTAGNCGNCTNTNCTTCATCTNTCGNG ATACACCGCNCANGGTNTNTGGANACCTNNCAANCTGNATATTCCCNNAGTGNTGCGANTCGNCCNNTGAATTNNTANNG AGNNGTTCNTTGGTCANACTATNTCCCATANNTGNTNCTNTGACANNGGCNNANACNAGNTNNCNCTCAGGCCTAACNNG ANCTTCAGGCCACTAGTAGCTNAAAGCCTCATACTTCCTCGGNGNTCGTATGNNGGNGCAGGTCTGGTCNNNNGGGNTNG CTCAGGCTNNTTTTCCAGGNTGGGNNCCGCTGNGANCGGGNNTACGANGGTGNCAGTGCAACAATGGTNNNGTCGGNNTN NAGCGNNCCCNCTTCAGACCCGAGACNCNGTCCAACACNGCNNNCGACCANGGAGGCGTNATAGGGTGATTCGATNGGNA CANAATCAGACGTCATGAGTTGAACNGTNATCATNACTCCATTGCTATAANATCATACCCGACACAANCNCTGGGNTATT TGGATAAAGNTGTTTTTNATANANCCTGCAGGCCCGTCCTGTNNCNGCACAGAGCAGTCACNNGGCCCTGNCGNACTNCT TGCTATNANTNNNNGTAAGGCTTACCGACCTTCACNTATAGANTCTTGCTTNNNCNNNNNANCACNTGGGGNANTCNCTN ACCAGATGTTGCACGTCACGCATTGTNTNATCGANCACGCGGAGANCCTNNTTTCNCGCCCCNANTGANGTTTCNTCATG ANNACGCGCAGGANAAGCGAGACGNTGCAAACGAATTCGGCNGGGGATNAAGCTGNTAACGCGNAAANTNTTAGNCNNGT CATACGNNCCCGTCNGNATGCGCATCAATANNAGNGAGCTTNCTGGCNCGTNTNTNTTGGGGGNTCTTCACTGCCANCAN NCAACAATTNCTGNAANGAGTANGGCTTNATCNTGTCTGNANCCTNNGTCNNNAANCTTCTNAAAGCGCAGACATNAACC NACTNGNGAGGCGTCTGTANCTCCANGACCGGNTCCACCTACTCTNTTTCTNTGNAAACNTAAGTCNNNANNCNAGCNTG GTTNTGGNGTATGGGATAANATGNNGTCCNCNTCGNAAACTATTACNNNAGTGCNCCNNAGTCANNNCGTGCCCTTTCGC TATATGNGACACTGAGTCCNNTNAGTGACANGCCGCTCCGGCNNCANTNGGCAAGCTTGGCAAGTATCGNGTNTTGAATG CCGCNTCGACTNCTCANGGTNGAACCGACTGTNGNANCGTTGACTNNCTACAGNGGGGTTNGAGGANTTGCTACGCTGGT TTTGACATTNATGGCNTGACAAGGTNGTGTANGCNCCGCATNNTGNCATGTGNCGGGACANTGCNGTNANCTGTCATNTC AAANGCANTTNAGGGCGNAACNNCTTATAGTCGTNCACTNNGGNGGNNGNTANTTNCCNNNTNCGTACGCNNGGCTTCTN NNGCNCTGGNTGGTTTATATTTACCTNTTATATCTGCNNTTAAGTCGCAGCTGNNTNCTANNNNGAGNNTTCTNGGGANG GCTTTNTTGNGGNAGGGNGGGTCCAGCNCACCCTTGACACTATATAAATACAANTNTNTAGGNGNACNNNNCCATAGANG CNANNTTAGCTTCNACGTCGNNNNCGTGCNANNTCNCTNCGTGNCATTGCNNCGATACANTNCCTCTNCCANTNNCTGNA GACNANGTATCGAGTCAACCGACATCNNGAGCNNTACTCNAGGCTCNGCAAAAAAGTGNCNNATNCTAAAATTNAACNTT NNCCCNCTACNNGNCATTCCTNGTANTGCNGTTCNNTCNCTANCTCNGTTGNNCGCCTCAAGANGGTANNGNGAATAGNN CCCCATCCCCGNCCTCNNCGTNCGGGTNNGTGTTCANANNACNNCACCCAAAACCNNNGNGANCCAAGTGNAAGGTTCNG TGATNCTTAGTTGNNNGATNCCCAAAGTACNTCTGTNNCTACGANNCAAGCGGGNGAAANNGAGCANNTGAAGCCTANNG TGGATATGNGGTGGATCCTNGATACTCTATTGCNTNTACTTGCNTTGTCTANGTNCACGCTGCGTAAGTGCGAAGNGNAA TGNACATTCGCNNNTAATCGCATGATANGNCACAGGGCTTATGATTNACNATNTCCTGAGANATGAGAGTCNNCTTCNCA NACGACTCANCCGCTTCAACGCCGCNCTGCTGCCNANTGGACNNCCTNNCTGGGTNCGTTAGCCGNTTGGGGANNACTGT AACANAANANAGNGGNGTAAATTTNGCNACGNATNNNTGANTGGNTCNACCCNCCTAGNANAANAGCCTAGNTACAGATT GNTTTNAANTGNTTANNCCACNTGTNNANCGGTNTGACNAANTGTNANTGGGGNCCATGNACTANNTTNTATTTATCTGT GGTNCTNTGAAGNTACNTTNANNANAGAAAAATTCANCTCTCCAGNTNTGTNNGGCNNTCAAANTANNTGNNTCATTAGC TACACCATANGACNGGGAGCNCGGTTTCATACGGCNATAACACTTCCCGGTNCACAANNNCACGCNNNGANAAAACTCAG ATNGNTTCTCCTNCTNAGNNTGGNGANCNTGGNGNCGGNNNNACGNNAGNCCANNCGNGACTNGACACTNCTGCACCACT NTCNTGNANGCCTNCNGTNNGNTAGTNGACTNCGGGTCTNGTNACGATGTACNNCNTCATNNNNNTNNGGGGTCANGCCA AGGTTCAANTCGACGGCANNNCCGNAAATGCANTATGCGNTGAANAANNNAANCNAGTGATACNTGGCNNNNACGTTCCA AAGNTCNNGGGNGTTNCGNTGATNTTNTCCANATNACNTTCCTCGCNGCGTGATGTACCGACNAANACTNGTAGCATAAG GTATTTCCCTTTGNNGCCGNCNCGTGNCAACCNNAGNCGNCGAGTCANNTAGGGCCTCAACGACNANNGTGNGGNAGCNA TCGNGCTTCNGATTAAGGNNGTCCGTCCGGAAGNNCAATGCGGNNTTTGANAGTTGATNTANANCCGTCNAACCGNCNNG GGCTCGGGTCANNCATGTNTTGGTCNGGAGCTAAGTGGNTCCGCTGAGANCGNGTGGTGGNGGNCACAATATGNCNCANT CTATGGCAGCTNNGGNTGCGGTCNNCTGGTCACNCATNCNTCGNGGTGGNGGTCCANNACNCNCATNCCTGTGTNTNNTN ANANANCATCGCNATNCTGANNCCNGNTACNGCCGAAGANACNNTAATATTGNGGGNGCNTTCACNNNCGCCANCTAAGC TGCNGTNAACTCGNNNNNNGCANTNCTGCTCACAGGCCGTTCNGGTTNATTAAGTTAAATTTTNNCACGNTNGCGTTCTA GNAGNNCNTNANTANANAGACGATNCACCTTTAGNNGGATANCCAACCGCANACTCAACNCTTGTTNATCGCNCCCNCCT AAAACANTCNCTATGTTGCTTNAACGACCNNGGGCNCATGCGNAAAGGTGANCCCNANTNCAACGNCTTATTCAGTCCCA AGANNNAGAAAGNGTGGATTTATAACACTGGNGGATCTTCTTAATNTGNCTTTCCNCGNGTTTGCTCCCNTTNTNGGGAT TGGNCGGACCCGCCNCTGGACGANTTGTGNCNANTCCTAATGCNCAGNGNAGTNCGCATTACTTAGNCATNGGTGGGGGG ANATNNCTCCNATTGGANTGATTCCAAGCCNCNCGGNGAAAGAGCGATTCANANGTGGTNNGTNGGTAATTCTNAATGGN GTTCCCNCATNACGCCCGNGNNCGTTCCTGATTANTGTTGGGACCNAAANGNNNGGTGNCTNGNCNTGANTTGCCNCANT TAANCCCACCGAGAGCCTGGANNANGACNNACANTGCCCNNATNGCTNATAGCNGGTTTTAGGACATANNTCANAGTCNA CCCCNACCNTACANTNNNANACANCACCTNGTCGATAAANTANCCCCAACCGGCCCCGCTCCGTACGTNNCCNACAACTN NTCGTCGGTAACGACNNNCANTTNGTGGTTNGNCANAGANANAAGACTANANANNTNCANATACCGGNACGGNCTANGGA NCCTGNAANNCAGCCAGTAATNACGATNACGNNCCCATCANGCTAACGGNNCNNCNCATTTNTCGAATTGAGTGANNCTT TTGANNCGAAACNCGNNCNAATNNAACNAGCNTATCGNCNCTGTTTAAGTNACTACCGTNCTNCGNAGACGTTNTTCGAC TCGNTATCACTAGCNNANTAGGATCAGTAGATNNNCGANNANACGCTCNACTNCTCACTTTGCTTGGGAGACGACTTGNT NCTTCCACCGGTTTATNCCNGCCGATANNACANNNCNCGTTNAGNCTTAGCACCNCCNGNTATGNAACAANNCANTATCA CGAATNANTTANCATAGNCNNNNATNCTACNTAGCCNCNNCTACCNNCGANNAAATGAGCGCNGGGCGNNGTTNTGNGAT CNCTCNAACATCATCGTAGNGAANNTTTGGANGGGTNGCNGGACNCGAAAGAAACCATTTCAATNTNCTNNTGGACCATN TGCATCTAATTNCAANAANAATNNTTCCATCGTCNANGCAAGTCCGNANNAACTCTNANGCTNAGNTGNTGTCATNGGNC GANCTGGGNNACGGACATTGNATTTCNGGGNNAAACTNAGNNACNCAATGACAAGANANATNCNGTCNGNATNNANATGC TNATTACTGNGTANNTCCNGAGAACANGGCNCTNCNGTNATGNGCATGANTTATTGGGCGTTGANCAATNGTCNAANNNC CTACANTCCANTCATAGNCCNGTTCGTTACNTTTCAGCTCNNTTTCACTTTATGNCCACNATTGANNCATGGAACCCNTG ACGTAACAAAGCTATGCTTGANTTGGAGGATTCATCNGAGGNTTNTNCGCTNCCTNAGNGATACGTNTGCTCGNGNGGAN NACGTGNTNGNTGGTACNNCTGANAANGCGNGAANCAGCCGCGTNTGTCNNGCACTGAATNTAGAACATCATTNGNCCGC CACNGAANNNGAAGNGGTGTNCGCGGNNTTANCNGGCCTAGTCNTCTAGANNTAGGCGTGCTNNTTANGNAAGTACCACT NTTCGNCGTNATANGTNAGCATANTNANGCGGTCTCGGAGACANGNNCNANNNNCTCTGNGACANATTNTNTATGGGTTA NTTCCNGGTAGTGCACNAACACANAACATNAGCNCCCAGCTCCGGGGCNTNCNNGTCATGCTNAGNACGACGCATTATAT ANNCCAGGCCTGTNCCTGGGTGAAACGACNGTACCGGGNNTNNTANACAGCGGAANGNGCANAGGGGAAGNCNCNTNGAN TTGTGTNGAATGTTTTAGGTGTGCTNCAAGNTGGNCAAGCTCANGCAGCTNCAGGTAGNCGCTGACTCATGGAGNGNNTT TGTACTCAGANTACTCTTGTNNGNGAATTGNNTATACGNGCGTTGCCNGCGATNNCTCANCGTTCANGCNCATNNTCCGG GANGTAAAGGACACGGGTCGTAGGTCACCTATATNTTCGAGATCNNNTTCTGAGAATCNTCNCTTTNTAGGNCNCTCCAA NTGNGNTCNNAGGTCNATTCTGGANCNGTGCAGCNCTGTATTCGCGTNGCCNCACTTNNAGAATGNAAGCGCACGTTGCC CGCGCANTACGGGGNCAAGCCNNTGANGNNAGGGTNCGGNCGTNAAAAGCACTAGNAACGNNTGNTTNGAGTACTNCNCN ACTGNNCCCGNCNTNTCNGANGNCGGNNNCCACCNCCNAGATCACCNTACNTCAGNAGCNCGTGTCTGTACNTCGTCAAC NGCGTTGNTTTGCGCANNNCATCAGNNTAGTNAGCCCTCTNGCNTTACCACGTNACCACGCCATCAGNGACTANTTTACC NACCNAGATTNTAGGCTANTCGGCGNTAGCGGNCGCTNCNTATGATTNAGGGNTNANGCGCCNTCNGNANTTNCTAAGAN NNNCNTTAGANATAGGTANAGTAAATAGTNCATCGATNGGCAGCCTCTTGNNTTGGGCCCCCGNGCCNTCACCAGATGAN TCAANATTATNAGACTNANAAGGTTCGTNANAACGTTNNTGTCGGGANCNGAACACCCCGCAACNCCGTGAACNCCCGAT TAGCGCCNATGGNATTCAGGTTTTNCAAGTNTTACTCNCGGTNNGNCTTAATGCGCTGGNCACATNGATNANGANTTAAA CAATANNTTGTGTGATNANTTGCCCTCCANCCGGTNGAANGGGTCTGTGCAGGNGCCNACAANCTTGTCTGNCGTNCGCT AACCCTGACNTCNTGCTACTCGATANCTGAGNCGCNCCCAANATTTNTAGGAGCAANCACCTATNCCAACTANAAAATNA NTCGANCNNATGNNATTNNTTNGGGTNTNTCATCGCTCNGAGGCNAANAAGGCCGGCCTGATGGACTGCNNTTANTNGNN NGNGGCGCACAACANTNGTNTNGAAAAGCCANNCGGGCGTNCGNGNNACNGTAAGCAAAACNCGGNNCGCCCNTTCAACC AGCTGAACAACGTTTCANCGNTCTTNCANNAGNGTGNAACTGNAANCNNNNTTGCGNAATATNGGAGGCGGGGCTATNCG TNGNTTGCCGAAGGGTNAAGNCCANANCTCNAGTCAGTCNNATTGAANATGAANGCGTAAAATNCCTANAAGTTTANCAA TAANGAATTCGNACTCGNCGCACCAAANAGGCGATNGTACNCNTNGTCCNACNNAGAGGATGCANTCTNANCTGCCCNTA ACGGTTTNGANCCNNACCCTGTACTNATAACNNTTNCTTNNNACGNCGGTCAACNGAGTCTTANNNTTNCGGGAACTCTG TAGGNAGNCNACNCGNTCTCCGCNTCNCTAATAAGANTGTCTTTANCCGNNTNAAGTTCTCGCGNAGATAGNCACNNACT TNNCGCNCTGNTACGTCTGGCCCTCCAATGNCCCCCTNGTTAGNCCCNCCATCTACGCAACTTNAACNCGCTCTNATGAT NCTAGGACGTNNTACNGGTAGANTNNTCGTGACACNNATTACTNNAGCCANTACTTGCTANANNTCNCTTGGAGTGGCNA GGNTNTNAATGANACTCGCANTGGTTANNTGAGGGCAACGTCCCATCGNCAGATTNNCNTGGTATATATNTAGACCCNNC NTGAGATGANCGGTNCNGNGNNTACTACNAGGANACGCTGCNCCGNNANTCATTGCGTCTACTNCACACCGTGACTNTGG GNTNATAAGNNACCCTNCACNNACTGAAACCGTTTCAGATTNGGANNTTCTGTAAAATGATNTCNATANGCNNTGAGCAC NGGACGAGNTGATAANACNCGTGANATGTCNNCGNGTGCGTATANNGTNNTTATNNGGCTGGNATCAGGTAGNGNAAGTA NNAGAGCTANAGGGGGNTTTNNCCAAAACTAGNNTGCATAGNATGGANGNTGCTATACGTANANANTGNGAACNCGTNAC CATNGCNCGNTTGCTTCTGGACNCCGCCCNAGGAGGTNCGCNCTCTNTNNTCTCAATGTCNACTNANAGNACNNACAATA AAGNCACGGAGCGGTAAATNCAATNTCCTATNTTTGGCAGTTTTGTNTNGCNAGGGAGCAGNCTACCGNCAGTCNNGTAA NTAGGGNATACCTACTTTCCATCGNCTTAACAGTGCTGNCANTAGCGNCTTGNACGGNTGNNNNATCGGTGCNCAATTTA CCNNTNATTGGGGANANATAGGCACNAACCGTGTNANCTTNAAACGAATTCGNTGCGANNCNCAAATCGGAANTGTCGGT CNTACTTTTGCACTTAGACNTNCGGNGTCGNGCNCTTTNAAGAACATGNNTGTCTGTCNGNTGTNANGGANTCCACGTGT TNCATGGNCCANNNCTCTGCNCTTCATTNGCNNNANCGCGTGTNTCNNGAGAGTCCTCGGCNNNATCCCGAGGNCTGNCT GTGNNCATGGCTAACATGTGATCAATCGTCNNTTNCGACACCNNGACTTANGGGNCANTAGAAATNCNTGAACCNTNACN CGNNGAATGTTTGNAGTACNGNGCAGATGGCGGGTTANTCCGGCNCACGCGCNAANNTGNNNNTTCTANCATTCTCGNTA CTNGGNGTGTGGTGTTTTCCNGCCTGNGGAAAGGTTANCANNAANTCGGAGGNCATNACTNACGNANCNNTCNCTTGNNN TCGGNCNGTAGTTGAGNNGTNNGNNANCCTNNTTACAAGTTNANGTTAANCNTAGNGNNTTTGCNGNANANAGCTAGCAT NGGNCNANTTANANNNNCCNGTNAAAGTTCAATCAAGANTNACGCGGCTTCAGCGNATTGNATGANCANCATACACNGGC TTTNNCTCCCGCNGCNNGACTANGGNNGTTTCGNGGCNTCANNGCACTNNCTGCCGCCTAGAGCGGTNCNGCTNATANGT GGNCANAACTAACTCNGNTAAGCATCNCGATTTGTTNCGNNNGCCATTCATGACGTAGGCNCNCATTTNTCCAGCAGGNG NNTGATGAGGACCCCNCTAAGCCNGNANCTANAACNNTACGGNTCAANNAGNAGACNGGGAGCGAANCCTGTCTNNNANC AACAACCNNTGCCCNCGCNCGNCGCACAACGTGACNNCCCTCCATTNCTATGNNGATGTNACGTCGTGATATTTCANNCG ATNNNGCGTCNATNTCNTCTCANAAANNNTTTGTCCCCCNGTNCNTTNGCTTGAACNGGGNGTTTGCACNCANNNCGCGA TANAAGANCCCNGATCAGGGTTGNNCTCTGGANGNAAGTGTTTCNCGCGAATNAGTCAANNNAGGANNNTTAGTNGGNTG GCCNGTATNGNAAAGNNTNTGGCGNAGTATANNCNGAGTCCAGGNGTNCNGNAACTTTACATCGACANNANNACTGACAN ANCGCCTANCNTGGGGNGAATTNACCCGNNTCTGTCAGCCNGNGCNNCNAAANGAATTCNGAGNCNCCTGGGTCACNTGN CTGTATANTGTCNTNNCTNGAGNNCTNTANNGANGNGNCACGAGNCNGNNTNCNATCTCCATNGNGTNTTCCGGTNNNAA GAAGAANGCANTAGAGNTTCNNGNAACCGGNCATNGCCAACTNTATTNCTNCTCNGGNNNGGGNACGAGTATTNTNNNCC AAANCATTTACCGGANACATNCTTNCCCNTCGGCCAGCAGTTNNTGNACGTCNNGNTATNCACANTAGCAAACNGCGGGA GGNGCNAAGNTTGCCTCGTGTCNCGNCNCGNTTGCCACTATCNGGATTGCAGAATANGNAAAGACCCCAGNCGGGNGNNC TAGAGCNACATTCNNCTNCGNGACGTGTAAGCCANCNGTGNTNCNNNNANCGCGGGCCGTCGNANGTCTGTTCAANNAAT TCNCGNAAAATTATNGNGGNNNAACAGTANAAAGTAAATTCGCTANNNTCCTGNACTCNATGGCNAGGTGNANCCCNACN CNTANCTGGTGGNNNGAGAAGCAGNGGGNGAATTNNATNCNGGACTGGACGTCNNGAACNATTGCCCTNGCGCTATNNNN TNTANCACGTTTNTANCCCCGTGGCAGAGGCTTCCNNGNGGAGNCATCGNCNATCCGNTGGNTNGANTGTGTNNNANCNT AGAATTTCGNACGGCGTCNGNCGCGANGTGAGTTGNGGTNGNAAATCCGCGGCCAAATGACTNGCNTCCGCCATCGANAA NGCNNGTNCANANGATTTAGNTATTANNNGNTCCAAAAAAATNCGAANCANCATCNNAATTATGCGNGNCACNNACCTTN TCCNCTNNCNNATNTANTNATNAANNCTGGNGNNGAGGNTATTCACCNNNNNNNTTCNGCTAACNTGCNANTGCNAAAGN CTCNGATTNCGATCAANTCGAGTNNNGATAGTGCANATGACGCNATAGTCNNCNCAAAATGCTCATGTAGAGTCAGGCTC TNANGNNCTTCTTGNTTCCTATNNAANTCAANGTNCGNTCGCGNGANAGGAGATAATTTNGANTATGNAACANACNCAGT TTAACNTTNNCGCTNANAANTGTCNAAAANCGATGCATCANGTACNCCAGNNTGTGACCNNNGGTTANGNGACNCCANTA ANCTNGCGCCGGCTCTGCTCAAACGCCGCACGAAGTTGAGCNAACNGANCGAGAGGGNCANCAGNCTCANCNCANTGNAC CGGAGCCCTNNAGCCTNGGNCNATGNTGGATTNCTCNATCATATTGAAGNTANNGAGTTNTTNNAACGGCTAGTGGCTGN GNGNCTNNTGATTCTNCNNGTTNCCTGNGNGTCNANAGACCGAAGNAGAGACATCANTCGAGCNCANTTCGCNGCACGCA TGACGCTGCNGTGNNTTGAAAAGCTTTATAGTGGNAATTNGGGNNACCNCTTCCAGCGATAGTTACCTACNTCTTGTGTT CGTAANGGNCCAATTCACCTNCATGCAGCGACNNANTACCACTGGATAAGNACNGTTAGAGGGATAGNTCATGATGNCNN AAGCCNNAGCNCGNTGNGNANTNGAAAGCAGGANNGGAGNTNTGNNACATATTANNTGGCACANAGCNGTCNGGGTGGNC ACCGGANAGTGAGATGNCNGNTACCNCTNNGGCCCGCCTAGTAATCGNNNCAANNNCTAANCTGCCNGTAANATGACNNA GATAANAGCCCCNNGGTNTAAATCCTCNNACACGGCAGCNTGANTNTACTCATGNGCNTGCTGATGGNGCACGGTGNCGN TTCGNGAATTCCAGNNGGGGNTGNGCTGAGGCGGNAACANTAAGCCTCATTTAACNATATGTATCAANAANCNATGNNNC CTCGGCATCCGACGCAGTCANAATCNGTNAACCANGAANCATTTAGCGTATANNNACTNCTTTCTTGGGGNGGNCCCNAA AGGAGCNTNTANGTNNCGCNCGANTCTCAGCCCTNNNCTNAAATTGTGNTGNATGGNTTGCAGGNANCCANCGCTNCANA NGTNGTCNCAANGCACANNGGANGGTTACAAGGCTGNCGCGTGCTGAGNTAGTNCNCACGCCGTGTATCTTCCCGCCAGA AACACCNCCTTCNGATCTNTAGNTACNACTAACTTCTGCGAANGGANGACTNTCNCNNGTGNTGNAATAACCTGTANCAC GGATTCTATNTAGGNNCATTCTGNCGGTTANNTTCTGATGNNTTCGNGTNAAGGNCANNCTGNCCCCANGTNTGTNAACG GCCCNCCNANANNTTTCATNNCTGGTGGGGAGATATTTGNCTTGTCNGGTATNGCAACTNCCCTCCTGGNTTGAAACAGT GNACNACGAAAGTGNNATAGCNGNAGCNAGGAGNNATGATCATNCTACTAAANCNCNGCCAACACNACCACAGNGNAANC NTCTGACTGGACNCCGGANANAAGNNANNGCNGCACTTTNGANCGGGTAGGGCGACGGTGGACTNGGGCGCNATTTGAGT NNACTCCNAACNGNACANCAAATGGGNANGACAGCGANATTANNNNTTCTTNAGCCNGGATCACCTCGTAAAAGCCAGTA NTGCGCTTAGTAGNNTNGNTNTTCNATTNACNTGAGAAACCNGTCGNCCATCGCTCAGTATNTACTCCTGGGAATGTNCC NACNTCTCNNGGACTACNTCNAACGGGGNAAGTGGCNANNGNTNTCNCAANGCAACNTTCGCGGGTGGGNTGGGNGCGNA NTGGANCCCAGTGNATCTCNATTTGGGGGCGGGCTGTCCANCCTCCGGNATTNGCTCGNGANTAATGNTCCCGCGAACGT TTTTNGACAAGCCTNACNTGANANNANNNTCCGNNNGGCCTTNNTAGNCNTNGANGCGGNCAGTTNNANTCTGTCCACCC TCCGTCNGCCTTGANTCNCATCGTNTNNTACNGGNANTTATNCNCCNGTATATTACANAAANNTGCTCNAAAAGNTCTGC AGCTACANGNCGCNACGACCGAATCATANGCCNNGCCCTGTGCCTCNCCCTANNAANTCAAATGGNANGAGNNNCGGGAG CNAGGNCATAGCACAATCCATCANCTGGNANTACCAGAACTNTTCNNTCNATACNGCTAGGTCATAAGGAGANGGNATTG NCANCGNCGNACAGNANNTNGNGGNTTTGGNTGGGGGCNTGTCNTACAANTAGGTCTGTNCANANANGGAGCAATTCGNG AGTCNGGNNNCGTANTCTTNTNNAAGNACCCTTAANCNNCAAATCAGCATGACNNGGTGGTGNNCTTACGTTNGGNNTGN NCTNCCACACNACATTTCGNTNCCCGGGNNGGCANCCTCNNANCGTCTGTAGCCCGGGNTTGGACATCCTCANTCNTCCA TCGNANTGAGANCCAATNTNCANGTAGANTGTNAACNTANNNCGATCGTATTGNACTGTGCAGTACATTCATNGNGATAN ATGANAGGACCNCNGNTCAANTCNCNTTNACGGGGNATAANACNCNGCGGGGGNCAGTTCTCGAGATTTAGAATAGTTNA NGGATNCGAGTTACGCNGGNTTNCCATNATGAANCCTTANNGGACTTCAGAGCNAGCTTCCCTNAACNCTCNGTANAGCG ANGANNCTAGGNNNGNANCTCACNACCTACNTACGATGGNGTTATCCANNGNCAACGGTCGGCACTTNGCACCTTTTTCN CATCATTAANCCAGGNGNTGAGNACCGNACGCCTGTNCCTNAANNAACGTGTNATANTTACTTCGTACTCTCGAACAGAN CACCNNTAACCGTCCGNGTCACGANNNCTNATCTAANTCNAAGANCNAAAGTCTAGCTATNGCCNTTCTNTGCTGNAGGA TNNACTGNAACACCNGGANGGNCTCTCTACNCGTANGAAATACTAAGCGAGAANTCGCGGTGNGGNNNTTNNCGGANACT GGGCNCTCGTTAAGNTCCACGTTANGTTATNACGATTNANTTACCCTNNTTNCGGAGGNTNGGNCGNNCTNCANATTCAC NTTCATGATNGTGGGTGACNNNNGTAATTNCNNTAGCGGTTTCTTNGNNACCAGNNNTNCGGACCNTTTCNCTTCTCNTG ACTCCCNGTCAGAGTGATGCTCGGANGTAAATGTGCTNCNTNNTNANTGCGNGGCNCGTAANGCACGCATGACNTGNNNG GNGTAGGGNGNNATCNTNANGNAGCNNTCNACGNACCCGGCGACNNNAGCANCATGCNACNACNCNAAANAGCNNCTTCG AGNGCTAGCACTTCNTCAACNGTTNCCNAATNAACCGCGAGCGTTANATATCNTACGACTNNCCCTCAAACCACCACANC AGCNANAGGGTCTCCCTGGGCGNNTACCTNCATCGTNGANNANCNNGACCTACANNTGCCTNATCTTNTCATAATNNTGA CCACTNGNGNTNTATGGNGTCNAGATTTCNTGTCCNTTGCTTNANAGNTCNNCGGGNGACTTNTCNNACCNGAATTNCTA GGGCGGCTCTTNTGNCACNTANNGCCGCNNCGAAANTNTACCATNGGGNCTGNGGAGANGGACNGCNANTNAANTTGTTT ATCCAGCTACCTGCTGNAANTGTTCNNANGTANNGCNTTCGAGCCCTTAANCTCANGTNANCTATTGANCTNCCNTGCTT GGNCGGTGANGATGGCCAANANNCNGCGTAGCTNCAGGNTANACTATCCNNACACGNCNTAANNCATTTAAGCGTATNNT GTTTANGGANGTTNNCCNATACCCGTNNTTGGGTCTTGACTCCTNTNGATNGNGATCATNGTATCNGATCCTGNGGCTGN TGNTTTTGGANCTGAANACGNAGNGGCTCCGGCCNAAATAGNANTGATGGNCCGCAGTNCCACATGGTTACATTTNTNAT CGGTTCNGTTGCNAATNTGCNNTCNCANANAAGATNNCCTCANACTGNTCCCGGATTACACGTNGTTAATANCAAACGCC GTGNAGACACNCGCTATTAAATTNAGNNCCATNATGGTATCATTGGCCAAGCTGCNGTTNAATGCTCGATGGTNNCTGGT TACTCNATNANCAATGNCCAATNCNTCACATNACCNTTANTAAANNGCTAGATCTCNANCGTTTGTTNAGANTGCCAAAA NAGAGNAGCTAGATTTNCNATCAGNNAGANANCAAGGNACGNGCNATNCTGGAANATNAGGTTCGAGGNNNTCCCGTNCA NTGCANNNTATCTGCGANGANATNCNCNNGNACAAACATCTGCNATNCAGGCTATTTCNTATGCTAAANCATNGAAGNNA GACNNNNGCACCCNNAATAANTNCCCCANNTACCTCNGACGCNGGCGGNTNCAGCTGNCTNCACCTTNTGGNGATGNTCG ANCCNCNAGCTNTNTTGCNNACGATATANCCCGNCNGCTGGCNANCTAGTGTTCNTTCANNNTNGTGGAGNNNAGCGNNG ANANCGAAAAAGNAGTACTGATNGNGAGTGGGTTCGCTANGTANCATTNTTATTTGATNCAGNANGATCCNTTAATNNNA CAATTATCTTATGAATGNNTCGCGTCCTCGNGNGCGNNGNCTTCAGGGACAACTTGTCGNGATGAAAAGGGCATACNCGC CNANNGGTTCATCANGCNTAGGAAANTACNTGCCTCTTGTTNTGNCGAAGCACNCGCNCTCNANCNCTGNNGTNNGAGCG CNNGAACTCGNAGTCTTCNNACCNCTNNTAGTGCNTNGTGGNTAGCNTANAAGCTGCCCCGTTNGTCNACNANGATCTGA CTNCCNACAGCAGTCGGGTTANATGAGAAGAGCTAAATGCNTTTAACAGNGNAGCCGGTACATTGCGGATCANGGAANCA GGATTGNGCTTAACTCNAGAGTCTCATGCGAAGACCANACANTTNTATCTGCGTGTNGNANNGCGTAACNCGCNNGCGTG CATCCAANACCAATATNCAAGNCTTCTCGNAAACNNNNGNGCNGGAGNGNCNTGGTNCGTGGTGCNNNNATNAGCGGNCG TNCAAACGNGCNCCNANGNGGCGGGGGNCTNCTAAGACTTCACCGTNNGNTAANGNTNCANCAATGTGCTCCATCNCACA TGCNCCANGNTNNNGAGGGACAAGTACTGNCNCTNCCTNTCCTNCCATNTGATTNAAANCNAGTTTGTGNGNTAACNNCT CAAACNNTTNCTGNCTGCGTCATNTNACAGTNTCTCANTNACGGAGGCCCANTAANTNACCAAGATGAGGGGCGGANGAA TAGNGNAGGNNAACATANTNGNAANCCCCGCGNNCTTGAATTTACANTGGCTANATCATNAGTCAAGNGANGNCACNTTA ANCGGTANTANCNCGACCCCNATTNACACTANCGGGGGTCTAGTATTNCTANGCCTGTCATCNCNCTGTCCCGCNATGNA TGAGTNCCCGTGNGCCTTGGCTANGNAANANNTAGGANGCGNACTTAACNTTAGAATTCCTGACGCCACCNATCGATCTN NCGNCGCTATATCATTGTGCACTATGTTTTCNCNAACNTCCANCNGTCCAAAGCTGGANANTNATTCANTGTATATCNNT CTCNTNNCATGACGGGNNNATTGAGCNTATACGGGTGCGNANACCTCNANNNGTTTGNGNTACTNCTTGCANGAAGNGGT ANNTTTAGTNTCCTATGCGNTTCCANGGANCANGNNNNAGNTGGNCGCNCTCACACTGCNNGNTNTAGGTNCTTAAGCAA CAAANACTCTNNGGACAAAGTAAGAACCNTCTAGGGGAGAGTNAGGATTGATCANTCGNCGTTANCGGNNCAGGGTTAGG GTNNNGGAGAGANNNAAACGANTCTCATGATAGNCNATCCCCGNCGGGAANATNATNTCACTAGTAGCAGATTANNCGGG CACNCCCNGGTCCCTATTGNGGGTANNNTNTGTTTNGNGGTGANNTNNGNGNGGAGNGGGTAAANTNGCCAACGTGNCNA NNCCCCCGNGGNGNNAANATCNCNCCCCAGAGTCATNGANNNACTGCCACANACGANTTTNCATTTNNGGGGAGANCTNT GTCAGGAGACTTGACGCTNTAGANCNCGGTTGATCAANNNNTNGTAGGNNACGCCTCATGGAGACANAAANGCNANCNAA NNNGCTCTCNGTAGGATTGNTGNGCCCTGAACNNANNTNGTGTCNTNACNAGGATACGGNGNCCGTATATCNCAGGATAN CGNNANAGANCAGAGTAGNTGCCNCGAATANACCTTTGNCTCATCTTGGGCGGNAGTNCACCTANAGACTACAGCGNNGG TTNGNGCGCGCAGTNGCTGTGTNTCNTNAAGCGANGNGNTNCCGNTGACGATCTGCCCGAGCCNGAGANNGGGCCGATNA GCATTATATGCGNTGCNACAACTACTTNAGANTAAGNCTGGGNCNACNNTCCNGTGTTAGCNNNGATATACNGCNCGNCG TGATTNCTGCTANAGNCAAGACTGNNACCNTTCCNAANANCAAAGAGTCNGCGNCGAGTTNACATNNTANTTTNNGCNCN NGNTNCNCCTATTTTTGGCGCAGNGANGCCNACNGGNGNGCGCCTGAGGAGTGCGANTCCCCAGTAGTNCNTNTGNGANT AAANNTTACNNNGANNTTCAGCTAGGGCTAATCGTATNNGGGTAATGAAATNCAAAACCATCTTGNGATGAGNGATATCN TNANGNGCTGCGATTAAANCAGATCACCTNCGGGCCNCAGGGTAGAAGTCCNGTGTNGTGCCGCCTGNAAANGGTNCATG NTGGGAGNCNTNANCCACGNTCTANNGNANTANGCANNCGCATTTTNTTGCTTCTGNNCCNGCTNANTCTGCGCTCAAGT NTTTNNNCGCTGGGTCTGNAANCGGNNCTTGTTGNATNCTTTTNANTTGTTNNGAACCACTCCGTANTGNCANGCNACCT TGANCCAANTGANGTTATTTTAANCTCCCNTGACGCCGGGCNAGTACCTTANCNTACNGTCAAGAAGGTGGNATNGATAT AGGGTCGNCNNGTANCAANTCNANNGANTCNCNTNGCCGGCGCANTTNGGNNCNNGGTCNTTGTCNANNAAAANNANNGN AANCGTTNTCNATNGTGCGTCTCANGGAACTCGTNATGACCNGTNANCGAATNGCNNNTGCGACGGCTACNGNTANANCN GGNNTATCCTTGAAAAACGAATCAAACTTANCNTGCNCAACGTTTAGNAAACACGGTCNNACNAGGTCNNCANNNCCACA NAAGNGCNCGTANCACAGTNGCCNGGCGAGNTCATTNCNGGAACGGACTTANCCNTNGAGNCGCGNCANTCCTANACNTG ANANCAGGAGANCGGGNCGAGCACATGGANTNGNGCTCCNNACAGTTTACCTTTTTNCTCNNAGTTTAACGAGTGGATTT CNACATTGTCTTTCTTCTGTCTGGNTCNCANCACTCNTGTTAAACTACGTAAGTCNNCCCTAGCNATNTGGCNNNGTGTC TATTCTCAGNTGATNGNATGTCGCANGAGATCNNCGGCTTTCATNAACCNCAANNNCTACTAATAGACGGCGCACGGATG TGGNNNNCCTCGNTCNNTNGCTCTAATNGGTGGATGNANCNTCGGNACNTTNCGTAGGCGCTNGTNCNGANATACNGAGN GANACACTTTNGGGTNTAATCAAGCGATNNATATCGAAANTTNGTACGTACNGTTCCNATTCTCTTTTGTAAACACTTGN ACGGGCTAGCTNGGGTGGCNNCCAANAGANCNCCGCGGGNGAACACGGGNTCNCTACCAGCTANTAAANNCGCGCNNANC TNGNTTTCTANNGGNCNTGCNACCGGAANNCGCTGAAGGGCACTCCTTNANCCTCNCCCAGAGCTNTGATGNGANCTGAG CAATAATCGNATGGCATNCTNNNNTCTTTNNNTNTNNANGGNCNNGATGTNTNCNTCNNTTCANCTGAGGNATNACACTN NCANNNCTTTGAANAGGTANATAGGAAGGCAAGCGGCGACCACAGGCCNGTCGCCCGGTAGCGGNGGTNCATCTGNGCNN GTCGGCNCGGGNATNCTGNATNTNAGCGNANCGCCTGCTCTCCNAAACACGCNNTANNTNNGCCATTACACCGCTGCTAC CGTGTNNGTCNGCTCNAAAGCGTGATACTNCCTGCTCNNTCCAANTATGNCCANGANCCGTGACAGAGTCAAGGNGCTNT TGTAACTACANAGATCNTNTCAAGTNANNNCCTTCACAACCNCNTNTANGTTGAGGGCCAGCTANNAAGNATTNTCTNAA CCGCGTTGTAGTGTGGCNGAGCNTCNGTTANNATCGGNTNNTGCTGATTTAANANATAGTACAGTCGGNTTTCTANCCAN AACTACACAAGNTGAGNAGAAGCCNNNNNTTTGACCNNANNTCNNTATTGGANTNGNTCATTCGNACGAAGCNAGAATNG ACTNTCNGTNTNACNAGTCGCCNTTNANTNNGAGCAGNGACNTGCTTANCGNAAGNANCTNNTNGTNANTCATGATCCNC GGANNCAAACGTANCGGNCGNATCTTNANCTATTTACNATGTACANTAGNNNNCCGGCTNTTGGNTCNCANTTGNCGTNN NNTCCCCCCCATNANGTAGTCCTGCAAGNGANCCCCNTGCACCGTGGAGTGAAAGGCAGNCANGACGNATTGCCCACNAG TNGGAATCGAGCGANAGCGCTCCACTGGTTANNTACTNGTTNAGNACGGAACTCNTACGAGTCGCAGNNTTNCTGGATTT NANNNNACGGNCNANANCCGANTTCCATGGGAAANNGTACCCTATGGAGGGAGCNAGNAGGTATCACTGTCAGCANANNN NTTNNGAGCCCATCNCNTTCNTANCGCNACNNNAATNTGNGCAGAACCCNGNNTTACGTGTNNGCNCTGGNCTCCCATAG TNCCGAGNATCACNGACNNCTAGTNNNNNTGGNNTCTTNCGGACTNTATAGTANCNCGNCAAACNTTNTAGAGCCACNNC NTNGGACNTTNANCCTCCNCAGTAGANGNATACANANNGNAGNGGAANGTGANANGAAAGTTGGATCTGATTNTTNCGTT NNAGGNAGCCTTGGNGGTGCGGGAGTGNGAGCGNGANCCTCATTCTCGGTNGNGNAANNAANTGTNGGACCGCTAGCTAA NATAAGTGTTCTAANGCAGCGNCNGGANANAGNNGANGANCTGCAANTNGTAANNCGTACTGTAGCGTGTANGCCCAGGA CTTAANCGNCNNTCTNGATANTCAGGGNCTANGGNTNAATGGGCACGACCTTNNGCCTAGNGTGCCGNNCATAGANGAGT CGNTCNGGTGTGTACACCATNTNGGGGNCTAATGGNAGNGTTAGGCTCNTTCGCGNTCNTGGTTCTTAGNNTAGAGCTNN NCANANGTTAAGTNAGNNCGTAANGTNGANNCCGNCNANGGCTTCGAANCAANGGNATAGCNNTGAAACAATGNCCTCCN CNGNCTAACTGGCGATACCTACTCACTGNGTNGTTCGAAAGGCATTNCAAANNNCCTGTTNTTCCATAGCTGGCCTACAA ACAAANNAATAAATNNTGGTCNTCGTAAGACCNCCNGTACTNCNTGANNAATANTNTGNTCNCNGCTCNNATCATGATAG NTCNTNAGNTATGACACTGNCACAACNCCCCCANTGCTTGGGCGTTTACCNNGAGTNNTGACAGCNCGTGANAACCTATG CAATCACGATGNGGGCNCTGGTNNNTANCGNTTCCGATGAGTGCAAANGNGGAANGNTTCGTTTTACATTNNCNAACNCA CNGGGNTTGAAGTGGGGAAANTTCGCTAGNTNGGGNCATTAGAANATNGNGNNAAACTGTATTTATTNGNTATGGANGAN CNCGNCGTCCTCAGNNNGTCTCNTANCACNCTNATTATCCTGTTGAAGTTGCGNNGNNCGGNTCTGNGAGAGCGAATTNA CNTGTAGTGCNAATATANNCNNCACNAGAANANGTCAGCTTNAGCNTGTCGGGAGCAGCGTNCATCAAGGTGCCTCTTNT TGNNGCGCGTANTGANCTTCNNGTNCNTTNGCTGCATCCAAACCNGTTNGCGTTCGNTGGAACTGGTTGAAANGNACNNA CAACCCNATGNGGNTNTNTCATTANNATNGCAGCTANTGNTNCTACNGGTCGAGNNNTGTTGCNAGACGAAGCCCTTNNC TCCTNCNTNAACCNNGACNACTCGTGGTCTTCTCACGCTNNCAGAACTCTNGTGANGAAGANACANNACCGATGCTCTGG AACCTNNATNGACTNNAANTTAAAACTGGNTNCTTCCACNGCNAACCACGACTCGTTTNACTTTTNCTCATTANNCGGTG CATNNTAGGGAGCATAGCNNAGNGNNCATCCCTCGGTGAGTGTTNTANTAACNCTTGGNGTGANNAAAGGCCACNGTTAG GGACTCGCNCCGTTTTTGGTCCNACGGNGGAAGCGTTCAATCCANCTACTGNTTACNTNACCTCCTTATATAAGNGNGTG GCNATTCTCCNTNTGNCTNGGNGNTNCGGCTTNNCTNGCCATGTCACNGCGTATCNAGTNTGAGCNCGCTAAGATANACN NNNNANANTAGNATNTCANNNCTTACNGAGTCCTNCAANNTTNCGAGTANNTANCACCGAGTCNTACCNCTCTGGNCTCN TGCGGACTGCCCGAACNTAGTGTNAGCGTGTGATCANCGNGCGGTGCNAGCATCAAGCTGTGNNTACACNTCCAGGGGGN GNNGTNAGCAGTCGGCGNNTTNGAAANCTNGNNAAAAAGAANAAATGGTTTCNNTGATNNNTGGCCGCATCTGANNANCA TCCTAAGTGGAACCATANAACNCCTCGAAAAGTACGCGTCNTGCGGAANTACATACCTCANTCTGCAAANTAAAANTGGT TCGNGNGCNTATAGTNNCCCNTGNCATTAACTGTAACCGTCAGACGTCTNGCGNCATAANGAAAGATGTATGNCCTGGAC ATCGCGNNNNANNGCANGAGTTTCTGNAGNGNNTGAGCCGCAGGTCTTAANNGGACGGNAGGNACGCATNNTTTAAGAAG ACGATCNNNACANGATACACTTANGGNCCCNCANTCGCNGACTAAGCTCTCGNNTAAGNAGNTGANCNCTATNNGTAGGT TNCNGTATCATCNCTGANCGATCCNACCCTTNNATNCCCGNANNAACNGNTNGTCAACGGANNCACTATNGTATNCNCTC AACCGCNNGGCGCNGAAATGNTNGTCCTNAAATAAAAATCANCGNCTNANGCAGCGCCNAANGTNGTGCNAANCGCATTG GTGTTTGNAGACTCCCGTTCCNGTGGGNAGNGCNNTCGAGCGTNNGNATCNCACTCACACCGCANATCCACTNANAATNC ATAGTNAACGTCTATACTTGACTAAATGCCNTCTANANGAAACTTGTTTNCGGNNCGTTCCAGCTNANNCCANNGTTGGC NNGTNGNGATGNGNTTNNATCGGNCCCGGGATTTCGGCCGNTTTGCCTTGTNATCCCATCCGNGCCCGGAGCGCTGCAGA GNNGCTTACCTNNGAANTTTCANCGNCACGGTGCGNNCCNTACCGGNGTCTGNGCNGCNCNGTNTCCATNTCCNANANNA CCCTCTNAGNNCTCAAAAGGNCACANCNNNCACGGTNGGAAGTACNATNGNACNCANTNCAGATAGCAGTNATCNGGCGG ATGTAGNTGTGGNTGNNNNNNNGNTAACANAAAATTTTTCCNGNGCNAACTCCGCNGAANGNNTNGGGCAATAAGCGNGC GGAGTAGNNGTTGGAANTGAGNCGAATTTCGTCANCNATCANCAGTGNGNCTCCNCGGNNNNAANGCTGAGNCNCNTNCT GNAGCTTNGGCGATNTANTAGTCCATGNCAATCTTGNGAGNTGCTANGNCGTTGAANNGGAGNTCGAANCACGGGGGNCT TGGNCCCTTGNATGTNGTATNTNNTCCCNANAAGTTATTTGCGTCAGGNTNTCCCCGGAACCNATTTNCNACCANGACNN GGNNGTCCGNCNCGGTGNNANTGGNCNGCGNGANNTTGNTATCCCGCGTTAGNATAATGGNANAACGNTGNCNTGNGTAT CTGTGCCATTCCNAAGAAGCGCCCCCGANANCCNCCATGAACGNNNANNTTANNTAAAGCAGNCNAAAGATAGCNTGCCC NTGCNNAACCTGNGTGGTTNGGNGTNNNCTTGAAAGACACTGTTCNANATNTACNGCAGCTAATGTATGCANTGGNTTNA GGCNAANNGCCTGGTNCCTTTNTCATNANTGCGNNNGNNCNCAAAGCAACTTATCANTAACGNTNNNTNNTTTCATNNCG AGAAANANGATCTANCNNCTGATTNGGNTCGNATGACGATNNTTTGAGNCTTNTCCANATCTGTTCGNTCCTNNNAACAN ANGNGAACGTTANCNNTTACGAACNANCAANCANNTNAAAGNAGCTCTCGTNAGCNATNGAGATCCNNGCTTNGCCNNAA NNGTGCTCGTACAACNTGTGGCCGNCTTNNGGCTNNNTTAANTNTTCNCTTGTANGACATATANGTAGAAANNCCTNNGA NNNNACANGATCNCCNCCANNACCGNNCGGTAGTANCTANGCTTNTTTACGANANTGCCAGTATNANCNGAACNANAAAC NACNTCAGGTCAGCAGGCTCGACNNGTAGNTNACCCCTGATAGTTAGTNCNNCCNCTNCGAANCCCGGCCTTTTTGCANG NTAACCAACGCGANTTAGTACATCTTAGCGGCAGGCTAAGATNCNNAGNTNATACNCCGATACCCNCNACGNTCGNGACA TTCTGAGANGTAAGTGTAGAGNNGTTGACAANCNTAGANNNNAGCTCAANNTGTGTTCGCAGTNNAAANTAAACAGNTAG TTGNGGACTTATTNACCGANGACNGTCNNGTATGAAGTGATTNGCTTATTTAGTACTAGCATTGAANAATAAGNGTAGNC ANNTCAAATGTTTACAGGTANCNCTGTGTTCNANTCTATNTNNGGATCCCNAATAGGNTTAANATCTTCTATTCCTAANN ATNTACTGAGCTGACNNCCGNGNGTATNACACACNANNNATTAGACGANAGNTAGAAATNTGCGNGNGCGNGAANCAANN GCCGACNCNGAGCTCGGTTGNGCNCTAGNCANATTCTNGGGNCCTAACNANATTTAGTGTGNGCGCCGCNGTNCGCCGGT NNTCGTNGNCGTTCTTTNGNCCCCGGNNNTTTGGNGGTCNTCTNCCNTAANGGTCNTTTAATGNNTGNCCANGTACTCAN CCGGGGCAACNCNATACCTTNNCGGCNNNATTNCGCANACCNNGGTCGAGTTGGCCNTGGNTGCTTNNACGGNCGCCTGA TAGACTTGTNNNTTACTGAGAGGNTATCTGCTNTNNGNCTNCNNTTGCTGCNCTNAGCNTGTNNCNGTTCGGTATCAGTT NGCATNTATCACGGCGTNCGGAAAAGCACNTAGTCCCNNNATACACCTCTAGTTGAATTTANGNGGCCCGCNACCGGCCG NAGCAGGGAATCACTAAGNTCACGNGANTGNATNNAGGTGCNNATCGNGTANTTGCANCTGTTNGNANNNCTGNTNNAGA GGAGTTTCCCNANANGNGCNCNTCAACGATACNNGNTANATNGTCGGCCCNNATGTTANGNCGGNTCCNNAACGNAANNG TNGNCNACTTNTGTATATATTGCNTCNAGNNGTAAANCTATNGGATANCCNANANCGNTTNGNACGANGCNNCAGCGACN CANCTCCNACANCTCCGGGACNNNGTNAACANANNCGTCNNNNNACTATTTGNGGNGTTCCCTNGTCTGCTGATACGGAC GCGCTATNAGNNNCCCCGTTTNGGAGTAGNNTNACNANTCACGNCGATTAACTAGGTTAATGNGCTCGTCCAAANACGTG TCNTTACTANCTCCNCCNGNCGATAACNNATACATAGTTTGNCCNTNANGGAGGATCCTCGTTCNACTCTGGNAANGNNC NGCGTNTGNATGGTNANGANGACGACANCGNCNTTGTTTGATATGNGTGGCCGTTNNACNGNTGTGGGAGNGTCCNTTCN ACNCATNCNTACCGACGGGACGCAATTANCGNNTNNGNGCCGAGNTTCACGAGTGCATGGGTNAGCTNNNNTATAATNAN NTCNTCTNTNCGTCAACCGCTCNTNGNCATNNCGAACNNNGNTATTGCNTCGGTAGGTCTCCATTTNACCCGCTCATGGC NNTTGNGCGGNCANAATCNTTTTCCNAAATGGGGANCTNTNCANTAAANGGTATTCNACGAAANGGAGNCAANAGGCGNA TAGANAAACGTTAGGAGAGCNGAGNACTGAGCCGAATTCTGNTTGAANTCANCCACNCGTTNCGAGGCCAAGGTNAGCCC CTCGNATCCCCTTCCACNACACAANANACTGANCGANTCNGACNGNNGACGTTGNGNGATTGNCTTATGNNTGNGACGGT CCTNANNAGGNTGATGTAAANTCTGGTCGTAGATNCNGCCNCGCAGNTNTGNTNNTANGTNTTTCAAACTACNTTNNGNN ACAACACTGCNATAGTNAANAGAAANANTGTNCGAGNNANNCTGCAGCACCGGATTCCGGNTNGGTGTNTNNGCTTCTGG GGGGTTGAGTGNNNTGTACCGCCNACGATTNGCNNANTGTCTTCGGACTGGGCGANCCATGACAGCTAAGTGTGACTGGG CNAGGNANNNGNGACATNNCCNANTACATATTGAAGNCACNATTAACAAAACNCNATACTNANTTNAATCTGGTTAACNA NCGTNCTATNTNGANCGCANTCCNANACNACGGGNNACACNTGTANNTGGGCTNGCGCNANNTCGNTCGACCCNGCAGTN TTTNNCGGTCCACANGGAGGCTATNGCGTCTCNNACNCCTCTTGTAACATTCACGAANGCCCCTTCAACCANTGNAGATN GACNCTACATNANATGTAAACACAGAGNTNTAANTGCGGTNGAAANTGNNNAACNNNCNCNNNANTGTACCCCATTATAN CGTGCGCTACGNCNNTAATCANGTNCTGNTTAAAAGGAANCCCGACCGANTNCAGGCGCTTGGAGNGAGTAGANCTGNNN AGCATTTNGNNNGTTANTGNTNGGCGNTNGNAGAGTGCGGTAGAGTTGTGGTACCGGCATTTNGGCATATCCGAGCGGAT CNNGNCCNGGTCGATATNNAANGCNCNNTGCAGAGACNAGAGNGTTACGGGCNNTACGACCCTCANTGGTCTTGTCTTGC NAGCCGGCTCCCGTCCGTCTNAACACCCTACCNGNTGCNTNNTCTNAANAGCGNGNCNTATTNATCTNAACACGCGATAG CNAGTGTTCGCNNTCNCACCCGTGAGTGTAGAGGTNCTGAAATATGCNAGNNTANNNACTGNCACTTNAACNACNACCCN GTANAGGNNTCCATNANNCANCNATTANGGTGGNTTTCAGACTATTACTCTAAATGACCCNCNTTTTTCCACTNCGTACT GATNCGGCCGGCAANCCTNGANACCTANNNTCATTTNGGNCTNACNNGGCGCTTAANTTCNNGNATCGGCTAAGNCNANC ANAGNCCTGTGGAATTNAGTCTGNGCTTCCTTNCATNAGGANGTNCGNGNCCNCNTCGAACGACATTCNTTATTTACANG NCTGANNCGGGGGNGACAGACNNANCTGTNTTCGNTTANTNGNTTANGATNAGGNNGGGTTAAANNTNGANTTCNNATGC CANTNGGNATTNAGTNGANCACACCACNNTNAATTGANAGNTNNTAATCGTGNTCAGTTCNCANGGCGNAGTTNTAGNGT GCCNNACACNCCCANCCACGGANCCGCCTAGGACCGNAANACCAATTNNGAGCNGGCANNTGGGGCGANTTTATGGGAAA TATNGCGTCGTGNTGAACCNGCCNNGNTCNGTCATCCGAAATTGATTCNCTANGNGTTNTGGANNGGANNAGNTNNGANN NNCAATGNCTTAATCNCANNAGNTANCTCNCAAATACNCTTACGCAACATNAGNAGCTNCATGAANAGNTTCTAGNCGNT TNCGAACGNTNTNGTNAATNACATNTTAACAGTNCNTGNAACCTGACANTTCCGCNNAACNNTCTCNCCATNAGGTGTNG ANGGCGTNNAATTCNNATAATGNGCCCCAAAATTTNACTANAANCTTNGGGACGGGCCCCANATATTANAANTNGGGCTT GGTNTTTGCAGGCTAAGTCAATNNCNTAACCGAGGNNNGTCTAAGNTTGNNGAAGGGTCNGAATNCCTGACANAGACAAC NNCCGGGCNAGCGCTGGCGACCTACTNNCTGTGGCGATAGCNCCCTNCNGTTTAGNACATNGAANGCTAAACGCTANTGA TNAGGCAACGNNGTGTGCAGTGCCANGGCTGGTTAGACGNTCCAAGTTNTTNNTTGTCCANNNGTNNNCTTAGNCTAGGG ATNCCAAGNTAACNTCNNGNGTAGATTCANCNTAGGCCNATTGCGCAGNCGGATNTTGNCACAACAGGTGNNGGNCCNGA GTNTCNGGAGCTGNCAGAAGCTCNNNACNTGGTNAAGAATGTAGCNGGNCTACCNTANGTTTANNNNCTGATNAAATNGG CGANNNGGTGCANGGTCTAGACNTTNGTAGCANATNNTNTTTANCTGNTCGATNCACNCTGNGAGCATACCCTCTCTCAC CGCGNNTNATNNANGTTCNNGCGTTNATCNTTCCGCTGNATGTCAGGNAACANNNAGTCGTTTCTGCNNNGACNCAANTG AAGNAAACCTAANNGNACGGCTAGNCACGCTCCNCGNGNGTCNTCGNCTTTTCCNTACCAAACTTNANNAGTNAGCAGNC CTCNANCGCGTNCAACATAAGTNCCNATAAATACTCGCACGTTCGCGNTCNNANCAAACTNTACNNCTCGANTGCCAGNN AACGAGCNTTTCTNACATCATCAGCANCNGCANANTGGAGCTGACTNCACCNCTGNAACCGGNNANCCNNATGTGCCNGT TNAAATTGGTTTACGGATNAACCTNACNNNNNCNNTNCAGTNCGANGCCTGNNNGTGTGNAANCTTNNACCGAACGAGGG ATGNTAGNCNCNGNCTGCTAACANAGACAGGCGTGTTCTNTGACNANGTTACACTCGNNTNATTNGAGGNAAAAATANTG GACGGTCTTNAAAGCGCCCNTAAATNGTNGAAGNANNCTTCNGGGNGAAAANNAGGGANNNATNNAGNGTGAGGCCGTGN GGCTCGTAGNGNNNGAGNATCNANGAATTANGAGGCTCTNGCANACGGTNCNNACTCATTANNGAATGTACCCTTNAATN NTANTCATACTATNNGGCTCGAACNNCTCCGNGTCCCNAAGGTGAANNGNNNATATGNGGGACGCCGNCCCTTCTCTTNC NACCGCTGGCTCCTTCGCTAANATTANGGGGACTNTCGNCANGTGCGGANGAAAGGAGTNTANATGTAGATANACACANA NGTGTNANGGNTTCGCTCGAGCNTCACNTNAGCCNTANNATNGGGCCGTAGGATTAACTGCNCGACTCGCGTCCGNTCTT NGTACNGCNCGCCTGNNGTCCNGGTACTCCAAAGTGGTTTTCCCGACGTACGCCANTGNCATTATTCCAANCTNCCGTTC CCTTTGNNGCTGGGNCACGTTNAGNGGCGGAGTCTNGGCTCNTNAANACTACCCGCCCAGCGGGTCGTGCTTTAGGCNTG GACNGTAATTANNGTGTTAATGAANTNTCNNTAAANTCNTCGGCNATCANCNTACTTGTACNGCNTNTACANAGCGNTNT GATTNACCCTCNTGTGTCNCGAGCGAGCGAGNTCAGACGNTATAGNNTNGGAGTCGGAACAGNGAGCTTGGATAGATNNC TTACNAGCNATTNATCANATGTANGGGCGTANNNATATTNNTGGGTAATATNAGTAACGATANTNGNCTTCTCGCAATAG TNCACCNNCNATCNGAGGNAGCNCGTTGATCTNCACTCNCNTTAAGTNTTTTAATAGTANCAAGGAGTGCTTNAGGANNG CGTNACANCTAAGCTGAANCANTGNNANTCTCCNGCCACTTTNNATTGTAAATGCNTNAGTTATTGGNGNNCATTCTAAA GAANAGATAGAANAGANNGAAAAACGAAANNCGNNTNGGNTGGCTCANAATNNANANCANCTATNNAACTGANNGCACAC NCTCGAGCTANGCATNNAAATNCATCGCGCACTTTTTGANAGGGAGTNGATATTACGGNCCNNTNCGGGCGNCAAAGGGG TTGTCCNGCNCNGNANCTACCTTCCANTCCGAAGTANAGTNGGNCANAGAAGAATNCGAGCCNCTATCTTGTNAAACCTC NGTTAGATAGTACGANNANNATGAANTNNCGGNCAAACNCCNCTAACTCCACNNGAGTNGGGGGTAAGCCNATCGNGATA GGCGCNATACGGTTNTGTTCTTGGTCCCNNTCAAACACCNGCNANNTGTCNCGCNGATNTGNNNGNCGCGTATTCNCAAT NAGAANCCANACATATATAAAGGTANAACTTCTTTGGTAANTCGCNTCTCGNACTCAGNGGCGTANCNCACCNNGGANNC NNTNAANCGACACTCCCTTNTNNNAGNAGCNCTTGNACAACTACATCCNCCTNAGANNAGCNNATNTGNATANGCATTGT NCGTCTCGGANNAAATGNNTTCNANTCACAGNCGAANTAATACATACTTAAAGCTTATGGTTNTGNTNNATGGCTAAANN TTTAGACNGCGNCAGNATNGNCCGCANAGTATCTCTGCTACTGGAGTGGGACNACNNNAATNGCNNTCAGCANNNNNCCA GCTNCTTACACNCGATACCTGNAACTNNCCACTAATTANGAACCNGANNNCGNANAATTCNTGACTATNNNAATCCNNAC ANCAANTNGCGTGGNAGGNGGGTAGNATTTGACTCCATNNGANCTCAGCCNCNGAGCTNGANNTNGATTTGTCTTGNAAC NATANCTTNTATGGTCNTCNTCANGCATCCTCATAGGNTNCCGTTCAGAACGCTTGCGAANGNGCTNCGATTAGGCATNG ACCCANGTCNCGNNATNTANTCTGCNGTCGCAGGNNCGCTCAAATCGTGTGTTCNAGNNTGNTTTNACACCATTCCAGAC TCAGGACTTNTTCGGGTTNCCTGNNCGTNCTCCNCGTNGNCCNATNGAATGCTNTAACNTTCNNACTGTNNTANAAGCNG CNGANAACGCCCNGGCNNCTANTCAANNATTAGGTTANCTNNTTNTCNATGNCAACNNAANTACANCACTCTANGTACGN TCGAANNGNCAAAAACGTGGCCNTANTGCACNTANGCAAGGAACCTGTANTTGGNTNANNGANGTANNANCNCGANGCNN NCGANGTNCANAGAGTNTGCCTTNCGTNCATCGGCNCGNAGANGNCTNGTTATCNNANCGACNNGNNGGNNNGNCNGTAT AANCGTGNGATNGCCANCGACTGTGTCANNGCNTTTGTCGNGGCNTAACNTATTCNACNCACCCTNNCANNTGGTGNATG NNTANGNAAGNAATACNCTTNTTTACCAGCGNCAGTNNNCTAATNNAAATTCTCNGANANGACNNTANCAGCNNTCNTTN NTCTNGCACTNGGAGCCNCGNTTNNAGTTTCAGNGAGAGAGNCAANTCAGNCGATCNGGACCGTTCGAAGGGTCCGGATT NNNNCNCCTTTATGCANNGAGCANCCGCCGACTAAACCACTNGTANCGCTATTTNTTAGANGCGCAACANCGNGCCAANN AAATNCNTAGACATCACCCGAGCTNAGACCCATGNNANCNGAGCNATATACCANGNACAATCTACCCAGCTTGNCAAGNC ACTCNGANAGANTNGGAGCACACNGNTNNCAANATGTANAGANTCGGCNATCGNTCCCCNNANGCTGNGGCTCGCCCTTN CACTGTTTGTCNANNCATNNGGNTACAATGNNGCGCGGGTTNGCGTGATANTNANGCNCTGTCANCTGGNTNGNGCCNAT ANTCNNNNGGCAGGNTGCGANACAANGNATANTGGNAGAGNTNGNNGGGCTANTAGGANTGCGTNCGNCTGCCTGTCGTN AACTGNGNTTTTCTTAANGTTTTCCNTCCNCACCGNTCTTTTNCATTTTTACGCGANTGNNTTAATTNAGAACGANCATC TGCAGGATCCNAATNNTGAGNTTTNAANGAGGNCCGTGTNTTGCCGCGANCAAGCNCTCTTGCTGGNTGGGNAATNGGNT AGNAAACTCTNNATNCNNAAACNGTGGTNAAANNGTTCNCTCAATCCCNNANCNCTNATTAGNNNCGTCCTNNNGGTTTT NACGNCNTNTCACANCGTAACCTGATCGTCGGTNGTNGTGCNCGCGATTNNCNCTNGCTTCTNGGTTNCAGCTAAAANAT GNGCTNGCTGACCNCANTCGNGGNNNTCTTACTGAAATAGTGAGNAGGAAATGNCATTGNCCTACAGCGGGCAGGCNACG CAGGGCCCTNGNATCGGAGCGTTANNACANAGACGCGCNANACANACTTCCGNNGCAGCATNNGTNTGCTGNGTAGAATG AAAGGTTAAATNNNTGACTTNACGTNCTNTNNCGNNCACNNTTACTGNNTTCCNNNGTTAGAANTCATAGCCNTTANNGA CNCACTCGNTGTATCTNNCCGCGTNATGGTAATGACTGGGAGNATTNCAGTCGNCAGCCTNNNGCTACTCCANATCGACG AAGCAAATNNCTNGGGANTCCNGCTACGNNGCNTANNTAGTTCATAGACGGANTNTACGTAACCACCATNGCGGCGAANT GNNGTNTGANTGTANCTTAACCGAGCAAANAGGNTTNAGTGNGAGCGCATCTNGACNNTCTGGGCCTGTGCAATCGGATG TGTACGGGNGTTCNNCGATNCATGGNGTTTAGCCNTCCCGNCNNTCNGACTNTTATANAACACNCNTNCGTACGACCGCA GTCGNTNGTCAGNCTTTNCCCCNTTGGNTNNCGTTGNGAATNCNTCCGACGNGGTGTGGNTNNCGTGCATAGAGNTACAG CCATTTNANANNNGNNAGGGGAGTCTTTNGCNNNNTNCCNGGCACNCGNNCTATAGTCCCCGTATACGCCNTGACNGTAN NCAGAAGGANCTTATTNTATTGNCCNCCANGNTCATAACTTAGAATTATNCTCAACNGNGNCTCNAANGCCNAACNNCTT CNATNATGANNNTAGNTGTGAGGCNATTACTTNCNAGANATTNNCCCCAGNNATGNTGTTGACNNGAAAGAATTTAGTNC TGNGAGCCCGNTCNCGCTCTACCNCGTCGTCCGNTTAATGCCNCCCNNTCTGNGTNGTNCNCTGGGCAAAACTACGGAAG CAGATGCNAGAGCCGACATTCAGNAACNTCNNTNACANCANACNANTAATGNCNANANTGGNGCAGTACANAGGNCNCCC ATCGGNGNGTCGGNANTGTATGNNCCNAACGNGTGGACGCTNANNTNNGTTCATGTCCCNGGCTNNATTCTNGGNGGGNT TTCANCGCNAGGCNACGNTCCANNCNTTCCNNNCANNGGTCAANACGNCTTNATGATANTTCGNNGTNCTNGCAANGTCA TTAGGTGAAANGANNNATCAGCCGGTGCTCGAAACTTTAANNCCTTGACTNTAACTANGNNGNNNCGGGGTTTTTCCNGA ANNATTGCTCACGCCTTACTTANNNCTTGATGTGGACGTTTAGGANGCGTTNTGNAAGNGACCTGCACNNCCGGNNGATT NACTAGCCTTGCCTGTTNTCANTCAACTTGAAATTACAAACTTCNTGACGNAGACAGTAAAGNANGTCNGNCTGANGCTC GAGGGAANCTTATNCNCCNCCCGAGNTNCNTNTGNCTCGGNATNGTANGCTAACTCTNGCAATGTGTAACTACGAANNNN TGNTGNCTGNTNTANCNTCATACCCCGANANAGTGNANTTATATGGCGACCTGGANTATCNACNCCGCTANCAGTNGNAA TATGACTTTTGNTTNNANNATGNAGCATCGGATGNCATTAGNNGCTCCCNATGGGNTAGNGTANTGCTANCNNTCTNTGN NANATATGTAATATGNTTANNNGNCCAGACTTGGCAAGTTATNNAGNCNGCTTNGCNATCATTGGCNANNTGANGGAAGG NTANCCGACGTTCCAGNNTANGTCGATCGCGTAANTNGGAANTTCGGNCCNAACACTTCGCCTTTTTCTAAAAACCCACA GTGCAAANCCAATTNTNACATTGANCGTTNNATCAATTTATGNTACGTCTGAATGTCGTCTCNCGNGATGCANGTCTNNT TANAGAACNCAACTANCTCGNAAGNNNGGCGCNGTTNNANCGNACTGAATTCGANAGNGANAGACGGGNAACNGTCTGCN TCANTANCATNTGCTGCCGAGNNAANCANATNGCANGTCCGANCATGCNTNGNCAGACTNAGTCGGANCTCAAACCNNGG ACNCATGNTGCNCANTGNTGGNCATCCANTTCGGCACTCANGAGTGGNACNNCGCCCGNTGNTNANCTAAAANTGCTGTC TCTGNCATCCGTACTNCGCATNGNGGCGTATCNTCCNGCGGAGGACANCANTCATTCCTCGANGCTGGGGCCCTNANGCA GNAANCTATCGGGGATNTGATTTTNATACNNAACAGTCTGTCTGGAAGNGGGNCANCATTCTNNCNCTTNNAANATTGCT CGACTAATCGCATCCTGAATNGGTTCACTAGGNCATGNCNCGTNAGGCCNGTNNTCATACTCCGAGTCATNCNGTAAGGA AGGCNGCGTCNTTNATAGCNGCGACGNTCCTTGGTCNNTTGAAGTCCNACCTTGGTTANCNACCATATCANTNNACTGNN CNTCTTAGNGACCANTGCAGTCTGNAGGCGTNTGCANCAGNNTTTNGGGGGGANGGAATGGTNCNCNGTCTGATGTCTTC TGANTGGCCNCTNACANNAANCTATNGGGAGGTNNNGTTNANNAAAGNACACNATCCTTAGTCTCCNTGGAANTANCTCG TCTNGNANGTTNACGCTACCTCCNNCTNGTNNNTCAGNCCTNAGGTTCNTNACATCGNNCNTNATNGTATCAGGTAATAG NNTATCNNACGCATGTGAGAAGGCAGNGTNTTGGANGCACNGNANGCGNTTGCAGGTAANANCNTAGGANNACCAGACNG ATANCTANGGTGANTGAATCAGTNCAGCCNCNGCACGGGGCTANGTGGGACTGNNANANCCANTNTCGCNTAGTCGANNN NCGCCTCGCANTGANNACNCNNACATACGGCGCGNCACCAGGCTNGCAGCGCCCCAATAGTTNGNCATCTTAAATAAACT TNANATGNNGTCTCCTGCACCNCTCGTNGCCGANTACANTCCCCNGGACAANNCCNNGNNTAGATTCAATGCNNTTCGTN NTNNANNCCNCCNNTATCTAGTCTAACAATCCCNCNCGGGNCATCGCTNANGTTCANTCANTTACTGCAGTANAAGATGG GCNCCCAGGACCTNATNCNCGAACCCNAGTCNTGNNTATCGTGNCNAGNACGTCCNTTGAATNTCGTAGNNNAGGNGGGC NNNNTGCTGNNACNTTCTANNCTNTAAGTNCGNGGTTTNGAGCTCTTGNNNNCCNTATANAGTCTTGAGATCCNTANCGC NGNTNGTGAAATCCGAANACATTATNNAGNGTCNATANACGGGTAGNATNTGNCGACCCACTNGCTGNTAGATGATNTNN TTTATTAGCGACACCGGNTCATCCNANCGGCACCGAGCGTNAGGGCCCTGAGGCCNGNNATGTACAGGATNGGAGCCTGN CTCTAGCTNGAAGCACANTAATGCNCGCCACTCCTNCCAAGCNGAGCTGCGGGNNGGNCCGNCTCGATNTCNAANCTNNC TTTTGACNGGAGCNTCAAGCCGNNANCCGACNGGGNNAATTGACATGGTATCCGCNNANNNACNCCNGTATTTNTNGTAC TGGCNGGNGCNGTNCGNNTGTNATGANNGGGGANTANTACCNTNCTTGNTNTCNCCNCCNTNTGCAATNCTNNNNGGTNN GGANCANNANTANNCNGCAGNTTACNACAGNCNNANCGATNTNGGCANNGGNCNCNGACAGCTAANGNCGCAAATATNCA ATNCTANGGCTACNAANCGGCNAAGAGTGANGTGTNANNNNANNCCGGTNGCCGNAAACCTNCGNGGATTGATNACGCGC AGGAGACTTTCTAAGNTGNGNGGGTGNNTNCGNTAGACANCTCATNGCANACTTTGGTGGTGTCTGGNANTCGAANGAGN NGGGNTANTCNCNTCNANCATGNCTTTCTGGCTTNNANGANCACTNGCAGATTTANTANTATATTNTGTANGCTATCGNA NTNTAGAGGNACGCTGTNNNTTCAGANACCAAATTGCNGTGACCAATTGAGGNGNTTGAATTTCTCCANAATGGTTCAGN NGCNGNNGGNCGACGTTGCACNTAANCCNCGATGGTTATTCNGGACACTGNCCTTGNCGNCANCAACGNAGCCCCTTNGN GCTAANGGGCCTCTACNATTAAGANNGTNAAGTNAGCTNTTATCATACTNTCGNATCCATCGGACACCCTAAGTCTTCNN GTCTCTNTACGNTCGATTCNGGANCGNCNNTNCNGANGTANNATGCNNTANNNTTCCTGTCGGCGNNGCCTGGGCATCTT NGTGCGNGAANCCAAANACTGGNGATATTCTCGNAGTAGTNCGNNTNATANGNGCTCNAGCCANCTTTCTAAGGCANCNA TGTNTTTTANAGAGGCGATACGTGACTAGTGATATTNAGAGTACTTANGGAACNGCGNACGCGAATNCTNTNCAGCCTGN GANNCTNGGGNNNNAGACTGNGNGGGTANTNCNNATGGAACATTNGGTNTTNCNNCNTTAANAAACGAGCGTANNTNATG CTNNNNATGTCNNACNTGNAANGNAAGGAAGNCAATNTTNNGAAGATCNCAGTTNCATAGAGCNCAANCAGNATATTNGA TGGCAAGCGAANGANCGTNTGTNCTGTACCNGAGCNTCGGANTCGGNANGTTGACNNNNCTAGACAAANATNCNGNCGTN TGCAGNTGCTAANCNAATGCCNCTTCANNTANCCCGNCTCGTCAGGNGTCGGAAAAGATANCCAGNTAGGGCTTGTTGNN NATAACGAGCCNNTNTGACNAGAACGTCCAATTGNNCGCNGGNGCANCCTCTAGNGCTNTATANANACGGGTNTNTNACC NAGCGCTCNCTTGANAACTACANCTGACACNCAAACTANTCTGNTGTCACCTTGTGNCCAANAGNTTAGTCNNATACNAC NGTCCCTNGGGTGGTTATATTCTTNCATCNACCNNGNGAGCCGNCTTTTGGACNGTAGTCCNTTNCNTNNCANCNACTGG CCGCTCAGACGCANCGGATNCANCTNTNACCGCTCCANCANGCAGTGATGCCNAGNCATNATCGGCANTTCTNCTGGATC TTAGCCNGCCCCNTGTTAGNNNNATNAGCAGNAGCCTNNGAGGANNTTGGGNTGTTTGGGGNATAANTCCATGNGTGGTG ATTACNGNTGCAACCACTAGCANGATGCCNCGGNCATNGNTTGCCGCTAAGTTTAGANCNGGTGACTGGGGGTCTACGGA TAGACATGCTNGTCTNCCNTCCANGCCCNNTATNCTACAATGCCTAATCGAAANNGNGAANGTGTTAGTGAGGANGCNAA GCGAGNNGTATTNCGAAAANTCGCCACGCCCAGCNAATCTNGTTAGCGTGAATNCCTGAGANNCGNANTANATCGGGATN GANACAGTTNTNTAAAAGGNNGCAAATCTCNGNATCACNNNAANATGCGAAGGGTGATCANTACNGCACNTNNCGGTTAC GTGANCGCAAGCGGGGACCNCTNACTCCANNATNCNAGATTGCATGGATGGTTANACTCNTCTTCNTCCAGACTNGAGGG GAGTANCAGNNAGTGCGTGACANCCGCGGGTTCACAGGTACAAACACANNNAGGGGCNGGTNCCTACAATCNGAGGANNA ANACACTNTCATCCNCGGTGCGNGCGCAGGTGNTTGGNCTAGGTGNNAGCGGTTTCGNANGAGTNCTGTNTNAGGNNAGT ATGAACTTGCNCCGCAATNTCTTGTGTANGGANAGGTANTCNTATAGAGTCGAGACCNCNCNNNNANATAGACCTACNNA CCCNNNAAGNTANACATTGAGNNGCANATAACNCNAACACTTNGNCTTAGCNCGCCTTGATGCNTNACTTCAGANTTCTA CACCTANNCNGCGNTNNGACATCNTGTNTTGGGNANGCNCAAGCTTGGGTCNTTCTTTATGNAGGGNGAANNCGNNCTNA TAACCNANCTGTGGGGTGNNCTCNTCACTNCNTAAAGGCCCGNNCNGTTCGTAGTTCGTATANNGGACCATGGNGNGNNA NNTTTNCCAGGCGNATATGCANGTNGAAATGCGTGAGTNTAGTATCNTCATCTGNCCGCCGCCAANTTTAACTATNGNTG GTNAAGTGTGNCCGGNCCNTGATCNTNGTTAGGNAGNCATAACNGCTAGNTACTTANTNATATGTANACCGACTAGNGCC CTTTGCGANTAACGGCACCNTGAAGTCNTGNGCGCCGANGGNATNCGNCNGATTNATNNNCCATNGGTCCGAANNGTGNN NTATGNGAGNNTNCANGGTAGTTGTTACATAGGTGAGNNNTTTCNAACATNCANNACGNTCTNGGTAACGNGGGANCTAC ACCACANNGCNANNCAANANGACACNATACNNCGNNGGANAATNACTGNNACTNAATCTNAAGACCATTNGAACTGTCCT TAACAATGTTGCCNGCCGNGGAAATGAATCCCNGATGNGGNGTANNTATTTCATGTTNGTNTGGGATCATCTGGCCCTCA GTNGGGNCACNGCGANTGCTCGGCCCNNNTNCCCGCGCAGGNAGTGCAGATTTCTGNAGGGCNANCAAGNAGCCCNNGCN AGTTGGCCGTCTTAGGGACTTATNATGATCTATGTATTAGGCTTCGGNNCGATATTNNTCNGNCNAANTTTACTGANCTG TATAACTAAATCNAGNTAGNNGGNCNGTNNTGTAGGCTAGCTCGCNANAGCGNNGAGNGACCCNGGCGTNATATNAGTTC GTNTCNANCTNAANGTACCANGTTANACCACTGANAAAGNTCNCNCNCNGTGAGCGGGTATGAAACTGTNNCCNTGCCGG ACGGCCTGANCATAATANANACGANGTANGAGATNGTNGCAGTCGGCNCATTGAAGTTNTCAAGTNCTNNTTNATANGTA CGGGNANGCGTCANTTACCTGACNNATAGCGAGCGGGNCCTTCCGGAGCGANNANTANAAAACTTTNCTTCCGNANGCAN CCGANATACCCAGGNNTANNCGTTTNNGCCNATTGAGTTCATGAGAGCTNTGAGTNCATNACAGGCNACCGTCTAATCTA TTNGANTGNGNGNTGCTNNCNCACCTCNCTGGGAGGGGCGCNGNTGCAGATTCGTTANGCTGNAGGTNTGNNGATTCCNN TCGGGGACTGNTTTCANATCNGATTGCGCANNNTTCTGCCTNCNATCATATCCNNGGGTATTTNGCTCNGGTAACGNCGA NNTTANAAGTNCAGAAACGTGNTCTANNNNNATAGGAGAAGGGAANNNGGNGTTGCGGNTTCTATTATTCCNTTAACTGG GGGCCGCTTACACGCNNTNCGAANNTGTTTCNTTCGCAANTGNTGCCTGCATNCTGNGATGTNNGGGACNACTGTNACNC AATNTNGNTGTATCATTACTNGTTTANNATNGGAGGCCGNTAGNNNGNACANGGNAAGAAAGNNACANCNGNCATTGGCA NTTNCANNTTGGGTNAAAAGCAAGGGGTCNACNTCGGATGGCACCCAGAGAGNGCCCGTAGGNTTAGNNGCNAGNTAANA TNGNCCTTNNATNCAAGTTCCANGCTNACAAGGTGAGNACCTCTCNCGCNGGNTGNGCAGNNTTNTGGNNNTACCCAGNC GGNGGANNAGCCAGGNATNCATCAGCCGNGNAATCCCGCTTNANNGGCGNTTNTACGTCCAACCNNCATNNCGATNNGTT TTTCGNGGCGGCNCAANTGNCTTCTNGTGGCGNANAAGTNNTTANTCGAAAGATGAACNACNTTNNGGTTGNGCNTGGCG NCTTCTAACANACNAGTCGNCAAAANGCNCAATCTATAAGANTNNTGNCNACACAAACTTAGAAACTCCGNGAANNGNCT AGATGATTNCNTCGTCACCGNAGCNACNANCAGNNCCAGTTAGCTTCGCNNCNTTTCTGAGANTNTCTTAGCNACCTCAT GGGAGNCTNGNGGGANNNTTGNGCCTGANNGACACNTAGATCCGTCCCCTNATCGTGANTNCCNATNGNNNNCCCATNTC GNNGNCATATAGTGGNGATTCNNCNCTGGCNNANGAGGTNACTNTTATNGAAAGNCGCGCNANCTGGAACGNACNCANAN CTTANTAATNGNANNTACAGGCNGTAATCGACCGGNNTNTNTGNCGGCNCNAGNGCANGTCTNGCATNAGGACGCAGGAN GANNTCTTGCCATAANTNNGANGCNTNTANCNCACTGTANAANACACCCNTGTGNNNCGAGCAATCCCTGNNGNAACNAG CANCGGAANNATGCATANCATCCGTTTAATAAGCGGTTNGCTATGGNTCCGACNTTNAGCCNTCGCCCCNGAGGCNGGCG GATANCGCTNNGTGTNTTAANCTNNCATGNTTTGGANNCNCTTACATCGTGNGNANTTCGGTANTGCGACCANGATACGC NAGTGGGGANNAGTACGAAGNACNNGATTCAACGCGGATNATTACNANCTNNCNGNCTNACNGNCAGTTGCGTCAACGAG GNCGNAGGCTCTCTGGTAACGTNATNGTNNTAGNANTCAGACCACAACNGNCCTCGTTGNACGTNCTCANCTTGGCGTAT GANGNGCTATTANCATTTTTNCTGAGAATTCNAANAGCACNGCCGTCCGCTATGGANGNCGNNNNAGAGACTATCGTCTN ATTCTGNCATCTCAGAGTTATNNCCGGTCNAACACCTCTNGGNTGCNACNGCTANCAANNGTNGTAGCANTTNTTNCGAT TCTAGNTNNCTAGCNCANCNGTTACCCTCACACTGTCGNNNTTGAGANCNATACNANANATNNCGGNGCAGACGGNNGGT TNNGTCAGAAGNCNAACGCTTTGNNAACTTCNGCCTAGCTGTGNTGGTCGCGGGTACGTTGNTNNNTNTNCGNCTCTTCA TGAGTNNNGCCGNNAGGTCGNCACATGNACCNNGAAATGCGNNCGNTTGNANTGCTANGNNTGAATGNTGGCGTAGNTGN TTCGNATGTCCGGGNANGGACTNGATNNATTGGAGGGTCACNACGAGTGNNGATGTCTTGGNAANCAANGCCGATCTTGN ATTCNCAGACGCATNGGNCTCACCNNTGNNCNAGACNTCAAAGAGGGTNTNTACTTTGNCTCCGCGCGCNNTCCACACCC GTNTNGNTGTCGGTGTGAATTAGTNNACCGTNGCGCNTNTTNNGNCAGGTATACTGNCTCGTTTNTCAAGCACAAGGGNC TTTATCGCNACCNGNATCGACGNTNCTTTCNGNTGTNCNATNNAATCNAACTAGNGATNTTACGTCGACTTCCCNNNTNC CNAGTAGNTGNCGNGANNGNNATAGANCTTGTNTGCAACNGNNCTNGGGACCCCATTCGCCATNCNCTACAGNCATAATC ACCCCATGCGNAANTNANTATCNTGCCCACGACCTCTCGGCTGAAAGTAGGGTTCNTNTANGTNAAANNATCACNNAGGA CAGCCAGNGGCGCTACGAGCGGANCTNNCTNCTAAAAATNGGGGANAGTNCTATGTGTGGTAANNTTANCCGGCGANTTT TTAATACNCCCNANTGAGANGGTTTGNCNGCATNTATTCNNCANGAGGTNTACAAGCATGTTCNANNAAGCANAGCCCAC TATTCANGNCANTGCACNTNNGGAAACGATTCNNNAAGAATACAACCGACCACATTTANCATGNNNAGNTCCCTTCTCAT CCANANCCANAAGACTCTCNNNNCTTGAATNGNCGNNAAGAAAGCACTTGCNCNNGNNGGNGTNATAGNNNTTGCCNTGT CTTGGCTGGCCCCNGNNACANTCGNNNANCGAGGGCATGGGGAGTCNAATGNCGCCGGTAGGNTGCGGATNNACNGNCAG NANTNTCANTAGAATCGGATCNCTNANACGANTGGTCTAANCTTCNTNGATACGCCTNGGNGATTGNGCGNAGATTAAAA NCNCGNNNATTCCGGATACGNTTTATATTNCNCNNGGATNANCCCGGCNNNCGTAGNGTNNAACAGAGGTNGTTTGANTG GNTTANTCTTGATCTGCTCTCGCAGCNGGTNNNGAANNTCTCATNAGAAACAATAGCNNANAGCNNAAGGACCCTTCGTT CTANAGAGCNTAGNNNATTTANTCTGAGNNCGACAANCCTGNATNGNTCGATTGGTACCNACCCCGCAAGNNNCGGGANC GCGATNAGTNGCCTCCGNCTGANGCCNCCGNAGTCNCCTNATTGNCTCNAACNNACGNCATGTNCGGNTNAATAGGATTC GTCANAGNTTTNCGGACCAACGTAGTNTCGCAGGAGNNANNNTGCCNAANTNTTGGATAATCCTTACTNCCTGTNAATGG ATGGGNAGCNNGCGCNNAATGACAACTNGGNATTCCTCNNGGTAGACATGNNNTGGTNTTCNCGNNTTGTANCNATCGGA CACTCCAACTCCGTCTNTGGNTTTAGATNTCTATCAGGGAGGGGGCCCNATGCATCCAACTCGGACAACCTTCCNTAAGA NNACGTTNACAGNTATCACCANAAGTCAGTNANTCTTNAGNAGTNTATNGGNAGCGCNGTNTTNCCNCCGNGGCNNTACC GGCGCGNTTCTCTNCGGGNATTCTTTGCCATTNCCGNNTCCGCGCNAGCTTTTACCAAGNTTNAACGACNGNCTNTCCGG GGCCACCNTGCACCNNCCCCGAANNAANCNANACTAATNANCACGGCAGGGGGCCAANTCAGGTCCANNCTATCTCGCCA ACGNTNTCANNCNACNGTGCGTGNAGCTATGTGTCGGNGTNGGCAGTNNTTGCTGNNTCAAANTTTTNAGGGAAGGTATG ATNCANNCNGGGATANGCGNCGGNTANACCNGACTTAGANAGAGGTNATNGGACTTATNNTATGCCGNTTGCTGNGNTGC NCGCATATCNAACCGGGTTGGTATTCCGGNCTACNTAANNNNTGCTTACNNANAANTTNNCTGNTTGNGNCCNACCATAG AAGAACTGGCTANTCATCGTACCGNCNAATCNAGATTACCGAATAGTATGATGTCNTNGTNTCTNAGCCTCAGCTGTGGC CGANCNCTGTGCAANCGGCGNNNACGNGTGGCNNCNTTCTGGCGNNCCNTCCCNGNGCGAANGNGTTACCACANCTNANN CAATGCNNTCTTNTGCNCTNTATAGGTCTTCCGGTCAGGCATGGGTGAAGNTGGACAGTAGCCCNCTTTAACNGCCGAAA TCGCGTGCNTGAACCAANTTCCCAATCGTNCAAATNNNGNAGNCNCTGTAGGTAACACTCTGGCGACCGNAGNACTNATA GCACCTCNNCNCGTGCGAATNTCTNCTGATTANATNCNACTANCGGAAGNTTTCANGACTAACAGGNNNCAAAGAATTCA NNNNANCTTGATGNNNNTNTAGNGANTNGNCTCGNNNCGNCANATTGGGACCNCTNCTGCTTGGAGNAGNGTTCGCNTAG ATATGCTCNCTAGGCGAGGACGCATNTATANCTNTTCATNAGTAGNAAGATCNACCACCTGCANTNNACCCNNCATANAG CGTCCNGATNNAGNTTTCCNTNTTTNGANGNNANCAANNCNCANGGCNANNGCCTCTCNCACCCNTGGANCTANNGTNAA CTNCTGCNAAANGANGATAGATGNNTCNGGGNTACCGCGNATCNGNNNCAATAGGGAGNTGNAGCTGTCTCGNNGCATNA ATTCCCATGGCCGCAACTNCCGNTAANTACCNAGANGTCCCANCTTGNAAACTAAGGCTTCCGCCGANAGGNGCTNNTTN TTNGCACGAGACAGCCTTTGGTACCGNTTNAGCANGGTNTGCNAGATCCCGGNCCATGTCTNANTACNACTGCCCTCANC AAANGNNTGNGGNGACNTNGCNNGACCTGNATTAACACNTGTGAATNNGTGGCTTAAAAGCNACCNAGTGNCNGGNCNNT ATCNNNNGTGTTNNTGCNGGGGACNNTCCTCGGCCTTGNGCTGNCGAGNNTNCCGCAACCTCNCNANNACNANGTTTAAG NTTNTAACTGCNATAGNCNNCCAAANTCNNCGTNCGNGNAATACAACTNGGACANTNGNTNNACTACCNANAACTGCGNA NNACANCTGNCNCTTNCCTACNAGAGNTGCNTTCGTNCNNTCATATTCNTNAGNTNNNACGACAGTGAGNTTCCGNNAAC TCGGCGNCTNNGGGAGNATGCNCAGGNAGNNTCCTCNTATGGNCNCNTGCANCCAGAANGANCNATCCNNNAGGAGTGGC NCCTANTNTACGNGATNTCNNGGAAGTGGNCGCATANNGNCNACCGTGAAGGGANATNGNCTTANTGNGTGANNCNCNAC NCTGTNNNANNCTNTGACCCTCAAGTNGTCAGATTTACCGCTTNANTANATCCCGATNANCAATTCGTAGGGNCTAGCGT CTTNGNTNAGATCTNNGGNAAGCCTANNNGATNNAAGNGTNGCAGCCCCNCTCGNNTGCTTGGTTGCCGTCGGCNCAANG TCCTCANTANNTCNCTAATTNNNGGCNTACCGAGCGGGTNTCNNATNNCCCTGCGCTCGACANAGGCAGGTNAGNACNNG CGNCCTANTANCGTAAACCCNTNCNGNNNTGGNGNNTAGTGTACNCGNGAGNTCATACAATNCGCNATNNTTNNCTNCCT CCNGNNNNNNTAANTGNANTCCNACNAAAAGGACANCTGNGACNNCAACATTATAGCNTGCCNGGCTCNNNCGTTTTAAN AAGCNACGCNNNGTCNGGCTGCNAGANANGTCTATCCAGACNGGCGGTGTGNAATCTGNTAAGGAAACNATGATTAGGGA GCANNAGTGNTATGAGGTCCTACCTAAGCATTGAAACCNNNCAGGNATCTNNATTCAATNGTTTATCGCTANCCAAGNCC TCNAANGANTNTATCCNCTCCTNCTTTNGAATCGATAAGTTCAAAGAANNGGGTNCGGNNCNNACNGTAACGTNTTGNNA NCATTCNTNTCCNATGNNNGNTGCNTCNATNGNCGACAGGGANCAGNGANGTNACNNCGACAGGACCNGNAAGNNCGTAN GCCTGNCAGGNTNNAAACAANGGGTCCAACGGTTATTCNCCATNACCTNTATCCCNCTCNGTANACGAGANGGGTGCNAC ATAATTAGCTGNTTNANNGAACNCTGNTGTGNCACCAGAGTACANTCCGGNGNCNGAATNTAGNTNAGNCGNAGAGCTGG GTGATCGCAGGANNTGTANCNNGTTTNANNNNTCGGNCGCTTCTNNCCAGCTCNTTTGACAANNGNATGAATCTANAGGN TAGNAAATNNCTNNGTNAGGNNGTTCAATGCCNATCNNAANCAACAATAATAGTTAACCACNNACGCCTTCGATCGGNNT CCACGNTANAAAGATTCTGNTACGNTCAGGTNGCTNNGGANNGAGNCTTNGCANANCNGNGCTGCTGCNCAAGTAGTNGC CANTACCNCNNGAGTTGTCCCNCNTTNNTNGATTATCNTTCGATCATNTNNCATTTNANCGTANAGACNGNANNTTCAGT ATGNCATTTANGNCGGGGGNNCCGCACTAANNAGGTTTTCACCTCGACGNGANATNNTGATANNNACNTCCTANGCCNCN TAGAGCTATTAGNNTNAGCANAGNCATACTCACNGNAGGCTNCAAGCANTCCCTNCNAAAANTCCTNNCTATNAGAGGCG CNTGGCNNANNCATGATGACGNNNAAAGGCTGGTGTACNNACTCGGNNTTANTTAATCAGTGTGCCAACNGCTCGNCTTN CGGNTAACCTCGTNCNCTGNTGTGNTCCAANAAGNCCCTCTNNNTCANATATGTCTCACGNATGTNCNGACNTNCTANCA TNGTAGAACTTAGCCNCCTACNCTNCTNTTNAAAACANAGCCCACCGAGNCCACTNGCNGCCTTCTTNTACCNANNNCCN NTNCTGTGNGCTGTGNNCAGANCNTNGCCNTCGGGTCCGNTGGCGNTNNCNCGAACCCCAGNNACATCNACCATNCCCTN TNAGGNNNTGAAANNGGGTTNAANGCGGCTNAATAGNTANCNTNANNNTCGACATGGAGNGCCNANTNAACTATACCGCT TANNNTCCCGATGTGAAANGNACCACCGNAANTGGCAGAGTTNTTNANCTTNNGCNTNTCCGCTGNCGCCTGGACGCNAG GTGTCGGGATGNTNNNTAGNGCGTTCTGNTAANACGGANTNGTNCTATANTTATCTGNCGNGTNACGTGCCCCNATTTGN CCGNGCANANTCCNGGACCCGCGAAGAAGTGTTCCCNNNATTTTGTATTATGNAAGACACGAAAATCNATNAAGAAGCTA TTTNNTNGNCGCGTNCNANGCNANTCCNCNGGNTGTGAGAGNGNATCATCGGCTTCGGGCCNGAGCTTCNGATANGNCTA GGTAATGNANATCNGCNTNTGGNNATACNGTNTCCTNACTGNTAGAGGTTCNAGTCANNGCTACGACTNNTTAAGTNATT AANNCGAAGTTCGTGTGTATTATGNACTATNCNTAAGNGCNNATTGTGTTGNCGANATNAGNTAAGCGATTTTCNACCNN ACCATNGNANCATAGANCGCCACCTACGTCANGTCCATTNCCNCNCANNNGTNCCATGGCGGAACGGAACAGNATAGCNT AGNCAACGGAGCTCTCGCNTCTAGGACAGGGCGGGNGNTTTTAANCGGCNTGNNCTGGTGGAGCNTGNNANCACTNTTTN ANCTTGCTNNNTTGAGTNCNCNGTGAGTTGGCNNGTATTGGGNACNATATAATCCTCCANCCANTCCNNTCCGAAATNTG GCTTCCGTGTCTNGGACNCCGTGANCTGAAANTAGCNGGNGCATNCCTCTACTCNAAGCANTNNCTTGTAGTTGANCGCC GCGCCTNATCNGCGCTGNGNNNNNNNACCAATGTCCNTTGACGAATACAGGCACACNAGGCGAGGATNCGTNTACAGCAG AGANNCACCAGAACTANATGACCTAGAANATNGGANANTNAGTGNGANNAGTTGGAATCGGNTGCACGTCACCATGGTCN GGGAAGGNTANTNNGCAGNNCGCGTTCGCANATTCAGTNTGNCNNCTCAGTNCAATACTATNTANCGANACGCAGCTAGC ANGAGAAGCCCGGTTNNNCGCGCTACTGGGAACCCCNGNCNNAAATTCTANANTTCTAGAGCNATAANCAAGNNANGCCN TGACGAGCTNGGNGCAANGCTGGTNACTAATCACGATGTTCCGNANTTAANNCAGCGNTTCCNANCATTNAACNCTNNTG AGNACANANNNNTATCCNCTGNACNCGGNGNCNNTNGAGCANATGGCNNANCANGTCCCTTNCGTNTATGCNTCAATNAN NTTCATGNGGAACNCNTATANNCGANGCTATGTACTGGGAAGGGTTCTGANAANNCTATNCANGNTNNTAGANTACTCAA ATANGTGCCGCNGCCTTCNGAACTTGTTAGAGACTNTACNGGTTCGACGNCACTNCCCCACGCGAATCTCTTNTNATTAN ATTTAGNGGCCNGNANTGCAGNTTANTCNGGAATTANAACGGANTATATCCCTNCTATAGCNGGNGCCAANTTTCGCGTG GTGNNGCATNCACTNCAGTNATGANCCANTNAATNTGNNNCTNNNNCGNGTGGCNNGNNTGAGTCATTNNAAAATCAAAC GAAAGTTNTCGNTCNNTGTCTTTACNTTGGNTNCANTNGTGNCNAGCANCCGGACCNTTCCCGCTCCCTCCCGCTNTAAA GCGNCNNCTGGTTTGNGAGCCANATTGNNNNGATCCGCCAAACANANTTGAGCNCGCNNGGGTACGCGCAAGACCTNAGT TNCTTNCNNTTACCTGTGCGANNGAGATAGATCACTCTACGCCGANCACTCTAGNTNNTGNGAAGNCTGNNTCGAGATTC GTCGGNGNCGGGNTANANCACCCTTNNCACTGCGANATATTGATGTAGCNTGGCNNTCGTGTNACCTTTTCCNGNNGCCN ATTNGCNTGCGCGAGCCTCCCNNGGANTTGGTCCAGCANANAACGGANCCTNGAAGAGGGGCNCGNGTCAGGGGGGTCAT TTGNTCNNCCCCANTTGNTGNNNGCCTCCTNNTTATTNGTATAGGGNAGTGNACCAGGTATGTGCGCGCNATNGTCCAGT NNAATACTGCAGNGNTGGCAGGCATCCCTGNCCNNAACTTTCCTCCCCCNGGNGANNNCNNGNACGGTGTGNNGNTTTNA CCTNCCTAGCNCCAACTNNCTCGTCNCGGTACGTNNCTNGANNGTNTGNCATGACAAGGATCNTCTCCAGATCGTGCCAC CNAAATACTTGGAGACGACACGANCNTTGCTTCCGNNAGGNGGCGNANATANGNTAANTTNCNTTACTGNACTGTGNGGC GAGCTATANATNCATCCACCNCGGACCTAAGACTTCGATTCATTGTCAAACANNCNAAGTACNCCCCGAGTACATGCNAA TCGTTCGNTCAATTGGTGCGNCTTGTTNCNTNACGGTTCANNGTNNACNCAGCGGNNGAATCCTNTACNGATNGCNTTCC NGTCAGTNAANCNNCCGNCGAAACCANTCNGCTCTNNTCNCTTTTTGGGNTTACNGCNTNAGCCTGCCNGAGAGTNGCCA NNCTNCACGAACANCGGCCTTCGAANNCATCCATNAAGACACTCAANAATNGAATANNNATTTATANAATTNNGNCTACT AATGANAGGTCNANTCCANNNATATNCNGTTGTATAATNNNGTTGAAGCTNTTNANGCTAGCCTAGCAGTTANNNTGCAN AATNCANATCNAGTTCCTTNCAACTCGNGCCCTGNAGCNAAGNNNTCATNCTATGNAGAGCAATNGCCNTNNATGGATNA AANNNATGNGNTGTCCAGGACNTNTGANCTNACAAANGCCNNGATCGCTANGAACTCNNANGTCAGGNAAAGAACNNGCA GTTANGTATTCNCCTCGTTACCAGGGTATTCNAGNTATNCNGTCNTCGANCNGTCANCCGNTGAGGAGNNTGCTNCAANT NCATNANCTAGNCTGTNNNGCTTGACCATCGCCCTCCGGGTANTNNAANNATNTCNNGAANTCGATGCNGCCGNTGNGNT CCAGNGNNTTANCTGNCNCCNNCAATCNATTTATTATTNCCCNCCGNCCCGNGTGTTTCGTGNGGAAANAGAAGAANNTG NCAGAGCTTGAATACAATTNANNAGTNTGAGNNACTCACGGCCCGCATAAAGGGAANNCNNNCTNGTCGTTNCNGCTGNT TNTCGNTTAGTAGGCTCCNNNNNAAGCTCCNACCATTNCNGNANNCAGTNTTNCTAATGTCNACNGGNTAATNCAGCGAA TTCCGTAGTNAANACCCTATCTCAGTGTGGCGTGTGTCNNNNCCAGGCNATAANAGNAAAANNNCCNCTNAATANTNCAG GCCACGGTNTTNATTAGTNCAAGAANTANNNGAATNNGCCATCGCATTGGTGNCNNGNTNAGNGATCACTGGTCATCGGA AGNGTTGTGGCNNGGAATNANCTTTANANGTGTGGAGNTATNTCAAGANTANNCGGTCATATNAAANTTGNNNNCAGACC TNATTCNGGACGNNTGAAATCGGCCATACCACGNCNGNTTGGGCGTCANTGGGNCANACNGNNCCAGCCGCGCATGTNAT GNGTTNNCNAAANTTNGNNTCAGGTGGNNGAGCCTTGNCTACCGCAAATAATTGTATCCCNGAAGTTCNTATGGAAAAAA TGGATATTTGNTCANNACTANACANNCNNCAGGNGGTTANGGGNAGGANATACNGCTGGGCGAGTAGTNCNAGTACCACN NANANGTNNAGTCATCNTTTTGTNNGGCGCCAANTCTCCCCNTCGNCACCCTNNTGGGNTGTNCATTAGCAGGNTTNNAG AGNATCCACTGCGACNTTANCTGCNTACCGTGCCNNAGTTACATTCGCNNNNATCTAATACTNCACTNATAGTNNTCAAN GNTCAGTCNCCNNNAGNGGNAGCTGAGGATCNGCTNCAANTGANANAGNCTCGCGGANTTTGTNCNGCCCACGCNTTCNT NGGNNNNNGCTNGNGCNTNTNAAGATCCGTGGGCNTCTCGAACGACGCANCGGNACNAAGCCGCCACGCNTNGGTTNATG GGCGTCANCCTATAAATTNATNGCGACTAAGCACTGGCNNTGGTATACNTCTTACNTCNGTGANNNTNAGGNCATNAATA CNTAGNGNAGTGGTTAGGAGTAGCAGATTTTACCNTNNACNNGAATCGGANTNCTGGCTCCTTTTCNCCCTAGNANANNC NCCAAGCTAACCNCCTNANAACGTACCTTGTNCGTGNGNTGTCNTGTGTGANACTGGANAANCNTNNAACCAAGCNTCGT GTATCTGTCCAGGCNNNNGGAANTGTNGNCGTTTNATCTCNNAGATTNAANCTANGGTNATCAATCCNNTAGCCGATNTC GCAATGNNNTNTAGTCTTATNTAAGNGCCANCCGNNGCTTATGNTTTTNACGAATCGTNTCNNACGGGANNGANGGGGCG GCNTCCCAANGTTNTAAANGGNAGTTGANATGANACGANNGCCTNAACATGNTCTCNGCNGNNATGAAGTTTCNTCNNGN TCCNNNNNGAGTNGATCGTGNCTANNCCGTNCACCACTNCNGNNAGTTNNGAGNAGGNANNNTGGNTANTANATNGTAAA NTCTCNTNGTTCANCCACCNGATATAACANCNTTATTTNCTACACANCTGATNTACTGGAGCANTTGTTAANTCNGGNCC TTAACTCCCTCNGTCNTTGTATTNCNNTTGCCNGGGANTGNNGTATAGCAGAAANCANCATCCNGCCTGNGNGNNATGTC TCGCANGGACANCTTTNANGGAAGTNGACAGTCCNTNCGATAGNTCCGATAGNAGCNNNCCCAAGNACNNANGCGCNNAN TCTCTCAGCNACGTTTCGNNCNGGGTTATNCATGACGCCGAGAGTNTCCNTCANCCATAACCCCCCCNCNCTNCGCNACG AGGANGGTTACTAGGTCAATGNTAGAGAAANTNNTTCTCNTATTCAAAATGTNTACCGNANTCTTTNTCGATGNTTACGA TNTTCTGGCNGACNGANAAGNTCGGNACACCANATNNCNANCNGGCNNGCCGTTNTATCCAGCNGAAGANAGCGACNTAN TNTCNTNGGCTANGNTGCACTATCGCNGCNNGGANGAGCCNGNCTNTTGAANNNNGNAACAACGGGGTGGCTGNCNCNNC TTGANCCATNTGCNGGAAGGNCNAGGCGCAATCNCTATNTCCGGCGTNNAGCAANNTANACGACCGNCTTGTAGAGNANA NAGATGCNCTCCGTGTNGCATNTAANTNATNGNCCNAANCGTAGNCGTGATNGNACNGNTCCGGGGAATANGGCNACGNC ACTCGAGGACAANGATNTCGNTTCGANGGAGGCTNNCATCTNTGNGCATNNTCCCCNCCCGAGCCTGNCCGTAGNTCCTN GAGACNTANGACGNACNAANTTCGCACANANCNCAANNTCCGNTTNCCANGANCCGCNCAGNTGGTNAGGACCAGTTGGG TGNNTCCNTAAATNAANNCNAAGNNNNATATNCAGAGGGNTNCTANNNAACCACANGCCGCNGGATNNNGNGCNCAGAAG TNNGNNTNANATCTGGATGCCNNANNCGGAGNNTCACNNCGANTNGGNAACNGNNCCNAGGCGCGGNAAANACNANTCGA NGAAAAGATTCGANNNGANTANCNAATGCCNTAANNNAGCGNCGNNACGTNAGTCANATNACCCGACAGAGTGANCCCNN GGNAACATTNGAATTGATCTGTNNGTGACNTGCTAGTNTTGCCTGANNAGNACCTAGCNCATCACAACCAANTCNCCNAG NCNNNACCTATGCTCGNGGAGNGNTCTCCTNNCTCNNANATATGNNGGCTAGCGTTCTTCAGATCCGAACTCNNGNTCAG GCGGACTTTTGTNGACACNNCCTANNTTANNGNGTGACCGACATTCCANCNTCACNTCTATNGANGNATTAACTGGGCTT GNANGNNNAANACNAAATGTCCCGAANCNAAATCGATAGGACAGGANAACCGTNGACGNNTANCGAAGGCNNCCCGAGGG CCTNNTTCCTGTCAGCTNANAGCATNCCGGCCNCCAGTNGCTNNGNNGCCANNCCGCGTAANTCTCCNTTNNGTCNNGTT TGCCATNNANGNTTACACCTGACGGAGANACTCGTATNCNGCNAGAAAGGCCAGCCTATGGTGNTTTATCCACGATCNTG CCAATTGCNTANTCCNCNGCANNTGGACGGTNCNGAACGTTACGTTCTTNTCTCTGACGCTNACTGGTTCTCGNTGTNCN CCTGCTGNTGGGCNNTGATCNNAATANTNGGTCGTCCCNNCNCAGACGTGATCTGGCGNAGCTCGNCGATTCAGCTACNT TGNNGANNGAAAGCGTANNNGNAGGGNNGNNGTGGTTANNNTNGCAAACATCTGTAGCTTGAACGCNCAGGGANTANCTA CACTCCGCNANNGACACNNNATTGNAANGCCTCACNCCACACNATTGCTTTAAANTTNCNNCGAATNCGGATTTACTNNT AANNGGACTCTGCACGTAGCNGNANTNANCAGGTGNNNTGGAANACGGCNTAAGTCGGCATGANNGTTGATGNNCANCNA NCGTCGNGNTCGATCANNANACAGTANNATCGCNNNCGGAGGGACNCATACCNANANTGTATTGTTTNGNGTGANGTNNN NTNNTTCTGNTGCTTGNNNGTGGCCTCANAATCGANCNCANTCNNTNACCAANANACCGCTTCGNGCCGAGTTGCAATNA CNGAGTTNNANGNTGNGNNTTGCNAGNGNNTAGANTGTCGAATANGCGGTGCAATCAACNTGCAGANGGGACNTCCTACT NTCTCNACTTNCGCCTGGTCNTATNGATNCCGATTCACCAGGGNGTCCCCTNCNCAGAACNAGATNNATGCACTNTNAGT NGATGCGNGNTNCCNNCCGGNGATCATATCAACAGGCNTACGAAATTCCANTNNNNNGCTTCANAGNCCGCACTTNTANG TATATCANGTGATGNTNGNGGNGTNNTGAAACCACTAGCNNTNGANGNTNAGTTTGNNTGACCAANACATNNGANACTAN TANGAATCGNNAANTCATCCAAANTGNANGTTNGNAGCNCTAAGGTGTCNNTNANNNACCCAAATAGTCCAATAACTNNN TACGAAAAATAAGNGGGTTGAATATCTTCTNATGACCTCCNTGCTNGNTANNACGAAAAGCATCGGGTCTNAGCCCCGGC ACANTCCNAGCNCCGATGCCAACCNANGCTCGCGNANCCAGNATCNCCGTTTNTNAANCTGCANCCCNAAATGACCCNGT AGGNCANNTNGTNCGNTGCCTTTTGGAGACNTNCACCGGNNNAGCTNGGGATCGATGTACCANCATGNGTTTAGCNACCT CGNGNCACNCCCNCGTNGCTCTTGAGCACGATCANTGGTGTGGTACGCNTNANTACGNCTTCGCGGTAATGCTNNCNAGA NTGANAAGNCNGGNCAGGTCTTCNGATCGNNTCNANGACCTNCAATCGTGCACAGAACTTAACNNCNAGTTACANNACAG GTANCNTCGCCTCCGTGGNACAGCNTAANCNGCCTGTTNACTCGNAGAATAGAGNNGNGTACGTNGGTTCTANNTANCGA GNTNTNACNGANGGNTTGCTGACNGNNGCCNAACTGTGGCGCTNCCGGTGGCAGTNCAANGATACNNANNGAGAANAGNT ANCNANGNGNAGCTTAAACAGTCNAACCGANTNAGTATTCTCCANATTCAGAGCTTATACCNNTCAACNTCCNTGTGGGC GCGGCGACNNCTGACATGNAAAAATGCAACGACANTCAGANACCACTCANGTCAGGAAGTATTATATTCNGAGGTTCNAC TTANGAGATGCCCGGGCACNGCATNCGCTTATANGNGCGGATCTTCATCACAGCNCGGNGAGTTAAGCNANATCCCGCGT NTTNNAGAGGANGTNNCGAATGCGAGCGGAGCTCNANAANNCNACANGGTTTTAGGGCNTNAGNCTNAAGCGCGNTTTCN CTTCATGGGCCCAGCNAATGACTCCTCCCGAATGANCGACATCACANAAATTNNTAAANNNNGCNCNGGCCCNATGTNTN CNCGATAGGNCCCGCCTCNGNAGNTTTGAAAANCTANTNATTACTGNCCTCGCANTTATNTGGTGCTTCNCCCTNAGNNC CGCATTGGACCNTCTGGTNCCTACCACNTNAGCTNATTGACNAAAGNNGCAANAGGGGNAGTTTGATGGTNNNATTTCNA CNACGGTNCTNTTNNTGGNAACGATNACTTGTTGGNCCGANGGTNNNNGNCCCCCNGNNNGGTTNGACACATNCTCGCCN CGNTAGTCGNCGTCGANNACCGATANTGTANTNTTCAGNCTTCANCNGNANTNTCNGTNCNANGCGTANANACNTNCTNN CNACTTGCGATGCATGNACAGAAGGNNTATAATTTAGTCTGTACCGGNAGNNGCTGCTNNNNGACGGAGNCCCNATANCC CTGGAGNNACTTNCCNTCCTGNTNATCAACTAAACCANATNNTNCTNAGCCTNNCACAATACGAGTATAGCAGGTAAGGG ACAAGGAATGNGNCCAAANNGATGGACNCNNAACCNATTGTTTATGTNCNTCTNNNGTTCACGNACCCNAGCCTNGTGNT GCNTNGAGNATCATCGANTNGGCTTNATCCTNCTCCANTGNAACACAGCGAGNCGNCTCTTNCATCCNGTCAACGGNNTN ANNTCCCTNCTAGAGATNAAGGCCGCGCTTANCAANAAGNNNNTNCCTGCTGCCCNACGGCGGNNTCTANTCCCAAACAG NTGGACGACTNCCTTGGCATANAGGGCTNTCCNGNGTTNNCTCGCTCNNCTACGCAANAANNTCCGTCTACACATGATGN ATTGATANCTACCCAANCCANACCCNGCGGACGAATAAANNTCNAGGTNCTACNCCTGGTACTNNCNAANNCGNCCCGTG GATTAGANTGNCNCATNNANGNANCNNCAANTGACCCGCTACCTTTGGNACANACAGACGACATTANGTNAATGAACACT NNAGNCCGNNAGCCTACTGNNCTCGTNTNTATAGCCCGTCATNTACCCGGCCCNNTNCTGGNAATGNNGNNGCNCCACAG GTAANTCCACNCCGACNCTANGNTANAAGATCGNATTANGAGGCGNCTNTNTTTTGGGNCNAATNAACCACGTTCNTTGA ATNATTCANTGNNGGGCNNCNTTNGAATGAACNCANNCGCNAGNGGGAAGTCANANANACTGGTTGATGNGACTAGCNGT NACTTATCCNTTACGTATNNGNCCTCCACNTTAGCCTGANGNGCNCNCNNNNCGCATCATNNACCNATNTANNCACCATG CTANNNANNGNCNGTNTCCNCCACCGCGCGAAAGAACGNTCTANNTACNGATACGGGTTTCNNAACGNNATTGTNCACNT GTATATGTNTATGAATTCACTCGCACGGNATCTCGCTCCTTCAANNGATAAAAACAGGTNTCTATTTNCACTACNGCNGG CNATCAACTGGTTGCCNCTTCGGNACCTTGGCTAATNTTGATCTTANNANTNNNATNAGNGGNGANTTTCNCCCANGNGT ACGGCNAGCGAANGGGAGCGNCTGAACTNCANTGCCCNGATNTNCGGGGCAACTNCGTANAACGCCNCATATCCNTNNNG CTNCCGNGCCGNTCGGATGCTATGTTGGGAGNTNTATTCNATNNAAANGACCNGTANCGGAAAGNGNCGTNCNATCTTAT AGNTCTGAGACTCCGTANAGTCGNCNAATCTCANTAGACATCACCGGNAGANGTTANATNCATANTTTTNNCAATNNCAN ATGCGNNANACNTCAGTGCAAGCTCCATGCGGTTAAGCANAGNCGNAANGAGTTGGCNAANNTGTTTAATCANNTCGACT GACGTAAGCCNGACNTTNNCTNNGCNNTTNCGCTGCAAAGTGNTCCNNCCTCNANANATTNNNNGATNNTTGCCCAGNGG ANGNANCNACCGNGCTGTGGGGAGTNNGCANAGCCGNCANCTGTCGTAGCTCNGCNTCTNTTNACTCANGTCTTGCTNAN CTNCGANNTTTAAGNNAATNGNNNNNTGTACGGCANAGANCNNACNCTCNGAANANNATGGAATGTNCCGACGAACTNTN GAANNNNTGNNACCNNNTANCGCANCCTCCCAGACGGCCTTGTTNGNCNCGNGNANCATAGGCACCNCNGTGCNTCTGTG TGCANTGANAANTTTNAGNTNGNGCTANCAAAGANCCAACGGAATTGCGANCAATNGGAAAGNGCCNNNNNTTCGANACA CGTNNTAGGGNNTTNNTNAGNGGTCGNGTGGNGTNAATGANAAANNCNTCCTAGGACTCATCNNNGTGCCTGGNNGTGTT ACAGNNCGTNCTACTTCGCANNTGTAAGNTGAACNCNCNNNANGCNANNGTGNAGTGACCTTTAANCNTTNTGNCNGGCN NTCAGATNANCGNTNACNNCCTGATGNAACGCTACNGAAATAATTAANTGNTNAGGTTGNNTCTGCANGGACCGGTCNGN CANCNNGACNGGNCGTTGACCCCAATNNNGTANTGTGATAGNANNAATNACTATGGCGANATACCCAGTCANGNNACNGT CNTNAGTAAACCTCGCNNCTCACNGATTGCAANATGGCNGGGAANTCNTCNGTCACGGNNTTGGGANCCCACNTTAGTNC CGGAACGNGTTNGGTGGNCTCTGATCNTANACNANTGAGCNTCACACNTNGTCCNNATGNGANTCNAGNGNCGTNCTGTA CGNGNGTTGTAATCTACCCTCCCNGNAGNGTGAATNACTTNGCAGNGTTTNTGNATNGAAGGNNGCGGATNCNTTCACTT TCTCNCNTCAGCTGAGNGTTTNCCNNNTCNACCGCTGACCAACTNCANGNGTANGATTCGCCANGTTTCNACGGNCCCAC NANCCCCTGAAATGGATGTCGTACTTGTCCGCCCNGGCANAATATTAACGGTCNGCAGGTCAATNCAAGNNGCCNAGAGA TNCCNANTAAANNAACNGGTGNANCTNGGTCTCTATNGGTCNTTCCGCATTGNATNTTCCAGAGCTCTGCNNANTTACNT AGNTCCGACAGCNNGCCCTNNAANAANGTNCCAAGCACNAGTGAGNCNTACNAGACACACTNTGCNAGNGCGCAAATTCT TNTAAACAAAACCAGCTAATCCCNAGCTNCGGNGCCNCTNTNATCTCGANTCANGTNTANANGAGNGTAGGTAACGCNGT NTACGTATANGGTNTCTANCANCNANCCACCATNTCCNGCACAGGANGAAATCNGAANCANCNCANANCGATCTGCNAAC CGTNGTNACTCGCNGGAACCCANAANAACGGNGNCCGGTGCCTTAACGTNNNNTTGACCATCTGCAGGNNTATCGAGCGT AANGCANTGCGGNTTAGNNGCCAACATCTACGAGANTCAAANTNNATNTCAATGNATNATANTGTGACAGANGGATGANC CAAGGGNCAGCTTAGNGCGNGCACANCATNNAAGCANCNGAACTTNCCTGGAANGAGAATNNACTCCGTCTTATGTNTCG GCCGNGTGNCNGANCATNGGNCACNGCAGNACGGCANAACGTAGAGTCTNNTGAGTCACGANCGTGGNTNGACNGTGGNC CATCGCTGGCTTGCTCNNATNCGCTACATNGNTAGAAGCTNACNCNAGNTGCCGCATTTGNANNACTGAANGNAGGNACN GAGNTCAANCNTTAGGCTCCCTCGGCGAACAGCTCNAACNAANANATGCCCCGCNANGNTCTCTTACAATTNGNTGCTCC GGCNNAGNCAGTNAACCCAGTNACCATGAACGCCTTTGNNGNAAANCACTATCCCGACGTNATCCCTTACNCCTAGNTNC AANACGATNNCAGTGGAGCTNTNNCCNGAANTNACNNTCCGNNCAGACCAGGGANNGGGCGGAGAGAACGNAGNACNCAN TCTAGGGNCANCGAAAANNNAAGGCNCNCNAAANTNATAGTGTTCCGAGGTACGCGGACACAATANGAGTCGTGAAANAG CGNNATANCGNCNATAGTGACANGNCNAAGAGTCACCCNNCTTCTANCNTAGNNCCGANTCTNATCTGNGATCGNGTNNC GTNACACGTAAAAGCNGGCTNNCATAACTNNAANTATCAGNNCTAATGCGANAGGGCGTTTGCAGACTTNANCCCTNTGA TANGTCTTTTNCTGGATTGGTNCCTCTCTGANCNGCGGNGANCGTTNTGNNATTANNNAANGNNGGNCTNTTNCNGTTGT CGCAGGNGTACCTNCANGCCNGAGCCTANTTNNGTNATGGGGTCTGCNCCCTTGANGNTAAGCGGCGTGTGGNCCACAGG TNGACANCGNTCCANCNTTGTGGNTCANGACCCCAGANCTTAGCGNNGNCCACGCGNGNAACGNAAGNCCGCNNNCANTA TNNACNNTTTCGGNCCTNTTTATAGCGTAAATCCGTGANGGANTTNTGCCAANTCNCNTGTCACTACTNCTGNNANGANA CNTNCNCCCNTNTCACAGCNCCCNATTATAANTTGTNCNGNNACTTGTTTGTAGAAGCNGTANNGNGNTGNCACNCCCNT TAACCTACNACNTACCTTTNCTNNNGTCNTNGTTTTGTTTNNTANTNCGGCNCGACGCCGTATCTGCCNTGNCGCATTCA AANGGCAGAATCNTNACNTNANTTGNNGNNGACNNCCTNGATAGCTTNCNGCTAAGNCNGACCCCACANGTNATAGGGNC GAGTGGAGNNCGCACANACGGNCNCTNTAGNNGTTTNAATTGTNGNTTTCCNTGCCAAGTGCGNTGTCTGGNGCCCTNGC NTCTTATNCANCGNGGGCGCANTAGGCNAACNATATAAGGAAAGGTTNCNCANTTTANGTGCTCCTCTTGTGACNCTGTT GTGGGGGGNANNGAGCTTANTGCCCGGTTAGTTTNNNNGCNNTAGAAAATTGTCCTTAGTGCCCGCTAGCCTTCNTNNGT NTGGGTGGNNAGAAGATACTGTTNGCGGNCAANTGGNGGAGCNCTTACNATTTGTCNAGNTNGACTCNAGAANGCTGGGN NAAAGATTGTGGGGCGANGAGNNGGCGANAACTCTTCNNAGCCNAGAGTAATAANATCCTGACCNTAGTNGNNCTACTGT NCTNCNATGACANTAAGNGCCTTCACGNNANATNAGCNATGGGNAANTGNTNNGTACTNATNCATNATNANTGTGATGAT TCNAAGCGCNCTTTCCGCNTGNGNTNTCNGTGTNGCGGTCNCGGCCGNNTTTNAATTTTCCCGGCTGNTAGNTCNNTNGT NACGTNATACGACNCGNNATATTTCCNCATNTTGNNACCTCCTANCATNACTTTANNNATGAACTCNNACCANNNANTAG TGGGNNTCNCGNNACNNNNTGACNAAAGTNANNATAGNGCTCGGNNTNNGTNAANTGNCNAANTTTGACAGCGANGACGG CTAANANAAAGNAAACCCTNCAGCANNNATANAGNCNGNGGTGAACTANNCATGATTTGGNGCANANGAGTGACAAACCA TAANCGAAANNTTGCNCNANNGACNCNNNCTNCGTGACCGCNTCTNCNTGAGGCANNANCTCGCGCAGGNNTCTTNGNGN CGGTCCCTNACNGGNTTNAGCCNCANANAGCCAAGGCNNNTTGGTNCCGGCTNNTGATNNCCATCGCNAACNCAGGAGCT TTGGNTNCNCTCNGCTTTCANAGTACTCTNNGACACTTTATTAAATAAGAACCTGTANACGNTNTGANNACTTTGTGGCT ANCAANTTCNAAGCGGGTNANTCGNCCTACANGCTATNGGNTGTCTAGNCNGTTGGANGNGANCTAGGGCNANAAGATTG TACCANTGTCGCGGTNTAATNNGGTTTCTGCTGGTAGGTNNTGATGTCCTTNCCNCAAGGGAGNGCCCGGNANGACGCTA CGACNAACACNTACGAGCTNANGGTACNCTNCNGTCCANNCCCTCNTCTGNANGNCTCCGNTTNGTNACGCNAGCNAGAG ANNANCTGTANATANCCGCCGGTCANACACTACATNCATGATNGCAGTATNGCACAGNATACTAGCCTGNNNNANAGNTG GTTNGCCNTTCCGGNTGGNTNGTAGCNCCACAATGGTAGGGNTGGAGCCTGATGGTTCTTCANNATCAAGAAACNAGNNG ATATCGANACACTGAGGGNACAATGNTNAAATTGTTTTGCGGCTANTATGAGGNNANTNCNCTAATCAGTACCACTTAAC TGAACNCNAATATCTAANCNGANGTCNNGCCTAAGGATACNTNNATGTATGGNAAGCACGNTANCCANNGNNNAATTCTN ANCGNNCCTTATGTNNGNAGAAGTTANGGAAGCAANAACCANACANNNAGANNNAANCGCGACTNTAGCANAGGCCCATT NNNTGACTNNNNGNCCNTGCTTATCGNTANAAGNAGTCTTNCGAANCCTCTNNGAGCTTCNAGNNCAGNTNTCCCNGGGG CNNAANNTNTGNGTCNGGATCGCNNCTTCATTGTCTGNTGCCCCCGNGGANAAACTTAAGNAGNNGGAGCCTNATATGNG NGAANAACGGCNANCGCNTNGCTNGGANNAGGTNATNGTAACCNGGTNTCGCCGCGAACGGNNACCCANCACNTACNNTC CNCCGGTNGGGTCNGGTTCNGNGCCNAGAGGGNGCGGTGATNCTNNGCTCNGCGNCATNTNCCTATTAGNATNNTCNACC CATAAAGGCAATCTAATCNCGTNATNTGCCCCNGNTCAGANATCNNGGNNCANCGCCGTTGGCGTTTGTAAATTANNAGG GATNNACAACNCTCCACAGTTTNNGCTAAATCGGGCCGCACTGGTTCCAAAGNAAGAACCAGGTTNNCTGNGANCNGAGN TCCCTATCTCGTNGGNCTTTNCTTTNCATCTNNGNNGCNACNCANNCCTNACAGACGNAATTGCTANTNGNCTACCANTT AANCACTNAAGACAGTGGCTCACTGTNCCGNNCGTATCCNTAGTNNNGCGCTNCNCNGTTTTGACANANNCCNAGTGGAN NTANATTAGGNGNTAANAACAATCACCGGGGNCCGCTAAGNGACNGANTNCGNTANTTTTNNNATTGGTTNCCGCTNTNA CNAGCCGAANCCACTCAGGCCGGTNCTNGATNGCCATNANCGTGCTATAAACCGGAACCATANTCCTAACNNGNACAATT GGACCNACCTCGAAGCCNACCACCACCTTTTACGNGAATNNTANNTTATNCTTACNCAGCNTTAGCGAAACTAAGACANN CTTTACGGATNGGACACCCNTNNGNAATACCANGTNGCGTNGCTTTANCTAAGCGANCTANGGGTGCAGAGTGCNGTTNA ANATGATAAGCCAGATGNTCCTCNTGCCCGTTNTNCAACNAGGCAGTGGTGNNAGNCANCGANNCAACNGTCTGTGNCNA AATNAGNGGNCTACGNTTCACTANGCNTCNACGNGAGTTGGCGCACGCAAGCTGTTCTNNTCTTAACGTAAAGGNGACAC TGTGANNACNNCGCNNNTNGNGNTGCNCNCGAGNTCAATTTCCTGGGACACNANCCCCCNGNNGATGNGGCGNCCCGGCG NNACAAGNGNGCACTAAANGAAACNGCCCTGTNTTTTNCGTANNTTCACNCTTGGCNCCTNCCGGTGTNAANGCTGGCNC GATTTTTTCNTCTTTCGGAGTNTTTTCATNNCGGCAAAGTAGNGNANCTTTCNTTACTNATAATTTGATNTTGNGNNGNG AANGACATNGCTAAAATCCTACGGAGGCNTGTGGNGNTAGNTTNTGTTGATCGGNNCATCGTGGTTAGTTNGGTNACCAA CNNNTATAACANCTCNNCAANGTCACGACACGGCCTGTCNGNTCNGATGGTTCNNGTGNGANTTTTCATNTNAGGNGGCA TTNTNATNGAATAAAAAAGCANNTATTTAGNTCTGNCTGGCANCTTAGTGNCGANNNCGGAAGGNTACGAAATCGCCAGG CATTNACCGCCGATGANAACCGNTGNANTTTGTTCCGACANNTANCCANNATGTCCTCAGACAACTTANNNCCNNATTTT GCTGNTGANAGNNCTTCTAGCTNNAANANANGGTCCTCTNCCCGAGGCCAAGTTGGGGTNAACNNNATCGTCGCAANAGN AGGGGGGNAGCNCGNCANNNAGNGACGCATAGAGNGCCAGGGNNACAACAAATCCTAGCNACTNGGNGAACTTCTGNCAT NGNTCGGATCTCACNCGNGTCNCTTAAATTGTAAAAGGNGATCGGNAATTTTTNNGNNANCTGGTGTCNNNAGGNTAGNN CACGGTACGGTTTNTCGCGTCCATACTTGGNCNNCNTACGGCAGGNANTNTGNGNNNTGAATGGNGGAAAGCCCATGATN AANNTNNGNTCGAGNNNCTGTNTTTGGGGATNGGCAGTCTNNGATCTTNGACAATGGGCGAGTGTNGCNATTTCAGNATG CAGNAAANCNAGAGCCANNGCTGNNCTCGTACTGNNNCNNCCNACGAGNTAGATTTCATNANATGGTAACAGNTCTATCT TTCACNTNTNNTAANGGAGCANAGCGAGGACGGCGGGNGACTTNNNACNTTTGNGNGTGTCTGGTCNNAGGNCAGNTTAT GAGCNANCCGCCNANCGATCTCTACCGTCGGNTANCAAGCGAANNANTTNTANGNNTGTCGACNGCCGGNAAAGNNCGTT CTANGTCGTACNTCNTNANCGATAGAGNATANNGCCCGCGGGNCCAGGCGCGNNTTNGNGGAATACCTTNAATCNAACAT CCAACGTAGNCAGTCCACGNNGTGGTCTCAACTACTNTNTACCGTCGTNCGNCTTGCTTGNGATNTCCAGACGNCGGTAC GNAAACCNNCNNNACCTAATCTGNCNTGTCNTNGGAAATANGACGCCNAANCGCCGCGTCATTTNNCATACTNGGTTNGT AGGCNGAGACCAGGANANNNGNCGGCAGNNNAGANGGATCCACGACGCGAGCGTAGTNNNGNCNCTNAGNCGAANCCAGC ATNCNNTAATGTTAAGNTGCTTGANANATANANGNCAANGCNNTGGGNCNGNNTGCACGGTNNTAGGNAGCCTTTTAGGN CANGATGGCTCTTGCTTTNNAGANGCCTCGGTTTGANGTCGAGNTNATGNNTGCNTATATCTGATGACGCGCGGGNNGGN NNAATCNGATGTCATGNCNGTNGTNTCATTTTCTCCTANAAAGNNTACCTGTNCNACAAGGNGNCNTCTCGTNNGTNNAC ANTAAACAGTANTCTANGGTANATTCGNGTNNCCTATCGCACACTACACTTCTCTNACNTGANTCNCCTANAAATTNACC NCNTTGCGGTGGGGNCGTCGATNTTTCGGAATTNCCNNACGCNACGNCCTTCANGGTNTNCATTNAAAAANCCNTACTGN NCAAGGGCGANTTGTGATTCGGAGNGTCTGCTNCACGTCNAGTGCNTACNGACGCCANGNTCANNCGACCGTGNCCAGNG TATCGGACAGCTTTCTANTNTAGNCCNTCANNTNCNCTNGNTAGCANNNGNTCGTGNCCCAAGNAACTTCCAAGTCCNCN AGATTTNACTACACNCGANNNTATATCCAGTTANNNNANCCNAAACAGAGNNNTGTCTNGCANTCTTCGANCCGNGNGTG TCNTAGCTACGAACCGAACCCCNCCNCTTNCCTCNAAAGTNATGGTACATCGANNNCTGANTANTGNTTATGGGCCGNNN CTCCGAGTAAGNGTGGTANTTANTATAGGNCAGGNAAGTANCCAACNTNANANCTANCNATTCTGGCAAGTNNGCANCAN TGGTACCANATTGNCACANTGNTTTCGCCGGNGAAAACNCGCNNGGGGACGGGGGNACATTNGCCCNTGNTTTCCNAATA NTNANNCCTGNNGAACTGTGAGGNCTGGCGGCAGNNNCNCTTGTCCGCNGACATTGGGNNTGCNAGCTNCTCCAGCNCTA CCGGNTGNTNNCGGTCGCTATANCCTGCNGTNTCANANCCCAAGGGANANCNNAATAGGGTTACATCANGTTCCNGTNCN TAGATGTGCGTGCNCGTGTACAGTNATAGCNANATGCCATGNGNCGCCTCNGTGGCGCATCGAGTGCGCATGTCTACGNT NTACTNNGGNNACTNTGGANTNGCANAAANGTTACTGGNNNACTTTNCNCAACNNCGNTAANTCTACATNTCNNNNGNGN CAGTTNTCTNNTCNNCATNTTNAATACCACNCANNATATCGCNAACATNGACCTCCGGNTTACTTNNNTNGCCAGCTANG NTNNGNTAGTTANTCCACCTNCNGCTACNATAGNTATANNTATCNNCNANGTGNTGANAATANNGANACTNGCTTCTCCG ANATTNAAGTTATCNTAGNGNTCAGTACCGAGAGNCTGGAGTGGGGGCTCNCTTNAACNGAATCATNATTTGNTNAACNN NTCCGCTCTACAAGNNTCNGNNTTANATTAANNNNTTGTAGNAGNCGTGAAAATTNTGCTGCANNGNTAGAGAATANNTT AACANNGTACNAANANGCNGNCAGATNTCCNTGCTGAAGGCCGNCTGCGTGCCCGGTTGCGCTNACTNNACCCAACNATC TNTNTTATACCCNNCTCTAANTCGGACATGATGGANTAATNGAACTNGTTNCAAAANCTNNGTGTGAAAGNTCCGGGCCG GCTATGAACATTCACANGCNGNGNNNCTNNNCGNCATATAGCGAGCACATCNCCTNGNNGACNNTATGGTNTGCACTACG TGGATANTACNCGCAACNCNCCACTNAANTNANTTTTNNACTNNNGNTCNNNCNGAGCNNGGNTNCCGANATGTNGNGTG ANTNCCNCGTNTGGNTNCNCCAAGATCGCGTAACAGGTNCCAGTNGCNCAGTANTTGATNCNGTATTNGCCTCTTNGGTN ANCNTTTGTGGNGTCATGCNCANTCCTAGNAGTGTCNNGNTTGCCGCACANGTTCCGTNGCGTTCCGACTCGACGNAAAT NCANTCACGNGNNCANCTCTNTNTCATNAGGATGAGNNGNCNCGCNCCNNNAAANATTTNTCCAAAAATGAGTATCGANA CGTCCNTCANTGGACAAGGAGTGCANCNTCCCNACTTCNGGCACCTNNANNGCNCCTANGGGCNNACGTGCNCNGANCTT AAACGCGANGNCTCNNNNTGGNGACGATNAAGGCGCANNAAGACGGNCNGNNNCNTGGNNGGNTCCCNGCGNNNGACAAN GTATTNNCTGNCTAATCNGACNCTTCGTATGAATNAGTAACGCNTGTNNANGTTCGNCNATTGTNGNNCTTTGAGGATAN TACTCGGANCANNATNANGATCCCGCNGTGAGACTANNTNANCGCGNGCGNGNATNAACGTTTNTCGTGTGNCCTNAACT TAGNGNGCAAGNCCANCACCGATCCTCCGCNACNTAGCCTTNTTATTGAAACANTNANNAGAANCCCNTTNCACTNAAGT CGGGGCGNNNNNCGGGCTNCCGTNGAAGGTNACACNCNCTGAGTAGTAACGAGTCNGACGGTNAGNNTGTTTAGCCCATN GGCCACGGNGNGTTCCGACNGGTACNNGGTCTCTGCGAGACTTGNCNTGTAAGTGACGGCTANCCCGCCANNGCCGANTG CCCNTGCCGCCATAANATCGNGCTTTCAATGGNNCNAGNANANANGTAGTGNNCGANTCTATCCTCCCAATCATCCCTTT NANGAGTAACCTTNACTTGATANGGGNGNGAGNNTNCTTCAANAGGCGCNAAGCNCTTNANATTTCGGTCNAGGANATAN CNTCAGTNGTNACCCTGNTTCANCAGTTACTAGCATGGANNNTNTTTCTCGGCCTCTTCTATCCATACAGNGGAGNGNNC TACACCTCCANNCGCTGCNACGTTTCCCTANTGTATNNTCNTNAAGNNNNNCANAGCNAGGTNGNGACACACCTNATNTA GNTAGTANTGNGNATCCCTAAGCNGACTCNCCCGNTCTNTNTCNNNGNNAGTANGGAGCGCTTNCNGGTGAACGANNCCT TTTTGATANAGTCATGAANTNTTNACNACNCCNTATATTNATTTATCCCGGACAAGCNCTNNCGTNATGCNGCNCTATNA GACCCTCTGGNTAANANNGTNACTAAACATAGCNNCTTATTNGTCGNATTGNTGGATCCTANANNTTACATCGAAATNCN AATACNCGAGTCACANCTTAANGCCTCACCNAGANTNAGCATAANGCTTCTNNTCGTNAGCNCCNGAACCCNGAANTGGN GNCCCTANCNCNTTCNTCAGANTAGNCAAAGNNGGACCTGANCGNTNNGATAGNACNATCCCTCGGGGGAAGNNTCGAAC GCGANTNCTTACCTAATCGNTTCTNGCNTNCNANTNTACACCGTTAGNTTANNCTNATCGTCGNNAANGTTGCAGGGTAG AACCNGCTTGNAAGGGTANGANNGANANATGCACGNATAAGTNTNTCCNCAAGGANNTCCNNCNNTTNGCNGTNATCNTC CGAANAGTGCATNCNCTTTTCAGCTGCATAGCCCAAACTTNGCCCNATNNTCTTGGTGGGCACGNTGNTTGNNGGAAACC GATNNCCCNGGNCNTCNGCATCCCACNGANANNNTACACNNGCACATGANGANGTAANNATAATGATCGGTNNTCAGAGG TNNGCCNTNAAAANCTTAANCNTAGAACNCAGCGCAACCAATCCTGCCTTGGTNGNCTGCNGTNAGTCGATCTGCGCCTN CTTTCGNCGTTAGACANNAAAAACCCTGNAANNGCTCGAAGNNATTNTTCCNCTACATTTTCAGGCTTATGGCACTTTTN NACNACTACATNCGCGGNNCGGCTGANTNGAGGNTTCGCCNACTGANNNTATGAACGACACCGATGATNNAGTNAAGNAT ACATGCTGCAGGCGGACANANTCANCNGANTCACNAGCAGAGANGTTNANCATATCTGACCCATGGCGTAAAGNANGGNN CCNGTNCANAAAGGTTAAGNATCTGGTGTGGTGNNNANGCAGTGNGNGGCANGNNGCGATGGAGAGTGAANNNGANGCGA NCAGCCGTCNCCGGTATANATGGNNNACANGNTNATTACTCCCNCTACTGNNAACCNAGNTTGGNTATCGTGATGNNNNN CTACAGTCATAAAAANGACCATCGGTCTACCTCACCGNAGGCCTGAGANTGCCNTAGNATTGCTTGCNNTCGCCTCTNCG NTTANTACTCACACCGANGNCNAAANTTTAACGAAANGCAGGGNNATNTCTNNCGNANGTNCNNTCNANGTGANTNGAAA GAANAGCNNCNNACAGNATACTGTCNCNGNCTAAGCATGCATNGTGCCACTTTGCAACTNCGNTNNCGTAGNTAGCTAGG GGTNGNTTGCGAAGNANTAGACAAANCAGGTNCNTATCCTAGATCNATAAAGNNNNNNTGGCCCCACCNGCNTTATTAGA NNNNAATGTANNCCTNGTGCCGGANGGCTNNNGCNCTNAACNCCACGACCNNNGTTNAACNAANGCGATATCAANAGANC CGCATNNGTACAGNTNAGTCCANGCGTNTNACGNGGCNGCGNACCGAGNGNAACGTNGGANGCATTNGTGGGCGCCTTCC NCACCATCGCNTTNTCACACNGATANCATNATNCNNGTCCTANGGTACGGGGTAGTNTGGGNAACGCCTCTCCTGANGAN TCACTTGAGNTNAGNGGGAGTCAAAAATCNNGAGGACAGNTGGNCTCAAAGTGAGATCNGNTTCAAGANNGANGATGGGN GTACTANGCNCNAGCGTNTAAGCGTNTCTNGTAGTAAANCGTAGCTTTGATTCNAANGCCGGNATTNNGNGCAANTNTNC CTNTNATNGACGNTNTTTTCTTGTCGCCNNACNGNTNANNTCATTGCATAGCNGGCGTTTNCTATATTGNTNGCGNANCN TGAAGAGGTTANCATCCTCTCANTAACANGTCCNAGTNCCACATCAANGTNAAAAACGNTCNGGGANNAAAATGGATCNN TGCCANTTNTNTTANTANNNGNCAGANNNTCCGNGACACGAATNTTNCNNNGAAGTGGATAGANATAATGCNGACGCGNG AAAGANATCCCANAGANACACTNNNNGTATCGAGAGGTNTGATACGAATCCCATCNACATNCGCAANATCGACNCGTTAN TAGGCNNGANCTAGCCAAANNTAANGATCCCTTACCATNGTNCTGGACCNGTATCGACCCTATNANCTGGTNTGNNTCGN NTCTAGNTACCCATTNATANAGCGCCCTTNATNTCCGCCTCGCGATCGAANCNANGGTTANCGCTATAANNCCCGCTANT GNCNNAGNNGNGCATGTGNCANNGANGCTGNCGTATTNGNGTANGCTTCNCTAAATCNANTGAACTAATAGAGTCNGNGC TTCGTAACNCTGNAAGAACAGGCNNAGACCACTTCGTNGATGNGATACAATNGACAGAATCNGGCGATAGANCNATANNC TNANAGNGCCCATCATNNCGTGTAAGTAGTTTACGNNNNNANNNTNCAAGNACNCCNTNNCGTTCTTTNAGNGGNTNACN CAATTATGNGTGATAGCNCNCGCNNCANTCATACGACNCACNATCTNNNTCAGNTCAGNNANTAANTNNTCGAGAACCTA CNTNNCNTTGGGAGAATATGATCGCTTGGGNGTCTTNGATAGAGAGCATNGCANNNNGCCCTTTAATTANNGGNCACANG GCACGAGCCNCNAGGNTGNTAGTNNTACNNAGGGNACGTNCNNTGGNGAGTCGAGNNCNTANTGNTGTNCAANCATNNTA AGNAAANAGTTATCACCCTCAGAACGANNGGCGCNTTGTTTCGNANGTGNGNGCNNACANCCTTCNTCATAANCCGNGGG GTTTCTATGANTNCAAANATNTANATTTGCNCCTCAGCANNNTCCAGCNTANCGAAAATCATNGTGCNTGCCGACNTGCA NGCCTTAATGAATCTTNGTATNTNTACCTAGACNANATCNACCNNTAGCTATAGTNACNGTCTCGAGCTGAGTTAAAGGT GAGNNGANGNATTANANGGTCGNNTCTNNTCCCANAGAGATTGANTTAGNNNTNGTNGTAGGTCNCNTCCTCGTCCGCNC NNTTNAGNNNNTCCCGCACACATANTGTGTTAGNGAGGGCANNTAGAAANTAGCNATNNANGAGGAACTGACTGTAAACN GTCNNNCTACNTGANCNTAGTAATGNTCNCNTGTAACNGANNGGGNNCNCGATCTAACCNNACATTNAGCCGTNNTCNNC CCNTGANTCNTGNGNTNCTCNNGAANTAGNCCGNCGNGGGACGCTACACCACAAAATCCTCNNACGTCANCAGTCATGAT GTTGGNNAACTNTCGGTCTTAGGTACCTNGAANAAGTGCGTGGCTCTCGNNGATTAATCGNTTNCGTAAAANNTCCGNGG CTACCATCTCCNNGACNTTNCNNNCTNNAGTTNNAGGNAATNGTAAAGNTGAGTTNGGATTAAANTGNNNCGGATCTACA AAACNCGTANTTGTNGNNTCTTNCNNTTNNATCAGAGTNCANCCGGTNAGTANANAGGCNCNNTGTTCAACTCTNCGTNC CNGGGTTGCNNGGACANTNNGGGTANGCTTCGANGAACGCNNGATATGATAGGTAAACGAAGNACTANNNGCCAGGTTAG CCNCNACTCAATACANGNCGNTTNNGGTANATCAAANAAGTACGCTAANANNNGTAGTTTCNNGCNTGCCTCTCCGCCGT CANNCNCAAANNAACTNTGANAGNGGCAGGANGANTGTNCGGATTNCATANNACTANNNCCGGTAGNTNNTCNCNNGGCN NANGATNCAAAACGGAAANANTCTGANATTGGGNNTATNATTANCAGCCNNAGNGATNNGANNNNGANGTTANNCATCNG GGTGGCCNNCAGTNCGNANAGCGNTGCCGGNCCGNGCNCANCTACAGGTGACNANAGGGNCGCAGTCAGATGNNAAGGTG TGCTAGNCNCCNGTCCAATCNNNCGCGGTAANNGACNCNAGNGGNTCGNTTTNCGTTTNCCTGNNCNCCAATGNTGNGGA CNCGCNNGGGGGTTNCCGNTCTAACATGATCAAANGAACNNCAGNTCNNCGTNNGTAATNTGNCTAAAAGNTNCCNCAGG ANNCNGCGGACANNTCNGTTTAGAGNTATTTATGAGGCGGTCNCGCNCACGCCAAAACCNNGNCCCCNTCNCCTTGANAC GANTNNTNACNTTGGGCNNATCGCTCNNNAATANGCACGNCAATNGTTNNGCGTAGCNNGGNNTCATCGCGTNTNGGANC GCCACNNTGTCGTAATAGAANNCNNGAANGNCGGTCCTGNTNCCNATCCNCTNGAACGGAATNANTCGCTCCGGNTACAG CNGNANGANNCGCCATNTCACNCGCCTACGGTATNNANTGNGTGAANNGTGNTTNANCCCTNCNCNNGTTNTNTNATCAN ACAGANNNANGATTTNGTGTGNGAGANGCCNTTNAGCCGTNGNTCCAAGTNAGGNCTCAGAGTCTGNNGATANGAAANTN AGGTTTGNANTTGGNNTTNTNNNCAAGCNTNNANTANTNCNANGAAANTAGTGANCACGTCGNTCCNANCAGACTCTCNA NNCNNGNAAGTGGTGTAAAAAGNGAGCTACTGTTCTTTGTGGGCCAANTANAATNGCGTCNNAGTCTNATTANNCNTANT ATANCCNGCGGTGGGGCTTCAGGGANGCTGGTCATAGTCNTCGTGNTANTGGGCNNAGAGTANANANGNCTGCCCCTNGN CCTAANCATTANNGACATCATCTCTTAGGTNAGTCNCCNTTTTCAGCTNCGGNCNAGGCTTACGGTCCCAGANGCANANG CNNCTTGNGGAGGNAAANTNCACNTANCCNAGGGTATCCTATNGCNATNAGATGGTAAAGGATANGCCCTATNNGTANCG NCTCAAAAGNATGANAANATNCGNCGTCGCNCGTCANNNGNATGACNNNAGTCTNCTCNGACCTTCNNATNGNCAGNCCC TGGGTTTNCAATTTGTNAAAAACAGGTCCNATAGCNCANGNGGANGNNGGACGGTCACNNNGCTNCCACCCCCNACNANA CGNNNNTCNGTTNGTGCGCNGCGATGNANNGCATCTCACTNGNNTGGAGNCATATNTTAGTNTNTANCANNTANTGGNCA CAGTGCCGAACCAGNNGNTACCCCGANNGATACTTCCTNGTTTGGGNCTAANTTNAAANANANCACCGTGGGCNNNANCG TAGGTGNCGTTTGGCTACGNCNNCANNNACANGNATACAANAGGGGAGGACCCAAAGGGANTACGGAGAGANACNATGNG CGCGATNACACATGACAANCTCCAGAANAGCCNNNCNCTTANTNNNAAGAGGGTGTCAGAANGTTGGANAGCTTCNNAAT TCNTTTCNANNTTGTGNGNCGGCNTGGTNGGGTNAGCGGAGAAAAATANAACGNCCTATCCTTGTTGCTNAGCCNTCANT GGGTNNNGACNTGNTNCTTNGNGATCGGACAATANCCNTATTANNNCCATNTCGNATTNNNNCTCANNCTNANNACCAAA NTAACNNNTACGNGNCNCANNATCAGTCTGTCCNGGNCATGTNNNCANTTTTGGGGACTGGCCCNNCNTGCCANANACCC TGTTANAAATGACCTNTNCGAATTCCNTACANCCNTGGCTGTTCCAAANTCTGGGGCAANATGNNCATTGCATTGNTGCA CCANANCACNGGCTCTGGACAANTNANGCNTAGGGAAGCGTGACNNGCGNCATAGCAAGANANNNCAATCCAAANNCTTN NCACAGCGGCNAANNGCTANCCCGNNTNTGAGTGGANAGGGAANGNAANCTTANGNGTTTGCCCCNTAGGACCNCGANAT CATCTCGATAGNNTNGGNNCCTCCGNGNCNTNTCNTGTTANCATTNGAGTCTGGTCGAACTCNTNNCCTATCCNTNANCA GNTTNAGTAAACCGNTACACGANGNTNACGAGNGAGAGTCATTTAATTAACCGACACCATNTGAAGNCCCCNGCANANCC AGCNTCAACTATNTACGCGGNGATCNTNAGAGCCNAANGTNTCATCCTNNGGGANTGTANACAAGAGACGCACCTCGTGN CNATAGCNNCCNAANANGCGCGAGCNCAANCGTNGNACAGGTNCCCCNGGNTTNGNCACAACNAGACATTANCAGNNNAN NANAGAGNTTNNTTGCGCNACACAGANTCNGTTNGACAGCTAAGCCCGGCGTTNANTACGNANGTGTTAAAAGAANANGN NCNTCTGGNCNTAANGTCAACTAANCNCCNAGCCTGTAGACGTTCAGCTGACANCACNTNGCCCNATGNACCTAGTATAC AGAACTTNCGGTGNATGCCNNTNAGANGCGTCNTTATNACNNCTTGTNANCNTCCNCNNAGTGATACCACCCTTANTGGT AGTAANGGCANTAAGANNNNCTAGGCNCNNGAGCCNCAACCANTNTGGTCTNTGCNNNGTGTCCTNANATCNTGGGCNCA TGCTNCTCNGCTNCAGTGTACATNAGGAATTGGCTGNGGATCCNTCTANGCGGGANATCTCCTGACCCCTCGCNGCTGNC GCCAATGNAGNTGATGTAAANTNCTAATGCGGNNGGCNGGATTTCANTNGTTACTCGGATTGNCGTACNGAAGTCCGAGG TCNNAACTANTGGCGAGCNNCTTNTCNTNTCNAGCANNTTNCGAATANAAGGTTGGTCCACCGCAANGTCTCNNNGGTCA NNGNNNANGTACGAANACCNNGAGATNACAGATNTACNCNTGTATNANACNTTAACTACGACNCCTTTNNNGNCCTCTCT GAAGGAACCACCGGNANGATAAAAGGANTTGAGCGNTCGATTCTCTAACANAAATCNAAACCNCTAGCNGNGNNACNNGN TATTANNNNGCGCCGAGACTATCCCTNNANTCCGGNACTCTACACCATAGNAGNGATCTCGTCTACTACCNCNGNAGATN CNCAANCACGACNACTGCGCGNTNNGCGTAGNAGTATCAACCCGNCCNAGNTTCTAATCGACCGTNNTCGNGTTACGTTA AANAAGCTCTGNGCTCTAGTCAATGGTGCNGATGCTNGCNAGACTTTNACTCNTCAAGTTCGNGTNNGTTTGTCCTCNAA AACGTACGNCGGNGGCTCGGTCCAACNGNCGCCCGACACGTGGATACACNTACNAGNCCANGGCNNTTGACNNCGACAGC AAAAGCNAGNGGTACTATGAGTGGTANTGGTTTTCTAANCATNGGGTCCGTNNCANCCANGGGTCACAGAATCGCGGCTG GTNTCGGAGANCGTTCAANNTGTTTTGTAGNAATGCNCTNAGATNNAACGNNNCGCGATCNANNCNGGCNATTGANCGAC AAAGAGCTGGNGGACTGACTNCNGTCTACNAGGCCCTCAGGNAATNAGTGANANNNTAACGNCNCNATNNGTGCTTNCAT CTCNATNAAGGCNNGNCGANTNCNTNCGCTNATTTAGNGNNCCTTTCCNGTCANATACCATTNGNANCAGGAGCAGANGT TNNNAGCAGTACNTAGNNCGCNTAGANNNGNCGCNCANCGTCAGGTAGTGNGGTNTATGNCNCAACNGCGGNTGACAGGN ATTCAGCNTGCTTNNACGGCNTGNCGNCNATGGGNGNNGTACGGGNGNGAGNTACTGGGGTCTCCNCCGNCNAGGGGGAC NCCGCANTNCTTACNNNAGNANNCGNAACGTCGCTATNANTGTNGNGGTNANGNGNTNNCGATGTTAGAANCTAGGAGGA CTGTCNATGAGNNGTAGCANTGNACCTNGGTCNGGTNGTAAGNAGTNGGCCANTCGCNACAGCTTGTAANAAGATATTAN NGANNANNNGGNTAGGACNCCACTTCTCNTTCNGNNGTGAGNNNGACCAGNTTNCNCANNACNCNNCACNCTTANANTAN CGGGCATCTCACGCNTTNTTNNATNGANCANCGTATTCTNCTTGANTTGCTNACCATATCCGCCTCCGNATCANNCCCCT NAAANNNAGGGNTGTGCNNNNCACAGGCANANANGGCTAACCNCTNAGCTTGGCTACAGNNNNCATCANGNCTNCNCCAT TANAGTGTTACATTNGCTNGNNACGCAATNTGCAATTNNNTGNTGCGAGGTGATANGCAGNGCCTGGGNNTTAANNNTTT TNGNGGTTCGTACGATNCTAATTANAGCGNNGCNNCTGGTGTGNCTTANGTGATNCNTGCGCCTANTTCGANNCANAGNT GANNCANANATNCNGTCCGNTANTGGNCCNGATNCANTCCNCTTCCAANGAAACGNATNNCTTCNATACCAAANANGANT NGNNCTNCANTAGTACCANTTCNTTTCCTCANNCAGCGTTACAAACTNTANNNGCANCGTCGCANATGTTGGAAGGCCAG TGTTANGNAGAGNCAATATATATTANTCTCNCTCTGTTTCCNNNNAAATCCCCGANGGCNTCTCTATCCCTCAGCGNCCT AACAGGTGCANGNTAANNGNGCGNGGAGCTAACGATTNTTCATTAACNCTGCGGGATAAANNCCATGNTAGNTGCCCANA NNATTGGNGNGACNTGNAAGACNTCGGNTATGNCNNGACNTATATAANTTNGATGANNAGGCCGNACAAGNTTNTAATCT TCGCAGNAGCTAAGTCGTNTCNTNNTNTGTCACGTTGTAGNAAGACCTCTGAAANGCGNGATCNGNANNGNANGANCGCT TTGATNATTCCNGCCAGCACAANGATCCTGNGNTACNNCNCNANCNGTGANCNNAAGCGCTTACTTCCGNNACNNNATCC CCGTATCNGCACANGCTGNCTAGCACNAGTCACANNCNNGNAANCNTACCNGNCGCNNACAGCCGGCCACTTNACAAGCA GGCNTATCCTGACGTANTATNNAATANACNACGTNCGTTNCACCNAAGCCNCGCGCTTTANNTGNNNCNTACCNNCNCTC TACNTGGANNTGANNATCGCATTNGTCTNCTCTTNANAGCTCNTCCGGTATGNNCCNCNGTCTATCTNACATTCTTGCTA CAGGAGGTGACATGGNNNTNTCNNAANNGATCTAANTCCGCCGNNGGTCNGTNNNTGTGCCNNCTNCCGAACNCTTGTCG AAATNAGNTNCTGNNCGATGGTGCTTNAAGANTACAGCAANTNCNGCCACNCTCTCATATTTGACTAAANNNTNGATCGA TTNANNNNGATTAGCCANNAACATANCNTTGGANGNTACCTGAAAAANGGTGANANAGTCNNAGTNCNATNCGGCATANC ANCACNGTNCAAANTGCGGCAACAANCCGTTAGNCANNCCTGCACNNCGTTNANNNNNNGNGANAGNNNCCGTATTTAGN CCCTGCTGCTTGANNTGACACCTCNTAGNGGCNATCCAACCGACTCTACCACNGNCNGATGGNCTTTATNTTTACNCTAC NAGAACCGNACGANAGCGNCTGGTCAAAGGNCNCGGTACTANNGTCTNCTCCNATATTAGTTCTCNTNCACANNACNTCA NNNGGATTCGGCNNNCAGGNATTTNTCTNATCCAAGACTGTGTTTGACTNNTATGANNGGNCGGACNNGCGATACTACCG CTGGCNCTTCAANTNGNGCTCGTNTTNAGTCGTGTNNATTGAGAGTNAGACGAAATNCGAGCATATTGTNTGTATGCACA GNGGNAGCTCNNGGNGNTAGCGGCTNCAGGNGNGNNTNGACAGCGTNCAAGNNTNGGNGAANGAGTGTCGACGGGNTTAT GGTAACGTNGCGNCTGANCCCCTTGGANCTTGTTAACTNACNCNTTTAGCGTCGAGNAATAGTATCCTANCNTAACATGG NCCNNGCNTCTACNNCCTCATTGNTCGNTGNCNCNATGGATTTTNCATNTANGGAAGATTNNANNTNCGGGAGCGTNGCC NNTCTAGCCTTCNNCTANNNTGTCNNTTAANGGNGGCGNATANGCTANCANNNACCGTATTCNACTTAAAACCNGGGTGA TANTCNACGAGNNGTNNNGNAGCCCCTGANAAGTGNATGGGTNTNCANCNACAATCCTACTATTNGNGGTACANGTGANC TGCNTTTTGNTTCNCTTTNGAAGNNGCCACCGCCTTCANNNGTGAATCGNCGANGCGTTNNGATGCTCCTNACGGAGNNC GTATCTCGCGNTAGTTNTCTCAGACCTGAANTNAGNCGNTANNNANGCACCNCGCCANTCCTANGNAGCGNTACCANTTN CGNNANANCANCNTNNTCCNGGGNTGTCTNCGTGCGACATGNANCNCCCCCTGGAGNNCCNANTATTTGNNTCANCGACC TTGACGAGNGNGGCCGCCNTANGTNGGCAAANCNTGNATNCACGGNATGTACGNNANGNNAAANNNGACTGCCNTAGCCT CTCTTGCCAGGGGNTTTGTNANTNCGCGNGTCNGCGAGGTCNTGTACNATGNGNNNNGGTCGAGGNATCGCNTACNCGCT GAAAGCTNAACGCTGTNCGANTCGNGNCAGCTTTANTGAGNNANGTTCANCTANGNCACATGAATCTAAANNANGGTNNC CTNTNAAGATCTNTCNGCTNNAGNNCCCTNGCNGNTACCCCCCCGACNACNTGAAANNCATCTACTCCGGTTTCNGTTTN CCCATNCATNCGGNNTNNCATGAAGACNGGNNTCGTNNGCNCAAGNNTNNAANTNGACAGNTAANGANTCNAAGNAGAGC NGAAANNGCATGCTGCCGNNTCNCCCGCGGNGCTTCNNTTTNTCAAGTANCGGGGCTGTTNGCAAANGNCAANCCAANTC GCTNTNCTNNATGAACGGTCNNANNAGNNGATNTNACTNTGNCCTATGGCGTGAANCNGCGTAGTGTTGANGNCGNGCAA CTACGAGGNCTAANNNNCTCTGTCNGTTCGGGGCTAGNTTACNAAGAGCCAACCTGNNCGGNCTNGAGAATGTNTAGTGA NAAAATCTNNCAGNNANNAAGGGGGGTANANTTTNNTCCTTGGGTGNGCNTAGNACGNGATNTGCGCATCANCGNATCGT ATATCANCNGGGCTAAAATCGCGTCANGNGGNNNGCCNNGGGACCNTTNGGAGCACGCGGTTCCACACGCNCNTNTAACN TAACNGNTANGNTTANGATCTNTNAGCTAGCNGAGAGAAGTGAAATCACCAGGGCCTATGTNACGTGTCNGAACTCCCCG NNGCCNAAAGCNGCATNNGGATGCCATGNNGNGAANGTTTCCAATNGTGNNGNAGTCTGANGNNGTATNTTTAACNTNAN NNCACNTANNTAANGGNTCACAGTNGNATNNTACTAACNCGGGTAGAACNGNCCNTACANCNCNCTNTNCNGGAAGNCAG ACANGACNCTCAGGCNACTNGNTTNTTCTCAGTNGTCCGGGATGACCNCTNANACAGGNGTNANNCTTTGCGGGGGACCN GTACTATAGGCGTGGGCCACGTTAGGNNNTAAGACGTNCGACGTCNTAATACTNTGTGCCGNCCAATACCGNACGTAANT NAANACNANTANTCTTNGTNANGTTNTANANAATTACGCANACCNCATNGNTGCGGGNNTACGANCTCTNGATCGCGCNA TTCGGCNGCGTAGAGGGTAGACTTCNCCTGACNGGGTGCTANGTATACTCCTANAGCACNTCGCTNNNGGGNGCAGAGNG NGTTGTGTTTGGTGACNCGGNAANTNTNTACCGTCTGANGATCTCNTCTTCTAAGTACTANCTCCNCNGTANATNCATNG NTAAAGCNTNACTANCGTGAAATTTTTGANNTCGAATNGCTNTCTGTACNCTTNATNGNGNACTNNNAAGANCCGANNAT NGNCAANCCTAANTNTNNATNNNTATGGNNCNCGTCATTCNTNNCNGNCTAAAGGCNAAAATTCNTTCCTGCNNTTAATT GGAGTAGTCNGGCTCNGTCNGACTNTGCCGTCCTGCATCTGCTATAATGCGTGCTTTGTNAGAGGTNGGTGGTANTCTAN TCNTNGTATGCTCCNAGGATGATCCGAGANAACGAACTGCTCTCCCNCGNANGNNGCNCNNTCTGTCATANNTNTGTCNG GGATTNNTAGCGCNAACTCACGGNTTGTANGNTGCCGTTGTNCCCNCTTTNCTCNTTGNNGTACNCNCATGNNGCCCCGA NNNNACNTATNCGAGGANTAAAANNTGCNNCNCTACGCTNNGTTCNCGNNGNTANTGTGNTAACTANANAATAGTCTGAC NCTCNCGNCTTNACGCNNNCNTTTGANCTCANCCCTAAGAGGGGATANGAACNNACTCGNCCGTNCCACTTATCTTNCCN TGTCTNGNAATNNGCGGTTTTTTGGNNTGCTTGACAGGANCTAGCAGTCACNTAGTCGNTCCAGGTTCCACGTGNACNTC ACCACTCGANCNGNNCAGATAGGGTAGGCANGCCNTTAGAANATTCNCNCANGCCGNCATGTGTCGTNGGGCGGCCNTNT NGGGNGGNNTGCGAAACTCGCCGACTGNANCTCTTNNCTCNGACNGATATCNTTAGCGANTTTCAACTTGNGTCTGANGT GGANTANGCGCNNACACTCTNTATACNGCACCNTACNCCCNGCNGAATGCNTACAGTAGCACGCTNTCNCGGCAGCNCTC TTATTTTAATGNGTTNGTTTNNCNNAAGTCNTTTNTAAACGGGNGCTGCCTTTTAGACTGNAGTNTCTATTATATTGTAG TGNGCNCGANGAGTTTNTCANTAATATATTCGGTGGCGGNCTCNAAAAGCNGAAGCTCGCNACTNAGGAGCGATNNCTCN TATGTNCCCACNAATATAGCCTTNGGGNCTNGGAGNNTTCCTGAGNACGANATACGGTTTGNGNATTTANATTCTNCTNA ANTNGCNNCCTGNGANTNNCNGNCCCCTGATCGAGTGTANTCNNTTAAANGCTGNATTTTNNTGNGNACTGTTTATAACG GANTTTATACNTGGCAAGACNAATATATNNCGNACGNCNCCCNTNTTGATAATTGTAATNTNGGGTANCGTTTAANGTGC TNNGNTCCGNCACTCAGNNANGGACATTCTNNGANGGACNANTGNNGTTTNGGCCTNGGNCTTTCAACAGTCGNAGAGCN ANATAAGCTNATNACCCAAACACNGAGATANGAGTTTNNTGGTAGCCGTNACCTTCNTNTNAGAGNNGATANCAGTGCAG NNNGANGGGNGACACNCGGTACGNCNNGGNGGTGNTNAANCCACNTGGGATTNGNGCNNTAGTNCNNANCAAANNNNTGC NTGNCTGCANCCTCGGTCGCGAAGGNNNGATGNGNTCTTACNAGANGANATCCAACCGNTNGATANNTNGGAGGAANNAG NATTCGTCAACCCACGGCCNGGANCNTGCCGCNTTGNGCAGGATGGNNAATNGCGCANNAGNACTCCCNGNAGNCCGNGA GTGTACNCTNNGAANATAAAGCAGNCAGGGANCNAGAATTCTGTACTANCNCATCAGTCCNCAGNCTGNATTTNTTCTGT CAGTTNNCGNCCCATNCGGGGAGGNNTCGGGGANCCTAGANCTGTGNTTTTGACGGNCCNCAANNCACANTATNACATTG GCCTCGGTGTAAAGNCGGGATAAGNTCGGCTTNNNTGTAAGNGGACGGCCACGNNGCTAATTNATANNANNGGAACATTA ACTTTGNGACATGCAATCAAGGCATNAAGAGGGTGAAACTNATGATCACTGGGTGGNGNANTGNATCACNGCTGNGCNNN TCGCCGGCTGGATATTNCNGCCTNTACNCCGTNNNNACCGCCNNACNGNGGCATACCNTTCGTGTCCTAGATTTCTNTCC ANTTNAGAANTTAGNTGGGGTGGCTGNNTGACAGCGTNCNNCTCCTTGACAGTTTNAAGGTTNGNNGCGANTGATCGNCG AAGTANNNGNAAGGCTTGGAGCNTCNCTTNTCGNNATGAGCCNACGNAGGCATCAACANTNCGGCAGGNTTTNTAACAAT TTCAANNGANTNAGTGCCCCCGGNACCTTTNCGAAGGTAAGNNGCNGNAGCTNTNAGCNGACTCCCGNNNCGCTAGACAC GATACGGANCCTTCTACANAATAGTCAAATNNCTNANACGNGTANCTANAGNAGGAGGGTANTGNAACANCCCAANCNNG NGATNACGTAACANAGAATGTTANNTTGAATNAGGANAGTGNAATAATCACTCTCNCTNNGGNCAATGCGACGGCNACCG TCAACCTTTAACCNNGCAGNTGNGTGTGTTTGCTGACGACTNCCTGCNNGNGAATCTCGTNTGGNTCNAAANNACTTCTC NNGNNTTCACTCATCNTNGTGATTNCCNAGGTNGCTTGGCTAANGGANGNNANTCANTGTGGNCNATGTNCTTNTAACGG TCATNGCTGGTCGNNAGATCACGGCCCNNCGCNATNCCCGGCGNCTCTANNNNAACANGANGATGGTGAAGGACCTNCGG NACTTGTGGAGNNNNNNCNCNAAGNGCGANNCTTANGGCTCGGCGCNGAGCNANATNCACAAATTNACCNNCTNTCTCAG TCCTGCGGNCATATGNGACTGATAAATGTNTGGNCCCNTAATTCANNGAGNCATCTGGCCANGGCCGNATNGNNNTTTAT CCACNANGGGATNNCANNATNCNGNNNGCGGGACAGTTAAGNCTTCCCTANAACNNCGATTCACATCGTNAGTNNAGTAC CNCAGNCTACGCNAGNATGAANTCNGNANNCCNACCNNCCNATCGNTTNCNCTANNAATTCNGAAGTTAGGCTGNGCCNN ANCTATATAGTNTAGCAAACTNCCAACTNGTCACAGGTTTATAGNGGCTTNGTTANGGNCGTATGTGAAGTCGTCATCCC ACGTGTGGTNTAAATTCTCTNAATATGTNCAAGCGATCTCGATNTGCCNAATANANATAGGGAGNTNAGGNNGGTTCTGN GCGACATCAGGTTCGTNCCANANNNCNGATGGAGGCTNGNACNNAANAAGGTTGGGATCNANAATNATTTGCNCCGNACA TAACNCNAGCAGCGNNCGTNGTGCTNCGCAAGGNGATGGTTTNGGGCNTCCCANGGCNCTNCGNTCGANATGAATACNTG CCANNGTANNGNGTNNNTTTNTTCTCNTTNCCTNNANTTGATGCTGCGNTTTGTTGNAAGNNGCNTTCCNCTGATCANAG ACTGCNNCACTCTGNNATNCGNTNAATNNNAGGCGCGCNAACGAAAAGTANCGCGCNCGCNCGGCCACCNCCCACGCNTN AGGNNTGNACTCTNGGCNCNCAGNANCCTCNTTGGNNAANCGNNCGCATTTATGTATCCGNNTTAGCTGAANCAGGTGAC TGATCANAACACAACTAGGATTTCGGNCGTTAGAGCACGNAGCCCCGGTTGANCNCGNNNAATTTATNCTACCGATCATC NGCGAAANANACTCATNGGGCCANCCGGCCAGCANTCGGNCCCNTNAAGAGNATAGANGCGTAGTAAAACCGTCGGTANN CNGNCTTGAGAACATNGNAGGAACCGCCAANCGGCTGTTGCTATTGTCGCNGTCACNNCAGTCTNACCANGTNANTCCNC GAGGTGGNNGAAGCCTACAANNTCCGGGNTACNNCATCNACNGNGCCGAGNNNACNCGNATNGNCTGCANCTAGNAATCT CTCNNNCGGTNCTNATGCACATNTNCCGGACTGNNACGAATAGNACCTAAGCNAGGNAATNNNCACNTAACNNTTAGGNN GNAANANGAGCGNATAGTGCATATCNGTAAGACGAANTCAGGATAGTAAGNNTGCCCNNGTAGGNANTNATAANCGNNAA TTNCGNTCTAGTCAACNGGGANCTATTCGTTTNTGNCCTTGNNTGTCGGNNAAGGCCATCGCNCGNNNCANTTNCCCAAG NNGTTTACAAGCCGGCGTTCGNTTNATNGGGGNCGACGGNTCNNGCACGNCCATNNNACGGCGTCTNCTCAATTATTNGT GGCNCNCGTCTNGGNTTNCNATACNNTCCCTAACNAGNCGATCCNAGNGCATGAAGGTTNNGCNNAGANCATTANAGATN NNNGGGTTNGCGATATCCTTAACCTGCNTTAGGGCTCNACTTTAGGTNGAACTCTGCANGCGNGGTCAAGNCTTGNANNT NGTCGTTAGANANANTTNTNNCGTTTATTCCGAACNCCGCTAGTNAGNCAANTGGCNTTCTCTCGNCGACCACGCNCTCC NNGCCAGTNCNNANNNNAACGCACGCCTGGCNTNCATATCNCCCCATGGCTTNTNANNGCTATACGNCCAANNNTAAATG ANCNATANNACNACNCNCCGGTACNGAGCCANACGAACCGANCGANNGTGGCGTNCGATGCNATNGTTTTCGAATCGNGA CTCNGCATCACNNTTGCATTAATNNGTANTCATGCNAAATTNAGNNCACAATGACTNAGGAAACCGGNGCCNAACTTCAC ATTNTGGGACNTANTTACATGAGGAAACCGTGAGNGNNGGAAGGNTTCNTCGATNNTGGCATGAGNGCTNCGGNGATNTA ANACCNNTGCACATNNNACCTGCNGAACTGGACAAAGACTACACTAGCCATNTTNNGCTNNNANGNGANGNNCTNGNGCG TGANCCTGTANAACAGTTCATTAANGTGNGTNCNGTNCNATGNTTATGANNGTTTACNACANGNNCAGTNAGAGTTTTGA CTNCAGCAACTANAACGACNNGNNAGCTACNNNNNACCNGANTACGTNTNGNCAGTCCNATNGAGANNAGGTCTGCANTC NCTAGNATNGGCAACNGCTTNCTNTGTGTAAGATNNCGAGCGATTCTANGCNTANCNTNGTGNTNAACGNGNCGTGTGNT CGCNNNNGGTCNGTNGANCNCTGAACNCGGGGAAGTCTTTACTAGTCTTNGNATTGCTNAAAGNCTNCAACANAGNGTTA GNCNGAGCCACTTGGTNNNTAGGNCGNACTTGNTCAGTGNGCGGTGTCCNTNTTANGNCNGCNTCTCCTAATAGGANNCC GANNNGCGACGGGTGNNCCCANAGCCNCGNNNACTATAAAACNNATCNCAGCGNNTGCTTGAGTTACTNCANNNANAGNT GTGTNTATTNCCCGCGNNACTNCTCAGATTGGAAACANNTGACNACNNTTGGNGNTNGGCGGTNTCCGGNNNTANCAGGN NCCTCATCGNCNNCTGNAGTNGACCNTCTTCTNCCCCAAAGNAATNTGAGTCCNCAGCNTCGNGTTATGCCACGNATNAN TGCTCNATTATCTTANNCNCATCACCAACTTTAGNTGTCNGTNCGTNCGANTACNCGNTATCATNTACAGANCTNNATNN TAGGTNGNCTATTGNCTGTGAAGNCAGNGCTAGGTACACNGTCNTAATNGANNCTNCCGACGTANGNCCNGNTATATCAC TAGGGTGGNCTACGTNNCNNCGANCTGNGNCNAACCCCTNNNNTTAAGGATAGGGTATNGCNTGTTACATCCCCNGGNGG NTGGAGNAGTCGANNAAGCTNNTTACCANCAGCTAATNGNNCNGNATTCTAGTTTGTTCACTGNTGATGTGCTTANNNNT NNANGCNACTGCTGNANGNNCTCGGGGCNANCNNATGCNCTTNCNACGCCCCCAGACGNACTGNGNGGANCGCCGACAGG GAGGATGCTGACNCTGANGACATTNCNNAATCTNTCGTNATAGCTNCTGCGTNGATAAAAATGACAGANCANCANCAGNG TACCCCGCATACTGTGCNATNGCTNAGTTNNGCTAAGGGGGGGGTACNNGNNATGCGTTGGTCNAANNATCTCTTNCNGG CATGTGNAGNTACANGGCCCNCNAGGNNAGATCTGTAAAACGTANTNAANACGCTAGNANCAAACAGTNCCGCCTGNTCC CANNNTGNCCCCTATACNNTATTGNATCTTTCACCNNANNAGNTGGTAANNNATCCGGTGANCTCGTAAAGTATGCTCTN TACTAAACATAAAGTCCTTNTNATNNNCNTGCGNAACNTNGGGCCTANCGACNNCNNCCAGNCTCTNNAAAACNTNNTCN NACNTNANANAAGNTATTCAATTTCTCNGGAANNCGTCCNCGCAATTAACCTCTNCGCATCTNNGNANGCNGCNTGGCAA TGCTAANTGGNGAGNGCTTGTTGTGAATNNCNAAGCATNTCCTCTNGCCANATACGTNNNNGCNNGANCGNTTNANCNNA CCGGCGNTTGACGTTTGNAATATNGTTAGGTACTTNCTNNNTGGNCNCATGANGCNGGTNGCNTCNTCNNGCATCATGCA ANAAGCAGCNNCTGCNTGCNGNCCNCGTNCCNACGAGCTNNAGGCNANGAGCATANTCACCCGGTCNGNTGTNATGGGNN GGNNAACACTNACNNTNCGNANNCCTNAGNTTATATGCCCGTCTNTAGTCANTGGCGCTANATCCNNNTTNAANTGGCTN CCGTCTGCNTTCACNGTNNNAAACTCTTTAANNNNAGCGCCCATCAAACTNNNATAATGTAGAGGGTGACAANANNACAN GGNCCNTTTNTTGGTACNACNCAAGGNNACNNTACTCCGATATNCCCGAGGTCNNTTTGACATTNAGCCACCAACTGTNT ATATATTCATCGNGGCNCNATNNTAACGCNCATTANGGCCNCCNGCTACCCAATCCGNTGNCGNTTGACTTTACCCGCAG TNGGNNAGGGACNNGNANTCTCATTCAAGGAGNCGTTNAGGCTACGGAGNANTCCACCTGGGATGCATGANGNCGNATTN CCTNGGGAATATANANGNTNNCTNNCATANNGATTATTGNCGNAGCNCTNGCCNGCTCGAGNNACGTTNGGTCGCTTGGC TTCCGNGTTCTCCGNGGCCNNGGCNNTGGAGTAGGTACGGNGNNTCNGGATGNACCGTGTTTGTTANNTCTAANNCCAGG CCGCNTTTCGTCNGCCNNATANATGGNTCGCATACTNNNNCCGCTATCNGANNTNGAANTNCNTTCCGCCCCCGGGACAN CNAGGCCCAGANAANGNTCGAGCGNNTAGACCCAACCNCNTNANGNAACCCGGGTNGTANGGNANNCAGACGGAATACNC GGATNTCTGCGNTAGGANTAGGGGAGGAACNCTTAANNCNCTGCNCAACTCTGGNAANATNNGATCANAANCCTGACANT GTNCNCATNCTGGCAGNNCCTGGGAGGGTCGGACGTCGNCGTATGGANTCTGTCNAAGNNAATCGCCCGNGANCTCNGNG GTTCANTGCATNGNTATAGGCTGCTGNANAATAATANTCATGTNGNGTNCATTGGGANGTNTTTATAAAATGGCNATGNG CCNCCNNCTGTTCCCTACTNATNGGCNTCGTGTTNAATTTTANGATTNGNGCTGANNAAGCCGCNGACCTCCAAANAAAN TTACAGCTNAAANGCNGTTNNNAATAGAAGACCNNATGCGNTTNNGTACTGACATTNGCGNACANAGATTNATAGNNANN ATCNCACCCCTNCNTCTAAGTCAANNCGCGGGCGGAGGGTGGCTCACANCANCCNTNACCACGNTTACACNGGANCNGAC CCTGACGCNGGCGTATACNTTGNNGCATCCNAATGANTNAACGTTACCGGGCTCTNTNGACGCATGNATNTGTGGCGACN CCNNNCNTGAAGATTGTCCTAATCGANCGATTGAGTATTTATANCNGGANTGCNNATNAATCCACCCACNNNTGNGNGCT TNAGCTGTNANGTNAGANTTCNNNAGNTAANGNGATNAANAATGAGTTCNGANTACGTGNTGCGGCTCACAANTCGTTTG ANCGNCCGCGCTAAGATTAGGCCATTGNNNCNGGAACGAGNATAGCTGNAGGGGTCAGCGTNCNAACGTNNTGNAATAGC GGANNGCACCNGACGCATGGTAAGGNGCCNACTTATCTNGGNATNATNTTTNCCNNCGATGTGTTACGTAGNCAGGGAAC NCNTGNCNCNNCNAGTTNATTNCTCTNCGNTGGCTNGGNANCNGAAATANCTCTCCAACGTATACCCTGNNTNCNAGAGT NACCNTGNGAGTGAANANANNNGGGNTTCTNGGGCCNNAAGGCTNGTGAGGCTNGGCATCCCNAGNCNTGNNTACCGNAG NNAAATNNGTCCANTTACGCNGGGNAACTGATNCTGTTAAGATGNGGNTCANTCTNNGCGCNCNNNNGGCNGACNNAGAC CGTNACATAACTCACTGNNNCNAGATGCCTNGTAAACAGNAGAGCGCAGAGTAGGCTCNNNCACTAGCCCATNTGNACCT GGTANNCGGACGANAGGGCGATTAACANCNGTTCNGNGNGTTGCNCAGNCACGGNTNGCATNGGNTGTNGTTTANGTACN GGAACGCNCGTGGTCNCATTNACAGTAACTCTGGTNNTCAATGTTNTGATANNATTGGGCNCNNCNTGCAGTCNANNGTA NGGGNNANCTTGGAGTGNTGAGTATCCGTCTATGGCTTCCCGTCNCGCCNTGCNACTNAGANCTTNNGCTGAANNTTNNG CNNCNTNTNGCGGTTCTCGCAGGTTCTGNCNTNGGTCCTNGGTAGTTNNTGTTGTGTTATAGGCNGTCNTAACAAAGTAC TCGGCNTNTTGAATNTTCGNCGTAATGGACACCNACNCCATGNGGCGCGCTTACTNGTAAGNCNNNTCTNGACNGNGGCG NCTGCGGNAGGATGGNCCAGNCNCAGTANNCTNNAACCNGNCNCGATANNTNNANNTGNCAGNGNGCAGTNNTANCNTNC NAGTNAATNGNACACNCNGCTNCAGCNNAGTCTGTTCNGGAAACNNANANGCATAGTGTGCCCATATAANCACGGNTATG TNCATGNATAGNANNGTATAAGTTNTCATTTANTANCNNNTAGACGCTCTTGTGGCTCNTNTCNATTAATTANTNNTAGG TCNCCNNANGCGGTNAGTNTGNAATTNCCGNATGGNAGCTCCACTTAGNGGANCTACGCNAGNNGNTGTGGTCGACAGTN NGGGNGCGCTNAGAATNAGATTACANTCCCGNGTNNTGCGGTNGANTNTTNTCGAGAGNTCNANCATNGCGAGGCGANNG CGGTAGACCGGCCATGTTTGNTNCCNNATNATNTNTTGTCCGNAGNTGCCTTGGACNACGCTNGAACNAGGTCACGCAGN TCNCCNTCGTTCNAATGGGGNCNCCGATTNTNNTAATGCTNCNNGTGGTNATANGCNTTNGTGATAATNTGNGTTGTTGG CAATGNGCNGGCAGAGANGTGAAATATACGNTCGGAATGNCGNAACNTTTTTGTCNAGCGCNGGTNACTANNTGTGTCNT NANCAGCTNNATANTGCCGTNTCTTCTGNGAGTCAGTTTNNCNCGTAAANNTTAGNCTCTTGTAGACCNGCCCNNTGGCT AGNNGNNNCCCCNCACCCCGACCGTGNGCCTAACAAATTCTNCANANGTGANCGTNTNNACNAACCGNCCTCNNCNCANC TTNTTGANCACNGGNTTGAANCCGGTCGGNTCANNGCANACCTNTCGTCCGATTACGANTATGTNAGACGNANTTANATN GGCGNAGANAGAACANTGTNATAGATNGAGACNTTACANNTTNGTNTCTGTNAGNTTNCNTATNGNTAATGNGTGTGTCA GNTNNGNGGNATGACNNNANGCCTANACGCCCANTAAGNGTCAGTGANGCCTNCANCNTCCTTNCNCCGCCATGACNTNN AGNTNGGGACTTCGNGCCCGNTANTTNAAACNTTNCAAAACNGGGTNCNGTTNCTGTTCTCGATATNCNNCGTCTCTNTC GGACCCCTTAGATGNNANNNAGANCNGCGGCGAGGTTGAAGNAAGNNTCTTNGCGNGGCCGAGTNCNNTNAAANCACACN CTGTGCATATATAGNGCACGNGTNAGCCGGCGTTACCCCNCGNGTNCGACATNGNGCGNCCANNTAANCAGANGGGGATT CNGNGCTCAATGATGCCGCNAATNNGCNACNGANATTTNTACNCCGGCNCANTGNNGAANNGATTGGNNTCNTNAGTNNG NTGNATGCTACCTCCTCNAGCGTCCTNACNGNGACCTTTGCTGACGGTANGTGANTAGGNNTTNTCGNNGCNTNTCCGTC NCGNNGTANAGNNTGCNCCTATNCGTNCNTCGTTNCNCTACANCACTGCTGTCTNNTTCCNCAATTNGNCGNTNGANNAC NANACAAGTCNNGTAGGACGCTCGNATATGATAGANTANNCCNNGCGTNGGATATTTNGGGATGNGGTGGGCGTNNNNCT NTTTAGTCGTTNNANAGCTTGCAGGNTAGNGNNGAAACTTNGGTCGANATACTANNTTNNTTCAANAATCAACTGCNCCG GNANTGTTCNANTGNCTTGCGACGAGAAGTNAGCCNGCNCCGGATACCGGNAGTTTGACTNCTCCNGNNANTTNNCAATC GNGGNCGTAGNNGNCCCACCCNNANGGATTNGGACGATCCGGGGNCCCGNNNCCANGAGGTTTNTNGCANATGTAGAANG TNACTNNNGTTCTANTGNCNCTGNNGNANAGCNCAAACNTCNNCTNAANTNGATNGNTTGGTGGGCGGTCGTGNGGAGNN TTNGTGGGGCNACNCNNANGCGNAGANCNANNCNNCGTATTCANCATNGTCNACGNGCNACATTCNTCNCGCNNTTTNTT GTCANNNGNGGNTAGCCNNTGNTCCGAAAAACAGCANGCNCCTCGTGNGCGTNCTTCTNTGTGAGNGGNACNGNGGGGTA GNGNTTNGTATTNGCCACCAAGCATNCTTCGNNCCCNTTGCACTTNTTNGNAAAGGCAGGTGGTNCAAATCANGNTCGGN TAGTCGACNCGAGNGNCCCNCGNGAACANANGTTCNNCTNCTNNGCNTCGGTTNTNNNAACCGAAGAAGGCATNCNTCTN TGNNNNGCANNNNATTNAANGTTGTTACGNATNCGTAGCTCCGANCGTCGNGNCCGNAGCTNCAANGGAGNGCNTNTNTT TNCCTTNTTCGTNNGCTTTANNCCCTGTGGCCNCCNNNTNNAACGTCCNGAGGGGNNAGNAGATNNTATCGTAGATNCCT AAANAGCTTNGCANTNNGATATNCGGAGNTAGGNAAATCTGCGAGNANAGAANAGGANTTCAAATCTGAANNCNCGCNCN AANGGCAAGGGNAATCGNNCGATGTCGCTNATATCCTTTGCTGNGCATNGTGNCAAGGATTTTCTTANGCTTNTANTCCN TGGANTGGNNNACTTCNNAGNNACNNATTAGACNNTATTNCGAAGANTCTCCTNANTGTCNACNTGCCTCGACNNTNCGA CCTNACCAAGNTNGCGNGAANCGAGACTGTGGTNATTCNGTGNNNGCCNCGGNAGTGATGCCGCNCGCTGGTNGCTGGAC CTACANTATACTAAGGATNGTACAATGAANCTNGATATATCTNAACGNTTAGNGNANGTTCGCGAGGNACNACCACNCGT GGNGGNNCTGGTTTNGNTCNCNTNTAANACGGAGNTTTTGNGCCCTNNTNAGTGTCACAAAGTTANCTGNGAGCNGNNTA AGATGGTCTCANAGCTCNAGTAGCCAATNNCNATGTCTGTCGATGACGATAGTTNNNNCAATAGANNGACATGACGCTGC NNTCAGATNANAGNTCCNANNCTNNAATAANGCCANNTTNNCGAANGNAAGATGANTTGTANTTGANTNCGANGTATGCN GTNGAAAAAACCCCATAGTTGAGTGCTTCGGTTGAGGTNGTNCNTGTGTTGNGNACGCGTTGCAATANAAGGNNTCGANA TGANGCATNAANNTCACCNNTNAGCANGNCGNCTACNANCCCTGATAGGNNANTANTGTTATGCATNTNAGTTGNAAGGG GNGTGTTNAGNTAGTACCGAAGCGGCNGGNGNCCACGNTATNCCCGCNTANATCGGCCAGACGGCCCAGTCGNTNNACNA NNAANACCGGNNTTNACGNNNTCTNTGTNGGNGNGGTTGNCGGCGGNACCATNTATCGCAAGNNNAGNGGANCGGNGTGA CANTTAGANCTTGATGNCGCCGGNNTGNNGNGGNCAGTAAACGNGNNNCTCTGTGACNTNGGTTCACANGNGTTCTAGNG AATGAGANNGNNGCNTGANCCNGCNCGATNCTNATNTACNGATGTATTAAGTANTTCCTTAAANACGTTANCTTTACNTG NGGTTAANGNTCGGNGGTGAANTCCGCTCCTCTCGANGTGAANNTNCANAGCNTGGGCNNANCCTACTCAACGGTGANGT AATCATANTCATGTCTNTNNCGTNTNGGCCAAATACTTANTACATTNTNTNGATCCGGTTCGAGTATNTAAAGANAGNAG CTCACNACATGTAANTANCNTTCAGNTCANATCAANCNAGGNANACNNGNNGNTCAGCTTCGGTTNAGCNNATCCGTCTG TGGCTCTACNCGCAANACCACAAAAACNATTCCAAATTTGGTNTNCAGTGNNANGCTATTATGTNNGTCGGCACNTAGAT CCNGAGTAGGCTCTNTAGAGTCCACCNGGCTNCTTTGTTNACANTNGGAGACNTTTACGTGAACCCNCTTGNATGCNAGN ANGTTNGATGCGNNNCCCCAATNGATANATNNTCNTNGTGATCCNNTATTTTNNACGCTNGCNANANGTCGACAAACGAC CCNACGGCGATCAATCACNGNGGATGGGGNNNGNGNNCCACGGNCCCACTTGGCCCNAGTGAATNTAAAAANCTNNCCCA ANAACGCACNCGGGTCTTNTTAACACCCNTTATCANTTAATATCTCNATNGAAACGTCTTAATGNNNATTNGACTACGTC CNTCNAGCCGAGGCCGNTGTGNATTTTNANCGAACGNNTGAAGNCTGNAANANNCCTNCNTAAGNATGCAAAGNGGTGAT NANTATNCNNCGNTCCATCCNTATNCNGCNTCCAATGGCAACGGNGAGAGAGCATNCCNCNAANANNTNACCGANNGNTT NGNCTAATCNCCGCNCNTGATAGGGTGNAGNNNTNTCGCCCNCCTANNGGTGGGGTATNGCAGAAGATNTATNAGGNTGC CCCATNTCNAGNTNCCNNGANNTAGTCCTAGCTGGAGANGTGANNGNNGCNCGAANCACNANANTCCTACCGTTCNCTNN GNAATTGCAACGANANNNTGGTGCTTAGGACCNNCCAGNANACAAGNANTNAATGGTNTAGTGAGTANGNGNNANGGNNC TTGCTATAGANAAATCTCTGTTCGATNCGGNCNTNATGTTAATTCGGCCNGTCATGNNNTNTACCGNCCGATTGNCTTTN NCNCTTNNANNCNGTCTNTTGNTANNNACTAGGGAANGCGNATCANGCCTGAANGATGNACAGGTNGGGCNTAANAAGGG TANTTNCTTANNNGCATATCATGCNNANAGNGCTNNCNANTTNANGTGCNAGTNTGTATACTCACGGNCTTNTTNNGTNA NTAGATAGCATAAGGAANANCCGCTCNAGTGCGCTTNAAACNGTNGGCTCTTAACTTTNANACAAGCCGGGACTGGGNGC NAGTCCCATNATTTNACCAACTGCNGCTCTNGNTGTTCATACCNCTCANGCTANNCAGNGACGACTNGGTNTGCGTGTNG TNNCNCCTACGGAGTNGCGTNGGGACGCCTNNGTTCCNGCCTGAACNNNAANCTNGATTGATNTATANCTNTCATNTGAA CGNAAANGGCNGAAGGGGCNTNAGGTGNNAGTGGTNTACNGGTNGTTNTNAANAGCNNNNAGTTTTTCTGTGAGNCACTG GCTNTTCAGNGNAAACATNNTACAGTCCNCAGNCCAAGNGANGGGTCCNAGTNTAAGCGCNNGANTNTACGATACGCNCA NAGCNGNANGCNGGNAGAGNCCNNNCNTAACNCGGNTCTCTTCNNNNGTGCNCTGTTATAGANTCGGTTCGGTGTCANGN CATNNGCNTTCNCCGCTCTGANTAGNACANGNNGCGNNNGCGATCGGGTAAGAGATGCNNCCAACGACCCGTTTNNCNTC CACNNGGCATAAACTNTANGTCAACACGTCNNNGGGNCAGANCTGTNCGNCAGANTNGNNATCGGTGTGNGTCTGGNGTC CCNAAANGGCTNNGNATNNCGCANGNGAATCTAAGTTCCACAACAGNATNAAGNAGCGAGCGNGTATNCNNCTGGGCNGA ANGAACTATCCTAGANTATCNCANCTCTGTNAGTTNTATTAAGAAACCAAGTNGTNCAGTGGNCNTTTNNCNCGTNGATG CTNGTCAGCNTNAACCCATGANAANGTNNGTANNNCTNTCTNGNGACTGCGANCTATTACGNAGANCCANATGGATNCAG CACCNCTAATAATTCGNCTANGTANTATANGCNNACCTCCACTCCATGGGACNACGCGATCGCNTTNTCACTCTNTTTNC NTCTNGCTGGNGANCTNANGNAAAGCAANTCGNTTCCATGAGNCAGATNTNANCTNCCGAANACGNTCTACAGACGGTCA GACATAGANTGAGNTCGCCNNCAGTTANGNACCGGCNNTCNGAAGTCGNTAACGCGTCCTACCCGNTNAGACCGTCCGTA TNATANNGCTCNNCGATTGAGTATCCTAATANCGGCNCCACNTGCCCNCNTAGANNCTTNCTGNTNTTTAGTGGNNAGTN ATGGCATNNCCNTNGGGTNANNACNGTNACCTTNAANAGCAGNNACTTTTNTCNCCTNTTGGCACGGGNANGANTTGGAC AANNCCGAGNGANACGAGTACNGCCNCNGACCTGGNTNGTCCCGNAAGTNTCNTCACAACGNTAGNAGGGAACTTTCNAG NTGTCNGCTGTGCNAACGTCCTGTATNGAATCATTCGGTTCAACNGNTAATNTGTGNCNGNGGCCCTNTAGNGNNNTNAT GNTGANGCATNTCGNGCATCCTGTTGGCCCNAAGAGNAANNNTAGNATNNAGNCTTCCANCGNNAGTTTNCAAGAGTGTC CGAGNGCNAGANGNCATTAAGATACGAAGATTCTANTACATTNCNGGNTCNCGTNNNAGGTCGGTGACTCTTTGGTNTAA TNGTNTNNGGGTCANANGNACTTATGCNGCGGNAGNAAGGCTTGANTTANTAATNATATATGNNATACCATGTNGGANTT AGTCGCTCNAGTATCATCTACGNTGCACANTCNNATCNGTGATAGNNAGGTNCGGACCTGGCTGAANACGATAGGGCANC CNTACGGCAGCTTTGTCATANCNTTNGTTTTGANNAGCANGNTNACGGGNCCNTANGACAGAGTCTCNTAGGACTGACCA CGATAGCGNTCCGCTGNGCCGAACATTAACTCCGGTGTAGGTNTATNGANTTTGTGNTGCTNTAAGGGNCGCTCTGGACC NTAGNCNTGTNNTCNANNAGGNTNAATTATGCCNNGAGNTAANANTANCGGNNATTTNGTGCCANCGCGGTNAGATCNGC CCNANACCGAGNCGCTAGTAGGTAAAAGACTGATACNGTCCACNGAATCNGGTAGGTGGCAACATGCCCNCCNGNGNCCT TATGGTATGAGTGNTTGAGTAAGTNCGNACNAACNACAATCGTCGTGNNACNTCATAACNAAACATNNTNGACAANCNTN NCTAACGAGCCTCAGANANCCAAGCGGNAATATAGCTTNANGCANNGNTTACTGGGNTTCNCCACNACNTATTCTTGCTA GGAATTGANNAAAATTTTCAGATCAGCTATGTANCGGCCTTCTCCNCTNNNCAGNTATCAAAGCNATNTACNAGNCTNTT ANGGTNGCTAGGAANGGAGGNATNCTGANAAACACNGGACGTAAAACGTNGCNGNNACTCAAGGGTCGCTTGTTCATATN TATNNCTCTAGNNGCCNTANGCGTANNTNCTTGNANGAATNCNNAANTGGTCATNTTNNTATGAGTGTAANTCCNTCGCA TGCTGNTCNTNNCGTGTNGGTAGTTCTTAACTGCCACGTAACGACGAGTNGNNTNGGTCCNTCCGGTGNGGANTNNTACG GCCNANANNTTCGGTGCATATCAAGTGGCGTTTCCTGTCGATCNCATTGANNGCANGTGTTTNGANTGCCNNTCACTTCN CGNGGGAAGNTNCACGANATCGGTTTNTTAANANNNGAGTNCCTGGNTCATCAACNGTTGNTTCCCTAGTNCCCTGCCAT TNTCCTCTANTTTGGTAGGANTTNTTNGCCGGCGCCCAGGACTCGNAGANGACNTGAGCTACACTNNGTGACCCTGCCCG NNAGNCGGTTNAGGCNCAATCATCAAATNGCCTAAGAGCGNCNNGGNTATNNCCATGGANNAACGAGGGNGAGAGNTAGA CCTNGCTATAGCCAAACAGATGTAGGGNACAGTGAATNCCGCTCGATAGNACCTCGTAGCANTAGNCAGCNAAACANTCG CCCTGGNGNANNGGCNCGNCTNCTTTNCACGACACAACTATNCGTATTCCGTAGANGACAANTANCTGAANNTCGNTCNT GTNTGTAATGTCTTAGNAGTTGNGGCNACGAGANAACNCGAGGGCAANANGGNAGGGTANGCANNCTTGTAAANTATNTG TGCGNNGNNANCTAAGATGTGGGCTGGCNTNCNCTNANTCTCAGCGAGTNNAGCAACGNGNCTNAGACNCNGGNTGTCCG NCCANGNTAGGNACTGNCNGTCGTTNCGGAACGATCCANCNAAGTCNGTAANNTTCCGGGNGCNCCTNAGNAGTNGCTAA TCCTAGCNTCCNNNCNTGGAAGNCAGATNCAANGGCNTCAAGTNGACAGGCGTTNGCCAGCNGGCNGCNNCNCCNAAAGG GNNTCTGAGNTACANANTNNCTGCAGNGAGACACTATAGACGCGTCGNCTGNNGCTAGANGACTGGCGAAANANACANGT TNGAAGTNCTAGCCNGGACGGCCNTCACCGCAGATNNTCTCGCATACGACGNGTANNCGCNTNCGANCNATNTNANTGNC CGTGGTAATNCAAGCGCATCGATNNGTNGTANCTNGCGCCCATTANGAGTNNCTNCGGTNNACAACCNTTTNAANNNANA GCTAGNAAAGACCATCATGTGTCGATANAAGANTTATGTNGNGNNCGNCATTTGAATATTTTGTATATTNGAGGTCGANC NCCNAANNNGATAATGCCNNTTGCGNATTCTCNCNCCNNCATCTGNAACGATCACGNCCCNACAGTGTCCACACGCNANC CACTTTACCAGNCCGCTAAGCCCTNACAGNTTNGNTNTNTAATCGNTGTTCTTGGCCGGAGCGNNANAATCAACGAACCA NAGAGTANTNGATNGNTGANGATCATTNNACCNNAACCCGGCNNTGCAGGNGGNTNCNCNGTTNNGTNATNCCNTCTCAG NCTNACGAGCTGGNCCGAANGCGTCNANCNATGCGCGAATACTGGTCCGAANTGANCGTGCNCCGAGNANTTGNNANNCC CTGTNCGTGGCCNGATGTCNGGTTAAANGTTCCAAGAGNTGTNCGCCCCGNNTCTACNNTTGACCATNGTANCGATTGTC CNAACTTCNTGCCTAGCNCNNNTCACATGTATGGCGGNNTAACCNTCTTGTAGNCNNCCCTCCNCANNAATCCTANGAGN CANCCAGCGCNCGAGGTACGGGCCAAATTCANAGGTCAACTTCGCAANACGCCGNNCTCTGTTGCANNCNGACTNCGGNT CNNTNNANNACAGTCGATGTAGTTTTNGTTCNGAGATAGGTATCNTCCANGTACGANAANGCCCCGGNTCCNNATCNCTC GTGCNGGCCGGNNACCNCACGCCAGGNTNANTTCCATNTCGGATGCACAGAGTCCTCTGGTGCGGGCAACNCCTNGNNNN AGTATCCTNATNNAGAGGCGNTNANCCGATCGNGTTTGGNGAACNTCNTGNGCNAAGNCGTTGNNNCTGTNGNNCCCGNN TNTAACANGATTCACATAAAGTATNATAATAAGGTCNCNCTNNCNANCTNAACGGAGTNGGANGGAACAATNCNNTGCCC NCTNAATCNTNATCTTGTNGGCANNCTGGGNATCAAAGCATNTNNGCGTCCTCTTTCTTCCGGTACCANGCGTANTNGCT TCCCAGTCCCTGANGNGTGGTNNNGCTGNTNCNTNGNANNNTGTATNCNAGCTTAAATCATGGGTCNCGTATGNCAAANN GANCANANCNAANGCGCNTGAACGNGTGNGATANTGGCGCCANGCCNATANTTGNTNNGACATAGTTTGTCCATTACCGN TTCTACGGGNCGNTANNNCNTTGCGNNAAAAAAGCCTAANNTCNNAACNNGTCTGTTTGACNCGNCANANGATCCCGGAN GAAGNCCNAGACGCCTTGNAAAANTTTACNGGTCNCCACNGGANCGTTTGAAGGGNGNACCCAGCNTCCGGGCGNCNNCA NCTAGTGGNGCNNGTTAAGNGNGATNGCAGGGNCTAACNTCCCCTAGGNCCCTNGGTCAANTNTTAACGGGAACATCAGT TTANTCCATACCNGNGAAATTCAATATCGGGCATTNNTGTNTCTTNANTCNGTNTNCCAACGGTCGTGGAGCTNNNCNTG GGCGAATACCGGCNCANANACCGGGNGTNGNCAAATTTTGGNGCNGAGGTNNNCGATNAGGCCCATTTGNAGGTCGNATT AGCCTAGGCNCTGNNGAGANACCCNATGCNACCGTNGTTNNCTNCNTNATNTGGTCATCGCGCGNCNTATCAAAGTCTGN TTNAGGNATNTNANTGANTNTNATNTCANNCATGNANAAGGGAGCATNNGGNANCCTTANTTTGCCGCGNTNNTACTNCG CGTCATNCTACTNAGATTTGNCATGANATCTNGNGGNCTATNNGATTANTCATAGGCGGAGCANTGCTATACATCGATGC TGTGTANCNNAGAAGANGNCTCAGGACNNAACCNANTNCNAGCCTGGAAAGNCTCCATTTCTNACNACGCCTANCGGCGT TNNTTACTTTCAAGCNGTGCGCNTTGGCCTGGTNAAGNNACCTNGNCGGNTACANGCGTAAAAATANNGCGNCCTTNNTN TGNNGCCTCACCGCCNTCTTNNGCCCGCATNACTATTAAGGCGCNCATTNGAAGGCTNNCCGCCAAGTGCGTCNCGNGCA TGTTNGTTCGNTCNAAAGAGNGNCCCCCTNCNCCNGNTTNGANGANCACCCTNGCGANCTCCCCNNTTNNTNNTTGCCTN NTNGTTTNCTNGCAGACACCNCGTCGTACCCCTCNGCTGANNGAACNTGNGTGGCAGNGCNATNACGNGANCGGTCNNTG AATGTTCCNTTGTNNTNTNTTGATTGTAGGACANNNNCNGCCATGGTCGAGGTCTGNACTCTTTTANAGNAAAAANCAAA NTACGGCNTCNATGGGGGACNGAATCNTCAAGAGTTCGTTGANNTAGTCGTACCTNGAANTGGGANTTGNTGTCCATANC NGANTTNTCNGNTCATGNGCTNGTAGNTGTGAANTGCGGNANGNCCCGCACACCGTGGAATANACACGCCCTATATNGGA CTAACANTGAACACNTCGGNCGACTGCTNGGGNCTATTNNATGNACTCGATGATAATNGTAAGATNNNGGGCCNNGGGGN ATNCACGNCNNTNTTGCCGGGGGGGGGTCGTACCNAGGNCANCTGGAACAGTGTTNCCTAAACNNAATAAGCAANATGCA GCATAGGTTNTNCNATGTTNNCGANATCNACANANCCTTNTAGCAGNTCGNGGTTGTNCNTANTNNANCGNCTNAGGACG CGCGAGTGANTTATTTNTNNTGANAACACCNTCCAATNCCNNAGNNCGCGCNGTGAANTCTCNNCGGNNCGTACCNACCA NCGGTCAATCGATTCTGCCGGGCGNNAAANAGGTCTGTCCANCNNACGGNNGTAATTAACATGATTTGACNCGAAATGAA TNGTANCGTGATTNNNTNCANNTGTNNANTCTAACTGNCAGGTCGGCCCCTCTCNGTTAANACCGCCCGCNTACNTNGGC GGNTNTGGCAGTNTTTCTNATAAGCGCNTCCTTGCAGNNGCACNTTANNCCTCTGCGANCNANTGCAAGATGAGGTAGGA TNGCTGGGTTGNTNATTGTAAATTGTACNGTTAAAGGCCCNGAGGGTCANACNCAAGGAGANTCTTTTGATAGCATTGTG CGNGCCNCNGAGNCANTTCTAAGGCTGCTGNCCTCCTTCAGNGCGGGGNATCNAAGTCGAGAGCCTAAATNTTTGTNTGC CNGNNTNNNACCCAATACGAANTTNAACNNTNCAGGNNNNNTCTCNCTTNCTANNCCAGNCCNNCACCTNCCGTNGNTTC CGACGCTATACGTTNTTTNNCCCAGNNGNNNAGNANTAGGGTTCGCATCATANATTGACNGTNTACAGNNCCCACNTNNN TAANGATNNNNCNCATACCACCGGNGCNCGGNTGATCNTAACGAGNGGACNTTTTNAGNTCTNNCNACAGATNTAGNAGG NAGGATCGCGNNGTTCTTAGTANCTGTGNTTCGANGTCNANTTNNAAATGAACGTAGATAATTAGNACANTAGANCTANA TCANCTCNACTNNATNANNNGAGNGCATCTANAACATGTCNAATGCAGACGNNTGNGTNGTTAATTNCTGTTATNAAGTA CGNTGATNGGACCTATGNGAAGCNNACAGNCACCCCTGTTGCGGTCNNTCNNAGNCATTAAAAGANGTTGATTGGNTCCT GTGCATTANCNNNCNGGTTCNNTGGTGCCGNGGTAGAACCNTTNNTNAATCANCGTANCCCTGNATGTGCGNNCGTAAGA NANTCNTGTAAACTGNNGCTTTCCANACTAGTCNNTCGNGCGCCCCCNTTNCANTCTNCGGANNATCTNATNAAATCCGT NCGGNTGTANNNAGGATACNTGCCGNGCTCNCCCCCTNCAGGCGGTCNATGGATGAGAGTTTNTTGNCNGTACAGTGTGC AACTCCNNATNACANGNNCACTNTCNNCATANAGGNTTGACCACTCGATGTTNGNACNNTNCTNCNGNCTACGNTCCGAC GNNAGTCNGTCCTGCTACNAANACTACTGTNGACGGCCNGCCTTCCTGCGAANTGGCCTCCTANTCTATGNGNACCTCTC ANCGAACTNACNACCAGGTGAANNATNCATAAAAANTNCNCNCGNNANGCGCAAAGNTATTTTAATACGTANTNCCAGNC TTAAAGNGCCCATANTACTNGGGNAGCTCCACATGTCNNAGAGGAGACACTCANGACCCGNTGTCAGTNGTATAAGGCAG ACCNNNGATAAAGCTNTGTNGCACTANACTGAGTNCNATTGTNCTGCTNGATATNAGGCGACACNTTACGAAANACNTNG GTNCGATGGTAATTNAACNGANAAGCATNANGTCTNTGAGCNCNCAGGCTNTCGNNCTAGTACNANTGTTNTNTGATNCA CATCATGCCCCTTATATACTCCCGGTNNNNAAATCNCNCANANGACNGCNNNNNCGNGATGNCTNNGCGTCTAGNCNCTC GNNNCCAAGCATCTCCCNGACATTNCTGAANAAGTCTANNCTNCANCCNACNCTNCCTATTTNNCCCACGCGNGAGAGGC GCCCTTNNGGATATTGATTTNTTTAANACCTGAAGCATNTAACTANNTCAGNCGAACTNGCCTNNACNCACATNNNTGGT AGNGNGTNNANATTCNCNTATGTNCTTCAGCNCCTTAACTCATGTNANNAATGCNTTNNANGNANNGNGGGCGACGGTCT ACTGNNACNACATGGNATGGACACCTACNTAAACTGCTCTTTNTGTNTTAGNGNGANTGANNCTNTGNANGCGTTTTTNA GAANCNCNCGTCNNCTTTATACCAGTGTNNGCNNNNGCAGCNGTATTANAANTCAGGGNCGGTGATAGTGACANCCGCNC NTNTAANGCAGCANATNCGGNTTGNACNGAGNANTNNCAGTCNAATATGCAACTGTGACTNCATCGNCANNCNATATTAN GGGANNGTTTGGATTGATNTNGNNGTCANANNNCGGGGGGNCCGACATNTACGNCCTGNGTCCAATNATNCNATTTCCAT ANNACGCNNGATGCNTCNATCTCTNAGTNGAANAACCTNATNGTCGGAGNAGCTCGTGCNNTGTNANAGTCCAGGTGAAG TCCCCACTTNGTNNGNCCAAGNGCGNAATACCAGAGATCGANANGGACTCACGTTTGNGAGNTNNACNTCGNATAGNATN NACNGCCCAATCAAGACGTTATTGNGAANGCCTGNANAGATGCCNACCCNTTCGNGCTACCAGNAGCCGAACTGGNTATN CAGAGNNTNCAGGCACAAGTTGTGCGTGTCCTGTGCCCGGATGNGNGTCNNCTTATNGNNACNGGATTTTNACTCCTTCG NCNNCCGGNCCAANNNTCCGTGAGCNNGNNCTACANCCTCCACGNGNTCNNGTTNCAACGAGTTCTCTTGAGCCGTNCCC AGTTGTTTCTAACCNTACGCTCGANTCTGGGCGNATCANTCGTTATATATTTNGAGNAAGNTGCANTGCGAAGTNTCCCG GACGCTCNTGNCCCTCNNCCCAGAGGCNTTGTCATACGNCGGNCNTNTGGGNTGTNGACACNAGTACGGAANTGTGAAGT GNTGAGNCTCNANNAGCANTCTNGANGAGNCACACNAGCCNNCANNCATANACCTGGTCAGTAGGGNAGCGCANATCCGC AANNGGTCGCGTTNGNTCCGGCCANTTNNTTGGNCTTTGGCCTTCATNAGCCTAGCTNATCCGCCNGNAGNGNNATGATG TAGGAACCCTTNACGATACNTCGNCATATNNATCNNGTCTNATANCTGCATCCGTCATCCGCCGCCATCTANCGGTNTTT ATTGNACTNCGGNNNAATAAACACTANNAACNCNCAGANNCNCTCAGTCGTTNACGGCNTNGTNGNTNCGNTNGCATCAG GTNCGGCCTGTACTCCCNAAATNNANNAAATTCNTNAAAGTAAATGTGGCNCNGCNGTCNGCAGCNCNTCANNTTNANNN NTCAANTCNCGNACCTCTGNNANANNTNATCANCCCGATAGACCTGTCTNNNGCAGTTAGNTCAATCGNCNATCTGCCTT TGTATGGCATNGTGGANTGCNNACANCAANCATNGCTTGNGTATNCACCAGNNGNNTGAGGCGGAGGGTAGNTNNTGTGT AGGNTGTTAATAATAGACCACGNGNACTTACTCGCAACACTCGTGCNGCTAAGGAGGNTGCTTTGCTGGCANCNCCGNCG GTTTATACTNNACAGTNCCCACNGCGNTCANGNNNCGAAANNAGCGGCTNAACCCGTNNCGTGTAAAAACTNGCAGCNTT CTAAATTNANGGCNTAAGTTNAGTAGTCNACNNTGAGGAAGNNTACTCGGNTANGTCCNATCCNCGATGTNGCAGAANTN CATAATNATAGANTCGNTNNGGTCANCCCTNNGGACNAGCNCTCTGCTACCCANNAGCATNAAGANANCANTTGGGATAA NAGGTTTTANAGTTNTCTATTNNNGTGCTANTGTGGTGCTNANNACATCNAGGNGCAAAGNGTGGATGCGNACAAGTCCN TCCTCGNACTNGGANTTGGAANCTAANGNGCCAGTGNNANCNTGGNTGNTCCNCACTAGCTGGCNTNNCCTCTAGNNNGG CNNNNAGTCGTNGATTGGAGACAGNCGANTCNTNTAAANGGTTTNCANAAAGNNAAGCNTAATNGNATNTGGATGTNGAC NNCACTACCAGNNCNCTTCTNACCNTCTNCNNNAGGAAGATCTATNNANGAATAGTCGCTTNGTCGTACNCCNCATTCNA GNTCTGNCNTAGCTATNCNTNGAAGNGACTNTGNGACGCNGNAGAGCNTACNNAATCNTAAGACGANNACTAGCAATATT TATAGCCGAGTCCTATGTNNNACGGGGGCNTCNGNCTCCTGAACGCTGGNACTGNGAGNCTGCCNNAGANCATGTNNGAN TNNACGCNTGAGNCCATANANATGGNNCNTGNTCCGTCGGCNGTCAGGCAANGTNCAGTATTCAACTCTTNNGGNGCNTC ACTNTCGCGTCGTACTAATTCGAGNGNATTTCCNNGNGCGGNAANCNGNTNGTGCGGANGANTTGTNCGCGGANNGAANG NGACACACNNCGNNNTTTTATACCTCATANAGNNGGGNCTCNCCCGGCGATGNGNAGNACNTGGAGAAGNACGGCATGGC CAGNGNNNTCGGTNGTNNNAGGATNATGTGGAGAGGNCGGANNTGNNATCTTNGCANGCNGAAGACAGATANAGAATCCG CATNCTTAGTAAACTACCCACGTNCCCANNANGCGCANNAGTTCAGGACGAGTTAGNTGCTTTNGCACNGGCATNNAGNG CNGCNTCNNCTACGNNTCNANCCANTTNANTNGGCCGNCTAGGAATGANATCTCANTNCGCNCNNGCANCANGCCAACAT TAAGAGTGCACNTANTATTGANTGGTCAGACNTAGTAGGCCANCACACACCACGNAAGAGANTGATCGNCCAATCACNGA GTCGCGGCTTCACTAACANCTNANNAGGNACATGCGTTCNGGAATGAGTCNGNACANAGATACTATCNNANTNTGGCNAC TTTCACACTGNTAGGGGNATTCACGNNAGTAGATCACTCAGNCGCNAACTGCGGTACNANACTATTAANGNACGNTGGAN CNNNAANACATCGGAGTATGNCGAATNNTNGNGCNGACCTAAGANTGANNGGGNGANGNATGGGTGCNCCGGNNTTANTC AGGTTANNGNCGGTGTCAAGTGNACTTTTCCNTCGNCAATCTCANCNNATNTAGCCACCATCNTNCTCCCTCGTGACGGN TNCTAGTNAAACATNGTTNGACGTAGNCGGAGNAGTNNANNAAAGCANTACTAGAGGGCNTCNCTANCCANTCGGNNGAG TAGNNACTTANAGTNTAGGCGCTNGTGTGGGCGNCCACNTNGTCNACTATTTCNTCGAGGGANANNTTNCCCGGACGGAA TNGCGTNACGAGGTCCNTANGTGNGGAGNNTNAGGGTTCGTNCTGGCNNNNTAGTGCCGNGGCGCCACTGCNAATGACGN NTCTGTATTACGTCTCTNANNTACNACCNCNACACNCNCAAGGCTCGATGAGCTNTAAATCTNACCTNNCAATCNGTGNG CNGATGATANCGNAGGCNCACGTCGCANNTCCGAATACACACAAAGNNGNNGNTNNCNGCNACTNNCGTAGTGANAGACT AANGCGANCGCGNNCAGNGNAGATACATAGGAATATNTTTAGTAACTCCCTGNGGGCCTGANNGNTNATTGACNAANNGA CGNCGCGNTNGTCNNGAAATNGTTCTGTAGTCCTGGNGTANTTNGNTTTGCGGTNGAGCGAGGCNTGAGCGCACCTTNCC TGNNCATNAAGCCATTNANNNCGATNTGTNNTTTCGAAANAGTATNNTTCNAATGGANNTTGTTAGCNTGNNCGTNCNCC GGATCANNCANCNCGNNTCCNCGCGTTTGGTGGTTTGTNCNNAAGATTNNGGGNCNAGGCGTAACACCTTTNNANAGAGN ATACGTACNCGTGACAACAATTGGTGTNGCNNTGTNNGTATTGCTAGCGCGNANGAANCNCCGCGNTTCNGGCANACNCG AAGTNNTNGANCACNGTGNCTGGTTNCNTCNTCACAACCGCGGGGNTANCNCTGAATTTGANCTTGNGNGGNNTNTTCAC NGAGTTGTNTNTGGGTTTNGCANACTGTTNTATNGCGCGNGGNTNTTAANACTGTGNTTTGCNGCCACGAACCTACTATC TAAAGAGGGATCNTNNGACNTGNTATGNGCNNNNTTNNCANGNNANGNTNACTTAACATANANCNTCGGCATACACNCTA GACTNATCCGTGCNNNACTGGNTCCNCNGTAGGCGACACACNTNCCCTACCAAAGGGTAAGGAATCCTCCNANATNAANG CATGGATNNNTGCTCNNATTCACATACGTTTAGATCGNGNATTTTGGAGCTTCNNNCNNTGTGCNANTGGTAAGGGAGCA CGTTCCAGNTCGGNCNGTATCGTCGTGCCTCNCTNNCTGCNCGNCGGGCGTAGCTCTNNAACCCTTTNTTGGCTAANANA CATTATACNNCTCNAAATNAAGNTGGANNCNCACANCTAGNTGAGCCTGGCAGTGGCTTTCNANCGACTNGAGAGNCNAN NTANANNNACTGTGNGGGACNGCTGCGNNACCNGGCCANAGNTNGCTTAGNANGCNCAGCCCAATTNNGNATAGNTTAAN GCNACNNGCCGGTNNNGNAGTCTCCGCNNCTATNNTATNNACAGCTNCCTTCCNCGTNGNCGNGCNACGNNNCTGAGAGA TTCGGGCCNNATANGNCGATTTATANGNANCGTTNAAGNTANCCGGGNAANATGGTTGGCTTAATNGTTCGCTNNCTCAG TNTTATTAAATNTNNAACACCCTNTTGCTCACNNACTAAGACCGGTTAATNNGNTCTCNNNTCAGTTNNCCAAACCANCC GNGCTCNTATTNAACAGNGNNNTCNCCNCNGTGGNCAATCCCTATTGTGANATCCNNTCCNGTNAAGGTNNCTCGACGTT NGNAGGCNGATAANTCNANGTAGCTGNNTTNGCCNCGTGNTGNGGGCCAATANATATAAGTCTTGGGCTGCCAGTCAANT NATNGGATCNCCATNTNGGGGANGTTCAGAAGNNGTTAATAGCANNNTGAATATGCANNNNNNAATTCNNNATCAATGNT GCNNTCCTNANCCAATACGATGNAANTGGCNCCATNTGNANCNTACGTNGNCATGANTAGTGCTTATCATNGNAGCCGCC NGNTGATCAACACTTCGCTNTGANTNGATGCAAGNTGTNTAAGNCCACTTNNCTTCGGGGATNTCNNATACACGTTGATN NGAAAGCAATNACCNAAAAAAAAGTAGNGTNCNTGNANNNCCNGATATNTTATGCCCCAAGGNNAAANGGGGTGACGCTA NNNCTCTTCATTNAAGCNANGCNATNTGTACNCGNACAGCCCNTCNATTCTANTTCNCTCAGNAAACANNTCCNACAGAN NCNNCNCTNATTANGAAGCATTTTTTANCGAGNTTTTNCTAGNCNTNTCGACGCGTNCTACTGGCGGNACCGTTGAAATC TACAACNCNTCNATGNCNATCAAANTTGNCACNGAAATCANCAGACTTNATAAAACAAGNCACNNNNAAGGTCTCNTGNG NCNTCAGNANCCTNTGTCTCGTCNATCNGGTCNCNGTCGNTNGGTCACTGNTNNNTGNGNTNTTGCAGCCNNTAAAANAA CGNTAGGTTCCGTNGTGNAGTCNCTGAGGTGAGAGTANNACCAGNGATTATNTCAAGCAACGNCANNTCTTAATGNTACC TNGCNGGCGNAGATCNTATGCGTTNATCANNNCACACNCGCCANGTNTCAGCAAANNCCCCTCGCGTNTNTTTGTGCAGA GCCCNCATNNCGCGNNTNTNCGTNATATCCGCCGAGGCTCNAGCNTNACACCTANGGTNNNAATGGAAGTNNCAGNGNCN CNGTTGTTCCTACGGCTATTAANNGGNGNTATGTTNCCCTCNCTTTCCGTGCTNNCGNACACCCNGTNGACGTCTTCANC CGNAATTGNAGCANACTCANGNTGCAGNTCTANANTGANAGCANANGCTGANGGGGATGGGGNTNTCGCCCGACATNANA NTCACNCTGCTANGTTCNGGCTTNGATTCCNACTNANNTAACNAGTAGTGTGANGNGNCNAGNGTCAACNTTCTNTTGCN CTGTCTCCGGGCNANTTCAACCNAATGCGTTCGACCATCCTTNTGNNTGTGCNAGNGNCNNTCNNNCACCGTTGTTNGNC GNGTTNTNACGTATNGACCAAGGCTANGTNTCCANGCNCTNGCAACNACCCTTGCNTCACTNCCNCAAGANTAAGNAACG CNTCTNNCACTGTTGGNGNNGTCATGACTCCGNAGNGACTGGCGCAGACGTNNNTATGTAAAANGCCNTCANCATATCTC TNGANNACCGCATNTCCNATCNCNNGCGTNTTNNTCATANGAGTCNTNTCNTNNGTCCGATTTGCCNTGCGGAANCAAAC TGTNANTTAGTTGACGTGNTCTTTNNNGTNAACGGTNGATCATATGACTNTGAANGNNTGNNGAGGTCCAATACCCACCC AACACACGTCCACGCGNGAGTANNGTTGNGCNNTACANACGGNGCATNCCAACGGNCGCCTGTNTTAATTATNGTANCNG TGCCANGTGCGNNCGCCACNTCAGGTGTTTCCNTNGANANNTANTCCTCGTCNNCAGTTNATANTTCNTACGAGNNCGGA CAGNANATGCATACGCGAAATANAAGTCTTNGNTCCGCTTNGCGGANNCNCTTTTGGATNGATTCNTTCAGNGCCTTATT CGNCANTCNTCCCGTAAGACANACGCAGNAGCTTNGCANTNGANNACCGGCTGAGCNANNCGNANAANCTNATAANCNTN GTTCCGTTGAAGCAGGTGGGCCCGGNATTNAGTCANAAACGGCNACGTGNNCANCNNNNNCCNATATGGNTACGNGCCAA CNNTGACTANNATACGCACGTCACTAGNTTATTANTTGCTNGTTCNGGTNGTNCACAGCANANNGATGNCAGAGGCANGT GAAANACCTTAANTGCNGNTATGGTTACTGNTAANGGACCNTCNNCAAGNGATNGCGCTNACTCTCGGCCAGTGGACTTT ACANNACAGGCNAGCGNCGATNTGGATGNAGNNNTATCCAGCANCCCANTTNNTAANCATNNTAGGTGGTAGTCCGATAT NCNGGCACAAGCACCCATNCCANNACANGTANCCCTACATCCNNATAACCNGTGGACAGNNCGCGTCCNNGNCNGATCNC TGNACTANNTCTTTGTNTTGTNTGNCNAACTTNNNNGTCTGCNTGATCTACNATTACGNCACTTNTNTGGNANNGNTGAG TGNTACAGTTTCTCTTAGCGTCACTCCAGNTCGGNTTCCGGANGGCANNTAACNGNNTNNNCGTGAGGAANTANCGTNTG NTNAAACNANCANAGANCGAAGGCNNNCNCNNGTCACCAATANACGGTNANCGTCANTGATTCGCCGCAGAGANNCNGAC NCNNCTCGNTNCTTNCTGTNNTCTCGANNTCCGNGCGCAACGTATCTACAGCATGGCNTNTCNTTGCNCCAGCNACTATG CNGCCAGCAGTANTCTGTGCTTGTTNGGNNCNGTCCTCCCCCNAGCAGAAGGANGTNCACGTATGTNCATCNGATGTCNN CCCCGCCGNTNCTCNCTAGTGCGNTGCACTANNGTNACTNGNTNCGTGGNAGGNGCANCNNNNGGCGGCCAGGNTGNGNC CTGNAGACCGGNACNTACNANAACANTTANACGCNGCNTGTNAANTNTCNCAANGCGGTATCNNGNTCNCCTTCCATNCA CTTNNGGNGGTAACNCGCTNNCTTNGGCANATGGAGNNGNGANCATCCGTNANGGNTGCCCCTGAGTCNNTTAGGNNNNC NNCGCACNNNNCTAGAANACNCNANTNTGGTTCGCACTTACCGTGGCATCTTCAGGAANACGCGCCGCNATGNCCCNTAT ATNTTGACGTTNTGNTCGACCGACCTATATNGGTCGGNANACCNAGCTAACGGTTACCNTTNTTNGCCGGTGCAGGGNTN ANNTNTNTNGGGCTTTNNGCCTATATTNAGTTACATGANCTCTNTTCTCANTGNGGTNGATGNNGNNNTGNNACNGACNC TCAGNAGAGCTGNAACACTNGANTGGCTTGTNCGCTTTNCGNCCACGCGCNTCGNNGGCTGAAGTGGTNNTATGGANCNA GCACTCATATGANNCCGTTATCTNGGGGANGGCCCCTACATTTCCNCAGCGTGTTGTNATCNGTTNCGATTANTAGACAC CGCGAANGNTNCNTGNCANCGCAGGGTANNGGGGGTTCCNCAGCTGNAGAACNTGAGNCAGTCACCGNTCTCNNNCTTGN NCAGNAGAANANGATAGTTTGTTNGGGCCNAACCNTCNNTTTTCNGCANTGGTCCCTTANTNNANAATGGAGNTAGTTTN CAGANCCTCCGCNTGNGTNNGCGTCCAGTCGTGCCTNTTNTTTCCNAANTNNNANAATNTGCACAGGNCCGNNACANCNG TGCCANCAATTATATNTCCNTGTGGGACNGNCNCTNTGCTCCCAAATATCCATNAATNCGGATTTCCNCACNNATCANAC TNNCACTCGTGGTCGNCCNGTAGGAGGTAGGTTGTNTCNAAGAACTCCACNGATAANNNNNTNNGNAGNCTGTTGNGTCA CCGAANACCCTNACCNGATNACCNCGGATTCNTTNNACCTACANNCTANACNCAGGCNCGTCNGNGNCGCGCAGNANCTN NCANTTNTNCTTTCANTACANNCCCNAANTTCCTNGTATAAGACCNANCAGAAATNGGTTAGAGTTGCNNGNCCCGAGTG ACCACTTTGGANAACAGGGTNNGATAGGTGCCGGCTCTGTNGAANTCNAATNAAAGNACGGANNNCANCNAATCGNCGGG TTTNANATCCNNTGTGNGTACTTATNCTNGNGACAGTCTNCTNNACTGNCCNNGGNCAANANGNCTTTTTCGCTCAGTAG AGAGATTCTNNAGGAGTGCGTGGANAGNTANGTGAGGATNCTGACNGGANNAGAATTANNGTGTGTTANTCNTAGGNNAN TCGANTNNTGANAGGCGCNTCCNCNCACACAATCANAGAGCCATAACNACTTTAGANGCACGNNGTNTCGANNGGCGCAN TACTCTTGGAACTGNATGTNCGTTTCTANTCNNANCGGTNGGCCGCCNTCCAGAANATGAANNCTACAAGNANTCCTCNA ACCNNAAAGAGGAGCTANNATCNTNNTAGANGNCNTACTNGACCCNTTATCTCNATTCGCNTGNTANCAATCCACGCCTT AAACGCTATAAAGGTAGGNAGNTGTGGGTATGANNCCNCNCNCNCCTNCGCNNNTNCGTCCCNANTCGTNTNTNTCNGAA GCGCCTCGAGNGNAACGTNCAANGNCAGANTAGAGANGNTNTNGNNAGTCTTTNGGGCNTATCATCAGTGTACNNGAATC NTNTNNCNCANTGNCCTNACCGNNATTACTCATAGTAGTNTCTTTCTGGTANGGAAAAGCGNNCGANAANCCGCGCNNCN NATTGTACNAAGTACTNGANTANGACGNGGACNTGATGCNGNTCNGNCTNATGCGGAANCNGACTGCTATACTCANNGGG AGGAATNTTATTGGCGAANGTCCAGTATNAATGNTTGNGGATCNGGTTTANGGAGNTTAATGCGAGNNACTNTCTATGGG TGNNCTNCAAAAGCNTNCTNNAATGCCCNGGGNNNACNATACGCNGGTCGGNCNATNNCNGCGANAAATGCACGGACACG TTCGTNACTNCNGTAATNAGATGATCNAACNTCNCACTNCANNACNNCACCATNCAGTGTGANCNGANNNGTANTATACT NGNTAGTACNGNCATGCAACCCAGTATTCNGTCTNNNGCCCTNGTNATNANGCCATNGCGCGATTCNNTNGAAGNNACGT NNATCNTGNTGGTCCCCGCNATTCTGACCNNGCTTNTACNTAAACCNGANGGTTTTNCCNATTNTAGTGGACGTAAGCGC GGANNNNAGANTGTANTNANNANCNANATGANGTACTCNCANACCTGTNTNTTNCGNCNGCANTTTTCCACTANACGCTN NGANACTTCGNATGGGTCGNGCTNNTNCNANAGGATCCTGGCNCCGGGANCATTGTACNTGTGNGNCAGGNNNAGNGTCT TGCATCTNAATTCNGTCNNGCCNCACNNNTTCTANCGTNCGAGTGNNTGGANCACAGTNAAGCTTCNTNCANTAGGNGAC TTANNGGCNNCAGATNNCCTGCNNNNTATCTNTNGGNNCCTNNNGTAGGTANANNGTTCCTGGTNNAGNCNCNTCCNCGC CAATGTTACATTCNCNAAATAGNTTNTACAGCNCGNANNCCTTGCCNANGATACAAGTTNTTANNCCGTNNGTCCAATNN TNNCANAATANNGNTGTGNAAATCANGAGTCTNACAANGTCCGCACAGTTCACTGCGTCAAACTCTCTCAGCCGNATTTG GCCGGNCNNTNNNCGGAGNNTATNTACACGNGTTTGNCGTTGNGTNTCGAANGGNNAGTCTGGTCNNCNCTCCGNTGNTC CAGAANCANGNTTCANNNANGNATAANTNGTGTTNCAAAGATTANGTNTACCGGTTAGGNTTCNGGGTTTCGTGACNTGN ATTGTCTNNCNCTANNAANCGTTCGNAGGTTCCCTAATATNCCNNNCNNTANAGNNTNNGCCTNTCANGNNCGTGCNGNN AGGCNGNACAGACAGCCTGNCAANACGANCCAGCNGANGANGNNGNNGCAANGAACCACNTATGGGCGANNATAGATGNC ANCCNCNTAGGCNGCTTNGNTCCNGATGNANTCCCTGTANCTCTCNNCGCGNNCNTGAGANNNTCNTCTACCGCNGAACC GNATNTAATNGGTGTCGAATTTGNGGTCNGNANTTATNGNCTGCTACGNCTTAATGCTCNGCANCNTNANNGNCGTGTNA NTNGGGCNAAGNTNTCCTGANCAANCGTTNGGGNGAAGCCTTTTCAANCGTCNTTTTCGGAGTTANNTTAAACNTCGCGC ANNTNANNGAAAAAGGGCNTGTANAACGATCCTGTTCCNTGTCAACNNNTTCTNNGTGTAGACGNNAGATNCANNCGAGG TTAACNGNTCTANATAAGGTNGNTGTGCNNGGGGTAATTGGGTGAACNCCACANANTTCNTTGAACNTTCGCATTACNAN ACTCGTNGTACTCCGGATNTAGATGTANCNNANNGTTCNTTGGGNTTNANTACANCANNNNACACGAAGAATCTTNTNCC GNGANTTTNGTNGTGGCATGGACAACCAAGAGTGACTTNAGGTTGANNNTACAGTCTNNTNAACGTTGCNACAAACCNGG TCNTTTNGGTNTTCACTNTNNAGGGTTAGACTGCTCCGCTGGGAGTTTCNAAANAAACGTNNACCNTCCGGTGATNCCGG CTATCTCATTGCATCNNTNACGTNNGCGACNCTTCTNANATNAGTCTGGTNCANNCCANCTGAAANTACNATTGCNNGCA GCCGACTNGNGCTNGCANATGATTCCTTTNNNGCNCAGTGAGGCTCCTGAATGAGNCNATCGATNGCANNTCCTAGTAAA AAAATNGAAGGCTTCCCACNCCACCNCGNGNCNATNGTANNNTTACGGAAGACAGGCNCGAGGTAAGTAACNCATTGTTG NGTAGANTCCATCCNCGTCTNTNCATTTACNGANNNATCTGGTCGCNTTGANTCTGCTACCAAATATTAGAANGTNATNN ACNTNCTAGAGNTGGCACATTTATCNTCGCGGNCCTACTATNGGGNCNTNANANTGGAAGGTATAAANNACCNGTCTNCC GGCCTGGGGCGNNCANCTCNTAACCCATGNAGTGCCACCAANCGGNCTANTGGACGTATNAGTAGNNNAGNNATGCNNGN TTTCCCAGNAANTTGATTNGCTGACCCGCCTNCTCNGCTCATNNAAANTTNTGGCTATTNCGAANGAGGATGGTAGGTGC GCCTNAGNCGCTGTAGCNCCANNNCCNCAGATAAAGCNGTNACNGTGAACNTGGNCGGATCATANNAGNNANGNCCNNCA NCCCATGGNNTGNGNTTTTCCTATANNGCTNGAAAACNNATCCTACTANGCCCTGGTNTAGCAGTTGNTCGTCGTNNAAG CAANCTAGAGNGATGTCNGCNTTNAGGANNAGCATCACCATGCTATTGATNGTANGGTNTATAACGTNACTGGAAGGAGT TGTTTANNCCTANTGTTAACTAAACNGGNGTNNNATNGCCNCNCCTCTGTNNCTNACAGCCCCNAATCCCGAATCGANNA GNCACCCTGTATTNNGATCACTATCGAGGTTCACTGCTCACATCNNAGATATTCTTAAGACGACNCNAGGNCTGCTTGCT TACTCAAAGGNGGCGTATCNAACTATGATANNGGNGANACCCNGGTCNTGTGCATGACNGCGCGGGATCTTAGCCGNGGC NANGTTCACNCNTNCNANTAGCCTGNGCCCTANGCGAGTTGCGNCCNTCNTNCTAGTGNNCAAGTTTATGCNCTCNTTAC CTCCTTATNCCGTGNNTANNANNGANGATAGCNAGTNATCCNTCNGCGGTGTNANTGTTCCNGNTGGCANGTCCTACGCT ANTATTGACAACCCTANTCNNANGANNCCCNACTCANNCCCTCGNTCAATNGTTNCAGACACTTNGGGGNNAGAGNAAGN CTCNNGNACTGTAGTNNCNTNCNNTTCACTTTNANNNNCCATGNCNATNGCTGACGGCTGCGTNCCTGCNCCCNCNNTNG GANCCNAANCNTNAGNGTATAGGTCCATTCTCGGNAGGGNAACGNNCCACTTNCTNGTGAGTGATNGTNNNAGTGANNNC TTGATCNANNTGANTTANCGTCAAAACNNAATAGGTCNTAGCCACGTGNNCGNGGANTCAANTACATTAGTNNGAAACNN NGGCNTNTGTTNCCGGCTCTATANNGTAGNGGATTATNGNCCAATNCNGGACTGGAAGGNGNGCANCACCGAGGAGACNG CANACNNAGANCTGAANTCAGTATTGCCTGCTATATGTCCGACCCTGCTTNACCTNTGANCTNNTTCNCGTTCGNGANGA CGCTATATGTTCNCCGTNACNGTCNNGCAGNATAGAGNCACCTNTGGGNTCNGTAANTCTCTCTAGAGGGGCNGCTCNAT TTTCCAGGNTNGTNTCTATCCGAGNCTTGATAATNGNTTNCGGTCCTNGTNNACATGCNGGCAANTTGNAGNTACNNCCG NGTTNNGGTTTNCTNCTAGGACGNTCNAATNCCAGCNAAGCTNTGGCCNCTCCGCNCGTCAGNTTGGACCNCNTCTGNTN TGTCGGTNGATAGGATGNNGANGGGGGGGTCNNGNNCGCACGGNGTNACTTGTCGAGTAGGAGNGGTNAAGNNNNNTCNC NTGTAGCNGNATTACTTCNCTGACCGACCNGGTNTANGTGTNGATGTAACCGGNCAAGCTNGAGCTAAANGGNTANAATN TANGTNAACGGNCCNNATGTCGNCCNGCCGNNACTGANNTTAGCTATCCACNNGGNNGTNAGNCNTTNACNTTTTATGGA ACAAACAGANNNTGGNTTGAGCGCTTTCTGNTTCNTNGNACCTAGNCACNGANCATCAGGGTTNNCGGCNTNNCAAAAAN ANNGNTCACTGATGTTNCGTNCCTAACAGTNTGTGGNGTNCGTNGCAGTNGATATTNAAACGACAANAAAGNTNCGNGCA GANCNNNCCGACNCCTTGTACCTGGCCNCGGCTTNACNNTGGATANTNCNCGGACTACNCAACGATTCNATTCGTNNNTA TACNANTGGTGGNACNANGAGGNNTACCNNNGTAGAATTAAGCATTATCTTCNTAGTGANGGNTCGNGNGGACGCGGCNC TCGGTATGTNGAGANGTCANCNTGCCNTCNTTATTAGAGNNNACANNGCNTCGCTCCAGACNGGATGAGCCTGCTGGCAT AGNACTAAATCCGATNCNGCCTAGNNTTTNTANANCCACTCTCNGNAANTGCTGAGGCTACAGNAAATGAGNGGNCGCGC CGTCCANTNTGGCGGTTCGTCGCANACTGCANGNCGATAANNNATGACNGCATGATNTACTCAGCTNCNNNTGNTGCTGG NGNNCTNTAGGGGATCNTGANTNANGACCGTTANNCNGATNCGCNANCNNCNNNANCNGNGATNAAGCAGCTTTGACNGG TGNGANNCAGGGNCAGGTCNGCNGNNTNCCTGTNTATTTGTNCNTNNTCNTGANTNTGGNTCTNNCCACATGGCNACCCG GCGCCCGAGAGGACTTCNCTAAACGAAGTATGTTAGCNGGGTGCTTCCGGNCACGAAGCTTNATTAGNCCCGATGGNAGG TGTACAGTGAGCCTNNGTNNTTNGCCATNAANCCTTNCNTGTCNCCNTCCNNNTCAGGACNCGACCTTNCNTTACACTNA ACNGTTNCAAGNNAGCGNAGNGAACNGNNACTGGNTGNCCGANACGNTNCAAANCTGAAGTCTTNNTNTTCGTNGANGTT AGGTGAGTACTGATTNGAAGAAATNTNAGCNCTAGGCNATNNNGTGGANCNGGATTCNANGCTTNNTNNANCNGGTNCAG AGCGTTCGGGTGCTGTACANCNNTAANCTNNANANCTGTANCTANGGTTNTTGAGATNCTTNCCGGGATTCGGANCGCAC CGANTCCNCGGTANANTTTAAGCCTCNNGACGAATAGANGNGCAAATTGNACAGAACNNGTATGNCCANNNNTTNGAAGC ATACTNTNNGACCGGGCNNGGGTNTATNATCGGACAACCAGTTTCGNGGAATACGGNNTCTGANTNTTTCTGNTNTNTGN ANGACGACNNNAGANCNCGCTCNCGNCCCGCACTTAGCNAGTNTGCNTGGNTNACCNANNGANAACNTTNACTTNNCANA NATNGTANGTAGCGCGTGGGANGGGNGGTTCGGTTACNCGTGATAGCCGNNTTTNGNNTCGANGCGCTNCGATGCNAGNT ACANTNATGNNCTCGTTTAGACTCATGNATNANAGACCCTNGTNGTTAACCCANCGGTTGCGNTGAANANAGAAGANCTA NGTCCGTTGCGCGAGCACCNATAATTNCGGTNTTGANGTGTCATTGCTGGAGNAATGTNNTANNGNTNTACCTCTCGAGN TNTTNCCGNTCACTATACCGAAACNAAGCANCCGTTGGGNTTGANCGCNNNCAACGTTGCGGNNNTCACTCAACCGGGAA GAGCNCGTGGTNGGNGCTTACCGCTGGAATCCGTGAANATNGGTATGNTGACCTNTTAAACGCCANACGAAANACCAGCT GCGTGAACTNCNTCCGNGGATCGCNGNGCGAATNANCTCTAGGNCNNTGCTCNTTCNATGANNNTNTTCNGGNCCGNGTN NAACTGTGTAGAAAGCNNCNNCGATNNGANCAGGCGCTCGCANNGTTAAGTNNTCNAGCCNNNNCCCCNACTNNGGCCNN TNTGNGAGNTGNNTGATAGGCTNCGCACGCNTAAGTAAGTGTNGNCNGGGGCTGATCTAGTCAAGGGNCACTTCNGCANT CTTTCCCCATAGCNNCTCNCGCGTGTGTCNTCCACCNAAANNGTCCGCGAANGATTTTNCCNCNTNATNACCNGCNTGGA CTNGAAACCCTGGCCCGGGANAANNNCCTGCGAATTNNTGNANGTNATCGTACNNNNTGGACNATCCNCCGANTNCCTCA NATTAGCAGNCTCTCCGNTCGCTTGTGANCGGTCCCNCTGNNAATNNGNNNAATACGCANCCTGGNCCNCAAANACTCGC NACTCCACGCCCTCTAGTTACNAGTNAGTNGTGAGTGCTNCNATNANCTNGCATNACTGATANCACNCCTTNNCTTAANN GGNGCCGTNGCCGGNCATCTCCCGCNCNATNTTTTNNTANCGCAAGCACNANNAGTCTNACNCTCAGGNNNCCTTCGNCC TCTNGTANNACTCTTCATTNNATTTCCAGCCTTCNCGANCATANTGGCCCGCGGGGTCCGCNNCATTNTNNAAAGCGNAN AGCTGGNTCCGTCGAAAAANCTCAANCCTGGCCTCCATCGAGNNGCTGCNTTCNTCANCATCTANCNCGCTGATCGGGTT ANCTNGANNCCGNAATCNNTANNGTNTTTCCNATNAGCGTGAGNATGGATCATTGGAGTNTNGNGCTGACCATTCGNCNT TANTNNNGCACTAAANGCTTTCACGCCTNGAGTTTTCCCNTCGAACAACCGCTCTTATNNCNGTTNCAACGTAGTANCGA GNNATAANAAGGGTTGNANTCTAANNNGTTCATTCTATTAATGCGTANGGNGAACNGTCNTAGTNNCTGATTATCATTNN TACGTCGTGNGCGCGACCGTANTAGNCTAGTGGGAGGAAGCCATGNCCTTNNTNAAGNCTTAGTATTTNNNCAAATCGAC TNCNNGCNGTAGTTTTCAATANATTGGNAGANCTGGNCTATACNNTTGTGTGAGTTNCTTCATTAATCTCANAANCCGNG NACNAATCCTGNCTCTTANATTANTGGNCCNTCNNTATNATTGNAANATACTGTCGCNACCNGATTTATCNCTGGCNTNC NTACACGCGGNGNAGCTTGNNCTTNAACCGCCAGNTGGCGTNNTCCGTGNGNACGCNNATGAGGTCCTCGTTNTNATGCG GTAANTNCGCCGTANTNTTCTCTTGNGCTTGTCNCGNNGNNGNNAATANCATAACTNGNTCGNGNACCTNGNNCNNCNAN CGNGNCACACNAGTTNTATTAAANNTNAGCANTCGGCTANTTTGCCCNTCCTNTATCTATAANCTANTTNCNGNNAAAGC CGCAGTGNCNCCATATTTAACCNTANTCGCCCNNAGCANCTANAANGCGAAGCCCTAGNGNNCNCNANGCATNANGTGTA TCTCGCACAATGNATCNGGATGTATCNGCTATNAGNANTCTNGANCNTTCGNATCTAGGNTTGAACNATGTAGCAGNTCA ACNTCTGCNAANTNCNTCATTCTAGGNGAGGTATCNGNNAATGNAGTNNCTNGGTCCCATTTNNAANTGGGGCGACCCGN ATGTNCCGNCAANTGGGTNGCAACCCAAACNGCTNCGANTCTGCCGTCTNTTNGTTCCNGANTANAAGTGGNGTANCACA GCGTTTACATGNNGTAGNCCNGGTANTCTNCCNAAGCNTAGGNCGCANNTANAAGTNCGTCNGANNCGNACGTCCNTCGA NAGTTTAGCNANTTGTCANTCTGATNCNGGCGTNCGACTAGCGNGGTCAAACCTTNGTCNTGATNATCGCNNCANGGGAA ANACAATGNGTGNCTACTNTCNTTCGNNTTAACCTANNTTTATCGNGTNGNNGATACANNAACGCTAAGAGCCCCCCTCC NGGATATCTAAGAGCGCACACCTNGNNNACTCCAGGCNNNATNANNNCGTANCNNNTCACNAGAAGTTGNNNCTGATNAN GTNNGACCGTTACCCCNACGGNCNGCATTTACGCGGGGCGCCAGAACATTATCCTCNGAGNANGTGNGATTCCTTTCTGN TACAGACGTCAACNTTTAANGCTCNGGGAGCTTAAAAATNGNGANTTNNNTAGCNTGTGTNANTGTANATNNNANNCCTT AGACNNGCCNTCNANGNNNNNTAGTGCAGTTTGNNGNCTTACTATNNNACGCGTNANACTGGTCGTNTANTAGNGATCNA TAANGGANGTNANNCCTNGGGNGATTTGNNTAANCAAGAGCAGNAANTTNTGNTTNGGCNGGGGTNCACNNACCNAGTNA TCGAAAGCNTNGNCGGTGCNGGCTGTNGGGTNTTTCTAGANTATNATCAAGTTGCTACCGGNNGAANGAATTCACCGAAG CNGNNTCGATGACTTGAGTCAGNCGACTCTNTACGGATATAAGGNNCACTAACAGGNCANTNATATTCCTCGNNTNCNAN GGCATCNANGTCGTTCCANGNCCGACATNTGTNGGTNANGTCGTCNCTTAAACGNGCCNATCGCACGGCNNNCCGCTNNN TGACNGTAAGANGCTNAANTNNCGCGCNCCAGNCNNNTANGGCNAGTTNCGANANGANTCNAGTNTNTGAGTGACTCNGC CNCGTCNTTTTACGGTTTTGACCCGNGGGTAGGNANTNTGACNAGNTNNGNANNTTTAATNCGGCCNCGNGGNCGCCGNA GACTTNGANGCTTANGTTTTAANCAATCNCNGTAAAAAAAGCTGGCNANNNATANCATAACGTAATCAGCANGTCCACAT TTAANNACTCCNATTCTCTNGCNGAGCCGANCCCACGACGGAGAGGCTCTAAATCNNCGCCCACCNAGCNCTGTCNCTGN GCNCCGNCACGTNANCTCGGACANCCNAANATGNACGAACANNNCTTGGTANAACTCGCGGCNCCGCGCNNAAAGGGTAG TTGTGCCNACATNTTTNCTNCGNACAGAATCACAAAGGNCNATCGGNGNCTCTCTNCACGACGTCANTTCNCNCGGAGNG CNNNNTNCATGANATNGTTACCTCCCTTNNNNTTNCGACGTNATCCNNGANGAATCACATNTGTCCTTANNNANACCGGG NTTTTGCGNNATNTATANGTCTCANTTCTTTTCGAATTTAACGGGAAAACNCNGGCAATGCGTGAAGANCGAAGCTCATG NGTGCAATAGNNCGCNTGTGGGACCGTGGCANNTTAAACNNGTCGNANNGANNTCAANGTAGGANGGGATGGTNTAANNN GCNNAAATGAAAGATANTTNGCATTTTCNCNTCTCAGTANTGGTGACNAGTNGANTGNNTCATNTNGTGCATTGCGTCAN ACCTTGTNNCCCGNCGTCGACGANGNNCACCTGGAGGTAATNTTATAAATNGCCCTCGGNTCTTNCGNNCTNGNTGCAGT NNNNAAATGCTAANCTNCACNANCGNGGNANGTNGCNGGCNGGACTGTGGGCNGGATANGGACAGTAGCNTTGTNATNAG GCNNATTCATANGANTGNCNATCGGNGGNGGNACTCNNGAGGGTACGTGGNNGGTACGGNACCCATCTTAAACANNCCCT ANAGGTAAGACGTNTGGCGGCCTAGNATTTCGCATGGTATTCGNTCAGTTCATCACTGTCTTNCGNANGATCGCACGTTN AAGGCNCACAGCCNGTCCCACNNCGNGGTAATAGTCACACTTGTATNAANACANNCCTNNGGCATTCNCAGGNCGTGAGA NAGTGNNAATNGTCGCNCNATTTNNGATACTCGNTGNGAGGNATGANTNNCAGAGACAGATTCGGTGATAAGNNNGTGAG NCCNCAGCGCGGNNTNANCACTNCNTATNGCATTATANGACTCNAATGAAANTNTGNAAGTGCGAATTCCCNCCGCAAGC TTCANNCTCNCNGCGNNCCCTCTCNTGGGNNNCNGGNATTTATNTGTCTGANTTANCGGNANANATCCNAAGNCTTCCGG NTAGNCCAACGAAATGNTCCTANCAAANTNNATTTCAATTTTGATAANTCANAGNNCNACCGNAGTTCNNGANNTCANCG NAGNNATANCNCGAAAGNATAGCCCCNNCATNACNCNACCANCANTTTNCNCGTNNTAGNGTNNNACAGGCCANGGACGA NANGNGANCGNNCANTGNAGNAAGNNNCGCGGNNAGTGCTAGGNAANNCTTGGTAGNCGTAAAGATGGTTACAGTNCAGT GCNANGGNAGACGANTNTTAGGGTNCAAGAGCTGTGNGGGGCTNTCTCCGGGCGATANAGTNNCACCTGTNGANATAATN CCNAAANTAATCATCGACACGGATCTAGTNATTCACTNGANGNTCCNTGCNACGCCNNCNGTGTCGTGCGTGTTCTTANN TCGCTNACAACCGAGGNCATNAANCGNGGNAAATTGACGAACTGTCTTGGGTGNCGAAGCNCTNANNGCGGTGGCAGGCG GACGNGNTGGCNATNCAGNCAGAGCAGGTTNTATATNGNTNAAGNGNCCCTATNGGNCGNNTTNCNNANGNGTCNCTCGA TGACGNTGCTNAGTATCAGANGNCNTGAGAGTTTGACTTNCGTNGNTTNGNTGGTACTNATNCNGTATTNANTACTGACN AGGCANCAGCNCAAAGCAGTNCATTCACTGNANCAACNCNNCAAAGGGTACATTATTNTTGATGACNCTCGAGNGANTCA GGACNAGAGCCTNCNGNGAATTAGTACACTCCGCACCTTNTGAGGTANNATCNTCAAGNGNGGACCAATTTCNNTNCANA GNGTNACTCNTTANTNCTNACATNNCAGGTAGGNNGTCCTCTNCAGAGNTNGCTAGCCNNNAACAGACGCCACACAACGC TNCTAACGAAATATCGCTNCNTGTNTTCNAGNCCAGTACGAAGGTCGCNGCGCTCCTNGCTATNGNACNTNGGTAANACA TGTNTNGCTNNATGTAGNNGNGGNNCTGACCNACCGTCTTCGGNNCAAATCTATCTNANNGGATNAANTNANNACGGNTT AAANCTGNNGTGCGTNAGTNGCGAGAANTCAANAACGTNCAGGGTGGGTNTNGTANAATCGAGGTACAGCNATTNGTTCT TNATGATGNNTTNGCGNTCCGTNGNNTGGGANTTCACTCACCNACCTGCCGCGACTGAAAAAAACCGTGCAANTGGAACC ANCCAAATGAACATNGNAGAAACCTACCATGTTNNNGTCTCNCNTTTGTATAACATCNNGNTGCGGCNGANACATGGTTN ACGGTAGGCNGGGCTTTTCTANNCAGGGNCNNAATTCTNNGTNAGGGGGTCAGTNATCTTTCCGGNNGAANGCGNNGCAA AGNGTGATGTTGCGCTCNAAGANGGNNNCCTTATGNGGTACTGNNCNTTATCGCACCCCNCGGTANTTTNNAGCGTAGCN NANNNNGNAGCNAGNGGANNGCTCCGANAGGTAAACCCTGNTNGNGGNNAGTTGAAACCNAGNTNCAGATNAGNNACTTN ATACNTNCCNACTAGNGGCGTCCNCCANTNCCTCAGGATCNCACTACCNGAATNTAACACAGATNTACGGCCCCNGGTNG GNCGTNTAGGNGCAGAGACNTGTCNAGCCNTCNAGTNNTTNTNANCCCTCTCNGTCACTAACGAGAAGNAGGCNNCTTNC TTATAGATTNNGCNNTCTTTGCNATTGTTAAGGCGCNCANGAGGAAANCAGCGNTTTTATCATACTTGTTAGNANNCCGN ACGGGTNGGANNATATTGTCTNNTCAGNAGGGNGNTATACGGGCGGNGANCGNNANGGNCATAAGACTGCGGNCTNNACG GNCTAAAACGGACACCNAGTGTGATTNCNCACGGCAAGGGCCTCGGATACTANGGCNTGNTCAAGATNNNTGNGGNTTNC TNNCCGNCGNNANCGCANACGTCNCNTTTTGCTAAGANNCCCGTNAGTACNGACACNGAGCGCACNGCNNTCCGTNTNGN CTANNNANGCTAGTAAGCTNAAAGNCCTTTTACNTNCGNNGNGAATCTGANNTATTGATTCTNNGCACNANCCCGGNGTN TTCNATGACTANTACGATCTATCTGNGTTTGGCGATCAGTCGTGNCGACTCCTTGCGCAATTTGNGAGAANANNACAAGN ATTTAGAGGNCGATCGCNGAANAATACGTTTGGCGNAGCTATCNAGGNCNGAANTTGTTGGCNCNAGNTTNTTTNGGAGA NNTCATANGGCGANATCATATCNCTGGNGATGCCGGTCCNCTCNATTAANCCTGACGCTCTTCGNAGNATNTNAGAATAG ANGTCCGTCTATNTACTGACNTACCCGCTNGGGTTCCCTANCGANNGTNCCGANNTNCAAAAGNTANNGGGGGTGGNGGA GCGNCNCATTNGAATTCNNNNGGAGCANTGCGGCGNGNCCGCTGTAGGTTACGATCCGCGATGNNAAGANGTNTTGAATN CTNNCANNTGTGCTCGNAGTCNGCNCTCGNCGNGNACTCACNTACCAACANACTTAGCTGCTACTTACTGTTANNANNAC NGNTAGCCCGAGNNGTNTTGTANTNGGANGNTCAACGGGCANATNGATTATGNTCTGGCNGCTNNCCNAAAGTCNTTAAC TTCCNCCCCCCGCNGAAGCTGACTCCCGGNNGTCCGACGACCCNTNGTGACTTCTTGCTTCGGCGTATNNAGNTGNGCCN TAAGCGGGNTNGTGCTNANCNNCCCANNANAGCACTGAGNACCACNGTNTTGCGTCGGNANTGNCGNTTATGTTGANCGN NGGAGNNGTGCCNNNCTTATNAGTCTCNNNATCTAAAACGCATTCAATTCTCGAGAANANAACTNTCGGATGGGATAGAN NTTCANGGATAGNCGGCATCAAGAAACNTCTACACCCCTCNCACCGGGGCGNGAAGGTGANNATCACCGGNGGCNNTAGN ATACATGAAACAATTANTGNGNTCGNTCCTNAGCCATGTAGGCNTCAGCTNNNTAACCNGTNGAAGATTCCCNTCCATTN CGTAGNAGTANTNCTNTGNNGAGTATGTNNGNTGATTCTNCATGNNCACGNNNCTAAGTNNGTTATTGGCCGGCTACTAG ATCGTGGANTGNAAAGNTCGCATCNNAANNNCCAGCTAGCNNCGGCGTAGACNNAANGNNNAGTGACNGGNGTATGANNT CTCNTNAAAACATGAANTCGCTGTGATTANTNCTAGNNGCGGCTTAGNGCNGCNTNTAGNACATTTTTTGCATTTTNTGA GNCCTTTCTTCAANCAAANGGGNNCNGACTANTCCNNAACTNGGCGACCATGACCAGCAGACNNAAATGNANGTAGGNGT TANGGCGCNANTCTNNAGCNCNCCCCTCCGGGCCCCACNCTCAATCAACNGNCATTGNTAGNTNGCNGACNCNTCNAATT ACAACAATGTTGNCGANCGCTTNGCCGAGNCGCCCNTGTTCCAATANGNGACACNGAAANCCAATNGGNNGCGAATNTNG GGGCCCCCGCGNNCCCTTNAGTGACGCCNCAGCTCNACNNGTGCGANTATGGNTGCCANGGNCGTNAATCTGNATACGTG GGATTAGCTATCNCGCGTGTGAACAAGTCCTCTACNGACNAAGTCNACAAGGTNCCTTAATTNATGAATTCGAGNTACAA NCANTCGATGTTCTATTGCNCCCNAAGTNCTGTAGACCCACCNAAGTNCCNANAATCGTATAATGCNGTGAANCCNATGT TNCNCCATGCTNCNNCACATTNNANTGAGGGNACGGGNGTTCATGNANTNGNATGATNCCACTGNNGNGANCNCGATTNT GGAAGTGANTNTGTGTAACGNNCNTCCCTGTGNGGNTTACGGTAGANCTNGGGANCNCANTCNNNTGNNCNACCCNCNAA CTGNGGTCNNGAGATNCNCTTGTACATGNNATTTNATAGGTCCTANTNGTNCNNANCNACCNNCCNTTACNGGGGGACGA CTCCNTGNANTAANACCNNNNGGTNGAACACGCCNNGCNATTGCTGTTGCNNTCCGCNNATAATNCCCTTAGGNAACGGN NNAGNNCGATGGACAATGNTANTTTGNANACNNGCTTNNTANTGATCNNNGGTGTANCCCTTATATATNCNCCAGGNCAG NTAGGCNTNCCGNCNCAGCTGTNAGGCGTGANGTNCCANANCCNNTNTNNCNGNACCNCAGGTTTNCAATTCNTGACTAC GTCGTCGNANGNCTCNNNCCCGNNGTCAATCGCGTGCGTAGNTCTTNATGNNTGAGGNTNNCCCTCTNCCTANAACTNTG ATAGNAAAGTCNNCNACTGGAAANGGAGACNNGANNAGTGACCANNAACAGGTTACCTTGCTGCCNCNANNAAANCGGTA ATGAAATCACNNANCTGCCTCCTTNNAACGNCGTTGNGTAGAAANAGNNGGCGNNTTTNGATCCAACGCCTAGGCACNTN GTGCTGTAGGCTTCGCACNCACCGGGTTCTTCTGNTNTCGGGGNACGAGNCNCGNNGCATNTAGNNTGTCNTANNAGGGA ACNAGNTCCCTNCGANNTNCAANCNCTATCACACATGAGGNANTAACTCTACANGGCTNNCGGCAANCGCTACANNATGN GNNCATATCTAGNNCNNGNCGCCACGGANTAGGGAGNGCACANNNTCGCATTTTCCGCGAAAAANCACGNATCCCTCAAG TTGCGGGCTGGACTCTNTCATCGATNCATCAGCACNATGAATNAAGCAGAGCGCGTCNGGTNTAAGAATNCCATNATNNC CNCTCTCTCNGNCGAAGAAGNGCCACGNTCCAGCTCANCNCCNNTGGTNTATCNNNTAGNNAAGNTGAGANACGNCCCGT NTTCTNTCTGNNCNCATACNTANTTACTGNGATGGTCAGATATACTTGNAGAGGNTGNANCGNCCGGGNTTTTTGNTGTG TATNNNATGNNTAAANNGCGTNTGTANNNGNTAGTGCGTAAATTTGCAGTACCCTAGAATGCAGNTTNGNANGNCCANNG ACANAGGNTTCCCGGTTAGGGCTTNNCGTGTTTTANNGATTNTTTNCGTCGTCCAAACAGANAATGCGGGCNCGTTACGT CGTGCAGATCCTNANAGNNCGACNATGGGNTGGAATNANCTCNCANAGCCTTANTAGANTCAGCCATCNAAANNGGNCGA AGCCNCTCGNGAANCGATCCTTTTACGNANCAGTATTCGATGNGGGCCAGAGGTNNAATTNGGTAGTANGNGCGNNGTTA ATGTCNNTCGNGGTTTAACGCCTANTAAATCCACCGCCNGNCNTGNTCNGGNCTNAGANCGNTTATNGGNACCNCANACC GNGNATGGNCACTCATATNCNCTTCNNGTTTAGTGNATCNCCAGGTGGAGNCATCNACCTNCNGNAAANTANNNNNCGGG ACACCNANNTCNCAAGNGNCNAATCCCNANACNNAGTGNGTGACGGGCTCNTGTCACCNNATCCGGTNCACCCCCNTCAC AANTGNATGTCAAATATNGNNTATNCGTNTNTTGGACACTCACNAGTACNCCTTGGGGCACCGGNNGAGAACGNNGGTNA CNGGGTTCCGAGGTTTATGTTATNCCNCAAGTCAANCNGNTGCGGGCTANTTGNATNCACGGTNACGGNAGGGTNNNACN GANCNNGANNGNCACNCANGAGTGTTGTGGAGNCNTNAGAAAGACTCGATCNCNANCAAANGTAGNCCNCCNTATTCGAT GNNNCGTTTAACNNACACNANGNNTTAATTANNTGNNNANCACCAAGCATTNNTNGCANNNGAGGGCGGGTGGTTACATG ACCNNCCGTTTTANACATTNATGTNNNNCAANTCGAAGTACATAGGCGCCANNCCCCTNCGCACCAATNCCAANCGACCG TANCGCTATAGNAACCCCAGATTTGNAGNCCGGCAAGTACATNCANACCANTANATNGAACAGTTCAACNCCCCCAGGCC CCGCNNCTTTACACNNAGAGCGCNGCAAGGAACAGGNNNCGCANANNNNGGGGGGCTATNCAATNNNCTTTNNACGAGCG AAGGGANGGACANTCNCNGAAAGCNGTGNCGGACATGAATNGATTGNACAACAAGGNNCNTTNTNANCGNGAANNNCNAG ACGGCTCGCNAATTGTNTTNNTNGANGCNTCACAGGNTCNCNACNCGCGACCCCGTNNCTGGNCACCCNATAAANCNNCG AAAAGNACGTNTTGCCTNGCNCCAGTTACNCGAATGGGGACCNTGATNAAAAGGACACAGGCGGNACNNCCAANTGCCNC ANAAANGAAAGCANTAGCCGTCATTCANGGAACNTNGACGGTCATCTGGTGGGCACNNNTCACCAAGCNGNANATNATCN ACGGANGGGGCCTAGNGANTANGCGGGTGNCGCCCCNTACTNGCTCGCNAGNNTAACCGTATAGCNTGTCNACCNANTTA NCCCTCTTANTNATAATNTGCCNCCNGTGTANGNTATNNGAGAGGTNCANTATTATNTCGTCNGCACAGTTATCGATGAT TCGTGAACCGTTCNATGGAAGTGAGGATNATNGACANNTGCGNCNGCCNTTTCANAGTGCANCACGNCNTTNNCGNCNTT NCTAATGANNNGTATCANGTNTTNTCATGCCGCNCTNCCAGNCCACATTTNNCTTAGCAATAGNAACATACTGGCTNCTN GCCCTTANTNAGNNCGATGGNTGCTTCCACTTGCTGTGNCTGGNGTCCTNNGCNGNANAACACGACATTCGCTGNAAGAG NCGAATAAATCGCTCTTAGTTACGGATNCNANTCNTAACAAGCTAACTTTAGCTGGATNTANCACAAGTTCNANANGTCN GGAANTCNNANGGCCGGATCCNTGNCGAAANAGNNANTCNCATNNCCTCTCAANTNACNCCGNANNNTNCTTGACNNANA CTGGTGTNACAAGGCCCCGCAGGTCGAAACGCCCCTCCNGANCNACCGGGGCAANNNTTNACGNTNTTGNATCNCGTNNN ATGANGCTNGCCANGNAAGATGATANNTANNTGNNNTTTTNTTCNCGCCCGCGCGNNNCGCGCGANAGANCTNTGNCACA CGCTAATCAGCTTCATCTNNTNAGAGGGANTNAGNGCACCTCCGANAGGTGCCCAAGGGTGCTACTACCTTNNACNNCAT TCGCCNGNATNCATNNGGCTNNANAATACATNATGNAAGGGTNTTAGATGGGNTTCNAATCCACCGNTANGACCGAACCG AGGNTGTNTTTNGTCNCANACANNTCCNGTCTACAGTGNTTGANTCNGTNAGCANGGATNACNNGANATAANGAGGNATA GGGTCNGGCCNNANGNNCNATGACNACNGCGGAGCGCCGNCTNNGCTCCTACTCNCNTGCGCGCACNNNNANTCAGGTCC CGTGTGAANGNGGGGGACNNACAGTNNTNTCCNNGACCTNNNANGGGTGNAGTCGGATGANCACNTNAACNCTGTCTNTG CCGCNCNCAGNTCGGGAGTCANNGCACAGCATAGAACGCCCAATCTCNGTAGACNGGAANGTTGGGTNGTCCNTCANTTG ACNGGGCGNCGNAATGCCCTGGTAGGTTGCAAGGCCGGGGCGCCGCTACCTNACNCCCGANGNATAGANNGGNGTAATAT GANTNNAATGNATGGGACGGANGAAGTAANTAANATCCTCNTCNCTTATGTAAAATAGCGGCTNCTGCCGCNTATNNTTC CATGTATTGAGTTNATANGTAGACATNCCNTTANGNANATCACNAANNGAATCNGTCTNATCGTNCNGTANCCANNNGGA ANGCAAATTNNTGACNNACANAANTNCGCTCGATCGANACTGNTCCGATTCTCNTAGNNGNNACTTCTNNTTNCNTTGTC TTGTTANCCCCNACGCAGCNGGAATGACCNNGNAACGTNAANTCAANGATCTAGNTTCGGNNGCGTANNTTTTGNAGCCA CTNACATNTATNNNTAGTCNCGCTTNTCTNTTNCGNCTNNACNNNCGTANTNNNATNGNTTATGCANNNACANATCNCTT GNCNTTGTNATNGACNNAATNGCNTCGCNGGTCNCNTCAAGAACCNTNTGCGCACGATTTNACNCTCCCTATACAANNCC GACNTATCCTTGTCGNGCACTAACTAGGTTNGGCGCACCGCNCNTNNNCNGTNNATNTATNCCNGNNGCTGCGNACTNNT AANTAGTNGNCNGGAGNTGGGCNCNNCGANGNNNCANANTNGGCCCCGAAGATCGGAGTCANCCGCTCGGAGCCGNCGTT GAGATACANNGANGGGATTTTTGATCNGGGNTTNCTNCGGCGANTTGGNACACGTCCCTGGGTNCCCGNANNGCGCGCCA ANNACCAGCNTGTCCCGGGTNGNCTATNTACTGGCAGNGCCCAGNACTGAATTCTNTAGNGTTGGTNACACTNAGTCANG TGTACCTGCGATGTTGNAAGACACCGTANCCTCACACCTGGATTTCAGTGGTGCGCTGTGTGNTCANCATTGNTCAGCCA ANTNTAGTNGGATTNTANCNNNNNCGAAAGCACNNNNNCTCGNNNTGTATAAAGTGACCNGGGACCATGGTNTCTGAGAG TGGNGGNCNCTCACACCTNCGCTNNCCGTANGNTNTGNNCNGACNCNGCNGACCCNGAGTATAANGTNTCCGCANCCACC TCTTCTTGGTACNGTAGCTCCAGANGNNATGNCGAGNGCGGCNGAGTCANNTGGATGCNNNATTTTTCTACANTNNTANN GNTGNGGCGCCGNGATCCGGNNAANGNTCCCCAACTTAGAAGATATTNGCTTNATAGAAAACCGTNCGATGTCCCCATAT CNGGAANAANTNCNTCNNCNGCNCNTGGTTCCGGACNTCCCTANNGNCTNATAGTTCNTGAATTTNTGGCNGNAAGATNA CACNCNGANCNTANATTANNTGAATTATGCATNGANNNGANTGNAGANATCNTGGACNANNAAAGGNCGGGGCGGACCAN NGTNANATAANAAGGNAGNAGCNTATGNCTACGCTATNNGGATCNNCACCAGCNCAGNTGCTCAANTCCATCNNNANTCT GTGCTATATTNNNAGCTTNAAAGCTCGCTTTTNGAATGTTNCNGCATCGGTATTGANNGNAANTCTACTNCGTTTCCNCT CCNCNCANNTNGCATGGCCCNNNTCGNGAACAATGANCTCCTGTACNTATATNCGAATAAGGACGCAAGTGGAGNNNNNA NNNAAANTNTTNGTCACGNGNNTCACATCCNCACNGGGNNTNGGNNACNANCTGGTCTGGCATAGCGGACCNAATGGNGG GGNCANTGTGGCAGANCACNCGTGGCATACTGACGAGCCCGTCGNGTNTANCNNTNNCAGCNTTCCGTTNGTAGTNCTAA NTGCNATAAANCNTATCNGCGNGAAGGNNNAGTCNACCCGCACATTCTNGGTAGCTTAGTNNCGATTGAGNCNGATATCN AACAATGCCTCCTCTACTNNTTNCTGCAATCNNTAAGNCNGGAGAGGCACCATGGTTACNCCCATTGNTGNTNAACNATT CATCGGTTACNCCNGTTCGNNNGCNACTNNTAGAAATTCGCGCTATTCNNNTCCTNNGNTACTNACCNTATTTAANTTGC NCNTCATCGCAATATTCGTTGANNNGNCTNATNTGTGNAGTNAACAGNCGNTTNAAANTCGANNNCCTTGCCCCTTNCCA ATNNAANCCTNTGNNCNCGNCTTACNTNCNTNANTNTGATTTTGNNGTTANAGAANTCTTGGGCATNTNNCANNAATTAG CTNNAGNCACNTAANNNCAAGCANATCAANAAACCNTTATNTAGAGANAACTACAGTTCCATNACAGCACTTTNGTGTGC ACNNTCATCTAGCCCGNTTCNTGTTGTTANCTTTTNTGANCGGTCNNNCGGATCCNGCCNGNAGAANGGGANCTACAATG CTNGNGGCTAGTNTCNCCTNTACNGAAAAGGANACGATGTGTGNANGGGNGNCACGNATNTCNGAGANCNCACCANANAA AANTTCACCAGCTTGATNAAATCAAANTGNNNTGAGCCGTCTNTTGANCTTAATGAAGCANNTACCGNTNCCANNCGNNT CAGACTGCGTTCACTNAANGGNGAATNNNATAACTTTGTAGGNNNTAGTANGGTNNCTTNTCGAANCGGTCATTTGTGGN CAGCTNTNAGANNTTGTTGNGGATTTCANNCGCNACANGNNCGGTCCNGNCNTCANNNAACATCTGTCNTCTANTAAGNC GTAANCCATATGTGGGTNNGTGAGGCCNCNCATGCCCGGTGCTNGCCAGCGCTTTNCTACNTTNANTAACCCCTNCCCGC TTAATAANNNAANTANNNAACCTGGTGAATNGGANNNCTACGGGTNAGGGTCNTCCAGANTNTAGCGTCNTGNCNCGTCC TNNCANTNACGCCCNACNGCCACGGGNNNNANTCTNGTNGNGCCCNCCCCCCCGTNCCCAACCTATAGNANAATAACTAG ACNTTCNGCCAAANCTNNTAGGATAAGCANNTNCAAGTAGAACCNNANCTNTANTANGTANGANNNCCTGTNAACANGTT ANACTCNGCCGTCGGGATGGCCNGGTGACNGTNCTAACNCGCGTCNGCTGNNNGATACANNACCTTTAAANAANGTCCCC CTGCTTNATCCCAGATCACNTATGTCGNNNTCGAATGAANTNNNNNCNAAANAGNAACTCGGCTANNCGTAGTCCCTNTC NGAATNTTNCNGTTCTGCTCANCNNATTGNCGTTCTNGTGCAGAATCNNGNATNGNNTNAGCCTCNANCCGGCCCGNTAT NTNNACCCNCAATACTNTATNNNCANNGGATATNCAANGCNNNNANATACNGGAATTGTTGTTTGCATGAAGNTCNGNNC TCTNACTGTTCAGNGGNTTNCTNNCCCGGGATGTATCGCATGAGTACCACNGTTTNGNGACCTTNGTCANAATGATACTA ACGCAGGAATGGNNGNNATNGNGNGGTGGTACGACNGCGGNTGAGANAAGGANNNNTTTTGTAATTCNAGCTTACTCNTG CCTANTGCTTCTGTAGGTACCNNCGCCATGTCATGCAGGATATAGACGGAGCTAACNGATTGTANTACCNATNTNNAACG GTCAAACGGTTGGATNGAAGCANCATAGCNNCTTGCAACAAGNNNAGATATGGCGCNNAAGNACCNTCCGCNACNATTTC TCAANTCTGNCGATGANCNGGNNNCGCNCNCACGNGGNCGTCCCCTAANAACCCTAGTTNNTCNAAACAAGTAGCCCTNN TANGNNACNANNTNGAAGTATCGNAAAATNGNNGACCANANGNCTGTACACGCCGNCCAATCTTTTANAGTGNTCTCNAG TGGTTTTCTGTAGGGGGNTTAGGNNTCGAGGTNNTGATGACTGGGNCCGTTTTNCAANTNCTGGCCTTTNGATNNTGACN AANGGNANNANNAAGTNCCGGCNAGTTNCCCNAGTNGAGCNACACTAAGNATCTACNNTNTTNNTAACAGTNANTNCANA CGCACGGNNGGNGNCNGAATCTCGAACNNGGGTAGATNGAGNGGATAGCCTTGNAATAAGACCGCAGGGTGCCCCTGATG CNGNGAATGGAAATGTNGNTCCTGATNTTGCNGNGTAGGCGTATTCTGCCGNNGTCGACCNNNTCNAACNTNGCCGNGCN GAACCNTAGAATNCGNCTGGGANGAGTACCNCGTATTTNTNATACCGTGNCGTATTGNANGGANCGTACNANATTNGCTA AAAGTTAGNNGNCCCNTTTNTTGNGCTNNGCTGANCTTTTTTCGCAAANGTATGACGGNNGCTNNAGGTTNCNCTGAAAT NTGANAGANANTNGCGNNCNGTNGCNCNNNTGTNCGGTGAAANGACCTNTAGGGATTNCNGCCCCNTNTTGTAGGATCAN CTNCGCCGTCANTCANTTNGNGGAACCAAAGCAACCGAANCGAGAAATNGCCCGNAGTNGTANCNCATGNGAAGCGANGN TNGNCGNGTACTTCGTATGAATNACNTACCAGGTNNAATAACTTCNNNTTCCTCACTCTCTCATCCGTGAGTTNTGTNNT TGCTACTNNCNGGGTNGATTNTCNNGGGACCGGGANGGANNNGAAGGNNGGACTGGNNCTTACTACATAAACGCCTNAGG AGTTNNCNCNNCCAACACAGAATCAGGCGNNCTTAGANATNNCCANCGNCAGTCAGTAANACCNCCGNNACTTNNGNNAG ACTTTTNNTNTGTCAGNGAANTGTCTGTGNTNGCANTGCCAGNCTNTTTTNACCNGTCGNTAAGGNAAANTCACGCNNCA ATGANNATGCAGNNCNTCAAGTGNGGATATACNNNNTGCGCGCANNNCCCCAGTNNTAANTGCCGNCCNTGGGNCAANGC ANGAANACNNTCNNGNCCTCATCTGCTGTGAATCAAAGTNNTGCAGGANGAGGGGTAGGAAACATGNTNNTAGTCCCAGT GNGNCNNGAGGNGGTNGGTNNCGGGNGCTNCNGTGCGNTGCGNGNNANNNTTTGTGTTNGNAGTCTNNTTNNGCNNTCGN ACNGCCCNACATCNGTTAGTNTCACGNANAGCCTGGTAGGGCACACTNACCGCAGNGNAAGNTNATCCGTGAACGNTCAG GCGACAGTAATCCTNCNGGACAANATAATNGAGAAATACAACGGTCCAACCCTATATNNTGNNNAAGNCGTATNCNNNNA TTCGTTTTCCCGAACGTCTCAGAAATTANCTNCTGTTAAAGNGGCNTAAGGTTCCCNTANTANGTAATCGAGTCCGNTCT CTAGCNTGTGTAGTCNGNGGAGNGGNNNNNTGTCTACNCAATTNGCTGGGNCTGAATGGCTCACAANCANNACGGNNCCG CAATTNCTACGNACTCACCAGTCCGGGCCCATTNCGNNCCANGNGCNNTCNCCGGTCCCCAATCGAGATAGCNATAGNAG ATGTTAANAANACTNCNAGNATGTCNTCGTNNCACAGNCNANGTCTCATAANACATCTNTCGTTGCCNTTTGCNGNNGNG ACTNTNTACTTGCTTNGNGTCAAGGNAAGTGACGACNAANATNCAACTCNAGCCGNNNNTNCCCNANTGACGNNCCNNAG GGTGNGNGANCTGGGTACGNATNACANNANNGCNAGNNCGTTTGTCGGNCACTGNGNCGGAGGANCTCGGAATGGNTNGA GTGCTANTCCTNAGGATCNNNGCCGANTACGACCGCCANTATNNNANGTTGCTACGTCGAGTNGNCTGNCNTNNCNCAGT NCNTCTCACGTAGGTTANNTCGTTCGAGGCNCTTTNGTTTAGGGAAGNCAACNNGANATNNTCTATNGTNACCNTCCGAC NNCGCGGGNTTNGCAGGNAGTACTNGCTTACGGANTNCGNNCNATNCTCNTACNGNTGANGNTGGNTCTCATNGATCGCN TNGANNNNAGAGAGGTCGAAGGATGCATGANNNAATNCGCNAGCTGNNACTCCTGTNNTNTNACCGGCTNATTTACGTNG GCNGACANGACGCACTTGGGNNGAAACCATAATCCTGATGNGCNAGAATNTGCCNCAANTTTGTTCNANTCNTTATTCTG TNACGCGCCCTTACNNGCANCGNNNCGCCAGTGCNCANNNNACNCNNTCGGTCACGCTNTTNCATAGCTGNGAGTNACCC CCANTNACNCGNTCTTCNGACNTCTAATNAAATTNTGNCAGTCNCNCTTNGTTGAACCACCNANTGTGCAGNNNAAGNCA ANACNGANTNGTCCTCTNNCTNNCCATGCTACGCTTNTGAACTGCCGNCANGAGCGNTGAAGCATGNCNNNNCCANCCCA ANTNAGGCGTNATNCNNNCGTTNANAGCAGATACACAGCCTCANTCNTNGCGGATTCGTCNNTNNNNAGATAGCGAANTC ATNNTAAANACGCACAGNGCCANCTTGACTCGCAGATCAAATNTGAANGANCNTAACTTACNCGNNNCNTCNANTACAGC ANCANGTNCNCACNCNNCTGACAANANATGTNGACGCAACCCNAAGNCCTCGATCGNGTCNCTGGAGATTGNACNGGAAN TTTNCAAGNCNAGAATAAGNGCNACNANNTAGAAGCGCATNTNCNTNCGANGCGGCGCNANNAAACANANGTNNCTCCTC CAACCGNNCGCNCGNGNGNTNCCTCNACANCNNNTCANTTNNTCCCCGCTGCNATTTNCACACAACTACACTGCNGTTNN CGGTATNTNTTACNNTTTTNCGGAANCCGTNCAANANCATAGTTGAAANATNAGNTACNGCGCAACGANGNCCGCGTANT TAGANANATCGAGGGNCGGNGNNATNNTTNCGCTGATTCCATCTATNACAGGACACCNGGGCTCTGTCATNTCNNTCTNC ACATACNGAGANGTTCTGNNCGTNCGAATATTNTGTNCTGANTCCCCACCTNTATGGNACAACGNNCTGNGAGGGAGGAA TCATNACATCGTTGATNGTANTAGGCCAGGNCACGTTNCNTNGTTGNGCGGGNCNAAGCCCCTGGAATCTANNTTACNGT GGGCNGCTAGNNACAGCAAANNGNNANGNTAANNTAGCGTGCTGCNTCGTNCTNNNGCGNTTANGTCCAGTTNGGCTTTT AGCCGNCGCGTNTNGTATGTCCTGNTCCAGACCAGTTACTTGCAAANAGANTAAANNNCAGNGCGTTGCAAANAATTGGA GTNAANCNTGCACGGGCCNATGATACGGNCGATTTGAATTCCGCAGNNNANNNNGCTGCTTNCATTTAAACGGNGCCCCA AGACTACTCCTGCNACGNATNAATNACTAGGCATGNGNNNNTNTCGNCAGAGCTCCTGCNAANGCAGNGGTCNTAGAGCC NCTGGGGNAGAGACACCNGGTCNTAAACTAAGNGGNNCATTTATCAGNGANTGAGTNAANNCATANGGGGCGNCAACTCN CGNCTACCAGCCCNGTNGAGNNTCGGNCGCAANTNTTATATCGTACNGCNACAGATGNACCATNAANGGNTGCANGATTN GGNNNTACGCCTTCTTGTGCTTTTTGGGTNGCAGTCGTGTGNATCAGTTTAAATANNTAAGANTANGGGCATCTCTATTN TCGANTCACATGTCTCANATNCCANCTAANTGAAGACCTANATTGCCGTACTTNGAGCAAGACNACTCCCNACTCCNNGA CNNNGTAACTNGATCNGGACGTGNGACATGNACTGTTAGNAANAGCCTANGGTATCANGGNANAATCCAGNCTNTNTTNT TNTNGTNGCGNNTNTCTCCNGACTNCGTNGNTGGNGTCANANACNCCTNACAGNGGCGTGCCGCNTTTTNGTTTTGGTNG GGCTTTTANCNGNGNTGTNTNACAGNGNGGGAGGANGGTATCGANAGGACCAANGNANTCCTTTTNCGATCTGCGTCCGT CTCTNNAACGTTCANGTGNTTCCGNTCAGANCAAGNTNAANATTCTCGGTAAAAGATGGTTCGGAGCTTAATATANNNGN CCTTGCTCCCTNNCCTCGACGGTANGNANGNATAANTCCNNNNCGNNGTNCNTTCGCCAAAACTCNAAAGAGGATTAGCG CAANCGNNCNACATACGGGCGTNCCTTCGANNCCAANTTGNGATCANGTGCNCCGCTGTTTTTNCTTCANCCNNGGANCC TCACGNNGCANATGCANGGAAAANTTGAANAAGATCCCCTCCGNAGNGCCGNGTCTCNATNNTACCCCNCTTTATCGTCG GGATAAAGCTGAAGTGTNCTGGGAANNATTGNCTGNCTCGGTACTGTCTAANTGTGTTAGCCAGTGCNAGGANGACGGAN CGANAGGGCCGCGGCACNCTANTNNNANAAATAANNTAATNTAGATGGGCNNCGATCGGCNGNNCTGCGACNCTNNNTGG NGGNATCGNCGGGGTTCGGACNNCGAGTTTNTCACTCTCGTTNAACGGTGGCTNGACTAAGCAANNTTCATTNGNGGGGG GACGANCNNTAACGATCCTCNCGAAANTTAGNTTTTNGTTNTNCGTNTGGACCNNANGTANAACTCATGCTGTANTCGCG GTGCCGNGCAAGNNTATATCNNGANCTTNTCGTAANTCTCNTNNCNGCCTTGANTGCNCNCNNGCAANNTCGNTCCAGTC ACAATGCNTANGCNTNNGATCCAAAGNGCCCNTCCTNGATCCAAGACTNCGACNGGTCTNNNGTCTTGTATAACNTANCT CNACAATGCNCGCNCTNAANGTGATATNNTCTAGNCNNCGANGNCCTNCGNGGNNCGGNCTTTCCACTNTCCCAGTGATC GGGCCATGCNNANCTNGTTATGCGGAACNTTGCAATGTGNAANATCNTGTGNGACNNAGCTATATNCGNATTGCNNNGCC NGTCANTGCGTNAATTNGACAGCCNNCNCTAGGTGNCANAACNCGAACGGCCNGGNTNCGTGNATNNNGGTTTCTANCNG CTCTCGGTGAGTGCAGATNGTCGTATNANNCAACGCTGNNCGGAGATAGATCCTGGNGCTTNNNCATGTCGAANNGCGGG CTTCACTTATTNATTCNTCTCTTTAANGACATCACNTNTGNTANNCAAGGCTGATCCCNGACGAGANATANTNNCNTNCC TAGTAAATGTAAGATTGCCANGCAGTCGACCATTGCCATTGNNCACNNAGTTGGGTTNCTCAGCTCGCANNTCCANGGTN TANGNCTAGTCNATNATNNGNNCGGCNACTTANNTTTNGCGATAACNGTGANATNTANGGTACTACTTTNCCNNTACTTC GNAGGNCATTCNTCCTGAAAGNATGGATCTGCNGNGCCGACGNGTCGNTGGGGTNNGCCNNGTTNNCCGNCCATNTAANA GNATCCTTCNGCGAGTATACTNNCCTNNGNATAAGNAACATATANTNTTANGAACNGGGACCGCGCTAGCNTTNTNACNG NCNGTTNGAGAGACACTGTCNACGANNNGCNCATAATTAGANGTGGATNTTGCGNTGGTATNNCCNATTNAANNNNGAGG NNATANTAANTTNTNTNGCGNGGGATAATCNCCCCNGATGGNACATCANTNNTTACNGGCGTANAGNAGNCAGAAGGCNN ATCNATAGACNCNCNGCGTANTNTAGCGAACCNCCCNAGNATAAGGNAGGGCNNNAAGNACGGTCGTCANTGGANACGNN NTNGNGNAGTNAAAGAGGGAATGGNNGGNGGNGNCATAAGAGGTAGTGAANNCNGNTGTTTNACTNGNCCTTTAGAATCN NCTCTTAATTGAAGATTTGCTCGCCNTCATCGCGNAGNACCGTCAGNGAGNTNNACGANGNACNGCATCGAANTCCANTT TAAAGCCACGGNCTGANCCGNCACCTNNAGCNTGTGCACGGCNAGCNAGCNANGATNCGTNGGTTAGGTCAGTATNNCNC GNNNATAGGTCTGANAAGACTGNCATNNACCNCTTCGNTNCATGACCAGATGTNTTATCTTATGGNTTTTTNNACGTTCN CAAAGNGGTCGAATNCGTTNCGANGCTATANTNANTCTATGNTNTTNANTNGGTAAGCNTNGNGACACATNNTNNCCANC NACNANNTNTATANAGATATGACCCAGTTTNNCCATTGGNNNCTCCNACNTAGTCAGTGTNGNNNTAANGNTGAACAAAG CCAGCTCCGNGCNAGAAANCNATGNNACNGGAGTTTTNGNANAGTCTNGNNNTATGGAGNGAGCGGCTACNGAGNNNNGN CNTTGTNCGNGANAGCCNNCTGCGTNGAGGGGANATAAGTNTGGTTGCNNTNGTAAGTTACTAAGNAANCNAGANGNGTA NNTTGCAAAACTGNAAATCNANAGTTCGNCTNCTNGTNTAGGTCGTNGGGTTTNGCAGGNGATANATTTCANNNGNCNCG NATNCGANCTATGCACTAACGACTTTNNNNGTNNNNCGNCGGNNANNCGTTTCAACTNCTCNAANGNTCGGGGGATNCGT GAAAATNTCNAGAGTCGTCCNCNAGGGGTNNNGGCGNNANNTACNGTGTNCCCNGCAGTATTCGGAACGCTCAATGAGCT CNGCCNGANTNNTTCTANNNGGGAAGATAGTTANTNGGNATCAATCNTNCNGGGNTACACAGACATTCTNGNTCGCCTCG TNNTGCGCANTGATCTNNANGNGAGGCGANNCGGAGGNACGTCGNCGCTNTGCNCCTAGNNGNCGNNCTAGTACGTNCGA GGAACCGGNCANCGNGATCNGCTNTTTCNCGGCNAGNCNTGGTCCGGTCCATCGANATAGATAGGTCTTNGATCTNTNAG TTGGGANAGCNNGNNNCATGATANCTAGATCNGTTNGATCCGNCCTCATCGNTCNATTNNCNNTTAGNGNNGGTTGTGAT TNAGGGNTGTCANNTGNACCAGTTNCCGNNCAGTCANCGGNTTCGNTNAGNCCNTATGGGCCCNAGANTGNCCATGGTTN NTTTCTCCNTAGGGAAATCGNCTTGTCGTCTNTAACNNTTATACNATCNNAANNTGGNTTANCGGGTNTANGGTCNNGNC CNANATGGCTAAAGNAAGGNANTNCCNNCTAATNCACTCANTAANTNCGGAAGTAGCCANTTATGTGATCNGGCTTTNGN TNGNCTNANTACTACAACANNANGGATCGNANGANATNNAANTNCNCNTGCAAAATCTCACCNCAATACTGANGANTGGN TNNTNNGNTAAGTACCCNCGTTTNCAAGACANGATTCNCGGCNNGTGTATCGNGTCANANATTAGNGGTCTNACACACCT NATANCNCATCNCNNNNGAAGAAGACTATCAANGAATNNCGNCCNCTATGCGTANGANTNCGACTTCNANNGTCATTGTG AGGTAANNGTTGTCGCNANTNANGCCACTGGCNGACGGTCGTAGATTGTGCAANGCGGAGTACNGAGAACTNNAATGGCG NGNATTGCCGAAGGTCCAGTNANCACTNCTNNCGACGTGATANNGACAGGATNGNNGCGACNNCTCCNGAGNCCNTGGAT CGNCAAACTGTTCNNCNGGNTCCGCGGCATTAGGCCGANGAGTTTACNACGGATNCATNCAGAANGGCATGCCCTTTTCC AGNANTNCTTTGATTTCAGNTACGTNCCTCTTCANAACTCCNTAAAAAGGGAAGCANNGNANTANCNTTTATATGAGTAG CTGCGATATNAGGGTNTNGTTAGNATTGANTNGATCGTAGGTNCNCTNGNNANTNGCAAGACANAGTCCNNNCGCACANA ANTGNTTAGCGNCTNCNGTTTTTTTCNACTTNNGGCAATAGCGCTTGNTGNCCCGGAACCGACGNCACNGCAATNGATNA NNNCCTATTTTTNGTCCACAGCGTCCGATTCTNGCNANGCCTTACGGGCNCCCGGANNNTCCATNNATATCGCGTATGCA GGCTACNANTNTTTTCACACTCTGNTAACTCGCTATAAGCGNAANCGTATAAANTAGACANNCCTCATACTCNNTGNAGC AGNCTNNCCGNTNCCNNTCNAGTGGTCNCNNGACGANGNNNTAAGGAGTCCTTAANGTGANGACANTCGCNAAGTTNTGC AGCNGCATTGCCNAACTNTACTAANNGNGCAGCCNNTTAANACTGNGTNNTACTGCACGNANTTCCCACTANNTCNCATA NNAGAGCNTGNTACGCAGGTCGCNNCCGTCCTGNAAGGNGNGNCCNTANNGNGNTGAGTNNCTAANNCCNGNGNTNNGGG CTGCATNGNCAATNNTGNCTTCTCNNGTGGCGGCTGTAANCCNTANCAAGCNTTANNANANTNGGATNCCNTCGTTTTNN CACTTNAGTTTCGAGATTGGTTTAGTTAAGTANNNCCANAGANNCGNAAAANCACCTNGGCGCGCATCCNTCTNCANCNT AGTCCNAGTAGNTGTNGTNNCCTGANCNTNNANGCGNATCCGCCTAGCTATATTCTTNTNTAGNCANTCCGCCTCNAAAC TTTCCCTCTTTTTAACNCNNANTCGAACCTATNCNTCGNATCCCTNGACGAGTAANCGNTGATTNCATANCTNCANCNCC NNGTCATCACNCNTNGCGTGCGATGTTGACCNANTCTNANAGNNTNACGGCNGATAGNNCATTNNAGTTCGGTAGTTGCG CNCCTCTGNTGNGANANCGGTGNNTATGNANAGCGAATATTCNCTNCNTTCNACNGGCGAAANGCTTGGNANGGCNGTCC NTTTGNTCGAACNGCGNTCTTCTNCTGAGNTCGTGNNTANCAGATTANAANNTCNNCTGNTCANCGGCAACTNCTNATGN CTANTCANTCCNAGCTANGGGNNNCAGTCATTCTAATTACNCNGGCGNANCCACTNCNCTGAGCGTNTNACTCACCACAC GAGATNTNTAAGTACGTAATNNTCNNNCGACGNNNCAATTNTNCCNTATACAANNTAACANGTTTANTATGGGACAAATC CTGGTCAACCATACATTGAGANTCANGCANCGAGCTTNTNATCCCGCGCCCACCNAGAAGCTGCNTCTAANTCANGCGCN AACGATAGNCTTGGCTCAATCAAANGCNTNTGTTCAAAATGCGTAACNNGGTGNGAGACCCGTNATCTCTNTTTGAGTCA CTCTGNNGTCTNAACGCANAANAGNAATAGATNAGTTAGGAGAACGCCATNCNGCGGGTGCAGGCTCTCGANNCAANNTA AATTNCAGANNGTAGAANCNGNTGACAGATNNTGTNNNNNTCTCCGTNGGGTCCTANAGCNAGCNNGGCNCAGTNGANCC TCCGCANTCAANNTNNAGACCTNACTNTAATGCNANNGTANNGGCCTGTNTAGGNCTNGCGANTNANCAANGGCGTACCG TNCACAANTNGAACCATNAATTACATNCCGCNGAGTNGGAGNTATNGNCTAACTTANGNTGGGCTCACAANGCAGTACCA NTAACCAANAATGCTTTCAGTCTNGANGTCCNTNCNGGNTGNACNGGCAAATTAGGGNTCANAAAGACGTCCCTAGANCN NTGGCNAAACNTNTCCTCCCAAANTATCTNGCATTGNTNANNTCCNCGGNTTTTGAATTTGTTNGGTNGCTANNTCNCTC NNGCGNCCGACAATATAAGGCGCAGATAGGAANGCTCACCGCNTNAGAATNATAGGTTNGGGNNACGGNANNTCTNTTTN CGNATCNNATTTNGNTCTTAGCTTGTAGAGCGGGATTGGTATTNATCCNTANGCGACANAANTTGCTNGCCNCTNTTTGG GNGCNGNCCGTATGCAGCCNATGNACGAATTACTNGCTGCCGACNCCAAACGANCCNGTNTGTCGTCCTCGTTCAAAGGN CGTCGCCTNCCCGNTCGTNCCAANNGCGGNGCAAACTNGGNTANGNCGGAAGCAAGCTCANTANTCGCNGAGNTGGTTGT GCGTCAACTCGTTTTGCNGACTATNGACCNCTCGGTATAAGNGGGNAGCNCGCCGACACATATNTTGCCGGCNTGNAAAA GGCGANACANGNNGCCATTGGNACAANCNGGNANTGCANNTTNNNGNTAGNAANANNCAACGGAAGCANNTTCCGNANAC AGNATAGGNCNATTCTTAAGTTTCTNAGNCTTCTCCNTNTAAGNTTCNTNTGAGACNAATGNCNGNTTCGANAGAATCCC NANNCANCTCNGCNCCGCTGNTGATAANGCGAGNTACTCGTTNNCAGAAGAGNGGTGGGTNAAGCTAAANTATTATCGTG NCTTCTTACAGNACTGGTGANGCTCGAGNNTCGCCACNGTGGNNTATCTTTGNTCNCTNCCNATAGGGTGCCTTNCCAGT CAAGAAAAATTCGGGACNTCCTANGTNCAGGCNNNGGATTTCATGGCTTGAAATGGTATCTTNTATANTAATCGACCNCA CGCGACTTGTCCGANCANTGNTNAAANGTNTTNAGNCCACATNNAGGTNACGGNATGAGATGTNATNGAACNCCAACTTA ACTNNGNNNTNCGAANCTTANTTANCGCCTAANAGCCACATCNTNTNNAGATCAGTNGANTCTGTAGCACTNTGTTNGTG TCAAANNGTATGANNNTGACGCCGNCNGGGGGNCNGAAAAGNGACCACCGGNACGCCCACGCGNAGTCGNCGCACNNGCA TTNGNGCATCTCANNNANGTCNTGTAGTATAACGNAATGNTGCNTGACCATGNCCNTCGTGNATTANTGCGCTNGTNGCC CNANTAGAGATNATTTCCNCNTTNCNATTGNACTGTNCTGCCTTNTCATACCANNAAAGGCGGAATGNCCANCGAAACNT TNGCNGATNGGAGNAGNGGANANNTATTTATTACTACTGCGCNGCNTTNAAAGGATTTANATCGGGANTTAGCGGGNCTG GATNGCGTNTAGAGAGGNCAGCCNTTCCNTGNGCNTATNCCCAGTGTTAGNCTAAGAAGNNCTCCGTGTAGANATATCNC AACNCCCGNACNNGTTACGTACTCTNGTTTNTTACGACTCGGTCTNNNACNTCTNNCNTNAATTCNACACGCGCGTAGTG CCNTAAAGCCCATGAGCGNTNNCGCGCNTNNGGCATCGGCGTAACNCANTCCTNAGTCTNNNNNTNNCCTNTTCCCGNAT AATAGAGGTATGGCCTTGCNGGAANTGANTCNAGGGTTACGNATTANTTTANAGGCNGTNTNCTNCNGTGATNNTNTGAT ANAATNAGGGGTTCTCAGGTAACCTGGTGNNGCANAGTATCCNCGCGTACGAAAACAAAGTCACGATNGANGGGATGAAC NCGANTNGGTNGGANTGCCGTNTTTAGTGNTACTCNGAGCTATGGANTTTANTTCGCCTAGGNATNACTCNGACNAAAGC NNTATAGCATAGNANNGACGCANTGGNATANCNCATNACTNCTACNNNTANAGAATAGNNNNGACNNGTGTAGNCANNAC CACTNACTNANCAGAAANGTGTTGTTNTTGCAGNCNNGNNTGTNAACANNTNGCNGGNGGTTAANAATTCCCNTTGCNTT CACAGANNAANNGANAAGCCAGCGCNNCCGCGCGANGANANCGTTATTGAANCTAGAAANGGGGTNNGGTTNATTATNTN NANGNGTGATTTNCGGGNTCNCGCNCANNGTCCTCCGACAGTATCNGTNGTNCGNCGNCTATNANCCTNCAAGCNTNGNG ACGCCTNCNCTAGCCCCNTNNGGNNGTNNNNGGCAAAAGNCGGCNGNGNNNGNGTGCTNTNNCTTGTAGGAGCGCTNNCC NCNAGAGNTTTCTGTNTCCCCAANACNNAATNGTGANNCGTACNAATTGCNNACTCATTACAACCGTNAGTCTCAAGAAC CGCACAATAGNGNCTAATTTGCCNTCCNNTCTCCCCCNGCTAGTTCNGCAACATTCGTCTANCCTATGTCGGCCGANTTC GGNNATTCATNTNGNGCGCNGGTTNGAGTATGNNNGCNGNNAGAGCCAGCAGTATNATTNCNTTATGANNATCNTCACNN CGNCTNTCAACATCGNTNNGNATAGGNGTTANNTGTTNTNNCNCNAGNNCACACNNCGCTATTGTGCNAANCACGNACTT CTCCCNGNGCGTGCAATTCCCCNGAANNAGATNNCGGANTGNCCTCCATCNGGCNGAGANGCGTGGGGNTCNATGATCTN TANTGTGATACNGTGCNACNNGCTCGTGGGAATTCCNCGANGNGACNAGANNGNTNTTGGTGNCTTAAATTTAGTGATAA GCNAGACTNCGGGTACATNTTCCAGNTTCATNNCGNGGGNAACGTGNTCGNNNNCNATAGGGNNGACNGTNCTANCANAA CGTAAANNCATAGATTNCTNAGNGTTTGGANTNNANTNCNTNANAGCCNANANNACANCNTNGGNCACNNATNNANTTCA TTGNGTGCACCGGGGAGACACTAGNGTGAATATGNCTTTNATAGTCNCGNGCTGTTTCNCGTCCACCCCNCNCNCCCGCT TACTCATNCTNGCTGCGGNATCCTTCCNCCATATTGCAAAATTAANAGNNGTATCTTAGCCNNATCCGCAANCTAGTNNC AGANTTCNNNNTGGAACTTNCCGACCACNNTTAGCGCAAGCCNGAGGAGCCCAGCNTTNTGNTNCGTTAANTATTCCAGG GTACGAGGTANACNTGNNCANAAGATGCTTCTGTCTGTNGCAAAGGANNTNNGCCNTNGGCNATNAANCNCACTTTGNAA TNGCCANANANCACNCNGAGNGTCNNNTAGGTCGGCAATAGNCTCNNNATTTTTAAAGGTCNTNACNACGNAAAGGNATC TNTGNTTGTTCGGCAATAGACCGCCTTACTTCNNCCNTATGNGNGNTGAACACTANGGACCCAATACATGAATCTAANCG TTANCAGTCANGATCCGGCNAANNNCNNCGATNAAAGGNNCTANNCAATGCTAANNGGNAAAACCNCATGCNCAGTCNGG GGTATGCGCNANTNTTGCGAAAGCCTNACCNCGNNGCTCNATTCCNCTGTNCCTGGCANTANATTGTNTGTCCANNGGAG GGNTCATCGNCNCGNNTANCTCNCGTTCGNACNANTNTCAGATTGTAANACCTAATNNANNGANGNAAACNTANGAGATA NCACGCCCTCCAATATGAAGNCCTGGCNGTGCCATTNTNNTCCCGACNGGGTNTANTCCNGCTNTGGTTGCTATGCNTTG CNTNNNNTTTGCTCGGTATCNNGTNGAACCGNCTCTCNGGCCCCNNNTNANTCGNTTGGGTGAANAGGAANCCCANNAAG CANGATACCNAAGCNTGCTANCGTGNTGGGGGNCACAGTTTTNGCTNTNTTGCNNTTGANNTGGNNTCTNGACNNACNAC CCCCTNACTCANTGGCTACCNGTGANCCCCGGCCATTATAACTNGNCNNANANANCNNCNCTTATTNNTNCACGTTNCGG AATACTTTTCTCAAACGGNGTGNNTGCNCGNNNTTTCTANTCCTGTCTCGTACGGTTTATGAGATNNTCTGNTNCTGTCA AGNAAGCCGANGACTNAGCAGGAAGANCGGATCTCAGCAACCATACNNGCNNCANGAANTCANTGGNGTNCTNNAGGANN ATGTGANTNGNAGTNAGTGGCCNCNCTGTCATCATGAANGNGGNGTCCGCAANNTGCCCCCCNCCNANNTNGGNAANCCG CNGTCNGACTGTGGACCACAGCGACAGAGTTGTCGTTNNNTCNCTCGGCTNGGNAGTTCNNTACCCTGTGTANTCANNCC CTTTACGATTAANGATANNNTCACCTTGCTATTGCATACANTATANGCGNTGAGTGCCANCAATAATCGTCCANTGNCNC NANTGNTGAGNCNAANTNTNGTGCNATCNNNCGCGGAATNCTTACGGTCGGACTCAAGCGTNCCNATCNAANAAGTCAAC GAGACCNTNTNANTNCTCNCGAANTGAAGGCNNNGGTGTCCGAGGACCGGCGCNGAGTNTNGCAAGGTTTACAAANNANA GGNGGTAACNNCGCAAGCCGTCNNTTTANCTCAGAGGTATNNTACTNNGTNGTGNCGAAGCCCTGNATNCCGGTCTTNGG TCGACCGNTANATTGNAGGGNTNGGCNTGTTNCNNGCTTATAAAGNACATNCNNTCNCCGNATGTNCTCACGAATAANGG CCTCCAACCCCGGCAGNNCTNTCNGANGGCTCACCNATTCGAGAATCAACTTAGANCANAANTNTAGNCNTGANNNATTT AACGCCGGANGTAGTGGAGGTNGCCTCGTTTNACGANCTAGCGTCNAGTTTNCGGCTGCGNGCCNATGNGCCTGNGCGTA GANCCATTCNTGAACNACGCAACGTATNCTGTGCCCNNAAACGCTCATGAGAACNGTTCAGTATNAACNCNTCCNCCTAG GAGGNATTAANCCGTAGGGANTTANCCNGATTGAACAGNGTNANGGNNTNANTTGTGNACGGNTGTCCTCAAATNNTNNN GAGTGGGNTAACTCNTAAATACCACGAGACNTAGCTGNGCGCCTANACCCAACTCGTAGCAGNCACTTGNGACNNANGCG NATGGCANCNANGTNNANAACCTGGTNAGGNATTTTGACTGCGGNCGTTGTCTGTGGAAAAAACCGNNTTAGTGNGTGNC CNCANNCNTGGTTAGNCNCCGGTNGTCATTGANACGNACGNCCTAACGACNCAGNTGNCNCTGGTGGTTCNTCGANANNT TCGCGAGCTNCATCAGAGANCAGTNTACTCGAGTNGGCTTNTGTGCGCGGCNCNNNACNGTGCGGCTCCGGGNNTTTGCG TACTTTGGGCCGTTGTCGTCTGTGAGATCCTGNNGTGCNNAAGNNCAANNANNAGCAANGAAAGACTACCTTNNTATACG GCTNNNNNANAATACNCATCCAAATNCANCNGACGGAGGCGNCANCNTCCTCGNATAGTNNNTTANTTNTNATNANCANA GNCGNTCCCGNCCGNNCGNGNAGTGCCTCGAGTANTNNGCTCANAGCGGNGCNANGNGATGTGGCTNTTCTGTGTGGCAA TTGAAGNNTGTCGNACNNGCANNNCNCTANGGNGTCGTGNGNTTTNGNNNTGCNGANTGANCNCATGTNGGNTNCAGTGT ACTANATCNNCGTTGANATCNGGNNCAANGTNGNNCGCGGAGNTGTNTTNTNATACACTAAACTGNANTANNANGGNGCN GAGTTGNCTATGTGNANNNAATGGTAANNNCACNATNCCGTTTNANGGTTCNCTANGGGNNNTATGGATTNNACTNNAAT ATAGTNTNNAAGAGGTNNCNNTGATTGNAGTNACGCGNCNTCAATTCTNTCTACAGGGTCGCANGGTAAAGNTTANCCNC GATCTTNTACNTACCNCGTANCTCCCGTTCNGCNGAGGTCANTTCNNGTTCAATTNANGGTCCNCTTGCAAGNTGTNGTG CAACTAGCNTGCGCTAANNCACNGCNGATGANTACTTTGTGACNGCNNNNCAGTCGTCCACNTCATNCCCANTAGNNTAA TNAAANGATNGCTAGTTGGATCTACNATTGANATACCCGCACGTCGACAACTTTNCCGGGATTANTAGNCTGCNCTNAAG GCNATANNNGTTNACTGCNGNNNATAGNCAATCTTNGCTCGNTTCATNATTTTCAACATTTTAGACCCTNAGGAAGTGTC NGCACACTGNAAATNGANACNACCAGTCTNGTGCNATCANGNNATGNCAAGGATTCGGTTGNCGACGTNNGAAANAATNG ACCTNAGCCATGANNCCNTNCAGCTGCNNNNCACATGACNGCCGGCNNCTNCCCGCGGGATCNGNGTTNCTNNGGNNAGA CNNCNNCNTCNNCCCAGTNCAGNCACNATGAGAANCTCNTAGCGTTCTNNGNCTCAANATTCTNCCGGAGACNNNNNNTN TNNNTNTCANTAAACTCGNTTCAGCATTNGNGATNCNTTCNNNANGATATCANTCTCATNTTNANCCGNACTNCCTATNG CTCGCTNNGTNGCCATANTTGANACCTGCTGAAANTTTCNGCGNTGNGGCNNNACTGTNNACNANAACAAGATACCTGNT CACTGTTTGNAATANCNAGCCNNTCNTGGTCGTATCCCTNGTTGTNGTGGCCTACGANNGTTNGAGCGAGATATTACTNG TTGAGTCTNNTANGACTGCAGGTTTGNAGGCNGCTTGAGAGGNACAGTNNANGGCCTANNANCCATNGTATANGGNCNNT NCTGACNANGTNNAAANGTNNTCNCGGNAATANNTCGCGTCNACNAAANCACTTAGNGGACCTGNANTNCTCGCCATGNA NNGTTGTGACAGAGGTTGCCTATGCTCGCCTAGGGATTCCATGAGNGATCNTTGTNACNGGGCGCAGGCCGNGCGNCGAC ACNTCNCTNTCGTNTGCNCCTTTCNGTATNGTGCTAGGAANTACTNNAAAATCNAATGNNANTAAGTGGGGGCCTGTTNC AAGCNANANGNNCAACNTCGNCTNCTNNTATATGGCGCCCTCCGTGTNTGTGCTAAGGCGGNANNGAATTTATTGNTNCG TATCANGCNGTCCAGTTTTGCNNGNTGNTCCTCNAGCGTCTGANTTNGGGGCTGNGANTGCGTNCANCNTGGTACNCGGT TGCACCCAATAATGANCNGTNCNTTAAGAATTNATNAACTCNNCCANNGTGTATGNCTTANAATGATCGTANNNTAAGTG GACCGTNTCTTTTGGGCGNGNCNGAGTNGTCGATCACATANGCGCATAGNCCNTAGTCCTATTNTTAAGNTGTNTCACNN ACTANGAGTTCCCCAANACCCNAANGGGGANANGCNCCNNCNATNCNATTAAGCNNCACTANCANGTGCGTNGCGAATAG GCTATGCCNAGCTGCGNNCTNTGCACTANGATCAGNNNAAGTANGCTNNNCCTATCATNCGCTTTTTANCTNNGCNCAAA CNACTTTNNTNCTCAGCCNGGATGTCCCGNGAAAGNTNTACNCTCGCCGGATTATGGTGNTNCCTGACNGTACNTTANCC CANACAAACGNNCTNCGGCTCNANNNANNTCNGCNCGCATGCCCTNNGTCCACATTCCANNTANNTTGNAGATNANTANC CTGAGAAACGGNTCGNGNNCCTGCTNAANAAANCTTNGNCCCTCANAACANAATGCNGAAACAATCGAAANCTAGNTNAG ACANAANTCCGATGGNAGTANANTCGGGAGAATACNNCGTACTCAANNGGCTTAGATCTCNCATGCATGANTCNATCGNN TGCTNTNCGCTCNNNNNCNCCGNNNGTNCCGTNNNCATGNGANGTGGCAAAGACGCNANAAGTCNNCGCCTCGGNCNCNN ANTNGGTNGNACTACGTTCCCGNTCTNGCNGNTGTNNNCTAACANCAANANACANAAAANCCCNCNCCCCGACGCATACC ACNNCNATNTANTACNTTNNAATGNTGTCCGATGGNNTGATAAGNTAANGGCNANGGCGGNNTGCGNNAGTAGGGTNNGN CNACANTTNTGGATTAANTACNNCCNAATGCCNGTGGNCACAGTGANTGNCGGGANANNAGNTTAATCTCNNNCNTCGNG TANNTGGCACGACGGCNANCANTNNCCTGGNNNCGNCCNTCTGAATNCCTANNGGTCNGTCNNATNTANAGNNTGTNNTN NTCNCGGGANGAANTTNACTAANNCTCGACGAAACANANGATGTNACNACNTACTGNCACGANCTNNTGGTCNTNTTGGN GATNTTTTAACTCTTTNCCGAAGGTCGATACANNANGNTAGTGNCGNNCGTAGAACTGCGCATCTNCCAGNGCTGTNCAC NATNAANGNGAAAGATCCNNTAGNTTACAATTNTGNTCNNAGCTGGATNGGTCNAACTACGACTAANTNCCCNAAANGGA CNNCGTCNATNNATGGTTGNATGCGAAGACCATNNNCACGNAGAATGCCTNATTCTACTACCCTGCTAACTGGATCCGNN CATCGATCCATNATGCATCNNTATCNGTGCNATTAGACCAGTAGCCGCCTCAAANGNAGTGTTGGTANCATGCNGCGTAG GACCGTACTNGNTTACGATCCGTNATNNCGGGCTAATGCTCNTGANANCGTTAGGNNGNGGTGCCAAGTAGNTGCGNCNC NNGCCGTANTCCACCTCNNAGCNTACTCTTCTGCGGTNTTGNTCNTTCCAANNNTTAGAAAGNCNACTNNNGNGAANTGN GNNATGGTNTAAGTNCNAAATAAGGTAAGGCGNATNAACTGANNCTGATCGNANANTTCGCGNAAATAGCGTTAGAGGAA AATANTCAGGGATGCGTAANCTCGCTTNGTCCNNGCGGCTNNCCANAAANTNGANTAGTGNATTNNTAGANAAGNCNGNA CNTCNNGNAAGGAGGGGCTTAGTNCACGCTGAANNAGNCATNATCANNGNGNGNTGNCAGCGTCTTCGTNTGCATAAANC NGNGTGNCGGTGGGNCGANGTTGGANAAAGNNCCTCGCCGNCGCATATNCAAGNGGNGCATTTTACCCATATANAATNCC TAGATAGNCTTATGCNGCGANTNTTNGGANATCNAATACCGCTNGTGACCNATNCGNTGCANCGACTCGCTNACATANCC CNGAGCCCAACTGTNGTGNCCCNTAGTGANTAGCCTNGCTAACACNATTTAAACGATTTNTGNTCTACGGTGNTNCGNAT NAGCAAACCTNNAGACNCGATNNGCCGCGGCCCTCTGAGGANGCATTATTTACCCACCAAACCNCGCGCAAGGNCCACGA TNNACGCCCANGNTAAATNACATGACAGCTCNCTTATATACCGNTAATNCTATACCCNTTCTTNACNACNNNNTCGTNTN AGACAGATTNTNGTACNTGNNGGTGGGTNTTNCACNCTGNNAANNGGNNAGTTNGAAACCCNNNCNTCNNGNTTGANACG NNTGTACNCACGTGTNTCNNTNGAAGACCNCNTCCGCANNCNGGCGTGGTCGGAGCTGAAATTGGCTAACCNTNGTANCN NNCTGCCNGAGCCCCNNNACTGTACAACTCACGCACTGCNNCNNANNANATTTNANCACTCTTGTTAGANACTGCGATGA TGGNNATTNNNTTGTCNCAGACAGCCAAGACNACAACAACATCNGCTGANTAGACCNNNCNTCCNATTTTTGGNACGTAA GGNAACTCANTNTGCAGGNCTCCCACCNTNCANCGGCAGTCTNNGTGACTATGTACGCTCTNANANTANCNANCCNAATA CAAGTNGGGNNTAAGGCGGACCGNAGCTNCGGTAAATTTACCGCGCAANNNTCANCANANCCTCNGATNTGCCTNNGATC NCGCNTCCAACACTGATNCTCCTGACTGAACATTTATACTTGTGGGNTGNCCAGTTTGTANCTNNGTATCNTAANCGGAA CCANAGGNNGANTTCNNACNGGCNTNNNTCCCACCNTCNNAGACACGANGTNNATGNGACNTGGGGGNCTCNTANACTCC AAACNGGGTNGTTGCCTTTANNTACTCGANCGNTTNGCCTNACCAGANGGTATGANGTGCGCNCATNTGANNATTACGAN GNCNTGNNCGACTGGGGTCCTGTNACNGNNNNNNACTNCCTTTAAGCTGNCTNTTTGNNGANCCNGNAGCTTCTNAANAG GNNCGACNANCNGACNGGCGGTCGTCGNGCACNNCAGNNTGGGCGAAAGNCTCACCCNCTAATTGGANTGAAGGNAATCN NATANAGNTNTCNNAACCAACTCCACTNNNANNNGCANCGNGTACGGTGTGGCCAATNTGTGCNCACGGCAANNAAACAT ATNTNATNGTCGTANCGNNNCTCTTNAGNTCTAACCGACCCCCCATGTTGNCTGAGGGNTAACNANGNNGCACCCANGGN TNTNAGATCTTNGNCANACATAGGTGCCNGTANNAGTACTNCNTNNTCTGTGACTTTNNGGTGANACGTCGTNACTCTNG TCATTANTAGCATNCTCAGCCTAGANANACACGTATGTTANNACATNTGACGTCCTCTCCGGGNACNCTNAGNCCTGTGA GNCCTCATCCNTTCGCCNGCAGANTTTTCCTAAATAGCNNCTCTGTGGTNCGCNGNANGNACTTANAAANAGACCCGAAN CNTGANGTTTCGACCCCNTNGGACTAGGGNGNANGANTNGTGCTGCNTGTCGNCNCNAAGNGNGCTGNAACTACCNCCAT TCTANGACACGGNNTTNAGTGTTTANCCNGTTCTCTNNGGGGNCCGGCANGNCTNAGAANAAGCAAAATCNNTNGGTNTA TNCGNACNTNCACCACAGGGCNNNCNGATNGCGNNTCAACTCNCGANGTTCCNNTCACGAGACATNCGGNCCCTNTNAAG AGNNGCCCNNNCGNGGTTCAAAAACTACTGTATTACATNTANNGTTCGTGTGTTCATCNCCGTNCCAGACAGNAGANCAG NTCNANTNNTTCATGTTTTTAANACANNGTTNTATGGGGNCTANGTGANCCGGNNTTGGATTNGGTGNGGGGNCNGNGAA AANCCNNGACNGTGAGCGGTAAACATNNNCNANAGTCGTCTTNGCCTAAAGGACNAGNCNNGCCTGTCNAGCGNGNATCA GGCNCACANTANCATGCAACCNTTNGTAGAACTGAGNATGCNNCATCGTAACNTNCNANNTATAGNCTTGAGCTCTCNGC TGCGNCAAGNTCATGCTAANANTAGTCNNAAAAGCCNNAACGCCTNGATNTNNGTATAGGGGAANCACANCTGNNNGCNC GTCCAAANACNTGGCNTAGATTCGGTANNGNCACNNGTTTATNGNTGTNGTTAANATGTCNNCNACTNTGTTGGGAGGCN ANACAGACAACTNCGTNGGGANANGTANGGCCNACACTCTGANCCGNNTNCNCGNAGCNTCNTGATATANAGTNNGTANA AGGNATAGNCGTTNAAAANTTCTAANGNTTTGNTCACNTGTNNGCNAGACTNCGCCTANACCGTCANCTNNAGATATAAC TNCTGCGTTTCAGANTCAACCATCNGCTGNGNAATCNNNNGTACCGTATCNTNTGGTNACAGTTNCGAGCTTGNTGTANG CAANTCANNNAGAGNTTNNCGGANTGCTGGGGNGGCCATNAAAATCCGAANTACGGGNACACTTANCGTGGGNNCGTGGG TTNAGACTANAACTNAANNNCGNNTTGNNNNGGCNNGNGGACGGCGGANNCTNANTGGNTTATCGAACTCCCNGCNNCNC CNTGTTTCTNCGTCTGGTAANGNGNCGGANCGATGNGNGCNTGANTTTANGTNGCCTGCGNCCTGNNACNGGGAGNATNG ACGTTTTTGACTTGTNTACGGANANCAATTACGNNNAGCGNTTANAGNCGGNTTNNATATTTTGNCAGGNTTNTACNGCA GTNGCATATCNGTAGNNTGTAACTNCCNAACATANAGGNCTCNTCCANTGACNTAGCAGGGTGNANCGNTCCANAAACTA TNGGTGGTCNGCTTGNTCCACCAGNTGCTCGAGGTNNAACAGATTTCCCNNGGTTNACGTGGCNNCGANNGTATCAANGA CATTAAATCTCGNAGGGATTANGNNGGTGGNCCTGAACTGNNGCCNGCGGNATCCGCTATAGNNCGTCGATNAGNGTTNA CATACCNAGNACANNGGANCNGCNATCAGGTANGNCGNGNTCNANTATNGTNCATNTTCACCGTAGCNNGATCGCCGCNT GGATCATGGCNATTCCTTNCGCCTACNTGTNCGGACCAANANACTANTGACCATACNTNNAGCNGTNTAACCCANTGACC NGNTTNCANNAGNGNCCTATNTATNTNANNCAAACCGNTTAATCTGNGNCNANCGCTNCGNGGNCTGTGATACCGACTCN NTAGAANGCGTTCCANCNNTANTNGNGTAATANGCCTAATTCTTNGNGGANNTNGTANCCNCTATGGAAGNAGAAAGGGA GCAANNNACNGGTACTGCATAGCTGGTTGTACTNGNGAGANNNTNNGTNAANTNCTGNTCACTGCCCCTTACAGCNCAGN NTCACTTNTAATNANGAGCNNCTAGANAGNGAGGNTANNNGNCCNGANNNAGGCGCNTNTGNNATCGAANGAGTCGGAGN CCTNNAATCAGANTAACTCTGAAGCTAGCNTAANACNANTGGTANATNAGGGNGNTTTTTNGGACGNTTTGNTGCTCNAA GACCACGNGTGCGAGAACCGATNCCANNANTGNTTCNGNNCCNTTCAGCACCTTCNNCNANGAATCAGTTTTNCACGNTA TGNTTCNACGCTCACGNTCNNANTGNCTTAGGCTAGCCTACGGAAGTTNTCGNTACATCCGNGGTNAGNCTGNAGGGACA GTGCNGATGANGANACCNTNTNAAGTCANCNGNNTTNNAGAGNAANANGNNCAACGNCNNNCGATCNAGCATACAGCCAC GNCGTNGNCAACNTTNCGTTGATANCTNCACTNCCNTANTGTNNCNCNTTGCGTACCNANTNGNNAGAAGCCCACTTCGN NTCGGGTCCNGCTGCGGCANGATTANCACCACTATGCTAAGTATACCATTNTNCCGTAANGNCACNCGGGAACTGGCNGT CNNTCNTCCNAACGCNATTTNCATGATGTGCGANTTTTCTTCNNNGCCNTACNTCGNAACACTTNNAAGAGACTACTGAA TTTTGNGNCGTTGGTCTCCTCANNGNCGCCNGGNAATAGTCANGGCATAATNNATGNTNCNNCACANNGCNTANCNGGCT ANATCTCAATGCGACTNNTANGCTNTATTCAAGTTTCGCTNCCAACCGTTCTCNGGGTANAGTCGACNGCTCCGTTANAG GNTAGCTAACGCAAAGTCATCAANGNNAGGTGTNTTNGAACCNNCAGTGTTCAAGGNTGGTTCCNCCAAGNAAANGNGNN TAATNCNGGGTGGGAATCNNCNANNCNCGTTCNGNNAGCNTCAGNGGTGNGTNCTTCANNNAATGNGCNCCNCGAGCGTN NTNGAAACAACNNCAGAATGGTAANATNGNATTTGGCAGTNNAACGTGNCNCCCGGGCTNNNATCTNCGCNCAGAAAATC NCTNANCTCNGCNTTGTCTCCCCNCGCCCNGATAATNANATGANTNTAGTCNNCGACTTCNNGTTCCCGACATGCGAACA AAATGANGNCCCTGNCAGNTGGGTCAANCAANCATGTANNTNGCNAAACANNGTANTAGNCAGGTGNTTCGNNGNAGTTT CNAGNNGGATTCNTCCGCAGAGTACGTGNGNGAGCGCAGCAAAACANAGCNCCNNNCNNGNCTCNCTACAGAANAGNCTN CACNCTAATNGGATGTANNTNNCACGTACAAGTTACTGCCNATAATTCGTAGACACCCNCTCACGANCAGNTNGGGGATT NCGAATANACCCNGACCCNCGCTTCGTTNTNTNCCNTTNGGCGAGTCCNACAANTGTAGTGNTTGNCCTTCNCANGNGGN TCCATTTGNNGGGTGAGCACGTCACTNCGGGANGGNNNACGNGGGGGCNGGNTATNCTCTTTCGGANGNGCTANAACCNT TNGCNCNGCACTTGCCTGNANATCTGTGGCTATGNCNCANCNGATNNNNCTTTGATNGATNTNGACCGGCANTCAGNCNA NGTTTGNACANTAATNNNNTTNNNNGGNCGCATGCNCAATACTCCCNCATGNANTGNATGNGTTAGCNTTCCAGNCTAAA GNNNNNATGACCAGTCCGCTGATGNCNAANAGCAAAANCGTTNACTATTNCTGCTTGGGGTNNTNCATTAANCCCGGCNN NAANCGTCCACTTTNTGATNCGCTTGTTACACGCCANTNTNAGGAAACNNNGCAGGAGACTAGNNTNCCGANCAGNACTG NTTGNNTGATNNGNTTCACGGCCNTNNNGGTGTTTNCNNCCCCCCTNGTGGTCTANANCTNCTNATGGGTNNTNAGANTT TACGCNGCCAATCTGCCNCTCACAATTGCCGCACNNTGTGNCANNGANAGTCACGNNNATTCTATNAAGCGNNGCATTAC GGTNTCGTANTTCNTNGTNTNGNAGGNTAGNCGAGNCTCNNGNATGACGATAGNCCGCNACGTTACTAGTNANAANGGCC NGGNGTTNTACTNGNGNCAANCAGNGTANCGCGTGATCTTTCCAGGNAGCCACCATTTGTAACNCAAAGGCCAGGCGCGG TANACCTNCGGGCCTCGGGNNTCGTCGNGACTACGNTNGGGGANGGTCGAGTNGNNGCGANANCTGTGCNANCGGNGCNA GCATGTNGCNAAAGTTAGTGNCTTGCGATGAAACNNCTTGAGGGGGNAGAACTTGATNCCTTCNNANTNAAACNGNGCAT NCGCANTCNNGTGACGGGTAGNCTGTAANTNAGGTGANGGGANCGCNAGNNGCNGNNCTTNGNNTGTTNTNGNNCGNGCA GNNCCAAACCCGCNNGNNATNGCCANANCNTCGTGGNANGANAGNGAGTCTACTGGGAGTNAGNNACTCNGAGAGGCGCA ANAAGCTCTGAGGNGCNATGTANNCTNCGTTTNNTTAAGGANNACATGNTAGGACGNCACCNTGACNCAAGNANCGGNGG NATTCTNNCTCNTGNNNNNTTTNATATACTACGTCCGCATNNGGTCACNTGTCATCCTAAGCAGGGTCGCGNGTCGTCGA GANNGANGNGTTGNAAGNCGNGNATCGCNCCGCCNANNGNCCCTGNATGTNGTCCCGCCTCCAAGGTGTNNTTGCTNTCT CCCAGAANNNGCNAGTTGTNGAGNGNGGGGCCAAAGANNGANGTTTTGTNCGNACCTGANNAACTTTTAANTNGNTCNAN TCGATCTCCTNNTATGTTAAGGGATCNAATNANGTTCGTGCTNAANCTCCCATANGGACAGGGGTAGGTCGNATCCANTC ATNCGCGNCTNGTACAGNNAGTGTCGATCTNTATCAAGCNNATGCTAAACCNCTATNTCCAAGACCCTTCACNAAGGNCT CTGATCGTTNCNTNNCNNGACAACCNCGTACTTTTGTNGAAGCNATTGNACAATTGAGGCNCTAAGNTGCTNTNTNCCAN NANGGTAGAACNCCCTGGNNGCNGTCNCAGCNNCCCNCCTGNCCAGGTGCACGNCCTNGTTCTGCCCNNGACAANACATA AGGGGNAANACTNANNNANGNNGCGATGCTTTCTNAGGNAATTAANGNGTAGGACCCCACCGNGGGTNATATNACTTTTG ANNAANCCGNNACTANNNGCCCCCNCGGCTTGCCCTACCCTCNNNACNTGCGCCNNTACGNNCNCTGNGCNAGTGAGATT ACANCTGCCGTGATTTANCCANTAGTCTNGCCAATATGAAAATACNCAANNTNTNTCCTAGNNNNTGTAANANGGNGTAC TCGCCCGGNGGGANCTNNAGGGANGCGTACATGAAGNGAAGCTCNAGGGGCNTATANGGNAGNNNNNGNTNTGTANGTNT GNAAGNTGNCTACNNCCCGTCNGGNTGGNNGNNCTCCGGGAGNGGGNNACCTGTGAGATTNCGGTGNCTGAGAGATANCN CCTCNGNNCAGAATTGGGCTTGGCGCCCCTNAAGNCAAAANGCNACNNNCCCNNGAANGGTATTNTGATAGCGGCCNCAC GCGTTGTNNTCCGTCACANTGCCAANTAGCNGTGANCNNTTNTCCTCTCNCCGTTTGTNNCAGTATGACATTGNGNTTTC NGNTGNANACAGGNNGGTNATGNNCNGAATNANTCCTCGNNNAGGCCTAGNNNCNNTCGTTANCCTCCNTGNAACAAGNN TNGCNNNAGGGGTGNTGCNNACGCATGGNNNTAAGTTAGANTNCACNATGTGGTCGNNANTCTGNCNGNTTTCGAATNCT ACANNTANNCANTTCGCGTTCTCACACATGTAGNTCNNAAGCTACTAGTTTTTNAACAGTTCCNTAATNATAGNAGAGAN NGACNTATATTCGAAANTATGNGAACCCTNGAGNNAAATATTANNGAGAGTCAANTANGGTATNCAANGCTGNGATAGAG ANATTCCTNGANTCNAAGCAACTNGTACCCAAGCCNGACTGATAGAGGATGATTGACAGNCCCACNGTCACNTCTGNCAN GAANNGCAGGCANANCCATTAAGTNCNCNNAGAAAACTNATGGCNCTNTTNNNCNCGCGAGGGGGCNNNCATTTTATGCA ANCAGAANGAAGTAGCCACCCNACGNGCGTGTAANCTAACTNTGAGNNTNAAACTCCGTNCANTTGTANACGGGATNTNN AAANGATGNNTTTGNAACACNCANNTGTGCGAGCANNTGGTAGACCCNACCANACNANGGNAAGNGGTCNNGAAGTTTGN GGACATAATGNTTTGNTNCTACAGNCGCGGTNCAATGTNATCNTAATTCGAGGNAAGNGCGCANATTNGTATCGCCNTNG CGNTANNNCCGNTCTCAGNNTGGTGNGGTTGGNTNGGGTCGATAGTATGTANGATACANAGNTATTANGTCCCACCGCGN GGNNCTGTNCGCCCGATNTNGCNCCGCGGNAGCANNCTNCGGAAGNNGCNTCGNACTCNTATGCGACNCCNCNTNAATTA GACATATGNATTAATGGACNNNANGCGNGGNNCNACCNCAGTCGTAAAAGNAAACTAGTGAAAANNGAAGNCATATACNC ANGCTNTTGCCAAGTATCACAANGGACCTGNNNAGAAGAGGAGCNTCCGATCNNGANCATTTTGNCNGCCTTCNATANCC AGCAGCATTCANACACNGGCCCNGCAGANTAAGTNCNNGCNANCAGTGTATCTCTCTGTCTATACNCAGTANGAGAATNN GAAGTGGCGTGGTTGNATGANGCANGCANTGGGGAGCCCATNGGCCTNNCGGCNANNCAAGATTCCGATNCNNCGATCGT CGGCCCNNNCTCNTCGNCANCCNTGCGNGCTNAGTGNTGNAGNNGTNCTNCNCTTGCANTGGGTATACGCTTCGTCATTN GNGCCAGGGNNATTGTCGTNCNACGCTNACTCGGTGANANCCTANGGGTCCTCNCGATTCCTGNCAGNAACAGTGACNNN AATNACGATTGCACTCTCGCNNTANATCGNNGCANGCCGNANNGACTATGNGCGGGGGNNNTAGNAGNGACACGAGGCNN GTTNCNANTGCNGTNTGTTNNGACCAACCATTNTCGATCTNCATANCANNGATNTCTCNCNCCAGCAGGCGNTGTNTTAC CTCCGCTGGNCAANTCNTNATAGTTTTTAAACCTACGCTNNCGAAANNGNATACNTNTANANCACAANAGNTAGCNGANT GGGCTGNTGCGNTCNNCCTAAGCTCACNTACGGCNAAGCCCCNGGCAANANGTNCANNNCCNTCNTCNGGCAAGNTATAA GCATCAATCCTACATGGCGACTGANNCTAAGNANCNCANANCNCGNTGNTNGAGNAGATNNGNTCGGGNACTANGTACNN ACGNCANNGCGTCAGNAATCNNNCGAGGTGANAGATNTGAGGCAGCACNGATCNAGGCTGAGNGNCGAGGNNNNGNGCNG CCNNCNCNTCTAGGANGNGTAGAACCGNTCNNNGGCACANAGGTAAGGCNGAGAAGAGCACATCCANCCACGGNGCTTNT CGNAAGCGAGCAGNNAAACCCCCCCNACNNGCGCAANGGNTAACNNNATCTTNGTTGTANCAATTANTTNNNNNAATGGC TGACTNCATNACGANNTATNATGNCCGNTNTACNNNGCCCGTANGACNGNCATNTGTGCTTANCNGNGATCANGAGCGNN NCGGATGTGTTCGCANCTATCTTNCCTCCTACCCNNNAGANTTCGANGCCAGACTAGTANCNTCNNTGNTGNNGTCAGNA NGAGGTTAGANATCCANCTCNTGGGATTTNCTNATNNCTNTNANTNATNCTAGTTCGCATCGGCNANTTTCTAGNCTGCG CTATNATCATGCCAACANNAAATGACTCTAAGGGCACATNGCCGTGTTGCGNTAANCGCGACGNCTTCATANNAGAGNNA NAAATTNGGGNCGGGCTGTNNAAAGGTTGCTANGACGAGCNNACCNCGCNGANNNACANGCNAGANGNTNCTGATNATAT NGACTGCGGACATCNNTCTACTAATNTNNTNAAGATTCGCATGGATCATGGANCTACGCANAACACGNCCTTAGGCACGA GAAGAGCCCCCGCAAGCNGATATAGAAANTGTGTCAANGCTGTCTACGNANGTCGNCNANTATNCTNAATAAAGACCGTN TGTTTNNCNGNACANTATNCNNGTTTTNATNACTTGATTNCGNTNNCCGNGGNAAGCTANGTNGGGGNTTAAAGATNACT TNGTTCCGNCAAAGGAGCCCTTGTNGCGCTGTCGNNAGCCAACCTNTAAANTNCNAATGNNTGATNTCATCNNAGGNGNN CCAAGGCTGGTNGNTNCCCCNTNGCNNTNCCNGGCCGNTNTCAGGCTATNGNGTNNCTAATCNNCTGAAGCCNTNGNNGA GNGNTNTGCTAGCGGGACTGNGNANACTCGAGANNTNGNCCGGGAGCAAATTCNNACTATTCTNCCATNACAGATCAAAA GCANAAGGCTGGNGTGAGTCTNTNCTNNTANTAGCCGNGATGTGNCATCGTGCNTTTAATGCGAATGACCTAAANACNGC TNGANGCCNGNTTTGGACNATGGGCGTTCTNCTTNGTTTGCCGCNNNTCANGGCAAGCTNGNNTTCGAANTGCTGCAGAT AGTANCCCAACGTCACTATGTNAACGNNANTGCNCTNTGTTTAGCGAGACACTGNACGNCCNCAGTGCGACATNNTNACC TANCCAAANAGGTTCTGNTGAACAAGGTGCTANNTTTACNNCNTTTNTGAATTGAAAGTTACAGGTCATNTTTANGNAAT GATTATTTCGGGNNAAATACNNGAGTATACTGCATAGNGNNCGTTNNGGTGGNGGACCAGNGNANAGCACACGNTTTGAC ACNCNATNANGTNCGGCTANCTANAAGNNATNAGNTAAGNGCCGNCACGTNAAGGANNCNGNNCANGGCGCGNCTTTGTT GGNGNNAAGNCTGTNANGCCGNNNNACAAGGAGGTATTGGCGCAACGNCTTCTTGGAGGCAGCAGNTCNCGGTTTNACTT CCAGAAGCNCNNCNCCGGCNGNGGGCGCCGTCNCNGCAAGAACTTGNGNTGTCTAGNGATNTANGTNTCNCCNNAGTNAG CACCGAANCAAGNGGNNCACGCANTGNNTGATCNCACNTTTTATTGCNTGGCANCGAGTTANAGTTNANTTTTAATAANG NNACNGNTGCTACATAGTATATNCNGGTTACATGNANTNTTGNCGCGCTGGGNACNTTAATCNAANTCAGGATTNACANG GAAGGATTCGTANANAGATTCGNTCTGTCTNNTTATTCNGNGGCTNTGGTATTNNNGANGATAGTCCNNGNGTTACCACG TATAGNNGCAACCCTCNATCCATGGNANNAGANCCNTCTCGATGTAACGNNACTGAATGCNAGGCTANACTGTCNTCNNC ATGNTANTGNAACNANCNTNTATGCCGNTGACGANGTAAACGAGTAATTNATANGNGNNGGGTTNCAAGACANNGTCAAG GTTTGANNTCGATNGNGAAGACAGCCGNTTCGNCTAANCANNGGCNTTCTAGNGACATGNCGTTCNCATAACNNCATNCG GCCTTAGANCGCANANGGCGTAGATAACCGGCANGCNGAGATTTCAGGANANCTCGTTNTACGGCCCNAANCCNAGANGT NGATTCCNTGANCGACCTAGNGCGTTANGTGTGCCCAGCTNAAANTANGNCCCTAGNNACNACANATCTGGCNACTTTCC GGTCNAGNAATCNCCGCGNCGCNTAGCCGGTNCTCGNCTACCATNAGANTACNNGAACTCCGATTNANAGTAAGNNGCNC GCNATNAGTNCGGNNGANNCGATTGGCACNCTATTATNGTTNNNNCGGGGATGTCAANNAACCCGCAAAANGTTAGANGA ACAATAGACGAAGNCGGCTAANGGNTANCCGATATCCCNCGGNCCCCAANCNNGCTNANNATNTCGCGGGANTCGNCGNN CCGAAATNTGAGAGGCACCAAGNTGGAAGNAGATCGNTNGANGNTAAGTGAANTCGGGCGTGTNGTGAAAGCNTANTTNG NGNTAGCCTTNACTCNCGATANCGTNCGGTCNAAGTATTNAGCGAGGGGNGCGNGNCTCCNAGNCTCNNTATTCGACCCG NNAGCNCNNTGTCNTCACNTGAGTTNTCAGNNGNCAGTAACTTCTAATTTACNNGTTGANTTAGTGTGTTCNACGGANTN GCGTTNNTGNCGTCCCNNANTTCGTNGGAGGCGNGAGANGCNTNTCNNNAGCTGGNCAGACAAGTCTAGNANCGTCTGTG AAAGAAGAGANGGTTCCNANTNCNCANTCATGCTTNANGNAAGGNANTTNNTNATTTAGGAAGGCNGNTNNANAGAANCN GAGNTNCGNGTAGTCCTACTCNACNAGGNCGATCGATCGGTNNACTTGCCNGGTGNATNAANCAAAGAATTANAATGAGT CGGTTTCCCTCGANNAACCGTCNTGGACTGTGGNGCTACGGGTCCTANATNTCNGTGNAAGCATGAAGTTCACTTGTGTA ACACGGTGNTNGAGAGATCATNNCTAGGNCATCTATGCTCGTNCGTNTAAAGACACATNCNNAGTNNACCGTANTTCANC NGCCTNCTNNGGGANNGTATGNNTAGTNAACTCCANACNNCNGAAATTAAGCANTAAGCCANACTGTATNTGAGTCCANC NTCCGANAGTNCGGAGTNATTANNNGCGNGTNCAAANGNACNGCATGCAAAAACNAAAAACNTNNGCNNAGCATAATAAA GNTTTTCGAGTTACGNGNATTGNTTGTCCNANTCGNTNCTATAGNANAGGGCNANAGNGCTTNGNCTGTGATCNGCAANC NTGTNGTCCGNTGNTCACTCGANNTACCAGGCTGCGGNCNAGGTNTACGGTTNNANCNCAGCACGCANTNCCCGCGTTCG GAGNNACNGGATATCCTNCGNGNNGGACNTANACGGNTNGAGGNNNAAATTNANNCCCNCGTTNATNCCGACNGTGNNCC AACANGGANAGTAGGGTAACTTAGCGNCCNGCAGNCTTGNCNGCGGTTTANTTCCCACGNGTCCANACNANTGAGACNNG GACNNANAANCAANAAATNAGTGACNNACAGGANGTGNTCATCATGAATAAGGATGNNATCGNCTTTNNATGNTCAANCT TCAGNTNGATTCAGCACTCAGGGAANAAACATGAGTANNNANNAATCNCCNGANANTANTATNACTTTCCGATGACNAGN NANCACAACTNGCCCGNTTCGTAAGCTGAAGATGCTACCTAANCTCNACGCNTTANTANCAATGNTACTTTANANTNCTA CGGTACNTGGGGCAAANTCNTATGGGGTGTCANNTGAATCANNANGNGAGTGTTCGTNAGGNTTTNTATTTAANGCAGTG TNGNGTCCGANNGATNACNNTATNGTTACNGGTANGCGGACTGCANGCTNANATCATACCCANAATGGCCNACCAANCNA AANGGATTNGGANTCNGGNNANTTCNCCTGGTCGANACACGNAGCAATCCGCNAGTTGACCNNGGAGCAGNATCCTNACA CNACGAAATCGCAATGNTGTCNNTAATAGGANANTTGGTTCNCATTTNNATGGTTNNCCTACCANCCTTGGCTTAGCACA NCGTTCTGANTATCTACATTTNGGGTTGANGGGNCGTTTTTCNGTNNCGGNANCTTNCNACCGNNNATANGGTNNGANTN ACAGCCCAAAGAAGATCTCGNNCTCCGGATCCGNTGGGAGGACAANNNCNTCCCNANCTTACAGNNTGCTTNACGCAGCT TATCGANTATGTAACANNNACNCTAATGNTGCTNCGCTGNNTGCAAGANGAAGGTACCTGGGCNTCTCACNANGACCTAC ATGAGNCTNCGATTTGACTCANCATCCTANGCTCTACACGCNTNACNTAAGTCGNGACAANNCAGGGTNGTGTTNGNCTG NNTAGAAAGNNGGCNNAGGCNATGGGAGNCTTNGNTNTCNGGAAAGTNCAANCGTGTTCNNGCCGGNNATCNNCGCTCCG CTCTAACCACCNNCTNTTNAGANNCGCCNTCGGGTGTCCCCANTGGCNNNTGNATGACNGNTGTAAAAAGANCCANGCCT GNTTCCTGTTNGAANACAGNACCGTCATGGTGGACTNNCATCCNCCCTTTTTNNGGACNNTNTCTNNGCNNGCTAGAATA CNTTAAANNGGCTTCNCTANAGGCTNTGGGNCNNNATAANGGANTNTTTNNNGNNTNAANNANGACGCTTCAATCANAAC CAATTCTCANGACNACACTNCAGNTAGGCNTGTNACTCGCTGCNNACGNTNCACCGCAGAGAGAACNACTNNTNGCTTTN TTAAATNCTNGANGCGTATGCCACGACTCGTATNNCTTGCANTNGGNTGNGCNNTCTNANCAAAGTACCGACGGTTNTTT NTTNTNNCGNGNGATAGGTGTCNNAGCCNNACTACNCCGCTCGGCCGNGCNCGNCTATGGCAGTTNAGCACCAGCTANGC GTNNTCGGCACGCGGTNNGTGCTCACTATNCNNGTAANCNTCCAANCCCTGCAGTNNNGANCTTTACTAGGGTCACCNCN TANNTAGGGGNNAAANGTGGGCGACGNCTCGGCTGCATAGTGNTCGANGAGCCCACCAAAGGTTGTAATNTTCCGNTNCT NNTAAGGGNTNCCTGNTGCCAAACGCCNCGGCGGATCGNATCTACNNNCNANACGGGNGGTNCGGACTGNTTNCCNAGNT ATACGCCCTGAANANAAGCNANNNCCGNNTGATNCAAGNGGANNGNCNAANTANNCAAAATGNCTGCATNGGTACAANAG TCCNTCCAGGCCANGAATNGGGCCGNCNTAGNNTGACTTTCGNNTNNNGCNNANTNGNCGGATNTGTCTTGCCTAGCNTT ATTAGTTAGTCANTAGTGCNNTGGNGANAGGACNAGGTCNAGCGCGGCCANGGTGAANGTGTCATCCNGANAGGAGGGTT ACTAGACTATNGTTAAAGCANAGANCAGANGAAGGANCCANGCAGGANGAAAGCCNNAGAGGCNGNGGCTAGTNCCGAAA CTTTAANGNTAGGCTNGTCCNCCCNNTGGATCGANGNATNCNCNATACNTNCATCNCTTCNTAGNGGCAGCATCNGCCAN GTCNACCCTAGAATNTANTNAGCTACNCTCAAGNCNACNACNNTACGNAAGCTAAATGGNCTGNTAGCNTTTTTCCACGC GGTANGCNTAACCGGGAACTNGGTGGCCGNNGTANGCTCCTGNTTGNCGGAGAGAGCATGTCCCGNNCGCNNCTGNNCNN NNCGNTNGANGAANTGCCAATGGNCANNCANAACGNGNGCTNATTNAACCACNCGNGNGAATCGACCCNGTGTGCCANTT TCCTCGTNNAAAGCNTNNCCTTGGTNGGTGNCTTGAANNNGGAGTTNCCATGNACGAATTTGNAGCAANNCTGCNNNGTN ACCANNNACTTCAATTAACNNGCNGGGNCANGNATGNNTCGCCNCNCTTTAANCNTNTNCCCAGGGAGNNTCGCGGNACN CCACCTGAGAACGTTTAACGGANNCACNNACNACTGCCGNANNCGCGNCGNGCACGGCCTCCCGCCTNAGGAAGTTTGCA ATACNNAGCNCCGTACNTGGNNTGAANTAGGTGTTCNTNGTGACNCAGAGTAGTATAGTTGTNGAANATCTTNGTNANCG CTNANCGACGGGTGCACGNTCGNGNCGGTGATCNTNAANNAGNGTTCAAGAGNNTAAAGGCATNACNGTTTCAATAGNGT NTGGNGNCGCCCAGNCAGTTGAANTNGTGACTNTCGGACTAATGTCACANGNGACCCNGACNNTCTCTTCNTTANGTATN ATAAGCGGAAACNCNATGCCGAATNAGNTCANGTCTGCTNGTGNCAAGCTTAANCTGGCNGGNGANAANCTNCGAAGTNT TGGANCCNNNATTACTTTCCGGGAAGAAGCCNANATGCGCAGNCTCTAGTNNTGTCNGGCGAGCTCNTAATGTCCAATAN TTNGNTNTGGCATNGCGCNNTGAGNGGNNGGGNTAGTNCCANCNACGATANNTGTNAGTNTNCANGGATCTNGGGTTCTC ACTAANAAATCNGNNTTANCAGAGNANAACTTGNGNTAACTGATNGTGTNCNAGCGGNCAAANGACAAAACAATCAAGNN AAGCCTAGNGTANCATNCTNTTCACCNGATTAANATNAAGNGNGCNATTCTTNNGAAANCGNNAGGCTAGCNTNTNATGT TGCNTCTNNANGCGTTAAGGGGNTTCGTAGNTACTGCCTNACTTNAGGTCTCCCGTCACATACGCCTATGGGCTGNACCT GNTGNNANGNCAGNGANTCGGATANGNGNGATATAANNTTTGGGTNAANNACTCANNGGACGCGCTACNANAGGCNATCN GNNGAGCNGTCCGAATTCANGAGCTAGACCAANCCTAACACGTGCCAGCNAAAGTCANTGGGATGAGCACCCTGAGTNTC TAGACAATATGTANCCCNANGGGATNATNCNTGAACATCNTGCGGNTGCATNGGCCCNTGCNCGTNNNGATCNCGCATTT NCNTTGATGATNAGGNAANCNCAAGGTNTNNAANGNATNCNNCNCGATANANGTNTNNGTNTCTCNTCAANCNGCNNNCC CNTANNCCGCGAACNNNNANATGGNNNNCTNTTANTATNACTNNNNNGCTNANANATCAATCGTNATCCAGCANNGTACC TGCCNAANNNNCGCGANTGNANNACNAANAGNGTGACTNTATGGANTACNGNNNGTAATAGTNCTGCATTTTCGGGCNTC CCACGCNGCAGACTTNAGTCAANGNCNGGCACTGCTCANGCANTACGTGGGTNGTANNACNAAGTAATAATNCTGCTNAN TGTTGCTTGGGGGTNTNGCTNGCTATCNGAGGAGCCNNAGCCNCGTGATTACCGGCAGCTANTNTNCGAGNNNCTTTAGG NGGGGTCNATNTCNNNTCGAATCANNNCANTANATANTAAGTATTNCACNGACCCGGNANGNACAGCCTTNNTATNNTTG GCTACATTCAGGCTGATNCCCANCANCCCNACTTTANCCCGGCNTACGCANGGTAGNNTCATTTTTNNNGGCAAGCGTAA NTAGNGGAGGCNNGACGATGAAGNGCCGTTNGGTANTAGGGNNAGGTGNTTTTGGTTCCCANGNTCANNTAANAGTTNTT NGTCCGGATGTNTTNTANGNAGAGCANCATGGGGCNNANNACANGTNANNCCGATGNCTGTANTNAGNNNAATTTGTCGN GCATANCCTANGGTCCCTNCCNNNACCCGGTGNNNAANGCCCCNAATCAGAGTCNNNTTNGCACAAACTAGTAGTANTAG CTNGGCGNNGNGAAGTGAAAGCGCNAAAGNNGTCNTCCGACCCAGAGNACTGCCCGACAGNAAACCTGTGCCGCTCCATG ACNNTNTTCACGCNTCATANTATACNGNNTACNATCTAATGTTCATNGCTGNCTGNCAATCCACACGNTCNCATGCATCC ACAAGTNTACACTNTATGANCTTATNGAGCGNCGGCATATCACGCATNNNNNCGCNAGNGGCANNNNGNGAGACCGNNCA NTGNTNCCTNTCNNNCCNTTACNGGACGNTGACATACNGNAGACNATAATTANCCTCNTTGCAGCCCAANAAGGNATNAC CAGCGAAGTGTGTTNACANTCCGCTTTAGNTCGTATNTCGTCNTGTCTGCNGATNGACTNCGCCGNACAATCCNNGGCTN ATNCCGCGGAAAACCGNCTATCNNCTTTNCGTGCTGNTNGCTCAAANNNCCGNACNTNCNNCGCNGGNNANGACNTATTN TGACTAGANTGTCATTAGCNACNCTTCTAANGCCANNTNNGTTTAGTTCGGANANNCGACTTANATNTACGATGGCCANA ACAGNNCCTACCNNGNCANTNTGTGNGTCTNCCCCATGNATNNGGAGCANNAAATCNTCCCGNCNNTCGCTTGAGNTGGN GNNTTANTACTNAANAAGANNGTCCTTCNNATACAATCGCCNAAAGCGCNGTNCANATGNCCATCCTTCTNTGTNTCCAA NNCCCCCGAAGANNTGGNCAGCCATGTGNGNNTCNGCGCTAANATAATGTNGTTTGCATCGTTTGGAAGCGGATCATGAT AAANTGGTCACTACGATGCTNGNNACTNCGGACNCGCANCCAGNTACGAGCTANGTCGACTTTAGTCAGTCCAGNCTCTT CGCTTTNTCCCNNGGTNCGANCGTCTAGCCCTNTGNCGGNNCANANATANNAGCTAACCAGCGGATGNTGGGCACACCCG AGNCCTGTTCGCCTCAGTATNCANTCGNNCNAAATGTCNCACAANCCCANTGGCTTTATCNGTNGCTNCNCTCTAGNCTT TGAGTNCTNCTCTTGNTCNTGGAACNAGCNCTACTCCCTNGNTNTNNAACNNTGAGCGNATNCANATAGAAAAGTACGGN TGATGTACGACCTCCTAAACTAGCCCCCACTNGTNTGCCNTTGTCCCNCGAGGTCGNCTCANCTCGATANTACCANATNT GCATTCCCTTTANCTANANTANGCAGNCNNNCNTACGTACCTNNAGNCCANTCCNGTNATAGNNGGTGGCCTAATANATT NCATCTNACGACTAACGNCCGATNCNGANCGNNATCNGGTAGCGATGCNGTACCNNGTCCNGGGTCTGNCAATGTTANTT AAACACCTCNGGNCCTTNNTATTNAGCTNAATGGCAGTNNGCAGGNTGNGNCNCNTCNNGGCTCCACNTTTNTTTCCNAC ACGCCGGCTTGCCCGNAAGGNGTGCAGTGGCGNATCNAGCGCGNTNACTGGTTTCGGTCATTCAACTANGACNCTCACNT GTGANGCAATTAAGCCGGGTNANACTAAAAANNTTNCCTTNAGCNNGCAANTTTNGAGNTNNTATGNGGCTACGNTCGGC NCCCTACGNGTANAANNGTTNAGGNATNGNNTTACTTGAGANTTAGGAGTTAACGGNNNAGTGTGANTGTAACNNTGTGN TTNCGATNTNGTTTCNTAACNNGGCANCATGACAGNANCTCTCTAGNGNTTTTTCTGNTCNNGCAGTGNGTCCTANTACN CAGCANAGGCATGTCANTNCAAGNNANTGNCGCNANATTTCCCTCANTACGNCCGGTATAAACGATCAAGNNCTGTCTGC TATTCTCCTATCNGTANACNNGTATAANTGGTTAGNGNTGAATNCTTNNTCNGGTTNANGACTNNTTCGTTNGTGGCCAT AGCTNAAGCTCCNNCTNNCCNGTGNNCGATNGAACGNGATTTNNGNTAATNNCTNGNACANGCAGNCNGATNTCTGCTGT AGGCTNCAATGCTATNGAAACAATGATGTNANTANAGAGNGCNTACCTTATNGNNCAGGGACGNNTNTGANNGCACTTGG GTNTCAGTCGCATTTGCCNGTGACGCNGCCGGGGGTNCGANNTNGTNTATGTNCNCNTGNATCCTGNNANTNNATTGGGG NTTCAGCAGCCCNTGTNTGNGTNGGNTCNTTAANCAGATNTNNCANCCCGGCTGGTTANAGGACCGTNGGNTGTAGANAT NACGNNGCTCACCTCNCTTGTGCGACGTGANANAGCAGGGCNGGCGNACCGTTTCATATGTAGGNTGTGNNAACTGNATG ANTATNNGAGATNTGTCTGCGCCCGCTGNCTCNGCNACCAATGATNGAGCCTAAGCNGANCATCGGCGNTTCCNTGTTCT NNCAGCNNNGCTTGGTCTNCCNTCCAATGTTACGCATTCTAANCGNTGTCAATTGGANNCAACAANATNACACNTCTNTN AGNATNCGGNNCGNCGCGCCAGTNNNTGGGAGTCGNTATCCNTCNGNNATNCATNTCCCAATAANAAANGNACTGTANCN ACNNGGTATNCTNACTTGNTCGTCCCGNAANACGCACCCNGACCGTAAGTGNTACNAGCGCNNGCGACAGANCANAGTGN TTNCGNAGCNAAANANNTAGAAGANANCCNGTAGANTTTTCCNCGATANNTNNGCACATNNNGTTNAACAGAATANCCNG NCAANNTTNCAATGGGTNNCAGGNTNCNCATACCCAGTNCACANAACCAACCCAGNAAANTGCTTAGGTGCNCATGTGNG GAGNGGNCTAGTGTCATGCGCTNTGTGCTCNCTGTANTGNGNATNACNGNTTGNTNTCGANTTTNAAGCTCCNTCGNGAT AAAANGAGCGTNGTAANACCGNTCCNCAAATTTGGCTNNNACNACGTGNCCNTCACTGACCGNNGCGGCNGCNGCTTANG NCNGCATTGCGCTAATANGNCCAGNCNCNCCGGNNCGCNTNNTGTNNCANTAACAGCAATGNTNTANGNATCTCNATCAG NTANCCCNATTTTCCCCGGCNCNNATANNGGGGCNATTNCNNTNCANGCTCNTTACCGAANACNGACTGNAGAAATNGGC GANNANCCGTNGGANTCGCGNGATGANAGCTANAGTGAGANNTNGATGTTTNCTGCCACGTAGAANTCCAGGAANGTTAC ACCCANNCTTTTCACGGGTTTCCTGGTTATNATCACGANTGGANAGCCCTTTCTACGTNGNCNTGACGGGNTNNTCNNTN GNTTCCCAACGACGACCTGNTTGACGCNCGCGGACGNCCCNCCAATCCCGGNTNTCAGATNNAGANNTNNGGCGGGGCTG ANATTNNNGCNGAGGNNNANCNCCGTNNGTCAGGNCATNATGGGNTNCGCANANTTCACCNNNGTGGCAGTNTTNGCGGC NGGGANNGGCCGGCCCCNNTCTAGACTCTTTNGCTCAGGCNAGCACNGCCTCANGNNNTTNTAGGCCGGTNAATNNTCNG CAAANCGGTTGATNGCNAGCAAATACTAGANGANTNGCCCGGCTTACGNNNNCAATTAANTNTAANCANATNGATGCACC TTCNGTTTANAATAAACCTCTTCNNCNGACCCGGAGANGACACGGGCAACACGNNCCCAAGTGACANGGGAACATTATNN AANGCNTNGTTTNTGTTACGNAANNCTCGTANTTGATCTAAAAAGCCNCGATGCNAATTNCGCNNNNCCNACTTGCNNAT TNCCATANTACNTGNGCTGNCANTNATNGTTAACTNAGAAGGTANTCGNTNNNNNCNGNGCTTACAGNNTCNNNATCGNG TNACCCTTANNAAGAATCNTCCCTANAGTNCGCANACACGTTCAAATTAGCGAAACCGNATTTCGCCCANTNCNTATNGN AGATCCAGTATGGGNTTCCTAGANGCGCCCTGGAACGCGTTGNANAGCGCCACTACCATNGTCGACCCTTGTCCGCAATG CATATNTTCCGCAGTCCGACGCNTCTCATAGNCNTGACNGNCNTCCCACCTGATAGNNCTANTTNACCCGTNNNTACTTG GCATNGNNCGTNGCTCNNACCACNAGTNTNAGTACGANTGNGGAGATNNNCCTCGTTGGTCAGGTANANGCAGCNCGNTG ACCAAGTTNNTNGCTNNACGACCGCCCGCNCTTTGCTGNTCGCGNNNCCAAAATCAGACTNNGCCCNGTNNCCACANCAG TAANACAACTNAGGNGGGGNNNTANCTAAANNNCAATNAGGGTGNGCGAANCTCGCTTTNAGAGTCGNTCATNGCACNNT CCNNCACNTNGGATCCATTTTCCCGCTNACNCCANTATCGCANTCGGGGGATGCTTNNANTCNTNTTCNTNGGNAGATTC CCNATATCNTGNNGAGTNCTACCCGATCNCGTCTNAGACNNGNGCNNAGNAAAGANNGCCGNGANACTNAAACCNANNGN TGNACCAGCTACCAATATACAAGTAGTGANCNTGACTTAAGNNTNCAGCTNACATCTCNAGTGAGGNNCAGNAGCANCTN TCCNACAGGCNNGGNNTTNGNGTCNCNGCATNNGTGANNGANTCTGGCGNCTGTAGGAATTGNNCCTNCTCNTANTCCNC NNCANNTANCGGTGGTATGTCCTTNGTCTCCNTCCNGCNGCTTGGTCCATAANNATTGCATAAAGAGATGGNTNNTACCC NNCACGGNGCNTNTACNGCGGNAGACCGCANNTCTGCCCANGTNGGNGGGCGAGNNCGCAATNCCNNNACGAAGCCGNCN CTCCTTNNACNNCTTAGGNAACTCTTCTNTNNNNACAATCCGGNGACATAAAGNTNGNTCANTNTAANCGNGACCANATA GCGTCTGCNGTGAGGGCGGTCNTCGACCGNTCATCGTCAGAGNNCGANNAGAGGGAAGNCTTCCGNCATANCATTGTNGC AAACGTACTTNATNNTTGGGCANCANTTTNGTGCNGCNGACTCCCGNAAACCANTTACNGACACGNTTNCNCCCNCCCNT TACCACNTCTTCNTGGANACANTNTTCGCCGTGCCCGGNTTTCGTGAGTATAGAGCTTNTTGTNAAGCGGCCCTACNGTA ANGGATCGNTCNCNGNGCAGTTGAGTNTTAGATGTNNCAGGGNGCNACTCTCACNNAANAGCACGCGNGGCTGTTTTNCN CTGCTCTCGCTCGNTCCNCNNCACCNANTTCCGCNTNGNTTCNTAGTAAGNCNNGANCCANCCTTNAANCGAGNNTNATA AGTCAGATNATTANGNNTATGCTCCNNTCNNTNACGGGNNCACATCGGCNTNGNGNTAANGTATGCGAGCACTCTTTTNC NCGCCNCNGNGAGANNNCATGGATGAAGGTNGTAATCNCAANTTCGTTGCNTCTGNATTNACCGTTANACTNANNCGGTA GGTGACNCNTAGCNTCNAACATATATNGTCGTGCNTTNTGGCTAACGNNTGNAGATCTCNNANANCANCCACNCCTCCCT NCCCTCCNCCACNCTGCGTTAAGCCAGCNNNGGCGCTTTCNGAGATTNNNGNNCTTTAGAGCATATCACCGGNAANNTCT CGAGGTGAGNNGCGGGGGATACAAGNCNTNGNCNTTGAGTNCTTTTAACGAACNNNAANNNTAGNTNCTTGNAGANCTTG GNTTCCGGNAGGAAAGGTATGCGGNTTATTCCNANTCGTACGCTGCATTGGNNCTCCGTANGCGTCCGCCTGTGATCGNG AGGTAAAAGGGTNAGTNNAGNCCCNGCCCNAGTTCGGGGCNCGATGGTNTGANTTACACTGNNCCATAAGTNCANTNAAG TGTNCNGGAANCNACGCGNNGGCCNAAACCCACANNGGNNGTGATCTNCGCGCCCACTATTTACATGCTCCCGCAACTNG NCACTNTCGAACCCTACNNAAGTTNCAAAACCATGCCTCGNCNGANGGANATGNTNGCGCNNGTAAAACCGCTNGAACGC ATGNAGAGNANCTTGAGTCGGAGTGCCNCNAGGNATCGCTANATCATCTTNNGANTNCNNCCNNATAGCTTCTAAATACC NTAGTAGCCGATNTNNNNATGGTCCGNTGACANGAGNGNNTNACCTTAGGCNATCCTNGCGCGCTANNTCNTAAAGCGNN TNCNCNTNNATGTTTCGTNTCGNANNGAANNGGAGGGNCANCTANCTCCTANGCNANANGCAANNAANNTAGTGATNNAT CANANGNAGATNTNGGACAACATTGATACTGGGGTGGCCTCANTTTACCCGGGGCGNCCCTANGNCGNACTNAAGTTGGT TATCANTANCNNTANAGANGGCNAGCNGAGNGACGACACANAAGCTCCTANNTACAATCANATTCNAGTNGGGCNGGTTG AGTGGTANTTNTCCTNTCTTNTNAACTAAAANACANCATCCGTGCCNGTGACNNNTTCTANANNGTATGTTANNNCNANN GGATTCANGTTNANGGGANACGNANCCAANNCACCNGTGCANCCGTTCAAGCTTATAGGGCACNTCATNNTTGGCGNCTC CCCTGNCTNAACNTATCTNNTNTTNGANCATNCTANCGANCGTTNAGCGGAGGGGCAAGGGACTGGAAGTNNATTGGATG NGCNCTNGTNTCTNCCAGAACGTCATCNCACTAATGCGAAAANCTNTNACTNTTCCTGCCNACCTCNNCTCCGTAATGNT AGGNNNANGACCNGGGGCCANNTNNNGGCAGNACCTCATTTACCCNCNGTCAGAGTTGTAANTTNTGTGCCNGTCNCNCG NAGCTGGANACGGGGGTNCGGNTCTGATTCTATNGGCNGTNGGGTAGNANNNNTTANNANTGNTNTTGNTAAATTNCGNT GGGNNGCCNNGGTNGNNTGNTCTGTCTTNTCCANTTACNANAGCGCNNAANAGATGACCNTATNANCGNNTCNNNTATNC ATCCCCNTCTGNCNANANCGGTACAATCGNTGANACGCATNCANGTGTTGNCCTTGGAANAANTGGGACTTNACTNGNNC GACNNCTAAANACGAAAGCATNCTCCTANGGGGGGNTNNTTGGTGANACGTGGCCTNACCNGCCATNCCCAACCNCTNAG CNTTGTCAAGTNCGNCTATTTAAACTAGNCNGATCCGNACTGACCCACGTNTTANGACNNTCNCTTATGANACNANNTAN NACNGNACCACATCNNCGNGAGATGTNTAATTGTGTNGANCCGNTNNGTCTAANGTANGCAGNCGNTTCACNAAGAANAA TANCACGGTCAGGNAGNTGAANTTCNCTGGCGCCCCNCGTTCNGGCNGAACCAATANGAGAGATCTNANNCNNCAGGTCN CNGNNGTACCGANTNGNGNNGTCGGCNAAGGGANTGCTATCAANCNCANNTTNCTTTTGNGGTTGANGACANNGCTAGNG CANCNCGAGGAGGTAATAAGTCGGGTGTGNNGTAAAGCANCTTNGNGANNTTNTGNCACCGACANNTNTAGATGAGTCTA TAAANTATTNATNNCNNATGAGTANCTTCTTNGNTNNTGNTAGTAGGGGGTGTTCATTTATGNGGTGGCGCGGTTAAGCC ANGAAATTNGCAGCNATAACTAANACAACCACATNTTTATGCGATAGTCGTTCCNCTNGTTNCNGGGCTTGCTAGANTGG CCCNNAAATNNNCNTTATNGACNNNGTTCTNGGCNCCACCCTGTTGTCNCGGATNGTNGTNTTAACTAGACTANNATTGC TNGANACTCTCGTGCTNCGNNNCTTAACTTGCGATCGNTGNGGGACNAGTACATGGGATTNCTATCCNNCTNNGAGANCA ANTCATNTGANGATGAGACNCTNTTCTGNTAGCACTTACGACTCNACAGTTCTCGCAGTNACCNCNAAGTCGNCNGGCGA CGCNCAAGATGNANTAGNTCATACACCCGNTTAATTNGTNTCGGGNTAACNGGTACNCCGATNGAATTNANNNCAAGATA AGCNCCGTANTCTGACGGNAGTGCNCTNCAGCACAGCCTATTTCGGANNANNAAACTTCCNNTCAGCTATCTCCCATTTC TGANANGTANTGTNGGCGGNCANCTTGANTCCCNTTAGATTNTANNGATANCGGNNNNACACCCGAAGANGNNCTNAANN CTTANCGCGGGAGTCCGANCCANTCTTCAANAGTTGGCTAGTGATTCNAAAAANNNNNCCCACCCGATNCNNGNTGAGCA NGTGTTGGATAGAAGATGANTNACANTCAATANCTGGAAGTGNNNGAANTGAANTCCNAGTTATNCCCCAATCTGATNCC TTGTTGCNNCNCNNGGNNNAACTTCNGCNANNNCTGNATCGCCGGCNNTACTAGACTTANAGACTGCATANGCACTNANN CTAGGACNCNNNCNNCNCCCGGGTGTTCGNCGCATCNGTTGGGNGTTTACTTGCANGTNAGNTGATCGTCGTGACAATAA GTANNAATGTCNGGAGACTTTTACGTNCTCCAAGNTTGATCTGNGGATCANTACCTTTTCGTANGNCGGNCACACAGATT NCTAGGGTACNGCNNACACTACTAGTANGGGCTGTGTNANGAANGCCGTCGTNNTTGAATGAAAAACTCGAAATNGNCAC AACNTNANCGATCNGAACACGACNCCTTAGNNNNCANCCGNACATTCNCNNCNANCGGNCATANATTGCAGGTGAATCAN NTAGCGNCACTTTATTAACTCGGATNGNGNTCCAAGTGTCACTNAGCTNANCNATTGNNCATATCATCTCAGCTTGTCNN CNCACAGTCCACNCGCGNAAAGTCCTGTTCTCCAGCTGNANNTGNGNTTNTGCGCTNTTCGNCTAGNGTCTNATANACCG GGGTCACGCCNCTGANGNCGGATGCAGACGGNAGGGTNTCGNNACNAGNTTAANTNGNGAATGCNNTGGAAGTTAAAGAA AGACTAAATCTNGNANANCTNNCCNGANACCTCNCCCNGTGCCNGNCTCCTNTNTGGGTGGANCTNACCGNCAAACTTCG NAGNTCNANNGNTGCNGTANNNTCCTCANNCNGTNCNGCTGGCTAGNCCGNNGNTNNGANACNCGCACANAGNCGGAACC NGGCANGTGAATGNTNNCCTTTNNGGGTAATANCNNNNGTAACTGAGATAAGCANGCGCCCATAACGAGACGNNCGANAC GCNANTNTTAGCCCTTNGACCNCTGCCNTAAGNAANCTGGTAGATGGCAATCTNCGCNGNGGATGCGANAATCANNCACN CNNTNCGCNCNGCGANGATAGACGCCNTCGACCTCGTTNTCGNGCCAGNTTATANCGTNAGAGATTNNCCGANAGCNTAN GTGAGAGNCTCGNNAGTGANCACTGTNTAGGAGACTGTNNNNCTGNAAAGNGNCCAAGCCATCNAGAGANTNGGGNCTTA GNANTTCGGCGACCNGTNNANGTCGTANTGAGGACCCCGANCCCTCTGGANTCNCTTGATGTACTGGAAGTNCTAANGTC CCCAGGNANCCCCGTACTANGNNAGTANCTTGTAGTTNANAGNGANGNNAGGCAGACNCAACGTTCGTNTCATCAGGAAC NCAAANTNTCTNGAGCNACNNTGCCNGTTNNGACNGTCGGTCNNANCAANTTCNTNCNNAATCAGTAAGCNATANCCATG NCGGTACNAAATAGNCTGTGTTGTNGACAGCNTAATTTAAAGCGCCNNNGCCCAAAGCCCACNNTNCNTGCCAATAGGGC CGGCGTCCNCGNCGAGTGNATGNNCTTATNGCAACCAACCGGNTGNGCTACGCCNNGATTGGTTATGCCGGATGCTGGCC GANAGAACNNTTGACGACGAAGTTNNAGTCTNNTCTNAGNGNTGTNAGGAGGACGCANTGTNAGNGCCGCTCCGATCNAT NGTCTCGCTGGGNCNCCTATNCGATTTNCGGTTGTTATCNTCACCCTNTATTTCTNNCCTNTCANTTCATNTNAACNTTT CCNTTCCATNGCCTNCNTGATTACTGCTTCTNGGGATCCTNCTTCNNNGTCCATCGTCATCTAACGTANCGACAAAAANT CGGACGACCCCATCNGNGGTNGTCGGANTCAACNCGTCTTGCGGGGTCTACCANAAACATNATCGACACTGCGAGACNTC NANATTCTNATTCAAAAANAGGGTCAAGTNTNNTGCGCATTCCTTACCCTACCGATNTCGCNCCNNGNTAAANTNAGATN AGCAACGCCCAGACGGNNGGTATCCATCATAGTNCTNCTTGCANTNCTNNACNACACCTCGNGGCTNNTACNANTTGACA GTTNGCNATGCCNGCCNGCCNTTTATTNTANCNACGNACANACNANCTTAAAGTTTCGCAGNCAGAAATGGAGNNCTCTC CNCCNAGAGTAATANGTNGGCCNNNTCTGACGNGNANGAANCCTNTCCGGACTGACTTNCCCGNGTNNNTAAAGNNCGAT TGNTANTTGATTGATANGNTTCCNTNTTATTTTGAGGGTTCNTTAGACGTATGTTNATTGCGANNNGTTTTCNCNATGGA NANCANGNGCNNAATACCGCCTNNNNGATNCACTNGCACTTCAGTAATCATAATTCANCNANNCGNCCAGACATNAGACC GGAGGTTGGNNTGNCCGTATTTTTCNCTCACANNTTACTNAGAAAGNCAGTTGNNTNGTANGCGGATTGTATTCCTTCGN AGGANTNACNNCCATGAGANAGNGCGGCNGCNTGTATTTGGCGGACGTGNTATCNCGGTCNNNCNTACCTANGNNNANGA NTTNNCAAGGGATATCGCGANGGCGGTCTNANCCCGGAAAGTNAGNTTAGCATGTGCAGGGNGTTGGTGCNACNNNCGAG TNCATTGCNNTNGGTNAGAAGNGGNCNTCCGGTTNTTACCGTGCATCCCCGCACCCGACCCNTTTTAGNNGTATATNATN GACAGCNTGTAGNATATTTANATTTNACNCACTTANGGACCNTNAACGAGCTNCNGAAATNTCCCGTNNATCACGGANGT ATCGCTGTCTCNCANTGNNGTGTGAATGAACANTANGNCTTGTATNCAGAGNNGANNAAACGGTCCACGNGNTNNATNAT CAACCGATTANTNCNTGACGCCNCCNNGTNTANCAACNGATTGATTNTCNACCTCGATNTCAATTCNGTNGAGNGGATTA NGCGNNTATTTNGACCNACTCACATCGNCNCTCAANTTNTTNTGCATTNAGNNGNCGAGTTNTCAGCGANCGGATNAAAT CNCATGNAGCNCNCNANTGTCCANCGGNCCNGTATAAGCACNNGANTGNTCGTCAAAAAAANGTAATGCNGTCCNGATTG CTGANTNGTCCGGGAAANGGTTNTCTCCGGNNGGTTAGCAGCCCANCNCGCGNCCCGTTNNTACCGANTTCGTNTTATAN TCCCGGCTGTGGCTATNCAGGNCGGAGNTNTNCCACAACCTNCTATCAACGGANNATGNNNCNANAGGATCACACTGATA CTTCACGATGTANAGNCTCGGNAAACCGNTCACTNGGTTNTAGCACCNANNCCANTCNTAGACGGNTCTGTCNCCCNGNG TNTAGATGCNTTCNACAGGCNNNACCACACGCACGNACTTGACNNGCATTCGANNTTGACNTCCNCNCGCNNGCNAGCNG NNGGAATTATNCNTCCTNGGCAGGCNAACCCGTNNTAATGGGGNGATGATTANGTGCNNNANCAAGAGATACCAGCNNGA NGAAGANTGNCTTACGATGCAGGTNNGNCNCCNATTTGGAATNTAGCCGGACTCGATANGTNTCTAGCAAATGGTANANG TNNCNNGNNTTTACNAGCNNGTCNAATATTGATTNACCGNTGAGTGNTTATTATNGCGTCCNTAGAAGAACCAGANTAGT CCNNNNANNANAGCTTCTCCGCCTAGGAACATNNNGTCACAAGACCCNNANAGGTCACAAACGCTGTNNNNCGNTGTTNG GNGCGTNCTGATTNGGGTCGGGNCGNTAGAAATGGCANAGATNCNAGACCCTNAGGGTNTAGNGCTNTTGTCTATTCGCA ATATGTTTGCNCCTCGNGCGCTAANCCAGNTCTCANNCGTGNCAAAGGCCNNCGTNNGNTNGTNNCTNTTTTNTCTGANA NNATNATACANCCNCTCCTCTGCGCGTGAANGNGACTGGNCGCATGGGATGNGCNGCTTCAGTACGAGCGNNGATTNAAC TAAANAGCTTGATGGNAGCGCCAGTGNNATACGTNGGCNGANATTGNCAGTTANCGTNCAGGAGANGTNNTNNTNCNGTG GCACCTACATCNTGTGGCANCNAGTNNAAGNATNAGTGAACGAGAGAGANNGCAATTTTNANTNNTTNGCGGNNTTCCTT CTTGTCCGAGGCTGGNGTNCTTNACAGGACTGCTNANTNCNGCGCTACTGCGNGNCGAGNGNNAGGGACGCTNGNAACGN TCGTTTGGCCNAGNCTCCGTGCNNTNANNGNCAGTANTNCATCACTCGANTCNCAAGCNTNNANTCCCNAGNGCGCGATC GGTGAACGGGNAAAANAAGGNGAGCNNGANGNGACAACAGTCTACACCAGNCGGTTNTNNGCAGCGCCCAAANTCCNACN TTCCGNNNTTNTTCTTTCTGANAAGGGCTGANCACANTANTNTNGGNTCTCTCTNGGTNCGNCGATTCAGNGAGATNCCN TGGATCGNTGANCGTNNTGTTTGNGNAANGCNNANATGATNTNCCNCNTACTNCCCGTTNTGTNGCCACNNGATCGNNNT ANGNNCNCCGNGATGNACTAGCGTTCCGTCNNNTTATCAGGGTACTTCTGTCACCANNCCANTATTCCATAANTCNTCCN CCTATCACTTTTACTNNCTCTACNNNGTTTAGNTCNNNTANCNGGTAACCCACANGNAAGNCNAACAANTCCNTCGNCNA GTCNCANGTNNACGCCCAAATTNTTTNNGTNCCNGATGGTNNTATNNCTANATAGCNCNCGATNGGGACAANGAGGANNA CNCGGGNNTANNNAGNTNCTGNTGGTACNTAGCGGACACNGGNANTGCCTCCGNNCTNNCNTGNACCGANAGAACTNGNT NNATTANCNCTGCNNTGNCNATNCTNTCGCTCGCNNCGGAAANGNCGCCCCANNACCAGCNNNTTNCNGGAAGGACGCCA CCNTATNNTCGTTNTCGACCNCACGGCCCGAANNNTNTGGNCNTCAACGTNTCTANANCACTNGTTGTGTCATTGGNCCN CNGANATATNTCGCCAGNGGCTTATCNTTNTTAAACTAACTNTATANNNNTATAGCTNNGCCAGCCACANTGGCTATGAA CTGGTGGTGAGCGNCNNNCATGNCCAANTCNNACTTTNGGAGCCTNATNNCTANTTCGTANGNNAAGGNANTTNCCGNGG NTACCGNATNACNACAGNCTNNTGGNNACCTTANTATTCACTCCANTGTCCGACTAGGNCGTTGGTGGAATTNGNGANNC GGTGGCAACACCNTGGTAATATGGGANCTTGCCGNCTAACTGNAANCCNNTTCTNTCCCGGACCCGGTCNCCANGGTCCT GGGCGNNCGTTTAGANCNGACNNGCAANTANNACCCNNNTTCAAATNCTTNNGNATCGCTGCTTGANACAGGTGTTATAN ATAGCGATANGCGAGTNCCTCANCCANCGNNTNTTCTNATNTNNTATCTGGAAGNATGGNACTCATGTCGGNCCCCAGAC TTGANGGNAAAGTAACANTCAAGCGNGGTTGAATAANGACCTTACTNTTCCANCNATCTCNAAACCGTTNGGATTAGGNT ACNNTTAAANCTTATTCTGATANTGTACCGCAGANNGCANTCCACGAGTNCNNCCTTTGAGCNCGAGACATAGACNGNAN CAAGGGGTANNTTANCNAGTGCNACACNANATTCCNCGGNATAGCNNCCTCGTCTGTGGNGCTCNNANTANAGNATTTTN TGCNNNGNGCTNTTNTNGNAAACGANNAANGCNTATTCANAACNCNNGGNCGGCTCNCNGCCNNACNAAGNCGNATCAAG CCCTCCNGTGTGNATAAAGCCNNAGTATCNTATNAGAATCACANNTCTTAATNTAANTNGCGGGTGTNGNCGCCGNTTAA AGCGANTCTNNGTTNNANGANTTCCTAANGCTACTNCTGNCAGNNGCNACAANANTATCAANNCNGGTANCCGTNGNGCA NNACACGGGCTGCNACANAANAGTCCNTNAATNGNNCNCNTNTTAANTCACGNTTTTNGGCNCTTAACNNGCTNCCGTTA AGNANTNTTNCNGTGNAACCNACTTNATGTCTNNNCANGCCTNNNGGNTNTCTGCCCTTCCCNGNTCCATNGNGNGCNAC CCCGTGTTCCTGNNGAGCAACTGCTGAGNCTNGNNTTCCNTCNNTANNCNGTGCTAGGAAGATAAACTGCNCCNCGTAAN ACGNCGTTTTGACCCGNACGANNCTATCTCAGTGCTGGNCCNCNNGGNGGNCCCAACCCNCATGNGNNTATTATCCNGGT ATACNNTNANTNACTCNATTGACAANNGACGGANNTAGAGACATNTCCGACGTATTTCAGNTGANTACGGTTACACNCCA TGTTTNCCTCGCGGTNTTNNGCCGNNGTNACACCNNGTCGNTANNGGNTCCNCNTACGANAGGTACGNGATTAGGGANTT CACTTCCTATNTGGTANATCGTGNTGCCTAGAGACACCAACCGTGCTTGCCTGGNTTCNNNGTNTNTNGTTGTNNNNGNA TATATGTANGCNCGGACTAANCGGACNTNNGATNTTCAATTGNNGCCAGCACCACGTAGNGNAGCANTAGGGNGACACGT CCCNCTACGCATACNGNTNNTAAGCGNTTCACTNTTCAGNGCAGNGGGCNTNTTCNNNCNCNNGGCTCGACANGGNGCCC ANATNCGTCAAGNTACCTGGGCGTCATGCTACNCGTTTNTCCNTCATATATAGTGANGCNACAGNTAGTANCNCGTACTN CANAGNGGNTCCCCNTCNTAANCNTACTCGCCTTTCNANNTGTTANNTTCNGANCAAGCAATTNTGNGNAATGCNNGTAC ANTGNTACCCCGNNTAGNGGCGGTCGGCNCTAGNNTTTTANNCCGCCAGAGNNTNNCCNGNCCGAAATANCNTGTGNCAG NNNCCGAANTGACCATNNNTGANTGAAAAATANAGANACGATACCCGTTCTTANATTCNGGCCGGCANTCGCGCGAGNCA CGCANACGCNTNGCTNAAGANNATACGGACNNCNTCTTTNNTNGNCTNTTCTCCGGNTAGNCGGCACANACTGTGTANTG NCCCACCTCAAANTGGCNCTNCGTGCCACANGATGGTGGNTNANCGTNTNANGNGTTATTANATANCACAAGAATCCCCN CNAANGANNNCTATCTACAAATATNGCAACNAGNCGCNNACAGGNCCANGCNCCCGCNTNTGTCACNNTGGTAACCNNAN ANGNAGCTCAGCGGTNNCGTTTGGCTCGNGATCAGNTTAGAGCNCGNANGCCNACTTCGGANTCTGGTNCTCNCCNANNC TAAGNCNANTAAGTGTTCGANGGCGTCCNNNNANAATGCGGGTCAGGNGNANNGNGAATAGCCATNGGCGTTNATCGCAC CNATNCNNNGTNTGCAGNTNCGTNGNNGACNNGCTNNATAGCAATTAGCAATAGCCAGTCTTGNGTATCTGNTCGTTNGG TNNNGANNGAATATTGCAANAAACTNCTNCAGGNNNTCNTTGCGAGGATTTNNNNGGAGCANGANAAAGANGNCTGTTTC GGGTGTANCNNGANGAGTTNANCTCNGTNGGTNANTTNNAGCNNTNGNGNTGCGCNTGTATNTNTCNANAAAGNTNACCA TGAAAATAGNCATGTAAGGTAAGTGTNTCANNAGANNAGTATAANGATAGCNTGTNNTAGTNCGGGCGNGAANTTACGAA ACNNTNTNTCGNNANCNTTTNNGGNGTAACGTANGTCCNNCNGANTAGGNNGGGTNTNTGTGNNCCGGCCCGGCGTATNG NNCNNCCTGANTTTTAAANTTTAACCTCGNNCAGAAATCTTGTATTANCATCNTCNTTCAANTATCAATCTAGACGGAGA NTCCTANTNTCTACCCAGACTGCNTANCGACCGGCAAANNNCGGTGGAGCCCGNTGCGCACGGNANNGGTAGAGNCAGTT AACGCTCAGCGTTNCCCNTAGTGCNGCGNCTTCGAGNATNCTGNCACGTACNTCNNTNACNGTGTCTNCCTGTANCGACG TNNGNANAGCANCTTGTTCTTTNNTGNNCCTGANANGTGTAGANTAGTCTNTTCGCANNCACGGGGACGACATCTTNNGG CCTTTCCTTCAGAGAGGNNCCNNCGNGNTTAATAGAANNAGTTCACCTNGCCNACGCTACAAGCCNNCCNCTAGNCTGTG NTCNCAGNGTCGGNGTTATACNATCNAANGTTANNGGGNNGCGACCATTTAGAGCTTGNGTANNGANACTACAANAAACT AGTCCGTCTCCGNNGTCCGGNTGCNNAGTCNTNNANGNNCCNCAANCCGGGGNGGATNNCGTGCCACAANCTTNGTGACT NACGCGCGGGTGTGNNTTGNCNTCATACAGCCNNCGCTTATGCNCGTAGCACTANTTNNNACGTNTTGAGGGNGNAGTGN GANATNNAACNTGGNATACANAACGCATTGANNGCAANNTAGNTGCANAGANGNCNACGGNGCGAGGGNNTGGGTTAGTC AACGNTTNTCNTGGGATGNGACATCCATGNCANACCANGNTTNCNGTCAATTTCTTNCNAAGTNTNNNAGCCCNATNNGG TATNATTGNACGNCNCAGACATAAGNACGCCCCAGTTCTGCNCNNGTGCGCTTCGNACATCTGGGGNCTTATTAATTNNC GATGTTCCGNGNNNCACCTCTANNGGCCNNGCNCTCCAGNTACNNGNGTGATNGTAGTNGCAATANCNTCTANANNTACN AGCTCCCCGTNGANNGTANGCGGATGGCTNNAGCAGNATNNCGTNCGGNTNATTGGCAAGCTTGCAAANAANATCTNCAG TGNNTCCNACACTATATGNAGNCGAGGGGNANCGCACNGANAGTGCNTCNTAAACATNGGAGACAANACGGAACNTCGNN GACNCTGTGGGGTTCGCAATCTTCNTCACTGANNAGCNGGNNACTATANGAGAGAGNAACGAGAAATGTNNAAANTTCNA AAGACGCTTTNCTTGGATTCTCNGNTCCCTNNCGGGNCTNAGGNNTNAGGTAANGTCNGCAATTCNNGATNNTCCNNNAC ACGGCCTGNTCTNGGNGGANCNCNGCTGGGANGNATCTTNGGNGGACTNGNTNGNGCTNTTANNAAGTCCGGGNCAATCT CGNGGGANCTTNANACNGGTNACACGTNCTGTCCNNTTGTAACGCCCCNCTNANACTGNGANCNANGCNTNCGCGGTNCG NCGGANNGTCANTCCATGTCTGTTCANNGTAACGACTCNGATCNNTNANCCNNTACGCTGANGTTATGACCAGANCTANN TNGTGANTANTNTNAATGAGCTNCGNNNNTNCAATTATCCNAAGNGGGNNNGNGNCGCGACGCCNAGNACTTGNCNGTCA NNCTNNTNCTAGNNCGACNGNTCNNANCAACCGNGGATCATGGANNCNCCNANGTCAANGNTTAGTGATTTGCGTCNANC ATNACCTATNGTCNGTTANGCNCGTGATTGACCTTGGCCNATNATNCAAAGGGACANCACNAAGGNGNNTTNGTNCTTCG CCAAAGNCTGGTGTNNCGCANGTGTCACAAACACNTANNGTGGTGTGTAAACACNTGNTTCTGCTATAGTTCCNCTGANG NNGTGNNAGACAGGGCAATGCGACGNANNAATTGNTCTNNNTGGNAGTTCTAGNTTTNANATCNGATTTGTGGNAGTNTC TATGNNGCGTCTAACTCAACTGANTANTTCTANGTCTAGACTCANATCACCNTNANNAACTANNCAATCTATGTACGNAA NCGGNNTNNAACNGTCTCAGTTNNCNGGTNCAGTCCGCTTNNTGGANTCCGATCTGTCTCANCGAATNNTNGANCTGGCC CTCANNNANNNAGATGACNAGCTCCAAGACAAAGTAACACCCCCCGTNCNGANGGACNTNGNGNCANTGACATANGTNNA TTGNACTGTTCGTNACGATCTCCGTTNTAGTNTTCACTAGAGNCATGTNTCACATCACNTANNACNTCCCNAAAGCTGAG TGTACNCGGNATATNAAGTCCNGANTTCTGGTGGNGGGNAGNTTTTGTGCAGTAGTNATGATGGGNACGCACNGANGGNN TGTGTGANAACACNCCNGGNTGCTNTNNCCACCGNTACGCNAACAGGGTCGTGAANGNCTNCCGTGAGNANNNGGCTGTG TNAAGGGATTANTNNTGGAGGNNCGGCTCGNGCNTNTAGTCCTAATNTGTNGCCCTATANGCAGGAACTGGNCTTNCTAC TGCCCCNNATTTNTGGTCAGTGNNGGNAAGNCAGANANNANGGTCTCCCCNCAATGNTCTTANGNCATGGTNACAGGGCT NATNTTAAAAATNGCGCTNAATGCANNNCGCANNAAGNGCCGGATACNNCAANNGTCGTGATCCNANNATCGCCACNCAA AGTANCAAACCNGAGACACGCACCGNNNGATTCCACCCACNTCGAGTAGCAAGAGNCAGAGGGCGTACCNNNTCGAACCA ANATGANGTCNCGNCAATGTGAACATGTCCGTGTNNCNNNGTTGNATCTCCACCNGCTTNNCTNCNGNTGTCTNNCNNCA TTTGCACNNAGGTNGGCAAGTACNTTNAGNCGTACCANTTAAAGTNNGNCACGGTACAGTATNTTCNCANATAAGTTCTC CTNGCAAGNGTACGCAAGTTCTTCANGNNNNTTGTACAGCAAGCCCAGAGGNCANNTATAAGNNNTGGCNNNGGACGCAN TTACCAGNNGTACCTNNAGANNACACNGTTAGTCACGANCNTNGTCGGAGANGNCCNTGCCCNAACGGNCCATAATTNNT TCNNTATTCTTNTGATACTCGCATACGCNATAGCCNTNAAACCNGNCAAGGTNTNGAGTTTANTCACCGNNTNGCGCANC CGCANGNGCTACGTACTNAATCCATTGCTTCGGAAAAAGTNGCCTCTGNTCNCNANNATGCTGANNACAANNCTATCNAA NCNNAGGATGGNGGGATAAACNACNCGNTCGAGGACGATAANNGGTCNGNTTNCNNCAGATCAGCCCCTAGAGATTTTNC TATCCGNTGTAGTGNAATTGCAGANNGNTTCANGNCTCCCNTNGGTAGNATCCGGCCTCTANAAGACGATTGCNTACNNN CGNCTNNNGAACGGGCCCCANTNNTANCTNGNNTGTACNGGCAAGCTTNGTGCAGGNGAAAGCNGCGANNCACGNAGGNA GGNCCCNNNATTANAGNATNACTCNAATCTGANNATAACGAANCGTTTTACANNCNCTCTANACTGTAGACNCACCNGTG NNCGTNCATNCAAGCTTGNGNANAATGNTNATNCNGTCCCGACCCNATCGGTTNCTGTCGNTACTCGTGTCTNNAGGNTC TNTCATCAGGTTTAANCNCTAAGACCAAACAATCGNCANANATGNGTGCATNCCTANCACAAANTTTCTCTGGGCGGNGC CGGGTNCTTNACGTAAGGNGNNNTATNNACGCCAGGCCCGGNANTNCNGACCGGAGAAATNGTTNGTTCGNNAGANGNNT CAATTNAGNNGTCCANCTGNNACGTNTNCTCAANNGNNNTTGANCGCGCTCNGTAACGTTGTATAGCAGCTAATGCGTCT CNACCGGGANGCTGGTTCNNCCTTNGAGNCGCTATNNGCCNAANNCNGNGCTTGAGGAGCTCNAACNTGNGATANGNTAN NGNGTCANANAGANATTCGAGNGTATTATNTCANCNNCGAAGNCNNAAAGNATGTNATATTNCGGCGCTNTGCCGNAGGN NCCAAGNAAGGNGGGATACAACGTACATGGTTCTNTNNACTGAGACAGAGGNNNCNTNNCTCCNAGCCCTANTTAGCAAT GTCANGGGNNGCNTTTGCNCTGCGCAGCGACNNGTNACCNTACACGGCTNGCNNNCACTATAGTCANTCTNCCCTTACNN ANGAGNTGTGGANAAAGTNAGACAGTGNATCNNTGCGGNGNTNCNGNTNCCTCNANTCGNANAGGANNCNTCGNNCGGNT CTTTTANCTGTANATGNGGANNTAACANAATNTTGNTTCGNNTANGTTNTAATACGTANCCNNNGACGNTCGTCCTTAGC CNGATTNGCAGCGTAAAGTGAAGGNGGCCNNAAGAGACCTTCCTACNGGGNAGTGTTNTGCTTTCGAGAGAATNGGNANA TAGAGANNCGNTTCGTNGTGGTNNNCCGGTCAAANATCGGTGTCANTGTGTTGCGCTATGGCNNNTNCATNCACANAGAA NTNCTNATCGNANGATCTNANANTGNNCCTTACTAANGCCTANTACGTCGCTACGCAGGNTTGCATTAATCGTNGGNCGT AAAGGTTCGNCTAGTCAGGTGGGCGTCANGTNTTNAANAGNTATCACGTGAANANTCTNNGTTNAANANTANNNCNTGTC NATATGCNCNCNATACTAAGATNGCNTTGNNTNGCGNNNNACCNTGAACGATATCAGANCTNGNGNTAGGANTGANNGTT GGTCCNNNATGTNNCNGNNATTGAAGCCAGNNCANGAANTGTTTGNTGCGTCAGNNGTAANTGGATNAGGNACATCAACG CGGGTCCNTNGTCTCTACGAAAGAAGATTTNAGCNGNTCGACNGATNAANNGNNAGTGTGTCCNTTAACAANCNGACTTG GNACCTTCNCNCTGNNANAANGCGGTNTNTGNAGTCNTTGCNNTNGGTANNNTGCGATNNTTATTAAGCACCTACTTCGG NNCATCGTTTAGNNGCGTGTTGCTNATTAGATNANNCTNGNTTNCNGTAGAGTTCCACGANTNNTTNAAGGACCNGTTGA CTTAACNTCNCTAGNGCTTNCCCNTGACAGNNGCNNTTCANNCGTANGAGGCTTCATCGCGATNTNTCNCGCTNCATNTG TANCTACCGGGATCTGCGTTGCTANCNAGNACGANAGTTGAATTACNTCCCTNNCCTACCTAATATATNTACTCATNTCN GGCAGAGGACCNCTGACCNCTANANACGCNGTCAGGNNGNNATACATCGNCTANNNNNGAGTTNGGCTGAGAATNATCTT ANGATCCGAGNGTNCNCNTTTNATAAAGCTACAAATNTCTNGCANNCCTGGTNNCNTNCGTGCTATGTTNCNCCNNAATC CGACCGAGTAAACTAGAGGGCCCTGNATCNCCANAANNCTGGAANTTGGNCGNAGANTGTACNATTNAAGAATTNANCGC NCNAGGTTTNNGGTGCNNAANANAGACTTTCTCGCGNTGACTTNNTCCTNGAGGTCATGNNAGNCGNGNGATGAGCAATA GGAGTACANTACNATTAGTCNACGGGTTAANTACCCAAGTCNCGNTAGAGTNGCTNANNTGCCATGATAAGNGCGGNCCC NNNTCCCCNANATNCTCCNAATCAATGGNGCNGACCGNCTCTGCACCGNCCGACGGTTCGCNAATTNNTGCNTANCCNNC TTGTGNTGGGTAATACGGAGNCAGNACGAAGAACTTNCCGCCGGCGCCTGNGTTGAAGACAATCTCAANGGAAGCCGAAN NTNGGACGAATACNTGNAGCCNNATGAGGGACCCAGNTTCGAATTATTATNCCTANATGTTGTCACTNTTANTNTGACGN AGGCTNGCNTGCNGNGCGCATCTGGTCTGCTNCCTGAAACGTNGNAGTNACAGCTTNGACNCNTTCNTTTTTNGCTAGNG CAAGGCNAAGAGCCGGANAGNGNACTNCNGCGAGNNGGTTAACCCNANATGNTNNNCNTNTGNGCNTTTTGANGCTGGCN NNGNANTCGGNATCAGCANGGNACNCTATTTTANGNNCAGCNAGCACGGCNCCNAATATTAACTTNATCGNACTGCGTNA AGGCNAACTTTTGTGATCNGATTTTTTGGCGNNCGTCAGCNACGCGNGNATNCTNGTCTCTTANGNCTCNNANGNNAGGA GTAGGNNTATAGAACCGAAGTTNTGTGGGTAATTNCTCANTGCGTGACGNGANAATAACCNTCTTACCNGTCTCGACAGG AGNCANAGNNATCCAGGANNATGNCNANNNGANAGGCCCNAGACATATNNTNCCNNGCGCNTCATNCGCNTNTATTNGNC CGCNCCNNNCATACTTATGGTCGGNCGGNGGNNNGATTTTTANGCNATAGAAGTTCCTCACGNAGAATGANTTCAATAGN NCANTATTTTTCCGTATNCGNGANNTGGGCATAGGAGTTTGANGCTTTCTGCTNNGATNTGTACCAAGNTCNGAACCTCC TAANCAANNCATACTNANNTANAAGCNCATACTNNNACANTACCTGGTTGCTANTNTCCCTTACTCCCCCNNTTCTTNGN NCGTTGCAANANTGGCAGTTANACTTGCATNGNANCCCCNATTGCANACTCGCNTCTGGTGNANTNNGTNCGGANCGNTG TNCGAAGTAACTTGCTNNCTGTGTGCANNTCCNNCGGNNNGTCCTCNCGTACNTAANACANTGCCGNANANACGNGGTGC GNTCATGANCNTNGTNNTCCCATTNGANNAGGGNCCGGANAGANNNCACGAGGNNNNTAACCAACAAACGGGACCATGNN ANGNGTNGCGGACTANTCNGTTCAGCNGNNGNTTCGNGACGAAGCNTAAAGGCAGNCNGCTGCAGGGANNTCCAAANNCG CGTCAGNCATNACNGGANGGAACGTCACACGCNNTGATTTTCCGCTANCGCGCGTNGCAACGGTCCNATGCAAGNATGGC TCGCTNNTNGNNGGNNCGNGNACGCGACNGNNCAGGGCACNTGACCCAGGCGTACANTNCTNNCTTCGNCCCAAAGGNCC NGTAGTACAGNGCNNCANNCANGTAGCGTCTACATCATCNATGACGTGGGGNCCANANACCNGATNCATANNCGTCACAT ATGTNNANCATCAATTCATCCCNAACACCGACACCCCNCATANTAGAGAAGCATNTNANAACTNGTCTAAANTCACTAGC CCGCCATANGGNNTCGGGNNGTTNCCTNNCGACCTNCCGAAGNGTNTCTAGCNNTATCGTCTNGCCACCGCANTNGACNA NCAGNTANTTGCGANTGATNCCACTTCGCTAANTNNCTCTNTACNNTTANGNGTANNNTCATNTGGGTNATAGCNCGCAT TTNTACAGTTCGNAANTACANACTACCAAGTTGTNTNTNTTAGTGANCCATCNANNGATCNGCAACANNAACAAGGCGGC CNTATGANGCCCNAGGTNGTTGGCNNAGGCTNTNNGTGAATAGCGACAACGAGNTTACTCAGANCNGTCATCNGGATTNC CNGNNACTTTNAATCCCACTCAGTTNNNNNNCCAANAGCGAAGNCNCCGTAGGTNTGNATCCCNNAGTTATNANCCGNAC GTCCGTGNNCGGNNANTGGACGNACCCGGAAGATCNTATCCNGCTCTTTCGACCTANGCTNAGCANGTGNATCTACAGTN CTTATNATNAAACGTGCCNTTNTCCCNATNTNGTCTACNNCTTAGANTATGAATCAGCCGGGCNNTNNNNTNTACACATN CNGGTAGNAAAGGACTNAGAAGTTGAGACTGAANACNCCACTCNTCGNGAGANGNCNNNCAGCCTCCTTGTNTNNNANNC CAGGNGTTNTGNTNNNCACCCTACTCCCNGGNNGTTAGCATGCANTNCCTGNCTCNNACCGCAAAACGGGTCTGNGGTGA AGCCGNGANACATCGTTCATANAATAAGNCCNTNTNCCNATCTCANCNNNCNANCGTCTNNTCAGTAAATCCACCNCCNA CCTCNNATCNNNNTGTTNCGGTTACCCNTCATTCCTNGCCNGGATNGGNCTTTAGTCTGCCCNGNGATATNAAANTTAGT NCATGNANTGTCAGTTATGACNCGANNGNTNGNCNGGGAAGCTGCNATNCANNCATNCCGTCCCTCCNAATCNGCANTCA CNTAGNGNNTGCCTGGTACTTGCCNGACAGTGCTATCGAAGANTNCTTTNCTANGACCTANNNNNNNGATACGGNTNTCG ATCNNGGCNAACACNCTCNGGTCTCCNAGAGTNGANAGAAANGATTCGTGGCTGAGNNCCCNGGNCCNANCATCAACCNG ACNCATNAAAGAANTGNTCGGATGAANTCTGCCGCGGCCNANGATNNCATATGAATTCAGCNNTTTACCANANTCGCANN TAAAGATCNNNANTNAATCNCGNNNNGCNCTAAANNCCAGTACNNCACTATTCTNTAANTGGCAACNGNAGAAAGACGNG NCCNGCCGNTTNCGAGNGCTGGGACATTTNCAACGGACNCCCNNTAGCGCCNCATGACGNGGATCNANNCTTGATGCNNN ANGNCGANAGGNTNNGCCTANGAANTACTTCATTCAGTCCCAGGANAGCTNTTCGCGANGNNTTTGGTTTNGAGCCTATG CACACANCTTCCATTTTAGNTGCTCTGCCGGANCATTGCGCTTATNTNTNTGACAGCANNGTACTACTGATGGACNAATC TGNNCGCAGTCNCAAGTTCNCTGCCGCAAGANTCATGACTAATNGNCTTNCCCNNNACCGNGNTCGNGNCGGGTCCAANN NTNTGGACNCACGATTAGNAGNTGNTATCNGAGTNAACANCCGTCCCGTACCANTTNTCTTGTACTTNCNGNGACTCCNN GAGCCCCNCGNCTATGGGGAANACNNNCTTNAGCAAAGTANCCTANGGTCCATTCTNNNTNNTNTNGCNNGGGNGCATNG TCANCGTNANNTGGTGAATNNANTTNGTCNAANTAGTTCTGNANGANAGGCGGTNNCGNAGCNNNACNCANNNAAAGTAA TCNCGGCTNGNNTANGCAACCTGGNCNCACGCTACATGNAAGGCAGTNTAGACACAATTCGCCNCTTNCTTTGNANGAAC ATCCANCNTATANANNATTANCNTTAGCAGNGGANATNCCAAGAAATNCACTNGGCATNACANTCACTNNTNGTTNTGGT TTCCTCTTATTGNCTCTGCATAATAGGNAGTCACATCCCANGACATTNCTACCTTAANCACANCACGGAAGATNGGGCTN TATNTCGGNGTAAGTACTNGGTCNCNGCATNANCTGGGNNAANCAAACNANCGAANGAACTCCNTCCGATACCAGGGCCT TANCCTTACCACAGCTGCACNGCCTTGNNAGGCCTAGNTCTNACAGGGGCGTTGNANCCNCCTTTGAGACNNCNANCCCC NNCCCTGTGATCTTGTNNNANAAACAATNNGNCNCNGCNNGNCGCGCTCTANAGANNTTNCCCTCNNGAANTGNNNGNCT CCANNTTAGTACTGTCANAAGNGGNAGGAAACANGNAANAACCCTCTANCATGAAANNATATNTCGGNGTANTNAANANT TAGAGCGANNGACTNTTCGTANGGGGGCAGNGANCAGCACCGTNGANCCACNGTTGCTGNAAANGGNACTCNTGNNGGCN GGNTCTNGTNACATTNCNGAGCNTGAATTGATAAANGTCGNGNNGAATAGTTNNACTCGNNAGCGGTANTCTTNNGGGNN TACACNNGACCAANCGGANCAAGGTATTCTGGCNGTCCAGTTANCATTGTACCNTACNAAAGTCTNCNNTGATGATCNNT GAAAGAATGNTCNNNCNGNNCATCGNTCTANTCGTTNCNAGNGGGGNGNGTCACGGAGCGGCGNANGNCCNTTNGCGCAG TGTNANNATCCTATNGGNCCNNCAAGCGACNAATAGCCGCTNGTGAACTNAATNACNGGTTNANATTCTCTTCTTCCTGC TGCNATTNCCACTCNNAAGTTCCNTAAACNCCCCNGNCCCNGCCCAAGCCGAGTCTNCNNANANNTGNGGNGNGNTGNTA CNCTCTAACCNCTNTNGTTGCGNATATGGTCGGATCANAGGNATCCTAGTACACTTAAAACATGNTANNGTATGGTNANA GCGNATTTAGNCGCACTCNGGNCCCCTTATTTNCCTNTTATTNANACACAGGGNNNGNNCGNANGTCGTCTANCCTTTAA CNATGGCCNTGNCTNTTANACGTCCTGNACTNNCCAAAAGNNTGNNNCNNGAGGNGCAACTGCTGTCGGCTTAGAGGCNC GTAGGAAGANGAACTCCCCAAATGTANAAGACGTCGNCACTAAGNGTGGCCAGATTTGAANTTGTNNATNCACATGNCCA NTCTCATGNCNNAGNGNAANACGCNANCAANCCTGGCGAATANGACGANCGTTGGGGNAAGAAGGGTTNGATAGNNNCCA Gviz/inst/extdata/test.fa.fai0000644000175400017540000000005513175714140017156 0ustar00biocbuildbiocbuildchr1 100000 6 80 81 chr2 200000 101262 80 81 Gviz/inst/extdata/test.gff0000644000175400017540000001051313175714140016574 0ustar00biocbuildbiocbuild##gff-version 1 ##source-version rtracklayer 1.19.6 ##date 2012-12-08 chr1 UCSC exon 66999825 67000051 . + . chr1 chr1 UCSC 5UTR 66999825 67000041 . + . chr1 chr1 UCSC CDS 67000042 67000051 . + 0 chr1 chr1 UCSC exon 67091530 67091593 . + . chr1 chr1 UCSC CDS 67091530 67091593 . + 2 chr1 chr1 UCSC exon 67098753 67098777 . + . chr1 chr1 UCSC CDS 67098753 67098777 . + 1 chr1 chr1 UCSC exon 67101627 67101698 . + . chr1 chr1 UCSC CDS 67101627 67101698 . + 0 chr1 chr1 UCSC exon 67105460 67105516 . + . chr1 chr1 UCSC CDS 67105460 67105516 . + 0 chr1 chr1 UCSC exon 67108493 67108547 . + . chr1 chr1 UCSC CDS 67108493 67108547 . + 0 chr1 chr1 UCSC exon 67109227 67109402 . + . chr1 chr1 UCSC CDS 67109227 67109402 . + 2 chr1 chr1 UCSC exon 67126196 67126207 . + . chr1 chr1 UCSC CDS 67126196 67126207 . + 0 chr1 chr1 UCSC exon 67133213 67133224 . + . chr1 chr1 UCSC CDS 67133213 67133224 . + 0 chr1 chr1 UCSC exon 67136678 67136702 . + . chr1 chr1 UCSC CDS 67136678 67136702 . + 0 chr1 chr1 UCSC exon 67137627 67137678 . + . chr1 chr1 UCSC CDS 67137627 67137678 . + 2 chr1 chr1 UCSC exon 67138964 67139049 . + . chr1 chr1 UCSC CDS 67138964 67139049 . + 1 chr1 chr1 UCSC exon 67142687 67142779 . + . chr1 chr1 UCSC CDS 67142687 67142779 . + 2 chr1 chr1 UCSC exon 67145361 67145435 . + . chr1 chr1 UCSC CDS 67145361 67145435 . + 2 chr1 chr1 UCSC exon 67147552 67148052 . + . chr1 chr1 UCSC CDS 67147552 67148052 . + 2 chr1 chr1 UCSC exon 67154831 67154958 . + . chr1 chr1 UCSC CDS 67154831 67154958 . + 2 chr1 chr1 UCSC exon 67155873 67155999 . + . chr1 chr1 UCSC CDS 67155873 67155999 . + 0 chr1 chr1 UCSC exon 67161117 67161176 . + . chr1 chr1 UCSC CDS 67161117 67161176 . + 2 chr1 chr1 UCSC exon 67184977 67185088 . + . chr1 chr1 UCSC CDS 67184977 67185088 . + 2 chr1 chr1 UCSC exon 67194947 67195102 . + . chr1 chr1 UCSC CDS 67194947 67195102 . + 1 chr1 chr1 UCSC exon 67199431 67199563 . + . chr1 chr1 UCSC CDS 67199431 67199563 . + 1 chr1 chr1 UCSC exon 67205018 67205220 . + . chr1 chr1 UCSC CDS 67205018 67205220 . + 0 chr1 chr1 UCSC exon 67206341 67206405 . + . chr1 chr1 UCSC CDS 67206341 67206405 . + 1 chr1 chr1 UCSC exon 67206955 67207119 . + . chr1 chr1 UCSC CDS 67206955 67207119 . + 2 chr1 chr1 UCSC exon 67208756 67210768 . + . chr1 chr1 UCSC CDS 67208756 67208775 . + 2 chr1 chr1 UCSC 3UTR 67208779 67210768 . + . chr1 chr1 UCSC start_codon 67000042 67000044 . + 0 chr1 chr1 UCSC stop_codon 67208776 67208778 . + 0 chr1 chr1 UCSC exon 8384390 8384786 . + . chr1 chr1 UCSC CDS 8384390 8384786 . + 0 chr1 chr1 UCSC exon 8385358 8385450 . + . chr1 chr1 UCSC CDS 8385358 8385450 . + 2 chr1 chr1 UCSC exon 8385878 8386102 . + . chr1 chr1 UCSC CDS 8385878 8386102 . + 2 chr1 chr1 UCSC exon 8390269 8390996 . + . chr1 chr1 UCSC CDS 8390269 8390996 . + 2 chr1 chr1 UCSC exon 8395497 8395650 . + . chr1 chr1 UCSC CDS 8395497 8395650 . + 0 chr1 chr1 UCSC exon 8397876 8398052 . + . chr1 chr1 UCSC CDS 8397876 8398052 . + 2 chr1 chr1 UCSC exon 8399553 8399758 . + . chr1 chr1 UCSC CDS 8399553 8399758 . + 2 chr1 chr1 UCSC exon 8403807 8404227 . + . chr1 chr1 UCSC CDS 8403807 8404070 . + 0 chr1 chr1 UCSC 3UTR 8404074 8404227 . + . chr1 chr1 UCSC start_codon 8384390 8384392 . + 0 chr1 chr1 UCSC stop_codon 8404071 8404073 . + 0 chr1 chr1 UCSC exon 25071760 25072116 . + . chr1 chr1 UCSC 5UTR 25071760 25072044 . + . chr1 chr1 UCSC CDS 25072045 25072116 . + 0 chr1 chr1 UCSC exon 25124233 25124342 . + . chr1 chr1 UCSC CDS 25124233 25124342 . + 0 chr1 chr1 UCSC exon 25140585 25140710 . + . chr1 chr1 UCSC CDS 25140585 25140710 . + 1 chr1 chr1 UCSC exon 25153501 25153607 . + . chr1 chr1 UCSC CDS 25153501 25153607 . + 1 chr1 chr1 UCSC exon 25166351 25166532 . + . chr1 chr1 UCSC CDS 25166351 25166532 . + 2 chr1 chr1 UCSC exon 25167264 25170815 . + . chr1 chr1 UCSC CDS 25167264 25167425 . + 0 chr1 chr1 UCSC 3UTR 25167429 25170815 . + . chr1 chr1 UCSC start_codon 25072045 25072047 . + 0 chr1 chr1 UCSC stop_codon 25167426 25167428 . + 0 chr1 chr1 UCSC exon 16767167 16767348 . + . chr1 chr1 UCSC 5UTR 16767167 16767256 . + . chr1 chr1 UCSC CDS 16767257 16767348 . + 0 chr1 chr1 UCSC exon 16770127 16770227 . + . chr1 chr1 UCSC CDS 16770127 16770227 . + 1 chr1 chr1 UCSC exon 16774365 16774469 . + . chr1 chr1 UCSC CDS 16774365 16774469 . + 2 chr1 chr1 UCSC exon 16774555 16774636 . + . chr1 chr1 UCSC CDS 16774555 16774636 . + 2 chr1 chr1 UCSC exon 16775588 16775696 . + . chr1 chr1 UCSC CDS 16775588 16775696 . + 1 chr1 Gviz/inst/extdata/test.gff10000644000175400017540000001051313175714140016655 0ustar00biocbuildbiocbuild##gff-version 1 ##source-version rtracklayer 1.19.6 ##date 2012-12-08 chr1 UCSC exon 66999825 67000051 . + . chr1 chr1 UCSC 5UTR 66999825 67000041 . + . chr1 chr1 UCSC CDS 67000042 67000051 . + 0 chr1 chr1 UCSC exon 67091530 67091593 . + . chr1 chr1 UCSC CDS 67091530 67091593 . + 2 chr1 chr1 UCSC exon 67098753 67098777 . + . chr1 chr1 UCSC CDS 67098753 67098777 . + 1 chr1 chr1 UCSC exon 67101627 67101698 . + . chr1 chr1 UCSC CDS 67101627 67101698 . + 0 chr1 chr1 UCSC exon 67105460 67105516 . + . chr1 chr1 UCSC CDS 67105460 67105516 . + 0 chr1 chr1 UCSC exon 67108493 67108547 . + . chr1 chr1 UCSC CDS 67108493 67108547 . + 0 chr1 chr1 UCSC exon 67109227 67109402 . + . chr1 chr1 UCSC CDS 67109227 67109402 . + 2 chr1 chr1 UCSC exon 67126196 67126207 . + . chr1 chr1 UCSC CDS 67126196 67126207 . + 0 chr1 chr1 UCSC exon 67133213 67133224 . + . chr1 chr1 UCSC CDS 67133213 67133224 . + 0 chr1 chr1 UCSC exon 67136678 67136702 . + . chr1 chr1 UCSC CDS 67136678 67136702 . + 0 chr1 chr1 UCSC exon 67137627 67137678 . + . chr1 chr1 UCSC CDS 67137627 67137678 . + 2 chr1 chr1 UCSC exon 67138964 67139049 . + . chr1 chr1 UCSC CDS 67138964 67139049 . + 1 chr1 chr1 UCSC exon 67142687 67142779 . + . chr1 chr1 UCSC CDS 67142687 67142779 . + 2 chr1 chr1 UCSC exon 67145361 67145435 . + . chr1 chr1 UCSC CDS 67145361 67145435 . + 2 chr1 chr1 UCSC exon 67147552 67148052 . + . chr1 chr1 UCSC CDS 67147552 67148052 . + 2 chr1 chr1 UCSC exon 67154831 67154958 . + . chr1 chr1 UCSC CDS 67154831 67154958 . + 2 chr1 chr1 UCSC exon 67155873 67155999 . + . chr1 chr1 UCSC CDS 67155873 67155999 . + 0 chr1 chr1 UCSC exon 67161117 67161176 . + . chr1 chr1 UCSC CDS 67161117 67161176 . + 2 chr1 chr1 UCSC exon 67184977 67185088 . + . chr1 chr1 UCSC CDS 67184977 67185088 . + 2 chr1 chr1 UCSC exon 67194947 67195102 . + . chr1 chr1 UCSC CDS 67194947 67195102 . + 1 chr1 chr1 UCSC exon 67199431 67199563 . + . chr1 chr1 UCSC CDS 67199431 67199563 . + 1 chr1 chr1 UCSC exon 67205018 67205220 . + . chr1 chr1 UCSC CDS 67205018 67205220 . + 0 chr1 chr1 UCSC exon 67206341 67206405 . + . chr1 chr1 UCSC CDS 67206341 67206405 . + 1 chr1 chr1 UCSC exon 67206955 67207119 . + . chr1 chr1 UCSC CDS 67206955 67207119 . + 2 chr1 chr1 UCSC exon 67208756 67210768 . + . chr1 chr1 UCSC CDS 67208756 67208775 . + 2 chr1 chr1 UCSC 3UTR 67208779 67210768 . + . chr1 chr1 UCSC start_codon 67000042 67000044 . + 0 chr1 chr1 UCSC stop_codon 67208776 67208778 . + 0 chr1 chr1 UCSC exon 8384390 8384786 . + . chr1 chr1 UCSC CDS 8384390 8384786 . + 0 chr1 chr1 UCSC exon 8385358 8385450 . + . chr1 chr1 UCSC CDS 8385358 8385450 . + 2 chr1 chr1 UCSC exon 8385878 8386102 . + . chr1 chr1 UCSC CDS 8385878 8386102 . + 2 chr1 chr1 UCSC exon 8390269 8390996 . + . chr1 chr1 UCSC CDS 8390269 8390996 . + 2 chr1 chr1 UCSC exon 8395497 8395650 . + . chr1 chr1 UCSC CDS 8395497 8395650 . + 0 chr1 chr1 UCSC exon 8397876 8398052 . + . chr1 chr1 UCSC CDS 8397876 8398052 . + 2 chr1 chr1 UCSC exon 8399553 8399758 . + . chr1 chr1 UCSC CDS 8399553 8399758 . + 2 chr1 chr1 UCSC exon 8403807 8404227 . + . chr1 chr1 UCSC CDS 8403807 8404070 . + 0 chr1 chr1 UCSC 3UTR 8404074 8404227 . + . chr1 chr1 UCSC start_codon 8384390 8384392 . + 0 chr1 chr1 UCSC stop_codon 8404071 8404073 . + 0 chr1 chr1 UCSC exon 25071760 25072116 . + . chr1 chr1 UCSC 5UTR 25071760 25072044 . + . chr1 chr1 UCSC CDS 25072045 25072116 . + 0 chr1 chr1 UCSC exon 25124233 25124342 . + . chr1 chr1 UCSC CDS 25124233 25124342 . + 0 chr1 chr1 UCSC exon 25140585 25140710 . + . chr1 chr1 UCSC CDS 25140585 25140710 . + 1 chr1 chr1 UCSC exon 25153501 25153607 . + . chr1 chr1 UCSC CDS 25153501 25153607 . + 1 chr1 chr1 UCSC exon 25166351 25166532 . + . chr1 chr1 UCSC CDS 25166351 25166532 . + 2 chr1 chr1 UCSC exon 25167264 25170815 . + . chr1 chr1 UCSC CDS 25167264 25167425 . + 0 chr1 chr1 UCSC 3UTR 25167429 25170815 . + . chr1 chr1 UCSC start_codon 25072045 25072047 . + 0 chr1 chr1 UCSC stop_codon 25167426 25167428 . + 0 chr1 chr1 UCSC exon 16767167 16767348 . + . chr1 chr1 UCSC 5UTR 16767167 16767256 . + . chr1 chr1 UCSC CDS 16767257 16767348 . + 0 chr1 chr1 UCSC exon 16770127 16770227 . + . chr1 chr1 UCSC CDS 16770127 16770227 . + 1 chr1 chr1 UCSC exon 16774365 16774469 . + . chr1 chr1 UCSC CDS 16774365 16774469 . + 2 chr1 chr1 UCSC exon 16774555 16774636 . + . chr1 chr1 UCSC CDS 16774555 16774636 . + 2 chr1 chr1 UCSC exon 16775588 16775696 . + . chr1 chr1 UCSC CDS 16775588 16775696 . + 1 chr1 Gviz/inst/extdata/test.gff20000644000175400017540000003131513175714140016661 0ustar00biocbuildbiocbuild##gff-version 2 ##source-version rtracklayer 1.19.6 ##date 2012-12-08 chr1 UCSC exon 66999825 67000051 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 1;exon_id NM_032291.1;gene_name SGIP1 chr1 UCSC 5UTR 66999825 67000041 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 1;exon_id NM_032291.1;gene_name SGIP1 chr1 UCSC CDS 67000042 67000051 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 1;exon_id NM_032291.1;gene_name SGIP1 chr1 UCSC exon 67091530 67091593 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 2;exon_id NM_032291.2;gene_name SGIP1 chr1 UCSC CDS 67091530 67091593 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 2;exon_id NM_032291.2;gene_name SGIP1 chr1 UCSC exon 67098753 67098777 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 3;exon_id NM_032291.3;gene_name SGIP1 chr1 UCSC CDS 67098753 67098777 . + 1 gene_id SGIP1;transcript_id NM_032291;exon_number 3;exon_id NM_032291.3;gene_name SGIP1 chr1 UCSC exon 67101627 67101698 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 4;exon_id NM_032291.4;gene_name SGIP1 chr1 UCSC CDS 67101627 67101698 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 4;exon_id NM_032291.4;gene_name SGIP1 chr1 UCSC exon 67105460 67105516 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 5;exon_id NM_032291.5;gene_name SGIP1 chr1 UCSC CDS 67105460 67105516 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 5;exon_id NM_032291.5;gene_name SGIP1 chr1 UCSC exon 67108493 67108547 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 6;exon_id NM_032291.6;gene_name SGIP1 chr1 UCSC CDS 67108493 67108547 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 6;exon_id NM_032291.6;gene_name SGIP1 chr1 UCSC exon 67109227 67109402 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 7;exon_id NM_032291.7;gene_name SGIP1 chr1 UCSC CDS 67109227 67109402 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 7;exon_id NM_032291.7;gene_name SGIP1 chr1 UCSC exon 67126196 67126207 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 8;exon_id NM_032291.8;gene_name SGIP1 chr1 UCSC CDS 67126196 67126207 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 8;exon_id NM_032291.8;gene_name SGIP1 chr1 UCSC exon 67133213 67133224 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 9;exon_id NM_032291.9;gene_name SGIP1 chr1 UCSC CDS 67133213 67133224 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 9;exon_id NM_032291.9;gene_name SGIP1 chr1 UCSC exon 67136678 67136702 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 10;exon_id NM_032291.10;gene_name SGIP1 chr1 UCSC CDS 67136678 67136702 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 10;exon_id NM_032291.10;gene_name SGIP1 chr1 UCSC exon 67137627 67137678 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 11;exon_id NM_032291.11;gene_name SGIP1 chr1 UCSC CDS 67137627 67137678 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 11;exon_id NM_032291.11;gene_name SGIP1 chr1 UCSC exon 67138964 67139049 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 12;exon_id NM_032291.12;gene_name SGIP1 chr1 UCSC CDS 67138964 67139049 . + 1 gene_id SGIP1;transcript_id NM_032291;exon_number 12;exon_id NM_032291.12;gene_name SGIP1 chr1 UCSC exon 67142687 67142779 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 13;exon_id NM_032291.13;gene_name SGIP1 chr1 UCSC CDS 67142687 67142779 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 13;exon_id NM_032291.13;gene_name SGIP1 chr1 UCSC exon 67145361 67145435 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 14;exon_id NM_032291.14;gene_name SGIP1 chr1 UCSC CDS 67145361 67145435 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 14;exon_id NM_032291.14;gene_name SGIP1 chr1 UCSC exon 67147552 67148052 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 15;exon_id NM_032291.15;gene_name SGIP1 chr1 UCSC CDS 67147552 67148052 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 15;exon_id NM_032291.15;gene_name SGIP1 chr1 UCSC exon 67154831 67154958 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 16;exon_id NM_032291.16;gene_name SGIP1 chr1 UCSC CDS 67154831 67154958 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 16;exon_id NM_032291.16;gene_name SGIP1 chr1 UCSC exon 67155873 67155999 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 17;exon_id NM_032291.17;gene_name SGIP1 chr1 UCSC CDS 67155873 67155999 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 17;exon_id NM_032291.17;gene_name SGIP1 chr1 UCSC exon 67161117 67161176 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 18;exon_id NM_032291.18;gene_name SGIP1 chr1 UCSC CDS 67161117 67161176 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 18;exon_id NM_032291.18;gene_name SGIP1 chr1 UCSC exon 67184977 67185088 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 19;exon_id NM_032291.19;gene_name SGIP1 chr1 UCSC CDS 67184977 67185088 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 19;exon_id NM_032291.19;gene_name SGIP1 chr1 UCSC exon 67194947 67195102 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 20;exon_id NM_032291.20;gene_name SGIP1 chr1 UCSC CDS 67194947 67195102 . + 1 gene_id SGIP1;transcript_id NM_032291;exon_number 20;exon_id NM_032291.20;gene_name SGIP1 chr1 UCSC exon 67199431 67199563 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 21;exon_id NM_032291.21;gene_name SGIP1 chr1 UCSC CDS 67199431 67199563 . + 1 gene_id SGIP1;transcript_id NM_032291;exon_number 21;exon_id NM_032291.21;gene_name SGIP1 chr1 UCSC exon 67205018 67205220 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 22;exon_id NM_032291.22;gene_name SGIP1 chr1 UCSC CDS 67205018 67205220 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 22;exon_id NM_032291.22;gene_name SGIP1 chr1 UCSC exon 67206341 67206405 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 23;exon_id NM_032291.23;gene_name SGIP1 chr1 UCSC CDS 67206341 67206405 . + 1 gene_id SGIP1;transcript_id NM_032291;exon_number 23;exon_id NM_032291.23;gene_name SGIP1 chr1 UCSC exon 67206955 67207119 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 24;exon_id NM_032291.24;gene_name SGIP1 chr1 UCSC CDS 67206955 67207119 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 24;exon_id NM_032291.24;gene_name SGIP1 chr1 UCSC exon 67208756 67210768 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 25;exon_id NM_032291.25;gene_name SGIP1 chr1 UCSC CDS 67208756 67208775 . + 2 gene_id SGIP1;transcript_id NM_032291;exon_number 25;exon_id NM_032291.25;gene_name SGIP1 chr1 UCSC 3UTR 67208779 67210768 . + . gene_id SGIP1;transcript_id NM_032291;exon_number 25;exon_id NM_032291.25;gene_name SGIP1 chr1 UCSC start_codon 67000042 67000044 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 1;exon_id NM_032291.1;gene_name SGIP1 chr1 UCSC stop_codon 67208776 67208778 . + 0 gene_id SGIP1;transcript_id NM_032291;exon_number 1;exon_id NM_032291.1;gene_name SGIP1 chr1 UCSC exon 8384390 8384786 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 1;exon_id NM_001080397.1;gene_name SLC45A1 chr1 UCSC CDS 8384390 8384786 . + 0 gene_id SLC45A1;transcript_id NM_001080397;exon_number 1;exon_id NM_001080397.1;gene_name SLC45A1 chr1 UCSC exon 8385358 8385450 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 2;exon_id NM_001080397.2;gene_name SLC45A1 chr1 UCSC CDS 8385358 8385450 . + 2 gene_id SLC45A1;transcript_id NM_001080397;exon_number 2;exon_id NM_001080397.2;gene_name SLC45A1 chr1 UCSC exon 8385878 8386102 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 3;exon_id NM_001080397.3;gene_name SLC45A1 chr1 UCSC CDS 8385878 8386102 . + 2 gene_id SLC45A1;transcript_id NM_001080397;exon_number 3;exon_id NM_001080397.3;gene_name SLC45A1 chr1 UCSC exon 8390269 8390996 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 4;exon_id NM_001080397.4;gene_name SLC45A1 chr1 UCSC CDS 8390269 8390996 . + 2 gene_id SLC45A1;transcript_id NM_001080397;exon_number 4;exon_id NM_001080397.4;gene_name SLC45A1 chr1 UCSC exon 8395497 8395650 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 5;exon_id NM_001080397.5;gene_name SLC45A1 chr1 UCSC CDS 8395497 8395650 . + 0 gene_id SLC45A1;transcript_id NM_001080397;exon_number 5;exon_id NM_001080397.5;gene_name SLC45A1 chr1 UCSC exon 8397876 8398052 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 6;exon_id NM_001080397.6;gene_name SLC45A1 chr1 UCSC CDS 8397876 8398052 . + 2 gene_id SLC45A1;transcript_id NM_001080397;exon_number 6;exon_id NM_001080397.6;gene_name SLC45A1 chr1 UCSC exon 8399553 8399758 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 7;exon_id NM_001080397.7;gene_name SLC45A1 chr1 UCSC CDS 8399553 8399758 . + 2 gene_id SLC45A1;transcript_id NM_001080397;exon_number 7;exon_id NM_001080397.7;gene_name SLC45A1 chr1 UCSC exon 8403807 8404227 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 8;exon_id NM_001080397.8;gene_name SLC45A1 chr1 UCSC CDS 8403807 8404070 . + 0 gene_id SLC45A1;transcript_id NM_001080397;exon_number 8;exon_id NM_001080397.8;gene_name SLC45A1 chr1 UCSC 3UTR 8404074 8404227 . + . gene_id SLC45A1;transcript_id NM_001080397;exon_number 8;exon_id NM_001080397.8;gene_name SLC45A1 chr1 UCSC start_codon 8384390 8384392 . + 0 gene_id SLC45A1;transcript_id NM_001080397;exon_number 1;exon_id NM_001080397.1;gene_name SLC45A1 chr1 UCSC stop_codon 8404071 8404073 . + 0 gene_id SLC45A1;transcript_id NM_001080397;exon_number 1;exon_id NM_001080397.1;gene_name SLC45A1 chr1 UCSC exon 25071760 25072116 . + . gene_id CLIC4;transcript_id NM_013943;exon_number 1;exon_id NM_013943.1;gene_name CLIC4 chr1 UCSC 5UTR 25071760 25072044 . + . gene_id CLIC4;transcript_id NM_013943;exon_number 1;exon_id NM_013943.1;gene_name CLIC4 chr1 UCSC CDS 25072045 25072116 . + 0 gene_id CLIC4;transcript_id NM_013943;exon_number 1;exon_id NM_013943.1;gene_name CLIC4 chr1 UCSC exon 25124233 25124342 . + . gene_id CLIC4;transcript_id NM_013943;exon_number 2;exon_id NM_013943.2;gene_name CLIC4 chr1 UCSC CDS 25124233 25124342 . + 0 gene_id CLIC4;transcript_id NM_013943;exon_number 2;exon_id NM_013943.2;gene_name CLIC4 chr1 UCSC exon 25140585 25140710 . + . gene_id CLIC4;transcript_id NM_013943;exon_number 3;exon_id NM_013943.3;gene_name CLIC4 chr1 UCSC CDS 25140585 25140710 . + 1 gene_id CLIC4;transcript_id NM_013943;exon_number 3;exon_id NM_013943.3;gene_name CLIC4 chr1 UCSC exon 25153501 25153607 . + . gene_id CLIC4;transcript_id NM_013943;exon_number 4;exon_id NM_013943.4;gene_name CLIC4 chr1 UCSC CDS 25153501 25153607 . + 1 gene_id CLIC4;transcript_id NM_013943;exon_number 4;exon_id NM_013943.4;gene_name CLIC4 chr1 UCSC exon 25166351 25166532 . + . gene_id CLIC4;transcript_id NM_013943;exon_number 5;exon_id NM_013943.5;gene_name CLIC4 chr1 UCSC CDS 25166351 25166532 . + 2 gene_id CLIC4;transcript_id NM_013943;exon_number 5;exon_id NM_013943.5;gene_name CLIC4 chr1 UCSC exon 25167264 25170815 . + . gene_id CLIC4;transcript_id NM_013943;exon_number 6;exon_id NM_013943.6;gene_name CLIC4 chr1 UCSC CDS 25167264 25167425 . + 0 gene_id CLIC4;transcript_id NM_013943;exon_number 6;exon_id NM_013943.6;gene_name CLIC4 chr1 UCSC 3UTR 25167429 25170815 . + . gene_id CLIC4;transcript_id NM_013943;exon_number 6;exon_id NM_013943.6;gene_name CLIC4 chr1 UCSC start_codon 25072045 25072047 . + 0 gene_id CLIC4;transcript_id NM_013943;exon_number 1;exon_id NM_013943.1;gene_name CLIC4 chr1 UCSC stop_codon 25167426 25167428 . + 0 gene_id CLIC4;transcript_id NM_013943;exon_number 1;exon_id NM_013943.1;gene_name CLIC4 chr1 UCSC exon 16767167 16767348 . + . gene_id NECAP2;transcript_id NM_018090;exon_number 1;exon_id NM_018090.1;gene_name NECAP2 chr1 UCSC 5UTR 16767167 16767256 . + . gene_id NECAP2;transcript_id NM_018090;exon_number 1;exon_id NM_018090.1;gene_name NECAP2 chr1 UCSC CDS 16767257 16767348 . + 0 gene_id NECAP2;transcript_id NM_018090;exon_number 1;exon_id NM_018090.1;gene_name NECAP2 chr1 UCSC exon 16770127 16770227 . + . gene_id NECAP2;transcript_id NM_018090;exon_number 2;exon_id NM_018090.2;gene_name NECAP2 chr1 UCSC CDS 16770127 16770227 . + 1 gene_id NECAP2;transcript_id NM_018090;exon_number 2;exon_id NM_018090.2;gene_name NECAP2 chr1 UCSC exon 16774365 16774469 . + . gene_id NECAP2;transcript_id NM_018090;exon_number 3;exon_id NM_018090.3;gene_name NECAP2 chr1 UCSC CDS 16774365 16774469 . + 2 gene_id NECAP2;transcript_id NM_018090;exon_number 3;exon_id NM_018090.3;gene_name NECAP2 chr1 UCSC exon 16774555 16774636 . + . gene_id NECAP2;transcript_id NM_018090;exon_number 4;exon_id NM_018090.4;gene_name NECAP2 chr1 UCSC CDS 16774555 16774636 . + 2 gene_id NECAP2;transcript_id NM_018090;exon_number 4;exon_id NM_018090.4;gene_name NECAP2 chr1 UCSC exon 16775588 16775696 . + . gene_id NECAP2;transcript_id NM_018090;exon_number 5;exon_id NM_018090.5;gene_name NECAP2 chr1 UCSC CDS 16775588 16775696 . + 1 gene_id NECAP2;transcript_id NM_018090;exon_number 5;exon_id NM_018090.5;gene_name NECAP2 Gviz/inst/extdata/test.gff30000644000175400017540000003131513175714140016662 0ustar00biocbuildbiocbuild##gff-version 3 ##source-version rtracklayer 1.19.6 ##date 2012-12-08 chr1 UCSC exon 66999825 67000051 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=1;exon_id=NM_032291.1;gene_name=SGIP1 chr1 UCSC 5UTR 66999825 67000041 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=1;exon_id=NM_032291.1;gene_name=SGIP1 chr1 UCSC CDS 67000042 67000051 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=1;exon_id=NM_032291.1;gene_name=SGIP1 chr1 UCSC exon 67091530 67091593 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=2;exon_id=NM_032291.2;gene_name=SGIP1 chr1 UCSC CDS 67091530 67091593 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=2;exon_id=NM_032291.2;gene_name=SGIP1 chr1 UCSC exon 67098753 67098777 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=3;exon_id=NM_032291.3;gene_name=SGIP1 chr1 UCSC CDS 67098753 67098777 . + 1 gene_id=SGIP1;transcript_id=NM_032291;exon_number=3;exon_id=NM_032291.3;gene_name=SGIP1 chr1 UCSC exon 67101627 67101698 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=4;exon_id=NM_032291.4;gene_name=SGIP1 chr1 UCSC CDS 67101627 67101698 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=4;exon_id=NM_032291.4;gene_name=SGIP1 chr1 UCSC exon 67105460 67105516 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=5;exon_id=NM_032291.5;gene_name=SGIP1 chr1 UCSC CDS 67105460 67105516 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=5;exon_id=NM_032291.5;gene_name=SGIP1 chr1 UCSC exon 67108493 67108547 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=6;exon_id=NM_032291.6;gene_name=SGIP1 chr1 UCSC CDS 67108493 67108547 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=6;exon_id=NM_032291.6;gene_name=SGIP1 chr1 UCSC exon 67109227 67109402 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=7;exon_id=NM_032291.7;gene_name=SGIP1 chr1 UCSC CDS 67109227 67109402 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=7;exon_id=NM_032291.7;gene_name=SGIP1 chr1 UCSC exon 67126196 67126207 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=8;exon_id=NM_032291.8;gene_name=SGIP1 chr1 UCSC CDS 67126196 67126207 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=8;exon_id=NM_032291.8;gene_name=SGIP1 chr1 UCSC exon 67133213 67133224 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=9;exon_id=NM_032291.9;gene_name=SGIP1 chr1 UCSC CDS 67133213 67133224 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=9;exon_id=NM_032291.9;gene_name=SGIP1 chr1 UCSC exon 67136678 67136702 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=10;exon_id=NM_032291.10;gene_name=SGIP1 chr1 UCSC CDS 67136678 67136702 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=10;exon_id=NM_032291.10;gene_name=SGIP1 chr1 UCSC exon 67137627 67137678 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=11;exon_id=NM_032291.11;gene_name=SGIP1 chr1 UCSC CDS 67137627 67137678 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=11;exon_id=NM_032291.11;gene_name=SGIP1 chr1 UCSC exon 67138964 67139049 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=12;exon_id=NM_032291.12;gene_name=SGIP1 chr1 UCSC CDS 67138964 67139049 . + 1 gene_id=SGIP1;transcript_id=NM_032291;exon_number=12;exon_id=NM_032291.12;gene_name=SGIP1 chr1 UCSC exon 67142687 67142779 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=13;exon_id=NM_032291.13;gene_name=SGIP1 chr1 UCSC CDS 67142687 67142779 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=13;exon_id=NM_032291.13;gene_name=SGIP1 chr1 UCSC exon 67145361 67145435 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=14;exon_id=NM_032291.14;gene_name=SGIP1 chr1 UCSC CDS 67145361 67145435 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=14;exon_id=NM_032291.14;gene_name=SGIP1 chr1 UCSC exon 67147552 67148052 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=15;exon_id=NM_032291.15;gene_name=SGIP1 chr1 UCSC CDS 67147552 67148052 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=15;exon_id=NM_032291.15;gene_name=SGIP1 chr1 UCSC exon 67154831 67154958 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=16;exon_id=NM_032291.16;gene_name=SGIP1 chr1 UCSC CDS 67154831 67154958 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=16;exon_id=NM_032291.16;gene_name=SGIP1 chr1 UCSC exon 67155873 67155999 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=17;exon_id=NM_032291.17;gene_name=SGIP1 chr1 UCSC CDS 67155873 67155999 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=17;exon_id=NM_032291.17;gene_name=SGIP1 chr1 UCSC exon 67161117 67161176 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=18;exon_id=NM_032291.18;gene_name=SGIP1 chr1 UCSC CDS 67161117 67161176 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=18;exon_id=NM_032291.18;gene_name=SGIP1 chr1 UCSC exon 67184977 67185088 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=19;exon_id=NM_032291.19;gene_name=SGIP1 chr1 UCSC CDS 67184977 67185088 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=19;exon_id=NM_032291.19;gene_name=SGIP1 chr1 UCSC exon 67194947 67195102 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=20;exon_id=NM_032291.20;gene_name=SGIP1 chr1 UCSC CDS 67194947 67195102 . + 1 gene_id=SGIP1;transcript_id=NM_032291;exon_number=20;exon_id=NM_032291.20;gene_name=SGIP1 chr1 UCSC exon 67199431 67199563 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=21;exon_id=NM_032291.21;gene_name=SGIP1 chr1 UCSC CDS 67199431 67199563 . + 1 gene_id=SGIP1;transcript_id=NM_032291;exon_number=21;exon_id=NM_032291.21;gene_name=SGIP1 chr1 UCSC exon 67205018 67205220 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=22;exon_id=NM_032291.22;gene_name=SGIP1 chr1 UCSC CDS 67205018 67205220 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=22;exon_id=NM_032291.22;gene_name=SGIP1 chr1 UCSC exon 67206341 67206405 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=23;exon_id=NM_032291.23;gene_name=SGIP1 chr1 UCSC CDS 67206341 67206405 . + 1 gene_id=SGIP1;transcript_id=NM_032291;exon_number=23;exon_id=NM_032291.23;gene_name=SGIP1 chr1 UCSC exon 67206955 67207119 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=24;exon_id=NM_032291.24;gene_name=SGIP1 chr1 UCSC CDS 67206955 67207119 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=24;exon_id=NM_032291.24;gene_name=SGIP1 chr1 UCSC exon 67208756 67210768 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=25;exon_id=NM_032291.25;gene_name=SGIP1 chr1 UCSC CDS 67208756 67208775 . + 2 gene_id=SGIP1;transcript_id=NM_032291;exon_number=25;exon_id=NM_032291.25;gene_name=SGIP1 chr1 UCSC 3UTR 67208779 67210768 . + . gene_id=SGIP1;transcript_id=NM_032291;exon_number=25;exon_id=NM_032291.25;gene_name=SGIP1 chr1 UCSC start_codon 67000042 67000044 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=1;exon_id=NM_032291.1;gene_name=SGIP1 chr1 UCSC stop_codon 67208776 67208778 . + 0 gene_id=SGIP1;transcript_id=NM_032291;exon_number=1;exon_id=NM_032291.1;gene_name=SGIP1 chr1 UCSC exon 8384390 8384786 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=1;exon_id=NM_001080397.1;gene_name=SLC45A1 chr1 UCSC CDS 8384390 8384786 . + 0 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=1;exon_id=NM_001080397.1;gene_name=SLC45A1 chr1 UCSC exon 8385358 8385450 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=2;exon_id=NM_001080397.2;gene_name=SLC45A1 chr1 UCSC CDS 8385358 8385450 . + 2 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=2;exon_id=NM_001080397.2;gene_name=SLC45A1 chr1 UCSC exon 8385878 8386102 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=3;exon_id=NM_001080397.3;gene_name=SLC45A1 chr1 UCSC CDS 8385878 8386102 . + 2 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=3;exon_id=NM_001080397.3;gene_name=SLC45A1 chr1 UCSC exon 8390269 8390996 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=4;exon_id=NM_001080397.4;gene_name=SLC45A1 chr1 UCSC CDS 8390269 8390996 . + 2 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=4;exon_id=NM_001080397.4;gene_name=SLC45A1 chr1 UCSC exon 8395497 8395650 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=5;exon_id=NM_001080397.5;gene_name=SLC45A1 chr1 UCSC CDS 8395497 8395650 . + 0 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=5;exon_id=NM_001080397.5;gene_name=SLC45A1 chr1 UCSC exon 8397876 8398052 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=6;exon_id=NM_001080397.6;gene_name=SLC45A1 chr1 UCSC CDS 8397876 8398052 . + 2 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=6;exon_id=NM_001080397.6;gene_name=SLC45A1 chr1 UCSC exon 8399553 8399758 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=7;exon_id=NM_001080397.7;gene_name=SLC45A1 chr1 UCSC CDS 8399553 8399758 . + 2 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=7;exon_id=NM_001080397.7;gene_name=SLC45A1 chr1 UCSC exon 8403807 8404227 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=8;exon_id=NM_001080397.8;gene_name=SLC45A1 chr1 UCSC CDS 8403807 8404070 . + 0 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=8;exon_id=NM_001080397.8;gene_name=SLC45A1 chr1 UCSC 3UTR 8404074 8404227 . + . gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=8;exon_id=NM_001080397.8;gene_name=SLC45A1 chr1 UCSC start_codon 8384390 8384392 . + 0 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=1;exon_id=NM_001080397.1;gene_name=SLC45A1 chr1 UCSC stop_codon 8404071 8404073 . + 0 gene_id=SLC45A1;transcript_id=NM_001080397;exon_number=1;exon_id=NM_001080397.1;gene_name=SLC45A1 chr1 UCSC exon 25071760 25072116 . + . gene_id=CLIC4;transcript_id=NM_013943;exon_number=1;exon_id=NM_013943.1;gene_name=CLIC4 chr1 UCSC 5UTR 25071760 25072044 . + . gene_id=CLIC4;transcript_id=NM_013943;exon_number=1;exon_id=NM_013943.1;gene_name=CLIC4 chr1 UCSC CDS 25072045 25072116 . + 0 gene_id=CLIC4;transcript_id=NM_013943;exon_number=1;exon_id=NM_013943.1;gene_name=CLIC4 chr1 UCSC exon 25124233 25124342 . + . gene_id=CLIC4;transcript_id=NM_013943;exon_number=2;exon_id=NM_013943.2;gene_name=CLIC4 chr1 UCSC CDS 25124233 25124342 . + 0 gene_id=CLIC4;transcript_id=NM_013943;exon_number=2;exon_id=NM_013943.2;gene_name=CLIC4 chr1 UCSC exon 25140585 25140710 . + . gene_id=CLIC4;transcript_id=NM_013943;exon_number=3;exon_id=NM_013943.3;gene_name=CLIC4 chr1 UCSC CDS 25140585 25140710 . + 1 gene_id=CLIC4;transcript_id=NM_013943;exon_number=3;exon_id=NM_013943.3;gene_name=CLIC4 chr1 UCSC exon 25153501 25153607 . + . gene_id=CLIC4;transcript_id=NM_013943;exon_number=4;exon_id=NM_013943.4;gene_name=CLIC4 chr1 UCSC CDS 25153501 25153607 . + 1 gene_id=CLIC4;transcript_id=NM_013943;exon_number=4;exon_id=NM_013943.4;gene_name=CLIC4 chr1 UCSC exon 25166351 25166532 . + . gene_id=CLIC4;transcript_id=NM_013943;exon_number=5;exon_id=NM_013943.5;gene_name=CLIC4 chr1 UCSC CDS 25166351 25166532 . + 2 gene_id=CLIC4;transcript_id=NM_013943;exon_number=5;exon_id=NM_013943.5;gene_name=CLIC4 chr1 UCSC exon 25167264 25170815 . + . gene_id=CLIC4;transcript_id=NM_013943;exon_number=6;exon_id=NM_013943.6;gene_name=CLIC4 chr1 UCSC CDS 25167264 25167425 . + 0 gene_id=CLIC4;transcript_id=NM_013943;exon_number=6;exon_id=NM_013943.6;gene_name=CLIC4 chr1 UCSC 3UTR 25167429 25170815 . + . gene_id=CLIC4;transcript_id=NM_013943;exon_number=6;exon_id=NM_013943.6;gene_name=CLIC4 chr1 UCSC start_codon 25072045 25072047 . + 0 gene_id=CLIC4;transcript_id=NM_013943;exon_number=1;exon_id=NM_013943.1;gene_name=CLIC4 chr1 UCSC stop_codon 25167426 25167428 . + 0 gene_id=CLIC4;transcript_id=NM_013943;exon_number=1;exon_id=NM_013943.1;gene_name=CLIC4 chr1 UCSC exon 16767167 16767348 . + . gene_id=NECAP2;transcript_id=NM_018090;exon_number=1;exon_id=NM_018090.1;gene_name=NECAP2 chr1 UCSC 5UTR 16767167 16767256 . + . gene_id=NECAP2;transcript_id=NM_018090;exon_number=1;exon_id=NM_018090.1;gene_name=NECAP2 chr1 UCSC CDS 16767257 16767348 . + 0 gene_id=NECAP2;transcript_id=NM_018090;exon_number=1;exon_id=NM_018090.1;gene_name=NECAP2 chr1 UCSC exon 16770127 16770227 . + . gene_id=NECAP2;transcript_id=NM_018090;exon_number=2;exon_id=NM_018090.2;gene_name=NECAP2 chr1 UCSC CDS 16770127 16770227 . + 1 gene_id=NECAP2;transcript_id=NM_018090;exon_number=2;exon_id=NM_018090.2;gene_name=NECAP2 chr1 UCSC exon 16774365 16774469 . + . gene_id=NECAP2;transcript_id=NM_018090;exon_number=3;exon_id=NM_018090.3;gene_name=NECAP2 chr1 UCSC CDS 16774365 16774469 . + 2 gene_id=NECAP2;transcript_id=NM_018090;exon_number=3;exon_id=NM_018090.3;gene_name=NECAP2 chr1 UCSC exon 16774555 16774636 . + . gene_id=NECAP2;transcript_id=NM_018090;exon_number=4;exon_id=NM_018090.4;gene_name=NECAP2 chr1 UCSC CDS 16774555 16774636 . + 2 gene_id=NECAP2;transcript_id=NM_018090;exon_number=4;exon_id=NM_018090.4;gene_name=NECAP2 chr1 UCSC exon 16775588 16775696 . + . gene_id=NECAP2;transcript_id=NM_018090;exon_number=5;exon_id=NM_018090.5;gene_name=NECAP2 chr1 UCSC CDS 16775588 16775696 . + 1 gene_id=NECAP2;transcript_id=NM_018090;exon_number=5;exon_id=NM_018090.5;gene_name=NECAP2 Gviz/inst/extdata/test.gtf0000644000175400017540000003414313175714140016617 0ustar00biocbuildbiocbuildchr1 UCSC exon 66999825 67000051 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "1"; exon_id "NM_032291.1"; gene_name "SGIP1"; chr1 UCSC 5UTR 66999825 67000041 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "1"; exon_id "NM_032291.1"; gene_name "SGIP1"; chr1 UCSC CDS 67000042 67000051 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "1"; exon_id "NM_032291.1"; gene_name "SGIP1"; chr1 UCSC exon 67091530 67091593 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "2"; exon_id "NM_032291.2"; gene_name "SGIP1"; chr1 UCSC CDS 67091530 67091593 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "2"; exon_id "NM_032291.2"; gene_name "SGIP1"; chr1 UCSC exon 67098753 67098777 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "3"; exon_id "NM_032291.3"; gene_name "SGIP1"; chr1 UCSC CDS 67098753 67098777 . + 1 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "3"; exon_id "NM_032291.3"; gene_name "SGIP1"; chr1 UCSC exon 67101627 67101698 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "4"; exon_id "NM_032291.4"; gene_name "SGIP1"; chr1 UCSC CDS 67101627 67101698 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "4"; exon_id "NM_032291.4"; gene_name "SGIP1"; chr1 UCSC exon 67105460 67105516 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "5"; exon_id "NM_032291.5"; gene_name "SGIP1"; chr1 UCSC CDS 67105460 67105516 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "5"; exon_id "NM_032291.5"; gene_name "SGIP1"; chr1 UCSC exon 67108493 67108547 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "6"; exon_id "NM_032291.6"; gene_name "SGIP1"; chr1 UCSC CDS 67108493 67108547 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "6"; exon_id "NM_032291.6"; gene_name "SGIP1"; chr1 UCSC exon 67109227 67109402 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "7"; exon_id "NM_032291.7"; gene_name "SGIP1"; chr1 UCSC CDS 67109227 67109402 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "7"; exon_id "NM_032291.7"; gene_name "SGIP1"; chr1 UCSC exon 67126196 67126207 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "8"; exon_id "NM_032291.8"; gene_name "SGIP1"; chr1 UCSC CDS 67126196 67126207 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "8"; exon_id "NM_032291.8"; gene_name "SGIP1"; chr1 UCSC exon 67133213 67133224 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "9"; exon_id "NM_032291.9"; gene_name "SGIP1"; chr1 UCSC CDS 67133213 67133224 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "9"; exon_id "NM_032291.9"; gene_name "SGIP1"; chr1 UCSC exon 67136678 67136702 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "10"; exon_id "NM_032291.10"; gene_name "SGIP1"; chr1 UCSC CDS 67136678 67136702 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "10"; exon_id "NM_032291.10"; gene_name "SGIP1"; chr1 UCSC exon 67137627 67137678 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "11"; exon_id "NM_032291.11"; gene_name "SGIP1"; chr1 UCSC CDS 67137627 67137678 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "11"; exon_id "NM_032291.11"; gene_name "SGIP1"; chr1 UCSC exon 67138964 67139049 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "12"; exon_id "NM_032291.12"; gene_name "SGIP1"; chr1 UCSC CDS 67138964 67139049 . + 1 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "12"; exon_id "NM_032291.12"; gene_name "SGIP1"; chr1 UCSC exon 67142687 67142779 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "13"; exon_id "NM_032291.13"; gene_name "SGIP1"; chr1 UCSC CDS 67142687 67142779 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "13"; exon_id "NM_032291.13"; gene_name "SGIP1"; chr1 UCSC exon 67145361 67145435 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "14"; exon_id "NM_032291.14"; gene_name "SGIP1"; chr1 UCSC CDS 67145361 67145435 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "14"; exon_id "NM_032291.14"; gene_name "SGIP1"; chr1 UCSC exon 67147552 67148052 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "15"; exon_id "NM_032291.15"; gene_name "SGIP1"; chr1 UCSC CDS 67147552 67148052 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "15"; exon_id "NM_032291.15"; gene_name "SGIP1"; chr1 UCSC exon 67154831 67154958 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "16"; exon_id "NM_032291.16"; gene_name "SGIP1"; chr1 UCSC CDS 67154831 67154958 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "16"; exon_id "NM_032291.16"; gene_name "SGIP1"; chr1 UCSC exon 67155873 67155999 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "17"; exon_id "NM_032291.17"; gene_name "SGIP1"; chr1 UCSC CDS 67155873 67155999 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "17"; exon_id "NM_032291.17"; gene_name "SGIP1"; chr1 UCSC exon 67161117 67161176 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "18"; exon_id "NM_032291.18"; gene_name "SGIP1"; chr1 UCSC CDS 67161117 67161176 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "18"; exon_id "NM_032291.18"; gene_name "SGIP1"; chr1 UCSC exon 67184977 67185088 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "19"; exon_id "NM_032291.19"; gene_name "SGIP1"; chr1 UCSC CDS 67184977 67185088 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "19"; exon_id "NM_032291.19"; gene_name "SGIP1"; chr1 UCSC exon 67194947 67195102 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "20"; exon_id "NM_032291.20"; gene_name "SGIP1"; chr1 UCSC CDS 67194947 67195102 . + 1 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "20"; exon_id "NM_032291.20"; gene_name "SGIP1"; chr1 UCSC exon 67199431 67199563 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "21"; exon_id "NM_032291.21"; gene_name "SGIP1"; chr1 UCSC CDS 67199431 67199563 . + 1 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "21"; exon_id "NM_032291.21"; gene_name "SGIP1"; chr1 UCSC exon 67205018 67205220 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "22"; exon_id "NM_032291.22"; gene_name "SGIP1"; chr1 UCSC CDS 67205018 67205220 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "22"; exon_id "NM_032291.22"; gene_name "SGIP1"; chr1 UCSC exon 67206341 67206405 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "23"; exon_id "NM_032291.23"; gene_name "SGIP1"; chr1 UCSC CDS 67206341 67206405 . + 1 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "23"; exon_id "NM_032291.23"; gene_name "SGIP1"; chr1 UCSC exon 67206955 67207119 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "24"; exon_id "NM_032291.24"; gene_name "SGIP1"; chr1 UCSC CDS 67206955 67207119 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "24"; exon_id "NM_032291.24"; gene_name "SGIP1"; chr1 UCSC exon 67208756 67210768 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "25"; exon_id "NM_032291.25"; gene_name "SGIP1"; chr1 UCSC CDS 67208756 67208775 . + 2 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "25"; exon_id "NM_032291.25"; gene_name "SGIP1"; chr1 UCSC 3UTR 67208779 67210768 . + . gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "25"; exon_id "NM_032291.25"; gene_name "SGIP1"; chr1 UCSC start_codon 67000042 67000044 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "1"; exon_id "NM_032291.1"; gene_name "SGIP1"; chr1 UCSC stop_codon 67208776 67208778 . + 0 gene_id "SGIP1"; transcript_id "NM_032291"; exon_number "1"; exon_id "NM_032291.1"; gene_name "SGIP1"; chr1 UCSC exon 8384390 8384786 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "1"; exon_id "NM_001080397.1"; gene_name "SLC45A1"; chr1 UCSC CDS 8384390 8384786 . + 0 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "1"; exon_id "NM_001080397.1"; gene_name "SLC45A1"; chr1 UCSC exon 8385358 8385450 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "2"; exon_id "NM_001080397.2"; gene_name "SLC45A1"; chr1 UCSC CDS 8385358 8385450 . + 2 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "2"; exon_id "NM_001080397.2"; gene_name "SLC45A1"; chr1 UCSC exon 8385878 8386102 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "3"; exon_id "NM_001080397.3"; gene_name "SLC45A1"; chr1 UCSC CDS 8385878 8386102 . + 2 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "3"; exon_id "NM_001080397.3"; gene_name "SLC45A1"; chr1 UCSC exon 8390269 8390996 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "4"; exon_id "NM_001080397.4"; gene_name "SLC45A1"; chr1 UCSC CDS 8390269 8390996 . + 2 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "4"; exon_id "NM_001080397.4"; gene_name "SLC45A1"; chr1 UCSC exon 8395497 8395650 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "5"; exon_id "NM_001080397.5"; gene_name "SLC45A1"; chr1 UCSC CDS 8395497 8395650 . + 0 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "5"; exon_id "NM_001080397.5"; gene_name "SLC45A1"; chr1 UCSC exon 8397876 8398052 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "6"; exon_id "NM_001080397.6"; gene_name "SLC45A1"; chr1 UCSC CDS 8397876 8398052 . + 2 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "6"; exon_id "NM_001080397.6"; gene_name "SLC45A1"; chr1 UCSC exon 8399553 8399758 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "7"; exon_id "NM_001080397.7"; gene_name "SLC45A1"; chr1 UCSC CDS 8399553 8399758 . + 2 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "7"; exon_id "NM_001080397.7"; gene_name "SLC45A1"; chr1 UCSC exon 8403807 8404227 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "8"; exon_id "NM_001080397.8"; gene_name "SLC45A1"; chr1 UCSC CDS 8403807 8404070 . + 0 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "8"; exon_id "NM_001080397.8"; gene_name "SLC45A1"; chr1 UCSC 3UTR 8404074 8404227 . + . gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "8"; exon_id "NM_001080397.8"; gene_name "SLC45A1"; chr1 UCSC start_codon 8384390 8384392 . + 0 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "1"; exon_id "NM_001080397.1"; gene_name "SLC45A1"; chr1 UCSC stop_codon 8404071 8404073 . + 0 gene_id "SLC45A1"; transcript_id "NM_001080397"; exon_number "1"; exon_id "NM_001080397.1"; gene_name "SLC45A1"; chr1 UCSC exon 25071760 25072116 . + . gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "1"; exon_id "NM_013943.1"; gene_name "CLIC4"; chr1 UCSC 5UTR 25071760 25072044 . + . gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "1"; exon_id "NM_013943.1"; gene_name "CLIC4"; chr1 UCSC CDS 25072045 25072116 . + 0 gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "1"; exon_id "NM_013943.1"; gene_name "CLIC4"; chr1 UCSC exon 25124233 25124342 . + . gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "2"; exon_id "NM_013943.2"; gene_name "CLIC4"; chr1 UCSC CDS 25124233 25124342 . + 0 gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "2"; exon_id "NM_013943.2"; gene_name "CLIC4"; chr1 UCSC exon 25140585 25140710 . + . gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "3"; exon_id "NM_013943.3"; gene_name "CLIC4"; chr1 UCSC CDS 25140585 25140710 . + 1 gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "3"; exon_id "NM_013943.3"; gene_name "CLIC4"; chr1 UCSC exon 25153501 25153607 . + . gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "4"; exon_id "NM_013943.4"; gene_name "CLIC4"; chr1 UCSC CDS 25153501 25153607 . + 1 gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "4"; exon_id "NM_013943.4"; gene_name "CLIC4"; chr1 UCSC exon 25166351 25166532 . + . gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "5"; exon_id "NM_013943.5"; gene_name "CLIC4"; chr1 UCSC CDS 25166351 25166532 . + 2 gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "5"; exon_id "NM_013943.5"; gene_name "CLIC4"; chr1 UCSC exon 25167264 25170815 . + . gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "6"; exon_id "NM_013943.6"; gene_name "CLIC4"; chr1 UCSC CDS 25167264 25167425 . + 0 gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "6"; exon_id "NM_013943.6"; gene_name "CLIC4"; chr1 UCSC 3UTR 25167429 25170815 . + . gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "6"; exon_id "NM_013943.6"; gene_name "CLIC4"; chr1 UCSC start_codon 25072045 25072047 . + 0 gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "1"; exon_id "NM_013943.1"; gene_name "CLIC4"; chr1 UCSC stop_codon 25167426 25167428 . + 0 gene_id "CLIC4"; transcript_id "NM_013943"; exon_number "1"; exon_id "NM_013943.1"; gene_name "CLIC4"; chr1 UCSC exon 16767167 16767348 . + . gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "1"; exon_id "NM_018090.1"; gene_name "NECAP2"; chr1 UCSC 5UTR 16767167 16767256 . + . gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "1"; exon_id "NM_018090.1"; gene_name "NECAP2"; chr1 UCSC CDS 16767257 16767348 . + 0 gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "1"; exon_id "NM_018090.1"; gene_name "NECAP2"; chr1 UCSC exon 16770127 16770227 . + . gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "2"; exon_id "NM_018090.2"; gene_name "NECAP2"; chr1 UCSC CDS 16770127 16770227 . + 1 gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "2"; exon_id "NM_018090.2"; gene_name "NECAP2"; chr1 UCSC exon 16774365 16774469 . + . gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "3"; exon_id "NM_018090.3"; gene_name "NECAP2"; chr1 UCSC CDS 16774365 16774469 . + 2 gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "3"; exon_id "NM_018090.3"; gene_name "NECAP2"; chr1 UCSC exon 16774555 16774636 . + . gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "4"; exon_id "NM_018090.4"; gene_name "NECAP2"; chr1 UCSC CDS 16774555 16774636 . + 2 gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "4"; exon_id "NM_018090.4"; gene_name "NECAP2"; chr1 UCSC exon 16775588 16775696 . + . gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "5"; exon_id "NM_018090.5"; gene_name "NECAP2"; chr1 UCSC CDS 16775588 16775696 . + 1 gene_id "NECAP2"; transcript_id "NM_018090"; exon_number "5"; exon_id "NM_018090.5"; gene_name "NECAP2"; Gviz/inst/extdata/test.wig0000644000175400017540000000013413175714140016616 0ustar00biocbuildbiocbuildfixedStep chrom=chr19 start=49302001 step=300 span=300 -1 -0.75 -0.2 -0.1 0 0.25 0.4 0.55 1 Gviz/inst/lib/0000755000175400017540000000000013175714140014245 5ustar00biocbuildbiocbuildGviz/inst/lib/testUCSC.pl0000755000175400017540000000150413175714140016242 0ustar00biocbuildbiocbuild#!/usr/bin/perl -w use LWP; ##my $ARGV = @ARGV my $ua = new LWP::UserAgent(); $ua->proxy(['http'] => "http://cache2.na.novartis.net:80"); my $resp = $ua->post("http://genome.ucsc.edu/cgi-bin/hgGateway"); my $code = $resp->code(); if ( !$resp->is_success ) { print STDERR "error: " . $resp->error_as_HTML . "\n"; } my $hgsid; if (scalar(@ARGV) < 4) { my $txt = $resp->content(); ($hgsid) = $txt =~ /NAME\=\'hgsid\'\s+VALUE\=\'(\d+)\'/; print "$hgsid\n"; } else { $hgsid = $ARGV[3]; } $req = $ua->post("http://genome.ucsc.edu/cgi-bin/hgCustom", ["hgt.customFile" => [$ARGV[0]], "org" => $ARGV[1], "db" => $ARGV[2], "hgsid"=>$hgsid, "clade" => 'mammal'], 'Content_Type' => 'form-data'); $code = $req->code(); if ( !$req->is_success ) { print STDERR "error: " . $req->error_as_HTML . "\n"; } Gviz/inst/lib/ucscUrl.pl0000755000175400017540000000170713175714140016232 0ustar00biocbuildbiocbuild#!/usr/bin/perl -w use LWP; ##my $ARGV = @ARGV my $ua = new LWP::UserAgent(); $ua->proxy(['http'] => "http://cache2.na.novartis.net:80"); my $resp = $ua->post("http://genome.ucsc.edu/cgi-bin/hgGateway"); my $code = $resp->code(); if ( !$resp->is_success ) { print STDERR "error: " . $resp->error_as_HTML . "\n"; } my $hgsid; if (scalar(@ARGV) < 7) { my $txt = $resp->content(); ($hgsid) = $txt =~ /NAME\=\'hgsid\'\s+VALUE\=\'(\d+)\'/; print "http://genome.ucsc.edu/cgi-bin/hgTracks?hgsid=".$hgsid."&Submit=go+to+genome+browser&position=chr".$ARGV[3]."%3A".$ARGV[4]."-".$ARGV[5]."\n"; } else { $hgsid = $ARGV[6]; } $req = $ua->post("http://genome.ucsc.edu/cgi-bin/hgCustom", ["hgt.customFile" => [$ARGV[0]], "org" => $ARGV[1], "db" => $ARGV[2], "hgsid"=>$hgsid, "clade" => 'mammal'], 'Content_Type' => 'form-data'); $code = $req->code(); if ( !$req->is_success ) { print STDERR "error: " . $req->error_as_HTML . "\n"; } Gviz/inst/scripts/0000755000175400017540000000000013175714140015166 5ustar00biocbuildbiocbuildGviz/inst/scripts/documentation.R0000644000175400017540000021427213175714140020172 0ustar00biocbuildbiocbuild## smart character coercion toChar <- function(x) { if(length(x)>1) return(sprintf("c(\"%s\")", paste(x, collapse="\", \""))) if(is.null(x)) return("NULL") if(is.function(x)) return(substitute(x)) if(is.numeric(x)) return(x) if(is.logical(x)) return(as.character(x)) else return(sprintf("\"%s\"", as.character(x))) } ## Find the best line break point in a text .findBestBreak <- function(x, chars=70) { if(nchar(x)<=chars) return(x) xs <- strsplit(x, " ")[[1]] ind <- which.min(abs(cumsum(nchar(xs)+1)-chars)) xres <- paste(xs[1:ind], collapse=" ", sep="") if(length(xs)>=(ind+1)) xres <- c(xres, paste(xs[(ind+1):length(xs)], collapse=" ", sep="")) return(xres) } ## Emacs-style code formatting indent <- function(x, level=0, block=TRUE, chars=70) { space <- " " level <- rep(level, length(x))[1:length(x)] indent <- sapply(level, function(y) paste(rep(space, y), collapse="")) indent2 <- as.vector(sapply(indent, function(y) paste(y, rep(space, as.integer(!block)), collapse="", sep=""))) xc <- mapply(function(y, z) paste(y, gsub(" {2,}", " ", gsub(" *\\}", "}", gsub("\\{ *", "{", gsub("\n+", "",z)))), collapse="", sep=""), indent, x) res <- mapply(function(y,z){ tmp <- .findBestBreak(y) xres <- tmp[1] while(length(tmp)==2 & nchar(tmp[2])>68) { tmp <- .findBestBreak(paste(z, tmp[2], collapse="", sep=""), chars=chars) xres <- c(xres, tmp[1]) } if(length(tmp)==2) xres <- c(xres, paste(z, tmp[2], collapse="", sep="")) return(paste(xres, collapse="\n", sep="")) }, xc, indent2) return(res) } .tag <- function(x){ tmp <- sub("\\\\", "", attr(x, "Rd_tag")) if(!length(tmp)) return(NA) else return(tmp) } .tags <- function(x) sapply(x, .tag) .tagValue <- function(x) { if(is.na(.tag(x))) return(x) if(.tag(x) == "TEXT") return(as.character(x)) if(length(x)==1 && length(.tag(x[[1]]))) return(x[[1]]) if(length(x)==1 && !length(.tag(x[[1]]))) return(as.character(x)) if(length(x)>1 && length(.tags(x)[!is.na(.tags(x))])==length(x)) return(x) if(length(x)==2 && all(is.na(.tags(x)))) { attr(x[[1]], "Rd_tag") <- "_sectionContent" attr(x[[2]], "Rd_tag") <- "_sectionContent" return(x) } } .traverseRd <- function(x, tag, output=NULL) { tag <- tolower(tag) if(!is.na(.tag(x)) && tag == tolower(.tag(x))) { output <- c(output, .tagValue(x)) } for(child in x) { thisTag <- .tag(child) if(!is.na(thisTag)) { if(tag == tolower(thisTag)) { output <- c(output, .tagValue(child)) } output <- .traverseRd(.tagValue(child), tag, output) } } return(output) } renderParsEntry <- function(class, pars, level=2){ det <- details[[class]][names(pars)] if(is.null(det)){ warning("No details available for class '", class, "'") det <- "FIXME: PLEASE ADD PARAMETER DESCRIPTION." } else { det[is.na(det)] <- "FIXME: PLEASE ADD PARAMETER DESCRIPTION."} if(any(is.na(det))) warning("There are details missing for class '", class, "'. Please update the documentation") pval <- sapply(pars, toChar) pvalClean <- pval pvalClean[is.na(pval)] <- "" pvalClean[sapply(pars, is.function)] <- "function" aliases <- sapply(names(pars), function(x) paste(Gviz:::.dpAliasReverseTable[x], collapse=", ")) alText <- rep("", length(aliases)) sel <- aliases != "NA" alText[sel] <- sprintf(" \\code{(Aliases: %s)}", aliases[sel]) return(indent(sprintf("\\item{}{\\code{%s%s%s}%s: %s}\n\n", names(pars), ifelse(is.na(pval), "", "="), pvalClean, alText, det), level=level, block=FALSE)) } ## create a documentation skeleton for the display parameters displayParsDoc <- function(class, details) { combinations <- list("AnnotationTrack"=c("DetailsAnnotationTrack")) parents <- names(getClassDef(class)@contains) pars <- sapply(c(class, parents), function(x) try(as.list(getClassDef(x)@prototype@dp), silent=TRUE), simplify=FALSE) pars <- pars[!sapply(pars, is, "try-error")] text <- c("\\section{Display Parameters}{", if(length(pars[[1]])) { pars[[1]] <- pars[[1]][order(names(pars[[1]]))] if("..." %in% names(details[[class]])) pars[[1]][["..."]] <- NA det <- details[[class]][names(pars[[1]])] if(is.null(det)) { warning("No details available for class '", class, "'") det <- "FIXME: PLEASE ADD PARAMETER DESCRIPTION." } else { det[is.na(det)] <- "FIXME: PLEASE ADD PARAMETER DESCRIPTION."} if(any(is.na(det))) warning("There are details missing for class '", class, "'. Please update the documentation") pval <- sapply(pars[[1]], toChar) pvalClean <- pval pvalClean[is.na(pval)] <- "" pvalClean[sapply(pars[[1]], is.function)] <- "function" aliases <- sapply(names(pars[[1]]), function(x) paste(Gviz:::.dpAliasReverseTable[x], collapse=", ")) alText <- rep("", length(aliases)) sel <- aliases != "NA" alText[sel] <- sprintf(" \\code{(Aliases: %s)}", aliases[sel]) c(indent(paste("The following display parameters are set for objects of class \\code{", class, "} upon instantiation, unless one or more of them have already been set ", "by one of the optional sub-class initializers, which always get precedence over ", "these global defaults. See \\code{\\link{settings}} for details on ", "setting graphical parameters for tracks.\n\n \\describe{\n", sep=""), level=1), renderParsEntry(class, pars[[1]]), indent("}", level=1)) } else indent(paste("No formal display parameters are defined for objects of class \\code{", class, "}.\n", sep=""), level=1:2)) if(!is.null(combinations[[class]])){ for(sc in combinations[[class]]) text <- c(text, indent(sprintf("\\code{%s} adds the following additional display parameters:\n\n \\describe{\n", sc), level=1), renderParsEntry(sc, as.list(getClassDef(sc)@prototype@dp)), indent("}", level=1)) } pp <- pars[-1] pp <- pp[sapply(pp, length)>0] done <- names(pars[[1]]) if(!is.null(pp) && length(pp)>0) { text <- c(text, indent(c(paste("Additional display parameters are being inherited from the respective parent ", "classes. Note that not all of them may have an effect on the plotting of \\code{", class, "} objects.", sep=""),"\\describe{"), level=1:2)) for(i in names(pp)) { leftovers <- setdiff(names(pp[[i]]), done) done <- union(names(pp[[i]]), done) if(length(leftovers)) { pp[[i]] <- pp[[i]][leftovers][order(names(pp[[i]][leftovers]))] text <- c(text, indent(c(sprintf("\\item{}{\\code{\\linkS4class{%s}}:", i), "\\describe{"), level=2:3), renderParsEntry(i, pp[[i]], level=4), indent(rep("}", 2), level=3:2)) } } text <- c(text, indent("}", 1)) } text <- c(text, indent("}", 0)) text <- paste(text, collapse=" \n\n") parsDets <- sapply(union(names(pars[[1]]), names(details[[class]])), function(x){ txt <- if(x %in% names(details[[class]])) details[[class]][[x]] else NA if(!is.na(txt)) txt <- trimws(gsub("\\s+", " ", gsub("\n", "", paste(suppressWarnings(unlist(parse_Rd(textConnection(txt)))), collapse="")))) list(id=x, default=pars[[1]][[x]], text=txt) }, simplify=FALSE) attr(text, "parameters") <- parsDets return(text) } extractDpContent <- function(file){ require(Gviz) section <- "Display Parameters" require(tools) tmp <- tryCatch(parse_Rd(file), warning=function(x) stop("Error parsing rd file:\n", x)) tags <- sapply(tmp, attr, "Rd_tag") ind1 <- grep(section, tags, ignore.case=TRUE) ind <- if(!length(ind1)) { sind <- grep("\\\\section", tags, ignore.case=TRUE) sind[grep(section, sapply(tmp[sind], function(x) as.character(x[[1]])), ignore.case=TRUE)] }else ind1 if(length(ind)>1) stop("Section '", section, "'is not unique in file '", file, "'") dind <- grep("\\\\describe", sapply(tmp[[ind]][[2]], attr, "Rd_tag")) if(!length(dind)) stop("Unable to find Display Parameters description section in file '", file, "'") dind <- min(dind) desc <- tmp[[ind]][[2]][[dind]] itemInds <- grep("\\\\item", sapply(desc, attr, "Rd_tag")) items <- lapply(itemInds, function(i){ istruct <- unlist(unlist(desc[[i]], recursive=FALSE), recursive=FALSE) sel <- sapply(sapply(istruct, function(x) attr(x, "Rd_tag")), function(x) !is.null(x) && x=="RCODE") sel <- sort(reduce(IRanges(start=which(sel), width=1))) sel <- seq(from=start(sel[1]), len=width(sel[1])) def <- gsub("\n", "", paste(as.character(unlist(istruct[sel])), collapse="")) def2 <- gsub(".*=", "", def) item <- unlist(desc[[i]]) item <- item[!grepl("^\\(Aliases:", item)] def <- if(def2 != "function") try(if(grepl("=", def)) eval(parse(text=def2)) else NA, silent=TRUE) else def2 ##if(gsub("=.*", "", item[1])=="stats") browser() if(is(def, "try-error")) def <- gsub(".*=", "", gsub("\n", "", paste(as.character(unlist(istruct[sel])), collapse=""))) list(id=gsub("=.*", "", item[1]), default=def, text=trimws(gsub("\\s+", " ", gsub("\n", "", gsub("^: ?| :\\n *|.*): ", "", paste(item[-sel], collapse="")))))) }) names(items) <- sapply(items, function(x) x[["id"]]) return(items) } compareDtContent <- function(class, outdir, details){ file <- file.path(outdir, paste(class, "class.Rd", sep="-")) fromFile <- extractDpContent(file) fromDef <- attr(displayParsDoc(class, details), "parameters") allPars <- union(names(fromFile), names(fromDef)) res <- list() tmp <- setdiff(allPars, names(fromFile)) alias <- Gviz:::.dpAliasReverseTable[tmp] alias <- alias[!is.na(alias)] tmp <- setdiff(tmp, alias) res[["Parameter missing in file"]] <- tmp tmp <- setdiff(allPars, names(fromDef)) if(length(tmp)) tmp <- lapply(tmp, function(x) c(x, fromFile[[x]][["text"]])) res[["Parameter missing in definitions"]] <- tmp tmp <- setdiff(allPars, names(details[[class]])) alias <- Gviz:::.dpAliasReverseTable[tmp] alias <- alias[!is.na(alias)] tmp <- setdiff(tmp, alias) res[["No parameter entry in documentation.R"]] <- tmp tmp <- setdiff(allPars, names(as.list(getClassDef(class)@prototype@dp))) alias <- Gviz:::.dpAliasReverseTable[tmp] alias <- alias[!is.na(alias)] tmp <- setdiff(tmp, c(alias, "...")) res[["Parameter not initialized in class"]] <- tmp commonPars <- intersect(names(fromFile), names(fromDef)) tmp <- sapply(commonPars, function(x){ if(is.character(fromFile[[x]][["default"]]) && fromFile[[x]][["default"]][1] == "function" && is.function(fromDef[[x]][["default"]])) return(NULL) ae <- all.equal(fromFile[[x]][["default"]], fromDef[[x]][["default"]]) return(if(length(ae) == 1 && ae == TRUE) NULL else c(as.list(ae), file=fromFile[[x]][["default"]], def=fromDef[[x]][["default"]])) }, simplify=FALSE) res[["Parameter default difference"]] <- tmp[!sapply(tmp, is.null)] tmp <- sapply(commonPars, function(x){ ae <- all.equal(fromFile[[x]][["text"]], fromDef[[x]][["text"]]) return(if(length(ae) == 1 && ae == TRUE) NULL else c(ae, file=fromFile[[x]][["text"]], def=fromDef[[x]][["text"]])) }, simplify=FALSE) res[["Parameter text difference"]] <- tmp[!sapply(tmp, is.null)] return(res) } ## Parse though an Rd file, find 'section' in there and replace its content by 'content'. ## If there are parse errors in the Rd file either before or after injection the file ## will not be altered. injectContent <- function(file, content, section) { require(Gviz) require(tools) tmp <- tryCatch(parse_Rd(file), warning=function(x) stop("Error parsing rd file:\n", x)) tags <- sapply(tmp, attr, "Rd_tag") ind1 <- grep(section, tags, ignore.case=TRUE) ind <- if(!length(ind1)) { sind <- grep("\\\\section", tags, ignore.case=TRUE) sind[grep(section, sapply(tmp[sind], function(x) as.character(x[[1]])), ignore.case=TRUE)] }else ind1 if(length(ind)>1) stop("Section '", section, "'is not unique in file '", file, "'") if(!length(ind)) tmp <- c(tmp, list(content)) else tmp[[ind]] <- content class(tmp) <- "Rd" file.copy(file, file.path(dirname(file), paste("~", basename(file), sep="")), overwrite=TRUE) writeLines(paste(as.character(as(tmp, "Rd")), collapse=""), file) trash <- tryCatch(parse_Rd(file), warning=function(x) { file.copy(file.path(dirname(file), paste("~", basename(file), sep="")), file, overwrite=TRUE) unlink(file.path(dirname(file), paste("~", basename(file), sep=""))) warning("Injected code is syntatically incorrect. File '", file, "' has not been changed.\n", "Message:\n", x)}) return(invisible(content)) } ## Create display parameters section for the settings man page that list all availabe parameters for all classes allDisplayParsDoc <- function(details) { require(Gviz) text <- indent(c("\\section{Display Parameters}{", "\\describe{"), level=0:1) for(cl in c("GenomeAxisTrack", "DataTrack", "IdeogramTrack", "AnnotationTrack", "GeneRegionTrack", "BiomartGeneRegionTrack", "AlignedReadTrack")) { parents <- names(getClassDef(cl)@contains) pars <- sapply(c(cl, parents), function(x) as.list(getClassDef(x)@prototype@dp), simplify=FALSE) text <- c(text, indent(c(sprintf("\\item{%s}{:", cl), ifelse(length(pars[[1]]), "\\describe{", "{")), level=2:3)) done <- NULL for(p in names(pars)) { todo <- setdiff(names(pars[[p]]), done) done <- union(done, names(pars[[p]])) if(length(todo)) { det <- details[[p]][todo] if(is.null(det)) { warning("No details available for class '", p, "'") det <- "FIXME: PLEASE ADD PARAMETER DESCRIPTION." }else { det[is.na(det)] <- "FIXME: PLEASE ADD PARAMETER DESCRIPTION."} if(any(is.na(det))) warning("There are details missing for class '", p, "'. Please update the documentation") if(p!=cl) { text <- c(text, indent(c("}", sprintf("\\bold{\\emph{Inherited from class %s:}}", p), "\\describe{"), level=3)) } text <- c(text, indent(sprintf("\\item{}{\\code{%s=%s}: %s}", todo, sapply(pars[[p]][todo], toChar), det), level=4, block=FALSE)) } } text <- c(text, indent(rep("}", 2), level=3:2)) } text <- c(text, indent(rep("}", 2), level=1:0)) return(paste(text, collapse=" \n\n", sep="")) } updateRdFile <- function(class, outdir) { require(Gviz) require(tools) file <- file.path(outdir, paste(class, "class.Rd", sep="-")) content <- displayParsDoc(class, details=details) injectContent(file, content, "Display Parameters") } updateSettingsFile <- function(outdir) { file <- file.path(outdir, "settings.Rd") content <- allDisplayParsDoc(details=details) injectContent(file, content, "Display Parameters") } updateLinks <- function(outdir, toUpdate) { if(missing(toUpdate)) toUpdate <- dir(outdir, pattern="^[^~].*") toUpdate <- file.path(outdir, basename(toUpdate)) res <- NULL for(f in toUpdate) { tmp <- suppressWarnings(parse_Rd(f)) classes <- unique(.traverseRd(tmp, "linkS4class")) functions <- setdiff(unique(.traverseRd(tmp, "link")), classes) if(!length(functions) && !length(classes)) res <- c(res, injectContent(f, "", "seealso")) else { text <- c("\\seealso{", if(!is.null(classes)) indent(paste("\\code{\\linkS4class{", sort(classes), "}}", sep=""), 1) else "", if(!is.null(functions)) indent(paste("\\code{\\link{", sort(functions), "}}", sep=""), 1) else "", "}") res <- c(res, injectContent(f, paste(text, collapse="\n\n"), "seealso")) } } return(res) } details <- list( IdeogramTrack=c( background.title="Character scalar. The background color for the title panel. Defaults to omit the background.", bevel="Numeric scalar, between 0 and 1. The level of smoothness for the two ends of the ideogram.", cex.bands="Numeric scalar. The font expansion factor for the chromosome band identifier text.", cex="Numeric scalar. The overall font expansion factor for the chromosome name text.", col="Character scalar. The border color used for the highlighting of the currently displayed genomic region.", col.border.title="Integer or character scalar. The border color for the title panels.", lwd.border.title="Integer scalar. The border width for the title panels.", fill="Character scalar. The fill color used for the highlighting of the currently displayed genomic region.", fontcolor="Character scalar. The font color for the chromosome name text.", fontface="Character scalar. The font face for the chromosome name text.", fontfamily="Character scalar. The font family for the chromosome name text.", fontsize="Numeric scalar. The font size for the chromosome name text.", lty="Character or integer scalar. The line type used for the highlighting of the currently displayed genomic region.", lwd="Numeric scalar. The line width used for the highlighting of the currently displayed genomic region.", outline="Logical scalar. Add borders to the individual chromosome staining bands.", showBandId="Logical scalar. Show the identifier for the chromosome bands if there is space for it.", showId="Logical scalar. Indicate the chromosome name next to the ideogram.", showTitle="Logical scalar. Plot a title panel. Defaults to omit the title panel.", size="Numeric scalar. The relative size of the track. Defaults to automatic size setting. Can also be overridden in the \\code{\\link{plotTracks}} function." ), DataTrack=c( aggregateGroups="Logical scalar. Aggregate the values within a sample group using the aggregation funnction specified in the \\code{aggregation} parameter.", aggregation="Function or character scalar. Used to aggregate values in windows or for collapsing overlapping items. The function has to accept a numeric vector as a single input parameter and has to return a numeric scalar with the aggregated value. Alternatively, one of the predefined options \\code{mean}, \\code{median} \\code{sum}, \\code{min}, \\code{max} or \\code{extreme} can be supplied as a character scalar. Defaults to \\code{mean}.", alpha.confint="Numeric scalar. The transparency for the confidence intervalls in confint-type plots.", amount="Numeric scalar. Amount of jittering in xy-type plots. See \\code{\\link{panel.xyplot}} for details.", baseline="Numeric scalar. Y-axis position of an optional baseline. This parameter has a special meaning for mountain-type and polygon-type plots, see the 'Details' section in \\code{\\linkS4class{DataTrack}} for more information.", box.legend="Logical scalar. Draw a box around a legend.", box.ratio="Numeric scalar. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", box.width="Numeric scalar. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", cex.legend="Numeric scalar. The size factor for the legend text.", cex.sampleNames="Numeric scalar. The size factor for the sample names text in heatmap or horizon plots. Defaults to an automatic setting.", cex="Numeric scalar. The default pixel size for plotting symbols.", coef="Numeric scalar. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", col.baseline="Character scalar. Color for the optional baseline, defaults to the setting of \\code{col}.", col.confint="Character vector. Border colors for the confidence intervals for confint-type plots.", col.histogram="Character scalar. Line color in histogram-type plots.", col.horizon="The line color for the segments in the \\code{horizon}-type plot. See \\code{\\link{horizonplot}} for details.", col.mountain="Character scalar. Line color in mountain-type and polygon-type plots, defaults to the setting of \\code{col}.", col.sampleNames="Character or integer scalar. The color used for the sample names in heatmap plots.", col="Character or integer vector. The color used for all line and symbol elements, unless there is a more specific control defined elsewhere. Unless \\code{groups} are specified, only the first color in the vector is usually regarded.", collapse="Logical scalar. Collapse overlapping ranges and aggregate the underlying data.", degree="Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \\code{\\link{panel.loess}} for details.", do.out="Logical scalar. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", evaluation="Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \\code{\\link{panel.loess}} for details.", factor="Numeric scalar. Factor to control amount of jittering in xy-type plots. See \\code{\\link{panel.xyplot}} for details.", family="Character scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \\code{\\link{panel.loess}} for details.", col.confint="Character vector. Fill colors for the confidence intervals for confint-type plots.", fill.confint="Character vector. Fill colors for the confidence intervals for confint-type plots.", fill.histogram="Character scalar. Fill color in histogram-type plots, defaults to the setting of \\code{fill}.", fill.horizon="The fill colors for the segments in the \\code{horizon}-type plot. This should be a vector of length six, where the first three entries are the colors for positive changes, and the latter three entries are the colors for negative changes. Defaults to a red-blue color scheme. See \\code{\\link{horizonplot}} for details.", fill.mountain="Character vector of length 2. Fill color in mountain-type and polygon-type plots.", fontcolor.legend="Integer or character scalar. The font color for the legend text.", fontface.legend="Integer or character scalar. The font face for the legend text.", fontfamily.legend="Integer or character scalar. The font family for the legend text.", fontsize.legend="Numeric scalar. The pixel size for the legend text.", gradient="Character vector. The base colors for the \\code{gradient} plotting type or the \\code{heatmap} type with a single group. When plotting heatmaps with more than one group, the \\code{col} parameter can be used to control the group color scheme, however the gradient will always be from white to 'col' and thus does not offer as much flexibility as this \\code{gradient} parameter.", grid="Logical vector. Draw a line grid under the track content.", groups="Vector coercable to a factor. Optional sample grouping. See 'Details' section in \\code{\\linkS4class{DataTrack}} for further information.", horizon.origin="The baseline relative to which changes are indicated on the \\code{horizon}-type plot. See \\code{\\link{horizonplot}} for details.", horizon.scale="The scale for each of the segments in the \\code{horizon}-type plot. Defaults to 1/3 of the absolute data range. See \\code{\\link{horizonplot}} for details.", jitter.x="Logical scalar. Toggle on jittering on the x axis in xy-type plots. See \\code{\\link{panel.xyplot}} for details.", jitter.y="Logical scalar. Toggle off jittering on the y axis in xy-type plots. See \\code{\\link{panel.xyplot}} for details.", legend="Boolean triggering the addition of a legend to the track to indicate groups. This only has an effect if at least two groups are present.", levels.fos="Numeric scalar. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", lineheight.legend="Numeric scalar. The line height for the legend text.", lty.baseline="Character or numeric scalar. Line type of the optional baseline, defaults to the setting of \\code{lty}.", lty.mountain="Character or numeric scalar. Line type in mountain-type and polygon-type plots, defaults to the setting of \\code{lty}.", lwd.baseline="Numeric scalar. Line width of the optional baseline, defaults to the setting of \\code{lwd}.", lwd.mountain="Numeric scalar. Line width in mountain-type and polygon-type plots, defaults to the setting of \\code{lwd}.", min.distance="Numeric scalar. The mimimum distance in pixel below which to collapse ranges.", na.rm="Boolean controlling whether to discard all NA values when plotting or to keep empty spaces for NAs", ncolor="Integer scalar. The number of colors for the 'gradient' plotting type", notch.frac="Numeric scalar. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", notch="Logical scalar. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", pch="Integer scalar. The type of glyph used for plotting symbols.", separator="Numeric scalar. Number of pixels used to separate individual samples in heatmap- and horizon-type plots.", showColorBar="Boolean. Indicate the data range color mapping in the axis for 'heatmap' or 'gradient' types.", showSampleNames="Boolean. Display the names of the individual samples in a heatmap or a horizon plot.", size="Numeric scalar. The relative size of the track. Can be overridden in the \\code{\\link{plotTracks}} function. By default the size will be set automatically based on the selected plotting type.", span="Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \\code{\\link{panel.loess}} for details.", stackedBars="Logical scalar. When there are several data groups, draw the histogram-type plots as stacked barplots or grouped side by side.", stats="Function. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", transformation="Function. Applied to the data matrix prior to plotting or when calling the \\code{score} method. The function should accept exactly one input argument and its return value needs to be a numeric vector which can be coerced back into a data matrix of identical dimensionality as the input data.", type="Character vector. The plot type, one or several in \\code{c(\"p\",\"l\", \"b\", \"a\", \"a_confint\", \"s\", \"g\", \"r\", \"S\", \"confint\", \"smooth\", \"histogram\", \"mountain\", \"polygon\", \"h\", \"boxplot\", \"gradient\", \"heatmap\", \"horizon\")}. See 'Details' section in \\code{\\linkS4class{DataTrack}} for more information on the individual plotting types.", varwidth="Logical scalar. Parameter controlling the boxplot appearance. See \\code{\\link{panel.bwplot}} for details.", window="Numeric or character scalar. Aggregate the rows values of the data matrix to \\code{window} equally sized slices on the data range using the method defined in \\code{aggregation}. If negative, apply a running window of size \\code{windowSize} using the same aggregation method. Alternatively, the special value \\code{auto} causes the function to determine the optimal window size to avoid overplotting, and \\code{fixed} uses fixed-size windows of size \\code{windowSize}.", windowSize="Numeric scalar. The size of the running window when the value of \\code{window} is negative.", ylim="Numeric vector of length 2. The range of the y-axis scale." ), StackedTrack=c( stackHeight="Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.", reverseStacking="Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa." ), GdObject=c( alpha="Numeric scalar. The transparency for all track items.", alpha.title="Numeric scalar. The transparency for the title panel.", background.panel="Integer or character scalar. The background color of the content panel.", background.title="Integer or character scalar. The background color for the title panel.", cex.axis="Numeric scalar. The expansion factor for the axis annotation. Defaults to \\code{NULL}, in which case it is automatically determined based on the available space.", cex.title="Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \\code{NULL}, which means that the text size is automatically adjusted to the available space.", cex="Numeric scalar. The overall font expansion factor for all text and glyphs, unless a more specific definition exists.", col.axis="Integer or character scalar. The font and line color for the y axis, if any.", col.border.title="Integer or character scalar. The border color for the title panels.", col.frame="Integer or character scalar. The line color used for the panel frame, if \\code{frame==TRUE}", col.grid="Integer or character scalar. Default line color for grid lines, both when \\code{type==\"g\"} in \\code{\\link{DataTrack}}s and when display parameter \\code{grid==TRUE}.", col.line="Integer or character scalar. Default colors for plot lines. Usually the same as the global \\code{col} parameter.", col.symbol="Integer or character scalar. Default colors for plot symbols. Usually the same as the global \\code{col} parameter.", col.title="Integer or character scalar. The border color for the title panels", col="Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.", collapse="Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \\code{\\link{collapsing}} for details.", fill="Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.", fontcolor.title="Integer or character scalar. The font color for the title panels.", fontcolor="Integer or character scalar. The font color for all text, unless a more specific definition exists.", fontface.title="Integer or character scalar. The font face for the title panels.", fontface="Integer or character scalar. The font face for all text, unless a more specific definition exists.", fontfamily.title="Integer or character scalar. The font family for the title panels.", fontfamily="Integer or character scalar. The font family for all text, unless a more specific definition exists.", fontsize="Numeric scalar. The font size for all text, unless a more specific definition exists.", frame="Boolean. Draw a frame around the track when plotting.", grid="Boolean, switching on/off the plotting of a grid.", h="Integer scalar. Parameter controlling the number of horizontal grid lines, see \\code{\\link{panel.grid}} for details.", lineheight="Numeric scalar. The font line height for all text, unless a more specific definition exists.", lty.grid="Integer or character scalar. Default line type for grid lines, both when \\code{type==\"g\"} in \\code{\\link{DataTrack}}s and when display parameter \\code{grid==TRUE}.", lty="Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.", lwd.border.title="Integer scalar. The border width for the title panels.", lwd.grid="Numeric scalar. Default line width for grid lines, both when \\code{type==\"g\"} in \\code{\\link{DataTrack}}s and when display parameter \\code{grid==TRUE}.", lwd.title="Integer scalar. The border width for the title panels", lwd="Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.", min.distance="Numeric scalar. The minimum pixel distance before collapsing range items, only if \\code{collapse==TRUE}. See \\code{\\link{collapsing}} for details.", min.height="Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \\code{\\link{collapsing}} for details.", min.width="Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \\code{\\link{collapsing}} for details.", reverseStrand="Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \\code{TRUE}. This will effectively mirror the plot on the vertical axis.", rotation.title="The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.", rotation="The rotation angle for all text unless a more specific definiton exists.", showAxis="Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).", showTitle="Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \\code{\\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.", size="Numeric scalar. The relative size of the track. Can be overridden in the \\code{\\link{plotTracks}} function.", v="Integer scalar. Parameter controlling the number of vertical grid lines, see \\code{\\link{panel.grid}} for details.", "..."="additional display parameters are allowed. Those typically take the value of a valid R color descriptors. The parameter names will later be matched to optional track item types as defined in the 'feature' range attribute, and all tracks of the matched types are colored accordingly. See the documentation of the \\code{\\link{GeneRegionTrack}} and \\code{\\link{AnnotationTrack}} classes as well as \\code{\\link{grouping}} for details." ), GenomeAxisTrack=c( add35="Logical scalar. Add 3' to 5' direction indicators.", add53="Logical scalar. Add 5' to 3' direction indicators.", background.title="Character scalar. The background color for the title panel. Defaults to omit the background.", cex.id="Numeric scalar. The text size for the optional range annotation.", cex="Numeric scalar. The overall font expansion factor for the axis annotation text.", col.border.title="Integer or character scalar. The border color for the title panels.", col.id="Character scalar. The text color for the optional range annotation.", col.range="Character scalar. The border color for highlighted regions on the axis.", col="Character scalar. The color for the axis lines and tickmarks.", distFromAxis="Numeric scalar. Control the distance of the axis annotation from the tick marks.", exponent="Numeric scalar. The exponent for the axis coordinates, e.g., 3 means mb, 6 means gb, etc. The default is to automatically determine the optimal exponent.", fill.range="Character scalar. The fill color for highlighted regions on the axis.", fontcolor="Character scalar. The font color for the axis annotation text.", fontsize="Numeric scalar. Font size for the axis annotation text in points.", labelPos="Character vector, one in \"alternating\", \"revAlternating\", \"above\" or \"below\". The vertical positioning of the axis labels. If \\code{scale} is not \\code{NULL}, the possible values are \"above\", \"below\" and \"beside\".", littleTicks="Logical scalar. Add more fine-grained tick marks.", lwd="Numeric scalar. The line width for the axis elementes.", lwd.border.title="Integer scalar. The border width for the title panels.", scale="Numeric scalar. If not \\code{NULL} a small scale is drawn instead of the full axis, if the value is between 0 and 1 it is interpreted as a fraction of the current plotting region, otherwise as an absolute length value in genomic coordinates.", showId="Logical scalar. Show the optional range highlighting annotation.", showTitle="Logical scalar. Plot a title panel. Defaults to omit the title panel.", size="Numeric scalar. The relative size of the track. Can be overridden in the \\code{\\link{plotTracks}} function. Defaults to the ideal size based on the other track settings." ), AnnotationTrack=c( arrowHeadMaxWidth="Numeric scalar. The maximum width of the arrow head in pixels if \\code{shape} is \\code{arrow}.", arrowHeadWidth="Numeric scalar. The width of the arrow head in pixels if \\code{shape} is \\code{fixedArrow}.", cex.group="Numeric scalar. The font expansion factor for the group-level annotation.", cex="Numeric scalar. The font expansion factor for item identifiers.", col.line="Character scalar. The color used for connecting lines between grouped items. Defaults to a light gray, but if set to \\code{NULL} the same color as for the first item in the group is used.", col="Character or integer scalar. The border color for all track items.", featureAnnotation="Character scalar. Add annotation information to the individual track elements. This can be a value in \\code{id}, \\code{group} or \\code{feature}. Defaults to \\code{id}. Only works if \\code{showFeatureId} is not \\code{FALSE}.", fontcolor.group="Character or integer scalar. The font color for the group-level annotation.", fontcolor.item="Character or integer scalar. The font color for item identifiers.", fontface.group="Numeric scalar. The font face for the group-level annotation.", fontfamily.group="Character scalar. The font family for the group-level annotation.", fontsize.group="Numeric scalar. The font size for the group-level annotation.", groupAnnotation="Character scalar. Add annotation information as group labels. This can be a value in \\code{id}, \\code{group} or \\code{feature}. Defaults to \\code{group}. Only works if \\code{showId} is not \\code{FALSE}.", just.group="Character scalar. the justification of group labels. Either \\code{left}, \\code{right}, \\code{above} or \\code{below}.", lex="Numeric scalar. The line expansion factor for all track items. This is also used to connect grouped items. See \\code{\\link{grouping}} for details.", lineheight="Numeric scalar. The font line height for item identifiers.", lty="Character or integer scalar. The line type for all track items. This is also used to connect grouped items. See \\code{\\link{grouping}} for details.", lwd="Integer scalar. The line width for all track items. This is also used to connect grouped items. See \\code{\\link{grouping}} for details.", mergeGroups="Logical scalar. Merge fully overlapping groups if \\code{collapse==TRUE}.", min.height="Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \\code{\\link{collapsing}} for details. For feathered bars indicating the strandedness of grouped items this also controls the height of the arrow feathers.", min.width="Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \\code{\\link{collapsing}} for details.", rotation="Numeric scalar. The degree of text rotation for item identifiers.", rotation.group="Numeric scalar. The degree of text rotation for group labels.", rotation.item="Numeric scalar. The degree of text rotation for item identifiers.", shape="Character scalar. The shape in which to display the track items. Currently only \\code{box}, \\code{arrow}, \\code{fixedArrow}, \\code{ellipse}, and \\code{smallArrow} are implemented.", showFeatureId="Logical scalar. Control whether to plot the individual track item identifiers.", showId="Logical scalar. Control whether to annotate individual groups.", showOverplotting="Logical scalar. Use a color gradient to show the amount of overplotting for collapsed items. This implies that \\code{collapse==TRUE}", size="Numeric scalar. The relative size of the track. Can be overridden in the \\code{\\link{plotTracks}} function.", fill="Character or integer scalar. The fill color for untyped items. This is also used to connect grouped items. See \\code{\\link{grouping}} for details." ), DetailsAnnotationTrack=c( details.minWidth="Numeric scalar. The minium width in pixels for a details panel, if less space is available no details are plotted.", details.ratio="Numeric scalar. By default, the plotting method tries to fill all available space of the details panel tiles. Depending on the dimensions of your plot and the number of tiles this may lead to fairly stretched plots. Restricting the ration of width over height can help to fine tune for somewhat more sane graphics in these cases. Essentially this adds some white space in between individual tiles to force the desired ratio. Together with the \\code{size} and \\code{details.size} arguments, which control the vertical extension of the whole track and of the details section, this allows for some fairly generic resizing of the tiles.", detailsBorder.col="Character or integer scalar. Line color of the border.", detailsBorder.fill="Character or integer scalar. Background color of the border.", detailsBorder.lty="Character or integer scalar. Line type of the border around each details panel.", detailsBorder.lwd="Integer scalar. Line width of the border.", detailsConnector.cex="Numeric scalar. Relative size of the connector's end points.", detailsConnector.col="Character or integer scalar. Color of the line connecting the \\code{AnnotstionTrack} item with its details panel.", detailsConnector.lty="Character or integer scalar. Type of connecting line.", detailsConnector.lwd="Integer scalar. Line width of the connector.", detailsConnector.pch="Integer scalar. Type of the connector's ends.", detailsFunArgs="List.Additional arguments that get passed on the the details plotting function.", details.size="Numeric scalar. The fraction of vertical space of the track used for the details section.", groupDetails="Logial scalar. Plot details for feature groups rather than for individual features." ), GeneRegionTrack=c( alpha="Numeric scalar between 0 and 1. The opacity of the plotting elements, if supported by the device.", arrowHeadMaxWidth="Numeric scalar. The maximum width of the arrow head in pixels if \\code{shape} is \\code{arrow}.", arrowHeadWidth="Numeric scalar. The width of the arrow head in pixels if \\code{shape} is \\code{fixedArrow}.", cex.group="Numeric scalar. The font expansion factor for the group-level annotation.", cex="Numeric scalar. The font expansion factor for item identifiers.", col="Character or integer scalar. The border color for all track items. Defaults to using the same color as in \\code{fill}, also taking into account different track \\code{features}.", collapseTranscripts="Logical or character scalar. Can be one in \\code{gene}, \\code{longest}, \\code{shortest} or \\code{meta}. Merge all transcripts of the same gene into one single gene model. In the case of \\code{gene} (or \\code{TRUE}), this will only keep the start location of the first exon and the end location of the last exon from all transcripts of the gene. For \\code{shortest} and \\code{longest}, only the longest or shortest transcript model is retained. For \\code{meta}, a meta-transcript containing the union of all exons is formed (essentially identical to the operation \\code{reduce(geneModel)}).", exonAnnotation="Character scalar. Add annotation information to the individual exon models. This can be a value in \\code{symbol}, \\code{gene}, \\code{transcript}, \\code{exon} or \\code{feature}. Defaults to \\code{exon}. Only works if \\code{showExonId} is not \\code{FALSE}.", fill="Character or integer scalar. The fill color for untyped items. This is also used to connect grouped items. See \\code{\\link{grouping}} for details.", fontcolor.group="Character or integer scalar. The font color for the group-level annotation.", fontcolor="Character or integer scalar. The font color for item identifiers.", fontface.group="Numeric scalar. The font face for the group-level annotation.", fontface="Integer scalar. The font face for item identifiers.", fontfamily.group="Character scalar. The font family for the group-level annotation.", fontfamily="Character scalar. The font family for item identifiers.", fontsize.group="Numeric scalar. The font size for the group-level annotation.", fontsize="Numeric scalar. The font size for item identifiers.", geneSymbols="Logical scalar. Use human-readable gene symbols or gene IDs for the transcript annotation.", lex="Numeric scalar. The line expansion factor for all track items. This is also used to connect grouped items. See \\code{\\link{grouping}} for details.", lineheight="Numeric scalar. The font line height for item identifiers.", lty="Character or integer scalar. The line type for all track items. This is also used to connect grouped items. See \\code{\\link{grouping}} for details.", lwd="Integer scalar. The line width for all track items. This is also used to connect grouped items. See \\code{\\link{grouping}} for details.", min.distance="Numeric scalar. The minimum pixel distance before collapsing range items, only if \\code{collapse==TRUE}. See \\code{\\link{collapsing}} for details. Note that a value larger than 0 may lead to UTR regions being merged to CDS regions, which in most cases is not particularly useful.", min.width="Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \\code{\\link{collapsing}} for details.", rotation="Numeric scalar. The degree of text rotation for item identifiers.", shape="Character scalar. The shape in which to display the track items. Currently only \\code{box}, \\code{arrow}, \\code{ellipse}, and \\code{smallArrow} are implemented.", showExonId="Logical scalar. Control whether to plot the individual exon identifiers.", showId="Logical scalar. Control whether to annotate individual groups.", showOverplotting="Logical scalar. Use a color gradient to show the amount of overplotting for collapsed items. This implies that \\code{collapse==TRUE}", size="Numeric scalar. The relative size of the track. Can be overridden in the \\code{\\link{plotTracks}} function.", thinBoxFeature="Character vector. A listing of feature types that should be drawn with thin boxes. Typically those are non-coding elements.", transcriptAnnotation="Character scalar. Add annotation information as transcript labels. This can be a value in \\code{symbol}, \\code{gene}, \\code{transcript}, \\code{exon} or \\code{feature}. Defaults to \\code{symbol}. Only works if \\code{showId} is not \\code{FALSE}." ), BiomartGeneRegionTrack=c( "C_segment"="Character or integer scalar. Fill color for annotation objects of type 'C_segment'.", "D_segment"="Character or integer scalar. Fill color for annotation objects of type 'C_segment'.", "J_segment"="Character or integer scalar. Fill color for annotation objects of type 'C_segment'.", "miRNA"="Character or integer scalar. Fill color for annotation objects of type 'L_segment'.", "miRNA_pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'miRNA_pseudogene'.", "misc_RNA"="Character or integer scalar. Fill color for annotation objects of type 'misc_RNA'.", "misc_RNA_pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'misc_RNA_pseudogene'.", "Mt_rRNA"="Character or integer scalar. Fill color for annotation objects of type 'Mt_rRNA'.", "Mt_tRNA"="Character or integer scalar. Fill color for annotation objects of type 'Mt_tRNA'.", "Mt_tRNA_pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'Mt_tRNA_pseudogene'.", "protein_coding"="Character or integer scalar. Fill color for annotation objects of type 'protein_coding'.", "pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'pseudogene'.", "retrotransposed"="Character or integer scalar. Fill color for annotation objects of type 'retrotransposed'.", "rRNA"="Character or integer scalar. Fill color for annotation objects of type 'rRNA'.", "rRNA_pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'rRNA_pseudogene'.", "scRNA"="Character or integer scalar. Fill color for annotation objects of type 'scRNA'.", "scRNA_pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'scRNA_pseudogene'.", "snoRNA"="Character or integer scalar. Fill color for annotation objects of type 'snoRNA'.", "snoRNA_pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'snoRNA_pseudogene'.", "snRNA"="Character or integer scalar. Fill color for annotation objects of type 'snRNA'.", "snRNA_pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'snRNA_pseudogene'.", "tRNA_pseudogene"="Character or integer scalar. Fill color for annotation objects of type 'tRNA_pseudogene'.", "utr3"="Character or integer scalar. Fill color for annotation objects of type 'utr3'.", "utr5"="Character or integer scalar. Fill color for annotation objects of type 'utr5'.", "V_segment"="Character or integer scalar. Fill color for annotation objects of type 'V_segment'.", "verbose"="Logical scalar. Report data loading events from Bioamart or retrieval from cache." ), AlignedReadTrack=c( collapse="collapse overlapping ranges and aggregate the underlying data.", detail="the amount of detail to plot the data. Either \\code{coverage} to show the coverage only, or \\code{reads} to show individual reads. For large data sets the latter can be very inefficient. Please note that \\code{reads} is only available when the object has been created with option \\code{coverageOnly=FALSE}.", fill="the fill color for the coverage indicator.", size="the relative size of the track. Defaults to size selection based on the underlying data. Can be overridden in the \\code{\\link{plotTracks}} function.", type="the plot type, one or several in \\code{c(\"p\",\"l\", \"b\", \"a\", \"s\", \"g\", \"r\", \"S\", \"smooth\", \"histogram\", \"mountain\", \"polygon\", \"h\", \"boxplot\", \"gradient\", \"heatmap\", \"horizon\")}. See the 'Details' section in \\code{\\linkS4class{DataTrack}} for more information on the individual plotting types." ), SequenceTrack=c( add53="Logical scalar. Add a direction indicator", background.title="Character scalar. Make the title panel background transparent by default.", cex="The character expansion factor for the size of the sequence letters. Together with \\code{fontsize} this determines the final font size and thus the level of plotable details.", col="Character scalar. The color of the line when no indiviual letters can be plotted due to size limitations.", complement="Logical scalar. Plot the sequence complement.", fontcolor="Character vector. The colors used for the 5 possible nucleotides (G, A, T, C, N). Defaults to use colors as defined in the \\code{biovizBase} package.", fontface="Numeric scalar. The face of the font.", fontsize="Numeric scalar. Controls the size of the sequence letters and thus also the level of plotable details.", lwd="Numeric scalar. The width of the line when no indiviual letters can be plotted due to size limitations.", min.width="Numeric scalar. The minimum width in pixels of the colored boxes that are drawn when no indiviual letters can be plotted due to size limitations. If the horizontal space that a single base occupies is smaller than this value, only a horizontal line is drawn to indicate the presence of a sequence.", noLetters="Logical scalar. Always plot colored boxes (or a line) regardles of the available space.", rotation="Numeric scalar. The rotation angle for each individual letter in the sequence.", showTitle="Logical scalar. Do not show a title panel by default.", size="Numeric scalar. The size of the track item. Defaults to auto-detect the size based on the other parameter settings." ), HighlightTrack=c( col="Integer or character scalar. The boder color for the highlighting regions.", fill="Integer or character scalar. The fill color for the highlighting regions.", inBackground="Logical scalar. Place the box in the background or in the foreground." ), AlignmentsTrack=c( alpha.mismatch="Numeric scalar between 0 and 1. The transparency of the mismatch base information.", alpha.reads="Numeric scalar between 0 and 1. The transparency of the individual read icons. Can be used to indicate overlapping regions in read pairs. Only on supported devices.", cex="Numeric Scalar. The global character expansion factor.", cex.mismatch="Numeric Scalar. The character expansion factor for the mismatch base letters.", col.coverage="Integer or character scalar. The line color for the coverage profile.", col.gap="Integer or character scalar. The color of the line that is bridging the gap regions in gapped alignments.", col.mates="Integer or character scalar. The color of the line that is connecting two paired reads.", col.mismatch="Integer or character scalar. The box color around mismatch bases.", col.reads="Integer or character scalar. The box color around reads.", col.sashimi="Integer or character scalar. The line color for sashimi plots.", col="Integer or character scalar. The default color of all line elements.", collapse="Logical scalar. Do not perform any collapsing of overlapping elements. Currently not supported.", coverageHeight="Numeric scalar. The height of the coverage region of the track. Can either be a value between 0 and 1 in which case it is taken as a relative height, or a positive value greater 1 in which case it is interpreted as pixels.", fill.coverage="Integer or character scalar. The fill color for the coverage profile.", fill.reads="Integer or character scalar. The fill color for the read icons.", fill="Integer or character scalar. The default fill color of all plot elements.", fontface.mismatch="Integer scalar. The font face for mismatch bases.", lty.coverage="Integer or character scalar. The line type of the coverage profile.", lty.gap="Integer or character scalar. The type of the line that is bridging the gap regions in gapped alignments.", lty.mates="Integer or character scalar. The type of the line that is connecting two paired reads.", lty.mismatch="Integer or character scalar. The box line type around mismatch bases.", lty.reads="Integer or character scalar. The box line type around mismatch reads.", lty="Integer or character scalar. The default type of all line elements.", lwd.coverage="Integer or character scalar. The line width of the coverage profile.", lwd.gap="Integer scalar. The width of the line that is bridging the gap regions in gapped alignments.", lwd.mates="Integer scalar. The width of the line that is connecting two paired reads.", lwd.mismatch="Integer scalar. The box line width around mismatch bases.", lwd.reads="Integer scalar. The box line width around reads.", lwd.sashimiMax="Integer scalar. The maximal width of the line in sashimi plots.", lwd="Integer scalar. The default width of all line elements.", noLetters="Logical scalar. Always plot colored boxes for mismatch bases regardles of the available space.", max.height="Integer scalar. The maximum height of an individual read in pixels. Can be used in combination with \\code{min.height} to control the read and stacking appearance. ", min.height="Integer scalar. The minimum height of an individual read in pixels. Can be used in combination with \\code{max.height} to control the read and stacking appearance.", minCoverageHeight="Integer scalar. The minimum height of the coverage section. Uselful in combination with a relative setting of \\code{coverageHeight}.", minSashimiHeight="Integer scalar. The minimum height of the sashimi section. Uselful in combination with a relative setting of \\code{sashimiHeight}.", showMismatches="Logical scalar. Add mismatch information, either as individual base letters or using color coded bars. This implies that the reference sequence has been provided, either to the class constructor or as part of the track list.", sashimiFilter="GRanges object. Only junctions which overlap equally with \\code{sashimiFilter} GRanges are shown. Default \\code{NULL}, no filtering.", sashimiFilterTolerance="Integer scalar. Only used in combination with \\code{sashimiFilter}. It allows to include junctions whose starts/ends are within specified distance from \\code{sashimiFilter} GRanges. This is useful for cases where the aligner did not place the junction reads precisely. Default \\code{0L} , no tolerance.", sashimiHeight="Integer scalar. The height of the sashimi part of the track. Can either be a value between 0 and 1 in which case it is taken as a relative height, or a positive value greater 1 in which case it is interpreted as pixels.", sashimiScore="Integer scalar. The minimum number of reads supporting the junction.", sashimiStrand="Integer scalar. Only reads which have the specified strand are considered to count the junctions.", size="Numeric scalar. The size of the track. Defaults to automatic sizing.", transformation= "Function. Applied to the coverage vector prior to plotting. The function should accept exactly one input argument and its return value needs to be a numeric Rle of identical length as the input data.", type="Character vactor. The type of information to plot. For \\code{coverage} a coverage plot, potentially augmented by base mismatch information, for \\code{sashimi} a sashimi plot, showing the juctions, and for \\code{pileup} the pileups of the individual reads. These three can be combined." ) ) updateDocumentation <- function(outdir="~/Rpacks/Gviz/man") { library(Gviz) library(IRanges) library(rtracklayer) library(GenomicRanges) library(lattice) library(biomaRt) library(RColorBrewer) library(Biobase) library(grid) library(AnnotationDbi) ##source(file.path(dirname(outdir), "inst/scripts/sourcePackage.R")) dps <- sapply(c("GdObject", "GenomeAxisTrack", "RangeTrack", "NumericTrack", "DataTrack", "IdeogramTrack", "StackedTrack", "AnnotationTrack", "GeneRegionTrack", "BiomartGeneRegionTrack", "AlignedReadTrack", "AlignmentsTrack"), updateRdFile, outdir) settings <- updateSettingsFile(outdir) links <- updateLinks(outdir) } ## Instructions to rebuild the docs ## In general, changes to the documentation for a class' display parameters set should be handled in this file, in the details ## list above. Default values for display parameters should be set in the class' initializer method. ## ## To update just a single class: ## run ## compareDtContent(, , details) ## and check the results. This should show you what is different between the current man page file and the central definitions ## It will also find things that may have been added/edited manually in the man page file, and might need backporting into the ## central definition list. ## When you are happy with the results, run ## updateRdFile(, ) ## updateSettingsFile() ## updateLinks() ## ## To update all classes, run ## updateDocumentation() ## Of course you should have checked all changes before using compareDtContent() Gviz/inst/scripts/functionality.R0000755000175400017540000002336713175714140020217 0ustar00biocbuildbiocbuildlibrary(Gviz) ## ------------------------------------------------- ## GenomeAxisTrack class ## ------------------------------------------------- ax <- GenomeAxisTrack() dev.new(height=1.5) par(ask=TRUE) ## basic plotting plotTracks(ax, from=1, to=100) ## automatic label setting plotTracks(ax, from=1, to=10000) plotTracks(ax, from=1, to=10000000) plotTracks(ax, from=1, to=10000000000) ## manual label setting plotTracks(ax, from=1, to=10000000000, exponent=8) plotTracks(ax, from=-3000000, to=10000000, exponent=4) ## direction indicators plotTracks(ax, from=1, to=10000, add53=TRUE) plotTracks(ax, from=1, to=10000, add53=TRUE, add35=TRUE) ## text size plotTracks(ax, from=1, to=10000, add53=TRUE, add35=TRUE, cex=1.5) plotTracks(ax, from=1, to=10000, add53=TRUE, add35=TRUE, cex=0.6) ## second level labels plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE) ## axis spacing plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, distFromAxis=2) ## ranges library(IRanges) ax <- GenomeAxisTrack(range=IRanges(start=c(1,670), end=c(321, 912)), id=c("foo", "bar")) plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE) ## range annotion plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, showId=TRUE) plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, showId=TRUE, cex.id=1.5) ## backgrounds plotTracks(ax, from=1, to=1000, background.panel="#DAE3E6") plotTracks(ax, from=1, to=1000, background.title="#DAE3E6") ## frame plotTracks(ax, from=1, to=1000, frame=TRUE) plotTracks(ax, from=1, to=1000, background.title="#DAE3E6", col.frame="darkblue", background.panel="#FFDDB5", frame=TRUE) ## colors plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, showId=TRUE, col="darkgreen") plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, showId=TRUE, fontcolor="darkred") plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, showId=TRUE, col.id="darkblue") plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, showId=TRUE, fill.range="salmon2") ## font settings plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, showId=TRUE, fontfamily="serif", fontface=3) ## line width plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, lwd=3) ## tick mark orientation plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, labelPos="revAlternating") plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, labelPos="above") plotTracks(ax, from=1, to=1000, add53=TRUE, add35=TRUE, littleTicks=TRUE, labelPos="below") ## ------------------------------------------------- ## IdeogramTrack class ## ------------------------------------------------- ## basic plotting plotTracks(id, from=10000000, to=20000000) ## colors plotTracks(id, from=10000000, to=20000000, col="darkblue", fill="lightblue") plotTracks(id, from=10000000, to=20000000, background.panel="lightgreen") plotTracks(id, from=10000000, to=20000000, fontcolor="red", background.title="lightgreen") ## line type plotTracks(id, from=10000000, to=20000000, lty="dotted", lwd=2) ## font settings plotTracks(id, from=10000000, to=20000000, fontsize=8) plotTracks(id, from=10000000, to=20000000, cex=2) plotTracks(id, from=10000000, to=20000000, fontface=3, fontcolor="red", fontfamily="serif") ## shape plotTracks(id, from=10000000, to=20000000, bevel=0) ## ------------------ ## Object creation: ## ------------------ ## Annotation track: ## As individual arguments annTrack <- AnnotationTrack(chromosome=7, feature="test", group=c(1,2,1), start=c(2000000, 2070000, 2100000), ID=paste("annTrack item", 1:3), end=c(2050000, 2130000, 2150000), genome="hg19", name="annTrack", stacking="squish", strand=c("-", "+", "-"), size=1.5) ## Or as data.frame annTrack2 <- AnnotationTrack(data.frame(start=c(2000000, 2070000, 2100000), ID=paste("annTrack item", 1:3), end=c(2050000, 2130000, 2170000), feature="test", group=c("Group1","Group2","Group1"), strand=c("-", "+", "-")), genome="hg19", name="annTrack2", stacking="squish",chromosome=7, size=1.5, showId=TRUE) names(annTrack) <- "testAnnTrack" plotTracks(list(annTrack, annTrack2), extend.left=20000) ## The track name from <- 2000000 to <- 2100000 it <- IdeogramTrack(genome="hg19", name="chromosome 4", chromosome=4) plotTracks(list(it, annTrack2)) ## GeneRegion track geneTrack <- BiomartGeneRegionTrack(chromosome=4, start=2000000, end=2100000, genome="hg19", stacking="squish", strand="+-", name="geneTrack") ## Todo: filter testing plotTracks(geneTrack) gt1 <- BiomartGeneRegionTrack(chromosome=4, start=2000000, end=2100000, genome="hg19", stacking="squish", strand="+", name="+ Strand") gt2 <- BiomartGeneRegionTrack(chromosome=4, start=2000000, end=2100000, genome="hg19", stacking="squish", strand="-", name="- Strand") gt3 <- BiomartGeneRegionTrack(chromosome=4, start=2000000, end=2100000, genome="hg19", stacking="squish", strand="+-", name="RefSeq", filter=Gviz:::.refseqFilter) plotTracks(list(geneTrack, gt1, gt2, gt3)) displayPars(gt1) <- list(showId=TRUE, fontsize=8) displayPars(gt2) <- list(showId=TRUE, fontsize=8) displayPars(gt3) <- list(showId=TRUE, fontsize=8) plotTracks(list(gt1, gt2, gt3), extend.left=10000) ga <- GenomeAxisTrack() ga <- GenomeAxisTrack(range=GenomicRanges::GRanges(seqnames=letters[1:3], range=IRanges(start=c(2045000, 2061000, 2151000), end=c(2050000, 2066000, 2221000))), add53=TRUE, add35=TRUE) plotTracks(list(gt1, ga, gt2, gt3), extend.left=10000) displayPars(ga) <- list(littleTicks=TRUE) plotTracks(list(annTrack2, gt1, ga, gt2, gt3), extend.left=10000) bases <- seq(min(start(range(gt2))), max(end(range(gt2))), len=50) start <- bases-(min(diff(bases))/5)*runif(50,1,3) end <- bases+(min(diff(bases))/5)*runif(50,1,3) data <- matrix(rnorm(length(bases)*6)+rep(runif(length(bases), -4,4), each=6), nrow=6) dt <- DataTrack(start=start, end=end, data=data) plotTracks(list(gt2, ga, dt), extend.left=10000) dtp <- DataTrack(start=start, end=end, data=data, type="p", name="points") dtl <- DataTrack(start=start, end=end, data=data, type="l", name="lines") dtb <- DataTrack(start=start, end=end, data=data, type="b", name="both") dta <- DataTrack(start=start, end=end, data=data, type="a", name="average") dts <- DataTrack(start=start, end=end, data=data, type="s", name="steps") dtg <- DataTrack(start=start, end=end, data=data, type="g", name="grid") dtr <- DataTrack(start=start, end=end, data=data, type="r", name="regression") dtsm <- DataTrack(start=start, end=end, data=data, type="smooth", name="loess") dth <- DataTrack(start=start, end=end, data=data, type="h", name="hist") dtm <- DataTrack(start=start, end=end, data=data, type="mountain", name="mountain") dtbp <- DataTrack(start=start, end=end, data=data, type="boxplot", name="boxplot") dthi <- DataTrack(start=start, end=end, data=data, type="histogram", name="histogram") plotTracks(list(dtp, dtl, dtb, dta, dts, dtg, dtr, dtsm, dth)) plotTracks(list(dtm, dtbp, dthi)) trunc <- function(vals) { trunc <- c(30,70) vals[valstrunc[2]] <- trunc[2] return(vals) } ut1 <- UcscTrack(genome="hg19", chromosome=4, track="GC", from=1985000, to=2150000, trackType="DataTrack", start="start", end="end", data="score", type="gradient", transformation=trunc, window="auto") ut2 <- UcscTrack(genome="hg19", chromosome=4, track="Ensembl", from=1900000, to=2300000, table="ensGene", trackType="Gene", rstarts="exonStarts", rends="exonEnds", gene="name2", symbol="name2", transcript="name", strand="strand", ID="name", feature="default", exonList=TRUE, showId=TRUE, fontsize=8) ut4 <- UcscTrack(genome="canFam2", chromosome=10, track="Other RefSeq", from=13910391-10000, to=13956580+10000, trackType="Gene", rstarts="exonStarts", rends="exonEnds", gene="name2", symbol="name2", transcript="name", strand="strand", ID="name", feature="default", exonList=TRUE, showId=TRUE, fontsize=8) ut3 <- UcscTrack(genome="hg19", chromosome=4, track="Repeat", from=1900000, to=2300000, trackType="Annotation", start="genoStart", end="genoEnd", ID="repName", feature="repClass", strand="strand", shape="box", stacking="dense", size=0.5, col="black") ut4 <- UcscTrack(genome="hg19", chromosome=4, track="knownGene", from=1900000, to=2300000, trackType="Gene", rstarts="exonStarts", rends="exonEnds", gene="name", symbol="name", transcript="name", strand="strand", ID="name", feature="default", exonList=TRUE, showId=TRUE, fontsize=8) plotTracks(list(ut1, ga, ut2), from=1950000, to=2050000) plotTracks(list(it, geneTrack, ga, ut2), fontsize=10, showId=TRUE, from=1985000, to=2150000) plotTracks(list(ut1, ga, ut2, ut3), type="h", from=1985000, to=2150000) ut4 <- UcscTrack(genome="hg19", chromosome=4, track="snp131", from=1900000, to=2200000, trackType="Annotation", start="chromStart", end="chromEnd", ID="name", feature="func", strand="strand", shape="box", stacking="squish", size=0.6, fill="black", "coding-synon"="green", nonsense="red", missense="red", frameshift="red", "untranslated-3"="blue", "untranslated-5"="blue", unknown="gray") plotTracks(list(it, ut1, ga, ut2, ut4, ut3), type="h", from=1985000, to=2150000) Gviz/inst/scripts/loadIntoEnv.R0000644000175400017540000000771713175714140017547 0ustar00biocbuildbiocbuild;; This buffer is for notes you don't want to save, and for Lisp evaluation. ;; If you want to create a file, visit that file with C-x C-f, ;; then enter the text in that file's own buffer. .gassign <- function(what) assignInNamespace(ns="Gviz", x=what, value=get(what, envir=globalenv())) assignInNamespace(ns="Gviz", x=".computeGroupRange", value=.computeGroupRange) .dpOrDefault <- Gviz:::.dpOrDefault .getStringDims <- Gviz:::.getStringDims .fontGp <- Gviz:::.fontGp assignInNamespace(ns="Gviz", x=".barsAndLabels", value=.barsAndLabels) .pxResolution <- Gviz:::.pxResolution .getBiotypeColor = Gviz:::.getBiotypeColor assignInNamespace(value=.dpOrDefault, x=".dpOrDefault", ns="Gviz") assignInNamespace(value=.dpOrDefaultFont, x=".dpOrDefaultFont", ns="Gviz") assignInNamespace(value=.fontGp, x=".fontGp", ns="Gviz") library(Biobase) assignInNamespace(ns="Gviz", x=".defaultRange", value=.defaultRange) .dpOrDefault <- Gviz:::.dpOrDefault assignInNamespace(ns="Gviz", x=".arrowBar", value=.arrowBar) .pxResolution <- Gviz:::.pxResolution assignInNamespace(ns="Gviz", x=".boxes", value=.boxes) .dpOrDefault <- Gviz:::.dpOrDefault .getBiotypeColor = Gviz:::.getBiotypeColor .getAnn = Gviz:::.getAnn .getImageMap <- Gviz:::.getImageMap assignInNamespace(ns="Gviz", x=".filledBoxes", value=.filledBoxes) .handleComposite <- Gviz:::.handleComposite assignInNamespace(ns="Gviz", x=".filledArrow", value=.filledArrow) .handleComposite <- Gviz:::.handleComposite assignInNamespace(ns="Gviz", x=".updatePars", value=.updatePars) assignInNamespace(ns="Gviz", x=".handleComposite", value=.handleComposite) assignInNamespace(ns="Gviz", x=".setupTextSize", value=.setupTextSize) .dpOrDefault <- Gviz:::.dpOrDefault vpLocation <- Gviz:::vpLocation .verticalSpace <- Gviz:::.verticalSpace .needsAxis <- Gviz:::.needsAxis .PLOT_TYPES <- Gviz:::.PLOT_TYPES assignInNamespace(ns="Gviz", x="plotTracks", value=plotTracks) .whichStrand <- Gviz:::.whichStrand .recChromosome <- Gviz:::.recChromosome .needsTitle <- Gviz:::.needsTitle .fontGp <- Gviz:::.fontGp drawAxis <- Gviz:::drawAxis .getImageMap <- Gviz:::.getImageMap drawGrid <- Gviz:::drawGrid ImageMap <- Gviz:::ImageMap ## This is all needed for sourcing plotTracks .defaultRange <- Gviz:::.defaultRange setStacks <- Gviz:::setStacks vpLocation <- Gviz:::vpLocation .setupTextSize <- Gviz:::.setupTextSize .needsAxis <- Gviz:::.needsAxis drawAxis <- Gviz:::drawAxis .getImageMap <- Gviz:::.getImageMap drawGrid <- Gviz:::drawGrid ImageMap <- Gviz:::ImageMap .needsTitle <- Gviz:::.needsTitle .whichStrand <- Gviz:::.whichStrand .recChromosome <- Gviz:::.recChromosome assignInNamespace(ns="Gviz", x=".needsTitle", value=.needsTitle) assignInNamespace(ns="Gviz", x=".needsAxis", value=.needsAxis) library(Gviz) data(cyp2b10) dt<-GeneRegionTrack(cyp2b10) plotTracks(dt) plotTracks(dt, showId=T, just.group="left", cex.group=0.8, reverseStrand=F, title.width=1) plotTracks(c(dt), just.group="left", cex.group=1, reverseStrand=F, title.width=1, geneSymbols="symbol", fontface.group="bold.italic", fontcolor.group="red", showExonId=F, fontcolor.item=1, from=25897620-500, to=25897855, fontfamily="serif", fontfamily.item="sans", showId=T, just.group="left") plotTracks(c(dt), showId=T, alpha=1, lwd=1, col=1, debug="draw", collapseTranscripts=F) plotTracks(dt, col=1, shape=c("smallArrow", "arrow")) plotTracks(list(GenomeAxisTrack(), dt), transcriptAnnotation="symbol", fill="#FFD58A", just.group="below", extend.left=-0.9) ## This is broken: plotTracks(list(GenomeAxisTrack(), dt), fill="#FFD58A", showId=T, just.group="below", extend.left=-0.99, extend.right=-0.99) st <- c(2000000, 2070000, 2100000, 2160000) ed <- c(2050000, 2130000, 2150000, 2170000) str <- c("-", "+", "-", "-") gr <- c("Group1","Group2","Group1", "Group3") annTrack <- AnnotationTrack(start=st, end=ed, strand=str, chromosome=7, genome="hg19", feature="test", group=gr, id=paste("annTrack item", 1:4), name="generic annotation", stacking="squish") plotTracks(annTrack) Gviz/inst/scripts/sourcePackage.R0000755000175400017540000000222513175714140020071 0ustar00biocbuildbiocbuild##library(methods) library(grid) library(IRanges) library(rtracklayer) library(GenomicRanges) library(lattice) library(biomaRt) library(RColorBrewer) library(Biobase) library(grid) library(AnnotationDbi) ## options(error=recover) removeAndSource <- function(file, remove=FALSE){ if(remove){ exp <- parse(file) sapply(exp, function(x){ x <- as.character(x) if(x[[1]]=="setMethod") suppressWarnings(try(removeMethod(x[[2]], ifelse(length(grep("\\(", x[3]))>0, eval(parse(text=x[3])), x[3])))) if(x[[1]]=="setReplaceMethod") suppressWarnings(try(removeMethod(paste(x[[2]], "<-", sep=""), ifelse(length(grep("\\(", x[3]))>0, eval(parse(text=x[3])), x[3])))) if(x[[1]]=="setAs") suppressWarnings(try(removeMethod("coerce", x[2:3]))) }) } source(file) } path <- "~/Rpacks/Gviz/R" files <- c("Gviz.R", "AllGenerics.R", "AllClasses.R", "Gviz-methods.R") sapply(file.path(path, files), removeAndSource) ## dtTrack <- DataTrack(start=seq(1,1000, len=100), width=10, data=matrix(runif(400), nrow=4), chromosome=1, genome="mm9", name="random data") Gviz/inst/scripts/testBiomartGenomeMappings.R0000644000175400017540000000572013175714140022444 0ustar00biocbuildbiocbuildlibrary(Gviz) library(biomaRt) library(Biobase) library(rtracklayer) testBiomartVersion <- function(){ allGenomes <- union(read.delim(system.file(package="Gviz", "extdata/biomartVersionsLatest.txt"))$ucscId, read.delim(system.file(package="Gviz", "extdata/biomartVersionsNow.txt"))$ucscId) res <- mclapply(allGenomes, function(genome){ return(try({ map <- Gviz:::.ucsc2Ensembl(genome) res <- list() if(map$date == "head"){ bm <- useMart("ensembl", dataset=map$dataset) ds <- listDatasets(bm) mt <- ds[match(map$dataset, ds$dataset), "version"] if(is.na(mt)){ res <- list(current=genome, set=map$dataset, type="head", cause="error") } if(mt != map$value){ res <- list(current=genome, set=map$value, setCurrent=mt, type="head", cause="mismatch") } }else{ bm <- useMart(host=sprintf("%s.archive.ensembl.org", tolower(sub(".", "", map$date, fixed=TRUE))), biomart="ENSEMBL_MART_ENSEMBL", dataset=map$dataset) ds <- listDatasets(bm) mt <- ds[match(map$dataset, ds$dataset), "version"] if(is.na(mt)){ res <- list(current=genome, set=map$dataset, type="archive", cause="error") } if(mt != map$value){ res <- list(current=genome, set=map$value, setArchive=sub(".", " ", map$date, fixed=TRUE), setVersion=map$version, setCurrent=mt, type="archive", cause="mismatch") } } res }, silent=TRUE)) }) res <- res[listLen(res)>0] res[sapply(res, is, "try-error")] <- list(type="error") allFields <- unique(unlist(lapply(res, names))) dt <- as.data.frame(do.call(rbind, lapply(res, function(x) t(as.data.frame(unlist(x)[allFields])))), stringsAsFactors=FALSE) rownames(dt) <- NULL gens <- ucscGenomes() gens$version <- as.numeric(gsub("[a-zA-Z]*", "", gens$db)) gensS <- split(gens, gsub("[0-9]*$", "", gens$db)) highestVersion <- as.data.frame(t(sapply(gensS, function(x) unlist(x[which.max(x$version),]))), stringsAsFactors=FALSE) rownames(gens) <- gens$db mt <- match(gsub("[0-9]*$", "", dt$current), rownames(highestVersion)) tmp <- highestVersion[mt, c("db", "date", "name", "version")] colnames(tmp) <- paste("UCSCLatest", colnames(tmp), sep="_") dt2 <- cbind(dt, tmp) tmp2 <- gens[dt2$current,c("db", "date", "name", "version")] colnames(tmp2) <- paste("UCSC", colnames(tmp2), sep="_") dt3 <- cbind(dt2, tmp2) if(require(xlsx)){ write.xlsx2(dt3, file="ensMappings.xlsx", sheetName="Sheet1") }else{ write.table(dt3, file="ensMappings.xls", sep="\t", quote=FALSE) } return(dt3) } Gviz/inst/scripts/testing.R0000644000175400017540000001541313175714140016772 0ustar00biocbuildbiocbuild##load("~muellar2/projects/Epigenetics/Methylation/HD2.1-MM_13-Week_Liver/exMA.Rdata") ##load("~muellar2/projects/Epigenetics/Methylation/HD2.1-MM_13-Week_Liver/probeAnno.Rdata") panel.genomeGraphs <- function (x, y, fullData, subscripts, coord.factor, tracks, sizes, ...) { xy <- split(y,x) if(length(unique(listLen(xy))) != 1) stop("Supplied data is not a rectangular array.") data <- t(sapply(xy, function(x) x)) dataTrack <- makeMatrixRangeTrack(start=sort(unique(fullData[subscripts, "ProbeStart"])), end=sort(unique(fullData[subscripts, "ProbeEnd"])), data=data) args <- list(...) setPar(dataTrack, args) cp <- current.panel.limits() setPar(dataTrack, "ylim", cp$ylim) ##browser() tracks <- c(list(dataTrack), tracks) lt <- length(tracks) if(length(sizes) != lt) sizes <- rep(sizes, lt)[seq_len(lt)] plotTracks(tracks, panel.only=TRUE, from=cp$xlim[1]*coord.factor, to=cp$xlim[2]*coord.factor, coord.factor=coord.factor, sizes=sizes) } ### objects exProbeAnno and exMA are required ### plots a trellis graphics for the 13 week study for a given gene ### using all time points and control and treated ### ### chr: the chromosome name (e.g. "7", "X") ### start: where to start (e.g. nucleotide 26682683) ### exProbeAnno: a probeAnno object from the Ringo package ### maList: the MAList object with the normalized data ### upstream: how much to extend upstream from the start (in nucleotides), must be a negative integer ### downstream: how much to extend downstream of the start (in nucleotides), must be a positive integer plotAll = function(exProbeAnno, maList, gene=NULL, start=NULL, chr=NULL, upstream=10000, downstream=500, title=NULL, ylim, type=c("mountain", "g"), smooth.span=1/12, coord.factor=1000, tracks=list(), track.sizes=1, ...) { require(IRanges) require(lattice) require(org.Mm.eg.db) # for chromosomal location if ( is.null(start) ) { if ( is.null(gene) ) { stop("must either specify gene symbol (gene argument) or start (start argument)\n") } entrezId = suppressWarnings(as.numeric(gene)) if ( is.na(entrezId) ) { entrezId = sym2entrezId(gene) if ( is.null(entrezId) ) { stop(paste("no entrezId found for gene", gene, "\n")) } else if ( length(entrezId) > 1 ) { stop("ambiguous mappings for gene ", gene, ": ", paste(entrezId, collapse=", ")) } loc = mget(entrezId, org.Mm.egCHRLOC) if ( max(loc[[1]]) < 0 ) { loc = mget(entrezId, org.Mm.egCHRLOCEND) } chr = unique(names(loc[[entrezId]])) if ( length(chr) != 1 ) { stop(chr, " - cannot handle with chromosome!") } start = loc[[entrezId]] if ( length(start) > 1 ) { # several transcripts cat(paste("found several transcripts: ", paste(start, collapse=", "), "\n")) if ( min(start) < 0 && max(start) > 0 ) { stop(start, " - cannot handle two transcripts on opposite strands") } if ( start[1] < 0 ) { # negative strand start = max(start) } else { start = min(start) } } if ( is.na(start) ) { stop("no chromosomal location found for entrezId ", entrezId) } cat(paste("found", gene, "with entrezId", entrezId, "on chr", chr, "at position", start, ": up =", upstream, "to", downstream, "\n")) } } else { if ( is.null(chr) ) { stop("chromosome cannot be null") } gene = paste("position", as.character(start)) } if ( start < 0 ) { start = abs(start) tmp = downstream downstream = upstream upstream = tmp } cat("finding overlapping probes: ") gene.ir = IRanges(start=start-upstream, end=start+downstream) chr.ir = IRanges(start=exProbeAnno[paste(chr, "start", sep=".")], end=exProbeAnno[paste(chr, "end", sep=".")]) gene.probes = findOverlaps(gene.ir, chr.ir) hits = subjectHits(gene.probes) hit.names = exProbeAnno[paste(chr, "index", sep=".")][hits] # names/indexes are not necessarily unique (why?)! probe.idx = (maList$genes$PROBE_ID %in% hit.names) m = maList[probe.idx,] probe.pos = start(chr.ir[hits]) + (end(chr.ir[hits]) - start(chr.ir[hits]))/2 probe.start = start(chr.ir[hits]) probe.end = end(chr.ir[hits]) ### create a data frame for lattice cat("creating data frame ...\n") d <- data.frame(Mvalue=as.numeric(m$M), ProbeStart=probe.start, ProbeEnd=probe.end, Probe=m$genes$PROBE_ID, Slide=factor(rep(m$targets$SlideNumber, each=nrow(m))), Treatment=factor(rep(m$targets[,"Treatment"], each=nrow(m))), Day=ordered(rep(m$targets[,"Day"], each=nrow(m))), stringsAsFactors=FALSE) d$ProbeCenter <- rowMeans(cbind(d$ProbeStart, d$ProbeEnd)) d$Group <- factor(paste(d$Treatment, d$Day, d$Probe, sep=":")) ir = range(chr.ir[hits]) from = min(ir) to = max(ir) len = width(ir) if ( is.null(title) ) { title = paste("Averaged and smoothed methylation signals for ", gene, " within -", upstream, "/+", downstream, " bp", sep="") } cat(start, start+downstream/2, "\n") xyplot(Mvalue ~ (ProbeCenter/coord.factor)|Day+Treatment, data=d, type=type, span=smooth.span, xlim=c((start-upstream)/coord.factor, max(c(extendrange(end(chr.ir[hits])), (start+downstream)))/coord.factor), ylim=ylim, main=title, xlab="probe position", ylab="M-value (log2(IP) - log2(total))", coord.factor=coord.factor, scales=list(x=list(rot=90)), panel=panel.genomeGraphs, fullData=d, tracks=tracks, sizes=track.sizes, ...) } ## library(biomaRt) ## bm <- useMart("ensembl", dataset="mmusculus_gene_ensembl") ## gene <- makeGeneRegion(biomart=bm, chromosome="chr7", genome="mm9", start=26670000, end=26690000) ## an <- makeAnnotationTrack(start=c(26678000, 26690000), end=c(26680000, 26900000), ID=c("ann A", "ann B")) ## setPar(an, "plotId", TRUE) ## plotAll(exProbeAnno, exMA, "Cyp2b10", layout=c(7,2), cex=2,pch=".") ## plotAll(exProbeAnno, exMA, "Cyp2b10", type=c("mountain", "boxplot"), tracks=list(an, gene), track.sizes=c(5,1,1), downstream=20000) ### convert a gene symbol into it's entrez Id sym2entrezId <- function(sym) { eg <- NULL require(org.Mm.eg.db) eg <- org.Mm.egSYMBOL2EG[[sym]] if(is.null(eg)) ### nothing found - lookup synonyms eg <- org.Mm.egALIAS2EG[[sym]] return(eg) } library(BSgenome.Mmusculus.UCSC.mm9) xx <- as(subseq(Mmusculus[[7]], 26670000, 26690000), "DNAString") start <- 26670000 stop <- 26690000 window <- 100 by <- IRanges(start=seq(start, stop-window-1, by=10), width=window) cg <- DNAString("CG") tmp = aggregate(as(Mmusculus[[7]], "DNAString"), by, FUN=function(x) countPattern(cg, x)) xx <- (end(by)-start(by))/2 xxs <- loess.smooth(xx, tmp, span=1/20, evaluation=1000) cpg <- makeBaseTrack(base=xxs$x, value=xxs$y) setPar(cpg, "type", "l") plotAll(exProbeAnno, exMA, "Cyp2b10", type=c("mountain"), tracks=list(cpg, gene), track.sizes=c(5,1,1), downstream=2000, ylim=c(-0.3, 0.3)) plotAll(exProbeAnno, exMA, "Cyp2b10", type=c("p"), tracks=list(cons, cpg, gene), track.sizes=c(5,1,1), downstream=2000) Gviz/inst/scripts/updateBiomartGenomeMappings.R0000644000175400017540000000534213175714140022747 0ustar00biocbuildbiocbuild## This script will try to identify genome versions in all available ## ENSEBML archives as well as the current release, and match these ## versions back to UCSC genome identifiers. library(biomaRt) parseArchiveDate <- function(x){ datePart <- sub("\\.archive.*", "", sub("^http://", "", x)) return(as.Date(paste(datePart, "1", sep=""), format="%b%Y%d")) } getBmFromDate <- function(date){ archive <- sprintf("%s%s.archive.ensembl.org", format(date, "%b"), format(date, "%Y")) res <- try(capture.output(suppressMessages(bm <- useMart(host=archive, biomart="ENSEMBL_MART_ENSEMBL"))), silent=TRUE) if(is(res, "try-error")){ bm <- NA } return(bm) } year <- function(x){ if(missing(x)){ x <- Sys.Date() } return(as.integer(format(x, "%Y"))) } month <- function(x){ if(missing(x)){ x <- Sys.Date() } return(as.integer(format(x, "%m"))) } day <- function(x){ if(missing(x)){ x <- Sys.Date() } return(as.integer(format(x, "%d"))) } knownEnsemblArchives <- c("http://Jul2016.archive.ensembl.org", "http://Mar2016.archive.ensembl.org", "http://Dec2015.archive.ensembl.org", "http://Sep2015.archive.ensembl.org", "http://Jul2015.archive.ensembl.org", "http://May2015.archive.ensembl.org", "http://Mar2015.archive.ensembl.org", "http://Dec2014.archive.ensembl.org", "http://Oct2014.archive.ensembl.org", "http://Aug2014.archive.ensembl.org", "http://Feb2014.archive.ensembl.org", "http://Dec2013.archive.ensembl.org", "http://Sep2013.archive.ensembl.org", "http://May2012.archive.ensembl.org", "http://May2009.archive.ensembl.org") parseOneArchive <- function(date){ bm <- getBmFromDate(date) datasets <- listDatasets(bm) } parseEnsemblArchives <- function(known){ archiveDates <- sort(parseArchiveDate(known)) ## We may have to extend our search date range in case that the known archives vector is ## out of date and later archives exist latest <- max(archiveDates) daysBack <- as.integer(Sys.Date() - latest) if(daysBack > day()){ daysSince <- Sys.Date() - (1:daysBack) archiveDates <- sort(unique(c(archiveDates, as.Date(paste(unique(format(daysSince, "%b%Y")), "1", sep=""), format="%b%Y%d")))) } } Gviz/man/0000755000175400017540000000000013175714140013275 5ustar00biocbuildbiocbuildGviz/man/AlignedReadTrack-class.Rd0000644000175400017540000010474313175714140020024 0ustar00biocbuildbiocbuild\name{AlignedReadTrack-class} \Rdversion{1.1} \docType{class} \alias{AlignedReadTrack-class} \alias{AlignedReadTrack} \alias{[,AlignedReadTrack-method} \alias{[,AlignedReadTrack,ANY,ANY-method} \alias{[,AlignedReadTrack,ANY,ANY,ANY-method} \alias{coverage,AlignedReadTrack-method} \alias{drawAxis,AlignedReadTrack-method} \alias{drawGD,AlignedReadTrack-method} \alias{drawGrid,AlignedReadTrack-method} \alias{initialize,AlignedReadTrack-method} \alias{setCoverage,AlignedReadTrack-method} \alias{show,AlignedReadTrack-method} \alias{split,AlignedReadTrack,ANY-method} \alias{split,AlignedReadTrack-method} \alias{subset,AlignedReadTrack-method} \title{AlignedReadTrack class and methods (NOTE: THIS IS STILL IN DEVELOPMENT AND SUBJECT TO CHANGE)} \description{ A class to represent short sequences that have been aligned to a reference genome as they are typically generated in a next generation sequencing experiment. } \section{Objects from the Class}{ Objects can be created using the constructor function \code{AlignedReadTrack}. } \usage{ AlignedReadTrack(range=NULL, start=NULL, end=NULL, width=NULL, chromosome, strand, genome, stacking="squish", name="AlignedReadTrack", coverageOnly=FALSE, ...) } \arguments{ \item{range}{An object of class \code{\linkS4class{GRanges}}, or a \code{data.frame} which will be coerced into one in which case it needs to contain at least the three columns: \describe{ \item{}{\code{start}, \code{end}: the start and end coordinates for the track items.} \item{}{\code{strand}: the strand information for the track items. It may be provided in the form \code{+} for the Watson strand, \code{-} for the Crick strand or \code{*} for either one of the two.} } Alternatively, the \code{range} argument may be missing, in which case the relevant information has to be provided as individual function arguments (see below). } \item{start, end, width}{Integer vectors, giving the start and the end end coordinates for the individual track items, or their width. Two of the three need to be specified, and have to be of equal length or of length one, in which case this value will be recycled. Otherwise, the usual R recycling rules for vectors do not apply.} \item{strand}{Character vector, the strand information for the individual track items. Needs to be of equal length as the \code{start, end} or \code{width} vectors, or of length 1. Please note that grouped items need to be on the same strand, and erroneous entries will result in casting of an error.} \item{chromosome}{The chromosome on which the track's genomic ranges are defined. A valid UCSC chromosome identifier. Please note that at this stage only syntactic checking takes place, i.e., the argument value needs to be a single integer, numeric character or a character of the form \code{chrx}, where \emph{x} may be any possible string. The user has to make sure that the respective chromosome is indeed defined for the the track's genome.} \item{genome}{The genome on which the track's ranges are defined. Usually this is a valid UCSC genome identifier, however this is not being formally checked at this point.} \item{stacking}{The stacking type for overlapping items of the track. One in \code{c(hide, dense, squish, pack,full)}. Currently, only hide (don't show the track items, squish (make best use of the available space) and dense (no stacking at all) are implemented.} \item{name}{Character scalar of the track's name used in the title panel when plotting.} \item{coverageOnly}{Instead of storing individual reads, just compute the coverage and store the resulting coverage vector.} \item{\dots}{Additional items which will all be interpreted as further display parameters.} } \value{ The return value of the constructor function is a new object of class \code{AlignedReadTrack}. } \section{Slots}{ \describe{ \item{\code{coverage}:}{Object of class \code{"list"}, a list of coverage vectors for the plus strand, the minus strand and for both strands combined.} \item{\code{coverageOnly}:}{Object of class \code{"logical"}, flag to determine whether the object stores read locations or the coverage vectors only.} \item{\code{stacking}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{stacks}:}{Object of class \code{"environment"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{StackedTrack}"}, directly. Class \code{"\linkS4class{RangeTrack}"}, by class "StackedTrack", distance2. Class \code{"\linkS4class{GdObject}"}, by class "StackedTrack", distance3. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{AlignedReadTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{[}{\code{signature(x="AlignedReadTrack")}: subset the items in the \code{AlignedReadTrack}. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. The operation is only supported for objects that still contain all the read locations, i.e., \code{coverageOnly=FALSE}. \emph{Additional Arguments:} \describe{ \item{}{\code{i}: subsetting indices} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{subset}{\code{signature(x="AlignedReadTrack")}: subset a \code{AlignedReadTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, stacks=FALSE)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{stacks}: recompute the stacking after subsetting which can be expensive and is not always necessary.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20)}} \item{}{\code{subset(obj, from=10, to=20, sort=TRUE, stacks=FALSE)}} } } \item{split}{\code{signature(x="AlignedReadTrack")}: split an \code{AlignedReadTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of \code{AlignedReadTrack} objects. \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Usage:} \code{split(x, f, ...)} \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{coverage}{\code{signature(x="AlignedReadTrack")}: return the coverage vector for one of the strands, or the combined vector. \emph{Usage:} \code{coverage(x, strand="*")} \emph{Additional Arguments:} \describe{ \item{}{\code{strand}: the selector for the strand, \code{+} for the Watson strand, \code{-} for the Crick strand or \code{*} for both strands.} } \emph{Examples:} \describe{ \item{}{\code{coveraget(obj)}} \item{}{\code{coverage(obj, strand="-")}} } } } \bold{\emph{Internal methods:}} \describe{ \item{setCoverage}{\code{signature(GdObject="AlignedReadTrack")}: recompute the coverage on the plus and minus strand as well as for the combined strands and update the respective slot. \emph{Usage:} \code{setCoverage(GdObject)} \emph{Examples:} \describe{ \item{}{\code{setCoverage(obj)}} } } \item{drawAxis}{\code{signature(GdObject="AlignedReadTrack")}: add a y-axis to the title panel of a track. \emph{Usage:} \code{drawAxis(GdObject, from, to, subset=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: compute axis range from the data within a certain coordinates range only.} \item{}{\code{subset}: subset the object prior to calculating the axis ranges. Can be expensive and is not always needed.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{drawGD}{\code{signature(gdObject="AlignedReadTrack")}: plot the object to a graphics device. The return value of this method is the input object, potentially updated during the plotting operation. Internally, there are two modes in which the method can be called. Either in 'prepare' mode, in which case no plotting is done but the object is preprocessed based on the available space, or in 'plotting' mode, in which case the actual graphical output is created. Since subsetting of the object can be potentially costly, this can be switched off in case subsetting has already been performed before or is not necessary. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj)}} \item{}{\code{Gviz:::drawGD(obj, minBase=1, maxBase=100)}} \item{}{\code{Gviz:::drawGD(obj, prepare=TRUE, subset=FALSE)}} } } \item{drawGrid}{\code{signature(GdObject="AlignedReadTrack")}: superpose a grid on top of a track. \emph{Usage:} \code{drawGrid(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: draw grid within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj, from=10, to=100)}} } } \item{initialize}{\code{signature(.Object="AligendReadTrack")}: initialize the object.} \item{show}{\code{signature(object="AlignedReadTrack")}: show a human-readable summary of the object.} } \bold{\emph{Inherited methods:}} \describe{ \item{stacking}{\code{signature(GdObject="AlignedReadTrack")}: return the current stacking type. \emph{Usage:} \code{stacking(GdObject)} \emph{Examples:} \describe{ \item{}{\code{stacking(obj)}} } } \item{stacking<-}{\code{signature(GdObject="AlignedReadTrack", value="character")}: set the object's stacking type to one in \code{c(hide, dense, squish, pack,full)}. \emph{Usage:} \code{stacking<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{stacking(obj) <- "squish" }} } } \item{setStacks}{\code{signature(GdObject="AlignedReadTrack")}: recompute the stacks based on the available space and on the object's track items and stacking settings. \emph{Usage:} \code{setStacks(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: compute stacking within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::setStacks(obj)}} } } \item{stacks}{\code{signature(GdObject="AlignedReadTrack")}: return the stack indices for each track item. \emph{Usage:} \code{stacks(GdObject)} \emph{Examples:} \describe{ \item{}{\code{Gviz:::stacks(obj)}} } } \item{chromosome}{\code{signature(GdObject="AlignedReadTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="AlignedReadTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="AlignedReadTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="AlignedReadTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="AlignedReadTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{feature}{\code{signature(GdObject="AlignedReadTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="AlignedReadTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{AlignedReadTrack}. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="AlignedReadTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="AlignedReadTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="AlignedReadTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="AlignedReadTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="AlignedReadTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{strand}{\code{signature(x="AlignedReadTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="AlignedReadTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="AlignedReadTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{coerce}{\code{signature(from="AlignedReadTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{displayPars}{\code{signature(x="AlignedReadTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="AlignedReadTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="AlignedReadTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="AlignedReadTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="AlignedReadTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="AlignedReadTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{AlignedReadTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="AlignedReadTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{AlignedReadTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="AlignedReadTrack")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="AlignedReadTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="AlignedReadTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="AlignedReadTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="AlignedReadTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{AlignedReadTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{collapse=FALSE}: collapse overlapping ranges and aggregate the underlying data.} \item{}{\code{detail="coverage"}: the amount of detail to plot the data. Either \code{coverage} to show the coverage only, or \code{reads} to show individual reads. For large data sets the latter can be very inefficient. Please note that \code{reads} is only available when the object has been created with option \code{coverageOnly=FALSE}.} \item{}{\code{fill="#0080ff"}: the fill color for the coverage indicator.} \item{}{\code{size=NULL}: the relative size of the track. Defaults to size selection based on the underlying data. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{type="histogram"}: the plot type, one or several in \code{c("p","l", "b", "a", "s", "g", "r", "S", "smooth", "histogram", "mountain", "polygon", "h", "boxplot", "gradient", "heatmap", "horizon")}. See the 'Details' section in \code{\linkS4class{DataTrack}} for more information on the individual plotting types.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{AlignedReadTrack} objects. \describe{ \item{}{\code{\linkS4class{StackedTrack}}: \describe{ \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} } } \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text and glyphs, unless a more specific definition exists.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col="#0080FF"}: Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"} \code{(Aliases: fontcolor.title)}: Integer or character scalar. The border color for the title panels} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{rotation.title=90} \code{(Aliases: rotation.title)}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DataTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\linkS4class{StackedTrack}} \code{\link{collapsing}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \examples{ ## Construct from individual arguments arTrack <- AlignedReadTrack(start=runif(1000, 100, 200), width=24, genome="mm9", chromosome=7, strand=sample(c("+", "-"), 1000, TRUE)) \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(arTrack) <- list(fontfamily=font, fontfamily.title=font) } } ## Plotting plotTracks(arTrack) ## Track names names(arTrack) names(arTrack) <- "foo" plotTracks(arTrack) ## Subsetting and splitting subTrack <- subset(arTrack, from=110, to=130) length(subTrack) subTrack[1:2] split(arTrack, strand(arTrack)) ## Accessors start(arTrack) end(arTrack) width(arTrack) position(arTrack) width(subTrack) <- 30 strand(arTrack) strand(subTrack) <- "-" chromosome(arTrack) chromosome(subTrack) <- "chrX" genome(arTrack) genome(subTrack) <- "mm9" range(arTrack) ranges(arTrack) coverage(arTrack) ## Annotation values(arTrack) ## Stacking stacking(arTrack) stacking(arTrack) <- "dense" ## coercion as(arTrack, "data.frame") } \keyword{classes} Gviz/man/AlignmentsTrack-class.Rd0000644000175400017540000013113013175714140017754 0ustar00biocbuildbiocbuild\name{AlignmentsTrack-class} \Rdversion{1.1} \docType{class} \alias{AlignmentsTrack-class} \alias{AlignmentsTrack} \alias{chromosome<-,AlignmentsTrack-method} \alias{drawAxis,AlignmentsTrack-method} \alias{drawGD,AlignmentsTrack-method} \alias{[,AlignmentsTrack,ANY,ANY-method} \alias{coverage,AlignmentsTrack-method} \alias{initialize,AlignmentsTrack-method} \alias{initialize,ReferenceAlignmentsTrack-method} \alias{subset,AlignmentsTrack-method} \alias{subset,ReferenceAlignmentsTrack-method} \alias{stacks,AlignmentsTrack-method} \alias{values,AlignmentsTrack-method} \alias{show,AlignmentsTrack-method} \title{AlignmentsTrack class and methods} \description{ A class to represent short sequences that have been aligned to a reference genome as they are typically generated in next generation sequencing experiments. } \section{Objects from the Class}{ Objects can be created using the constructor function \code{AlignmentsTrack}. } \usage{ AlignmentsTrack(range=NULL, start=NULL, end=NULL, width=NULL, strand, chromosome, genome, stacking="squish", id, cigar, mapq, flag, isize, groupid, status, md, seqs, name="AlignmentsTrack", isPaired=TRUE, importFunction, referenceSequence, ...) } \arguments{ In the most common case \code{AlignmentsTrack} objects will be created directly from \code{BAM} files, and we strongly recommend to do this. A \code{BAM} file contains all the information that is needed to properly display the aligned reads, but more importantly, it allows to dynamically stream the data for the desired plotting range off the disk rather than having to load potentially gigantic amounts of data into memory upon object instantiation. That being said, there are other starting points to build \code{AlignmentsTracks}. \item{range}{ An optional meta argument to handle the different input types. If the \code{range} argument is missing, all the relevant information to create the object has to be provided as individual function arguments (see below). The different input options for \code{range} are: \describe{ \item{}{A \code{character} string: the path to a \code{BAM} file containing the read alignments. To be precise, this will result in the instantiation of a \code{ReferenceAlignmentsTrack} object, but for the user this implementation detail should be of no concern.} \item{}{A \code{GRanges} object: the genomic ranges of the individual reads as well as the optional additional metadata columns \code{id}, \code{cigar}, \code{mapq}, \code{flag}, \code{isize}, \code{groupid}, \code{status}, \code{md} and \code{seqs} (see description of the individual function parameters below for details). Calling the constructor on a \code{GRanges} object without further arguments, e.g. \code{AlignmentsTrack(range=obj)} is equivalent to calling the coerce method \code{as(obj, "AlignmentsTrack")}.} \item{}{An \code{\linkS4class{IRanges}} object: almost identical to the \code{GRanges} case, except that the chromosome and strand information as well as all additional metadata has to be provided in the separate \code{chromosome}, \code{strand}, \code{feature}, \code{group} or \code{id} arguments, because it can not be directly encoded in an \code{IRanges} object. Note that none of those inputs are mandatory, and if not provided explicitely the more or less reasonable default values \code{chromosome=NA} and \code{strand="*"} are used. } \item{}{A \code{data.frame} object: the \code{data.frame} needs to contain at least the two mandatory columns \code{start} and \code{end} with the range coordinates. It may also contain a \code{chromosome} and a \code{strand} column with the chromosome and strand information for each range. If missing it will be drawn from the separate \code{chromosome} or \code{strand} arguments. In addition, the \code{id}, \code{cigar}, \code{mapq}, \code{flag}, \code{isize}, \code{groupid}, \code{status}, \code{md} and \code{seqs} data can be provided as additional columns. The above comments about potential default values also apply here.} } } \item{start, end, width}{Integer vectors, giving the start and the end coordinates for the individual track items, or their width. Two of the three need to be specified, and have to be of equal length or of length one, in which case this single value will be recycled. Otherwise, the usual R recycling rules for vectors do not apply here.} \item{id}{Character vector of read identifiers. Those identifiers have to be unique, i.e., each range representing a read needs to have a unique \code{id}.} \item{cigar}{A character vector of valid CIGAR strings describing details of the alignment. Typically those include alignemnts gaps or insertions and deletions, but also hard and soft clipped read regions. If missing, a fully mapped read without gaps or indels is assumed. Needs to be of equal length as the provided genomic coordinates, or of length 1.} \item{mapq}{A numeric vector of read mapping qualities. Needs to be of equal length as the provided genomic coordinates, or of length 1.} \item{flag}{A numeric vector of flag values. Needs to be of equal length as the provided genomic coordinates, or of length 1. Currently not used.} \item{isize}{A numeric vector of empirical insert sizes. This only applies if the reads are paired. Needs to be of equal length as the provided genomic coordinates, or of length 1. Currently not used.} \item{groupid}{A factor (or vector than can be coerced into one) defining the read pairs. Reads with the same \code{groupid} are considered to be mates. Please note that each read group may only have one or two members. Needs to be of equal length as the provided genomic coordinates, or of length 1.} \item{status}{A factor describing the mapping status of a read. Has to be one in \code{mated}, \code{unmated} or \code{ambiguous}. Needs to be of equal length as the provided genomic coordinates, or of length 1.} \item{md}{A character vector describing the mapping details. This is effectively and alternative to the CIGAR encoding and it removes the dependency on a reference sequence to figure out read mismatches. Needs to be of equal length as the provided genomic coordinates, or of length 1. Currently not used.} \item{seqs}{\code{DNAStringSet} of read sequences.} \item{strand}{Character vector, the strand information for the reads. It may be provided in the form \code{+} for the Watson strand, \code{-} for the Crick strand or \code{*} for either one of the two. Needs to be of equal length as the provided genomic coordinates, or of length 1. Please note that paired reads need to be on opposite strands, and erroneous entries will result in casting of an error.} \item{chromosome}{The chromosome on which the track's genomic ranges are defined. A valid UCSC chromosome identifier if \code{options(ucscChromosomeNames=TRUE)}. Please note that in this case only syntactic checking takes place, i.e., the argument value needs to be an integer, numeric character or a character of the form \code{chrx}, where \code{x} may be any possible string. The user has to make sure that the respective chromosome is indeed defined for the the track's genome. If not provided here, the constructor will try to construct the chromosome information based on the available inputs, and as a last resort will fall back to the value \code{chrNA}. Please note that by definition all objects in the \code{Gviz} package can only have a single active chromosome at a time (although internally the information for more than one chromosome may be present), and the user has to call the \code{chromosome<-} replacement method in order to change to a different active chromosome.} \item{genome}{The genome on which the track's ranges are defined. Usually this is a valid UCSC genome identifier, however this is not being formally checked at this point. If not provided here the constructor will try to extract this information from the provided input, and eventually will fall back to the default value of \code{NA}.} \item{stacking}{The stacking type for overlapping items of the track. One in \code{c(hide, dense, squish, pack, full)}. Currently, only squish (make best use of the available space), dense (no stacking, collapse overlapping ranges), and hide (do not show any track items at all) are implemented.} \item{name}{Character scalar of the track's name used in the title panel when plotting.} \item{isPaired}{A logical scalar to determine whether the reads are paired or not. While this may be used to render paired-end data as single-end, the oppsite will typically not have any effect because the appropriate \code{groupid} settings will not be present. Thus setting \code{isPaired} to \code{TRUE} can usually be used to autodetect the pairing state of the input data.} \item{importFunction}{A user-defined function to be used to import the data from a file. This only applies when the \code{range} argument is a character string with the path to the input data file. The function needs to accept an argument \code{x} containing the file path and a second argument \code{selection} with the desired plotting ranges. It has to return a proper \code{GRanges} object with all the necessary metadata columns set. A single default import function is already implemented in the package for \code{BAM} files.} \item{referenceSequence}{An optional \code{\linkS4class{SequenceTrack}} object containing the reference sequence against which the reads have been aligned. This is only needed when mismatch information has to be added to the plot (i.e., the \code{showMismatchs} display parameter is \code{TRUE}) because this is normally not encoded in the \code{BAM} file. If not provided through this argument, the \code{\link{plotTracks}} function is smart enough to detect the presence of a \code{\linkS4class{SequenceTrack}} object in the track list and will use that as a reference sequence.} \item{\dots}{Additional items which will all be interpreted as further display parameters. See \code{\link{settings}} and the "Display Parameters" section below for details.} } \value{ The return value of the constructor function is a new object of class \code{AlignmentsTrack} or \code{ReferenceAlignmentsTrack}. } \section{details}{ \code{AlignmentTracks} usually have two section: the coverage section on top showing a histogram of the read coverage, and the pile-up section below with the individual reads. Both can be toggled on or off using the \code{type} display parameter. If reference sequence has been provided either during object instantiation or with the track list to the call to \code{plotTracks}, sequence mismatch information will be shown in both sections: as a stacked histogram in the coverage plot and as colored boxes or characters (depending on available space) in for the pile-ups. } \section{Slots}{ \describe{ \item{\code{stackRanges}:}{Object of class \code{"GRanges"}, the ranges of the precomputed mate or gaps stacks that should remain conmnected.} \item{\code{sequences}:}{Object of class \code{"DNAStringSet"}, the processed read sequences.} \item{\code{referenceSequence}:}{Object of class \code{"SequenceTrack"}, the reference sequence to which the reads have been aligned to.} \item{\code{stacking}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{stacks}:}{Object of class \code{"environment"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{StackedTrack}"}, directly. Class \code{"\linkS4class{RangeTrack}"}, by class "StackedTrack", distance2. Class \code{"\linkS4class{GdObject}"}, by class "StackedTrack", distance3. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{AlignmentsTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{[}{\code{signature(x="AlignmentsTrack")}: subset the items in the \code{AlignmentsTrack}. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}: subsetting indices} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{subset}{\code{signature(x="AlignmentsTrack")}: subset a \code{AlignmentsTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, stacks=FALSE)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{stacks}: recompute the stacking after subsetting which can be expensive and is not always necessary.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20)}} \item{}{\code{subset(obj, from=10, to=20, sort=TRUE, stacks=FALSE)}} } } \item{split}{\code{signature(x="AlignmentsTrack")}: split an \code{AlignmentsTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of \code{AlignmentsTrack} objects. \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Usage:} \code{split(x, f, ...)} \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } } \bold{\emph{Internal methods:}} \describe{ \item{drawAxis}{\code{signature(GdObject="AlignmentsTrack")}: add a y-axis to the title panel of a track. \emph{Usage:} \code{drawAxis(GdObject, from, to, subset=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: compute axis range from the data within a certain coordinates range only.} \item{}{\code{subset}: subset the object prior to calculating the axis ranges. Can be expensive and is not always needed.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{drawGD}{\code{signature(gdObject="AlignmentsTrack")}: plot the object to a graphics device. The return value of this method is the input object, potentially updated during the plotting operation. Internally, there are two modes in which the method can be called. Either in 'prepare' mode, in which case no plotting is done but the object is preprocessed based on the available space, or in 'plotting' mode, in which case the actual graphical output is created. Since subsetting of the object can be potentially costly, this can be switched off in case subsetting has already been performed before or is not necessary. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj)}} \item{}{\code{Gviz:::drawGD(obj, minBase=1, maxBase=100)}} \item{}{\code{Gviz:::drawGD(obj, prepare=TRUE, subset=FALSE)}} } } \item{initialize}{\code{signature(.Object="AligendReadTrack")}: initialize the object.} \item{show}{\code{signature(object="AlignmentsTrack")}: show a human-readable summary of the object.} } \bold{\emph{Inherited methods:}} \describe{ \item{stacking}{\code{signature(GdObject="AlignmentsTrack")}: return the current stacking type. \emph{Usage:} \code{stacking(GdObject)} \emph{Examples:} \describe{ \item{}{\code{stacking(obj)}} } } \item{stacking<-}{\code{signature(GdObject="AlignmentsTrack", value="character")}: set the object's stacking type to one in \code{c(hide, dense, squish, pack,full)}. \emph{Usage:} \code{stacking<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{stacking(obj) <- "squish" }} } } \item{setStacks}{\code{signature(GdObject="AlignmentsTrack")}: recompute the stacks based on the available space and on the object's track items and stacking settings. \emph{Usage:} \code{setStacks(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: compute stacking within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::setStacks(obj)}} } } \item{stacks}{\code{signature(GdObject="AlignmentsTrack")}: return the stack indices for each track item. \emph{Usage:} \code{stacks(GdObject)} \emph{Examples:} \describe{ \item{}{\code{Gviz:::stacks(obj)}} } } \item{chromosome}{\code{signature(GdObject="AlignmentsTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="AlignmentsTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="AlignmentsTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="AlignmentsTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="AlignmentsTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{feature}{\code{signature(GdObject="AlignmentsTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="AlignmentsTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{AlignmentsTrack}. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="AlignmentsTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="AlignmentsTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="AlignmentsTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="AlignmentsTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="AlignmentsTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{strand}{\code{signature(x="AlignmentsTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="AlignmentsTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="AlignmentsTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{coerce}{\code{signature(from="AlignmentsTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{displayPars}{\code{signature(x="AlignmentsTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="AlignmentsTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="AlignmentsTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="AlignmentsTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="AlignmentsTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="AlignmentsTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{AlignmentsTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="AlignmentsTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{AlignmentsTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="AlignmentsTrack")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="AlignmentsTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="AlignmentsTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="AlignmentsTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="AlignmentsTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{AlignmentsTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{alpha.mismatch=1}: Numeric scalar between 0 and 1. The transparency of the mismatch base information.} \item{}{\code{alpha.reads=0.5}: Numeric scalar between 0 and 1. The transparency of the individual read icons. Can be used to indicate overlapping regions in read pairs. Only on supported devices.} \item{}{\code{cex=0.7}: Numeric Scalar. The global character expansion factor.} \item{}{\code{cex.mismatch=NULL}: Numeric Scalar. The character expansion factor for the mismatch base letters.} \item{}{\code{col="#808080"}: Integer or character scalar. The default color of all line elements.} \item{}{\code{col.coverage=NULL}: Integer or character scalar. The line color for the coverage profile.} \item{}{\code{col.gap="#808080"}: Integer or character scalar. The color of the line that is bridging the gap regions in gapped alignments.} \item{}{\code{col.mates="#E0E0E0"}: Integer or character scalar. The color of the line that is connecting two paired reads.} \item{}{\code{col.mismatch="#808080"}: Integer or character scalar. The box color around mismatch bases.} \item{}{\code{col.reads=NULL}: Integer or character scalar. The box color around reads.} \item{}{\code{col.sashimi=NULL}: Integer or character scalar. The line color for sashimi plots.} \item{}{\code{collapse=FALSE}: Logical scalar. Do not perform any collapsing of overlapping elements. Currently not supported.} \item{}{\code{coverageHeight=0.1}: Numeric scalar. The height of the coverage region of the track. Can either be a value between 0 and 1 in which case it is taken as a relative height, or a positive value greater 1 in which case it is interpreted as pixels.} \item{}{\code{fill="#BABABA"}: Integer or character scalar. The default fill color of all plot elements.} \item{}{\code{fill.coverage=NULL}: Integer or character scalar. The fill color for the coverage profile.} \item{}{\code{fill.reads=NULL}: Integer or character scalar. The fill color for the read icons.} \item{}{\code{fontface.mismatch=2}: Integer scalar. The font face for mismatch bases.} \item{}{\code{lty=1}: Integer or character scalar. The default type of all line elements.} \item{}{\code{lty.coverage=NULL}: Integer or character scalar. The line type of the coverage profile.} \item{}{\code{lty.gap=NULL}: Integer or character scalar. The type of the line that is bridging the gap regions in gapped alignments.} \item{}{\code{lty.mates=NULL}: Integer or character scalar. The type of the line that is connecting two paired reads.} \item{}{\code{lty.mismatch=NULL}: Integer or character scalar. The box line type around mismatch bases.} \item{}{\code{lty.reads=NULL}: Integer or character scalar. The box line type around mismatch reads.} \item{}{\code{lwd=1}: Integer scalar. The default width of all line elements.} \item{}{\code{lwd.coverage=NULL}: Integer or character scalar. The line width of the coverage profile.} \item{}{\code{lwd.gap=NULL}: Integer scalar. The width of the line that is bridging the gap regions in gapped alignments.} \item{}{\code{lwd.mates=NULL}: Integer scalar. The width of the line that is connecting two paired reads.} \item{}{\code{lwd.mismatch=NULL}: Integer scalar. The box line width around mismatch bases.} \item{}{\code{lwd.reads=NULL}: Integer scalar. The box line width around reads.} \item{}{\code{lwd.sashimiMax=10}: Integer scalar. The maximal width of the line in sashimi plots.} \item{}{\code{max.height=10}: Integer scalar. The maximum height of an individual read in pixels. Can be used in combination with \code{min.height} to control the read and stacking appearance.} \item{}{\code{min.height=5}: Integer scalar. The minimum height of an individual read in pixels. Can be used in combination with \code{max.height} to control the read and stacking appearance.} \item{}{\code{minCoverageHeight=50}: Integer scalar. The minimum height of the coverage section. Uselful in combination with a relative setting of \code{coverageHeight}.} \item{}{\code{minSashimiHeight=50}: Integer scalar. The minimum height of the sashimi section. Uselful in combination with a relative setting of \code{sashimiHeight}.} \item{}{\code{noLetters=FALSE}: Logical scalar. Always plot colored boxes for mismatch bases regardles of the available space.} \item{}{\code{sashimiFilter=NULL}: GRanges object. Only junctions which overlap equally with \code{sashimiFilter} GRanges are shown. Default \code{NULL}, no filtering.} \item{}{\code{sashimiFilterTolerance=0}: Integer scalar. Only used in combination with \code{sashimiFilter}. It allows to include junctions whose starts/ends are within specified distance from \code{sashimiFilter} GRanges. This is useful for cases where the aligner did not place the junction reads precisely. Default \code{0L} , no tolerance.} \item{}{\code{sashimiHeight=0.1}: Integer scalar. The height of the sashimi part of the track. Can either be a value between 0 and 1 in which case it is taken as a relative height, or a positive value greater 1 in which case it is interpreted as pixels.} \item{}{\code{sashimiScore=1}: Integer scalar. The minimum number of reads supporting the junction.} \item{}{\code{sashimiStrand="*"}: Integer scalar. Only reads which have the specified strand are considered to count the junctions.} \item{}{\code{showMismatches=TRUE}: Logical scalar. Add mismatch information, either as individual base letters or using color coded bars. This implies that the reference sequence has been provided, either to the class constructor or as part of the track list.} \item{}{\code{size=NULL}: Numeric scalar. The size of the track. Defaults to automatic sizing.} \item{}{\code{transformation=NULL}: Function. Applied to the coverage vector prior to plotting. The function should accept exactly one input argument and its return value needs to be a numeric Rle of identical length as the input data.} \item{}{\code{type=c("coverage", "pileup")}: Character vactor. The type of information to plot. For \code{coverage} a coverage plot, potentially augmented by base mismatch information, for \code{sashimi} a sashimi plot, showing the juctions, and for \code{pileup} the pileups of the individual reads. These three can be combined.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{AlignmentsTrack} objects. \describe{ \item{}{\code{\linkS4class{StackedTrack}}: \describe{ \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} } } \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: FIXME: PLEASE ADD PARAMETER DESCRIPTION.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: FIXME: PLEASE ADD PARAMETER DESCRIPTION.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The border color for the title panels} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists} \item{}{\code{rotation.title=90}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DataTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\linkS4class{SequenceTrack}} \code{\linkS4class{StackedTrack}} \code{\link{collapsing}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \examples{ ## Creating objects afrom <- 2960000 ato <- 3160000 alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "gapped.bam"), isPaired=TRUE) plotTracks(alTrack, from=afrom, to=ato, chromosome="chr12") ## Omit the coverage or the pile-ups part plotTracks(alTrack, from=afrom, to=ato, chromosome="chr12", type="coverage") plotTracks(alTrack, from=afrom, to=ato, chromosome="chr12", type="pileup") ## Including sequence information with the constructor if(require(BSgenome.Hsapiens.UCSC.hg19)){ strack <- SequenceTrack(Hsapiens, chromosome="chr21") afrom <- 44945200 ato <- 44947200 alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "snps.bam"), isPaired=TRUE, referenceSequence=strack) plotTracks(alTrack, chromosome="chr21", from=afrom, to=ato) ## Including sequence information in the track list alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "snps.bam"), isPaired=TRUE) plotTracks(c(alTrack, strack), chromosome="chr21", from=44946590, to=44946660) } } \keyword{classes} Gviz/man/AnnotationTrack-class.Rd0000644000175400017540000016043113175714140017773 0ustar00biocbuildbiocbuild\name{AnnotationTrack-class} \Rdversion{1.1} \docType{class} \alias{AnnotationTrack-class} \alias{AnnotationTrack} \alias{DetailsAnnotationTrack-class} \alias{DetailsAnnotationTrack} \alias{initialize,DetailsAnnotationTrack-method} \alias{initialize,ReferenceAnnotationTrack-method} \alias{coerce,AnnotationTrack,UCSCData-method} \alias{collapseTrack,AnnotationTrack-method} \alias{drawGD,AnnotationTrack-method} \alias{drawGrid,AnnotationTrack-method} \alias{group} \alias{group,AnnotationTrack-method} \alias{group<-} \alias{group<-,AnnotationTrack,character-method} \alias{identifier,AnnotationTrack-method} \alias{identifier<-,AnnotationTrack,character-method} \alias{identifier} \alias{identifier<-} \alias{initialize,AnnotationTrack-method} \alias{setStacks,AnnotationTrack-method} \alias{show,AnnotationTrack-method} \alias{show,ReferenceAnnotationTrack-method} \alias{subset,AnnotationTrack-method} \alias{subset,ReferenceAnnotationTrack-method} \alias{coerce,GRanges,AnnotationTrack-method} \alias{coerce,GRangesList,AnnotationTrack-method} \alias{consolidateTrack,AnnotationTrack-method} \title{AnnotationTrack class and methods} \description{ A fairly generic track object for arbitrary genomic range annotations, with the option of grouped track items. The extended \code{DetailsAnnotationTrack} provides a more flexible interface to add user-defined custom information for each range. } \section{Objects from the class}{ Objects can be created using the constructor function \code{AnnotationTrack}. } \usage{ AnnotationTrack(range=NULL, start=NULL, end=NULL, width=NULL, feature, group, id, strand, chromosome, genome, stacking="squish", name="AnnotationTrack", fun, selectFun, importFunction, stream=FALSE, ...) } \arguments{ \code{AnnotationTrack} object can be created from a variety of different inputs in order to nicely embed the package into the existing Bioconductor landscape. Since the main components of this class are essentially genomic ranges, the obvious Bioconductor representation is most likely a \code{\linkS4class{GRanges}} object, or, for grouped elements, a \code{\linkS4class{GRangesList}}. However, in certain cases it may be desirable to build the object from individual function arguments. \item{range}{ An optional meta argument to handle the different input types. If the \code{range} argument is missing, all the relevant information to create the object has to be provided as individual function arguments (see below). The different input options for \code{range} are: \describe{ \item{}{A \code{GRanges} object: the genomic ranges for the \code{Annotation} track as well as the optional additional metadata columns \code{feature}, \code{group} and \code{id} (see description of the individual function parameters below for details). Calling the constructor on a \code{GRanges} object without further arguments, e.g. \code{AnnotationTrack(range=obj)} is equivalent to calling the coerce method \code{as(obj, "AnnotationTrack")}.} \item{}{A \code{GRangesList} object: this is very similar to the previous case, except that the grouping information that is part of the list structure is preserved in the \code{AnnotationTrack}. I.e., all the elements within one list item receive the same group id. For consistancy, there is also a coercion method from \code{GRangesLists} \code{as(obj, "AnnotationTrack")}.} \item{}{An \code{\linkS4class{IRanges}} object: almost identical to the \code{GRanges} case, except that the chromosome and strand information as well as all additional metadata has to be provided in the separate \code{chromosome}, \code{strand}, \code{feature}, \code{group} or \code{id} arguments, because it can not be directly encoded in an \code{IRange} object. Note that none of those inputs are mandatory, and if not provided explicitely the more or less reasonable default values \code{chromosome=NA} and \code{strand="*"} are used. } \item{}{A \code{data.frame} object: the \code{data.frame} needs to contain at least the two mandatory columns \code{start} and \code{end} with the range coordinates. It may also contain a \code{chromosome} and a \code{strand} column with the chromosome and strand information for each range. If missing it will be drawn from the separate \code{chromosome} or \code{strand} arguments. In addition, the \code{feature}, \code{group} and \code{id} data can be provided as additional columns. The above comments about potential default values also apply here.} \item{}{A \code{character} scalar: in this case the value of the \code{range} argument is considered to be a file path to an annotation file on disk. A range of file types are supported by the \code{Gviz} package as identified by the file extension. See the \code{importFunction} documentation below for further details.} } } \item{start, end, width}{Integer vectors, giving the start and the end end coordinates for the individual track items, or their width. Two of the three need to be specified, and have to be of equal length or of length one, in which case this single value will be recycled. Otherwise, the usual R recycling rules for vectors do not apply here.} \item{feature}{Factor (or other vector that can be coerced into one), giving the feature types for the individual track items. When plotting the track to the device, if a display parameter with the same name as the value of \code{feature} is set, this will be used as the track item's fill color. See \code{\link{grouping}} for details. Needs to be of equal length as the provided genomic coordinates, or of length 1.} \item{group}{Factor (or other vector that can be coerced into one), giving the group memberships for the individual track items. When plotting to the device, all items in the same group will be connected. See \code{\link{grouping}} for details. Needs to be of equal length as the provided genomic coordinates, or of length 1.} \item{id}{Character vector of track item identifiers. When plotting to the device, it's value will be used as the identifier tag if the display parameter \code{showFeatureId=TRUE}. Needs to be of equal length as the provided genomic ranges, or of length 1.} \item{strand}{Character vector, the strand information for the individual track items. It may be provided in the form \code{+} for the Watson strand, \code{-} for the Crick strand or \code{*} for either one of the two. Needs to be of equal length as the provided genomic coordinates, or of length 1. Please note that grouped items need to be on the same strand, and erroneous entries will result in casting of an error.} \item{chromosome}{The chromosome on which the track's genomic ranges are defined. A valid UCSC chromosome identifier if \code{options(ucscChromosomeNames=TRUE)}. Please note that in this case only syntactic checking takes place, i.e., the argument value needs to be an integer, numeric character or a character of the form \code{chrx}, where \code{x} may be any possible string. The user has to make sure that the respective chromosome is indeed defined for the the track's genome. If not provided here, the constructor will try to construct the chromosome information based on the available inputs, and as a last resort will fall back to the value \code{chrNA}. Please note that by definition all objects in the \code{Gviz} package can only have a single active chromosome at a time (although internally the information for more than one chromosome may be present), and the user has to call the \code{chromosome<-} replacement method in order to change to a different active chromosome.} \item{genome}{The genome on which the track's ranges are defined. Usually this is a valid UCSC genome identifier, however this is not being formally checked at this point. If not provided here the constructor will try to extract this information from the provided input, and eventually will fall back to the default value of \code{NA}.} \item{stacking}{The stacking type for overlapping items of the track. One in \code{c(hide, dense, squish, pack,full)}. Currently, only squish (make best use of the available space), dense (no stacking, collapse overlapping ranges), and hide (do not show any track items at all) are implemented.} \item{name}{Character scalar of the track's name used in the title panel when plotting.} \item{fun}{A function that is being called for each entry in the \code{AnnotationTrack} object. See section 'Details' and 'Examples' for further information. When called internally by the plotting machinery, a number of arguments are automatically passed on to this function, and the user needs to make sure that they can all be digested (i.e., either have all of them as formal named function arguments, or gobble up everything that is not needed in \dots). These arguments are: \itemize{ \item{\code{start}: the genomic start coordinate of the range item.} \item{\code{end}: the genomic end coordinates of the range item.} \item{\code{strand}: the strand information for the range item.} \item{\code{chromosome}: the chromosome of the range item.} \item{\code{identifier}: the identifier of the range item, i.e., the result of calling \code{identifier(DetailsAnnotationTrack, lowest=TRUE)}. Typically those identifiers are passed on to the object constructor during instantiation as the \code{id} argument.} \item{\code{index}: a counter enumerating the ranges. The \code{AnnotationTrack} object is sorted internally for visibility, and the \code{index} argument refers to the index of plotting.} \item{\code{GdObject}: a reference to the currently plotted \code{DetailsAnnotationTrack} object.} \item{\code{GdObject.original}: a reference to the \code{DetailsAnnotationTrack} before any processing like item collapsing has taken place. Essentially, this is the track object as it exists in your working environment.} } Additional arguments can be passed to the plotting function by means of the \code{detailsFunArgs} argument (see below). Note that the plot must use grid graphics (e.g. function in the 'lattice' package or low-level grid functions). To access a data object such a matrix or data frame within the function you can either store it as a variable in the global environment or, to avoid name space conflicts, you can make it part of the function environment by means of a closure. Alternatively, you may want to explicitely stick it into an environment or pass it along in the \code{detailsFunArgs} list. To figure out in your custom plotting function which annotation element is currently being plotted you can either use the identifier which has to be unique for each range element, or you may want to use the genomic position (start/end/strand/chromosome) e.g. if the data is stored in a \code{GRanges} object. } \item{selectFun}{A function that is being called for each entry in the \code{AnnotationTrack} object with exactly the same arguments as in \code{fun}. The purpose of this function is to decide for each track element whether details should be drawn, and consequently it has to return a single logical scalar. If the return value is \code{TRUE}, details will be drawn for the item, if it is \code{FALSE}, the details strip for the item is omitted. } \item{importFunction}{A user-defined function to be used to import the data from a file. This only applies when the \code{range} argument is a character string with the path to the input data file. The function needs to accept an argument \code{x} containing the file path and has to return a proper \code{GRanges} object with all the necessary metadata columns set. A set of default import functions is already implemented in the package for a number of different file types, and one of these defaults will be picked automatically based on the extension of the input file name. If the extension can not be mapped to any of the existing import function, an error is raised asking for a user-defined import function via this argument. Currently the following file types can be imported with the default functions: \code{gff}, \code{gff1}, \code{gff2}, \code{gff3}, \code{bed}, \code{bam}.} \item{stream}{A logical flag indicating that the user-provided import function can deal with indexed files and knows how to process the additional \code{selection} argument when accessing the data on disk. This causes the constructor to return a \code{ReferenceAnnotationTrack} object which will grab the necessary data on the fly during each plotting operation.} \item{\dots}{Additional items which will all be interpreted as further display parameters. See \code{\link{settings}} and the "Display Parameters" section below for details.} } \value{ The return value of the constructor function is a new object of class \code{AnnotationTrack} or of class \code{DetailsAnnotationTrack}, depending on the constructor arguments. Typically the user will not have to be troubled with this distinction and can rely on the constructor to make the right choice. } \section{Details}{ The \code{DetailsAnnotationTrack} class directly extends \code{AnnotationTrack}. The purpose of this track type is to add an arbitrarily detailed plot section (typically consisting of additional quantitative data) for each range element of an \code{AnnotationTrack}. This allows a locus wide view of annotation elements together with any kind of details per feature or element that may for instance provide insight on how some complex quantitative measurements change accoring to their position in a locus. If the quantitative data is too complex for a \code{DataTrack} e.g. because it requires extra space or a trellis-like representation, a \code{DetailsAnnotationTrack} can be used instead. Example: An \code{AnnotationTrack} shows the positions of a number of probes from a microarray, and you want a histogram of the signal intensity distribution derived from all samples at each of these probe location. Another example usage would be to show for each element of an \code{AnnotationTrack} an xy-plot of the signal against some clinical measurement such as blood preassure. The limitation for applications of this type of track is basically only the available space of the device you are plotting to. This flexibility is possible by utilizing a simple function model to perform all the detailed plotting. The functionality of this plotting function \code{fun} is totally up to the user, and the function environment is prepared in a way that all necessary information about the plotted annotation feature is available. To restrict the details section to only selected number of annotation features one can supply another function \code{selectFun}, which decides for each feature separatly whether details are available or not. Finally, an arbitrary number of additional arguments can be passed on to these two function by means of the \code{detailsFunArgs} display parameter. This is expected to be a named list, and all list elements are passed along to the plotting function \code{fun} and to the selector function \code{selectFun} as additional named arguments. Please note that some argument names like \code{start}, \code{end} or \code{identifier} are reserved and can not be used in the \code{detailsFunArgs} list. For examples of plotting functions, see the 'Examples' section. } \section{Slots}{ \describe{ \item{\code{stacking}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{stacks}:}{Object of class \code{"environment"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{fun}:}{A function that is being called for each \code{AnnotationTrack} element to plot details.} \item{\code{selectFun}:}{A function that is being called for each \code{AnnotationTrack} element to decide whether details need to be plotted.} } Additional display parameters are being inherited from the \code{\linkS4class{StackedTrack}} parent class. } \section{Extends}{ Class \code{"\linkS4class{StackedTrack}"}, directly. Class \code{"\linkS4class{RangeTrack}"}, by class "StackedTrack", distance 2. Class \code{"\linkS4class{GdObject}"}, by class "StackedTrack", distance3. \code{DetailsAnnotationTrack} directly extends \code{AnnotationTrack}. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{AnnotationTrack} or \code{DetailsAnnotationTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{group}{\code{signature(GdObject="AnnotationTrack")}: extract the group membership for all track items. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{group<-}{\code{signature(GdObject="AnnotationTrack", value="character")}: replace the grouping information for track items. The replacement value must be a factor of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{group<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{group(obj) <- c("a", "a", "b", "c", "a")}} } } \item{identifier}{\code{signature(GdObject="AnnotationTrack")}: return track item identifiers. Depending on the setting of the optional argument \code{lowest}, these are either the group identifiers or the individual item identifiers. \emph{Usage:} \code{identifier(GdObject, lowest=FALSE)} \emph{Additional Arguments:} \describe{ \item{}{\code{lowest}: return the lowest-level identifier, i.e., the item IDs, or the higher level group IDs which do not have to be unqiue.} } \emph{Examples:} \describe{ \item{}{\code{identifier(obj)}} \item{}{\code{identifier(obj, lowest=TRUE)}} } } \item{identifier<-}{\code{signature(GdObject="AnnotationTrack", value="character")}: Set the track item identifiers. The replacement value has to be a character vector of appropriate length. This always replaces the group-level identifiers, so essentially it is similar to \code{groups<-}. \emph{Usage:} \code{identifier<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{identifier(obj) <- c("foo", "bar")}} } } } \bold{\emph{Internal methods:}} \describe{ \item{coerce}{\code{signature(from="AnnotationTrack", to="UCSCData")}: coerce to a \code{UCSCData} object for export to the UCSC genome browser. \emph{Examples:} \describe{ \item{}{\code{as(obj, "UCSCData")}} } } \item{collapseTrack}{\code{signature(GdObject="AnnotationTrack")}: preprocess the track before plotting. This will collapse overlapping track items based on the available resolution and increase the width and height of all track objects to a minimum value to avoid rendering issues. See \code{\link{collapsing}} for details. \emph{Usage:} \code{collapseTrack(GdObject, diff=.pxResolution(coord="x"))} \emph{Additional Arguments:} \describe{ \item{}{\code{diff}: the minimum pixel width to display, everything below that will be inflated to a width of \code{diff}.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::collapseTrack(obj)}} } } \item{drawGD}{\code{signature(GdObject="AnnotationTrack")}: plot the object to a graphics device. The return value of this method is the input object, potentially updated during the plotting operation. Internally, there are two modes in which the method can be called. Either in 'prepare' mode, in which case no plotting is done but the object is preprocessed based on the available space, or in 'plotting' mode, in which case the actual graphical output is created. Since subsetting of the object can be potentially costly, this can be switched off in case subsetting has already been performed before or is not necessary. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj)}} \item{}{\code{Gviz:::drawGD(obj, minBase=1, maxBase=100)}} \item{}{\code{Gviz:::drawGD(obj, prepare=TRUE, subset=FALSE)}} } } \item{drawGrid}{\code{signature(GdObject="AnnotationTrack")}: superpose a grid on top of a track. \emph{Usage:} \code{drawGrid(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, draw grid within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj, from=10, to=100)}} } } \item{setStacks}{\code{signature(GdObject="AnnotationTrack")}: recompute the stacks based on the available space and on the object's track items and stacking settings. \emph{Usage:} \code{setStacks(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, compute stacking within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::setStacks(obj, from=1, to=100)}} } } \item{initialize}{\code{signature(.Object="AnnotationTrack")}: initialize the object } \item{show}{\code{signature(object="AnnotationTrack")}: show a human-readable summary of the object } } \bold{\emph{Inherited methods:}} \describe{ \item{stacking}{\code{signature(GdObject="AnnotationTrack")}: return the current stacking type. \emph{Usage:} \code{stacking(GdObject)} \emph{Examples:} \describe{ \item{}{\code{stacking(obj)}} } } \item{stacking<-}{\code{signature(GdObject="AnnotationTrack", value="character")}: set the object's stacking type to one in \code{c(hide, dense, squish, pack,full)}. \emph{Usage:} \code{stacking<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{stacking(obj) <- "squish" }} } } \item{stacks}{\code{signature(GdObject="AnnotationTrack")}: return the stack indices for each track item. \emph{Usage:} \code{stacks(GdObject)} \emph{Examples:} \describe{ \item{}{\code{Gviz:::stacks(obj)}} } } \item{[}{\code{signature(x="AnnotationTrack", i="ANY", j="ANY", drop="ANY")}: subset the items in the \code{AnnotationTrack} object. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices, \code{j} is ignored.} \item{}{\code{drop}: argument is ignored.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{chromosome}{\code{signature(GdObject="AnnotationTrack")}: return the currently active chromosome for which the track is defined. For consistancy with other Bioconductor packages, the \code{isActiveSeq} alias is also provided. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="AnnotationTrack")}: replace the value of the track's active chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one, unless \code{options(ucscChromosomeNames=FALSE)}. For consistancy with other Bioconductor packages, the \code{isActiveSeq<-} alias is also provided. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="AnnotationTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="AnnotationTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="AnnotationTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{feature}{\code{signature(GdObject="AnnotationTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="AnnotationTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{AnnotationTrack}. See \code{\link{grouping}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="AnnotationTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="AnnotationTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="AnnotationTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="AnnotationTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="AnnotationTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{split}{\code{signature(x="AnnotationTrack")}: split a \code{AnnotationTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of objects of the same class as the input object, all inheriting from class \code{AnnotationTrack}. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{strand}{\code{signature(x="AnnotationTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="AnnotationTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="AnnotationTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{coerce}{\code{signature(from="AnnotationTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{subset}{\code{signature(x="AnnotationTrack")}: subset a \code{AnnotationTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20, sort=TRUE)}} } } \item{displayPars}{\code{signature(x="AnnotationTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="AnnotationTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="AnnotationTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="AnnotationTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="AnnotationTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="AnnotationTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{AnnotationTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="AnnotationTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{AnnotationTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{names}{\code{signature(x="AnnotationTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="AnnotationTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="AnnotationTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="AnnotationTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{AnnotationTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{arrowHeadMaxWidth=40}: Numeric scalar. The maximum width of the arrow head in pixels if \code{shape} is \code{arrow}.} \item{}{\code{arrowHeadWidth=30}: Numeric scalar. The width of the arrow head in pixels if \code{shape} is \code{fixedArrow}.} \item{}{\code{cex=1}: Numeric scalar. The font expansion factor for item identifiers.} \item{}{\code{cex.group=0.6}: Numeric scalar. The font expansion factor for the group-level annotation.} \item{}{\code{col="transparent"}: Character or integer scalar. The border color for all track items.} \item{}{\code{col.line="darkgray"}: Character scalar. The color used for connecting lines between grouped items. Defaults to a light gray, but if set to \code{NULL} the same color as for the first item in the group is used.} \item{}{\code{featureAnnotation=NULL}: Character scalar. Add annotation information to the individual track elements. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{id}. Only works if \code{showFeatureId} is not \code{FALSE}.} \item{}{\code{fill="lightblue"}: Character or integer scalar. The fill color for untyped items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{fontcolor.group="#808080"} \code{(Aliases: fontcolor.group)}: Character or integer scalar. The font color for the group-level annotation.} \item{}{\code{fontcolor.item="white"} \code{(Aliases: fontcolor.item)}: Character or integer scalar. The font color for item identifiers.} \item{}{\code{fontface.group=2}: Numeric scalar. The font face for the group-level annotation.} \item{}{\code{fontfamily.group="sans"}: Character scalar. The font family for the group-level annotation.} \item{}{\code{fontsize.group=12}: Numeric scalar. The font size for the group-level annotation.} \item{}{\code{groupAnnotation=NULL}: Character scalar. Add annotation information as group labels. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{group}. Only works if \code{showId} is not \code{FALSE}.} \item{}{\code{just.group="left"} \code{(Aliases: just.group)}: Character scalar. the justification of group labels. Either \code{left}, \code{right}, \code{above} or \code{below}.} \item{}{\code{lex=1}: Numeric scalar. The line expansion factor for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for item identifiers.} \item{}{\code{lty="solid"}: Character or integer scalar. The line type for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lwd=1}: Integer scalar. The line width for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{mergeGroups=FALSE}: Logical scalar. Merge fully overlapping groups if \code{collapse==TRUE}.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details. For feathered bars indicating the strandedness of grouped items this also controls the height of the arrow feathers.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{rotation=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{rotation.group=0}: Numeric scalar. The degree of text rotation for group labels.} \item{}{\code{rotation.item=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{shape="arrow"}: Character scalar. The shape in which to display the track items. Currently only \code{box}, \code{arrow}, \code{fixedArrow}, \code{ellipse}, and \code{smallArrow} are implemented.} \item{}{\code{showFeatureId=FALSE}: Logical scalar. Control whether to plot the individual track item identifiers.} \item{}{\code{showId=FALSE}: Logical scalar. Control whether to annotate individual groups.} \item{}{\code{showOverplotting=FALSE}: Logical scalar. Use a color gradient to show the amount of overplotting for collapsed items. This implies that \code{collapse==TRUE}} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} } \code{DetailsAnnotationTrack} adds the following additional display parameters: \describe{ \item{}{\code{details.minWidth=100}: Numeric scalar. The minium width in pixels for a details panel, if less space is available no details are plotted.} \item{}{\code{details.ratio=Inf}: Numeric scalar. By default, the plotting method tries to fill all available space of the details panel tiles. Depending on the dimensions of your plot and the number of tiles this may lead to fairly stretched plots. Restricting the ration of width over height can help to fine tune for somewhat more sane graphics in these cases. Essentially this adds some white space in between individual tiles to force the desired ratio. Together with the \code{size} and \code{details.size} arguments, which control the vertical extension of the whole track and of the details section, this allows for some fairly generic resizing of the tiles.} \item{}{\code{details.size=0.5}: Numeric scalar. The fraction of vertical space of the track used for the details section.} \item{}{\code{detailsBorder.col="darkgray"}: Character or integer scalar. Line color of the border.} \item{}{\code{detailsBorder.fill="transparent"}: Character or integer scalar. Background color of the border.} \item{}{\code{detailsBorder.lty="solid"}: Character or integer scalar. Line type of the border around each details panel.} \item{}{\code{detailsBorder.lwd=1}: Integer scalar. Line width of the border.} \item{}{\code{detailsConnector.cex=1}: Numeric scalar. Relative size of the connector's end points.} \item{}{\code{detailsConnector.col="darkgray"}: Character or integer scalar. Color of the line connecting the \code{AnnotstionTrack} item with its details panel.} \item{}{\code{detailsConnector.lty="dashed"}: Character or integer scalar. Type of connecting line.} \item{}{\code{detailsConnector.lwd=1}: Integer scalar. Line width of the connector.} \item{}{\code{detailsConnector.pch=20}: Integer scalar. Type of the connector's ends.} \item{}{\code{detailsFunArgs=character(0)}: List.Additional arguments that get passed on the the details plotting function.} \item{}{\code{groupDetails=FALSE}: Logial scalar. Plot details for feature groups rather than for individual features.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{AnnotationTrack} objects. \describe{ \item{}{\code{\linkS4class{StackedTrack}}: \describe{ \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} } } \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"} \code{(Aliases: fontcolor.title)}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90} \code{(Aliases: rotation.title)}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne, Arne Mueller} \seealso{ \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GRanges}} \code{\linkS4class{GRangesList}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\linkS4class{StackedTrack}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \examples{ ## An empty object AnnotationTrack() ## Construct from individual arguments st <- c(2000000, 2070000, 2100000, 2160000) ed <- c(2050000, 2130000, 2150000, 2170000) str <- c("-", "+", "-", "-") gr <- c("Group1","Group2","Group1", "Group3") annTrack <- AnnotationTrack(start=st, end=ed, strand=str, chromosome=7, genome="hg19", feature="test", group=gr, id=paste("annTrack item", 1:4), name="generic annotation", stacking="squish") ## Or from a data.frame df <- data.frame(start=st, end=ed, strand=str, id=paste("annTrack item", 1:4), feature="test", group=gr) annTrack <- AnnotationTrack(range=df, genome="hg19", chromosome=7, name="generic annotation", stacking="squish") ## Or from a GRanges object gr <- GRanges(seqnames="chr7", range=IRanges(start=df$start, end=df$end), strand=str) genome(gr) <- "hg19" mcols(gr) <- df[,-(1:3)] annTrack <- AnnotationTrack(range=gr, name="generic annotation", stacking="squish") ## Finally from a GRangesList grl <- split(gr, values(gr)$group) AnnotationTrack(grl) \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(annTrack) <- list(fontfamily=font, fontfamily.title=font) } } ## Plotting plotTracks(annTrack) ## Track names names(annTrack) names(annTrack) <- "foo" plotTracks(annTrack) ## Subsetting and splitting subTrack <- subset(annTrack, to=2155000) length(subTrack) subTrack[1:2] split(annTrack, c(1,2,1,2)) ## Accessors start(annTrack) end(annTrack) width(annTrack) position(annTrack) width(subTrack) <- width(subTrack)+1000 strand(annTrack) strand(subTrack) <- "-" chromosome(annTrack) chromosome(subTrack) <- "chrX" genome(annTrack) genome(subTrack) <- "mm9" range(annTrack) ranges(annTrack) ## Annotation identifier(annTrack) identifier(annTrack, "lowest") identifier(subTrack) <- "bar" feature(annTrack) feature(subTrack) <- "foo" values(annTrack) ## Grouping group(annTrack) group(subTrack) <- "Group 1" chromosome(subTrack) <- "chr7" plotTracks(subTrack) ## Stacking stacking(annTrack) stacking(annTrack) <- "dense" plotTracks(annTrack) ## coercion as(annTrack, "data.frame") as(annTrack, "UCSCData") ## HTML image map coords(annTrack) tags(annTrack) annTrack <- plotTracks(annTrack)$foo coords(annTrack) tags(annTrack) ## DetailsAnnotationTrack library(lattice) # need to use grid grapics ## generate two random distributions per row (probe/feature) ## the difference between the distributions increases from probe 1 to 4 m <- matrix(c(rgamma(400, 1)), ncol=100) m[,51:100] <- m[,51:100] + 0:3 ## rownames must be accessible by AnnotationTrack element identifier rownames(m) <- identifier(annTrack, "lowest") ## create a lattice density plot for the values (signals) of the two groups ## as the chart must be placed into a pre-set grid view port we have to use ## print without calling plot.new! Note, use a common prefix for all lattice. ## Avoid wasting space by removing y-axis decorations. ## Note, in this example 'm' will be found in the environment the 'details' ## function is defined in. To avoid overwriting 'm' you should use a closure ## or environment to access 'm'. details <- function(identifier, ...) { d = data.frame(signal=m[identifier,], group=rep(c("grp1","grp2"), each=50)) print(densityplot(~signal, group=group, data=d, main=identifier, scales=list(draw=FALSE, x=list(draw=TRUE)), ylab="", xlab="", ), newpage=FALSE, prefix="plot") } deTrack <- AnnotationTrack(range=gr, genome="hg19", chromosome=7, name="generic annotation with details per entry", stacking="squish", fun=details, details.ratio=1) plotTracks(deTrack) set.seed(1234) deTrack <- AnnotationTrack(range=gr, genome="hg19", chromosome=7, name="generic annotation with details per entry", stacking="squish",fun=details, details.ratio=1, selectFun=function(...){sample(c(FALSE, TRUE), 1)}) plotTracks(deTrack) } \keyword{classes} Gviz/man/BiomartGeneRegionTrack-class.Rd0000644000175400017540000014071113175714140021220 0ustar00biocbuildbiocbuild\name{BiomartGeneRegionTrack-class} \Rdversion{1.1} \docType{class} \alias{BiomartGeneRegionTrack-class} \alias{BiomartGeneRegionTrack} \alias{initialize,BiomartGeneRegionTrack-method} \alias{subset,BiomartGeneRegionTrack-method} \title{BiomartGeneRegionTrack class and methods} \description{ A class to hold gene model data for a genomic region fetched dynamically from EBI's Biomart Ensembl data source. } \section{Objects from the class}{ Objects can be created using the constructor function \code{BiomartGeneRegionTrack}. } \usage{ BiomartGeneRegionTrack(start, end, biomart, chromosome, strand, genome, stacking="squish", filters=list(), featureMap=NULL, name="BiomartGeneRegionTrack", symbol=NULL, gene=NULL, entrez=NULL, transcript=NULL, ...) } \arguments{ \item{start}{An integer scalar with the genomic start coordinates for the gene model range.} \item{end}{An integer scalar with the genomic end coordinates for the gene model range.} \item{biomart}{An optional \code{\linkS4class{Mart}} object providing access to the EBI Biomart webservice. As default the appropriate Ensembl data source is selected based on the provided genome and chromosome.} \item{strand}{Character scalar, the strand for which to fetch gene information from Biomart. One in \code{+}, \code{-}, or \code{+-}.} \item{chromosome}{The chromosome on which the track's genomic ranges are defined. A valid UCSC chromosome identifier. Please note that at this stage only syntactic checking takes place, i.e., the argument value needs to be a single integer, numeric character or a character of the form \code{chrx}, where \code{x} may be any possible string. The user has to make sure that the respective chromosome is indeed defined for the the track's genome.} \item{genome}{The genome on which the track's ranges are defined. Usually this is a valid UCSC genome identifier, however this is not being formally checked at this point. If no mapping from genome to Biomart Ensembl data source is possible, the \code{biomart} argument needs to be provided by the user.} \item{stacking}{The stacking type for overlapping items of the track. One in \code{c(hide, dense, squish, pack,full)}. Currently, only hide (don't show the track items, squish (make best use of the available space) and dense (no stacking at all) are implemented.} \item{filters}{A list of additional filters to be applied in the Biomart query. See \code{\link{getBM}} for details.} \item{featureMap}{Named character vector or list to map between the fields in the Biomart data base and the features as they are used to construct the track. If multiple values are provided in a single list item, the package will use the first one that is defined in the selected Biomart.} \item{name}{Character scalar of the track's name used in the title panel when plotting.} \item{symbol,transcript,gene,entrez}{Character vector giving one or several gene symbols, Ensembl transcript identifiers, Ensembl gene identifiers, or ENTREZ gene identifiers, respectively. The genomic locus of their gene model will be fetch from Biomart instead of providing explicit start and end coordinates.} \item{\dots}{Additional items which will all be interpreted as further display parameters. See \code{\link{settings}} and the "Display Parameters" section below for details.} } \details{ A track containing all gene models in a particular region as fetched from EBI's Biomart service. Usually the user does not have to take care of the Biomart connection, which will be established automatically based on the provided genome and chromosome information. However, for full flexibility a valid \code{\linkS4class{Mart}} object may be passed on to the constructor. Please note that this assumes a connection to one of the Ensembl gene data sources, mapping the available query data back to the internal object slots. } \value{ The return value of the constructor function is a new object of class \code{BiomartGeneRegionTrack}. } \section{Slots}{ \describe{ \item{\code{biomart}:}{Object of class \code{"MartOrNULL"}, the connection to the Ensembl Biomart webservice. } \item{\code{filter}:}{Object of class \code{"list"}, additional filters for the data base query. } \item{\code{start}:}{Object of class \code{"numeric"}, inherited from class \code{\linkS4class{GeneRegionTrack}}. The start coordinates of the annotation range. The coorrdinates for the individual gene model items are stored in the \code{range} slot.} \item{\code{end}:}{Object of class \code{"numeric"}, inherited from class \code{\linkS4class{GeneRegionTrack}}. The end coordinates of the annotation range. The corrdinates for the individual gene model items are stored in the \code{range} slot.} \item{\code{stacking}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{stacks}:}{Object of class \code{"environment"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{GeneRegionTrack}"}, directly. Class \code{"\linkS4class{AnnotationTrack}"}, by class "GeneRegionTrack", distance 2. Class \code{"\linkS4class{StackedTrack}"}, by class "GeneRegionTrack", distance 3. Class \code{"\linkS4class{RangeTrack}"}, by class "GeneRegionTrack", distance 4. Class \code{"\linkS4class{GdObject}"}, by class "GeneRegionTrack", distance 5. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{BiomartGeneRegionTrack}. \describe{ \bold{\emph{Internal methods:}} \item{initialize}{\code{signature(.Object = "BiomartGeneRegionTrack")}: initialize the object. } } \bold{\emph{Inherited methods:}} \describe{ \item{group}{\code{signature(gdObject="BiomartGeneRegionTrack")}: extract the group membership for all track items. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{group<-}{\code{signature(gdObject="BiomartGeneRegionTrack", value="character")}: replace the grouping information for track items. The replacement value must be a factor of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{group<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{group(obj) <- c("a", "a", "b", "c", "a")}} } } \item{identifier}{\code{signature(gdObject="BiomartGeneRegionTrack")}: return track item identifiers. Depending on the setting of the optional argument \code{lowest}, these are either the group identifiers or the individual item identifiers. \emph{Usage:} \code{identifier(GdObject, lowest=FALSE)} \emph{Additional Arguments:} \describe{ \item{}{\code{lowest}: return the lowest-level identifier, i.e., the item IDs, or the higher level group IDs which do not have to be unqiue.} } \emph{Examples:} \describe{ \item{}{\code{identifier(obj, lowest=FALSE)}} } } \item{identifier<-}{\code{signature(gdObject="BiomartGeneRegionTrack", value="character")}: Set the track item identifiers. The replacement value has to be a character vector of appropriate length. This always replaces the group-level identifiers, so essentially it is similar to \code{groups<-}. \emph{Usage:} \code{identifier<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{identifier(obj) <- c("foo", "bar")}} } } \item{exon}{\code{signature(GdObject="BiomartGeneRegionTrack")}: Extract the exon identifiers for all exons in the gene models. \emph{Usage:} \code{exon(GdObject)} \emph{Examples:} \describe{ \item{}{\code{exon(obj)}} } } \item{exon<-}{\code{signature(GdObject="BiomartGeneRegionTrack", value="character")}: replace the exon identifiers for all exons in the gene model. The replacement value must be a character of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{exon<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{exon(obj) <- paste("Exon", 1:5)}} } } \item{gene}{\code{signature(GdObject="BiomartGeneRegionTrack")}: Extract the gene identifiers for all gene models. \emph{Usage:} \code{gene(GdObject)} \emph{Examples:} \describe{ \item{}{\code{gene(obj)}} } } \item{gene<-}{\code{signature(GdObject="BiomartGeneRegionTrack", value="character")}: replace the gene identifiers for all gene models. The replacement value must be a character of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{gene<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{gene(obj) <- paste("Gene", LETTERS[1:5])}} } } \item{symbol}{\code{signature(GdObject="BiomartGeneRegionTrack")}: Extract the human-readble gene symbol for all gene models. \emph{Usage:} \code{symbol(GdObject)} \emph{Examples:} \describe{ \item{}{\code{symbol(obj)}} } } \item{symbol<-}{\code{signature(GdObject="BiomartGeneRegionTrack", value="character")}: replace the human-readable gene symbol for all gene models. The replacement value must be a character of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{gene<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{symbol(obj) <- letters[1:5]}} } } \item{transcript}{\code{signature(GdObject="BiomartGeneRegionTrack")}: Extract the transcript identifiers for all transcripts in the gene models. \emph{Usage:} \code{transcript(GdObject)} \emph{Examples:} \describe{ \item{}{\code{transcript(obj)}} } } \item{transcript<-}{\code{signature(GdObject="BiomartGeneRegionTrack", value="character")}: replace the transcript identifiers for all transcripts in the gene model. The replacement value must be a character of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{transcript<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{transcript(obj) <- paste("Exon", 1:5)}} } } } \emph{Internal methods:} \describe{ \item{coerce}{\code{signature(from="BiomartGeneRegionTrack", to="UCSCData")}: coerce to a \code{UCSCData} object for export to the UCSC genome browser. \emph{Examples:} \describe{ \item{}{\code{as(obj, "UCSCData")}} } } \item{collapseTrack}{\code{signature(GdObject="BiomartGeneRegionTrack")}: preprocess the track before plotting. This will collapse overlapping track items based on the available resolution and increase the width and height of all track objects to a minimum value to avoid rendering issues. See \code{\link{collapsing}} for details. \emph{Usage:} \code{collapseTrack(GdObject, diff=.pxResolution(coord="x"))} \emph{Additional Arguments:} \describe{ \item{}{\code{diff}: the minimum pixel width to display, everything below that will be inflated to a width of \code{diff}.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::collapseTrack(obj)}} } } \item{show}{\code{signature(object="BiomartGeneRegionTrack")}: show a human-readable summary of the object } \item{drawGD}{\code{signature(GdObject="BiomartGeneRegionTrack")}: plot the object to a graphics device. The return value of this method is the input object, potentially updated during the plotting operation. Internally, there are two modes in which the method can be called. Either in 'prepare' mode, in which case no plotting is done but the object is preprocessed based on the available space, or in 'plotting' mode, in which case the actual graphical output is created. Since subsetting of the object can be potentially costly, this can be switched off in case subsetting has already been performed before or is not necessary. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj)}} \item{}{\code{Gviz:::drawGD(obj, minBase=1, maxBase=100)}} \item{}{\code{Gviz:::drawGD(obj, prepare=TRUE, subset=FALSE)}} } } \item{drawGrid}{\code{signature(GdObject="BiomartGeneRegionTrack")}: superpose a grid on top of a track. \emph{Usage:} \code{drawGrid(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, draw grid within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj, from=10, to=100)}} } } \item{setStacks}{\code{signature(GdObject="BiomartGeneRegionTrack")}: recompute the stacks based on the available space and on the object's track items and stacking settings. \emph{Usage:} \code{setStacks(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, compute stacking within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::setStacks(obj, from=1, to=100)}} } } \item{stacking}{\code{signature(GdObject="BiomartGeneRegionTrack")}: return the current stacking type. \emph{Usage:} \code{stacking(GdObject)} \emph{Examples:} \describe{ \item{}{\code{stacking(obj)}} } } \item{stacking<-}{\code{signature(GdObject="BiomartGeneRegionTrack", value="character")}: set the object's stacking type to one in \code{c(hide, dense, squish, pack,full)}. \emph{Usage:} \code{stacking<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{stacking(obj) <- "squish" }} } } \item{stacks}{\code{signature(GdObject="BiomartGeneRegionTrack")}: return the stack indices for each track item. \emph{Usage:} \code{stacks(GdObject)} \emph{Examples:} \describe{ \item{}{\code{Gviz:::stacks(obj)}} } } \item{[}{\code{signature(x="BiomartGeneRegionTrack", i="ANY", j="ANY", drop="ANY")}: subset the items in the \code{BiomartGeneRegionTrack} object. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices, \code{j} is ignored.} \item{}{\code{drop}: argument is ignored.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{chromosome}{\code{signature(GdObject="BiomartGeneRegionTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="BiomartGeneRegionTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="BiomartGeneRegionTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="BiomartGeneRegionTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="BiomartGeneRegionTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{feature}{\code{signature(GdObject="BiomartGeneRegionTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="BiomartGeneRegionTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{BiomartGeneRegionTrack}. See \code{\link{grouping}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="BiomartGeneRegionTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="BiomartGeneRegionTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="BiomartGeneRegionTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="BiomartGeneRegionTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="BiomartGeneRegionTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{split}{\code{signature(x="BiomartGeneRegionTrack")}: split a \code{BiomartGeneRegionTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of objects of the same class as the input object, all inheriting from class \code{BiomartGeneRegionTrack}. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{strand}{\code{signature(x="BiomartGeneRegionTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="BiomartGeneRegionTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="BiomartGeneRegionTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{coerce}{\code{signature(from="BiomartGeneRegionTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{subset}{\code{signature(x="BiomartGeneRegionTrack")}: subset a \code{BiomartGeneRegionTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20, sort=TRUE)}} } } \item{displayPars}{\code{signature(x="BiomartGeneRegionTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="BiomartGeneRegionTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="BiomartGeneRegionTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="BiomartGeneRegionTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="BiomartGeneRegionTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="BiomartGeneRegionTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{BiomartGeneRegionTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="BiomartGeneRegionTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{BiomartGeneRegionTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{names}{\code{signature(x="BiomartGeneRegionTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="BiomartGeneRegionTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="BiomartGeneRegionTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="BiomartGeneRegionTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{BiomartGeneRegionTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{C_segment="burlywood4"}: Character or integer scalar. Fill color for annotation objects of type 'C_segment'.} \item{}{\code{D_segment="lightblue"}: Character or integer scalar. Fill color for annotation objects of type 'C_segment'.} \item{}{\code{J_segment="dodgerblue2"}: Character or integer scalar. Fill color for annotation objects of type 'C_segment'.} \item{}{\code{miRNA="cornflowerblue"}: Character or integer scalar. Fill color for annotation objects of type 'L_segment'.} \item{}{\code{miRNA_pseudogene="cornsilk"}: Character or integer scalar. Fill color for annotation objects of type 'miRNA_pseudogene'.} \item{}{\code{misc_RNA="cornsilk3"}: Character or integer scalar. Fill color for annotation objects of type 'misc_RNA'.} \item{}{\code{misc_RNA_pseudogene="cornsilk4"}: Character or integer scalar. Fill color for annotation objects of type 'misc_RNA_pseudogene'.} \item{}{\code{Mt_rRNA="yellow"}: Character or integer scalar. Fill color for annotation objects of type 'Mt_rRNA'.} \item{}{\code{Mt_tRNA="darkgoldenrod"}: Character or integer scalar. Fill color for annotation objects of type 'Mt_tRNA'.} \item{}{\code{Mt_tRNA_pseudogene="darkgoldenrod1"}: Character or integer scalar. Fill color for annotation objects of type 'Mt_tRNA_pseudogene'.} \item{}{\code{protein_coding="#FFD58A"}: Character or integer scalar. Fill color for annotation objects of type 'protein_coding'.} \item{}{\code{pseudogene="brown1"}: Character or integer scalar. Fill color for annotation objects of type 'pseudogene'.} \item{}{\code{retrotransposed="blueviolet"}: Character or integer scalar. Fill color for annotation objects of type 'retrotransposed'.} \item{}{\code{rRNA="darkolivegreen1"}: Character or integer scalar. Fill color for annotation objects of type 'rRNA'.} \item{}{\code{rRNA_pseudogene="darkolivegreen"}: Character or integer scalar. Fill color for annotation objects of type 'rRNA_pseudogene'.} \item{}{\code{scRNA="gold4"}: Character or integer scalar. Fill color for annotation objects of type 'scRNA'.} \item{}{\code{scRNA_pseudogene="darkorange2"}: Character or integer scalar. Fill color for annotation objects of type 'scRNA_pseudogene'.} \item{}{\code{snoRNA="cyan"}: Character or integer scalar. Fill color for annotation objects of type 'snoRNA'.} \item{}{\code{snoRNA_pseudogene="cyan2"}: Character or integer scalar. Fill color for annotation objects of type 'snoRNA_pseudogene'.} \item{}{\code{snRNA="coral"}: Character or integer scalar. Fill color for annotation objects of type 'snRNA'.} \item{}{\code{snRNA_pseudogene="coral3"}: Character or integer scalar. Fill color for annotation objects of type 'snRNA_pseudogene'.} \item{}{\code{tRNA_pseudogene="antiquewhite3"}: Character or integer scalar. Fill color for annotation objects of type 'tRNA_pseudogene'.} \item{}{\code{utr3="#FFD58A"}: FIXME: PLEASE ADD PARAMETER DESCRIPTION.} \item{}{\code{utr5="#FFD58A"}: FIXME: PLEASE ADD PARAMETER DESCRIPTION.} \item{}{\code{V_segment="aquamarine"}: Character or integer scalar. Fill color for annotation objects of type 'V_segment'.} \item{}{\code{verbose=FALSE}: Logical scalar. Report data loading events from Bioamart or retrieval from cache.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{BiomartGeneRegionTrack} objects. \describe{ \item{}{\code{\linkS4class{GeneRegionTrack}}: \describe{ \item{}{\code{arrowHeadMaxWidth=20}: Numeric scalar. The maximum width of the arrow head in pixels if \code{shape} is \code{arrow}.} \item{}{\code{arrowHeadWidth=10}: Numeric scalar. The width of the arrow head in pixels if \code{shape} is \code{fixedArrow}.} \item{}{\code{col=NULL}: Character or integer scalar. The border color for all track items. Defaults to using the same color as in \code{fill}, also taking into account different track \code{features}.} \item{}{\code{collapseTranscripts=FALSE}: Logical or character scalar. Can be one in \code{gene}, \code{longest}, \code{shortest} or \code{meta}. Merge all transcripts of the same gene into one single gene model. In the case of \code{gene} (or \code{TRUE}), this will only keep the start location of the first exon and the end location of the last exon from all transcripts of the gene. For \code{shortest} and \code{longest}, only the longest or shortest transcript model is retained. For \code{meta}, a meta-transcript containing the union of all exons is formed (essentially identical to the operation \code{reduce(geneModel)}).} \item{}{\code{exonAnnotation=NULL}: Character scalar. Add annotation information to the individual exon models. This can be a value in \code{symbol}, \code{gene}, \code{transcript}, \code{exon} or \code{feature}. Defaults to \code{exon}. Only works if \code{showExonId} is not \code{FALSE}.} \item{}{\code{fill="orange"}: Character or integer scalar. The fill color for untyped items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{min.distance=0}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details. Note that a value larger than 0 may lead to UTR regions being merged to CDS regions, which in most cases is not particularly useful.} \item{}{\code{shape=c("smallArrow", "box")}: Character scalar. The shape in which to display the track items. Currently only \code{box}, \code{arrow}, \code{ellipse}, and \code{smallArrow} are implemented.} \item{}{\code{showExonId=NULL}: Logical scalar. Control whether to plot the individual exon identifiers.} \item{}{\code{thinBoxFeature=c("utr", "ncRNA", "utr3", "utr5", "3UTR", "5UTR", "miRNA", "lincRNA", "three_prime_UTR", "five_prime_UTR")}: Character vector. A listing of feature types that should be drawn with thin boxes. Typically those are non-coding elements.} \item{}{\code{transcriptAnnotation=NULL} \code{(Aliases: transcriptAnnotation)}: Character scalar. Add annotation information as transcript labels. This can be a value in \code{symbol}, \code{gene}, \code{transcript}, \code{exon} or \code{feature}. Defaults to \code{symbol}. Only works if \code{showId} is not \code{FALSE}.} } } \item{}{\code{\linkS4class{AnnotationTrack}}: \describe{ \item{}{\code{cex=1}: Numeric scalar. The font expansion factor for item identifiers.} \item{}{\code{cex.group=0.6}: Numeric scalar. The font expansion factor for the group-level annotation.} \item{}{\code{col.line="darkgray"}: Character scalar. The color used for connecting lines between grouped items. Defaults to a light gray, but if set to \code{NULL} the same color as for the first item in the group is used.} \item{}{\code{featureAnnotation=NULL}: Character scalar. Add annotation information to the individual track elements. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{id}. Only works if \code{showFeatureId} is not \code{FALSE}.} \item{}{\code{fontcolor.group="#808080"} \code{(Aliases: fontcolor.group)}: Character or integer scalar. The font color for the group-level annotation.} \item{}{\code{fontcolor.item="white"} \code{(Aliases: fontcolor.item)}: Character or integer scalar. The font color for item identifiers.} \item{}{\code{fontface.group=2}: Numeric scalar. The font face for the group-level annotation.} \item{}{\code{fontfamily.group="sans"}: Character scalar. The font family for the group-level annotation.} \item{}{\code{fontsize.group=12}: Numeric scalar. The font size for the group-level annotation.} \item{}{\code{groupAnnotation=NULL}: Character scalar. Add annotation information as group labels. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{group}. Only works if \code{showId} is not \code{FALSE}.} \item{}{\code{just.group="left"} \code{(Aliases: just.group)}: Character scalar. the justification of group labels. Either \code{left}, \code{right}, \code{above} or \code{below}.} \item{}{\code{lex=1}: Numeric scalar. The line expansion factor for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for item identifiers.} \item{}{\code{lty="solid"}: Character or integer scalar. The line type for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lwd=1}: Integer scalar. The line width for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{mergeGroups=FALSE}: Logical scalar. Merge fully overlapping groups if \code{collapse==TRUE}.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details. For feathered bars indicating the strandedness of grouped items this also controls the height of the arrow feathers.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{rotation=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{rotation.group=0}: Numeric scalar. The degree of text rotation for group labels.} \item{}{\code{rotation.item=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{showFeatureId=FALSE}: Logical scalar. Control whether to plot the individual track item identifiers.} \item{}{\code{showId=FALSE}: Logical scalar. Control whether to annotate individual groups.} \item{}{\code{showOverplotting=FALSE}: Logical scalar. Use a color gradient to show the amount of overplotting for collapsed items. This implies that \code{collapse==TRUE}} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} } } \item{}{\code{\linkS4class{StackedTrack}}: \describe{ \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} } } \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"} \code{(Aliases: fontcolor.title)}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90} \code{(Aliases: rotation.title)}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \references{ EBI Biomart webservice at \url{http://www.biomart.org}. } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{Mart}} \code{\linkS4class{RangeTrack}} \code{\linkS4class{StackedTrack}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{getBM}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} \code{\link{useMart}} } \examples{ \dontshow{ ## Load some sample data data(bmTrack) } ## Construct the object \dontrun{ bmTrack <- BiomartGeneRegionTrack(start=26682683, end=26711643, chromosome=7, genome="mm9") } \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(bmTrack) <- list(fontfamily=font, fontfamily.title=font) } } ## Plotting plotTracks(bmTrack) ## Track names names(bmTrack) names(bmTrack) <- "foo" plotTracks(bmTrack) ## Subsetting and splitting subTrack <- subset(bmTrack, from=26700000, to=26705000) length(subTrack) subTrack <- bmTrack[transcript(bmTrack)=="ENSMUST00000144140"] split(bmTrack, transcript(bmTrack)) ## Accessors start(bmTrack) end(bmTrack) width(bmTrack) position(bmTrack) width(subTrack) <- width(subTrack)+100 strand(bmTrack) strand(subTrack) <- "-" chromosome(bmTrack) chromosome(subTrack) <- "chrX" genome(bmTrack) genome(subTrack) <- "hg19" range(bmTrack) ranges(bmTrack) ## Annotation identifier(bmTrack) identifier(bmTrack, "lowest") identifier(subTrack) <- "bar" feature(bmTrack) feature(subTrack) <- "foo" exon(bmTrack) exon(subTrack) <- letters[1:2] gene(bmTrack) gene(subTrack) <- "bar" symbol(bmTrack) symbol(subTrack) <- "foo" transcript(bmTrack) transcript(subTrack) <- c("foo", "bar") chromosome(subTrack) <- "chr7" plotTracks(subTrack) values(bmTrack) ## Grouping group(bmTrack) group(subTrack) <- "Group 1" transcript(subTrack) plotTracks(subTrack) ## Stacking stacking(bmTrack) stacking(bmTrack) <- "dense" plotTracks(bmTrack) ## coercion as(bmTrack, "data.frame") as(bmTrack, "UCSCData") ## HTML image map coords(bmTrack) tags(bmTrack) bmTrack <- plotTracks(bmTrack)$foo coords(bmTrack) tags(bmTrack) } \keyword{classes} Gviz/man/CustomTrack-class.Rd0000644000175400017540000003336513175714140017140 0ustar00biocbuildbiocbuild\name{CustomTrack-class} \Rdversion{1.1} \docType{class} \alias{CustomTrack-class} \alias{CustomTrack} \alias{initialize,CustomTrack-method} \alias{drawGD,CustomTrack-method} \alias{show,CustomTrack-method} \title{CustomTrack class and methods} \description{ A fully customizable track object to be populated via a user-defined plotting function. } \section{Objects from the Class}{ Objects can be created using the constructor function \code{CustomTrack}. } \usage{ CustomTrack(plottingFunction=function(GdObject, prepare=FALSE, ...){}, variables=list(), name="CustomTrack", ...) } \arguments{ \item{plottingFunction}{A user-defined function to be executed once the track coordinates have been properly set up. The function needs to accept two mandatory arguments: \code{GdObject}, the \code{CustomTrack} object to be plotted, and \code{prepare}, a logical flag indicating whether the function has been called in preparation mode or in drawing mode. It also needs to return the input \code{GdObject}, potentially with modifications. } \item{variables}{A list of additional variables for the user-defined plotting function. } \item{name}{Character scalar of the track's name.} \item{\dots}{Additional items which will all be interpreted as further display parameters. See \code{\link{settings}} and the "Display Parameters" section below for details.} } \details{ A track to allow for any sort of plotting, with the currently displayed genomic location set. Essentially this acts as a simple callback into the \code{Gviz} plotting machinery after all the track panels and coordinates have been set up. It is entirely up to the user what to plot in the track, or even to use the predefined coordinate system. The only prerequesite is that all plotting operations need to utilize Grid graphics. } \section{Slots}{ \describe{ \item{\code{plottingFunction}:}{Object of class \code{"function"}, holding the user-defined plotting function.} \item{\code{variables}:}{Object of class \code{"list"}, additional variables for the plotting function. } \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{GdObject}"}, directly. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{CustomTrack}. \bold{\emph{Internal methods:}} \describe{ \item{initialize}{\code{signature(.Object="CustomTrack")}: initialize the object. } } \bold{\emph{Inherited methods:}} \describe{ \item{displayPars}{\code{signature(x="CustomTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="CustomTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="CustomTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="CustomTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="CustomTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="CustomTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{CustomTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="CustomTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{CustomTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{names}{\code{signature(x="CustomTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="CustomTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="CustomTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="CustomTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ All display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{CustomTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panels.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is computed based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col="#0080FF"}: Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The font color for the title panels.} \item{}{\code{collapse=TRUE}: Boolean controlling wether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{ImageMap}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \keyword{classes} Gviz/man/DataTrack-class.Rd0000644000175400017540000015512013175714140016531 0ustar00biocbuildbiocbuild\name{DataTrack-class} \Rdversion{1.1} \docType{class} \alias{DataTrack-class} \alias{DataTrack} \alias{[,DataTrack-method} \alias{[,DataTrack,ANY,ANY-method} \alias{[,DataTrack,ANY,ANY,ANY-method} \alias{collapseTrack,DataTrack-method} \alias{drawAxis,DataTrack-method} \alias{drawGD,DataTrack-method} \alias{initialize,DataTrack-method} \alias{initialize,ReferenceDataTrack-method} \alias{score,DataTrack-method} \alias{show,DataTrack-method} \alias{show,ReferenceDataTrack-method} \alias{split,DataTrack,ANY-method} \alias{split,DataTrack-method} \alias{values,DataTrack-method} \alias{values<-,DataTrack-method} \alias{feature,DataTrack-method} \alias{feature<-,DataTrack,character-method} \alias{range,DataTrack-method} \alias{strand,DataTrack-method} \alias{subset,DataTrack-method} \alias{subset,ReferenceDataTrack-method} \alias{strand<-,DataTrack-method} \alias{strand<-,DataTrack,ANY-method} \alias{coerce,DataTrack,data.frame-method} \alias{coerce,GRanges,DataTrack-method} \title{DataTrack class and methods} \description{ A class to store numeric data values along genomic coordinates. Multiple samples as well as sample groupings are supported, with the restriction of equal genomic coordinates for a single observation across samples. } \section{Objects from the class}{ Objects can be created using the constructor function \code{DataTrack}. } \usage{ DataTrack(range=NULL, start=NULL, end=NULL, width=NULL, data, chromosome, strand, genome, name="DataTrack", importFunction, stream=FALSE, ...) } \arguments{ We tried to keep instantiation of \code{DataTrack} objects as flexible as possible to accomodate different use cases. For instance, one natural way to create a \code{DataTrack} is from an existing \code{\linkS4class{GRanges}} object. In other cases it might be more appropriate to build the object using individual function arguments. \item{range}{ An optional meta argument to handle the different input types. If the \code{range} argument is missing, all the relevant information to create the object has to be provided as individual function arguments (see below). The different input options for \code{range} are: \describe{ \item{}{A \code{GRanges} object: essentially all the necessary information to create a \code{DataTrack} can be contained in a single \code{GRanges} object. The track's coordinates are taken from the \code{start}, \code{end} and \code{seqnames} slots, the genome information from the genome slot, and the numeric data values can be extracted from additional metadata columns columns (please note that non-numeric columns are being ignored with a warning). As a matter of fact, calling the constructor on a \code{GRanges} object without further arguments, e.g. \code{DataTrack(range=obj)} is equivalent to calling the coerce method \code{as(obj, "DataTrack")}. Alternatively, the \code{GRanges} object may only contain the coordinate information, in which case the numeric data part is expected to be present in the separate \code{data} argument, and the ranges have to match the dimensions of the data matrix. If \code{data} is not \code{NULL}, this will always take precedence over anything defined in the \code{range} argument. See below for details.} \item{}{An \code{\linkS4class{IRanges}} object: this is very similar to the above case, except that the numeric data part now always has to be provided in the separate \code{data} argument. Also the chromosome information must be provided in the \code{chromosome} argument, because neither of the two can be directly encoded in an \code{IRange} object.} \item{}{A \code{data.frame} object: the \code{data.frame} needs to contain at least the two mandatory columns \code{start} and \code{end} with the range coordinates. It may also contain a \code{chromosome} column with the chromosome information for each range. If missing it will be drawn from the separate \code{chromosome} argument. All additional numeric columns will be interpreted as data columns, unless the \code{data} argument is explicitely provided.} \item{}{A \code{character} scalar: in this case the value of the \code{range} argument is considered to be a file path to an annotation file on disk. A range of file types are supported by the \code{Gviz} package as identified by the file extension. See the \code{importFunction} documentation below for further details.} } } \item{start, end, width}{Integer vectors, giving the start and the end end coordinates for the individual track items, or their width. Two of the three need to be specified, and have to be of equal length or of length one, in which case the single value will be recycled accordingly. Otherwise, the usual R recycling rules for vectors do not apply and the function will cast an error.} \item{data}{A numeric matrix of data points with the number of columns equal to the number of coordinates in \code{range}, or a numeric vector of appropriate length that will be coerced into such a one-row matrix. Each individual row is supposed to contain data for a given sample, where the coordinates for each single observation are constant across samples. Depending on the plotting type of the data (see 'Details' and 'Display Parameters' sections), sample grouping or data aggregation may be available. Alternatively, this can be a character vector of column names that point into the element metadata of the \code{range} object for subsetting. Naturally, this is only supported when the \code{range} argument is of class \code{GRanges}.} \item{strand}{Character vector, the strand information for the individual track items. Currently this has to be unique for the whole track and doesn't really have any visible consequences, but we might decide to make \code{DataTracks} strand-specific at a later stage.} \item{chromosome}{The chromosome on which the track's genomic ranges are defined. A valid UCSC chromosome identifier if \code{options(ucscChromosomeNames=TRUE)}. Please note that in this case only syntactic checking takes place, i.e., the argument value needs to be an integer, numeric character or a character of the form \code{chrx}, where \code{x} may be any possible string. The user has to make sure that the respective chromosome is indeed defined for the the track's genome. If not provided here, the constructor will try to construct the chromosome information based on the available inputs, and as a last resort will fall back to the value \code{chrNA}. Please note that by definition all objects in the \code{Gviz} package can only have a single active chromosome at a time (although internally the information for more than one chromosome may be present), and the user has to call the \code{chromosome<-} replacement method in order to change to a different active chromosome.} \item{genome}{The genome on which the track's ranges are defined. Usually this is a valid UCSC genome identifier, however this is not being formally checked at this point. If not provided here the constructor will try to extract this information from the provided input, and eventually will fall back to the default value of \code{NA}.} \item{name}{Character scalar of the track's name used in the title panel when plotting.} \item{importFunction}{A user-defined function to be used to import the data from a file. This only applies when the \code{range} argument is a character string with the path to the input data file. The function needs to accept an argument \code{file} containing the file path and has to return a proper \code{GRanges} object with the data part attached as numeric metadata columns. Essentially the process is equivalent to constructing a \code{DataTrack} directly from a \code{GRanges} object in that non-numeric columns will be dropped, and further subsetting can be archived by means of the \code{data} argument. A set of default import functions is already implemented in the package for a number of different file types, and one of these defaults will be picked automatically based on the extension of the input file name. If the extension can not be mapped to any of the existing import function, an error is raised asking for a user-defined import function. Currently the following file types can be imported with the default functions: \code{wig}, \code{bigWig/bw}, \code{bedGraph} and \code{bam}. Some file types support indexing by genomic coordinates (e.g., \code{bigWig} and \code{bam}), and it makes sense to only load the part of the file that is needed for plotting. To this end, the \code{Gviz} package defines the derived \code{ReferenceDataTrack} class, which supports streaming data from the file system. The user typically does not have to deal with this distinction but may rely on the constructor function to make the right choice as long as the default import functions are used. However, once a user-defined import function has been provided and if this function adds support for indexed files, you will have to make the constructor aware of this fact by setting the \code{stream} argument to \code{TRUE}. Please note that in this case the import function needs to accept a second mandatory argument \code{selection} which is a \code{GRanges} object containing the dimensions of the plotted genomic range. As before, the function has to return an appropriate \code{GRanges} object.} \item{stream}{A logical flag indicating that the user-provided import function can deal with indexed files and knows how to process the additional \code{selection} argument when accessing the data on disk. This causes the constructor to return a \code{ReferenceDataTrack} object which will grab the necessary data on the fly during each plotting operation.} \item{\dots}{Additional items which will all be interpreted as further display parameters.} } \value{ The return value of the constructor function is a new object of class \code{DataTrack} or \code{ReferenceDataTrack}. } \section{Slots}{ \describe{ \item{\code{data}:}{Object of class \code{"matrix"}, containing the data values to be plotted. Individual rows of the matrix correspond to individual samples, and the number of columns has to be identical to the feature number of the \code{GRanges} object in the \code{range} slot.} \item{\code{strand}:}{Object of class \code{"character"}, the strand information for the track, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two.} \item{\code{range}:}{Object of class \code{\linkS4class{IRanges}}, inherited from class \code{\linkS4class{RangeTrack}}. The genomic coordinates for the data values. The length of the object needs to be identical to the number of columns of the data matrix in the \code{data} slot.} \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{NumericTrack}"}, directly. Class \code{"\linkS4class{RangeTrack}"}, by class "NumericTrack", distance 2. Class \code{"\linkS4class{GdObject}"}, by class "NumericTrack", distance 3. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{DataTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{[}{\code{signature(x="DataTrack")}: subsetting of the object, either to a subet of coordinates, or to a subset of samples. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices for coordinates (\code{i}) or samples (\code{j}).} } \emph{Examples:} \describe{ \item{}{\code{obj[1:3,]}} \item{}{\code{obj[,2:4]}} } } \item{values}{\code{signature(x="DataTrack")}: return the raw data values of the object, i.e., the data matrix in the \code{data} slot. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{values<-}{\code{signature(x="DataTrack")}: replace the data matrix in the \code{data} slot. \emph{Usage:} \code{values<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{values(obj) <- matrix(1:10, ncol=2)}} } } \item{score}{\code{signature(x="DataTrack")}: return processed data values of the object exactly like they would be plotted to the device (modulo any potential aggregration or collapsing), i.e., the raw data with optional transformations applied. \emph{Usage:} \code{score(x, from=NULL, to=NULL, sort=FALSE, transformation=TRUE)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: restrict to data within a certain coordinates range.} \item{}{\code{sort}: sort the return values by coordinates. This is usually not necessary since the data should already be ordererd, however this is not formaly checked anywhere and some operations strictly depend on ordered data.} \item{}{\code{transformation}: apply a data transformation in case one is defined as the \code{transformation} display parameter.} } \emph{Examples:} \describe{ \item{}{\code{score(obj)}} \item{}{\code{score(obj, from=100, to=10000)}} \item{}{\code{score(obj, sort=TRUE, transformation=FALSE)}} } } \item{split}{\code{signature(x="DataTrack")}: split a \code{DataTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of \code{DataTrack} objects. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{range, ranges}{\code{signature(x="DataTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} \item{}{\code{ranges(obj)}} } } \item{strand}{\code{signature(x="DataTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="DataTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{feature}{\code{signature(GdObject="DataTrack")}: returns NULL since there is no grouping information for the ranges in a \code{DataTrack}. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="DataTrack", value="character")}: this return the unaltered input object since there is no grouping information for the ranges in a \code{DataTrack}. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } } \bold{\emph{Internal methods:}} \describe{ \item{collapseTrack}{\code{signature(gdObject="DataTrack")}: preprocess the track before plotting. This will collapse overlapping track items based on the available resolution and increase the width and height of all track objects to a minimum value to avoid rendering issues. See \code{\link{collapsing}} for details. \emph{Usage:} \code{collapseTrack(GdObject, diff=.pxResolution(coord="x"))} \emph{Additional Arguments:} \describe{ \item{}{\code{diff}: the minimum pixel width to display, everything below that will be inflated to a width of \code{diff}.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::collapseTrack(obj)}} } } \item{drawGD}{\code{signature(GdObject="DataTrack")}: plot the object to a graphics device. The return value of this method is the input object, potentially updated during the plotting operation. Internally, there are two modes in which the method can be called. Either in 'prepare' mode, in which case no plotting is done but the object is preprocessed based on the available space, or in 'plotting' mode, in which case the actual graphical output is created. Since subsetting of the object can be potentially costly, this can be switched off in case subsetting has already been performed before or is not necessary. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj)}} \item{}{\code{Gviz:::drawGD(obj, minBase=1, maxBase=100)}} \item{}{\code{Gviz:::drawGD(obj, prepare=TRUE, subset=FALSE)}} } } \item{drawAxis}{\code{signature(GdObject="DataTrack")}: add a y-axis to the title panel of a track. \emph{Usage:} \code{drawAxis(GdObject, from, to, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: compute axis range from the data within a certain coordinates range only.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{initialize}{\code{signature(.Object="DataTrack")}: initialize the object } \item{show}{\code{signature(object="DataTrack")}: show a human-readable summary of the object } } \bold{\emph{Inherited methods:}} \describe{ \item{drawGrid}{\code{signature(GdObject="DataTrack")}: superpose a grid on top of a track. \emph{Usage:} \code{drawGrid(GdObject, from, to, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, restrict to coordinate range before computing the grid lines.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj)}} } } \item{chromosome}{\code{signature(GdObject="DataTrack")}: return the currently active chromosome for which the track is defined. For consistancy with other Bioconductor packages, the \code{isActiveSeq} alias is also provided. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="DataTrack")}: replace the value of the track's active chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one, unless \code{options(ucscChromosomeNames=FALSE)}. For consistancy with other Bioconductor packages, the \code{isActiveSeq<-} alias is also provided. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="DataTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="DataTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="DataTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{genome}{\code{signature(x="DataTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="DataTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="DataTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{coerce}{\code{signature(from="DataTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{subset}{\code{signature(x="DataTrack")}: subset a \code{NumericTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, drop=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{drop}: drop unused regions on the other, non-active chromosomes.w} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20, sort=TRUE)}} } } \item{displayPars}{\code{signature(x="DataTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="DataTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="DataTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="DataTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="DataTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="DataTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{DataTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="DataTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{DataTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="DataTrack")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="DataTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="DataTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="DataTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="DataTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{DataTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{aggregateGroups=FALSE}: Logical scalar. Aggregate the values within a sample group using the aggregation funnction specified in the \code{aggregation} parameter.} \item{}{\code{aggregation="mean"}: Function or character scalar. Used to aggregate values in windows or for collapsing overlapping items. The function has to accept a numeric vector as a single input parameter and has to return a numeric scalar with the aggregated value. Alternatively, one of the predefined options \code{mean}, \code{median} \code{sum}, \code{min}, \code{max} or \code{extreme} can be supplied as a character scalar. Defaults to \code{mean}.} \item{}{\code{alpha.confint=0.3}: Numeric scalar. The transparency for the confidence intervalls in confint-type plots.} \item{}{\code{amount=NULL}: Numeric scalar. Amount of jittering in xy-type plots. See \code{\link{panel.xyplot}} for details.} \item{}{\code{baseline=NULL}: Numeric scalar. Y-axis position of an optional baseline. This parameter has a special meaning for mountain-type and polygon-type plots, see the 'Details' section in \code{\linkS4class{DataTrack}} for more information.} \item{}{\code{box.legend=FALSE}: Logical scalar. Draw a box around a legend.} \item{}{\code{box.ratio=1}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{box.width=NULL}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{cex=0.7}: Numeric scalar. The default pixel size for plotting symbols.} \item{}{\code{cex.legend=0.8}: Numeric scalar. The size factor for the legend text.} \item{}{\code{cex.sampleNames=NULL}: Numeric scalar. The size factor for the sample names text in heatmap or horizon plots. Defaults to an automatic setting.} \item{}{\code{coef=1.5}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{col=c("#0080ff", "#ff00ff", "darkgreen", "#ff0000", "orange", "#00ff00", "brown")}: Character or integer vector. The color used for all line and symbol elements, unless there is a more specific control defined elsewhere. Unless \code{groups} are specified, only the first color in the vector is usually regarded.} \item{}{\code{col.baseline=NULL}: Character scalar. Color for the optional baseline, defaults to the setting of \code{col}.} \item{}{\code{col.confint}: Character vector. Border colors for the confidence intervals for confint-type plots.} \item{}{\code{col.histogram="#808080"}: Character scalar. Line color in histogram-type plots.} \item{}{\code{col.horizon}: The line color for the segments in the \code{horizon}-type plot. See \code{\link{horizonplot}} for details.} \item{}{\code{col.mountain=NULL}: Character scalar. Line color in mountain-type and polygon-type plots, defaults to the setting of \code{col}.} \item{}{\code{col.sampleNames="white"}: Character or integer scalar. The color used for the sample names in heatmap plots.} \item{}{\code{collapse=FALSE}: Logical scalar. Collapse overlapping ranges and aggregate the underlying data.} \item{}{\code{degree=1}: Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \code{\link{panel.loess}} for details.} \item{}{\code{do.out=TRUE}: Logical scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{evaluation=50}: Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \code{\link{panel.loess}} for details.} \item{}{\code{factor=0.5}: Numeric scalar. Factor to control amount of jittering in xy-type plots. See \code{\link{panel.xyplot}} for details.} \item{}{\code{family="symmetric"}: Character scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \code{\link{panel.loess}} for details.} \item{}{\code{fill.confint=NULL}: Character vector. Fill colors for the confidence intervals for confint-type plots.} \item{}{\code{fill.histogram=NULL}: Character scalar. Fill color in histogram-type plots, defaults to the setting of \code{fill}.} \item{}{\code{fill.horizon=c("#B41414", "#E03231", "#F7A99C", "#9FC8DC", "#468CC8", "#0165B3")}: The fill colors for the segments in the \code{horizon}-type plot. This should be a vector of length six, where the first three entries are the colors for positive changes, and the latter three entries are the colors for negative changes. Defaults to a red-blue color scheme. See \code{\link{horizonplot}} for details.} \item{}{\code{fill.mountain=c("#CCFFFF", "#FFCCFF")}: Character vector of length 2. Fill color in mountain-type and polygon-type plots.} \item{}{\code{fontcolor.legend="#808080"}: Integer or character scalar. The font color for the legend text.} \item{}{\code{fontface.legend=NULL}: Integer or character scalar. The font face for the legend text.} \item{}{\code{fontfamily.legend=NULL}: Integer or character scalar. The font family for the legend text.} \item{}{\code{fontsize.legend=NULL}: Numeric scalar. The pixel size for the legend text.} \item{}{\code{gradient=c("#F7FBFF", "#DEEBF7", "#C6DBEF", "#9ECAE1", "#6BAED6", "#4292C6", "#2171B5", "#08519C", "#08306B")}: Character vector. The base colors for the \code{gradient} plotting type or the \code{heatmap} type with a single group. When plotting heatmaps with more than one group, the \code{col} parameter can be used to control the group color scheme, however the gradient will always be from white to 'col' and thus does not offer as much flexibility as this \code{gradient} parameter.} \item{}{\code{grid=FALSE}: Logical vector. Draw a line grid under the track content.} \item{}{\code{groups=NULL}: Vector coercable to a factor. Optional sample grouping. See 'Details' section in \code{\linkS4class{DataTrack}} for further information.} \item{}{\code{horizon.origin=0}: The baseline relative to which changes are indicated on the \code{horizon}-type plot. See \code{\link{horizonplot}} for details.} \item{}{\code{horizon.scale=NULL}: The scale for each of the segments in the \code{horizon}-type plot. Defaults to 1/3 of the absolute data range. See \code{\link{horizonplot}} for details.} \item{}{\code{jitter.x=FALSE}: Logical scalar. Toggle on jittering on the x axis in xy-type plots. See \code{\link{panel.xyplot}} for details.} \item{}{\code{jitter.y=FALSE}: Logical scalar. Toggle off jittering on the y axis in xy-type plots. See \code{\link{panel.xyplot}} for details.} \item{}{\code{legend=TRUE}: Boolean triggering the addition of a legend to the track to indicate groups. This only has an effect if at least two groups are present.} \item{}{\code{levels.fos=NULL}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{lineheight.legend=NULL}: Numeric scalar. The line height for the legend text.} \item{}{\code{lty.baseline=NULL}: Character or numeric scalar. Line type of the optional baseline, defaults to the setting of \code{lty}.} \item{}{\code{lty.mountain=NULL}: Character or numeric scalar. Line type in mountain-type and polygon-type plots, defaults to the setting of \code{lty}.} \item{}{\code{lwd.baseline=NULL}: Numeric scalar. Line width of the optional baseline, defaults to the setting of \code{lwd}.} \item{}{\code{lwd.mountain=NULL}: Numeric scalar. Line width in mountain-type and polygon-type plots, defaults to the setting of \code{lwd}.} \item{}{\code{min.distance=0}: Numeric scalar. The mimimum distance in pixel below which to collapse ranges.} \item{}{\code{na.rm=FALSE}: Boolean controlling whether to discard all NA values when plotting or to keep empty spaces for NAs} \item{}{\code{ncolor=100}: Integer scalar. The number of colors for the 'gradient' plotting type} \item{}{\code{notch=FALSE}: Logical scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{notch.frac=0.5}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{pch=20}: Integer scalar. The type of glyph used for plotting symbols.} \item{}{\code{separator=0}: Numeric scalar. Number of pixels used to separate individual samples in heatmap- and horizon-type plots.} \item{}{\code{showColorBar=TRUE}: Boolean. Indicate the data range color mapping in the axis for 'heatmap' or 'gradient' types.} \item{}{\code{showSampleNames=FALSE}: Boolean. Display the names of the individual samples in a heatmap or a horizon plot.} \item{}{\code{size=NULL}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function. By default the size will be set automatically based on the selected plotting type.} \item{}{\code{span=0.2}: Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \code{\link{panel.loess}} for details.} \item{}{\code{stackedBars=TRUE}: Logical scalar. When there are several data groups, draw the histogram-type plots as stacked barplots or grouped side by side.} \item{}{\code{stats=function}: Function. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{transformation=NULL}: Function. Applied to the data matrix prior to plotting or when calling the \code{score} method. The function should accept exactly one input argument and its return value needs to be a numeric vector which can be coerced back into a data matrix of identical dimensionality as the input data.} \item{}{\code{type="p"}: Character vector. The plot type, one or several in \code{c("p","l", "b", "a", "a_confint", "s", "g", "r", "S", "confint", "smooth", "histogram", "mountain", "polygon", "h", "boxplot", "gradient", "heatmap", "horizon")}. See 'Details' section in \code{\linkS4class{DataTrack}} for more information on the individual plotting types.} \item{}{\code{varwidth=FALSE}: Logical scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{window=NULL}: Numeric or character scalar. Aggregate the rows values of the data matrix to \code{window} equally sized slices on the data range using the method defined in \code{aggregation}. If negative, apply a running window of size \code{windowSize} using the same aggregation method. Alternatively, the special value \code{auto} causes the function to determine the optimal window size to avoid overplotting, and \code{fixed} uses fixed-size windows of size \code{windowSize}.} \item{}{\code{windowSize=NULL}: Numeric scalar. The size of the running window when the value of \code{window} is negative.} \item{}{\code{ylim=NULL}: Numeric vector of length 2. The range of the y-axis scale.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{DataTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"} \code{(Aliases: fontcolor.title)}: Integer or character scalar. The border color for the title panels} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{rotation.title=90} \code{(Aliases: rotation.title)}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \details{ Depending on the setting of the \code{type} display parameter, the data can be plotted in various different forms as well as combinations thereof. Supported plotting types are: \describe{ \item{}{\code{p}: simple xy-plot.} \item{}{\code{l}: lines plot. In the case of multiple samples this plotting type is not overly usefull since the points in the data matrix are connected in column-wise order. Type \code{a} might be more appropriate in these situations.} \item{}{\code{b}: combination of xy-plot and lines plot.} \item{}{\code{a}: lines plot of the column-wise average values.} \item{}{\code{s}: sort and connect data points along the x-axis} \item{}{\code{S}: sort and connect data points along the y-axis} \item{}{\code{g}: add grid lines. To ensure a consitant look and feel across multiple tracks, grid lines should preferentially be added by using the \code{grid} display parameter.} \item{}{\code{r}: add a regression line to the plot.} \item{}{\code{h}: histogram-like vertical lines centered in the middle of the coordinate ranges.} \item{}{\code{smooth}: add a loess fit to the plot. The following display parameters can be used to control the loess calculation: \code{span, degree, family, evaluation}. See \code{\link{panel.loess}} for details.} \item{}{\code{histogram}: plot data as a histogram, where the width of the histogram bars reflects the width of the genomic ranges in the \code{range} slot.} \item{}{\code{mountain}: plot a smoothed version of the data relative to a baseline, as defined by the \code{baseline} display parameter. The following display parameters can be used to control the smoothing: \code{span, degree, family, evaluation}. See \code{\link{panel.loess}} for details. The layout of the plot can be further customized via the following display parameters: \code{col.mountain, lwd.mountain, lty.mountain, fill.mountain}.} \item{}{\code{polygon}: plot data as a polygon (similar to \code{mountain}-type but without smoothing). Data are plotted relative to a baseline, as defined by the \code{baseline} display parameter. The layout of the plot can be further customized via the following display parameters: \code{col.mountain, lwd.mountain, lty.mountain, fill.mountain}.} \item{}{\code{boxplot}: plot the data as box-and-whisker plots. The layout of the plot can be further customized via the following display parameters: \code{box.ratio, box.width, varwidt, notch, notch.frac, levels.fos, stats, coef, do.out}. See \code{\link{panel.bwplot}} for details.} \item{}{\code{gradient}: collapse the data across samples and plot this average value as a color-coded gradient. Essenitally this is similar to the heatmap-type plot of a single sample. The layout of the plot can be further customized via the display parameters \code{ncolor} and \code{gradient} which control the number of gradient colors as well as the gradient base colors, respectively.} \item{}{\code{heatmap}: plot the color-coded values for all samples in the form of a heatmap. The data for individual samples can be visually separated by setting the \code{separator} display parameter. It's value is taken as the amount of spacing in pixels in between two heatmap rows. The layout of the plot can be further customized via the display parameters \code{ncolor} and \code{gradient} which control the number of gradient colors as well as the gradient base colors, respectively.} \item{}{\code{horizon}: plot continuous data by cutting the y range into segments and overplotting them with color representing the magnitude and direction of deviation. This is particularly useful when comparing multiple samples, in which case the horizon strips are stacked. See \code{\link{horizonplot}} for details. Please note that the \code{origin} and \code{horizonscale} arguments of the Lattice \code{horizonplot} function are available as display parameters \code{horizon.origin} and \code{horizon.scale}.} } For some of the above plotting-types the \code{groups} display parameter can be used to indicate sample sub-groupings. Its value is supposed to be a factor vector of similar length as the number of samples. In most cases, the groups are shown in different plotting colors and data aggregation operations are done in a stratified fashion. The \code{window} display parameter can be used to aggregate the data prior to plotting. Its value is taken as the number of equal-sized windows along the genomic coordinates of the track for which to compute average values. The special value \code{auto} can be used to automatically determine a reasonable number of windows which can be particularly useful when plotting very large genomic regions with many data points. The \code{aggregation} parameter can be set to define the aggregation function to be used when averaging in windows or across collapsed items. It takes the form of either a function which should condense a numeric vector into a single number, or one of the predefined options as character scalars \code{"mean"}, \code{"median"} or \code{"sum"} for mean, median or summation, respectively. Defaults to computing mean values for each sample. Note that the predefined options can be much faster because they are optimized to work on large numeric tables. } \author{Florian Hahne} \seealso{ \code{\linkS4class{DataTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{NumericTrack}} \code{\linkS4class{RangeTrack}} \code{\link{collapsing}} \code{\link{grouping}} \code{\link{horizonplot}} \code{\link{panel.bwplot}} \code{\link{panel.grid}} \code{\link{panel.loess}} \code{\link{panel.xyplot}} \code{\link{plotTracks}} \code{\link{settings}} } \examples{ ## Object construction: ## An empty object DataTrack() ## from individual arguments dat <- matrix(runif(400), nrow=4) dtTrack <- DataTrack(start=seq(1,1000, len=100), width=10, data=dat, chromosome=1, genome="mm9", name="random data") ## from GRanges library(GenomicRanges) gr <- GRanges(seqnames="chr1", ranges=IRanges(seq(1,1000, len=100), width=10)) values(gr) <- t(dat) dtTrack <- DataTrack(range=gr, genome="mm9", name="random data") ## from IRanges dtTrack <- DataTrack(range=ranges(gr), data=dat, genome="mm9", name="random data", chromosome=1) ## from a data.frame df <- as.data.frame(gr) colnames(df)[1] <- "chromosome" dtTrack <- DataTrack(range=df, genome="mm9", name="random data") \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(dtTrack) <- list(fontfamily=font, fontfamily.title=font) } } ## Plotting plotTracks(dtTrack) ## Track names names(dtTrack) names(dtTrack) <- "foo" plotTracks(dtTrack) ## Subsetting and splitting subTrack <- subset(dtTrack, from=100, to=300) length(subTrack) subTrack[1:2,] subTrack[,1:2] split(dtTrack, rep(1:2, each=50)) ## Accessors start(dtTrack) end(dtTrack) width(dtTrack) position(dtTrack) width(subTrack) <- width(subTrack)-5 strand(dtTrack) strand(subTrack) <- "-" chromosome(dtTrack) chromosome(subTrack) <- "chrX" genome(dtTrack) genome(subTrack) <- "mm9" range(dtTrack) ranges(dtTrack) ## Data values(dtTrack) score(dtTrack) ## coercion as(dtTrack, "data.frame") } \keyword{classes} Gviz/man/DisplayPars-class.Rd0000644000175400017540000001360613175714140017130 0ustar00biocbuildbiocbuild\name{DisplayPars-class} \Rdversion{1.1} \docType{class} \alias{DisplayPars-class} \alias{DisplayPars} \alias{displayPars} \alias{displayPars<-} \alias{displayPars,DisplayPars,character-method} \alias{displayPars,DisplayPars,missing-method} \alias{displayPars<-,DisplayPars,list-method} \alias{getPar} \alias{getPar,DisplayPars,character-method} \alias{getPar,DisplayPars,missing-method} \alias{initialize,DisplayPars-method} \alias{setPar} \alias{setPar,DisplayPars,character-method} \alias{setPar,DisplayPars,list-method} \alias{availableDisplayPars} \alias{as.list,InferredDisplayPars-method} \alias{as.list,DisplayPars-method} \alias{show,DisplayPars-method} \alias{coerce,DisplayPars,list-method} \alias{coerce,InferredDisplayPars,list-method} \alias{head,InferredDisplayPars-method} \alias{tail,InferredDisplayPars-method} \title{DisplayPars class and method} \description{ All tracks within this package are highly customizable. The \code{DisplayPars} class facilitates this and provides a unified API to the customization parameters. } \section{Objects from the Class}{ Objects can be created using the constructor function \code{DisplayPars}. } \usage{ DisplayPars(...) availableDisplayPars(class) } \arguments{ \item{\dots}{All named arguments are stored in the object's environment as individual parameters, regardless of their type.} \item{class}{A valid track object class name, or the object itself, in which case the class is derived directly from it.} } \details{ The individual parameters in a \code{DisplayParameters} class are stored as pointers in an environment. This has the upshot of not having to copy the whole track object when changing parameters, and parameters can be updated without the need to explicietly reassign the track to a symbol (i.e., updating of parameters happens in place). The downside is that upon copying of track objects, the parameter emvironment needs to be reinstantiated. The default display parameters for a track object class can be queried using the \code{availableDisplayPars} function. } \value{ The return value of the constructor function is a new object of class \code{DisplayPars}. \code{availableDisplayPars} returns a list of the default display parameters. } \section{Slots}{ \describe{ \item{\code{pars}:}{Object of class \code{"environment"}, the container for all customization parameters. } } } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{DisplayPars}. \bold{\emph{Exported in the name space:}} \describe{ \item{displayPars}{\code{signature(x="DisplayPars", name="character")}: return the value of a subset of display parameters, as identified by \code{name}. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, c("foo", "bar"))}} \item{}{\code{displayPars(obj, "foobar")}} } } \item{displayPars}{\code{signature(x="DisplayPars", name="missing")}: return all available display parameters. \emph{Usage:} \code{displayPars(x)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="DisplayPars", name="character")}: alias for the \code{displayPars} method. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="DisplayPars", name="missing")}: alias for the \code{displayPars} method. \emph{Usage:} \code{getPar(x)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="DisplayPars", value="list")}: replace or add display parameters as provided by the named list items. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(foo="a", bar=2)}} } } \item{setPar}{\code{signature(x="DisplayPars", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{DisplayPars} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="DisplayPars", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{DisplayPars} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } } \emph{Internal methods:} \describe{ \item{initialize}{\code{signature(.Object = "DisplayPars")}: initialize the object. } \item{show}{\code{signature(object = "DisplayPars")}: show a human-readable summary of the object. } } } \author{ Florian Hahne } \examples{ ## Construct object dp <- DisplayPars(col="red", lwd=2, transformation=log2) dp ## Query parameters displayPars(dp) displayPars(dp, "col") getPar(dp, c("col", "transformation")) ## Modify parameters displayPars(dp) <- list(lty=1, fontsize=3) setPar(dp, "pch", 20) dp ## Default parameters availableDisplayPars("GenomeAxisTrack") } \keyword{classes} Gviz/man/GdObject-class.Rd0000644000175400017540000004271513175714140016361 0ustar00biocbuildbiocbuild\name{GdObject-class} \Rdversion{1.1} \docType{class} \alias{GdObject-class} \alias{GdObject} \alias{displayPars,GdObject,character-method} \alias{displayPars,GdObject,missing-method} \alias{displayPars<-,GdObject,list-method} \alias{drawAxis,GdObject-method} \alias{drawGrid,GdObject-method} \alias{subset,GdObject-method} \alias{getPar,GdObject,character-method} \alias{getPar,GdObject,missing-method} \alias{group,GdObject-method} \alias{initialize,GdObject-method} \alias{names,GdObject-method} \alias{drawGD} \alias{drawGD,DetailsAnnotationTrack-method} \alias{drawGD,GeneRegionTrack-method} \alias{drawGD,SequenceTrack-method} \alias{names<-,GdObject,character-method} \alias{genome<-,GdObject-method} \alias{chromosome<-,GdObject-method} \alias{isActiveSeq<-,GdObject-method} \alias{setPar,GdObject,character-method} \alias{setPar,GdObject,list-method} \alias{coords,GdObject-method} \alias{coords,NULL-method} \alias{tags,GdObject-method} \alias{chromosome,GdObject-method} \alias{tags,NULL-method} \alias{coords} \alias{tags} \alias{imageMap,GdObject-method} \alias{imageMap} \alias{consolidateTrack} \alias{consolidateTrack,GdObject-method} \title{GdObject class and methods} \description{ The virtual parent class for all track items in the Gviz package. This class definition contains all the common entities that are needed for a track to be plotted. During object instantiation for any of the sub-classes inheriting from \code{GdObject}, this class' global ininitializer has to be called in order to assure that all necessary settings are present. } \section{Objects from the class}{ A virtual class: No objects may be created from it. } \section{Slots}{ \describe{ \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, the display settings controlling the look and feel of a track. See \code{\link{settings}} for details on setting graphical parameters for tracks.} \item{\code{name}:}{Object of class \code{"character"}, a human-readable name for the track that will be used in the track's annotation panel if necessary. } \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, containing optional information for an HTML image map. This will be created by the \code{drawGD} methods when the track is plotted to a device and is usually not set by the user.} } } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{GdObject}. \bold{\emph{Exported in the name space:}} \describe{ \item{displayPars}{\code{signature(x="GdObject", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="GdObject", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="GdObject", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="GdObject", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="GdObject", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="GdObject", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{GdObject} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="GdObject", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{GdObject} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="GdObject")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="GdObject")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="GdObject", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="GdObject")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="GdObject")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } \item{subset}{\code{signature(x="GdObject")}: subset a \code{GdObject} by coordinates. Most of the respective sub-classes inheriting from \code{GdObject} overwrite this method, the default is to return the unaltered input object. \emph{Usage:} \code{subset(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj)}} } } } \bold{\emph{Internal methods:}} \describe{ \item{drawAxis}{\code{signature(GdObject="GdObject")}: add a y-axis to the title panel of a track if necessary. Unless overwritten in one of the sub-classes this usualy does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawAxis(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{drawGrid}{\code{signature(GdObject="GdObject")}: superpose a grid on top of a track if necessary. Unless overwritten in one of the sub-classes this usualy does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawGrid(GdObject, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj)}} } } \item{initialize}{\code{signature(.Object="GdObject")}: initialize the object. This involves setting up a new environment for the display parameters and filling it up with the current settings. All arguments that have not been clobbered up by one of the sub-class initializers are considered to be additional display parameters and are also added to the environment. See \code{\link{settings}} for details on setting graphical parameters for tracks.} } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{GdObject} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text and glyphs, unless a more specific definition exists.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col="#0080FF"}: Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"} \code{(Aliases: fontcolor.title)}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{rotation.title=90} \code{(Aliases: rotation.title)}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{...}: additional display parameters are allowed. Those typically take the value of a valid R color descriptors. The parameter names will later be matched to optional track item types as defined in the 'feature' range attribute, and all tracks of the matched types are colored accordingly. See the documentation of the \code{\link{GeneRegionTrack}} and \code{\link{AnnotationTrack}} classes as well as \code{\link{grouping}} for details.} } } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{ImageMap}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \keyword{classes} Gviz/man/GeneRegionTrack-class.Rd0000644000175400017540000015062313175714140017705 0ustar00biocbuildbiocbuild\name{GeneRegionTrack-class} \Rdversion{1.1} \docType{class} \alias{GeneRegionTrack-class} \alias{GeneRegionTrack} \alias{coerce,GeneRegionTrack,UCSCData-method} \alias{collapseTrack,GeneRegionTrack-method} \alias{exon} \alias{exon,GeneRegionTrack-method} \alias{exon<-} \alias{exon<-,GeneRegionTrack,character-method} \alias{gene,GeneRegionTrack-method} \alias{gene} \alias{gene<-,GeneRegionTrack,character-method} \alias{gene<-} \alias{group,GeneRegionTrack-method} \alias{group<-,GeneRegionTrack,character-method} \alias{identifier,GeneRegionTrack-method} \alias{identifier<-,GeneRegionTrack,character-method} \alias{initialize,GeneRegionTrack-method} \alias{initialize,ReferenceGeneRegionTrack-method} \alias{show,GeneRegionTrack-method} \alias{show,ReferenceGeneRegionTrack-method} \alias{symbol,GeneRegionTrack-method} \alias{symbol<-,GeneRegionTrack,character-method} \alias{symbol} \alias{symbol<-} \alias{transcript,GeneRegionTrack-method} \alias{transcript<-,GeneRegionTrack,character-method} \alias{transcript} \alias{transcript<-} \alias{coerce,GRanges,GeneRegionTrack-method} \alias{coerce,GRangesList,GeneRegionTrack-method} \alias{coerce,TxDb,GeneRegionTrack-method} \alias{subset,ReferenceGeneRegionTrack-method} \title{GeneRegionTrack class and methods} \description{ A class to hold gene model data for a genomic region. } \section{Objects from the class}{ Objects can be created using the constructor function \code{GeneRegionTrack}. } \usage{ GeneRegionTrack(range=NULL, rstarts=NULL, rends=NULL, rwidths=NULL, strand, feature, exon, transcript, gene, symbol, chromosome, genome, stacking="squish", name="GeneRegionTrack", start=NULL, end=NULL, importFunction, stream=FALSE, ...) } \arguments{ Since \code{GeneRegionTrack} objects are essentially just a specific type of \code{\linkS4class{AnnotationTrack}} objects, their constructors are quite similar. However, in the case of the \code{GeneRegionTrack} certain assumptions are made about the type of grouping on different levels (see the \code{Details} section for more information). The natural representation for gene models in the Bioconductor world are \code{\linkS4class{TxDb}} objects, and we tried to make it as straight forward as possible to create \code{GeneRegionTracks} starting from those. Building the object from individual function arguments is of course still possible. \item{range}{ An optional meta argument to handle the different input types. If the \code{range} argument is missing, all the relevant information to create the object has to be provided as individual function arguments (see below). The different input options for \code{range} are: \describe{ \item{}{A \code{TxDb} object: all the necessary gene model information including exon locations, transcript groupings and associated gene ids are contained in \code{TxDb} objects, and the coercion between the two is almost completely automated. If desired, the data to be fetched from the \code{TxDb} object can be restricted using the constructor's \code{chromosome}, \code{start} and \code{end} arguments. See below for details. A direct coercion method \code{as(obj, "GeneRegionTrack")} is also available. A nice added benefit of this input option is that the UTR and coding region information that is part of the original \code{TxDb} object is retained in the \code{GeneRegionTrack}.} \item{}{A \code{GRanges} object: the genomic ranges for the \code{GeneRegion} track as well as the optional additional metadata columns \code{feature}, \code{transcript}, \code{gene}, \code{exon} and \code{symbol} (see description of the individual function parameters below for details). Calling the constructor on a \code{GRanges} object without further arguments, e.g. \code{GeneRegionTrack(range=obj)} is equivalent to calling the coerce method \code{as(obj, "GeneRegionTrack")}.} \item{}{A \code{GRangesList} object: this is very similar to the previous case, except that the grouping information that is part of the list structure is preserved in the \code{GeneRegionTrack}. I.e., all the elements within one list item receive the same group id. For consistancy, there is also a coercion method from \code{GRangesLists} \code{as(obj, "GeneRegionTrack")}. Please note that unless the necessary information about gene ids, symbols, etc. is present in the individual \code{GRanges} meta data slots, the object will not be particularly useful, because all the identifiers will be set to a common default value.} \item{}{An \code{\linkS4class{IRanges}} object: almost identical to the \code{GRanges} case, except that the chromosome and strand information as well as all additional data has to be provided in the separate \code{chromosome}, \code{strand}, \code{feature}, \code{transcript}, \code{symbol}, \code{exon} or \code{gene} arguments, because it can not be directly encoded in an \code{IRanges} object. Note that only the former two are mandatory (if not provided explicitely the more or less reasonable default values \code{chromosome=NA} and \code{strand=*} are used, but not providing information about the gene-to-transcript relationship or the human-readble symbols renders a lot of the class' functionality useles.} \item{}{A \code{data.frame} object: the \code{data.frame} needs to contain at least the two mandatory columns \code{start} and \code{end} with the range coordinates. It may also contain a \code{chromosome} and a \code{strand} column with the chromosome and strand information for each range. If missing, this information will be drawn from the constructor's \code{chromosome} or \code{strand} arguments. In addition, the \code{feature}, \code{exon}, \code{transcript}, \code{gene} and \code{symbol} data can be provided as columns in the \code{data.frame}. The above comments about potential default values also apply here.} \item{}{A \code{character} scalar: in this case the value of the \code{range} argument is considered to be a file path to an annotation file on disk. A range of file types are supported by the \code{Gviz} package as identified by the file extension. See the \code{importFunction} documentation below for further details.} } } \item{start, end}{An integer scalar with the genomic start or end coordinate for the gene model range. If those are missing, the default value will automatically be the smallest (or largest) value, respectively in \code{rstarts} and \code{rends} for the currently active chromosome. When building a \code{GeneRegionTrack} from a \code{TxDb} object, these arguments can be used to subset the desired annotation data by genomic coordinates. Please note this in that case the \code{chromosome} parameter must also be set.} \item{rstarts}{An integer vector of the start coordinates for the actual gene model items, i.e., for the individual exons. The relationship between exons is handled via the \code{gene} and \code{transcript} factors. Alternatively, this can be a vector of comma-separated lists of integer coordinates, one vector item for each transcript, and each comma-separated element being the start location of a single exon within that transcript. Those lists will be exploded upon object instantiation and all other annotation arguments will be recycled accordingly to regenerate the exon/transcript/gene relationship structure. This implies the approriate number of items in all annotation and coordinates arguments.} \item{rends}{An integer vector of the end coordinates for the actual gene model items. Both \code{rstarts} and \code{rends} have to be of equal length.} \item{rwidths}{An integer vector of widths for the actual gene model items. This can be used instead of either \code{rstarts} or \code{rends} to specify the range coordinates.} \item{feature}{Factor (or other vector that can be coerced into one), giving the feature types for the individual track exons. When plotting the track to the device, if a display parameter with the same name as the value of \code{feature} is set, this will be used as the track item's fill color. Additionally, the feature type defines whether an element in the \code{GeneRegionTrack} is considered to be coding or non-coding. The details section as well as the section about the \code{thinBoxFeature} display parameter further below has more information on this. See also \code{\link{grouping}} for details.} \item{exon}{Character vector of exon identifiers. It's values will be used as the identifier tag when plotting to the device if the display parameter \code{showExonId=TRUE}.} \item{strand}{Character vector, the strand information for the individual track exons. It may be provided in the form \code{+} for the Watson strand, \code{-} for the Crick strand or \code{*} for either one of the two. Please note that all items within a single gene or transcript model need to be on the same strand, and erroneous entries will result in casting of an error.} \item{transcript}{Factor (or other vector that can be coerced into one), giving the transcript memberships for the individual track exons. All items with the same transcript identifier will be visually connected when plotting to the device. See \code{\link{grouping}} for details. Will be used as labels when \code{showId=TRUE}, and \code{geneSymbol=FALSE}.} \item{gene}{Factor (or other vector that can be coerced into one), giving the gene memberships for the individual track exons.} \item{symbol}{ A factor with human-readable gene name aliases which will be used as labels when \code{showId=TRUE}, and \code{geneSymbol=TRUE}.} \item{chromosome}{The chromosome on which the track's genomic ranges are defined. A valid UCSC chromosome identifier if \code{options(ucscChromosomeNames=TRUE)}. Please note that in this case only syntactic checking takes place, i.e., the argument value needs to be an integer, numeric character or a character of the form \code{chrx}, where \code{x} may be any possible string. The user has to make sure that the respective chromosome is indeed defined for the the track's genome. If not provided here, the constructor will try to build the chromosome information based on the available inputs, and as a last resort will fall back to the value \code{chrNA}. Please note that by definition all objects in the \code{Gviz} package can only have a single active chromosome at a time (although internally the information for more than one chromosome may be present), and the user has to call the \code{chromosome<-} replacement method in order to change to a different active chromosome. When creating a \code{GeneRegionTrack} from a \code{TxDb} object, the value of this parameter can be used to subset the data to fetch only transcripts from a single chromosome.} \item{genome}{The genome on which the track's ranges are defined. Usually this is a valid UCSC genome identifier, however this is not being formally checked at this point. If not provided here the constructor will try to extract this information from the provided inputs, and eventually will fall back to the default value of \code{NA}.} \item{stacking}{The stacking type for overlapping items of the track. One in \code{c(hide, dense, squish, pack,full)}. Currently, only hide (don't show the track items, squish (make best use of the available space) and dense (no stacking at all) are implemented.} \item{name}{Character scalar of the track's name used in the title panel when plotting.} \item{importFunction}{A user-defined function to be used to import the data from a file. This only applies when the \code{range} argument is a character string with the path to the input data file. The function needs to accept an argument \code{x} containing the file path and has to return a proper \code{GRanges} object with all the necessary metadata columns set. A set of default import functions is already implemented in the package for a number of different file types, and one of these defaults will be picked automatically based on the extension of the input file name. If the extension can not be mapped to any of the existing import function, an error is raised asking for a user-defined import function via this argument. Currently the following file types can be imported with the default functions: \code{gff}, \code{gff1}, \code{gff2}, \code{gff3}, \code{gtf}.} \item{stream}{A logical flag indicating that the user-provided import function can deal with indexed files and knows how to process the additional \code{selection} argument when accessing the data on disk. This causes the constructor to return a \code{ReferenceGeneRegionTrack} object which will grab the necessary data on the fly during each plotting operation.} \item{\dots}{Additional items which will all be interpreted as further display parameters. See \code{\link{settings}} and the "Display Parameters" section below for details.} } \details{ A track containing all gene models in a particular region. The data are usually fetched dynamially from an online data store, but it is also possible to manully construct objects from local data. Connections to particular online data sources should be implemented as sub-classes, and \code{GeneRegionTrack} is just the commone denominator that is being used for plotting later on. There are several levels of data associated to a \code{GeneRegionTrack}: \describe{ \item{exon level:}{identifiers are stored in the exon column of the \code{\linkS4class{GRanges}} object in the \code{range} slot. Data may be extracted using the \code{exon} method.} \item{transcript level:}{identifiers are stored in the transcript column of the \code{\linkS4class{GRanges}} object. Data may be extracted using the \code{transcript} method.} \item{gene level:}{identifiers are stored in the gene column of the \code{\linkS4class{GRanges}} object, more human-readable versions in the symbol column. Data may be extracted using the \code{gene} or the \code{symbol} methods.} \item{transcript-type level:}{information is stored in the feature column of the \code{\linkS4class{GRanges}} object. If a display parameter of the same name is specified, the software will use its value for the coloring.} } \code{GeneRegionTrack} objects also know about coding regions and non-coding regions (e.g., UTRs) in a transcript, and will indicate those by using different shapes (wide boxes for all coding regions, thinner boxes for non-coding regions). This is archived by setting the \code{feature} values of the object for non-coding elements to one of the options that are provided in the \code{thinBoxFeature} display parameters. All other elements are considered to be coding elements. } \value{ The return value of the constructor function is a new object of class \code{GeneRegionTrack}. } \section{Slots}{ \describe{ \item{\code{start}:}{Object of class \code{"numeric"}, the start coordinates of the annotation range. The coorrdinates for the individual gene model items are stored in the \code{range} slot.} \item{\code{end}:}{Object of class \code{"numeric"}, the end coordinates of the annotation range. The corrdinates for the individual gene model items are stored in the \code{range} slot. } \item{\code{stacking}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{stacks}:}{Object of class \code{"numeric"}, inherited from class \code{\linkS4class{StackedTrack}}} \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{AnnotationTrack}"}, directly. Class \code{"\linkS4class{StackedTrack}"}, by class "AnnotationTrack", distance2. Class \code{"\linkS4class{RangeTrack}"}, by class "AnnotationTrack", distance3. Class \code{"\linkS4class{GdObject}"}, by class "AnnotationTrack", distance4. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{GeneRegionTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{group}{\code{signature(gdObject="GeneRegionTrack")}: extract the group membership for all track items. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{group<-}{\code{signature(gdObject="GeneRegionTrack", value="character")}: replace the grouping information for track items. The replacement value must be a factor of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{group<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{group(obj) <- c("a", "a", "b", "c", "a")}} } } \item{identifier}{\code{signature(gdObject="GeneRegionTrack")}: return track item identifiers. Depending on the setting of the optional argument \code{lowest}, these are either the group identifiers or the individual item identifiers. \emph{Usage:} \code{identifier(GdObject, lowest=FALSE)} \emph{Additional Arguments:} \describe{ \item{}{\code{lowest}: return the lowest-level identifier, i.e., the item IDs, or the higher level group IDs which do not have to be unqiue.} } \emph{Examples:} \describe{ \item{}{\code{identifier(obj, lowest=FALSE)}} } } \item{identifier<-}{\code{signature(gdObject="GeneRegionTrack", value="character")}: Set the track item identifiers. The replacement value has to be a character vector of appropriate length. This always replaces the group-level identifiers, so essentially it is similar to \code{groups<-}. \emph{Usage:} \code{identifier<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{identifier(obj) <- c("foo", "bar")}} } } \item{exon}{\code{signature(GdObject="GeneRegionTrack")}: Extract the exon identifiers for all exons in the gene models. \emph{Usage:} \code{exon(GdObject)} \emph{Examples:} \describe{ \item{}{\code{exon(obj)}} } } \item{exon<-}{\code{signature(GdObject="GeneRegionTrack", value="character")}: replace the exon identifiers for all exons in the gene model. The replacement value must be a character of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{exon<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{exon(obj) <- paste("Exon", 1:5)}} } } \item{gene}{\code{signature(GdObject="GeneRegionTrack")}: Extract the gene identifiers for all gene models. \emph{Usage:} \code{gene(GdObject)} \emph{Examples:} \describe{ \item{}{\code{gene(obj)}} } } \item{gene<-}{\code{signature(GdObject="GeneRegionTrack", value="character")}: replace the gene identifiers for all gene models. The replacement value must be a character of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{gene<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{gene(obj) <- paste("Gene", LETTERS[1:5])}} } } \item{symbol}{\code{signature(GdObject="GeneRegionTrack")}: Extract the human-readble gene symbol for all gene models. \emph{Usage:} \code{symbol(GdObject)} \emph{Examples:} \describe{ \item{}{\code{symbol(obj)}} } } \item{symbol<-}{\code{signature(GdObject="GeneRegionTrack", value="character")}: replace the human-readable gene symbol for all gene models. The replacement value must be a character of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{gene<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{symbol(obj) <- letters[1:5]}} } } \item{transcript}{\code{signature(GdObject="GeneRegionTrack")}: Extract the transcript identifiers for all transcripts in the gene models. \emph{Usage:} \code{transcript(GdObject)} \emph{Examples:} \describe{ \item{}{\code{transcript(obj)}} } } \item{transcript<-}{\code{signature(GdObject="GeneRegionTrack", value="character")}: replace the transcript identifiers for all transcripts in the gene model. The replacement value must be a character of appropriate length or another vector that can be coerced into such. \emph{Usage:} \code{transcript<-(GdObject, value)} \emph{Examples:} \describe{ \item{}{\code{transcript(obj) <- paste("Exon", 1:5)}} } } } \emph{Internal methods:} \describe{ \item{coerce}{\code{signature(from="GeneRegionTrack", to="UCSCData")}: coerce to a \code{UCSCData} object for export to the UCSC genome browser. \emph{Examples:} \describe{ \item{}{\code{as(obj, "UCSCData")}} } } \item{collapseTrack}{\code{signature(GdObject="GeneRegionTrack")}: preprocess the track before plotting. This will collapse overlapping track items based on the available resolution and increase the width and height of all track objects to a minimum value to avoid rendering issues. See \code{\link{collapsing}} for details. \emph{Usage:} \code{collapseTrack(GdObject, diff=.pxResolution(coord="x"))} \emph{Additional Arguments:} \describe{ \item{}{\code{diff}: the minimum pixel width to display, everything below that will be inflated to a width of \code{diff}.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::collapseTrack(obj)}} } } \item{initialize}{\code{signature(.Object="GeneRegionTrack")}: initialize the object } \item{show}{\code{signature(object="GeneRegionTrack")}: show a human-readable summary of the object } } \bold{\emph{Inherited methods:}} \describe{ \item{drawGD}{\code{signature(GdObject="GeneRegionTrack")}: plot the object to a graphics device. The return value of this method is the input object, potentially updated during the plotting operation. Internally, there are two modes in which the method can be called. Either in 'prepare' mode, in which case no plotting is done but the object is preprocessed based on the available space, or in 'plotting' mode, in which case the actual graphical output is created. Since subsetting of the object can be potentially costly, this can be switched off in case subsetting has already been performed before or is not necessary. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj)}} \item{}{\code{Gviz:::drawGD(obj, minBase=1, maxBase=100)}} \item{}{\code{Gviz:::drawGD(obj, prepare=TRUE, subset=FALSE)}} } } \item{drawGrid}{\code{signature(GdObject="GeneRegionTrack")}: superpose a grid on top of a track. \emph{Usage:} \code{drawGrid(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, draw grid within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj, from=10, to=100)}} } } \item{setStacks}{\code{signature(GdObject="GeneRegionTrack")}: recompute the stacks based on the available space and on the object's track items and stacking settings. \emph{Usage:} \code{setStacks(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, compute stacking within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::setStacks(obj, from=1, to=100)}} } } \item{stacking}{\code{signature(GdObject="GeneRegionTrack")}: return the current stacking type. \emph{Usage:} \code{stacking(GdObject)} \emph{Examples:} \describe{ \item{}{\code{stacking(obj)}} } } \item{stacking<-}{\code{signature(GdObject="GeneRegionTrack", value="character")}: set the object's stacking type to one in \code{c(hide, dense, squish, pack,full)}. \emph{Usage:} \code{stacking<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{stacking(obj) <- "squish" }} } } \item{stacks}{\code{signature(GdObject="GeneRegionTrack")}: return the stack indices for each track item. \emph{Usage:} \code{stacks(GdObject)} \emph{Examples:} \describe{ \item{}{\code{Gviz:::stacks(obj)}} } } \item{[}{\code{signature(x="GeneRegionTrack", i="ANY", j="ANY", drop="ANY")}: subset the items in the \code{GeneRegionTrack} object. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices, \code{j} is ignored.} \item{}{\code{drop}: argument is ignored.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{chromosome}{\code{signature(GdObject="GeneRegionTrack")}: return the currently active chromosome for which the track is defined. For consistancy with other Bioconductor packages, the \code{isActiveSeq} alias is also provided. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="GeneRegionTrack")}: replace the value of the track's active chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one, unless \code{options(ucscChromosomeNames=FALSE)}. For consistancy with other Bioconductor packages, the \code{isActiveSeq<-} alias is also provided. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="GeneRegionTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="GeneRegionTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="GeneRegionTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{feature}{\code{signature(GdObject="GeneRegionTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="GeneRegionTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{GeneRegionTrack}. See \code{\link{grouping}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="GeneRegionTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="GeneRegionTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="GeneRegionTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="GeneRegionTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="GeneRegionTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{split}{\code{signature(x="GeneRegionTrack")}: split a \code{GeneRegionTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of objects of the same class as the input object, all inheriting from class \code{GeneRegionTrack}. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{strand}{\code{signature(x="GeneRegionTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="GeneRegionTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="GeneRegionTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{coerce}{\code{signature(from="GeneRegionTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{subset}{\code{signature(x="GeneRegionTrack")}: subset a \code{GeneRegionTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20, sort=TRUE)}} } } \item{displayPars}{\code{signature(x="GeneRegionTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="GeneRegionTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="GeneRegionTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="GeneRegionTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="GeneRegionTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="GeneRegionTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{GeneRegionTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="GeneRegionTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{GeneRegionTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{names}{\code{signature(x="GeneRegionTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="GeneRegionTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="GeneRegionTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="GeneRegionTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{GeneRegionTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{min.distance=0}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details. Note that a value larger than 0 may lead to UTR regions being merged to CDS regions, which in most cases is not particularly useful.} \item{}{\code{col=NULL}: Character or integer scalar. The border color for all items. Defaults to using the same color as in \code{fill}, also taking into account different track \code{features}.} \item{}{\code{fill="orange"}: Character or integer scalar. The fill color for untyped items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{geneSymbols=TRUE}: Logical scalar. Use human-readable gene symbols or gene IDs for the transcript annotation.} \item{}{\code{shape=c("smallArrow", "box")}: Character scalar. The shape in which to display the track items. Currently only \code{box}, \code{arrow}, \code{ellipse}, and \code{smallArrow} are implemented.} \item{}{\code{showExonId=FALSE}: Logical scalar. Control whether to plot the individual exon identifiers.} \item{}{\code{collapseTranscripts=FALSE}: Logical or character scalar. Can be one in \code{gene}, \code{longest}, \code{shortest} or \code{meta}. Merge all transcripts of the same gene into one single gene model. In the case of \code{gene} (or \code{TRUE}), this will only keep the start location of the first exon and the end location of the last exon from all transcripts of the gene. For \code{shortest} and \code{longest}, only the longest or shortest transcript model is retained. For \code{meta}, a meta-transcript containing the union of all exons is formed (essentially identical to the operation \code{reduce(geneModel)}). } \item{}{\code{thinBoxFeature=c("utr", "ncRNA", "utr3", "utr5", "miRNA", "lincRNA")}: Character vector. A listing of feature types that should be drawn with thin boxes. Typically those are non-coding elements.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{GeneRegionTrack} objects. \describe{ \item{}{\code{\linkS4class{AnnotationTrack}}: \describe{ \item{}{\code{cex=1}: Numeric scalar. The font expansion factor for item identifiers.} \item{}{\code{cex.group=0.6}: Numeric scalar. The font expansion factor for the group-level annotation.} \item{}{\code{col="transparent"}: Character or integer scalar. The border color for all track items.} \item{}{\code{col.line="darkgray"}: Character scalar. The color used for connecting lines between grouped items. Defaults to a dark gray, but if set to \code{NULL} the same color as for the first item in the group is used.} \item{}{\code{fontcolor="white"}: Character or integer scalar. The font color for item identifiers.} \item{}{\code{fontcolor.group="#808080"}: Character or integer scalar. The font color for the group-level annotation.} \item{}{\code{fontface=1}: Integer scalar. The font face for item identifiers.} \item{}{\code{fontface.group=2}: Numeric scalar. The font face for the group-level annotation.} \item{}{\code{fontfamily="sans"}: Character scalar. The font family for item identifiers.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for item identifiers.} \item{}{\code{lex=1}: Numeric scalar. The line expansion factor for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for item identifiers.} \item{}{\code{lty="solid"}: Character or integer scalar. The line type for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lwd=1}: Integer scalar. The line width for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{rotation=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{showFeatureId=FALSE}: Logical scalar. Control whether to plot the individual track item identifiers.} \item{}{\code{showId=FALSE}: Logical scalar. Control whether to annotate individual groups.} \item{}{\code{showOverplotting=FALSE}: Logical scalar. Use a color gradient to show the amount of overplotting for collapsed items. This implies that \code{collapse==TRUE}} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{mergeGroups=FALSE}: Logical scalar. Merge fully overlapping groups if \code{collapse==TRUE}.} } } \item{}{\code{\linkS4class{StackedTrack}}: \describe{ \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} } } \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panels.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is computed based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The font color for the title panels.} \item{}{\code{collapse=TRUE}: Boolean controlling wether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne, Steve Lianoglou} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\linkS4class{StackedTrack}} \code{\linkS4class{TxDb}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \examples{ ## The empty object GeneRegionTrack() ## Load some sample data data(cyp2b10) ## Construct the object grTrack <- GeneRegionTrack(start=26682683, end=26711643, rstart=cyp2b10$start, rends=cyp2b10$end, chromosome=7, genome="mm9", transcript=cyp2b10$transcript, gene=cyp2b10$gene, symbol=cyp2b10$symbol, feature=cyp2b10$feature, exon=cyp2b10$exon, name="Cyp2b10", strand=cyp2b10$strand) ## Directly from the data.frame grTrack <- GeneRegionTrack(cyp2b10) ## From a TxDb object if(require(GenomicFeatures)){ samplefile <- system.file("extdata", "hg19_knownGene_sample.sqlite", package="GenomicFeatures") txdb <- loadDb(samplefile) GeneRegionTrack(txdb) GeneRegionTrack(txdb, chromosome="chr6", start=35000000, end=40000000) } \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(grTrack) <- list(fontfamily=font, fontfamily.title=font) } } ## Plotting plotTracks(grTrack) ## Track names names(grTrack) names(grTrack) <- "foo" plotTracks(grTrack) ## Subsetting and splitting subTrack <- subset(grTrack, from=26700000, to=26705000) length(subTrack) subTrack <- grTrack[transcript(grTrack)=="ENSMUST00000144140"] split(grTrack, transcript(grTrack)) ## Accessors start(grTrack) end(grTrack) width(grTrack) position(grTrack) width(subTrack) <- width(subTrack)+100 strand(grTrack) strand(subTrack) <- "-" chromosome(grTrack) chromosome(subTrack) <- "chrX" genome(grTrack) genome(subTrack) <- "hg19" range(grTrack) ranges(grTrack) ## Annotation identifier(grTrack) identifier(grTrack, "lowest") identifier(subTrack) <- "bar" feature(grTrack) feature(subTrack) <- "foo" exon(grTrack) exon(subTrack) <- letters[1:2] gene(grTrack) gene(subTrack) <- "bar" symbol(grTrack) symbol(subTrack) <- "foo" transcript(grTrack) transcript(subTrack) <- c("foo", "bar") chromosome(subTrack) <- "chr7" plotTracks(subTrack) values(grTrack) ## Grouping group(grTrack) group(subTrack) <- "Group 1" transcript(subTrack) plotTracks(subTrack) ## Collapsing transcripts plotTracks(grTrack, collapseTranscripts=TRUE, showId=TRUE, extend.left=10000, shape="arrow") ## Stacking stacking(grTrack) stacking(grTrack) <- "dense" plotTracks(grTrack) ## coercion as(grTrack, "data.frame") as(grTrack, "UCSCData") ## HTML image map coords(grTrack) tags(grTrack) grTrack <- plotTracks(grTrack)$foo coords(grTrack) tags(grTrack) } \keyword{classes} Gviz/man/GenomeAxisTrack-class.Rd0000644000175400017540000006113113175714140017715 0ustar00biocbuildbiocbuild\name{GenomeAxisTrack-class} \Rdversion{1.1} \docType{class} \alias{GenomeAxisTrack-class} \alias{GenomeAxisTrack} \alias{[,GenomeAxisTrack-method} \alias{[,GenomeAxisTrack,ANY,ANY-method} \alias{[,GenomeAxisTrack,ANY,AN,ANY-method} \alias{collapseTrack,GenomeAxisTrack-method} \alias{drawGD,GenomeAxisTrack-method} \alias{end,GenomeAxisTrack-method} \alias{end<-,GenomeAxisTrack-method} \alias{initialize,GenomeAxisTrack-method} \alias{length,GenomeAxisTrack-method} \alias{range,GenomeAxisTrack-method} \alias{ranges,GenomeAxisTrack-method} \alias{ranges<-,GenomeAxisTrack-method} \alias{show,GenomeAxisTrack-method} \alias{start,GenomeAxisTrack-method} \alias{start<-,GenomeAxisTrack-method} \alias{strand,GenomeAxisTrack-method} \alias{subset,GenomeAxisTrack-method} \alias{values,GenomeAxisTrack-method} \alias{width,GenomeAxisTrack-method} \title{GenomeAxisTrack class and methods} \description{A class representing a customizable genomic axis.} \section{Objects from the class}{ Objects can be created using the constructor function \code{GenomeAxisTrack}. } \usage{ GenomeAxisTrack(range=NULL, name="Axis", id, ...) } \arguments{ \item{range}{Optional \code{\linkS4class{GRanges}} or \code{\linkS4class{IRanges}} object to highlight certain regions on the axis.} \item{name}{Character scalar of the track's name used in the title panel when plotting.} \item{id}{A character vector of the same length as \code{range} containing identifiers for the ranges. If missing, the constructor will try to extract the ids from \code{names(range)}.} \item{\dots}{Additional items which will all be interpreted as further display parameters. See \code{\link{settings}} and the "Display Parameters" section below for details.} } \details{ A \code{GenomeAxisTrack} can be customized using the familiar display parameters. By providing a \code{GRanges} or \code{IRanges} object to the constructor, ranges on the axis can be further highlighted.\ With the \code{scale} display parameter, a small scale indicator can be shown instead of the entire genomic axis. The scale can either be provided as a fraction of the plotting region (it will be rounded to the nearest human readable absolute value) or as an absolute value and is always displayed in bp, kb, mb or gb units. Note that most display parameters for the \code{GenomeAxisTrack} are ignored when a scale is used insterad of the full axis. In particular, only the parameters \code{exponent}, \code{alpha}, \code{lwd}, \code{col}, \code{cex}, \code{distFromAxis} and \code{labelPos} are used. } \value{ The return value of the constructor function is a new object of class \code{GenomeAxisTrack}. } \section{Slots}{ \describe{ \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, highlighted on the axis. } \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{GdObject}"}, directly. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{GenomeAxisTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{[}{\code{signature(x="GenomeAxisTrack")}: subset the \code{GRanges} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}: subsetting incides.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{start, end, width}{\code{signature(x="GenomeAxisTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{range}{\code{signature(x="GenomeAxisTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="GenomeAxisTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{strand}{\code{signature(x="GenomeAxisTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{values}{\code{signature(x="GenomeAxisTrack")}: return all additional annotation information except for the genomic coordinates for the track items. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{subset}{\code{signature(x="GenomeAxisTrack")}: subset a \code{GenomeAxisTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20, sort=TRUE)}} } } \item{length}{\code{signature(x="GenomeAxisTrack")}: return the number of items stored in the \code{ranges} slot. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } } \emph{Internal methods:} \describe{ \item{drawGD}{\code{signature(GdObject="GenomeAxisTrack")}: the workhorse function to plot the object. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj)}} \item{}{\code{Gviz:::drawGD(obj, minBase=1, maxBase=100)}} \item{}{\code{Gviz:::drawGD(obj, prepare=TRUE, subset=FALSE)}} } } \item{collapseTrack}{\code{signature(GdObject="GenomeAxisTrack")}: preprocess the track before plotting. This will collapse overlapping track items based on the available resolution and increase the width and height of all track objects to a minimum value to avoid rendering issues. See \code{\link{collapsing}} for details. \emph{Usage:} \code{collapseTrack(GdObject, diff=.pxResolution(coord="x"))} \emph{Additional Arguments:} \describe{ \item{}{\code{diff}: the minimum pixel width to display, everything below that will be inflated to a width of \code{diff}.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::collapseTrack(obj)}} } } \item{initialize}{\code{signature(.Object="GenomeAxisTrack")}: initialize the object } \item{show}{\code{signature(object="GenomeAxisTrack")}: show a human-readable summary of the object } } \bold{\emph{Inherited:}} \describe{ \item{displayPars}{\code{signature(x="GenomeAxisTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="GenomeAxisTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="GenomeAxisTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="GenomeAxisTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="GenomeAxisTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="GenomeAxisTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{GenomeAxisTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="GenomeAxisTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{GenomeAxisTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="GenomeAxisTrack")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="GenomeAxisTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="GenomeAxisTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="GenomeAxisTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="GenomeAxisTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } \item{drawAxis}{\code{signature(GdObject="GenomeAxisTrack")}: add a y-axis to the title panel of a track if necessary. Unless overwritten in one of the sub-classes this usualy does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawAxis(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{drawGrid}{\code{signature(GdObject="GenomeAxisTrack")}: superpose a grid on top of a track if necessary. Unless overwritten in one of the sub-classes this usualy does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawGrid(GdObject, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{GenomeAxisTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{add35=FALSE}: Logical scalar. Add 3' to 5' direction indicators.} \item{}{\code{add53=FALSE}: Logical scalar. Add 5' to 3' direction indicators.} \item{}{\code{background.title="transparent"}: Character scalar. The background color for the title panel. Defaults to omit the background.} \item{}{\code{cex=0.8}: Numeric scalar. The overall font expansion factor for the axis annotation text.} \item{}{\code{cex.id=0.7}: Numeric scalar. The text size for the optional range annotation.} \item{}{\code{col="darkgray"}: Character scalar. The color for the axis lines and tickmarks.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.id="white"}: Character scalar. The text color for the optional range annotation.} \item{}{\code{col.range="cornsilk4"}: Character scalar. The border color for highlighted regions on the axis.} \item{}{\code{distFromAxis=1}: Numeric scalar. Control the distance of the axis annotation from the tick marks.} \item{}{\code{exponent=NULL}: Numeric scalar. The exponent for the axis coordinates, e.g., 3 means mb, 6 means gb, etc. The default is to automatically determine the optimal exponent.} \item{}{\code{fill.range="cornsilk3"}: Character scalar. The fill color for highlighted regions on the axis.} \item{}{\code{fontcolor="#808080"}: Character scalar. The font color for the axis annotation text.} \item{}{\code{fontsize=10}: Numeric scalar. Font size for the axis annotation text in points.} \item{}{\code{labelPos="alternating"}: Character vector, one in "alternating", "revAlternating", "above" or "below". The vertical positioning of the axis labels. If \code{scale} is not \code{NULL}, the possible values are "above", "below" and "beside".} \item{}{\code{littleTicks=FALSE}: Logical scalar. Add more fine-grained tick marks.} \item{}{\code{lwd=2}: Numeric scalar. The line width for the axis elementes.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{scale=NULL}: Numeric scalar. If not \code{NULL} a small scale is drawn instead of the full axis, if the value is between 0 and 1 it is interpreted as a fraction of the current plotting region, otherwise as an absolute length value in genomic coordinates.} \item{}{\code{showId=FALSE}: Logical scalar. Show the optional range highlighting annotation.} \item{}{\code{showTitle=FALSE}: Logical scalar. Plot a title panel. Defaults to omit the title panel.} \item{}{\code{size=NULL}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function. Defaults to the ideal size based on the other track settings.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{GenomeAxisTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"} \code{(Aliases: fontcolor.title)}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{rotation.title=90} \code{(Aliases: rotation.title)}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\linkS4class{StackedTrack}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \examples{ ## Construct object axTrack <- GenomeAxisTrack(name="Axis", range <- IRanges(start=c(100, 300, 800), end=c(150, 400, 1000))) \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(axTrack) <- list(fontfamily=font, fontfamily.title=font) } } ## Plotting plotTracks(axTrack, from=0, to=1100) ## Track names names(axTrack) names(axTrack) <- "foo" ## Subsetting and splitting subTrack <- subset(axTrack, from=0, to=500) length(subTrack) subTrack[1] split(axTrack, c(1,1,2)) ## Accessors start(axTrack) end(axTrack) width(axTrack) strand(axTrack) range(axTrack) ranges(axTrack) ## Annotation values(axTrack) ## Grouping group(axTrack) ## HTML image map coords(axTrack) tags(axTrack) axTrack <- plotTracks(axTrack)$foo coords(axTrack) tags(axTrack) ## adding an axis to another track data(cyp2b10) grTrack <- GeneRegionTrack(start=26682683, end=26711643, rstart=cyp2b10$start, rends=cyp2b10$end, chromosome=7, genome="mm9", transcript=cyp2b10$transcript, gene=cyp2b10$gene, symbol=cyp2b10$symbol, name="Cyp2b10", strand=cyp2b10$strand) plotTracks(list(grTrack, GenomeAxisTrack())) plotTracks(list(grTrack, GenomeAxisTrack(scale=0.1))) plotTracks(list(grTrack, GenomeAxisTrack(scale=5000))) plotTracks(list(grTrack, GenomeAxisTrack(scale=0.5, labelPos="below"))) } \keyword{classes} Gviz/man/HighlightTrack-class.Rd0000644000175400017540000005766613175714140017607 0ustar00biocbuildbiocbuild\name{HighlightTrack-class} \Rdversion{1.1} \docType{class} \alias{HighlightTrack-class} \alias{HighlightTrack} \alias{initialize,HighlightTrack-method} \alias{setStacks,HighlightTrack-method} \alias{subset,HighlightTrack-method} \alias{consolidateTrack,HighlightTrack-method} \alias{show,HighlightTrack-method} \alias{length,HighlightTrack-method} \alias{chromosome<-,HighlightTrack-method} \alias{displayPars<-,HighlightTrack,list-method} \title{HighlightTrack class and methods} \description{ A container for other track objects from the Gviz package that allows for the addition of a common highlighting area across tracks. } \section{Objects from the Class}{ Objects can be created using the constructor function \code{HighlightTrack}. } \usage{ HighlightTrack(trackList=list(), range=NULL, start=NULL, end=NULL, width=NULL, chromosome, genome, name="HighlightTrack", ...) } \arguments{ \item{trackList}{A list of Gviz track objects that all have to inherit from class \code{GdObject}.} \item{range}{ An optional meta argument to handle the different input types. If the \code{range} argument is missing, all the relevant information to create the object has to be provided as individual function arguments (see below). The different input options for \code{range} are: \describe{ \item{}{A \code{GRanges} object: the genomic ranges for the highlighting regions.} \item{}{An \code{\linkS4class{IRanges}} object: almost identical to the \code{GRanges} case, except that the chromosome information has to be provided in the separate \code{chromosome} argument, because it can not be directly encoded in an \code{IRanges} object.} \item{}{A \code{data.frame} object: the \code{data.frame} needs to contain at least the two mandatory columns \code{start} and \code{end} with the range coordinates. It may also contain a \code{chromosome} column with the chromosome information for each range. If missing, this information will be drawn from the constructor's \code{chromosome} argument.} } } \item{start, end}{An integer scalar with the genomic start or end coordinates for the highlighting range. Can also be supplied as part of the \code{range} argument.} \item{width}{An integer vector of widths for highlighting ranges. This can be used instead of either \code{start} or \code{end} to specify the range coordinates.} \item{chromosome}{The chromosome on which the track's genomic ranges are defined. A valid UCSC chromosome identifier if \code{options(ucscChromosomeNames=TRUE)}. Please note that in this case only syntactic checking takes place, i.e., the argument value needs to be an integer, numeric character or a character of the form \code{chrx}, where \code{x} may be any possible string. The user has to make sure that the respective chromosome is indeed defined for the the track's genome. If not provided here, the constructor will try to build the chromosome information based on the available inputs, and as a last resort will fall back to the value \code{chrNA}. Please note that by definition all objects in the \code{Gviz} package can only have a single active chromosome at a time (although internally the information for more than one chromosome may be present), and the user has to call the \code{chromosome<-} replacement method in order to change to a different active chromosome.} \item{genome}{The genome on which the track's ranges are defined. Usually this is a valid UCSC genome identifier, however this is not being formally checked at this point. If not provided here the constructor will try to extract this information from the provided inputs, and eventually will fall back to the default value of \code{NA}.} \item{name}{Character scalar of the track's name. This is not really used and only exists fro completeness.} \item{\dots}{All additional parameters are ignored.} } \details{ A track to conceptionally group other Gviz track objects into a meta track for the sole purpose of overlaying all the contained tracks with the same highlighting region as defined by the objects genomic ranges. During rendering the contained tracks will be treated as if they had been provided to the \code{plotTracks} function as individual objects. } \section{Slots}{ \describe{ \item{\code{trackList}:}{Object of class \code{"list"}, holding the subtrack objects.} \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{RangeTrack}"}, directly. Class \code{"\linkS4class{GdObject}"}, by class "RangeTrack", distance 2. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{HighlightTrack}. \bold{\emph{Internal methods:}} \describe{ \item{setStacks}{\code{signature(GdObject="HighlightTrack")}: recompute the stacks based on the available space and on the object's track items and stacking settings. This really just calls the \code{setStacks} methods for the contained tracks and only exists for dispatching reasons. \emph{Usage:} \code{setStacks(GdObject, ...)} \emph{Examples:} \describe{ \item{}{\code{Gviz:::setStacks(obj)}} } } \item{initialize}{\code{signature(.Object="HighlightTrack")}: initialize the object. } \item{subset}{\code{signature(x="HighlightTrack")}: subset all the contained tracks in an \code{HighlightTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: additional arguments are passed on to the next methods.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj)}} } } \item{length}{\code{signature(x="HighlightTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } } \bold{\emph{Inherited methods:}} \describe{ \item{[}{\code{signature(x="HighlightTrack", i="ANY", j="ANY", drop="ANY")}: subset the items in the \code{HighlightTrack} object. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices, \code{j} is ignored.} \item{}{\code{drop}: argument is ignored.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{chromosome}{\code{signature(GdObject="HighlightTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="HighlightTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="HighlightTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="HighlightTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="HighlightTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{genome}{\code{signature(x="HighlightTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="HighlightTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{range}{\code{signature(x="HighlightTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="HighlightTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{split}{\code{signature(x="HighlightTrack")}: split a \code{HighlightTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of objects of the same class as the input object, all inheriting from class \code{HighlightTrack}. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{displayPars}{\code{signature(x="HighlightTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="HighlightTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="HighlightTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="HighlightTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="HighlightTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="HighlightTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{HighlightTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="HighlightTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{HighlightTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{names}{\code{signature(x="HighlightTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="HighlightTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="HighlightTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="HighlightTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{HighlightTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{col="red"}: Integer or character scalar. The boder color for the highlighting regions.} \item{}{\code{fill="#FFE3E6"}: Integer or character scalar. The fill color for the highlighting regions.} \item{}{\code{inBackground=TRUE}: Logical scalar. Place the box in the background or in the foreground.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{HighlightTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text and glyphs, unless a more specific definition exists.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"} \code{(Aliases: fontcolor.title)}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{rotation.title=90} \code{(Aliases: rotation.title)}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{OverlayTrack}} \code{\linkS4class{RangeTrack}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \keyword{classes} Gviz/man/IdeogramTrack-class.Rd0000644000175400017540000007156613175714140017422 0ustar00biocbuildbiocbuild\name{IdeogramTrack-class} \Rdversion{1.1} \docType{class} \alias{IdeogramTrack-class} \alias{IdeogramTrack} \alias{drawGD,IdeogramTrack-method} \alias{end,IdeogramTrack-method} \alias{end<-,IdeogramTrack-method} \alias{initialize,IdeogramTrack-method} \alias{show,IdeogramTrack-method} \alias{start,IdeogramTrack-method} \alias{start<-,IdeogramTrack-method} \alias{subset,IdeogramTrack-method} \alias{width,IdeogramTrack-method} \alias{width<-,IdeogramTrack-method} \alias{length,IdeogramTrack-method} \alias{[,IdeogramTrack-method} \alias{[,IdeogramTrack,ANY,ANY-method} \alias{[,IdeogramTrack,ANY,ANY,ANY-method} \alias{chromosome<-,IdeogramTrack-method} \alias{genome<-,IdeogramTrack-method} \alias{position,IdeogramTrack-method} \title{IdeogramTrack class and methods} \description{ A class to represent the schematic display of a chromosome, also known as an ideogram. The respective information is typically directly fetched from UCSC. } \section{Objects from the Class}{ Objects can be created using the constructor function \code{IdeogramTrack}. } \usage{ IdeogramTrack(chromosome=NULL, genome, name=NULL, bands=NULL, ...) } \arguments{ \item{chromosome}{The chromosome for which to create the ideogram. Has to be a valid UCSC chromosome identifier of the form \code{chrx}, or a single integer or numeric character unless \code{option(ucscChromosomeNames=FALSE)}. The user has to make sure that the respective chromosome is indeed defined for the the track's genome.} \item{genome}{The genome on which to create the ideogram. This has to be a valid UCSC genome identifier if the ideogram data is to be fetched from the UCSC repository.} \item{name}{Character scalar of the track's name used in the title panel when plotting. Defaults to the selected chromosome.} \item{bands}{A \code{data.frame} with the cytoband information for all available chromosomes on the genome similar to the data that would be fetched from UCSC. The table needs to contain the mandatory columns \code{chrom}, \code{chromStart}, \code{chromEnd}, \code{name} and \code{gieStain} with the chromosome name, cytoband start and end coordinates, cytoband name and coloring information, respectively. This can be used when no connection to the internet is available or when the cytoband information has been cached locally to avoid the somewhat slow connection to UCSC.} \item{\dots}{Additional items which will all be interpreted as further display parameters.} } \value{ The return value of the constructor function is a new object of class \code{IdeogramTrack}. } \section{Slots}{ \describe{ \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{StackedTrack}} containing the chromosome band information. This slot is filled automatically by the initializer method.} \item{\code{bandTable}:}{Object of class\code{\linkS4class{data.frame}} containing the chromosome band information in the format of UCSC. This slot is filled automatically by the initializer.} \item{\code{bandTable}:}{Object of class \code{\linkS4class{data.frame}} containing the chromosome band information for all chromosomes. This slot is filled automatically by the initializer method and only exists to prevent having to redo the rtracklayer query ervery time the chromosome is changed.} \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{StackedTrack}} defining the ideogram's chromosome.} \item{\code{genome}:}{Object of class \code{"character"} inherited from class \code{\linkS4class{StackedTrack}} defining the ideogram's genome.} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{RangeTrack}"}, directly. Class \code{"\linkS4class{GdObject}"}, by class "RangeTrack", distance 2. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{IdeogramTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{start, end, width, position}{\code{signature(x/GdObject="IdeogramTrack")}: although \code{IdeogramTracks} inherit from \code{RangeTrack}, the notion of coordinates is not particularly useful. Hence the coordinate methods all return \code{NULL}. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="RangeTrack")}: although \code{IdeogramTracks} inherit from \code{RangeTrack}, the notion of coordinates is not particularly useful. Hence the coordinate replacement methods all return the unaltered input object. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{chromosome<-}{\code{signature(GdObject="IdeogramTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. The chromosome band information is updated automatically. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{genome<-}{\code{signature(x="IdeogramTrack")}: set the track's genome. This has to be a valid UCSC identifier. The chromosome band information is updated automatically. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{subset}{\code{signature(x="IdeogramTrack")}: subsetting does not make much sense for these object, hence the unalered object is returned. \emph{Usage:} \code{subset(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj)}} } } \item{[}{\code{signature(x="IdeogramTrack", i="ANY", j="ANY", drop="ANY")}: subsetting of \code{IdeogramTrack} objects does not make much sense, hence the unaltered input argument is returned. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices, \code{j} is ignored.} \item{}{\code{drop}: argument is ignored.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } } \bold{\emph{Internal methods:}} \describe{ \item{drawGD}{\code{signature(gdObject="IdeogramTrack")}: plot the object to a graphics device. The return value of this method is the input object, potentially updated during the plotting operation. Internally, there are two modes in which the method can be called. Either in 'prepare' mode, in which case no plotting is done but the object is preprocessed based on the available space, or in 'plotting' mode, in which case the actual graphical output is created. Since subsetting of the object can be potentially costly, this can be switched off in case subsetting has already been performed before or is not necessary. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj)}} \item{}{\code{Gviz:::drawGD(obj, minBase=1, maxBase=100)}} \item{}{\code{Gviz:::drawGD(obj, prepare=TRUE, subset=FALSE)}} } } \item{initialize}{\code{signature(.Object="IdeogramTrack")}: initialize the object. } \item{show}{\code{signature(object="IdeogramTrack")}: show a human-readable summary of the object. } } \bold{\emph{Inherited methods:}} \describe{ \item{chromosome}{\code{signature(GdObject="IdeogramTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{feature}{\code{signature(GdObject="IdeogramTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="IdeogramTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{IdeogramTrack}. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="IdeogramTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{length}{\code{signature(x="IdeogramTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="IdeogramTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="IdeogramTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{split}{\code{signature(x="IdeogramTrack")}: splitting is not a useful operation for \code{IdeogramTrack} objects. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{strand}{\code{signature(x="IdeogramTrack")}: strand information is not relevant for \code{IdeogramTrack} objects. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="IdeogramTrack")}: strand information is not relevant for \code{IdeogramTrack} objects. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="IdeogramTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{coerce}{\code{signature(from="IdeogramTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{displayPars}{\code{signature(x="IdeogramTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="IdeogramTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="IdeogramTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="IdeogramTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="IdeogramTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="IdeogramTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{IdeogramTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="IdeogramTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{IdeogramTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="IdeogramTrack")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="IdeogramTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="IdeogramTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="IdeogramTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="IdeogramTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } \item{drawAxis}{\code{signature(GdObject="IdeogramTrack")}: add a y-axis to the title panel of a track if necessary. For \code{IdeogramTrack} objects this does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawAxis(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{drawGrid}{\code{signature(GdObject="IdeogramTrack")}: superpose a grid on top of a track if necessary. For \code{IdeogramTrack} objects this does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawGrid(GdObject, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj)}} } } } } \details{ Ideograms are schematic depictions of chromosomes, including chromosome band information and centromer location. The relevant data for various species is stored in the UCSC data base. The initializer method of the class will automatically fetch the respective data for a given genome and chromosome from UCSC and fill the appropriate object slots. When plotting \code{IdeogramTracks}, the current genomic location is indicated on the chromosome by a colored box. The \code{Gviz.ucscUrl} option controls which URL is being used to connect to UCSC. For instance, one could switch to the European UCSC mirror by calling \code{options(Gviz.ucscUrl="http://genome-euro.ucsc.edu/cgi-bin/"}. } \section{Display Parameters}{ The following display parameters are set for objects of class \code{IdeogramTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{background.title="transparent"}: Character scalar. The background color for the title panel. Defaults to omit the background.} \item{}{\code{bevel=0.45}: Numeric scalar, between 0 and 1. The level of smoothness for the two ends of the ideogram.} \item{}{\code{cex=0.8}: Numeric scalar. The overall font expansion factor for the chromosome name text.} \item{}{\code{cex.bands=0.7}: Numeric scalar. The font expansion factor for the chromosome band identifier text.} \item{}{\code{col="red"}: Character scalar. The border color used for the highlighting of the currently displayed genomic region.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{fill="#FFE3E6"}: Character scalar. The fill color used for the highlighting of the currently displayed genomic region.} \item{}{\code{fontcolor="#808080"}: Character scalar. The font color for the chromosome name text.} \item{}{\code{fontface=1}: Character scalar. The font face for the chromosome name text.} \item{}{\code{fontfamily="sans"}: Character scalar. The font family for the chromosome name text.} \item{}{\code{fontsize=10}: Numeric scalar. The font size for the chromosome name text.} \item{}{\code{lty=1}: Character or integer scalar. The line type used for the highlighting of the currently displayed genomic region.} \item{}{\code{lwd=1}: Numeric scalar. The line width used for the highlighting of the currently displayed genomic region.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{outline=FALSE}: Logical scalar. Add borders to the individual chromosome staining bands.} \item{}{\code{showBandId=FALSE}: Logical scalar. Show the identifier for the chromosome bands if there is space for it.} \item{}{\code{showId=TRUE}: Logical scalar. Indicate the chromosome name next to the ideogram.} \item{}{\code{showTitle=FALSE}: Logical scalar. Plot a title panel. Defaults to omit the title panel.} \item{}{\code{size=NULL}: Numeric scalar. The relative size of the track. Defaults to automatic size setting. Can also be overridden in the \code{\link{plotTracks}} function.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{IdeogramTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"} \code{(Aliases: fontcolor.title)}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{rotation.title=90} \code{(Aliases: rotation.title)}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{data.frame}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\linkS4class{StackedTrack}} \code{\link{clearSessionCache}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \note{ When fetching ideogram data from UCSC the results are cached for faster acces. See \code{\link{clearSessionCache}} on details to delete these cached items. } \examples{ \dontshow{ ## Load some sample data data(idTrack) } ## Construct the object \dontrun{ idTrack <- IdeogramTrack(chromosome=7, genome="mm9") } \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(idTrack) <- list(fontfamily=font, fontfamily.title=font) } } ## Plotting plotTracks(idTrack, from=5000000, to=9000000) ## Track names names(idTrack) names(idTrack) <- "foo" plotTracks(idTrack, from=5000000, to=9000000) ## Accessors chromosome(idTrack) \dontrun{ chromosome(idTrack) <- "chrX" } genome(idTrack) \dontrun{ genome(id) <- "hg19" } range(idTrack) ranges(idTrack) ## Annotation values(idTrack) ## coercion as(idTrack, "data.frame") } \keyword{classes} Gviz/man/ImageMap-class.Rd0000644000175400017540000000250113175714140016345 0ustar00biocbuildbiocbuild\name{ImageMap-class} \Rdversion{1.1} \docType{class} \alias{ImageMap-class} \alias{coords,ImageMap-method} \alias{tags,ImageMap-method} \title{ImageMap class and methods} \description{ HTML image map information for annotation tracks. } \section{Objects from the Class}{ Objects of the class are usually not created by the user, hence the constructor function \code{ImageMap} is not exported in the name space. } \section{Slots}{ \describe{ \item{\code{coords}:}{Object of class \code{"matrix"}, the image map coordinats. } \item{\code{tags}:}{Object of class \code{"list"}, the individual HTML tags for the image map. } } } \section{Extends}{ Class \code{"ImageMapOrNULL"}, directly. } \section{Methods}{ \describe{ \item{coords}{\code{signature(ImageMap="ImageMap")}: return the coordinates from the image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="ImageMap")}: return the tags from the image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \author{ Florian Hahne } \keyword{classes} Gviz/man/NumericTrack-class.Rd0000644000175400017540000005575213175714140017274 0ustar00biocbuildbiocbuild\name{NumericTrack-class} \Rdversion{1.1} \docType{class} \alias{NumericTrack-class} \alias{NumericTrack} \alias{drawAxis,NumericTrack-method} \alias{drawGrid,NumericTrack-method} \title{NumericTrack class and methods} \description{ The virtual parent class for all track items in the Gviz package designed to contain numeric data. This class merely exists for dispatching purpose. } \section{Objects from the class}{ A virtual class: No objects may be created from it. } \section{Slots}{ \describe{ \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}}} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{RangeTrack}"}, directly. Class \code{"\linkS4class{GdObject}"}, by class "RangeTrack", distance 2. } \section{Methods}{ \bold{\emph{Internal methods:}} \describe{ \item{drawAxis}{\code{signature(GdObject="NumericTrack")}: add a y-axis to the title panel of a track. \emph{Usage:} \code{drawAxis(x, from, to, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, restrict to coordinate range before computing the axis ranges.} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{drawGrid}{\code{signature(GdObject="NumericTrack")}: superpose a grid on top of a track. \emph{Usage:} \code{drawGrid(GdObject, from, to, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: integer scalars, restrict to coordinate range before computing the grid lines.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj)}} } } \item{initialize}{\code{signature(.Object="NumericTrack")}: initialize the object.} } \bold{\emph{Inherited methods:}} \describe{ \item{[}{\code{signature(x="NumericTrack", i="ANY", j="ANY", drop="ANY")}: subset the items in the \code{NumericTrack} object. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices, \code{j} is ignored.} \item{}{\code{drop}: argument is ignored.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{chromosome}{\code{signature(GdObject="NumericTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="NumericTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="NumericTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="NumericTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="NumericTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{feature}{\code{signature(GdObject="NumericTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="NumericTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{NumericTrack}. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="NumericTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="NumericTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="NumericTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="NumericTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="NumericTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{split}{\code{signature(x="NumericTrack")}: split a \code{NumericTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of objects of the same class as the input object, all inheriting from class \code{NumericTrack}. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{strand}{\code{signature(x="NumericTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="NumericTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="NumericTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{coerce}{\code{signature(from="NumericTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{subset}{\code{signature(x="NumericTrack")}: subset a \code{NumericTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20, sort=TRUE)}} } } \item{displayPars}{\code{signature(x="NumericTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="NumericTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="NumericTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="NumericTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="NumericTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="NumericTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{NumericTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="NumericTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{NumericTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="NumericTrack")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="NumericTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="NumericTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="NumericTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="NumericTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \author{Florian Hahne} \section{Display Parameters}{ No formal display parameters are defined for objects of class \code{NumericTrack}. Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{NumericTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panels.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is computed based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col="#0080FF"}: Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The font color for the title panels.} \item{}{\code{collapse=TRUE}: Boolean controlling wether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \keyword{classes} Gviz/man/OverlayTrack-class.Rd0000644000175400017540000003512113175714140017277 0ustar00biocbuildbiocbuild\name{OverlayTrack-class} \Rdversion{1.1} \docType{class} \alias{OverlayTrack-class} \alias{OverlayTrack} \alias{drawGD,OverlayTrack-method} \alias{initialize,OverlayTrack-method} \alias{setStacks,OverlayTrack-method} \alias{subset,OverlayTrack-method} \alias{show,OverlayTrack-method} \alias{length,OverlayTrack-method} \alias{consolidateTrack,OverlayTrack-method} \alias{chromosome<-,OverlayTrack-method} \alias{displayPars<-,OverlayTrack,list-method} \title{OverlayTrack class and methods} \description{ A container for other track objects from the Gviz package that allows for overlays of their content on the same region of the plot. } \section{Objects from the Class}{ Objects can be created using the constructor function \code{OverlayTrack}. } \usage{ OverlayTrack(trackList=list(), name="OverlayTrack", ...) } \arguments{ \item{trackList}{A list of Gviz track objects that all have to inherit from class \code{GdObject}.} \item{name}{Character scalar of the track's name. This is not really used and only exists fro completeness.} \item{\dots}{All additional parameters are ignored.} } \details{ A track to conceptionally group other Gviz track objects into a meta track in order to merge them into a single overlay visualization. Only the first track in the supplied list will be inferred when setting up the track title and axis, for all the other tracks only the panel content is plotted. } \section{Slots}{ \describe{ \item{\code{trackList}:}{Object of class \code{"list"}, holding the subtrack objects.} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{GdObject}"}, directly. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{OverlayTrack}. \bold{\emph{Internal methods:}} \describe{ \item{setStacks}{\code{signature(GdObject="OverlayTrack")}: recompute the stacks based on the available space and on the object's track items and stacking settings. This really just calls the \code{setStacks} methods for the contained tracks and only exists for dispatching reasons. \emph{Usage:} \code{setStacks(GdObject, ...)} \emph{Examples:} \describe{ \item{}{\code{Gviz:::setStacks(obj)}} } } \item{initialize}{\code{signature(.Object="OverlayTrack")}: initialize the object. } \item{length}{\code{signature(x="OverlayTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{subset}{\code{signature(x="OverlayTrack")}: subset all the contained tracks in an \code{OverlayTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: additional arguments are passed on to the next methods.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj)}} } } } \bold{\emph{Inherited methods:}} \describe{ \item{displayPars}{\code{signature(x="OverlayTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="OverlayTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="OverlayTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="OverlayTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="OverlayTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="OverlayTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{OverlayTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="OverlayTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{OverlayTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{names}{\code{signature(x="OverlayTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="OverlayTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="OverlayTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="OverlayTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ No formal display parameters are defined for objects of class \code{OverlayTrack}. Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{OverlayTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panels.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is computed based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col="#0080FF"}: Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The font color for the title panels.} \item{}{\code{collapse=TRUE}: Boolean controlling wether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GRanges}} \code{\linkS4class{HighlightTrack}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \keyword{classes} Gviz/man/RangeTrack-class.Rd0000644000175400017540000006057513175714140016725 0ustar00biocbuildbiocbuild\name{RangeTrack-class} \Rdversion{1.1} \docType{class} \alias{RangeTrack-class} \alias{RangeTrack} \alias{[,RangeTrack-method} \alias{[} \alias{[,RangeTrack,ANY,ANY-method} \alias{[,RangeTrack,ANY,ANY,ANY-method} \alias{chromosome,RangeTrack-method} \alias{chromosome} \alias{chromosome<-,RangeTrack-method} \alias{chromosome<-} \alias{isActiveSeq,RangeTrack-method} \alias{coerce,RangeTrack,data.frame-method} \alias{end,RangeTrack-method} \alias{end<-,RangeTrack-method} \alias{subset,RangeTrack-method} \alias{feature} \alias{feature,RangeTrack-method} \alias{feature<-} \alias{feature<-,RangeTrack,character-method} \alias{genome,RangeTrack-method} \alias{genome<-,RangeTrack-method} \alias{initialize,RangeTrack-method} \alias{length,RangeTrack-method} \alias{position} \alias{range} \alias{position,RangeTrack-method} \alias{range,RangeTrack-method} \alias{ranges,RangeTrack-method} \alias{ranges<-,RangeTrack-method} \alias{seqnames,RangeTrack-method} \alias{seqlevels,RangeTrack-method} \alias{seqinfo,RangeTrack-method} \alias{split,RangeTrack,ANY-method} \alias{split,RangeTrack-method} \alias{start,RangeTrack-method} \alias{start<-,RangeTrack-method} \alias{strand,RangeTrack-method} \alias{strand<-,RangeTrack,ANY-method} \alias{values,RangeTrack-method} \alias{width,RangeTrack-method} \alias{width<-,RangeTrack-method} \alias{min,RangeTrack-method} \alias{max,RangeTrack-method} \alias{consolidateTrack,RangeTrack-method} \title{RangeTrack class and methods} \description{ The virtual parent class for all track items in the Gviz package that contain some form of genomic ranges. } \section{Objects from the class}{ A virtual class: No objects may be created from it. } \section{Slots}{ \describe{ \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, the genomic ranges of the track items as well as additional annotation information in its \code{elementMetaData} slot. Please not that the slot is actually implemented as a class union between \code{GRanges} and \code{\linkS4class{IRanges}} to increase efficiency, for instance for \code{\linkS4class{DataTrack}} objects. This usualy does not concern the user.} \item{\code{chromosome}:}{Object of class \code{"character"}, the chromosome on which the track is defined. There can only be a single chromosome for one track. For certain subclasses, the space of allowed chromosome names is limited (e.g., only those chromosomes that exist for a particular genome). Throughout the package, chromosome name have to be entered either as a single integer scalar or as a character scalar of the form \code{chrXYZ}, where \emph{XYZ} may be an arbitrary character string.} \item{\code{genome}:}{Object of class \code{"character"}, the genome for which the track is defined. For most sub-classes this has to be valid UCSC genome identifier, however this may not always be formally checked upon object instantiation.} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}}.} \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{GdObject}"}, directly. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{RangeTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{[}{\code{signature(x="RangeTrack", i="ANY", j="ANY", drop="ANY")}: subset the items in the \code{RangeTrack} object. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices, \code{j} is ignored.} \item{}{\code{drop}: argument is ignored.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{chromosome}{\code{signature(GdObject="RangeTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="RangeTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="RangeTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="RangeTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="RangeTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{feature}{\code{signature(GdObject="RangeTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="RangeTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{RangeTrack}. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="RangeTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="RangeTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="RangeTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="RangeTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="RangeTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{split}{\code{signature(x="RangeTrack")}: split a \code{RangeTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of objects of the same class as the input object, all inheriting from class \code{RangeTrack}. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{strand}{\code{signature(x="RangeTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="RangeTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="RangeTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{min}{\code{signature(...="RangeTrack")}: return the start position for the leftmost range item. \emph{Examples:} \describe{ \item{}{\code{min(obj)}} } } \item{max}{\code{signature(...="RangeTrack")}: return the end position for the rightmost range item. \emph{Examples:} \describe{ \item{}{\code{max(obj)}} } } \item{coerce}{\code{signature(from="RangeTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{subset}{\code{signature(x="RangeTrack")}: subset a \code{RangeTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20, sort=TRUE)}} } } } \bold{\emph{Internal methods:}} \describe{ \item{initialize}{\code{signature(.Object="RangeTrack")}: initialize the object. } } \bold{\emph{Inherited methods:}} \describe{ \item{displayPars}{\code{signature(x="RangeTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="RangeTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="RangeTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="RangeTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="RangeTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="RangeTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{RangeTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="RangeTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{RangeTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="RangeTrack")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="RangeTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="RangeTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="RangeTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="RangeTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } \item{drawAxis}{\code{signature(GdObject="RangeTrack")}: add a y-axis to the title panel of a track if necessary. Unless overwritten in one of the sub-classes this usualy does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawAxis(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{drawGrid}{\code{signature(GdObject="RangeTrack")}: superpose a grid on top of a track if necessary. Unless overwritten in one of the sub-classes this usualy does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawGrid(GdObject, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj)}} } } } } \section{Display Parameters}{ No formal display parameters are defined for objects of class \code{RangeTrack}. Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{RangeTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panels.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is computed based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col="#0080FF"}: Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The font color for the title panels.} \item{}{\code{collapse=TRUE}: Boolean controlling wether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DataTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\link{collapsing}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \keyword{classes} Gviz/man/ReferenceTrack-class.Rd0000644000175400017540000000520613175714140017555 0ustar00biocbuildbiocbuild\name{ReferenceTrack-class} \Rdversion{1.1} \docType{class} \alias{ReferenceTrack-class} \alias{ReferenceTrack} \alias{availableDefaultMapping} \alias{initialize,ReferenceTrack-method} \title{ReferenceTrack class and methods} \description{ A class allow for on-demand streaming of data off the file system. } \usage{ availableDefaultMapping(file, trackType) } \arguments{ \item{file}{A character scalar with a file name or just a file extension.} \item{trackType}{A character scalar with one of the available track types in the package.} } \section{Objects from the class}{ A virtual class: No objects may be created from it. } \section{Slots}{ \describe{ \item{\code{stream}:}{Object of class \code{function}. The import function to stream data of the file system. Needs to be able to handle the two mandatory arguments \code{file} (a \code{character} containing a valid file path) and \code{selection} (a \code{GRanges} object with the genomic region to plot).} \item{\code{reference}:}{Object of class \code{"character"}, the path to the file containing the data.} \item{\code{mapping}:}{Object of class \code{"list"}, a default mapping between the metadata columns of the returned \code{GRanges} object from the import function and the \code{elemenMetadata} columns that make up the final track object.} \item{\code{args}:}{Object of class \code{"list"}, the passed in constructor arguments during object instantiation. Those will be needed when fetching the data in order to fill all necessary slots.} \item{\code{defaults}:}{Object of class \code{"list"}, the relevant default values to be used when neither \code{mapping} nor \code{args} provides the necessary information.} } } \section{Methods}{ \bold{\emph{Internal methods:}} \describe{ \item{initialize}{\code{signature(.Object="ReferenceTrack")}: initialize the object.} } } \details{ The \code{availableDefaultMappings} function can be used to find out whether the package defines a mapping scheme between one of the many supported input file types and the metadata columns of the tracks's \code{GRanges} objects. } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\link{DataTrack}} } \keyword{classes} Gviz/man/SequenceTrack-class.Rd0000644000175400017540000006332213175714140017432 0ustar00biocbuildbiocbuild\name{SequenceTrack-class} \Rdversion{1.1} \docType{class} \alias{SequenceTrack-class} \alias{SequenceTrack} \alias{chromosome,SequenceTrack-method} \alias{chromosome<-,SequenceTrack-method} \alias{end,SequenceTrack-method} \alias{genome,SequenceTrack-method} \alias{initialize,SequenceTrack-method} \alias{initialize,ReferenceSequenceTrack-method} \alias{subseq,ReferenceSequenceTrack-method} \alias{initialize,SequenceBSgenomeTrack-method} \alias{initialize,SequenceDNAStringSetTrack-method} \alias{seqlevels,SequenceBSgenomeTrack-method} \alias{seqnames,SequenceBSgenomeTrack-method} \alias{seqlevels,SequenceDNAStringSetTrack-method} \alias{seqnames,SequenceDNAStringSetTrack-method} \alias{length,SequenceTrack-method} \alias{start,SequenceTrack-method} \alias{subseq,SequenceTrack-method} \alias{coerce,DNAString,Rle-method} \alias{width,SequenceTrack-method} \alias{consolidateTrack,SequenceTrack-method} \title{SequenceTrack class and methods} \description{ A track class to represent genomic sequences. The two child classes \code{SequenceDNAStringSetTrack} and \code{SequenceBSgenomeTrack} do most of the work, however in practise they are of no particular relevance to the user. } \section{Objects from the class}{ Objects can be created using the constructor function \code{SequenceTrack}. } \usage{ SequenceTrack(sequence, chromosome, genome, name="SequenceTrack", importFunction, stream=FALSE, ...) } \arguments{ \item{sequence}{ A meta argument to handle the different input types, making the construction of a \code{SequenceTrack} as flexible as possible. The different input options for \code{sequence} are: \describe{ \item{}{An object of class \code{\linkS4class{DNAStringSet}}. The individual \code{\linkS4class{DNAString}}s are considered to be the different chromosome sequences.} \item{}{An object of class \code{\linkS4class{BSgenome}}. The \code{Gviz} package tries to follow the \code{BSgenome} philosophy in that the respective chromosome sequences are only realized once they are first accessed.} \item{}{A \code{character} scalar: in this case the value of the \code{sequence} argument is considered to be a file path to an annotation file on disk. A range of file types are supported by the \code{Gviz} package as identified by the file extension. See the \code{importFunction} documentation below for further details.} } } \item{chromosome}{The currently active chromosome of the track. A valid UCSC chromosome identifier if \code{options(ucscChromosomeNames=TRUE)}. Please note that in this case only syntactic checking takes place, i.e., the argument value needs to be an integer, numeric character or a character of the form \code{chrx}, where \code{x} may be any possible string. The user has to make sure that sequences for the respective chromosomes are indeed part of the object. If not provided here, the constructor will set it to the first available sequence. Please note that by definition all objects in the \code{Gviz} package can only have a single active chromosome at a time (although internally the information for more than one chromosome may be present), and the user has to call the \code{chromosome<-} replacement method in order to change to a different active chromosome.} \item{genome}{The genome on which the track's ranges are defined. Usually this is a valid UCSC genome identifier, however this is not being formally checked at this point. For a \code{SequenceBSgenomeTrack} object, the genome information is extracted from the input \code{BSgenome} package. For a \code{DNAStringSet} it has too be provided or the constructor will fall back to the default value of \code{NA}.} \item{name}{Character scalar of the track's name used in the title panel when plotting.} \item{importFunction}{A user-defined function to be used to import the sequence data from a file. This only applies when the \code{sequence} argument is a character string with the path to the input data file. The function needs to accept an argument \code{file} containing the file path and has to return a proper \code{DNAStringSet} object with the sequence information per chromosome. A set of default import functions is already implemented in the package for a number of different file types, and one of these defaults will be picked automatically based on the extension of the input file name. If the extension can not be mapped to any of the existing import function, an error is raised asking for a user-defined import function. Currently the following file types can be imported with the default functions: \code{fa/fasta} and \code{2bit}. Both file types support indexing by genomic coordinates, and it makes sense to only load the part of the file that is needed for plotting. To this end, the \code{Gviz} package defines the derived \code{ReferenceSequenceTrack} class, which supports streaming data from the file system. The user typically does not have to deal with this distinction but may rely on the constructor function to make the right choice as long as the default import functions are used. However, once a user-defined import function has been provided and if this function adds support for indexed files, you will have to make the constructor aware of this fact by setting the \code{stream} argument to \code{TRUE}. Please note that in this case the import function needs to accept a second mandatory argument \code{selection} which is a \code{GRanges} object containing the dimensions of the plotted genomic range. As before, the function has to return an appropriate \code{DNAStringSet} object.} \item{stream}{A logical flag indicating that the user-provided import function can deal with indexed files and knows how to process the additional \code{selection} argument when accessing the data on disk. This causes the constructor to return a \code{ReferenceSequenceTrack} object which will grab the necessary data on the fly during each plotting operation.} \item{\dots}{Additional items which will all be interpreted as further display parameters. See \code{\link{settings}} and the "Display Parameters" section below for details.} } \value{ The return value of the constructor function is a new object of class \code{SequenceDNAStringSetTrack}, \code{SequenceBSgenomeTrack} ore \code{ReferenceSequenceTrack}, depending on the constructor arguments. Typically the user will not have to be troubled with this distinction and can rely on the constructor to make the right choice. } \section{details}{ Depending on the available space the class will use different options to plot a sequence. If single letters can be accomodated without overplotting those will be show. Otherwise, colored boxes will be used to indicate letters, and if there is not enough horizontal room to show those, a simple line will indicate presence of a sequence. The \code{min.width} and \code{fontsize} display parameters directly control this behaviour. Each of the five possible nucleotides (G, A, T, C, and N) will be endoded in a separate color. As default we use the colors suggested in the \code{biovizBase} package, but a user is free to set their own color scheme by providing a named character vector with color as display parameter \code{fontcolor}, with names equal to the five possible bases. } \section{Slots}{ \describe{ \item{\code{chromosome}:}{Object of class \code{"character"}, the chromosome on which the track is defined. There can only be a single chromosome for one track. Throughout the package, chromosome name have to be entered either as a single integer scalar or as a character scalar of the form \code{chrXYZ}, where \emph{XYZ} may be an arbitrary character string.} \item{\code{genome}:}{Object of class \code{"character"}, the genome for which the track is defined. This should be a valid UCSC genome identifier, however this may not always be formally checked upon object instantiation.} \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}}.} \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{GdObject}"}, directly. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object inheriting from class \code{SequenceTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{chromosome}{\code{signature(GdObject="SequenceTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="SequenceTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{genome}{\code{signature(x="SequenceTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="SequenceTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="SequenceTrack")}: return the number of nucleotides in the track's sequence. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{seqnames}{\code{signature(x="SequenceTrack")}: return the names (i.e., the chromosome) of the sequences contained in the object. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{seqnames(obj)}} } } \item{subseq}{\code{signature(x="SequenceTrack")}: Extract a sub-sequence from the track. \emph{Usage:} \code{subseq(x, start=NA, end=NA, width=NA)} \emph{Additional Arguments:} \describe{ \item{}{\code{start}: the start coordinate for the sub-sequence.} \item{}{\code{end}: the end coordinate for the sub-sequence.} \item{}{\code{width}: the width of the sub-sequence.} } \emph{Examples:} \describe{ \item{}{\code{subseq(obj, 1, 10)}} } } } \bold{\emph{Internal methods:}} \describe{ \item{initialize}{\code{signature(.Object="SequenceTrack")}: initialize the object. } } \bold{\emph{Inherited methods:}} \describe{ \item{displayPars}{\code{signature(x="SequenceTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="SequenceTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="SequenceTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="SequenceTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="SequenceTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="SequenceTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{SequenceTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="SequenceTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{SequenceTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{names}{\code{signature(x="SequenceTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="SequenceTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="SequenceTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="SequenceTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } \item{drawAxis}{\code{signature(GdObject="SequenceTrack")}: add a y-axis to the title panel of a track if necessary. Unless overwritten in one of the sub-classes this usualy does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawAxis(x, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawAxis(obj)}} } } \item{drawGrid}{\code{signature(GdObject="SequenceTrack")}: superpose a grid on top of a track if necessary. Unless overwritten in one of the sub-classes this usualy does not plot anything and returns \code{NULL}. \emph{Usage:} \code{drawGrid(GdObject, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGrid(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{SequenceTrack} upon instantiation \describe{ \item{}{\code{size=null}: Numeric scalar. The size of the track item. Defaults to auto-detect the size based on the other parameter settings.} \item{}{\code{fontcolor=getBioColor("DNA_BASES_N")}: Character vector. The colors used for the 5 possible nucleotides (G, A, T, C, N). Defaults to use colors as defined in the \code{biovizBase} package.} \item{}{\code{fontsize=10}: Numeric scalar. Controls the size of the sequence and thus also the level of plotable details. } \item{}{\code{fontface=2}: Numeric scalar. The face of the font. } \item{}{\code{lwd=2}: Numeric scalar. The width of the line when no indiviual letters can be plotted due to size limitations.} \item{}{\code{col="darkgray"}: Character scalar. The color of the line when no indiviual letters can be plotted due to size limitations.} \item{}{\code{min.width=2}: Numeric scalar. The minimum width of the colored boxes that are drawn when no indiviual letters can be plotted due to size limitations.} \item{}{\code{showTitle=FALSE}: Logical scalar. Do not show a title panel by default.} \item{}{\code{background.title="transparent"}: Character scalar. Make the title panel transparent by default.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{noLetters=FALSE}: Logical scalar. Always plot colored boxes (or a line) regardles of the available space.} \item{}{\code{add53=FALSE}: Logical scalar. Add a direction indicator.} \item{}{\code{add53=FALSE}: Logical scalar. Plot the sequence complement.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{SequenceTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is computed based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The font color for the title panels.} \item{}{\code{collapse=TRUE}: Boolean controlling wether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{BSgenome}} \code{\linkS4class{DataTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{DNAString}} \code{\linkS4class{DNAStringSet}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\link{collapsing}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \examples{ ## An empty object SequenceTrack() ## Construct from DNAStringSet library(Biostrings) letters <- c("A", "C", "T", "G", "N") set.seed(999) seqs <- DNAStringSet(c(chr1=paste(sample(letters, 100000, TRUE), collapse=""), chr2=paste(sample(letters, 200000, TRUE), collapse=""))) sTrack <- SequenceTrack(seqs, genome="hg19") sTrack ## Construct from BSGenome object if(require(BSgenome.Hsapiens.UCSC.hg19)){ sTrack <- SequenceTrack(Hsapiens) sTrack } ## Set active chromosome chromosome(sTrack) chromosome(sTrack) <- "chr2" head(seqnames(sTrack)) \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(sTrack) <- list(fontfamily=font, fontfamily.title=font) } } ## Plotting ## Sequences plotTracks(sTrack, from=199970, to=200000) ## Boxes plotTracks(sTrack, from=199800, to=200000) ## Line plotTracks(sTrack, from=1, to=200000) ## Force boxes plotTracks(sTrack, from=199970, to=200000, noLetters=TRUE) ## Direction indicator plotTracks(sTrack, from=199970, to=200000, add53=TRUE) ## Sequence complement plotTracks(sTrack, from=199970, to=200000, add53=TRUE, complement=TRUE) ## Colors plotTracks(sTrack, from=199970, to=200000, add53=TRUE, fontcolor=c(A=1, C=1, G=1, T=1, N=1)) ## Track names names(sTrack) names(sTrack) <- "foo" ## Accessors genome(sTrack) genome(sTrack) <- "mm9" length(sTrack) ## Sequence extraction subseq(sTrack, start=100000, width=20) ## beyond the stored sequence range subseq(sTrack, start=length(sTrack), width=20) } \keyword{classes} Gviz/man/StackedTrack-class.Rd0000644000175400017540000006377213175714140017251 0ustar00biocbuildbiocbuild\name{StackedTrack-class} \Rdversion{1.1} \docType{class} \alias{StackedTrack-class} \alias{StackedTrack} \alias{drawGD,StackedTrack-method} \alias{initialize,StackedTrack-method} \alias{setStacks,StackedTrack-method} \alias{stacking,StackedTrack-method} \alias{stacking<-,StackedTrack,character-method} \alias{stacks,StackedTrack-method} \alias{stacking} \alias{stacking<-} \alias{stacks} \alias{subset,StackedTrack-method} \alias{[,StackedTrack,ANY,ANY-method} \alias{[,StackedTrack,ANY,ANY,ANY-method} \alias{consolidateTrack,StackedTrack-method} \title{StackedTrack class and methods} \description{ The virtual parent class for all track types in the Gviz package which contain potentially overlapping annotation items that have to be stacked when plotted. } \section{Objects from the Class}{ A virtual Class: No objects may be created from it. } \section{Slots}{ \describe{ \item{\code{stacking}:}{Object of class \code{"character"}, the stacking type of overlapping items on the final plot. One in \code{c(hide, dense, squish, pack,full)}. Currently, only \code{hide} (do not show the track items at all), \code{squish} (make best use of the available space) and \code{dense} (no stacking at all) are implemented. } \item{\code{stacks}:}{Object of class \code{"numeric"}, holding the stack indices for each track item. This slot is usually populated by calling the \code{setStacks} method upon plotting, since the correct stacking is a function of the available plotting space.} \item{\code{range}:}{Object of class \code{\linkS4class{GRanges}}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{chromosome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{genome}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{RangeTrack}} } \item{\code{dp}:}{Object of class \code{\linkS4class{DisplayPars}}, inherited from class \code{\linkS4class{GdObject}} } \item{\code{name}:}{Object of class \code{"character"}, inherited from class \code{\linkS4class{GdObject}}} \item{\code{imageMap}:}{Object of class \code{\linkS4class{ImageMap}}, inherited from class \code{\linkS4class{GdObject}}} } } \section{Extends}{ Class \code{"\linkS4class{RangeTrack}"}, directly. Class \code{"\linkS4class{GdObject}"}, by class "RangeTrack", distance 2. } \section{Methods}{ In the following code chunks, \code{obj} is considered to be an object of class \code{StackedTrack}. \bold{\emph{Exported in the name space:}} \describe{ \item{stacking}{\code{signature(GdObject="StackedTrack")}: return the current stacking type. \emph{Usage:} \code{stacking(GdObject)} \emph{Examples:} \describe{ \item{}{\code{stacking(obj)}} } } \item{stacking<-}{\code{signature(GdObject="StackedTrack", value="character")}: set the object's stacking type to one in \code{c(hide, dense, squish, pack,full)}. \emph{Usage:} \code{stacking<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{stacking(obj) <- "squish" }} } } } \bold{\emph{Internal methods:}} \describe{ \item{drawGD}{\code{signature(GdObject="StackedTrack")}: plot the object to a graphics device. The return value of this method is the input object, potentially updated during the plotting operation. Internally, there are two modes in which the method can be called. Either in 'prepare' mode, in which case no plotting is done but the stacking information is updated based on the available space, or in 'plotting' mode, in which case the actual graphical output is created. Note that the method for this particular subclass is usually called through inheritance and not particularly useful on its own. \emph{Usage:} \code{drawGD(GdObject, minBase, maxBase, prepare=FALSE, subset=TRUE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{minBase}, \code{maxBase}: the coordinate range to plot.} \item{}{\code{prepare}: run method in preparation or in production mode.} \item{}{\code{subset}: subset the object to the visible region or skip the potentially expensive subsetting operation.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::drawGD(obj, prepare=FALSE)}} } } \item{setStacks}{\code{signature(GdObject="StackedTrack")}: recompute the stacks based on the available space and on the object's track items and stacking settings. \emph{Usage:} \code{setStacks(GdObject, from, to)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: compute stacking within a certain coordinates range. This needs to be supplied for the plotting function to know the current genomic coordinates.} } \emph{Examples:} \describe{ \item{}{\code{Gviz:::setStacks(obj)}} } } \item{stacks}{\code{signature(GdObject="StackedTrack")}: return the stack indices for each track item. \emph{Usage:} \code{stacks(GdObject)} \emph{Examples:} \describe{ \item{}{\code{Gviz:::stacks(obj)}} } } \item{initialize}{\code{signature(.Object="StackedTrack")}: initialize the object. } } \bold{\emph{Inherited methods:}} \describe{ \item{[}{\code{signature(x="StackedTrack", i="ANY", j="ANY", drop="ANY")}: subset the items in the \code{StackedTrack} object. This is essentially similar to subsetting of the \code{\linkS4class{GRanges}} object in the \code{range} slot. For most applications, the \code{subset} method may be more appropriate. \emph{Additional Arguments:} \describe{ \item{}{\code{i}, \code{j}: subsetting indices, \code{j} is ignored.} \item{}{\code{drop}: argument is ignored.} } \emph{Examples:} \describe{ \item{}{\code{obj[1:5]}} } } \item{chromosome}{\code{signature(GdObject="StackedTrack")}: return the chromosome for which the track is defined. \emph{Usage:} \code{chromosome(GdObject)} \emph{Examples:} \describe{ \item{}{\code{chromosome(obj)}} } } \item{chromosome<-}{\code{signature(GdObject="StackedTrack")}: replace the value of the track's chromosome. This has to be a valid UCSC chromosome identifier or an integer or character scalar that can be reasonably coerced into one. \emph{Usage:} \code{chromosome<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{chromosome(obj) <- "chr12"}} } } \item{start, end, width}{\code{signature(x="StackedTrack")}: the start or end coordinates of the track items, or their width in genomic coordinates. \emph{Usage:} \code{start(x)} \code{end(x)} \code{width(x)} \emph{Examples:} \describe{ \item{}{\code{start(obj)}} \item{}{\code{end(obj)}} \item{}{\code{width(obj)}} } } \item{start<-, end<-, width<-}{\code{signature(x="StackedTrack")}: replace the start or end coordinates of the track items, or their width. \emph{Usage:} \code{start<-(x, value)} \code{end<-(x, value)} \code{width<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{start(obj) <- 1:10}} \item{}{\code{end(obj) <- 20:30}} \item{}{\code{width(obj) <- 1}} } } \item{position}{\code{signature(GdObject="StackedTrack")}: the arithmetic mean of the track item's coordionates, i.e., \code{(end(obj)-start(obj))/2}. \emph{Usage:} \code{position(GdObject)} \emph{Examples:} \describe{ \item{}{\code{position(obj)}} } } \item{feature}{\code{signature(GdObject="StackedTrack")}: return the grouping information for track items. For certain sub-classes, groups may be indicated by different color schemes when plotting. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature(GdObject)} \emph{Examples:} \describe{ \item{}{\code{feature(obj)}} } } \item{feature<-}{\code{signature(gdObject="StackedTrack", value="character")}: set the grouping information for track items. This has to be a factor vector (or another type of vector that can be coerced into one) of the same length as the number of items in the \code{StackedTrack}. See \code{\link{grouping}} or \code{\linkS4class{AnnotationTrack}} and \code{\linkS4class{GeneRegionTrack}} for details. \emph{Usage:} \code{feature<-(GdObject, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{feature(obj) <- c("a", "a", "b", "c", "a")}} } } \item{genome}{\code{signature(x="StackedTrack")}: return the track's genome. \emph{Usage:} \code{genome(x)} \emph{Examples:} \describe{ \item{}{\code{genome(obj)}} } } \item{genome<-}{\code{signature(x="StackedTrack")}: set the track's genome. Usually this has to be a valid UCSC identifier, however this is not formally enforced here. \emph{Usage:} \code{genome<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{genome(obj) <- "mm9"}} } } \item{length}{\code{signature(x="StackedTrack")}: return the number of items in the track. \emph{Usage:} \code{length(x)} \emph{Examples:} \describe{ \item{}{\code{length(obj)}} } } \item{range}{\code{signature(x="StackedTrack")}: return the genomic coordinates for the track as an object of class \code{\linkS4class{IRanges}}. \emph{Usage:} \code{range(x)} \emph{Examples:} \describe{ \item{}{\code{range(obj)}} } } \item{ranges}{\code{signature(x="StackedTrack")}: return the genomic coordinates for the track along with all additional annotation information as an object of class \code{\linkS4class{GRanges}}. \emph{Usage:} \code{ranges(x)} \emph{Examples:} \describe{ \item{}{\code{ranges(obj)}} } } \item{split}{\code{signature(x="StackedTrack")}: split a \code{StackedTrack} object by an appropriate factor vector (or another vector that can be coerced into one). The output of this operation is a list of objects of the same class as the input object, all inheriting from class \code{StackedTrack}. \emph{Usage:} \code{split(x, f, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{f}: the splitting factor.} \item{}{\code{\dots}: all further arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{split(obj, c("a", "a", "b", "c", "a"))}} } } \item{strand}{\code{signature(x="StackedTrack")}: return a vector of strand specifiers for all track items, in the form '+' for the Watson strand, '-' for the Crick strand or '*' for either of the two. \emph{Usage:} \code{strand(x)} \emph{Examples:} \describe{ \item{}{\code{strand(obj)}} } } \item{strand<-}{\code{signature(x="StackedTrack")}: replace the strand information for the track items. The replacement value needs to be an appropriate scalar or vector of strand values. \emph{Usage:} \code{strand<-(x, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{value}: replacement value.} } \emph{Examples:} \describe{ \item{}{\code{strand(obj) <- "+"}} } } \item{values}{\code{signature(x="StackedTrack")}: return all additional annotation information except for the genomic coordinates for the track items as a data.frame. \emph{Usage:} \code{values(x)} \emph{Examples:} \describe{ \item{}{\code{values(obj)}} } } \item{coerce}{\code{signature(from="StackedTrack", to="data.frame")}: coerce the \code{\linkS4class{GRanges}} object in the \code{range} slot into a regular data.frame. \emph{Examples:} \describe{ \item{}{\code{as(obj, "data.frame")}} } } \item{subset}{\code{signature(x="StackedTrack")}: subset a \code{StackedTrack} by coordinates and sort if necessary. \emph{Usage:} \code{subset(x, from, to, sort=FALSE, ...)} \emph{Additional Arguments:} \describe{ \item{}{\code{from}, \code{to}: the coordinates range to subset to.} \item{}{\code{sort}: sort the object after subsetting. Usually not necessary.} \item{}{\code{\dots}: additional arguments are ignored.} } \emph{Examples:} \describe{ \item{}{\code{subset(obj, from=10, to=20, sort=TRUE)}} } } \item{displayPars}{\code{signature(x="StackedTrack", name="character")}: list the value of the display parameter \code{name}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars(x, name)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj, "col")}} } } \item{displayPars}{\code{signature(x="StackedTrack", name="missing")}: list the value of all available display parameters. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{displayPars(obj)}} } } \item{getPar}{\code{signature(x="StackedTrack", name="character")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{getPar(x, name)} \emph{Examples:} \describe{ \item{}{\code{getPar(obj, "col")}} } } \item{getPar}{\code{signature(x="StackedTrack", name="missing")}: alias for the \code{displayPars} method. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{getPar(obj)}} } } \item{displayPars<-}{\code{signature(x="StackedTrack", value="list")}: set display parameters using the values of the named list in \code{value}. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{displayPars<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{displayPars(obj) <- list(col="red", lwd=2)}} } } \item{setPar}{\code{signature(x="StackedTrack", value="character")}: set the single display parameter \code{name} to \code{value}. Note that display parameters in the \code{StackedTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Usage:} \code{setPar(x, name, value)} \emph{Additional Arguments:} \describe{ \item{}{\code{name}: the name of the display parameter to set.} } \emph{Examples:} \describe{ \item{}{\code{setPar(obj, "col", "red")}} } } \item{setPar}{\code{signature(x="StackedTrack", value="list")}: set display parameters by the values of the named list in \code{value}. Note that display parameters in the \code{StackedTrack} class are pass-by-reference, so no re-assignmnet to the symbol \code{obj} is necessary. See \code{\link{settings}} for details on display parameters and customization. \emph{Examples:} \describe{ \item{}{\code{setPar(obj, list(col="red", lwd=2))}} } } \item{group}{\code{signature(GdObject="StackedTrack")}: return grouping information for the individual items in the track. Unless overwritten in one of the sub-classes, this usualy returns \code{NULL}. \emph{Usage:} \code{group(GdObject)} \emph{Examples:} \describe{ \item{}{\code{group(obj)}} } } \item{names}{\code{signature(x="StackedTrack")}: return the value of the \code{name} slot. \emph{Usage:} \code{names(x)} \emph{Examples:} \describe{ \item{}{\code{names(obj)}} } } \item{names<-}{\code{signature(x="StackedTrack", value="character")}: set the value of the \code{name} slot. \emph{Usage:} \code{names<-(x, value)} \emph{Examples:} \describe{ \item{}{\code{names(obj) <- "foo"}} } } \item{coords}{\code{signature(ImageMap="StackedTrack")}: return the coordinates from the internal image map. \emph{Usage:} \code{coords(ImageMap)} \emph{Examples:} \describe{ \item{}{\code{coords(obj)}} } } \item{tags}{\code{signature(x="StackedTrack")}: return the tags from the internal image map. \emph{Usage:} \code{tags(x)} \emph{Examples:} \describe{ \item{}{\code{tags(obj)}} } } } } \section{Display Parameters}{ The following display parameters are set for objects of class \code{StackedTrack} upon instantiation, unless one or more of them have already been set by one of the optional sub-class initializers, which always get precedence over these global defaults. See \code{\link{settings}} for details on setting graphical parameters for tracks. \describe{ \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} } Additional display parameters are being inherited from the respective parent classes. Note that not all of them may have an effect on the plotting of \code{StackedTrack} objects. \describe{ \item{}{\code{\linkS4class{GdObject}}: \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panels.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is computed based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col="#0080FF"}: Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The font color for the title panels.} \item{}{\code{collapse=TRUE}: Boolean controlling wether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GRanges}} \code{\linkS4class{ImageMap}} \code{\linkS4class{IRanges}} \code{\linkS4class{RangeTrack}} \code{\link{collapsing}} \code{\link{DataTrack}} \code{\link{grouping}} \code{\link{panel.grid}} \code{\link{plotTracks}} \code{\link{settings}} } \keyword{classes} Gviz/man/UcscTrack.Rd0000644000175400017540000001046213175714140015451 0ustar00biocbuildbiocbuild\name{UcscTrack} \alias{UcscTrack} \alias{clearSessionCache} \title{ Meta-constructor for GenomeGraph tracks fetched directly from the various UCSC data sources. } \description{ The UCSC data base provides a wealth of annotation information. This function can be used to access UCSC, to retrieve the data available there and to return it as an annotation track object ameanable to plotting with \code{\link{plotTracks}}. \code{clearSessionCache} is can be called to remove all cached items from the session which are generated when connecting with the UCSC data base. } \usage{ UcscTrack(track, table=NULL, trackType=c("AnnotationTrack", "GeneRegionTrack", "DataTrack", "GenomeAxisTrack"), genome, chromosome, name=NULL, from, to, ...) clearSessionCache() } \arguments{ \item{track}{Character, the name of the track to fetch from UCSC. To find out about available tracks please consult the online table browser at \url{http://genome.ucsc.edu/cgi-bin/hgTables?command=start}.} \item{table}{Character, the name of the table to fetch from UCSC, or \code{NULL}, in which case the default selection of tables is used. To find out about available tables for a given track please consult the online table browser at \url{http://genome.ucsc.edu/cgi-bin/hgTables?command=start}.} \item{trackType}{Character, one in \code{c("AnnotationTrack", "GeneRegionTrack", "DataTrack", "GenomeAxisTrack")}. The function will try to coerce the downloaded data in an object of this class. See below for details.} \item{genome}{Character, a valid USCS genome identifier for which to fetch the data.} \item{chromosome}{Character, a valid USCS character identifier for which to fetch the data.} \item{name}{Character, the name to use for the resulting track object.} \item{from, to}{A range of genomic locations for which to fetch data.} \item{\dots}{All additional named arguments are expected to be either display parameters for the resulting objects, or character scalars of column names in the downloaded UCSC data tables that are matched by name to available arguments in the respective constructor functions as defined by the \code{trackType} argument. See Details section for more information.} } \details{ The data stored at the UCSC data bases can be of different formats: gene or transcript model data, simple annotation features like CpG Island locations or SNPs, or numeric data like conservation or mapability. This function presents a unified API to download all kinds of data and to map them back to one of the annotation track objects defined in this package. The type of object to hold the data has to be given in the \code{trackType} argument, and subsequently the function passes all data on to the respective object constructor. All additional named arguments are considered to be relevant for the constructor of choice, and single character scalars are replaced by the respective data columns in the dowloaded UCSC tables if available. For instance, assuming the table for track 'foo' contains the columns 'id', 'type', 'fromLoc' and 'toLoc', giving the featuer identifier, type, start end end location. In order to create an \code{\linkS4class{AnnotationTrack}} object from that data, we have to pass the additional named arguments \code{id="id"}, \code{feature="type"}, \code{start="fromLoc"} and code{end="toLoc"} to the \code{UcscTrack} function. The complete function call could look like this: \code{UcscTrack(track="foo", genome="mm9", chromosome=3, from=1000, to=10000, trackType="AnnotationTrack", id="id", feature="type", start="from", end="to")} To reduce the bandwidth, some caching of the UCSC connection takes place. In order to remove these cached session items, call \code{clearSessionCache}. The \code{Gviz.ucscUrl} option controls which URL is being used to connect to UCSC. For instance, one could switch to the European UCSC mirror by calling \code{options(Gviz.ucscUrl="http://genome-euro.ucsc.edu/cgi-bin/"}. } \value{ An annotation track object as determined by \code{trackType}. } \author{ Florian Hahne } \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DataTrack}} \code{\linkS4class{GeneRegionTrack}} \code{\linkS4class{GenomeAxisTrack}} \code{\link{plotTracks}} } Gviz/man/collapsing.Rd0000644000175400017540000000304213175714140015716 0ustar00biocbuildbiocbuild\name{collapsing} \Rdversion{1.1} \alias{collapsing} \title{Dynamic content based on the available resolution} \description{ When plotting features linearily along genomic coordinates one frequently runs into the problem of too little resolution to adequatelty display all details. Most genome browsers try to reasonably reduce the amount of detail that is shown based on the current zoomn level. } \details{ Most track classes in this package define an internal \code{collapseTrack} method which tries to adjust the plotted content to the available resolution, aims at reducing overplotting and prevents rendering issues, e.g. when lines are too thin to be plotted. This feature can be toggled on or off using the \code{collapse} display parameter (see \code{\link{settings}} for details on setting these parameters). In the simplest case (for \code{\linkS4class{AnnotationTrack}} objects) this involves expanding all shown features to a minimum pixel width and height (using display parameters \code{min.width} and \code{min.height}) and collapsing overlapping annotation items (as defined by the parameter \code{min.distance} into one single item to prevent overplotting. For objects of class \code{\linkS4class{DataTrack}}, the data values underlying collapsed regions will be summarized based on the \code{summary} display parameter. See the class' documentation for more details. } \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DataTrack}} \code{\link{settings}} } Gviz/man/datasets.Rd0000644000175400017540000000110213175714140015366 0ustar00biocbuildbiocbuild\name{bmTrack} \alias{bmTrack} \alias{cyp2b10} \alias{idTrack} \alias{biomTrack} \alias{cpgIslands} \alias{axTrack} \alias{conservation} \alias{ensGenes} \alias{denseAnnTrack} \alias{geneModels} \alias{ideoTrack} \alias{itrack} \alias{twoGroups} \alias{from} \alias{gcContent} \alias{idxTrack} \alias{knownGenes} \alias{refGenes} \alias{snpLocations} \alias{to} \alias{ctrack} \alias{geneDetails} \alias{dtHoriz} \alias{bmt} \docType{data} \title{ Data sets } \description{ Some sample data sets used for the illustrative examples and the vignette. } \keyword{datasets} Gviz/man/exportTracks.Rd0000644000175400017540000000151213175714140016254 0ustar00biocbuildbiocbuild\name{exportTracks} \alias{exportTracks} \title{ Export GenomeGraph tracks to a annotation file representation. } \description{ This function is still a bit experimental. So far only BED export is supported. } \usage{ exportTracks(tracks, range, chromosome, file) } \arguments{ \item{tracks}{A list of annotation track objects to be exported into a single BED file.} \item{range}{A numeric vector or length 2. The genomic range to display when opening the file in a browser.} \item{chromosome}{The chromosome to display when opening the file in a browser.} \item{file}{Character, the path to the file to write into.} } \details{ FIXME: Need to support wgl exports as well... } \value{ The function is called for its side effect of writing to a file. } \author{ Florian Hahne } Gviz/man/grouping.Rd0000644000175400017540000000234613175714140015423 0ustar00biocbuildbiocbuild\name{grouping} \Rdversion{1.1} \alias{grouping} \title{Grouping of annotation features} \description{ Many annotation tracks are actually composed of a number of grouped sub-features, for instance exons in a gene model. This man page highlights the use of grouping information to build informative annotation plots. } \details{ All track objects that inherit from class \code{\linkS4class{AnnotationTrack}} support the grouping feature. The information is usually passed on to the constructor function (for \code{AnnotationTrack} via the \code{groups} argument and for \code{\linkS4class{GeneRegionTrack}} objects via the \code{exon} argument) or automatically downloaded from an online annotation repository (\code{\linkS4class{BiomartGeneRegionTrack}}). Group membership is specified by a factor vector with as many items as there are annotation items in the track (i.e., the value of \code{length(track)}. Upon plotting, the grouped annotation features are displayed together and will not be separated in the stacking of track items. } \author{Florian Hahne} \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{BiomartGeneRegionTrack}} \code{\linkS4class{GeneRegionTrack}} } Gviz/man/plotTracks.Rd0000644000175400017540000001515213175714140015716 0ustar00biocbuildbiocbuild\name{plotTracks} \alias{plotTracks} \title{ The main plotting function for one or several GenomeGraph tracks. } \description{ \code{plotTracks} is the main interface when plotting single track objects, or lists of tracks linked together across the same genomic coordinates. Essentially, the resulting plots are very similar to the graphical output of the UCSC Genome Browser, execpt for all of the interactivity. } \usage{ plotTracks(trackList, from=NULL, to=NULL, ..., sizes=NULL, panel.only=FALSE, extend.right=0, extend.left=0, title.width=NULL, add=FALSE, main, cex.main=2, fontface.main=2, col.main="black", margin=6, chromosome=NULL, innerMargin=3) } \arguments{ \item{trackList}{A list of GenomeGraph track objects, all inheriting from class \code{\linkS4class{GdObject}}. The tracks will all be drawn to the same genomic coordinates, either as defined by the \code{from} and \code{to} arguments if supplied, or by the maximum range across all individual items in the list.} \item{from, to}{Charactar scalar, giving the range of genomic coordinates to draw the tracks in. Note that \code{to} cannot be larger than \code{from}. If \code{NULL}, the plotting ranges are derived from the individual tracks. See \code{extend.left} and \code{extend.right} below for the definition of the final plotting ranges.} \item{\dots}{Additional arguments which are all interpreted as display parameters to tweak the appearance of the plot. These parameters are global, meaning that they will be used for all tracks in the list where they actually make sense, and they override the track-internal settings. See \code{\link{settings}} for details on display parameters.} \item{sizes}{A numeric vector of relative vertical sizes for the individual tracks of lenght equal to the number of tracks in \code{trackList}, or \code{NULL} to auto-detect the most appropriate vertical size proportions.} \item{panel.only}{Logical flag, causing the tracks to be plotted as lattice-like panel functions without resetting the plotting canvas and omitting the title pane. This allows to embed tracks into a trellis layout. Usually the function is called for a single track only when \code{panel.only==TRUE}.} \item{extend.right, extend.left}{Numeric scalar, extend the plotting range to the right or to the left by a fixed number of bases. The final plotting range is defined as \code{from-extend.left} to \code{to+extend.right}.} \item{title.width}{A expansion factor for the width of the title panels. This can be used to make more space, e.g. to accomodate for more detailed data axes. The default is to use as much space as needed to fit all the annotation text.} \item{add}{Logical flag, add the plot to an existing plotting canvas without re-initialising.} \item{main}{Character scalar, the plots main header.} \item{cex.main, fontface.main,col.main }{The fontface, color and expansion factor settings for the main header.} \item{margin}{The margin width to add to the plot in pixels.} \item{innerMargin}{The inner margin width to add to the plot in pixels.} \item{chromosome}{Set the chromosome for all the tracks in the track list.} } \details{ GenomeGraph tracks are plotted in a vertically stacked layout. Each track panel is split up into a title section containing the track name, as well as an optional axis for tracks containing numeric data, and a data section showing the actual data along genomic coordinates. In that sense, the output is very similar to the UCSC Genome Browser. The layout of the individual tracks is highly customizable though so called "display parameters". See \code{\link{settings}} for details. While plotting a track, the software automatically computes HTML image map coordinates based on the current graphics device. These coordinates as well as the associated annotation information can later be used to embed images of the plots in semi-interactive HTML pages. See \code{\linkS4class{ImageMap}} for details. } \value{ A list of GenomeGraph tracks, each one augmented by the computed image map coordinates in the \code{imageMap} slot, along with the additional \code{ImageMap} object \code{titles} containing information about the title panels. } \author{ Florian Hahne } \seealso{ \code{\linkS4class{GdObject}} \code{\linkS4class{ImageMap}} \code{\linkS4class{RangeTrack}} \code{\linkS4class{StackedTrack}} \code{\link{settings}} } \examples{ ## Create some tracks to plot st <- c(2000000, 2070000, 2100000, 2160000) ed <- c(2050000, 2130000, 2150000, 2170000) str <- c("-", "+", "-", "-") gr <- c("Group1","Group2","Group1", "Group3") annTrack <- AnnotationTrack(start=st, end=ed, strand=str, chromosome=7, genome="hg19", feature="test", group=gr, id=paste("annTrack item", 1:4), name="annotation track foo", stacking="squish") ax <- GenomeAxisTrack() dt <- DataTrack(start=seq(min(st), max(ed), len=10), width=18000, data=matrix(runif(40), nrow=4), genome="hg19", chromosome=7, type="histogram", name="data track bar") \dontshow{ ## For some annoying reason the postscript device does not know about ## the sans font if(!interactive()) { font <- ps.options()$family displayPars(annTrack) <- list(fontfamily=font, fontfamily.title=font) displayPars(ax) <- list(fontfamily=font, fontfamily.title=font) displayPars(dt) <- list(fontfamily=font, fontfamily.title=font) } } ## Now plot the tracks res <- plotTracks(list(ax, annTrack, dt)) ## Plot only a subrange res <- plotTracks(list(ax, annTrack, dt), from=2080000, to=2156000) ## Extend plotting ranges res <- plotTracks(list(ax, annTrack, dt), extend.left=200000, extend.right=200000) ## Add a header res <- plotTracks(list(ax, annTrack, dt), main="A GenomGraphs plot", col.main="darkgray") ## Change vertical size and title width res <- plotTracks(list(ax, annTrack, dt), sizes=c(1,1,5)) names(annTrack) <- "foo" res <- plotTracks(list(ax, annTrack), title.width=0.6) ## Adding and lattice like plots library(grid) grid.newpage() pushViewport(viewport(height=0.5, y=1, just="top")) grid.rect() plotTracks(annTrack, add=TRUE) popViewport(1) pushViewport(viewport(height=0.5, y=0, just="bottom")) grid.rect() plotTracks(dt, add=TRUE) popViewport(1) \dontrun{ library(lattice) myPanel <- function(x, ...) plotTracks(annTrack, panel.only=TRUE, from=min(x), to=max(x), shape="box") a <- seq(1900000, 2250000, len=40) xyplot(b~a|c, data.frame(a=a, b=1, c=cut(a, 4)), panel=myPanel, scales=list(x="free")) } } Gviz/man/settings.Rd0000644000175400017540000027223313175714140015435 0ustar00biocbuildbiocbuild\name{settings} \Rdversion{1.1} \alias{settings} \alias{addScheme} \alias{getScheme} \title{Setting display parameters to control the look and feel of the plots} \description{ The genome track plots in this package are all highly customizable by means of so called 'display parameters'. This page highlights the use of these parameters and list all available settings for the different track classes. } \usage{ addScheme(scheme, name) getScheme(name=getOption("Gviz.scheme")) } \arguments{ \item{scheme}{A named nested list of display parameters, where the first level of nesting represents Gviz track object classes, and the second level of nesting represents parameters.} \item{name}{A character scalar with the scheme name.} } \details{ All of the package's track objects inherit the \code{dp} slot from the \code{\linkS4class{GdObject}} parent class, which is the main container to store an object's display parameters. Internally, the content of this slot has to be an object of class \code{\linkS4class{DisplayPars}}, but the user is usually not exposed to this low level implementation. Instead, there are two main interaction points, namely the individual object constructor functions and the final \code{\link{plotTracks}} function. In both cases, all additional arguments that are not caught by any of the formally defined function parameters are being interpreted as additional display parameters and are automatically added to the aforementioned slot. The main difference here is that display parameters that are passed on to the constructor function are specific for an individual track object, whereas those supplied to the \code{plotTracks} function will be applied to all the objects in the plotting list. Not all display parameters have an effect on the plotting of all track classes, and those will be silently ignored. One can query the available display parameters for a given class as well as their default values by calling the \code{\link{availableDisplayPars}} function, or by inspecting the man pages of the individual track classes. The structure of the classes defined in this package is hierarchical, and so are the available display parameters, i.e., all objects inherit the parameters defined in the commom \code{GdObject} parent class, and so on. Once a track object has been created, the display parameters are still open for modification. To this end, the \code{\link{displayPars}} replacement method is available for all objects inheriting from class \code{GdObject}. The method takes a named list of parameters as input, e.g.: \code{displayPars(foo) <- list(col="red", lwd=2)} In the same spirit, the currently set display parameters for the object \code{foo} can be inferred using the \code{displayPars} method directly, e.g.: \code{displayPars(foo)} For track objects inheriting from class \code{\linkS4class{AnnotationTrack}}, display parameters that are not formally defined in the class definition or in any of the parent classes are considered to be valid R color identifiers that are used to distinguish between different types of annotation features. For instance, the parameter 'miRNA' will be used to color all annotation features of class miRNA. The annotation types can be set in the constructor function of the track object via the \code{feature} argument. For most of the tracks that have been inferred from one of the online repositories, this classification will usually be downloaded along with the actual annotation data. Users might find themselves changing the same parameters over and over again, and it would make sense to register these modifications in a central location once and for all. To this end the Gviz package supports display parameter schemes. A scheme is essentially just a bunch of nested named lists, where the names on the first level of nesting should correspond to track class names, and the names on the second level to the display parameters to set. The currently active schmeme can be changed by setting the global option \code{Gviz.scheme}, and a new scheme can be registered by using the \code{addScheme} function, providing both the list and the name for the new scheme. The \code{getScheme} function is useful to get the current scheme as a list structure, for instance to use as a skeleton for your own custom scheme. In order to make these settings persitant across R sessions one can create one or several schemes in the global environment in the special object \code{.GvizSchemes}, for instance by putting the necessary code in the \code{.Rprofile} file. This object needs to be a named list of schemes, and it will be collected when the Givz package loads. Its content is then automatically added to the collection of available schemes. Please note that because display parameters are stored with the track objects, a scheme change only has an effect on those objects that are created after the change has taken place. } \section{Display Parameters}{ \describe{ \item{GenomeAxisTrack}{: \describe{ \item{}{\code{add35=FALSE}: Logical scalar. Add 3' to 5' direction indicators.} \item{}{\code{add53=FALSE}: Logical scalar. Add 5' to 3' direction indicators.} \item{}{\code{background.title="transparent"}: Character scalar. The background color for the title panel. Defaults to omit the background.} \item{}{\code{cex.id=0.7}: Numeric scalar. The text size for the optional range annotation.} \item{}{\code{cex=0.8}: Numeric scalar. The overall font expansion factor for the axis annotation text.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{col.id="white"}: Character scalar. The text color for the optional range annotation.} \item{}{\code{col.range="cornsilk4"}: Character scalar. The border color for highlighted regions on the axis.} \item{}{\code{distFromAxis=1}: Numeric scalar. Control the distance of the axis annotation from the tick marks.} \item{}{\code{exponent=NULL}: Numeric scalar. The exponent for the axis coordinates, e.g., 3 means mb, 6 means gb, etc. The default is to automatically determine the optimal exponent.} \item{}{\code{fill.range="cornsilk3"}: Character scalar. The fill color for highlighted regions on the axis.} \item{}{\code{fontcolor="#808080"}: Character scalar. The font color for the axis annotation text.} \item{}{\code{fontsize=10}: Numeric scalar. Font size for the axis annotation text in points.} \item{}{\code{labelPos="alternating"}: Character vector, one in "alternating", "revAlternating", "above" or "below". The vertical positioning of the axis labels. If \code{scale} is not \code{NULL}, the possible values are "above", "below" and "beside".} \item{}{\code{littleTicks=FALSE}: Logical scalar. Add more fine-grained tick marks.} \item{}{\code{lwd=2}: Numeric scalar. The line width for the axis elementes.} \item{}{\code{scale=NULL}: Numeric scalar. If not \code{NULL} a small scale is drawn instead of the full axis, if the value is between 0 and 1 it is interpreted as a fraction of the current plotting region, otherwise as an absolute length value in genomic coordinates.} \item{}{\code{showId=FALSE}: Logical scalar. Show the optional range highlighting annotation.} \item{}{\code{showTitle=FALSE}: Logical scalar. Plot a title panel. Defaults to omit the title panel.} \item{}{\code{size=NULL}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function. Defaults to the ideal size based on the other track settings.} \item{}{\code{col="darkgray"}: Character scalar. The color for the axis lines and tickmarks.} } \bold{\emph{Inherited from class GdObject:}} \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } \item{DataTrack}{: \describe{ \item{}{\code{aggregateGroups=FALSE}: Logical scalar. Aggregate the values within a sample group using the aggregation funnction specified in the \code{aggregation} parameter.} \item{}{\code{aggregation="mean"}: Function or character scalar. Used to aggregate values in windows or for collapsing overlapping items. The function has to accept a numeric vector as a single input parameter and has to return a numeric scalar with the aggregated value. Alternatively, one of the predefined options \code{mean}, \code{median} \code{sum}, \code{min}, \code{max} or \code{extreme} can be supplied as a character scalar. Defaults to \code{mean}.} \item{}{\code{alpha.confint=0.3}: Numeric scalar. The transparency for the confidence intervalls in confint-type plots.} \item{}{\code{amount=NULL}: Numeric scalar. Amount of jittering in xy-type plots. See \code{\link{panel.xyplot}} for details.} \item{}{\code{baseline=NULL}: Numeric scalar. Y-axis position of an optional baseline. This parameter has a special meaning for mountain-type and polygon-type plots, see the 'Details' section in \code{\linkS4class{DataTrack}} for more information.} \item{}{\code{box.legend=FALSE}: Logical scalar. Draw a box around a legend.} \item{}{\code{box.ratio=1}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{box.width=NULL}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{grid=FALSE}: Logical vector. Draw a line grid under the track content.} \item{}{\code{cex.legend=0.8}: Numeric scalar. The size factor for the legend text.} \item{}{\code{cex.sampleNames=NULL}: Numeric scalar. The size factor for the sample names text in heatmap or horizon plots. Defaults to an automatic setting.} \item{}{\code{cex=0.7}: Numeric scalar. The default pixel size for plotting symbols.} \item{}{\code{coef=1.5}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{col.baseline=NULL}: Character scalar. Color for the optional baseline, defaults to the setting of \code{col}.} \item{}{\code{col.confint=NA}: Character vector. Border colors for the confidence intervals for confint-type plots.} \item{}{\code{col.histogram="#808080"}: Character scalar. Line color in histogram-type plots.} \item{}{\code{col.horizon=NA}: The line color for the segments in the \code{horizon}-type plot. See \code{\link{horizonplot}} for details.} \item{}{\code{col.mountain=NULL}: Character scalar. Line color in mountain-type and polygon-type plots, defaults to the setting of \code{col}.} \item{}{\code{col.sampleNames="white"}: Character or integer scalar. The color used for the sample names in heatmap plots.} \item{}{\code{col=c("#0080ff", "#ff00ff", "darkgreen", "#ff0000", "orange", "#00ff00", "brown")}: Character or integer vector. The color used for all line and symbol elements, unless there is a more specific control defined elsewhere. Unless \code{groups} are specified, only the first color in the vector is usually regarded.} \item{}{\code{collapse=FALSE}: Logical scalar. Collapse overlapping ranges and aggregate the underlying data.} \item{}{\code{degree=1}: Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \code{\link{panel.loess}} for details.} \item{}{\code{do.out=TRUE}: Logical scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{evaluation=50}: Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \code{\link{panel.loess}} for details.} \item{}{\code{factor=0.5}: Numeric scalar. Factor to control amount of jittering in xy-type plots. See \code{\link{panel.xyplot}} for details.} \item{}{\code{family="symmetric"}: Character scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \code{\link{panel.loess}} for details.} \item{}{\code{fill.confint=NULL}: Character vector. Fill colors for the confidence intervals for confint-type plots.} \item{}{\code{fill.histogram=NULL}: Character scalar. Fill color in histogram-type plots, defaults to the setting of \code{fill}.} \item{}{\code{fill.horizon=c("#B41414", "#E03231", "#F7A99C", "#9FC8DC", "#468CC8", "#0165B3")}: The fill colors for the segments in the \code{horizon}-type plot. This should be a vector of length six, where the first three entries are the colors for positive changes, and the latter three entries are the colors for negative changes. Defaults to a red-blue color scheme. See \code{\link{horizonplot}} for details.} \item{}{\code{fill.mountain=c("#CCFFFF", "#FFCCFF")}: Character vector of length 2. Fill color in mountain-type and polygon-type plots.} \item{}{\code{fontface.legend=NULL}: Integer or character scalar. The font face for the legend text.} \item{}{\code{fontfamily.legend=NULL}: Integer or character scalar. The font family for the legend text.} \item{}{\code{fontsize.legend=NULL}: Numeric scalar. The pixel size for the legend text.} \item{}{\code{fontcolor.legend="#808080"}: Integer or character scalar. The font color for the legend text.} \item{}{\code{gradient=c("#F7FBFF", "#DEEBF7", "#C6DBEF", "#9ECAE1", "#6BAED6", "#4292C6", "#2171B5", "#08519C", "#08306B")}: Character vector. The base colors for the \code{gradient} plotting type or the \code{heatmap} type with a single group. When plotting heatmaps with more than one group, the \code{col} parameter can be used to control the group color scheme, however the gradient will always be from white to 'col' and thus does not offer as much flexibility as this \code{gradient} parameter.} \item{}{\code{groups=NULL}: Vector coercable to a factor. Optional sample grouping. See 'Details' section in \code{\linkS4class{DataTrack}} for further information.} \item{}{\code{horizon.origin=0}: The baseline relative to which changes are indicated on the \code{horizon}-type plot. See \code{\link{horizonplot}} for details.} \item{}{\code{horizon.scale=NULL}: The scale for each of the segments in the \code{horizon}-type plot. Defaults to 1/3 of the absolute data range. See \code{\link{horizonplot}} for details.} \item{}{\code{jitter.x=FALSE}: Logical scalar. Toggle on jittering on the x axis in xy-type plots. See \code{\link{panel.xyplot}} for details.} \item{}{\code{jitter.y=FALSE}: Logical scalar. Toggle off jittering on the y axis in xy-type plots. See \code{\link{panel.xyplot}} for details.} \item{}{\code{levels.fos=NULL}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{legend=TRUE}: Boolean triggering the addition of a legend to the track to indicate groups. This only has an effect if at least two groups are present.} \item{}{\code{lineheight.legend=NULL}: Numeric scalar. The line height for the legend text.} \item{}{\code{lty.baseline=NULL}: Character or numeric scalar. Line type of the optional baseline, defaults to the setting of \code{lty}.} \item{}{\code{lty.mountain=NULL}: Character or numeric scalar. Line type in mountain-type and polygon-type plots, defaults to the setting of \code{lty}.} \item{}{\code{lwd.baseline=NULL}: Numeric scalar. Line width of the optional baseline, defaults to the setting of \code{lwd}.} \item{}{\code{lwd.mountain=NULL}: Numeric scalar. Line width in mountain-type and polygon-type plots, defaults to the setting of \code{lwd}.} \item{}{\code{min.distance=0}: Numeric scalar. The mimimum distance in pixel below which to collapse ranges.} \item{}{\code{na.rm=FALSE}: Boolean controlling whether to discard all NA values when plotting or to keep empty spaces for NAs} \item{}{\code{ncolor=100}: Integer scalar. The number of colors for the 'gradient' plotting type} \item{}{\code{notch.frac=0.5}: Numeric scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{notch=FALSE}: Logical scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{pch=20}: Integer scalar. The type of glyph used for plotting symbols.} \item{}{\code{separator=0}: Numeric scalar. Number of pixels used to separate individual samples in heatmap- and horizon-type plots.} \item{}{\code{showColorBar=TRUE}: Boolean. Indicate the data range color mapping in the axis for 'heatmap' or 'gradient' types.} \item{}{\code{showSampleNames=FALSE}: Boolean. Display the names of the individual samples in a heatmap or a horizon plot.} \item{}{\code{size=NULL}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function. By default the size will be set automatically based on the selected plotting type.} \item{}{\code{span=0.2}: Numeric scalar. Parameter controlling the loess calculation for smooth and mountain-type plots. See \code{\link{panel.loess}} for details.} \item{}{\code{stackedBars=TRUE}: Logical scalar. When there are several data groups, draw the histogram-type plots as stacked barplots or grouped side by side.} \item{}{\code{stats=X[[i]]}: Function. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{transformation=NULL}: Function. Applied to the data matrix prior to plotting or when calling the \code{score} method. The function should accept exactly one input argument and its return value needs to be a numeric vector which can be coerced back into a data matrix of identical dimensionality as the input data.} \item{}{\code{type="p"}: Character vector. The plot type, one or several in \code{c("p","l", "b", "a", "a_confint", "s", "g", "r", "S", "confint", "smooth", "histogram", "mountain", "polygon", "h", "boxplot", "gradient", "heatmap", "horizon")}. See 'Details' section in \code{\linkS4class{DataTrack}} for more information on the individual plotting types.} \item{}{\code{varwidth=FALSE}: Logical scalar. Parameter controlling the boxplot appearance. See \code{\link{panel.bwplot}} for details.} \item{}{\code{window=NULL}: Numeric or character scalar. Aggregate the rows values of the data matrix to \code{window} equally sized slices on the data range using the method defined in \code{aggregation}. If negative, apply a running window of size \code{windowSize} using the same aggregation method. Alternatively, the special value \code{auto} causes the function to determine the optimal window size to avoid overplotting, and \code{fixed} uses fixed-size windows of size \code{windowSize}.} \item{}{\code{windowSize=NULL}: Numeric scalar. The size of the running window when the value of \code{window} is negative.} \item{}{\code{ylim=NULL}: Numeric vector of length 2. The range of the y-axis scale.} } \bold{\emph{Inherited from class GdObject:}} \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The border color for the title panels} \item{}{\code{fill="lightgray"}: Integer or character scalar. Default fill color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } \item{IdeogramTrack}{: \describe{ \item{}{\code{background.title="transparent"}: Character scalar. The background color for the title panel. Defaults to omit the background.} \item{}{\code{bevel=0.45}: Numeric scalar, between 0 and 1. The level of smoothness for the two ends of the ideogram.} \item{}{\code{cex.bands=0.7}: Numeric scalar. The font expansion factor for the chromosome band identifier text.} \item{}{\code{cex=0.8}: Numeric scalar. The overall font expansion factor for the chromosome name text.} \item{}{\code{col="red"}: Character scalar. The border color used for the highlighting of the currently displayed genomic region.} \item{}{\code{col.border.title="transparent"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{fill="#FFE3E6"}: Character scalar. The fill color used for the highlighting of the currently displayed genomic region.} \item{}{\code{fontface=1}: Character scalar. The font face for the chromosome name text.} \item{}{\code{fontfamily="sans"}: Character scalar. The font family for the chromosome name text.} \item{}{\code{fontcolor="#808080"}: Character scalar. The font color for the chromosome name text.} \item{}{\code{fontsize=10}: Numeric scalar. The font size for the chromosome name text.} \item{}{\code{outline=FALSE}: Logical scalar. Add borders to the individual chromosome staining bands.} \item{}{\code{showBandId=FALSE}: Logical scalar. Show the identifier for the chromosome bands if there is space for it.} \item{}{\code{lty=1}: Character or integer scalar. The line type used for the highlighting of the currently displayed genomic region.} \item{}{\code{lwd=1}: Numeric scalar. The line width used for the highlighting of the currently displayed genomic region.} \item{}{\code{showId=TRUE}: Logical scalar. Indicate the chromosome name next to the ideogram.} \item{}{\code{showTitle=FALSE}: Logical scalar. Plot a title panel. Defaults to omit the title panel.} \item{}{\code{size=NULL}: Numeric scalar. The relative size of the track. Defaults to automatic size setting. Can also be overridden in the \code{\link{plotTracks}} function.} } \bold{\emph{Inherited from class GdObject:}} \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } \item{AnnotationTrack}{: \describe{ \item{}{\code{arrowHeadWidth=30}: Numeric scalar. The width of the arrow head in pixels if \code{shape} is \code{fixedArrow}.} \item{}{\code{arrowHeadMaxWidth=40}: Numeric scalar. The maximum width of the arrow head in pixels if \code{shape} is \code{arrow}.} \item{}{\code{cex.group=0.6}: Numeric scalar. The font expansion factor for the group-level annotation.} \item{}{\code{cex=1}: Numeric scalar. The font expansion factor for item identifiers.} \item{}{\code{col.line="darkgray"}: Character scalar. The color used for connecting lines between grouped items. Defaults to a light gray, but if set to \code{NULL} the same color as for the first item in the group is used.} \item{}{\code{col="transparent"}: Character or integer scalar. The border color for all track items.} \item{}{\code{featureAnnotation=NULL}: Character scalar. Add annotation information to the individual track elements. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{id}. Only works if \code{showFeatureId} is not \code{FALSE}.} \item{}{\code{fill="lightblue"}: Character or integer scalar. The fill color for untyped items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{fontfamily.group="sans"}: Character scalar. The font family for the group-level annotation.} \item{}{\code{fontcolor.group="#808080"}: Character or integer scalar. The font color for the group-level annotation.} \item{}{\code{fontcolor.item="white"}: Character or integer scalar. The font color for item identifiers.} \item{}{\code{fontface.group=2}: Numeric scalar. The font face for the group-level annotation.} \item{}{\code{fontsize.group=12}: Numeric scalar. The font size for the group-level annotation.} \item{}{\code{groupAnnotation=NULL}: Character scalar. Add annotation information as group labels. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{group}. Only works if \code{showId} is not \code{FALSE}.} \item{}{\code{just.group="left"}: Character scalar. the justification of group labels. Either \code{left}, \code{right}, \code{above} or \code{below}.} \item{}{\code{lex=1}: Numeric scalar. The line expansion factor for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for item identifiers.} \item{}{\code{lty="solid"}: Character or integer scalar. The line type for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lwd=1}: Integer scalar. The line width for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{mergeGroups=FALSE}: Logical scalar. Merge fully overlapping groups if \code{collapse==TRUE}.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details. For feathered bars indicating the strandedness of grouped items this also controls the height of the arrow feathers.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{rotation=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{rotation.group=0}: Numeric scalar. The degree of text rotation for group labels.} \item{}{\code{rotation.item=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{shape="arrow"}: Character scalar. The shape in which to display the track items. Currently only \code{box}, \code{arrow}, \code{fixedArrow}, \code{ellipse}, and \code{smallArrow} are implemented.} \item{}{\code{showFeatureId=FALSE}: Logical scalar. Control whether to plot the individual track item identifiers.} \item{}{\code{showId=FALSE}: Logical scalar. Control whether to annotate individual groups.} \item{}{\code{showOverplotting=FALSE}: Logical scalar. Use a color gradient to show the amount of overplotting for collapsed items. This implies that \code{collapse==TRUE}} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} } \bold{\emph{Inherited from class StackedTrack:}} \describe{ \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} } \bold{\emph{Inherited from class GdObject:}} \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } \item{GeneRegionTrack}{: \describe{ \item{}{\code{arrowHeadWidth=10}: Numeric scalar. The width of the arrow head in pixels if \code{shape} is \code{fixedArrow}.} \item{}{\code{arrowHeadMaxWidth=20}: Numeric scalar. The maximum width of the arrow head in pixels if \code{shape} is \code{arrow}.} \item{}{\code{col=NULL}: Character or integer scalar. The border color for all track items. Defaults to using the same color as in \code{fill}, also taking into account different track \code{features}.} \item{}{\code{collapseTranscripts=FALSE}: Logical or character scalar. Can be one in \code{gene}, \code{longest}, \code{shortest} or \code{meta}. Merge all transcripts of the same gene into one single gene model. In the case of \code{gene} (or \code{TRUE}), this will only keep the start location of the first exon and the end location of the last exon from all transcripts of the gene. For \code{shortest} and \code{longest}, only the longest or shortest transcript model is retained. For \code{meta}, a meta-transcript containing the union of all exons is formed (essentially identical to the operation \code{reduce(geneModel)}).} \item{}{\code{exonAnnotation=NULL}: Character scalar. Add annotation information to the individual exon models. This can be a value in \code{symbol}, \code{gene}, \code{transcript}, \code{exon} or \code{feature}. Defaults to \code{exon}. Only works if \code{showExonId} is not \code{FALSE}.} \item{}{\code{fill="orange"}: Character or integer scalar. The fill color for untyped items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{min.distance=0}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details. Note that a value larger than 0 may lead to UTR regions being merged to CDS regions, which in most cases is not particularly useful.} \item{}{\code{shape=c("smallArrow", "box")}: Character scalar. The shape in which to display the track items. Currently only \code{box}, \code{arrow}, \code{ellipse}, and \code{smallArrow} are implemented.} \item{}{\code{showExonId=NULL}: Logical scalar. Control whether to plot the individual exon identifiers.} \item{}{\code{thinBoxFeature=c("utr", "ncRNA", "utr3", "utr5", "3UTR", "5UTR", "miRNA", "lincRNA", "three_prime_UTR", "five_prime_UTR")}: Character vector. A listing of feature types that should be drawn with thin boxes. Typically those are non-coding elements.} \item{}{\code{transcriptAnnotation=NULL}: Character scalar. Add annotation information as transcript labels. This can be a value in \code{symbol}, \code{gene}, \code{transcript}, \code{exon} or \code{feature}. Defaults to \code{symbol}. Only works if \code{showId} is not \code{FALSE}.} } \bold{\emph{Inherited from class AnnotationTrack:}} \describe{ \item{}{\code{cex.group=0.6}: Numeric scalar. The font expansion factor for the group-level annotation.} \item{}{\code{cex=1}: Numeric scalar. The font expansion factor for item identifiers.} \item{}{\code{col.line="darkgray"}: Character scalar. The color used for connecting lines between grouped items. Defaults to a light gray, but if set to \code{NULL} the same color as for the first item in the group is used.} \item{}{\code{featureAnnotation=NULL}: Character scalar. Add annotation information to the individual track elements. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{id}. Only works if \code{showFeatureId} is not \code{FALSE}.} \item{}{\code{fontfamily.group="sans"}: Character scalar. The font family for the group-level annotation.} \item{}{\code{fontcolor.group="#808080"}: Character or integer scalar. The font color for the group-level annotation.} \item{}{\code{fontcolor.item="white"}: Character or integer scalar. The font color for item identifiers.} \item{}{\code{fontface.group=2}: Numeric scalar. The font face for the group-level annotation.} \item{}{\code{fontsize.group=12}: Numeric scalar. The font size for the group-level annotation.} \item{}{\code{groupAnnotation=NULL}: Character scalar. Add annotation information as group labels. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{group}. Only works if \code{showId} is not \code{FALSE}.} \item{}{\code{just.group="left"}: Character scalar. the justification of group labels. Either \code{left}, \code{right}, \code{above} or \code{below}.} \item{}{\code{lex=1}: Numeric scalar. The line expansion factor for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for item identifiers.} \item{}{\code{lty="solid"}: Character or integer scalar. The line type for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lwd=1}: Integer scalar. The line width for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{mergeGroups=FALSE}: Logical scalar. Merge fully overlapping groups if \code{collapse==TRUE}.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details. For feathered bars indicating the strandedness of grouped items this also controls the height of the arrow feathers.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{rotation=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{rotation.group=0}: Numeric scalar. The degree of text rotation for group labels.} \item{}{\code{rotation.item=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{showFeatureId=FALSE}: Logical scalar. Control whether to plot the individual track item identifiers.} \item{}{\code{showId=FALSE}: Logical scalar. Control whether to annotate individual groups.} \item{}{\code{showOverplotting=FALSE}: Logical scalar. Use a color gradient to show the amount of overplotting for collapsed items. This implies that \code{collapse==TRUE}} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} } \bold{\emph{Inherited from class StackedTrack:}} \describe{ \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} } \bold{\emph{Inherited from class GdObject:}} \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } \item{BiomartGeneRegionTrack}{: \describe{ \item{}{\code{C_segment="burlywood4"}: Character or integer scalar. Fill color for annotation objects of type 'C_segment'.} \item{}{\code{D_segment="lightblue"}: Character or integer scalar. Fill color for annotation objects of type 'C_segment'.} \item{}{\code{J_segment="dodgerblue2"}: Character or integer scalar. Fill color for annotation objects of type 'C_segment'.} \item{}{\code{Mt_rRNA="yellow"}: Character or integer scalar. Fill color for annotation objects of type 'Mt_rRNA'.} \item{}{\code{Mt_tRNA="darkgoldenrod"}: Character or integer scalar. Fill color for annotation objects of type 'Mt_tRNA'.} \item{}{\code{Mt_tRNA_pseudogene="darkgoldenrod1"}: Character or integer scalar. Fill color for annotation objects of type 'Mt_tRNA_pseudogene'.} \item{}{\code{V_segment="aquamarine"}: Character or integer scalar. Fill color for annotation objects of type 'V_segment'.} \item{}{\code{miRNA="cornflowerblue"}: Character or integer scalar. Fill color for annotation objects of type 'L_segment'.} \item{}{\code{miRNA_pseudogene="cornsilk"}: Character or integer scalar. Fill color for annotation objects of type 'miRNA_pseudogene'.} \item{}{\code{misc_RNA="cornsilk3"}: Character or integer scalar. Fill color for annotation objects of type 'misc_RNA'.} \item{}{\code{misc_RNA_pseudogene="cornsilk4"}: Character or integer scalar. Fill color for annotation objects of type 'misc_RNA_pseudogene'.} \item{}{\code{protein_coding="#FFD58A"}: Character or integer scalar. Fill color for annotation objects of type 'protein_coding'.} \item{}{\code{pseudogene="brown1"}: Character or integer scalar. Fill color for annotation objects of type 'pseudogene'.} \item{}{\code{rRNA="darkolivegreen1"}: Character or integer scalar. Fill color for annotation objects of type 'rRNA'.} \item{}{\code{rRNA_pseudogene="darkolivegreen"}: Character or integer scalar. Fill color for annotation objects of type 'rRNA_pseudogene'.} \item{}{\code{retrotransposed="blueviolet"}: Character or integer scalar. Fill color for annotation objects of type 'retrotransposed'.} \item{}{\code{scRNA="gold4"}: Character or integer scalar. Fill color for annotation objects of type 'scRNA'.} \item{}{\code{scRNA_pseudogene="darkorange2"}: Character or integer scalar. Fill color for annotation objects of type 'scRNA_pseudogene'.} \item{}{\code{snRNA="coral"}: Character or integer scalar. Fill color for annotation objects of type 'snRNA'.} \item{}{\code{snRNA_pseudogene="coral3"}: Character or integer scalar. Fill color for annotation objects of type 'snRNA_pseudogene'.} \item{}{\code{snoRNA="cyan"}: Character or integer scalar. Fill color for annotation objects of type 'snoRNA'.} \item{}{\code{snoRNA_pseudogene="cyan2"}: Character or integer scalar. Fill color for annotation objects of type 'snoRNA_pseudogene'.} \item{}{\code{tRNA_pseudogene="antiquewhite3"}: Character or integer scalar. Fill color for annotation objects of type 'tRNA_pseudogene'.} \item{}{\code{utr3="#FFD58A"}: FIXME: PLEASE ADD PARAMETER DESCRIPTION.} \item{}{\code{utr5="#FFD58A"}: FIXME: PLEASE ADD PARAMETER DESCRIPTION.} \item{}{\code{verbose=FALSE}: Logical scalar. Report data loading events from Bioamart or retrieval from cache.} } \bold{\emph{Inherited from class GeneRegionTrack:}} \describe{ \item{}{\code{arrowHeadWidth=10}: Numeric scalar. The width of the arrow head in pixels if \code{shape} is \code{fixedArrow}.} \item{}{\code{arrowHeadMaxWidth=20}: Numeric scalar. The maximum width of the arrow head in pixels if \code{shape} is \code{arrow}.} \item{}{\code{col=NULL}: Character or integer scalar. The border color for all track items. Defaults to using the same color as in \code{fill}, also taking into account different track \code{features}.} \item{}{\code{collapseTranscripts=FALSE}: Logical or character scalar. Can be one in \code{gene}, \code{longest}, \code{shortest} or \code{meta}. Merge all transcripts of the same gene into one single gene model. In the case of \code{gene} (or \code{TRUE}), this will only keep the start location of the first exon and the end location of the last exon from all transcripts of the gene. For \code{shortest} and \code{longest}, only the longest or shortest transcript model is retained. For \code{meta}, a meta-transcript containing the union of all exons is formed (essentially identical to the operation \code{reduce(geneModel)}).} \item{}{\code{exonAnnotation=NULL}: Character scalar. Add annotation information to the individual exon models. This can be a value in \code{symbol}, \code{gene}, \code{transcript}, \code{exon} or \code{feature}. Defaults to \code{exon}. Only works if \code{showExonId} is not \code{FALSE}.} \item{}{\code{fill="orange"}: Character or integer scalar. The fill color for untyped items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{min.distance=0}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details. Note that a value larger than 0 may lead to UTR regions being merged to CDS regions, which in most cases is not particularly useful.} \item{}{\code{shape=c("smallArrow", "box")}: Character scalar. The shape in which to display the track items. Currently only \code{box}, \code{arrow}, \code{ellipse}, and \code{smallArrow} are implemented.} \item{}{\code{showExonId=NULL}: Logical scalar. Control whether to plot the individual exon identifiers.} \item{}{\code{thinBoxFeature=c("utr", "ncRNA", "utr3", "utr5", "3UTR", "5UTR", "miRNA", "lincRNA", "three_prime_UTR", "five_prime_UTR")}: Character vector. A listing of feature types that should be drawn with thin boxes. Typically those are non-coding elements.} \item{}{\code{transcriptAnnotation=NULL}: Character scalar. Add annotation information as transcript labels. This can be a value in \code{symbol}, \code{gene}, \code{transcript}, \code{exon} or \code{feature}. Defaults to \code{symbol}. Only works if \code{showId} is not \code{FALSE}.} } \bold{\emph{Inherited from class AnnotationTrack:}} \describe{ \item{}{\code{cex.group=0.6}: Numeric scalar. The font expansion factor for the group-level annotation.} \item{}{\code{cex=1}: Numeric scalar. The font expansion factor for item identifiers.} \item{}{\code{col.line="darkgray"}: Character scalar. The color used for connecting lines between grouped items. Defaults to a light gray, but if set to \code{NULL} the same color as for the first item in the group is used.} \item{}{\code{featureAnnotation=NULL}: Character scalar. Add annotation information to the individual track elements. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{id}. Only works if \code{showFeatureId} is not \code{FALSE}.} \item{}{\code{fontfamily.group="sans"}: Character scalar. The font family for the group-level annotation.} \item{}{\code{fontcolor.group="#808080"}: Character or integer scalar. The font color for the group-level annotation.} \item{}{\code{fontcolor.item="white"}: Character or integer scalar. The font color for item identifiers.} \item{}{\code{fontface.group=2}: Numeric scalar. The font face for the group-level annotation.} \item{}{\code{fontsize.group=12}: Numeric scalar. The font size for the group-level annotation.} \item{}{\code{groupAnnotation=NULL}: Character scalar. Add annotation information as group labels. This can be a value in \code{id}, \code{group} or \code{feature}. Defaults to \code{group}. Only works if \code{showId} is not \code{FALSE}.} \item{}{\code{just.group="left"}: Character scalar. the justification of group labels. Either \code{left}, \code{right}, \code{above} or \code{below}.} \item{}{\code{lex=1}: Numeric scalar. The line expansion factor for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for item identifiers.} \item{}{\code{lty="solid"}: Character or integer scalar. The line type for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{lwd=1}: Integer scalar. The line width for all track items. This is also used to connect grouped items. See \code{\link{grouping}} for details.} \item{}{\code{mergeGroups=FALSE}: Logical scalar. Merge fully overlapping groups if \code{collapse==TRUE}.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details. For feathered bars indicating the strandedness of grouped items this also controls the height of the arrow feathers.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{rotation=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{rotation.group=0}: Numeric scalar. The degree of text rotation for group labels.} \item{}{\code{rotation.item=0}: Numeric scalar. The degree of text rotation for item identifiers.} \item{}{\code{showFeatureId=FALSE}: Logical scalar. Control whether to plot the individual track item identifiers.} \item{}{\code{showId=FALSE}: Logical scalar. Control whether to annotate individual groups.} \item{}{\code{showOverplotting=FALSE}: Logical scalar. Use a color gradient to show the amount of overplotting for collapsed items. This implies that \code{collapse==TRUE}} \item{}{\code{size=1}: Numeric scalar. The relative size of the track. Can be overridden in the \code{\link{plotTracks}} function.} } \bold{\emph{Inherited from class StackedTrack:}} \describe{ \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} } \bold{\emph{Inherited from class GdObject:}} \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The border color for the title panels} \item{}{\code{collapse=TRUE}: Boolean controlling whether to collapse the content of the track to accomodate the minimum current device resolution. See \code{\link{collapsing}} for details.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } \item{AlignedReadTrack}{: \describe{ \item{}{\code{detail="coverage"}: the amount of detail to plot the data. Either \code{coverage} to show the coverage only, or \code{reads} to show individual reads. For large data sets the latter can be very inefficient. Please note that \code{reads} is only available when the object has been created with option \code{coverageOnly=FALSE}.} \item{}{\code{type="histogram"}: the plot type, one or several in \code{c("p","l", "b", "a", "s", "g", "r", "S", "smooth", "histogram", "mountain", "polygon", "h", "boxplot", "gradient", "heatmap", "horizon")}. See the 'Details' section in \code{\linkS4class{DataTrack}} for more information on the individual plotting types.} \item{}{\code{fill="#0080ff"}: the fill color for the coverage indicator.} \item{}{\code{size=NULL}: the relative size of the track. Defaults to size selection based on the underlying data. Can be overridden in the \code{\link{plotTracks}} function.} \item{}{\code{collapse=FALSE}: collapse overlapping ranges and aggregate the underlying data.} } \bold{\emph{Inherited from class StackedTrack:}} \describe{ \item{}{\code{stackHeight=0.75}: Numeric between 0 and 1. Controls the vertical size and spacing between stacked elements. The number defines the proportion of the total available space for the stack that is used to draw the glyphs. E.g., a value of 0.5 means that half of the available vertical drawing space (for each stacking line) is used for the glyphs, and thus one quarter of the available space each is used for spacing above and below the glyph. Defaults to 0.75.} \item{}{\code{reverseStacking=FALSE}: Logical flag. Reverse the y-ordering of stacked items. I.e., features that are plotted on the bottom-most stacks will be moved to the top-most stack and vice versa.} } \bold{\emph{Inherited from class GdObject:}} \describe{ \item{}{\code{alpha=1}: Numeric scalar. The transparency for all track items.} \item{}{\code{alpha.title=NULL}: Numeric scalar. The transparency for the title panel.} \item{}{\code{background.panel="transparent"}: Integer or character scalar. The background color of the content panel.} \item{}{\code{background.title="lightgray"}: Integer or character scalar. The background color for the title panel.} \item{}{\code{cex.axis=NULL}: Numeric scalar. The expansion factor for the axis annotation. Defaults to \code{NULL}, in which case it is automatically determined based on the available space.} \item{}{\code{cex.title=NULL}: Numeric scalar. The expansion factor for the title panel. This effects the fontsize of both the title and the axis, if any. Defaults to \code{NULL}, which means that the text size is automatically adjusted to the available space.} \item{}{\code{cex=1}: Numeric scalar. The overall font expansion factor for all text and glyphs, unless a more specific definition exists.} \item{}{\code{col.axis="white"}: Integer or character scalar. The font and line color for the y axis, if any.} \item{}{\code{col.border.title="white"}: Integer or character scalar. The border color for the title panels.} \item{}{\code{col.frame="lightgray"}: Integer or character scalar. The line color used for the panel frame, if \code{frame==TRUE}} \item{}{\code{col.grid="#808080"}: Integer or character scalar. Default line color for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{col.line=NULL}: Integer or character scalar. Default colors for plot lines. Usually the same as the global \code{col} parameter.} \item{}{\code{col.symbol=NULL}: Integer or character scalar. Default colors for plot symbols. Usually the same as the global \code{col} parameter.} \item{}{\code{col.title="white"}: Integer or character scalar. The border color for the title panels} \item{}{\code{col="#0080FF"}: Integer or character scalar. Default line color setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{fontcolor="black"}: Integer or character scalar. The font color for all text, unless a more specific definition exists.} \item{}{\code{fontface.title=2}: Integer or character scalar. The font face for the title panels.} \item{}{\code{fontface=1}: Integer or character scalar. The font face for all text, unless a more specific definition exists.} \item{}{\code{fontfamily.title="sans"}: Integer or character scalar. The font family for the title panels.} \item{}{\code{fontfamily="sans"}: Integer or character scalar. The font family for all text, unless a more specific definition exists.} \item{}{\code{fontsize=12}: Numeric scalar. The font size for all text, unless a more specific definition exists.} \item{}{\code{frame=FALSE}: Boolean. Draw a frame around the track when plotting.} \item{}{\code{grid=FALSE}: Boolean, switching on/off the plotting of a grid.} \item{}{\code{h=-1}: Integer scalar. Parameter controlling the number of horizontal grid lines, see \code{\link{panel.grid}} for details.} \item{}{\code{lineheight=1}: Numeric scalar. The font line height for all text, unless a more specific definition exists.} \item{}{\code{lty.grid="solid"}: Integer or character scalar. Default line type for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lty="solid"}: Numeric scalar. Default line type setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{lwd.border.title=1}: Integer scalar. The border width for the title panels.} \item{}{\code{lwd.title=1}: Integer scalar. The border width for the title panels} \item{}{\code{lwd.grid=1}: Numeric scalar. Default line width for grid lines, both when \code{type=="g"} in \code{\link{DataTrack}}s and when display parameter \code{grid==TRUE}.} \item{}{\code{lwd=1}: Numeric scalar. Default line width setting for all plotting elements, unless there is a more specific control defined elsewhere.} \item{}{\code{min.distance=1}: Numeric scalar. The minimum pixel distance before collapsing range items, only if \code{collapse==TRUE}. See \code{\link{collapsing}} for details.} \item{}{\code{min.height=3}: Numeric scalar. The minimum range height in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{min.width=1}: Numeric scalar. The minimum range width in pixels to display. All ranges are expanded to this size in order to avoid rendering issues. See \code{\link{collapsing}} for details.} \item{}{\code{reverseStrand=FALSE}: Logical scalar. Set up the plotting coordinates in 3' -> 5' direction if \code{TRUE}. This will effectively mirror the plot on the vertical axis.} \item{}{\code{rotation.title=90}: The rotation angle for the text in the title panel. Even though this can be adjusted, the automatic resizing of the title panel will currently not work, so use at own risk.} \item{}{\code{rotation=0}: The rotation angle for all text unless a more specific definiton exists.} \item{}{\code{showAxis=TRUE}: Boolean controlling whether to plot a y axis (only applies to track types where axes are implemented).} \item{}{\code{showTitle=TRUE}: Boolean controlling whether to plot a title panel. Although this can be set individually for each track, in multi-track plots as created by \code{\link{plotTracks}} there will still be an empty placeholder in case any of the other tracks include a title. The same holds true for axes. Note that the the title panel background color could be set to transparent in order to completely hide it.} \item{}{\code{v=-1}: Integer scalar. Parameter controlling the number of vertical grid lines, see \code{\link{panel.grid}} for details.} } } } } \author{ Florian Hahne } \seealso{ \code{\linkS4class{AnnotationTrack}} \code{\linkS4class{DataTrack}} \code{\linkS4class{DisplayPars}} \code{\linkS4class{GdObject}} \code{\link{availableDisplayPars}} \code{\link{collapsing}} \code{\link{displayPars}} \code{\link{grouping}} \code{\link{horizonplot}} \code{\link{panel.bwplot}} \code{\link{panel.grid}} \code{\link{panel.loess}} \code{\link{panel.xyplot}} \code{\link{plotTracks}} } Gviz/vignettes/0000755000175400017540000000000013175732505014537 5ustar00biocbuildbiocbuildGviz/vignettes/Gviz-refs.bib0000644000175400017540000000317613175714140017073 0ustar00biocbuildbiocbuild@article{Katz22012015, author = {Katz, Yarden and Wang, Eric T. and Silterra, Jacob and Schwartz, Schraga and Wong, Bang and Thorvaldsdóttir, Helga and Robinson, James T. and Mesirov, Jill P. and Airoldi, Edoardo M. and Burge, Christopher B.}, title = {Quantitative visualization of alternative exon expression from RNA-seq data}, year = {2015}, doi = {10.1093/bioinformatics/btv034}, abstract ={Motivation: Analysis of RNA sequencing (RNA-Seq) data revealed that the vast majority of human genes express multiple mRNA isoforms, produced by alternative pre-mRNA splicing and other mechanisms, and that most alternative isoforms vary in expression between human tissues. As RNA-Seq datasets grow in size, it remains challenging to visualize isoform expression across multiple samples.Results: To help address this problem, we present Sashimi plots, a quantitative visualization of aligned RNA-Seq reads that enables quantitative comparison of exon usage across samples or experimental conditions. Sashimi plots can be made using the Broad Integrated Genome Viewer or with a stand-alone command line program.Availability and implementation: Software code and documentation freely available here: http://miso.readthedocs.org/en/fastmiso/sashimi.htmlContact: mesirov@broadinstitute.org, airoldi@fas.harvard.edu or cburge@mit.eduSupplementary information: Supplementary data are available at Bioinformatics online.}, URL = {http://bioinformatics.oxfordjournals.org/content/early/2015/02/25/bioinformatics.btv034.abstract}, eprint = {http://bioinformatics.oxfordjournals.org/content/early/2015/02/25/bioinformatics.btv034.full.pdf+html}, journal = {Bioinformatics} } Gviz/vignettes/Gviz.Rnw0000644000175400017540000037322213175714140016152 0ustar00biocbuildbiocbuild%\VignetteIndexEntry{Gviz users guide} %\VignetteDepends{Gviz} %\VignetteKeywords{visualization, genomics} %\VignettePackage{Gviz} \documentclass[11pt]{article} % A bunch of styles and package requirements for the Bioconductor vignette branding <>= BiocStyle::latex() @ \RequirePackage[utf8]{inputenc} \SweaveOpts{keep.source=FALSE,pdf=TRUE,eps=FALSE} % \RequirePackage{hyperref} \RequirePackage{url} %\RequirePackage[authoryear,round]{natbib} %\bibliographystyle{plainnat} % \RequirePackage[text={7.2in,9in},centering]{geometry} \RequirePackage{Sweave} \setkeys{Gin}{width=0.95\textwidth} \RequirePackage{longtable} \RequirePackage{graphicx} \newcommand{\code}[1]{{\texttt{#1}}} \newcommand{\term}[1]{{\emph{#1}}} \newcommand{\Rmethod}[1]{{\textit{#1}}} \newcommand{\Rfunarg}[1]{{\textit{#1}}} \newcommand{\scscst}{\scriptscriptstyle} \newcommand{\scst}{\scriptstyle} \newcommand{\mgg}[0]{\Rpackage{Gviz} } \newcommand{\Reference}[1]{{\texttt{#1}}} \newcommand{\link}[1]{{#1}} \soulregister{\link}{1}% necessary for compatibility with LaTeX soul package used by BiocStyle for inline code highlighting \newcommand{\RR}[0]{{\texttt{R}}} \title{The Gviz User Guide} \author{Florian Hahne\footnote{florian.hahne@novartis.com}} \date{Edited: January 2014; Compiled: \today} \begin{document} <>= options(width=65) library(xtable) source(system.file("scripts/documentation.R", package="Gviz")) xtabDetails <- details addParTable <- function(class, skip=c("showTitle", "size", "background.title"), add=NULL) { Parameters <- data.frame("Display Parameter"=names(xtabDetails[[class]]), "Description"=xtabDetails[[class]], check.names=FALSE) align <- "lrp{5in}" if(!is.null(add)){ Parameters <- cbind(Parameters, add) align <- c("lp{4in}", "lp{4in}", "lp{4in}", "lp{4in}") } Parameters <- Parameters[order(Parameters[,1]),] Parameters <- apply(Parameters, 2, function(x) gsub("_", "\\_", x, fixed=TRUE)) rownames(Parameters) <- gsub("_", "\\_", rownames(Parameters), fixed=TRUE) sel <- Parameters[,1] %in% skip Parameters[,2] <- gsub("\\code{\\linkS4class{", "\\Rclass{{", Parameters[,2], fixed=TRUE) print(xtable(Parameters[!sel,], align=align), sanitize.text.function=function(x) x, include.rownames=FALSE, floating=FALSE, tabular.environment="longtable") return(invisible()) } hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") oto <- options(timeout=5) hasBiomartConnection <- (!is(try(download.file("http://www.biomart.org", tempfile(), quiet=TRUE)), "try-error") && !is(try(biomaRt::listMarts(), silent=TRUE), "try-error")) options(timeout=oto) ## Uncommenting this helps when the UCSC server has a hickup but still lets you connect: ##hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") && !is(try(IdeogramTrack(genome="hg19", chromosome=7), silent=TRUE), "try-error") @ \maketitle \tableofcontents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} In order to make sense of genomic data one often aims to plot such data in a genome browser, along with a variety of genomic annotation features, such as gene or transcript models, CpG island, repeat regions, and so on. These features may either be extracted from public data bases like ENSEMBL or UCSC, or they may be generated or curated in-house. Many of the currently available genome browsers do a reasonable job in displaying genome annotation data, and there are options to connect to some of them from within \R (e.g., using the \Rpackage{rtracklayer} package). However, none of these solutions offer the flexibility of the full \RR graphics system to display large numeric data in a multitude of different ways. The \mgg package aims to close this gap by providing a structured visualization framework to plot any type of data along genomic coordinates. It is loosely based on the \Rpackage{GenomeGraphs} package by Steffen Durinck and James Bullard, however the complete class hierarchy as well as all the plotting methods have been restructured in order to increase performance and flexibility. All plotting is done using the grid graphics system, and several specialized annotation classes allow to integrate publicly available genomic annotation data from sources like UCSC or ENSEMBL. \section{Basic Features} The fundamental concept behind the \mgg package is similar to the approach taken by most genome browsers, in that individual types of genomic features or data are represented by separate tracks. Within the package, each track constitutes a single object inheriting from class \Rclass{GdObject}, and there are constructor functions as well as a broad range of methods to interact with and to plot these tracks. When combining multiple objects, the individual tracks will always share the same genomic coordinate system, thus taking the burden of aligning the plot elements from the user. It is worth mentioning that, at a given time, tracks in the sense of the \mgg package are only defined for a single chromosome on a specific genome, at least for the duration of a given plotting operation. You will later see that a track may still contain information for multiple chromosomes, however most of this is hidden except for the currently active chromosome, and the user will have to explicitely switch the chromsome to access the inactive parts. While the package in principle imposes no fixed structure on the chromosome or on the genome names, it makes sense to stick to a standaradized naming paradigm, in particular when fetching additional annotation information from online resources. By default this is enforced by a global option \code{ucscChromosomeNames}, which is set during package loading and which causes the package to check all supplied chromosome names for validity in the sense of the UCSC definition (chromosomes have to start with the \term{chr} string). You may decide to turn this feature off by calling \code{options(ucscChromosomeNames=FALSE)}. For the remainder of this vignette however, we will make use of the UCSC genome and chromosome identifiers, e.g., the \Robject{chr7} chromosome on the mouse \Robject{mm9} genome. The different track classes will be described in more detail in the \Reference{Track classes} section further below. For now, let's just take a look at a typical \mgg session to get an idea of what this is all about. We begin our presentation of the available functionality by loading the package: <>= library(Gviz) @ The most simple genomic features consist of start and stop coordinates, possibly overlapping each other. CpG islands or microarray probes are real life examples for this class of features. In the Bioconductor world those are most often represented as run-length encoded vectors, for instance in the \Rclass{IRanges} and \Rclass{GRanges} classes. To seamlessly integrate with other Bioconductor packages, we can use the same data structures to generate our track objects. A sample set of CpG island coordinates has been saved in the \Robject{cpgIslands} object and we can use that for our first annotation track object. The constructor function \Rfunction{AnnotationTrack} is a convenient helper to create the object. <>= library(GenomicRanges) data(cpgIslands) class(cpgIslands) chr <- as.character(unique(seqnames(cpgIslands))) gen <- genome(cpgIslands) atrack <- AnnotationTrack(cpgIslands, name="CpG") @ Please note that the \Rfunction{AnnotationTrack} constructor (as most constructors in this package) is fairly flexible and can accomodate many different types of inputs. For instance, the start and end coordinates of the annotation features could be passed in as individual arguments \Robject{start} and \Robject{end}, as a \Rclass{data.frame} or even as an \Rclass{IRanges} or \Rclass{GRangesList} object. Furthermore, a whole bunch of coercion methods are available for those package users that prefer the more traditional R coding paradigm, and they should allow operations along the lines of \code{as(obj, 'AnnotationTrack')}. You may want to consult the class' manual page for more information, or take a look at the \Reference{Bioconductor integration} section for a listing of the most common data structures and their respective counterparts in the \mgg package. With our first track object being created we may now proceed to the plotting. There is a single function \Rfunction{plotTracks} that handles all of this. As we will learn in the remainder of this vignette, \Rfunction{plotTracks} is quite powerful and has a number of very useful additional arguments. For now we will keep things very simple and just plot the single CpG islands annotation track. <>= plotTracks(atrack) @ As you can see, the resulting graph is not particularly spectacular. There is a title region showing the track's name on a gray background on the left side of the plot and a data region showing the seven individual CpG islands on the right. This structure is similar for all the available track objects classes and it somewhat mimicks the layout of the popular UCSC Genome Browser. If you are not happy with the default settings, the \mgg package offers a multitude of options to fine-tune the track appearance, which will be shown in the \Reference{Plotting Parameters} section. Appart from the relative distance of the Cpg islands, this visualization does not tell us much. One obvious next step would be to indicate the genomic coordinates we are currently looking at in order to provide some reference. For this purpose, the \mgg package offers the \Rclass{GenomeAxisTrack} class. Objects from the class can be created using the constructor function of the same name. <>= gtrack <- GenomeAxisTrack() @ Since a \Rclass{GenomeAxisTrack} object is always relative to the other tracks that are plotted, there is little need for additional arguments. Essentially, the object just tells the \Rfunction{plotTracks} function to add a genomic axis to the plot. Nonetheless, it represent a separate annotation track just as the CpG island track does. We can pass this additional track on to \Rfunction{plotTracks} in the form of a list. <>= plotTracks(list(gtrack, atrack)) @ You may have realized that the genomic axis does not take up half of the available vertical plotting space, but only uses the space necessary to fit the axis and labels. Also the title region for this track is empty. In general, the \mgg package tries to find reasonable defaults for all the parameters controlling the look and feel of a plots so that appealing visualizations can be created without too much tinkering. However, all features on the plot including the relative track sizes can also be adjusted manually. As mentioned before in the beginning of this vignette, a plotted track is always defined for exactly one chromosome on a particular genome. We can include this information in our plot by means of a chromosome ideogram. An ideogram is a simplified visual representation of a chromosome, with the different chromosomal staining bands indicated by color, and the centromer (if present) indicated by the shape. The necessary information to produce this visualization is stored in online data repositories, for instance at UCSC. The \mgg package offers very convenient connections to some of these repositories, and the \Rclass{IdeogramTrack} constructor function is one example for such a connection. With just the information about a valid UCSC genome and chromosome, we can directly fetch the chromosome ideogram information and construct a dedicated track object that can be visualized by \Rfunction{plotTracks}. Please not that you will need an established internet connection for this to work, and that fetching data from UCSC can take quite a long time, depending on the server load. The \mgg package tries to cache as much data as possible to reduce the bandwidth in future queries. <>= itrack <- IdeogramTrack(genome=gen, chromosome=chr) @ <>= if(hasUcscConnection){ itrack <- IdeogramTrack(genome=gen, chromosome=chr) }else{ data(itrack) } @ Similar to the previous examples, we stick the additional track object into a list in order to plot it. <>= plotTracks(list(itrack, gtrack, atrack)) @ Ideogram tracks are the one exception in all of \mgg's track objects in the sense that they are not really displayed on the same coordinate system like all the other tracks. Instead, the current genomic location is indicated on the chromosome by a red box (or, as in this case, a red line if the width is too small to fit a box). So far we have only looked at very basic annotation features and how to give a point of reference to our plots. Naturally, we also want to be able to handle more complex genomic features, such as gene models. One potential use case would be to utilize gene model information from an existing local source. Alternatively, we could dowload such data from one of the available online resources like UCSC or ENSEBML, and there are constructor functions to handle these tasks. For this example we are going to load gene model data from a stored \Rclass{data.frame}. The track class of choice here is a \Rclass{GeneRegionTrack} object, which can be created via the constructor function of the same name. Similar to the \Rclass{AnnotationTrack} constructor there are multiple possible ways to pass in the data. <>= data(geneModels) grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model") plotTracks(list(itrack, gtrack, atrack, grtrack)) @ In all those previous examples the plotted genomic range has been determined automatically from the input tracks. Unless told otherwise, the package will always display the region from the leftmost item to the rightmost item in any of the tracks. Of course such a static view on a chromosomal region is of rather limited use. We often want to zoom in or out on a particular plotting region to see more details or to get a broader overview. To that end, \Rfunction{plotTracks} supports the \Robject{from} and \Robject{to} arguments that let us choose an arbitrary genomic range to plot. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), from=26700000, to=26750000) @ Another pair of arguments that controls the zoom state are \Robject{extend.left} and \Robject{extend.right}. Rather than \Robject{from} and \Robject{to}, those arguments are relative to the currently displayed ranges, and can be used to quickly extend the view on one or both ends of the plot. In addition to positive or negative absolute integer values one can also provide a float value between -1 and 1 which will be interpreted as a zoom factor, i.e., a value of 0.5 will cause zooming in to half the currently displayed range. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), extend.left=0.5, extend.right=1000000) @ You may have noticed that the layout of the gene model track has changed depending on the zoom level. This is a feature of the \mgg package, which automatically tries to find the optimal visualization settings to make best use of the available space. At the same time, when features on a track are too close together to be plotted as separate items with the current device resolution, the package will try to reasonably merge them in order to avoid overplotting. Often individual ranges on a plot tend to grow quite narrow, in particular when zooming far out, and a couple of tweaks become helpful in order to get nice plots, for instance to drop the bounding borders of the exons. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), extend.left=0.5, extend.right=1000000, col=NULL) @ When zooming further in it may become interesting to take a look at the actual genomic sequence at a given position, and the \mgg package provides the track class \Rclass{SequenceTrack} that let's you do just that. Among several other options it can draw the necessary sequence information from one of the \Rclass{BSgenome} packages. <>= library(BSgenome.Hsapiens.UCSC.hg19) strack <- SequenceTrack(Hsapiens, chromosome=chr) plotTracks(list(itrack, gtrack, atrack, grtrack, strack), from=26591822, to=26591852, cex=0.8) @ So far we have replicated the features of a whole bunch of other genome browser tools out there. The real power of the package comes with a rather general track type, the \Rclass{DataTrack}. \Rclass{DataTrack} object are essentially run-length encoded numeric vectors or matrices, and we can use them to add all sorts of numeric data to our genomic coordinate plots. There are a whole bunch of different visualization options for these tracks, from dot plots to histograms to box-and-whisker plots. The individual rows in a numeric matrix are considered to be different data groups or samples, and the columns are the raster intervals in the genomic coordinates. Of course, the data points (or rather the data ranges) do not have to be evenly spaced; each column is associated with a particular genomic location. For demonstration purposes we can create a simple \Rclass{DataTrack} object from randomly sampled data. <>= set.seed(255) lim <- c(26700000, 26750000) coords <- sort(c(lim[1], sample(seq(from=lim[1], to=lim[2]), 99), lim[2])) dat <- runif(100, min=-10, max=10) dtrack <- DataTrack(data=dat, start=coords[-length(coords)], end=coords[-1], chromosome=chr, genome=gen, name="Uniform") plotTracks(list(itrack, gtrack, atrack, grtrack, dtrack), from=lim[1], to=lim[2]) @ The first thing to notice is that the title panel to the right of the plot now contains a y-axis indicating the range of the displayed data. The default plotting type for numeric vectors is a simple dot plot. This is by far not the only visualization option, and in a sense it is waisting quite a lot of information because the run-length encoded ranges are not immediately apparent. We can change the plot type by supplying the \Robject{type} argument to \Rfunction{plotTracks}. A complete description of the available plotting options is given in section \Reference{Track classes}, and a more detailed treatment of the so-called 'display parameters' that control the look and feel of a track is given in the \Reference{Plotting Parameters} section. <>= plotTracks(list(itrack, gtrack, atrack, grtrack, dtrack), from=lim[1], to=lim[2], type="histogram") @ As we can see, the data values in the numeric vector are indeed matched to the genomic coordinates of the \Rclass{DataTrack} object. Such a visualization can be particularly helpful when displaying for instance the coverage of NGS reads along a chromosome, or to show the measurement values of mapped probes from a micro array experiment. This concludes our first introduction into the \mgg package. The remainder of this vignette will deal in much more depth with the different concepts and the various track classes and plotting options. \section{Plotting parameters} \subsection{Setting parameters} Although not implicitely mentioned before, we have already made use of the plotting parameter facilities in the \mgg package, or, as we will call them from now on, the 'display parameters'. Display parameters are properties of individual track objects (i.e., of any object inheriting from the base \Rclass{GdObject} class). They can either be set during object instantiation as additional arguments to the constructor functions or, for existing track objects, using the \Rfunction{displayPars} replacement method. In the former case, all named arguments that can not be matched to any of the constructor's formal arguments are considered to be display parameters, regardless of their type or whether they are defined for a particular track class or not. The following code example rebuilds our \Rclass{GeneRegionTrack} object with a bunch of display parameters and demonstrates the use of the \Rfunction{displayPars} accessor and replacement methods. <>= grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model", transcriptAnnotation="symbol", background.title="brown") head(displayPars(grtrack)) displayPars(grtrack) <- list(background.panel="#FFFEDB", col=NULL) head(displayPars(grtrack)) plotTracks(list(itrack, gtrack, atrack, grtrack)) @ For our gene model track we have now added the gene symbols of the different transcripts to the plot, removed the gray border around the individual exons models, and changed the background color of both the title and the data panel to a yellowish hue. There is a third option to set display parameters for a single plotting operation (rather than the permanent setting in the track object) by passing in additional arguments to the \Rfunction{plotTracks} function. We have already made use of this feature, for instance in the previous data plotting type example. It is worth mentioning that all display parameters which are passed along with the \Rfunction{plotTracks} function apply to \emph{all} track objects in the plot. For some objects classes a particular display parameter may not make any sense, and in that case it is simply ignored. Also, the settings only apply for one single plotting operation and will not be retained in the plotted track objects. They do however get precedence over the object-internal parameters. The following line of code exemplifies this behaviour. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), background.panel="#FFFEDB", background.title="darkblue") @ In order to make full use of the flexible parameter system we need to know which display parameters control which aspect of which track class. The obvious source for this information are the man pages of the respective track classes, which list all available parameters along with a short description of their effect and default values in the \Robject{Display Parameters} section. Alternatively, we can use the \Rfunction{availableDisplayPars} function, which prints out the available parameters for a class as well as their default values in a list-like structure. The single argument to the function is either a class name of a track object class, or the object itself, in which case its class is automatically detected. <>= dp <- availableDisplayPars(grtrack) tail(dp) @ As we can see, display parameters can be inherited from parent classes. For the regular user this is not important at all, however it nicely exemplifies the structure of the class hierarchy in the \mgg package. \subsection{Schemes} Users might find themselves changing the same parameters over and over again, and it would make sense to register these modifications in a central location once and for all. To this end the \mgg package supports display parameter schemes. A scheme is essentially just a bunch of nested named lists, where the names on the first level of nesting should correspond to track class names, and the names on the second level to the display parameters to set. The currently active schmeme can be changed by setting the global option \Robject{Gviz.scheme}, and a new scheme can be registered by using the \Rfunction{addScheme} function, providing both the list and the name for the new scheme. The \Rfunction{getScheme} function is useful to get the current scheme as a list structure, for instance to use as a skeleton for your own custom scheme. <>= getOption("Gviz.scheme") scheme <- getScheme() scheme$GeneRegionTrack$fill <- "salmon" scheme$GeneRegionTrack$col <- NULL scheme$GeneRegionTrack$transcriptAnnotation <- "transcript" addScheme(scheme, "myScheme") options(Gviz.scheme="myScheme") grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model") plotTracks(grtrack) options(Gviz.scheme="default") grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="Gene Model", transcriptAnnotation="symbol") @ In order to make these settings persitant across R sessions one can create one or several schemes in the global environment in the special object \Robject{.GvizSchemes}, for instance by putting the necessary code in the \Robject{.Rprofile} file. This object needs to be a named list of schemes, and it will be collected when the \mgg package loads. Its content is then automatically added to the collection of available schemes. The following pseudo-code exemplifies this and could go into an \Robject{.Rprofile} file. <>= .GvizSchemes <- list(myScheme=list(GeneRegionTrack=list(fill="salmon", col=NULL, transcriptAnnotation="transcript"))) @ Please note that because display parameters are stored with the track objects, a scheme change only has an effect on those objects that are created after the change has taken place. \subsection{Plotting direction} By default all tracks will be plotted in a 5' -> 3' direction. It sometimes can be useful to actually show the data relative to the opposite strand. To this end one can use the \Rfunarg{reverseStrand} display parameter, which does just what its name suggests. Since the combination of forward and reverse stranded tracks on a single plot does not make too much sense, one should usually set this as a global display parameter in the \Rfunction{plotTracks} function. The function will however cast a warning if a mixture of forward and reverse strand tracks has been passed in for plotting. <>= plotTracks(list(itrack, gtrack, atrack, grtrack), reverseStrand=TRUE) @ As you can see, the fact that the data has been plotted on the reverse strand is also reflected in the \Rclass{GenomeAxis} track. \section{Track classes} In this section we will highlight all of the available annotation track classes in the \mgg package. For the complete reference of all the nuts and bolts, including all the avaialable methods, please see the respective class man pages. We will try to keep this vignette up to date, but in cases of discrepancies between here and the man pages you should assume the latter to be correct. \subsection{GenomeAxisTrack} \Rclass{GenomeAxisTrack} objects can be used to add some reference to the currently displayed genomic location to a \mgg plot. In their most basic form they are really just a horizontal axis with genomic coordinate tickmarks. Using the \Rfunction{GenomeAxisTrack} constructor function is the recommended way to instantiate objects from the class. There is no need to know in advance about a particular genomic location when constructing the object. Instead, the displayed coordinates will be determined from the context, e.g., from the \Rfunarg{from} and \Rfunarg{to} arguments of the \Rfunction{plotTracks} function, or, when plotted together with other track objects, from their genomic locations. <>= axisTrack <- GenomeAxisTrack() plotTracks(axisTrack, from=1e6, to=9e6) @ As an optional feature one can highlight particular regions on the axis, for instance to indicated stretches of N nucleotides or gaps in genomic alignments. Such regions have to be supplied to the optional \Rfunarg{range} argument of the constructor function as either an \Rclass{GRanges} or an \Rclass{IRanges} object. <>= axisTrack <- GenomeAxisTrack(range=IRanges(start=c(2e6, 4e6), end=c(3e6, 7e6), names=rep("N-stretch", 2))) plotTracks(axisTrack, from=1e6, to=9e6) @ If names have been supplied with the \Rfunarg{range} argument, those can also be added to the plot. <>= plotTracks(axisTrack, from=1e6, to=9e6, showId=TRUE) @ \subsubsection*{Display parameters for GenomeAxisTrack objects} There are a whole bunch of display parameters to alter the appearance of \Rclass{GenomeAxisTrack} plots. For instance, one could add directional indicators to the axis using the \Rfunarg{add53} and \Rfunarg{add35} parameters. <>= plotTracks(axisTrack, from=1e6, to=9e6, add53=TRUE, add35=TRUE) @ Sometimes the resolution of the tick marks is not sufficient, in which case the \Rfunarg{littleTicks} argument can be used to have a more fine-grained axis annotation. <>= plotTracks(axisTrack, from=1e6, to=9e6, add53=TRUE, add35=TRUE, littleTicks=TRUE) @ The \mgg package tries to come up with reasonable defaults for the axis annotation. In our previous example, the genomic coordinates are indicated in megabases. We can control this via the \Rfunarg{exponent} parameter, which takes an integer value greater then zero. The location of the tick marks are displayed as a fraction of $10^{exponent}$. <>= plotTracks(axisTrack, from=1e6, to=9e6, exponent=4) @ Another useful parameter, \Rfunarg{labelPos} controls the arrangement of the tick marks. It takes one of the values \code{alternating}, \code{revAlternating}, \code{above} or \code{below}. For instance we could aline all tick marks underneath the axis. <>= plotTracks(axisTrack, from=1e6, to=9e6, labelPos="below") @ Sometimes a full-blown axis is just too much, and all we really need in the plot is a small scale indicator. We can change the appearance of the \Rclass{GenomeAxisTrack} object to such a limited representation by setting the \Rfunarg{scale} display parameter. Typically, this will be a numeric value between 0 and 1, which is interpreted as the fraction of the plotting region used for the scale. The plotting method will apply some rounding to come up with reasonable and human-readable values. For even more control we can pass in a value larger than 1, which is considered to be an absolute range length. In this case, the user is responsible for the scale to actually fit in the current plotting range. <>= plotTracks(axisTrack, from=1e6, to=9e6, scale=0.5) @ We still have control over the placement of the scale label via the \Rfunarg{labelPos}, parameter, which now takes the values \code{above}, \code{below} and \code{beside}. <>= plotTracks(axisTrack, from=1e6, to=9e6, scale=0.5, labelPos="below") @ For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{GenomeAxisTrack} class by typing in \code{?GenomeAxisTrack} on the \RR command line. <>= addParTable("GenomeAxisTrack") @ \subsection{IdeogramTrack} While a genomic axis provides helpful points of reference to a plot, it is sometimes important to show the currently displayed region in the broader context of the whole chromosme. Are we looking at distal regions, or somewhere close to the centromer? And how much of the complete chromosome is covered in our plot. To that end the \mgg package defines the \Rclass{IdeogramTrack} class, which is an idealized representation of a single chromosome. When plotted, these track objects will always show the whole chromosome, regardless of the selected genomic region. However, the displayed coordinates are indicated by a box that sits on the ideogram image. The chromosomal data necessary to draw the ideogram is not part of the \mgg package itself, instead it is downloaded from an online source (UCSC). Thus it is important to use both chromosome and genome names that are recognizable in the UCSC data base when dealing with \Rclass{IdeogramTrack} objects. You might want to consult the UCSC webpage (\url{http://genome.ucsc.edu/}) or use the \Rfunction{ucscGenomes} function in the \Rpackage{rtracklayer} package for a listing of available genomes. Assuming the chromosome data are available online, a simple call to the \Rfunction{IdeogramTrack} constructor function including the desired genome and chromosome name are enough to instantiate the object. Since the connection to UCSC can be slow, the package tries to cache data that has already been downloaded for the duration of the \R session. If needed, the user can manually clear the cache by calling the \Rfunction{clearSessionCache} function. Of course it is also possible to construct \Rclass{IdeogramTrack} objects from local data. Please see the class' man page for details. <>= ideoTrack <- IdeogramTrack(genome="hg19", chromosome="chrX") plotTracks(ideoTrack, from=85e6, to=129e6) @ <>= if(hasUcscConnection){ ideoTrack <- IdeogramTrack(genome="hg19", chromosome="chrX") }else{ data(itrack) } plotTracks(ideoTrack, from=85e6, to=129e6) @ We can turn off the explicit plotting of the chromosome name by setting the \Rfunarg{showId} display parameter to \code{FALSE}. <>= plotTracks(ideoTrack, from=85e6, to=129e6, showId=FALSE) @ The chromosome bands in the ideogram come with a unique identifier, and we can add this information to the plot, at least for those bands that are wide enought to accomodate the text. <>= plotTracks(ideoTrack, from=85e6, to=129e6, showId=FALSE, showBandId=TRUE, cex.bands=0.5) @ \subsubsection*{Display parameters for IdeogramTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{IdeogramTrack} class by typing in \code{?IdeogramTrack} on the \RR command line. <>= addParTable("IdeogramTrack") @ \subsection{DataTrack} Probably the most powerfull of all the track classes in the \mgg package are \Rclass{DataTracks}. Essentially they constitute run-length encoded numeric vectors or matrices, meaning that one or several numeric values are associated to a particular genomic coordinate range. These ranges may even be overlapping, for instance when looking at results from a running window operation. There can be multiple samples in a single data set, in which case the ranges are associated to the columns of a numeric matrix rather than a numeric vector, and the plotting method provides tools to incoorporate sample group information. Thus the starting point for creating \Rclass{DataTrack} objects will always be a set of ranges, either in the form of an \Rclass{IRanges} or \Rclass{GRanges} object, or individually as start and end coordinates or widths. The second ingredient is a numeric vector of the same length as the number of ranges, or a numeric matrix with the same number of columns. Those may even already be part of the input \Rclass{GRanges} object as \code{elemenMetadata} values. For a complete description of all the possible inputs please see the class' online documentation. We can pass all this information to the \Rfunction{DataTrack} constructor function to instantiate an object. We will load our sample data from an \Rclass{GRanges} object that comes as part of the \mgg package. <>= data(twoGroups) dTrack <- DataTrack(twoGroups, name="uniform") plotTracks(dTrack) @ The default visualization for our very simplistic sample \Rclass{DataTrack} is a rather unispiring dot plot. The track comes with a scale to indicate the range of the numeric values on the y-axis, appart from that it looks very much like the previous examples. A whole battery of display parameters is to our disposal to control the track's look and feel. The most important one is the \Rfunarg{type} parameter. It determines the type of plot to use and takes one or several of the following values: <<>= types <- data.frame(Value=c("p", "l", "b", "a", "s", "S", "g", "r", "h", "confint", "smooth", "histogram", "mountain", "polygon", "boxplot", "gradient", "heatmap", "horizon"), Type=c("dot plot", "lines plot", "dot and lines plot", "lines plot of average (i.e., mean) values", "stair steps (horizontal first)", "stair steps (vertical first)", "add grid lines", "add linear regression line", "histogram lines", "confidence intervals for average values", "add loess curve", "histogram (bar width equal to range with)", "'mountain-type' plot relative to a baseline", "'polygon-type' plot relative to a baseline", "box and whisker plot", "false color image of the summarized values", "false color image of the individual values", "Horizon plot indicating magnitude and direction of a change relative to a baseline")) print(xtable(types, align="lrp{5in}"), sanitize.text.function=function(x) x, include.rownames=FALSE, floating=FALSE, tabular.environment="longtable") @ Displayed below are the same sample data as before but plotted with the different type settings: <>= pushViewport(viewport(layout=grid.layout(nrow=9, ncol=2))) i <- 1 for(t in types$Value) { pushViewport(viewport(layout.pos.col=((i-1)%%2)+1, layout.pos.row=((i-1)%/%2)+1)) if(t != "horizon"){ names(dTrack) <- t plotTracks(dTrack, type=t, add=TRUE, cex.title=0.8, margin=0.5) }else{ data(dtHoriz) names(dtHoriz) <- "horizon *" plotTracks(dtHoriz[8,], type="horizon", add=TRUE, cex.title=0.8, margin=0.5, showAxis=FALSE, horizon.origin=0.7) } i <- i+1 popViewport(1) } popViewport(1) names(dTrack) <- "uniform" @ \renewcommand*{\thefootnote}{\fnsymbol{footnote}} \footnotetext[1]{A different data set is plotted for the horizon type for the sake of clarity.} You will notice that some of the plot types work better for univariate data while others are clearly designed for multivariate inputs. The \Rfunarg{a} type for instance averages the values at each genomic location before plotting the derived values as a line. The decision for a particular plot type is totally up to the user, and one could even overlay multiple types by supplying a character vector rather than a character scalar as the \Rfunarg(type) argument. For example, this will combine a boxplot with an average line and a data grid. <>= plotTracks(dTrack, type=c("boxplot", "a", "g")) @ For the heatmap plotting type we arrange all the data in a well-structured two-dimensional matrix which gives us the oportunity to add a little extra information about the individual samples. Depending on how the \Rclass{DataTrack} was created in the first place we can choose to display the sample names (which in our case correspond to the column names of the input \Rclass{GRanges} object). The plot also highlights another feature of the heatmap type: the y-axis now shows a mapping of the numeric values into the color range. <>= colnames(mcols(twoGroups)) plotTracks(dTrack, type=c("heatmap"), showSampleNames=TRUE, cex.sampleNames=0.6) @ \subsubsection*{Data Grouping} An additional layer of flexibility is added by making use of \mgg's grouping functionality. The individual samples (i.e., rows in the data matrix) can be grouped together using a factor variable, and, if reasonable, this grouping is reflected in the layout of the respective track types. For instance our example data could be derived from two different sample groups with three replicates each, and we could easily integrate this information into our plot. <>= plotTracks(dTrack, groups=rep(c("control", "treated"), each=3), type=c("a", "p", "confint")) @ For the dot plot representation the individual group levels are indicated by color coding. For the \Rfunarg{a} type, the averages are now computed for each group separately and also indicated by two lines with similar color coding. Grouping is not supported for all plotting types, for example the \Rfunarg{mountain} and \Rfunarg{polygon} type already use color coding to convey a different message and for the \Rfunarg{gradient} type the data are already collapsed to a single variable. The following gives an overview over some of the other groupable \Rclass{DataTrack} types. Please note that there are many more display parameters that control the layout of both grouped and of ungrouped \Rclass{DataTracks}. You may want to check the class' help page for details. <>= pushViewport(viewport(layout=grid.layout(nrow=9, ncol=1))) i <- 1 for(t in c("a", "s", "confint", "smooth", "histogram", "boxplot", "heatmap", "horizon")) { pushViewport(viewport(layout.pos.col=((i-1)%%1)+1, layout.pos.row=((i-1)%/%1)+1)) if(t != "horizon"){ names(dTrack) <- t plotTracks(dTrack, type=t, add=TRUE, cex.title=0.8, groups=rep(1:2, each=3), margin=0.5) }else{ plotTracks(dtHoriz[c(1,8),], type="horizon", add=TRUE, cex.title=0.8, margin=0.5, showAxis=FALSE, horizon.origin=0.3, groups=1:2) } i <- i+1 popViewport(1) } pushViewport(viewport(layout.pos.col=((i-1)%%1)+1, layout.pos.row=((i-1)%/%1)+1)) names(dTrack) <- "hor. hist." plotTracks(dTrack, type="histogram", stackedBars=FALSE, add=TRUE, cex.title=0.8, groups=rep(1:2, each=3), margin=0.5) popViewport(2) names(dTrack) <- "uniform" @ \footnotetext[1]{A different data set is plotted for the horizon type for the sake of clarity.} If we need to display some additional information about the individual group levels we can make use of the \Rfunarg{legend} display parameter to add a simple legend to the plot. Depending on the plot type and on some of the other display parameters, the look of this legend may vary slightly. <>= plotTracks(dTrack, groups=rep(c("control", "treated"), each=3), type=c("a", "p"), legend=TRUE) @ For a grouped horizon plot the group labels have to be shown in a similar fashion as for heatmaps, i.e., by setting the \Rfunarg{showSampleNames} argument to \code{TRUE}. <>= data(dtHoriz) dtHoriz <- dtHoriz[1:6,] plotTracks(dtHoriz, type="horiz", groups=rownames(values(dtHoriz)), showSampleNames=TRUE, cex.sampleNames = 0.6, separator=1) @ \subsubsection*{Building DataTrack objects from files} A number of standard file types exist that all store numeric data along genomic coordinates. We have tried to make such files accessible in the \mgg package by providing additional options to the \Rfunction{DataTrack} constructor function. In the previous examples the \Rfunarg{range} argument was a \Rclass{GRanges} object. Instead, we can also pass in the path to a file on disk by means of a character scalar. The \Rclass{DataTrack} class supports the most common file types like \code{wig}, \code{bigWig} or \code{bedGraph}, but also knows how to deal with \code{bam} files. You may have realized that some of these files are indexed, and we have taken the approach to stream the data from indexed files on the fly when it is needed for plotting. However let's first start with the simple example of a \code{bedGraph} file. These files support a single data sample, and thus are equivalent to a \code{GRanges} object with a single numeric metadata column. \code{bedGraph} files are not indexed, so we have to load the whole file content when instantiating the object. <>= bgFile <- system.file("extdata/test.bedGraph", package="Gviz") dTrack2 <- DataTrack(range=bgFile, genome="hg19", type="l", chromosome="chr19", name="bedGraph") class(dTrack2) plotTracks(dTrack2) @ As we can see the constructor has returned a regular \Rclass{DataTrack} object. The function to be used in order to read the data off the file has been automatically choosen by the package based on the file extension of the input file. Of course the number of these supported standard file types is limited, and a user may want to import a non-standard file through the same mechanism. To this end, the \Rclass{DataTrack} constructor defines an additional argument called \Rfunarg{importFunction}. As the name suggests, the value of this argument is a function which needs to handle the mandatory \Rfunarg{file} argument. Upon evaluation this argument will be filled in with the path to the data file, and the user-defined function needs to provide all logic necessary to parse that file into a valid \Rclass{GRanges} object. From this point on everything will happen just as if the \Rfunarg{range} argument had been this \Rclass{GRanges} object. In other words, numeric metadata columns will be shown as individual samples and non-numeric columns will be silently ignored. We can exemplify this in the next code chunk. Note that the \mgg package is using functionality from the \Rpackage{rtracklayer} package for most of the file import operations, just as we do here in a more explicit way. <>= library(rtracklayer) dTrack3 <- DataTrack(range=bgFile, genome="hg19", type="l", chromosome="chr19", name="bedGraph", importFunction=function(file) import(con=file)) identical(dTrack2, dTrack3) @ So far one could have easily done the whole process in two separate steps: first import the data from the file into a \Rclass{GRanges} object and then provided this object to the constructor. The real power of the file support in the \mgg package comes with streaming from indexed files. As mentioned before, only the relevant part of the data has to be loaded during the plotting operation, so the underlying data files may be quite large without decreasing the performance or causing too big of a memory footprint. We will exemplify this feature here using a small \code{bam} file that is provided with the package. \code{bam} files contain alignments of sequences (typically from a next generation sequencing experiment) to a common reference. The most natural representation of such data in a \Rclass{DataTrack} is to look at the alignment coverage at a given position only and to encode this in a single metadata column. <>= bamFile <- system.file("extdata/test.bam", package="Gviz") dTrack4 <- DataTrack(range=bamFile, genome="hg19", type="l", name="Coverage", window=-1, chromosome="chr1") class(dTrack4) dTrack4 plotTracks(dTrack4, from=189990000, to=190000000) @ As seen in the previous code chunk, the \code{dTrack4} object is now of class \Rclass{ReferenceDataTrack}. For the user this distinction is not particularly relevant with the exception that the \Rfunction{length} method for this class almost always returns \code{0} because the content of the object is only realized during the plotting operation. Obviously, streaming from the disk comes with a price in that file access is much slower than accessing RAM, however the file indexing allows for fairly rapid data retrieval, and other processes during the plotting operation tend to be much more costly, anyways. It is woth mentioning however that each plotting operation will cause reading off the file, and there are currently no caching mechanisms in place to avoid that. Nevertheless, plotting a larger chunk of the \code{bam} file still finishes in a reasonable time. <>= plotTracks(dTrack4, chromosome="chr1", from=189891483, to=190087517) @ Of course users can provided their own file parsing function just like we showed in the previous example. The import function now needs to be able to deal with a second mandatory argument \Rfunarg{selection}, which is a \Rclass{GRanges} object giving the genomic interval that has to be imported from the file. In addition one needs to tell the \Rclass{DataTrack} constructor that data should be streamed off a file by setting the \Rfunarg{stream} argument to \code{TRUE}. <>= myImportFun <- function(file, selection){ ## do something here } DataTrack(range=bamFile, genome="hg19", type="l", name="Coverage", window=-1, chromosome="chr1", importFunction=myImportFun, stream=TRUE) @ \subsubsection*{Data transformations} The \mgg package offers quite some flexibility to transform data on the fly. This involves both rescaling operations (each data point is transformed on the track's y-axis by a transformation function) as well as summarization and smoothing operations (the values for several genomic locations are summarized into one derived value on the track's x-axis). To illustrate this let's create a significantly bigger \Rclass{DataTrack} than the one we used before, containing purely syntetic data for only a single sample. <>= dat <- sin(seq(pi, 10*pi, len=500)) dTrack.big <- DataTrack(start=seq(1,100000, len=500), width=15, chromosome="chrX", genome="hg19", name="sinus", data=sin(seq(pi, 5*pi, len=500))*runif(500, 0.5, 1.5)) plotTracks(dTrack.big, type="hist") @ Since the available resolution on our screen is limited we can no longer distinguish between individual coordinate ranges. The \mgg package tries to avoid overplotting by collapsing overlapping ranges (assuming the \Rfunarg{collapseTracks} parameter is set to \code{TRUE}). However, it is often desirable to summarize the data, for instance by binning values into a fixed number of windows followe by the calculation of a meaningful summary statistic. This can be archived by a combination of the \Rfunarg{window} and \Rfunarg{aggregation} display parameters. The former can be an integer value greater than zero giving the number of evenly-sized bins to aggregate the data in. The latter is supposed to be a user-supplied function that accepts a numeric vector as a single input parameter and returns a single aggregated numerical value. For simplicity, the most obvious aggregation functions can be selected by passing in a character scalar rather than a function. Possible values are \code{mean}, \code{median}, \code{extreme}, \code{sum}, \code{min} and \code{max}. These presets are also much faster because they have been optimized to operate on large numeric matrices. The default is to compute the mean value of all the binned data points. <>= plotTracks(dTrack.big, type="hist", window=50) @ Instead of binning the data in fixed width bins one can also use the \Rfunarg{window} parameter to perform more elaborate running window operations. For this to happen the parameter value has to be smaller than zero, and the addtional display parameter \Rfunarg{windowSize} can be used to control the size of the running window. This operation does not change the number of coordinate ranges on the plot, but instead the original value at a particular position is replaced by the respective sliding window value at the same position. A common use case for sliding windows on genomic ranges is to introduce a certain degree of smoothing to the data. <>= plotTracks(dTrack.big, type="hist", window=-1, windowSize=2500) @ In addition to transforming the data on the x-axis we can also apply arbitrary transformation functions on the y-axis. One obvious use-case would be to log-transform the data prior to plotting. The framework is flexible enough however to allow for arbitrary transformation operations. The mechanism works by providing a function as the \Rfunarg{transformation} display parameter, which takes as input a numeric vector and returns a transformed numeric vector of the same length. The following code for instance truncates the plotted data to values greater than zero. <>= plotTracks(dTrack.big, type="l", transformation=function(x){x[x<0] <- 0; x}) @ As seen before, the \Rfunarg{a} type allows to plot average values for each of the separate groups. There is however an additional parameter \Rfunarg{aggregateGroups} that generalizes group value aggregations. In the following example we display, for each group and at each position, the average values in the form of a dot-and-lines plot. <>= plotTracks(dTrack, groups=rep(c("control", "treated"), each=3), type=c("b"), aggregateGroups=TRUE) @ This functionality again also relies on the setting of the \Rfunarg{aggregation} parameter, and we can easily change it to display the maximum group values instead. <>= plotTracks(dTrack, groups=rep(c("control", "treated"), each=3), type=c("b"), aggregateGroups=TRUE, aggregation="max") @ \subsubsection*{Display parameters for DataTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{DataTrack} class by typing in \code{?DataTrack} on the \RR command line. <>= addParTable("DataTrack") @ \subsection{AnnotationTrack} \Rclass{AnnotationTrack} objects are the multi-purpose tracks in the \mgg package. Essentially they consist of one or several genomic ranges that can be grouped into composite annotation elements if needed. In principle this would be enough to represent everything from CpG islands to complex gene models, however for the latter the packge defines the specialized \Rclass{GeneRegionTrack} class, which will be highlighted in a separate section. Most of the features discussed here will also apply to \Rclass{GeneRegionTrack} objects, though. As a matter of fact, the \Rclass{GeneRegionTrack} class inherits directly from class \Rclass{AnnotationTrack}. \Rclass{AnnotationTrack} objects are easily instantiated using the constructor function of the same name. The necessary building blocks are the range coordinates, a chromosome and a genome identifier. Again we try to be flexible in the way this information can be passed to the function, either in the form of separate function arguments, as \Rclass{IRanges}, \Rclass{GRanges} or \Rclass{data.frame} objects. Optionally, we can pass in the strand information for the annotation features and some useful identifiers. A somewhat special case is to build the object from a \Rclass{GRangesList} object, which will automatically preserve the element grouping information contained in the list structure. For the full details on the constructor function and the accepted arguments see \code{?AnnotationTrack}. Let's take a look at a very simple track: <>= aTrack <- AnnotationTrack(start=c(10, 40, 120), width=15, chromosome="chrX", strand=c("+", "*", "-"), id=c("Huey", "Dewey", "Louie"), genome="hg19", name="foo") plotTracks(aTrack) @ The ranges are plotted as simple boxes if no strand information is available, or as arrows to indicate their direction. We can change the range item shapes by setting the \Rfunarg{shape} display parameter. It can also be helpful to add the names for the individual features to the plot. This can be archived by setting the \Rfunarg{featureAnnotation} parameter to \code{'id'}. <>= plotTracks(aTrack, shape="box", featureAnnotation="id") @ <>= plotTracks(aTrack, shape="ellipse", featureAnnotation="id", fontcolor.feature="darkblue") @ In this very simplistic example each annotation feature consisted of a single range. In real life the genomic annotation features that we encounter often consists of several sub-units. We can create such composite \Rclass{AnnotationTrack} objects by providing a grouping factor to the constructor. It needs to be of similar length as the total number of atomic features in the track, i.e, the number of genomic ranges that are passed to the constructor. The levels of the this factor will be used as internal identifiers for the individual composite feature groups, and we can toggle on their printing by setting \Rfunarg{groupAnnotation} to \code{'group'}. <>= aTrack.groups <- AnnotationTrack(start=c(50, 180, 260, 460, 860, 1240), width=c(15,20,40,100,200, 20), chromosome="chrX", strand=rep(c("+", "*", "-"), c(1,3,2)), group=rep(c("Huey", "Dewey", "Louie"), c(1,3,2)), genome="hg19", name="foo") plotTracks(aTrack.groups, groupAnnotation="group") @ We can control the placement of the group labels through the \Rfunarg{just.group} parameter. <>= plotTracks(aTrack.groups, groupAnnotation="group", just.group="right") @ <>= plotTracks(aTrack.groups, groupAnnotation="group", just.group="above") @ Arranging items on the plotting canvas is relatively straight forward as long as there are no overlaps between invidiual regions or groups of regions. Those inevitably cause overplotting which could seriously obfuscate the information on the plot. A logical solution to this problem is to stack overlapping items in separate horizontal lines to accomodate all of them. This involves some optimization, and the \mgg package automatically tries to come up with the most compact arrangement. Let's exemplify this feature with a slightly modified \Rclass{AnnotationTrack} object. <>= aTrack.stacked <- AnnotationTrack(start=c(50, 180, 260, 800, 600, 1240), width=c(15,20,40,100,500, 20), chromosome="chrX", strand="*", group=rep(c("Huey", "Dewey", "Louie"), c(1,3,2)), genome="hg19", name="foo") plotTracks(aTrack.stacked, groupAnnotation="group") @ We now have our three annotation feature groups distributed over two horizontal lines. One can control the stacking of overlapping items using the \Rfunarg{stacking} display parameter. Currently the three values \code{squish}, \code{dense} and \code{hide} are supported. Horizontal stacking is enabled via the \code{squish} option, which also is the default. The \code{dense} setting forces overlapping items to be joined in one meta-item and \code{hide} all together disables the plotting of \Rclass{AnnotationTrack} items. Please note that adding identifiers to the plot only works for the \code{squish} option. <>= plotTracks(aTrack.stacked, stacking="dense") @ In addition to annotation groups there is also the notion of a feature type in the \mgg package. Feature types are simply different types of annotation regions (e.g., mRNA transcripts, miRNAs, rRNAs, etc.) that are indicated by different colors. There is no limit on the number of different features, however each element in a grouped annotation item needs to be of the same feature type. We can query and set features using the \Rfunction{feature} and \Rfunction{feature<-} methods. <>= feature(aTrack.stacked) feature(aTrack.stacked)<- c("foo", "bar", "bar", "bar", "no", "no") @ Features types can also be shown as either the group or the item annotation on the plot. <>= plotTracks(aTrack.stacked, featureAnnotation="feature", groupAnnotation="feature", fontcolor.feature=1, cex.feature=0.7) @ Unless we tell the \mgg package how to deal with the respective feature types they will all be treated in a similar fashion, i.e., they will be plotted using the default color as defined by the \Rfunarg{fill} display paramter. To define colors for individual feature types we simply have to add them as additional display parameters, where the parameter name matches the feature type and its value is supposed to be a valid R color qualifier. Of course this implies that we can only use feature names that are not already occupied by other display parameters defined in the package. <>= plotTracks(aTrack.stacked, groupAnnotation="group", foo="darkred", bar="darkgreen") @ Stacking of annotation items to avoid overplotting only works as long as there is enough real estate on the plotting canvas to separate all items, i.e., we need all items to be at least a single pixel wide to correctly display them. This limitation is automatically enforced by the \mgg package, however it implies that unless neighbouring items are more than one pixel appart we can not distinguish between them and will inevitably introduce a certain amount of overplotting. This means that on a common screen device we can only look at a very limited genomic region of a few kb in full resolution. Given that an average chromosome is in the order of a few gb, we still need a reasonable way to deal with the overplotting problem despite the item stacking functionality. As default, the \mgg package will merge all overlapping items into one unified meta-item and only plot that (see 'Collapse' section below for details). In order to indicate the amount of overplotting that was introduced by this process we can use the \Rfunarg{showOverplotting} display parameter. It uses a color scale (based on the orginal colors defined for the track), with lighter colors indicating areas of low or no overplotting, and more saturated colors indicating areas of high overplotting density. We exemplify this feature on an \Rclass{AnnotationTrack} object that represents a good portion of a real human chromosome. <>= data("denseAnnTrack") plotTracks(denseAnnTrack, showOverplotting=TRUE) @ \subsubsection*{Collapsing} All track types that inherit from class \code{AnnotationTrack} support the collapsing of overlapping track items, either because they have initially been defined as overlapping coordinates, or because the current device resolution does not allow to sufficiently separate them. For instance, two elements of a feature group may be separated by 100 base pairs on the genomic scale, however when plotted to the screen, those 100 base pairs translate to a distance of less than one pixel. In this case we can no longer show the items as two separate entitites. One solution to this problem would be to allow for arbitrary overplotting, in which case the last one of the overlapping items that is drawn on the device wins. This is not optimal in many ways, and it also poses a significant burden on the graphical engine because a lot of stuff has to be drawn which no one will ever see. To this end the \mgg package provides an infrastructure to reasonably collapse overlappig items, thereby adjusting the information content that can be shown to the available device resolution. By default this feature is turned on, and the user does not have to worry too much about it. However, one should be aware of the consequences this may have on a given visualization. If you absolutely do not want collapsing to take place, you may completely turn it off by setting the display parameter \code{collapse} to \code{FALSE}. Please note that by doing this the \code{showOverplotting} parameter will also stop working. If you opt in, there is some considerable amount of detailed control to fine tune the collapsing to your needs. Let's start with a small example track for which element collapsing has been turned off and no adjustments to the ranges have been made. We plot both the item identifiers and the group identifiers to exemplify what is going on. <>= data(collapseTrack) plotTracks(ctrack) @ The first thing to notice is that the for item \code{d} we do see the item identifier but not the range itself. This is due to the fact that the width of the item is smaller than a single pixel, and hence the graphics system can not display it (Note that this is only true for certain devices. The quartz device on the Mac seems to be a little smarter about this). There are also the two items \code{e} and \code{f} which seem to overlay each other completely, and another two items which appear to be just a single fused item (\code{k} and \code{l}). Again, this is a resolution issue as their relative distance is smaller than a single pixel, so all we see is a single range and some ugly overplotted identifiers. We can control the first issue by setting the minimum pixel width of a plotted item to be one pixel using the \code{min.width} display parameter. <>= plotTracks(ctrack, min.width=1) @ Now the item \code{d} has a plotable size and can be drawn to the device. The overplotted items are still rather anoying, but the only way to get rid of those is to turn item collapsing back on. <>= plotTracks(ctrack, min.width=1, collapse=TRUE) @ Now all items that could not be separated by at least one pixel have been merged into a single meta-item, and the software has taken care of the identifiers for you, too. The merging operation is aware of the grouping information, so no two groups where joint together. Sometimes a single pixel width or a single pixel distance is not enough to get a good visualization. In these cases one could decide to enforce even larger values. We can do this not only for the minimum width, but also for the minimum distance by setting the \code{min.distance} parameter. <>= plotTracks(ctrack, min.width=3, min.distance=5, collapse=TRUE) @ This time also the two items \code{b} and \code{c} have been merged, and all ranges are now at least 3 pixels wide. Depending on the density of items on the plot even this reduction can be insufficient. Because we did not merge complete groups we might still end up with quite a lot of stacks to accomodate all the information. To this end the display parameter \code{mergeGroups} can be used to disable absolute group separation. Rather than blindly merging all groups (as it is done when \code{stacking='dense'}) however, the software will only join those overlapping group ranges for which all items are already merged into a single meta item. <>= plotTracks(ctrack, min.width=3, min.distance=5, collapse=TRUE, mergeGroups=TRUE, extend.left=0.1) @ \subsubsection*{Building AnnotationTrack objects from files} Just like we showed before for \Rclass{DataTrack} objects it is possible to stream the data for an \Rclass{AnnotationTrack} object off the file system. We will again use the \code{bam} file as an example. This time the default import function reads the coordinates of all the sequence alignments from the file and even knows how to deal with grouped elements. <>= aTrack2 <- AnnotationTrack(range=bamFile, genome="hg19", name="Reads", chromosome="chr1") class(aTrack2) aTrack2 plotTracks(aTrack2, from=189995000, to=190000000) @ Since \Rclass{AnnotationTrack} objects are somewhat more complicated than \Rclass{DataTrack} objects, the constructor provides another level of flexibility when reading the data from a file. More specifically, the user has the ability to map the provided metadata columns of the \Rclass{GRanges} object that is returned by the import function to the respective columns in the final \Rclass{AnnotationTrack} object. If no explicit mapping is provided, the package will try to find a default mapping based on the input file type and the desired track type. The current mapping of a track is displayed by its \Rfunction{show} method as can be seen above. The mechanism for changing this default mapping is quite straight forward: if the values in the relevant constructor arguments (in this case \Rfunarg{group}, \Rfunarg{id} and \Rfunarg{feature}) are character scalars, the metadata columns of the \Rclass{GRanges} object that is returned by the import function are mapped against their values. For instance we can map the \code{id} column to the \code{group} attribute and thus suppress the grouping of sequence alignments that originate from the same sequencing read. <>= aTrack3 <- AnnotationTrack(range=bamFile, genome="hg19", name="Reads", chromosome="chr1", group="id") aTrack3 plotTracks(aTrack3, from=189995000, to=190000000) @ Please note that if no metadata column can be mapped to the constructor arguments their values are assumed to be normal character scalars and they will be recycled accordingly to fill the track's slots. One can ask for the package's default mappings by using the \Rfunction{availableDefaultMapping} function. <>= availableDefaultMapping(bamFile, "AnnotationTrack") @ We can now plot both the \Rclass{DataTrack} representation as well as the \code{AnnotationTrack} representation of the \code{bam} file together to prove that the underlying data are indeed identical. <>= plotTracks(list(dTrack4, aTrack2), from=189990000, to=190000000) @ \subsubsection*{Display parameters for AnnotationTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{AnnotationTrack} class by typing in \code{?AnnotationTrack} on the \RR command line. <>= addParTable("AnnotationTrack") @ \subsection{GeneRegionTrack} \Rclass{GeneRegionTrack} objects are in principle very similar to \Rclass{AnnotationTrack} objects. The only difference is that they are a little more gene/transcript centric, both in terms of plotting layout and user interaction, and that they may define a global start and end position (a feature which is not particularly relevant for the normal user). The constructor function of the same name is a convenient tool to instantiate the object from a variety of different sources. In a nutshell, we need to pass start and end positions (or the width) of each annotation feature in the track and also supply the exon, transcript and gene identifiers for each item which will be used to create the transcript groupings. A somewhat special case is to build a \Rclass{GeneRegionTrack} object directly from one of the popular \Rclass{TxDb} objects, an option that is treated in more detail below. For more information about all the available options see the class's manual page (\code{?GeneRegionTrack}). There are a number of accessor methods that make it easy to query and replace for instance exon, transcript or gene assignments. There is also some support for gene aliases or gene symbols which are often times more useful than cryptic data base gene identifiers. The following code that re-uses the \Rclass{GeneRegionTrack} object from the first section exemplifies some of these features. <>= data(geneModels) grtrack <- GeneRegionTrack(geneModels, genome=gen, chromosome=chr, name="foo") head(gene(grtrack)) head(transcript(grtrack)) head(exon(grtrack)) head(symbol(grtrack)) plotTracks(grtrack) @ Both exon- and transcript-centric annotation can be added to the plot using the \Rfunarg{transcriptAnnotation} and \Rfunarg{exonAnnotation} display parameters. <>= plotTracks(grtrack, transcriptAnnotation="symbol") @ <>= plotTracks(grtrack, transcriptAnnotation="transcript") @ <>= plotTracks(grtrack, exonAnnotation="exon", extend.left=-0.8, fontcolor.exon=1) @ Since we have the gene and trancript level information as part of our \Rclass{GeneRegionTrack} objects we can ask the package to collapse all of our gene models from individual exons and transcripts down to gene body locations by setting the \Rfunarg{collapseTranscripts} display parameter to \code{TRUE}. <>= plotTracks(grtrack, collapseTranscripts=TRUE, shape="arrow", transcriptAnnotation="symbol") @ Collapsing down all the way to a gene is not always the desired oparation, and the parameters offers a bit more control. For instance we could decide to plot just the longest transcript by setting it to \code{longest}. <>= plotTracks(grtrack, collapseTranscripts="longest", shape="arrow", transcriptAnnotation="symbol") @ Or we can plot the union of all the exons in some sort of meta-transcript. <>= plotTracks(grtrack, collapseTranscripts="meta", shape="arrow", transcriptAnnotation="symbol") @ \subsubsection*{Building GeneRegionTrack objects from TxDbs} The \Rpackage{GenomicFeatures} packages provides an elegant framework to download gene model information from online sources and to store it locally in a SQLite data base. Because these so called \Rclass{TxDb} objects have become the de-facto standard for genome annotation information in Bioconductor we tried to make it as simple as possible to convert them into \Rclass{GeneRegionTracks}. Essentially one only has to call the constructor function with the \Rclass{TxDb} object as a single argument. We exemplify this on a small sample data set that comes with the \Rpackage{GenomicFeatures} package. <>= library(GenomicFeatures) samplefile <- system.file("extdata", "hg19_knownGene_sample.sqlite", package="GenomicFeatures") txdb <- loadDb(samplefile) GeneRegionTrack(txdb) @ In this context, the constructor's \Rfunarg{chromosome}, \Rfunarg{start} and \Rfunarg{end} argument take on a slightly differnt meaning in that they can be used to subset the data that is fetched from the \Rclass{TxDb} object. Please note that while the \Rfunarg{chromosome} alone can be supplied, providing \Rfunarg{start} or \Rfunarg{end} without the chromosome information will not work. <>= txTr <- GeneRegionTrack(txdb, chromosome="chr6", start=35000000, end=40000000) @ A nice bonus when building \Rclass{GeneRegionTracks} from \Rclass{TxDb} objects is that we get additional information about coding and non-coding regions of the transcripts, i.e., coordinates of the 5' and 3' UTRs and of the CDS regions. The class' plotting method can use this inforamtion to distinguish between coding and non-coding regions based on the shape of the feature. All coding regions are plotted just as we have seen in the previous examples, whereas the non-coding regions are drawn as slighly thinner boxes. The distinction between coding and non-coding is made on the basis of the object's \code{feature} values in combination with a special display parameter \code{thinBoxFeature} that enumerates all feature types that are to be treated as non-coding. Obviously this feature is available to all \Rclass{GeneRegionTracks}, not only the ones that were build from \Rclass{TxDb} objects. However, the coding information has to be added manually and the default value of the \code{thinBoxFeature} parameter may not be sufficient to cover all possible cases. It is up to the user to come up with a complete list of non-coding feature types depending on the source of the data. <>= feature(txTr) plotTracks(txTr) @ \subsubsection*{Display parameters for GeneRegionTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{GeneRegionTrack} class by typing in \code{?GeneRegionTrack} on the \RR command line. <>= addParTable("GeneRegionTrack") @ \subsection{BiomartGeneRegionTrack} As seen before it can be very useful to quickly download gene annotation information from an online repositry rather than having to construct it each time from scratch. To this end, the \mgg package also defines the \Rclass{BiomartGeneRegionTrack} class, which directly extends \Rclass{GeneRegionTrack} but provides a direct interface to the ENSEMBL Biomart service (yet another interface to the UCSC data base content is highlighted in one of the next sections). Rather than providing all the bits and pieces for the full gene model, we just enter a genome, chromosome and a start and end position on this chromosome, and the constructor function \Rfunction{BiomartGeneRegionTrack} will automatically contact ENSEMBL, fetch the necessary information and build the gene model on the fly. Please note that you will need an internet connection for this to work, and that contacting Biomart can take a significant amount of time depending on usage and network traffic. Hence the results are almost never going to be returned instantaniously. <>= biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome=chr, start=20e6, end=21e6, name="ENSEMBL") plotTracks(biomTrack) @ <>= if(hasBiomartConnection){ biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome=chr, start=20e6, end=21e6, name="ENSEMBL") }else{ data("biomTrack") } plotTracks(biomTrack) @ You may have noticed in the above plot that the track includes \code{feature} information which is displayed by the different feature colors and box sizes. This information has been automatically extracted from Biomart and the respective color coding is part of the class' definition. We can highlight the feature classes even more by using similarly colored bars to connect the grouped elements and by dropping the bounding boxes around the individual exon models. <>= plotTracks(biomTrack, col.line=NULL, col=NULL) @ For dense stacked plots like this it can sometimes be helpful to control the vertical spacing between the stacking rows. A simple way to do this is available for each object inheriting form the \Rclass{StackedTrack} class by means of the \Rfunarg{stackHeight} display parameter. It takes a value between 0 and 1 that controls which fraction of the available vertical space on a stacking line should be used to draw the feature glyphs. <>= plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) @ The \Rfunarg{filter} argument to the \Rfunction{BiomartGeneRegionTrack} constructor can be used to pass on arbitratry additional filters to the Biomart query. We could for instance limit the returned gene models to RefSeq models only. Please see the documentation in the \Rpackage{biomaRt} package for details. <>= biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome=chr, start=20e6, end=21e6, name="ENSEMBL", filter=list(with_ox_refseq_mrna=TRUE)) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) @ <>= if(hasBiomartConnection){ biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome=chr, start=20e6, end=21e6, name="ENSEMBL", filter=list(with_ox_refseq_mrna=TRUE)) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) }else{ biomTrack@filter <- list(with_ox_refseq_mrna=TRUE) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) biomTrack@filter <- list() } @ Sometimes it can be more convenient to get a model for a particular gene rather than defining a genomic range. One could use the filter mechanisms as described before for this purpose, however the \Rclass{BiomartGeneRegionTrack} implements a more generic way. By providing the gene symbol as the \Rfunarg{symbol} argument, the track will be initialized around the locus for this gene, if it can be found. Alternatively, one can provide the Ensembl trancript or gene id via the \Rfunarg{transcript} or \Rfunarg{gene} arguments, or an Entrez id via the \Rfunarg{entrez} argument. In all of these cases the constructor will also fetch models for other genes that overlap the same region. If that is not desired one needs to provide an explicit Biomart filter. <>= biomTrack <- BiomartGeneRegionTrack(genome="hg19", name="ENSEMBL", symbol="ABCB5") plotTracks(biomTrack) @ <>= if(hasBiomartConnection){ biomTrack <- BiomartGeneRegionTrack(genome="hg19", name="ENSEMBL", symbol="ABCB5") plotTracks(biomTrack, transcriptAnnotation="symbol") }else{ ranges(biomTrack) <- ranges(biomTrack)[symbol(biomTrack) == "ABCB5"] plotTracks(biomTrack, transcriptAnnotation="symbol") } @ \subsubsection*{Using custom biomaRt objects for BiomartGeneRegionTracks} \mgg tries hard to automatically set up the necessary connection to the Biomart service to retrieve the relevant data. Sometimes however it can be advantagous to fully control the Biomart connector, for instance when trying to retrieve data from an archived Ensembl version (by default, \Rpackage{biomaRt} will always link to the most recent version). To that end, the \Rfunarg{biomart} parameter can be used to supply a \Robject{biomaRt} object. Please note that a data set has to be selected in that object. A second prerequesite for this to work is that \mgg is able to guess which of the values that are queried from the Ensembl data base represent which track feature. If there were no changes in the schema of Ensembl, or if the schema for all marts was similar this would not be an issue, but that is not the case. In the following example we show how to fetch data for the same region from the older version Ensembl version 47. The internal \Rfunction{.getBMFeatureMap} is helpful to set up the feature mapping which is necessary because Esembl used to call the gene symbol field \code{external\_gene\_id} in that release. <>= library(biomaRt) bm <- useMart(host="may2012.archive.ensembl.org", biomart="ENSEMBL_MART_ENSEMBL", dataset="hsapiens_gene_ensembl") fm <- Gviz:::.getBMFeatureMap() fm[["symbol"]] <- "external_gene_id" biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome="chr7", start=20e6, end=21e6,name="ENSEMBL", featureMap=fm, biomart=bm) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) @ \subsubsection*{Display parameters for BiomartGeneRegionTrack objects} For a complete listing of all the available display parameters please see the table above in the previous \Rclass{GeneRegionTrack} section or the man page of the \Rclass{BiomartGeneRegionTrack} class by typing in \code{?BiomartGeneRegionTrack} on the \RR command line. As mentioned above, one additional benefit when fetching the data through Biomart is that we also receive some information about the annotation feature types, which is automatically used for the color coding of the track. The following table shows the available feature types. <>= addInfo <- t(data.frame(displayPars(biomTrack, names(details[["BiomartGeneRegionTrack"]])))) colnames(addInfo) <- "Color" addParTable("BiomartGeneRegionTrack", add=addInfo) @ \subsection{DetailsAnnotationTrack} It is sometimes desirable to add more detailed information to particular ranges in an \mgg plot for which the notion of genomic coordinates no longer makes sense. For instance, the ranges in an \Rclass{AnnotationTrack} may represent probe locations on a genome, and for each of these probes a number of measurements from multiple samples and from different sample groups are available. To this end, the \Rclass{DetailsAnnotationTrack} provides a flexible interface to further annotate genomic regions with arbitrary additional information. This is archived by splitting the \Rclass{AnnotationTrack} plotting region into two horizontal sections: the lower section containing the range data in genomic coordinates, and the upper one containing the additional data for each of the displayed ranges in verticaly tiled panels of equal size. The connection between a range item and its details panel is indicated by connecting lines. The content of the individual details panels has to be filled in by a user-defined plotting function that uses grid (or lattice) plotting commands. This function has to accept a number of mandatory parameters, notably the start, end, strand, chromosome and identifier information for the genomic range, as well as an integer counter indicating the index of the currently plotted details tile. This information can be used to fetch abtritray details, e.g. from a list, and environement or even from a \Rclass{GRanges} object which will then be processed and visualized within the plotting function. This may sound rather abstract, and for more details please refer to the class' help page. For now we just want to demonstrate the functionality in a simple little example. We begin by defining a \Rclass{GRanges} object containing 4 genomic locations. In our example those are considered to be probe locations from a methylation array. <>= library(GenomicRanges) probes <- GRanges(seqnames="chr7", ranges=IRanges(start=c(2000000, 2070000, 2100000, 2160000), end=c(2050000, 2130000, 2150000, 2170000)), strand=c("-", "+", "-", "-")) @ For each of these probes we have methylation measurements from a large number of different samples in a numeric matrix, and within the samples there are two treatment groups. The aim is to compare the distribution of measurement values between these two groups at each probe locus. <>= methylation <- matrix(c(rgamma(400, 1)), ncol=100, dimnames=list(paste("probe", 1:4, sep=""), NULL)) methylation[,51:100] <- methylation[,51:100] + 0:3 sgroups <- rep(c("grp1","grp2"), each=50) @ Of course we could use a \Rclass{DataTrack} with the box-plot representation for this task, however we do have strand-specific data here and some of the probes can be overlapping, so all this information would be lost. We are also interested in the particular shape of the data distribution, so a density plot representation is what we really need. Luckily, the \Rpackage{lattice} package gives us a nice \Rfunction{densityplot} function that supports grouping, so all that's left to do now is to write a little wrapper that handles the extraction of the relevant data from the matrix. This is easily archieved by using the range identifiers, which conveniently map to the row names of the data matrix. <>= library(lattice) details <- function(identifier, ...) { d <- data.frame(signal=methylation[identifier,], group=sgroups) print(densityplot(~signal, group=group, data=d, main=list(label=identifier, cex=0.7), scales=list(draw=FALSE, x=list(draw=TRUE)), ylab="", xlab="", ), newpage=FALSE, prefix="plot") } @ Finaly, it is as simple as calling the \Rclass{AnnotationTrack} constructor, passing along the wrapper function and calling \Rfunction{plotTracks}. <>= deTrack <- AnnotationTrack(range=probes, genome="hg19", chromosome=7, id=rownames(methylation), name="probe details", stacking="squish", fun=details) plotTracks(deTrack) @ It should be noted here that in our little example we rely on the methylation data matrix and the grouping vector to be present in the working environment. This is not necessarily the cleanest solution and one should consider storing additional data in an evironment, passing it along using the \Rfunarg{detailFunArgs} parameter, or making it part of the details function in form of a closure. The class' help page provides further instructions. Another use case for the \Rclass{DetailsAnnotationTrack} class is to deal with the problem of very different feature sizes within a single track. For instance, we may be looking at a rather large genomic region containing one big transcript with many widely spaced exons and a bunch of smaller, more compact transcripts. In this case it would be helpful to provide a zoomed in version of those smaller transcripts. In order to achieve this we can make use of the class' \code{groupDetails} display parameter, which applies the detail plotting function over each range group rather than over individual range items. First we define a function that selects those groups with a plotted size smaller than 10 pixels. We make use of the unexported function \code{.pxResolution} here to come up with the mapping between pixel coordinates and genomic coordinates. <>= selFun <- function(identifier, start, end, track, GdObject, ...){ gcount <- table(group(GdObject)) ## This computes the width of 2 pixels in genomic coordinates pxRange <- Gviz:::.pxResolution(min.width=20, coord="x") return((end-start)>= detFun <- function(identifier, GdObject.original, ...){ plotTracks(list(GenomeAxisTrack(scale=0.3, size=0.2, cex=0.7), GdObject.original[group(GdObject.original)==identifier]), add=TRUE, showTitle=FALSE) } @ Finally, we load some sample data, turn it into a \code{DetailsAnnotationTrack} object and plot it. <>= data(geneDetails) deTrack2 <- AnnotationTrack(geneDetails, fun=detFun, selectFun=selFun, groupDetails=TRUE, details.size=0.5, detailsConnector.cex=0.5, detailsConnector.lty="dotted", shape=c("smallArrow", "arrow"), groupAnnotation="group") plotTracks(deTrack2, extend.left=90000) @ \subsubsection*{Display parameters for DetailsAnnotationTrack objects} In addtion to the display parameters for the \Rclass{AnnotationTrack} class, some additional parameters can be used to control the look and feel of the details sections. For a complete listing of all the available display parameters please see the tables below and the one above in the \Rclass{AnnotationTrack} section or the man page of the \Rclass{DetailsAnnotationTrack} class by typing in \code{?DetailsAnnotationTrack} on the \RR command line. <>= plotTracks(deTrack, details.size=0.75, detailsConnector.pch=NA, detailsConnector.col="darkred", detailsBorder.fill="#FFE3BF", detailsBorder.col="darkred", shape="box", detailsConnector.lty="dotted") @ <>= addParTable("DetailsAnnotationTrack") @ \subsection{SequenceTrack} So far we have displayed all kinds of ranges on a genome, but never really looked at the underlying genomic sequence. To that end, the \mgg package defines the \Rclass{SequenceTrack} class which can hold genomic sequence information derived from either a \Rclass{DNAStringSet} object of, even more convenient, from one of the \Rclass{BSgenome} packages. There is not formal checking of the track's genome, so it is up to the user to provide reasonable inputs to the class' constructor. As with all the other track types, the constructor has the same name as the class. In this example we build a \Rclass{SequenceTrack} from the human hg19 UCSC genome. <>= library(BSgenome.Hsapiens.UCSC.hg19) sTrack <- SequenceTrack(Hsapiens) sTrack @ Here we retain the same benefits as for regular \Rclass{BSgenome} objects in that the actual sequence is only loaded into memory when a particular chromosome is first accessed. Plotting the track yields the expected result: a character representation of the genomic sequence in the current plot window. It may be worth noting that the color scheme that is used to encode the indvidual nucleotides is defined in the \Rpackage{biovizBase} package and the user is referred to its documentation for more details. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20050) @ Sometimes it may be too busy to plot both the sequence letters and the color coding, and we can assign arbitrary colors by setting the \code{fontcolor} display parameter. The convention here is that we need to supply a named vector, with one entry for each of the five possible nucleotides (A, C, T, G, and N). If any of the entries is missing, the respective letter will not be drawn at all. <>= fcol <- c(A="darkgray", C="darkgray", T="darkgray", G="darkgray") plotTracks(sTrack, chromosome=1, from=20000, to=20050, fontcolor=fcol) @ In this case we are plotting the sequence on the forward strand and we may want to make this clear by adding direction indicators. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20050, add53=TRUE) @ If instead we plot the complement sequence on the reverse strand, the indicators are automatically adjusted. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20050, add53=TRUE, complement=TRUE) @ So far we have been able to fit the sequence onto our plotting device without overplotting. I.e., all the letters nicely fit in to their respective position in the genomic coordinate system. However this restricts us to very small windows which we can reasonably display. A much more compact version of the same information is to use colored boxes rather than individual letters. Those boxes can be stacked much closer together, which increases the possible window size quite a bit. The user does not really need to worry about this as the plotting method will automatically make a reasonable decision based on the available space. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20100) @ For added flexibility one can set the \code{noLetters} display paramter to \code{TRUE} to always force the drawing of boxes. Of course also the colored box represenation of a sequence has its limits, and if we cross the threshold when individual boxes can not be separated anymore, the plotting method falls back to drawing a single line indicating the presence of a sequence at the given position. <>= plotTracks(sTrack, chromosome=1, from=20000, to=201000) @ Finally, the selected font size is also contributing to the available space, and we can cram a little more sequence into a given window by decreasing it. <>= plotTracks(sTrack, chromosome=1, from=20000, to=20100, cex=0.5) @ \subsubsection*{Display parameters for SequenceTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{SequenceTrack} class by typing in \code{?SequenceTrack} on the \RR command line. <>= addParTable("SequenceTrack") @ \subsection{AlignmentsTrack} Plots of aligned sequences, typically from next generation sequencing experiments can be quite helpful, for instance when visually inspecting the validity of a called SNP. Those alignments are usually stored in \code{BAM} files. As shown in some of the previous section we can deal with these files in a fairly crude way by coupling them to either an \Rclass{AnnotationTrack} or a \Rclass{DataTrack}. The utility of the generated plots however is fairly limited, and we want in particular support for gapped and paired aligments, and show differences of the individual read sequences to a reference. The \Rclass{AlignmentsTrack} class is designed to help in exactly these tasks. In its typical manifestation it is also a member of the \Rclass{ReferenceTrack} class, enabling memory efficient streaming directly off a file. Even though this file does not necessarily have to be a \code{BAM} file, the automatic import will only work for those. For all other file representations of alignments a user will have to provide their own import function, and this topic is further discussed in the class' documentation. For this demonstation let's use a small \code{BAM} file for which paired NGS reads have been mapped to an extract of the human hg19 genome. The data originate from an RNASeq experiment, and the alignements have been performed using the \code{STAR} aligner allowing for gaps. We also download some gene annotation data for that region from Biomart. Again, creating the \Rclass{AlignmentsTrack} object is as simple as calling the constructor function of the same name. We set the \Rfunarg{isPaired} argument to \code{TRUE} in order to tell the constructor that it should expect paired reads. Please note that \code{TRUE} is the default value for this parameter and usually things will still work even if the reads do not originate from a paired end library. In other words, the default setting could be used as a poor-man's autodetection, however it make more sense to supply the argument explicitely if you know what type of data to expect. <>= afrom <- 2960000 ato <- 3160000 alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "gapped.bam"), isPaired=TRUE) data(alTrackGenes) @ <>= afrom <- 2960000 ato <- 3160000 alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "gapped.bam"), isPaired=TRUE) bmt <- BiomartGeneRegionTrack(genome="hg19", chromosome="chr12", start=afrom, end=ato, filter=list(with_ox_refseq_mrna=TRUE), stacking="dense") @ We can create a first plot of our read alignments data from a birds eye perspecive, say a range of 20,000 nucleotides. <>= plotTracks(c(bmt, alTrack), from=afrom, to=ato, chromosome="chr12") @ Now this already shows us the general layout of the track: on top we have a panel with the read coverage information in the form of a histogram, and below that a pile-up view of the individual reads. There is only a certain amount of vertical space available for the plotting, and not the whole depth of the pile-up can be displayed here. This fact is indicated by the white downward-pointing arrows in the title panel. We could address this issue by playing around with the \Rfunarg{max.height}, \Rfunarg{min.height} or \Rfunarg{stackHeight} display parameters which all control the height or the vertical spacing of the stacked reads. Or we could reduce the size of the coverage section by setting the \Rfunarg{coverageHeight} or the \Rfunarg{minCoverageHeight} parameters. Please see the class documentation for more details. <>= plotTracks(c(bmt, alTrack), from=afrom, to=ato, chromosome="chr12", min.height=0, coverageHeight=0.08, minCoverageHeight=0) @ From that far out the pile-ups are not particlularly useful, and we can turn those off by setting the \Rfunarg{type} display parameter accordingly. <>= plotTracks(c(alTrack, bmt), from=afrom, to=ato, chromosome="chr12", type="coverage") @ Let's zoom in a bit further to check out the details of the pile-ups section. <>= plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12") @ The direction of the individual reads is indicated by the arrow head, and read pairs are connected by a bright gray line. Gaps in the alignments are show by the connecting dark gray lines. Numbers of reads supporting each gap can be visualized as ``sashimi plot'' \cite{Katz22012015} by adding \Rfunarg{``sashimi''} as an additional agument to the \Rfunarg{type} display parameter. The axis in the title panel shows the relationship between the line width the the number of reads spanning a given junction. The height of each arc is not informative, it is optimized to fit all overlapping junctions in a small window. <>= plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12", type=c("coverage", "sashimi")) @ It is also possible to filter the junctions by including the coordinates as an additional argument \Rfunarg{``sashimiFilter''}. In this case only junction which equally overlaps with specified \Rclass{GRanges} object are shown. <>= introns <- GRanges("chr12", IRanges(start=c(2973662, 2973919), end=c(2973848, 2974520))) plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12", type=c("coverage", "sashimi"), sashimiFilter=introns) @ However sometimes the aligners do not place the junction reads precisely on the exon-intron boundaries and it is therefore useful to include also junctions which are shifted by few bases. This can be done by setting the additional argument \Rfunarg{``sashimiFilterTolerance''} to small positive integer value. <>= plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12", type=c("coverage", "sashimi"), sashimiFilter=introns, sashimiFilterTolerance=5L) @ On devices that support transparancy we can also see that some of the read pairs are actually overlapping. Like before, we can not display the full depth of the pile-up, and the clipping that takes place hides a lot of the reads from the view. Another way of getting to see at least some of them is by reversing the stacking order. We can also play around with some of the other display parameters that control the look and feel of the reads. <>= plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12", reverseStacking=TRUE, col.mates="purple", col.gap="orange", type="pileup") @ As mentioned before we can control whether the data should be treated as paired end or single end data by setting the \Rfunarg{isPaired} argument in the constructor. Here is how we could take a look at the data in the same file, but in single end mode. <>= alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "gapped.bam"), isPaired=FALSE) plotTracks(c(bmt, alTrack), from=afrom+12700, to=afrom+15200, chromosome="chr12") @ So far we did not look at the individual read sequences at all. Even though they are contained in the \code{BAM} file, their value is fairly limited without the reference sequence against which the reads have initially been aligned. Typically the mismatch positions and the variant bases are not included. (Please note that this is not entirely true for all \code{BAM} files. One can store base mismatch positions in the CIGAR string, or even the full variant description in the non-standard \code{MD} field. However very few aligners currently make use of these features. We may implement support for those later if found necessary.) To better show the features of the \Rclass{AlignmentsTrack} for sequence variants we will load a different data set, this time from a whole genome DNASeq SNP calling experiment. Again the reference genome is hg19 and the alignments have been performed using \code{Bowtie2}. <>= afrom <- 44945200 ato <- 44947200 alTrack <- AlignmentsTrack(system.file(package="Gviz", "extdata", "snps.bam"), isPaired=TRUE) plotTracks(alTrack, chromosome="chr21", from=afrom, to=ato) @ Somehow we need to tell the \Rclass{AlignmentsTrack} about the reference genome, and there are two ways to archive this. Either we provide a \Rclass{SequenceTrack} object with the reference to the constructor function via the \Rfunarg{referenceSequence} argument, or we stick it into the track list that is provided to the \Rfunction{plotTrack} which is smart enough to detect it there. For this example we chose the second option and re-use the \Rclass{SequenceTrack} object from the previous section. <>= plotTracks(c(alTrack, sTrack), chromosome="chr21", from=afrom, to=ato) @ The mismatched bases are now indicated on both the individual reads in the pileup section and also in the coverage plot in the form of a stacked histogram. When zooming in to one of the obvious heterozygous SNP positions we can reveal even more details. <>= plotTracks(c(alTrack, sTrack), chromosome="chr21", from=44946590, to=44946660) @ Just like shown before in the \Rclass{SequenceTrack} we can even show individual letters here as long as there is enough space to fit them. This can be controlled using the display parameters \code{min.height}, \code{max.height} and \code{cex}. <>= plotTracks(c(alTrack, sTrack), chromosome="chr21", from=44946590, to=44946660, cex=0.5, min.height=8) @ \subsubsection*{Display parameters for AlignmentsTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{AlignmentsTrack} class by typing in \code{?AlignmentsTrack} on the \RR command line. <>= addParTable("AlignmentsTrack") @ \subsection{Creating tracks from UCSC data} The UCSC data bases contain a multitude of genome annotation data for dozents of different organisms. Some of those data are very simple annotations like CpG island locations or SNP locations. Others are more complicated gene models, or even numeric annotations like conservation information. In order to provide a unified interface to all this information, the \mgg package defines a meta-constructor function \Rfunction{UcscTrack}. The idea here is that we can express all of the available Ucsc data in one of the package's track types. We use the functionality provided in the \Rpackage{rtracklayer} package to connect to UCSC and to download the relevant information. As a little illustrative example, let's reproduce a view from the famous UCSC genome browser using the \mgg package. As a final result we want to show something similar to Figure~\ref{fig:UCSC1}. \begin{figure}[htb] \centering \includegraphics{ucsc1.pdf} \label{fig:UCSC1} \caption{A screen shot of a UCSC genome browser view around the FMR1 locus on the mouse chromosome.} \end{figure} To start we first need to know about the available data in the UCSC data base and about their structure. A good way to do this is to use the table browser on the UCSC web site (\url{http://genome.ucsc.edu/cgi-bin/hgTables?command=start}). Figure~\ref{fig:UCSC2} shows the table structure for the first gene model track, the known UCSC genes, in the table browser. We can see that there are multiple fields, some with genomic locations, other with additional data like labels or identifiers. If we go back to the section about the \Rclass{GeneRegionTrack} class we remember that we need exactly this type of information for the constructor function. So in order to take the UCSC data and build an object of class \Rclass{GeneRegionTrack} we need a way to map them to the individual constructor arguments. This is exactly what the \Rfunction{UcscTrack} meta-constructor is supposed to do for us. \begin{figure}[htb] \centering \includegraphics{ucsc2.pdf} \label{fig:UCSC2} \caption{A screen shot of a UCSC table browser view on the UCSC Known Genes track.} \end{figure} It needs to know about the track for which to extract the data (and optionally one or several of the tables that make up the collective track data, see \code{?UcscTrack} for details), about the genomic range including the chromosome for which to extract data, about the type of \mgg track that we want to translate this data into, and about the individual track columns and their counterparts in the respective track class constructor. In our example, the track is called \code{knownGene}, the track type to construct is \code{GeneRegionTrack}, and the relevant columns are \code{exonStarts}, \code{exonEnds}, \code{name} and \code{strand}, which we will use as the start and end coordinates of the ranges and for all the exon, transcript and gene identifiers. Here we make use of the high flexibility of the \Rfunction{GeneRegionTrack} constructor in the sense that the exon coordinates actually come in the form of a comma-separated list, combining all the information for one transcript in one row of the table. The function is smart enough to detect this and to split the annotation regions accordingly. The full function call to create the \Rclass{GeneRegionTrack} from the UCSC data looks like this: <>= from <- 65921878 to <- 65980988 knownGenes <- UcscTrack(genome="mm9", chromosome="chrX", track="knownGene", from=from, to=to, trackType="GeneRegionTrack", rstarts="exonStarts", rends="exonEnds", gene="name", symbol="name", transcript="name", strand="strand", fill="#8282d2", name="UCSC Genes") @ With a similar approach we can construct the next two gene model tracks based on the \code{xenoRefGene} and \code{ensGene} data tables. <>= refGenes <- UcscTrack(genome="mm9", chromosome="chrX", track="xenoRefGene", from=from, to=to, trackType="GeneRegionTrack", rstarts="exonStarts", rends="exonEnds", gene="name", symbol="name2", transcript="name", strand="strand", fill="#8282d2", stacking="dense", name="Other RefSeq") ensGenes <- UcscTrack(genome="mm9", chromosome="chrX", track="ensGene", from=from, to=to, trackType="GeneRegionTrack", rstarts="exonStarts", rends="exonEnds", gene="name", symbol="name2", transcript="name", strand="strand", fill="#960000", name="Ensembl Genes") @ The CpG and SNP tracks are slightly different since a \Rclass{GeneRegionTrack} representation would not be particularly useful. Instead, we can use \Rclass{AnnotationTrack} objects as containers. The overall process using the \Rfunction{UcscTrack} meta-constructor remains the same. <>= cpgIslands <- UcscTrack(genome="mm9", chromosome="chrX", track="cpgIslandExt", from=from, to=to, trackType="AnnotationTrack", start="chromStart", end="chromEnd", id="name", shape="box", fill="#006400", name="CpG Islands") snpLocations <- UcscTrack(genome="mm9", chromosome="chrX", track="snp128", from=from, to=to, trackType="AnnotationTrack", start="chromStart", end="chromEnd", id="name", feature="func", strand="strand", shape="box", stacking="dense", fill="black", name="SNPs") @ Most of UCSC's \Rclass{DataTrack}-like tracks are a little more complex and represent a collection of several sub-tracks, with data originating from multiple tables. To make sure that we get the correct information we have to be a little bit more specific here and also define the particular table on the UCSC data base to use. <>= conservation <- UcscTrack(genome="mm9", chromosome="chrX", track="Conservation", table="phyloP30wayPlacental", from=from, to=to, trackType="DataTrack", start="start", end="end", data="score", type="hist", window="auto", col.histogram="darkblue", fill.histogram="darkblue", ylim=c(-3.7, 4), name="Conservation") gcContent <- UcscTrack(genome="mm9", chromosome="chrX", track="GC Percent", table="gc5Base", from=from, to=to, trackType="DataTrack", start="start", end="end", data="score", type="hist", window=-1, windowSize=1500, fill.histogram="black", col.histogram="black", ylim=c(30, 70), name="GC Percent") @ To add some reference points we also need a genome axis and an \Rclass{IdeogramTrack} of the x chromosome. <>= axTrack <- GenomeAxisTrack() idxTrack <- IdeogramTrack(genome="mm9", chromosome="chrX") @ And finally we can plot all of our tracks. <>= data(ucscItems) @ <>= plotTracks(list(idxTrack, axTrack, knownGenes, refGenes, ensGenes, cpgIslands, gcContent, conservation, snpLocations), from=from, to=to, showTitle=FALSE) @ \section{Track highlighting and overlays} \subsection{Highlighting} Some features of a typical genome browser plot are not specific for just a single track, but instead span multiple tracks. One prominent example are highlighting regions. Assume you want to draw the attention on the plot to a particular genomic stretch where the visual clues across serveral or maybe even all tracks indicate a particular interesting behaviour. Because the individual tracks in the \mgg package are all represented by individual objects, there is no straight forward way to define such a region. Here is where the \Rclass{HighlightingTrack} class comes into play. Objects from this class are essentially just containers for one or several of the previously described track objects, togehter with a very simple range definition that is to be superimposed over the individual tracks once they have been rendered. Going back to our final example from the second chapter we could highlight two areas on the plot on the \Rclass{AnnotationTrack}, the \Rclass{GeneRegionTrack} and the \Rclass{DataTrack} using the \Rfunction{HighlightTrack} constructor in the following call: <>= ht <- HighlightTrack(trackList=list(atrack, grtrack, dtrack), start=c(26705000, 26720000), width=7000, chromosome=7) plotTracks(list(itrack, gtrack, ht), from = lim[1], to = lim[2]) @ One can also build multiple \Rclass{HighlightTrack} collections to create gaps in the highlighting regions. For \Rclass{IdeogramTracks} we never plot highlighting ranges because they do not live on the same x-axis coordinate system like the other tracks. <>= ht1 <- HighlightTrack(trackList=list(itrack, gtrack, atrack), start=c(26705000, 26720000), width=7000, chromosome=7) ht2 <- HighlightTrack(trackList=dtrack, start=c(26705000, 26720000), width=7000, chromosome=7) plotTracks(list(ht1, grtrack, ht2), from=lim[1], to=lim[2]) @ \subsubsection*{Display parameters for HighlightTrack objects} For a complete listing of all the available display parameters please see the table below or the man page of the \Rclass{HighlightTrack} class by typing in \code{?HighlightTrack} on the \RR command line. <>= addParTable("HighlightTrack") @ \subsection{Overlays} For certain applications it can make sense to overlay multiple tracks on the same area of the plot. For instance when dealing with multiple data sets that do not necessarily share the same genomic coordinates for their data points the design of the \Rclass{DataTrack} class is not optimal. To contrast these two data sets an overlay of two separate \Rclass{DataTrack} objects however can be quite powerful.The \mgg package allows for such overlay operations by means of the \Rclass{OverlayTrack} class.Similar to the \Rclass{HighlightTrack} class from the previous section this is merely a container for an arbitrary number of other \mgg track objects. For the purpose of an instructive example we will generate a second \Rclass{DataTrack} object and combine it with the existing one from the second chapter. <>= dat <- runif(100, min=-2, max=22) dtrack2 <- DataTrack(data=dat, start=coords[-length(coords)], end=coords[-1], chromosome=chr, genome=gen, name="Uniform2", groups=factor("sample 2", levels=c("sample 1", "sample 2")), legend=TRUE) displayPars(dtrack) <- list(groups=factor("sample 1", levels=c("sample 1", "sample 2")), legend=TRUE) ot <- OverlayTrack(trackList=list(dtrack2, dtrack)) ylims <- extendrange(range(c(values(dtrack), values(dtrack2)))) plotTracks(list(itrack, gtrack, ot), from=lim[1], to=lim[2], ylim=ylims, type=c("smooth", "p")) @ It is important to know that \mgg is fully unaware of the intention and any specifics of the track merging operation. Any track type can be merged with any other track type, and there are no limitations on the number of overlays. It is totally up to the user to design reasonable merges and to control critical aspects of the plot, like the y-axis scaling or the grouping in the above example. During rendering, the software will only use the first track object in the \Robject{trackList} container of \Rclass{OverlayTracks} object to set up the track title. Thus, the ranges on the y-axis are those that have been automatically determined for the first of our two \Rclass{DataTracks}. Only by forcing a common y-range for both objects do we actually plot the data from both tracks on a common scale. Had we added another track object that is not a \Rclass{DataTrack} is the first element of our \Rclass{trackList} there wouldn't even be an axis. In a similar fashion, by nicely setting up the group levels for the two \Rclass{DataTracks} we can even ask for a legend to be added. On devices that support it, alpha blending can be a useful tool to tease out even more information out of track overlays, at least when comparing just a small number of samples. The resulting transparancy effctively eliminates the probelm of overplotting. The following example will only work if this vignette has been built on a system with alpha blending support. <>= displayPars(dtrack) <- list(alpha.title=1, alpha=0.5) displayPars(dtrack2) <- list(alpha.title=1, alpha=0.5) ot <- OverlayTrack(trackList=list(dtrack, dtrack2)) plotTracks(list(itrack, gtrack, ot), from=lim[1], to=lim[2], ylim=ylims, type=c("hist"), window=30) @ \section{Composite plots for multiple chromosomes} As mentioned in the introduction section, a set of \mgg tracks has to share the same chromosome when plotted, i.e., only a single chromosome can be active during a given plotting operation. Consequently, we can not directly create plots for multiple chromosomes in a single call to the \Rfunction{plotTracks} function. However, since the underlying graphical infrastructure of the \mgg package uses grid graphics, we can build our own composite plot using multiple consecutive \Rfunction{plotTracks} calls. All we need to take care of is an adequate layout structure to plot into, and we also need to tell \Rfunction{plotTracks} not to clear the graphics device before plotting, which can be archieved by setting the function's \Rfunarg{add} argument to \code{FALSE}. For details on how to create a layout structure in the grid graphics system, please see the help page at \code{?grid.layout)}. We start by creating an \Rclass{AnnotationTrack} objects and a \Rclass{DataTrack} object which both contain data for several chromosomes. <>= chroms <- c("chr1", "chr2", "chr3", "chr4") maTrack <- AnnotationTrack(range=GRanges(seqnames=chroms, ranges=IRanges(start=1, width=c(100,400,200,1000)), strand=c("+", "+", "-", "+")), genome="mm9", chromosome="chr1", name="foo") mdTrack <- DataTrack(range=GRanges(seqnames=rep(chroms, c(10, 40, 20, 100)), ranges=IRanges(start=c(seq(1,100,len=10), seq(1,400,len=40), seq(1, 200, len=20), seq(1,1000, len=100)), width=9), values=runif(170)), data="values", chromosome="chr1", genome="mm9", name="bar") @ Now we also want a genome axis and an \Rclass{IdeogramTrack} object to indicate the genomic context. <>= mgTrack <- GenomeAxisTrack(scale=50, labelPos="below", exponent=3) chromosome(itrack) <- "chr1" @ Finaly, we build a layout in which the plots for each chromosome are placed in a rectangular grid and repeatedly call \Rfunction{plotTracks} for each chromosome. <>= ncols <- 2 nrows <- length(chroms)%/%ncols grid.newpage() pushViewport(viewport(layout=grid.layout(nrows, ncols))) for(i in seq_along(chroms)){ pushViewport(viewport(layout.pos.col=((i-1)%%ncols)+1, layout.pos.row=(((i)-1)%/%ncols)+1)) plotTracks(list(itrack, maTrack, mdTrack, mgTrack), chromosome=chroms[i], add=TRUE) popViewport(1) } @ Maybe an even more compact version of this would be to use the lattice package for building the actual trellis, with \Rfunction{plotTracks} as the panel function. <>= library(lattice) chroms <- data.frame(chromosome=chroms) xyplot(1~chromosome|chromosome, data=chroms, panel=function(x){plotTracks(list(itrack , maTrack, mdTrack, mgTrack), chromosome=x, add=TRUE, showId=FALSE)}, scales=list(draw=FALSE), xlab=NULL, ylab=NULL) @ \section{Bioconductor integration and file support} This short section is supposed to give a very brief overview over the different track classes in the \mgg package and how those can be constructed from the typical Bioconductor classes that deal with genomic data. The list ist by no means complete, and a closer look at a track class' documentation should provide all the possible options. \begin{longtable}{ l | l | p{9.5cm} } \hline Gviz class & Bioconductor class & Method\\ \hline AnnotationTrack & data.frame & Constructor \\ & IRanges & Constructor + additional arguments \\ & GRanges & Constructor or setAs method, additional data in metadata columns \\ & GRangesList & Constructor or setAs method \\ \hline GeneRegionTrack & data.frame & Constructor \\ & IRanges & Constructor + additonal arguments \\ & GRanges & Constructor or setAs method, additional data in metadata columns \\ & GRangesList & Constructor or setAs method, additional data in metadata columns \\ & TxDb & Constructor or setAs method \\ \hline DataTrack & data.frame & Constructor \\ & IRanges & Constructor + additional data matrix \\ & GRanges & Constructor or setAs method, numeric data in metadata columns \\ \hline SequenceTrack & DNAStringSet & Constructor \\ & BSgenome & Constructor \\ \hline \end{longtable} We have seen in previous examples that the \mgg package supports quite a wide range of standard file types as inputs for the class' constructor functions. In this section we summarize the file support for the different track classes in one place. \begin{longtable}{ l | l | l | c | p{6.5cm} } \hline Gviz class & File type & Extension & Streaming & Details\\ \hline AnnotationTrack & BED & \code{.bed} & -- & Genomic locations from the mandatory \code{chrom}, \code{chromStart} and \code{chromEnd} fields, and optionally the strand from the \code{strand} field. If present, the information in the \code{name} field is mapped to track item ids, and \code{itemRgb} is mapped to track item feature type. All other fields are currently ignored.\\ & GFF & \code{.gff}, \code{.gff1} & -- & Only the following basic GFF fields are recognized: \code{seqname}, \code{start}, \code{end}, \code{end}, \code{strand}, \code{feature} (mapped to track item feature type) and \code{group} (to allow for track item grouping). \\ & GFF2 & \code{.gff2} & -- & Same as above, but feature grouping information may be provided either as \code{Group} or \code{Parent} attribute. Feature ids are mapped to one of the \code{ID}, \code{Name} or \code{Alias} attributes.\\ & GFF3 & \code{.gff3} & -- & Same as above, but feature grouping information has to be provided as the \code{Parent} attribute.\\ & BAM & \code{.bam} & $\surd$ & Only start and end locations as well as the strand information for the reads are used. Read identifiers are used for track item grouping.\\ \hline GeneRegionTrack & GTF & \code{.gtf} & -- & A somewhat looser format definition for \code{gtf} files is applied here where gene, transcript and exon identifiers and names can be parsed from the \code{gene\_id}, \code{gene\_name}, \code{transcript\_id}, \code{transcript\_name}, \code{exon\_id} or \code{exon\_id} attributes.\\ & GFF & \code{.gff}, \code{.gff1} & -- & This only supports very limited item grouping and thus complete gene models can not be properly encoded.\\ & GFF2 & \code{.gff2} & -- & In most instances this is identical to the \code{GTF} standard and it could make sense to rename the file accordingly.\\ & GFF3 & \code{.gff3} & -- & The gene-to-transcript and transcript-to-exon relationships are encoded in the \code{parent} and \code{type} attributes and the parser tries to accomodate most of the exisiting GFF3 variants.\\ \hline DataTrack & BedGraph & \code{.bedGraph} & -- & \\ & WIG & \code{.wig} & -- & \\ & BigWig & \code{.bigWig}, \code{.bw} & $\surd$ & \\ & BAM & \code{.bam} & $\surd$ & Read coverage only is extracted from the \code{bam} file.\\ \hline SequenceTrack & FASTA & \code{.fa}, \code{fasta} & $(\surd)$ & Streaming only possible if an index file is found in the same directory as the original fasta file.\\ & 2Bit & \code{.2bit} & $\surd$ & \\ \hline AlignmentsTrack & BAM & \code{.bam} & $\surd$ & ALways needs an index file is found in the same directory as the original BAM file.\\ \hline \end{longtable} \clearpage \section*{SessionInfo} The following is the session info that generated this vignette: <>= sessionInfo() @ \clearpage \bibliography{Gviz-refs} \end{document} Gviz/vignettes/ucsc1.pdf0000644000175400017540000050545513175714140016261 0ustar00biocbuildbiocbuild%PDF-1.3 % 4 0 obj << /Length 5 0 R /Filter /FlateDecode >> stream x+TT(T0B c#S #Tp<}\C|@ endstream endobj 5 0 obj 40 endobj 2 0 obj << /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 832 582] >> endobj 6 0 obj << /ProcSet [ /PDF ] /XObject << /Fm1 7 0 R >> >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /FormType 1 /BBox [0 0 832 582] /Resources 9 0 R /Group << /S /Transparency /CS 10 0 R /I true /K false >> >> stream x+TT(T0B c#S #Tp<ԢԂL> >> endobj 11 0 obj << /Length 12 0 R /Type /XObject /Subtype /Image /Width 832 /Height 582 /Interpolate true /ColorSpace 13 0 R /SMask 14 0 R /BitsPerComponent 8 /Filter /FlateDecode >> stream xUY..xЄ#J\qww&ϸklLgf@I~nz>]]TթX{]X}";,ӯ(LE偧B๊S%1gKbVXP~4lY4;U9uak8Vȷa\ZΙg#ϕF.>?2ӟφ07V%4VƳs$"tQXM_CaЙк!QgKN'*s|9ki!n?L iHIاm8uҘg yрƊ8t_چ(?Wb/( Q1kOh,KBN5F6 CBJBJ2]*sgUIE^ŁBC(JҘ8 +@fNGaJ} Hg&g潍O+\m ܝOIdfKFn v67$Kŝb*3ünZ1yiOh+ &o[3yĠNz]1Êc·.5-ll8"lrkw=mMd<󰫺oq-+7E`PJbo ]tܔ1n sI?ʊBMˢy#'ݡȡTafvl-AQ^Dk9?mK\>yX}py}E)ܮ(ųU'B6_)Zwi%?2s^ü7!s$@/པgx5a+I8g r5mB~s%k[fyn q.9Rs6^2{x,L'c.?jG#/ %70՗YC6[y]p깅C.cEo?cCzUw6N>|y \fdElX6iāOIp/LBO?Σ`W^\օzmM?޶ğ1}3cֆm0Z~+quX]h$)r:kOh0~Yvol=W%*~ES:BoƟ p;? |yo=O%4_)+]8LUJ5E4V7$4G)?]X)[mIpMO}EOmAhc푺41Jk8oqF)yr/aqqPܐt?,p$5çG ]8]ewM7L;s3@9qp5Ws4weQU YAz};o1릏'ngo# 5N uߟ{ų޶vv?w$-ܷ,ÿwOwҿWO3O>t7|=sO~G{NdcCN|*DW;]vm9~Dgx9[m+jqb^2?E2^"\ƦhVCVRLnU4<㩢|l6YmL/[nah/~ukNmr{OKSrDmx/ș{!pwOmfwh;-7^y\“#Uv[Oc.uPN|?[T ܻKhSo4ôx6/ŝ`co~|73&XՖ?|`' hss7٭~Nwa[nڿ'{׭_u87T㏳ۚgcwlP*,=wO'v˿6kioوew)M/f_pA_u<#63[?g9p_\y`"s/ȟGXkKU $&')DP#.8o:~Z_;]N4i]!<-&?9}Ցu쟭:]t !~ +"{ I[ubaBM( Xb Sg/hi‹lNFyV8we\BP!|+2=`ɇJu~Y8gvԆ;B27`r1p4r1}c\EcoI jC!i̹{{^M1}.b_#xAD-kZ qW&w(W$s%яra늃| }ữpvj{njm&m .kߩӪàhCIl./>7ݹp64$i]i䭱8<[WV /Sdc ^ʐ3ekB qDѿ.F,&'} ; Vv` '7;ۢZl|ņob}K筌'>L~u4u"鷍M6Xlrbm㩣VOD`(~3q* `?ƿ-?PC 祐( R4NMVSh!XQ緣{@ܲj?w>ؾ;XO>GsZ_ E+cz>LmUfH9un63/?PgXphk?6i 8K3{{msfL&zϩc^\l 1(M6ozΛ/Tf?>暫d4 o f5_Y¨]l7y. g)(~C災8OZϺ*M8b"27/\kr~.. |;)ph8yDmSloQw!|cވ[kou~Ud_L$!\aOUal6(٢0vC7*#O) NOFyanXӥ|s++="EѶP6o6#,W8V'apuOj99_ycѳ,!س/?f{ !LLSs4G*#GXT̍?⎴;7.|S?N~ =vBlб3?rPJƐ_țb᯾\`ngcIxʗ[ȫi)^MiSs2j!37MӄLEEV^g䉨qwU9oɟvrhHGW'cz' cjslu7m;o>/mvf3wN}~>oϟf)\t8PuDW/gCoo)?ʑQú{}:{IadîG pډ)Qf?y\f:?=i?%{-LUj4j;6\ G+1~_2Sٌ?ۍ(%~<4-CY'q#v(|?GYG\ Hτ[ x5f/ut8q#{!^yo?"Zn-"m~<6SY~WͲXOpiU 0E j#A&6l)^2\TVܐ|xdyUe5䆢`H*+"bs<; @r`J"]mxՊ!;t^-lP&M)[Z#gg׺%>ȕ Cx@<%NY!k_x\/n ?y|sB}oc,hޭk$xEUFJu@FUK\ֿ1Dj"3e̞:B*+sv/Ks)Lq?z0ȟa۞=ZNKdlf@i_qwh mlDeQd/Fu߻8 kCe j0\Y0#oGbY7I__ a9В4YG\h^e^hq?9?əhW'pwV!|6̠T ZDVpHk(/Uos[hWx4l_EFYp1?Y+R}++OxO;H06_\yj̇My'< ,I)M-K=505/^ uuS;uʯ6MHpaOU5zǁUR)fksC Oz"|4'!2#P_^'5a랅)<ԥ:jղS]xCiQ~XYf*}1y*&/Dg޴asoX(ջȿH^StB˿$;u䟚`{q ~n:Tst`1'=AuTsDY-ʖ^zm LGieyp{ZBpSFـtڬ+@3Or)N8[_6GyooiO ϙ2c"?ģhWЗ>Bsim eLUquYAUV_ulc{;*os^uUvc- ;h;RZBh CʫsE6BP{   (F"u&_~9v#)qsBcEڳmZZ=WMwQsi0.' pu =oG"lkL-o z&_{1p.)WfoAhQc] XSs̲dfYOjF=14H(2- ;]XJY0q53?"7+2qGTVP}F~Db0: ul8|3Gh勦(BRJ–|uע'lUϚ{/jA14g4vOu>>p=|p"fwcuT]AsO:E* #3&?0Gk?U3jS7EXpx5?3};ni~>xO=(_d4E_{N ovWώs||_Ljta.MCkL/ qO?e(sv.m}NM7 F8vK"<;7L oUඵQ՚% ȟ)H';g3?JPv$zQ"ۅsF"߰x)ACWL[sd︙GI o@b6ɣ{?}/=xq+`Mv5~?~6o\Danm}зC2>#vx޵># Cu_c"-뎛|mIh(jo0Ow[iamia// _h<"&AGB|%湙*rlw^#{>0uӴq_=Ƚ/>豰?_$ v eF膑Uw|Ec3Wgs$(&5_y fi }guoחݻc9~4rOl>g˪ɂ?LCKğ.o-$7WiG]G r6ukEuhخima^3۵i]MqTSX玶~s aE s$";/? _d,Iy_k_D9#$Sݗɝk6g׍?zܹXÒB2?nOc.K9ln"*W5V^Ƒ}~^YбC7M+'#nx]u-LfG'}.p?{|5|d>uXq/I(h\צ'.2 s^pe|nvo%rs҉`.nň][r}un6YY?j\ʔ6-7'ƜSHPqX%hl=[ Lc^iq-)XIY3^H NקLY,sya*:.:Yc]ֲm%f \B fT1/GoP{&"Ӎ H1U;74䷀X^%<ݡ,X!3HvT\ OdkP8&RtLJJv2ݷahC܅#BdߟW^|wı c5uתQCTqv/_3_.B4~wd+\ADW븀}\y쑢;7|g2Eo3Dg n _tn)S`8.LkU3ۘ8oBv9(VrY28/ʞN9,>[}A!Z ;/ү迌qhaM*H ǏY"S#D3:sOMiĭQY!? eR-a/uwZ Dym-#Rg/|^;]Ϙ8cDEZQNצ;4o?SM&ț0@Awo !vIFŸdgiSA!*kv7TQ)Wm\1Qg&'*jsB([VjEK) pt Yo.}ӆKc_<G۾/-&y\ Mk\,vZ?Iǒ)qv"I= Б4RCi K̗)-^W]`tಂ_=pmE).bO)_9S@+YJ"z|~['L5[VMQ)>Ϟ$Pb?Z.LC߆Lo5M B2|2GPCUF5yfrN)S2cs)\%<-_zM-wJQ2I9ZcnG;OCO8J%9~M(U(O7fzG•$Ly} ;#ע35FT=wbC,#he`ݖkE<|Cp3!K|ϳ xqiBI4(>\?!t%\MTi[IW䟛$*~[a"bnȿu\Lb8(rN 8GqTiF#1T-C>7V2*L!|2c1j >#w*N@ NUloy'wݳL*G/D h:hdˆȿ" *BQ6f1W,Z"+ly:/k9Xj~cY3YLvoă+O!姸5vlwF- BNdRSG=S&Y^ ?d3|3inO4Shn첚>oK9,}8Lj7C3ԒdvxlK"iM,Pô=jrR#w/\gOht[ܹVet;/ӊ6yw|!6׍rMIt%}fr5}5vXWvCMO 5[.Tw&CC~ȿcv}Lo'w9`UN_RAo߹VF/d =Ћ}?s&b R.h i@S+UyUMA!_QC8S|2ۧ2Nj&߷r4TIPm_c% ?WQgC V6JP8 #;@2 SgDO *HS!{JxGxK$ك1~T;LrVAw \^^RVF]BsgKC~ 8[FZEkj38xV" /Ż2Yʙ R_lhrx=/<ѡ$1d?oϿ|+d>[g`{A SNF<o)(U#_zE79ֲ#<6&Ň#3+dkZۻyԃBoߠӼ NJqC]\훸PvfY;UdAV}0cJk `] y:q51ú+rK [,$~G_xrSct~; 0Rڊ(7!/מE~wqS~8G2+bSkoTSIaW=:Q617*r6qT/i|"ۅ3AX}VUC7i'P_nL?q߬o|8o G4ܧ=;p.?Giyhv#~$Xm&^7]g)貶r% -Kv'1f_4{n;tfO%qM7-s2Z#>X. tZgM+yio-Ёft .:AE^  q0R= )nطkMN( 5mokǯcDnT~6_#+Qܚ!:Ð #7YT=1z㧱;!o Gj\D>+1Q؄o_oy׺)3=<r!My TacQ.Ċp|nXlα}Hjk2|KOx0)g*Ð!%Yjj'팒CKj$uo4?s@Z}F"esGAp䮴){OIN؛OٯM47o}{|[՘xcRjȑL/s1׵U|:.BKgYrh'31S#v9dlG13l lλ̌8_ 7N"P[&%{q!6&H[ w;D=:5~eva;gb:?4٢/[eo)!>u/ㄑݑߐ?϶dp}#a*9Ma ,1Ah7.};O&sU@s4*gȝE^vL?YY$iyi겂?XW'džni,#Oq23\kzlz㕧 f ;y>XEs$FLCÖ Oi Q k&H)| Аp635vUAe & U[aBA۷;;Cv|kQ[Zq/k_UxMﻷɝW3NVLy/;~(?k󆖿>M1>||y*7y茭@ <wl?et#v胑>۴SO?ăFMX-"ơd3;ԧ':[.9ԜyU7xyQgHJjpY>HO}u_O."o"n)耯&=q?x4[qpg0;A57ui-䄿H؞ٟ2D0Ur36!W}1O6͂ h`?Y of9`cyGD>뗍? b֐VXnc"U W[WO:yAzSY4K437ß^FO3epϛɿEk&xe(a;]"k߻ed(Ͷ5!ʣg)ME/M7'!9OJ=M۳~ˮ%6 wגI#ʦ /:٧g A(UˏӇ0qP5-/߻ɺ C&($2qܱP쯃Kc3^ 1뿣5cV]m?TEQC bh;$ţKQKCBTmM5cGY7n-f4b 0742FBA& G5zs,EފN3KRQ~* wAPy򲘞_z.ߏLqR Oc͢G-7NGWLO)kG F\490g?Lm#UKK3J'"%hUfVAv?#W#҉<w:\ܤ"XuԤZm󆖿> H#ba/NR^~/7? ?oA% !xW/+#z3;'Fl' .\'X8' BOB߰lsњ0E۷LTѭ꿙ez8Q?s@7DbiB9SŇH>׻oZgN?nx7^糡0H\gի1ZvZ^on/ϔgo(WFPF~DN)c '\%Rl?wҹ#GW`e?[7?Gq ,4VT Fp@ο?ړpBs9{-,L=6pk?+Z6wuRA+\p5OoDY+ڭ?/?X&Κ8HMjLJrN tHbK= +~[ AZ@}-%W%{-<8b&?|m5Dq#k7rZ.mFEq%,4?@f./%wi֦ 7߬msܳ\ߜVC6Wvi-oL6?DGm_J~NfV$*r/bX;7@W78|ſӷ֒,Y7ml9K{K>!>I-})]Uaq>-g&'9cZ+*p8pn(#/0`j5 J`1$1(OA؇Uf[)4S1o䱄rOqf* 46QMiGeDSɤ*,IE)9X^ 4fE(_&?ϲX^d3>PU`zhy7n.FCTLчFsON͎DO4x=H+Wct^"3ѹ"d;mپv7G/9>xhf藢vQƠ֦k[2B3>#Wh1sd`"]ZySOۼOS͐95WFZ~ߚ߸B*,&oiC8IT7=vwitR th'%ْC~~?Azcd?"t=ԑ&Zf~X._Xק9^`l oYm %࿙յv@˿\G__3 ҈ǬV9B!lviÙqe7AjHo'ۍ?q;q:uB1PţX^ 1\,\{|]VrVƫyR^+ /G:z `rz}vOOrgmh$\ci8]gYd%k$[JvlDlʻZ`᳏^/Js)Ed̟uڵPV P8v|eH~eȦ2 KhY@əwm7{iT 0~I7?"c߲f~MpV_UE q۳LIEg v&*Ϥ tlq-?WMUX-I\I?b`}KڇX7AAf\<^9/BŴ) <K\ )"L7vOo ۭaAa|3X2o)/_C~TU贖>o7.Vߝf?F嶬{ncFn[DQڲ[?'3_{E]Wsۅʀ2U22l䄔}"W_z?Ǭ%?Nٯz:5@B6DI*c?9^`VQG/o'?R~ 3Y¦HL)M4ojz#~ltO#Ko堲k9n3SəAOe(9o>zPF P-Ņ~h=ʷ8Y$vOi0o ?ˠ(R6fh|O~)EBl%aF>s:{k>UOKa !Ir5??l]1) ܰdhj'c Ł7N9 lp$n;Jz!CdP  `r~w4~_}uZʅn?NNT u"`*g?@F@@| ;7Nv` AL՗GoZ-6O'{!tn^N3q+5-K7)~;䫶j™Cx>iՏtxO^w.Y7[j3%{A7lm?|=-P5qݳit^Lc * H[ 1x5W4K 0dKUM͂?O9ӞE*bʟӛҙe, wv3I5O?v?}a5/jx~>0yAoO5;S'AxX87;'hYfmZ1gKH v#̙_uˌ?Zῳ(f\ầJDIaUWޣ - =}vTIc-aJwsK~S̰EvD\C%R"/=!){2#ߩ2-gfxR9k]{/mKtԳ(tI)OF4?dTXNK8,o,5ށiX+''ӞILM"}!GtGZ7DB몾7_pݨo65KS⟷rmóج]h,6#!}S?eՃF1vw݂{i:};lnJf04޹fck1%tןjJ6(goY) jT)/tHAĩ+S`ы%07 v򉃋(/| TG9 fވ:BtZ7L2 SSX=;Tm,P$C%a*^OVڷrQM qXei*7R7V/`6,݊3=62y7M/)ڊ\m2:yϢ1 $BaSfK(eIĀoOf~Fæ2 Vh%0 )Ii v/ Dp-1zcd0C_tvޗ(J@GM.$s,gj =ږɿxѩ߂c7_i ПůB^@" ɊQLEYx9-Q{B:t=\Nϣ%tݻ8ӏEi~nWz9?y6UO #nλ-eV(ݢAT := /絒qj?h>=ǟIF-A89uPV-- r\{2^'e= #^Z5M i+`FmLn??٪be~k)מy'w?]060;NK`pWgXk^J?'].5.%&"Xoo>?ŝP9`,(&2fQEs1bD LSq$bׁ]s/?=j_~}W $*4a/mJ)^76v#* GnFؔ #k 5#7\Jӌ(2\-y*ϛ ߑ*dq(T&7oj5.3NQbgfCoNeP^J^hjEx"68<F- 3_쫖kBu(!w8 A8tJR(m?b#EAįBSao2Q,Š, -EB~U)"A2Uh  xr}!<<1"B1QcbA57|+؜i!) %aV>=_TSԦ+ )cXQNƪD EQMVP7[eJE3^[U/PY,.,WD@ !jb|665WJbDTy0T,7r ܕgQd?.•Q[VGYGnanpeNWxR uQj:eWeVgթ"jQC*ç6Oo(u ;O0k{eQ%٫:>5Ď^ܜqt#LL,\ju>BM7'˲<- + `sd+S܀LUGHl_Z T` t.Vfוԕ0-YF>ã"G1kjbߥ}axQϖe<5RˬUOj]-9DׂcN6kٿo]vj}{?jGP+ KvߵeуCo1aPNx ..K wƍȭ]39a -szpoO(7W;7-I;t ?HHo^s܂q߶z:׷y-Qɡwq ܹyV gjZ rj7y*"LwQ$Sp8Q!^t"yl5АKWŖ21 y5/?x39ج1a~}z}f~}z=hצYZ.I<}=~O #!6/A[G Y1]fO5ʖ0zy%'T__A-yoʾ Qm6Lg -*r_˭,gUu˅??f "sCβ^Kkf?jGzgaaD?_U334o07E:R_LYDF1 OU :gX. 9(rĈB被S|(!Nyo05QMROe )¦ `RdXCaE'݈У]BDCCe˞r?ؑO΄U{5Nve˖Ē3;A}Br5y9,jJ,ፑVwA9.~>F\,Z?_]:l!p j5Z/v'>7үUr뼰 1]K IjP?XO4sMh/`7YqdXA\@ũGT]Ugܽ!{~\{(Vzb?ZӮCr C`2%KXݲfy|*'BTy, =h |z!P ~mmEa|'/ [#[GUPiY,Ò ɞ7ᚫa)xN*rZ<,N )2^p}P! `j pQ #x]EO9AeQB{T5 37N+5OHۓe#v<OCVQs}נ(BK:)v<2ki3fHOOG3/iӦm]99ȳILU^M.Gc7Qc+ ڶn5XF(4/EO7o_?Gі3NI-ݾnQKϸu@&GiS/ǭ/Ҙͫ"p!|PEoؚl D#_ ʌ0 `DQkƬ*5]n}wOs&0d˺ACZ|D+NYUu- (J:g˚<{ӭriUVL#299e|C6_2 ׺jf}&dqEnߴi5h '2Gq߶6iYuYAD~GَpE hj4"yXODb% P$l3%r(f;RoHM!yvpCfP;T&0P8EH8 C6;Dq)'aG`3RԳ*G7!x#%v-;wn^^^MMMWS]g͚dR'Mpvjv.V{&3=?έM7:h/HGӎ%'a6\p1RM |åV 7k VMJ*gȜl߸⁴So4 G;Ճ&I q`r07~?6L"YwDbư$=X^YYYaaay֖_ۜ[L$3ʶ+)y)C} {,f]oF sAYh7X8u`[Y9rwlܹ( JC0J׊ߪiiIvco#悻DgS\p^@ۂ\`-ϚLX̘4ߜ;gz\oއɂZ>\[UDy&oٿ"ӵ{'c=:Z>;wfwzp ])R['Wd:8tPnnNAaaYi)JUWiHaOtfee~奙njuyV{VݸzEYL;{kP=uFزKOߨC̡T[m_Sض-ƃ&&\`L=`z?bwr-;iL;  Q^d7~xɻEl𮵳}OOnXv|{:~xy8wmv矷=hZ̏7D<Ѽ_!|{wtheLz#{|ꩧ>3FSnu'$$t~k4C+k$+2~fgؼFB';Cx[vfX<Éw' 2zbo! ּl_3Ѐ/dgY:w,P@N=Vĸ}~ߞ0r.݃kf}h^~lvU ''}Yy!޳#jQ'z)y2].:ZpA4AJf3)M翦ۿJ* &?[HވA(3ԦZ3üi#oVh~f׀Q1a?-< >YNq{\6 s".\=vk/`yy~byGz~ |_%΋f0ސ%:9n!M:wyQ2Uψd Vp "|:rSsԩLTQ-] y &';֢c1\j`m۶6\ߕdǝ6sfmۧzv*7ow:ƶ]2 +׺ra>Ipx)h@Ѩݭ,sP |gp[+Owaطuⓟ}&7?m%bS/?%ċ>C>D7~`D fbR!~UxPۯ?gB W^xߒ83a>p·{} x?޿rri0R?uR2'7҆[y+~ypClyqd\_z({̍ᖽ ͂AUEc"R,4ɛs" 7oE- ҥI i7(:Cɷtao8})FɓE0l ċ!!|Wy$F\ 8r\PN(ݗ}>}bDz[a8c7Mfي WVu3iw$\~휽,X?=dut:v.5YGnU+9亵T +o8زe˳>c7|z{oh`;)֯*x7xUπPC*Hya ۺ5Q()L'cu[+ݻwC঴h"KGAG@ kxJF/Au2v"AiӦ'x?|0zC/-p}Q-mH^ۘZk; KjMi qAJ}ڙPe~͑.ʃ,̀,Nw(x>;F~`9cڹU̿$́߆{8TyJ_J5Bvo?&I/?렾W۟X8hEry|F\h. s!%Ud8Or X=2xv %s)Q2TDF+1CZ#Tp)NUtIAr,8B{+[KmTKS|K]tUgmm ),bW3?u&PM1hޱ ˒Yj^X?&5HȨ]/s[t,dVйCI|=w"|o[3ZM/?Y?TDc}'.g7rf q üٳf K0i!rF,テOܣi5ގ:tދ&*:TwHk׮_2gΜ.v-tp񮡽~:ToW#%57P\ 2I#Xӝw1cQ)U v˚ڸjʢY]YA@7XL#o|;Ƞ8m[o_s.وly&MO?|?3xgOS]ttRKe ?~5k@n`=܃ ~z;ZkD!r.Q٧OѣG{{{Էw/F~wMrJwx@ՍI]?dz"ӻ >6 ;0СC={CEuGeݺucƌ aDn҂*婈4wa}\P@H'{țf)Kf(6!u7~[ybg/k &B9qJCpΦU\{P?B#z`ߦhߣW%G~']u<d: WR{SrtW#sS`bNP ryb7H,>ȯ@ASX8MP\U80U%N;udtȈl˔Ć Y0raQPi g89V0.' .#OLM02bH?~GZYne #QG :kj7vF/ rłqL(ٶv:mrȆ5dCʽ\]HY,acB߷x1ĉ?8$}#x2Ja;uX(?WCz/z:븻oՁ{:]ؿ7qKR\m,~+qAλjɦQ BJG0H3v7V~_] h+ R2îo(@UG7nѣ?8iq᪯)S0ZZ|ɹs:hz9p0%}g sܾ:A4QB6*RR [|i?jƜ*ĐOo? )sovm!1-_0}7oº aۂF/r4}e]ǡ$xPC;m"˥ OtUVoxIɬP#sS 4?R2 tA?DK\`p):S Ks(HrQ8T#К +EdnC{7PMȩYXqKI*(J*C슳IXRD\wDpo0>y,/qGbf} ?ᾙ?exCz3Qfx*a(KǖJ>Yeu)h`+G]VP[x1&oT@q0/=a;R(nҤIXR~@r8h:!䪥3:RQM *Hr(MweZ*ЕP%"NQD櫖N=b51qDh\ ;Z'yv/XtzGur},O^}U }U][,|V$XSv խ^ m~\4%)K@H"~LAv!iO<'Yb=sbѬ#HX~'%Ct'uy*N/_oV`p WqMRmB8\{;vL2uT}؀M#Ok.T]YAłR#Y,~g߾}1/k1AQE߯iŽ&*G2}.8Ive oO∬{1*mъRC_*<5!}Z`vL~Nkᄐov6.ʜ6DT=!^ 2d/=O#~bu -+;AI=י>y,z?p!O}?y_fO?__ ?k¨A쿹vϴ𳫯 eR2'Z-6zp^%yfN 9_gCL<.,| < '~IsNuL[hE{)kD@* O7.oS$քFW M+ C¤0 iI{Q[eo=8o!a9{u95%lOae-1 aLq=0{=t 5pHqmqs8zї<\+Uoo|zJܔX"-k.՚sv).ΎY0Quq',Zc;4~C Q'sYU|WWex\օH31ve0ޑɨQ[Qy%98c^u{90(.?fٮ.NO8.!lc8kܺvFE;Qf\عÎ &a@5j(Um+vYy1vFaE2c]̶USc].F@Ta-,}woA-3fQX;m8_O="s6= AD۾'{=l1ᵃ|i{rݕmiNis'yk/>9kMt<e_a^p:Ő|H /wCAɢcBXSwECpJ #8ub*vⶵ3ق\(ٹ+O>~PCp 6`O?5>xkGw,+駟O#-펡cw܁ۣ-iӦ}VVVǁȕz{}т_; sblվJy';lsOvth#?cmC>O? 8;=oN9NhL})_>v"V-pj56Q^GY`xv+>B5b6\gןf\7OwmGك ɉ\Q=Cɫyy]X}{kۅ0O.N[,e^ ͈8ӁHQ$ Yh!E# !deᔦ:)E #HTN) 7QP ~kH=p:UE߮*4 E'_*5I͸!1zI3=%9;2f7_ܰrmRcj{ ݛp몣y{;*rWpsؽhV7;up])n1CcJT gR_> eGxUH؀ñM;Ne0Fk~'NH^GRh8TH=0۹[GrϡIuRQ3g.`_·6݂Y?D rZz4~W}^svA,&B 8"X.s~W6]UF?6{DkFqhܸ,L>\1}_[dȆ-1w8 '~)CEW3MͿv~ǐK QK%+65ٞ{O9 4E3'j2[[akSic7W96eϢٿ%/1zGeMDEʐ"_<Z#P plY_"I5.7a*Ày#2݅:K4MEhA'T7-r/$cD y'ͩ !"!e&᪣W el 7\[b.WG꣈ VW^7)cFxrH]l}Vxɲv+ C;tBgheJ>}pe`AMMMFI{w5?i/ev.͉abcyIN̷X3U+ZYQq 7- OQU7档Zmy6I?ݞ:X2{yɎۼ8;mW/Q+̲ڱ^具ȟ .XY.[lN7&Sc'z,5@*mK NuHKd(TG?BU$[GzփVâ8m=?{OHXX?hA-ފ0zvr B'd;݋W#Q׿1|q?hAՖ=ł2̆˲M #%3_-޿yANYnRlhM^7g(bE!ë'٘Iդ +[e TUxbTdk~EDk`qlM_pTF*R(ČA\WI}i8S'|y9tGLH+\#kCORCK&l4g Y2]l/Z=BOPH~4tΎ6_g\gɂiS& 9{YrO #ӄo/tm]3c7֤pF_w7)/.ί-}[%Ho( ?w}t4:z| QǍg>/Ǎ쫕~f#8 _g>+G'es8qOE;b w0Oj걚g|/s;/F%-kO&|D Ө=zݖwR[Ő^̳ cb2ti52zF}9E)?R:OAu0M ͣn?i8H-q% Z.pdD/MzrQoAvim}F` 2IU9vx)-?LvO÷߁dvl[`֘ 㾆ۥY#ʊ֏ fF]kfHi3ynv-_0c / 棄Tn:c8?72o=-SO5jiY 7'8M2;to0qfkJ:Ўߪlos\8g\3҈eqKy4.!hL8~xϳ8%B0E*2'?q,خ3}-?l^ Y}z .+sdsYDYgCQVDH]c'CEµQ}VcB;sh+b#]s_KaѥcL_u] KCR ǚUY:}0*[S6nX'V{V<4@kvIPpўQViU > IxQ "T#fٱvQ~Ǣzw:x P!B:-:nwsA];G׽>;aAC.Ɂc !gH9Z\DEt2ǃr?mz~{~Kq:g;q_ױ C^{:so#^ >gy6G^gHQ28掂낥*p p;*>n0hGZ%JH`[I;"8Dˌfu̙2i *&jA%4@dݪ(N[ AyUG1*N X颩Ddj"HE7ǩ)*H@LENG Fģ˕(vgP Mta hfr㚢C^<~8bcq'JBkӮJq#={^]\0ZcQve! %yـz$`ObQs]jݨ; \ATWWL wQLe;VIL2O2\o TK! /Rq֗!UZIq~o;C'b׊Y+V[WRZ[P_TY\.7)()7Fr#5r}v=}j dϭuee^BM$)ꢮЧ/?ˋ_ "b ;+)a%!s}&eyd f}ueↃ' NL%vd"b)`(nq 8OY*jSTVJ9Mi*!vm#!n4S+ N+-'Uq\yI`: bJa@/#&q9z<80D&c?&oq}2׆ʣcC( 腑VDT` [}apu/@R[M8ќ[J!G}Ypq=R-1jQv) C jS ؃Ft.X")(&sJTZU9E$ZٔO4d\lohQT;,MFr ׊ђc])vi'x)w VjmK簹"L"9W! PpƉ]K4i Ia&c״vcοJ 4\CH OZZQmՑ7 9iQTMz~0frK =PMMLtT(#bpHFӗD66ͿiMo?&&b״v` 9!UwTA&$x( !(~TʀF`"OoM `L5H>r7T<$H']EV xLiMo17ZOA6pv8/J oZ.8N!obFl#b0|lʪ 9Hi@8V`6Dq2.-@ias$Tɛ8/x2@Y \d8%BΑ%b'foلEcIdL^-toفѶJf!d#MRpr"ƙ!<[#2.J…! nI@aiMo17쒦\On\2}mDC#L8Z# 0CY8W *ÍT) $&zpbN0d\˹$/ U@895i9 +E KZUri:SrM  70bJa mM8"Ld{$o6gBEI/\^8 zdTdhKEhHɾb!`DH:Tl/-02@AXdmLM/ҴvT9e?%)V`Cr)pZ @. 7 k qL #HlbeKF֭hp9ۏA Y|%:]\!9?ח0!tT< 7 B 疦ؖȼT$[.8|¡%GQT'WFWãWJ=@q o)QҶ< 7Кr$#CK9D&c?&oMKelrFaFdkuA{5F'R'o AQGzFvj"rll,ߚP5`WqR@+gVq2 -y r- gUk[kIobW&VpE)QIڊJo ⇪( IZZ%lJ*?qMe|5 IʭQ3Ң:2xli cp8.,)\.1^Lo17Ws i(vo&12P-aV$i1CJQSVb%d``="b* QhфN-u(pr@[*hY^|* 7X!)&&p乖t~nq,N][KcLy'7ɳМQqb%bIPsqM D"-\1kbFBM8Vʂs<9A~( _T[2l؍Ԅo50O.4h!rhbo$QM 6q:4&7^rE5Jk #BDOL 1'}aR"!S%Ua&h*RB%0NCfABZ.b5Neg#E((ՀfB PFQ@^N1+vBVd[Dp"U=MW BCk\A1-UyUN-$5x6Қ }rr /7B(j EFG:]$( B ,Б4ԁ4@8ب+#D bBb 7`,KV8>J!68r-57'$PS2??Dj{绶kA?`U\ j,swi*rT-Z"t7 ۔VKW_G:2.V1nOhaH倳-L/L|i5]?*1=[Ւ1F H)GUy 4 M"b7X8s_elL~&eQzU$"C5@!+m ~:s^D y+Nw*rmǵodYEEU):_[i<\ ÎZ/kI= ] Ȟ\L6it "Vb`WT xa'pZPݩRxSɍ#3Ϳ7Jd?&)Li ;!d0C~oJpR` ?IbUX+P>/ Ց /QrW X# ؒ4/j5Ѡ;o8M7ԗJsDF/V?taueP-jSt ,woD axJ ӡ?m+rg"?'61M]Rz_ai3^ A- Ҝ/$0Zùs(NTU0wW$=j iMo17ŦW\ hUj F"ɡ6[%C6S &P$oT>(ȟFȣ3TV`Dq(XNQ>ɷZBy~`WPj'mioi'Ή]ༀK. `Mԣ_e E)^i$V)qMUdr!1 ba86ӣ[ފ)VpWtT"5،uer4s#3`F.Br˕ԑ@ $u7Ϳ1Mi:2#{P4B7>Q ,hHC\g 7r6TKr"rH#Hh48 x PFQAm3łD[1CFHTފP Ñ(u^_b_*?m5{8z huleoyG}wr_SwSHȔJ0@mQ HZȍTsw-nv۸)P} f1!ən7775k|-Ԥ&G_.߿2۫W|?*ũ.E)#|)u$͕RVᮾd¶sf$¹d*]m]uDsr+^\A)J/IuBwu!*!ʅ11MNpo7z2\M~kr}HgYQM! >zj.IqʿhW^'Y| |jKx<ՙRpeyؔ9MWSUwO.t.Iw + +LqOrq)r-v*pw-B/7 8Jl)TiٕXM/o 7%CgJ]^ B)Mwmi/NuPQ4؊`FOixF@DF^M Tšv@-u 7-BA*2\IOa *jr,|]wc) *,ӫ8ͥԧڿ&RA?0lBs/8,P #GQxh RRȖ3 @ ZIQMUOCi?ϝ>l̈?GcF̞>nd|۲^>{f6fܙ]U,p&EӃ/"d#{W͙1iL>&eKZK-^yQ"D * ɛL+o KɺNQ}Ң#ZPCWKe`KT s+Ir+tib04g1؆( IXZ90O)0Mh&+Ec)2 ?!|_J|A4UajK}n6($݃L76N oGG:Bή/7ؔg8P@讥>NKe8  _n"ƃ?͹&6$rZ`ThEbY :Wc .^ِxJ?LTӬCLߚ@oL j jii1VÛC%P4*Z ]+ ^: GzcLX[M:aWO~[nU*+ueӤp:v-eͯ:7s+aHBT/&FzEz#sSܬ:Ųe222n_}}}ZZڒ%Km_o/WFиo;ùяd%bj"/0QuU'ە}$ tBϝ1i_}ZޖC.W`zgO_y h@v9wsmYCGM/㩯ڷWx=Hzb8ce=) ;}sMUU(eN xS^ ,d.R!Fh(OiPG M$o5xQ%_(MqH/ȝ0 VG`MbA x!DNDO2p)ea*1+WJA' pD/Ztʼn\Ԧa `BSk9JEEՄ*aV}6K,Rޭbෂ `6 zpI !gZ+8| _Q[ķ^W'{=lMi$}-MOߐ6+AۊYh4vyԤ؊:?X ;qժU555_M-XVL Cy͉-x Frz \Ac^&3nMpwߨ'1nX,q_~WbH;}7^}aexX֋s5HmYJOՀoh5?gf  ]HEo8Q SSt٨uչºp2~O+o()T}&bVX- TMYoHˠ3 EY7*(6+e;E e*K6˽xk( o4ܻ䤮쥈d2LJ[ky%E~qSUŗX%HX)|qtMa Zkr ;;6{+_ls,盦3gTVV&%%555uRl=%%%F#@&oa3 Ұ:׿|rGeeet^onnNIIV^^^VVfԘYWWgԨ?lwfiן*6|m랠NO4 lS <}py^47MY+r-1v*58 W$==.qP axَw)]F]Xh~RTAAGp=OCy,e#NϿ@H'G!e ~iFqu-j'滗[*YȅrԻC}UE=ԈI9]ao|3͎TG[99' /H  PR'i 7Hڢ)[1{cj'c'IWQ8_ 0 rֆ79 ܀,߆@3[9?}?!{'5"- ;у|䱃kT:sS5!f;X}*H}é۵q?"/ŏ;g^}''^4vۯ?sOxoS#ƫc}w#ϟp];ݒvjʄ!LzǫOVS-g`?>x Ĉ&yԨQ쒟|| Ę1cy< 9::K۷9_~o&㓨ꩧ3lݺUӧ_ԷV.}~gwޭ+okkK׻˙O?tXXEP8aGG}o~~|+Ne_|=Z5t:sϟן* _mڴ_}gSn ~`QC442;dES>[΀/Ӗ̍wƷ 3aČ_~<(ۅfN1Oٹ!ч x 5BQ§VK;Ŵ:'EPwV*ݑؽijȭ(ž-:SPXXVZ RU<2^4 C8 >Ӣ:G hN#bС \m3SؾnŒI ?/bD?- >1aY?Gp3[.S̿~_z7LU+O?wg?!31+F!KBNoq\MW[lmJ̦Fa=[o>W8cu2 '4{zg=cl?};ýgw'9عOlҥE} ~k+Uʷ%Đn]ARv_m_m矽&?(BM+`b~@ܚ(]դ[Y` \.)ϰ]r Y1-P@kgE*O1LuR$)yDy*5M&27G"uyE>5ĉ Gޢ47y6cYWzѥ:ݛ,_z%/׊{v$YEZna^z-Az*Bm]7hQD~f⅐uםC9֖"pr~TmILJo}CaG < A۝ڄoN >'~;!:dUSׄK'>5po~F*Ջ'^td}yǩ77ow6M%?c=߆>yxoUcر7n|.\6z'x3ծRtKbs;oSLCO?m޼YC*n6 }{Gm۶mo6܆wI&*lL63ӧO?[o-a}# /vgBzP^W^Q" VuDj|ݙa`'N yCDv /eTB eHo qߠW__0m USXw&qoyV-[V- V%-ٖSO e$pd E(q E.o9ݽOuw,gߞTuUo[y\2Y+_j:F>7|l5D"O+FZxmב`,fRn~qM;vMrԿz駡>{yއ4e˖aYgų< _"gZe|(!Uv;33:AimR>(>ЗSKK&;I.er`r-tH-ZF_\>7/x~\wr CnUÌ_UGoz q]\<ҵ(3]㨯}p ĵW#/8'r,_M}.1Twm7^c޿sy|?{ƱZҌ;SqKSQ'Hw @kx(swN%I'0CM`Ȃh%cT}=|#[KK<>e:?/\>3_G ܂9Cz!_XHܑ$?m96 4D@1Xf(>4* .Wռi%C%i&IKƼ5"/*(NkS(/*klӈM`T 54Ԑ7"U G.$7AKX~9-q&F7s^xΉ!FD6ۮu.6i!Γ_o~vQ?sN=m*Tt/;)dx.);~q|4pU`ޭ$sVIiq1ڗ ~|Td>|$5q\۶gY}17g74o%FUkpG_ ;蔣Ÿ?^u陪/<DRG^1.aLS~?'xB!"xuQ`Z|ǘ׽˫5%0`W94G׬Y2lPGI\D?KQFGr̯g敏Ueٵ6m,"PWx :\r3vOԬzj퓵ice|tH CU?*~!&!Tf{ftd ~!@M{ykRtw5}e?:x~PGzwǥK.in{{y%@i̚(4'Ϯ: |?o'MEݿGT>1bN FGZ6=̈́~~[_hMoS ~;$?8?wSU}_Ō5{WĢ)?s} N+<7>i@3MxGuL3` P33 ~P#o7Lyv ƒi1`3-'SiQ/Vaq )T76q8c Y.7ޛhC$ &A^$SH ?wϒ/Sp3x=o5Ej>Vۉ5~z T.]L ‰}1giޑ85n_މ_M5u'}_SЎj)o{Y'%%W!:;ۧt/~"O{7vMO 2޿q7Ɵz[^zw`chzN0A-b ej)3#P&HtjeJ0EQN/׽߿I w>߮uIKskMBMW7%mϪU7sÏ!xXHkq/ߩ^b  AKJ~7ȋwU?n[xx/.c3J&<%:wl_G,i;?ܖE#h?y#{QX~p v60@g:8{M{:vw=SȼW'Ew[x W-7{bvXĝmO~>_ &0dgJ]}-3{ ~ޘ"1*؊r}h)'?_r|pS1He@#\V2m–3ڔr`mo\7Ѵ~5ç IޘHɷ CtP Il1-ē2O64d47dց̫)iUG4X4įLTÑ:j[%,ս{Pk&$P_g>~n__/IVlb)D>ȭⴭYq ?HG龖<̔٧άu/RJ x7}4/~?c?Eyruݷ\sc+k V勲k6>Ԋ7svO M{wƄ@]gzӛޤS0a Sq (&6{Yɬ\pzSuɒ%J3rrLc܃`/G=Ϧ) `T>:)1)Se~4T& R0ސ5^y,N7^tAضdMu_S~hg>SѲ{ٵec 7*ώ?~WL# g3W2ƥ[~q5c? #~ntTb# 8A_ ?X x^tE\Boy߽ewQU=+϶yQE 1q(!>Vz&W_I3e΃\{'Gsu?LC'ggJgg_Xyeoz +]#9wY+#nU/?7x3+ 3,|U+oKH'ï㿾x ~~uQ_g}bmމ__,;~M.Kfof 经KD9(}47A+pU8HΧ+}.\7[gu=!۝??rLXx+SGWogl~DwX"Y{ ?d{ʦM3E𛞚2>Lk`v\<o &/7a=X#+˒X. 6rbed@jw.b[S֚O򴾆|ʏtO-  ;3\zuW;WU<-ן_x엉Fc5_[.C7k+_}Sf| F.='=~.诮.~#W7.9wcLi+7ɻG~dc7?߽}S]wv_G.F‰zrP8ٕzoy_k񎷿e7g\…w*˫z\2=_yi^` PlP7 Z+^N~8II@: auccСSũ4Z0;80!@5 Ӈ)4) ga`C'PFgCrD@lG>TQSbGSjn-gB _̀;IY&q!TI ̾0W<~7$2cD`pǺVl_˨rq-~oPk΋;0#\T՟,^WW[GԽwU?7w>&銩zdU6_:2e7? ~tBg$pzj\zQl|Kc|}KnΌo_(bCY,@A\xdDgށ}9IŪOML7Dot95]>@M2nxGOS 2L*$@`H܈4͗@8Eh$Sy Sbg׺wo)&?^etg> ܎]s1i+gg3@A 0ȳowp#bÌ]LڕEb$OQ̨e}Y{s}k{j}ۺ9?<0(~XxC7'A>%U0FcP!.Ώs@G4O˰*`Q7?G*uL`9SiuRTRUS_q_xc]^Ɇ7md\x]-T?ڰ^}ɢZ^R+ @t6_2BkKܵFHwPlB?Ԓ0UCm9;k+aY6S߹ꂓ??.<̢m{3/lsw9p%3'VŞ'vv6}^gjgsK$㋙(S?,i` m?kQMLpp-$z !4^ [^т0e 7TB8ئ0(7@Rs1ah1V(*#|6d o!} 3R'P`HLc\k> +:8LRdHtj/V c#LMLsFMb`e Bi)z*B'M*eU`E@4D&ܮ=Wax+H"_Ғ2?b_-o/ǞWd9rbRgN)pzon?Xں]N'Td?[>GD SZB(xƺƚ3usR\~O/5ȭD\wvY kd󈟺WR(/T<#s_+4^Xh߿ VqgxՋ3=p8Au+ږ?e X[axa@& .RF&,L脠(5÷Gn "tjو+`$?%S$x3L&l-3SZA5,lb8Ey,'St>+*TNRpڹ5T m+nٲd~dŧTFӎ_o}gr?<,x̙?|(^tI'{'H! AXY?mz;zI~ݳh4xGu1g"4gsN>S,bQ|vo]]vٽ_diqG#X?Pxdp6] zSe= { \&%|{/rL>K!bgz̙Y&fr'M:;%F YDYNaW~ `|cc.Y WO@WXۋX,oJ4Xa|C5߀@Xa1 jykT}&߰.ʂӘ2h8ĝENqHo5@P\Wȍo%,ҫ%M8OMojT5?{IY|9?aH@:/@) Y޽)$1e -]Xذئph%o sYoWG\/Y8\F&o0]mي]YpddfS/t9Kv+Uߘ  S ;jKZ_n7O  (7X$H` KHA8q4 ނ#Ɵ0?wG`,:~B(/H)LqF.+50w$B*79t8+dV(!Έxd#iPlV1yJ*8Y.bC%\r`)GKMdF J__lL5\_&L9epf:)~c \:Ki?FibhAI2]<:b1&>1A+d 0P)m%[M6BPrl6K,-/ ߅u7W Clwz|ڱ#(N:` 0/a)L4CO!R~\~AH#, 45d4Pr,oS %:EY9_b? *`aˮ>x_ @dh XJGb/Ys'ep1 DW9̲%,ƉVeM[/2&Kd \пoA>!޿?/pN5l 7&Occ!7ɑ[:`StWH:]D5ւ 0iaGS@ @!O7nYT'Cq,#qȱIp Tln>xCf8rJʼvWb|ӕC]^E,vД3$NT-eX&&Aw(iL56A=ث9n WᣘAAAAAAy.  MIiABo};3d2缷H ~t‹yM{d fu}$*YDq ]~k0h h h h hi&ޘ*9܂sW噹Bl_%Pje͹)@f<1le$B){+4ozi3Ào f*ZTM}fjԈǞ!l9YߪK kߦYŞS ~C/!Rf9˛JE%XKMft i\?q!!o E6\!9 oa x5np;BAA^<.s ydʦ|6`%H[M fL=d.E [F9 (x~&1i_2?uJoX]f3's h8X": jjyo)6˱ځx#sкRH9{wg;KPi2 Ω ]MrLl {ğ纡=ȱn,Gx汎‘|%F[cZrG ) - xuhmbX;Jz*\TfaJ1 H[!SMğ8&3kXn,ASI;@ZY#r g[Ӗ&K3~^Aкp@n4A@k6/S8^+8ď< &Oܣ.xA{*Lqy3Hߘ tbc] (PS:Д &(n=N-r۫cwyk #ᄦ PMQ p1J&\"/Rb33r:nO.b!61~1w1KU)xc r%0EXԆs4~.ԅSx7ay3s wӨq26ߜ/UR⧬Q"OLmz [`c^Үc @q YblQ_aM}7n9 9r9 - x5`z*7p8oz#Gjc.w2׫y3Ƙ(5Qm{V/?@~&pkfTݦ@;9ܩ ٱj`,lM6eEmL%4FfI5QnKuvs ic*oᤴ1'9T2#mƛD*Ms7k9ݦ1N&Gpe|R/_i5O¯ (ӧ}Ikv*|Cݚ)0页'BD,|!T@=e)C+٧2vKˏT]9šeU[]Q/De"ǁe!o#yv: dJf7ɭݘѐז?D9Xo 0  M='u,cuAwl[C,z$uLdހmm&:#n:0 f8lq 7lt\]%t@a=7o̎"„1hO ^aS*f2vULdC&*a{TR4")-/O*o$zPW3r*l{;*Һ$@[Q3fΠ;NdjƠt,U1#"2z׏1!P~zڵjG۫/无j]UzqH_)EIcRڿ/ӑpYY%B|gL@ ʇ@تCog~\WY*ULSG)‚\ 8 A~y xo{b.1Wfa!)&jɪє;؜m= )M͊o ko 7m ˛Cw_N󧺁֜TOMEHHI D+m\Y^o0Tvqed \Nȃ${! %SBශ*`FɐT"<.B`ͣL#?4안/ͧ#vOsJi-!ODƪHJFk4NQ #I FjHLĔ`$Ғi[T̄#ug GhkK$=ezaFb>)Z>h[䬉R}Щ$|4|OkKLGT86Bi%t_g}VcTR_Vvh%9v*Bh{`/fm0IeH?Nk!L̤^[QV~qZo@DĔcsS=#.a@B𛄎V9UG o$|hwxI2ɻ~jl0F ," $i{Դ7 &DTwLxsNU};VC$1ʱBXSDK.U Pm6r 6B D(;P`EbegR޴CM0ʃhMLlOZ$n,8 C( TZ,8 M0͐cu, ~o~k!,dq P>tHiTD~~9k#%bWOgEtMU,el@6$%LZ"t5҄gIBkNk]& aP>a2Y1U"giLá9#77B*a/7i&</hd:O9viE~mE9?sZT6ٽ68 {cHB>aRy?|0)kO o%CDR #oI+UϱSFhi<xulcz~7[m1lL{_ô+ oX V2 P ޅJ/p20SDm:\v[ ٱM8"Z2 ~ 3ԐX86ֺ".w3Uޝka1%zj*Zqq FXDgξUV&'+5Q,oLx|/+82M0`o&IjW9Sd @-%*_C?!"Ks"\s|+U);PZzU*:~6'^J*_rk2&)ϗL%~ SZ,q9v#_7Fi@({˧ y6^qpD$0R#WWK8I+rZKڍ֫_vULo vk;Q7X!e{0%8sކx׃-#y,7na;`/[~` W# X&nGg@cUA `\׎u}{A F=2ئ^LvNɡ7icᾦB>ʼ2fO\wKJݵ{;j8'L@C>YP¤zIVmƢ`k`Áڽ.SoHgkr9m`wѿ+&%9 ghg8YbN \ߦ.>nMDI*dw^Y2NB SNZ`[lLpce :BV]z0 ~&:1NfM bٍ {A8 II PD̜wg:e @ y ~# !@`j9cВ Rbv1 ̚7ضFfǁzP2Oő7@PK~cэ]3@SdANϹa9*FdYPzkikgӁFTe"aI<&'Vj6dY߶sz,rÍ>Bl ^A lC:h h`uZX+{ MLk) #,=evC&blL~| ޺%Gg1|lAh.8xc0‰ xsn2^$1^039 -_zW,`_ X, Klܻ.~*Z4M] 7t%&B(jBJ5TpoV`Ģb.Qh$Xn "5ƺ M V-3rݽD.m#&Y+6ޘFp[0vqES*ցJi9&tȍ># S<$0^b '%zpF2ctS )t vE|ivHDaq ;'޿?`<׎2z_?3?n8%wjB`ojX#U,Q]<&ќ9ڴnoG6,NtV`TN%6:X /x3[uWmQDfi&i ad6B19ߘgL sΰQzB9%̾ Q`e-X*@!XOUʹxH56A&M9ce.u;SLqn.(P5y18~0sa O){P'f ` "vYcpȬ"=+*[oDd_$+#4KtHA7f͓W&KclߙjMc6&XՒl-r&$Dqэ0K (OfsMIBi6NQLWsqnM rǫWn BAKg6l79jiŀ,HlwߺQ޵@Su4qa O7q B@30͹A_~+(oL`5ug%UO匶k]?ٙtU#(|K\rXk\VO,@'I50P ,)#pP}j|aS?Xf7h! &*vꂦv 6VA+ȤEBa w'Fr-Lk?zV ͗W^R_Ɵ00T?7)ܵ>+1VmMq2o2 |֬y*[_ށ8XKYlMumdQDLg2-@aWj#b4Fr0ll#V5~qNFQ[_C6 $^Ŏ (7 @Ø&1AC̡21M݌F }@[#o'>K0P-LGaj٭k`jNPm:buX> ).a6?=0R=[2-)i{1'0! }C`v#ëW|؆i3QuS>*Wl7 AL{S)h`}&V8I1"xWid;4s̭2uJoҌ~~Ri ToGP@5 `1៰G1B$3Ӻ|x FF) ߈KUmLweo8N?DA?2 DA?2 DA?2 D7o @n8Ic!c <1NAp{~ߞ $;t7Ou--| -#=+ෙt~5JoҌ~~Ri`( HߘT,NǎE"7;PٍRܣc-yBP{v*T~I;!TOXJ?9r=iOY$#+56mxN xlDDbXcđyO5<?M病Lj ^z ~xa/O)*cI)䃌")T-<\IՓ"UW(j8 : &h N MRvҟF=J*hhD.?% SC{2|W6*o?T?43:N=dDD,< SHR"'Z9t`kOg{B]V?X@k߰±pNf d'+b-ή"l6 ! &ߴ@8JۡOD&7T UFswrJhK݄h] [{Ur:9A?6lx ʙM9A&KP`#duyh1tv2M~P '! !ԴӦ"Jx-0W /(-Nvvaa2z_dVɰX(t[78ͦĂc367o76Кdߌ; 3lI jo~=i,pP~oOa L*1%𛯬d=rff iVi=^ ʧ 9=6Y?֍j1ΫY?ޭ$%M?߀gpoXs e,۴57Y@jb0xVg,LS*m.7?m>zЧ#>۔"R-Xuѻ?Ӧ2*MSdLIj1O[>q ZA?qo9=ocapokhL l.M,7R !6bfiދ?8ʏafIA~ LG?ڷ.PבtJJ35 {7|[ ՝ػuO4eoxK18%럂d4>ͤ0Τ'ѳ>Pס]΃Fn޾=YP1 c:0\~|fMV"o[OYա8gO gv6ෙƐ6?zg:>ۡ0yСɮ2,o1QqȂp&Z[ #Bo/Ԅp9eF9q|lo3)1!5JoҌ~~Ri`jXڝ1*ZU$!*  ^pMo,5P~!7`y -=lo ta||o~8ZOC9vOrVk[9 8O6IQx#[U\6R'@@0g4d~U؅e|:Z摄hmN3i7b2ƁP!rT߯;6&-r|ӘV_ޅqR `k2&E>2)ǮŔ3'Rh2N%(=2zIR2g}jQ*aF}3xƙL6RuoVLh3SLHe/ĘVωe2~!*fkqL@ &c|amTf*(Bp(?y6Fb#M5em*?ؒX!JXUZ#_iFkM"}Ò^%"4R9XAeⷽ=/0M``EԞJ,oZ85 ַ'8 (\%Gv8CA=f2JLqf)c 0R_NR#2ZB.7fRrpVeD+MJ*UȡbLۓFƚ)NY]Ie*9΍&Y!McgjS W6DŽI*gVSƱXiv8~9ƴU>_Z]Q2UF[b՘JFuJ/jPT*+""cezq;aM2ª%'|OT{pXkU&(m_^+*BX{Aq)_`x{1)DƻJr1$ ` Są]:ؘMC$nS]nl#Dءq`FDhVcsw08J})=03'iicjKV߿Jeˆ?kuUJUF/id(}T(11%f#c*adZ_ &&cWEL|6++_ ѳIe"8NJ2"^`2Ɓ?; ]2sU4ڡO[uGX9e嘼re|bTH*l%Y,e(ٿHM [?̽:mTYSL~TooS U6#6ڜmid%MF9` ֺҴV%+.mXf-.r|}Z_`nH~~ZxtH?eF6Sv*~C NSrsిa|Sv`3U~Hozw37Gfړ^?2zjMg:{O9cw'׽iUz:r^< _Gx=򼒶6"cw'Yifme0=54F 7]yA0^O%56oSKbyyQIBP\oz9fK]I~~Ri TQ~OO* j(k\6dU 8OqFM]G)7x{ ~Йo8<76slm=}g I7RiFA?A?40o}Co!x!1 Mꔕ0Bi o8KvLp ]/pi` ujA?A?4F*(?''^}CPVO%6?`p[xNMt xbTgӎ} ߀j66o7i#I4W/j)պ׽o23Hd0" <$nvq4s 1H8ԎŭcYTFxOچzݗY@6ژSic`jFʲjn`x _PFƢ 6M󿑿͟ŝutđ׽[1=u ag@mGS>OhcFO姑e>o|rLK.Ǡm.VFc3dhp37:HN^9yvo$6sO姍zm1#}Ԯ +Y^a]VOӾm!?[[8_O򽷯fS +Tn?dDCX坃omgvH}&y_}08ycm2FaabK鳢;|сc 3[v#nAE&r2̒b4lJsUq1c[IdU.6Dp,+J,`,K-\qvSJc6%!;}uwob T014M!բwmWp+$f$o9[&g{4%rϽy={JZ55?l 3MôG]e|kJf/@m6_edHk4sXHӎg Ňx:8n%gU _v^JDp,o {r/˚%PG{Fs/gFƟ"C5}?lM;mdaVї\61(G_4 ;p:|Pї]e %zFf%zr P{*Xi+`q8:q۸ޛZ6(*Kp}lklS6lo=VJHE_KĦj"{bPsYm}u@aڐeWTfrɊF w,}mtHQ1zqhoq,w.]`lj+?!YOʲ{RMۻowW<7>c\f=366>͜L*TVA%-}=D~e-V)r[ \j}J?7.M,)iU<}bFIp̡,}'rژFxy.l"8eqI^4^FS/6"N1D3 '\m"\)9OdOʲNʺW|Sz}7z<~ov^{yly5>¸Tt#-匟Miʏh*?X95~RuIޘWs@6:~::fa _FWg6S-_b6Eds_|CN\Sز4Y %}KƏlkb#wQכYm[C)&єE4*>1cc6ڠ#D_QS1沶tK6Ҕ{h(uy<E[lxb3*4Mtrı2MFHVddOFHV?):#L9W a lw {-ۧy;]F7?em/i;]*u}o)(ozȳFl~74zkաaQ Qѯl&BɩX۠S*3Xm"2s+mhR$w_PxT^6e#˝cc1('*3ddOFHVddũCܼG+-'s{4:oF$r; tn3{/vo?y%Ғ _C[v֦]omNyQϵdxjT_mgAO姍zm1Szm|Y {3\zIvsnttmvō,ۻmVD}F(w[~}p-RS7]ߺ/j;7YnsZ6fT~F3ީF6 byS67֩gKI[E߾ۺwr431[}FڶMWwxZ󷶳6~R&_\'@UsW1P6fT~F3ܜ!4-E;ogoo-\lsxn°Wsw,pd?eA0U5؇꾄E@4Kg6y.Z=S8dY9#c `v=[ԓՙӵ;'G[OF,0?},plok gy'p噚ujkvAcϾf Lÿ5D5\[&ryT\Go n!)FWR¶>p4y/|Fo'^5842\ VL$HF-oxC#e E?:bQkjɢ:c >wmfH`Md+?%'QSlr$j&C6sK]p$o *n7 ,}p͔n);>-~z nmrkthC^x"Ebnl Qk+/ҿw Z@ >'3鋧rftS&S``ⳅ,MPIs5ϼEeOm9Xo^Gxf ;oY:0U5a-RR Z و!5ʜj&i*-ļWW~*?m rm,kƖ1;/nOD"oL]ޜ2pP`7H_c)]p Ge)CmgmH}.,sEŇ˶}::Zn+e Eh;# Q Z<}26%զ++?Q4beT4 I7^)Dg^ӱ/½ۺ^Run󿍗ЪogxښMb>gT~F3W~*?m LPxyJ! $olon.d<7^{yJGj:HۙR_Il^>oW琳jW׏8,]DwPF`8n(Dm6P61X+?N6j*Nd+?%'Q35~ߘM7ffųo cae^2.- S9[ʗco|yB6}D +4wis#׏8,]d2qF 'zl1ZqʶQSq"\)9Cu4 ki -}=vrn7F2ScDRl|8_*բg[<"2S"}* _/|c*ǽYXt 8mf"jK acnH_,槱V@aC8m(!Pr8m Юl̊R{91[S 1VjLgjF[m-[ϖ ,U`ߜϳκ=E]na<# J LWynH(pV$DAb& ̮)f"^N|5VYYmLEPiAIY#IΖ#{ GS ;^7_惃3)s#mg9' ;tʥtm/g꺄]0[`0Emi%gF yjhj~t4 ԥx߬moA~7A8Q4b ,n9623oVF-16߹-iaz2v{u7phj3u]B.-sEŇ˶_~l:jiEqTlDƶR}u@M-fl 3h3?m~ѯ"gcl;Z;PF+"+06c̊R{9u<.6 Xee1B姑+'eYۍ+wOg߮ͥ{<0 *Mi^ޮz][`1gER-ǟt5aZ߳tZbYT87`rX*0||NیƇ&q,X PFC(0RVvMq1+K8.6 1FFCS( =oo^ͩ^7? Ng0[j _7462::>hƳ6oؼ=_(үy:kWuS0PF`8n(Dm6P61X+?N6j*Nd+?%'Q35~Ȳޮ#yKP5xpOL#:k4,*ycOא/ټ.o}_(үy17hF#׏8,]d2qF 'zl1ZqʶQSq"\)9w?\8ߘOg=b.,,7,^÷p4SvYH^xBE$ZvH}6*?6ƌO#)gnÍi{7XEe*Ggؤg8 Pj#mcccیMWVi3 m%bQ6@ ͯkV jkj1wgmcѾڢ-{hoj+?!Yq"?):b&%)0HMS/Ã7^tpg|v!ɛ67K8#,k)Vee17se ֨`({"6HhZɦlZWbώ08(3h3]m~ѯ"gcl;Z;PF+"+06˘beT_es(_oٖܦg-?7VGF(Ljl+Wbώ0 1;wp*Ax xh:ƶձe4 jA"kYmc<+ 8iˣ'jJڔDM'Q!byٷ;ҋCųnkmo76 [H#vxZt es(_x/U2}|Sg ~0ƦwGE_g̢¹AWtSsf 6>4y,cdYƢl2B 冱2dBkj}s\d~UVMI^6'*3ddOFHVY}wv+xuηW^|CFF7'\󷶓;o}(үy:kWuS0PF`8n(Dm6P61f?f#X(l&*-w4682i +6=cnl_$Yo~qkl>|qk=&}F_󷽇ߎ^)hhh}fvoo)'BRyԎ ><#׏8,]jqe4 F~ =c6m&85vѩmrGh܍#6qݰ"l3ƶQEe[K1lx;o)y;nl+vnu,oyޟmk.mkwWn-^<"$H.J]{? E?C:bQKlG~1 S!},s_EbX9mP#q PFCh8d! Ю>BYUѾZ56YmY4N#V[ņe[5{uokV=otze{1xJ?Ck,b*iwٔmU}Z0Z̐$fm;8ύ~ <N<,ً ;PF$f#/M廫΋ goKGߤ_xPmz! l!Eb|ruƬcYkNͯ"i;GjZ6cŶ8**e ־kVz81o G(+2*WV*cΌ)zXdbò %(ro~*k(,&楇?8:")So;yiolݰCnfJmWlówӌYgDPu~~a";,?4 m8cMMٵ㶙 8 qFJ r7{4iwrϘFʹ Ɵ)'8ޟ34Y iVG%ycbҶ-M3'o3! ˿B7^9%m_=A>OhcF*1󿱥Dvmk1MGjk֧YDNf_b߾Ҷ;]pie0@m&xgQ]rqu_}p.kS0 ,?4 m8cMMٵ㶙 8 qF(md17Nj+AQogw_f߾]{v76c`^Fۏ˞O?m 7_7&ahhco)XS B_G.Խ!4}) l,]dAk0?+hf<׏8,]|,WW١?f#X(l&*QɃgt:1fMd,UXt ,FwCoLD/O5o g_Bkh~S6o99WI]zfɩ{- E߳m%6jbmΘĔ8,m~Iec紱V@aC+His^6@ o#t8M,@be%BWEjPPde8mXm s ˶j2x̎v(Aq{SVYSmLE)ei7?e#_1y:RJRu<_~ i)m͝ώ@;ںW55 TiXLƔe{id!/?33${"6TY4Nc˦l:Fmjj1dG>Ab weqp*Ax xh:>fch" 1W"kYmce+ cn14 G ;h<1VYܛL0?>Md#SEb]Z~!/L5QtĥmKس)oLY|K_9z=:X{ka2/ӘIen(KhyߎgX[!1$䩝рP*~YRadB Uwmƥ'573D~RŨ4ȔyxJse7N6*9Oޭ3<KhMΆ_o7쿨7A5p߅o,bYiEɟl&BXFcjUé̓# Q 1;<7U$ 8tP}_$DAbƯ|EdcbPW@A5ch`Avxḇ!P<7K`~2},VF&]fyEvݗwXŞ47%x+.#Uc;^%a#s#C_}˨X N?9 g*=C'',hMG-Pk=mΘE~:ȡjX*5}Nki6>6(`%f}u&]SkK,6(ꈪ93T̊ g &k+`YejdYgs'! /0 1 $oFnyEҼ=j1/vEDqi\*JޜxEE$Z~8Շ߲˫#4N3fAuS0PF`8n(Dm6P61f?f#X(l&*QɃgt:1fMd,+]gI,jcIrFG9\ǞeY—<)8KS^)W $B~ l܃ƫ QgP}p.kS3PF`8n(Dm6P61f?f#X(l&*QɃgt:1fMdG[nqpCJގgY߿1y/6 o"r;7d^+~V81JHH;SycT>g?O:葫[<"mS>?`YKMS2a;njޟ)nY c^4Nu5#gO u"ZPOYKCqmX+_J{d)hM,6:3dA6c̊R{qQhPqhrh*AQ[^:^M+gO=f,jc-t<ecj[YRYIlrt37j3!:KP DYjX44 {ilF7Ƭ*`K({id(Z9Bc&neOAiʡhG_ף;mc,cjn]p]$MoN{: s$u9UH WƳ6oIfc~JA ~-,|4 mDm6P61X+?N6j*Nd+?%'Q35~Ȳ~V ;/n-m;KM߿)K#.7:Hۨ)2-kk6֩GR}u@;Pd%}e4 &BNfecmD6JSr5S'eY[Ki7򷃧V ӲYow /;7,p4r!}woS8DW~*?m k+?6k#eY?]ezw'w,@꽽7FG #%aY|ǫ0FG߽}mgb૽!{UT1P6fT~ڵAu5Kҫpttvhܛ'3}yo#ԱRClSvU?5v-qDWiT~F3W~*?m |YU>b»o7vٸuylc֯n}ە{gwӶz77zS}tvoB۵6~6˯zWG@6ژCvx |Fvz[ooo#iTo#m{zLږg߮͑ѐ p;^9X{5b}t3T1P6fT~ڵAv4!y[z9wvlλYE_ 7ۭY|@Ofo8}D Wr<>1ǶQ,NO_,,+h3N W1S(|,k<=s)lyzHޘ؍@! OX`4 d/S7(kx $6bw_1 BqH-KLZF2{úaTF3W,> nrJ8ݭ} c&.CafjSr5F),k=odk$m{d,0%/s3=RJgwl-rcϨ՚M"g9z\g?4`ү-m&=5,[5L[[+dYһArɡm17G)تԨm.,TS(T~igvh&CF,㕴$=oEys; 2͛Ҷ*ZpXbFg1Y\|\PI~,]yBWthdaG l좄DأAı^ ǖ2+9̚7z1EXbK6RD8ǀy[^imghz::zjj}S}K]Nd!-vio("YWOcaXՖ66Pthۅ۔m8vF(gTY 6FѦm$WD6JBjʀ7ޢ-uv8Y#m>~94^^EHF?蔿stXSI~,]' zQޣ26YƚEr-6Vػ@É8j+ZhF_!TXɊ_$?NVoj)MIzO"Axitשǯ<򷍅5ˮ5yr|*8a姃zv3ԽC]K3>N1ĊZ ^8|-}&2˖~nSK00XVgOz~{i.+D@[:i.o}_(үy:kWuS0PF`8n(Dm6P61f?f#X(l&*-DmF@4Rg e0x!}U2f;#/"a8:z[y}o[֯0 1)Sԛ^IhchrXJ$WGȽ:jqqǮrQW_G<qXqe4 F&BNfecvm&85vѩmҲNF}l4 }pM#uVϸmoƓ=mizs3~(umm7H|;\}웴˞m=`) 8)ИM%K"6ϑ.K i4Ͳj2-cE VOXjqqǮf눧;#K?.fhqܤQhÉl"lb̮5TA]GQ؎3:MTZVÉ6wCP<}bjmҷmmJx-IҊt1,C^~;:y&),)|7ԗ?ʱlAWQ,Jf7̢MvQt@El҈]m.O]`~#W6u@|>O_ Y^n??E{~{뗿0St}7khs<`4 9xR:us{;HBlS f%[Y`E~P]2P T*2_|fcoByg( OFOn=dLwY{5#{b UKoNIƖ6gqMϽ|ȈB?[*D(G\VV>Y >p4(?e7sG~89cG7#ү4hM6&&ZCqLqk8SDe5h}8?>16dYdkJm/RL(^ϲ-,}<{xp@ BZK|F{Xf#|/|‡{og'AkAgsG~89cG7#ү4hM6&&ZCqLqk8SDe5h}8?>16)}Dv>^m{qnnl>vtBehjJ^ϤoXv6[|^PI^#8_ ɡZq~~a";,?4 m8cMMٵ㶙 8 qFJj8nG(6Y9?olto7IPwǫswo.1s/k2m/o ! ۼ}qg꺄MbWQ_-4Nuֺ눧;#Ka?.fhqܤQhÉl"lb̮5TA]GQ؎3:MTZVÉ6w<:FNiAQF捜-ȍ##ycK_|goz@oO`m<"oWk3+ rp"y#m#a#Oヷ0 yٷdt40adchSqIz;:bU0Pn+?6ƌOhcf{GoJxIzsdtl K3;F'1ߐco1~!-p~Oo݇Pk@IT~F3W~*?m k,5>um-R5>c{4SzzB?Xa1no4}_90]N[YT/}[;>CT~F3W~*?m L ˢol6ƟYioNKc^5{5^n.Ӵx -?HjvmMS>OhcFO姑7}F5)SNM.og+;HGJv<ޟ2 +/m~k$|He&Y{ VhEGtdU.F+%ցe؈5̊9jKUiAQ NVGͥ|#(x/5T%#KOc74a[?$;[Q$VGpRq?卿ѯѩ5MGV6FpsksYeqX)EقZi/e&,qƲtUl(dk|\G7wem1rfB .EXTA~cs+%P-5t<5T4 FZ7E764[ɏN%#sFF/G[Z7_ϊo=z-u|V/T~PI rt3})~J26vJ2ʈwj>"K7}4/}Eޭ29+F3Ic_RVnb~*CIPYm$8h9qQdsTŸ ˋl)jSr5F)73eqHMJw#Sj7Z]x'p ۯoōNcNG?! ,6w\");o)XSIrt3})~ʟKklXo_QoYBp71;mĉK!3UYc5> بy2ƶ1N)lc4XM)W%hc3 ̪"N4cL6!Y,lMȩ>~; C(y}V綞HoGlPO~` -c _¥Cj[vXIrt3})~Grf Vn%2Qcΐ b 2F(}Ye8.feі1[ 6A]qYc!*Zc4UjV8Sr8.US(T~ir~R/+~GL,p^C7s3}qz󍷥t1 +/P?%KӉ|M$jGpRqT~F3W~*?m L6Roͻ뷼Bm [>X_βBm{z*ZL<ޟ8ON`Mr@fSic^mH_10ȵm[g Kݴ)N^e]MT9eN9R;ƥ^*ۇi۪R*5t+fh"rZ𐥷fjeXG #XZ~|DGQ||DGQ||DGQG$fg!_9d%&a)UI0H[|c%4#76IBZߜ`Hp)We#I+DֵНa&\_w-Pc.cLGW#Ѡhe-bp$fA eE ֲݚR6%'QSlr$jZ~ȲΖ[cm7k)Qp=o6=_0xRNOݘ?d1=oJculгT{-gkVh(M_ cn"f75=Vу_-#PY+cٴʦ-Wi쨰騽T0 @u09*3wgf16֔q\erCHDe6lh/9YƢ}Ր}ilZ51Kl *k־k} &c̴mc}U6f|&wF;|ϖ)=op4u1x ԴBJKoK|Fγ}K.i讌6PelňlIS>8[:zl|<~l6Pkf"jhl_jMei,̴E˚RM0e㍵}Ҕ`ZCi:|@q6j̄SZJ%6g/:Z@a~"T1JqFAb\"2J(e6L۶-6lXee1B姑+[1ߔ|KK0""=o'$r$oSPޙ!#a o:|&b^.˜cmGzqMfzlھMݏ8/9FG-6$&VW{8cSh2_`-;* n(JzEZ26brV]bv*ˢiYeM1B姑+3)={r2"';/nF f{LS9W{o2!?צ7县G/Wߠwhh~,g6e5PS=k墄mcs+y0~@X+{l:j8*/f"jhl_jhʌ}YS ;69hcXPFeC /99(3qX6h{]jMU*cr 'BaTYƊ3"3<{Y+}1Ӷm e4VYYmLEPiʩCN?1"oKӴB}W>cޟzso,} ng3R `~ā)˧eZM[mr׾:QQda`ChPwjCQ ,LUGFURPE 6хP86lffYѮ;pѵ%.{cXc)9,CVĘ!6c4Wc}5֚UjCFc1f] rڱ̪M3W~>~x`m?4s>~T,S^zSF~8ioN4oߺOɆ5mNƌOhc;ڨF\dY?el0040=> >{S򷣕4[wyni.*ci.ߚ^H:zkɾڼH_}U~F3ީF6j ~?$0?Mf>%Kox- >]WR4FޱbL?)w_lOhcFO姍]dY,LOi)SM+/os56o:M-*0Y\N`MQvu_"qq|}<~~a", ,?4 m8cMMٵ㶙 8 qFJ r7{4iwrϘFCuMXU)/OymT6F1nu7/GC}FU76zj/kC\|rZ6D5}, :4#EYS "}vjSq鬕g3j#׏8,]ăB\@͂IІ=D@Ę]k8n :`gtj0 wȸMcv7(mT~8cz/~iJ.xZZ97mdhf@oev蚫[xE8\Gu1ޕ֔q\%qThhT66Ȅ+88 k]e!,m/qrѧ־:QQda|V14c`:x.JϠi3vncdUŢl2B_#PZ8F/-cqrCZ#(2 TT[8md`u <*6lk;xv:ìjc*J!eYi{||79p$o)yK~s뜮{67ojmlurZ;5+Xq{M^tS^6 >QZ/4VޣFrAe6e(}5EZE4ʻlʶվO}uO-fhl Z7Ws "PذnkP Z Xl3dSBu#2J,j uCB(5?js69kwt@\m2Bb1:? ,n{%Exm7#[?{q͋;#Os#{:7b{5<_qMR`U2U72Zq&W_&hhi5Q-aM-ϖ4{&NUn]qb|Q;tP'vRζi{@wr ^sF;'naoOW5ƢqP hc4XcFA 6 x{/ElbhZ!˦lZWb̎0P10ssWAx >Cv:v" 1,_%EVJcʘej"4i %dvǜ5l;xv:`f`~2MFH,v>+|c˪)cڷm=$ycR'pk |;ZlJx퇌hHK6sϿ-|][߲m6RCZhcnuuE>qlc@X~BϢtʯq:bisu\# Af,킆n+YE4R6@ ͯ4Wc}55ƹT6Pr}_j6T1G(emlX*cx}.)jSrb 髻|K2i 5sl#['1#y297i.|clVSs|mB:|뿃d"wmqǮ}ʮ#׏8,]d2qF 'zl1Pq6uuGa;6QiaAƑqO8nX_Qscۨ"qޭ3N6:F?>,o {r/˚%PG{Fs/gFuivG$^~QvuE@4}:)xEv?.fhqܤQhÉl"lb̮5TA]GQ؎3:MTZhmqdӦ1NWm{6*H7%Cc#;d,v})xx,V>ݘr緰!ο?*_M닼g9z\gSic^mH_Con!7o[^0Hژȗ)D0N;SސM&yzض2C9xmߺ/jk6ī?_ѫ(үy;8OwG.qe4 F&BNfecvm&8!,k)g_-kcaSVWpb KS?=' )_{ޘ .Mo$o-/-6/~=HQ<-J fB>3MmñM 9-$Zן[052'j"NDƙcO1]8Flbm6Qh(C4֪96B6N#U09͘}6;Kt3h~ڌš]m%hZY(!UZjZ8JNok_¦y"a2c4䘣e&WEC3+ΣocV 7;qf@. dX;dy6Mo!/nsmٍ]?;]|Y裁Pj]v-A8`+Q17pJA"ʢqkQ'jSk_S2;T;T̸3]m~ү4 8ێP " 1Ƴ]ccRƆẑjYlk;1fBR<MI|wG1twy4漢{7{~|m,]m)|6Kr *5ϵEyA \Pei3\,F 㫴A{6Yʥ#ǘZ4c{D|;!Z⧇On/49[|?:i槔>-*Tyzzd^mϖ:6yopM:hw;q{FnX+= #4D(f2ŧ mnl:j8PVm3LvA0*f}c+ <#>XcJQ%!"3QRk4Y1+!Bc6Pp'LH1~)T"W Nm>H7Ow/nn7ko77o+'sݔw=8ߤ.hX|as-rq{c|IR6 M*l QȥͧibB@{[7Xt 8mV14cƝ`:x.JϠi3vv1,cQ6@ o#Z81o#ZemcѾ:jQsjH~s8'մo=vwћs8ƥao6#=cSohˤ"NeTR߲g[yr9.4LǗkʿAAo))xEvfhqܤQhÉl"lb̮5TA]G 8Tqӝw,{o9Δtֺ8׏8,]d2qF 'zl1Pq6uuCHRNwV񓲬LƜ3O4Sҷ6t:{9j nӶ,",؇E>[vm _$Nw#Tc>OhcFOʲSf*C;]"m;?d'{|=7zN Oo-isNWJ]sBoh38}sSÙrZq^0PF`8n(Dm6P61f?f#Ap9=x3z `ʼnD~ߘzhwdnF=]y͈Dng5ލݺqvB4~'oVZasc`nskߒѠƖȱ֏M2DXdL)eb J4N6J *눧+ a"/fhqܤQhÉl"lb̮5TA]G4r {gA Y-Fv"r2^,ݜ>=]{qcp1KnQgm oym_o=o iMWt ) _7ݒƴ'j" T3Dl`י=+%ȗ8T һV8аO(:tQ1FU09͘q'NFYKt3h~ڌš]G$(Y(WkV ikj18BU6# ~E(1G}0fyp0>Q&#$yα)Գ$ms"om;^ENߘ-u>a#m&]p+ dt;KB[$"'lRrD([e.rE|J'بxoLiE44K{!խŌZ趱(PmT[ꀚZu"a\ϥ__?ld1 Pn%_@)<$Ddlbjb̴M e׍(e2PWYPm1;$ZtO|P,#3Q6?Q&#$ܜ!4-E;ogoo-\lsxn°Wsw,pd?ey2/u'ZUPel3G趲T1 )}e͵]Hi@@Ԣ]5.NJ\}P^}ݵ/ 57Ɋ!ˢ)XyޢΜ9Y=z2f!fc#;][}>Kh>/^.-;{o^^DMsﶉ0HY~M`&*u16x!ŬVE4֢O6d}}5֪bɎ0FCi+ <#T C/!"3m<۵B_ ‰1PWYPm1oOc610sv%1{Ӓ 9SfjR_?#;H u]Jΐ&%yrydfQߟFK.x4גcSm%[cGjpD.5vxJ>Dy<>᳊23DB9OG-sWOw.ڌ )el_mxkș#18BkbPc -(r#1{N&D*(s>G6ː^6~sL6'|/F?m,!/<5ʐ/omƌ Bm7N__ 4NSv~~a";,?4 m8cMMٵ㶙 vCa^%K<tҵ9Sfp6 5b ёfͦd8jb3qXڔU"Ɋnׅm@8k}]Afǚ#6e5c@0ٲTe=1K&"cQCiVYS醪grOb(k㇗Lnog9X bU,{WI/Ƌg)8#c)G[?k-s=K~=i[ED45llFV~]EF.@0l_2Y6F>7J .v]e|42PyV /c,:'̘R{TxBUaˋDVFm m#qTTmfml 1,G,#XSPUr((p&k6}r77m 1R-&>"yc/7~o7bx $ltp뿍joOE^zl>F9"Z[$RuCɑ@[Jhu϶ɠbs19vg٨VLZFl1*Fˡ4җ)mT-%Ām_ٵ50A; 6@Sڔ2@ U13k@%9^4kqLEUq?A* a{j|D͵O1xJ) $oo7n/~uz ,g^FQc^w"OAU Y6"ZAE5_ zG2c.ؘLYUKsy/\qQxqT y8CJc׎YWTxҲGzjgZ|YmPec,GJWEUG& | \5kb̥D 4WFHV6~}e7:87VͳpceERʆY/ é?wNܽ˿=me|ũ7`y}56V2gGi2ˋD(ї"2G 2uv^E7m2Xlŗ D6/P ܾb;mke\'BaCxBQ&^YQZcٚsdh(D(Z2^/m*7?A(!d> &Qʟ? J~>Kmβ/q.ݥۍTa!d9WFˏߤZ-+5Ez|'BϤd)e`)[Ŷ5 8"_@&vh&_ {ث9m6˞h٨JJdfNlChb02|2^rı&D>ʃ۔Q9~,6sQB Y6sq(ME vGѲ]GڬԨ(* R3j6~g+-?ͽ[}đv ;lUdW_rκ6Enpf@qmX0_۳DW.HihFg= , o$rO˽]c3)>3`zx Kچ~]: ,r-$|He&~j4~j gƌOk{6REC2{'K|KPwYt1=Zv;~:*%M)2rn`M#iFSc=5fo4~:HYlvc>ř+3}NŻL,enC)m#y )yɛO5NWmwO@{6jHigj4'p,;:ɤ;o){+'oidttʑgFøn`hߵJƵFicKL bT>6V#>D__؋k{q|egOFHVlddOFHVlddŏKH&/N~R!i._=mGS%oyyy3wqmBvӯXo4zޔd qb# p1#ج0||Ioc l)_4Z5NG3L^g̾q=L^ϥ_iz4?5cqh4t[*Vh5jYk_Yk\1_8fqR; VsGD6JSr5IoҘ)OfY;X'd& {l5ןm-cn7r9ZsR9AoĕE/d<㉵QeEo@ ¹KJ#ELC1jbC/`S͹NMS;?ͤþҘ tDVClv ү4<@yRx\vWO-6GE;ŏ*fȼΘq'Nz$Z1yޘKLt;C]qt 2ˌej~h_=m鬵kjx12dW#qR; 8Q&#$+6~2BD~+3OI mz6콼u{:OHt\JEdqŵF\Ib3@fScOO@{6j̴w=٨10ȳ6߿w殒7zؗ5) gj i‚>{/o=Cn`Mrw' O@{6jHile˭LA6NF융Դ~3744J۸#7ѵvSӷmM?OlԘ10ȳA3o}ͳn1kco6M[H3ΤvHm[ o$*yGppn4~j gƌOY#w5v# %D_6)YlZm<>{c11X#!W-%G]j7e0[-^􅰞RRa64Bg+D( Y26BVّD3a{}HˊɊɊJ~ȲζR'p{ sQT8={({GoXyZJƫ]Hvto/_;UvcP+_Z6Mm+ 6G̸6'BmQ[JQ+!"3QRk9_iLUYlp)4NZlN!5}޶m'm97ւkN6vN^}˖u!EgI?tVUh$gیp:AlqPRD#(emlA!X^UGkZT|3?L^4[ ]Yow6~qİ7'_]~@vy+c32>y-LIFkGFF+w[C0USo'gy#Qok%syđ&M g|)LQC,9Րs,bYE?LΝYt؝Q s˝*x.J3@ùvE=CF(G~om2~JҶ@X{toݷv@m4Rϒd)e@)[Ŷ5 8C溢)58B 1HZŦjG3|^g̾=L^ϥ_iz-3?5cqh饱q,X PFC(0RZ85Gc̊\gm;OAéb}Tt mtsV[-P^%cDߘso_`9[t?n߿WpC77.l[]RaVC91О3iF{6j L|6Ȳ.ˍn;6E%yD:MK9[M널15b؜ n1K o/K|jwdH}&9ihF?<o|Ֆf._߶^S/.̤6a^zs[6Y&/Ch[ o$6yGppn4~j gƌOﯶ^&F1xJ߿QdE7l߶Xnǯj㧵2olYl4~j gƌOA ,楇S柎~~Gvc{l@{72whz|{xo7-/BXωd)e0J[@"̈́sfp֡`JeĖF72yl8Y?!Y?!Y'eYiz?MKm>_}D'p24Y ivG%yc <"lqjm(~tj^^~|~a"9h6=t 5fec)J.ţ%;~_= 0x̝qB̲l6RŇGo) 2 9 $o윕fnuyi{b]8ʹҼTxl`͇t _I)ƖFne>Pb hb̑m]eZV A5?[hkf,^E<qXug (Y0Ucpqz_1&yz48Y< ;^!,f+A!JlWml@;>K.؋mF?K CgqI y;T:ZV޲5EsW2 `DMđjqfc(\viУR|ChcAP69B}u֪96=B6N*fΘu{?\f#߯š]`i<=@ a ~-6vMq9(swZEU9Fe0d#-N2BlXs4xv:/rLh6!-}%o߱l,X k7CV9uC2-<_\o~Nu<㉵QeE޵o@ ¹ʋƔƾ\DczMۋMO-GEELl+WԵ =aw*x.J3@ùvE_(Md#;~stQuE|c"SiB]K#Zw3pyJ?H(aSK]#s[6!JEy{0֪ ,cQ=Eg@M+7ջZ;m"?h> 6k{m82mk/s2-ܬ$j&-NVfNj=S&/͝ͱ.8ƛ/<2L뇐7d_o}toĕSoxYDMa﷉90HY^&B S%uP{ď!EElbhZʦlk=meum1dOb*x.J3@ùvEK6YQ£VBD$f+"+*VT1>_>fEU"DpVbNtdXl6L:>v09o1SyaT>e78zZQ=|놻^KRfgUl+;P#r;SL1N4oHEŦV~G3d^g̸}a*x.JC]q,X PFC9Bo_=m鬵kj1gmcѾz,5EHT;yVFdXl (D>&GvhKFߒ1~0c-9-ջ=PKo\HU[O[Q=|ߞ3~jq'Gw]E<qX.sh6=t 5fec)J.ţ%;~_= 0x̝qB̲l6R3|Sa771tOfn+y{ A1/_FHQ۞o[yִmGm//D485 ymJ>?t=Q ,mz7j8c&&k%OSFQ]'GaKvza;;el"c<?dY_`69e mXjZ— w^f.hTæt1gt5{0Jm[?_kZ6A4~?٨1#}Sc`ⳡ4tI=vyYr[o?~ct<mZ[ o$*'> B@u<a}qXP>O3PFp7jD5(k 5=f.#X(l&*-4682Ҧ3NW픧mT)q[zFogPpHct74q> s$u y!k[|xD.7poUicK!L bT+dΗ1qFr|fD4sX٘R'2i"ү4,mz7j8c&&ZCM㶙 8 qFJ= r?a;)clJ,ퟕn?g֫;ck^뿑7oindtmT1~o$u-ϕ][Hz+iM)U~K̘m 4k%cv=6nN65EZb8**`9b9U\' "QiXEF1bQ6@ 1}Ŧ֮5m˘mеʾ,U9Bl@VGbZcb1֥aY+M1>eYi7o@m߼~/it;Ma`8 ;o=SՕ% <),MVkRB,bfK ׀oLrƆܩ9m_X&iUY)۪Vijbɞ0(s5WsWAx ε+:£N\&Y*fȗ)W7 7l"LxT@dG-&/I>[HۿF_s8#k[Fso ⹌&"HVn 2QiVN8YJ~\\W,f*ߢlj>M}_[*xk~үZv*†D(7t[kVRxJb'Ęi%ʮ;Q_-fPk,Z 1۸?aaca_oOTfrE3f憒7zFߌ_콞!s6~+fѱ;*{o7V?-.3hԖEDoïn`6>g6GlwMf JɼKRQ4jȹX8ZŦmD6NG3L^g̸]=L^ϥ_iz4?5cqh 4eh55G-6vMqb2fG(Ƣ}DUc"B߈l!6=+ċ{aM)4k;\bB捩L8e۝WwGn[o_2[M6:atb]_HS}󷍶92++$jocl)gkykʫ;#K>c@͂Ѯ#D1Pm&85vѩmrOh܏#il48ͦ:+umhFKxtY|݅$lt/ϼoujmO963 RS[|Nh$n/'8Łvݵ*)Ev_PF`qܤSD5(k 5=f.#X(l&*-4682F )Ll:r~ҷmmJx/NWIҎtͱ Sv^}),뇌^%|Xԗ5~ /m#8i8L7~?5ڳQcFOg,nOyKF"켼WҾ _>dt?㷷[-k<GF6^7 bMLITN|2(fs7:]g}=-Ev ,mz7j8c&&k%OSFQ]'GaKv}_28<'l|k 'ks϶ eYv_} L2=znk~ͽmٜ=y,R4rJ7ԕ6>6f[Vq7}>KoZ6t-[뙔RW/icXXc!R0ָ( 8VWԗr)9n[`$\E<_i%K.fh Z 'z8Ęcqʶ(d(x`Kgؘ'ĘoMC,5pdk6RLw(f8VHNwo͝nΑi<1ppvW ?zu5`We g526ĝpXiAUK#e9ıNcFgĦVmQ oeWsW0|OXڅ8Fe,(!PnJ)ciMg]Sk#e=1H6j1G(9J D.oVuіP1;aȡl2Bb1eYHՎWg9+S.mԍv­7G/;^*SSS¶p/}FǶ 융>>ZY"[^6+F9"ebd GKJ`刳kaZi_PQx Z5Nl&BY3w' QP115^ϥ_i(p8׮zc(G۞g^'WWe^Ȑ/S7ŚRh6%'(#sAΖz%=roH8q{ٛOmcί78c(ՖΙ/ϊ2 YY .lc4G][YjFJc*cXĠ,V)۪Vijbƞ0P1[Y{<~ U6'BZ£VBD&;&L+ٔPv݉j1 "_>fEU!!DVb ; CVЅggcD629=~FFFFo;gz_oэҼ>l{$oN7楶+)VWolL3ޣLSջ&3 dk%ZVOl%-4ni,l:kZ5NG3_g~z K;h~j.1,cQ6@ rVJWO[l:kZ/c1AJ}DU9BȱVlp$uɝ~˶ҸD`١+İ-ḠfQeTiKlOM!sck4#u8o_Hܯ>П[d{`++]$jocl)gkykʫ;#K>c@͂Ѯ#D1G4mQTQD_ ΰ1Otlj17ߚ0dYdk|F'ۤjsLXf_Kld}v7 pݴ7LGS:ZVq[6˿#6^>]'Zq~|~a" (Y08n)pǚMM9Jl+ t5Jh]:"Ϗ8,]d9ue4 FM:NX1ZmQTQ@F<8?fY6X)Y=odkZ3)K_]pt̐!0ZAF CX) -+ƗѲ/5Md#)c 5 n͓#G:nj"]c1[`#ޯeOdA~\]]TAo_~b|uިfdYdkȍDNhߘ@d+Vne,Pg -c _¥CZ[dsoD 賂&"HVn 2QiV>D}qRZX'ZK5cjZꁺ' yݬ K~~ja͆\ mQ[JQ+!"cPclJ(DFe/Z1g ; (³l"7t1f-wNŇn h)]p TOr"m+(VUo[M Q)]jmRm2x}eT+el3[hk]MV^E<qXhv!zW9Il+J=lv<}!yS:Gé?}MLITN|m'?tP}gf8n)k6P61fjzA]GQ؎3:MTFYm&3tb7X)YO7_m=[ZSzHRi:8yciυ9߶._olv\o^SsG6 N-X2֚>Ǭ` 'KU|6x^G WOwG.|E.fhIPÉk6P61fjzA]GQ؎3:MTFYm&3tb7X)~MSPMc/[ڂQן6~A"G<ui  /_#V޲5-:9z7mlicVz=.icLXcRe>jClj 遒D(qs}u֪Ę8oebyc.Jٰ8-3eh55G-6vMqb2fG(Ƣ}DUc"B߈lYnXk0fG;/ʲ5lJN!:|u/g;/֫;t¥Uv1iiumv-f1d0l>~_;jI*5Ͽ^xF/i#{ =T%(-%qdUfdl+DMo/8=Pk_*ʅn+um1ClO\j9ǚ߫+ <JPBD$fk<۵c=11 #i1) qg͐cq퀂Ln6!HS7FKӲ Oӝ_nmoqqN_m=!$xr-|%r=xkUeYh{$(X5%ȯʗdYƱ&D4{a}+ uFGHh?WrqBel\&Y*fȗ)UoQh6L&%7|6:i^})ق zSF~:.o$odkZ .m\'$uZ˷o+[|x+˶A? /ʘ~df7DM.Wi5_]/PŦV~l&BYcpФ5T̸S`5GN獹+MOfþj.jh#2ej~kWO[l:kZ 3e6PjEꉪ3DNٲݰV?`̎v@!^e kJٔX뇤i۬oRcOɧ˳!%OSmotio&JkFHVǿY؏#u{5WOwG.E!O]@͂ѦqN=l"lb̮58n <`gtjFM&sgĘ1n6R,6oCH4̍%D<% )[J[cE肣ko2olYl4~j gƌOAe?OSit‘-Mp`*ws8#U#m,nCzڍL4L3,n|6oKP$*m&hߵ[M1#59kb&QʍiD6JSr5F)O'Vkûͧlo$oliJXmeݓWwG׭ׂK3OwG^nuktsEJe,[PZS qU~G ~0}]'Fe`˨)qb-M(P ͦ$j?RnDM'QʍOʲ_7K9c%cR֟F ޱ_{dhp7:Hގ^=G⍸Ous$Q5ًpnoj-(ߡJl\Dp̾:mD?RnDM'QʍoO7FJ7}K7;]2wηћo̤!T&n>aFCزݽxJo&Jϭs˲q~"}y1J~G8DcF2|^ۣJGWWfCٔDM'QʍiD6JSr5!;~s盻f T014-!6Ǥ6բwcWpK$f$owH~4% ϝ,bp5gAr\F!#\pe|/ Rh6%'Qlr$j?RnDD~-2N6:F?m?{-9҃/{֏@<jϽ7ZmO}Ou2R6zP9AyIFkfc 6C@cf?!Y?!Y'CdhBoo~Hc悾|KVvR] g1О37~?5 Z߾|i9ݙ}7:qtcJᶟ14UFZ =Poh;ˢ"NeT|t]I~5Ĝ>Q.}e};2UI&*r]URZ#ڳZ56,c6r*)680SDBvYMfѦ [c@kl* FRl`x\k셪+m-Xo~Qh֯lx bdlLW򓲬㿳1xo wwn՝wOGû'+n̍Ҷ 5z8Z˷Ǭi:nE:!-g^C̹]q" E(g"̆2TZ iB冮E@iNwVIYB٭l#}XFJ Q9RUH9l2G1TU-G]eǗ2.ԼD)Dc){qfc*:ϖe}"o٫5C͎'y~;:lVa _FgNgS-_t36h`S>k[6olk9׵VG5u2_Y3% 6RfUH O̦'\xQ`Vv] j)m/BZi>hVF5t. 6JdUmeoeMDıSBlMQm)5w 8yoo/? x~p-덼%mpYR\|Umw)/kw/j8%mc ƒA\BWJz:9̐]@s֔1SZǓi^<-q 'sAі&fMiLlSXM_䎢5b$RNKGZck| *kcM)4l!cm^Veރ|Fwܞ~p#9:}(o lmc~Ϋo6_>f˭elؕ-Dg^Cy?::DE G_.,c̢eh# Ad\̲2ƎGUV6ƦߦGXjEURͭ̊j]DYOq2}h&wkd&lٔryo85o4~j gL{wY}nNH䘧Xm2z|xƋ&1̎ zF o|A0xbF$gWY౏rvd}DhJJ7qQ CJkZfjיּ(\W Acn855f3֞l )+pINAo 6I C3{I䶞゙7z;Z~{̃O~'[%Ֆ6Q:ZkL}@GGaQwasjz_5N@{6j̴w=A6sK]p$o in)KmlK!<'Cc毷=tm4y ìDr([?=-ݼI4Ͳ*pJn>'4皳}o8٨1ޝl|YiPIk=뗌2|6ڜO3xΫ{|67FQOV06]p}2YA3V] UVi[v3izsbz_5N@{6j̴w=᳑[J!ooDvY0}FNY^8f(]pm0.82) 3;HJ?Ql\DfQ#3+*5,m8o(^W 4۳Qc=5fglms~æi ř:Rw6UƓO9zV}?Oi_AR|Tm٠sz_5N@{6j̴w=᳡S27Oa` K/V;YnpV 77FSƋ=aG;~?ږM[9=(|N陼 }ihFg3|6Ȳƙ^8;ߘ-Vpo~|uq.Pb}2.89&r|Ooi6|N陼 }ihFg3|6_XK)L—71`疿u?HTB&tm4_w1О37~? , o$rO˽]c3)>3`zx Kچ~]: ,r-$<*T,hV[V}EgOÏHue+mNjccYB m2_%[SB 5؏S.,Ȭ٘NI?)m!½otY;,vwnژ -u|?No  9^Tt }V2g ʖu{-, %?\j $TAdZ yo4%X4Ʊ qPSǑ 1"촉ĚuI¾PhMuLl)j|Bߒ|Nj3oWӝg,~绋wXJSFAR457jtojO:O<ٴmS??[SjJ?RddьXhf/Qн̖qyd-k#w:x&ʥMFJ3YƮרyy.D?Rj4'p,;:ɤ;o){+'oidttʑgFøV~OGCR>P}r#ѷ?Eo d(J8ÚmƅLZ$1k% 1K(Ѭu҂1mVQ=meIⱙɊQ*YEJ_Zkbm^27Ɋ?o!TM^`=f%<8:BҴ]v{FxJ8g5 g*42k[3?wZ<|1~#|'jє [*g_--ةmb6e+WQFf\+ѤQ/9^4hQn6RnDGi[3elo85m߱O@{6jH Ii11ٓ>:v[ o7vMݜ*2:lj[6PSc=5fo4~j \۳,)lϓ6M70~tT7X:ybl8!Y?!Y?!Y,xǻm̚O"F,nu6-6^?O}JyYǐoٳ1|o87)k8%'Qlr$j?RnD'Y9VJno}N0J"gqE=xu k#OK xՑINm' wO/:]`\I^},74\1 ]^ $j?RnDM'Q?]bs 2tͽz`\t){x!Hpmkt5FIv_Λ+5`ifm/P/oȺ(Or ]^t"6NZlNIS)|Terk>oyNζw[r|̶k5w|;|sdnodq'>zI.5%6(OQc}TJV6[6k]Ί뫆pjHihF) l|`aoN >Wn LJg-e\}D[VV^8ӓƟGl%dx,NjbxWnIգsv._=P ?٨1#}OYһsKWmKoF/N7ngEeT>~om2~JҶ@X{tbzB~Ko 'kږM\WcYqx._ a'-V6~LEƏ>9~n{ {6ދosN L[ y{?Guޭ>78 .}ۅ`UiRLi/hP\k `on#7w=BUihF?g,r ߿cSTLd`Ӵ$뙳մNSP,YFp|߾os4U04V6fjX"GhSnM&1>;;;͹sz_5N@{6j̴w=AWmim ?eLmsӭG>m}8?`BZ<͍ oZA)ӦIlPWh-6n^~6~~gn^~6~~gn^~~Tkj_o2[a4tEVv MoL^pmkl%683xz+=_Jh$ΦyלM)|Nؓ1О3l ,楇S柎~~Gvc{l@{72whz|{xo-D4i[4t;fIS)4~:ic*:O'-V~r,k=mCi '7l YB i-n>6Hn+H!Ø jX, KBEɒ1ߝjyά{[3Ϝ'/Z2b'3wpsmZ+Vw"vDoM4Y/oc!JT"O3.pv J `*>lH9arL.ut~\ɥEΏR+8?'o,)㜅Bؚo{ \Aw ¶7W!\9o\a#ba8 άlWqi7/Wُv_|ϟڎq-oUӨlxMZsy]wLʛ8?Tv~RNlrb5?X}zygm߸8{e-k.d8!x뾾M}oll~="{VEkqP-\RT O.-t~\ɥEΏR+|teqǛVF?:kcq,a8<@&Oe o1z9YgGh5'o=NoUl|s )KRc\ɥEΏR+8?Q*rJ~Q;eo2jV. !h ufL֟/֜<:5'<~!u*=~b{t8U^T9ƲOʉ8?Tv~RNlr%? -k5vׂ QYa89DŽp2r=~ӧy]oU(&ՅgŔQJs'U:?JEҢʏIBE.PE~f|v620a*k89+:ƲOʉ8?T h]@Qe$|ƨ9]ۇs碦Y'Y-6T {>upc%NӋymө yOߪ[pux1cʟX]L(KR. O.-gGVd}/96"R4Lۭ&ÏoRX$oٶ,~#76e6{oȒDq !3[Qnfj RuFo.BWWK6ݷTx>XcHS?sRñ/HEFn'/T8 5/;2yP7g̩ !G.ICuRXB"9%ݟ(yi~9Fk`U"s1Hz1֫TM@ou9=mQxa{p{}X58|a)cjuQ!ߐ /n/?׏[5_OuCӴ$"UY- aPZX]' O/D)cRQSA|+jſuH$4E"_.kNLIN>G^Wj<ҼGɛO T2Ck,Y"A>,R5krbog൷p78dG9Syr@*M2FLj^M:Lu9%k{i&ƭe][>$c>ܴ]=էMCSbG ^9#I,J֕k$RrԋLFɺ|.DjVS?!66|V$BdAEv,0ֽ+.\^lL5>1*s{1{qo0:+q[v,TRe7V.oAeY*RŔ [(,~^:mW$\N-p,p2”'H[/U0>FDrԦ&EPX*6Y d+[0Xfh*؂E5׮z^wbL"QGoCFGOD} XR!.o"moB [ucv749 s97䍟7۟Ek{Ƈ@E~=.rzˀ>e5a-B.an+kg@79?+?,Z>oj/oooa›7":6?Ef7:߮%fѫSt;;?O71}!j.ވvZM"~{ߘ$ ',/=7֜,a`8dBx nolR)ͳja9ΏSĀ"fD8?E x(bNvop =AWl[<ICQgR;ژ达u홌\iA9e) aG[3'[y<0ߣr秈Ëq~QLU' @eT;-l;nfhgYc"cF긿߸ˆK{[:Vq6zn<S8?E x(bFΏSĀ"fjent 'ͩx֞8ܾwԸOw=v5z9|x6&y#xc.,>e۷Dwp~g WS-s* 9GGp~J)st$ '9GGp~J)*!~;ڜ?m,xو7}Ar,JXXahƎ7' (Ȇouh{ÃQ=$7Mz|S1;^~DiV4Q/ckO1ֈ)zkەFmȒ[?(uR|-a*)R;JWAKؑihR)21DzoͅMpܘ<:9i!WW1qeY Gl&͙1ޚˎiDuoBynd,[>/oEcȊHF0QeQ/ P%vT^4 R;T֥T2\aT/n}+ cG}ւekG``Ql⢴vl^툩g5[RXwqKEui ՂȚb(jTRGDzte#o,?!lv={nL2Ȗuy#xcc76 tX0SӰap*oSacߤ~SRΩn.v!Վj,ŢڤU bS"Ҥ,b\k֦ڑ2YzR[*jR5e5"ϹQШRMQT?X!7ssBjAH.w돔RQY-(&S;b%uXF$(3Za#HrGf[gۃ,mkwޘ37n!oำj7h|O5/{[r'P16 Y/ h4WѨ VAĎU-hԎ-r"uI 6Ke w)I eT%mvx&Q4%H5.!hJzTbR֥-FV#rQ;FRZ]$Holg06E`v f8mo=IϬ(3,M̱W$r I68E$x.x<~-v!a^] ;tq {O9Q o518˾nGah!o司\ߪHߙr秈Ëq~xg}(9ӝ1B=:vLjxgcQ94/e;n?zy{G0XuyTߊnmzߪ|g#ʟ1};?O.DY{,^Qt`l};/^o`ز~HŧoͳK?%?}(*=~br~"o1#z)b( 6mc4̜0֔ol 7V~Q {՜e)7ߊmzߪ|g#ʟ1};?O.oݶ 6emp-p"*Csl-rciCwN|C8mCa ϟ^*6w!)bF3w~"Y #oa򴵘!t_o~%{o$3}ۘ,ee 1`S0ژ[íM[{#^Wp~"}#{W{rRJ`Ԧc\0֘=ܞ~f&9 dG9,=w^讌v`5}ڝgZ9%xyW\irHJߪجpL9χOB+-- EvlEkJ0j`P.uC֞ JfIV϶Ek1T(hMB8<>F:ƵIH66u3GB89>Y77aoY[)g}5rU%/ڟ}VVU_.5uE;'nGZv0+e ¤YQ;I0PMZ]1&Bj'To57N:j[%~!me%Bg_6^0vИb !`[ q'g5o{][7{ 1q i[:|]iٱRې"V( cG05#N&K`r W2¨֫HesE=if &WoQ]6K!~#fcxPM߸^%xC,*s{q^s,~,s/gm/oa% -ax;ߴw][W^ˣbG F*ŏ}vi-.k^?NTH3|]iYvlT.c.XkEۊ"0v#^]ݎXS;uU]UFjGP&HesU2B0Ȏc"*M/b0e;޸q;yMOmcim.F8y;3[,OzVie@F~|"1T~^]?i.LaV,ڕ[*nRl5۱,^]ݎش>b\u[ʒ[,Xx 5F^Ye4 X}n]u|c(HFFF oeYEυ|q.ku vꆅI7 oLR}-֬KGjA%YNuebRODS[\֦ںr-ZNe[W[nڵvRfx;Zu$WW#fŎxwESꛘRd( >Rc"lR$l#rctw'84DnVglỳ>z~hcKc <_[/pi;n'"$J^Vd'DNZhj SرU eJQ.'-k";"LOhve+QT HXX?X\`71+)Rz(]@Eƫn _#Tu8,pGadYbGSv][ [U/dy<~KٮY[/pi;7d5]9\iVPc1϶ dY#eI C~ Z4h#oGMbmx;RojG40BjĖJsU#> lb9ؤX"9|v[#ZcFFG)p!x.C#=j.>,OM5%ꪴQ4WK1(I{WD)IDbG*( >\;Qc wDdy]bA``ٗz5`P-ks#Y>S#mW#%Y;ƲoZX0NA96e#8mLO1ӣ,A%Z[c,>B jL]hM2YJ4i))+z#A ZTY"R+FauQ >+qop%r}cl]E^YLsL1Z FkDU*ɕHQjRcs=+cԔ&EVS6(WdiI ܟ+bƋт";vFqUQ>XpFĎHY-DR(k]V(1@%?DYo xN¹aMn0ǰ[os R.6B8?Xp >A/RI͖dY֨Jը+ nbA Ef+ %M"gJFR|;6i+U9+uFڥxBd'KSiG%vrXzr*I.fqդƭXn]-,#UɵaTv.- RKQkVSEUERQT\s#A>I2(@^եѺPcJ~dA660fh !̥@A]\hT^{#~c7ܘ? Ӧ%7rIp%'ʵH+G`oRM&OIE뜹'$lrCo~+0 #g\M,Go1$sDvУw^5%J-.-f-Q;5+풲ZPsE;Z\)\QYj$TcR˹I֎ "b$WjDVhԂ)FG0Z\`j҂UbA*{Z3Ĕ^).I5eRe$(?j*rՂ-FZ\[e.Rͽ Έq\m [^ _0uOn:)ՔI1bVV[0ߙ7hkh-ֻөrp {| ?!~9-rR/|'pK>5jShlj9EZ6DfOjV4&Y6.W*@_AT:/vl+ʊ>-IDxMJ6Q,U/(#ZFv,^,[ʒe" >+@`>$bc-HAr#!5(>GF]Q$(E&m]6RR6z}VU2Y(m%)E#YTl]QqM~P,5yɍ@N巽'hX@pub5SWf1#x-|YJsc[X-u7^G]־R%u;WUZ^ץjdy]c.˚_ϑwY ?6K1:X{]ڊTH*NK/nNG|s=0J pcT0[ e:5;Icpm9˞o̖2.p@V8.l'gEL_CoE#=mpMmO﫮܆ߐ>o{-_}U'"$JO޼wBe2upoE䅽1.74\ou3Nb#ߵ0(BQ<9UTwJN9Ox},jF*/ QV!u^;ښamLvhV'Wƹ#B_ {5Tc"S.#c]oiY[,v??ӴEv1Te I n9E!?e^ @X0fu!E76A -ʻe UX1r秈Ëq~oeM2XӍ緷>`9*vs1ƴl=B0iyp7.SϾզZ#Tvʙv~"o1#z)boeuڼc7B0$,Go;85¶1Y7/nw^!Cԩǔ8?E x(bFΏS@-}m=FXo6fYoNDm3uNAd [-ߊ\mzߪ;B%ni)bF3w~"*QuOt}.p%7!LnOw_eCӦ7#4㷢R**+?S΢1};?O O?go<a^P+p,^Y{wc({x =;1[уM[|G38?E x(bFΏS@e ? ;o,A% ?ed7Ζ3tۘ9B}=~+z(=~c1,:?O71PK b 0a8,>.1J6 ;M2Lg775 .ZA[уM[|G38?E x(bFΏS@e bt4D̟jnLK )qEncMX=~+z(=~c1,:?O71PK `z<NqorBqIvv)#or fQ<]D<~+zp=~r秈Ëq~DYr&*z=rz$cnk`\Xy[b dc2c ߊ\mzߪ;B%ni)bF3w~"*F:yyB֘e^b95֘6fՉkX%B#c-Do1F<.oE6oUTV 8E)bF3w~"jDYS~v;p*}-o976;Z9s6[2M)TXlXKߊZzߪج;B%ni)bF3w~"*x;8% m,> [lϰCx n}ѣ5bӰH!YEϤ>oU\V 8E)bF3w~"jo'Ӭ?eig;6f4~cx}"˙#PbƮq>{`g'${ 0XYVoeɗ=~~IO+ou[.$':-yR-e⅓;o͹([|Bu U̙2CFl*2F޸Zs+jӰaHx.; [8۵rl,G\LsJёktr~ 9CQ9?!Ũj(xe1¶°ӯc7뾺9ztomlw}8s5fY{qa\1^pyVW5̜oUSδ1};?O}(kGǭy&Oiw!=,*Ti]ߜ/ @\cS^xc)q*ߊJmzߪpL9ΏSĀ"fD8?E 7vGYv=6:뻭6.m}l{2mut06γ[an} <~+zp=~r秈Ëq~! mt6sW:ReeS{[g\2ږmϞl*TNA%~˺ =w8?E x(bFΏSĀ"f(ǜ{oL[su7FwNzK ~}xͥ.)6WĸѤZ0$WZrX~H&sԺ[*#Y0]}ָRDVI#oKv F`1AUhEEEoD>GSRVv}UQԎUFc"B凮G!2,7LFw6N5&6dq9ևpf̟Mtj?zZIߪؼkh}Jɍ.hRA*FKQY]@.JͪRVY52~$.Ir,#N)т#uCTH)M"шv)%w57g)i( *[ϪDR\;+c"B4#c`1vښfuc`sd~|8a:̲ L#oY 1t;cQߢ>V*Nob.vDF.u)Lk~"`Q"d\ŎN]X;jV4mjGK)Xň&S6¨ܺԲ͕"QIՈ]a(WjG5bP ڤbD;[-k_.5Uv ?$#0dR;UFc"B凎6s Cp7xnh;\o\jzI3{ K1^~cٝ( |4`ג Y2v4)Bt$u)L&U(bDV s,F҆( "FZgj'Ũq |OLRH.h\LbDzW;ZBT~,M"=IK5+rjGBZ jSj-YQ;IǤX͍[#xeS fNYX:{bK<#,^{Y/9Y >jYͲoU5\eOD*Jш{Wdhn$+|VY(Fj0DfTH)9ҊҬTuIv,x+wBЏBi0jJnjveAZfEu)wۤU*A?G}V]!RFmRv)1JEpc*`/pZ/`U ?Y`N(e;_1,fگ1LzooU<5ļ런wP>_]h B&|0)3|GA"eudm)QWFzoa#<]g-c1G[`)Cp,Ge)K|kJ38?E x(bFΏS;!~k- ^{c4l!6ZX@wҜ &OGxh{o]8?ί l$lVKQ4)$-gA&z H`[X+";IkG[a ;Ri9FkLhf`k #p.)¨)[T()`K5TbDN -aHD.4bPlFY\ ggwbai "FZjbx技fve#Sô+YUXW|!ys8Bv$'Rj\ z&Eлv(%FcsF\;Z+&Oy\_Xpxa7 ooe{?a)qX ?T]A!<ȷosEN5R7KkËԂ R%zUb :k6vl"S.R?"S;)X0T! &hAʺNj<҈Aeirr-RƅW!mTjQ|`X zRArEiȂѻhR̐ʭZnTDs1jAZBпL;ײ 9W|ch4,uRrcIJAɺϩLQ<#74Ybgx Tɰ_,r!\mvg ʗGqBpB}`q~!89r}t%\Ћ<\%FT 2ʷr/ߑs ԖŨk V!k6vl"S.R?"S;)X0T! &hAʺNj<҈Aeirr-RzS`ai "alH6-ʊGi?IjhlWZ625Lr1\L]u]юu򙇐<3.d'jM|"&ɕPhR[Y>j"ߨ]Ri06W`T,E*1"\f5B6Lmg'~-G X@ư[v- ߔ. "F(c HA|c iX9.%1ON'RLjbԂ W5WavHFV;lFPR\Zjlň`,[*4 re]b'5iĠ،49L]T)Y} Kۮ0"alH6-ʊGi?IjhlWZ625Lr1\L]u]юu򙇐<3.d'jM|"&ɕPhR[Y>j"ߨ]Ri06W`T,E*1BoL7ڗ[#_`fHz6e8O?C,"k^,^"fY"QoI2SLbwM- x#zUb*D8caԦՎ-[Q}*W֥[*G1"Xdj' Ɩ0$DM"\YIG1(6,MSWUp7ԾmW ?R\C0Z HWceţ$5W4C+-]r.hǺj CHÙ_&M>RJ](Ѓ4)ޭ,Fo.4Fx0*P"X77aBZ8lv8kCkL.M ө\2<7muʡV)fiYEZMTJ"hT￝c#/X)&#zU!ւڱkx[T()`K5TbDN -aHD.4bPlFY\ o~ԾmW ?R\C0Z HWceţ$5W4C+-]r.hǺj CHÙ_&M>RJ](Ѓ4)ޭ,Fo.4Fx0*P"X9ep}}WZl.p\{# =X#l$tXߘꯄ\\?M&!i^ >V`SSLjbԂ W5W`I \5RQV;lFPR\Zjlň`,[*4 re]b'5iĠ،49L]T)YS]a*DHq5 9hY+"^mZ~Г\ ٮldjvb"˹꺢몕/3!yg~]N7DJM+u!pׅDmI|O$R3Mw+ GQK**ʹ%vH%&°$8oajwގZ a'Y 1UJph{} }v*?r秈Ë(kk: a}`mxs2̟vlRomM`4moL̮F'r= C)bF3w~"o1Sw190szIoŤ{j gӣ8A9"+Xpgpg:8^ x SxvX0>͎UHXv1xm qg>w5 x{c:V6˺s=I꾾r%W}O.0]uܜ!l:2s!dݥ's Yј9ݞGtY'udxag~-oe:]۳Eϵ2#Ï(n3{ԝ9l?o0D\vt[otO{Gѣiwx5{>5bX~ȭ}@hM@EKh/2) x4?yB!q'nr1xvK,@xMn1oDnl%ǞrɅ,qGnvvtٗ9|Uhq`F  "pm6HplD8lwuKG$="rˎd{c+#oÉS\,kN&5^v2z z|9ݭX3;cqߚ Y{,~k-B2r .C>nkFu̟襳#|mŰ[] dyO&j h#r-،nYQe5LnO3vО9l:v:ߚ&~;jt'?#=O33Lv0"3zj\ct0Gn3" ǃq6(bTˣgӦVap;aߪ"|So2!(H< %YfQ]^Bc8(Q8F[ CsݏHRN !m+ᵷ'% Se̊w̘iH(\kn]3EvG9 e{GS|xU9߶`jL1]^c7~4S;+L2;]vV{}@ը#m<%Of_~8O-x:/??=%~z6>ߟ姿7}_?^^?#vUw~> stream x  o( 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 090 endstream endobj 15 0 obj 2134 endobj 16 0 obj << /Length 17 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream xTkA6n"Zkx"IYhE6bk Ed3In6&*Ezd/JZE(ޫ(b-nL~7}ov r4 Ril|Bj A4%UN$As{z[V{wwҶ@G*q Y<ߡ)t9Nyx+=Y"|@5-MS%@H8qR>׋infObN~N>! ?F?aĆ=5`5_M'Tq. VJp8dasZHOLn}&wVQygE0  HPEaP@<14r?#{2u$jtbDA{6=Q<("qCA*Oy\V;噹sM^|vWGyz?W15s-_̗)UKuZ17ߟl;=..s7VgjHUO^gc)1&v!.K `m)m$``/]?[xF QT*d4o(/lșmSqens}nk~8X<R5 vz)Ӗ9R,bRPCRR%eKUbvؙn9BħJeRR~NցoE endstream endobj 17 0 obj 737 endobj 10 0 obj [ /ICCBased 16 0 R ] endobj 18 0 obj << /Length 19 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream xYy߳ksZZdd(@XxL!݃{Ѐqnot5_~m2n_g?aE!odT e4>&nE!D&sƠ89HE tj/C2 4?M܎` C7LF? 8(:2 EׯŠPMp )?rE둡l@Ύm˄QFBv1ygP@dzJR ?䯞`͘zCT3E|/:GAINdp@o5(b/6B!Vc@U D!u8eA!8 B$ÐHSW;:k_D6>FE3!/]WP+hj~Z VAuкh @Es,z+ZmCk!< ` cWp7/?Fܘ;byQDdbT=0j\E UIAQqlYk-8zE+2hA'5n׿hb176*>Z?{V@ ` lp">ApŠ Th7@ hx ^7`LO`|k D H uH2!P8 2Q:@WP+zFi+ `"b<Vû$8΃ " ^DŁDɢQF([*JA Q:T3 5Ah EEBsFt;9z=^ǐ0i&ㆡc1YBL:3b9X59ݍŞcaaǰ8 'h\$".7[f 00(12x0332\`aQQія11,c3c/4|߁/!DH%. "+QhDA% $IO ŐH5a2Iɂɏi/S S#S,3#('ss!U^F1#K K ME2H%sS8V1VV?LJcEbDdPR:(lX6q6 `l؞ͱoewaO`/a>hX·`[mY|ɹE2 :u-7[۞;4w /OOk^Wׁw7o%o"?_$I|3w(Aw>R٩Pj:'+h.+xFPP[appp𜈀6=""EEEEOv.eO II쒨x!T <%T R *ꕆUOI?hȄT e ddkeG8nʋ{_WPQU8FUR1]Y񫒔R e^&[:BQ٦ҦSUM5JNuZMD[Tm@MN=W[aWEcESU3FA󋖬V)mqmc:B:43:#T]or=A=^{}a}?* f  .i%3F?1a5q6)662֚Ι6g12?b>`gkQc1gflnEr*zo-eeݼ fض!Qp]vv%{)^;:;qpunsavRjzuM-;{{ţcq'vѿS|gܞh^W1ޮliE R9_# u 80EסO/؆Tlև1y g  oHx)9Ks]sQVQUP6p+/v4N7$n9%j9!<'Q*@$Ӥsѻ}wܓg4 L ҶWxoމTi Gӿef4gef3WŔ5]?hNXyxP`)*:$_5aG?J>ttضcԂoǽ?(ZXv"HuQIO(,~YbXR_[ztߩ1;X!VQXTxU_Wg>7~ţ6/;zju7C,o y+IQ=j<1߱O?&2'I>L)MLN?ħOk3YɟKg%f}367155wkomvþ-,s-_Q_Zu]uHZYp@_gS@A tޅRGvnl5.!L'090{xY)Yl-9yy^ (PS_Kdה(.$sM]>QaTZAW5K틆f~Y}F &OX,Z9Yn؇9plutJ{zDmqxg*jjJ=lCCya]nDUG싍wH0HIڲ=g 5iianFr0YC\)?{P~^^~#< xrả".%Z2xONM?9srYsUrlkt1oMf[]-nqW˽ֶF\Ov>HzȰG1'CO/>;ޗfi`ipU7 Co 9j^e::jS!}! |. 65sw?斧Vޯ_1_7 PYt+&눓c`g؉"H^Lj,|dy"^ÉR9['#1'@AR*O\uEɭcjm-GQ=I0c] Aie+5y +p>x{3;S={x3{O}}w9&KCdBqn%^G_9K3$:)}=[ɓ)wFfg2d{՜]߁*\=wt1qp]Ei'iņ%¥҉S]kPd\>ܝ>5jQc_:[QwHajǵs3n7ޜi~yNKcwRso5kS/ w.wvO>K~1J@`j0pJxoH]]Ңu܌MSKIOK*C}wӉ~AײCۆG%ONO __ ~DlwnisOp^!Gv$4[g] HƆɪm$t`7GɛH8 $J|dD_`&XGGk %@EPO^dGW0H\i| cݰyN:N  PVaW,|/OBi$^;&#f s gOd+r'tR)/hl\W8lY,Zq%k4SBU"b"Dd5%:ʙk"Y)%1eѭ*ҪJjZZ":z; cLLW,\,sڬsPw<~en;e= !Z;?.~`sĢHx6mﻴ|rr+"%?~DSg몊{ѣ|5F|BuOͨ֙c^g/_)59ruLh"3IMs E˥蕓k~Z? BO"&G$ϔHa,@,dWn$P(CT$F;3|X6VKVbp;p T?9Fu4<'"80N|BR'E %0,,cd:y5dgfCѪ-Μx\{uyxs:ł1Bv""EGHKVIIʔȞ;+_ЬPiXyQYUFJS#V3_VΌY_߰xT,ܼⳕu¶[.]=Ng\ݚ=Ķx&x}|silaƑQi1"=I/Oۻ֔O/3'3(u$qJ᫢RSedW:96uWj_74ξ{mЃG?󨗲_x;¸Տ3ϩksc N}^*\?UK q$d0J@#se $#z9ֆCp<"Ckc>d`XGq+.W[E( ㌪Uyi H &IH~c9y%,LC!P"إ?!3;ӅK{gJZ"xJRNE؀$$+%%_"oTE"h;tE/ؚZ[Z/؄N{9 ;y9OF{!˛s oE#gs;9RSddOqUʣ/>uD%BWz:^Rgڅ&f#wZtλݻ<S߁^Bjހ!ٷN GF[?9lCTtGO*ȉ٨/_n|:Pv^}~ʥUS?~X^o޴t2D D4Dҏ bH(?llUllD Ƚ+6Hν&4Lݼ{/!4 endstream endobj 19 0 obj 5951 endobj 13 0 obj [ /ICCBased 18 0 R ] endobj 3 0 obj << /Type /Pages /MediaBox [0 0 832 582] /Count 1 /Kids [ 2 0 R ] >> endobj 20 0 obj << /Type /Catalog /Pages 3 0 R /Version /1.4 >> endobj 21 0 obj (Mac OS X 10.6.7 Quartz PDFContext) endobj 22 0 obj (D:20110602130617Z00'00') endobj 1 0 obj << /Producer 21 0 R /CreationDate 22 0 R /ModDate 22 0 R >> endobj xref 0 23 0000000000 65535 f 0000166007 00000 n 0000000154 00000 n 0000165766 00000 n 0000000022 00000 n 0000000136 00000 n 0000000258 00000 n 0000000323 00000 n 0000000602 00000 n 0000000620 00000 n 0000159617 00000 n 0000000710 00000 n 0000156387 00000 n 0000165729 00000 n 0000156410 00000 n 0000158736 00000 n 0000158757 00000 n 0000159597 00000 n 0000159654 00000 n 0000165708 00000 n 0000165849 00000 n 0000165913 00000 n 0000165965 00000 n trailer << /Size 23 /Root 20 0 R /Info 1 0 R /ID [ <5ef0499f7470c9022ddb686c005656bf> <5ef0499f7470c9022ddb686c005656bf> ] >> startxref 166082 %%EOF Gviz/vignettes/ucsc2.pdf0000644000175400017540000026150513175714140016255 0ustar00biocbuildbiocbuild%PDF-1.3 % 4 0 obj << /Length 5 0 R /Filter /FlateDecode >> stream x+TT(T0BCc#c3 Tp<}\C|@. endstream endobj 5 0 obj 41 endobj 2 0 obj << /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 1032 368] >> endobj 6 0 obj << /ProcSet [ /PDF ] /XObject << /Fm1 7 0 R >> >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Type /XObject /Subtype /Form /FormType 1 /BBox [0 0 1032 368] /Resources 9 0 R /Group << /S /Transparency /CS 10 0 R /I true /K false >> >> stream x+TT(T0BCc#c3 Tp<ԢԂL"J"k4$i endstream endobj 8 0 obj 69 endobj 9 0 obj << /ProcSet [ /PDF /ImageB /ImageC /ImageI ] /XObject << /Im1 11 0 R >> >> endobj 11 0 obj << /Length 12 0 R /Type /XObject /Subtype /Image /Width 1032 /Height 368 /Interpolate true /ColorSpace 13 0 R /SMask 14 0 R /BitsPerComponent 8 /Filter /FlateDecode >> stream xUAPb") #EYJV0͊ L1^}7^{9Ùf5w׌!`!`!`!`!`!`!`!`!`!`!`!`+k!`!`!"೥0 C0 C0@.X+݊l!`!`D0 =!`!`k fnE6 C0 C0"] C0 C0 5&-zٷ^{Ƭ/ b6}Ocޙ:V1}@5L  ;> dRpFd rZ;> i!&7yҖM ?xa8Id,Ȣm*[آ m)ta >yaz^wo`F7>cXgk]R4 tY{unyWzP):uURؖPz)ڬr[ת \:;9w^!7lФ9# #iFt= uw=4kHoi*]IqVZU=.ɬNKKkyY/mnhv\c[1(utˇFsd@HSrNCm O)ѡ]gej@[2L1ڌxnl/II)dv ڶǟUa]┣t>ںôud;M&a.avso6N>ne90wd>Mw|vGz%k6g#vAF003ں5u$x IdQ;B0xxi8gL+MvxRlpE1mXgȘ<%P5&eD3 ;`[noS@dȊz5vc.]rNI Vڔni>9՛$>9dIx q)c+,Ctװ'>u; y] úִ?[Xo٥ўr$AXcKVH&&xl3oj(ǝx*{L .{ }ٰ@~EP`C/|D͈8ƺ.Ǔù]"zӴ0,tVE.D`dSxp˹I6ބpeE#`ѪW }I)\ SvPeh!idd S)mDԤ.NټM.+5:BXwwdӚUH*r/$%HTw"ő‚L\TPt)«zHHHo Eի`|/ZknK2>kyvrSԗg/wp? 2-L|mc'U l9 IMaҫx qbG I}!#Hy+ˠ v. \v-KFp+l=c]@'LQz+6a GIKA{V <,;6ܕOi %wيG #?NVpNFM"n % aTwJʣC\]4:P?V#"E gܿÁJܶ~: eXf-Xw<ӌ1ʆS)GR«;nN9,@fH ] KֻV,]wo-Zͷn88If"1ć4TaXv *qP*o S;EURzءZ9mta2O9J$#$A6"sC%>&^ @r"X|X I}!uuC6?41W'OS[^ YHNclÍ6pb7PqFUqiE2Jٕ ' zZYy(YGv.vaVrQD `5>M Nǁ=ɣgT(h)II $e+ihkϊ.#ȡ=)Hډ+0* ^`4N#d7|]"~Rݪ.شUh@ ށ6u(dUd@I0/nS" 1 )b3qlFZxpu!_(аCZ9m_~S-f<2( Iv\Z"FR UOYpJ +)/>2 0 $H5#, Ü IcȬ }[$=;ha-Pl 0Eyo'@!FKg>IՀ@^lRh bI*[5R r$QBh/Jy I3~jxİxuPg˙BnVF]+ٵQR q [VǛER#Vv   - j3/[":AE0Ud@w$>Jeeiŝ!V"iy;iׅ(Wa|uO߶IS@g;|y˞rNIFIvoX[.%>& yU镨@R}!$"FANeq, NvA[yh|K`Z[p G>@zkVvAŝ)WnvA^P:ܘ;dU}Vm;|F7s Sy㉟7f CF w,Yq2MSpK].d(`:\dDN !}4p: MҐiUǬY3ˬpC%>4 4jy] 7?,q?`V* I}!NE,y` Q  vIzw*bZ.m2{PNG 6,rfժUQg'klC0杩_gZ^Jq}=C[C- SLX%׎?({&%V( C\IJP6u#Q!m rAJ!fGk9{d! 3IE0p7̂P[Ierǂ7C2rqVa|$INoKOHxi$-bpX>IYxZgȋ녱007AܚMw˄>+IqhS2I2~0qKhj"#n8ðK'PvKp@_MI nIBZbaY@NS ;la<$alb>cUL)G0rUWCc=7{/cժ'aXHUL&eGࢗwb,?oI}!"}!IcKuxz`TŴ@Q!.GfN9,A'ɕh7 kL[|e>$ *^+c򍌬B1d  ȊmhVPئY$]bTh>ꈧbT W?n#I'E1YL/~B&ɬt$> ?"8׸WY.4pst[zA`p;Ҕ 4d,{RΘ0#AʂS%IݺiKK}\X&~Dh)'"WI.4Ic>+sD L%zHo^9-wC0 -Π8앗R+c؂gDfu]8| rL`C(fXI!DNvWӾ*fs+#kl3" aW^p5 cY oݙ䆀!Pl/l|HG88V9Pl^ZȬψ"Mi;ⶴ$| M~C0 C0 Cv3 C0 C0 5fiзo5f !`!`]`0 C0 C0.6`!`!`fX0 C0 C0  !`!` C0 C0 Ck!`!`!`vC0 C0 C0ڀ!`!`!`]`m0 C0 C0.6`!`!`fX0 C0 C0  !`!` C0 C0 Ck!`!`!`vA![,˥KjE˗M?]H7x+3I( ' d3,4-S/YR5 Z!`삇skVZwA]cZq٧6#O>! gQ}G~:$v~؁[oE'}*WW4}uQsy]vоw=7;tjH'!^3")yRSO޻F^ryIeӏ}i7mrEp}=ꐃe&@$ܮ~=v␧Q1,Bǿole:wH{t~믻4_YDdj v@o57G+ϸkG:ehaC0 C ?d7]!sU[go(QG<'”ujoM.a"|Oܢjsd MNywpӍIKI QY{ $: "I8w·m q@JgayUᖱxx>.lSΙڸ╹l"6|/rU/_yqk삔C P)|cG{gu")^?k̿~Y{/vXAyZ0 CwU &$1+Ubb ʹ,#gTݦ. ~ +C7TR,I+8Ϙ.4У|RFyg)/+PVF 0b%eP)kH y~iQ(ㅘ;52l$E}]=G?jy=ڷ;#궒QR|\+myvﭑy C0 ?5?4ݥ]Y=򈃮,3Kh׆ۖRxɈ%η=$մ 6'pqШa'{B,;KO,"'96i;8(,$nzv> Duw1D#vʛCw+?`}CH(-a$pXd}݈d3[ caT`7 7G*ݵ Vت]0e['S"_h;=42ܳ:-&̶$ltྫྷ'EQqo"Yxb&g{6${y#v+ވߗ&ʣ a^qW{uk@ycH17ndgz_業zWYvvS./bЩqюIp5IbEzukKI"r0!`f 88h0 C0@aJenE&1Oɯޕ0Z"Mhna%ph}x@#,Р w@@d-P"ȣkFQ۴n#4G!AIC 5>/f> DAiUw32M uKx3 Z a<^|QW»#˳= H^)F+.TpV j%]=Ыq~ca<)vIe03%= *gj$&@8'LsXQwA1v[K2OvDNY3T.FnB:7իC,Z4 atr^~cFn+}L w |HOAA) qp]tjIB9hF y͛;N"b 880 C0@^˙P0p&', zaLp'ɒ;9SpR<ɥ]ۓYőq//Xɂ-.=8`/`~q T dvACs:ihp` Ң]ijv@&:`Y`a9&isLJfx N%_% ,x-[[($ cR_Uj\%=\KE`WGF @9n ˶ ͛W={\مJX+˓: jxvi_5-7_^I.4a =d g2ݲi%!R=>JN`PO( HAO@^n>iY JB9"vbj t|Ioc_xz-_A.,_fC0 C ?.`":'+8Bu}>2Y'*"pH{hXhkBr[N4*.'>vp$   je2)ߤx |AL zRV a&}^V-+͝3JAjS$sӦ#V--\r߬aqG (}C[umXlRe)*k>/D<℃|4eDR.~gO-9ɡ <xNg(n3t#bsMNϝ (S;Nȫ,NQDBo<6X=D0z;x fpGC0 C.ITǑj[p@$ vAU9gZRTD ) /[: U J!s5Cy\prnn>JXC\ ) OdH amPE@Is rV#µ _"D1 F-кhj̲mDcۥ'Ke>ü# 4R²CHEcvnaPš2R+j(ZR. J%+¦ }DlTqgh􃃲!`!r g.ss?T|IowlQX^BH8IBfs|dܜ27a9 II8:*,r yM$~5hr(dVi%04Nƒrb2GH:ǂ!* 69 pq.\mA erȐ>CcG6ty)/E^-s`ՈHA$Uϰ#MgUS?aa2PlC b$u|>@ s.xXQL4[]@C$QHVQ^7_ !`A ' e֬sB+IZT$2AMskן_ɨ0Py #z$Ǽp./s x,mRJ*t<4su~@.1nX &̈{\daVYY߂۪0IJ!1l7`Kʋ;ンΛ;@魔<#L!cLcO'B,DF`!Pq(]PqPr%tdwΰZ* lFN*LѬ !`k(fΟ Ճ;gN QA@*L !`k:fR%xI5d e!`@"`vv!`!`!`vC0 C0 C0 Om{i܋YR*%s%~rL4*Ôr!R ˔V|,绺*7P.r/ PU!{KR)E䆀!`@9@ ';* Jo<=$>+̣12+> XXC"^H=v߅̹!?#W29>&ܓ7;(x8e!b6:kw L|Ѯ |FU>3_CmpF\=,N;ܟw=F0g6}|΋e/e+U\iOj|a=Q>p~lӺ%|9۴y>]_У4%5>vyǀ$0 C(kr M?1m_!UEw>ihQ,GgP"ҦLT|;>\o5{zc|!pvcB>0ja|:@|q/WЮ/^|ޡE]FSvA Zkt=>1Iw@>-{BIil+i-0 C(kr 2aP,xهʲ(]ڷFh!CP &K&U-: |5 oD&}ȠNѬ8{?ݕ*D4nIyUG$>K &5k|u'R Qӭ,:ꭲ k!1) p'}p!Gl:ȎC,wϓ,0 C(.dþ)Z4Yg|Ϗ-ȂA%%Y"kꄖ) -ݯ튆v]ue(gf^hx$]O: KŠNms$l萾DW([ddJ- +iWRL>{DlQO0GuS4D|\RM3No7[E`"_~7ʣ;1+f+OӎfI'&zYPŽ{uU@r طF_/CYys䣷^pVNk-]~Yg51Es%4?pKn~ PX({NCbM(xrk#aя`UI>r#v\׽j`aRSUV@V4$~-' ϰ@ Y.Vq^|Q4=#@Eorj*  (SIŲ-(ӧJXvhP;r˪ cOś?B-4^ . w#v1o8 ťuS@vDW&HQC&j$䇪LǴ8cб)&Z+` wjc6gf p^>}!K0e=5z `b`:%$ n!\#?,dž"ƺm0hj|֋0B$(K;GU@ۦ 9Lkkфn s K[L&wofI* vgL}p4vAZ9] ۦl`xh=ؕBaS`B⥶C0 C(]n"*<+6#Km_uWHHN8L6¨% 7k{/ *+K /d:ŋ)Y+,Aٮ,%.0 CIFr!- 5g{ srٳ'i5U4hH.`N;`5lh?y L*7{ygwaXg_Eabeogc{<HI֯: vCg7G1eXyq,PՇՔ|xTP戊.4CUqe!_̽ESJ ~ .W*vbɩS1$ /1y\]Q yׄ lǸ>*K>B>1%4 ,Ikt1A\'c1ΓJm!`@q!v(TRR\Mx_wѨUWv9 3Wk|=ի?:qU"*"CM+UIvAQ2+X+1vb+ x$bJά4?vg#@>LVԑG1ʛ#TXm**YدYgGԐ#ޢE]@}$p@DZMMQ=& B!S@yNvka`.5刁ᤄ{.& /1]0JF'ªk=ʁ P̜eY猳ds;1QW846ޢ +OB{$G$㕊x9 6nK"0 ZPwlq i_~+T2G )hckFxZK|8Y1ONpnE>|My@t0RKN^QF9O88,P˨\W% C0 B ' PwLv2j8Ϫ;ZEɶ>(xr.~+_`AGy{(d}Sсo֜Q-xgUAU .;Dh8sZPMH1$eQ5FXKD"9QvQٽ`Hm\\pU"S>%}WH*/h&8`Ł/kzGh T+cEȬ (R) 9AXj2;##Mf8膑pMWP_W2X(((K&&Y*):8xp)MMq{3xԡqLq ?y9PSERsгe@{vH$^UNy\ꗆxI.%/om*,*7hP\+gmɊ9¤iht=J6)h_Rcp` {Hw2`;P.YxBBLo40 C04Bb)d*jR4aba^5 :<ڸ>Ye^,,sA":hwU9Bn.hE**Mis "#Rap*bD/dl\0}/^zd<Οڔ0'GAdX⹃ E*}W*,b:5&g7J"FGDSg+MX.[o8Re^IɊy к Re C0 P0 "g.vRҚxE@.`wLۊJȜ`Kh!`#f`?\Mb|ʘG80ᗞG櫝U+j0 C0V?T_h>.ߒlοs ? td!`@NvA_3 C0 C0 G &W?3 C0 C0 El,r@/RkfWW Յ|C.{.|$6[ctY=Dyk+|̎GyY,[CPV< c4"=Q f%o!P( i~|K!I67@3w۞x?!%w_t t7xiNG<1+i蓉;F5BȆ@0cSm |.y<@UcAkE u٭QCO{apy F_w1hw@AZ oM0ma t྄Чu8sЃxDE+ +gHBS_AL|iQzQJL* D/pS0aq R7|h{_J-Hgm;5Z-o.8x Wi@`f xҹdzeII~؁?ŗV[nNGNŢHL( I#!="?NRM7٘GT2}NlAKª>, C/H*<Kv"sm1b,pfpÝ+Q8$…W5=q'|=Ϟ7M}G9I$h a 0gJ$GL-9; 62'$Ld?9ăiXǒKRm]hE~te)ڮ~/c?o[!`fF~4=]ۓqʼnq/˄i_|ʎ3Ki{y 2.pSƁH@:uų pҠ\ D(*wlq-, 2$#UWIv '^~fzXvcOju oխ-.9b+<aG;"O>s@$aX"Ls%h/&+ZbjȼsZVdÚ 4v̒skf׀G(^.\@fsrZcf+!y_b"H=@@tщ Bvi"ύw~}]#+ C 3fų #HyU_v|&{AŰ JMqAR7R"YagyYMx%JrrAq>0ӬYcE1H5.̿D&OaM%Haz؝^z)ںpul;uFJ#xH@0Dڣ!`ĎI;5W./qp{x' \G>M#+ C ]`^YUǡQV Ԕ Q׬0طFX[yUpwPq$S ̣ѢZNp s(m|kh24]F&Gb^{u$ܨGi.Kօ!0v(*j]vAѐoDڣ!`ĎyC|,bU\R!;,C0 ܁ OG8IT$ klSGD5Enf \jm%G7q«.3a9I$ɨpEPm屙l/.21q%FSh̰ /3񜠑xBZF (TIRuhQ5_Kzp~8hOZ!`; 3G32"##/Tw!$nO }*0F)7 $.;J&JOPptGQДU^=S|Qq8הpQcrYVŋT6UrM?'-pМ-Q6Yv ƸbG8=vT;nWP(c2sZP pH*z3Y%.Bէq0YU2N%ńO=y/XagΞy~1e:qAbr/. N ahqR@\uvHűɂ~"[VNY<`)>KWS6E @.,^;Np9Se:HlqdeI:P`}Tq@HR¤5V trjd{'!MnEqTƗN*?;#"61R}& j0C:Wb)$J/Rlsnٰ&N4AΏ9Iɴ .1aƄ"MG<\"iL(f"Ǡ8N"30$GRCM?h @ lJ]*N"8e fʼ svmDv6<^SKvI2)>BǤO7s+%8(9şhqgm gͨ| ~~n)XrC0 C 71. rIK-￯?5;o<ݼf\e5U)|ZҮ8R)9c^6QVhi[n1%/X /XÝ5^xw4 C0@삂I_,i_|QIu{6NnL#]ݬrm䝷"{oߴImy_I9M,ϯ"Iw*)ޥ)puy (=Hm0#02jԠq/A!`!G)8,yM/6fn"z{}]ih7-ڶ=whPת\yU!Cx}Vʲ Y7YՖ޻J+طFwnիή_1-DK81c[2 C0J30cZIzZ[o9$yrwخs]6'qMDвy+}>~zRRJ`w5= _gxW"^1n9ivC'!~7V[gltf6^  MG+`&{(sw eKmFת|- K_w /%ӉWw/&<}wϘ9cvSO.rwֹ*W,ۼCx?^{! aJeXר1сDuBkxas+e^=|=vmx?zewO98~z.iJyJ껨9_0?ax7u+. _Qvx^4_ EOnqH.h!`cYS&Ų [s^kyx>3umЁRzv_xY[ߜI;pUQ\ҩ Ѽ١ϋ->\IIo!x╒4~[L;Mw`u #Mψg]wU$wGv4ڵ/?/@$\F< ѯТARmb󚧟 _te evxu*b~R&ncm b'O֘h.YRаTڮ.}nxޜL8لsEZSy@\O깪͛lӺ柿Wbֿ~j5rbzL^ve@. gE.vjQsitoFԭl l1j<}??.ib,`#0/>j(8F )eX[0 CPh. _&S,iS^d*sY0,m=G\!M5 s95:[ /fq5ЋXfgM UTW']Bkub & $WPTP6PeUgFTxh[%]vJN`y ~ H<%ha^φ(UHS"$k ,bsᲅzA O:f/'oSzg_Xq蕺_c?'qEmR$ Ǝ2)MRIL,9(ګ +/q4p.;2\S{Ze:q֩mJ삑#8zWA/~ݷ˪VD sf/v ʠvC>{dVhwv9t80RꔱI݊{Ց(XHO'!<1 O UWXB 0 CP.`^ E8-n[ۘD\֨!v'J9DuE%˂UT :.@;1:`י1{$Żvn ,O9xvmO~g'(vdnB7\Gs]]7)/@i4:ڤܳ+nwK|V% *ՐpCRDq$2[o9JxyT4$h" rixzKJ]:Ki}uVEK.ۮ\Kaʓ\8VwePJm5G/"E ,M( Dj`H7NVlp>#8QI`K!᤼=HYm.'I!`Sz?ۡC0(٬q ĻvV1b}= _kT>*xmV#}ik$ |$IWJ| phij,5M@;1gުC֚D.`Rsn?\ moןRJ,=FJ@ P@KNLJ;{gx}įi@[QxhH8)Mn'!nuM~[ؾݜs:ȌvnH{JGQmW.5[6bШ%_ǻ ]u^[ip.HV*k'Dhfp]@^57۔ )j5ᖔ.H"V,`!`h`p,>a=G= nqmA?U_ R?"JT,$tc$dQ"IZLQ`7-\0Q3_BFaRnPtf6%7)o.Q r|9c.9aNC 9ׄ"p Y<_/& -i8qW)U'/[mYgܱd={9Ac.#Gt]ϸWk+˗-_VŠ՘|߽%;# (Xg#eh$u+둇 C$5#gőI* C0 A,R?^h2=C+@.!PԘטRIŵl`úXb +A?!\p@%%YZ5|]X懓&X(n$Ԣ%k9>rLQEHXkfpU!qX[#GE+x|f8"~ j$͢+!(n3hlzj3 TM?|`$*϶-غY# XV7;k>^R{1}&s ר>q~Iv0H]W]9s aCV[g|Yc6g9b DPh8-5v^pb;k\ Ax$W?Ƶ[tWnjKl@Na5rpȏ%ɒϋsl<$ʼn,,l!`8cTJ9]Ɯ.Shw%E~&.u?p3EdR٪аu-,Bf5dxHgo#+o]GԖ3œ2r: ,oŤx+ʠo% i@ۭ\z3o} sOUiϝ̸ eƼ\Y -l! ivAA;NRP@s60 Qkxsl*C@|q!6TpXһp5!`@^`4 /H&1):IR?0/:*(rL9|82wM7^΅rN97n0 C#ivAR-:I) HP Ca&oA3JC0 `4 7R*:I2a^<5R uQ 2O$!`@̘efl C0 C0 C0+D2 C0 C02 ,*vf.c0/)(FLC0 C fL K$y1+&yVpd((0 C ̘f$&$!Sxüpf˹d77 C0fL {F~2X'Y(3b˛s]M}s!7_,W"yَk D)rFK>es|C0c]PЪ $#Zz^=avx!^i˜Ȕ}s l-UxЁvǴ8c|g§ﹻjQ$1d5gk@F(M?Ѯ ܢf'_#ۣ!`T".=_IX-$ p4v~Y{/v7m`2blY>󫈜}ҔY8ǂM}[*WkOߟWB]D 'iH9ae4.yt)p;n\|ѹ6eaC!Y vg>`RzܻW]߻⡔e<_ݲ(7TBVݦC{ݾVkWʏ1qˏ+e,j \[ɕ8cR| ./0?a-!/f5%G2g[HT.KpxկӎKgwds5tH_C&dJkiub Fd ii ~9lܩ03ɻ u9:xtrjW]م{i=صI?SN>V7di^ʔ`y )WB/~}o`h7z#x!޵ ~uхu-WH3|gTT.X`n}x&Db6c]ϗ|5N P C1"i*Q1i<8$g>:}h2JDמSfL>,7]M'7mIz)<҄t'W8Rq$+$Sy k0bHI3cf0*̘eibj 'r5^O0ԩ5+<\γM: D,sDq]=8x;'$!f#zm 0= rExfXqp 2̆jaŀHJ"]6XBꢮT/ҖhTԋy[6+"!/]2[(4}EwlMiᲈ-/<ʴL uA^Ӧ~UҤO&x?蒋} wy ڻ*ՉNmSb3Ǽ? 8~]V$b 3{ W < , Cd+yd~ /$W9Ov$QɋΎJF;2$q9ݷVuԛFcѨj, c$eB|%,Ҍ:`،[`Ng;^c/] 6kea]ifCMevB(а#S (u뤩09B4YwC͊䋳N*''Ba/̍t #x<[iCO(ƭ 2xOkJswﰅ_+8hԡ{+Ojߌ_~.نpeP3;a!Qr?;tڷG T%xkȐAE"JEh_cG\IBk3jIiH&Q% @/mBJO .ٳg׃ $IiQC( fUcaC!@/KesN0#+,s̖9)X` Bacjp/\8Tܽ dx&d^ !66 qk~W^q!ijR.9(a|XZ^sy52K:f&'.QdOen([$֫A"-GX:t"tvSl䈁q8fq;, FMq ޑ!Y3[R۞q$H.R8py9s75 y[^H3bqA_`U&!p4e[A!0ƑLLK"&z15%efdsK<+nc@n0`,n2kn•†!Pa`)c@c$PemDC吼 0 ?"#n!ܰD$#9+<8s,8qeg q<JtG0XƱD(c+!_ fHYPAUcV6}&?3Sxȸڑ#D .{?Y=z9{kTOѸ$;$FخԫwArѰ 3 ˈ^x1vMe31o" cA$Z6Zq~t1z*9lyٸ;lc0C|X 5ċ)>2x%!R,MnLgˀA|19v{L(~ܘ~+g_)^#!$&<:frbG)ĺ縳NtpD㟏MEK28Zk27!M0!XUcaF8o^aQ}fjd>0bKFgCHW]P0 S8 y_8us#6 7; uQ[Fs@h"/\T&KA(B+1Qޑ!4VE"7 Տ!2'}r\z˫<ҲA>ax$$VGo-Y1HMK0Rnpa n0GC0c]PЪV')0kr9g(DMʊb dT "#A&@bT@fQ9b (²QWOrZ{驮vtUu\bK:8ȁl*CKk!`@b]#V#3pN+|wЋoTT!GzBs!`VL :$@y ,{2"d#{nJ^|wsN C0 `4 3t0eTX {|!`!P X1fl C0 C0 C 0 D2 C0 C0@mdbbӝ"RVk>9Vw qyhbx+V(w-tXnICHmK΃L+z`κڵmyЁe*/w٥92O786aV?2a2„G^}U! Rb\pǢիY.ewe([n*?3F pI^%!=*[i٩c͟kvg.Br}B%ʮ riv-=#Cˤy)?!'iOEgTk>^dI%+(sZe*1Ԏ`tm]jB  e9XW=qǨ>g s wUbTZ9cł-Q}"l^CZarrG0 t0?}ѱk˗m)Q"%[(7^s3p@7_?2! .S{٘vE).xiꆶm2ȁAomW5^ہ+v;oO|My岋>]PתڋWw$1 ( J7WKV G9 =2&tЗ'V7 C] nX^LrkܱC{yO=κ;nwr;/ M72ןQF2۸N#a#2bФק?%4MSTW!mX4 BC^lL>t,M40/zguk)оFOW7vi`MtjMzlۚ0c5*֯o/?Wt|rPyIYg%]H'>:\꣟n.(swt /4hw)T\eVVEhmw6L|eqTR i}Z0 C]5bpu0ܚgu{W'q˳{/TDuԓհyyH/MV˽02DS Gs*O'[29{;%/ܥ]@R9`t,ۆPJ3WSG?ܫT)D6%qϩ_۵ [GҎo_GM]1w"| g!? BO`!OC1vr>!AO`ܫ~} Rg/Nb'y{$v?mjxzw JSN킈yEwPH00x6t<-:R/;U+'`Ho!k`ѯo 0 oݱ}-)4 qvA!*c{^w*{@䦮TDN@Bvi5}jvA %C0 ($. <Ϗ_qF?CkY]lM\dOo?F1Sb *qvM,.iTH?-W"!`Oq 7xF%%q#bJ|SD6kH(epP@bb0OD; WngOӾx͍Hf MPK^jܱuA$jO@jy/4|~SzE+o۶p-^ 6zX7;r;)ytn4ż4% v!M .xkaZŠBșBə*vL<$JEN4¨If=3_CCڤqa%2 50 C+H'5f _װ2SJ +; $ Uq| :siTR[_ ScƎgvp, >`)1E>L&;4FUs7,~I9훆uLj|#/velL&_h>{=43VbcUTA5c =_Xl`b !r.&sbb2`2'>bHa {[8O {s{a >|T{gd!` V$ XIbie4@1Gå,ܥ| _%}&~#LA`C@}κmhaR~O^f2հ ҝN}˼b[f[OYC4CA rl!OC삄ztT̉[C^b] {Fx@j0 C0+ VؚNPx恰TTao75 C0 +BĦݧ7wxqHHⅧ1 C0+Φ$@y ,{2"d#M C0 !4@Vgo!`!`))8(&!`!`!dfh#h3L0 CꌈIb!`!ivA8q7$.0a^ J c 2$dcn!`VL dII\a8l 9"d((nFo!`$VL  _'ٶuwKUR+ͦ_h9؍]2)e?E;EZTT!lj~U9쪿~_ǰIh@QA삄dm9~8j;2ԫY_|.5?v-7g睿oի.i >~iܡCw }WEb^ROP;UCnsΙ:_d#N=$=;a@ݯGU/[>vΩCǰԑ$1 C#ivABQu1QgX 񇜅y4oDʽ=gԜlE)}>80/3ydys_7\͝w\/e7kNlrVbx_:YO^~k7ݷk~B3L4[o>zG", -| >c%gK|}#roNX|.sK,ǽK, J Oݻ$f!`oX1o}-c?_}UΝ.m& G[ L$?|߶ <XfnkyJ&nL?ڋm~hdnfzG @t1v z 7ᇹEk/FG@+ Jm}r>A{ijPz*O<~{i3;&iP8@ݫ4;s=5Gexҵ x)s&pzL%dw7{hr7 KD=")sO}i q,w f!`C3vA:57oJQ`l?Y4 YG~6,m/ċ35WO>n e]p=h+{\pböQ/ w}^~i2ENnz$mx>LBV.c,`ppSC˺SrE.}q*>Kt/MҧwC׎]%myަqcǏ[wJ̌loXk\V uѿ_]#[ʄ--|kNoѸъş{Td.zľ}uF䳷ߟ7=Lr ̌=&a{7p-;/j֨_n@7i8u׏}=Is-xxa#%.z6 1'ewヘNhسGu&8 [ (YHD]H>`U*E{$[}tc+!`x`L]&k/$bZ})}mw85y!^G(_t֙,QqcE\cc`խлN{ MI]·֭Ndh!v! ńWsr &"*1ey䇌i@=&FqE΁8p>=m؀4d4L۟Sbyf2ͅ?s=(퇖]z+OpM[VI.YE%^ /5s㦍۰ zL^QDۮן,_.ow %]9=㏙>I0Yj6#_I$b2u5܇AH'/Csx$g*/GMTi@[ d*͞ 給&!V{qJ+ы@ixwr﮴V6 C jLU?! >4A+si#tՕ]2m}D&1 @k:-U+r5z>0'zvA.RG;mqք;vhOs9pM}qP%Q`h+@v5HN.p@I zS =c:1i5o<7p@7_G\;u̧{mRcFgKKS7m9gF om?Ɵ[CoPʿ%ZFx|4;]ۖ O *ka~yGn,L0}eM|GjjOǁp,ic zp/0+pJ(d/-z{$Wz3^I(ѕևqf}C0 0XJi(OkJsLFg)u9|pdoq'7m7vCT@>*n@?:癭o _$Q˔.-~H  Ԅ?]\Oa&O=83)o\ L17tcwb+,SZxG8҉s0K2\)P L~VxpY#Ӄ'x5 C ,NuaTS$$Mu`bZt$oo<+sl}6":vXUZun;ܼs@(ny~c.pA^EݤǶ=]ԕAXR<,q ա{qKJu vis <‡? dA72HҳݡlM4gj$Tb iq©=<%>zn]E!`8?ٍ $"'ӟRY%e7_jvjG &_{+M |nuxs_.pt D@5R&Dznݕʆ!`.ɷ K%X R Ӏ]<H:-:P!xDc!3.Go@#5o3U1\zQAAU(NE)C>S܊\GGvA|`{oy ~wLԍQ űy-2wiʭjRǁsѵYhpkdYy.Ƽ" {dv[KL#Vemkn~9W:dm ͂y ? إ]@hB!F# Mϋy`_'l){kuj،4 8U(=q_H.K/-.aH"Eh](k}7hvw !`~XJo #Î t"[+k+k8P3Z݂Vh/|"s"V9qE cYGR6 @>.A?8z@.@˙q2[I fVP,RzH5֝oŰp{nA3x.S3t sEZ3iFXQj\eHM*ddH)EAªbƲV ALQ@3a3g<Ǘp10%=?TpYW3dߊGľh3wǂd#&tBʧ3Q9ZIX<VqDÇ}oEɒi={_}x|I>7h>Fxo bT'a }2C}ĈDbx0 p{ K X2͖߀RfkO~,o‹Q7fC &_Ba%RwSiH{.{&m$GWx]!`O]$xe5 L+QYX>4X/Ag& lQzz'),!%Zzx1svS@j6~]B%79ٰPpM>(/re.vaM4Y i@$9,ԳITGVZ%@=[oܝrdu/SziJ鯾,+V5\R|U*˶ԩl}澗05{JX!_߬ӥ'Oʁd7H:ve˄-Ú#Cer kcAT#U6XK lt~e#ύds vpw@MAL5wgyqkV̲D  OJ9RQw(lARi0E~Ia߾ *5~%s2^r%mR\M`+.-a pd '^ؤ$e_rlxvcAdDߋeJ~'6cG\s5!gݶG!_ )~J LUhԤέ>zJaaҺw.+~i$QnBʆ!`@B{IbQ$sb7\bF&5~utѱoeVRF4^0 b+ Ǣ$$37̓ x2l,D1\Og7\ q?sNxDܙ'aE!jb]A):IBH>s<1^cw;fc9Rk tKݴdʯBmMы$1 C b]P̋NP0O>awLHzC0 C u`L] 7 C0 C0 D0 C0 CH2I Rg$h&v/vαP~䝆4hqɱ&kao!`Dxzի>% %P_(xǩX[CŒCu:d#$զ ")O|lʽR>80/3⤻ﺅ{:I' boy)͛5ɣEk|\ona/oת{hEAPi}ƆKD/Ї+ gv`' _q/vnR1 C `L]k?p[G~-%Fu_o[FqAg{ᄇ}r_uD{tv(ڻ\zV&>?4{g#mޔ&ゟOuk'ƅքɣEknѣit!z~Z;̺:p^Z)G5[Zν㙌[rp(T?DD\ 2JtO_ٖm76{u4 ?tiU7ް'ת~gӎݺU&44hao^szƍV,4۠2 v/MaP;%iwufFoQ5 W^2i8uW}=v!8{s ^c=u٥q`+V(9I M~脆={tYX鹄{+xi(CD/s37:vshO^{9 Nm „z\8Ik !`ab&.X5Xwq̊t+,ا&rN#9ہ% q-g =hbMOjJܺ%S X"mjv=;Lt@{vDj(D ^zgf}Βy>dz =vA<E7n^Z>lOxV?2aj1]pMtI+)1:AnM`E?U&ev(ϥeEIQ\Qns \"e؆y 2X1"3oN94aϝJep6\'ke斪U1h>bxvKVQ@ɯWwygܸi6޽#r(cA(5kvg.<˗K5i%UoZ?f'deBvЖiPyX,Y3'bה2{ j0ok$QӾxs3T|G`î4Ƀ3:o*ɛy)I%=xkےB䤧%hȌB9<J  ӵw#!`"jLU?! <( O8j/5C Nnx옡\LY( &xʅ ]G] f-?'FzJhBbS@ +w8.MOe]-CQ9(TZF}P?&I2\>R].=wdDVWnMXco4W2H2P~.1ޞ3qtB@v5g&  C?͛et,O8 뛯xtC1Yl}ӓV-e/MжM90.fQh Z %ZF05;iEk/ټ# ś^P'3e=Cނ#,ܚ4>w*ElIBI(J/^`VH=P?6,HAC[/W &.8h(ǽ0 C`"$.yI~ZlY.\u mw6ԫ,n+ m$ ][W.HaۍcrYy74z7"|&1|X=|bEn}] mVo?I.G6?*9L@(6r)u+bpɬvADF$l@ .qQ֤H`H9G b {W30isE˳2 _FDPW˷ms|`-3oql. ²uռض5/s2@Kʓ'b"|n?z)SλHy7/AAJ)J22HҳݡlMTkj$Tb^ݺ^Bb6$!MFے_ PZ#@#w#!`"R|Ov"C!ҲX ][Xt2O?sJRjF8BwIc)n,J)&K+BMc U_ka@Ӽ@>L_1l~dU=h8"v'>SuǾk?QJ" ZʞgDm!߳-qA]eoܹc Lms'M̩Q}vYJXu횭'7D`G]i2(±80|xp3#@gƵNIBH\j"Ž* C0"`L]@伄[+[X bpa&u9>#݉U DС!-ݞPӬR'"%Bo"l#mxQE=0 ?%* pK7GGg5jh7& ܹcVn-U2Xbp!g/n\`萵*K)4 oKWߥ]@h"D. \?/VtiApS.fxHPGg .],NzKsO64^r7nyy+ 3pV6@w׮Q{0 C ^ɷ jśD!5Q}YЁqEsP`meMDYEWSzDZ #8^GKR Êo/W7]a`NK0e|хm헛m"VjNGC84J 2{ me;ŒX#ϗ͜-9Nw?p!a;Ȗp,f3)AAb"MS ,v )0|3?t̤ҸM(c{v<znĢő̇(` DȏMM)9r @4c%)qٷ⠳ܹcA}L:y} y48ZIX<VqDÇ}oEɒi={_}x|l'cG"vm@aWɌ_NҵŘo @X 'y-0lg^}aB luz!4g [ϫ# qΐb qD 1mDI[2 ) &.8h(ǽi0 C H:HN%"K[Ջ0^PY R/B&Q_e٥ _y"u Q!ٕ4z9 m僇|CR!&˭B6?Ds3P6&iS&$ ,١$T.uO߸;ϝ~2V+y|2Kb5YåXJL_.7Pr:/ZlK7m{yn׭ثTZ f[0yR4X$#F@14*eR`Ě#Cer vAT#O&<~Fv+,ڌqyK u"~-Zj~'^''Wn%5Rps)뾏D`jj)/ MU<" # r.l!G?,q$bX%svӘX{p&wدT:O*RJՈjR".L>n!`VL :EE'I(Ifn'e,& Xcݹ0"n<<~ $=3O4"-|1!`!X1.Hx $$a|3gl|uy:%CnZPb>> ((=H_߃٭ CH5X1.H $$a| c 2c!`@ 4@Vgo!`!`))8(&!`!`!df.I2%L^ýTT!uF$1 C0`4 ԛN 0/\ %NH 17 C0+qA2$a$0O c 277 C0+ ݯlۺ*Pqf/AF.wq"ݝ"-|*E ;x [uoꏥ^/1J,vwC0 ivA\ c$mۜuKpWMrwd\7W˳Ns+]j[ny;ߪWǍ]8J}ҴC z)#>~h{/w2/ޗ.*GoYs嗶8A{zˀ[v֙qz|; i@sc ꚱ5 CH&f~gW(8$^%:k>N}ƊrYgqJfMTˮXsJ͹f2.9q`W_fRA_&mo;^5&~ءne.+ڋ'??ۯwgooת{hEApeRJ=:vzuk.؀W ;2Q!`$VT `Ys{}љkNNGCVﺅIO ] I~~"t`a )OTi{vB%5g;k/ xݻu=7)nj"QiyޅM7}lʽ?̭,e\{54zT>ZVwW+m:q>kjPz*O<~{i3;&iP8<ϯ,GC-3?Y4 wVG~׭Ss4=-t!.|T'qŸ>[Cc{0^W?\2emU~QDУ>/4f'7v=TDE G; ..{1[lPW1;9;;U*W_Oۇ52K>Mfy1r?tiU7ް'ת~k?Fdn ?ZgkNoѸъş{T< я6fR%޿ߕP^І`?M }%>=N;hָѱ?Ǖ@abj8i8ē{߹߾6:!+ ޟ7KEfF^Gr]V6 C(J&.YY-W(_K/uuWW|!Vewn+V^6YmY1cZ0u)/_۬ZF>^q>v'r!>p+`ZGeAG[@C c,N",Drcqڊ!Q͜ΚYЃ#~2(%K@pӶ7|a]}y(hMOjDA. O.~쯾K>א5?hW)˜%(6{XP"3oN9ɪN=:Q-WL>Y+3T! #gwdzu7|̍6n.+zG&`/P(Q" k?mv?\x/ݷy|ϡ2Κ=EGcz>o!f2EL<4ARx`zuaP= @?!'iO2$"${qJ2p@#dl͋I";#GQ]yY"0Zy&Z镭 C0,Rɴ :CMGGg$!]":?E~2[EgŻcV7ታ3O?gw- ,]u5KߡSUD])cp.8PQ MP.RAF "4l Y&Cε U+r5zQ}zvA.RG;mE [Vء?UW\6IB(?ž.@` ;်  :/'<7rY8 뛯xtZ.:6ozҊ1]@ڶɜ3{#Œ6 _e`㌲n4R~헰فZNLz9(!vd9(H[.Tt)c_h J>o'w`H 0!'Sf a6L6ZEC.3u$2TkWl^Z0 C!LeeQYe^p=jcw++T/}Ȱ)^%㎣_q̐6Fs cD9k!^y-o_ei)(eJ' I&'bz|3yxY5>xt]n% l܉8LiimFۄ@v+bpٮvAaϋ0@ N`a!EB@XlQab>pFDx~f˳2 >gA;^-:Ν[n^9 g<}~ZDZ  /dˢ[UncxI=RGkRfk@)qzh /n]/!SCF as0\Ax00ѐJWlj< !`EVdIi=ԃM%>m XbAgѬV$lA!d_[Nq(ģ'/>C}EB cAu=9J]^=$L%K.=Ģ@?KcJ9.Ycч%J'J6b:RqDl~!$m>S±ڤǾk([m9,v?v=.x:ucLӽꝿNS.ٳ6b5[OnCNPHVx DUJlbf'%a]r:9a7o-l?ƈc+*l^r!L~ޅ*]U@&I{pHCWlʆ!`EVdl>c: WBI: Nzbc. H!5Kt xҠ+(<܂zb$8h2$b-b/Ni"[ao3U1\zQAgP-|- .9rA Q&Eܣӵ l^[.u6|/ʺv`8\r3 W0)/r-va&sρt]>m#6{^=TXv>:)rW_?DYz.}RbriCVNj/RM^|uk#8*VBzYg#L ot @ CHxIQϣJ;9Xs|`.siIA$ `S~ Qc1S̾llċK.>-"z,4",{1[/df{&X` h2,B_( #\+Mf$vNm2/sZC WMr=?eR~̋tw0a2ؾC-oY?_{5eghg!`fl$mۜuKpWmswd\7W˳EwwU{p/0isSF}+|*^-_pe^ .E/E]T ~/mqɃYgzc%4<ͅ_+>^mDge>[C0 $ jv|vD:_(_{qS!񇜅y4oD[H+{{T9٬Rf%}4LL#kYcפ _sKY&;ԭ,e\{4uƽۯwaoovfh|Ǣ+/U*߶{ۭխ;R~{;Fi!jb]˚ۻW=ro{).nU'usЁe4Anq5=Oi~g'*YR#Əcb[ٽ[ٳ^pG3zpfv z 7~[Yˊkh|2p]]}Rn߶=:VJ;uW}d`SI.b_N͛ٝAt/ܵ.{1[ɢY *au1ggJx]Tv/KӶuеFf;<}g[ޟi֝<#3#/Fn.m5}VfnZ%CF p* (.oP7m܆]лWL^QDۮן,_.oCeۙ5{*sPMkDx C=r:fevxlŦfa L]9}fS=-{ 3}ړ ~^r/NyǕGȦ24a !`Edmp]&{ԣ󣌱nR.@ {?>d]prc ,RO e]V.>GMuӽ.5]p9ר(D&p]ueG@im2-v,1&r] sg/+g~H𑆨ȼrHot[{ȠAtk;˦8I(R¥@v"kᯎ]GNT>1gf].9~d}uQ˥=S|f MOZ1ft (4uC6sfo^Fq lQ-6F6;P@;ZDb@6ѱ^ݩҖ ]ȇz?!4`"ÌR!L~چɦ24a !`EVd,[,Mӟ44Bb4n{u玻-uT/ET\ⴹ*oB#ya ̟9n@=ʭ#2KK4 I&'b |CX P:Kr.'#>s;Wߟ72mFۄ/[2سne`[P]&"=8$C氐"k _آž|M Zt77[9h`_9ۈaUjֹVvor!>e:my!CXݺ7w۶nWZPbn^dznh=9ϐS^Dz!/e>y&ef 25k4&?7 Mei`@ C0zɴ pV_zݰm|j;Ă΢YjeMd)8" W}Q8$ *C xw+v{OP2&t/"L.Q hh.9o?ܡc nqe?}tq "=voDk|ͭ$MjpvCDm9,v?v=.88 ]0erNnw;ibN껰 fHVBƊkl=i&=:MCe 2Z[&pRPc6 {!_8% U'4Pcı;jٵ 8`I/i!&?dSa7 l2!`@CU2vXpG硞 АNXu DTDBEON! hx#ͥT  '!D9,V9s>L/IPU @v'!ciN{S1[e.{^GIg5_dM-rµ VZd ..Cn[{uS__%:dm ͂<r2vqG35"Hy"(L1ɶRǦ8%_(WPoa_0|aDWG0i v`)1E|!KTNE˗mS{~}/m>5{JX!_߬˳&Oʁd7H:FeA[$<c QR9\09ՏiI$ `S|4 gO1JV|Ǚ%!2UG+ʕ*w39/ qemXCa &ӈܬl!P`#vA{to?-K< RR9Q-"-RLp8vq t v|,16)9\|.[=ݿEXhDYcDk_ɢ\M4@Y-eY@fP`b;Wx(=0^얲E )O42`mɯ|" Fv0 C`"ivABIzGcP̉Oݸ  CM er*qt-E0rqx) 5|7"Y &rr/1 Cg"ivAB~$ Z27Sgh2l,D1\Og1.2~;%f AƗ"\!eiDŮ!``4 `$ Z27Sgh5c挍?.jbfdv~2rHw Mr C0 EE#=$S)0OJHRgDLC0 C V̤:C0 C0 CHA.HA1 C0 C0 $#4 lϢxh>Z TT!uF$1 C0`4 ԛN 0/\ %NH 17 C0+qA2$a$0O c 277 C0+ ݯ𓩻X 0c^ :UD cLm[%z2s_/BC0 "+ 5W'w[bR_ٔ[ccAHX XuJ((>W}Խ[hz]ut/Da{gmco?H~"R9Fi!`D#jhvA4DyUuio=#cAԏ~n2(z'id={,pw߮ 08 ئ_(", -|2˜rAOs[rBBVP.vOY_t?Y4KkC0 C``,~v{ҧwK.>wwGnM: Rm߶\XԭSgx8i\P̕ _3z=.D/}R90{tࠁR ^qTիUyK>9{ nM¡pR͛Z˳Nݫ4; Nuwex޴Z;_~ި´kR˻SVCm:gI8y!`@|`,fv7i|^pڔ"7T͛bd$n /hsMn@1L?.o0Un=\W:вeW\vS&bKt,m;kG.wx϶?oӸǭ;yFfVΫna͓OUsYz7&|~iG~Ywn*~0/^szƍV,48Feg'Pyyœk-W^Lxx/4^Z27}fx%'3V,pyՉ]0foBr&_fͨDҴtF-m@пߕq(ZL 6I&'p)o{[~Q2г<}i ̾R5׫aIvmެvj!Pl`qL]>ga%`]5tkK-Aujɩkwnʕ*TR GhSC&FlzL[rnyK9 ?Z4\,7]78]}On$z 5h∀9sՎu_G& !g*+Cn :?a,}=FSm3y{mya@ROd>Q s P-WL>Y+3T!@ó;\J~_>kMaE=#r(`A(5kvg.<˗Kۼ `t'#@.Wlux>9>ktBÚG֘>It*yMaF>Ftuyast}lt#ُ &feĀ!k?I?=BӒګ*Yҥr-D;o6 e%x0^2邚X7Ť`!Pl`H]@-kȻoה[a&9(o_ Iu8| [6/rEgyг"c@L7 O? ewtX8ӱC7^+lꋓ"cI8~y_vu:'^{Z!x0g1u]O2']\8;z0~qJ 4?aэH`'y0s x{5d.{>痧c93cYm,ey?Y|ƣ}T~z~4}b#@蛞bl)cP~iꆶm2ȁq0 bA߾΁FoʢK.lkJʼs 0/N=:9-͙"SJ<b?MPy#I% Md(산[-zʍa@O^O#!`@A&vG :`q'~p%co+qjӟbeӀRtc_t3!DaV8./g.5 ̟{ -7 cA9_]PEe:mDzuռض5_[PpePz>0aع#g\~삫d][H[W[z@u =ĺpMI`>i]v `ϒZmwAܟ J޽iݤ d C0 ,7ɴ SukK>`f]6>[ƙX)sw[IsjT߅]0{F2Vl]fM_{fE{Y*`Ƅ "fAAYQE QP0Hd5w{^wU0;7_uuթS:;>t2K %q]Z=`y%TA!H\/DH/ 0uL5OxCzA DD^N zL 0:t¥QJg C0jlg 1E#HʁM13"iöxg e8 ~d-bw%+ױyqx)CT.d:^A㌀lvIVwz0z {-[oYPD0lD&;d\/;&ͭD$bD__ ǁC Y${d$X7HF`EkM@e[}yFW|'KʌY|@zw)B]+h<G xWub&SH/@"'!ː^j*?8 L}^:tI㆗zf C0j> {{~^b!ɖG ~$}kȹܳծbg]ou!~H|9ܢxypn`d~I!>UJ:'y[9IC ̟d2oK~owWB#U첊!9L,$pHA<܊e׼0^Li>dx S(nҨx%"\':5=vow=;@^BbN8 05|/UPyGhȷܱఀ#18wa/԰$e~8"sgbyѵ|Ѓ_r@ \Ԫ5[Y}_-A8"bT2`Ǵ;c8SY<毯3%4O7N$?T ,Md 18"U&?)L0*GK?j8X|`$H>9`#$H $ јў`&*aVq/b:@kmS * mq8BD ЁG\X3U^>SIg`fMBh(0 C S-zA ..0YbAx#a9=SbƬ͡lM$Fq ]^F4E/pB􈓺⬱TAA8h<慳@C<xIU*XqZlO5M"T&|cZ.H:~뻿k6 ޾(t+}K4Ex(1Y6ogIxP~!`$1M/(ꀺ2Y=dݪj84eK߳v3? rK/9n}޽ߕBws 6:rGEu}lOټ/{G,'[_]gUvީy5[hOt qz+8>Twީny.y{8mR1 v ڕb8ͧZB#(Ö0 CH?%  N (M8]y_%yK?=pXn;'3*lr9e; t뮳62r *ه{iq7(6M6m>,jɓކO6Y•rerZ6^8} %#20+>:;YmŪP]kZ켽b zA0anRFB~d #x_BNh\}s~e&3N;nGb+ٷKd:.JǢ<^"#w=@} e )¯$}nIy.q<X$'jI HO:C\imHw<SEIbY{-sgFq`G˻a~KDC5^n| /5h+|/P㭸<[0 C  R/@@e+ z A*#a|l$\8CȷRč#Ϝ#󳥲2P_6*6=Q`$z'1ދlg@PvvGECfy$A](8BߕIa7ǞFaaU L&6xpF "[єSO$ t2 4pMd g}oLr!.t"}*y`BEO(^Ǽp^/&k-W(3L- bKξd:J(}\D/` 1|!\p`gqDM@· $:;Dĩ7kB _+(3A`0HɦMr2~zmEC`wo+0 C R/@čmpʕ'P =ފrh C0 #WJדO ՟+cBš6p+%1,FFO˳Kk^r0_zᆱ/f.\HN[ /6}bp.p(Xʻ2R p7'.w !͑cRr-O R1[ћ8,U!ʈt{J18H;ّ/nDeKr+NG}8$}dQB"Ȑr|C`BR1??DsBd ZV\4,m!f1K A`2w8b%YT~S An'ܫ@ LG\"-^ ?\B # N$m!$ ܜw r­BeA&z-O\2?8WsOLMlẸEBqDHx`c$쇐$8 GeG .SN>}bdz'v'H|r<-=RM$*#P͆dbyU _.  >W/b2ɻzBt2%KL\I+椉.t/=`Q$>IHJ+ﱡp&jM7V~Fe(8ŠÓ%73!Cdb=`IQW_ag+.,)ѧgLW=b8-\uYCZ"s , <GA 3]t[/'Kʢ䶢!j4e!`)G]z kIM2Hϖ-H*Ve688!2 >0Q>!`Djaܮ?{} 0l՜qܓBH,&n>(0//r 8HgJ+I?#@*w,CAZ IKNЊLZ1g?\"XJ%\3q[D\x*3(JDz.qcÏSaً|KҰ9 .l/ p(n(/oG5t< f hw˸8r64@+|J_,v)D  ]zc"nF cZ2{yTXobxI1 Cc^Pԑuevݶ[]m涻l{v?`n槟Aνv%ԭ/._OZ+tTn{P~ℷ駆2{%kCGyqGewJߕ&3/bmHZqs,]]a,gg뭚q~{u?ivtB-hrԑm Pv[zPsneB(?^r C0j$lb~g|2 't"{?̽O:FǏ~٪.YaF>!9z 6'r"6L2_5mםѡ5ֳB μ $C4aAtG/]{1j˦(l=n4f~繯N~/B*IiB+%~@@8M\^9XT.}o帏F*3 hy11/ۯ y_!`@!Y1OҌ.|z3̩$?0߾z=1+ <1~Ml=ȏ?6ӻd_>Lvݩr uUbAןB1HK?*+ԓC (jGdoc@G D1+Dhh㑯>eD/L 1GU,^?GƫٷLxycQz]z{҄O<}@zчsNT'Pμ`fpхg4ټ1y_e/u>{lHO>$u{ P!O8UW"NbM6"G2-5Q|A[_]gUvީy*|jy%pi%!`v_TG`i*(M8]GJGq)f=6ܠ!gtKy c}"jv@6V.~2j{JK 9L6{~̦?״LBEz#&} #20 PW|Gܜ8: К ]4XYID!mӻd #c`V]eabz7#Hd~(|b"m߼r\r9L?2qqIeN,t|,JϿ˃}/Kp~'߻}*R=Κsf8p`H0%ж_ 9FL~ q|lʐrD "Jy24 7<9s{Ͼ-j':̏p1D֚ Il?%E(,B'LB]u}RX-F.l ZUnZ̕n~݄lxԻßO1rPDd eShazJ'7t/d1!3 ($WЃw0O$v %SO(K$nJξd:ڑKǢ]py%ǐ-\p`?gqDM@·  #<ґq88Q)Věn;NF2ǁ 1Jx(&|w?AaRҚۊд!`e{J){s10b? hYr3,۴?]AA]\ވ52#`.qAױhL,j,lFS:&@H-v*qvqظO>xzuRѭמa6ts$wt yI®4'BSa8(=G$l=/d, o_h-/?r|"nw٣@gjI[k5M.D|,J 1"e ZfՃ B/qnBrJb`I9Oο{+"oJ؎H fZQ L!&?Q\kPj^ΩoE9!`@ WJ364i aB\ġ6p+̇h?16/.Ɏ&ibà{HNva3W=!^MP4N]ĭI)FN5OXKU+FJ!DώFqc$*#أwG,$cG؈csWD|ԡg=s^*2ӷ} t~9E{00v a&N S}35|ʇd#~]KMx+DA/p4?`S LC OQ܇j^ΡoE!`@ YJ "Os-z{O,?tNP`E Gur>UT/ M=w-_1cb '`'_b >ɮ:dߕIZD#pIyКk.g+ .x4ލK(xmJ!DKI*Ά^wYK&T 1y+xwV(L|~ P9C/P~o v(}\z`gXAMr{K9坅HrX8L[+ߡ*vdP*9!&3!Dy+i~Zso+B!`) @28.]N$6YI\ șHMٞh2Qtr+9D6dfl1@PD.i4T[4[Cap9Ytli!^p9O0GnD%ɹmwr |[?ȉcbK|Xee'@4::\/P)-Lnp,vHn%GH,B#$VsV*SwCAx896vw9= LZ170JxRFi͕2DcQ.(x*čsU>68e^kD_@Ag_tCyxyVf>1}g"A 퀆P Dž-Ka8p$wL"cWM:òZG j,:<ފ˰ C0j 2e#A)na49@fOC,~!rmJ:NSSEZh"-IQ#G}qc9 WWד7_Hcn~NMKa=,x'OZh-Ię'FG eU"lZTKC0 "izAQǥ 2IQ9UE{o6Sy.az\K-&X"~N.,zArk!`;y}2I4)V{IL1v@" < [,D.g_ E!` izAQgBMI T0iࡊ0juD_t޲!`!PE1M/"kL5m,\l>hX0 C!PJ@vgo!`!`)DdX2 C0 C0 AdzAgQǴ0Oψa,CzF81 C0Bc^ &Ɯ9Ui4PT!`!P1M/(!"&)^a^V%[d*?;rn7tҙS<8?0wOA?V>bEECyi"eqKc^J&) K5a!o,>vSo8 Q^;5r[BqGy֙ݖ-9g6[RiT{vmwtqLǭOƿN+{CjٓxH(߰~U%_āMl:dͯX$O=ӹr޹>՜{z} o$x܍oSO_mםV]^gL2:"E-w|ZW]g;lMQ/B2x O kt3&pv?ч=Csw/*w9OdݪkN6,T&'̫}#<,={tX! ݧx䄑JZ_J/%k,*%# L(jw8¿Xiu#˼[\/YXz!.JGoڵ}1td_ƪΫD<( gk%ͼk@v\$M{m\b73[wPKTyiBX夭j6gzϚ7ֵ/?WNP^kM,efx) *hL)j^rnV@M&yp0_}ю;l;)nE,W̫}x xKAr&r0RCV]k s|4WӅyӍ]CG֟D'g=k>󧗖(%cwm~}(`~zF J+أwclEM6n^ƨTc:\>Y/Xqyx{0&/|wA^tCr-˶quhN$!RtO?#c(%.ݻ4 C^ v9*|q hO+RN'{Az M)+3/뮳5CƄ+/.SΩzƍ&oZps9ogiӧ-T/xym8KJ>-rG_-[rA{Zhyt `˃j}]|]xoey_"o-^{/u^#hJE>h [:H5 Șd p8nN;H;do"߳;:d38;?Dz)_Єk\EF@~ʮ" ny2.X"KKŜe B5i~<}<|ه-3~rs?&.t5lP P0XooHJ'WRkMJDct0)!ҊR\ZzY  x~ڬ-Mft:eo4i; uiA)pӍsbw8̿ж3{Bn)dQ=$*H_k F<_8oV|~נmY8zA޴\/hw*'#_/8or(0k"t.}#ű4=Q҃+i Npҁjɥ{'f$؆-Ug?;2upK[ǖBP+$1ed!H"t$I\i tO9@MyL(ػcF 5!UorM .nnuҢ@5VGAƈ;j ;uŹj@UK=8^n,) k.02ceD-ŏ H{{ {GeM|{!nwanIGxL0z3Nj>A ;(. u&NesFSr)J*t':&0 C\/Vhpe]B]Pi+#&Cl',w+qm% P8xJpq폈E蒍2^LuBvIu#魶ꪈj0ΰL;f.l;@F&Oz['@xs+!:!?x5 ʝ{,>Y)Y?MXQQ%?'R=# |H@W yWVUfVK إԞ=* OEb"k?&բzĉgzk/5Ԯ5ᜳgr.}(` qB# QW"LJIaKҸ5x.J - % 4Όh&HKuc%d$ <YpzBQf:X]7ژ3S`%TDIf"В܊vś@\"DD/:ТZBsHG@6/UI\0 IZ 4Ź?C#iQ/S>Å<$*vj$8b% %M/`?bDNU: [Guʰ: n_RIgĖ2վd||{1TNuqmaj^/PHJެ*՛o<"CC_szАt?z"{L{!YLtݚ]N4 %J9s )+ֱ}W_JH39K@/P/ݜKִ Db'0SZ_qD8pAV;> &se+3ÆVt9q/\$?^@R.3P:j՚ri?Pi vy0أ p8"iwK% )lRA\.ՙBhnNp\#s ;?q;)ߙ0zfXTH$Vxкfl6k%+'ܺ]& ȇ[G)~1$Fput '(JKS`߇W L>D\ǹ%KPg8 !,H_GLY XHq'7QN1?Lܚ m& tpe]ļ<кbN:#&><bVBHeKuU)^oAD=>Euh-8x @<P.?L:il]Ց$%$NcvYeǢ .sI0L,*Y!XJFq1 7qX]X 9N~L~$Ҙ.W:1Y J8"䔻3xy41h.x"D22й̭Z~h玱q&~|`u' Ǵq3;Zxͧx@ex9 Nn]g}_#͘hs~4ǎ"& u&RR`~R^'V'+ ^^&cw"/A_LVu%qzp͹  3 Xhl18"/qoar>7RgwVϤűˏx6OU<3K|0+›P7a0x'b1-f9N>8q XBْhQV|к%˺!Ay'bL/5a뮶gbaII)'ץSz =]d$+q0Q٩ZEnf4's6AlJZB!ǜ),n*3{@X?eɃ>/EJp\BTB܊;o/w~iN;N]SNyẫM$h 9u*M6|şuly!uVvˈ^Qyiɸ 8&BsN9zybuS67 xt$^r! fD*";j}CO7 ݪaac'dEmщ#@>1>y(Ss D`gRB+~jV'V; P]cXTДu2kT MA>Chr{( g{GC# H7^a'z1W!{1bvhB)q4 4$x Q&$.M!E 7vz'Fʍ8py4pVE<aLa`G}I{&L`pcLx: ީc^a4e)9ծg'3'ۗwx׍x_] wbֻ@j_jG`慱WCv8a\WjY[x KkGxEj)5/ռ~G9K{kL{~D U;P iHs4ځ bb&hYiT"ĴXXX\SREiLrKO2=]UQ`r GZ@T,e¶ӭnZf`\mD*"2D܊_F {GZ5>īKNgw2L7My33B*aVż$3ҩx1YPX⓷:Aڲ&e\7`&ewH)sBlg!LJB3>԰ZyeSSq#f7/]̖C8̜,cl C6ĭ!aJE_N/ɞ8jQ$cV[6կjW_("oRSFv))̶>hw_o=[%~79aGG~~K/>p;oQz讗)Iӵ4,Et8BM=$a+9-M+\eCd82b !@ ᅣI:>pfM"cݧU:#eaca$mT&ÈM嗻O=9t-IIB^12ʎk<6-htP'o$PfLWo7_T?}j z-1ɼuVY(n];x$M/"qP/@ u&Ar,kP-wy S 3KKi<L;g1ƍ&oZps9ogiӧ-T/xym8Kzrޖ[L9ReK.>{#M \V-I1ː^pKaG_tY,M6onET>2 A۞qzP&?qҜ'NBIghĉu犹s, ُ C?n oѻ+8yXu!E>sNsQ`H oL_$)^cW_uAM6nۭdw,ﮑDIGIo`S?h0CA1;gvCHXc}A0XE đI /6I{U 2%8K.>iviG:mު8!4vwQo={B8nFwų9d+^on+B-/O.pyK~|&,m v!\lΈ!B7m)ې#[6o͚Z5'>T  iN/Z#utezkc>/4>}t( omkI_Tot3!FYǸĉV$Xm{A 9F>v[9Lf?}A==t645(i )$i1z %!lI2+}lpנ`[\s$?M*"BRَk-_;6kfSENIߖmѤT*];T/ Mn\6Op\ek١mgG)4?BC(2pCFg뭚qaOYN~"Dp  q{Mk؞=qR=N@eP&!2^"!n)ss$MYF~?kV(]R`g-K,+Z -z,hI2 YeZs =KB؂XXNQ ʩtꘛN9I|q4 4yg!цǬ""-6C^N *z q"ei3[X?SE\{Eh^nCa@ AaG+s@ x k[P[x"V"^j Ab;. "BTbSܻ"jz 2-F{mL=,%Sd9Q V^@Id%SڕIdؚC[dbEU&ed`,!FC&d1oUVx9`6Y/~ Sk}oB;l 0E e:![((&oMlxXNad{l?iɆÝ/9DJp_„OWx#O): wkPŶ,W\Y}oZ;zFzOk{B^7KVZq95s zQUgnl@&wsH#֪q$_3zl8.Ⱥug圶"¼ GStB;UM^I0A(co%˻HB@qFSyap4 }na/ b9Ed8S$S-^nQ^@C# ɥ^n^@Zi/{{9!Hw.Nh`q"Ncgϝ\oҊ+Sb&$nh~uC ?,=zp(T=>J@ai*^ ba|y `fwl.񢺴^|ْ uz!kz:^yvF+X(߭;Az\#Ĩx|bcqOdQFt96$2<r "ӆ 4=@Id5^Lʉz' #Dw5Qga ,CBH/e]ZL٣h_T,&3m2Y23=Λ}b癣Zŋ*{ڵ&s_~^N!CKE4Crh3zl8+i-r"}sJ0 [vma%r&BB-Ɨ," zO lċj0&t*s1fqvt 31cF?/C4$8Ñ[d2*iH/r+x٣]N.'^6DНBJGlyLG'#BB}(V4?Z['na2Lyp(=>Җ7 j)$[b~Y%p5?0`^b]uU{7$ h2 ;iR%eTLm ݈ "WV1taTIP(R#z52E6[2 23GN[a\/A( R%NR6:FҀs Jh8 'drHgJˇ,i쌅|r;)UL8,K3a1 z}qDWrei`%KTDsVqy $ 5.A"1c ?mY㻄&b_COHBnug%NC0 zؖLer)! KwzU/vQE!i@<9˜)jaCàijAy*hjĪA4oYpt`q"\!g(_ P^  Zi[-?Dsq4s8oS/XoI1fy ⎖,^})PPuw_WK8b@ь^i GCO<^xʤ#ΚC`f7r'[xq ' %i-& ug%N[g я"sBN^J%.̺9A` Q]Ћ$<`i),̀L i>*G{>n^:Az%o=eDG4I"{}Nj CYn^x|ܮeѓl|< -Q uCzw YM1Khhxv%n7V4?DFCr3lqb俗ᐥ%niCX/y$ .H_P%5?jnM~DB@?lڋ S ļƋ')FF_T)"GUdTuԬxȫHfp @ ҺPƒC  i9˞)*d"*' `C,n؝$?B{}I4L裃0{Lҡ|n-SGxX~}vN;N]SNyẫM$h 9u*M6|şuly!uVvˈ^Q6^дdA戁|!9ZSc/;07tl}ɓiO!eO1()^zƽO6!܂SE*GD q e}9s ^`@tO'`x)$0Ϻɱ +>FD T.YE!E^4pOVuf$YcCT{ GtךSB^JVMNODh Bd#@0^>:3Q/l:螰8G'^ <4&N4glPqnCY KG'`Ĺ/7*Ef>,tK-[x;YRIp@ "ZzP#;䉡FX(Ⅲ)5q;ҝlZ,q/F .uO Q!]+GVZ$-vr/ ,ޱר.g9ee @D _1w~M^LJO/YQqƭCڨƩioP|"[ g?qcv 8W7AL75 e9 {ŸcZ~tJy(F ԊlԌQDʛZ+bhRI$/k̯.^ތQQP(F]Rqd8Χ[&) J̤a^bKX LTvV"j߯^NQՉR0 уMq'ܒYlC,oRH|T^d˪e옦u[&)*eJ0Oa,'nǻqR.ÙރQ@7ANᗇN_Q.T1\ f izAQ2IQ9/_yz. c3"Ɖ!`!Bdz0 C0 C0R@iZ?C0 C0 CH3!o'i!`!`!``޳C endstream endobj 12 0 obj 83463 endobj 14 0 obj << /Length 15 0 R /Type /XObject /Subtype /Image /Width 1032 /Height 368 /ColorSpace /DeviceGray /Interpolate true /BitsPerComponent 8 /Filter /FlateDecode >> stream xЁ Pa 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0`  I{  endstream endobj 15 0 obj 1678 endobj 16 0 obj << /Length 17 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream x՗gT{r"0sqAa 0d k@D](*A1``P .0r8uNU?_WW8m,/ ugla2 ,vkbC\;D9Il o;N@l?<=i"dnŵ!urt_a^Қ-k#ξ+KWh+䴚'嶸fK)+™A+̉p\#c+zL2s]q[W@6,A'G'# ~LTt2qZ &0_)gmyD%"eh: MYBZ~r>)I X[܀`32 Av>>/}}vQ?(X11(HAwÎ c[Bp!!U!368j:IuS6oEx k0LXPؙy5 ?>v`ar9VEVEQVQ&mKbbbƺV~󊫎[oH'%\q7nM$(iSRK2 15])j)?Z~J L.M؛166wmaNhgΎ,Ŭܬl]]q~);hwkLnv.? Xc̏{ -@`]x'JZ{)-,=yQ_wKJ*zU:z|YtY}y1c{}<9wD}LEAŗc~:rRT꩗OwbKmTUAjnƷfim3ດɳg{9k׮?@o(8Χkد/t\4XIұFjc~Ԕ4,h nvղ7ߪʯ_x5µk3QG;t pMݷoݹ|F];VwZܽ|^}M]]mAKyOkޫ}6}:>~ށAghqOR g?<&?h8t{1<}gҟc/)/Kk' &&'{^m|5zn*/ѿQ{soۿ7L]xW^}33gf>Ts痠/siү_[{cYK^pd$@E|1Qh /E } /(N r-G ¶x#GV+X.IKkR8u.,5/,|Bg=b6?0nk`ԑյ? endstream endobj 17 0 obj 2663 endobj 13 0 obj [ /ICCBased 16 0 R ] endobj 18 0 obj << /Length 19 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >> stream xTkA6n"Zkx"IYhE6bk Ed3In6&*Ezd/JZE(ޫ(b-nL~7}ov r4 Ril|Bj A4%UN$As{z[V{wwҶ@G*q Y<ߡ)t9Nyx+=Y"|@5-MS%@H8qR>׋infObN~N>! ?F?aĆ=5`5_M'Tq. VJp8dasZHOLn}&wVQygE0  HPEaP@<14r?#{2u$jtbDA{6=Q<("qCA*Oy\V;噹sM^|vWGyz?W15s-_̗)UKuZ17ߟl;=..s7VgjHUO^gc)1&v!.K `m)m$``/]?[xF QT*d4o(/lșmSqens}nk~8X<R5 vz)Ӗ9R,bRPCRR%eKUbvؙn9BħJeRR~NցoE endstream endobj 19 0 obj 737 endobj 10 0 obj [ /ICCBased 18 0 R ] endobj 3 0 obj << /Type /Pages /MediaBox [0 0 1032 368] /Count 1 /Kids [ 2 0 R ] >> endobj 20 0 obj << /Type /Catalog /Pages 3 0 R /Version /1.4 >> endobj 21 0 obj (Mac OS X 10.6.7 Quartz PDFContext) endobj 22 0 obj (D:20110601142330Z00'00') endobj 1 0 obj << /Producer 21 0 R /CreationDate 22 0 R /ModDate 22 0 R >> endobj xref 0 23 0000000000 65535 f 0000090256 00000 n 0000000155 00000 n 0000090014 00000 n 0000000022 00000 n 0000000137 00000 n 0000000260 00000 n 0000000325 00000 n 0000000606 00000 n 0000000624 00000 n 0000089977 00000 n 0000000714 00000 n 0000084379 00000 n 0000089080 00000 n 0000084401 00000 n 0000086272 00000 n 0000086293 00000 n 0000089059 00000 n 0000089117 00000 n 0000089957 00000 n 0000090098 00000 n 0000090162 00000 n 0000090214 00000 n trailer << /Size 23 /Root 20 0 R /Info 1 0 R /ID [ ] >> startxref 90331 %%EOF