hypergeo/0000755000176200001440000000000014770266152012106 5ustar liggesusershypergeo/tests/0000755000176200001440000000000012701311441013230 5ustar liggesusershypergeo/tests/aaa.R0000644000176200001440000001261312701311441014100 0ustar liggesusersrequire(hypergeo) # First some test values for z, generated randomly. These values are # selected so as to use each of the subfunctions of hypergeom(): z <- c( 0.28 - 0.21i, -0.79 - 0.40i, 0.56 + 0.05i, 2.13 + 0.68i, -0.43 - 1.47i, 1.23 + 0.48i ) # First test: some randomly chosen values for A,B,C; my package: my.ans <- hypergeo(A=1.21,B=1.443,C=1.88,z=z) # Compare with Maple's: maple.ans <- c( 1.26242625279896547050 - 0.33515733250598455101i , 0.55218026726586346626 - 0.11826012518395685586i , 2.08656513655255552950 + 0.21074089910422408972i , -0.71334498434004598167 + 0.59647479085505445853i , 0.36911468617705947291 - 0.35906488952504313903i , -0.44806924103752606401 + 1.91140611055324833040i ) stopifnot(all(Mod(my.ans-maple.ans) < 1e-9)) # Now verify eqn 15.1.15, p556: "eqn15.1.15a" <- function(a,z){ hypergeo(A=a, B=1-a, C=3/2, z=sin(z)^2,tol=1e-9) } "eqn15.1.15b" <- function(a,z){sin((2*a-1)*z)/((2*a-1)*sin(z))} Mod(eqn15.1.15a(0.2,z)-eqn15.1.15b(0.2,z)) # Observe the mismatch for # element 4. BUT # hypergeo() agrees with # Maple, which gives # 1.038571815 - 0.1598166166i "eqn15.2.10" <- function(A,B,C,z){ # page 558 (C-A)*hypergeo(A-1,B,C,z) + (2*A-C-A*z+B*z)*hypergeo(A,B,C,z) + A*(z-1)*hypergeo(A+1,B,C,z) } stopifnot(all(Mod(eqn15.2.10(0.1,0.44,0.611,z))<1e-6)) ## Now some special elementary cases, on page 556. Here, "rhs" means ## "right hand side" and "lhs" means "left hand side". "f15.1.3" <- function(z){ lhs <- hypergeo(1,1,2,z) rhs <- -log(1-z)/z return(rhs-lhs) } "f15.1.4" <- function(z){ lhs <- hypergeo(1/2,1,3/2,z^2) rhs <- 0.5*log((1+z)/(1-z))/z return(rhs-lhs) } "f15.1.5" <- function(z){ lhs <- hypergeo(1/2,1,3/2,-z^2) rhs <- atan(z)/z return(rhs-lhs) } "f15.1.6a" <- function(z){ lhs <- hypergeo(1/2,1/2,3/2,z^2) rhs <- sqrt(1-z^2)*hypergeo(1,1,3/2,z^2) return(rhs-lhs) } "f15.1.6b" <- function(z){ lhs <- hypergeo(1/2,1/2,3/2,z^2) rhs <- asin(z)/z return(rhs-lhs) } "f15.1.7a" <- function(z){ lhs <- hypergeo(1/2,1/2,3/2,-z^2) rhs <- sqrt(1+z^2)*hypergeo(1,1,3/2,-z^2) return(rhs-lhs) } "f15.1.7b" <- function(z){ lhs <- hypergeo(1/2,1/2,3/2,-z^2) rhs <- log(z+sqrt(1+z^2))/z return(rhs-lhs) } f.all <- function(z){ cbind( f15.1.3 (z), f15.1.4 (z), f15.1.5 (z), f15.1.6a(z), f15.1.6b(z), f15.1.7a(z), f15.1.7b(z) ) } stopifnot(max(Mod(f.all(z))) < 1e-10) # Below, jjR means value obtained from R via the package, and jjM means the value given by maple. # Following test fails sometimes. It passes on my mac, fails on the linuxbox: jjR <- genhypergeo_contfrac_single(U=0.2 , L=c(9.9,2.7,8.7) , z=1+10i) jjM <- 1.0007289707983569879 + 0.86250714217251837317e-2i stopifnot(Mod(jjR-jjM)<1e-10) # Test hypergeo_cover1(): jjR <- hypergeo(pi,pi/2,3*pi/2-4, z=0.1+0.2i) # ie negative m; ie f15.3.12() jjM <- 0.53745229690249593045 + 1.8917456473240515664i stopifnot(Mod(jjR-jjM)<1e-10) jjR <- hypergeo(pi,pi/2,3*pi/2-4, z=10.1+0.2i) # another negative m jjM <- 0.31486642443024026933e-2 + 0.10505111398350790590e-2i stopifnot(Mod(jjR-jjM)<1e-10) jjR <- hypergeo(pi,pi/2,3*pi/2, z=0.1+0.2i) # m=0 (ie 15.3.10) jjM <- 1.0654685003741342889 +0.24452141417139649656i stopifnot(Mod(jjR-jjM)<1e-10) jjR <- hypergeo(pi,pi/2,3*pi/2+4, z=10.1+0.2i) # This is positive m (15.3.11) jjM <- -0.29639970263878733845 - 0.34765230143995441172i stopifnot(Mod(jjR-jjM)<1e-10) jjR <- hypergeo(pi,pi/2,3*pi/2+4, z=10.1+0.2i) # m>0 jjM <- -0.29639970263878733845 -0.34765230143995441172i stopifnot(Mod(jjR-jjM)<1e-10) jjM <- -0.90818366414720846181e-2 - 0.10746858256201734833i jjR <- hypergeo(pi,pi/2,3*pi/2, z=10.1+0.2i) # m=0 stopifnot(Mod(jjR-jjM)<1e-10) # Test hypergeo_cover2(): jjM <- -0.15888831928748121465e-5 + 0.40339599711492215912e-4i jjR <- hypergeo(pi,pi+2, 1.1 , 1+10i) stopifnot(Mod(jjR-jjM)<1e-10) # Test hypergeo_cover3() jjM <- -0.24397135980533720308e-1 + 0.28819643319432922231i jjR <- hypergeo(pi, 1.4, pi+4,1+6i) stopifnot(Mod(jjR-jjM)<1e-10) jjM <- -0.10592465301475818414e-1 - 0.15993048891187879153e-1i jjR <- hypergeo(pi , pi+1 , pi + 3 , 1+6i) stopifnot(Mod(jjR-jjM)<1e-10) # Test for hypergeo_taylor(): jjR <- hypergeo(pi,-4,2.2,1+5i) jjM <- 1670.8287595795885335 - 204.81995157365381258i stopifnot(Mod(jjR-jjM)<1e-10) # quick test for a bug reported by Igor Kojanov options(warn=2) ignore <- hypergeo(1,2,3,0) ignore <- hypergeo(1,1.64,2.64,-0.1111) # another test for a bug reported by John Ormerod, following my # ill-considered change from gamma(x)*gamma(y)/gamma(z) to # exp(lgamma(x)+lgamma(y)-lgamma(z)). Now using the much superior # .f3() and .f4() notation. ## MMA> N[Hypergeometric2F1[525/100,1,65/10,501/1000],30] ## Out[6]= 1.70239432012007391092082702795 jjR <- hypergeo(5.25,1,6.5,0.501) jj_Mathematica <- 1.70239432012007391092082702795 stopifnot(Mod(jjR-jj_Mathematica) < 1e-10) ## another test for a typo I corrected: A <- 1 B <- 3 m <- 2 jj_R1 <- hypergeo(A,B,A+B+m,0.9+0.01i) jj_R2 <- f15.3.11(A,B,m,0.9+0.01i) mma_string <- 'N[Hypergeometric2F1[1,3,1+3+2,9/10+I/100],30]' jj_mathematica <- 2.04925816767572859287575551415 + 0.03163091033158608113987207436i stopifnot(abs(jj_R1-jj_mathematica) < 1e-10) stopifnot(abs(jj_R2-jj_mathematica) < 1e-10) hypergeo/tests/aab.R0000644000176200001440000004512412701311441014104 0ustar liggesusersrequire(hypergeo) ## Some random tests following complex ABC functionality. ## basic idea: create X, a 100x4 complex matrix with columns ## notionally A,B,C,z. evaluate 2F1() on each row with the hypergeo ## package and SAGE and compare. The comparison itself is right at ## the bottom of this file. ## X is a 100-by-4 matrix of complex numbers, created by ## latin.hypercube(100,4,complex=TRUE) X <- structure(c(1.125-0.105i, -0.045+1.005i, -0.195+0.675i, 0.015-0.585i, -0.795+0.015i, 0.885-0.405i, -0.495-1.425i, -0.135-0.285i, -0.405+0.945i, -0.375-1.065i, -1.155+0.195i, 0.045+0.285i, -0.885-0.045i, -0.525+0.135i, -0.765+0.315i, 0.615+0.885i, 1.005-0.315i, 0.735-0.495i, -0.645+0.585i, 0.975+0.705i, 0.705-0.915i, 1.395-0.165i, -1.245-1.485i, -0.915-1.455i, -1.425+0.765i, -0.855+0.735i, -1.395+0.345i, 0.315-0.825i, 0.825+0.225i, 1.185+0.645i, 0.285-1.305i, 1.095-0.615i, -0.585+0.615i, 0.255+0.165i, -1.095+1.125i, -1.005+0.555i, 1.245+0.405i, -1.305-0.375i, -1.185-1.095i, 0.405-0.765i, -0.555-1.035i, 1.455-1.395i, 0.915-0.345i, 0.555+0.045i, 0.675-0.645i, -0.075+1.245i, -1.365+0.255i, -0.165-0.795i, 1.305+0.375i, 1.065+0.825i, 0.465-0.135i, -0.285-0.555i, 0.375+1.185i, -0.675-0.015i, 0.495-0.705i, 0.345+0.525i, 0.525-1.125i, 0.945+1.095i, 0.075+0.465i, -1.275+0.795i, 1.485+1.425i, 1.335-0.735i, -0.705+0.495i, -0.945-0.465i, -0.345-0.855i, -1.455+1.305i, -0.435+1.215i, -1.215-0.435i, -0.975+1.065i, 0.435-1.155i, 0.585+1.485i, -1.125-0.255i, -1.485-0.945i, -1.035-1.215i, 0.645+1.395i, 0.765-1.245i, 0.855-0.885i, 0.105-0.975i, -1.335+1.455i, 0.135+1.275i, -0.315-1.185i, -0.225-0.225i, -0.015-0.675i, -0.735+1.035i, 1.275+1.335i, 0.195-0.525i, -0.105+0.855i, 1.365-0.195i, 1.215-1.335i, 1.035+0.105i, 1.155-1.005i, 0.165+0.435i, 0.795+1.155i, -1.065-0.075i, -0.825-1.275i, -0.465+1.365i, 1.425+0.075i, 0.225-1.365i, -0.255+0.915i, -0.615+0.975i, -0.705-0.825i, 0.225+0.165i, 0.765+1.245i, -0.375-1.335i, 1.125-0.855i, -0.255+0.615i, 0.945+1.275i, -0.495+1.035i, 0.105-0.525i, -0.075+1.455i, -0.015-0.645i, 0.045-0.705i, -0.765+1.155i, 0.075-1.095i, -0.285-0.135i, 1.425+1.425i, 0.795+0.075i, 0.915+0.555i, 0.165+1.215i, -1.485+0.135i, 1.095+0.255i, -1.455-0.915i, -1.215-0.315i, -1.365+0.435i, -0.555+0.765i, -0.345+1.095i, -0.855-1.185i, 0.705-0.015i, 1.305-0.045i, -1.305-0.405i, 0.015+0.495i, -1.395+1.125i, -0.315-1.365i, -0.225+0.915i, -0.915-1.245i, 0.645-0.375i, 0.525-0.345i, -0.045+0.795i, -1.335+0.675i, -0.795-1.005i, -0.885-1.455i, 0.345+0.585i, 1.335+0.195i, -0.105-0.615i, 1.245+0.735i, 1.005-1.065i, 1.275-0.105i, 0.825+0.405i, -0.405+1.395i, -0.735+1.065i, 0.495+0.225i, -1.275+0.315i, -0.435+0.015i, -1.185-1.035i, -1.005-0.975i, 0.375-0.555i, 1.215-1.215i, 0.465+1.005i, -0.465-1.395i, 0.255+0.375i, -1.065-0.195i, -0.945-0.465i, 1.035-0.765i, 1.185-0.885i, 1.485+0.885i, 0.885+0.525i, 0.195+0.645i, 0.735-1.125i, 1.455+1.485i, -0.615-0.795i, -0.165-0.945i, 1.155+0.975i, 0.285-1.425i, 0.675-1.275i, -1.245+1.185i, -0.645-1.305i, 0.135+0.825i, 0.435+0.945i, -0.675-0.165i, -1.095-0.435i, -1.155+0.045i, 1.365-0.225i, -1.125-1.155i, 1.395-0.585i, -0.525+0.855i, -1.425+0.105i, 0.315-0.735i, 0.975+0.465i, 0.555+1.305i, 0.405-0.285i, -1.035+0.345i, -0.825+0.285i, 0.855-0.495i, -0.195+1.365i, 0.585-0.255i, -0.135-1.485i, -0.975+1.335i, -0.585+0.705i, 0.615-0.075i, 1.065-0.675i, -0.825-0.675i, -0.345+0.915i, 0.825+0.735i, -0.765-1.125i, -1.455+0.105i, 0.735-0.075i, 0.795+0.345i, 0.015-0.855i, 0.225-0.165i, -1.035+1.125i, 1.125-0.975i, 1.095-0.135i, 0.855-0.315i, 0.705-1.275i, -0.375+0.495i, -0.555+0.435i, -0.645+1.335i, 1.215-0.705i, -1.065-0.795i, 1.275-0.495i, 1.485+0.615i, 0.495+1.095i, 0.465-0.915i, 0.105-0.885i, -0.735-0.825i, 1.065+1.155i, 0.165+0.225i, -1.155-0.225i, 0.345+1.395i, -0.465-0.525i, -0.435-1.485i, 0.645-0.255i, 0.945+0.165i, -1.275-0.345i, -0.615-1.395i, -0.255+0.825i, -1.425-1.095i, -0.915+1.275i, -0.075-0.375i, -0.015+0.0750000000000001i, -0.225-0.435i, -0.105-1.425i, -0.285-0.195i, 1.425+0.465i, 1.305-1.005i, -1.365-0.465i, 1.185+1.305i, -0.585-0.945i, -1.185-1.335i, 1.005+1.245i, 0.675+0.555i, 0.315-0.285i, -0.195-1.155i, 0.255-0.765i, 0.885-0.045i, 0.405-1.365i, -0.705-1.215i, 1.155+0.195i, -0.525+1.455i, -0.885+0.015i, -1.305+0.285i, -1.095+0.525i, -1.335+0.135i, -1.485+1.035i, 0.615+1.185i, -0.855-0.405i, 0.915-0.105i, -0.975-1.455i, 0.555+0.975i, 0.765+1.065i, -0.135+0.945i, 1.455+0.705i, 0.585+1.005i, 0.435+0.855i, 1.395+1.215i, 1.365+0.765i, -0.675+0.885i, -0.045-0.735i, -0.315-0.615i, -1.245+1.425i, -0.405+1.485i, 0.975-1.305i, 0.075+0.585i, 1.245+0.315i, 0.135-1.035i, 0.045+1.365i, 0.375+0.675i, 0.525-1.185i, -0.165-0.555i, -0.495+0.045i, -0.795+0.795i, 1.035-1.065i, -0.945+0.375i, 1.335-0.585i, -1.005-0.015i, -1.395+0.405i, -1.215-1.245i, 0.285+0.255i, -1.125-0.645i, 0.195+0.645i, 0.135+0.285i, 1.305-1.305i, -0.465+0.165i, 1.215-1.035i, -0.195+0.915i, 0.495+0.525i, 0.525+0.195i, 0.765-1.335i, -1.035+0.435i, -0.495+1.245i, 0.225-0.345i, 0.375-0.225i, -0.825+0.075i, -0.795-1.245i, 1.155+0.105i, -0.945+1.455i, 1.185-0.885i, 0.885+1.335i, 0.435-1.125i, -0.045+1.395i, -1.425+0.615i, -0.105-0.615i, 0.795+0.885i, -1.095+0.345i, -0.435-0.015i, 0.285-0.915i, -0.075-0.525i, -0.975+0.765i, 0.975-0.705i, 1.095+0.375i, 1.485+1.005i, 1.065+0.225i, 1.275-0.435i, 1.425-0.645i, 1.125-0.045i, 0.405+1.035i, -0.885+0.645i, 0.675-0.975i, -0.285+0.555i, -0.855+1.305i, -1.125-0.465i, -0.525+0.495i, -1.155+1.095i, 1.455+0.135i, -0.315-0.285i, 0.045-1.215i, -1.365+0.405i, 1.245+0.855i, 0.855-0.075i, 0.645+0.975i, -0.375+0.675i, 1.395-0.405i, -0.135+1.485i, -0.225-0.795i, -1.395-0.855i, 0.075+0.825i, -1.485-0.135i, -0.915-0.375i, -1.065-1.455i, 0.465+1.125i, 0.915-1.425i, -1.185+0.465i, 0.315+1.185i, -0.555+0.315i, -1.335+1.365i, -1.245-0.315i, 0.195-0.165i, -0.405+1.275i, 0.735-1.005i, 0.015+1.065i, -1.305+0.945i, 0.945-0.735i, -0.645+0.045i, 0.255-0.675i, -0.705-0.555i, -1.455+0.735i, -1.005+0.015i, -0.735+1.155i, 0.105-1.395i, 0.615-0.945i, 1.335+0.255i, 0.705+0.585i, -0.165-0.495i, -1.275-1.095i, -0.015-0.255i, 0.165-1.065i, -0.765-1.275i, 0.585-1.185i, 1.005+0.795i, -0.615-0.825i, -0.585+0.705i, 0.345-1.365i, 1.035-0.765i, -0.255-0.585i, -1.215-1.155i, 0.825-0.105i, 0.555-1.485i, -0.675+1.215i, 1.365-0.195i, -0.345+1.425i), .Dim = c(100L, 4L)) ## Following string created by dicking about with X in emacs ## (replacing 'i' with 'I' and changing the brackets etc etc): sage_executable_string <- ' e = [ hypergeometric([ 1.125-0.105*I, -0.705-0.825*I],[ -0.825-0.675*I], 0.135+0.285*I), hypergeometric([ -0.045+1.005*I, 0.225+0.165*I],[ -0.345+0.915*I], 1.305-1.305*I), hypergeometric([ -0.195+0.675*I, 0.765+1.245*I],[ 0.825+0.735*I], -0.465+0.165*I), hypergeometric([ 0.015-0.585*I, -0.375-1.335*I],[ -0.765-1.125*I], 1.215-1.035*I), hypergeometric([ -0.795+0.015*I, 1.125-0.855*I],[ -1.455+0.105*I], -0.195+0.915*I), hypergeometric([ 0.885-0.405*I, -0.255+0.615*I],[ 0.735-0.075*I], 0.495+0.525*I), hypergeometric([ -0.495-1.425*I, 0.945+1.275*I],[ 0.795+0.345*I], 0.525+0.195*I), hypergeometric([ -0.135-0.285*I, -0.495+1.035*I],[ 0.015-0.855*I], 0.765-1.335*I), hypergeometric([ -0.405+0.945*I, 0.105-0.525*I],[ 0.225-0.165*I], -1.035+0.435*I), hypergeometric([ -0.375-1.065*I, -0.075+1.455*I],[ -1.035+1.125*I], -0.495+1.245*I), hypergeometric([ -1.155+0.195*I, -0.015-0.645*I],[ 1.125-0.975*I], 0.225-0.345*I), hypergeometric([ 0.045+0.285*I, 0.045-0.705*I],[ 1.095-0.135*I], 0.375-0.225*I), hypergeometric([ -0.885-0.045*I, -0.765+1.155*I],[ 0.855-0.315*I], -0.825+0.075*I), hypergeometric([ -0.525+0.135*I, 0.075-1.095*I],[ 0.705-1.275*I], -0.795-1.245*I), hypergeometric([ -0.765+0.315*I, -0.285-0.135*I],[ -0.375+0.495*I], 1.155+0.105*I), hypergeometric([ 0.615+0.885*I, 1.425+1.425*I],[ -0.555+0.435*I], -0.945+1.455*I), hypergeometric([ 1.005-0.315*I, 0.795+0.075*I],[ -0.645+1.335*I], 1.185-0.885*I), hypergeometric([ 0.735-0.495*I, 0.915+0.555*I],[ 1.215-0.705*I], 0.885+1.335*I), hypergeometric([ -0.645+0.585*I, 0.165+1.215*I],[ -1.065-0.795*I], 0.435-1.125*I), hypergeometric([ 0.975+0.705*I, -1.485+0.135*I],[ 1.275-0.495*I], -0.045+1.395*I), hypergeometric([ 0.705-0.915*I, 1.095+0.255*I],[ 1.485+0.615*I], -1.425+0.615*I), hypergeometric([ 1.395-0.165*I, -1.455-0.915*I],[ 0.495+1.095*I], -0.105-0.615*I), hypergeometric([ -1.245-1.485*I, -1.215-0.315*I],[ 0.465-0.915*I], 0.795+0.885*I), hypergeometric([ -0.915-1.455*I, -1.365+0.435*I],[ 0.105-0.885*I], -1.095+0.345*I), hypergeometric([ -1.425+0.765*I, -0.555+0.765*I],[ -0.735-0.825*I], -0.435-0.015*I), hypergeometric([ -0.855+0.735*I, -0.345+1.095*I],[ 1.065+1.155*I], 0.285-0.915*I), hypergeometric([ -1.395+0.345*I, -0.855-1.185*I],[ 0.165+0.225*I], -0.075-0.525*I), hypergeometric([ 0.315-0.825*I, 0.705-0.015*I],[ -1.155-0.225*I], -0.975+0.765*I), hypergeometric([ 0.825+0.225*I, 1.305-0.045*I],[ 0.345+1.395*I], 0.975-0.705*I), hypergeometric([ 1.185+0.645*I, -1.305-0.405*I],[ -0.465-0.525*I], 1.095+0.375*I), hypergeometric([ 0.285-1.305*I, 0.015+0.495*I],[ -0.435-1.485*I], 1.485+1.005*I), hypergeometric([ 1.095-0.615*I, -1.395+1.125*I],[ 0.645-0.255*I], 1.065+0.225*I), hypergeometric([ -0.585+0.615*I, -0.315-1.365*I],[ 0.945+0.165*I], 1.275-0.435*I), hypergeometric([ 0.255+0.165*I, -0.225+0.915*I],[ -1.275-0.345*I], 1.425-0.645*I), hypergeometric([ -1.095+1.125*I, -0.915-1.245*I],[ -0.615-1.395*I], 1.125-0.045*I), hypergeometric([ -1.005+0.555*I, 0.645-0.375*I],[ -0.255+0.825*I], 0.405+1.035*I), hypergeometric([ 1.245+0.405*I, 0.525-0.345*I],[ -1.425-1.095*I], -0.885+0.645*I), hypergeometric([ -1.305-0.375*I, -0.045+0.795*I],[ -0.915+1.275*I], 0.675-0.975*I), hypergeometric([ -1.185-1.095*I, -1.335+0.675*I],[ -0.075-0.375*I], -0.285+0.555*I), hypergeometric([ 0.405-0.765*I, -0.795-1.005*I],[ -0.015+0.075*I], -0.855+1.305*I), hypergeometric([ -0.555-1.035*I, -0.885-1.455*I],[ -0.225-0.435*I], -1.125-0.465*I), hypergeometric([ 1.455-1.395*I, 0.345+0.585*I],[ -0.105-1.425*I], -0.525+0.495*I), hypergeometric([ 0.915-0.345*I, 1.335+0.195*I],[ -0.285-0.195*I], -1.155+1.095*I), hypergeometric([ 0.555+0.045*I, -0.105-0.615*I],[ 1.425+0.465*I], 1.455+0.135*I), hypergeometric([ 0.675-0.645*I, 1.245+0.735*I],[ 1.305-1.005*I], -0.315-0.285*I), hypergeometric([ -0.075+1.245*I, 1.005-1.065*I],[ -1.365-0.465*I], 0.045-1.215*I), hypergeometric([ -1.365+0.255*I, 1.275-0.105*I],[ 1.185+1.305*I], -1.365+0.405*I), hypergeometric([ -0.165-0.795*I, 0.825+0.405*I],[ -0.585-0.945*I], 1.245+0.855*I), hypergeometric([ 1.305+0.375*I, -0.405+1.395*I],[ -1.185-1.335*I], 0.855-0.075*I), hypergeometric([ 1.065+0.825*I, -0.735+1.065*I],[ 1.005+1.245*I], 0.645+0.975*I), hypergeometric([ 0.465-0.135*I, 0.495+0.225*I],[ 0.675+0.555*I], -0.375+0.675*I), hypergeometric([ -0.285-0.555*I, -1.275+0.315*I],[ 0.315-0.285*I], 1.395-0.405*I), hypergeometric([ 0.375+1.185*I, -0.435+0.015*I],[ -0.195-1.155*I], -0.135+1.485*I), hypergeometric([ -0.675-0.015*I, -1.185-1.035*I],[ 0.255-0.765*I], -0.225-0.795*I), hypergeometric([ 0.495-0.705*I, -1.005-0.975*I],[ 0.885-0.045*I], -1.395-0.855*I), hypergeometric([ 0.345+0.525*I, 0.375-0.555*I],[ 0.405-1.365*I], 0.075+0.825*I), hypergeometric([ 0.525-1.125*I, 1.215-1.215*I],[ -0.705-1.215*I], -1.485-0.135*I), hypergeometric([ 0.945+1.095*I, 0.465+1.005*I],[ 1.155+0.195*I], -0.915-0.375*I), hypergeometric([ 0.075+0.465*I, -0.465-1.395*I],[ -0.525+1.455*I], -1.065-1.455*I), hypergeometric([ -1.275+0.795*I, 0.255+0.375*I],[ -0.885+0.015*I], 0.465+1.125*I), hypergeometric([ 1.485+1.425*I, -1.065-0.195*I],[ -1.305+0.285*I], 0.915-1.425*I), hypergeometric([ 1.335-0.735*I, -0.945-0.465*I],[ -1.095+0.525*I], -1.185+0.465*I), hypergeometric([ -0.705+0.495*I, 1.035-0.765*I],[ -1.335+0.135*I], 0.315+1.185*I), hypergeometric([ -0.945-0.465*I, 1.185-0.885*I],[ -1.485+1.035*I], -0.555+0.315*I), hypergeometric([ -0.345-0.855*I, 1.485+0.885*I],[ 0.615+1.185*I], -1.335+1.365*I), hypergeometric([ -1.455+1.305*I, 0.885+0.525*I],[ -0.855-0.405*I], -1.245-0.315*I), hypergeometric([ -0.435+1.215*I, 0.195+0.645*I],[ 0.915-0.105*I], 0.195-0.165*I), hypergeometric([ -1.215-0.435*I, 0.735-1.125*I],[ -0.975-1.455*I], -0.405+1.275*I), hypergeometric([ -0.975+1.065*I, 1.455+1.485*I],[ 0.555+0.975*I], 0.735-1.005*I), hypergeometric([ 0.435-1.155*I, -0.615-0.795*I],[ 0.765+1.065*I], 0.015+1.065*I), hypergeometric([ 0.585+1.485*I, -0.165-0.945*I],[ -0.135+0.945*I], -1.305+0.945*I), hypergeometric([ -1.125-0.255*I, 1.155+0.975*I],[ 1.455+0.705*I], 0.945-0.735*I), hypergeometric([ -1.485-0.945*I, 0.285-1.425*I],[ 0.585+1.005*I], -0.645+0.045*I), hypergeometric([ -1.035-1.215*I, 0.675-1.275*I],[ 0.435+0.855*I], 0.255-0.675*I), hypergeometric([ 0.645+1.395*I, -1.245+1.185*I],[ 1.395+1.215*I], -0.705-0.555*I), hypergeometric([ 0.765-1.245*I, -0.645-1.305*I],[ 1.365+0.765*I], -1.455+0.735*I), hypergeometric([ 0.855-0.885*I, 0.135+0.825*I],[ -0.675+0.885*I], -1.005+0.015*I), hypergeometric([ 0.105-0.975*I, 0.435+0.945*I],[ -0.045-0.735*I], -0.735+1.155*I), hypergeometric([ -1.335+1.455*I, -0.675-0.165*I],[ -0.315-0.615*I], 0.105-1.395*I), hypergeometric([ 0.135+1.275*I, -1.095-0.435*I],[ -1.245+1.425*I], 0.615-0.945*I), hypergeometric([ -0.315-1.185*I, -1.155+0.045*I],[ -0.405+1.485*I], 1.335+0.255*I), hypergeometric([ -0.225-0.225*I, 1.365-0.225*I],[ 0.975-1.305*I], 0.705+0.585*I), hypergeometric([ -0.015-0.675*I, -1.125-1.155*I],[ 0.075+0.585*I], -0.165-0.495*I), hypergeometric([ -0.735+1.035*I, 1.395-0.585*I],[ 1.245+0.315*I], -1.275-1.095*I), hypergeometric([ 1.275+1.335*I, -0.525+0.855*I],[ 0.135-1.035*I], -0.015-0.255*I), hypergeometric([ 0.195-0.525*I, -1.425+0.105*I],[ 0.045+1.365*I], 0.165-1.065*I), hypergeometric([ -0.105+0.855*I, 0.315-0.735*I],[ 0.375+0.675*I], -0.765-1.275*I), hypergeometric([ 1.365-0.195*I, 0.975+0.465*I],[ 0.525-1.185*I], 0.585-1.185*I), hypergeometric([ 1.215-1.335*I, 0.555+1.305*I],[ -0.165-0.555*I], 1.005+0.795*I), hypergeometric([ 1.035+0.105*I, 0.405-0.285*I],[ -0.495+0.045*I], -0.615-0.825*I), hypergeometric([ 1.155-1.005*I, -1.035+0.345*I],[ -0.795+0.795*I], -0.585+0.705*I), hypergeometric([ 0.165+0.435*I, -0.825+0.285*I],[ 1.035-1.065*I], 0.345-1.365*I), hypergeometric([ 0.795+1.155*I, 0.855-0.495*I],[ -0.945+0.375*I], 1.035-0.765*I), hypergeometric([ -1.065-0.075*I, -0.195+1.365*I],[ 1.335-0.585*I], -0.255-0.585*I), hypergeometric([ -0.825-1.275*I, 0.585-0.255*I],[ -1.005-0.015*I], -1.215-1.155*I), hypergeometric([ -0.465+1.365*I, -0.135-1.485*I],[ -1.395+0.405*I], 0.825-0.105*I), hypergeometric([ 1.425+0.075*I, -0.975+1.335*I],[ -1.215-1.245*I], 0.555-1.485*I), hypergeometric([ 0.225-1.365*I, -0.585+0.705*I],[ 0.285+0.255*I], -0.675+1.215*I), hypergeometric([ -0.255+0.915*I, 0.615-0.075*I],[ -1.125-0.645*I], 1.365-0.195*I), hypergeometric([ -0.615+0.975*I, 1.065-0.675*I],[ 0.195+0.645*I], -0.345+1.425*I) ] ' ## cut-and-paste sage_executable_string into a SAGE window gives ## jj_SAGE (edited with I -> i): jj_SAGE <- c(0.964064283226315+0.406653008068512i, 0.82707630709444-0.370937724712521i, 1.03665840072975-0.3745212608222i, 0.311643703830213-0.059274615332188i, 1.31889143955355+0.98358042791712i, 0.405991168469753+0.149172050853617i, 1.87643152586246-2.80581039288231i, 2.31668177317317+0.51808387102652i, -0.122242638166958-0.889392940337358i, 3.48742528089186+0.25722971358896i, 1.09149744311818+0.19127398917714i, 1.07163539691245-0.05300137850522i, 0.157278990462089+0.704913476143799i, 1.52372342748309+0.08141771931798i, 0.785885092880626-0.715360264471072i, 0.0216589720824476-0.0909138810740614i, 0.660292972492823+0.014427094192097i, 0.44365002761559+0.444956277452165i, 4.04716561018481+1.24056810636042i, 2.37644068967706-1.57058677283954i, 0.558708534227811+0.552972309397236i, 1.61529969818653+1.03188241118319i, -1.18553386183283+0.5873259941393i, 0.99707322673383-2.931234926817i, 0.680537291441649-0.579859026216333i, 0.360307597830038+0.720860521050483i, -0.98864157728245-3.81406419088578i, 0.252378131800944-0.59485905993533i, 0.59607084069452-0.219279157536749i, 8.07056701558553+1.69193967395666i, 0.591882294649085-0.015407505666751i, -0.27845178964472-0.294537366690991i, 3.05817793180882-0.72462649950454i, 16.2521832241482-20.2361474982059i, -0.181862582317452-0.433332189593273i, 0.727885438186042+0.791476216373831i, 0.817934672410365-0.262095371823089i, 0.61702897081267+0.655148620096229i, -0.52394309041368-2.63565076599397i, -31.9139401895563-33.1654441589648i, -2.13889175070336+4.69195794872461i, 0.786720584231085-0.323249180201461i, 0.855588219574382+0.101460109860437i, 0.55143104013356-1.17603120124834i, 0.819637168256866-0.227520793569102i, 7.1799623048675+10.3182615358612i, 0.95175079521714-1.51253931246129i, 0.899191744605859+0.23657949532331i, 5.271856129022+15.5815808330552i, 0.23090696141459-0.092282020024552i, 0.938040796485748+0.181990900185989i, 0.97991214712222+3.1081575617022i, 1.10429507061501+0.49370463840104i, 1.98809909889486+0.1461532999329i, 2.32132164645484+1.62938720492934i, 0.821895979655106+0.025840438361425i, 0.325656443632889+0.048639723489158i, 1.01029957861379-1.06586185742231i, 0.646924915944423+0.47861895492059i, 2.3202408170565-1.38911193361353i, 3.26464342908096-0.17114816861882i, -2.38013878749958-0.40190105182197i, 1.88172724303743+1.84516328918703i, 0.309289851889681+0.201725756721228i, 2.77286446038373+1.49246790054942i, -10.1594995553928+10.2739461027359i, 0.763034620971341+0.107973239735447i, 2.34319552106844+0.77122914409054i, 6.27802111299288+9.95066213638639i, -0.629648059040542-0.211092963199809i, 1.65840108157949+1.8550938256919i, -0.03642866072188+0.244808831053446i, 0.23839817784176-1.79703341141231i, 1.77328707798733+1.16541168167425i, 2.72908872242441+0.16799152205788i, 4.43587814415038-1.21335879049252i, 0.664271836551866+0.443536151535508i, 0.371286221002016-0.335697816131313i, 5.64737925282143+0.29569188173276i, 0.770694632252336+0.754808096824131i, 2.32750791275625-0.720203430679i, 1.23980860450053-0.13021457000086i, 1.70821635799758-0.65433153788405i, 1.0182178250073-2.32666645018147i, 0.46512140584495+0.150738899313962i, 1.33353226705637-0.65264869464624i, 0.237136870625582-0.102317163592682i, 2.10049091617389-3.27378187966606i, -1.24807067982028+3.72049884771884i, 0.990535784678856-0.129343699776059i, 0.417982637548751+0.74514898992668i, 0.58491978827329-0.165071348419987i, -31.0175228903646+5.7494155404184i, 0.383535688404315-0.133653115051991i, -39.815038090154+5.2725591296696i, 23.1846732282934-14.9574359998481i, -3.7118537540819-38.2041364504503i, -1.46775864170983+1.24783866808145i, -6.888415221581-146.849491142663i, -0.159710724756269+0.646598941671109i ) # now perform the actual comparison: f <- function(x){hypergeo(x[1],x[2],x[3],x[4])} jj_R <- apply(X,1,f) stopifnot(all(abs(jj_R - jj_SAGE) < 1e-10)) # actual accuracy is higher hypergeo/MD50000644000176200001440000000323414770266152012420 0ustar liggesusers4409a4bc03966ab496a05fecd18450af *DESCRIPTION 4e86dd02472144647148025c26b1bd99 *NAMESPACE 53e1de2c159af6fcc34a775b1365133f *R/complex_gamma.R dad252776cce1f403378b7aae3f383cd *R/hypergeo.R fe4b1db176b33230ceacfc9d6df94689 *R/hypergeo_ODE.R dc078dd2751113053414242298fbe49e *build/vignette.rds 97c20a03e78f040affea25bbfd58ce79 *inst/doc/hypergeometric.R c79d3a76a6f29802bfa09b53bba26607 *inst/doc/hypergeometric.Rnw 14042d1e27356f3ab8fdd13c6b9f067c *inst/doc/hypergeometric.pdf 57f545eab59c661daf6687e479c9c939 *man/buhring.Rd 98d2908090eea47638d885355e9c49e8 *man/complex_gamma.Rd 7fefa4bec729d99e942b537949299536 *man/f15.3.1.Rd 4cb813110626c4bf05432696309ec7f1 *man/f15.3.10.Rd be64f0a8ecf2fac543c0e635d570dd68 *man/f15.3.3.Rd b6a138119fb12f9bb3089e13b65d59da *man/f15.5.1.Rd 39a5aa70927b1f3090819492cdbdd0b4 *man/genhypergeo.Rd 5006bec7565ecc222e7550df8114f345 *man/gosper.Rd 1035ee52d1d750bcc6d5903ea89c0803 *man/hypergeo-package.Rd ad0ae45e15efbd598a845807ef6b95d1 *man/hypergeo.Rd cb09627e7f531facf8e9255d8fe35147 *man/hypergeo_A_nonpos_int.Rd cf609aa540310c04dadc8055e2123584 *man/hypergeo_contfrac.Rd a2308951ecd3a5a1bbfabcdb83752aea *man/hypergeo_cover1.Rd da444b2f63ba435fa0b4c0c0b3668ecf *man/hypergeo_powerseries.Rd 2c9f93653083a02559b03f49683ec8bd *man/i15.3.6.Rd 126b4f69c43ad923528b5681e15072c4 *man/is.nonpos.Rd 63151c053c5fa9a72366f2a0d3105542 *man/residue.Rd 165cb9f0190d061e0e48e78cadd4d800 *man/shanks.Rd e06512cd13d02b73fde75beb9a4c3f9f *man/wolfram.Rd f6e04ea53ac1f84fb05b152bb0c46e3c *tests/aaa.R 5ba257f04beca25523767116bfec1a7a *tests/aab.R c79d3a76a6f29802bfa09b53bba26607 *vignettes/hypergeometric.Rnw 0a72f0f2b1e668f6089f4e50158837f3 *vignettes/hypergeometric.bib hypergeo/R/0000755000176200001440000000000012701311441012267 5ustar liggesusershypergeo/R/hypergeo.R0000644000176200001440000012651112701311441014242 0ustar liggesusers`.f3` <- function(a1,a2,a3){ exp(complex_gamma(a1,log=TRUE) - complex_gamma(a2,log=TRUE) - complex_gamma(a3,log=TRUE)) } `.f4` <- function(a1,a2,a3,a4){ exp(complex_gamma(a1,log=TRUE) + complex_gamma(a2,log=TRUE) - complex_gamma(a3,log=TRUE) - complex_gamma(a4,log=TRUE)) } "f15.1.1" <- function(A, B, C, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} genhypergeo(U=c(A,B), L=C, z=z, tol=tol, maxiter=maxiter) } "f15.3.1" <- function(A,B,C,z,h=0){ if(!is.null(getOption("showHGcalls"))){print(match.call())} # mult <- exp(lgamma(C)-lgamma(B)-lgamma(C-B)) mult <- .f3(C,B,C-B) f <- function(t){t^(B-1)*(1-t)^(C-B-1)*(1-t*z)^(-A)} if(length(h)==1){ if(h==0){ return(mult * myintegrate(f,lower=0,upper=1)) } else { if(is.double(h)){ h <- 0.5 + h*1i } } } return(mult * integrate.segments(f,c(0,h,1),close=FALSE)) } "f15.3.3" <- function(A,B,C,z,tol=0,maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} (1-z)^(C-A-B)*genhypergeo(U=c(C-A,C-B),L=C,z=z,tol=tol,maxiter=maxiter) } "f15.3.4" <- function(A,B,C,z,tol=0,maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} (1-z)^(-A)*genhypergeo(U=c(A,C-B),L=C,z=z/(z-1),tol=tol,maxiter=maxiter) } "f15.3.5" <- function(A,B,C,z,tol=0,maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} (1-z)^(-B)*genhypergeo(U=c(B,C-A),L=C,z=z/(z-1),tol=tol,maxiter=maxiter) } "i15.3.6" <- function(A,B,C){ if(!is.null(getOption("showHGcalls"))){print(match.call())} c( ifelse(is.nonpos(C-A) | is.nonpos(C-B), 0, .f4(C, C-A-B, C-A,C-B)), ifelse(is.nonpos(A ) | is.nonpos(B ), 0, .f4(C, A+B-C, A , B )) ) } "j15.3.6" <- function(A,B,C){ if(!is.null(getOption("showHGcalls"))){print(match.call())} is.nonpos(c( C , C-A-B , C , A+B-C )) } "f15.3.6" <- function(A,B,C,z,tol=0,maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} if(length(z)==0){ return(z) } jj <- i15.3.6(A,B,C) jj[1] * genhypergeo(U=c( A, B),L=A+B-C+1,z=1-z,tol=tol,maxiter=maxiter) + jj[2] * genhypergeo(U=c(C-A,C-B),L=C-A-B+1,z=1-z,tol=tol,maxiter=maxiter) * (1-z)^(C-A-B) } "i15.3.7" <- function(A,B,C){ if(!is.null(getOption("showHGcalls"))){print(match.call())} c( ifelse(is.nonpos(B) | is.nonpos(C-A), 0, .f4(C,B-A,B,C-A)), ifelse(is.nonpos(A) | is.nonpos(C-B), 0, .f4(C,A-B,A,C-B)) ) } "j15.3.7" <- function(A,B,C){ if(!is.null(getOption("showHGcalls"))){print(match.call())} is.nonpos(c( C , B-A, C , A-B )) } "f15.3.7" <- function(A,B,C,z,tol=0,maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} if(length(z)==0){ return(z) } jj <- i15.3.7(A,B,C) jj[1] * (-z)^(-A) * genhypergeo(U=c(A,1-C+A),L=1-B+A,z=1/z,tol=tol,maxiter=maxiter) + jj[2] * (-z)^(-B) * genhypergeo(U=c(B,1-C+B),L=1-A+B,z=1/z,tol=tol,maxiter=maxiter) } "i15.3.8" <- function(A,B,C){ if(!is.null(getOption("showHGcalls"))){print(match.call())} c( ifelse(is.nonpos(B) | is.nonpos(C-A), 0, .f4(C,B-A,B,C-A)), ifelse(is.nonpos(A) | is.nonpos(C-B), 0, .f4(C,A-B,A,C-B)) ) } "j15.3.8" <- function(A,B,C){ if(!is.null(getOption("showHGcalls"))){print(match.call())} is.nonpos(c( C , B-A , C , A-B )) } "f15.3.8" <- function(A,B,C,z,tol=0,maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} if(length(z)==0){ return(z) } jj <- i15.3.8(A,B,C) return( jj[1] * (1-z)^(-A) * genhypergeo(U=c(A,C-B),L=A-B+1,z=1/(1-z),tol=tol,maxiter=maxiter) + jj[2] * (1-z)^(-B) * genhypergeo(U=c(B,C-A),L=B-A+1,z=1/(1-z),tol=tol,maxiter=maxiter) ) } "i15.3.9" <- function(A,B,C){ if(!is.null(getOption("showHGcalls"))){print(match.call())} return(c( ifelse(is.nonpos(C-A)|is.nonpos(C-B), 0, .f4(C,C-A-B,C-A,C-B)), ifelse(is.nonpos( A)|is.nonpos(B) , 0, .f4(C,A+B-C,A, B)) )) } "j15.3.9" <- function(A,B,C){ if(!is.null(getOption("showHGcalls"))){print(match.call())} is.nonpos(c( C , C-A-B , C , A+B-C )) } "f15.3.9" <- function(A,B,C,z,tol=0,maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} if(length(z)==0){ return(z) } jj <- i15.3.9(A,B,C) jj[1] * z^( -A)*genhypergeo(U=c(A,A-C+1),L=A+B-C+1,z=1-1/z,tol=tol,maxiter=maxiter) + jj[2] * (1-z)^(C-A-B)*z^(A-C)*genhypergeo(U=c(C-A,1-A),L=C-A-B+1,z=1-1/z,tol=tol,maxiter=maxiter) } "isgood" <- function(x,tol){ all(abs(x[!is.na(x)]) <= tol)} "genhypergeo" <- function (U, L, z, tol = 0, maxiter=2000, check_mod=TRUE, polynomial=FALSE, debug=FALSE, series=TRUE) { if(series){ return(genhypergeo_series(U, L, z, tol = tol, maxiter=maxiter, check_mod=check_mod, polynomial=polynomial, debug=debug)) } else { return(genhypergeo_contfrac(U, L, z, maxiter=maxiter)) } } "genhypergeo_series" <- function (U, L, z, tol = 0, maxiter=2000, check_mod=TRUE, polynomial=FALSE, debug=FALSE) { if(!is.null(getOption("showHGcalls"))){print(match.call())} if(debug){ stopifnot(length(z)==1) out <- NULL } if(check_mod){ lU <- length(U) lL <- length(L) if(lU > lL+1){ greater <- Mod(z)>0 } else if(lU > lL) { greater <- Mod(z)>1 } else { greater <- Mod(z)<0 } if(all(greater)){ return(z*NA) } else { z[greater] <- NA } } fac <- 1 temp <- fac if(debug){out <- temp} if(maxiter==0){ return(z*0+fac) } for (n in seq_len(maxiter)) { fac <- fac * (prod(U)/prod(L)) * (z/n) series <- temp + fac if(debug){out <- c(out,fac)} if (isgood(series-temp,tol)){ if(debug){ return(list(series,out)) } else { return(series) } } temp <- series U <- U + 1 L <- L + 1 } if(debug){ return(list(series,out)) } if(polynomial){ return(series) } else { warning("series not converged") return(z*NA) } } "hypergeo_taylor" <- function(A, B, C, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} genhypergeo(U=c(A,B), L=C, z=z, tol=tol, maxiter=maxiter, check_mod=FALSE, polynomial=TRUE) } "is.near_integer" <- function(i , tol=getOption("tolerance")){ if(is.null(tol)){ tol <- 1e-11 } abs(i-round(Re(i))) <= tol } "is.nonpos" <- function(i){ is.near_integer(i) & (Re(i) < 0.5) } "is.zero" <- function(i){ is.near_integer(i) & (abs(i) < 0.5) } "hypergeo_A_nonpos_int" <- function(A, B, C, z, tol=0){ # Assumed: A integer <=0 , B # either non-integer or (if an # integer) <= A. (for example: # A = -2, B = -5). The # hypergeometric series is a # polynomial. if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.nonpos(A)) if(( is.near_integer(C) ) & is.near_integer(C) & (abs(C-A) < 0.5) ){ # A==C==integer warning("this case is not uniquely defined: proceed, assuming both A and C approach the same nonpositive integer at the same speed [that is, (a)_n cancels (c)_n for all 'n']") return(genhypergeo(U=B,L=NULL,z,tol=tol,check_mod = FALSE)) } else { return(hypergeo_taylor(A,B,C,z,tol=tol,maxiter = -A)) } } "hypergeo_AorB_nonpos_int" <- function(A, B, C, z, tol=0){ if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.nonpos(A) | is.nonpos(B)) if(is.nonpos(A) & is.nonpos(B)){ if(A>B){ # eg A = -2, B = -5 return(hypergeo_A_nonpos_int(A,B,C,z,tol=tol)) # Note A,B not swapped over } else { return(hypergeo_A_nonpos_int(B,A,C,z,tol=tol)) # Note A,B swapped over } } ## Thus from here on, A is a nonpositive integer and B is not an ## integer. if(is.nonpos(A)){ return(hypergeo_A_nonpos_int(A,B,C,z,tol=tol)) } else { # Former bug! return(hypergeo_A_nonpos_int(B,A,C,z,tol=tol)) } } ".process_args" <- function(...){ # slight modification of process.args() of package gsl... a <- list(...) attr <- attributes(a[[which.max(unlist(lapply(a,length)))]]) a <- lapply(a,as.vector) out <- do.call("cbind",a) return(list(out=out, attr = attr)) } "crit" <- function(...){ c( 1/2 + 1i*sqrt(3)/2, 1/2 - 1i*sqrt(3)/2 ) } "hypergeo" <- function(A, B, C, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} if(length(A)>1 | length(B)>1 | length(C)>1){ jj <- .process_args(A,B,C,z) f <- function(x){hypergeo(A=Re(x[1]), B=Re(x[2]),C=Re(x[3]),z=x[4],tol=tol,maxiter=maxiter)} out <- apply(jj$out , 1, f) attributes(out) <- jj$attr return(out) } # if you are here, length(A)=length(B)=length(C)=1. jj <- crit() c1 <- jj[1] c2 <- jj[2] close_to_crit <- (abs(z-c1) < 0.1) | (abs(z-c2) < 0.1) ## following lines commented out because ifelse() evaluates both ## functions for *every* value of z, irregardless of the value of ## close_to_crit. So both hypergeo_residue_close_to_crit() *and* ## hypergeo_powerseries() return errors [and there is also the risk ## of an infinite regress]. ## out <- ifelse(close_to_crit, ## hypergeo_residue_close_to_crit_multiple(A,B,C,z, tol=tol, maxiter=maxiter), ## hypergeo_powerseries (A,B,C,z, tol=tol, maxiter=maxiter) ## ) out <- z*NA # if(any( close_to_crit)){out[ close_to_crit] <- hypergeo_residue_close_to_crit_multiple(A,B,C,z[ close_to_crit], tol=tol, maxiter=maxiter)} # if(any(!close_to_crit)){out[!close_to_crit] <- hypergeo_powerseries (A,B,C,z[!close_to_crit], tol=tol, maxiter=maxiter)} if(any( close_to_crit)){out[ close_to_crit] <- hypergeo_gosper (A,B,C,z[ close_to_crit], tol=tol, maxiter=maxiter)} if(any(!close_to_crit)){out[!close_to_crit] <- hypergeo_powerseries (A,B,C,z[!close_to_crit], tol=tol, maxiter=maxiter)} do_with_cf <- !is.na(z) & is.na(out) # ie failures to converge; do_with_cf == "do with Continued Fraction" if(any(do_with_cf)){ out[do_with_cf] <- hypergeo_contfrac(A=A, B=B, C=C, z=z[do_with_cf], maxiter=maxiter) } do_with_integration <- !is.na(z) & is.na(out) if(any(do_with_integration)){ g <- function(z){f15.3.1(A=A, B=B, C=C, z=z)} out[do_with_integration] <- sapply(z[do_with_integration] , g) } return(out) } "hypergeo_powerseries" <- function(A, B, C, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} z <- z+0i if(is.zero(A) | is.zero(B)){ if(is.zero(C)){ return(z*NA) } else { return(z*0+1) } } if(is.zero(C)){ return(z*Inf) } if(is.zero(A-C)){ return( (1-z)^(-B) ) } else if (is.zero(B-C)){ return( (1-z)^(-A) ) } if(is.nonpos(A) | is.nonpos(B)){ return(hypergeo_AorB_nonpos_int(A,B,C,z,tol=tol)) } if(is.nonpos(C)){ # C is a nonpositive integer; series not defined [unless it terminates in which case a limit is used] return(z*NA) } ## So from here on, A, B, C are either non-integer, or integers >0. if(Re(A) > Re(B)){ swap <- A A <- B B <- swap } # So from here on, A <= B m <- C-A n <- B-A # remember: 'n' must be >= 0 because of the 'swap' above. if(is.near_integer(m)){ if(m <= 0){ return( (1-z)^(C-A-B)*Recall(C-A,C-B,C,z=z,tol=tol,maxiter=maxiter) ) # This is 15.3.3, but do not call f15.3.3(), because this leads to an infinite recursion } else { if(is.near_integer(n)){ # This means B-A and C-A are both integers; the "limiting process" on p560 [just after 15.3.4] needs hypergeo_cover3() return(hypergeo_cover3(A,n,m,z,tol=tol,maxiter=maxiter)) } } } m <- -(A+B-C) # Former bug! if(is.near_integer(m)){ # This is the "Each term of 15.3.6 has a pole..." on p559 return(hypergeo_cover1(A,B,m,z,tol=tol,maxiter=maxiter)) } m <- B-A if(is.near_integer(m)){ # This is the "Similarly each term of 15.3.7..." on p560 return(hypergeo_cover2(A,C,m,z,tol=tol,maxiter=maxiter)) } return(hypergeo_general(A,B,C,z,tol=tol,maxiter=maxiter)) } "hypergeo_general" <- function(A, B, C, z, tol=0, maxiter=2000, give=FALSE){ if(!is.null(getOption("showHGcalls"))){print(match.call())} attr <- attributes(z) z <- as.vector(as.complex(z)) things <- thingfun(z) choice <- apply(things,1,which.min) if(!is.null(getOption("showHGcalls"))){ print("choice: ") print(choice) } u15.1.1 <- choice==1 u15.3.4 <- choice==2 u15.3.6 <- choice==3 u15.3.7 <- choice==4 u15.3.8 <- choice==5 u15.3.9 <- choice==6 out <- z*NA if(any(u15.1.1)){ out[u15.1.1] <- f15.1.1(A=A,B=B,C=C, z[u15.1.1], tol=tol,maxiter=maxiter) } # 1 if(any(u15.3.4)){ out[u15.3.4] <- f15.3.4(A=A,B=B,C=C, z[u15.3.4], tol=tol,maxiter=maxiter) } # 2 if(any(u15.3.6)){ out[u15.3.6] <- f15.3.6(A=A,B=B,C=C, z[u15.3.6], tol=tol,maxiter=maxiter) } # 3 if(any(u15.3.7)){ out[u15.3.7] <- f15.3.7(A=A,B=B,C=C, z[u15.3.7], tol=tol,maxiter=maxiter) } # 4 if(any(u15.3.8)){ out[u15.3.8] <- f15.3.8(A=A,B=B,C=C, z[u15.3.8], tol=tol,maxiter=maxiter) } # 5 if(any(u15.3.9)){ out[u15.3.9] <- f15.3.9(A=A,B=B,C=C, z[u15.3.9], tol=tol,maxiter=maxiter) } # 6 attributes(out) <- attr if(give){ return(list(choice,out)) } else { return(out) } } "thingfun" <- function(z,complex=FALSE){ things <- cbind("z" = z, # 1 "z/(z-1)" = z/(z-1), # 2 "1-z" = 1-z, # 3 "1/z" = 1/z, # 4 "1/(1-z)" = 1/(1-z), # 5 "1-1/z" = 1-1/z # 6 ) if(complex){return(things)} things <- Mod(things) if(any(apply(things,1,min, na.rm=TRUE)>1)){ # Thanks to Igor Kojanov for fixing this stop("odd: none of the transformations take the argument inside the unit disk. Contact the package maintainer") } return(things) } "hypergeo_cover1" <- function(A, B, m, z, tol=0, maxiter=2000, method="a", give=FALSE){ ## use equation 15.3.3 - 15.3.9 EXCEPT 15.3.6, which has a pole when ## a+b-c is an integer. See the bit between 15.3.9 and 15.3.10, ## p559. if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.near_integer(m)) C <- A+B+m attr <- attributes(z) z <- as.vector(as.complex(z)) things <- thingfun(z) ## Now to discourage bad ones: if(any(j15.3.7(A,B,C))){ things[,4] <- Inf } if(any(j15.3.8(A,B,C))){ things[,5] <- Inf } if(any(j15.3.9(A,B,C))){ things[,6] <- Inf } ## thus we take the minimum modulus of non-forbidden options. ## Compare similar lines in hypergeo_cover2(): here the functions ## are 7,8,9; there they are 6,8,9 choice <- apply(things,1,which.min) u15.1.1 <- choice==1 u15.3.4 <- choice==2 u15.3.x <- choice==3 # This one! [corresponds to u15.3.6()] u15.3.7 <- choice==4 u15.3.8 <- choice==5 u15.3.9 <- choice==6 out <- z*NA if(any(u15.1.1)){ out[u15.1.1] <- f15.1.1 (A=A,B=B,C=C, z[u15.1.1], tol=tol,maxiter=maxiter) } if(any(u15.3.4)){ out[u15.3.4] <- f15.3.4 (A=A,B=B,C=C, z[u15.3.4], tol=tol,maxiter=maxiter) } if(any(u15.3.x)){ out[u15.3.x] <- f15.3.10_11_12(A=A,B=B,m=m, z[u15.3.x], tol=tol,maxiter=maxiter, method=method) } if(any(u15.3.7)){ out[u15.3.7] <- f15.3.7 (A=A,B=B,C=C, z[u15.3.7], tol=tol,maxiter=maxiter) } if(any(u15.3.8)){ out[u15.3.8] <- f15.3.8 (A=A,B=B,C=C, z[u15.3.8], tol=tol,maxiter=maxiter) } if(any(u15.3.9)){ out[u15.3.9] <- f15.3.9 (A=A,B=B,C=C, z[u15.3.9], tol=tol,maxiter=maxiter) } attributes(out) <- attr if(give){ return(list(choice,out)) } else { return(out) } } "hypergeo_cover2" <- function(A, C, m, z, tol=0, maxiter=2000, method="a", give=FALSE){ if(!is.null(getOption("showHGcalls"))){print(match.call())} ## use equation 15.3.3 - 15.3.9 EXCEPT 15.3.7, which has a pole when ## a+b-c is an integer. See the bit between 15.3.13 and 15.3.15, ## p559. stopifnot(is.near_integer(m)) B <- A+m attr <- attributes(z) z <- as.vector(as.complex(z)) things <- thingfun(z) ## Now to discourage bad ones: if(any(j15.3.6(A,B,C))){ things[,3] <- Inf } if(any(j15.3.8(A,B,C))){ things[,5] <- Inf } if(any(j15.3.9(A,B,C))){ things[,6] <- Inf } choice <- apply(things,1,which.min) u15.1.1 <- choice==1 u15.3.4 <- choice==2 u15.3.6 <- choice==3 u15.3.x <- choice==4 # This one! [corresponds to u15.3.7()] u15.3.8 <- choice==5 u15.3.9 <- choice==6 out <- z*NA if(any(u15.1.1)){ out[u15.1.1] <- f15.1.1 (A=A,B=B,C=C, z[u15.1.1], tol=tol,maxiter=maxiter) } if(any(u15.3.4)){ out[u15.3.4] <- f15.3.4 (A=A,B=B,C=C, z[u15.3.4], tol=tol,maxiter=maxiter) } if(any(u15.3.6)){ out[u15.3.6] <- f15.3.6 (A=A,B=B,C=C, z[u15.3.6], tol=tol,maxiter=maxiter) } if(any(u15.3.x)){ out[u15.3.x] <- f15.3.13_14(A=A,C=C,m=m, z[u15.3.x], tol=tol,maxiter=maxiter, method=method) } if(any(u15.3.8)){ out[u15.3.8] <- f15.3.8 (A=A,B=B,C=C, z[u15.3.8], tol=tol,maxiter=maxiter) } if(any(u15.3.9)){ out[u15.3.9] <- f15.3.9 (A=A,B=B,C=C, z[u15.3.9], tol=tol,maxiter=maxiter) } attributes(out) <- attr if(give){ return(list(choice,out)) } else { return(out) } } "hypergeo_cover3" <- function(A, n, m, z, tol=0, maxiter=2000, method="a", give=FALSE){ if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.near_integer(n)) stopifnot(is.near_integer(m)) attr <- attributes(z) z <- as.vector(as.complex(z)) ## following is a cut-down version of thingfun(), tailored for the Wolfram functions: things <- Mod(cbind( "z" = z, # 1 "1/z" = 1/z # 4 ) ) if(any(apply(things,1,min,na.rm=TRUE)>1)){ stop("odd: none of the transformations take the argument inside the unit disk. Contact the package maintainer") } choice <- apply(things,1,which.min) u15.1.1 <- choice==1 u07.23.06.0026.01 <- (choice==2) & (m > n) u07.23.06.0031.01 <- (choice==2) & (m <= n) out <- z*NA if(any(u15.1.1)){ out[u15.1.1] <- f15.1.1(A=A,B=A+n,C=A+m, z[u15.1.1], tol=tol,maxiter=maxiter) } if(any(u07.23.06.0026.01)){ out[u07.23.06.0026.01] <- w07.23.06.0026.01(A=A,n,m, z[u07.23.06.0026.01], tol=tol, maxiter=maxiter, method=method) } if(any(u07.23.06.0031.01)){ out[u07.23.06.0031.01] <- w07.23.06.0031.01(A=A,n,m, z[u07.23.06.0031.01], tol=tol, maxiter=maxiter) } attributes(out) <- attr if(give){ return(list(choice,out)) } else { return(out) } } "f15.3.10_a" <- function(A, B, z, tol=0, maxiter=2000){ #"_a" means use psigamma, "_b" means use 6.3.5, p258 if(!is.null(getOption("showHGcalls"))){print(match.call())} U <- c(A,B) z[Mod(1-z) >= 1] <- NA fac <- 1 l1mz <- log(1+0i-z) temp <- 2*psigamma(0+1)-psigamma(A+0)-psigamma(B+0)-l1mz # n=0 for(n in seq_len(maxiter)){ fac <- fac * prod(U) * ((1-z)/n^2) series <- temp + fac * (2*psigamma(n+1)- psigamma(A+n) - psigamma(B+n) - l1mz) if(isgood(series-temp,tol)){ return(series/beta(A,B)) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.10_b" <- function(A, B, z, tol=0, maxiter=2000){ #"_a" means use psigamma, "_b" means use 6.3.5, p258 if(!is.null(getOption("showHGcalls"))){print(match.call())} U <- c(A,B) z[Mod(1-z) >= 1] <- NA fac <- 1 pn <- psigamma(1) pa <- psigamma(A) pb <- psigamma(B) l1mz <- log(1+0i-z) temp <- 2*pn-pa-pb-l1mz # n=0 for(n in seq_len(maxiter)){ fac <- fac * prod(U) * ((1-z)/n^2) pn <- pn + 1/n pa <- pa + 1/(A+n-1) # no repeated psigamma() calls; cf 6.3.2, 6.3.5, p258 pb <- pb + 1/(B+n-1) series <- temp + fac * (2*pn - pa - pb - l1mz) if(isgood(series-temp,tol)){ return(series/beta(A,B)) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.10" <- function(A, B, z, tol=0, maxiter=2000, method="a"){ if(!is.null(getOption("showHGcalls"))){print(match.call())} switch(method, a = f15.3.10_a(A,B,z,tol=tol,maxiter=2000), b = f15.3.10_b(A,B,z,tol=tol,maxiter=2000), stop("method must be either 'a' or 'b'") ) } "f15.3.11_bit1" <- function(A, B, m, z, tol=0){ if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.near_integer(m)) stopifnot(m>0) m <- round(m) U <- c(A,B) L <- 1-m # mult <- exp(lgamma(m)+lgamma(A+B+m)-lgamma(A+m)-lgamma(B+m)) mult <- .f4(m,A+B+m,A+m,B+m) series <- z*0+1 z[Mod(1-z)>1] <- NA fac <- 1 temp <- fac for (n in seq_len(m-1)) { fac <- fac * (prod(U)/prod(L)) * (1-z)/n series <- temp + fac if (isgood(series-temp,tol)){ return(series * mult) } temp <- series U <- U + 1 L <- L + 1 } return(series*mult) } "f15.3.11_bit2_a" <- function(A, B, m, z, tol=0, maxiter=2000){ #"_a" means use psigamma, "_b" means use 6.3.5. if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.near_integer(m)) stopifnot(m>0) U <- c(A+m , B+m) # sic z[Mod(1-z) >= 1] <- NA fac <- 1/factorial(m) l1mz <- log(1+0i-z) temp <- (l1mz-psigamma(0+1)-psigamma(0+m+1) + psigamma(A+0+m) + psigamma(B+0+m) ) * fac for(n in seq_len(maxiter)){ fac <- fac * prod(U) * (1-z)/(n*(n+m)) series <- temp + fac * (l1mz - psigamma(n+1) - psigamma(n+m+1) + psigamma(A+n+m) + psigamma(B+n+m)) if(isgood(series-temp,tol)){ # return((z-1)^m * exp(lgamma(A+B+m)-lgamma(A)-lgamma(B)) * series) return((z-1)^m * .f3(A+B+m,A,B) * series) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.11_bit2_b" <- function(A, B, m, z, tol=0, maxiter=2000){ # "_a" means use psigamma, "_b" means use 6.3.5. if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.near_integer(m)) stopifnot(m>0) U <- c(A+m , B+m) # sic z[Mod(1-z) >= 1] <- NA fac <- 1/factorial(m) pn <- psigamma( 1) pm <- psigamma(m+1) pa <- psigamma(m+A) pb <- psigamma(m+B) l1mz <- log(1+0i-z) temp <- (l1mz - pn - pm + pa + pb ) * fac for(n in seq_len(maxiter)){ fac <- fac * prod(U) * (1-z)/(n*(n+m)) pn <- pn + 1/n pm <- pm + 1/(n+m) pa <- pa + 1/(A+n+m-1) pb <- pb + 1/(B+n+m-1) series <- temp + fac * (l1mz - pn - pm + pa + pb) if(isgood(series-temp,tol)){ # return((z-1)^m * exp(lgamma(A+B+m)-lgamma(A)-lgamma(B)) * series) return((z-1)^m * .f3(A+B+m,A,B) * series) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.11" <- function(A,B,m,z,tol=0, maxiter=2000,method="a"){ if(!is.null(getOption("showHGcalls"))){print(match.call())} switch(method, a = f15.3.11_bit1(A,B,m,z,tol=tol) - f15.3.11_bit2_a(A,B,m,z,tol=tol, maxiter=maxiter), b = f15.3.11_bit1(A,B,m,z,tol=tol) - f15.3.11_bit2_a(A,B,m,z,tol=tol, maxiter=maxiter), stop("method must be either 'a' or 'b'") ) } "f15.3.12_bit1" <- function(A, B, m, z, tol=0){ if(!is.null(getOption("showHGcalls"))){print(match.call())} m <- round(m) U <- c(A-m,B-m) L <- 1-m # mult <- exp(lgamma(m)+lgamma(A+B-m)-lgamma(A)-lgamma(B)) / (1-z)^m mult <- .f4(m,A+B-m,A,B) / (1-z)^m z[Mod(1-z)>1] <- NA fac <- 1 temp <- fac series <- z*0+1 for (n in seq_len(m-1)) { fac <- fac * (prod(U)/prod(L)) * (1-z)/n series <- temp + fac if (isgood(series-temp,tol)){ return(series * mult) } temp <- series U <- U + 1 L <- L + 1 } return(series*mult) } "f15.3.12_bit2_a" <- function(A, B, m, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} m <- round(m) if(is.nonpos(A-m)|is.nonpos(B-m)){return(z*0)} # mult <- (-1)^m * exp(lgamma(A+B-m)-lgamma(A-m)-lgamma(B-m)) mult <- (-1)^m * .f3(A+B-m,A-m,B-m) U <- c(A , B) # sic z[Mod(1-z) >= 1] <- NA fac <- 1/factorial(m) l1mz <- log(1+0i-z) temp <- (l1mz-psigamma(1)-psigamma(m+1) + psigamma(A) + psigamma(B) ) * fac for(n in seq_len(maxiter)){ fac <- fac * prod(U) * (1-z)/(n*(n+m)) series <- temp + fac * (l1mz - psigamma(n+1) - psigamma(n+m+1) + psigamma(A+n) + psigamma(B+n)) if(isgood(series-temp,tol)){ return(mult * series) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.12_bit2_b" <- function(A, B, m, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} m <- round(m) if(is.nonpos(A-m)|is.nonpos(B-m)){return(z*0)} # mult <- (-1)^m * exp(lgamma(A+B-m)-lgamma(A-m)-lgamma(B-m)) mult <- (-1)^m * .f3(A+B-m,A-m,B-m) U <- c(A , B) # sic z[Mod(1-z) >= 1] <- NA fac <- 1/factorial(m) pn <- psigamma(1) pm <- psigamma(m+1) pa <- psigamma(A) pb <- psigamma(B) l1mz <- log(1+0i-z) temp <- (l1mz-pn - pm + pa + pb ) * fac for(n in seq_len(maxiter)){ fac <- fac * prod(U) * (1-z)/(n*(n+m)) pn <- pn + 1/n pm <- pm + 1/(n+m) pa <- pa + 1/(A+n-1) pb <- pb + 1/(B+n-1) series <- temp + fac * (l1mz - pn - pm + pa + pb) if(isgood(series-temp,tol)){ return(mult * series) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.12" <- function(A, B, m, z, tol=0, maxiter=2000, method = "a"){ if(!is.null(getOption("showHGcalls"))){print(match.call())} switch(method, a = f15.3.12_bit1(A,B,m,z,tol=tol) - f15.3.12_bit2_a(A,B,m,z,tol=tol, maxiter=maxiter), b = f15.3.12_bit1(A,B,m,z,tol=tol) - f15.3.12_bit2_b(A,B,m,z,tol=tol, maxiter=maxiter), stop("method must be one of 'a' or 'b'") ) } "f15.3.13" <- function(A, C, z, tol=0, maxiter=2000, method = "a"){ if(!is.null(getOption("showHGcalls"))){print(match.call())} switch(method, a = f15.3.13_a(A,C,z,tol=tol,maxiter=maxiter), b = f15.3.13_b(A,C,z,tol=tol,maxiter=maxiter) ) } "f15.3.13_a" <- function(A, C, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} U <- c(A,1-C+A) z[Mod(z) < 1] <- NA fac <- 1 pn <- psigamma(1) pa <- psigamma(A) pc <- psigamma(C-A) lmz <- log(0i-z) temp <- lmz + 2*psigamma(1) - psigamma(A) - psigamma(C-A) # n=0 for(n in seq_len(maxiter)){ fac <- fac * prod(U) / (z*n^2) series <- temp + fac * (lmz + 2*psigamma(n+1) - psigamma(A+n) - psigamma(C-A-n)) if(isgood(series-temp,tol)){ # return(series * exp(lgamma(C)-lgamma(A)-lgamma(C-A)) * (0i-z)^(-A)) return(series * .f3(C,A,C-A) * (0i-z)^(-A)) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.13_b" <- function(A, C, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} U <- c(A,1-C+A) z[Mod(z) < 1] <- NA fac <- 1 pn <- psigamma(1) pa <- psigamma(A) pc <- psigamma(C-A) lmz <- log(0i-z) temp <- lmz + 2*pn - pa - pc for(n in seq_len(maxiter)){ fac <- fac * prod(U) / (z*n^2) pn <- pn + 1/n pa <- pa + 1/(A+n-1) pc <- pc - 1/(C-A-n) # The term is psi(c-a-n), not psi(c-a+n) series <- temp + fac * (lmz + 2*pn - pa - pc) if(isgood(series-temp,tol)){ # return(series * exp(lgamma(C)-lgamma(A)-lgamma(C-A)) * (0i-z)^(-A)) return(series * .f3(C,A,C-A) * (0i-z)^(-A)) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.14_bit1_a" <- function(A, C, m, z, tol=0, maxiter=2000){ # "_a" means use psigamma, "_b" means use 6.3.5. if(!is.null(getOption("showHGcalls"))){print(match.call())} m <- round(m) U <- c(A+m, 1-C+A+m) z[Mod(z) < 1] <- NA # fac <- exp(lgamma(A+m)-lgamma(A)+ lgamma(1-C+A+m)-lgamma(1-C+A) - lfactorial(m)) fac <- exp( +complex_gamma(A+m,log=TRUE) -complex_gamma(A,log=TRUE) +complex_gamma(1-C+A+m,log=TRUE) -complex_gamma(1-C+A,log=TRUE) -complex_factorial(m,log=TRUE) ) lmz <- log(0i-z) temp <- (lmz + psigamma(1+m) + psigamma(1) - psigamma(A+m) - psigamma(C-A-m)) * fac for(n in seq_len(maxiter)){ fac <- fac * prod(U) / (z*n*(n+m)) series <- temp + fac * (lmz + psigamma(1+m+n) + psigamma(1+n) - psigamma(A+m+n) - psigamma(C-A-m-n)) if(isgood(series-temp,tol)){ # return( (0i-z)^(-A-m) * exp(lgamma(C) -lgamma(A+m)-lgamma(C-A)) * series) return( (0i-z)^(-A-m) * .f3(C,A+m,C-A) * series) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.14_bit1_b" <- function(A, C, m, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} m <- round(m) U <- c(A+m, 1-C+A+m) z[Mod(z) < 1] <- NA # fac <- exp(lgamma(A+m)-gamma(A) + lgamma(1-C+A+m)-lgamma(1-C+A)- factorial(m)) #NB gamma(A) should be lgamma(A) fac <- exp( +complex_gamma(A+m,log=TRUE) -complex_gamma(A,log=TRUE) +complex_gamma(1-C+A+m,log=TRUE) -complex_gamma(1-C+A) -complex_factorial(m,log=TRUE) ) pm <- psigamma(m+1) pn <- psigamma(1) pa <- psigamma(m+A) pc <- psigamma(C-A-m) lmz <- log(0i-z) temp <- (lmz + pm + pn - pa - pc) * fac for(n in seq_len(maxiter)){ fac <- fac * prod(U) / (z*n*(n+m)) pm <- pm + 1/(n+m) pn <- pn + 1/n pa <- pa + 1/(m+A+n-1) pc <- pc - 1/(C-A-m-n) series <- temp + fac * (lmz + pm + pn - pa - pc) if(isgood(series-temp,tol)){ # return( (0i-z)^(-A-m) * exp(lgamma(C)-lgamma(A+m)-gamma(C-A)) * series) return( (0i-z)^(-A-m) * .f3(C,A+m,C-A) * series) } temp <- series U <- U+1 } warning("series not converged") return(z*NA) } "f15.3.14_bit2" <- function(A, C, m, z, tol=0){ if(!is.null(getOption("showHGcalls"))){print(match.call())} m <- round(m) stopifnot(m>0) stopifnot(is.near_integer(m)) U <- c(A) # mult <- (0i-z)^(-A) * exp(lgamma(C) - lgamma(A+m)) mult <- (0i-z)^(-A) * .f3(C,A+m,1) # NB log(gamma(1))=0 z[Mod(z)<1] <- NA fac <- 1 temp <- gamma(m)/gamma(C-A) series <- z*0+temp for (n in seq_len(m-1)) { fac <- fac * prod(U) / (z*n) # series <- temp + fac * exp(lgamma(m-n)-lgamma(C-A-n)) series <- temp + fac * .f3(m-n,C-A-n,1) if (isgood(series-temp,tol)){ return(series * mult) } temp <- series U <- U + 1 } return(series*mult) } "f15.3.14" <- function(A, C, m, z, tol=0, maxiter=2000, method="a"){ if(!is.null(getOption("showHGcalls"))){print(match.call())} a1 <- f15.3.14_bit1_a(A,C,m,z,tol=tol,maxiter=maxiter) a2 <- f15.3.14_bit2(A,C,m,z,tol=tol) switch(method, a=f15.3.14_bit1_a(A,C,m,z,tol=tol,maxiter=maxiter) + f15.3.14_bit2(A,C,m,z,tol=tol), b=f15.3.14_bit1_b(A,C,m,z,tol=tol,maxiter=maxiter) + f15.3.14_bit2(A,C,m,z,tol=tol), stop("method must be one of 'a' or 'b'") ) } "f15.3.10_11_12" <- function(A,B,m,z,tol=0,maxiter=2000,method="a"){ if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.near_integer(m)) m <- round(m) if(is.zero(m)){ return(f15.3.10(A,B, z,tol=tol,maxiter=maxiter,method=method)) } else if (m>0){ return(f15.3.11(A,B, m,z,tol=tol,maxiter=maxiter,method=method)) } else if (m<0){ return(f15.3.12(A,B,-m,z,tol=tol,maxiter=maxiter,method=method)) } else { stop("this cannot happen") } } "f15.3.13_14" <- function(A, C, m, z, tol=0, maxiter=2000, method="a"){ if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.near_integer(m)) m <- round(m) if(is.zero(m)){ return(f15.3.13(A ,C ,z,tol=tol,maxiter=maxiter,method=method)) } else if (m>0){ return(f15.3.14(A ,C, m,z,tol=tol,maxiter=maxiter,method=method)) } else if (m<0){ return(f15.3.14(A+m,C,-m,z,tol=tol,maxiter=maxiter,method=method)) #F(a,b,c;z)==F(b,a,c;z) } else { stop("this cannot happen") } } "w07.23.06.0029.01" <- function(A, n, m, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} ((-1)^m*gamma(A-m)*factorial(m+n)*(0i-z)^(-A-n)/(gamma(A)*factorial(n)))* hypergeo(A+n , m+n+1, n+1, 1/z,tol=tol,maxiter=maxiter) } "w07.23.06.0031.01_bit1" <- function(A, n, m, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(is.near_integer(m)) stopifnot(m>0) U <- c(A,1-m) L <- 1-n # mult <- exp(lgamma(A+m)+lgamma(n) - lgamma(m)-lgamma(A+n)) * (0i-z)^(-A) mult <- .f4(A+m,n,m,A+n) * (0i-z)^(-A) series <- z*0+1 z[Mod(z) < 1] <- NA fac <- 1 temp <- fac for (k in seq_len(m-1)) { # Note iteration is over "k", not "n", as per 07.23.06.0031.01 fac <- fac * (prod(U)/prod(L)) / (k*z) series <- temp + fac if (isgood(series-temp,tol)){ return(series * mult) } temp <- series U <- U + 1 L <- L + 1 } return(series*mult) } "w07.23.06.0031.01_bit2" <- function(A, n, m, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} # (-1)^m* (gamma(A+m)/gamma(A)) * factorial(n-m) *(0i-z)^(-A-n) / factorial(n) * (-1)^m*(0i-z)^(-A-n) * .f4(A+m,n-m+1,A,n+1)* hypergeo(A+n , 1-m+n , n+1 , 1/z , tol=tol , maxiter=maxiter) } "w07.23.06.0031.01" <- function(A, n, m, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(m <= n) w07.23.06.0031.01_bit1(A, n, m, z, tol=tol, maxiter=maxiter) + w07.23.06.0031.01_bit2(A, n, m, z, tol=tol, maxiter=maxiter) } "w07.23.06.0026.01" <- function(A, n, m, z, tol=0, maxiter=2000, method="a"){ # checks out with maple. if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(m >= n) stopifnot(m >= 0) stopifnot(n >= 0) stopifnot(is.near_integer(n)) stopifnot(is.near_integer(m)) m <- round(m) n <- round(n) z <- z+0i bit1 <- w07.23.06.0026.01_bit1(A, n, m, z, tol=tol) bit2 <- w07.23.06.0026.01_bit2(A, n, m, z, tol=tol, maxiter=maxiter) bit3 <- switch(method, a = w07.23.06.0026.01_bit3_a(A, n, m, z, tol=tol), b = w07.23.06.0026.01_bit3_b(A, n, m, z, tol=tol), c = w07.23.06.0026.01_bit3_c(A, n, m, z, tol=tol), stop("method must be 'a' or 'b' or 'c'") ) return(bit1 + bit2 + bit3) } "w07.23.06.0026.01_bit1" <- function(A, n, m, z, tol=0){ # Checks with Maple if(!is.null(getOption("showHGcalls"))){print(match.call())} if(length(z)==0){return(z)} if(is.zero(n)){ return(0) } # mult <- gamma(n)*gamma(A+m)*(-z)^(-A) / (gamma(m)*gamma(A+n)) mult <- (0i-z)^(-A) * .f4(n,A+m,m,A+n) U <- c(A,1-m) L <- 1-n series <- z*0+1 z[Mod(z) < 1] <- NA fac <- 1 # k=0 temp <- fac for (k in seq_len(n-1)) { fac <- fac * (prod(U)/prod(L)) /(z*k) series <- temp + fac if (isgood(series-temp,tol)){ return(series * mult) } temp <- series U <- U + 1 L <- L + 1 } return(series*mult) } "w07.23.06.0026.01_bit2" <- function(A, n, m, z, tol=0, maxiter = 2000){ # checks with Maple if(!is.null(getOption("showHGcalls"))){print(match.call())} mult <- (-1)^n * (-z)^(-A-m) * .f3(A+m,A,A+n) * .f3(A+m,m+1,m-n+1) # (gamma(A)*gamma(A+n)*factorial(m)*factorial(m-n)) return(mult * genhypergeo(U=c(1,1,A+m),L=c(m+1,m-n+1), z=1/z, tol=tol, maxiter=maxiter)) } "w07.23.06.0026.01_bit3_a" <- function(A, n, m, z, tol=0){ #"_a" means use psigamma, "_b" means use 6.3.5. if(!is.null(getOption("showHGcalls"))){print(match.call())} U <- c(A+n , 1-m+n) # mult <- (-1)^n * exp(lgamma(A+m)-lgamma(A)-lfactorial(m-n-1)) * (-z)^(-A-n) mult <- (-1)^n * .f3(A+m,A,m-n) * (-z)^(-A-n) fac <- 1/factorial(n) lmz <- log(0i-z) temp <- (lmz - psigamma(m-n-0) +psigamma(0+1) + psigamma(0+n+1) - psigamma(A+0+n)) * fac #k=0 series <- temp for(k in seq_len(m-n-1)){ fac <- fac * prod(U) / (z * k * (k+n)) series <- temp + fac * (lmz - psigamma(m-n-k) + psigamma(k+1) + psigamma(k+n+1) - psigamma(A+k+n)) if(isgood(series-temp,tol)){ return(series*mult) } temp <- series U <- U+1 } return(series*mult) } "w07.23.06.0026.01_bit3_b" <- function(A, n, m, z, tol=0){ #"_a" means use psigamma, "_b" means use 6.3.5. if(!is.null(getOption("showHGcalls"))){print(match.call())} U <- c(A+n , 1-m+n) # mult <- (-1)^n*exp(lgamma(A+m)-lgamma(A)-lfactorial(m-n-1)) * (-z)^(-A-n) mult <- (-1)^n*.f3(A+m,A,m-n) * (-z)^(-A-n) fac <- 1/factorial(n) lmz <- log(0i-z) p1 <- psigamma(m-n) p2 <- psigamma(1) p3 <- psigamma(n+1) p4 <- psigamma(A+n) temp <- (lmz - p1 + p2 + p3 - p4) * fac series <- temp for(k in seq_len(m-n-1)){ fac <- fac * prod(U) / (z * k * (k+n) ) p1 <- p1 - 1/(m-n-k) p2 <- p2 + 1/k p3 <- p3 + 1/(k+n) p4 <- p4 + 1/(A+k+n-1) series <- temp + fac * (lmz - p1 + p2 + p3 - p4) if(isgood(series-temp,tol)){ return(series*mult) } temp <- series U <- U+1 } return(series*mult) } "w07.23.06.0026.01_bit3_c" <- function(A, n, m, z, tol=0){ #"_a" means # use psigamma, "_b" means use 6.3.5; here "_c" means use a totally # dull, slow, direct (but clearly correct) summation, for the # purposes of debugging. if(!is.null(getOption("showHGcalls"))){print(match.call())} poch <- function(x,j){ prod(x + (seq_len(j)-1)) } # mult <- ((-1)^n*gamma(A+m)/(gamma(A)*factorial(m-n-1)))*(-z)^(-A-n) mult <- ((-1)^n*.f3(A+m,A,m-n))*(-z)^(-A-n) out <- 0 for(k in 0:(m-n-1)){ out <- out + ( (poch(A+n,k) * poch(1-m+n,k))/(factorial(k)*factorial(k+n)) ) * (log(-z) - psigamma(m-n-k)+psigamma(k+1)+psigamma(k+n+1)-psigamma(A+k+n))*z^(-k) } return(out * mult) } "genhypergeo_contfrac_single" <- function(U, L, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} f <- function(k){prod(U+k)/prod(k+c(1,L))} alpha <- z*sapply(seq_len(maxiter), f) 1+z*prod(U)/(prod(L)*(1+GCF(a = -alpha , b = 1+alpha, tol=tol))) } "genhypergeo_contfrac" <- function(U, L, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} attr <- attributes(z) f <- function(z){genhypergeo_contfrac_single(U, L, z=z, tol=tol, maxiter=maxiter)} out <- sapply(z,f) attributes(out) <- attr return(out) } "hypergeo_contfrac" <- function(A, B, C, z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} attr <- attributes(z) f <- function(z){genhypergeo_contfrac_single(U=c(A, B), L=C, z=z, tol=tol, maxiter=maxiter)} out <- sapply(z,f) attributes(out) <- attr return(out) } "hypergeo_residue_general" <- function(A, B, C, z, r, O=z, tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} stopifnot(length(z)==1) residue(f=function(z){hypergeo(A,B,C,z,tol=tol,maxiter=maxiter)}, z0=z, r=0.15, O=O) # NB: residue() is defined in the elliptic package } "hypergeo_residue_close_to_crit_single" <- function(A, B, C, z, strategy='A', tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} jj <- crit() c1 <- jj[1] c2 <- jj[2] if( (abs(z-c1) <= 0.1) & (abs(z-c2) <= 0.1) ) {stop("this cannot happen")} stopifnot( (abs(z-c1) <= 0.1) | (abs(z-c2) <= 0.1) ) if(abs(z-c1) <= 0.1){ crit <- c1 } else { crit <- c2 } O <- switch( strategy, A = crit, B = z, stop('strategy must be A or B') ) hypergeo_residue_general(A=A,B=B,C=C, z=z, r=0.15, O=O, tol=tol, maxiter=maxiter) } "hypergeo_residue_close_to_crit_multiple" <- function(A, B, C, z, strategy='A', tol=0, maxiter=2000){ if(!is.null(getOption("showHGcalls"))){print(match.call())} sapply(z, function(z){ hypergeo_residue_close_to_crit_single(A,B,C,z,strategy=strategy,tol=tol,maxiter=maxiter) } ) } "lpham" <- function(x,n){lgamma(x+n)-lgamma(x)} "buhring_eqn11" <- function(n,S,A,B,C,z0=1/2){ #NB no z stopifnot(length(z0)==1) if(length(n)>1) {return(sapply(n,function(nn){buhring_eqn11(n=nn,S,A,B,C,z0=z0)}))} return( exp( +lpham(S,n) +lpham(1+S-C,n) -lpham(1+2*S-A-B,n) -lfactorial(n) ) * hypergeo(-n, A+B-2*S-n, C-S-n, z=z0) ) } "buhring_eqn12" <- function(n,S,A,B,C,z0=1/2){ stopifnot(length(z0)==1) if(length(n)>1) {return(sapply(n,function(nn){buhring_eqn12(n=nn,S,A,B,C,z0=z0)}))} return( (-1)^n* exp( +lpham(S,n) +lpham(S+C-A-B,n) -lpham(1+2*S-A-B,n) -lfactorial(n) ) * hypergeo(-n,A+B-2*S-n, 1+A+B-S-C-n, z=1-z0) ) } "buhring_eqn5_factors" <- function(A,B,C,z,z0=1/2){ c( exp( +complex_gamma(C,log=TRUE) +complex_gamma(B-A,log=TRUE) -complex_gamma(B,log=TRUE) -complex_gamma(C-A,log=TRUE) -A*log(z0-z) ), exp( +complex_gamma(C,log=TRUE) +complex_gamma(A-B,log=TRUE) -complex_gamma(A,log=TRUE) -complex_gamma(C-B,log=TRUE) -B*log(z0-z) ) ) } "buhring_eqn5_series" <- function(S,A,B,C,z,z0=1/2,use11=FALSE,tol=0,maxiter=2000){ # sum if(!is.null(getOption("showHGcalls"))){print(match.call())} if(length(z)==0){return(z)} if(use11){ f <- buhring_eqn11 } else { f <- buhring_eqn12 } temp <- 1 n <- 1 while(n < maxiter){ out <- temp + f(n,S=S,A=A,B=B,C=C,z0=z0)/(z-z0)^n if(isgood(out-temp,tol)){return(out)} temp <- out n <- n+1 } warning("series not converged") return(out) } "hypergeo_buhring" <- function(A,B,C,z,z0=1/2,tol=0,maxiter=2000,use11=TRUE){ jj <- buhring_eqn5_factors(A,B,C,z,z0) return( jj[1]*buhring_eqn5_series(S=A,A,B,C,z,z0=1/2,use11=use11,tol=tol,maxiter=maxiter)+ jj[2]*buhring_eqn5_series(S=B,A,B,C,z,z0=1/2,use11=use11,tol=tol,maxiter=maxiter) ) } "shanks" <- function(Last,This,Next){ if(identical(Next,This)){return(Next)} num <- Next*Last - This^2 den <- Next-2*This+Last if(den==0){ return(Next) } else { return(num/den) } } "genhypergeo_shanks" <- function (U, L, z, maxiter=20){ if(!is.null(getOption("showHGcalls"))){print(match.call())} fac <- 1 temp <- fac if(maxiter==0){ return(z*0+fac) } Last <- 0 This <- 1 Next <- 2 Shanks <- shanks(Last,This,Next) for (n in seq_len(maxiter)) { fac.old <- fac fac <- fac * (prod(U)/prod(L)) * (z/n) fac.new <- fac series <- temp + fac ## following three lines a "conveyor belt" Next -> This -> Last Last <- This This <- Next Next <- series Shanks.old <- Shanks Shanks <- shanks(Last,This,Next) temp <- series U <- U + 1 L <- L + 1 } return(series) } "hypergeo_shanks" <- function (A, B, C, z, maxiter = 20){ genhypergeo_shanks(U=c(A,B), L=C, z=z,maxiter=maxiter) } "hypergeo_gosper" <- function(A, B, C, z, tol=0, maxiter=2000){ d <- 0 e <- 1 f <- 0 for(k in 0:maxiter){ dnew <- (k+A)*(k+B)*z*(e-(k+C-B-A)*d*z/(1-z)) /(4*(k+1)*(k+C/2)*(k+(C+1)/2)) enew <- (k+A)*(k+B)*z*(A*B*d*z/(1-z) + (k+C)*e)/(4*(k+1)*(k+C/2)*(k+(C+1)/2)) fnew <- f-d*(k*((C-B-A)*z+k*(z-2)-C)-A*B*z) /(2* (k+C/2)*(1-z) )+e if(isgood(f-fnew,tol)){return(f)} d <- dnew e <- enew f <- fnew } warning("not converged") return(f) } hypergeo/R/hypergeo_ODE.R0000644000176200001440000000625212701311441014730 0ustar liggesusers"to_real" <- function(o){ out <- c(rbind(Re(o),Im(o))) if(!is.null(names(o))){ names(out) <- # pathetic kludge apply(expand.grid(c("_real","_imag"),names(o))[,2:1],1,paste,collapse="") } else { names(out) <- NULL } return(out) } "to_complex" <- function(p){ if(is.vector(p)){ jj <- Recall(t(p)) out <- c(jj) names(out) <- colnames(jj) return(out) } # if not a vector, assumed to be a matrix out <- ( p[,seq(from=1,by=2,to=ncol(p)),drop=FALSE] + 1i*p[,seq(from=2,by=2,to=ncol(p)),drop=FALSE] ) f <- function(string){sub("_real","",string)} colnames(out) <- sapply(colnames(out),f) return(out) } "complex_ode" <- function(y, times, func, parms=NA, method=NULL, u, udash, ...){ out <- ode(y=to_real(y), times=times, func=func, parms=to_real(parms), method, u=u, udash=udash, ...) out <- cbind(z=u(out[,1]),to_complex(out[,-1])) class(out) <- c("deSolve", "matrix") return(out) } hypergeo_press <- function(A,B,C,z, ...){ # Press et al, 5.14 if(Re(z)<=0){ startz <- -0.5 } else if( (Re(z)<=0.5)){ startz <- 0.5 } else if(Im(z)>=0){ startz <- 0.5i } else if(Im(z)<0){ startz <- -0.5i } initial_value <- hypergeo(A,B,C,z=startz) initial_deriv <- (A*B)/C*hypergeo(A+1,B+1,C+1,z=startz) # 15.2.1 complex_ode(y = c(F=initial_value, Fdash=initial_deriv), times = seq(0,1,by=0.05), func = hypergeo_func, parms = c(A=A, B=B, C=C)+0i, u = function(u){startz + (z-startz)*u}, # path udash = function(u){z-startz}, # derivative of path ...) } "hypergeo_func" <- function(Time, State, Pars, u, udash) { with(as.list(c(to_complex(State), to_complex(Pars))), { z <- u(Time) dz <- udash(Time) ## 'meat' of function: AMS-55 15.5.1; w -> F dF <- dz * Fdash dFdash <- dz * (A*B*F -(C-(A+B+1)*z)*Fdash)/(z*(1-z)) ## Now coerce back to real: out <- to_real(c(dF,dFdash)) names(out) <- names(State) return(list(out)) }) } f15.5.1 <- function(A,B,C,z,startz,u,udash,give=FALSE, ...){ # solves the ODE, 15.5.1, directly. out <- complex_ode(y = c(F=hypergeo(A,B,C,startz), Fdash=hypergeo(A+1,B+1,C+1,startz)*A*B/C), times = seq(0,1,by=0.1), func = hypergeo_func, parms = c(A=A, B=B, C=C)+0i, u = u, udash = udash, ...) if(give){ return(out) } else { return(unname(out[11,2])) } } "semicircle" <- function(t,z0,z1,clockwise=TRUE){ if(clockwise){m <- -1} else {m <- 1} center <- (z0+z1)/2 center + (z0-center)*exp(1i*t*pi*m) } "semidash" <- function(t,z0,z1,clockwise=TRUE){ if(clockwise){m <- -1} else {m <- 1} center <- (z0+z1)/2 (z0-center)*(1i*pi*m)*exp(1i*t*pi*m) } "straight" <- function(t,z0,z1){ z0 + t*(z1-z0) } "straightdash" <- function(t,z0,z1){ (z1-z0) } hypergeo/R/complex_gamma.R0000644000176200001440000000235012701311441015223 0ustar liggesusers`lanczos` <- function(z, log=FALSE){ stopifnot(all(Re(z)>=0.5)) g <- 7 p <- c( 0.99999999999980993227684700473478, 676.520368121885098567009190444019, -1259.13921672240287047156078755283, 771.3234287776530788486528258894, -176.61502916214059906584551354, 12.507343278686904814458936853, -0.13857109526572011689554707, 9.984369578019570859563e-6, 1.50563273514931155834e-7 ) z <- z+0i-1 #NB coerces to complex x <- p[1] for(i in seq.int(from=2,to=g+2)){ x <- x + p[i]/(z+i-1) } tee <- z + g + 0.5 if(log){ return(log(2*pi)/2 +(z+0.5)*log(tee) -tee +log(x)) } else { return(sqrt(2*pi) *tee^(z+0.5) *exp(-tee) *x) } } `complex_gamma` <- function(z,log=FALSE){ out <- z*NaN +0i z <- z+0i; left <- Re(z)<0.5 zl <- z[ left] zr <- z[!left] if(log){ out[ left] <- log(pi)-log(sin(pi*zl))-lanczos(1-zl,log=TRUE) out[!left] <- lanczos(zr,log=TRUE) } else { out[ left] <- pi/(sin(pi*zl)*lanczos(1-zl,log=FALSE)) out[!left] <- lanczos(zr,log=FALSE) } return(out) } `complex_factorial` <- function(z,log=FALSE){complex_gamma(z+1,log=log)} hypergeo/vignettes/0000755000176200001440000000000014770237325014116 5ustar liggesusershypergeo/vignettes/hypergeometric.Rnw0000644000176200001440000004316414770237055017644 0ustar liggesusers % -*- mode: noweb; noweb-default-code-mode: R-mode; -*- \documentclass[nojss]{jss} \usepackage{dsfont} \usepackage{bbm} \usepackage{amsmath} \usepackage{amssymb} \usepackage{algpseudocode} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareMathOperator*{\ketten}{K} \newcommand{\Fmn}[2]{\ensuremath{\operatorname{{}_{#1}F_{#2}}}} \newcommand{\ft}{\ensuremath{\Fmn{2}{1}}} \newcommand{\fall}[2]{\left(#1\right)_{#2}} \newcommand{\rise}[2]{\left(#1\right)^{#2}} \newcommand{\ams}[1]{$\left(#1\right)$} %% just as usual \author{Robin K. S. Hankin\\Auckland University of Technology} \title{Numerical evaluation of the Gauss hypergeometric function with the \pkg{hypergeo} package} %\VignetteIndexEntry{The hypergeo package} %% for pretty printing and a nice hypersummary also set: \Plainauthor{Robin K. S. Hankin} \Plaintitle{The hypergeo package} \Keywords{Hypergeometric functions, numerical evaluation, complex plane, \proglang{R}, residue theorem} \Plainkeywords{Hypergeometric functions, numerical evaluation, complex plane, R, residue theorem} \Abstract{This paper introduces the \pkg{hypergeo} package of R routines, for numerical calculation of hypergeometric functions. The package is focussed on efficient and accurate evaluation of the hypergeometric function over the whole of the complex plane within the constraints of fixed-precision arithmetic. The hypergeometric series is convergent only within the unit circle, so analytic continuation must be used to define the function outside the unit circle. This short document outlines the numerical and conceptual methods used in the package; and justifies the package philosophy, which is to maintain transparent and verifiable links between the software and AMS-55. The package is demonstrated in the context of game theory. } %% publication information %% NOTE: This needs to filled out ONLY IF THE PAPER WAS ACCEPTED. %% If it was not (yet) accepted, leave them commented. %% \Volume{13} %% \Issue{9} %% \Month{September} %% \Year{2004} %% \Submitdate{2004-09-29} %% \Acceptdate{2004-09-29} %% The address of (at least) one author should be given %% in the following format: \Address{ Robin K. S. Hankin\\ Auckland University of Technology\\ New Zealand\\ E-mail: \email{hankin.robin@gmail.com}\\ } %% need no \usepackage{Sweave.sty} \SweaveOpts{} \begin{document} <>= calculate_from_scratch <- FALSE @ \section{Introduction} The {\em geometric} series~$\sum_{k=0}^\infty t_k$ with~$t_k=z^k$ may be characterized by its first term and the constant ratio of successive terms~$t_{k+1}/t_k=z$, giving the familiar identity~$\sum_{k=0}^\infty z^k=\left(1-z\right)^{-1}$. Observe that while the series has unit radius of convergence, the right hand side is defined over the whole complex plane except for~$z=1$ where it has a pole. Series of this type may be generalized to a {\em hypergeometric} series in which the ratio of successive terms is a rational function of~$k$: \[ \frac{t_{k+1}}{t_k}=\frac{P(k)}{Q(k)} \] where~$P(k)$ and~$Q(k)$ are polynomials. If both numerator and denominator have been completely factored we would write \[ \frac{t_{k+1}}{t_k} = \frac{(k+a_1)(k+a_2)\cdots(k+a_p)}{(k+b_1)(k+b_2)\cdots(k+b_q)(k+1)}z \] \noindent (the final term in the denominator is due to historical reasons), and if we require~$t_0=1$ then we write \begin{equation}\label{genhypergeo_definition} \sum_{k=0}^\infty t_kz^k= \Fmn{a}{b}\left[{ a_1, a_2, \ldots,a_p\atop b_1, b_2, \ldots,b_q} ; z\right] \end{equation} when defined. An absent factor is indicated with a dash; thus $\Fmn{0}{0}\left[\begin{array}{l}-\\-\end{array};z\right]=e^z$. In most cases of interest one finds that~$p=2$, $q=1$ suffices. Writing~$a,b,c$ for the two upper and one lower argument respectively, the resulting function~$\ft\left(a,b;c;z\right)$ is known as {\em the} hypergeometric function. Many functions of elementary analysis are of this form; examples would include logarithmic and trigonometric functions, Bessel functions, etc. For example, $\ft\left(\frac{1}{2},1;\frac{3}{2};-z^2\right)=z^{-1}\operatorname{\arctan} z$. \citet{michel2008} state that physical applications are ``plethora''. In addition, naturally-occuring combinatorial series frequently have a sum expressible in terms of hypergeometric functions and an example from the author's work in the field game theory is given below. \subsection{Equivalent forms} The hypergeometric function's series representation, namely \begin{equation}\label{series}\tag{15.1.1} \ft\left(a,b;c;z\right)=\sum_{k=0}^\infty\frac{\fall{a}{k}\fall{b}{k}}{\fall{c}{k}k!}z^k,\qquad \fall{a}{k}=\Gamma(a+k)/\Gamma(a) \end{equation} \noindent has unit radius of convergence by the ratio test but the integral form \begin{equation}\label{integral}\tag{15.3.1} \ft\left(a,b;c;z\right)= \frac{\Gamma(c)}{\Gamma(b)\Gamma(c-b)}\int_{t=0}^1 t^{b-1}(1-t)^{c-b-1}(1-tz)^{-a}\,dt, \end{equation} \noindent due to Gauss, furnishes analytic continuation; it is usual to follow Riemann and define a cut along the positive real axis from~$1$ to~$\infty$ and specify continuity from below [NB: equations with three-part numbers, as \ref{series} and \ref{integral} above, are named for their reference in~\citet{abramowitz1965}]. This is implemented as \code{f15.3.1()} in the package and exhibits surprisingly accurate evaluation. Gauss also provided a continued fraction form for the hypergeometric function [implemented as~\code{hypergeo_contfrac()} in the package] which has superior convergence rates for parts of the complex plane at the expense of more complicated convergence properties~\citep{cuyt2008}. \section{The hypergeo package} The \pkg{hypergeo} package provides some functionality for the hypergeometric function; the emphasis is on fast vectorized \proglang{R}-centric code, complex~$z$ and moderate real values for the auxiliary parameters~$a,b,c$. The package is released under GPL-2. Observing the slow convergence of the series representation~\ref{series}, the complex behaviour of the continued fraction representation, and the heavy computational expense of the integral representation~\ref{integral}, it is clear that non-trivial numerical techniques are required for a production package. The package implements a generalization of the method of~\citet{forrey1997} to the complex case. It utilizes the observation that the ratio of successive terms approaches~$z$, and thus the strategy adopted is to seek a transformation which reduces the modulus of~$z$ to a minimum. \citeauthor{abramowitz1965} give the following transformations: \newcommand{\four}[4]{\frac{\Gamma\left(#1\right)\Gamma\left(#2\right)}{\Gamma\left(#3\right)\Gamma\left(#4\right)}} \begin{align} \ft\left(a,b;c;z\right) &= \left(1-z\right)^{-a}\ft\left(a,c-b;c;\frac{z}{z-1}\right)\tag{15.3.4}\label{15.3.4}\\ &= \left(1-z\right)^{-b}\ft\left(a,c-a;c;\frac{z}{z-1}\right)\tag{15.3.5}\label{15.3.5}\\ &= \four{c}{c-a-b}{c-a}{c-b}\ft\left(a,b;a+b-c+1;1-z\right)\nonumber\\ &{}\qquad+ (1-z)^{c-a-b}\four{c}{a+b-c}{a}{b}\ft\left(c-a,c-b;c-a-b+1;1-z\right)\label{15.3.6}\tag{15.3.6}\\ &= \four{c}{b-a}{b}{c-a}\left(-z\right)^{-a}\ft\left(a,1-c+a;1-b+a;\frac{1}{z}\right)\nonumber\\ &{}\qquad+\four{c}{a-b}{a}{c-b}\left(-z\right)^{-b}\ft\left(b,1-c+b;1-a+b;\frac{1}{z}\right)\label{15.3.7}\tag{15.3.7}\\ &= (1-z)^{-a}\four{c}{b-a}{b}{c-a}\ft\left(a,c-b;a-b+1;\frac{1}{1-z}\right)\nonumber\\ &{}\qquad+(1-z)^{-b}\four{c}{a-b}{a}{c-b}\ft\left(b,c-a;b-a+1;\frac{1}{1-z}\right)\label{15.3.8}\tag{15.3.8}\\ &=\four{c}{c-a-b}{c-a}{c-b}z^{-a}\ft\left(a,a-c+1;a+b-c+1;1-\frac{1}{z}\right)\nonumber\\ &{}\qquad+\four{c}{a+b-c}{a}{b}(1-z)^{c-a-b}z^{a-c}\ft\left(c-a,1-a;c-a-b+1;1-\frac{1}{z}\right)\label{15.3.9}\tag{15.3.9}. \end{align} Observing that the set~$\left\{z,\frac{z}{z-1},1-z,\frac{1}{z},\frac{1}{1-z},1-\frac{1}{z}\right\}$ forms a group under functional composition\footnote{It is the anharmonic subgroup of the M\"{o}bius transformations, generated by~$z\longrightarrow 1/z$ and~$z\longrightarrow 1-z$. It is isomorphic to~$S_3$, the symmetric group on~3 elements.} we may apply each of the transformations to the primary argument~$z$ and choose the one of smallest absolute value to evaluate. Given the appropriate transformation, the right hand side is evaluated using direct summation. If~$\left|z\right|<1$, the series is convergent by the ratio test, but may require a large number of terms to achieve acceptable numerical precision. Summation is dispatched to \code{genhypergeo_series()} which evaluates the generalized hypergeometric function~\ref{genhypergeo_definition}; the \proglang{R} implementation uses multiplication by repeatedly incremented upper and lower indices~$a_i,b_i$. %\begin{algorithmic}\label{alt} % \State $\mathit{fac}\gets 1$ % \State $\mathit{temp}\gets\mathit{fac}$ % \State $\mathit{series}\gets\mathit{ZXCVXCVDFADF}$ % \While {$\mathit{series}\neq\mathit{temp}$} % \State $\mathit{fac}\gets % \mathit{fac}\times\frac{a_1\times\cdots\times a_p}{b_1\times\cdots\times b_q}\times z$ % \State $a_1\gets a_1+1,\ldots, b_q\gets b_q+1$ % \State $temp\gets \mathit{series}$ % \State $\mathit{series}\gets \mathit{series}+\mathit{fac}$ % \EndWhile %\end{algorithmic} %(lower indices~$b_i$ are appended with a ``$+1$''). Thus for example if $(1-z)^{-1}$ is small in absolute value we would use function \code{f13.3.8()}: \begin{Schunk} \begin{Sinput} > require("hypergeo") > f15.3.8 \end{Sinput} \begin{Soutput} function(A,B,C,z,tol=0,maxiter=2000){ jj <- i15.3.8(A,B,C) jj[1]*(1-z)^(-A)*genhypergeo(U=c(A,C-B),L=A-B+1,z=1/(1-z),tol=tol,maxiter=maxiter) + jj[2]*(1-z)^(-B)*genhypergeo(U=c(B,C-A),L=B-A+1,z=1/(1-z),tol=tol,maxiter=maxiter) } \end{Soutput} \end{Schunk} \noindent (slightly edited in the interests of visual clarity). This is a typical internal function of the package and like all similar functions is named for its equation number in~\cite{abramowitz1965}. Note the helper function \code{i15.3.9()}, which calculates the Gamma coefficients of the two hypergeometric terms in the identity. This structure allows transparent checking of the code. \subsection{Special cases} The methods detailed above are not applicable for all values of the parameters~$a,b,c$. If, for example, $c=a+b\pm m$, $m\in\mathbb{N}$ (a not uncommon case), then equation~\ref{15.3.6} is not useful because each term has a pole; and it is numerically difficult to approach the limit. In this case the package dispatches to \code{hypergeo_cover1()} which uses~\ref{15.3.4} through~\ref{15.3.9} but with~\ref{15.3.6} replaced with suitable limiting forms such as \begin{equation}\tag{15.3.11}\label{15.3.11} \ft\left(a,b;a+b+m;z\right)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \sum_{n=0}^\infty\frac{(a)_n(b)_n}{(n!)^2}\left[ 2\psi(n+1)-\psi(a+n)-\psi(b+n)-\log(1-z)\right](1-z)^n,\qquad\pi<\left|\operatorname{\arg}(1-z)\right|<\pi,\left|1-z\right|<1 \end{equation} (\citeauthor{abramowitz1965} give a similar expression for negative~$m$). This equation is comparable to~\ref{15.3.6} in terms of computational complexity but requires evaluation of the digamma function~$\psi$. Equation~\ref{15.3.11} is evaluated in the package using an algorithm similar to that for \code{genhypergeo_series()} but includes a runtime option which specifies whether to evaluate~$\psi\left(\cdot\right)$ \emph{ab initio} each time it is needed, or to use the recurrence relation~$\psi\left(z+1\right)=\psi\left(z\right)+1/z$ at each iteration after the first. These two options appear to be comparable in terms of both numerical accuracy and speed of execution, but further work would be needed to specify which is preferable in this context. A similar methodology is used for the case~$b=a\pm m$, $m=0,1,2,\ldots$ in which case the package dispatches to \code{hypergeo_cover2()}. However, the case~$c-a=0,1,2,\ldots$ is not covered by~\cite{abramowitz1965} and the package dispatches to~\code{hypergeo_cover3()} which uses formulae taken from the Wolfram functions site~\citep{wolfram2014}. For example \code{w07.23.06.0026.01()} gives a straightforwardly implementable numerical expression for~$\Fmn{2}{1}$ as a sum of two {\em finite} series and a generalized hypergeometric function~$\Fmn{3}{2}$ with primary argument~$z^{-1}$. In all these cases, the limiting behaviour is problematic. For example, if~$a+b-c$ is close to, but not exactly equal to, an integer then equation~\ref{15.3.11} is not applicable. The analytic value of the hypergeometric function in these circumstances is typically of moderate modulus, but both terms of equation~\ref{15.3.6} have large amplitude and numerics are susceptible to cancellation errors. \subsection{Critical points} All the above methods fail when~$z=\frac{1}{2}\pm\frac{i\sqrt{3}}{2}$, because none of the transformations~\ref{15.3.6}-\ref{15.3.9} change the modulus of~$z$ from 1. The function is convergent at these points but numerical evaluation is difficult. This issue does not arise in the real case considered by~\citet{forrey1997}. These points were considered by \cite{buhring1987} who presented a computational method for these values; however, his method is not suitable for finite-precision arithmetic (a brief discussion is presented at \code{?buhring}) and the package employs either an iterative scheme due to Gosper~\citep{mpmath}, or the residue theorem if~$z$ is close to either of these points. \section{Package testing suite} The package comes with an extensive test suite in the \code{tests/} directory. The tests fall into two main categories, firstly comparison with either \proglang{Maple} or \proglang{Mathematica} output (although~\cite{becken2000} caution that \proglang{Mathematica} routines cannot be used as reference values); and secondly, verification of identities which appear in AMS-55 as named equations. \section{The package in use} The \pkg{hypergeo} package offers direct numerical functionality to the \proglang{R} user on the command line. One example from the author's current work is in game theory. Consider a game in which a player is given~$n$ counters each of which she must allocate into one of two boxes, $A$ or $B$. At times $t = 1,2,3\ldots$ a box is identified at random and, if it is not empty, a counter removed from it; box~$A$ is chosen with probability~$p$ and box~$B$ with probability~$1-p$. The object of the game is to remove all counters as quickly as possible. If the player places~$a$ counters in box~$A$ and~$b$ in~$B$, then the probability mass function of removing the final counter at time~$t=a+b+r$ is <>= require("hypergeo") require("elliptic") @ \begin{equation} p^a(1-p)^b\left[ {a+b+r-1 \choose a-1, b+r}(1-p)^r+ {a+b+r-1 \choose a+r, b-1}p^r \right],\qquad r=0,1,2,\ldots. \end{equation} The two terms correspond to the final counter being removed from box~$A$ or~$B$ respectively. This PMF has expectation \begin{align} p^a(1-p)^b\left[ p {a+b\choose a+1,b-1}\,\ft\left(a+b+1,2;a+2;p\right)+\right.\nonumber\\ \left. (1-p){a+b\choose a-1,b+1}\,\ft\left(a+b+1,2;b+2;1-p\right) \right]\label{expectation} \end{align} with \proglang{R} idiom: <>= expected <- function(a,b,p){ Re( choose(a+b,b) * p^a * (1-p)^b * ( p *b/(1+a) * hypergeo(a+b+1,2,a+2, p) + (1-p)*a/(1+b) * hypergeo(a+b+1,2,b+2,1-p) )) } @ Thus if~$p=0.8$ and given~$n=10$ counters we might wonder whether it is preferable to allocate them~$(8,2)$ or~$(9,1)$: <>= c(expected(8,2,0.8),expected(9,1,0.8)) @ showing that the latter allocation is preferable in expectation. The package is designed for use with \proglang{R} and Figure~\ref{complexhypergeometricplot} shows the package being used to visualize~$\ft\left(2,\frac{1}{2};\frac{2}{3};z\right)$ over a region of the complex plane. %% Thanks to Dario Strbenac for the following structure <>= png("hypergeometric_plot.png",width=800,height=800) @ <>= x <- seq(from=0,to=2,len=200) y <- seq(from=-1,to=1,len=200) z <- outer(x,1i*y,"+") hz <- hypergeo(2,1/2,2/3,z) par(pty='s') view(x,y,hz,levels=seq(from=-4,to=4),xlab='Real',ylab='Imag') @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{hypergeometric_plot.png} \caption{View of the\label{complexhypergeometricplot} function~$\ft\left(2,\frac{1}{2};\frac{2}{3};z\right)$ evaluated over a part of the complex plane using the \pkg{hypergeo} package. Function visualization following \cite{thaller1998} and the \pkg{elliptic} package~\citep{hankin2006}; hue corresponds to argument and saturation to modulus. Solid contour lines correspond to real function values and dotted to imaginary function values. Note the cut line along the real axis starting at~$\left(1,0\right)$, made visible by an abrupt change in hue} \end{center} \end{figure} \subsection{Conclusions and further work} Evaluation of the hypergeometric function is hard, as evidenced by the extensive literature concerning its numerical evaluation~\citep{becken2000,michel2008,forrey1997,buhring1987}. The \pkg{hypergeo} package is presented as a partial implementation, providing reasonably accurate evaluation over a large portion of the complex plane and covering moderate real values of the auxiliary parameters~$a,b,c$. Difficulties arise when~$b-a$ or~$c-b-a$ become close to, but not exactly, integers because the terms in equations~\ref{15.3.6} through~\ref{15.3.9} become large and cancellation errors become important. Further work might include extension to complex auxiliary parameters but \citeauthor{michel2008} caution that this is not straightforward. \bibliography{hypergeometric} \end{document} hypergeo/vignettes/hypergeometric.bib0000644000176200001440000000476012701311441017611 0ustar liggesusers@Book{abramowitz1965, author = {M. Abramowitz and I. A. Stegun}, title = {Handbook of Mathematical Functions}, publisher = {New York: Dover}, year = {1965} } @Article{buhring1987, author = {W. Buhring}, title = {An analytic continuation of the hypergeometric series}, journal = {Siam J. Math. Anal.}, year = {1987}, volume = {18}, number = {3}, pages = {884-889} } @Article{thaller1998, author = {B. Thaller}, title = {Visualization of Complex Functions}, journal = {The \proglang{Mathematica} Journal}, year = {1998}, volume = {7}, number = {2}, pages = {163--180}} @Article{forrey1997, author = {R. C. Forrey}, title = {Computing the hypergeometric function}, journal = {Journal of computational physics}, year = {1997}, volume = {137}, pages = {79--100} } @Article{michel2008, author = {N. Michel and M. V. Stoitsov}, title = {Fast computation of the {G}auss hypergeometric function with all its parameters complex with application to the {P}\"{o}schl-{T}eller-{G}inocchio potential wave functions}, journal = {Computer Physics Communictions}, year = {2008}, volume = {178}, pages = {535--551} } @Article{becken2000, author = {W. Becken and P. Schmelcher}, title = {The analytic continuation of the {G}aussian hypergeometric function $\ft\left(a,b;c;z\right)$ for arbitrary parameters}, journal = {Journal of Computational and Applied Mathematics}, year = {2000}, volume = {126}, pages = {449--478} } @manual{mpmath, author = {Fredrik Johansson and others}, title = {\proglang{mpmath}: A \proglang{Python} library for arbitrary-precision floating-point arithmetic (version 0.14)}, note = {\url{http://code.google.com/p/mpmath/}}, month = {February}, year = {2010} } @Article{hankin2006, title = {Introducing \pkg{elliptic}, an \proglang{R} package for elliptic and modular functions}, author = {Robin K. S. Hankin}, journal = {Journal of Statistical Software}, year = {2006}, month = {February}, volume = {15}, issue = {7} } @Book{cuyt2008, author = {A. Cuyt and others}, title = {Handbook of continued fractions for special functions}, publisher = {Springer}, year = {2008} } @Misc{wolfram2014, author = {S. Wolfram}, title = {The Hypergeometric function}, year = {2014}, note = {File \code{Hypergeometric2F1.pdf}, downloaded from \url{http:/functions.wolfram.com/HypergeometricFunctions/}} } hypergeo/NAMESPACE0000644000176200001440000000022012701311441013277 0ustar liggesusersexportPattern("^[^\\.]") importFrom(elliptic, view, integrate.segments, myintegrate, residue) importFrom(contfrac, GCF) importFrom(deSolve,ode) hypergeo/inst/0000755000176200001440000000000012701312442013045 5ustar liggesusershypergeo/inst/doc/0000755000176200001440000000000014770237325013630 5ustar liggesusershypergeo/inst/doc/hypergeometric.pdf0000644000176200001440000045177414770237326017374 0ustar liggesusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 4630 /Filter /FlateDecode /N 76 /First 638 >> stream xœå\YsÛ8¶~¿¿o7S·";8Õ•ª8‰ÇvâØq’î©<È2es"KŽ$w’þõó€¤(.½tÏÔÜ(4‰…ÀÁÙqP°˜Iƹcй8fš¹D2Ãx¬,³ŒËØ2ǸV†%Œ'&F Âq¼Ã„æxW0a-ò%“ÚâMŵÇ5îõ SÊ Æ-SVã齄ia èÔ(Åg&6hL0$&†IP®˜I$Ê5³° ì²(|V9&s\i&æ”ÔLÆÌ9t&9KbÔ—‚% ýHÉkP®0¨P—Ç`J®Ã$Ìcw>€PbÐ\!_Å„$ƒŒHˆƒÃP„2’)ÂI8† $ȨDËÒ›À—Î#hY¡`´§†êÄx Ä®T|’tlÓ’ŠÐ²˜BËÿ€2<8àÐr -@ÄÐ87T™ˆeFgˆ ½Ü{ `s“Ä@1Z¶1Þf¸%´UÜJ ¬£e«N4έåD<$ ‘ÛÅÈ·hØIˆ°‚hƒ–QÑw aѲÓ.aÄ΂^-'±ÿóË/,:J—ËárȬ/ž°èÝM:}>Zf³)ûøÑçífKöE·ËI6M`Õ<¼Lf)‹ÎiYê³àh_çÃÏ”¿@“Ù%{öÌ÷úüvy5›³_ÆéxÇZıÁÝÐ=Á•Æ1cuŽ{þ L”Ï ¢bx¨g΋wž¡—y:$È_—){òòï":–Áµ”¿ÅñÿâÿßòzèÿÉáðCú™}Ï–Wì pÎçéÅéÏï³ùÅ¢€ú³èâo£q'8mxöp_äù*/#xd€Õ€­Îa•¡Ž/‡]¦Óå‚´J–£ô"îÌ~ '’1èiXÅà/ôú/²u’.f·ó¤Ö^ýXî. ÇлAnÑ>Ôo.¬óÙè4]¢åèøå.àIT?{V­Ðét¶¤ñÊX†“%‘$apqœßy~ù]æw•ßu~7ùÝH©`À<&`Q*(àqòä éµ-ëФ (0& À„ñ›¤Éy&´bB+Ƶ À>~¼æ>ÃÝ.RÿvôfÿíîÞ«ÿ;<:™]§\<Ý™M.€Ýéhv‘M/Éþäfa¾X¾¸ÎÉêûž_¦A`¡[s‡yt/½Kß1uÏ (B¯Ÿ²‹å¡;‘λû'¹ ˜¢«W³FñsÚÿõ¹Ö·O~ƒ!S<ñ)êyÓf=ÜC~h²æ¨¥îä‡Á!h(àÐAz¢‘ùZy)å+pª(Cž+ßúR2ãbD4‡r"czó:Í.¯Š$ÐKT~=^D¯¢½èu´Do£ãè$:>DÃè<E£Ùd6.¢4GãqÁ6ÑeteÑ×h]GÓhͦitÁf³‹è[4Ñ2Z^ÍÓ4Z~ŸE·ÑïÑ÷è'”/‘š z* ýÑîdxI&ßÓr§à]_–`0ç—P¸›MRr¬*òùvxvrÝ>‡lô|z UÁe‹xÐ3 #7+:]¦×É㫲S…ìýùôíþûEG/ÓëŒÇOOÒËÛ ØtÅå`Èéóé"[e¬ø °Þ ç÷fx"?y«$þÄH GØ ŽÈG=A92©0!rêŒbÀ<F É’QF`‚@ù h~2/;‰ ¾…ªÞ±ñ ºFÕ¤NÕÍÈîI\`;m£Ïùø hƒÐ¯Ÿ¼9Ý/9ªÈ¶°”%i›šŒËe1ïèIYèͪŒæftÅ%•+tu2§¹“râ2%aè‚ÒBÊç n¨çy¦Ç%ò7C¡møuZL0!´0d Ò€æÖi_&añ4&%ô2ÁœÏ¿Ci¯L-$’ ÷-èÐ"<—7nhë»[ ª`rˆâ.á4T…§E˜ÐBùE9åËDàR)E@wº‚°ýüi¯„köD¯Û]³';°(/aSvaUö†××Co[ÞÀºFG°0ïJs}Œ>E¿F¿yks>޾¦pÏÇËâyN=”fh4£ÆÈùž£tz1\\Eé·Ûá$JŒ&Ãko¦‚¥¢ÿ¿§+‹…ÉÚU:…úúgiº¦˜{’ýºÈÒyºÈ…%#_Ƀ៹y»™Ü.`ã¾ÝΖéÅùÄ×*¡¢O…G²„ ¨¯þ"ýý/²-ÖñGô3ú#ú#ÏÖ4*¡¶ÍL>Uq(…;x ¬ëÔÜìèÔn½Ö×Xj¾ÙXž>gãád‘µVŽuÓY|õòíû*05gq“U-f4Ÿ¬Ì(ï«lµÕ寥BÎúÏyïAòkgà#jÎ7ÖSÞV‡k1ÓnÝL»uù ž[/ÄÕ[°Êo¼4à\rš‰ÕŒ8ʰ¾Ç¿ñ:¿u¸/³ µÝzË&c}\>‡­Ð¿“}9€wùæ+ÀððéóÞ‹7ŸÐïÑpy”‚Ö³?.W+ >k½‰¸Á}]t*ÆEN•Ý `á}Ðå]7';ë=ôÇc]‚fÓ‚®ŸÁ„ƒ®:Û©5—@­ydËS2”;ÙeHxëX¤r“äåšÙ÷Ùt™^·“‹lq3þ\™fz»š¨¤ÎËTÙÏZªšôu·ð+(\ôRf,Ókâ!tO\©Kç—jòQ ®ùØÎ§=EÀáî9‰=ÜûüöãIÞçéÏëóÙdáÚÃÖ£9Á¢!¢¯b}¹í!¼nþí~(Ü¿»ÒZÉ&­ë>>y½wV7Zòµ«EnM9ù>’æôy;ƒ„ ­Ÿ‹Òls5W¬Ïƒ‹¾ÉaG–5¦] ç§d—N’õöضûìpƒ¬r¼³ûq÷Ý›¶»k…+ÙDè&›4üõþ*Á®ÓÏèÍS´ö_£˜Ö*2bY›&F‘¸­G-¦è¢ – ø¯Y+¥÷EÓ|ÏÚ›EGùÒT[W¦iŸ¶vŽ£÷åÂ@‹ùMÒÅÂÇSÊE€›,ºYda-`B1šš–ël@éùR§\[\£ðLJ®ÝÂ=½ç›¶¯){qøáÍÎÙºílç×r#D·%ã:»Æ}§—¶ Àæ,f·­€Ýï§"¸ýFãÝ?ÚÝøó|80͸Fͺ/¸’ÚHçiˆáù‚^,™GÚ¥†l,Im㾩¶„Û*K'¯ßŠût2œ.ïúPÍ™¯lxø½§Ä=x±X$¨òr‘^- t¿_]ˆ[WâÎ5€¸s }¡ÌÆz}EUW‘ÖRi%•bÜy,.7MK]–K[IM—+˜„RG‘…X×y²± ¶…Cz+I}¯ Ü§Ó“7¿“D̦³»sf‹Ölúýº¯‘§Õò;\q’ö:qž—©êS…o×òšíuCðð1´×Üæ° Ù\ïÙÏFgà÷áb”e£l>º½Æ3­„,¾FÃe¾¾“–«;ùÉÝ}¼s<‘í–uÒ)wz.éܦ ŠøÔå…÷R]¯¹^¤óÅh6O7-݈¤KxU(%ÿ­é——ûdV‘¢.ñé)¶¶+>TqËE)µ³9—o"òÆî…OðÀÛ´3(÷Â>ÿúf9+´HÄÀ&ÖéídBU_@Úh4¢\<ˆcš¹šŠiOi<Ðb#’mWþR‘ÞÃlúµØï¦jl­RA¿é€©Õf¹Õ¦(›/G<ξ0] n3Gòî¹MêÓÉÛ÷ǯï=/n®}Éú„‡êôS…²eõÀ¬¶,E¢TañÒ]20˜®æ2Å~åʘºm²…‚NŒôdoÓÛsÿê·³“Bîç&IÕèFÅ2Fëªÿîj½úf›ÉÙöë®Yo}3,ýưm“Ã×"¥']f¦ÃÆŒF¤4—´«;W͈7 w6å&€`@Z̆·ý­°Ì„kÛ4e ›¹»ï¦©.ajµ«e×ãWgŸÎ 6×jª>÷Ð}§Æ/¬Óß;ë¶@­5òðM:ŽŠu»–kDÜ;1ôÐÝl Z¼û¸³ûæ°è)¹+-Z\ÝÛî¿•M8š[…¿±ßúUüíû“¶Z%ª{GmMq¡÷”¶å]R^ž_ÀCwGs=ËË2Ø­XàÒ¸â<Ç·Ù»÷ÿ¾áæn3àýè¨&—›GóMÃõMWÕÙpЛ·óá–MàeâZfö±.Ò)!½· wº›>ìî­E'Û$²ðWWrhxS»œú‡¶ï$sFçÏ “Å»Z2Y¼ Ù—E}x“²¨M¦ŠúP«ª¨O‡’о¨Žb¥zöv>¬vå½;ŸdßnÓûï,Î Þc‘ ØiävE´mdìwGRŽé¯í,Û¸ÇnÉãÊnÉ"lß8õRnÊi;õ¢Y"Ú¶kØÆÂQ'mz»%ÛÍQeÇä½ÕWìt¶]…ÖÃé8‡$˜MJãÎÌÀ9÷%ñ`ؤ"©À–¨òük`Û •‰hÌ# Ø`³â?6è°q›æÉ ñ›Jþ Ø0ƒ%´[Ë ­òß‚€EâT)“+hœƒ½ ‰Jؤ$´{þ¯M»‰»DÃL :ŠPÀæÄ ÉÅöß›SúG› ¡–Ú&NUBs~tóNYÞ2äÄ%´N Äán€ÐØoùüs¡“Žƒ©ºœGßEghÅÑL4,(Ü@ÙA÷p-"’„&ö+ìr è 2œL_Ì=÷K3§,:;Ù/+„ø¬'WËåÍߣ¾K:¸œÍ`2£r¸¾¹Æt ú›_¡é"oZ4îàw‚ á#;ø[*–ð•ážq¸ÊêqáßN}æbð}6χ×ø×ô•‘ËtvMK££Ý¢Î=ÆâùÁÑ÷c 49í€Á½ôù7HlOþ„Óù¥bÍ ¬èŠGA_ÊŸ+~³ F,ž–”¾rÕŸ¾·¯\ñq78±/³ñ8§SZÝû‡ÿôÀxœ­¾°QV¼Ok«ññŠGjÀù©±ŸË¯æË׺?”é»T1²õsŒ4§ÉOX9€/\Y‰:¬rÒñ‘`£•³›ÌûÑ7‹Œ¾š‘‡Y$þy¨®mcÀM¹KÌ/P;ÊX±Ç,lÕ;Ç”çq@!rT´°õC+lý| «a 8«ž‡©½tí° kœ¶¡o4­Ÿ}apïÇcìPý`}…‹­ôaëG}›`k4ñgOòíý Sêd¾endstream endobj 78 0 obj << /Subtype /XML /Type /Metadata /Length 1497 >> stream GPL Ghostscript 10.02.1 Hypergeometric functions, numerical evaluation, complex plane, R, residue theorem 2025-03-24T11:15:33Z 2025-03-24T11:15:33Z LaTeX with hyperref The hypergeo packageRobin K. S. Hankin endstream endobj 79 0 obj << /Type /ObjStm /Length 2969 /Filter /FlateDecode /N 75 /First 660 >> stream xœÅZ[SÉ}ϯèÇÝÚr߯)—+6Ž×Þ56'ëd‹!F XHD;¿>çëéÑ}XŠsëé>ý]Ï×ÓQ2É¢b.²¨™Ö‰EÃŒ÷,ZÜÓ,:“eÑ3%a10¥"ÞˆLY©ðŒ)‡6I2ÐMRL%¼Ð—A£d˜61t¡ƒ,9¦“ÂsÏŒ2¸Ìäv‘g-K ƒãŸ’’™èhTÅ0º•šYåá`Öhºc™µÚ8f=Ð)é™ „Ef“¥G‘9zUÉ„GJ2§K¡S ‰6J3çÍÌ`ΊaòÉcŽÊ1¯´Å‰g^CJæ­¥~"ó.Q›Ä| ¨èÝ'‚ pAzÌBk´FÏÚ°` Yê+8C ž`hÏB´Ô&°(1'¥¡ å1VÖÆQ·s7¹¥· TãÝR"&§ ´”H>êÈ35¤‡ümñª2´#]A V“!{hAY¨tèšnK (K"µ„ ªp!^eIÐeñ&‚G-p“Þ%y)(gôÄ‘°´§3E2&øŽ$éè ¨s$æÝŸž?gâ`t3œ2ËÄ›þx2% •옉÷ºHõŧo×o¦ƒþ°š°/Þ|¦˜x]¡ñïÌÕ­?ÿó_ÔIŽKL… ov:@/P.>T_§äùâ¨3®Ðq”eðþtP±ç½ª×ƒÒº¬¤ ?sÜótîp4õ}ŸÊýêEµôK7\{9Ø ¬6 Œ‚*a€€=®}?7LÒû@xŽ£y±"3ÝIÛÄáýk2s‹2ó‹2‹ev4®þØ<GŠ5æŒçæ#ë{s(sêÕmò3U ØŸ•óÜf6¯—Ãáh:Á|ÈÇiTrñúhËÑ•£/ÇPޱk[#ªªKºô§Kºô§Kºô§Kºîï”d>œB8ÎbχÕy¿ójôxi4K¥P`‡ÅÏ ¡IW“Ñ͸ ç™þõëôç“igZå`‘¼Á9bÙº'éV½~ñ“žN!¨ÆŽ:ÕŠaF»l™)pcãÜ j]ûe]›Mê5sUfu¥¹™fu›ú:˜¢n³ê#+PÉ8Ϻ“˜EKs›<ÆkJ ni–ád¨½ò¬qk³ÁªL±S¬À+0Å L±S¬À+0Ū¬\·†ÆYv±†ZõvÕ‡%y{m¸QrUõi‹›o´ƒV—-‚·þ”SÕmòs³êì’«¯…ý•8­8ÒÕj Kr!†5çï¶ÚCR±ó2ŸÜÖ5ö¾jëËÀƒ1\ê ¦žZ¬»N2Dwa 4F׺[ÕɪÉ¡ÄÛ°09ºÎ ÃB9›Õ™TÙæÄá§ã¿þí§÷‡Ç£«ÎPÉgï¦A¿‹5ìŽÎûËœçëøD 8¸ìŒì:›,æß÷¯§£1È™^rмâäælš-–ìV5æ[ü[ÿ|zI^é@N\V×úŸS¢_}eÀz$q;"ƒJÕžVŽ¥M~>ÿ – ;ä|¾çÌìž«)ñéT¿ãC‚5olú£-( ýšs·¹®1ЕÏŒÈMyŽ3ÌÙˆfeœ©ßóžÄlOgqkÒ%Ã~á.ë·Uÿârš 1…ˆÄKq Þˆ·âñ«8GâD|q&º¢;Œ†â\T¢'z}шBޏ—âòÛõe5}ñE ĕБ +q-®ÉVUoZŸiDq]û£s117âñ_ñMü¯~Ì.A>Ó„òÍ s1a¾˜Ç«:âQý¶«ólNëçoúƒ l²!tëCçªÚb”õñåðô ”@ö'i¶%FN'N¦ÕÕ?2‰]°¶CŸ‹-xsô±&¢œQÌîÀ*J¤Öį›s¢ûÍ91äæ,®aÝ YËÄ[æÇK=¬ð³Ê{VD±è¥kˆ¶t-Lg¿ÙÆZÅimÛ[˜1(^ÓQsmŸ6I—˜îå–¢€B…!{‹ôã÷íýÛ¡) lÄ l1–Ķ;¶Õn6&¤ñÖDÈ4Ü>HØ„¹À¨s\£÷΃„-ÛÐIPÔ@ß§h„EäT™'"Û@âš7¢3@§T«C Ö« 5:‡|ˆ úhè¶kV:DtšEí¡LíNÁlÍNèvwW‡€,QD—¨Zå~7vø‚ÓÏ`l@•?:Éé#ˆEP±æA‹¸Å%{ ¡XÊÒÚÄ}øk)1=JL¤]LFCf$":PdÓ“ªÕ ¤ÑrQkKì,$Sk“â“b#g•‹Ø’ç´ù8Ø4¸Ò´éZJÐ*[cQ¨9“AI‚rxßÉëdÉq›KË™V°:Ч‘=€'è”8­0)x‚Õ´h`9È.™ëA4¾'ˆø”óªòùTšr^¥*¹§Î à! p,Y.m„+(¸-±&Û-YÆO߈ ¸†eÞ Ü-ÅR[ôhE‘8¦]@¥bÛsñé4¨Hü!EwŠ>µÐ*ľ£Þ-È`vSlD£4òí#asà²xR¼“È®>¨X/)Â*yØ7wºCÁ|hFEž¿ò<4C Í·rc¸1—6:¯•ª\DP…¨ö¾"¹­ÛJ¸è ›qœ>O< 4'¡£ö*štˆ<. º&›ç(î¶"¹3¶RX;¶hW;2‡£…ùÝ’ìÎÐT›gØ .h÷~Ølm—±‚efé ä|'-;hlÙAcË[vÐØzœÓ¥2…V=о)[DUožqEX«›gÞ]u.ªƒÙ&ñùãÙ¿Ie´¾PÏlÓ®š» Úz9³e@cèc\&̺í«£óŽî,m§%#F( »tw!ØÖpZ±…:Ñ(02 Êo¦<}æS{¯Ò·c³ôy‰Ö­lô}‰¸ì£`3Þr×þ-BS§-¶ Ñ#^s9&¸¸o•ÞÍž÷û6Ð*sÚ;}l,mTeÃÞ¬UKÈj Sm¡é”uKhrzCèñ»‡žgf;ï±Iïeîà„‰¿¿›I¸;í†õ­®:ýÁtôçËÎðKÈÇ£³þð/t“wGW?æ^Û D­k•1-M鸤c–>i«Ìf¥¹ãBê’ïõmeËg”×ý^¯‚ŒI¨¿çd½>~Ùpk ³¶èðÿ/ÖÂendstream endobj 155 0 obj << /Filter /FlateDecode /Length 4298 >> stream xœ½[K“Û¸Þ½Îop¥TÉ!Tb1Ä𖛪dw³yízR•*;ÎxYÎ ¯ö~”Ó¬z½¼ncªûtü[Ñàúª‚%Œ`œW»ë«íæêä-ÿuþ§3mjí„Y¬€~Ç,ðöx…©FH)«Û›ËH­'ê®;¼¦'¢áðL8JÔJ)­özÉ-P¥mu4qS;¥‘$ØC(©„E¢ü£¶ÀÚ6.šIvÌÆ5ß¶—KäÎ)V½¡¹Š5J¨ª½¾J¦SJqœ¾bˆ`r±’¼ÖJ8¿ÎÏ4×µÖVÛ‹.jÅU?ÖQA¶zÖÿ–Õ÷íM²!¯`JØO‚ÉÔ®kÀý8 °YHkývß.‘}+@¬$baXãªKz«¤¨Þ¬Û›äÃKØVøÄ«ø÷ÊÁZU÷žDʸ rT–YïnßüíЄðÛÛ؈QŸ/­S£™­@[Ãþ)-ÛõöúžXýÃùÙOȯ^\ïÏ€:»¸ÏùîÌ‚Çh°ÍÚˆÅæLq><®ÏžÍ;–Y8°cX.ñ+n\­,_¿µÕýªúöbص—‡åù¿½¸‡i+¦t-´qÛZÚ†yqŸ{fÆU¸ ×èUàĘc\Wm0J®M/ 3ª]ïPÉ(VaÁAw[x`  †ÃAl·ÉŠ—é*Ù’ ‡×ÉŒtPïQ‰TÀˆ¤q¹CX¯w(Æ«+tíÁ‡Ù`ðŠ1Ó»NÊ{Ð;LƒžÔ\™L†(}Ä "Ù¦|º›ªýcRƒR ÑÄÚî†Ånz6ÒE7~ V']…q*yÄJ$2—K¹]gé‚ëm=;ä ™¬WÌ€Û ´ lVÈ#ó¸Î·›ì‘"ìŠ; Vã2Ü&6y3µ ÈŠH¾í!IŒòLF£î…ÎÁ`ô€^‘œ'À—L/Á¦ÍÈzSAî÷Wðä¤r-ŸÖ$Þ„ßz$¡_ÝÁdˆm]öÍ+_3p„@XJ›òw ÙI¦Î¸k‘U0ál»÷K¥0ó¦2 fá0‹N¬ÂÛd‰?ŸÿæùÄ[9&Cȸ_l%KJÌ®È\pUÉ0-4H=“m`S”– Ln+LÓxFILϲs—¾ß®ãi|@ÀÙ‚fK4Ü\1ÛMj댒a]–Gâu{S RAŽáKyUr–“ËÁTsO‚¢¹Ë:ìÃRN̘‹&ð(YåCÆÎËäËêm¢¯ÝUÁn½ƒw{ª´¤Ûî"‹~æÈLºL´ õ†Ob€×(7—!>5|AF%åïó™¹'ïö°Aó‘-o‡HX0ËëB`PÌ``@H5© ×÷qGS² š2[1£y1Òe:¡ÖQÕñÝ.S\´dÿô8„SàxO1DíXÈÚõ=)?»©hàµT†Òi Š¥@…k‹j $Ëcó! ç¾À\C=žá—ÌWÜÌ×OEˆ›Yt6öÑŒðâFr lè½B€Xéˆ.s“ïyƈ–ÁŽ}÷²°…™ÝùˆÆƒÆôŒÊýãzÉr)Ô½¥L¦Å ÖEÒí¤0Ôg²M d!«•BApc)oZ_ŸäâYe8s-¥Ð‡NzQi²’£˜¬÷ÿô ¼1=MàH œšüQ¬rZš™?¬#çr'_dkt&ò¨#Çr ±Š’ °GîQ”ÙQà5¬ùMo4S˜ƒV^ý{&ëïÝ£c %8WÈ„ÎR¸)‘Çe Ñim6( ¨ëí~›¤B$pO•$¿{ŒE.]¬*±Gá¹T=EP¸q¶ÚÄ”l`™–DN£mDH]&¶}ÆÖ®à#Bl‰F ç„^ÈG™´Û‹ŠñbµUîeoö½v/bc4|eŽ®~çñQq˜%LdÂ6˜$2ìd`VÞ¦81,¹–Ç €ÉÅwÐò`ßþåYŠ_”ÂZC9Ú_àZš¼Ø£ÜªÝÙ„²™ ³ÃØi \/ÊqÛŒLæ`G¾è‡C¤L„æˆ%c»n³xÒƒ@-æê€d³]p(MëX†»¼%djnÄbÅUmîËÌ—`W÷ÞÝ…¿ºƒY1Ç¢z¹/6—¤ª¥æ,VôO¨;U}±ž½é9¶:@,jöôXÏõ.æ3Ø¥otS¿Jz?·Iï)í ]¦«%+}À€Šfä1ŽpY×k“Ñ4$zô½SìT NB £œgûjΓՎ¶ïw·9•}YB£ÖÙÚüž˜¾³AYO.›ñ8¨G°T=‚¹ŒÎ«§ú¹ïW%CòIÇ£‡!î² z¨“è¡§ƒ4¥†z,¡Os­!¾lWD Œä5“zÔÌ·ÚÔCw[yýØÉØÊ‹G[yðFÖl3ëåI°ûÆ.„e5à\ß#gXÄ4 ¶'¸ñ­\n}sM5òêå­ï<Û« \tÅE͸Èú}Òr7(ÊH-Jîˆo.úŽ2¸ˆB*d•öÇ'žgkÃ\ïyûÜͺì1ú®I3’‘bajÓXGz¨þî D(xëLCûÀ–о€9¥?Ž…q&gjÜJcxªÞ,Ÿ]òYÖ&šh‰O¿‚̬L|ÔTÅœ¢‘‡ÂV`ž ØPmŒß”ŒÛÖ\!QÉÀçI¥†fê%“ÂÑt‚>æ( èú ˜J·¯ž9g dÙ[ÀG:^ÑÎ…l¶·ª!<3¾Àn|TÜ,󦨺~äs@8i_Þ6B¨<8éÓ)ĬßîÚ<ÚŽ¢çÇô1ûË;…ûÑI õ{_2ê`©ÄX¬ïhË/*5U´‡,®ì6qÊ€ù㉅¯%Ý$*r”4|̆H(TboX­™Ūý¡õÙ\*‚uBøþÑ¿?é=ÿ[B v›DƒËÔ3³‡Üg÷ñlÅ2+|d$îMôí‘AA¤cì®ÑEžz®Ký–ÍØ/‰ev^ÚÔÕ€×ÙižËŒ…Ÿ'¹$°9×ÉW¾“$;+¡×Ýû.5ŸëøišÔè½æ.i7ݺkwQýU–,3…²ÌýÐE¤,ªûR„ƃB *úo…蹸̹y8.k“Åå…õ?!2yåæ‘é)Æ àìýÐÌZdYÔZ« ¿ê«"±ô3ŒøXÚ=3‚êŲ QYs eÙÍ£õ}Uð ]+ ¨/,ÅJ»ÉÚn×t­G®$‹ 0üo¾Ì“Ü\ÝçÎþž²“¾ÐÀNGßið±¥=x°‰Ñô.5ÛnghO‰ïüvërüÆ5£l@ï5½OAaêK]¤ÊâÉHê]:%Ù‚'Γ MÞN¼ïäT_¼m¦Fç•À"Üš©³#EtüwýºÏY‡È³Ée1>1›ý8x[_—–gÆ£©fiðehú„åkÅ­ïÔB1¤ÆeJñ@ûØØ~œÃêÜœè@ÆQy‹UŸ¿ÎRÚšs¼¢¡E•ÎEða^uébԦחá»S B'žòÓ£³µ˜…[¹»š9aú;$OãeþNRƒÝséä™È°;9ƒ&&N¤=jÃðK?jŸ+½ÍëC:wñnþlvã©ÿÒšào%r{÷§&†ÀÔÁǚ䮌‡ô]÷0Òñ»-™Z™pÏ$@í+é§r”suYÅÍ´R EL».‚IÿýK3ŒØ»£Ÿ Èb»Ãa i†K ÷ Ëo©ÖB׸òÍŽÆÈ+0¨y¥U|\ÍKŸQÊŸ q:°Îc´ÇÛw°Ié™SÓ€„BUD¸‰+ùSc?e€›…¨7ïGÜt|Е™ mb›KÁX#¡à++†×¾OK'G{=”N4Ÿ¦°}-d–=>75ØZJ=t±ì´£® õk¼Ê(ú±H¾X–iÇkÂÒ ýH¼àÂg¯mN;?ö°§EDÒWˆˆ_/é,ÛÉôS0ýºˆAåxáþKs" F=(S#Á˜±`žKæíŒdˆß©d> stream xœÍ\[o$7vžg=í¾A'ypuâ®-ÞÉ ü°ÖÆÞMÖ+ AÆFP#ÍȵîV»{.š_ŸsÉ*’Åji¤1èAÝÕ¼žËw.¬_V]ËVþ…ÿW»‹nusñË£§«ðïj·úúòâwßs OZ×9¶º|}á»°•e+£Lë„Z]î.¾¾ü´•.kkZc;ìqy}ñ¢ùóÛu×vJÖ¹f÷j½ÁoNtÊ6‡á*ýÚo×!xëo²vïÖJ¶Î:MÒÑúÓ°¿ }„jö¯ãgÛœ~JÚ½Âç‡k¾íÓŽGüE´ãÍOknÛN2ÝܽYo8lR³¸ ˬ†åÞd_÷q3ÊI 3Ònh4˜çu2‹ŸÑ·ºMž_¥£Å­ˆÖ)Ù¼`~3°Šr3ðEs­¹ùñòßüХ䂵*¿¾)ØÈ~íûæG'Mˈߤ¤¾Zcoauós3_CÎ.át«”Xm$o•®¡ßû}HËIk¤ nÝÁøR4׳½ ý]òÃí¼‘g•ëd†v½Ñ¶ÏDóûqÖô/“6Ǭ÷-‘KYÑœ°½ÍޱÏÏk &m×Éf8ÆÏ¦Òµ¥›²þý)ÛÜuXŸ0ñìñ›‚Õú]1X32|*s§çÏ×)à+œøÉ¾p¢Éx>œ¼p+˜Átži:œÍ¬`L Í輚ÎKw~´²5‚wb•6üÆ7ÌF4-ãÌÚêˆB¬p"רeÅlëXÇ©Ñ?¥"2¥ÒµÆ?Ái™oø 2ÑÂQÚÕåwøà‹¹æ­Ôz¥[Ð[°lì÷“ÍR¼0Ä}o…Aum+p 7 ˜A­JiI­ÎN:àX×l÷k®‘—X\›Ô¹M9„A@vúÃÍÛd˜]ÅzhÚnè1 @8»°!éŠC- À;"—2oµ½óçí€7Ң݌â¸/ÃË™SoKnñ@¨[Æß*–…£ñâ…eáŸÝ²°ÚˆÞ´$­~hꪟK!ô\.Tó²* Lµ­e÷Psrµ°_ÞÝ;ˆíTn“òAÐ( ÆãÚXû³d‡”x.Ì–àžøÌmóþÖ7wR!¢{Í ¡a°ˆ º€×^Õ(ì«å^U=9¡'ˆI!X €Úÿµ­¤eàL/volDæM䜉¶PDú²ùS$•™æ.ÌÀy­…Þ y"FžÍ%8û¶Ë¾ŠÎK¸ öé$ýöîHhD‡Åœv L2m®|‘ºPÜ»ç¼Ìó¡ß¥Šx[ ä”Ë~‘hÌýÛDín Î*òʆ ýü e¾\ûÑè´í|Ó†Sê8ìˆ-èwž‡f•òynÂé0i¸›˜+œÝaE~†£G} ÖUè×9©rü´õtLwfNhŸ€®à¹/› ³!ü7%[€ÂhM~„§lÅ„9øoÖ`6¼û‚0‚}ÂÉYs˜n¥ÔŽ 8¯@ðT±Ã¦ØcC¶è2 £¨ý¦>šDÔ·1Ó8¸¼ø .O¯nŽ=Vï/ºÕ·Ù5(Ò•–à‡€!ØT‡ÈÊñÉö⯋‘’œ!P#â"a­& –°\KŽÈ[´Fó`¥ž×­EjPØóÊŽf°X9€á]$1îšqÀZ°ñd‚«V?a‹ úGœï±´Q’;àÊs'/·wÏjô°mmõGäTà=g*|m#úDÖÙydì„üÉ´„žbd»ßÖ6‚˜ݱ º @ã3®kÏ­RݳÊg•Ó~²¸ºî<ÞaÌx/0Œxæ«®~Øòµƒ–à€Ú–€’‰ìæ#juxD„Qƒ;Ê…C½hþ4„È“vÍ< 6©UÅÐ!­etṡý5é{Ú§ã~ÄØïH©…eêz™U hÒ5”ù420ëZˆ*—ï%#ê¹¶+È‹€I‡A²#Y+ÁØPtŠžƒ-}lÿ`‰7ÔAs‘EOE ËNÓçŽ]baÊÀØÌÒg{ˆ«R¢ùÍ›ÉäV*[ðþÐÿvÍ!@€S´SŒ†Ð  ½^@!C±oûâvDÆÜëL¹®?¥ÀæÐo·wpv )Ùe_RÏò0¤#¢‡f|x1ë±ßyü²ñ2]y†OûÀ‡@£³É1¿šàÅa˜ÅyŒ›ÁâèSz¤òËÛ%y¼#'ðYƒ«j2ùíG'ä÷¿=|¡mj {ú«ÜuÝùçèÓä¨åMe™‚ / @CC+‰„ò‹ xJƒÚÍawœÖM¡.œHž0ú†‚ØÍíw„ˆc˜½“y„{ôuâÉU|Ùy{ª¯ƒKï(0´¡?¯ëðØÃfÿYÚ{Ñ­JÊœö»8‡™G hM–i)Dò Z¢ˆþ&o?‡-÷çBK­Ä7ht™ sc÷ Jâ¦ß;àËy˜ý.4c Ý¥èßÜ„PŒK¢pcÂs5cd`eeîÝnƒ…&ïÛè[ƒ"f¨v8YZPÈy#ë°–¡—ÚÁ øÅÔá¼y Ñ }ÀW·kèë0?pò.ßäÚùö{d`4ÜvÄj–›ÃtFÙ8ùe‘›ñ‰,RìEÙ{ñ¸Oó/~L‹¡îQ ƒdáì/bÂiîY͘Oì™BœÑ¦ GcXŸNìDæ ö¹‡ Н‚I1Ø‹è ó°`Øc}¦…`Xlµ KÐ߃a:Fˆ–ãXvÌ+ú^„”cc¸þþÀØ'ATx8êн‚Ç9À_Cp¼æƒnVÂ#ü`u~ôÿ,`™ˆ`?MèÀŠS‚fó*ñü\9YÙj:YO†¯ªÉ8°=`W̵Às=T°­U'ÍhÝE Dšg£hæÐ½à\¥ /9Í $ÈÔì!«zYmQ ±*BÉ\9ÝÊ•ýÝ N/(Ð{z|rÎë]€Ñ¼l«[­EøkÛcöQL¿¼Qg*äÏçEò[nW÷žRü©ÿµ‘À!ž0 ³_ðeMáËbÊ”"»¼F𙘷i“¶¬Æ=8’ÙŒ|ùk³w•¾e€©‰¸”Îóú„7Ï`}Õ!VAŒ9ÂêaT×ñÈéÿR *ÐÇÐbñLÅ@‰»yŽ1.E‘Ã!JY‘•«dõªÙX[ZÆH˜ Šl}Ä­c‹4"»ïóÈÐ.ÛÛm,³³R‚øü1ɾË[UBÄYez°§P5EÛŒf7¡²ÁÉ)PG5 ²™ê»÷Ça,!“jª¦E9f?V#ˆ¦ÿàk˜5áëY¨›)&±^?j¬;KÈ3çºÇæœþ@$ŧ2ÄY‡¯›kåDQ ±ß.õ.ì‡ñó¡*C…Ý™Xöuà0Åç…¿o–s+CÒ*¸¿^Ò¬‡l€sõøÅ î6›Qá¢ì¤™Ô§Ÿ)han^°{%úÿ>u¾ýÎÛ¡dÄó#Ⱦ¯‚.k–?ƒËj29½™'IJÞüô2à@mÓ |–Š€Ê@{–ËœVOW`uÀr9­XÿˆY2ºm£cÚ*©s¤ûfú †3mÕL¼=3»žc%Õ‘u²*ºR×ÿµpÕA ¡oÔ:òÂ,Fƒ% Jœ¿Œ•ó׬”ÁGØ’ˆ¢l!Ëi~ø)11CzKj8%Á·cV§åÓ†ãà•)·F±æf‹¶w°Í©š.Re%žÎyáÄi ™Ùþwk…I¼è3Ü%ÔôiWy’fÁ´7¥¸3Fa’~{܇/]NðC(™Æ»ˆCÆ»gÐÙøbê8hY°ˆZË3®Ã•ÈY?¯Eõ µœçüŽ?„ç•ûø|”Jâ××t’Ñ…ºÌl,è´@© ô“]‰^TE84ÝÖ‚(Ü©¢¢£‡“£HQèÖÚ1þÓݺ6ù¿WûÛÓk8%ѦK6Ó=mão Ì(Mµ.z&Ú”ÀÉ=ËNrÐ ?†ŒÅ‹”Aëym>oóS˜ ܬֿž»âšQ,Ìת8Ù8„ºˆ´ yïá¡L±€.7¶Ý´£‚ O?ÅÕZ7C‹’:Þð5é±Oºøz- §å-¡Ò‹’ƒ¯º,¯z“´ÚfÂþ!ôayIÁ6³ñq`#©nNväúäEùö‡p8Bb—UúÄÞXÿ:Ì t³Û²ÃRU:C»³Åw3܇#ÜŸ9T¨%@iÞÃHŠøÝ»Bá¥#KÎ< CXIȽ= ÅHL +€MyÈño©Ìܪ÷d°šEû†›9ŠlôÛ™Išß aÂM]ŸZðÉ:NuܘVȃ޺ Z ZÈVHͽÖêPׯÀK…mÈ $<–#1ÀY¯B¡CÝ"ó ÜùP8¸žŒÊA2¸7Ì¡=†,š7 Ô°C'MósÚ\• š[¼ŽÌQ « ,K”FäÆàeÊu ÙÏïÁ+#¹_„8M;&@«á%| ØKÊ ûú@g#^ðFq¦ç¤ð5™d¦4ä§ÕÉXfÐÎjÊ@RS)3÷MŠK¨…$رÏb)¡Ê P‘ŽA ` ©ð ß Âk¹%KyÈRˆ@<8ˆA/1™í<äQ àîÓKoô¯R²-™ªäšL=èFû6ËΡÁ5{w†sæX³Š¬ru>gÈÔÔ}@ÉÎû€´`ð2§Ã¬À:l£X3`†‚ͬÓx–Ém;Þ …_Ò_ŒÈJ©%*Þó’}û5¥š‡!À42Z¡þ<Þa 8K%©Fí(ŠŸ9×@|r5«v#­?„.–àë"íO‘¼ùe‚Œ?6€ÑÞ þ$8Ù)N]{»ZÔγ{x0SØöv<¥Œ×Óɇåk^£ÃÂ{p#ÆBšõòÔÎuØ’œGz<ñC}ðÊÉ”©Œ÷^V0óu=“¼¥«%ÞæËj|}B'ÓÒ’ˆ23Kwg4Ýx¨‘vcr"2Ý“œ@S«¼ÒéÃG€*Ë&?g p?æQ" #œÇÊ¿,mfÁhÕÅÂòË]t ”üºŽcª–ûlÆœœ±[… v÷›ørœý!gÀ»§ÜïÅBCc²©>KºLb˜”K:.gç)hD`šLåT¡¢kEÉ _5£ÌüÅYãÁÊì¥ò´`¨©Øƒ?@ø@Nyñ2Öoš;—Ïs¯CA8ÊÏý• ó.Hf(‡‚Qs+Cé9f¡ü…hö˯ù;„Jj5¾Bg/@—U¹ã³$±:›’)>K]ÀÏÌ"íW¹Ò]rËÇáÝXk§1¬|«Ú.ì}ñNõaŸäQLÝ?_ÆyëÚFÞÍÑå®Ôø"BØGþ"ÂEêŽbÜ¿\üÚºh¥endstream endobj 157 0 obj << /Filter /FlateDecode /Length 4208 >> stream xœ­[ÍwÛ6ß³OÙCŽ»OGh_Äß@{rÓ¦mºékoûöÅ{ mÙæF2]ŠŽ›þá{Þ™H¥|8ÏS" 3¿ùÍ õû¬,ø¬Ä¿øÿ|}TήŽ~?âôí,þ;_Ͼ:9zú‹òðMáKÏg'—Gá>Z\‹™Õ¶ðRÏNÖG¯Ù/ÍÙ¼,JÍ•žÕ7󅔢ðŠýPà¥*ÊÒ±W4DZ^zF_Ë¢äŠ}WÝ$7ÞÔɧÿœ¼9„JåÆN9åäâˆÙùÉqHÆ ¯A.²PŠÏRÎõšÈ°¢.aæR°gÍÍùênƒë(_rÎYÝÜl@"«`Ū› ü A<Î.“awmw½lã@§Øý\r˜‘Ö´oæ Òˆ.&å. ÇKïŸG'ÿx;¡]*'¼goçZÃ|F²ju‡Óx)8(¬êjå½²–³•ê@çJ±æ¯ ŒS¬»NfZ†1¥6ìz.²½»/<¨Ãíe©k¯âGÇq¬YÇÚ+çX×ÖçÛé.“3º›oG¥gwžÎÖÕAbRIlâTpà×É#U{‘|zƒ¼‡VÑŽe¾­/’¥³[{åX¢ 5ç’]DJÎζʉr•º×d˜cФÏ×ù£ 0Fظl¸µ©ßÎQÏÎn·–­ê.›¡­º»d¡6½‰†Ãe§ézCé7cØGs“vv'?ØtX~¸¹`®;T1Gß4°^!©lë|Öú<ýX­ðqðr/F§4×èΑ9oÏ«Š&ÏhÍNÙ·ûÍÉÑÏG•ô¬ÝF¹7mÑȆ«™e[Àè«Lšs:-ØÚbÉåØpH#p+¢‹(©pÁtíÉff¼Î¦\͸´ýhá%ÙVbñD^DY–©N>VÒË =Qûñña*FÔÚe*~Y‡I®÷ïlµµµÑl×€E6xZ¨¬(ZéÅ=D/š»ÂÛϬÇgÂ7Q%Ïç¥õ 2—&„)ãÞÛ‡l„KÔ¹Mþ[áJBöóUˆDà,;â¶žst¸g„„(´=ÛsÚž(áìU.Æé·"ª ÙÉuXì!ÇœpE:+²'E ¯'â¡ál !°™O…k…š.}ÿôm³¤(d+†PÚ¿ŽA¯K›=ÛÃf?(–‘`ÿÙ÷è$%PC!^ÐV½¶E.RÛÕ„Ç8ÌiV¯Ó»«læõÄú¨–.àsQ1 :­f‹!0m‚JÛÐ$@þ†fH¹Šô$z›Å•j“-[%S¯Ð{$¸¯·¨÷ä©,ÈgµBMâC¥’™¤%²Ò¶9ˆo§cFÇ6U´+¶ªˆLÑñð%€"6m?7lÂè@ÝðZ«]Â2Û|gÍ“ü#¬ ȶ—¢í£ ÕX’¡»lÛ‹ùÀDü@Y—)ßh{Z!l©ðlQtë&x—Sš]ì ztF ɇUcsX…;ÞI<0ú—v8°‰É6ýxAÚ%Aä®v×AéDÔ«ºjßEY šå^U(q¾‰MDÈ6²âe9àNõå|ñŒÜò,^cÆNY°ìÉtAQö' Äè©ûºþû^Ó_uuÆN7Q@¤­7½Êµe÷{£öNú•ïŽ ^ËcúuÒ/%Ó!¶0Ñ:Ù_â|^(ðÃ8¤ŠI\¦}]qGÓÀ¦œLÊéª{Å*ÈàâFâ 8"}P<̺޳Gî,ç<ÉäÁN„îÅ>Û¥ ˜ (C“ ޏSvgÕlè˜8äŠ]ƒ™”B&eÙÙNæùV˜ )KŠ }/ÉÖr´‰øk`q¾ÐìÝÙ·áj%GÈG§Àƺå[®Æžd-åî¾{Úž|È\vÓëÀL¤l8)ØÈQ×›~O&'THô³Q¿§‹Œcáæ3ä*ʯÀÞ€Íh éÈÞ“da ÷)4”CÊlTàKY9 mîÒÜï:wí’F!À=]ºzØÀn¸–…5£-íõ Lì:ú>£¶¡Xî |˜~Ž ì@ù ÍhVSÀ3Ši-ã†Lï‚Â?Ä´£è +øÒ¶þ U g°‰®\Ì PO©Ma=V“.ÒÔ#=ívìI"‹AÞwŽŠ,úØÎºcA?6À?»~¸Í ]@w™š³•éiŧ )õ› éXXR¯!€~ 5ÂU‘CLÇû°Só‘ñ>>¦€êgÀ Yb‰)!·*ɸ±xz<”qÓ®wî L³'á5)àZH݆´ó…Qܬ6U¥vÙ;P(dpUu}±Øä7(±’ÁÆëÞÁ€\ïÄ-)Ù¦k+²^âÿp†— ÑoÚû°_mF¥Ç¢Ïa7ªÊP%™ƒcYH¸Èö¥±Áß~¡ÍYå,˜×2Ìu_(íòæ|¹Ù~3EíÛYäy8išõ8Í{ÀcRðv_wF°ìå“^I:?ÍÌůR•÷úÖìûãø0g§®éu”1¯öW¸ràŸßU7gs]bqSB¢ ±ÀÅAé€RbJ™ „ý—Uw½\PžÓ°3·U9Áó¹5ÁàînÎ;*¼O)‰Ã(éeB€• ðcfò÷½68û7ò8Z,Á¼ùÐf_GM–ûó¹¯H¸÷3p—B îÃÚ‡ë‰BåàŠÊ.5•éã* 1ª!âRLÖ#žÆ"ƒ8\9Ä•@÷?á¥Â¾œ+–©l"½£ºÌ£“1MB¡Ì(6V«wUüéæ( 61 ,ìÇšA^+î##JnHÖ@"Ù]–†+À¿Íyݦ®åMõ/Æq´o_Äd§É ]_®·)Ÿ-  W¬dø=/O¹KrÚ‰R{8šœã•~Ú2ÔŽÄX¦0p‡1•(€QBb‘ |fB¶¸nóùÔŒS¥tÔ)›ÊMáídŽ:펋y5ÇÝ9ètÈ{c!ÀñÉ[a²Ä½3ÚmüçüP¬aç’ËŸÎÀ‚4¤'iï RHúËšU›†ñU(@øcÅœc¡Ìæ¯Óxªx¡ý ݋殽¡Bf"Á[”B¤pìY*íúö.Ôå†Á}2 ×ìxN [ÍnoWév–~­‚ø yXæµ"+ä%h½™´'`0BD†ÜÌܤ• Àð˜U*C#a—ûæí¬õ 8ýˤîK2[˜>Ü[EÓÝŽ9Šƒ®‚ø¼eS›¤aÊìm Ý*©ö*Uµ}ëRE9v[/»Î!j\HFosdÓÞF¥Ý÷=†x:x]@ÙØH$L†ämC7Öé ËN3îWÍew{èÑz9Íð±¤^ª÷+ýÞÌ(’-¸¥ÂìÈ^4Yé'Ͷ6›áe7áÙóéÀ .ͶAW•–0ýC/œæ–×¢¯òrˆ¼‡™/xcȕַë*µ²ë=Dª°ÎÒ}T‡Þ÷q?Z„ ¬½×üô®»LÑH¹\'#ügI§D¦4Tó£ðMºÁÚ3Ht2‹·S,nÛ`Aœ³múp^‡‚l¯Þ¿5Ûu ô]-né!dõMs 2}?\ôµx¸ìÇ'áëÚ ½0Êz¾ü¯13JØ'œ'Úô((ÈàYµéú§ä¡*|V )-è( ŠEÙÑnHjÈlÇ¡¸& Li9(¬ã?ŃøÊcAvÔKËKK=¥©V«¾ñèâû–ˆ²\î+.ÄSÞ­é+wºÁéK8»¯†ÐR"¤Ð’UéÊYÿ¤Î;b1ÅÇ€˜`&Lh&š®øNû)¡žÿÛÄ÷$en¸«Åɨ¡â7¤œµ‹o3jC³#‹*°éÌu…u‚%M´q“‰è—Er@ôË–ñ=VjFÛ¾†¥áUÞéšñÄû1,$n©ÝC 4¶ ô>Kæ%¶½ìÓ4ÀП"›çAl:&†bTaZßÝÔ‡ ñ[êïå–÷¥kÎ%ìy½Cܘ8 ' §{;¡7hÒtâ9/n/.§Ó‚’JÏ[ïWFÒòàS-ÆvŸÊºˆ5/:d!vÕT{ß2ìßö>Ãæ¶Y'­îO¥Ž8/àÚ‘*u‡úWq¶Cô1WÕó~ÌƒØ¤ÂŸÊØL„¾v˜ÿJ +³ðv%5Ù8;þûª&¬ûbòÄ,þ®‚÷±­ÿWˆhŸö¯ ý7éïQ&¢èq¼ôﲸٷL߬vsyI>ø¯ôûúíÐ>±©º w§WóIvßËÔ¯< /¶)3~o‡d0ùO2Ʋj®Þmmëç£ÿ0÷S endstream endobj 158 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4284 >> stream xœXT×úŸuÙ±1.%U UÏÞÒç—/&0)õòsU-ÚaÚ©å* ѡ˘É82qÂâ@ïÂq8ñ›Ñ^ vyºW€pDG{Þ:/©Ê-–à=¨ßº/dÿfð‚ÕôÑê‘ L¼„Ñ…Ñ’êºÊ&«º=ctûRL;!Á($‘‘Dç5æÁøâ¥çýN ðCáÕãg.\w®öö®!3ÍI¹P\9˜+D fË!#R˜6cé‰9ÓÁ™ì"£‰;ñ%>øy è,öA[‘–”¬ÐÝ"sRH½ýcZÓ,´säûÉ_b¸…Ñw‰‹çÊè€ Â)–o%Ó«gGΟÔs[y$ìàpàÏ_âP‘Ø9÷+çëõeÇÌfù'µ5º|xÖ“8‰´¼‹[˜îùëU ´ÄY¨RË_“:ÉCþÁ—]ñŠ_󪺹ô „!/‘Ádȃ—Ñ©¡9çä)‘¬{vd:^Ôy¿æ·¸ù‹Î¢ ýôøÙÏN^«LõM\«„E’=º¡N²âpk‚Õ‘Ò¾ËuÞÚ(ò‚ïòpd,ZÏj¿Ïó™*Z±Æ[;-Ñ{„à‰E8VË7á(°Ì+$:Ϊ ÆDMÇOú¶Žû®úv¶Ï/ª Ê$²ÐÇ!çÈ’§Ê¬®ÙëíÕ¯ù{xï¤ÈTkùËä•g‘y¾E5Ü„ ZÉ 8å‡Y²q<öv&$oƒXÎDz­²Ò²¯I ³œhaR,ø\ ¬ù°FÕp ·_RË/ ¨ƒ¡–èbŸƒþYËóæç/ʇ܇w¡ÕY³ÂÌ‚).GH)d”‹_³%½#ÅI;„´ô„äÔô"߬ÍÀ‘á@c¿ÈÚT±*Õ’’ ‡“‡7÷úXˆZ¹ ¨5DHÙo4m. Ò#D²1\˜m†¢ýÂ’£~ïB18ŸÆþèLË®Ž˜¦ |µ$ÛKöâx]y¹ýnÓIl¸añ4;éÑÕ…(Ù˜è K`ØÞ…W7 ÿ <Ú÷ñÑ–?Å<ÿÓ_CýG_¶4‰Þ Ï®òŠDÔ³´œÖN޳.¶ˆ*o+ö¦¨h•m±Ÿ®ÅÛ‹¸>*ð ºIÄ —z³Æa«‡ Kç¶P¹Ijµ®·"®\;ræÝuH©‚£KªN Ý@'uû-ÉUnm“Ø`ú›é1‚Íœ¾“XüÇó­®z¶Úü3ÔÓãg¨¦°pÅ£xƒ}ö<åpŠe«‚:}óS²¸L‘Eva24в Ë[ˆÇï[ÉN]÷æ”ii•§Þ ¿gùꧯ&²ÏüsÅ5¸) ¦ÉÚ>òDäVú2Cè‹Èޱ‘[ÑFb7žoz<›é’Ѧ£•ØèÙzó°ÒãÔwJ(åxQ”<\RÉew2Ê>ðÝp¶ª,5¨g$Ф'É#:<¨9-i# ³`+Ãb¥=ÏâÌûÜsj98AŽ9w?NÂÿ8ef朇n!íš ½ºs‚`C­£Äu.‹Í=I?!-QLö4ïIÚpƒ'Ã.â,›±kw\fRFJ^8¤¦Å;M%‹ ƒ%Ê]†Ùô®X AôIgYÕÑ?;63¹ œó)òrö·a±S)ÊTþu.ƒŒ¬ìbtÇ'NÙû2²ßWV×cðW”¬[«äûjº;>ÊÞ•Êt¥I°SX`‚"(ç0½ÿÆ9⺔ئNô®‹­ª©.m(I.Þ–/Xr+ ¸KM›&‰Xò"¿ž¨Ç"}ù³“Ö#ûE~¥/èÿ-4kKs L$^ØS7jblÀ*˱"SûÃn“[Ï1Ý{H)VyÍAÚÊ.‡´Ý‰{Iv8a®Û“Ÿ›sœ%v!¦@˜ÙYÏ–A…ñ@"gd;lÉ Þþ‹PÝÂ>ºƒ›H9=3ÒœVA¤ gëÌßRs¯uÚ«\™kÞbÁåÍT/1_±žA]Ö3pÔ=2PàozšŸO°O»Ï¿­ì¾’}%Eû›WœN8L Gh»îÔpL:XKÂ}W¯I €Ùà{bg§8Û‰wN[]°~î¯Ö³Æ"(©ÊÏ馿!íWl ˆKOO1¦+ØÜM`‚ÍpŠˆŠMÏNl^`qa‡{jüÎàÔxç¨u³ â!!Ëlª)€Î^å¿æˆ÷·Þ½vd¿€þ²wÖÞÌœ àÜGN§²Óí{³ÑV-ûѽ+H€ÄíFc|ª³uÎjFT/G=kBGtÌ>kH£Á`ÓÓãv@ç}p[eiÞã·›µœx̢Ƀ%ûn >ãj‘˺ÅA¶¥5Vô¡Ûcùyò׿ɃÌòÒSÕ%ëØÈ’õÕtîÁCÇ“AdÈ/£óéã%–FÑ‹å§ýlÃW½é½2n³ éÈ_¤!§¬A¬=s6«šàH¬e=÷« vArœ*`»#­p„a -`¼´€ål˜¡"½:Íd„H®ãe¶c°ž˜o4ESý¥ØúH ‘FchZ¬!Ú \„^[nþ¼Óó¿èLìV0@xFp¦Ñeœlaå]ßæÇ›Œ{À¹²ÊEù& e&ÓÌbó~Sq''U‹¨âãÒj|Ýb¯»¡÷á¾#ÿ™I7 p¤l7¦Ç¥¡óæF­¦Ep7¢ËßÕR£É‚Êšäëk‹ÞÖ¥{+QáewbO=‹#pÄѶ}âtÖ‘$­¹ÉÔXZ_R÷N™D9‘K‘ùYåÕ¢˜Ã Ã-*Ô<¾‹œZž,ÿG×´Ù:s,Qo"œà>]<ù“Pðµéõˆ}|±È’o6²„‰IÛ ŠÛP{ ¬¾ðˆÂt¦36`K'Ùy<Ž®êör¢™‘_‘IBÇÈ.ÆjŸel!¾Îâ«ß~õH$®sa"#[PÔâ˜4[ìJÃdm¾xÿzn« 9h_{kI¾Ñ–uË‘çÙ*»é*bë¼õ>Q±QoÏTølÌ]éB„e¯Ï Ìó±ú‹Ûbbý¨pèË}K·sü á) #–<çùá\€“o¿{ýÎâê°auÅ|a°RMúìøª9¦Âü='BÏ@¡BöÓŸ}Ü\Ÿ'VUdî3§§Ò6#Ž‹ÚsàÀÞ’Rl®[ >‡™—ƒËß|kEjQ}u~~‹‰“ÀÏL N›Ï4\8…"jµW?Žó»:Œ"éR7[~wÓïþ«Éºjfå~Ðþq:ÞÿÓ&ã·êÙƒ˜xK”„‡,XßMyÚí¸V¡«#_Òþé}ݾ]q1Æä8£úV`ṪävÝOiI¾F ºÔ[®À»ÜƒÁ·ÉB¡C£oÓò~Ý‚ü¸s{êÞÞCØ‹= uñe¡5þ´'›CŸfŽoö;uËXæò°àÞ^‘ÔÉ£uˌȫé‰õØK‹3&yÒ­W½ÒlõÍ_£›=[Â=vä+±ÎAZ(`ù÷ÈëJÎ>i/Óvïm¸  —wzKþI×ä_»É'`ËFŸƒ Mu–FEh8œ*¡×aô8¬:w=ïYï©å³¸FÿZx¨*ÉÀZ§aeéW`/×l9ÛÚúÍâX*dD±¤;Ê¢gg–MN7&& úUa¥o5§â1dê8¢šS¿fïNñ”×Û)#DÊ¢öÄU‡ÀJNõ±OĺK0CFô¯yÖ³+ÏšL¹yB~~îžÊÊ÷×ÞŠSšš±ÛÚ”HÛÇWQ¶;”_ŸÓt7B1Óy.švÿy^M5Vm.ªr¾B7ànvÜ!#ôZ 2cA#‘ò,½31—ôèŽG ù4c? ç*AY¯X¡#Ÿ/_¡ú¼¢!Á´3#-#a/yÐþaA^~îeŤC Ñà ¡°´SJÙ‚Šô]i)iƒHæ‘¡YÏòÆgÁÉO3—ÓmqáK«àr7@Ÿc‹ ÷”co2Ö‰Ÿ–½ Òá9>!1šÆ“Ε Ͱ¬ b»°@¥]aˆ†®õ6Rr´‹,mlþÀ†O( ªà“n°×t¨ʲå©.~}ן#é‰{ÉîoÁÿÏùYle–ÑO$ן½Ú±¹ÝE”´# ‚ *'¦$Cü°w¯¼±¯Î[%ô‰/=sqýþ¼­d‹ª^‚­Í²»žÕ¦Œ “Ù”“ÝÎŽaþ Wendstream endobj 159 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1264 >> stream xœe“{LSgÆ¿ÒË©E{(E0§âe.ñʘsq—ÌEPQ¼+E(ÁV ÈEZJßR"ꊀd¢[ð‚(nÄ?”e.qQ7ç²ì=æ#q§øÇ²ìû÷M~Ïó¾ßóHˆÌ‹H$’€µQÌ{L+ {SC/Ø`0f¥'X<“  qBï›H9øHÁGÖ9]¾HýjêˆßÝ)Äó&›÷Y2s Æ”ÔtB¢I ÙH6“d‰ «ÈjI¢ˆ(Ad$…ŒJ"%µ^A^Å^/¥7d d27¶«Û‘nuKΡ?®G©†f †„=§AT³è:‡Î~± Y |ögpÔÿ˜ô°µ8µ8)9ÓÉ`h(º\Ò·¡x¸VÕv¬«³±z ÝT•Vµb!N©zë5ÏIèCÜ‚„OëV?FnE-;E¨Ã Î]ø3•Å'˜’¹†}IÃKäz¦Nƒ«¬Î%­?¡gPíDµMÎG`8s>££° ”èýú'œ§£þtÆÖ-;v¦·œÏá°–aý[›.4] îë^Cýtª·’¶<¹7»E}òUZ6Z˜-È4×£›cã2Veqößl ]æQ¬„$|§ÚwÁm›Æˆ+Eòƒj”?…œ<Óî¶ì––¶únNä[W’#Ý8+ó¸1[ý *ôü3^Ëþ¿¢JÓ¯ßÌl>˜bЇ¡:ÛЗ§¾¸QÏØ—š©â½R¥‘a[ïг JzØò〈ôò Tïnò’:d¤B¹¢áK™Én4ˆ+?äPêø uÖCQË<ùu^AýlTæ”ë\8R’•Yx`š9ÖX’ÅPæ(uTm¨† ÊöŒ3©fSN’¾+¾ÿaï0_Ëa¸WYS^y¦‰û|»_ÜGðë–´‹ÁðÆ©R! 'iN@q~©½°”;œµf9!½!÷bîEû¸¦œò¼ÖUf;Å}URt2•;;rζ¶Õ_º·¼ùS¸d1Aßù‰ˆ›ÞŠ2—çl÷[=g[ÛŽËÜj1‚¿Â¨–ýKˆµjsÀšWf-°rëb$‚’ʧÞÒ¡SÑTé8÷Ôˆ“è"ª ©s^-A-]y]¯›Aº^Á¦ô9œÈ< :+S'æœÆ¹qþŒYÜøñ˜ÑmüFÝŒ,•¢9”jY/"äŠnÌïØo´¥8VVt.q{…9˜úF‡¶«.±%S—žhK†|(*ß~1MÉ6ƒG6enÚqõs ÇÐnãB:¨’‹Qì/ßßÊÆªãÀ±ß>áνŒª›÷Gúöu»tÇ¿vUœ¬°ÛʬP¬´Ôä67×Ôáè–ùšm°."{9öÆ}p{x¢¶sc㾚¤=ÛfÍ5\½:pj¸Š‘ž¼xÝ»ny’ÝnŒáõýêçb¹–¢BË6 ½bWª™÷¨”cW­€ØDó6¥Ÿ(Øžw%›ˆùxïÊe`P:Â÷ž:m ãèÙHqä甋¥™¨Ð¢Æ#\¬ÀPªB¢e›°6€æ2ì ú¥‡yëßꨜr6pXøSs)ŽKŸfHLè0öðm]•™à O=žG= Nlý¾ fØáÿ™ó8(r ÑU_Ì¥à½qædÎ[¶Éì3©ÝYá(¯pTVž:åãCÈ?:õxendstream endobj 160 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7718 >> stream xœµzXT×öïæ»rÄœ±Fc‹½$E%Å®(½aÖÌÐ{º¤Ø{4¶˜¨1ÆŠš`ÌM,‰‰Ù7/ïí3 ñÞxsÿï¾ï}øù}Ìœ³÷^¿µÖoýÖÚH(s3J"‘X.Yjïëíä3~Ü{W÷`/§ñÓ.ØðRÝcÝ¥ÐݼnÀðë–èr4¦×•Þâ÷²NÞÞNE­°õ™ã»n®ßúyþÌ\´0xQÈ'¡N‹Ãœ—„»,ݱu™«Ûr÷möÛWz¬òtðZí½fÒä>S¦š6ýƒŸ9¼÷ˆ÷6Œ0zÓùØqã'L¤l8ŠLÙQC¨åÔÔPjõ!5Œ²§Þ¥VRéUÔÊzZM¤ÖP£¨µÔj4µŽšK¡ÖSó¨±Ôêcê}j>5ŽZ@§R‹¨‰Ô'Ô$j15™ZBM¡–RS©eÔ4JNõ£B)+JA™QÖTʆ@Ý¢8Š¡¶S]¨®Ô ª;åMõ >¢zR¾T/ªeI±T_I‚¤«¤eO £Ì©pê…$VòÐÌÓì;©·ôœùtó*‹Á)²Þ²´Í3 ™jæ.þ]uÍê6²Û7Ý { ï¡éÉõŒî¥èЛêÝûÇ>õ©²ÄZ²)}Wô­•o—_é·°ßOV®VF«8eg}§•Í»6{(8 ¸ûNØ;{¹î\ ÷D9U¹ |`ÀÀ´­ƒ"tgÐoƒ» 9¸lðÓ!nC^]?¬ß°ç¨¦g[ ðh/l •´9õãÃi;ˆLUÕ`¯6 E|vbjD€F‰]ÚT„¯uÙé e¼è_ ˆÖXðôº€²rƒ.C§WDVd'ð]‚^ ÖÞ+Áó¢ë W`/0¸/J—ã`2G7-zþo³Q xÁ‚W-‘ÙeäzÙŠ­ªûñôín­¤áð^u‘ùE+`lÜâ»”ùf/ãA* /úJZÜz%.¦7«`!ÙY¹x …*8 DKh¶ê׫Ÿ^¼é`ÏáÈ7ž÷>í@öF—Œ¨·DÊtæñœgVì6%Z,‡o§_ÇҬDž—/Â×Ì·ïßÅý¸v3¯RÙ ½Ê]Ù^J»'ª>⽄26Y?lý‡÷F÷ä‹×OÅRCZY>õ‡zËØk§¬V–âù¼5Ó‡r¸lcbj•£å4kþ´yìBeOA£*Æ%•-hw‹TðDrÔwø Ü÷‰%¸–ÿ: uA=~~‚XnZšÜÁ!Ø1x³£Ï:ØŽÅ~öÃ9¨ƒ8Yº¿âà¡âFØû‚Ë·”oàʘÜ&á%èÞi[HÛ@9O{%ºhýÓ…Ý”ªRG%¨•x:.Æ‹ÐḠÐC²uqYÒާÝ5s`+à~äÙúKHSåù#7ü£¯y…¬Îp•lßW¡NÃðAôGšŒ%r ‘ú¢þÜgIÕ`MP¿: æÛÆð’OŸ ~»¥mcP¤<R£T Þ¥åbñÓ±˜exít GköœC’ÖqøÝ"¥>49Àä¡X‰vÑùªJH€èXn­[ÝÚ££ÀÛáÉx"Þ‚]Ð<-CSŸ %b”‘†Wóh´Q°æ#Ë,_\Fy-Vlo¡yÉ;ò)6ŸéäÊ]¢ÙÇx¨[WSÕŽÊöm¯£ÆÜ€,þŒ­t:Ñìð 0¨Û¯O\9­îññT[×¢&?.²tPÄ @ší{¬êHÕ1›kç&b ñ$.(Ø#üAtRá4*’Èb±2l ^JdšLP/S3Éë©ÖyjåÚWÉT8Ø¢L–Š,vßAÓȆãeíÖí8NZˆµÞ‘ Åœà$#Kãï¨N/sŽòj¯ª-sÜn‰ä™HJÊ·‘’ÌЇ Qc͇扙uJ4–fG¢£8M®˜k¥3ì$®ééºpå¶<ߊ`eµ¥ú«H†½fL¸1·ÿÚm.3§ºŸ¾Æi²µI»€‰‚¸p%VÐ; .3Y§+,äôzÐîw: -&y@üâ+ÒÞ‡© H^fâ•)­Ò¶@O¢÷Ô¸Àp7X{UÓ *7åb›c6Æ÷¼¾ÖD0ëjÎþþýx<¼ˆû~ñ¬v89‚„ð2<OÀNØ M‘ýµÛåŸíQf7ºd“i¹J4‡nHJþœøP÷¥*C†¢X- µüõ2ñ`âÁ—è>ê-?°Š¶õvu[ßçsˆGCxàÅ h•¢ýxz†¦ÓzCæ-®\´l±k+Ì0YVNß2tZ¦QÍàüÅSß"gn€[§&$–"¼ÏK …H©, %”è£ ‚Ibi¬×fAÄ$&$¨†á46GÕêlH°.o€R±Dã.:o½µ}’ÔÙ^h(FŠ”H}|6'Ó“2º©H/ÉßwI'n)ùŽ 62w@æÁF!„·lBæ‹‘ùÏ„XÖ ®¦êŒå'˜®$tëè'µMÙ¾‘~ÝÊÕ;X Àý Ã=žµ»¼Î·ÈWÉÎ Þé¨dÁöª]ë/×®\Ïäti¤€ïa„åtS\à:j/1TÂçò’‚6[iÛJ“©ÁÄÔ`+šZ§5†ƒ¨!1>jNWŒ@Õ YZQT4@±tˆÆ|: ­‡¼ÄŒ¨du¦wjØd¯Šâ³ÈŽI¯ž%¨Œ%¬N…,M–'²Ä¿+’# ±""ú”䜟Qâ\Ÿ¤?²ÎƒˆRtGQp”Ï®%(MdÜÁ£¼‡‡–Õ7Ëåk$y¢„ÐVù§+éj•GÂdm¤¡Üë·6¬ËÛÌôùyí(¯,(*ÏŠ¯Ù¤SVÔɬæÈé­”nôZÍÇš%Þ³·¬G†U}ð8àÂ¥ƒ‡ 9vŽKR…Ó!›âs9w”øÃcrV7zîöÍëkžjnAÓS„Ò.gß¿¶ Ö’ä½G h!²MK;qìŽÎš§ý5žàGtš=l'QH7jS‚ "víŠÃ—ðqºúÿ˜ŠsiÄ 3´§Ä¤GA´µ÷V¢¼èÚ©ÝØÀ› &ð–Y‚ΊÕÙäÈìr×UáþÈV±{ïÞ#¥å|]Sî!CŽè­õoX­Ò‘c³‹Ó¢"ú“ƒGÅ«—ÎTÌü9F†)Ö››^¤cØlâiJu~bX\öÝS,Wl´ƒÄöV,O ²R¹ž×•ÃÙv°!.;·?«jÎ}õÍpEš*;‚D]LÌN?-ÃjHͤ РÝhýŠUÎ5£ÏŒÈ­™”ßE-HO´Û¡NíöÞS,›¹ecx‡®ÐÒÍD-í?”Ñuçsƒš×} Ö¯4šNn‰v>›C¼\=€aÝ6ƒ{i`=‘k(`3 … ËÌkøôTZ)€:ÿR×rgƒ=8mA  &t–dTGâñsá–Ix¨†E•>„ŸŒ×!švÓ{ çG®†—±#4îãÀÙf+Ììô0{í_UX¬SN9 îQpä- ï‘vä¯|Äkóvîh—61>ú]¬U`)2&d$&‘Ì+¯‡Âá£ÃÄ œmhd»D°]Ê¡y¬ò Çty¢d—ñ YÍ£z“Ä[óH*LDÝä»@C8QÈùŒý$Ú ˜Õ÷¡ÉhêÝæé´îµJgÚ¢ÿ‚ÐÊò¢üÝ_Îjø÷yS¸7îût‰ÝþÕ¨{†˜Téü«¤X‰r+Ñ®;Ò—Ò·Ô5U(…:ÔÿË,9*™Ä¯u&Ò’2‘¶­‡B×~Uö*Ñê _šZ˜/ ^¬ ¢åP&ô%}™ÐE* CvÄÓ1¸kˆ#fˆŽé*C¼Ð==ÓDzÙ±ÎákDªO&R=å—ÂzdFŠL†«Û{Ĩ â­#S‰{P‹ìÏJù)N‘¨‹%¶ð’ë*”¾ª•¯4›÷F@c/Ú§nK¹ƒ¸õà÷°³OF ÙÅ{ªË”‹HR!¹9„C¢jÃ6lð޼ņwyà^ÿ&Íih‚zýÙªÅüÞš“P Í;ùÍ™;È©Âßh T Ó+‰¤è¨?]4¸‹ÈßÏa£Ÿ²}_y1YZ]Áû#¯*Y.isµ%˜öƒ{>¯Ó&©…ÑíéÑ:m*09Z¨ŽÐpè9÷:À¼‹ÑSs©3Âbõñ1‰êØDnÛÐñ° ÖËî zïÃp êT-3 ø©Ãc’wÌûCÉÿýIú…ž´P¹YËñ.Y zï^Ù`žg`›­Êþ.o›V&ÊDÇçÒ6WôH޶àQ¤_ü/Àcð$ìLÔÝX<ÍGŸ Qh"ÚÌ Í‘ãüÎÔ÷Gáþß¡”…Þý²å[4dN?¾sˆ&ÝK3Jù¥GßJQ[[/y½[ÍꧬÄaz†×-|ão:‚ëHÆã.ˆ¡¿;|x¿!âr¹è„ð(`‚òB+ªr‹J¹×ýÏÞrt·¬} ÏÑÊçVìïmæ‚ZþdÄwø¿øk‹÷o H šI£îˆºóL9´ßF ™9‘c=0‡J:ú£VšƒÖ‹Ó ì\‚ìÏ(É+AP]b‰&^'‹]·bi•.ŒçGWo uT;;q,VÕ89‚mÆÎŸÿ‘£Ñµ,Dµ3ܶW¶+j·Ãs ¸0sŸ®B=Q×_ݬ<¶¶’[]¹–RÛq:Ϥª‰¾*É/jðmÒóÃåË7ê#êJ”u{ê’ o[©RÁ U%Ä« šÙ‘—Q˜ZÂáy˜’ƒŸÖsg@lt¯ 0“àYI…®:·LÉ^Te¥•T6Ú| ÔȬ½›ÜaÞº÷ÞìÄÁ½õû Üg²È&+_¦¬;só•½ö7³©©àháÎhÑϲW„Ž2”ÿo§Sÿ~6u€¨ytˆŽw¸ˆŸ Ûü¾“§@f” bâ´œzÞ¶ðX±Ç"ˆº­¿¸¾fUáãÒ›çà&ó–ÝÃÃ9üÅÑÀú¼}Tó*RMç-U»}¯;xÁBø\š\ö˜{Ó)õn››ùw+•8X˜(ŸøÁ‘º“%ƒÈ22ôUPÌCdž€‡ø$ò³)áÕŒ$/,ïÿþa¶2¼E É JAJ³§ñ@£ÏÓÕ„ÙŒ¯í73ÔBmâ­5«X%ü,¯*÷ÞêàWâ¿{OQe×áÒí}Ì£Yü9}P)ùôâÑ’‹R!-“óEw§á¾¼biîÖ“¤?½ròÜMô¡OÛœÂéÔ ÎìlPÑ&S‹§ÕFÇqÛ콫œ›&j“N8hÚ‰97ý”™ Ç¢¯ì¨ˆÛWéVìŸá̼us§úÌJ>²š[qRsQ[§ÍˆÍ«>u£©OMÕé3S9CRÍ ~ûE÷VRºÜ~‚Ì”TA |ÞwB  —GÇ~_D ù¹­“ *!¹‘.†Í@zsÌäÅñAíÏå&å@S^äëê¿æSßÓ×Ï_üžcû¶ 6DDéü—… Õ¼¤® ¥µ¢´2i›­°V&N,Ì4QÊA“skÐ((€rÈH,N1$R¶Cä`ÎÅKÖdø’ŸçÐDâÄ… 9{ÄzLœS”©¯ ₼žë‘ƒ'¿œ"ú‹YóâÒõK ĺ!8Þ ‚ÁõfÑ…VŸBôVÒÕ³iŽ5ë‹Eá飉_¢——ê#EáY¨ÍPA„FF½<÷TA4[ûö¼’Ùë¼zN_g(‚thdÐ5º˜ªœ¼³uùDJ`©G",s²?ÄáÑ[m“>h‹Ñ†´M!ýiÛi›ÏëÙ­?`™(k‹ý‰ ŠÕ¨Õxq{ˆ¯ôêS‡ZuÊLãÛùä̘ÿ\T„®hgûKEjX²&òAŸœœƒ…ûŠœúŠª/ÅUjëð/“yi;ù·¸Ã5ò[ÛÌÍo êïüõGÞN†ÿCÂ4—ž¥´!Â>€¯ã- ^Z±k_ªMHy'zi½ø–˜þ…¶Èƒ´òjM,Ajd»³O¢´I‰)¤ÃÝ}ÊMH-‘ê)>ÎN; ÅånüX•í¶x² Òˆ€1¼õá×!)>Ë mloSb »²!ô©IÙhº¬@´§t|hÝñ)ÃNC+…{§÷e4•-hÛ÷ç…àP :qU¼˜.ç‡ è"H‰ˆÑˆS(|¶}»…*œ$–u[.DLÏã„®›á„)=;¥Ä·ô<^Ž52¤ºXuƒ+‘Ù“Q-hYµ|üÄ·2Ähµ<ú4¤uÊS$oµbûöÐ&9ê6ý¦6l‰ØæÎ¡54Ë«‹jâªmP¯+ßg§h’ã”l ÛÅkBcÖ‡.$EØŒrM©‹c âØÝ;bÄF(ñ:bsRõ†”$.3¯þä8e›ÒÂóÜô[‰ŠÛvN[Ýü7‘8±?±ã3†=[k0h3mjòËJKw”yDn‹Û¤d‹“/Dæˆùå'Är=/áþ ZbD³Rä,<Ÿ <°e[¸Ÿ¿¾_]QNF !x½^GŽúÈϸ¹K–*££‰ÈÕ0qÉ É™-ß ®ZÝï¿yÍ„¤0¸¤åûÆ2Ëæ‡Èö¡ïC+¶]Ø„¶tÂOXºÀmí†P®”&u´wݱÒfõv#·Ó6{•î4æíNo8ëxxî‹mˆp÷ÇEˆ™÷ƒ’=…¤?þ)”ãI_ºÖíp÷¶ÛD( xŸU熂ۤ)½YýìaÞAXÊsn°Ö‹“ënT“X™Gº±ð6…'ÈpOHÌN(ddØ™»!/ýBvVjÊMÈ&%ÈE†Íñ„ñØÆ+a˜õ.Ø|ð ÈàŽÑpÊp*ídRI΃ýç‘ ²W¤‹cœb¦“²â«ÚÆÈkü üýýÂ=¸†ö ººØ,°ÎC².ŸiÀãäU¥>>>>¥UU¥¥Upµõ*“4->Š4G¥¨r¨Spm+ŽÈXÜøUý‘ãp‰y4áô¸áØŽ ×onÞÈeF×”íXá3y%Œ`ý²ð7dñcËïÜ<ô‹ì·n°Û†{ßVlÚ°ò™sŸ7_½vqÍ\®¸].·½fúä¹ç[ÎT_¼ˆC½fV†ò†eÖ¦sÔ=ºWr¡ ¡ñe{Eç?D½‰óž ‡º+GFL9aÕúðÍ[8çÍAN0›Á}¾{™Ÿkj>SÂyÒ8jȦ;ô{ü¸ýiUù|`np„wÌÖ…'ï#9‘±§òýGòiÛGýl¥Š€Màu!¼ŽÂ8 ‡Šë+ŽîÍ®%e´f{þf†e¨,Ϥ%›ú¿Âù¾ëèÛu#Û(ù´mŒØ¶=“…A$×þ“,2 BC !W)üC–[EJ¼Úœ|·“kÿ‡lgÇw9Já'YŽø]vÂ$;‘Jþ{éˆ{B%_uÒ*a¥¼|G…{hä.µšÓ&&jÅs’ªS¿ºp^™%f•IOŠWM›…»Ú•nÞW[PQ.ÒóZÇ y¹3TòôŒÝÃqr¢ªô;òqdé‰VhÎ^4õB}²;×I0¨w_€ÙåÜZl¥¤lÏÌÄ=Na‹³¸×ƒO2€II2¤*ÿiuA–oF9ÜT¡«…ê5ùó]À¨ÔH, W>qOLŠá,7ÒƒõÆ–Q€©“R2~‰ØÏ¸cÈ, Iá^'³`CãËÑÔµQŠÒ°AÞ8òåèÇø?vÒ_‚.5¢K¡Á¢Qt¹¡Ãå¸ÕÈr 04ÂÈo5¸†Ž|åfD~“EBXQæp¨UÓný§ˆm­/ñаK@TØ)Ó¼¥C…Iil¡=`¨M„HqÒ‚,dlûÓçw×í *âœÕ¾Áx”G–”äíþlU³íXÜm-–pXöÏM¾Ô€¤Š—h}05ÊY‰KþIÛ½‘Ë´ˆ„‘£N~1°ÉåU8ææ¤ddrú¾Ë7ªÕZ-$˜b0ëÖ-Dsÿ d7äDäËø—ÇŒé"^˜,u ÝI&*¢*d'?ƒ VÐ$ÏQšQB‚Ø4¥Éí ÁôkÂ7ʉ·“º±Ma”4´ ´©°]“ÃíøÛÛ¾ÞôÓô<'°ƒ9þÎc=çÇÏ„avÒø¦Yû>¸*’à7Åû¬¾œ|n1Ó²äD·_v·~Á{xÀ|Ç-³ó?Û¦¬ç°—©ó+ò ôŒt÷Ã"$A=¿ÿþÎ4Òþx5ÏÞSaÅÞn½º^.xÛõrò_®—š®—… š]kš=—¡!P¼<Ûˆá‚Î6%%È@2.IÛ˜¶^òºm{V.wtMˆç|êW&û33k0¥üOYäöÆh4OR–¡[:ðö1Ž®’GhBÅfS­ ¨ˆ!mg D3˜ÆÛ‘ýønóçG*À{£B죣„0†»øOÚvà ÂØªÛAÖ&ªø[¢˜hï²3œ ªu*ZÌÜ…°Æ´×ýÿ–Qð6ùÖĘ@…ଈ‚x÷ÃÄ´gß6|VZï[Áõ 6 só‘OfŠQÆw½Üëj¾Ê·{£N/–½T½Þp®{wŠú?jšF3endstream endobj 161 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1815 >> stream xœ=“{TgÆ'BfFÅbu«jÑ¢V»«¼ žÕzÁÕXi«¥r¿E"LxC€r‹€ŠD(—¡VE­µÚZ•õr¬ëaÕ]ëºÛn÷xÞq?Ïq‡îÙý¾ÿ¾?Þçy~ïó)(ï”B¡»êƒØÔÝ )ï„/Iý3ITÿâw{ìE_jø¨gdf%$îxwÞü÷"fÏ¡¨·¨õÔj#µ„ZJ-£ÆQZ*€ ¤ÔGùSce ʛʢn+òWF¬qÃë}¯‡ÞÞO”Ÿ)=týO©Þx}œFˆ!¢ôQ®âÕqât†T½RŽÁL…ƒûè‰åõ?Œ{Mû#ÍÑÑ8Òê‹pÆ(20j…òÃgqŒíô¢|[G»­Ï¡:á18M,¹‡4$F;”ª7Šû Ãz¿ˆºõK¤Uù¨ÒraÒjÉ[s~cûæè®ÊâQÉpƒä÷û•:æª ’ru¹ŽAµÕ ×À% ÏÅ¥ÌÍ6Tý y{R¹íí{'/¿\OÉ.i¼Cí¾…E·´\ž4ƒ5ÐëÜy"©=¹rQí'¶?Ô€È^}MwÜ)*xË^K‰ØV¨h0MP¥?h†¼$>½vgå`w“™@´;šÓš÷;ÝÆ{.ãBXËFÍ‚ìIéƒÝE|I] › Æ,(˜<(n´•Á;Ï™Ž5ô%ŸƒfìÀ™€!‚lòÜ{”±߈¸>Wý+Ò:G‰Zî…¤F_Íy]“œ™º®µðØ.o†„àzSº%,ÌÄ~*syHŽÓÁξu·÷Ò ¯’.]»E\sÃ]êã8“Ör:él«¦¥ ùÕ¨…“™'Ë®“i±DupN¼3ïx‡ÃþÅɼS¢Òa9 ìgB¤°‹Yf"¶b SYÎ0}õ?<»¾8ÊsQŸÃ¶ñýtóahÈ6d4Ü©³ 3âv8{ÂÙug­2ÿ…)£KòwáºáýÒ€þè‹þZ.Mz™ ÿ‰L]òaJn&} ‰þÿ‚_¿™ú¦†Æú&–»¾ÿЗŸŒÇi¿>EA þã@Ò“R·’!’.ì;Âb9sÜÙß>,ª€Œ‰Æúf‚ŒUÛ©v£? _úE Ÿ–{&eàHM]ìÓ—š KøôU[óâ€%`hßEÀq¨q6˜Lµ·AŸoÎ)ú!ÂV®ã9;‰YLÂ’ÀŸÞÆ™8ï$²6A%Ý6tƒpŠë)ú:rÕ—0( ƒžà[Z®_ªÃmd>#a)›LÉ:˜%5æÓ²Û¿¢²Íf®)2•ÂAƒ›½É¸"aSSzU±µÔb¶ ùéeôPx´¶¬ü÷ô]¨îö ÌY°B‰O檊K wÙUÖÞÚt~û‘̽›‹WÏ»?Of=÷ïOQÅÿf¿Eßù®~ô=æQ÷#«‡iK-˜ ÁàA2†çVdÃzHˆd›@ÚÞm;Ò*^p},÷U#œ6µd}Z¢OƒÝì®–T§õ˜ûj·“Èò»wIŪ]Ëy1ònæM9•ð·‡$ ešX²9ÍS¿ŸÏwÀ 4²èwAxQ¡Ã¦ªs¤ãèçÈUàFôó’^hÈv: HhEAyNyi•¹šÕÑ;‰M)ÒÕwkkËËj*„Ya­ÏÎËÑgÏ ÞKÉx alôE¨¬+¾ãûè·öÛĪïí_;»p®¨®2p²ÿÅ0Ë#yýCׇpÖ—œš/n9qÓÕÑ—Ù¾ÓKh"D/œ߸ê~> stream xœ]’mLSWÇÏí-½wµvЦ•»˜Ûàø°lq@YãbV´h(oE‡#oÖ¦ŒÅÖ‡SXæVª‹€ŒM3”HÐeCy¤“—­0K®©N¹ÄmfËsë¡a·qû²'Ï—óäþùýŸs($—!Š¢¢ÒÒw”Lˆ_¿½Äv¨´à@xÈa²3è Z"°ŠÆ*ù•çIš…¨©—G"Q¸VUT¥—ìßn/}¡,”6#3zmE)(YP:Ê@*ÉÉQ!j§X*“ê’)ei²s²Ù}:¾V¯Èä—IrBªƨûœh± ê@•ò72³œÅù|Ÿ)¤àCæRÙõòQÌ>y´k ›ô±ædSqÅùN܃ðç,ä3._m¿†Ù™Ñwã êʾÕŒÁìh]Ô³ivêªoW:ǘÛwôâ€!f„Ä€v+Ѿ•õ39Ïd¶$ÿè»Ùáîà¥ûQb î658 Üz=ô2nöÅYöTWäñÍ)ýÝ7Ü}˜û¶§(ɰ—!¯Ÿ&ÚœÈîíÜ8ײÐðÍocNA´Æì‡Ë>(©«Álîžö^¼ýñµ†0e_e˜òÉuEòOìÑÕNî*Ê>º svL/ Ý‹÷w° >·vÙ?ÉÀ1l$«‰’D>&D µtÔÁ•VgÐâ¢~D@=ú …(¢'¿îÏ#‘5y\âdë±î#½$A4FÛç"HDÈ"Q½¢ÙÑC¨/¶ÁkË\ôO ààï@{æ«Îé¦v®¾."„˜!½°i4^ê²ð0-¡\‡»êüÅ£…ßg|jÃ,¡bˆŽD/®Õá _^5ÔŽ§å¤|T…¹wpêÔ©%š†t+ÎÎ ÜÆýø–ÝǾø­N‘÷ —&à7 °[X£ýKܦ‡›ÌÄ‘ÇDž[Zèàa̲0ÚqN+&:Ì,Ö›<¹.áÉjïJàó‚ûµ8 ÷´Ò“ÝpïÙÅÉ)àžjŽ¼Ê“Úe|`T€•ø"\b“Μj%JžÄ‚bÀNXÍÒ› §ÂDV¬›×øç7ø×h½¯­¦e+£ ÞÑÍÌÂðâ~ZR-aDõ ýJå‹HT@€ÜpÓÁüpœÉê_ÈêÌœòì}|åLr³oÁy…6vzËòN)óCgàîoM–)×ÿŽŒúP›h=9mgÛ^¥°ŠWÊß+W½Ôã©—ª¡Qê3*Bÿ§qÕlendstream endobj 163 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1694 >> stream xœ]T}P÷Þ½ƒ» "U̘Y¤£Q°1)©ˆ#$Ô ~ÔR="9á88>o÷½½ƒã€€xŠšQ lÈ …hÄH>T’fRÓhÛÐ: uJÛPß…ß»gÄFÿÙÙwß÷Ýßó<ûìCS Цé'’’“õæ¬M³!¯0û`ÞêUOo3‹rõ&W ìTøJ_ +!8 ›U»BñòBìú v, æÓtûäú„´Ì"»ëðɳùz“!/×iÎÈ6ï¦lcÖÿ++þ¡–¿Ê0é÷½b0Ï5ï—Ú…EèÍ2´ýÙ…ù¹úCÙyfƒÑ¤Ï½_úÇ ÷wïÝÏ->Ø3,æÿÐéEÍ]±4rÙÎÝyS,¤è:ÚAs4Oí¤ÚE»ézºöÐTˆ,@Y©)ºR±@£Ø«¸¥, X0¸1ð‚*Ï„ÜUü%œbïÜ,fûí«4î¿©œNaï|¦7'p®ÌžÄ+‰H‘hlŽÇë j}Ý8‰±8ô%FÞ¸Ñßïr.¦©ÊÊ8°ZµdœŒDJé Å‚þw)=dø óÛg-å´Óê&Ý#çŠ)7•â1–X4 †¯#ˆ‡_=j8›Ñ]ÞÂA0å•`¯s× œî-ã•Ä+„ÂhÒür$ Ÿ‘L’X2ôs£×sÎÆî…–VÚÚ´8Ž#Sb:ˆ±LÈ]åâS;U[ÌÎë—ùVÜVNsìT©d5ž•ÈlÀÇSPGã¥8b<ˆÅ \_à¢/0èoH .A·Ÿ³ÕÊÇi’^|–(H<á×t2TH¢«H õ  H¡¸–L|J¢&Hø?—y«œüëÀ´ý ÂChÄôÛJq˜I’UÚ#†’µ8ñKŒŠÂðßU6òÎ`ʪü:Ô Ý?ó'òø%¢ÃÅäÒ0™)¤»¥ ²‚|õ+²è9ô ¡xÎQç×¢ZÛꇗ¯£ã‘ÇwqèF7b àzYÅæí2š‚QvÞ†QOŽ*Å«r©%6ù ÚFÉ ;µEýè7ªÄüs2 2˜Œ6vj„Ø’å¹ÀΊq|Íüû-ÿ–߬1©ö/[º™¨×>Y@R‘&Ubƒø­§QpAý¨¯n’2§†‰ïªð ¸UæåÎW}]òå®ÎÒ«é]qL§ŠÌÇ®@–d¨ÌÀóŽÞ¨Ïf…ImÒwör¨XRá…v-С’Ñ®tQ,nóŸ`ÕõÇ}ôû·§·ÜVμð3Íùí½©Ï½Lh²7Uë¨ ¬ÄÅldy:lÈ!ºCñ¿!)qÀMGAwZxÝÌÓas¡Éšµó÷úËumøÎ§Ú?âµñ³óøyf÷àž.Ô´ Ê—^8w]WR&&§³ôè±Î¶·´2¦6ù»O/}›UýUvá¹/”b?;­‘ÿW¥+¥ó™’o¸fè‚£ þG A«ýdî­5ïm9ŽêÁ‹WÚÇ\-B;Ô3bšn~òá·}m§Ú˜ÞiÉ{>3wŸ6;?íe~3CjÔd•Ö@ÎŽäò²¼Ü„[ σJü•ÿÝ=¸’i­öÀKC;|EGŠÏ™Zª‡òOÓátvèæ®+fÕê9¤³ÿÒ@3œÛâ ‹ÜõgøˆåW À;‡‹|ÅG~Ýi¯O{³ Ç[lPç­Óõ–"•Þ¾\¨€l03Dæ´ÊšžZ5žöIQïÞ–xh“£œ;µŒ$sŠKJzJo­ö#e,ßqâóîÓ¿Óvxï}çUkÔ(s‡3ãÍ-§º®ž~­áû»:7õ½õÂLx=S:[%»Íô|â‹ëòJk ÉOe³=«ÂIñ¯l6÷póÎ/¹.n #T¨,©#/É‹F[àì˜*Ÿçsu"-»¥­UvžƒºŒ5=æ÷Õö˜)“(+s‘^y?9ÝÛ/$£BªÔ}€Õ ¦`(¶â ¸IÎÌz~”Û8¨ªÔFÅF]1î%af $ˆýrWë‰ý=z€¦òÖÒÆê^c˜À7ÙåUŸÊÕèôêÅðŒaí줜Ò}‰8BvaQÙáÌÞÂ#Õ Ø€±?Ñ®¬ó©£D!'{j Õ %`ÒNÉVŽ›‹Ï¦×hôj'nÜAÝ54öc¸×F3!ö&qy½¨kr9U}A׿iƒR?æ;,xœ N·ËÓÚLQÿúZÀáendstream endobj 164 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 432 >> stream xœ¥ZþLMMathSymbols8-Regular‹þOúøM‹ ‹ ®øêãÞ infinityradical1p¦‡ˆ,¾÷¬ÿ:f÷w¹ùt÷Ž¢u‹}üÓ}u‹tt¡‹™øÓ™¡‹¢ÿ&€±ø ±Ƨú §ú÷l÷;÷û$/G(JGÛŠ‹m£Q·LžT‹û7ûû ûÛû÷òçÏîÌÏ;Œ‹©sÅ_Êx‹÷ß÷÷ oŒ&>C62KÛ÷1°ÇÝõ÷ ‹÷Å%7üwtfO9!û ‹ûQñßðØÓàäË;ûåÿumú ¢˜•~}‡‚€…üUýûûPø„š†…‹‹‹…‹€ƒ$Cƒ‹ƒ‹‹}˜‹‘˸÷füE“{‹”‹‹Ž‘’™øxú?‘–Œ‹‘•³ù§²¡¹ ¹  W/ §Ž“Œ‘ŒŒ– }²øendstream endobj 165 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1678 >> stream xœ…U{L÷?ǽ6(ͺ9«·éŽ&mµ¶[·NÕ”5Ë´%]Òt$ò iTS20ŠäQ nÌîòdœñ?>lù&ì¡à°ÆÇÆæf§¯šPV³U%®y (Рe³­SM2E4Æáß¼Œ°GƘ§VwØÿnA>̤„·ve{IU]s ¦¼þkðä5½GÁtcuX]์-Qw¢µë5Ïì”ÝÀ~•ÅÙon½Z²Mã#—ærg½Þ¡7šõà Ê?(¿’¹~‹æx®Ë „YÉ™²=Çj¤J¬ciÏçøÿZàŒ{8ãÁbï2›­6÷ˆÕ)²{“ÉÄèHÆ?D,A¢VK-ª«cC©ØÏ9áyÄÆÝ4Æéà1â\ë×Ú¨^‹Q­Ç:ª*žß¨’ŽEí~;ß`¦Ö$ˆ8ñ4Ð…We¶p¸Dݾ®&½´¦“°×?%Pq„õÐÆ?”°zJ¦==¢’¹¦óŸ^b ¬8îÙêµÄ¬(•⻌n‚0S2 ë9¤*?¨\{3®žø«oÜêòމœƒþ8ѸʣQËH‰Ó†[¦öÿ«vo..ôGðÈî·Ì8 ñ O¸?¼”m8%¬Ø]®<ý$ºÝIeOPm¸¦Ìd-ÊQó:µŠi˜áͽŘ9œÅk¡8XÛ¨R`ט´Õfrë;^Â(1™åØA£ÂLZ SÔ„À9 ´YOɱgÙuM †.Ñ£—,ßu9öï.ol¾1äHÎá±÷8Õl(“›Içþiò+Ïp ˜Ä­ô0oú&ÓõaA^ü‰ÐKº)Êd¢ ØŸfùÐ èáÚ±_O÷ÿmö |úÕùÈËÀQaI¶Ô4è@[’:Ú¹à¸tio¢„ÝÂbÜ]ô­+;˜æ{¿ÿx¥x··q&½>̤Þáåë™Ç„^½C×k¦H#¦ª8$­(œÍ±ŸäV"¹6Ñ™³ã~ÿû7üÞ·/%/¿ñò"øQ/פŬ&1É1…®“û‰ðtô·%:"œÛ+ž‘}>›ÃïÀé‘)_ â0H ês½^îI©hmýQ±ø”¸IÚö“§+äÂ`òølv·ëO¥ÓÜG>mT5*‰#€~r™Ù”^!¨iaM5á-ÞûׯÞ.`>ã cÝ}ò¶–öfE_w<92˜Â¢w÷´|{]]= átGè4ž¾™¾éÒÍן9ú¤˜-Ò¬†Ñå³cÞJôZIKÙŒKwK÷‚YúS‘Am   ­œh<ÿç»ÝúÄW$›ú ô…“ò‘ T§ÓT·½À ßFņhkÀÇ­G×ß=9êe2zñÂÌø9 !`ò‡õPÅ k žÌ´g+JË—•a¥e²ÞnýíüÖ‡W-‰þKšÀlèÄØ-w~Éõ–ž³oW°'šñŒØ,S¶H]UA™ `0“&¹ èéÚ‹¹d:Jcƒã}¿ºQ9ßåóûé€`ø¥ ØüC­…÷'m6«-`íwºh[a!‚üb{´%endstream endobj 166 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1053 >> stream xœ5‘{LSwÇo)Ü{ÁÊl¯…)Ù½‹¸7&€Ù†Œ DEY†%™j)/i µ]pYñTF`@Z>(-Ã2ÃA里„è€E ã˜Cg‚ŽAö»Ýuqíܾç¯ïù&ŸsróõÁx<žð½¤£E™…Q»Žæä)d™§½Íg!Ô]ï~×|øöüÕ)ZÎ<3¹óŠÌÌzûµðˆÈÝíÃhL€ 1Fa[1óÅxÏñ$<§Ï>Õ|‚ß…O|¨8ìc»¼eÛ÷:ì¢î;¨pa¾+˜Ê`›~OÈRˆ¬ªJe.8›ht’X  Ú›ŸX`:Óao3ÚÚ«Zut¯uê¼zõäFF$kiîΩH)Ii^ÿ½dn~hà+3MíÍ©ëÈ iü鳆;tELÙ^ÝS’–ñ¥ë»éY^G{Ö9œèYÑ×v‡å Šu/SUì$#Ñ·\`LúGg*h4Cp¯hü¤ÄlùtæñJÑ3íGõŸjΙ AòYE[™Hä°?ïDÞ‡'ÎJá}ȶ–ô«Û@m$J#  ..vö›†`úeÆ‚Öb½âÉÀ'üè\ mv¢h'oÊÆw×#Vl)…*úo¼ªär#·7ÁÂp_K™7âUež¬Ý›ùã†vOö¥DKN´TÆc·;½°Z±E*šF.\f¹çâ\„Já˜AÏ ÃU °XÀ¬§‘ zó¿@ïÓ”vw€7°Œ,Ë|V…nˆáOÍu鵌_¢Í)À‰àƒ]ª¢¼øš—! k_t½åÜ{³| \p×0ò°÷Fí2\'#›Åp"ÔÇ”;TR8 -Ê Í$üæ¹Å|ß4aZû¡Ñ Ý0Wa oN88H>ö’ãZ©ùì± ‡„Ó6÷2ì(a«ÑÓYÙ©¥a@J ŒÃ·6òq#‘«U‡Ñ)>P{†<õ3 hÿ‡ÝA6V¢±¤(èA0ecKÐA± ×–UW—R •@r 8 A-†ËŽý¶éÉ© X!Ѧ—nqBš: bÂ#ÓûÏéM]†>†’Ž5Ý9?cýÈû®˜7Cãc¹n3ɸ ?ª^­šÓÛYÿïš_Ì#>êû#ñ¡CtsíõôuÝši=˜Ú‚±(V ?&.¼`^´OÍÂm’ ÓÜŽ˜ }>:96×ZÙÑe4wöæë:úòÄ­Ú‹@R¢±Ž…ê 3U•LL^søÓòóÕçá,©úZé|q$yCcœpnjJœqLB÷X-†šˆ»$·äUd‡­%!m»ï¨4±û ¨¨±Á„;6Ѿ)E»Î«º:Ý…†IÃþ@†óÍendstream endobj 167 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3008 >> stream xœµWyxuž6¥<¢â ‚œ‚+²ê#‚"(w¥\…R ½ÒÒ»4=Ò4w&ù2¹›¤g:mZBzBi¹¡U €UÜ]ñqAWPW]W©?ö˜´ºê³ê³ÿì?ùcò›™ï{ß÷ûÞwDÄB ܳ&.nWQÆÊ¢]{¥{æ=2w}jú¾½» ÂÝ—…-ÃׇՑ-„舮I1Kï@3nÿbÂ;‰1A„(¯Pš'%âžgs–äåíÚ½§,%5~]Vö§,š,!ˆ)ÄZb*±ŽXOl 6Kˆ¥ÄsDñ<±Œ˜G°–¤ Z yëO±{V¤T$3•&5@ ©³é­A ì§Ú¡“iÒî…·Ú¬¥‹ØB'øÁcw;«3¼ŽHYElq5ž*2{3#«PLY p¸Ï‡)?¼ÊøùxÀGãMH/Æ¥"”ˆ®FÆükÌ–…„’ Íåè»Áš×„¡×ÑTq•0r=%[ž¹a+eÚª&¿«ÙÅÑ ý½h œ%/íìY:oëê¢2JÿÒîàvØ%)ªÒriE<H• ÊlæìTÝ[¾]@úÜŠÌbF©ØL¯ÃåŒ\WzIiµºÆSïô9(3ë9n÷sÅÚ9;gkòžŠ­ ö|È£®´Ì¸­ø®ò´ºÈT Jr[gÆñÝhº“âKÿVI@]äС `x=Ú+†·×›íþºáïCp“ZùަðuQI 4@#ëèz£Ë 0˜¦ß{«#V•bÔ,ä[=UO£azE¡¨Ïé4ô¡xþcsp …§‹^AfW'ké ‹®5Æ'Óð;â™ÎÆQž$ª#èÌ*3c'X€µÕ¿ÚbÑ:ѧ Ïî¤cþ%@“ œDsFÀ=þ¶0¤@âë/>“˜”ž’I©v6¦à¨.-•*Öóß8ÖUkR‹¥¡ŒÆ·Öi¤Fm2H*•P¢±œ­^,t;t„Åbó‚W[E"8\ž^ô„ÃO{sögœ‘èv4Í ñ¼P,}>)3 È•Š«v«ÅCŸD[­­ûëk$Á€£ÈžæŒøøL|[ij¸‹ÓÒŸtÑó–0t^–uyÿ"kg]¢Bý‘VÆ®UîÙ“SFíH©ÍGñ§Í:w¹ïPsW½/×äj L=€ÒÛÖivºº˜öÑèÂE º8—1Ès7¬ÞäZÕº$¨ë¥ƒCgzy¡z6\ÚK3‰ªbôþu/¯åO?†V„Æ‹;³lY•¼5·„ÒMoÛö?Àûë2e­h’µ¾ Ýkõî?ÞÌ9–> [j+ÎÖï+„|²Ü]ƒ×ÔÅËS ž,Im– Ð¥ðXiÀ 61J=µsjB¡Èb•·½™uXëè!t"ò†ÈW5BZ)=_Ô…¦Ø|`'ë*«Ê˜\S†šJÁó#çŠd*(©tòÈ\-Å݆2(%7Løêì÷31Ñóý8‡¹Ñÿ0Ë&CC•­*ß dÓâãX§ûÍ}Ô…&;ö VIø=…ò}ûª´;§uÏ×X<ÏÀÓ羸ò=ß)ë[ƒ´sWgæ 脦¦Ú¶º.ï«ÀšŒ‹ñ})åe’ä»ËsL¬xñЩ64¡é<´»'LÑ“:QgÒ‡yê˜=Z"JëDJ~æó“ðqÂOmß³7›B‘nEÑ1ŸÒ˜”&¾ËJÔœ`µ*­Zª/¦žÄ¨L4”C†dNÜ?­Ð,ô 5"éÌÛÓS€”f¶5@Cí«4÷;¬Ë-9yáhM ]­Ù«Tt÷_ê¸Öà  CK¾ÛuÞhÔ訅3±*\“wrð°ï³ŽWèàÙû^„8¨¨Î+‡ ¨¨(—Ë@KÖ+­Í='·u?‡ïÃ<?0ïܯÑÔ¾ñ„åðf4¡¼ää‡s^„–óÔØ 6Ú¨Ó2TѪÕ%™ü ”Ú‹R¯ÜZ ¥ fÎü]A€Wººn~Â+Y¥Ð2FµžÊN*./„B¨¬‘ו4•ù2\¼ýáb½Eçr±6;K7;gvò[¯Aۤ鑻¡Òw>±´¤|Þ±ËWd¬ç‹O€“eÝvª©ó@k4A•ÚŸSW\_ò¯çЭå î´¼fâ€36‚ÄÞáj(IË…z;k3ÛéW%=-BSý5Š nCŠì±”ôÄk5ÉÀºüÜŸáùR^uYAAþ>…]çÒPn¥?’`õæ'3Òç?ºÒ=9<-Öleí`#«´f½Êd,5PxÁ?f=ãJ톋ðAËšlõðÎGÍêNœ“†§©GuÀÖÚ¨Ö›= u•¯*PdÐIøȇ2˜óÞîOušt0V$0JÙþ6XY:»ßR}ÍŠí†kpãÛÃǸ|W D|ô ÝuN€®Ÿ†^ =$n.† _íƒTHÞ–‘’¿IøQNÖê´S'¯œãk$ÏŠ²ðøMxü®G4rž-YR«ñpîïöPÕÇ€õžz åÇ¢HQ&ž©Þ +@yNiU²[WÃS4ÖûìÀêªéœ·áì‡~Ç€û ‰D"otÐ1û¸ÐR·Û‹²958ŽŠŠØ˜=–3³‹‹­­6ט££ âßaè±endstream endobj 168 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 582 >> stream xœM]HSaÇßwgžs܆™°È²A^5•„!z!R„BôA)Ì8Õjž…ÛÚ®¯›ÊWGBR“ØZK]nu º‰ ¢‹Â+ÁÂ]äxÎöHuL+/ÿÏóãÿA‰Ñ@(¥ÛÚÛ]þÓÃÝ]^ϱkÇùTÀãêYþU2Œ[ WK˜…cã#í[Åâú/ëråÄ@©X.{änYñ»•“nÅíBxÂÓ3µBFÉ]ÒC:è5zz1’íäÉ’9ÚBç![ö‹+}Mà‚J û jM„XĶ4ÅGB,Œ³˜¤Mñ±8KH+SaD¥Z‰ÊäÄ ŒÌhYKº~ȳ{Á ëß Ì ÿÌ ‹#˜]c¾ðלZ_8š§óÒ{¤})Eñù%åK§S©´mÁðùbo‚Yå »­E§cq=*±ýt J$X<¦Ó†áqrBÕw-O›Ÿä´÷ÁÕ¾u3—{:é?6-y¦ÛÆÜbÙ•!õf¡bìI’WMªÙfâŽì´”&£ƒ·¢CýƒÑ !¿ª" Äendstream endobj 169 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3554 >> stream xœW tTU¶}•¤ŠÇ`yV罎ß%ˆ-("|d D!LBF2R™Sd IU’šOÍ•TB†J*3•Ñ@C†fc­ 2HhùݶºÒ÷eÝüï¿j÷Òew­·jÕpß;çî{öÞç(/J ø­}ocb|XÂ&IXBÚìY¯mŒŒ–JÂRÜùçãð¡ëCAB˜à ¼Úž›”ç‹^›ôWŸþ‰”ûõ\BbRJꪴ@éÞô°wÃ3#ÖEFEÇlŒÝ´G?“¢ÖSïS¨MÔfjDM§¶P[©mÔ2jµœÚA­ ^§VR«¨@j55‡ZCÍ¥ÖRïQë(ê¿H^”¥§6±ÇO•ç7^G…/ ¢ð1¢1ýôvzxlÆ8q™ãÙ K'ô?Sçíë}Ù'˧kbÞDjöþÞãU#.^è’;}‘Ïerù1U|ÓoÌ®­¦\Ú´ÿžÅ•ÒÆÉÊ*7À2 Ýý^Å?Xæ2~Q®’\«"‚« ‚åœJ‚DFä©1»A¶£Ü´VÈ4þ½âæ©KþÁ”¿q7Îa¯VIX²ZèÍkäµü,§€7¡8qzö­GøÀ“Á‚½x’‹ï¿ŠÆzи¿U!†~Ë&VFç%„ÄïHØ¡Q•q,óHÑyK›µ£°Ïu¤õØÉªƒp:¤ŽPGhÞe$ýx·x‹ Ípòœ+§Ö÷Þåõ—ß½ŽÜöc&ò}HBB3 ¿Æ^°¶‡¤Iíý,3ÿN.d¦ª$WÁ¢,áÍ¢áÅÓ­z‘pt«Ö£³©½m(4ìkú 84ž$L²Óoþ&?3~D@Leú¡¼*Ð+ÛQ*ûaw_c7|Çæd`!IP v==Žæ{Ð?pÏy_ÊO››’C ú;¥¡äÁ2xòOà2…Á$-’ÕãA8Îìî13ì–¶:4“-ûúôÀg`tT¦JV'Vd;¡ê‹-Mî tÉ”Üipð“´ëÄÍžü$ô¬¸°7å@^qRS¤-Üd_SRtÆÒÚ|è È›­–Ðùv€½Ùa|¾ü[c¹Þ*'耲ejµ<_¥‰k‡lÀÞ°#0o“2¦8±ZÚ\¯¼œãTÿiŸlyÁ¶°ˆE@χ¤Ó껺)rA§ÐdJ1Ëj²t ;˜A¯¯vHÞUŽö°£º*@càôÇÅ$9{Nšøoˆ1rJ‰°Iô rETÞ»löÂÏæ'ÂÀA­'Q÷IÔƒ‚›ÏÍÐßÁg³Õøe:G§Ù_¦7VŸ?ˆòH!” V¹¿Ô'£™ŽµÉMÁ}Ó€ÃëoÀoÄâ0r!ÏAÝùîÖ9[(mް“¯+ Á`3”6¢e¬µÃdþÜ€+îSòZ´0¸ÐÚt_´ä²½¶§v_­€¡‰âÂÓÂÓ¿Y\ ”ýÙP~¹Xô¢ˆ0~QDn$k²ßúà…ij”½+Ú…÷bŸ?ËÚ€» ¯Ú/ÑÞCùàB\¨…@4}@7€¢É›£ %d¦ŠÔÍÄÝçk,m&ûuàjÈã£5 \$,…X#¡kè:€\½粸GÔrÅbšùdÎp2Z-_ \ªH%i3~ ÷!\ƒBöIø#¨”E=¢\ús‹GY,wÊ]'\è°KÒéËŽÖ; °vqg2íxúäHÀ+³ç¾¿jpóÁtÜÖCŽåºûdÑ Ði²ßàRð+¹‹²g¡À‚®†Ž Ù³YÊçU´—Ýå{ÏÎàsü˜÷ù?òSÅfWš6^—Ü<²Ïv5M“Áió5j•¿„mìÔ¤.g®ë ä"[Äš$Ø­7pÌ]•ä"•6 w#SŽ^U\ X ÍEhºÁW×î×»7zõMwt«Ôå{w(àß ðcb†ì#ñ¥$¾¸×Iü6#S•Àé”:­"s¸Ý‚š´Å:ƒÞÌ™ë; ÒŠ&ÝáI¾Pªµår&¥%Þ”}±ŠÝ†*5Åz˜~XOò}ÝH@RIN‚]cÝÃ}Œ¿3ä Fr5ZlûÑ4ÔÆöávƒ|ôG³{KÑ-¶îdKI+ÙQug– •=8áôe’xÕ€¸ð©ÓüMy’•D!âÀtTonF;Yk§¥#¡=®cgÙð,Þ)_­Š/Ϫƒ¨ª4׊¡y—¾¹µÛÞ]н;û ZµUóŽfU<· 6v«"„fä r¦\ôï‡ÞƒõÇifi„¦2ì¸\Ü¿ÿçt‹ùŒìE±Áþ; ¦Õv²ð÷§n£·xŒ=G$wHð„É„ׇÒHAAº)퇗¡‡(Ú.tßÒIMÒì$à¢a#Ĺ«ü Î¦Í×î“åå+ð÷¸‡íEW))Ñrù#ô®2å[sµ2N¿ÒÝîÙf¼BîyJŠóè¬Eu PØm´î¶çS[ð5SÛ¶3#³]a‰§=eÇ´á‡ÂZѱ ÅiÍÛ?ý‰iéÅÊ(Ùúèà$Ih\ÞšÌvb]FcE gMЗ”u:e«£Ð”\Y®Ø¨§³‡9+qùjï¨îø1‡þ•7.]I–:…Óæ‘º•á)XÇ"§¶Hgr×a];8~Ê•äùÉà bÞ—lŽXù.pL  Ò`_E“©Øi(3×e•¥dRsUñ41DE[ôIÒtœ<Ýr¿„m¿Ø­/QÝ®d·ê6Ù^ë{å6 ¸ñ¥Ãó«Ðx±¡(4µF<3P[`áá:4¯Íèì…B¸ k$§·"\#׿ª’KÓ ªËÍhæèì+;û»[LíÅ÷âg?Ÿ†h@¿…4ÁPôXˆI¹ ÐÌ^Ýà9Ô?ôÓ`š`2;UIÜŠá%ØÁ—)Šuú b.‹IyE¥P©Û¯«ÖèušŒ¹ÃV•T°sêH5ΈhR3SÁvÜ\ÏÝãËM*½Î¨äÐùᯬ2½Î Ü~Ð[Ž/ù.Ö\o;>ø#â«Ð2Ò{ù÷{ŽP`P¹Pj ¶L y°bìk—ž°÷‡@M"'ÁXUþuäWîÒ€SI—–†;ð qeä —§ÑA‡ NŒóˆ;M¿_Ûƒ ÃþŠÝî°³G›N4÷ŽÍéÛÒ¿®¿²_Ö¿ú äñ…³™â#†|Ä–vIóx^Û’99aß1«)‚ŸDŒŠ Â×GÛMFGýKÃ0jeTº&D¢—+bfõ:]zÿÔ‰#À¡ö+rÕé¹êuZIz=4BE¥©Æ­Z8¼m/È™G?8"8n~2>\þ¥ña>­—FÓ:Ñô­ùêÇB4o¸üFˆŠ¿“ù¸Ÿ ¾÷¸û%u’§×‰zˆ–¿zïê=üŸA?fÿì¾Xo1ØsÉÈN+2WDf¦ÀÐwëÒ7Ç(.…6ou|[sÿ|ɲ¿¾|¿ 4þØM¸'JMdše$ÑJ¢Ôþn¡n7^…à:à*´þX¨;‘…EcDeÐ biæ`S´R"”¯QF´D¶F÷)À p}nn ñ,~ŽX¶2jžFbyŠ£bSµ¡Øiäì†Fb¿yªSñKn®ˆÏ=护 ù~H˜¢þΩE@@^ ³µƒ;Ï{ ™ð‚åG`Sìà‚±ó,=­Ð¢mÑqŒï1þ[±©>³.b!%Q¢Jr$€¨m0ÕŽž(i¤ßq¡%®ó.´ Aðà’'_։˿ÙòùÂJìãb×—Æ÷)¾réü @ A…ßÔÓJÒþ¸ýoA» åwÿ¯­._²‘MiŒ=ô`O˜6'srΛ‡–}šT¤î’}œU§hT8£Ê’ÍqÊ8ùŠ÷–χXbé¢wôY/™ÛôEDˆ±xçè @fƒÍ~ì4[{&zÈTøÕß*Ǩí<–•ä‘zœÒZúý˜[¼@RHèå^A«tµEoäÀtë\±íj÷aC•žœa¼&!ÖH?&a:›\KÔaŸŒxú<ìÍÞäÓÈû³õêaD‚êµ|ð“ߟܼI“Éi22Õ#e*06Bƒ®QË=9Tbî4'’Û‘;ÇÑ»ùÿ’éúçBy¹ËÝ3 èŸæöòÑá}¨ï—Ù—©ÿb¹=ø?ä[iÿ79;Ã#Á_y¢]½bsczM©€ÄTU‚*¡2µ‘(rC¹‘ö–:ùåå(ÁnqŠ\ãÆ??ÎksℱUz½Ao0è Æó&PÔÿ¹7£ýendstream endobj 170 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5158 >> stream xœXTT×Ö¾C¹sE”r½êobï±Ä†š * *&Šb;C—¡ÌCïºHïEDDÅŽ%¢2“ŒF&š¢ØbÔø^òïë;¾µþ3 -/yYÿ¬Y3sæž{öÙ{ûÛß¹ÊÈ€’H$+W­ò÷óŸ>mÊšÝÁ>Ûåº?G$áP±ä­“125D¦F‡G ›e É`f¦1§t¯‹üìýï•;-QlWîXº3l×î=2O/ïu>¾³fÏ™;ÏvÁÂñO°›¸yÒä­Sܦº0-|úŒˆ™5’ZM¢>¡FSŸRk©q” µŽš@­§\© ”=µ‘ZLM¡6QK¨ÍÔRÊZF-§)'jµ’šM­¢œ©¡”eMÙPèáÔÿP<5€z2¡Þ§R (Sjõ5˜ú˜2£ì(sÊ‚ÚBYR,åF ¡—)#*’%JÉiƒ‰já†IFC‚Œ°±ŸñmÚŸ¥û¤o'æÍ‡j“1&‰&/>1u3½0ÈvеÁS˜Ù˜e˜6÷0ï´p³(°øÉr´¥·åv*Û<ÄnHävŽâr;8Ä5r7†uú­Õ+µõ4ë6h,V"Í?5âû ÉXýVŠ j$îÊJÈF*„‰åÖ±G"Ò| G±»ñ wÖ(%¤D'$Ä HÆ·•ðoèÒj¤nP ¡êŸÆ0›®eì¡@>¾Õ¨TxC—Ô"µ€Â[Ó_À—Æ]–¡C㢱üE .Z+ö”˜«æä(œwýë† –»y*•<«=ˆŠvòöt¸œ,W‹ …S¸Ã½o3éB²ºîNÁ–ÒlýëÛGÎ_,ô_ÍcÅ.i×¼ºySºæ zË!pÓX>Ñ‚J»¹ËxÌçvóuÛ²Ï+O^@Ì-çØÇ!tDòõ©AÅÂw{ûÙM¥Ù 0nï¼'L‡n‡·ãD~4¸ÍÞý±r•—Pr›v}ò!Yžf~TÛ»éì'hà®FrY 5ZCÑ|8°˜ú a£©ã±fž `ðó °är¸©«ì-ZuçÙ“ë×o~ý¹Ó4ž,­÷i$Ç´p•, „\c ŠŽ B~)|üÛÀˆ™6ëw˜þÞÙ~i«m¡–®FLª(@£ßÐĘøD>% ¥Dʽ궖o@ æÈ.†a'¼È7 æ§ÎǺc¹>ÐÀWú|ÔÂ{$hÖ¢J·w³/ßßìêãɳ¯êS wÿ!UïêþkªvÐ-ÛOÄD H~ùXÁa褥NKÊåoIYË«W.^»}ÅþC¾T`Š µèG+vš.äÊ£ŽÏݰ"t¥ HÊÞmHØïÉcZ%' «& »;lûFPHé¬ •€ uyýüê ħ–(jSY^| ^º·äFhO‘GŠ Ü-i×òï,zÜ)ßExõ`*]TC–$ι‚Œ w ð¦C¨²Œ&-C•ž2¾ƒÇ#È¥Œõ´Ò%ƒï…Ã×(ÕŠî`Á¡b®Â;kY¾µ_æ²|t”©=Øðó÷…¾|ZXzXCwµ]i LŠˆOáÝ+Ü‘’$p~Ð<~ {!´Æ}‰Ö3{öxMÛ²6ïžœO,MÊ @Œ …(„‰Òp$Wç§5çó­SêHfüþl7:¿ÒHt¡žA|_–\)ªy¥†„ñ©«ÖÄ!æ#t¡F€X˜+íõÏ}@ë Qðó>Ô—] Ë#œLOúÊãÖíû':ù~µ'y¨Y?•=Y€—‹5}ÄûòVƒÝ° Üþx5<°{ýšwò¾ ì›%'U'Ã!ò~Ð_Õ;é¢Ã”%ÔÂT­LµbUbn§@¼< »²ýÒñ¤ÙÖé¶QÞ PãAª¤ž‘KOÒÞjiÙ_×̳[¼Ó*Péð[tq jЙ, M4’jØø6ŠÉâh½ãx@ßëh,Áw°î×õsw@Ÿƒj¤øY¾g9ª@6e¨ å5‚ž[«{=KúÎk$Űù9l6³Ä1œ:…òXJ‡3U¨Lh¥7âóÆ©tRmä騖ÐkÉy2Càœ¿óI &•v…óÆ­zRBJ¡çö b¤wfe¨Ž!›c(#·TSó(­0£’I£³\›ñ€Ì¸ü°R”šQFqfe;tZ«+ôèŠùMå9-„úPŠÅ$Þr¤Ú“•ǃôæºðèmc½oExuQ]nsö¥¥•§¦ \Ä|sÁg‰€—&c³hÃF;\szÓÜ‘Óp†gí|*Ϧ^WILá…ÿàHƒ Ùʰan(nøª‡Ž¶þÔ c2…:±<›° lºH¾VÂ&+ö®O°HØßIã!0 ho|Œ.<ÐÃ݉ªD„Ec?þÕ¸–Óí¿ëJ@w›9Fƒ Íñ,ã4[Óû? Ð'4ù?Y'63öîAí€.+ÝÅw[Æ éŠÙ¤<þƒaÁéϰ{—M+Pašòþoõ|*F—h!Ag£…ë”@‘âU„ð8AŒh“ö¹=»}Íï"öôDSº1'÷`WPjœÁÒ]#nÖXÖÂF¼ü8ÀF+vØÃùbì¹'!4ÞÇ&•N,‹­ˆ/› ñÖ5 úFâ·™1(!„äs"å ïçâ‘¢JePVnÀÚÕ„–ÊyöÄްЀí‡v¶¾>Öy™| n6V÷«zÓÞÒB`§¡¸$\JIQÄó ‘Ê-‹3{ñ'gëHI ¯8Šb…4YYD5bª+JêoBnØn51›>– zYÒ‹&I«ZH,ý[¸+Ò^"Ü+¥pZ+ÊÓ2P‰Í¡`¤äñ3Ú+.ÎKØ*ííµ.Å×qkˆ"5…ÙxV¢2^4£+³Q9*bz*ç+.úVda‰ÙAX3h¯úÅÛHWLšŒYÍÀæ'þÞvü@}Ï:{ ˆc|7=á©0‡c›ÖºÍýhÉê›/n\¿ñyëZ}wBíß´Ã%»WÜճиde<¼a]¬?²CvçÂbà<]Q†š^ñÅ'ÃfÛŒÿ:8°>ó¸†_#9\FÞºzé"Kž;šé‰X<®ÔþòÐPt?ãÚç£ðùmý_?®¯•üŠ;Æê Í×§«ßV÷µó±ÐƒûagðúÞ—HÍ'åîj*¯*®ÓùCÛaÑåKíðq»o»eý¥v–k®$i?½bÅšSb¶hÍU)ÖEoJõÜʳ&T^¸¬lëð)Kìfo+ñ*R ¬„Š ö†d…òÜ(‚AóEnhYô°Y¿9Ãò[Ç<»è=ÔznÃÈœí•Ó³”ŽC‘(.]…PT!ÃŽŒŽ.L­DÃPfzaæþŒ”#A­ˆyzëëNa‡Ô±õauùÕ™iÙ{«â÷#¦¤*¿^À˱!·ÆÝÝuÝö3yözÖå“'/|v|Ëz(Œ9w»mãÆÙ8Yš{ð`9_Sœ‹n!¦ŒÑ¬n|~ÕC).¢-³Áù/˜%âotöÿGewhn¿¶Ï×ö„î 7tÓëÈžöŠGöK§1îÀƒúÉ©³]éØix¤XÉÕWúûûûW×ÕUVê3ªÔ"Û«³q¶¬_/%V¼D#wNtÐûB* <0ôÝ…¡Ý²½»}H{ðCQéªtR—é(‡© * óãÙØ_¢sL?çÙ!iâ‹¿4­Çì@‚Y[ؼ¶mmW«ívχÆ`=˜Ô¸©ŸâœÚFi<O6†ßôÛtê#ÆÖw›úé•~’rÓ}ú»Û0 ?Vu¹d¢‘þ@¬‘ÜÑB4Ip‰xOG *s}ñUãçô{Ž®®ë.ü/ÏÕRrkƒºkg˜õŠÆf?xýúáS0ãá•ZÚ#_º{†RwdéÖlxhïôDº (CßE5ûÆzù·GÇ_lƒº·Û*ÅB‰¤=ÃwGä.^uÈ¿Ô y#߈À`†½¯NQ ÐáÞúV Ãîz„tcî‘>Êd–IÙÖΖ3-U…aN<Ž*{€yç“þfŠ>œÐ YÉ#-¤‡}` ÷ëG/±‰Ì=>xk ¾Ÿô­¤½âc½\& EAK3³öïãl)½‚˜§ìæ/Y=ÇžKþBVÖ¾TÎÔ‡¨|cwÍýa)Å«Ç`¨?ÔAuÀ< ›K¾…¤o] ¢ÏˆÞ°Žzf'6pu ÛáÆÂûÏú…Ÿ Ǹ5«Üíy¶Ñ~Õ©¶ mg¿½wy³«PHŽÚŽkçòìš¹ŽmZÍ•kOž^^éÜÊyÐLBª…ê{KnZ±¿‘€^ç j'cñsI¨èG3ÀàÂ…’–S| 6_8~ŠEi!Å™YYÙ¨„©-+Â|½K—š·&¥m›ø…w9—ukæÚ®ÿòöÛm_Ÿ¨ Ró,spW®rÉ0ØÉ,G°À°0„{¢×ì[ë½[îã³GpðHMC¯ýé?r§({¡²È}Ñ9ø8ZùÈË)؇Êlª”ùá±É©±<~€wÆ&DÆ!¥ "3÷ÇÃOx·ualF*ÊÅeùU:çÁõƃ1L´äšö@ª;b’ÉQ¾ÿ¢óQ“€'5y¡(ÿ‹Žò"ךu%ûŠ.l&×tK,"pp\Ç¡¢øÌÐ|lþÃV°A`„^†=)ÎËÉ$e_by€Þ†­q.xzzÓFþ¢ýµD9Õf•ïëªü×¢@ØÚ²£³í»ßIþßwˆ1\³ü!^ų÷ñû›×zW«**ªJêò÷'f 5ugrŽ"æÍQoŸ€à(eŒ€ÇÌG3ÐNfŠ<¦ÞŸ}ˆ/‘¢3Å—Ÿ¯/n®G<ïÝê¿äj8¬5„ßà*‡`àÖDzsëoÙµ"Fž ˆSåÅg% 0KŠð,䄯íÁ>M—ˆTL\¶¢¦¶‘„çê…Ðy ¨É‡ädÛ“6XÚFÊä;®ÎÅ„%£˜^æ½;Ú“ˆ-j"P0&üúæu§bœ«„ät—1ófac<ð†ííÖÇaÑuáx AŽ V¤¿/ƒÁØÞ{üÃåza-s¶nk¶mÙÞ~ï‡Ó—ŽŸ:ù©m—'¡_Š[À‹C%Q¹)iò’e…@]µÎÏ)ÈAeL&ªßÉcóÅéµi_ z›\Ôèå…¼býÒÓxL]‹ÈMAñÈFªRæ%Ä ùSŸDÅG& …Mò;ƃù×)©ŽÈÏ&y56¢ÆÜúÔ/RjyçžòÛ„§£}ˆ)/(-Ò%u®æí(Òä!ŠõÝ|1ùí(˜ÜOŠ9êÉñß+¤>Ù1‡xpìmP}CІbÉM“LÁ‘0ŠÎGM2’‘Ñ(.mçÞ®èV Žý:ðä“û{<ºí‹²Þ­ß¤û¶z“îÙ³Ç8<çÛøŒXŸlƒç,…U»*²I×a’S“ªú‚¬Ä¦ÏQtü™'tbg¾Î¶þ{s{ÞŽãJU%ŠàxUd!ï;ć§"gZV^™STÍÃ÷orŠÓÚgÓû$‘œÈ’$úÁœÇ€6ÀFãº:¿ÁV`F¯a8ñyï„M.tcµ¯nߺ1ÓGÎéÞÝÁ•«—§ÅòxD:Œ˜%E5É-.êã5Ei5 X“1:–±¯ôÈ£ô&Äd—gWÄ„.Å’È™aBjÚˆü™éRäT᪩AˆIP$úV§îjSA’œ¾ŽÁ¶Rä‹Ü.øº1¥Õ½be°+$HöâÜ­W¦‰%´î‘™2!**‘ß=Û5Z™ž’B ÉK‹ÊZ²œäßÙN“ö=OÊì§]ˆÄ²¼ÐIàîG,Yôiáj»zJÇÒ¬ùÕó/îœ8ưϮµþü»a`:öŒMÌ›½§.ºDOn±9|Ñé3 —ˆ:¸»uæÒMŸ:º8;ÇÆ%$¢Ý£fžÍ‚§4Ëô`í?BKÒ¤L‹áÓ°AzJó¥¨r­ß\»2S†˜0¢hÊ’ó)$~^ &ÁßYä}"h­wÊ”Ä`)Ñ¿xLJWH‰É’‡?—ß/Ò²Ñ9TÇ<–’œ.>\t6­ZŸ›î^šþ9l"¼sugA'˜hw’Høé[ùÍ-WÕm‡ë.£Ï˜Ûö_b)6]ºÙÁ«&¢\çwaÂþä ¾¡á¦î9ÎWç<Ü|U²½Á‚w€<Å#eM’ !?FWaüišÝÿêüòO×®œ¶ó£¼3D5åƒ0S­,—«¼güò)iÀV?>}ÆŽÎçÁ¼Ì> stream xœí\Ýsã¶ï³Û€ÍKéö„ß@.×™¤Ó¦éÇt’øí®Ó‘mO‰eù$9—»þß}î.’Z”,'N'“™E“‹Åb÷·÷mÕZ5ø_ø÷bqÒTW'oO¨»[….Õgg'¿ÿJX¸ClciuöúÄ¿B+&¡’UZjb¹¬Î'/ë¯–ç§ i$šÙz~s:áœ+꿼¤iLýµ{„kÚØÚÝæ¤¡¢þËô&ú÷óè׿Îþ |0óÁ”&Fàåìò¤æ§gßœL„ Õ„Kb”»/ëõf5ÝÌN'HÉP£L}õG4À¯§—na˜µõò6½}Çrx¯¾ÄW4Nc¾ÆKE¬eõfé(ÕëäÙd°oËF×ÓöEUOñL$v,gõëèörµ˜næË›ðž¤õ»7ÑŸç§ n3Më7áÁêU2üeôü»–VS_Ä%o¬{†7ñh³ 4]/`Ö Ÿª@ß__ߥÓk'¾ôósCù%…õŠ–”+„baI?à’æ«n ²Ô?ò²]¿šý@ ÔõêÂm”uãøŸPj‘ñ‰„knœÒ°’Ò¢9kxE‰â`îÁ?ûŠšPF©&ñƒ´DQ)r¯jÿXªÐ‚0Á¬nµuúL])4žúü´jTfUPïúy™¦–±–¦·e!6´DæÎ½‹ idKð ^(ku‰œ„‰sÚþêÑU»~Ñ^q ³<±owÙBö/JÌøK1ž¦y ¼ø%•Ñ’º ¶’¤aÊÊx`®£ç`AÒ-ôL Ê¡ˆ¡¢QÕD¥˜±«nœWñKõÚ&‰¥ÖûË’è4 “šP˜´Û*T¥—fº:T-ǬNxâ¼C†Xôe%Q²b”h¥<þªHÆPlÄJ‚æ J„7 Àh€UˆùÐÍ#'ÏæÍ8Ì[é± ´ÔÓºÏ ¶ÆÅíñ­»±ã¬»Ñfœsöøö-RÌWÅ)Ødßò‡Aûý4DTŠ[E¨p¶Ì) vwç0[Q+Àk>Ò” å?)3Y4e¹eʆhííãþ…2‚‘U*Ò_ôªáL)@‡× ΰÕ±í̓ Y[‘¯ Þ°Á± š$+—;…™²±àÓ*wJÄji3žÈèWÂé'• Ÿ`€ŠB¨ÍÑÙ0ËEUwç>-ï@@hB¸å5ô yá£a‡kƒhò¨wØ÷ãwô:na<“àYÀÿ¡Œ>ŽÓ`LË@:çqI$Æû&!÷Br‚ñååNméwc×`k!ðèb‡·Iã%p5qcöBŸm¤CÁ%M‹FÛLX‘'Ä7Œ@¥ÎX¤÷Å]àèø1y+dUºw "Äh|ð¢ŸA@¨´Í"­Ȭ«çtyWã Û«Ú ÙE-E[§H{öÕów£B™ÃÜÙeQ ã»-ÊŤÄÓî* ‘»c\cQICñkGÛ;û»;€[@QI 4=ÈÝ=’wâ¹Ø·½ e2·ªüjicëM³žu\/¼w2£Ž©”Ì<Õ 4±òGttå*}ѽ©äàçˆ N#ä+j+_{ÔãôVÂÒ×xžpÂr”pf©4µÛ€Ûæ’ÏÚ匃ŽÓîÎáù…dê°übØøš^C‘<~þ’˽M4†³9ùrv/90@Cè\S°S“yÑg»ôm„/Žqv¬–±Å1‚QÅ11E\ ™>(¿(ܸNê/¹¾ öîíï“v Gn=ê QZgiÍ’#f²ÑåØ~dD7ÂrÜ¢(p2¨œQÊ/…C2n…!ŒEH&š†CR4 ÉÊ¥< I ÒŒ‘,7²L÷´óý®§Ùp%n‚0K!¥½¬` @~ô'SgûQÊbÚDALß@PϨ+‹ °QÝÝ9Àmi ©©¨„EìzRy¨bíçµòü½àµ¸yPiáP¯Õ†¶tp1Çm逎ê´FnçX“x¬ó¢Ç]Ž rƒËîQ:ŽÃÚ*5Ü“óŽuXf|î1T%€Uìb½Ç³ÝÑiï².KPÈY PL q5 ÅÊ. hÂX»Å^ØjR€¥®8Øì:Ÿ`üÆ:ÈQÞ¬}p×ùž{¬ó G)éQ%bܾ÷Ý`Àù¤Nª÷~I çg$ø‘È@NÁEdp¢Ñx‚ã4‰@š½Á)ÿ=V%(‘iõ„vÀu>[aêOroÊè3.E¼w›.µÞØý0Þ¬x*O£ûau?ð=Ne€ ÇCzê)%ˆûùˆ’ŽŸ þÇö;ùºÛñt™”d^xçëá;]¤ˆZŽ–ãØ"×ý§&/ŠKŒqÈó@pžó³,“ÁSsJF¶&^=ÄÜ€&¡H³7·{<݉#=Ô æC­Ã¹çåà"Õ›62ÃùÐÏGè~¼ZaØâ‚ÜZ¡kï¾Åñ‘Üþ|„îq‹9w¸×XWŒÄ¼¥Oʤ°çk{ÓãB¯¡}-¬YLðt0ž¬9Šc:¿wœašRMËu4PhÜux”j`ÁŸäÄweǨÒí>ØeX÷Ís8 ÚžhP=øÔD7ŒPÉíPù7–ð×Wë‰cpm zˆŸ[ñÖvïó–†uLóÿ³Éõ8¯š~QØ4ƒ´ –’¹zšëîà-hŠ4žÛÓ†VÛùÑÈQŽÕìv3ß¹*OäV\ù °h¨¿;Îf¡tŸŸ¥&v`Oìôlž·„RaÏpÁEëÌEc%šá1¸»(¸\Tç#G9ñGÙæCÝëÃÅãT•‡Oºt-ްo8¦z=œùž.ãSÍ>î+Ü>n )xdºGuI­û: ª—à hcTßw1%l±í‰B×#gv@D…#Ÿ6ä×¢¸qXM8x/%BôðÏÐ?BÑ5Øð-*Vß…¦¾6Ð [´í üýéÿ€ GXúì[ ±oÊ:wlÚ&±T(H–sVøHý¦$E"ú$z!%`%u('àFÄWX_Îð%Oê\XŹjpOsÂ|„ìîܧ é8mÑ÷“‘$è©:Q…¬¸Wò¼)v;´$ÌêP¿AT[»+bTZ;ÖnĶÜcþa‘”s¿½Ü{dŠ0…XîÊPò±+3%±o Í•” BËù¸Tæ_Kî0¤çß‚™‘°¥ h°X“ê -ë çùÆ÷,ƒB£8–âäÎ- F~C‚ä˜R ’³FÇ¢Ý[€$‘H²`€1ê´ŠHÙ„šãrÀÁk*h;Y7•u<ø5õ—x×W«eÜç6À¨Ioœ¸ ËeÚü%BäžjÔàgŽ}`¦Šé:ëô2½î™Mº-·¾ïT²^NœUO˜Cv¡•‚ « µ£õ<%ºOsÍ «FªaB©ÿ w(uëë´ÁêPp|ç:ADèë@¼¡e½˜ú¾A†ÖïÃ]ð‡ÓÛÈÅ]«®ÝC0 íVÈ»¶é…kÉ#xhE!”°ØŽÉ_sUhíCá'Û»SOà’ŠÐš‰ºÌqˆzÌüj¾˜®Þ÷ïLWWI—¦Dånœ\¤•×NA„3Q“Nq&?TG!úîŠZÓTÕ=#xÉ1«ëx¡ –e¼^®Û )»5ÑNѾr¿Q_9¦nÜ >é´=•Pá_‡nIÿ,¦××i›®MèeÀdâVSëeÒ{kÓÔ´þîTšà.úô:nÖIÃ’¹M³SÔu!‡{1{§ë©æúZ Í7ÀÎþ~röÛ—õçØC eÄEªŒ7à1åçt+0JAR¤‡5|µŒÿ²š;FÜ[Èþ~ºú Þ´&Ž»eó|HàêÓ4n9hšçÛšDrÅqÏ@l9¿L…ìhJßBÎ]72…Q·@Ö‚éL“El…³‚¥=×Öy«-?F ÛóUB*AØvzF×ëÄð<Ø¢ÊÂLÚÕ¤éׂœN,„§(Í/"Á—²$i‰éšÝ|SŠpo£ÇzKF.©·éÙ( ý¤èH±ÐÖ×"éi¯® &R ×a.WWIÝÏ6’4nÝÌ“|"Chðzç.…{õ¬2s:Æi¦¸YKÞ\ ãx”õ|[•ZÍß) sÌGñ\ò4ýM®}ŠÉ¶ó[ªœ¯ØÊœÈuzžZx:$ry+àŽˆIçu™Ñ<±—,Š(¥9 ȶÒ}·ñ–œñž—#.,z0ú`Gu‚ê–H¦•ȧڎäÛóíƒÄױݰv)¼Ïpà3u H¡sóªÍ†tê俟.uîZÙB(Ò+ê0tªÞ!tüçHGüø ‘A‡MË¡¬â-©bGC¸2ôN"Z/Cÿjì·­}ZÙ&|ºoÖ .a‡}ƒ9e)3Œ²É`\ú›xh@D7“òÓuÛüX¦½™×í«ZÃáä±sóm –¯‰ñà_·6ÙúQÀé®7oØðШ3K¸ô-œ(˜þð"Lº `5{{Qï«ú£6$ùëò+ô>¿ŠÞyíÏ#ƒ7 UøVýúîæ§üªþôÙgÏþøìóÍòúEól1ý~¾™­^°¦i^þ@÷meêz¾ùÇ.ÿdÒ_ÏÃyHO6°ëœ¬ÇJYÃsef‰E@Ýݹ¯:ªñ0±ÕZÅØâ× ëcÀ–N>OЦ‚F)¶£Ý) Ú¦Á“{Žý/°&Â0¡¡AÍ}Òµy3 ?z§7o¦«*…æ’*̽tÝ{¿¬ïα.zÛ¾ }&PM(ýã¿çó»uÿ Ö¯—x£-sý,˜$ŠÎ ÷š]¶D-zQ‹ÓàFý ›&š+‡ðÃÈÖÒC!˰è Ýñ¼Õ®ßyýë@/‘ÕDtÍš‚p“QÀ~;à‹ùS†ÇZ¯ssY ØFïàºûÔó0®cr 4‡æ'ÁŽðØhà¬4-˜¹æ¦ ÿ!­–¡f¹ T€‹?pÂ|ÃFˆ*pÓše¢[«Û7N»„Û=îò“„/¥qË:°õu`+¶‰}቉‹ôu8jÀì{eľÄúˆø&(° NñÖï=¯Œ‚[ªc¾g>Ð÷³Rukî=U» ”x{v=KhÜ„âXÆ:j°ÿåÉÿ<:Çkendstream endobj 172 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 192 >> stream xœcd`ab`ddôñ ÊÏM̳РJM/ÍI, Jtwÿþ©ËÚÍÃÜÍòþ»¦Ð)ÁãüG@€ÑAˆ‰‘‘%ðû¾ÿL Ýk~¬^sºœñ{ý-æÁbk2Øu:¦oÿ±Ÿ}YgO\RrX±N7Gû²îƒÝG—qü™ÊžÖQ¯#—‘Ŷ¥ïa÷ |Ô½¥ƒƒ¯lÁçYßó§N^À¶†ë:·KH>çò˜0¡§wòi"Eendstream endobj 173 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4286 >> stream xœX XS×¶>ÄSD†œFBÓûzoµ­C±8ÔRêÈ­ˆŠZÑ‚È 2…!„ye$ &™‡:Öy ŽQÑÖVn[‡êëd_ï{Ýé·}ß{;©¶_ïwóóöÙg¯µ×ú׿þ/Êgååå5îƒe˲³²WelÊÊŸ>mêʤ䂌M¹î'/æâb׿Fù‚¿7øûì|‘“ÄF±ÁÈ+ðRåþ¼ž•½-'7/¿`SÑæâ-‰I[“SV¦†…¿<{Þü‰¯OšG- R‹¨ÅÔj)5“Š¢ÆQ¡”7õõê%ê9ÊCùSc©ê]* ¢‚© ›b¨xêyjqŸò¡¶S¼F…Úï½Òû ŸŸÇ¾³fŽ-¤ƒè²ç^ð›â×?¦ÉŸçß6vîXE; > ;.¼ôaPUЩ ïƒƒ‚׳§²«˜¦ýùe¨'ÀÕÔïˆu°q¢XgÓáªéäºrAtk7ÚJØ7B—À‡©E4ãì6èl[x‘,ä‚—eƒ·ïS]ã8’•ÌžMB¸æªí¾íÁ ó  ™Q7¡{¾x)ý`ÐÛNTúU3ÑuÈ5†£kÂ’â¥wpg—AaIåáQÏZºíʜߙ¯!懀’B ±7‹$Û—™øŸµ7¿CcyʼêÂh‚íµ†¶ß@Ø$tx»òQ0ÇþOܘaXjåfé—Z+wë[ûº¾…€9S£*Q—tA/èu V'W[«oÉ„<•*¥› ð\Hž-K¼ùsɽÒ÷Ê$kd[7¦Mƒ °ºJt‹VÕ©ªr |e¡`W)Päv‚j5u}û’«ÚÍ€ƒÿ0ví Mº3Æë|HÒ¥q¥!6GW§oL4ó•%âe1åù0ÌÇô-4³q’ø¢ðáø§•‰Áá,†®ÔÕëšR!”$–Ø&Ã¥³}ß] ØÈÔ{wY›±R0¹?yBoÀÝ}¶{CŽÄºóÄFÑèíèf›«¦‹cèÌR ãY'Ñ ¡‹$Bÿïdœê˘. ¥óæ±ÇÐ}mçͦÿ0{#6 &_Ì#¶÷Â>ËÞvšY’®h„:Þ«Ö½¥®g®9ØÌFW£Û‰\’åM 1Hu;Q·êÚ–/ñ«°^Q¤<³^ÐL6Öa®ìÓš4šm¦šDûS8”!Z€*1w`2͈‰Eý¯ÎW뢙ˆ ûaõ.^;A 1‰§üÌQæ+ø›ŠÉÄ’Äx¨à-ƒ”ÆÝæOô¡×ô#0fw£8<ÅÈ×$ ¸TnúóÀp k< C/¡‰¾{Hi·=…ÏçFðÛDƧçÆüÔê±:´·¡9¿qÚÖC<OÆa¾[XLÇ3Ðs#¹çCü‚¹Wp`6)¡ÃI&s††Ø ò%°ƒ°—÷©«Eýiºf=6* ü^ݺCË5=ÍL‚É„–`„–,g 'ÁSœTäˆFì‡k½ƒ}­Ã±äžEîåƒÑƒÚA MAë¥Æ¸.¸^}BSOÌSðí,L¹QFSE[%Å¢ ZÍRÕËõ4L­ARßó<õlISdƇÚ•zfS™rc8ÞÅÄ¿êÊÕJ€P€Ä·Kr“b·ª„j€J³¶š€ƒjÑ ëryÌ¿nƒÂbEŽtSÛ–Oà\F\c¸Ös;Y 4Ì¿1Œ oòâÚ³@F¼(W‰ +ʶmxfÁò«¶oL‡¡Ñˆ°Ôyн´ša»ÝÐA[^xÀ0¿(œYˆý?{ ±½G~ÐÙGjâŠ;‘ìëÎ:ï®>S¢_¹ŒV¢ÛðŒìޤÚнÓ»ižñoLúÞ)8ÔÖÝA3‘É2Uéžßê3èmÓ»J>Ÿ·Ö_³Ý«ýîöÅ«pv¯’Äùç>=‡ž'•ºÍÅÙx1H”åE™®’dC,=¢úšFGYPƾzÄZÿx qdÒL(ür<âðúï’Û€^æàzVëÀ•“WáœÉ­xu¤Q0á¨5Îç¢;óÈïN³ÙÕæ:Á±œ›K>f}Tú–d wÂïXoÉO,Æàn%㇠«ÕS)Í϶’ñ,fÉ1Ôï‹~ǰ‘8€Å¼f:T}ë2tB¨Z¡Kì…h©5´{`^|½wúä9ôî¹ÌslÛ™½Ns !õýN8³ÂÉ?ã ×\\Ž~{i×jCœzm*Í\N¬*M¯ÿˆ7ÞŽ(%ÝhM«**”È3e)–ÜJÑìxñb•¸4ìÛhô<¸¯Ñý5_û$G6´ÑâÊĦé@/dU@HµBøòI® ˆ»^”F¯¯1Zhæ¯J•vGþ'¼ðÕuBõÌŒC§¢CÔ¾ÝÚ¬¯Ñh¶5I-`‡+Á ^½I7_›°VCê!óqš¹tÚrtÿ1Þ Ø±A²†>Œ1Gš0{㘋÷Uî×ÕÙº{ÚkÍ0@ŒR>÷/€0l8[´zy„¢÷¿”‰](úOhöãÒK(Ö>"*Bÿ=™HœKs_ìïÕNÄr.qœI¤¢î‰]½9†î<’¡rÈY¦ºB²µ²ÁtÐLYÎkMòíE¢ªë}ŽÊ½5_/Ä~„´²†¸fs-×sŸDcžÅU.k'Jó½Åª' jË®ç+ ¤›H¦ÄQòÌštšùVœimìà‡ÞK•»è ègNE\ìŠi@¿ïyó:‹ùšz;b*Ö”ÈGl¤s–= aœ®#Ýéå§z8~ùwUàë‘YxìSqv.š™¸ÚÕÄÑ·7e“Xä(²åÙuíЭMC v . #Ú{1I¶­äØŠþÄ%â¥ñÝh%IŸÝ;nb¥D"OOÀõ\e±"¿êÀ`0[zº÷×Aè‰G•γümbs™©è¤Ñ`®$M¨£°–´Ò%²ÄÒðë ‘ `@¬ûõÈ{Ø­}ä`½ŽÄÎ’ØI.#ŠäTß\uvaã—m'>1Ÿ®|ÿ–›„üaÒ¼Ò9’•}ënæÐÌÀ<~dLY„`Ò­™î5ÙðËÝÚïé´‡S¾rQB$yW$¬>`>e>váðçp >Y/YK§âÝñ¢wW…“ç±á°êT•ÓâpžÿÀÁÊ£ÝN¡Ûè—«Ìuc9”n*#22C¬Hàã®JüvSÞNq±ñ_ÏÚàì~ÔGN ³ûÖeït‘³É&:§ö<:¼-¬Dȃ“öc{3pД‰“A)š¢ZƒÁhÔÙõ͆AÈ/!HH7.p Ы(¸ÅÑQŸq$±_s`Óåê5wnŸºû 9ßZØšh,-p»â*ü†£«›Ê+±-墫ˆÈi›IWªß^b{Jµ@‚ÿoá–Ë„Ê"U™Ql–¢£8‰[-Ѫ‰,†F«~»g­Zt–£­–UI*ñQ”Ä™•  _¤ÈWUUX¤È‚—rñU¼T$u¯ªÈ·‹j‰ØÓklf…¶p-ÆbÛï|–ˆÕ­M¦Xñ¨/óPh=ò±?r…öú7uU&½Ö¦1©I²ó1—ÓB<¦kzÛº½‘W5Ý æɳÖ²Öâ\“qÛ‘ÍQ§òH¡”ª+TB³Ô Dã±—‡‰£J&,Ç/áIÓJÊ%r¢(*´ä Bwâ#î>dö,¦¿Tq)„‰p‰QGg›Ušû²ž¼äw–[]YS©«×è [¿ø>רj½dèИ=iä4 K#¢!«|©*çõó$:*B!Š•Be‘Ef•þÃÅ~1eÒR™²4(yÖ@/^ç2bYŽh©[( »ˆþÕ-ì9–n}âÓÝ~Ne_Nk:$Af†tž&^ØHb yšrÈÓ`/må©v4—«o7ØÐ‘кLŸ%C]6§^Qè/*Y²> stream xœbþLMRoman6-Regular‹vø·ù-‹ ‹ ¯÷ÐÍÈÄ13Qô÷¬ÿc‹²øŸ²Ëw÷¥áø²`$‹˜¬øº©‡‹mIK%‹g‹d¥‹Í‹Ç§üj‹~$`dÂًËËً‡ÿcv¯Ê÷÷¬j¯õôÀ¬êõsõ÷-÷ø·÷A‹ÔSØû ©Ú¥ËË‹ÝÛ-Çû û 2U9`¬Ÿ¥¦®ªupº¿æ‹”‹¾Ës8‹Tl+'…ညyp‰‚ЀЋ|{–‹œÅàÄR%ûI[Bp$‘Å^²›¥‹¦­s¢jpmza(÷S÷÷(îêîv øCš÷o•“ ² Þ  To «ŒŒŽŒ’Œ“Ç —­endstream endobj 175 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2770 >> stream xœ­–{TwÇ'2#PP†€vƭ⃪»ÕÓµVk[Q”­õ‰/4 „G !¼}‘òLrÊ„& Œ°EE¥ÅÇV»´ìRõ´õ몭¶¶üÆ=»[ÏngÏÙüò×ä—ùÝûý}î½_æ2‰D£—‡®T&ÈçÎX%OUÈÔ·ãøÁ÷áWðƒ‡KëóÏEx£ß¾îÕ; s~Æ%*Uêä”Ô`YDfd趨hyL¬"ahúÌ—gcØÛØ ìl¶[ƒ­Å°…X ¶[„ÍÄcK° l)Œ…`¡ØŸ°KØs˜æù`ã…X0¬û^”#úzDýˆoÅ¡â½.³]º†ºÚ%Ë$×ðPü4ÁŽœ;²zän­îKÜsÜ­îà½xròÞ‡ý`*òBäýûÈ‹z¥T ÑðŽz‹róæt¬“ò~’Cß Ð=L{óñcÕ­Ðíñõ± 2CÈ!a~-‹¦3hÐfb·Û¼‡ú‘ùª9•ÛRä=íï¶f}jDu'‡ø©ÎüúŠó¶ÒÃ1¿šß\Ü’dûäŽFÜA~ô+¾¼$hökáQ––djw=¡Ž@*œtûÀ~ªÞ1þ³Þ—yŒöä& â÷:êY…Ã{¨o躹‚É’îKh[& M¡ô$ä]þşѹÛXi8ˆÔŽaÓñ…Úò6àíåh ’Pz\§ß‘Ʉʴ½ÁÔPÝLyþSTi$aÅ,²G»‹9 ò‘ÂátkjCì~yÉ[UIE +¡‡Ø×ฉ°’WÕFÊy•@TAI}¯…Ò¬|dí¦tºìì¼|…YQ ?&naX|URC*mWÈ=ž}üÝZ­y{Y“QÄìɰË?éË“Y”¶L_œÄ.Èɤy|;dW u{©=Åå•EEŽˆN-#HèÕñÉZxO›“’EËÓ½¿ïWÚzûÁæGÞF·Ñ(ir þ–B._ ×÷R¨ù³¼?Z®Äõsb&h 5N~zo’ð.WRº)rÄ…–ó}‚Ü5ÎÕ!zLºøçAÙ%]4B8ÿÒO/Æg­_øj~ÇI }ñä—Ð΢ùB@ÖÓ”Þž{N@WCS/axUâÉáÀ>±"4aPŒ}Y5>OWÑJsf¼ÕXq™bXI„6¶ +" ƒ_6fÉéa3.×eÍ£Ô I{áEèÖEh×>­&½É4‹ñ>w ÍëÿDH?œË»!=­\k`½\Gk(ˆ ÛÃÛ£÷o¬^ĜŲe Óv‹µ®ÞÒ^´Õr´´ ˆã=Q³é8|îÍü¥ñ1©ë ’ 5sïª.|~à”­Š"ÊŠšäã™sÕ—i~á )ɼ™°eÓû±zþ‚fSNô¦AÑÑPb„}T8£§Þç=‚6Ũ’)t\7´¾eÃÛΰ[Ž)OÂØ‡A ›òÖ&E¦ÆG(ÖB8D5&·í2ÁY$[p¨Cy½³«æ€ ÇÁd‹Ì²Õ¸âªPJŒ—1=,§a½ë¿ÌùÒlâj¹IR×*`7(AaP Þ©9€¦àÝ‚œÉ|öÞUç ŒµØÁD±8/Öja%l+«ÀC®B…f ãcÔ+R×&…ÀX5l¯Ô òþ{Û{öq–ŒšuæU¸#úÄŸ;>8ÕH¡`n^¹eoûyãXÖ3gZQëÍ&›È~m¹%æÞ@îÒ h5 ÛžG¥,Y•IJ¹'ÐTô‡ËGz+OêÔmtZAú.H$’êÓ-S-{vñÙ¼ÏKøÑ¼ôÁ4ä†è}è¹RÊó‡…OøògûX.øŠø__6_ ê^€¬ÍX>@5°ü|IäBn&Ÿ2|~ ŸÂõæÔë*ËÏW4HŒšhz8WÁF¡œ2Vº„FV­?éldþpÔJsûpƒéÄŠvïÉ®€±åPTº§>ôcл_À£ušTŠBÒ[xª¡ú᜖xÄ…Ú¡`Í 8P6cøp¶4A‡²«‹úüÈ E\ÛÓZãàäºÏ ÂÇâùÅáݯ }ÄkÂ4^ʾ7¹z¸Ã´—^†“S1äç™ Ý™F…[Û3"Ço…ÈÆ$GR‡îCØGŠ»-ÍûÚÙnpÀÁ4kTÅÐC†€‹èìtç¥Ä4¢fŠöâã[)É/Î~W›[ §býgévÂFˆ°¦Øãºô½à Љ¹Lß®º- ùQ¼ßwS'òìj ƒÐ8)_ )E3klp zeÞÇyÔkn°œ+‹ Xµ0L]ûàÆž~ä$nÄCOé¨ý«)òÌësWL¡y|¾âÿ·_éãýˆ`yw䊓>7»wPä‹eP¦+PšºšHªËd¬{ë,Ôã.ÁGXÑòs—­(×êÝt:y`÷iôü€ý´éƒqÜiÝ.621\#¡TæmU2 ¦Ík–×ì¤u:e l†Ø¹5“ ïhÂvDFo·èë•Èy}×=Оq(º‘ZÕòL‡tˆ‡cbq†U¼¦¨º´’ÙÁîìâö'/u)í»«èƒ­G òµ9ùIhJ2ªjÊLÂcÒx™"˰Yð•Ùj´×6ÒÕõÖjƒB#ñ0!]¹ |E†h¦½uäTMÙGWé¿Kö!/ýkôS—‚ž`õF%îçÊRØ£XEèÑ ÙñlGªù §òÛ>Eô‚æñ]+Có¾°9ä * )(zŸæÄ8ÙÃOržy¾4O@ÜôôM‡&Ã!¨@íÒä˜UÜ=isrcBBrrBBcrsscã£Yýè¡ÞÙº ïnCU¾O"ä~ÄÉ1ŸN8µú.g”â°L쉻S3OüÜùõ# ö;•[÷Œr×À×F^i‘›Ç™rmÖ‡‘­s`lX—¶™Ð%!mÿ“ãÛƒ°ÏŽõžÚ»mñ/IùÓæßÜúŒ;ºëÝtµèî•»…‚sëûÿ›Dr:ÌyK­i&•*5M¥2§Z­&³•BK|ÿëÙã»âßLCk&B!ŒE¥'µm‹ÉP©Tuª¦ºâ`îTA>äùŹ%åWÛÓ‹þxabvRÚ”Ì,¨ŸaÁ™¶[{>]„ÒÄÜ"_6Ÿ©­ÿiœÑÕTè²ßƒ„¡Wgअ®Â£µY3©x…¤µð´ kZŸºŠTÛ%„¡-I6DÜ;Ëxw Q©èÜ7~¤‡†‹C ¤pmIÿK¦[-‡>…‰?öNœøúŠ7âÌMM&SE¾€µ$WÇRÇ™ú. >¯ Þ”·QE+Âct‰:‚¼Ö­Së g|¶>Gb÷{PK‘\;°x:ï$Ë(ê§[óm ؉ýjS¢:a§lÖ­%ˆ@£o ~Cy¦š¹ÀZ”X^l–°nƒî”›Ëj¥ÇÈFƒQX{ËXò‡†ý ¯íiŠendstream endobj 176 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 592 >> stream xœEºýLMMathItalic9-Regular‹ûŽù%ù‚‹ ‹ ¯ø³ÖÏÊzS=[4ºˆÈ÷¬ør€Ò÷ËÒøU÷$”„Ž„‰„‡‰pAD€q‹x‹wm•w‘s’v‹‹‰‡Š ¤Â½¶¯ÕÊ¢¡˜™ÝÚ¦¾‹‘‹‹–~‚‰ˆƒ†~wp`i‹w‹~–t¥s¥x–q‹>\/rˆƒ–•Ž‘ŽŒž»Æ‹“‹¢‹£„¡ƒ³~œ‹š‹lhS[LUY`lmuufd^N‹€„‡“”‘²Ç°–‹¤‹™|¡q¢r¡ƒŸ‹òÇ÷¦ÿsÚuªù0§÷HÒ÷‡ÒøÉ÷}‹÷)¤l’0£j“N›‹××Ûãï³²€o§±fŒU‹q‹j‡€‹ƒƒ†•–‹ž¾÷]Ž–‹‹Ž‹Š–€†ŠŠ}}|—˜]UfÃQšV‹ûûûû b˜i¥o¨m¤…Óxßv«€¬l‹R26-'Pû ÷”‹š‘©‹Ž‹‹‰’Іz‡Vûl…†’ŒŒ™˜‘’¨¯—˜¿H燩‹÷÷ ÷÷ÿâûyvú|wÄø#ø\ùl˜”€}‡ƒ‰ŠûõþJ…}‹‡‹‹~•‚–•“Ÿ’÷ïú<‘™‹‹‹u¡øC–––÷o¡¤ §  To ¤ŽŽŽ“Œ™‘ŽŽ› H¾endstream endobj 177 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 294 >> stream xœäþLMMathSymbols9-Regular‹ú]ø”‹ ‹ ®÷ŠàÛ× arrowright!¦‡,›÷¬ÿ`÷y¶ù\÷Ž¡x‹{üÀ}v‹vuž‹›øÀ™ ‹ ÿÄ”v÷…µ÷…wÙvú$wú]÷Ž‹‡†û®:çv÷Š‘†…‹y……†‚œ/¿:ÖUý™}„€€’™ù™@UW:z/‚‘†‘‘‹Œ‘ ÷Üç÷®‹•³ù§²¡¶ ¶  W/ ¤ŒŽ–Œ‘” íqâendstream endobj 178 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1208 >> stream xœmT{LSgÿnÛ{Wµ ô¦åÖ7ŒÉÌŒÜ#Æ'ø©B‹‚l8£P²ª-ŠZéœ" Åøçk,0†©CЂÃ*¬Iã¦clNºdžÛ}w·Ì-;9ÿ|Ïó;çü~‡! a&xA좔5ëÂ'Ž3¤®ÊÈ\Ÿæß4åñ>= *9¨Ÿ‡²Zõ“à;↓±X³R6˜bÓŒ+3Vb FOÉ,’Læñ$Š„“¢'q$PŠAÒ¢’Q2fæ¶l¬l‹¬_)/—(ÞRìÁ3/dŠS¤Ê&Žt1^&{äb´¶/Ut~ÚOAó£ ìÎ[ÂlnìàbÖÃ]Æ¢ŠÎ†»½ {¹s ̱´Qwæwà€‹ËѪ©Å3žÑa@‡UQ™…†X¨àƒCU€OjQ«œY¦YK‡N1FB®žÀÉï5Ý€np%IÊ—°h¤ ç»ðAó¥ïJÐŽá:Í T­@ÅX0À[⊲&!‚£¯?WKÐ.aÁñ5_X®ƒî y|C•Óµ¶ÑïÍ€u$·¦À Å»5àRáԹƣ Ð 3³'HÁ˜ŒP"ep¯ùl5²î…îÍn¯;„ïÇþMáµÕ¶•yfÐ} Ÿí¿rK ã´²4Œ«AžâøyVʳ¼ñ]./žýŽã é‘<ƒcî7 ë†«ÇkËý!¾/!ù.}'\cÄqZÖW?ïž:=,Ù´Øj®×].o‚‹pÚ´)rÛr¾]DCSrÞÙ¶¼lÊ}¨€Å7/ØÓ…ã(h sv¬MËùdCš#–€éhi½³'ïm(öê %4¥Zú[Äl5_'Ö‰FT¤é­¼¥Û³”®´Ë„qEû,,Lã áiñ!t›À¼ÛzÀ®ªvÔì¬%o<ç´?õÛ”é/ѣ殥^L;¯)í2˜æ~ºÉ`ry|ÐÓòðw¸ gìÓOÜ’Κ÷Å}Þ¤RO3iÐMÊ`0| ­muÊ@ß‹*›OŸÍ xD§GîsjqŒDyÊqtý)qâ,dûHçàU…uÛë£ÄIÂæû,e9:æ¹^j6 >Âîâ惔ÙÝ9¨nshÂ'=ÈWž¬w—ÕírPá9aÿ‚îÂéͨ–(š‚ÍÞ³Îëuk›q:P9P6ÌJ5K(ÚmÇ.Ô–Þ"’b ³`*$ß:ôX‰•Í ÜéÞŽ¯Z¤›2 üÄ‘mùAÖ·bãUFüÍ+÷Íó5ÕϦÿBG‚’¿DÛÇIÝfq*‡A€êþc¨PNÑnœ6#†¾&] ãÚ°‘•(…2hŽÛð¾òM¢=[íõ€ÇÞs¾'ÖÂÏû·:c!aUjª’Ö…lÄߥù¯D•üVI¥R!ȯ~´¢1Gõ©½=‡{úæö…ðßâDíÑ(}0nÐÈò£p™Ø®9ÜÇNâøÑ9“¤wò™ÿŒˆ%~—û–úq8»J~¤ 3@¼%9qkoô3̆E©+Ó+ݯN çÍFïÐý Ûôö4ÿÄøÿÝÀõÕ¢ñ &UWVs®¡}ÃFU$XTCšwIV\"yY‰JEÈŸendstream endobj 179 0 obj << /Filter /FlateDecode /Length 5960 >> stream xœµ<]o9r——<èX“§ôìzúšßä-ô`îcƒÃ—UÒæ0+ËrïÎh¼3ZÛ2ÿžª"ÙM²Ù3²¥ÃbáÑ Yd뻊üeѵlÑááßëíY·¸=ûåŒÑ·‹ðÏõvñêâì·ÿÉ%|ӺαÅÅ›3?…-,[eZ'Ôâb{ÖÈåÅO0Vºl¬iípÆÅë³Ë毿.»¶S°Î5Û›å ÿr¢S¶Ù÷×éŸëÍr%oãM6îýRÉÖYç`H m}ßïݛøÙ6÷o“q7ø½DpÍŸÖ)€ÃmÇxóvÉmÛI¦›‡wË$5‹Û°ÌjØîmöç."£œ´°"aCÐ`7É*~E?ê.ùþ:…Q­S²ùÐØE‰ ü¡¹ÖÜüpñ@~ÅRò ÁZ‰_G Ù-ýÜüè¤i¹qò»”Ô×Kœ-¬n~^ßVö R8+aUÛ9»X ÕZ­=¼Ÿ~ºd?|}Õ°Õ§«åÿ^5«—W˯ooîÞ>¼£-]5ÿu~}Õ¼|ñûÕ««å‹¿œ¿\½ú†½øtÎ~&½¸ßmÎáÿÛõÇþþfþ½Z.WŠÃ’o¾!̘h•t|qñ—3\—g뾪®û Ö}Ië¾Z½|ôºÿ~¶b¬• aE‹Z‹Ø6ÿçE##îZm­À]]|}Ù\5‡MëÏH9ÕÜo–+Ù,€×tÒrX7å›×8¤C覿‹ŸEd?å&@ÕÇGX’3wö×áþæt‚äŠàJÓ¼ï™nâ°‚7ë}O,ã¸h®–ír¥•%Ù¾HÙ¹÷ …IÌ›uøèd0,òn2![gÜ€ˆ¸)€vŸrh³¿«nÙ)õR´¦R y)¥ÍÁ±Œ„‘Çet` îï’³ ‚%aÿ^°„8µYß%£^ûïqÑMÿ3¡É´Wl8Ü(@kþ8ôÛN |ÁT¡Ž`sÀ#ð9¢Ž– fZƒã8Ö Â4 •@ô‡_dpÖÛ’Ai†0Ù.vawÎSÞ l®r©©ûínÐm™…Ar‚>gÍ ð4’LjAH$ rÌ0Ïég;óFR-öŸk¥ä-“r¡kh!/›—?&›Û¯·;xpH ã?Åã6ñ¸ý¸×ù¶VB3‚œj˜Ëæû„Aa6R‹æö×ä§:ŽŸ‹cºµ`öµ°-³Þü_5¨äžF48)à_›ÁeN«ògƒ„s°N§ A×¢’ €Q>þºCzq4R`«K]I߯O%:*·`K¥(=œŒŠË|¡TiU™èZã‚cÕôLµ >W€YÍÔ* Ö=Øò°3çõô‡·¹6EL8ìømؼj {º9©¬mÖ¹ 9Œè—ê[ 4Õàm·ë@âÎæ+íÓgð Cƒ 'ž9•ûêY02âÈœ3¸'~iªÍ›ÛÒ DÃ[‰FVÀìn’ì¼ ±Z6³Ôoƒ+ÍA÷08AÅÉ ïZ­QýÊ`ðºŽôÏ÷ÀK0l°úuO ^Ôú€ I (íBÀ4°Öa•Ü¡ìÐKrq•‹Òë ˆÎAÁ”)1C<3®2 Ñx°óx߯ûMá¥ú9 Oë`|…Ĉ„À.ï=o21ì èŠL6šû»û˜n²MúyS¸ƒÞÚ2i8üvã D¿!F) rˆ®|ï]&%î ·½I9½Ôm´Iœÿ&L«„f4ÜÁœÍ —è>QûCŒÄò(ÎÉVñA}¯¿ ÒHFÑü>£s½¬r…¤ +̾£˜ÔÃw©UzáU¦d®N¾Å›„‘½Hagþq½ÍÎ"CòE/MAZÜš?; ^‹e5D \® ˜4ç!ÛÀr£Ø‚ïâºf -ª…ø°…´ÊåÇ0$³¾hÚ9†üói(ÛÚ^\«Œlø‹` Ë;‘CÉ÷Âd+ûÂ|/ q,Dà1 ƒ”fÎ1ck„†ÑZƒ¯( '>I’æñÒ#ÙRÀ¤%—ÕCÆ/eÃ@-j‘Ô`çüêRœŒžÓ­ç[ÂÁ+©ZPØÞCEßK?ÁG€àѳ襅)IÄTЄԳI½üœ˜A|¹éd6 ¬Ÿ~,s\^¤ó„\¹Îít¡b+Ðcöà'É…møÁæ–|}0rœ!š1SµËUÊ·è0Ê áÌ•ä<õè=HVÆ»7øà™`1ße™ZÀt v:3ƒ}î‘f.ñ°>Ð`7â4kÀö»$µ–Яt‘JÊ€½Ûö÷ÉXx¹æ»‚Õ ‡'srÜ‘OXœ3ž-w˜!•ÓhÈù|D%(á£OZøA¹³Ð²<Çý5ù`™ç¹¸Af‘xÕH›Vó¨Ëcïï×»÷7{6 1p»”òšÇ Xs Y’¸Øâ3h”Ô­Ñ tÊ‘£F‘OÑ(B´|ÏèeÎFû]ŠÖíÛgU’ü-§(¹' ¤:…@ŽRšOIñ‰zœœ“»3”O˜ñéè2Ø™•Švȹz›ÀÀJ mS —C^ÖKj*Q›u¦…ȧä¨a_‡:‚Èê 89¥W¿NI¹Š$Â+™"š uY$ñ¶IåäÿC 7öa]8 :ÓùjÒ€7Èhµ–ƒKœšœR²5]#ð³ *–4ð~`Ñ´Œ38ûU:Õ j4¦é(ŸÓ*}2 û1uÇðcÕ¡‚#=´oë0­ÄbÀQÏ•¹ŽÇ!uÏ•>ÚÜsÍ¡5@«ÓPN:®L<¡ËæűÚ9S# 6DXÁáQpóq—* *‘FÜž!)CWw”E!Žȇj‹aá‹aqÆÿ%Ì °O”G×+œÅi¬5A{ÜU”‚BºÙH–ó®ê)ˆÖ øÆµp^î± áq4[J7¡dzê®L -Ä#U;ªfŽìq#Žç`a[Æþ¨{@ö ümXk•ËüíY<È*¹4Úþ.ª¼pÌ7\ëÄU +³V¤@;Ø‚lYbËËå S¯òj¢Ã¶*I],êzYºq“8Í*ªâ|0M߀å4 °;Ë\hÖZ êá7'•áóìýYôò#Î:u޳nµ6ìpÖÖžÄyÔ ÏbŽŸ„´¶9Îe`4®sÙlvàæ1*;@Õ¹G·üÑdüTWe…åÿ)3»":ÿÖ=;ÛJ«˜>µêÐÛr\éA$Ó —’|¹¨ŒWÉÈKÌNp OAôþ0êØëjVs±»ª¤¶œ“uåÆüÞVеXÊB?ºKÑÓb«O½@D••©}d1–©¹ŠejI®ý´+AXª¦|ŸFbYÈò¨EóÜ.Çà¶ïKQ>?%„£„É:ì½IWnÚ¹‡YV&ù¡9ËautÒÅ€+uyí"›~»¾{+J›5ÃÁ,ü¬‹ôï_<–¶5§DÓ´À‡Ûc'¦»8ÇRÒ«Èåf) •·ÆÙ¬·÷ë”(´dŠê0!­óôž¢‹m<Çg‰¾GÅ”½ôuYí¯–o™ïR¢º"~ë‡5šeéŠ"Oí» Þ1yBôcì±Êb®’é#é‘ÌñB¿/óq~’Îù‹eð-“3 ™H1-²L eÄyͱ¿¥æb+pQ_¾Â„fY•ú5Iq§J)ajM…Á¦ÔÈ£]*§»ˆØ7H–ý%UsãÙ>W¾Éb ¾ªã­0fäxÆžÀòœƒÚ&P/CS€œ8¶æa%6+‘ þO4JøŽìÓ•ŽT'RÊ8¹S,OÅN’RÊWÍ×q5L2mnwû>[söÚ{4Ê÷‹R–×ꨈZÝ:êB E&Qéh´š«6­Ò<怒†Ó¿nöýÍa6] f­“ƒGD¢%ã$œýl.ÏÙR>ÖX(¬,©Ô„™¾}^âC‡@[ 2…ed@ÆÓC í‘Ì·-ɳÓjàæ:©²®Ëþ«ešçL~9„Õ€÷>ÌVf[3±_ §c+(²GÜÕXß!_a†ÕYƒñc|ìÎÍåÖY[^MýpÌ#yªþq-èõ1ÐÔ\ý,Ôú§ úº!x‰Œçò•`ÛvèÜÇ&P½DÝþ®‡Ã­¦:¥gÌ þü‘Ú 4èbèÈA;ÿ•ìè0MTE¨SóþTÑ^:ªŸÊ±Õa¥˜¡³¥f\¹³þÌq5Æ'ú¾ÖàseÙ/}MÉw­˜íµš 0´ËØõ”ž•Ö_ëbƦRÕž°8öÖšS¬$­,YéH[¥0dÒn°ˆyÊa¥¸WçÕ¼ÈJvAv:³ìŸÅø³9†/I9+A}4ˆ‚âÔ!ǪÛœÌØ·r~|!°Ìlì¦X£ëeÜT0° |ŽõC=*coè,:ž]pY§¡GáŽúQØ[5±¶ÈɆ7_¥ñ͋ȪŒr£p`¢Ä&ý‘xÓ† Vt"Caa nQû¦Æ0é ƒLr|2ÉÆ·êf} 4@•m£Û¢ÙjRÖ H”ÝÞ+ìŠÔ÷`ÙóVjïçsß»@-~V*ÙØŽjlø5w' æï=qêÊÈKz³]û5)©58jqnÚßËy+;iÔÇñB'xŽÿÇŠ‘®ì¯à…Í«ßcá !QÞUµû~¾1h (#“bïæþçøµM¿þ5¹Î°!¤%¥0rNÃt6|w)y5vçú g§û(3}Ì‚£x £ÞÁ=§†@ ÛºªUf”Ç‹4ú¶^ìJ«ì¬žÎ•jXuŠÚŽøI(” ¦àÕßáG¯~—~[mÝå­cJž®ô!_q[§É6 ¦ÂbÄ|ªÚT9^O£X¶Xd[Ž_S#©·§:¾p޳G;¾bcÉ\ÇW*b8¼ã‹Ï…Ð;i†NÜ–ê˜5–Je õËæÏ»`xrÿ#Ó%ï}ÿº-¾Þc»jç{@&w jÂv¸i—Ýðg|4bp§ÝÑeG²2±T¯Å°VŒŒ]­À¹ÖfM"qÂ`Ǥ™—¸NÊ“²2–¦f%N Áè# ÌJÜ%‘8;Jœ%ÎÎI–Çny2VŽQÄ_¶> ç9µ¸µKv½!±˜/ cj®íp9û’âBÚÂè7¦M•Vu‚ÿDUlê& UäS©¦~#@ˆæû1–õw|ˆ{›ºPÏSÒX <Ùü³”º°+±埀}âÝB逭:–QI¢˜=qSb.¼+‹%Ó‹HŒTöñì¨ð‘ÐÓn R§gÕ/8ÐFEQÍÕ¯8Öp;vËÉââ( ÇúmÁwtḸÃÉ8¡Aoo OÇ‹»‰•Àú­¦U­™Þ( -Èì*ø~· ß[WyIÂÃüï¥%Ï4À&›¼Þ†»ˆ°+Ãíó–0|IÆP©ï@é*Y1”—g¨3P{½YpÕµ,ò·ÇÔ xEâ°вÔâò âÏ ´ÊÖõuM*EŠæ~¡äÊüåÌ °ÖûT´7¡ÚÊ‘—t¡AúmÖœmc[ðû°ð´Dë0ã_œÁpÞÅýÜ¢ºÓ”N)¢©J›0Ãû˱©×06ß°…m‚/Òqs]ÂÉáU›„1}d3x—þêŠÓþv¢ÿˆZ4ëÞ†!.dŽBxß<$ÓàÛè‘dix¼ÚŸ¯îPÈkO‰ØV%¯ìòºF_VIüþXÅÒk*Ñ­ÃùcY,½ÂëÇèз¾2¶_oúOéÇr”JÑ"«‘þç,¹U- ÷zæ±ì^uöØNªScÍj¢SÃôJ2=ç5ì,Q2ï'xíTGzWôSVy×Bàâ˜L^Ïe2Õo×û‡ÐðÙÏÛšÐÆ§†kâuß›ÖåÀReŽ;ëé¹tz“ÄÙ4ÉðÖÀ¥Cq¨.]±©• !›a­q1b ’÷0%—x¿ÁßàåÒ×çJ?j¦í«W#h7 ä“;užw³o(ûïûì&¾!ýƒ4tE«¸>¼ß•·D»¯ï£&ögŒ“É©ÅD ¶–ôZ„æ¤ÐúÄ·©^TÀÚêè-Ýrj°=Òð6^‰œêý[ÌPŒÕ ™6@`»á.ðu½t%Òbe¤w^3ßy†Á´#"5;uùs±Îdº.UBDrÔĬÈò~ÌÿôTu`Þf²GÑ6E'†vî|¢÷IV©L‘d ÏVpf<  êCF£³L@EÁJÿØë·/ï³`«*)ž©õ…ØV¦@3Ã'¡$sYË,åfȺW_$¨Iy·^ÊÊ*-§En®×›’vúlvödA>b¾]!¸+®4¢œ‡#“Ûž¸!©+ÇUß=9e¡=8ó…¦cÂ?Â)NÓ¥fîâSVúÚJãÑ`Óœ{¿Ÿ-Xm÷ëcUùÌ­çáÐúáócÞ)#‘¦Ñ޼A ¶¸ ÏÞX¥çëH{ê$¡éÚø)èzvy ‹³ÚÓ¦ã\’nWœ:Vãhw.{Dkxeà¨âU³ZÝÔùÈ{¿Ø)|L›={ÓœéZ|ßP«VÊgº£É;A=O^N ¼ß+K"öxt›5‰ 6w£\F¸¿?Ò®E ªÉ: ¬b_rÅý ‚e£gXèCQ 2Œ˜çõby‰£Ìß»$;ØOª‚„°ó5NZ£h'öh€"ꈸmj/+lÆSÈÃàœÿö»ýá‘OóðäižßïÁ¿»_ä!4Qõ8| Š5 žä}òNÏ\%‹f±vI®*¾©Á¦¯3rz ‡ûgsð-\Ëg¬\ä#.ýH´åâË^ôáá›T¯ûa_òH݉Þ#lžæú‘}8¹ŠèÈW‚2 -dË]ì=Ç734ˆ`‡Ò,ðr%œ90âðͱËgùBQªÞ^ç Ì0`uU¯;¡†®( ø—ž–L³«$0ß Ä+cLú›ŒM_¹É[Kw!ƒ}#ø-bŠ}§‹ê£ÒQ°ÐÀõ€°EçÔ ß|>¶k9?Ê'ÆE²,ÝcåàK·B¥t–ýR:¼Pªjtž\Lʈì°S†rhs;æê¥L)óƒnË<»¢½ƒ‡×¢¼}Æ„û´ƃ“?qVÜ‹/ÛûŸå݈B°_ Ô©Ñ®—h€Ö6ºz†Ò >pÃÕt¯ãƒ;û•ë»endstream endobj 180 0 obj << /Filter /FlateDecode /Length 4658 >> stream xœí[ms¹‘Îgý…K]ñ’®ÅY¼¿Ä—¤vSÙ\^¶’ìé›}©¢dYb,™Z’ÞµsuÿýºÀ €ÁP’å­äª®üÁÔ4ÝO?Ýh~»`=_0üÿ¿¸=a‹«“oO8=]Äÿ.n_ž|þòð¤÷ÌóÅÙë“ð _­z®ÅÂjÛ{©g·'/ºo¶çKÖ3Í•¾Û¼]®¤½WÝzü¨zÆ\÷Ÿ4DZÎ|Geϸêþcý6ûâÍ&ûë¿Î~r•Ë!Œír ËÙ«“N/Ïþv²RŠ/VR÷Î|ú¢»X ”ŽËîšfSNxß ]]‚Î÷̈îÊžßn—+azï¸ï^eï¾Ë†ß¼[®@:eŒVÝß…•붯ÇAa d®O.{ãâ>^tÇÑÊxo[›ö½õÂÛ4øu&Ën{‹‹º^í8èÕ0wg×Ù¨´)­‹—ÃF´W p®œ ÜÓŽ;ãºÃfû6.[ÜìÃgÆM9 Ò™f¼ûn)`õ_æ#vWÅŸoi”2Ý! ÇE·>$ Út*ÃÆ7÷Ùvîàˆ`¼áÝvfD<ì“RDw>Ùpøœ–e&‰[Ê܆E0FØn·¹Èÿ\ß,ñ¤V\È^9°?8O­¼'”ĵÊHP‡Ö Ñú&Ÿ5 Žà¥ š%§p…µmþ5êÙK˜±ðæ®”†M¨òÀÃd‚°ÙïßU¶€Ë€æóe¶A‘^T§¶O, Ùhšn½ÛìÓŒ:ù>lö]`š,æEI. j½Ï$­Mmœx¿ »_•GV,ô*J¦$˜D:ïtŠ¿9;ùËI€F½ØÍCbé• •Wöja™ë ¿Z:T> »ÛB+>z)°i®³•º—Bà7àE/½Ì§å'ÙÄ"A/8/]ö¬á ð«7hö>8ÌYÁ£÷ (‹€ìZÎ΂ÎN# š| ,æ2wš]šÄò®ð¦hJaÝdJätœ˜’²(Z€žôŸÄ„Bå ãy¯]´¤/C€‘Ì;ßåµÛñì)f%<†°báObXÂëž;UÌËÛŸ`Y’ƒŽ˜(uôr‰‚poºï¯KP –¶“©nNê°dàHÓ3wÈ*ºuœ•Ù —nïæbMÀú ûoâtnˆ3)Ü^O@"#ϱš†QžŒuòÀ aˆO(Îèä_ ‘Y…H›W‘êr‰öá“=Y£“ m÷Þ”†»efÂg¼ñ;¢gâ}餧0Gö"»:–)†!H ®`ya4§ø‚²g5/5¶-u|ƒ‹šD¯0¥íŠà¸9¬s¾p3(GÄ)Wí³ço‹©Šs]Í`aD›=±‚°ñµ°ˆÊX”€ÖÇ®“T²`=»M^ñ-‰ì˜èÙOÎ>{í,Êf_ˆ–óÞ}S2¤…‘¼°@}ï÷´pÞ0<ÉpªÈú^Å9G2Ȱ–ãâžÇ àWçï® ¯RjÌbë&ÖŒ ASƒy©À«(:òÆš²0 <¦ØÒ:d ³•5¥ ‘*iS7àÑIu’¢|õÂfžïî¢ D­ßÆ×Áä+ÛÆDÏ ŽÞÑà²Q`kºÙ%nÓxå©Îô…À} åé å9¢ a»ÝLj-µ¬|ŸsÕc yzèä@Q £1Vª~¿­Ò? ¤Z æ›Gþ˜s ¯æ½•Ò$ë¹D¾ËPb¢¬y*ÛNS{0lT0ΞólÎ)]nîåàR8Iö¼%}JÊj;¢Ówª\qsä˜é•cضœì6®ˆ¾É`²™÷BD°\=,ïEò¨„Hƒd@´/o¶û˸<¦òÉüøýÞ•²„hЍÆ×ám¯§P0¾°4$gÓÏÁ*àüT/•¸Ÿ× Ö2Ï^)Ãþ$dqš1úÏK‰áÀ`Fâ> ¼Y®82Q€D«(Û?\îI{`ÒÉãw¦Qxò«îEK½à·Ò ½2‡"f¸¸PŽ‚ 2¢b×e´ÂãSŽ‚æ÷x ô’×ÕèYÙÙûâʼ/‚]8jZßÊŠ´íñTÅùAfEI+-¯Ø|+ -zmR1 Îã°ÿ¼ˆ$Ä9@í¸ÈîPÃv÷aéЫÁ±0Ó‡c®Ë:ép¥‰’®¦eñ ë&iÄuÑb5ÓÁoð4 ~‚^atäox’¡Ú!œïŠˆO¤÷s»& RÔ°>°µM\$±O1 & "µÛn>àœŠ(reU…%î6ˆåay@öhYø—–±á|eVØ(wù}½Î^¿»™ZGuê¬Wr(UD“eÈ {áTsÃu‰±Åw±³Óu¹¥ Ò{®xZe[d&³)KT"p2 –7Quþßà@±¯®ËÅŸXŠp€ùÜ.´Õ½&¦À…mä^ó¦]f¬ ÈÀˆ-MY&J‘*a!d¾B#DÒ©Š*u\IŠ®ÅÀƒ1ÞD Ä1H/Œ"äKRp– ë#?× ºÓ m8°ûÉòró9Cù¼‚±§p8e”ɧ ”[hO4ïbÔÉ:–4¬eØ›%Ç<ŒQ1& —‹2Òyð*Àj÷Ã{]tWzOQƒ™;²²¬™¿Qç¤á Ù[¢—A%ÌÈÂ;÷…K$ûEÀݳ”¡åõ,ösÍÞ$IÀó¾[j*>˜I WÀËåó5G83UÔ¨=ŠÀÚVIâ|á7OToÆ8yêÒHª”cóãéÖR”Š•xAžŒ4>Kˆ’àP(Ârñ¹ 6µPÍD,êR›€XÜuZ Ø]ŽÅ‘YjQ®ºÞ¥)·Ð²àTÝp º/¾Î!l¥õx°ž©å¯Kš–΢JP¿Þ]döØ&¼\aùÞG¾ke8y5òݳk"´šŠ·wÈyqKÊ"ç¹mF{u¸b Ï@msž;Gr“ Dr!/8Ç9DÉze‡ë·ëñö ௧Ü6%P¦— YÌ=4mÊvÛ)]”蜦ìóÁì_ÁªÃñ뭴¦D©›qÁùÃÕP è.8ݤҹ!BI¥¹iV§¥ƒ¿‡tW¤L¯ò»oZ|Ûcêî‡À0œ»¤#‚Ê&§7WáTD]í½­ËHô>ïM#,ăŸ¬$‡‘¼(ü)D4x… s6ñ~ Ü—´®‡uHÃMQ—à àeµô2>ÖŒÇÊâóîgû8-¯îærâýCš$P”ávUb®—’ ŠÛÝ›°.f¯á†2pƒ È0)쮕hu­–"èewyy®d°a»_Gc ­ Íž±È†‹!?!! l¼ÙtšX®EÀr’~½J«È8Ciõ.XkR ·ä& UÅ+˜,Ü «ŠuW)ïn;‡rê0{«ðbyoE*H½my |²2çÊ­$à‰ôu¶½#1±lª abÜu¢U³XÕ ÂcaãpCap_×f)w êP%ºaæ/C1“^T·¨/™—aºẇP6D'Z€—¤cXWgâc Õw;ä)s˜Îl¤st79•ïÞ— ûé²uh û^øX„ì¾hžœ+r•eVE7ÙK6þ—­i$|ìG¡¾N@ýE@oƒ» „C&xEç›Û<ŒõimHøS’öÐ’ÄöÆØÑ .(:ÞœŽãà”a?oÞ`· ±-íè^i9\(ÌÎâS!²“­Ylöê’ðóå TFñ“>† ÷ó&AষNá‡J˜jj8`7ø-£‰ h$?ÎSÉQD <á|X/¢šâãzʸcp¸o€¯ÏB.îÕ6¯Ó X‡I{ÐÅ&ý%tC \¬†@™8N Jƒ&+¯Ïë#9:ÔÔ ÉU»·¹™˜ktª¯j½ê9uÐ4P{K•›]¬r:}‚GÕ… $gœË Úqè(P@+t^KŠDñ.¶ËÁ§"ü×·u4ÛgB‰Ä.Q\÷mó{Çâ*uy !õ‡¶7:H•|õ®ÍìÀQ˜\¥¾ÇC™Àš€Û\’=éšÐ§þ;¸çw/ÐVI•¬o€µ¢®ìáF‰~ÔÄsÞK›úÛŠPsž™ Ï - “Æ@´Ìz£Ò$xôß²b_U|+2ŒÀe­ë­­‹ÂÛäð²Ñ`‰Ž¥ebX0Š™ Â=Nøl÷ v˜Ü«ä~8Ñh+B…; KÝž‘óƒHTmqz;¤Ë‚Šä7c|o°JÉâ…ìbh¿ßÔ=ãz˜ ‰ùÝ ­)× Ú*M-ÑG`7fº-Gü*_¬‹: isÖ–"özÆ)sîðx¨ÝGbÁx/¸(’"¤ÝJ¨Â«™ÊÃaSfÝ›!œ…C‡}h%’­|Bbˆ™êé US%’ƒ¯h;éjž4HOCаWF¹<{ÎK "¡³ƒî¦÷Z âI}©÷pôÓ¡¹]ï±ÅF„ÎGöãëW2hb ó1·j{ŸîžëÙöêÀÂ…ýÇ‘šæµéÈègª _±â¦5©¬¡½Éˆ!ò›Á˜€·#‚æ)Fµ½Ôa×Ì@ž5g¡ÇìÚö¶b<ÉnÆ” *8ûYVZa¨_¬¤éhmé¤]€%ZV:Õk†,~vÿd°Ø­’| 8¬^õa*ÌÆ`úèî‹Á6]âeÈTzÕ …]&¹LQñR.<Þ'™0Æe»Á¬ !¶ûÉb&×3 Ö @™~3ðÃÛƒI¬òáöPj’¸,GûÑLmbœ„· †÷J2dÙ`9&43¤—ëáÎÇtø#×ìQ³ŸùÞy;ÉãX#ó÷kÊ•ª*ÌÀ÷ŠrcÀ JúqÜ¿µÏÅ9K]Ö˜—F÷9fìÌÞoìæ›ó¶Ž™Ûz@ÖqYz곆:ð4á|“M§@u+è£m<à˜þ¸®íO„ ub ë¯lÌôÚ>z+õac~ß²ýéaOl.t >7 ²X¾'WÏÁ÷§í•„„ºX™ Apƒ5´¡Í¤jÁ¦06”Ž~4—Š•kçÉè ) ~HÙkÀUöº¿x–Á Ë^j,†™òcó¶L Þ“X/;°ø6 €lD¹ö%žT˜R9–š—è§TˆÅ/Ø$×»¥û¼•åî]™t}¬²üÅÈ«ø¾ ÷Y´ çÓ Ÿ+UqQêðÔé|ŠœGÓÕvÉ=íM•=㈚.‡ý~LQ‹VBLHû~LÙEâÖ†:ð\aÛóIûÔ„ì(3@V»z´\«Á¹ª.Øx®ØݸIl?õU;Y]‰cÛAü™Wº×Ã*¤ðUPØiþÓ¼?gÏ¿þ*Ýì—}Úëáwº¼ðy?×\]˜röÓJÆZ§á\oPÕ+eñ·Yÿ¬dûàs\ÃB€û@µÛÐç¸â ÷…ÖÊ ƒlù¸&M(,7‘¦ðO«UNSÀŽ€Shù@20ð °ÂJj«ž¹ˆ1½4jfù²aeŸD0ôÀ¬ðœÍSc!1(;š0 eµÍZª-sˆâÈpàW -š+ýì!ÈÛDxƒuÅŒ¡oR†FÛäG«lŸ>ä±a,Q]ñ|F.‰ÝÝ].˜xÞ¾Hä©^ÇfÄHÞ¥¾4ÑS‰AöÎ*ñ¨’jŒ"¨÷ Ńóó€|æá@ñÏ–L·Ì¸Ì¢72‡§#Õ‡!Ex/R¤ÿL<¼}­&|Ïü?ćÚ<&†ùgâ2ž¹¬óÝ[§Â^¿ßäµþvsöÍ냋+éf¢h'ÜÞ¦¤Ì–M”x¡ÂŽ@K´ö—Ë•¦â»è.ßß]^._áEMÏÿ¾?¿~÷öYèËn}z~z÷rùß´ öDÁñqMÝœÝ7—ñ§€Õó‹ëívß­ŸŸž#ЇEe÷Ù¸þÝ_×i97>—ç+Xï¯ç·dW®'¹ÆV7¼ºKÓ~vþ9ÌðlV ›ÉV½þpGmŸ$Û3~*N×ÏÄ)HÎ4ëîÆ—Rĉ÷Z¬w¥ülM«ÍíqºÚ9¬Fo¦A,þjôž=çùŸñ' 9ù_@&–:endstream endobj 181 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4924 >> stream xœµXyxSeº?!4œB6èœ3"£ ÀÈ"â ‹•}_J‘¡¥ ´¤KZº¤M“&Íž7{š4M×t¥éNK7v±ìZpAGDpuæÎÌý’ùzï—¶ŒÊÕœ{oûôŸ>ç$ßû¾¿íý8ÔØ1‡Ã™²ný–´”½©óžš³:sorR\ðŸe`óße˜ȅ‰cÛžöÊT´yÊíÉç?O,KM[!Êxé`檬ì59{×ÆæÆ­OØ·ibÒÖmÂä”…ÏÍœõðÏçÌ}jEM§6R›¨Ôfj+õ8µÚNÍ¢vP‘Ô“ÔNj95›ZAí¢^¤æRÔKÔJjµŠZM­¡ROSë¨õÔŠO=D…Rã©*•šDM¦¦PS©'ÉÙ©±T-ç·œ#cŽùŠ›;våØ3!Ky³yïÛ>î-º2ôéñ3Ç÷OHšpibýÏbveRò䱓=÷m½ïã)G¦„í »rÿE¾‘?øÀ¬”F‡Ç‡W‡æ šPó¤oÆ|¶ÚåóïÎᜠüŒXUÎw+A©sÔ陘Ïà5˜% €V¥–ã[C7Âc~£MÔË †\Zg,tÕ2Cãƒ&]#ÐV7T¸” 4²jã~ø ÈZ\Tö&šŽÄ<~.$ç`AŒ¼ÄÅ`nï4CÓ mº mÅPÎ⑆xhºBÎ71%÷úçx9þ°3åç¹þУ|§T2Ðçk¥H4k3ÐÙOI­³ÎQÃVžêBca€¾±Í»ëÙ—7ŠeŒêXRc 쇜LIŠ8N¶œYá«ÛhôZ™ò«Ç|@×Aª\¢k%ìR|J¯6h@';ò+‹Ëìv¦-´zmUV¯À}Œe‡Jjz¯½tiOöúhÔçã\,à"ýéüja®SC6†^æå) Wf‡ÊP(µù,ž6Ô¬LR+W.Ê {\`î|´¤<¶(ͶßÝtMÕàõúvE¼‹j•"PÐr[^MY]qw_ìáÕ84öÉÈ__–6¨™E¯¶ÓBÑó3²6[OH˜Vè!c¨¹³3ÓòölØÿz¢Mê ~÷ºayøPdÃ9.òêCr•LîËqK·-‚ÚR;”ÚØ·Ññ[¼2×h¯žçµ£™–0‘TåYŠl¢*ñxAÈ"^^°ËEPÊ^ç­À­VRATsÜÉÿ<1BñQí¼àC-Á1ú¸¢*ÈÙ Ž"‡Åà‡üŽ&‡ã"ªŠ Ü¥2©buÏÆA¬9hµŒ|‡*|õ§½VÊnÀú\Ï;‡Ô?í=üÐPç]ðèè2Ãa¶ºtD>ìD\ïœ-ˆöuT‚êy«qå¿z/(;á¾;rö«óž3\ÿÀ> YjFºU¼. èt¨/éó›¨Ëd#¸2 \JONŠ*U©g–ã^M.è eqZjJ4Ð{ {šÏ7Z;È:ª¬%PA?à‹™›ˆgªG8g*±0_ý€v¹té"i<›‘¾ "é…©§Oµ46Ö0åÛ»ÕÐUµ_yGñ9‚•Iþ˜ÑÃ>u¾ä ý„ëWø'ò[ |©™™™2»Ê¦bjÒÍB"Úi»±Û.?Þ<ÐôQý›ŒµÔæ¹Ç£$/ÊÙ»é§.¥žE/ô¡ÿªc&ù½YÞËòK}œ/¾äÆð‹Ôfåý:HböÀn3©:(tø*æ• Êõ^Ãù  ÎÓCûÂÅK·DlƒXH¬Uv™ &°Ýám©­Ëqgë6Á¯WžŽ»ôÅg×~ïeQ¨?ÙÞ`wô‚ÀC œ“;ýΜæwŸ¹u­ø„Xÿ#ÅCœpz^lV¤0ö·@GIºŽk\=ìô‚ÍëìËððRU"2¼-X¬J3d È“·Ý§ëÞöÝ`ìÖ{mW~ÒAIޤºƒMi½º2h‚Vwã ϾNÑY8Gºßh<ŒæÂ)ú»ú§A®ßûÏñ6ˆj¿Cc¡*Ic`ÄÝÂR!И‹ÇãÙø±E}×ÚzªŽu²®]íÙ­ßG ^)æ+…ëŸÛônåÙÆã>Z~„­=ßw¼‹8}mä^0¨ôjÒ`.õ!!}€d|7UÁ'BRÈì7Ø |øAô—p´Í©®|õ5›Àat¡Œ¶k­ªì d2‰`N¡¯¼È`eK ÅBn^¾D†ÿ†ûÂßCoþÿñÞæh²–³­hbѸ۸ɖzâ]ƒŒèe®Ü®··6C;ÓH¢Ü!b)DÂØ;\BûŽpиW‘ˆX~ô¨å'$e “˜«¨™8®@ĺNa0蘙ʃÜbÜ %GM*…N'fækÐ)b!AðÌ‘•o¡±(=AÂÏw <ã@Õµž¢ÖCˆÇÚkÀä©<ÔÙÑÒô÷MüS3…÷zÑÒàÁ¦þù Iz0ì?ü tü?ù£Ít·ðô«Rã6nÁÿVqú|5n7“€Ÿ]ôËÒ+Mv#ë³×C)]%qå2aÖ‚xõÖÈ®¤WnÿþË?׎4u¼×;÷Þâúoó­J—Rk0(”̲9óµy@oÏè8Uÿ·º£lÛåã­½DzõžØ(5ÄxJ\’êúoDZ˜öµwòã̳«?F÷ð±"®Ü7ŠÊ×þþ7pý_ø øy,¾Ÿ—:çâχ.„oõè½z8HB£€7Œ¤ïÃìþ¡béÖ„‚=zRnÈ-´éì-fð‘ Ö:ÔÌŠUÆv‹I_0ƒÍRŠþ†p#ïüЗ¦Nà¹TÿæÊK˜ÃàS?¸ŸœgÎ#cúMEý…² êù“?+!:1>J¼‘ o*oÕµÙäÙyWO¤¯ R3(#k½þéArl_ÇGÿ‹‡x‰eØK 2•©ZFzHÔC>d,‡gâGõ¯¼v¢»«¸˜Í~¦ J–$ˆÛGL\É rU:Š«ˆî» +Òs“¥ñqí¹7ÿöÎkïT0Ilf íúw\GQhU?[{º§—”t®è%«“†Üù[ËoÓ½/¾«S’™·Pï=ÒÏúÈ 7ÈÉ£ò¢üŠ*w™ËÌt£e£[oQ›ÑTÞTÙÔ}ñê¿ÜzçÆÄ¯¾šŠî?Óÿʃaß?yªèIrr¥ÔX_çnv·³—Ðoœ‡Ldø‚Wj÷ÍI³4ߊqQsÝçÃb¬É<(OU‰Ù”ÅûfJ´¼‚øšØ“_4£',LØ/êý‰üª|oŠP˜,Ì*Í>ÔÔäkbF®ȶüT½<ˆ¢É€[Q!©ºÒ›2|æÙ bkr‘Æ”äÉk‚.úÆ»ŸÜú¢aå²tƒJ›Å¤!ß®¾'QÜÈž-îÙƒìÙ{¶Æ¿þ¢1‡¨ÇdÌ!ã"½;D¬MçU{´Ç¤á'óº²\—Ô•ûé§–<>éÒ¶ÛÕÖz³‹xTˆ«Ôú`K"qYÌtÄŠÕV­Ín49Œ«¸®Éénß~)ÿ$ÐÓ\4 MÝÿÁçÇdÿ_˜À ”úSøh¥ÑVr¶àRà 9y9DØÕ¹›ðÊpŒK åÅ`¶XÀlfL&£ÑY×i¨B| [xÕ U©ô…$ݳ¥0±P±€pndý)ë‰Sf8Áž„ÓºÃKf¥Kùl>OÉ&¤™5(!rOˆ¦ù[Ãí“Ãè0ÕCз«¥ëIÚUlbõòácÈ‚ƒ5™ËÍ̈8¾ïÁxÿ¥³ÄÅßSvÙNñJ’—EúêÊj{ƒÑÊZ«ÀnŒ¨_WT]RUUï;yöpßq²: €Ý«Ò$‚rxÏö6”wÔå¶ìÙ³7.‰Ù²Z"IÌû«vøèŸÈ‡F{C‘‰9¢Û5—²a³T ÕI‰r«È»¢?£½ÇÛ\áb¼%çÁL‚+õ™ À?Âù‚,¤Í£5iÔ Ñ1ªŒ¼ñÞ4ü[~…§ kÑä@¾`GÛ¾£•õµn¦¬µäÒð÷rç ÌỲÀ=Þ•ÝÜ\¹;"*::…Q^‰¬ØaפßþŸÞ›SqÕ¡ãÝW€îƒù"Uª¾]ƒÝ?å¥~Ù†—e£•¾JŸÿ9œÿr®?µ„oUBhA«`rUÃÓ‚ÆØƒ^ x3]wШKQ§çi™½ø¹åu]²T§`Ÿ+² €Dc™U#óz—Ô´‚Tu¦HÅÀS¢ñÄ1ý¾~„V§Ò ó@Bkí2‡ÍSìp1EŽ"ûY(‡Jh•ŸÍ ߇giƒA[+È.Ó8+Ü®jÓŽ³`AÃewé¨wÃW(Èfâ¤!΃a·PÆE¾WR•&öå÷ÿóòÐtÿe“èºY@ž’0ù¼l0ÔâÂÄð°krœ†Úø² —Ð,ü<ˆâåô÷JŠÀß$ãŸ+“ƒ‘N ,cAÙÝ%õŠ[>éE¢éõÌôVÊ –ö4,K:íTõKÔÅÇ9¼â‹ž<]å'N–!Á·jÅtX¸<]%ËO †¾Ê2·ÓÊy: ç(´ñ çCdã’ ð2ßd³yÁBŽ$FEˆ!Ó«5âà©Ê´WA¼Ì\Lßa'H î²a„úYÞ@8Éo¡—Ðå \¿-æw}ÞæÃût§=€ù+žßy™]scð ˜O'fÑ´×¾èB¿¼Ì<¹šŸµ;jg$ИÊßݸ†Ž¶¾É¶_;ímº«-eí²Ü3{t!+ÖäŽÿi²ô+Èù•<äeÆ,³ÚHLÐf*2Z‚j~Çgj‹Zm0ä0¿ž¡JÕi‚’žGWµxŽÙZû<~(U)T*–€@929Xº{ÍÐÍö@Ÿ®‡Ä\wðZ'Ëë_áBM¥^žwü™ Ìø±ÛÒ&†zÍ$‘ßÃeÛĉõßf,\Íendstream endobj 182 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1102 >> stream xœ5ÓmLSWðSÚ^®{©´ð%~ÐÍ9÷‹ÙSG±Ey-•Agy“W[àÂSÚ•RDJÇ‹•Ê02¯%² ¸-c.qýঙn|ÚüðÜíl·Ëv¾œœç<ùŸß£ ª¢P(ÖS–<ÑWS£ôèÏ$5„)!Luõ¯?4?¯ý!âN$ ®PËÇÖÊA‹vãß{Nc€j!¹„nz¸ 9@¼xìÅ8–r-oàU›«s³KM—„iÁïYpM¸E÷ÍžË}“׆®Âu)v:Oó'x#þwÈV¡GEŒH ±pJ3Ì[È|†QóÍEJsX¢Æ-»RdÂÉÚ¬âŽë:nMäyÃ\„®V}¿ÐÆ·T°\Û›+.u"c3 Æ¡C”7ܱ1Lð•øÏM‚W†>Æ­,ZWJã’fÀI83Z;6ýº±ñÉáÏaÆ>(§rcŠËóDü&¢% yŽd `x4—"eI*­g.ÍwŒ`,9}€mczQs~º[nj:À–«O§‹òó¼9Ç$| ‚Þ-ª_gÆp¿šÓÜ뾂꧱eUÍÅMÙ#£0 A×T0ˆyB é+QaÇÐgª”¾“âµnÑÚZÜf}!Ûëì¼Að´ž³Õéh8µ¦!¨ç·H#ªrðõ"ód%þ\YARM¹Þt"Ÿ¯‚hµ·Ø/¸¼½®+.…× 8}¶)—7ŒgÞ‚aaÉ'¢K2ê<}ŽŽ;Œàî8išÂƒ~Ü%+ÈÄUZGÿYh†*šùZsrryÈß2ˆk;o³è`†ÁmwŽô>­ÆUt{PʆrÌVºù§700w²ïbŒ–f:g‡0ô ü%tcK)+k£Æn[†ekß^6L×4ÏP‰ëQ¹¹h.„H7åœCÙPùÂ)3ËùȈ)Ãi‰¥k`_BÝÛ©ó9Ã¥y9ùBM[½íø•ª¦”Ò†#|†ÿLܺ–|ø Ý”6•9Ó^vÉuÕ9ÔÕ Àr‘õ¶nåíX ‡ïïvßïœ-Ÿà»Î»»=Î6Ahnm`9ý^kKO¥/Öœ^–æoÓòé ɉžE÷ Ë}Y?ÛéYXŠ]‚†CÇYÿÊmSnVúFØE7Ü7<óÓÐì¯ GöÞ‡©*>ó¿!Z»L ·4^dò‘Ay¢¹KÒÌ:wÐò4övß«û–*AÏØi9¦tYÞ>QsQt?oûŸ׸}e&hßö/?\+È×9o"3yý¨|,΀þ 4×î4ÒOuIA¤‘ux}—”Ò‰™ƒž.F\^Z¿Z•f [åw8ííN{‡Ë~þQX!ÿ Ó†endstream endobj 183 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 269 >> stream xœýþMSBM10‹xùRùA‹ ‹ ’÷À½ºN/¿øˆùfx ‰®øû®÷²øF²x÷øçü|‹VƒyXŠ€zŠ{y›‹÷/š‹›{Œ}TŒƒ ‹¿ø^¸øDüÏ”ˆ’‹œ‹›œøÉ‹Ã”™¹Œ‘œŒ›|‹yû&y{‹yz‹–Ê“w‹VûÍûÂø,™ˆ‹t‹ûBy|‹y|š‰‘¦ˆž{•x‰ƒ‹‰}øqü´üGøÓ—‹€•÷ ÷åü[ 7Ÿ Ó¡n5endstream endobj 184 0 obj << /Filter /FlateDecode /Length 2290 >> stream xœ­YIo#7¾ë4ùudÃ}I09Ù0HG˜‹•CµìVW"YnIÝîä×Ï{\$²ªÔŠãÀ—Jäã[>~oÑ»†QÞ0üKÿWÛkÖ³w3Þ6éßjÛ|³˜}ñJ(xC=ó¼Y¼™Å-¼q¼±ÚR/u³ØÎˆi¿ÁZ嫵–ZÇpÇânvK~zß2Ê´´œy²½oçøÉK¦Ù÷«òc·içR ê½ Õº­VÔ;ïaI)­;ö»‡´Gj²{“Ÿ9¾-ÖÝã{…âÈ])àpÀo$e\·­p”)nÈí\€‘†g5wÔ]WwÙ핃ƒ5Aœó¦8%žW=ïW¥´lФ^+òÔƒÑÐbh |0Âa]üܯyé~)9ÕÙùÓF!»6î­C§,VæÍ¥«W-î–Îß»õX‡.sé ÕZ6s©©3&Ê[$m´N.QN@L!Bˆ¯"}ᶤ_m›ïXýúê£ÕÜs•mø7Z ‡rIX;%’ÃÉÆû$òË)‘QɘË"]ÔWKCº‡ÂŽ»d‡ôdÝÃ{ï-Ï}ÇÕp.6Mi2„åY£‡)</p92R΢îP…¯]‰û‡é%9Ö±° ɧ°†Á½º"™6dÛ¯ß"˜‡ñ=D`}^¼+~7Âm>(œCžÆÀÎ×áâ7ûtª×¤?Ð9œß—ÀÝW›ß\”Ú½.¾Úd“­!Ç]ò ³@?ü„®V¶öoWyã:ç’Q)lT+/b°’e3yUF’m¼ÿ²”M^ ‘7"aã«)l(ê”…+—°!–m+9ÙíÓ#ä’øé •^ñk'x‘•àË6Ý[s€“Ô+€$åN¹¨Ï×í\ °ºZ’û÷«ãýØ{#nuËöæüÎßðølHT'kªÁF6‹ÿΟߒ[þ+ W‘Hê˜2òI8õ‚3—ÍÜñ¬cu(ƒ´ Ôç%Òr‰îuâk_Ç´;¦4Àä(Ø9=lºã±N…Y–È CÄy?Ù9KH0Ó—½Šù˜~®`>«×çC•Õ–˜Eãä@VË¢žgÙ4ø pƒÈ>^ }ƒ—LÉQÚÁã |1í„EÀÁôp+Ýe–9ôë‡ñe‹¿‹û½ÉA)Öû$—+RU ùlðHH΃<%ë¤â8@©å]óÐûaÆÇkØh롆äÍÞhÀ«>½ÙÌ~¹ÐêìŒOIm 4‡:l/øÌP6’ZÓÿªQâd×PŠ[]Z -´!þhÈSAäÙyÉÔ‘«’ù-ù¡®  Nu}… ¨Áþ „ÃgêSÈ˲Îmºý.”ÄX- EÆ9P…lÖ¥æÇéA2[Ÿ;>Ø;>7I1— ª´ÝöqòŠÜ–ϬSЦâæjGLk!Öï©Ñ(•Ÿ¹ÐØ4pwu{î/^qášow¸ç¹­7wPPÚD¬©A 2(ÿ²!ƒ)ÿë+•ŸÒ*΃ó”@GÚQ’%•©±n Î5ŸæÆ ÉØœ) \!=´ºXx•ôò«¤'>Éy`WF¯áŸ¦=;ë abž(hOXÈÀÖ@`)€ß·ðÆ ÊO/žM ÞDk(ôhâçÏ2àLqÂ)•G¡¿så8N­ô¿Jpýÿ!‚KŸ$8xÔF‹ "·59|hC7 õMZÅërjãÇ»t ¡Ý…Z×i‘ ’ËQëÖz‡î(«»ÝnÌÜ\Ø1^pý,vœ:ð2;Æ2 ðí”?A¼¸I=`5ýéË 5çqS}rÈ©}ƒÁ•V§‘ãxê¥QF1ö0ZµŸ{ËÎ’üç ³0³ÀJ£2E‘—'} YHËË¢„¬:>¨\¼´ÀÇðÄÓ0Cv›M w *eU@gØ¢þ]‚Ŷ§áFaÎÉgñ¶Òy3€iqèsOS€ @)Ž#KR4%Ó Å=J%–ÃEzA·´ˆZ;&L[ÁLŒ›: ¹òׯ¹d;œåÆ9÷›M_ôدwn4‹U º2èòê1Ôc9±È(Ï]¶ò8-×èø—ãê*@ü…ýôc5:ýÊËPÔ ÆÌKÄñ¨Î[¶_µs¬¾±þ<óÃû+¢ÝJ Xq_— ‡Ä)p'/O;ɸ›ØLÁ@çÝ~=õsHþmÕÒ^ãdvŒ$Bc|èŽeFÙ'’È_ŸÔdGIP ªJ¿R‹ê7•ðšdbÉ/eë¾éïêÂnÎXèè,—È}UvÀ»d“¤VhLe!?*²é/؇¼êTeÆNá’øù™#rɇý:ŽqÃó¨¥ÀŸ{ùßþÙ&Rþ ÛÍ1±Á†6©YÆhw¬§óy™¬­é·Ýºra·ÿ#” Šû?Ò¤0HY´È —™Á/oµYi¼(Ðy¸÷Óu—6Pã1(¾·²jYÓ>ipˆqÛ g<&"jÔ †ãøDÜáÒ} ÃD\ÃÀ˜#ÔP}Ù߬ӑLÅÑ.bÐùä]ûssm~ŽýE¢t¶lo@¬UdÛÝM™j HÀLÏ¡wB 1¤KúÑô6x[“×çò'ùÄ…Ÿªâ³€”;÷e\«Ô’íÆo—ð–Ty¿rÿÉϦš½Å2Pa9ë)(ѰàUè‡C³~žý|ªÖendstream endobj 185 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 800 /Subtype /Image /Width 800 /Length 58549 >> stream ÿØÿîAdobedÿÛC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKÿÛC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKÿÀ  "ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?õZ(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€!¼ºŠÊÚK‰Ø¬qŒ’'èäŸjÏ]uC ¸°¾µØ(–X†Ü“œG> V…ݬW¶Ò[Ü.è¤` ð#}ë.M ¨F7W—¡Y`¸¹ÂpÓ…ÉÇ\äŠáÐÚ¢Š£,Ú‘„VvÌ€ü¬×L ãaÇç@¨¯?uâIÔÐy]?Z?ágëÿôëÿ~¿úõܲúí]!s#Ú(¯ÿ…Ÿ¯ÿÓ¯ýúÿëÑÿ ;_ÿ§_ûõÿ×§ý_°\öz+Æágkßôëÿ~¿úô¿ð³uïúuÿ¿_ýz?³«öì´WÂÍ׿éÛþýõéáfkßôíÿ~¿úôgWíøŽÇ²Q^9ÿ 3^ÿ§oûõÿ×£þ^½ÿNß÷ëÿ¯Göu~ÁÊÏc¢¼wþV»ÿNß÷ëÿ¯Kÿ +]õ¶ÿ¿_ýzÙÕû~#äg°Ñ^=ÿ ']õ¶ÿ¿_ýz_øYï­·ýúÿëÒþίÛñ³‘ìWÂÈ×}m¿ï×ÿ^—þ>¹ëoÿ~¿úôgWíøÙHõê+È¿áckž¶ÿ÷ëÿ¯Kÿ \õ·ÿ¿_ýz?³«ö+ØÌõÊ+È“â6¶ã9·ãý];þ&·ëoÿ~¨Y}v®5Blõº+ÉáaëÞ·ÿ¿T¿ð°µ¿ï[ÿߺ?³«öÕª³Ey?ü,oûÐߺ_øX×÷ ÿ¿tg×ì?ªÔ=^ŠòŸøOõ¯ïAÿ~éá>Ö¿½ýû¥ýŸ_±_Sªz­åðžë_ÞƒþýÒk?ÞƒþýÑýŸ_°þ£Xõ:+Ëá;Ö½ýû¥ÿ„ëYþô?÷ìQõ ÝŠú…nǨÑ^_ÿ γýøïØ¥ÿ„ãXþü?÷ìRú…nÃþίØôú+Ìá8Ö?¿ýûŸðœk߇þýŠ_Q¬?ìÜGe÷žŸEy‡ü':Ç÷áÿ¿bøNuŸïÃÿ~Å/©Õön#²ûÏO¢¼¿þ­gûðÿß±Gü'ZÏ÷áÿ¿b§êµû3Ù}ç¨Q^]ÿ Þ³ýèïÝ'ü'zÏ÷¡ÿ¿u?W˜fb;/¼õ*+Ëá<Ö½ýû¤ÿ„óYþô÷î—±˜fb;/¼õ:+Êÿá=Ö¿½ýû£þíkûÐߺŸg þÌÄv_yê”W•Â}­zû÷Iÿ þµýè?ïÝO#ìÜGe÷ž­EyOü, kûÐߺOøX×÷ ÿ¿t¬Ù¸ŽËï=^ŠòøX:ß÷ ÿ¿tÂÁÖÿ½oÿ~ên/ìÜGe÷ž±Ey7ü,-oûÖÿ÷î¬iþ9Ö®î6x,2É‘t›øí.d'—WJí£Ey'ü,=oÖßþýQÿ \õ·ÿ¿T½¤Gý_·âzÝäð±uÏ[ûõÿפÿ…®zÛÿ߯þ½/kgWìzíäâ>¸Xô~;ù_ýzü,]sÖßþýõé{h‹ê\¢¼Œ|D×=mÿï×ÿ^—þ¹ëoÿ~é{h ê5[¢¼—þ·ëoÿ~éáak~¶ÿ÷îo~¥Tõš+É¿áak~¶ÿ÷î—þ·ëýû£ÛÀ_TªzÅäÿð°u¿X?ïÝð°u¿ïAÿ~é{x êµX¢¼£þ·ýè?ïÝð°5¿ïAÿ~èöðÕê¯EyGü, oûÐߺ?á`kÞƒþýÑíà/a3Õè¯(ÿ…­ÿzû÷Gü, oûÐߺ=¼ìfz½åð°5¿ïAÿ~èÿ…­ÿzû÷G·€½”W¢¼Ÿþ·ýè?ïÝð°u¿ïAÿ~èöð³‘ëW“ÿÂÁÖÿ½ýû¤ÿ…ƒ­úÛÿߺ~Þör=fŠòoøXZß­¿ýû£þ·ëoÿ~èöðFzÍä¿ð°µ¿[û÷Gü,=oÖßþýÑíà.VzÕä¿ð°õ¿[û÷]/|Q¨k·÷0Þ˜ŠGõؘ9ÈQ«;!4ÑÚÑE ‚Š( Š( Š( Š( Š( çˆO ÄÌêJ9VB9•eáØíã‡Î¿Ô§š07;_L‘Ü®ì~³EQE|Ä)i(¯¯¦½Åèb--%-ib¢”R QEŠBÒÒ Zv- J)(¢Å¡Ô¢’”Qbд¢’”QbÐêQH)‹!E(¤¢•Ôùeuõù‡õÿ>õ(¨¤ùYÐàýÿ_0©ŠµÑqRŠANV5BŠp¤áJƨ8 AN•P R@§ V5@)ÀRN65HP)@  p¬l˜£ìQŠÍ¢ì3˜§â““C°ÌRbŸŠLV,vŠLSñIŠÆAa˜¤Å?˜¬dE!ò)1YH,3„Sé¤V,,4ŠCN4†±b°Â))ôÓY6Wô/øý—þ½.ôCÕ¿¡ÿÇì¿õésÿ¢³¾¦UW¸ý Â) 8Òɲ¬4Ó¦LÔ„SnùŠàôJ‹‘%ÐU\:Ó€¥œCd44 p S€¥s&7¸§b” ›™1¸¥Å;¸¥s&3¸§b—\͌ŧâŒR¹›Š1OÅ¢ä1˜£üQŠ.CŠ1Oŧr(Å?b‹ÈñF)ø£îK#ŧ‘IŠ.HÌRbŸŠ1NäŒ"»o…_ò¼ÿ¯ý˜WŠí~ÿÈZóþ½ÿöa[QøÑ2ØôÚ(¢»ÌŠ( Š( Š( Š( Š( Š( Š( ˜…- ¥¯±¦½Åè`--%-ia¡iE%-;…´”¢‹…¥”¢‹C©E%(¢Å¡iÔÑN¢ÆˆQNÑNXÑ )ÂRŠ,h—z=Å,LY={ý{ÒŠj|²²ö?0þ¿çÞ¡«I3E¹(§ AJ*¬j…áH)• S… § V5BŠp¤áJÆÑ p‚ž*lmS€¤ž+E ŠLSñIŠÎHÒÃqIŠ~)1XÉÃ1HE<ŠLV†bŠ~)¬dŠB)ø¦â°ì4Šn)äRXÈ,0ŠJyÜV†IO"šEc&E4Š}!“b°Ê¿¡ÿÇì¿õésÿ¢¨‘Wô?øý“þ½.ôKÖWÔʪ÷%èfši§FàŒûVM–Ñ|í°‚qéOˆ×Œ°\zÔ€T6en£@§NœEÌä4 P)ÀS€©¹Œ†bŠp¸¥s3¸§â—®dÆbŒSñKŠW3c1F)ø£\͌ŧâŒQs63˜©1IŠ.CŠLT˜£îC#Å&*LRb‹Æb“&)§rY(Å?˜§rXÌRbŸŠLQrFb»O…¿ò¼ÿ¯ý˜WEv ¿ä-wÿ\?öa[Ðþ"%ìz]Q^‰EPEPEPEPEPEPEPÌ}¨¥Ç’¾Î—À½n¡KIKZØiŠ)E%(§bÓM´X¤:”R QNƈQNÑNX´(§ h§ ,h‡ QH)E4C…(¤áE¢›'ÊUÿºyúóúSÅ)PÊTô#¦Qº± áN$˜Æ~òð~¢¦-UÍ¢î(§ ANìmE8R p©±´GNS…+DP)ÀRO•†x€S€©±¼Pb“üRb³’5Hn)1OÅ&+ !Øf)§‘IŠÂC°Â)1OÅ4ŠÂC°Â)§âŠçXa„SȦ‘XH,0ŠLSȦâ°XiÒ)äRXI…ˆÈ¤"žE4ŠÆLVjö‡ÿ²×¥Ïþ‰z¤E^ÑúlŸõésÿ¢^²¾¦UWîåèÌÒ*<~ ù#Þ¤}ÁIQ–ì)Qp;{â±l$¯ N J<-fÙœ†…§§§©lÆCBÓ‚Ó‚Ò…©¹„†í¥ÛOÛK¶•ÌXÍ´»iûhÛJæLfÚ\SöѶ‹™1˜£&Ú6Ò¹›#ÅiûhÛEÌÙÚ1Rm¤Å;™±˜¤ÅIŠLQr(ÅIŠLS¹,˜©1IŠw!‘â“&)§q‘M5!¦h‘†»/…ßò»ÿ¯ý˜Wk²ø_ÿ!k¿ú÷ÿÙ…tPþ"%ž•EW¤HQEQEQEQEQEQEQEó(û£éF)À|£éHE}¥/zq´R‘I[!¦(¥ÚZv-1”R Zv)1Ô¢›NìZbŠp¦Šp¢Æ‰‹NÚp§cDÇ QH)E4C…8SE8QcT8S…4S…+¡£ä˜ú8Ïâ?úßʦ ”ÊŒ²üÂ¥B9‘QfѬw°áOÑNV7ˆáN‚œ)XÞ#…8Sx'RRÍ¢(§@à*Y¼EœSÀ©fñbbŒSÀ£œ“#Å&*LQŠç“ȱIŠ“„VÈȤÅHE!Ï"®EŠB*B)®y ŒŠi!Ò+žC±•!Ò+žLvE4ÓȤ5Ï&+ 4ÓO¦‘XI…†½¢ÇìŸõésÿ¢^©Vô¶‘.%1G½Í´à ŒÄã?‡_²¾¨Æ²µ9z39@‘÷~LlÔª)Qp8ðµ‹bq°€SÀ¥ O Y¶c! S‚ÓÂÓ‚Ô¶sÈ`Zpð´¡jna!›ivÔivûTÜÅ‘í¥ÅI¶—oµ+˜²=´m©6ÑŠ.dÈöѶ¤Åh¹›#Å&Ú—m¢æL‹˜©qI¶Èdx¤ÅKŠLQr„T¸¤Å;ȱHEKŠiîK#"˜jCL5h›Œ4ÃRaªDÜa®Çáü…®ÿë‡þÌ+Ž5Øü0ÿµßýpÿÙ…tÐþ"$ôª(¢½ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€>h_º>”NQò/Ò‚+í)| ÐâoQ˜¦âžE!ºc)E)•i˜´áM´ìZc©E4S…;˜áJ)¢œ)Ø´Ç QH)E4Lp§ h§ v5Lp§ h§ ,j˜áNÑN¬l‡Šl)hÿºr>‡ü‘øR-¸ 9Èâ’Hðc‘þm§ ØsíõÅe7ö—Oëþ ¢}I„ŠIUù™G S‘—€³ü\ÿ*p Ú}Yº‹¼€:¨œ°›æs»¯ÌOJxð*FÊÂ,`&ÑœcœÓž% ņ?ºÅ•8 zІ–ÆÊÛùjª»®Þû²\Ô¡ÌÎñ³û¥­< x #XØ…ZUF2F g9üñR¬±’ °Vq­Á?…< vÀØÜÁÏ5ýÍ¢ÚêQŠA )vGl°áXåAþty¢5O?³uÊçëŠÎRîj§mÅÅ&*]´˜¬dÍ.DE!.ÚMµÏ&;‘b›Š›ÒµÏ&;‘M"¦+UšáX‘ ´Äs üzW<˜ÜÔwE4ŠB—÷™"Š7ÌñúSM¢Ÿ¾ÒHÚsÈq\ò`¦ÞÈG*¿y€úÒN[XPåaE>Ê)Ì€õÖf‘”ºðI”Ò*R¸'Þ kH:ù(¨P sI—yt)¤6øû’H¿ð-ßÏ4Ãç§UYû?)üøÖf·_¯üÀqoB &¡#‚NË[•öÏ’ùª 6àBÞc…nÿªµt$ÅܘòíqÓþ¸½bš1­iS•¶±AV¤U¥U§ªÖ ŽB*ÓÂÓ‚ÓÂÔ6sH`ZxZxZpZ†Îy K¶¤ N Ss …¥ÛRm§©¹„ˆ¶Òí©6Òí¥sm£mK¶—mÆL‡mj]´m¢æMí£mK¶´\Ͳ´m©JѶÌÛ!ÛI¶¥+HVÈlˆŠi1ÃT™ ‘a©S Z%²3L5!¦´Cdfšiæ˜jЮ0×cðÃþB×õÃÿfÇšì>ÿÈZïþ¸ìº0ÿÄB=&Š(¯LaEPEPEPEPEPEPEPÍh>EúPE9î×è(Å}­/‚>‡zŒÅ!ò)­Ó#"Šy„Vˆ¤ÆS…! »˜êQMáUbÓ)˜)‹&8S…4S…;&8S…0SÅ4Lp§ h ’r¨Fá×=©;#TÇîËc g­9SvÓ à(D“ŽOSëRPÕ÷6LP)Å©V`ÐH¢“ÔÕ1–ä²aΧk}Ï58<¹Õ¿†A´ýGOëúU+½,úÁ€ Š*@)6m )àP< ͳh°žSÀ¨lÚ,§@ð*6‹(ÛO—›f©•ŒMwŒ³“ÎÆn3ì{*r6õ©RFJ·QSâ£xÝ]—çNÐ×<´Ø6ØnÚB´FÎYö«–Âàðýøÿ Œ “XI”¥r-µ^Y€sKæÊ:¨ÿÈZïþ¸ì¹]‡Ãù ]ÿ×ý˜WNøˆÔôŠ(¢½2Š( Š( Š( Š( Š( Š( Š( ›£»_ ¥Å,c÷Iþè¥Å}­/‚>‡œÞ£1IŠy„Vè#"Š“Ò+DRddRb¤"šEhŠLm(¤¥v-1”SE8S±iŽáMáNƉŽõ¦­8’'°¤ÚJ橊sÑ1œóžÕ*¨3Í5.p:œš” ËÍš¦9E< @)àT¶j˜à)ê)TŠ+6Í“$^des‚zCØÓà25l`ô#Ð÷åÕUÉÃ/#ýá×óÈÖ2v•ËNÎäàSÀ¤¤“féŠ< SÔVmš¦SÀ  x ›&SÔPHCfÑbNÛN—›f©‘í£mIŠLV2e\‚h‘Љ*9ç¶;Õ4zçÏm³û±ÓÍúOný}ªÃ¶ÊWþ]£8oúh÷Ðwõb_Çð¬$7-­ !qtÿõï?þŠz¬éWô•ÿI~Ÿñï7þŠjÅ|Hδ¿w/FP D–ë2ml‚CÊŸQSúSÕ~•ÎÝ…'ufU·vÞa›‰Tg#£QýGj´’{9FÙåû§ü)Ö²yÈr¡dSµ×û§üóô¬g®¨ÃšÏ• N RúSÂý+#920”à• _¥8/Ò¡Èç‘J]•6ߥ.ߥ.cžL‡e*}¿J6ý)sIl£eO·éFߥÆ-l¤ÛSíúRúQÌdÙÚBµ>ߥ!_¥>c6È ÓTì*&«LͲ •ª6­›dL*3RµFkTCdF˜Õ!¦5Z%²&¦‘©†´D¶Fi†¤4ÃV‰¸Ã]Ã/ù ]×ý˜W k¯øeÿ!k¯úáÿ³ éÃÿ/SÒ(¢Šõ BŠ( Š( Š( Š( Š( Š( Š( œ¢ºO÷E8Š!¹O÷E;ö”¾ú[z±˜¤Å?„WB ‘‘HEIŠi¢)22)¤T¤SH­I‘IŠŠiª)1¢œ):RŠ»˜áOQM ™ªc‡' §F2wdüÀ`zSpI©ÎsS(¬^¯ÐÕ1Ê*EÕ"Š–ÍH5EH¢³lÕ1@©TS@©Vmš¦(M’2‡rŸqÒœ¢¥²–ªÌÕ1°8–5pÈè{{TÀUxÇ“rSø%Ë/³w×ó«j+%+­Mc!@§BŠzŠ–ÍS)àPHCfÉ€ð(žCf±`; SñY¶l™*µÛ32ÛDJÉ Ë0þî~½‡ÿZ­ÊÉm#¨€³@* (X+M(ijÌðŽËø×5„ßAJWÐtq,Qª"íEv¸©vÒm¬dZeiáóP ̬¤2°ìhŠE—~Ü‚ŒUêùçñ«j•ÕÑШ@xc®}¿Æ¹ä¶¡ŠB*\2:R¬$Z‘ Ò*r´Òµ„ŠR "šENVšV¹äZ‘µ9ZiZç‘jEI”¶ÔWÚăï€Fqü¿”/Ö›Ieyœ©1‚O\uÇãüªÈJÂ@¥ÔŒ/Ö¯ikþ’ýÔMÿ¢Ú  WtÅÿHúã/þ‹jÉ|HƬ½ÇèQ õ§ªýj@”à•Í rëUîWìò ¡÷@Û7û¿Þü?‘5x%;Ë  F5‹vf3wCBýiá~µž µc–€€¤÷C÷OôúƒWBW=Egb9î®0/ÖœëR*SÂW;fRd!~´í¿Z˜%.ÊžcžLƒgÖ¿Z±²”¹Œ$Êû~´múÔû(ÙO˜Å²¾ß­!_­XÙMeÅÆM•ÊÔl*w Ñ3&ÈXT,*v¨˜V¨Í²¨š¦aQµjŒÛ!jŒÔ¬*6­ ‘cT†£jÑÙS HÔÆ­7#4ÃRŒÕ¡\a®¿á—ü…î¿ë‡þÌ+‹iZCˆpGw=?Z쾦ÍVèn,|ŽI?í ëëTECâ=&Š(¯LÜ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠùÚû˜ÿÝÊŸŠ ¸ýÑü©Ø¯´¥ð/CÈ“÷˜ÌRbžE&+t#"ŠŠB+D;‘IŠŠB+TRdDSH©H¦•­QI‘ .*]´m«¹¢bOriÓˆè1œœ¥g'esDÇD wsS(¦(©TVv²±ªc”T€STTŠ*5Lp"ŠjŠ Í³TÇ(©R(©VMš&*Š‘E"Š‘G5›f©‘Ï ’/“‰îCî?Î?–D²( 0èzƒÜSÀ¨£EÑOà›æ_fî?Ïàk;;š'fYQR(¤QR(©lÙ0¤ †ÍS)ê´O³lÕH§@ðµ š©®—Ï¹ŠØ}ÑûÙ>€ü£ñ?ú «{j =|Õ–äÿËvÊÿ¸8_Ìsÿ«X¬/Ô"ú‘í£mI¶µŒ™w"ÛM+íSm¤ÛXHw)@'û*£*Æ ¦yz§øTÅinBªb`¥Xž„w—ëŠxÃ(e ©µ„‚.Ú¦•©ŠÓJÖ-H„­4­NVšV°‘jDj)ƒÜÆ|| ô'µY+UäTšá#%·E‰0:w?¯åXH§-8ʨ w0'j@Ÿç JxJç9„ÿ8«šrþý¿ëŒ¿ú-ª •oO_ß·ýr—ÿ@jÍ|H¬½ÆS þqO þqO OT®iÀŸçð´ð´ð•„ŒÜŠ7+äÝ[ܺO“'Ѿéÿ¾°?àF¯ö¦]Û‹Ib ÊBŸF슒ÎAsk àcÌ@ØôÈéXÏXÜÇšÌr¥Hœ©R®Yä0'ùÅ/—íúT¡iá+»JE/Ûô¥òý¿J±åÑåÔóI•¼¿oÒŸç`¥5†)©É•™qQ8« *¤Y‹ew ÅB¶‰“d *&; ……lŒÛ!aQ°©XTmZ¢!jŒÔ­QµhˆlˆÔmRš«TMÈÚ£5#qÖª´­7}ßùèz~¿Ê´Š¸®J±à–=rMBciy›…ÿžc§ãëü¾µ2B±äŒ–=XòM´NÛ ãǺï†òºÿ®û0®D×]ðÓþB×_õÃÿfчþ"*›÷‘èôQEz§PQEQEQEQEQEQTu­Cû/N’ì…"2 î8’}³Y?ð\HÒ]ÀÖRX%ÒÛW&G$¸qß c‘ÞÝ€é(¢ŠùîÜ£ÇþàþTüR[ôx¿ÜʤÅ}/z$Ÿ¼ÈñIŠ“„Vè.FE&*B)1Z¡ÜˆŠB*R)¸­I‘bµ.Ú6ÕܴȶѶ¦ÛFÚ9!Ûô /Ïœð1SmúÓcî`,søqý*dîÒ4LU*Šh§¨¤Ù¢cÔTŠ)«R(¬Û5LzŠ‘E5EH¢²lÕ1Ê*EÕ*ŠÍ³DÅQR(¤QR(¬Û5LU“ÃçBT®0U½t5"Š‘Ee-Uk'Ÿ¾6žŒ¿Ý#‚?:°¢ªcì÷a¿åœçÙñÁüG€õ«Ê+$ûšE‚Š cºÄ…Üà¼f9ˆŒÅ ޹ùvýAçô¨rFªDÀTŠ*%ó̬ Æ"Ç$±ü1N`â–~åù“ŠÍÈÕH˜ ‡PfK9g>#CèÌvƒøg4ùÀDònßÅæ3ù ­u$ßh±G·.ûšWXœŒulg—ð¬å- sнKk@zNÅ ž#9ƒv%ÆvF~ž¿…KІÍTˆñF*LQŠÂLw"Å&*\TWGl›åm œŒ–>€u'ØV2aÍa Õ¸µ²-lÎ"òñ±XòÀôÚ:žãÕ6Û«®I6±z êz/ê}Å*Ù‹i£kxÆ‘+7,F8%'œ~u„…ÌÞ¨„ÝI'ú‹I˜yÀŒ~¼þ”ŸéÍüÑÿÀÙÿ ­)¬$Z¿s<Ç}ÿ=m¾žSñTÂoW¬Vïô¯éƒZ%i¤V2e/&g¢ŸëíæŒx.ñÿŽçõÅ-”‹r*ùg,T9à ÿ?Ƭ]ŒÂÈ$òÚA±[Á=)¯a ÁY$D8oÏ¿ÐÖ°ï$Éý)á~•_}ůúðg‡þz"üëõQ×ê?*¹$±«ÆÁцC)È5„¹î _¥Z°_ß7ýr“ÿ@jŒ/Ö­Y/ï›þ¹Éÿ É|HΤ½ÖT ô§…úSÂýiê¿Z眆úSÂý)áiÁ~µÏ#7!¡j¶–»RxçŒî?wÑ…_ õª¶«³S½ûË¿˜+ÿ²VOáfR–¨´«OU§ªýiê¿Zä‘CBý)á~”ൠZå‘“À¿J]ŸJ˜-#t¬ÔÊR+8¨XU— ¸³ H¬â¡qVT/[ÄÅÈ®õ ÔïQ=m'"¨Z§j…«h™¹µFÕ+TM["ˆš£j•ª)QK1 £’IÀª&äMUçc!pZCÑ©ÿ>´¦In?Ôæ8ÿç£Oû£úŸÖ•!HØ9<’NIúšÙ$·Êæ”æà‚;F>èúúÿ*{TL5w¹.Df˜jCQš¤+Œ5Öü4ÿ½×ýpÿÙ…rFºï†Ÿòºÿ®û0®¬7ñ¥'ï£Ñ¨¢ŠõNТŠ(¢Š(¢Š(¢Š(¢Š( ˘líd¸¸lDƒ-€Iú:ŸjÆ{øËWÓ¯4õiT­Ã[&=vçîä×µm]ÚÅ{m%½ÂîŠA†9Þ³ÓAzﯮcF "šl®AÈÎ'ÔšáÐÖª2ÙÝ<ŒÉ©Ï“¢8È_nW5zŠð aþûƒùT˜¦ÚôXÜÊ¥Å}•/z Ÿ¼ÈñIŠ“m&+t+‘⊔ŠMµªȈ£mI¶µw)2=´m©vѶ‹š&G¶µ.Ú6ÑsDȶÒF­å®ð`d{Ô²/îÛ'hÁçÒœ©…®O7¼h™ÚP1Rm¥ÛíEÍEH¢š¤QRÙ¢cÔTŠ)ª*E“f©QR(¦¨©VMš&9EJ¢š¢¤QY¶j˜å"ŠjŠœXãÞIù‰8 +);&JlêáÈ<|ƒ-žØ÷Í6Éç¸ do-£ùehÎï®O ñùÔðÀ‘³°Ég9f''Ø}=©—ìÓ-Ðû„›éÙ¿"}+ orÓêX‚Þ(KÑT±ËÕ¹ïSHH&l˜ SÀ¤¤¡³DÀ ¯ߪÊ{G õbÙÿÐV­¨ªöC7w縕WðòÔÿSYIì]ö-m`ôªÿcòa)f» 0,¿LgôÅ\—mD/r¨›,.Ž—!‚’¤÷íøâ¦ÛRÈÁV}Ë6—%´M9wÚ‘ç§Aì1ŸaŸ@+0æ¶ãî®<’±ÆžmÃýÈÁÇâO`=™¤·²ØþtíæÜä`(ôQØ~§½Kgj!Vwq,òÞIޤv€v×5cm`Á;êÈŠÔ7VââÝâ$®á€ÃªžÄ} ZÛI¶²‘w¹ZxRXÎUÆE8­%¸!¦ÊªI…ÀÀ`@9üÉüªRµ„†¤BVšV§+M+Xȵ"“%ÚÆcÏ”¾`rz1øn«i-’B¤`ÁÜ”ÛÈ Ûôçñ©ÂÖ2aj´–´ö`n'2BNOf÷ïßÔ_ N X½“¹^ÖXîbFxèAà©îìjíšþõ¿ë›ÿè&¨]@öòËu,À~ú0?Ö(î?Ú½zzbô0GÚZAä´lU€Îì©Æ1×9¨·¼¬c)û­1¡i%’(#2Lë/Vc€(_>I#dÜÛÔï>Øã¹çéR[Z$Šïfs–gbÄþʹ¤»‰È‹Îf1`yNK’(÷ŸÒ¤X®I7ËÆAå÷É8ü1VBÓ‚Öd6T!àò¦žy~mÛüÂù¦Þ*³„ëlÌ›™-£ØI$Œ3ÿjª±®u©Ù¶OÕ›ü+»3)4H–ÊòºÁiA0[=sJ4è< ù‰mß»™Ðçê ¶«R*×$¥.ä6Šße:7K™UcùJ·Ô‘œþ4åûT^sH‘Ì£˜Ä_+bã>ùüªÐZBkšM³7"²ÞŶ/4ýå$$r¬HêÏ?…JM$¨’¡I]OUa‘UÚ#–Y£•ßrœBíònìAÁ#ù{VN)˜ÊD¯Ò z"¸ó¨a•³û·až:ã‘þ4­Sgfc)ÜT/SµBõ´L\ˆ¡qS½Bõ´Lœˆ¡jª´Hr!z‰©óÊ¡yX*Žæ©·ŸuÓtÿãíÿÄÿ?¥tE_Rn6{€¯åƦYº;}Oj„[—`÷,$`r}ÕúçÜþ•i"HSdjzñßÞ‘«U+lK—b#QµHÕU"yˆÚ£j‘©Z!\ŒÓ <Ó h…q†ºß†Ÿòºÿ®û0®H×[ðÓþB÷_õÃÿfÕ†þ"6¢ÿxF¢Š+Õ=¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ÁmGú,?î/ò©qM³èÿ×5þU.+ìi| ÐùÙ¿y‘âŒT˜¤Ån‰¹ÚMµ.(Åh˜Ó"ÛK¶¤Å.Úw4LmjLRí¥sDÈöÒí©6ÒíúR¹i•çC!`J…9£ ^)î§aÛŒãŠT¢–r*oï§ Í´»jM¿J]¿J|Ɖ‘§ÅI·éK·éJ扈¢¤QH=ECf‰QÅJ¢˜£Š•EdÙ¢c”Tª)Š)Ï"Ä»œàd©'²“5LVvW ''²R¥KoAÄI'$ŸSL·ˆÆ§s—fbÄŸè; ²£ŠËÍš&*Š~ÀêU€*F=Å *E›f‰•¬KFÏi!%¢ÆÂO,Ôt?L÷«Ê*­äNBO æhNTxw_ÇùV ‘'‰%ŒådjÊöи±àT€RRRÙª`WÓ†d¼>·ôUÒ­U,b7…ò¸#€OP¾ŸZÊORî^ŠP)Ø©lÕ26Â)f ($ž‚©XÆnßJ2 B§ø#ÿÔþµI¨´Ëˆû²eæÿ®c·âp>›ªî+ ÷e)aû7›=´;är  lnÇRMØüð9«dÏ5.*¤Â;-Ñß±Êù€r«Ø¾>˜Ï°Íc!ÞÄÛiªßk–èâÁ“þ~$ûŸðÕ¿AïGödrsxítÞ’}ÏûàqùäûÖ,9»}¶ßûCjÝÇ&õ å#n!ëÓ¯?AVÙ‘X)`ôÓn#‚¶b…v¾ÄØ0àG>ß×g”Š‹eQ'Í(pGÉ$öõª’_ÙË,WI!b÷2+0,@δV%Lí}Nj­Ý²ÜÏrÛÅ,;Y™AÚF0¡äþU‹nİđÆ0ˆ¡TzR…ª¢Ê{~lç%ç”亟£}áújšÚíd“É• Ï–ÿÄ=TôaþH“AÏИ-<-;늋÷—ɵE«Gþ±_—'û¸è1ßòõ¬Z%ÈG‘üÈÒ(ŒÌû€T¯Ôû*‡I·n¥,%ÝãºY2çî¶Ö,€tœŒµéW ‚8"XâEDQ€ª0%Ý«Ü@â, ãHOA }CìMBø¬c7¥ÉÓ‚ÓmeK›h§îH†zóS…®Y rœžœa"†…ª–Ë»Y¼aÐC ~ È“ Ð U4±¾kù»IrBŸeUCú«Vfdä\U§Šp¤5Ë$C„ÔdÓ‰¦ÉÄÊRšcSLcY¸˜JD7E8_5l`ÊOU#¸ô¨<é i Ûıo7Éà{ôÏ9íV‰¨eD•9:0!•†A”¼žÆ2ר^“t‘Jë'–-ð¢6Î=6Ÿ^z|}UèJÆ.D/P=NõNîæ+p’]¾ê(Ë7ÐVÐMèŒÜ„j¡-Ñ‘ÌvŠ%qÃ9?"}Osì?J‘¡žë›“åEÿíÓŸ÷ÕHý¥Îû"U*Ьí{Á'æŸãO[‰ým´€wdÃÓŸÒ¥Íu4L´¢… óÈ<´©#’Üôü?B·ÖÁX™UJ‚J¶Cô<Õ«h¼˜Â,rIcÜ““Y9'±¢dÊ*ESTTŠ*4LzŠzŠE"ŠÍ³DÇU¢c¼òÏú‹‚Y?Ù~¤~<Ÿ®}ªË²Å;g 2p ?¨f´7ñ!•¥…q‘ nÄ‘ÜpqÓ>µŒŸbÓ%"XÜÚ;!Û÷°¹ÿ{½³RˆfvÚfh£@cõ#8úb™§Ìeˆ¤€,Ñ’(éŸQìG#ëW¨½Í 0!t2y¿xHÅÁç¦@Õ º4·ðÝÆ&P@Æß)§µhU uk¥ìðÆãÜåÁþB³v)2ym Ñå‰]ã9V#•úrÛm•åIeÇÝf, úàôü1SQj5µ…ÄÉ‚é(=[Ï.Æ·F~Ÿ$ë÷³!¹y%òÁ1ˆÓ ë¸ðOÞ­Ee|…9#ÇÔv¢ÖÝmm¡9X ?AŠÖ&˜O±DÁJ‰çžãÚ²zvišYX$h2ÌzTV 5$»FKn©nz¿»ÿñ?Ÿ<­å7sB÷òG䬅 *YÜÏOöFy9#Fëÿ] ^ûU²Ü­±¸„\0ȈÈ7ý:ÖWÔŽb@´ð)OÆï&häÚpÛ}qS…®i"\†HË O$‡j ,ÇÐ ­£DÑé–þ`+,‹æÈfs¹¿Ri5¡¾Ñm[É8õSËÿãªñ¬d½Ó'! 0Ó‰¦X8™¹MFM8ša¨q1”†šcq¦1¬ÜLe!¬i„Ò±¦Pâa)\D“ÄñJ¡‘Æ5XMµ¦IPưà‰ä2ã®}x9ÿëÒÜß,raC=Æ?Õ§ðû±è£õôªM§Ëtc’îpÒ#«¬j?t¸ê1üGÏCÈ©BËÞÑ7ÜkÜÍyŘÙÿ—‡÷G©ãëK ¬vû™rò7Þ‘ÎY¾§út«I*OËnGSê*7§ÍÑhbçÐ…ª©š¡j¸äDÕÔ­Q5myˆš¢j•ª6­Ps5FÕ#TmZ¡sµFÕ#TmZ!ó 5© FjÐ\a®·á¯ü…î¿ë‡þÌ+’5Öü5ÿ½×ýpÿÙ…uá¿ŠŽŒ3ýêþºEWª{EPEPEPEPEPEPEPˆØô+úä¿Ê¦ÛQØôoúä¿ÈUŒW×R~âô>V£÷ÙÚ]´ý´»kdȹÚ]´ý´»h¹iŒÛK¶ž™,© rÎßu’Ï­K’[šÇ]…ÛQ<è¢,ƒª Î>§ üiDÏÌí±?çšæÃõ«ı¨TPª:0*y¤öÐÕYDW}÷/÷Pdþgü?’;H‘·Ëÿy¾füÍX N JË©¢“#ÛLÚâpr6Æ=ÿý_ʬm¨îUD~kîÄ'Ë×€¡4¤ô¹qb…§§‘‘ÒœŽbÓ#ÙK¶¤ÛJ•ÍS”-H”-.bÓ# N R¥ SÌh™ZåARB%I0ÈŸÒœ¶A?ãÞY!örþG§áŠ”¤ŸhByapîNF?­N¢²i7vh™]dº‡ýl"eþü<ûäÿBj͵Ä7¸,¿yHÃ/ÔE=E$¶°Üæ %~ë~„r? ÍÝlh™aE9Ý!‰¤‘‚¢XžÂª,wvßêÛí1ÿuÈ>‡¡üqõ§Û] »­‘¸EO™ >îÙƒÔuþy¹&X‚3$¢áŒƒr±·3ÉÈõÿ>¹¶¢šH¢¡–™Nñ ¼‹}'`Û2÷£õú¯_¦GzÐŒ‡PÊAR2èE ™i3Ãñ€ì;}rk&ìEž^Ežù„ó•\~î?÷W×ÜóôéR¯ó$’«mñ.~`¸¦Mlg&U¸ER®B2žzƒíè}ÅE{å@Ñ]H¬YF žØŸlàþ›É]©R2ÁªÚyŽM>Ùá "h” n `c>õw^ËÍk8LшåØ7  qÒ²c¾¤w+1¬)2.âºOçÓñ©ÂÔ;"—Qs-ã ¯oœ×äý}êÑT të6>c&òÌ4û²^Ê…ÎÕʰé–3ϯÀ"­é÷ *˜]+ˆ@Äzˆuþ¹=œRyk-Äq¥Ë¨ó6p¹ïŒÿ?Z‹TjóVÞkpY&cÀõVõSÆGÓY¾Ä_©l-gk.,Ò=AUÝíOï5,Z3÷‡˜ ÿ©¬.¦ÔVâÄ0ûØÝO˜ºq·nöíìà·’•UÉ-ܱõ'¹úÖoB[¹ûL’DéåÇ Pή»œŸNך’ Ý0šIf©H܃À:‡ElͳZÑÌõÀû¹ú©SøÖ”cæüò¬¶‘ ècÏgoöš‘AFDUT ®îŸð× ToFu5}$vÿÇZÑ XO¡7!{X%GI!ÖNY õõ¦6†8 /l±P@ÛÏ·CøŠ·ŒT·)gk-Ä€•sÕ`=Éâ¹ÝÞÄ6g)¸¸×å“1½­œ{C {àú}óWm®EÌe¼¹b íd• ‘úŒŠf›nöÖh²grd”Ž…Øäþ8ÀS®ía»Œ$鸹H$> ŽA÷2I»9“L&«¼ÒÁ,­?”¶Š›„»°SÈlþyÿõ™‰Èâ±q2”„4ÂiI¦Y8˜ÊBQ±§1¬ç¾{’SOE“ÛýZý?¼}‡â§‘³Éî®bµÌ™Â.p=Iô©>©µ^õÝioéÿ-\ì£õúTÐY$RyÒ»OqŒy¯Ô{(è£éøæ§&¥Ú;ÊV †­£ÂsÜúŸSïJÆœMFƱ’¾¬æ”ŠÑ“ÒB±lŒ êá$ÃëžW¦Ý䤈Ö7Ëäà0 Œ~dœô5ÔÊS!j…ªf¨Z´‰äOQ5HÕÖ¨\ÄMQ•ª&­PsµFÕ#TmZ æ#jªF¨Ú´Cæj3O4ÓZ!ÜŒ×[ð×þB×_õÃÿfÉ‘]oÃoù ]×ý˜WVøˆëÂ?ß/ë¡è´QEz§¶QEQEQEQEQEQEQEx¾ž?Ð-¿ë’ÿ!V1QiÃþ%ö¿õÉ?«¯¬¦ýÄ|…Gï¿Q˜¥Å?¸­.Jc1KŠ~02zU`ó¡+mê82‚ÿ?§Yr±¬udy˜¥¾0R2°õ?§ò©¡·HAÚ2Í÷˜ò[êjd@ªF Jv).ìÓ›¢Š]´üRNå¦0-.*@)@©¹¢daiÛ~”ð´ìR¹¢exᄊk¸èW·éÇáS¦L)Ã1U µ†89#ý?©«jèj™ZpZxZpZ.ZdaiÁiûiÁjnh™Úp_¥H”-MÍ*„O¶““æÇ±ŸþµX Méx£ËûÑ“¿„qúÕ€µ)š&0 P´ T¶h˜Ùæ[xV„ÀêO`=Í ÓíÚ!&pÅÃg œ’ä{S¤ó|ÈD`lßûÂ{.õÅZQY=KL¨êÏ€Þ/Ô½ø`û»o4w‰!ut=Áý)Ê*•í›IpŸf)% æÊ>éP1†ÎHÇCŒàŠÉèh™iw\º²¬ãÿ?áIkþ©ÜÀxYÀž?¯ ãÿA?ð*~ 1u¦¿arA?XÜæ¤.–v¡îd`¸ÜÇŽîOoz͉±.®#´ˆ<¤òBª¨Ë;€æ–+yòÉ,ÛÕ°0¸Tùœ÷ú~.·Šey^ywîo‘@ÀEíøúšI®.-bûKïØ@pöoÀíY²[+N¿bÔ£¸CtDRúþü~ï¾WÒ®Os ¼eåp;xŽ}09ÍWÔ4é/b¹F¹|IXãÀ ÙºdFzþ6Ž m6ÞKhåA'–ŠG=;Ör&å8.<­jx’ .bŠl…ÀRw)'8#…_zÑŠâS,ÊlçQ±V%1'°ÃgŸ|T 1®Çâµlþ ¿âkIG?¬Þè†Ì9o“ûRÖY¡ž%Ž w+DX©,˜'nxÀnzVÊH÷X€ÜÇ¡ªv_½Õ5 û'—n=ö‚Äþrcð«2ÚÛÉ:O$1´ÑýÉ Ëô5„’%²CY“Ÿ·jiæ B%—ÐÉü ø}ïûæ‹éçÒí%‘Yï]Ü,¶‹÷A‘õèÉ©tÈDh –OÞJÌ»K3rI¾€ÇjÏ–ÚÙhÓ 8Ó dâdØÖÁAªJ¯k$qE-L ÈÿÙqéÓ‡‹†«^¼ m!»dÃïû¤0j-ÐÉÈÕ;»è­ÜDK; ¬1Œ±¾ÃÜàU+yî._ìpy¶°FŠDÓ Ë"ôȧN­“íÎjõµ¬6ˆVÆã–brÎ}I<“õ©”w1“±PÙÍyój ¾_khÏÉÿ?Åôà{µoT*€v§µ1«)]˜JCZ£&œÕ¬œNyHi5S‰¦1¬ÜNyH†æ5ž"pJ:•8=E ËqmÊY8¨ÈÍNÆ«@d15B°fî†8ý1JÚJZ Õ T­Pµ2ç#j‰ªF¨š¶AÎFÕSÚ£jÕ˜ª6© FEjŠR#ja©H¦Z$ZdDSH©¦‘Z¤ZdfºÏ†ÿò¹ÿ®ÿBÊ]_Ãù Üÿ×ÿ¡ êïÞ#³ühÿ]D¢Š+Ó=ТŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ÇtÑÿë_úâŸÈUµ˜?â[iÿ\Sù µ¶¾¦›÷ñ•_¾ýFm¥Å?mV˜™Mº’#_õ¬?ôý}¾µR•‚‘…ûkÓ°?÷ôÿñ?ÏéÖæÚz 0@(ZKCNkì0-.ÚxZP´\¤Æí¥ OÛJ•Í”-<-8-+š¦0-.ÚxZpZ›š&FcWR¬) ò¦ÁæâU«¤teì§áS…¨å€3¤À6ø³€¸Ë9Ëò õ5‹”-:OÉʰÈ⥠K˜Ñ1iÁiáiÁi\Ñ1iÁiÁj /!I iºiGXâ]Ä}{Ç.V4Bº?Ÿ +œ†Rzú*œ-g_‹ÙmZ_) Xq(ïs·œ``˜êzÕ¥°2f»¸ÊÞXÿÇpZÏ›] d-¢ýæQõ5Ò¬Ïß·I}åùÏþ=šzé–K÷líÇÒ%ÿ \̴ƨŽKåe”Ž"6F#Ÿüv®(ªN°{Ù#k Õ·Á–ãÿ9©†“f?ÕÃå×1ÿè$T]–™uEGd¡•§ù«9óö €?~¤Õ+»G··c ÕÎ #,Ĭ wõ«1‹ûdUAqŒ,˜Ø@AüÅCzš&\šÞ+˜ŒS t=óö>õ\I6›ÅÃ4Ö¦êñöýGû_ŸsNR· ã}«žλA>¾é?BkAECÔ¤Â2C)HÈ ðES€g]ˆ· L'´oÔ§ÐòGâ=!¶—Oc-’€œ½°íêSÐÿ³Ðû¶±mªY|2q‘ÁRæõVm–™ª<”ŠôuµmÏïáÿ!óÀE?Xùl<ÞÐɤú*¸-ÿŽæ‹ šA%¥Þâ!‡ã‰ôp=qØ‚)–P‰lnt¹É&%0’z´d|§òã> Ô6UÉuAÿc±ºOëN¸n¯eû±$“}„£µUyš}"Ây?Ö¬ð¬ƒÑ÷„aøjä#:íΆÖ~-&©l«—qF)Ø¥ÅC*äÀ“*ï@Å:g³†©3«Çir¯m$gc¡åˆR§ÛvÓŸ`zVž*”°´L’ȯÊ2r7sb1DZ=ë6+„%þæ%‹i(’³ç@ƒôªÙØiðÞÄR[’£A€®yO”Šž9n%Hî$Dk½•ø1¿^{ô?¥ÉÃ'×i!°UžêCsp9Va…O÷·×“ïW4Š5Ž4TEUQ€°¤cY¿#)H­yæìF…Õ6H÷t)ü@þý@§ä‘È"œÀA䢩Ø4Kn ‹~Ûsäáúü¼Óñ¬ÚÐÂOBv5scÉ£žRÆ£cNcQ±¬Ú9å!¤ÔliÄÔlj9å!¬j­° ŽžgïçÓ“ÇáVÕKVF‰š5* œž§qþu6јJZ2V5 ‘FÕ üäLj&©XSVÑCR!ja+ a´bh™ Â*b)„VÉ&D˜EHE4ŠÕ#DȈ¦R‘L"´H´ÈÈ®«áÏü…®ëÜÿèB¹r+©øuÿ!kŸúàô%®š ßGvøÑùþG¡QEèðQEQEQEQEQEQEQEäzXÿ‰e§ýqOýU°µ”?âYgÿ\ÿAoôÔ߸‡ªÿy/R­ÔªÆšCµõõ>íI A'’z“Üše óÝ®GböO_ǯÓo'}KnÞèÌR…§JÁ1iÁiاJ扌ÛJž(®j˜À´à´ð)@©¹¢cBÒ…§KŠ›š&4-(Zxà´®j™VMðÊey[„ùÃq´Žùþyôd vÐF†5h$„EµTXlÇ?Ò¡»§r`µ ÅÊ@U0ÒJßv$å›ü¹â’Yä’V·´Úd_õ’•ü[Ûóí™­m#¶nYß—‘ŽYϹþK•ö5ZnW³Üów&Äÿž11þÝOáõ«pÁ(#‰4@T S€©Ø´Æ…¨íVP…g`άy×'n U€*¼â+Y…Û†‚ÄätÆx'èIüÍ&Í' N O’Y#‚6’i4^¬ç~5-–™EôH0´nXã€À®9úüªÈZ͹½y|©,ã‘’7Üîÿ»†Á-Éç ‚­õ92Û@?º¨Òûè‘üª9%Â͵<Ž˜»º}ÜóúU€*„öl‚9.u ™VT;Ynw:.zñ×½]Ž.ZR¨¹]¤ƒ’ÜñÛŠW-2BŠèUÔ2‘‚È5Xi¾G65±ÿžxÝýñÛþEbºRJjS“é$q?%õ§(Ôâïiq톄ÿìÙý*-1WPkl.£?ç²Ñ©ê¿ˆÜÔ“ÚH’›»­ƒ$dá&þŽøŽþÑŒ^ÚÏn;±]éÿ}.p?ÞÅ6`ˆ'ѧ‹Ên|Ù…þ„}ÓôãØÖm”˜÷?Ú%Õ—ÉylHÙ'âý3ÇèFi²\§ú>«DênðUsŽGª7_@Z“pº¸ó-‡Ùu8—ç†^<Åô8ûËèÃ8'ê ñ5ß—ˆ÷z…³Žc8Æò>{Á9†Ê¸·hÑ[êÖÊ dl€›÷Ú“ÿzÕ•õ«—S•{H ŸQºZÏY ¬ù­¹¬XFîN|Ëy8Vü\Ÿö÷§èçɼµ€õŽ m›?ôÉ×gæ­º¢ãLßÅ¥Å.)2î7SR1Ãn.¤ŒÉöSæŒà‚ï’Õw„q× W0nÖ(£•¯§2º[݃g%£.§ì@Ø?ã†I¤O¶í"°QŸ•"+¹sÛž§ßRxçXþÏæê ¹vÆÔ'È îú©¦ÁsawåÇ-³Û‰°êI'vöIbÎ£ß Ð †41<©-µì "Õ:´`G…e`>ñ9?LÒ¬š¨ ‹ù›ÍÈ1 òó÷y›ý?à51l•ª6§µFƲh攆±¨É§1¨É¬Ú9å!Œj64óL"¡Äç“#j¯oæ›hŒà,¥p;7z}ò«Û¼M'–fX`9Éô©¤á¡Œ¶""˜ELE0ŠžC°¨ØTÌ*6¬bRdL*2*f²‰ªdDS©H¨ØVª&‰‘M"¤"˜Eh‘¢ddS©¦Z$h™Ôü;ÿ½Çýp?ú×0Eu?ä/qÿ\þ„µÑE{èîÁ??Èô (¢»O  (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€<«Iñ+³ÿ® ÿ Šuî\%²’ ç GdxÿO©º@ÿ‰U—ýpOýS­WιžsÐ)>ƒïûë#þ+èS÷>NÕ%.Í“ª€tŠpàµw!1€RO J•Í8 pZpZW4Lf)@§í¥ SsDÆJ<-(ZW4LhìS‚ÒSsTÆNœœ¦æ‰©ÞrÍe2Ëûç#!öÇr{Äú“"54²%=Ûߨ “ì)ö–«mÀK±;ÏWcÔŸóíPÝô6‹¶¤6ðýˆÇo$[8}Ù õ;³ëëÏ9Í\” `CAàƒÞ HšÐC¼[àÉ 7ò€ôÆ{Nç¥+ØÑ;–§BuÜŒzƒšxZW4Lhí¹ëNÀ“€PPÚ¯9)aÛÿÁ?ŸÓ¬9D†ÞöâvkkvŠY›ý!¾æÐ{Ägg¸éW Ó¢YÓ¸œr$—¿îŽ‹ø ™íc>S$j|¬ qŒqÛÛØzT–ÎÓ@®ñ4L~ò7U#ƒõú÷©õ5L&.!’Wtr)V ŒmœÂt`+Fæ6 ×#üFÐÔÒ¼pFÒJê‘ Ë3+6Ion¦YaYØmÃ< >Œ —Óæü½e²‘oQ–ÞG7-R>U‘†n gëPÁª}ªäµ²º”:ƒ’‚03þùü3V­´ë{wó7LF ²ÎàGœ{t¢ÌCo#ÙF[rfP¦˜ñìG·-³DÈ„š“}Û;eí\¶ ŸÖœSòÆÐûyÌ?öZÐ J+”™@\jó%‚8ô‚ãqÿÇ•GëU¦{/4Í4WZmÁûÓÛÿ}2åü 5´œK)3]ó@p¢úÜ|ÑÝÚ¬Œúàuú¯_îâ¢iŸ1Ü ãy?ÕÅx¼G0Ïú¹@û§dŠ%’VóB™&-¼.OP 7¶Ò­Ù.§qwäݬ! ™fðX) ¼r:Œú7¨¬/¾”úäöúœïn»€@€œ,}3»ÿ>ÕÓøZÉ-´¨d,2)/)Ëçhƒ {Ô±\×–—¸¨aq¥¥ª÷×Ieló8-·Uz»€£Ü’ãPÑ7(ê3Æ×Ȳ°[k73·`pBâoø úÔ ,ð©pƒûSP9XÛ‘ ›½”ŸVbZ¤’5|öó˲!ÿ›Ÿîö#À?ÝÝæÌ-)yÄ#\·ü}ß¹?3×ñÐrNIÁ,KdáþÆ£NÓ¿{u÷¤’NBg’œ£¯°äJ†×G‡÷’3Ë1$±¥ñè9'Ø ;Uíš/'FŒI%ï&Ë'«î}ø„ãèäÓôˆ +Ü_2üçY˜}|«ìQSmIlS æ¡ÍÉkKcÿ,coÞ0ÿi‡Ýú/çÚ®CVÑ,PF±Æ¼* ÀTϨÜ©µŽÕOñܶæÿ¾ãÿÓ¦¼¼Þ^ÜMþÊ7”£é·Rk6ŒÛ'º½¶³ÜÜE=<Ç ŸÎ³¥l5xÌòO4‚¤åƒ6ýà:ö£oaihI·¶Š&=YP~§©¨î™RêÓ1ogv@ÿÜùI?žÜTÙ¶@nï¤ÿU§ÿ®óªÿè;ª­óêfÆÞωåˢsÑzuü+\Õ[Ñ+D¢þbrN>]ÃpüFEA‹‘Y£ÔÿçîÏÿ[ÿŽSZ=Oþ~í?ð¿øå_cQšÍÜÂR(Ô—þ^-ÛÈeÿÙÍSŽkÏ·\°µäEDv‘œd€^¿7¯zØ5ZÛÍe‘¦@ŒdlýÐp ú€ãPbå¡U¯äOõÖ71ï(Y䤟҈õ YœF³¨ÿË7ù_þù85tŠŠxb MH‡ªºäT8£ 4÷E0Š®tå›I¥·ÿe[r}6œ€>˜¦™®íÿãâ2ÏH:þ(yü‰úTû>ÆödäS¢ ˆnP´2‚U>„uØÒÈËv ª2I8¡Àç’{_]ª‰09ìÇ#Ã?˜©¢äHÿ|ᜱ'O}â(q2Ÿb2)„T„SH¥Èsȉ…F¦aQ°ªQd,*63 c ÕDÕ2)„T¤TdVŠ&©‘0¦R°¦Z$h™Â*R)„U¤h™Óü=ÿµÇýp?ú×4Etß¿ä/qÿ\þ„µµ5ï#»üxüÿ#¿¢Š+¨ú ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Êì¤ò4 i@É[T z£ó«¶¶ÿg·Ž,䢀O©îj…˜ß¦iöt‰›è«»ù…üëcïA胬í&»·ý~c6Òí§í¥ÛUs4Æ…¥ N J•Í”-<-(ZW4LnÚP´ý´¡jnh˜Ð)BÓ‚Ó‚Ò¹ªcBÒí§bœ¦æ‰ N N«j.émåÄÅe„HGPOSø ŸÂ¥ÈÖ:»Y¯Ú®d¼< ÌPÿºÌ߉µ|-$0¬1$Q®ÔE  v¥J¦æ¼×cBÓ‚Ó€¥•Í*½³D²½šÆ“HC6àv±÷ÇB}H—™„ÁgÛ»g¨ï_¬Uµ Vÿ»Ï#ypƒýãßèIö¡»ÅÜ‚eþѹkaÿ±ߟùèÝB};ŸÀzÖ\tFÚÞM*É"ˆKxªÄ’J‡ÁäžÁŽyõç¹ë}$ÝÑ]K¦7(#+žFGj›šÜPµVðGn~Üò:y*CxŠGsœcçŽõt-P´nþÐÜÛ[±XGgqÁÃ?éI²âÈìbmD­åâ2ícå[8Ç”Aêû{ô½Nœ‘$±4r tpU”Ž=E6ko6X¤Ydã?ÂxaÜÐÿ1Ú–Úf”ȯ ‘¸uÒÌ^ÙU¤V0ûËžF{~ T—6âæ‰™Ó8!‘°ÊG Æ’¿Ò ³¬ÕC+òÈ8É{ö©¹i’®eH#ÔSÀªÁ€Š)æËí9òÙ»ãО¸èN}H¼+–†NÅ(à)\¤4 p¸¥ÅMÊ3õ=ÛQˆò§ 5'õ·qÔy¯?×ôëÍ"M·(J7 *.U»ñè{àûãúÍ´7–ïÌk$N0ÊÝêGŸ|=×-NM>W.¾húñ Ôz“ÐW¤×øÏÂמœjzs;Ù¤ŠáÁùàlñŸlô?Ÿ¿£xK]ÄZ,7©/Ü™ð¸ëøwƤi›£´P3ÏïÌמ9šÃû>9Ñ刵ÃõJª¯Û8Ï_ïW b¸ï À÷>2×ï Áx!G]ƒôb}ÆÜ}Ò»,TˆLRâ–Ô°ˆPI 2Ií\n©¬ û¼ÄäA|²iéËäô8<Ф·VQT¼YâļvÓôçÝÈ–Eÿ–œãÕsǹöÎì«[ƒ÷·¶î:äONI ž2O*ÙbXGCJ(lùaJÂ67—ÙA?êbÿhá›[€ ¤@-äqåÅîìâÇO˜ÞcÔ8赕b%2)ò³¿.£n¼7•Œžû‹J}êØžÞ癦²¹?Þ¸º7?ù @~”š%—Þæ †+w©5ÉßOV*=›f[ó Jµk3Á•a£I|‘¸Çýp ?¥Sä(VÖ- UéåÙ”ÿ1«¦þÎô,6×–÷õù%BA£Ó×!Š_Uùae¿œò~›V¤¶[ÀÍö¹`uþl¤}Icš[¸îÝÃZÜÇ•’àŸ^Urú¤_z+[‘Ü£´Gð0ýj2l’å%*X1û¢Lð}Oÿ[Š¥,šÂÏ µx—q}³[Ð`¯õ©Ž«\^E5Ÿ¼Ëòß`•‰§[ù7rÝE!“jˆxû£1 ÷ÎGýóSc6ÈN¢ñÿÇÅÔCûÊ‚QÿŽJˆÞXê0CâI#c6Ä=6ñó£–V¡žöqßK+^ZFDo¶+óíÀÉÏQÎqŠ›#bÑÂ*£ZÝÚóiqç ÿ–7$ŸÉúÇu: øå—É‘^ ŒgÊ“‚}ÁèÃéøÔ8É xáa+æùO/îãm¹Ãœwõü(Š! Iäª(Q““HšéüÈp0òº– älgëR‘Râc.ÄdST¤S©å0‘Â*B)¤Rå0‘JæÊ)ØHAŽ`0%Œá‡ãÜ{Š¡,ÒG)‚ú#-¼{\Ü  œË팒8é+NâP¬°«…šPÞ^A=R=:~cÖˆ¢1Dˆ]¤*0YŽKZvîO5–£WPÊC)r¤"«Ék%³l€Á9x ·ºÿtþ‡¿­Ko„v5.4ã¥ÖÀE4ŠŠi¹y0¨ØTÄTl)¨™ a+ ŒÕ¨š&DEF¦"£aZ(š¦D£"¥aL"­DÕ2")„T¤SªHÑ2"+¦øÿ!yÿëÿЖ¹²+¤ðü…çÿ®ÿBZÒ S¿üxüÿ#¾¢Š+sèŠ( Š( Š( Š+/QÕ.-¯¡´´°k¹$¤lJ¨9úÐ¥“£kgQžky¬ä´ž,åYÕÁÁäzqùŠÖ Š( Š( ,цøì?é‚ãøÿâ lY^íQÿ»o’ÿÙ«gíS~éùþ%þõ¯ë¸À)اKŠ»™&4 P)ø¥¦æ‰Œœ8 p®h˜ÌS€§N¦æ©Œœ8 p®h˜ÌS€§N¦æ©Œª0óµh×ømâ2þÓ)ü•ÿ:¾T°î¯å뙂)öT_êZ¥³x=Ùl P)àRJå&4 pà)@©¹ªbT”}§VcÖ;DÚ?ë£r¸ÿ¾ÍhTôq¾Ùç=n&y3ê7¿øèZ–Í¢ô¹p c[Äò Lkæ…*$ÀÜô50à*[-3R{ËK‚'k›‰äò‘¾Tp$‘ÑK ì?­ûym`h¬‘’)ÈIÁÚo\{Txóµ¾~í¬ï9?¨ ÿV†Ðq‘Ó¥MÍ® ͬWQ¦MËœõ ƒØ‚9ÜTkd`…ÒÒW˜‚ …¤UöÁ==ó%ÌFh<ýØI ´úícÓñ'ëI²ÓûDsªíG¶Û÷·êG¨þ,þ,r[ê6Î"—|m”mŒU”úz©üˆ§%ä ,‘nex-½FpHÁâ=º]D’Hù ¯•9õã¯ÐäTÜÑ24imš]em3ðH=·Ì~”Ð?³ái"\ÂÒn*§yO]£©çžxì*p.–á½¹_™‹êqéŒþª°ù>TæÇý Rà· *î'û§çÕO>´®Z4@§b³Êy{Ö#º¸‹ *+<%ñü@ØêqÇô•5Šžõ£Œ»-/ ã–ÆãJW-1J.)@¥rbKŠP*Jñ¤¨ÑȪèà ¬2ô"¼öëM“áö¸u‹yt+¶Ùw ‚~Ï“ÃPqõÇpkÑqI$i4o¨¯©VV PG¥!‰ ±Ï M ¬‘H¡‘Ôä0<‚¥IŠätá'ƒõÓ\O.‡vê¶s›ì²1#Êc×i$aLà÷5ÒêwcOÓnï м¥GñmRqúR ÀQÅ&™{¨CÊê:…ÅÀ>ÛÊýõ®š²|%kö? ipü¦[X˦1‡* që’iÚî¿g¢$Bq,לCmn›å”÷Ú¾Þ½)¡qçÿˆÿÐ~-Ì¥ïz—0Ô¦˜jyNyš†Y<.W{çb“‚Ä àS§˜&äkϰ²Ç¸úÙïQÅÊÍ2¡¸Ù´²ƒ€3œ öþx£”É®¬d¸Eyü³9fAÛ9Àöò*CL"—)Ï'r2*Õ³ûE± p£ýÙ÷[úߘ70ÑÊcÌÓº*Û\-Ìe€*Êvº7ToCO" »…ã“íVë™TaÐËUôúŽß—zš)x–HÛr8È4rM-ÖÂQ°©ˆ¨ØQÈaÔ……FELÕªQ4L……0Š”Ôl*ÔMS"ja+TmT¢j™ÃRšaª±¢dFºOÿÈ^úàô%®t×Gà/ù Ïÿ\þ„µIjz÷ˆüÿ&w”QEYôEPEPEP\¿Œ'EšͬÜBÃþF? Ѫd¢ž¯ö¿ìÛ°gí;~Lc>øÏÆqž3\üBo:ìñ®‹1wý­•·#víÇ3÷yô®ƒW½:v›=Ø@æ%Î `uÆIìR}+çQ¸ÙÛfÒ/må–5ò!'y%† äă¥%¸ÞÇOEB]MšF’[(YÜ嘯$ÐáaÿïÂ/ýlX~·‡ì‚o-|БøçLu¬–6«Ķñˆß–P85ëA¾T~{‰åöÒÔœ vÚ®Ö6®‘«AX¾à#îý*Am¸7$óñÍUÙ’åîJ(],-R'‰mã¿,»x4æ±µtÊÅ÷wéJìÕr÷þ¾òÀ TBÖpnIç‚øæšš}¢Dñ-¼b7Áe Á©¹jÝË RUÚÂÕÒ4h#+Ü}ߥH-`àDžq/Ži\ÕXyuWOÌ}ª@*6‹t·8ÈõÁȨåÓ¬ç›Î–Ú7—ûÅy©lÒ6êYœB- ûOÚ<¤ó±øçÒ‘4ûDŠH–Þ1˜Þ¡xjW5V,Tô›iOss> J‘´ûGŽ8ÚÞ2‘}ÀW…úU}Òß\y)çý¢q¿ÿ­éPަѷ+4À¥«&f‘IÛF#“ï¨^ëNm:ÍãŠ6·Œ¤_qJð¿J.Z±d p´·ûOÚ|”óúy˜ç¦)©§Y¤RD¶Ñˆåûê†úÔÜÕX±!òâwþê“Uôhü½"ÅðÛÆ?ñÑIq¦ZMj!6ñ•HŒmû¹ô¦iÖÏigx!O=­Ó÷˜çGô©¹²µ)ÀUTÓl’"[h„rãz…á±ëJÚm›ÇmmH¿Õ©^éJå«éÃ7º›¢áT}H™5 eiÖ°SR¸1'ž·Ç8ò£ÿëÕÄÓ,’![h„rãz…á±ëSsRØ UVÓlž8£{hŠCþ­Jð¿JYÛ}«í^J}£ó1ÏLR¹hœ¨`AƒÁ½Vm6ØÀ!Ž3{·âÝÌ\úü¤Pše’C$+kŽ\P¼6=i'±ÓÖÞ1<,0d¦ð¥+š¦JmåóãtºF£"«{çÏãLxndŠá'K[”aû´*TfÎïÏ…0ÿg®¡¢5k¹T‘#,v‘€K€=ÍG­·•uZQXÏPÁUf ñß?‰7-Å,P[:Z\Fñ¾Mœ©°(ìC~¦˜ w×1ª7+Ñ[4gpän•r=zŽýúSfµàµ¶k]>9Õ• ’n :’£“Çÿ^™,±%Ëꊑ…„æKc¹éÃÈÊ1øvêi"ªÏ=¼2]ÆÜDJ܆b7)èÿ7–™Æv“Ò¤ÿ„í|”“ʹ[ƒ˜ns²6åY†á¼ú¥Vš8­mG—jX/¼ HÆ~]¤.ûdöãš?±nïd’ÆâØ ;PÆÖFÀËïAÇ”còå8üU§9 ‘…z|Èo™­ìµ9%Ü»ãdÄô`…¾n˜ƺø@ü2§wöT cY±õë\^©¥ÚùkZ:^#”Iæ5úòäU#Û¿,y#Ç4 ìõ KVÔµ;Í#Bòm ™ˆ\^Ï–+¼ÄiŒ1’:ãêæ• iº™s¼—R MypæI¤éÕÐp08®B÷ÂZ^‡ª^Ü^h?jÐcu–%¬È[rçs/ñ3ž+z×ÂÔ­¢»³±·š'_ÝËŒAǽF;ÐSI\ðð7†•˜" ·\–#ðçŠoü žù_Ù0íÎs¹·ßYÏëE„oË*D¹#q 0 äÓ‰©ÅssxÃ’˜OölqùCc»ýï^éáðØ™åLœF[o>‹œÀQÊ+‘7Þ»€Éæ«K©YD›Þæ!@/»* é“ÐV ð†–Ý¡ZlfÝŸ1÷gÙ³=³Møy¤…ÖÀ'’P’0ÝÏñs–üiòcrMNÆ6ˆI{l†nc *ÿNyü)«ªéæyaÖ¦XUŒ‰ç.ä©#·2N4ôÌ€‚›ŽÁŸEÎáÒ¢Oè¢ÂK%I•·ïüê@觵͋•sø“H†Ù®¡Ä7FáÞ/DŽ%Æ1ÏôÏëUõ9w2t—rk˜­¯dÒÌÊÆ5ßÍ’û§Üd}A†¦iÚòl]GÍ´Èèpr£ø¿—åŠç­´øå¸¹hä³`Æ¿*rÙˆùz sžA«2[¬QÛBјã$b ¦O\>žèX)>¦s¢¯¹º°ÆŽò*(y1½±ËcšR+lFsr @yôëP‹x'‰cQ‡æQÐÕ¬¾O©Í*fÙ¦‘XO ,‘£F¥bû€ÿ҅㾫s û· 'O¨\~Cÿ©lÚ;"œ)‚— IÀI¥rÑN#åks![ˆE÷e$7èÉZ"°õ;²öÑjV æ}–BYœ2)ŒŒ1Î9QÜuÛZbyã®$!WˆÔ€™õõ?‰"¦æÖ%Ü1¬‡q‘¢Æô‰K°ÏO”dÒn¤òZQù“Îr¬ƒèÉüEI1[¦È"H“9ÚŠÏáRŠW-¬™¥indhÜ( zä|Ù÷Í7ì¶vÐ*HªcÜ¿Ìx,IÏj<ù&y¡‚7Œ ÀšHþMÞà ·ò÷¥[X•"’é„òÁ’&•TÏR0áJæ¨x¸’I%Š+yÅ;emBÞr~¸Ç½V»mcMBy^F~Ñ] ŸL)-|ãÖ¬ fšm± Å3燱=6Ž3ùа´–V«0`¥šwˀǦI9cߦ;qEËBK ·ÔxmâóÆÈö)yåÝ8ý¡Ï’„tq<õÞÕôÿ´x~÷N´DÍ´x"@6ªå ÐTÚVo¤éðXÙ¦È Mª;ŸR}ÉÉ>æ­P3;×máý6êG$Ö±»°îÅF\Öf¥ásáÔ¼;2iš‰ÉÌ7#®$QïüCžO^0¾Ý„ÖNrÖSÛœä,‡¡ÑS‘ÓüoÙ¾&·þÈÔ0Îs £ûÊýë×óÍujë"+£V AG\Ñluë³Ô!FyV2U=y…ý§ˆ¾]cw,º[¿îË Éëµ—ø[Üc?É놚áôˆ°ÜMJÍá“€^™O¾#õ®¦ÏYÓïöýšî'gT'kë´àþ•H „ÓI¥4ÃV…`&‘ÌÝ?ÊšM~cþéþFªÚa„ÕkÈê3/9WC†R:Iw{mi´N‘–û¡›–ú§ðªuwuŤÏü¶¸R?$ëùíüjÑ6mR(HeY<å $`e¦È௯Cž˜ÁÎ5Y,¥ó¤Ô]":ƒ&ÄRNÔ^»r:Ÿö¿.82Ã+5Þå-4¼—åO ÆxóNŸQ¶Š4s(o4f5O™Ÿè&­.âhž9KƬÊQˆ¡ •>‡›4§Rf†+h%”oõU?ÌþžEk¨Ì—·QɹP$æu«‘ØxGsÒµTP¨ªŒ¢W!«¼f)H\¬h›L p@éCþ}0CsÄK,M”olêì}©ìÕRáž)ÞhXOš­ØuÜ j•ŒÚ,3VuÌÍu+ZÛ±UM*ÿþè?Þ? ü)­q%÷ËhÅ þ+ü^Éëþ÷OLöš(ã‚!Kµ «Jä8Ør„Š5Ž5 ŠPSY©ª&o­l¢dѱ˜D’Z¢ ‚À’÷¥+ä7¼¹åO¡¡›ëU¦L3K¯Ÿ·h$àø?çŠÑFÛµrbÕ=F²@J•b9RyÔÖo­j‘“ˆæzc=1›ëUî.J8,íÂ¨êÆ´²JìÉÆã®n `,`4®p‹ýO°¦B‚öƒ¸žYV=ÍG -$‡t¯ÔŽ€zjqo­Tc}YZY/L/Q–úÓK}k^SRRôÒÕo­4·Ö³hj$…©¥ª2Ô…«&‹QZšZ˜ZšÉ¢”G¦–¦“HMCE$8µuß uk¯ú÷ÿÙ…q¤×aðÈÿÄÚëþ½ÿöa\˜¥û§ýu:°«÷ËúèzEQ^9íQ@Q@Q@Q@Q@Q@Q@m§4éÚÆ)8…"‰0Ñý?¼¶÷ÛÏ¿ïèÿâk Î&›ÃV«Ì‚Ú'ýåPWõ´à•g†9På$PËô#5Ú€­R\Íé£keßз¾ÛþxËÿGÿNßmÿ<¥ÿ¿£ÿ‰ªÔ´*²òû—ùw[Ï)ïèÿâiC[ÿÏ)ïèÿâj¸¥Yy}Ëü‹­ÿ甿÷ðñ4¡­ÿ甿÷ðñ5\S…#ER^_rÿ"}ÖÿóÊOûø?øšvè?真÷ðñ5^”TÜÑT~_rÿ"Àh?真÷ðñ4¡ ÿžrßÁþ¥®hª?/¹†ƒþyÉÿøSƒCÿ<äÿ¾ÇøTÓªnj¦ü¾äLùç'ýö?©ê¦(áŽíc|ÚÈ%?8ûœ‡íýÒOÔ œRà‚2jMšÆ£Oþ' äöÇøR†‹ûÿ}ð¬½-Œe‹ŸšÛ þ(ÏÝ?† ÿÀ}ë@R¹¯3Oþ& ÷þûáJ/î?ýö?¡œ)\µ'ý$J?î7ýô?ªjˆ<¤¹‚7i­[Ì e×£/Nã8÷Å>âo&&eåaŒ"I?^ÔÓVy’y$q…ÿR­òÜŸï~<{TÜÚ2{‚ß-í¨—KÛ(fÀ’F!ÇÞ|ß^*ÂÛAöŸ´0‘¥Æd;Wè½×­g³nü†âÒቄöÏ%>‡¨÷Èô¦)\Ó™­‰–F ’mßýj¡¦ºÙÊtéCaëf-÷£ôéÕs¦zº*ž©žßlgý-’ß Æ{sƒìqÞ•Í#.…÷š(Ê«pÎHE.cŒà~«-¸½…¡6á•›»1ý3ëŒÕm:Q-Æ/c58ãÚûs‚¹ê™þz÷éžÕ¦)\Òí’X¢FyDQ’ÌÀUü–»3%ì›mÃË9-ƒÕ»rqíÏ\Â}¶GøŠA‹qûì?ˆLôÏqŸJžêGHŠÂÑ ‡D$8°OÔôÏ”\´ÆÍ*]<ÖPÉ,r*2DÇÉžÙìÄgé}3n5DEE …lŸÌÔP£G+¹‘€Î@Ž:œqRJå¦?#Ðþt¼zΙKEÊL~G¡üér=)”áEËLwdUîï ²‹Í¸"ç‚K@$û óÿx–çT‰íí÷[Ù‘ó~i¹èÈöÁÀSE¡|wã©&¡Éó7Ë%Ò7OP‡úþ^µ¿ð÷Ã+áýd?âatÌǪŽÉøw÷&¹èÚ:ð¸‘g‰ÚF[øG?Ÿáï^±AAIKM4ÆqÞš+_ø›N󨼗jHÈþ÷Þ ýJŠìs^-ÏöwÄYçK-ë+¤2H2 ïTôç¡?ƒzWš`/ Õ¼p<1,±H0È܃RQT;Wâ/ èÉ/c)ùžPÿtŸ¦púõ¼+µƒ… œ¸' {d‚GN€1 ;帯Rº·Šê‚uƒ +ˆ»Ó[L»h™†ÕùÑÏÊ ôÝ‘÷qœ>îAÆÆ* ‚ÐÉU`e’7múª`¯ã=Íli÷ò}•Õ#žó·› ÔSl?ŽÓøb³#ˆ*ª°UûTH aû¹^as‘ÊüœÍZò¼ù¶ÉÜ\ Ï•rW(=REᇸüZ© ÅÁ} Ú˜_Û¾âCÇhä¨Î{£ …dÓ]¿u©Êpz´©ÛÑhŠLJ°Å¨\ÚÌNÞõCäûË~jâ6©åÙÜ|§ícÛ üêí X©os¤Ú’mlnU›©KYo«lçñ5#_I'é—Ѧ™LŸÒ†½º^L¸'Ö9##õ`JµzÆìÀþFµH›bºœŸ´O䯂߾…Øþ )–éösϽœ‘°̆]Å÷ÕˆÉäPc÷lnÛþ£ù‘Ud¹¿{˜ÌV.‘m`Âie²0r¥cùÖ‰"lj—·ÿžrßÁÿÄÕKy<Äœ4Œ•"PÂxÈÛۑÃP“«ÛÀ=ævÿ#Tç±·[˜^íæ¹yO•ûÂ6 ¨v8ã½j¢KEé5K&b–ÐOs àùr û¶Ü§_j‡ÈŽà–Ôä\äA€ úårߎµKÂ(U(à:TlÞõª§}ÉbÃ%¬25ºÚL¢ƒ cÓîöþDT†[?ùá7ýþüMPºÉUq!O-ƒ“ØŽà¦QæPÊrÈ"µ5± š[?ùá?ýÿ_þ"£il¿çÞûþ¿üEUf÷¨™½ëUMM™²ãMcÿ>÷ø¿üEFf°ÿŸkü_þ"©³{ÔLÞõª¤¿¦ÌÝÉæ“Nšu³ºg ‚«r¿0ÿ¾:õÅ/Ú4æPÂÚäƒÈÿI_þ"¨Ë2ƥ¨êO@Í+Êv¹Ž) ο6qü#·NÿÖŸ$búý솛5g½Ó‘¼¸ìîžR8Qt¼{ŸÝð*(>Áß<2ÎFŨú°à~5Q!RŒœ’y$ú“Þ‘ŸÞµõ›3“ì_3é¿óéwÿKÿÆé†}3þ}.ÿð-øÝg³ûÔeýëeEyýìÅ·ý#DÏ¥ÿÏßþ¯ÿ¤óô¿ùó¼ÿÀµÿãu˜_Þ“w½7Iyýì‹¿é#LÏ¥ÿÏçþ§ÿ¦ùúWüùÞàZñºÍÝïI»Þ²t—ŸÞÇwý#HÏ¥Ïçþ§ÿ¤óô¯ùó¼ÿÀÄÿãu›»Þ“udé¯?½•wý#Hϥϕçþ'ÿ¤3é_óåyÿ‰ÿÆë4µ&k'MMŽïúF—Ÿ¤ÿÏ•ïþ'ÿ¤óôŸùò½ÿÀÄÿãU›º“5›‚þ›ßô/?IÿŸ+ßü Oþ5]Oçµ}^çìÍÿ7›0“?0é…\WMvŸ Nuk¿ú÷ÿÙ…rb¢•'ýu:0íûDz]Q^9ê…Q@Q@Q@Q@Q@Q@Q@w¡ÿÈÃþ½£ÿÐE?OýÓÏjå“îO÷‘ùÃþQèŸò°ÿ¯xÿôN¼ýÄðݺ§Ë—ýÖïø~×Mô?=žµ'íýÿÖ…áN¦S³EÌPáJ)´¢¦æˆp§Lê\ƈp§ e(¥sTƕͭaní"»Ee]èäC†CêùÏCÅfÝÝÉý>ýÜ« f¹·Cþ¯8!Àå3ÈÈã©ã°*/5¢ón#T™Éȹ;A=ÈóÍ+—X†Xæ‰d…Õãa•d9{P[˜î®ž-ƒ[³BŽO|»ˆQ ¹ÓaýäöÛíî-ºÙ¹¿ÚtýH4Ø#Õà†0óÚݸPz‰8äîøè¢æˆÕ ÕXe¸03Mn«(è‰&à߉ùP³Î¶I/ÙÞYHJ©?™ÇëJå"Ø4¢³…Î¥'ú»ÓkœÉU¿Gqö¨â2_jpÙÞ°ÆçÓs’à¦h9î!µˆËq*EêÎÁGæk2óZq6±W;RYÐçÑ#ûÎ!ß5Y#L››h*€–¿Ô2Ì£¹Uc>»G±¨]F<Ñç‘7È$~.o÷S§–ŸLq“òõ-$fÞ¬·³NÏ#’c%ÙIõ+Ÿ»Àò(bç²®-‹r:‘Ô’98îy|ryÁ<™tnYÂ*BͼBª£÷EÇ>Zùæ˜ÜÇøˆÇmµZ;E»–.³í·VW-É÷('ûȾ‚ªå£¡ðŽžº~qûæÈÁç§Ž1‘ëšÛíH8¢•Æ‚šMÓE#„ñ ½äž ¸hn ÆùFÁ”.ݪà²ÇóŠë4K“s¦[—¸ŠâeEY^'Ü `Ïƹj i^âk³$Úg™,Œë2»O±ù±ë´UÝ"æ ¢¢ ¼™“ÍQ„!NÐBö;˜îIè8¡>i)3Iš¤U…&©j–fòßUgŒï‰˜dÆ0}ˆ$bjÙ4„Õ ±ËA>X…2#$))ʸ\ï¶“×oÍ´úg¨t˜ˆÚ†xäžÁ•b|û'pG8Ç#¶AâÝõªýµ¡bR+á¹uŽt =ÊŒÿÀ=ê4’bþ(ÿÒá>Uì ÿ-1Ü{àî_PqéŠB°²Ü- NÂAáC8_u8÷û´ëKUdiWÌ‘•l)>lgƒÆ#覀mT^iß¾³—çxž¼ïOUïÛž²%´7MöÝ>q ²!>lc+'ï¯NÄzоb&¹½ƒ‹‹?5¿lùüJ¶úÔG©ZLâ5˜,§¤rÿ|¶ ~bu†ý1ÂÈcû7cìyôÍMq SÆRhÒD=UÔZÄVª•ÒÆ×6»Ü««±A½ò ¦@ŸñîÒÛÂ)Qÿ?/éTÞ+Ñ|¨“¤¾Zó'‡$dã©QÎnÞõ¢Eæªw…Â)°‘8#8€'ðÐÒߧ޶ǪLA?_ëU/®ç0àÚ\Dw§Ï¾<}áÇÞÏ=?Ù= h¶õ šHî<æaäÍóÑqšc9Ä…‡Ü=¹Ï®ˆ´CˆÖj©nëåÑ ‰Œ.s€:~˜¡¯ û¶· ÿù‘U|ë³,Ÿè¤!o˜ê1ëÓ5¢jä8–™FÍUŸímÞ¾€¿øT/n[ýlò¿°;Gþ;ŠÝ]ìˆq&žê8ŽÀcÑG,~€sUÚiåÿU–¿Þ“¯ýò?®)U#„*g®3HÏZ¨IîCDb ËI èÎz}AD˜q†äÄR3ÔLõ´i¥¡›B¤¬ñ‚ÊU»CMg5}²œ¿ 8Sê:Ò3ְކR‰!sQ—5=0½j¢dâKº“uC¾Ô¤‰å&ÝIº¢ÝFêÂH9IwRn¨·Qº±’)&ê7T{©7VM”“4„Ó7Rn¬š Ívß ÎukÏú÷ÿÙ…pÙ®ßáAέ{ÿ^ÿû0®,_ð_õÔÞ‚ýâ=>Š(¯ôŠ( Š( Š( Š( Š( Š( Š( 9Ñ?äaÿ^ñÿè"®:,±´r(dpCÜ¥¢ÈÇþ½ãÿÐE^­ÏΫiV^¬¯§ÈÁ^ÚV&X0 =]…¿×ܹT¯Q‘’ê-$C £«¡ê>½Ç¸Çzµ‰,k$l¤w7µ÷—_Ì’”SE(¥Ìx¥Í0S¥sD:”SE(574CÁ¥š)E+š¡â”SE(574CÁ¥ÐiA¥sT<‚]óÊöíû9Œï}Ø$žÃúäý?M'›)´_1KFY¤N6ÀçÔóùTðÄD‘D¡Q £°¥se¡PFúW6èd²ï Œ´>è;¯û=»zV„Goïcû¼ýï­ .hš)ÿlØŸõs4ßõÆ6“ÿA”j3IÿÚ}Ì€ôi‰ÇwéWEW¹Ô-­\FïºfXc¿à#œ{ô¢å¢1¥qþ¶xmû°/˜ÿ÷Ó ãµ-•…ÈÅ%î¢FTó$÷Éáò• Kûïõ‡ì0áBfç¢þ>âœïo¥"ÛÙÀâbJD§æsÝ™8õcŸÄàsTAp¦3úŸúMÃ7ú=œ\ n£ûÄy¸p)+ƒqåCjW ûÙSîÚÞ‰žçòHÉáp&+ý›»¸ÿJÔ'>ZÆâz"á^2~„ž•ÖÏ cæo½ÔµÄ«Á1¼@}7z«š" ….R$€l†äý–Ô÷mÇ2?Õ¶à÷sSéj'ÔmæÀÛ(šèc Xâ?÷ï?­:êCöÔ/Ø­þÍl9PÇRcðµa[êÒÀŸr tOaºAÿ²Šw)Ô”RI–„&šM)5WQö’EË ²ˆäã÷ýqVŠF ¾Æ™nR\6ß´Y2pŒ Ìû!³ŸV4ô7p)‘Õmn|´\mýܲ3g“ÑImãþÚø©§o5åÛ´½x®¼¹OÊ +¢îo®çÐTžLk9WºG…fo2)8Ì!”{ØÇÔŠ¡Ø·c/–©k5ÂÍ:© ÷e>¤p;úf®f±b$ŠWµò®&•¾b»’ˆÛ¸»[ŽG­h[NΊ—#¹Û–_=ñ‘ìj‘I3HM!4™­V)ë1´š|&h14`weäÇú¯,‹ í½ôG6÷j±H{dó~d¯ü }+O5en.´&³-·Ëßn¬:®Æ*­õA«Aaãþ%×Á:Z]¹+é§’>Éÿ{?ÞI –Wuf…ÑÃà_âàå×ý¯nÿZ|E5]-|õÛæ¦$PyGp{逸ÒnhÞ9ñöˆ7G.8É Ãb?_A5 †òØ2ìš W¸Èaôª-mqeÍ“y°ùw‘º¸Ý¾‡¥:å[N™î¡Rmœæâ1ü'þz(þc¿^½mïWPÈÁ•†A ŠÕ)R Øn7%$AóÇ ÚÉõžý)–þa<’+¬º=§ .þüj-JÚB_²Í‘å’fS´ <`ùç#ÐsÔf3=ÅÅÊùГF¿2ö”1ù ÑyŠÅ–ªW†6’d KÈÛoÍ“í?1V–D–1$n®Œ2NA_÷¦æBÊJ!îO9?NŸ‘­œDz…êg¨º"K‰ Õ,'Úå!¾s¸è2Ø?Ïò«¯T s6UT·¯SÃ?­j·D8’ ’¬IU䮘â@õS½Wë]3q"g¨™éÏý* +x£7“¸ ‚vÒ3Óã5c°n69­#LÜI‹Ôeê&qMß[(™¸“ï£uAº—ue$O)>ê7T;¨ÝXI ”›uª-Ôf°’RMÔn¨÷QšÉ ±&ê3QæŒÖMÃó]×ÂcZ÷þ½Çþ„+‚Íw ?ä-}ÿ^ãÿBÃŒþ ¿®¦´W¾R¢Š+Â;Š( Š( Š( Š( Š( Š( Š( 7Ñäcÿ^ñÿè"¯ ¡¢ÿÈ"Çþ½ãÿÐE^\üî·ñ%êÇÕ ~Áqƒÿ³7ôÍÏo¡?¯Ö­æ‰%£‘C# 2ž„TÜP•´{ QT-ä{YVÚá‹+q ­ü_ì“ýáúƯ M–ãÊÇ u0RƒSrðii¢”RlÑài‚œ*nh‡ƒJ)€Ó¥Ìj‡ l³,aT°!Û=ÛÿCJ*K+K4!J3$Dýí¼dþ$~X¥sX“ÛFñB‰$†WæsÜ÷ú}*`i€ÒƒSÌhÉ¥˜ (4®h…–(磚5’6*à þPYMoÿWL‹ÿ<¦Dü9Ü?<J¸ -.cX¶Œû›ûë{y X3JÊП53Û#†ü‡ãV Ôôÿ–$¸Š6 ~í€ôÚpGåN¸ç¶Q6®\¦yu F?6SSº$ªRDWSÔ0È£™¦‰AÍ!•ÂAT—IÓÕƒGg ls„?¥Zdg•pؼí#¿®sJå« žwÛ\–G–»G}Ùlþ˜©Ë±¤ÖTÚ}¤Ú©’W˜Í,?pJê¥Tõàãø…Nº>œccnÌ?‰ã 3EѪ±þ­j!e¶½‰¦FV+óA ä:Tâúæoøô°ƒÑîD§ðå¿ñÚ´"Ê1l_,ŒŒTZk§Ùü„.M±ò[ÌûÙP0OÔ`þ4îh¬0YÝÜÇÝë*ÿÏ;aåŲ[ñjÝ¥¥½š·…#å¶ŽXú“Üûš“8ÕµM¨’– åÛç w€sí=ÞwÙaê3#‡-d+€ÀôÝÆíèT¾A[ƒ2O(`ÅPú‘øZ!¤X&³ô³†½^Ërøü@?Öž'ºŽi탸8 nû·_›n>œþ5SE¹Ú]\˜å@×’®„:~¢(›O>]Åõ¿@“yˆ?ÙpŸûë}$äZjPÝtŽe6òýNvûè•ÿJ‚‘ý©$¬­ûØp ¶ Èðÿj¬N¯z·V†ÞDV…ÂÌÌ»wmàŒx<ôíWÐЫ¤6WRZGæGk' .Ï– ¢ŒðAíØ;€,Ú+jztM~U™Ž]#ÜŠà¡çœƒØúU«ˆ£šŠE ©V_QZ¥qòÜŽ8Ä1,jÌÁF2í’~¦šÕ^ÎYÞÒá‹Mʹÿ–‰Ù¾½¿=ÅI<ÑÄPHáK¶ÕØú Ú; Æuä+ªÖ².'lmUʹîY¨Áúô¨í&[tŽÒuheÇ"C܆îO'j» Ê5Ã+9$€£„€õ=?:mÄi4m¨®ÕXdÒ+ª(Ǩ^ hî-?ÔCÿ,}Ôýr}É튾ÌK1Td“ØS¿CTRý'Z‘ú¥œ~Xÿ®‚% ÿ}v©óO§D~ì—C?ðwªŠMIÓÒwIrLìQ¸äô…-ï:žš=FÿÇþµWÔÑ ­qk ÷K¨ç"ƒúF¸LV±Þ“g*ÌÜä?þ8ÍRjð=Æ—wC2´Måÿ½—õÅKoÅóôÝŽZƒM1 ~ÎXÅ·åÝ×Iš$y7¶Ð\¦ç ‰â)Á¬ycùæ«jA/n ±e›„Ó2©ùGâÀ~ªÏ‘¶w•e”*_+ŸPOµCKR#ûjóŸ¦2zµko­¼pB0ˆ02r~¤÷>õIÙÄ|ÃpÃ*HжÆuÞ«kgvœð·,°q×B±ü“øTÒZÅ “‚ ¤ŒísŽŸ0犡{ ÉÔ4»x®A1y“³MâÛ@NÅç§éM=MQ²Ò©_|ºŽ˜Þ²:~q±ÿÙjek¯´c‡ìøá¼Ã¿?îíÇëYÚ›_ùVs:[C,Wi´‡i<žÿ êh¾Õ•§N–‹udä—´fdEfˆüËÔ¿U«om4‚-Û«'.°¨Eûç$`jô1i׉©E"¹ÙvU@ܧ£Ÿ]§ò½)Åš!·ö×7©m{ ½½Ìa ` ƒ ìf€qù㰠ܶ¼ŠêÜOÂs¸7êìGz°MaßÙKuspÖða>Q2HÛRë8Àô»ô Žš'rÒ4"ódžI%ù@ N1Ëgß8Ç ÷¨õÑ¥³Êc7 `d°3l€F}éÖ—Ñ]îUݱÿ¬…Æ>£ÓÜp{XÍ{+<8‘ÈÖ$Øöû¼úƒéV™¢E†5RÅ™¬ gˆBÅ1§ÓeŽ;ÕK écn²Ê%D¡¤!ÎN}ê“5HzÞɺU1º)HÉäNãôåin`K…@ù:°8 ó¡5éŠ) ¸“väq•ÿl…çÛ8«­-!–·+sð¥¬ÕXPê’F–Œ]åFÈòü¦Ã—ì©ö¸Ïóü¨Ú¯EsS=Bõ¼Pr1¨Z¥j…«x‹”¯qJ¥$PËèj“‰­úfhý ù×üŸÖ¯=Bõªõ!À¬%IWr6GCê>¾•ÒÏ »oRRL}åëøúÕv™£âp<8û§ü+hÊß›·ê©›úT/]Q%À­?M»s¸àÔl*FÉFÐ1ëM"®/vfâFE0Š”Ša›2q#"˜EHE4ŠÍ³72)¤T„SH¬Û3qE4Šy¤5 âFE!§ši›d´6ŒÒšJͲl.kÐþ Ÿø›jõî?ô*óªôOƒòÔ?ëÜèUÃþ¾_˜âµ=nŠ(¯Ÿ6 (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€<ÃGÿM—ýpÿAp££Ÿø•Y×ÿôWA®)=O€¬¿y/V<p54ðk6Ì)E0Pjnx¥¦f—5-š!ô ÓsJ O1¢ Vm>ܱxÕ sÉhX¦O¸Ç5`PisXÖ2kb°Šö/õw 0ô™0Çþ¸øí2+›èä”ÜY³©a³Éu`£=vž¹íWA¨,bÕZ&.’–”1Îâ[úÑÍ¡´e¥Ú©@?Ö,ñúïÀŽ1úÒVÀœ}¶ÜC(ò«Òðx<ŠŽdRqíý}Áç'”$VÞ‡¡^sK,ñB›*Gž›˜ ÒR»qÇ ¡ãŽLyˆ¯Ž›†qSÌ‹MRÁNúØy—ühþÕµ?qÞ_úå¿þ‚ N¡Ta@ØS£™§¿Û¥õ67.?¼ÛPãÄÒ”F^ÖÖãÔ–”þ_.?Z´)â—7‘¤_dQ—L3ÄÂæâkƒÔ#6ÄÈäp¸8Ï©5kNŠ(íchm–ÛÌPÍM¤:z˜TPæ™I·yÌ^$=@>™çñªæmXÞ-µbاŠ`§ W5ˆñOÁOîm9­£žH¤l‰!mÈêpG¨úãü5o|¨¦{ÄË9bÀ«/\ƒôíŒÿ:°+:î$Õ®þÇ"‡´·!§ôgê«øpÇþïV÷6‰cLŠG2^Ü)YçzÇû«õç'ÜŸAZª¬w :l‘ ¶Ü`KƒŽ¡³ÏãùÒ&¡…å¹V³T 7Ú0 g§ÍœÀÑ{›"èªQ|úíÁ="¶Œ/±frô«0OéºEõF~•NÎEŽóT–LágDàÀ‰ov4ÓÜÑ#PUMf7—K¸ Ò¢ù‘WS¹P*بžòÚ;”¶iã¸ÊŸn#×qIHÕ"HåI¡Ic;’E §Ô•þYB“mØÿ) ѳÆ++Hšv´¹²†3–ryQ<Ë•)œ¯Ê_“r?匃wû­òŸÃ ™6æ5ž !o»"?B1PÙÌg´†Gûì£pônÿ®kxî5G½Bõ+Ô/]!T-RµBÕ´EÈBõ ÔÏP½m^ ~sš™ê­âKM¢h¹„Œpôü=*œ`ü¤8þ×üûÕ·?ʪ4bc¼œ¦>\q|ÕYÇà1”-°Ý¡F¹¦‘JÅãûÙuþð¨£!—*A¸«S[lfÑÒ*B)„RlÅÄŒŠi©¦Y¶dâFE4ŠŠi¨lÍÄŒÒy¦šÍ²E4ÓÍ!¨l††IN"’¡²l6½àÇü…µú÷úyé¯Bø3ÿ!mCþ½Çþ…\XÇû™|¿1%©ëtQEx%…Q@Q@Q@Q@Q@Q@Q@[¤ø•Y×ÿÐE\¨éþ%V_õÁ?ôWA¯:OSà«/ÞKÕœ F 8ͳ‰¥Í0p5 ’8\Ó(5E!àÒæ˜ (©r-Í.i¹¥Í.cD¿—¸¶©8é-€[x€AAü AÆnŠTrpq“ŽßΈÇÛäÀÞø±Ç^+H»jj‘E~×§€˜kÛeà5¿gúð}‰©­ïmîÃy†eûÈxeú©ä~5`š©wiouƒ<(ì¿u±†_¡ê? Ñ3D„¼ÜÍ ¤¢2eó‚Àsù~Y§±â²ÞÌ}½RË¥’Þ°‘T7–¹ÁïëRõÒîØ{fÏþ‡Z#XúØÕ9b½CåÓ®Ó ÿg$ ~-Lh¯›‡¼‰Gý3ƒõcUnôö’/šâiœ2œHøR(ädr*Ó5Iö,˨Įbˆ4ó q ‘õ=ñ"£Òܰ{â¥AÊÀœ ÿxÿý=»Ôñ,qF© " *§­4ä¾ã¥ $lŽ VœqUÒF·h a, Œ HŸFÇ·ëÖRÔÜÖÑer’¦µÒÚÇ,Ì3¶' ¿Þb¤(üIñª[ZÎ °Fó&ï¸_”_ös×èOÓ°§Z²ÞêeT‘›ÞM‡ðýHô­S& i¶µŽ"w03y$þ'&¤-L-M-]fê6Z˜ZšZšMtE–¢8µR²;~Ñüó¿ñì?þÍV U8ŽÛû•õTÄä쵺z¡ÛT[cQ=)4Æ5Õ^R6¨Z¥j…«x‹‰ê©^¡zÚ$¸=@Õ4„I8rMU}Ò3)\G޹äý1Z§c7Ì· c+ÉëŸjB*]¡@`€1«E¡“…ˆ˜T%íc×ÐýEXaL5³ÜÂQ¹_;\mnÞ‡èiH§º†0Æ¡*ñýܲú£èk7'õ9ä¬S <0qÁúJCKšú£6ˆÍ4Šy¦‘RÙ›C 4Šy¦š†ÌÚE!ãHj3ha¤§B*%¡µè_ä-¨׸ÿЫÏMzÁ¯ù jõî?ô*ãÅ¿ÜËúêMZ¢Š+âŠ(¢Š(¢Š(¢Š(¢Š( Û¸¬­Ìó’#R àg’@©ª/¯[¥ÓDa¹1$¢¹þé\6ç9ê@Î1žõvþÒ ëI-î0¾7aÊžAÈ ŽEbEm¥´FÒÂýo$ûJÜ4 }¸±g'“ØîG=h[ƒØè袨˫ZE#Fí.å88ÈüÀ 8ÒOüJìÿë‚è"®Tt“ÿ»?úàŸú«€×—'«>²ýä½Y 4 Ó§Y6caàÒƒLœ fÙ-—4ÀisPØ‡Òæ™š\Ô¹‡æ—4ÀisSÌZv©%¤É!!6 GP1ÍKEe9 4€À‚2S,ܽ¤,còË"’ŸÝã¥.m “÷KÒƒLÍ(¨æ)œ)‚ž)\Ö$‚œ)‚ž)ÜÚ#ŧ<þ5^Úçvó&“ï¿LúèaWl[÷íÿ\eÿзL™Bñmö)ÞŒN ±8/£Ó#’?Z˜¶{Ó Tüˆ»$q‚ëÔûûŸ­ol¢Ñ`µ4µU&â(€g`y,v~ü©MÀˆÊH èv’¿˜é[Å–¼É‹U@ØÔ¤ÿjý 9.¡—w—*6Ͻ†o×Ò  Eý¡_Ô·øWD^Ãi;X¶ZšZšZ£w bI5Õlòj¦=ÔAUƒn xØ gò¦™ÊSÊm¸ûäŒtÆH­Uä•D‚>KpO¯¥9¢wB³¸lŸàÊþi  €­£vO+ebŒëûð­ÎBÀÿF©š¢jÕYà‘¨Ú¥j¨r9äˆÚ£"¤jcT¶sÉša© 0Ô¶a$C$aŽz7b:ÔeÊq'ýô:õªsM"²kª0”HÍ4ÐP§ú¾ŸÝ=?úÔƒqÐŽ õ¨çèÌšÓM<ÓM ÐÃHiÆšj!¡¦Ó6¦ä44ס|ÿ¶¡ÿ^ãÿB¯>5è?ÿä-¨׸ÿЫ“ÿrÿ®¦m³EWŠHQEQEQEQEQEOV²þÑÓ§´ÞÍ\d®á×<ŽãÔwŠÖWwQY\G¦A䔟u¼l\(n6ä¹#MtÔÝ‹¿~ѿݎqéGPè:Š( 'ÒüK,ÿë‚è"®T´£ÿË?úâŸú«y¯"oV|5UûÉz±àÓ¨Á§Y6caàÓ¨Á§Y¶M‡ƒNÍF ;5›d´?4 Ó3KšÍ±¡Ù¥›š\Ô¹‡f¡³‘™$W}Î’°>Ã9þù"¥ÍEmº‘{U”>ð>ót9üÒ¾ŒÖ;2À§­0SÅMˈáOÁO\Þ#ÅÃÜô¦Íâˆ.ÿÓ/#²Ę–qŸ•3ô\w­# õ©é°<0›h™¼ÉHþñì=€aWT¥Ñ¢#fƒÊ;Û¬G…‹Hî Gõ§¯Ú–i ^,€¬¡ê×¥J)—9¬Jö÷W(Ž[ ¢¬›Ñ”~MŸÒ¬´…I¼‘´qߜҊx¡ÈÚ$vÓ4°—Ê¿'nÎ2?>+:â[Ïí )–‚ID–àHÛ‡ 8'o²7ïÖµÅRÖ[¸æµuŸŽ¸S–껇ãU{ÆÉÞGx^K™>@7$xTvõî ãëNŽ`/äÄ‘ïbͱ@ÜOR}MKFAÈ4Æ4”™²C ¦1§1¨ØÖ‰š¤5Q»³Y¤D敯qèÃø‡±ü1Ö®1¨˜Ö±•R3ΠöÇn£ˆÏuæ#õ?ÃøñîinäIL˜üÔ˜äx sïÎÑz¶Æ²N|ó[Îmш¶ämãï¤É9;zÚ-$Í5*«F.†Úà{îˆÿìÙý)êòƒKWî¨Û¿SŠ´oXÔLy¨å˜ùˆ …'ª¶3Ρ¸že“lVÌÿíU_ñý*ѼFÞ«<±'¶P ÒÉ2F…äuT–c€*¼‹y0!ÞTŒ€¹üÎèj½´+÷‘ÚH[`i[qèGa‘Ž‚µLÑ^ú"ss5ÏËåÆzÍ"ÿè+ßêxúÔCº™,Ç,íË1õ&œZ“ul™¢‡V<µX°oß¿ýq—ÿEµR-VtöÿHúá/þ‹jÚ,'qú¦–¦¤-[Å›(Ž-M-M-M-]e(Šû]J° §¨# Õ··{¹†2ˆˆ mæ'[-Um[qžOïÊ@ÿe­Ö­ PM­ Ú(Œ¾nÅóñcša†=Û"w}ì(úÓËSKWT,l » œt¦–¦–¦–®¨3EI¨Ú”µ4šé‹)¢6¨ÍHÕU\çš#5TQµMÎi"6¦5HÔÃSsžHŒÓ Hj3RÙÏ$0Ó Hi†¥³†c n½ºJÓ C×s)""Y>÷#ûÃúÑÁät§š“)Áôìk6Ú2jÀi¦”6N èh4¹®Ci¦œi +ÐÓ^ðoþBÚ‡ý{ý ¼ü× üÿ¶¡ÿ^ãÿB®\SýÓþº™ÉhzÅQ^9QEQEQEQEQEQEQEäš_üƒ-?ëŠè"­Š§¥Ÿø–Ú×ÿÐE[Íx³z³â*ürõ ;4ÀisY6eaù§L”Ͳl<p54¹¬Û%¢@isLÍ(5‹dØ~isLÍ(¨lh}G6àÑ8"#|ûŽ#ùâž(–%š'ŠA”pU‡±¤ž¦ÐÑ“ xªöÓ Q°(Å7\ƒýx?N(z%gaâž)‚ž(¹´GŠp¦ x§sxñLáEÍâéüT©üjÛj•Áû&«Ý"»Q û8ÉCøÃþùmhÞ·îk¬j64æ5´Í’Æ¢cNcÅFƵLÙ"½ÝÂÀ –‘Â(^¤Ÿð?@iÄ–ðG c …4#J÷ûÔÁ€/9<ä“ù {V5ª} b†±¨˜ñOsP±â´LÞ(kµ iìzÔ,y­:"†9ª®]nA.<¶\m'ÃÓðÏåS¹ª·J2C„8 ×#Óù~5¤Y²Zn¦–¨’U’5t9VƒìhÝï[Eš¤Iº¬é­þÿõÂoýÕD·½ZÓý%ÿë„ßú-«x±T¸ý å©¥©…½é¥«x³Uå© S SKWDYj!4«O#tE, ŠÙLVñ£}à¿7¹ïúÔwG{Eþ6˺9?®ãR–®ˆ½D•äü¿¯òZšZšZšZºbÍ”G¦HM4šéŒŠµ‡HM74„ÖÊFmŠM4ÐM4š¾c) 5T†£j.sɵ0ÔQš›œòC 0ÓÍ4Ò¹„‘¦šy¦–ÌZi¦ži¦¥³†i§i©lÍ¡Œ¡†¦Ë׿½ÅJi¦¡÷2hfA"ÐWœ¯ùÒç`Ôsw!¯@ø9ÿ!mCþ½Çþ…^~kÐ>ÈZÿþ½Çþ„+ Oð™œö=bŠ(¯$À(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šò-/þA¶ŸõÅ?ôV³TôÃÿÛOúâŸÈU kßÄÏŠª½ùzÍ(4ÌÓ¬›2°ðiA¦f”Ͳl<Pi€Òæ²lV$Í.i™¥²l›ž*5§ŠÍ‚CÅÜÛ[*ÈCJļ¬;¹äþžØ«bªRÖÈÝáLñSsháLáJæÑ)â˜)—1¼GŠu4Rš9¢Š×öëwk$ Jî0ê¬9 =Áþ…Ó\ÛæPxØÇ2áq×ð=G±qe_°Ü‹õÿRÀ%ÈôŸðïì}…muÊj‘yFƜNJRfñCñU.¦ÃÇW-6FW€[?—âEMq4pF^V £'ÔœùÔ¤ˆ$2ɽË:(ìáúæ¶‹êjGAEíDTÀSXÓØóP±­↱¨XñR1¨XñZ&o1Z…4ö=j<Ö‰›Å sP¹§¹¨\Ö©1D1´€¸p òÜ`õÅ;uWœ¬r$ÌÄcäãÿBÀïþÈ[Pÿ®ÿB͈þ1š÷OX¢Š+Ì9Š( Š( Š( Š( Š( Š( Š( ÓüK­ëŠ!V³TôßùZÿ×þB­f¼)üLøÊ«ß~£óKšfisX³+—4ÊPk6+—4ÌÒƒY2lH 8Tbž+6´ñLáPÊQ$ ¨…H*J#Å6T‘š6‰öía¸Œ½Çõü)ž*ocXèÊ“F$ƒ+t"¥T«Å"#O-Ø™@àäÿþ¿ç6Q•Ô2ÊFA Ó~Fév$áMáJæÑ)˜)â•Í¢”ÀiàÔ3DˆÇŸkñÝá¿Ùôþ_ãüÉpRÁy“‘æ&~e«;d|¿SVÁª–ª·7Ó]²†“ $Ž˜ûÄzdäÀj¢÷“éùô7‡sIx§Š¦K L°NÌÄå|ÿœ/¶x?™5'2•­™Ëc{FÊUâAÇÐVvìÍb‹Bž*ªÝÄd’2YL`–.Œ£¾HÁJX/í.,PJÇ I'ò©´»EÅÏ&@Q9 Ç© Oó©~ÌÒ4/4ò¬d¢3zH¤ôÝ›Ä{]Ä © ¦‰rÐÆÀ¿·ãñ¨™..RwklÏKsÀ-üñùúÚDHÁª ’Ç'©¦µ ilmD0EUÉÜp1’zšcu©ÔLy«R7Š#cQ±§µDÆ´LÚ(FÇ­=ºTLkTÍâŠ÷0Ep¡fEpFzƒêcTš˜?ÔN%Oùç?'ðaÏæ h1æ¡s[Æmhl¢™E¯Jqq±´zþkŸÔ Hîaœ&häÇ]¬*Óš©qoÿ롎LtÜ ÖªQfÑR@ç­B皬¡Ûæ ôIYGä DÖ 'œÀóüëDãÜè7aîj4×¶å˜ÿÛB?•BöŸ¼¥ÿë£þfµVîo.ßü“\ćkH»¿ºOåUÚi>\GÞ”~]J²c\"ª@1Q·zÕ4og»(Í a¾Sæ•É8çëZšj}½>ÉqûòõMºÕ +2³›k’¾¸ò^º îÐTJ0“]S*fŒÓsFkH³fÇf“4™¤ÍtE™¶;4f›š3[Å™¶.hÍ74f¶‹3l\Òf“4™­S2lRhÍ&i3Z¦fؤÒf“4™«L†ÅÍ!4™¤ÍZfm‹šBh&›š¤ÌÛšLÑšnj®C4™£4™§rM4¹¤4\†4ÓM8ÓM+™±¦šiÆÒ¹›i)i +™±¦»ÿƒ¿ò¿ÿ¯qÿ¡ à wÿä-ÿ^ãÿBo˜UøYêôQEpaEPEPEPEPEPEPEP‹éçýÛþ¹/òbªéÿñámÿ\—ù ³šùêŸ>J§ÆýGf–™šp¬™‡ p¦ŠQPÇbANÁN,v)˜)Â¥•b@i£ñPÊHx§ƒQŠx5,´‰<ˆx¨e¤H <ˆx5 $J <ˆx5 $2öv‚ÕÞ0 ‡ =؜ԊšÒ¶·Ž$„P¹=O¹ªn|ýF8ÿ‚Ý|Æÿxä/é»ô«àÑ%h¥ý_æl•‘(4ðjiàÖ-$L (DÝ»jîõÇ54ðj´Q Dß¿jîõÇ4¦Þ3¢º1$« ƒÎi ÓÔÔ¶Í¢>4HÔ**ªŽF©ED <†Ù¼IZkßcÅ8S8VdØp§ `4áRU‡Šp¦N¥ŽÃÁ§Lœ*YIœ*0iÀÔ²Ò$œ 0p5,¤‡ƒO£œ C-"@iÀÔ`Ó©hÑ"Pj´gÎÔ]ÿ†Ý<±þó`ŸÓoæjW‘cÎA$úQéêÉj­ Ä’#BÇ8ü:~Ò²lÒ+Bà4ðj iàÖ-‘ 4ðj iÀÔ´j‘04àj iÀÔ4j‰§PƒN¥£TL <„585CFȘ5<5@ž¥£h’¨Ù¸ µFZ„P¨Ù¹¡š£-Z$l„f¨ØÒ±¨Ù«TSÇŠ+h‘ªcXÔLiÌj&5ªF©cQ1§±¨˜ñZ¤j˜Æ=j&<ÓØÔly­Q¢dlj64ö5V¨Ñ26éQ5HÝ*&­Q¢dmVôoøü“þ½.ôKÕF«z7ü~Iÿ^—?ú%ëhn…R^ãô3¢‘Cuƒ‘RµFÕhÚ÷#FÜ àcÚ—4Æù_%¾SzvkT%.âæŒÓsFkTÉl\ÑšLÑšÕ24™¤Í­3l\Òf“4f´L†Ã4f“4™«L†ÅÍ&hÍ&jÓ!±sIšLÑš¤Él3E%&j®C4™ ÒfÈaFi(§rXRQšJw%‹IFi)Ü–”QEÉ×ð{þB×ÿõî?ô!\wÿ¿ä-ÿ^ãÿB_…˜VøêôQEr!EPEPEPEPEPETÕo†§OvS”¹Ú[hëŽOaÏ'°¬É5]FÌC5ØÓ¤‚Y6Á3oùˆnF¯N(zŠ( °ÿ+úæ¿Ê¬ƒU¬ãÊßþ¹¯ò«¾z>fkÞc§ `§ ‚l8S…4RŠ’¬bGoÿ=œ)ÿtrߘüjà5F3æê7ðÀûÍÉýþulrVIØ”p54ðk&‹Hx54àjZ4D Ó¨§PÑ¢%œ D 8–Q(jp54àjlj‰CSƒT@ÒƒRÑ´I S PMFÆ„P¨Ù©I¨Éæ´HÑƘƂj65¢F¨F5Rx¨ØÖ‰¦#‰9FƵHÑ1¬j&4ö5Ñ#DƱ¨˜óOjjÕSÚ£jÑ™TmOjcV¨´ÈÚ­è¿ñù'ýzÜÿè—ªmW4oøý“þ½nôKÖ°Ý߸ý ƨڤjªÑªdnÈ4Åbs‘‚*F¨œ`†Éùs‘ëZ o¨ìÑšh €AÈ4f´@ع£4”™­S!±sE%¢d6.i3IEZd6£4”U¦Caš3IEZd6RRU&K4”RU\†-%%îK ÑIE;’Â’ŠJw%‹IE%;’Š)(¹!^ðwþB×ÿõî?ô!^}^ƒðwþB×ÿõî?ô!SSáf5¾z½Q\§QEQEQEQEQEÉž8âv‘bæ.@P=óX‘ÅáØå§I¤ÚÝ3 K żóÈüz~5¸ê®¥]C+ FAgagi4vPiѬ0Â¥%(9ÆÜã¯ëBÜ:uF[‹õ‘„vèÊÆà \b¯Q@5g¥ê EýŸv^T-»­€pp=ÇçSÿfj?ô ¾ÿÀY?½J "¸ÔEÂËpz-0jåq<½ÙÀð0n÷g‘ 7Pÿ u÷þÉþ¿Ùº‡ý¯¿ðOð¯\¢§ê0îÃêîÏ%v¡ÿ@ëïü“ü)Fÿ@ëßü“ü+Öh£êîÃê0îÏ'}ÿý¯ðOð¥}ÿýïðOð¯W¢—ö|;±ýFÙåBÂûþ÷¿ø 'øR‹ïúÞÿà,Ÿá^©E/ìú}Øþ¥ìòÑc}ÿ@ûßü“ü)E•ïüø^ÿà,Ÿá^£EÙÔû±ýNÏ0W¿óá{ÿ€²…/Øï?çÂ÷ÿdÿ ôê)fÓîÇõH÷<ÌZ^Ï…ïþÉþ¢Òóþ|o?ðOð¯K¢—öm>ìUsÍ…­ßüøÞà4ŸáKö[¿ùñ¼ÿÀi?½"Š_Ù”û±ýZ=Ï3´±¼Š6ßev]ݱm'sÇðö…N-®¿çÊóÿ¤ÿ ôZ(ye6ïÌÊöîyçÙî¿çÊóÿ¤ÿ "ŽycY#µºtpYmÜ‚B+ÐJ©£Ã%¶‘c˶X­ãG\ç(RþÊ¥üÌ~ÅX‚çþ|ï?ðOð§nçÎóÿ¤ÿ 逸ý“Kù˜ýš8!ÇüùÝÿà4ŸáNÜÏßþIþÝÑKû"—ó2¹ˆçÿŸK¿ü“ü)Á'ÿŸK¿ü“ü+¸¢—öE/æIHIÿçÒïÿ¤ÿ P³Ï¥ßþIþÚÑKû—ó?À¤Î, ¿çÖïÿ¤ÿ pÏ­ßþIþÙQGö5/æJmiÏ­ßþIþ³Ï¥ßþIþÚÑGö5/æJ«8r“ÿÏ¥ßþIþÓÇüùÝÿà4Ÿá]Õÿ²)3ü öÌàLW?óçwÿ€Ò…5 ¹ÿŸ+Ïü“ü+Ð(ªþÉ¥üÌX—cÎͽ×üù^à4ŸáL6×óãyÿ€Ò…z=ÿ²éÿ3+ëRìy©´¼ÿŸÏü“ü*mî£]Ïgv ¹kg“€:w$ õ §ªÁ%Ū$K¹…ÄFqÂʬOä Wöm>쯭ϱçme{ÿ>¿ø 'øTfÂûþ÷¿ø 'øWªQUýO»×gØòƒ§ßÿÐ>÷ÿdÿ ŒéÚ‡ý¯¿ðOð¯[¢«êîÊúôû#È[MÔè}ÿ€²…1´½Gþ·ßø 'øW°ÑOêPîÇý¡>Èñ³¥j_ô ¾ÿÀY?˜tOþ—ßø 'øW³ÑUõ8wöNÈñS£êŸô ¿ÿÀY?¬iºn¡orï.›~ªmæ@~É!ùš6P8_R+بªXX§{ƒÌj5k#Ã΋ªÿÐ*ÿÿdÿ chš±ÿ˜UÿþÉþîtSú´{•ý¥S²<$èz¿ýoÿðOð¦ Wÿ N¡ÿ€²…{Åý„{ûN§dxÐ5HþÈ¿ÛÛ²…/ö±ÿ@Cÿdÿ ÷º*½Šö•NÈðOìcþ‡þÉþŸØ:Çý5ü“ü+ß(ªöh_ÚU;#Àÿ°uújø 'øQý¬ÿÐ#PÿÀY?½òŠ|ˆ_Ú5;#À‰« 3¥ß`X/ÙŸ$ dããóïì gþ‡þÉþî2Á#kÓ…ýÒ[ÌŒÙèY£ ã§ò«”ì/í öG`k?ôÔ?ðOð¤þÀÖè¨à,Ÿá^ýEP¾¿>Èðì gþ‡þÉþŸðë?ôÔ?ðOð¯¢ÅõéöG€Â?¬ÿÐ#PÿÀY?ÂøGõŸújø 'øW¿ÑO˜_]Ÿd|ÿÿþµÿ@}Cÿdÿ ?áÖ¿è¨à,Ÿá_@QG3×'Øùûþýkþ€ú‡þÉþÂ=­ÐPÿÀY?¾¢Ÿ;ÖåØù÷þíkþ€ú‡þÉþÂ=­ÐPÿÀY?¾‚¢Žv/­K±óçü#Ú×ýõü“ü(ÿ„{Zÿ >¡ÿ€²…}E?hÅõ™v>{ÿ„wZÿ >£ÿ€²…ðŽëôÔ?ðOð¯¡(£Ú0úÄ»=Â;­ÿÐQÿÀY?ÂøGu¿úê?ø ÿá_BÑG´búÄ»<ÿÂ;­ÿÐQÿÀY?»„Úuíž©¨5Õ¤ðBeˆ® ã‘×ƽ>©ØÁ$WZ‹ºáf¸‡=G•çóSùRsmX‰UrV.QEAEPEPEPEPEPEPLiQC?Ýò~”úã<@ 7zÑœ'Û|¸>ûóü;;ýüô ÆI$/#ª(êXàRƒ‘‘Ò°5É-dÔôµ¼xZÕ$J$ ¢É³*´ÉníàG4ñFíÑ]À'ð®GDòÞbòÅÿ™söÒ1¿6íýþöÞ¾Ôýnh#Ônõo,g•!‡Ëµ–í É +ü[Ž çš;ØÑH:RÐEPEPEPEPEPEPEPEPIœÒ:ïF\‘¸c*pEbøcË´Ó.IŽÄ½wÊù'÷¤ “ÔÐÈ‘ u.£%Aä~úã4±ÛtÃûKí×?jÆ<ÍŸ¼ÎîøÏ—Œÿ³]¨QEQEQEQEQEQEQEQERRÖOŠáøwQIm¼˜Ü©8SÁÇojMÙ +»¬ÁT³ ’O£‚æ LG(^»6?*ÌÕžáÙ –å-̶Œ7°ÜTmÁm£’y¨<7"¥åÝœOiq QÆâ{h‚[wÊpH$`£U[V‰ODÍú(¢ÂŠ( Š( Š( Š( Š( Š( Š( Š( <±ÆÊ¯"+9‚ÀúRÉ"D…äeEYŽ®WÄ‘ØÝê`[ý²xd¸¹u l™8)žwg'ÐGw]{W¼Ò£¹’'µŽà‰„„ å±MݽÆ{⎀oƒÐÒÖ?…04eÙþ§Î›ÈôòüÆÙm¸Ç¶+b€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ cFŽêìŠY>ëÈúSè Ú]Z$!ÎX1÷õ§KEQEQEQEQEQEQEQEQEQE0EvpŠþñ“õ¤ð‚„EcO”|£ÛÒ¤¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ a†2¥LhTÄm'9ÏçO¢€#E‘¤¡Ø`°ŸÆŸEQEQEQEQEQEQEQEQER2«©V”ŒFA´PLhYX¢åFÇAIQ»bEEÎp£ŸEQEQEQEQEQEQEQEQEQEWšÊÖwß5´2?÷ž0OëR40pÑ!÷Qó}}jJ(íKEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE‘sªÞ FâÒÎÂ9þÏ;³ÜyyÝœ6ŸîúÒÇâ-<ØÚÝO7·1 U\U{“Œà õéPÜxvÚûV¾¹¿¶†x¦Š8ãÝÉÝ»éÔVkxwQ0Û3lšo°­¤ ÞKIÃ|Ÿ|ò(þ¿0: µ‹.–ÚK•¶Ü ï»’{dóRX^ Õœ„)äÎðõÎvœf¹íGAÔes7‚3„—TG·*P¸’§‰ëí[ºM¤–‰r%Û™nd•vœðÇ"ŸõùBõQHŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ÿÙendstream endobj 186 0 obj << /Filter /FlateDecode /Length 405 >> stream xœuRËNå0 Ýç+²Lj’8OV !!„Ê 4‹Rî£@[¸¼4?I{+ÒÔEjÇÇö99/T€¤"û³éˆ òB䘥û£éèI$‡×J§ $k2A$õ’:ã  ¡±#ÌóøjuXÔ:p^dD¼'·ìò u+^å( 0žíÚ¦ ë'^!*A±EÝ7‚!•”Ýê·vè÷4lXÏÿž½m‹ºUÎëÜŽÕeƒ××|ƒ ¤b[®<--ûûÌ+•HZ9¯á¥·iÝÍ"f2&hŸ&ŽlÆniκ˜2Mœªú"ß”Ýf*ÁhöÙ&™´ÅÿdR`•µÊý‰çI~#Kù%˜YüŸI%"Ÿ°Ë§Ó”Ãü\JÝðŒFoÙc½ù¾ÃÒ. Æ ­Ð€·vï„Y>§-²Ïù±»Y-mPO*i¯Òåý×y”D0:(/H<¸e§EeÕÕíÓÑHì4’+"FÝýîò´â.—*Aµ¡Nx0jtú¶îÛvÃ]Ûoò h†.ÛuEþÑñÁ·endstream endobj 187 0 obj << /Type /XRef /Length 163 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 188 /ID [<0386b71c1589ae0d51a7c2d2f33a3d89>] >> stream xœcb&F~0ù‰ $À8Jaò?ƒP÷V ›M§/fŒÆéP&ÿ3¨dn²E@ñ(öD î“â ’ÕDÊ7‚Hö"ÉÂfÿ‘L\`öK°Ê É# "™€H>[)Ö+Ì "¥€$£ $XïqÉ­ V¿ ,Ò6GDŠO몓ÓÁâ+Á&¤ƒH.9OÀºî15 endstream endobj startxref 152134 %%EOF hypergeo/inst/doc/hypergeometric.Rnw0000644000176200001440000004316414770237055017356 0ustar liggesusers % -*- mode: noweb; noweb-default-code-mode: R-mode; -*- \documentclass[nojss]{jss} \usepackage{dsfont} \usepackage{bbm} \usepackage{amsmath} \usepackage{amssymb} \usepackage{algpseudocode} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareMathOperator*{\ketten}{K} \newcommand{\Fmn}[2]{\ensuremath{\operatorname{{}_{#1}F_{#2}}}} \newcommand{\ft}{\ensuremath{\Fmn{2}{1}}} \newcommand{\fall}[2]{\left(#1\right)_{#2}} \newcommand{\rise}[2]{\left(#1\right)^{#2}} \newcommand{\ams}[1]{$\left(#1\right)$} %% just as usual \author{Robin K. S. Hankin\\Auckland University of Technology} \title{Numerical evaluation of the Gauss hypergeometric function with the \pkg{hypergeo} package} %\VignetteIndexEntry{The hypergeo package} %% for pretty printing and a nice hypersummary also set: \Plainauthor{Robin K. S. Hankin} \Plaintitle{The hypergeo package} \Keywords{Hypergeometric functions, numerical evaluation, complex plane, \proglang{R}, residue theorem} \Plainkeywords{Hypergeometric functions, numerical evaluation, complex plane, R, residue theorem} \Abstract{This paper introduces the \pkg{hypergeo} package of R routines, for numerical calculation of hypergeometric functions. The package is focussed on efficient and accurate evaluation of the hypergeometric function over the whole of the complex plane within the constraints of fixed-precision arithmetic. The hypergeometric series is convergent only within the unit circle, so analytic continuation must be used to define the function outside the unit circle. This short document outlines the numerical and conceptual methods used in the package; and justifies the package philosophy, which is to maintain transparent and verifiable links between the software and AMS-55. The package is demonstrated in the context of game theory. } %% publication information %% NOTE: This needs to filled out ONLY IF THE PAPER WAS ACCEPTED. %% If it was not (yet) accepted, leave them commented. %% \Volume{13} %% \Issue{9} %% \Month{September} %% \Year{2004} %% \Submitdate{2004-09-29} %% \Acceptdate{2004-09-29} %% The address of (at least) one author should be given %% in the following format: \Address{ Robin K. S. Hankin\\ Auckland University of Technology\\ New Zealand\\ E-mail: \email{hankin.robin@gmail.com}\\ } %% need no \usepackage{Sweave.sty} \SweaveOpts{} \begin{document} <>= calculate_from_scratch <- FALSE @ \section{Introduction} The {\em geometric} series~$\sum_{k=0}^\infty t_k$ with~$t_k=z^k$ may be characterized by its first term and the constant ratio of successive terms~$t_{k+1}/t_k=z$, giving the familiar identity~$\sum_{k=0}^\infty z^k=\left(1-z\right)^{-1}$. Observe that while the series has unit radius of convergence, the right hand side is defined over the whole complex plane except for~$z=1$ where it has a pole. Series of this type may be generalized to a {\em hypergeometric} series in which the ratio of successive terms is a rational function of~$k$: \[ \frac{t_{k+1}}{t_k}=\frac{P(k)}{Q(k)} \] where~$P(k)$ and~$Q(k)$ are polynomials. If both numerator and denominator have been completely factored we would write \[ \frac{t_{k+1}}{t_k} = \frac{(k+a_1)(k+a_2)\cdots(k+a_p)}{(k+b_1)(k+b_2)\cdots(k+b_q)(k+1)}z \] \noindent (the final term in the denominator is due to historical reasons), and if we require~$t_0=1$ then we write \begin{equation}\label{genhypergeo_definition} \sum_{k=0}^\infty t_kz^k= \Fmn{a}{b}\left[{ a_1, a_2, \ldots,a_p\atop b_1, b_2, \ldots,b_q} ; z\right] \end{equation} when defined. An absent factor is indicated with a dash; thus $\Fmn{0}{0}\left[\begin{array}{l}-\\-\end{array};z\right]=e^z$. In most cases of interest one finds that~$p=2$, $q=1$ suffices. Writing~$a,b,c$ for the two upper and one lower argument respectively, the resulting function~$\ft\left(a,b;c;z\right)$ is known as {\em the} hypergeometric function. Many functions of elementary analysis are of this form; examples would include logarithmic and trigonometric functions, Bessel functions, etc. For example, $\ft\left(\frac{1}{2},1;\frac{3}{2};-z^2\right)=z^{-1}\operatorname{\arctan} z$. \citet{michel2008} state that physical applications are ``plethora''. In addition, naturally-occuring combinatorial series frequently have a sum expressible in terms of hypergeometric functions and an example from the author's work in the field game theory is given below. \subsection{Equivalent forms} The hypergeometric function's series representation, namely \begin{equation}\label{series}\tag{15.1.1} \ft\left(a,b;c;z\right)=\sum_{k=0}^\infty\frac{\fall{a}{k}\fall{b}{k}}{\fall{c}{k}k!}z^k,\qquad \fall{a}{k}=\Gamma(a+k)/\Gamma(a) \end{equation} \noindent has unit radius of convergence by the ratio test but the integral form \begin{equation}\label{integral}\tag{15.3.1} \ft\left(a,b;c;z\right)= \frac{\Gamma(c)}{\Gamma(b)\Gamma(c-b)}\int_{t=0}^1 t^{b-1}(1-t)^{c-b-1}(1-tz)^{-a}\,dt, \end{equation} \noindent due to Gauss, furnishes analytic continuation; it is usual to follow Riemann and define a cut along the positive real axis from~$1$ to~$\infty$ and specify continuity from below [NB: equations with three-part numbers, as \ref{series} and \ref{integral} above, are named for their reference in~\citet{abramowitz1965}]. This is implemented as \code{f15.3.1()} in the package and exhibits surprisingly accurate evaluation. Gauss also provided a continued fraction form for the hypergeometric function [implemented as~\code{hypergeo_contfrac()} in the package] which has superior convergence rates for parts of the complex plane at the expense of more complicated convergence properties~\citep{cuyt2008}. \section{The hypergeo package} The \pkg{hypergeo} package provides some functionality for the hypergeometric function; the emphasis is on fast vectorized \proglang{R}-centric code, complex~$z$ and moderate real values for the auxiliary parameters~$a,b,c$. The package is released under GPL-2. Observing the slow convergence of the series representation~\ref{series}, the complex behaviour of the continued fraction representation, and the heavy computational expense of the integral representation~\ref{integral}, it is clear that non-trivial numerical techniques are required for a production package. The package implements a generalization of the method of~\citet{forrey1997} to the complex case. It utilizes the observation that the ratio of successive terms approaches~$z$, and thus the strategy adopted is to seek a transformation which reduces the modulus of~$z$ to a minimum. \citeauthor{abramowitz1965} give the following transformations: \newcommand{\four}[4]{\frac{\Gamma\left(#1\right)\Gamma\left(#2\right)}{\Gamma\left(#3\right)\Gamma\left(#4\right)}} \begin{align} \ft\left(a,b;c;z\right) &= \left(1-z\right)^{-a}\ft\left(a,c-b;c;\frac{z}{z-1}\right)\tag{15.3.4}\label{15.3.4}\\ &= \left(1-z\right)^{-b}\ft\left(a,c-a;c;\frac{z}{z-1}\right)\tag{15.3.5}\label{15.3.5}\\ &= \four{c}{c-a-b}{c-a}{c-b}\ft\left(a,b;a+b-c+1;1-z\right)\nonumber\\ &{}\qquad+ (1-z)^{c-a-b}\four{c}{a+b-c}{a}{b}\ft\left(c-a,c-b;c-a-b+1;1-z\right)\label{15.3.6}\tag{15.3.6}\\ &= \four{c}{b-a}{b}{c-a}\left(-z\right)^{-a}\ft\left(a,1-c+a;1-b+a;\frac{1}{z}\right)\nonumber\\ &{}\qquad+\four{c}{a-b}{a}{c-b}\left(-z\right)^{-b}\ft\left(b,1-c+b;1-a+b;\frac{1}{z}\right)\label{15.3.7}\tag{15.3.7}\\ &= (1-z)^{-a}\four{c}{b-a}{b}{c-a}\ft\left(a,c-b;a-b+1;\frac{1}{1-z}\right)\nonumber\\ &{}\qquad+(1-z)^{-b}\four{c}{a-b}{a}{c-b}\ft\left(b,c-a;b-a+1;\frac{1}{1-z}\right)\label{15.3.8}\tag{15.3.8}\\ &=\four{c}{c-a-b}{c-a}{c-b}z^{-a}\ft\left(a,a-c+1;a+b-c+1;1-\frac{1}{z}\right)\nonumber\\ &{}\qquad+\four{c}{a+b-c}{a}{b}(1-z)^{c-a-b}z^{a-c}\ft\left(c-a,1-a;c-a-b+1;1-\frac{1}{z}\right)\label{15.3.9}\tag{15.3.9}. \end{align} Observing that the set~$\left\{z,\frac{z}{z-1},1-z,\frac{1}{z},\frac{1}{1-z},1-\frac{1}{z}\right\}$ forms a group under functional composition\footnote{It is the anharmonic subgroup of the M\"{o}bius transformations, generated by~$z\longrightarrow 1/z$ and~$z\longrightarrow 1-z$. It is isomorphic to~$S_3$, the symmetric group on~3 elements.} we may apply each of the transformations to the primary argument~$z$ and choose the one of smallest absolute value to evaluate. Given the appropriate transformation, the right hand side is evaluated using direct summation. If~$\left|z\right|<1$, the series is convergent by the ratio test, but may require a large number of terms to achieve acceptable numerical precision. Summation is dispatched to \code{genhypergeo_series()} which evaluates the generalized hypergeometric function~\ref{genhypergeo_definition}; the \proglang{R} implementation uses multiplication by repeatedly incremented upper and lower indices~$a_i,b_i$. %\begin{algorithmic}\label{alt} % \State $\mathit{fac}\gets 1$ % \State $\mathit{temp}\gets\mathit{fac}$ % \State $\mathit{series}\gets\mathit{ZXCVXCVDFADF}$ % \While {$\mathit{series}\neq\mathit{temp}$} % \State $\mathit{fac}\gets % \mathit{fac}\times\frac{a_1\times\cdots\times a_p}{b_1\times\cdots\times b_q}\times z$ % \State $a_1\gets a_1+1,\ldots, b_q\gets b_q+1$ % \State $temp\gets \mathit{series}$ % \State $\mathit{series}\gets \mathit{series}+\mathit{fac}$ % \EndWhile %\end{algorithmic} %(lower indices~$b_i$ are appended with a ``$+1$''). Thus for example if $(1-z)^{-1}$ is small in absolute value we would use function \code{f13.3.8()}: \begin{Schunk} \begin{Sinput} > require("hypergeo") > f15.3.8 \end{Sinput} \begin{Soutput} function(A,B,C,z,tol=0,maxiter=2000){ jj <- i15.3.8(A,B,C) jj[1]*(1-z)^(-A)*genhypergeo(U=c(A,C-B),L=A-B+1,z=1/(1-z),tol=tol,maxiter=maxiter) + jj[2]*(1-z)^(-B)*genhypergeo(U=c(B,C-A),L=B-A+1,z=1/(1-z),tol=tol,maxiter=maxiter) } \end{Soutput} \end{Schunk} \noindent (slightly edited in the interests of visual clarity). This is a typical internal function of the package and like all similar functions is named for its equation number in~\cite{abramowitz1965}. Note the helper function \code{i15.3.9()}, which calculates the Gamma coefficients of the two hypergeometric terms in the identity. This structure allows transparent checking of the code. \subsection{Special cases} The methods detailed above are not applicable for all values of the parameters~$a,b,c$. If, for example, $c=a+b\pm m$, $m\in\mathbb{N}$ (a not uncommon case), then equation~\ref{15.3.6} is not useful because each term has a pole; and it is numerically difficult to approach the limit. In this case the package dispatches to \code{hypergeo_cover1()} which uses~\ref{15.3.4} through~\ref{15.3.9} but with~\ref{15.3.6} replaced with suitable limiting forms such as \begin{equation}\tag{15.3.11}\label{15.3.11} \ft\left(a,b;a+b+m;z\right)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \sum_{n=0}^\infty\frac{(a)_n(b)_n}{(n!)^2}\left[ 2\psi(n+1)-\psi(a+n)-\psi(b+n)-\log(1-z)\right](1-z)^n,\qquad\pi<\left|\operatorname{\arg}(1-z)\right|<\pi,\left|1-z\right|<1 \end{equation} (\citeauthor{abramowitz1965} give a similar expression for negative~$m$). This equation is comparable to~\ref{15.3.6} in terms of computational complexity but requires evaluation of the digamma function~$\psi$. Equation~\ref{15.3.11} is evaluated in the package using an algorithm similar to that for \code{genhypergeo_series()} but includes a runtime option which specifies whether to evaluate~$\psi\left(\cdot\right)$ \emph{ab initio} each time it is needed, or to use the recurrence relation~$\psi\left(z+1\right)=\psi\left(z\right)+1/z$ at each iteration after the first. These two options appear to be comparable in terms of both numerical accuracy and speed of execution, but further work would be needed to specify which is preferable in this context. A similar methodology is used for the case~$b=a\pm m$, $m=0,1,2,\ldots$ in which case the package dispatches to \code{hypergeo_cover2()}. However, the case~$c-a=0,1,2,\ldots$ is not covered by~\cite{abramowitz1965} and the package dispatches to~\code{hypergeo_cover3()} which uses formulae taken from the Wolfram functions site~\citep{wolfram2014}. For example \code{w07.23.06.0026.01()} gives a straightforwardly implementable numerical expression for~$\Fmn{2}{1}$ as a sum of two {\em finite} series and a generalized hypergeometric function~$\Fmn{3}{2}$ with primary argument~$z^{-1}$. In all these cases, the limiting behaviour is problematic. For example, if~$a+b-c$ is close to, but not exactly equal to, an integer then equation~\ref{15.3.11} is not applicable. The analytic value of the hypergeometric function in these circumstances is typically of moderate modulus, but both terms of equation~\ref{15.3.6} have large amplitude and numerics are susceptible to cancellation errors. \subsection{Critical points} All the above methods fail when~$z=\frac{1}{2}\pm\frac{i\sqrt{3}}{2}$, because none of the transformations~\ref{15.3.6}-\ref{15.3.9} change the modulus of~$z$ from 1. The function is convergent at these points but numerical evaluation is difficult. This issue does not arise in the real case considered by~\citet{forrey1997}. These points were considered by \cite{buhring1987} who presented a computational method for these values; however, his method is not suitable for finite-precision arithmetic (a brief discussion is presented at \code{?buhring}) and the package employs either an iterative scheme due to Gosper~\citep{mpmath}, or the residue theorem if~$z$ is close to either of these points. \section{Package testing suite} The package comes with an extensive test suite in the \code{tests/} directory. The tests fall into two main categories, firstly comparison with either \proglang{Maple} or \proglang{Mathematica} output (although~\cite{becken2000} caution that \proglang{Mathematica} routines cannot be used as reference values); and secondly, verification of identities which appear in AMS-55 as named equations. \section{The package in use} The \pkg{hypergeo} package offers direct numerical functionality to the \proglang{R} user on the command line. One example from the author's current work is in game theory. Consider a game in which a player is given~$n$ counters each of which she must allocate into one of two boxes, $A$ or $B$. At times $t = 1,2,3\ldots$ a box is identified at random and, if it is not empty, a counter removed from it; box~$A$ is chosen with probability~$p$ and box~$B$ with probability~$1-p$. The object of the game is to remove all counters as quickly as possible. If the player places~$a$ counters in box~$A$ and~$b$ in~$B$, then the probability mass function of removing the final counter at time~$t=a+b+r$ is <>= require("hypergeo") require("elliptic") @ \begin{equation} p^a(1-p)^b\left[ {a+b+r-1 \choose a-1, b+r}(1-p)^r+ {a+b+r-1 \choose a+r, b-1}p^r \right],\qquad r=0,1,2,\ldots. \end{equation} The two terms correspond to the final counter being removed from box~$A$ or~$B$ respectively. This PMF has expectation \begin{align} p^a(1-p)^b\left[ p {a+b\choose a+1,b-1}\,\ft\left(a+b+1,2;a+2;p\right)+\right.\nonumber\\ \left. (1-p){a+b\choose a-1,b+1}\,\ft\left(a+b+1,2;b+2;1-p\right) \right]\label{expectation} \end{align} with \proglang{R} idiom: <>= expected <- function(a,b,p){ Re( choose(a+b,b) * p^a * (1-p)^b * ( p *b/(1+a) * hypergeo(a+b+1,2,a+2, p) + (1-p)*a/(1+b) * hypergeo(a+b+1,2,b+2,1-p) )) } @ Thus if~$p=0.8$ and given~$n=10$ counters we might wonder whether it is preferable to allocate them~$(8,2)$ or~$(9,1)$: <>= c(expected(8,2,0.8),expected(9,1,0.8)) @ showing that the latter allocation is preferable in expectation. The package is designed for use with \proglang{R} and Figure~\ref{complexhypergeometricplot} shows the package being used to visualize~$\ft\left(2,\frac{1}{2};\frac{2}{3};z\right)$ over a region of the complex plane. %% Thanks to Dario Strbenac for the following structure <>= png("hypergeometric_plot.png",width=800,height=800) @ <>= x <- seq(from=0,to=2,len=200) y <- seq(from=-1,to=1,len=200) z <- outer(x,1i*y,"+") hz <- hypergeo(2,1/2,2/3,z) par(pty='s') view(x,y,hz,levels=seq(from=-4,to=4),xlab='Real',ylab='Imag') @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{hypergeometric_plot.png} \caption{View of the\label{complexhypergeometricplot} function~$\ft\left(2,\frac{1}{2};\frac{2}{3};z\right)$ evaluated over a part of the complex plane using the \pkg{hypergeo} package. Function visualization following \cite{thaller1998} and the \pkg{elliptic} package~\citep{hankin2006}; hue corresponds to argument and saturation to modulus. Solid contour lines correspond to real function values and dotted to imaginary function values. Note the cut line along the real axis starting at~$\left(1,0\right)$, made visible by an abrupt change in hue} \end{center} \end{figure} \subsection{Conclusions and further work} Evaluation of the hypergeometric function is hard, as evidenced by the extensive literature concerning its numerical evaluation~\citep{becken2000,michel2008,forrey1997,buhring1987}. The \pkg{hypergeo} package is presented as a partial implementation, providing reasonably accurate evaluation over a large portion of the complex plane and covering moderate real values of the auxiliary parameters~$a,b,c$. Difficulties arise when~$b-a$ or~$c-b-a$ become close to, but not exactly, integers because the terms in equations~\ref{15.3.6} through~\ref{15.3.9} become large and cancellation errors become important. Further work might include extension to complex auxiliary parameters but \citeauthor{michel2008} caution that this is not straightforward. \bibliography{hypergeometric} \end{document} hypergeo/inst/doc/hypergeometric.R0000644000176200001440000000312114770237325016776 0ustar liggesusers### R code from vignette source 'hypergeometric.Rnw' ################################################### ### code chunk number 1: set_calculate_from_scratch ################################################### calculate_from_scratch <- FALSE ################################################### ### code chunk number 2: loadpackages ################################################### require("hypergeo") require("elliptic") ################################################### ### code chunk number 3: R_expectation ################################################### expected <- function(a,b,p){ Re( choose(a+b,b) * p^a * (1-p)^b * ( p *b/(1+a) * hypergeo(a+b+1,2,a+2, p) + (1-p)*a/(1+b) * hypergeo(a+b+1,2,b+2,1-p) )) } ################################################### ### code chunk number 4: useit ################################################### c(expected(8,2,0.8),expected(9,1,0.8)) ################################################### ### code chunk number 5: hypergeo_figure_file ################################################### png("hypergeometric_plot.png",width=800,height=800) ################################################### ### code chunk number 6: wp_figure_plot ################################################### x <- seq(from=0,to=2,len=200) y <- seq(from=-1,to=1,len=200) z <- outer(x,1i*y,"+") hz <- hypergeo(2,1/2,2/3,z) par(pty='s') view(x,y,hz,levels=seq(from=-4,to=4),xlab='Real',ylab='Imag') ################################################### ### code chunk number 7: wp_figure_close ################################################### null <- dev.off() hypergeo/build/0000755000176200001440000000000014770237325013205 5ustar liggesusershypergeo/build/vignette.rds0000644000176200001440000000032414770237325015543 0ustar liggesusers‹‹àb```b`aaf`b2™… 1# 'ʨ,H-JOÍÏM-)ÊLÖ Ê+GS!’‘ªS¥P˜œ˜žJÀ”‚”44èö& –‡¨&$õ¬y‰¹©Åh†°»¤¤æ¥€„ÿa×ÏøM ‡wjey~LŠ6¨·ÌœT˜½!™%ps€‹”É„î óQÜÏY”_®ó/("€Ä @÷hrNb1ºG¹RKõÒŠ€úAî|A’¥Êhypergeo/man/0000755000176200001440000000000014770237326012662 5ustar liggesusershypergeo/man/hypergeo_cover1.Rd0000644000176200001440000000474412701311441016242 0ustar liggesusers\name{hypergeo_cover1} \alias{hypergeo_cover1} \alias{hypergeo_cover2} \alias{hypergeo_cover3} \title{Hypergeometric functions for special values of the parameters} \description{ Hypergeometric functions for special values of the parameters } \usage{ hypergeo_cover1(A, B, m, z, tol = 0, maxiter = 2000, method = "a", give = FALSE) hypergeo_cover2(A, C, m, z, tol = 0, maxiter = 2000, method = "a", give = FALSE) hypergeo_cover3(A, n, m, z, tol = 0, maxiter = 2000, method = "a", give = FALSE) } \arguments{ \item{A,B,C}{parameters for the hypergeometric function} \item{m,n}{Integers (positive or negative)} \item{z}{Primary complex argument} \item{tol,maxiter}{Numerical arguments passed to \code{genhypergeo()}} \item{method}{Method, passed to \code{f15.3.10()} (qv)} \item{give}{Boolean with \code{TRUE} meaning to return the choice of helper function used (eg \code{f15.3.7()}), and default \code{FALSE} meaning to return the hypergeometric function's value} } \details{ These functions deal with the exceptional cases listed on page 559-560. \itemize{ \item Function \code{hypergeo_cover1()} deals with the case \eqn{C=A+B\pm m,m=0,1,2,\ldots}{C=A+B +/- m, m=0,1,2,...} \item Function \code{hypergeo_cover2()} deals with the case \eqn{B=A\pm m,m=0,1,2,\ldots}{B=A +/- m, m=0,1,2,...} \item Function \code{hypergeo_cover3()} deals with the case \eqn{C-A=0,-1,-2,\ldots}{C-A=0,-1,-2,...} [elementary] and \eqn{C-A=1,2,\ldots}{C-A=1,2,...} [not covered by AMS-55] } } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \note{ Function \code{hypergeo_cover3()} is required because the \dQuote{limiting process} mentioned on p560, just after 15.3.14, is not explicit. Which is why it dispatches to \code{w07.23.06.0026.01()} and \code{w07.23.06.0031.01()}, documented at \code{wolfram}. } \author{Robin K. S. Hankin} \seealso{\code{\link{hypergeo}},\code{\link{f15.3.10}},\code{\link{wolfram}}} \examples{ # Test hypergeo_cover1(): jjR <- hypergeo(pi,pi/2,3*pi/2-4, z=0.1+0.2i) jjM <- 0.53745229690249593045 + 1.8917456473240515664i # Test hypergeo_cover2(): jjM <- -0.15888831928748121465e-5 + 0.40339599711492215912e-4i jjR <- hypergeo(pi,pi+2, 1.1 , 1+10i) # This is 15.3.13 stopifnot(Mod(jjR-jjM)<1e-10) # Test hypergeo_cover3() jjM <- -0.24397135980533720308e-1 + 0.28819643319432922231i jjR <- hypergeo(pi, 1.4, pi+4, 1+6i) stopifnot(Mod(jjR-jjM)<1e-10) } \keyword{math} hypergeo/man/residue.Rd0000644000176200001440000000631214770231673014612 0ustar liggesusers\name{residue} \alias{residue} \alias{hypergeo_residue} \alias{hypergeo_residue_general} \alias{hypergeo_residue_close_to_crit_single} \alias{hypergeo_residue_close_to_crit_multiple} \title{Evaluation of the hypergeometric function using the residue theorem} \description{ Expansion of the hypergeometric function using the residue theorem; useful for when the primary argument is close to the critical points \eqn{1/2\pm i\sqrt{3}/2}{0.5+/-i.sqrt(3)/2} } \usage{ hypergeo_residue_general(A, B, C, z, r, O=z, tol=0, maxiter=2000) hypergeo_residue_close_to_crit_single(A, B, C, z, strategy='A', tol=0, maxiter=2000) hypergeo_residue_close_to_crit_multiple(A, B, C, z, strategy='A', tol=0, maxiter=2000) } \arguments{ \item{A,B,C}{Parameters (real or complex)} \item{z}{Complex argument} \item{tol,maxiter}{tolerance and maximum number of iterations (passed to \code{hypergeo()})} \item{r,O}{Radius and center of circle to integrate over} \item{strategy}{Indicates which strategy to use. Strategy \sQuote{A} means to use the critical point as the centre of the circle and strategy \sQuote{B} means to use \eqn{z}} } \details{ These functions are not really intended for the user; \code{hypergeo()} uses \code{hypergeo_residue_close_to_crit_multiple()} when \eqn{\left|z-c\right|}{abs(z-c)} is less than \eqn{0.1} (hardwired) for \eqn{c} being either of the two critical points. Infinite regress is avoided because the contour is always more than this distance from the critical points. These functions use the residue theorem \eqn{f\left(z_0\right)=\oint_C\frac{f(z)\,dz}{z-z_0}}{f(z_0)=int f(z)dz/(z-z_0)} to evaluate the hypergeometric function near the two critical points \eqn{1/2\pm i\sqrt{3}/2}{0.5+/-i.sqrt(3)/2}. These points are problematic because all of the transformations listed under \code{thingfun()} take the points either to themselves or each other. At these points the ratio of successive terms in the hypergeometric series tends to one and thus numerical summation is difficult. The hypergeometric function, however, is not at all badly behaved near these critical points (see examples); but OTOH there do not seem to be any identities for the hypergeometric function at these points. I have not investigated in detail whether strategy \sQuote{A} or \sQuote{B} is better. I would expect that \sQuote{A} is faster but \sQuote{B} more accurate, on the grounds that \sQuote{A} uses a contour whose closest approach to the critical point is further than that of \sQuote{B}; but \sQuote{B} uses a contour which does not vary in distance from \eqn{z}. But both seem to be fairly accurate and fairly fast, and I have not systematically investigated the pros and cons. } \references{ \itemize{ \item W. Buhring 1987. \dQuote{An analytic continuation of the hypergeometric series}, \emph{Siam J. Math. Anal.} 18(3) } } \author{Robin K. S. Hankin} \note{ The residue theorem appears to be absurdly accurate for numerical evaluation } \seealso{\code{\link{buhring}}} \examples{ c1 <- 1/2-sqrt(3)/2i c2 <- 1/2+sqrt(3)/2i a1_R <- hypergeo(1/2,1/3,pi,c1) a1_M <- 1.0154051314906669 + 0.0544835896509068i x <- y <- seq(from=-0.1,to=0.1,len=100) elliptic::view(x,y,hypergeo(1/2,1,1/3,outer(x,1i*y,"+"))) } \keyword{math} hypergeo/man/genhypergeo.Rd0000644000176200001440000000712412701311441015450 0ustar liggesusers\name{genhypergeo} \alias{genhypergeo} \alias{genhypergeo_series} \alias{genhypergeo_contfrac} \title{The generalized hypergeometric function} \description{ The generalized hypergeometric function, using either the series expansion or the continued fraction expansion. } \usage{ genhypergeo(U, L, z, tol=0, maxiter=2000, check_mod=TRUE, polynomial=FALSE, debug=FALSE, series=TRUE) genhypergeo_series(U, L, z, tol=0, maxiter=2000, check_mod=TRUE, polynomial=FALSE, debug=FALSE) genhypergeo_contfrac(U, L, z, tol = 0, maxiter = 2000) } \arguments{ \item{U,L}{Upper and lower arguments respectively (real or complex)} \item{z}{Primary complex argument (see notes)} \item{tol}{tolerance with default zero meaning to iterate until additional terms to not change the partial sum} \item{maxiter}{Maximum number of iterations to perform} \item{check_mod}{Boolean, with default \code{TRUE} meaning to check that the modulus of \code{z} is less than 1} \item{polynomial}{Boolean, with default \code{FALSE} meaning to evaluate the series until converged, or return a warning; and \code{TRUE} meaning to return the sum of \code{maxiter} terms, whether or not converged. This is useful when either \code{A} or \code{B} is a nonpositive integer in which case the hypergeometric function is a polynomial} \item{debug}{Boolean, with \code{TRUE} meaning to return debugging information and default \code{FALSE} meaning to return just the evaluate} \item{series}{In function \code{genhypergeo()}, Boolean argument with default \code{TRUE} meaning to return the result of \code{genhypergeo_series()} and \code{FALSE} the result of \code{genhypergeo_contfrac()}} } \details{ Function \code{genhypergeo()} is a wrapper for functions \code{genhypergeo_series()} and \code{genhypergeo_contfrac()}. Function \code{genhypergeo_series()} is the workhorse for the whole package; every call to \code{hypergeo()} uses this function except for the (apparently rare---but see the examples section) cases where continued fractions are used. The generalized hypergeometric function [here \code{genhypergeo()}] appears from time to time in the literature (eg Mathematica) as \deqn{F(U,L;z) = \sum_{n=0}^\infty\frac{(u_1)_n(u_2)_n\ldots (u_i)_n}{(l_1)_n(l_2)_n\ldots (l_j)_n}\cdot\frac{z^n}{n!}}{[omitted; see PDF]} where \eqn{U=\left(u_1,\ldots,u_i\right)}{U=(u_1,...,u_i)} and \eqn{L=\left(l_1,\ldots,l_i\right)}{L=(l_1,...,l_i)} are the \dQuote{upper} and \dQuote{lower} vectors respectively. The radius of convergence of this formula is 1. For the Confluent Hypergeometric function, use \code{genhypergeo()} with length-1 vectors for arguments \code{U} and \code{V}. For the \eqn{{}_0\!F_1}{0F1} function (ie no \dQuote{upper} arguments), use \code{genhypergeo(NULL,L,x)}. See documentation for \code{genhypergeo_contfrac()} for details of the continued fraction representation. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \note{ The radius of convergence for the series is 1 but under some circumstances, analytic continuation defines a function over the whole complex plane (possibly cut along \eqn{(1,\infty)}{(1,inf)}). Further work would be required to implement this. } \seealso{\code{\link{hypergeo}},\code{\link{genhypergeo_contfrac}}} \examples{ genhypergeo(U=c(1.1,0.2,0.3), L=c(10.1,pi*4), check_mod=FALSE, z=1.12+0.2i) genhypergeo(U=c(1.1,0.2,0.3), L=c(10.1,pi*4),z=4.12+0.2i,series=FALSE) } \keyword{math} hypergeo/man/shanks.Rd0000644000176200001440000000251312701311441014420 0ustar liggesusers\name{shanks} \alias{shanks} \alias{hypergeo_shanks} \alias{genhypergeo_shanks} \title{Evaluation of the hypergeometric function using Shanks's method} \description{ Evaluation of the hypergeometric function using Shanks transformation of successive sums } \usage{ hypergeo_shanks(A,B,C,z,maxiter=20) genhypergeo_shanks(U,L,z,maxiter=20) shanks(Last,This,Next) } \arguments{ \item{A,B,C}{Parameters (real or complex)} \item{U,L}{Upper and lower vectors} \item{z}{Primary complex argument} \item{maxiter}{Maximum number of iterations} \item{Last,This,Next}{Three successive convergents} } \details{ The Shanks transformation of successive partial sums is \deqn{S(n)=\frac{A_{n+1}A_{n-1}-A_n^2}{A_{n+1}-2A_n+A_{n-1}}} and if the \eqn{A_n} tend to a limit then the sequence \eqn{S(n)} often converges more rapidly than \eqn{A_n}. However, the denominator is susceptible to catastrophic rounding under fixed-precision arithmetic and it is difficult to know when to stop iterating. } \references{ \itemize{ \item Shanks, D. (1955). \dQuote{Non-linear transformation of divergent and slowly convergent sequences}, \emph{Journal of Mathematics and Physics} 34:1-42 } } \author{Robin K. S. Hankin} \note{ The } \seealso{\code{\link{buhring}}} \examples{ hypergeo_shanks(1/2,1/3,pi,z= 0.1+0.2i) } \keyword{math} hypergeo/man/wolfram.Rd0000644000176200001440000000570414770232656014627 0ustar liggesusers\name{wolfram} \alias{wolfram} \alias{w07.23.06.0026.01} \alias{w07.23.06.0026.01_bit1} \alias{w07.23.06.0026.01_bit2} \alias{w07.23.06.0026.01_bit3_a} \alias{w07.23.06.0026.01_bit3_b} \alias{w07.23.06.0026.01_bit3_c} \alias{w07.23.06.0029.01} \alias{w07.23.06.0031.01} \alias{w07.23.06.0031.01_bit1} \alias{w07.23.06.0031.01_bit2} \title{Various functions taken from the Wolfram Functions Site} \description{ Various functions taken from the Wolfram Functions Site } \usage{ w07.23.06.0026.01(A, n, m, z, tol = 0, maxiter = 2000, method = "a") w07.23.06.0026.01_bit1(A, n, m, z, tol = 0) w07.23.06.0026.01_bit2(A, n, m, z, tol = 0, maxiter = 2000) w07.23.06.0026.01_bit3_a(A, n, m, z, tol = 0) w07.23.06.0026.01_bit3_b(A, n, m, z, tol = 0) w07.23.06.0026.01_bit3_c(A, n, m, z, tol = 0) w07.23.06.0029.01(A, n, m, z, tol = 0, maxiter = 2000) w07.23.06.0031.01(A, n, m, z, tol = 0, maxiter = 2000) w07.23.06.0031.01_bit1(A, n, m, z, tol = 0, maxiter = 2000) w07.23.06.0031.01_bit2(A, n, m, z, tol = 0, maxiter = 2000) } \arguments{ \item{A}{Parameter of hypergeometric function} \item{m,n}{Integers} \item{z}{Primary complex argument} \item{tol,maxiter}{Numerical arguments as per \code{genhypergeo()}} \item{method}{Character, specifying method to be used} } \details{ The \code{method} argument is described at \code{f15.3.10}. All functions' names follow the conventions in \code{Hypergeometric2F1.pdf}. \itemize{ \item Function \code{w07.23.06.0026.01(A, n, m, z)} returns \eqn{{}_2F_1(A,A+n,A+m,z)}{hypergeo(A,A+n,A+m,z)} where \eqn{m} and \eqn{n} are nonnegative integers with \eqn{m\geq n}{m>=n}. \item Function \code{w07.23.06.0029.01(A, n, m, z)} returns \eqn{{}_2F_1(A,A+n,A-m,z)}{hypergeo(A,A+n,A-m,z)}. \item Function \code{w07.23.06.0031.01(A, n, m, z)} returns \eqn{{}_2F_1(A,A+n,A+m,z)}{hypergeo(A,A+n,A-m,z)} with \eqn{m\leq n}{m<=n}. } } \note{ These functions use the \code{psigamma()} function which does not yet take complex arguments; this means that complex values for \code{A} are not supported. I'm working on it. } \references{ \code{http://functions.wolfram.com/Hypergeometric2F1.pdf} } \author{Robin K. S. Hankin} \seealso{\code{\link{f15.3.10}},\code{\link{hypergeo}}} \examples{ # Here we catch some answers from Maple (jjM) and compare it with R's: jjM <- 0.95437201847068289095 + 0.80868687461954479439i # Maple's answer jjR <- w07.23.06.0026.01(A=1.1 , n=1 , m=4 , z=1+1i) # [In practice, one would type 'hypergeo(1.1, 2.1, 5.1, 1+1i)'] stopifnot(Mod(jjM - jjR) < 1e-10) jjM <- -0.25955090546083991160e-3 - 0.59642767921444716242e-3i jjR <- w07.23.06.0029.01(A=4.1 , n=1 , m=1 , z=1+4i) # [In practice, one would type 'hypergeo(4.1, 3.1, 5.1, 1+1i)'] stopifnot(Mod(jjM - jjR) < 1e-15) jjM <- 0.33186808222278923715e-1 - 0.40188208572232037363e-1i jjR <- w07.23.06.0031.01(6.7,2,1,2+1i) # [In practice, one would type 'hypergeo(6.7, 8.7, 7.7, 2+1i)'] stopifnot(Mod(jjM - jjR) < 1e-10) } \keyword{math} hypergeo/man/is.nonpos.Rd0000644000176200001440000000501512701311441015057 0ustar liggesusers\name{is.nonpos} \alias{is.nonpos} \alias{is.near_integer} \alias{is.zero} \alias{isgood} \alias{thingfun} \alias{crit} \alias{lpham} \title{Various utilities} \description{ Various utilities needing nonce functions } \usage{ is.near_integer(i, tol=getOption("tolerance")) is.nonpos(i) is.zero(i) isgood(x, tol) thingfun(z, complex=FALSE) crit(...) lpham(x,n) } \arguments{ \item{i}{Numerical vector of suspected integers} \item{tol}{Tolerance} \item{x}{Argument to \code{isgood()} and \code{lpham()}} \item{z}{Complex vector} \item{complex}{In function \code{thingfun()}, Boolean with default \code{FALSE} meaning to return the modulus of the transforms and \code{TRUE} meaning to return the complex values themselves} \item{n}{second argument to \code{lpham()}} \item{...}{Ignored} } \details{ \itemize{ \item Function \code{is.near_integer(i)} returns \code{TRUE} if \code{i} is \dQuote{near} [that is, within \code{tol}] an integer; if the option is unset then \code{1e-11} is used. \item Function \code{is.nonpos()} returns \code{TRUE} if \code{i} is near a nonpositive integer \item Function \code{is.zero()} returns \code{TRUE} if \code{i} is, er, near zero \item Function \code{isgood()} checks for all elements of \code{x} having absolute values less than \code{tol} \item Function \code{thingfun()} transforms input vector \code{z} by each of the six members of the anharmonic group, viewed as a subgroup of the Mobius group of functions. It returns a real six-column matrix with columns being the modulus of \eqn{z,z/(z-1),1-z,1/z,1/(1-z),1-1/z}. These six columns correspond to the primary argument in equations 15.3.3 to 15.3.9, p551 of AMS-55 \item Function \code{crit()} returns the two critical points, \eqn{\frac{1}{2}\pm\frac{\sqrt{3}i}{2}}{1/2 +/- sqrt(3)i/2}. These points have unit modulus as do their six transforms by \code{thingfun()} \item Function \code{lpham()} returns the log of the Pochhammer function \eqn{log\left(\Gamma(x+n)/\Gamma(x)\right)}{log(Gamma(x+n)/Gamma(x))} } } \author{Robin K. S. Hankin} \note{ Function \code{isgood()} uses zero as the default tolerance (argument \code{tol} passed in from \code{hypergeo()}); compare the different meaning of \code{tol} used in \code{is.near_integer()}. Here, \dQuote{integer} means one of the sequence \eqn{0,\pm 1,\pm 2,\ldots}{0, +/-1, +/-2, ...} [ie \emph{not} the Gaussian integers]. } \examples{ is.near_integer(-3) is.zero(4) } \keyword{math} hypergeo/man/f15.3.10.Rd0000644000176200001440000000730512701311441014110 0ustar liggesusers\name{f15.3.10} \alias{f15.1.1} \alias{f15.3.10} \alias{f15.3.10_a} \alias{f15.3.10_b} \alias{f15.3.11} \alias{f15.3.11_bit1} \alias{f15.3.11_bit2_a} \alias{f15.3.11_bit2_b} \alias{f15.3.12} \alias{f15.3.12_bit1} \alias{f15.3.12_bit2_a} \alias{f15.3.12_bit2_b} \alias{f15.3.13} \alias{f15.3.13_14} \alias{f15.3.13_a} \alias{f15.3.13_b} \alias{f15.3.14} \alias{f15.3.14_bit1_a} \alias{f15.3.14_bit1_b} \alias{f15.3.14_bit2} \alias{f15.3.10_11_12} \title{Transformations of the hypergeometric function} \description{ Transformations of the hypergeometric function detailed in AMS-55, page 559-560. } \usage{ f15.3.10 (A, B, z, tol = 0, maxiter = 2000, method = "a") f15.3.10_a (A, B, z, tol = 0, maxiter = 2000 ) f15.3.10_b (A, B, z, tol = 0, maxiter = 2000 ) f15.3.11 (A, B, m, z, tol = 0, maxiter = 2000, method = "a") f15.3.11_bit1 (A, B, m, z, tol = 0 ) f15.3.11_bit2_a(A, B, m, z, tol = 0, maxiter = 2000 ) f15.3.11_bit2_b(A, B, m, z, tol = 0, maxiter = 2000 ) f15.3.12 (A, B, m, z, tol = 0, maxiter = 2000, method = "a") f15.3.12_bit1 (A, B, m, z, tol = 0 ) f15.3.12_bit2_a(A, B, m, z, tol = 0, maxiter = 2000 ) f15.3.12_bit2_b(A, B, m, z, tol = 0, maxiter = 2000 ) f15.3.13 (A, C, z, tol = 0, maxiter = 2000, method = "a") f15.3.13_a (A, C, z, tol = 0, maxiter = 2000 ) f15.3.13_b (A, C, z, tol = 0, maxiter = 2000 ) f15.3.14 (A, C, m, z, tol = 0, maxiter = 2000, method = "a") f15.3.14_bit1_a(A, C, m, z, tol = 0, maxiter = 2000 ) f15.3.14_bit1_b(A, C, m, z, tol = 0, maxiter = 2000 ) f15.3.14_bit2 (A, C, m, z, tol = 0 ) f15.3.13_14 (A, C, m, z, tol = 0, maxiter = 2000, method = "a") f15.3.10_11_12 (A, B, m, z, tol = 0, maxiter = 2000, method = "a") f15.1.1 (A, B, C, z, tol = 0, maxiter = 2000 ) } \arguments{ \item{A,B,C}{Parameters of the hypergeometric function} \item{m}{Integer linking \code{A}, \code{B}, \code{C} as set out in AMS-55, page 559,560} \item{z}{primary complex argument} \item{tol,maxiter}{numerical parameters} \item{method}{Length 1 character vector specifying the method. See details} } \details{ Naming scheme (functions and arguments) follows AMS-55, pages 559-560. The \code{method} argument to (eg) \code{f15.3.14()} specifies whether to use \code{psigamma()} directly (method \dQuote{\code{a}}), or the recurrence 6.3.5 (method \dQuote{\code{b}}). Press et al recommend method \dQuote{\code{b}}, presumably on the grounds of execution speed. I'm not so sure (method \dQuote{\code{a}} seems to be more accurate in the sense that it returns values closer to those of Maple). Method \dQuote{\code{c}} means to use a totally dull, slow, direct (but clearly correct) summation, for the purposes of debugging. This is only used for the functions documented under \code{wolfram.Rd} Functions \code{f15.3.13_14()} and \code{f15.3.10_11_12()} are convenience wrappers. For example, function \code{f15.3.13_14()} dispatches to either \code{f15.3.13()} or \code{f15.3.14()} depending on the value of \code{m}. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \note{ These functions are not really designed to be called by the user: use \code{hypergeo()} instead, or \code{hypergeo_cover[123]()} for specific cases. } \seealso{\code{\link{hypergeo}},\code{\link{wolfram}},\code{\link{hypergeo_cover1}}} \examples{ f15.3.10_11_12(A=1.1, B=pi, m= +3, z=.1+.1i) f15.3.10_11_12(A=1.1, B=pi, m= -3, z=.1+.1i) } \keyword{math} hypergeo/man/f15.3.1.Rd0000644000176200001440000000312112701311441014020 0ustar liggesusers\name{f15.3.1} \alias{f15.3.1} \alias{hypergeo_integral} \title{Hypergeometric function using Euler's integral representation} \description{ Hypergeometric function using Euler's integral representation, evaluated using numerical contour integrals. } \usage{ f15.3.1(A, B, C, z, h = 0) } \arguments{ \item{A,B,C}{Parameters} \item{z}{Primary complex argument} \item{h}{specification for the path to be taken; see details} } \details{ Argument \code{h} specifies the path to be taken (the path has to avoid the point \eqn{1/z}). If \code{h} is real and of length 1, the path taken comprises two straight lines: one from \eqn{0} to \eqn{0.5+hi} and one from \eqn{0.5+hi} to \eqn{1} (if \eqn{h=0} the integration is performed over a single segment). Otherwise, the integration is performed over \code{length(h)+1} segments: \eqn{0} to \code{h[1]}, then \code{h[i]} to \code{h[i+1]} for \eqn{1\leq i\leq n-1}{1 <= i <= n-1} and finally \code{h[n]} to 1. See examples and notes sections below. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \note{ The Mellin-Barnes form is not yet coded up. } \seealso{\code{\link{hypergeo}}} \examples{ # For |z| <1 the path can be direct: f15.3.1(2,1,2,-1/2) -2/3 # cf identity 07.23.03.0046.01 of Hypergeometric2F1.pdf with b=1 f <- function(h){f15.3.1(1,2,3, z=2, h=h)} # Winding number [around 1/z] matters: f(0.5) f(c(1-1i, 1+1i, -2i)) # Accuracy isn't too bad; compare numerical to analytical result : f(0.5) - (-1+1i*pi/2) } \keyword{math} hypergeo/man/hypergeo.Rd0000644000176200001440000001010612701311441014750 0ustar liggesusers\name{hypergeo} \alias{hypergeo} \title{The hypergeometric function} \description{ The Hypergeometric and generalized hypergeometric functions as defined by Abramowitz and Stegun. Function \code{hypergeo()} is the user interface to the majority of the package functionality; it dispatches to one of a number of subsidiary functions. } \usage{ hypergeo(A, B, C, z, tol = 0, maxiter=2000) } \arguments{ \item{A,B,C}{Parameters for \code{hypergeo()}} \item{z}{Primary argument, complex} \item{tol}{absolute tolerance; default value of zero means to continue iterating until the result does not change to machine precision; strictly positive values give less accuracy but faster evaluation} \item{maxiter}{Integer specifying maximum number of iterations} } \details{ The hypergeometric function as defined by Abramowitz and Stegun, equation 15.1.1, page 556 is \deqn{ {}_2F_1(a,b;c;z) = \sum_{n=0}^\infty\frac{(a)_n(b)_n}{(c)_n}\cdot\frac{z^n}{n!}}{[omitted; see PDF]} where \eqn{(a)_n=a(a+1)\ldots(a+n-1)=\Gamma(a+n)/\Gamma(a)}{(a)_n=Gamma(a+n)/Gamma(a)} is the Pochammer symbol (6.1.22, page 256). Function \code{hypergeo()} is the front-end for a rather unwieldy set of back-end functions which are called when the parameters \code{A}, \code{B}, \code{C} take certain values. The general case (that is, when the parameters do not fall into a \dQuote{special} category), is handled by \code{hypergeo_general()}. This applies whichever of the transformations given on page 559 gives the smallest modulus for the argument \code{z}. Sometimes \code{hypergeo_general()} and all the transformations on page 559 fail to converge, in which case \code{hypergeo()} uses the continued fraction expansion \code{hypergeo_contfrac()}. If this fails, the function uses integration via \code{f15.3.1()}. } \references{Abramowitz and Stegun 1955. \emph{Handbook of mathematical functions with formulas, graphs and mathematical tables} (AMS-55). National Bureau of Standards} \author{Robin K. S. Hankin} \note{ Abramowitz and Stegun state: \dQuote{The radius of convergence of the Gauss hypergeometric series \eqn{\ldots}{...} is \eqn{\left|z\right|=1}{|z|=1}} (AMS-55, section 15.1, page 556). This reference book gives the correct radius of convergence; use the ratio test to verify it. Thus if \eqn{|z|>1}, the hypergeometric series will diverge and function \code{genhypergeo()} will fail to converge. However, the hypergeometric function is defined over the whole of the complex plane, so analytic continuation may be used if appropriate cut lines are used. A cut line must join \eqn{z=1} to (complex) infinity; it is conventional for it to follow the real axis in a positive direction from \eqn{z=1} but other choices are possible. Note that in using the package one sometimes draws a \dQuote{full precision not achieved} warning from \code{gamma()}; and complex arguments are not allowed. I would suggest either ignoring the warning (the error of \code{gamma()} is unlikely to be large) or to use one of the bespoke functions such as \code{f15.3.4()} and tolerate the slower convergence, although this is not always possible. } \seealso{\code{\link{hypergeo_powerseries}}, \code{\link{hypergeo_contfrac}}, \code{\link{genhypergeo}}} \examples{ # equation 15.1.3, page 556: f1 <- function(x){-log(1-x)/x} f2 <- function(x){hypergeo(1,1,2,x)} f3 <- function(x){hypergeo(1,1,2,x,tol=1e-10)} x <- seq(from = -0.6,to=0.6,len=14) f1(x)-f2(x) f1(x)-f3(x) # Note tighter tolerance # equation 15.1.7, p556: g1 <- function(x){log(x + sqrt(1+x^2))/x} g2 <- function(x){hypergeo(1/2,1/2,3/2,-x^2)} g1(x)-g2(x) # should be small abs(g1(x+0.1i) - g2(x+0.1i)) # should have small modulus. # Just a random call, verified by Maple [ Hypergeom([],[1.22],0.9087) ]: genhypergeo(NULL,1.22,0.9087) # Little test of vectorization (warning: inefficient): hypergeo(A=1.2+matrix(1:10,2,5)/10, B=1.4, C=1.665, z=1+2i) # following calls test for former bugs: hypergeo(1,2.1,4.1,1+0.1i) hypergeo(1.1,5,2.1,1+0.1i) hypergeo(1.9, 2.9, 1.9+2.9+4,1+0.99i) # c=a+b+4; hypergeo_cover1() } \keyword{math} hypergeo/man/gosper.Rd0000644000176200001440000000264412701311441014435 0ustar liggesusers\name{gosper} \alias{hypergeo_gosper} \title{Evaluation of the hypergeometric function using Gosper's method} \description{ Evaluation of the hypergeometric function using Gosper's method } \usage{ hypergeo_gosper(A, B, C, z, tol = 0, maxiter = 2000) } \arguments{ \item{A,B,C}{Parameters (real or complex)} \item{z}{Complex argument} \item{tol}{tolerance (passed to \code{GCF()})} \item{maxiter}{maximum number of iterations} } \details{ Gosper provides a three-term recurrence which converges when \eqn{z} is close to a critical point. Bill Gosper asserts that the recursion holds for values of \eqn{z} which are inside the cardioid \code{(sqrt(8)*cos(t)-2*cos(2t), sqrt(8)*sin(t)-2*sin(2t))} (see examples section). It is suggested that the recursion should only be used when the auxiliary parameters A, B,C are all \eqn{\le 12}{<=12} in absolute value. } \references{ Original email was archived at \code{https://www.ma.utexas.edu/pipermail/maxima/2006/000126.html} but does not appear there now; and the wayback machine doesn't find it either. } \author{ R code by Robin K. S. Hankin, transcribed from maxima code posted by Richard Fateman, who credited Bill Gosper } \seealso{\code{\link{hypergeo_contfrac}}} \examples{ hypergeo_gosper(1.1,5.1,3.1,crit()) # Compare MMA: -0.192225 + 0.692328 I t <- seq(from=0,to=2i*pi,len=100) plot(exp(t)*(sqrt(8)-exp(t)),asp=1,type='l') points(crit()) } \keyword{math} hypergeo/man/complex_gamma.Rd0000644000176200001440000000225112701311441015741 0ustar liggesusers\name{complex_gamma} \alias{complex_gamma} \alias{complex_factorial} \alias{lanczos} \title{ Gamma function for complex arguments } \description{ Gamma and factorial functions for complex arguments } \usage{ complex_gamma(z, log = FALSE) complex_factorial(z, log = FALSE) lanczos(z,log=FALSE) } \arguments{ \item{z}{Primary argument, a complex vector} \item{log}{Boolean, with default \code{FALSE} meaning to return the function value and \code{TRUE} meaning to return its logarithm} } \details{ Method follows that of Lanczos, coefficients identical to those of the GSL } \references{ Lanczos, C. 1964. \dQuote{A precision approximation of the gamma function}. \emph{Journal of the society for industrial and applied mathematics series B}, Volume 1, pp86-96 M. Galassi et al, GNU Scientific Library Reference Manual (3rd Ed.), ISBN 0954612078. } \author{ Robin K. S. Hankin } \examples{ complex_gamma(5) # should be 4!=24 complex_gamma(1+1i) # takes complex arguments complex_gamma(-5/2) + sqrt(pi)*8/15 # should be small z <- pi + 1i*sqrt(2) complex_gamma(z+1)-z*complex_gamma(z) # should be small complex_gamma(z)*complex_gamma(1-z) - pi/sin(pi*z) # small }hypergeo/man/hypergeo_powerseries.Rd0000644000176200001440000000236312701311441017405 0ustar liggesusers\name{hypergeo_powerseries} \alias{hypergeo_powerseries} \alias{hypergeo_taylor} \alias{hypergeo_general} \title{The hypergeometric function as determined by power series} \description{ The hypergeometric function as determined by infinite (\code{hypergeo_powerseries()}) or finite (\code{hypergeo_taylor()}) power series } \usage{ hypergeo_powerseries(A, B, C, z, tol = 0, maxiter = 2000) } \arguments{ \item{A,B,C}{Parameters of the hypergeometric function} \item{z}{Primary complex argument} \item{tol,maxiter}{Numerical arguments} } \details{ Function \code{hypergeo_powerseries()} is the primary decision-making function of the package. It is this function that detects degenerate cases of the three parameters and dispatches accordingly. Non-degenerate cases are sent to function \code{hypergeo_general()}. Function \code{hypergeo_taylor()} deals with cases where the hypergeometric function is a polynomial. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \seealso{\code{\link{hypergeo}},\code{\link{genhypergeo}}} \examples{ jjR <- hypergeo(pi,-4,2.2,1+5i) jjM <- 1670.8287595795885335 - 204.81995157365381258i } \keyword{math} hypergeo/man/hypergeo_contfrac.Rd0000644000176200001440000000342514770232675016660 0ustar liggesusers\name{hypergeo_contfrac} \alias{hypergeo_contfrac} \alias{genhypergeo_contfrac_single} \title{Continued fraction expansion of the hypergeometric function} \description{ Continued fraction expansion of the hypergeometric and generalized hypergeometric functions using continued fraction expansion. } \usage{ hypergeo_contfrac(A, B, C, z, tol = 0, maxiter = 2000) genhypergeo_contfrac_single(U, L, z, tol = 0, maxiter = 2000) } \arguments{ \item{A,B,C}{Parameters (real or complex)} \item{U,L}{In function \code{genhypergeo_contfrac()}, upper and lower arguments as in \code{genhypergeo()}} \item{z}{Complex argument} \item{tol}{tolerance (passed to \code{GCF()})} \item{maxiter}{maximum number of iterations} } \details{ These functions are included in the package in the interests of completeness, but it is not clear when it is advantageous to use continued fraction form rather than the series form. } \references{ \itemize{ \item M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover \item \code{http://functions.wolfram.com/Hypergeometric2F1.pdf} } } \author{Robin K. S. Hankin} \note{ The continued fraction expression is the RHS identity 07.23.10.0001.01 of \code{Hypergeometric2F1.pdf}. The function sometimes fails to converge to the correct value but no warning is given. Function \code{genhypergeo_contfrac()} is documented under \code{genhypergeo.Rd}. } \seealso{\code{\link{genhypergeo}}} \examples{ hypergeo_contfrac(0.3 , 0.6 , 3.3 , 0.1+0.3i) # Compare Maple: 1.0042808294775511972+0.17044041575976110947e-1i genhypergeo_contfrac_single(U=0.2 , L=c(9.9,2.7,8.7) , z=1+10i) # (powerseries does not converge) # Compare Maple: 1.0007289707983569879 + 0.86250714217251837317e-2i } \keyword{math} hypergeo/man/f15.3.3.Rd0000644000176200001440000000211412701311442014024 0ustar liggesusers\name{f15.3.3} \alias{f15.3.3} \alias{f15.3.4} \alias{f15.3.5} \alias{f15.3.6} \alias{f15.3.7} \alias{f15.3.8} \alias{f15.3.9} \title{Various transformation formulae for the hypergeometric function} \description{ Transformations of the hypergeometric function: equations 15.3.3 to 15.3.9 } \usage{ f15.3.3(A, B, C, z, tol = 0, maxiter = 2000) f15.3.4(A, B, C, z, tol = 0, maxiter = 2000) f15.3.5(A, B, C, z, tol = 0, maxiter = 2000) f15.3.6(A, B, C, z, tol = 0, maxiter = 2000) f15.3.7(A, B, C, z, tol = 0, maxiter = 2000) f15.3.8(A, B, C, z, tol = 0, maxiter = 2000) f15.3.9(A, B, C, z, tol = 0, maxiter = 2000) } \arguments{ \item{A,B,C}{Parameters of the hypergeometric function} \item{z}{Primary complex argument} \item{tol,maxiter}{parameters passed to \code{genhypergeo()}} } \details{ The naming scheme follows that of Abramowitz and Stegun } \references{ M. Abramowitz and I. A. Stegun 1965. \dQuote{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \seealso{\code{\link{hypergeo}}} \examples{ f15.3.4(1.1,2.2,3.4,-1+0.1i) } \keyword{math} hypergeo/man/i15.3.6.Rd0000644000176200001440000000211312701311441014030 0ustar liggesusers\name{i15.3.6} \alias{i15.3.6} \alias{i15.3.7} \alias{i15.3.8} \alias{i15.3.9} \alias{j15.3.6} \alias{j15.3.7} \alias{j15.3.8} \alias{j15.3.9} \title{Helper functions} \description{ Helper functions for equations 15.3.6-15.3.9 } \usage{ i15.3.6(A, B, C) i15.3.7(A, B, C) i15.3.8(A, B, C) i15.3.9(A, B, C) j15.3.6(A, B, C) j15.3.7(A, B, C) j15.3.8(A, B, C) j15.3.9(A, B, C) } \arguments{ \item{A,B,C}{Parameters of the hypergeometric function} } \details{ These functions are named for their equation numbers in Abramowitz and Stegun. Functions \code{i15.3.?()} return the factors at the beginning of equations 15.3.6-9. These functions return zero if the denominator is infinite (because it includes a gamma function of a nonpositive integer). Functions \code{j15.3.?()} check for the appropriate arguments of the gamma function being nonpositive integers. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \seealso{\code{\link{hypergeo}}} \examples{ i15.3.6(1.1, 3.2, pi) } \keyword{math} hypergeo/man/hypergeo_A_nonpos_int.Rd0000644000176200001440000000232712701311441017464 0ustar liggesusers\name{hypergeo_A_nonpos_int} \alias{hypergeo_A_nonpos_int} \alias{hypergeo_AorB_nonpos_int} \title{Hypergeometric functions for integer arguments} \description{ Hypergeometric functions for A and/or B being integers } \usage{ hypergeo_A_nonpos_int(A, B, C, z, tol = 0) hypergeo_AorB_nonpos_int(A, B, C, z, tol = 0) } \arguments{ \item{A,B,C}{Parameters for the hypergeometric function} \item{z}{Primary complex argument} \item{tol}{tolerance} } \details{ The \dQuote{point} of these functions is that if A and C (or B and C) are identical nonpositive integers, a warning needs to be given because the function is defined as the appropriate limit and one needs to be sure that both A and C approach that limit at the same speed. Function \code{hypergeo_AorB_nonpos_int()} is a convenience wrapper for \code{hypergeo_A_nonpos_int()}. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \seealso{\code{\link{hypergeo}}} \examples{ jjR1 <- hypergeo(-4, pi, 2.2 , 1+6i) jjR2 <- hypergeo(pi, -4, 2.2 , 1+6i) # former bug jjM <- 3464.1890402837334002-353.94143580568566281i # value given by Mathematica } \keyword{math} hypergeo/man/buhring.Rd0000644000176200001440000000501712701311441014571 0ustar liggesusers\name{buhring} \alias{buhring} \alias{buhring_eqn11} \alias{buhring_eqn12} \alias{buhring_eqn5_factors} \alias{buhring_eqn5_series} \alias{hypergeo_buhring} \alias{buhring_eqn12} \title{Evaluation of the hypergeometric function using Buhring's method} \description{ Expansion of the hypergeometric function using the residue theorem; useful for when the primary argument is close to the critical points \eqn{1/2\pm i\sqrt{3}/2}{0.5+/-i.sqrt(3)/2} } \usage{ hypergeo_buhring(A,B,C,z,z0=1/2,tol=0,maxiter=2000,use11=TRUE) buhring_eqn11(n,S,A,B,C,z0=1/2) buhring_eqn12(n,S,A,B,C,z0=1/2) buhring_eqn5_factors(A,B,C,z,z0=1/2) buhring_eqn5_series(S,A,B,C,z,z0=1/2,use11=FALSE,tol=0,maxiter=2000) } \arguments{ \item{A,B,C}{Parameters (real)} \item{S}{Parameter taken to be either \code{A} or \code{B}} \item{n}{Term to calculate in \code{buhring_eqn11()} or \code{buhring_eqn12()}} \item{z}{Primary complex argument} \item{z0}{Centre of circle of non-convergence; series expressed in powers of \eqn{1/\left(z-z_0\right)^n}{1/(z-z0)^n}} \item{tol,maxiter}{tolerance and maximum number of iterations (as in \code{hypergeo()})} \item{use11}{Boolean with default \code{TRUE} meaning to use \code{buhring_eqn11()} and \code{FALSE} meaning to use \code{buhring_eqn12()}} } \details{ The functions are direct transcriptions of Buhring 1987. The basic idea is to expand the hypergeometric function in powers of \eqn{(z-z_0)^{-1}}{1/(z-z0)}. Functions \code{buhring_eqn11()} and \code{buhring_eqn12()} return the coefficients \eqn{d_n}{d(n)} given by equations 11 and 12 of Buhring 1987. The series do not converge satisfactorily near the critical points due to some sort of numerical instability. But they seem to work OK if \eqn{|z-1/2|} is large. } \references{ \itemize{ \item W. Buhring 1987. \dQuote{An analytic continuation of the hypergeometric series}, \emph{Siam J. Math. Anal.} 18(3) } } \author{Robin K. S. Hankin} \note{ There is some issue which prevents the series from converging correctly, also sometimes the sequence converges to a demponstrably incorrect value. } \seealso{\code{\link{residue}}} \examples{ # should be identical: buhring_eqn11(n=0:10,S=1/2,A=1/2,B=1/3,C=pi) buhring_eqn12(n=0:10,S=1/2,A=1/2,B=1/3,C=pi) # but differ in one element a <- hypergeo(1/2,1/3,4,1+8i,maxiter=90) b <- hypergeo_buhring(1/2,1/3,4,1+8i,maxiter=90) # should be identical but are not # following command fails due to numerical instability: \dontrun{ hypergeo_buhring(1/2,1/3,pi,z=1/2 + 1i*sqrt(3)/2) } } \keyword{math} hypergeo/man/f15.5.1.Rd0000644000176200001440000001223212701311441014025 0ustar liggesusers\name{f15.5.1} \alias{f15.5.1} \alias{f15.5.1} \alias{hypergeo_press} \alias{hypergeo_func} \alias{to_real} \alias{to_complex} \alias{complex_ode} \alias{semicircle} \alias{semidash} \alias{straight} \alias{straightdash} \title{ Hypergeometric functions via direct numerical integration } \description{ The hypergeometric function may be evaluated using Gauss's differential equation 15.5.1: \deqn{z(1-z)w''+(c-(a+b+1)z)w'-abw=0} using a start value away from the three singular points. This page documents a suite of related functionality. } \usage{ hypergeo_press(A,B,C,z, ...) f15.5.1(A, B, C, z, startz, u, udash, give=FALSE, ...) hypergeo_func(Time, State, Pars, u, udash) to_real(o) to_complex(p) complex_ode(y, times, func, parms=NA, method=NULL, u, udash, ...) semicircle(t,z0,z1,clockwise=TRUE) semidash(t,z0,z1,clockwise=TRUE) straight(t,z0,z1) straightdash(t,z0,z1) } \arguments{ \item{A,B,C,z}{Standard parameters for the hypergeometric function} \item{u,udash}{Functions to specify the path of integration, and its derivative} \item{give}{In function \code{f15.5.1()}, Boolean with \code{TRUE} meaning to return extra information from \code{ode()} and default \code{FALSE} meaning to return only the evaluated function} \item{startz}{In function \code{f15.5.1(}, the start position of the path} \item{\dots}{Further arguments passed to \code{ode()}} \item{o,p}{Real and complex objects to be coerced to each other in \code{to_real()} and \code{to_complex()}} \item{y, times, func, parms, method}{In function \code{complex_ode()}, arguments matching those of \code{ode()}} \item{t,z0,z1,clockwise}{Arguments for the standard path functions \code{semicircle()} et seq: \code{u} is the primary argument (real, \eqn{0\leq u\leq 1}{1<=u<=1}); \code{z0} and \code{z1} are the start and end points of the path; and \code{clockwise} is Boolean, indicating whether the path proceeds clockwise or not} \item{Time, State, Pars}{arguments matchin those of standard examples in the \code{deSolve} package} } \details{ Function \code{hypergeo_press()} is the most user-friendly of the functions documented here. It performs integration of Gauss's ODE, along a straight line path from the start-point to \code{z}. It follows Press et al's suggestion of start-point. Function \code{f15.5.1()} is a little more flexible in that it allows the user to choose a start point and an integration path. Function \code{complex_ode()} is a complex generalization of \code{ode()} of package \pkg{deSolve}; function \code{hypergeo_func} is an internal function, designed for use with \code{complex_ode()}, that specifies the Gauss ODE which is satisified by the hypergeometric function. Functions \code{to_real()} and \code{to_complex()} are internal functions which coerce from real to complex and back; they are needed because \code{ode()} deals only with real values. Functions \code{semicircle()} and \code{straight()} are helper functions which specify straight or semicircular paths from \code{z0} to \code{z1}; note that \code{f(0)=z0} and \code{f(1)=z1}. Functions \code{semidash()} and \code{straightdash()} provide the differential of the path. } \references{ W. H. Press et al. 1997. \emph{Numerical Recipes in C}. Cambridge University Press, Second Edition. } \author{ Robin K. S. Hankin } \note{ Accuracy is low compared with the other methods in the package. } \seealso{ \code{\link{hypergeo_residue}} } \examples{ hypergeo_press(A=pi,B=sqrt(2),C=1.4,z=1-2i) hypergeo (A=pi,B=sqrt(2),C=1.4,z=1-2i) jj1 <- f15.5.1( A=1.1, B=2.2, C=3.3, z=3+0.5i, startz=0.5, u =function(u){semicircle(u,0.5,3+0.5i,FALSE)}, udash=function(u){semidash(u,0.5,3+0.5i,FALSE)} ) jj2 <- f15.5.1( A=1.1, B=2.2, C=3.3, z=3+0.5i, startz=0.5, u =function(u){semicircle(u,0.5,3+0.5i,TRUE)}, udash=function(u){semidash(u,0.5,3+0.5i,TRUE)} ) jj3 <- hypergeo( A=1.1, B=2.2, C=3.3, z=3+0.5i) ## First one agrees with jj3=hypergeo(...), the second one does not # Now try the Airy Ai function; satisfies f'' = zf: pars <- c(kay = 1+1i, ell = 0.1+0.2i) # not actually used airy_ai_func <- function(Time, State, Pars, u, udash) { with(as.list(c(to_complex(State), to_complex(Pars))), { z <- u(Time) dz <- udash(Time) dF <- Fdash*dz dFdash <- z*F*dz # could use kay and ell from pars here if necessary ## coerce back to real: out <- to_real(c(dF,dFdash)) names(out) <- names(State) return(list(out)) }) } complex_ode( y = c(F = 1/3^(2/3)/gamma(2/3), Fdash= -1/3^(1/3)/gamma(1/3)), times = seq(0,1,by=0.1), func = airy_ai_func, parms = pars, u = function(t){straight(t,0,1)}, udash = function(t){straightdash(t,0,1)} ) # Look at the last line for the value at 1. # compare gsl: Ai(1) = 0.1352924 ; Ai'(1) = -0.1591474 # ...although in this case there is actually a hypergeometric series # representation: f <- function(z){ return( +genhypergeo(U=NULL,L=2/3,z^3/9)/3^(2/3)/gamma(2/3) -genhypergeo(U=NULL,L=4/3,z^3/9)/3^(1/3)/gamma(1/3)*z ) } f(1) } hypergeo/man/hypergeo-package.Rd0000644000176200001440000000155712701311441016353 0ustar liggesusers\name{hypergeo-package} \alias{hypergeo-package} \docType{package} \title{ The hypergeometric function } \description{ The hypergeometric function for the whole complex plane } \details{ \tabular{ll}{ Package: \tab hypergeo\cr Type: \tab Package\cr Version: \tab 1.0\cr Date: \tab 2008-04-16\cr License: \tab GPL\cr } The front end function of the package is \code{hypergeo()}: depending on the value of the parameters, this executes one or more of many sub-functions. } \author{ Robin K. S. Hankin Maintainer: } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \keyword{ package } \examples{ hypergeo(1.1,2.3,1.9 , 1+6i) options(showHGcalls = TRUE) # any non-null value counts as TRUE hypergeo(4.1, 3.1, 5.1, 1+1i) # shows trace back options(showHGcalls = FALSE) # reset } hypergeo/DESCRIPTION0000644000176200001440000000123214770266152013612 0ustar liggesusersPackage: hypergeo Title: The Gauss Hypergeometric Function Version: 1.2-14 Authors@R: person(given=c("Robin", "K.", "S."), family="Hankin", role = c("aut","cre"), email="hankin.robin@gmail.com", comment = c(ORCID = "0000-0001-5982-0415")) Depends: R (>= 3.1.0), Imports: elliptic (>= 1.3-5), contfrac (>= 1.1-9), deSolve Description: The Gaussian hypergeometric function for complex numbers. Maintainer: Robin K. S. Hankin License: GPL-2 NeedsCompilation: no Packaged: 2025-03-24 11:15:34 UTC; rhankin Repository: CRAN Date/Publication: 2025-03-24 14:30:02 UTC Author: Robin K. S. Hankin [aut, cre] ()