[Gmm-commits] r42 - in pkg/gmm: . R inst/doc man

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Tue Nov 29 23:02:27 CET 2011


Author: chaussep
Date: 2011-11-29 23:02:25 +0100 (Tue, 29 Nov 2011)
New Revision: 42

Modified:
   pkg/gmm/NAMESPACE
   pkg/gmm/NEWS
   pkg/gmm/R/Methods.gmm.R
   pkg/gmm/R/gel.R
   pkg/gmm/R/getModel.R
   pkg/gmm/R/gmm.R
   pkg/gmm/R/momentEstim.R
   pkg/gmm/R/specTest.R
   pkg/gmm/inst/doc/gmm_with_R.pdf
   pkg/gmm/inst/doc/gmm_with_R.rnw
   pkg/gmm/man/summary.Rd
Log:
Several changes, See last NEWS

Modified: pkg/gmm/NAMESPACE
===================================================================
--- pkg/gmm/NAMESPACE	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/NAMESPACE	2011-11-29 22:02:25 UTC (rev 42)
@@ -7,9 +7,11 @@
 	residuals.gmm, fitted.gel, residuals.gel, plot.gmm, plot.gel,formula.gmm, formula.gel, charStable, specTest, 
 	specTest.gmm, specTest.gel, print.specTest, momentEstim.baseGmm.twoStep, momentEstim.baseGmm.twoStep.formula,
         momentEstim.baseGmm.iterative.formula, momentEstim.baseGmm.iterative, momentEstim.baseGmm.cue.formula, 
-	momentEstim.baseGmm.cue, getModel.baseGmm, getModel.baseGel, FinRes.baseGmm.res, momentEstim.baseGel.mod, momentEstim.baseGel.modFormula)
+	momentEstim.baseGmm.cue, getModel.baseGmm, getModel.baseGel, FinRes.baseGmm.res, momentEstim.baseGel.mod, 
+	momentEstim.baseGel.modFormula,tsls,summary.tsls, print.summary.tsls)
  
 S3method(summary, gmm)
+S3method(summary, tsls)
 S3method(summary, gel)
 S3method(print, gmm)
 S3method(print, summary.gmm)
@@ -22,6 +24,7 @@
 S3method(formula, gmm)
 S3method(print, gel)
 S3method(print, summary.gel)
+S3method(print, summary.tsls)
 S3method(coef, gel)
 S3method(vcov, gel)
 S3method(confint, gel)

Modified: pkg/gmm/NEWS
===================================================================
--- pkg/gmm/NEWS	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/NEWS	2011-11-29 22:02:25 UTC (rev 42)
@@ -5,7 +5,12 @@
   values provided by the user (for linear cases) or the first step GMM. 
 o You can now trace the convergence of the iterative GMM with the option traceIter=T
 o The weights for the kernel are also fixed for iter-GMM. It is faster and I don't think it should change at each iteration. I am open to comments on that.
-s
+o A function tsls() has been added to facilitate the estimation by 2SLS. The user does not have to worry about selecting the right gmm options
+o summary and print Methods have been added for tsls objects. The summary prints the f-statistics of the first stage LS
+o SmoothG for GEL uses now the kernapply() function which is more efficient.
+o Something the GMM converge to weird values which is sometimes caused by bad first step estimates used to compute the weighting matrix. 
+  Summary() prints the initial values to have more infortmation when convergence fails.
+o There was a bug in specTest() for GEL.  The degrees of freedom for the J-test were wrong. It is fixed.
 
 Changes in version 1.3-8
 

Modified: pkg/gmm/R/Methods.gmm.R
===================================================================
--- pkg/gmm/R/Methods.gmm.R	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/Methods.gmm.R	2011-11-29 22:02:25 UTC (rev 42)
@@ -29,10 +29,45 @@
         ans$algoInfo <- z$algoInfo
 	if(z$met=="cue")
 		ans$cue <- object$cue
+	if (!is.null(object$initTheta))
+		ans$initTheta <- object$initTheta
 	class(ans) <- "summary.gmm"
 	ans
 	}
 
+summary.tsls <- function(object, ...)
+	{
+	ans <- summary.gmm(object)
+	k <- object$dat$k
+	fstat <- vector()
+	fstat[1] <- object$fsRes[[1]]$fstatistic[1]
+	df1 <- object$fsRes[[1]]$fstatistic[2]
+	df2 <- object$fsRes[[1]]$fstatistic[3]
+	for (i in 2:k)	
+		fstat[i] <- object$fsRes[[i]]$fstatistic[1]
+	pvfstat <- 1-pf(fstat,df1, df2)
+	names(fstat) <- colnames(object$dat$x)[(object$dat$ny+1):(object$dat$ny+k)]
+	ans$fstatistic <- list(fstat = fstat, pvfstat = pvfstat, df1 = df1, df2 = df2)
+	class(ans) <- "summary.tsls"
+	return(ans)
+	}
+
+print.summary.tsls <- function(x, digits = 5, ...)
+	{
+	print.summary.gmm(x,digits)
+	cat("\n First stage F-statistics: \n")
+	if(names(x$fstatistic$fstat)[1]=="(Intercept)")
+		start=2
+	else
+		start=1
+	for (i in start:length(x$fstatistic$fstat))
+		cat(names(x$fstatistic$fstat)[i], 
+		": F(",x$fstatistic$df1,", ",x$fstatistic$df2,") = ",x$fstatistic$fstat[i], 
+		" (P-Vavue = ",x$fstatistic$pvfstat[i],")\n")
+	
+	}
+
+
 print.summary.gmm <- function(x, digits = 5, ...)
 	{
 	cat("\nCall:\n")
@@ -51,6 +86,12 @@
 	print.default(format(x$stest$test, digits=digits),
                       print.gap = 2, quote = FALSE)
 	cat("\n")
+	if(!is.null(x$initTheta))
+		{
+		cat("Initial values of the coefficients\n")
+		print(x$initTheta)
+		cat("\n")
+		}
 	if(!is.null(x$algoInfo))
 		{	
 		cat("#############\n")

Modified: pkg/gmm/R/gel.R
===================================================================
--- pkg/gmm/R/gel.R	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/gel.R	2011-11-29 22:02:25 UTC (rev 42)
@@ -161,16 +161,22 @@
 	rt <- length(w)
 	if (rt >= 2)
 		{
-		w <- c(w[rt:2], w)
-		w <- w / sum(w)
-		rt <- rt - 1
-		sgt <- function(t) crossprod(x[(t-rt):(t+rt),], w)
-		x[(rt+1):(n-rt),] <- t(sapply((rt + 1):(n - rt), sgt))
+		rt <- length(w)
+		if (rt>1)
+			{
+			w <- c(w[rt:2], w)
+			w <- w / sum(w)
+			w <- kernel(w[rt:length(w)])
+			}
+		else
+			w <- kernel(1)
+
+		x <- kernapply(x,w)		
 		sx <- list("smoothx" = x, "kern_weights" = w)
 		return(sx)		
 		}
 	else
-		sx <- list("smoothx" = x,"kern_weights" = 1)
+		sx <- list("smoothx" = x,"kern_weights" = kernel(1))
 		return(sx)		
 	}
 
@@ -237,7 +243,7 @@
         return(rhof)
         }
       if (ncol(gt) > 1)
-        rlamb <- optim(rep(0, ncol(gt)), rhofct, control = list(maxit = 1000))
+        rlamb <- optim(rep(0, ncol(gt)), rhofct, control = list(maxit = 1000,parscale=rep(.01,ncol(gt))),method="B")
       else
         {
         rlamb <- optimize(rhofct, c(-1,1))

Modified: pkg/gmm/R/getModel.R
===================================================================
--- pkg/gmm/R/getModel.R	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/getModel.R	2011-11-29 22:02:25 UTC (rev 42)
@@ -28,7 +28,7 @@
     
     if(is.null(object$weightsMatrix))
       {
-      if (object$vcov == "iid")
+      if (object$vcov == "iid" & object$wmatrix != "ident")
       	{
           clname <- "baseGmm.twoStep.formula"
           object$type <- "Linear model with iid errors: Regular IV or 2SLS"
@@ -182,15 +182,14 @@
     rgmm <- gmm(P$g, x, P$tet0, wmatrix = "ident")
 
 
-    P$bwVal <- P$bw(lm(P$g(rgmm$coefficients, x)~1), kernel = P$wkernel, prewhite = P$prewhite, 
+    P$bwVal <- P$bw(centeredGt <- lm(P$g(rgmm$coefficients, x)~1), kernel = P$wkernel, prewhite = P$prewhite, 
                ar.method = P$ar.method, approx = P$approx)
-    P$w <- P$weights(lm(P$g(rgmm$coefficients, x)~1), kernel = P$kernel, bw = P$bwVal, prewhite = P$prewhite, 
-               ar.method = P$ar.method, approx = P$approx, tol = P$tol_weights)
+    P$w <- smoothG(residuals(centeredGt), bw = P$bwVal)$kern_weights
 
-    P$g <- function(thet, x, g1 = P$g1, w = P$w)
+    P$g <- function(thet, x, g1 = P$g1, bw = P$bwVal)
       {
       gf <- g1(thet, x)
-      gt <- smoothG(gf, weights = w)$smoothx
+      gt <- smoothG(gf, bw = bw)$smoothx
       return(gt)
       }
     }
@@ -198,7 +197,7 @@
    {
    P$k1 <- 1
    P$k2 <- 1
-   P$w <- 1
+   P$w <- kernel(1)
    P$bwVal <- 1
    }	
   class(P) <- clname

Modified: pkg/gmm/R/gmm.R
===================================================================
--- pkg/gmm/R/gmm.R	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/gmm.R	2011-11-29 22:02:25 UTC (rev 42)
@@ -42,6 +42,15 @@
 z
 }
 
+tsls <- function(g,x,data)
+{
+if(class(g) != "formula")
+	stop("2SLS is for linear models expressed as formula only")
+ans <- gmm(g,x,data=data,vcov="iid")
+class(ans) <- c("tsls","gmm")
+return(ans)
+}
+
 getDat <- function (formula, h, data) 
 {
 	cl <- match.call()
@@ -126,8 +135,9 @@
   	{
   	if(type=="2sls")
 	  	{
-  		fsls <- lm(xm~hm-1)$fitted
-  	     par <- lm(ym~fsls-1)$coef
+		restsls <- lm(xm~hm-1)
+  		fsls <- restsls$fitted
+  	     	par <- lm(ym~fsls-1)$coef
 		if (ny == 1)
 		{
   	     	e2sls <- ym-xm%*%par
@@ -182,6 +192,11 @@
 	  value <- crossprod(gb, w%*%gb) 
 
   res <- list(par = par, value = value)
+  if (!is.null(type))
+     {    
+     if (type == "2sls")
+     res$fsRes <- summary(restsls)
+     }
   return(res)
   }
 
@@ -215,6 +230,13 @@
 .objCue <- function(thet, x, P)
   {
   gt <- P$g(thet,x)
+  if (is.null(P$fixedKernW))
+	w <-  weightsAndrews(lm(gt~1), prewhite=P$prewhite,
+ 			   bw = P$bw, kernel = P$kernel, approx = P$approx, 
+ 			   ar.method = P$ar.method, tol = P$tol) 
+  else
+	w <- P$fixedKernW
+
   gbar <- as.vector(colMeans(gt))
   if (P$vcov == "iid")
     w2 <- P$iid(thet, x, P$g, P$centeredVcov)
@@ -227,7 +249,7 @@
         gmat <- P$g(thet,x)
         class(gmat) <- "gmmFct"
       }
-    w2 <- vcovHAC(gmat, weights=P$fixedKernW, sandwich = FALSE)
+    w2 <- vcovHAC(gmat, weights=w, sandwich = FALSE)
    }
   obj <- crossprod(gbar,solve(w2,gbar))
   return(obj)

Modified: pkg/gmm/R/momentEstim.R
===================================================================
--- pkg/gmm/R/momentEstim.R	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/momentEstim.R	2011-11-29 22:02:25 UTC (rev 42)
@@ -115,17 +115,17 @@
 		return(obj*2)
 		}
 	argDots <- list(...)
-        allArgOptim <- list(par = res$par, fn = .obj1, gr = gr2, x = P$x, w = w, gf = P$g, INV = TRUE)
+        allArgOptim <- list(par = P$t0, fn = .obj1, gr = gr2, x = P$x, w = w, gf = P$g, INV = TRUE)
         allArgOptim <- c(allArgOptim,argDots)
         res2 <- do.call(optim,allArgOptim)
         }
       else
-        res2 <- optim(res$par, .obj1, x = P$x, w = w, gf = P$g, ...)
+        res2 <- optim(P$t0, .obj1, x = P$x, w = w, gf = P$g, ...)
       }
 
     if (P$optfct == "nlminb")
       {
-      res2 <- nlminb(res$par, .obj1, x = P$x, w = w, gf = P$g, ...)
+      res2 <- nlminb(P$t0, .obj1, x = P$x, w = w, gf = P$g, ...)
       res2$value <- res2$objective
       }
 
@@ -136,7 +136,7 @@
       res2$value <- res2$objective
       }	
 
-    z = list(coefficients = res2$par, objective = res2$value, k=k, k2=k2, n=n, q=q, df=df)	
+    z = list(coefficients = res2$par, objective = res2$value, k=k, k2=k2, n=n, q=q, df=df, initTheta = res$par)	
     if (P$optfct == "optim")
 	z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message)
     else if(P$optfct == "nlminb")
@@ -185,11 +185,12 @@
     if (P$vcov == "iid")
     	{
       res2 <- .tetlin(x, diag(q), dat$ny, dat$nh, dat$k, P$gradv, P$g, type="2sls")
+      initTheta <- NULL
       }
     if (P$vcov == "HAC")
       {
-      w=diag(q)
-      res1 <- .tetlin(x, w, dat$ny, dat$nh, dat$k, P$gradv, P$g)
+      res1 <- .tetlin(x, diag(q), dat$ny, dat$nh, dat$k, P$gradv, P$g, type="2sls")
+      initTheta <- res1$par
       if(P$centeredVcov) 
        	 gmat <- lm(g(res1$par, x)~1)
       else
@@ -202,7 +203,7 @@
 	 res2 <- .tetlin(x, w, dat$ny, dat$nh, dat$k, P$gradv, g)
       }
     
-    z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df)	
+    z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, initTheta = initTheta)	
     }
   z$gt <- g(z$coefficients, x) 
   b <- z$coefficients
@@ -237,6 +238,9 @@
     names(z$coefficients) <- namex
     colnames(z$gt) <- nameh
     }
+  if (P$vcov == "iid" & P$wmatrix != "ident")
+	z$fsRes <- res2$fsRes
+
   class(z) <- paste(P$TypeGmm,".res",sep="")
   return(z)	
   }
@@ -265,15 +269,14 @@
     }
   else
     {
-    w=diag(rep(1, q))
-    res <- .tetlin(x, w, dat$ny, dat$nh, dat$k, P$gradv, g)
+    w <- diag(q)
+    res <- .tetlin(x, w, dat$ny, dat$nh, dat$k, P$gradv, g, type="2sls")
+    initTheta <- res$par
     ch <- 100000
     j <- 1
     while(ch > P$crit)
       {
       tet <- res$par
-      if (P$vcov == "iid")
-        w <- P$iid(tet, x, g, P$centeredVcov)
       if (P$vcov == "HAC")
 	{
         if (P$centeredVcov)
@@ -296,9 +299,11 @@
         cat("No convergence after ", P$itermax, " iterations")
         ch <- P$crit
         }
+	if(P$traceIter)
+		cat("Iter :",j,": value=",res$value,", Coef = ", res$par,"\n") 
         j <- j+1	
       }
-    z = list(coefficients = res$par, objective = res$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df)	
+    z = list(coefficients = res$par, objective = res$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta)	
    }
   z$gt <- g(z$coefficients, x) 
   b <- z$coefficients
@@ -403,6 +408,7 @@
     }	
   else
     {
+    initTheta = res$par
     ch <- 100000
     j <- 1
     while(ch > P$crit)
@@ -471,10 +477,10 @@
           ch <- P$crit
           }
 	if(P$traceIter)
-		print(c(iter=j,Objective=res$value,res$par))
+		cat("Iter :",j,": value=",res$value,", Coef = ", res$par,"\n") 
         j <- j+1	
       }
-    z = list(coefficients = res$par, objective = res$value,k=k, k2=k2, n=n, q=q, df=df)	
+    z = list(coefficients = res$par, objective = res$value,k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta)	
     if (P$optfct == "optim")
 	z$algoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message)
     else if(P$optfct == "nlminb")
@@ -499,6 +505,8 @@
 
 momentEstim.baseGmm.cue.formula <- function(object, ...)
   {
+
+  fixedKernWeights <- TRUE # to be changed or included as an option in gmm() in future version
   P <- object
   g <- P$g
   if (is.null(P$data))
@@ -524,17 +532,30 @@
     {
     if (is.null(P$t0))
 	{
-	P$t0 <- .tetlin(x,diag(q), dat$ny, dat$nh, dat$k, P$gradv, g)$par
-	P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the first step estimate of Theta"	
+	P$t0 <- .tetlin(x,diag(q), dat$ny, dat$nh, dat$k, P$gradv, g, type="2sls")$par
+	initTheta <- P$t0
+	if (fixedKernWeights)
+		P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the first step estimate of Theta"	
+	else
+		P$weightMessage <- "Weights for kernel estimate are variable inside the objective"
 	}
     else
-	P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the initial value of Theta provided by the user"	
+	{
+	initTheta <- P$t0
+	if (fixedKernWeights)
+		P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the initial value of Theta provided by the user"	
+	else
+		P$weightMessage <- "Weights for kernel estimate are variable inside the objective"
+	}
 
-    gt0 <- g(P$t0,x)
-    gt0 <- lm(gt0~1)
-    P$fixedKernW <-  weightsAndrews(gt0, prewhite=P$prewhite,
+    if (fixedKernWeights)
+	    {
+	    gt0 <- g(P$t0,x)
+	    gt0 <- lm(gt0~1)
+            P$fixedKernW <-  weightsAndrews(gt0, prewhite=P$prewhite,
  			   bw = P$bw, kernel = P$kernel, approx = P$approx, 
  			   ar.method = P$ar.method, tol = P$tol) 
+	    }
 
 
     if (P$optfct == "optim")
@@ -550,7 +571,7 @@
       res2$par <- res2$minimum
       res2$value <- res2$objective
       }
-    z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df)
+    z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, initTheta=initTheta)
     if (P$optfct == "optim")
 	z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message)
     else if(P$optfct == "nlminb")
@@ -604,6 +625,7 @@
   if(class(res)=="try-error")
 	stop("Cannot get a first step estimate to compute the weights for the Kernel estimate of the covariance matrix; try different starting values")
 
+  initTheta <- res$coef
   n <- nrow(res$gt)
   q <- ncol(res$gt)
 
@@ -622,7 +644,7 @@
     }	
   else
     {
-    gt0 <- P$g(res$coef,x)
+    gt0 <- P$g(res$coef,x) #Should we compute the weigths with the initial value provided?
     gt0 <- lm(gt0~1)
     P$fixedKernW <-  weightsAndrews(gt0, prewhite=P$prewhite,
  			   bw = P$bw, kernel = P$kernel, approx = P$approx, 
@@ -631,11 +653,11 @@
 
     if (P$optfct == "optim")
       {
-      res2 <- optim(res$coef, .objCue, x = x, P = P, ...)
+      res2 <- optim(P$t0, .objCue, x = x, P = P, ...)
       }
     if (P$optfct == "nlminb")
       {
-      res2 <- nlminb(res$coef, .objCue, x = x, P = P, ...)
+      res2 <- nlminb(P$t0, .objCue, x = x, P = P, ...)
       res2$value <- res2$objective
       }
     if (P$optfct == "optimize")
@@ -644,7 +666,7 @@
       res2$par <- res2$minimum
       res2$value <- res2$objective
       }
-    z = list(coefficients=res2$par,objective=res2$value, k=k, k2=k2, n=n, q=q, df=df)	
+    z = list(coefficients=res2$par,objective=res2$value, k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta)	
     if (P$optfct == "optim")
 	z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message)
     else if(P$optfct == "nlminb")
@@ -711,7 +733,7 @@
       rhof <- -sum(rho(gt, lamb, type = P$typel, k = P$k1/P$k2)$rhomat)
       return(rhof)
       }
-    rlamb <- optim(rep(0, ncol(gt)), rhofct, control = list(maxit = 1000))
+    rlamb <- optim(rep(0, ncol(gt)), rhofct, control = list(maxit = 1000,parscale=rep(.01,ncol(gt))), method="B")
     z <- list(coefficients = res$par, conv_par = res$convergence, lambda = rlamb$par)
     z$conv_lambda = paste("Lambda by optim. Conv. code = ", rlamb$convergence, sep = "")
     rho1 <- as.numeric(rho(gt, z$lambda, derive = 1, type = P$typel, k = P$k1/P$k2)$rhomat)

Modified: pkg/gmm/R/specTest.R
===================================================================
--- pkg/gmm/R/specTest.R	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/specTest.R	2011-11-29 22:02:25 UTC (rev 42)
@@ -44,7 +44,7 @@
 	LM_test <- n*crossprod(x$lambda, crossprod(khat, x$lambda))/(x$bwVal^2)
 	J_test <- n*crossprod(gbar, solve(khat, gbar))/(x$k1^2)
 	test <- c(LR_test, LM_test, J_test)
-	df <- (ncol(x$gt) - length(x$par))
+	df <- (ncol(x$gt) - length(x$coef))
 	ntest <- noquote(paste("Over-identifying restrictions tests: degrees of freedom is ", df, sep = ""))
 	vptest <- pchisq(test,df,lower.tail = FALSE)
 	test <- cbind(test,vptest)

Modified: pkg/gmm/inst/doc/gmm_with_R.pdf
===================================================================
--- pkg/gmm/inst/doc/gmm_with_R.pdf	2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/inst/doc/gmm_with_R.pdf	2011-11-29 22:02:25 UTC (rev 42)
@@ -118,34 +118,34 @@
 << /S /GoTo /D [78 0 R  /Fit ] >>
 endobj
 93 0 obj <<
-/Length 3301      
+/Length 3298      
 /Filter /FlateDecode
 >>
 stream
-xڍ]sÛ6òÝ¿‚ÔLÅ øÕ·´“¸é%swïfnÒ>Ðmi*‰ª(Åñ=Üo¿ýA‰r<‡äb±X,öJ£Ç(noRyþtwóæ}‘F¦L¬É]t÷Õ6qY•Ö$ÆÕÑÝ2úÿ<3q·…ÿö§ã»ÇÙ<+óø¶ÅöÐÀcëÿ"`ɃŸÚ#|¬:øò° 2Œï["0„c`#©ÝröÇݯQV$.Ï¢9pR›’9yqÅwÄâú€ðcü#àïÏYfã–¦[i<bî	ˆg\ä’‡rɲ,1™±#¿	ÈØËs‹8s›Ú¤.‹hîlR¸‚Qÿt[äêÐò&^!w§þëg¶ˆOm6˳2n‘êÍ»»›¿n¬Ä£ÊDE–&pÑb{óå4Zü×(M²ºŠžk9‡ø›èóÍ?ýᎹ´QÔ…-O[ÖI^—Q‘V‰KåßÞ;pÈj³8/çÄÞ¼¯Bs“	hËÜ !à”Ý­DÞp¤äºGrûÙ6
-R ‹{Déf¶ŒŸz†¬ø‹?Ž4J“[âHn|kydËH0kÙŠ6È‚÷3[ÅÏ©UË<xÍFHªþàø–5v ËàîA†;QW:Òj¨¥sã’Ú9x’°šhea<øþ8Þ²㸌.š
-m¼ÃæZýZ1§žß¬HY¯ÖÈšiacÝUË:[Ö¡*€uåEu¦Öá›4Im©t˜ÁŸ³¼ˆ›G!Z¥Á”¬L2°™ò¸Ý^RÅeAIfóÜÖñ[Þ**âaM³» Ø’jáÍ?»­‡Ã°ušä¶’Óì~OMÖ²ý±¨«Š'ÃóÈ’áw>* L˜¤v¸$Œ7½¨ñBFÑiU5iŽßÓhÇò&È…JõBIfÇCC'Ô‘E öÝÎ+ËQT›vðp¹ƒ=žM5:ñH7Å23çâ=jYX»Ãid]KS®¥;=®J¸_I* £´¾á÷õcÓKP¸¤E·£@Bz= 4;YŽÉ!:	Ú-¯Š?!Yoð‘?ƒ²Õ3#mÕ.XxHŸ5`B,æÝ‚pBf7ÿ’<:<FúúÛíMôp2
-«­w^³;w¥w®®S°OóôEš&¶©IϦâ4Ã,íq¥{Ýx¯:‹BÌ2/ðÌžÞ¥c<x7~kôüŒx*[¯/^ñègœý ú÷„æߐ‰$bÙÝDÖ†Ã „Í#wž”µ„—¿‰=?ÃßSw˜åAüB0ÙaÔ7ê~ìÿ=¶¨ªpê5q¿¦¼ê2aˆpÙ_ª´KÕøPmú²c6›Ëè€#$EXì2:˜˜ˆó¶É0ÖÓ,²W/c
-c˜³?iÌM–䚍Mî8Y°ÚÊú¬°÷Sw³1yŒ¯ìÖKe‹9½öãHÛd@½ýæ§v»ÑNת(ÆùïÍÀØækIÆ‹¤Öòí½ ¯ž¶»"ʹ·õ—%¨‘1ÐDȺla."c€Q&iV1l*wsjµ{mîær—d® ¤Ò:°&ÈEÍ’ªÎx1C¶7ÏÓ4þàSh”
-çµËÓâ(^ì’ë¹)
-¢8·.±E´µ,É—Á]5'ƐMÑõÝÂç'ùŸ‘RÓóûýc‘Ílv<¶fS"B
-86¸kH·Þ¥‘#‡±½H8Z°BA*qЬè\CÔ‹šL¶ñÌ_
-MaV%ð#t¿l—•µžxàl|ð‡wyÈ/ý–á>‡[´ß	@°Ð/D±owñÆÔ¯‰7¦®ì•xÖáI‚#.‚íúpCï':ُz›}(n‰½¤Ÿ°6ª˜]rnGŠBŸ•5§%;<R€‰ÒðGßrJCXtV lø1Lš!Õb,:X˜¼eýz¨OÕ<<¥p•­f‘«AdÂÍ8ŸRÁ(R˜Ûªˆû¿P⸎¤my}ü,búÁ9šrw8
-µ¶œ#zMœþ•2Eu¦ÍýFŽ) Žæ߬»£'íø$…™-ƒ§Ýð…Ç1Güq8cy+4ü d£?iDÀMÖ«u¿Ùþª{ÙNYp0TPÏÍãcÇ£^‡ðƒŒ¶×„
-q”Bbfjw›8ƒ²éκCþÞÊê¨Tø~[–WïÙ,8az¢µ²Š8BÛM/8æv¢ôA1!,Z(S€OR¶G_)ôž7TLÝmž{ÛGàB¶r jm£
-+‹“'Å)/-G)89˜f3äR¶„Ô‘š›ßÇ¡^ L7?}äï)yå"¯Ëå©´%zkv¾JsB`aá–Õ¯­Ð³r²ÄC…‚â}€YùŠ'Ãœ(’‹ìÊ ºN“ã×7!*ÆLc½&c‹v |äWŠRšyÁ7‘Tg³>wÙû°œ‘o³ÜîçwÅ©Oh¶µ=ËÄs©¸Š›;™Ú,†HÄ©ÂŽ:”T¯÷˜pBjô@¾
-ÐÛ 8ÅíÈøZVõ©§oIÙ:Ó.:š	m©áG¯±‘訹¾ŒvAUÚbîŠô½kr–3!I<Æ(^* ”B„’ÕùYýܲÑ8“Šý‘©,‰@Ãø=GpÐÖ(TâÀÑËVÚ	>hÞ‡lv¢8O•Þ½5ÚF”hd‘º¡=»Ìñì¶A:_¥`œSÈÒ‚€[…6 2²É=iÈY2eXÒ*÷'5»A± „üDJÔPs©åéj!°ÀRMû%™Rw5)í[åMÏΩO¹XŒR ÁÏBé„„h7>¢¯¥p–ö?GÎ)•r¯ù¿|Âek­{oåC'¨g\T¨./üXÊvãxçõ—{)ŒãûKk¥Ì¹´|Q
-OÇYʐ	ÁeyúlàZ0ËœF96®>KҬě02¡þUŽê]‡%L¯ç/ôB‹);o²ÞY64QeZ(ŠÚW‘ŸðfàHAó~¢vËlb*_“N–­ER–ã–”š;SÔ Â5þJœå9ªs¹â|¦šÈ%1[%ÆúŽîÐseA¥I0@Á|“$)@ÌàÔ‰o¶8ö<qY~= ƒs»ÕÀ	ïûQ­BÎpyÒ0úM€~§¨A^w>(bÙ·œ}H­ý-9g
-„äŸÈ]g±w$‚¸
-¹R?×Ú-êEdUØk˜jF“ –b<©â¯–¨ºò­ûP}ʤ®‹‰Þ}ØAp¦L²ÒŒÂÚåÍ@â
-³LÀÇÊ5ÓÆ×D'îÛB(Ώ”ºxE¾ €>'͵tšÖ¾ÿ”æÃ6;uhÇÁP9Ň°HeâW
-‡€ÌD=ŸJX<i~¢Á V¬Äë!êpÁµsÖƒïIGϝŠ+u„“.‹3£3u&—’Yäè°ÓHrÆ7âñµ§LIf‘hzÙ|„¨ûà 0™B²k%C¹{j€$Ë—hfUEé	Ó’¤ÀÉP`¢’9½Ê¸Ì™&®»•Òé°Mü¸—@
-r›IÒ¤6¤¦¸%‡Îµßù’\yÑûBUâØhêAu°PŸUé¤ç	-ÏÀЬ™Èq”Ðæ9ñ8¤is”Ñf/óBõÑÔBÀ:Š†ÃÃõΑ-LÐ9â
-A­Æºn' mXá2ÿ™Uõº‹^¾ª×TÓ½&$àÝvàx[YyÔS²ÎÛ1ˆÁ¬
-\£º!‡	ùƒf-õ%׏ÄÕKAŸñøŒ@œµ(}2NûîÄ,Ö'g¯Æ}3Gõ¤_kîÞÓ½Í÷»÷Þ«þü¯wºàõ#yóÞ¦¸ü2•ü{eI×ÚjOëü¶&Á{ž ;aÞ£–œÔ„ôŠê°õw«r%Ðp½’Í4ØCš“ÖcÉ?wY¥ª-ØâóZç×™ôeÎó íËnè•ù‹R¹ÂiUò3rñß)šJ ¹´ŒÂ½îÖ/5“–!͏JšA )s‡¤ã‹f‡l1,ñ回c5¡ïWr*¡ܵ´XÓôj§ø¤õè’ñ^%ÖºŽ?oG?ÉÉ´~eg».¯È”:
-]Ÿö©ö¯‡;õtt7H)²>-Hƒë=-Ì|] £¯ë
-ùí@7ꆆ̟_.$¶(_º\2eßåø‚Éš(“/é—5$ø6Z6)LØü›÷yUI]ŽMFÁÔ+ýÁ¦mË©ºþ«ï¾s[þ/(Äß\\W8ó:CÙø—Ÿðîè<tZ|Xþ± k1åݍï!.µ,ÄÊ@Çß„½9ý	ƒz ¸p/õၺ27Xì+ÚM7ã%¶’”¤æ>
-K‡exiÊdüH2ùs¬@3þ¶vi†
+xڍksÛ6ò»?R3C€àý–v7½dz×ønæ&íZ¢-M%Q¥8¾_ûƒåx2I`±Xì{Ê“Ç$Onoryþtwóæ}•'ªÎ´*Mr÷X™¢Ij­2elr·L¾¤?ÏTÚoá¿ý鸆Çîq6/ê2½íð£;´ðØÀßú8°äÉOÝ>V=|ù±Fdß·„` LJMŠ¨vËÙŸw¿&E•™²Hæ@‰U5SòâŽïˆÄõÇAãq þþš:íh‘•§#âžp‚hÆí/eÌ—¢(2Uh`ò»À ²Ô3×¹Îl]%s£³ÊTúOÄÛ!U‡Žùó
+©;
+ðß0ÓUúG®‹YYÔi‡XoÞÝÝü}£`'@ž4*©Š<y$‹íÍ—?ód	ã¿&yVØ&y"¨mbÂo’Ï7ÿòÂ	¹Ö‰Íl¥+¤S×6+mTy“™\„üöžÈQ ©íâH´œ#{ó¾‰ÍUYe -sˆ€RBt·~ƒH
+ðuèö³9¸ C&¤Ÿé:}xdÅ_üq¤YZÜE‚pÛâ[Ç3[‚UËN´A6¼Ÿé&}¨V¿?²ò  ڍ túƒó[ÖØ€—‡û™îE]aêH»¡–Εɬ1ð$=`´;ÑÊJy
+ðý%
+p¾c
+Æy™]´žÚx%†ÃuîkÅ”zz‹*g½Z#h¦•NÝ©:ÖÙÚƪ ÖUVÍ™ZÇ2Vy–ëڐ0È‚¿fe•¶‚´É£%E`5²äq»½ÄŠÛ!’Í楶é[>**âaM³»€±%)Ô›
+~ö;ž[ah›g¥nDb€ý¹*:¶?fuÓðbx™3ü΢ÌIj‡[’`¾D2‹N«±¤!8O³=ó›F.TjLNA`uM=œPG‘Ú÷;¯,GQm:ÁÃå	ö(›f$àñH7Å2cÒ=jYX·Ãed]KžsT!Hz\ñ(Á~%<8ÆÀ0rë~oQ?6]Ø‚Â… -úÒë ÒîdK“ApbtZ^“~8"@“Þâ£$z68ʐUÏ´uvÁÌCü¬l	‡
+ºá˜ÌnþeerxLÜëï·7É€)(<®ZÛ îܲ;7µwî\§@ÿ‘—ù‹8Uªs•Ÿ-ÅeŠIÚãN÷îàƒÓYdbQx†:xxÿ•Äx önüÑèùáZ§lƒ{ñŠH?ãê§Ohþ-™H&–­ÐMØÜ*ƒ6kŒÜeV[	/ÿ{~†¿§þ0+5ƒø…h±Á¨¯œcø÷o^ö›0ß‘Þy¿Hob¿Y§.P¬ƒEù•&÷"4´—3Œ¢áœå|¯37Œ#{maÏ]û÷I„¿9;5aÉ\YéR²‹à6ª!©õ>D±2 %§þ$¶£Ê_Ù‘-% 2#aª‹5€ÃmÞ öî›_ÚïFÁpíΣŒÿÞÀ@_‹"X0¢ZË·wM0x-JÂÔ4+çÞà_栏‘:Bê¥+u#ˆ:Ë‹:²©Î@¾UYóÚÎgå&+LE™¥6`R]d-x3E8/ó<ýàóhä
+'·ËÓâ(®ì’깪*Â8×&ÓU”¹uÌÉMæIË/ò%œ!KPÅD¾DÃèÿnáó“ü‰cƒ…ˆ©øý>ZDC+ÛÏ‘nŠ
+¡[±6‚
+ãÖû5òæ0·î EV(È'.5:×çJ•S c<óWKK˜T‰þ8ºßG¶ËÊj§£žÎC ï.ð!½ù;÷‰Ü¢ûN‚~!ŒC·»:ʾ&è(Ûè+A¬cI"‘Ñq}Ì¡w,z9ó6û˜Ý€I'>aÔ0¹1îÜŽ…4¾¨-ç5;<R¥á¡c?LP$+lùñØ!¯\
+#Ê݆|‹¡H°°xËúõ,£>_;ðô”ÂEX.ãë Lsú)܈¢!†¹nªtø9ŽûHîF£Â¯Ÿ…M?àpÉBsÔN¡à9¢×Äå_)]tδ½ßˆ˜"ìè`þÃê€C`wô¤#ƒ¤0³åá×ݘxñÇ cœy+´ü Œc8¹ˆ€‡´KvØá*9N]qÚʨg-Ócϳ^‡ðƒŒvpY?â(ÄôTï6q¥Ô½¯vCßÉî¨TøŒ²~]×WïÙ*0=Q‰:ÙE	í&Ws{Qú¨Œ˜`mTŽ1À')Û£/O*æïº,½íãàÂåcT²mœÂÊæäIqÉKÛQN¦ÝH¢‹"¯!¤Ã&Àû84È ã-ÓOù{Š_¥ðër{ªo	ßš¯Ã9Á°¸z+ìkËô¢ž¬óP¡ ‚á‘òCWö`v‰”(’‰’rè:U‰_ß©3Í
+.[tóQò×]”yÁ7¡tÎf}O9ø°\o³Üî#çwÅ[)’Oh¶VŸe	4ÄséÚq²›;YÚ.B$âTaGÙ7e×”xCjô@¾
+À»¨BÅãÈüZvõ©§ïKi[¸V:š	í¨åÇàb#	èèr@|í¢Ò´ÃÜñ{×r‹™$cÏ`J%L)lyVDwl4Få°ãpd,KBÐ2üÀ´uÅ*qâèy+=>¸¼É8ìD'pSBx÷Ôº^¢DÛ(‹œÐ
+׸+¯îZÄóUªÆ9…,WpŸ¢r݈ŒlrO.ä,Ï2®k	÷'gvA± „üDJÔR‡©ãåÎB`ƒ¥(škBÔdJý1 º¤tèmNvÆù´˜ŠÅ(U ü¬œ#àÆGôµ4N#DØ×~àçÈ9åRîµ?ð—O¸´åк÷V•¯‹ÊÕÅã…ËÙn¼€w^¹¡Â0¾)HZ;ÌœKˇ²A¢tŒ¦l ‰Xæ§Ï®³Â¸¨#bãê³Æ ÍJ¼‰#ê_c¸€%Ìàä/ôBŸ1Ûo²ßY64Qej(Â*ë«ÈOx=p¤ y?Q»:S¯I'ËÖ*«kqKJÍí©	lPá*¯Îr0Õ˜ÒÁ|¦šÈ%2ÝdJû¶nh¼2#‚Gé…a1ß$IŠ :ÑͶ b/3S”×08·[8á}?ªUÈ.O®Œ~F?ˆStA^w>84D²ï;ûjýU9g
+„äŸÈ]©w$¸Š6¹R?[×2êEMÜk˜jF(•”ƒxrŠ¿Šh$Quÿäû÷±úÔ™µÕD?î UgE­Faíòz ó†Ygàcå®iãk¢7o!—Á#å&]‘/€ÁŸ“—®t6ßÊËpÌÞ9´c0TNqÄÄ!,R™øՍC„f¢žÏ%,ž\~â‚L¬$X‰×CÐp˵SÖ£ïIGϝŠ+u„‘.‹Q#™UJÉ,|4Ø…i%å»ñø:pŸ’Wk9ø*A÷‘ 0™B´k‡†r!öÔ~ ’,_B¢™5
+¥'ŒK’/’P`¢RwŸq™3MÜö*¥ópLü¸—@
+r¥Iܤ6¤Kqkkò%>påEï§ÇÖE0ÀUç³j%Ý‚ü<¡åš]&r%´eÉÌA8i®9ÊŽp³—y¡úÀhª!`EÅáázçHW*êq……C‹uýN†\Ã
+·ùfi¬÷Ð_ôšpòU½&[M÷šwÛ‘ãídçQOI3nÇ ßN°6pjBòK—µð¨/¹~V/5}Æã3q"Ô¢ôQH×ßøp'f·<9{U&ꛪ$ýZs÷ž.o¾ß½÷þ3ìúó¿ß¹
+¯‹äÍ{'àòë\òtì6)2[Z×jŽ¥u~e“áeO1	ïQKN΄Ü=Õaë/XåJ å<z%‡9¸`iNnÇœ ï²¥ª®ØâóZçWW…ôeÎó ×—©Lè•ù‹R¹Ê¸ªä;fdÒß(šJ ¹´ŒÊ¼îê/W“–!͏FšQ 1s‡¤ç‹f‡1.ñ回c5¡ïWr*¡+<µ´Xóüj§øäêÑ%ýŠ­Ö¦Ÿ·£ßåŒxj_ÙÙ¶õžRG¡ ë“c Ÿj.ÖóïÜ
+Â|ÇåŸ4½Fu̾®+äüݨ~¹6’éª~érIÕ|×ã&­’L¾¦ŸcXHðu	¸tV©2²ù7ïË<i2[U†MfÁÔ÷«!L7ºŽSu÷£¬¡ÿÎmdø¿ w~sq]aÔëVã_y†À»WÀóлâCó/X‹)ïn}qéÊB¬ܯ!@ümÜ›s¿c@·2<H}x î¬6ûŠݦŸñÛHJR
+k…¤Ã2¾4e4þ
+$›üMV¤ÿV1j?
 endstream
 endobj
 78 0 obj <<
@@ -267,47 +267,34 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 135 0 obj <<
-/Length 3991      
+/Length 3989      
 /Filter /FlateDecode
 >>
 stream
-xÚÍË’ã¶ñ¾_1GMÕˆ&	ðW딽vÊ›Ty'åƒíG¢±$ŽEiÇ»‡|{ú	€43±/)×X Ð ýî6½Yߤ7ïÞ|uÿæ‹oê›,Mš´ÉnîW7uvSUÒ˜âæ~yóÓ,¿ýåþï cB ¬l’ÒT°Á¼»Ífïßß΍Égí>–Ø6Ôÿ5ü}ÏŸO[hŸàoÃß?àÒoRAe‚Ç\÷˜›"©Ë’wú ³{˜]4³4Û#üï¾K+g3Üd@z¶ïpÃ
-ÏÉ+B«¨f›VÆÕþĝG„m· †:¥U;n?Ò"ý#twº;Ÿ)¯gŸxÍ~ÅÀŽ&Ðn²Só	wºD¤&ü^àg$f'uƒÔBÓ®@C ß<3Ia¦Ò€X·'%†6Ø»cÚ?ºÓþz[”³vÝ1ûδªÎØ	óÓó³2IKåýz¿ &¯’¼ÌÆŸv ã|ÄžŽvȐ¢sùÁAÞöG^·jFâY'YÓèÂ?D¶†fY:ˆ§;<q–et7ˆÁ^DÒ… r^"ïÓV¤8a$Û‘…iÁRsPº„1Ïm¢ô&UU1o‡O ±‡¿Ç3ZQšÛ:=•å¬;ŠŠl@‘Â_)[5NÍ°ÝáMmñÛÏ"À8ˆTÝ?ÊŠGÚe × Ø_‘ßĉ­(Ïi.òsZ¤0Búü=|d‚œA=ø‰?ž{w1ùì9eû°S!U¥³6S)·6wZÝñ'®¹èI]X¹-a|ç4R	r-"ýNÄâÀIqsDÃÃÍÞ½¹ùi^UéìCþcCÚ‹ÈÂ-cZ.˜‰ÃD¤çÖÏfyšÚÉÔ™“6"ž>‹"òíAÖïMÁ÷ãÂ
-‘*¢Hœg€œhq;Ñß¹©‘$_,Kî#£Û‘ÈqÇà9G 9ê·Ø¶#w´FÄõª	“ꍭÅÑi
-JPr;/šlö݁w|lC]ZœEÃÛ#ú‹Æ¨e'6ãú¸ûF…;TôÚ“œ‰'Äìíøp¦ž:	6â#L
-7~v=uæº~¥ª"¤¨ªª©1•W·íÞ	QÁ41ûX;
-Í–ÁpO÷Å6@ÐºñÉØRÜň%‹Û´œ
-{²W;VVè*˜$íÇCå‡OGCü £8…aôœÃÛËYýŽ+’ }0µ/CB,}ÎÞ^ûî4¢ùr s2/!òø涶lc2¸Ìž6î€Ð6·ˆw„LH\1¨þ”Ì­ž›‚…Ä9ÙHhàóÏJ‚U¦³eïx4ððÂ
-rnŽA¦b²ËÕ)8ïQ6ØA‰HÃñºÄs¢Xu8PîÓ–1Þ’vŽØ!„¢*âQö?§Y‰ÀÛNãO<²UƒAœÛT³‡a’ïîÀ“EÝáj:\åW³xáïä$[úòÂðZ.Ÿgâ&³ªix¿­‡š-ÿ|¼-
-vÚg绸½£Ä-‰XçoÅz9wàŽÄÙÒ=â¿5Î…kù`;±ˆ86xkì▏9>‘Hø$ƒ§X“šD
-–]Š,CÓŹ H1Ë‚pÈ.oÇ»“®í–ü¡q/42b»|ᡸó‰ëÚ°Q	yÂ¥r\‡OÏ;\„{‡ÌY¯YÄ| ¶îŽS—‹à¯r¹uÔå’M±6e/kõÇ¥XGüR³,´;q™Ÿñä`e²zlT]ÐG‰=/úÑ;ÞàI]<Ì	ý~­2$
-ŒKÌÈ¡9ÏÁŠ±òH~ÑqçßHw¼–ÍÙ“Rã~äµ]&ãlH•Ö^Ú!FKäC¤÷/í#^‚ò+kç©Ã•£K	Ø»²Á‰8O;Z KMôÉ	Ì”ìl©¡E;	ü5xHs‡Éö°l»xà¤N"Å4fݻً¦&â×q‚*; ô+
-“<¸a3ΣûvÉIÍÜBÖó9ýö¬vq\1`$±‘ΐ‡4à:E•qE‰8bSY†uˆV,µ'MÇ”=8àN mvm•™uh¨¨uêyèÈ„u¹ÚRX½Àe=»×´7ëÕþrÆ#d1ÈÂ-¹G }ènçÁ#…v½*„u{]èäcµhBtÉ-È®ˆßn«¢“jª† !ÄvÔ'ú Î>ìp;H
-C6P?‰Àƒ†4ä¿!4þª#äüÁWڐæÀÍÀÈÈ>CÄÝ],Ã7M‘¤éó)~–dU¡=Ć̘lÚr*!\’Õvä"ƒ,{EB}âTÿÑÙ™•FŒûQ)‚Ú#ÍÇŽ_³À)ÙÿýFcœi!%7pÐêÅBJ]f
-­ÚÔõÌ…ÑlîU]×±°˜¦V½±†h1Fæ’®k)j-ëmü´S,cÇ;±|´æ4X·bÓq€‰ˆQYd+‹iy‚øW¤pôz¬(šßÿ֏¶±TÉs†/âïчïÀr™WNó)©‘hƒÈ@x>
-q
-ïÔG­}ñ°ŸÖ!	i© ±N!Ñ&üºRSQÅ=`à”]W¾F¿xZrY“O-Öû¯$¦8ôÊ@²s~{´,ˆa¬:™ôàjœÏ”D ûÒC+[Mk" í¯«ÔTW"4dˆÚßjWdë‹}FÆ)gÄ+$pç=ŽüÏ0‰÷ì5
-ÎÍH£ pám>ê qŒäe!ð<YÕíwÙ]lÏ•6—Ûå&–Û	Ê.xý×ÐIÎM`÷Ëd…do ¼ ò¬¹áìÄé¥=.¯él'³tt'Ñ4`Ms
-’‰9ŠÅlk€3Ó¨ZçÉ+Þý Øq®m1ŽH¬R)™ò›„Û£W'$—k›`+áùJLuµÈÒ¹0v¹«Ë¹{oh;‰ü­²¤x‘¢.Æ’éCæ˜t-µæöÆrU/(tÄx‘åiRÎmi^¹ŒéC„!¦N2_ºï¯¬
-ghÜÒL7^R£F$÷?_Áÿ¼´GÒ9úB·C¸^»=¸[!h«és{¡	EÚ¨ó§Ec)3ߘ͏Ù㤩‘R€dí	W‘jJ—Cs¤4\j€Ê”ZÎx©#Ý#aXVš¤)ŠÂ0pZ
-Áفê}	$:.B 8
-ÝÚí5ÕßrÝXð‹ë¶WIæÐÙ]aiV K½ ný»S•¥ $âxfEhž3 -7;ÌEžÙ1—(M·–µÐÈV#;
-ãC»—Ö•Ä’ÊG­_xó­”ò¥!ÜíŠjäi
-mQŠÊEm5Òß<\®	LÎM¸d\^,Y_§=ãÎ~ÞgeU+k}bm`àlPÀvÖIŒ/ëO•'©­Æœ¹~S7¼©ƒ„T³ÇÖ¥
-ô­UkhRv°n¤özk•I$¿«~s¥¸©fº‰ó 	9þÔ®0Ӎµ\V
-ëÜYpuÀEæé/ã#GXø
-N¥ÊùtEÀ_zêK‰Û²d®Ñ®-«Pá» cðQãÂ#á}õº×Ò¿R°í½Ö…€¸Oh£ú|XÄ­­aö)½\oÐQUÚ @Aê]ÏןéÞà¬egϼv7¹þÇ{‚Ëk‰+7è÷aW2¿:¸e¿LüÞo+¿N´}È@‚‰0þ]ª¤8«2Ð
-†¡ðÙ‰‰M8†áŸ+hˆ^ÓøW|XÈçÁÍŽÈ‘)¬n#à{ð5©FJNã[3èî(ˆ³”ÏîF%õ/'pÕ‹£â:9»Š	-z™cù‡/ùÆO3žïb$ »Ôsì-p½åâ<]R¼põa^¯b,£õ©v$€ü¢bÌWy½ÀWq¹ÏÚã¯>Ä~ñM	"jc!ÁhºH¬|
-TëS ‰kÒÙ;’ƒîت#ÿìŠK…>»AïŸjaSY,7Hqõpk´88}ú£›ç&±MgµÂ’—¦zŸ±¡±ˆ ‚k¢#ñBŠŒO2¼âßP®ËtTޅϽR=¨s %‚¬é»ƒè²ø©b‚g=ºSÏ͍–Ò£H„QVDvÈL-]¹îtë^Ìs¼’•°Ý?^$1i:ºôÎõ
-+nÄ
-›øPëŠ
-;—>_½‚=)GKŒ˜QÓ¥*Æã‹^«0åIˆŽm_ÕNÝN’2‹–%ZY+´1ã)ë,±æe[•7y@לm#¥{ZÉêx@î€ñÃÄìï£=p!íÙ2.÷m{\V5pðU¬©óøû“àDÿÀñl”Ã¥UR[YíþÓî‚Ç7Ñç~9dïnÒ«NÒ”×O¢¹¶5$v\°’C{rjšQÔ£RB†d·¢Èþù‹B­èñXŒa3+Hhüx[ͱ§†0üºó^y9¤½€œ½%Ã@òø4\¢Q¼ì:.…Ί‘ËŠ Â³ÕRT&^!‚ý¬x¡~ îËQëW™•bÁ5Ì'Vò[Ÿž\1¢†1Š)WŒѦI”ÄÅO-¬éÓ—ž#	Lkù‡—F)ýq|ºçX-Wâ¥þHÚšçãì®Il(^.ï}óô<•T‘d9Ť4âS*F8PaèðP²–±“ªA	=ãºd˜~;0 Usƒå—Ë]º–&ÉjÐØ Ê])")„N{Ÿiv;yàç/÷‡àÝQÇíiG¾{#¤W9„L“Ôó·qª¤¬KOç4?]
-’òŒc¶KVc¯Fwg}E{¤¢â¾ßáu]}¡ó—Ø9±TçUœòëÈj8¤+¨þ[É$iPL¸\¡HŠ¦˜úé"6Émþ‡ev²TeL(³_Þ‚ÊV`V.å$7­ÍhÍm¬Š™t‰MÂ/(‡õì¯üEßLWŽ8_Æä£Ê’"“¬{¬9·°FZŸêàn¹;ú\tÒLGÌرË$7Ÿºº~ê
-<gs3’ËDϝ¢’\‹$× ‘T¢·@s
-/ÆEv’嚃(2ˆí—뜙ìägw
-ðKSšÊï^=½µò^ôâ=jpóƒþv3÷תFŠYs!~‘ÔE9
-"|…£w#éã°Õbu¨•xEËðù—‹¥'@_9Yø2çÈ“ÔË{š»¨ü•Úå+ô*éÕÄ:WÀ@}ºYŸíÿ®Ñ=GÒzËV/Q¤?þXï5ÒU“ÔÙ¤¾þe¾æ dxʸá)“ÕúÏž
-x[Õ>w©ý»NúÀõj½9Ž\F$ÿHu¢e­¦®ÁuÐû!yî‰.(دw™j{üÄ+·¤ûg÷ï$ÂÔ'ö‚›ÖVÖ0 Ó߯ïßü°uõ
+xÚÍM“Û¶õî_±GíŒÅH‚Íôàt'¦‰ÝÉ!Ɂ–¸Z5’¸%oì_ß÷	€´»M.ÌF ð <¼ï÷ ç7››üæí«¯Þ¿úâwSäY›·ÅÍû»WÜ4U“µ¦ºy¿¾ùiQÞþòþï cb ¢n³Ú4°Á¼½-ß»4¦\tøXcÛPÿ×ð÷þ|ÜBû÷üý.ý*Tfx,u¥©2W×¼Ó;˜=Àìª]ÜA³;Âÿ^Ãwmeáb›Œâû7¼ç9eChUÍ⾓qDu8qça»Õ-€á„^`iÕžÛ´Èð ]çîÎg*Ýâ¯9Ü1°§	´»ƒ¬ÆÀÔ|ĝ.qƒß+ÜâŒÄì…¢~š@hÚhô[&«lËTëî¤ÄÐÆ
+{wLûÚ_o«zÑmzfß™VÕ;a~>a~Qgy­¼ßì÷ÔMV֥„³ÂtœØÓÓRt)Ÿ"8ÈÛáÈë6íD<]V´­.üCbkhÖµ‡x¼÷‡'βŒîF‘#Ø‹HºTÎkä½`Ú‰G"Œd;²0­XJ`ŠAŸ#–¥-A”Þ¬iÆáÍø	 öð÷pbF+JKëòÅÃQiP/ú£¨ÈVð@ )üU‘²MëÕû7=~ÐÔ±ý,ŒƒHÕýƒ¬x¤mQp
+‚ýùMœØŠññ¼Æà"?çU#¤Ïÿ€B “3Èa@?òÇ£gï.%Ÿý(§ì>ìTHUé¬-TÊ­-½V÷ü‰k®RVîcDKßyT‚œD‹H¿3±8ð_VÝÑðpó‡·¯n~Z6M¾øgï‘ÿÄؐöbã²pËÅ–fâ0é©õ‹E™çv6u!䤍ˆ§O¢ˆ‡|sЃ
+;BSðýø‡°B¤ª$RçÄ ':ÜNôwiòƒä‹…aÍ}dt{9îç¤DýÛväŽn¤Ãˆ¸žb5ÁaR½©µ8zMA	Ên—U[,¾;ðŽ]¬K«³hxwDѵìÄf\w¿W!ƽî$gâ	){;=œq³ÃAÇD‚M øãbáÆÏ~¦§Þ\»ª*BŠªªšÓuÛî½àL›²Î»Phv†+º¯¶j„æØOOÆ–âuŠX²¸ÍëŸ'{µce…®ŠIÒx<V~øô4Ä2ŠsFÏ;¼½œ5ìxG´¦öÓeHˆ¥ÏÛ[Àkߟ&4_dN–5DßÜ:Ë6Æ#ƒËìiãmK‹x'ˆAÁ„Ä£êOÍܸ)XHœSL„>?àYI°ê|±<F>PXCÞÍq 3ÊôILv¹:Eç=ÊÆvP"Ò0F¼®ñœ(V½Ô…û‡udŒ·¤¤£ öNF¡¤JÅx8Øö缨xÛkxô‰G¶j0ˆ³b›ûp&ùîü1[ÔÎÑá8Çâ…¿³“léSÈÃ!¸|ž‰›Ìª¶åý¶:jvüóñ¶ªØiŸ½;ìÒöŽB>·,a¿ëå݁?cdë`ôˆÿÖxn¬åƒíÄ"âج±[V<väøD"á“ïÅš8)Xv-²Mç Å,+Âe$»¼îNº¶[ó‡Æ½ÐɈívò…„â.$­kã½JÈ#.Uà:||zÚá"Ü[dÎfÃ"þ!j›þ8w¹þ"—ë’.—lŠµ9{1Xk8®Å:â—š…²â`¡Û‰ËüŒ'+3’Õc£ê;€>Jèy֏¾æ
+ÕÅÃœØï;판!i`\RFÍy	VŒ•Gò‹ž;ÿF¸ãµlÉ~˜”÷#¯í3oCšÜi„-‘s‘¾nñ”_ùX»Ì=®]rHÀÞ•}NÄy*àØÑÉ Yjú£ON`æÄ`ÏdË
+-ÚKà¯ÁC^8L¶‡eÛÇ'u9¦1›áÙØû½¨an~'¨²Àp§aòïÙŒóè¾[sR³´õ|EN¿;«Ý@ï0
+’ØÈ gÈÃŒp’ÊxG‰8bÓX†õˆ6,µ'MÇ”=8àO mvmYôh¨¨uxèÈ„õ¹ÚZX½ÂUµ[¼×´7ÔþFrÆ#d1È­¹G }ènç1 …v½©„u{]èbµdBtÉ-È®ˆßn«¢“jª†(!ÄvÒ'† Î!ìð;H
+C6P?‰À£†4ä¿!4þª'äÂÁ[_ڐæÈÍÈÈÈ>ãpÄVýëT†oÚ*Ëó§Sü"+šJ!ˆ
+™1Ù´ãTB¸¬pvâ"£,ûŽ„úÄ©þƒ·3w1î'¥jO4;&|-"§eÿïï5Æ™RJmž-¤¸ºP˜dÕƹ…£Ù&ŽÜ«Ú¹TXLSˆÞXC´#sI×µµ‘õîôS,cÇ[±|´æ<X·bói€‰ˆQYd+‹iy‚øWåpt7UÍïëGÛT*„ä9H#ñ€÷¿‹èCŒw`¹,¯ù”ÔÈŠG´Ad ¼œ‡8•wê£6¡x8Ì눐„tTHÐX§’h~}©©jÒH0ðÊ®+_£Ÿ=­¹¬)¦§kýWSza
+	 ÙÆy¿‰=Zď¸
+6Œ½LúàkœO”D î]°ûÒC'[Ík" í/«Ô4W"4dˆÚßhWdë—Š}&Æ©dÅ+$pç=LüÏ8‹÷ì5
+.ÍD£ pl>ê qŒäe%ð<YÕíwÙÿ.¹Øž+m>·+M*·”}ðúï±—œ›&Àî—É
+ÉÞHyAX'rÃÙ‰×+J{|^ÓØNùäN¢mÁšï$óKÙV—3Ó¨ZçÉw¼ûA°ã\'&Új‘"˜‹R)™ò›„ÛcP'$—k#›`áùJLuµÈÒû0v”¹w—s÷ÁÐöù[5>dIð"•«¦’Bæ”t­µæGöÆrU/*t¤xQ”yVWÞmi^¹Œé‡CŒËŠPº®¬
+ghýÒL7^R£F$÷¿^Àÿ¼t@Ò;úJ·C¼^·=ø[!i«ésw¡	UÞªó§ES)3ߘÎ]NÙ㥩•R€dí‘	W‘jkŸCs¤´\j€Ê”:Îx©#
+ÝaXQ›¬­ªgÂ0pZ
+Áفê}	$:.B :
+ÝÚí5ÕßrÝXð‹‹ë	¶7YáÑÙ]aiQKƒ ný§W•¥ ¤À¢xaEh"žïC¸3 -7;ÌEYØ)—(M·–µÒÈ6;
+ãc·—Ö•Ä’ÊG­_ó­”
+¥!ÜíŠj”¹ƒvˆ(Eå’¶š
+n.×&—&^²./–t×iϸ³ŸYÙJÕÊڐƒX8°½uãËúÓ”Yn›)g®ßԍÏDê !Íâ¡ó©}kÕš”lº©½ÞZÉÀïÝ0Æ¹RÜ6‹wýÌyЄœ/ÌôS-—Uã:w]p‘y~ÅËøÈV¡B‡S©r>_Ñð—žúRb—¶®Ùk´kë&V`ø®À|Ô¸ðH8AÅ£Q½näµô¯l‡Ã †u% þÂÚ¨¾‡Ö q5̾#¥—›{ôG”D•6ˆPz×Óõgº78kÙ90¯ÛÍ®ÿñžàòZâÊ
+z|Ø•ÌÏE·ì—‰ßÈûmå÷Á‹vH0æÀ¿k•oUFºÁ0>{1ñ¢	Ç0üsōÉkšðꃃù<¸Ù	y2…•£Ém|¡&ÕJÉizkÝ=±S–2àÙߨäáå®zqT\§¤bW5£Å s,ÿð%ßôiÆÈó}Œ`—zŽ½n¶\œ§KŠg®>ŒÁëUŒe´>ÕM_TLù*¯ø*®Y{úÕ‡ØÂ/¾©ADmf,"MWY‹µƒOœ>’¸&_¼%9菝:òϾ¸Té³ôþ¹ö6ÅrƒW·F‹ƒó§?ºyi2ÛÖ‘qV+!éxiJ¡÷	Z‹*º&:/¤Èø(ÃwüËuOÊ»ð¹WªGu´D5}wb]?UÌCô¬Gw¸y¯¥ô‡$q”•2Sk_®;ÝúWË/¤d%lILžO.½K½ÂJ±Êf!ÔºbÃÀÎåOW¯`OÊ‘ã#fÔt©Šñ¸ÇbÐj#Ly¢c;TµsÁ„“¤Ì¢e‰NÖŠmÌô„@JWdÖ¼ÄVU‘¾Wl)ÝÓJVÏrŒuÊþb´Xˆ0÷Ï\DÁrßv‡ÑgÀ“k'|AU£h]™~èÃ8^Lr¸¼ÍJãW/q5½ºŠ^à$ßü᫱Æ¥/:O[_?Ïèô]2å‚¡à›:«Šjû¨¬ƒvwß?M°è	ØŒd+eHhüxëŒfÚsþÁðËÎ{åýnôrvñ†ÌIåãx‰ÆŨ-®£áÉ^T_VTQg«©B|C…üEõL üS–£V±
++%ƒk˜Ïlå·!=ùlbB
+cþS®¤?¢e“X‰K Z^Ó0&Ò™Öñ»0U†ã4õ²:®ÇK’t¶,§9^›Ù2R¼R^ý–ù
+øÿ&'¨*+J4YmÄ'çUMêpYÞBG€’µŒÕjè™V ÏÛ5™[€EŸÑ]:˜6+\ª üÅ"’Bè´ùf¿ã‘üF"äá½>ê¹=OãȃoRäƒ$«„Ài–€þ–"N“Õ®tÎËôÖ(5/8r»d5öjŒwÖ·4©§*&î‡}Q×Õw:IKB®¤°¬iå”_'àà¾¬úSj%“åQIár…*«Újîæ‹Ø¬´å–ÙÙR1±Ì~y*Û€Y¹”KÜܙɚÛT-33èš„_PÝâ¯ü“D…| 'Η)ùhŠ¬*§ä+äŸl.-¬‘;á“‹n˜ûcÈHg)!ÙôÄL»¯^ñ©›ë§nÀs¶7 ¹R4üä))ÉN$فDRyˆ^-)Ș–ÚI–¿œ ƒØ½æ¢7“½¼æìñÓ~oJS¹î=¨g¢W£V^^¼Jîa0Üq–árÕHIk)į2WÕ“ "Ô¹0†7’DŽ[-YÇZ	éW²?òPx¿X›ij ô•“ÅïsqŽ<L½¼­y”¿ÚB»~^•)½šYçÒ¸è^pÖ&ä<&¼n at tOÑ‘´ê²Õ«éO?Ù«&tÓf®˜UÙÿ¯Ì׃O6<ž¢ZÿYÃÓ ¯`+2C^wÒæÉø«ìýÄq”ò<’ ùGjk5u¾ƒ^É£OtAÑ~ƒÏW»ã'^¹#Ý?û-'¨8qÜ´°¹ge0ýýúý«ÿå8v|
 endstream
 endobj
 134 0 obj <<
@@ -378,28 +365,28 @@
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[0 1 0]
-/Rect [257.46 227.203 294.34 240.001]
+/Rect [258.282 227.203 295.161 240.001]
 /A << /S /GoTo /D (cite.hansen82) >>
 >> endobj
 124 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[0 1 0]
-/Rect [299.773 227.203 323.583 240.001]
+/Rect [300.736 227.203 324.546 240.001]
 /A << /S /GoTo /D (cite.hansen82) >>
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/gmm -r 42


More information about the Gmm-commits mailing list