[Rsiena-commits] r161 - in pkg: RSiena RSiena/R RSiena/inst/doc RSiena/man RSienaTest RSienaTest/R RSienaTest/doc RSienaTest/inst/doc RSienaTest/inst/examples RSienaTest/man

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sat Jul 2 17:20:33 CEST 2011


Author: ripleyrm
Date: 2011-07-02 17:20:33 +0200 (Sat, 02 Jul 2011)
New Revision: 161

Modified:
   pkg/RSiena/DESCRIPTION
   pkg/RSiena/R/RSienaRDocumentation.r
   pkg/RSiena/R/bayes.r
   pkg/RSiena/R/effects.r
   pkg/RSiena/R/maxlikec.r
   pkg/RSiena/R/sienaDataCreate.r
   pkg/RSiena/changeLog
   pkg/RSiena/inst/doc/RSiena_Manual.pdf
   pkg/RSiena/man/RSiena-package.Rd
   pkg/RSiena/man/siena07.Rd
   pkg/RSiena/man/siena08.Rd
   pkg/RSiena/man/simstats0c.Rd
   pkg/RSienaTest/DESCRIPTION
   pkg/RSienaTest/R/RSienaRDocumentation.r
   pkg/RSienaTest/R/bayes.r
   pkg/RSienaTest/R/effects.r
   pkg/RSienaTest/R/maxlikec.r
   pkg/RSienaTest/R/sienaDataCreate.r
   pkg/RSienaTest/changeLog
   pkg/RSienaTest/doc/RSiena_Manual.tex
   pkg/RSienaTest/doc/RscriptSienaRunModel.R
   pkg/RSienaTest/inst/doc/RSiena_Manual.pdf
   pkg/RSienaTest/inst/examples/algorithms.r
   pkg/RSienaTest/man/RSiena-package.Rd
   pkg/RSienaTest/man/siena07.Rd
   pkg/RSienaTest/man/siena08.Rd
   pkg/RSienaTest/man/simstats0c.Rd
Log:
Fix for Bayes routine, other minor bug fixes. 

Modified: pkg/RSiena/DESCRIPTION
===================================================================
--- pkg/RSiena/DESCRIPTION	2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/DESCRIPTION	2011-07-02 15:20:33 UTC (rev 161)
@@ -1,8 +1,8 @@
 Package: RSiena
 Type: Package
 Title: Siena - Simulation Investigation for Empirical Network Analysis
-Version: 1.0.12.160
-Date: 2011-06-24
+Version: 1.0.12.161
+Date: 2011-07-02
 Author: Various
 Depends: R (>= 2.10.0)
 Imports: Matrix

Modified: pkg/RSiena/R/RSienaRDocumentation.r
===================================================================
--- pkg/RSiena/R/RSienaRDocumentation.r	2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/RSienaRDocumentation.r	2011-07-02 15:20:33 UTC (rev 161)
@@ -16,6 +16,7 @@
     mylist <- ls(parent.frame())
     ##  print(mylist)
     library(codetools)
+	## fnlist has a row number at the front: column 3 contains the function names
     mylist <- mylist[mylist %in% fnlist[, 3]]
     mytt <- lapply(mylist, function(x)
        {
@@ -44,16 +45,26 @@
 
     thisdir <- getwd()
     ## temporarily move directory
+	on.exit(setwd(thisdir))
     setwd(Rdir)
 
     ## extract comment lines
-    shell('grep "##@" *.r *.R > comments.lis')
+    if (.Platform$OS.type == "windows")
+    {
+        shell('grep "##@" *.r *.R > comments.lis')
+    }
+    else
+    {
+        system('grep "##@" *.r *.R > comments.lis')
+    }
     ## read them in
     comms <- readLines('comments.lis')
     ## remove the file
     file.remove("comments.lis")
     ## remove the shell line
     comms <- comms[!grepl("comments.lis", comms)]
+	## get rid of tabs
+	comms <- gsub("\t", "", comms)
     ## split off
     mystr <- paste("##", "@", sep="")
     comms1 <- strsplit(comms, mystr)
@@ -70,7 +81,7 @@
                      }
                      else
                      {
-                         c(x[1], tmp[1], tmp[2], paste(tmp[-c(1,2)],
+                         c(x[1], tmp[1], tmp[2], paste(tmp[-c(1, 2)],
                                                        collapse=" "))
                      }
                  }
@@ -96,26 +107,55 @@
 
     ## now the internal ones
     ## find the list of files from comms3
+#	browser()
+	internals <- comms3[grepl("internal to", comms3[, 4]), ]
     ttmp <- unique(comms3[grepl("internal to", comms3[, 4]), 4])
-    ttmp <- sub("internal to ", "", ttmp)
-    ttmp2 <- comms3[match(ttmp, comms3[, 2]), 1]
-    ttmp2 <- sub(":", "", ttmp2)
-
+    ttmp1 <- sub("internal to ", "", ttmp)
+	ttmp3 <- lapply(ttmp1, function(x)
+				{
+					tmp <- x
+					while(!is.na(sub <- match(tmp[1], internals[, 2])))
+					{
+						tmp1 <- internals[sub, 4]
+						tmp1 <- sub("internal to ", "", tmp1)
+						tmp <- c(tmp1, tmp)
+					}
+					tmp
+				})
+    #ttmp2 <- comms3[match(ttmp1, comms3[, 2]), 1]
+    #ttmp2 <- sub(":", "", ttmp2)
     ## write out the fnlist in the Rdir
     write.csv(data.frame(comms3), "RSienafnlist.csv")
     ## get the list of internals
-    tt <- lapply(1:length(ttmp), function(x, y, z)
-             {
-                 yy <- y[x]
-                 yy <- getFromNamespace(yy, pkgname)
+	tt <- lapply(ttmp3, function(x)
+			 {
+				 yy <- getFromNamespace(x[1], pkgname)
                  targs <- formals(yy)
-                 n <- length(targs)
-                 myargs <- targs
-                 for (i in 1:n)
-                     myargs[[i]] <- 1
-                 myargs['getDocumentation'] <- TRUE
-                 do.call(yy, myargs)
-             }, y=ttmp, z=ttmp2)
+				 targs[1:length(targs)] <- 1
+				 if (length(x) > 1)
+				 {
+					 targs['getDocumentation'] <- x[-1]
+				 }
+				 else
+				 {
+					 targs['getDocumentation'] <- TRUE
+				 }
+                 do.call(yy, targs)
+			 })
+    #tt <- lapply(1:length(ttmp3), function(x, y)
+    #         {
+    #             yy <- y[x]
+    #             yy <- getFromNamespace(yy, pkgname)
+    #             targs <- formals(yy)
+    #             n <- length(targs)
+    #             myargs <- targs
+    #             for (i in 1:n)
+#				 {
+#                     myargs[[i]] <- 1#
+				 #}
+                 #myargs['getDocumentation'] <- TRUE
+                 #do.call(yy, myargs)
+             #}, y=ttmp)
     names(tt) <- ttmp
     ## remove the file
     file.remove("RSienafnlist.csv")
@@ -240,7 +280,7 @@
     tmp12 <- do.call(rbind, tmp11)
     names(tmp12)[2] <- "Function"
 
-    tmp12 <- tmp12[order(tmp12[, "type"], row.names(tmp12)), ]
+    tmp12 <- tmp12[order(tmp12[, "type"], as.numeric(row.names(tmp12))), ]
     tmp12 <- tmp12[, c(3, 2, 5, 6, 4, 1)]
     ff <- xtable(tmp12)
     ## go back to start directory

Modified: pkg/RSiena/R/bayes.r
===================================================================
--- pkg/RSiena/R/bayes.r	2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/bayes.r	2011-07-02 15:20:33 UTC (rev 161)
@@ -8,11 +8,12 @@
 ## * Description: This file contains the code to run Bayesian simulation
 ## *
 ## ****************************************************************************/
-##@bayes algorithm  fit a Bayesian model
+##@bayes Bayesian fit a Bayesian model
 bayes <- function(data, effects, model, nwarm=100, nmain=100, nrunMHBatches=20,
                   nrunMH=100, save=TRUE, nbrNodes=1, seed=1, dfra=NULL,
-                  priorSigma=NULL, prevAns=NULL)
+                  priorSigma=NULL, prevAns=NULL, getDocumentation=FALSE)
 {
+    ##@createStores internal bayes Bayesian set up stores
     createStores <- function(z)
     {
         npar <- length(z$theta)
@@ -26,6 +27,7 @@
         z$MHproportions <- array(NA, dim=c(numberRows, z$nGroup, 7))
         z
     }
+    ##@storeData internal bayes Bayesian put data in stores
     storeData <- function()
     {
         start <- z$sub + 1
@@ -50,12 +52,14 @@
         z$sub <- z$sub + nrun
         z
     }
+	##@improveMH internal bayes Bayesian find scale factors
     improveMH <- function(z, x, tiny=1.0e-15, desired=40, maxiter=100,
-                          tolerance=15)
+                          tolerance=15, getDocumentation=FALSE)
     {
+		##@rescaleCGD internal improveMH Bayesian
         rescaleCGD <- function(iter)
         {
-            u <- ifelse (actual > desired,
+			u <- ifelse (actual > desired,
                          2 - ((iter - actual) / (iter - desired)),
                          1 / (2 - (actual / desired)))
             number <<- ifelse(abs(actual - desired) <= tolerance,
@@ -63,6 +67,11 @@
             success <<- number >= 2
             u
         }
+		if (getDocumentation)
+		{
+			tt <- getInternals()
+			return(tt)
+		}
         iter <- 0
         number <- rep(0, z$nGroup)
         success <- rep(FALSE, z$nGroup)
@@ -92,6 +101,25 @@
     ## ################################
     ## start of function proper
     ## ################################
+	if (getDocumentation != FALSE)
+	{
+		if (getDocumentation == TRUE)
+		{
+			tt <- getInternals()
+			return(tt)
+		}
+		else ## need to run getInternals on the argument value
+		{
+			targs <- formals(getDocumentation[1])
+			targs[1:length(targs)] <- 1
+			targs['getDocumentation'] <- TRUE
+			if (length(getDocumentation) > 1)
+			{
+				targs['getDocumentation'] <- getDocumentation[-1]
+			}
+			return(do.call(getDocumentation[1], targs))
+		}
+	}
 
     z <- initializeBayes(data, effects, model, nbrNodes, seed, priorSigma,
                          prevAns=prevAns)
@@ -163,8 +191,10 @@
             ##thetadf <- data.frame(z$candidates)
             acceptsdf <- data.frame(z$MHproportions,
                                     z$acceptances)
-            ratesdf <- thetadf[, -1][, z$basicRate]
-            thetadf <- cbind(Group=thetadf[, 1], thetadf[, -1][, !z$basicRate])
+            ratesdf <- thetadf[, -1, drop=FALSE][, z$basicRate, drop=FALSE]
+            thetadf <- cbind(Group=thetadf[, 1, drop=FALSE],
+							 thetadf[, -1, drop=FALSE][,
+										   !z$basicRate, drop=FALSE])
             thetaNames<- paste(z$effects$name[!z$basicRate],
                                z$effects$shortName[!z$basicRate], sep=".")
             rateNames <- paste(z$effects$name[basicRate],
@@ -172,7 +202,7 @@
                                            z$effects$period[basicRate],
                                            z$effects$group[basicRate], sep=".")
             names(ratesdf) <- rateNames
-            ratesdf <- cbind(Group=thetadf[, 1], ratesdf)
+            ratesdf <- cbind(Group=thetadf[, 1, drop=FALSE], ratesdf)
             names(thetadf)[-1] <- make.names(thetaNames, unique=TRUE)
             names(acceptsdf) <- c("InsDiag", "CancDiag", "Permute", "InsPerm",
                                   "DelPerm", "InsMissing", "DelMissing",
@@ -226,7 +256,7 @@
     z$FRAN <- NULL
     z
 }
-
+##@MCMCcycle algorithms do some loops of (MH steps and sample parameters)
 MCMCcycle <- function(z, nrunMH, nrunMHBatches, change=TRUE)
 {
     z$accepts <- matrix(NA, nrow=z$nGroup, nrunMHBatches)
@@ -259,6 +289,7 @@
     z$nrunMH <- storeNrunMH
     z
 }
+##@sampleParameters algorithms propose new parameters and accept them or not
 sampleParameters <- function(z, change=TRUE)
 {
     ## get a multivariate normal with covariance matrix dfra multiplied by a
@@ -325,7 +356,7 @@
     z
 }
 
-
+##@initializeBayes algorithms do set up for Bayesian model
 initializeBayes <- function(data, effects, model, nbrNodes, seed, priorSigma,
                             prevAns)
 {
@@ -395,7 +426,7 @@
                                                 function(x) 1:x))))
     z
 }
-
+##@getDFRA algorithms do a few ML iterations and calculate a derivative matrix
 getDFRA <- function(z, n)
 {
     ## do n MLmodelsteps with the initial thetas and get
@@ -425,7 +456,7 @@
     ##z$covFactor <- z$eS$vectors %*% diag(sqrt(pmax(z$ev, 0)), z$pp)
     z
 }
-
+##@getLikelihood algorithms calculated likelihood for one chain
 getLikelihood <- function(chain, nactors, lambda, simpleRates)
 {
     loglik <- 0
@@ -437,11 +468,11 @@
     logChoiceProb <- sapply(chain, function(x)x[[9]])
     logOptionSetProb <- sapply(chain, function(x)x[[8]])
     loglik <- sum(logChoiceProb)  + sum(logOptionSetProb)
-                                        #print(sum(logOptionSetProb))
+	##print(sum(logOptionSetProb))
     if (simpleRates)
     {
         loglik <- loglik - sum(nactors * lambda) + sum(nc * log(lambda))# -
-           # sum(lfactorial(nc))
+		## sum(lfactorial(nc)) don't need factorial in bayes!
     }
     else
     {
@@ -453,7 +484,7 @@
     }
     loglik
 }
-
+##@getProbs algorithms calculates likelihood sum over nested list of chains
 getProbs <- function(z, chain)
 {
     sapply(1: length(chain), function(i)
@@ -471,7 +502,7 @@
        }
            )
 }
-
+##@flattenChains algorithms converts a nested list of chains to a single list
 flattenChains <- function(zz)
 {
         for (i in 1:length(zz)) ##group
@@ -485,7 +516,8 @@
     zz <- do.call(c, zz)
     zz
 }
-
+##@dmvnorm algorithms calculated multivariate normal density:
+##inefficient: should not call mahalanobis and eigen with same sigma repeatedly
 dmvnorm <- function(x, mean , sigma)
 {
     if (is.vector(x))

Modified: pkg/RSiena/R/effects.r
===================================================================
--- pkg/RSiena/R/effects.r	2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/effects.r	2011-07-02 15:20:33 UTC (rev 161)
@@ -8,7 +8,7 @@
 # * Description: This module contains the code for the creation of the
 # * effects object to go with a Siena data object or group object.
 # *****************************************************************************/
-##@substituteNames  replace xxxxxx, yyyyyy, zzzzzz
+##@substituteNames DataCreate replace xxxxxx, yyyyyy, zzzzzz
 substituteNames <- function(nameVectors, xName=NULL, yName=NULL, zName=NULL)
 {
     effects <- nameVectors[, c("effectName", "functionName",
@@ -32,7 +32,7 @@
                     "interaction1", "interaction2")] <- effects
     nameVectors
 }
-##@createEffects  Extract required rows and change text
+##@createEffects DataCreate Extract required rows and change text
 createEffects <- function(effectGroup, xName=NULL, yName=NULL, zName = NULL,
 						  name, groupName, group, netType)
 {
@@ -70,7 +70,7 @@
     effects <- data.frame(name=effectsname, effects, stringsAsFactors=FALSE)
     effects
 }
-##@getEffects DataCreate
+##@getEffects DataCreate create effects object
 getEffects<- function(x, nintn = 10, behNintn=4, getDocumentation=FALSE)
 {
     ##@duplicateDataFrameRow internal getEffects Put period numbers in
@@ -122,7 +122,7 @@
         }
         rateEffects
     }
-    ##@oneModeNet internal getEffects
+    ##@oneModeNet internal getEffects process a one mode net
     oneModeNet <- function(depvar, varname)
     {
         symmetric <- attr(depvar, "symmetric")

Modified: pkg/RSiena/R/maxlikec.r
===================================================================
--- pkg/RSiena/R/maxlikec.r	2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/maxlikec.r	2011-07-02 15:20:33 UTC (rev 161)
@@ -68,7 +68,13 @@
                      z$returnChains)
         ans[[6]] <- list(ans[[6]])
         ans[[7]] <- list(ans[[7]])
-    }
+        if (byGroup)
+        {
+			ans[[8]] <- list(ans[[8]])
+			ans[[9]] <- list(ans[[9]])
+			ans[[10]] <- list(ans[[10]])
+        }
+   }
     else
     {
         if (z$int2 == 1)

Modified: pkg/RSiena/R/sienaDataCreate.r
===================================================================
--- pkg/RSiena/R/sienaDataCreate.r	2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/sienaDataCreate.r	2011-07-02 15:20:33 UTC (rev 161)
@@ -8,7 +8,7 @@
 # * Description: This module contains the code to create
 # * Siena data object and group data objects.
 # *****************************************************************************/
-##@addeAttributes DataCreate method for attaching attributes to objects
+##@addAttributes DataCreate method for attaching attributes to objects
 addAttributes <- function(x, name, ...) UseMethod("addAttributes")
 
 ##@addAttributes.coCovar DataCreate

Modified: pkg/RSiena/changeLog
===================================================================
--- pkg/RSiena/changeLog	2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/changeLog	2011-07-02 15:20:33 UTC (rev 161)
@@ -1,3 +1,15 @@
+2011-07-02 R-forge revision 161
+
+	* man.siena08.Rd: add note about names of effects need to match
+	* man/siena07.Rd, man/simstats0c.Rd: minor edits.
+	* R/effects.r, R/sienaDataCreate.r: minor edits of comments
+	* R/bayes.r, R/maxlikec.r, inst/examples/algorithms.r: Bayesian routine
+	was failing for single data objects.
+	* R/RSienaRDocumentation.r: fix for internal functions of internal
+	functions. Clumsy at present.
+	* man/RscriptSienaRunModel.R: minor correction to text, many trailing
+	spaces removed.
+
 2011-06-24 R-forge revision 160
 
 	* src/model/effects/BehaviorInteractionEffect.cpp,

Modified: pkg/RSiena/inst/doc/RSiena_Manual.pdf
===================================================================
--- pkg/RSiena/inst/doc/RSiena_Manual.pdf	2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/inst/doc/RSiena_Manual.pdf	2011-07-02 15:20:33 UTC (rev 161)
@@ -51,17 +51,14 @@
 endstream
 endobj
 414 0 obj <<
-/Length 1163      
+/Length 1161      
 /Filter /FlateDecode
 >>
 stream
-xÚµVKsÛ6¾ëWð͘ ‚ ÙžœÄI“©ÝÄROI°K¨ùPù°£þúì "ÚòdÜ™ŽfD<v?ì.¾Ý‹6‹ÞÏØO¾¯—³Wïx	I³<ãÑò6LQ&y¤£2Z®£/äR×s¡È Ëyœ0An›vþ×ò#hæÇšœ+ª`‰y­ë…5µö‚’E\ÒD*‚±*¨Y`4á<ˆýàáœKŠßŒ\Û]iöÅ9MQA€‚V-ç¹ MåeÏékêµµý{mÚÎëñ”fJN?ÍAA¥ëœÊ§Ö¬¬^7~ö{³›Ç aþýa;§EšzÛFs…¶çT¥©Gü³¶÷
-ÇÚ{ÕÜúïß dë_æ±LRòÖìtÛW¦FÁþX0#‹^÷vÎI79ìqbWݯ~ëjøʸ2åÚk¼iÊÒlŒó’O‚^T2åmú8ÔÆ‹
-yæ!ãžÐàb9ã0 G#ž¥T1`ø)­ªÙ?³Ämú·0J‡…Wï*½mfŸá÷{GäøÚñÈVÐB	åè—7r䕤Ž.èËùM×·zÕŸ4 Ä@ÌUQ€sxNy.®Îý}æGÂ	Q>2ö+KفÛP^P÷ä¶J¸¨¦†¸JE>Ô÷¦ëíæ°”AŠÌENZ¿QílkW.}`zeGP‹ÝùóZ—ûÎvOí`h!Žìä^dÝqÚOWMµzŽÝµMì³@䂦Y!qDö(›VcòäŠô[ÝûÑJ·­5šg¤úqßøA‡ôO½+°€nW£Û¨rë×+È%pl
-6HåÒsE0ÀSTsï"Q#NÈî—Š¥ó„ÇkŒd"ÙÞÁ	"M‰^­ Ûl½ñÓ¾	_<O¤’¬÷µ®ìjî›6nÀëQz³ö룦ôs°È‘²*\ø—2j7Ñ“µë÷³è‹;ê¸ëöRǶbB3þ‹œ½Ü°ÒÇ@H«—ƒeÌyOî'P̹K&	\”ûê’>Ž.ÿÇXd§]ˆ¥àD×ë—ú‚–nìÿ3›³SfCûR©"Ë­
-g_Ç[TÚµ׆%KÈéR•°:òÉ.<©(9Íø¡¢¸˜	ò°…´ Öo}ÙH Ç¥ÓÕ%¦dR°%÷~rã’Åø	T‡Ò¬O˜–CÈ‹C}¶$çpZr¥Ûª« Ž½ª»«xxVãÓ¶µ7ƒË]\ÜiçÅÝâ©7Áª>ØíË¦Åö]oªvC2šÂ
-NBqýÔvE%´á`:¾G¤„Åód2¹>œûÚ-ɍîœá0ôÝ#	6‚Ñmi}=÷Ÿ ò™û\Ð$ÿy“ì™ rræ;æ[×£1àÚÖá‰%R}¶˜gr/€‹¾eZÛ÷¦þñŒtƒÐX2uæ7#Ç@êR»>	«¿
-¶I4’åä9›‘­6áyºö^eցŽ¶ÓÍP"W­7Ûy¡ÑÌ$7™Ù”!/¦U cÊ-Xáß¿Øe!ÙcH¡Â³vZ®á¡õ×ÝÓ
+xÚµVKsÛ6¾ëWð͘ ‚ ØžœÄI“©ÝÔROI°KhøPIÊŽú뻀ŽhË“qg:šñØý°»øv,Ù$,y?c?ø¾^Î^½ãE"$-tÁ“åm"˜¢LòD)Fe²\'ŸÉ¥iæB‘½©æiƹm»ùŸË ©59WTÁZ×g%K¸¤™TSUR%ŠÀhÆyß[€‡s.)~rív•= @’jš£‚ ­Zε mdÏék´ûkm»>èñœJN?ÍAÁì+Öy•O]9³nÃì×v7OAÂþóÝvNË<¶—Œj…¶kªò< þѸ;…cÝ€ƒC€joÃ÷·o²õOóTf9ykw¦jÛ àp,XÅ`7礟§ö8q«þç°uµÿ¸²Õ:h¼i«Ên¬÷’g‚æe	^–4ÏÊ`ÓÇ}­gA0ÎQþ	.–3ð3áENB€›’édUÏþže~3üû…Q:.¼zWóäm;û~±GÑtDN =ý€k%-•Pž}PC#­$•@LïÊùM?tf5œ4 Ä@ÊUðp×”ëH®Å‡‹«ópúH8ã ÊGÂ~a9{ ö”—TÀõG¹…«÷ÜSÛ@\¥"š;Ûnó°T@†Ì…&]Ø¿¨w®s+Ÿ=0½²ž"÷(ľ†óÆT‡ÞõOí`h)ŽìäAdýq&LWm½Û6»ëÚ4$ÐÀ"ƒ U@ÙtsG+2lÍF+ÓuÎ"¨.H»Æ}=²<
+®Àº]n£ÊmX¯!•À±5Ø"“«@iÁ OQ흏Dµqb:€pßúL„䬼',ºÓ®ÁHêÉî+œ òœ˜Õ
+’Í5›0ÚøÅóD.ÉúИڭFá¡íÒ¼ne°ë°>z`«0‹<ù(+¡ÀÅ)“n“<Y»~?K>û£ŽkÑaý^îÙöBLÈ`Æa‘³—–#Pþiõr°‚y/ÓS÷ã]O%“.ÊMEÇ—ÿc,ŠÓ.¤RpbšõK}AKnìÿ3›³SfC÷R¹"Ë­‹g_Ï[ÔÆwß…%ËÈéR•±òÉ&<©(šü¡¢ø˜	r¿…´ ÖoCÙÈ ÅåÓ5¦dV
+°%arã“ņ	T‡Ê®O˜¦¡èò¡Š>[’5œ…|iÀ®ê+€K4•…Š‡gµ!m;w³÷¹‹‹;ã½ø:‡xšM´jˆv‡²ƒi1Ã…C?Øú„݁‚æpƒ“P\?µ]Q™ÉÑt|ŽH	ŠçÉlr}8µ[’Ó{ÃaºGm„kºÊ…zï_ ò™û\ÐLÿ8ÈYñL9;sÈ/Äk‡ÑpãšøÂ9ƒ>[N›Ëä^ }ÊÞwnlóýé±ÿ°lê"ÌoFŽÔ¥ñ}VÙ»$ÑH¦É%r¶ [cãët9:<Êœí6¶‹š±D<®Zo¶ò ™YO2»©b^L« Æ”3Z²2<±ËB²§’Ç@LË5<´þÝÒ÷
 endstream
 endobj
 404 0 obj <<
@@ -257,36 +254,33 @@
 /Type /ObjStm
 /N 100
 /First 919
-/Length 2856      
+/Length 2852      
 /Filter /FlateDecode
 >>
 stream
-xÚÅ[ËŽ·ÝÏWp™lxY/> Á€Qb AË;†²<ä83†4œ¿Ï)ÞI–5Ó-«io.Ù}ÙÕ§«ë]l%I%)×D­'-–X|¬IÚÀØ’1þ/=Õêë$õ"8ihMJ%QéXH”ˆE.”,‘4ÿ$Õ¯%ƤjÒ†5U(qQÄ“ßG÷1M¬ŠÅ$Ö}R7Ö•–¸×†3=I™tF2¬Ñ’„p+%ñUNb·PÁ“°O4I¯¸—߸à±u>€µUåu⬳†‰ÇííæN:.5IFìgLªøß,™·šÌÄ.@#Yõ´ž¬3.µ‘lTLÀÎJÅ'”*;fœ­ÒqÃ*©N¶ƒkuò½Zª½ø¤¦:Ü ‹[ixvp¤±?à6(­=5 Ü$µ*>QLüqZI
+xÚÅ[ËŽ·ÝÏWp™lxY/> Á€Qb AK;†²<ä83†4œ¿Ï)ÞI–=Ó-«io.Ù}ÙÕ§«ë]l%I%)×D­'-–X|¬IÚÀØ’1þ/=Õêë$õ"8ihMJ%QéXH”ˆE.”,‘4ÿ$Õ¯%ƤjÒ†5U(qQÄ“ßG÷1M¬ŠÅ$Ö}R7Ö•–¸×†3=I™tF2¬Ñ’„p+%ñUNb·PÁ“°O4I¯¸—߸à±u>€µUåu⬳†‰ÇííæN:.5IFìgLªøß,™·šÌÄ.@#Yõ´ž¬3.µ‘lTLÀÎJÅ'”*;fœ­ÒqÃ*©N¶ƒkuò½Zª½ø¤¦:Ü ‹[ixvp¤±?à6(­=5 Ü$µ*>QLüqZI
 «—Së䗏ÔYý){ê¸;(ã̼; ô
 ¼Ú)õùÚ;§>ÀZí’Fé>Ñ4˜'oÒ0@{…h8zK£Š_ÞÓhm\(e™ábSœô€Lv6 0ñw23¿J‡b6Ÿ ©´êÿB®Êp^àú¬cF~Ìè
 +hʝ܃jñîAM}†{Pï>Ã=¸Þ„Ÿ˜üMAü‰] 
-@ìrjPbkra~¼w¿ÂÅŸ»¿Ò)ÿÏ`.îBâ{ƒ÷F“(ù:WsTìçh؇™‹“ú¹5zðàâôÕÿ~ºL§/žüûòâôéõÕÍåÕͬB_¿¼8}yùâúåó§—/¦‚ÍSÿ¸üþÙ“O®Nßœ°a™!%])÷ñø”žƒ$ÝÎË?¾ººÅo§ÖãÌÔúóØbìç‘%ŽÇy¤#ÍññÅGMÄ_ÿó».ŸÞ¤ÒéóÿB(ÊùBü}úâùõÓG—7¸Ýé‹Ïúÿx°O__{~Ú‰éâôèåw7óøïÏ®þsqúäúù÷—ÏçS•Ç§¿>?}ŠÜü±ó7üŒÌÒè¹w7P5»º1•©Æº'ªGéô×믮Óé³ô§§Ïn.ó£«g?€ö‹Bv˜‡€_²+ô+0" 7þ 0R³6~
-Æz–÷Ább©–,ü+,½åÁ}?˜¿|\Úqpˆ !°[Ô+`4wNy€7ïw‡S[îúœ>2Ì÷‡©ç
-#|‡;gf}8Tžˆ§÷ì5à ZÈp ç3×Ô³:}ýÍ¿àârÅkÆyÀo_½üñÇÇw®結 ×ô‹µa«'”‡7ÐÙ–â þŒz¸Ó¢q{ KÉåö ÎŽ)p	ó+ú¦y}8Í«Þi^¿ºüùæmãú¶+iü+WÒʺ9CwyÃuˆÆ®FÂÕH¸	W#áb4\Œ=
-zô4èiÐÓ §AOƒž=zô,èYг gAÏ‚ž=zôjЫA¯½ôjЫA¯½c
-º-ÆÚéJßWWhÜꊋ2¢„ŒY¥1¼¡?Q…Øòx·®¼À…Ï®¯ò¹žw£Ðš=\§A0(@a5K±w¢øéÉó›˜á‘H¨LTá‘KÑ{ÁÇ¡@„“‚''À7©–ÁÀ"Ø°ñn/¿{…äHŽÜb1ØMöTˆ[xµÀ¤
-ÝÆr$_Ø2²ƒIg¤rƒ³#kÎ¥;‘üÌ¡¬	8M³ÀN!Fx€\	o‹îð0¿Æ³€=|AÄš;"u¤ IÌN8r<+Ù
-¿À¨âCÔÄm/{ôx<ÒàN8Õó*¢½ÒcÇÃáš=ßKr'/@¿ê^öÔŠNšÍ³ȏUO7-#ÃÛVô¢Hž‡‹âYųa_â]¼‘š®£ÀÃò¨–yŽOYGÛ‰çxM׆{¨G!P-/¡Œlº—?r¼ì l¿t•Ì®dë;dG`1Í
-I#S÷b’É*¼Å` wO\EsEAɵÕm,ô[És/€æá2éiK[€9ã@’Ã8n^ädOawð¥/À‡0Ž³"odOÄ`w°e}
-
-c¯+4˜=JÒanXî€ùxpÚµ©ùÞN¹Ö½°‚{nx5d°sHlE†ûƒ{Q,°$2IyV‰¢ ®Ûa¸.ð@Óó ðØ·ÁÀ
-™{€hàaà舂†£.ž/pdLŒvx+|¢‰Ü	l¿ªX°0ÀÈ‘äpÛX8f¶–‹á†ìñÒaÛÁ–Ú„$2—6‡Ñ¼ig,pËì…vï°tÉÈogº?ê¶,pËŒÜþ\ô?ÆFØK†ÛX¸eFnÏÞç‚»bB¨ ¼¥î ÄHªA\ÎÕd»×,jˆ°Á	ó€÷{ÍÔ6]€-¨MâX!˜¢<[ˆ«ý®P^±Åðl©HÔ궱ÂXï2Ao`WŒþ®P^±‚wx½Ë8ûÀÒ3,ï6y»ßÐèu<á{o.¾m80¸$þŽ†ƒú6 {϶Âohع#üfëÀÎÔ? uP£´Þ¢ÔÞâ¸G©½G©½G©½G©½G©½G©½G‰½Gi½½ôFÐAo½ôFÐAo½ôFÐgz¾Ñà<RŒ£Ä¨1ZŒ5Æc1èEwÝ¢»nô¢ÿdôÈŽlÜÊzƒaæâ›f`Ž ¹¹þmËú‚Т"Ú£î1\¬u+%—Q·±,ðÕ«Á2¡øÖ¦êÝHÝÁ–zxŒ^Ýax'Î7ø®^wé@³ÂkT“ÙfšÉŒøN1x0ÙfÍ‚H§º×ðf5œ(iómT0?¶eA¢ò˜;/x Fw¶(<oC9¾ Ὕ¹Ó
-Ù‚›ÑŠFßt­¨D¸QßÎW+òm0ÄÛ’ºYM¬+z<Ȫïd{,l@­ÇžJk=8ï¾åMóæèH¢^#2ß,^íàÍ‚pÇ &M‘(go°›‡=·±,Ht
-ühˆ\t‡·w¬#«ÛXV4šÌËvÈälÕl•v‰ÌŠÒb°Ü+’Ü!˜ð ÊTwâYЦ$à10eñí^ÞËYÐځ¼xÇ\ñ­½æ[ÌÊ^îèá&Ñ,ò]ßÔYðO÷mKý^ÜŽGíñm·$%7ĝÞßéwõsÅŠÒ¼‚	Ì€è
-2 ïwÚôÒ}…áUA„àù&°Œ2fkglƒû
-Ët-ól£@yÎå3•|Y ?T½F¡·’½=•à~p«ö¶hï²â•rˆnñ
-祹"mófEJ,ˆ§A*_Ore‡Ì,ÈKĝ4‚*q~ ¥D6Üwð¥.h2ŠÙlï˜w$+\Á]Ý¿À1pDpûYŸ×s&«ˆz·;c‰Ô2°¨o–¾‡ØšïÄÛƲ ˆì¬Âô{`éûeÈ<+¹/`YP‹F¤]}?:tQ÷l1ÙvGî{A·«Ã
-¶1uÇwdzw©òž½Cg…¼pí³ñÆ HðFÞc·vpçxauè
-¨õì85»¿PO+8‚ nùWa°±<ûLmlÚZZózÕú·_Î˜•Ùpêª;Ào{¿ x×KÖgé÷=Úá,Ð&BÈ]z•Cß×ì]§!ºÐñò^ù~‹fÓùþ‹Ñvsèíâ½EÍ|óc×õø×…ö»Ëñ¿µ¯ö«¼Ê‡•à‘XGi9JÓñ½‚ŧ
-ø£”ͱžc=ÇzŽõëã« ‹¯,¾
-°ø*Àâ« ‹¯,¾
-°ø*Àâ« ‹¯,¾
-°ø*`rêÿç‚–C
+@ìrjPbkra~¼w¿ÂÅŸ»¿Ò)ÿÏ`.îBâ{ƒ÷F“(ù:WsTìçh؇™‹“ú¹5zðàâôø?^¦ÓOÿ}yqúôúêæòêæ%V¡¯_^œ¾¼|yýêų˗SÁæ©\~÷üé'×?¥o
+Nذ̐’®”ûxrJ/@’nçå_]]ƒâ7Sëqfjýyl1öóÈÇã<R‰‘æøä⣏&â¯þùí÷—ÏnÒƒéôù!å|!þ>}ñâúÙ£ËÜîôÅgý<اo®=?íÄtqzôêÛ›yü÷çWÿ¹8}rýâ»Ëó©Ê“ÓßNŸŸ>ÅnþÄù€~FfiôÜÏ,»º1•Ü†`ÝÇÕ£túëõãëtú,ýéÙó›Ëüèêù÷ ý²ÐŸæ!`À—ì
+ýŒÀ?ŒÔ¬ß€±žå}°ØXªåÿKoypßæ/—v"hìu,œSàMÀûÝáÔ–»¾§óýGÁaê¹ÂßÂáΙYß•§âé=»E
+8ˆ2œÄÀùÌ5õl N_}ý/¸¸\`ñšqðÛW¯~øáɝkÇy-$¨À5ýlíCØê	å¡Ç
+t¶¥8€¼SwZ4n`)¹ÜÀÙ1Å.a~mBß6¯§yÕ;ÍëãËŸnÞ5®ïº’Æ¿p%­| +‘3t÷˜ç1\‡hŒáj$\„«‘p5.FÃÅhÐÓ §AOƒž=
+zô4èiг gAÏ‚ž=zô,èYг gA¯½ôjЫA¯½ôjÐk1Ö Ûb¬ýç®ô}u…æÁ­®¸(#*@ȘQÃúUˆ-ßag_âÂç×Wùƒ\ϯ£Ðš=\§A0(@a5K±_EñãÓ7+ 0Ã#‘P™¨Â#—¢÷2‚C&ON€!nR-ƒ+€E°aã×a¼úö5’#9r‹Å`7ÙS!nYàÕ“6tË‘|aËÈ&‘Ê
+ÎBŽ¬9—îDò30‡²&à4Í;…ár%¼-ê²ÏöTðAkîˆÔ‘‚d$1;áÈñp¬d7ü£"ˆQ·½ìÑãñHG€;áTÏ«t@ŠöJ‡kö|,ɝ¼  ýª{ÙS(:i6Ï> ?V=Ý´Œo[ш y.Šgφ~‰wñFhºŽ;ËS Zæ9>em'žã5]Bî¡…@µ¼„2²é^þÈñ²ƒ°þÒT2#B¸’­ï]€Å47ÏC€©{±ÉdÞÆb°@€»'®¢¹Î¢ äÚê6–ú­R ;âÐ<¼@† ½1mci° gHrÇÍ‹œì)ì¾ôXàÂqVäì‰ìñ¶ŒÃ£OA at aìu…³GI:Ì
+ËÝ0N»6õ"? À[Âi#׺7 –ãQpÏ
+¯†v‰­Èpp/Š–A&")ïAÀê"Q„Àu;×hzdû6X!s°ÃâÍ<±Â@ðÂpÔÅó¥±΂Œ‰‘ÁoO4ñ‘;íWµK9rÂü N`ËÇÌÖrñ Ü!€=^:l;ز@›DæÒæ0š7íÌ]À6”n™½Ðî–.ùíL÷GÝÁ–n™‘ÛŸ‹þàÃØ{ÉpË·ÌÈíÙû\`w at L”·±ôÃ] ”IµC"ˆË¹šLb÷º€’B
+68aÞðþ`¯™Ú¦°µ)B+sB”g+ÑrµßÊk¶Â~‹-‰ZÝÁ–ã#BëýC&è
+ì
+!‚ÒßÊk¶ @ð¯wgXz†åÝÆ"ïö½é!‡!|OÃáíÅ·
+7ÄßÑpPß`ïÙVø
+­;w„ßnØ™ú´j”Ö[”Ú[÷(µ÷(µ÷(µ÷(µ÷(µ÷(µ÷(±÷(­÷ ×ƒÞz#荠7‚Þz#荠7‚ÞzãLÏ7œGŠ‘c”5F‹±ÆØbì1½è®[t׍‚^ôŸŒ‚Ù‘-ƒ[Yo0Ì\|ÓÌ 7×?£mY_ZTD{Ô=¦€+‚µn¥ä2ê6–£z5X&ßÚT½©;ØRÑ«;ÏáĹ‚ãßÕëŽ hVxj2ÛL3™ß)&Û¬YéT÷ŒhN”´ù6*˜ÛƲ  Qy̝<£;[Œ·¡_€ðÞÎÜi…lÁÍhE£…ï
+ºVT¢ܨoç«ù6âmIݬ&Ö=dÕw²Î=6 ÖcO¥µœwßò¦yst$Q¯™o¯vðfA¸c“&‚H”³7ØÍÞÎÛX$º~4D.ºÃÛ;ÖŠÕm,+Mæe;dr¶Èj¶J»DfEé1XîIî€Lxeª;ñ,hSð˜²øöF¯ ïåŽ,hí@^¼c®øÖ^DU¹—½ÜÑÃM0¢Yä»
+‰&dÁ[<8ß{¿×·ãQ@{|Û-IÉ
+q§÷wú]ýœ@±¢4¯`B3 ºÂ}ö»
+mzé¾Âðª Bð|XF³µ3¶‹Á}…áEº–y¶Q <çò™Ê¾,Пª^#Ð[ɍޞJp?¸U{[´wYñJ9D·ø†óÒ\‘¶y³¢ %ÄS ¯'¹²Cfä%âNA•8?R
+"î;øR4™ Ål¶wÌ;’®à®î_à8"¸ý¬Ïë9“UD½Û¿±DjXÔ7ËßClÍwâmcYÐDvVaú=°ôý2dž•Ü¿°,¨E#Ò®¾:„¨{¶˜l»£÷½ ÛÕáÛ˜ºã;2½»TyÏÞ!‡³B^¸öÙxc $x#ï1[;¸s¼À°ºGôÔzvœšÝ_¨§A 7Œü«0ØXž}¦66m-­y=ˆjýÛ/gÌÊl8uÕ`Ž·½_P¼Æë%ë³áÔûíph!ä.½ÎÊ¡ïkö®ÓÝèxy¯‰|¿E³é|ÿÅh»9ônñÞ¢f¾ù±À›zü›BûÝåøßZ‚WûE	^åÃJðH¬£´¥éø^ÁâSüÆQÊæXϱžc=Çz‰õñU€ÅW_X|`ñU€ÅW_X|`ñU€ÅW_X|09õ³/–G
 endstream
 endobj
 577 0 obj <<
@@ -890,27 +884,38 @@
 endstream
 endobj
 722 0 obj <<
-/Length 2578      
+/Length 2582      
 /Filter /FlateDecode
 >>
 stream
-xڝYKsÛ8¾çWèHUE¼ø@MíÁ3›¤²»É!qjjkf´Y\S¤Š;©ùóۍ(’¦•ì\, ݍî¯æ›û
-ß¼{Åýï/·¯~z«ÅFpf¸›ÛÃ&3Œól“rÍ„J6·Åæ÷H2Åäv'DÌ£·[“DM»Ý©LGý±é,Utªê
-÷M½U2zÄ?¶ír˜‰¨§oOeÜþçöp­œ^+…bJ+àÊÝø	÷Œlþô6›îÝIÎøËb£é„`³#›ßw1çÑMQÀ½J§È§ÒÑ9ßoe=lã$Êïí/&e2½°ò¹´u~•`'%“ ;¯³5~ÞYЃÔ:ú†L4CK³–aþäÛZ,ò>§Ñ<æe½¯†¢¬ïqIEH£¼(÷4ß78tRµeÞÛ	:^ÖH·ohvÊû¶ÜÛî5Léž—»sÞnEÔÁ3G–h†(ÈÞT½ƒŸ8&	›ƒW-Rÿv†3Y´ªO•0“u÷·îWÚ9S¤ÎX“°“­ÑJY–š°£;)ԏ÷9ÉX2>>%鑸¾ØAü’Ä)‹Ó‘¹V`Œ0ºÜ!膲#‹:ÎáuÕÐï¾µðFôÝ›¦Šª¼ïm»°x‰è˹u©UëúµA‘HΈ.Žºc3T]{–Fž‡ •G$`÷}Óz杧«‹-,îås¶ôºV^úSÙu΂‘òWÊq•Ežñ½Å©È«íãÍõûãuµ²W^X–Èñ…?¿óñfí5KõhÀ
-°^öß­óí{TUj¢¡",™Ö‘fuØ8sqð>eD÷˜»‡+…яï*KÄóº Oûå{Jƒ×,ìEƒB—Ý¥œi¥Èiµ!öC½ï˦îVõ‘N¼¥CÜûhûkÞ%˜ˆåÔ½Á`H²¦?Òô‚p)ŠßÑ*Iuyö™œ9z1AÐ^¯ÇÎ2=¢Â¾ùµyt„Ú+¬ÖÄ:gl¿_úJ‹E27°äš‘H«H’1p?`gRÚ¼øG°8ðKZ ·^¹'K¦ˆå×߁ñwEXxœÍ€wŠ@‰bifæšHW5ñ¥[ š]òÞöoþàB8Ý5Û[EYÃÍÜc–
-Ä<b¡¶b§­¥ F` š‰‘½(ÆNI=ñ7í†Ñ³%æª	aX¬FeRܶ?"q:ªhÕÌám³Q!ÝE‰×Œ<D^
-™8Ÿ[s¢”%fÉõûRî4på#³ÙS9Õµ D-!‘¤HfÙCç†}yø6KÑ L4îSa«åú$dú€æ/ۡ÷ã]ßu3ùŽE.ùæ¿Ï’ÏL®ü?DÒœ©DÏdâé5“ˆ§¸¤h‡:$#®pl»¾„¸ïS¦–ÛÛbhíR”,Æ;¢¬gåÔ˜)\—÷8J¢²§Ìšð—Ì£„ÁÅ@Ü‚Ì⧡ó§OèŒCÕ—çʯ\Xì:—Ã8’õªÁg¼z[eÅ´ÔhÜ%&†"(£ÔɶÏËÊßÕYûÙ¾41”Ró(ì”JšfC6ÓÙ?Q[¨v0»…Ÿ!4@ŽZ:†/$cª(6Qí^GÎópûÜP¢¬ò»²*)¹§¯˜ð϶CɐŸlONþL¿Pé¢œ]@¶7!ó˜k9cY<³J¤ßZ÷Ô8ô¶Å1Š‰
-Û–Äp_RòÚy­+ÃLlf˜sh›SˆÒTCe3P݃Þ|:¯;uq˜¿+Ô ZÒ]¿äÖf:Ã2¯?hÞY
-t1ÆÕ1ÓuËm	¹M_œÃoNßà2]»íÏÈò<²>#¾ÏëÚÍØgm‹ð‰Ç>gÄM>g\>"Ÿ›í£m}^×Ù¿Ý~úòf-ŠÅ ŒñÙ›³Ç#Ñ~Ö ,3IÐã©#JݺÇÚݾ-Ï.0 ¸þÂ~å««½·#Cnÿ¨ëUbž7–œÅ,ã6—áÛ»®ì}®g2Ëæš¼÷ÖJ¦uÊkÿ,μ¾æ'@´Ïø2ûØP=©#]m¹Êy’0Åßç\@`–÷¬´C-‰àÕyb.!å;Bô0Õæ5ˆ]b±ãž ÛBär™”,T¼°vßæçc¹Ï«°ÅúÆRé:H€,‡|¨7¡»tuk(Â}KÈ»ûk{€}ìu
-:¯æ¢óÉRCä5!µ+Yp^ßÑðéØøs}ÞöÎw`RÙ¼­Ée`æ¤ðçh°nà‡8N~ÄŒ2~ÁÀcÛ÷ÇÅUï¾¼M#@f².x•ˆ¹up1˜¶+[*)qê`’?l©àVaà_³©çÛhÀp|
-7+ë	ð}?T€­y»ÞÒ,“fÖñ[hÒ-Å̱rò°D õ•ñUš0 ˆ™"<Üòd&e2º˜]EIæS4­ßCÐÕѲ8¸ê›iL7è&ñÑ÷5!ÑzT4	€Eü=©Ó^B¶Õ¡¸‰q/¬N^ˆÀ3&°Sô̪@@rÚeï甡võshP!•k)>ù 'fÔ<…¿9ôä¯2
-…;y¸
-4áKÞÓ/øNç‡Mí]z–`Š¾0(ý¯
-‰vOG0³}È,¬ºG0¼t`âC¸'ã44"(¨°‡rHØ)©»“*£ðÞñŠu”Hùfðçfò‹Q~-Ž€ìB5‘£EjKáñM„|cÆËϸ`¢»|~”1sVÎI ¹KòÔ pâ5‚hŒCÈ$vX‡;.·Sß!Á¨Póiô@{ˆU¼eèûf5ËA˜NFkþœ?ú#N\ AÙÍZýÏç±i§Á2ÿíï!ˆã‹^Ê4
-ñ6*‘/^
-ƒÓÙ§|«ŽSÅÆU`Â-Õ”æñ1„5û’³®\\Žs)>aËe
-ß!h¦ÙL 8ú€ø	/í†Ö3Bµ®ùÐrÑÐâ$ƒ¸R7õ΂ Hð›ONe÷.P¡sYo ²„i¾[4¾Ý´^?	(0¦M£«bïø3‘ômÂy½9‹Ì®!ú¿ƒï’Û7!}NÂɵúFfVö"r¾ÈqõÚâßÄ(Qä !ó©‘׺G·–»p)_ÕZjØ¥Z_EÎÄ%*vPÇ:xDŠ£àÄá:ÞW5yAK/¥±€z’›¿&ûNKcÝeþÖIŸ'ÅV¨ã$Èÿ[Y”²†Š,Í_ØáÝŽjÙ
-jª:›±a<÷¶$o5ÑŸtö_N	¸ð›SÚûН1{\Ó1¤ÇzL,|ŽÊMÀ^ms¦%/CMëÞ@´ï_Ã.o·PŒR@ltÿÿo#¸À*Ú'±(fñ2_yï]ÎGm|ùŸ‘‚b¨[v®N!~ÎÅÔ™}ª6ïHž2¡1µ7,ËBß@Ï6½¹}õ?μ‘•
+xڝYKÜ8¾çWÔѤ4zø%öÐ3›ÙÝät0XÌìÁm«º¼í²~t'˜?¿¤(ùÕîJv.eI–)’"?>Šïîw|÷îwÏ_n_ýô6;Á™æZìn»T3ÎÓ]ÂC&T¼»-v¿’)&÷!"¼Ýë8hÚýA¥aПšÎàPÇ¡ª¾Ñ0oê½’Á#þ˜¶Ë`&‚žÞ=•ýiÿŸÛÀ±r~¬Š©PWöÄO¸gdó§·é|ïArθÀ'‹tH_¶ød÷û!â<¸)
+8W)àùTapÉò½Lƒ‡}Ù½ÙâE'L&+ŸKSgWùq¤dtçt¶ÅÏ;za|C&š¡¥Y
+Ë0²‹í-YŸÑèñ²Î«¡(ë{\RA’ +ÊœæyƒóG+U[f½éà#AŸ—5Ò횝³¾-sÓ½†i,íUârwÉÚ½:¸æÀM¿ÙÁý€ªðˆ"’°9:Õ"õoø&
+6õ©b¦¯ÎâþöÒýJ;ŠSóØïd[´–&Úïè.D
+õcÅ}N2’ŒWIz$®';ˆ^²ƒ(aQ2²ó"×
+ŒFÓ‚N(;²¸¡3àNW
+=óÖÀÑ{gš*¨²¾7íÊnà& /—Ö¥6­ë×Ez´"Y# ºdH8êNÍPtì\X8¼V‘€Éû¦uÌ[OW“-¬ÎåK¶Âm'¬œôç²ë¬#å-®”å*
+ãz‹U‘SÛÇ›ëçGÛj!eoÜp¨Y,ÇþüþÍÇ›­YŽÜ ‹àeÿÝ[?AÞ£ª	y`È´N4«ýÆ…‹ƒ÷)-¼¸§Ì^\é)Œ~|W"žÕ½Ê×wì(
+N³°
+]öp*ENjbÿ8Ôy_6u·©dæ-âÞGÓ_ó.ÁD$çîuôC’5ý‰¦Â%(~G«$Õtí=Xstb‚, ½ÞŽœ¥áˆ
+yókóh	µWX¬‰ÂÈcú|íw*,ñÒÀâkF"m"IÊ Àý€ÉpÔæäÞâÀ/iîzãœ4ž#–
+\2Äße¤`áQº Þ9ÅŠ%©^j"ÙÔÄ—n;„lBÈ{Ó¿ùƒât×llqe73‡YÆsˆ…ÚŠ¬¶Ö‚hh!Fú¢%Ù·Øi7Œž-Á07}HÍ"5*“â¶ù‰“QE›fw›Ž
+é&%^3òdy(dl}nˉë5×ïkH™ÕÀ•S´|LWeU×µ„D
+"^dKòòøm‘¢A˜hì«ÂTëtIÈüõ_¶C‹oƳ¾ë$ fü‹\óÿÌŸ$Ÿ™$ùˆr¦âp!O®™D4Ç=/E;Ô>¡p…cÓõ%Ä}¸|—2µ$XnŠ¡5kQÒÏX‰²•lPc¡HฬÇQ”=­`Ö„O2q2‹¯†Î}}Fgª¾¼Tneb±ëlcIÖ›ŸBðZém”e8Aã!ÖA)¥FH¾0}VVî¬Î?ÈdûRGPJ-£°U*ij˜ý>ìæ³¢¶Pí`v+%>Ch€µv!_HÆ:TQ¤ƒÚÞŽ¬çá s¹ DYeweURrOo1á_l‡’!;›žœü™~¡:'D¹Ø€lo|æ±ÔrÊÒha•H¿5öªqèlŠb¦-‰á¾¤äµsZWšéH/0çØ6g¥©†Êf ºœ¸:•’ÐòºhKxgî_ù… Î’Nù%ë°*S,ðúË€†&@Ó`\s\»Ü–õ×ôÆZ8<3z‡…8ÚAó”lÎaê3âyVoÐnîÀ2kSøWt•8vÙ"nrÙâúúøÒ`Më2ºÎüíöÓ—7[ñ+eŒÞ\rh‰–³])Hòƒ.Í]PŠàÖF Ýåmy±Á_Ôºû·ìõÞŒÙý// ¢W±~ÞXs±DŒÛlnowù·ÒœÉ4]jòÞÙ)Ô9«ÝµØTækv,ó™Œ+°O
+¥Î³
+ÒV•›œÇ1Óèûœ(
+ôºÔ^t‚¨-V .õÔR®DwSmVƒØ%–9ö
+°!DΖª±4I}­k÷mv9•yVù-Ƶ”JÛ;L9f¹§Þø¾ÒÔUláwÍ çè7¶áö
+€×5gt. .Ÿ
+µB^FÛb÷àñ
+ŸNû®ÏÚÞúL*“µ5¹̬î;l¸„”!Šâ1£”Oèwj›áþ´:êÝ—÷¯i˜LÖ×¢b±´..f@ “ÂteKÅ$N-Ì B²‡=õ ìêÉÜm6õr»
+ŽWage½  ¸ï‡
+P5k·ûA!K¥^ôúVÄ!”báXù	Ø"@˜‚õ•ëU3 ˆ…"Üòx!e<†¸ˆB\EéNÈ!›hZ·‡ «£ejpÕµÑ˜®×Mìâîk|ê$‚íx¨c ‹è{R'# !±„<«CqãĝXÝ)€§L`è™)XT€d{³ë®Ï9+|Õê çØ B*ÛL|rANÄL«eò~sìÉ_eàKvòpåi›¬§'øNç†Mí\z‘ZŠ»0(ÝÓ…D»§O0§}È[+¬úF0œúF0qÁÛ‘±šáT˜cÙ#쫤]ÈY}‚Q8·¼b%K¾ÜwùÅ(¿Àæ†Gv¡ÆjÈÒΊ¢ôU¥pø&|´àåg\ÐÁÝ@>¿
+ʘ3+덤 ‡Ì¦wj 8qÁ
+´@ÆNCÈ$¶X‡;¦Ó©ã‹`T¨ù$x =Ä*ž2ô}³™_ƒ ,ŒGkþœ=ºO¬¸@ƒ²›­ÊŸ/cÓ!Ëü·M¹/Žm):)“ÀÇÛêC¾ºe(	Î'œrM:NµWž	»TggC«^]ð}…ä¬+·E—cZOÅÁ'l¶lá;Í$]=2á¡ÝÐ:F¨*Â5÷7-
+-Î2ˆIº©E‚ß\r*#8w…
+NÈ©çv$K˜ÿGR4®Ñ´]9	(-æí¢«b÷ø3‘t
+Âe¥¹ˆÌ¶î;¿ƒë’Û7>}NÂʵyGzQð"r¾Èq•Úêˆâ'r€ùÔÈ‹mÚ£[K‡]¸”mj-ÑlªÓ7ÑŸ31EÅ*XHq4œX\Çóª&+hé¥4POrý×d?„ÒÅX{˜;uÖ¡ÇI±ê8ñòÿVÖ¥¬¾KRÆWvx7‚#¤Z¦‚šê…žf¤OGŽ-É[uð'}û/«\øÍ*	í¿}è.˜=néÒãpL,\ŽÊµÇ^ms¡%'CMëÎ@B×¹†]În¡¥€Øhÿùw#¸À*Ú'ó±(bÑ:_yï\ÎEíÐ#ùú?‘‚b¨]¶®N!~ÉÅÜ™]ª¶ìHž0bj¯YšúŽA¸ØôæöÕÿ êˆ
 endstream
 endobj
 740 0 obj <<
@@ -1347,21 +1352,15 @@
 /Filter /FlateDecode
 >>
 stream
-xÚÅXÛnÛ8}ÏWØ<$€¬JN|6.à,ºXAã.°hû@K”Í-Eª$G_JâÐ"m)i±¿èB‘sfæpæÐÑh7ŠF¿]Dæúvsñæ~¾-Âålv;Úd£Å2Œ¢Åh݆ñÍl´IGŸ®~¹O'Ó«QûöNíq{CQÑöá	ÑKð¾ÄY†eFùöoý^Ùü®aŒã(\N—Ž­¿xÙÞ$Ȭ$µùÄØßbuÀøhB#ÛÊLâyŽXj¬Éæ!	&'q¸ŒçÖäÍl>½Ê«œ§˜^–?ªôvÍ,ð븽ޯþx\÷€~Ý
-›×„…ãõC©a;?tR‘)m&xî}!°,©\ã0³ùPü8©?îgÒÔÞç•
-Ìb™·ºö7…ȳTS‚3 …¯ßÀd3'å옵Á˜j׆hÖû¯Z¦ø‹aéR»¨Ð€“š®#¨
-õQÇÓÀ›d3Æ}ÒgDH5 $Åf)f&ÆLÓš‹¯Á¿–äs4êØM¤À•‹P~À	¢\CÊw²dÉ1R¡fA؉[ÂlU f!±+sí÷	;-)NËܬù¤Yȯã+áVwï¬Ì¼=N¾öbí¥·N¦Bøl¿gøðR¡3×¥@g´MÝÍ<œi”ÎNo’ÔŒŽÏ
-gÞV at 7K.d(C´ÂR¦	 ŒRad¨Í3?4U·®ö§Ü¸K °Z«´ªÚï¹Â§±'ò\;ÀèµÅ~A)™"ÔǾGl*ÝN§/ªlá.4Äï–Â3õ3sn) ÊÁõÁ™— [£'M‚õ6ŠïŠJ‰´5'÷¼¤)”Y?
-[œq;ÀN;NÓÅ‚Í¶Õ%¡r`*}ßÚìJ?½{ôd…ƒ®…®°[jÞPÌvj/óíñûé½inÎE¹ÿuq¬¦×
-Âæ•ñþ4"sóCˆþ“xPqs bUövŽ–*ÇBoÒ‹ž¡Èfôáã»õûÕåãЬ9®
-¬&ë:	kH +ü³ªK‚„ P`x©\ñ˜’'’ÖÉíeynM¹JÍ]Ðnp©´ò@ÂÆBðÁŽöQKá7¤Òàµô%²·ÛyèàË(8Νˆ6{t@;…àύ—´r
-¥ëã"‡ZŸ©Ù–/•·‰Éõc¢Ôëómå\®‹8)úh`©˜b™h8š C
-Ð/‰ˆ•ˆ¡x‰vºËè0$
-˜ü(ºª¿9!œ@ÚȽ 糓:v]EåoÕŸ<ŸÝC»ÃÏ(×!÷:«ÀßJkø‘ضs•qqr¤LñN`H"/JŠQUfðš½éO²Š>ã”òCOß¹ßN¢Èˆ6GPK¬Ö
-–Zï:‡#öÀ‹ÇoBSrW'58ºnžÏïüÉD/xÕöwQ
-Hô¡=ŠY|3Í[t¦Ÿ·ìG
-ÝåU}	œÔß5^t
-¦«Ì–“αš€Á¢{Ôk4™KˆŽÊ¸'±"o2x8U>GQ/mNo&áb>ÿ?´„ý§åÍýbTG˸þ›eÍÃøöVC‹ÃÙ"nçÜ,œ)ëÍÅw‡6Ÿh
+xÚÅXÛnÛ8}ÏWØ<$€¬J¾Ø<¤@²èbQ»À¢í-Q6·©’Tý}GI‰’¥¤Å^ü¢EΙ™Ã™C“Ã$˜üvèëÛÝÅ›ûõv²ñ·«Õb²K&›­›É:Xøá|5ÙÅ“OW¿\O—³åÕ‰¨c}§Ž¸¾!Œ(‚hýð„hŽ¥è|‰“GJòýßðà_Ùý0¦aào—[ÇÖ_<¯o"¤W’`>Òö÷X0nLHmd_èI<M‹µ5™›yH“³Ð߆kkr¾Z/¯Ò"å1¦—¹Ä*~®é~Ö×ûÛ?ï@¿n…݇w„ãõC®a‡nè¤")R&´‰àiçeNÝàj‡™Í‡âͤḟIS}Ÿ0äéÅ’Îêào¬ïXÄY¤àÌÐBÇ7fºžsÖäm4ª`úRSíÏ’dŸÌ«ˆæ1þâÆP]‚“
+¸	äp]A­ÉZ¾zI6g¼Kû„©F€Ä8Ã,ÆLG™±¹øêýa‰>Ë Œ *yPÁX8‚òŽ¥Æ5¤ºNBÖ›HU†ªÍ^Üfë‚á‡<¿{ü´¤ˆ8ÍS½æð_‡W­îî¹ÕóŽ8ú:ˆuàL…ˆa´ýžáÓK¥N_S:Ò:u󵿔Î^¯’TNÏ
+kgÞ†n–\HS†€ÂR¦
+0¥ÂHS›'ÝýP=íÊ:œrí.1¥ÕZ¥ÅXÝ~ÏîÇžÈs1l?C¯=î—Ehû±ƒéA¦Ö }ÞXmó¾&~»ž© ‰pK‘®oœy	°5Úk<+·ÑX|o©ÔÐÙ™H[sòÈs›2ÛMÃ'\à°~Ï©ú˜7²ÙöPrCLe×·:»²›Þ#z²Ò*CvOõŠÙA¥¶Aþc?Ø›úæ\”‡_W§ðӝ¼l&lNQ™þèé›BôŸÄc„Š»“!V‘áÎαÒz^ô„E6ÛF!>¾»{;FùÐ×kNKC½õÉ²Nšµ3$PŠ6ü³"ÒT—	ALá¹råcLžH\&w”å¹5åj5wA»Á¥偄6Œ…à£í#HÑmH¹ÝKEÆKñKä`·ë 3_^O:·"ZíÑí”e‚?W^ÒÂ)”®wŒ‹ÔÔú˜H%È>©¼Ít®#(P¯Ï·•s)q’
+ÑÀR1Æ28@€±Ø-‰ˆåˆŽ¡x‰vÐe ‘2Ì3üÈÚº¿:#ô Œ­äžgçs'&eìÚŠª»Uò„voÚ~F)„¼ÓYþ–[Æ‘m;
+¨„‹Þ¡2ƁMy–S$ˆ*Ú0½×ìM÷؈Qô	§”ŸúÎõt1-ÚA-±º«°”z×9±ž=~ªIÉM™T¯q]?Ÿßù³,xÕö7ŒHô
+¡=ŒY|3¬ktºŸ×ìG
+ݤEyñœÔßT^´
+¦·‰-'­ƒ53‹öQ¯Òd.!F\h”ñ@b¹‰¼Î੯|Q/mNç3³^ÿZÂþ×òæ~3)ǃmXþÑ2Ö~¸X ´Ð_mÂzÎ|ãL¹Û]|`° K
 endstream
 endobj
 843 0 obj <<
@@ -1490,33 +1489,31 @@
 endstream
 endobj
 904 0 obj <<
-/Length 2812      
+/Length 2795      
 /Filter /FlateDecode
 >>
 stream
-xÚ½kÛ¸ñ{~…û©2sõ ^×/MÒä°wM.ÈnQwªµi[Yt))›½_ßyI–í"‚~±Éáp8œÎKþb·ð?>óåÿåí³«7Ù"ðUîçÁâv»‚D…Y°H}­‚(YÜn¿z·{³ü÷íOWot8Æ
-#ëÒu]¶eQ-W:J¼OEÕ¦žÝ2¨Ý`W,¯¬yr,–aæ¹â`Zãø)?I¬t÷‡líPÖ¦áí-êé6­9òQMùÀ¯á)Ÿ5âàXŒ\¬‚,W~¨aÀ¢“: œmŠ–Î
-„eøg2 
-E[~Â(ôŠjg]Ùîj¹JÒ$Wö»›³Ý'&hºF†A|Wï›9‰GAªt’öÒøÍ´kÚÝŒÜÂT¥Ù ›žõmW¯ÛÒÖs´W‘ŽU'S14¥©‹·–eaªW΀@fÎË|¥³AMxû(ô^,WQ{-o·8K¼Ê¢¼îyòi'Û
-NËñ*QÞ8i÷EËÊV ÅG’uÓoƉ{èéÖ;A““ŠÍ£ÀËÓ”ÿà+Ö»ð<½¯­‹»ŠT”{GÜŽZB…ˆ¦ðø¶< ç~oj†7máÚ™@øÖÙËš!åð@ 8Ñ~>–Nùêˆfƒ¼úS.·ì‹ÂPN‰Âˆí
-Aÿi]gþÌãÑ)ˆÓsêÑ: õ ÒH=0Û—»=cu'ÝÐi¤ÜÍçFbúK´ðØç˜Y¾/+¸z”ÞgxÒÕKz§=eýs\@©mã@âafo»wlK5Ï-¼‡ˆ‡kÛ¹FÐ@ÿ€DF³‚ÿœÙá;à}Û/Ž”]ÈcĵßüØ7j§žÏ©coÙY˜Ê4M…¬F‘Wng`[ÀÓ±*"}n£æ(^·¼«kº¢bŠš\ëÚ¬á¤ÂÉQt7 at XãE÷E½3ïCä‡O§äàêÂPŁ¸w}†óë*ö}ï¥gâ“xÜ’;‹â”yÉæµld.û«H•dšu¿ß0úÚÖëªkX°pR2,ž”L[ÈÒ ,›
-6EwÄóF¤¿.Ñ!®‹VȦýë‘;\ÖkëœY‹œ·Vô‡ d'~½æ)ā‚1Ó>%S1÷xV¦o–¨ÏÁ!ŽÉîMuäQYÿp7°“£3àM@ö;>×ví±v{KàMÚ»1ƒ[‡#}…Ž?.ƳŸ‘
-Ü–(}΂I—$ƒe GhÐ=0C%Q#‚$AåqRÔ€»Ã^¸|®Â âˇ*ƒG„±÷cù‰<b”Æð²¶Æ™,w&~€ý‡Àc.âû'{U?€fâU‚L$}Ĺ¹~ýîÅÝÈW‰?ÌçLã‰öÙˆq^AØë<ã†âaô€Ú°Oè‚a™¿„œ%D덠XØÚÈÀñÂÁ:Ñ(ËI¢©…:ð&ì%Ø"0uÑc!Òœ³+Ýç6±>f/ï£a:ns0ìé†èKêÉ>íÝ‡‚Аê”2>Ú<œ'è¶ß6˜ÆB8êèYmm%	 ¨õäúG“øP»øPÐ}ä‘÷¡k1"e÷Vì½.ß×Æ-bS ¤êeÆ1`ïI½ôQYèýÜuê™?ïý2Ó˜³àbèƒu/Wq–{oÇ—*ì$ Œ
-^ÛÛ¹$)צ}ð®>0„ô¹"Ä™>î
-ˆ?-1¡œ 6‡ú¹€Œ"³“Øûå3p±ù&àÞþQ£“J鸶w @‰2ü3²ú›Ô’5oZpšÍj&l·åºù«î]î51Õ†Uú
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/rsiena -r 161


More information about the Rsiena-commits mailing list